bri-components 1.2.55 → 1.2.56
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/base/DshCascader/DshCascader.vue +39 -45
- package/src/components/controls/base/DshCascader/cascaderModal.vue +12 -11
- package/src/components/controls/base/DshCascader/cascaderPicker.vue +25 -25
- package/src/components/controls/base/DshCascader/cascaderPickerMixin.js +3 -3
- package/src/components/controls/controlMixin.js +4 -1
- package/src/components/controls/senior/flatTable.vue +8 -7
- package/src/components/controls/senior/flatTableImportModal.vue +2 -1
- package/src/components/unit/DshFormUnit.vue +5 -0
package/package.json
CHANGED
|
@@ -37,8 +37,8 @@
|
|
|
37
37
|
<dsh-control-input
|
|
38
38
|
:class="commonClass"
|
|
39
39
|
:value="curValName"
|
|
40
|
-
:disabled="
|
|
41
|
-
:propsObj="
|
|
40
|
+
:disabled="inputPropsObj._disabled"
|
|
41
|
+
:propsObj="inputPropsObj"
|
|
42
42
|
@clear="clickClear"
|
|
43
43
|
></dsh-control-input>
|
|
44
44
|
</cascader-modal>
|
|
@@ -56,8 +56,8 @@
|
|
|
56
56
|
<dsh-control-input
|
|
57
57
|
:class="commonClass"
|
|
58
58
|
:value="curValName"
|
|
59
|
-
:disabled="
|
|
60
|
-
:propsObj="
|
|
59
|
+
:disabled="inputPropsObj._disabled"
|
|
60
|
+
:propsObj="inputPropsObj"
|
|
61
61
|
@clear="clickClear"
|
|
62
62
|
></dsh-control-input>
|
|
63
63
|
</cascader-picker>
|
|
@@ -103,7 +103,7 @@
|
|
|
103
103
|
:disabled="selfPropsObj._disabled"
|
|
104
104
|
:clearable="selfPropsObj._clearable"
|
|
105
105
|
:size="selfPropsObj._size"
|
|
106
|
-
:filterable="
|
|
106
|
+
:filterable="filterable"
|
|
107
107
|
:render-format="renderFormat"
|
|
108
108
|
:change-on-select="changeOnSelect"
|
|
109
109
|
:transfer="selfPropsObj._transfer"
|
|
@@ -111,16 +111,14 @@
|
|
|
111
111
|
:load-data="loadData"
|
|
112
112
|
@on-visible-change="changeMulVisible"
|
|
113
113
|
@on-change="changeMulSelect"
|
|
114
|
-
@click.native="clickCascader"
|
|
115
114
|
>
|
|
116
115
|
<dsh-control-input
|
|
117
116
|
:class="commonClass"
|
|
118
117
|
:value="curValNameList"
|
|
119
|
-
:disabled="
|
|
120
|
-
:propsObj="
|
|
118
|
+
:disabled="inputPropsObj._disabled"
|
|
119
|
+
:propsObj="inputPropsObj"
|
|
121
120
|
@deleteItem="clickDeleteItem"
|
|
122
121
|
@clear="clickClear"
|
|
123
|
-
@click.native="clickInput"
|
|
124
122
|
></dsh-control-input>
|
|
125
123
|
</Cascader>
|
|
126
124
|
</template>
|
|
@@ -136,8 +134,8 @@
|
|
|
136
134
|
<dsh-control-input
|
|
137
135
|
:class="commonClass"
|
|
138
136
|
:value="curValNameList"
|
|
139
|
-
:disabled="
|
|
140
|
-
:propsObj="
|
|
137
|
+
:disabled="inputPropsObj._disabled"
|
|
138
|
+
:propsObj="inputPropsObj"
|
|
141
139
|
@deleteItem="clickDeleteItem"
|
|
142
140
|
@clear="clickClear"
|
|
143
141
|
></dsh-control-input>
|
|
@@ -155,8 +153,8 @@
|
|
|
155
153
|
<dsh-control-input
|
|
156
154
|
:class="commonClass"
|
|
157
155
|
:value="curValNameList"
|
|
158
|
-
:disabled="
|
|
159
|
-
:propsObj="
|
|
156
|
+
:disabled="inputPropsObj._disabled"
|
|
157
|
+
:propsObj="inputPropsObj"
|
|
160
158
|
@deleteItem="clickDeleteItem"
|
|
161
159
|
@clear="clickClear"
|
|
162
160
|
></dsh-control-input>
|
|
@@ -217,8 +215,8 @@
|
|
|
217
215
|
props: {},
|
|
218
216
|
data () {
|
|
219
217
|
return {
|
|
220
|
-
renderAll: false,
|
|
221
|
-
clickFlag: true,
|
|
218
|
+
// renderAll: false,
|
|
219
|
+
// clickFlag: true,
|
|
222
220
|
isVisible: false,
|
|
223
221
|
curSelectVal: []
|
|
224
222
|
};
|
|
@@ -226,7 +224,6 @@
|
|
|
226
224
|
computed: {
|
|
227
225
|
selfPropsObj () {
|
|
228
226
|
return {
|
|
229
|
-
_icon: this.isVisible ? "ios-arrow-up" : "ios-arrow-down",
|
|
230
227
|
_showMode: "default", // 只有单选模式有效,值为"default", "custom", "simple"
|
|
231
228
|
_transfer: true,
|
|
232
229
|
|
|
@@ -238,6 +235,12 @@
|
|
|
238
235
|
: this.basePropsObj._filterable
|
|
239
236
|
};
|
|
240
237
|
},
|
|
238
|
+
inputPropsObj () {
|
|
239
|
+
return {
|
|
240
|
+
_icon: this.isVisible ? "ios-arrow-up" : "ios-arrow-down",
|
|
241
|
+
...this.selfPropsObj
|
|
242
|
+
};
|
|
243
|
+
},
|
|
241
244
|
|
|
242
245
|
renderCascaderData () {
|
|
243
246
|
return this.renderAll
|
|
@@ -255,42 +258,33 @@
|
|
|
255
258
|
/* --------- 简洁方式 ------- */
|
|
256
259
|
// 动态加载数据
|
|
257
260
|
loadData (treeItem, cb) {
|
|
258
|
-
const
|
|
259
|
-
const
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
})
|
|
267
|
-
)
|
|
268
|
-
: [];
|
|
261
|
+
const linealDatas = this.$getTreeLinealDatas(treeItem.keys, this.cascaderData, undefined, this.saveKey);
|
|
262
|
+
const lastData = linealDatas.slice(-1)[0];
|
|
263
|
+
treeItem.children = lastData.children.map(item =>
|
|
264
|
+
({
|
|
265
|
+
...item,
|
|
266
|
+
children: []
|
|
267
|
+
})
|
|
268
|
+
);
|
|
269
269
|
|
|
270
270
|
cb();
|
|
271
271
|
},
|
|
272
272
|
clickCascader () {
|
|
273
|
-
if (
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
) {
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
}
|
|
273
|
+
// if (
|
|
274
|
+
// !this.selfPropsObj._disabled &&
|
|
275
|
+
// this.filterable === true &&
|
|
276
|
+
// this.renderAll === false &&
|
|
277
|
+
// this.clickFlag === true
|
|
278
|
+
// ) {
|
|
279
|
+
// this.clickFlag = false; // 这个处理其实觉大概率没必要,有没有不受影响
|
|
280
|
+
// setTimeout(() => {
|
|
281
|
+
// this.renderAll = true;
|
|
282
|
+
// }, 0);
|
|
283
|
+
// }
|
|
284
284
|
},
|
|
285
285
|
// 简洁方式-单选 -展开和关闭弹窗时触发
|
|
286
286
|
changeVisible (bool) {
|
|
287
|
-
|
|
288
|
-
this.isVisible = bool;
|
|
289
|
-
} else {
|
|
290
|
-
setTimeout(() => {
|
|
291
|
-
this.isVisible = bool;
|
|
292
|
-
}, 0);
|
|
293
|
-
}
|
|
287
|
+
this.isVisible = bool;
|
|
294
288
|
},
|
|
295
289
|
// 简洁方式-单选 -选项变化
|
|
296
290
|
changeSelect (value, selectedOptions) {
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
<!-- 模式切换 -->
|
|
39
39
|
<template>
|
|
40
40
|
<div
|
|
41
|
-
v-if="
|
|
41
|
+
v-if="canUseModeSwitch"
|
|
42
42
|
class="mode"
|
|
43
43
|
@click="showMode = showMode === 'default' ? 'flat' : 'default'"
|
|
44
44
|
>
|
|
@@ -75,27 +75,27 @@
|
|
|
75
75
|
|
|
76
76
|
<div class="wrap-content">
|
|
77
77
|
<!-- 左 -->
|
|
78
|
-
<div class="wrap-content-
|
|
78
|
+
<div class="wrap-content-list">
|
|
79
79
|
<template v-if="showTreeData.length">
|
|
80
80
|
<!-- 拍平方式 -->
|
|
81
81
|
<div v-if="useFlatMode">
|
|
82
82
|
<div
|
|
83
|
-
v-for="
|
|
84
|
-
:key="
|
|
83
|
+
v-for="nodeItem in showFlatData"
|
|
84
|
+
:key="nodeItem[valueKey]"
|
|
85
85
|
:class="{
|
|
86
86
|
'item': true,
|
|
87
|
-
'item-active': selectedLastOption &&
|
|
88
|
-
'item-disabled':
|
|
87
|
+
'item-active': selectedLastOption && nodeItem[valueKey] === selectedLastOption[valueKey],
|
|
88
|
+
'item-disabled': nodeItem.disabled
|
|
89
89
|
}"
|
|
90
|
-
@click="clickItem(
|
|
90
|
+
@click="clickItem(nodeItem)"
|
|
91
91
|
>
|
|
92
92
|
<span class="item-name">
|
|
93
|
-
{{
|
|
93
|
+
{{ nodeItem[nameKey] }}
|
|
94
94
|
</span>
|
|
95
95
|
|
|
96
96
|
<span class="item-icon">
|
|
97
97
|
<dsh-icons :list="[{
|
|
98
|
-
icon: selectedLastOption &&
|
|
98
|
+
icon: selectedLastOption && nodeItem[valueKey] === selectedLastOption[valueKey]
|
|
99
99
|
? 'md-checkmark'
|
|
100
100
|
: ''
|
|
101
101
|
}]" />
|
|
@@ -113,7 +113,7 @@
|
|
|
113
113
|
<!-- 无数据 -->
|
|
114
114
|
<div
|
|
115
115
|
v-else
|
|
116
|
-
class="wrap-content-
|
|
116
|
+
class="wrap-content-list-nodata"
|
|
117
117
|
>
|
|
118
118
|
暂无可用的数据……
|
|
119
119
|
</div>
|
|
@@ -206,6 +206,7 @@
|
|
|
206
206
|
|
|
207
207
|
search () {
|
|
208
208
|
this.selectedValue = [];
|
|
209
|
+
this.showMode = "default";
|
|
209
210
|
},
|
|
210
211
|
clickItemCb (node) {
|
|
211
212
|
this.dealDescription();
|
|
@@ -290,7 +291,7 @@
|
|
|
290
291
|
border: 1px solid #E5E5E5;
|
|
291
292
|
display: flex;
|
|
292
293
|
|
|
293
|
-
&-
|
|
294
|
+
&-list {
|
|
294
295
|
flex: 1;
|
|
295
296
|
min-width: 0px;
|
|
296
297
|
padding: 5px 10px;
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
<div class="cascaderPicker">
|
|
3
3
|
<Dropdown
|
|
4
4
|
style="width: 100%;"
|
|
5
|
+
v-clickoutside="clickCancel"
|
|
5
6
|
trigger="custom"
|
|
6
7
|
:visible="showModal"
|
|
7
8
|
:placement="placement"
|
|
@@ -27,6 +28,7 @@
|
|
|
27
28
|
<div
|
|
28
29
|
slot="list"
|
|
29
30
|
class="wrap"
|
|
31
|
+
@click.stop="0"
|
|
30
32
|
>
|
|
31
33
|
<!-- 头部 -->
|
|
32
34
|
<div class="wrap-header">
|
|
@@ -47,7 +49,7 @@
|
|
|
47
49
|
<!-- 模式切换 -->
|
|
48
50
|
<template>
|
|
49
51
|
<div
|
|
50
|
-
v-if="
|
|
52
|
+
v-if="canUseModeSwitch"
|
|
51
53
|
class="mode"
|
|
52
54
|
@click="showMode = showMode === 'default' ? 'flat' : 'default'"
|
|
53
55
|
>
|
|
@@ -105,67 +107,64 @@
|
|
|
105
107
|
<!-- 列表 -->
|
|
106
108
|
<div class="wrap-content-list">
|
|
107
109
|
<!-- 有数据 -->
|
|
108
|
-
<
|
|
110
|
+
<div
|
|
109
111
|
v-if="showTreeData.length"
|
|
110
112
|
class="wrap-content-list-menu"
|
|
111
113
|
>
|
|
112
114
|
<!-- 拍平方式 -->
|
|
113
115
|
<template v-if="useFlatMode">
|
|
114
|
-
<
|
|
115
|
-
v-for="
|
|
116
|
-
:key="
|
|
116
|
+
<div
|
|
117
|
+
v-for="nodeItem in showFlatData"
|
|
118
|
+
:key="nodeItem[valueKey]"
|
|
117
119
|
:class="{
|
|
118
120
|
'item': true,
|
|
119
|
-
'item-active': selectedLastOption &&
|
|
120
|
-
'item-disabled':
|
|
121
|
+
'item-active': selectedLastOption && nodeItem[valueKey] === selectedLastOption[valueKey],
|
|
122
|
+
'item-disabled': nodeItem.disabled
|
|
121
123
|
}"
|
|
122
|
-
|
|
123
|
-
:disabled="dataItem.disabled"
|
|
124
|
-
@click.native.stop="clickItem(dataItem)"
|
|
124
|
+
@click="clickItem(nodeItem)"
|
|
125
125
|
>
|
|
126
126
|
<span class="item-name">
|
|
127
|
-
{{
|
|
127
|
+
{{ nodeItem[nameKey] }}
|
|
128
128
|
</span>
|
|
129
129
|
|
|
130
130
|
<span class="item-icon">
|
|
131
131
|
<dsh-icons :list="[{
|
|
132
|
-
icon: selectedLastOption &&
|
|
132
|
+
icon: selectedLastOption && nodeItem[valueKey] === selectedLastOption[valueKey]
|
|
133
133
|
? 'md-checkmark'
|
|
134
134
|
: ''
|
|
135
135
|
}]" />
|
|
136
136
|
</span>
|
|
137
|
-
</
|
|
137
|
+
</div>
|
|
138
138
|
</template>
|
|
139
139
|
|
|
140
140
|
<!-- 层级方式 -->
|
|
141
141
|
<template v-else>
|
|
142
|
-
<
|
|
143
|
-
v-for="
|
|
144
|
-
:key="
|
|
142
|
+
<div
|
|
143
|
+
v-for="nodeItem in curSelectedLinealData.data"
|
|
144
|
+
:key="nodeItem[valueKey]"
|
|
145
145
|
:class="{
|
|
146
146
|
'item': true,
|
|
147
|
-
'item-active':
|
|
148
|
-
'item-disabled':
|
|
147
|
+
'item-active': nodeItem[valueKey] === curSelectedLinealData[valueKey],
|
|
148
|
+
'item-disabled': nodeItem.disabled
|
|
149
149
|
}"
|
|
150
|
-
|
|
151
|
-
@click.native.stop="clickItem(dataItem)"
|
|
150
|
+
@click="clickItem(nodeItem)"
|
|
152
151
|
>
|
|
153
152
|
<span class="item-name">
|
|
154
|
-
{{
|
|
153
|
+
{{ nodeItem[nameKey] }}
|
|
155
154
|
</span>
|
|
156
155
|
|
|
157
156
|
<span class="item-icon">
|
|
158
157
|
<dsh-icons :list="[{
|
|
159
|
-
icon:
|
|
158
|
+
icon: nodeItem[valueKey] === curSelectedLinealData[valueKey]
|
|
160
159
|
? 'md-checkmark'
|
|
161
|
-
:
|
|
160
|
+
: nodeItem.children.length
|
|
162
161
|
? 'ios-arrow-forward'
|
|
163
162
|
: ''
|
|
164
163
|
}]" />
|
|
165
164
|
</span>
|
|
166
|
-
</
|
|
165
|
+
</div>
|
|
167
166
|
</template>
|
|
168
|
-
</
|
|
167
|
+
</div>
|
|
169
168
|
|
|
170
169
|
<!-- 无数据 -->
|
|
171
170
|
<div
|
|
@@ -253,6 +252,7 @@
|
|
|
253
252
|
|
|
254
253
|
search () {
|
|
255
254
|
this.selectedValue = [];
|
|
255
|
+
this.showMode = "default";
|
|
256
256
|
this.curTabIndex = 0;
|
|
257
257
|
},
|
|
258
258
|
clickItemCb (node) {
|
|
@@ -93,14 +93,14 @@ export default {
|
|
|
93
93
|
return this.selfPropsObj._resourceKey;
|
|
94
94
|
},
|
|
95
95
|
|
|
96
|
-
|
|
96
|
+
canUseModeSwitch () {
|
|
97
97
|
return this.searchName.trim() &&
|
|
98
98
|
this.showFlatData.length < this.maxFlatModeSearchNum;
|
|
99
99
|
},
|
|
100
100
|
useFlatMode () {
|
|
101
101
|
return this.filterable &&
|
|
102
|
-
this.
|
|
103
|
-
this.
|
|
102
|
+
this.canUseModeSwitch &&
|
|
103
|
+
this.showMode === "flat";
|
|
104
104
|
},
|
|
105
105
|
modeTip () {
|
|
106
106
|
return `在搜索时,会出现层级和平级切换开关,但搜索出的结果超${this.maxFlatModeSearchNum}个时,\
|
|
@@ -85,6 +85,9 @@ export default {
|
|
|
85
85
|
controlType () {
|
|
86
86
|
return this.propsObj._type;
|
|
87
87
|
},
|
|
88
|
+
controlName () {
|
|
89
|
+
return this.propsObj._name;
|
|
90
|
+
},
|
|
88
91
|
finalCanEdit () {
|
|
89
92
|
return this.canEdit && (this.propsObj.canEdit == undefined ? true : this.propsObj.canEdit);
|
|
90
93
|
},
|
|
@@ -92,7 +95,7 @@ export default {
|
|
|
92
95
|
multipleMode () {
|
|
93
96
|
return this.isOnDftSearch || this.isOnSearch
|
|
94
97
|
? true
|
|
95
|
-
: ["texts", "numberange", "daterange", "checkbox", "regions", "cascaders"].includes(this.controlType) || !!this.propsObj._multiple;
|
|
98
|
+
: ["texts", "numberange", "daterange", "checkbox", "regions", "cascaders", "file"].includes(this.controlType) || !!this.propsObj._multiple;
|
|
96
99
|
},
|
|
97
100
|
commonDealPropsObj () {
|
|
98
101
|
const selectControlTypes = ["date", "switch", "select", "checkbox", "file", "region", "regions", "cascader", "cascaders", "coordinates", "users", "departments"];
|
|
@@ -130,11 +130,13 @@
|
|
|
130
130
|
icon: "md-share-alt",
|
|
131
131
|
size: "small",
|
|
132
132
|
btnType: "text",
|
|
133
|
+
disabled: false,
|
|
133
134
|
event: "clickExport"
|
|
134
135
|
}
|
|
135
136
|
},
|
|
136
137
|
|
|
137
|
-
showBatchImportModal: false
|
|
138
|
+
showBatchImportModal: false,
|
|
139
|
+
timer: null
|
|
138
140
|
};
|
|
139
141
|
},
|
|
140
142
|
computed: {
|
|
@@ -147,7 +149,6 @@
|
|
|
147
149
|
};
|
|
148
150
|
},
|
|
149
151
|
columns () {
|
|
150
|
-
console.log(this.propsObj);
|
|
151
152
|
return this.propsObj._subForm;
|
|
152
153
|
},
|
|
153
154
|
|
|
@@ -165,9 +166,9 @@
|
|
|
165
166
|
if (this.propsObj._isExport) {
|
|
166
167
|
btnList.unshift("canExport");
|
|
167
168
|
}
|
|
168
|
-
if (this.propsObj._isImport) {
|
|
169
|
-
|
|
170
|
-
}
|
|
169
|
+
// if (this.propsObj._isImport && this.finalCanEdit) {
|
|
170
|
+
// btnList.unshift("canImport");
|
|
171
|
+
// }
|
|
171
172
|
|
|
172
173
|
return btnList;
|
|
173
174
|
},
|
|
@@ -184,10 +185,10 @@
|
|
|
184
185
|
created () {},
|
|
185
186
|
methods: {
|
|
186
187
|
clickBatchImport () {
|
|
187
|
-
this.openBatchImportModal();
|
|
188
|
+
// this.openBatchImportModal();
|
|
188
189
|
},
|
|
189
190
|
openBatchImportModal () {
|
|
190
|
-
this.showBatchImportModal = true;
|
|
191
|
+
// this.showBatchImportModal = true;
|
|
191
192
|
},
|
|
192
193
|
// 关闭批量导入模态框
|
|
193
194
|
closeBatchImportModal () {
|
|
@@ -108,7 +108,7 @@
|
|
|
108
108
|
file: null,
|
|
109
109
|
loadingStatus: false,
|
|
110
110
|
window: window,
|
|
111
|
-
|
|
111
|
+
timer: null
|
|
112
112
|
};
|
|
113
113
|
},
|
|
114
114
|
computed: {
|
|
@@ -174,6 +174,7 @@
|
|
|
174
174
|
let formData = new FormData();
|
|
175
175
|
formData.append("file_stream", this.file);
|
|
176
176
|
formData.append("modKey", this.modKey);
|
|
177
|
+
formData.append("importType", "flatTable");
|
|
177
178
|
this.importParams._key && formData.append("_key", this.importParams._key);
|
|
178
179
|
this.importParams._id && formData.append("_id", this.importParams._id);
|
|
179
180
|
this.$https({
|
|
@@ -79,6 +79,7 @@
|
|
|
79
79
|
|
|
80
80
|
<slot>
|
|
81
81
|
<component
|
|
82
|
+
class="DshFormUnit-control-component"
|
|
82
83
|
ref="control"
|
|
83
84
|
:is="curComponentName"
|
|
84
85
|
:canEdit="canEdit"
|
|
@@ -247,6 +248,10 @@
|
|
|
247
248
|
display: flex;
|
|
248
249
|
justify-content: flex-end;
|
|
249
250
|
align-items: center;
|
|
251
|
+
|
|
252
|
+
&-component {
|
|
253
|
+
width: 100%;
|
|
254
|
+
}
|
|
250
255
|
}
|
|
251
256
|
}
|
|
252
257
|
|