eoss-ui 0.7.85 → 0.7.87

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 (160) hide show
  1. package/lib/button-group.js +155 -143
  2. package/lib/button.js +155 -143
  3. package/lib/calogin.js +155 -143
  4. package/lib/checkbox-group.js +157 -145
  5. package/lib/config/api.js +8 -0
  6. package/lib/data-table-form.js +157 -145
  7. package/lib/data-table.js +160 -148
  8. package/lib/date-picker.js +155 -143
  9. package/lib/dialog.js +155 -143
  10. package/lib/eoss-ui.common.js +1514 -786
  11. package/lib/flow-group.js +155 -143
  12. package/lib/flow-list.js +1060 -333
  13. package/lib/flow.js +565 -548
  14. package/lib/form.js +157 -145
  15. package/lib/handle-user.js +156 -144
  16. package/lib/handler.js +156 -144
  17. package/lib/icon.js +156 -144
  18. package/lib/index.js +1 -1
  19. package/lib/input-number.js +155 -143
  20. package/lib/input.js +155 -143
  21. package/lib/login.js +170 -158
  22. package/lib/main.js +502 -490
  23. package/lib/nav.js +155 -143
  24. package/lib/notify.js +158 -146
  25. package/lib/page.js +155 -143
  26. package/lib/pagination.js +155 -143
  27. package/lib/player.js +155 -143
  28. package/lib/qr-code.js +155 -143
  29. package/lib/radio-group.js +157 -145
  30. package/lib/retrial-auth.js +159 -147
  31. package/lib/select-ganged.js +157 -145
  32. package/lib/select.js +157 -145
  33. package/lib/selector-panel.js +173 -161
  34. package/lib/selector.js +157 -145
  35. package/lib/sizer.js +157 -145
  36. package/lib/steps.js +155 -143
  37. package/lib/switch.js +155 -143
  38. package/lib/table-form.js +155 -143
  39. package/lib/tabs.js +155 -143
  40. package/lib/theme-chalk/flow-list.css +1 -1
  41. package/lib/theme-chalk/index.css +1 -1
  42. package/lib/theme-chalk/login.css +1 -1
  43. package/lib/tips.js +156 -144
  44. package/lib/tree-group.js +155 -143
  45. package/lib/tree.js +156 -144
  46. package/lib/upload.js +168 -156
  47. package/lib/wujie.js +155 -143
  48. package/lib/wxlogin.js +155 -143
  49. package/package.json +161 -161
  50. package/packages/button-group/src/main.vue +346 -346
  51. package/packages/calogin/src/main.vue +412 -412
  52. package/packages/clients/src/main.vue +151 -151
  53. package/packages/data-table/src/column.vue +992 -992
  54. package/packages/data-table/src/main.vue +1840 -1840
  55. package/packages/flow/src/component/Circulate.vue +417 -417
  56. package/packages/flow/src/component/CommonOpinions.vue +376 -376
  57. package/packages/flow/src/component/CustomPreset.vue +324 -324
  58. package/packages/flow/src/component/FileList.vue +97 -97
  59. package/packages/flow/src/component/FreeCirculation.vue +244 -244
  60. package/packages/flow/src/component/Preset.vue +257 -257
  61. package/packages/flow/src/component/SendMsg.vue +242 -242
  62. package/packages/flow/src/component/SortFlow.vue +110 -110
  63. package/packages/flow/src/component/taskUnionExamine.vue +761 -761
  64. package/packages/flow/src/form.vue +123 -123
  65. package/packages/flow/src/freeStartFlow.vue +2855 -2855
  66. package/packages/flow/src/main.vue +4139 -4135
  67. package/packages/flow/src/processForm.vue +1680 -1671
  68. package/packages/flow/src/processReject.vue +309 -309
  69. package/packages/flow/src/reset.vue +946 -946
  70. package/packages/flow/src/selectUser.vue +1 -5
  71. package/packages/flow/src/startTaskRead.vue +695 -695
  72. package/packages/flow/src/supervise.vue +159 -159
  73. package/packages/flow/src/table.vue +58 -58
  74. package/packages/flow-group/src/main.vue +727 -727
  75. package/packages/flow-list/src/main.vue +2337 -1803
  76. package/packages/form/src/main.vue +3901 -3901
  77. package/packages/form/src/table.vue +1512 -1512
  78. package/packages/handle-user/src/main.vue +137 -137
  79. package/packages/handler/src/main.vue +496 -496
  80. package/packages/icon/src/main.vue +104 -104
  81. package/packages/login/src/main.vue +2087 -2087
  82. package/packages/login/src/resetPassword.vue +557 -557
  83. package/packages/main/src/default/userinfo.vue +503 -503
  84. package/packages/main/src/public/online.vue +89 -89
  85. package/packages/main/src/public/search.vue +464 -464
  86. package/packages/main/src/public/settings.vue +273 -273
  87. package/packages/main/src/simplicity/apps.vue +388 -388
  88. package/packages/main/src/simplicity/avatar.vue +82 -82
  89. package/packages/main/src/simplicity/handler.vue +158 -158
  90. package/packages/main/src/simplicity/index.vue +2328 -2328
  91. package/packages/main/src/simplicity/menu-list.vue +135 -135
  92. package/packages/main/src/simplicity/message.vue +293 -293
  93. package/packages/main/src/simplicity/notice.vue +222 -222
  94. package/packages/main/src/simplicity/sub-menu.vue +276 -276
  95. package/packages/main/src/simplicity/user.vue +259 -259
  96. package/packages/main/src/simplicity/userinfo.vue +401 -401
  97. package/packages/main/src/simplicityTop/apps.vue +388 -388
  98. package/packages/main/src/simplicityTop/avatar.vue +82 -82
  99. package/packages/main/src/simplicityTop/handler.vue +215 -215
  100. package/packages/main/src/simplicityTop/index.vue +2618 -2618
  101. package/packages/main/src/simplicityTop/lists.vue +84 -84
  102. package/packages/main/src/simplicityTop/menu-list.vue +135 -135
  103. package/packages/main/src/simplicityTop/message.vue +293 -293
  104. package/packages/main/src/simplicityTop/notice.vue +222 -222
  105. package/packages/main/src/simplicityTop/router-page.vue +45 -45
  106. package/packages/main/src/simplicityTop/sub-menu.vue +274 -274
  107. package/packages/main/src/simplicityTop/user.vue +259 -259
  108. package/packages/main/src/simplicityTop/userinfo.vue +401 -401
  109. package/packages/menu/src/main.vue +595 -595
  110. package/packages/nav/src/main.vue +351 -351
  111. package/packages/select/src/main.vue +782 -782
  112. package/packages/selector/src/main.vue +761 -761
  113. package/packages/selector-panel/src/main.vue +1036 -1036
  114. package/packages/selector-panel/src/selection.vue +174 -174
  115. package/packages/switch/src/main.vue +170 -170
  116. package/packages/theme-chalk/lib/flow-list.css +1 -1
  117. package/packages/theme-chalk/lib/index.css +1 -1
  118. package/packages/theme-chalk/lib/login.css +1 -1
  119. package/packages/theme-chalk/src/data-table.scss +297 -297
  120. package/packages/theme-chalk/src/flow-list.scss +55 -39
  121. package/packages/theme-chalk/src/flow.scss +373 -373
  122. package/packages/theme-chalk/src/form.scss +501 -501
  123. package/packages/theme-chalk/src/handler.scss +148 -148
  124. package/packages/theme-chalk/src/icon.scss +3452 -3452
  125. package/packages/theme-chalk/src/login.scss +1006 -1006
  126. package/packages/theme-chalk/src/main.scss +664 -664
  127. package/packages/theme-chalk/src/menu.scss +224 -224
  128. package/packages/theme-chalk/src/selector.scss +114 -114
  129. package/packages/theme-chalk/src/simplicity-top.scss +1845 -1845
  130. package/packages/theme-chalk/src/simplicity.scss +1403 -1403
  131. package/packages/theme-chalk/src/tree.scss +165 -165
  132. package/packages/theme-chalk/src/upload.scss +172 -172
  133. package/packages/tips/src/main.vue +141 -141
  134. package/packages/toolbar/src/main.vue +430 -430
  135. package/packages/upload/src/main.vue +1344 -1344
  136. package/packages/wujie/src/main.vue +146 -146
  137. package/src/config/api.js +348 -340
  138. package/src/index.js +163 -163
  139. package/src/utils/rules.js +18 -18
  140. package/packages/.DS_Store +0 -0
  141. package/packages/calogin/.DS_Store +0 -0
  142. package/packages/date-picker/.DS_Store +0 -0
  143. package/packages/date-picker/src/.DS_Store +0 -0
  144. package/packages/dialog/.DS_Store +0 -0
  145. package/packages/flow/.DS_Store +0 -0
  146. package/packages/flow/src/.DS_Store +0 -0
  147. package/packages/flow-list/.DS_Store +0 -0
  148. package/packages/form/.DS_Store +0 -0
  149. package/packages/icon/.DS_Store +0 -0
  150. package/packages/login/.DS_Store +0 -0
  151. package/packages/main/.DS_Store +0 -0
  152. package/packages/main/src/.DS_Store +0 -0
  153. package/packages/menu/.DS_Store +0 -0
  154. package/packages/select/.DS_Store +0 -0
  155. package/packages/selector/.DS_Store +0 -0
  156. package/packages/selector-panel/.DS_Store +0 -0
  157. package/packages/theme-chalk/src/.DS_Store +0 -0
  158. package/packages/upload/.DS_Store +0 -0
  159. package/src/.DS_Store +0 -0
  160. package/src/utils/.DS_Store +0 -0
@@ -1,1803 +1,2337 @@
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
- @cell-click="handleCellClick"
28
- :full="height !== 'auto'"
29
- v-bind="item"
30
- :data="
31
- showDoresult
32
- ? returnData(item.type).filter(
33
- (x) => x.doresult || x.handleInfo || x.pendstate != 2
34
- )
35
- : returnData(item.type)
36
- "
37
- @btn-click="handleBtnClick"
38
- @selection-change="handleSelectionChange"
39
- ></es-data-table>
40
- </div>
41
- </div>
42
- <es-dialog
43
- append-to-body
44
- :close-on-click-modal="false"
45
- title="查看附件"
46
- :visible.sync="showFileList"
47
- v-if="showFileList"
48
- >
49
- <FileList
50
- :ownId="wfpendingid"
51
- :code="flowTableInfo.adjunctCode"
52
- :deleted="false"
53
- :disabled="true"
54
- @cancel="showFileList = false"
55
- />
56
- </es-dialog>
57
- <es-dialog
58
- append-to-body
59
- :close-on-click-modal="false"
60
- title="查看催办记录"
61
- :visible.sync="showPress"
62
- height="500px"
63
- v-if="showPress"
64
- >
65
- <div style="height: 400px" v-loading="pressLoading">
66
- <es-data-table
67
- v-if="show"
68
- :data="pressTableList"
69
- :thead="pressThead"
70
- @page-size-change="handleSizeChange"
71
- @page-current-change="handleCurrentChange"
72
- stripe
73
- full
74
- style="width: 100%"
75
- @sort-change="sortChange"
76
- :page="pageInfo"
77
- />
78
- </div>
79
- </es-dialog>
80
- <es-dialog
81
- append-to-body
82
- :close-on-click-modal="false"
83
- :title="modalType == 'del' ? '删除' : '修改意见'"
84
- :visible.sync="showDel"
85
- height="auto"
86
- class="del-flow"
87
- v-if="showDel"
88
- >
89
- <es-form
90
- v-loading="delLoading"
91
- :model="formData"
92
- :contents="formItemList"
93
- @submit="handleFormSubmit"
94
- >
95
- </es-form>
96
- </es-dialog>
97
- </div>
98
- </template>
99
-
100
- <script>
101
- import {
102
- findCodeValues,
103
- deletePresetInfo,
104
- pendedhistoryListJson,
105
- toPresetInfoListIndex,
106
- pressListJson,
107
- pendedhistoryListWithCircularReadJson,
108
- deleteFlow,
109
- taskReadWithDraw,
110
- fyListJson,
111
- circularReadWithdraw,
112
- modifyFlow
113
- } from 'eoss-ui/src/config/api';
114
- import FileList from '../../flow/src/component/FileList.vue';
115
- import util from 'eoss-ui/src/utils/util';
116
- export default {
117
- name: 'EsFlowList',
118
- components: {
119
- [FileList.name]: FileList
120
- },
121
- props: {
122
- businessId: {
123
- type: String,
124
- default: ''
125
- },
126
- getListCount: {
127
- type: Function,
128
- default: () => {}
129
- },
130
- flowViewType:{
131
- type: [Number,String],
132
- default: 0
133
- },
134
- hide: {
135
- type: String,
136
- default: ''
137
- },
138
- hideBtn: {
139
- type: Boolean,
140
- default: false
141
- },
142
- params: {
143
- type: Object,
144
- default: () => {
145
- return {};
146
- }
147
- },
148
- toolbar: {
149
- type: Array,
150
- default: () => []
151
- },
152
- headFields: {
153
- type: Array,
154
- default: () => []
155
- },
156
- contents: {
157
- type: Array,
158
- default() {
159
- return ['flow', 'splitReading', 'preset'];
160
- }
161
- },
162
- numbers: {
163
- type: Boolean,
164
- default: false
165
- },
166
- height: {
167
- type: String,
168
- default: ''
169
- },
170
- showDoresult: {
171
- type: Boolean,
172
- default: false
173
- },
174
- theadWidth: {
175
- type: Object,
176
- default: () => {
177
- return {};
178
- }
179
- },
180
- type: {
181
- type: String,
182
- default: ''
183
- },
184
- display: Boolean
185
- },
186
- inheritAttrs: false,
187
- data() {
188
- return {
189
- pressLoading: false,
190
- pressTableList: [],
191
- circularData: [],
192
- selectList: [],
193
- flowHeight: '',
194
- presetHeight: '',
195
- signHeight: '',
196
- splitReadingHeight: '',
197
- circularHeight: '',
198
- untreatedReadHeight: '',
199
- processedReadHeight: '',
200
- untreatedReadData: [],
201
- processedReadData: [],
202
- hasCircularReadWithdrawAuthority: false,
203
- currentPage: 1,
204
- pageSize: 20,
205
- flowListCount: {},
206
- currentUserHasPresetInfoAuth: false,
207
- pressThead: [
208
- {
209
- title: '催办节点',
210
- align: 'center',
211
- sortable: true,
212
- field: 'urge_item'
213
- },
214
- {
215
- title: '催办人名称',
216
- sortable: true,
217
- align: 'center',
218
- field: 'urge_man_name'
219
- },
220
- {
221
- title: '催办时间',
222
- sortable: true,
223
- align: 'center',
224
- field: 'urge_time'
225
- },
226
- {
227
- title: '被催办人名称',
228
- align: 'center',
229
- sortable: true,
230
- field: 'urged_man_name'
231
- }
232
- ],
233
- wfpendingid: '',
234
- showFileList: false,
235
- flowData: [],
236
- splitReadingData: [],
237
- presetData: [],
238
- signData: [],
239
- loading: '', //加载中
240
- preset_type: [], //预设类型
241
- showPress: false, //查看催办记录弹窗
242
- modify: false,
243
- formData: { reason: '' },
244
-
245
- delLoading: false,
246
- showDel: false,
247
- attachmentPaperClipCssStyle: '',
248
- is_edit: [], //是否可编辑
249
- flowTableInfo: {
250
- adjunctCode: '',
251
- hasAgent: '1' //是否展示代办人 1:展示 0:不展示
252
- },
253
- show: false,
254
- taskReadName: '', //非流程列表名称
255
- options: [
256
- { label: '时间排序', value: '1' },
257
- { label: '部门排序', value: '2' }
258
- // { label: '树形排序', value: '3' }
259
- ],
260
- isShort: 0, //是否隐藏筛选
261
- viewType: '1', //排序方式
262
- flowTableList: [], //流程列表
263
- fyTableList: [], //分阅列表
264
- showSuggest: 'all', //筛选显示数据
265
- presetInfoListHiddenColumns: '', //隐藏表格展示数据
266
- canDelete: false, //是否展示操作按钮
267
- historyId: '',
268
- sidx: '',
269
- sord: '',
270
- modalType:'',
271
- total: 0
272
- };
273
- },
274
- watch: {
275
- flowViewType:{
276
- handler(val) {
277
- if(val){
278
- this.loading = util.loading(this.$loading, '加载中...');
279
- this.getFlowList(val);
280
- }
281
- },
282
- deep:true,
283
- immediate:true
284
- }
285
- },
286
-
287
- computed: {
288
- formItemList(){
289
- return [
290
- {
291
- name: 'reason',
292
- label:this.modalType == 'del' ? '删除原因' : '办理意见',
293
- type: 'textarea',
294
- placeholder: `请输入${this.modalType == 'del' ? '删除原因' : '办理意见'}`,
295
- rules: {
296
- required:this.modalType == 'del',
297
- message: '请输入删除原因',
298
- trigger: 'blur'
299
- },
300
- value: '',
301
- rows: 5
302
- },
303
- {
304
- type: 'submit',
305
- skin: 'lay-form-btns',
306
- contents: [
307
- {
308
- type: 'primary',
309
- plain: true,
310
- text: '保存',
311
- event: 'confirm'
312
- }
313
- ]
314
- }
315
- ]
316
- },
317
- toolbars() {
318
- return {
319
- flow: [
320
- {
321
- type: 'text',
322
- contents: '流程列表'
323
- },
324
- {
325
- type: 'search',
326
- contents: [
327
- {
328
- name: 'showSuggest',
329
- type: 'radio',
330
- changeSearch: true,
331
- data: [
332
- {
333
- value: 'all',
334
- name: '显示全部',
335
- checked: true
336
- },
337
- { value: 'have', name: '显示已填意见' }
338
- ],
339
- events: {
340
- change: (key, value) => {
341
- this.handleChange(key, value);
342
- }
343
- }
344
- },
345
- {
346
- type: 'select',
347
- placeholder: '请选择',
348
- name: 'viewType',
349
- width: '140px',
350
- changeSearch: true,
351
- events: {
352
- change: (key, value) => {
353
- this.handleChange(key, value);
354
- }
355
- },
356
- data: [
357
- {
358
- value: 1,
359
- selected: true,
360
- name: '时间排序'
361
- },
362
- {
363
- value: 2,
364
- name: '部门排序'
365
- },
366
- // {
367
- // value: 3,
368
- // name: '树形排序'
369
- // }
370
- ]
371
- }
372
- ]
373
- }
374
- ],
375
- preset: [
376
- {
377
- type: 'text',
378
- contents: '预设列表'
379
- }
380
- ],
381
- sign: [
382
- {
383
- type: 'button',
384
- contents: [
385
- {
386
- text: '生成处理签',
387
- type: 'primary'
388
- }
389
- ]
390
- }
391
- ],
392
- splitReading: [
393
- {
394
- type: 'text',
395
- contents:
396
- (this.taskReadName ? this.taskReadName : '非流程') + '列表'
397
- }
398
- ],
399
- circular: [
400
- {
401
- type: 'text',
402
- contents: '传阅列表'
403
- }
404
- ],
405
- untreatedRead: [
406
- {
407
- type: 'text',
408
- contents: '未处理分阅列表'
409
- },
410
- {
411
- type: 'button',
412
- contents: [
413
- {
414
- text: '撤销分阅',
415
- fun: 'recallRead'
416
- }
417
- ]
418
- }
419
- ],
420
- processedRead: [
421
- {
422
- type: 'text',
423
- contents: '已处理分阅列表'
424
- }
425
- ]
426
- // Reading situation
427
- };
428
- },
429
- pageInfo() {
430
- return {
431
- pageNum: this.currentPage,
432
- pageSize: this.pageSize,
433
- totalCount: this.total
434
- };
435
- },
436
- theads() {
437
- const _that = this;
438
- let newThead = {
439
- flow: [
440
- {
441
- label: '经办部门',
442
- field: 'deptid',
443
- align: 'center',
444
- key: 'jbbm',
445
- showOverflowTooltip: true,
446
- width: this.theadWidth.deptid || 150,
447
- render: (h, params) => {
448
- return h(
449
- 'span',
450
- {},
451
- params.row.doDeptName
452
- ? params.row.doDeptName
453
- : params.row.deptName
454
- );
455
- }
456
- },
457
- {
458
- label: '步骤',
459
- field: 'itemname',
460
- align: 'center',
461
- key: 'bz',
462
- showOverflowTooltip: true,
463
- width: this.theadWidth.itemname || 110
464
- },
465
- {
466
- label: '办理人',
467
- field: 'userName',
468
- align: 'center',
469
- key: 'blr',
470
- showOverflowTooltip: true,
471
- width: this.theadWidth.userName || 110
472
- },
473
- {
474
- label: '办理人部门',
475
- field: 'deptName',
476
- align: 'center',
477
- showOverflowTooltip: true,
478
- key: 'blrbm',
479
- width: this.theadWidth.deptName || 110
480
- },
481
- {
482
- label: '状态',
483
- field: 'pendstate',
484
- key: 'zt',
485
- align: 'center',
486
- showOverflowTooltip: true,
487
- width: this.theadWidth.pendstate || 80,
488
- render: (h, params) => {
489
- return h('span', {
490
- style: {
491
- color:
492
- params.row.pendstate == 0 || params.row.pendstate == 3
493
- ? 'red'
494
- : params.row.pendstate == 1
495
- ? 'green' : params.row.pendstate == -1 ? 'orange'
496
- : 'deepskyblue'
497
- },
498
- domProps: { innerHTML: params.row.querykeywords }
499
- });
500
- }
501
- },
502
- {
503
- label: '办理意见',
504
- field: 'doresult',
505
- align: 'center',
506
- width: this.theadWidth.doresult,
507
- showOverflowTooltip: true,
508
- key: 'blyj',
509
- render: (h, params) => {
510
- if (
511
- params.row.doresult &&
512
- (params.row.doresult.startsWith('http') ||
513
- params.row.doresult.startsWith('https'))
514
- ) {
515
- return h('img', {
516
- attrs: { src: params.row.doresult },
517
- style: { width: '100px', height: '100px' }
518
- });
519
- } else {
520
- return h('span', {}, [
521
- params.row.doresult
522
- ? params.row.doresult + (params.row.handleInfo ? '&' : '')
523
- : '',
524
- h(
525
- 'span',
526
- { style: { color: '#A5A5A5', marginLeft: '2px' } },
527
- params.row.handleInfo || ''
528
- )
529
- ]);
530
- }
531
- }
532
- },
533
- {
534
- label: '验签',
535
- field: 'authTypeStr',
536
- align: 'center',
537
- key: 'yq',
538
- showOverflowTooltip: true,
539
- width: this.theadWidth.authTypeStr || 70,
540
- render: (h, params) => {
541
- return h(
542
- 'span',
543
- { style: { color: 'deepskyblue' } },
544
- params.row.authTypeStr
545
- );
546
- }
547
- },
548
- {
549
- label: '附件',
550
- key: 'fj',
551
- field: 'hasAdjunct',
552
- align: 'center',
553
- showOverflowTooltip: true,
554
- width: this.theadWidth.hasAdjunct || 70,
555
- render: (h, params) => {
556
- if (params.row.hasAdjunct) {
557
- return h('span', {
558
- style: _that.attachmentPaperClipCssStyle
559
- ? _that.attachmentPaperClipCssStyle
560
- : { color: 'red', fontSize: '20px' },
561
- class: 'iconfont es-icon-fujian'
562
- });
563
- } else {
564
- return h('span', {}, '');
565
- }
566
- }
567
- },
568
- {
569
- label: '时间',
570
- field: 'doetime',
571
- align: 'center',
572
- key: 'sj',
573
- showOverflowTooltip: true,
574
- width: this.theadWidth.doetime || 150,
575
- render: (h, params) => {
576
- return h(
577
- 'span',
578
- {},
579
- params.row.doetime
580
- ? util.formatDate(params.row.doetime, 'yyyy-MM-dd HH:mm')
581
- : ''
582
- );
583
- }
584
- },
585
- {
586
- label: '代办人',
587
- field: 'douserid',
588
- align: 'center',
589
- key: 'dbr',
590
- showOverflowTooltip: true,
591
- width: this.theadWidth.douserid || 80,
592
- hide: _that.flowTableInfo.hasAgent != '1'
593
- },
594
- {
595
- label: '催办',
596
- field: 'pressTimes',
597
- align: 'center',
598
- key: 'cb',
599
- showOverflowTooltip: true,
600
- width: this.theadWidth.pressTimes || 150,
601
- render: (h, params) => {
602
- return h(
603
- 'span',
604
- { style: 'color:deepskyblue;cursor: pointer;' },
605
- params.row.pressTimes != 0 ? params.row.pressTimes : ''
606
- );
607
- }
608
- },
609
- {
610
- title: '操作',
611
- type: 'handle',
612
- width: this.modify ? '130' : '100',
613
- template: '',
614
- hide: this.hideBtn || (!this.canDelete && !this.modify),
615
- events: [
616
- {
617
- text: '删除',
618
- rules: (rows) => {
619
- return rows.canDelete || this.canDelete;
620
- }
621
- },
622
- {
623
- text: '修改',
624
- rules: (rows) => {
625
- return this.modify && rows.pendstate == 2;
626
- }
627
- }
628
- ]
629
- }
630
- ],
631
- preset: this.thead,
632
- splitReading: [
633
- {
634
- label: '经办部门',
635
- field: 'deptid',
636
- key: 'jbbm',
637
- align: 'center',
638
- showOverflowTooltip: true,
639
- width: this.theadWidth.deptid || 150
640
- },
641
- {
642
- label: '步骤',
643
- field: 'itemname',
644
- align: 'center',
645
- key: 'bz',
646
- showOverflowTooltip: true,
647
- width: this.theadWidth.itemname || 110
648
- },
649
- {
650
- label: '办理人',
651
- field: 'userName',
652
- align: 'center',
653
- key: 'blr',
654
- showOverflowTooltip: true,
655
- width: this.theadWidth.userName || 110
656
- },
657
- {
658
- label: '状态',
659
- field: 'pendstate',
660
- align: 'center',
661
- key: 'zt',
662
- showOverflowTooltip: true,
663
- width: this.theadWidth.pendstate || 80,
664
- render: (h, params) => {
665
- return h('span', {
666
- style: {
667
- color:
668
- params.row.pendstate == 0 || params.row.pendstate == 3
669
- ? 'red'
670
- : params.row.pendstate == 1
671
- ? 'green': params.row.pendstate == -1 ? 'orange'
672
- : 'deepskyblue'
673
- },
674
- domProps: { innerHTML: params.row.querykeywords }
675
- });
676
- }
677
- },
678
- {
679
- label: '办理意见',
680
- field: 'doresult',
681
- align: 'center',
682
- key: 'blyj',
683
- width: this.theadWidth.doresult,
684
- showOverflowTooltip: true,
685
- render: (h, params) => {
686
- if (
687
- params.row.doresult &&
688
- (params.row.doresult.startsWith('http') ||
689
- params.row.doresult.startsWith('https'))
690
- ) {
691
- return h('img', {
692
- attrs: { src: params.row.doresult },
693
- style: { width: '100px', height: '100px' }
694
- });
695
- } else {
696
- return h('span', {}, [
697
- params.row.doresult
698
- ? params.row.doresult + (params.row.handleInfo ? '&' : '')
699
- : '',
700
- h(
701
- 'span',
702
- { style: { color: '#A5A5A5', marginLeft: '2px' } },
703
- params.row.handleInfo || ''
704
- )
705
- ]);
706
- }
707
- }
708
- },
709
- {
710
- label: '验签',
711
- field: 'authTypeStr',
712
- align: 'center',
713
- key: 'yq',
714
- showOverflowTooltip: true,
715
- width: this.theadWidth.authTypeStr || 70,
716
- render: (h, params) => {
717
- return h(
718
- 'span',
719
- { style: { color: 'deepskyblue' } },
720
- params.row.authTypeStr
721
- );
722
- }
723
- },
724
- {
725
- label: '附件',
726
- field: 'hasAdjunct',
727
- align: 'center',
728
- key: 'fj',
729
- showOverflowTooltip: true,
730
- width: this.theadWidth.hasAdjunct || 70,
731
- render: (h, params) => {
732
- if (params.row.hasAdjunct) {
733
- return h('span', {
734
- style: _that.attachmentPaperClipCssStyle
735
- ? _that.attachmentPaperClipCssStyle
736
- : { color: 'red', fontSize: '20px' },
737
- class: 'iconfont es-icon-fujian'
738
- });
739
- } else {
740
- return h('span', {}, '');
741
- }
742
- }
743
- },
744
- {
745
- label: '时间',
746
- field: 'doetime',
747
- align: 'center',
748
- key: 'sj',
749
- showOverflowTooltip: true,
750
- width: this.theadWidth.doetime || 150,
751
- render: (h, params) => {
752
- return h(
753
- 'span',
754
- {},
755
- params.row.doetime
756
- ? util.formatDate(params.row.doetime, 'yyyy-MM-dd HH:mm')
757
- : ''
758
- );
759
- }
760
- },
761
- {
762
- label: '代办人',
763
- field: 'douserid',
764
- align: 'center',
765
- key: 'dbr',
766
- showOverflowTooltip: true,
767
- width: this.theadWidth.douserid || 80,
768
- hide: _that.flowTableInfo.hasAgent != '1'
769
- },
770
- {
771
- label: '催办',
772
- field: 'pressTimes',
773
- align: 'center',
774
- key: 'cb',
775
- showOverflowTooltip: true,
776
- width: this.theadWidth.pressTimes || 150,
777
- render: (h, params) => {
778
- return h(
779
- 'span',
780
- { style: 'color:deepskyblue;cursor: pointer;' },
781
- params.row.pressTimes != 0 ? params.row.pressTimes : ''
782
- );
783
- }
784
- },
785
- {
786
- title: '操作',
787
- type: 'handle',
788
- width: '100',
789
- template: '',
790
- hide: this.hideBtn || (!this.canDelete && !this.modify),
791
- events: [
792
- {
793
- text: '删除',
794
- rules: (rows) => {
795
- return rows.canDelete || this.canDelete;
796
- }
797
- }
798
- ]
799
- }
800
- ],
801
- circular: [
802
- {
803
- label: '发起人',
804
- field: 'circularReadInitiatorName',
805
- align: 'center',
806
- key: 'fqr',
807
- showOverflowTooltip: true,
808
- width: this.theadWidth.circularReadInitiatorName || 150
809
- },
810
- {
811
- label: '传阅部门',
812
- field: 'circularReadOrgName',
813
- align: 'center',
814
- key: 'cybm',
815
- showOverflowTooltip: true,
816
- width: this.theadWidth.circularReadOrgName || 110
817
- },
818
- {
819
- label: '传阅人',
820
- field: 'userName',
821
- align: 'center',
822
- key: 'cyr',
823
- showOverflowTooltip: true,
824
- width: this.theadWidth.userName || 110
825
- },
826
- {
827
- label: '步骤',
828
- field: 'itemname',
829
- align: 'center',
830
- showOverflowTooltip: true,
831
- key: 'bz',
832
- width: this.theadWidth.itemname || 110
833
- },
834
- {
835
- label: '状态',
836
- field: 'pendstate',
837
- key: 'zt',
838
- align: 'center',
839
- showOverflowTooltip: true,
840
- width: this.theadWidth.pendstate || 140,
841
- render: (h, params) => {
842
- return h('span', {
843
- style: {
844
- color:
845
- params.row.pendstate == 0 || params.row.pendstate == 3
846
- ? 'red'
847
- : params.row.pendstate == 1
848
- ? 'green': params.row.pendstate == -1 ? 'orange'
849
- : 'deepskyblue',
850
- cursor: this.hasCircularReadWithdrawAuthority
851
- ? 'pointer'
852
- : 'unset'
853
- },
854
- domProps: {
855
- innerHTML:
856
- params.row.querykeywords +
857
- (this.hasCircularReadWithdrawAuthority
858
- ? `<span style="color:#7AB0D5">(撤回)</span>`
859
- : '')
860
- }
861
- });
862
- }
863
- },
864
- {
865
- label: '送达时间',
866
- field: 'createtime',
867
- align: 'center',
868
- key: 'sdsj',
869
- showOverflowTooltip: true,
870
- width: this.theadWidth.createtime || 170
871
- },
872
- {
873
- label: '办理时间',
874
- field: 'doetime',
875
- align: 'center',
876
- key: 'blsj',
877
- showOverflowTooltip: true,
878
- width: this.theadWidth.doetime || 150
879
- },
880
-
881
- {
882
- label: '附件',
883
- key: 'fj',
884
- field: 'hasAdjunct',
885
- align: 'center',
886
- showOverflowTooltip: true,
887
- width: this.theadWidth.hasAdjunct || 70,
888
- render: (h, params) => {
889
- if (params.row.hasAdjunct) {
890
- return h('span', {
891
- style: _that.attachmentPaperClipCssStyle
892
- ? _that.attachmentPaperClipCssStyle
893
- : { color: 'red', fontSize: '20px' },
894
- class: 'iconfont es-icon-fujian'
895
- });
896
- } else {
897
- return h('span', {}, '');
898
- }
899
- }
900
- },
901
- {
902
- label: '提醒',
903
- field: 'pressTimes',
904
- align: 'center',
905
- key: 'tx',
906
- showOverflowTooltip: true,
907
- width: this.theadWidth.pressTimes || 150,
908
- render: (h, params) => {
909
- return h(
910
- 'span',
911
- { style: 'color:deepskyblue;cursor: pointer;' },
912
- params.row.pressTimes
913
- );
914
- }
915
- },
916
- {
917
- label: '阅结意见 & 说明',
918
- field: 'doresult',
919
- align: 'center',
920
- width: this.theadWidth.doresult,
921
- showOverflowTooltip: true,
922
- key: 'blyj',
923
- render: (h, params) => {
924
- if (
925
- params.row.doresult &&
926
- (params.row.doresult.startsWith('http') ||
927
- params.row.doresult.startsWith('https'))
928
- ) {
929
- return h('img', {
930
- attrs: { src: params.row.doresult },
931
- style: { width: '100px', height: '100px' }
932
- });
933
- } else {
934
- return h('span', {}, [
935
- params.row.doresult
936
- ? params.row.doresult + (params.row.handleInfo ? '&' : '')
937
- : '',
938
- h(
939
- 'span',
940
- { style: { color: '#A5A5A5', marginLeft: '2px' } },
941
- params.row.handleInfo || ''
942
- )
943
- ]);
944
- }
945
- }
946
- }
947
- ],
948
- untreatedRead: [
949
- {
950
- label: '步骤',
951
- field: 'itemid',
952
- align: 'center',
953
- key: 'bz',
954
- showOverflowTooltip: true,
955
- width: this.theadWidth.itemid || 110
956
- },
957
- {
958
- label: '办理人',
959
- field: 'userName',
960
- align: 'center',
961
- key: 'blr',
962
- showOverflowTooltip: true,
963
- width: this.theadWidth.userName
964
- },
965
- {
966
- label: '办理状态',
967
- field: 'pendstate',
968
- key: 'blzt',
969
- align: 'center',
970
- showOverflowTooltip: true,
971
- width: this.theadWidth.pendstate || 110,
972
- render: (h, params) => {
973
- return h('span', {
974
- style: {
975
- color:
976
- params.row.pendstate == 0 || params.row.pendstate == 3
977
- ? 'red'
978
- : params.row.pendstate == 1
979
- ? 'green'
980
- : 'deepskyblue'
981
- },
982
- domProps: { innerHTML: params.row.querykeywords }
983
- });
984
- }
985
- },
986
- {
987
- label: '创建时间',
988
- field: 'createtime',
989
- align: 'center',
990
- key: 'cjsj',
991
- showOverflowTooltip: true,
992
- width: this.theadWidth.createtime || 150,
993
- render: (h, params) => {
994
- return h(
995
- 'span',
996
- {},
997
- params.row.doetime
998
- ? util.formatDate(params.row.createtime, 'yyyy-MM-dd HH:mm')
999
- : ''
1000
- );
1001
- }
1002
- }
1003
- ],
1004
- processedRead: [
1005
- {
1006
- label: '步骤',
1007
- field: 'itemid',
1008
- align: 'center',
1009
- key: 'bz',
1010
- showOverflowTooltip: true,
1011
- width: this.theadWidth.itemid || 110
1012
- },
1013
- {
1014
- label: '办理人',
1015
- field: 'userName',
1016
- align: 'center',
1017
- key: 'blr',
1018
- showOverflowTooltip: true,
1019
- width: this.theadWidth.userName
1020
- },
1021
- {
1022
- label: '办理状态',
1023
- field: 'pendstate',
1024
- key: 'blzt',
1025
- align: 'center',
1026
- showOverflowTooltip: true,
1027
- width: this.theadWidth.pendstate || 110,
1028
- render: (h, params) => {
1029
- return h('span', {
1030
- style: {
1031
- color:
1032
- params.row.pendstate == 0 || params.row.pendstate == 3
1033
- ? 'red'
1034
- : params.row.pendstate == 1
1035
- ? 'green'
1036
- : 'deepskyblue'
1037
- },
1038
- domProps: { innerHTML: params.row.querykeywords }
1039
- });
1040
- }
1041
- },
1042
- {
1043
- label: '办理时间',
1044
- field: 'doetime',
1045
- align: 'center',
1046
- key: 'blsj',
1047
- showOverflowTooltip: true,
1048
- width: this.theadWidth.doetime || 150,
1049
- render: (h, params) => {
1050
- return h(
1051
- 'span',
1052
- {},
1053
- params.row.doetime
1054
- ? util.formatDate(params.row.doetime, 'yyyy-MM-dd HH:mm')
1055
- : ''
1056
- );
1057
- }
1058
- },
1059
- {
1060
- label: '代办人',
1061
- field: 'douserid',
1062
- align: 'center',
1063
- key: 'dbr',
1064
- showOverflowTooltip: true,
1065
- width: this.theadWidth.douserid
1066
- },
1067
- {
1068
- label: '意见',
1069
- field: 'doresult',
1070
- align: 'center',
1071
- key: 'yj',
1072
- showOverflowTooltip: true,
1073
- width: this.theadWidth.doresult
1074
- }
1075
- ]
1076
- };
1077
- if (this.numbers) {
1078
- for (let key in newThead) {
1079
- newThead[key].unshift({
1080
- label: '序号',
1081
- field: 'sort',
1082
- align: 'center',
1083
- key: 'xh',
1084
- showOverflowTooltip: true,
1085
- width: 50
1086
- });
1087
- }
1088
- }
1089
- return newThead;
1090
- },
1091
- content() {
1092
- const _that = this;
1093
- let newContents = JSON.parse(JSON.stringify(this.contents));
1094
- if (this.contents.indexOf('circular') != -1) {
1095
- newContents = newContents.filter((item) => item != 'splitReading');
1096
- }
1097
- if (newContents.indexOf('readingSituation') != -1) {
1098
- newContents = ['untreatedRead', 'processedRead'];
1099
- }
1100
- let contents = newContents.map((item) => {
1101
- if (typeof item === 'string') {
1102
- let data = [];
1103
- if (_that.headFields.length > 0) {
1104
- _that.headFields.map((headFiled) => {
1105
- if (headFiled.showDefault) {
1106
- _that.theads[item].map((theadItem) => {
1107
- if (theadItem.field === headFiled.field) {
1108
- data.push({ ...theadItem, ...headFiled });
1109
- }
1110
- });
1111
- } else {
1112
- data.push(headFiled);
1113
- }
1114
- });
1115
- _that.theads[item].map((x) => {
1116
- if (x.type == 'handle') {
1117
- data.push(x);
1118
- }
1119
- });
1120
- }
1121
- return {
1122
- type: item,
1123
- checkbox: newContents.indexOf('untreatedRead') != -1,
1124
- toolbar: this.toolbars[item],
1125
- thead: data.length > 0 ? data : this.theads[item],
1126
- showFormBtn: false
1127
- };
1128
- } else {
1129
- if (!Object.prototype.hasOwnProperty.call(item, 'toolbar')) {
1130
- let toolbars = this.toolbars[item.type];
1131
- return { ...item, toolbars };
1132
- }
1133
- if (!Object.prototype.hasOwnProperty.call(item, 'thead')) {
1134
- let thead = this.theads[item.type];
1135
- return { ...item, thead };
1136
- }
1137
- return item;
1138
- }
1139
- });
1140
- return contents;
1141
- },
1142
- newToolbar() {
1143
- if (this.toolbar && this.toolbar.length > 0) {
1144
- return this.toolbar;
1145
- } else {
1146
- return [];
1147
- }
1148
- },
1149
- thead() {
1150
- let table = [
1151
- {
1152
- title: '步骤',
1153
- align: 'center',
1154
- width: this.theadWidth.nodeName || '100',
1155
- field: 'nodeName'
1156
- },
1157
- {
1158
- title: '预设办理人',
1159
- width: this.theadWidth.presetUserName || '120',
1160
- align: 'center',
1161
- field: 'presetUserName'
1162
- },
1163
- {
1164
- title: '是否可编辑',
1165
- key: 'sfkbj',
1166
- align: 'center',
1167
- width: this.theadWidth.isEdit || '100',
1168
- render: (h, params) => {
1169
- return h('span', this.getCodeValue(params.row.isEdit, 'is_edit'));
1170
- },
1171
- field: 'isEdit'
1172
- },
1173
- {
1174
- key: 'zt',
1175
- title: '状态',
1176
- width: this.theadWidth.statusName || '80',
1177
- align: 'center',
1178
- field: 'statusName'
1179
- },
1180
- {
1181
- title: '预设类型',
1182
- key: 'yslx',
1183
- width: this.theadWidth.presetType || '120',
1184
- align: 'center',
1185
- render: (h, params) => {
1186
- return h(
1187
- 'span',
1188
- this.getCodeValue(params.row.presetType, 'preset_type')
1189
- );
1190
- },
1191
- field: 'presetType'
1192
- },
1193
- {
1194
- title: '流程名称',
1195
- key: 'lcmc',
1196
- width: this.theadWidth.processDefName,
1197
- align: 'center',
1198
- field: 'processDefName'
1199
- },
1200
- {
1201
- title: '上一步骤',
1202
- key: 'sybz',
1203
- align: 'center',
1204
- width: this.theadWidth.lastNodeName,
1205
- field: 'lastNodeName'
1206
- },
1207
- {
1208
- title: '创建步骤',
1209
- key: 'cjbz',
1210
- align: 'center',
1211
- width: this.theadWidth.operationNodeName,
1212
- field: 'operationNodeName'
1213
- },
1214
- {
1215
- title: '创建人',
1216
- key: 'cjr',
1217
- width: this.theadWidth.creatorName || '120',
1218
- align: 'center',
1219
- field: 'creatorName'
1220
- },
1221
- {
1222
- title: '创建时间',
1223
- width: this.theadWidth.createTime || '150',
1224
- key: 'cjsj',
1225
- align: 'center',
1226
- render: (h, params) => {
1227
- return h(
1228
- 'span',
1229
- util.formatDate(params.row.createTime, 'yyyy-MM-dd HH:mm')
1230
- );
1231
- },
1232
- field: 'createTime'
1233
- },
1234
- {
1235
- title: '操作区域',
1236
- type: 'handle',
1237
- align: 'center',
1238
- width: '120',
1239
- events: [
1240
- {
1241
- text: '置为失效'
1242
- }
1243
- ]
1244
- }
1245
- ];
1246
- if (
1247
- this.presetInfoListHiddenColumns != undefined &&
1248
- this.presetInfoListHiddenColumns != ''
1249
- ) {
1250
- table = table.filter(
1251
- (items) => this.presetInfoListHiddenColumns.indexOf(items.key) == -1
1252
- );
1253
- }
1254
- if (!this.canDelete) table.splice(table.length - 1, 1);
1255
- return table;
1256
- }
1257
- },
1258
- async mounted() {
1259
- this.loading = util.loading(this.$loading, '加载中...');
1260
- if (this.contents.indexOf('readingSituation') != -1) {
1261
- await this.getFyListJson(1);
1262
- await this.getFyListJson(2);
1263
- this.getListCount(this.flowListCount);
1264
- this.show = true;
1265
- } else {
1266
- this.getFlowList();
1267
- }
1268
- this.getSysInfo('preset_type');
1269
- this.getSysInfo('is_edit');
1270
- this.getListInfo();
1271
- },
1272
-
1273
- methods: {
1274
- recallReadFun() {
1275
- const _that = this;
1276
- let pendingIds = _that.selectList.map((x) => x.id).join(',');
1277
- let params = {
1278
- url: taskReadWithDraw,
1279
- params: {
1280
- pendingIds
1281
- }
1282
- };
1283
- _that.loading = util.loading(_that.$loading, '撤销中...');
1284
- util.ajax(params).then(async (res) => {
1285
- _that.loading.close();
1286
- if (res.rCode == 0 || res.status == 'success') {
1287
- _that.$message.success('撤销成功!');
1288
- await _that.getFyListJson(1);
1289
- _that.getListCount(_that.flowListCount);
1290
- } else {
1291
- _that.$message.error(res.message);
1292
- }
1293
- });
1294
- },
1295
- recallRead() {
1296
- if (this.selectList.length == 0)
1297
- return this.$message.warning('请选择需要撤销的分阅');
1298
- this.$confirm('是否确认撤销选中的分阅?', '提示', {
1299
- confirmButtonText: '确定',
1300
- cancelButtonText: '取消',
1301
- type: 'warning'
1302
- }).then(() => {
1303
- this.recallReadFun();
1304
- });
1305
- },
1306
- handleSelectionChange(val) {
1307
- this.selectList = val;
1308
- },
1309
- handledraw(pendedHistoryId) {
1310
- let params = {
1311
- url: circularReadWithdraw,
1312
- params: { pendedHistoryId }
1313
- };
1314
- this.$confirm('是否确定撤回当前传阅', {
1315
- confirmButtonText: '确定',
1316
- cancelButtonText: '取消',
1317
- type: 'warning'
1318
- })
1319
- .then(() => {
1320
- this.loading = util.loading(this.$loading, '撤回中...');
1321
- util.ajax(params).then((res) => {
1322
- this.loading.close();
1323
- if (res.rCode == 0) {
1324
- this.$message({
1325
- message: '撤回成功',
1326
- type: 'success'
1327
- });
1328
- this.getCircularReadList();
1329
- }
1330
- });
1331
- // _that.subMit(res.results,type)
1332
- })
1333
- .catch(() => {});
1334
- },
1335
- getCircularReadList() {
1336
- const _that = this;
1337
- let params = {
1338
- url: pendedhistoryListWithCircularReadJson,
1339
- params: { apprecordid: _that.businessId }
1340
- };
1341
- util.ajax(params).then((res) => {
1342
- if (res.status == 'success' || res.rCode == 0) {
1343
- _that.circularData = res.data.fyHistoryList;
1344
- _that.circularData.map((x, i) => {
1345
- x.sort = i + 1;
1346
- });
1347
- _that.hasCircularReadWithdrawAuthority =
1348
- res.data.hasCircularReadWithdrawAuthority;
1349
- _that.$nextTick(() => {
1350
- _that.getListCount(_that.flowListCount);
1351
- });
1352
- }
1353
- });
1354
- },
1355
- returnData(type) {
1356
- switch (type) {
1357
- case 'preset':
1358
- this.flowListCount.preset = this.presetData.length;
1359
- this.flowListCount.presetData = this.presetData;
1360
- return this.presetData;
1361
- case 'sign':
1362
- this.flowListCount.sign = this.signData.length;
1363
- this.flowListCount.signData = this.signData;
1364
- return this.signData;
1365
- case 'splitReading':
1366
- this.flowListCount.splitReading = this.splitReadingData.length;
1367
- this.flowListCount.splitReadingData = this.splitReadingData;
1368
- return this.splitReadingData;
1369
- case 'circular':
1370
- this.flowListCount.circular = this.circularData.length;
1371
- this.flowListCount.circularData = this.circularData;
1372
- return this.circularData;
1373
- case 'untreatedRead':
1374
- this.flowListCount.untreatedRead = this.untreatedReadData.length;
1375
- this.flowListCount.untreatedReadData = this.untreatedReadData;
1376
- return this.untreatedReadData;
1377
- case 'processedRead':
1378
- this.flowListCount.processedRead = this.processedReadData.length;
1379
- this.flowListCount.processedReadData = this.processedReadData;
1380
- return this.processedReadData;
1381
- default:
1382
- this.flowListCount.flow = this.flowData.length;
1383
- this.flowListCount.flowData = this.flowData;
1384
- return this.flowData;
1385
- }
1386
- },
1387
- handleCellClick(row, column) {
1388
- if (column.property == 'hasAdjunct' && row.hasAdjunct) {
1389
- this.showFile(row.wfpendingid);
1390
- } else if (column.property == 'pressTimes') {
1391
- if(row.pressTimes != 0){
1392
- this.goPress(row.id);
1393
- }
1394
- } else if (
1395
- column.property == 'pendstate' &&
1396
- this.hasCircularReadWithdrawAuthority
1397
- ) {
1398
- this.handledraw(row.id);
1399
- }
1400
- },
1401
- handleBtnClick(data) {
1402
- // recallRead
1403
- const { handle, row } = data;
1404
- if (handle.text == '删除' || handle.text == '修改') {
1405
- this.formData.reason = handle.text == '修改' ? row.doresult : ''
1406
- this.del(row.id,handle.text == '删除'?'del':'modify');
1407
- } else if (handle.fun == 'recallRead') {
1408
- this[handle.fun]();
1409
- }
1410
- },
1411
- /**
1412
- * handleFormSubmit
1413
- * @desc:删除节点点击事件
1414
- * @param {Object} formData 点击删除的form数据
1415
- * @author liufan
1416
- * @date 2022年11月29日
1417
- **/
1418
- handleFormSubmit(formData) {
1419
- this.delLoading = true;
1420
- let params = {
1421
- url:this.modalType == 'del' ? deleteFlow : modifyFlow,
1422
- method: 'POST',
1423
- data: { id: this.historyId, reason: formData.reason }
1424
- };
1425
- if(this.modalType != 'del'){
1426
- delete params.data.reason;
1427
- params.data.doResult = formData.reason
1428
- params.data.doresult = formData.reason
1429
- }
1430
- util
1431
- .ajax(params)
1432
- .then((res) => {
1433
- const { status, message } = res;
1434
- this.delLoading = false;
1435
- if (status === 'success') {
1436
- this.$message.success(`${this.modalType == 'del' ? '删除' : '修改'}成功`);
1437
- this.showDel = false;
1438
- this.handleChange();
1439
- } else {
1440
- this.$message.error(message || '系统错误,请联系管理员!');
1441
- }
1442
- })
1443
- .catch((err) => {
1444
- this.delLoading = false;
1445
- if (err.message && err.message !== 'canceled') {
1446
- this.$message.error(err.message);
1447
- }
1448
- });
1449
- },
1450
- /**
1451
- * del
1452
- * @desc:展示删除弹窗
1453
- * @param {String} id 当前点击数据id
1454
- * @author liufan
1455
- * @date 2022年11月29日
1456
- **/
1457
- del(id,type) {
1458
- this.modalType = type;
1459
- this.historyId = id;
1460
- this.showDel = true;
1461
- },
1462
- /**
1463
- * handleCurrentChange
1464
- * @desc:监听页码变化
1465
- * @param {String} val 当前页
1466
- * @author liufan
1467
- * @date 2022年11月29日
1468
- **/
1469
- handleCurrentChange(val) {
1470
- this.currentPage = val;
1471
- this.getPressList();
1472
- },
1473
- /**
1474
- * handleSizeChange
1475
- * @desc:监听每页数据显示数量变化
1476
- * @param {String} val 每页展示数量
1477
- * @author liufan
1478
- * @date 2022年11月29日
1479
- **/
1480
- handleSizeChange(val) {
1481
- this.pageSize = val;
1482
- this.getPressList();
1483
- },
1484
- /**
1485
- * sortChange
1486
- * @desc:监听排序变化
1487
- * @param {Object} info 需要排序的字段及排序方式
1488
- * @author liufan
1489
- * @date 2022年11月29日
1490
- **/
1491
- sortChange(info) {
1492
- let { prop, order } = info;
1493
- this.sidx = prop;
1494
- this.sord = order.replace('ending', '');
1495
- this.getPressList();
1496
- },
1497
- /**
1498
- * getPressList
1499
- * @desc:催办列表数据
1500
- * @author liufan
1501
- * @date 2022年11月29日
1502
- **/
1503
- getPressList() {
1504
- const { historyId, pageSize, sidx, sord, currentPage } = this;
1505
- this.pressLoading = true;
1506
- let params = {
1507
- url: pressListJson,
1508
- params: { historyId },
1509
- method: 'POST',
1510
- data: { page: currentPage, rows: pageSize, sidx, sord, historyId }
1511
- };
1512
- util
1513
- .ajax(params)
1514
- .then((res) => {
1515
- this.pressTableList = res.data;
1516
- this.total = res.totalrecords;
1517
- this.pressLoading = false;
1518
- })
1519
- .catch((err) => {
1520
- this.pressLoading = false;
1521
- if (err.message && err.message !== 'canceled') {
1522
- this.$message.error(err.message);
1523
- }
1524
- });
1525
- },
1526
- /**
1527
- * goPress
1528
- * @desc:催办列表查看
1529
- * @param {String} id 催办列表id
1530
- * @author liufan
1531
- * @date 2022年11月29日
1532
- **/
1533
- goPress(id) {
1534
- this.historyId = id;
1535
- this.showPress = true;
1536
- this.getPressList();
1537
- },
1538
- /**
1539
- * showFile
1540
- * @desc:附件查看
1541
- * @param {String} ownId 附件id
1542
- * @author liufan
1543
- * @date 2022年11月29日
1544
- **/
1545
- showFile(ownId) {
1546
- this.wfpendingid = ownId;
1547
- this.showFileList = true;
1548
- },
1549
- /**
1550
- * handleChange
1551
- * @desc:切换排序方式
1552
- * @author liufan
1553
- * @date 2022年11月22日
1554
- **/
1555
- handleChange(key, value) {
1556
- if (value) {
1557
- this[key] = value;
1558
- }
1559
- // this.show = false;
1560
- this.loading = util.loading(this.$loading, '加载中...');
1561
- this.getFlowList();
1562
- },
1563
- async getFyListJson(type) {
1564
- let params = {
1565
- url: fyListJson,
1566
- params: {
1567
- appRecordId: this.businessId,
1568
- status: type
1569
- }
1570
- };
1571
- await util.ajax(params).then((res) => {
1572
- if (type == 1) {
1573
- this.untreatedReadData = res.data;
1574
- this.untreatedReadData.map((x, i) => {
1575
- x.sort = i + 1;
1576
- });
1577
- } else {
1578
- this.processedReadData = res.data;
1579
- this.processedReadData.map((x, i) => {
1580
- x.sort = i + 1;
1581
- });
1582
- }
1583
- });
1584
- },
1585
- /**
1586
- * getFlowList
1587
- * @desc:获取流程列表
1588
- * @author liufan
1589
- * @date 2022年11月22日
1590
- **/
1591
- getFlowList(type) {
1592
- let params = {
1593
- url: pendedhistoryListJson,
1594
- params: {
1595
- apprecordid: this.businessId,
1596
- pendingAttr: 0,
1597
- viewType:type || this.viewType,
1598
- showSuggest: this.showSuggest,
1599
- ...this.params
1600
- }
1601
- };
1602
- util
1603
- .ajax(params)
1604
- .then((res) => {
1605
- let {
1606
- status,
1607
- message,
1608
- data: {
1609
- adjunctCode,
1610
- wfHistoryList,
1611
- fyHistoryList,
1612
- hasAgent,
1613
- isShort,
1614
- modify,
1615
- canDelete,
1616
- taskReadName
1617
- }
1618
- } = res;
1619
- this.loading.close();
1620
- if (status == 'success') {
1621
- this.flowTableInfo.adjunctCode = adjunctCode;
1622
- this.flowTableInfo.hasAgent = hasAgent;
1623
- this.attachmentPaperClipCssStyle =
1624
- res.data.attachmentPaperClipCssStyle;
1625
- this.isShort = isShort;
1626
- this.taskReadName = taskReadName;
1627
- this.flowData = wfHistoryList;
1628
- this.flowData.map((x, i) => {
1629
- x.sort = i + 1;
1630
- if (!x.deptid) {
1631
- x.deptid = x.deptName;
1632
- }
1633
- });
1634
- this.splitReadingData = fyHistoryList;
1635
- this.splitReadingData.map((x, i) => {
1636
- x.sort = i + 1;
1637
- });
1638
- this.modify = modify;
1639
- this.canDelete = canDelete;
1640
- this.show = true;
1641
- if (this.height == 'auto') {
1642
- this.$nextTick(() => {
1643
- this.content.map((x) => {
1644
- this[`${x.type}Height`] = this.$refs[x.type][0].offsetHeight;
1645
- });
1646
- });
1647
- }
1648
- if (this.contents.indexOf('circular') != -1) {
1649
- this.getCircularReadList();
1650
- } else {
1651
- this.$nextTick(() => {
1652
- this.getListCount(this.flowListCount);
1653
- });
1654
- }
1655
- } else {
1656
- this.$message.error(message || '系统错误,请联系管理员!');
1657
- }
1658
- })
1659
- .catch((err) => {
1660
- this.loading.close();
1661
- if (err.message && err.message !== 'canceled') {
1662
- this.$message.error(err.message);
1663
- }
1664
- this.show = true;
1665
- });
1666
- },
1667
- /**
1668
- * handleClick
1669
- * @desc:表单点击事件
1670
- * @param {Object} val 当前点击行数据及按钮
1671
- * @author liufan
1672
- * @date 2022年11月10日
1673
- **/
1674
- handleClick(val) {
1675
- const {
1676
- handle: { text },
1677
- row: { id, status }
1678
- } = val;
1679
- if (text === '置为失效') {
1680
- if (status == 0) {
1681
- this.$confirm('您确定要置为失效吗?')
1682
- .then(() => {
1683
- this.loading = util.loading(this.$loading, '提交中...');
1684
- let param = {
1685
- url: deletePresetInfo,
1686
- headers: { Accept: 'application/json,text/plain' },
1687
- method: 'post',
1688
- params: { id }
1689
- };
1690
- util
1691
- .ajax(param)
1692
- .then((res) => {
1693
- const { status, message } = res;
1694
- this.loading.close();
1695
- if (status === 'success') {
1696
- this.$message.success('操作成功');
1697
- this.getListInfo();
1698
- } else {
1699
- this.$message.error(message || '系统错误,请联系管理员!');
1700
- }
1701
- })
1702
- .catch((err) => {
1703
- this.loading.close();
1704
- if (err.message && err.message !== 'canceled') {
1705
- this.$message.error(err.message);
1706
- }
1707
- });
1708
- })
1709
- .catch((e) => {
1710
- // on cancel
1711
- });
1712
- } else {
1713
- this.$message.warning('当前数据已为失效状态');
1714
- }
1715
- }
1716
- },
1717
- /**
1718
- * getCodeValue
1719
- * @desc:获取代码表过滤后的值
1720
- * @param {String} value 展示数据的代码值
1721
- * @param {String} type 代码表类型
1722
- * @author liufan
1723
- * @date 2022年11月10日
1724
- **/
1725
- getCodeValue(value, type) {
1726
- let val = this[type].filter((item) => item.cciValue == value);
1727
- return val[0].shortName;
1728
- },
1729
- /**
1730
- * getSysInfo
1731
- * @desc:获取代码表
1732
- * @param {String} code 编码code值
1733
- * @author liufan
1734
- * @date 2022年11月10日
1735
- **/
1736
- getSysInfo(code) {
1737
- let params = {
1738
- url: findCodeValues,
1739
- params: { ccCode: code }
1740
- };
1741
- util
1742
- .ajax(params)
1743
- .then((res) => {
1744
- const { status, message, data } = res;
1745
- if (status == 'success') {
1746
- this[code] = data;
1747
- } else {
1748
- this.$message.error(message || '系统错误,请联系管理员!');
1749
- }
1750
- })
1751
- .catch((e) => {});
1752
- },
1753
- /**
1754
- * getListInfo
1755
- * @desc:获取预设列表数据
1756
- * @author liufan
1757
- * @date 2022年11月10日
1758
- **/
1759
- getListInfo() {
1760
- let param = {
1761
- url: toPresetInfoListIndex,
1762
- params: { apprecordid: this.businessId }
1763
- };
1764
- util
1765
- .ajax(param)
1766
- .then((res) => {
1767
- let {
1768
- status,
1769
- message,
1770
- data: {
1771
- presetInfoList,
1772
- presetInfoListHiddenColumns,
1773
- canDelete,
1774
- currentUserHasPresetInfoAuth
1775
- }
1776
- } = res;
1777
- this.loading.close();
1778
- if (status == 'success') {
1779
- if (presetInfoList) {
1780
- this.presetData = presetInfoList;
1781
- this.presetData.map((x, i) => {
1782
- x.sort = i + 1;
1783
- });
1784
- }
1785
- this.presetInfoListHiddenColumns = presetInfoListHiddenColumns;
1786
- this.currentUserHasPresetInfoAuth = currentUserHasPresetInfoAuth;
1787
- this.canDelete = canDelete;
1788
- } else {
1789
- this.$message.error(message || '系统错误,请联系管理员!');
1790
- }
1791
- })
1792
- .catch((err) => {
1793
- this.loading.close();
1794
- if (err.message && err.message !== 'canceled') {
1795
- this.$message.error(err.message);
1796
- }
1797
- });
1798
- }
1799
- }
1800
- };
1801
- </script>
1802
-
1803
- <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
+ @cell-click="handleCellClick"
28
+ :full="height !== 'auto'"
29
+ v-bind="item"
30
+ :data="
31
+ showDoresult
32
+ ? returnData(item.type).filter(
33
+ (x) => x.doresult || x.handleInfo || x.pendstate != 2
34
+ )
35
+ : returnData(item.type)
36
+ "
37
+ @btn-click="handleBtnClick"
38
+ @selection-change="handleSelectionChange"
39
+ ></es-data-table>
40
+ </div>
41
+ </div>
42
+ <es-dialog
43
+ append-to-body
44
+ :close-on-click-modal="false"
45
+ title="查看附件"
46
+ :visible.sync="showFileList"
47
+ v-if="showFileList"
48
+ >
49
+ <FileList
50
+ :ownId="wfpendingid"
51
+ :code="flowTableInfo.adjunctCode"
52
+ :deleted="false"
53
+ :disabled="true"
54
+ @cancel="showFileList = false"
55
+ />
56
+ </es-dialog>
57
+ <es-dialog
58
+ append-to-body
59
+ class="es-flow-list-dialog"
60
+ :close-on-click-modal="false"
61
+ title="流程历史批量删除"
62
+ :visible.sync="showBatchDelete"
63
+ v-if="showBatchDelete"
64
+ >
65
+ <div style="height: 100%" v-loading="batchDeleteLoading">
66
+ <es-data-table
67
+ v-if="showBatchDelete"
68
+ checkbox
69
+ :data="batchdeleteTableList"
70
+ :thead="batchdeleteThead"
71
+ numbers
72
+ full
73
+ @selection-change="handleSelectionChange($event,'batchDelete')"
74
+ style="width: 100%"
75
+ />
76
+ <div class="batch-delete-footer">
77
+ <el-input class="batch-delete-footer-input" v-model="batchdeletereason" placeholder="请输入批量删除的原因"></el-input>
78
+ <es-button type="primary" @click="handleBatchDelete">批量删除</es-button>
79
+ <es-button type="primary" @click="showBatchDelete = false">取消</es-button>
80
+ </div>
81
+ </div>
82
+ </es-dialog>
83
+ <es-dialog
84
+ append-to-body
85
+ class="es-flow-list-dialog"
86
+ :close-on-click-modal="false"
87
+ title="查看删除记录"
88
+ :visible.sync="showDelete"
89
+ v-if="showDelete"
90
+ >
91
+ <div style="height: 100%" v-loading="deleteLoading">
92
+ <es-data-table
93
+ v-if="showDelete"
94
+ :data="deleteTableList"
95
+ :thead="deleteThead"
96
+ @btn-click="handleBtnShowClick"
97
+ @page-size-change="handleSizeChange($event, 'delete')"
98
+ @page-current-change="handleCurrentChange($event, 'delete')"
99
+ numbers
100
+ full
101
+ style="width: 100%"
102
+ @sort-change="sortChange($event, 'delete')"
103
+ :page="pageInfo"
104
+ />
105
+ </div>
106
+ </es-dialog>
107
+ <es-dialog
108
+ append-to-body
109
+ class="es-flow-list-dialog"
110
+ :close-on-click-modal="false"
111
+ title="查看重设记录"
112
+ :visible.sync="showReset"
113
+ v-if="showReset"
114
+ >
115
+ <div style="height: 100%" v-loading="resetLoading">
116
+ <es-data-table
117
+ v-if="showReset"
118
+ :data="resetTableList"
119
+ :thead="resetThead"
120
+ @page-size-change="handleSizeChange($event, 'reset')"
121
+ @page-current-change="handleCurrentChange($event, 'reset')"
122
+ numbers
123
+ full
124
+ style="width: 100%"
125
+ @sort-change="sortChange($event, 'reset')"
126
+ :page="pageInfo"
127
+ />
128
+ </div>
129
+ </es-dialog>
130
+ <es-dialog
131
+ append-to-body
132
+ :close-on-click-modal="false"
133
+ title="查看催办记录"
134
+ :visible.sync="showPress"
135
+ v-if="showPress"
136
+ >
137
+ <div style="height: 100%" v-loading="pressLoading">
138
+ <es-data-table
139
+ v-if="show"
140
+ :data="pressTableList"
141
+ :thead="pressThead"
142
+ @page-size-change="handleSizeChange($event, 'press')"
143
+ @page-current-change="handleCurrentChange($event, 'press')"
144
+ stripe
145
+ full
146
+ style="width: 100%"
147
+ @sort-change="sortChange($event, 'press')"
148
+ :page="pageInfo"
149
+ />
150
+ </div>
151
+ </es-dialog>
152
+ <es-dialog
153
+ append-to-body
154
+ :close-on-click-modal="false"
155
+ :title="modalType == 'del' ? '删除' : '修改意见'"
156
+ :visible.sync="showDel"
157
+ height="auto"
158
+ class="del-flow"
159
+ v-if="showDel"
160
+ >
161
+ <es-form
162
+ v-loading="delLoading"
163
+ :model="formData"
164
+ :contents="formItemList"
165
+ @submit="handleFormSubmit"
166
+ >
167
+ </es-form>
168
+ </es-dialog>
169
+ </div>
170
+ </template>
171
+
172
+ <script>
173
+ import {
174
+ findCodeValues,
175
+ deletePresetInfo,
176
+ pendedhistoryListJson,
177
+ toPresetInfoListIndex,
178
+ pressListJson,
179
+ pendedhistoryListWithCircularReadJson,
180
+ deleteFlow,
181
+ taskReadWithDraw,
182
+ fyListJson,
183
+ circularReadWithdraw,
184
+ resetJson,
185
+ deletedListJson,
186
+ restoredHistory,
187
+ batchDelete,
188
+ modifyFlow
189
+ } from 'eoss-ui/src/config/api';
190
+ import FileList from '../../flow/src/component/FileList.vue';
191
+ import util from 'eoss-ui/src/utils/util';
192
+ export default {
193
+ name: 'EsFlowList',
194
+ components: {
195
+ [FileList.name]: FileList
196
+ },
197
+ props: {
198
+ businessId: {
199
+ type: String,
200
+ default: ''
201
+ },
202
+ getListCount: {
203
+ type: Function,
204
+ default: () => {}
205
+ },
206
+ flowViewType: {
207
+ type: [Number, String],
208
+ default: 0
209
+ },
210
+ hide: {
211
+ type: String,
212
+ default: ''
213
+ },
214
+ hideBtn: {
215
+ type: Boolean,
216
+ default: false
217
+ },
218
+ params: {
219
+ type: Object,
220
+ default: () => {
221
+ return {};
222
+ }
223
+ },
224
+ toolbar: {
225
+ type: Array,
226
+ default: () => []
227
+ },
228
+ headFields: {
229
+ type: Array,
230
+ default: () => []
231
+ },
232
+ contents: {
233
+ type: Array,
234
+ default() {
235
+ return ['flow', 'splitReading', 'preset'];
236
+ }
237
+ },
238
+ numbers: {
239
+ type: Boolean,
240
+ default: false
241
+ },
242
+ height: {
243
+ type: String,
244
+ default: ''
245
+ },
246
+ showDoresult: {
247
+ type: Boolean,
248
+ default: false
249
+ },
250
+ theadWidth: {
251
+ type: Object,
252
+ default: () => {
253
+ return {};
254
+ }
255
+ },
256
+ type: {
257
+ type: String,
258
+ default: ''
259
+ },
260
+ display: Boolean
261
+ },
262
+ inheritAttrs: false,
263
+ data() {
264
+ return {
265
+ pressLoading: false,
266
+ pressTableList: [],
267
+ circularData: [],
268
+ selectList: [],
269
+ batchDeleteSelectList:[],
270
+ flowHeight: '',
271
+ presetHeight: '',
272
+ signHeight: '',
273
+ splitReadingHeight: '',
274
+ circularHeight: '',
275
+ untreatedReadHeight: '',
276
+ processedReadHeight: '',
277
+ untreatedReadData: [],
278
+ processedReadData: [],
279
+ hasCircularReadWithdrawAuthority: false,
280
+ currentPage: 1,
281
+ pageSize: 20,
282
+ flowListCount: {},
283
+ currentUserHasPresetInfoAuth: false,
284
+ pressThead: [
285
+ {
286
+ title: '催办节点',
287
+ align: 'center',
288
+ sortable: true,
289
+ field: 'urge_item'
290
+ },
291
+ {
292
+ title: '催办人名称',
293
+ sortable: true,
294
+ align: 'center',
295
+ field: 'urge_man_name'
296
+ },
297
+ {
298
+ title: '催办时间',
299
+ sortable: true,
300
+ align: 'center',
301
+ field: 'urge_time'
302
+ },
303
+ {
304
+ title: '被催办人名称',
305
+ align: 'center',
306
+ sortable: true,
307
+ field: 'urged_man_name'
308
+ }
309
+ ],
310
+ wfpendingid: '',
311
+ showFileList: false,
312
+ flowData: [],
313
+ splitReadingData: [],
314
+ presetData: [],
315
+ signData: [],
316
+ loading: '', //加载中
317
+ preset_type: [], //预设类型
318
+ showPress: false, //查看催办记录弹窗
319
+ showDelete: false, //删除记录弹窗
320
+ showBatchDelete: false,
321
+ deleteLoading: false,
322
+ batchDeleteLoading: false,
323
+ deleteTableList: [],
324
+ batchdeleteTableList: [],
325
+ batchdeletereason:'',
326
+ batchdeleteThead: [
327
+ {
328
+ title: '步骤',
329
+ align: 'center',
330
+ // sortable: true,
331
+ showOverflowTooltip: true,
332
+ field: 'itemname'
333
+ },
334
+ {
335
+ title: '办理人',
336
+ align: 'center',
337
+ showOverflowTooltip: true,
338
+ width: 120,
339
+ // sortable: true,
340
+ field: 'userName'
341
+ },
342
+ {
343
+ label: '状态',
344
+ field: 'pendstate',
345
+ key: 'zt',
346
+ align: 'center',
347
+ showOverflowTooltip: true,
348
+ width: this.theadWidth.pendstate || 80,
349
+ render: (h, params) => {
350
+ return h('span', {
351
+ style: {
352
+ color:
353
+ params.row.pendstate == 0 || params.row.pendstate == 3
354
+ ? 'red'
355
+ : params.row.pendstate == 1
356
+ ? 'green'
357
+ : params.row.pendstate == -1
358
+ ? 'orange'
359
+ : 'deepskyblue'
360
+ },
361
+ domProps: { innerHTML: params.row.querykeywords }
362
+ });
363
+ }
364
+ },
365
+ {
366
+ title: '办理意见',
367
+ align: 'center',
368
+ showOverflowTooltip: true,
369
+ // sortable: true,
370
+ field: 'doresult'
371
+ },
372
+ {
373
+ title: '办理时间',
374
+ align: 'center',
375
+ showOverflowTooltip: true,
376
+ // sortable: true,
377
+ field: 'doetime',
378
+ render: (h, params) => {
379
+ return h(
380
+ 'span',
381
+ {},
382
+ params.row.doetime
383
+ ? util.formatDate(params.row.doetime, 'yyyy-MM-dd HH:mm')
384
+ : ''
385
+ );
386
+ }
387
+ }
388
+ ],
389
+ deleteThead: [
390
+ {
391
+ title: '步骤',
392
+ align: 'center',
393
+ // sortable: true,
394
+ showOverflowTooltip: true,
395
+ field: 'itemname'
396
+ },
397
+ {
398
+ title: '办理人',
399
+ align: 'center',
400
+ showOverflowTooltip: true,
401
+ width: 120,
402
+ // sortable: true,
403
+ field: 'userName'
404
+ },
405
+ {
406
+ title: '办理意见',
407
+ align: 'center',
408
+ showOverflowTooltip: true,
409
+ width: 240,
410
+ // sortable: true,
411
+ field: 'doresult'
412
+ },
413
+ {
414
+ title: '办理时间',
415
+ align: 'center',
416
+ width: 150,
417
+ showOverflowTooltip: true,
418
+ // sortable: true,
419
+ field: 'doetime'
420
+ },
421
+ {
422
+ title: '删除人',
423
+ showOverflowTooltip: true,
424
+ width: 120,
425
+ align: 'center',
426
+ // sortable: true,
427
+ field: 'querykeywords'
428
+ },
429
+ {
430
+ title: '删除原因',
431
+ align: 'center',
432
+ width: 240,
433
+ showOverflowTooltip: true,
434
+ // sortable: true,
435
+ field: 'upstepInfo'
436
+ },
437
+ {
438
+ title: '删除时间',
439
+ align: 'center',
440
+ width: 150,
441
+ showOverflowTooltip: true,
442
+ // sortable: true,
443
+ field: 'statechangetime'
444
+ },
445
+ {
446
+ title: '操作',
447
+ type: 'handle',
448
+ events: [
449
+ {
450
+ text: '恢复'
451
+ }
452
+ ]
453
+ }
454
+ ],
455
+ showReset: false, //重设记录弹窗
456
+ resetLoading: false,
457
+ resetTableList: [],
458
+ resetThead: [
459
+ {
460
+ title: '重设人登录名',
461
+ align: 'center',
462
+ // sortable: true,
463
+ showOverflowTooltip: true,
464
+ field: 'reset_person_login_name'
465
+ },
466
+ {
467
+ title: '重设人姓名',
468
+ align: 'center',
469
+ showOverflowTooltip: true,
470
+ // sortable: true,
471
+ field: 'reset_person_name'
472
+ },
473
+ {
474
+ title: '重设前节点',
475
+ align: 'center',
476
+ showOverflowTooltip: true,
477
+ // sortable: true,
478
+ field: 'reset_bf_item'
479
+ },
480
+ {
481
+ title: '重设前执行人',
482
+ align: 'center',
483
+ showOverflowTooltip: true,
484
+ // sortable: true,
485
+ field: 'reset_bf_user'
486
+ },
487
+ {
488
+ title: '重设后节点',
489
+ showOverflowTooltip: true,
490
+ align: 'center',
491
+ // sortable: true,
492
+ field: 'reset_af_item'
493
+ },
494
+ {
495
+ title: '重设后执行人',
496
+ align: 'center',
497
+ showOverflowTooltip: true,
498
+ // sortable: true,
499
+ field: 'reset_af_user'
500
+ },
501
+ {
502
+ title: '重设时间',
503
+ align: 'center',
504
+ showOverflowTooltip: true,
505
+ // sortable: true,
506
+ field: 'reset_time'
507
+ },
508
+ {
509
+ title: '操作IP',
510
+ align: 'center',
511
+ showOverflowTooltip: true,
512
+ // sortable: true,
513
+ field: 'reset_ip'
514
+ }
515
+ ],
516
+ modify: false,
517
+ formData: { reason: '' },
518
+
519
+ delLoading: false,
520
+ showDel: false,
521
+ attachmentPaperClipCssStyle: '',
522
+ is_edit: [], //是否可编辑
523
+ flowTableInfo: {
524
+ adjunctCode: '',
525
+ hasAgent: '1' //是否展示代办人 1:展示 0:不展示
526
+ },
527
+ show: false,
528
+ taskReadName: '', //非流程列表名称
529
+ options: [
530
+ { label: '时间排序', value: '1' },
531
+ { label: '部门排序', value: '2' }
532
+ // { label: '树形排序', value: '3' }
533
+ ],
534
+ isShort: 0, //是否隐藏筛选
535
+ viewType: '1', //排序方式
536
+ flowTableList: [], //流程列表
537
+ fyTableList: [], //分阅列表
538
+ showSuggest: 'all', //筛选显示数据
539
+ presetInfoListHiddenColumns: '', //隐藏表格展示数据
540
+ canDelete: false, //是否展示操作按钮
541
+ canBatchDelete: false, //是否可以批量删除
542
+ isSuperRole: false, //是否管理员
543
+ isShowReset: false, //是否显示重设记录
544
+ historyId: '',
545
+ sidx: '',
546
+ sord: 'asc',
547
+ modalType: '',
548
+ total: 0
549
+ };
550
+ },
551
+ watch: {
552
+ flowViewType: {
553
+ handler(val) {
554
+ if (val) {
555
+ this.loading = util.loading(this.$loading, '加载中...');
556
+ this.getFlowList(val);
557
+ }
558
+ },
559
+ deep: true,
560
+ immediate: true
561
+ }
562
+ },
563
+
564
+ computed: {
565
+ formItemList() {
566
+ return [
567
+ {
568
+ name: 'reason',
569
+ label: this.modalType == 'del' ? '删除原因' : '办理意见',
570
+ type: 'textarea',
571
+ placeholder: `请输入${
572
+ this.modalType == 'del' ? '删除原因' : '办理意见'
573
+ }`,
574
+ rules: {
575
+ required: this.modalType == 'del',
576
+ message: '请输入删除原因',
577
+ trigger: 'blur'
578
+ },
579
+ value: '',
580
+ rows: 5
581
+ },
582
+ {
583
+ type: 'submit',
584
+ skin: 'lay-form-btns',
585
+ contents: [
586
+ {
587
+ type: 'primary',
588
+ plain: true,
589
+ text: '保存',
590
+ event: 'confirm'
591
+ }
592
+ ]
593
+ }
594
+ ];
595
+ },
596
+ toolbars() {
597
+ return {
598
+ flow: [
599
+ {
600
+ type: 'text',
601
+ contents: '流程列表'
602
+ },
603
+ {
604
+ type: 'search',
605
+ contents: [
606
+ {
607
+ name: 'showSuggest',
608
+ type: 'radio',
609
+ changeSearch: true,
610
+ data: [
611
+ {
612
+ value: 'all',
613
+ name: '显示全部',
614
+ checked: true
615
+ },
616
+ { value: 'have', name: '显示已填意见' }
617
+ ],
618
+ events: {
619
+ change: (key, value) => {
620
+ this.handleChange(key, value);
621
+ }
622
+ }
623
+ },
624
+
625
+ {
626
+ type: 'select',
627
+ placeholder: '请选择',
628
+ name: 'viewType',
629
+ width: '140px',
630
+ changeSearch: true,
631
+ events: {
632
+ change: (key, value) => {
633
+ this.handleChange(key, value);
634
+ }
635
+ },
636
+ data: [
637
+ {
638
+ value: 1,
639
+ selected: true,
640
+ name: '时间排序'
641
+ },
642
+ {
643
+ value: 2,
644
+ name: '部门排序'
645
+ }
646
+ // {
647
+ // value: 3,
648
+ // name: '树形排序'
649
+ // }
650
+ ]
651
+ }
652
+ ]
653
+ },
654
+ {
655
+ type: 'button',
656
+ name: 'btn',
657
+ width: '140px',
658
+ contents: [
659
+ {
660
+ text: '删除记录',
661
+ type: 'primary',
662
+ hide: !this.canDelete && !this.isSuperRole,
663
+ event: (res) => {
664
+ // click: (key, value) => {
665
+ this.showDelete = true;
666
+ this.currentPage = 1;
667
+ this.pageSize = 20;
668
+ this.getDeletList();
669
+ // }
670
+ }
671
+ },
672
+ {
673
+ text: '批量删除',
674
+ type: 'primary',
675
+ hide: !this.canBatchDelete && !this.isSuperRole,
676
+ event: (res) => {
677
+ // click: (key, value) => {
678
+ this.showBatchDelete = true;
679
+ this.batchdeleteTableList = this.flowData.filter((x) => x.pendstate == 2);
680
+ // }
681
+ }
682
+ },
683
+ {
684
+ text: '重设记录',
685
+ type: 'primary',
686
+ hide: !this.isShowReset,
687
+ event: (res) => {
688
+ // click: (key, value) => {
689
+ this.showReset = true;
690
+ this.currentPage = 1;
691
+ this.pageSize = 20;
692
+ this.getResetList();
693
+ // }
694
+ }
695
+ }
696
+ ]
697
+ }
698
+ ],
699
+ preset: [
700
+ {
701
+ type: 'text',
702
+ contents: '预设列表'
703
+ }
704
+ ],
705
+ sign: [
706
+ {
707
+ type: 'button',
708
+ contents: [
709
+ {
710
+ text: '生成处理签',
711
+ type: 'primary'
712
+ }
713
+ ]
714
+ }
715
+ ],
716
+ splitReading: [
717
+ {
718
+ type: 'text',
719
+ contents:
720
+ (this.taskReadName ? this.taskReadName : '非流程') + '列表'
721
+ }
722
+ ],
723
+ circular: [
724
+ {
725
+ type: 'text',
726
+ contents: '传阅列表'
727
+ }
728
+ ],
729
+ untreatedRead: [
730
+ {
731
+ type: 'text',
732
+ contents: '未处理分阅列表'
733
+ },
734
+ {
735
+ type: 'button',
736
+ contents: [
737
+ {
738
+ text: '撤销分阅',
739
+ fun: 'recallRead'
740
+ }
741
+ ]
742
+ }
743
+ ],
744
+ processedRead: [
745
+ {
746
+ type: 'text',
747
+ contents: '已处理分阅列表'
748
+ }
749
+ ]
750
+ // Reading situation
751
+ };
752
+ },
753
+ pageInfo() {
754
+ return {
755
+ pageNum: this.currentPage,
756
+ pageSize: this.pageSize,
757
+ totalCount: this.total
758
+ };
759
+ },
760
+ theads() {
761
+ const _that = this;
762
+ let newThead = {
763
+ flow: [
764
+ {
765
+ label: '经办部门',
766
+ field: 'deptid',
767
+ align: 'center',
768
+ key: 'jbbm',
769
+ showOverflowTooltip: true,
770
+ width: this.theadWidth.deptid || 150,
771
+ render: (h, params) => {
772
+ return h(
773
+ 'span',
774
+ {},
775
+ params.row.doDeptName
776
+ ? params.row.doDeptName
777
+ : params.row.deptName
778
+ );
779
+ }
780
+ },
781
+ {
782
+ label: '步骤',
783
+ field: 'itemname',
784
+ align: 'center',
785
+ key: 'bz',
786
+ showOverflowTooltip: true,
787
+ width: this.theadWidth.itemname || 110
788
+ },
789
+ {
790
+ label: '办理人',
791
+ field: 'userName',
792
+ align: 'center',
793
+ key: 'blr',
794
+ showOverflowTooltip: true,
795
+ width: this.theadWidth.userName || 110
796
+ },
797
+ {
798
+ label: '办理人部门',
799
+ field: 'deptName',
800
+ align: 'center',
801
+ showOverflowTooltip: true,
802
+ key: 'blrbm',
803
+ width: this.theadWidth.deptName || 110
804
+ },
805
+ {
806
+ label: '状态',
807
+ field: 'pendstate',
808
+ key: 'zt',
809
+ align: 'center',
810
+ showOverflowTooltip: true,
811
+ width: this.theadWidth.pendstate || 80,
812
+ render: (h, params) => {
813
+ return h('span', {
814
+ style: {
815
+ color:
816
+ params.row.pendstate == 0 || params.row.pendstate == 3
817
+ ? 'red'
818
+ : params.row.pendstate == 1
819
+ ? 'green'
820
+ : params.row.pendstate == -1
821
+ ? 'orange'
822
+ : 'deepskyblue'
823
+ },
824
+ domProps: { innerHTML: params.row.querykeywords }
825
+ });
826
+ }
827
+ },
828
+ {
829
+ label: '办理意见',
830
+ field: 'doresult',
831
+ align: 'center',
832
+ width: this.theadWidth.doresult,
833
+ showOverflowTooltip: true,
834
+ key: 'blyj',
835
+ render: (h, params) => {
836
+ if (
837
+ params.row.doresult &&
838
+ (params.row.doresult.startsWith('http') ||
839
+ params.row.doresult.startsWith('https'))
840
+ ) {
841
+ return h('img', {
842
+ attrs: { src: params.row.doresult },
843
+ style: { width: '100px', height: '100px' }
844
+ });
845
+ } else {
846
+ return h('span', {}, [
847
+ params.row.doresult
848
+ ? params.row.doresult + (params.row.handleInfo ? '&' : '')
849
+ : '',
850
+ h(
851
+ 'span',
852
+ { style: { color: '#A5A5A5', marginLeft: '2px' } },
853
+ params.row.handleInfo || ''
854
+ )
855
+ ]);
856
+ }
857
+ }
858
+ },
859
+ {
860
+ label: '验签',
861
+ field: 'authTypeStr',
862
+ align: 'center',
863
+ key: 'yq',
864
+ showOverflowTooltip: true,
865
+ width: this.theadWidth.authTypeStr || 70,
866
+ render: (h, params) => {
867
+ return h(
868
+ 'span',
869
+ { style: { color: 'deepskyblue' } },
870
+ params.row.authTypeStr
871
+ );
872
+ }
873
+ },
874
+ {
875
+ label: '附件',
876
+ key: 'fj',
877
+ field: 'hasAdjunct',
878
+ align: 'center',
879
+ showOverflowTooltip: true,
880
+ width: this.theadWidth.hasAdjunct || 70,
881
+ render: (h, params) => {
882
+ if (params.row.hasAdjunct) {
883
+ return h('span', {
884
+ style: _that.attachmentPaperClipCssStyle
885
+ ? _that.attachmentPaperClipCssStyle
886
+ : { color: 'red', fontSize: '20px' },
887
+ class: 'iconfont es-icon-fujian'
888
+ });
889
+ } else {
890
+ return h('span', {}, '');
891
+ }
892
+ }
893
+ },
894
+ {
895
+ label: '时间',
896
+ field: 'doetime',
897
+ align: 'center',
898
+ key: 'sj',
899
+ showOverflowTooltip: true,
900
+ width: this.theadWidth.doetime || 150,
901
+ render: (h, params) => {
902
+ return h(
903
+ 'span',
904
+ {},
905
+ params.row.doetime
906
+ ? util.formatDate(params.row.doetime, 'yyyy-MM-dd HH:mm')
907
+ : ''
908
+ );
909
+ }
910
+ },
911
+ {
912
+ label: '代办人',
913
+ field: 'douserid',
914
+ align: 'center',
915
+ key: 'dbr',
916
+ showOverflowTooltip: true,
917
+ width: this.theadWidth.douserid || 80,
918
+ hide: _that.flowTableInfo.hasAgent != '1'
919
+ },
920
+ {
921
+ label: '催办',
922
+ field: 'pressTimes',
923
+ align: 'center',
924
+ key: 'cb',
925
+ showOverflowTooltip: true,
926
+ width: this.theadWidth.pressTimes || 150,
927
+ render: (h, params) => {
928
+ return h(
929
+ 'span',
930
+ { style: 'color:deepskyblue;cursor: pointer;' },
931
+ params.row.pressTimes != 0 ? params.row.pressTimes : ''
932
+ );
933
+ }
934
+ },
935
+ {
936
+ title: '操作',
937
+ type: 'handle',
938
+ width: this.modify ? '130' : '100',
939
+ template: '',
940
+ hide: this.hideBtn || (!this.canDelete && !this.modify),
941
+ events: [
942
+ {
943
+ text: '删除',
944
+ rules: (rows) => {
945
+ return rows.canDelete || this.canDelete;
946
+ }
947
+ },
948
+ {
949
+ text: '修改',
950
+ rules: (rows) => {
951
+ return this.modify && rows.pendstate == 2;
952
+ }
953
+ }
954
+ ]
955
+ }
956
+ ],
957
+ preset: this.thead,
958
+ splitReading: [
959
+ {
960
+ label: '经办部门',
961
+ field: 'deptid',
962
+ key: 'jbbm',
963
+ align: 'center',
964
+ showOverflowTooltip: true,
965
+ width: this.theadWidth.deptid || 150
966
+ },
967
+ {
968
+ label: '步骤',
969
+ field: 'itemname',
970
+ align: 'center',
971
+ key: 'bz',
972
+ showOverflowTooltip: true,
973
+ width: this.theadWidth.itemname || 110
974
+ },
975
+ {
976
+ label: '办理人',
977
+ field: 'userName',
978
+ align: 'center',
979
+ key: 'blr',
980
+ showOverflowTooltip: true,
981
+ width: this.theadWidth.userName || 110
982
+ },
983
+ {
984
+ label: '状态',
985
+ field: 'pendstate',
986
+ align: 'center',
987
+ key: 'zt',
988
+ showOverflowTooltip: true,
989
+ width: this.theadWidth.pendstate || 80,
990
+ render: (h, params) => {
991
+ return h('span', {
992
+ style: {
993
+ color:
994
+ params.row.pendstate == 0 || params.row.pendstate == 3
995
+ ? 'red'
996
+ : params.row.pendstate == 1
997
+ ? 'green'
998
+ : params.row.pendstate == -1
999
+ ? 'orange'
1000
+ : 'deepskyblue'
1001
+ },
1002
+ domProps: { innerHTML: params.row.querykeywords }
1003
+ });
1004
+ }
1005
+ },
1006
+ {
1007
+ label: '办理意见',
1008
+ field: 'doresult',
1009
+ align: 'center',
1010
+ key: 'blyj',
1011
+ width: this.theadWidth.doresult,
1012
+ showOverflowTooltip: true,
1013
+ render: (h, params) => {
1014
+ if (
1015
+ params.row.doresult &&
1016
+ (params.row.doresult.startsWith('http') ||
1017
+ params.row.doresult.startsWith('https'))
1018
+ ) {
1019
+ return h('img', {
1020
+ attrs: { src: params.row.doresult },
1021
+ style: { width: '100px', height: '100px' }
1022
+ });
1023
+ } else {
1024
+ return h('span', {}, [
1025
+ params.row.doresult
1026
+ ? params.row.doresult + (params.row.handleInfo ? '&' : '')
1027
+ : '',
1028
+ h(
1029
+ 'span',
1030
+ { style: { color: '#A5A5A5', marginLeft: '2px' } },
1031
+ params.row.handleInfo || ''
1032
+ )
1033
+ ]);
1034
+ }
1035
+ }
1036
+ },
1037
+ {
1038
+ label: '验签',
1039
+ field: 'authTypeStr',
1040
+ align: 'center',
1041
+ key: 'yq',
1042
+ showOverflowTooltip: true,
1043
+ width: this.theadWidth.authTypeStr || 70,
1044
+ render: (h, params) => {
1045
+ return h(
1046
+ 'span',
1047
+ { style: { color: 'deepskyblue' } },
1048
+ params.row.authTypeStr
1049
+ );
1050
+ }
1051
+ },
1052
+ {
1053
+ label: '附件',
1054
+ field: 'hasAdjunct',
1055
+ align: 'center',
1056
+ key: 'fj',
1057
+ showOverflowTooltip: true,
1058
+ width: this.theadWidth.hasAdjunct || 70,
1059
+ render: (h, params) => {
1060
+ if (params.row.hasAdjunct) {
1061
+ return h('span', {
1062
+ style: _that.attachmentPaperClipCssStyle
1063
+ ? _that.attachmentPaperClipCssStyle
1064
+ : { color: 'red', fontSize: '20px' },
1065
+ class: 'iconfont es-icon-fujian'
1066
+ });
1067
+ } else {
1068
+ return h('span', {}, '');
1069
+ }
1070
+ }
1071
+ },
1072
+ {
1073
+ label: '时间',
1074
+ field: 'doetime',
1075
+ align: 'center',
1076
+ key: 'sj',
1077
+ showOverflowTooltip: true,
1078
+ width: this.theadWidth.doetime || 150,
1079
+ render: (h, params) => {
1080
+ return h(
1081
+ 'span',
1082
+ {},
1083
+ params.row.doetime
1084
+ ? util.formatDate(params.row.doetime, 'yyyy-MM-dd HH:mm')
1085
+ : ''
1086
+ );
1087
+ }
1088
+ },
1089
+ {
1090
+ label: '代办人',
1091
+ field: 'douserid',
1092
+ align: 'center',
1093
+ key: 'dbr',
1094
+ showOverflowTooltip: true,
1095
+ width: this.theadWidth.douserid || 80,
1096
+ hide: _that.flowTableInfo.hasAgent != '1'
1097
+ },
1098
+ {
1099
+ label: '催办',
1100
+ field: 'pressTimes',
1101
+ align: 'center',
1102
+ key: 'cb',
1103
+ showOverflowTooltip: true,
1104
+ width: this.theadWidth.pressTimes || 150,
1105
+ render: (h, params) => {
1106
+ return h(
1107
+ 'span',
1108
+ { style: 'color:deepskyblue;cursor: pointer;' },
1109
+ params.row.pressTimes != 0 ? params.row.pressTimes : ''
1110
+ );
1111
+ }
1112
+ },
1113
+ {
1114
+ title: '操作',
1115
+ type: 'handle',
1116
+ width: '100',
1117
+ template: '',
1118
+ hide: this.hideBtn || (!this.canDelete && !this.modify),
1119
+ events: [
1120
+ {
1121
+ text: '删除',
1122
+ rules: (rows) => {
1123
+ return rows.canDelete || this.canDelete;
1124
+ }
1125
+ }
1126
+ ]
1127
+ }
1128
+ ],
1129
+ circular: [
1130
+ {
1131
+ label: '发起人',
1132
+ field: 'circularReadInitiatorName',
1133
+ align: 'center',
1134
+ key: 'fqr',
1135
+ showOverflowTooltip: true,
1136
+ width: this.theadWidth.circularReadInitiatorName || 150
1137
+ },
1138
+ {
1139
+ label: '传阅部门',
1140
+ field: 'circularReadOrgName',
1141
+ align: 'center',
1142
+ key: 'cybm',
1143
+ showOverflowTooltip: true,
1144
+ width: this.theadWidth.circularReadOrgName || 110
1145
+ },
1146
+ {
1147
+ label: '传阅人',
1148
+ field: 'userName',
1149
+ align: 'center',
1150
+ key: 'cyr',
1151
+ showOverflowTooltip: true,
1152
+ width: this.theadWidth.userName || 110
1153
+ },
1154
+ {
1155
+ label: '步骤',
1156
+ field: 'itemname',
1157
+ align: 'center',
1158
+ showOverflowTooltip: true,
1159
+ key: 'bz',
1160
+ width: this.theadWidth.itemname || 110
1161
+ },
1162
+ {
1163
+ label: '状态',
1164
+ field: 'pendstate',
1165
+ key: 'zt',
1166
+ align: 'center',
1167
+ showOverflowTooltip: true,
1168
+ width: this.theadWidth.pendstate || 140,
1169
+ render: (h, params) => {
1170
+ return h('span', {
1171
+ style: {
1172
+ color:
1173
+ params.row.pendstate == 0 || params.row.pendstate == 3
1174
+ ? 'red'
1175
+ : params.row.pendstate == 1
1176
+ ? 'green'
1177
+ : params.row.pendstate == -1
1178
+ ? 'orange'
1179
+ : 'deepskyblue',
1180
+ cursor: this.hasCircularReadWithdrawAuthority
1181
+ ? 'pointer'
1182
+ : 'unset'
1183
+ },
1184
+ domProps: {
1185
+ innerHTML:
1186
+ params.row.querykeywords +
1187
+ (this.hasCircularReadWithdrawAuthority
1188
+ ? `<span style="color:#7AB0D5">(撤回)</span>`
1189
+ : '')
1190
+ }
1191
+ });
1192
+ }
1193
+ },
1194
+ {
1195
+ label: '送达时间',
1196
+ field: 'createtime',
1197
+ align: 'center',
1198
+ key: 'sdsj',
1199
+ showOverflowTooltip: true,
1200
+ width: this.theadWidth.createtime || 170
1201
+ },
1202
+ {
1203
+ label: '办理时间',
1204
+ field: 'doetime',
1205
+ align: 'center',
1206
+ key: 'blsj',
1207
+ showOverflowTooltip: true,
1208
+ width: this.theadWidth.doetime || 150
1209
+ },
1210
+
1211
+ {
1212
+ label: '附件',
1213
+ key: 'fj',
1214
+ field: 'hasAdjunct',
1215
+ align: 'center',
1216
+ showOverflowTooltip: true,
1217
+ width: this.theadWidth.hasAdjunct || 70,
1218
+ render: (h, params) => {
1219
+ if (params.row.hasAdjunct) {
1220
+ return h('span', {
1221
+ style: _that.attachmentPaperClipCssStyle
1222
+ ? _that.attachmentPaperClipCssStyle
1223
+ : { color: 'red', fontSize: '20px' },
1224
+ class: 'iconfont es-icon-fujian'
1225
+ });
1226
+ } else {
1227
+ return h('span', {}, '');
1228
+ }
1229
+ }
1230
+ },
1231
+ {
1232
+ label: '提醒',
1233
+ field: 'pressTimes',
1234
+ align: 'center',
1235
+ key: 'tx',
1236
+ showOverflowTooltip: true,
1237
+ width: this.theadWidth.pressTimes || 150,
1238
+ render: (h, params) => {
1239
+ return h(
1240
+ 'span',
1241
+ { style: 'color:deepskyblue;cursor: pointer;' },
1242
+ params.row.pressTimes
1243
+ );
1244
+ }
1245
+ },
1246
+ {
1247
+ label: '阅结意见 & 说明',
1248
+ field: 'doresult',
1249
+ align: 'center',
1250
+ width: this.theadWidth.doresult,
1251
+ showOverflowTooltip: true,
1252
+ key: 'blyj',
1253
+ render: (h, params) => {
1254
+ if (
1255
+ params.row.doresult &&
1256
+ (params.row.doresult.startsWith('http') ||
1257
+ params.row.doresult.startsWith('https'))
1258
+ ) {
1259
+ return h('img', {
1260
+ attrs: { src: params.row.doresult },
1261
+ style: { width: '100px', height: '100px' }
1262
+ });
1263
+ } else {
1264
+ return h('span', {}, [
1265
+ params.row.doresult
1266
+ ? params.row.doresult + (params.row.handleInfo ? '&' : '')
1267
+ : '',
1268
+ h(
1269
+ 'span',
1270
+ { style: { color: '#A5A5A5', marginLeft: '2px' } },
1271
+ params.row.handleInfo || ''
1272
+ )
1273
+ ]);
1274
+ }
1275
+ }
1276
+ }
1277
+ ],
1278
+ untreatedRead: [
1279
+ {
1280
+ label: '步骤',
1281
+ field: 'itemid',
1282
+ align: 'center',
1283
+ key: 'bz',
1284
+ showOverflowTooltip: true,
1285
+ width: this.theadWidth.itemid || 110
1286
+ },
1287
+ {
1288
+ label: '办理人',
1289
+ field: 'userName',
1290
+ align: 'center',
1291
+ key: 'blr',
1292
+ showOverflowTooltip: true,
1293
+ width: this.theadWidth.userName
1294
+ },
1295
+ {
1296
+ label: '办理状态',
1297
+ field: 'pendstate',
1298
+ key: 'blzt',
1299
+ align: 'center',
1300
+ showOverflowTooltip: true,
1301
+ width: this.theadWidth.pendstate || 110,
1302
+ render: (h, params) => {
1303
+ return h('span', {
1304
+ style: {
1305
+ color:
1306
+ params.row.pendstate == 0 || params.row.pendstate == 3
1307
+ ? 'red'
1308
+ : params.row.pendstate == 1
1309
+ ? 'green'
1310
+ : 'deepskyblue'
1311
+ },
1312
+ domProps: { innerHTML: params.row.querykeywords }
1313
+ });
1314
+ }
1315
+ },
1316
+ {
1317
+ label: '创建时间',
1318
+ field: 'createtime',
1319
+ align: 'center',
1320
+ key: 'cjsj',
1321
+ showOverflowTooltip: true,
1322
+ width: this.theadWidth.createtime || 150,
1323
+ render: (h, params) => {
1324
+ return h(
1325
+ 'span',
1326
+ {},
1327
+ params.row.doetime
1328
+ ? util.formatDate(params.row.createtime, 'yyyy-MM-dd HH:mm')
1329
+ : ''
1330
+ );
1331
+ }
1332
+ }
1333
+ ],
1334
+ processedRead: [
1335
+ {
1336
+ label: '步骤',
1337
+ field: 'itemid',
1338
+ align: 'center',
1339
+ key: 'bz',
1340
+ showOverflowTooltip: true,
1341
+ width: this.theadWidth.itemid || 110
1342
+ },
1343
+ {
1344
+ label: '办理人',
1345
+ field: 'userName',
1346
+ align: 'center',
1347
+ key: 'blr',
1348
+ showOverflowTooltip: true,
1349
+ width: this.theadWidth.userName
1350
+ },
1351
+ {
1352
+ label: '办理状态',
1353
+ field: 'pendstate',
1354
+ key: 'blzt',
1355
+ align: 'center',
1356
+ showOverflowTooltip: true,
1357
+ width: this.theadWidth.pendstate || 110,
1358
+ render: (h, params) => {
1359
+ return h('span', {
1360
+ style: {
1361
+ color:
1362
+ params.row.pendstate == 0 || params.row.pendstate == 3
1363
+ ? 'red'
1364
+ : params.row.pendstate == 1
1365
+ ? 'green'
1366
+ : 'deepskyblue'
1367
+ },
1368
+ domProps: { innerHTML: params.row.querykeywords }
1369
+ });
1370
+ }
1371
+ },
1372
+ {
1373
+ label: '办理时间',
1374
+ field: 'doetime',
1375
+ align: 'center',
1376
+ key: 'blsj',
1377
+ showOverflowTooltip: true,
1378
+ width: this.theadWidth.doetime || 150,
1379
+ render: (h, params) => {
1380
+ return h(
1381
+ 'span',
1382
+ {},
1383
+ params.row.doetime
1384
+ ? util.formatDate(params.row.doetime, 'yyyy-MM-dd HH:mm')
1385
+ : ''
1386
+ );
1387
+ }
1388
+ },
1389
+ {
1390
+ label: '代办人',
1391
+ field: 'douserid',
1392
+ align: 'center',
1393
+ key: 'dbr',
1394
+ showOverflowTooltip: true,
1395
+ width: this.theadWidth.douserid
1396
+ },
1397
+ {
1398
+ label: '意见',
1399
+ field: 'doresult',
1400
+ align: 'center',
1401
+ key: 'yj',
1402
+ showOverflowTooltip: true,
1403
+ width: this.theadWidth.doresult
1404
+ }
1405
+ ]
1406
+ };
1407
+ if (this.numbers) {
1408
+ for (let key in newThead) {
1409
+ newThead[key].unshift({
1410
+ label: '序号',
1411
+ field: 'sort',
1412
+ align: 'center',
1413
+ key: 'xh',
1414
+ showOverflowTooltip: true,
1415
+ width: 50
1416
+ });
1417
+ }
1418
+ }
1419
+ return newThead;
1420
+ },
1421
+ content() {
1422
+ const _that = this;
1423
+ let newContents = JSON.parse(JSON.stringify(this.contents));
1424
+ if (this.contents.indexOf('circular') != -1) {
1425
+ newContents = newContents.filter((item) => item != 'splitReading');
1426
+ }
1427
+ if (newContents.indexOf('readingSituation') != -1) {
1428
+ newContents = ['untreatedRead', 'processedRead'];
1429
+ }
1430
+ let contents = newContents.map((item) => {
1431
+ if (typeof item === 'string') {
1432
+ let data = [];
1433
+ if (_that.headFields.length > 0) {
1434
+ _that.headFields.map((headFiled) => {
1435
+ if (headFiled.showDefault) {
1436
+ _that.theads[item].map((theadItem) => {
1437
+ if (theadItem.field === headFiled.field) {
1438
+ data.push({ ...theadItem, ...headFiled });
1439
+ }
1440
+ });
1441
+ } else {
1442
+ data.push(headFiled);
1443
+ }
1444
+ });
1445
+ _that.theads[item].map((x) => {
1446
+ if (x.type == 'handle') {
1447
+ data.push(x);
1448
+ }
1449
+ });
1450
+ }
1451
+ return {
1452
+ type: item,
1453
+ checkbox: newContents.indexOf('untreatedRead') != -1,
1454
+ toolbar: this.toolbars[item],
1455
+ thead: data.length > 0 ? data : this.theads[item],
1456
+ showFormBtn: false
1457
+ };
1458
+ } else {
1459
+ if (!Object.prototype.hasOwnProperty.call(item, 'toolbar')) {
1460
+ let toolbars = this.toolbars[item.type];
1461
+ return { ...item, toolbars };
1462
+ }
1463
+ if (!Object.prototype.hasOwnProperty.call(item, 'thead')) {
1464
+ let thead = this.theads[item.type];
1465
+ return { ...item, thead };
1466
+ }
1467
+ return item;
1468
+ }
1469
+ });
1470
+ return contents;
1471
+ },
1472
+ newToolbar() {
1473
+ if (this.toolbar && this.toolbar.length > 0) {
1474
+ return this.toolbar;
1475
+ } else {
1476
+ return [];
1477
+ }
1478
+ },
1479
+ thead() {
1480
+ let table = [
1481
+ {
1482
+ title: '步骤',
1483
+ align: 'center',
1484
+ width: this.theadWidth.nodeName || '100',
1485
+ field: 'nodeName'
1486
+ },
1487
+ {
1488
+ title: '预设办理人',
1489
+ width: this.theadWidth.presetUserName || '120',
1490
+ align: 'center',
1491
+ field: 'presetUserName'
1492
+ },
1493
+ {
1494
+ title: '是否可编辑',
1495
+ key: 'sfkbj',
1496
+ align: 'center',
1497
+ width: this.theadWidth.isEdit || '100',
1498
+ render: (h, params) => {
1499
+ return h('span', this.getCodeValue(params.row.isEdit, 'is_edit'));
1500
+ },
1501
+ field: 'isEdit'
1502
+ },
1503
+ {
1504
+ key: 'zt',
1505
+ title: '状态',
1506
+ width: this.theadWidth.statusName || '80',
1507
+ align: 'center',
1508
+ field: 'statusName'
1509
+ },
1510
+ {
1511
+ title: '预设类型',
1512
+ key: 'yslx',
1513
+ width: this.theadWidth.presetType || '120',
1514
+ align: 'center',
1515
+ render: (h, params) => {
1516
+ return h(
1517
+ 'span',
1518
+ this.getCodeValue(params.row.presetType, 'preset_type')
1519
+ );
1520
+ },
1521
+ field: 'presetType'
1522
+ },
1523
+ {
1524
+ title: '流程名称',
1525
+ key: 'lcmc',
1526
+ width: this.theadWidth.processDefName,
1527
+ align: 'center',
1528
+ field: 'processDefName'
1529
+ },
1530
+ {
1531
+ title: '上一步骤',
1532
+ key: 'sybz',
1533
+ align: 'center',
1534
+ width: this.theadWidth.lastNodeName,
1535
+ field: 'lastNodeName'
1536
+ },
1537
+ {
1538
+ title: '创建步骤',
1539
+ key: 'cjbz',
1540
+ align: 'center',
1541
+ width: this.theadWidth.operationNodeName,
1542
+ field: 'operationNodeName'
1543
+ },
1544
+ {
1545
+ title: '创建人',
1546
+ key: 'cjr',
1547
+ width: this.theadWidth.creatorName || '120',
1548
+ align: 'center',
1549
+ field: 'creatorName'
1550
+ },
1551
+ {
1552
+ title: '创建时间',
1553
+ width: this.theadWidth.createTime || '150',
1554
+ key: 'cjsj',
1555
+ align: 'center',
1556
+ render: (h, params) => {
1557
+ return h(
1558
+ 'span',
1559
+ util.formatDate(params.row.createTime, 'yyyy-MM-dd HH:mm')
1560
+ );
1561
+ },
1562
+ field: 'createTime'
1563
+ },
1564
+ {
1565
+ title: '操作区域',
1566
+ type: 'handle',
1567
+ align: 'center',
1568
+ width: '120',
1569
+ events: [
1570
+ {
1571
+ text: '置为失效'
1572
+ }
1573
+ ]
1574
+ }
1575
+ ];
1576
+ if (
1577
+ this.presetInfoListHiddenColumns != undefined &&
1578
+ this.presetInfoListHiddenColumns != ''
1579
+ ) {
1580
+ table = table.filter(
1581
+ (items) => this.presetInfoListHiddenColumns.indexOf(items.key) == -1
1582
+ );
1583
+ }
1584
+ if (!this.canDelete) table.splice(table.length - 1, 1);
1585
+ return table;
1586
+ }
1587
+ },
1588
+ async mounted() {
1589
+ this.loading = util.loading(this.$loading, '加载中...');
1590
+ if (this.contents.indexOf('readingSituation') != -1) {
1591
+ await this.getFyListJson(1);
1592
+ await this.getFyListJson(2);
1593
+ this.getListCount(this.flowListCount);
1594
+ this.show = true;
1595
+ } else {
1596
+ this.getFlowList();
1597
+ }
1598
+ this.getSysInfo('preset_type');
1599
+ this.getSysInfo('is_edit');
1600
+ this.getListInfo();
1601
+ },
1602
+
1603
+ methods: {
1604
+ /**
1605
+ * handleBatchDelete
1606
+ * @desc:批量删除
1607
+ * @author liufan
1608
+ * @date 2025年12月31日
1609
+ **/
1610
+ handleBatchDelete(){
1611
+ if(this.batchDeleteSelectList.length == 0){
1612
+ this.$message.error('请选择需要删除的流程历史数据!');
1613
+ return;
1614
+ }
1615
+ if(!this.batchdeletereason){
1616
+ this.$message.error('请输入批量删除的原因!');
1617
+ return;
1618
+ }
1619
+ let ids = this.batchDeleteSelectList.map(item => item.id).join(',');
1620
+ let params = {
1621
+ url:batchDelete,
1622
+ method: 'POST',
1623
+ data: { ids,reason:this.batchdeletereason }
1624
+ };
1625
+ this.$confirm('您确定要批量删除勾选上的流程历史数据吗?', {
1626
+ confirmButtonText: '确定',
1627
+ cancelButtonText: '取消',
1628
+ type: 'warning'
1629
+ })
1630
+ .then(() => {
1631
+ this.loading = util.loading(this.$loading, '批量删除中...');
1632
+ util
1633
+ .ajax(params)
1634
+ .then((res) => {
1635
+ this.loading.close();
1636
+ if (res.rCode == 0 || res.status == 'success') {
1637
+ this.flowData = this.flowData.filter(item => ids.indexOf(item.id) == -1);
1638
+ this.batchdeleteTableList = this.flowData.filter((x) => x.pendstate == 2)
1639
+ this.batchdeletereason='';
1640
+ this.show = false
1641
+ setTimeout(() => {
1642
+ this.show = true;
1643
+ }, 0);
1644
+ this.$message({
1645
+ message: '删除成功',
1646
+ type: 'success'
1647
+ });
1648
+ }else{
1649
+ this.$message.error(res.message);
1650
+ }
1651
+ })
1652
+ .catch((err) => {
1653
+ this.loading.close();
1654
+ if (err.message && err.message !== 'canceled') {
1655
+ this.$message.error(err.message);
1656
+ }
1657
+ }); }).catch(() => {});
1658
+
1659
+
1660
+ },
1661
+ handleBtnShowClick(val) {
1662
+ const { handle, row } = val;
1663
+ if (handle.text == '恢复') {
1664
+ let params = {
1665
+ url: restoredHistory,
1666
+ params: {
1667
+ id: row.id
1668
+ }
1669
+ };
1670
+ this.$confirm('您确定要恢复这条办理历史吗?', {
1671
+ confirmButtonText: '确定',
1672
+ cancelButtonText: '取消',
1673
+ type: 'warning'
1674
+ })
1675
+ .then(() => {
1676
+ this.loading = util.loading(this.$loading, '恢复中...');
1677
+ util.ajax(params).then((res) => {
1678
+ this.loading.close();
1679
+ if (res.rCode == 0 || res.status == 'success') {
1680
+ this.getDeletList();
1681
+ this.getFlowList();
1682
+ this.$message({
1683
+ message: '恢复成功',
1684
+ type: 'success'
1685
+ });
1686
+ }
1687
+ });
1688
+ // _that.subMit(res.results,type)
1689
+ })
1690
+ .catch(() => {});
1691
+ }
1692
+ },
1693
+ recallReadFun() {
1694
+ const _that = this;
1695
+ let pendingIds = _that.selectList.map((x) => x.id).join(',');
1696
+ let params = {
1697
+ url: taskReadWithDraw,
1698
+ params: {
1699
+ pendingIds
1700
+ }
1701
+ };
1702
+ _that.loading = util.loading(_that.$loading, '撤销中...');
1703
+ util.ajax(params).then(async (res) => {
1704
+ _that.loading.close();
1705
+ if (res.rCode == 0 || res.status == 'success') {
1706
+ _that.$message.success('撤销成功!');
1707
+ await _that.getFyListJson(1);
1708
+ _that.getListCount(_that.flowListCount);
1709
+ } else {
1710
+ _that.$message.error(res.message);
1711
+ }
1712
+ });
1713
+ },
1714
+ recallRead() {
1715
+ if (this.selectList.length == 0)
1716
+ return this.$message.warning('请选择需要撤销的分阅');
1717
+ this.$confirm('是否确认撤销选中的分阅?', '提示', {
1718
+ confirmButtonText: '确定',
1719
+ cancelButtonText: '取消',
1720
+ type: 'warning'
1721
+ }).then(() => {
1722
+ this.recallReadFun();
1723
+ });
1724
+ },
1725
+ handleSelectionChange(val,type) {
1726
+ if(type == 'batchDelete'){
1727
+ this.batchDeleteSelectList = val
1728
+ }else{
1729
+ this.selectList = val;
1730
+ }
1731
+ },
1732
+ handledraw(pendedHistoryId) {
1733
+ let params = {
1734
+ url: circularReadWithdraw,
1735
+ params: { pendedHistoryId }
1736
+ };
1737
+ this.$confirm('是否确定撤回当前传阅', {
1738
+ confirmButtonText: '确定',
1739
+ cancelButtonText: '取消',
1740
+ type: 'warning'
1741
+ })
1742
+ .then(() => {
1743
+ this.loading = util.loading(this.$loading, '撤回中...');
1744
+ util.ajax(params).then((res) => {
1745
+ this.loading.close();
1746
+ if (res.rCode == 0) {
1747
+ this.$message({
1748
+ message: '撤回成功',
1749
+ type: 'success'
1750
+ });
1751
+ this.getCircularReadList();
1752
+ }
1753
+ });
1754
+ // _that.subMit(res.results,type)
1755
+ })
1756
+ .catch(() => {});
1757
+ },
1758
+ getCircularReadList() {
1759
+ const _that = this;
1760
+ let params = {
1761
+ url: pendedhistoryListWithCircularReadJson,
1762
+ params: { apprecordid: _that.businessId }
1763
+ };
1764
+ util.ajax(params).then((res) => {
1765
+ if (res.status == 'success' || res.rCode == 0) {
1766
+ _that.circularData = res.data.fyHistoryList;
1767
+ _that.circularData.map((x, i) => {
1768
+ x.sort = i + 1;
1769
+ });
1770
+ _that.hasCircularReadWithdrawAuthority =
1771
+ res.data.hasCircularReadWithdrawAuthority;
1772
+ _that.$nextTick(() => {
1773
+ _that.getListCount(_that.flowListCount);
1774
+ });
1775
+ }
1776
+ });
1777
+ },
1778
+ returnData(type) {
1779
+ switch (type) {
1780
+ case 'preset':
1781
+ this.flowListCount.preset = this.presetData.length;
1782
+ this.flowListCount.presetData = this.presetData;
1783
+ return this.presetData;
1784
+ case 'sign':
1785
+ this.flowListCount.sign = this.signData.length;
1786
+ this.flowListCount.signData = this.signData;
1787
+ return this.signData;
1788
+ case 'splitReading':
1789
+ this.flowListCount.splitReading = this.splitReadingData.length;
1790
+ this.flowListCount.splitReadingData = this.splitReadingData;
1791
+ return this.splitReadingData;
1792
+ case 'circular':
1793
+ this.flowListCount.circular = this.circularData.length;
1794
+ this.flowListCount.circularData = this.circularData;
1795
+ return this.circularData;
1796
+ case 'untreatedRead':
1797
+ this.flowListCount.untreatedRead = this.untreatedReadData.length;
1798
+ this.flowListCount.untreatedReadData = this.untreatedReadData;
1799
+ return this.untreatedReadData;
1800
+ case 'processedRead':
1801
+ this.flowListCount.processedRead = this.processedReadData.length;
1802
+ this.flowListCount.processedReadData = this.processedReadData;
1803
+ return this.processedReadData;
1804
+ default:
1805
+ this.flowListCount.flow = this.flowData.length;
1806
+ this.flowListCount.flowData = this.flowData;
1807
+ return this.flowData;
1808
+ }
1809
+ },
1810
+ handleCellClick(row, column) {
1811
+ if (column.property == 'hasAdjunct' && row.hasAdjunct) {
1812
+ this.showFile(row.wfpendingid);
1813
+ } else if (column.property == 'pressTimes') {
1814
+ if (row.pressTimes != 0) {
1815
+ this.goPress(row.id);
1816
+ }
1817
+ } else if (
1818
+ column.property == 'pendstate' &&
1819
+ this.hasCircularReadWithdrawAuthority
1820
+ ) {
1821
+ this.handledraw(row.id);
1822
+ }
1823
+ },
1824
+ handleBtnClick(data) {
1825
+ // recallRead
1826
+ const { handle, row } = data;
1827
+ if (handle.text == '删除' || handle.text == '修改') {
1828
+ this.formData.reason = handle.text == '修改' ? row.doresult : '';
1829
+ this.del(row.id, handle.text == '删除' ? 'del' : 'modify');
1830
+ } else if (handle.fun == 'recallRead') {
1831
+ this[handle.fun]();
1832
+ }else if(handle.text == '置为失效'){
1833
+ if (row.status == 0) {
1834
+ this.$confirm('您确定要置为失效吗?')
1835
+ .then(() => {
1836
+ this.loading = util.loading(this.$loading, '提交中...');
1837
+ let param = {
1838
+ url: deletePresetInfo,
1839
+ headers: { Accept: 'application/json,text/plain' },
1840
+ method: 'post',
1841
+ data: { id:row.id }
1842
+ };
1843
+ util
1844
+ .ajax(param)
1845
+ .then((res) => {
1846
+ const { status, message } = res;
1847
+ this.loading.close();
1848
+ if (status === 'success') {
1849
+ this.$message.success('操作成功');
1850
+ this.getListInfo();
1851
+ } else {
1852
+ this.$message.error(message || '系统错误,请联系管理员!');
1853
+ }
1854
+ })
1855
+ .catch((err) => {
1856
+ this.loading.close();
1857
+ if (err.message && err.message !== 'canceled') {
1858
+ this.$message.error(err.message);
1859
+ }
1860
+ });
1861
+ })
1862
+ .catch((e) => {
1863
+ // on cancel
1864
+ });
1865
+ } else {
1866
+ this.$message.warning('当前数据已为失效状态');
1867
+ }
1868
+ }
1869
+ },
1870
+ /**
1871
+ * handleFormSubmit
1872
+ * @desc:删除节点点击事件
1873
+ * @param {Object} formData 点击删除的form数据
1874
+ * @author liufan
1875
+ * @date 2022年11月29日
1876
+ **/
1877
+ handleFormSubmit(formData) {
1878
+ this.delLoading = true;
1879
+ let params = {
1880
+ url: this.modalType == 'del' ? deleteFlow : modifyFlow,
1881
+ method: 'POST',
1882
+ data: { id: this.historyId, reason: formData.reason }
1883
+ };
1884
+ if (this.modalType != 'del') {
1885
+ delete params.data.reason;
1886
+ params.data.doResult = formData.reason;
1887
+ params.data.doresult = formData.reason;
1888
+ }
1889
+ util
1890
+ .ajax(params)
1891
+ .then((res) => {
1892
+ const { status, message } = res;
1893
+ this.delLoading = false;
1894
+ if (status === 'success') {
1895
+ this.$message.success(
1896
+ `${this.modalType == 'del' ? '删除' : '修改'}成功`
1897
+ );
1898
+ this.showDel = false;
1899
+ this.handleChange();
1900
+ } else {
1901
+ this.$message.error(message || '系统错误,请联系管理员!');
1902
+ }
1903
+ })
1904
+ .catch((err) => {
1905
+ this.delLoading = false;
1906
+ if (err.message && err.message !== 'canceled') {
1907
+ this.$message.error(err.message);
1908
+ }
1909
+ });
1910
+ },
1911
+ /**
1912
+ * del
1913
+ * @desc:展示删除弹窗
1914
+ * @param {String} id 当前点击数据id
1915
+ * @author liufan
1916
+ * @date 2022年11月29日
1917
+ **/
1918
+ del(id, type) {
1919
+ this.modalType = type;
1920
+ this.historyId = id;
1921
+ this.showDel = true;
1922
+ },
1923
+ /**
1924
+ * handleCurrentChange
1925
+ * @desc:监听页码变化
1926
+ * @param {String} val 当前页
1927
+ * @author liufan
1928
+ * @date 2022年11月29日
1929
+ **/
1930
+ handleCurrentChange(val, type) {
1931
+ this.currentPage = val;
1932
+ if (type == 'press') {
1933
+ this.getPressList();
1934
+ }
1935
+ },
1936
+ /**
1937
+ * handleSizeChange
1938
+ * @desc:监听每页数据显示数量变化
1939
+ * @param {String} val 每页展示数量
1940
+ * @author liufan
1941
+ * @date 2022年11月29日
1942
+ **/
1943
+ handleSizeChange(val) {
1944
+ this.pageSize = val;
1945
+ if (type == 'press') {
1946
+ this.getPressList();
1947
+ }
1948
+ },
1949
+ /**
1950
+ * sortChange
1951
+ * @desc:监听排序变化
1952
+ * @param {Object} info 需要排序的字段及排序方式
1953
+ * @author liufan
1954
+ * @date 2022年11月29日
1955
+ **/
1956
+ sortChange(info, type) {
1957
+ let { prop } = info;
1958
+ this.sidx = prop;
1959
+ this.sord = this.sord == 'asc' ? 'desc' : 'asc';
1960
+ if (type == 'press') {
1961
+ this.getPressList();
1962
+ } else if (type == 'reset') {
1963
+ this.getResetList();
1964
+ } else if (type == 'delete') {
1965
+ this.getDeletList();
1966
+ }
1967
+ },
1968
+ /**
1969
+ * getDeletList
1970
+ * @desc:删除列表数据
1971
+ * @author liufan
1972
+ * @date 2025年12月30日
1973
+ **/
1974
+ getDeletList() {
1975
+ const { pageSize, sidx, sord, currentPage, businessId } = this;
1976
+ this.deleteLoading = true;
1977
+ let params = {
1978
+ url: deletedListJson + '?apprecordId=' + businessId,
1979
+ method: 'POST',
1980
+ data: { page: currentPage, rows: pageSize, sidx, sord }
1981
+ };
1982
+ util
1983
+ .ajax(params)
1984
+ .then((res) => {
1985
+ this.deleteTableList = res.data;
1986
+ this.total = res.totalrecords;
1987
+ this.deleteLoading = false;
1988
+ })
1989
+ .catch((err) => {
1990
+ this.deleteLoading = false;
1991
+ if (err.message && err.message !== 'canceled') {
1992
+ this.$message.error(err.message);
1993
+ }
1994
+ });
1995
+ },
1996
+ /**
1997
+ * getResetList
1998
+ * @desc:重设列表数据
1999
+ * @author liufan
2000
+ * @date 2025年12月30日
2001
+ **/
2002
+ getResetList() {
2003
+ const { pageSize, sidx, sord, currentPage, businessId } = this;
2004
+ this.resetLoading = true;
2005
+ let params = {
2006
+ url: resetJson + '?appRecordId=' + businessId,
2007
+ params: { appRecordId: businessId },
2008
+ method: 'POST',
2009
+ data: { page: currentPage, rows: pageSize, sidx, sord }
2010
+ };
2011
+ util
2012
+ .ajax(params)
2013
+ .then((res) => {
2014
+ this.resetTableList = res.data;
2015
+ this.total = res.totalrecords;
2016
+ this.resetLoading = false;
2017
+ })
2018
+ .catch((err) => {
2019
+ this.resetLoading = false;
2020
+ if (err.message && err.message !== 'canceled') {
2021
+ this.$message.error(err.message);
2022
+ }
2023
+ });
2024
+ },
2025
+ /**
2026
+ * getPressList
2027
+ * @desc:催办列表数据
2028
+ * @author liufan
2029
+ * @date 2022年11月29日
2030
+ **/
2031
+ getPressList() {
2032
+ const { historyId, pageSize, sidx, sord, currentPage } = this;
2033
+ this.pressLoading = true;
2034
+ let params = {
2035
+ url: pressListJson,
2036
+ params: { historyId },
2037
+ method: 'POST',
2038
+ data: { page: currentPage, rows: pageSize, sidx, sord, historyId }
2039
+ };
2040
+ util
2041
+ .ajax(params)
2042
+ .then((res) => {
2043
+ this.pressTableList = res.data;
2044
+ this.total = res.totalrecords;
2045
+ this.pressLoading = false;
2046
+ })
2047
+ .catch((err) => {
2048
+ this.pressLoading = false;
2049
+ if (err.message && err.message !== 'canceled') {
2050
+ this.$message.error(err.message);
2051
+ }
2052
+ });
2053
+ },
2054
+ /**
2055
+ * goPress
2056
+ * @desc:催办列表查看
2057
+ * @param {String} id 催办列表id
2058
+ * @author liufan
2059
+ * @date 2022年11月29日
2060
+ **/
2061
+ goPress(id) {
2062
+ this.historyId = id;
2063
+ this.showPress = true;
2064
+ this.getPressList();
2065
+ },
2066
+ /**
2067
+ * showFile
2068
+ * @desc:附件查看
2069
+ * @param {String} ownId 附件id
2070
+ * @author liufan
2071
+ * @date 2022年11月29日
2072
+ **/
2073
+ showFile(ownId) {
2074
+ this.wfpendingid = ownId;
2075
+ this.showFileList = true;
2076
+ },
2077
+ /**
2078
+ * handleChange
2079
+ * @desc:切换排序方式
2080
+ * @author liufan
2081
+ * @date 2022年11月22日
2082
+ **/
2083
+ handleChange(key, value) {
2084
+ if (value) {
2085
+ this[key] = value;
2086
+ }
2087
+ // this.show = false;
2088
+ this.loading = util.loading(this.$loading, '加载中...');
2089
+ this.getFlowList();
2090
+ },
2091
+ async getFyListJson(type) {
2092
+ let params = {
2093
+ url: fyListJson,
2094
+ params: {
2095
+ appRecordId: this.businessId,
2096
+ status: type
2097
+ }
2098
+ };
2099
+ await util.ajax(params).then((res) => {
2100
+ if (type == 1) {
2101
+ this.untreatedReadData = res.data;
2102
+ this.untreatedReadData.map((x, i) => {
2103
+ x.sort = i + 1;
2104
+ });
2105
+ } else {
2106
+ this.processedReadData = res.data;
2107
+ this.processedReadData.map((x, i) => {
2108
+ x.sort = i + 1;
2109
+ });
2110
+ }
2111
+ });
2112
+ },
2113
+ /**
2114
+ * getFlowList
2115
+ * @desc:获取流程列表
2116
+ * @author liufan
2117
+ * @date 2022年11月22日
2118
+ **/
2119
+ getFlowList(type) {
2120
+ let params = {
2121
+ url: pendedhistoryListJson,
2122
+ params: {
2123
+ apprecordid: this.businessId,
2124
+ pendingAttr: 0,
2125
+ viewType: type || this.viewType,
2126
+ showSuggest: this.showSuggest,
2127
+ ...this.params
2128
+ }
2129
+ };
2130
+ util
2131
+ .ajax(params)
2132
+ .then((res) => {
2133
+ let {
2134
+ status,
2135
+ message,
2136
+ data: {
2137
+ adjunctCode,
2138
+ wfHistoryList,
2139
+ fyHistoryList,
2140
+ hasAgent,
2141
+ isShort,
2142
+ modify,
2143
+ canDelete,
2144
+ canBatchDelete,
2145
+ isSuperRole,
2146
+ isShowReset,
2147
+ taskReadName
2148
+ }
2149
+ } = res;
2150
+ this.loading.close();
2151
+ if (status == 'success') {
2152
+ this.flowTableInfo.adjunctCode = adjunctCode;
2153
+ this.flowTableInfo.hasAgent = hasAgent;
2154
+ this.attachmentPaperClipCssStyle =
2155
+ res.data.attachmentPaperClipCssStyle;
2156
+ this.isShort = isShort;
2157
+ this.taskReadName = taskReadName;
2158
+ this.flowData = wfHistoryList;
2159
+ this.flowData.map((x, i) => {
2160
+ x.sort = i + 1;
2161
+ if (!x.deptid) {
2162
+ x.deptid = x.deptName;
2163
+ }
2164
+ });
2165
+ this.splitReadingData = fyHistoryList;
2166
+ this.splitReadingData.map((x, i) => {
2167
+ x.sort = i + 1;
2168
+ });
2169
+ this.modify = modify;
2170
+ this.canDelete = canDelete;
2171
+ this.canBatchDelete = canBatchDelete;
2172
+ this.isSuperRole = isSuperRole;
2173
+ this.isShowReset = isShowReset;
2174
+ this.show = true;
2175
+ if (this.height == 'auto') {
2176
+ this.$nextTick(() => {
2177
+ this.content.map((x) => {
2178
+ this[`${x.type}Height`] = this.$refs[x.type][0].offsetHeight;
2179
+ });
2180
+ });
2181
+ }
2182
+ if (this.contents.indexOf('circular') != -1) {
2183
+ this.getCircularReadList();
2184
+ } else {
2185
+ this.$nextTick(() => {
2186
+ this.getListCount(this.flowListCount);
2187
+ });
2188
+ }
2189
+ } else {
2190
+ this.$message.error(message || '系统错误,请联系管理员!');
2191
+ }
2192
+ })
2193
+ .catch((err) => {
2194
+ this.loading.close();
2195
+ if (err.message && err.message !== 'canceled') {
2196
+ this.$message.error(err.message);
2197
+ }
2198
+ this.show = true;
2199
+ });
2200
+ },
2201
+ /**
2202
+ * handleClick
2203
+ * @desc:表单点击事件
2204
+ * @param {Object} val 当前点击行数据及按钮
2205
+ * @author liufan
2206
+ * @date 2022年11月10日
2207
+ **/
2208
+ handleClick(val) {
2209
+ const {
2210
+ handle: { text },
2211
+ row: { id, status }
2212
+ } = val;
2213
+ if (text === '置为失效') {
2214
+ if (status == 0) {
2215
+ this.$confirm('您确定要置为失效吗?')
2216
+ .then(() => {
2217
+ this.loading = util.loading(this.$loading, '提交中...');
2218
+ let param = {
2219
+ url: deletePresetInfo,
2220
+ headers: { Accept: 'application/json,text/plain' },
2221
+ method: 'post',
2222
+ params: { id }
2223
+ };
2224
+ util
2225
+ .ajax(param)
2226
+ .then((res) => {
2227
+ const { status, message } = res;
2228
+ this.loading.close();
2229
+ if (status === 'success') {
2230
+ this.$message.success('操作成功');
2231
+ this.getListInfo();
2232
+ } else {
2233
+ this.$message.error(message || '系统错误,请联系管理员!');
2234
+ }
2235
+ })
2236
+ .catch((err) => {
2237
+ this.loading.close();
2238
+ if (err.message && err.message !== 'canceled') {
2239
+ this.$message.error(err.message);
2240
+ }
2241
+ });
2242
+ })
2243
+ .catch((e) => {
2244
+ // on cancel
2245
+ });
2246
+ } else {
2247
+ this.$message.warning('当前数据已为失效状态');
2248
+ }
2249
+ }
2250
+ },
2251
+ /**
2252
+ * getCodeValue
2253
+ * @desc:获取代码表过滤后的值
2254
+ * @param {String} value 展示数据的代码值
2255
+ * @param {String} type 代码表类型
2256
+ * @author liufan
2257
+ * @date 2022年11月10日
2258
+ **/
2259
+ getCodeValue(value, type) {
2260
+ let val = this[type].filter((item) => item.cciValue == value);
2261
+ return val[0].shortName;
2262
+ },
2263
+ /**
2264
+ * getSysInfo
2265
+ * @desc:获取代码表
2266
+ * @param {String} code 编码code值
2267
+ * @author liufan
2268
+ * @date 2022年11月10日
2269
+ **/
2270
+ getSysInfo(code) {
2271
+ let params = {
2272
+ url: findCodeValues,
2273
+ params: { ccCode: code }
2274
+ };
2275
+ util
2276
+ .ajax(params)
2277
+ .then((res) => {
2278
+ const { status, message, data } = res;
2279
+ if (status == 'success') {
2280
+ this[code] = data;
2281
+ } else {
2282
+ this.$message.error(message || '系统错误,请联系管理员!');
2283
+ }
2284
+ })
2285
+ .catch((e) => {});
2286
+ },
2287
+ /**
2288
+ * getListInfo
2289
+ * @desc:获取预设列表数据
2290
+ * @author liufan
2291
+ * @date 2022年11月10日
2292
+ **/
2293
+ getListInfo() {
2294
+ let param = {
2295
+ url: toPresetInfoListIndex,
2296
+ params: { apprecordid: this.businessId }
2297
+ };
2298
+ util
2299
+ .ajax(param)
2300
+ .then((res) => {
2301
+ let {
2302
+ status,
2303
+ message,
2304
+ data: {
2305
+ presetInfoList,
2306
+ presetInfoListHiddenColumns,
2307
+ canDelete,
2308
+ currentUserHasPresetInfoAuth
2309
+ }
2310
+ } = res;
2311
+ this.loading.close();
2312
+ if (status == 'success') {
2313
+ if (presetInfoList) {
2314
+ this.presetData = presetInfoList;
2315
+ this.presetData.map((x, i) => {
2316
+ x.sort = i + 1;
2317
+ });
2318
+ }
2319
+ this.presetInfoListHiddenColumns = presetInfoListHiddenColumns;
2320
+ this.currentUserHasPresetInfoAuth = currentUserHasPresetInfoAuth;
2321
+ this.canDelete = canDelete;
2322
+ } else {
2323
+ this.$message.error(message || '系统错误,请联系管理员!');
2324
+ }
2325
+ })
2326
+ .catch((err) => {
2327
+ this.loading.close();
2328
+ if (err.message && err.message !== 'canceled') {
2329
+ this.$message.error(err.message);
2330
+ }
2331
+ });
2332
+ }
2333
+ }
2334
+ };
2335
+ </script>
2336
+
2337
+ <style></style>