UNPKG

linkmore-design

Version:

🌈 🚀lm组件库。🚀

124 lines (123 loc) 4.12 kB
"use strict"; var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _react = _interopRequireWildcard(require("react")); var _form = _interopRequireDefault(require("../../../form")); var _input = _interopRequireDefault(require("../../../input")); var _modal = _interopRequireDefault(require("../../../modal")); var _radio = _interopRequireDefault(require("../../../radio")); var _ComplexForm = _interopRequireDefault(require("../Complex/ComplexForm")); const CustomModal = ({ instance }) => { const { state, dispatch, onSave, locale, customOptions = [] } = instance; const { customFilter } = state; const [loading, setLoading] = (0, _react.useState)(false); const [form] = _form.default.useForm(); const cancel = () => { dispatch({ type: 'changeCustomFilter', customFilter: { visible: false } }); }; const handleQuery = async () => { setLoading(true); try { const values = await form.validateFields(); const resultList = customOptions.reduce((pre, cur) => { const isDefault = values.default ? false : cur.default; const isEditing = cur.value === values.value; const obj = isEditing ? values : { ...cur, default: isDefault }; pre.push(obj); return pre; }, []); if (customFilter.type === 'add') resultList.push(values); await onSave(values, resultList); cancel?.(); setLoading(false); } catch (error) { console.log('Error:保存失败!'); setLoading(false); } }; const modalConfig = { title: locale.customFilter, open: customFilter.visible, bodyStyle: { paddingTop: 0, paddingBottom: 0 }, width: 680, confirmLoading: loading, onCancel: cancel, onOk: () => { handleQuery(); } }; (0, _react.useEffect)(() => { customFilter.visible ? form.setFieldsValue(customFilter) : form.resetFields(); }, [customFilter.visible]); return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_modal.default, (0, _extends2.default)({}, modalConfig, { className: "complex_container" }), /*#__PURE__*/_react.default.createElement(_form.default, { name: "dynamic_form_item", form: form, component: false, initialValues: { default: false, relation: 'and', data: [{}], value: Date.now() } }, /*#__PURE__*/_react.default.createElement("div", { className: "filter_drawer_group" }, /*#__PURE__*/_react.default.createElement(_form.default.Item, { name: "label", label: locale.customInputLabel, rules: [{ required: true, message: locale.customInputMessage }] }, /*#__PURE__*/_react.default.createElement(_input.default, { placeholder: locale.placeholder, size: "middle" })), /*#__PURE__*/_react.default.createElement(_form.default.Item, { name: "value", hidden: true }, /*#__PURE__*/_react.default.createElement(_input.default, null))), /*#__PURE__*/_react.default.createElement("div", { className: "filter_drawer_group" }, /*#__PURE__*/_react.default.createElement(_form.default.Item, { name: "default", label: locale.customDefault }, /*#__PURE__*/_react.default.createElement(_radio.default.Group, { size: "small" }, /*#__PURE__*/_react.default.createElement(_radio.default, { value: true }, locale.customDefaultRadioYes), /*#__PURE__*/_react.default.createElement(_radio.default, { value: false }, locale.customDefaultRadioNo)))), customFilter.visible && /*#__PURE__*/_react.default.createElement(_ComplexForm.default, { instance: instance, form: form, title: "" })))); }; var _default = CustomModal; exports.default = _default;