UNPKG

app-base-react

Version:
356 lines (306 loc) 10.8 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _modal = require("antd/lib/modal"); var _modal2 = _interopRequireDefault(_modal); var _button = require("antd/lib/button"); var _button2 = _interopRequireDefault(_button); var _message2 = require("antd/lib/message"); var _message3 = _interopRequireDefault(_message2); var _form = require("antd/lib/form"); var _form2 = _interopRequireDefault(_form); var _input = require("antd/lib/input"); var _input2 = _interopRequireDefault(_input); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }(); require("antd/lib/modal/style/css"); require("antd/lib/button/style/css"); require("antd/lib/message/style/css"); require("antd/lib/form/style/css"); require("antd/lib/input/style/css"); var _copyTextToClipboard = require("copy-text-to-clipboard"); var _copyTextToClipboard2 = _interopRequireDefault(_copyTextToClipboard); var _react = require("react"); var _react2 = _interopRequireDefault(_react); var _reactI18next = require("react-i18next"); var _dic = require("../../../../library/dic"); var _dic2 = _interopRequireDefault(_dic); var _utils = require("../../utils"); var _hooks = require("../../utils/hooks"); var _core = require("./core"); var _core2 = _interopRequireDefault(_core); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var TextArea = _input2.default.TextArea; var defaultForm = function defaultForm() { return _react2.default.createElement( _form2.default, { name: "basic", initialValues: { remember: true }, autoComplete: "off" }, _react2.default.createElement( _form2.default.Item, { name: "declarationUnit", label: "\u7533\u62A5\u5355\u4F4D", rules: [{ required: true, message: '请填写申报单位!' }] }, _react2.default.createElement(_input2.default, null) ), _react2.default.createElement( _form2.default.Item, { name: "credit", label: "\u7EDF\u4E00\u793E\u4F1A\u4FE1\u7528\u4EE3\u7801", rules: [{ required: true, message: '请输入统一社会信用代码!' }] }, _react2.default.createElement(_input2.default, null) ), _react2.default.createElement( _form2.default.Item, { name: "unitType", label: "\u5355\u4F4D\u4E3B\u4F53\u7C7B\u578B", rules: [{ required: true, message: '请输入单位主体类型!' }] }, _react2.default.createElement(_dic2.default, { params: { app: 'project', type: '单位类型' } }) ), _react2.default.createElement( _form2.default.Item, { name: "address", label: "\u5355\u4F4D\u9A7B\u5730", rules: [{ required: true, message: '请输入单位驻地!' }] }, _react2.default.createElement(_input2.default, null) ), _react2.default.createElement( _form2.default.Item, { name: "contactName", label: "\u8054\u7CFB\u4EBA", rules: [{ required: true, message: '请输入联系人!' }] }, _react2.default.createElement(_input2.default, null) ), _react2.default.createElement( _form2.default.Item, { name: "phone", label: "\u8054\u7CFB\u7535\u8BDD", rules: [{ required: true, message: '请输入联系电话!' }] }, _react2.default.createElement(_input2.default, null) ), _react2.default.createElement( _form2.default.Item, { name: "email", label: "\u8054\u7CFB\u90AE\u7BB1", rules: [{ required: true, message: '请输入联系邮箱!' }] }, _react2.default.createElement(_input2.default, null) ) ); }; var Canvas = function Canvas(_ref) { var onSelect = _ref.onSelect, disabled = _ref.disabled; var _useTranslation = (0, _reactI18next.useTranslation)(), t = _useTranslation.t; var setGlobal = (0, _hooks.useGlobal)(); var _useStore = (0, _hooks.useStore)(), userProps = _useStore.userProps, displaySchema = _useStore.displaySchema, displaySchemaString = _useStore.displaySchemaString, preview = _useStore.preview, selected = _useStore.selected, flatten = _useStore.flatten, onChange = _useStore.onChange, onSchemaChange = _useStore.onSchemaChange; var _useSet = (0, _hooks.useSet)({ showModal: false, showModal2: false, schemaForImport: "" }), _useSet2 = _slicedToArray(_useSet, 2), local = _useSet2[0], setState = _useSet2[1]; var transformer = userProps.transformer, _userProps$extraButto = userProps.extraButtons, extraButtons = _userProps$extraButto === undefined ? [] : _userProps$extraButto, showDefaultForm = userProps.showDefaultForm; var toggleModal = function toggleModal() { return setState({ showModal: !local.showModal }); }; var toggleModal2 = function toggleModal2() { return setState({ showModal2: !local.showModal2 }); }; var onTextareaChange = function onTextareaChange(e) { setState({ schemaForImport: e.target.value }); }; var importSchema = function importSchema() { try { var value = transformer.from((0, _utils.looseJsonParse)(local.schemaForImport)); setGlobal(function () { return _extends({ selected: undefined }, (0, _utils.schemaToState)(value)); }); onChange(value.formData || {}); onSchemaChange(value); } catch (error) { console.error(error, "catch"); _message3.default.info(t("格式不对哦,请重新尝试")); // 可以加个格式哪里不对的提示 } toggleModal2(); }; var copySchema = function copySchema() { (0, _copyTextToClipboard2.default)(displaySchemaString); _message3.default.info(t("复制成功")); toggleModal(); }; var clearSchema = function clearSchema() { var schema = { type: "object", properties: {} }; setGlobal({ schema: schema, formData: {}, selected: undefined }); onChange({}); onSchemaChange(schema); }; (0, _react.useEffect)(function () { if (!onSelect) return; onSelect((0, _utils.idToSchema)(flatten, selected)); }, [selected]); var _extraButtons = Array.isArray(extraButtons) ? extraButtons : []; var _showDefaultBtns = _extraButtons.filter(function (item) { return !(0, _utils.isObject)(item); }); var _extraBtns = _extraButtons.filter(function (item) { return (0, _utils.isObject)(item); }); var getDefaultBtnText = function getDefaultBtnText(text, defaultText, index) { if (typeof index === "number") { if (Array.isArray(text)) return text[index]; return defaultText[index]; } if (typeof text === "string") return text; return defaultText; }; return _react2.default.createElement( "div", { className: "mid-layout pr2" }, disabled ? _react2.default.createElement( "div", { style: { overflow: 'scroll' } }, showDefaultForm ? defaultForm() : '', _react2.default.createElement(_core2.default, { preview: true, displaySchema: displaySchema }) ) : _react2.default.createElement( _react.Fragment, null, _react2.default.createElement( "div", { className: "mv2 mh1" }, _showDefaultBtns[0] !== false && _react2.default.createElement( _button2.default, { className: "mr2 mb1", onClick: function onClick() { setGlobal({ selected: "#", preview: !preview }); } }, getDefaultBtnText(_showDefaultBtns[0], [t("开始编辑"), t("预览")], Number(!preview)) ), _extraBtns.map(function (item, idx) { return _react2.default.createElement( _button2.default, _extends({ type: "primary", key: idx.toString(), className: "mr2" }, item), item.text || item.children ); }) ), _react2.default.createElement( "div", { className: "dnd-container " + (preview ? "preview" : "edit") }, _react2.default.createElement("div", { style: { height: preview ? 33 : 0 } }), showDefaultForm ? defaultForm() : '', _react2.default.createElement(_core2.default, { preview: preview, displaySchema: displaySchema }) ), _react2.default.createElement( _modal2.default, { visible: local.showModal, onOk: copySchema, onCancel: toggleModal, okText: t("复制"), cancelText: t("取消") }, _react2.default.createElement( "div", { className: "mt3" }, _react2.default.createElement(TextArea, { style: { fontSize: 12 }, value: displaySchemaString, autoSize: { minRows: 10, maxRows: 30 } }) ) ), _react2.default.createElement( _modal2.default, { visible: local.showModal2, okText: t("导入"), cancelText: t("取消"), onOk: importSchema, onCancel: toggleModal2 }, _react2.default.createElement( "div", { className: "mt3" }, _react2.default.createElement(TextArea, { style: { fontSize: 12 }, value: local.schemaForImport, placeholder: t("贴入需要导入的schema,模样可点击导出schema参考"), onChange: onTextareaChange, autoSize: { minRows: 10, maxRows: 30 } }) ) ) ) ); }; exports.default = Canvas;