UNPKG

fastlion-amis

Version:

一种MIS页面生成工具

101 lines (100 loc) 7.83 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1 = require("tslib"); var react_1 = tslib_1.__importStar(require("react")); var antd_1 = require("antd"); var icons_1 = require("@ant-design/icons"); var icons_2 = require("../../../../components/icons"); var helper_1 = require("../../../../utils/helper"); var ModalFooter = function (props) { var env = props.env, __ = props.translate, advancedFilterApi = props.advancedFilterApi, columnInfo = props.columnInfo, onChange = props.onChange, onConfirm = props.onConfirm, onReset = props.onReset; var _a = (0, react_1.useState)(false), isEdit = _a[0], setIsEdit = _a[1]; var _b = (0, react_1.useState)(''), selectedTempKey = _b[0], setSelectedTempKey = _b[1]; var _c = (0, react_1.useState)([]), templateDatas = _c[0], setTemplateDatas = _c[1]; var inputValue = (0, react_1.useRef)(''); (0, react_1.useEffect)(function () { handleGet(); }, []); var handleGet = function () { return tslib_1.__awaiter(void 0, void 0, void 0, function () { var selectApi, _a, ok, data; return tslib_1.__generator(this, function (_b) { switch (_b.label) { case 0: selectApi = advancedFilterApi.selectApi; return [4 /*yield*/, env.fetcher(selectApi)]; case 1: _a = _b.sent(), ok = _a.ok, data = _a.data; if (ok && Array.isArray(data) && data.length > 0) { setTemplateDatas(data); setSelectedTempKey(data[0].tempKey); onChange(data[0].columnInfo); } else { setTemplateDatas([]); } return [2 /*return*/]; } }); }); }; var handleSave = (0, react_1.useCallback)(function (tempKey, tempName) { return tslib_1.__awaiter(void 0, void 0, void 0, function () { var modifyApi, api, _a, status, msg; return tslib_1.__generator(this, function (_b) { switch (_b.label) { case 0: modifyApi = advancedFilterApi.modifyApi; api = Object.assign({}, modifyApi, { data: { tempName: tempName, tempKey: tempKey, columnInfo: columnInfo } }); return [4 /*yield*/, env.fetcher(api)]; case 1: _a = _b.sent(), status = _a.status, msg = _a.msg; status === 0 ? antd_1.message.success(msg) : antd_1.message.error(msg); return [2 /*return*/]; } }); }); }, [columnInfo]); var handleDelete = function (tempKey) { return tslib_1.__awaiter(void 0, void 0, void 0, function () { var deleteApi, api, _a, status, msg; return tslib_1.__generator(this, function (_b) { switch (_b.label) { case 0: deleteApi = advancedFilterApi.deleteApi; api = Object.assign({}, deleteApi, { url: "".concat(deleteApi.url, "&tempKey=").concat(tempKey) }); return [4 /*yield*/, env.fetcher(api)]; case 1: _a = _b.sent(), status = _a.status, msg = _a.msg; status === 0 ? antd_1.message.success(msg) : antd_1.message.error(msg); handleGet(); return [2 /*return*/]; } }); }); }; return (react_1.default.createElement("div", { className: 'defaultModal-footer' }, react_1.default.createElement("div", { className: 'defaultModal-footer-left' }, react_1.default.createElement(antd_1.Button, { type: "primary", disabled: isEdit, onClick: function () { setIsEdit(true); inputValue.current = ''; } }, "+ \u65B0\u589E\u9ED8\u8BA4"), isEdit ? (react_1.default.createElement("div", { className: 'template-name' }, react_1.default.createElement(antd_1.Input, { placeholder: "\u8BF7\u8F93\u5165\u6A21\u7248\u540D\u79F0", onChange: function (e) { return inputValue.current = e.target.value; } }), react_1.default.createElement(antd_1.Button, { style: { margin: 0 }, onClick: function () { setIsEdit(false); handleSave((0, helper_1.uuid)(), inputValue.current); } }, react_1.default.createElement(icons_1.CheckOutlined, null)), react_1.default.createElement(antd_1.Button, { style: { margin: 0 }, onClick: function () { setIsEdit(false); } }, react_1.default.createElement(icons_1.CloseOutlined, null)))) : react_1.default.createElement("div", null, templateDatas.length > 0 && react_1.default.createElement(antd_1.Select, { className: 'defaultModal-select-content', dropdownClassName: "dropdown-select-style", bordered: true, style: { textAlign: 'left' }, getPopupContainer: env.getModalContainer, defaultActiveFirstOption: true, suffixIcon: react_1.default.createElement(icons_2.Icon, { symbol: true, icon: '#icon-tooltool_down', className: "icon" }), value: selectedTempKey, onChange: function (value) { setSelectedTempKey(value); var target = templateDatas.find(function (data) { return data.tempKey == value; }); // handleSave(value, target.tempName, target.columnInfo) onChange(target.columnInfo); } }, templateDatas.map(function (item) { return (react_1.default.createElement(antd_1.Select.Option, { value: item.tempKey, key: item.tempKey, className: 'defaultModal-select-content-option' }, react_1.default.createElement("div", { className: 'defaultModal-select-content-option-tempName' }, item.tempName), react_1.default.createElement("div", { className: 'defaultModal-select-content-option-click', onClick: function (e) { return e.stopPropagation(); } }, react_1.default.createElement(icons_1.EditOutlined, { onClick: function (e) { } }), react_1.default.createElement(antd_1.Popconfirm, { title: "\u786E\u5B9A\u8981\u5220\u9664\u5417?", okText: __('confirm'), cancelText: __('cancel'), onConfirm: function () { return handleDelete(item.tempKey); } }, react_1.default.createElement(icons_1.DeleteOutlined, null))))); })))), react_1.default.createElement("div", { className: 'defaultModal-footer-right' }, advancedFilterApi && react_1.default.createElement(react_1.default.Fragment, null, // 2025-02 更新逻辑为 有默认模版列表则显示设置默认按钮 templateDatas.length > 0 && (react_1.default.createElement("span", { style: { display: 'inline-block', marginRight: 10 } }, react_1.default.createElement(antd_1.Button, { disabled: isEdit, type: "primary", onClick: function () { handleSave(selectedTempKey, templateDatas.find(function (data) { return data.tempKey == selectedTempKey; }).tempName); } }, __('default'))))), react_1.default.createElement("span", { style: { display: 'inline-block', marginRight: 10 } }, react_1.default.createElement(antd_1.Button, { onClick: function () { var _a; onReset((_a = templateDatas.find(function (data) { return data.tempKey == selectedTempKey; })) === null || _a === void 0 ? void 0 : _a.columnInfo); } }, __('reset'))), react_1.default.createElement(antd_1.Button, { type: "primary", onClick: onConfirm }, __('confirm'))))); }; exports.default = ModalFooter; //# sourceMappingURL=./renderers/CRUD/components/AdvancedQuery/ModalFooter.js.map