@lx-frontend/wrap-element-ui 1.0.6 → 1.0.7-beta.1

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lx-frontend/wrap-element-ui",
3
- "version": "1.0.6",
3
+ "version": "1.0.7-beta.1",
4
4
  "description": "wrap-element-ui",
5
5
  "author": "",
6
6
  "main": "src/components/index.ts",
@@ -41,7 +41,7 @@ export function useColumnHeaderOperation({ props, tableDomRef, sortFilterPopover
41
41
  return value.length;
42
42
  }));
43
43
 
44
- const showColumnHeadSortIcon = (column: IColumnConfig) => column.filters || column.isColumnSortable || column.search || column.summary;
44
+ const showColumnHeadSortIcon = (column: IColumnConfig) => column.filters || column.isColumnSortable || column.search || column.summary || column.doubleDatePicker;
45
45
 
46
46
  watch(
47
47
  () => props.columnConfig,
@@ -74,6 +74,11 @@ export function useColumnHeaderOperation({ props, tableDomRef, sortFilterPopover
74
74
  }
75
75
 
76
76
  const isColumnHeadActive = (column: IColumnConfig) => {
77
+ const hasPickerParams = !!(
78
+ column.doubleDatePicker
79
+ && (searchValue.value[column.doubleDatePicker.props[0]] || searchValue.value[column.doubleDatePicker.props[1]])
80
+ )
81
+
77
82
  return (
78
83
  !!(column.filters && (Array.isArray(column.filters)
79
84
  ? ((filteredValue.value[column.prop] as any[]).length)
@@ -84,9 +89,7 @@ export function useColumnHeaderOperation({ props, tableDomRef, sortFilterPopover
84
89
  !!(column.search
85
90
  ? Array.isArray(column.search) && column.search?.some(v => searchValue.value[v.prop])
86
91
  : searchValue.value[column.prop])
87
- ) ||
88
- sortingColumn.value?.prop === column.prop ||
89
- summaryList.value.includes(column.prop);
92
+ ) || hasPickerParams || sortingColumn.value?.prop === column.prop || summaryList.value.includes(column.prop);
90
93
  }
91
94
 
92
95
  const handleHeaderPopoverShow = (column: IColumnConfig) => {
@@ -138,13 +141,20 @@ export function useColumnHeaderOperation({ props, tableDomRef, sortFilterPopover
138
141
  params[prop] = searchValue.value[prop]
139
142
  }
140
143
  }
144
+ if (column.doubleDatePicker) {
145
+ params[column.doubleDatePicker.props[0]] = searchValue.value[column.doubleDatePicker.props[0]]
146
+ params[column.doubleDatePicker.props[1]] = searchValue.value[column.doubleDatePicker.props[1]]
147
+ }
141
148
  })
142
149
 
143
150
  Object.keys(params).forEach(key => {
144
151
  if (params[key] === undefined) delete params[key]
145
152
  })
146
153
 
147
- emit('search', params);
154
+ emit('search', {
155
+ ...params,
156
+ page: 1
157
+ });
148
158
  };
149
159
 
150
160
  const handleHeaderOperationConfirm = async (column: IColumnConfig, scope) => {
@@ -238,6 +248,11 @@ export function useColumnHeaderOperation({ props, tableDomRef, sortFilterPopover
238
248
  })
239
249
  }
240
250
  }
251
+ if (column.doubleDatePicker) {
252
+ searchValue.value[column.doubleDatePicker.props[0]] = '';
253
+ searchValue.value[column.doubleDatePicker.props[1]] = '';
254
+ }
255
+
241
256
 
242
257
  emitSearch();
243
258
 
@@ -294,6 +309,10 @@ export function useColumnHeaderOperation({ props, tableDomRef, sortFilterPopover
294
309
  const value = params[column.prop] ?? (Array.isArray(column.filters) ? [] : column.filters.default);
295
310
  _filteredValue[column.prop] = value;
296
311
  }
312
+ if (column.doubleDatePicker) {
313
+ _searchValue[column.doubleDatePicker.props[0]] = params[column.doubleDatePicker.props[0]] ?? '';
314
+ _searchValue[column.doubleDatePicker.props[1]] = params[column.doubleDatePicker.props[1]] ?? '';
315
+ }
297
316
  })
298
317
 
299
318
  searchValue.value = { ...searchValue.value, ..._searchValue }
@@ -323,4 +342,4 @@ export function useColumnHeaderOperation({ props, tableDomRef, sortFilterPopover
323
342
  searchValue,
324
343
  inSorting,
325
344
  }
326
- }
345
+ }
@@ -28,4 +28,4 @@ export function usePagination({ emit, beforePageChange }: IParams) {
28
28
  handlePageSizeChange,
29
29
  handleCurrPageChange,
30
30
  }
31
- }
31
+ }
@@ -75,6 +75,38 @@
75
75
  />
76
76
  </div>
77
77
  </div>
78
+
79
+ <div
80
+ v-if="column.doubleDatePicker"
81
+ class="editable-table-sort-filter__sort"
82
+ >
83
+ <div class="editable-table-sort-filter__search-title">
84
+ {{ column.doubleDatePicker.label }}
85
+ </div>
86
+ <div
87
+ class="editable-table-sort-filter__date-picker-content"
88
+ style="display: flex;flex-direction: column;gap: 12px;"
89
+ >
90
+ <el-date-picker
91
+ @input="val => emit('update:tempSearchValue', column.doubleDatePicker.props[0], val)"
92
+ :value="tempSearchValue[column.doubleDatePicker.props[0]]"
93
+ value-format="yyyy-MM-dd"
94
+ format="yyyy-MM-dd"
95
+ type="date"
96
+ size="small"
97
+ placeholder="开始日期"
98
+ />
99
+ <el-date-picker
100
+ @input="val => emit('update:tempSearchValue', column.doubleDatePicker.props[1], val)"
101
+ :value="tempSearchValue[column.doubleDatePicker.props[1]]"
102
+ value-format="yyyy-MM-dd"
103
+ format="yyyy-MM-dd"
104
+ size="small"
105
+ type="date"
106
+ placeholder="结束日期"
107
+ />
108
+ </div>
109
+ </div>
78
110
 
79
111
  <div
80
112
  v-if="column.filters && ((Array.isArray(column.filters) ? column.filters : column.filters.options).length > 0)"
@@ -199,4 +231,4 @@ defineExpose({
199
231
  popoverRef.value?.doClose()
200
232
  }
201
233
  })
202
- </script>
234
+ </script>
@@ -138,8 +138,8 @@
138
138
  :temp-filtered-value="tempFilteredValue"
139
139
  :temp-search-value="tempSearchValue"
140
140
  @update:tempSummaryList="val => { tempSummaryList = val }"
141
- @update:tempFilteredValue="(key, value) => { tempFilteredValue[key] = value }"
142
- @update:tempSearchValue="(key, value) => { tempSearchValue[key] = value }"
141
+ @update:tempFilteredValue="(key, value) => { $set(tempFilteredValue, key, value) }"
142
+ @update:tempSearchValue="(key, value) => { $set(tempSearchValue, key, value) }"
143
143
  @popover-show="() => handleHeaderPopoverShow(column)"
144
144
  @update:sort="(type) => handleSort(type, column)"
145
145
  @reset="() => handleHeaderOperationReset(column, scope)"
@@ -448,7 +448,7 @@ const currScope = ref<any>(null);
448
448
 
449
449
  /************ 分页相关 *************/
450
450
  const beforePageChange = () => {
451
- searchValue.value = {};
451
+ // searchValue.value = {};
452
452
  };
453
453
  const {
454
454
  pageSize,
@@ -567,8 +567,8 @@ const getColumnBindProps = (column: IColumnConfig) => {
567
567
 
568
568
  const setRowClassName = (scope) => {
569
569
  return `
570
- custom-row-classname
571
- custom-row-classname-${scope.rowIndex}
570
+ custom-row-classname
571
+ custom-row-classname-${scope.rowIndex}
572
572
  ${scope.row.isPinned ? 'custom-row-classname-pinned' : ''}
573
573
  `;
574
574
  };
@@ -602,4 +602,4 @@ watch([
602
602
 
603
603
  <style lang="less">
604
604
  @import './index.less';
605
- </style>
605
+ </style>
@@ -31,6 +31,10 @@ type _IColumnConfigRequired = {
31
31
  formatter?: (row: any, column: IColumnConfig, value: any, index: number) => string | number;
32
32
  width?: number | string;
33
33
  minWidth?: number | string;
34
+ doubleDatePicker?: {
35
+ props: [string, string],
36
+ label: string,
37
+ }; // 是否开启日期范围选择器
34
38
  }
35
39
 
36
40
  export type IColumnConfigRequired = _IColumnConfigRequired & Partial<Omit<TableColumn, keyof _IColumnConfigRequired>>