UNPKG

@arco-vue-pro-components/pro-components

Version:
168 lines (167 loc) 5.5 kB
"use strict"; Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } }); var vue = require("vue"); var webVue = require("@arco-design/web-vue"); var dayjs = require("dayjs"); var index = require("../../pro-select/index.js"); function _interopDefaultLegacy(e) { return e && typeof e === "object" && "default" in e ? e : { "default": e }; } var dayjs__default = /* @__PURE__ */ _interopDefaultLegacy(dayjs); const moneyIntl = new Intl.NumberFormat("zh-Hans-CN", { currency: "CNY", style: "currency", minimumFractionDigits: 2 }); const enMoneyIntl = new Intl.NumberFormat("en-US", { style: "currency", currency: "USD" }); const ruMoneyIntl = new Intl.NumberFormat("ru-RU", { style: "currency", currency: "RUB" }); const msMoneyIntl = new Intl.NumberFormat("ms-MY", { style: "currency", currency: "MYR" }); function showUnitColumn(value, unit) { let str = ""; if (value == null) { return str; } str = `${value}`; if (!unit) { return str; } str = `${value}${unit}`; return str; } const defaultRenderTextByObject = (text, value) => { if (value.type === "progress") { return vue.createVNode(webVue.Progress, { "size": "small", "percent": parseFloat(text), "status": value.status || getProgressStatus(parseFloat(text)) }, null); } if (value.type === "money") { if (value.locale === "en_US") { return enMoneyIntl.format(text); } if (value.locale === "ru_RU") { return ruMoneyIntl.format(text); } if (value.locale === "ms_MY") { return msMoneyIntl.format(text); } return moneyIntl.format(text); } if (value.type === "percent") { return text ? showUnitColumn(text, "%") : "-"; } return text; }; const defaultRenderText = (text, valueType, rowIndex, item, columnEmptyText, itemColumn, columnKey) => { var _a; if (typeof valueType === "function" && item) { const value = valueType(item); if (typeof value === "string") { return defaultRenderText(text, value, rowIndex, item, columnEmptyText, itemColumn, columnKey); } if (typeof value === "object") { return defaultRenderTextByObject(text, value); } } if (valueType === "select" && ((_a = itemColumn == null ? void 0 : itemColumn.fieldProps) == null ? void 0 : _a.request)) { return vue.createVNode(index, vue.mergeProps({ "cacheForSwr": true, "mode": "read", "columnKey": columnKey, "modelValue": text }, itemColumn == null ? void 0 : itemColumn.fieldProps), null); } if (valueType === "money" && (text || text === 0)) { if (typeof text === "string") { return moneyIntl.format(parseFloat(text)); } return moneyIntl.format(text); } if (typeof text === "string" || typeof text === "number") { if (valueType === "date" && text) { return dayjs__default["default"](text).format("YYYY-MM-DD"); } if (valueType === "dateTime" && text) { return dayjs__default["default"](text).format("YYYY-MM-DD HH:mm:ss"); } if (valueType === "time" && text) { return dayjs__default["default"](text).format("HH:mm:ss"); } } if (valueType === "dateRange" && text && Array.isArray(text) && text.length === 2) { const [startText, endText] = text; return vue.createVNode("div", null, [vue.createVNode("div", null, [startText ? dayjs__default["default"](startText).format("YYYY-MM-DD") : "-"]), vue.createVNode("div", null, [endText ? dayjs__default["default"](endText).format("YYYY-MM-DD") : "-"])]); } if (valueType === "dateTimeRange" && text && Array.isArray(text) && text.length === 2) { const [startText, endText] = text; return vue.createVNode("div", null, [vue.createVNode("div", null, [startText ? dayjs__default["default"](startText).format("YYYY-MM-DD HH:mm:ss") : "-"]), vue.createVNode("div", null, [endText ? dayjs__default["default"](endText).format("YYYY-MM-DD HH:mm:ss") : "-"])]); } if (valueType === "progress") { const status = getProgressStatus(parseFloat(text)); return vue.createVNode(webVue.Progress, { "size": "small", "percent": parseFloat(text), "animation": status === "normal", "status": status }, null); } if (valueType === "percent") { return text ? showUnitColumn(text, "%") : columnEmptyText; } if (valueType === "avatar" && typeof text === "string") { return vue.createVNode(webVue.Avatar, { "imageUrl": text, "size": 22, "shape": "circle" }, null); } if (valueType === "image") { return vue.createVNode(webVue.Image, { "src": text, "width": 32 }, null); } if (valueType === "code" && text) { return vue.createVNode("pre", { "style": { padding: 16, overflow: "auto", fontSize: "85%", lineHeight: 1.45, backgroundColor: "#f6f8fa", borderRadius: 3 } }, [vue.createVNode("code", null, [text])]); } if (columnEmptyText) { if (typeof text !== "boolean" && typeof text !== "number" && !text) { return typeof columnEmptyText === "string" ? columnEmptyText : "-"; } } return text; }; function getProgressStatus(text) { if (typeof text !== "number") { return "danger"; } if (text === 100) { return "success"; } if (text < 0) { return "danger"; } return "normal"; } exports["default"] = defaultRenderText; exports.getProgressStatus = getProgressStatus; exports.showUnitColumn = showUnitColumn;