@flatbiz/antd
Version:
394 lines (389 loc) • 14.7 kB
JavaScript
/*! @flatjs/forge MIT @flatbiz/antd */
import { isString } from '@dimjs/lang/is-string';
import { isObject } from '@dimjs/lang/is-object';
import { get } from '@dimjs/utils/get/get';
import { isPlainObject } from '@dimjs/lang/is-plain-object';
import { b as _objectSpread2 } from './_rollupPluginBabelHelpers-BYm17lo8.js';
import { isEmpty } from '@dimjs/lang/is-empty';
import { Fragment } from 'react';
import { Tooltip, Space, Badge } from 'antd';
import { isNumber, isUndefinedOrNull, getStrByteLen, cutString, flatbizDate, flatbizPrice } from '@flatbiz/utils';
import { a as ButtonOperate } from './button-operate-C6dir05R.js';
import { _ as _TagListRender } from './tag-list-Z6yWz3Id.js';
import { jsx } from 'react/jsx-runtime';
var tableColumnTooltipRender = function tableColumnTooltipRender(showMaxNumber, defaultValue) {
return function (value) {
if (isEmpty(value) || value === '') return defaultValue;
if (isNumber(value)) return value;
var colunmText = value.toString();
var maxNumber = isUndefinedOrNull(showMaxNumber) ? 10 : showMaxNumber;
var strByteLen = getStrByteLen(colunmText);
if (strByteLen <= maxNumber * 2) {
return colunmText;
}
return /*#__PURE__*/jsx(Tooltip, {
placement: "topLeft",
title: colunmText,
children: cutString(colunmText, maxNumber * 2)
});
};
};
var tableColumnOperateRender = function tableColumnOperateRender(options) {
return function (_value, record, index) {
var operateProps = options(record, index);
return /*#__PURE__*/jsx(ButtonOperate, _objectSpread2({}, operateProps));
};
};
var tableColumnDateRender = function tableColumnDateRender(dateFormatType, defaultValue) {
return function (value) {
if (isEmpty(value) || value === '') return defaultValue;
try {
return flatbizDate.format(new Date(value), dateFormatType);
} catch (_error) {
return value || defaultValue;
}
};
};
/**
* table 索引展示,如果存在pageSize、pageNo参数可分页展示索引,否则每页都从1开始
* @param pageSize
* @param pageNo
* @returns
*/
var tableColumnIndexRender = function tableColumnIndexRender(pageNo, pageSize) {
return function (_value, _record, index) {
if (pageSize && pageNo) {
return (pageNo - 1) * pageSize + index + 1;
}
return index + 1;
};
};
var tableColumnIndexRender2 = function tableColumnIndexRender2(method) {
return function (_value, _record, index) {
var _ref = (method === null || method === void 0 ? void 0 : method()) || {},
pageNo = _ref.pageNo,
pageSize = _ref.pageSize;
if (pageSize && pageNo) {
return (pageNo - 1) * pageSize + index + 1;
}
return index + 1;
};
};
var tableColumnSelectorRender = function tableColumnSelectorRender(selectorList, colorMap, options) {
return function (value) {
if (isUndefinedOrNull(value)) return null;
return /*#__PURE__*/jsx(_TagListRender, _objectSpread2({
dataList: selectorList,
colorMap: colorMap,
value: value,
forceMatch: false
}, options));
};
};
var tableColumnObjectRender = function tableColumnObjectRender(key, defaultValue) {
return function (value) {
if (isPlainObject(value)) {
var target = get(value, key, defaultValue);
if (!target) return '';
if (isObject(target)) return JSON.stringify(target);
return target;
}
return value || defaultValue;
};
};
var tableColumnFen2yuanCellRender = function tableColumnFen2yuanCellRender(options) {
var hideBgColor = isUndefinedOrNull(options === null || options === void 0 ? void 0 : options.hideBgColor) ? true : options === null || options === void 0 ? void 0 : options.hideBgColor;
var className = hideBgColor ? '' : 'table-fen-color';
return function (value) {
if (isUndefinedOrNull(value) || value === '') {
if (isUndefinedOrNull(options === null || options === void 0 ? void 0 : options.defaultValue)) return undefined;
if (isNumber(options === null || options === void 0 ? void 0 : options.defaultValue)) {
return /*#__PURE__*/jsx("span", {
className: className,
children: flatbizPrice.format(options === null || options === void 0 ? void 0 : options.defaultValue)
});
}
return /*#__PURE__*/jsx("span", {
className: className,
children: options === null || options === void 0 ? void 0 : options.defaultValue
});
}
if (!isNumber(value)) return value;
var amount = flatbizPrice.fen2yuan(value);
return /*#__PURE__*/jsx("span", {
className: className,
children: flatbizPrice.format(amount, options === null || options === void 0 ? void 0 : options.defaultValue, {
separator: (options === null || options === void 0 ? void 0 : options.separator) || false
})
});
};
};
var tableColumnFen2wanCellRender = function tableColumnFen2wanCellRender(options) {
var className = (options === null || options === void 0 ? void 0 : options.showBgColor) === true ? 'table-wan-color' : '';
return function (value) {
if (isUndefinedOrNull(value) || value === '') {
if (isUndefinedOrNull(options === null || options === void 0 ? void 0 : options.defaultValue)) return undefined;
if (isNumber(options === null || options === void 0 ? void 0 : options.defaultValue)) {
return /*#__PURE__*/jsx("span", {
className: className,
children: flatbizPrice.format(options === null || options === void 0 ? void 0 : options.defaultValue)
});
}
return /*#__PURE__*/jsx("span", {
className: className,
children: options === null || options === void 0 ? void 0 : options.defaultValue
});
}
if (!isNumber(value)) return value;
var amount = flatbizPrice.fen2wan(value);
var amountNew = options !== null && options !== void 0 && options.removeTailZero ? flatbizPrice.removeTailZero(amount, options === null || options === void 0 ? void 0 : options.defaultValue, {
separator: (options === null || options === void 0 ? void 0 : options.separator) || false
}) : flatbizPrice.format(amount, options === null || options === void 0 ? void 0 : options.defaultValue, {
separator: (options === null || options === void 0 ? void 0 : options.separator) || false
});
return /*#__PURE__*/jsx("span", {
className: className,
children: amountNew
});
};
};
var tableColumnExtraContentRender = function tableColumnExtraContentRender(handle) {
return function (value, item) {
var options = handle === null || handle === void 0 ? void 0 : handle(item);
if (!options) return /*#__PURE__*/jsx(Fragment, {
children: value
});
var showData = isUndefinedOrNull(options.showData) ? true : options.showData;
var notOverflowShowExtra = isUndefinedOrNull(options.notOverflowShowExtra) ? true : options.notOverflowShowExtra;
var showMaxNumber = isUndefinedOrNull(options.showMaxNumber) ? 10 : options.showMaxNumber;
var extraPosition = options.extraPosition ? options.extraPosition : 'after';
var renderValue = isString(value) ? cutString(value, showMaxNumber * 2) : value;
if (options.extra && showData) {
if (renderValue === value && !notOverflowShowExtra) {
return value;
}
var spaceContent = [/*#__PURE__*/jsx("span", {
children: renderValue
}, "1"), /*#__PURE__*/jsx(Fragment, {
children: options.extra
}, "2")];
var spaceContentRender = extraPosition === 'before' ? spaceContent.reverse() : spaceContent;
return /*#__PURE__*/jsx(Space, {
onClick: options.onClick,
style: {
cursor: options.onClick ? 'pointer' : undefined
},
size: 5,
children: spaceContentRender.map(function (item, index) {
return /*#__PURE__*/jsx(Fragment, {
children: item
}, index);
})
});
}
return /*#__PURE__*/jsx("span", {
onClick: options.onClick,
children: options.extra
});
};
};
var tableColumnBadgeRender = function tableColumnBadgeRender(selectorList, colorMap) {
return function (value) {
if (isUndefinedOrNull(value)) return null;
var target = selectorList.find(function (item) {
return item.value === value;
});
if (target) return /*#__PURE__*/jsx(Badge, {
color: (target === null || target === void 0 ? void 0 : target.color) || (colorMap === null || colorMap === void 0 ? void 0 : colorMap[value]) || 'rgba(0, 0, 0, 0.25)',
text: target === null || target === void 0 ? void 0 : target.label
});
return value;
};
};
var tableColumnClickRender = function tableColumnClickRender(onClick, defaultValue) {
return function (value, record) {
if (isUndefinedOrNull(value)) return defaultValue;
return /*#__PURE__*/jsx("a", {
onClick: onClick.bind(null, record),
children: value
});
};
};
var tableCellRender = {
/**
* 表格单元格 拼接额外内容渲染
* ```
* 1. extra 额外内容
* 2. showData 是否显示原单元格数据,默认值:true
* 3. showMaxNumber 显示最大长度,作用于原单元格字符串数据
*
*
* 结合table column render 使用
* # 在单元格渲染文字右侧添加图标
* render: tableCellRender.extraContentRender(() => {
* return {
* extra: <FullscreenOutlined />,
* onClick: () => { ... },
* };
* }),
* ```
*/
extraContentRender: tableColumnExtraContentRender,
/**
* table 索引展示,如果存在pageSize、pageNo参数可分页展示索引,否则每页都从1开始
* @deprecated 已过时 4.3.0版本移除,请使用 serialNumberCell
*/
indexCell: tableColumnIndexRender,
/**
* table 序号展示,如果存在pageSize、pageNo参数可分页展示累加序号,否则每页都从1开始
* ```
* render: tableCellRender.serialNumberCell(() => {
* return { pageNo,pageSize };
* }),
* ```
*/
serialNumberCell: tableColumnIndexRender2,
/**
* 表格日期格式数据渲染,默认格式:YYYY-MM-DD
* ```
* 独立使用
* tableCellRender.dateCell('YYYY-MM-DD hh:mm:ss')(value)
*
* 结合table column render 使用
* render: tableCellRender.dateCell('YYYY-MM-DD hh:mm:ss')
* render: (value) => {
* return tableCellRender.dateCell('YYYY-MM-DD')(value);
* }
* ```
*/
dateCell: tableColumnDateRender,
/**
* table操作栏目渲染
* ```
* 使用方式
* tableCellRender.operateCell((item) => ({
* operateList: [
* {
* text: '编辑',
* onClick: onItemOperate.bind(null, 'update', item),
* },
* {
* text: '删除',
* needConfirm: true,
* confirmMessage: '确定要删除吗?',
* onClick: onItemOperate.bind(null, 'delete', item),
* },
* ],
* }))
* ```
*/
operateCell: tableColumnOperateRender,
/**
* 实现字段超出隐藏,默认长度10个字符
* @deprecated 已过期,请使用 TextOverflow 组件实现
* ```
* 1. showMaxNumber: 显示最大长度
* 2. 会讲字符转出字节进行计算显示
* ```
*/
tooltipCell: tableColumnTooltipRender,
/**
* Tag格式数据渲染,可结合枚举定义数据
* ```
* 独立使用
* tableCellRender.selectorCell([{ label: '已开启', value: 1 }])(value)
* tableCellRender.selectorCell([{ label: '已开启', value: 1, color: '#108ee9' }])(value)
* tableCellRender.selectorCell([{ label: '已开启', value: 1 }], { 1: '#108ee9' })(value)
* tableCellRender.selectorCell(taskTypeEnumList)(value);
*
*
* 结合table column render 使用
* render: tableCellRender.selectorCell(taskTypeEnumList);
* render: tableCellRender.selectorCell([{ label: '已开启', value: 1 ]);
* render: (value) => {
* return tableCellRender.selectorCell([{ label: '已开启', value: 1 ])(value);
* }
*
* 其中value值可以是单个值或者数组;例如:'1' 或者 ['1', '2']
* ```
*/
selectorCell: tableColumnSelectorRender,
/**
* 单元格对象数据处理,支持多级处理
* ```
* tableCellRender.objectCell('a.b.c')
* ```
*/
objectCell: tableColumnObjectRender,
/**
* 分金额展示,入参分,显示元(默认添加千分位)
* ```
* 可配置
* 1. separator:是否显示千分位分隔符,默认值:false
* 2. defaultValue:当值为空默认展示
* 3. hideBgColor:隐藏背景颜色
*
* 例如:
* fen2yuanCell()(100090) => 1000.90
* fen2yuanCell({separator: true})(100090) => 1,000.90
* fen2yuanCell()('abc') => abc
* fen2yuanCell({defaultValue: '--'})('') => --
* fen2yuanCell()('') => undefined
* fen2yuanCell({ defaultValue: 0 })('') => 0.00
* ```
*/
fen2yuanCell: tableColumnFen2yuanCellRender,
/**
* 分金额展示,入参分,显示万元(默认添加千分位)
* ```
* 可配置
* 1. separator:是否显示千分位分隔符,默认值:false
* 2. defaultValue:当值为空默认展示
* 3. showBgColor:隐藏背景颜色
* 4. removeTailZero:移除小数点后末尾零
*
* 例如:
* fen2yuanCell()(1000900000) => 1000.90
* fen2yuanCell({separator: true})(1000900000) => 1,000.90
* fen2yuanCell()('abc') => abc
* fen2yuanCell({defaultValue: '--'})('') => --
* fen2yuanCell()('') => undefined
* fen2yuanCell({ defaultValue: 0 })('') => 0.00
* ```
*/
fen2wanCell: tableColumnFen2wanCellRender,
/**
* 单元格徽标展示数据
* ```
* 1. badge 默认颜色:灰色rgba(0, 0, 0, 0.25)
*
* 独立使用
* tableCellRender.badgeCell([{ label: '已开启', value: 1 ])(value)
* tableCellRender.badgeCell([{ label: '已开启', value: 1, color: '#108ee9' }])(value)
* tableCellRender.badgeCell([{ label: '已开启', value: 1 }], { 1: '#108ee9' })(value)
*
* 结合table column render 使用
* render: tableCellRender.badgeCell([{ label: '已开启', value: 1 ])
* render: (value) => {
* return tableCellRender.badgeCell([{ label: '已开启', value: 1 ])(value)
* }
* ```
*/
badgeCell: tableColumnBadgeRender,
/**
* 单元格点击事件
* ```
* 独立使用
* tableCellRender.clickCell(onClick)(value, record)
*
* 结合table column render 使用
* render: tableCellRender.clickCell(onClick)
* render: (value, record) => {
* return tableCellRender.clickCell(onClick)(value, record)
* }
* ```
*/
clickCell: tableColumnClickRender
};
export { tableCellRender as t };
//# sourceMappingURL=cell-render-BkfKyhww.js.map