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