linkmore-design
Version:
🌈 🚀lm组件库。🚀
154 lines (153 loc) • 5.31 kB
JavaScript
import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
import _regeneratorRuntime from "@babel/runtime/regenerator";
import React, { useEffect } from 'react';
import Modal from "../../modal";
import Form from "../../form";
import Input from "../../input";
import Radio from "../../radio";
var Save = function Save(_ref) {
var instance = _ref.instance;
var state = instance.state,
dispatch = instance.dispatch,
customOptions = instance.customOptions,
locale = instance.locale;
var saveModal = state.saveModal;
var _Form$useForm = Form.useForm(),
_Form$useForm2 = _slicedToArray(_Form$useForm, 1),
form = _Form$useForm2[0];
var onClose = function onClose() {
dispatch({
type: 'changeSaveModal',
saveModal: _objectSpread(_objectSpread({}, saveModal), {}, {
visible: false
})
});
form.resetFields();
};
// 下拉选择数据处理
var resetOptions = function resetOptions(item) {
var isHas = customOptions.some(function (v) {
return v.value === item.value;
});
// 新增数据
if (!isHas) {
var nArr = item.default ? customOptions.map(function (v) {
return _objectSpread(_objectSpread({}, v), {}, {
default: false
});
}) : customOptions;
return [].concat(_toConsumableArray(nArr), [item]);
}
// 设为默认
if (item.default) {
return customOptions.map(function (v) {
return v.value === item.value ? item : _objectSpread(_objectSpread({}, v), {}, {
default: false
});
});
}
// 修改数据
return customOptions.map(function (v) {
return v.value === item.value ? item : v;
});
};
var onSave = /*#__PURE__*/function () {
var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
var _instance$onSave, val, nValue;
return _regeneratorRuntime.wrap(function _callee$(_context) {
while (1) switch (_context.prev = _context.next) {
case 0:
_context.prev = 0;
_context.next = 3;
return form.validateFields();
case 3:
val = _context.sent;
nValue = _objectSpread({
data: state.customDrawer.data,
value: state.customDrawer.value
}, val);
if (!nValue.value) {
Object.assign(nValue, {
value: "diy".concat(Date.now())
});
}
onClose();
dispatch({
type: 'changeCustomDrawer',
customDrawer: _objectSpread(_objectSpread({}, state.customDrawer), {}, {
visible: false
})
});
(_instance$onSave = instance.onSave) === null || _instance$onSave === void 0 ? void 0 : _instance$onSave.call(instance, resetOptions(nValue));
_context.next = 14;
break;
case 11:
_context.prev = 11;
_context.t0 = _context["catch"](0);
console.log('error:', _context.t0);
case 14:
case "end":
return _context.stop();
}
}, _callee, null, [[0, 11]]);
}));
return function onSave() {
return _ref2.apply(this, arguments);
};
}();
var modalProps = {
title: locale.saveModalTitle,
size: 'small',
visible: saveModal.visible,
zIndex: 1001,
onOk: function onOk() {
return onSave();
},
onCancel: function onCancel() {
return onClose();
}
};
useEffect(function () {
if (saveModal.visible) {
form.setFieldsValue(saveModal.data);
}
}, [saveModal.visible, form]);
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Modal, modalProps, /*#__PURE__*/React.createElement("div", {
className: "save_modal"
}, /*#__PURE__*/React.createElement(Form, {
form: form,
layout: "vertical",
initialValues: _objectSpread({}, saveModal.data)
}, /*#__PURE__*/React.createElement("div", {
className: "filter_drawer_group"
}, /*#__PURE__*/React.createElement("div", {
className: "text_tip"
}, locale.saveModalTip)), /*#__PURE__*/React.createElement("div", {
className: "filter_drawer_group"
}, /*#__PURE__*/React.createElement(Form.Item, {
name: "label",
label: locale.customDrawerInputLabel,
rules: [{
required: true,
message: locale.customDrawerInputMessage
}]
}, /*#__PURE__*/React.createElement(Input, {
placeholder: locale.placeholder,
size: "middle"
}))), /*#__PURE__*/React.createElement("div", {
className: "filter_drawer_group"
}, /*#__PURE__*/React.createElement(Form.Item, {
name: "default",
label: locale.customDrawerDefault
}, /*#__PURE__*/React.createElement(Radio.Group, {
size: "small"
}, /*#__PURE__*/React.createElement(Radio, {
value: true
}, locale.customDrawerDefaultRadioYes), /*#__PURE__*/React.createElement(Radio, {
value: false
}, locale.customDrawerDefaultRadioNo))))))));
};
export default Save;