UNPKG

@flatbiz/antd

Version:
394 lines (389 loc) 14.7 kB
/*! @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