UNPKG

sunmao-sdk

Version:

榫卯-开箱即用赋能-sdk

173 lines (150 loc) 7.34 kB
import "antd/es/card/style"; import _Card from "antd/es/card"; import "antd/es/dropdown/style"; import _Dropdown from "antd/es/dropdown"; import _MoreOutlined from "@ant-design/icons/es/icons/MoreOutlined"; import "antd/es/menu/style"; import _Menu from "antd/es/menu"; import "antd/es/tooltip/style"; import _Tooltip from "antd/es/tooltip"; import "antd/es/popconfirm/style"; import _Popconfirm from "antd/es/popconfirm"; 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; } import React from "react"; import { parseFunctionValue } from "../../utils/commonUtils"; import { CP } from "../.."; import FR from "../FR"; import "./index.css"; /** * 卡片模块 */ 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.createElement(_Popconfirm, { title: tips, disabled: disabled, onConfirm: function onConfirm() { return handleAction(item, disabled); } }, disabled ? /*#__PURE__*/React.createElement("span", { style: { color: "rgba(0,0,0,.25)" } }, content) : /*#__PURE__*/React.createElement("a", null, content)) : disabled ? /*#__PURE__*/React.createElement("span", { style: { color: "rgba(0,0,0,.25)" } }, content) : /*#__PURE__*/React.createElement("a", null, content); }; // 缩起按键 var renderActionList = function renderActionList(list, DropItem) { return /*#__PURE__*/React.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 = parseFunctionValue(item && item.disabled, record) || disEval; var again = "35" === item.funcType; var endBtn = /*#__PURE__*/React.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.createElement(_Tooltip, { 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.createElement(_Menu, null, dropList.map(function (item, idx) { var content = item.text; var disEval = getDisEval(item.disEval); var disabled = parseFunctionValue(item && item.disabled, record) || disEval; var again = "35" === item.funcType; var endBtn = /*#__PURE__*/React.createElement(_Menu.Item, { key: idx.toString(), disabled: disabled }, /*#__PURE__*/React.createElement("div", { onClick: function onClick() { return !again && handleAction(item, disabled); } }, renderAction(item, disabled, content, again))); return disabled ? /*#__PURE__*/React.createElement(_Tooltip, { title: item.disEvalTips || "禁用,不可点击" }, endBtn) : endBtn; })); var DropItem = /*#__PURE__*/React.createElement(_Dropdown, { overlay: menu }, /*#__PURE__*/React.createElement("a", { onClick: function onClick(e) { return e.preventDefault(); } }, /*#__PURE__*/React.createElement(_MoreOutlined, { rotate: 90 }))); return renderActionList(firstFew, DropItem); } }; return /*#__PURE__*/React.createElement(_Card, { className: "sunmao-card-fr", title: title || null, extra: renderActions(), loading: loading }, customCardBody ? customCardBody(_objectSpread(_objectSpread(_objectSpread({}, formConfig), frConfig), {}, { reqData: reqData })) : /*#__PURE__*/React.createElement(FR, _extends({}, formConfig, frConfig))); }; export default CardRender;