@lx-frontend/wrap-element-ui 1.0.5 → 1.0.7-beta.0

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.5",
3
+ "version": "1.0.7-beta.0",
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,6 +141,10 @@ 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 => {
@@ -238,6 +245,11 @@ export function useColumnHeaderOperation({ props, tableDomRef, sortFilterPopover
238
245
  })
239
246
  }
240
247
  }
248
+ if (column.doubleDatePicker) {
249
+ searchValue.value[column.doubleDatePicker.props[0]] = '';
250
+ searchValue.value[column.doubleDatePicker.props[1]] = '';
251
+ }
252
+
241
253
 
242
254
  emitSearch();
243
255
 
@@ -294,6 +306,10 @@ export function useColumnHeaderOperation({ props, tableDomRef, sortFilterPopover
294
306
  const value = params[column.prop] ?? (Array.isArray(column.filters) ? [] : column.filters.default);
295
307
  _filteredValue[column.prop] = value;
296
308
  }
309
+ if (column.doubleDatePicker) {
310
+ _searchValue[column.doubleDatePicker.props[0]] = params[column.doubleDatePicker.props[0]] ?? '';
311
+ _searchValue[column.doubleDatePicker.props[1]] = params[column.doubleDatePicker.props[1]] ?? '';
312
+ }
297
313
  })
298
314
 
299
315
  searchValue.value = { ...searchValue.value, ..._searchValue }
@@ -323,4 +339,4 @@ export function useColumnHeaderOperation({ props, tableDomRef, sortFilterPopover
323
339
  searchValue,
324
340
  inSorting,
325
341
  }
326
- }
342
+ }
@@ -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>>
@@ -100,7 +100,7 @@
100
100
  class="is-empty"
101
101
  >
102
102
  空白
103
- </el-checkbox>
103
+ </el-checkbox>
104
104
  </div>
105
105
  <slot
106
106
  v-if="type === 'slot'"
@@ -218,6 +218,7 @@ export default {
218
218
  this.checkedIds[k] = false
219
219
  })
220
220
  this.$emit('update:formData', { ...this.formData, ...this.initialData })
221
+ this.$emit('clear')
221
222
  },
222
223
 
223
224
  handleFormClose () {
@@ -241,4 +242,4 @@ export default {
241
242
  }
242
243
  }
243
244
  }
244
- </style>
245
+ </style>