UNPKG

fx-form-widget

Version:
138 lines (136 loc) 5.36 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); exports.__esModule = true; exports.setRules = exports["default"] = void 0; var _col = _interopRequireDefault(require("antd/lib/col")); var _tooltip = _interopRequireDefault(require("antd/lib/tooltip")); var _form = _interopRequireDefault(require("antd/lib/form")); var _react = _interopRequireWildcard(require("react")); var React = _react; var _classnames = _interopRequireDefault(require("classnames")); var _widgets = require("../../widgets"); var _previewPlatform = require("../../../previewPlatform"); var _icons = require("@ant-design/icons"); var _tools = require("../../tools"); function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); } function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; } // 不同布局组件的id集合 var LAYOUT_COMPONENTIDS = { SUB_FORM_ID: 100, GROUP_ID: 101, SEPARATOR_ID: 102 }; var DefaultWidgets = _widgets.Widgets; var Item = _form["default"].Item; // 添加校验规则 var setRules = exports.setRules = function setRules(viewSchema) { var required = viewSchema.required, minLength = viewSchema.minLength, maxLength = viewSchema.maxLength, title = viewSchema.title, pattern = viewSchema.pattern, patternErrMsg = viewSchema.patternErrMsg; // 校验规则 var rulesList = []; rulesList.push({ required: required, message: title + "\u4E0D\u80FD\u4E3A\u7A7A" }); // 最小字数 if ((0, _tools.isNotNullValue)(minLength)) { rulesList.push({ min: minLength, message: "\u8F93\u5165\u4E0D\u80FD\u5C11\u4E8E" + minLength + "\u4E2A\u5B57\u7B26" }); } // 最大字数 if ((0, _tools.isNotNullValue)(maxLength)) { rulesList.push({ max: maxLength, message: "\u8F93\u5165\u4E0D\u80FD\u591A\u4E8E" + maxLength + "\u4E2A\u5B57\u7B26" }); } if ((0, _tools.isNotNullValue)(pattern)) { try { var regexp = new RegExp(pattern); rulesList.push({ pattern: regexp, message: patternErrMsg || undefined, validateTrigger: 'onBlur' }); } catch (error) { console.error(error); } } return rulesList; }; var RenderWidget = function RenderWidget(_ref) { var schema = _ref.schema, onCheck = _ref.onCheck, children = _ref.children; var id = schema.id, wid = schema.wid, widget = schema.widget, _schema$viewSchema = schema.viewSchema, title = _schema$viewSchema.title, description = _schema$viewSchema.description, data = _schema$viewSchema.data, fieldName = _schema$viewSchema.fieldName, required = _schema$viewSchema.required; var ContentContext = (0, _react.useContext)(_previewPlatform.Context); var Widget = DefaultWidgets[widget]; if (!Widget) { return null; } var onSchemaChange = ContentContext.onSchemaChange, globalData = ContentContext.globalData; var _globalData$column = globalData.column, column = _globalData$column === void 0 ? 3 : _globalData$column; var onChange = function onChange(value) { schema.viewSchema.data = value; onSchemaChange('edit', schema); }; var renderDescription = function renderDescription(description) { if (description) { return /*#__PURE__*/React.createElement(_tooltip["default"], { title: description }, /*#__PURE__*/React.createElement(_icons.ExclamationCircleOutlined, null)); } return null; }; var className = (0, _classnames["default"])('label-content', { 'label-content-required': required }); var renderTitle = function renderTitle(title) { return /*#__PURE__*/React.createElement("div", { className: className }, title, renderDescription(description)); }; if (id === LAYOUT_COMPONENTIDS['SEPARATOR_ID']) { return /*#__PURE__*/React.createElement(_col["default"], { span: 24 }, /*#__PURE__*/React.createElement(Item, { className: "separator-wrap" }, /*#__PURE__*/React.createElement("div", { className: "separator-title" }, title), /*#__PURE__*/React.createElement(Widget, { schema: schema.viewSchema }))); } return /*#__PURE__*/React.createElement(_col["default"], { span: column === 1 ? 16 : 24 / column }, /*#__PURE__*/React.createElement(Item, { name: fieldName ? fieldName : wid, rules: setRules(schema.viewSchema), label: renderTitle(title), className: "form-item-widget-wrapper" }, /*#__PURE__*/React.createElement(Widget, { isInit: true, value: data, onChange: onChange, onCheck: onCheck, schema: schema.viewSchema, children: children }))); }; var _default = exports["default"] = RenderWidget;