vxe-table-plugin-iview
Version:
基于 vxe-table 的表格适配插件,用于兼容 iview、view-design 组件库
943 lines (823 loc) • 33.8 kB
JavaScript
(function (global, factory) {
if (typeof define === "function" && define.amd) {
define("vxe-table-plugin-iview", ["exports", "xe-utils"], factory);
} else if (typeof exports !== "undefined") {
factory(exports, require("xe-utils"));
} else {
var mod = {
exports: {}
};
factory(mod.exports, global.XEUtils);
global.VXETablePluginIView = mod.exports.default;
}
})(typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : this, function (_exports, _xeUtils) {
"use strict";
Object.defineProperty(_exports, "__esModule", {
value: true
});
_exports["default"] = _exports.VXETablePluginIView = void 0;
_xeUtils = _interopRequireDefault(_xeUtils);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
function isEmptyValue(cellValue) {
return cellValue === null || cellValue === undefined || cellValue === '';
}
function getModelProp(renderOpts) {
return 'value';
}
function getModelEvent(renderOpts) {
return 'input';
}
function getChangeEvent(renderOpts) {
return 'on-change';
}
function getFormatDate(value, props, defaultFormat) {
return _xeUtils["default"].toDateString(value, props.format || defaultFormat);
}
function getFormatDates(values, props, separator, defaultFormat) {
return _xeUtils["default"].map(values, function (date) {
return getFormatDate(date, props, defaultFormat);
}).join(separator);
}
function equalDaterange(cellValue, data, props, defaultFormat) {
cellValue = getFormatDate(cellValue, props, defaultFormat);
return cellValue >= getFormatDate(data[0], props, defaultFormat) && cellValue <= getFormatDate(data[1], props, defaultFormat);
}
function getCellEditFilterProps(renderOpts, params, value, defaultProps) {
var vSize = params.$table.vSize;
return _xeUtils["default"].assign(vSize ? {
size: vSize
} : {}, defaultProps, renderOpts.props, _defineProperty({}, getModelProp(renderOpts), value));
}
function getItemProps(renderOpts, params, value, defaultProps) {
var vSize = params.$form.vSize;
return _xeUtils["default"].assign(vSize ? {
size: vSize
} : {}, defaultProps, renderOpts.props, _defineProperty({}, getModelProp(renderOpts), value));
}
function formatText(cellValue) {
return '' + (isEmptyValue(cellValue) ? '' : cellValue);
}
function getCellLabelVNs(h, renderOpts, params, cellLabel) {
var placeholder = renderOpts.placeholder;
return [h('span', {
"class": 'vxe-cell--label'
}, placeholder && isEmptyValue(cellLabel) ? [h('span', {
"class": 'vxe-cell--placeholder'
}, formatText(placeholder))] : formatText(cellLabel))];
}
function getNativeOns(renderOpts, params) {
var nativeEvents = renderOpts.nativeEvents;
var nativeOns = {};
_xeUtils["default"].objectEach(nativeEvents, function (func, key) {
nativeOns[key] = function () {
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
func.apply(void 0, [params].concat(args));
};
});
return nativeOns;
}
function getOns(renderOpts, params, inputFunc, changeFunc) {
var events = renderOpts.events;
var modelEvent = getModelEvent(renderOpts);
var changeEvent = getChangeEvent(renderOpts);
var isSameEvent = changeEvent === modelEvent;
var ons = {};
_xeUtils["default"].objectEach(events, function (func, key) {
ons[key] = function () {
for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
args[_key2] = arguments[_key2];
}
func.apply(void 0, [params].concat(args));
};
});
if (inputFunc) {
ons[modelEvent] = function (targetEvnt) {
inputFunc(targetEvnt);
if (events && events[modelEvent]) {
events[modelEvent](params, targetEvnt);
}
if (isSameEvent && changeFunc) {
changeFunc(targetEvnt);
}
};
}
if (!isSameEvent && changeFunc) {
ons[changeEvent] = function () {
for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
args[_key3] = arguments[_key3];
}
changeFunc.apply(void 0, args);
if (events && events[changeEvent]) {
events[changeEvent].apply(events, [params].concat(args));
}
};
}
return ons;
}
function getEditOns(renderOpts, params) {
var $table = params.$table,
row = params.row,
column = params.column;
return getOns(renderOpts, params, function (value) {
// 处理 model 值双向绑定
_xeUtils["default"].set(row, column.property, value);
}, function () {
// 处理 change 事件相关逻辑
$table.updateStatus(params);
});
}
function getFilterOns(renderOpts, params, option, changeFunc) {
return getOns(renderOpts, params, function (value) {
// 处理 model 值双向绑定
option.data = value;
}, changeFunc);
}
function getItemOns(renderOpts, params) {
var $form = params.$form,
data = params.data,
property = params.property;
return getOns(renderOpts, params, function (value) {
// 处理 model 值双向绑定
_xeUtils["default"].set(data, property, value);
}, function () {
// 处理 change 事件相关逻辑
$form.updateStatus(params);
});
}
function matchCascaderData(index, list, values, labels) {
var val = values[index];
if (list && values.length > index) {
_xeUtils["default"].each(list, function (item) {
if (item.value === val) {
labels.push(item.label);
matchCascaderData(++index, item.children, values, labels);
}
});
}
}
function getSelectCellValue(renderOpts, params) {
var _renderOpts$options = renderOpts.options,
options = _renderOpts$options === void 0 ? [] : _renderOpts$options,
optionGroups = renderOpts.optionGroups,
_renderOpts$props = renderOpts.props,
props = _renderOpts$props === void 0 ? {} : _renderOpts$props,
_renderOpts$optionPro = renderOpts.optionProps,
optionProps = _renderOpts$optionPro === void 0 ? {} : _renderOpts$optionPro,
_renderOpts$optionGro = renderOpts.optionGroupProps,
optionGroupProps = _renderOpts$optionGro === void 0 ? {} : _renderOpts$optionGro;
var row = params.row,
column = params.column;
var $table = params.$table;
var labelProp = optionProps.label || 'label';
var valueProp = optionProps.value || 'value';
var groupOptions = optionGroupProps.options || 'options';
var cellValue = _xeUtils["default"].get(row, column.property);
var colid = column.id;
var rest;
var cellData;
if (props.filterable) {
var fullAllDataRowMap = $table.fullAllDataRowMap;
var cacheCell = fullAllDataRowMap.has(row);
if (cacheCell) {
rest = fullAllDataRowMap.get(row);
cellData = rest.cellData;
if (!cellData) {
cellData = fullAllDataRowMap.get(row).cellData = {};
}
}
if (rest && cellData[colid] && cellData[colid].value === cellValue) {
return cellData[colid].label;
}
}
if (!isEmptyValue(cellValue)) {
return _xeUtils["default"].map(props.multiple ? cellValue : [cellValue], optionGroups ? function (value) {
var selectItem;
for (var index = 0; index < optionGroups.length; index++) {
selectItem = _xeUtils["default"].find(optionGroups[index][groupOptions], function (item) {
return item[valueProp] === value;
});
if (selectItem) {
break;
}
}
var cellLabel = selectItem ? selectItem[labelProp] : value;
if (cellData && options && options.length) {
cellData[colid] = {
value: cellValue,
label: cellLabel
};
}
return cellLabel;
} : function (value) {
var selectItem = _xeUtils["default"].find(options, function (item) {
return item[valueProp] === value;
});
var cellLabel = selectItem ? selectItem[labelProp] : value;
if (cellData && options && options.length) {
cellData[colid] = {
value: cellValue,
label: cellLabel
};
}
return cellLabel;
}).join(', ');
}
return '';
}
function getCascaderCellValue(renderOpts, params) {
var _renderOpts$props2 = renderOpts.props,
props = _renderOpts$props2 === void 0 ? {} : _renderOpts$props2;
var row = params.row,
column = params.column;
var cellValue = _xeUtils["default"].get(row, column.property);
var values = cellValue || [];
var labels = [];
matchCascaderData(0, props.data, values, labels);
return labels.join(" ".concat(props.separator || '/', " "));
}
function getDatePickerCellValue(renderOpts, params) {
var _renderOpts$props3 = renderOpts.props,
props = _renderOpts$props3 === void 0 ? {} : _renderOpts$props3;
var row = params.row,
column = params.column;
var separator = props.separator;
var cellValue = _xeUtils["default"].get(row, column.property);
switch (props.type) {
case 'week':
cellValue = getFormatDate(cellValue, props, 'yyyywWW');
break;
case 'month':
cellValue = getFormatDate(cellValue, props, 'yyyy-MM');
break;
case 'year':
cellValue = getFormatDate(cellValue, props, 'yyyy');
break;
case 'dates':
cellValue = getFormatDates(cellValue, props, ', ', 'yyyy-MM-dd');
break;
case 'daterange':
cellValue = getFormatDates(cellValue, props, " ".concat(separator || '-', " "), 'yyyy-MM-dd');
break;
case 'datetimerange':
cellValue = getFormatDates(cellValue, props, " ".concat(separator || '-', " "), 'yyyy-MM-dd HH:ss:mm');
break;
default:
cellValue = getFormatDate(cellValue, props, 'yyyy-MM-dd');
break;
}
return cellValue;
}
function createEditRender(defaultProps) {
return function (h, renderOpts, params) {
var row = params.row,
column = params.column;
var attrs = renderOpts.attrs;
var cellValue = _xeUtils["default"].get(row, column.property);
return [h(renderOpts.name, {
attrs: attrs,
props: getCellEditFilterProps(renderOpts, params, cellValue, defaultProps),
on: getEditOns(renderOpts, params),
nativeOn: getNativeOns(renderOpts, params)
})];
};
}
function defaultButtonEditRender(h, renderOpts, params) {
var attrs = renderOpts.attrs;
return [h('Button', {
attrs: attrs,
props: getCellEditFilterProps(renderOpts, params, null),
on: getOns(renderOpts, params),
nativeOn: getNativeOns(renderOpts, params)
}, cellText(h, renderOpts.content))];
}
function defaultButtonsEditRender(h, renderOpts, params) {
return renderOpts.children.map(function (childRenderOpts) {
return defaultButtonEditRender(h, childRenderOpts, params)[0];
});
}
function createFilterRender(defaultProps) {
return function (h, renderOpts, params) {
var column = params.column;
var name = renderOpts.name,
attrs = renderOpts.attrs;
var nativeOn = getNativeOns(renderOpts, params);
return [h('div', {
"class": 'vxe-table--filter-iview-wrapper'
}, column.filters.map(function (option, oIndex) {
var optionValue = option.data;
return h(name, {
key: oIndex,
attrs: attrs,
props: getCellEditFilterProps(renderOpts, params, optionValue, defaultProps),
on: getFilterOns(renderOpts, params, option, function () {
// 处理 change 事件相关逻辑
handleConfirmFilter(params, !!option.data, option);
}),
nativeOn: nativeOn
});
}))];
};
}
function handleConfirmFilter(params, checked, option) {
var $panel = params.$panel;
$panel.changeOption({}, checked, option);
}
function defaultFilterMethod(params) {
var option = params.option,
row = params.row,
column = params.column;
var data = option.data;
var cellValue = _xeUtils["default"].get(row, column.property);
/* eslint-disable eqeqeq */
return cellValue === data;
}
function renderOptions(h, options, optionProps) {
var labelProp = optionProps.label || 'label';
var valueProp = optionProps.value || 'value';
return _xeUtils["default"].map(options, function (item, oIndex) {
return h('Option', {
key: oIndex,
props: {
value: item[valueProp],
label: item[labelProp],
disabled: item.disabled
}
});
});
}
function cellText(h, cellValue) {
return [formatText(cellValue)];
}
function createFormItemRender(defaultProps) {
return function (h, renderOpts, params) {
var data = params.data,
property = params.property;
var name = renderOpts.name;
var attrs = renderOpts.attrs;
var itemValue = _xeUtils["default"].get(data, property);
return [h(name, {
attrs: attrs,
props: getItemProps(renderOpts, params, itemValue, defaultProps),
on: getItemOns(renderOpts, params),
nativeOn: getNativeOns(renderOpts, params)
})];
};
}
function defaultButtonItemRender(h, renderOpts, params) {
var attrs = renderOpts.attrs;
var props = getItemProps(renderOpts, params, null);
return [h('Button', {
attrs: attrs,
props: props,
on: getOns(renderOpts, params),
nativeOn: getNativeOns(renderOpts, params)
}, cellText(h, renderOpts.content || props.content))];
}
function defaultButtonsItemRender(h, renderOpts, params) {
return renderOpts.children.map(function (childRenderOpts) {
return defaultButtonItemRender(h, childRenderOpts, params)[0];
});
}
function createExportMethod(getExportCellValue) {
return function (params) {
var row = params.row,
column = params.column,
options = params.options;
return options && options.original ? _xeUtils["default"].get(row, column.property) : getExportCellValue(column.editRender || column.cellRender, params);
};
}
function createFormItemRadioAndCheckboxRender() {
return function (h, renderOpts, params) {
var name = renderOpts.name,
_renderOpts$options2 = renderOpts.options,
options = _renderOpts$options2 === void 0 ? [] : _renderOpts$options2,
_renderOpts$optionPro2 = renderOpts.optionProps,
optionProps = _renderOpts$optionPro2 === void 0 ? {} : _renderOpts$optionPro2;
var data = params.data,
property = params.property;
var attrs = renderOpts.attrs;
var labelProp = optionProps.label || 'label';
var valueProp = optionProps.value || 'value';
var itemValue = _xeUtils["default"].get(data, property);
return [h("".concat(name, "Group"), {
attrs: attrs,
props: getItemProps(renderOpts, params, itemValue),
on: getItemOns(renderOpts, params),
nativeOn: getNativeOns(renderOpts, params)
}, options.map(function (option) {
return h(name, {
props: {
label: option[valueProp],
disabled: option.disabled
}
}, option[labelProp]);
}))];
};
}
/**
* 检查触发源是否属于目标节点
*/
function getEventTargetNode(evnt, container, className) {
var targetElem;
var target = evnt.target;
while (target && target.nodeType && target !== document) {
if (className && target.className && target.className.split && target.className.split(' ').indexOf(className) > -1) {
targetElem = target;
} else if (target === container) {
return {
flag: className ? !!targetElem : true,
container: container,
targetElem: targetElem
};
}
target = target.parentNode;
}
return {
flag: false
};
}
/**
* 事件兼容性处理
*/
function handleClearEvent(params, e) {
var bodyElem = document.body;
var evnt = params.$event || e;
if ( // 下拉框、日期
getEventTargetNode(evnt, bodyElem, 'ivu-select-dropdown').flag) {
return false;
}
}
/**
* 基于 vxe-table 表格的适配插件,用于兼容 iview 组件库
*/
var VXETablePluginIView = {
install: function install(vxetable) {
// 检查版本
if (!/^(2|3)\./.test(vxetable.version)) {
console.error('[vxe-table-plugin-iview] Version vxe-table 3.x is required');
}
vxetable.renderer.mixin({
Input: {
autofocus: 'input.ivu-input',
renderDefault: createEditRender(),
renderEdit: createEditRender(),
renderFilter: createFilterRender(),
defaultFilterMethod: defaultFilterMethod,
renderItem: createFormItemRender(),
renderItemContent: createFormItemRender()
},
AutoComplete: {
autofocus: 'input.ivu-input',
renderDefault: createEditRender(),
renderEdit: createEditRender(),
renderFilter: createFilterRender(),
defaultFilterMethod: defaultFilterMethod,
renderItem: createFormItemRender(),
renderItemContent: createFormItemRender()
},
InputNumber: {
autofocus: 'input.ivu-input-number-input',
renderDefault: createEditRender(),
renderEdit: createEditRender(),
renderFilter: createFilterRender(),
defaultFilterMethod: defaultFilterMethod,
renderItem: createFormItemRender(),
renderItemContent: createFormItemRender()
},
Select: {
renderEdit: function renderEdit(h, renderOpts, params) {
var _renderOpts$options3 = renderOpts.options,
options = _renderOpts$options3 === void 0 ? [] : _renderOpts$options3,
optionGroups = renderOpts.optionGroups,
_renderOpts$optionPro3 = renderOpts.optionProps,
optionProps = _renderOpts$optionPro3 === void 0 ? {} : _renderOpts$optionPro3,
_renderOpts$optionGro2 = renderOpts.optionGroupProps,
optionGroupProps = _renderOpts$optionGro2 === void 0 ? {} : _renderOpts$optionGro2;
var row = params.row,
column = params.column;
var attrs = renderOpts.attrs;
var cellValue = _xeUtils["default"].get(row, column.property);
var props = getCellEditFilterProps(renderOpts, params, cellValue);
var on = getEditOns(renderOpts, params);
var nativeOn = getNativeOns(renderOpts, params);
if (optionGroups) {
var groupOptions = optionGroupProps.options || 'options';
var groupLabel = optionGroupProps.label || 'label';
return [h('Select', {
attrs: attrs,
props: props,
on: on,
nativeOn: nativeOn
}, _xeUtils["default"].map(optionGroups, function (group, gIndex) {
return h('OptionGroup', {
props: {
label: group[groupLabel]
},
key: gIndex
}, renderOptions(h, group[groupOptions], optionProps));
}))];
}
return [h('Select', {
attrs: attrs,
props: props,
on: on,
nativeOn: nativeOn
}, renderOptions(h, options, optionProps))];
},
renderCell: function renderCell(h, renderOpts, params) {
return getCellLabelVNs(h, renderOpts, params, getSelectCellValue(renderOpts, params));
},
renderFilter: function renderFilter(h, renderOpts, params) {
var _renderOpts$options4 = renderOpts.options,
options = _renderOpts$options4 === void 0 ? [] : _renderOpts$options4,
optionGroups = renderOpts.optionGroups,
_renderOpts$optionPro4 = renderOpts.optionProps,
optionProps = _renderOpts$optionPro4 === void 0 ? {} : _renderOpts$optionPro4,
_renderOpts$optionGro3 = renderOpts.optionGroupProps,
optionGroupProps = _renderOpts$optionGro3 === void 0 ? {} : _renderOpts$optionGro3;
var groupOptions = optionGroupProps.options || 'options';
var groupLabel = optionGroupProps.label || 'label';
var column = params.column;
var attrs = renderOpts.attrs;
var nativeOn = getNativeOns(renderOpts, params);
return [h('div', {
"class": 'vxe-table--filter-iview-wrapper'
}, optionGroups ? column.filters.map(function (option, oIndex) {
var optionValue = option.data;
var props = getCellEditFilterProps(renderOpts, params, optionValue);
return h('Select', {
key: oIndex,
attrs: attrs,
props: props,
on: getFilterOns(renderOpts, params, option, function () {
// 处理 change 事件相关逻辑
handleConfirmFilter(params, props.multiple ? option.data && option.data.length > 0 : !_xeUtils["default"].eqNull(option.data), option);
}),
nativeOn: nativeOn
}, _xeUtils["default"].map(optionGroups, function (group, gIndex) {
return h('OptionGroup', {
key: gIndex,
props: {
label: group[groupLabel]
}
}, renderOptions(h, group[groupOptions], optionProps));
}));
}) : column.filters.map(function (option, oIndex) {
var optionValue = option.data;
var props = getCellEditFilterProps(renderOpts, params, optionValue);
return h('Select', {
key: oIndex,
attrs: attrs,
props: props,
on: getFilterOns(renderOpts, params, option, function () {
// 处理 change 事件相关逻辑
handleConfirmFilter(params, props.multiple ? option.data && option.data.length > 0 : !_xeUtils["default"].eqNull(option.data), option);
}),
nativeOn: nativeOn
}, renderOptions(h, options, optionProps));
}))];
},
defaultFilterMethod: function defaultFilterMethod(params) {
var option = params.option,
row = params.row,
column = params.column;
var data = option.data;
var property = column.property,
renderOpts = column.filterRender;
var _renderOpts$props4 = renderOpts.props,
props = _renderOpts$props4 === void 0 ? {} : _renderOpts$props4;
var cellValue = _xeUtils["default"].get(row, property);
if (props.multiple) {
if (_xeUtils["default"].isArray(cellValue)) {
return _xeUtils["default"].includeArrays(cellValue, data);
}
return data.indexOf(cellValue) > -1;
}
/* eslint-disable eqeqeq */
return cellValue == data;
},
renderItem: function renderItem(h, renderOpts, params) {
var _renderOpts$options5 = renderOpts.options,
options = _renderOpts$options5 === void 0 ? [] : _renderOpts$options5,
optionGroups = renderOpts.optionGroups,
_renderOpts$optionPro5 = renderOpts.optionProps,
optionProps = _renderOpts$optionPro5 === void 0 ? {} : _renderOpts$optionPro5,
_renderOpts$optionGro4 = renderOpts.optionGroupProps,
optionGroupProps = _renderOpts$optionGro4 === void 0 ? {} : _renderOpts$optionGro4;
var data = params.data,
property = params.property;
var attrs = renderOpts.attrs;
var itemValue = _xeUtils["default"].get(data, property);
var props = getItemProps(renderOpts, params, itemValue);
var on = getItemOns(renderOpts, params);
var nativeOn = getNativeOns(renderOpts, params);
if (optionGroups) {
var groupOptions = optionGroupProps.options || 'options';
var groupLabel = optionGroupProps.label || 'label';
return [h('Select', {
props: props,
attrs: attrs,
on: on,
nativeOn: nativeOn
}, _xeUtils["default"].map(optionGroups, function (group, gIndex) {
return h('OptionGroup', {
key: gIndex,
props: {
label: group[groupLabel]
}
}, renderOptions(h, group[groupOptions], optionProps));
}))];
}
return [h('Select', {
props: props,
attrs: attrs,
on: on,
nativeOn: nativeOn
}, renderOptions(h, options, optionProps))];
},
renderItemContent: function renderItemContent(h, renderOpts, params) {
var _renderOpts$options6 = renderOpts.options,
options = _renderOpts$options6 === void 0 ? [] : _renderOpts$options6,
optionGroups = renderOpts.optionGroups,
_renderOpts$optionPro6 = renderOpts.optionProps,
optionProps = _renderOpts$optionPro6 === void 0 ? {} : _renderOpts$optionPro6,
_renderOpts$optionGro5 = renderOpts.optionGroupProps,
optionGroupProps = _renderOpts$optionGro5 === void 0 ? {} : _renderOpts$optionGro5;
var data = params.data,
property = params.property;
var attrs = renderOpts.attrs;
var itemValue = _xeUtils["default"].get(data, property);
var props = getItemProps(renderOpts, params, itemValue);
var on = getItemOns(renderOpts, params);
var nativeOn = getNativeOns(renderOpts, params);
if (optionGroups) {
var groupOptions = optionGroupProps.options || 'options';
var groupLabel = optionGroupProps.label || 'label';
return [h('Select', {
props: props,
attrs: attrs,
on: on,
nativeOn: nativeOn
}, _xeUtils["default"].map(optionGroups, function (group, gIndex) {
return h('OptionGroup', {
key: gIndex,
props: {
label: group[groupLabel]
}
}, renderOptions(h, group[groupOptions], optionProps));
}))];
}
return [h('Select', {
props: props,
attrs: attrs,
on: on,
nativeOn: nativeOn
}, renderOptions(h, options, optionProps))];
},
cellExportMethod: createExportMethod(getSelectCellValue),
exportMethod: createExportMethod(getSelectCellValue)
},
Cascader: {
renderEdit: createEditRender({
transfer: true
}),
renderCell: function renderCell(h, renderOpts, params) {
return getCellLabelVNs(h, renderOpts, params, getCascaderCellValue(renderOpts, params));
},
renderItem: createFormItemRender(),
renderItemContent: createFormItemRender(),
cellExportMethod: createExportMethod(getCascaderCellValue),
exportMethod: createExportMethod(getCascaderCellValue)
},
DatePicker: {
renderEdit: createEditRender({
transfer: true
}),
renderCell: function renderCell(h, renderOpts, params) {
return getCellLabelVNs(h, renderOpts, params, getDatePickerCellValue(renderOpts, params));
},
renderFilter: function renderFilter(h, renderOpts, params) {
var column = params.column;
var attrs = renderOpts.attrs;
var nativeOn = getNativeOns(renderOpts, params);
return [h('div', {
"class": 'vxe-table--filter-iview-wrapper'
}, column.filters.map(function (option, oIndex) {
var optionValue = option.data;
return h(renderOpts.name, {
key: oIndex,
attrs: attrs,
props: getCellEditFilterProps(renderOpts, params, optionValue),
on: getFilterOns(renderOpts, params, option, function () {
// 处理 change 事件相关逻辑
handleConfirmFilter(params, !!option.data, option);
}),
nativeOn: nativeOn
});
}))];
},
defaultFilterMethod: function defaultFilterMethod(params) {
var option = params.option,
row = params.row,
column = params.column;
var data = option.data;
var renderOpts = column.filterRender;
var _renderOpts$props5 = renderOpts.props,
props = _renderOpts$props5 === void 0 ? {} : _renderOpts$props5;
var cellValue = _xeUtils["default"].get(row, column.property);
if (data) {
switch (props.type) {
case 'daterange':
return equalDaterange(cellValue, data, props, 'yyyy-MM-dd');
case 'datetimerange':
return equalDaterange(cellValue, data, props, 'yyyy-MM-dd HH:ss:mm');
default:
return cellValue === data;
}
}
return false;
},
renderItem: createFormItemRender(),
renderItemContent: createFormItemRender(),
cellExportMethod: createExportMethod(getDatePickerCellValue),
exportMethod: createExportMethod(getDatePickerCellValue)
},
TimePicker: {
renderEdit: createEditRender({
transfer: true
}),
renderItem: createFormItemRender(),
renderItemContent: createFormItemRender()
},
Rate: {
renderDefault: createEditRender(),
renderEdit: createEditRender(),
renderFilter: createFilterRender(),
defaultFilterMethod: defaultFilterMethod,
renderItem: createFormItemRender(),
renderItemContent: createFormItemRender()
},
iSwitch: {
renderDefault: createEditRender(),
renderEdit: createEditRender(),
renderFilter: function renderFilter(h, renderOpts, params) {
var column = params.column;
var name = renderOpts.name,
attrs = renderOpts.attrs;
var nativeOn = getNativeOns(renderOpts, params);
return [h('div', {
"class": 'vxe-table--filter-iview-wrapper'
}, column.filters.map(function (option, oIndex) {
var optionValue = option.data;
return h(name, {
key: oIndex,
attrs: attrs,
props: getCellEditFilterProps(renderOpts, params, optionValue),
on: getFilterOns(renderOpts, params, option, function () {
// 处理 change 事件相关逻辑
handleConfirmFilter(params, _xeUtils["default"].isBoolean(option.data), option);
}),
nativeOn: nativeOn
});
}))];
},
defaultFilterMethod: defaultFilterMethod,
renderItem: createFormItemRender(),
renderItemContent: createFormItemRender()
},
Radio: {
renderItem: createFormItemRadioAndCheckboxRender(),
renderItemContent: createFormItemRadioAndCheckboxRender()
},
Checkbox: {
renderItem: createFormItemRadioAndCheckboxRender(),
renderItemContent: createFormItemRadioAndCheckboxRender()
},
Button: {
renderEdit: defaultButtonEditRender,
renderDefault: defaultButtonEditRender,
renderItem: defaultButtonItemRender,
renderItemContent: defaultButtonItemRender
},
Buttons: {
renderEdit: defaultButtonsEditRender,
renderDefault: defaultButtonsEditRender,
renderItem: defaultButtonsItemRender,
renderItemContent: defaultButtonsItemRender
}
});
vxetable.interceptor.add('event.clearFilter', handleClearEvent);
vxetable.interceptor.add('event.clearActived', handleClearEvent);
vxetable.interceptor.add('event.clearAreas', handleClearEvent);
}
};
_exports.VXETablePluginIView = VXETablePluginIView;
if (typeof window !== 'undefined' && window.VXETable && window.VXETable.use) {
window.VXETable.use(VXETablePluginIView);
}
var _default = VXETablePluginIView;
_exports["default"] = _default;
});