UNPKG

fastlion-amis

Version:

一种MIS页面生成工具

688 lines (687 loc) 37.5 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ResetRenderer = exports.SubmitRenderer = exports.ButtonRenderer = exports.ActionRenderer = exports.Action = exports.createSyntheticEvent = exports.isSomeActionSchema = void 0; var tslib_1 = require("tslib"); var react_1 = (0, tslib_1.__importDefault)(require("react")); var hotkeys_js_1 = (0, tslib_1.__importDefault)(require("hotkeys-js")); var factory_1 = require("../factory"); var tpl_1 = require("../utils/tpl"); var Button_1 = (0, tslib_1.__importDefault)(require("../components/Button")); var pick_1 = (0, tslib_1.__importDefault)(require("lodash/pick")); var omit_1 = (0, tslib_1.__importDefault)(require("lodash/omit")); var index_1 = (0, tslib_1.__importDefault)(require("./Lion/components/LionCopyItem/index")); var font_1 = (0, tslib_1.__importDefault)(require("../icons/font")); var Remark_1 = require("./Remark"); var theme_1 = require("../theme"); var helper_1 = require("../utils/helper"); var icon_1 = require("../utils/icon"); var Badge_1 = require("../components/Badge"); var api_1 = require("../utils/api"); var TooltipWrapper_1 = require("../components/TooltipWrapper"); var utils_1 = require("../utils/utils"); var Toast_1 = require("../components/Toast"); var tools_1 = require("../utils/shell/tools"); var shell_1 = require("../utils/shell"); var icons_1 = require("../components/icons"); var lodash_1 = require("lodash"); var Scoped_1 = require("../Scoped"); var isSomeActionSchema = function (actionType, actionSchema) { return actionSchema.actionType == actionType; }; exports.isSomeActionSchema = isSomeActionSchema; var ActionProps = [ 'dialog', 'drawer', 'url', 'link', 'confirmText', 'tooltip', 'disabledTip', 'className', 'asyncApi', 'redirect', 'size', 'level', 'primary', 'feedback', 'api', 'blank', 'tooltipPlacement', 'to', 'cc', 'bcc', 'subject', 'body', 'content', 'required', 'type', 'actionType', 'label', 'icon', 'rightIcon', 'reload', 'target', 'close', 'messages', 'mergeData', 'index', 'copy', 'payload', 'requireSelected', 'exportType', 'sellerUrl', 'application_id', 'redirect_uri', 'schemaApi', // Jay 标签打印相关 'defValAddApi', 'defValDelApi', 'defValGetApi', 'defValEditApi', 'labelDataApi', 'templateApi', 'primaryKey', 'callbackApi', 'numberField', 'labelId', 'linkApi', 'deleteApi', 'modifyApi', 'selectApi' ]; // 构造一个假的 React 事件避免可能的报错,主要用于快捷键功能 // 来自 https://stackoverflow.com/questions/27062455/reactjs-can-i-create-my-own-syntheticevent var createSyntheticEvent = function (event) { var isDefaultPrevented = false; var isPropagationStopped = false; var preventDefault = function () { isDefaultPrevented = true; event.preventDefault(); }; var stopPropagation = function () { isPropagationStopped = true; event.stopPropagation(); }; return { nativeEvent: event, currentTarget: event.currentTarget, target: event.target, bubbles: event.bubbles, cancelable: event.cancelable, defaultPrevented: event.defaultPrevented, eventPhase: event.eventPhase, isTrusted: event.isTrusted, preventDefault: preventDefault, isDefaultPrevented: function () { return isDefaultPrevented; }, stopPropagation: stopPropagation, isPropagationStopped: function () { return isPropagationStopped; }, persist: function () { }, timeStamp: event.timeStamp, type: event.type }; }; exports.createSyntheticEvent = createSyntheticEvent; var allowedType = ['button', 'submit', 'reset']; var Action = /** @class */ (function (_super) { (0, tslib_1.__extends)(Action, _super); function Action(props) { var _this = _super.call(this, props) || this; _this.state = { inCountDown: false, countDownEnd: 0, timeLeft: 0, menuVisible: false, actionloading: false }; _this.openWin = function () { var _a; var appShell = window['AppShell']; var winSchemeData = (_a = _this.props.$schema) === null || _a === void 0 ? void 0 : _a.dialog; var winData = JSON.parse(JSON.stringify(_this.props.data)); appShell === null || appShell === void 0 ? void 0 : appShell.openNewWin(winSchemeData, sessionStorage, winData); }; _this.handleGroup = function (ref) { if (ref) { var width = ref.clientWidth + 'px'; _this.style = { width: width }; } }; _this.isSelfLoadingAction = false; _this.localStorageKey = 'amis-countdownend-' + (_this.props.name || ''); var countDownEnd = parseInt(localStorage.getItem(_this.localStorageKey) || '0'); if (countDownEnd && _this.props.countDown) { if (Date.now() < countDownEnd) { _this.state = { inCountDown: true, countDownEnd: countDownEnd, timeLeft: Math.floor((countDownEnd - Date.now()) / 1000), }; _this.handleCountDown(); } } return _this; } // @autobind // async handleContextMenu(e: React.MouseEvent<any>, visible: boolean = true) { // e.preventDefault() // console.log(e.currentTarget, findDOMNode(this)) // if (e.currentTarget === findDOMNode(this)) { // this.setState({ // menuVisible: visible // }) // } else { // this.setState({ // menuVisible: false // }) // } // } Action.prototype.handleAction = function (e) { return (0, tslib_1.__awaiter)(this, void 0, void 0, function () { var _a, onAction, disabled, countDown, store, data, env, onClick, form, _store_data, result, _b, action, actionType, api, actionApi, actTimeStamp, countDownEnd; var _this = this; return (0, tslib_1.__generator)(this, function (_c) { switch (_c.label) { case 0: _a = this.props, onAction = _a.onAction, disabled = _a.disabled, countDown = _a.countDown, store = _a.store, data = _a.data, env = _a.env; // https://reactjs.org/docs/legacy-event-pooling.html e.persist(); onClick = this.props.onClick; if (store) { form = store === null || store === void 0 ? void 0 : store.form; _store_data = store === null || store === void 0 ? void 0 : store.data; } if (typeof onClick === 'string') { onClick = (0, api_1.str2AsyncFunction)(onClick, 'event', 'props'); } _b = onClick; if (!_b) return [3 /*break*/, 2]; return [4 /*yield*/, onClick(e, this.props)]; case 1: _b = (_c.sent()); _c.label = 2; case 2: result = _b; if (disabled || e.isDefaultPrevented() || result === false || !onAction || this.state.inCountDown) { return [2 /*return*/]; } e.preventDefault(); action = (0, pick_1.default)(this.props, ActionProps); actionType = action.actionType; // Jay // actionType === 'ajax'且配置了confirmText,在本地测试时不要选择移动端,直接在谷歌浏览器切换移动端模式,缩小宽度即可 // 否则在那个手机框里(iframe)不会弹窗显示 // ajax 会在 wrapFetcher 里记录,这里再处理就重复了,因此去掉 // add 一般是 input-table 之类的,会触发 formItemChange,为了避免重复也去掉 if (actionType !== 'ajax' && actionType !== 'download' && actionType !== 'add') { env === null || env === void 0 ? void 0 : env.tracker({ eventType: actionType || this.props.type || 'click', eventData: (0, omit_1.default)(action, ['type', 'actionType', 'tooltipPlacement']) }, this.props); } // download 是一种 ajax 的简写 if (actionType === 'download') { action.actionType = 'ajax'; api = (0, api_1.normalizeApi)(action.api); api.responseType = 'blob'; action.api = api; } // 如果是按钮有api属性并且不是导出和批量下载 按钮的加载状态需要自己管理 if (this.props.api && actionType === 'ajax' && this.isSelfLoadingAction) { // 按钮自身的结束状态 this.setState({ actionloading: true }); actionApi = action.api; actTimeStamp = new Date().getTime() // -请求时间片 ; if (typeof actionApi === 'string') { action.api += "&AciontActTimeStamp=" + actTimeStamp; } else if (typeof actionApi === 'object') { action.api = (0, tslib_1.__assign)((0, tslib_1.__assign)({}, actionApi), { url: actionApi.url + ("&AciontActTimeStamp=" + actTimeStamp) }); } // action的规则 document.body.addEventListener("ActionActId_" + actTimeStamp, function () { _this.setState({ actionloading: false }); }, { once: true }); } onAction(e, action); if (countDown) { countDownEnd = Date.now() + countDown * 1000; this.setState({ countDownEnd: countDownEnd, inCountDown: true, timeLeft: countDown }); localStorage.setItem(this.localStorageKey, String(countDownEnd)); setTimeout(function () { _this.handleCountDown(); }, 1000); } return [2 /*return*/]; } }); }); }; Action.prototype.handleCountDown = function () { var _this = this; // setTimeout 一般会晚于 1s,经过几十次后就不准了,所以使用真实时间进行 diff var timeLeft = Math.floor((this.state.countDownEnd - Date.now()) / 1000); if (timeLeft <= 0) { this.setState({ inCountDown: false, timeLeft: timeLeft }); } else { this.setState({ timeLeft: timeLeft }); setTimeout(function () { _this.handleCountDown(); }, 1000); } }; Action.prototype.componentDidMount = function () { var _this = this; var hotKey = this.props.hotKey; var _a = this.props, store = _a.store, data = _a.data; var form; var _store_data; if (store) { form = store === null || store === void 0 ? void 0 : store.form; _store_data = store === null || store === void 0 ? void 0 : store.data; } // 是否按照自身状态进行加载的标识 ajax dialog 根据自身状态加载 this.isSelfLoadingAction = this.props.isTableAction; // // 将提交的字段进行替换,以解决初始化的问题 // Object.keys(data).map((item: any) => { // if (data.hasOwnProperty('temp_' + item)) { // data[item] = data['temp_' + item]; // deleteVariable(data, 'temp_' + item); // delete data['temp_' + item]; // if (form) { // form[item] = data[item]; // deleteVariable(form, 'temp_' + item); // delete form['temp_' + item]; // } // if (_store_data) { // _store_data[item] = data[item]; // deleteVariable(_store_data, 'temp_' + item); // delete _store_data['temp_' + item]; // } // } // }); if (hotKey) { (0, hotkeys_js_1.default)(hotKey, function (event) { event.preventDefault(); var click = new MouseEvent('click', { bubbles: true, cancelable: true }); _this.handleAction((0, exports.createSyntheticEvent)(click)); }); } }; Action.prototype.componentWillUnmount = function () { var hotKey = this.props.hotKey; if (hotKey) { hotkeys_js_1.default.unbind(hotKey); } }; Action.prototype.handleIcon = function () { var _a = this.props, label = _a.label, flowpath = _a.flowpath; if (label && flowpath) { var hashNum = (0, utils_1.getHashCode)(label) % 54 || 0; var targetIcon = font_1.default[hashNum]; return react_1.default.createElement("div", { className: "card-item-icon_amis", style: { backgroundColor: targetIcon.color, } }, react_1.default.createElement(icons_1.Icon, { icon: '#' + targetIcon.icon })); } return; }; Action.prototype.render = function () { var _a; var _b; var _c = this.props, type = _c.type, icon = _c.icon, iconClassName = _c.iconClassName, rightIcon = _c.rightIcon, rightIconClassName = _c.rightIconClassName, loadingClassName = _c.loadingClassName, primary = _c.primary, size = _c.size, level = _c.level, countDownTpl = _c.countDownTpl, block = _c.block, className = _c.className, componentClass = _c.componentClass, tooltip = _c.tooltip, disabledTip = _c.disabledTip, tooltipPlacement = _c.tooltipPlacement, actionType = _c.actionType, link = _c.link, data = _c.data, __ = _c.translate, activeClassName = _c.activeClassName, isCurrentUrl = _c.isCurrentUrl, isMenuItem = _c.isMenuItem, active = _c.active, activeLevel = _c.activeLevel, tooltipTrigger = _c.tooltipTrigger, tooltipContainer = _c.tooltipContainer, tooltipRootClose = _c.tooltipRootClose, body = _c.body, render = _c.render, cx = _c.classnames, ns = _c.classPrefix, butColor = _c.butColor, flowpath = _c.flowpath, actionGroups = _c.actionGroups, groupName = _c.groupName, groupType = _c.groupType, columnNum = _c.columnNum, env = _c.env, groupLevel = _c.groupLevel, title = _c.title; // 如果是自身加载类型的按钮,使用state中记录的loading标识加载状态 // 否则使用props中的 var loading = this.isSelfLoadingAction ? this.state.actionloading : this.props.loading; if (actionType !== 'email' && body) { return (react_1.default.createElement(TooltipWrapper_1.TooltipWrapper, { classPrefix: ns, classnames: cx, placement: tooltipPlacement, tooltip: tooltip, container: tooltipContainer, trigger: tooltipTrigger, rootClose: tooltipRootClose }, react_1.default.createElement("div", { className: cx('Action', className), onClick: this.handleAction }, render('body', body)))); } var label = this.props.label; var disabled = this.props.disabled; var isActive = !!active; if (actionType === 'link' && !isActive && link && isCurrentUrl) { isActive = isCurrentUrl(link); } // 倒计时 if (this.state.inCountDown) { label = (0, Remark_1.filterContents)(__(countDownTpl), (0, tslib_1.__assign)((0, tslib_1.__assign)({}, data), { timeLeft: this.state.timeLeft })); disabled = true; } var iconElement = (icon === null || icon === void 0 ? void 0 : icon.includes('#')) ? react_1.default.createElement(icons_1.Icon, { icon: icon, className: "icon", symbol: true }) : (0, icon_1.generateIcon)(cx, icon, 'Button-icon', iconClassName); var rightIconElement = (0, icon_1.generateIcon)(cx, rightIcon, 'Button-icon', rightIconClassName); if (actionType == 'action-group') { // 0: 折 1: 平铺 if (groupType == 0) { return render('action-group', { type: 'dropdown-button', label: groupName, size: "sm", disabled: disabled, buttons: actionGroups === null || actionGroups === void 0 ? void 0 : actionGroups.map(function (group) { return { label: group.groupName, children: group.actionItems }; }) }, { columnNum: columnNum, closeOnClick: true, popOverContainer: undefined }); } else if (groupType == 1) { return render('group', { type: "button-group", buttons: (0, lodash_1.flatMap)(actionGroups, function (group) { return group.actionItems; }), disabled: disabled }, { groupLevel: groupLevel }); } } return (react_1.default.createElement(react_1.default.Fragment, null, flowpath ? react_1.default.createElement("div", { className: "card-item_amis", onClick: this.handleAction }, this.handleIcon() && this.handleIcon(), react_1.default.createElement("div", { className: "card-item-name_amis" }, !loading ? iconElement : '', label ? react_1.default.createElement(react_1.default.Fragment, null, (0, tpl_1.filter)(String(label), data)) : null, rightIconElement)) : // chencicsy 用于执行赋值name操作 // 是弹窗的才能打开 react_1.default.createElement(index_1.default, { canOpenWin: this.props.actionType === 'dialog', openWin: this.openWin, showItems: [{ value: this.props.id || this.props.name, label: __('Alert.copyName'), icon: "fa fa-sticky-note-o" }], env: (_b = this.props) === null || _b === void 0 ? void 0 : _b.env }, react_1.default.createElement(Button_1.default, { className: cx(className, (_a = {}, _a[activeClassName || 'is-active'] = isActive, _a)), size: size, onContextMenu: function (e) { e.preventDefault(); e.stopPropagation(); }, level: groupLevel ? groupLevel : activeLevel && isActive ? activeLevel : level || (primary ? 'primary' : undefined), onClick: this.handleAction, loadingClassName: loadingClassName, loading: loading, type: type && ~allowedType.indexOf(type) ? type : 'button', disabled: disabled, componentClass: isMenuItem ? 'a' : componentClass, overrideClassName: isMenuItem, tooltip: (0, Remark_1.filterContents)(tooltip, data), disabledTip: (0, Remark_1.filterContents)(disabledTip, data), tooltipPlacement: tooltipPlacement, tooltipContainer: tooltipContainer, tooltipTrigger: tooltipTrigger, tooltipRootClose: tooltipRootClose, block: block, iconOnly: !!(icon && !label && level !== 'link'), butColor: butColor, title: title }, !loading ? iconElement : '', label ? react_1.default.createElement("span", null, (0, tpl_1.filter)(String(label), data)) : null, rightIconElement)), " ")); }; var _a; Action.defaultProps = { type: 'button', componentClass: 'button', tooltipPlacement: 'bottom', activeClassName: 'is-active', countDownTpl: 'Action.countDown', countDown: 0 }; (0, tslib_1.__decorate)([ helper_1.autobind, (0, tslib_1.__metadata)("design:type", Function), (0, tslib_1.__metadata)("design:paramtypes", [typeof (_a = typeof react_1.default !== "undefined" && react_1.default.MouseEvent) === "function" ? _a : Object]), (0, tslib_1.__metadata)("design:returntype", Promise) ], Action.prototype, "handleAction", null); (0, tslib_1.__decorate)([ helper_1.autobind, (0, tslib_1.__metadata)("design:type", Function), (0, tslib_1.__metadata)("design:paramtypes", []), (0, tslib_1.__metadata)("design:returntype", void 0) ], Action.prototype, "handleCountDown", null); (0, tslib_1.__decorate)([ helper_1.autobind, (0, tslib_1.__metadata)("design:type", Function), (0, tslib_1.__metadata)("design:paramtypes", []), (0, tslib_1.__metadata)("design:returntype", void 0) ], Action.prototype, "componentDidMount", null); (0, tslib_1.__decorate)([ helper_1.autobind, (0, tslib_1.__metadata)("design:type", Function), (0, tslib_1.__metadata)("design:paramtypes", []), (0, tslib_1.__metadata)("design:returntype", void 0) ], Action.prototype, "componentWillUnmount", null); return Action; }(react_1.default.Component)); exports.Action = Action; exports.default = (0, theme_1.themeable)(Action); var ActionRenderer = /** @class */ (function (_super) { (0, tslib_1.__extends)(ActionRenderer, _super); function ActionRenderer(props, context) { var _this = _super.call(this, props) || this; var scoped = context; scoped.registerComponent(_this); return _this; } ActionRenderer.prototype.componentWillUnmount = function () { var scoped = this.context; scoped.unRegisterComponent(this); }; ActionRenderer.prototype.handleAction = function (e, action) { var _a, _b, _c, _d, _e, _f, _g; return (0, tslib_1.__awaiter)(this, void 0, void 0, function () { var _h, env, onAction, reload, api, data, ignoreConfirm, dispatchEvent, confirmApi, replace, handleSendAction, setLoading, setFieldAdd, openFullSelect, translate, rendererEvent, render, _j, ok, data_1, msg, body, confirmMsg, _k, ref_1; var _this = this; return (0, tslib_1.__generator)(this, function (_l) { switch (_l.label) { case 0: _h = this.props, env = _h.env, onAction = _h.onAction, reload = _h.reload, api = _h.api, data = _h.data, ignoreConfirm = _h.ignoreConfirm, dispatchEvent = _h.dispatchEvent, confirmApi = _h.confirmApi, replace = _h.replace, handleSendAction = _h.handleSendAction, setLoading = _h.setLoading, setFieldAdd = _h.setFieldAdd, openFullSelect = _h.openFullSelect, translate = _h.translate; //标记字段表格的工具栏的新增 setFieldAdd === null || setFieldAdd === void 0 ? void 0 : setFieldAdd(); return [4 /*yield*/, dispatchEvent(e, data)]; case 1: rendererEvent = _l.sent(); // 阻止原有动作执行 if (rendererEvent === null || rendererEvent === void 0 ? void 0 : rendererEvent.prevented) { return [2 /*return*/]; } if (!(action.type == "submit" && action.actionType == 'flow_submit_action')) return [3 /*break*/, 3]; return [4 /*yield*/, (handleSendAction === null || handleSendAction === void 0 ? void 0 : handleSendAction())]; case 2: render = _l.sent(); if (render !== undefined && !render) { return [2 /*return*/]; } _l.label = 3; case 3: if (!(action.actionType === 'qywx-chat')) return [3 /*break*/, 5]; return [4 /*yield*/, env.fetcher(action.linkApi, this.props.data)]; case 4: _j = _l.sent(), ok = _j.ok, data_1 = _j.data, msg = _j.msg; if (ok) { if (shell_1.Shell.hasShell()) { shell_1.Shell.openFile(2, '', data_1); } else if (tools_1.tools.isComWx) { location.href = data_1; } else { location.href = data_1; } } else { return [2 /*return*/, env.notify('error', msg)]; } _l.label = 5; case 5: if (!(!ignoreConfirm && action.confirmText && env.confirm)) return [3 /*break*/, 6]; env .confirm((0, tpl_1.filter)(action.confirmText, data)) .then(function (confirmed) { return (0, tslib_1.__awaiter)(_this, void 0, void 0, function () { var confirmMsg, _a; var _b; return (0, tslib_1.__generator)(this, function (_c) { switch (_c.label) { case 0: _a = confirmApi; if (!_a) return [3 /*break*/, 2]; return [4 /*yield*/, env.fetcher(confirmApi, data)]; case 1: _a = (_c.sent()); _c.label = 2; case 2: confirmMsg = _a; if ((confirmMsg === null || confirmMsg === void 0 ? void 0 : confirmMsg.status) === 10004 || (confirmMsg === null || confirmMsg === void 0 ? void 0 : confirmMsg.status) === 10001) { env.notify('warning', confirmMsg === null || confirmMsg === void 0 ? void 0 : confirmMsg.msg); return [2 /*return*/]; } else if ((confirmMsg === null || confirmMsg === void 0 ? void 0 : confirmMsg.status) === 10003) { env === null || env === void 0 ? void 0 : env.confirm((0, tpl_1.filter)((_b = confirmMsg === null || confirmMsg === void 0 ? void 0 : confirmMsg.data) === null || _b === void 0 ? void 0 : _b.showText, data)).then(function (confirmd) { if (confirmd) { // env?.notify("success", "操作执行成功") onAction(e, action, data); } return; }); return [2 /*return*/]; } return [2 /*return*/, confirmed && onAction(e, action, data)]; } }); }); }); return [3 /*break*/, 12]; case 6: //需要先为全量选中和当前选中在进行confirmApi if (((_a = data === null || data === void 0 ? void 0 : data.selectedItems) === null || _a === void 0 ? void 0 : _a.length) && !((_b = data === null || data === void 0 ? void 0 : data.unSelectedItems) === null || _b === void 0 ? void 0 : _b.length) && openFullSelect && confirmApi) { onAction(e, action, data); return [2 /*return*/]; } body = action.actionType == 'next' ? replace === null || replace === void 0 ? void 0 : replace.next : (action.actionType == 'prev' ? replace === null || replace === void 0 ? void 0 : replace.revious : (confirmApi ? (0, helper_1.createObject)(data, (0, tslib_1.__assign)((0, tslib_1.__assign)({}, data), { items: (_c = data.selectedItems) === null || _c === void 0 ? void 0 : _c.concat(), selectedItems: (_d = data.selectedItems) === null || _d === void 0 ? void 0 : _d.concat(), unSelectedItems: (_e = data.unSelectedItems) === null || _e === void 0 ? void 0 : _e.concat(), rows: (_f = data.selectedItems) === null || _f === void 0 ? void 0 : _f.concat() })) : data)); _l.label = 7; case 7: _l.trys.push([7, 10, , 11]); setLoading === null || setLoading === void 0 ? void 0 : setLoading(true); _k = confirmApi; if (!_k) return [3 /*break*/, 9]; return [4 /*yield*/, env.fetcher(confirmApi, body).catch(function (ref) { Toast_1.toast.error(ref.message); return { data: ref, status: 500 }; })]; case 8: _k = (_l.sent()); _l.label = 9; case 9: confirmMsg = _k; setLoading === null || setLoading === void 0 ? void 0 : setLoading(false); if ((confirmMsg === null || confirmMsg === void 0 ? void 0 : confirmMsg.status) === 10004 || (confirmMsg === null || confirmMsg === void 0 ? void 0 : confirmMsg.status) === 10001 || (confirmMsg === null || confirmMsg === void 0 ? void 0 : confirmMsg.status) === 1) { env.notify('warning', confirmMsg === null || confirmMsg === void 0 ? void 0 : confirmMsg.msg); return [2 /*return*/]; } else if ((confirmMsg === null || confirmMsg === void 0 ? void 0 : confirmMsg.status) === 500) { return [2 /*return*/]; } else if ((confirmMsg === null || confirmMsg === void 0 ? void 0 : confirmMsg.status) === 10003) { env === null || env === void 0 ? void 0 : env.confirm((0, tpl_1.filter)((_g = confirmMsg === null || confirmMsg === void 0 ? void 0 : confirmMsg.data) === null || _g === void 0 ? void 0 : _g.showText, data)).then(function (confirmd) { if (confirmd) { // env?.notify("success", "操作执行成功") onAction(e, action, data); } return; }); return [2 /*return*/]; } else if ((confirmMsg === null || confirmMsg === void 0 ? void 0 : confirmMsg.status) === 10005) { env === null || env === void 0 ? void 0 : env.confirm(confirmMsg).then(function (confirmd) { if (confirmd) { onAction(e, action, data); } }); return [2 /*return*/]; } return [3 /*break*/, 11]; case 10: ref_1 = _l.sent(); Toast_1.toast.error(ref_1.message); return [2 /*return*/]; case 11: onAction(e, action, data); _l.label = 12; case 12: return [2 /*return*/]; } }); }); }; ActionRenderer.prototype.reloadTarget = function (target, data) { var scoped = this.context; scoped.reload(target, data); }; ActionRenderer.prototype.isCurrentAction = function (link) { var _a = this.props, env = _a.env, data = _a.data; return env.isCurrentUrl((0, tpl_1.filter)(link, data)); }; ActionRenderer.prototype.render = function () { var _a = this.props, env = _a.env, disabled = _a.disabled, btnDisabled = _a.btnDisabled, loading = _a.loading, rest = (0, tslib_1.__rest)(_a, ["env", "disabled", "btnDisabled", "loading"]); return (react_1.default.createElement(Action, (0, tslib_1.__assign)({}, rest, { env: env, disabled: disabled || btnDisabled, onAction: this.handleAction, loading: loading, isCurrentUrl: this.isCurrentAction, tooltipContainer: (env === null || env === void 0 ? void 0 : env.getTopModalContainer) || undefined }))); }; var _b, _c, _d; ActionRenderer.contextType = Scoped_1.ScopedContext; (0, tslib_1.__decorate)([ helper_1.autobind, (0, tslib_1.__metadata)("design:type", Function), (0, tslib_1.__metadata)("design:paramtypes", [Object, Object]), (0, tslib_1.__metadata)("design:returntype", Promise) ], ActionRenderer.prototype, "handleAction", null); (0, tslib_1.__decorate)([ helper_1.autobind, (0, tslib_1.__metadata)("design:type", Function), (0, tslib_1.__metadata)("design:paramtypes", [String]), (0, tslib_1.__metadata)("design:returntype", void 0) ], ActionRenderer.prototype, "isCurrentAction", null); ActionRenderer = (0, tslib_1.__decorate)([ (0, factory_1.Renderer)({ type: 'action' }) // @ts-ignore 类型没搞定 , Badge_1.withBadge, (0, tslib_1.__metadata)("design:paramtypes", [typeof (_c = typeof factory_1.RendererProps !== "undefined" && factory_1.RendererProps) === "function" ? _c : Object, typeof (_d = typeof Scoped_1.IScopedContext !== "undefined" && Scoped_1.IScopedContext) === "function" ? _d : Object]) ], ActionRenderer); return ActionRenderer; }(react_1.default.Component)); exports.ActionRenderer = ActionRenderer; var ButtonRenderer = /** @class */ (function (_super) { (0, tslib_1.__extends)(ButtonRenderer, _super); function ButtonRenderer() { return _super !== null && _super.apply(this, arguments) || this; } ButtonRenderer = (0, tslib_1.__decorate)([ (0, factory_1.Renderer)({ type: 'button' }) ], ButtonRenderer); return ButtonRenderer; }(ActionRenderer)); exports.ButtonRenderer = ButtonRenderer; var SubmitRenderer = /** @class */ (function (_super) { (0, tslib_1.__extends)(SubmitRenderer, _super); function SubmitRenderer() { return _super !== null && _super.apply(this, arguments) || this; } SubmitRenderer = (0, tslib_1.__decorate)([ (0, factory_1.Renderer)({ type: 'submit' }) ], SubmitRenderer); return SubmitRenderer; }(ActionRenderer)); exports.SubmitRenderer = SubmitRenderer; var ResetRenderer = /** @class */ (function (_super) { (0, tslib_1.__extends)(ResetRenderer, _super); function ResetRenderer() { return _super !== null && _super.apply(this, arguments) || this; } ResetRenderer = (0, tslib_1.__decorate)([ (0, factory_1.Renderer)({ type: 'reset' }) ], ResetRenderer); return ResetRenderer; }(ActionRenderer)); exports.ResetRenderer = ResetRenderer; //# sourceMappingURL=./renderers/Action.js.map