cloud-web-corejs 1.0.128 → 1.0.130

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 (55) hide show
  1. package/package.json +1 -1
  2. package/src/components/VabUpload/view.vue +138 -55
  3. package/src/components/baseInputExport/mixins.js +1 -1
  4. package/src/components/errorMsg/mixins.js +1 -2
  5. package/src/components/excelImport/mixins.js +2 -1
  6. package/src/components/jsonImport/mixins.js +2 -1
  7. package/src/components/langImport/mixins.js +17 -16
  8. package/src/components/wf/content.vue +772 -411
  9. package/src/components/wf/mixins/wfFlowEleScriptDialog.js +3 -0
  10. package/src/components/wf/wf.js +1 -1
  11. package/src/components/wf/wfFlowEleScriptDialog.vue +89 -0
  12. package/src/components/xform/form-designer/designer.js +3 -2
  13. package/src/components/xform/form-designer/form-widget/container-widget/containerMixin.js +3 -3
  14. package/src/components/xform/form-designer/form-widget/container-widget/data-table-mixin.js +9 -9
  15. package/src/components/xform/form-designer/form-widget/container-widget/data-table-widget.vue +4 -1
  16. package/src/components/xform/form-designer/form-widget/dialog/importDialogMixin.js +2 -1
  17. package/src/components/xform/form-designer/form-widget/field-widget/fieldMixin.js +3 -1
  18. package/src/components/xform/form-designer/form-widget/field-widget/form-item-wrapper.vue +17 -4
  19. package/src/components/xform/form-designer/form-widget/field-widget/import-button-widget.vue +4 -0
  20. package/src/components/xform/form-designer/form-widget/field-widget/oplog-widget.vue +185 -0
  21. package/src/components/xform/form-designer/form-widget/field-widget/print-button-widget.vue +1 -1
  22. package/src/components/xform/form-designer/form-widget/field-widget/print-detail-button-widget.vue +108 -0
  23. package/src/components/xform/form-designer/form-widget/field-widget/singleUpload-widget.vue +145 -0
  24. package/src/components/xform/form-designer/form-widget/field-widget/status-widget.vue +13 -4
  25. package/src/components/xform/form-designer/form-widget/field-widget/vabUpload2-widget.vue +725 -0
  26. package/src/components/xform/form-designer/indexMixin.js +3 -2
  27. package/src/components/xform/form-designer/setting-panel/form-setting.vue +1 -1
  28. package/src/components/xform/form-designer/setting-panel/option-items-setting.vue +376 -366
  29. package/src/components/xform/form-designer/setting-panel/property-editor/container-data-table/columnRenderDialog.vue +0 -1
  30. package/src/components/xform/form-designer/setting-panel/property-editor/container-data-table/data-table-editor.vue +372 -253
  31. package/src/components/xform/form-designer/setting-panel/property-editor/container-data-table/table-column-dialog.vue +9 -43
  32. package/src/components/xform/form-designer/setting-panel/property-editor/field-import-button/import-button-editor.vue +7 -0
  33. package/src/components/xform/form-designer/setting-panel/property-editor/field-print-button/print-button-editor.vue +8 -0
  34. package/src/components/xform/form-designer/setting-panel/property-editor/field-print-button/print-detail-button-editor.vue +91 -0
  35. package/src/components/xform/form-designer/setting-panel/property-editor/field-status/field-status-editor.vue +37 -30
  36. package/src/components/xform/form-designer/setting-panel/property-editor/field-vabUpload2/field-vabUpload2-editor.vue +62 -0
  37. package/src/components/xform/form-designer/setting-panel/property-editor/formScriptEnabled-editor.vue +19 -14
  38. package/src/components/xform/form-designer/setting-panel/property-editor/oplog-editor.vue +31 -0
  39. package/src/components/xform/form-designer/setting-panel/propertyRegister.js +5 -1
  40. package/src/components/xform/form-designer/widget-panel/indexMixin.js +19 -19
  41. package/src/components/xform/form-designer/widget-panel/widgetsConfig.js +132 -0
  42. package/src/components/xform/form-render/container-item/containerItemMixin.js +12 -11
  43. package/src/components/xform/form-render/container-item/data-table-item.vue +13 -10
  44. package/src/components/xform/form-render/container-item/data-table-mixin.js +5 -4
  45. package/src/components/xform/form-render/indexMixin.js +3 -2
  46. package/src/components/xform/lang/zh-CN.js +3 -0
  47. package/src/components/xform/utils/util.js +1 -1451
  48. package/src/utils/request.js +1 -1
  49. package/src/utils/vab.js +1 -1
  50. package/src/views/user/notify_message/dialog.vue +24 -19
  51. package/src/views/user/outLink/form_view.vue +211 -211
  52. package/src/views/user/wf/wfReport/index.vue +448 -0
  53. package/src/views/user/wf/wf_manage/list.vue +344 -251
  54. package/src/views/user/wf/wf_transfer_setting/edit.vue +229 -0
  55. package/src/views/user/wf/wf_transfer_setting/list.vue +308 -0
@@ -0,0 +1,448 @@
1
+ <template>
2
+ <div id="containt">
3
+ <div class="filter-btns">
4
+ <el-select class="f-btn" v-model="formData.dateRange" @change="handleSelectChange">
5
+ <el-option :label="$t1('本日')" :value="1"></el-option>
6
+ <el-option :label="$t1('本周')" :value="2"></el-option>
7
+ <el-option :label="$t1('本月')" :value="3"></el-option>
8
+ <el-option :label="$t1('本年')" :value="4"></el-option>
9
+ </el-select>
10
+ <el-select
11
+ class="f-btn"
12
+ v-model="formData.stat"
13
+ :placeholder="$t2('全部状态', 'components.wf.wfReport.allStatus')"
14
+ clearable
15
+ @clear="formData.stat = null"
16
+ @change="handleSelectChange"
17
+ >
18
+ <el-option
19
+ :label="$t2('审核中', 'components.wf.wfStatus1')"
20
+ :value="1"
21
+ ></el-option>
22
+ <el-option
23
+ :label="$t2('已完成', 'components.wf.wfStatus2')"
24
+ :value="2"
25
+ ></el-option>
26
+ <el-option
27
+ :label="$t2('已驳回', 'components.wf.wfStatus3')"
28
+ :value="3"
29
+ ></el-option>
30
+ </el-select>
31
+ </div>
32
+ <div class="sum-statistics">
33
+ <div class="item">
34
+ <p>总流程数</p>
35
+ <b>{{ countData.total || 0 }}</b>
36
+ <!-- <p class="f-gray">较上月增长 12%</p> -->
37
+ <i class="ico iconfont icon-liuchengshu"></i>
38
+ </div>
39
+ <div class="item">
40
+ <p>快速处理</p>
41
+ <b>{{ countData.count_1 || 0 }}</b>
42
+ <p class="f-gray"><1天完成</p>
43
+ <i class="ico iconfont icon-kuaisuchuli"></i>
44
+ </div>
45
+ <div class="item">
46
+ <p>正常处理</p>
47
+ <b>{{ countData.count_1_3 || 0 }}</b>
48
+ <p class="f-gray">1-3天完成</p>
49
+ <i class="ico iconfont icon-zhengchangchuli"></i>
50
+ </div>
51
+ <div class="item">
52
+ <p>缓慢处理</p>
53
+ <b>{{ countData.count_3_7 || 0 }}</b>
54
+ <p class="f-gray">3-7天完成</p>
55
+ <i class="ico iconfont icon-huanmanchuli"></i>
56
+ </div>
57
+ <div class="item">
58
+ <p>超时处理</p>
59
+ <b>{{ countData.count_7 || 0 }}</b>
60
+ <p class="f-gray">>7天完成</p>
61
+ <i class="ico iconfont icon-chaoshichuli"></i>
62
+ </div>
63
+ </div>
64
+ <el-row style="margin: 0 -5px">
65
+ <el-col :span="16">
66
+ <el-card class="box-style1">
67
+ <div slot="header" class="clearfix">
68
+ <span>流程详情列表</span>
69
+ </div>
70
+ <div style="height: 100%">
71
+ <vxe-grid ref="table-m1" v-bind="vxeOption" :data="tableData"> </vxe-grid>
72
+ </div>
73
+ </el-card>
74
+ </el-col>
75
+ <el-col :span="8">
76
+ <el-card class="box-style1">
77
+ <div slot="header" class="clearfix">
78
+ <span>节点详情</span>
79
+ </div>
80
+ <div class="node-box">
81
+ <div class="info" v-if="currentRow.name">
82
+ <p class="tit">{{ currentRow.name }}</p>
83
+ <p>总耗时: {{ currentRow.duration }}分钟</p>
84
+ <el-tag type="warning" v-if="currentRow.stat === 1">{{
85
+ $t2("审核中", "components.wf.wfStatus1")
86
+ }}</el-tag>
87
+ <el-tag type="success" v-if="currentRow.stat === 2">{{
88
+ $t2("已完成", "components.wf.wfStatus3")
89
+ }}</el-tag>
90
+ <el-tag type="danger" v-if="currentRow.stat === 3">{{
91
+ $t2("已驳回", "components.wf.wfStatus2")
92
+ }}</el-tag>
93
+ </div>
94
+ <el-steps direction="vertical" :active="1" class="step-box3">
95
+ <el-step v-for="(row, index) in nodeList" :key="index">
96
+ <div slot="title">
97
+ <div class="name">{{ row.task_name }}</div>
98
+ <div class="a-time">耗时: {{ row.duration }}分钟</div>
99
+ </div>
100
+ <div slot="description">
101
+ <p>
102
+ <span class="use">{{ row.candidate_names }}</span>
103
+ <span class="time">{{ row.approve_time }}</span>
104
+ </p>
105
+ <p v-if="taskStatuses[row.type]" :class="taskStatuses[row.type].class">
106
+ {{ taskStatuses[row.type].value }}
107
+ </p>
108
+ <p v-if="row.opinion">审批意见:{{ row.opinion }}</p>
109
+ </div>
110
+ </el-step>
111
+ </el-steps>
112
+ </div>
113
+ </el-card>
114
+ </el-col>
115
+ </el-row>
116
+ </div>
117
+ </template>
118
+
119
+ <script>
120
+ import scriptHttpMixin from "@base/components/xform/mixins/scriptHttp";
121
+ export default {
122
+ name: "wf_report:index",
123
+ mixins: [scriptHttpMixin],
124
+ data() {
125
+ return {
126
+ vxeOption: {},
127
+ serviceName: "sf-cloud-user",
128
+ tableData: [],
129
+ countData: {},
130
+ currentRow: {},
131
+ nodeList: [],
132
+
133
+ taskStatuses: {
134
+ start: {
135
+ class: "f-blue",
136
+ value: this.$t2("开始", "components.wf.startStatus"),
137
+ },
138
+ approve: {
139
+ class: "f-orgn",
140
+ value: this.$t2("待审批", "components.wf.approveStatus"),
141
+ },
142
+ submit: {
143
+ class: "f-green",
144
+ value: this.$t2("同意", "components.wf.submitStatus"),
145
+ },
146
+ reject: {
147
+ class: "f-red",
148
+ value: this.$t2("驳回", "components.wf.rejectStatus"),
149
+ },
150
+ transfer: {
151
+ class: "f-green",
152
+ value: this.$t2("转办", "components.wf.transferStatus"),
153
+ },
154
+ addIncreaseSign: {
155
+ class: "f-green",
156
+ value: this.$t2("加签", "components.wf.addIncreaseSignStatus"),
157
+ },
158
+ revoke: {
159
+ class: "f-red",
160
+ value: this.$t2("撤回", "components.wf.revokeStatus"),
161
+ },
162
+ end: {
163
+ class: "f-gray",
164
+ value: this.$t2("结束", "components.wf.endStatus"),
165
+ },
166
+ },
167
+ formData: {
168
+ dateRange: 3,
169
+ stat: null,
170
+ },
171
+ };
172
+ },
173
+ mounted() {
174
+ this.initTableList();
175
+ this.loadWfSummaryCount();
176
+ },
177
+ methods: {
178
+ searchEvent() {
179
+ this.$refs["table-m1"].commitProxy("reload");
180
+ },
181
+ initTableList() {
182
+ let that = this;
183
+ let formCode = this.$route.query.formCode;
184
+ let tableOption = {
185
+ vue: this,
186
+ tableRef: "table-m1",
187
+ tableName: "user-wf-report-index-m1",
188
+ path: `/${this.serviceName}/bd_api/intf/wfSummaryList`,
189
+ param: () => {
190
+ return {
191
+ ...this.formData,
192
+ };
193
+ },
194
+ columns: [
195
+ { type: "checkbox", width: 48, resizable: false, fixed: "left" },
196
+ { field: "obj_type_name", title: "流程类型", width: 150, fixed: "left" },
197
+ { field: "name", title: "流程主题", width: 180 },
198
+ {
199
+ field: "stat",
200
+ title: "状态",
201
+ width: 150,
202
+ slots: {
203
+ default: ({ row }) => {
204
+ if (row.stat === 1) {
205
+ return [
206
+ <el-tag type="warning">
207
+ {this.$t2("审核中", "components.wf.wfStatus1")}
208
+ </el-tag>,
209
+ ];
210
+ } else if (row.stat === 2) {
211
+ return [
212
+ <el-tag type="success">
213
+ {this.$t2("已完成", "components.wf.wfStatus2")}
214
+ </el-tag>,
215
+ ];
216
+ } else if (row.stat === 3) {
217
+ return [
218
+ <el-tag type="info">
219
+ {this.$t2("已驳回", "components.wf.wfStatus3")}
220
+ </el-tag>,
221
+ ];
222
+ }
223
+ },
224
+ },
225
+ },
226
+ { field: "task_name", title: "当前节点", width: 180 },
227
+ {
228
+ field: "candidate_names",
229
+ title: "当前处理人",
230
+ width: 180,
231
+ slots: {
232
+ default: ({ row }) => {
233
+ return [
234
+ <div class="txt-mid">
235
+ <i class="iconfont icon-dangqianchuliren"></i>
236
+ <sapn>{row.candidate_names}</sapn>
237
+ </div>,
238
+ ];
239
+ },
240
+ },
241
+ },
242
+ {
243
+ field: "duration",
244
+ title: "总耗时",
245
+ width: 180,
246
+ slots: {
247
+ default: ({ row }) => {
248
+ return [
249
+ <div class="txt-mid">
250
+ <i class="iconfont icon-shijian"></i>
251
+ <sapn> {row.duration}</sapn>
252
+ </div>,
253
+ ];
254
+ },
255
+ },
256
+ },
257
+ {
258
+ field: "task_duration",
259
+ title: "当前节点耗时",
260
+ width: 180,
261
+ slots: {
262
+ default: ({ row }) => {
263
+ return [
264
+ <div class="txt-mid">
265
+ <i class="iconfont icon-shijian"></i>
266
+ <sapn> {row.task_duration}</sapn>
267
+ </div>,
268
+ ];
269
+ },
270
+ },
271
+ },
272
+ {
273
+ width: 47,
274
+ fixed: "right",
275
+ title: "",
276
+ sortable: false,
277
+ slots: {
278
+ default: ({ row }) => {
279
+ return [
280
+ <a
281
+ href="javascript:void(0);"
282
+ class="a-link"
283
+ onclick={() => {
284
+ this.loadWfSummaryNode(row);
285
+ }}
286
+ >
287
+ <el-tooltip
288
+ enterable={false}
289
+ effect="dark"
290
+ content="查看"
291
+ placement="top"
292
+ popper-class="tooltip-skin"
293
+ >
294
+ <i class="iconfont icon-dianji" />
295
+ </el-tooltip>
296
+ </a>,
297
+ ];
298
+ },
299
+ },
300
+ },
301
+ ],
302
+ };
303
+ this.$vxeTableUtil.initVxeTable(tableOption).then((opts) => {
304
+ this.vxeOption = opts;
305
+ });
306
+ },
307
+ loadWfSummaryCount() {
308
+ this.$http({
309
+ url: `/${this.serviceName}/bd_api/intf/wfSummaryCount`,
310
+ method: "post",
311
+ data: {
312
+ ...this.formData,
313
+ },
314
+ success: (res) => {
315
+ this.countData = res.objx || {};
316
+ },
317
+ });
318
+ },
319
+ loadWfSummaryNode(row) {
320
+ this.$http({
321
+ url: `/${this.serviceName}/bd_api/intf/wfSummaryNode`,
322
+ method: "post",
323
+ data: {
324
+ proc_inst_id: row.proc_inst_id,
325
+ },
326
+ success: (res) => {
327
+ this.currentRow = row;
328
+ this.nodeList = res.objx || [];
329
+ },
330
+ });
331
+ },
332
+ clearWfSummaryNode() {
333
+ this.currentRow = {};
334
+ this.nodeList = [];
335
+ },
336
+ handleSelectChange() {
337
+ if (this.formData.stat === "") {
338
+ this.formData.stat = null;
339
+ }
340
+ this.loadWfSummaryCount();
341
+ this.searchEvent();
342
+ this.clearWfSummaryNode();
343
+ },
344
+ },
345
+ };
346
+ </script>
347
+ <style scoped lang="scss">
348
+ #containt {
349
+ background: none;
350
+ padding: 10px 0 0;
351
+ box-shadow: none;
352
+ }
353
+ .filter-btns {
354
+ .f-btn {
355
+ margin-right: 10px;
356
+ }
357
+ }
358
+ .sum-statistics {
359
+ display: flex;
360
+ margin: 10px -5px 0;
361
+ .item {
362
+ flex: 1;
363
+ background: #fff;
364
+ border: solid 1px #e9e9e9;
365
+ border-radius: 6px;
366
+ margin: 0 5px;
367
+ padding: 10px 14px 8px;
368
+ font-size: 12px;
369
+ position: relative;
370
+ .ico {
371
+ position: absolute;
372
+ top: 50%;
373
+ right: 18px;
374
+ width: 34px;
375
+ height: 34px;
376
+ margin-top: -17px;
377
+ border-radius: 6px;
378
+ text-align: center;
379
+ line-height: 35px;
380
+ font-size: 16;
381
+ background: #eff6ff;
382
+ color: #2f6ffc;
383
+ }
384
+ p {
385
+ margin-bottom: 0;
386
+ }
387
+ > b {
388
+ font-size: 26px;
389
+ margin: 8px 0 3px;
390
+ display: inline-block;
391
+ font-weight: 400;
392
+ }
393
+ &:nth-child(2) .ico {
394
+ background: #faf5ff;
395
+ color: #ab3dfa;
396
+ }
397
+ &:nth-child(3) .ico {
398
+ background: #f0fdf4;
399
+ color: #0aa945;
400
+ }
401
+ &:nth-child(4) .ico {
402
+ background: #fff7ed;
403
+ color: #f5520b;
404
+ }
405
+ &:nth-child(5) .ico {
406
+ background: #fef2f2;
407
+ color: #e70a15;
408
+ }
409
+ }
410
+ }
411
+ ::v-deep .box-style1 {
412
+ margin: 10px 5px 0;
413
+ .el-card__body {
414
+ height: calc(100vh - 254px);
415
+ }
416
+ }
417
+ .node-box {
418
+ .info {
419
+ border: solid 1px #e6ebf5;
420
+ background: #f6faff;
421
+ border-radius: 4px;
422
+ padding: 10px 14px;
423
+ position: relative;
424
+ font-size: 12px;
425
+ color: #666666;
426
+ margin-bottom: 8px;
427
+ p {
428
+ margin-bottom: 0;
429
+ }
430
+ .el-tag {
431
+ position: absolute;
432
+ right: 12px;
433
+ top: 50%;
434
+ margin-top: -14px;
435
+ }
436
+ .tit {
437
+ font-size: 13px;
438
+ color: #212121;
439
+ margin-bottom: 5px;
440
+ }
441
+ }
442
+ .el-steps {
443
+ height: calc(100vh - 326px);
444
+ overflow: auto;
445
+ padding-right: 10px;
446
+ }
447
+ }
448
+ </style>