eoss-mobiles 0.4.2 → 0.4.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (213) hide show
  1. package/lib/checkbox.js +206 -2
  2. package/lib/eoss-mobile.common.js +1213 -926
  3. package/lib/flow-btn.js +206 -2
  4. package/lib/flow-list.js +206 -2
  5. package/lib/flow.js +214 -10
  6. package/lib/form.js +957 -874
  7. package/lib/index.js +1 -1
  8. package/lib/picker.js +206 -2
  9. package/lib/radio.js +211 -7
  10. package/lib/retrial-auth.js +206 -2
  11. package/lib/selector.js +234 -30
  12. package/lib/table-column.js +206 -2
  13. package/lib/table.js +206 -2
  14. package/lib/theme-chalk/fonts/iconfont.scss +98 -98
  15. package/lib/theme-chalk/fonts/iconfont1.scss +90 -90
  16. package/lib/uploader.js +206 -2
  17. package/lib/utils/util.js +206 -2
  18. package/package.json +1 -1
  19. package/packages/action-sheet/index.js +5 -5
  20. package/packages/action-sheet/src/main.vue +32 -32
  21. package/packages/button/index.js +5 -5
  22. package/packages/button/src/main.vue +15 -15
  23. package/packages/button-group/index.js +5 -5
  24. package/packages/button-group/src/main.vue +80 -80
  25. package/packages/calendar/index.js +5 -5
  26. package/packages/calendar/src/main.vue +34 -34
  27. package/packages/cascader/index.js +5 -5
  28. package/packages/cascader/src/main.vue +39 -39
  29. package/packages/cell/index.js +5 -5
  30. package/packages/cell/src/main.vue +77 -77
  31. package/packages/checkbox/index.js +5 -5
  32. package/packages/checkbox/src/main.vue +232 -232
  33. package/packages/circle/index.js +5 -5
  34. package/packages/circle/src/main.vue +27 -27
  35. package/packages/count-down/index.js +5 -5
  36. package/packages/count-down/src/main.vue +27 -27
  37. package/packages/date/index.js +5 -5
  38. package/packages/date/src/date-time.vue +290 -290
  39. package/packages/date/src/main.vue +401 -401
  40. package/packages/empty/index.js +5 -5
  41. package/packages/empty/src/main.vue +16 -16
  42. package/packages/esign/index.js +5 -5
  43. package/packages/esign/src/main.vue +144 -144
  44. package/packages/field/index.js +5 -5
  45. package/packages/flow/index.js +5 -5
  46. package/packages/flow/src/components/Circulate.vue +595 -595
  47. package/packages/flow/src/components/Handle.vue +2404 -2404
  48. package/packages/flow/src/components/Message.vue +208 -208
  49. package/packages/flow/src/components/ProcessSettings.vue +342 -342
  50. package/packages/flow/src/components/supervise.vue +139 -139
  51. package/packages/flow/src/flowMix.js +288 -288
  52. package/packages/flow/src/main.vue +116 -116
  53. package/packages/flow-btn/index.js +5 -5
  54. package/packages/flow-btn/src/main.vue +494 -494
  55. package/packages/flow-list/index.js +5 -5
  56. package/packages/flow-list/src/main.vue +248 -248
  57. package/packages/form/index.js +5 -5
  58. package/packages/form/src/CustomCard.vue +201 -201
  59. package/packages/form/src/main.vue +369 -351
  60. package/packages/grid/index.js +5 -5
  61. package/packages/grid/src/main.vue +486 -486
  62. package/packages/grid-item/index.js +5 -5
  63. package/packages/grid-item/src/main.vue +16 -16
  64. package/packages/image/index.js +5 -5
  65. package/packages/image/src/main.vue +12 -12
  66. package/packages/image-preview/index.js +5 -5
  67. package/packages/list/index.js +5 -5
  68. package/packages/list/src/main.vue +32 -32
  69. package/packages/loading/index.js +5 -5
  70. package/packages/loading/src/main.vue +19 -19
  71. package/packages/nav-bar/index.js +5 -5
  72. package/packages/nav-bar/src/main.vue +24 -24
  73. package/packages/notice-bar/index.js +5 -5
  74. package/packages/notice-bar/src/main.vue +15 -15
  75. package/packages/pagination/index.js +5 -5
  76. package/packages/pagination/src/main.vue +73 -73
  77. package/packages/picker/index.js +5 -5
  78. package/packages/popover/index.js +5 -5
  79. package/packages/popover/src/main.vue +32 -32
  80. package/packages/popup/index.js +5 -5
  81. package/packages/popup/src/main.vue +27 -27
  82. package/packages/pull-refresh/index.js +5 -5
  83. package/packages/pull-refresh/src/main.vue +31 -31
  84. package/packages/radio/index.js +5 -5
  85. package/packages/radio/src/main.vue +179 -179
  86. package/packages/rate/index.js +5 -5
  87. package/packages/rate/src/main.vue +26 -26
  88. package/packages/retrial-auth/index.js +5 -5
  89. package/packages/retrial-auth/src/main.vue +257 -257
  90. package/packages/search/index.js +5 -5
  91. package/packages/search/src/main.vue +39 -39
  92. package/packages/selector/index.js +5 -5
  93. package/packages/selector/src/main.vue +186 -186
  94. package/packages/selector/src/selector-tree.vue +1117 -1117
  95. package/packages/selector/src/tree.vue +405 -405
  96. package/packages/skeleton/index.js +5 -5
  97. package/packages/skeleton/src/main.vue +17 -17
  98. package/packages/stepper/index.js +5 -5
  99. package/packages/stepper/src/main.vue +25 -25
  100. package/packages/swipe/index.js +5 -5
  101. package/packages/swipe/src/main.vue +42 -42
  102. package/packages/switch/index.js +5 -5
  103. package/packages/switch/src/main.vue +38 -38
  104. package/packages/tab/index.js +5 -5
  105. package/packages/tab/src/main.vue +16 -16
  106. package/packages/table/index.js +5 -5
  107. package/packages/table/src/main.vue +1006 -1006
  108. package/packages/table-column/index.js +5 -5
  109. package/packages/table-column/src/main.vue +931 -931
  110. package/packages/table-column/src/mixins/table.js +12 -12
  111. package/packages/tabs/index.js +5 -5
  112. package/packages/tabs/src/main.vue +34 -34
  113. package/packages/tag/index.js +5 -5
  114. package/packages/tag/src/main.vue +16 -16
  115. package/packages/theme-chalk/gulpfile.js +25 -0
  116. package/packages/theme-chalk/src/base.scss +195 -195
  117. package/packages/theme-chalk/src/button-group.scss +25 -25
  118. package/packages/theme-chalk/src/button.scss +2 -2
  119. package/packages/theme-chalk/src/calendar.scss +11 -11
  120. package/packages/theme-chalk/src/cascader.scss +11 -11
  121. package/packages/theme-chalk/src/cell.scss +14 -14
  122. package/packages/theme-chalk/src/checkbox.scss +9 -9
  123. package/packages/theme-chalk/src/circle.scss +6 -6
  124. package/packages/theme-chalk/src/common/var.scss +1525 -1525
  125. package/packages/theme-chalk/src/esign.scss +51 -51
  126. package/packages/theme-chalk/src/field.scss +98 -98
  127. package/packages/theme-chalk/src/flow-btn.scss +99 -99
  128. package/packages/theme-chalk/src/flow-list.scss +122 -122
  129. package/packages/theme-chalk/src/fonts/iconfont.scss +98 -98
  130. package/packages/theme-chalk/src/fonts/iconfont1.scss +90 -90
  131. package/packages/theme-chalk/src/grid-item.scss +16 -16
  132. package/packages/theme-chalk/src/grid.scss +46 -46
  133. package/packages/theme-chalk/src/icon.scss +1661 -1661
  134. package/packages/theme-chalk/src/mixins/color.scss +117 -117
  135. package/packages/theme-chalk/src/navbar.scss +5 -5
  136. package/packages/theme-chalk/src/pagination.scss +12 -12
  137. package/packages/theme-chalk/src/picker.scss +31 -31
  138. package/packages/theme-chalk/src/radio.scss +6 -6
  139. package/packages/theme-chalk/src/retrial-auth.scss +28 -28
  140. package/packages/theme-chalk/src/selector.scss +247 -247
  141. package/packages/theme-chalk/src/stepper.scss +9 -9
  142. package/packages/theme-chalk/src/switch.scss +5 -5
  143. package/packages/theme-chalk/src/table.scss +86 -86
  144. package/packages/theme-chalk/src/tabs.scss +31 -31
  145. package/packages/theme-chalk/src/tag.scss +12 -12
  146. package/packages/theme-chalk/src/theme.scss +1 -1
  147. package/packages/theme-chalk/src/tree.scss +127 -127
  148. package/packages/uploader/index.js +5 -5
  149. package/src/config/api.js +190 -190
  150. package/src/index.js +1 -1
  151. package/src/utils/axios.js +217 -217
  152. package/src/utils/date-util.js +312 -312
  153. package/src/utils/http.js +106 -106
  154. package/src/utils/rules.js +18 -18
  155. package/src/utils/store.js +21 -21
  156. package/src/utils/util.js +287 -66
  157. package/CHANGELOG.md +0 -95
  158. package/packages/theme-chalk/lib/action-sheet.css +0 -0
  159. package/packages/theme-chalk/lib/base.css +0 -1
  160. package/packages/theme-chalk/lib/button-group.css +0 -1
  161. package/packages/theme-chalk/lib/button.css +0 -1
  162. package/packages/theme-chalk/lib/calendar.css +0 -1
  163. package/packages/theme-chalk/lib/cascader.css +0 -1
  164. package/packages/theme-chalk/lib/cell.css +0 -1
  165. package/packages/theme-chalk/lib/checkbox.css +0 -1
  166. package/packages/theme-chalk/lib/circle.css +0 -1
  167. package/packages/theme-chalk/lib/count-down.css +0 -0
  168. package/packages/theme-chalk/lib/date.css +0 -0
  169. package/packages/theme-chalk/lib/empty.css +0 -0
  170. package/packages/theme-chalk/lib/esign.css +0 -1
  171. package/packages/theme-chalk/lib/field.css +0 -1
  172. package/packages/theme-chalk/lib/flow-btn.css +0 -1
  173. package/packages/theme-chalk/lib/flow-list-task-read.css +0 -1
  174. package/packages/theme-chalk/lib/flow-list.css +0 -1
  175. package/packages/theme-chalk/lib/flow.css +0 -1
  176. package/packages/theme-chalk/lib/fonts/iconfont.scss +0 -98
  177. package/packages/theme-chalk/lib/fonts/iconfont.ttf +0 -0
  178. package/packages/theme-chalk/lib/fonts/iconfont.woff +0 -0
  179. package/packages/theme-chalk/lib/fonts/iconfont1.scss +0 -90
  180. package/packages/theme-chalk/lib/form.css +0 -1
  181. package/packages/theme-chalk/lib/grid-item.css +0 -1
  182. package/packages/theme-chalk/lib/grid.css +0 -1
  183. package/packages/theme-chalk/lib/icon.css +0 -1
  184. package/packages/theme-chalk/lib/image-preview.css +0 -0
  185. package/packages/theme-chalk/lib/image.css +0 -0
  186. package/packages/theme-chalk/lib/index.css +0 -1
  187. package/packages/theme-chalk/lib/list.css +0 -0
  188. package/packages/theme-chalk/lib/loading.css +0 -0
  189. package/packages/theme-chalk/lib/nav-bar.css +0 -0
  190. package/packages/theme-chalk/lib/navbar.css +0 -1
  191. package/packages/theme-chalk/lib/notice-bar.css +0 -0
  192. package/packages/theme-chalk/lib/pagination.css +0 -1
  193. package/packages/theme-chalk/lib/picker.css +0 -1
  194. package/packages/theme-chalk/lib/popover.css +0 -0
  195. package/packages/theme-chalk/lib/popup.css +0 -0
  196. package/packages/theme-chalk/lib/pull-refresh.css +0 -0
  197. package/packages/theme-chalk/lib/radio.css +0 -1
  198. package/packages/theme-chalk/lib/rate.css +0 -0
  199. package/packages/theme-chalk/lib/retrial-auth.css +0 -1
  200. package/packages/theme-chalk/lib/search.css +0 -0
  201. package/packages/theme-chalk/lib/selector.css +0 -1
  202. package/packages/theme-chalk/lib/skeleton.css +0 -0
  203. package/packages/theme-chalk/lib/stepper.css +0 -1
  204. package/packages/theme-chalk/lib/swipe.css +0 -0
  205. package/packages/theme-chalk/lib/switch.css +0 -1
  206. package/packages/theme-chalk/lib/tab.css +0 -0
  207. package/packages/theme-chalk/lib/table-column.css +0 -0
  208. package/packages/theme-chalk/lib/table.css +0 -1
  209. package/packages/theme-chalk/lib/tabs.css +0 -1
  210. package/packages/theme-chalk/lib/tag.css +0 -1
  211. package/packages/theme-chalk/lib/theme.css +0 -0
  212. package/packages/theme-chalk/lib/tree.css +0 -1
  213. package/packages/theme-chalk/lib/uploader.css +0 -0
@@ -1,595 +1,595 @@
1
- <template>
2
- <div class="process-handle">
3
- <div style="display: flex; flex-direction: column; height: 100%">
4
- <div class="process-content">
5
- <!-- 当前节点 -->
6
- <div class="present-node">
7
- <div class="label">当前节点:</div>
8
- <div>{{ nodeName }}</div>
9
- </div>
10
- <!-- 意见 -->
11
- <Opinion
12
- :esign="esign"
13
- :esignLineWidth="
14
- $attrs['esign-line-width'] || $attrs['esignLineWidth']
15
- "
16
- @onInputOpintion="onInputOpintion"
17
- :baseUrl="baseUrl"
18
- :isForceDisplayDefaultOptionForPrefix="
19
- isForceDisplayDefaultOptionForPrefix
20
- "
21
- @click="handlePop"
22
- :opinionType="opinionType"
23
- :paddingTop="paddingTop"
24
- :showOpinionPop="showOpinionPop"
25
- :pendingItemHandleDescription="pendingItemHandleDescription"
26
- :placeholder="
27
- pendingItemHandleDescription || opinionHandleExplainText
28
- "
29
- :nodeDefaultSubmitOpinion="nodeDefaultSubmitOpinion"
30
- :nodeFixedOpinionSelectList="nodeFixedOpinionSelectList"
31
- :isHiddenOftenOpinion="isHiddenOftenOpinion == 1 ? false : true"
32
- ></Opinion>
33
- <!-- 审核内容 -->
34
- <div class="special-box input-box" v-if="typeCode != 'fenyue'">
35
- <div>
36
- <!-- 下一步所有相关操作-->
37
- <div>
38
- <div class="next-box">
39
- <!-- 下步节点 -->
40
- <div class="item" v-if="nodeList && nodeList.length > 0">
41
- <em-picker
42
- v-if="nextNodeCheckType == 'select'"
43
- title="下步节点"
44
- label="下步节点"
45
- required
46
- show-toolbar
47
- v-model="form.nextNodeName"
48
- label-width="100%"
49
- :columns="nodeList"
50
- value-key="nodeId"
51
- label-key="nodeName"
52
- />
53
- <em-input
54
- v-else
55
- value="下步节点"
56
- label="下步节点"
57
- required
58
- class="em-flow-next-steps"
59
- :disabled="true"
60
- label-position="top"
61
- >
62
- <template slot="input">
63
- <em-radio-group
64
- v-model="form.nextNodeId"
65
- :data="nodeList"
66
- value-key="nodeId"
67
- label-key="nodeName"
68
- direction="horizontal"
69
- />
70
- </template>
71
- </em-input>
72
- </div>
73
- </div>
74
- <!-- 本单位-->
75
- <!-- v-if="isHideCurrentOrg" -->
76
- <div class="item">
77
- <em-selector
78
- v-model="nextCurrentOrgObjSelect"
79
- multiple
80
- :isAllCheck="isAllCheck"
81
- @selector-click="handleSelectorClick"
82
- :paddingTop="paddingTop"
83
- isDepartment
84
- :objType="'enterprise'"
85
- tabs="employee,persongroup"
86
- :param="currentOrgSelectorParams"
87
- :disableds="currentOrgDisabledObjId"
88
- :baseUrl="apiBaseUrl"
89
- :isOtherUnit="false"
90
- :label="'本单位'"
91
- @change="disposeAppUnit($event, 'nextCurrentOrgObjSelect')"
92
- />
93
- </div>
94
- <!-- 外单位 -->
95
- <!-- v-if="isHideOtherOrg" -->
96
- <div class="item">
97
- <em-selector
98
- v-model="nextOtherOrgObjSelect"
99
- multiple
100
- @selector-click="handleSelectorClick"
101
- :isAllCheck="isAllCheck"
102
- :paddingTop="paddingTop"
103
- :objType="'enterprise'"
104
- :param="foreignOrgSelectorParams"
105
- tabs="enterprise,filgroup"
106
- :baseUrl="apiBaseUrl"
107
- :disableds="otherOrgDisabledObjId"
108
- :isOtherUnit="true"
109
- :label="'外单位'"
110
- isEnterprise
111
- @change="disposeAppUnit($event, 'nextOtherOrgObjSelect')"
112
- />
113
- </div>
114
- </div>
115
-
116
- <!-- 通知方式 -->
117
- <!-- <div class="item-msg item-msg2">
118
- <Message
119
- ref="message"
120
- :code="'notification_type'"
121
- :baseUrl="baseUrl"
122
- :defaultNotificationType="defaultNotificationType"
123
- :pendingId="pendingId"
124
- :defaultNotificationMsg="form.notificationMsg"
125
- @onInputMsg="onInputMsg"
126
- ></Message>
127
- </div> -->
128
- </div>
129
- </div>
130
- </div>
131
-
132
- <div class="btn-list">
133
- <div class="btn" @click="navigateBack">取消</div>
134
- <div class="btn" @click="onSubmit()">确定</div>
135
- </div>
136
- </div>
137
- </div>
138
- </template>
139
-
140
- <script>
141
- import {
142
- directStartTaskCircularRead,
143
- endFlowAndStartTaskCircularRead
144
- // getNotificationMsg
145
- } from '../../../../src/config/api.js';
146
- import request from '../../../../src/utils/http.js';
147
- import Opinion from './Opinion.vue';
148
- import Message from './Message.vue';
149
- import $ from '../../../../src/utils/util';
150
- export default {
151
- name: 'Handle',
152
- inheritAttrs: false,
153
- components: {
154
- Opinion,
155
- Message
156
- },
157
- props: {
158
- businessId: String,
159
- pendingId: String,
160
- identityIds: String, //用户id
161
- beforeSubmit: Function,
162
- orgId: String, //单位id
163
- depId: String, //部门id
164
- baseUrl: String,
165
- apiBaseUrl: String,
166
- typeCode: String,
167
- type: String,
168
- paddingTop: {
169
- type: [String, Number],
170
- default: 0
171
- },
172
- showOpinionPop: {
173
- type: Boolean,
174
- default: false
175
- },
176
- opinionType: {
177
- type: String,
178
- default: 'picker'
179
- },
180
- defId: {
181
- type: String,
182
- default: ''
183
- },
184
- isAllCheck: {
185
- type: Boolean,
186
- default: false
187
- },
188
- isPreset: {
189
- type: Boolean,
190
- default: false
191
- },
192
- esign: {
193
- type: Boolean,
194
- default: false
195
- },
196
- userId: {
197
- type: String,
198
- default: ''
199
- },
200
- nodeName: {
201
- type: String,
202
- default: '拟稿'
203
- },
204
- nextNodeCheckType: {
205
- type: String,
206
- default: ''
207
- },
208
- selectorParams: { type: Object, default: () => {} },
209
- title: {
210
- type: String,
211
- default: ''
212
- }
213
- },
214
- data() {
215
- return {
216
- AddSignList: [
217
- { name: '前置加签', value: 'preAddSign' },
218
- { name: '后置加签', value: 'postAddSign' }
219
- ],
220
- currentOrgSelectorParams: { only_filid: true,onlyMyOrg:true },
221
- currentOrgSelectorTabs: 'employee, persongroup',
222
- foreignOrgSelectorTabs: 'enterprise,filgroupobj',
223
- foreignOrgSelectorParams: { roleid: '' },
224
- otherOrgDisabledObjId: [],
225
- currentNodeEnableItemHandleDescription: false,
226
- pendingItemHandleDescription: '',
227
- taskOperationShiftedNodeList: null,
228
- oldNextOperate: '',
229
- processFormType: 'freeStart',
230
- currentOrgDisabledObjId: [],
231
- nextNodeDefault: 0,
232
- showDefList: false,
233
- deptRoleCode: '',
234
- readOnlyNotificationType: '',
235
- notificationMessageReadOnly: false,
236
- freeStartFlowParams: {}, //自由发起流程参数
237
- taskParams: {},
238
- isCanPreAddSign: false,
239
- showAppUnit: false, // 弹窗单位
240
- handleFlow: true,
241
- freeValid: true,
242
- showFreeStart: false,
243
- freeStartInfo: {},
244
- isReject: false,
245
- opinionHandleExplainText: undefined,
246
- isCurrentNodeForbiddenChangeCandidate: 0,
247
- nodeFixedOpinionSelectList: [],
248
- isChooseNextNode: 1, //是否展示下步操作
249
- pid: 'root', //树选中pid
250
- objType: 'enterprise', //树点击对象
251
- selectType: 'employee', // 树 选择类型
252
- isNextBox: true, // 是否展开隐藏下步操作
253
- isForceDisplayDefaultOptionForPrefix: false,
254
- isOtherUnit: true, //是否是外单位
255
- isShowNode: false,
256
- subProcessInfo: '',
257
- isNodeShowProcess: false, //是否展示主办
258
- isHiddenOftenOpinion: undefined, //是否隐藏常用意见
259
- isAddSignList: [
260
- { name: '是', value: '1' },
261
- { name: '否', value: '2' }
262
- ],
263
- taskReadOpinionRequired: undefined,
264
- form: {
265
- opinion: undefined, // 审批意见
266
- nextCurrentOrgObj: undefined, // 本单位对象
267
- nextCurrentOrgObjSerialId: undefined, //本单位办理对象序列id
268
- nextOtherOrgObj: undefined, //外单位对象
269
- nextOtherOrgObjSerialId: undefined, //外单位办理对象序列id
270
- notificationMsg: undefined, //通知消息
271
- nextNodeName: 3,
272
- nextNodeId: 3
273
- },
274
- isCanFenyue: '0',
275
-
276
- nextCurrentOrgObjSelect: [], // 选中本单位
277
- nextOtherOrgObjSelect: [], //选中外单位
278
- nextReadUserSelectList: [], //分阅选择数组
279
- nodeList: [{ nodeId: 3, nodeName: '传阅' }], // 流程节点列表
280
-
281
- opinionList: [], // 意见列表
282
-
283
- userInfo: {}, // 用户信息
284
- isCanAddSign: false, //是否显示加签
285
- isCanRemoveSign: false, //是否显示减签
286
- isSpecial: true, //判断审核内容是否显示(是否是正常的办理页面)
287
- taskOperations: [], //下一步操作
288
- countersignaturetypeCode: false, //用来判断处理方式是否显示
289
- countersignaturetypeText: undefined, // 处理方式
290
- isCustomPreset: false, // 是否允许预设节点
291
- isHideCurrentOrg: false, //是否隐藏本单位(承办)
292
- isHideOtherOrg: false, //是否隐藏外单位(承办)
293
- isHandleExplain: false, // 是否允许办理说明
294
- isTaskread: false, //是否分阅
295
- defaultNotificationType: undefined, ///默认选中通知类型
296
- selectUnitType: 'department', //单位树选择类型
297
- isHiddenNextStepInfo: false, //是否隐藏下一步节点信息和接收人信息
298
- presetEdit: true, //预设是否允许编辑
299
- isLimitedTimeHandling: false, //是否支持发起子流程限时办理
300
- userSelectionType: undefined, //处理人选择方式
301
- orgSelectionType: undefined, //办理机构选择方式
302
- notificationType: undefined, // 通知方式
303
- nodeType: undefined, // 节点类型(普通节点0,承办节点1,会签节点2,阅办节点3)
304
- deptRoleCode: undefined, //本单位角色
305
- orgRoleCode: undefined, //外单位角色
306
- appointNotUserIds: undefined, //业务指定非处理人
307
- handleRoleId: undefined, //办理角色(一般选择范围是部门/单位使用)
308
- nextRole: undefined, //下步节点默认角色
309
- filterCandinateIds: undefined, //节点过滤办理人
310
- selectorDefShowDeptId: undefined, //选择器默认展示部门
311
- isRadio: true, //下步办理人是否单选
312
- otherOrgName: undefined, //外单位名字
313
- currentOrgName: undefined, //本单位名字
314
- isMainSubProcess: false, // 判断是否子-主流程
315
- isNextUser: false, // 判断是否显示下步办理人
316
- isDealObject: false, //判断是否显示办理对象
317
- isDealRole: false, //判断是否显示办理角色
318
- nextUserflag: false,
319
- isSubmitButtonShowAgreeAndDisagree: 0, //是否展示同意和不同意按钮
320
- isCustomUserClick: false, //下步办理人选择是否可以点击
321
- timeListLable: undefined, //用来判断是哪里点开的时间遮罩层
322
- nodeDefaultSubmitOpinion: undefined, //默认提交意见
323
- isCustomUser: 0, //是否可选中办理人
324
- choiceOrgId: '',
325
- choiceDeptId: '',
326
- taskExamineInfo: {},
327
- nodeInfoMapInfo: {},
328
- flowDefList: [],
329
- file: '',
330
- isEndUserTask: '',
331
- tagKey: '',
332
- pOrgId: '',
333
- customPresetHintMessage: '',
334
- enableCustomLimitTimeSetting: false,
335
- showCustomLimitTimeText: false,
336
- needRetrialAuth: false,
337
- defaultNextNode: ''
338
- };
339
- },
340
- created() {
341
- // this.getMessage();
342
- this.currentOrgSelectorParams.employee =
343
- this.currentOrgSelectorParams.persongroup = {
344
- pid: this.orgId || JSON.parse($.getStorage('userInfo')).orgId,only_filid: true,onlyMyOrg:true
345
- };
346
- this.foreignOrgSelectorParams.nofilid =
347
- this.orgId || JSON.parse($.getStorage('userInfo')).orgId;
348
- this.foreignOrgSelectorParams.myUserid = '';
349
- this.foreignOrgSelectorParams.filgroup = {
350
- pid: 'root',
351
- myUserid: this.userId
352
- };
353
- this.foreignOrgSelectorParams = {
354
- ...this.foreignOrgSelectorParams,
355
- ...this.selectorParams
356
- };
357
- },
358
- computed: {},
359
- methods: {
360
- handlePop(val){
361
- this.$parent.$emit('opinion-change', val);
362
- },
363
- handleSelectorClick(val){
364
- this.$parent.$emit('selector-click', val);
365
- },
366
- getMessage() {
367
- let params = {
368
- url: getNotificationMsg,
369
- params: {
370
- processDefinitionId: this.defId,
371
- businessId: this.businessId,
372
- pendingId: this.pendingId,
373
- openMode: this.pendingId ? '' : 'samepage'
374
- }
375
- };
376
- request(params).then((res) => {
377
- if (res.rCode == 0 || res.status == 'success') {
378
- this.form.notificationMsg = res.message.replace(
379
- '{title}',
380
- this.title || ''
381
- );
382
- }
383
- });
384
- },
385
- navigateBack() {
386
- this.$parent.$emit('close');
387
- },
388
- // 通知消息回调
389
- onInputMsg(obj) {
390
- this.form.notificationType = obj.notificationType.join(',');
391
- this.form.notificationMsg = obj.notificationMsg;
392
- },
393
- onSubmit() {
394
- let params = {
395
- url: this.pendingId
396
- ? endFlowAndStartTaskCircularRead
397
- : directStartTaskCircularRead,
398
- params: {
399
- businessId: this.businessId,
400
- pendingId: this.pendingId,
401
- processDefinitionId: this.defId,
402
- notificationMsg: this.form.notificationMsg,
403
- notificationType: this.form.notificationType,
404
- opinion: this.form.opinion,
405
- nextOtherOrgObj: this.form.nextOtherOrgObj,
406
- nextCurrentOrgObj: this.form.nextCurrentOrgObj,
407
- mobileKey: 'ceshi',
408
- loginType: 2
409
- },
410
- type: 'post'
411
- };
412
- if (!this.form.nextOtherOrgObj && !this.form.nextCurrentOrgObj) {
413
- this.$toast('请选择办理对象');
414
- return;
415
- }
416
- this.$toast.loading({
417
- message: '提交中...',
418
- forbidClick: true,
419
- loadingType: 'spinner',
420
- overlay: true,
421
- duration: 0
422
- });
423
- request(params).then((res) => {
424
- this.$toast.clear();
425
- if (res.rCode == 0 || res.status == 'success') {
426
- this.$toast.success('提交成功');
427
- this.$parent.$emit('success');
428
- } else {
429
- this.$toast(res.message || '系统错误,请联系管理员!');
430
- setTimeout(() => {
431
- this.$parent.$emit('error');
432
- }, 1000);
433
- }
434
- });
435
- },
436
- // 删除
437
- delteList(label, i) {
438
- if (label === 'nextUserSelectList') {
439
- let _this = this;
440
- let id = _this.nextUserSelectList[i].showid;
441
- this.nextUserList.find((i) => {
442
- if (i.userId === id) {
443
- _this.$set(i, 'checked', false);
444
- }
445
- });
446
- this[label].splice(i, 1);
447
- } else {
448
- this[label].splice(i, 1);
449
- }
450
- },
451
- // 选择办理人
452
- onClickPeople(id) {
453
- this.showAppUser = true;
454
- this.selectList = this[id];
455
- this.$nextTick(function () {
456
- this.$refs.selectTree.getContent(id);
457
- });
458
- },
459
- // 选择单位
460
- onClickOrg(id) {
461
- this.isOtherUnit = id === 'nextCurrentOrgObjSelect' ? false : true;
462
- this.selectUnitType =
463
- id === 'nextCurrentOrgObjSelect' ? 'department,employee' : 'department';
464
- this.showAppUnit = true;
465
- this.$nextTick(function () {
466
- this.$refs.selectTreeUnit.getContent(id);
467
- });
468
- },
469
-
470
- // 意见回调
471
- onInputOpintion(val) {
472
- const { opinion, isImageOpinion, file } = val;
473
- this.form.opinion = opinion;
474
- this.form.isImageOpinion = isImageOpinion;
475
- this.file = file;
476
- },
477
- // 办理人选择完回调
478
- disposeAppUser(res, type) {
479
- this[type] = res.list;
480
- let label = '';
481
- if (type) {
482
- label = type.substring(0, type.lastIndexOf('SelectList'));
483
- } else {
484
- label = res.label.substring(0, res.label.lastIndexOf('SelectList'));
485
- }
486
-
487
- let idStr = '';
488
- if (res.list) {
489
- res.list.map((r, i) => {
490
- idStr = idStr + r.showid + (i === res.list.length - 1 ? '' : ',');
491
- });
492
- } else {
493
- res.map((r, i) => {
494
- idStr = idStr + r.showid + (i === res.length - 1 ? '' : ',');
495
- });
496
- }
497
- this.form[label + 'Id'] = idStr;
498
- },
499
- // 单位选择完回调
500
- disposeAppUnit(res, type) {
501
- let label = type.substring(0, type.lastIndexOf('Select'));
502
- let idStr = '';
503
- let types = '';
504
- let SerialId = [];
505
- this.form[label + 'Name'] = '';
506
- let obj = {};
507
- res.list.map((r, i) => {
508
- if (!types || types.indexOf(r.mixType) == -1) {
509
- idStr = !types
510
- ? r.mixType +
511
- '-' +
512
- r.showid +
513
- (i === res.list.length - 1 ? '' : ',')
514
- : idStr +
515
- '|' +
516
- r.mixType +
517
- '-' +
518
- r.showid +
519
- (i === res.list.length - 1 ? '' : ',');
520
- types = types ? types + ',' + r.mixType : r.mixType;
521
- } else {
522
- idStr = idStr + r.showid + (i === res.list.length - 1 ? '' : ',');
523
- }
524
- SerialId.push(r.showid);
525
- if (obj[r.mixType]) {
526
- obj[r.mixType].push(r.showname);
527
- } else {
528
- obj[r.mixType] = [r.showname];
529
- }
530
- });
531
- this.form[label] = idStr;
532
- for (let key in obj) {
533
- if (
534
- key === 'enterprise' &&
535
- this.form[label + 'Name'].indexOf('[企业]') == -1
536
- ) {
537
- this.form[label + 'Name'] = this.form[label + 'Name']
538
- ? this.form[label + 'Name'] + '|' + '[企业]-' + obj[key].join(',')
539
- : '' + '[企业]-' + obj[key].join(',');
540
- }
541
- if (
542
- key === 'department' &&
543
- this.form[label + 'Name'].indexOf('[部门]') == -1
544
- ) {
545
- this.form[label + 'Name'] = this.form[label + 'Name']
546
- ? this.form[label + 'Name'] + '|' + '[部门]-' + obj[key].join(',')
547
- : '' + '[部门]-' + obj[key].join(',');
548
- }
549
- if (
550
- key === 'employee' &&
551
- this.form[label + 'Name'].indexOf('[部门员工]') == -1
552
- ) {
553
- this.form[label + 'Name'] = this.form[label + 'Name']
554
- ? this.form[label + 'Name'] +
555
- '|' +
556
- '[部门员工]-' +
557
- obj[key].join(',')
558
- : '' + '[部门员工]-' + obj[key].join(',');
559
- }
560
- }
561
- // this.form[label + 'Name'] = obj.enterprise?;
562
- this.form[label + 'SerialId'] = SerialId.join(',');
563
- this.form[label + 'Json'] = JSON.stringify(res.list);
564
- },
565
-
566
- // 修改默认办理人
567
- changeDefPeople(def, all) {
568
- this.nextUserSelectList = [];
569
- if ((def == 1 && all == 1) || (def == 0 && all == 1)) {
570
- let ids = '';
571
- this.nextUserList.map((r, i) => {
572
- r.showid = r.userId;
573
- r.showname = r.username;
574
- this.$set(r, 'checked', true);
575
- this.nextUserSelectList.push(r);
576
- ids += r.userId + (i === this.nextUserList.length - 1 ? '' : ',');
577
- });
578
- this.form.nextUserId = ids;
579
- } else if (
580
- def == 1 &&
581
- (!all || all == 0) &&
582
- this.nextUserList.length > 0
583
- ) {
584
- this.nextUserList[0].showid = this.nextUserList[0].userId;
585
- this.nextUserList[0].showname = this.nextUserList[0].username;
586
- this.$set(this.nextUserList[0], 'checked', true);
587
- this.nextUserSelectList.push(this.nextUserList[0]);
588
- this.form.nextUserId = this.nextUserSelectList[0].userId;
589
- }
590
- }
591
- }
592
- };
593
- </script>
594
-
595
- <style></style>
1
+ <template>
2
+ <div class="process-handle">
3
+ <div style="display: flex; flex-direction: column; height: 100%">
4
+ <div class="process-content">
5
+ <!-- 当前节点 -->
6
+ <div class="present-node">
7
+ <div class="label">当前节点:</div>
8
+ <div>{{ nodeName }}</div>
9
+ </div>
10
+ <!-- 意见 -->
11
+ <Opinion
12
+ :esign="esign"
13
+ :esignLineWidth="
14
+ $attrs['esign-line-width'] || $attrs['esignLineWidth']
15
+ "
16
+ @onInputOpintion="onInputOpintion"
17
+ :baseUrl="baseUrl"
18
+ :isForceDisplayDefaultOptionForPrefix="
19
+ isForceDisplayDefaultOptionForPrefix
20
+ "
21
+ @click="handlePop"
22
+ :opinionType="opinionType"
23
+ :paddingTop="paddingTop"
24
+ :showOpinionPop="showOpinionPop"
25
+ :pendingItemHandleDescription="pendingItemHandleDescription"
26
+ :placeholder="
27
+ pendingItemHandleDescription || opinionHandleExplainText
28
+ "
29
+ :nodeDefaultSubmitOpinion="nodeDefaultSubmitOpinion"
30
+ :nodeFixedOpinionSelectList="nodeFixedOpinionSelectList"
31
+ :isHiddenOftenOpinion="isHiddenOftenOpinion == 1 ? false : true"
32
+ ></Opinion>
33
+ <!-- 审核内容 -->
34
+ <div class="special-box input-box" v-if="typeCode != 'fenyue'">
35
+ <div>
36
+ <!-- 下一步所有相关操作-->
37
+ <div>
38
+ <div class="next-box">
39
+ <!-- 下步节点 -->
40
+ <div class="item" v-if="nodeList && nodeList.length > 0">
41
+ <em-picker
42
+ v-if="nextNodeCheckType == 'select'"
43
+ title="下步节点"
44
+ label="下步节点"
45
+ required
46
+ show-toolbar
47
+ v-model="form.nextNodeName"
48
+ label-width="100%"
49
+ :columns="nodeList"
50
+ value-key="nodeId"
51
+ label-key="nodeName"
52
+ />
53
+ <em-input
54
+ v-else
55
+ value="下步节点"
56
+ label="下步节点"
57
+ required
58
+ class="em-flow-next-steps"
59
+ :disabled="true"
60
+ label-position="top"
61
+ >
62
+ <template slot="input">
63
+ <em-radio-group
64
+ v-model="form.nextNodeId"
65
+ :data="nodeList"
66
+ value-key="nodeId"
67
+ label-key="nodeName"
68
+ direction="horizontal"
69
+ />
70
+ </template>
71
+ </em-input>
72
+ </div>
73
+ </div>
74
+ <!-- 本单位-->
75
+ <!-- v-if="isHideCurrentOrg" -->
76
+ <div class="item">
77
+ <em-selector
78
+ v-model="nextCurrentOrgObjSelect"
79
+ multiple
80
+ :isAllCheck="isAllCheck"
81
+ @selector-click="handleSelectorClick"
82
+ :paddingTop="paddingTop"
83
+ isDepartment
84
+ :objType="'enterprise'"
85
+ tabs="employee,persongroup"
86
+ :param="currentOrgSelectorParams"
87
+ :disableds="currentOrgDisabledObjId"
88
+ :baseUrl="apiBaseUrl"
89
+ :isOtherUnit="false"
90
+ :label="'本单位'"
91
+ @change="disposeAppUnit($event, 'nextCurrentOrgObjSelect')"
92
+ />
93
+ </div>
94
+ <!-- 外单位 -->
95
+ <!-- v-if="isHideOtherOrg" -->
96
+ <div class="item">
97
+ <em-selector
98
+ v-model="nextOtherOrgObjSelect"
99
+ multiple
100
+ @selector-click="handleSelectorClick"
101
+ :isAllCheck="isAllCheck"
102
+ :paddingTop="paddingTop"
103
+ :objType="'enterprise'"
104
+ :param="foreignOrgSelectorParams"
105
+ tabs="enterprise,filgroup"
106
+ :baseUrl="apiBaseUrl"
107
+ :disableds="otherOrgDisabledObjId"
108
+ :isOtherUnit="true"
109
+ :label="'外单位'"
110
+ isEnterprise
111
+ @change="disposeAppUnit($event, 'nextOtherOrgObjSelect')"
112
+ />
113
+ </div>
114
+ </div>
115
+
116
+ <!-- 通知方式 -->
117
+ <!-- <div class="item-msg item-msg2">
118
+ <Message
119
+ ref="message"
120
+ :code="'notification_type'"
121
+ :baseUrl="baseUrl"
122
+ :defaultNotificationType="defaultNotificationType"
123
+ :pendingId="pendingId"
124
+ :defaultNotificationMsg="form.notificationMsg"
125
+ @onInputMsg="onInputMsg"
126
+ ></Message>
127
+ </div> -->
128
+ </div>
129
+ </div>
130
+ </div>
131
+
132
+ <div class="btn-list">
133
+ <div class="btn" @click="navigateBack">取消</div>
134
+ <div class="btn" @click="onSubmit()">确定</div>
135
+ </div>
136
+ </div>
137
+ </div>
138
+ </template>
139
+
140
+ <script>
141
+ import {
142
+ directStartTaskCircularRead,
143
+ endFlowAndStartTaskCircularRead
144
+ // getNotificationMsg
145
+ } from '../../../../src/config/api.js';
146
+ import request from '../../../../src/utils/http.js';
147
+ import Opinion from './Opinion.vue';
148
+ import Message from './Message.vue';
149
+ import $ from '../../../../src/utils/util';
150
+ export default {
151
+ name: 'Handle',
152
+ inheritAttrs: false,
153
+ components: {
154
+ Opinion,
155
+ Message
156
+ },
157
+ props: {
158
+ businessId: String,
159
+ pendingId: String,
160
+ identityIds: String, //用户id
161
+ beforeSubmit: Function,
162
+ orgId: String, //单位id
163
+ depId: String, //部门id
164
+ baseUrl: String,
165
+ apiBaseUrl: String,
166
+ typeCode: String,
167
+ type: String,
168
+ paddingTop: {
169
+ type: [String, Number],
170
+ default: 0
171
+ },
172
+ showOpinionPop: {
173
+ type: Boolean,
174
+ default: false
175
+ },
176
+ opinionType: {
177
+ type: String,
178
+ default: 'picker'
179
+ },
180
+ defId: {
181
+ type: String,
182
+ default: ''
183
+ },
184
+ isAllCheck: {
185
+ type: Boolean,
186
+ default: false
187
+ },
188
+ isPreset: {
189
+ type: Boolean,
190
+ default: false
191
+ },
192
+ esign: {
193
+ type: Boolean,
194
+ default: false
195
+ },
196
+ userId: {
197
+ type: String,
198
+ default: ''
199
+ },
200
+ nodeName: {
201
+ type: String,
202
+ default: '拟稿'
203
+ },
204
+ nextNodeCheckType: {
205
+ type: String,
206
+ default: ''
207
+ },
208
+ selectorParams: { type: Object, default: () => {} },
209
+ title: {
210
+ type: String,
211
+ default: ''
212
+ }
213
+ },
214
+ data() {
215
+ return {
216
+ AddSignList: [
217
+ { name: '前置加签', value: 'preAddSign' },
218
+ { name: '后置加签', value: 'postAddSign' }
219
+ ],
220
+ currentOrgSelectorParams: { only_filid: true,onlyMyOrg:true },
221
+ currentOrgSelectorTabs: 'employee, persongroup',
222
+ foreignOrgSelectorTabs: 'enterprise,filgroupobj',
223
+ foreignOrgSelectorParams: { roleid: '' },
224
+ otherOrgDisabledObjId: [],
225
+ currentNodeEnableItemHandleDescription: false,
226
+ pendingItemHandleDescription: '',
227
+ taskOperationShiftedNodeList: null,
228
+ oldNextOperate: '',
229
+ processFormType: 'freeStart',
230
+ currentOrgDisabledObjId: [],
231
+ nextNodeDefault: 0,
232
+ showDefList: false,
233
+ deptRoleCode: '',
234
+ readOnlyNotificationType: '',
235
+ notificationMessageReadOnly: false,
236
+ freeStartFlowParams: {}, //自由发起流程参数
237
+ taskParams: {},
238
+ isCanPreAddSign: false,
239
+ showAppUnit: false, // 弹窗单位
240
+ handleFlow: true,
241
+ freeValid: true,
242
+ showFreeStart: false,
243
+ freeStartInfo: {},
244
+ isReject: false,
245
+ opinionHandleExplainText: undefined,
246
+ isCurrentNodeForbiddenChangeCandidate: 0,
247
+ nodeFixedOpinionSelectList: [],
248
+ isChooseNextNode: 1, //是否展示下步操作
249
+ pid: 'root', //树选中pid
250
+ objType: 'enterprise', //树点击对象
251
+ selectType: 'employee', // 树 选择类型
252
+ isNextBox: true, // 是否展开隐藏下步操作
253
+ isForceDisplayDefaultOptionForPrefix: false,
254
+ isOtherUnit: true, //是否是外单位
255
+ isShowNode: false,
256
+ subProcessInfo: '',
257
+ isNodeShowProcess: false, //是否展示主办
258
+ isHiddenOftenOpinion: undefined, //是否隐藏常用意见
259
+ isAddSignList: [
260
+ { name: '是', value: '1' },
261
+ { name: '否', value: '2' }
262
+ ],
263
+ taskReadOpinionRequired: undefined,
264
+ form: {
265
+ opinion: undefined, // 审批意见
266
+ nextCurrentOrgObj: undefined, // 本单位对象
267
+ nextCurrentOrgObjSerialId: undefined, //本单位办理对象序列id
268
+ nextOtherOrgObj: undefined, //外单位对象
269
+ nextOtherOrgObjSerialId: undefined, //外单位办理对象序列id
270
+ notificationMsg: undefined, //通知消息
271
+ nextNodeName: 3,
272
+ nextNodeId: 3
273
+ },
274
+ isCanFenyue: '0',
275
+
276
+ nextCurrentOrgObjSelect: [], // 选中本单位
277
+ nextOtherOrgObjSelect: [], //选中外单位
278
+ nextReadUserSelectList: [], //分阅选择数组
279
+ nodeList: [{ nodeId: 3, nodeName: '传阅' }], // 流程节点列表
280
+
281
+ opinionList: [], // 意见列表
282
+
283
+ userInfo: {}, // 用户信息
284
+ isCanAddSign: false, //是否显示加签
285
+ isCanRemoveSign: false, //是否显示减签
286
+ isSpecial: true, //判断审核内容是否显示(是否是正常的办理页面)
287
+ taskOperations: [], //下一步操作
288
+ countersignaturetypeCode: false, //用来判断处理方式是否显示
289
+ countersignaturetypeText: undefined, // 处理方式
290
+ isCustomPreset: false, // 是否允许预设节点
291
+ isHideCurrentOrg: false, //是否隐藏本单位(承办)
292
+ isHideOtherOrg: false, //是否隐藏外单位(承办)
293
+ isHandleExplain: false, // 是否允许办理说明
294
+ isTaskread: false, //是否分阅
295
+ defaultNotificationType: undefined, ///默认选中通知类型
296
+ selectUnitType: 'department', //单位树选择类型
297
+ isHiddenNextStepInfo: false, //是否隐藏下一步节点信息和接收人信息
298
+ presetEdit: true, //预设是否允许编辑
299
+ isLimitedTimeHandling: false, //是否支持发起子流程限时办理
300
+ userSelectionType: undefined, //处理人选择方式
301
+ orgSelectionType: undefined, //办理机构选择方式
302
+ notificationType: undefined, // 通知方式
303
+ nodeType: undefined, // 节点类型(普通节点0,承办节点1,会签节点2,阅办节点3)
304
+ deptRoleCode: undefined, //本单位角色
305
+ orgRoleCode: undefined, //外单位角色
306
+ appointNotUserIds: undefined, //业务指定非处理人
307
+ handleRoleId: undefined, //办理角色(一般选择范围是部门/单位使用)
308
+ nextRole: undefined, //下步节点默认角色
309
+ filterCandinateIds: undefined, //节点过滤办理人
310
+ selectorDefShowDeptId: undefined, //选择器默认展示部门
311
+ isRadio: true, //下步办理人是否单选
312
+ otherOrgName: undefined, //外单位名字
313
+ currentOrgName: undefined, //本单位名字
314
+ isMainSubProcess: false, // 判断是否子-主流程
315
+ isNextUser: false, // 判断是否显示下步办理人
316
+ isDealObject: false, //判断是否显示办理对象
317
+ isDealRole: false, //判断是否显示办理角色
318
+ nextUserflag: false,
319
+ isSubmitButtonShowAgreeAndDisagree: 0, //是否展示同意和不同意按钮
320
+ isCustomUserClick: false, //下步办理人选择是否可以点击
321
+ timeListLable: undefined, //用来判断是哪里点开的时间遮罩层
322
+ nodeDefaultSubmitOpinion: undefined, //默认提交意见
323
+ isCustomUser: 0, //是否可选中办理人
324
+ choiceOrgId: '',
325
+ choiceDeptId: '',
326
+ taskExamineInfo: {},
327
+ nodeInfoMapInfo: {},
328
+ flowDefList: [],
329
+ file: '',
330
+ isEndUserTask: '',
331
+ tagKey: '',
332
+ pOrgId: '',
333
+ customPresetHintMessage: '',
334
+ enableCustomLimitTimeSetting: false,
335
+ showCustomLimitTimeText: false,
336
+ needRetrialAuth: false,
337
+ defaultNextNode: ''
338
+ };
339
+ },
340
+ created() {
341
+ // this.getMessage();
342
+ this.currentOrgSelectorParams.employee =
343
+ this.currentOrgSelectorParams.persongroup = {
344
+ pid: this.orgId || JSON.parse($.getStorage('userInfo')).orgId,only_filid: true,onlyMyOrg:true
345
+ };
346
+ this.foreignOrgSelectorParams.nofilid =
347
+ this.orgId || JSON.parse($.getStorage('userInfo')).orgId;
348
+ this.foreignOrgSelectorParams.myUserid = '';
349
+ this.foreignOrgSelectorParams.filgroup = {
350
+ pid: 'root',
351
+ myUserid: this.userId
352
+ };
353
+ this.foreignOrgSelectorParams = {
354
+ ...this.foreignOrgSelectorParams,
355
+ ...this.selectorParams
356
+ };
357
+ },
358
+ computed: {},
359
+ methods: {
360
+ handlePop(val){
361
+ this.$parent.$emit('opinion-change', val);
362
+ },
363
+ handleSelectorClick(val){
364
+ this.$parent.$emit('selector-click', val);
365
+ },
366
+ getMessage() {
367
+ let params = {
368
+ url: getNotificationMsg,
369
+ params: {
370
+ processDefinitionId: this.defId,
371
+ businessId: this.businessId,
372
+ pendingId: this.pendingId,
373
+ openMode: this.pendingId ? '' : 'samepage'
374
+ }
375
+ };
376
+ request(params).then((res) => {
377
+ if (res.rCode == 0 || res.status == 'success') {
378
+ this.form.notificationMsg = res.message.replace(
379
+ '{title}',
380
+ this.title || ''
381
+ );
382
+ }
383
+ });
384
+ },
385
+ navigateBack() {
386
+ this.$parent.$emit('close');
387
+ },
388
+ // 通知消息回调
389
+ onInputMsg(obj) {
390
+ this.form.notificationType = obj.notificationType.join(',');
391
+ this.form.notificationMsg = obj.notificationMsg;
392
+ },
393
+ onSubmit() {
394
+ let params = {
395
+ url: this.pendingId
396
+ ? endFlowAndStartTaskCircularRead
397
+ : directStartTaskCircularRead,
398
+ params: {
399
+ businessId: this.businessId,
400
+ pendingId: this.pendingId,
401
+ processDefinitionId: this.defId,
402
+ notificationMsg: this.form.notificationMsg,
403
+ notificationType: this.form.notificationType,
404
+ opinion: this.form.opinion,
405
+ nextOtherOrgObj: this.form.nextOtherOrgObj,
406
+ nextCurrentOrgObj: this.form.nextCurrentOrgObj,
407
+ mobileKey: 'ceshi',
408
+ loginType: 2
409
+ },
410
+ type: 'post'
411
+ };
412
+ if (!this.form.nextOtherOrgObj && !this.form.nextCurrentOrgObj) {
413
+ this.$toast('请选择办理对象');
414
+ return;
415
+ }
416
+ this.$toast.loading({
417
+ message: '提交中...',
418
+ forbidClick: true,
419
+ loadingType: 'spinner',
420
+ overlay: true,
421
+ duration: 0
422
+ });
423
+ request(params).then((res) => {
424
+ this.$toast.clear();
425
+ if (res.rCode == 0 || res.status == 'success') {
426
+ this.$toast.success('提交成功');
427
+ this.$parent.$emit('success');
428
+ } else {
429
+ this.$toast(res.message || '系统错误,请联系管理员!');
430
+ setTimeout(() => {
431
+ this.$parent.$emit('error');
432
+ }, 1000);
433
+ }
434
+ });
435
+ },
436
+ // 删除
437
+ delteList(label, i) {
438
+ if (label === 'nextUserSelectList') {
439
+ let _this = this;
440
+ let id = _this.nextUserSelectList[i].showid;
441
+ this.nextUserList.find((i) => {
442
+ if (i.userId === id) {
443
+ _this.$set(i, 'checked', false);
444
+ }
445
+ });
446
+ this[label].splice(i, 1);
447
+ } else {
448
+ this[label].splice(i, 1);
449
+ }
450
+ },
451
+ // 选择办理人
452
+ onClickPeople(id) {
453
+ this.showAppUser = true;
454
+ this.selectList = this[id];
455
+ this.$nextTick(function () {
456
+ this.$refs.selectTree.getContent(id);
457
+ });
458
+ },
459
+ // 选择单位
460
+ onClickOrg(id) {
461
+ this.isOtherUnit = id === 'nextCurrentOrgObjSelect' ? false : true;
462
+ this.selectUnitType =
463
+ id === 'nextCurrentOrgObjSelect' ? 'department,employee' : 'department';
464
+ this.showAppUnit = true;
465
+ this.$nextTick(function () {
466
+ this.$refs.selectTreeUnit.getContent(id);
467
+ });
468
+ },
469
+
470
+ // 意见回调
471
+ onInputOpintion(val) {
472
+ const { opinion, isImageOpinion, file } = val;
473
+ this.form.opinion = opinion;
474
+ this.form.isImageOpinion = isImageOpinion;
475
+ this.file = file;
476
+ },
477
+ // 办理人选择完回调
478
+ disposeAppUser(res, type) {
479
+ this[type] = res.list;
480
+ let label = '';
481
+ if (type) {
482
+ label = type.substring(0, type.lastIndexOf('SelectList'));
483
+ } else {
484
+ label = res.label.substring(0, res.label.lastIndexOf('SelectList'));
485
+ }
486
+
487
+ let idStr = '';
488
+ if (res.list) {
489
+ res.list.map((r, i) => {
490
+ idStr = idStr + r.showid + (i === res.list.length - 1 ? '' : ',');
491
+ });
492
+ } else {
493
+ res.map((r, i) => {
494
+ idStr = idStr + r.showid + (i === res.length - 1 ? '' : ',');
495
+ });
496
+ }
497
+ this.form[label + 'Id'] = idStr;
498
+ },
499
+ // 单位选择完回调
500
+ disposeAppUnit(res, type) {
501
+ let label = type.substring(0, type.lastIndexOf('Select'));
502
+ let idStr = '';
503
+ let types = '';
504
+ let SerialId = [];
505
+ this.form[label + 'Name'] = '';
506
+ let obj = {};
507
+ res.list.map((r, i) => {
508
+ if (!types || types.indexOf(r.mixType) == -1) {
509
+ idStr = !types
510
+ ? r.mixType +
511
+ '-' +
512
+ r.showid +
513
+ (i === res.list.length - 1 ? '' : ',')
514
+ : idStr +
515
+ '|' +
516
+ r.mixType +
517
+ '-' +
518
+ r.showid +
519
+ (i === res.list.length - 1 ? '' : ',');
520
+ types = types ? types + ',' + r.mixType : r.mixType;
521
+ } else {
522
+ idStr = idStr + r.showid + (i === res.list.length - 1 ? '' : ',');
523
+ }
524
+ SerialId.push(r.showid);
525
+ if (obj[r.mixType]) {
526
+ obj[r.mixType].push(r.showname);
527
+ } else {
528
+ obj[r.mixType] = [r.showname];
529
+ }
530
+ });
531
+ this.form[label] = idStr;
532
+ for (let key in obj) {
533
+ if (
534
+ key === 'enterprise' &&
535
+ this.form[label + 'Name'].indexOf('[企业]') == -1
536
+ ) {
537
+ this.form[label + 'Name'] = this.form[label + 'Name']
538
+ ? this.form[label + 'Name'] + '|' + '[企业]-' + obj[key].join(',')
539
+ : '' + '[企业]-' + obj[key].join(',');
540
+ }
541
+ if (
542
+ key === 'department' &&
543
+ this.form[label + 'Name'].indexOf('[部门]') == -1
544
+ ) {
545
+ this.form[label + 'Name'] = this.form[label + 'Name']
546
+ ? this.form[label + 'Name'] + '|' + '[部门]-' + obj[key].join(',')
547
+ : '' + '[部门]-' + obj[key].join(',');
548
+ }
549
+ if (
550
+ key === 'employee' &&
551
+ this.form[label + 'Name'].indexOf('[部门员工]') == -1
552
+ ) {
553
+ this.form[label + 'Name'] = this.form[label + 'Name']
554
+ ? this.form[label + 'Name'] +
555
+ '|' +
556
+ '[部门员工]-' +
557
+ obj[key].join(',')
558
+ : '' + '[部门员工]-' + obj[key].join(',');
559
+ }
560
+ }
561
+ // this.form[label + 'Name'] = obj.enterprise?;
562
+ this.form[label + 'SerialId'] = SerialId.join(',');
563
+ this.form[label + 'Json'] = JSON.stringify(res.list);
564
+ },
565
+
566
+ // 修改默认办理人
567
+ changeDefPeople(def, all) {
568
+ this.nextUserSelectList = [];
569
+ if ((def == 1 && all == 1) || (def == 0 && all == 1)) {
570
+ let ids = '';
571
+ this.nextUserList.map((r, i) => {
572
+ r.showid = r.userId;
573
+ r.showname = r.username;
574
+ this.$set(r, 'checked', true);
575
+ this.nextUserSelectList.push(r);
576
+ ids += r.userId + (i === this.nextUserList.length - 1 ? '' : ',');
577
+ });
578
+ this.form.nextUserId = ids;
579
+ } else if (
580
+ def == 1 &&
581
+ (!all || all == 0) &&
582
+ this.nextUserList.length > 0
583
+ ) {
584
+ this.nextUserList[0].showid = this.nextUserList[0].userId;
585
+ this.nextUserList[0].showname = this.nextUserList[0].username;
586
+ this.$set(this.nextUserList[0], 'checked', true);
587
+ this.nextUserSelectList.push(this.nextUserList[0]);
588
+ this.form.nextUserId = this.nextUserSelectList[0].userId;
589
+ }
590
+ }
591
+ }
592
+ };
593
+ </script>
594
+
595
+ <style></style>