UNPKG

fastlion-amis

Version:

一种MIS页面生成工具

160 lines (159 loc) 9.68 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.OperationFieldRenderer = exports.OperationField = void 0; var tslib_1 = require("tslib"); var react_1 = (0, tslib_1.__importDefault)(require("react")); var factory_1 = require("../factory"); var Popover_1 = (0, tslib_1.__importDefault)(require("antd/lib/Popover")); var style_1 = require("./Lion/Table/LionTable/style"); // Jay var helper_1 = require("../utils/helper"); require("./Lion/Table/LionTable/style/baseCss/index.css"); var ActionSheet_1 = (0, tslib_1.__importDefault)(require("../components/Lion/ActionSheet")); var index_1 = require("../index"); var icons_1 = require("../components/icons"); var antd_1 = require("antd"); var OperationField = /** @class */ (function (_super) { (0, tslib_1.__extends)(OperationField, _super); // Jay function OperationField(props) { var _this = _super.call(this, props) || this; _this.state = { isOpened: false, popUp: false, }; return _this; } OperationField.prototype.moreHandleTouch = function (e) { e.stopPropagation(); this.setState({ isOpened: true }); }; OperationField.prototype.renderOperation = function () { // 表格列operation按钮超过num个折叠 // num这个字段要跟后端约定好 var _a; var _this = this; var _b; var _c = this.props, buttons = _c.buttons, num = _c.num, render = _c.render, getModalContainer = _c.env.getModalContainer, cx = _c.classnames, useMobileUI = _c.useMobileUI, fold = _c.fold, mobileLayout = _c.mobileLayout; //移动端水平模式的表格操作列渲染方式 if ((0, helper_1.isMobile)() && this.props.isMobileHoriTable) { return render('555', { type: 'icon', icon: 'caret-right', color: '#CCC' }); } var mobileUI = useMobileUI && (0, helper_1.isMobile)(); var Layout = mobileLayout == 'vertical'; var number = num; if (mobileUI) number = num || 0; var count = Number(number); var oprations = null; var Arraybut = Array.isArray(buttons); if (Arraybut && buttons.length) { var otherArr = mobileUI ? react_1.default.createElement(ActionSheet_1.default, { key: 'actionSheet', isOpened: this.state.isOpened, container: getModalContainer, round: true, onHide: function (e) { e.stopPropagation(); _this.setState({ isOpened: false }); }, popupContent: react_1.default.createElement("div", { style: { width: '100%' } }, // buttons.slice(count).map buttons.map(function (button, idx) { return (react_1.default.createElement("div", { key: idx, "data-index": idx, id: "amis-action-sheet-btn-wrapper", className: 'action-sheet-btn-wrapper', onClick: function () { _this.setState({ isOpened: !_this.state.isOpened }); } }, (button === null || button === void 0 ? void 0 : button.type) === 'lion-cell-import' ? (0, index_1.render)(button, { size: button.size || 'md', level: button.level || (mobileUI ? 'link' : (button.icon && !button.label ? 'link' : '')), key: idx }) : render("" + idx, (0, tslib_1.__assign)((0, tslib_1.__assign)({}, button), { type: 'button', size: button.size || 'md', level: button.level || (button.icon && !button.label ? 'link' : '') }), { key: idx }))); })) }, react_1.default.createElement("span", { className: cx('Button--link', 'extendBtn', 'rotate', Layout && "btnreset"), onClick: this.moreHandleTouch.bind(this) }, // count === 0 ? '操作' : '···')) : react_1.default.createElement(style_1.WrapperBtnPopover, { className: "lion-export-popover" }, react_1.default.createElement("div", { className: "lion-export-popover-container" }, react_1.default.createElement("div", { className: "lion-export-popover-hide" }, react_1.default.createElement("ul", { style: (_a = {}, _a[((_b = buttons.slice(count)) === null || _b === void 0 ? void 0 : _b.length) <= 1 ? 'padding' : ''] = 0, _a) }, (fold ? buttons : buttons.slice(count)).map(function (button, idx) { if ((button === null || button === void 0 ? void 0 : button.type) === 'lion-cell-import') return (0, index_1.render)(button, { size: button.size || 'md', level: button.level || mobileUI ? 'link' : (button.icon && !button.label ? 'link' : ''), key: idx }); return react_1.default.createElement("div", { key: idx, "data-index": idx, className: "flex justify-center items-center", style: { height: 'auto' } }, render("" + idx, (0, tslib_1.__assign)((0, tslib_1.__assign)({}, button), { type: 'button', size: button.size || 'sm', level: button.level || (button.icon && !button.label ? 'link' : ''), className: "lion-td-btn" }), { key: idx })); }))))); var popover = react_1.default.createElement(Popover_1.default, { key: 'btnPopover', overlayClassName: 'lion-popover-operation lion-table-cell-btn', placement: 'bottomRight', arrowPointAtCenter: true, content: otherArr, overlayInnerStyle: { borderRadius: 5 }, getPopupContainer: getModalContainer, trigger: ["hover"], onVisibleChange: function (bol) { fold && _this.setState({ popUp: bol }); } }, fold ? react_1.default.createElement(antd_1.Button, { className: cx("Button-arrow") }, "\u64CD\u4F5C", react_1.default.createElement("span", { className: cx('Select-arrow', { "is-opened": this.state.popUp }) }, react_1.default.createElement(icons_1.Icon, { icon: "caret", className: "icon" }))) : react_1.default.createElement("span", { className: cx('Button--link', 'extendBtn', count !== 0 && 'rotate') }, "\u00B7\u00B7\u00B7")); var fixedArr = (!fold && buttons.length > count ? (buttons.length - 1 === count) ? buttons : buttons.slice(0, count) : buttons).map(function (button, index) { if ((button === null || button === void 0 ? void 0 : button.type) === 'lion-cell-import') { return (0, index_1.render)(button, { size: button.size || 'md', level: button.level || mobileUI ? 'link' : (button.icon && !button.label ? 'link' : ''), key: index }); } return render("" + index, (0, tslib_1.__assign)((0, tslib_1.__assign)({}, button), { type: 'button', size: button.size || 'md', level: button.level || (mobileUI ? 'link' : (button.icon && !button.label ? 'link' : '')), fold: fold }), { key: index }); }); if (fold) { oprations = mobileUI ? [otherArr] : [popover]; } else { if (buttons.length > count) { if (buttons.length - 1 == count) { oprations = mobileUI ? [otherArr] : (0, tslib_1.__spreadArray)([], fixedArr, true); } else { oprations = mobileUI ? [otherArr] : (0, tslib_1.__spreadArray)((0, tslib_1.__spreadArray)([], fixedArr, true), [popover], false); } } else { oprations = fixedArr; } } } return oprations; }; OperationField.prototype.render = function () { var _a = this.props, className = _a.className, cx = _a.classnames, fold = _a.fold; return (react_1.default.createElement("div", { className: cx('OperationField', className), style: { width: fold ? 60 : 'unset' } }, this.renderOperation())); }; OperationField.propsList = ['buttons', 'label']; OperationField.defaultProps = {}; return OperationField; }(react_1.default.Component)); exports.OperationField = OperationField; var OperationFieldRenderer = /** @class */ (function (_super) { (0, tslib_1.__extends)(OperationFieldRenderer, _super); function OperationFieldRenderer() { return _super !== null && _super.apply(this, arguments) || this; } OperationFieldRenderer = (0, tslib_1.__decorate)([ (0, factory_1.Renderer)({ type: 'operation' }) ], OperationFieldRenderer); return OperationFieldRenderer; }(OperationField)); exports.OperationFieldRenderer = OperationFieldRenderer; //# sourceMappingURL=./renderers/Operation.js.map