Skip to content

Commit 5fb9523

Browse files
authored
feat: added the filter-popper-option attribute to control the filter panel (#4034)
* fix: modify the filtering panel of the table * fix: modify review comments * fix: modify review comments * fix: modify review comments
1 parent ddc6795 commit 5fb9523

File tree

6 files changed

+50
-4
lines changed

6 files changed

+50
-4
lines changed

examples/sites/demos/apis/grid.js

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,23 @@ export default {
3030
pcDemo: 'grid-data-source#data-source-auto-load',
3131
mfDemo: ''
3232
},
33+
{
34+
name: 'filter-popper-options',
35+
typeAnchorName: 'IPopperOption',
36+
type: 'IPopperOption',
37+
defaultValue: '{}',
38+
desc: {
39+
'zh-CN': '过滤面板弹出层配置项;具体参考 IPopperOption 的描述',
40+
'en-US':
41+
'Configuration item for the filter panel pop-up layer; refer to the description of IPopperOption for details'
42+
},
43+
meta: {
44+
stable: '3.29.0'
45+
},
46+
mode: ['pc'],
47+
pcDemo: 'grid-filter#filter-default-filter',
48+
mfDemo: ''
49+
},
3350
{
3451
name: 'auto-resize',
3552
type: 'boolean',
@@ -3217,6 +3234,21 @@ export default {
32173234
}
32183235
],
32193236
types: [
3237+
{
3238+
name: 'IPopperOption',
3239+
type: 'interface',
3240+
code: `
3241+
interface IPopperOption {
3242+
bubbling: boolean // 是否监听元素所有上级有滚动元素的scroll事件,监听到则更新popper的位置。用于解决某些弹出层位置在页面滚动时,位置不正确的场景,默认false
3243+
followReferenceHide: boolean // 当触发源隐藏时,自动隐藏弹出层,默认true
3244+
removeOnDestroy: boolean // 弹出层消失后,是否移除弹出层的DOM元素,布尔false
3245+
updateHiddenPopperOnScroll: boolean // 滚动过程中是否更新隐藏的弹出层位置
3246+
boundariesElement: 'viewport' | 'body' | HTMLElement // 滚动过程中,弹出层的碰撞边界。 默认值为: 'viewport'
3247+
ignoreBoundaries: boolean // 忽略边界判断,弹出的位置始终是设置的 placement 值
3248+
scrollParent: HTMLElement // 指定滚动的父节点,优化级最高。 默认为null
3249+
}
3250+
`
3251+
},
32203252
{
32213253
name: 'IRow',
32223254
type: 'interface',

examples/sites/demos/pc/app/grid/filter/default-filter-composition-api.vue

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<template>
2-
<tiny-grid :data="tableData" @toolbar-button-click="toolbarButtonClickEvent">
2+
<tiny-grid :data="tableData" :filter-popper-options="popperConfigs" @toolbar-button-click="toolbarButtonClickEvent">
33
<template #toolbar>
44
<tiny-grid-toolbar :buttons="toolbarButtons"> </tiny-grid-toolbar>
55
</template>
@@ -30,6 +30,10 @@ const filteData = [
3030
{ label: '韶关', value: '韶关' }
3131
]
3232
33+
const popperConfigs = {
34+
bubbling: true
35+
}
36+
3337
const toolbarButtons = ref([
3438
{
3539
code: 'clearFilter',

examples/sites/demos/pc/app/grid/filter/default-filter.vue

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<template>
2-
<tiny-grid :data="tableData" @toolbar-button-click="toolbarButtonClickEvent">
2+
<tiny-grid :data="tableData" :filter-popper-options="popperConfigs" @toolbar-button-click="toolbarButtonClickEvent">
33
<template #toolbar>
44
<tiny-grid-toolbar :buttons="toolbarButtons"> </tiny-grid-toolbar>
55
</template>
@@ -37,6 +37,9 @@ export default {
3737
},
3838
data() {
3939
return {
40+
popperConfigs: {
41+
bubbling: true
42+
},
4043
toolbarButtons: [
4144
{
4245
code: 'clearFilter',

examples/sites/demos/pc/app/grid/webdoc/grid-filter.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ export default {
1818
<li>values 设置在显示枚举选项功能 (enumable) 下制定静态数据源。</li>
1919
<li>label 设置枚举数据的显示值属性字段,默认'label'。</li>
2020
<li>value 设置枚举数据的实际值属性字段,默认'value'。</li>
21+
<li>filter-popper-options 设置过滤面板弹出层配置项</li>
2122
</ul>
2223
</p>
2324
</div>

packages/vue/src/grid/src/filter/src/panel.tsx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -214,6 +214,7 @@ export default defineComponent({
214214
renderBase,
215215
renderSimple
216216
} = this as any
217+
217218
const { args, column, options, layout = 'input,enum,default,extends,base' } = filterStore
218219
const layoutMap = {
219220
input: renderInput,
@@ -309,7 +310,8 @@ export default defineComponent({
309310

310311
this.popperJS = new PopperJS(reference, popper, {
311312
placement: 'bottom-end',
312-
gpuAcceleration: false
313+
gpuAcceleration: false,
314+
...(this.$grid?.filterPopperOptions || {})
313315
})
314316
popper.style.display = 'block'
315317
})

packages/vue/src/grid/src/grid/grid.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,11 @@ export default defineComponent({
129129
default: false
130130
},
131131
isMultipleHistory: Boolean,
132-
selectToolbar: [Boolean, Object]
132+
selectToolbar: [Boolean, Object],
133+
filterPopperOptions: {
134+
type: Object,
135+
default: () => ({})
136+
}
133137
},
134138
data() {
135139
return {

0 commit comments

Comments
 (0)