eoss-ui 0.7.27 → 0.7.29

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