eoss-ui 0.8.6 → 0.8.8

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