UNPKG

@fle-ui/plus-goods-detail-drawer

Version:

@fle-ui/plus-goods-detail-drawer

106 lines (105 loc) 5.56 kB
"use strict"; function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _react = _interopRequireWildcard(require("react")); function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); } function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; } /** 获取数量范围显示文本 */ var getNumberRangeText = function getNumberRangeText(index, data, thead, previewMaxNumber) { var currentItem = data[index]; var nextItem = data[index + 1]; var minNumber = currentItem[thead[0].key]; var maxNumber = (nextItem === null || nextItem === void 0 ? void 0 : nextItem[thead[0].key]) ? nextItem[thead[0].key] - 1 : previewMaxNumber; if (!minNumber) return ''; if (maxNumber && minNumber < maxNumber) { return "".concat(minNumber, " - ").concat(maxNumber); } else if (!maxNumber) { return "\u2265".concat(minNumber); } else { return String(minNumber); } }; /** 表头组件 */ var TableHeader = function TableHeader(_ref) { var thead = _ref.thead, previewText = _ref.previewText, showPreview = _ref.showPreview; return /*#__PURE__*/_react.default.createElement("thead", null, /*#__PURE__*/_react.default.createElement("tr", null, thead.map(function (item) { return /*#__PURE__*/_react.default.createElement("th", { key: item.key }, /*#__PURE__*/_react.default.createElement("span", null, item.name)); }), showPreview && /*#__PURE__*/_react.default.createElement("th", null, /*#__PURE__*/_react.default.createElement("span", null, previewText)))); }; /** 表体组件 */ var TableBody = function TableBody(_ref2) { var data = _ref2.data, thead = _ref2.thead, showPreview = _ref2.showPreview, previewMaxNumber = _ref2.previewMaxNumber; var tableData = (0, _react.useMemo)(function () { return data.length ? data : [{ minNum: 0, salePrice: '0.00' }]; }, [data]); var renderCell = (0, _react.useCallback)(function (item, theadItem) { return /*#__PURE__*/_react.default.createElement("td", { key: theadItem.key }, /*#__PURE__*/_react.default.createElement("div", { className: "field" }, item[theadItem.key])); }, []); var renderPreviewCell = (0, _react.useCallback)(function (item, thead, index) { var hasValidData = item[thead[0].key] && item[thead[1].key]; if (!hasValidData) return /*#__PURE__*/_react.default.createElement("td", { key: "preview" }); var rangeText = getNumberRangeText(index, tableData, thead, previewMaxNumber); return /*#__PURE__*/_react.default.createElement("td", { key: "preview" }, /*#__PURE__*/_react.default.createElement("span", null, "".concat(rangeText).concat(thead[0].unit || '', "\uFF1A").concat(item[thead[1].key]).concat(thead[1].unit || ''))); }, [tableData]); return /*#__PURE__*/_react.default.createElement("tbody", null, tableData.map(function (item, index) { return /*#__PURE__*/_react.default.createElement("tr", { key: index }, thead.map(function (theadItem) { return renderCell(item, theadItem); }), showPreview && renderPreviewCell(item, thead, index)); })); }; /** 商品分段表格组件 */ var GoodsSectionTable = function GoodsSectionTable(_ref3) { var header = _ref3.header, footer = _ref3.footer, _ref3$data = _ref3.data, data = _ref3$data === void 0 ? [] : _ref3$data, _ref3$thead = _ref3.thead, thead = _ref3$thead === void 0 ? [] : _ref3$thead, _ref3$previewText = _ref3.previewText, previewText = _ref3$previewText === void 0 ? '预览' : _ref3$previewText, _ref3$showPreview = _ref3.showPreview, showPreview = _ref3$showPreview === void 0 ? true : _ref3$showPreview, previewMaxNumber = _ref3.previewMaxNumber; return /*#__PURE__*/_react.default.createElement("div", { className: "fx__goods-score-table" }, header && /*#__PURE__*/_react.default.createElement("div", { className: "fx__goods-score-table-header" }, header), /*#__PURE__*/_react.default.createElement("table", { className: "form-table" }, /*#__PURE__*/_react.default.createElement(TableHeader, { thead: thead, previewText: previewText, showPreview: showPreview }), /*#__PURE__*/_react.default.createElement(TableBody, { data: data, thead: thead, previewMaxNumber: previewMaxNumber, showPreview: showPreview })), footer && /*#__PURE__*/_react.default.createElement("div", { className: "fx__goods-score-table-footer" }, footer)); }; var _default = exports.default = /*#__PURE__*/_react.default.memo(GoodsSectionTable);