cnhis-design-vue 2.1.159 → 2.1.160
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/CHANGELOG.md +19 -4
- package/es/affix/index.js +8 -8
- package/es/age/index.js +10 -10
- package/es/alert/index.js +8 -8
- package/es/anchor/index.js +8 -8
- package/es/auto-complete/index.js +8 -8
- package/es/avatar/index.js +8 -8
- package/es/back-top/index.js +8 -8
- package/es/badge/index.js +8 -8
- package/es/base/index.js +8 -8
- package/es/big-table/index.js +80 -71
- package/es/breadcrumb/index.js +8 -8
- package/es/button/index.js +33 -33
- package/es/calendar/index.js +8 -8
- package/es/captcha/index.js +3 -3
- package/es/card/index.js +8 -8
- package/es/card-reader-sdk/index.js +1 -1
- package/es/carousel/index.js +8 -8
- package/es/cascader/index.js +8 -8
- package/es/checkbox/index.js +9 -9
- package/es/col/index.js +8 -8
- package/es/collapse/index.js +8 -8
- package/es/color-picker/index.js +1 -1
- package/es/comment/index.js +8 -8
- package/es/config-provider/index.js +8 -8
- package/es/date-picker/index.js +8 -8
- package/es/descriptions/index.js +8 -8
- package/es/direct/index.js +16 -16
- package/es/divider/index.js +8 -8
- package/es/drag-layout/index.js +3 -3
- package/es/drawer/index.js +8 -8
- package/es/dropdown/index.js +8 -8
- package/es/editor/index.js +1 -1
- package/es/ellipsis/index.js +1 -1
- package/es/empty/index.js +8 -8
- package/es/fabric-chart/index.js +9 -9
- package/es/form/index.js +8 -8
- package/es/form-model/index.js +8 -8
- package/es/form-table/index.js +74 -74
- package/es/full-calendar/index.js +4 -4
- package/es/index/index.js +862 -543
- package/es/index/style.css +1 -1
- package/es/input/index.js +9 -9
- package/es/input-number/index.js +8 -8
- package/es/layout/index.js +8 -8
- package/es/list/index.js +8 -8
- package/es/locale-provider/index.js +8 -8
- package/es/map/index.js +9 -9
- package/es/mentions/index.js +8 -8
- package/es/menu/index.js +8 -8
- package/es/message/index.js +8 -8
- package/es/multi-chat/index.js +76 -76
- package/es/multi-chat-client/index.js +70 -70
- package/es/multi-chat-history/index.js +4 -4
- package/es/multi-chat-record/index.js +14 -14
- package/es/multi-chat-setting/index.js +22 -22
- package/es/multi-chat-sip/index.js +1 -1
- package/es/notification/index.js +8 -8
- package/es/page-header/index.js +8 -8
- package/es/pagination/index.js +8 -8
- package/es/popconfirm/index.js +8 -8
- package/es/popover/index.js +8 -8
- package/es/progress/index.js +8 -8
- package/es/radio/index.js +9 -9
- package/es/rate/index.js +8 -8
- package/es/result/index.js +8 -8
- package/es/row/index.js +8 -8
- package/es/scale-container/index.js +9 -9
- package/es/scale-view/index.js +27 -27
- package/es/select/index.js +12 -12
- package/es/select-label/index.js +11 -11
- package/es/select-person/index.js +2 -2
- package/es/select-tag/index.js +4 -4
- package/es/shortcut-setter/index.js +10 -10
- package/es/skeleton/index.js +8 -8
- package/es/slider/index.js +8 -8
- package/es/slider-tree/index.js +9 -9
- package/es/space/index.js +8 -8
- package/es/spin/index.js +8 -8
- package/es/statistic/index.js +8 -8
- package/es/steps/index.js +8 -8
- package/es/switch/index.js +8 -8
- package/es/table-filter/index.js +492 -182
- package/es/table-filter/style.css +1 -1
- package/es/tabs/index.js +8 -8
- package/es/tag/index.js +9 -9
- package/es/time-picker/index.js +8 -8
- package/es/timeline/index.js +8 -8
- package/es/tooltip/index.js +8 -8
- package/es/transfer/index.js +8 -8
- package/es/tree/index.js +8 -8
- package/es/tree-select/index.js +8 -8
- package/es/upload/index.js +8 -8
- package/es/verification-code/index.js +2 -2
- package/lib/cui.common.js +815 -473
- package/lib/cui.umd.js +815 -473
- package/lib/cui.umd.min.js +15 -15
- package/package.json +1 -1
- package/packages/big-table/src/utils/headerFilter.js +6 -0
- package/packages/table-filter/src/base-search-com/BaseSearch.vue +20 -6
- package/packages/table-filter/src/components/render-widget/components/SelectDynamic.vue +3 -2
- package/packages/table-filter/src/components/render-widget/components/SelectTree.vue +145 -0
- package/packages/table-filter/src/components/render-widget/components/index.js +2 -1
- package/packages/table-filter/src/components/render-widget/enums.js +2 -1
- package/packages/table-filter/src/components/render-widget/index.vue +3 -0
- package/packages/table-filter/src/components/render-widget/mixins/dynamic-method.js +47 -28
- package/packages/table-filter/src/components/render-widget/widgetCfgMaps.js +26 -1
- package/packages/table-filter/src/mixins/renderWidget.js +10 -1
package/package.json
CHANGED
|
@@ -354,6 +354,12 @@ export default {
|
|
|
354
354
|
end_val: item.end_val || '', // 结束时间
|
|
355
355
|
unit: item.unit || '' // 年龄
|
|
356
356
|
};
|
|
357
|
+
if (item.extendKey) {
|
|
358
|
+
temp.extendKey = item.extendKey;
|
|
359
|
+
}
|
|
360
|
+
if (item.extendType) {
|
|
361
|
+
temp.extendType = item.extendType;
|
|
362
|
+
}
|
|
357
363
|
conObj.push(temp);
|
|
358
364
|
}
|
|
359
365
|
// let dateCons = this.dateTeam.map(item => item.con);
|
|
@@ -1992,6 +1992,7 @@ export default create({
|
|
|
1992
1992
|
};
|
|
1993
1993
|
// paramsArray.push(utils.setParamsValue(setData[0].params, Object.assign(paramsData, { obj })));
|
|
1994
1994
|
let resParams = utils.setParamsValue(setData[0].params, Object.assign(paramsData, { obj, table: i })) || {}
|
|
1995
|
+
resParams._originRow = i;
|
|
1995
1996
|
if(btn?.__printConfig?.number) {
|
|
1996
1997
|
resParams.templateNumbers = [btn.__printConfig.number]
|
|
1997
1998
|
}
|
|
@@ -1999,7 +2000,7 @@ export default create({
|
|
|
1999
2000
|
});
|
|
2000
2001
|
return paramsArray;
|
|
2001
2002
|
},
|
|
2002
|
-
async receivePrintSuccessAboutPrint(res, info) {
|
|
2003
|
+
async receivePrintSuccessAboutPrint(res, info, config) {
|
|
2003
2004
|
const printBtn = this.printBtn;
|
|
2004
2005
|
const templateId = info.templateId;
|
|
2005
2006
|
const formatId = info.formatId;
|
|
@@ -2011,7 +2012,7 @@ export default create({
|
|
|
2011
2012
|
const result = await this.printConfig.postStepRule(printBtn.settingObj, {
|
|
2012
2013
|
result: res,
|
|
2013
2014
|
print: print
|
|
2014
|
-
});
|
|
2015
|
+
}, config);
|
|
2015
2016
|
|
|
2016
2017
|
let isSync = result?.method
|
|
2017
2018
|
if(!isSync || isSync!=='sync') return;
|
|
@@ -2023,15 +2024,28 @@ export default create({
|
|
|
2023
2024
|
console.log('error', error);
|
|
2024
2025
|
}
|
|
2025
2026
|
},
|
|
2026
|
-
async receivePrintSuccess(res, info) {
|
|
2027
|
+
async receivePrintSuccess(res, info, config={}) {
|
|
2028
|
+
const {isMulti, errorList=[]} = config
|
|
2029
|
+
let useRes = res;
|
|
2030
|
+
// 批量打印如果有失败就取errorList的最后一项
|
|
2031
|
+
if(isMulti && errorList.length) {
|
|
2032
|
+
useRes = errorList[errorList.length -1];
|
|
2033
|
+
}
|
|
2034
|
+
const {result, message, errinfo} = useRes || {}
|
|
2035
|
+
const messageType = isMulti ? result == 'error' ?'error' : 'success' : 'success';
|
|
2036
|
+
let msg = message;
|
|
2037
|
+
if(messageType === 'error' && errinfo) {
|
|
2038
|
+
msg = (message + `:${errinfo}`)
|
|
2039
|
+
}
|
|
2027
2040
|
if (info.type === 'print') {
|
|
2028
|
-
await this.receivePrintSuccessAboutPrint(
|
|
2041
|
+
await this.receivePrintSuccessAboutPrint(useRes, info, config);
|
|
2029
2042
|
}
|
|
2030
2043
|
if(info.type === 'download' && this.receivePrintSuccessDownloadPdf && typeof this.receivePrintSuccessDownloadPdf === 'function') {
|
|
2031
|
-
this.receivePrintSuccessDownloadPdf(
|
|
2044
|
+
this.receivePrintSuccessDownloadPdf(useRes, config)
|
|
2032
2045
|
}
|
|
2046
|
+
|
|
2033
2047
|
setTimeout(() => {
|
|
2034
|
-
this.$message
|
|
2048
|
+
this.$message[messageType](message);
|
|
2035
2049
|
}, 3500);
|
|
2036
2050
|
},
|
|
2037
2051
|
receivePrintError(res) {
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
:maxTagCount="maxTagCount"
|
|
10
10
|
:maxTagPlaceholder="maxTagPlaceholder"
|
|
11
11
|
:filterOption="false"
|
|
12
|
-
:allowClear="
|
|
12
|
+
:allowClear="allowClear"
|
|
13
13
|
:showArrow="true"
|
|
14
14
|
ref="quickInputSelect"
|
|
15
15
|
class="quick-dynamic-select"
|
|
@@ -90,7 +90,8 @@ export default {
|
|
|
90
90
|
placeholder: String,
|
|
91
91
|
mode: String,
|
|
92
92
|
handleWordBookSearchRender: Function,
|
|
93
|
-
dropdownVisibleChangeRender: Function
|
|
93
|
+
dropdownVisibleChangeRender: Function,
|
|
94
|
+
allowClear: Boolean
|
|
94
95
|
},
|
|
95
96
|
data() {
|
|
96
97
|
return {};
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div class="valueCfg-SelectDynamicTree">
|
|
3
|
+
<a-tree-select
|
|
4
|
+
v-model="valueCp"
|
|
5
|
+
showSearch
|
|
6
|
+
:multiple="isMultiple"
|
|
7
|
+
:placeholder="placeholder"
|
|
8
|
+
:dropdownMatchSelectWidth="false"
|
|
9
|
+
:maxTagCount="maxTagCount"
|
|
10
|
+
:maxTagPlaceholder="maxTagPlaceholder"
|
|
11
|
+
:tree-data="componentCfg.dataSource"
|
|
12
|
+
:allowClear="allowClear"
|
|
13
|
+
:replaceFields="replaceFields"
|
|
14
|
+
class="valueCfg-dynamic-select-tree"
|
|
15
|
+
dropdownClassName="valueCfg-dynamic-tree-drop"
|
|
16
|
+
ref="quickInputSelectTree"
|
|
17
|
+
treeNodeFilterProp="title"
|
|
18
|
+
@change="handleChange"
|
|
19
|
+
:dropdown-style="{ maxHeight: '293px', overflow: 'auto', zIndex: 2023 }"
|
|
20
|
+
>
|
|
21
|
+
<span
|
|
22
|
+
class="init-key-loading"
|
|
23
|
+
v-if="key === '_init_key_'"
|
|
24
|
+
slot="title"
|
|
25
|
+
slot-scope="{ key, value }"
|
|
26
|
+
style="color: #08c"
|
|
27
|
+
>
|
|
28
|
+
<span v-show="false">{{ value }}</span>
|
|
29
|
+
<a-spin :tip="`${$t('1.1.7.14')}...`" />
|
|
30
|
+
</span>
|
|
31
|
+
</a-tree-select>
|
|
32
|
+
</div>
|
|
33
|
+
</template>
|
|
34
|
+
<script>
|
|
35
|
+
export default {
|
|
36
|
+
name: "SelectTree",
|
|
37
|
+
components: {},
|
|
38
|
+
props: {
|
|
39
|
+
value: { type: [Array, String, Number] },
|
|
40
|
+
componentCfg: { type: Object },
|
|
41
|
+
placeholder: String,
|
|
42
|
+
mode: String,
|
|
43
|
+
handleWordBookSearchRender: Function,
|
|
44
|
+
dropdownVisibleChangeRender: Function,
|
|
45
|
+
isQuick: Boolean,
|
|
46
|
+
allowClear: Boolean,
|
|
47
|
+
},
|
|
48
|
+
data() {
|
|
49
|
+
return {
|
|
50
|
+
open: false,
|
|
51
|
+
replaceFields: {
|
|
52
|
+
children: "children",
|
|
53
|
+
title: "_show_title",
|
|
54
|
+
key: "myName",
|
|
55
|
+
value: "myName"
|
|
56
|
+
}
|
|
57
|
+
};
|
|
58
|
+
},
|
|
59
|
+
model: {
|
|
60
|
+
prop: "value",
|
|
61
|
+
event: "update:value"
|
|
62
|
+
},
|
|
63
|
+
computed: {
|
|
64
|
+
valueCp: {
|
|
65
|
+
set(val) {
|
|
66
|
+
this.$emit("update:value", val);
|
|
67
|
+
},
|
|
68
|
+
get() {
|
|
69
|
+
return this.value;
|
|
70
|
+
}
|
|
71
|
+
},
|
|
72
|
+
isMultiple() {
|
|
73
|
+
return this.mode === "multiple";
|
|
74
|
+
},
|
|
75
|
+
showSelectTitle() {
|
|
76
|
+
let { fetchingWordbook, dataSource } = this.componentCfg || {};
|
|
77
|
+
return !fetchingWordbook && !!dataSource?.length;
|
|
78
|
+
},
|
|
79
|
+
|
|
80
|
+
showKeys() {
|
|
81
|
+
let { showKeys } = this.componentCfg?.dynamicOptionInfo || {};
|
|
82
|
+
return showKeys;
|
|
83
|
+
},
|
|
84
|
+
_showKeys_() {
|
|
85
|
+
let { _showKeys_ } = this.componentCfg || {};
|
|
86
|
+
if (_showKeys_?.length) return _showKeys_;
|
|
87
|
+
return this.showKeys;
|
|
88
|
+
},
|
|
89
|
+
getShowKeysMax() {
|
|
90
|
+
let len = this.showKeys?.length || 1;
|
|
91
|
+
let maxWidth = 100 / len;
|
|
92
|
+
return {
|
|
93
|
+
maxWidth: `${maxWidth}%`
|
|
94
|
+
};
|
|
95
|
+
},
|
|
96
|
+
selectHasTitle() {
|
|
97
|
+
const { showSelectTitle, showKeys, componentCfg } = this;
|
|
98
|
+
return (
|
|
99
|
+
showSelectTitle &&
|
|
100
|
+
Array.isArray(showKeys) &&
|
|
101
|
+
showKeys?.length > 1 &&
|
|
102
|
+
componentCfg?.dataSource?.length
|
|
103
|
+
);
|
|
104
|
+
},
|
|
105
|
+
maxTagCount() {
|
|
106
|
+
if (!Array.isArray(this.value)) return undefined;
|
|
107
|
+
const len = this.value.length || 0;
|
|
108
|
+
return len > 1 ? 0 : 1;
|
|
109
|
+
}
|
|
110
|
+
},
|
|
111
|
+
watch: {
|
|
112
|
+
// value: {
|
|
113
|
+
// immediate: true,
|
|
114
|
+
// handler(val) {}
|
|
115
|
+
// }
|
|
116
|
+
},
|
|
117
|
+
// 生命周期
|
|
118
|
+
created() {},
|
|
119
|
+
mounted() {
|
|
120
|
+
if(!this.isQuick) return;
|
|
121
|
+
this.handleWordBookSearchRender('', this.componentCfg, {skipFirstDef: true});
|
|
122
|
+
},
|
|
123
|
+
|
|
124
|
+
// 方法
|
|
125
|
+
methods: {
|
|
126
|
+
maxTagPlaceholder() {
|
|
127
|
+
if (!Array.isArray(this.value)) return undefined;
|
|
128
|
+
const { alias, title } = this.componentCfg;
|
|
129
|
+
const len = this.value.length || 0;
|
|
130
|
+
return this.value.length > 1 ? `已选${len}个${alias || title}` : "";
|
|
131
|
+
},
|
|
132
|
+
handleChange(value, label, extra) {
|
|
133
|
+
console.log(value, label, extra, "--value, label, extra");
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
};
|
|
137
|
+
</script>
|
|
138
|
+
<style lang="less">
|
|
139
|
+
.valueCfg-SelectDynamicTree {
|
|
140
|
+
width: 100%;
|
|
141
|
+
}
|
|
142
|
+
.valueCfg-dynamic-select-tree {
|
|
143
|
+
width: 100%;
|
|
144
|
+
}
|
|
145
|
+
</style>
|
|
@@ -6,5 +6,6 @@ import SelectDynamic from './SelectDynamic.vue';
|
|
|
6
6
|
import Label from './Label.vue';
|
|
7
7
|
import SelectLabel from './SelectLabel.vue';
|
|
8
8
|
import Text from './Text.vue';
|
|
9
|
+
import SelectTree from './SelectTree.vue';
|
|
9
10
|
|
|
10
|
-
export { CheckboxGroup, Select, NumberRange, DateRangeQuick, SelectDynamic, Label, SelectLabel, Text };
|
|
11
|
+
export { CheckboxGroup, Select, NumberRange, DateRangeQuick, SelectDynamic, Label, SelectLabel, Text, SelectTree };
|
|
@@ -11,7 +11,8 @@ export const WidgetTypeEnums = {
|
|
|
11
11
|
DATETIME_RANGE: 'DATETIME_RANGE',
|
|
12
12
|
DATE_RANGE_QUICK: 'DATE_RANGE_QUICK',
|
|
13
13
|
LABEL: 'LABEL',
|
|
14
|
-
SELECT_LABEL: 'SELECT_LABEL'
|
|
14
|
+
SELECT_LABEL: 'SELECT_LABEL',
|
|
15
|
+
SELECT_TREE: 'SELECT_TREE'
|
|
15
16
|
};
|
|
16
17
|
|
|
17
18
|
export const DatePresetValEnums = {
|
|
@@ -92,6 +92,9 @@ export default {
|
|
|
92
92
|
Props.dropdownVisibleChangeRender = this.dropdownVisibleChangeRender;
|
|
93
93
|
Props.handleWordBookSearchRender = this.handleWordBookSearchRender;
|
|
94
94
|
}
|
|
95
|
+
if(widgetType === WidgetTypeEnums.SELECT_TREE) {
|
|
96
|
+
Props.handleWordBookSearchRender = this.handleWordBookSearchRender;
|
|
97
|
+
}
|
|
95
98
|
if(widgetType === WidgetTypeEnums.LABEL || widgetType === WidgetTypeEnums.SELECT_LABEL) {
|
|
96
99
|
Props.getLabelListMethodRender = this.getLabelListMethodRender;
|
|
97
100
|
}
|
|
@@ -7,7 +7,7 @@ export default {
|
|
|
7
7
|
},
|
|
8
8
|
methods: {
|
|
9
9
|
wordbookDataParamsRender(dynamicOptionInfo) {
|
|
10
|
-
let { dataSourceId, dataSourceType = 'WORDBOOK', filterKeys, autograph, defaultParams } = dynamicOptionInfo;
|
|
10
|
+
let { dataSourceId, dataSourceType = 'WORDBOOK', filterKeys, autograph, defaultParams, treeInfo = {} } = dynamicOptionInfo;
|
|
11
11
|
if (Array.isArray(filterKeys)) {
|
|
12
12
|
filterKeys = JSON.stringify(filterKeys);
|
|
13
13
|
}
|
|
@@ -17,6 +17,10 @@ export default {
|
|
|
17
17
|
fieldKeys: filterKeys,
|
|
18
18
|
autograph
|
|
19
19
|
};
|
|
20
|
+
if (treeInfo.enable) {
|
|
21
|
+
params.levelKey = treeInfo.levelKey;
|
|
22
|
+
params.primaryKey = treeInfo.primaryKey;
|
|
23
|
+
}
|
|
20
24
|
return params;
|
|
21
25
|
},
|
|
22
26
|
handleRenderFirstDef(item, rows) {
|
|
@@ -50,6 +54,46 @@ export default {
|
|
|
50
54
|
this.$set(row, 'fetchingWordbook', false);
|
|
51
55
|
});
|
|
52
56
|
},
|
|
57
|
+
handleWordbookRows(list, valueKey, showKeys, isTree) {
|
|
58
|
+
if (!list?.length) return [];
|
|
59
|
+
return list.map(row => {
|
|
60
|
+
let showKeysStr = [];
|
|
61
|
+
// 取值是value, 展示是change_text
|
|
62
|
+
let valueKeyN = `_${valueKey}_`;
|
|
63
|
+
for (let key in row) {
|
|
64
|
+
let showVal = vexutils.stringToValue(row[key], 'change_text');
|
|
65
|
+
if (key === valueKey) {
|
|
66
|
+
row[valueKeyN] = vexutils.stringToValue(row[key]);
|
|
67
|
+
}
|
|
68
|
+
row[key] = showVal;
|
|
69
|
+
}
|
|
70
|
+
showKeys.forEach(s => {
|
|
71
|
+
showKeysStr.push(row[s]);
|
|
72
|
+
});
|
|
73
|
+
let name = row[valueKeyN];
|
|
74
|
+
// 保存的时候值会变成字符串, 如果是数字的话回显会出问题, 这里全部处理成字符串
|
|
75
|
+
if (typeof name === 'number') {
|
|
76
|
+
name = String(name);
|
|
77
|
+
}
|
|
78
|
+
const _show_title = showKeysStr.join(' ');
|
|
79
|
+
if (isTree) {
|
|
80
|
+
row.scopedSlots = {
|
|
81
|
+
title: 'title'
|
|
82
|
+
};
|
|
83
|
+
row.title = _show_title;
|
|
84
|
+
row.key = name;
|
|
85
|
+
row.value = name;
|
|
86
|
+
}
|
|
87
|
+
if (isTree && row.children?.length) {
|
|
88
|
+
row.children = this.handleWordbookRows(row.children, valueKey, showKeys, isTree);
|
|
89
|
+
}
|
|
90
|
+
return {
|
|
91
|
+
...row,
|
|
92
|
+
myName: name,
|
|
93
|
+
_show_title
|
|
94
|
+
};
|
|
95
|
+
});
|
|
96
|
+
},
|
|
53
97
|
|
|
54
98
|
formatWordbookDataRender(item, data, params) {
|
|
55
99
|
let searchPageConfig = {
|
|
@@ -62,7 +106,7 @@ export default {
|
|
|
62
106
|
resArr = [];
|
|
63
107
|
if (data && data.result === 'SUCCESS') {
|
|
64
108
|
let reqParams = data?.reqParams || {};
|
|
65
|
-
let { showKeys, valueKey } = item?.widgetCfg?.dynamicOptionInfo || {};
|
|
109
|
+
let { showKeys, valueKey, treeInfo = {} } = item?.widgetCfg?.dynamicOptionInfo || {};
|
|
66
110
|
showKeys = Array.isArray(showKeys) ? showKeys : [showKeys];
|
|
67
111
|
let { page, hasNextPage, fieldList, rows = [] } = data.map;
|
|
68
112
|
|
|
@@ -84,32 +128,7 @@ export default {
|
|
|
84
128
|
keyword: params?.keyword || undefined,
|
|
85
129
|
asyncCount: reqParams?.asyncCount || undefined
|
|
86
130
|
});
|
|
87
|
-
let rowsArr =
|
|
88
|
-
let showKeysStr = [];
|
|
89
|
-
// 取值是value, 展示是change_text
|
|
90
|
-
let valueKeyN = `_${valueKey}_`;
|
|
91
|
-
for (let key in row) {
|
|
92
|
-
let showVal = vexutils.stringToValue(row[key], 'change_text');
|
|
93
|
-
if (key === valueKey) {
|
|
94
|
-
row[valueKeyN] = vexutils.stringToValue(row[key]);
|
|
95
|
-
}
|
|
96
|
-
row[key] = showVal;
|
|
97
|
-
}
|
|
98
|
-
showKeys.forEach(s => {
|
|
99
|
-
// let str = vexutils.stringToValue(row[s]);
|
|
100
|
-
showKeysStr.push(row[s]);
|
|
101
|
-
});
|
|
102
|
-
// let name = vexutils.stringToValue(row[valueKey]);
|
|
103
|
-
let name = row[valueKeyN];
|
|
104
|
-
// 保存的时候值会变成字符串, 如果是数字的话回显会出问题, 这里全部处理成字符串
|
|
105
|
-
if (typeof name === 'number') {
|
|
106
|
-
name = String(name);
|
|
107
|
-
}
|
|
108
|
-
return Object.assign(row, {
|
|
109
|
-
myName: name,
|
|
110
|
-
_show_title: showKeysStr.join(' ')
|
|
111
|
-
});
|
|
112
|
-
});
|
|
131
|
+
let rowsArr = this.handleWordbookRows(rows, valueKey, showKeys, treeInfo?.enable);
|
|
113
132
|
// 数组对象去重
|
|
114
133
|
let obj = {};
|
|
115
134
|
resArr = rowsArr.reduce((cur, next) => {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { WidgetTypeEnums, DatePresetValEnums } from './enums';
|
|
2
2
|
import { InputNumber, Input, DatePicker } from 'ant-design-vue';
|
|
3
|
-
import { CheckboxGroup, Select, NumberRange, DateRangeQuick, SelectDynamic, Label, SelectLabel, Text } from './components';
|
|
3
|
+
import { CheckboxGroup, Select, NumberRange, DateRangeQuick, SelectDynamic, Label, SelectLabel, Text, SelectTree } from './components';
|
|
4
4
|
import moment from 'moment';
|
|
5
5
|
import { presetValToTimestamp } from './helpers/presetValToTimestamp';
|
|
6
6
|
|
|
@@ -260,6 +260,31 @@ export const WidgetCfgMaps = new Map([
|
|
|
260
260
|
setDefaultValue: SetDefVal
|
|
261
261
|
}
|
|
262
262
|
],
|
|
263
|
+
[
|
|
264
|
+
WidgetTypeEnums.SELECT_TREE,
|
|
265
|
+
{
|
|
266
|
+
component: SelectTree,
|
|
267
|
+
props: {},
|
|
268
|
+
eventsBySearch: [
|
|
269
|
+
{
|
|
270
|
+
name: 'change',
|
|
271
|
+
handler(e, search, props) {
|
|
272
|
+
const { mode } = props;
|
|
273
|
+
if (mode !== 'multiple') {
|
|
274
|
+
search();
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
],
|
|
279
|
+
handlerProps(props, { multiple, title, explicitRequired, isQuick } = {}) {
|
|
280
|
+
const allowClear = explicitRequired != 1;
|
|
281
|
+
const Props = { ...props, placeholder: `请选择${title}`, allowClear, isQuick };
|
|
282
|
+
Props.mode = multiple ? 'multiple' : 'default';
|
|
283
|
+
return Props;
|
|
284
|
+
},
|
|
285
|
+
setDefaultValue: SetDefVal
|
|
286
|
+
}
|
|
287
|
+
],
|
|
263
288
|
[
|
|
264
289
|
WidgetTypeEnums.SELECT_DYNAMIC,
|
|
265
290
|
{
|
|
@@ -74,6 +74,12 @@ export default {
|
|
|
74
74
|
value: val.length > 0 ? val : null,
|
|
75
75
|
unit
|
|
76
76
|
};
|
|
77
|
+
if (widgetCfg.extendKey) {
|
|
78
|
+
obj.extendKey = widgetCfg.extendKey;
|
|
79
|
+
}
|
|
80
|
+
if (widgetCfg.extendType) {
|
|
81
|
+
obj.extendType = widgetCfg.extendType;
|
|
82
|
+
}
|
|
77
83
|
|
|
78
84
|
if (widgetType === WidgetTypeEnums.INPUT && widgetCfg?.accurateSearch?.switchEnable) {
|
|
79
85
|
obj.isAccurateSearch = isAccurateSearch;
|
|
@@ -91,9 +97,12 @@ export default {
|
|
|
91
97
|
}
|
|
92
98
|
return !Array.isArray(value) ? value : value[0];
|
|
93
99
|
},
|
|
100
|
+
isDynamicTree(cfg) {
|
|
101
|
+
return !cfg?.manualMapping && cfg?.widgetCfg?.dynamicOptionInfo && cfg?.widgetCfg?.dynamicOptionInfo?.treeInfo?.enable;
|
|
102
|
+
},
|
|
94
103
|
isExplicitDefaultVal(cfg) {
|
|
95
104
|
const { explicitDefaultVal } = cfg.widgetCfg || {};
|
|
96
|
-
return explicitDefaultVal === 'firstOption';
|
|
105
|
+
return explicitDefaultVal === 'firstOption' || this.isDynamicTree(cfg);
|
|
97
106
|
},
|
|
98
107
|
isExistDefValByRenderWidget(cfg) {
|
|
99
108
|
const { defaultValue, defValueUnit } = cfg.widgetCfg || {};
|