eoss-mobiles 0.4.0 → 0.4.2

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 (232) hide show
  1. package/CHANGELOG.md +95 -0
  2. package/lib/button-group.js +2 -2
  3. package/lib/button.js +2 -2
  4. package/lib/calendar.js +2 -2
  5. package/lib/cell.js +2 -2
  6. package/lib/checkbox.js +2 -2
  7. package/lib/circle.js +2 -2
  8. package/lib/count-down.js +2 -2
  9. package/lib/empty.js +2 -2
  10. package/lib/eoss-mobile.common.js +542 -93
  11. package/lib/field.js +2 -2
  12. package/lib/flow-btn.js +2 -2
  13. package/lib/flow.js +8 -8
  14. package/lib/form.js +593 -144
  15. package/lib/grid-item.js +2 -2
  16. package/lib/grid.js +2 -2
  17. package/lib/index.js +1 -1
  18. package/lib/list.js +2 -2
  19. package/lib/loading.js +85 -85
  20. package/lib/nav-bar.js +2 -2
  21. package/lib/picker.js +12 -11
  22. package/lib/popover.js +2 -2
  23. package/lib/radio.js +8 -7
  24. package/lib/search.js +2 -2
  25. package/lib/selector.js +28 -28
  26. package/lib/switch.js +2 -2
  27. package/lib/tab.js +2 -2
  28. package/lib/table-column.js +3 -2
  29. package/lib/tabs.js +2 -2
  30. package/lib/tag.js +2 -2
  31. package/lib/theme-chalk/fonts/iconfont.scss +98 -98
  32. package/lib/theme-chalk/fonts/iconfont1.scss +90 -90
  33. package/lib/theme-chalk/form.css +1 -1
  34. package/lib/theme-chalk/index.css +1 -1
  35. package/lib/uploader.js +3 -2
  36. package/package.json +1 -1
  37. package/packages/action-sheet/index.js +5 -5
  38. package/packages/action-sheet/src/main.vue +32 -32
  39. package/packages/button/index.js +5 -5
  40. package/packages/button/src/main.vue +15 -15
  41. package/packages/button-group/index.js +5 -5
  42. package/packages/button-group/src/main.vue +80 -80
  43. package/packages/calendar/index.js +5 -5
  44. package/packages/calendar/src/main.vue +34 -34
  45. package/packages/cascader/index.js +5 -5
  46. package/packages/cascader/src/main.vue +39 -39
  47. package/packages/cell/index.js +5 -5
  48. package/packages/cell/src/main.vue +77 -77
  49. package/packages/checkbox/index.js +5 -5
  50. package/packages/checkbox/src/main.vue +232 -232
  51. package/packages/circle/index.js +5 -5
  52. package/packages/circle/src/main.vue +27 -27
  53. package/packages/count-down/index.js +5 -5
  54. package/packages/count-down/src/main.vue +27 -27
  55. package/packages/date/index.js +5 -5
  56. package/packages/date/src/date-time.vue +290 -290
  57. package/packages/date/src/main.vue +401 -401
  58. package/packages/empty/index.js +5 -5
  59. package/packages/empty/src/main.vue +16 -16
  60. package/packages/esign/index.js +5 -5
  61. package/packages/esign/src/main.vue +144 -144
  62. package/packages/field/index.js +5 -5
  63. package/packages/flow/index.js +5 -5
  64. package/packages/flow/src/components/Circulate.vue +595 -595
  65. package/packages/flow/src/components/Handle.vue +2404 -2404
  66. package/packages/flow/src/components/Message.vue +208 -208
  67. package/packages/flow/src/components/ProcessSettings.vue +342 -342
  68. package/packages/flow/src/components/TaskRead.vue +1 -1
  69. package/packages/flow/src/components/supervise.vue +139 -139
  70. package/packages/flow/src/flowMix.js +288 -288
  71. package/packages/flow/src/main.vue +116 -116
  72. package/packages/flow-btn/index.js +5 -5
  73. package/packages/flow-btn/src/main.vue +494 -494
  74. package/packages/flow-list/index.js +5 -5
  75. package/packages/flow-list/src/main.vue +248 -248
  76. package/packages/form/index.js +5 -5
  77. package/packages/form/src/CustomCard.vue +201 -0
  78. package/packages/form/src/main.vue +32 -19
  79. package/packages/grid/index.js +5 -5
  80. package/packages/grid/src/main.vue +486 -486
  81. package/packages/grid-item/index.js +5 -5
  82. package/packages/grid-item/src/main.vue +16 -16
  83. package/packages/image/index.js +5 -5
  84. package/packages/image/src/main.vue +12 -12
  85. package/packages/image-preview/index.js +5 -5
  86. package/packages/list/index.js +5 -5
  87. package/packages/list/src/main.vue +32 -32
  88. package/packages/loading/index.js +5 -5
  89. package/packages/loading/src/main.vue +19 -19
  90. package/packages/nav-bar/index.js +5 -5
  91. package/packages/nav-bar/src/main.vue +24 -24
  92. package/packages/notice-bar/index.js +5 -5
  93. package/packages/notice-bar/src/main.vue +15 -15
  94. package/packages/pagination/index.js +5 -5
  95. package/packages/pagination/src/main.vue +73 -73
  96. package/packages/picker/index.js +5 -5
  97. package/packages/picker/src/main.vue +604 -604
  98. package/packages/popover/index.js +5 -5
  99. package/packages/popover/src/main.vue +32 -32
  100. package/packages/popup/index.js +5 -5
  101. package/packages/popup/src/main.vue +27 -27
  102. package/packages/pull-refresh/index.js +5 -5
  103. package/packages/pull-refresh/src/main.vue +31 -31
  104. package/packages/radio/index.js +5 -5
  105. package/packages/radio/src/main.vue +179 -179
  106. package/packages/rate/index.js +5 -5
  107. package/packages/rate/src/main.vue +26 -26
  108. package/packages/retrial-auth/index.js +5 -5
  109. package/packages/retrial-auth/src/main.vue +257 -257
  110. package/packages/search/index.js +5 -5
  111. package/packages/search/src/main.vue +39 -39
  112. package/packages/selector/index.js +5 -5
  113. package/packages/selector/src/main.vue +186 -186
  114. package/packages/selector/src/selector-tree.vue +1117 -1117
  115. package/packages/selector/src/tree.vue +405 -405
  116. package/packages/skeleton/index.js +5 -5
  117. package/packages/skeleton/src/main.vue +17 -17
  118. package/packages/stepper/index.js +5 -5
  119. package/packages/stepper/src/main.vue +25 -25
  120. package/packages/swipe/index.js +5 -5
  121. package/packages/swipe/src/main.vue +42 -42
  122. package/packages/switch/index.js +5 -5
  123. package/packages/switch/src/main.vue +38 -38
  124. package/packages/tab/index.js +5 -5
  125. package/packages/tab/src/main.vue +16 -16
  126. package/packages/table/index.js +5 -5
  127. package/packages/table/src/main.vue +1006 -1006
  128. package/packages/table-column/index.js +5 -5
  129. package/packages/table-column/src/main.vue +931 -931
  130. package/packages/table-column/src/mixins/table.js +12 -12
  131. package/packages/tabs/index.js +5 -5
  132. package/packages/tabs/src/main.vue +34 -34
  133. package/packages/tag/index.js +5 -5
  134. package/packages/tag/src/main.vue +16 -16
  135. package/packages/theme-chalk/lib/action-sheet.css +0 -0
  136. package/packages/theme-chalk/lib/base.css +1 -0
  137. package/packages/theme-chalk/lib/button-group.css +1 -0
  138. package/packages/theme-chalk/lib/button.css +1 -0
  139. package/packages/theme-chalk/lib/calendar.css +1 -0
  140. package/packages/theme-chalk/lib/cascader.css +1 -0
  141. package/packages/theme-chalk/lib/cell.css +1 -0
  142. package/packages/theme-chalk/lib/checkbox.css +1 -0
  143. package/packages/theme-chalk/lib/circle.css +1 -0
  144. package/packages/theme-chalk/lib/count-down.css +0 -0
  145. package/packages/theme-chalk/lib/date.css +0 -0
  146. package/packages/theme-chalk/lib/empty.css +0 -0
  147. package/packages/theme-chalk/lib/esign.css +1 -0
  148. package/packages/theme-chalk/lib/field.css +1 -0
  149. package/packages/theme-chalk/lib/flow-btn.css +1 -0
  150. package/packages/theme-chalk/lib/flow-list-task-read.css +1 -0
  151. package/packages/theme-chalk/lib/flow-list.css +1 -0
  152. package/packages/theme-chalk/lib/flow.css +1 -0
  153. package/packages/theme-chalk/lib/fonts/iconfont.scss +98 -0
  154. package/packages/theme-chalk/lib/fonts/iconfont.ttf +0 -0
  155. package/packages/theme-chalk/lib/fonts/iconfont.woff +0 -0
  156. package/packages/theme-chalk/lib/fonts/iconfont1.scss +90 -0
  157. package/packages/theme-chalk/lib/form.css +1 -0
  158. package/packages/theme-chalk/lib/grid-item.css +1 -0
  159. package/packages/theme-chalk/lib/grid.css +1 -0
  160. package/packages/theme-chalk/lib/icon.css +1 -0
  161. package/packages/theme-chalk/lib/image-preview.css +0 -0
  162. package/packages/theme-chalk/lib/image.css +0 -0
  163. package/packages/theme-chalk/lib/index.css +1 -0
  164. package/packages/theme-chalk/lib/list.css +0 -0
  165. package/packages/theme-chalk/lib/loading.css +0 -0
  166. package/packages/theme-chalk/lib/nav-bar.css +0 -0
  167. package/packages/theme-chalk/lib/navbar.css +1 -0
  168. package/packages/theme-chalk/lib/notice-bar.css +0 -0
  169. package/packages/theme-chalk/lib/pagination.css +1 -0
  170. package/packages/theme-chalk/lib/picker.css +1 -0
  171. package/packages/theme-chalk/lib/popover.css +0 -0
  172. package/packages/theme-chalk/lib/popup.css +0 -0
  173. package/packages/theme-chalk/lib/pull-refresh.css +0 -0
  174. package/packages/theme-chalk/lib/radio.css +1 -0
  175. package/packages/theme-chalk/lib/rate.css +0 -0
  176. package/packages/theme-chalk/lib/retrial-auth.css +1 -0
  177. package/packages/theme-chalk/lib/search.css +0 -0
  178. package/packages/theme-chalk/lib/selector.css +1 -0
  179. package/packages/theme-chalk/lib/skeleton.css +0 -0
  180. package/packages/theme-chalk/lib/stepper.css +1 -0
  181. package/packages/theme-chalk/lib/swipe.css +0 -0
  182. package/packages/theme-chalk/lib/switch.css +1 -0
  183. package/packages/theme-chalk/lib/tab.css +0 -0
  184. package/packages/theme-chalk/lib/table-column.css +0 -0
  185. package/packages/theme-chalk/lib/table.css +1 -0
  186. package/packages/theme-chalk/lib/tabs.css +1 -0
  187. package/packages/theme-chalk/lib/tag.css +1 -0
  188. package/packages/theme-chalk/lib/theme.css +0 -0
  189. package/packages/theme-chalk/lib/tree.css +1 -0
  190. package/packages/theme-chalk/lib/uploader.css +0 -0
  191. package/packages/theme-chalk/src/base.scss +195 -195
  192. package/packages/theme-chalk/src/button-group.scss +25 -25
  193. package/packages/theme-chalk/src/button.scss +2 -2
  194. package/packages/theme-chalk/src/calendar.scss +11 -11
  195. package/packages/theme-chalk/src/cascader.scss +11 -11
  196. package/packages/theme-chalk/src/cell.scss +14 -14
  197. package/packages/theme-chalk/src/checkbox.scss +9 -9
  198. package/packages/theme-chalk/src/circle.scss +6 -6
  199. package/packages/theme-chalk/src/common/var.scss +1525 -1525
  200. package/packages/theme-chalk/src/esign.scss +51 -51
  201. package/packages/theme-chalk/src/field.scss +98 -98
  202. package/packages/theme-chalk/src/flow-btn.scss +99 -99
  203. package/packages/theme-chalk/src/flow-list.scss +122 -122
  204. package/packages/theme-chalk/src/fonts/iconfont.scss +98 -98
  205. package/packages/theme-chalk/src/fonts/iconfont1.scss +90 -90
  206. package/packages/theme-chalk/src/form.scss +107 -33
  207. package/packages/theme-chalk/src/grid-item.scss +16 -16
  208. package/packages/theme-chalk/src/grid.scss +46 -46
  209. package/packages/theme-chalk/src/icon.scss +1661 -1661
  210. package/packages/theme-chalk/src/mixins/color.scss +117 -117
  211. package/packages/theme-chalk/src/navbar.scss +5 -5
  212. package/packages/theme-chalk/src/pagination.scss +12 -12
  213. package/packages/theme-chalk/src/picker.scss +31 -31
  214. package/packages/theme-chalk/src/radio.scss +6 -6
  215. package/packages/theme-chalk/src/retrial-auth.scss +28 -28
  216. package/packages/theme-chalk/src/selector.scss +247 -247
  217. package/packages/theme-chalk/src/stepper.scss +9 -9
  218. package/packages/theme-chalk/src/switch.scss +5 -5
  219. package/packages/theme-chalk/src/table.scss +86 -86
  220. package/packages/theme-chalk/src/tabs.scss +31 -31
  221. package/packages/theme-chalk/src/tag.scss +12 -12
  222. package/packages/theme-chalk/src/theme.scss +1 -1
  223. package/packages/theme-chalk/src/tree.scss +127 -127
  224. package/packages/uploader/index.js +5 -5
  225. package/src/config/api.js +190 -190
  226. package/src/index.js +1 -1
  227. package/src/utils/axios.js +217 -217
  228. package/src/utils/date-util.js +312 -312
  229. package/src/utils/http.js +106 -106
  230. package/src/utils/rules.js +18 -18
  231. package/src/utils/store.js +21 -21
  232. package/packages/theme-chalk/gulpfile.js +0 -25
@@ -1,342 +1,342 @@
1
- <template>
2
- <div class="em-flow-setting">
3
- <van-collapse v-model="active">
4
- <van-collapse-item
5
- :title="customPresetHintMessage || '预设节点信息(折叠不作处理)'"
6
- name="1"
7
- >
8
- <div
9
- class="em-flow-setting-item"
10
- v-for="(item, index) in flowList"
11
- :key="index"
12
- >
13
- <em-picker
14
- :title="`节点${index + 1}`"
15
- :label="`节点${index + 1}`"
16
- show-toolbar
17
- v-model="item.nodeId"
18
- :columns="item.nodeList"
19
- value-key="nodeId"
20
- label-key="nodeName"
21
- @confirm="onConfirmNextNode($event, index)"
22
- />
23
- <em-selector
24
- :multiple="!item.isRadio"
25
- v-show="item.showSelectUser"
26
- :nextUserList="item.nextUserList"
27
- @selector-click="handleSelectorClick"
28
- v-model="item.nextUserSelectList"
29
- label="办理人"
30
- :objType="item.objType"
31
- :param="{
32
- pid: item.pid
33
- }"
34
- :required="
35
- item.nodeId != '' &&
36
- (typeof item.nodeId == 'object'
37
- ? item.nodeId.nodeId
38
- : item.nodeId) != '-2'
39
- "
40
- tabs="employee,persongroup"
41
- :baseUrl="apiBaseUrl"
42
- :paddingTop="paddingTop"
43
- />
44
- <van-icon
45
- name="down"
46
- v-show="index + 1 != flowList.length"
47
- style="margin-top: 10px"
48
- /></div></van-collapse-item
49
- ></van-collapse>
50
- </div>
51
- </template>
52
-
53
- <script>
54
- import {
55
- getPresetCustomInfo,
56
- getNodeInfoHtml
57
- } from '../../../../src/config/api.js';
58
- import request from '../../../../src/utils/http.js';
59
- export default {
60
- props: {
61
- processDefinitionId: {
62
- type: String,
63
- default: ''
64
- },
65
- nodeId: {
66
- type: String,
67
- default: ''
68
- },
69
- businessId: {
70
- type: String,
71
- default: ''
72
- },
73
- taskId: {
74
- type: String,
75
- default: ''
76
- },
77
- customPresetHintMessage: {
78
- type: String,
79
- default: ''
80
- },
81
- pendingId: {
82
- type: String,
83
- default: ''
84
- },
85
- apiBaseUrl: {
86
- type: String,
87
- default: ''
88
- },
89
- paddingTop: {
90
- type: Number,
91
- default: 0
92
- },
93
- choiceOrgId: {
94
- type: String,
95
- default: ''
96
- },
97
- pOrgId: {
98
- type: String,
99
- default: ''
100
- },
101
- choiceDeptId: {
102
- type: String,
103
- default: ''
104
- }
105
- },
106
- data() {
107
- return {
108
- name: '',
109
- pid: 'root',
110
- objType: 'enterprise',
111
- selectType: 'employee',
112
- active: ['1'],
113
- flowList: [],
114
- selectList: [],
115
- isRadio: true,
116
- nodeList: []
117
- };
118
- },
119
- watch: {
120
- nodeId: {
121
- handler(val) {
122
- if (val) {
123
- // this.getProList(val);
124
- this.getNodeInfo(val);
125
- }
126
- },
127
- immediate: true,
128
- deep: true
129
- }
130
- },
131
- methods: {
132
- handleSelectorClick(val) {
133
- this.$parent.$emit('selector-click', val);
134
- },
135
- getValue() {
136
- let pass = true;
137
- let PresetData = [];
138
- let newFlowList = this.flowList.filter(
139
- (x) =>
140
- x.nodeId &&
141
- (typeof x.nodeId == 'object' ? x.nodeId.nodeId : x.nodeId) != '-2'
142
- );
143
- for (let i = 0; i < newFlowList.length; i++) {
144
- if (
145
- newFlowList[i].nextUserSelectList.length == 0 &&
146
- newFlowList[i].showSelectUser
147
- ) {
148
- pass = false;
149
- this.$toast(`请选择节点${i + 1}的办理人`);
150
- return false;
151
- }
152
- }
153
- if (pass) {
154
- newFlowList.map((x, i) => {
155
- PresetData.push({
156
- name: typeof x.nodeId == 'object' ? x.nodeId.nodeId : x.nodeId,
157
- value: x.nextUserSelectList
158
- .map((y) => {
159
- return y.showid;
160
- })
161
- .join(','),
162
- lastName: i == 0 ? this.nodeId : PresetData[i - 1].name,
163
- sequence: i + 1 + ''
164
- });
165
- });
166
- }
167
- return JSON.stringify(PresetData);
168
- },
169
- // 根据返回的办理人类型来判断 选择人员树的范围
170
- changePidObjtype(val, choiceOrgId, choiceDeptId, pOrgId, obj) {
171
- if (val === 1 || val === 2) {
172
- obj.pid = choiceOrgId || this.orgId;
173
- obj.objType = 'enterprise';
174
- obj.selectType = 'employee';
175
- } else if (val === 3 || val === 4) {
176
- obj.pid = 'root';
177
- obj.objType = 'employee';
178
- } else if (val === 5 || val === 6) {
179
- obj.pid = choiceDeptId || this.depId;
180
- obj.objType = 'department';
181
- } else if (val === 11 || val === 12) {
182
- obj.selectType = 'employee';
183
- obj.objType = 'enterprise';
184
- } else if (val === 13) {
185
- obj.pid = choiceDeptId || this.depId;
186
- obj.selectType = 'employee';
187
- obj.objType = 'department';
188
- } else if (val === 14) {
189
- obj.pid = pOrgId || this.orgId;
190
- obj.selectType = 'employee';
191
- } else if (val === 15 || val === 16) {
192
- obj.pid = pOrgId || this.orgId;
193
- obj.selectType = 'employee';
194
- }
195
- // userSelectionType 机构内单选人1,机构内多选人2,所有机构单选人3,所有部门多选人4,本部门单选人5,本部门多选人6,本单位单选部门7,本单位多选部门8,单选单位9,多选单位10,单选机构11,多选机构12,本部门角色13,本单位角色14
196
- val == 2 ||
197
- val == 4 ||
198
- val == 6 ||
199
- val == 8 ||
200
- val == 10 ||
201
- val == 11 ||
202
- val == 12
203
- ? (obj.isRadio = false)
204
- : (obj.isRadio = true); //判断办理人单选多选
205
- },
206
- // 修改默认办理人
207
- changeDefPeople(def, all, data) {
208
- data.nextUserSelectList = [];
209
- if ((def == 1 && all == 1) || (def == 0 && all == 1)) {
210
- let ids = '';
211
- data.nextUserList.map((r, i) => {
212
- r.showid = r.userId;
213
- r.showname = r.username;
214
- this.$set(r, 'checked', true);
215
- data.nextUserSelectList.push(r);
216
- ids += r.userId + (i === data.nextUserList.length - 1 ? '' : ',');
217
- });
218
- // this.form.nextUserId = ids;
219
- } else if (
220
- def == 1 &&
221
- (!all || all == 0) &&
222
- data.nextUserList.length > 0
223
- ) {
224
- data.nextUserList[0].showid = data.nextUserList[0].userId;
225
- data.nextUserList[0].showname = data.nextUserList[0].username;
226
- this.$set(data.nextUserList[0], 'checked', true);
227
- data.nextUserSelectList.push(data.nextUserList[0]);
228
- // this.form.nextUserId = this.nextUserSelectList[0].userId;
229
- }
230
- },
231
- onConfirmNextNode(val, i) {
232
- this.flowList = this.flowList.splice(0, i + 1);
233
- if (val.nodeId == '-2') {
234
- this.flowList[i].nextUserList = [];
235
- this.flowList[i].nextUserSelectList = [];
236
- } else {
237
- this.getNodeInfo(val.nodeId, i);
238
- }
239
- },
240
- getNodeInfo(nodeId, i) {
241
- this.$toast.loading({
242
- message: '加载中...',
243
- forbidClick: true,
244
- loadingType: 'spinner',
245
- overlay: true,
246
- duration: 0
247
- });
248
- request({
249
- url: getNodeInfoHtml,
250
- params: {
251
- processDefinitionId: this.processDefinitionId,
252
- nextNodeId: nodeId,
253
- businessId: this.businessId,
254
- taskId: this.taskId,
255
- pendingId: this.pendingId
256
- }
257
- }).then((res) => {
258
- if (res.status == 'success') {
259
- // this.nodeList = res.data.taskNodeMap;
260
- let obj = {};
261
- if (i != undefined) {
262
- res.data.nextUserList.map((res) => {
263
- res.checked = false;
264
- });
265
-
266
- this.flowList[i].nextUserList = res.data.nextUserList || [];
267
- this.flowList[i].nextUserSelectList = res.data.nextUserList || [];
268
- this.changeDefPeople(
269
- res.data.nodeExtAttr.isDefSelectedObj,
270
- res.data.nodeExtAttr.isSelectedAllObj,
271
- this.flowList[i]
272
- );
273
- this.changePidObjtype(
274
- res.data.nodeExtAttr.userSelectionType,
275
- this.choiceOrgId,
276
- this.choiceDeptId,
277
- this.pOrgId,
278
- this.flowList[i]
279
- );
280
- } else {
281
- this.flowList = [];
282
- obj.nextUserList = [];
283
- obj.nextUserSelectList = [];
284
- this.changeDefPeople(
285
- res.data.nodeExtAttr.isDefSelectedObj,
286
- res.data.nodeExtAttr.isSelectedAllObj,
287
- obj
288
- );
289
- this.changePidObjtype(
290
- res.data.nodeExtAttr.userSelectionType,
291
- this.choiceOrgId,
292
- this.choiceDeptId,
293
- this.pOrgId,
294
- obj
295
- );
296
- }
297
- this.getProList(nodeId, obj);
298
- }
299
- });
300
- },
301
- getProList(nodeId, obj) {
302
- request({
303
- url: getPresetCustomInfo,
304
- params: {
305
- processDefinitionId: this.processDefinitionId,
306
- nodeId: nodeId,
307
- taskAction: 'withExtendData'
308
- }
309
- }).then((res) => {
310
- this.$toast.clear();
311
- if (res.status == 'success') {
312
- let arr = [{ nodeId: '-2', nodeName: '请选择' }];
313
- let isEnd = false;
314
- if (res.data.taskNodeMap) {
315
- for (let i in res.data.taskNodeMap || res.data || {}) {
316
- let obj = {
317
- nodeId: i,
318
- nodeName: res.data.taskNodeMap[i]
319
- };
320
- isEnd = i == 'endEvent';
321
- arr.push(obj);
322
- }
323
- }
324
- if (isEnd) {
325
- arr = arr.slice(1);
326
- }
327
- obj = {
328
- ...obj,
329
- nodeList: arr,
330
- nodeId: '',
331
- nodeId: isEnd ? arr[0].nodeId : '',
332
- showSelectUser: !isEnd
333
- };
334
- this.flowList.push(obj);
335
- }
336
- });
337
- }
338
- }
339
- };
340
- </script>
341
-
342
- <style></style>
1
+ <template>
2
+ <div class="em-flow-setting">
3
+ <van-collapse v-model="active">
4
+ <van-collapse-item
5
+ :title="customPresetHintMessage || '预设节点信息(折叠不作处理)'"
6
+ name="1"
7
+ >
8
+ <div
9
+ class="em-flow-setting-item"
10
+ v-for="(item, index) in flowList"
11
+ :key="index"
12
+ >
13
+ <em-picker
14
+ :title="`节点${index + 1}`"
15
+ :label="`节点${index + 1}`"
16
+ show-toolbar
17
+ v-model="item.nodeId"
18
+ :columns="item.nodeList"
19
+ value-key="nodeId"
20
+ label-key="nodeName"
21
+ @confirm="onConfirmNextNode($event, index)"
22
+ />
23
+ <em-selector
24
+ :multiple="!item.isRadio"
25
+ v-show="item.showSelectUser"
26
+ :nextUserList="item.nextUserList"
27
+ @selector-click="handleSelectorClick"
28
+ v-model="item.nextUserSelectList"
29
+ label="办理人"
30
+ :objType="item.objType"
31
+ :param="{
32
+ pid: item.pid
33
+ }"
34
+ :required="
35
+ item.nodeId != '' &&
36
+ (typeof item.nodeId == 'object'
37
+ ? item.nodeId.nodeId
38
+ : item.nodeId) != '-2'
39
+ "
40
+ tabs="employee,persongroup"
41
+ :baseUrl="apiBaseUrl"
42
+ :paddingTop="paddingTop"
43
+ />
44
+ <van-icon
45
+ name="down"
46
+ v-show="index + 1 != flowList.length"
47
+ style="margin-top: 10px"
48
+ /></div></van-collapse-item
49
+ ></van-collapse>
50
+ </div>
51
+ </template>
52
+
53
+ <script>
54
+ import {
55
+ getPresetCustomInfo,
56
+ getNodeInfoHtml
57
+ } from '../../../../src/config/api.js';
58
+ import request from '../../../../src/utils/http.js';
59
+ export default {
60
+ props: {
61
+ processDefinitionId: {
62
+ type: String,
63
+ default: ''
64
+ },
65
+ nodeId: {
66
+ type: String,
67
+ default: ''
68
+ },
69
+ businessId: {
70
+ type: String,
71
+ default: ''
72
+ },
73
+ taskId: {
74
+ type: String,
75
+ default: ''
76
+ },
77
+ customPresetHintMessage: {
78
+ type: String,
79
+ default: ''
80
+ },
81
+ pendingId: {
82
+ type: String,
83
+ default: ''
84
+ },
85
+ apiBaseUrl: {
86
+ type: String,
87
+ default: ''
88
+ },
89
+ paddingTop: {
90
+ type: Number,
91
+ default: 0
92
+ },
93
+ choiceOrgId: {
94
+ type: String,
95
+ default: ''
96
+ },
97
+ pOrgId: {
98
+ type: String,
99
+ default: ''
100
+ },
101
+ choiceDeptId: {
102
+ type: String,
103
+ default: ''
104
+ }
105
+ },
106
+ data() {
107
+ return {
108
+ name: '',
109
+ pid: 'root',
110
+ objType: 'enterprise',
111
+ selectType: 'employee',
112
+ active: ['1'],
113
+ flowList: [],
114
+ selectList: [],
115
+ isRadio: true,
116
+ nodeList: []
117
+ };
118
+ },
119
+ watch: {
120
+ nodeId: {
121
+ handler(val) {
122
+ if (val) {
123
+ // this.getProList(val);
124
+ this.getNodeInfo(val);
125
+ }
126
+ },
127
+ immediate: true,
128
+ deep: true
129
+ }
130
+ },
131
+ methods: {
132
+ handleSelectorClick(val) {
133
+ this.$parent.$emit('selector-click', val);
134
+ },
135
+ getValue() {
136
+ let pass = true;
137
+ let PresetData = [];
138
+ let newFlowList = this.flowList.filter(
139
+ (x) =>
140
+ x.nodeId &&
141
+ (typeof x.nodeId == 'object' ? x.nodeId.nodeId : x.nodeId) != '-2'
142
+ );
143
+ for (let i = 0; i < newFlowList.length; i++) {
144
+ if (
145
+ newFlowList[i].nextUserSelectList.length == 0 &&
146
+ newFlowList[i].showSelectUser
147
+ ) {
148
+ pass = false;
149
+ this.$toast(`请选择节点${i + 1}的办理人`);
150
+ return false;
151
+ }
152
+ }
153
+ if (pass) {
154
+ newFlowList.map((x, i) => {
155
+ PresetData.push({
156
+ name: typeof x.nodeId == 'object' ? x.nodeId.nodeId : x.nodeId,
157
+ value: x.nextUserSelectList
158
+ .map((y) => {
159
+ return y.showid;
160
+ })
161
+ .join(','),
162
+ lastName: i == 0 ? this.nodeId : PresetData[i - 1].name,
163
+ sequence: i + 1 + ''
164
+ });
165
+ });
166
+ }
167
+ return JSON.stringify(PresetData);
168
+ },
169
+ // 根据返回的办理人类型来判断 选择人员树的范围
170
+ changePidObjtype(val, choiceOrgId, choiceDeptId, pOrgId, obj) {
171
+ if (val === 1 || val === 2) {
172
+ obj.pid = choiceOrgId || this.orgId;
173
+ obj.objType = 'enterprise';
174
+ obj.selectType = 'employee';
175
+ } else if (val === 3 || val === 4) {
176
+ obj.pid = 'root';
177
+ obj.objType = 'employee';
178
+ } else if (val === 5 || val === 6) {
179
+ obj.pid = choiceDeptId || this.depId;
180
+ obj.objType = 'department';
181
+ } else if (val === 11 || val === 12) {
182
+ obj.selectType = 'employee';
183
+ obj.objType = 'enterprise';
184
+ } else if (val === 13) {
185
+ obj.pid = choiceDeptId || this.depId;
186
+ obj.selectType = 'employee';
187
+ obj.objType = 'department';
188
+ } else if (val === 14) {
189
+ obj.pid = pOrgId || this.orgId;
190
+ obj.selectType = 'employee';
191
+ } else if (val === 15 || val === 16) {
192
+ obj.pid = pOrgId || this.orgId;
193
+ obj.selectType = 'employee';
194
+ }
195
+ // userSelectionType 机构内单选人1,机构内多选人2,所有机构单选人3,所有部门多选人4,本部门单选人5,本部门多选人6,本单位单选部门7,本单位多选部门8,单选单位9,多选单位10,单选机构11,多选机构12,本部门角色13,本单位角色14
196
+ val == 2 ||
197
+ val == 4 ||
198
+ val == 6 ||
199
+ val == 8 ||
200
+ val == 10 ||
201
+ val == 11 ||
202
+ val == 12
203
+ ? (obj.isRadio = false)
204
+ : (obj.isRadio = true); //判断办理人单选多选
205
+ },
206
+ // 修改默认办理人
207
+ changeDefPeople(def, all, data) {
208
+ data.nextUserSelectList = [];
209
+ if ((def == 1 && all == 1) || (def == 0 && all == 1)) {
210
+ let ids = '';
211
+ data.nextUserList.map((r, i) => {
212
+ r.showid = r.userId;
213
+ r.showname = r.username;
214
+ this.$set(r, 'checked', true);
215
+ data.nextUserSelectList.push(r);
216
+ ids += r.userId + (i === data.nextUserList.length - 1 ? '' : ',');
217
+ });
218
+ // this.form.nextUserId = ids;
219
+ } else if (
220
+ def == 1 &&
221
+ (!all || all == 0) &&
222
+ data.nextUserList.length > 0
223
+ ) {
224
+ data.nextUserList[0].showid = data.nextUserList[0].userId;
225
+ data.nextUserList[0].showname = data.nextUserList[0].username;
226
+ this.$set(data.nextUserList[0], 'checked', true);
227
+ data.nextUserSelectList.push(data.nextUserList[0]);
228
+ // this.form.nextUserId = this.nextUserSelectList[0].userId;
229
+ }
230
+ },
231
+ onConfirmNextNode(val, i) {
232
+ this.flowList = this.flowList.splice(0, i + 1);
233
+ if (val.nodeId == '-2') {
234
+ this.flowList[i].nextUserList = [];
235
+ this.flowList[i].nextUserSelectList = [];
236
+ } else {
237
+ this.getNodeInfo(val.nodeId, i);
238
+ }
239
+ },
240
+ getNodeInfo(nodeId, i) {
241
+ this.$toast.loading({
242
+ message: '加载中...',
243
+ forbidClick: true,
244
+ loadingType: 'spinner',
245
+ overlay: true,
246
+ duration: 0
247
+ });
248
+ request({
249
+ url: getNodeInfoHtml,
250
+ params: {
251
+ processDefinitionId: this.processDefinitionId,
252
+ nextNodeId: nodeId,
253
+ businessId: this.businessId,
254
+ taskId: this.taskId,
255
+ pendingId: this.pendingId
256
+ }
257
+ }).then((res) => {
258
+ if (res.status == 'success') {
259
+ // this.nodeList = res.data.taskNodeMap;
260
+ let obj = {};
261
+ if (i != undefined) {
262
+ res.data.nextUserList.map((res) => {
263
+ res.checked = false;
264
+ });
265
+
266
+ this.flowList[i].nextUserList = res.data.nextUserList || [];
267
+ this.flowList[i].nextUserSelectList = res.data.nextUserList || [];
268
+ this.changeDefPeople(
269
+ res.data.nodeExtAttr.isDefSelectedObj,
270
+ res.data.nodeExtAttr.isSelectedAllObj,
271
+ this.flowList[i]
272
+ );
273
+ this.changePidObjtype(
274
+ res.data.nodeExtAttr.userSelectionType,
275
+ this.choiceOrgId,
276
+ this.choiceDeptId,
277
+ this.pOrgId,
278
+ this.flowList[i]
279
+ );
280
+ } else {
281
+ this.flowList = [];
282
+ obj.nextUserList = [];
283
+ obj.nextUserSelectList = [];
284
+ this.changeDefPeople(
285
+ res.data.nodeExtAttr.isDefSelectedObj,
286
+ res.data.nodeExtAttr.isSelectedAllObj,
287
+ obj
288
+ );
289
+ this.changePidObjtype(
290
+ res.data.nodeExtAttr.userSelectionType,
291
+ this.choiceOrgId,
292
+ this.choiceDeptId,
293
+ this.pOrgId,
294
+ obj
295
+ );
296
+ }
297
+ this.getProList(nodeId, obj);
298
+ }
299
+ });
300
+ },
301
+ getProList(nodeId, obj) {
302
+ request({
303
+ url: getPresetCustomInfo,
304
+ params: {
305
+ processDefinitionId: this.processDefinitionId,
306
+ nodeId: nodeId,
307
+ taskAction: 'withExtendData'
308
+ }
309
+ }).then((res) => {
310
+ this.$toast.clear();
311
+ if (res.status == 'success') {
312
+ let arr = [{ nodeId: '-2', nodeName: '请选择' }];
313
+ let isEnd = false;
314
+ if (res.data.taskNodeMap) {
315
+ for (let i in res.data.taskNodeMap || res.data || {}) {
316
+ let obj = {
317
+ nodeId: i,
318
+ nodeName: res.data.taskNodeMap[i]
319
+ };
320
+ isEnd = i == 'endEvent';
321
+ arr.push(obj);
322
+ }
323
+ }
324
+ if (isEnd) {
325
+ arr = arr.slice(1);
326
+ }
327
+ obj = {
328
+ ...obj,
329
+ nodeList: arr,
330
+ nodeId: '',
331
+ nodeId: isEnd ? arr[0].nodeId : '',
332
+ showSelectUser: !isEnd
333
+ };
334
+ this.flowList.push(obj);
335
+ }
336
+ });
337
+ }
338
+ }
339
+ };
340
+ </script>
341
+
342
+ <style></style>