eoss-ui 0.7.48 → 0.7.50

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 (245) hide show
  1. package/lib/calogin.js +233 -233
  2. package/lib/eoss-ui.common.js +775 -756
  3. package/lib/flow-list.js +81 -81
  4. package/lib/flow.js +302 -283
  5. package/lib/index.js +1 -1
  6. package/lib/main.js +140 -140
  7. package/lib/qr-code.js +13 -13
  8. package/package.json +160 -160
  9. package/packages/button/index.js +5 -5
  10. package/packages/button/src/main.vue +418 -418
  11. package/packages/button-group/index.js +5 -5
  12. package/packages/button-group/src/main.vue +346 -346
  13. package/packages/calendar/index.js +5 -5
  14. package/packages/calogin/index.js +5 -5
  15. package/packages/calogin/src/main.vue +412 -412
  16. package/packages/calogin/src/plugin.js +915 -915
  17. package/packages/card/index.js +5 -5
  18. package/packages/card/src/main.vue +156 -156
  19. package/packages/cascader/index.js +5 -5
  20. package/packages/cascader/src/main.vue +168 -168
  21. package/packages/checkbox-group/index.js +5 -5
  22. package/packages/checkbox-group/src/main.vue +333 -333
  23. package/packages/clients/index.js +5 -5
  24. package/packages/clients/src/main.vue +151 -151
  25. package/packages/data-table/index.js +5 -5
  26. package/packages/data-table/src/children.vue +39 -39
  27. package/packages/data-table/src/column.vue +992 -992
  28. package/packages/data-table/src/main.vue +1840 -1840
  29. package/packages/data-table/src/sizer.vue +195 -195
  30. package/packages/data-table-form/index.js +5 -5
  31. package/packages/data-table-form/src/checkbox.vue +101 -101
  32. package/packages/data-table-form/src/colgroup.vue +17 -17
  33. package/packages/data-table-form/src/main.vue +181 -181
  34. package/packages/data-table-form/src/radio.vue +65 -65
  35. package/packages/data-table-form/src/table.vue +233 -233
  36. package/packages/data-table-form/src/tbody.vue +336 -336
  37. package/packages/data-table-form/src/thead.vue +68 -68
  38. package/packages/date-picker/index.js +5 -5
  39. package/packages/date-picker/src/main.vue +236 -236
  40. package/packages/dialog/index.js +5 -5
  41. package/packages/enable-drag/index.js +5 -5
  42. package/packages/enterprise/index.js +5 -5
  43. package/packages/enterprise/src/main.vue +66 -66
  44. package/packages/error-page/index.js +5 -5
  45. package/packages/error-page/src/main.vue +44 -44
  46. package/packages/flow/index.js +5 -5
  47. package/packages/flow/src/component/Circulate.vue +413 -413
  48. package/packages/flow/src/component/CommonOpinions.vue +373 -373
  49. package/packages/flow/src/component/CustomPreset.vue +322 -322
  50. package/packages/flow/src/component/FileList.vue +97 -97
  51. package/packages/flow/src/component/FreeCirculation.vue +240 -240
  52. package/packages/flow/src/component/Preset.vue +255 -255
  53. package/packages/flow/src/component/SendMsg.vue +242 -242
  54. package/packages/flow/src/component/TimeLimit.vue +190 -190
  55. package/packages/flow/src/component/taskUnionExamine.vue +756 -756
  56. package/packages/flow/src/form.vue +121 -121
  57. package/packages/flow/src/freeStartFlow.vue +2846 -2846
  58. package/packages/flow/src/main.vue +3879 -3861
  59. package/packages/flow/src/processForm.vue +1365 -1365
  60. package/packages/flow/src/processReject.vue +309 -309
  61. package/packages/flow/src/reset.vue +942 -942
  62. package/packages/flow/src/startTaskRead.vue +692 -692
  63. package/packages/flow/src/supervise.vue +159 -159
  64. package/packages/flow/src/table.vue +58 -58
  65. package/packages/flow-group/index.js +5 -5
  66. package/packages/flow-group/src/main.vue +717 -717
  67. package/packages/flow-list/index.js +5 -5
  68. package/packages/flow-list/src/main.vue +1787 -1787
  69. package/packages/form/index.js +5 -5
  70. package/packages/form/src/main.vue +3901 -3901
  71. package/packages/form/src/table.vue +1512 -1512
  72. package/packages/handle-user/index.js +5 -5
  73. package/packages/handle-user/src/main.vue +137 -137
  74. package/packages/handler/index.js +5 -5
  75. package/packages/handler/src/main.vue +496 -496
  76. package/packages/icon/index.js +5 -5
  77. package/packages/icon/src/main.vue +104 -104
  78. package/packages/icons/index.js +5 -5
  79. package/packages/icons/src/main.vue +81 -81
  80. package/packages/input/index.js +5 -5
  81. package/packages/input/src/main.vue +356 -356
  82. package/packages/input-number/index.js +5 -5
  83. package/packages/input-number/src/main.vue +106 -106
  84. package/packages/label/index.js +5 -5
  85. package/packages/label/src/main.vue +457 -457
  86. package/packages/layout/index.js +5 -5
  87. package/packages/layout/src/item.vue +152 -152
  88. package/packages/layout/src/main.vue +31 -31
  89. package/packages/login/index.js +5 -5
  90. package/packages/login/src/main.vue +2082 -2082
  91. package/packages/login/src/resetPassword.vue +557 -557
  92. package/packages/main/index.js +5 -5
  93. package/packages/main/src/default/message.vue +249 -249
  94. package/packages/main/src/default/notice.vue +157 -157
  95. package/packages/main/src/default/userinfo.vue +503 -503
  96. package/packages/main/src/public/online.vue +89 -89
  97. package/packages/main/src/public/search.vue +464 -464
  98. package/packages/main/src/public/settings.vue +227 -227
  99. package/packages/main/src/simplicity/apps.vue +388 -388
  100. package/packages/main/src/simplicity/avatar.vue +82 -82
  101. package/packages/main/src/simplicity/handler.vue +160 -160
  102. package/packages/main/src/simplicity/index.vue +2277 -2277
  103. package/packages/main/src/simplicity/lists.vue +84 -84
  104. package/packages/main/src/simplicity/menu-list.vue +135 -135
  105. package/packages/main/src/simplicity/message.vue +293 -293
  106. package/packages/main/src/simplicity/notice.vue +222 -222
  107. package/packages/main/src/simplicity/router-page.vue +45 -45
  108. package/packages/main/src/simplicity/sub-menu.vue +274 -274
  109. package/packages/main/src/simplicity/user.vue +259 -259
  110. package/packages/main/src/simplicity/userinfo.vue +401 -401
  111. package/packages/menu/index.js +5 -5
  112. package/packages/menu/src/main.vue +595 -595
  113. package/packages/nav/index.js +5 -5
  114. package/packages/nav/src/main.vue +351 -351
  115. package/packages/notify/index.js +5 -5
  116. package/packages/notify/src/main.vue +538 -538
  117. package/packages/page/index.js +5 -5
  118. package/packages/page/src/main.vue +167 -167
  119. package/packages/pagination/index.js +5 -5
  120. package/packages/pagination/src/main.vue +96 -96
  121. package/packages/player/index.js +5 -5
  122. package/packages/player/src/main.vue +194 -194
  123. package/packages/qr-code/index.js +5 -5
  124. package/packages/qr-code/src/main.vue +170 -170
  125. package/packages/radio-group/index.js +6 -6
  126. package/packages/radio-group/src/main.vue +319 -319
  127. package/packages/retrial-auth/index.js +5 -5
  128. package/packages/retrial-auth/src/main.vue +280 -280
  129. package/packages/select/index.js +5 -5
  130. package/packages/select/src/main.vue +782 -782
  131. package/packages/select-ganged/index.js +5 -5
  132. package/packages/select-ganged/src/main.vue +724 -724
  133. package/packages/selector/index.js +5 -5
  134. package/packages/selector/src/main.vue +761 -761
  135. package/packages/selector-panel/index.js +5 -5
  136. package/packages/selector-panel/src/main.vue +1027 -1027
  137. package/packages/selector-panel/src/selection.vue +170 -170
  138. package/packages/selector-panel/src/tree.vue +129 -129
  139. package/packages/sizer/index.js +5 -5
  140. package/packages/sizer/src/main.vue +254 -254
  141. package/packages/steps/index.js +5 -5
  142. package/packages/steps/src/main.vue +181 -181
  143. package/packages/switch/index.js +5 -5
  144. package/packages/switch/src/main.vue +170 -170
  145. package/packages/table-form/index.js +5 -5
  146. package/packages/tabs/index.js +5 -5
  147. package/packages/tabs/src/main.vue +788 -788
  148. package/packages/tabs-panel/index.js +5 -5
  149. package/packages/tabs-panel/src/main.vue +29 -29
  150. package/packages/theme-chalk/src/base.scss +261 -261
  151. package/packages/theme-chalk/src/button-group.scss +176 -176
  152. package/packages/theme-chalk/src/button.scss +24 -24
  153. package/packages/theme-chalk/src/calendar.scss +113 -113
  154. package/packages/theme-chalk/src/card.scss +99 -99
  155. package/packages/theme-chalk/src/checkbox-group.scss +8 -8
  156. package/packages/theme-chalk/src/clients.scss +87 -87
  157. package/packages/theme-chalk/src/data-table-form.scss +67 -67
  158. package/packages/theme-chalk/src/data-table.scss +293 -293
  159. package/packages/theme-chalk/src/date-picker.scss +7 -7
  160. package/packages/theme-chalk/src/dialog.scss +77 -77
  161. package/packages/theme-chalk/src/enable-drag.scss +181 -181
  162. package/packages/theme-chalk/src/enterprise.scss +5 -5
  163. package/packages/theme-chalk/src/error-page.scss +18 -18
  164. package/packages/theme-chalk/src/flow-group.scss +110 -110
  165. package/packages/theme-chalk/src/flow-list.scss +39 -39
  166. package/packages/theme-chalk/src/flow.scss +351 -351
  167. package/packages/theme-chalk/src/form.scss +501 -501
  168. package/packages/theme-chalk/src/handle-user.scss +40 -40
  169. package/packages/theme-chalk/src/handler.scss +148 -148
  170. package/packages/theme-chalk/src/icon.scss +1436 -1436
  171. package/packages/theme-chalk/src/icons.scss +99 -99
  172. package/packages/theme-chalk/src/input.scss +9 -9
  173. package/packages/theme-chalk/src/label.scss +24 -24
  174. package/packages/theme-chalk/src/layout.scss +46 -46
  175. package/packages/theme-chalk/src/login.scss +1006 -1006
  176. package/packages/theme-chalk/src/main.scss +663 -663
  177. package/packages/theme-chalk/src/menu.scss +224 -224
  178. package/packages/theme-chalk/src/mixins/color.scss +117 -117
  179. package/packages/theme-chalk/src/nav.scss +111 -111
  180. package/packages/theme-chalk/src/page.scss +3 -3
  181. package/packages/theme-chalk/src/pagination.scss +29 -29
  182. package/packages/theme-chalk/src/player.scss +9 -9
  183. package/packages/theme-chalk/src/qr-code.scss +17 -17
  184. package/packages/theme-chalk/src/radio-group.scss +9 -9
  185. package/packages/theme-chalk/src/retrial-auth.scss +38 -38
  186. package/packages/theme-chalk/src/select-ganged.scss +8 -8
  187. package/packages/theme-chalk/src/select.scss +8 -8
  188. package/packages/theme-chalk/src/selector-panel.scss +204 -204
  189. package/packages/theme-chalk/src/selector.scss +114 -114
  190. package/packages/theme-chalk/src/simplicity.scss +1381 -1381
  191. package/packages/theme-chalk/src/sizer.scss +36 -36
  192. package/packages/theme-chalk/src/steps.scss +88 -88
  193. package/packages/theme-chalk/src/switch.scss +3 -3
  194. package/packages/theme-chalk/src/table-form.scss +1 -1
  195. package/packages/theme-chalk/src/tabs.scss +87 -87
  196. package/packages/theme-chalk/src/tips.scss +7 -7
  197. package/packages/theme-chalk/src/toolbar.scss +179 -179
  198. package/packages/theme-chalk/src/tree-group.scss +72 -72
  199. package/packages/theme-chalk/src/tree.scss +165 -165
  200. package/packages/theme-chalk/src/upload.scss +172 -172
  201. package/packages/theme-chalk/src/wxlogin.scss +3 -3
  202. package/packages/tips/index.js +5 -5
  203. package/packages/tips/src/main.vue +141 -141
  204. package/packages/toolbar/index.js +5 -5
  205. package/packages/toolbar/src/main.vue +430 -430
  206. package/packages/tree/index.js +5 -5
  207. package/packages/tree-group/index.js +5 -5
  208. package/packages/upload/index.js +5 -5
  209. package/packages/upload/src/main.vue +1344 -1344
  210. package/packages/upload/src/picture.js +15 -15
  211. package/packages/wujie/index.js +5 -5
  212. package/packages/wujie/src/main.vue +145 -145
  213. package/packages/wxlogin/index.js +5 -5
  214. package/packages/wxlogin/src/main.vue +128 -128
  215. package/src/config/api.js +315 -315
  216. package/src/config/image.js +2 -2
  217. package/src/index.js +163 -163
  218. package/src/utils/bus.js +3 -3
  219. package/src/utils/date-util.js +312 -312
  220. package/src/utils/http.js +50 -50
  221. package/src/utils/rules.js +18 -18
  222. package/src/utils/store.js +21 -21
  223. package/src/utils/webSocket.js +107 -107
  224. package/lib/.DS_Store +0 -0
  225. package/packages/.DS_Store +0 -0
  226. package/packages/calogin/.DS_Store +0 -0
  227. package/packages/date-picker/.DS_Store +0 -0
  228. package/packages/date-picker/src/.DS_Store +0 -0
  229. package/packages/dialog/.DS_Store +0 -0
  230. package/packages/flow/.DS_Store +0 -0
  231. package/packages/flow/src/.DS_Store +0 -0
  232. package/packages/flow-list/.DS_Store +0 -0
  233. package/packages/form/.DS_Store +0 -0
  234. package/packages/icon/.DS_Store +0 -0
  235. package/packages/login/.DS_Store +0 -0
  236. package/packages/main/.DS_Store +0 -0
  237. package/packages/main/src/.DS_Store +0 -0
  238. package/packages/menu/.DS_Store +0 -0
  239. package/packages/select/.DS_Store +0 -0
  240. package/packages/selector/.DS_Store +0 -0
  241. package/packages/selector-panel/.DS_Store +0 -0
  242. package/packages/theme-chalk/src/.DS_Store +0 -0
  243. package/packages/upload/.DS_Store +0 -0
  244. package/src/.DS_Store +0 -0
  245. package/src/utils/.DS_Store +0 -0
@@ -1,322 +1,322 @@
1
- <template>
2
- <el-collapse v-model="activeNames" accordion>
3
- <el-collapse-item
4
- :title="customPresetHintMessage || '预设节点信息(折叠不作处理)'"
5
- name="1"
6
- >
7
- <div v-for="(item, index) of newPresetList" :key="index">
8
- <el-form-item prop="flow" :label="`➤ 节点${index + 1}`">
9
- <el-select
10
- v-model="item.name"
11
- @change="changePreset($event, null, index)"
12
- >
13
- <el-option
14
- v-for="items in item.option"
15
- :key="items.nodeId"
16
- :label="items.nodeName"
17
- :value="items.nodeId"
18
- ></el-option>
19
- </el-select>
20
- </el-form-item>
21
- <el-form-item v-if="item.name != 'endEvent'" prop="user" label="办理人">
22
- <SelectUser
23
- ref="selectUser"
24
- :showUser="true"
25
- :nextUser="item.nextUser"
26
- :radioList="item.radioList"
27
- :multiple="item.multiple"
28
- :isCustomUser="item.isCustomUser"
29
- :options="item.options"
30
- :presetEdit="item.presetEdit"
31
- :selectUserList="item.selectUserList"
32
- @change="changePresetUser($event, index)"
33
- :types="['employee', 'persongroup']"
34
- :params="item.params"
35
- />
36
- </el-form-item>
37
- </div>
38
- </el-collapse-item>
39
- </el-collapse>
40
- </template>
41
-
42
- <script>
43
- import { getNodeInfo, getPresetCustomInfo } from 'eoss-ui/src/config/api';
44
- import SelectUser from '../selectUser.vue';
45
- import util from 'eoss-ui/src/utils/util';
46
- export default {
47
- name: 'CustomPreset',
48
- components: {
49
- [SelectUser.name]: SelectUser
50
- },
51
- data() {
52
- return {
53
- activeNames: '',
54
- newProcessDefinitionId: '',
55
- newPresetList: []
56
- };
57
- },
58
- props: {
59
- presetList: {
60
- type: Array,
61
- default: () => []
62
- },
63
- processDefinitionId: {
64
- type: String,
65
- default: ''
66
- },
67
- customPresetHintMessage: {
68
- type: String,
69
- default: ''
70
- },
71
- id: {
72
- type: String,
73
- default: ''
74
- },
75
- nextNode: {
76
- type: String,
77
- default: ''
78
- }
79
- },
80
- watch: {
81
- activeNames(val) {
82
- this.$emit('changeActiveNames', val);
83
- this.$emit('change-active-names', val);
84
- },
85
- processDefinitionId: {
86
- handler(val) {
87
- this.newProcessDefinitionId = val;
88
- },
89
- deep: true,
90
- immediate: true
91
- }
92
- },
93
- methods: {
94
- changePreset(nodeId, processDefinitionId, index) {
95
- this.newPresetList.splice(index + 1);
96
-
97
- if (nodeId === 'endEvent' || nodeId == 1) {
98
- this.newPresetList[index].options = [];
99
- this.newPresetList[index].selectUserList = [];
100
- this.newPresetList[index].params = {};
101
- this.newPresetList[index].radioList = [];
102
- this.newPresetList[index].nextUser = [];
103
- return;
104
- }
105
- this.$emit('loadingStart');
106
- this.$emit('loading-start');
107
- this.show = false;
108
- this.getPresetFlowInfo(nodeId, processDefinitionId);
109
- // return
110
- this.getNodeInfos(nodeId, processDefinitionId, index);
111
- },
112
- getNodeInfos(nodeId, processDefinitionId, index) {
113
- let params = {
114
- processDefinitionId: processDefinitionId
115
- ? processDefinitionId
116
- : this.newProcessDefinitionId,
117
- nextNodeId: nodeId,
118
- businessId: this.id
119
- };
120
- util
121
- .ajax({ url: getNodeInfo, params })
122
- .then((res) => {
123
- const {
124
- status,
125
- message,
126
- data: { nextUserList, nodeExtAttr }
127
- } = res;
128
- if (status === 'success') {
129
- let info = this.newPresetList[index];
130
- const { multiple, params } = this.isMultiple(
131
- nodeExtAttr.userSelectionType
132
- );
133
- info.isCustomUser = nodeExtAttr.isCustomUser;
134
- info.multiple = multiple;
135
- info.params = params;
136
- info.nextUser = [];
137
- info.options = [];
138
- info.selectUserList = [];
139
- info.presetEdit = 0;
140
- info.presetEdit = nodeExtAttr.presetEdit;
141
- info.isDefSelectedObj = nodeExtAttr.isDefSelectedObj;
142
- nextUserList.map((item) => {
143
- if (info.multiple && info.isDefSelectedObj == 1) {
144
- info.nextUser.push(item.userId);
145
- info.selectUserList.push({
146
- showname: item.username,
147
- showid: item.userId
148
- });
149
- }
150
- info.options.push({
151
- showname: item.username,
152
- showid: item.userId
153
- });
154
- });
155
- if (
156
- !info.multiple &&
157
- nextUserList.length > 0 &&
158
- info.isDefSelectedObj == 1
159
- ) {
160
- info.nextUser = nextUserList[0].userId;
161
- info.selectUserList.push({
162
- showname: nextUserList[0].username,
163
- showid: nextUserList[0].userId
164
- });
165
- }
166
-
167
- if (!info.multiple && info.isDefSelectedObj != 1)
168
- info.nextUser = '';
169
-
170
- info.radioList = info.options;
171
- this.changeSelectData();
172
- } else {
173
- this.$message.error(message || '系统错误,请联系管理员!');
174
- }
175
- this.$emit('loadingEnd');
176
- this.$emit('loading-end');
177
- nodeId &&
178
- setTimeout(() => {
179
- this.$refs.selectUser[index].changeInfo(
180
- this.newPresetList[index]
181
- );
182
- }, 500);
183
- })
184
- .catch((err) => {
185
- if (err.message && err.message !== 'canceled') {
186
- this.$message.error(err.message);
187
- }
188
- });
189
- },
190
- isMultiple(val, choiceOrgId, choiceDeptId, pOrgId) {
191
- let multiple = false;
192
- let params = {};
193
- if (val == 2 || val == 4 || val == 6 || val == 16) {
194
- multiple = true;
195
- }
196
- if (val == 1 || val == 2 || val == 5) {
197
- params.filid = util.getStorage('orgId');
198
- params.only_filid = true;
199
- if (choiceOrgId) {
200
- params.filid = choiceOrgId;
201
- }
202
- }
203
- if (val == 5 || val == 6) {
204
- params.filid = util.getStorage('orgId');
205
- params.deptid = util.getStorage('orgId');
206
- if (choiceDeptId) {
207
- params.deptid = choiceDeptId;
208
- }
209
- if (choiceOrgId) {
210
- params.filid = choiceOrgId;
211
- }
212
- }
213
- if (val == 15 || val == 16) {
214
- params.filid = util.getStorage('orgId');
215
- if (pOrgId) {
216
- params.filid = pOrgId;
217
- }
218
- }
219
- return { multiple, params };
220
- },
221
- getPresetFlowInfo(nodeId, processDefinitionId, isNoStart) {
222
- isNoStart && (this.newPresetList = []);
223
- let params = {
224
- url: getPresetCustomInfo,
225
- data: {
226
- nodeId: nodeId,
227
- processDefinitionId: processDefinitionId
228
- ? processDefinitionId
229
- : this.newProcessDefinitionId
230
- },
231
- method: 'post'
232
- };
233
- util
234
- .ajax(params)
235
- .then((res) => {
236
- const { status, data } = res;
237
- if (status === 'success') {
238
- let list = [
239
- {
240
- nodeName: '请选择',
241
- nodeId: '1',
242
- value: '',
243
- options: [],
244
- multiple: false,
245
- selectUserList: [],
246
- isCustomUser: 1,
247
- params: {},
248
- radioList: []
249
- }
250
- ];
251
- for (let key in data) {
252
- list.push({
253
- nodeName: data[key],
254
- nodeId: key,
255
- options: [],
256
- multiple: false,
257
- selectUserList: [],
258
- isCustomUser: 1,
259
- params: {},
260
- radioList: []
261
- });
262
- if (key === 'endEvent') {
263
- list.splice(0, 1);
264
- }
265
- }
266
- let lastName = '';
267
- if (this.newPresetList.length == 0) {
268
- lastName = this.nextNode;
269
- } else {
270
- lastName = this.newPresetList[this.newPresetList.length - 1].name;
271
- }
272
- this.newPresetList.push({
273
- name: '',
274
- value: '',
275
- option: list,
276
- lastName,
277
- sequence: this.newPresetList.length + 1 + ''
278
- });
279
- if (
280
- this.newPresetList[this.newPresetList.length - 1].option[0]
281
- .nodeId === 'endEvent'
282
- ) {
283
- this.newPresetList[this.newPresetList.length - 1].name =
284
- 'endEvent';
285
- }
286
- }
287
- })
288
- .catch((err) => {
289
- if (err.message && err.message !== 'canceled') {
290
- this.$message.error(err.message);
291
- }
292
- });
293
- },
294
- changePresetUser(val, index) {
295
- const { nextUser, options } = val;
296
- this.newPresetList[index].nextUser = nextUser;
297
- this.newPresetList[index].selectUserList = options;
298
- this.changeSelectData();
299
- },
300
- changeSelectData() {
301
- let customPresetUserJson = [];
302
- this.newPresetList.map((item) => {
303
- customPresetUserJson.push({
304
- name: item.name,
305
- lastName: item.lastName,
306
- value:
307
- item.name != 'endEvent'
308
- ? item.multiple
309
- ? item.nextUser.join(',')
310
- : item.nextUser
311
- : '',
312
- sequence: item.sequence
313
- });
314
- });
315
- this.$emit('changeCustom', customPresetUserJson);
316
- this.$emit('change-custom', customPresetUserJson);
317
- }
318
- }
319
- };
320
- </script>
321
-
322
- <style></style>
1
+ <template>
2
+ <el-collapse v-model="activeNames" accordion>
3
+ <el-collapse-item
4
+ :title="customPresetHintMessage || '预设节点信息(折叠不作处理)'"
5
+ name="1"
6
+ >
7
+ <div v-for="(item, index) of newPresetList" :key="index">
8
+ <el-form-item prop="flow" :label="`➤ 节点${index + 1}`">
9
+ <el-select
10
+ v-model="item.name"
11
+ @change="changePreset($event, null, index)"
12
+ >
13
+ <el-option
14
+ v-for="items in item.option"
15
+ :key="items.nodeId"
16
+ :label="items.nodeName"
17
+ :value="items.nodeId"
18
+ ></el-option>
19
+ </el-select>
20
+ </el-form-item>
21
+ <el-form-item v-if="item.name != 'endEvent'" prop="user" label="办理人">
22
+ <SelectUser
23
+ ref="selectUser"
24
+ :showUser="true"
25
+ :nextUser="item.nextUser"
26
+ :radioList="item.radioList"
27
+ :multiple="item.multiple"
28
+ :isCustomUser="item.isCustomUser"
29
+ :options="item.options"
30
+ :presetEdit="item.presetEdit"
31
+ :selectUserList="item.selectUserList"
32
+ @change="changePresetUser($event, index)"
33
+ :types="['employee', 'persongroup']"
34
+ :params="item.params"
35
+ />
36
+ </el-form-item>
37
+ </div>
38
+ </el-collapse-item>
39
+ </el-collapse>
40
+ </template>
41
+
42
+ <script>
43
+ import { getNodeInfo, getPresetCustomInfo } from 'eoss-ui/src/config/api';
44
+ import SelectUser from '../selectUser.vue';
45
+ import util from 'eoss-ui/src/utils/util';
46
+ export default {
47
+ name: 'CustomPreset',
48
+ components: {
49
+ [SelectUser.name]: SelectUser
50
+ },
51
+ data() {
52
+ return {
53
+ activeNames: '',
54
+ newProcessDefinitionId: '',
55
+ newPresetList: []
56
+ };
57
+ },
58
+ props: {
59
+ presetList: {
60
+ type: Array,
61
+ default: () => []
62
+ },
63
+ processDefinitionId: {
64
+ type: String,
65
+ default: ''
66
+ },
67
+ customPresetHintMessage: {
68
+ type: String,
69
+ default: ''
70
+ },
71
+ id: {
72
+ type: String,
73
+ default: ''
74
+ },
75
+ nextNode: {
76
+ type: String,
77
+ default: ''
78
+ }
79
+ },
80
+ watch: {
81
+ activeNames(val) {
82
+ this.$emit('changeActiveNames', val);
83
+ this.$emit('change-active-names', val);
84
+ },
85
+ processDefinitionId: {
86
+ handler(val) {
87
+ this.newProcessDefinitionId = val;
88
+ },
89
+ deep: true,
90
+ immediate: true
91
+ }
92
+ },
93
+ methods: {
94
+ changePreset(nodeId, processDefinitionId, index) {
95
+ this.newPresetList.splice(index + 1);
96
+
97
+ if (nodeId === 'endEvent' || nodeId == 1) {
98
+ this.newPresetList[index].options = [];
99
+ this.newPresetList[index].selectUserList = [];
100
+ this.newPresetList[index].params = {};
101
+ this.newPresetList[index].radioList = [];
102
+ this.newPresetList[index].nextUser = [];
103
+ return;
104
+ }
105
+ this.$emit('loadingStart');
106
+ this.$emit('loading-start');
107
+ this.show = false;
108
+ this.getPresetFlowInfo(nodeId, processDefinitionId);
109
+ // return
110
+ this.getNodeInfos(nodeId, processDefinitionId, index);
111
+ },
112
+ getNodeInfos(nodeId, processDefinitionId, index) {
113
+ let params = {
114
+ processDefinitionId: processDefinitionId
115
+ ? processDefinitionId
116
+ : this.newProcessDefinitionId,
117
+ nextNodeId: nodeId,
118
+ businessId: this.id
119
+ };
120
+ util
121
+ .ajax({ url: getNodeInfo, params })
122
+ .then((res) => {
123
+ const {
124
+ status,
125
+ message,
126
+ data: { nextUserList, nodeExtAttr }
127
+ } = res;
128
+ if (status === 'success') {
129
+ let info = this.newPresetList[index];
130
+ const { multiple, params } = this.isMultiple(
131
+ nodeExtAttr.userSelectionType
132
+ );
133
+ info.isCustomUser = nodeExtAttr.isCustomUser;
134
+ info.multiple = multiple;
135
+ info.params = params;
136
+ info.nextUser = [];
137
+ info.options = [];
138
+ info.selectUserList = [];
139
+ info.presetEdit = 0;
140
+ info.presetEdit = nodeExtAttr.presetEdit;
141
+ info.isDefSelectedObj = nodeExtAttr.isDefSelectedObj;
142
+ nextUserList.map((item) => {
143
+ if (info.multiple && info.isDefSelectedObj == 1) {
144
+ info.nextUser.push(item.userId);
145
+ info.selectUserList.push({
146
+ showname: item.username,
147
+ showid: item.userId
148
+ });
149
+ }
150
+ info.options.push({
151
+ showname: item.username,
152
+ showid: item.userId
153
+ });
154
+ });
155
+ if (
156
+ !info.multiple &&
157
+ nextUserList.length > 0 &&
158
+ info.isDefSelectedObj == 1
159
+ ) {
160
+ info.nextUser = nextUserList[0].userId;
161
+ info.selectUserList.push({
162
+ showname: nextUserList[0].username,
163
+ showid: nextUserList[0].userId
164
+ });
165
+ }
166
+
167
+ if (!info.multiple && info.isDefSelectedObj != 1)
168
+ info.nextUser = '';
169
+
170
+ info.radioList = info.options;
171
+ this.changeSelectData();
172
+ } else {
173
+ this.$message.error(message || '系统错误,请联系管理员!');
174
+ }
175
+ this.$emit('loadingEnd');
176
+ this.$emit('loading-end');
177
+ nodeId &&
178
+ setTimeout(() => {
179
+ this.$refs.selectUser[index].changeInfo(
180
+ this.newPresetList[index]
181
+ );
182
+ }, 500);
183
+ })
184
+ .catch((err) => {
185
+ if (err.message && err.message !== 'canceled') {
186
+ this.$message.error(err.message);
187
+ }
188
+ });
189
+ },
190
+ isMultiple(val, choiceOrgId, choiceDeptId, pOrgId) {
191
+ let multiple = false;
192
+ let params = {};
193
+ if (val == 2 || val == 4 || val == 6 || val == 16) {
194
+ multiple = true;
195
+ }
196
+ if (val == 1 || val == 2 || val == 5) {
197
+ params.filid = util.getStorage('orgId');
198
+ params.only_filid = true;
199
+ if (choiceOrgId) {
200
+ params.filid = choiceOrgId;
201
+ }
202
+ }
203
+ if (val == 5 || val == 6) {
204
+ params.filid = util.getStorage('orgId');
205
+ params.deptid = util.getStorage('orgId');
206
+ if (choiceDeptId) {
207
+ params.deptid = choiceDeptId;
208
+ }
209
+ if (choiceOrgId) {
210
+ params.filid = choiceOrgId;
211
+ }
212
+ }
213
+ if (val == 15 || val == 16) {
214
+ params.filid = util.getStorage('orgId');
215
+ if (pOrgId) {
216
+ params.filid = pOrgId;
217
+ }
218
+ }
219
+ return { multiple, params };
220
+ },
221
+ getPresetFlowInfo(nodeId, processDefinitionId, isNoStart) {
222
+ isNoStart && (this.newPresetList = []);
223
+ let params = {
224
+ url: getPresetCustomInfo,
225
+ data: {
226
+ nodeId: nodeId,
227
+ processDefinitionId: processDefinitionId
228
+ ? processDefinitionId
229
+ : this.newProcessDefinitionId
230
+ },
231
+ method: 'post'
232
+ };
233
+ util
234
+ .ajax(params)
235
+ .then((res) => {
236
+ const { status, data } = res;
237
+ if (status === 'success') {
238
+ let list = [
239
+ {
240
+ nodeName: '请选择',
241
+ nodeId: '1',
242
+ value: '',
243
+ options: [],
244
+ multiple: false,
245
+ selectUserList: [],
246
+ isCustomUser: 1,
247
+ params: {},
248
+ radioList: []
249
+ }
250
+ ];
251
+ for (let key in data) {
252
+ list.push({
253
+ nodeName: data[key],
254
+ nodeId: key,
255
+ options: [],
256
+ multiple: false,
257
+ selectUserList: [],
258
+ isCustomUser: 1,
259
+ params: {},
260
+ radioList: []
261
+ });
262
+ if (key === 'endEvent') {
263
+ list.splice(0, 1);
264
+ }
265
+ }
266
+ let lastName = '';
267
+ if (this.newPresetList.length == 0) {
268
+ lastName = this.nextNode;
269
+ } else {
270
+ lastName = this.newPresetList[this.newPresetList.length - 1].name;
271
+ }
272
+ this.newPresetList.push({
273
+ name: '',
274
+ value: '',
275
+ option: list,
276
+ lastName,
277
+ sequence: this.newPresetList.length + 1 + ''
278
+ });
279
+ if (
280
+ this.newPresetList[this.newPresetList.length - 1].option[0]
281
+ .nodeId === 'endEvent'
282
+ ) {
283
+ this.newPresetList[this.newPresetList.length - 1].name =
284
+ 'endEvent';
285
+ }
286
+ }
287
+ })
288
+ .catch((err) => {
289
+ if (err.message && err.message !== 'canceled') {
290
+ this.$message.error(err.message);
291
+ }
292
+ });
293
+ },
294
+ changePresetUser(val, index) {
295
+ const { nextUser, options } = val;
296
+ this.newPresetList[index].nextUser = nextUser;
297
+ this.newPresetList[index].selectUserList = options;
298
+ this.changeSelectData();
299
+ },
300
+ changeSelectData() {
301
+ let customPresetUserJson = [];
302
+ this.newPresetList.map((item) => {
303
+ customPresetUserJson.push({
304
+ name: item.name,
305
+ lastName: item.lastName,
306
+ value:
307
+ item.name != 'endEvent'
308
+ ? item.multiple
309
+ ? item.nextUser.join(',')
310
+ : item.nextUser
311
+ : '',
312
+ sequence: item.sequence
313
+ });
314
+ });
315
+ this.$emit('changeCustom', customPresetUserJson);
316
+ this.$emit('change-custom', customPresetUserJson);
317
+ }
318
+ }
319
+ };
320
+ </script>
321
+
322
+ <style></style>