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
@@ -0,0 +1,280 @@
1
+ <template>
2
+ <div class="SelectDynamic">
3
+ <a-select
4
+ v-model="valueCp"
5
+ showSearch
6
+ :mode="mode"
7
+ :placeholder="placeholder"
8
+ :dropdownMatchSelectWidth="!selectHasTitle"
9
+ :maxTagCount="maxTagCount"
10
+ :maxTagPlaceholder="maxTagPlaceholder"
11
+ :filterOption="false"
12
+ :allowClear="true"
13
+ :showArrow="true"
14
+ ref="quickInputSelect"
15
+ class="quick-dynamic-select"
16
+ :notFoundContent="componentCfg.fetchingWordbook ? undefined : '暂无数据'"
17
+ :class="{ 'quick-dynamic-select-mul': maxTagCount > 0 }"
18
+ @search="handleWordBookSearchRender($event, componentCfg)"
19
+ @dropdownVisibleChange="dropdownVisibleChangeRender($event, componentCfg)"
20
+ @change="handleChange($event, componentCfg)"
21
+ >
22
+ <template>
23
+ <a-select-option
24
+ v-for="(sea, k) in componentCfg.dataSource"
25
+ :key="k + sea.myName"
26
+ :value="sea.myName"
27
+ class="quick-dynamic-select-item"
28
+ >
29
+ <span v-for="(v, i) in showKeys" :key="i" :style="getShowKeysMax">
30
+ <Ellipsis :content="sea[v]"></Ellipsis>
31
+ </span>
32
+ </a-select-option>
33
+ </template>
34
+ <span slot="notFoundContent">暂无数据</span>
35
+ <div
36
+ slot="dropdownRender"
37
+ class="quick-dynamic-dropDown-container"
38
+ :class="{ 'quick-dynamic-dropDown-container-hasTitle': selectHasTitle }"
39
+ slot-scope="menu"
40
+ >
41
+ <a-spin v-if="componentCfg.fetchingWordbook" :spinning="componentCfg.fetchingWordbook" :tip="`加载中...`" >
42
+ <v-nodes :vnodes="menu" />
43
+ <!-- <select-pages v-if="!isnoPages" :searchPageConfig="componentCfg.searchPageConfig" :handleSearchChangePage="handleSearchChangePage" /> -->
44
+ </a-spin>
45
+ <template v-else-if="selectHasTitle">
46
+ <v-nodes :vnodes="menu" />
47
+ <div class="quick-dynamic-select-title">
48
+ <span v-for="(v, i) in _showKeys_" :key="i">
49
+ <Ellipsis :content="v"></Ellipsis>
50
+ </span>
51
+ </div>
52
+ </template>
53
+ <template v-else>
54
+ <v-nodes :vnodes="menu" />
55
+ </template>
56
+ </div>
57
+ <span slot="removeIcon">
58
+ <a-icon v-if="showRemoveIcon" type="close" />
59
+ <span v-else></span>
60
+ </span>
61
+ </a-select>
62
+ </div>
63
+ </template>
64
+ <script>
65
+ import { Select, Spin, Icon,Button } from 'ant-design-vue';
66
+ import selectPages from '@/component/select-pages';
67
+ import Ellipsis from '~/ellipsis'
68
+ export default {
69
+ name: "SelectDynamic",
70
+ components: {
71
+ Select,
72
+ [Select.name]: Select,
73
+ [Select.Option.name]: Select.Option,
74
+ [Spin.name]: Spin,
75
+ [Button.name]:Button,
76
+ [Icon.name]: Icon,
77
+ selectPages,
78
+ Ellipsis,
79
+ VNodes: {
80
+ functional: true,
81
+ render: (h, ctx) => ctx.props.vnodes
82
+ }
83
+ },
84
+ props: {
85
+ value: {
86
+ type: [Array, String, Number],
87
+ },
88
+ componentCfg: { type: Object },
89
+ placeholder: String,
90
+ mode: String,
91
+ handleWordBookSearchRender: Function,
92
+ dropdownVisibleChangeRender: Function
93
+ },
94
+ data() {
95
+ return {};
96
+ },
97
+ model: {
98
+ prop: "value",
99
+ event: "update:value"
100
+ },
101
+ computed: {
102
+ valueCp: {
103
+ set(val) {
104
+ this.$emit("update:value", val);
105
+ },
106
+ get() {
107
+ return this.value;
108
+ }
109
+ },
110
+ showSelectTitle() {
111
+ let { fetchingWordbook, dataSource } = this.componentCfg || {};
112
+ return !fetchingWordbook && !!dataSource?.length;
113
+ },
114
+ showKeys() {
115
+ let { showKeys } = this.componentCfg?.widgetCfg?.dynamicOptionInfo || {};
116
+ return showKeys;
117
+ },
118
+ _showKeys_() {
119
+ let { _showKeys_ } = this.componentCfg || {};
120
+ if(_showKeys_?.length) return _showKeys_;
121
+ return this.showKeys;
122
+ },
123
+ getShowKeysMax(){
124
+ let len = this.showKeys?.length || 1
125
+ let maxWidth = 100 / len
126
+ return {
127
+ maxWidth: `${maxWidth}%`
128
+ }
129
+ },
130
+ selectHasTitle() {
131
+ const {showSelectTitle, showKeys, componentCfg} = this;
132
+ return showSelectTitle && Array.isArray(showKeys) && showKeys?.length > 1 && componentCfg?.dataSource?.length;
133
+ },
134
+ maxTagCount() {
135
+ if (!Array.isArray(this.value)) return undefined;
136
+ const len = this.value.length || 0;
137
+ return len > 1 ? 0 : 1;
138
+ },
139
+ showRemoveIcon(){
140
+ let v = this.value;
141
+ let f = 1 == this?.componentCfg?.filterExplicit
142
+ if(Array.isArray(v) && f){
143
+ let l = v.length;
144
+ if(this.componentCfg.explicitRequired == 1){
145
+ return l > 1
146
+ }
147
+ }
148
+
149
+ return true;
150
+ },
151
+ // 有没有分页配置
152
+ isnoPages(){
153
+ const { searchPageConfig } = this.componentCfg || {};
154
+ if(!searchPageConfig) return true;
155
+
156
+ return searchPageConfig.page <= 1 && !searchPageConfig.hasNextPage;
157
+ }
158
+ },
159
+ watch: {
160
+ // value: {
161
+ // immediate: true,
162
+ // handler(val) {}
163
+ // }
164
+ },
165
+ // 生命周期
166
+ created() {},
167
+ mounted() {},
168
+
169
+ // 方法
170
+ methods: {
171
+ maxTagPlaceholder() {
172
+ if (!Array.isArray(this.value)) return undefined;
173
+ const { alias, title } = this.componentCfg;
174
+ const len = this.value.length || 0;
175
+ return this.value.length > 1 ? `已选${len}个${alias || title}` : "";
176
+ },
177
+ handleChange(val, item){
178
+ if(this.mode === 'multiple') return;
179
+ this.$emit('change')
180
+ },
181
+ handleSearchChangePage(type) {
182
+ let cType = type || 'next';
183
+ let { page, keyword = undefined } = this?.componentCfg?.searchPageConfig;
184
+ page = cType === 'next' ? page + 1 : page - 1;
185
+ this.handleWordBookSearchRender(keyword, this.componentCfg, { page });
186
+ }
187
+ }
188
+ };
189
+ </script>
190
+ <style lang="less">
191
+ .SelectDynamic {
192
+ width: 100%;
193
+ }
194
+ .ant-select-dropdown--empty {
195
+ .ant-select-dropdown-menu-item-disabled {
196
+ text-align: center;
197
+ }
198
+ }
199
+ .quick-dynamic-select {
200
+ width: 100%;
201
+ height: 32px;
202
+ &.quick-dynamic-select-mul {
203
+ .ant-select-selection--multiple {
204
+ max-height: 100% !important;
205
+ }
206
+ }
207
+ .ant-select-selection--multiple {
208
+ position: relative;
209
+ max-height: 32px !important;
210
+ }
211
+
212
+ }
213
+
214
+ .ant-select-dropdown--multiple {
215
+ .quick-dynamic-dropDown-container .quick-dynamic-select-title {
216
+ padding-right: 32px;
217
+ }
218
+ }
219
+
220
+ .c-s-title-line {
221
+ font-weight: 700;
222
+ color: #000;
223
+ font-size: 14px;
224
+ }
225
+ .c-s-content-item {
226
+ padding: 0 5px;
227
+ }
228
+
229
+ .quick-dynamic-dropDown-container {
230
+ position: relative;
231
+ .ant-select-dropdown-menu {
232
+ &::-webkit-scrollbar {
233
+ width: 4px;
234
+ height: 6px;
235
+ background-color: #f2f2f2;
236
+ }
237
+
238
+ /*定义滚动条轨道 内阴影+圆角*/
239
+ &::-webkit-scrollbar-track {
240
+ border-radius: 10px;
241
+ background-color: #f2f2f2;
242
+ }
243
+
244
+ /*定义滑块 内阴影+圆角*/
245
+ &::-webkit-scrollbar-thumb {
246
+ border-radius: 10px;
247
+ background-color: #dbdcdc;
248
+ }
249
+ }
250
+ &.quick-dynamic-dropDown-container-hasTitle {
251
+ padding-top: 32px;
252
+ width: 240px;
253
+ }
254
+ .quick-dynamic-select-title {
255
+ position: absolute;
256
+ top: 0;
257
+ width: 100%;
258
+ padding: 5px 12px;
259
+ display: table;
260
+ table-layout: fixed;
261
+ color: #212121;
262
+ font-weight: 700;
263
+ font-size: 14px;
264
+ > span {
265
+ display: table-cell;
266
+ overflow-wrap: break-word;
267
+ word-break: break-word;
268
+ }
269
+ }
270
+ .quick-dynamic-select-item {
271
+ display: flex;
272
+ > span {
273
+ flex: 1;
274
+ }
275
+ }
276
+ .ant-select-dropdown-menu-item-disabled {
277
+ min-height: 42px;
278
+ }
279
+ }
280
+ </style>
@@ -0,0 +1,80 @@
1
+ <template>
2
+ <a-select
3
+ v-bind="$attrs"
4
+ v-on="$listeners"
5
+ v-model="valueCp"
6
+ :maxTagCount="maxTagCount"
7
+ :maxTagPlaceholder="maxTagPlaceholder"
8
+ >
9
+ <a-select-option v-for="tag in optionList" :value="tag" :key="tag">{{ tag }}</a-select-option>
10
+ </a-select>
11
+ </template>
12
+
13
+ <script>
14
+ import { Select } from 'ant-design-vue';
15
+
16
+ export default {
17
+ inheritAttrs: false,
18
+ components: {
19
+ Select,
20
+ [Select.name]: Select,
21
+ [Select.Option.name]: Select.Option,
22
+ },
23
+ props: {
24
+ value: {
25
+ type: [Array, String, Number],
26
+ },
27
+ componentCfg: {
28
+ type: Object
29
+ },
30
+ getLabelListMethodRender: Function
31
+ },
32
+ model: {
33
+ prop: "value",
34
+ event: "update:value"
35
+ },
36
+ created() {
37
+ this.getLabelListMethodRender(this.componentCfg)
38
+ },
39
+ computed: {
40
+ valueCp: {
41
+ set(val) {
42
+ const valueStr = val ? val.join('|#|') : val;
43
+ this.$emit("update:value", valueStr);
44
+ },
45
+ get() {
46
+ const valueList = this.value ? this.value.split('|#|') : [];
47
+ return valueList;
48
+ }
49
+ },
50
+ maxTagCount() {
51
+ if (!Array.isArray(this.valueCp)) return undefined;
52
+ const len = this.valueCp.length || 0;
53
+ return len > 1 ? 0 : 1;
54
+ },
55
+ optionList() {
56
+ const {
57
+ tagList = []
58
+ } = this.componentCfg;
59
+ if (tagList && tagList.length > 0) {
60
+ let result = [];
61
+ tagList.forEach(category => {
62
+ category.labelList.forEach(label => {
63
+ if(!result.includes(label.labelShowText)) result.push(label.labelShowText);
64
+ })
65
+ })
66
+ return result;
67
+ }
68
+ return []
69
+ }
70
+ },
71
+ methods: {
72
+ maxTagPlaceholder() {
73
+ if (!Array.isArray(this.valueCp)) return undefined;
74
+ const { alias, title } = this.componentCfg;
75
+ const len = this.valueCp.length || 0;
76
+ return this.valueCp.length > 1 ? `已选${len}个${alias || title}` : "";
77
+ }
78
+ },
79
+ }
80
+ </script>
@@ -1,7 +1,9 @@
1
1
  import CheckboxGroup from './CheckboxGroup.vue';
2
2
  import Select from './Select.vue';
3
+ import NumberRange from './NumberRange.vue';
4
+ import DateRangeQuick from './DateRangeQuick.vue';
5
+ import SelectDynamic from './SelectDynamic.vue';
6
+ import Label from './Label.vue';
7
+ import SelectLabel from './SelectLabel.vue'
3
8
 
4
- export {
5
- CheckboxGroup,
6
- Select
7
- }
9
+ export { CheckboxGroup, Select, NumberRange, DateRangeQuick, SelectDynamic, Label, SelectLabel };
@@ -1,29 +1,36 @@
1
1
  export const WidgetTypeEnums = {
2
- INPUT_NUMBER: "NUMBER",
3
- INPUT: "TEXT",
4
- SELECT: "SELECT",
5
- DATE: "DATE",
6
- DATE_TIME: "DATETIME",
2
+ INPUT_NUMBER: 'NUMBER',
3
+ INPUT: 'TEXT',
4
+ SELECT: 'SELECT',
5
+ SELECT_DYNAMIC: 'SELECT_DYNAMIC',
6
+ DATE: 'DATE',
7
+ DATE_TIME: 'DATETIME',
7
8
  CHECKBOX_GROUP: 'CHECKBOX_GROUP',
8
- }
9
+ INPUT_NUMBER_RANGE: 'NUMBER_RANGE',
10
+ DATE_RANGE: 'DATE_RANGE',
11
+ DATETIME_RANGE: 'DATETIME_RANGE',
12
+ DATE_RANGE_QUICK: 'DATE_RANGE_QUICK',
13
+ LABEL: 'LABEL',
14
+ SELECT_LABEL: 'SELECT_LABEL'
15
+ };
9
16
 
10
17
  export const DatePresetValEnums = {
11
- CUSTOM: "CUSTOM", // 自定义输入,特殊处理
18
+ CUSTOM: 'CUSTOM', // 自定义输入,特殊处理
12
19
 
13
- NOW: "NOW",
14
- TODAY: "TODAY",
15
- TODAY_START: "TODAY_START",
16
- TODAY_END: "TODAY_END",
17
- TOMORROW: "TOMORROW",
18
- TOMORROW_START: "TOMORROW_START",
19
- TOMORROW_END: "TOMORROW_END",
20
- YESTERDAY: "YESTERDAY",
21
- YESTERDAY_START: "YESTERDAY_START",
22
- YESTERDAY_END: "YESTERDAY_END",
20
+ NOW: 'NOW',
21
+ TODAY: 'TODAY',
22
+ TODAY_START: 'TODAY_START',
23
+ TODAY_END: 'TODAY_END',
24
+ TOMORROW: 'TOMORROW',
25
+ TOMORROW_START: 'TOMORROW_START',
26
+ TOMORROW_END: 'TOMORROW_END',
27
+ YESTERDAY: 'YESTERDAY',
28
+ YESTERDAY_START: 'YESTERDAY_START',
29
+ YESTERDAY_END: 'YESTERDAY_END',
23
30
 
24
- WEEK_START: "THIS_WEEK_START",
25
- WEEK_END: "THIS_WEEK_END",
31
+ WEEK_START: 'THIS_WEEK_START',
32
+ WEEK_END: 'THIS_WEEK_END',
26
33
 
27
- MONTH_START: "THIS_MONTH_START",
28
- MONTH_END: "THIS_MONTH_END",
29
- };
34
+ MONTH_START: 'THIS_MONTH_START',
35
+ MONTH_END: 'THIS_MONTH_END'
36
+ };
@@ -1,16 +1,29 @@
1
1
  <script type="text/jsx">
2
2
  import { WidgetTypeEnums } from './enums';
3
3
  import { WidgetCfgMaps } from './widgetCfgMaps';
4
+ import { filterApiFn } from '../../mixins/mixins';
5
+ import dynamicMethod from './mixins/dynamic-method';
6
+ import labelMethod from './mixins/label-method';
7
+ import { debounce } from "lodash";
4
8
 
5
9
  const UseSelfWidth = [WidgetTypeEnums.DATE, WidgetTypeEnums.DATE_TIME, WidgetTypeEnums.CHECKBOX_GROUP];
10
+ const unsetMinWidth = [WidgetTypeEnums.DATE, WidgetTypeEnums.DATE_TIME, WidgetTypeEnums.DATE_RANGE, WidgetTypeEnums.DATETIME_RANGE, WidgetTypeEnums.INPUT_NUMBER_RANGE];
6
11
 
7
12
  export default {
8
13
  props: {
9
14
  cfg: {
10
15
  type: Object,
11
16
  required: true,
12
- }
17
+ },
18
+ source: {
19
+ type: String
20
+ },
21
+ filterApiConfig: {
22
+ type: Object,
23
+ default: () => ({})
24
+ },
13
25
  },
26
+ mixins: [filterApiFn, dynamicMethod, labelMethod],
14
27
  model: {
15
28
  event: "update:value",
16
29
  prop: "value",
@@ -23,6 +36,9 @@ export default {
23
36
  get() {
24
37
  return this.cfg.value;
25
38
  }
39
+ },
40
+ isQuick() {
41
+ return this.source === 'quickSearch'
26
42
  }
27
43
  },
28
44
  data() {
@@ -35,20 +51,38 @@ export default {
35
51
  this.$emit("outFilterChange");
36
52
  },
37
53
  getEleWidth(cfg) {
54
+ if(this.isQuick) return '100%';
38
55
  const { widgetType } = cfg;
39
56
  if (UseSelfWidth.includes(widgetType)) return;
40
- return `${cfg.advanceColWidth||200}px`;
57
+ let defW = 200
58
+ if(cfg?.fieldType?.includes?.('DATE') && cfg?.widgetCfg?.rangeFilter) {
59
+ defW = 350
60
+ }
61
+ return `${cfg.advanceColWidth||defW}px`;
62
+ },
63
+ getEleMinWidth(cfg){
64
+ if(!this.isQuick) return `${cfg.advanceColWidth|| 195}px`;
65
+ const { widgetType } = cfg;
66
+ if (!unsetMinWidth.includes(widgetType)) return;
67
+ return `unset`;
41
68
  },
42
69
  initComponentProps(cfg) {
43
- const { widgetType, alias, title, placeholder: customPlaceholder, widgetCfg } = cfg;
70
+ const { widgetType, alias, title, placeholder: customPlaceholder, widgetCfg, fieldType } = cfg;
44
71
  const { props, handlerProps } = WidgetCfgMaps.get(widgetType);
45
72
  let Props = { ...props };
46
73
  if (handlerProps) {
47
- Props = handlerProps(Props, { ...widgetCfg, title: alias || title });
74
+ Props = handlerProps(Props, { ...widgetCfg, title: alias || title, fieldType, isQuick: this.isQuick });
48
75
  }
49
76
  if (customPlaceholder) {
50
77
  Props.placeholder = customPlaceholder;
51
78
  }
79
+ if(widgetType === 'SELECT_DYNAMIC') {
80
+ Props.dropdownVisibleChangeRender = this.dropdownVisibleChangeRender;
81
+ Props.handleWordBookSearchRender = this.handleWordBookSearchRender;
82
+ }
83
+ if(widgetType === 'LABEL' || widgetType === 'SELECT_LABEL') {
84
+ Props.getLabelListMethodRender = this.getLabelListMethodRender;
85
+ }
52
86
  this.initialProps = Props;
53
87
  if (Props.value) {
54
88
  this.valueCp = Props.value;
@@ -63,6 +97,7 @@ export default {
63
97
  const { component, style, eventsBySearch = [] } = WidgetCfgMaps.get(widgetType);
64
98
  const props = { ...this.initialProps, value };
65
99
 
100
+
66
101
  const EventsBySearch = eventsBySearch.reduce((evts, item) => {
67
102
  const { name, handler } = item;
68
103
  let eventHandler = this.search;
@@ -77,10 +112,15 @@ export default {
77
112
  };
78
113
  }, {});
79
114
 
80
- return <component style={{ width: this.getEleWidth(cfg), ...style }} attrs={{...props}} componentCfg={{...cfg}} on={{...EventsBySearch}} vModel={this.valueCp} />
115
+ const setCfgCon = (val) => {
116
+ this.cfg.con = val;
117
+ }
118
+ let width = this.getEleWidth(cfg);
119
+ return <component attrs={{...props, source: this.source, componentCfg: this.cfg}} style={{ width, minWidth: this.getEleMinWidth(cfg), ...style }} on={{...EventsBySearch, setCfgCon}} vModel={this.valueCp} />
81
120
  }
82
121
  },
83
122
  created() {
123
+ this.handleWordBookSearchRender = debounce(this.handleWordBookSearchDef, 300)
84
124
  this.initComponentProps(this.cfg);
85
125
  },
86
126
  render() {