cnhis-design-vue 0.2.13-beta → 0.2.17-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/es/age/index.js +2 -2
- package/es/big-table/index.js +21 -21
- package/es/button/index.js +2 -2
- package/es/captcha/index.js +3 -3
- package/es/checkbox/index.js +1 -1
- package/es/color-picker/index.js +1 -1
- package/es/drag-layout/index.js +3 -3
- package/es/editor/index.js +36 -23
- package/es/editor/style.css +1 -1
- package/es/fabric-chart/index.js +9 -9
- package/es/index/index.js +612 -308
- package/es/index/style.css +1 -1
- package/es/input/index.js +1 -1
- package/es/map/index.js +1 -1
- package/es/multi-chat/index.js +24 -24
- package/es/multi-chat-client/index.js +18 -18
- package/es/multi-chat-history/index.js +4 -4
- package/es/multi-chat-record/index.js +4 -4
- package/es/multi-chat-setting/index.js +20 -20
- package/es/multi-chat-sip/index.js +1 -1
- package/es/radio/index.js +1 -1
- package/es/scale-view/index.js +367 -97
- package/es/scale-view/style.css +1 -1
- package/es/select/index.js +3 -3
- package/es/select-label/index.js +445 -77
- package/es/select-label/style.css +1 -1
- package/es/select-person/index.js +2 -2
- package/es/table-filter/index.js +120 -92
- package/es/table-filter/style.css +1 -1
- package/es/tag/index.js +1 -1
- package/es/verification-code/index.js +2 -2
- package/package.json +1 -1
- package/packages/editor/src/Editor.vue +3 -0
- package/packages/select-label/label-classify.vue +121 -0
- package/packages/select-label/labelFormContent.vue +134 -60
- package/packages/select-label/select-label.vue +59 -4
- package/packages/table-filter/src/base-search-com/BaseSearch.vue +5 -5
- package/packages/table-filter/src/components/c-tree-select/tree-select.vue +1 -1
- package/packages/table-filter/src/components/out-quick-search/out-quick-search.vue +3 -3
- package/packages/table-filter/src/mixins/mixins.js +10 -2
- package/packages/table-filter/src/quick-search/QuickSearch.vue +10 -2
|
@@ -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" @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() {
|
|
@@ -193,12 +208,12 @@ export default create({
|
|
|
193
208
|
}
|
|
194
209
|
},
|
|
195
210
|
watch: {
|
|
196
|
-
labelOptions:{
|
|
197
|
-
immediate:true,
|
|
211
|
+
labelOptions: {
|
|
212
|
+
immediate: true,
|
|
198
213
|
deep: true,
|
|
199
|
-
handler(val){
|
|
200
|
-
if(!val) return;
|
|
201
|
-
this.handleLabelInit()
|
|
214
|
+
handler(val) {
|
|
215
|
+
if (!val) return;
|
|
216
|
+
this.handleLabelInit();
|
|
202
217
|
}
|
|
203
218
|
}
|
|
204
219
|
// labelVisible: {
|
|
@@ -223,16 +238,25 @@ export default create({
|
|
|
223
238
|
|
|
224
239
|
handleLabelInit() {
|
|
225
240
|
if (this.isLock) return;
|
|
226
|
-
|
|
241
|
+
this.cacheLabelConfig = { ...this.labelConfig };
|
|
242
|
+
const copy = JSON.parse(JSON.stringify(this.labelOptions));
|
|
243
|
+
|
|
244
|
+
for (let key in copy) {
|
|
245
|
+
// let olbKey = this?.cacheLabelConfig[key]?.curKey
|
|
246
|
+
let typeId = copy[key]?.typeId || '';
|
|
247
|
+
Object.assign(copy[key], {
|
|
248
|
+
curKey: `${key}_${typeId}~${this.randomId()}`
|
|
249
|
+
});
|
|
250
|
+
}
|
|
251
|
+
|
|
227
252
|
this.$set(this, 'labelConfig', copy);
|
|
228
253
|
this.$nextTick(() => {
|
|
229
254
|
this.hanldeBackfill();
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
});
|
|
255
|
+
let defKey = undefined;
|
|
256
|
+
if (this.explicit && this.inited) {
|
|
257
|
+
defKey = this.labelAnchorKey;
|
|
234
258
|
}
|
|
235
|
-
this.setLabelDeafultClick(this.labelConfig);
|
|
259
|
+
this.setLabelDeafultClick(this.labelConfig, defKey);
|
|
236
260
|
this.inited = true;
|
|
237
261
|
});
|
|
238
262
|
},
|
|
@@ -246,10 +270,10 @@ export default create({
|
|
|
246
270
|
let itemList = labelConfig[k]?.itemList || [];
|
|
247
271
|
if (itemList.length) {
|
|
248
272
|
itemList.forEach(v => {
|
|
249
|
-
if(selectLabelId.includes(v.labelId)){
|
|
250
|
-
this.$set(v,'isSelect', true)
|
|
273
|
+
if (selectLabelId.includes(v.labelId)) {
|
|
274
|
+
this.$set(v, 'isSelect', true);
|
|
251
275
|
}
|
|
252
|
-
})
|
|
276
|
+
});
|
|
253
277
|
}
|
|
254
278
|
});
|
|
255
279
|
}
|
|
@@ -282,6 +306,7 @@ export default create({
|
|
|
282
306
|
*/
|
|
283
307
|
isSelect = selectList.findIndex(i => i.labelId == n.labelId) !== -1;
|
|
284
308
|
n.isSelect = isSelect; // 是否已选
|
|
309
|
+
this.$set(n, 'isSelect', isSelect);
|
|
285
310
|
/**
|
|
286
311
|
* typeName 按照分类处理
|
|
287
312
|
* 没有分类创建分类,有则添加
|
|
@@ -326,11 +351,19 @@ export default create({
|
|
|
326
351
|
}
|
|
327
352
|
},
|
|
328
353
|
// 默认选中第一个分类
|
|
329
|
-
setLabelDeafultClick(labelObj) {
|
|
354
|
+
setLabelDeafultClick(labelObj, deafulteKey) {
|
|
330
355
|
if (!labelObj) return;
|
|
331
356
|
let objKeys = Object.keys(labelObj) || [];
|
|
332
357
|
if (!objKeys.length) return;
|
|
333
358
|
let curKey = labelObj[objKeys[0]].curKey;
|
|
359
|
+
// 找到默认选中的tab
|
|
360
|
+
if (deafulteKey && typeof deafulteKey === 'string') {
|
|
361
|
+
let [q] = deafulteKey.split('~');
|
|
362
|
+
let f = objKeys.find(k => labelObj[k] && labelObj[k].curKey && labelObj[k].curKey.includes(q));
|
|
363
|
+
if (f) {
|
|
364
|
+
curKey = labelObj[f].curKey;
|
|
365
|
+
}
|
|
366
|
+
}
|
|
334
367
|
if (!curKey) return;
|
|
335
368
|
this.labelAnchorTabsOnChange(curKey);
|
|
336
369
|
},
|
|
@@ -463,7 +496,7 @@ export default create({
|
|
|
463
496
|
if (status) {
|
|
464
497
|
this.$message.success('添加成功!');
|
|
465
498
|
// this.handleEditLabel(this.editLabelItem, true);
|
|
466
|
-
this.$emit('updateLabelData')
|
|
499
|
+
this.$emit('updateLabelData');
|
|
467
500
|
v.showAdd = false;
|
|
468
501
|
}
|
|
469
502
|
},
|
|
@@ -473,8 +506,7 @@ export default create({
|
|
|
473
506
|
const multipleChoice = labelGroup.multipleChoice;
|
|
474
507
|
// let selectedList = this.labelSelectedEdit || [];
|
|
475
508
|
// 修复 标签多选 点击modal取消按钮 回显也会被选中
|
|
476
|
-
let selectedList =
|
|
477
|
-
(this.labelSelectedEdit?.length && vexutils.clone(this.labelSelectedEdit, true)) || [];
|
|
509
|
+
let selectedList = (this.labelSelectedEdit?.length && vexutils.clone(this.labelSelectedEdit, true)) || [];
|
|
478
510
|
if (v) {
|
|
479
511
|
if (selectedList.some(n => n.labelId == d.labelId)) {
|
|
480
512
|
return;
|
|
@@ -497,6 +529,12 @@ export default create({
|
|
|
497
529
|
}
|
|
498
530
|
}
|
|
499
531
|
this.labelSelectedEdit = [...selectedList];
|
|
532
|
+
this.$forceUpdate();
|
|
533
|
+
|
|
534
|
+
// 外显实时改变通知
|
|
535
|
+
if (this.explicit) {
|
|
536
|
+
this.$emit('explicitOnChange', [...this.labelSelectedEdit]);
|
|
537
|
+
}
|
|
500
538
|
},
|
|
501
539
|
|
|
502
540
|
async handleDelLabel(v) {
|
|
@@ -517,7 +555,7 @@ export default create({
|
|
|
517
555
|
this.$emit('valueOnChange', [...selectObj], this.item);
|
|
518
556
|
this.$emit('onChange', [...selectObj]);
|
|
519
557
|
}
|
|
520
|
-
this.$emit('updateLabelData')
|
|
558
|
+
this.$emit('updateLabelData');
|
|
521
559
|
// this.handleEditLabel(this.editLabelItem, true);
|
|
522
560
|
} else {
|
|
523
561
|
this.$message.warning('删除失败');
|
|
@@ -570,8 +608,38 @@ export default create({
|
|
|
570
608
|
* 重置label选项
|
|
571
609
|
*/
|
|
572
610
|
handleResetOptions() {
|
|
573
|
-
this.$set(this.item,
|
|
574
|
-
this.$set(this.item,
|
|
611
|
+
this.$set(this.item, 'labelObj', {});
|
|
612
|
+
this.$set(this.item, 'labelList', null);
|
|
613
|
+
},
|
|
614
|
+
|
|
615
|
+
/**
|
|
616
|
+
* 设置标签单个状态
|
|
617
|
+
*/
|
|
618
|
+
hanldeSetLabelItem(id, state) {
|
|
619
|
+
const { labelConfig } = this;
|
|
620
|
+
if (typeof labelConfig === 'object') {
|
|
621
|
+
let keys = Object.keys(labelConfig || {});
|
|
622
|
+
keys.forEach(k => {
|
|
623
|
+
let itemList = labelConfig[k]?.itemList || [];
|
|
624
|
+
if (itemList.length) {
|
|
625
|
+
itemList.forEach(v => {
|
|
626
|
+
if (id == v.labelId) {
|
|
627
|
+
this.$set(v, 'isSelect', state);
|
|
628
|
+
}
|
|
629
|
+
});
|
|
630
|
+
}
|
|
631
|
+
});
|
|
632
|
+
}
|
|
633
|
+
// 如果是删除
|
|
634
|
+
if (false === state) {
|
|
635
|
+
// 删除选中list
|
|
636
|
+
if (Array.isArray(this.labelSelectedEdit)) {
|
|
637
|
+
const fdIndex = this.labelSelectedEdit.findIndex(n => n.labelId == id);
|
|
638
|
+
if (fdIndex != -1) {
|
|
639
|
+
this.labelSelectedEdit.splice(fdIndex, 1);
|
|
640
|
+
}
|
|
641
|
+
}
|
|
642
|
+
}
|
|
575
643
|
}
|
|
576
644
|
}
|
|
577
645
|
});
|
|
@@ -592,6 +660,12 @@ export default create({
|
|
|
592
660
|
height: calc(100vh - 109px);
|
|
593
661
|
max-height: calc(100vh - 109px);
|
|
594
662
|
}
|
|
663
|
+
&.explicit-label-wrap {
|
|
664
|
+
width: 100%;
|
|
665
|
+
height: auto;
|
|
666
|
+
overflow: hidden;
|
|
667
|
+
overflow-y: auto;
|
|
668
|
+
}
|
|
595
669
|
/deep/.ant-tabs {
|
|
596
670
|
height: 100%;
|
|
597
671
|
.ant-tabs-nav-container {
|
|
@@ -4,17 +4,36 @@
|
|
|
4
4
|
<a-tag v-for="v in labelSelectedList" :key="v.labelId" :style="handleLabelColor(v, true)" :closable="item_is_edit" @close="closeTag(v)">
|
|
5
5
|
{{ v.labelName }}
|
|
6
6
|
</a-tag>
|
|
7
|
-
<span class="form-add-icon form-add-icon-label" @click="handleEditLabel" :class="{ disable: isLock }" v-show="item_is_edit">
|
|
7
|
+
<span v-if="!explicit" class="form-add-icon form-add-icon-label" @click="handleEditLabel" :class="{ disable: isLock }" v-show="item_is_edit">
|
|
8
8
|
<a-icon class="add-icon" type="plus-circle" />
|
|
9
9
|
新增
|
|
10
10
|
</span>
|
|
11
11
|
</div>
|
|
12
|
-
<div class="common-label" v-if="sourceType == 'form' && commonLabelList.length && item_is_edit">
|
|
12
|
+
<div class="common-label" v-if="sourceType == 'form' && commonLabelList.length && item_is_edit && !explicit">
|
|
13
13
|
<span>常用</span>
|
|
14
14
|
<a-checkable-tag v-for="(item, i) in commonLabelList" v-model="item.isSelect" @change="handleCommonLabelChange($event, item)" :key="i" :style="handleLabelColor(item)">
|
|
15
15
|
{{ item.labelName }}
|
|
16
16
|
</a-checkable-tag>
|
|
17
17
|
</div>
|
|
18
|
+
<div v-if="explicit">
|
|
19
|
+
<labelFormContent
|
|
20
|
+
:explicit="explicit"
|
|
21
|
+
v-bind="$attrs"
|
|
22
|
+
ref="labelFormContent"
|
|
23
|
+
:labelVisible="labelVisible"
|
|
24
|
+
:item="item"
|
|
25
|
+
:isEdit="isEdit"
|
|
26
|
+
:isLock="isLock"
|
|
27
|
+
:labelSelectedList="labelSelectedList"
|
|
28
|
+
:isChangeWindow="isChangeWindow"
|
|
29
|
+
:labelOptions="editLabelItem.labelObj"
|
|
30
|
+
:sourceType="sourceType"
|
|
31
|
+
@updateLabelData="updateLabelData"
|
|
32
|
+
@explicitOnChange="explicitOnChange"
|
|
33
|
+
></labelFormContent>
|
|
34
|
+
</div>
|
|
35
|
+
|
|
36
|
+
<!-- 弹窗 -->
|
|
18
37
|
<a-modal
|
|
19
38
|
class="label-form-modal-wrap modal-wrap standard-modal standard-modal-white"
|
|
20
39
|
v-model="labelVisible"
|
|
@@ -57,6 +76,7 @@
|
|
|
57
76
|
</div>
|
|
58
77
|
</template>
|
|
59
78
|
<labelFormContent
|
|
79
|
+
:explicit="explicit"
|
|
60
80
|
v-bind="$attrs"
|
|
61
81
|
ref="labelFormContent"
|
|
62
82
|
:labelVisible="labelVisible"
|
|
@@ -138,6 +158,16 @@ export default create({
|
|
|
138
158
|
type: Function,
|
|
139
159
|
default: () => Promise.resolve({ rows: [] })
|
|
140
160
|
},
|
|
161
|
+
|
|
162
|
+
explicit:{ // 标签选择外显
|
|
163
|
+
type: Boolean,
|
|
164
|
+
default: false
|
|
165
|
+
},
|
|
166
|
+
|
|
167
|
+
explicitHeiht:{
|
|
168
|
+
type: String,
|
|
169
|
+
default: ""
|
|
170
|
+
}
|
|
141
171
|
},
|
|
142
172
|
computed: {
|
|
143
173
|
item_is_edit() {
|
|
@@ -145,6 +175,12 @@ export default create({
|
|
|
145
175
|
return (item.is_edit == 1 || item.isShow) && !this.isDetail;
|
|
146
176
|
}
|
|
147
177
|
},
|
|
178
|
+
mounted() {
|
|
179
|
+
// 外显初始化
|
|
180
|
+
if(this.explicit){
|
|
181
|
+
this.handleEditLabel();
|
|
182
|
+
}
|
|
183
|
+
},
|
|
148
184
|
watch: {
|
|
149
185
|
selectedList: {
|
|
150
186
|
immediate: true,
|
|
@@ -188,6 +224,7 @@ export default create({
|
|
|
188
224
|
selectedList.splice(fdIndex, 1);
|
|
189
225
|
}
|
|
190
226
|
this.handleEmit(selectedList);
|
|
227
|
+
this.hanldeSetLabelItem(d.labelId, false);
|
|
191
228
|
},
|
|
192
229
|
handleCommonLabelChange(v, d) {
|
|
193
230
|
const selectedList = this.labelSelectedList || [];
|
|
@@ -216,10 +253,14 @@ export default create({
|
|
|
216
253
|
},
|
|
217
254
|
handleEditLabel() {
|
|
218
255
|
if (this.isLock) return;
|
|
219
|
-
this.
|
|
256
|
+
if(!this.explicit) {
|
|
257
|
+
this.labelVisible = true;
|
|
258
|
+
}
|
|
220
259
|
this.handleGetLabelData(this.item)
|
|
221
260
|
},
|
|
222
261
|
handleLabelCancel() {
|
|
262
|
+
if(this.explicit) return;
|
|
263
|
+
|
|
223
264
|
this.$refs.labelFormContent?.resetShowAdd();
|
|
224
265
|
this.editLabelItem.showAdd = false;
|
|
225
266
|
this.editLabelItem = {};
|
|
@@ -257,7 +298,7 @@ export default create({
|
|
|
257
298
|
|
|
258
299
|
async handleGetLabelData(v, update) {
|
|
259
300
|
const { rows, results } = await this.getLabelList(v);
|
|
260
|
-
console.log(rows, results)
|
|
301
|
+
// console.log(rows, results)
|
|
261
302
|
const labelList = rows || [];
|
|
262
303
|
const labelObj = {};
|
|
263
304
|
const cacheKey = `${v.val_key}_${v.name}`;
|
|
@@ -270,6 +311,7 @@ export default create({
|
|
|
270
311
|
* typeName 按照分类处理
|
|
271
312
|
* 没有分类创建分类,有则添加
|
|
272
313
|
*/
|
|
314
|
+
this.$set(n,'isSelect',false)
|
|
273
315
|
if (labelObj[n.typeName]) {
|
|
274
316
|
labelObj[n.typeName].itemList.push({ ...n });
|
|
275
317
|
} else {
|
|
@@ -359,6 +401,19 @@ export default create({
|
|
|
359
401
|
this.getCommonlabelsList(this.item.label_type);
|
|
360
402
|
});
|
|
361
403
|
}
|
|
404
|
+
},
|
|
405
|
+
|
|
406
|
+
// 标签外显发生变化
|
|
407
|
+
explicitOnChange(){
|
|
408
|
+
this.handleSaveLabel();
|
|
409
|
+
},
|
|
410
|
+
|
|
411
|
+
hanldeSetLabelItem(id, state){
|
|
412
|
+
if(this.explicit){
|
|
413
|
+
this.$nextTick(()=>{
|
|
414
|
+
this.$refs.labelFormContent?.hanldeSetLabelItem(id, state);
|
|
415
|
+
})
|
|
416
|
+
}
|
|
362
417
|
}
|
|
363
418
|
}
|
|
364
419
|
});
|
|
@@ -913,7 +913,7 @@ export default create({
|
|
|
913
913
|
onSaveSearch() {
|
|
914
914
|
this.$refs.quicksearch?.onSave();
|
|
915
915
|
},
|
|
916
|
-
onSave(obj, isOutFilter = false) {
|
|
916
|
+
onSave(obj, isOutFilter = false, config = {}) {
|
|
917
917
|
if (!this.validConObj(obj, this.searchFieldList, this.searchFieldLimit)) return false;
|
|
918
918
|
let copy = [];
|
|
919
919
|
if (this.outSearchFieldList.length) {
|
|
@@ -923,7 +923,7 @@ export default create({
|
|
|
923
923
|
if (this.outRelationQuickSearch.length) {
|
|
924
924
|
copyRelation = _.cloneDeep(this.outRelationQuickSearch, true);
|
|
925
925
|
}
|
|
926
|
-
this.$emit('onSave', obj, isOutFilter, copy, copyRelation);
|
|
926
|
+
this.$emit('onSave', obj, isOutFilter, copy, copyRelation, config);
|
|
927
927
|
this.modalVisible = false;
|
|
928
928
|
},
|
|
929
929
|
// 外部调用
|
|
@@ -1631,7 +1631,7 @@ export default create({
|
|
|
1631
1631
|
if(this.outSearchFieldList.some(v => !!v.explicitDefaultVal)){
|
|
1632
1632
|
this.$emit('outSearchInit');
|
|
1633
1633
|
if('reset' != config?.type){
|
|
1634
|
-
this.outFilterChange();
|
|
1634
|
+
this.outFilterChange({type:'outSearchInit'});
|
|
1635
1635
|
}
|
|
1636
1636
|
}
|
|
1637
1637
|
},
|
|
@@ -1669,9 +1669,9 @@ export default create({
|
|
|
1669
1669
|
this.rowFoldHideBtnList = hideBtn;
|
|
1670
1670
|
}
|
|
1671
1671
|
},
|
|
1672
|
-
outFilterChange() {
|
|
1672
|
+
outFilterChange(config= {}) {
|
|
1673
1673
|
let conObj = this.getConObjParams() || [];
|
|
1674
|
-
this.onSave(conObj, true);
|
|
1674
|
+
this.onSave(conObj, true, config);
|
|
1675
1675
|
},
|
|
1676
1676
|
visibleBtn(btn) {
|
|
1677
1677
|
if (!btn.isVisible) return false;
|
|
@@ -227,7 +227,7 @@ export default {
|
|
|
227
227
|
this.getWordbookData(item.setting.wordbook, obj).then(({ data }) => {
|
|
228
228
|
this.handleWordbookData(item, data, obj);
|
|
229
229
|
if('hasDefaultInit' == config?.type){
|
|
230
|
-
this.outFilterChange();
|
|
230
|
+
this.outFilterChange({type:'outSearchInit'});
|
|
231
231
|
}
|
|
232
232
|
});
|
|
233
233
|
}
|
|
@@ -301,8 +301,8 @@ export default {
|
|
|
301
301
|
this.outFilterChange();
|
|
302
302
|
}
|
|
303
303
|
},
|
|
304
|
-
outFilterChange() {
|
|
305
|
-
this.$emit("outFilterChange");
|
|
304
|
+
outFilterChange(config = {}) {
|
|
305
|
+
this.$emit("outFilterChange",config);
|
|
306
306
|
},
|
|
307
307
|
maxTagPlaceholder(item) {
|
|
308
308
|
if (Array.isArray(item.value)) {
|
|
@@ -383,7 +383,15 @@ export const outQuickSearchFn = {
|
|
|
383
383
|
arr.forEach(el => {
|
|
384
384
|
el.setting = typeof el.setting == "string" ? JSON.parse(el.setting) : el.setting;
|
|
385
385
|
const attr = el?.settingObj?.attr || "";
|
|
386
|
+
const isPreciseSearch = el?.settingObj?.isPreciseSearch || "";
|
|
386
387
|
const showSetting = el?.setting?.showSetting || []
|
|
388
|
+
/**
|
|
389
|
+
* NUMBER和TEXT属性字段
|
|
390
|
+
* 如果 开启了精准搜索,则传条件的时候 要传 EQ
|
|
391
|
+
* isPreciseSearch: 0/1
|
|
392
|
+
*/
|
|
393
|
+
let textCon = el.fieldType == "TEXT" && isPreciseSearch == 1 ? 'EQ' : 'CL';
|
|
394
|
+
|
|
387
395
|
// 映射优先级最高
|
|
388
396
|
if (showSetting?.length) {
|
|
389
397
|
let tvalue = []
|
|
@@ -484,7 +492,7 @@ export const outQuickSearchFn = {
|
|
|
484
492
|
this.handleSetLabelOptions(el.setting.labelType, el);
|
|
485
493
|
}
|
|
486
494
|
} else if ("PASSWORD" === attr) {
|
|
487
|
-
this.$set(el, "con", el.fieldType === "NUMBER" ? "EQ" :
|
|
495
|
+
this.$set(el, "con", el.fieldType === "NUMBER" ? "EQ" : textCon);
|
|
488
496
|
this.$set(el, "comAttr", "PASSWORD");
|
|
489
497
|
this.$set(el, "PASSWORDTYPE", true);
|
|
490
498
|
this.$set(el, "value", "");
|
|
@@ -495,7 +503,7 @@ export const outQuickSearchFn = {
|
|
|
495
503
|
this.$set(el, "com", "Text");
|
|
496
504
|
this.$set(el, "attr", "DURATION");
|
|
497
505
|
} else {
|
|
498
|
-
this.$set(el, "con",
|
|
506
|
+
this.$set(el, "con", textCon);
|
|
499
507
|
this.$set(el, "value", "");
|
|
500
508
|
this.$set(el, "com", "Text");
|
|
501
509
|
}
|
|
@@ -991,6 +991,8 @@ export default create({
|
|
|
991
991
|
handlerInitSearchItem(arr) {
|
|
992
992
|
if (!Array.isArray(arr)) return;
|
|
993
993
|
arr.forEach(el => {
|
|
994
|
+
const isPreciseSearch = el?.settingObj?.isPreciseSearch || "";
|
|
995
|
+
|
|
994
996
|
if (el.setting) {
|
|
995
997
|
// el.seting 可能是 string / object
|
|
996
998
|
el.setting = typeof el.setting == "string" ? JSON.parse(el.setting) : el.setting;
|
|
@@ -1085,8 +1087,14 @@ export default create({
|
|
|
1085
1087
|
});
|
|
1086
1088
|
}
|
|
1087
1089
|
} else if (el.fieldType == "TEXT") {
|
|
1088
|
-
|
|
1089
|
-
|
|
1090
|
+
/**
|
|
1091
|
+
* NUMBER和TEXT属性字段
|
|
1092
|
+
* 如果 开启了精准搜索,则传条件的时候 要传 EQ
|
|
1093
|
+
* isPreciseSearch: 0/1
|
|
1094
|
+
*/
|
|
1095
|
+
let con = isPreciseSearch == 1 ? 'EQ': 'CL';
|
|
1096
|
+
this.$set(el, "con", con);
|
|
1097
|
+
this.$set(el, con, "");
|
|
1090
1098
|
} else if (el.fieldType == "JSONB") {
|
|
1091
1099
|
this.$set(el, "con", "EQ");
|
|
1092
1100
|
this.$set(el, "EQ", "");
|