sunmao-sdk
Version:
榫卯-开箱即用赋能-sdk
204 lines (157 loc) • 8.09 kB
JavaScript
"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;