linkmore-design
Version:
🌈 🚀lm组件库。🚀
124 lines (123 loc) • 4.12 kB
JavaScript
"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;