nsn-comp
Version:
NSN核心组件
187 lines (154 loc) • 6.1 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.EditForm = void 0;
require("antd/lib/modal/style");
var _modal = _interopRequireDefault(require("antd/lib/modal"));
var _proTable = _interopRequireDefault(require("@ant-design/pro-table"));
var _nsnEnum = require("nsn-enum");
var _nsnUtil = require("nsn-util");
var _react = _interopRequireDefault(require("react"));
var _comp = require("./_comp");
var _util = require("./_util");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
var getSaveTNype = function getSaveTNype(editForm) {
var saveNType = undefined;
var beforeSubmit = undefined;
var defaultValues = {};
var postRecord = undefined;
if (_nsnUtil.NType.isString(editForm)) {
saveNType = editForm;
} else if (editForm) {
saveNType = editForm.dtype;
beforeSubmit = editForm.beforeSubmit;
defaultValues = editForm.defaultValues || {};
postRecord = editForm.postRecord;
}
return {
saveNType: saveNType,
beforeSubmit: beforeSubmit,
defaultValues: defaultValues,
postRecord: postRecord
};
};
var ModalTitle = function ModalTitle(props) {
var type = props.type;
var subTitle = _nsnUtil.NLocale.getText(_nsnUtil.NStr.isEqual(type, _nsnEnum.Operation.NEW) ? 'operation.new' : 'operation.edit');
return _react.default.createElement(_react.default.Fragment, null, subTitle, _nsnUtil.NLocale.isEN() ? " " : '', _react.default.createElement(_comp.HeaderTitle, null));
};
var onSubmitEditForm = function onSubmitEditForm(comp, payload) {
var _comp$props = comp.props,
dispatch = _comp$props.dispatch,
editForm = _comp$props.editForm;
var editFormProps = getSaveTNype(editForm);
var submit = {
pass: true,
params: payload
};
if (editFormProps.beforeSubmit) {
var newPayload = editFormProps.beforeSubmit(payload, comp);
if (newPayload) {
submit.params = newPayload;
} else {
submit.pass = false;
}
} //
Object.keys(editFormProps.defaultValues).forEach(function (k) {
var submitValue = submit.params[k];
if (_nsnUtil.NStr.isTrimEmpty(submitValue)) {
submit.params[k] = editFormProps.defaultValues[k];
}
}); //
if (submit.pass && dispatch && editFormProps.saveNType) {
var _submit$params$id, _submit$params;
var _comp$state$record = comp.state.record,
record = _comp$state$record === void 0 ? {
id: undefined
} : _comp$state$record;
dispatch({
message: {
success: true
},
type: editFormProps.saveNType,
payload: _objectSpread(_objectSpread({}, submit.params), {}, {
id: (_submit$params$id = (_submit$params = submit.params) === null || _submit$params === void 0 ? void 0 : _submit$params.id) !== null && _submit$params$id !== void 0 ? _submit$params$id : record.id
}),
callback: function callback(_ref) {
var success = _ref.success;
if (success) {
comp.setState({
editVisible: false,
record: undefined
});
(0, _util.requestPage)(comp);
}
}
});
}
};
var EditForm = function EditForm(props) {
var comp = props.comp;
var _comp$state = comp.state,
editVisible = _comp$state.editVisible,
editType = _comp$state.editType,
_comp$state$record2 = _comp$state.record,
record = _comp$state$record2 === void 0 ? {} : _comp$state$record2,
editFormRef = _comp$state.editFormRef;
var _comp$props2 = comp.props,
loading = _comp$props2.loading,
editForm = _comp$props2.editForm;
var editFormProps = getSaveTNype(editForm); //
var saveLoading = false;
if (editFormProps.saveNType) {
saveLoading = loading.effects[editFormProps.saveNType];
}
return _react.default.createElement(_modal.default, {
destroyOnClose: true,
visible: editVisible,
title: _react.default.createElement(ModalTitle, {
type: editType
}),
maskClosable: false,
bodyStyle: {
maxHeight: '500px',
overflowY: 'auto'
},
onCancel: function onCancel() {
return comp.setState({
editVisible: false,
record: undefined
});
},
onOk: function onOk() {
return editFormRef === null || editFormRef === void 0 ? void 0 : editFormRef.submit();
},
okButtonProps: {
loading: saveLoading
}
}, _react.default.createElement(_proTable.default, {
type: "form",
form: {
layout: 'vertical',
initialValues: editFormProps.postRecord ? editFormProps.postRecord(record) : record
},
columns: (0, _util.getColumns)(comp),
onSubmit: function onSubmit(params) {
return onSubmitEditForm(comp, params);
},
actionRef: function actionRef(ref) {
return comp.setState({
editActionRef: ref
});
},
formRef: function formRef(ref) {
return comp.setState({
editFormRef: ref
});
}
}));
};
exports.EditForm = EditForm;