@lx-frontend/wrap-element-ui 1.0.11-beta.1 → 1.0.11-beta.3
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
|
@@ -80,10 +80,10 @@ export function useColumnHeaderOperation({ props, tableDomRef, emit, showingColu
|
|
|
80
80
|
|
|
81
81
|
return (
|
|
82
82
|
!!(column.filters && (Array.isArray(column.filters)
|
|
83
|
-
? ((filteredValue.value[column.prop] as any[]).length)
|
|
83
|
+
? ((filteredValue.value[column.filters.prop || column.prop] as any[]).length)
|
|
84
84
|
: column.filters.type === 'radio'
|
|
85
|
-
? filteredValue.value[column.prop]
|
|
86
|
-
: (filteredValue.value[column.prop] as any[]).length))
|
|
85
|
+
? filteredValue.value[column.filters.prop || column.prop]
|
|
86
|
+
: (filteredValue.value[column.filters.prop || column.prop] as any[]).length))
|
|
87
87
|
) || (
|
|
88
88
|
!!(column.search
|
|
89
89
|
? Array.isArray(column.search) && column.search?.some(v => searchValue.value[v.prop])
|
|
@@ -130,7 +130,7 @@ export function useColumnHeaderOperation({ props, tableDomRef, emit, showingColu
|
|
|
130
130
|
showingColumns.value.forEach(prop => {
|
|
131
131
|
const column = columnMap.value[prop]
|
|
132
132
|
if (column.filters) {
|
|
133
|
-
params[prop] = filteredValue.value[prop]
|
|
133
|
+
params[column.filters.prop || prop] = filteredValue.value[column.filters.prop || prop]
|
|
134
134
|
}
|
|
135
135
|
if (column.search) {
|
|
136
136
|
if (Array.isArray(column.search)) {
|
|
@@ -237,11 +237,11 @@ export function useColumnHeaderOperation({ props, tableDomRef, emit, showingColu
|
|
|
237
237
|
function handleResetFilterValue (column: IColumnConfig) {
|
|
238
238
|
if (column.filters) {
|
|
239
239
|
if (Array.isArray(column.filters)) {
|
|
240
|
-
filteredValue.value[column.prop] = []
|
|
240
|
+
filteredValue.value[column.filters.prop || column.prop] = []
|
|
241
241
|
} else if (column.filters.default) {
|
|
242
|
-
filteredValue.value[column.prop] = column.filters.default
|
|
242
|
+
filteredValue.value[column.filters.prop || column.prop] = column.filters.default
|
|
243
243
|
} else {
|
|
244
|
-
filteredValue.value[column.prop] = column.filters.type === 'radio' ? '' : []
|
|
244
|
+
filteredValue.value[column.filters.prop || column.prop] = column.filters.type === 'radio' ? '' : []
|
|
245
245
|
}
|
|
246
246
|
}
|
|
247
247
|
}
|
|
@@ -321,8 +321,8 @@ export function useColumnHeaderOperation({ props, tableDomRef, emit, showingColu
|
|
|
321
321
|
}
|
|
322
322
|
}
|
|
323
323
|
if (column.filters) {
|
|
324
|
-
const value = params[column.prop] ?? (Array.isArray(column.filters) ? [] : column.filters.default);
|
|
325
|
-
_filteredValue[column.prop] = value;
|
|
324
|
+
const value = params[column.filters.prop || column.prop] ?? (Array.isArray(column.filters) ? [] : column.filters.default);
|
|
325
|
+
_filteredValue[column.filters.prop || column.prop] = value;
|
|
326
326
|
}
|
|
327
327
|
if (column.doubleDatePicker) {
|
|
328
328
|
_searchValue[column.doubleDatePicker.props[0]] = params[column.doubleDatePicker.props[0]] ?? '';
|
|
@@ -126,8 +126,8 @@
|
|
|
126
126
|
<el-checkbox-group
|
|
127
127
|
v-if="column.filters && (Array.isArray(column.filters) || column.filters.type === 'checkbox')"
|
|
128
128
|
class="editable-table-sort-filter__filter-checkbox-group"
|
|
129
|
-
:value="tempFilteredValue[column.prop]"
|
|
130
|
-
@input="val => emit('update:tempFilteredValue', column.prop, val)"
|
|
129
|
+
:value="tempFilteredValue[column.filters.prop || column.prop]"
|
|
130
|
+
@input="val => emit('update:tempFilteredValue', column.filters?.prop || column.prop, val)"
|
|
131
131
|
>
|
|
132
132
|
<el-checkbox
|
|
133
133
|
v-for="item in (Array.isArray(column.filters) ? column.filters : column.filters.options)"
|
|
@@ -148,8 +148,8 @@
|
|
|
148
148
|
<el-radio-group
|
|
149
149
|
v-if="column.filters && !Array.isArray(column.filters) && column.filters.type === 'radio'"
|
|
150
150
|
style="display: flex;flex-direction: column;gap: 6px;"
|
|
151
|
-
:value="tempFilteredValue[column.prop]"
|
|
152
|
-
@input="val => emit('update:tempFilteredValue', column.prop, val)"
|
|
151
|
+
:value="tempFilteredValue[column.filters.prop || column.prop]"
|
|
152
|
+
@input="val => emit('update:tempFilteredValue', column.filters?.prop || column.prop, val)"
|
|
153
153
|
>
|
|
154
154
|
<el-radio
|
|
155
155
|
v-for="item in column.filters.options"
|
|
@@ -105,37 +105,36 @@
|
|
|
105
105
|
:filtered-value="filteredValue[colorFilterConfig?.prop]"
|
|
106
106
|
>
|
|
107
107
|
<template #header="scope">
|
|
108
|
-
<
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
</div>
|
|
108
|
+
<biz-table-header-popover
|
|
109
|
+
v-if="colorFilterConfig"
|
|
110
|
+
:head-active="isColumnHeadActive(colorFilterConfig)"
|
|
111
|
+
:column="colorFilterConfig"
|
|
112
|
+
:showing-columns="showingColumns"
|
|
113
|
+
:temp-summary-list="tempSummaryList"
|
|
114
|
+
:temp-sorting-column="tempSortingColumn"
|
|
115
|
+
:temp-sort-type="tempSortType"
|
|
116
|
+
:temp-filtered-value="tempFilteredValue"
|
|
117
|
+
:temp-search-value="tempSearchValue"
|
|
118
|
+
@update:tempSummaryList="val => { tempSummaryList = val }"
|
|
119
|
+
@update:tempFilteredValue="(key, value) => { $set(tempFilteredValue, key, value) }"
|
|
120
|
+
@update:tempSearchValue="(key, value) => { $set(tempSearchValue, key, value) }"
|
|
121
|
+
@popover-show="() => handleHeaderPopoverShow(colorFilterConfig)"
|
|
122
|
+
@update:sort="(type) => handleSort(type, colorFilterConfig)"
|
|
123
|
+
@reset="() => handleHeaderOperationReset(colorFilterConfig, scope)"
|
|
124
|
+
@confirm="() => handleHeaderOperationConfirm(colorFilterConfig, scope)"
|
|
125
|
+
>
|
|
126
|
+
<template #custom>
|
|
127
|
+
<div class="editable-table__color-icon" />
|
|
128
|
+
</template>
|
|
129
|
+
<template #filter-item="item">
|
|
130
|
+
<slot
|
|
131
|
+
:name="colorFilterConfig.prop + '-filter-item'"
|
|
132
|
+
v-bind="item"
|
|
133
|
+
>
|
|
134
|
+
{{ item.text }}
|
|
135
|
+
</slot>
|
|
136
|
+
</template>
|
|
137
|
+
</biz-table-header-popover>
|
|
139
138
|
<div
|
|
140
139
|
v-else
|
|
141
140
|
class="editable-table__color-icon"
|
|
@@ -27,7 +27,9 @@ type _IColumnConfigRequired = {
|
|
|
27
27
|
filters?: {
|
|
28
28
|
type?: 'checkbox' | 'radio',
|
|
29
29
|
options: FiltersOption[]
|
|
30
|
-
default?: string | number | string[] | number[]
|
|
30
|
+
default?: string | number | string[] | number[],
|
|
31
|
+
/** 自定义参数 优先于最外层的prop */
|
|
32
|
+
prop?: string
|
|
31
33
|
} | FiltersOption[]
|
|
32
34
|
/** 格式化函数,用于自定义渲染 */
|
|
33
35
|
formatter?: (row: any, column: IColumnConfig, value: any, index: number) => string | number;
|