bri-components 1.2.55 → 1.2.57
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 +40 -45
- package/src/components/controls/base/DshCascader/cascaderMixin.js +4 -2
- package/src/components/controls/base/DshCascader/cascaderModal.vue +14 -12
- package/src/components/controls/base/DshCascader/cascaderPicker.vue +28 -28
- 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 +9 -3
- package/src/components/controls/senior/flatTableImportModal.vue +9 -37
- 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,9 +224,9 @@
|
|
|
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,
|
|
229
|
+
_transferClassName: "",
|
|
232
230
|
|
|
233
231
|
...this.basePropsObj,
|
|
234
232
|
|
|
@@ -238,6 +236,12 @@
|
|
|
238
236
|
: this.basePropsObj._filterable
|
|
239
237
|
};
|
|
240
238
|
},
|
|
239
|
+
inputPropsObj () {
|
|
240
|
+
return {
|
|
241
|
+
_icon: this.isVisible ? "ios-arrow-up" : "ios-arrow-down",
|
|
242
|
+
...this.selfPropsObj
|
|
243
|
+
};
|
|
244
|
+
},
|
|
241
245
|
|
|
242
246
|
renderCascaderData () {
|
|
243
247
|
return this.renderAll
|
|
@@ -255,42 +259,33 @@
|
|
|
255
259
|
/* --------- 简洁方式 ------- */
|
|
256
260
|
// 动态加载数据
|
|
257
261
|
loadData (treeItem, cb) {
|
|
258
|
-
const
|
|
259
|
-
const
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
})
|
|
267
|
-
)
|
|
268
|
-
: [];
|
|
262
|
+
const linealDatas = this.$getTreeLinealDatas(treeItem.keys, this.cascaderData, undefined, this.saveKey);
|
|
263
|
+
const lastData = linealDatas.slice(-1)[0];
|
|
264
|
+
treeItem.children = lastData.children.map(item =>
|
|
265
|
+
({
|
|
266
|
+
...item,
|
|
267
|
+
children: []
|
|
268
|
+
})
|
|
269
|
+
);
|
|
269
270
|
|
|
270
271
|
cb();
|
|
271
272
|
},
|
|
272
273
|
clickCascader () {
|
|
273
|
-
if (
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
) {
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
}
|
|
274
|
+
// if (
|
|
275
|
+
// !this.selfPropsObj._disabled &&
|
|
276
|
+
// this.filterable === true &&
|
|
277
|
+
// this.renderAll === false &&
|
|
278
|
+
// this.clickFlag === true
|
|
279
|
+
// ) {
|
|
280
|
+
// this.clickFlag = false; // 这个处理其实觉大概率没必要,有没有不受影响
|
|
281
|
+
// setTimeout(() => {
|
|
282
|
+
// this.renderAll = true;
|
|
283
|
+
// }, 0);
|
|
284
|
+
// }
|
|
284
285
|
},
|
|
285
286
|
// 简洁方式-单选 -展开和关闭弹窗时触发
|
|
286
287
|
changeVisible (bool) {
|
|
287
|
-
|
|
288
|
-
this.isVisible = bool;
|
|
289
|
-
} else {
|
|
290
|
-
setTimeout(() => {
|
|
291
|
-
this.isVisible = bool;
|
|
292
|
-
}, 0);
|
|
293
|
-
}
|
|
288
|
+
this.isVisible = bool;
|
|
294
289
|
},
|
|
295
290
|
// 简洁方式-单选 -选项变化
|
|
296
291
|
changeSelect (value, selectedOptions) {
|
|
@@ -17,7 +17,6 @@ export default {
|
|
|
17
17
|
_showMode: "default",
|
|
18
18
|
_filterable: true,
|
|
19
19
|
_cascaderFilterVals: [], // 过滤级联数据,只保留的数组
|
|
20
|
-
_changeOnSelect: false, // 每级菜单都可取值
|
|
21
20
|
_renderFormat: (labels) => labels.join(_joinSymbol),
|
|
22
21
|
|
|
23
22
|
...this.propsObj,
|
|
@@ -26,6 +25,9 @@ export default {
|
|
|
26
25
|
_saveKey: this.propsObj._saveKey || "_key",
|
|
27
26
|
_valueKey: this.propsObj._valueKey || "code",
|
|
28
27
|
_nameKey: this.propsObj._nameKey || "name",
|
|
28
|
+
_changeOnSelect: this.isOnSearch
|
|
29
|
+
? true
|
|
30
|
+
: this.propsObj._changeOnSelect == undefined ? false : this.propsObj._changeOnSelect, // 每级菜单都可取值 -默认取末级
|
|
29
31
|
_joinSymbol: _joinSymbol // 级联拼接符
|
|
30
32
|
};
|
|
31
33
|
},
|
|
@@ -42,7 +44,7 @@ export default {
|
|
|
42
44
|
return this.selfPropsObj._cascaderFilterVals;
|
|
43
45
|
},
|
|
44
46
|
changeOnSelect () {
|
|
45
|
-
return this.
|
|
47
|
+
return this.selfPropsObj._changeOnSelect;
|
|
46
48
|
},
|
|
47
49
|
saveKey () {
|
|
48
50
|
return this.selfPropsObj._saveKey;
|
|
@@ -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>
|
|
@@ -153,7 +153,8 @@
|
|
|
153
153
|
computed: {
|
|
154
154
|
modalPropsObj () {
|
|
155
155
|
return {
|
|
156
|
-
title: this.selfPropsObj._name
|
|
156
|
+
title: this.selfPropsObj._name,
|
|
157
|
+
clasName: this.selfPropsObj._transferClassName
|
|
157
158
|
};
|
|
158
159
|
},
|
|
159
160
|
|
|
@@ -206,6 +207,7 @@
|
|
|
206
207
|
|
|
207
208
|
search () {
|
|
208
209
|
this.selectedValue = [];
|
|
210
|
+
this.showMode = "default";
|
|
209
211
|
},
|
|
210
212
|
clickItemCb (node) {
|
|
211
213
|
this.dealDescription();
|
|
@@ -290,7 +292,7 @@
|
|
|
290
292
|
border: 1px solid #E5E5E5;
|
|
291
293
|
display: flex;
|
|
292
294
|
|
|
293
|
-
&-
|
|
295
|
+
&-list {
|
|
294
296
|
flex: 1;
|
|
295
297
|
min-width: 0px;
|
|
296
298
|
padding: 5px 10px;
|
|
@@ -2,15 +2,16 @@
|
|
|
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"
|
|
8
9
|
:transfer="true"
|
|
9
|
-
transfer-class-name="cascaderPicker-down"
|
|
10
|
+
:transfer-class-name="`cascaderPicker-down ${selfPropsObj._transferClassName}`"
|
|
10
11
|
:stop-propagation="true"
|
|
11
12
|
:events-enabled="true"
|
|
12
13
|
>
|
|
13
|
-
<div @click
|
|
14
|
+
<div @click="clickInput">
|
|
14
15
|
<slot>
|
|
15
16
|
<Input
|
|
16
17
|
v-model="inputStr"
|
|
@@ -23,10 +24,11 @@
|
|
|
23
24
|
</slot>
|
|
24
25
|
</div>
|
|
25
26
|
|
|
26
|
-
<!-- 下拉面板 -->
|
|
27
|
+
<!-- 下拉面板 click.stop目的:slot插槽里的会渲染到body下,点击此面板时,click事件会被Dropdown捕捉到,被当成外部点击事件,用stop阻止住 -->
|
|
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"];
|
|
@@ -82,6 +82,7 @@
|
|
|
82
82
|
:propsObj="propsObj"
|
|
83
83
|
:importParams="importParams"
|
|
84
84
|
@input="toggleBatchImportModal"
|
|
85
|
+
@importCb="importCb"
|
|
85
86
|
></flat-table-import-modal>
|
|
86
87
|
</div>
|
|
87
88
|
</template>
|
|
@@ -130,11 +131,13 @@
|
|
|
130
131
|
icon: "md-share-alt",
|
|
131
132
|
size: "small",
|
|
132
133
|
btnType: "text",
|
|
134
|
+
disabled: false,
|
|
133
135
|
event: "clickExport"
|
|
134
136
|
}
|
|
135
137
|
},
|
|
136
138
|
|
|
137
|
-
showBatchImportModal: false
|
|
139
|
+
showBatchImportModal: false,
|
|
140
|
+
timer: null
|
|
138
141
|
};
|
|
139
142
|
},
|
|
140
143
|
computed: {
|
|
@@ -147,7 +150,6 @@
|
|
|
147
150
|
};
|
|
148
151
|
},
|
|
149
152
|
columns () {
|
|
150
|
-
console.log(this.propsObj);
|
|
151
153
|
return this.propsObj._subForm;
|
|
152
154
|
},
|
|
153
155
|
|
|
@@ -165,7 +167,7 @@
|
|
|
165
167
|
if (this.propsObj._isExport) {
|
|
166
168
|
btnList.unshift("canExport");
|
|
167
169
|
}
|
|
168
|
-
if (this.propsObj._isImport) {
|
|
170
|
+
if (this.propsObj._isImport && this.finalCanEdit) {
|
|
169
171
|
btnList.unshift("canImport");
|
|
170
172
|
}
|
|
171
173
|
|
|
@@ -248,6 +250,10 @@
|
|
|
248
250
|
}
|
|
249
251
|
});
|
|
250
252
|
},
|
|
253
|
+
// 回调- 导入成功
|
|
254
|
+
importCb (data) {
|
|
255
|
+
this.value[this.controlKey] = data;
|
|
256
|
+
},
|
|
251
257
|
|
|
252
258
|
// 校验方法 -供外部使用
|
|
253
259
|
validate () {
|
|
@@ -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({
|
|
@@ -186,7 +187,11 @@
|
|
|
186
187
|
headers: { "Content-Type": "multipart/form-data" }
|
|
187
188
|
},
|
|
188
189
|
callback: data => {
|
|
189
|
-
this.
|
|
190
|
+
this.$Message.success("导入成功");
|
|
191
|
+
this.file = null;
|
|
192
|
+
this.loadingStatus = false;
|
|
193
|
+
this.$emit("importCb", data);
|
|
194
|
+
this.showModal = false;
|
|
190
195
|
},
|
|
191
196
|
error: data => {
|
|
192
197
|
this.$Message.error("导入失败:" + data.msg);
|
|
@@ -197,14 +202,10 @@
|
|
|
197
202
|
});
|
|
198
203
|
},
|
|
199
204
|
|
|
200
|
-
getTransitStatus (id
|
|
205
|
+
getTransitStatus (id) {
|
|
201
206
|
let that = this;
|
|
202
207
|
return function () {
|
|
203
|
-
|
|
204
|
-
that.getImportJobStatus(id);
|
|
205
|
-
} else {
|
|
206
|
-
that.getJobStatus(id);
|
|
207
|
-
}
|
|
208
|
+
that.getJobStatus(id);
|
|
208
209
|
};
|
|
209
210
|
},
|
|
210
211
|
// 状态查询
|
|
@@ -230,35 +231,6 @@
|
|
|
230
231
|
this.timer = null;
|
|
231
232
|
}
|
|
232
233
|
});
|
|
233
|
-
},
|
|
234
|
-
// 导入状态查询
|
|
235
|
-
getImportJobStatus (id) {
|
|
236
|
-
this.$https({
|
|
237
|
-
url: {
|
|
238
|
-
module: "sheet",
|
|
239
|
-
name: "getImportJobStatus"
|
|
240
|
-
},
|
|
241
|
-
params: {
|
|
242
|
-
jobId: id
|
|
243
|
-
},
|
|
244
|
-
callback: data => {
|
|
245
|
-
if (data.status === "over") {
|
|
246
|
-
clearInterval(this.timer);
|
|
247
|
-
this.$Message.success("导入成功");
|
|
248
|
-
this.file = null;
|
|
249
|
-
this.loadingStatus = false;
|
|
250
|
-
this.showModal = false;
|
|
251
|
-
this.$emit("importCb");
|
|
252
|
-
} else if (data.status === "check-fai" || data.status === "fai") {
|
|
253
|
-
clearInterval(this.timer);
|
|
254
|
-
this.$Message.info({ content: data.faiMsg });
|
|
255
|
-
this.loadingStatus = false;
|
|
256
|
-
}
|
|
257
|
-
},
|
|
258
|
-
error: data => {
|
|
259
|
-
this.timer = null;
|
|
260
|
-
}
|
|
261
|
-
});
|
|
262
234
|
}
|
|
263
235
|
}
|
|
264
236
|
};
|
|
@@ -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
|
|