cnhis-design-vue 2.1.79 → 2.1.81

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 (130) hide show
  1. package/CHANGELOG.md +52 -4
  2. package/es/affix/index.js +8 -8
  3. package/es/age/index.js +10 -10
  4. package/es/alert/index.js +8 -8
  5. package/es/anchor/index.js +8 -8
  6. package/es/auto-complete/index.js +8 -8
  7. package/es/avatar/index.js +8 -8
  8. package/es/back-top/index.js +8 -8
  9. package/es/badge/index.js +8 -8
  10. package/es/base/index.js +8 -8
  11. package/es/big-table/index.js +115 -95
  12. package/es/big-table/style.css +1 -1
  13. package/es/breadcrumb/index.js +8 -8
  14. package/es/button/index.js +22 -22
  15. package/es/calendar/index.js +8 -8
  16. package/es/captcha/index.js +3 -3
  17. package/es/card/index.js +8 -8
  18. package/es/carousel/index.js +8 -8
  19. package/es/cascader/index.js +8 -8
  20. package/es/checkbox/index.js +9 -9
  21. package/es/col/index.js +8 -8
  22. package/es/collapse/index.js +8 -8
  23. package/es/color-picker/index.js +1 -1
  24. package/es/comment/index.js +8 -8
  25. package/es/config-provider/index.js +8 -8
  26. package/es/date-picker/index.js +8 -8
  27. package/es/descriptions/index.js +8 -8
  28. package/es/divider/index.js +8 -8
  29. package/es/drag-layout/index.js +3 -3
  30. package/es/drawer/index.js +8 -8
  31. package/es/dropdown/index.js +8 -8
  32. package/es/editor/index.js +1 -1
  33. package/es/ellipsis/index.js +1 -1
  34. package/es/empty/index.js +8 -8
  35. package/es/fabric-chart/index.js +9 -9
  36. package/es/form/index.js +8 -8
  37. package/es/form-model/index.js +8 -8
  38. package/es/form-table/index.js +66 -66
  39. package/es/index/index.js +4328 -1795
  40. package/es/index/style.css +1 -1
  41. package/es/input/index.js +9 -9
  42. package/es/input-number/index.js +8 -8
  43. package/es/layout/index.js +8 -8
  44. package/es/list/index.js +8 -8
  45. package/es/locale-provider/index.js +8 -8
  46. package/es/map/index.js +9 -9
  47. package/es/mentions/index.js +8 -8
  48. package/es/menu/index.js +8 -8
  49. package/es/message/index.js +8 -8
  50. package/es/multi-chat/index.js +76 -76
  51. package/es/multi-chat-client/index.js +70 -70
  52. package/es/multi-chat-history/index.js +4 -4
  53. package/es/multi-chat-record/index.js +14 -14
  54. package/es/multi-chat-setting/index.js +22 -22
  55. package/es/multi-chat-sip/index.js +1 -1
  56. package/es/notification/index.js +8 -8
  57. package/es/page-header/index.js +8 -8
  58. package/es/pagination/index.js +8 -8
  59. package/es/popconfirm/index.js +8 -8
  60. package/es/popover/index.js +8 -8
  61. package/es/progress/index.js +8 -8
  62. package/es/radio/index.js +9 -9
  63. package/es/rate/index.js +8 -8
  64. package/es/result/index.js +8 -8
  65. package/es/row/index.js +8 -8
  66. package/es/scale-container/index.js +1 -1
  67. package/es/scale-view/index.js +52 -50
  68. package/es/scale-view/style.css +1 -1
  69. package/es/select/index.js +12 -12
  70. package/es/select-label/index.js +36 -34
  71. package/es/select-label/style.css +1 -1
  72. package/es/select-person/index.js +2 -2
  73. package/es/select-tag/index.js +4248 -0
  74. package/es/select-tag/style.css +1 -0
  75. package/es/shortcut-setter/index.js +10 -10
  76. package/es/skeleton/index.js +8 -8
  77. package/es/slider/index.js +8 -8
  78. package/es/space/index.js +8 -8
  79. package/es/spin/index.js +8 -8
  80. package/es/statistic/index.js +8 -8
  81. package/es/steps/index.js +8 -8
  82. package/es/switch/index.js +8 -8
  83. package/es/table-filter/index.js +3158 -1350
  84. package/es/table-filter/style.css +1 -1
  85. package/es/tabs/index.js +8 -8
  86. package/es/tag/index.js +9 -9
  87. package/es/time-picker/index.js +8 -8
  88. package/es/timeline/index.js +8 -8
  89. package/es/tooltip/index.js +8 -8
  90. package/es/transfer/index.js +8 -8
  91. package/es/tree/index.js +8 -8
  92. package/es/tree-select/index.js +8 -8
  93. package/es/upload/index.js +8 -8
  94. package/es/verification-code/index.js +2 -2
  95. package/lib/cui.common.js +4369 -1699
  96. package/lib/cui.umd.js +4369 -1699
  97. package/lib/cui.umd.min.js +82 -82
  98. package/package.json +1 -1
  99. package/packages/big-table/src/BigTable.vue +15 -3
  100. package/packages/big-table/src/assets/style/table-base.less +7 -4
  101. package/packages/index.js +3 -0
  102. package/packages/select-label/select-label.vue +18 -2
  103. package/packages/select-tag/index.js +14 -0
  104. package/packages/select-tag/label-classify.vue +133 -0
  105. package/packages/select-tag/labelFormContent.vue +295 -0
  106. package/packages/select-tag/select-label.vue +274 -0
  107. package/packages/table-filter/src/base-search-com/BaseSearch.vue +11 -15
  108. package/packages/table-filter/src/components/TextOverTooltip.vue +24 -11
  109. package/packages/table-filter/src/components/age-com/index.vue +3 -3
  110. package/packages/table-filter/src/components/checkbox-group/CheckboxGroup.vue +53 -0
  111. package/packages/table-filter/src/components/multi-select/multi-select.vue +7 -1
  112. package/packages/table-filter/src/components/out-quick-search/out-quick-search.vue +5 -119
  113. package/packages/table-filter/src/components/range-age/index.vue +11 -12
  114. package/packages/table-filter/src/components/render-widget/components/DateRangeQuick.vue +216 -0
  115. package/packages/table-filter/src/components/render-widget/components/Label.vue +209 -0
  116. package/packages/table-filter/src/components/render-widget/components/NumberRange.vue +147 -0
  117. package/packages/table-filter/src/components/render-widget/components/SelectDynamic.vue +280 -0
  118. package/packages/table-filter/src/components/render-widget/components/SelectLabel.vue +80 -0
  119. package/packages/table-filter/src/components/render-widget/components/index.js +6 -4
  120. package/packages/table-filter/src/components/render-widget/enums.js +29 -22
  121. package/packages/table-filter/src/components/render-widget/index.vue +45 -5
  122. package/packages/table-filter/src/components/render-widget/mixins/dynamic-method.js +164 -0
  123. package/packages/table-filter/src/components/render-widget/mixins/label-method.js +23 -0
  124. package/packages/table-filter/src/components/render-widget/widgetCfgMaps.js +194 -46
  125. package/packages/table-filter/src/components/search-filter/SearchFilter.vue +3 -1
  126. package/packages/table-filter/src/components/search-modal/set-classification.vue +5 -1
  127. package/packages/table-filter/src/mixins/mixins.js +192 -133
  128. package/packages/table-filter/src/mixins/out-quick-method.js +123 -0
  129. package/packages/table-filter/src/mixins/renderWidget.js +21 -13
  130. package/packages/table-filter/src/quick-search/QuickSearch.vue +201 -133
@@ -8,28 +8,28 @@ const DURATIONS = {
8
8
  };
9
9
  const EVALUATEList = [
10
10
  {
11
- label: "一星",
12
- value: "1",
11
+ label: '一星',
12
+ value: '1',
13
13
  isSelect: false
14
14
  },
15
15
  {
16
- label: "二星",
17
- value: "2",
16
+ label: '二星',
17
+ value: '2',
18
18
  isSelect: false
19
19
  },
20
20
  {
21
- label: "三星",
22
- value: "3",
21
+ label: '三星',
22
+ value: '3',
23
23
  isSelect: false
24
24
  },
25
25
  {
26
- label: "四星",
27
- value: "4",
26
+ label: '四星',
27
+ value: '4',
28
28
  isSelect: false
29
29
  },
30
30
  {
31
- label: "五星",
32
- value: "5",
31
+ label: '五星',
32
+ value: '5',
33
33
  isSelect: false
34
34
  }
35
35
  ];
@@ -51,8 +51,17 @@ export const filterApiFn = {
51
51
  filterApiConfig: {
52
52
  type: Object,
53
53
  default: () => ({})
54
+ },
55
+ filterApiConfigOutSearch: {
56
+ type: Object,
57
+ default: () => ({})
54
58
  }
55
59
  },
60
+ data() {
61
+ return {
62
+ isOut: false
63
+ };
64
+ },
56
65
  methods: {
57
66
  /**
58
67
  * 获取配置的 api 方法
@@ -63,7 +72,7 @@ export const filterApiFn = {
63
72
  async handleGetConfigApi(params, key, config = {}) {
64
73
  try {
65
74
  // TODO: 判断 fn 是异步函数还是同步
66
- const filterApiConfig = this?.filterApiConfig || {};
75
+ const filterApiConfig = this.isOut ? this.filterApiConfigOutSearch : this?.filterApiConfig || {};
67
76
  const fn = filterApiConfig[key] || null;
68
77
  if (typeof fn === 'function') {
69
78
  let res = await fn(params, config);
@@ -133,7 +142,7 @@ export const $utils = {
133
142
  debounce(func, wait, immediate) {
134
143
  let timeout, args, context, timestamp, result;
135
144
 
136
- const later = function () {
145
+ const later = function() {
137
146
  // 据上一次触发时间间隔
138
147
  const last = +new Date() - timestamp;
139
148
 
@@ -150,7 +159,7 @@ export const $utils = {
150
159
  }
151
160
  };
152
161
 
153
- return function (...args) {
162
+ return function(...args) {
154
163
  context = this;
155
164
  timestamp = +new Date();
156
165
  const callNow = immediate && !timeout;
@@ -390,6 +399,54 @@ export const $utils = {
390
399
  components: {}
391
400
  };
392
401
 
402
+ // start--- 筛选外显默认值 ---start
403
+ export const outQuickSearchDefCommon = {
404
+ methods: {
405
+ isSelectMuiWordBookDef(item) {
406
+ return item.comType === 'SelectMuiWordBook' && item.explicitDefaultVal == 'firstOption';
407
+ },
408
+ isExistDefVal(item) {
409
+ return this.isSelectMuiWordBookDef(item) || !!item.explicitDefaultVal;
410
+ },
411
+ isSetDefVal() {
412
+ return this.outSearchFieldList.some(v => {
413
+ if (this.isRender(v)) {
414
+ return this.isExistDefValByRenderWidget(v);
415
+ }
416
+ return this.isExistDefVal(v);
417
+ });
418
+ },
419
+ async handleDefVal(config) {
420
+ try {
421
+ let isDef = this.isSetDefVal();
422
+ if (!isDef) return;
423
+ let promises = [];
424
+ this.outSearchFieldList.map(v => {
425
+ if (this.isRender(v)) {
426
+ if (this.isExplicitDefaultVal(v)) {
427
+ this.$set(v, 'initSearch', false);
428
+ promises.push(this.getWordbookFirstOptionRender(v));
429
+ }
430
+ }
431
+ if (this.isSelectMuiWordBookDef(v)) {
432
+ this.$set(v, 'initSearch', false);
433
+ promises.push(this.getWordbookFirstOption(v));
434
+ }
435
+ });
436
+ if (promises.length) {
437
+ await Promise.allSettled(promises);
438
+ }
439
+ let type = config?.type === 'reset' ? '' : 'outSearchInit';
440
+ this.outFilterChange({ type });
441
+ } catch (err) {
442
+ console.log(err);
443
+ }
444
+ }
445
+ }
446
+ };
447
+
448
+ // end--- 筛选外显默认值 ---end
449
+
393
450
  // start--- 筛选外显 ---start
394
451
  export const outQuickSearchFn = {
395
452
  mixins: [renderWidget],
@@ -400,36 +457,36 @@ export const outQuickSearchFn = {
400
457
  // 直接渲染相应组件,不经过下面的字段判断
401
458
  if (this.initRenderWidgetCfg(el)) return;
402
459
 
403
- el.setting = typeof el.setting == "string" ? JSON.parse(el.setting) : el.setting;
404
- const attr = el?.settingObj?.attr || "";
405
- const isPreciseSearch = el?.settingObj?.isPreciseSearch || "";
406
- const showSetting = el?.setting?.showSetting || []
460
+ el.setting = typeof el.setting == 'string' ? JSON.parse(el.setting) : el.setting;
461
+ const attr = el?.settingObj?.attr || '';
462
+ const isPreciseSearch = el?.settingObj?.isPreciseSearch || '';
463
+ const showSetting = el?.setting?.showSetting || [];
407
464
  /**
408
- * NUMBER和TEXT属性字段
409
- * 如果 开启了精准搜索,则传条件的时候 要传 EQ
410
- * isPreciseSearch: 0/1
411
- */
412
- let textCon = el.fieldType == "TEXT" && isPreciseSearch == 1 ? 'EQ' : 'CL';
465
+ * NUMBER和TEXT属性字段
466
+ * 如果 开启了精准搜索,则传条件的时候 要传 EQ
467
+ * isPreciseSearch: 0/1
468
+ */
469
+ let textCon = el.fieldType == 'TEXT' && isPreciseSearch == 1 ? 'EQ' : 'CL';
413
470
  let advanceOptionSetting = el.advanceOptionSetting;
414
471
  let wordbookId = el?.setting?.wordbook?.id;
415
472
  // let advanceColWidth = el.advanceColWidth;
416
473
  // 映射优先级最高
417
474
  if (showSetting?.length) {
418
- let tvalue = []
475
+ let tvalue = [];
419
476
  // 设置了默认值
420
477
  let df = el.explicitDefaultVal;
421
- if(df){
478
+ if (df) {
422
479
  if (df == 'firstOption') {
423
480
  tvalue = String(advanceOptionSetting) === '0' ? 0 : [0];
424
481
  } else {
425
- if(String(advanceOptionSetting) === '0'){
482
+ if (String(advanceOptionSetting) === '0') {
426
483
  // 单选
427
484
  const index = showSetting.findIndex(v => v.change_text == df);
428
485
  if (index > -1) tvalue = index;
429
486
  } else {
430
487
  // 多选 多默认值 处理
431
488
  const dfs = df.split(',');
432
- dfs.forEach((d) => {
489
+ dfs.forEach(d => {
433
490
  const index = showSetting.findIndex(v => v.change_text == d);
434
491
  if (index > -1) tvalue.push(index);
435
492
  });
@@ -437,27 +494,27 @@ export const outQuickSearchFn = {
437
494
  }
438
495
  }
439
496
  // 存在映射 使用下拉多选框
440
- this.$set(el, "con", "CONVERT");
441
- this.$set(el, "com", "SelectMui");
442
- this.$set(el, "comType", "SelectMui");
443
- this.$set(el, "value", tvalue);
497
+ this.$set(el, 'con', 'CONVERT');
498
+ this.$set(el, 'com', 'SelectMui');
499
+ this.$set(el, 'comType', 'SelectMui');
500
+ this.$set(el, 'value', tvalue);
444
501
  const labelList = el.setting?.showSetting.map(i => {
445
502
  i.labelName = i.change_text;
446
503
  return i;
447
504
  });
448
- this.$set(el, "labelList", labelList);
505
+ this.$set(el, 'labelList', labelList);
449
506
  } else if (!this.$utils.isEmpty(el.setting?.wordbook) && wordbookId) {
450
507
  // TODO:
451
508
  // 存在映射 wordbook
452
- let isTree = "tree" === el?.setting?.wordbook?.showType;
509
+ let isTree = 'tree' === el?.setting?.wordbook?.showType;
453
510
  let comType = isTree ? 'treeSelect' : 'SelectMuiWordBook';
454
511
  let defVal = isTree ? [] : [];
455
- this.$set(el, "con", "QUOTE");
456
- this.$set(el, "com", "SelectMui");
457
- this.$set(el, "comType", comType);
458
- this.$set(el, "value", defVal);
459
- this.$set(el, "dataSource", []);
460
- this.$set(el, "searchPageConfig", {
512
+ this.$set(el, 'con', 'QUOTE');
513
+ this.$set(el, 'com', 'SelectMui');
514
+ this.$set(el, 'comType', comType);
515
+ this.$set(el, 'value', defVal);
516
+ this.$set(el, 'dataSource', []);
517
+ this.$set(el, 'searchPageConfig', {
461
518
  keyword: undefined,
462
519
  isRequest: false, // 是否已请求
463
520
  page: 1, // 当前页
@@ -465,91 +522,88 @@ export const outQuickSearchFn = {
465
522
  hasNextPage: false
466
523
  });
467
524
  } else {
468
- if (["MONEY", "PERCENTAGE", "AGE", "NUMBER"].includes(attr) || el.fieldType == "NUMBER") {
469
- this.$set(el, "con", "BIGANDLESS");
470
- this.$set(el, "com", "Number");
471
- this.$set(el, "lessValue", "");
472
- this.$set(el, "bigValue", "");
473
- if (attr == "AGE" && el.fieldType != "NUMBER") {
474
- this.$set(el, "AGEAttr", true);
475
- this.$set(el, "inputUnit", "");
525
+ if (['MONEY', 'PERCENTAGE', 'AGE', 'NUMBER'].includes(attr) || el.fieldType == 'NUMBER') {
526
+ this.$set(el, 'con', 'BIGANDLESS');
527
+ this.$set(el, 'com', 'Number');
528
+ this.$set(el, 'lessValue', '');
529
+ this.$set(el, 'bigValue', '');
530
+ if (attr == 'AGE' && el.fieldType != 'NUMBER') {
531
+ this.$set(el, 'AGEAttr', true);
532
+ this.$set(el, 'inputUnit', '');
476
533
  }
477
- if (el.fieldType == "NUMBER" && attr == "PERCENTAGE") {
478
- this.$set(el, "inputUnit", "%");
534
+ if (el.fieldType == 'NUMBER' && attr == 'PERCENTAGE') {
535
+ this.$set(el, 'inputUnit', '%');
479
536
  }
480
- } else if (
481
- ["BIRTHDAY", "DATE", "TASKDATE"].includes(attr) ||
482
- ["DATETIME", "DATE"].includes(el.fieldType)
483
- ) {
537
+ } else if (['BIRTHDAY', 'DATE', 'TASKDATE'].includes(attr) || ['DATETIME', 'DATE'].includes(el.fieldType)) {
484
538
  // 查找默认值
485
539
  let value = this.getSearchDefValueByLimit(el, this.searchFieldLimit) || [];
486
540
  // explicitDefaultVal: "YESTERDAY"
487
541
  // explicitRequired: 1
488
542
 
489
543
  // 配置了默认值
490
- if(el.explicitDefaultVal){
544
+ if (el.explicitDefaultVal) {
491
545
  // let showFormat = attr === "BIRTHDAY" ? 'MM-DD':'YYYY-MM-DD HH:mm:ss';
492
- let t = timeDomain.getTimeDomain(el.explicitDefaultVal)
493
- if(t.length > 0){
546
+ let t = timeDomain.getTimeDomain(el.explicitDefaultVal);
547
+ if (t.length > 0) {
494
548
  value = t;
495
549
  }
496
550
  }
497
- this.$set(el, "con", "IN");
498
- this.$set(el, "com", "DatePicker");
499
- this.$set(el, "value", value);
500
- if (attr === "BIRTHDAY") {
501
- this.$set(el, "showFormat", "MM-DD");
502
- this.$set(el, "showTime", false);
503
- } else if(["TODAY","TOMORROW","YESTERDAY"].includes(el.explicitDefaultVal)){
551
+ this.$set(el, 'con', 'IN');
552
+ this.$set(el, 'com', 'DatePicker');
553
+ this.$set(el, 'value', value);
554
+ if (attr === 'BIRTHDAY') {
555
+ this.$set(el, 'showFormat', 'MM-DD');
556
+ this.$set(el, 'showTime', false);
557
+ } else if (['TODAY', 'TOMORROW', 'YESTERDAY'].includes(el.explicitDefaultVal)) {
504
558
  // 如果外显默认是 以上三个,展示一个框,时间不可选
505
559
  let [v] = value;
506
- this.$set(el, "showFormat", "YYYY-MM-DD");
507
- this.$set(el, "showTime", false);
508
- this.$set(el, "com", "DayPicker");
509
- this.$set(el, "value",v || moment());
560
+ this.$set(el, 'showFormat', 'YYYY-MM-DD');
561
+ this.$set(el, 'showTime', false);
562
+ this.$set(el, 'com', 'DayPicker');
563
+ this.$set(el, 'value', v || moment());
510
564
  } else {
511
- this.$set(el, "showFormat", "YYYY-MM-DD HH:mm:ss");
512
- this.$set(el, "showTime", true);
565
+ this.$set(el, 'showFormat', 'YYYY-MM-DD HH:mm:ss');
566
+ this.$set(el, 'showTime', true);
513
567
  }
514
- } else if (["LABEL", "EVALUATE"].includes(attr)) {
515
- this.$set(el, "con", "CL");
516
- this.$set(el, "com", "SelectMui");
517
- this.$set(el, "value", []);
518
- if (attr == "EVALUATE") {
568
+ } else if (['LABEL', 'EVALUATE'].includes(attr)) {
569
+ this.$set(el, 'con', 'CL');
570
+ this.$set(el, 'com', 'SelectMui');
571
+ this.$set(el, 'value', []);
572
+ if (attr == 'EVALUATE') {
519
573
  let list = EVALUATEList.map(i => {
520
574
  i.labelName = i.label;
521
575
  return i;
522
576
  });
523
- this.$set(el, "labelList", list);
577
+ this.$set(el, 'labelList', list);
524
578
  } else {
525
579
  this.handleSetLabelOptions(el.setting?.labelType, el);
526
580
  }
527
- } else if ("PASSWORD" === attr) {
528
- this.$set(el, "con", el.fieldType === "NUMBER" ? "EQ" : textCon);
529
- this.$set(el, "comAttr", "PASSWORD");
530
- this.$set(el, "PASSWORDTYPE", true);
531
- this.$set(el, "value", "");
532
- this.$set(el, "com", "Text");
533
- } else if (["DURATION"].includes(attr)) {
534
- this.$set(el, "con", "EQ");
535
- this.$set(el, "value", "");
536
- this.$set(el, "com", "Text");
537
- this.$set(el, "attr", "DURATION");
581
+ } else if ('PASSWORD' === attr) {
582
+ this.$set(el, 'con', el.fieldType === 'NUMBER' ? 'EQ' : textCon);
583
+ this.$set(el, 'comAttr', 'PASSWORD');
584
+ this.$set(el, 'PASSWORDTYPE', true);
585
+ this.$set(el, 'value', '');
586
+ this.$set(el, 'com', 'Text');
587
+ } else if (['DURATION'].includes(attr)) {
588
+ this.$set(el, 'con', 'EQ');
589
+ this.$set(el, 'value', '');
590
+ this.$set(el, 'com', 'Text');
591
+ this.$set(el, 'attr', 'DURATION');
538
592
  } else {
539
- this.$set(el, "con", textCon);
540
- this.$set(el, "isPreciseSearch", isPreciseSearch == 1);
541
- this.$set(el, "value", "");
542
- this.$set(el, "com", "Text");
593
+ this.$set(el, 'con', textCon);
594
+ this.$set(el, 'isPreciseSearch', isPreciseSearch == 1);
595
+ this.$set(el, 'value', '');
596
+ this.$set(el, 'com', 'Text');
543
597
  }
544
598
  }
545
599
  });
546
600
  },
547
601
  handleSetLabelOptions(labelType, el) {
548
- this.handleRequestedLabel(labelType || "")
602
+ this.handleRequestedLabel(labelType || '')
549
603
  .then(({ data }) => {
550
- if (data.result === "SUCCESS") {
604
+ if (data.result === 'SUCCESS') {
551
605
  let labelList = data.map.rows || [];
552
- this.$set(el, "labelList", labelList);
606
+ this.$set(el, 'labelList', labelList);
553
607
  }
554
608
  })
555
609
  .catch(err => console.log(err));
@@ -569,45 +623,53 @@ export const outQuickSearchFn = {
569
623
  let temp = {
570
624
  field_key: item.columnName,
571
625
  con: item.con,
572
- value: "",
573
- limit_date: "",
574
- start_val: item.start_val || "",
575
- end_val: item.end_val || "",
576
- unit: item.unit || "",
626
+ value: '',
627
+ limit_date: '',
628
+ start_val: item.start_val || '',
629
+ end_val: item.end_val || '',
630
+ unit: item.unit || '',
577
631
  id: item.id
578
632
  };
579
- if (item.com === "Text" && item.value) {
633
+ if (item.com === 'Text' && item.value) {
580
634
  temp.value = item.value;
581
635
  conObj.push(temp);
582
636
  }
583
637
  let advanceOptionSetting = item.advanceOptionSetting;
584
- if (item.com === "SelectMui" && vexutils.anyNotEmpty(item.value)) {
638
+ if (item.com === 'SelectMui' && vexutils.anyNotEmpty(item.value)) {
585
639
  // 单选模式
586
640
  let single = String(advanceOptionSetting) === '0';
587
- if(single){
588
- if(!Array.isArray(item.value)) {
589
- item.value = [item.value]
641
+ if (single) {
642
+ if (!Array.isArray(item.value)) {
643
+ item.value = [item.value];
590
644
  }
591
645
  }
592
- let hasArr = Array.isArray(item.value) && item.value.length > 0
593
- if (item.comType == "SelectMuiWordBook" && hasArr) {
594
- temp.value = item.value.join("|#|");
595
- } else if(item.comType == "treeSelect"){
646
+ let hasArr = Array.isArray(item.value) && item.value.length > 0;
647
+ if (item.comType == 'SelectMuiWordBook' && hasArr) {
648
+ temp.value = item.value.join('|#|');
649
+ } else if (item.comType == 'treeSelect') {
596
650
  // 樹狀
597
651
  let value = item.value;
598
- if(typeof value === 'string'){
599
- [value] = value.split('<&=&>')
600
- } else if(Array.isArray(value)){
601
- value = value.map((v)=>{
602
- let [k] = typeof v === 'string' ? v.split('<&=&>'): [];
652
+ if (typeof value === 'string') {
653
+ [value] = value.split('<&=&>');
654
+ } else if (Array.isArray(value)) {
655
+ value = value.map(v => {
656
+ let [k] = typeof v === 'string' ? v.split('<&=&>') : [];
603
657
  return k;
604
- })
605
- value = value.join("|#|");
658
+ });
659
+ value = value.join('|#|');
606
660
  }
607
661
  temp.value = value;
662
+ } else if (item.settingObj.attr === 'EVALUATE') {
663
+ if (hasArr) {
664
+ let value = [];
665
+ value = item.value.map(i => {
666
+ return item.labelList[i].value;
667
+ });
668
+ temp.value = value.join('|#|');
669
+ }
608
670
  } else {
609
- if(hasArr){
610
- if (item.con == "CONVERT") {
671
+ if (hasArr) {
672
+ if (item.con == 'CONVERT') {
611
673
  // 存在映射
612
674
  let value = [];
613
675
  value = item.value.map(i => {
@@ -619,17 +681,16 @@ export const outQuickSearchFn = {
619
681
  value = item.value.map(i => {
620
682
  return item.labelList[i].labelName;
621
683
  });
622
- temp.value = value.join("|#|");
684
+ temp.value = value.join('|#|');
623
685
  }
624
686
  }
625
-
626
687
  }
627
688
  conObj.push(temp);
628
689
  }
629
- if (item.com === "DatePicker" && item.value.length) {
690
+ if (item.com === 'DatePicker' && item.value.length) {
630
691
  const start_val = item.value[0].format(item.showFormat);
631
692
  const end_val = item.value[1].format(item.showFormat);
632
- if (item.settingObj.attr === "BIRTHDAY") {
693
+ if (item.settingObj.attr === 'BIRTHDAY') {
633
694
  temp.limit_date = `${start_val}~${end_val}`;
634
695
  } else {
635
696
  temp.start_val = start_val;
@@ -637,10 +698,10 @@ export const outQuickSearchFn = {
637
698
  }
638
699
  conObj.push(temp);
639
700
  }
640
- if (item.com === "DayPicker" && item.value) {
701
+ if (item.com === 'DayPicker' && item.value) {
641
702
  const start_val = item.value.startOf('day').format('YYYY-MM-DD HH:mm:ss');
642
703
  const end_val = item.value.endOf('day').format('YYYY-MM-DD HH:mm:ss');
643
- if (item.settingObj.attr === "BIRTHDAY") {
704
+ if (item.settingObj.attr === 'BIRTHDAY') {
644
705
  temp.limit_date = `${start_val}~${end_val}`;
645
706
  } else {
646
707
  temp.start_val = start_val;
@@ -649,8 +710,8 @@ export const outQuickSearchFn = {
649
710
  conObj.push(temp);
650
711
  }
651
712
  if (item.AGEAttr) {
652
- temp.value = "";
653
- temp.con = "IN";
713
+ temp.value = '';
714
+ temp.con = 'IN';
654
715
  let start_val = Number(item.lessValue) * 365;
655
716
  let end_val = Number(item.bigValue) * 365;
656
717
  if ((start_val || start_val === 0) && end_val) {
@@ -658,7 +719,7 @@ export const outQuickSearchFn = {
658
719
  temp.end_val = end_val;
659
720
  conObj.push(JSON.parse(JSON.stringify(temp)));
660
721
  }
661
- } else if (item.com === "Number") {
722
+ } else if (item.com === 'Number') {
662
723
  // 传参范围修改
663
724
  let lessValue = item.lessValue ?? '';
664
725
  let bigValue = item.bigValue ?? '';
@@ -670,17 +731,15 @@ export const outQuickSearchFn = {
670
731
  temp.value = `${lessValue}~${bigValue}`;
671
732
  }
672
733
 
673
- temp.con = "EQ";
734
+ temp.con = 'EQ';
674
735
  conObj.push(JSON.parse(JSON.stringify(temp)));
675
736
  }
676
- if (item.com === "SelectQuote" && item.value.length) {
677
- temp.value = item.value.join("|#|");
737
+ if (item.com === 'SelectQuote' && item.value.length) {
738
+ temp.value = item.value.join('|#|');
678
739
  conObj.push(temp);
679
740
  }
680
741
  });
681
- let res = conObj.filter(
682
- item => item.value || item.limit_date || item.start_val || item.end_val
683
- );
742
+ let res = conObj.filter(item => item.value || item.limit_date || item.start_val || item.end_val);
684
743
  return res;
685
744
  },
686
745
  getConObjParams() {
@@ -692,7 +751,7 @@ export const outQuickSearchFn = {
692
751
  realation.push({
693
752
  field_key: item.primaryField,
694
753
  valueField: item.relationField,
695
- con: "QUOTE_IN",
754
+ con: 'QUOTE_IN',
696
755
  tableId: item.tableId,
697
756
  parameterConversionId: item.parameterConversionId,
698
757
  converFun: item.converFun,
@@ -701,7 +760,7 @@ export const outQuickSearchFn = {
701
760
  preSqlExpression: item.preSqlExpression,
702
761
  quote_con: {
703
762
  conObj: this.getConObj(item.fieldList),
704
- sqlExpression: ""
763
+ sqlExpression: ''
705
764
  }
706
765
  });
707
766
  }
@@ -710,5 +769,5 @@ export const outQuickSearchFn = {
710
769
  return conObj || [];
711
770
  }
712
771
  }
713
- }
772
+ };
714
773
  // end--- 筛选外显 ---end
@@ -0,0 +1,123 @@
1
+ import vexutils from '@/utils/vexutils';
2
+ import wordBookutils from './wordBookutils';
3
+
4
+ export default {
5
+ data() {
6
+ return {
7
+ fetchingWordbook: false
8
+ };
9
+ },
10
+ methods: {
11
+ handleWordBookSearch(value, item, config = {}) {
12
+ if (item.comType != 'SelectMuiWordBook') return;
13
+ let curAutograph = item.settingObj.wordbook && item.settingObj.wordbook.autograph;
14
+ let params = {
15
+ keyword: value,
16
+ autograph: curAutograph
17
+ };
18
+ let obj = {};
19
+ let p = item?.setting?.wordbook?.params || undefined;
20
+ if (p) {
21
+ item.setting.wordbook.params.forEach(item => {
22
+ obj[item.p_name] = item.p_value;
23
+ });
24
+ }
25
+ let rp = { ...params, ...obj, ...config };
26
+ this.getWordbookData(item.setting.wordbook, rp).then(({ data }) => {
27
+ this.handleWordbookData(item, data, rp);
28
+ });
29
+ },
30
+ wordbookDataParams(item) {
31
+ let obj = {};
32
+ if (item.setting.wordbook.params) {
33
+ item.setting.wordbook.params.forEach(item => {
34
+ obj[item.p_name] = item.p_value;
35
+ });
36
+ }
37
+ if (item.settingObj.wordbook) {
38
+ obj.autograph = item.settingObj.wordbook.autograph;
39
+ }
40
+ let df = item.explicitDefaultVal;
41
+ if (df != 'firstOption') {
42
+ obj.keyword = df;
43
+ }
44
+ return obj;
45
+ },
46
+ async getWordbookFirstOption(item) {
47
+ try {
48
+ let obj = this.wordbookDataParams(item);
49
+ let { data } = (await this.getWordbookData(item.setting.wordbook, obj)) || {};
50
+ this.handleWordbookData(item, data, obj);
51
+ } catch (err) {
52
+ console.log(err);
53
+ }
54
+ },
55
+
56
+ dropdownVisibleChange(open, item, config = {}) {
57
+ if (item.comType != 'SelectMuiWordBook') return;
58
+ if (open) {
59
+ let obj = this.wordbookDataParams(item);
60
+ this.getWordbookData(item.setting.wordbook, obj).then(({ data }) => {
61
+ this.handleWordbookData(item, data, obj);
62
+ });
63
+ }
64
+ },
65
+ handleFirstDef(item, rows) {
66
+ // 初始化获取值
67
+ let showKeys = item?.setting?.wordbook?.showKeys || [];
68
+ let initSearch = this.isOut ? item.initSearch : this.initSearch;
69
+ if (initSearch) return;
70
+ let df = item.explicitDefaultVal;
71
+ if (df) {
72
+ let defval = [];
73
+ if (df === 'firstOption') {
74
+ let [v, k] = rows;
75
+ // 如果有添加提示标题,取第二个
76
+ if (showKeys.length > 0 && item.hasFieldList) {
77
+ v = k;
78
+ }
79
+ v && (defval = [v.myName]);
80
+ } else {
81
+ let f = rows.find(v => v.myName.includes(df));
82
+ if (f) {
83
+ defval = [f.myName];
84
+ }
85
+ }
86
+ item.value = [...defval];
87
+ item.search_DefaultValue = [...defval];
88
+ }
89
+ this.isOut ? this.$set(item, 'initSearch', true) : (this.initSearch = true);
90
+ },
91
+ handleWordbookData(item, data, params) {
92
+ this.$set(item, 'hasFieldList', false);
93
+ const { rows, hasFieldList, searchPageConfig } = wordBookutils.handleWordbookData(item, data, params);
94
+ this.$set(item, 'hasFieldList', hasFieldList);
95
+ this.$set(item, 'dataSource', rows);
96
+ item.searchPageConfig = Object.assign(item.searchPageConfig, searchPageConfig);
97
+ this.handleFirstDef(item, rows);
98
+ },
99
+ getWordbookData(o, obj) {
100
+ let { id, filterKeys, wordbookType } = o;
101
+ !this.isOut && (this.fetchingWordbook = true);
102
+ let resFieldKeys = Array.isArray(filterKeys) ? JSON.stringify(filterKeys) : filterKeys;
103
+ let params = {
104
+ wordbookId: id,
105
+ fieldKeys: resFieldKeys,
106
+ wordbookType: wordbookType || 'WORDBOOK',
107
+ asyncCount: 1, // 开启性能模式
108
+ ...obj
109
+ };
110
+ return this.handleGetConfigApi(params, 'requestGetWordbookData', { fields: o })
111
+ .then(res => {
112
+ !this.isOut && (this.fetchingWordbook = false);
113
+ if (typeof res.data === 'object') {
114
+ res.data.reqParams = params;
115
+ }
116
+ return res;
117
+ })
118
+ .catch(() => {
119
+ !this.isOut && (this.fetchingWordbook = false);
120
+ });
121
+ }
122
+ }
123
+ };