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,763 +1,763 @@
1
- <template>
2
- <div class="task-union-examine" v-loading="loading">
3
- <el-form
4
- ref="infoList"
5
- :model="infoList"
6
- class="demo-dynamic"
7
- :rules="rules"
8
- label-width="120px"
9
- >
10
- <el-form-item v-if="isSinglePage" prop="opinion" label="意见">
11
- <CommonOpinions @change="(val) => (opinion = val)" />
12
- </el-form-item>
13
- <el-form-item
14
- v-if="isHideCurrentOrg == 0"
15
- :prop="type != 'takeAdvice' ? 'nextOtherOrgObj' : 'nextCurrentOrgObj'"
16
- :label="
17
- type == 'takeAdvice'
18
- ? currentOrgName
19
- ? currentOrgName
20
- : '本单位'
21
- : type == 'startDraf'
22
- ? '呈送单位/对象'
23
- : type === 'taskReview'
24
- ? '复核人'
25
- : type === 'twoOfficesDispatch'
26
- ? '报送单位'
27
- : '联合单位'
28
- "
29
- >
30
- <SelectUser
31
- :nextUser="
32
- type != 'takeAdvice'
33
- ? infoList.nextOtherOrgObj
34
- : infoList.nextCurrentOrgObj
35
- "
36
- :multiple="newMultiple"
37
- :selectorTags="4"
38
- :showTooltip="showTooltip"
39
- :mix="currentMix"
40
- :isUnionSeal="type == 'unionSeal'"
41
- :selectUserList="unionSealData || []"
42
- @change="
43
- changeSelectUser(
44
- $event,
45
- type != 'takeAdvice' ? 'nextOtherOrgObj' : 'nextCurrentOrgObj'
46
- )
47
- "
48
- :types="
49
- type == 'takeAdvice'
50
- ? currentOrgTabs.length > 0
51
- ? currentOrgTabs
52
- : ['department', 'employee']
53
- : type == 'startDraf'
54
- ? ['employee', 'enterprise']
55
- : ['enterprise']
56
- "
57
- :params="
58
- type == 'startDraf' || type == 'unionExamine' ? otherParams : params
59
- "
60
- :tabs="currentOrgTabsParam"
61
- :disabled="disabled"
62
- :onlyName="onlyName"
63
- />
64
- </el-form-item>
65
- <el-form-item
66
- prop="nextOtherOrgObj"
67
- v-if="isHideOtherOrg == 0 && type == 'takeAdvice'"
68
- :label="otherOrgName ? otherOrgName : '外单位'"
69
- >
70
- <SelectUser
71
- :nextUser="infoList.nextOtherOrgObj"
72
- :where="{ filid: 'all', roleid: selectorParams.roleid }"
73
- :showTooltip="showTooltip"
74
- :multiple="newMultiple"
75
- @change="changeSelectUser($event, 'nextOtherOrgObj')"
76
- :mix="otherMix"
77
- :selectorTags="4"
78
- :disableds="otherOrgDisabledObjId"
79
- :types="
80
- foreignOrgTabs.length > 0
81
- ? foreignOrgTabs
82
- : isChoiceOtherOrgDept == 'true'
83
- ? ['enterprise', 'department']
84
- : ['enterprise']
85
- "
86
- :params="otherParams"
87
- :tabs="foreignOrgTabsParam"
88
- />
89
- </el-form-item>
90
- <el-form-item
91
- v-if="enableCustomLimitTimeSetting"
92
- prop="customLimitTime"
93
- label="限时办理"
94
- >
95
- <!-- style="width: 49%; display: inline-block;" -->
96
- <es-select
97
- style="width: 20% !important; display: inline-block"
98
- v-model="infoList.customLimitTimeText"
99
- placeholder="请选择"
100
- @change="handleChangeTime"
101
- sysCode="bpm_custom_limit_time"
102
- ></es-select>
103
- <el-input
104
- style="width: 20%; display: inline-block"
105
- v-model="infoList.customLimitTime"
106
- placeholder="请输入限时办理的天数"
107
- class="input-with-select custom-limit-time"
108
- >
109
- </el-input>
110
- <span style="margin-left: 5px">天</span>
111
- <!-- <es-button
112
- type="primary"
113
- slot="append"
114
- @click="
115
- () => {
116
- infoList.customLimitTime = '';
117
- showCustomLimitTimeText = !showCustomLimitTimeText;
118
- }
119
- "
120
- >切换{{ showCustomLimitTimeText ? '选择框' : '文本框' }}</es-button
121
- > -->
122
- </el-form-item>
123
- <!-- :rules="[
124
- { required: false, message: `请选择通知方式`, trigger: 'blur' }
125
- ]" -->
126
- <el-form-item
127
- prop="noticeType"
128
- label="通知方式"
129
- v-show="infoList.noticeList.length != 0 && !hideMessage"
130
- >
131
- <el-checkbox-group
132
- v-model="infoList.noticeType"
133
- style="display: contents"
134
- >
135
- <el-checkbox
136
- v-for="item of infoList.noticeList"
137
- :key="item.cciValue"
138
- :label="item.cciValue"
139
- :disabled="
140
- readOnlyNotificationType
141
- ? readOnlyNotificationType.indexOf(item.cciValue) != -1
142
- : false
143
- "
144
- >
145
- {{ item.shortName }}
146
- </el-checkbox>
147
- </el-checkbox-group>
148
- </el-form-item>
149
- <el-form-item
150
- v-show="infoList.noticeType.length != 0"
151
- prop="noticeInfo"
152
- label="通知消息"
153
- >
154
- <es-input
155
- style="
156
- border-color: #ccc;
157
- padding: 5px;
158
- border-radius: 5px;
159
- font-size: 13px;
160
- "
161
- type="textarea"
162
- v-model="infoList.noticeInfo"
163
- :readonly="notificationMessageReadOnly"
164
- />
165
- <!-- <span>{{ infoList.noticeInfo }}</span> -->
166
- </el-form-item>
167
- </el-form>
168
- <div style="text-align: right">
169
- <el-button type="primary" @click="subMit"> 确定 </el-button>
170
- <el-button @click="quit" > 取消 </el-button>
171
- </div>
172
- </div>
173
- </template>
174
-
175
- <script>
176
- import CommonOpinions from './CommonOpinions.vue';
177
- import SelectUser from '../selectUser.vue';
178
- import {
179
- findSysCodes,
180
- getNotificationMsg,
181
- toTaskTakeAdvice,
182
- findCodeValues,
183
- toTaskStartDraft,
184
- toTaskReview,
185
- taskStartDraft,
186
- toTaskUnionSeal,
187
- taskReview,
188
- toTwoOfficesDispatch,
189
- taskUnionSeal,
190
- twoOfficesDispatch,
191
- taskUnionExamine,
192
- taskTakeAdvice,
193
- toTaskUnionExamine
194
- } from 'eoss-ui/src/config/api';
195
- import util from 'eoss-ui/src/utils/util.js';
196
- export default {
197
- name: 'TaskUnionExamine',
198
- components: {
199
- [CommonOpinions.name]: CommonOpinions,
200
- [SelectUser.name]: SelectUser
201
- },
202
- props: {
203
- pendingId: { type: String, default: '' },
204
- showTooltip: { type: Boolean, default: true },
205
- type: { type: String, default: '' },
206
- defaultOpinion: { type: String, default: '' },
207
- oldOption: { type: String, default: '' },
208
- disabled: { type: Boolean, default: false },
209
- simpleTips: { type: Boolean, default: true },
210
- multiple: { type: Boolean, default: true },
211
- selectorParams: {
212
- type: Object,
213
- default: () => {
214
- return {};
215
- }
216
- },
217
- hideMessage: { type: Boolean, default: false },
218
- },
219
- inheritAttrs: false,
220
- data() {
221
- return {
222
- opinion: '', //办理意见
223
- readOnlyNotificationType: '',
224
- notificationMessageReadOnly: false,
225
- otherMix: false,
226
- enableCustomLimitTimeSetting: false,
227
- showCustomLimitTimeText: false,
228
- currentMix: false,
229
- infoList: {
230
- nextOtherOrgObj: [],
231
- nextCurrentOrgObj: [],
232
- noticeType: [],
233
- noticeList: [],
234
- noticeInfo: '',
235
- opinion: '',
236
- customLimitTime: '',
237
- customLimitTimeText: ''
238
- },
239
- onlyName: '',
240
- unionSealData: [],
241
- currentOrgTabs: [],
242
- foreignOrgTabs: [],
243
- foreignOrgTabsParam: {},
244
- currentOrgTabsParam: {},
245
- currentOrgProcessKey: '',
246
- otherOrgDisabledObjId: [],
247
- isSubFlow: true,
248
- choiceDeptId: '',
249
- choiceOrgId: '',
250
- isSinglePage: false,
251
- isChoiceOtherOrgDept: '',
252
- currentOrgName: '',
253
- otherOrgName: '',
254
- newMultiple: true,
255
- params: { filid: 'all',only_filid:true },
256
- isHideOtherOrg: '',
257
- isHideCurrentOrg: 0,
258
- isOpinionRequired: 0,
259
- otherParams: { filid: 'all', roleid: '', nofilid: sessionStorage.getItem('orgId') },
260
- loading: false
261
- };
262
- },
263
- computed: {
264
- rules() {
265
- return {
266
- customLimitTime: [
267
- {
268
- required: this.enableCustomLimitTimeSetting,
269
- message: this.showCustomLimitTimeText
270
- ? '请输入限时办理天数'
271
- : '请选择限时办理天数',
272
- trigger: 'blur'
273
- },
274
- {
275
- required: this.enableCustomLimitTimeSetting,
276
- validator: this.checkCustomLimitTime,
277
- trigger: 'change'
278
- }
279
- ]
280
- };
281
- }
282
- },
283
- mounted() {
284
- this.loading = true;
285
- this.newMultiple = this.multiple;
286
- this.otherParams.roleid = this.params.roleid = this.selectorParams.roleid;
287
- this.opinion = this.oldOption;
288
- this.getNodeType();
289
- if (this.type === 'taskReview') return this.getTaskReview();
290
- this.getInfo();
291
- },
292
- methods: {
293
- handleChangeTime(val) {
294
- this.infoList.customLimitTime = val;
295
- },
296
- validate() {
297
- let validSate = true;
298
- this.$refs.infoList.validate((valid) => {
299
- if (valid) {
300
- validSate = true;
301
- } else {
302
- validSate = false;
303
- }
304
- });
305
- return validSate;
306
- },
307
- checkCustomLimitTime(rule, value, callback) {
308
- if (!Number(value) || value.indexOf('.') != -1 || Number(value) < 0) {
309
- callback(new Error('请输入正确的天数'));
310
- this.infoList.customLimitTime = '';
311
- } else {
312
- callback();
313
- }
314
- },
315
- isMultiple(val) {
316
- if (val == 7 || val == 9 || val == 11) {
317
- this.newMultiple = false;
318
- }
319
- },
320
- subTaskReview() {
321
- let {
322
- infoList: { nextOtherOrgObj, noticeType, noticeInfo },
323
- businessId,
324
- opinion,
325
- isSubFlow,
326
- currentOrgProcessKey,
327
- pendingId
328
- } = this;
329
- let params = {
330
- url: taskReview,
331
- data: {
332
- nextUserId: nextOtherOrgObj.join(','),
333
- notificationType: noticeType.join(','),
334
- notificationMsg: noticeInfo,
335
- opinion,
336
- isSubFlow,
337
- businessId,
338
- currentOrgProcessKey,
339
- pendingId
340
- },
341
- method: 'POST'
342
- };
343
- this.loading = true;
344
- util
345
- .ajax(params)
346
- .then((res) => {
347
- const { message, status } = res;
348
- this.loading = false;
349
- if (status === 'success') {
350
- this.simpleTips && this.$message.success('提交成功');
351
- this.quit(true);
352
- } else {
353
- this.$message.error(message || '系统错误,请联系管理员!');
354
- }
355
- })
356
- .catch((err) => {
357
- this.loading = false;
358
- if (err.message && err.message !== 'canceled') {
359
- this.$message.error(err.message);
360
- }
361
- });
362
- },
363
- getTaskReview() {
364
- let params = {
365
- url: toTaskReview,
366
- params: { pendingId: this.pendingId }
367
- };
368
- util
369
- .ajax(params)
370
- .then((res) => {
371
- const { status, message } = res;
372
- this.loading = false;
373
- if (status === 'success') {
374
- const {
375
- data: { initiatorUser, taskExamine }
376
- } = res;
377
- if (taskExamine.opinion) {
378
- this.opinion = taskExamine.opinion;
379
- }
380
- this.infoList.nextOtherOrgObj.push(initiatorUser.userId);
381
- this.onlyName = initiatorUser.username;
382
- this.isSubFlow = taskExamine.isSubFlow;
383
- this.currentOrgProcessKey = taskExamine.currentOrgProcessKey;
384
- this.getFind();
385
- this.getMessage();
386
- } else {
387
- this.$message.error(message || '系统错误,请联系管理员!');
388
- }
389
- })
390
- .catch((err) => {
391
- this.loading = false;
392
- if (err.message && err.message !== 'canceled') {
393
- this.$message.error(err.message);
394
- }
395
- });
396
- },
397
- getInfo() {
398
- let params = {
399
- url:
400
- this.type == 'takeAdvice'
401
- ? toTaskTakeAdvice
402
- : this.type === 'startDraf'
403
- ? toTaskStartDraft
404
- : this.type == 'unionSeal'
405
- ? toTaskUnionSeal
406
- : this.type == 'twoOfficesDispatch'
407
- ? toTwoOfficesDispatch
408
- : toTaskUnionExamine,
409
- params: { pendingId: this.pendingId },
410
- headers: { Accept: 'application/json,text/plain' }
411
- };
412
- util
413
- .ajax(params)
414
- .then((res) => {
415
- const { message, status } = res;
416
- this.loading = false;
417
- if (status == 'success') {
418
- const {
419
- data: {
420
- choiceDeptId,
421
- choiceOrgId,
422
- taskExamine,
423
- unionDispatchOrgName,
424
- readOnlyNotificationType,
425
- notificationMessageReadOnly,
426
- unionDispatchOrgId,
427
- otherOrgDisabledObjId,
428
- orgNames,
429
- enableCustomLimitTimeSetting,
430
- defaultCustomLimitDays,
431
- nodeInfoMap: {
432
- nodeExtAttr: {
433
- userSelectionType,
434
- isHideOtherOrg,
435
- isHideCurrentOrg,
436
- isOpinionRequired
437
- }
438
- }
439
- }
440
- } = res;
441
- if (otherOrgDisabledObjId) {
442
- this.otherOrgDisabledObjId = otherOrgDisabledObjId.split(',');
443
- }
444
- this.enableCustomLimitTimeSetting = enableCustomLimitTimeSetting;
445
- if (this.enableCustomLimitTimeSetting && defaultCustomLimitDays) {
446
- this.infoList.customLimitTime =
447
- this.infoList.customLimitTimeText = defaultCustomLimitDays + '';
448
- }
449
- if (res.data.customizedConfig) {
450
- if (res.data.customizedConfig.currentOrgSelectorCustomized) {
451
- this.currentMix =
452
- res.data.customizedConfig.currentOrgSelectorSelectMix ==
453
- 'true';
454
- this.currentOrgTabs =
455
- res.data.customizedConfig.currentOrgSelectorItemList.split(
456
- ','
457
- );
458
- let param =
459
- res.data.customizedConfig.currentOrgSelectorRangeList.split(
460
- ','
461
- );
462
- this.currentOrgTabs.map((x, i) => {
463
- this.params[x] = {
464
- filid:
465
- param[i] == 'my'
466
- ? (this.params.filid = JSON.parse(
467
- util.getStorage('mainConfig')
468
- ).userModel.orgId)
469
- : param[i],
470
- only_filid:true
471
- };
472
- });
473
- } else {
474
- if (this.type == 'takeAdvice') {
475
- this.params.filid = JSON.parse(
476
- util.getStorage('mainConfig')
477
- ).userModel.orgId;
478
- }
479
- }
480
-
481
- if (res.data.customizedConfig.foreignOrgSelectorCustomized) {
482
- this.otherMix =
483
- res.data.customizedConfig.foreignOrgSelectorSelectMix ==
484
- 'true';
485
- this.foreignOrgTabs =
486
- res.data.customizedConfig.foreignOrgSelectorItemList.split(
487
- ','
488
- );
489
- let param =
490
- res.data.customizedConfig.foreignOrgSelectorRangeList.split(
491
- ','
492
- );
493
- this.foreignOrgTabs.map((x, i) => {
494
- this.otherParams[x] = {
495
- filid: 'all',
496
- roleid: this.selectorParams.roleid,
497
- nofilid: sessionStorage.getItem('orgId')
498
- };
499
- });
500
- }
501
- }
502
- this.readOnlyNotificationType = readOnlyNotificationType;
503
- this.notificationMessageReadOnly =
504
- notificationMessageReadOnly == 'true';
505
- this.isSinglePage = taskExamine.isSinglePage;
506
- this.isSubFlow = taskExamine.isSubFlow;
507
- if (taskExamine.opinion) {
508
- this.opinion = taskExamine.opinion;
509
- }
510
- this.choiceDeptId = choiceDeptId;
511
- this.choiceOrgId = choiceOrgId;
512
- if (this.type == 'takeAdvice' || this.type == 'startDraf') {
513
- this.currentOrgName = res.data.currentOrgName;
514
- this.otherOrgName = res.data.otherOrgName;
515
- this.isChoiceOtherOrgDept = res.data.isChoiceOtherOrgDept;
516
- this.isHideOtherOrg = isHideOtherOrg;
517
- this.isHideCurrentOrg = isHideCurrentOrg;
518
- }
519
- this.isOpinionRequired = isOpinionRequired;
520
- if (this.type == 'unionSeal') {
521
- let names = unionDispatchOrgName.split(',');
522
- let ids = unionDispatchOrgId.split(',');
523
- names.map((x, i) => {
524
- if (x) {
525
- this.unionSealData.push({
526
- showname: x,
527
- showid: ids[i]
528
- });
529
- }
530
- });
531
- // this.onlyName = unionDispatchOrgName;
532
- // this.infoList.nextOtherOrgObj.push(unionDispatchOrgId);
533
- }
534
- if (this.type == 'twoOfficesDispatch') {
535
- this.onlyName = orgNames;
536
- this.infoList.nextOtherOrgObj.push(taskExamine.nextOtherOrgObj);
537
- }
538
- this.isMultiple(userSelectionType);
539
- this.getFind();
540
- this.getMessage();
541
- } else {
542
- this.$message.error(message || '系统错误,请联系管理员!');
543
- }
544
- })
545
- .catch((err) => {
546
- this.loading = false;
547
- if (err.message && err.message !== 'canceled') {
548
- this.$message.error(err.message);
549
- }
550
- });
551
- },
552
- subMit() {
553
- // if (
554
- // this.infoList.nextOtherOrgObjName == '' ||
555
- // this.infoList.nextOtherOrgObjName.length == 0
556
- // )
557
- // return this.$message.warning('请选择联合单位');
558
- if (this.type === 'taskReview') return this.subTaskReview();
559
- let {
560
- infoList: {
561
- nextCurrentOrgObj,
562
- nextOtherOrgObj,
563
- noticeType,
564
- customLimitTime,
565
- noticeInfo
566
- },
567
- isOpinionRequired,
568
- opinion,
569
- type,
570
- isHideOtherOrg,
571
- choiceDeptId,
572
- choiceOrgId,
573
- isHideCurrentOrg,
574
- isSubFlow,
575
- pendingId
576
- } = this;
577
- console.log(nextCurrentOrgObj);
578
- console.log(nextOtherOrgObj);
579
- if (
580
- type == 'takeAdvice' &&
581
- !nextCurrentOrgObj &&
582
- isHideCurrentOrg == 0 &&
583
- nextCurrentOrgObj.length == 0 &&
584
- isHideOtherOrg == 0 &&
585
- (!nextOtherOrgObj || nextOtherOrgObj.length == 0)
586
- ) {
587
- return this.$message.warning('请选择处理对象!');
588
- } else if (
589
- isHideCurrentOrg == 0 &&
590
- (!nextOtherOrgObj || nextOtherOrgObj.length == 0) &&
591
- (!nextCurrentOrgObj || nextCurrentOrgObj.length == 0)
592
- ) {
593
- return this.$message.warning('请选择处理对象!');
594
- }
595
-
596
- if (isOpinionRequired == 1 && (opinion == '' || opinion == null)) {
597
- return this.$message.warning('当前步骤必须输入意见!');
598
- }
599
- // if (this.type != 'startDraf' && this.type != 'unionSeal' && this.type != 'twoOfficesDispatch')
600
- // return this.$message.warning('暂未开放,敬请期待!');
601
- const param = {
602
- url:
603
- this.type === 'startDraf'
604
- ? taskStartDraft
605
- : this.type == 'unionSeal'
606
- ? taskUnionSeal
607
- : this.type === 'twoOfficesDispatch'
608
- ? twoOfficesDispatch
609
- : this.type == 'takeAdvice'
610
- ? taskTakeAdvice
611
- : taskUnionExamine,
612
- data: {
613
- opinion,
614
- pendingId,
615
-
616
- nextOtherOrgObj:
617
- this.type == 'unionSeal'
618
- ? this.unionSealData.map((x) => x.showid).join(',')
619
- : Array.isArray(nextOtherOrgObj)
620
- ? nextOtherOrgObj.join(',')
621
- : nextOtherOrgObj,
622
- nextCurrentOrgObj: Array.isArray(nextCurrentOrgObj)
623
- ? nextCurrentOrgObj.join(',')
624
- : nextCurrentOrgObj,
625
- notificationMsg: noticeInfo,
626
- notificationType: noticeType.join(','),
627
- choiceDeptId,
628
- isSubFlow,
629
- choiceOrgId
630
- },
631
- headers: { Accept: 'application/json,text/plain' },
632
- method: 'POST'
633
- };
634
- if (this.enableCustomLimitTimeSetting) {
635
- param.data.customLimitTime = customLimitTime;
636
- console.log(this.validate(), 'this.validate()');
637
- if (!this.validate()) return;
638
- }
639
- this.loading = true;
640
- util
641
- .ajax(param)
642
- .then((res) => {
643
- const { message, status } = res;
644
- this.loading = false;
645
- if (status == 'success') {
646
- this.simpleTips && this.$message.success('提交成功');
647
- this.quit(true);
648
- } else {
649
- this.$message.error(message || '系统错误,请联系管理员!');
650
- }
651
- })
652
- .catch((err) => {
653
- this.loading = false;
654
- if (err.message && err.message !== 'canceled') {
655
- this.$message.error(err.message);
656
- }
657
- });
658
- },
659
- quit(val) {
660
- if (val === true) return this.$emit('cancel', val);
661
- this.$emit('cancel');
662
- },
663
- changeSelectUser(val, type) {
664
- const { nextUser, options } = val;
665
- let newNextUser = [];
666
- let obj = {};
667
- options.map((item) => {
668
- if (obj[item.stype]) {
669
- obj[item.stype].push(item.id);
670
- } else {
671
- obj[item.stype] = [item.id];
672
- }
673
- // if (newNextUser) {
674
- // newNextUser += `,${item.stype}-${item.id}`;
675
- // } else {
676
- // newNextUser = `${item.stype}-${item.id}`;
677
- // }
678
- });
679
- for (let key in obj) {
680
- newNextUser.push(`${key}-${obj[key].join(',')}`);
681
- }
682
-
683
- this.infoList[type] = newNextUser.join('|');
684
- },
685
- getNodeType() {
686
- util
687
- .ajax({
688
- url: findCodeValues,
689
- params: {
690
- ccCode: 'notification_type',
691
- userId: util.getStorage('userId'),
692
- pendingId: this.pendingId
693
- }
694
- })
695
- .then((res) => {
696
- const { status, data } = res;
697
- this.loading = false;
698
- if (status === 'success') {
699
- this.infoList.noticeList = data;
700
- }
701
- })
702
- .catch((err) => {
703
- this.loading = false;
704
- if (err.message && err.message !== 'canceled') {
705
- this.$message.error(err.message);
706
- }
707
- });
708
- },
709
- //获取通知信息
710
- getMessage() {
711
- let params = {
712
- pendingId: this.pendingId
713
- };
714
- util
715
- .ajax({ url: getNotificationMsg, params, methods: 'post' })
716
- .then((res) => {
717
- if (res.status === 'success') {
718
- this.infoList.noticeInfo = res.message;
719
- }
720
- this.loading = false;
721
- })
722
- .catch((err) => {
723
- this.loading = false;
724
- if (err.message && err.message !== 'canceled') {
725
- this.$message.error(err.message);
726
- }
727
- });
728
- },
729
- getFind() {
730
- util
731
- .ajax({
732
- url: findSysCodes
733
- })
734
- .then((res) => {
735
- const { status, message } = res;
736
- if (status === 'success') {
737
- if(this.hideMessage) return;
738
- this.infoList.noticeType = message.split(',');
739
- let arr = [];
740
- this.infoList.noticeList.map((item) => {
741
- this.infoList.noticeType.map((x) => {
742
- if (x == item.cciValue) {
743
- arr.push(x);
744
- }
745
- });
746
- });
747
- this.infoList.noticeType = arr;
748
- } else {
749
- this.$message.error(message || '系统错误,请联系管理员!');
750
- }
751
- })
752
- .catch((err) => {
753
- this.loading = false;
754
- if (err.message && err.message !== 'canceled') {
755
- this.$message.error(err.message);
756
- }
757
- });
758
- }
759
- }
760
- };
761
- </script>
762
-
763
- <style></style>
1
+ <template>
2
+ <div class="task-union-examine" v-loading="loading">
3
+ <el-form
4
+ ref="infoList"
5
+ :model="infoList"
6
+ class="demo-dynamic"
7
+ :rules="rules"
8
+ label-width="120px"
9
+ >
10
+ <el-form-item v-if="isSinglePage" prop="opinion" label="意见">
11
+ <CommonOpinions @change="(val) => (opinion = val)" />
12
+ </el-form-item>
13
+ <el-form-item
14
+ v-if="isHideCurrentOrg == 0"
15
+ :prop="type != 'takeAdvice' ? 'nextOtherOrgObj' : 'nextCurrentOrgObj'"
16
+ :label="
17
+ type == 'takeAdvice'
18
+ ? currentOrgName
19
+ ? currentOrgName
20
+ : '本单位'
21
+ : type == 'startDraf'
22
+ ? '呈送单位/对象'
23
+ : type === 'taskReview'
24
+ ? '复核人'
25
+ : type === 'twoOfficesDispatch'
26
+ ? '报送单位'
27
+ : '联合单位'
28
+ "
29
+ >
30
+ <SelectUser
31
+ :nextUser="
32
+ type != 'takeAdvice'
33
+ ? infoList.nextOtherOrgObj
34
+ : infoList.nextCurrentOrgObj
35
+ "
36
+ :multiple="newMultiple"
37
+ :selectorTags="4"
38
+ :showTooltip="showTooltip"
39
+ :mix="currentMix"
40
+ :isUnionSeal="type == 'unionSeal'"
41
+ :selectUserList="unionSealData || []"
42
+ @change="
43
+ changeSelectUser(
44
+ $event,
45
+ type != 'takeAdvice' ? 'nextOtherOrgObj' : 'nextCurrentOrgObj'
46
+ )
47
+ "
48
+ :types="
49
+ type == 'takeAdvice'
50
+ ? currentOrgTabs.length > 0
51
+ ? currentOrgTabs
52
+ : ['department', 'employee']
53
+ : type == 'startDraf'
54
+ ? ['employee', 'enterprise']
55
+ : ['enterprise']
56
+ "
57
+ :params="
58
+ type == 'startDraf' || type == 'unionExamine' ? otherParams : params
59
+ "
60
+ :tabs="currentOrgTabsParam"
61
+ :disabled="disabled"
62
+ :onlyName="onlyName"
63
+ />
64
+ </el-form-item>
65
+ <el-form-item
66
+ prop="nextOtherOrgObj"
67
+ v-if="isHideOtherOrg == 0 && type == 'takeAdvice'"
68
+ :label="otherOrgName ? otherOrgName : '外单位'"
69
+ >
70
+ <SelectUser
71
+ :nextUser="infoList.nextOtherOrgObj"
72
+ :where="{ filid: 'all', roleid: selectorParams.roleid }"
73
+ :showTooltip="showTooltip"
74
+ :multiple="newMultiple"
75
+ @change="changeSelectUser($event, 'nextOtherOrgObj')"
76
+ :mix="otherMix"
77
+ :selectorTags="4"
78
+ :disableds="otherOrgDisabledObjId"
79
+ :types="
80
+ foreignOrgTabs.length > 0
81
+ ? foreignOrgTabs
82
+ : isChoiceOtherOrgDept == 'true'
83
+ ? ['enterprise', 'department']
84
+ : ['enterprise']
85
+ "
86
+ :params="otherParams"
87
+ :tabs="foreignOrgTabsParam"
88
+ />
89
+ </el-form-item>
90
+ <el-form-item
91
+ v-if="enableCustomLimitTimeSetting"
92
+ prop="customLimitTime"
93
+ label="限时办理"
94
+ >
95
+ <!-- style="width: 49%; display: inline-block;" -->
96
+ <es-select
97
+ style="width: 20% !important; display: inline-block"
98
+ v-model="infoList.customLimitTimeText"
99
+ placeholder="请选择"
100
+ @change="handleChangeTime"
101
+ sysCode="bpm_custom_limit_time"
102
+ ></es-select>
103
+ <el-input
104
+ style="width: 20%; display: inline-block"
105
+ v-model="infoList.customLimitTime"
106
+ placeholder="请输入限时办理的天数"
107
+ class="input-with-select custom-limit-time"
108
+ >
109
+ </el-input>
110
+ <span style="margin-left: 5px">天</span>
111
+ <!-- <es-button
112
+ type="primary"
113
+ slot="append"
114
+ @click="
115
+ () => {
116
+ infoList.customLimitTime = '';
117
+ showCustomLimitTimeText = !showCustomLimitTimeText;
118
+ }
119
+ "
120
+ >切换{{ showCustomLimitTimeText ? '选择框' : '文本框' }}</es-button
121
+ > -->
122
+ </el-form-item>
123
+ <!-- :rules="[
124
+ { required: false, message: `请选择通知方式`, trigger: 'blur' }
125
+ ]" -->
126
+ <el-form-item
127
+ prop="noticeType"
128
+ label="通知方式"
129
+ v-show="infoList.noticeList.length != 0 && !hideMessage"
130
+ >
131
+ <el-checkbox-group
132
+ v-model="infoList.noticeType"
133
+ style="display: contents"
134
+ >
135
+ <el-checkbox
136
+ v-for="item of infoList.noticeList"
137
+ :key="item.cciValue"
138
+ :label="item.cciValue"
139
+ :disabled="
140
+ readOnlyNotificationType
141
+ ? readOnlyNotificationType.indexOf(item.cciValue) != -1
142
+ : false
143
+ "
144
+ >
145
+ {{ item.shortName }}
146
+ </el-checkbox>
147
+ </el-checkbox-group>
148
+ </el-form-item>
149
+ <el-form-item
150
+ v-show="infoList.noticeType.length != 0"
151
+ prop="noticeInfo"
152
+ label="通知消息"
153
+ >
154
+ <es-input
155
+ style="
156
+ border-color: #ccc;
157
+ padding: 5px;
158
+ border-radius: 5px;
159
+ font-size: 13px;
160
+ "
161
+ type="textarea"
162
+ v-model="infoList.noticeInfo"
163
+ :readonly="notificationMessageReadOnly"
164
+ />
165
+ <!-- <span>{{ infoList.noticeInfo }}</span> -->
166
+ </el-form-item>
167
+ </el-form>
168
+ <div style="text-align: right">
169
+ <el-button type="primary" @click="subMit"> 确定 </el-button>
170
+ <el-button @click="quit" > 取消 </el-button>
171
+ </div>
172
+ </div>
173
+ </template>
174
+
175
+ <script>
176
+ import CommonOpinions from './CommonOpinions.vue';
177
+ import SelectUser from '../selectUser.vue';
178
+ import {
179
+ findSysCodes,
180
+ getNotificationMsg,
181
+ toTaskTakeAdvice,
182
+ findCodeValues,
183
+ toTaskStartDraft,
184
+ toTaskReview,
185
+ taskStartDraft,
186
+ toTaskUnionSeal,
187
+ taskReview,
188
+ toTwoOfficesDispatch,
189
+ taskUnionSeal,
190
+ twoOfficesDispatch,
191
+ taskUnionExamine,
192
+ taskTakeAdvice,
193
+ toTaskUnionExamine
194
+ } from 'eoss-ui/src/config/api';
195
+ import util from 'eoss-ui/src/utils/util.js';
196
+ export default {
197
+ name: 'TaskUnionExamine',
198
+ components: {
199
+ [CommonOpinions.name]: CommonOpinions,
200
+ [SelectUser.name]: SelectUser
201
+ },
202
+ props: {
203
+ pendingId: { type: String, default: '' },
204
+ showTooltip: { type: Boolean, default: true },
205
+ type: { type: String, default: '' },
206
+ defaultOpinion: { type: String, default: '' },
207
+ oldOption: { type: String, default: '' },
208
+ disabled: { type: Boolean, default: false },
209
+ simpleTips: { type: Boolean, default: true },
210
+ multiple: { type: Boolean, default: true },
211
+ selectorParams: {
212
+ type: Object,
213
+ default: () => {
214
+ return {};
215
+ }
216
+ },
217
+ hideMessage: { type: Boolean, default: false },
218
+ },
219
+ inheritAttrs: false,
220
+ data() {
221
+ return {
222
+ opinion: '', //办理意见
223
+ readOnlyNotificationType: '',
224
+ notificationMessageReadOnly: false,
225
+ otherMix: false,
226
+ enableCustomLimitTimeSetting: false,
227
+ showCustomLimitTimeText: false,
228
+ currentMix: false,
229
+ infoList: {
230
+ nextOtherOrgObj: [],
231
+ nextCurrentOrgObj: [],
232
+ noticeType: [],
233
+ noticeList: [],
234
+ noticeInfo: '',
235
+ opinion: '',
236
+ customLimitTime: '',
237
+ customLimitTimeText: ''
238
+ },
239
+ onlyName: '',
240
+ unionSealData: [],
241
+ currentOrgTabs: [],
242
+ foreignOrgTabs: [],
243
+ foreignOrgTabsParam: {},
244
+ currentOrgTabsParam: {},
245
+ currentOrgProcessKey: '',
246
+ otherOrgDisabledObjId: [],
247
+ isSubFlow: true,
248
+ choiceDeptId: '',
249
+ choiceOrgId: '',
250
+ isSinglePage: false,
251
+ isChoiceOtherOrgDept: '',
252
+ currentOrgName: '',
253
+ otherOrgName: '',
254
+ newMultiple: true,
255
+ params: { filid: 'all',only_filid:true },
256
+ isHideOtherOrg: '',
257
+ isHideCurrentOrg: 0,
258
+ isOpinionRequired: 0,
259
+ otherParams: { filid: 'all', roleid: '', nofilid: sessionStorage.getItem('orgId') },
260
+ loading: false
261
+ };
262
+ },
263
+ computed: {
264
+ rules() {
265
+ return {
266
+ customLimitTime: [
267
+ {
268
+ required: this.enableCustomLimitTimeSetting,
269
+ message: this.showCustomLimitTimeText
270
+ ? '请输入限时办理天数'
271
+ : '请选择限时办理天数',
272
+ trigger: 'blur'
273
+ },
274
+ {
275
+ required: this.enableCustomLimitTimeSetting,
276
+ validator: this.checkCustomLimitTime,
277
+ trigger: 'change'
278
+ }
279
+ ]
280
+ };
281
+ }
282
+ },
283
+ mounted() {
284
+ this.loading = true;
285
+ this.newMultiple = this.multiple;
286
+ this.otherParams.roleid = this.params.roleid = this.selectorParams.roleid;
287
+ this.opinion = this.oldOption;
288
+ this.getNodeType();
289
+ if (this.type === 'taskReview') return this.getTaskReview();
290
+ this.getInfo();
291
+ },
292
+ methods: {
293
+ handleChangeTime(val) {
294
+ this.infoList.customLimitTime = val;
295
+ },
296
+ validate() {
297
+ let validSate = true;
298
+ this.$refs.infoList.validate((valid) => {
299
+ if (valid) {
300
+ validSate = true;
301
+ } else {
302
+ validSate = false;
303
+ }
304
+ });
305
+ return validSate;
306
+ },
307
+ checkCustomLimitTime(rule, value, callback) {
308
+ if (!Number(value) || value.indexOf('.') != -1 || Number(value) < 0) {
309
+ callback(new Error('请输入正确的天数'));
310
+ this.infoList.customLimitTime = '';
311
+ } else {
312
+ callback();
313
+ }
314
+ },
315
+ isMultiple(val) {
316
+ if (val == 7 || val == 9 || val == 11) {
317
+ this.newMultiple = false;
318
+ }
319
+ },
320
+ subTaskReview() {
321
+ let {
322
+ infoList: { nextOtherOrgObj, noticeType, noticeInfo },
323
+ businessId,
324
+ opinion,
325
+ isSubFlow,
326
+ currentOrgProcessKey,
327
+ pendingId
328
+ } = this;
329
+ let params = {
330
+ url: taskReview,
331
+ data: {
332
+ nextUserId: nextOtherOrgObj.join(','),
333
+ notificationType: noticeType.join(','),
334
+ notificationMsg: noticeInfo,
335
+ opinion,
336
+ isSubFlow,
337
+ businessId,
338
+ currentOrgProcessKey,
339
+ pendingId
340
+ },
341
+ method: 'POST'
342
+ };
343
+ this.loading = true;
344
+ util
345
+ .ajax(params)
346
+ .then((res) => {
347
+ const { message, status } = res;
348
+ this.loading = false;
349
+ if (status === 'success') {
350
+ this.simpleTips && this.$message.success('提交成功');
351
+ this.quit(true);
352
+ } else {
353
+ this.$message.error(message || '系统错误,请联系管理员!');
354
+ }
355
+ })
356
+ .catch((err) => {
357
+ this.loading = false;
358
+ if (err.message && err.message !== 'canceled') {
359
+ this.$message.error(err.message);
360
+ }
361
+ });
362
+ },
363
+ getTaskReview() {
364
+ let params = {
365
+ url: toTaskReview,
366
+ params: { pendingId: this.pendingId }
367
+ };
368
+ util
369
+ .ajax(params)
370
+ .then((res) => {
371
+ const { status, message } = res;
372
+ this.loading = false;
373
+ if (status === 'success') {
374
+ const {
375
+ data: { initiatorUser, taskExamine }
376
+ } = res;
377
+ if (taskExamine.opinion) {
378
+ this.opinion = taskExamine.opinion;
379
+ }
380
+ this.infoList.nextOtherOrgObj.push(initiatorUser.userId);
381
+ this.onlyName = initiatorUser.username;
382
+ this.isSubFlow = taskExamine.isSubFlow;
383
+ this.currentOrgProcessKey = taskExamine.currentOrgProcessKey;
384
+ this.getFind();
385
+ this.getMessage();
386
+ } else {
387
+ this.$message.error(message || '系统错误,请联系管理员!');
388
+ }
389
+ })
390
+ .catch((err) => {
391
+ this.loading = false;
392
+ if (err.message && err.message !== 'canceled') {
393
+ this.$message.error(err.message);
394
+ }
395
+ });
396
+ },
397
+ getInfo() {
398
+ let params = {
399
+ url:
400
+ this.type == 'takeAdvice'
401
+ ? toTaskTakeAdvice
402
+ : this.type === 'startDraf'
403
+ ? toTaskStartDraft
404
+ : this.type == 'unionSeal'
405
+ ? toTaskUnionSeal
406
+ : this.type == 'twoOfficesDispatch'
407
+ ? toTwoOfficesDispatch
408
+ : toTaskUnionExamine,
409
+ params: { pendingId: this.pendingId },
410
+ headers: { Accept: 'application/json,text/plain' }
411
+ };
412
+ util
413
+ .ajax(params)
414
+ .then((res) => {
415
+ const { message, status } = res;
416
+ this.loading = false;
417
+ if (status == 'success') {
418
+ const {
419
+ data: {
420
+ choiceDeptId,
421
+ choiceOrgId,
422
+ taskExamine,
423
+ unionDispatchOrgName,
424
+ readOnlyNotificationType,
425
+ notificationMessageReadOnly,
426
+ unionDispatchOrgId,
427
+ otherOrgDisabledObjId,
428
+ orgNames,
429
+ enableCustomLimitTimeSetting,
430
+ defaultCustomLimitDays,
431
+ nodeInfoMap: {
432
+ nodeExtAttr: {
433
+ userSelectionType,
434
+ isHideOtherOrg,
435
+ isHideCurrentOrg,
436
+ isOpinionRequired
437
+ }
438
+ }
439
+ }
440
+ } = res;
441
+ if (otherOrgDisabledObjId) {
442
+ this.otherOrgDisabledObjId = otherOrgDisabledObjId.split(',');
443
+ }
444
+ this.enableCustomLimitTimeSetting = enableCustomLimitTimeSetting;
445
+ if (this.enableCustomLimitTimeSetting && defaultCustomLimitDays) {
446
+ this.infoList.customLimitTime =
447
+ this.infoList.customLimitTimeText = defaultCustomLimitDays + '';
448
+ }
449
+ if (res.data.customizedConfig) {
450
+ if (res.data.customizedConfig.currentOrgSelectorCustomized) {
451
+ this.currentMix =
452
+ res.data.customizedConfig.currentOrgSelectorSelectMix ==
453
+ 'true';
454
+ this.currentOrgTabs =
455
+ res.data.customizedConfig.currentOrgSelectorItemList.split(
456
+ ','
457
+ );
458
+ let param =
459
+ res.data.customizedConfig.currentOrgSelectorRangeList.split(
460
+ ','
461
+ );
462
+ this.currentOrgTabs.map((x, i) => {
463
+ this.params[x] = {
464
+ filid:
465
+ param[i] == 'my'
466
+ ? (this.params.filid = JSON.parse(
467
+ util.getStorage('mainConfig')
468
+ ).userModel.orgId)
469
+ : param[i],
470
+ only_filid:true
471
+ };
472
+ });
473
+ } else {
474
+ if (this.type == 'takeAdvice') {
475
+ this.params.filid = JSON.parse(
476
+ util.getStorage('mainConfig')
477
+ ).userModel.orgId;
478
+ }
479
+ }
480
+
481
+ if (res.data.customizedConfig.foreignOrgSelectorCustomized) {
482
+ this.otherMix =
483
+ res.data.customizedConfig.foreignOrgSelectorSelectMix ==
484
+ 'true';
485
+ this.foreignOrgTabs =
486
+ res.data.customizedConfig.foreignOrgSelectorItemList.split(
487
+ ','
488
+ );
489
+ let param =
490
+ res.data.customizedConfig.foreignOrgSelectorRangeList.split(
491
+ ','
492
+ );
493
+ this.foreignOrgTabs.map((x, i) => {
494
+ this.otherParams[x] = {
495
+ filid: 'all',
496
+ roleid: this.selectorParams.roleid,
497
+ nofilid: sessionStorage.getItem('orgId')
498
+ };
499
+ });
500
+ }
501
+ }
502
+ this.readOnlyNotificationType = readOnlyNotificationType;
503
+ this.notificationMessageReadOnly =
504
+ notificationMessageReadOnly == 'true';
505
+ this.isSinglePage = taskExamine.isSinglePage;
506
+ this.isSubFlow = taskExamine.isSubFlow;
507
+ if (taskExamine.opinion) {
508
+ this.opinion = taskExamine.opinion;
509
+ }
510
+ this.choiceDeptId = choiceDeptId;
511
+ this.choiceOrgId = choiceOrgId;
512
+ if (this.type == 'takeAdvice' || this.type == 'startDraf') {
513
+ this.currentOrgName = res.data.currentOrgName;
514
+ this.otherOrgName = res.data.otherOrgName;
515
+ this.isChoiceOtherOrgDept = res.data.isChoiceOtherOrgDept;
516
+ this.isHideOtherOrg = isHideOtherOrg;
517
+ this.isHideCurrentOrg = isHideCurrentOrg;
518
+ }
519
+ this.isOpinionRequired = isOpinionRequired;
520
+ if (this.type == 'unionSeal') {
521
+ let names = unionDispatchOrgName.split(',');
522
+ let ids = unionDispatchOrgId.split(',');
523
+ names.map((x, i) => {
524
+ if (x) {
525
+ this.unionSealData.push({
526
+ showname: x,
527
+ showid: ids[i]
528
+ });
529
+ }
530
+ });
531
+ // this.onlyName = unionDispatchOrgName;
532
+ // this.infoList.nextOtherOrgObj.push(unionDispatchOrgId);
533
+ }
534
+ if (this.type == 'twoOfficesDispatch') {
535
+ this.onlyName = orgNames;
536
+ this.infoList.nextOtherOrgObj.push(taskExamine.nextOtherOrgObj);
537
+ }
538
+ this.isMultiple(userSelectionType);
539
+ this.getFind();
540
+ this.getMessage();
541
+ } else {
542
+ this.$message.error(message || '系统错误,请联系管理员!');
543
+ }
544
+ })
545
+ .catch((err) => {
546
+ this.loading = false;
547
+ if (err.message && err.message !== 'canceled') {
548
+ this.$message.error(err.message);
549
+ }
550
+ });
551
+ },
552
+ subMit() {
553
+ // if (
554
+ // this.infoList.nextOtherOrgObjName == '' ||
555
+ // this.infoList.nextOtherOrgObjName.length == 0
556
+ // )
557
+ // return this.$message.warning('请选择联合单位');
558
+ if (this.type === 'taskReview') return this.subTaskReview();
559
+ let {
560
+ infoList: {
561
+ nextCurrentOrgObj,
562
+ nextOtherOrgObj,
563
+ noticeType,
564
+ customLimitTime,
565
+ noticeInfo
566
+ },
567
+ isOpinionRequired,
568
+ opinion,
569
+ type,
570
+ isHideOtherOrg,
571
+ choiceDeptId,
572
+ choiceOrgId,
573
+ isHideCurrentOrg,
574
+ isSubFlow,
575
+ pendingId
576
+ } = this;
577
+ console.log(nextCurrentOrgObj);
578
+ console.log(nextOtherOrgObj);
579
+ if (
580
+ type == 'takeAdvice' &&
581
+ !nextCurrentOrgObj &&
582
+ isHideCurrentOrg == 0 &&
583
+ nextCurrentOrgObj.length == 0 &&
584
+ isHideOtherOrg == 0 &&
585
+ (!nextOtherOrgObj || nextOtherOrgObj.length == 0)
586
+ ) {
587
+ return this.$message.warning('请选择处理对象!');
588
+ } else if (
589
+ isHideCurrentOrg == 0 &&
590
+ (!nextOtherOrgObj || nextOtherOrgObj.length == 0) &&
591
+ (!nextCurrentOrgObj || nextCurrentOrgObj.length == 0)
592
+ ) {
593
+ return this.$message.warning('请选择处理对象!');
594
+ }
595
+
596
+ if (isOpinionRequired == 1 && (opinion == '' || opinion == null)) {
597
+ return this.$message.warning('当前步骤必须输入意见!');
598
+ }
599
+ // if (this.type != 'startDraf' && this.type != 'unionSeal' && this.type != 'twoOfficesDispatch')
600
+ // return this.$message.warning('暂未开放,敬请期待!');
601
+ const param = {
602
+ url:
603
+ this.type === 'startDraf'
604
+ ? taskStartDraft
605
+ : this.type == 'unionSeal'
606
+ ? taskUnionSeal
607
+ : this.type === 'twoOfficesDispatch'
608
+ ? twoOfficesDispatch
609
+ : this.type == 'takeAdvice'
610
+ ? taskTakeAdvice
611
+ : taskUnionExamine,
612
+ data: {
613
+ opinion,
614
+ pendingId,
615
+
616
+ nextOtherOrgObj:
617
+ this.type == 'unionSeal'
618
+ ? this.unionSealData.map((x) => x.showid).join(',')
619
+ : Array.isArray(nextOtherOrgObj)
620
+ ? nextOtherOrgObj.join(',')
621
+ : nextOtherOrgObj,
622
+ nextCurrentOrgObj: Array.isArray(nextCurrentOrgObj)
623
+ ? nextCurrentOrgObj.join(',')
624
+ : nextCurrentOrgObj,
625
+ notificationMsg: noticeInfo,
626
+ notificationType: noticeType.join(','),
627
+ choiceDeptId,
628
+ isSubFlow,
629
+ choiceOrgId
630
+ },
631
+ headers: { Accept: 'application/json,text/plain' },
632
+ method: 'POST'
633
+ };
634
+ if (this.enableCustomLimitTimeSetting) {
635
+ param.data.customLimitTime = customLimitTime;
636
+ console.log(this.validate(), 'this.validate()');
637
+ if (!this.validate()) return;
638
+ }
639
+ this.loading = true;
640
+ util
641
+ .ajax(param)
642
+ .then((res) => {
643
+ const { message, status } = res;
644
+ this.loading = false;
645
+ if (status == 'success') {
646
+ this.simpleTips && this.$message.success('提交成功');
647
+ this.quit(true);
648
+ } else {
649
+ this.$message.error(message || '系统错误,请联系管理员!');
650
+ }
651
+ })
652
+ .catch((err) => {
653
+ this.loading = false;
654
+ if (err.message && err.message !== 'canceled') {
655
+ this.$message.error(err.message);
656
+ }
657
+ });
658
+ },
659
+ quit(val) {
660
+ if (val === true) return this.$emit('cancel', val);
661
+ this.$emit('cancel');
662
+ },
663
+ changeSelectUser(val, type) {
664
+ const { nextUser, options } = val;
665
+ let newNextUser = [];
666
+ let obj = {};
667
+ options.map((item) => {
668
+ if (obj[item.stype]) {
669
+ obj[item.stype].push(item.id);
670
+ } else {
671
+ obj[item.stype] = [item.id];
672
+ }
673
+ // if (newNextUser) {
674
+ // newNextUser += `,${item.stype}-${item.id}`;
675
+ // } else {
676
+ // newNextUser = `${item.stype}-${item.id}`;
677
+ // }
678
+ });
679
+ for (let key in obj) {
680
+ newNextUser.push(`${key}-${obj[key].join(',')}`);
681
+ }
682
+
683
+ this.infoList[type] = newNextUser.join('|');
684
+ },
685
+ getNodeType() {
686
+ util
687
+ .ajax({
688
+ url: findCodeValues,
689
+ params: {
690
+ ccCode: 'notification_type',
691
+ userId: util.getStorage('userId'),
692
+ pendingId: this.pendingId
693
+ }
694
+ })
695
+ .then((res) => {
696
+ const { status, data } = res;
697
+ this.loading = false;
698
+ if (status === 'success') {
699
+ this.infoList.noticeList = data;
700
+ }
701
+ })
702
+ .catch((err) => {
703
+ this.loading = false;
704
+ if (err.message && err.message !== 'canceled') {
705
+ this.$message.error(err.message);
706
+ }
707
+ });
708
+ },
709
+ //获取通知信息
710
+ getMessage() {
711
+ let params = {
712
+ pendingId: this.pendingId
713
+ };
714
+ util
715
+ .ajax({ url: getNotificationMsg, params, methods: 'post' })
716
+ .then((res) => {
717
+ if (res.status === 'success') {
718
+ this.infoList.noticeInfo = res.message;
719
+ }
720
+ this.loading = false;
721
+ })
722
+ .catch((err) => {
723
+ this.loading = false;
724
+ if (err.message && err.message !== 'canceled') {
725
+ this.$message.error(err.message);
726
+ }
727
+ });
728
+ },
729
+ getFind() {
730
+ util
731
+ .ajax({
732
+ url: findSysCodes
733
+ })
734
+ .then((res) => {
735
+ const { status, message } = res;
736
+ if (status === 'success') {
737
+ if(this.hideMessage) return;
738
+ this.infoList.noticeType = message.split(',');
739
+ let arr = [];
740
+ this.infoList.noticeList.map((item) => {
741
+ this.infoList.noticeType.map((x) => {
742
+ if (x == item.cciValue) {
743
+ arr.push(x);
744
+ }
745
+ });
746
+ });
747
+ this.infoList.noticeType = arr;
748
+ } else {
749
+ this.$message.error(message || '系统错误,请联系管理员!');
750
+ }
751
+ })
752
+ .catch((err) => {
753
+ this.loading = false;
754
+ if (err.message && err.message !== 'canceled') {
755
+ this.$message.error(err.message);
756
+ }
757
+ });
758
+ }
759
+ }
760
+ };
761
+ </script>
762
+
763
+ <style></style>