1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
| import { h } from 'vue';
| import XEUtils from 'xe-utils';
| import {
| createEditRender,
| createDefaultRender,
| createProps,
| createEvents,
| createDefaultFilterRender,
| createFormItemRender,
| getComponent,
| } from './common';
|
| export default {
| renderDefault: createDefaultRender(),
| renderEdit: createEditRender(),
| renderFilter(renderOpts, params) {
| const { column } = params;
| const { name, attrs } = renderOpts;
| const Component = getComponent(name);
|
| return [
| h(
| 'div',
| {
| class: 'vxe-table--filter-antd-wrapper',
| },
| column.filters.map((option, oIndex) => {
| const optionValue = option.data;
| return h(Component, {
| key: oIndex,
| ...attrs,
| ...createProps(renderOpts, optionValue),
| ...createEvents(
| renderOpts,
| params,
| (value: any) => {
| // 处理 model 值双向绑定
| option.data = value;
| },
| () => {
| // 处理 change 事件相关逻辑
| const { $panel } = params;
| $panel.changeOption(null, XEUtils.isBoolean(option.data), option);
| },
| ),
| });
| }),
| ),
| ];
| },
| defaultFilterMethod: createDefaultFilterRender(),
| renderItemContent: createFormItemRender(),
| };
|
|