UNPKG

sunmao-sdk

Version:

榫卯-开箱即用赋能-sdk

204 lines (157 loc) 8.09 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; require("antd/es/card/style"); var _card = _interopRequireDefault(require("antd/es/card")); require("antd/es/dropdown/style"); var _dropdown = _interopRequireDefault(require("antd/es/dropdown")); var _MoreOutlined2 = _interopRequireDefault(require("@ant-design/icons/lib/icons/MoreOutlined")); require("antd/es/menu/style"); var _menu = _interopRequireDefault(require("antd/es/menu")); require("antd/es/tooltip/style"); var _tooltip = _interopRequireDefault(require("antd/es/tooltip")); require("antd/es/popconfirm/style"); var _popconfirm = _interopRequireDefault(require("antd/es/popconfirm")); var _react = _interopRequireDefault(require("react")); var _commonUtils = require("../../utils/commonUtils"); var _ = require("../.."); var _FR = _interopRequireDefault(require("../FR")); require("./index.css"); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } 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; } /** * 卡片模块 */ var displayName = "CardRender"; var CardRender = function CardRender(_ref) { var loading = _ref.loading, frConfig = _ref.frConfig, reqData = _ref.reqData, _ref$schema = _ref.schema, title = _ref$schema.title, _ref$schema$formConfi = _ref$schema.formConfig, formConfig = _ref$schema$formConfi === void 0 ? {} : _ref$schema$formConfi, _ref$schema$actionCon = _ref$schema.actionConfig, actionConfig = _ref$schema$actionCon === void 0 ? {} : _ref$schema$actionCon, customCardBody = _ref$schema.customCardBody; var record = (frConfig === null || frConfig === void 0 ? void 0 : frConfig.formData) || {}; var getDisEval = function getDisEval(content) { var disEval = false; try { disEval = record[content] || eval(content); } catch (_unused) {} return disEval; }; // 按键触发 var handleAction = function handleAction(item) { var disabled = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; if (disabled) return; if (item && item.action && typeof item.action === "function") { item.action(record, item); } else if (!item.widget) { _.CP.error(item, "传入的点击事件不是一个函数", displayName); } }; var renderAction = function renderAction(item, disabled, content, again) { var _item$content; var tips = (item === null || item === void 0 ? void 0 : (_item$content = item.content) === null || _item$content === void 0 ? void 0 : _item$content.tips) || "确定进行该操作!"; return again ? /*#__PURE__*/_react.default.createElement(_popconfirm.default, { title: tips, disabled: disabled, onConfirm: function onConfirm() { return handleAction(item, disabled); } }, disabled ? /*#__PURE__*/_react.default.createElement("span", { style: { color: "rgba(0,0,0,.25)" } }, content) : /*#__PURE__*/_react.default.createElement("a", null, content)) : disabled ? /*#__PURE__*/_react.default.createElement("span", { style: { color: "rgba(0,0,0,.25)" } }, content) : /*#__PURE__*/_react.default.createElement("a", null, content); }; // 缩起按键 var renderActionList = function renderActionList(list, DropItem) { return /*#__PURE__*/_react.default.createElement("div", { className: "tr-action-list", style: { display: "flex", justifyContent: "center" } }, list.map(function (item, idx) { var content = item.text; var disEval = getDisEval(item.disEval); var disabled = (0, _commonUtils.parseFunctionValue)(item && item.disabled, record) || disEval; var again = "35" === item.funcType; var endBtn = /*#__PURE__*/_react.default.createElement("div", { key: idx.toString(), style: { marginLeft: 12 }, onClick: function onClick() { return !again && handleAction(item, disabled); } }, renderAction(item, disabled, content, again)); return disabled ? /*#__PURE__*/_react.default.createElement(_tooltip.default, { title: item.disEvalTips || "禁用,不可点击" }, endBtn) : endBtn; }), DropItem); }; // 超过2个就展示下拉 var renderActions = function renderActions() { var showCount = actionConfig.showCount, actionList = actionConfig.actionList; if (!actionList || !actionList.length) return false; // 过滤掉隐藏按键 var actList = actionList.filter(function (item) { return !getDisEval(item.isHidden); }); var limit = showCount || 2; var len = actList.length; if (len <= limit) { return renderActionList(actList); } else { var firstFew = actList.slice(0, limit - 1); var dropList = actList.slice(limit - 1); var menu = /*#__PURE__*/_react.default.createElement(_menu.default, null, dropList.map(function (item, idx) { var content = item.text; var disEval = getDisEval(item.disEval); var disabled = (0, _commonUtils.parseFunctionValue)(item && item.disabled, record) || disEval; var again = "35" === item.funcType; var endBtn = /*#__PURE__*/_react.default.createElement(_menu.default.Item, { key: idx.toString(), disabled: disabled }, /*#__PURE__*/_react.default.createElement("div", { onClick: function onClick() { return !again && handleAction(item, disabled); } }, renderAction(item, disabled, content, again))); return disabled ? /*#__PURE__*/_react.default.createElement(_tooltip.default, { title: item.disEvalTips || "禁用,不可点击" }, endBtn) : endBtn; })); var DropItem = /*#__PURE__*/_react.default.createElement(_dropdown.default, { overlay: menu }, /*#__PURE__*/_react.default.createElement("a", { onClick: function onClick(e) { return e.preventDefault(); } }, /*#__PURE__*/_react.default.createElement(_MoreOutlined2.default, { rotate: 90 }))); return renderActionList(firstFew, DropItem); } }; return /*#__PURE__*/_react.default.createElement(_card.default, { className: "sunmao-card-fr", title: title || null, extra: renderActions(), loading: loading }, customCardBody ? customCardBody(_objectSpread(_objectSpread(_objectSpread({}, formConfig), frConfig), {}, { reqData: reqData })) : /*#__PURE__*/_react.default.createElement(_FR.default, _extends({}, formConfig, frConfig))); }; var _default = CardRender; exports.default = _default;