eoss-ui 0.6.45 → 0.6.47

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