eoss-ui 0.7.45 → 0.7.47

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