eoss-ui 0.6.50 → 0.6.52

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