cnhis-design-vue 0.2.20-beta → 0.2.24-beta
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/lib/cui.common.js +1231 -2422
- package/lib/cui.umd.js +1231 -2422
- package/lib/cui.umd.min.js +63 -63
- package/package.json +2 -2
- package/packages/big-table/src/BigTable.vue +1 -0
- package/packages/big-table/src/assets/style/table-base.less +5 -0
- package/packages/big-table/src/components/TextOverTooltip.vue +1 -1
- package/packages/multi-chat/chat/index.vue +1 -1
- package/packages/multi-chat/components/user-status.vue +1 -1
- package/packages/scale-view/answerParse.vue +4 -4
- package/packages/select-label/label-classify.vue +129 -0
- package/packages/select-label/labelFormContent.vue +263 -130
- package/packages/select-label/select-label.vue +111 -18
- package/packages/table-filter/src/base-search-com/BaseSearch.vue +2 -1
- package/packages/table-filter/src/components/search-modal/set-classification.vue +19 -1
- package/packages/table-filter/src/mixins/mixins.js +10 -2
- package/packages/table-filter/src/quick-search/QuickSearch.vue +16 -7
- package/es/affix/index.js +0 -3008
- package/es/age/index.js +0 -3767
- package/es/age/style.css +0 -1
- package/es/alert/index.js +0 -3008
- package/es/anchor/index.js +0 -3021
- package/es/auto-complete/index.js +0 -3008
- package/es/avatar/index.js +0 -3008
- package/es/back-top/index.js +0 -3008
- package/es/badge/index.js +0 -3008
- package/es/base/index.js +0 -2896
- package/es/big-table/index.js +0 -19626
- package/es/big-table/style.css +0 -1
- package/es/breadcrumb/index.js +0 -3032
- package/es/button/index.js +0 -9128
- package/es/button/style.css +0 -1
- package/es/calendar/index.js +0 -3008
- package/es/captcha/index.js +0 -3618
- package/es/captcha/style.css +0 -1
- package/es/card/index.js +0 -3032
- package/es/carousel/index.js +0 -3008
- package/es/cascader/index.js +0 -3008
- package/es/checkbox/index.js +0 -3344
- package/es/checkbox/style.css +0 -1
- package/es/col/index.js +0 -3009
- package/es/collapse/index.js +0 -3021
- package/es/color-picker/index.js +0 -3532
- package/es/color-picker/style.css +0 -1
- package/es/comment/index.js +0 -3008
- package/es/config-provider/index.js +0 -3008
- package/es/date-picker/index.js +0 -3043
- package/es/descriptions/index.js +0 -3021
- package/es/divider/index.js +0 -3008
- package/es/drag-layout/index.js +0 -4814
- package/es/drag-layout/style.css +0 -1
- package/es/drawer/index.js +0 -3008
- package/es/dropdown/index.js +0 -3008
- package/es/editor/index.js +0 -3273
- package/es/editor/style.css +0 -1
- package/es/empty/index.js +0 -3008
- package/es/fabric-chart/index.js +0 -9844
- package/es/fabric-chart/style.css +0 -1
- package/es/form/index.js +0 -3019
- package/es/form-model/index.js +0 -3018
- package/es/grid/index.js +0 -3776
- package/es/icon/index.js +0 -2962
- package/es/img/calling.ba1a517f.png +0 -0
- package/es/img/failure.96c6f004.png +0 -0
- package/es/img/no-permission.3aa0dddb.png +0 -0
- package/es/img/nodata.bbccf960.png +0 -0
- package/es/index/index.js +0 -110944
- package/es/index/style.css +0 -1
- package/es/input/index.js +0 -4384
- package/es/input/style.css +0 -1
- package/es/input-number/index.js +0 -3008
- package/es/keep-cache/index.js +0 -3288
- package/es/layout/index.js +0 -3054
- package/es/list/index.js +0 -3032
- package/es/locale-provider/index.js +0 -3008
- package/es/map/index.js +0 -3677
- package/es/map/style.css +0 -1
- package/es/media/msgTip.6865f0c7.mp3 +0 -0
- package/es/mentions/index.js +0 -3021
- package/es/menu/index.js +0 -3054
- package/es/message/index.js +0 -2896
- package/es/modal/index.js +0 -2962
- package/es/multi-chat/index.js +0 -24268
- package/es/multi-chat/style.css +0 -1
- package/es/multi-chat-client/index.js +0 -18293
- package/es/multi-chat-client/style.css +0 -1
- package/es/multi-chat-history/index.js +0 -4571
- package/es/multi-chat-history/style.css +0 -1
- package/es/multi-chat-record/index.js +0 -4831
- package/es/multi-chat-record/style.css +0 -1
- package/es/multi-chat-setting/index.js +0 -13452
- package/es/multi-chat-setting/style.css +0 -1
- package/es/multi-chat-sip/index.js +0 -3313
- package/es/multi-chat-sip/style.css +0 -1
- package/es/notification/index.js +0 -2896
- package/es/page-header/index.js +0 -3008
- package/es/pagination/index.js +0 -3008
- package/es/popconfirm/index.js +0 -3008
- package/es/popover/index.js +0 -3008
- package/es/progress/index.js +0 -3008
- package/es/radio/index.js +0 -3335
- package/es/radio/style.css +0 -1
- package/es/rate/index.js +0 -3008
- package/es/result/index.js +0 -3008
- package/es/row/index.js +0 -3008
- package/es/scale-view/index.js +0 -18009
- package/es/scale-view/style.css +0 -1
- package/es/select/index.js +0 -4567
- package/es/select/style.css +0 -1
- package/es/select-label/index.js +0 -5226
- package/es/select-label/style.css +0 -1
- package/es/select-person/index.js +0 -5427
- package/es/select-person/style.css +0 -1
- package/es/skeleton/index.js +0 -3008
- package/es/slider/index.js +0 -3008
- package/es/space/index.js +0 -3008
- package/es/spin/index.js +0 -3008
- package/es/statistic/index.js +0 -3021
- package/es/steps/index.js +0 -3021
- package/es/switch/index.js +0 -3008
- package/es/table-filter/index.js +0 -24120
- package/es/table-filter/style.css +0 -1
- package/es/tabs/index.js +0 -3021
- package/es/tag/index.js +0 -3909
- package/es/tag/style.css +0 -1
- package/es/time-picker/index.js +0 -3008
- package/es/timeline/index.js +0 -3018
- package/es/tooltip/index.js +0 -3008
- package/es/transfer/index.js +0 -3008
- package/es/tree/index.js +0 -3021
- package/es/tree-select/index.js +0 -3021
- package/es/upload/index.js +0 -3008
- package/es/utils/UniRTCv2.js +0 -586
- package/es/utils/chatFetch.js +0 -85
- package/es/utils/clickoutside.js +0 -76
- package/es/utils/crypto.js +0 -40
- package/es/utils/kty-sdk.js +0 -1030
- package/es/utils/kty.min-1.0.0.js +0 -6
- package/es/utils/sip-device.js +0 -112
- package/es/utils/time-domain.js +0 -195
- package/es/utils/utils-map.js +0 -530
- package/es/utils/vexutils.js +0 -963
- package/es/verification-code/index.js +0 -3487
- package/es/verification-code/style.css +0 -1
|
@@ -6,7 +6,37 @@
|
|
|
6
6
|
</div>
|
|
7
7
|
<div v-show="!allDisable" style="height: 100%;">
|
|
8
8
|
<div class="label-wrap">
|
|
9
|
+
<!-- 表单内嵌打开标签组件的样式 -->
|
|
10
|
+
<div v-if="explicit" class="explicit-continer">
|
|
11
|
+
<a-tabs hideAdd :activeKey="labelAnchorKey" type="card" @change="labelAnchorTabsOnChange" tab-position="top">
|
|
12
|
+
<template v-for="(v, i) in labelConfig">
|
|
13
|
+
<a-tab-pane :key="v.curKey">
|
|
14
|
+
<span slot="tab">
|
|
15
|
+
{{ i }}
|
|
16
|
+
<span class="edit-label-type">({{ v.multipleChoice == 2 ? '单' : '多' }}选)</span>
|
|
17
|
+
</span>
|
|
18
|
+
<div class="explicit-label-wrap left-label-wrap">
|
|
19
|
+
<div class="edit-label-content">
|
|
20
|
+
<labelClassify
|
|
21
|
+
:classifyItem="v"
|
|
22
|
+
:handleLabelChange="handleLabelChange"
|
|
23
|
+
:handleLabelColor="handleLabelColor"
|
|
24
|
+
:handleDelLabel="handleDelLabel"
|
|
25
|
+
:hanldeBlur="hanldeBlur"
|
|
26
|
+
:handleAddLabel="handleAddLabel"
|
|
27
|
+
:clearaddVal="clearaddVal"
|
|
28
|
+
:isEdit="isEdit"
|
|
29
|
+
:sourceType="sourceType"
|
|
30
|
+
/>
|
|
31
|
+
</div>
|
|
32
|
+
</div>
|
|
33
|
+
</a-tab-pane>
|
|
34
|
+
</template>
|
|
35
|
+
</a-tabs>
|
|
36
|
+
</div>
|
|
37
|
+
<!-- 普通标签样式 -->
|
|
9
38
|
<div
|
|
39
|
+
v-else
|
|
10
40
|
class="left-label-wrap"
|
|
11
41
|
:class="{
|
|
12
42
|
'total-left-label-wrap': isChangeWindow
|
|
@@ -22,7 +52,9 @@
|
|
|
22
52
|
</template>
|
|
23
53
|
</a-tabs>
|
|
24
54
|
</div>
|
|
55
|
+
|
|
25
56
|
<div
|
|
57
|
+
v-if="!explicit"
|
|
26
58
|
class="right-label-wrap"
|
|
27
59
|
:class="{
|
|
28
60
|
'total-right-label-wrap': isChangeWindow
|
|
@@ -38,43 +70,17 @@
|
|
|
38
70
|
{{ k }}
|
|
39
71
|
<span class="edit-label-type">({{ v.multipleChoice == 2 ? '单' : '多' }}选)</span>
|
|
40
72
|
</div>
|
|
41
|
-
<
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
@change="handleLabelChange($event, item, v)"
|
|
53
|
-
:key="item.labelId"
|
|
54
|
-
:style="handleLabelColor(item)"
|
|
55
|
-
:class="{ 'sys-label-tag': item.isPublic && item.isPublic == 1 }"
|
|
56
|
-
>
|
|
57
|
-
<a-tooltip placement="topLeft">
|
|
58
|
-
<template slot="title">
|
|
59
|
-
<span>{{ item.labelName }}</span>
|
|
60
|
-
</template>
|
|
61
|
-
{{ item.labelName }}
|
|
62
|
-
</a-tooltip>
|
|
63
|
-
|
|
64
|
-
<template v-if="sourceType != 'guage'">
|
|
65
|
-
<a-icon class="label-close" v-show="!(item.isPublic && item.isPublic == 1)" type="close" @click.native.stop="handleDelLabel(item, v)" />
|
|
66
|
-
</template>
|
|
67
|
-
</a-checkable-tag>
|
|
68
|
-
<a-button v-if="isEdit && !v.isNoAdd && sourceType != 'guage'" type="dashed" class="label-add" v-show="!v.showAdd" @click="handleAddLabel($event, v)">
|
|
69
|
-
<a-icon type="plus" />
|
|
70
|
-
<!-- {{ $t("1.1.2") }} -->
|
|
71
|
-
标签
|
|
72
|
-
</a-button>
|
|
73
|
-
<a-input v-if="isEdit && !v.isNoAdd && sourceType != 'guage'" class="label-add add-input" v-model.trim="v.addVal" v-show="v.showAdd" @blur="hanldeBlur($event, v)">
|
|
74
|
-
<a-icon slot="suffix" type="close" @click.native.stop="clearaddVal($event, v)" />
|
|
75
|
-
</a-input>
|
|
76
|
-
</div>
|
|
77
|
-
</div>
|
|
73
|
+
<labelClassify
|
|
74
|
+
:classifyItem="v"
|
|
75
|
+
:handleLabelChange="handleLabelChange"
|
|
76
|
+
:handleLabelColor="handleLabelColor"
|
|
77
|
+
:handleDelLabel="handleDelLabel"
|
|
78
|
+
:hanldeBlur="hanldeBlur"
|
|
79
|
+
:handleAddLabel="handleAddLabel"
|
|
80
|
+
:clearaddVal="clearaddVal"
|
|
81
|
+
:isEdit="isEdit"
|
|
82
|
+
:sourceType="sourceType"
|
|
83
|
+
/>
|
|
78
84
|
</div>
|
|
79
85
|
</div>
|
|
80
86
|
</div>
|
|
@@ -113,6 +119,8 @@ import utils from '@/utils/utils-map';
|
|
|
113
119
|
import { Tooltip, Icon, Button, Input, Tag, Tabs, Anchor } from 'ant-design-vue';
|
|
114
120
|
import create from '@/core/create';
|
|
115
121
|
import vexutils from '@/utils/vexutils';
|
|
122
|
+
|
|
123
|
+
import labelClassify from './label-classify.vue';
|
|
116
124
|
export default create({
|
|
117
125
|
name: 'label-form-content',
|
|
118
126
|
components: {
|
|
@@ -125,7 +133,8 @@ export default create({
|
|
|
125
133
|
[Tooltip.name]: Tooltip,
|
|
126
134
|
[Button.name]: Button,
|
|
127
135
|
[Tag.name]: Tag,
|
|
128
|
-
[Tag.CheckableTag.name]: Tag.CheckableTag
|
|
136
|
+
[Tag.CheckableTag.name]: Tag.CheckableTag,
|
|
137
|
+
labelClassify
|
|
129
138
|
},
|
|
130
139
|
props: {
|
|
131
140
|
item: {
|
|
@@ -156,7 +165,13 @@ export default create({
|
|
|
156
165
|
labelOptions: {
|
|
157
166
|
type: Object
|
|
158
167
|
},
|
|
159
|
-
sourceType: String
|
|
168
|
+
sourceType: String,
|
|
169
|
+
|
|
170
|
+
explicit: {
|
|
171
|
+
// 标签选择外显
|
|
172
|
+
type: Boolean,
|
|
173
|
+
default: false
|
|
174
|
+
}
|
|
160
175
|
},
|
|
161
176
|
inject: {},
|
|
162
177
|
data() {
|
|
@@ -183,9 +198,9 @@ export default create({
|
|
|
183
198
|
return !labelObj[key].itemList;
|
|
184
199
|
});
|
|
185
200
|
},
|
|
186
|
-
SelectedList(){
|
|
201
|
+
SelectedList() {
|
|
187
202
|
const { labelSelectedList = [], labelSelectedEdit = [] } = this;
|
|
188
|
-
return labelSelectedList.concat(labelSelectedEdit)
|
|
203
|
+
return labelSelectedList.concat(labelSelectedEdit);
|
|
189
204
|
},
|
|
190
205
|
selectLabelId() {
|
|
191
206
|
const list = this?.SelectedList || [];
|
|
@@ -196,12 +211,12 @@ export default create({
|
|
|
196
211
|
}
|
|
197
212
|
},
|
|
198
213
|
watch: {
|
|
199
|
-
labelOptions:{
|
|
200
|
-
immediate:true,
|
|
214
|
+
labelOptions: {
|
|
215
|
+
immediate: true,
|
|
201
216
|
deep: true,
|
|
202
|
-
handler(val){
|
|
203
|
-
if(!val) return;
|
|
204
|
-
this.handleLabelInit()
|
|
217
|
+
handler(val) {
|
|
218
|
+
if (!val) return;
|
|
219
|
+
this.handleLabelInit();
|
|
205
220
|
}
|
|
206
221
|
}
|
|
207
222
|
// labelVisible: {
|
|
@@ -226,16 +241,24 @@ export default create({
|
|
|
226
241
|
|
|
227
242
|
handleLabelInit() {
|
|
228
243
|
if (this.isLock) return;
|
|
229
|
-
|
|
244
|
+
this.cacheLabelConfig = { ...this.labelConfig };
|
|
245
|
+
const copy = JSON.parse(JSON.stringify(this.labelOptions));
|
|
246
|
+
|
|
247
|
+
for (let key in copy) {
|
|
248
|
+
// let olbKey = this?.cacheLabelConfig[key]?.curKey
|
|
249
|
+
let typeId = copy[key]?.typeId || '';
|
|
250
|
+
Object.assign(copy[key], {
|
|
251
|
+
curKey: `${key}_${typeId}~${this.randomId()}`
|
|
252
|
+
});
|
|
253
|
+
}
|
|
230
254
|
this.$set(this, 'labelConfig', copy);
|
|
231
255
|
this.$nextTick(() => {
|
|
232
256
|
this.hanldeBackfill();
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
});
|
|
257
|
+
let defKey = undefined;
|
|
258
|
+
if (this.explicit && this.inited) {
|
|
259
|
+
defKey = this.labelAnchorKey;
|
|
237
260
|
}
|
|
238
|
-
this.setLabelDeafultClick(this.labelConfig);
|
|
261
|
+
this.setLabelDeafultClick(this.labelConfig, defKey);
|
|
239
262
|
this.inited = true;
|
|
240
263
|
});
|
|
241
264
|
},
|
|
@@ -249,91 +272,100 @@ export default create({
|
|
|
249
272
|
let itemList = labelConfig[k]?.itemList || [];
|
|
250
273
|
if (itemList.length) {
|
|
251
274
|
itemList.forEach(v => {
|
|
252
|
-
if(selectLabelId.includes(v.labelId)){
|
|
253
|
-
this.$set(v,'isSelect', true)
|
|
275
|
+
if (selectLabelId.includes(v.labelId)) {
|
|
276
|
+
this.$set(v, 'isSelect', true);
|
|
254
277
|
}
|
|
255
|
-
})
|
|
278
|
+
});
|
|
256
279
|
}
|
|
257
280
|
});
|
|
258
281
|
}
|
|
259
282
|
},
|
|
260
283
|
|
|
261
284
|
// 标签处理
|
|
262
|
-
async handleEditLabel(v = {}, update = false) {
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
/**
|
|
284
|
-
* 回填的值可能不在数据中,但是不能丢失。
|
|
285
|
-
*/
|
|
286
|
-
isSelect = selectList.findIndex(i => i.labelId == n.labelId) !== -1;
|
|
287
|
-
n.isSelect = isSelect; // 是否已选
|
|
288
|
-
/**
|
|
289
|
-
* typeName 按照分类处理
|
|
290
|
-
* 没有分类创建分类,有则添加
|
|
291
|
-
*/
|
|
292
|
-
if (labelObj[n.typeName]) {
|
|
293
|
-
labelObj[n.typeName].itemList.push({ ...n });
|
|
294
|
-
} else {
|
|
295
|
-
labelObj[n.typeName] = {
|
|
296
|
-
itemList: [{ ...n }],
|
|
297
|
-
showAdd: false,
|
|
298
|
-
addVal: '',
|
|
299
|
-
typeName: n.typeName,
|
|
300
|
-
typeId: n.typeId
|
|
301
|
-
};
|
|
302
|
-
}
|
|
303
|
-
});
|
|
304
|
-
/**
|
|
305
|
-
* labelObj 展示的分类值
|
|
306
|
-
* labelList 原始数据结构
|
|
307
|
-
* selectList 已选的数据
|
|
308
|
-
*/
|
|
309
|
-
this.$set(v, 'labelObj', labelObj);
|
|
310
|
-
this.$set(v, 'labelList', labelList);
|
|
311
|
-
this.$set(this, 'labelSelectedEdit', selectList);
|
|
312
|
-
// 缓存
|
|
313
|
-
this.editLabelItem = v;
|
|
314
|
-
this.setLabelTypeStatus(results);
|
|
315
|
-
for (let key in labelObj) {
|
|
316
|
-
Object.assign(labelObj[key], {
|
|
317
|
-
curKey: this.randomId()
|
|
318
|
-
});
|
|
319
|
-
}
|
|
320
|
-
this.setLabelDeafultClick(labelObj);
|
|
285
|
+
// async handleEditLabel(v = {}, update = false) {
|
|
286
|
+
// try {
|
|
287
|
+
// if (this.isLock) return;
|
|
288
|
+
// if (v.labelList && !update) {
|
|
289
|
+
// this.handleLabelSelected(v.labelList, this.labelSelectedList, v.labelObj);
|
|
290
|
+
// this.inited = true;
|
|
291
|
+
// this.editLabelItem = v;
|
|
292
|
+
// this.setLabelDeafultClick(v.labelObj);
|
|
293
|
+
// } else {
|
|
294
|
+
// // TODO:
|
|
295
|
+
// const { rows, results } = await this.getLabelList(v);
|
|
296
|
+
// const labelList = rows || [];
|
|
297
|
+
// const labelObj = {};
|
|
298
|
+
// const cacheKey = `${v.val_key}_${v.name}`;
|
|
299
|
+
// // this.labelSelected[d.cacheKey]
|
|
300
|
+
// let isSelect = false;
|
|
301
|
+
// const selectList = update ? [...(this.labelSelectedEdit || [])] : [...(this.labelSelectedList || [])];
|
|
302
|
+
// labelList.forEach(n => {
|
|
303
|
+
// n.cacheKey = cacheKey;
|
|
304
|
+
// // 根据 labelId 处理默认选中
|
|
321
305
|
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
306
|
+
// /**
|
|
307
|
+
// * 回填的值可能不在数据中,但是不能丢失。
|
|
308
|
+
// */
|
|
309
|
+
// isSelect = selectList.findIndex(i => i.labelId == n.labelId) !== -1;
|
|
310
|
+
// n.isSelect = isSelect; // 是否已选
|
|
311
|
+
// this.$set(n, 'isSelect', isSelect);
|
|
312
|
+
// /**
|
|
313
|
+
// * typeName 按照分类处理
|
|
314
|
+
// * 没有分类创建分类,有则添加
|
|
315
|
+
// */
|
|
316
|
+
// if (labelObj[n.typeName]) {
|
|
317
|
+
// labelObj[n.typeName].itemList.push({ ...n });
|
|
318
|
+
// } else {
|
|
319
|
+
// labelObj[n.typeName] = {
|
|
320
|
+
// itemList: [{ ...n }],
|
|
321
|
+
// showAdd: false,
|
|
322
|
+
// addVal: '',
|
|
323
|
+
// typeName: n.typeName,
|
|
324
|
+
// typeId: n.typeId
|
|
325
|
+
// };
|
|
326
|
+
// }
|
|
327
|
+
// });
|
|
328
|
+
// /**
|
|
329
|
+
// * labelObj 展示的分类值
|
|
330
|
+
// * labelList 原始数据结构
|
|
331
|
+
// * selectList 已选的数据
|
|
332
|
+
// */
|
|
333
|
+
// this.$set(v, 'labelObj', labelObj);
|
|
334
|
+
// this.$set(v, 'labelList', labelList);
|
|
335
|
+
// this.$set(this, 'labelSelectedEdit', selectList);
|
|
336
|
+
// // 缓存
|
|
337
|
+
// this.editLabelItem = v;
|
|
338
|
+
// this.setLabelTypeStatus(results);
|
|
339
|
+
// for (let key in labelObj) {
|
|
340
|
+
// Object.assign(labelObj[key], {
|
|
341
|
+
// curKey: this.randomId()
|
|
342
|
+
// });
|
|
343
|
+
// }
|
|
344
|
+
// this.setLabelDeafultClick(labelObj);
|
|
345
|
+
|
|
346
|
+
// this.inited = true;
|
|
347
|
+
// }
|
|
348
|
+
// } catch (error) {
|
|
349
|
+
// this.$set(v, 'labelObj', {});
|
|
350
|
+
// this.$set(v, 'labelList', []);
|
|
351
|
+
// console.log(error);
|
|
352
|
+
// this.inited = true;
|
|
353
|
+
// }
|
|
354
|
+
// },
|
|
331
355
|
// 默认选中第一个分类
|
|
332
|
-
setLabelDeafultClick(labelObj) {
|
|
356
|
+
setLabelDeafultClick(labelObj, deafulteKey) {
|
|
333
357
|
if (!labelObj) return;
|
|
334
358
|
let objKeys = Object.keys(labelObj) || [];
|
|
335
359
|
if (!objKeys.length) return;
|
|
336
360
|
let curKey = labelObj[objKeys[0]].curKey;
|
|
361
|
+
// 找到默认选中的tab
|
|
362
|
+
if (deafulteKey && typeof deafulteKey === 'string') {
|
|
363
|
+
let [q] = deafulteKey.split('~');
|
|
364
|
+
let f = objKeys.find(k => labelObj[k] && labelObj[k].curKey && labelObj[k].curKey.includes(q));
|
|
365
|
+
if (f) {
|
|
366
|
+
curKey = labelObj[f].curKey;
|
|
367
|
+
}
|
|
368
|
+
}
|
|
337
369
|
if (!curKey) return;
|
|
338
370
|
this.labelAnchorTabsOnChange(curKey);
|
|
339
371
|
},
|
|
@@ -454,6 +486,8 @@ export default create({
|
|
|
454
486
|
let parentColor = '';
|
|
455
487
|
if (v.itemList?.length) {
|
|
456
488
|
parentColor = v.itemList[0].parentColor || v.parentColor || '';
|
|
489
|
+
} else {
|
|
490
|
+
parentColor = v?.parentColor || "";
|
|
457
491
|
}
|
|
458
492
|
|
|
459
493
|
const params = {
|
|
@@ -466,7 +500,7 @@ export default create({
|
|
|
466
500
|
if (status) {
|
|
467
501
|
this.$message.success('添加成功!');
|
|
468
502
|
// this.handleEditLabel(this.editLabelItem, true);
|
|
469
|
-
this.$emit('updateLabelData')
|
|
503
|
+
this.$emit('updateLabelData');
|
|
470
504
|
v.showAdd = false;
|
|
471
505
|
}
|
|
472
506
|
},
|
|
@@ -476,8 +510,7 @@ export default create({
|
|
|
476
510
|
const multipleChoice = labelGroup.multipleChoice;
|
|
477
511
|
// let selectedList = this.labelSelectedEdit || [];
|
|
478
512
|
// 修复 标签多选 点击modal取消按钮 回显也会被选中
|
|
479
|
-
let selectedList =
|
|
480
|
-
(this.labelSelectedEdit?.length && vexutils.clone(this.labelSelectedEdit, true)) || [];
|
|
513
|
+
let selectedList = (this.labelSelectedEdit?.length && vexutils.clone(this.labelSelectedEdit, true)) || [];
|
|
481
514
|
if (v) {
|
|
482
515
|
if (selectedList.some(n => n.labelId == d.labelId)) {
|
|
483
516
|
return;
|
|
@@ -500,6 +533,12 @@ export default create({
|
|
|
500
533
|
}
|
|
501
534
|
}
|
|
502
535
|
this.labelSelectedEdit = [...selectedList];
|
|
536
|
+
this.$forceUpdate();
|
|
537
|
+
|
|
538
|
+
// 外显实时改变通知
|
|
539
|
+
if (this.explicit) {
|
|
540
|
+
this.$emit('explicitOnChange', [...this.labelSelectedEdit]);
|
|
541
|
+
}
|
|
503
542
|
},
|
|
504
543
|
|
|
505
544
|
async handleDelLabel(v) {
|
|
@@ -520,7 +559,7 @@ export default create({
|
|
|
520
559
|
this.$emit('valueOnChange', [...selectObj], this.item);
|
|
521
560
|
this.$emit('onChange', [...selectObj]);
|
|
522
561
|
}
|
|
523
|
-
this.$emit('updateLabelData')
|
|
562
|
+
this.$emit('updateLabelData');
|
|
524
563
|
// this.handleEditLabel(this.editLabelItem, true);
|
|
525
564
|
} else {
|
|
526
565
|
this.$message.warning('删除失败');
|
|
@@ -573,8 +612,38 @@ export default create({
|
|
|
573
612
|
* 重置label选项
|
|
574
613
|
*/
|
|
575
614
|
handleResetOptions() {
|
|
576
|
-
this.$set(this.item,
|
|
577
|
-
this.$set(this.item,
|
|
615
|
+
this.$set(this.item, 'labelObj', {});
|
|
616
|
+
this.$set(this.item, 'labelList', null);
|
|
617
|
+
},
|
|
618
|
+
|
|
619
|
+
/**
|
|
620
|
+
* 设置标签单个状态
|
|
621
|
+
*/
|
|
622
|
+
hanldeSetLabelItem(id, state) {
|
|
623
|
+
const { labelConfig } = this;
|
|
624
|
+
if (typeof labelConfig === 'object') {
|
|
625
|
+
let keys = Object.keys(labelConfig || {});
|
|
626
|
+
keys.forEach(k => {
|
|
627
|
+
let itemList = labelConfig[k]?.itemList || [];
|
|
628
|
+
if (itemList.length) {
|
|
629
|
+
itemList.forEach(v => {
|
|
630
|
+
if (id == v.labelId) {
|
|
631
|
+
this.$set(v, 'isSelect', state);
|
|
632
|
+
}
|
|
633
|
+
});
|
|
634
|
+
}
|
|
635
|
+
});
|
|
636
|
+
}
|
|
637
|
+
// 如果是删除
|
|
638
|
+
if (false === state) {
|
|
639
|
+
// 删除选中list
|
|
640
|
+
if (Array.isArray(this.labelSelectedEdit)) {
|
|
641
|
+
const fdIndex = this.labelSelectedEdit.findIndex(n => n.labelId == id);
|
|
642
|
+
if (fdIndex != -1) {
|
|
643
|
+
this.labelSelectedEdit.splice(fdIndex, 1);
|
|
644
|
+
}
|
|
645
|
+
}
|
|
646
|
+
}
|
|
578
647
|
}
|
|
579
648
|
}
|
|
580
649
|
});
|
|
@@ -595,6 +664,12 @@ export default create({
|
|
|
595
664
|
height: calc(100vh - 109px);
|
|
596
665
|
max-height: calc(100vh - 109px);
|
|
597
666
|
}
|
|
667
|
+
&.explicit-label-wrap {
|
|
668
|
+
width: 100%;
|
|
669
|
+
height: auto;
|
|
670
|
+
overflow: hidden;
|
|
671
|
+
overflow-y: auto;
|
|
672
|
+
}
|
|
598
673
|
/deep/.ant-tabs {
|
|
599
674
|
height: 100%;
|
|
600
675
|
.ant-tabs-nav-container {
|
|
@@ -632,6 +707,64 @@ export default create({
|
|
|
632
707
|
max-height: calc(100vh - 109px);
|
|
633
708
|
}
|
|
634
709
|
}
|
|
710
|
+
.explicit-continer {
|
|
711
|
+
width: 100%;
|
|
712
|
+
border: 1px solid #d5d5d5;
|
|
713
|
+
// background: #F9F9F9;
|
|
714
|
+
/deep/ .ant-tabs-card {
|
|
715
|
+
.ant-tabs-nav-container {
|
|
716
|
+
height: 30px;
|
|
717
|
+
line-height: 30px;
|
|
718
|
+
margin-top: 0px;
|
|
719
|
+
.ant-tabs-tab-prev {
|
|
720
|
+
border-bottom: 1px solid #e8e8e8;
|
|
721
|
+
border-right: 1px solid #e8e8e8;
|
|
722
|
+
}
|
|
723
|
+
.ant-tabs-tab-next {
|
|
724
|
+
border-bottom: 1px solid #e8e8e8;
|
|
725
|
+
border-left: 1px solid #e8e8e8;
|
|
726
|
+
}
|
|
727
|
+
}
|
|
728
|
+
> .ant-tabs-content {
|
|
729
|
+
// height: 120px;
|
|
730
|
+
margin-top: -16px;
|
|
731
|
+
|
|
732
|
+
> .ant-tabs-tabpane {
|
|
733
|
+
background: #fff;
|
|
734
|
+
padding: 16px;
|
|
735
|
+
}
|
|
736
|
+
}
|
|
737
|
+
|
|
738
|
+
// ant-tabs-tab
|
|
739
|
+
|
|
740
|
+
> .ant-tabs-bar {
|
|
741
|
+
border-color: #fff;
|
|
742
|
+
.ant-tabs-tab {
|
|
743
|
+
margin-right:0;
|
|
744
|
+
border-radius:0;
|
|
745
|
+
line-height: 30px;
|
|
746
|
+
height: 30px;
|
|
747
|
+
|
|
748
|
+
border-right: 1px solid #e8e8e8!important;
|
|
749
|
+
border-bottom: 1px solid #e8e8e8;
|
|
750
|
+
border-top: none;
|
|
751
|
+
|
|
752
|
+
// border-color: transparent;
|
|
753
|
+
background: #F9F9F9;
|
|
754
|
+
&:first-of-type{
|
|
755
|
+
border-left: 1px solid #e8e8e8;
|
|
756
|
+
}
|
|
757
|
+
&.ant-tabs-tab-active {
|
|
758
|
+
border-bottom-color: #fff;
|
|
759
|
+
background: #fff;
|
|
760
|
+
}
|
|
761
|
+
}
|
|
762
|
+
|
|
763
|
+
}
|
|
764
|
+
|
|
765
|
+
.ant-tabs-bar;
|
|
766
|
+
}
|
|
767
|
+
}
|
|
635
768
|
}
|
|
636
769
|
.edit-label-type {
|
|
637
770
|
font-size: 12px;
|