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.
Files changed (144) hide show
  1. package/lib/cui.common.js +1231 -2422
  2. package/lib/cui.umd.js +1231 -2422
  3. package/lib/cui.umd.min.js +63 -63
  4. package/package.json +2 -2
  5. package/packages/big-table/src/BigTable.vue +1 -0
  6. package/packages/big-table/src/assets/style/table-base.less +5 -0
  7. package/packages/big-table/src/components/TextOverTooltip.vue +1 -1
  8. package/packages/multi-chat/chat/index.vue +1 -1
  9. package/packages/multi-chat/components/user-status.vue +1 -1
  10. package/packages/scale-view/answerParse.vue +4 -4
  11. package/packages/select-label/label-classify.vue +129 -0
  12. package/packages/select-label/labelFormContent.vue +263 -130
  13. package/packages/select-label/select-label.vue +111 -18
  14. package/packages/table-filter/src/base-search-com/BaseSearch.vue +2 -1
  15. package/packages/table-filter/src/components/search-modal/set-classification.vue +19 -1
  16. package/packages/table-filter/src/mixins/mixins.js +10 -2
  17. package/packages/table-filter/src/quick-search/QuickSearch.vue +16 -7
  18. package/es/affix/index.js +0 -3008
  19. package/es/age/index.js +0 -3767
  20. package/es/age/style.css +0 -1
  21. package/es/alert/index.js +0 -3008
  22. package/es/anchor/index.js +0 -3021
  23. package/es/auto-complete/index.js +0 -3008
  24. package/es/avatar/index.js +0 -3008
  25. package/es/back-top/index.js +0 -3008
  26. package/es/badge/index.js +0 -3008
  27. package/es/base/index.js +0 -2896
  28. package/es/big-table/index.js +0 -19626
  29. package/es/big-table/style.css +0 -1
  30. package/es/breadcrumb/index.js +0 -3032
  31. package/es/button/index.js +0 -9128
  32. package/es/button/style.css +0 -1
  33. package/es/calendar/index.js +0 -3008
  34. package/es/captcha/index.js +0 -3618
  35. package/es/captcha/style.css +0 -1
  36. package/es/card/index.js +0 -3032
  37. package/es/carousel/index.js +0 -3008
  38. package/es/cascader/index.js +0 -3008
  39. package/es/checkbox/index.js +0 -3344
  40. package/es/checkbox/style.css +0 -1
  41. package/es/col/index.js +0 -3009
  42. package/es/collapse/index.js +0 -3021
  43. package/es/color-picker/index.js +0 -3532
  44. package/es/color-picker/style.css +0 -1
  45. package/es/comment/index.js +0 -3008
  46. package/es/config-provider/index.js +0 -3008
  47. package/es/date-picker/index.js +0 -3043
  48. package/es/descriptions/index.js +0 -3021
  49. package/es/divider/index.js +0 -3008
  50. package/es/drag-layout/index.js +0 -4814
  51. package/es/drag-layout/style.css +0 -1
  52. package/es/drawer/index.js +0 -3008
  53. package/es/dropdown/index.js +0 -3008
  54. package/es/editor/index.js +0 -3273
  55. package/es/editor/style.css +0 -1
  56. package/es/empty/index.js +0 -3008
  57. package/es/fabric-chart/index.js +0 -9844
  58. package/es/fabric-chart/style.css +0 -1
  59. package/es/form/index.js +0 -3019
  60. package/es/form-model/index.js +0 -3018
  61. package/es/grid/index.js +0 -3776
  62. package/es/icon/index.js +0 -2962
  63. package/es/img/calling.ba1a517f.png +0 -0
  64. package/es/img/failure.96c6f004.png +0 -0
  65. package/es/img/no-permission.3aa0dddb.png +0 -0
  66. package/es/img/nodata.bbccf960.png +0 -0
  67. package/es/index/index.js +0 -110944
  68. package/es/index/style.css +0 -1
  69. package/es/input/index.js +0 -4384
  70. package/es/input/style.css +0 -1
  71. package/es/input-number/index.js +0 -3008
  72. package/es/keep-cache/index.js +0 -3288
  73. package/es/layout/index.js +0 -3054
  74. package/es/list/index.js +0 -3032
  75. package/es/locale-provider/index.js +0 -3008
  76. package/es/map/index.js +0 -3677
  77. package/es/map/style.css +0 -1
  78. package/es/media/msgTip.6865f0c7.mp3 +0 -0
  79. package/es/mentions/index.js +0 -3021
  80. package/es/menu/index.js +0 -3054
  81. package/es/message/index.js +0 -2896
  82. package/es/modal/index.js +0 -2962
  83. package/es/multi-chat/index.js +0 -24268
  84. package/es/multi-chat/style.css +0 -1
  85. package/es/multi-chat-client/index.js +0 -18293
  86. package/es/multi-chat-client/style.css +0 -1
  87. package/es/multi-chat-history/index.js +0 -4571
  88. package/es/multi-chat-history/style.css +0 -1
  89. package/es/multi-chat-record/index.js +0 -4831
  90. package/es/multi-chat-record/style.css +0 -1
  91. package/es/multi-chat-setting/index.js +0 -13452
  92. package/es/multi-chat-setting/style.css +0 -1
  93. package/es/multi-chat-sip/index.js +0 -3313
  94. package/es/multi-chat-sip/style.css +0 -1
  95. package/es/notification/index.js +0 -2896
  96. package/es/page-header/index.js +0 -3008
  97. package/es/pagination/index.js +0 -3008
  98. package/es/popconfirm/index.js +0 -3008
  99. package/es/popover/index.js +0 -3008
  100. package/es/progress/index.js +0 -3008
  101. package/es/radio/index.js +0 -3335
  102. package/es/radio/style.css +0 -1
  103. package/es/rate/index.js +0 -3008
  104. package/es/result/index.js +0 -3008
  105. package/es/row/index.js +0 -3008
  106. package/es/scale-view/index.js +0 -18009
  107. package/es/scale-view/style.css +0 -1
  108. package/es/select/index.js +0 -4567
  109. package/es/select/style.css +0 -1
  110. package/es/select-label/index.js +0 -5226
  111. package/es/select-label/style.css +0 -1
  112. package/es/select-person/index.js +0 -5427
  113. package/es/select-person/style.css +0 -1
  114. package/es/skeleton/index.js +0 -3008
  115. package/es/slider/index.js +0 -3008
  116. package/es/space/index.js +0 -3008
  117. package/es/spin/index.js +0 -3008
  118. package/es/statistic/index.js +0 -3021
  119. package/es/steps/index.js +0 -3021
  120. package/es/switch/index.js +0 -3008
  121. package/es/table-filter/index.js +0 -24120
  122. package/es/table-filter/style.css +0 -1
  123. package/es/tabs/index.js +0 -3021
  124. package/es/tag/index.js +0 -3909
  125. package/es/tag/style.css +0 -1
  126. package/es/time-picker/index.js +0 -3008
  127. package/es/timeline/index.js +0 -3018
  128. package/es/tooltip/index.js +0 -3008
  129. package/es/transfer/index.js +0 -3008
  130. package/es/tree/index.js +0 -3021
  131. package/es/tree-select/index.js +0 -3021
  132. package/es/upload/index.js +0 -3008
  133. package/es/utils/UniRTCv2.js +0 -586
  134. package/es/utils/chatFetch.js +0 -85
  135. package/es/utils/clickoutside.js +0 -76
  136. package/es/utils/crypto.js +0 -40
  137. package/es/utils/kty-sdk.js +0 -1030
  138. package/es/utils/kty.min-1.0.0.js +0 -6
  139. package/es/utils/sip-device.js +0 -112
  140. package/es/utils/time-domain.js +0 -195
  141. package/es/utils/utils-map.js +0 -530
  142. package/es/utils/vexutils.js +0 -963
  143. package/es/verification-code/index.js +0 -3487
  144. 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
- <div class="edit-content">
42
- <!-- disable -->
43
- <div v-if="!v.itemList" class="label-disable-wrap">
44
- <p class="label-disable-title">无可选标签</p>
45
- <p class="label-disable-desc">请联系管理员进行标签管理设置</p>
46
- </div>
47
- <!-- -->
48
- <div v-else class="label-content">
49
- <a-checkable-tag
50
- v-for="item in v.itemList"
51
- v-model="item.isSelect"
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
- const copy = JSON.parse(JSON.stringify(this.labelOptions))
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
- for (let key in this.labelConfig) {
234
- Object.assign(this.labelConfig[key], {
235
- curKey: this.randomId()
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
- try {
264
- if (this.isLock) return;
265
- if (v.labelList && !update) {
266
- this.handleLabelSelected(v.labelList, this.labelSelectedList, v.labelObj);
267
- this.inited = true;
268
- this.editLabelItem = v;
269
- this.setLabelDeafultClick(v.labelObj);
270
- } else {
271
- // TODO:
272
- const { rows, results } = await this.getLabelList(v);
273
- const labelList = rows || [];
274
- const labelObj = {};
275
- const cacheKey = `${v.val_key}_${v.name}`;
276
- // this.labelSelected[d.cacheKey]
277
- let isSelect = false;
278
- const selectList = update ? [...(this.labelSelectedEdit || [])] : [...(this.labelSelectedList || [])];
279
- labelList.forEach(n => {
280
- n.cacheKey = cacheKey;
281
- // 根据 labelId 处理默认选中
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
- this.inited = true;
323
- }
324
- } catch (error) {
325
- this.$set(v, 'labelObj', {});
326
- this.$set(v, 'labelList', []);
327
- console.log(error);
328
- this.inited = true;
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, "labelObj", {});
577
- this.$set(this.item, "labelList", null);
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;