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