bri-components 1.3.67 → 1.3.69
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/controls/DshControlInput.vue +19 -2
- package/src/components/controls/base/DshCascader/DshCascader.vue +1 -0
- package/src/components/controls/mixins/cascaderMixin.js +93 -48
- package/src/components/controls/senior/cascaderTable.vue +6 -4
- package/src/components/list/DshCascaderTable.vue +15 -919
- package/src/components/list/DshFlatTable.vue +3 -3
- package/src/components/list/DshTreeTable.vue +3 -3
- package/src/components/list/common/importModal.vue +9 -9
- package/src/components/list/mixins/DshCascaderTableMixin.js +857 -0
- package/src/components/list/mixins/tableBaseMixin.js +16 -12
package/package.json
CHANGED
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div
|
|
3
3
|
class="DshControlInput"
|
|
4
|
+
:style="{
|
|
5
|
+
height: heightAuto ? 'auto' : '32px',
|
|
6
|
+
minHeight: heightAuto ? '32px' : undefined,
|
|
7
|
+
}"
|
|
4
8
|
@mouseenter="isHover = true"
|
|
5
9
|
@mouseleave="isHover = false"
|
|
6
10
|
>
|
|
@@ -11,6 +15,10 @@
|
|
|
11
15
|
<dsh-tags
|
|
12
16
|
v-if="Array.isArray(value)"
|
|
13
17
|
class="overflow"
|
|
18
|
+
:class="{
|
|
19
|
+
overflow: true,
|
|
20
|
+
'overflow-auto': heightAuto
|
|
21
|
+
}"
|
|
14
22
|
:list="value"
|
|
15
23
|
:propsObj="{
|
|
16
24
|
disabled: disabled,
|
|
@@ -65,11 +73,16 @@
|
|
|
65
73
|
export default {
|
|
66
74
|
name: "DshControlInput",
|
|
67
75
|
props: {
|
|
76
|
+
value: [Array, Object, String],
|
|
77
|
+
|
|
78
|
+
heightAuto: {
|
|
79
|
+
type: Boolean,
|
|
80
|
+
default: false
|
|
81
|
+
},
|
|
68
82
|
disabled: {
|
|
69
83
|
type: Boolean,
|
|
70
84
|
default: false
|
|
71
85
|
},
|
|
72
|
-
value: [Array, Object, String],
|
|
73
86
|
propsObj: {
|
|
74
87
|
type: Object,
|
|
75
88
|
default () {
|
|
@@ -101,7 +114,6 @@
|
|
|
101
114
|
|
|
102
115
|
<style lang="less" scoped>
|
|
103
116
|
.DshControlInput {
|
|
104
|
-
height: 32px;
|
|
105
117
|
padding: 0px 0px 0px 7px;
|
|
106
118
|
line-height: 24px;
|
|
107
119
|
.dsh-flex-row-between-center();
|
|
@@ -117,6 +129,11 @@
|
|
|
117
129
|
overflow-x: auto;
|
|
118
130
|
overflow-y: hidden;
|
|
119
131
|
white-space: nowrap;
|
|
132
|
+
|
|
133
|
+
&-auto {
|
|
134
|
+
height: auto;
|
|
135
|
+
white-space: normal;
|
|
136
|
+
}
|
|
120
137
|
}
|
|
121
138
|
|
|
122
139
|
.placeholder {
|
|
@@ -14,18 +14,21 @@ export default {
|
|
|
14
14
|
basePropsObj () {
|
|
15
15
|
const _joinSymbol = this.propsObj._joinSymbol || "/";
|
|
16
16
|
return {
|
|
17
|
+
_saveKey: "_key",
|
|
18
|
+
_valueKey: "code",
|
|
19
|
+
_nameKey: "name",
|
|
20
|
+
|
|
17
21
|
_regionType: "default", // "default", "benji", "userIndustry"
|
|
18
22
|
_showMode: "default", // "default", "custom", "simple"
|
|
19
23
|
colorMap: resourceData.colorMap,
|
|
20
24
|
_useColor: false,
|
|
21
|
-
_saveKey: "_key",
|
|
22
|
-
_valueKey: "code",
|
|
23
|
-
_nameKey: "name",
|
|
24
25
|
_filterable: true, // 是否支持搜索
|
|
25
|
-
|
|
26
|
+
_cascaderLevel: undefined, // 级联数据取到第几级
|
|
26
27
|
_reverseFilter: false, // 是否反向过滤,默认正向过滤
|
|
27
|
-
_cascaderFilterVals: [], //
|
|
28
|
+
_cascaderFilterVals: [], // 过滤的数据的第一级选项
|
|
29
|
+
_cascaderSelectVals: [], // 过滤的数据的级联选项
|
|
28
30
|
_renderFormat: (labels) => labels.join(_joinSymbol),
|
|
31
|
+
_data: [],
|
|
29
32
|
|
|
30
33
|
...this.propsObj,
|
|
31
34
|
...this.commonDealPropsObj,
|
|
@@ -36,6 +39,16 @@ export default {
|
|
|
36
39
|
_joinSymbol: _joinSymbol // 级联拼接符
|
|
37
40
|
};
|
|
38
41
|
},
|
|
42
|
+
saveKey () {
|
|
43
|
+
return this.selfPropsObj._saveKey;
|
|
44
|
+
},
|
|
45
|
+
valueKey () {
|
|
46
|
+
return this.selfPropsObj._valueKey;
|
|
47
|
+
},
|
|
48
|
+
nameKey () {
|
|
49
|
+
return this.selfPropsObj._nameKey;
|
|
50
|
+
},
|
|
51
|
+
|
|
39
52
|
regionType () {
|
|
40
53
|
return this.selfPropsObj._regionType;
|
|
41
54
|
},
|
|
@@ -48,24 +61,21 @@ export default {
|
|
|
48
61
|
useColor () {
|
|
49
62
|
return this.selfPropsObj._useColor;
|
|
50
63
|
},
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
},
|
|
54
|
-
valueKey () {
|
|
55
|
-
return this.selfPropsObj._valueKey;
|
|
56
|
-
},
|
|
57
|
-
nameKey () {
|
|
58
|
-
return this.selfPropsObj._nameKey;
|
|
59
|
-
},
|
|
64
|
+
// filterable () {
|
|
65
|
+
// return this.selfPropsObj._filterable;
|
|
66
|
+
// },
|
|
60
67
|
cascaderLevel () {
|
|
61
68
|
return this.selfPropsObj._cascaderLevel;
|
|
62
69
|
},
|
|
63
70
|
reverseFilter () {
|
|
64
71
|
return this.selfPropsObj._reverseFilter;
|
|
65
72
|
},
|
|
66
|
-
|
|
73
|
+
filterVals () {
|
|
67
74
|
return this.selfPropsObj._cascaderFilterVals;
|
|
68
75
|
},
|
|
76
|
+
cascaderVals () {
|
|
77
|
+
return this.selfPropsObj._cascaderSelectVals;
|
|
78
|
+
},
|
|
69
79
|
renderFormat () {
|
|
70
80
|
return this.selfPropsObj._renderFormat;
|
|
71
81
|
},
|
|
@@ -80,51 +90,79 @@ export default {
|
|
|
80
90
|
: this.selfPropsObj._data;
|
|
81
91
|
},
|
|
82
92
|
cascaderAllData () {
|
|
83
|
-
const loop = (arr = [], level, parentKeys = [], filterVals = [], isMobile = false) => {
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
: filterVals.includes(item[this.saveKey])
|
|
89
|
-
);
|
|
90
|
-
}
|
|
93
|
+
const loop = (arr = [], level, parentKeys = [], filterVals = [], cascaderVals = [], reverseFilter = false, isMobile = false, saveKey = "_key", valueKey = "code", nameKey = "name") => {
|
|
94
|
+
arr = cascaderVals.length
|
|
95
|
+
? arr.filter(item => {
|
|
96
|
+
const itemKey = item[saveKey];
|
|
97
|
+
const keys = [...parentKeys, itemKey]; // !!此处就是用_key拼,不会用别的属性
|
|
91
98
|
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
99
|
+
return reverseFilter
|
|
100
|
+
? !cascaderVals.some(valArr =>
|
|
101
|
+
keys.length < valArr.length
|
|
102
|
+
? false
|
|
103
|
+
: valArr.every((valArrKey, index) => valArrKey === keys[index])
|
|
104
|
+
)
|
|
105
|
+
: cascaderVals.some(valArr =>
|
|
106
|
+
keys.length < valArr.length
|
|
107
|
+
? keys.every((levelKey, index) => levelKey === valArr[index])
|
|
108
|
+
: valArr.every((valArrKey, index) => valArrKey === keys[index])
|
|
109
|
+
);
|
|
110
|
+
})
|
|
111
|
+
: filterVals.length
|
|
112
|
+
? arr.filter(item => {
|
|
113
|
+
const itemKey = item[saveKey];
|
|
114
|
+
|
|
115
|
+
return reverseFilter
|
|
116
|
+
? !filterVals.includes(itemKey)
|
|
117
|
+
: filterVals.includes(itemKey);
|
|
118
|
+
})
|
|
119
|
+
: arr;
|
|
120
|
+
|
|
121
|
+
return arr.reduce((newArr, item) => {
|
|
122
|
+
const itemKey = item[saveKey];
|
|
123
|
+
const keys = [...parentKeys, itemKey]; // !!此处就是用_key拼,不会用别的属性
|
|
124
|
+
let newItem = {
|
|
125
|
+
keys: keys,
|
|
126
|
+
code: keys.join(""),
|
|
127
|
+
...item
|
|
128
|
+
};
|
|
129
|
+
newItem = {
|
|
130
|
+
...newItem,
|
|
131
|
+
value: newItem[valueKey],
|
|
132
|
+
label: newItem[nameKey]
|
|
133
|
+
};
|
|
134
|
+
|
|
135
|
+
if (
|
|
136
|
+
(!level || level > newItem.level) &&
|
|
137
|
+
(newItem.children && newItem.children.length)
|
|
138
|
+
) {
|
|
139
|
+
newItem.children = loop(newItem.children, level, newItem.keys, [], cascaderVals, reverseFilter, isMobile, saveKey, valueKey, nameKey);
|
|
104
140
|
|
|
105
|
-
if (
|
|
106
|
-
(!level || level > newItem.level) &&
|
|
107
|
-
(newItem.children && newItem.children.length)
|
|
108
|
-
) {
|
|
141
|
+
if (newItem.children.length) {
|
|
109
142
|
newItem.loading = false; // 此代码pc端在用:为了所请求的级,出现继续加载的箭头图标
|
|
110
|
-
newItem.
|
|
143
|
+
newItem.isLeaf = false;
|
|
111
144
|
} else {
|
|
112
145
|
newItem.children = isMobile ? undefined : [];
|
|
113
146
|
newItem.isLeaf = true;
|
|
114
147
|
}
|
|
115
|
-
|
|
148
|
+
} else {
|
|
149
|
+
newItem.children = isMobile ? undefined : [];
|
|
150
|
+
newItem.isLeaf = true;
|
|
151
|
+
}
|
|
116
152
|
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
153
|
+
return [
|
|
154
|
+
...newArr,
|
|
155
|
+
newItem
|
|
156
|
+
];
|
|
157
|
+
}, []);
|
|
120
158
|
};
|
|
121
159
|
|
|
122
|
-
return loop(this.originData, this.cascaderLevel,
|
|
160
|
+
return loop(this.originData, this.cascaderLevel, [], this.filterVals, this.cascaderVals, this.reverseFilter, this.isMobile, this.saveKey, this.valueKey, this.nameKey);
|
|
123
161
|
},
|
|
124
162
|
cascaderData () {
|
|
125
163
|
const loop = (arr = [], isMobile) => {
|
|
126
164
|
return arr
|
|
127
|
-
? arr.reduce((
|
|
165
|
+
? arr.reduce((newArr, item) => {
|
|
128
166
|
if (item.rm !== 1) {
|
|
129
167
|
let newItem = {
|
|
130
168
|
...item
|
|
@@ -132,13 +170,20 @@ export default {
|
|
|
132
170
|
|
|
133
171
|
if (newItem.children && newItem.children.length) {
|
|
134
172
|
newItem.children = loop(newItem.children, isMobile);
|
|
173
|
+
|
|
174
|
+
if (newItem.children.length) {
|
|
175
|
+
// 无需处理
|
|
176
|
+
} else {
|
|
177
|
+
newItem.children = isMobile ? undefined : [];
|
|
178
|
+
}
|
|
135
179
|
} else {
|
|
136
180
|
newItem.children = isMobile ? undefined : [];
|
|
137
181
|
}
|
|
138
|
-
|
|
182
|
+
|
|
183
|
+
newArr.push(newItem);
|
|
139
184
|
}
|
|
140
185
|
|
|
141
|
-
return
|
|
186
|
+
return newArr;
|
|
142
187
|
}, [])
|
|
143
188
|
: [];
|
|
144
189
|
};
|
|
@@ -32,13 +32,14 @@
|
|
|
32
32
|
<dsh-cascader-table
|
|
33
33
|
v-else
|
|
34
34
|
:canEdit="finalCanEdit"
|
|
35
|
+
:data="curVal.tree"
|
|
35
36
|
:rowDefault="curVal.rowDefault"
|
|
36
37
|
:columns="subForm"
|
|
37
|
-
:data="curVal"
|
|
38
|
-
:treeColumns="treeForm"
|
|
39
38
|
:propsObj="defaultPropsObj"
|
|
40
39
|
:allFormList="allFormList"
|
|
41
40
|
:parentObj="value"
|
|
41
|
+
:tableDataObj="curVal"
|
|
42
|
+
:treeColumns="treeForm"
|
|
42
43
|
@change="change"
|
|
43
44
|
></dsh-cascader-table>
|
|
44
45
|
</template>
|
|
@@ -65,13 +66,14 @@
|
|
|
65
66
|
v-else
|
|
66
67
|
ref="table"
|
|
67
68
|
:canEdit="finalCanEdit"
|
|
69
|
+
:data="curVal.tree"
|
|
68
70
|
:rowDefault="curVal.rowDefault"
|
|
69
71
|
:columns="subForm"
|
|
70
|
-
:data="curVal"
|
|
71
|
-
:treeColumns="treeForm"
|
|
72
72
|
:propsObj="selfPropsObj"
|
|
73
73
|
:allFormList="allFormList"
|
|
74
74
|
:parentObj="value"
|
|
75
|
+
:tableDataObj="curVal"
|
|
76
|
+
:treeColumns="treeForm"
|
|
75
77
|
@change="change"
|
|
76
78
|
></dsh-cascader-table>
|
|
77
79
|
</template>
|