fastlion-amis
Version:
一种MIS页面生成工具
160 lines (159 loc) • 9.68 kB
JavaScript
"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