eoss-ui 0.6.63 → 0.6.64

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 (301) hide show
  1. package/lib/.DS_Store +0 -0
  2. package/lib/button-group.js +41 -30
  3. package/lib/button.js +40 -29
  4. package/lib/calendar.js +2 -2
  5. package/lib/calogin.js +5279 -0
  6. package/lib/card.js +2 -2
  7. package/lib/cascader.js +2 -2
  8. package/lib/checkbox-group.js +45 -34
  9. package/lib/clients.js +2 -2
  10. package/lib/config/api.js +15 -15
  11. package/lib/data-table-form.js +43 -33
  12. package/lib/data-table.js +42 -32
  13. package/lib/date-picker.js +40 -29
  14. package/lib/dialog.js +44 -33
  15. package/lib/enable-drag.js +2 -2
  16. package/lib/enterprise.js +2 -2
  17. package/lib/eoss-ui.common.js +1809 -652
  18. package/lib/error-page.js +2 -2
  19. package/lib/flow-group.js +262 -233
  20. package/lib/flow-list.js +135 -120
  21. package/lib/flow.js +323 -313
  22. package/lib/form.js +59 -44
  23. package/lib/handle-user.js +44 -33
  24. package/lib/handler.js +47 -36
  25. package/lib/icon.js +40 -29
  26. package/lib/icons.js +4 -4
  27. package/lib/index.js +1 -1
  28. package/lib/input-number.js +40 -29
  29. package/lib/input.js +44 -33
  30. package/lib/label.js +2 -2
  31. package/lib/layout.js +4 -4
  32. package/lib/login.js +216 -96
  33. package/lib/main.js +211 -190
  34. package/lib/menu.js +4 -4
  35. package/lib/nav.js +42 -31
  36. package/lib/notify.js +17 -17
  37. package/lib/page.js +40 -29
  38. package/lib/pagination.js +40 -29
  39. package/lib/player.js +50 -39
  40. package/lib/qr-code.js +55 -44
  41. package/lib/radio-group.js +51 -40
  42. package/lib/retrial-auth.js +47 -36
  43. package/lib/select-ganged.js +185 -174
  44. package/lib/select.js +187 -176
  45. package/lib/selector-panel.js +45 -35
  46. package/lib/selector.js +42 -31
  47. package/lib/sizer.js +40 -29
  48. package/lib/steps.js +42 -31
  49. package/lib/switch.js +40 -29
  50. package/lib/table-form.js +49 -38
  51. package/lib/tabs-panel.js +2 -2
  52. package/lib/tabs.js +40 -29
  53. package/lib/theme-chalk/calogin.css +0 -0
  54. package/lib/theme-chalk/index.css +1 -1
  55. package/lib/theme-chalk/login.css +1 -1
  56. package/lib/theme-chalk/main.css +1 -1
  57. package/lib/theme-chalk/simplicity.css +1 -1
  58. package/lib/tips.js +42 -31
  59. package/lib/toolbar.js +2 -2
  60. package/lib/tree-group.js +40 -29
  61. package/lib/tree.js +42 -31
  62. package/lib/upload.js +48 -37
  63. package/lib/utils/util.js +4 -1
  64. package/lib/wujie.js +47 -36
  65. package/lib/wxlogin.js +40 -29
  66. package/package.json +160 -159
  67. package/packages/.DS_Store +0 -0
  68. package/packages/autocomplete/.DS_Store +0 -0
  69. package/packages/button/index.js +5 -5
  70. package/packages/button/src/main.vue +418 -418
  71. package/packages/button-group/index.js +5 -5
  72. package/packages/button-group/src/main.vue +298 -298
  73. package/packages/calendar/index.js +5 -5
  74. package/packages/calogin/index.js +5 -0
  75. package/packages/calogin/src/main.vue +131 -0
  76. package/packages/calogin/src/plugin.js +748 -0
  77. package/packages/card/index.js +5 -5
  78. package/packages/card/src/main.vue +156 -156
  79. package/packages/cascader/index.js +5 -5
  80. package/packages/cascader/src/main.vue +168 -168
  81. package/packages/checkbox-group/index.js +5 -5
  82. package/packages/checkbox-group/src/main.vue +333 -333
  83. package/packages/clients/index.js +5 -5
  84. package/packages/clients/src/main.vue +151 -151
  85. package/packages/data-table/index.js +5 -5
  86. package/packages/data-table/src/children.vue +39 -39
  87. package/packages/data-table/src/column.vue +989 -989
  88. package/packages/data-table/src/main.vue +1822 -1822
  89. package/packages/data-table/src/sizer.vue +195 -195
  90. package/packages/data-table-form/index.js +5 -5
  91. package/packages/data-table-form/src/checkbox.vue +101 -101
  92. package/packages/data-table-form/src/colgroup.vue +17 -17
  93. package/packages/data-table-form/src/main.vue +181 -181
  94. package/packages/data-table-form/src/radio.vue +65 -65
  95. package/packages/data-table-form/src/table.vue +233 -233
  96. package/packages/data-table-form/src/tbody.vue +336 -336
  97. package/packages/data-table-form/src/thead.vue +68 -68
  98. package/packages/date-picker/.DS_Store +0 -0
  99. package/packages/date-picker/index.js +5 -5
  100. package/packages/date-picker/src/.DS_Store +0 -0
  101. package/packages/date-picker/src/main.vue +236 -236
  102. package/packages/dialog/index.js +5 -5
  103. package/packages/enable-drag/index.js +5 -5
  104. package/packages/enterprise/index.js +5 -5
  105. package/packages/enterprise/src/main.vue +66 -66
  106. package/packages/error-page/index.js +5 -5
  107. package/packages/error-page/src/main.vue +44 -44
  108. package/packages/flow/index.js +5 -5
  109. package/packages/flow/src/component/Circulate.vue +322 -322
  110. package/packages/flow/src/component/CommonOpinions.vue +346 -346
  111. package/packages/flow/src/component/CustomPreset.vue +322 -322
  112. package/packages/flow/src/component/FileList.vue +99 -99
  113. package/packages/flow/src/component/Preset.vue +255 -255
  114. package/packages/flow/src/component/SendMsg.vue +241 -241
  115. package/packages/flow/src/component/TimeLimit.vue +190 -190
  116. package/packages/flow/src/component/taskUnionExamine.vue +619 -619
  117. package/packages/flow/src/form.vue +121 -121
  118. package/packages/flow/src/freeStartFlow.vue +2843 -2843
  119. package/packages/flow/src/main.vue +3275 -3275
  120. package/packages/flow/src/processForm.vue +1091 -1091
  121. package/packages/flow/src/processReject.vue +294 -294
  122. package/packages/flow/src/reset.vue +900 -900
  123. package/packages/flow/src/startTaskRead.vue +659 -659
  124. package/packages/flow/src/supervise.vue +149 -149
  125. package/packages/flow/src/table.vue +58 -58
  126. package/packages/flow-group/index.js +5 -5
  127. package/packages/flow-group/src/main.vue +688 -688
  128. package/packages/flow-list/index.js +5 -5
  129. package/packages/flow-list/src/main.vue +1724 -1720
  130. package/packages/form/index.js +5 -5
  131. package/packages/form/src/main.vue +3581 -3583
  132. package/packages/form/src/table.vue +1426 -1426
  133. package/packages/handle-user/index.js +5 -5
  134. package/packages/handle-user/src/main.vue +138 -138
  135. package/packages/handler/index.js +5 -5
  136. package/packages/handler/src/main.vue +493 -493
  137. package/packages/icon/index.js +5 -5
  138. package/packages/icon/src/main.vue +101 -101
  139. package/packages/icons/index.js +5 -5
  140. package/packages/icons/src/main.vue +81 -81
  141. package/packages/input/index.js +5 -5
  142. package/packages/input/src/main.vue +356 -356
  143. package/packages/input-number/index.js +5 -5
  144. package/packages/input-number/src/main.vue +106 -106
  145. package/packages/label/index.js +5 -5
  146. package/packages/label/src/main.vue +457 -457
  147. package/packages/layout/index.js +5 -5
  148. package/packages/layout/src/item.vue +152 -152
  149. package/packages/layout/src/main.vue +31 -31
  150. package/packages/login/index.js +5 -5
  151. package/packages/login/src/main.vue +1976 -1942
  152. package/packages/login/src/resetPassword.vue +562 -562
  153. package/packages/main/.DS_Store +0 -0
  154. package/packages/main/index.js +5 -5
  155. package/packages/main/src/.DS_Store +0 -0
  156. package/packages/main/src/default/message.vue +249 -249
  157. package/packages/main/src/default/notice.vue +157 -157
  158. package/packages/main/src/default/userinfo.vue +503 -503
  159. package/packages/main/src/public/online.vue +89 -89
  160. package/packages/main/src/public/search.vue +462 -462
  161. package/packages/main/src/public/settings.vue +221 -221
  162. package/packages/main/src/simplicity/apps.vue +388 -388
  163. package/packages/main/src/simplicity/avatar.vue +83 -82
  164. package/packages/main/src/simplicity/handler.vue +259 -259
  165. package/packages/main/src/simplicity/index.vue +2089 -2087
  166. package/packages/main/src/simplicity/lists.vue +84 -84
  167. package/packages/main/src/simplicity/menu-list.vue +135 -135
  168. package/packages/main/src/simplicity/message.vue +259 -259
  169. package/packages/main/src/simplicity/notice.vue +190 -190
  170. package/packages/main/src/simplicity/router-page.vue +45 -45
  171. package/packages/main/src/simplicity/sub-menu.vue +264 -264
  172. package/packages/main/src/simplicity/user.vue +257 -257
  173. package/packages/main/src/simplicity/userinfo.vue +312 -312
  174. package/packages/menu/.DS_Store +0 -0
  175. package/packages/menu/index.js +5 -5
  176. package/packages/menu/src/main.vue +584 -584
  177. package/packages/nav/index.js +5 -5
  178. package/packages/nav/src/main.vue +351 -351
  179. package/packages/notify/index.js +5 -5
  180. package/packages/notify/src/main.vue +538 -538
  181. package/packages/page/index.js +5 -5
  182. package/packages/page/src/main.vue +167 -167
  183. package/packages/pagination/index.js +5 -5
  184. package/packages/pagination/src/main.vue +96 -96
  185. package/packages/player/index.js +5 -5
  186. package/packages/player/src/main.vue +194 -194
  187. package/packages/qr-code/index.js +5 -5
  188. package/packages/qr-code/src/main.vue +170 -170
  189. package/packages/radio-group/index.js +6 -6
  190. package/packages/radio-group/src/main.vue +319 -319
  191. package/packages/retrial-auth/index.js +5 -5
  192. package/packages/retrial-auth/src/main.vue +280 -280
  193. package/packages/scrollbar/.DS_Store +0 -0
  194. package/packages/select/.DS_Store +0 -0
  195. package/packages/select/index.js +5 -5
  196. package/packages/select/src/main.vue +778 -778
  197. package/packages/select-ganged/index.js +5 -5
  198. package/packages/select-ganged/src/main.vue +724 -724
  199. package/packages/selector/index.js +5 -5
  200. package/packages/selector/src/main.vue +687 -687
  201. package/packages/selector-panel/index.js +5 -5
  202. package/packages/selector-panel/src/main.vue +1027 -1027
  203. package/packages/selector-panel/src/selection.vue +177 -177
  204. package/packages/selector-panel/src/tree.vue +129 -129
  205. package/packages/sizer/index.js +5 -5
  206. package/packages/sizer/src/main.vue +254 -254
  207. package/packages/steps/index.js +5 -5
  208. package/packages/steps/src/main.vue +181 -181
  209. package/packages/switch/index.js +5 -5
  210. package/packages/switch/src/main.vue +154 -154
  211. package/packages/table-form/index.js +5 -5
  212. package/packages/tabs/index.js +5 -5
  213. package/packages/tabs/src/main.vue +788 -788
  214. package/packages/tabs-panel/index.js +5 -5
  215. package/packages/tabs-panel/src/main.vue +29 -29
  216. package/packages/theme-chalk/lib/calogin.css +0 -0
  217. package/packages/theme-chalk/lib/index.css +1 -1
  218. package/packages/theme-chalk/lib/login.css +1 -1
  219. package/packages/theme-chalk/lib/main.css +1 -1
  220. package/packages/theme-chalk/lib/simplicity.css +1 -1
  221. package/packages/theme-chalk/src/.DS_Store +0 -0
  222. package/packages/theme-chalk/src/base.scss +261 -261
  223. package/packages/theme-chalk/src/button-group.scss +176 -176
  224. package/packages/theme-chalk/src/button.scss +24 -24
  225. package/packages/theme-chalk/src/calendar.scss +113 -113
  226. package/packages/theme-chalk/src/calogin.scss +0 -0
  227. package/packages/theme-chalk/src/card.scss +99 -99
  228. package/packages/theme-chalk/src/checkbox-group.scss +8 -8
  229. package/packages/theme-chalk/src/clients.scss +87 -87
  230. package/packages/theme-chalk/src/data-table-form.scss +67 -67
  231. package/packages/theme-chalk/src/data-table.scss +293 -293
  232. package/packages/theme-chalk/src/date-picker.scss +7 -7
  233. package/packages/theme-chalk/src/dialog.scss +77 -77
  234. package/packages/theme-chalk/src/enable-drag.scss +181 -181
  235. package/packages/theme-chalk/src/enterprise.scss +5 -5
  236. package/packages/theme-chalk/src/error-page.scss +18 -18
  237. package/packages/theme-chalk/src/flow-group.scss +110 -110
  238. package/packages/theme-chalk/src/flow-list.scss +39 -39
  239. package/packages/theme-chalk/src/flow.scss +343 -343
  240. package/packages/theme-chalk/src/form.scss +496 -496
  241. package/packages/theme-chalk/src/handle-user.scss +40 -40
  242. package/packages/theme-chalk/src/handler.scss +143 -143
  243. package/packages/theme-chalk/src/icon.scss +1792 -1792
  244. package/packages/theme-chalk/src/icons.scss +99 -99
  245. package/packages/theme-chalk/src/index.scss +1 -0
  246. package/packages/theme-chalk/src/input.scss +9 -9
  247. package/packages/theme-chalk/src/label.scss +24 -24
  248. package/packages/theme-chalk/src/layout.scss +46 -46
  249. package/packages/theme-chalk/src/login.scss +981 -969
  250. package/packages/theme-chalk/src/main.scss +663 -663
  251. package/packages/theme-chalk/src/menu.scss +222 -222
  252. package/packages/theme-chalk/src/mixins/color.scss +117 -117
  253. package/packages/theme-chalk/src/nav.scss +111 -111
  254. package/packages/theme-chalk/src/page.scss +3 -3
  255. package/packages/theme-chalk/src/pagination.scss +29 -29
  256. package/packages/theme-chalk/src/player.scss +9 -9
  257. package/packages/theme-chalk/src/qr-code.scss +17 -17
  258. package/packages/theme-chalk/src/radio-group.scss +9 -9
  259. package/packages/theme-chalk/src/retrial-auth.scss +38 -38
  260. package/packages/theme-chalk/src/select-ganged.scss +8 -8
  261. package/packages/theme-chalk/src/select.scss +8 -8
  262. package/packages/theme-chalk/src/selector-panel.scss +204 -204
  263. package/packages/theme-chalk/src/selector.scss +91 -91
  264. package/packages/theme-chalk/src/simplicity.scss +1355 -1351
  265. package/packages/theme-chalk/src/sizer.scss +36 -36
  266. package/packages/theme-chalk/src/steps.scss +88 -88
  267. package/packages/theme-chalk/src/switch.scss +3 -3
  268. package/packages/theme-chalk/src/table-form.scss +1 -1
  269. package/packages/theme-chalk/src/tabs.scss +87 -87
  270. package/packages/theme-chalk/src/tips.scss +7 -7
  271. package/packages/theme-chalk/src/toolbar.scss +179 -179
  272. package/packages/theme-chalk/src/tree-group.scss +72 -72
  273. package/packages/theme-chalk/src/tree.scss +165 -165
  274. package/packages/theme-chalk/src/upload.scss +168 -168
  275. package/packages/theme-chalk/src/wxlogin.scss +3 -3
  276. package/packages/tips/index.js +5 -5
  277. package/packages/tips/src/main.vue +141 -141
  278. package/packages/toolbar/index.js +5 -5
  279. package/packages/toolbar/src/main.vue +430 -430
  280. package/packages/tree/index.js +5 -5
  281. package/packages/tree-group/index.js +5 -5
  282. package/packages/upload/.DS_Store +0 -0
  283. package/packages/upload/index.js +5 -5
  284. package/packages/upload/src/main.vue +1347 -1347
  285. package/packages/upload/src/picture.js +15 -15
  286. package/packages/wujie/index.js +5 -5
  287. package/packages/wujie/src/main.vue +145 -145
  288. package/packages/wxlogin/index.js +5 -5
  289. package/packages/wxlogin/src/main.vue +128 -128
  290. package/src/.DS_Store +0 -0
  291. package/src/config/api.js +290 -290
  292. package/src/config/image.js +2 -2
  293. package/src/index.js +163 -160
  294. package/src/utils/.DS_Store +0 -0
  295. package/src/utils/bus.js +3 -3
  296. package/src/utils/date-util.js +312 -312
  297. package/src/utils/http.js +50 -50
  298. package/src/utils/rules.js +18 -18
  299. package/src/utils/store.js +21 -21
  300. package/src/utils/util.js +3 -1
  301. package/src/utils/webSocket.js +107 -107
@@ -1,1720 +1,1724 @@
1
- <template>
2
- <div class="es-flow-list">
3
- <div
4
- class="es-flow-list-item"
5
- v-for="(item, index) in content"
6
- :key="index"
7
- v-show="
8
- (item.type == 'splitReading' &&
9
- splitReadingData &&
10
- splitReadingData.length > 0) ||
11
- (item.type == 'preset' &&
12
- presetData &&
13
- presetData.length > 0 &&
14
- currentUserHasPresetInfoAuth) ||
15
- (item.type != 'splitReading' && item.type != 'preset')
16
- "
17
- >
18
- <div
19
- class="es-flow-list-box"
20
- :ref="item.type"
21
- :style="`position:${height == 'auto' ? 'unset' : 'absolute'}`"
22
- >
23
- <es-data-table
24
- v-if="show"
25
- :class="{ 'es-flow-group-data-table': item.type !== 'sign' }"
26
- :display="display"
27
- number
28
- @cell-click="handleCellClick"
29
- :full="height !== 'auto'"
30
- v-bind="item"
31
- :data="returnData(item.type)"
32
- @btn-click="handleBtnClick"
33
- @selection-change="handleSelectionChange"
34
- ></es-data-table>
35
- </div>
36
- </div>
37
- <es-dialog
38
- append-to-body
39
- :close-on-click-modal="false"
40
- title="查看附件"
41
- :visible.sync="showFileList"
42
- v-if="showFileList"
43
- >
44
- <FileList
45
- :ownId="wfpendingid"
46
- :code="flowTableInfo.adjunctCode"
47
- :deleted="false"
48
- :disabled="true"
49
- @cancel="showFileList = false"
50
- />
51
- </es-dialog>
52
- <es-dialog
53
- append-to-body
54
- :close-on-click-modal="false"
55
- title="查看催办记录"
56
- :visible.sync="showPress"
57
- height="500px"
58
- v-if="showPress"
59
- >
60
- <div style="height: 400px" v-loading="pressLoading">
61
- <es-data-table
62
- v-if="show"
63
- :data="pressTableList"
64
- :thead="pressThead"
65
- @page-size-change="handleSizeChange"
66
- @page-current-change="handleCurrentChange"
67
- stripe
68
- full
69
- style="width: 100%"
70
- @sort-change="sortChange"
71
- :page="pageInfo"
72
- />
73
- </div>
74
- </es-dialog>
75
- <es-dialog
76
- append-to-body
77
- :close-on-click-modal="false"
78
- title="删除"
79
- :visible.sync="showDel"
80
- height="auto"
81
- class="del-flow"
82
- v-if="showDel"
83
- >
84
- <es-form
85
- v-loading="delLoading"
86
- :model="formData"
87
- :contents="formItemList"
88
- @submit="handleFormSubmit"
89
- >
90
- </es-form>
91
- </es-dialog>
92
- </div>
93
- </template>
94
-
95
- <script>
96
- import {
97
- findCodeValues,
98
- deletePresetInfo,
99
- pendedhistoryListJson,
100
- toPresetInfoListIndex,
101
- pressListJson,
102
- pendedhistoryListWithCircularReadJson,
103
- deleteFlow,
104
- taskReadWithDraw,
105
- fyListJson,
106
- circularReadWithdraw
107
- } from 'eoss-ui/src/config/api';
108
- import FileList from '../../flow/src/component/FileList.vue';
109
- import util from 'eoss-ui/src/utils/util';
110
- export default {
111
- name: 'EsFlowList',
112
- components: {
113
- [FileList.name]: FileList
114
- },
115
- props: {
116
- businessId: {
117
- type: String,
118
- default: ''
119
- },
120
- getListCount: {
121
- type: Function,
122
- default: () => {}
123
- },
124
- hide: {
125
- type: String,
126
- default: ''
127
- },
128
- hideBtn:{
129
- type: Boolean,
130
- default: false
131
- },
132
- params: {
133
- type: Object,
134
- default: () => {
135
- return {};
136
- }
137
- },
138
- toolbar: {
139
- type: Array,
140
- default: () => []
141
- },
142
- headFields: {
143
- type: Array,
144
- default: () => []
145
- },
146
- contents: {
147
- type: Array,
148
- default() {
149
- return ['flow', 'splitReading', 'preset'];
150
- }
151
- },
152
- height: {
153
- type: String,
154
- default: ''
155
- },
156
-
157
- theadWidth: {
158
- type: Object,
159
- default: () => {
160
- return {};
161
- }
162
- },
163
- type: {
164
- type: String,
165
- default: ''
166
- },
167
- display: Boolean
168
- },
169
- inheritAttrs: false,
170
- data() {
171
- return {
172
- pressLoading: false,
173
- pressTableList: [],
174
- circularData: [],
175
- selectList: [],
176
- flowHeight: '',
177
- presetHeight: '',
178
- signHeight: '',
179
- splitReadingHeight: '',
180
- circularHeight: '',
181
- untreatedReadHeight: '',
182
- processedReadHeight: '',
183
- untreatedReadData: [],
184
- processedReadData: [],
185
- hasCircularReadWithdrawAuthority: false,
186
- currentPage: 1,
187
- pageSize: 20,
188
- flowListCount: {},
189
- currentUserHasPresetInfoAuth: false,
190
- pressThead: [
191
- {
192
- title: '催办节点',
193
- align: 'center',
194
- sortable: true,
195
- field: 'urge_item'
196
- },
197
- {
198
- title: '催办人名称',
199
- sortable: true,
200
- align: 'center',
201
- field: 'urge_man_name'
202
- },
203
- {
204
- title: '催办时间',
205
- sortable: true,
206
- align: 'center',
207
- field: 'urge_time'
208
- },
209
- {
210
- title: '被催办人名称',
211
- align: 'center',
212
- sortable: true,
213
- field: 'urged_man_name'
214
- }
215
- ],
216
- wfpendingid: '',
217
- showFileList: false,
218
- flowData: [],
219
- splitReadingData: [],
220
- presetData: [],
221
- signData: [],
222
- loading: '', //加载中
223
- preset_type: [], //预设类型
224
- showPress: false, //查看催办记录弹窗
225
- modify: false,
226
- formData: { reason: '' },
227
- formItemList: [
228
- {
229
- name: 'reason',
230
- label: '删除原因',
231
- type: 'textarea',
232
- placeholder: '请输入删除原因',
233
- rules: {
234
- required: true,
235
- message: '请输入删除原因',
236
- trigger: 'blur'
237
- },
238
- value: '',
239
- rows: 5
240
- },
241
- {
242
- type: 'submit',
243
- skin: 'lay-form-btns',
244
- contents: [
245
- {
246
- type: 'primary',
247
- plain: true,
248
- text: '保存',
249
- event: 'confirm'
250
- }
251
- ]
252
- }
253
- ],
254
- delLoading: false,
255
- showDel: false,
256
- attachmentPaperClipCssStyle: '',
257
- is_edit: [], //是否可编辑
258
- flowTableInfo: {
259
- adjunctCode: '',
260
- hasAgent: '1' //是否展示代办人 1:展示 0:不展示
261
- },
262
- show: false,
263
- taskReadName: '', //非流程列表名称
264
- options: [
265
- { label: '时间排序', value: '1' },
266
- { label: '部门排序', value: '2' },
267
- { label: '树形排序', value: '3' }
268
- ],
269
- isShort: 0, //是否隐藏筛选
270
- viewType: '1', //排序方式
271
- flowTableList: [], //流程列表
272
- fyTableList: [], //分阅列表
273
- showSuggest: 'all', //筛选显示数据
274
- presetInfoListHiddenColumns: '', //隐藏表格展示数据
275
- canDelete: false, //是否展示操作按钮
276
- historyId: '',
277
- sidx: '',
278
- sord: '',
279
- total: 0
280
- };
281
- },
282
- computed: {
283
- toolbars() {
284
- return {
285
- flow: [
286
- {
287
- type: 'text',
288
- contents: '流程列表'
289
- },
290
- {
291
- type: 'search',
292
- contents: [
293
- {
294
- name: 'showSuggest',
295
- type: 'radio',
296
- changeSearch: true,
297
- data: [
298
- {
299
- value: 'all',
300
- name: '显示全部',
301
- checked: true
302
- },
303
- { value: 'have', name: '显示已填意见' }
304
- ],
305
- events: {
306
- change: (key, value) => {
307
- this.handleChange(key, value);
308
- }
309
- }
310
- },
311
- {
312
- type: 'select',
313
- placeholder: '请选择',
314
- name: 'viewType',
315
- width: '140px',
316
- changeSearch: true,
317
- events: {
318
- change: (key, value) => {
319
- this.handleChange(key, value);
320
- }
321
- },
322
- data: [
323
- {
324
- value: 1,
325
- selected: true,
326
- name: '时间排序'
327
- },
328
- {
329
- value: 2,
330
- name: '部门排序'
331
- },
332
- {
333
- value: 3,
334
- name: '树形排序'
335
- }
336
- ]
337
- }
338
- ]
339
- }
340
- ],
341
- preset: [
342
- {
343
- type: 'text',
344
- contents: '预设列表'
345
- }
346
- ],
347
- sign: [
348
- {
349
- type: 'button',
350
- contents: [
351
- {
352
- text: '生成处理签',
353
- type: 'primary'
354
- }
355
- ]
356
- }
357
- ],
358
- splitReading: [
359
- {
360
- type: 'text',
361
- contents:
362
- (this.taskReadName ? this.taskReadName : '非流程') + '列表'
363
- }
364
- ],
365
- circular: [
366
- {
367
- type: 'text',
368
- contents: '传阅列表'
369
- }
370
- ],
371
- untreatedRead: [
372
- {
373
- type: 'text',
374
- contents: '未处理分阅列表'
375
- },
376
- {
377
- type: 'button',
378
- contents: [
379
- {
380
- text: '撤销分阅',
381
- fun: 'recallRead'
382
- }
383
- ]
384
- }
385
- ],
386
- processedRead: [
387
- {
388
- type: 'text',
389
- contents: '已处理分阅列表'
390
- }
391
- ]
392
- // Reading situation
393
- };
394
- },
395
- pageInfo() {
396
- return {
397
- pageNum: this.currentPage,
398
- pageSize: this.pageSize,
399
- totalCount: this.total
400
- };
401
- },
402
- theads() {
403
- const _that = this;
404
- return {
405
- flow: [
406
- {
407
- label: '经办部门',
408
- field: 'deptid',
409
- align: 'center',
410
- key: 'jbbm',
411
- showOverflowTooltip: true,
412
- width: this.theadWidth.deptid || 150,
413
- render: (h, params) => {
414
- return h(
415
- 'span',
416
- {},
417
- params.row.doDeptName
418
- ? params.row.doDeptName
419
- : params.row.deptName
420
- );
421
- }
422
- },
423
- {
424
- label: '步骤',
425
- field: 'itemname',
426
- align: 'center',
427
- key: 'bz',
428
- showOverflowTooltip: true,
429
- width: this.theadWidth.itemname || 110
430
- },
431
- {
432
- label: '办理人',
433
- field: 'userName',
434
- align: 'center',
435
- key: 'blr',
436
- showOverflowTooltip: true,
437
- width: this.theadWidth.userName || 110
438
- },
439
- {
440
- label: '办理人部门',
441
- field: 'deptName',
442
- align: 'center',
443
- showOverflowTooltip: true,
444
- key: 'blrbm',
445
- width: this.theadWidth.deptName || 110
446
- },
447
- {
448
- label: '状态',
449
- field: 'pendstate',
450
- key: 'zt',
451
- align: 'center',
452
- showOverflowTooltip: true,
453
- width: this.theadWidth.pendstate || 80,
454
- render: (h, params) => {
455
- return h('span', {
456
- style: {
457
- color:
458
- params.row.pendstate == 0 || params.row.pendstate == 3
459
- ? 'red'
460
- : params.row.pendstate == 1
461
- ? 'green'
462
- : 'deepskyblue'
463
- },
464
- domProps: { innerHTML: params.row.querykeywords }
465
- });
466
- }
467
- },
468
- {
469
- label: '办理意见',
470
- field: 'doresult',
471
- align: 'center',
472
- width: this.theadWidth.doresult,
473
- showOverflowTooltip: true,
474
- key: 'blyj',
475
- render: (h, params) => {
476
- if (
477
- params.row.doresult &&
478
- (params.row.doresult.startsWith('http') ||
479
- params.row.doresult.startsWith('https'))
480
- ) {
481
- return h('img', {
482
- attrs: { src: params.row.doresult },
483
- style: { width: '100px', height: '100px' }
484
- });
485
- } else {
486
- return h('span', {}, [
487
- params.row.doresult
488
- ? params.row.doresult + (params.row.handleInfo ? '&' : '')
489
- : '',
490
- h(
491
- 'span',
492
- { style: { color: '#A5A5A5', marginLeft: '2px' } },
493
- params.row.handleInfo || ''
494
- )
495
- ]);
496
- }
497
- }
498
- },
499
- {
500
- label: '验签',
501
- field: 'authTypeStr',
502
- align: 'center',
503
- key: 'yq',
504
- showOverflowTooltip: true,
505
- width: this.theadWidth.authTypeStr || 70,
506
- render: (h, params) => {
507
- return h(
508
- 'span',
509
- { style: { color: 'deepskyblue' } },
510
- params.row.authTypeStr
511
- );
512
- }
513
- },
514
- {
515
- label: '附件',
516
- key: 'fj',
517
- field: 'hasAdjunct',
518
- align: 'center',
519
- showOverflowTooltip: true,
520
- width: this.theadWidth.hasAdjunct || 70,
521
- render: (h, params) => {
522
- if (params.row.hasAdjunct) {
523
- return h('span', {
524
- style: _that.attachmentPaperClipCssStyle
525
- ? _that.attachmentPaperClipCssStyle
526
- : { color: 'red', fontSize: '20px' },
527
- class: 'iconfont es-icon-fujian'
528
- });
529
- } else {
530
- return h('span', {}, '');
531
- }
532
- }
533
- },
534
- {
535
- label: '时间',
536
- field: 'doetime',
537
- align: 'center',
538
- key: 'sj',
539
- showOverflowTooltip: true,
540
- width: this.theadWidth.doetime || 150,
541
- render: (h, params) => {
542
- return h(
543
- 'span',
544
- {},
545
- params.row.doetime
546
- ? util.formatDate(params.row.doetime, 'yyyy-MM-dd HH:mm')
547
- : ''
548
- );
549
- }
550
- },
551
- {
552
- label: '代办人',
553
- field: 'douserid',
554
- align: 'center',
555
- key: 'dbr',
556
- showOverflowTooltip: true,
557
- width: this.theadWidth.douserid || 80,
558
- hide: _that.flowTableInfo.hasAgent != '1'
559
- },
560
- {
561
- label: '催办',
562
- field: 'pressTimes',
563
- align: 'center',
564
- key: 'cb',
565
- showOverflowTooltip: true,
566
- width: this.theadWidth.pressTimes || 150,
567
- render: (h, params) => {
568
- return h(
569
- 'span',
570
- { style: 'color:deepskyblue;cursor: pointer;' },
571
- params.row.pressTimes
572
- );
573
- }
574
- },
575
- {
576
- title: '操作',
577
- type: 'handle',
578
- width: this.modify ? '130' : '100',
579
- template: '',
580
- hide:this.hideBtn,
581
- events: [
582
- {
583
- text: '删除',
584
- rules: (rows) => {
585
- return rows.canDelete;
586
- }
587
- }
588
- // {
589
- // text: '修改',
590
- // rules: (rows) => {
591
- // return this.modify && rows.pendstate == 2;
592
- // }
593
- // }
594
- ]
595
- }
596
- ],
597
- preset: this.thead,
598
- splitReading: [
599
- {
600
- label: '经办部门',
601
- field: 'deptid',
602
- key: 'jbbm',
603
- align: 'center',
604
- showOverflowTooltip: true,
605
- width: this.theadWidth.deptid || 150
606
- },
607
- {
608
- label: '步骤',
609
- field: 'itemname',
610
- align: 'center',
611
- key: 'bz',
612
- showOverflowTooltip: true,
613
- width: this.theadWidth.itemname || 110
614
- },
615
- {
616
- label: '办理人',
617
- field: 'userName',
618
- align: 'center',
619
- key: 'blr',
620
- showOverflowTooltip: true,
621
- width: this.theadWidth.userName || 110
622
- },
623
- {
624
- label: '状态',
625
- field: 'pendstate',
626
- align: 'center',
627
- key: 'zt',
628
- showOverflowTooltip: true,
629
- width: this.theadWidth.pendstate || 80,
630
- render: (h, params) => {
631
- return h('span', {
632
- style: {
633
- color:
634
- params.row.pendstate == 0 || params.row.pendstate == 3
635
- ? 'red'
636
- : params.row.pendstate == 1
637
- ? 'green'
638
- : 'deepskyblue'
639
- },
640
- domProps: { innerHTML: params.row.querykeywords }
641
- });
642
- }
643
- },
644
- {
645
- label: '办理意见',
646
- field: 'doresult',
647
- align: 'center',
648
- key: 'blyj',
649
- width: this.theadWidth.doresult,
650
- showOverflowTooltip: true,
651
- render: (h, params) => {
652
- if (
653
- params.row.doresult &&
654
- (params.row.doresult.startsWith('http') ||
655
- params.row.doresult.startsWith('https'))
656
- ) {
657
- return h('img', {
658
- attrs: { src: params.row.doresult },
659
- style: { width: '100px', height: '100px' }
660
- });
661
- } else {
662
- return h('span', {}, [
663
- params.row.doresult
664
- ? params.row.doresult + (params.row.handleInfo ? '&' : '')
665
- : '',
666
- h(
667
- 'span',
668
- { style: { color: '#A5A5A5', marginLeft: '2px' } },
669
- params.row.handleInfo || ''
670
- )
671
- ]);
672
- }
673
- }
674
- },
675
- {
676
- label: '验签',
677
- field: 'authTypeStr',
678
- align: 'center',
679
- key: 'yq',
680
- showOverflowTooltip: true,
681
- width: this.theadWidth.authTypeStr || 70,
682
- render: (h, params) => {
683
- return h(
684
- 'span',
685
- { style: { color: 'deepskyblue' } },
686
- params.row.authTypeStr
687
- );
688
- }
689
- },
690
- {
691
- label: '附件',
692
- field: 'hasAdjunct',
693
- align: 'center',
694
- key: 'fj',
695
- showOverflowTooltip: true,
696
- width: this.theadWidth.hasAdjunct || 70,
697
- render: (h, params) => {
698
- if (params.row.hasAdjunct) {
699
- return h('span', {
700
- style: _that.attachmentPaperClipCssStyle
701
- ? _that.attachmentPaperClipCssStyle
702
- : { color: 'red', fontSize: '20px' },
703
- class: 'iconfont es-icon-fujian'
704
- });
705
- } else {
706
- return h('span', {}, '');
707
- }
708
- }
709
- },
710
- {
711
- label: '时间',
712
- field: 'doetime',
713
- align: 'center',
714
- key: 'sj',
715
- showOverflowTooltip: true,
716
- width: this.theadWidth.doetime || 150,
717
- render: (h, params) => {
718
- return h(
719
- 'span',
720
- {},
721
- params.row.doetime
722
- ? util.formatDate(params.row.doetime, 'yyyy-MM-dd HH:mm')
723
- : ''
724
- );
725
- }
726
- },
727
- {
728
- label: '代办人',
729
- field: 'douserid',
730
- align: 'center',
731
- key: 'dbr',
732
- showOverflowTooltip: true,
733
- width: this.theadWidth.douserid || 80,
734
- hide: _that.flowTableInfo.hasAgent != '1'
735
- },
736
- {
737
- label: '催办',
738
- field: 'pressTimes',
739
- align: 'center',
740
- key: 'cb',
741
- showOverflowTooltip: true,
742
- width: this.theadWidth.pressTimes || 150,
743
- render: (h, params) => {
744
- return h(
745
- 'span',
746
- { style: 'color:deepskyblue;cursor: pointer;' },
747
- params.row.pressTimes
748
- );
749
- }
750
- },
751
- {
752
- title: '操作',
753
- type: 'handle',
754
- width: '100',
755
- template: '',
756
- hide:this.hideBtn,
757
- events: [
758
- {
759
- text: '删除',
760
- rules: (rows) => {
761
- return rows.canDelete;
762
- }
763
- }
764
- ]
765
- }
766
- ],
767
- circular: [
768
- {
769
- label: '发起人',
770
- field: 'circularReadInitiatorName',
771
- align: 'center',
772
- key: 'fqr',
773
- showOverflowTooltip: true,
774
- width: this.theadWidth.circularReadInitiatorName || 150
775
- },
776
- {
777
- label: '传阅部门',
778
- field: 'circularReadOrgName',
779
- align: 'center',
780
- key: 'cybm',
781
- showOverflowTooltip: true,
782
- width: this.theadWidth.circularReadOrgName || 110
783
- },
784
- {
785
- label: '传阅人',
786
- field: 'userName',
787
- align: 'center',
788
- key: 'cyr',
789
- showOverflowTooltip: true,
790
- width: this.theadWidth.userName || 110
791
- },
792
- {
793
- label: '步骤',
794
- field: 'itemname',
795
- align: 'center',
796
- showOverflowTooltip: true,
797
- key: 'bz',
798
- width: this.theadWidth.itemname || 110
799
- },
800
- {
801
- label: '状态',
802
- field: 'pendstate',
803
- key: 'zt',
804
- align: 'center',
805
- showOverflowTooltip: true,
806
- width: this.theadWidth.pendstate || 140,
807
- render: (h, params) => {
808
- return h('span', {
809
- style: {
810
- color:
811
- params.row.pendstate == 0 || params.row.pendstate == 3
812
- ? 'red'
813
- : params.row.pendstate == 1
814
- ? 'green'
815
- : 'deepskyblue',
816
- cursor: this.hasCircularReadWithdrawAuthority
817
- ? 'pointer'
818
- : 'unset'
819
- },
820
- domProps: {
821
- innerHTML:
822
- params.row.querykeywords +
823
- (this.hasCircularReadWithdrawAuthority
824
- ? `<span style="color:#7AB0D5">(撤回)</span>`
825
- : '')
826
- }
827
- });
828
- }
829
- },
830
- {
831
- label: '送达时间',
832
- field: 'createtime',
833
- align: 'center',
834
- key: 'sdsj',
835
- showOverflowTooltip: true,
836
- width: this.theadWidth.createtime || 170
837
- },
838
- {
839
- label: '办理时间',
840
- field: 'doetime',
841
- align: 'center',
842
- key: 'blsj',
843
- showOverflowTooltip: true,
844
- width: this.theadWidth.doetime || 150
845
- },
846
-
847
- {
848
- label: '附件',
849
- key: 'fj',
850
- field: 'hasAdjunct',
851
- align: 'center',
852
- showOverflowTooltip: true,
853
- width: this.theadWidth.hasAdjunct || 70,
854
- render: (h, params) => {
855
- if (params.row.hasAdjunct) {
856
- return h('span', {
857
- style: _that.attachmentPaperClipCssStyle
858
- ? _that.attachmentPaperClipCssStyle
859
- : { color: 'red', fontSize: '20px' },
860
- class: 'iconfont es-icon-fujian'
861
- });
862
- } else {
863
- return h('span', {}, '');
864
- }
865
- }
866
- },
867
- {
868
- label: '提醒',
869
- field: 'pressTimes',
870
- align: 'center',
871
- key: 'tx',
872
- showOverflowTooltip: true,
873
- width: this.theadWidth.pressTimes || 150,
874
- render: (h, params) => {
875
- return h(
876
- 'span',
877
- { style: 'color:deepskyblue;cursor: pointer;' },
878
- params.row.pressTimes
879
- );
880
- }
881
- },
882
- {
883
- label: '阅结意见 & 说明',
884
- field: 'doresult',
885
- align: 'center',
886
- width: this.theadWidth.doresult,
887
- showOverflowTooltip: true,
888
- key: 'blyj',
889
- render: (h, params) => {
890
- if (
891
- params.row.doresult &&
892
- (params.row.doresult.startsWith('http') ||
893
- params.row.doresult.startsWith('https'))
894
- ) {
895
- return h('img', {
896
- attrs: { src: params.row.doresult },
897
- style: { width: '100px', height: '100px' }
898
- });
899
- } else {
900
- return h('span', {}, [
901
- params.row.doresult
902
- ? params.row.doresult + (params.row.handleInfo ? '&' : '')
903
- : '',
904
- h(
905
- 'span',
906
- { style: { color: '#A5A5A5', marginLeft: '2px' } },
907
- params.row.handleInfo || ''
908
- )
909
- ]);
910
- }
911
- }
912
- }
913
- ],
914
- untreatedRead: [
915
- {
916
- label: '步骤',
917
- field: 'itemid',
918
- align: 'center',
919
- key: 'bz',
920
- showOverflowTooltip: true,
921
- width: this.theadWidth.itemid || 110
922
- },
923
- {
924
- label: '办理人',
925
- field: 'userName',
926
- align: 'center',
927
- key: 'blr',
928
- showOverflowTooltip: true,
929
- width: this.theadWidth.userName
930
- },
931
- {
932
- label: '办理状态',
933
- field: 'pendstate',
934
- key: 'blzt',
935
- align: 'center',
936
- showOverflowTooltip: true,
937
- width: this.theadWidth.pendstate || 110,
938
- render: (h, params) => {
939
- return h('span', {
940
- style: {
941
- color:
942
- params.row.pendstate == 0 || params.row.pendstate == 3
943
- ? 'red'
944
- : params.row.pendstate == 1
945
- ? 'green'
946
- : 'deepskyblue'
947
- },
948
- domProps: { innerHTML: params.row.querykeywords }
949
- });
950
- }
951
- },
952
- {
953
- label: '创建时间',
954
- field: 'createtime',
955
- align: 'center',
956
- key: 'cjsj',
957
- showOverflowTooltip: true,
958
- width: this.theadWidth.createtime || 150,
959
- render: (h, params) => {
960
- return h(
961
- 'span',
962
- {},
963
- params.row.doetime
964
- ? util.formatDate(params.row.createtime, 'yyyy-MM-dd HH:mm')
965
- : ''
966
- );
967
- }
968
- }
969
- ],
970
- processedRead: [
971
- {
972
- label: '步骤',
973
- field: 'itemid',
974
- align: 'center',
975
- key: 'bz',
976
- showOverflowTooltip: true,
977
- width: this.theadWidth.itemid || 110
978
- },
979
- {
980
- label: '办理人',
981
- field: 'userName',
982
- align: 'center',
983
- key: 'blr',
984
- showOverflowTooltip: true,
985
- width: this.theadWidth.userName
986
- },
987
- {
988
- label: '办理状态',
989
- field: 'pendstate',
990
- key: 'blzt',
991
- align: 'center',
992
- showOverflowTooltip: true,
993
- width: this.theadWidth.pendstate || 110,
994
- render: (h, params) => {
995
- return h('span', {
996
- style: {
997
- color:
998
- params.row.pendstate == 0 || params.row.pendstate == 3
999
- ? 'red'
1000
- : params.row.pendstate == 1
1001
- ? 'green'
1002
- : 'deepskyblue'
1003
- },
1004
- domProps: { innerHTML: params.row.querykeywords }
1005
- });
1006
- }
1007
- },
1008
- {
1009
- label: '办理时间',
1010
- field: 'doetime',
1011
- align: 'center',
1012
- key: 'blsj',
1013
- showOverflowTooltip: true,
1014
- width: this.theadWidth.doetime || 150,
1015
- render: (h, params) => {
1016
- return h(
1017
- 'span',
1018
- {},
1019
- params.row.doetime
1020
- ? util.formatDate(params.row.doetime, 'yyyy-MM-dd HH:mm')
1021
- : ''
1022
- );
1023
- }
1024
- },
1025
- {
1026
- label: '代办人',
1027
- field: 'douserid',
1028
- align: 'center',
1029
- key: 'dbr',
1030
- showOverflowTooltip: true,
1031
- width: this.theadWidth.douserid
1032
- },
1033
- {
1034
- label: '意见',
1035
- field: 'doresult',
1036
- align: 'center',
1037
- key: 'yj',
1038
- showOverflowTooltip: true,
1039
- width: this.theadWidth.doresult
1040
- }
1041
- ]
1042
- };
1043
- },
1044
- content() {
1045
- const _that = this;
1046
- let newContents = JSON.parse(JSON.stringify(this.contents));
1047
- if (this.contents.indexOf('circular') != -1) {
1048
- newContents = newContents.filter((item) => item != 'splitReading');
1049
- }
1050
- if (newContents.indexOf('readingSituation') != -1) {
1051
- newContents = ['untreatedRead', 'processedRead'];
1052
- }
1053
- let contents = newContents.map((item) => {
1054
- if (typeof item === 'string') {
1055
- let data = [];
1056
- if (_that.headFields.length > 0) {
1057
- _that.headFields.map((headFiled) => {
1058
- if (headFiled.showDefault) {
1059
- _that.theads[item].map((theadItem) => {
1060
- if (theadItem.field === headFiled.field) {
1061
- data.push({ ...theadItem, ...headFiled });
1062
- }
1063
- });
1064
- } else {
1065
- data.push(headFiled);
1066
- }
1067
- });
1068
- _that.theads[item].map((x) => {
1069
- if (x.type == 'handle') {
1070
- data.push(x);
1071
- }
1072
- });
1073
- }
1074
- return {
1075
- type: item,
1076
- checkbox: newContents.indexOf('untreatedRead') != -1,
1077
- toolbar: this.toolbars[item],
1078
- thead: data.length > 0 ? data : this.theads[item],
1079
- showFormBtn: false
1080
- };
1081
- } else {
1082
- if (!Object.prototype.hasOwnProperty.call(item, 'toolbar')) {
1083
- let toolbars = this.toolbars[item.type];
1084
- return { ...item, toolbars };
1085
- }
1086
- if (!Object.prototype.hasOwnProperty.call(item, 'thead')) {
1087
- let thead = this.theads[item.type];
1088
- return { ...item, thead };
1089
- }
1090
- return item;
1091
- }
1092
- });
1093
- return contents;
1094
- },
1095
- newToolbar() {
1096
- if (this.toolbar && this.toolbar.length > 0) {
1097
- return this.toolbar;
1098
- } else {
1099
- return [];
1100
- }
1101
- },
1102
- thead() {
1103
- let table = [
1104
- {
1105
- title: '步骤',
1106
- align: 'center',
1107
- width: this.theadWidth.nodeName || '100',
1108
- field: 'nodeName'
1109
- },
1110
- {
1111
- title: '预设办理人',
1112
- width: this.theadWidth.presetUserName || '120',
1113
- align: 'center',
1114
- field: 'presetUserName'
1115
- },
1116
- {
1117
- title: '是否可编辑',
1118
- key: 'sfkbj',
1119
- align: 'center',
1120
- width: this.theadWidth.isEdit || '100',
1121
- render: (h, params) => {
1122
- return h('span', this.getCodeValue(params.row.isEdit, 'is_edit'));
1123
- },
1124
- field: 'isEdit'
1125
- },
1126
- {
1127
- key: 'zt',
1128
- title: '状态',
1129
- width: this.theadWidth.statusName || '80',
1130
- align: 'center',
1131
- field: 'statusName'
1132
- },
1133
- {
1134
- title: '预设类型',
1135
- key: 'yslx',
1136
- width: this.theadWidth.presetType || '120',
1137
- align: 'center',
1138
- render: (h, params) => {
1139
- return h(
1140
- 'span',
1141
- this.getCodeValue(params.row.presetType, 'preset_type')
1142
- );
1143
- },
1144
- field: 'presetType'
1145
- },
1146
- {
1147
- title: '流程名称',
1148
- key: 'lcmc',
1149
- width: this.theadWidth.processDefName,
1150
- align: 'center',
1151
- field: 'processDefName'
1152
- },
1153
- {
1154
- title: '上一步骤',
1155
- key: 'sybz',
1156
- align: 'center',
1157
- width: this.theadWidth.lastNodeName,
1158
- field: 'lastNodeName'
1159
- },
1160
- {
1161
- title: '创建步骤',
1162
- key: 'cjbz',
1163
- align: 'center',
1164
- width: this.theadWidth.operationNodeName,
1165
- field: 'operationNodeName'
1166
- },
1167
- {
1168
- title: '创建人',
1169
- key: 'cjr',
1170
- width: this.theadWidth.creatorName || '120',
1171
- align: 'center',
1172
- field: 'creatorName'
1173
- },
1174
- {
1175
- title: '创建时间',
1176
- width: this.theadWidth.createTime || '150',
1177
- key: 'cjsj',
1178
- align: 'center',
1179
- render: (h, params) => {
1180
- return h(
1181
- 'span',
1182
- util.formatDate(params.row.createTime, 'yyyy-MM-dd HH:mm')
1183
- );
1184
- },
1185
- field: 'createTime'
1186
- },
1187
- {
1188
- title: '操作区域',
1189
- type: 'handle',
1190
- align: 'center',
1191
- width: '120',
1192
- events: [
1193
- {
1194
- text: '置为失效'
1195
- }
1196
- ]
1197
- }
1198
- ];
1199
- if (
1200
- this.presetInfoListHiddenColumns != undefined &&
1201
- this.presetInfoListHiddenColumns != ''
1202
- ) {
1203
- table = table.filter(
1204
- (items) => this.presetInfoListHiddenColumns.indexOf(items.key) == -1
1205
- );
1206
- }
1207
- if (!this.canDelete) table.splice(table.length - 1, 1);
1208
- return table;
1209
- }
1210
- },
1211
- async mounted() {
1212
- this.loading = util.loading(this.$loading, '加载中...');
1213
- if (this.contents.indexOf('readingSituation') != -1) {
1214
- await this.getFyListJson(1);
1215
- await this.getFyListJson(2);
1216
- this.getListCount(this.flowListCount);
1217
- this.show = true;
1218
- } else {
1219
- this.getFlowList();
1220
- }
1221
- this.getSysInfo('preset_type');
1222
- this.getSysInfo('is_edit');
1223
- this.getListInfo();
1224
- },
1225
-
1226
- methods: {
1227
- recallReadFun() {
1228
- const _that = this;
1229
- let pendingIds = _that.selectList.map((x) => x.id).join(',');
1230
- let params = {
1231
- url: taskReadWithDraw,
1232
- params: {
1233
- pendingIds
1234
- }
1235
- };
1236
- _that.loading = util.loading(_that.$loading, '撤销中...');
1237
- util.ajax(params).then(async (res) => {
1238
- _that.loading.close();
1239
- if (res.rCode == 0 || res.status == 'success') {
1240
- _that.$message.success('撤销成功!');
1241
- await _that.getFyListJson(1);
1242
- _that.getListCount(_that.flowListCount);
1243
- } else {
1244
- _that.$message.error(res.message);
1245
- }
1246
- });
1247
- },
1248
- recallRead() {
1249
- if (this.selectList.length == 0)
1250
- return this.$message.warning('请选择需要撤销的分阅');
1251
- this.$confirm('是否确认撤销选中的分阅?', '提示', {
1252
- confirmButtonText: '确定',
1253
- cancelButtonText: '取消',
1254
- type: 'warning'
1255
- }).then(() => {
1256
- this.recallReadFun();
1257
- });
1258
- },
1259
- handleSelectionChange(val) {
1260
- this.selectList = val;
1261
- },
1262
- handledraw(pendedHistoryId) {
1263
- let params = {
1264
- url: circularReadWithdraw,
1265
- params: { pendedHistoryId }
1266
- };
1267
- this.$confirm('是否确定撤回当前传阅', {
1268
- confirmButtonText: '确定',
1269
- cancelButtonText: '取消',
1270
- type: 'warning'
1271
- })
1272
- .then(() => {
1273
- this.loading = util.loading(this.$loading, '撤回中...');
1274
- util.ajax(params).then((res) => {
1275
- this.loading.close();
1276
- if (res.rCode == 0) {
1277
- this.$message({
1278
- message: '撤回成功',
1279
- type: 'success'
1280
- });
1281
- this.getCircularReadList();
1282
- }
1283
- });
1284
- // _that.subMit(res.results,type)
1285
- })
1286
- .catch(() => {});
1287
- },
1288
- getCircularReadList() {
1289
- const _that = this;
1290
- let params = {
1291
- url: pendedhistoryListWithCircularReadJson,
1292
- params: { apprecordid: _that.businessId }
1293
- };
1294
- util.ajax(params).then((res) => {
1295
- if (res.status == 'success' || res.rCode == 0) {
1296
- _that.circularData = res.data.fyHistoryList;
1297
- _that.hasCircularReadWithdrawAuthority =
1298
- res.data.hasCircularReadWithdrawAuthority;
1299
- _that.$nextTick(() => {
1300
- _that.getListCount(_that.flowListCount);
1301
- });
1302
- }
1303
- });
1304
- },
1305
- returnData(type) {
1306
- switch (type) {
1307
- case 'preset':
1308
- this.flowListCount.preset = this.presetData.length;
1309
- return this.presetData;
1310
- case 'sign':
1311
- this.flowListCount.sign = this.signData.length;
1312
- return this.signData;
1313
- case 'splitReading':
1314
- this.flowListCount.splitReading = this.splitReadingData.length;
1315
- return this.splitReadingData;
1316
- case 'circular':
1317
- this.flowListCount.circular = this.circularData.length;
1318
- return this.circularData;
1319
- case 'untreatedRead':
1320
- this.flowListCount.untreatedRead = this.untreatedReadData.length;
1321
- return this.untreatedReadData;
1322
- case 'processedRead':
1323
- this.flowListCount.processedRead = this.processedReadData.length;
1324
- return this.processedReadData;
1325
- default:
1326
- this.flowListCount.flow = this.flowData.length;
1327
- return this.flowData;
1328
- }
1329
- },
1330
- handleCellClick(row, column) {
1331
- if (column.property == 'hasAdjunct' && row.hasAdjunct) {
1332
- this.showFile(row.wfpendingid);
1333
- } else if (column.property == 'pressTimes') {
1334
- this.goPress(row.id);
1335
- } else if (
1336
- column.property == 'pendstate' &&
1337
- this.hasCircularReadWithdrawAuthority
1338
- ) {
1339
- this.handledraw(row.id);
1340
- }
1341
- },
1342
- handleBtnClick(data) {
1343
- // recallRead
1344
- const { handle, row } = data;
1345
- if (handle.text == '删除') {
1346
- this.del(row.id);
1347
- } else if (handle.fun == 'recallRead') {
1348
- this[handle.fun]();
1349
- }
1350
- },
1351
- /**
1352
- * handleFormSubmit
1353
- * @desc:删除节点点击事件
1354
- * @param {Object} formData 点击删除的form数据
1355
- * @author liufan
1356
- * @date 2022年11月29日
1357
- **/
1358
- handleFormSubmit(formData) {
1359
- this.delLoading = true;
1360
- let params = {
1361
- url: deleteFlow,
1362
- method: 'POST',
1363
- data: { id: this.historyId, reason: formData.reason }
1364
- };
1365
- util
1366
- .ajax(params)
1367
- .then((res) => {
1368
- const { status, message } = res;
1369
- this.delLoading = false;
1370
- if (status === 'success') {
1371
- this.$message.success('删除成功');
1372
- this.showDel = false;
1373
- this.handleChange();
1374
- } else {
1375
- this.$message.error(message || '系统错误,请联系管理员!');
1376
- }
1377
- })
1378
- .catch((err) => {
1379
- this.delLoading = false;
1380
- if (err.message && err.message !== 'canceled') {
1381
- this.$message.error(err.message);
1382
- }
1383
- });
1384
- },
1385
- /**
1386
- * del
1387
- * @desc:展示删除弹窗
1388
- * @param {String} id 当前点击数据id
1389
- * @author liufan
1390
- * @date 2022年11月29日
1391
- **/
1392
- del(id) {
1393
- this.historyId = id;
1394
- this.showDel = true;
1395
- },
1396
- /**
1397
- * handleCurrentChange
1398
- * @desc:监听页码变化
1399
- * @param {String} val 当前页
1400
- * @author liufan
1401
- * @date 2022年11月29日
1402
- **/
1403
- handleCurrentChange(val) {
1404
- this.currentPage = val;
1405
- this.getPressList();
1406
- },
1407
- /**
1408
- * handleSizeChange
1409
- * @desc:监听每页数据显示数量变化
1410
- * @param {String} val 每页展示数量
1411
- * @author liufan
1412
- * @date 2022年11月29日
1413
- **/
1414
- handleSizeChange(val) {
1415
- this.pageSize = val;
1416
- this.getPressList();
1417
- },
1418
- /**
1419
- * sortChange
1420
- * @desc:监听排序变化
1421
- * @param {Object} info 需要排序的字段及排序方式
1422
- * @author liufan
1423
- * @date 2022年11月29日
1424
- **/
1425
- sortChange(info) {
1426
- let { prop, order } = info;
1427
- this.sidx = prop;
1428
- this.sord = order.replace('ending', '');
1429
- this.getPressList();
1430
- },
1431
- /**
1432
- * getPressList
1433
- * @desc:催办列表数据
1434
- * @author liufan
1435
- * @date 2022年11月29日
1436
- **/
1437
- getPressList() {
1438
- const { historyId, pageSize, sidx, sord, currentPage } = this;
1439
- this.pressLoading = true;
1440
- let params = {
1441
- url: pressListJson,
1442
- params: { historyId },
1443
- method: 'POST',
1444
- data: { page: currentPage, rows: pageSize, sidx, sord, historyId }
1445
- };
1446
- util
1447
- .ajax(params)
1448
- .then((res) => {
1449
- this.pressTableList = res.data;
1450
- this.total = res.totalrecords;
1451
- this.pressLoading = false;
1452
- })
1453
- .catch((err) => {
1454
- this.pressLoading = false;
1455
- if (err.message && err.message !== 'canceled') {
1456
- this.$message.error(err.message);
1457
- }
1458
- });
1459
- },
1460
- /**
1461
- * goPress
1462
- * @desc:催办列表查看
1463
- * @param {String} id 催办列表id
1464
- * @author liufan
1465
- * @date 2022年11月29日
1466
- **/
1467
- goPress(id) {
1468
- this.historyId = id;
1469
- this.showPress = true;
1470
- this.getPressList();
1471
- },
1472
- /**
1473
- * showFile
1474
- * @desc:附件查看
1475
- * @param {String} ownId 附件id
1476
- * @author liufan
1477
- * @date 2022年11月29日
1478
- **/
1479
- showFile(ownId) {
1480
- this.wfpendingid = ownId;
1481
- this.showFileList = true;
1482
- },
1483
- /**
1484
- * handleChange
1485
- * @desc:切换排序方式
1486
- * @author liufan
1487
- * @date 2022年11月22日
1488
- **/
1489
- handleChange(key, value) {
1490
- if (value) {
1491
- this[key] = value;
1492
- }
1493
- // this.show = false;
1494
- this.loading = util.loading(this.$loading, '加载中...');
1495
- this.getFlowList();
1496
- },
1497
- async getFyListJson(type) {
1498
- let params = {
1499
- url: fyListJson,
1500
- params: {
1501
- appRecordId: this.businessId,
1502
- status: type
1503
- }
1504
- };
1505
- await util.ajax(params).then((res) => {
1506
- if (type == 1) {
1507
- this.untreatedReadData = res.data;
1508
- } else {
1509
- this.processedReadData = res.data;
1510
- }
1511
- });
1512
- },
1513
- /**
1514
- * getFlowList
1515
- * @desc:获取流程列表
1516
- * @author liufan
1517
- * @date 2022年11月22日
1518
- **/
1519
- getFlowList() {
1520
- let params = {
1521
- url: pendedhistoryListJson,
1522
- params: {
1523
- apprecordid: this.businessId,
1524
- pendingAttr: 0,
1525
- viewType: this.viewType,
1526
- showSuggest: this.showSuggest,
1527
- ...this.params
1528
- }
1529
- };
1530
- util
1531
- .ajax(params)
1532
- .then((res) => {
1533
- const {
1534
- status,
1535
- message,
1536
- data: {
1537
- adjunctCode,
1538
- wfHistoryList,
1539
- fyHistoryList,
1540
- hasAgent,
1541
- isShort,
1542
- modify,
1543
- taskReadName
1544
- }
1545
- } = res;
1546
- this.loading.close();
1547
- if (status == 'success') {
1548
- this.flowTableInfo.adjunctCode = adjunctCode;
1549
- this.flowTableInfo.hasAgent = hasAgent;
1550
- this.attachmentPaperClipCssStyle =
1551
- res.data.attachmentPaperClipCssStyle;
1552
- this.isShort = isShort;
1553
- this.taskReadName = taskReadName;
1554
- this.flowData = wfHistoryList;
1555
- this.flowData.map((x) => {
1556
- if (!x.deptid) {
1557
- x.deptid = x.deptName;
1558
- }
1559
- });
1560
- this.splitReadingData = fyHistoryList;
1561
- this.modify = modify;
1562
- this.show = true;
1563
- if (this.height == 'auto') {
1564
- this.$nextTick(() => {
1565
- this.content.map((x) => {
1566
- this[`${x.type}Height`] = this.$refs[x.type][0].offsetHeight;
1567
- });
1568
- });
1569
- }
1570
- if (this.contents.indexOf('circular') != -1) {
1571
- this.getCircularReadList();
1572
- } else {
1573
- this.$nextTick(() => {
1574
- this.getListCount(this.flowListCount);
1575
- });
1576
- }
1577
- } else {
1578
- this.$message.error(message || '系统错误,请联系管理员!');
1579
- }
1580
- })
1581
- .catch((err) => {
1582
- this.loading.close();
1583
- if (err.message && err.message !== 'canceled') {
1584
- this.$message.error(err.message);
1585
- }
1586
- this.show = true;
1587
- });
1588
- },
1589
- /**
1590
- * handleClick
1591
- * @desc:表单点击事件
1592
- * @param {Object} val 当前点击行数据及按钮
1593
- * @author liufan
1594
- * @date 2022年11月10日
1595
- **/
1596
- handleClick(val) {
1597
- const {
1598
- handle: { text },
1599
- row: { id, status }
1600
- } = val;
1601
- if (text === '置为失效') {
1602
- if (status == 0) {
1603
- this.$confirm('您确定要置为失效吗?')
1604
- .then(() => {
1605
- this.loading = util.loading(this.$loading, '提交中...');
1606
- let param = {
1607
- url: deletePresetInfo,
1608
- headers: { Accept: 'application/json,text/plain' },
1609
- method: 'post',
1610
- params: { id }
1611
- };
1612
- util
1613
- .ajax(param)
1614
- .then((res) => {
1615
- const { status, message } = res;
1616
- this.loading.close();
1617
- if (status === 'success') {
1618
- this.$message.success('操作成功');
1619
- this.getListInfo();
1620
- } else {
1621
- this.$message.error(message || '系统错误,请联系管理员!');
1622
- }
1623
- })
1624
- .catch((err) => {
1625
- this.loading.close();
1626
- if (err.message && err.message !== 'canceled') {
1627
- this.$message.error(err.message);
1628
- }
1629
- });
1630
- })
1631
- .catch((e) => {
1632
- // on cancel
1633
- });
1634
- } else {
1635
- this.$message.warning('当前数据已为失效状态');
1636
- }
1637
- }
1638
- },
1639
- /**
1640
- * getCodeValue
1641
- * @desc:获取代码表过滤后的值
1642
- * @param {String} value 展示数据的代码值
1643
- * @param {String} type 代码表类型
1644
- * @author liufan
1645
- * @date 2022年11月10日
1646
- **/
1647
- getCodeValue(value, type) {
1648
- let val = this[type].filter((item) => item.cciValue == value);
1649
- return val[0].shortName;
1650
- },
1651
- /**
1652
- * getSysInfo
1653
- * @desc:获取代码表
1654
- * @param {String} code 编码code值
1655
- * @author liufan
1656
- * @date 2022年11月10日
1657
- **/
1658
- getSysInfo(code) {
1659
- let params = {
1660
- url: findCodeValues,
1661
- params: { ccCode: code }
1662
- };
1663
- util
1664
- .ajax(params)
1665
- .then((res) => {
1666
- const { status, message, data } = res;
1667
- if (status == 'success') {
1668
- this[code] = data;
1669
- } else {
1670
- this.$message.error(message || '系统错误,请联系管理员!');
1671
- }
1672
- })
1673
- .catch((e) => {});
1674
- },
1675
- /**
1676
- * getListInfo
1677
- * @desc:获取预设列表数据
1678
- * @author liufan
1679
- * @date 2022年11月10日
1680
- **/
1681
- getListInfo() {
1682
- let param = {
1683
- url: toPresetInfoListIndex,
1684
- params: { apprecordid: this.businessId }
1685
- };
1686
- util
1687
- .ajax(param)
1688
- .then((res) => {
1689
- const {
1690
- status,
1691
- message,
1692
- data: {
1693
- presetInfoList,
1694
- presetInfoListHiddenColumns,
1695
- canDelete,
1696
- currentUserHasPresetInfoAuth
1697
- }
1698
- } = res;
1699
- this.loading.close();
1700
- if (status == 'success') {
1701
- presetInfoList && (this.presetData = presetInfoList);
1702
- this.presetInfoListHiddenColumns = presetInfoListHiddenColumns;
1703
- this.currentUserHasPresetInfoAuth = currentUserHasPresetInfoAuth;
1704
- this.canDelete = canDelete;
1705
- } else {
1706
- this.$message.error(message || '系统错误,请联系管理员!');
1707
- }
1708
- })
1709
- .catch((err) => {
1710
- this.loading.close();
1711
- if (err.message && err.message !== 'canceled') {
1712
- this.$message.error(err.message);
1713
- }
1714
- });
1715
- }
1716
- }
1717
- };
1718
- </script>
1719
-
1720
- <style></style>
1
+ <template>
2
+ <div class="es-flow-list">
3
+ <div
4
+ class="es-flow-list-item"
5
+ v-for="(item, index) in content"
6
+ :key="index"
7
+ v-show="
8
+ (item.type == 'splitReading' &&
9
+ splitReadingData &&
10
+ splitReadingData.length > 0) ||
11
+ (item.type == 'preset' &&
12
+ presetData &&
13
+ presetData.length > 0 &&
14
+ currentUserHasPresetInfoAuth) ||
15
+ (item.type != 'splitReading' && item.type != 'preset')
16
+ "
17
+ >
18
+ <div
19
+ class="es-flow-list-box"
20
+ :ref="item.type"
21
+ :style="`position:${height == 'auto' ? 'unset' : 'absolute'}`"
22
+ >
23
+ <es-data-table
24
+ v-if="show"
25
+ :class="{ 'es-flow-group-data-table': item.type !== 'sign' }"
26
+ :display="display"
27
+ :numbers="numbers"
28
+ @cell-click="handleCellClick"
29
+ :full="height !== 'auto'"
30
+ v-bind="item"
31
+ :data="returnData(item.type)"
32
+ @btn-click="handleBtnClick"
33
+ @selection-change="handleSelectionChange"
34
+ ></es-data-table>
35
+ </div>
36
+ </div>
37
+ <es-dialog
38
+ append-to-body
39
+ :close-on-click-modal="false"
40
+ title="查看附件"
41
+ :visible.sync="showFileList"
42
+ v-if="showFileList"
43
+ >
44
+ <FileList
45
+ :ownId="wfpendingid"
46
+ :code="flowTableInfo.adjunctCode"
47
+ :deleted="false"
48
+ :disabled="true"
49
+ @cancel="showFileList = false"
50
+ />
51
+ </es-dialog>
52
+ <es-dialog
53
+ append-to-body
54
+ :close-on-click-modal="false"
55
+ title="查看催办记录"
56
+ :visible.sync="showPress"
57
+ height="500px"
58
+ v-if="showPress"
59
+ >
60
+ <div style="height: 400px" v-loading="pressLoading">
61
+ <es-data-table
62
+ v-if="show"
63
+ :data="pressTableList"
64
+ :thead="pressThead"
65
+ @page-size-change="handleSizeChange"
66
+ @page-current-change="handleCurrentChange"
67
+ stripe
68
+ full
69
+ style="width: 100%"
70
+ @sort-change="sortChange"
71
+ :page="pageInfo"
72
+ />
73
+ </div>
74
+ </es-dialog>
75
+ <es-dialog
76
+ append-to-body
77
+ :close-on-click-modal="false"
78
+ title="删除"
79
+ :visible.sync="showDel"
80
+ height="auto"
81
+ class="del-flow"
82
+ v-if="showDel"
83
+ >
84
+ <es-form
85
+ v-loading="delLoading"
86
+ :model="formData"
87
+ :contents="formItemList"
88
+ @submit="handleFormSubmit"
89
+ >
90
+ </es-form>
91
+ </es-dialog>
92
+ </div>
93
+ </template>
94
+
95
+ <script>
96
+ import {
97
+ findCodeValues,
98
+ deletePresetInfo,
99
+ pendedhistoryListJson,
100
+ toPresetInfoListIndex,
101
+ pressListJson,
102
+ pendedhistoryListWithCircularReadJson,
103
+ deleteFlow,
104
+ taskReadWithDraw,
105
+ fyListJson,
106
+ circularReadWithdraw
107
+ } from 'eoss-ui/src/config/api';
108
+ import FileList from '../../flow/src/component/FileList.vue';
109
+ import util from 'eoss-ui/src/utils/util';
110
+ export default {
111
+ name: 'EsFlowList',
112
+ components: {
113
+ [FileList.name]: FileList
114
+ },
115
+ props: {
116
+ businessId: {
117
+ type: String,
118
+ default: ''
119
+ },
120
+ getListCount: {
121
+ type: Function,
122
+ default: () => {}
123
+ },
124
+ hide: {
125
+ type: String,
126
+ default: ''
127
+ },
128
+ hideBtn:{
129
+ type: Boolean,
130
+ default: false
131
+ },
132
+ params: {
133
+ type: Object,
134
+ default: () => {
135
+ return {};
136
+ }
137
+ },
138
+ toolbar: {
139
+ type: Array,
140
+ default: () => []
141
+ },
142
+ headFields: {
143
+ type: Array,
144
+ default: () => []
145
+ },
146
+ contents: {
147
+ type: Array,
148
+ default() {
149
+ return ['flow', 'splitReading', 'preset'];
150
+ }
151
+ },
152
+ numbers: {
153
+ type: Boolean,
154
+ default: false
155
+ },
156
+ height: {
157
+ type: String,
158
+ default: ''
159
+ },
160
+
161
+ theadWidth: {
162
+ type: Object,
163
+ default: () => {
164
+ return {};
165
+ }
166
+ },
167
+ type: {
168
+ type: String,
169
+ default: ''
170
+ },
171
+ display: Boolean
172
+ },
173
+ inheritAttrs: false,
174
+ data() {
175
+ return {
176
+ pressLoading: false,
177
+ pressTableList: [],
178
+ circularData: [],
179
+ selectList: [],
180
+ flowHeight: '',
181
+ presetHeight: '',
182
+ signHeight: '',
183
+ splitReadingHeight: '',
184
+ circularHeight: '',
185
+ untreatedReadHeight: '',
186
+ processedReadHeight: '',
187
+ untreatedReadData: [],
188
+ processedReadData: [],
189
+ hasCircularReadWithdrawAuthority: false,
190
+ currentPage: 1,
191
+ pageSize: 20,
192
+ flowListCount: {},
193
+ currentUserHasPresetInfoAuth: false,
194
+ pressThead: [
195
+ {
196
+ title: '催办节点',
197
+ align: 'center',
198
+ sortable: true,
199
+ field: 'urge_item'
200
+ },
201
+ {
202
+ title: '催办人名称',
203
+ sortable: true,
204
+ align: 'center',
205
+ field: 'urge_man_name'
206
+ },
207
+ {
208
+ title: '催办时间',
209
+ sortable: true,
210
+ align: 'center',
211
+ field: 'urge_time'
212
+ },
213
+ {
214
+ title: '被催办人名称',
215
+ align: 'center',
216
+ sortable: true,
217
+ field: 'urged_man_name'
218
+ }
219
+ ],
220
+ wfpendingid: '',
221
+ showFileList: false,
222
+ flowData: [],
223
+ splitReadingData: [],
224
+ presetData: [],
225
+ signData: [],
226
+ loading: '', //加载中
227
+ preset_type: [], //预设类型
228
+ showPress: false, //查看催办记录弹窗
229
+ modify: false,
230
+ formData: { reason: '' },
231
+ formItemList: [
232
+ {
233
+ name: 'reason',
234
+ label: '删除原因',
235
+ type: 'textarea',
236
+ placeholder: '请输入删除原因',
237
+ rules: {
238
+ required: true,
239
+ message: '请输入删除原因',
240
+ trigger: 'blur'
241
+ },
242
+ value: '',
243
+ rows: 5
244
+ },
245
+ {
246
+ type: 'submit',
247
+ skin: 'lay-form-btns',
248
+ contents: [
249
+ {
250
+ type: 'primary',
251
+ plain: true,
252
+ text: '保存',
253
+ event: 'confirm'
254
+ }
255
+ ]
256
+ }
257
+ ],
258
+ delLoading: false,
259
+ showDel: false,
260
+ attachmentPaperClipCssStyle: '',
261
+ is_edit: [], //是否可编辑
262
+ flowTableInfo: {
263
+ adjunctCode: '',
264
+ hasAgent: '1' //是否展示代办人 1:展示 0:不展示
265
+ },
266
+ show: false,
267
+ taskReadName: '', //非流程列表名称
268
+ options: [
269
+ { label: '时间排序', value: '1' },
270
+ { label: '部门排序', value: '2' },
271
+ { label: '树形排序', value: '3' }
272
+ ],
273
+ isShort: 0, //是否隐藏筛选
274
+ viewType: '1', //排序方式
275
+ flowTableList: [], //流程列表
276
+ fyTableList: [], //分阅列表
277
+ showSuggest: 'all', //筛选显示数据
278
+ presetInfoListHiddenColumns: '', //隐藏表格展示数据
279
+ canDelete: false, //是否展示操作按钮
280
+ historyId: '',
281
+ sidx: '',
282
+ sord: '',
283
+ total: 0
284
+ };
285
+ },
286
+ computed: {
287
+ toolbars() {
288
+ return {
289
+ flow: [
290
+ {
291
+ type: 'text',
292
+ contents: '流程列表'
293
+ },
294
+ {
295
+ type: 'search',
296
+ contents: [
297
+ {
298
+ name: 'showSuggest',
299
+ type: 'radio',
300
+ changeSearch: true,
301
+ data: [
302
+ {
303
+ value: 'all',
304
+ name: '显示全部',
305
+ checked: true
306
+ },
307
+ { value: 'have', name: '显示已填意见' }
308
+ ],
309
+ events: {
310
+ change: (key, value) => {
311
+ this.handleChange(key, value);
312
+ }
313
+ }
314
+ },
315
+ {
316
+ type: 'select',
317
+ placeholder: '请选择',
318
+ name: 'viewType',
319
+ width: '140px',
320
+ changeSearch: true,
321
+ events: {
322
+ change: (key, value) => {
323
+ this.handleChange(key, value);
324
+ }
325
+ },
326
+ data: [
327
+ {
328
+ value: 1,
329
+ selected: true,
330
+ name: '时间排序'
331
+ },
332
+ {
333
+ value: 2,
334
+ name: '部门排序'
335
+ },
336
+ {
337
+ value: 3,
338
+ name: '树形排序'
339
+ }
340
+ ]
341
+ }
342
+ ]
343
+ }
344
+ ],
345
+ preset: [
346
+ {
347
+ type: 'text',
348
+ contents: '预设列表'
349
+ }
350
+ ],
351
+ sign: [
352
+ {
353
+ type: 'button',
354
+ contents: [
355
+ {
356
+ text: '生成处理签',
357
+ type: 'primary'
358
+ }
359
+ ]
360
+ }
361
+ ],
362
+ splitReading: [
363
+ {
364
+ type: 'text',
365
+ contents:
366
+ (this.taskReadName ? this.taskReadName : '非流程') + '列表'
367
+ }
368
+ ],
369
+ circular: [
370
+ {
371
+ type: 'text',
372
+ contents: '传阅列表'
373
+ }
374
+ ],
375
+ untreatedRead: [
376
+ {
377
+ type: 'text',
378
+ contents: '未处理分阅列表'
379
+ },
380
+ {
381
+ type: 'button',
382
+ contents: [
383
+ {
384
+ text: '撤销分阅',
385
+ fun: 'recallRead'
386
+ }
387
+ ]
388
+ }
389
+ ],
390
+ processedRead: [
391
+ {
392
+ type: 'text',
393
+ contents: '已处理分阅列表'
394
+ }
395
+ ]
396
+ // Reading situation
397
+ };
398
+ },
399
+ pageInfo() {
400
+ return {
401
+ pageNum: this.currentPage,
402
+ pageSize: this.pageSize,
403
+ totalCount: this.total
404
+ };
405
+ },
406
+ theads() {
407
+ const _that = this;
408
+ return {
409
+ flow: [
410
+ {
411
+ label: '经办部门',
412
+ field: 'deptid',
413
+ align: 'center',
414
+ key: 'jbbm',
415
+ showOverflowTooltip: true,
416
+ width: this.theadWidth.deptid || 150,
417
+ render: (h, params) => {
418
+ return h(
419
+ 'span',
420
+ {},
421
+ params.row.doDeptName
422
+ ? params.row.doDeptName
423
+ : params.row.deptName
424
+ );
425
+ }
426
+ },
427
+ {
428
+ label: '步骤',
429
+ field: 'itemname',
430
+ align: 'center',
431
+ key: 'bz',
432
+ showOverflowTooltip: true,
433
+ width: this.theadWidth.itemname || 110
434
+ },
435
+ {
436
+ label: '办理人',
437
+ field: 'userName',
438
+ align: 'center',
439
+ key: 'blr',
440
+ showOverflowTooltip: true,
441
+ width: this.theadWidth.userName || 110
442
+ },
443
+ {
444
+ label: '办理人部门',
445
+ field: 'deptName',
446
+ align: 'center',
447
+ showOverflowTooltip: true,
448
+ key: 'blrbm',
449
+ width: this.theadWidth.deptName || 110
450
+ },
451
+ {
452
+ label: '状态',
453
+ field: 'pendstate',
454
+ key: 'zt',
455
+ align: 'center',
456
+ showOverflowTooltip: true,
457
+ width: this.theadWidth.pendstate || 80,
458
+ render: (h, params) => {
459
+ return h('span', {
460
+ style: {
461
+ color:
462
+ params.row.pendstate == 0 || params.row.pendstate == 3
463
+ ? 'red'
464
+ : params.row.pendstate == 1
465
+ ? 'green'
466
+ : 'deepskyblue'
467
+ },
468
+ domProps: { innerHTML: params.row.querykeywords }
469
+ });
470
+ }
471
+ },
472
+ {
473
+ label: '办理意见',
474
+ field: 'doresult',
475
+ align: 'center',
476
+ width: this.theadWidth.doresult,
477
+ showOverflowTooltip: true,
478
+ key: 'blyj',
479
+ render: (h, params) => {
480
+ if (
481
+ params.row.doresult &&
482
+ (params.row.doresult.startsWith('http') ||
483
+ params.row.doresult.startsWith('https'))
484
+ ) {
485
+ return h('img', {
486
+ attrs: { src: params.row.doresult },
487
+ style: { width: '100px', height: '100px' }
488
+ });
489
+ } else {
490
+ return h('span', {}, [
491
+ params.row.doresult
492
+ ? params.row.doresult + (params.row.handleInfo ? '&' : '')
493
+ : '',
494
+ h(
495
+ 'span',
496
+ { style: { color: '#A5A5A5', marginLeft: '2px' } },
497
+ params.row.handleInfo || ''
498
+ )
499
+ ]);
500
+ }
501
+ }
502
+ },
503
+ {
504
+ label: '验签',
505
+ field: 'authTypeStr',
506
+ align: 'center',
507
+ key: 'yq',
508
+ showOverflowTooltip: true,
509
+ width: this.theadWidth.authTypeStr || 70,
510
+ render: (h, params) => {
511
+ return h(
512
+ 'span',
513
+ { style: { color: 'deepskyblue' } },
514
+ params.row.authTypeStr
515
+ );
516
+ }
517
+ },
518
+ {
519
+ label: '附件',
520
+ key: 'fj',
521
+ field: 'hasAdjunct',
522
+ align: 'center',
523
+ showOverflowTooltip: true,
524
+ width: this.theadWidth.hasAdjunct || 70,
525
+ render: (h, params) => {
526
+ if (params.row.hasAdjunct) {
527
+ return h('span', {
528
+ style: _that.attachmentPaperClipCssStyle
529
+ ? _that.attachmentPaperClipCssStyle
530
+ : { color: 'red', fontSize: '20px' },
531
+ class: 'iconfont es-icon-fujian'
532
+ });
533
+ } else {
534
+ return h('span', {}, '');
535
+ }
536
+ }
537
+ },
538
+ {
539
+ label: '时间',
540
+ field: 'doetime',
541
+ align: 'center',
542
+ key: 'sj',
543
+ showOverflowTooltip: true,
544
+ width: this.theadWidth.doetime || 150,
545
+ render: (h, params) => {
546
+ return h(
547
+ 'span',
548
+ {},
549
+ params.row.doetime
550
+ ? util.formatDate(params.row.doetime, 'yyyy-MM-dd HH:mm')
551
+ : ''
552
+ );
553
+ }
554
+ },
555
+ {
556
+ label: '代办人',
557
+ field: 'douserid',
558
+ align: 'center',
559
+ key: 'dbr',
560
+ showOverflowTooltip: true,
561
+ width: this.theadWidth.douserid || 80,
562
+ hide: _that.flowTableInfo.hasAgent != '1'
563
+ },
564
+ {
565
+ label: '催办',
566
+ field: 'pressTimes',
567
+ align: 'center',
568
+ key: 'cb',
569
+ showOverflowTooltip: true,
570
+ width: this.theadWidth.pressTimes || 150,
571
+ render: (h, params) => {
572
+ return h(
573
+ 'span',
574
+ { style: 'color:deepskyblue;cursor: pointer;' },
575
+ params.row.pressTimes
576
+ );
577
+ }
578
+ },
579
+ {
580
+ title: '操作',
581
+ type: 'handle',
582
+ width: this.modify ? '130' : '100',
583
+ template: '',
584
+ hide:this.hideBtn,
585
+ events: [
586
+ {
587
+ text: '删除',
588
+ rules: (rows) => {
589
+ return rows.canDelete;
590
+ }
591
+ }
592
+ // {
593
+ // text: '修改',
594
+ // rules: (rows) => {
595
+ // return this.modify && rows.pendstate == 2;
596
+ // }
597
+ // }
598
+ ]
599
+ }
600
+ ],
601
+ preset: this.thead,
602
+ splitReading: [
603
+ {
604
+ label: '经办部门',
605
+ field: 'deptid',
606
+ key: 'jbbm',
607
+ align: 'center',
608
+ showOverflowTooltip: true,
609
+ width: this.theadWidth.deptid || 150
610
+ },
611
+ {
612
+ label: '步骤',
613
+ field: 'itemname',
614
+ align: 'center',
615
+ key: 'bz',
616
+ showOverflowTooltip: true,
617
+ width: this.theadWidth.itemname || 110
618
+ },
619
+ {
620
+ label: '办理人',
621
+ field: 'userName',
622
+ align: 'center',
623
+ key: 'blr',
624
+ showOverflowTooltip: true,
625
+ width: this.theadWidth.userName || 110
626
+ },
627
+ {
628
+ label: '状态',
629
+ field: 'pendstate',
630
+ align: 'center',
631
+ key: 'zt',
632
+ showOverflowTooltip: true,
633
+ width: this.theadWidth.pendstate || 80,
634
+ render: (h, params) => {
635
+ return h('span', {
636
+ style: {
637
+ color:
638
+ params.row.pendstate == 0 || params.row.pendstate == 3
639
+ ? 'red'
640
+ : params.row.pendstate == 1
641
+ ? 'green'
642
+ : 'deepskyblue'
643
+ },
644
+ domProps: { innerHTML: params.row.querykeywords }
645
+ });
646
+ }
647
+ },
648
+ {
649
+ label: '办理意见',
650
+ field: 'doresult',
651
+ align: 'center',
652
+ key: 'blyj',
653
+ width: this.theadWidth.doresult,
654
+ showOverflowTooltip: true,
655
+ render: (h, params) => {
656
+ if (
657
+ params.row.doresult &&
658
+ (params.row.doresult.startsWith('http') ||
659
+ params.row.doresult.startsWith('https'))
660
+ ) {
661
+ return h('img', {
662
+ attrs: { src: params.row.doresult },
663
+ style: { width: '100px', height: '100px' }
664
+ });
665
+ } else {
666
+ return h('span', {}, [
667
+ params.row.doresult
668
+ ? params.row.doresult + (params.row.handleInfo ? '&' : '')
669
+ : '',
670
+ h(
671
+ 'span',
672
+ { style: { color: '#A5A5A5', marginLeft: '2px' } },
673
+ params.row.handleInfo || ''
674
+ )
675
+ ]);
676
+ }
677
+ }
678
+ },
679
+ {
680
+ label: '验签',
681
+ field: 'authTypeStr',
682
+ align: 'center',
683
+ key: 'yq',
684
+ showOverflowTooltip: true,
685
+ width: this.theadWidth.authTypeStr || 70,
686
+ render: (h, params) => {
687
+ return h(
688
+ 'span',
689
+ { style: { color: 'deepskyblue' } },
690
+ params.row.authTypeStr
691
+ );
692
+ }
693
+ },
694
+ {
695
+ label: '附件',
696
+ field: 'hasAdjunct',
697
+ align: 'center',
698
+ key: 'fj',
699
+ showOverflowTooltip: true,
700
+ width: this.theadWidth.hasAdjunct || 70,
701
+ render: (h, params) => {
702
+ if (params.row.hasAdjunct) {
703
+ return h('span', {
704
+ style: _that.attachmentPaperClipCssStyle
705
+ ? _that.attachmentPaperClipCssStyle
706
+ : { color: 'red', fontSize: '20px' },
707
+ class: 'iconfont es-icon-fujian'
708
+ });
709
+ } else {
710
+ return h('span', {}, '');
711
+ }
712
+ }
713
+ },
714
+ {
715
+ label: '时间',
716
+ field: 'doetime',
717
+ align: 'center',
718
+ key: 'sj',
719
+ showOverflowTooltip: true,
720
+ width: this.theadWidth.doetime || 150,
721
+ render: (h, params) => {
722
+ return h(
723
+ 'span',
724
+ {},
725
+ params.row.doetime
726
+ ? util.formatDate(params.row.doetime, 'yyyy-MM-dd HH:mm')
727
+ : ''
728
+ );
729
+ }
730
+ },
731
+ {
732
+ label: '代办人',
733
+ field: 'douserid',
734
+ align: 'center',
735
+ key: 'dbr',
736
+ showOverflowTooltip: true,
737
+ width: this.theadWidth.douserid || 80,
738
+ hide: _that.flowTableInfo.hasAgent != '1'
739
+ },
740
+ {
741
+ label: '催办',
742
+ field: 'pressTimes',
743
+ align: 'center',
744
+ key: 'cb',
745
+ showOverflowTooltip: true,
746
+ width: this.theadWidth.pressTimes || 150,
747
+ render: (h, params) => {
748
+ return h(
749
+ 'span',
750
+ { style: 'color:deepskyblue;cursor: pointer;' },
751
+ params.row.pressTimes
752
+ );
753
+ }
754
+ },
755
+ {
756
+ title: '操作',
757
+ type: 'handle',
758
+ width: '100',
759
+ template: '',
760
+ hide:this.hideBtn,
761
+ events: [
762
+ {
763
+ text: '删除',
764
+ rules: (rows) => {
765
+ return rows.canDelete;
766
+ }
767
+ }
768
+ ]
769
+ }
770
+ ],
771
+ circular: [
772
+ {
773
+ label: '发起人',
774
+ field: 'circularReadInitiatorName',
775
+ align: 'center',
776
+ key: 'fqr',
777
+ showOverflowTooltip: true,
778
+ width: this.theadWidth.circularReadInitiatorName || 150
779
+ },
780
+ {
781
+ label: '传阅部门',
782
+ field: 'circularReadOrgName',
783
+ align: 'center',
784
+ key: 'cybm',
785
+ showOverflowTooltip: true,
786
+ width: this.theadWidth.circularReadOrgName || 110
787
+ },
788
+ {
789
+ label: '传阅人',
790
+ field: 'userName',
791
+ align: 'center',
792
+ key: 'cyr',
793
+ showOverflowTooltip: true,
794
+ width: this.theadWidth.userName || 110
795
+ },
796
+ {
797
+ label: '步骤',
798
+ field: 'itemname',
799
+ align: 'center',
800
+ showOverflowTooltip: true,
801
+ key: 'bz',
802
+ width: this.theadWidth.itemname || 110
803
+ },
804
+ {
805
+ label: '状态',
806
+ field: 'pendstate',
807
+ key: 'zt',
808
+ align: 'center',
809
+ showOverflowTooltip: true,
810
+ width: this.theadWidth.pendstate || 140,
811
+ render: (h, params) => {
812
+ return h('span', {
813
+ style: {
814
+ color:
815
+ params.row.pendstate == 0 || params.row.pendstate == 3
816
+ ? 'red'
817
+ : params.row.pendstate == 1
818
+ ? 'green'
819
+ : 'deepskyblue',
820
+ cursor: this.hasCircularReadWithdrawAuthority
821
+ ? 'pointer'
822
+ : 'unset'
823
+ },
824
+ domProps: {
825
+ innerHTML:
826
+ params.row.querykeywords +
827
+ (this.hasCircularReadWithdrawAuthority
828
+ ? `<span style="color:#7AB0D5">(撤回)</span>`
829
+ : '')
830
+ }
831
+ });
832
+ }
833
+ },
834
+ {
835
+ label: '送达时间',
836
+ field: 'createtime',
837
+ align: 'center',
838
+ key: 'sdsj',
839
+ showOverflowTooltip: true,
840
+ width: this.theadWidth.createtime || 170
841
+ },
842
+ {
843
+ label: '办理时间',
844
+ field: 'doetime',
845
+ align: 'center',
846
+ key: 'blsj',
847
+ showOverflowTooltip: true,
848
+ width: this.theadWidth.doetime || 150
849
+ },
850
+
851
+ {
852
+ label: '附件',
853
+ key: 'fj',
854
+ field: 'hasAdjunct',
855
+ align: 'center',
856
+ showOverflowTooltip: true,
857
+ width: this.theadWidth.hasAdjunct || 70,
858
+ render: (h, params) => {
859
+ if (params.row.hasAdjunct) {
860
+ return h('span', {
861
+ style: _that.attachmentPaperClipCssStyle
862
+ ? _that.attachmentPaperClipCssStyle
863
+ : { color: 'red', fontSize: '20px' },
864
+ class: 'iconfont es-icon-fujian'
865
+ });
866
+ } else {
867
+ return h('span', {}, '');
868
+ }
869
+ }
870
+ },
871
+ {
872
+ label: '提醒',
873
+ field: 'pressTimes',
874
+ align: 'center',
875
+ key: 'tx',
876
+ showOverflowTooltip: true,
877
+ width: this.theadWidth.pressTimes || 150,
878
+ render: (h, params) => {
879
+ return h(
880
+ 'span',
881
+ { style: 'color:deepskyblue;cursor: pointer;' },
882
+ params.row.pressTimes
883
+ );
884
+ }
885
+ },
886
+ {
887
+ label: '阅结意见 & 说明',
888
+ field: 'doresult',
889
+ align: 'center',
890
+ width: this.theadWidth.doresult,
891
+ showOverflowTooltip: true,
892
+ key: 'blyj',
893
+ render: (h, params) => {
894
+ if (
895
+ params.row.doresult &&
896
+ (params.row.doresult.startsWith('http') ||
897
+ params.row.doresult.startsWith('https'))
898
+ ) {
899
+ return h('img', {
900
+ attrs: { src: params.row.doresult },
901
+ style: { width: '100px', height: '100px' }
902
+ });
903
+ } else {
904
+ return h('span', {}, [
905
+ params.row.doresult
906
+ ? params.row.doresult + (params.row.handleInfo ? '&' : '')
907
+ : '',
908
+ h(
909
+ 'span',
910
+ { style: { color: '#A5A5A5', marginLeft: '2px' } },
911
+ params.row.handleInfo || ''
912
+ )
913
+ ]);
914
+ }
915
+ }
916
+ }
917
+ ],
918
+ untreatedRead: [
919
+ {
920
+ label: '步骤',
921
+ field: 'itemid',
922
+ align: 'center',
923
+ key: 'bz',
924
+ showOverflowTooltip: true,
925
+ width: this.theadWidth.itemid || 110
926
+ },
927
+ {
928
+ label: '办理人',
929
+ field: 'userName',
930
+ align: 'center',
931
+ key: 'blr',
932
+ showOverflowTooltip: true,
933
+ width: this.theadWidth.userName
934
+ },
935
+ {
936
+ label: '办理状态',
937
+ field: 'pendstate',
938
+ key: 'blzt',
939
+ align: 'center',
940
+ showOverflowTooltip: true,
941
+ width: this.theadWidth.pendstate || 110,
942
+ render: (h, params) => {
943
+ return h('span', {
944
+ style: {
945
+ color:
946
+ params.row.pendstate == 0 || params.row.pendstate == 3
947
+ ? 'red'
948
+ : params.row.pendstate == 1
949
+ ? 'green'
950
+ : 'deepskyblue'
951
+ },
952
+ domProps: { innerHTML: params.row.querykeywords }
953
+ });
954
+ }
955
+ },
956
+ {
957
+ label: '创建时间',
958
+ field: 'createtime',
959
+ align: 'center',
960
+ key: 'cjsj',
961
+ showOverflowTooltip: true,
962
+ width: this.theadWidth.createtime || 150,
963
+ render: (h, params) => {
964
+ return h(
965
+ 'span',
966
+ {},
967
+ params.row.doetime
968
+ ? util.formatDate(params.row.createtime, 'yyyy-MM-dd HH:mm')
969
+ : ''
970
+ );
971
+ }
972
+ }
973
+ ],
974
+ processedRead: [
975
+ {
976
+ label: '步骤',
977
+ field: 'itemid',
978
+ align: 'center',
979
+ key: 'bz',
980
+ showOverflowTooltip: true,
981
+ width: this.theadWidth.itemid || 110
982
+ },
983
+ {
984
+ label: '办理人',
985
+ field: 'userName',
986
+ align: 'center',
987
+ key: 'blr',
988
+ showOverflowTooltip: true,
989
+ width: this.theadWidth.userName
990
+ },
991
+ {
992
+ label: '办理状态',
993
+ field: 'pendstate',
994
+ key: 'blzt',
995
+ align: 'center',
996
+ showOverflowTooltip: true,
997
+ width: this.theadWidth.pendstate || 110,
998
+ render: (h, params) => {
999
+ return h('span', {
1000
+ style: {
1001
+ color:
1002
+ params.row.pendstate == 0 || params.row.pendstate == 3
1003
+ ? 'red'
1004
+ : params.row.pendstate == 1
1005
+ ? 'green'
1006
+ : 'deepskyblue'
1007
+ },
1008
+ domProps: { innerHTML: params.row.querykeywords }
1009
+ });
1010
+ }
1011
+ },
1012
+ {
1013
+ label: '办理时间',
1014
+ field: 'doetime',
1015
+ align: 'center',
1016
+ key: 'blsj',
1017
+ showOverflowTooltip: true,
1018
+ width: this.theadWidth.doetime || 150,
1019
+ render: (h, params) => {
1020
+ return h(
1021
+ 'span',
1022
+ {},
1023
+ params.row.doetime
1024
+ ? util.formatDate(params.row.doetime, 'yyyy-MM-dd HH:mm')
1025
+ : ''
1026
+ );
1027
+ }
1028
+ },
1029
+ {
1030
+ label: '代办人',
1031
+ field: 'douserid',
1032
+ align: 'center',
1033
+ key: 'dbr',
1034
+ showOverflowTooltip: true,
1035
+ width: this.theadWidth.douserid
1036
+ },
1037
+ {
1038
+ label: '意见',
1039
+ field: 'doresult',
1040
+ align: 'center',
1041
+ key: 'yj',
1042
+ showOverflowTooltip: true,
1043
+ width: this.theadWidth.doresult
1044
+ }
1045
+ ]
1046
+ };
1047
+ },
1048
+ content() {
1049
+ const _that = this;
1050
+ let newContents = JSON.parse(JSON.stringify(this.contents));
1051
+ if (this.contents.indexOf('circular') != -1) {
1052
+ newContents = newContents.filter((item) => item != 'splitReading');
1053
+ }
1054
+ if (newContents.indexOf('readingSituation') != -1) {
1055
+ newContents = ['untreatedRead', 'processedRead'];
1056
+ }
1057
+ let contents = newContents.map((item) => {
1058
+ if (typeof item === 'string') {
1059
+ let data = [];
1060
+ if (_that.headFields.length > 0) {
1061
+ _that.headFields.map((headFiled) => {
1062
+ if (headFiled.showDefault) {
1063
+ _that.theads[item].map((theadItem) => {
1064
+ if (theadItem.field === headFiled.field) {
1065
+ data.push({ ...theadItem, ...headFiled });
1066
+ }
1067
+ });
1068
+ } else {
1069
+ data.push(headFiled);
1070
+ }
1071
+ });
1072
+ _that.theads[item].map((x) => {
1073
+ if (x.type == 'handle') {
1074
+ data.push(x);
1075
+ }
1076
+ });
1077
+ }
1078
+ return {
1079
+ type: item,
1080
+ checkbox: newContents.indexOf('untreatedRead') != -1,
1081
+ toolbar: this.toolbars[item],
1082
+ thead: data.length > 0 ? data : this.theads[item],
1083
+ showFormBtn: false
1084
+ };
1085
+ } else {
1086
+ if (!Object.prototype.hasOwnProperty.call(item, 'toolbar')) {
1087
+ let toolbars = this.toolbars[item.type];
1088
+ return { ...item, toolbars };
1089
+ }
1090
+ if (!Object.prototype.hasOwnProperty.call(item, 'thead')) {
1091
+ let thead = this.theads[item.type];
1092
+ return { ...item, thead };
1093
+ }
1094
+ return item;
1095
+ }
1096
+ });
1097
+ return contents;
1098
+ },
1099
+ newToolbar() {
1100
+ if (this.toolbar && this.toolbar.length > 0) {
1101
+ return this.toolbar;
1102
+ } else {
1103
+ return [];
1104
+ }
1105
+ },
1106
+ thead() {
1107
+ let table = [
1108
+ {
1109
+ title: '步骤',
1110
+ align: 'center',
1111
+ width: this.theadWidth.nodeName || '100',
1112
+ field: 'nodeName'
1113
+ },
1114
+ {
1115
+ title: '预设办理人',
1116
+ width: this.theadWidth.presetUserName || '120',
1117
+ align: 'center',
1118
+ field: 'presetUserName'
1119
+ },
1120
+ {
1121
+ title: '是否可编辑',
1122
+ key: 'sfkbj',
1123
+ align: 'center',
1124
+ width: this.theadWidth.isEdit || '100',
1125
+ render: (h, params) => {
1126
+ return h('span', this.getCodeValue(params.row.isEdit, 'is_edit'));
1127
+ },
1128
+ field: 'isEdit'
1129
+ },
1130
+ {
1131
+ key: 'zt',
1132
+ title: '状态',
1133
+ width: this.theadWidth.statusName || '80',
1134
+ align: 'center',
1135
+ field: 'statusName'
1136
+ },
1137
+ {
1138
+ title: '预设类型',
1139
+ key: 'yslx',
1140
+ width: this.theadWidth.presetType || '120',
1141
+ align: 'center',
1142
+ render: (h, params) => {
1143
+ return h(
1144
+ 'span',
1145
+ this.getCodeValue(params.row.presetType, 'preset_type')
1146
+ );
1147
+ },
1148
+ field: 'presetType'
1149
+ },
1150
+ {
1151
+ title: '流程名称',
1152
+ key: 'lcmc',
1153
+ width: this.theadWidth.processDefName,
1154
+ align: 'center',
1155
+ field: 'processDefName'
1156
+ },
1157
+ {
1158
+ title: '上一步骤',
1159
+ key: 'sybz',
1160
+ align: 'center',
1161
+ width: this.theadWidth.lastNodeName,
1162
+ field: 'lastNodeName'
1163
+ },
1164
+ {
1165
+ title: '创建步骤',
1166
+ key: 'cjbz',
1167
+ align: 'center',
1168
+ width: this.theadWidth.operationNodeName,
1169
+ field: 'operationNodeName'
1170
+ },
1171
+ {
1172
+ title: '创建人',
1173
+ key: 'cjr',
1174
+ width: this.theadWidth.creatorName || '120',
1175
+ align: 'center',
1176
+ field: 'creatorName'
1177
+ },
1178
+ {
1179
+ title: '创建时间',
1180
+ width: this.theadWidth.createTime || '150',
1181
+ key: 'cjsj',
1182
+ align: 'center',
1183
+ render: (h, params) => {
1184
+ return h(
1185
+ 'span',
1186
+ util.formatDate(params.row.createTime, 'yyyy-MM-dd HH:mm')
1187
+ );
1188
+ },
1189
+ field: 'createTime'
1190
+ },
1191
+ {
1192
+ title: '操作区域',
1193
+ type: 'handle',
1194
+ align: 'center',
1195
+ width: '120',
1196
+ events: [
1197
+ {
1198
+ text: '置为失效'
1199
+ }
1200
+ ]
1201
+ }
1202
+ ];
1203
+ if (
1204
+ this.presetInfoListHiddenColumns != undefined &&
1205
+ this.presetInfoListHiddenColumns != ''
1206
+ ) {
1207
+ table = table.filter(
1208
+ (items) => this.presetInfoListHiddenColumns.indexOf(items.key) == -1
1209
+ );
1210
+ }
1211
+ if (!this.canDelete) table.splice(table.length - 1, 1);
1212
+ return table;
1213
+ }
1214
+ },
1215
+ async mounted() {
1216
+ this.loading = util.loading(this.$loading, '加载中...');
1217
+ if (this.contents.indexOf('readingSituation') != -1) {
1218
+ await this.getFyListJson(1);
1219
+ await this.getFyListJson(2);
1220
+ this.getListCount(this.flowListCount);
1221
+ this.show = true;
1222
+ } else {
1223
+ this.getFlowList();
1224
+ }
1225
+ this.getSysInfo('preset_type');
1226
+ this.getSysInfo('is_edit');
1227
+ this.getListInfo();
1228
+ },
1229
+
1230
+ methods: {
1231
+ recallReadFun() {
1232
+ const _that = this;
1233
+ let pendingIds = _that.selectList.map((x) => x.id).join(',');
1234
+ let params = {
1235
+ url: taskReadWithDraw,
1236
+ params: {
1237
+ pendingIds
1238
+ }
1239
+ };
1240
+ _that.loading = util.loading(_that.$loading, '撤销中...');
1241
+ util.ajax(params).then(async (res) => {
1242
+ _that.loading.close();
1243
+ if (res.rCode == 0 || res.status == 'success') {
1244
+ _that.$message.success('撤销成功!');
1245
+ await _that.getFyListJson(1);
1246
+ _that.getListCount(_that.flowListCount);
1247
+ } else {
1248
+ _that.$message.error(res.message);
1249
+ }
1250
+ });
1251
+ },
1252
+ recallRead() {
1253
+ if (this.selectList.length == 0)
1254
+ return this.$message.warning('请选择需要撤销的分阅');
1255
+ this.$confirm('是否确认撤销选中的分阅?', '提示', {
1256
+ confirmButtonText: '确定',
1257
+ cancelButtonText: '取消',
1258
+ type: 'warning'
1259
+ }).then(() => {
1260
+ this.recallReadFun();
1261
+ });
1262
+ },
1263
+ handleSelectionChange(val) {
1264
+ this.selectList = val;
1265
+ },
1266
+ handledraw(pendedHistoryId) {
1267
+ let params = {
1268
+ url: circularReadWithdraw,
1269
+ params: { pendedHistoryId }
1270
+ };
1271
+ this.$confirm('是否确定撤回当前传阅', {
1272
+ confirmButtonText: '确定',
1273
+ cancelButtonText: '取消',
1274
+ type: 'warning'
1275
+ })
1276
+ .then(() => {
1277
+ this.loading = util.loading(this.$loading, '撤回中...');
1278
+ util.ajax(params).then((res) => {
1279
+ this.loading.close();
1280
+ if (res.rCode == 0) {
1281
+ this.$message({
1282
+ message: '撤回成功',
1283
+ type: 'success'
1284
+ });
1285
+ this.getCircularReadList();
1286
+ }
1287
+ });
1288
+ // _that.subMit(res.results,type)
1289
+ })
1290
+ .catch(() => {});
1291
+ },
1292
+ getCircularReadList() {
1293
+ const _that = this;
1294
+ let params = {
1295
+ url: pendedhistoryListWithCircularReadJson,
1296
+ params: { apprecordid: _that.businessId }
1297
+ };
1298
+ util.ajax(params).then((res) => {
1299
+ if (res.status == 'success' || res.rCode == 0) {
1300
+ _that.circularData = res.data.fyHistoryList;
1301
+ _that.hasCircularReadWithdrawAuthority =
1302
+ res.data.hasCircularReadWithdrawAuthority;
1303
+ _that.$nextTick(() => {
1304
+ _that.getListCount(_that.flowListCount);
1305
+ });
1306
+ }
1307
+ });
1308
+ },
1309
+ returnData(type) {
1310
+ switch (type) {
1311
+ case 'preset':
1312
+ this.flowListCount.preset = this.presetData.length;
1313
+ return this.presetData;
1314
+ case 'sign':
1315
+ this.flowListCount.sign = this.signData.length;
1316
+ return this.signData;
1317
+ case 'splitReading':
1318
+ this.flowListCount.splitReading = this.splitReadingData.length;
1319
+ return this.splitReadingData;
1320
+ case 'circular':
1321
+ this.flowListCount.circular = this.circularData.length;
1322
+ return this.circularData;
1323
+ case 'untreatedRead':
1324
+ this.flowListCount.untreatedRead = this.untreatedReadData.length;
1325
+ return this.untreatedReadData;
1326
+ case 'processedRead':
1327
+ this.flowListCount.processedRead = this.processedReadData.length;
1328
+ return this.processedReadData;
1329
+ default:
1330
+ this.flowListCount.flow = this.flowData.length;
1331
+ return this.flowData;
1332
+ }
1333
+ },
1334
+ handleCellClick(row, column) {
1335
+ if (column.property == 'hasAdjunct' && row.hasAdjunct) {
1336
+ this.showFile(row.wfpendingid);
1337
+ } else if (column.property == 'pressTimes') {
1338
+ this.goPress(row.id);
1339
+ } else if (
1340
+ column.property == 'pendstate' &&
1341
+ this.hasCircularReadWithdrawAuthority
1342
+ ) {
1343
+ this.handledraw(row.id);
1344
+ }
1345
+ },
1346
+ handleBtnClick(data) {
1347
+ // recallRead
1348
+ const { handle, row } = data;
1349
+ if (handle.text == '删除') {
1350
+ this.del(row.id);
1351
+ } else if (handle.fun == 'recallRead') {
1352
+ this[handle.fun]();
1353
+ }
1354
+ },
1355
+ /**
1356
+ * handleFormSubmit
1357
+ * @desc:删除节点点击事件
1358
+ * @param {Object} formData 点击删除的form数据
1359
+ * @author liufan
1360
+ * @date 2022年11月29日
1361
+ **/
1362
+ handleFormSubmit(formData) {
1363
+ this.delLoading = true;
1364
+ let params = {
1365
+ url: deleteFlow,
1366
+ method: 'POST',
1367
+ data: { id: this.historyId, reason: formData.reason }
1368
+ };
1369
+ util
1370
+ .ajax(params)
1371
+ .then((res) => {
1372
+ const { status, message } = res;
1373
+ this.delLoading = false;
1374
+ if (status === 'success') {
1375
+ this.$message.success('删除成功');
1376
+ this.showDel = false;
1377
+ this.handleChange();
1378
+ } else {
1379
+ this.$message.error(message || '系统错误,请联系管理员!');
1380
+ }
1381
+ })
1382
+ .catch((err) => {
1383
+ this.delLoading = false;
1384
+ if (err.message && err.message !== 'canceled') {
1385
+ this.$message.error(err.message);
1386
+ }
1387
+ });
1388
+ },
1389
+ /**
1390
+ * del
1391
+ * @desc:展示删除弹窗
1392
+ * @param {String} id 当前点击数据id
1393
+ * @author liufan
1394
+ * @date 2022年11月29日
1395
+ **/
1396
+ del(id) {
1397
+ this.historyId = id;
1398
+ this.showDel = true;
1399
+ },
1400
+ /**
1401
+ * handleCurrentChange
1402
+ * @desc:监听页码变化
1403
+ * @param {String} val 当前页
1404
+ * @author liufan
1405
+ * @date 2022年11月29日
1406
+ **/
1407
+ handleCurrentChange(val) {
1408
+ this.currentPage = val;
1409
+ this.getPressList();
1410
+ },
1411
+ /**
1412
+ * handleSizeChange
1413
+ * @desc:监听每页数据显示数量变化
1414
+ * @param {String} val 每页展示数量
1415
+ * @author liufan
1416
+ * @date 2022年11月29日
1417
+ **/
1418
+ handleSizeChange(val) {
1419
+ this.pageSize = val;
1420
+ this.getPressList();
1421
+ },
1422
+ /**
1423
+ * sortChange
1424
+ * @desc:监听排序变化
1425
+ * @param {Object} info 需要排序的字段及排序方式
1426
+ * @author liufan
1427
+ * @date 2022年11月29日
1428
+ **/
1429
+ sortChange(info) {
1430
+ let { prop, order } = info;
1431
+ this.sidx = prop;
1432
+ this.sord = order.replace('ending', '');
1433
+ this.getPressList();
1434
+ },
1435
+ /**
1436
+ * getPressList
1437
+ * @desc:催办列表数据
1438
+ * @author liufan
1439
+ * @date 2022年11月29日
1440
+ **/
1441
+ getPressList() {
1442
+ const { historyId, pageSize, sidx, sord, currentPage } = this;
1443
+ this.pressLoading = true;
1444
+ let params = {
1445
+ url: pressListJson,
1446
+ params: { historyId },
1447
+ method: 'POST',
1448
+ data: { page: currentPage, rows: pageSize, sidx, sord, historyId }
1449
+ };
1450
+ util
1451
+ .ajax(params)
1452
+ .then((res) => {
1453
+ this.pressTableList = res.data;
1454
+ this.total = res.totalrecords;
1455
+ this.pressLoading = false;
1456
+ })
1457
+ .catch((err) => {
1458
+ this.pressLoading = false;
1459
+ if (err.message && err.message !== 'canceled') {
1460
+ this.$message.error(err.message);
1461
+ }
1462
+ });
1463
+ },
1464
+ /**
1465
+ * goPress
1466
+ * @desc:催办列表查看
1467
+ * @param {String} id 催办列表id
1468
+ * @author liufan
1469
+ * @date 2022年11月29日
1470
+ **/
1471
+ goPress(id) {
1472
+ this.historyId = id;
1473
+ this.showPress = true;
1474
+ this.getPressList();
1475
+ },
1476
+ /**
1477
+ * showFile
1478
+ * @desc:附件查看
1479
+ * @param {String} ownId 附件id
1480
+ * @author liufan
1481
+ * @date 2022年11月29日
1482
+ **/
1483
+ showFile(ownId) {
1484
+ this.wfpendingid = ownId;
1485
+ this.showFileList = true;
1486
+ },
1487
+ /**
1488
+ * handleChange
1489
+ * @desc:切换排序方式
1490
+ * @author liufan
1491
+ * @date 2022年11月22日
1492
+ **/
1493
+ handleChange(key, value) {
1494
+ if (value) {
1495
+ this[key] = value;
1496
+ }
1497
+ // this.show = false;
1498
+ this.loading = util.loading(this.$loading, '加载中...');
1499
+ this.getFlowList();
1500
+ },
1501
+ async getFyListJson(type) {
1502
+ let params = {
1503
+ url: fyListJson,
1504
+ params: {
1505
+ appRecordId: this.businessId,
1506
+ status: type
1507
+ }
1508
+ };
1509
+ await util.ajax(params).then((res) => {
1510
+ if (type == 1) {
1511
+ this.untreatedReadData = res.data;
1512
+ } else {
1513
+ this.processedReadData = res.data;
1514
+ }
1515
+ });
1516
+ },
1517
+ /**
1518
+ * getFlowList
1519
+ * @desc:获取流程列表
1520
+ * @author liufan
1521
+ * @date 2022年11月22日
1522
+ **/
1523
+ getFlowList() {
1524
+ let params = {
1525
+ url: pendedhistoryListJson,
1526
+ params: {
1527
+ apprecordid: this.businessId,
1528
+ pendingAttr: 0,
1529
+ viewType: this.viewType,
1530
+ showSuggest: this.showSuggest,
1531
+ ...this.params
1532
+ }
1533
+ };
1534
+ util
1535
+ .ajax(params)
1536
+ .then((res) => {
1537
+ const {
1538
+ status,
1539
+ message,
1540
+ data: {
1541
+ adjunctCode,
1542
+ wfHistoryList,
1543
+ fyHistoryList,
1544
+ hasAgent,
1545
+ isShort,
1546
+ modify,
1547
+ taskReadName
1548
+ }
1549
+ } = res;
1550
+ this.loading.close();
1551
+ if (status == 'success') {
1552
+ this.flowTableInfo.adjunctCode = adjunctCode;
1553
+ this.flowTableInfo.hasAgent = hasAgent;
1554
+ this.attachmentPaperClipCssStyle =
1555
+ res.data.attachmentPaperClipCssStyle;
1556
+ this.isShort = isShort;
1557
+ this.taskReadName = taskReadName;
1558
+ this.flowData = wfHistoryList;
1559
+ this.flowData.map((x) => {
1560
+ if (!x.deptid) {
1561
+ x.deptid = x.deptName;
1562
+ }
1563
+ });
1564
+ this.splitReadingData = fyHistoryList;
1565
+ this.modify = modify;
1566
+ this.show = true;
1567
+ if (this.height == 'auto') {
1568
+ this.$nextTick(() => {
1569
+ this.content.map((x) => {
1570
+ this[`${x.type}Height`] = this.$refs[x.type][0].offsetHeight;
1571
+ });
1572
+ });
1573
+ }
1574
+ if (this.contents.indexOf('circular') != -1) {
1575
+ this.getCircularReadList();
1576
+ } else {
1577
+ this.$nextTick(() => {
1578
+ this.getListCount(this.flowListCount);
1579
+ });
1580
+ }
1581
+ } else {
1582
+ this.$message.error(message || '系统错误,请联系管理员!');
1583
+ }
1584
+ })
1585
+ .catch((err) => {
1586
+ this.loading.close();
1587
+ if (err.message && err.message !== 'canceled') {
1588
+ this.$message.error(err.message);
1589
+ }
1590
+ this.show = true;
1591
+ });
1592
+ },
1593
+ /**
1594
+ * handleClick
1595
+ * @desc:表单点击事件
1596
+ * @param {Object} val 当前点击行数据及按钮
1597
+ * @author liufan
1598
+ * @date 2022年11月10日
1599
+ **/
1600
+ handleClick(val) {
1601
+ const {
1602
+ handle: { text },
1603
+ row: { id, status }
1604
+ } = val;
1605
+ if (text === '置为失效') {
1606
+ if (status == 0) {
1607
+ this.$confirm('您确定要置为失效吗?')
1608
+ .then(() => {
1609
+ this.loading = util.loading(this.$loading, '提交中...');
1610
+ let param = {
1611
+ url: deletePresetInfo,
1612
+ headers: { Accept: 'application/json,text/plain' },
1613
+ method: 'post',
1614
+ params: { id }
1615
+ };
1616
+ util
1617
+ .ajax(param)
1618
+ .then((res) => {
1619
+ const { status, message } = res;
1620
+ this.loading.close();
1621
+ if (status === 'success') {
1622
+ this.$message.success('操作成功');
1623
+ this.getListInfo();
1624
+ } else {
1625
+ this.$message.error(message || '系统错误,请联系管理员!');
1626
+ }
1627
+ })
1628
+ .catch((err) => {
1629
+ this.loading.close();
1630
+ if (err.message && err.message !== 'canceled') {
1631
+ this.$message.error(err.message);
1632
+ }
1633
+ });
1634
+ })
1635
+ .catch((e) => {
1636
+ // on cancel
1637
+ });
1638
+ } else {
1639
+ this.$message.warning('当前数据已为失效状态');
1640
+ }
1641
+ }
1642
+ },
1643
+ /**
1644
+ * getCodeValue
1645
+ * @desc:获取代码表过滤后的值
1646
+ * @param {String} value 展示数据的代码值
1647
+ * @param {String} type 代码表类型
1648
+ * @author liufan
1649
+ * @date 2022年11月10日
1650
+ **/
1651
+ getCodeValue(value, type) {
1652
+ let val = this[type].filter((item) => item.cciValue == value);
1653
+ return val[0].shortName;
1654
+ },
1655
+ /**
1656
+ * getSysInfo
1657
+ * @desc:获取代码表
1658
+ * @param {String} code 编码code值
1659
+ * @author liufan
1660
+ * @date 2022年11月10日
1661
+ **/
1662
+ getSysInfo(code) {
1663
+ let params = {
1664
+ url: findCodeValues,
1665
+ params: { ccCode: code }
1666
+ };
1667
+ util
1668
+ .ajax(params)
1669
+ .then((res) => {
1670
+ const { status, message, data } = res;
1671
+ if (status == 'success') {
1672
+ this[code] = data;
1673
+ } else {
1674
+ this.$message.error(message || '系统错误,请联系管理员!');
1675
+ }
1676
+ })
1677
+ .catch((e) => {});
1678
+ },
1679
+ /**
1680
+ * getListInfo
1681
+ * @desc:获取预设列表数据
1682
+ * @author liufan
1683
+ * @date 2022年11月10日
1684
+ **/
1685
+ getListInfo() {
1686
+ let param = {
1687
+ url: toPresetInfoListIndex,
1688
+ params: { apprecordid: this.businessId }
1689
+ };
1690
+ util
1691
+ .ajax(param)
1692
+ .then((res) => {
1693
+ const {
1694
+ status,
1695
+ message,
1696
+ data: {
1697
+ presetInfoList,
1698
+ presetInfoListHiddenColumns,
1699
+ canDelete,
1700
+ currentUserHasPresetInfoAuth
1701
+ }
1702
+ } = res;
1703
+ this.loading.close();
1704
+ if (status == 'success') {
1705
+ presetInfoList && (this.presetData = presetInfoList);
1706
+ this.presetInfoListHiddenColumns = presetInfoListHiddenColumns;
1707
+ this.currentUserHasPresetInfoAuth = currentUserHasPresetInfoAuth;
1708
+ this.canDelete = canDelete;
1709
+ } else {
1710
+ this.$message.error(message || '系统错误,请联系管理员!');
1711
+ }
1712
+ })
1713
+ .catch((err) => {
1714
+ this.loading.close();
1715
+ if (err.message && err.message !== 'canceled') {
1716
+ this.$message.error(err.message);
1717
+ }
1718
+ });
1719
+ }
1720
+ }
1721
+ };
1722
+ </script>
1723
+
1724
+ <style></style>