cloud-web-corejs 1.0.54-dev.209 → 1.0.54-dev.210
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.
- package/package.json +1 -1
- package/src/components/xform/form-designer/designer.js +6 -0
- package/src/components/xform/form-designer/setting-panel/form-setting.vue +140 -48
- package/src/components/xform/form-designer/setting-panel/property-editor/wfFlag-editor.vue +2 -30
- package/src/components/xform/form-designer/widget-panel/widgetsConfig.js +5 -0
- package/src/components/xform/form-render/indexMixin.js +84 -82
- package/src/components/xform/utils/util.js +1 -0
- package/src/views/user/login/indexMixin.js +1 -1
package/package.json
CHANGED
@@ -84,6 +84,7 @@ let chartContainers = [],
|
|
84
84
|
wfConfig: null,
|
85
85
|
wfStartBindSave:false,
|
86
86
|
wfAgreenBindSave:false,
|
87
|
+
wfAgreeConfigData:[],
|
87
88
|
wfConfigDataEnabled:false,
|
88
89
|
wfConfigData:[],
|
89
90
|
},
|
@@ -1016,7 +1017,9 @@ let chartContainers = [],
|
|
1016
1017
|
},
|
1017
1018
|
copyNewFieldWidget(origin) {
|
1018
1019
|
let newWidget = baseRefUtil.deepClone(origin);
|
1020
|
+
let sourceType = newWidget.type;
|
1019
1021
|
newWidget.type = (newWidget.targetType || newWidget.type);
|
1022
|
+
newWidget.sourceType = sourceType;
|
1020
1023
|
let tempId = baseRefUtil.generateId();
|
1021
1024
|
newWidget.id = newWidget.type.replace(/-/g, '') + tempId;
|
1022
1025
|
if (newWidget.hasOwnProperty("tableField")) {
|
@@ -1095,6 +1098,9 @@ let chartContainers = [],
|
|
1095
1098
|
},
|
1096
1099
|
copyNewContainerWidget(origin) {
|
1097
1100
|
let newCon = baseRefUtil.deepClone(origin);
|
1101
|
+
let sourceType = newCon.type;
|
1102
|
+
newCon.type = (newCon.targetType || newCon.type);
|
1103
|
+
newCon.sourceType = sourceType;
|
1098
1104
|
newCon.id = newCon.type.replace(/-/g, '') + baseRefUtil.generateId();
|
1099
1105
|
newCon.options.name = newCon.id;
|
1100
1106
|
if (newCon.options.keyNameEnabled = true) {
|
@@ -21,10 +21,16 @@
|
|
21
21
|
<el-form-item :label="i18nt('流程通过时自动保存表单数据')">
|
22
22
|
<el-switch v-model="formConfig.wfAgreenBindSave"></el-switch>
|
23
23
|
</el-form-item>
|
24
|
+
<el-form-item :label="i18nt('流程通过时自动保存表单数据的节点配置')">
|
25
|
+
<a href="javascript:void(0);" class="a-link link-oneLind" @click="openWfConfigDataDialog2">
|
26
|
+
<span>{{ formConfig.wfAgreeConfigData && formConfig.wfAgreeConfigData.length ? "已维护" : "" }}</span>
|
27
|
+
<i class="el-icon-edit"></i>
|
28
|
+
</a>
|
29
|
+
</el-form-item>
|
24
30
|
<el-form-item :label="i18nt('启用流程节点可编辑表单')">
|
25
31
|
<el-switch v-model="formConfig.wfConfigDataEnabled"></el-switch>
|
26
32
|
</el-form-item>
|
27
|
-
<el-form-item :label="i18nt('
|
33
|
+
<el-form-item :label="i18nt('流程节点可编辑表单配置')">
|
28
34
|
<a href="javascript:void(0);" class="a-link link-oneLind" @click="openWfConfigDataDialog">
|
29
35
|
<span>{{ formConfig.wfConfigData && formConfig.wfConfigData.length ? "已维护" : "" }}</span>
|
30
36
|
<i class="el-icon-edit"></i>
|
@@ -73,47 +79,11 @@
|
|
73
79
|
<i class="el-icon-edit"></i>
|
74
80
|
</a>
|
75
81
|
</el-form-item>
|
76
|
-
<!--
|
77
|
-
<el-form-item :label="i18nt('designer.setting.formSize')">
|
78
|
-
<el-select v-model="formConfig.size"><el-option v-for="item in formSizes" :key="item.value" :label="item.label" :value="item.value"></el-option></el-select>
|
79
|
-
</el-form-item>
|
80
|
-
<el-form-item :label="i18nt('designer.setting.labelPosition')">
|
81
|
-
<el-radio-group v-model="formConfig.labelPosition" class="radio-group-custom">
|
82
|
-
<el-radio-button label="left">{{ i18nt('designer.setting.leftPosition') }}</el-radio-button>
|
83
|
-
<el-radio-button label="top">{{ i18nt('designer.setting.topPosition') }}</el-radio-button>
|
84
|
-
</el-radio-group>
|
85
|
-
</el-form-item>
|
86
|
-
<el-form-item :label="i18nt('designer.setting.labelAlign')">
|
87
|
-
<el-radio-group v-model="formConfig.labelAlign" class="radio-group-custom">
|
88
|
-
<el-radio-button label="label-left-align">{{ i18nt('designer.setting.leftAlign') }}</el-radio-button>
|
89
|
-
<el-radio-button label="label-center-align">{{ i18nt('designer.setting.centerAlign') }}</el-radio-button>
|
90
|
-
<el-radio-button label="label-right-align">{{ i18nt('designer.setting.rightAlign') }}</el-radio-button>
|
91
|
-
</el-radio-group>
|
92
|
-
</el-form-item>
|
93
|
-
<el-form-item :label="i18nt('designer.setting.labelWidth')">
|
94
|
-
<el-input-number v-model="formConfig.labelWidth" :min="0" style="width: 100%"></el-input-number>
|
95
|
-
</el-form-item>-->
|
96
82
|
<el-form-item :label="i18nt('designer.setting.formCss')">
|
97
83
|
<el-button type="info" icon="el-icon-edit" plain round @click="editFormCss">
|
98
84
|
{{ i18nt('designer.setting.addCss') }}
|
99
85
|
</el-button>
|
100
86
|
</el-form-item>
|
101
|
-
<!--
|
102
|
-
<el-form-item :label="i18nt('designer.setting.customClass')">
|
103
|
-
<el-select v-model="formConfig.customClass" multiple filterable allow-create default-first-option>
|
104
|
-
<el-option v-for="(item, idx) in cssClassList" :key="idx" :label="item" :value="item"></el-option>
|
105
|
-
</el-select>
|
106
|
-
</el-form-item>
|
107
|
-
<el-form-item :label="i18nt('designer.setting.globalFunctions')">
|
108
|
-
<el-button type="info" icon="el-icon-edit" plain round @click="editGlobalFunctions">{{ i18nt('designer.setting.addEventHandler') }}</el-button>
|
109
|
-
</el-form-item>
|
110
|
-
<el-form-item label-width="0">
|
111
|
-
<el-divider class="custom-divider">{{ i18nt('designer.setting.formSFCSetting') }}</el-divider>
|
112
|
-
</el-form-item>
|
113
|
-
<el-form-item :label="i18nt('designer.setting.formModelName')"><el-input type="text" v-model="formConfig.modelName"></el-input></el-form-item>
|
114
|
-
<el-form-item :label="i18nt('designer.setting.formRefName')"><el-input type="text" v-model="formConfig.refName"></el-input></el-form-item>
|
115
|
-
<el-form-item :label="i18nt('designer.setting.formRulesName')"><el-input type="text" v-model="formConfig.rulesName"></el-input></el-form-item>
|
116
|
-
-->
|
117
87
|
</el-collapse-item>
|
118
88
|
<el-collapse-item name="2" title="列表标签页信息">
|
119
89
|
<el-form-item :label="i18nt('列表启用多标签')">
|
@@ -336,7 +306,7 @@
|
|
336
306
|
<el-dialog
|
337
307
|
v-if="dialogVisible"
|
338
308
|
custom-class="dialog-style list-dialog"
|
339
|
-
:title="i18nt('
|
309
|
+
:title="i18nt('流程节点可编辑表单配置')"
|
340
310
|
:visible.sync="dialogVisible"
|
341
311
|
:show-close="!0"
|
342
312
|
:append-to-body="true"
|
@@ -391,15 +361,15 @@
|
|
391
361
|
<el-input v-model="row.taskSteps" clearable></el-input>
|
392
362
|
</template>
|
393
363
|
</el-table-column>
|
394
|
-
<!-- <el-table-column :label="i18nt('设置')" width="150">
|
395
|
-
|
396
|
-
|
397
|
-
|
398
|
-
|
399
|
-
|
400
|
-
|
401
|
-
|
402
|
-
|
364
|
+
<!-- <el-table-column :label="i18nt('设置')" width="150">
|
365
|
+
<template slot-scope="{row}">
|
366
|
+
<el-select v-model="row.type" clearable>
|
367
|
+
<el-option :value="1" label="可编辑"></el-option>
|
368
|
+
<el-option :value="2" label="仅显示"></el-option>
|
369
|
+
<el-option :value="3" label="隐藏"></el-option>
|
370
|
+
</el-select>
|
371
|
+
</template>
|
372
|
+
</el-table-column>-->
|
403
373
|
<el-table-column :label="i18nt('designer.setting.actionColumn')" width="100" align="center">
|
404
374
|
<template #header>
|
405
375
|
<span>{{ i18nt('designer.setting.actionColumn') }}</span>
|
@@ -430,6 +400,103 @@
|
|
430
400
|
</div>
|
431
401
|
</el-dialog>
|
432
402
|
|
403
|
+
<el-dialog
|
404
|
+
v-if="dialogVisible2"
|
405
|
+
custom-class="dialog-style list-dialog"
|
406
|
+
:title="i18nt('流程通过时自动保存表单数据的节点配置')"
|
407
|
+
:visible.sync="dialogVisible2"
|
408
|
+
:show-close="!0"
|
409
|
+
:append-to-body="true"
|
410
|
+
:modal="false"
|
411
|
+
:close-on-click-modal="!1"
|
412
|
+
:close-on-press-escape="!1"
|
413
|
+
:destroy-on-close="!0"
|
414
|
+
width="1220px"
|
415
|
+
top="5vh"
|
416
|
+
v-dialog-drag
|
417
|
+
:fullscreen="true"
|
418
|
+
>
|
419
|
+
<div class="cont" style="padding-bottom: 8px;">
|
420
|
+
<el-table
|
421
|
+
ref="singleTable"
|
422
|
+
width="100%"
|
423
|
+
:data="wfAgreeConfigData"
|
424
|
+
height="100%"
|
425
|
+
border=""
|
426
|
+
row-key="columnId"
|
427
|
+
stripe=""
|
428
|
+
style="margin-bottom: 0px;"
|
429
|
+
>
|
430
|
+
<el-table-column type="index" width="35" fixed="left"></el-table-column>
|
431
|
+
<el-table-column :label="i18nt('服务')" width="150">
|
432
|
+
<template slot-scope="{row}">
|
433
|
+
<el-select v-model="row.serveType" @change="changeServeType(row)">
|
434
|
+
<el-option :value="1" label="正式"></el-option>
|
435
|
+
<el-option :value="2" label="UAT"></el-option>
|
436
|
+
<el-option :value="3" label="测试"></el-option>
|
437
|
+
<el-option :value="4" label="自定义"></el-option>
|
438
|
+
</el-select>
|
439
|
+
</template>
|
440
|
+
</el-table-column>
|
441
|
+
<el-table-column :label="i18nt('自定义服务')" width="150">
|
442
|
+
<template slot-scope="{row}">
|
443
|
+
<el-input v-model="row.serveName" clearable :disabled="row.serveType!==4"></el-input>
|
444
|
+
</template>
|
445
|
+
</el-table-column>
|
446
|
+
<el-table-column :label="i18nt('组织编码')" width="250">
|
447
|
+
<template slot-scope="{row,$index}">
|
448
|
+
<el-input v-model="row.companyCodes" clearable></el-input>
|
449
|
+
</template>
|
450
|
+
</el-table-column>
|
451
|
+
<el-table-column :label="i18nt('流程模板编码')" width="150">
|
452
|
+
<template slot-scope="{row}">
|
453
|
+
<el-input v-model="row.modelKey" clearable></el-input>
|
454
|
+
</template>
|
455
|
+
</el-table-column>
|
456
|
+
<el-table-column :label="i18nt('节点步骤')" width="250">
|
457
|
+
<template slot-scope="{row}">
|
458
|
+
<el-input v-model="row.taskSteps" clearable></el-input>
|
459
|
+
</template>
|
460
|
+
</el-table-column>
|
461
|
+
<!-- <el-table-column :label="i18nt('设置')" width="150">
|
462
|
+
<template slot-scope="{row}">
|
463
|
+
<el-select v-model="row.type" clearable>
|
464
|
+
<el-option :value="1" label="可编辑"></el-option>
|
465
|
+
<el-option :value="2" label="仅显示"></el-option>
|
466
|
+
<el-option :value="3" label="隐藏"></el-option>
|
467
|
+
</el-select>
|
468
|
+
</template>
|
469
|
+
</el-table-column>-->
|
470
|
+
<el-table-column :label="i18nt('designer.setting.actionColumn')" width="100" align="center">
|
471
|
+
<template #header>
|
472
|
+
<span>{{ i18nt('designer.setting.actionColumn') }}</span>
|
473
|
+
<el-button :title="i18nt('designer.setting.addTableColumn')" size="mini" type="" circle=""
|
474
|
+
icon="el-icon-plus" @click="addItem2"></el-button>
|
475
|
+
</template>
|
476
|
+
<template slot-scope="scope">
|
477
|
+
<el-button
|
478
|
+
:title="i18nt('designer.setting.deleteTableColumn')"
|
479
|
+
size="mini"
|
480
|
+
type=""
|
481
|
+
circle=""
|
482
|
+
icon="el-icon-minus"
|
483
|
+
@click="wfAgreeConfigData.splice(scope.$index,1)"
|
484
|
+
></el-button>
|
485
|
+
</template>
|
486
|
+
</el-table-column>
|
487
|
+
|
488
|
+
</el-table>
|
489
|
+
</div>
|
490
|
+
<div class="dialog-footer" slot="footer">
|
491
|
+
<el-button @click="dialogVisible2 = false" class="button-sty" icon="el-icon-close">
|
492
|
+
{{ i18nt('designer.hint.cancel') }}
|
493
|
+
</el-button>
|
494
|
+
<el-button type="primary" @click="confirmWfConfigDataDialog2" class="button-sty" icon="el-icon-check">
|
495
|
+
{{ i18nt('designer.hint.confirm') }}
|
496
|
+
</el-button>
|
497
|
+
</div>
|
498
|
+
</el-dialog>
|
499
|
+
|
433
500
|
<formTemplateDialog v-if="showFormTemplateDialog" :visiable.sync="showFormTemplateDialog"
|
434
501
|
@confirm="confirmFormTemplate" multi="false"/>
|
435
502
|
<wfObjConfigDialog v-if="showWfObjConfigDialog" :visiable.sync="showWfObjConfigDialog"
|
@@ -501,7 +568,10 @@ export default {
|
|
501
568
|
showWfObjConfigDialog: false,
|
502
569
|
|
503
570
|
dialogVisible: false,
|
504
|
-
wfConfigData: []
|
571
|
+
wfConfigData: [],
|
572
|
+
|
573
|
+
dialogVisible2: false,
|
574
|
+
wfAgreeConfigData: []
|
505
575
|
};
|
506
576
|
},
|
507
577
|
created() {
|
@@ -743,6 +813,28 @@ export default {
|
|
743
813
|
this.dialogVisible = !1;
|
744
814
|
this.formConfig.wfConfigData = this.wfConfigData;
|
745
815
|
},
|
816
|
+
|
817
|
+
openWfConfigDataDialog2() {
|
818
|
+
let wfAgreeConfigData = this.formConfig.wfAgreeConfigData || [];
|
819
|
+
this.dialogVisible2 = true;
|
820
|
+
this.wfAgreeConfigData = this.$baseLodash.cloneDeep(wfAgreeConfigData)
|
821
|
+
},
|
822
|
+
addItem2() {
|
823
|
+
let newItem = {
|
824
|
+
type: null,
|
825
|
+
serveType: null,
|
826
|
+
serveName: null,
|
827
|
+
modelKey: null,
|
828
|
+
taskSteps: null,
|
829
|
+
companyCodes: null
|
830
|
+
}
|
831
|
+
this.wfAgreeConfigData.push(newItem);
|
832
|
+
},
|
833
|
+
confirmWfConfigDataDialog2() {
|
834
|
+
this.dialogVisible2 = !1;
|
835
|
+
this.formConfig.wfAgreeConfigData = this.wfAgreeConfigData;
|
836
|
+
},
|
837
|
+
|
746
838
|
}
|
747
839
|
};
|
748
840
|
</script>
|
@@ -1,11 +1,11 @@
|
|
1
1
|
<template>
|
2
2
|
<div>
|
3
|
-
<el-form-item :label="i18nt('有流程可编辑')">
|
3
|
+
<!-- <el-form-item :label="i18nt('有流程可编辑')">
|
4
4
|
<el-switch v-model="optionModel.enabledByWf" @change="changeEnabledByWf"></el-switch>
|
5
5
|
</el-form-item>
|
6
6
|
<el-form-item :label="i18nt('有流程隐藏')">
|
7
7
|
<el-switch v-model="optionModel.hiddenByWf" @change="changeHiddenByWf"></el-switch>
|
8
|
-
</el-form-item
|
8
|
+
</el-form-item>-->
|
9
9
|
<el-form-item :label="i18nt('特定流程节点设置')">
|
10
10
|
<el-switch v-model="optionModel.wfEdit" @change="changeWfEdit"></el-switch>
|
11
11
|
</el-form-item>
|
@@ -24,16 +24,6 @@
|
|
24
24
|
<i class="el-icon-edit"></i>
|
25
25
|
</a>
|
26
26
|
</el-form-item>
|
27
|
-
|
28
|
-
<!-- <el-form-item :label="i18nt('特定流程节点显隐')">
|
29
|
-
<el-switch v-model="optionModel.wfEdit" @change="changeWfEdit"></el-switch>
|
30
|
-
</el-form-item>
|
31
|
-
<el-form-item :label="i18nt('流程节点信息')">
|
32
|
-
<a href="javascript:void(0);" class="a-link link-oneLind" @click="openDialog">
|
33
|
-
<span>{{ optionModel.wfConfigData && optionModel.wfConfigData.length ? "已维护" : "" }}</span>
|
34
|
-
<i class="el-icon-edit"></i>
|
35
|
-
</a>
|
36
|
-
</el-form-item>-->
|
37
27
|
<el-dialog
|
38
28
|
v-if="dialogVisible"
|
39
29
|
custom-class="dialog-style list-dialog"
|
@@ -101,24 +91,6 @@
|
|
101
91
|
</el-select>
|
102
92
|
</template>
|
103
93
|
</el-table-column>
|
104
|
-
<!-- <el-table-column :label="i18nt('流程模板')" width="250" prop="label">
|
105
|
-
<template slot-scope="scope">
|
106
|
-
<el-select v-model="scope.row.modelId" @change="changeModelId">
|
107
|
-
<el-option v-for="(wfDefItem,index) in wfDefItems" :key="index" :value="wfDefItem.modelId"
|
108
|
-
:label="wfDefItem.modelName"></el-option>
|
109
|
-
</el-select>
|
110
|
-
|
111
|
-
</template>
|
112
|
-
</el-table-column>
|
113
|
-
<el-table-column :label="i18nt('流程节点')" width="550" prop="prop">
|
114
|
-
<template slot-scope="scope">
|
115
|
-
<el-checkbox-group v-model="scope.row.nodeIds" v-if="!!wfNodeMap[scope.row.modelId]">
|
116
|
-
<el-checkbox v-for="(node,index) in wfNodeMap[scope.row.modelId]" :key="index"
|
117
|
-
:label="node.nodeId">{{ node.nodeName }}
|
118
|
-
</el-checkbox>
|
119
|
-
</el-checkbox-group>
|
120
|
-
</template>
|
121
|
-
</el-table-column>-->
|
122
94
|
<el-table-column :label="i18nt('designer.setting.actionColumn')" width="100" align="center">
|
123
95
|
<template #header>
|
124
96
|
<span>{{ i18nt('designer.setting.actionColumn') }}</span>
|
@@ -889,6 +889,9 @@ const projectTagConfig = {
|
|
889
889
|
|
890
890
|
}
|
891
891
|
|
892
|
+
export const hiddenWidgetTypesOfWf = ["button"];
|
893
|
+
export const freeWidgetTypesOfWf = ["reset_button"];
|
894
|
+
|
892
895
|
export const basicFields = [
|
893
896
|
{
|
894
897
|
type: "input",
|
@@ -1759,6 +1762,7 @@ export const basicFields = [
|
|
1759
1762
|
options: {
|
1760
1763
|
name: "",
|
1761
1764
|
label: "",
|
1765
|
+
wfHideFlag:1,
|
1762
1766
|
columnWidth: "200px",
|
1763
1767
|
size: "",
|
1764
1768
|
displayStyle: "block",
|
@@ -1969,6 +1973,7 @@ export const basicFields = [
|
|
1969
1973
|
prefixIcon: "",
|
1970
1974
|
suffixIcon: "",
|
1971
1975
|
customClass: "",
|
1976
|
+
wfHideFlag:1,
|
1972
1977
|
aLinkFlag: 1,
|
1973
1978
|
underline: false,
|
1974
1979
|
href: "",
|
@@ -28,7 +28,9 @@ import {
|
|
28
28
|
containers,
|
29
29
|
advancedFields,
|
30
30
|
basicFields,
|
31
|
-
customFields
|
31
|
+
customFields,
|
32
|
+
hiddenWidgetTypesOfWf,
|
33
|
+
freeWidgetTypesOfWf
|
32
34
|
} from "../../../components/xform/form-designer/widget-panel/widgetsConfig.js"
|
33
35
|
import scriptHttpMixin from "../../../components/xform/mixins/scriptHttp";
|
34
36
|
import defaultHandleMixin from "../../../components/xform/mixins/defaultHandle";
|
@@ -480,6 +482,7 @@ modules = {
|
|
480
482
|
this.getFieldWidgetByType(type1)
|
481
483
|
);
|
482
484
|
fieldWidget.options = t.columnOption;
|
485
|
+
fieldWidget.columnType = t.formatS
|
483
486
|
t.widget = fieldWidget;
|
484
487
|
}
|
485
488
|
let type2 = columnFormatMap[t.editFormatS];
|
@@ -488,6 +491,8 @@ modules = {
|
|
488
491
|
this.getFieldWidgetByType(type2)
|
489
492
|
);
|
490
493
|
fieldWidget.options = t.editColumnOption;
|
494
|
+
fieldWidget.columnType = t.editFormatS
|
495
|
+
|
491
496
|
t.editWidget = fieldWidget;
|
492
497
|
}
|
493
498
|
}
|
@@ -518,20 +523,15 @@ modules = {
|
|
518
523
|
//处理组件显隐规则
|
519
524
|
this.handleWidgetShowRule(widget);
|
520
525
|
|
521
|
-
if (wfParam.hasWf) {
|
522
|
-
|
526
|
+
if (!widgetEditOnWf && wfParam.hasWf) {
|
527
|
+
//有流程,且不匹配流程节点可编辑表单设置信息
|
523
528
|
//设置组件的有流程可编辑,有流程隐藏
|
524
529
|
this.hanldeWfWidgetNew1(widget)
|
525
530
|
if (toModify) {
|
526
531
|
//后台返回流程可以修改单据
|
527
532
|
//设置组件的特定流程节点的可编辑,仅显示,隐藏
|
528
533
|
if (taskDefinitionKey) {
|
529
|
-
this.hanldeWfWidgetNew2(widget
|
530
|
-
if (!saveButton && saveButtonWidget) {
|
531
|
-
//获取保存按钮
|
532
|
-
saveButton = saveButtonWidget
|
533
|
-
}
|
534
|
-
})
|
534
|
+
this.hanldeWfWidgetNew2(widget)
|
535
535
|
}
|
536
536
|
if (widget.formItemFlag && !widget.options.hidden && !widget.options.disbaled) {
|
537
537
|
//存在存在可以编辑输入框框
|
@@ -540,14 +540,47 @@ modules = {
|
|
540
540
|
}
|
541
541
|
}
|
542
542
|
});
|
543
|
-
|
544
|
-
//后台返回流程可以修改单据,存在保存按钮,存在可以编辑输入框框
|
545
|
-
saveButton.options.disabled = false;
|
546
|
-
saveButton.options.hidden = false;
|
547
|
-
}
|
543
|
+
|
548
544
|
|
549
545
|
this.wfModifyEnabled = hasModifyItem;
|
550
546
|
},
|
547
|
+
getIsSaveAtWfAgree() {
|
548
|
+
//流程通过的时候是否可以执行保存
|
549
|
+
let wfParam = this.wfParam || {};
|
550
|
+
let wfInfo = wfParam?.wfInfo
|
551
|
+
let toModify = wfInfo?.toModify;
|
552
|
+
let result = false;
|
553
|
+
|
554
|
+
let formConfig = this.formConfig;
|
555
|
+
if (toModify && formConfig.wfAgreenBindSave) {
|
556
|
+
|
557
|
+
let modelKey = wfInfo.modelKey;
|
558
|
+
let companyCode = this.$store.getters.companyCode;
|
559
|
+
let taskStep = (wfInfo.taskStep ?? "") + "";
|
560
|
+
let taskDefinitionKey = wfInfo.taskDefinitionKey;
|
561
|
+
let bdService = this.bdService;
|
562
|
+
|
563
|
+
let wfConfigData = formConfig.wfAgreeConfigData || []
|
564
|
+
let flag = false;
|
565
|
+
wfConfigData.forEach(item => {
|
566
|
+
let type = item.type;
|
567
|
+
let taskStepList = item.taskSteps ? item.taskSteps.split(',') : []
|
568
|
+
if (taskStepList.includes(taskStep)) {
|
569
|
+
let companyCodeStr = item.companyCodes;
|
570
|
+
let companyCodes = companyCodeStr ? companyCodeStr.split(",").filter(item => !!item) : [];
|
571
|
+
let flag1 = !item.serveName || item.serveName == bdService;
|
572
|
+
let flag2 = !item.modelKey || item.modelKey == modelKey;
|
573
|
+
let flag3 = !companyCodes.length || companyCodes.includes(companyCode)
|
574
|
+
if (flag1 && flag2 && flag3) {
|
575
|
+
//可编辑
|
576
|
+
result = true;
|
577
|
+
}
|
578
|
+
}
|
579
|
+
})
|
580
|
+
return result;
|
581
|
+
}
|
582
|
+
},
|
583
|
+
|
551
584
|
hanldeWfWidgetNew0() {
|
552
585
|
|
553
586
|
let wfParam = this.wfParam || {};
|
@@ -584,85 +617,53 @@ modules = {
|
|
584
617
|
return result;
|
585
618
|
}
|
586
619
|
},
|
620
|
+
getIsfreeWidgetTypesOfWf(widget) {
|
621
|
+
if(!widget)return false;
|
622
|
+
let widgetType = widget.type;
|
623
|
+
let sourceType = widget.sourceType;
|
624
|
+
let result = freeWidgetTypesOfWf.includes(widgetType) || (sourceType && freeWidgetTypesOfWf.includes(sourceType))
|
625
|
+
return widget.options.label == "重置" || result
|
626
|
+
},
|
627
|
+
getIsHiddenWidgetTypesOfWf(widget) {
|
628
|
+
if(!widget)return false;
|
629
|
+
let widgetType = widget.type;
|
630
|
+
let targetType = widget.targetType;
|
631
|
+
let result = hiddenWidgetTypesOfWf.includes(widgetType) || (targetType && hiddenWidgetTypesOfWf.includes(targetType))
|
632
|
+
return result
|
633
|
+
},
|
587
634
|
hanldeWfWidgetNew1(widget) {
|
635
|
+
if (!widget) return;
|
636
|
+
if (this.getIsfreeWidgetTypesOfWf(widget))return//过滤掉不受限组件
|
637
|
+
if (this.widgetEditOnWf) return//匹配到流程第一步可编辑,不执行下面禁用隐藏
|
588
638
|
let wfParam = this.wfParam || {};
|
589
|
-
if (!wfParam.hasWf) return
|
590
|
-
|
591
|
-
|
592
|
-
|
593
|
-
|
594
|
-
|
595
|
-
|
596
|
-
|
597
|
-
|
598
|
-
|
599
|
-
let disabled = null;
|
600
|
-
if (isWfFlag) {
|
601
|
-
if (!this.widgetEditOnWf) {
|
602
|
-
if (this.hasConfig(widget, 'disabled')) {
|
603
|
-
if (!enabledByWf) {
|
604
|
-
disabled = true;
|
605
|
-
let onClick = widget.options.onClick;
|
606
|
-
if (onClick && onClick.startsWith("this.getFormRef().$baseReload()")) {
|
607
|
-
disabled = false;
|
608
|
-
}
|
609
|
-
} else {
|
610
|
-
disabled = false;
|
611
|
-
}
|
612
|
-
if (widgetType == 'reset_button' && enabledByWf === undefined) {
|
613
|
-
disabled = false;
|
614
|
-
}
|
615
|
-
if (disabled !== null) {
|
616
|
-
widget.options.disabled = disabled;
|
617
|
-
}
|
618
|
-
}
|
619
|
-
}
|
620
|
-
|
621
|
-
if (hiddenByWf) {
|
622
|
-
hidden = true
|
623
|
-
}
|
624
|
-
if (widget && widgetType == 'save_button' && hiddenByWf === undefined) {
|
625
|
-
hidden = true
|
626
|
-
}
|
627
|
-
if (hidden !== null) {
|
628
|
-
widget.options.hidden = hidden;
|
629
|
-
}
|
639
|
+
if (!wfParam.hasWf) return;//过滤掉没流程
|
640
|
+
if (widget.columnType == 'editDelete') {
|
641
|
+
//数据表格列的删除标识,有流程隐藏
|
642
|
+
widget.options.hidden = true
|
643
|
+
} else if (this.getIsHiddenWidgetTypesOfWf(widget)) {
|
644
|
+
//有流程隐藏的组件,button
|
645
|
+
widget.options.hidden = true
|
646
|
+
} else if (widget.formItemFlag) {
|
647
|
+
//有流程禁用,编辑输入框
|
648
|
+
widget.options.disabled = true;
|
630
649
|
}
|
631
650
|
|
632
|
-
/*if (widget?.type == "data-table") {
|
633
|
-
let loopDo = (t, e) => {
|
634
|
-
if (t.children && t.children.length) {
|
635
|
-
t.children.forEach(item => {
|
636
|
-
loopDo(item)
|
637
|
-
})
|
638
|
-
} else {
|
639
|
-
if (t.widget) {
|
640
|
-
this.hanldeWfWidgetNew1(t.widget)
|
641
|
-
}
|
642
|
-
if (t.widgetList && t.widgetList.length) {
|
643
|
-
loopHandleWidget(t.widgetList, (item1) => {
|
644
|
-
this.hanldeWfWidgetNew1(item1)
|
645
|
-
});
|
646
|
-
}
|
647
|
-
}
|
648
|
-
}
|
649
|
-
widget.options.tableColumns.forEach(item => {
|
650
|
-
loopDo(item)
|
651
|
-
})
|
652
651
|
|
653
|
-
}*/
|
654
652
|
},
|
655
653
|
hanldeWfWidgetNew2(widget, callback) {
|
656
654
|
let hasModifyItem = false;
|
657
655
|
let saveButton;
|
658
|
-
|
659
|
-
|
660
|
-
|
656
|
+
if (!this.widgetEditOnWf) {
|
657
|
+
let flag = this.hanldeWfWidgetItemNew(widget)
|
658
|
+
if (flag) {
|
659
|
+
hasModifyItem = true
|
660
|
+
}
|
661
661
|
}
|
662
|
+
|
662
663
|
if (widget?.options?.saveButton) {
|
663
664
|
saveButton = widget;
|
664
665
|
}
|
665
|
-
callback(hasModifyItem, saveButton)
|
666
|
+
callback && callback(hasModifyItem, saveButton)
|
666
667
|
},
|
667
668
|
hanldeWfWidgetItemNew(widget) {
|
668
669
|
let hasModifyItem = false;
|
@@ -1076,8 +1077,9 @@ modules = {
|
|
1076
1077
|
}
|
1077
1078
|
|
1078
1079
|
if (formConfig.wfAgreenBindSave) {
|
1080
|
+
//流程通过的时候,是否自动保存单据
|
1079
1081
|
option.onClickAgree = (done) => {
|
1080
|
-
if (that.
|
1082
|
+
if (that.getIsSaveAtWfAgree()) {
|
1081
1083
|
let formRef = this.getFormRef ? this.getFormRef() : this;
|
1082
1084
|
formRef.validate(valid => {
|
1083
1085
|
if (valid) {
|
@@ -1089,7 +1091,7 @@ modules = {
|
|
1089
1091
|
}
|
1090
1092
|
}
|
1091
1093
|
option.onBeforeAgree = (done) => {
|
1092
|
-
if (that.
|
1094
|
+
if (that.getIsSaveAtWfAgree()) {
|
1093
1095
|
this.saveDefaultHandle({
|
1094
1096
|
config: {
|
1095
1097
|
successMsg: false,
|