UNPKG

linkmore-design

Version:

🌈 🚀lm组件库。🚀

140 lines (138 loc) 4.19 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default; var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _react = _interopRequireWildcard(require("react")); var _modal = _interopRequireDefault(require("../../modal")); var _form = _interopRequireDefault(require("../../form")); var _input = _interopRequireDefault(require("../../input")); var _radio = _interopRequireDefault(require("../../radio")); const Save = ({ instance }) => { const { state, dispatch, customOptions, locale } = instance; const { saveModal } = state; const [form] = _form.default.useForm(); const onClose = () => { dispatch({ type: 'changeSaveModal', saveModal: { ...saveModal, visible: false } }); form.resetFields(); }; // 下拉选择数据处理 const resetOptions = item => { const isHas = customOptions.some(v => v.value === item.value); // 新增数据 if (!isHas) { const nArr = item.default ? customOptions.map(v => ({ ...v, default: false })) : customOptions; return [...nArr, item]; } // 设为默认 if (item.default) { return customOptions.map(v => { return v.value === item.value ? item : { ...v, default: false }; }); } // 修改数据 return customOptions.map(v => { return v.value === item.value ? item : v; }); }; const onSave = async () => { try { const val = await form.validateFields(); const nValue = { data: state.customDrawer.data, value: state.customDrawer.value, ...val }; if (!nValue.value) { Object.assign(nValue, { value: `diy${Date.now()}` }); } onClose(); dispatch({ type: 'changeCustomDrawer', customDrawer: { ...state.customDrawer, visible: false } }); instance.onSave?.(resetOptions(nValue)); } catch (error) { console.log('error:', error); } }; const modalProps = { title: locale.saveModalTitle, size: 'small', visible: saveModal.visible, zIndex: 1001, onOk: () => onSave(), onCancel: () => onClose() }; (0, _react.useEffect)(() => { if (saveModal.visible) { form.setFieldsValue(saveModal.data); } }, [saveModal.visible, form]); return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_modal.default, modalProps, /*#__PURE__*/_react.default.createElement("div", { className: "save_modal" }, /*#__PURE__*/_react.default.createElement(_form.default, { form: form, layout: "vertical", initialValues: { ...saveModal.data } }, /*#__PURE__*/_react.default.createElement("div", { className: "filter_drawer_group" }, /*#__PURE__*/_react.default.createElement("div", { className: "text_tip" }, locale.saveModalTip)), /*#__PURE__*/_react.default.createElement("div", { className: "filter_drawer_group" }, /*#__PURE__*/_react.default.createElement(_form.default.Item, { name: "label", label: locale.customDrawerInputLabel, rules: [{ required: true, message: locale.customDrawerInputMessage }] }, /*#__PURE__*/_react.default.createElement(_input.default, { placeholder: locale.placeholder, size: "middle" }))), /*#__PURE__*/_react.default.createElement("div", { className: "filter_drawer_group" }, /*#__PURE__*/_react.default.createElement(_form.default.Item, { name: "default", label: locale.customDrawerDefault }, /*#__PURE__*/_react.default.createElement(_radio.default.Group, { size: "small" }, /*#__PURE__*/_react.default.createElement(_radio.default, { value: true }, locale.customDrawerDefaultRadioYes), /*#__PURE__*/_react.default.createElement(_radio.default, { value: false }, locale.customDrawerDefaultRadioNo)))))))); }; var _default = Save; exports.default = _default;