cnhis-design-vue 2.1.105 → 2.1.107
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/CHANGELOG.md +28 -14
- package/es/age/index.js +2 -2
- package/es/big-table/index.js +198 -193
- package/es/big-table/style.css +1 -1
- package/es/button/index.js +2 -2
- package/es/captcha/index.js +3 -3
- package/es/card-reader-sdk/index.js +1 -1
- package/es/checkbox/index.js +1 -1
- package/es/color-picker/index.js +1 -1
- package/es/direct/index.js +3146 -0
- package/es/direct/style.css +0 -0
- package/es/drag-layout/index.js +3 -3
- package/es/editor/index.js +1 -1
- package/es/ellipsis/index.js +1 -1
- package/es/fabric-chart/index.js +9 -9
- package/es/form-table/index.js +20 -20
- package/es/index/index.js +557 -543
- 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 +25 -25
- package/es/multi-chat-client/index.js +19 -19
- 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-container/index.js +1 -1
- package/es/scale-view/index.js +27 -27
- package/es/select/index.js +4 -4
- package/es/select-label/index.js +3 -3
- package/es/select-person/index.js +2 -2
- package/es/select-tag/index.js +4 -4
- package/es/shortcut-setter/index.js +2 -2
- package/es/table-filter/index.js +234 -225
- package/es/tag/index.js +1 -1
- package/es/verification-code/index.js +2 -2
- package/lib/cui.common.js +376 -371
- package/lib/cui.umd.js +376 -371
- package/lib/cui.umd.min.js +400 -0
- package/package.json +1 -1
- package/packages/big-table/src/components/edit-form/EditForm.vue +8 -3
- package/packages/big-table/src/components/edit-form/edit-component/mixins/search.js +214 -259
- package/packages/direct/index.js +3 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const SELECT_LIST = [
|
|
1
|
+
const SELECT_LIST = ['SEARCH_MORE', 'SEARCH', 'SEARCH_CASCADE', 'LEVEL_SEARCH_CASCADE'];
|
|
2
2
|
import vexutils from '@/utils/vexutils';
|
|
3
3
|
export default {
|
|
4
4
|
components: {
|
|
@@ -32,9 +32,9 @@ export default {
|
|
|
32
32
|
total: 1 // 总页数
|
|
33
33
|
},
|
|
34
34
|
|
|
35
|
-
optionsMaxWidth:
|
|
35
|
+
optionsMaxWidth: '100%',
|
|
36
36
|
|
|
37
|
-
cacheReqOptionsParams:
|
|
37
|
+
cacheReqOptionsParams: '',
|
|
38
38
|
|
|
39
39
|
hotSearchConfig: {
|
|
40
40
|
hotList: [],
|
|
@@ -63,28 +63,21 @@ export default {
|
|
|
63
63
|
},
|
|
64
64
|
methods: {
|
|
65
65
|
init() {
|
|
66
|
-
const {
|
|
67
|
-
validate = {},
|
|
68
|
-
html_type = undefined,
|
|
69
|
-
name,
|
|
70
|
-
default_val,
|
|
71
|
-
show_type = undefined,
|
|
72
|
-
guage_num = undefined
|
|
73
|
-
} = this.item;
|
|
66
|
+
const { validate = {}, html_type = undefined, name, default_val, show_type = undefined, guage_num = undefined } = this.item;
|
|
74
67
|
let targetStr = this.defaultValue[name] || default_val;
|
|
75
68
|
targetStr = this.handleSysParams(targetStr);
|
|
76
|
-
if (html_type ==
|
|
69
|
+
if (html_type == 'SEARCH') {
|
|
77
70
|
if (targetStr) {
|
|
78
71
|
this.$nextTick(() => {
|
|
79
72
|
console.log('handleRequestedOptions---6');
|
|
80
73
|
this.handleRequestedOptions(this.item, targetStr, true);
|
|
81
74
|
});
|
|
82
75
|
}
|
|
83
|
-
} else if (html_type ==
|
|
76
|
+
} else if (html_type == 'SEARCH_MORE') {
|
|
84
77
|
this.hanldeInitSearchMoreVal(this.item);
|
|
85
78
|
}
|
|
86
79
|
|
|
87
|
-
this.cacheReqOptionsParams =
|
|
80
|
+
this.cacheReqOptionsParams = '';
|
|
88
81
|
// this.getHotSearchConfig();
|
|
89
82
|
},
|
|
90
83
|
|
|
@@ -98,11 +91,11 @@ export default {
|
|
|
98
91
|
n = this.defaultValue[item.name] || item.default_val;
|
|
99
92
|
}
|
|
100
93
|
if (n) {
|
|
101
|
-
if (typeof n ===
|
|
94
|
+
if (typeof n === 'string') {
|
|
102
95
|
n = this.handleSysParams(n);
|
|
103
96
|
}
|
|
104
97
|
n = this.handleGetJsonStr(n) || {};
|
|
105
|
-
let NOWORDBOOK = item.wordbook.type !=
|
|
98
|
+
let NOWORDBOOK = item.wordbook.type != 'WORDBOOK';
|
|
106
99
|
if (n && n.objs && n.objs.length) {
|
|
107
100
|
let curUniqueLabel;
|
|
108
101
|
if (NOWORDBOOK) {
|
|
@@ -115,17 +108,16 @@ export default {
|
|
|
115
108
|
// `${v[item.wordbook.value_key]}-${v['myUniqueKey']}`
|
|
116
109
|
let l = [],
|
|
117
110
|
objs = [];
|
|
118
|
-
let objStr =
|
|
119
|
-
typeof n.objStr === "string" ? [...new Set(n.objStr.split(","))].join(",") : n.objStr;
|
|
111
|
+
let objStr = typeof n.objStr === 'string' ? [...new Set(n.objStr.split(','))].join(',') : n.objStr;
|
|
120
112
|
n.objs.forEach(f => {
|
|
121
|
-
let v = typeof f ===
|
|
122
|
-
v.myUniqueKey = v[curUniqueLabel] ||
|
|
123
|
-
v.myUniqueLabel = curUniqueLabel ||
|
|
113
|
+
let v = typeof f === 'object' ? JSON.parse(JSON.stringify(f)) : f;
|
|
114
|
+
v.myUniqueKey = v[curUniqueLabel] || '';
|
|
115
|
+
v.myUniqueLabel = curUniqueLabel || '';
|
|
124
116
|
defList.push({
|
|
125
|
-
key: `${v[item.wordbook.value_key]}-${v[curUniqueLabel] ||
|
|
117
|
+
key: `${v[item.wordbook.value_key]}-${v[curUniqueLabel] || ''}`,
|
|
126
118
|
label: this.hanlderGetSearchLabel(item, v)
|
|
127
119
|
});
|
|
128
|
-
let k = `${v[item.wordbook.value_key]}-${v[
|
|
120
|
+
let k = `${v[item.wordbook.value_key]}-${v['myUniqueKey']}`;
|
|
129
121
|
if (!l.includes(k)) {
|
|
130
122
|
defOptions.push({
|
|
131
123
|
...v
|
|
@@ -147,13 +139,13 @@ export default {
|
|
|
147
139
|
this.curOptions = [...defOptions];
|
|
148
140
|
this.selectedOptions = [...(defOptions || [])];
|
|
149
141
|
}
|
|
150
|
-
defList = vexutils.uniqArrObj(defList,
|
|
142
|
+
defList = vexutils.uniqArrObj(defList, 'key');
|
|
151
143
|
this.defList = defList;
|
|
152
|
-
this.$set(this.item,
|
|
153
|
-
this.$emit(
|
|
144
|
+
this.$set(this.item, 'useFormValue', defList);
|
|
145
|
+
this.$emit('valueOnChange', [...defOptions], this.item);
|
|
154
146
|
// console.log(this.defList, "---defList");
|
|
155
147
|
} else {
|
|
156
|
-
this.defaultValue[item.name] = {};
|
|
148
|
+
// this.defaultValue[item.name] = {};
|
|
157
149
|
}
|
|
158
150
|
} else {
|
|
159
151
|
// this.defaultValue[item.name] = {};
|
|
@@ -170,7 +162,7 @@ export default {
|
|
|
170
162
|
*/
|
|
171
163
|
getSearchDefParams(keyword, itemData = {}, other = {}) {
|
|
172
164
|
const { wordbook, html_type, autograph } = itemData;
|
|
173
|
-
const isCascade = html_type.includes(
|
|
165
|
+
const isCascade = html_type.includes('SEARCH_CASCADE');
|
|
174
166
|
const fieldKeys = wordbook.fieldKeys || wordbook.search_key;
|
|
175
167
|
let conObj = wordbook.conObj;
|
|
176
168
|
// if (Array.isArray(conObj)) {
|
|
@@ -190,13 +182,13 @@ export default {
|
|
|
190
182
|
const params = {
|
|
191
183
|
wordbookId: wordbook.id,
|
|
192
184
|
autograph: autograph,
|
|
193
|
-
wordbookType: wordbook.type ||
|
|
185
|
+
wordbookType: wordbook.type || 'WORDBOOK',
|
|
194
186
|
preConObj: wordbook.preConObj ? JSON.stringify(wordbook.preConObj) : undefined,
|
|
195
187
|
conObj: conObj ? JSON.stringify(conObj) : undefined,
|
|
196
188
|
preSqlExpression: wordbook.preSqlExpression || undefined,
|
|
197
189
|
sqlExpression: wordbook.sqlExpression || undefined,
|
|
198
190
|
fieldKeys: fieldKeys ? JSON.stringify(fieldKeys) : undefined,
|
|
199
|
-
keyword: keyword ||
|
|
191
|
+
keyword: keyword || '',
|
|
200
192
|
// pageSize: isCascade ? 10000 : 20,
|
|
201
193
|
page: 1,
|
|
202
194
|
...(isCascade ? extraParams : {}),
|
|
@@ -219,7 +211,7 @@ export default {
|
|
|
219
211
|
*/
|
|
220
212
|
getCascadeParams(params, itemData, otherConfig, defFalg) {
|
|
221
213
|
const { wordbook, html_type } = itemData;
|
|
222
|
-
if (html_type.includes(
|
|
214
|
+
if (html_type.includes('LEVEL_SEARCH_CASCADE')) {
|
|
223
215
|
let pageObj = undefined;
|
|
224
216
|
if (Object.keys(otherConfig || {}).length > 0) {
|
|
225
217
|
let { loadDataPrimary_key, levelNum = 1, pageSetting } = otherConfig || {};
|
|
@@ -231,23 +223,21 @@ export default {
|
|
|
231
223
|
let curLevel = levelSetting[this.levelNum - 1];
|
|
232
224
|
|
|
233
225
|
if ((defFalg || !this.loadDataPrimary_key) && wordbook.conObjFirstLevel) {
|
|
234
|
-
params.conObj = wordbook.conObjFirstLevel
|
|
235
|
-
? JSON.stringify(wordbook.conObjFirstLevel)
|
|
236
|
-
: undefined;
|
|
226
|
+
params.conObj = wordbook.conObjFirstLevel ? JSON.stringify(wordbook.conObjFirstLevel) : undefined;
|
|
237
227
|
params.sqlExperssions = wordbook.sqlExpressionFirstLevel || undefined;
|
|
238
228
|
} else {
|
|
239
229
|
let conObjList = [];
|
|
240
230
|
if (this.loadDataPrimary_key) {
|
|
241
231
|
conObjList.push({
|
|
242
232
|
field_key: wordbook.level_key,
|
|
243
|
-
con:
|
|
233
|
+
con: 'EQ',
|
|
244
234
|
value: this.loadDataPrimary_key
|
|
245
235
|
});
|
|
246
236
|
}
|
|
247
|
-
if (curLevel && html_type ===
|
|
237
|
+
if (curLevel && html_type === 'LEVEL_SEARCH_CASCADE2') {
|
|
248
238
|
conObjList.push({
|
|
249
239
|
field_key: wordbook.grade_key,
|
|
250
|
-
con:
|
|
240
|
+
con: 'EQ',
|
|
251
241
|
value: curLevel.level
|
|
252
242
|
});
|
|
253
243
|
}
|
|
@@ -255,7 +245,7 @@ export default {
|
|
|
255
245
|
Object.assign(params, pageObj);
|
|
256
246
|
}
|
|
257
247
|
params.conObj = JSON.stringify(conObjList);
|
|
258
|
-
params.sqlExperssions =
|
|
248
|
+
params.sqlExperssions = '';
|
|
259
249
|
}
|
|
260
250
|
}
|
|
261
251
|
|
|
@@ -273,9 +263,9 @@ export default {
|
|
|
273
263
|
const { wordbook } = itemData;
|
|
274
264
|
return rows.reduce((acc, cur) => {
|
|
275
265
|
cur.setting = wordbook.setting;
|
|
276
|
-
cur.showLabel =
|
|
277
|
-
cur.myUniqueKey = cur[myUniqueKey] ||
|
|
278
|
-
cur.myUniqueLabel = reqUniqueKey ||
|
|
266
|
+
cur.showLabel = '';
|
|
267
|
+
cur.myUniqueKey = cur[myUniqueKey] || '';
|
|
268
|
+
cur.myUniqueLabel = reqUniqueKey || '';
|
|
279
269
|
if (wordbook.render_key && wordbook.render_key.length > 0) {
|
|
280
270
|
wordbook.render_key.forEach(ren => {
|
|
281
271
|
cur.showLabel += `≌${this.formatField(cur[ren])}`;
|
|
@@ -284,14 +274,11 @@ export default {
|
|
|
284
274
|
} else {
|
|
285
275
|
cur.showLabel = cur[wordbook.value_key];
|
|
286
276
|
}
|
|
287
|
-
if (typeof cur ===
|
|
277
|
+
if (typeof cur === 'object') {
|
|
288
278
|
Object.keys(cur || {}).forEach(t => (cur[t] = this.formatFieldValue(cur[t])));
|
|
289
279
|
}
|
|
290
280
|
return acc.some(v => {
|
|
291
|
-
return
|
|
292
|
-
`${v[wordbook.value_key]}-${v[myUniqueKey]}` ==
|
|
293
|
-
`${cur[wordbook.value_key]}-${cur[myUniqueKey]}`
|
|
294
|
-
);
|
|
281
|
+
return `${v[wordbook.value_key]}-${v[myUniqueKey]}` == `${cur[wordbook.value_key]}-${cur[myUniqueKey]}`;
|
|
295
282
|
})
|
|
296
283
|
? acc
|
|
297
284
|
: [...acc, cur];
|
|
@@ -308,25 +295,25 @@ export default {
|
|
|
308
295
|
handleGetSearchDefVal(defFalg, rowData, itemData, uniqueConfig = {}) {
|
|
309
296
|
const { is_plugin_set, keyword } = uniqueConfig;
|
|
310
297
|
const { wordbook, html_type, val_key, default_val, name } = itemData;
|
|
311
|
-
let defVal = this.defaultValue[name] || this.handleSysParams(default_val ||
|
|
298
|
+
let defVal = this.defaultValue[name] || this.handleSysParams(default_val || '');
|
|
312
299
|
if (is_plugin_set) {
|
|
313
300
|
defVal = keyword;
|
|
314
301
|
}
|
|
315
302
|
if (defFalg && rowData.length) {
|
|
316
303
|
let defItem = rowData[0];
|
|
317
|
-
let itemKkey = `${defItem[wordbook.value_key]}>>>${defItem[
|
|
318
|
-
if (html_type ==
|
|
304
|
+
let itemKkey = `${defItem[wordbook.value_key]}>>>${defItem['myUniqueKey']}`;
|
|
305
|
+
if (html_type == 'SEARCH') {
|
|
319
306
|
const f = rowData.find(r => r[wordbook.value_key] == defVal);
|
|
320
307
|
if (f) {
|
|
321
308
|
defItem = f;
|
|
322
|
-
itemKkey = `${f[wordbook.value_key]}>>>${f[
|
|
323
|
-
this.handleSearchSelect(itemKkey, itemData,
|
|
324
|
-
eventType: defFalg ?
|
|
309
|
+
itemKkey = `${f[wordbook.value_key]}>>>${f['myUniqueKey']}`;
|
|
310
|
+
this.handleSearchSelect(itemKkey, itemData, '', {
|
|
311
|
+
eventType: defFalg ? 'init' : 'trigger'
|
|
325
312
|
});
|
|
326
313
|
}
|
|
327
314
|
if (defVal != defItem[wordbook.value_key]) {
|
|
328
315
|
if (f) {
|
|
329
|
-
itemKkey = `${f[wordbook.value_key]}>>>${f[
|
|
316
|
+
itemKkey = `${f[wordbook.value_key]}>>>${f['myUniqueKey']}`;
|
|
330
317
|
} else {
|
|
331
318
|
itemKkey = defVal;
|
|
332
319
|
}
|
|
@@ -339,16 +326,16 @@ export default {
|
|
|
339
326
|
itemData
|
|
340
327
|
);
|
|
341
328
|
} else {
|
|
342
|
-
this.$set(itemData,
|
|
329
|
+
this.$set(itemData, 'useFormValue', undefined);
|
|
343
330
|
}
|
|
344
|
-
} else if (html_type ==
|
|
345
|
-
itemKkey.replace(
|
|
331
|
+
} else if (html_type == 'SEARCH_MORE') {
|
|
332
|
+
itemKkey.replace('>>>', '-');
|
|
346
333
|
this.hanldeSetFieldsValue(
|
|
347
334
|
{
|
|
348
335
|
[itemData.val_key]: [
|
|
349
336
|
{
|
|
350
337
|
key: itemKkey,
|
|
351
|
-
label: defItem[
|
|
338
|
+
label: defItem['showLabel'] || defItem[wordbook.value_key]
|
|
352
339
|
}
|
|
353
340
|
]
|
|
354
341
|
},
|
|
@@ -357,13 +344,13 @@ export default {
|
|
|
357
344
|
this.multipleSelect(
|
|
358
345
|
{
|
|
359
346
|
key: itemKkey,
|
|
360
|
-
label: defItem[
|
|
347
|
+
label: defItem['showLabel'] || defItem[wordbook.value_key]
|
|
361
348
|
},
|
|
362
349
|
itemData
|
|
363
350
|
);
|
|
364
351
|
}
|
|
365
352
|
} else if (defFalg) {
|
|
366
|
-
if (html_type ==
|
|
353
|
+
if (html_type == 'SEARCH') {
|
|
367
354
|
// bugfix:14178
|
|
368
355
|
this.hanldeSetFieldsValue(
|
|
369
356
|
{
|
|
@@ -376,12 +363,7 @@ export default {
|
|
|
376
363
|
},
|
|
377
364
|
|
|
378
365
|
// 请求下拉框的数据
|
|
379
|
-
async handleRequestedOptions(
|
|
380
|
-
itemData = {},
|
|
381
|
-
keyword = undefined,
|
|
382
|
-
defFalg = false,
|
|
383
|
-
otherConfig = {}
|
|
384
|
-
) {
|
|
366
|
+
async handleRequestedOptions(itemData = {}, keyword = undefined, defFalg = false, otherConfig = {}) {
|
|
385
367
|
console.log('handleRequestedOptions---1');
|
|
386
368
|
const closeLoading = () => {
|
|
387
369
|
this.fetching = false;
|
|
@@ -393,23 +375,17 @@ export default {
|
|
|
393
375
|
if (Object.keys(wordbook || {}).length === 0) {
|
|
394
376
|
return;
|
|
395
377
|
}
|
|
396
|
-
if (keyword && typeof keyword ===
|
|
378
|
+
if (keyword && typeof keyword === 'string') keyword = keyword.replace(/^\s+|\s+$/, '');
|
|
397
379
|
// LEVEL_SEARCH_CASCADE SEARCH_CASCADE
|
|
398
|
-
const isCascade = html_type.includes(
|
|
399
|
-
const NOWORDBOOK = wordbook.type !=
|
|
400
|
-
const ISDICTIONARY = wordbook.type ===
|
|
380
|
+
const isCascade = html_type.includes('SEARCH_CASCADE');
|
|
381
|
+
const NOWORDBOOK = wordbook.type != 'WORDBOOK';
|
|
382
|
+
const ISDICTIONARY = wordbook.type === 'DICTIONARY';
|
|
401
383
|
// 请求参数
|
|
402
384
|
let params = this.getSearchDefParams(keyword, itemData, otherConfig);
|
|
403
385
|
|
|
404
386
|
let formData = this.getFormValue();
|
|
405
387
|
|
|
406
|
-
let queryArr = [
|
|
407
|
-
"SEARCH",
|
|
408
|
-
"SEARCH_MORE",
|
|
409
|
-
"SEARCH_CASCADE",
|
|
410
|
-
"LEVEL_SEARCH_CASCADE",
|
|
411
|
-
"LEVEL_SEARCH_CASCADE2"
|
|
412
|
-
];
|
|
388
|
+
let queryArr = ['SEARCH', 'SEARCH_MORE', 'SEARCH_CASCADE', 'LEVEL_SEARCH_CASCADE', 'LEVEL_SEARCH_CASCADE2'];
|
|
413
389
|
if (queryArr.includes(html_type) && queryParamsType == 1) {
|
|
414
390
|
let tempFormData = this.handleQueryParams(formData, queryParams);
|
|
415
391
|
Object.assign(params, tempFormData);
|
|
@@ -417,7 +393,7 @@ export default {
|
|
|
417
393
|
Object.assign(params, formData);
|
|
418
394
|
}
|
|
419
395
|
// 257 云his需求新增通用字典 后端欧阳 产品晶晶
|
|
420
|
-
const arr = [
|
|
396
|
+
const arr = ['SEARCH', 'SEARCH_MORE'];
|
|
421
397
|
if (arr.includes(html_type) && ISDICTIONARY) {
|
|
422
398
|
Object.assign(params, {
|
|
423
399
|
dictType: JSON.stringify(wordbook.dictType)
|
|
@@ -425,118 +401,112 @@ export default {
|
|
|
425
401
|
}
|
|
426
402
|
this.cacheReqOptionsParams = JSON.stringify(params);
|
|
427
403
|
let reqUniqueKey;
|
|
428
|
-
let myUniqueKey =
|
|
404
|
+
let myUniqueKey = 'theUniqueKey';
|
|
429
405
|
if (NOWORDBOOK) {
|
|
430
406
|
reqUniqueKey = await this.handleRequestedUniqueKey(wordbook.id);
|
|
431
407
|
myUniqueKey = reqUniqueKey || undefined;
|
|
432
408
|
}
|
|
433
409
|
// 多选检索框避免重复选中 "theUniqueKey" 这个值,每次请求返回来都不一样。
|
|
434
|
-
if (html_type ==
|
|
410
|
+
if (html_type == 'SEARCH_MORE' && myUniqueKey == 'theUniqueKey') {
|
|
435
411
|
myUniqueKey = undefined;
|
|
436
412
|
}
|
|
437
|
-
this.formType[val_key].wordbook &&
|
|
438
|
-
(this.formType[val_key].wordbook.myUniqueLabel = myUniqueKey);
|
|
413
|
+
this.formType[val_key].wordbook && (this.formType[val_key].wordbook.myUniqueLabel = myUniqueKey);
|
|
439
414
|
this.fetching = true;
|
|
440
|
-
if (!html_type.includes(
|
|
415
|
+
if (!html_type.includes('SEARCH_CASCADE')) {
|
|
441
416
|
this.cancelOptionsRequest && this.cancelOptionsRequest();
|
|
442
417
|
}
|
|
443
418
|
// this.optionsRequestSource = axios.CancelToken.source();
|
|
444
419
|
if (keyword && !defFalg) {
|
|
445
|
-
let key = typeof keyword ===
|
|
420
|
+
let key = typeof keyword === 'string' ? keyword.trim() : keyword;
|
|
446
421
|
key && this.handleSearchTracher(itemData, { keyword: key });
|
|
447
422
|
}
|
|
448
423
|
Object.assign(params, { asyncCount: 1 });
|
|
449
|
-
let handleEditFormGetWordbookData = this.editFormApiConfig?.handleEditFormGetWordbookData
|
|
424
|
+
let handleEditFormGetWordbookData = this.editFormApiConfig?.handleEditFormGetWordbookData;
|
|
450
425
|
if (!handleEditFormGetWordbookData || typeof handleEditFormGetWordbookData !== 'function') {
|
|
451
|
-
handleEditFormGetWordbookData = this.getWordbookDataRequest
|
|
426
|
+
handleEditFormGetWordbookData = this.getWordbookDataRequest;
|
|
452
427
|
}
|
|
453
|
-
return handleEditFormGetWordbookData(params, { optionsRequestSource: this.optionsRequestSource })
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
closeLoading();
|
|
460
|
-
if (!data) return [];
|
|
461
|
-
this.searchAddObj[`${itemData.val_key}_${itemData.name}`] = true;
|
|
462
|
-
let { rows, fieldList, page, total } = data.map;
|
|
463
|
-
this.searchPageConfig = Object.assign(this.searchPageConfig, {
|
|
464
|
-
page,
|
|
465
|
-
total,
|
|
466
|
-
isRequest: true,
|
|
467
|
-
keyword
|
|
468
|
-
});
|
|
469
|
-
let rowData = [];
|
|
470
|
-
if (isCascade) {
|
|
471
|
-
wordbook.myUniqueLabel = myUniqueKey;
|
|
472
|
-
wordbook.myUniqueKey = myUniqueKey;
|
|
473
|
-
wordbook.isLoadData = html_type == "LEVEL_SEARCH_CASCADE";
|
|
474
|
-
if (wordbook.isLoadData) {
|
|
475
|
-
this.levelNum = defFalg ? 1 : this.levelNum;
|
|
428
|
+
return handleEditFormGetWordbookData(params, { optionsRequestSource: this.optionsRequestSource })
|
|
429
|
+
.then(data => {
|
|
430
|
+
this.optionsRequestSource = null;
|
|
431
|
+
this.fetching = false;
|
|
432
|
+
if (otherConfig.page) {
|
|
433
|
+
this.handleSearchScrollTop(itemData);
|
|
476
434
|
}
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
}
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
reqUniqueKey: reqUniqueKey
|
|
435
|
+
closeLoading();
|
|
436
|
+
if (!data) return [];
|
|
437
|
+
this.searchAddObj[`${itemData.val_key}_${itemData.name}`] = true;
|
|
438
|
+
let { rows, fieldList, page, total } = data.map;
|
|
439
|
+
this.searchPageConfig = Object.assign(this.searchPageConfig, {
|
|
440
|
+
page,
|
|
441
|
+
total,
|
|
442
|
+
isRequest: true,
|
|
443
|
+
keyword
|
|
487
444
|
});
|
|
445
|
+
let rowData = [];
|
|
446
|
+
if (isCascade) {
|
|
447
|
+
wordbook.myUniqueLabel = myUniqueKey;
|
|
448
|
+
wordbook.myUniqueKey = myUniqueKey;
|
|
449
|
+
wordbook.isLoadData = html_type == 'LEVEL_SEARCH_CASCADE';
|
|
450
|
+
if (wordbook.isLoadData) {
|
|
451
|
+
this.levelNum = defFalg ? 1 : this.levelNum;
|
|
452
|
+
}
|
|
453
|
+
rows = this.hanldeRemoveDuplicates(rows, {
|
|
454
|
+
key: wordbook.value_key
|
|
455
|
+
});
|
|
456
|
+
this.handleFormCascade(rows, wordbook);
|
|
457
|
+
rowData = rows;
|
|
458
|
+
} else {
|
|
459
|
+
// 去重
|
|
460
|
+
rowData = this.handleRowUnique(rows, itemData, {
|
|
461
|
+
myUniqueKey: myUniqueKey,
|
|
462
|
+
reqUniqueKey: reqUniqueKey
|
|
463
|
+
});
|
|
488
464
|
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
465
|
+
// 获取显示字段title
|
|
466
|
+
if (rowData.length > 0 && wordbook.render_key && wordbook.render_key.length > 1) {
|
|
467
|
+
rowData.unshift(
|
|
468
|
+
Object.assign(
|
|
469
|
+
{},
|
|
470
|
+
{
|
|
471
|
+
showLabel: this.getTitleHeader(fieldList, wordbook.render_key),
|
|
472
|
+
myUniqueKey: Math.random()
|
|
473
|
+
}
|
|
474
|
+
)
|
|
475
|
+
);
|
|
476
|
+
}
|
|
500
477
|
}
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
if (searchList.includes(html_type)) {
|
|
509
|
-
if (html_type != "LEVEL_SEARCH_CASCADE") {
|
|
510
|
-
this.curOptions = rowData;
|
|
511
|
-
} else {
|
|
512
|
-
(defFalg || !this.loadDataPrimary_key) && (this.curOptions = rowData);
|
|
478
|
+
const searchList = ['SEARCH', 'SEARCH_CASCADE', 'SEARCH_MORE', 'LEVEL_SEARCH_CASCADE'];
|
|
479
|
+
if (searchList.includes(html_type)) {
|
|
480
|
+
if (html_type != 'LEVEL_SEARCH_CASCADE') {
|
|
481
|
+
this.curOptions = rowData;
|
|
482
|
+
} else {
|
|
483
|
+
(defFalg || !this.loadDataPrimary_key) && (this.curOptions = rowData);
|
|
484
|
+
}
|
|
513
485
|
}
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
...otherConfig
|
|
521
|
-
});
|
|
522
|
-
|
|
523
|
-
// 自由输入
|
|
524
|
-
if (!defFalg && html_type == "SEARCH" && keyword && free_entry == "1") {
|
|
525
|
-
this.handleFreeEntry({
|
|
526
|
-
rowData,
|
|
527
|
-
keyword,
|
|
528
|
-
wordbook,
|
|
529
|
-
fieldList,
|
|
530
|
-
myUniqueKey
|
|
486
|
+
// 默认值处理
|
|
487
|
+
this.handleGetSearchDefVal(defFalg, rowData, itemData, {
|
|
488
|
+
myUniqueKey: myUniqueKey,
|
|
489
|
+
reqUniqueKey: reqUniqueKey,
|
|
490
|
+
keyword: keyword,
|
|
491
|
+
...otherConfig
|
|
531
492
|
});
|
|
532
|
-
}
|
|
533
493
|
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
494
|
+
// 自由输入
|
|
495
|
+
if (!defFalg && html_type == 'SEARCH' && keyword && free_entry == '1') {
|
|
496
|
+
this.handleFreeEntry({
|
|
497
|
+
rowData,
|
|
498
|
+
keyword,
|
|
499
|
+
wordbook,
|
|
500
|
+
fieldList,
|
|
501
|
+
myUniqueKey
|
|
502
|
+
});
|
|
503
|
+
}
|
|
539
504
|
|
|
505
|
+
return rowData;
|
|
506
|
+
})
|
|
507
|
+
.catch(() => {
|
|
508
|
+
closeLoading();
|
|
509
|
+
});
|
|
540
510
|
} catch (error) {
|
|
541
511
|
closeLoading();
|
|
542
512
|
console.log(error);
|
|
@@ -553,7 +523,7 @@ export default {
|
|
|
553
523
|
})
|
|
554
524
|
.then(({ data }) => {
|
|
555
525
|
optionsRequestSource = null;
|
|
556
|
-
if (data.result ===
|
|
526
|
+
if (data.result === 'SUCCESS') return resolve(data);
|
|
557
527
|
resolve(null);
|
|
558
528
|
})
|
|
559
529
|
.catch(err => {
|
|
@@ -591,35 +561,35 @@ export default {
|
|
|
591
561
|
formatField(value) {
|
|
592
562
|
let res = value;
|
|
593
563
|
try {
|
|
594
|
-
if (res && typeof res ==
|
|
564
|
+
if (res && typeof res == 'string' && res.startsWith('###')) {
|
|
595
565
|
res = res.slice(3);
|
|
596
566
|
res = JSON.parse(res);
|
|
597
567
|
res = res.change_text;
|
|
598
568
|
}
|
|
599
|
-
return res ||
|
|
569
|
+
return res || '';
|
|
600
570
|
} catch (error) {
|
|
601
|
-
return
|
|
571
|
+
return '';
|
|
602
572
|
}
|
|
603
573
|
},
|
|
604
574
|
|
|
605
575
|
/* 解析下拉选择接口返回字段 直接改变原有的 */
|
|
606
576
|
formatFieldValue(value) {
|
|
607
577
|
try {
|
|
608
|
-
if (value && typeof value ==
|
|
578
|
+
if (value && typeof value == 'string' && value.startsWith('###')) {
|
|
609
579
|
value = value.slice(3);
|
|
610
580
|
value = JSON.parse(value);
|
|
611
581
|
value = value.value;
|
|
612
582
|
}
|
|
613
|
-
return value ||
|
|
583
|
+
return value || '';
|
|
614
584
|
} catch (error) {
|
|
615
585
|
console.log(error);
|
|
616
|
-
return
|
|
586
|
+
return '';
|
|
617
587
|
}
|
|
618
588
|
},
|
|
619
589
|
|
|
620
590
|
// 下拉搜索框获取字段title
|
|
621
591
|
getTitleHeader(fieldList, renderKey) {
|
|
622
|
-
let titleHeader =
|
|
592
|
+
let titleHeader = '';
|
|
623
593
|
let renderKeyArr = [];
|
|
624
594
|
if (Array.isArray(renderKey)) {
|
|
625
595
|
renderKeyArr = [...renderKey];
|
|
@@ -651,7 +621,7 @@ export default {
|
|
|
651
621
|
} else {
|
|
652
622
|
let curTime = +new Date();
|
|
653
623
|
if (curTime - starTiem > 5000) {
|
|
654
|
-
reject(
|
|
624
|
+
reject('获取UniqueKe 异常!!');
|
|
655
625
|
return;
|
|
656
626
|
}
|
|
657
627
|
getUniqueKey(resolve, reject);
|
|
@@ -673,9 +643,9 @@ export default {
|
|
|
673
643
|
handleMultipleSearch(val, itemData) {
|
|
674
644
|
clearTimeout(this.timeout);
|
|
675
645
|
const { wordbook = {}, html_type } = itemData;
|
|
676
|
-
const ISDICTIONARY = wordbook.type ===
|
|
646
|
+
const ISDICTIONARY = wordbook.type === 'DICTIONARY';
|
|
677
647
|
// 257 云his需求新增通用字典 后端欧阳 产品晶晶
|
|
678
|
-
const arr = [
|
|
648
|
+
const arr = ['SEARCH', 'SEARCH_MORE'];
|
|
679
649
|
if (arr.includes(html_type) && ISDICTIONARY && val) {
|
|
680
650
|
this.dealDictionatySearch(val);
|
|
681
651
|
return;
|
|
@@ -691,15 +661,15 @@ export default {
|
|
|
691
661
|
multipleSelect(e, item) {
|
|
692
662
|
const valKey = item.wordbook.value_key;
|
|
693
663
|
const selectList = this.selectedOptions || [];
|
|
694
|
-
const isSelect = selectList.some(v => `${v[valKey]}-${v[
|
|
664
|
+
const isSelect = selectList.some(v => `${v[valKey]}-${v['myUniqueKey']}` == e.key);
|
|
695
665
|
let selectItem = {};
|
|
696
666
|
if (!isSelect) {
|
|
697
|
-
const fdItem = this.curOptions.find(v => `${v[valKey]}-${v[
|
|
667
|
+
const fdItem = this.curOptions.find(v => `${v[valKey]}-${v['myUniqueKey']}` == e.key);
|
|
698
668
|
selectList.push({ ...fdItem });
|
|
699
669
|
selectItem = fdItem;
|
|
700
670
|
}
|
|
701
671
|
this.selectedOptions = [...selectList];
|
|
702
|
-
this.$emit(
|
|
672
|
+
this.$emit('valueOnChange', [...selectList], item);
|
|
703
673
|
this.hanlderSendSelectLog(item, selectItem);
|
|
704
674
|
this.handlerInputBlur(item);
|
|
705
675
|
},
|
|
@@ -707,25 +677,25 @@ export default {
|
|
|
707
677
|
multipleDeselect(e, item) {
|
|
708
678
|
const valKey = item.wordbook.value_key;
|
|
709
679
|
const selectList = this.selectedOptions || [];
|
|
710
|
-
const fnIndex = selectList.findIndex(v => `${v[valKey]}-${v[
|
|
680
|
+
const fnIndex = selectList.findIndex(v => `${v[valKey]}-${v['myUniqueKey']}` == e.key);
|
|
711
681
|
if (fnIndex != -1) {
|
|
712
682
|
selectList.splice(fnIndex, 1);
|
|
713
683
|
}
|
|
714
684
|
this.selectedOptions = [...selectList];
|
|
715
|
-
this.$emit(
|
|
685
|
+
this.$emit('valueOnChange', [...selectList], item);
|
|
716
686
|
},
|
|
717
687
|
|
|
718
688
|
// 搜索框没数据新增
|
|
719
689
|
handlerAddOptions(data, item) {
|
|
720
690
|
this.curAddBtnItem = item;
|
|
721
|
-
this.$emit(
|
|
691
|
+
this.$emit('handlerAddOptions', { data });
|
|
722
692
|
},
|
|
723
693
|
|
|
724
694
|
searchMoreOnChange(value, item) {
|
|
725
695
|
// 标识用户有修改该值。
|
|
726
|
-
this.formType[item.val_key].isOnchange =
|
|
696
|
+
this.formType[item.val_key].isOnchange = '00';
|
|
727
697
|
if (!value || value.length === 0) {
|
|
728
|
-
this.$emit(
|
|
698
|
+
this.$emit('valueOnChange', [], item);
|
|
729
699
|
}
|
|
730
700
|
|
|
731
701
|
// 通讯事件
|
|
@@ -735,7 +705,7 @@ export default {
|
|
|
735
705
|
// 处理级联数据
|
|
736
706
|
handleFormCascade(list = [], v = {}, level = 1) {
|
|
737
707
|
list.forEach(item => {
|
|
738
|
-
item.myLabel = this.hanldeGetCascadelabel(v.render_key, item) || item[v[
|
|
708
|
+
item.myLabel = this.hanldeGetCascadelabel(v.render_key, item) || item[v['value_key']];
|
|
739
709
|
item.myUniqueKey = item[v.myUniqueKey];
|
|
740
710
|
item.myUniqueLabel = v.myUniqueKey;
|
|
741
711
|
if (v.isLoadData) {
|
|
@@ -757,9 +727,9 @@ export default {
|
|
|
757
727
|
v.forEach(i => {
|
|
758
728
|
l.push(k[i]);
|
|
759
729
|
});
|
|
760
|
-
return l.join(
|
|
730
|
+
return l.join('_');
|
|
761
731
|
}
|
|
762
|
-
return
|
|
732
|
+
return '';
|
|
763
733
|
},
|
|
764
734
|
|
|
765
735
|
handleCascaderChange(option, item) {
|
|
@@ -783,11 +753,11 @@ export default {
|
|
|
783
753
|
item.selectedOptions = selectedOptions;
|
|
784
754
|
// 缓存方便提交表单处理
|
|
785
755
|
this.selectedOptions = [...selectedOptions];
|
|
786
|
-
this.$emit(
|
|
787
|
-
this.formType[item.val_key].isOnchange =
|
|
756
|
+
this.$emit('valueOnChange', [...selectedOptions], item);
|
|
757
|
+
this.formType[item.val_key].isOnchange = '00';
|
|
788
758
|
if (value.length == 0 && selectedOptions.length == 0) {
|
|
789
|
-
this.defaultValue[item.name] =
|
|
790
|
-
this.formType[item.val_key].default_val =
|
|
759
|
+
this.defaultValue[item.name] = '';
|
|
760
|
+
this.formType[item.val_key].default_val = '';
|
|
791
761
|
this.hideHotSearch = true;
|
|
792
762
|
}
|
|
793
763
|
this.Choose_to_complete = true;
|
|
@@ -796,9 +766,7 @@ export default {
|
|
|
796
766
|
},
|
|
797
767
|
|
|
798
768
|
handleCascaderFilter(inputValue, path) {
|
|
799
|
-
return path.some(
|
|
800
|
-
option => option.myLabel.toLowerCase().indexOf(inputValue.toLowerCase()) > -1
|
|
801
|
-
);
|
|
769
|
+
return path.some(option => option.myLabel.toLowerCase().indexOf(inputValue.toLowerCase()) > -1);
|
|
802
770
|
},
|
|
803
771
|
|
|
804
772
|
async handleCascadeLoadData(selectedOptions) {
|
|
@@ -808,7 +776,7 @@ export default {
|
|
|
808
776
|
targetOption.loading = true;
|
|
809
777
|
try {
|
|
810
778
|
console.log('handleRequestedOptions---3');
|
|
811
|
-
const res = await this.handleRequestedOptions(this.item,
|
|
779
|
+
const res = await this.handleRequestedOptions(this.item, '', false);
|
|
812
780
|
targetOption.loading = false;
|
|
813
781
|
targetOption.children = res && res.length ? [...res] : undefined;
|
|
814
782
|
this.curOptions = [...this.curOptions];
|
|
@@ -819,7 +787,7 @@ export default {
|
|
|
819
787
|
// 级联 end
|
|
820
788
|
|
|
821
789
|
handlerDropdownVisibleChange(e, data) {
|
|
822
|
-
const searchList = [
|
|
790
|
+
const searchList = ['SEARCH_MORE', 'SEARCH'];
|
|
823
791
|
if (e) {
|
|
824
792
|
e.preventDefault && e.preventDefault();
|
|
825
793
|
e.stopPropagation && e.stopPropagation();
|
|
@@ -828,17 +796,17 @@ export default {
|
|
|
828
796
|
|
|
829
797
|
let isRequest = true;
|
|
830
798
|
|
|
831
|
-
if (this.optionsMaxWidth ===
|
|
799
|
+
if (this.optionsMaxWidth === '100%') {
|
|
832
800
|
// 100% 是默认值,如果已经计算过了,不用再算
|
|
833
801
|
this.handleCalculateOptionsMaxWidth();
|
|
834
802
|
}
|
|
835
803
|
this.dropdownHide = !e;
|
|
836
804
|
if (Object.keys(data || {}).length > 0) {
|
|
837
|
-
const searchList = [
|
|
805
|
+
const searchList = ['SEARCH_CASCADE', 'LEVEL_SEARCH_CASCADE'];
|
|
838
806
|
if (searchList.includes(data.html_type)) {
|
|
839
807
|
isRequest = !(this.curOptions && this.curOptions.length);
|
|
840
808
|
}
|
|
841
|
-
if (e && [
|
|
809
|
+
if (e && ['SEARCH_MORE', 'SEARCH'].includes(data.html_type)) {
|
|
842
810
|
this.handlerSearchOnFocus(data);
|
|
843
811
|
}
|
|
844
812
|
if (e && isRequest) {
|
|
@@ -847,7 +815,7 @@ export default {
|
|
|
847
815
|
}
|
|
848
816
|
if (!e && this.noAllow_check_mid_level && searchList.includes(data.html_type)) {
|
|
849
817
|
setTimeout(() => {
|
|
850
|
-
this.$set(data,
|
|
818
|
+
this.$set(data, 'useFormValue', null);
|
|
851
819
|
}, 16);
|
|
852
820
|
}
|
|
853
821
|
}
|
|
@@ -863,7 +831,7 @@ export default {
|
|
|
863
831
|
|
|
864
832
|
hanlderGetSearchLabel(config, v) {
|
|
865
833
|
const { wordbook } = config;
|
|
866
|
-
let showLabel =
|
|
834
|
+
let showLabel = '';
|
|
867
835
|
// "自由输入"的直接 return v[wordbook.value_key]
|
|
868
836
|
if (!v.is_free_entry_input__add && wordbook.show_key && wordbook.show_key.length) {
|
|
869
837
|
wordbook.show_key.forEach(s => {
|
|
@@ -876,18 +844,18 @@ export default {
|
|
|
876
844
|
hanlderSendSelectLog(item = {}, value) {
|
|
877
845
|
// 收集选中的数据 多个展示字段取第一个
|
|
878
846
|
const show_key = ((item.wordbook && item.wordbook.show_key) || [])[0];
|
|
879
|
-
const label = show_key ? value[show_key] :
|
|
847
|
+
const label = show_key ? value[show_key] : '';
|
|
880
848
|
label && this.handleSearchTracher(item, { select: label });
|
|
881
849
|
},
|
|
882
850
|
// 搜索框选中
|
|
883
851
|
handleSearchSelect(e, option, type, eventConfig) {
|
|
884
852
|
const setList = option?.bindEventSetting || [];
|
|
885
|
-
const isInit =
|
|
853
|
+
const isInit = 'init' === eventConfig?.eventType;
|
|
886
854
|
const formData = this.getFormValue();
|
|
887
855
|
// 如果有绑定事件,先触发绑定的事件。
|
|
888
856
|
try {
|
|
889
857
|
if (Array.isArray(setList)) {
|
|
890
|
-
this.handlerInputBlur(option, null,
|
|
858
|
+
this.handlerInputBlur(option, null, 'blur', eventConfig);
|
|
891
859
|
}
|
|
892
860
|
} catch (err) {
|
|
893
861
|
console.log(err);
|
|
@@ -895,9 +863,7 @@ export default {
|
|
|
895
863
|
// hasOwnProperty
|
|
896
864
|
const searchOption = this.curOptions;
|
|
897
865
|
// 当前选中的对象
|
|
898
|
-
let selectItem = searchOption.find(
|
|
899
|
-
ele => `${ele[option.wordbook.value_key]}>>>${ele["myUniqueKey"]}` === e
|
|
900
|
-
);
|
|
866
|
+
let selectItem = searchOption.find(ele => `${ele[option.wordbook.value_key]}>>>${ele['myUniqueKey']}` === e);
|
|
901
867
|
// 标识是自由输入的值
|
|
902
868
|
const is_free = selectItem?.is_free_entry_input__add || false;
|
|
903
869
|
// 自由输入的 数据是前端生成的要清空,避免”带出“事件赋值
|
|
@@ -905,17 +871,13 @@ export default {
|
|
|
905
871
|
selectItem = {};
|
|
906
872
|
}
|
|
907
873
|
const setting = option?.wordbook?.setting || {};
|
|
908
|
-
if (Object.keys(selectItem || {}).length > 0 && type ===
|
|
874
|
+
if (Object.keys(selectItem || {}).length > 0 && type === 'select') {
|
|
909
875
|
this.hanlderSendSelectLog(option, selectItem);
|
|
910
876
|
}
|
|
911
877
|
|
|
912
878
|
if (selectItem && setting) {
|
|
913
879
|
Object.keys(selectItem).forEach(s => {
|
|
914
|
-
if (
|
|
915
|
-
selectItem[s] &&
|
|
916
|
-
typeof selectItem[s] == "string" &&
|
|
917
|
-
selectItem[s].startsWith("###")
|
|
918
|
-
) {
|
|
880
|
+
if (selectItem[s] && typeof selectItem[s] == 'string' && selectItem[s].startsWith('###')) {
|
|
919
881
|
selectItem[s] = selectItem[s].slice(3);
|
|
920
882
|
selectItem[s] = JSON.parse(selectItem[s]);
|
|
921
883
|
selectItem[s] = selectItem[s].value;
|
|
@@ -925,10 +887,10 @@ export default {
|
|
|
925
887
|
},
|
|
926
888
|
|
|
927
889
|
// SEARCH 检索框翻页
|
|
928
|
-
handleSearchChangePage(type =
|
|
929
|
-
let cType = type ||
|
|
890
|
+
handleSearchChangePage(type = 'next') {
|
|
891
|
+
let cType = type || 'next';
|
|
930
892
|
let { page, keyword = undefined } = this.searchPageConfig;
|
|
931
|
-
page = cType ===
|
|
893
|
+
page = cType === 'next' ? page + 1 : page - 1;
|
|
932
894
|
console.log('handleRequestedOptions---5');
|
|
933
895
|
this.handleRequestedOptions(this.item, keyword, false, { page });
|
|
934
896
|
},
|
|
@@ -940,13 +902,13 @@ export default {
|
|
|
940
902
|
let res = offsetWidth,
|
|
941
903
|
maxwith;
|
|
942
904
|
try {
|
|
943
|
-
let item = this.$el.querySelector(
|
|
905
|
+
let item = this.$el.querySelector('.ant-select');
|
|
944
906
|
const itemRect = item.getBoundingClientRect();
|
|
945
|
-
let baseDom = this.mainForm.$el.querySelector(
|
|
907
|
+
let baseDom = this.mainForm.$el.querySelector('.big-table');
|
|
946
908
|
const baseRect = baseDom.getBoundingClientRect();
|
|
947
909
|
maxwith = baseRect.right - itemRect.left;
|
|
948
910
|
|
|
949
|
-
if (typeof offsetWidth ===
|
|
911
|
+
if (typeof offsetWidth === 'number' && isFinite(maxwith)) {
|
|
950
912
|
if (maxwith > offsetWidth) {
|
|
951
913
|
res = maxwith;
|
|
952
914
|
} else {
|
|
@@ -974,7 +936,7 @@ export default {
|
|
|
974
936
|
params = this.handleQueryParams(formData, queryParams);
|
|
975
937
|
}
|
|
976
938
|
// 弹窗列表选项事件推出
|
|
977
|
-
this.$emit(
|
|
939
|
+
this.$emit('opentableSelect', true, this.item, params);
|
|
978
940
|
});
|
|
979
941
|
// }, 300);
|
|
980
942
|
},
|
|
@@ -992,14 +954,14 @@ export default {
|
|
|
992
954
|
|
|
993
955
|
confirmSelect({ value, selectRow = [], myUniqueKey }) {
|
|
994
956
|
const { item } = this;
|
|
995
|
-
if (this.item.html_type ===
|
|
957
|
+
if (this.item.html_type === 'SEARCH_MORE') {
|
|
996
958
|
let selecteds = this.baseForm.getFieldValue(item.val_key) || [];
|
|
997
|
-
this.formType[item.val_key].isOnchange =
|
|
959
|
+
this.formType[item.val_key].isOnchange = '00';
|
|
998
960
|
let mergeValList = [...value, ...selecteds];
|
|
999
961
|
let mergeSelectList = [...selectRow, ...this.curMultipleSelected];
|
|
1000
962
|
|
|
1001
963
|
let valueList = this.hanldeRemoveDuplicates(mergeValList, {
|
|
1002
|
-
key:
|
|
964
|
+
key: 'key'
|
|
1003
965
|
});
|
|
1004
966
|
let list = this.hanldeRemoveDuplicates(mergeSelectList, {
|
|
1005
967
|
key: myUniqueKey
|
|
@@ -1008,16 +970,16 @@ export default {
|
|
|
1008
970
|
let copy = JSON.parse(JSON.stringify(list));
|
|
1009
971
|
|
|
1010
972
|
this.curOptions = [...copy];
|
|
1011
|
-
this.$set(this.item,
|
|
973
|
+
this.$set(this.item, 'useFormValue', valueList);
|
|
1012
974
|
// this.baseForm.setFieldsValue({
|
|
1013
975
|
// [item.val_key]: valueList
|
|
1014
976
|
// });
|
|
1015
977
|
|
|
1016
978
|
this.curMultipleSelected = [...copy];
|
|
1017
|
-
this.$emit(
|
|
979
|
+
this.$emit('valueOnChange', [...copy], this.item);
|
|
1018
980
|
} else {
|
|
1019
981
|
this.curOptions = [...selectRow];
|
|
1020
|
-
this.$set(this.item,
|
|
982
|
+
this.$set(this.item, 'useFormValue', value);
|
|
1021
983
|
// this.baseForm.setFieldsValue({
|
|
1022
984
|
// [item.val_key]: value
|
|
1023
985
|
// });
|
|
@@ -1032,7 +994,7 @@ export default {
|
|
|
1032
994
|
if (!key) return list;
|
|
1033
995
|
|
|
1034
996
|
let resList = list.reduce((cur, next) => {
|
|
1035
|
-
obj[next[key]] ?
|
|
997
|
+
obj[next[key]] ? '' : (obj[next[key]] = true && cur.push(next));
|
|
1036
998
|
return cur;
|
|
1037
999
|
}, []);
|
|
1038
1000
|
|
|
@@ -1045,39 +1007,39 @@ export default {
|
|
|
1045
1007
|
|
|
1046
1008
|
// 取消请求 handleRequestedOptions
|
|
1047
1009
|
cancelOptionsRequest() {
|
|
1048
|
-
if (this.optionsRequestSource && typeof this.optionsRequestSource.cancel ===
|
|
1010
|
+
if (this.optionsRequestSource && typeof this.optionsRequestSource.cancel === 'function') {
|
|
1049
1011
|
// 取消请求
|
|
1050
|
-
this.optionsRequestSource.cancel(
|
|
1012
|
+
this.optionsRequestSource.cancel('请求已取消!');
|
|
1051
1013
|
this.optionsRequestSource = null;
|
|
1052
1014
|
}
|
|
1053
1015
|
},
|
|
1054
1016
|
|
|
1055
1017
|
async getHotSearchConfig() {
|
|
1056
1018
|
const { item, mainForm } = this;
|
|
1057
|
-
if (!SELECT_LIST.includes(item.html_type) || item.is_recommend !=
|
|
1019
|
+
if (!SELECT_LIST.includes(item.html_type) || item.is_recommend != '1') return;
|
|
1058
1020
|
let params = {
|
|
1059
1021
|
formId: mainForm.params_formId,
|
|
1060
1022
|
valKey: item.val_key,
|
|
1061
1023
|
htmlType: item.html_type
|
|
1062
|
-
}
|
|
1063
|
-
let handleEditFormCommonLatestAndHot = this.editFormApiConfig?.handleEditFormCommonLatestAndHot
|
|
1024
|
+
};
|
|
1025
|
+
let handleEditFormCommonLatestAndHot = this.editFormApiConfig?.handleEditFormCommonLatestAndHot;
|
|
1064
1026
|
if (!handleEditFormCommonLatestAndHot || typeof handleEditFormCommonLatestAndHot !== 'function') {
|
|
1065
|
-
handleEditFormCommonLatestAndHot = this.commonLatestAndHotRequest
|
|
1027
|
+
handleEditFormCommonLatestAndHot = this.commonLatestAndHotRequest;
|
|
1066
1028
|
}
|
|
1067
|
-
let data = await handleEditFormCommonLatestAndHot(params)
|
|
1029
|
+
let data = await handleEditFormCommonLatestAndHot(params);
|
|
1068
1030
|
if (!data) return;
|
|
1069
1031
|
this.hotSearchConfig.isRequest = true;
|
|
1070
1032
|
let hotList = (data?.map?.hotList || []).filter(Boolean);
|
|
1071
1033
|
let latestList = (data?.map?.latestList || []).filter(Boolean);
|
|
1072
1034
|
let config = Object.assign(this.hotSearchConfig, { hotList, latestList });
|
|
1073
|
-
this.$set(this,
|
|
1035
|
+
this.$set(this, 'hotSearchConfig', config);
|
|
1074
1036
|
},
|
|
1075
1037
|
commonLatestAndHotRequest(params) {
|
|
1076
1038
|
return new Promise((resolve, reject) => {
|
|
1077
1039
|
this.axios
|
|
1078
1040
|
.get(`/tableReader/commonLatestAndHot`, { params })
|
|
1079
1041
|
.then(({ data }) => {
|
|
1080
|
-
if (data.result ===
|
|
1042
|
+
if (data.result === 'SUCCESS') return resolve(data);
|
|
1081
1043
|
resolve(null);
|
|
1082
1044
|
})
|
|
1083
1045
|
.catch(err => {
|
|
@@ -1087,10 +1049,10 @@ export default {
|
|
|
1087
1049
|
},
|
|
1088
1050
|
|
|
1089
1051
|
handleSelectHotKeyword(key) {
|
|
1090
|
-
const input = this.$el.querySelector(
|
|
1052
|
+
const input = this.$el.querySelector('.ant-select-search__field');
|
|
1091
1053
|
if (input) {
|
|
1092
1054
|
input.value = key;
|
|
1093
|
-
var event = new InputEvent(
|
|
1055
|
+
var event = new InputEvent('input');
|
|
1094
1056
|
input.dispatchEvent(event);
|
|
1095
1057
|
} else {
|
|
1096
1058
|
// 最近搜索级联选中
|
|
@@ -1103,8 +1065,8 @@ export default {
|
|
|
1103
1065
|
keyword: key.keyword
|
|
1104
1066
|
});
|
|
1105
1067
|
// 级联选中“常用”值后失去焦点。
|
|
1106
|
-
let input = this.$el.querySelector(
|
|
1107
|
-
let cascader = this.$el.querySelector(
|
|
1068
|
+
let input = this.$el.querySelector('.ant-cascader-input');
|
|
1069
|
+
let cascader = this.$el.querySelector('.ant-cascader-picker');
|
|
1108
1070
|
cascader && cascader.blur();
|
|
1109
1071
|
if (input) {
|
|
1110
1072
|
input.blur();
|
|
@@ -1119,10 +1081,10 @@ export default {
|
|
|
1119
1081
|
formId: mainForm.params_formId,
|
|
1120
1082
|
valKey: item.val_key,
|
|
1121
1083
|
htmlType: item.html_type
|
|
1122
|
-
}
|
|
1084
|
+
};
|
|
1123
1085
|
let handleEditFormDeleteLatestAndHot = this.editFormApiConfig?.handleEditFormDeleteLatestAndHot;
|
|
1124
1086
|
if (!handleEditFormDeleteLatestAndHot || typeof handleEditFormDeleteLatestAndHot !== 'function') {
|
|
1125
|
-
handleEditFormDeleteLatestAndHot = this.deleteLatestAndHotRequest
|
|
1087
|
+
handleEditFormDeleteLatestAndHot = this.deleteLatestAndHotRequest;
|
|
1126
1088
|
}
|
|
1127
1089
|
handleEditFormDeleteLatestAndHot(params);
|
|
1128
1090
|
},
|
|
@@ -1131,8 +1093,8 @@ export default {
|
|
|
1131
1093
|
this.axios
|
|
1132
1094
|
.post(`/form/deleteLatestAndHot`, this.$qs.stringify(params))
|
|
1133
1095
|
.then(({ data }) => {
|
|
1134
|
-
if (data.result ==
|
|
1135
|
-
this.$message.warning(data.resultMsg ||
|
|
1096
|
+
if (data.result == 'SUCCESS') return resolve(data);
|
|
1097
|
+
this.$message.warning(data.resultMsg || '删除失败');
|
|
1136
1098
|
resolve(null);
|
|
1137
1099
|
})
|
|
1138
1100
|
.catch(err => {
|
|
@@ -1144,19 +1106,12 @@ export default {
|
|
|
1144
1106
|
this.hideHotSearch = false;
|
|
1145
1107
|
this.searchShowHotList = false;
|
|
1146
1108
|
},
|
|
1147
|
-
handleSearchTracher(item, obj = { keyword:
|
|
1109
|
+
handleSearchTracher(item, obj = { keyword: '', select: '' }) {
|
|
1148
1110
|
if (!SELECT_LIST.includes(item?.html_type || undefined)) return;
|
|
1149
1111
|
const { mainForm } = this;
|
|
1150
|
-
const { keyword =
|
|
1112
|
+
const { keyword = '', select = '' } = obj || {};
|
|
1151
1113
|
// 埋点
|
|
1152
|
-
let key =
|
|
1153
|
-
item.html_type === "SEARCH_MORE"
|
|
1154
|
-
? "表单搜索多选框"
|
|
1155
|
-
: item.html_type === "SEARCH"
|
|
1156
|
-
? "表单搜索框"
|
|
1157
|
-
: item.html_type === "SEARCH_CASCADE"
|
|
1158
|
-
? "表单级联搜索"
|
|
1159
|
-
: "表单逐级级联";
|
|
1114
|
+
let key = item.html_type === 'SEARCH_MORE' ? '表单搜索多选框' : item.html_type === 'SEARCH' ? '表单搜索框' : item.html_type === 'SEARCH_CASCADE' ? '表单级联搜索' : '表单逐级级联';
|
|
1160
1115
|
let params = {
|
|
1161
1116
|
key,
|
|
1162
1117
|
params_formId: mainForm.params_formId,
|
|
@@ -1164,7 +1119,7 @@ export default {
|
|
|
1164
1119
|
name: item.name,
|
|
1165
1120
|
keyword,
|
|
1166
1121
|
select
|
|
1167
|
-
}
|
|
1122
|
+
};
|
|
1168
1123
|
this.handleGetConfigApi(params, 'handleEditFormSearchTracher');
|
|
1169
1124
|
// try {
|
|
1170
1125
|
// this.$_handleTracherLog(key, {
|
|
@@ -1197,27 +1152,27 @@ export default {
|
|
|
1197
1152
|
let c = `.search-menu-${item.val_key}`;
|
|
1198
1153
|
let list = document.querySelectorAll(c);
|
|
1199
1154
|
list.forEach(v => {
|
|
1200
|
-
let u = v.querySelector(
|
|
1155
|
+
let u = v.querySelector('.ant-select-dropdown-menu');
|
|
1201
1156
|
if (u) {
|
|
1202
1157
|
u.scrollTop = 0;
|
|
1203
1158
|
}
|
|
1204
1159
|
});
|
|
1205
1160
|
} catch (error) {
|
|
1206
|
-
console.log(error,
|
|
1161
|
+
console.log(error, 'handleSearchScrollTop');
|
|
1207
1162
|
}
|
|
1208
1163
|
},
|
|
1209
1164
|
|
|
1210
1165
|
handleCascaderTracher() {
|
|
1211
1166
|
if (!this.Choose_to_complete) return;
|
|
1212
|
-
const CASCADELIST = [
|
|
1167
|
+
const CASCADELIST = ['LEVEL_SEARCH_CASCADE', 'SEARCH_CASCADE'];
|
|
1213
1168
|
this.$nextTick(() => {
|
|
1214
1169
|
const { item, selectedOptions } = this;
|
|
1215
1170
|
if (!CASCADELIST.includes(item.html_type)) return;
|
|
1216
1171
|
if (Array.isArray(selectedOptions) && selectedOptions.length > 0) {
|
|
1217
1172
|
let val = this.handleGetAllFormValue()[item.val_key];
|
|
1218
|
-
let keyword =
|
|
1173
|
+
let keyword = '';
|
|
1219
1174
|
if (vexutils.isJSON(val)) {
|
|
1220
|
-
keyword = JSON.parse(val)?.objStr ||
|
|
1175
|
+
keyword = JSON.parse(val)?.objStr || '';
|
|
1221
1176
|
}
|
|
1222
1177
|
if (!keyword) return;
|
|
1223
1178
|
this.handleSearchTracher(item, {
|