cloud-web-corejs 1.0.54-dev.336 → 1.0.54-dev.338
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/form-widget/field-widget/fieldMixin.js +30 -5
- package/src/components/xform/form-designer/form-widget/field-widget/status-widget.vue +13 -4
- package/src/components/xform/form-designer/setting-panel/option-items-setting.vue +376 -366
- package/src/components/xform/form-designer/setting-panel/property-editor/field-status/field-status-editor.vue +37 -30
- package/src/components/xform/form-designer/setting-panel/property-editor/formScriptEnabled-editor.vue +15 -10
- package/src/components/xform/form-designer/widget-panel/widgetsConfig.js +5 -0
- package/src/components/xform/form-render/container-item/data-table-item.vue +11 -8
- package/src/components/xform/form-render/container-item/data-table-mixin.js +191 -57
- package/src/components/xform/mixins/scriptHttp.js +62 -61
- package/src/utils/request.js +43 -8
- package/src/utils/vab.js +1095 -1
- package/src/views/bd/setting/menu_kind/mixins/authDialog.js +295 -2
@@ -1,5 +1,29 @@
|
|
1
1
|
<template>
|
2
2
|
<div>
|
3
|
+
<el-form-item label-width="0">
|
4
|
+
<el-divider class="custom-divider-margin-top">选项设置</el-divider>
|
5
|
+
</el-form-item>
|
6
|
+
<el-form-item label="选项值类型">
|
7
|
+
<el-radio-group v-model="optionModel.optionItemValueType" @change="changeValueType">
|
8
|
+
<el-radio :label="0">文本</el-radio>
|
9
|
+
<el-radio :label="1">数值</el-radio>
|
10
|
+
<el-radio :label="2">布尔值</el-radio>
|
11
|
+
</el-radio-group>
|
12
|
+
</el-form-item>
|
13
|
+
<el-form-item label="默认值">
|
14
|
+
<el-input v-model="optionModel.defaultValue" size="mini" style="width: 100px" v-if="!optionModel.optionItemValueType"></el-input>
|
15
|
+
<base-input-number v-model="optionModel.defaultValue" size="mini" style="width: 100%" v-if="optionModel.optionItemValueType==1" />
|
16
|
+
<el-select v-model="optionModel.defaultValue" style="width: 100%" v-if="optionModel.optionItemValueType===2" clearable @clear="optionModel.defaultValue=null">
|
17
|
+
<el-option :value="true" label="true"></el-option>
|
18
|
+
<el-option :value="false" label="false"></el-option>
|
19
|
+
</el-select>
|
20
|
+
</el-form-item>
|
21
|
+
<el-form-item :label="i18nt('显示字段')" v-if="optionModel.commonAttributeEnabled || optionModel.formScriptEnabled">
|
22
|
+
<el-input type="text" v-model="optionModel.labelKey" placeholder="默认label" :disabled="optionModel.commonAttributeEnabled"></el-input>
|
23
|
+
</el-form-item>
|
24
|
+
<el-form-item :label="i18nt('关联字段')" v-if="optionModel.commonAttributeEnabled || optionModel.formScriptEnabled">
|
25
|
+
<el-input type="text" v-model="optionModel.valueKey" placeholder="默认value" :disabled="optionModel.commonAttributeEnabled"></el-input>
|
26
|
+
</el-form-item>
|
3
27
|
<el-form-item label="状态配置">
|
4
28
|
<a href="javascript:void(0);" class="a-link link-oneLind" @click="openDialog">
|
5
29
|
<span>{{ optionModel.statusParam.length ? "已维护" : "" }}</span>
|
@@ -15,30 +39,12 @@
|
|
15
39
|
:close-on-click-modal="!1"
|
16
40
|
:close-on-press-escape="!1"
|
17
41
|
:destroy-on-close="!0"
|
18
|
-
|
19
|
-
|
42
|
+
width="800px"
|
43
|
+
top="0px"
|
20
44
|
v-dialog-drag
|
21
45
|
@closed="closeHandle"
|
22
46
|
>
|
23
47
|
<div class="cont">
|
24
|
-
<el-form-item label="选项值类型" style="width: 350px;">
|
25
|
-
<!-- <el-switch v-model="optionItemValueType" @change="changeValueType"></el-switch>-->
|
26
|
-
<el-radio-group v-model="optionItemValueType" @change="changeValueType">
|
27
|
-
<el-radio :label="0">文本</el-radio>
|
28
|
-
<el-radio :label="1">数值</el-radio>
|
29
|
-
<el-radio :label="2">布尔值</el-radio>
|
30
|
-
</el-radio-group>
|
31
|
-
</el-form-item>
|
32
|
-
<el-form-item label="默认值" style="width: 300px;">
|
33
|
-
<el-input v-model="defaultValue" v-if="!optionItemValueType"></el-input>
|
34
|
-
<base-input-number v-model="defaultValue" ref="defaultNumberInput"
|
35
|
-
v-if="optionItemValueType==1"/>
|
36
|
-
<el-select v-model="defaultValue" v-if="optionItemValueType===2" clearable
|
37
|
-
@clear="defaultValue=null">
|
38
|
-
<el-option :value="true" label="true"></el-option>
|
39
|
-
<el-option :value="false" label="false"></el-option>
|
40
|
-
</el-select>
|
41
|
-
</el-form-item>
|
42
48
|
<el-table
|
43
49
|
ref="singleTable"
|
44
50
|
width="100%"
|
@@ -64,9 +70,9 @@
|
|
64
70
|
</el-table-column>
|
65
71
|
<el-table-column label="字段值" width="150" prop="value">
|
66
72
|
<template slot-scope="scope">
|
67
|
-
<el-input v-model="scope.row.value" v-if="optionItemValueType===0"></el-input>
|
68
|
-
<base-input-number v-model="scope.row.value" v-if="optionItemValueType===1"></base-input-number>
|
69
|
-
<template v-if="optionItemValueType===2">{{ scope.row.value }}</template>
|
73
|
+
<el-input v-model="scope.row.value" v-if="optionModel.optionItemValueType===0"></el-input>
|
74
|
+
<base-input-number v-model="scope.row.value" v-if="optionModel.optionItemValueType===1"></base-input-number>
|
75
|
+
<template v-if="optionModel.optionItemValueType===2">{{ scope.row.value }}</template>
|
70
76
|
</template>
|
71
77
|
</el-table-column>
|
72
78
|
<el-table-column label="状态颜色" width="100" prop="type">
|
@@ -181,8 +187,8 @@ export default {
|
|
181
187
|
})
|
182
188
|
},
|
183
189
|
confirmDialog() {
|
184
|
-
this.optionModel.optionItemValueType = this.optionItemValueType;
|
185
|
-
this.optionModel.defaultValue = (this.defaultValue === "" || this.defaultValue === undefined) ? null : this.defaultValue;
|
190
|
+
// this.optionModel.optionItemValueType = this.optionItemValueType;
|
191
|
+
// this.optionModel.defaultValue = (this.defaultValue === "" || this.defaultValue === undefined) ? null : this.defaultValue;
|
186
192
|
this.optionModel.statusParam = this.$baseLodash.cloneDeep(this.tableData);
|
187
193
|
this.showDialog = false;
|
188
194
|
this.$nextTick(() => {
|
@@ -195,23 +201,24 @@ export default {
|
|
195
201
|
this.tableData.splice(rowIndex, 1);
|
196
202
|
},
|
197
203
|
changeValueType(val) {
|
198
|
-
this.tableData =
|
204
|
+
// this.tableData = this.$baseLodash.cloneDeep(this.optionModel.statusParam);
|
205
|
+
this.optionModel.statusParam = [];
|
199
206
|
if (val == 2) {
|
200
|
-
this.
|
207
|
+
this.optionModel.statusParam.push({
|
201
208
|
label: "是",
|
202
209
|
value: true,
|
203
210
|
type: "success"
|
204
211
|
});
|
205
|
-
this.
|
212
|
+
this.optionModel.statusParam.push({
|
206
213
|
label: "否",
|
207
214
|
value: false,
|
208
215
|
type: "danger"
|
209
216
|
});
|
210
217
|
}
|
211
218
|
if (val == 1) {
|
212
|
-
this.defaultValue = undefined
|
219
|
+
this.optionModel.defaultValue = undefined
|
213
220
|
} else {
|
214
|
-
this.defaultValue = null
|
221
|
+
this.optionModel.defaultValue = null
|
215
222
|
}
|
216
223
|
|
217
224
|
}
|
@@ -29,14 +29,14 @@
|
|
29
29
|
<el-form-item :label="i18nt('词汇编码')" v-if="optionModel.commonAttributeEnabled">
|
30
30
|
<el-input type="text" v-model="optionModel.commonAttributeCode"></el-input>
|
31
31
|
</el-form-item>
|
32
|
-
<el-form-item :label="i18nt('显示字段')" v-if="optionModel.formScriptEnabled || optionModel.commonAttributeEnabled">
|
32
|
+
<!-- <el-form-item :label="i18nt('显示字段')" v-if="optionModel.formScriptEnabled || optionModel.commonAttributeEnabled">
|
33
33
|
<el-input type="text" v-model="optionModel.labelKey" :disabled="optionModel.commonAttributeEnabled"></el-input>
|
34
34
|
</el-form-item>
|
35
35
|
<el-form-item :label="i18nt('关联字段')" v-if="optionModel.formScriptEnabled || optionModel.commonAttributeEnabled">
|
36
36
|
<el-input type="text" v-model="optionModel.valueKey" :disabled="optionModel.commonAttributeEnabled"></el-input>
|
37
|
-
</el-form-item>
|
37
|
+
</el-form-item> -->
|
38
38
|
</template>
|
39
|
-
<el-form-item label="查询回调">
|
39
|
+
<el-form-item label="查询回调" v-if="optionModel.formScriptEnabled || optionModel.commonAttributeEnabled">
|
40
40
|
<a href="javascript:void(0);" class="a-link link-oneLind"
|
41
41
|
@click="editEventHandler('formScriptSuccess', ['dataId', 'formCode','res'])">
|
42
42
|
<span>{{ optionModel.formScriptSuccess }}</span>
|
@@ -61,7 +61,7 @@ export default {
|
|
61
61
|
},
|
62
62
|
data() {
|
63
63
|
return {
|
64
|
-
formScriptEnabledTypes: ['select', 'checkbox', 'radio', 'census']
|
64
|
+
formScriptEnabledTypes: ['select', 'checkbox', 'radio', 'census','status']
|
65
65
|
}
|
66
66
|
},
|
67
67
|
methods: {
|
@@ -70,20 +70,25 @@ export default {
|
|
70
70
|
},
|
71
71
|
changeFormScriptEnabled(val){
|
72
72
|
if(val){
|
73
|
-
|
74
|
-
this.optionModel.commonAttributeEnabled = false
|
75
|
-
}
|
73
|
+
this.optionModel.commonAttributeEnabled = false
|
76
74
|
}
|
75
|
+
this.handleLabelAndValueKey();
|
77
76
|
},
|
78
77
|
changeCommonAttributeEnabled(val){
|
79
78
|
if(val){
|
80
79
|
this.optionModel.formScriptEnabled = false;
|
80
|
+
}
|
81
|
+
this.handleLabelAndValueKey();
|
82
|
+
},
|
83
|
+
handleLabelAndValueKey(){
|
84
|
+
if(this.optionModel.commonAttributeEnabled){
|
81
85
|
this.optionModel.labelKey = "value";
|
82
86
|
this.optionModel.valueKey = "sn";
|
83
|
-
}else{
|
84
|
-
|
85
|
-
|
87
|
+
}else {
|
88
|
+
this.optionModel.labelKey = "label";
|
89
|
+
this.optionModel.valueKey = "value";
|
86
90
|
}
|
91
|
+
|
87
92
|
}
|
88
93
|
}
|
89
94
|
}
|
@@ -907,6 +907,7 @@ const projectTagConfig = {
|
|
907
907
|
const httpConfig = {
|
908
908
|
httpFormCode: null,
|
909
909
|
formScriptEnabled: true,
|
910
|
+
commonAttributeEnabled:false,
|
910
911
|
formScriptCode: null,
|
911
912
|
formScriptParam: null,
|
912
913
|
formScriptSuccess: null,
|
@@ -3240,6 +3241,10 @@ export const advancedFields = [
|
|
3240
3241
|
optionItemValueType: 0,
|
3241
3242
|
statusType: "common",
|
3242
3243
|
statusParam: [],
|
3244
|
+
|
3245
|
+
...httpConfig,
|
3246
|
+
formScriptEnabled:false,
|
3247
|
+
|
3243
3248
|
onCreated: "",
|
3244
3249
|
onMounted: "",
|
3245
3250
|
...defaultWfConfig,
|
@@ -206,15 +206,18 @@
|
|
206
206
|
</component>
|
207
207
|
</template>-->
|
208
208
|
<template #widget="obj">
|
209
|
-
<template
|
210
|
-
v-if="!!fieldSchemaMap[obj.row._X_ROW_KEY] && fieldSchemaMap[obj.row._X_ROW_KEY][obj.column.params.widget.id]">
|
209
|
+
<template v-if="!!getTableColumnWidget(obj)">
|
211
210
|
<template v-if="obj.column.params.widget.type == 'status'">
|
212
|
-
<template
|
213
|
-
v-
|
214
|
-
|
215
|
-
v-if="
|
216
|
-
:key="
|
217
|
-
|
211
|
+
<template v-for="(item,index) in getTableColumnWidget(obj).options.statusParam">
|
212
|
+
<template v-if="isShowColumnStatusWidget(obj,item)">
|
213
|
+
<span
|
214
|
+
v-if="getTableColumnWidget(obj).options.formScriptEnabled || getTableColumnWidget(obj).options.commonAttributeEnabled"
|
215
|
+
:key="getTableColumnWidget(obj).id+'-'+index">{{ getI18nLabel(item[getTableColumnStatusWidgetLabelKey(obj)]) }}</span>
|
216
|
+
<span
|
217
|
+
v-else
|
218
|
+
:key="getTableColumnWidget(obj).id+'-'+index" class="list-tag"
|
219
|
+
:class="item.type">{{ getI18nLabel(item[getTableColumnStatusWidgetLabelKey(obj)]) }}</span>
|
220
|
+
</template>
|
218
221
|
</template>
|
219
222
|
</template>
|
220
223
|
<component
|
@@ -13,6 +13,7 @@ import {
|
|
13
13
|
deepClone,
|
14
14
|
loopHandleWidget,
|
15
15
|
columnFormatMap,
|
16
|
+
traverseAllWidgetsNew,
|
16
17
|
} from "../../../../components/xform/utils/util";
|
17
18
|
import { tableTreeMixins } from "../../../../mixins/tableTree/index.js";
|
18
19
|
|
@@ -176,12 +177,126 @@ modules = {
|
|
176
177
|
},
|
177
178
|
mounted: async function () {
|
178
179
|
this.handleOnMounted();
|
179
|
-
this.
|
180
|
+
this.initColumnWidgetConfig(() => {
|
181
|
+
this.initTableList();
|
182
|
+
});
|
180
183
|
},
|
181
184
|
beforeDestroy: function () {
|
182
185
|
this.unregisterFromRefList();
|
183
186
|
},
|
184
187
|
methods: {
|
188
|
+
getTableColumnStatusWidgetLabelKey(obj) {
|
189
|
+
let widget = this.getTableColumnWidget(obj);
|
190
|
+
return widget ? this.getOptionItemLabelKey(widget) : null;
|
191
|
+
},
|
192
|
+
getOptionItemValueKey(widget) {
|
193
|
+
return widget.options.valueKey || "value";
|
194
|
+
},
|
195
|
+
getOptionItemLabelKey(widget) {
|
196
|
+
return widget.options.labelKey || "label";
|
197
|
+
},
|
198
|
+
getTableColumnWidget(obj) {
|
199
|
+
let item = this.fieldSchemaMap[obj.row._X_ROW_KEY];
|
200
|
+
return item ? item[obj.column.params?.widget.id] : null;
|
201
|
+
},
|
202
|
+
isShowColumnStatusWidget(obj, item) {
|
203
|
+
let widget = this.getTableColumnWidget(obj);
|
204
|
+
let valueKey = widget.options.valueKey || "value";
|
205
|
+
return (
|
206
|
+
obj.row[this.getTableColumnWidgetFieldKeyName(obj)] === item[valueKey]
|
207
|
+
);
|
208
|
+
},
|
209
|
+
getTableColumnWidgetFieldKeyName(obj) {
|
210
|
+
let widget = this.getTableColumnWidget(obj);
|
211
|
+
return widget ? this.getFieldKeyName(widget) : null;
|
212
|
+
},
|
213
|
+
initColumnWidgetConfig(callback) {
|
214
|
+
let tableColumns = this.widget.options.tableColumns;
|
215
|
+
let requests = [];
|
216
|
+
this.loodHandleColumns(tableColumns, (row) => {
|
217
|
+
requests.push(this.handleColumnWidgetConfig(row.widget));
|
218
|
+
requests.push(this.handleColumnWidgetConfig(row.editWidget));
|
219
|
+
let widgetList = row.widgetList;
|
220
|
+
if (widgetList && widgetList.length) {
|
221
|
+
traverseAllWidgetsNew(widgetList, (widget) => {
|
222
|
+
requests.push(this.handleColumnWidgetConfig(widget));
|
223
|
+
});
|
224
|
+
}
|
225
|
+
});
|
226
|
+
if (requests.length) {
|
227
|
+
Promise.all(requests).then(() => {
|
228
|
+
callback();
|
229
|
+
});
|
230
|
+
} else {
|
231
|
+
callback();
|
232
|
+
}
|
233
|
+
},
|
234
|
+
fillColumnWidgetOptionItems(widget, rows) {
|
235
|
+
let widgetType = widget.type;
|
236
|
+
let formScriptEnabledTypes = ["select", "checkbox", "radio"];
|
237
|
+
if (formScriptEnabledTypes.includes(widgetType)) {
|
238
|
+
widget.options.optionItems = rows || [];
|
239
|
+
} else if (widgetType == "status") {
|
240
|
+
widget.options.statusParam = rows || [];
|
241
|
+
}
|
242
|
+
widget._syncInited = true;
|
243
|
+
},
|
244
|
+
async handleColumnWidgetConfig(widget, callback) {
|
245
|
+
if (!widget) return;
|
246
|
+
let widgetType = widget.type;
|
247
|
+
let formScriptEnabledTypes = ["select", "checkbox", "radio", "status"];
|
248
|
+
if (!formScriptEnabledTypes.includes(widgetType)) return;
|
249
|
+
|
250
|
+
let formScriptEnabled = widget.options.formScriptEnabled || false;
|
251
|
+
let commonAttributeEnabled =
|
252
|
+
widget.options.commonAttributeEnabled || false;
|
253
|
+
let commonAttributeCode = widget.options.commonAttributeCode;
|
254
|
+
if (commonAttributeEnabled) {
|
255
|
+
if (!commonAttributeCode) return;
|
256
|
+
}
|
257
|
+
|
258
|
+
if (!formScriptEnabled && !commonAttributeEnabled) return;
|
259
|
+
|
260
|
+
let reportTemplate = this.getFormRef().reportTemplate;
|
261
|
+
let formCode = reportTemplate.formCode;
|
262
|
+
let scriptCode = widget.options.formScriptCode || "getList";
|
263
|
+
let fieldKeyName = this.getFieldKeyName(widget);
|
264
|
+
|
265
|
+
if (formScriptEnabled) {
|
266
|
+
let accessParam = this.handleCustomEvent(
|
267
|
+
widget.options.formScriptParam
|
268
|
+
);
|
269
|
+
return this.formHttp({
|
270
|
+
scriptCode: scriptCode,
|
271
|
+
data: {
|
272
|
+
formCode: formCode,
|
273
|
+
formVersion: reportTemplate.formVersion,
|
274
|
+
taBm: fieldKeyName,
|
275
|
+
data: {
|
276
|
+
...accessParam,
|
277
|
+
},
|
278
|
+
},
|
279
|
+
success: (res) => {
|
280
|
+
let rows = res.objx || [];
|
281
|
+
this.fillColumnWidgetOptionItems(widget, rows);
|
282
|
+
},
|
283
|
+
});
|
284
|
+
} else if (commonAttributeEnabled) {
|
285
|
+
let accessParam = this.handleCustomEvent(
|
286
|
+
widget.options.formScriptParam
|
287
|
+
);
|
288
|
+
|
289
|
+
return this.$getBaseDicts({
|
290
|
+
code: commonAttributeCode,
|
291
|
+
data: {
|
292
|
+
...accessParam,
|
293
|
+
},
|
294
|
+
success: ({ dicts, dictMap }) => {
|
295
|
+
this.fillColumnWidgetOptionItems(widget, dicts);
|
296
|
+
},
|
297
|
+
});
|
298
|
+
}
|
299
|
+
},
|
185
300
|
initConfig() {
|
186
301
|
let formRef = this.getFormRef();
|
187
302
|
this.widget.options.tableColumns.forEach((row) => {
|
@@ -626,7 +741,7 @@ modules = {
|
|
626
741
|
this.rowWidgetList = rowWidgetList;
|
627
742
|
return this.$baseLodash.cloneDeep(newColumns);
|
628
743
|
},
|
629
|
-
initTableList() {
|
744
|
+
async initTableList() {
|
630
745
|
let that = this;
|
631
746
|
let path = null;
|
632
747
|
let paramFun = null;
|
@@ -875,14 +990,16 @@ modules = {
|
|
875
990
|
|
876
991
|
let gridPageSize = this.widget.options.gridPageSize;
|
877
992
|
let gridPageSizeList = this.widget.options.gridPageSizeList || [];
|
878
|
-
if(!gridPageSizeList || !gridPageSizeList.length){
|
879
|
-
pagerConfig.pageSizes = [50,100,200,500]
|
880
|
-
if(!gridPageSize)gridPageSize = 100
|
881
|
-
pagerConfig.pageSize = gridPageSize
|
882
|
-
}else{
|
883
|
-
pagerConfig.pageSizes = gridPageSizeList
|
884
|
-
|
885
|
-
|
993
|
+
if (!gridPageSizeList || !gridPageSizeList.length) {
|
994
|
+
pagerConfig.pageSizes = [50, 100, 200, 500];
|
995
|
+
if (!gridPageSize) gridPageSize = 100;
|
996
|
+
pagerConfig.pageSize = gridPageSize;
|
997
|
+
} else {
|
998
|
+
pagerConfig.pageSizes = gridPageSizeList
|
999
|
+
.filter((item) => item.value)
|
1000
|
+
.map((item) => item.value);
|
1001
|
+
if (!gridPageSize) gridPageSize = pagerConfig.pageSizes[0];
|
1002
|
+
pagerConfig.pageSize = gridPageSize;
|
886
1003
|
}
|
887
1004
|
|
888
1005
|
//标题颜色
|
@@ -1215,9 +1332,10 @@ modules = {
|
|
1215
1332
|
let columnLoopDo = (t, e) => {
|
1216
1333
|
callback && callback(t);
|
1217
1334
|
if (t.children && t.children.length) {
|
1218
|
-
|
1335
|
+
this.loodHandleColumns(t.children, callback);
|
1336
|
+
/* for (let item of t.children) {
|
1219
1337
|
columnLoopDo(item);
|
1220
|
-
}
|
1338
|
+
} */
|
1221
1339
|
}
|
1222
1340
|
};
|
1223
1341
|
for (let item of columns) {
|
@@ -1500,7 +1618,7 @@ modules = {
|
|
1500
1618
|
this.removeTreeRow({ row });
|
1501
1619
|
return;
|
1502
1620
|
}
|
1503
|
-
|
1621
|
+
delete this.fieldSchemaMap[row._X_ROW_KEY];
|
1504
1622
|
let $grid = this.getGridTable();
|
1505
1623
|
$grid.remove(row);
|
1506
1624
|
let tableData = $grid.getTableData();
|
@@ -1513,46 +1631,60 @@ modules = {
|
|
1513
1631
|
});
|
1514
1632
|
// this.deleteRowWidgets(row);
|
1515
1633
|
},
|
1516
|
-
isSingerlSearch(widget){
|
1634
|
+
isSingerlSearch(widget) {
|
1517
1635
|
let widgetType = widget?.type;
|
1518
|
-
let result =
|
1519
|
-
|
1636
|
+
let result =
|
1637
|
+
widgetType === "singerSearch" ||
|
1638
|
+
(widgetType === "vabsearch" && !widget.options.multipleChoices);
|
1639
|
+
return result;
|
1520
1640
|
},
|
1521
|
-
getColumnNullValue(widget){
|
1522
|
-
if(!widget)return null
|
1641
|
+
getColumnNullValue(widget) {
|
1642
|
+
if (!widget) return null;
|
1523
1643
|
let nullValue = null;
|
1524
1644
|
let widgetType = widget.type;
|
1525
|
-
let multiWidgetTypes = [
|
1645
|
+
let multiWidgetTypes = [
|
1646
|
+
"checkbox",
|
1647
|
+
"time-range",
|
1648
|
+
"baseAttachment",
|
1649
|
+
"vabUpload",
|
1650
|
+
"project-tag",
|
1651
|
+
];
|
1526
1652
|
|
1527
1653
|
let defaultValue = widget.options.defaultValue;
|
1528
|
-
if (
|
1529
|
-
|
1530
|
-
|
1654
|
+
if (
|
1655
|
+
defaultValue !== undefined &&
|
1656
|
+
defaultValue !== null &&
|
1657
|
+
defaultValue !== ""
|
1658
|
+
) {
|
1659
|
+
nullValue = defaultValue;
|
1660
|
+
} else if (widgetType === "select" && widget.options.multiple) {
|
1531
1661
|
nullValue = [];
|
1532
|
-
} else if (widgetType ===
|
1662
|
+
} else if (widgetType === "date" && widget.options.type == "dates") {
|
1533
1663
|
nullValue = [];
|
1534
|
-
}else if (widgetType ===
|
1664
|
+
} else if (widgetType === "vabsearch" && widget.options.multipleChoices) {
|
1535
1665
|
nullValue = [];
|
1536
|
-
} else if (multiWidgetTypes.includes(widgetType)){
|
1666
|
+
} else if (multiWidgetTypes.includes(widgetType)) {
|
1537
1667
|
nullValue = [];
|
1538
1668
|
}
|
1539
1669
|
return nullValue;
|
1540
1670
|
},
|
1541
|
-
getIsFormWidget(widget){
|
1671
|
+
getIsFormWidget(widget) {
|
1542
1672
|
let widgetTypes = ["baseAttachment"];
|
1543
1673
|
let result = false;
|
1544
|
-
if(widget.formItemFlag){
|
1674
|
+
if (widget.formItemFlag) {
|
1545
1675
|
result = true;
|
1546
1676
|
}
|
1547
1677
|
return result;
|
1548
1678
|
},
|
1549
|
-
handleWidgetNullValue(widget,newData){
|
1550
|
-
if(!widget || !newData)return
|
1551
|
-
if(this.getIsFormWidget(widget)){
|
1552
|
-
let field = this.getFieldKeyName(widget)
|
1553
|
-
let nullValue = newData.hasOwnProperty(field)
|
1679
|
+
handleWidgetNullValue(widget, newData) {
|
1680
|
+
if (!widget || !newData) return;
|
1681
|
+
if (this.getIsFormWidget(widget)) {
|
1682
|
+
let field = this.getFieldKeyName(widget);
|
1683
|
+
let nullValue = newData.hasOwnProperty(field)
|
1684
|
+
? null
|
1685
|
+
: this.getColumnNullValue(widget);
|
1554
1686
|
newData[field] = nullValue;
|
1555
|
-
if(this.isSingerlSearch(widget)){
|
1687
|
+
if (this.isSingerlSearch(widget)) {
|
1556
1688
|
let vabSearchName = widget.options.vabSearchName;
|
1557
1689
|
if (vabSearchName) newData[vabSearchName] = null;
|
1558
1690
|
}
|
@@ -1563,28 +1695,27 @@ modules = {
|
|
1563
1695
|
this.loodHandleColumns(this.widget.options.tableColumns, (item) => {
|
1564
1696
|
if (!item.children?.length && item.prop && item.label) {
|
1565
1697
|
let formatS = !isEdit ? item.formatS : item.editFormatS;
|
1566
|
-
|
1567
|
-
|
1568
|
-
|
1569
|
-
|
1570
|
-
|
1698
|
+
let widget = null;
|
1699
|
+
if (isEdit) {
|
1700
|
+
widget = item.editWidget || item.widget;
|
1701
|
+
} else {
|
1702
|
+
widget = item.widget;
|
1703
|
+
}
|
1704
|
+
if (formatS == "widgetRender") {
|
1705
|
+
if (item.widgetList) {
|
1706
|
+
loopHandleWidget(item.widgetList, (w, p) => {
|
1707
|
+
this.handleWidgetNullValue(w, newData);
|
1708
|
+
});
|
1571
1709
|
}
|
1572
|
-
|
1573
|
-
|
1574
|
-
|
1575
|
-
|
1576
|
-
|
1577
|
-
}
|
1578
|
-
}else {
|
1579
|
-
if(widget){
|
1580
|
-
this.handleWidgetNullValue(widget, newData);
|
1581
|
-
}else {
|
1582
|
-
newData[item.prop] = null
|
1583
|
-
}
|
1710
|
+
} else {
|
1711
|
+
if (widget) {
|
1712
|
+
this.handleWidgetNullValue(widget, newData);
|
1713
|
+
} else {
|
1714
|
+
newData[item.prop] = null;
|
1584
1715
|
}
|
1716
|
+
}
|
1585
1717
|
}
|
1586
1718
|
});
|
1587
|
-
|
1588
1719
|
/* let vailColumns = this.widget.options.tableColumns.filter(
|
1589
1720
|
(item) => item.prop && item.label
|
1590
1721
|
);
|
@@ -1764,7 +1895,7 @@ modules = {
|
|
1764
1895
|
let rowIndex = Math.max(obj.rowIndex, 0);
|
1765
1896
|
|
1766
1897
|
let propName = fieldKeyName + "." + rowIndex + "." + property;
|
1767
|
-
return propName
|
1898
|
+
return propName;
|
1768
1899
|
},
|
1769
1900
|
getColumnProp(widget, obj, isEdit) {
|
1770
1901
|
if (!widget) {
|
@@ -1775,9 +1906,12 @@ modules = {
|
|
1775
1906
|
}*/
|
1776
1907
|
let isQueryTable = this.widget.options.isQueryTable || false;
|
1777
1908
|
if (isEdit || !isQueryTable) {
|
1778
|
-
let sourceWidgetId = isEdit
|
1779
|
-
|
1780
|
-
|
1909
|
+
let sourceWidgetId = isEdit
|
1910
|
+
? obj.column.params.editWidget.id
|
1911
|
+
: obj.column.params.widget.id;
|
1912
|
+
if (!this.fieldSchemaMap[obj.row._X_ROW_KEY]) return "false";
|
1913
|
+
let fieldWidget =
|
1914
|
+
this.fieldSchemaMap[obj.row._X_ROW_KEY][sourceWidgetId];
|
1781
1915
|
if (!fieldWidget) {
|
1782
1916
|
return "false";
|
1783
1917
|
}
|
@@ -1786,8 +1920,8 @@ modules = {
|
|
1786
1920
|
let rowIndex = Math.max(obj.rowIndex, 0);
|
1787
1921
|
|
1788
1922
|
let property = this.getFieldKeyName(fieldWidget);
|
1789
|
-
if(obj.row[property] && Array.isArray(obj.row[property])){
|
1790
|
-
return "false"
|
1923
|
+
if (obj.row[property] && Array.isArray(obj.row[property])) {
|
1924
|
+
return "false";
|
1791
1925
|
}
|
1792
1926
|
// let property = obj.column.property
|
1793
1927
|
if (this.isVabsearchFlagWidget(fieldWidget)) {
|