UNPKG

linkmore-design

Version:

🌈 🚀lm组件库。🚀

141 lines 4.97 kB
import _extends from "@babel/runtime/helpers/esm/extends"; import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2"; import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator"; import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray"; import _regeneratorRuntime from "@babel/runtime/regenerator"; import React, { useEffect, useState } from 'react'; import Form from "../../../form"; import Input from "../../../input"; import Modal from "../../../modal"; import Radio from "../../../radio"; import ComplexForm from "../Complex/ComplexForm"; var CustomModal = function CustomModal(_ref) { var instance = _ref.instance; var state = instance.state, dispatch = instance.dispatch, onSave = instance.onSave, locale = instance.locale, _instance$customOptio = instance.customOptions, customOptions = _instance$customOptio === void 0 ? [] : _instance$customOptio; var customFilter = state.customFilter; var _useState = useState(false), _useState2 = _slicedToArray(_useState, 2), loading = _useState2[0], setLoading = _useState2[1]; var _Form$useForm = Form.useForm(), _Form$useForm2 = _slicedToArray(_Form$useForm, 1), form = _Form$useForm2[0]; var cancel = function cancel() { dispatch({ type: 'changeCustomFilter', customFilter: { visible: false } }); }; var handleQuery = /*#__PURE__*/function () { var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() { var values, resultList; return _regeneratorRuntime.wrap(function _callee$(_context) { while (1) switch (_context.prev = _context.next) { case 0: setLoading(true); _context.prev = 1; _context.next = 4; return form.validateFields(); case 4: values = _context.sent; resultList = customOptions.reduce(function (pre, cur) { var isDefault = values.default ? false : cur.default; var isEditing = cur.value === values.value; var obj = isEditing ? values : _objectSpread(_objectSpread({}, cur), {}, { default: isDefault }); pre.push(obj); return pre; }, []); if (customFilter.type === 'add') resultList.push(values); _context.next = 9; return onSave(values, resultList); case 9: cancel === null || cancel === void 0 ? void 0 : cancel(); setLoading(false); _context.next = 17; break; case 13: _context.prev = 13; _context.t0 = _context["catch"](1); console.log('Error:保存失败!'); setLoading(false); case 17: case "end": return _context.stop(); } }, _callee, null, [[1, 13]]); })); return function handleQuery() { return _ref2.apply(this, arguments); }; }(); var modalConfig = { title: locale.customFilter, open: customFilter.visible, bodyStyle: { paddingTop: 0, paddingBottom: 0 }, width: 680, confirmLoading: loading, onCancel: cancel, onOk: function onOk() { handleQuery(); } }; useEffect(function () { customFilter.visible ? form.setFieldsValue(customFilter) : form.resetFields(); }, [customFilter.visible]); return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Modal, _extends({}, modalConfig, { className: "complex_container" }), /*#__PURE__*/React.createElement(Form, { name: "dynamic_form_item", form: form, component: false, initialValues: { default: false, relation: 'and', data: [{}], value: Date.now() } }, /*#__PURE__*/React.createElement("div", { className: "filter_drawer_group" }, /*#__PURE__*/React.createElement(Form.Item, { name: "label", label: locale.customInputLabel, rules: [{ required: true, message: locale.customInputMessage }] }, /*#__PURE__*/React.createElement(Input, { placeholder: locale.placeholder, size: "middle" })), /*#__PURE__*/React.createElement(Form.Item, { name: "value", hidden: true }, /*#__PURE__*/React.createElement(Input, null))), /*#__PURE__*/React.createElement("div", { className: "filter_drawer_group" }, /*#__PURE__*/React.createElement(Form.Item, { name: "default", label: locale.customDefault }, /*#__PURE__*/React.createElement(Radio.Group, { size: "small" }, /*#__PURE__*/React.createElement(Radio, { value: true }, locale.customDefaultRadioYes), /*#__PURE__*/React.createElement(Radio, { value: false }, locale.customDefaultRadioNo)))), customFilter.visible && /*#__PURE__*/React.createElement(ComplexForm, { instance: instance, form: form, title: "" })))); }; export default CustomModal;