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