eoss-ui 0.8.13 → 0.8.14

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 (235) hide show
  1. package/lib/calogin.js +233 -233
  2. package/lib/eoss-ui.common.js +927 -920
  3. package/lib/flow-list.js +96 -96
  4. package/lib/flow.js +280 -280
  5. package/lib/index.js +1 -1
  6. package/lib/main.js +304 -297
  7. package/lib/qr-code.js +13 -13
  8. package/package.json +1 -1
  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 +46 -46
  27. package/packages/data-table/src/main.vue +1876 -1876
  28. package/packages/data-table/src/sizer.vue +195 -195
  29. package/packages/data-table-form/index.js +5 -5
  30. package/packages/data-table-form/src/checkbox.vue +101 -101
  31. package/packages/data-table-form/src/colgroup.vue +17 -17
  32. package/packages/data-table-form/src/main.vue +181 -181
  33. package/packages/data-table-form/src/radio.vue +65 -65
  34. package/packages/data-table-form/src/table.vue +233 -233
  35. package/packages/data-table-form/src/tbody.vue +336 -336
  36. package/packages/data-table-form/src/thead.vue +68 -68
  37. package/packages/date-picker/index.js +5 -5
  38. package/packages/date-picker/src/main.vue +236 -236
  39. package/packages/dialog/index.js +5 -5
  40. package/packages/enable-drag/index.js +5 -5
  41. package/packages/enterprise/index.js +5 -5
  42. package/packages/enterprise/src/main.vue +66 -66
  43. package/packages/error-page/index.js +5 -5
  44. package/packages/error-page/src/main.vue +44 -44
  45. package/packages/flow/index.js +5 -5
  46. package/packages/flow/src/component/Circulate.vue +420 -420
  47. package/packages/flow/src/component/CommonOpinions.vue +376 -376
  48. package/packages/flow/src/component/CustomPreset.vue +324 -324
  49. package/packages/flow/src/component/FileList.vue +97 -97
  50. package/packages/flow/src/component/FreeCirculation.vue +245 -245
  51. package/packages/flow/src/component/Preset.vue +257 -257
  52. package/packages/flow/src/component/SendMsg.vue +242 -242
  53. package/packages/flow/src/component/SortFlow.vue +110 -110
  54. package/packages/flow/src/component/TimeLimit.vue +190 -190
  55. package/packages/flow/src/component/taskUnionExamine.vue +763 -763
  56. package/packages/flow/src/form.vue +123 -123
  57. package/packages/flow/src/freeStartFlow.vue +2898 -2898
  58. package/packages/flow/src/main.vue +4224 -4224
  59. package/packages/flow/src/processForm.vue +1717 -1717
  60. package/packages/flow/src/processReject.vue +311 -311
  61. package/packages/flow/src/reset.vue +952 -952
  62. package/packages/flow/src/startTaskRead.vue +698 -698
  63. package/packages/flow/src/supervise.vue +162 -162
  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 +750 -750
  67. package/packages/flow-list/index.js +5 -5
  68. package/packages/flow-list/src/main.vue +2337 -2337
  69. package/packages/form/index.js +5 -5
  70. package/packages/form/src/table.vue +1512 -1512
  71. package/packages/handle-user/index.js +5 -5
  72. package/packages/handle-user/src/main.vue +137 -137
  73. package/packages/handler/index.js +5 -5
  74. package/packages/handler/src/main.vue +499 -499
  75. package/packages/icon/index.js +5 -5
  76. package/packages/icon/src/main.vue +104 -104
  77. package/packages/icons/index.js +5 -5
  78. package/packages/icons/src/main.vue +81 -81
  79. package/packages/input/index.js +5 -5
  80. package/packages/input/src/main.vue +356 -356
  81. package/packages/input-number/index.js +5 -5
  82. package/packages/input-number/src/main.vue +106 -106
  83. package/packages/label/index.js +5 -5
  84. package/packages/label/src/main.vue +457 -457
  85. package/packages/layout/index.js +5 -5
  86. package/packages/layout/src/item.vue +152 -152
  87. package/packages/layout/src/main.vue +31 -31
  88. package/packages/login/index.js +5 -5
  89. package/packages/login/src/main.vue +2088 -2088
  90. package/packages/login/src/resetPassword.vue +557 -557
  91. package/packages/main/index.js +5 -5
  92. package/packages/main/src/default/index.vue +9 -2
  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 +513 -513
  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 +273 -273
  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 +158 -158
  102. package/packages/main/src/simplicity/index.vue +2335 -2335
  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 +276 -276
  109. package/packages/main/src/simplicity/user.vue +259 -259
  110. package/packages/main/src/simplicity/userinfo.vue +408 -408
  111. package/packages/main/src/simplicityTop/apps.vue +388 -388
  112. package/packages/main/src/simplicityTop/avatar.vue +82 -82
  113. package/packages/main/src/simplicityTop/handler.vue +215 -215
  114. package/packages/main/src/simplicityTop/index.vue +2626 -2626
  115. package/packages/main/src/simplicityTop/lists.vue +84 -84
  116. package/packages/main/src/simplicityTop/menu-list.vue +135 -135
  117. package/packages/main/src/simplicityTop/message.vue +293 -293
  118. package/packages/main/src/simplicityTop/notice.vue +222 -222
  119. package/packages/main/src/simplicityTop/router-page.vue +45 -45
  120. package/packages/main/src/simplicityTop/sub-menu.vue +274 -274
  121. package/packages/main/src/simplicityTop/user.vue +259 -259
  122. package/packages/main/src/simplicityTop/userinfo.vue +408 -408
  123. package/packages/menu/index.js +5 -5
  124. package/packages/menu/src/main.vue +595 -595
  125. package/packages/nav/index.js +5 -5
  126. package/packages/nav/src/main.vue +351 -351
  127. package/packages/notify/index.js +5 -5
  128. package/packages/notify/src/main.vue +538 -538
  129. package/packages/page/index.js +5 -5
  130. package/packages/page/src/main.vue +167 -167
  131. package/packages/pagination/index.js +5 -5
  132. package/packages/pagination/src/main.vue +96 -96
  133. package/packages/player/index.js +5 -5
  134. package/packages/player/src/main.vue +194 -194
  135. package/packages/qr-code/index.js +5 -5
  136. package/packages/qr-code/src/main.vue +170 -170
  137. package/packages/radio-group/index.js +6 -6
  138. package/packages/radio-group/src/main.vue +319 -319
  139. package/packages/retrial-auth/index.js +5 -5
  140. package/packages/retrial-auth/src/main.vue +299 -299
  141. package/packages/select/index.js +5 -5
  142. package/packages/select-ganged/index.js +5 -5
  143. package/packages/select-ganged/src/main.vue +724 -724
  144. package/packages/selector/index.js +5 -5
  145. package/packages/selector/src/main.vue +761 -761
  146. package/packages/selector-panel/index.js +5 -5
  147. package/packages/selector-panel/src/main.vue +1036 -1036
  148. package/packages/selector-panel/src/selection.vue +174 -174
  149. package/packages/selector-panel/src/tree.vue +129 -129
  150. package/packages/sizer/index.js +5 -5
  151. package/packages/sizer/src/main.vue +254 -254
  152. package/packages/steps/index.js +5 -5
  153. package/packages/steps/src/main.vue +181 -181
  154. package/packages/switch/index.js +5 -5
  155. package/packages/switch/src/main.vue +170 -170
  156. package/packages/table-form/index.js +5 -5
  157. package/packages/tabs/index.js +5 -5
  158. package/packages/tabs/src/main.vue +788 -788
  159. package/packages/tabs-panel/index.js +5 -5
  160. package/packages/tabs-panel/src/main.vue +29 -29
  161. package/packages/theme-chalk/src/base.scss +261 -261
  162. package/packages/theme-chalk/src/button-group.scss +176 -176
  163. package/packages/theme-chalk/src/button.scss +24 -24
  164. package/packages/theme-chalk/src/calendar.scss +113 -113
  165. package/packages/theme-chalk/src/card.scss +99 -99
  166. package/packages/theme-chalk/src/checkbox-group.scss +8 -8
  167. package/packages/theme-chalk/src/clients.scss +87 -87
  168. package/packages/theme-chalk/src/data-table-form.scss +67 -67
  169. package/packages/theme-chalk/src/data-table.scss +297 -297
  170. package/packages/theme-chalk/src/date-picker.scss +7 -7
  171. package/packages/theme-chalk/src/dialog.scss +77 -77
  172. package/packages/theme-chalk/src/enable-drag.scss +181 -181
  173. package/packages/theme-chalk/src/enterprise.scss +5 -5
  174. package/packages/theme-chalk/src/error-page.scss +18 -18
  175. package/packages/theme-chalk/src/flow-group.scss +110 -110
  176. package/packages/theme-chalk/src/flow-list.scss +55 -55
  177. package/packages/theme-chalk/src/flow.scss +376 -376
  178. package/packages/theme-chalk/src/form.scss +501 -501
  179. package/packages/theme-chalk/src/handle-user.scss +40 -40
  180. package/packages/theme-chalk/src/handler.scss +148 -148
  181. package/packages/theme-chalk/src/icon.scss +3452 -3452
  182. package/packages/theme-chalk/src/icons.scss +99 -99
  183. package/packages/theme-chalk/src/input.scss +9 -9
  184. package/packages/theme-chalk/src/label.scss +24 -24
  185. package/packages/theme-chalk/src/layout.scss +46 -46
  186. package/packages/theme-chalk/src/login.scss +1006 -1006
  187. package/packages/theme-chalk/src/main.scss +664 -664
  188. package/packages/theme-chalk/src/menu.scss +224 -224
  189. package/packages/theme-chalk/src/mixins/color.scss +117 -117
  190. package/packages/theme-chalk/src/nav.scss +111 -111
  191. package/packages/theme-chalk/src/page.scss +3 -3
  192. package/packages/theme-chalk/src/pagination.scss +29 -29
  193. package/packages/theme-chalk/src/player.scss +9 -9
  194. package/packages/theme-chalk/src/qr-code.scss +17 -17
  195. package/packages/theme-chalk/src/radio-group.scss +9 -9
  196. package/packages/theme-chalk/src/retrial-auth.scss +38 -38
  197. package/packages/theme-chalk/src/select-ganged.scss +8 -8
  198. package/packages/theme-chalk/src/select.scss +8 -8
  199. package/packages/theme-chalk/src/selector-panel.scss +204 -204
  200. package/packages/theme-chalk/src/selector.scss +114 -114
  201. package/packages/theme-chalk/src/simplicity-top.scss +1845 -1845
  202. package/packages/theme-chalk/src/simplicity.scss +1403 -1403
  203. package/packages/theme-chalk/src/sizer.scss +36 -36
  204. package/packages/theme-chalk/src/steps.scss +88 -88
  205. package/packages/theme-chalk/src/switch.scss +3 -3
  206. package/packages/theme-chalk/src/table-form.scss +1 -1
  207. package/packages/theme-chalk/src/tabs.scss +87 -87
  208. package/packages/theme-chalk/src/tips.scss +7 -7
  209. package/packages/theme-chalk/src/toolbar.scss +179 -179
  210. package/packages/theme-chalk/src/tree-group.scss +72 -72
  211. package/packages/theme-chalk/src/tree.scss +165 -165
  212. package/packages/theme-chalk/src/upload.scss +172 -172
  213. package/packages/theme-chalk/src/wxlogin.scss +3 -3
  214. package/packages/tips/index.js +5 -5
  215. package/packages/tips/src/main.vue +141 -141
  216. package/packages/toolbar/index.js +5 -5
  217. package/packages/toolbar/src/main.vue +430 -430
  218. package/packages/tree/index.js +5 -5
  219. package/packages/tree-group/index.js +5 -5
  220. package/packages/upload/index.js +5 -5
  221. package/packages/upload/src/main.vue +1344 -1344
  222. package/packages/upload/src/picture.js +15 -15
  223. package/packages/wujie/index.js +5 -5
  224. package/packages/wujie/src/main.vue +146 -146
  225. package/packages/wxlogin/index.js +5 -5
  226. package/packages/wxlogin/src/main.vue +128 -128
  227. package/src/config/api.js +348 -348
  228. package/src/config/image.js +2 -2
  229. package/src/index.js +163 -163
  230. package/src/utils/bus.js +3 -3
  231. package/src/utils/date-util.js +312 -312
  232. package/src/utils/http.js +50 -50
  233. package/src/utils/rules.js +18 -18
  234. package/src/utils/store.js +21 -21
  235. package/src/utils/webSocket.js +107 -107
@@ -1,698 +1,698 @@
1
- <template>
2
- <div
3
- v-loading="loading"
4
- class="task-read"
5
- element-loading-text="加载中..."
6
- element-loading-spinner="el-icon-loading"
7
- element-loading-background="rgba(255, 255,255, 0.8)"
8
- :style="`height: ${typeCode == 'read'? '100%' : 'unset'};`"
9
- >
10
- <el-form
11
- ref="nextNode"
12
- :model="nextNode"
13
- class="demo-dynamic"
14
- label-width="110px"
15
- >
16
- <div
17
- :style="`max-height: ${
18
- typeCode ? 'unset' : '290px'
19
- }; overflow-y: auto; margin-bottom: 10px`"
20
- >
21
- <el-form-item
22
- prop="handleExplain"
23
- label="当前步骤"
24
- v-if="type === 'transfer'"
25
- >
26
- <el-input readonly v-model="nextNode.nodeName"></el-input>
27
- </el-form-item>
28
- <el-form-item
29
- v-if="type == 'transfer' && transferInfo.isSinglePage"
30
- prop="handleExplain"
31
- label="意见"
32
- >
33
- <el-input
34
- v-model="nextNode.handleExplain"
35
- placeholder="请填写意见"
36
- ></el-input>
37
- </el-form-item>
38
- <el-form-item
39
- prop="nextUser"
40
- :label="
41
- type === 'transfer'
42
- ? '转办对象'
43
- : configInfo.isCdjxjTaskHandle == 'true'
44
- ? '接收人'
45
- : '办理用户'
46
- "
47
- >
48
- <SelectUser
49
- :nextUser="nextNode.nextUser"
50
- :options="userOptions"
51
- :multiple="type != 'transfer' ? multiple : false"
52
- :mix="type != 'transfer'"
53
- :selectUserList="selectUserList"
54
- :showTooltip="showTooltip"
55
- :disableds="readDisableds"
56
- :types="
57
- selectorTabs
58
- ? selectorTabs
59
- : type == 'transfer'
60
- ? ['employee', 'persongroup']
61
- : ['employee', 'enterprise', 'department', 'persongroup']
62
- "
63
- @change="changeSelectUser($event, 'nextUser')"
64
- :tabs="tabs"
65
- :params="selectorParams"
66
- />
67
- </el-form-item>
68
-
69
- <el-form-item
70
- v-if="configInfo.isCdjxjTaskHandle != 'true' && type != 'transfer' && configInfo.groups&& configInfo.groups.length != 0"
71
- prop="cy"
72
- label="常用群组"
73
- ><el-checkbox-group v-model="selectCheck">
74
- <el-checkbox
75
- @change="handleSelectCheck($event, item)"
76
- v-for="item in configInfo.groups"
77
- :label="item.name"
78
- :key="item.id"
79
- >{{ item.name }}</el-checkbox
80
- >
81
- </el-checkbox-group>
82
- </el-form-item>
83
- <el-form-item
84
- v-if="configInfo.fyDoresult == 'true'"
85
- prop="showDoresult"
86
- label="流程意见"
87
- ><el-radio v-model="nextNode.showDoresult" label="0">分阅</el-radio>
88
- <el-radio v-model="nextNode.showDoresult" label="1">不分阅</el-radio>
89
- </el-form-item>
90
- <el-form-item
91
- v-if="configInfo.fyeh == 'true'"
92
- prop="isInHistory"
93
- label="分阅记录"
94
- ><el-radio v-model="nextNode.isInHistory" label="0">记录</el-radio>
95
- <el-radio v-model="nextNode.isInHistory" label="1">不记录</el-radio>
96
- </el-form-item>
97
- <el-form-item
98
- v-if="configInfo.download"
99
- prop="isDownload"
100
- label="打印下载文件"
101
- ><el-radio v-model="nextNode.isDownload" label="0">允许</el-radio>
102
- <el-radio v-model="nextNode.isDownload" label="1">不允许</el-radio>
103
- </el-form-item>
104
- <el-form-item
105
- prop="handleExplain"
106
- :label="configInfo.isCdjxjTaskHandle == 'true' ? '附言' : '办理说明'"
107
- v-if="type != 'transfer'"
108
- >
109
- <el-input
110
- v-model="nextNode.handleExplain"
111
- type="textarea"
112
- :rows="3"
113
-
114
- placeholder="请填写办理说明"
115
- ></el-input>
116
- </el-form-item>
117
- <el-form-item
118
- v-if="configInfo.isCdjxjTaskHandle != 'true' && noticeList.length > 0 && !hideMessage"
119
- prop="noticeType"
120
- label="通知方式"
121
- >
122
- <el-checkbox-group
123
- v-model="nextNode.noticeType"
124
- style="display: contents"
125
- >
126
- <el-checkbox
127
- v-for="item of noticeList"
128
- :key="item.cciValue"
129
- :label="item.cciValue"
130
- :disabled="
131
- readOnlyNotificationType
132
- ? readOnlyNotificationType.indexOf(item.cciValue) != -1
133
- : false
134
- "
135
- >
136
- {{ item.shortName }}
137
- </el-checkbox>
138
- </el-checkbox-group>
139
- </el-form-item>
140
- <el-form-item
141
- v-show="
142
- nextNode.noticeType.length != 0 &&
143
- configInfo.isCdjxjTaskHandle != 'true'
144
- "
145
- prop="nextNode"
146
- label="通知消息"
147
- >
148
- <es-input
149
- style="
150
- border-color: #ccc;
151
- padding: 5px;
152
- border-radius: 5px;
153
- font-size: 13px;
154
- "
155
- type="textarea"
156
- v-model="newsNoice"
157
- :readonly="notificationMessageReadOnly == 'true'"
158
- />
159
- <!-- <span>{{ newsInfo }}</span> -->
160
- </el-form-item>
161
- </div>
162
- <el-form-item>
163
- <div style="text-align: right">
164
- <el-button type="primary" @click="submit('nextNode')">
165
- 提交
166
- </el-button>
167
- </div>
168
- </el-form-item>
169
- </el-form>
170
- </div>
171
- </template>
172
-
173
- <script>
174
- import {
175
- findSysCodes,
176
- taskReadHtml,
177
- toStartTaskRead,
178
- toTaskTransferIndex,
179
- getNotificationMsg,
180
- taskTransfer,
181
- findCodeValues
182
- } from 'eoss-ui/src/config/api';
183
- import util from 'eoss-ui/src/utils/util';
184
- import SelectUser from './selectUser.vue';
185
- export default {
186
- name: 'StartTaskRead',
187
- components: {
188
- [Option.name]: Option,
189
- [SelectUser.name]: SelectUser
190
- },
191
- props: {
192
- pendingId: { type: String, default: '' },
193
- simpleTips: { type: Boolean, default: true },
194
- showTooltip: { type: Boolean, default: true },
195
- newsInfo: { type: String, default: '' },
196
- type: { type: String, default: '' },
197
- option: { type: String, default: '' },
198
- typeCode: { type: String, default: '' },
199
- resetAppId: { type: String, default: '' },
200
- selectorConfig: { type: [Object, undefined], default: undefined },
201
- param: { type: Object, default: () => {} },
202
- taskExamine: { type: Object, default: () => {} },
203
- subParams:{
204
- type: [Object, undefined],
205
- default: undefined
206
- },
207
- readParams: {
208
- type: [Object, undefined],
209
- default: undefined
210
- },
211
-
212
- hideMessage: { type: Boolean, default: false },
213
- },
214
- data() {
215
- return {
216
- loading: false,
217
- newsNoice: '',
218
- readOnlyNotificationType: '',
219
- notificationMessageReadOnly: false,
220
- selectorTabs: null,
221
- selectorParams: null,
222
- nextNode: {
223
- nextUser: [],
224
- userInfo: [],
225
- noticeType: [],
226
- handleExplain: '',
227
- showDoresult: '0',
228
- isInHistory: '0',
229
- isDownload: '0'
230
- },
231
- mixList: [],
232
- newSelectUserList: [],
233
- orgId: '',
234
- noticeList: [],
235
- userOptions: [],
236
- readDisableds:[],
237
- selectCheck: [],
238
- selectUserList: [],
239
- transferInfo: {},
240
- multiple: true,
241
- params: { filid: 'all' },
242
- configInfo: {}
243
- };
244
- },
245
- computed: {
246
- tabs() {
247
- let tab = {};
248
- if (this.type != 'transfer') {
249
- tab = {
250
- employee: {
251
- param: {
252
- filid: this.orgId,
253
- name: '本单位用户'
254
- }
255
- },
256
- department: { param: { filid: this.orgId } },
257
- enterprise: {}
258
- };
259
- } else {
260
- tab = {
261
- employee: {
262
- param: {
263
- filid: this.orgId
264
- }
265
- }
266
- };
267
- }
268
- return tab;
269
- }
270
- },
271
- mounted() {
272
- this.newsNoice = this.newsInfo;
273
- if (this.readParams || this.typeCode == 'read') {
274
- this.getMessage();
275
- }
276
- this.getFind();
277
- if (util.getStorage('mainConfig')) {
278
- this.orgId = JSON.parse(util.getStorage('mainConfig')).userModel.orgId;
279
- }
280
- if(this.selectorConfig){
281
- this.getSelectorConfig()
282
- }
283
- },
284
- methods: {
285
- getSelectorConfig() {
286
- this.selectorTabs = this.selectorConfig.type.split(',');
287
- this.selectorParams = this.selectorConfig.params;
288
- },
289
- //获取通知信息
290
- getMessage() {
291
- let params = {};
292
- if (this.typeCode == 'read') {
293
- params = {
294
- processDefinitionId: this.param.processDefinitionId,
295
- businessId: this.param.businessId,
296
- businessName: this.param.businessName,
297
- bCode: this.param.bCode,
298
- bName: this.param.bName,
299
- appId: this.param.appId
300
- };
301
- } else {
302
- params.appId = this.readParams.appId;
303
- }
304
- util
305
- .ajax({ url: getNotificationMsg, params, methods: 'post' })
306
- .then((res) => {
307
- if (res.status === 'success') {
308
- this.newsNoice = res.message;
309
- }
310
- })
311
- .catch((err) => {
312
- this.loading = false;
313
- if (err.message && err.message !== 'canceled') {
314
- this.$message.error(err.message);
315
- }
316
- });
317
- },
318
- toTaskTransfer() {
319
- const { opinion, pendingId, taskExamine } = this;
320
- let params = {
321
- url: toTaskTransferIndex,
322
- params: {
323
- opinion,
324
- pendingId,
325
- isSubFlow: taskExamine.isSubFlow,
326
- isSinglePage: taskExamine.isSinglePage
327
- }
328
- };
329
- util
330
- .ajax(params)
331
- .then((res) => {
332
- const {
333
- status,
334
- message,
335
- data: { choiceDeptId, choiceOrgId, nodeInfoMap, taskExamine }
336
- } = res;
337
- if (status == 'success') {
338
- this.isMultipleTransfer(
339
- nodeInfoMap.nodeExtAttr.userSelectionType,
340
- choiceOrgId,
341
- choiceDeptId
342
- );
343
- this.nextNode.nodeName = taskExamine.nodeName;
344
- this.transferInfo = taskExamine;
345
- } else {
346
- this.$message.error(message || '系统错误,请联系管理员!');
347
- }
348
- })
349
- .catch((err) => {
350
- this.loading = false;
351
- if (err.message && err.message !== 'canceled') {
352
- this.$message.error(err.message);
353
- }
354
- });
355
- },
356
- isMultipleTransfer(val, choiceOrgId, choiceDeptId, pOrgId) {
357
- if (val == 2 || val == 4 || val == 6 || val == 16) {
358
- this.multiple = true;
359
- } else {
360
- this.multiple = false;
361
- }
362
- if (val == 1 || val == 2 || val == 5) {
363
- this.params.filid = this.orgId;
364
- if (choiceOrgId) {
365
- this.params.filid = choiceOrgId;
366
- }
367
- }
368
- if (val == 5 || val == 6) {
369
- this.params.filid = this.orgId;
370
- this.params.deptid = this.orgId;
371
- if (choiceDeptId) {
372
- this.params.deptid = choiceDeptId;
373
- }
374
- if (choiceOrgId) {
375
- this.params.filid = choiceOrgId;
376
- }
377
- }
378
- if (val == 15 || val == 16) {
379
- this.params.filid = this.orgId;
380
- if (pOrgId) {
381
- this.params.filid = pOrgId;
382
- }
383
- }
384
- },
385
- isMultiple() {
386
- let orgId = this.orgId;
387
- if (this.configInfo.selectPersonValue == 1) {
388
- this.multiple = false;
389
- this.params.filid = orgId;
390
- } else if (this.configInfo.selectPersonValue == 2) {
391
- this.multiple = true;
392
- this.params.filid = orgId;
393
- } else if (this.configInfo.selectPersonValue == 3) {
394
- this.multiple = false;
395
- this.params.filid = 'all';
396
- } else if (this.configInfo.selectPersonValue == 4) {
397
- this.multiple = true;
398
- this.params.filid = 'all';
399
- } else if (this.configInfo.selectPersonValue == 5) {
400
- this.multiple = false;
401
- this.params.filid = '';
402
- } else if (this.configInfo.selectPersonValue == 6) {
403
- this.multiple = true;
404
- this.params.filid = '';
405
- }
406
- },
407
- handleSelectCheck(val, data) {
408
- let { userIds, userNames } = data;
409
- if (val) {
410
- let newUserIds = userIds.split(',');
411
- let newUserNames = userNames.split(',');
412
- newUserIds.map((item, index) => {
413
- this.nextNode.nextUser.push(item);
414
- this.userOptions.push({ id: item, name: newUserNames[index],stype:data.stype });
415
-
416
- this.selectUserList.push({
417
- showid: item,
418
- showname: newUserNames[index],
419
- stype:data.stype
420
- });
421
- });
422
- // this.selectUserList = this.newSelectUserList
423
- } else {
424
- let newUserIds = userIds.split(',');
425
- for (let i = 0; i < this.nextNode.nextUser.length; i++) {
426
- for (let j = 0; j < newUserIds.length; j++) {
427
- if (this.nextNode.nextUser[i] == newUserIds[j]) {
428
- this.nextNode.nextUser.splice(i, 1);
429
- }
430
- }
431
- }
432
- for (let z = 0; z < this.userOptions.length; z++) {
433
- for (let x = 0; x < newUserIds.length; x++) {
434
- if (this.userOptions[z].id == newUserIds[x]) {
435
- this.userOptions.splice(z, 1);
436
- this.selectUserList.splice(z, 1);
437
- }
438
- }
439
- }
440
- // this.newSelectUserList = this.selectUserList
441
- }
442
- },
443
- toStartTaskRead() {
444
- let params = {
445
- url: toStartTaskRead,
446
- params: {
447
- pendingId: this.pendingId,
448
- taskAction: this.type,
449
- ...this.param
450
- }
451
- };
452
- if (this.typeCode == 'read') {
453
- delete params.params.pendingId;
454
- // params.params.appid = this.resetAppId;
455
- }
456
- if (this.type != 'taskReadAndEnd') delete params.params.taskAction;
457
- util
458
- .ajax(params)
459
- .then((res) => {
460
- const { status, data } = res;
461
- if (status === 'success') {
462
- this.configInfo = data;
463
- if(data.alreadyReadUserIds){
464
- this.readDisableds = data.alreadyReadUserIds.split(',');
465
- }
466
- this.isMultiple();
467
- }
468
- })
469
- .catch((err) => {
470
- this.loading = false;
471
- if (err.message && err.message !== 'canceled') {
472
- this.$message.error(err.message);
473
- }
474
- });
475
- },
476
- changeSelectUser(val, type) {
477
- const { nextUser, options, mixList } = val;
478
- this.nextNode[type] = nextUser;
479
- this.mixList = mixList;
480
- options.map((item) => {
481
- this.newSelectUserList.push({
482
- showname: item.showname,
483
- showid: item.showid
484
- });
485
- });
486
- },
487
- getNodeType() {
488
- util
489
- .ajax({
490
- url: findCodeValues,
491
- params: {
492
- ccCode: 'fenyue_msg_type',
493
- userId: util.getStorage('userId'),
494
- // pendingId:this.pendingId
495
- }
496
- })
497
- .then((res) => {
498
- const { status, data } = res;
499
- if (status === 'success') {
500
- this.noticeList = data;
501
- let arr = [];
502
- this.noticeList.map((item) => {
503
- this.nextNode.noticeType.map((x) => {
504
- if (x == item.cciValue) {
505
- arr.push(x);
506
- }
507
- });
508
- });
509
- this.nextNode.noticeType = arr;
510
- }
511
- })
512
- .catch((err) => {
513
- this.loading = false;
514
- if (err.message && err.message !== 'canceled') {
515
- this.$message.error(err.message);
516
- }
517
- });
518
- },
519
- // 转办提交
520
- subTaskTransfer() {
521
- const { choiceDeptId, choiceOrgId, bCode, bName } = this.taskExamine;
522
- const { opinion, pendingId, nextNode, newsNoice, multiple, type } = this;
523
- let params = {
524
- url: taskTransfer,
525
- data: {
526
- choiceDeptId,
527
- choiceOrgId,
528
- bCode,
529
- bName,
530
- nextUserId:
531
- multiple && type != 'transfer'
532
- ? nextNode.nextUser.join(',')
533
- : nextNode.nextUser,
534
- opinion,
535
- pendingId,
536
- notificationType: nextNode.noticeType.join(','),
537
- notificationMsg: newsNoice
538
- },
539
- headers: { Accept: 'application/json,text/plain' },
540
- method: 'post'
541
- };
542
- util
543
- .ajax(params)
544
- .then((res) => {
545
- const { message, status } = res;
546
- if (status === 'success') {
547
- this.simpleTips && this.$message.success('操作成功');
548
- this.quit(true);
549
- } else {
550
- this.$message.error(message || '系统错误,请联系管理员!');
551
- }
552
- this.loading = false;
553
- })
554
- .catch((err) => {
555
- this.loading = false;
556
- if (err.message && err.message !== 'canceled') {
557
- this.$message.error(err.message);
558
- }
559
- });
560
- },
561
- // 提交表单
562
- submit(formName) {
563
- this.$refs[formName].validate((valid) => {
564
- if (valid) {
565
- if (!this.option && this.isOpinionRequired === 1) {
566
- this.$message.warning('请选择输入审批意见');
567
- return;
568
- }
569
- // let nextUser = [];
570
- // this.nextNode.nextUser.map(item => {
571
- // nextUser.push(item);
572
- // });
573
- let noticeType = '';
574
- noticeType = this.nextNode.noticeType.join(',');
575
- this.loading = true;
576
- if (this.type === 'transfer') {
577
- this.subTaskTransfer();
578
- } else {
579
- const {
580
- appId,
581
- businessId,
582
- bCode,
583
- bName,
584
- choiceDeptId,
585
- choiceOrgId,
586
- businessName,
587
- processDefinitionId
588
- } = this.taskExamine;
589
- let params = {
590
- ...this.nextNode,
591
- bCode,
592
- bName,
593
- appId,
594
- businessId: businessId || this.param.businessId,
595
- choiceDeptId,
596
- choiceOrgId,
597
- businessName,
598
- processDefinitionId,
599
- currentOrgProcessKey:
600
- processDefinitionId || this.param.currentOrgProcessKey,
601
- pendingId: this.pendingId,
602
- opinion: this.option, // 审批意见
603
- userId: util.getStorage('userId'),
604
- nextReadUserId: this.mixList.join('|'),
605
- notificationType: noticeType,
606
- notificationMsg: this.newsNoice,
607
- taskAction: this.type
608
- // nextNodeId: this.form.nextNodeId
609
- };
610
- delete params.nextUser;
611
- delete params.noticeType;
612
- const { fyDoresult, fyeh, download, isCdjxjTaskHandle } =
613
- this.configInfo;
614
- fyDoresult != 'true' && delete params.showDoresult;
615
- fyeh != 'true' && delete params.isInHistory;
616
- !download && delete params.isDownload;
617
- isCdjxjTaskHandle == 'true' && delete params.noticeType;
618
- if (this.readParams) {
619
- params = { ...params, ...this.readParams };
620
- }
621
- if(this.subParams){
622
- params = { ...params, ...this.subParams };
623
- }
624
- delete this.configInfo.taskExamine.taskExamineParam;
625
- util
626
- .ajax({
627
- url: taskReadHtml,
628
- params: { taskAction: this.type },
629
- headers: {
630
- Accept: 'application/json,text/plain'
631
- },
632
- method: 'post',
633
- data: {...params,...this.configInfo.taskExamine}
634
- })
635
- .then((res) => {
636
- const { message, status } = res;
637
- this.loading = false;
638
- if (status === 'success') {
639
- this.simpleTips && this.$message.success('操作成功');
640
- this.quit(true);
641
- } else {
642
- this.$message.error(message || '系统错误,请联系管理员!');
643
- }
644
- })
645
- .catch((err) => {
646
- this.loading = false;
647
- if (err.message && err.message !== 'canceled') {
648
- this.$message.error(err.message);
649
- }
650
- });
651
- }
652
- } else {
653
- return false;
654
- }
655
- });
656
- },
657
- quit(val) {
658
- if (val === true) return this.$emit('cancel', this.type);
659
- this.$emit('cancel');
660
- },
661
-
662
- getFind() {
663
- this.loading = true;
664
- util
665
- .ajax({
666
- url: findSysCodes
667
- })
668
- .then((res) => {
669
- const { status, message, data } = res;
670
- this.loading = false;
671
- if (status === 'success') {
672
- if(this.hideMessage) return;
673
- this.nextNode.noticeType = message.split(',');
674
- if (data) {
675
- this.notificationMessageReadOnly =
676
- data.notificationMessageReadOnly;
677
- this.readOnlyNotificationType = data.readOnlyNotificationType;
678
- }
679
- } else {
680
- this.$message.error(message || '系统错误,请联系管理员!');
681
- }
682
- this.getNodeType();
683
- if (this.type === 'transfer') {
684
- this.toTaskTransfer();
685
- } else if (!this.readParams) {
686
- this.toStartTaskRead();
687
- }
688
- })
689
- .catch((err) => {
690
- this.loading = false;
691
- if (err.message && err.message !== 'canceled') {
692
- this.$message.error(err.message);
693
- }
694
- });
695
- }
696
- }
697
- };
698
- </script>
1
+ <template>
2
+ <div
3
+ v-loading="loading"
4
+ class="task-read"
5
+ element-loading-text="加载中..."
6
+ element-loading-spinner="el-icon-loading"
7
+ element-loading-background="rgba(255, 255,255, 0.8)"
8
+ :style="`height: ${typeCode == 'read'? '100%' : 'unset'};`"
9
+ >
10
+ <el-form
11
+ ref="nextNode"
12
+ :model="nextNode"
13
+ class="demo-dynamic"
14
+ label-width="110px"
15
+ >
16
+ <div
17
+ :style="`max-height: ${
18
+ typeCode ? 'unset' : '290px'
19
+ }; overflow-y: auto; margin-bottom: 10px`"
20
+ >
21
+ <el-form-item
22
+ prop="handleExplain"
23
+ label="当前步骤"
24
+ v-if="type === 'transfer'"
25
+ >
26
+ <el-input readonly v-model="nextNode.nodeName"></el-input>
27
+ </el-form-item>
28
+ <el-form-item
29
+ v-if="type == 'transfer' && transferInfo.isSinglePage"
30
+ prop="handleExplain"
31
+ label="意见"
32
+ >
33
+ <el-input
34
+ v-model="nextNode.handleExplain"
35
+ placeholder="请填写意见"
36
+ ></el-input>
37
+ </el-form-item>
38
+ <el-form-item
39
+ prop="nextUser"
40
+ :label="
41
+ type === 'transfer'
42
+ ? '转办对象'
43
+ : configInfo.isCdjxjTaskHandle == 'true'
44
+ ? '接收人'
45
+ : '办理用户'
46
+ "
47
+ >
48
+ <SelectUser
49
+ :nextUser="nextNode.nextUser"
50
+ :options="userOptions"
51
+ :multiple="type != 'transfer' ? multiple : false"
52
+ :mix="type != 'transfer'"
53
+ :selectUserList="selectUserList"
54
+ :showTooltip="showTooltip"
55
+ :disableds="readDisableds"
56
+ :types="
57
+ selectorTabs
58
+ ? selectorTabs
59
+ : type == 'transfer'
60
+ ? ['employee', 'persongroup']
61
+ : ['employee', 'enterprise', 'department', 'persongroup']
62
+ "
63
+ @change="changeSelectUser($event, 'nextUser')"
64
+ :tabs="tabs"
65
+ :params="selectorParams"
66
+ />
67
+ </el-form-item>
68
+
69
+ <el-form-item
70
+ v-if="configInfo.isCdjxjTaskHandle != 'true' && type != 'transfer' && configInfo.groups&& configInfo.groups.length != 0"
71
+ prop="cy"
72
+ label="常用群组"
73
+ ><el-checkbox-group v-model="selectCheck">
74
+ <el-checkbox
75
+ @change="handleSelectCheck($event, item)"
76
+ v-for="item in configInfo.groups"
77
+ :label="item.name"
78
+ :key="item.id"
79
+ >{{ item.name }}</el-checkbox
80
+ >
81
+ </el-checkbox-group>
82
+ </el-form-item>
83
+ <el-form-item
84
+ v-if="configInfo.fyDoresult == 'true'"
85
+ prop="showDoresult"
86
+ label="流程意见"
87
+ ><el-radio v-model="nextNode.showDoresult" label="0">分阅</el-radio>
88
+ <el-radio v-model="nextNode.showDoresult" label="1">不分阅</el-radio>
89
+ </el-form-item>
90
+ <el-form-item
91
+ v-if="configInfo.fyeh == 'true'"
92
+ prop="isInHistory"
93
+ label="分阅记录"
94
+ ><el-radio v-model="nextNode.isInHistory" label="0">记录</el-radio>
95
+ <el-radio v-model="nextNode.isInHistory" label="1">不记录</el-radio>
96
+ </el-form-item>
97
+ <el-form-item
98
+ v-if="configInfo.download"
99
+ prop="isDownload"
100
+ label="打印下载文件"
101
+ ><el-radio v-model="nextNode.isDownload" label="0">允许</el-radio>
102
+ <el-radio v-model="nextNode.isDownload" label="1">不允许</el-radio>
103
+ </el-form-item>
104
+ <el-form-item
105
+ prop="handleExplain"
106
+ :label="configInfo.isCdjxjTaskHandle == 'true' ? '附言' : '办理说明'"
107
+ v-if="type != 'transfer'"
108
+ >
109
+ <el-input
110
+ v-model="nextNode.handleExplain"
111
+ type="textarea"
112
+ :rows="3"
113
+
114
+ placeholder="请填写办理说明"
115
+ ></el-input>
116
+ </el-form-item>
117
+ <el-form-item
118
+ v-if="configInfo.isCdjxjTaskHandle != 'true' && noticeList.length > 0 && !hideMessage"
119
+ prop="noticeType"
120
+ label="通知方式"
121
+ >
122
+ <el-checkbox-group
123
+ v-model="nextNode.noticeType"
124
+ style="display: contents"
125
+ >
126
+ <el-checkbox
127
+ v-for="item of noticeList"
128
+ :key="item.cciValue"
129
+ :label="item.cciValue"
130
+ :disabled="
131
+ readOnlyNotificationType
132
+ ? readOnlyNotificationType.indexOf(item.cciValue) != -1
133
+ : false
134
+ "
135
+ >
136
+ {{ item.shortName }}
137
+ </el-checkbox>
138
+ </el-checkbox-group>
139
+ </el-form-item>
140
+ <el-form-item
141
+ v-show="
142
+ nextNode.noticeType.length != 0 &&
143
+ configInfo.isCdjxjTaskHandle != 'true'
144
+ "
145
+ prop="nextNode"
146
+ label="通知消息"
147
+ >
148
+ <es-input
149
+ style="
150
+ border-color: #ccc;
151
+ padding: 5px;
152
+ border-radius: 5px;
153
+ font-size: 13px;
154
+ "
155
+ type="textarea"
156
+ v-model="newsNoice"
157
+ :readonly="notificationMessageReadOnly == 'true'"
158
+ />
159
+ <!-- <span>{{ newsInfo }}</span> -->
160
+ </el-form-item>
161
+ </div>
162
+ <el-form-item>
163
+ <div style="text-align: right">
164
+ <el-button type="primary" @click="submit('nextNode')">
165
+ 提交
166
+ </el-button>
167
+ </div>
168
+ </el-form-item>
169
+ </el-form>
170
+ </div>
171
+ </template>
172
+
173
+ <script>
174
+ import {
175
+ findSysCodes,
176
+ taskReadHtml,
177
+ toStartTaskRead,
178
+ toTaskTransferIndex,
179
+ getNotificationMsg,
180
+ taskTransfer,
181
+ findCodeValues
182
+ } from 'eoss-ui/src/config/api';
183
+ import util from 'eoss-ui/src/utils/util';
184
+ import SelectUser from './selectUser.vue';
185
+ export default {
186
+ name: 'StartTaskRead',
187
+ components: {
188
+ [Option.name]: Option,
189
+ [SelectUser.name]: SelectUser
190
+ },
191
+ props: {
192
+ pendingId: { type: String, default: '' },
193
+ simpleTips: { type: Boolean, default: true },
194
+ showTooltip: { type: Boolean, default: true },
195
+ newsInfo: { type: String, default: '' },
196
+ type: { type: String, default: '' },
197
+ option: { type: String, default: '' },
198
+ typeCode: { type: String, default: '' },
199
+ resetAppId: { type: String, default: '' },
200
+ selectorConfig: { type: [Object, undefined], default: undefined },
201
+ param: { type: Object, default: () => {} },
202
+ taskExamine: { type: Object, default: () => {} },
203
+ subParams:{
204
+ type: [Object, undefined],
205
+ default: undefined
206
+ },
207
+ readParams: {
208
+ type: [Object, undefined],
209
+ default: undefined
210
+ },
211
+
212
+ hideMessage: { type: Boolean, default: false },
213
+ },
214
+ data() {
215
+ return {
216
+ loading: false,
217
+ newsNoice: '',
218
+ readOnlyNotificationType: '',
219
+ notificationMessageReadOnly: false,
220
+ selectorTabs: null,
221
+ selectorParams: null,
222
+ nextNode: {
223
+ nextUser: [],
224
+ userInfo: [],
225
+ noticeType: [],
226
+ handleExplain: '',
227
+ showDoresult: '0',
228
+ isInHistory: '0',
229
+ isDownload: '0'
230
+ },
231
+ mixList: [],
232
+ newSelectUserList: [],
233
+ orgId: '',
234
+ noticeList: [],
235
+ userOptions: [],
236
+ readDisableds:[],
237
+ selectCheck: [],
238
+ selectUserList: [],
239
+ transferInfo: {},
240
+ multiple: true,
241
+ params: { filid: 'all' },
242
+ configInfo: {}
243
+ };
244
+ },
245
+ computed: {
246
+ tabs() {
247
+ let tab = {};
248
+ if (this.type != 'transfer') {
249
+ tab = {
250
+ employee: {
251
+ param: {
252
+ filid: this.orgId,
253
+ name: '本单位用户'
254
+ }
255
+ },
256
+ department: { param: { filid: this.orgId } },
257
+ enterprise: {}
258
+ };
259
+ } else {
260
+ tab = {
261
+ employee: {
262
+ param: {
263
+ filid: this.orgId
264
+ }
265
+ }
266
+ };
267
+ }
268
+ return tab;
269
+ }
270
+ },
271
+ mounted() {
272
+ this.newsNoice = this.newsInfo;
273
+ if (this.readParams || this.typeCode == 'read') {
274
+ this.getMessage();
275
+ }
276
+ this.getFind();
277
+ if (util.getStorage('mainConfig')) {
278
+ this.orgId = JSON.parse(util.getStorage('mainConfig')).userModel.orgId;
279
+ }
280
+ if(this.selectorConfig){
281
+ this.getSelectorConfig()
282
+ }
283
+ },
284
+ methods: {
285
+ getSelectorConfig() {
286
+ this.selectorTabs = this.selectorConfig.type.split(',');
287
+ this.selectorParams = this.selectorConfig.params;
288
+ },
289
+ //获取通知信息
290
+ getMessage() {
291
+ let params = {};
292
+ if (this.typeCode == 'read') {
293
+ params = {
294
+ processDefinitionId: this.param.processDefinitionId,
295
+ businessId: this.param.businessId,
296
+ businessName: this.param.businessName,
297
+ bCode: this.param.bCode,
298
+ bName: this.param.bName,
299
+ appId: this.param.appId
300
+ };
301
+ } else {
302
+ params.appId = this.readParams.appId;
303
+ }
304
+ util
305
+ .ajax({ url: getNotificationMsg, params, methods: 'post' })
306
+ .then((res) => {
307
+ if (res.status === 'success') {
308
+ this.newsNoice = res.message;
309
+ }
310
+ })
311
+ .catch((err) => {
312
+ this.loading = false;
313
+ if (err.message && err.message !== 'canceled') {
314
+ this.$message.error(err.message);
315
+ }
316
+ });
317
+ },
318
+ toTaskTransfer() {
319
+ const { opinion, pendingId, taskExamine } = this;
320
+ let params = {
321
+ url: toTaskTransferIndex,
322
+ params: {
323
+ opinion,
324
+ pendingId,
325
+ isSubFlow: taskExamine.isSubFlow,
326
+ isSinglePage: taskExamine.isSinglePage
327
+ }
328
+ };
329
+ util
330
+ .ajax(params)
331
+ .then((res) => {
332
+ const {
333
+ status,
334
+ message,
335
+ data: { choiceDeptId, choiceOrgId, nodeInfoMap, taskExamine }
336
+ } = res;
337
+ if (status == 'success') {
338
+ this.isMultipleTransfer(
339
+ nodeInfoMap.nodeExtAttr.userSelectionType,
340
+ choiceOrgId,
341
+ choiceDeptId
342
+ );
343
+ this.nextNode.nodeName = taskExamine.nodeName;
344
+ this.transferInfo = taskExamine;
345
+ } else {
346
+ this.$message.error(message || '系统错误,请联系管理员!');
347
+ }
348
+ })
349
+ .catch((err) => {
350
+ this.loading = false;
351
+ if (err.message && err.message !== 'canceled') {
352
+ this.$message.error(err.message);
353
+ }
354
+ });
355
+ },
356
+ isMultipleTransfer(val, choiceOrgId, choiceDeptId, pOrgId) {
357
+ if (val == 2 || val == 4 || val == 6 || val == 16) {
358
+ this.multiple = true;
359
+ } else {
360
+ this.multiple = false;
361
+ }
362
+ if (val == 1 || val == 2 || val == 5) {
363
+ this.params.filid = this.orgId;
364
+ if (choiceOrgId) {
365
+ this.params.filid = choiceOrgId;
366
+ }
367
+ }
368
+ if (val == 5 || val == 6) {
369
+ this.params.filid = this.orgId;
370
+ this.params.deptid = this.orgId;
371
+ if (choiceDeptId) {
372
+ this.params.deptid = choiceDeptId;
373
+ }
374
+ if (choiceOrgId) {
375
+ this.params.filid = choiceOrgId;
376
+ }
377
+ }
378
+ if (val == 15 || val == 16) {
379
+ this.params.filid = this.orgId;
380
+ if (pOrgId) {
381
+ this.params.filid = pOrgId;
382
+ }
383
+ }
384
+ },
385
+ isMultiple() {
386
+ let orgId = this.orgId;
387
+ if (this.configInfo.selectPersonValue == 1) {
388
+ this.multiple = false;
389
+ this.params.filid = orgId;
390
+ } else if (this.configInfo.selectPersonValue == 2) {
391
+ this.multiple = true;
392
+ this.params.filid = orgId;
393
+ } else if (this.configInfo.selectPersonValue == 3) {
394
+ this.multiple = false;
395
+ this.params.filid = 'all';
396
+ } else if (this.configInfo.selectPersonValue == 4) {
397
+ this.multiple = true;
398
+ this.params.filid = 'all';
399
+ } else if (this.configInfo.selectPersonValue == 5) {
400
+ this.multiple = false;
401
+ this.params.filid = '';
402
+ } else if (this.configInfo.selectPersonValue == 6) {
403
+ this.multiple = true;
404
+ this.params.filid = '';
405
+ }
406
+ },
407
+ handleSelectCheck(val, data) {
408
+ let { userIds, userNames } = data;
409
+ if (val) {
410
+ let newUserIds = userIds.split(',');
411
+ let newUserNames = userNames.split(',');
412
+ newUserIds.map((item, index) => {
413
+ this.nextNode.nextUser.push(item);
414
+ this.userOptions.push({ id: item, name: newUserNames[index],stype:data.stype });
415
+
416
+ this.selectUserList.push({
417
+ showid: item,
418
+ showname: newUserNames[index],
419
+ stype:data.stype
420
+ });
421
+ });
422
+ // this.selectUserList = this.newSelectUserList
423
+ } else {
424
+ let newUserIds = userIds.split(',');
425
+ for (let i = 0; i < this.nextNode.nextUser.length; i++) {
426
+ for (let j = 0; j < newUserIds.length; j++) {
427
+ if (this.nextNode.nextUser[i] == newUserIds[j]) {
428
+ this.nextNode.nextUser.splice(i, 1);
429
+ }
430
+ }
431
+ }
432
+ for (let z = 0; z < this.userOptions.length; z++) {
433
+ for (let x = 0; x < newUserIds.length; x++) {
434
+ if (this.userOptions[z].id == newUserIds[x]) {
435
+ this.userOptions.splice(z, 1);
436
+ this.selectUserList.splice(z, 1);
437
+ }
438
+ }
439
+ }
440
+ // this.newSelectUserList = this.selectUserList
441
+ }
442
+ },
443
+ toStartTaskRead() {
444
+ let params = {
445
+ url: toStartTaskRead,
446
+ params: {
447
+ pendingId: this.pendingId,
448
+ taskAction: this.type,
449
+ ...this.param
450
+ }
451
+ };
452
+ if (this.typeCode == 'read') {
453
+ delete params.params.pendingId;
454
+ // params.params.appid = this.resetAppId;
455
+ }
456
+ if (this.type != 'taskReadAndEnd') delete params.params.taskAction;
457
+ util
458
+ .ajax(params)
459
+ .then((res) => {
460
+ const { status, data } = res;
461
+ if (status === 'success') {
462
+ this.configInfo = data;
463
+ if(data.alreadyReadUserIds){
464
+ this.readDisableds = data.alreadyReadUserIds.split(',');
465
+ }
466
+ this.isMultiple();
467
+ }
468
+ })
469
+ .catch((err) => {
470
+ this.loading = false;
471
+ if (err.message && err.message !== 'canceled') {
472
+ this.$message.error(err.message);
473
+ }
474
+ });
475
+ },
476
+ changeSelectUser(val, type) {
477
+ const { nextUser, options, mixList } = val;
478
+ this.nextNode[type] = nextUser;
479
+ this.mixList = mixList;
480
+ options.map((item) => {
481
+ this.newSelectUserList.push({
482
+ showname: item.showname,
483
+ showid: item.showid
484
+ });
485
+ });
486
+ },
487
+ getNodeType() {
488
+ util
489
+ .ajax({
490
+ url: findCodeValues,
491
+ params: {
492
+ ccCode: 'fenyue_msg_type',
493
+ userId: util.getStorage('userId'),
494
+ // pendingId:this.pendingId
495
+ }
496
+ })
497
+ .then((res) => {
498
+ const { status, data } = res;
499
+ if (status === 'success') {
500
+ this.noticeList = data;
501
+ let arr = [];
502
+ this.noticeList.map((item) => {
503
+ this.nextNode.noticeType.map((x) => {
504
+ if (x == item.cciValue) {
505
+ arr.push(x);
506
+ }
507
+ });
508
+ });
509
+ this.nextNode.noticeType = arr;
510
+ }
511
+ })
512
+ .catch((err) => {
513
+ this.loading = false;
514
+ if (err.message && err.message !== 'canceled') {
515
+ this.$message.error(err.message);
516
+ }
517
+ });
518
+ },
519
+ // 转办提交
520
+ subTaskTransfer() {
521
+ const { choiceDeptId, choiceOrgId, bCode, bName } = this.taskExamine;
522
+ const { opinion, pendingId, nextNode, newsNoice, multiple, type } = this;
523
+ let params = {
524
+ url: taskTransfer,
525
+ data: {
526
+ choiceDeptId,
527
+ choiceOrgId,
528
+ bCode,
529
+ bName,
530
+ nextUserId:
531
+ multiple && type != 'transfer'
532
+ ? nextNode.nextUser.join(',')
533
+ : nextNode.nextUser,
534
+ opinion,
535
+ pendingId,
536
+ notificationType: nextNode.noticeType.join(','),
537
+ notificationMsg: newsNoice
538
+ },
539
+ headers: { Accept: 'application/json,text/plain' },
540
+ method: 'post'
541
+ };
542
+ util
543
+ .ajax(params)
544
+ .then((res) => {
545
+ const { message, status } = res;
546
+ if (status === 'success') {
547
+ this.simpleTips && this.$message.success('操作成功');
548
+ this.quit(true);
549
+ } else {
550
+ this.$message.error(message || '系统错误,请联系管理员!');
551
+ }
552
+ this.loading = false;
553
+ })
554
+ .catch((err) => {
555
+ this.loading = false;
556
+ if (err.message && err.message !== 'canceled') {
557
+ this.$message.error(err.message);
558
+ }
559
+ });
560
+ },
561
+ // 提交表单
562
+ submit(formName) {
563
+ this.$refs[formName].validate((valid) => {
564
+ if (valid) {
565
+ if (!this.option && this.isOpinionRequired === 1) {
566
+ this.$message.warning('请选择输入审批意见');
567
+ return;
568
+ }
569
+ // let nextUser = [];
570
+ // this.nextNode.nextUser.map(item => {
571
+ // nextUser.push(item);
572
+ // });
573
+ let noticeType = '';
574
+ noticeType = this.nextNode.noticeType.join(',');
575
+ this.loading = true;
576
+ if (this.type === 'transfer') {
577
+ this.subTaskTransfer();
578
+ } else {
579
+ const {
580
+ appId,
581
+ businessId,
582
+ bCode,
583
+ bName,
584
+ choiceDeptId,
585
+ choiceOrgId,
586
+ businessName,
587
+ processDefinitionId
588
+ } = this.taskExamine;
589
+ let params = {
590
+ ...this.nextNode,
591
+ bCode,
592
+ bName,
593
+ appId,
594
+ businessId: businessId || this.param.businessId,
595
+ choiceDeptId,
596
+ choiceOrgId,
597
+ businessName,
598
+ processDefinitionId,
599
+ currentOrgProcessKey:
600
+ processDefinitionId || this.param.currentOrgProcessKey,
601
+ pendingId: this.pendingId,
602
+ opinion: this.option, // 审批意见
603
+ userId: util.getStorage('userId'),
604
+ nextReadUserId: this.mixList.join('|'),
605
+ notificationType: noticeType,
606
+ notificationMsg: this.newsNoice,
607
+ taskAction: this.type
608
+ // nextNodeId: this.form.nextNodeId
609
+ };
610
+ delete params.nextUser;
611
+ delete params.noticeType;
612
+ const { fyDoresult, fyeh, download, isCdjxjTaskHandle } =
613
+ this.configInfo;
614
+ fyDoresult != 'true' && delete params.showDoresult;
615
+ fyeh != 'true' && delete params.isInHistory;
616
+ !download && delete params.isDownload;
617
+ isCdjxjTaskHandle == 'true' && delete params.noticeType;
618
+ if (this.readParams) {
619
+ params = { ...params, ...this.readParams };
620
+ }
621
+ if(this.subParams){
622
+ params = { ...params, ...this.subParams };
623
+ }
624
+ delete this.configInfo.taskExamine.taskExamineParam;
625
+ util
626
+ .ajax({
627
+ url: taskReadHtml,
628
+ params: { taskAction: this.type },
629
+ headers: {
630
+ Accept: 'application/json,text/plain'
631
+ },
632
+ method: 'post',
633
+ data: {...params,...this.configInfo.taskExamine}
634
+ })
635
+ .then((res) => {
636
+ const { message, status } = res;
637
+ this.loading = false;
638
+ if (status === 'success') {
639
+ this.simpleTips && this.$message.success('操作成功');
640
+ this.quit(true);
641
+ } else {
642
+ this.$message.error(message || '系统错误,请联系管理员!');
643
+ }
644
+ })
645
+ .catch((err) => {
646
+ this.loading = false;
647
+ if (err.message && err.message !== 'canceled') {
648
+ this.$message.error(err.message);
649
+ }
650
+ });
651
+ }
652
+ } else {
653
+ return false;
654
+ }
655
+ });
656
+ },
657
+ quit(val) {
658
+ if (val === true) return this.$emit('cancel', this.type);
659
+ this.$emit('cancel');
660
+ },
661
+
662
+ getFind() {
663
+ this.loading = true;
664
+ util
665
+ .ajax({
666
+ url: findSysCodes
667
+ })
668
+ .then((res) => {
669
+ const { status, message, data } = res;
670
+ this.loading = false;
671
+ if (status === 'success') {
672
+ if(this.hideMessage) return;
673
+ this.nextNode.noticeType = message.split(',');
674
+ if (data) {
675
+ this.notificationMessageReadOnly =
676
+ data.notificationMessageReadOnly;
677
+ this.readOnlyNotificationType = data.readOnlyNotificationType;
678
+ }
679
+ } else {
680
+ this.$message.error(message || '系统错误,请联系管理员!');
681
+ }
682
+ this.getNodeType();
683
+ if (this.type === 'transfer') {
684
+ this.toTaskTransfer();
685
+ } else if (!this.readParams) {
686
+ this.toStartTaskRead();
687
+ }
688
+ })
689
+ .catch((err) => {
690
+ this.loading = false;
691
+ if (err.message && err.message !== 'canceled') {
692
+ this.$message.error(err.message);
693
+ }
694
+ });
695
+ }
696
+ }
697
+ };
698
+ </script>