linkmore-design
Version:
🌈 🚀lm组件库。🚀
141 lines • 4.97 kB
JavaScript
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;