UNPKG

dareway-rui

Version:

1,063 lines (903 loc) 40.4 kB
'use strict'; var _interopRequireWildcard = require('@babel/runtime/helpers/interopRequireWildcard'); var _interopRequireDefault = require('@babel/runtime/helpers/interopRequireDefault'); Object.defineProperty(exports, '__esModule', { value: true }); exports.appendVisiualStyle = appendVisiualStyle; exports.wrapFormItemTagApis = wrapFormItemTagApis; exports.genFormItemsInitState = genFormItemsInitState; exports.getSelectChildrenCodeInfo = getSelectChildrenCodeInfo; exports.default = void 0; var _typeof2 = _interopRequireDefault(require('@babel/runtime/helpers/typeof')); var _defineProperty2 = _interopRequireDefault(require('@babel/runtime/helpers/defineProperty')); var _objectWithoutProperties2 = _interopRequireDefault(require('@babel/runtime/helpers/objectWithoutProperties')); var _regenerator = _interopRequireDefault(require('@babel/runtime/regenerator')); var _objectSpread4 = _interopRequireDefault(require('@babel/runtime/helpers/objectSpread')); var _TaglibConstants = require('../TaglibConstants'); var _uuid = _interopRequireDefault(require('../../util/uuid')); var _CardMask = _interopRequireDefault(require('../mask/string/CardMask')); var _YzbmMask = _interopRequireDefault(require('../mask/string/YzbmMask')); var _date = require('../mask/date'); var _FormConstants = require('./FormConstants'); var _util = require('../../util'); var _util2 = require('../common/util'); var _react = _interopRequireDefault(require('react')); var _fragment = require('../fragment'); var sagaEffects = _interopRequireWildcard(require('redux-saga/effects')); var _dataNormalizeHelper = require('./dataNormalizeHelper'); function appendVisiualStyle() { var basicStyle = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; var align = arguments.length > 1 ? arguments[1] : undefined; var fontColor = arguments.length > 2 ? arguments[2] : undefined; var bold = arguments.length > 3 ? arguments[3] : undefined; var backgroundColor = arguments.length > 4 ? arguments[4] : undefined; var underline = arguments.length > 5 ? arguments[5] : undefined; var oblique = arguments.length > 6 ? arguments[6] : undefined; var border = arguments.length > 7 ? arguments[7] : undefined; if (align && align !== 'left' && align !== 'center' && align !== 'right') { throw new Error( "\u6837\u5F0F\u5C5E\u6027 align \u5408\u7406\u53D6\u503C\u4E3A 'left'\u3001'center'\u3001'right'\uFF0C\u5F53\u524D\u53D6\u503C\u3010".concat( align, '\u3011\uFF0C\u8BF7\u68C0\u67E5!' ) ); } if (bold != null && typeof bold !== 'boolean') { throw new Error( '\u6837\u5F0F\u5C5E\u6027 bold \u5E94\u4E3A boolean \u7C7B\u578B true\u3001false\uFF0C\u5F53\u524D\u53D6\u503C\u3010'.concat( bold, '\u3011\uFF0C\u8BF7\u68C0\u67E5!' ) ); } if (underline != null && typeof underline !== 'boolean') { throw new Error( '\u6837\u5F0F\u5C5E\u6027 underline \u5E94\u4E3A boolean \u7C7B\u578B true\u3001false\uFF0C\u5F53\u524D\u53D6\u503C\u3010'.concat( underline, '\u3011\uFF0C\u8BF7\u68C0\u67E5!' ) ); } if (oblique != null && typeof oblique !== 'boolean') { throw new Error( '\u6837\u5F0F\u5C5E\u6027 oblique \u5E94\u4E3A boolean \u7C7B\u578B true\u3001false\uFF0C\u5F53\u524D\u53D6\u503C\u3010'.concat( oblique, '\u3011\uFF0C\u8BF7\u68C0\u67E5!' ) ); } if (border != null && typeof border !== 'boolean') { throw new Error( '\u6837\u5F0F\u5C5E\u6027 border \u5E94\u4E3A boolean \u7C7B\u578B true\u3001false\uFF0C\u5F53\u524D\u53D6\u503C\u3010'.concat( border, '\u3011\uFF0C\u8BF7\u68C0\u67E5!' ) ); } var style = (0, _objectSpread4.default)({}, basicStyle); if (align) { style['textAlign'] = align; } if (fontColor) { style['color'] = fontColor; } if (bold) { style['fontWeight'] = 'bold'; } if (underline) { style['textDecoration'] = 'underline'; } if (oblique) { style['fontStyle'] = 'oblique'; } if (backgroundColor) { style['backgroundColor'] = backgroundColor; } if (!border) { style['border'] = 'none'; } return style; } function wrapFormItemTagApis(bizModelNamespace, tagName, formItemName, apis) { function invokeEffectOrReducer(effectOrReducerName) { var payload = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; return { type: ''.concat(bizModelNamespace, '/').concat(effectOrReducerName), payload: { tagName: tagName, payload: { meta: { formItemName: formItemName }, params: payload } } }; } var o = apis(invokeEffectOrReducer); return Object.keys(o).reduce(function(acc, apiName) { acc[apiName] = /*#__PURE__*/ _regenerator.default.mark(function _callee() { var ret, _args = arguments; return _regenerator.default.wrap(function _callee$(_context) { while (1) { switch ((_context.prev = _context.next)) { case 0: ret = o[apiName].apply(o, _args); if (!(ret && ret.type && ret.payload)) { _context.next = 9; break; } _context.next = 4; return sagaEffects.put(ret); case 4: _context.next = 6; return _context.sent; case 6: return _context.abrupt('return', _context.sent); case 9: return _context.abrupt('return', ret); case 10: case 'end': return _context.stop(); } } }, _callee); }); return acc; }, {}); } function genFormItemsInitState(formNamespace, tagName, formProps) { /** * root{ * TAG_ATTRS, * TAG_TYPE * children:[ * { * TAG_API, * TAG_TYPE, * TAG_ATTRS * children: [{ * ... * }] * } * ] * } * @param childs * @returns {Array} */ function parseChidren(childs) { var o = []; _react.default.Children.forEach(childs, function(element) { if (typeof element === 'string') { throw new Error( 'Form\u5B50\u6807\u7B7E\u4E2D\u5B58\u5728\u4E0D\u5408\u7406\u5B57\u7B26\u3010'.concat( element, '\u3011\uFF0C\u53EF\u80FD\u5F71\u54CD\u5E03\u5C40\uFF0C\u8BF7\u68C0\u67E5\uFF01' ) ); } if (!_react.default.isValidElement(element)) { return; } //作为React.fragment 处理 if (element.type === _fragment.Fragment) { var fragmentChildren = parseChidren(element.props.children); fragmentChildren.map(function(child) { o.push(child); }); return; } /** * <Blank/> * <FormTitle/> * <NextLine/> * 不需要解析 */ if ( element.type.TAG_TYPE === _FormConstants.TAG_TYPE_BLANK || element.type.TAG_TYPE === _FormConstants.TAG_TYPE_FORMTITLE || element.type.TAG_TYPE === _FormConstants.TAG_TYPE_NEXTLINE || element.type.TAG_TYPE === 'BUTTONS' ) { return; } // 元素类型匹配检查 if (!element.type.TAG_ATTRS_GENERATOR) { throw new Error( '\u5F53\u524D\u7EC4\u4EF6\u672A\u5B9E\u73B0\u3010TAG_ATTRS_GENERATOR\u3011\u9759\u6001\u63A5\u53E3\uFF0C\u8BF7\u68C0\u67E5!\n'.concat( element.type ) ); } if (!element.type.TAG_TYPE) { throw new Error( '\u5F53\u524D\u7EC4\u4EF6\u672A\u5B9E\u73B0\u3010TAG_TYPE\u3011\u9759\u6001\u63A5\u53E3\uFF0C\u8BF7\u68C0\u67E5!\n'.concat( element.type ) ); } if (!element.type.TAG_API_GENERATOR) { throw new Error( '\u5F53\u524D\u7EC4\u4EF6\u672A\u5B9E\u73B0\u3010TAG_API_GENERATOR\u3011\u9759\u6001\u63A5\u53E3\uFF0C\u8BF7\u68C0\u67E5!\n'.concat( element.type ) ); } // 生成标签属性(带默认值) var tagAttrs = element.type.TAG_ATTRS_GENERATOR(element.props); // 标签 name 忽略大小写问题 tagAttrs.name = tagAttrs.name.toLowerCase(); tagAttrs.forwardedRef = _react.default.createRef(); var inputDomId = (0, _uuid.default)(); tagAttrs.inputDomId = inputDomId; var tagApi = wrapFormItemTagApis(formNamespace, tagName, tagAttrs.name, element.type.TAG_API_GENERATOR); var tagType = element.type.TAG_TYPE; // 组织 formItem 数据 // { // TAG_ATTRS, (标签属性) // TAG_TYPE, (标签类型) // TAG_API, (API对象) // children, (子元素) // } var formItem = { TAG_API: tagApi, TAG_ATTRS: tagAttrs, TAG_TYPE: tagType }; if (element.type.TAG_TYPE === _FormConstants.TAG_TYPE_COLLAPSIBLE_BLOCK) { formItem.children = parseChidren(element.props.children); } o.push(formItem); }); return o; } function parseForm(formProps) { var children = formProps.children, rest = (0, _objectWithoutProperties2.default)(formProps, ['children']); var root = (0, _objectSpread4.default)({}, rest, { children: parseChidren(children) }); return root; } function genChildrenInitState(children) { return children.reduce(function(formItems, item) { var _objectSpread2; var TAG_API = item.TAG_API, TAG_ATTRS = item.TAG_ATTRS, TAG_TYPE = item.TAG_TYPE, children = item.children; var name = TAG_ATTRS.name; if (formItems[name]) { throw new Error( 'Form\u4E2D\u5DF2\u5B58\u5728 name \u4E3A \u3010'.concat( name, '\u3011\u7684\u7EC4\u4EF6\uFF0C\u8BF7\u4FDD\u6301\u7EC4\u4EF6\u547D\u540D\u7684\u552F\u4E00\u6027!' ) ); } var allItems = (0, _objectSpread4.default)( {}, formItems, (0, _defineProperty2.default)( {}, name, (0, _objectSpread4.default)( {}, TAG_ATTRS, ((_objectSpread2 = {}), (0, _defineProperty2.default)(_objectSpread2, _TaglibConstants.TAG_TYPE_KEY_IN_STATE, TAG_TYPE), (0, _defineProperty2.default)(_objectSpread2, '@@api', TAG_API), _objectSpread2) ) ) ); if (children) { var childItems = genChildrenInitState(children); for (var key in childItems) { if (key in allItems) { throw new Error( 'Form\u4E2D\u5DF2\u5B58\u5728 name \u4E3A \u3010'.concat( key, '\u3011\u7684\u7EC4\u4EF6\uFF0C\u8BF7\u4FDD\u6301\u7EC4\u4EF6\u547D\u540D\u7684\u552F\u4E00\u6027!' ) ); } } allItems = (0, _objectSpread4.default)({}, allItems, childItems); } return allItems; }, {}); } var root = parseForm(formProps); return genChildrenInitState(root.children); } function getSelectChildrenCodeInfo(children) { var o = []; _react.default.Children.forEach(children, function(element) { if (!_react.default.isValidElement(element)) { return; } //兼容React.fragment if (element.type === _fragment.Fragment) { var fragmentCodeChildren = getSelectChildrenCodeInfo(element.props.children); fragmentCodeChildren.map(function(child) { o.push(child); }); return; } if (element.type.TAG_TYPE === _FormConstants.TAG_TYPE_COLLAPSIBLE_BLOCK) { var collapsibleCodeChildren = getSelectChildrenCodeInfo(element.props.children); collapsibleCodeChildren.map(function(child) { o.push(child); }); } /** * <Dropdown/> * <MultiSelect/> * <RadioList/> * <CheckboxList/> * */ if ( element.type.TAG_TYPE === _FormConstants.TAG_TYPE_DROPDOWN || element.type.TAG_TYPE === _FormConstants.TAG_TYPE_MULTISELECT || element.type.TAG_TYPE === _FormConstants.TAG_TYPE_RADIO_LIST || element.type.TAG_TYPE === _FormConstants.TAG_TYPE_CHECKBOX_LIST ) { var code = element.props.code; if (code) { o.push(code.toUpperCase()); } } }); return o; } function formatStringInputTypeValue(itemInfo, value, callFunction) { var maxLength = itemInfo.maxLength, name = itemInfo.name, mask = itemInfo.mask; var tagType = itemInfo[_TaglibConstants.TAG_TYPE_KEY_IN_STATE]; var displayName = 'StringInput'; if (tagType === _FormConstants.TAG_TYPE_MULTILINETEXT) { displayName = 'MultiLineText'; } else if (tagType === _FormConstants.TAG_TYPE_LABEL) { displayName = 'Label'; } else if (tagType === _FormConstants.TAG_TYPE_PASSWORD) { displayName = 'Password'; } else if (tagType === _FormConstants.TAG_TYPE_LOV_INPUT) { displayName = 'LovInput'; } // 入参合法性校验 if (typeof value !== 'string' && typeof value !== 'number' && typeof value !== 'boolean' && value !== null) { throw new Error( 'Form-->\u3010' .concat(callFunction, '\u3011\u65B9\u6CD5\uFF0C\u6807\u7B7E\u7C7B\u578B\u3010') .concat(displayName, '\u3011\uFF0Cname\u503C\uFF1A\u3010') .concat( name, '\u3011\uFF0C\n \u5165\u53C2 value \u53EA\u63A5\u53D7\u3010string\u3001boolean, number\u3001null\u3011\u7C7B\u578B\u503C\uFF0C\u5B9E\u9645\u4F20\u5165\u3010\u503C\uFF1A' ) .concat(value, '\uFF0C\u7C7B\u578B\uFF1A') .concat((0, _typeof2.default)(value), '\u3011\uFF01\n\u8BF7\u68C0\u67E5!') ); } // 类型初步转换 var newValue = value; if (value === null) { newValue = ''; } else if (typeof value === 'number' || typeof value === 'boolean') { newValue = String(value); } if (tagType === _FormConstants.TAG_TYPE_STRING_INPUT && mask) { // format if (mask === 'card') { newValue = _CardMask.default.format(newValue); } else if (mask === 'yzbm') { newValue = _YzbmMask.default.format(newValue); } return { value: newValue }; } else { // maxLength 控制 newValue = (0, _util2.filterValueByMaxLength)(newValue, maxLength); return { value: newValue }; } } function formatDateInputTypeValue(itemInfo, value, callFunction) { var sourceMask = itemInfo.sourceMask, mask = itemInfo.mask, name = itemInfo.name; // 入参合法性校验 if (typeof value !== 'string' && typeof value !== 'number' && !(value instanceof Date) && value !== null) { throw new Error( 'Form-->\u3010' .concat( callFunction, '\u3011\u65B9\u6CD5\uFF0C\u6807\u7B7E\u7C7B\u578B\u3010DateInput\u3011\uFF0Cname\u503C\uFF1A\u3010' ) .concat( name, '\u3011\uFF0C\n\u5F02\u5E38\u4FE1\u606F\uFF1A\u5165\u53C2 value \u53EA\u63A5\u53D7\u3010string\u3001number, Date\u3001null\u3011\u7C7B\u578B\u503C\uFF0C\u5B9E\u9645\u4F20\u5165\u3010\u503C\uFF1A' ) .concat(value, '\uFF0C\u7C7B\u578B\uFF1A') .concat((0, _typeof2.default)(value), '\u3011\uFF01\n\u8BF7\u68C0\u67E5!') ); } // 类型初步转换 var newValue = value; if (value === '') { newValue = null; } else if (typeof value === 'string') { if (!sourceMask) { throw new Error( 'Form-->\u3010' .concat( callFunction, '\u3011\u65B9\u6CD5\uFF0C\u6807\u7B7E\u7C7B\u578B\u3010DateInput\u3011\uFF0Cname\u503C\uFF1A\u3010' ) .concat(name, '\u3011\uFF0Cvalue\u503C\u3010') .concat( value, '\u3011\uFF0C\n\u5F02\u5E38\u4FE1\u606F\uFF1AsourceMask\u4E0D\u80FD\u4E3A\u7A7A\uFF01\u5F53\u524D\u8BBE\u7F6Evalue\u7C7B\u578B\u4E3Astring\u7C7B\u578B\uFF0CsourceMask\u4E0D\u80FD\u4E3A\u7A7A\uFF01\n\u8BF7\u68C0\u67E5!' ) ); } var result = _util.DateUtil.checkDate(value, sourceMask); if (!result) { throw new Error( 'Form-->\u3010' .concat( callFunction, '\u3011\u65B9\u6CD5\uFF0C\u6807\u7B7E\u7C7B\u578B\u3010DateInput\u3011\uFF0Cname\u503C\uFF1A\u3010' ) .concat( name, '\u3011\uFF0C\n\u5F02\u5E38\u4FE1\u606F\uFF1AsourceMask\u4E0Evalue\u4E0D\u5339\u914D\uFF0C\u65E0\u6CD5\u8F6C\u6362\u4E3ADate\u7C7B\u578B\uFF0CsourceMask\u4E3A\u3010' ) .concat(sourceMask, '\u3011,value\u503C\u4E3A\u3010') .concat(value, '\u3011\uFF01\n\u8BF7\u68C0\u67E5!') ); } newValue = (0, _date.normalizeDate)(value, mask, sourceMask); } else if (typeof value === 'number') { if (!sourceMask) { throw new Error( 'Form-->\u3010' .concat( callFunction, '\u3011\u65B9\u6CD5\uFF0C\u6807\u7B7E\u7C7B\u578B\u3010NumberInput\u3011\uFF0Cname\u503C\uFF1A\u3010' ) .concat(name, '\u3011\uFF0Cvalue\u503C\u3010') .concat( value, '\u3011\uFF0C\n\u5F02\u5E38\u4FE1\u606F\uFF1AsourceMask\u4E0D\u80FD\u4E3A\u7A7A\uFF01\u5F53\u524D\u8BBE\u7F6Evalue\u7C7B\u578B\u4E3Anumber\u7C7B\u578B\uFF0CsourceMask\u4E0D\u80FD\u4E3A\u7A7A\uFF01\n\u8BF7\u68C0\u67E5!' ) ); } var _result = _util.DateUtil.checkDate(String(value), sourceMask); if (!_result) { throw new Error( 'Form-->\u3010' .concat( callFunction, '\u3011\u65B9\u6CD5\uFF0C\u6807\u7B7E\u7C7B\u578B\u3010NumberInput\u3011\uFF0Cname\u503C\uFF1A\u3010' ) .concat(name, '\u3011\uFF0Cvalue\u503C\u3010') .concat( value, '\u3011\uFF0C\n\u5F02\u5E38\u4FE1\u606F\uFF1AsourceMask\u4E0Evalue\u4E0D\u5339\u914D\uFF0C\u65E0\u6CD5\u8F6C\u6362\u4E3ADate\u7C7B\u578B\uFF0CsourceMask\u4E3A\u3010' ) .concat(sourceMask, '\u3011,value\u503C\u4E3A\u3010') .concat(value, '\u3011\uFF01\n\u8BF7\u68C0\u67E5!') ); } newValue = (0, _date.normalizeDate)(value, mask, sourceMask); } return { value: newValue }; } function formatRadioListInputTypeValue(itemInfo, value, callFunction) { var codeMap = itemInfo.codeMap, name = itemInfo.name; // 入参合法性校验 if (typeof value !== 'string' && typeof value !== 'number' && value !== null) { throw new Error( 'Form-->\u3010' .concat( callFunction, '\u3011\u65B9\u6CD5\uFF0C\u6807\u7B7E\u7C7B\u578B\u3010RadioList\u3011\uFF0Cname\u503C\uFF1A\u3010' ) .concat(name, '\u3011\uFF0Cvalue\u503C\u3010') .concat( value, '\u3011\uFF0C\n\u5F02\u5E38\u4FE1\u606F\uFF1Avalue\u7C7B\u578B\uFF0C\u53EF\u63A5\u53D7\u7C7B\u578B:\u3010string\uFF0Cnumber,null\u3011\uFF0C\u5B9E\u9645\u503C\u3010' ) .concat((0, _typeof2.default)(value), '\u3011\uFF01\n\u8BF7\u68C0\u67E5!') ); } // 类型初步转换 var newValue = value; if (value === null) { newValue = ''; } else if (typeof value === 'number') { newValue = String(value); } // 判定 value 是否在 codeMap 范围内,不在value置为空 var valueValid = codeMap.some(function(code) { return newValue === '' || newValue === code.value; }); if (!valueValid) { throw new Error( 'Form-->\u3010' .concat( callFunction, '\u3011\u65B9\u6CD5\uFF0C\u6807\u7B7E\u7C7B\u578B\u3010RadioList\u3011\uFF0Cname\u503C\uFF1A\u3010' ) .concat(name, '\u3011\uFF0Cvalue\u503C\u3010') .concat(value, '\u3011\uFF0C\n\u5F02\u5E38\u4FE1\u606F\uFF1Avalue\u6570\u636E\u3010') .concat(value, '\u3011\u4E0D\u5728code\u6570\u636E\u6E90\u4E2D\uFF01\n\u8BF7\u68C0\u67E5!') ); } return { value: newValue, invalidCode: valueValid ? null : newValue }; } function formatDropdownInputTypeValue(itemInfo, value, callFunction, formItems) { var codeMap = itemInfo.codeMap, formItemName = itemInfo.name; // 入参合法性校验 if (typeof value !== 'string' && typeof value !== 'number' && value !== null) { throw new Error( 'Form-->\u3010' .concat( callFunction, '\u3011\u65B9\u6CD5\uFF0C\u6807\u7B7E\u7C7B\u578B\u3010Dropdown\u3011\uFF0Cvalue\u503C\u3010' ) .concat(value, '\u3011\uFF0Cname\u503C\uFF1A\u3010') .concat( formItemName, '\u3011\uFF0C\n\u5F02\u5E38\u4FE1\u606F\uFF1Avalue\u7C7B\u578B\uFF0C\u53EF\u63A5\u53D7\u7C7B\u578B:\u3010string\uFF0Cnumber,null\u3011\uFF0C\u5B9E\u9645\u503C\u3010' ) .concat( typeof payload === 'undefined' ? 'undefined' : (0, _typeof2.default)(payload), '\u3011\uFF01\n\u8BF7\u68C0\u67E5!' ) ); } // 类型初步转换 var newValue = value; if (value === null) { newValue = ''; } else if (typeof value === 'number') { newValue = String(value); } // 判定 value 是否在 codeMap 范围内 var valueValid = codeMap.some(function(code) { return newValue === '' || newValue === code.value; }); var itemNames = Object.keys(formItems); var cascadeSubComponentResultArray = []; for (var i = 0; i < itemNames.length; i++) { var itemName = itemNames[i]; var itemObj = formItems[itemName]; var tagType = itemObj[_TaglibConstants.TAG_TYPE_KEY_IN_STATE]; if (tagType === _FormConstants.TAG_TYPE_DROPDOWN && itemObj['cascadeDependOnTagName'] === formItemName) { var cascadeData = itemObj['cascadeData']; var _codeMap = cascadeData[newValue] ? cascadeData[newValue] : []; cascadeSubComponentResultArray.push({ tagName: itemName, codeMap: _codeMap, value: '' }); } } return { value: newValue, invalidCode: valueValid ? null : newValue, cascadeSubComponentResultArray: cascadeSubComponentResultArray }; } function formatMultiSelectInputTypeValue(itemInfo, value, callFunction) { var codeMap = itemInfo.codeMap, name = itemInfo.name; var tagType = itemInfo[_TaglibConstants.TAG_TYPE_KEY_IN_STATE]; var displayName = ''; if (tagType === _FormConstants.TAG_TYPE_MULTISELECT) { displayName = 'MultiSelect'; } else if (tagType === _FormConstants.TAG_TYPE_CHECKBOX_LIST) { displayName = 'CheckboxList'; } // 入参合法性校验 if (typeof value !== 'string' && typeof value !== 'number' && value !== null) { throw new Error( 'Form-->\u3010' .concat(callFunction, '\u3011\u65B9\u6CD5\uFF0C\u6807\u7B7E\u7C7B\u578B\u3010') .concat(displayName, '\u3011\uFF0Cname\u503C\uFF1A\u3010') .concat( name, '\u3011\uFF0C\n\u5F02\u5E38\u4FE1\u606F\uFF1Avalue\u7C7B\u578B\uFF0C\u53EF\u63A5\u53D7\u7C7B\u578B:\u3010string\uFF0Cnumber,null\u3011\uFF0C\u5B9E\u9645\u4F20\u5165\u503C\uFF1A\u3010' ) .concat(value, '\u3011\uFF0C\u7C7B\u578B\uFF1A\u3010') .concat((0, _typeof2.default)(value), '\u3011\uFF01\n\u8BF7\u68C0\u67E5!') ); } // 类型初步转换 var newValue = value; if (value === null) { newValue = ''; } else if (typeof value === 'number') { newValue = String(value); } if (tagType === _FormConstants.TAG_TYPE_MULTISELECT) { return { value: newValue }; } // 判定 value 是否在 codeMap 范围内 var valueArray = newValue.split(','); var _loop = function _loop(i) { var curValue = valueArray[i]; var valueValid = true; if (codeMap.length) { valueValid = codeMap.some(function(code) { return curValue === '' || curValue === code.value; }); } if (!valueValid) { throw new Error( 'Form-->\u3010' .concat(callFunction, '\u3011\u65B9\u6CD5\uFF0C\u6807\u7B7E\u7C7B\u578B\u3010') .concat(displayName, '\u3011\uFF0Cname\u503C\uFF1A\u3010') .concat(name, '\u3011\uFF0C\n\u5F02\u5E38\u4FE1\u606F\uFF1Avalue\u503C\uFF1A\u3010') .concat( value, '\u3011,value\u6570\u636E\u4E0D\u5728code\u6570\u636E\u6E90\u4E2D\uFF01\n\u8BF7\u68C0\u67E5!' ) ); } }; for (var i = 0; i < valueArray.length; i++) { _loop(i); } return { value: newValue }; } function formatCheckboxInputTypeValue(itemInfo, value, callFunction) { var name = itemInfo.name; // 入参合法性校验 if (typeof value !== 'string' && typeof value !== 'number' && value !== null && typeof value !== 'boolean') { throw new Error( 'Form-->\u3010' .concat( callFunction, '\u3011\u65B9\u6CD5\uFF0C\u6807\u7B7E\u7C7B\u578B\u3010Checkbox\u3011\uFF0Cname\u503C\uFF1A\u3010' ) .concat( name, '\u3011\uFF0C\n\u5F02\u5E38\u4FE1\u606F\uFF1Avalue\u7C7B\u578B\uFF0C\u53EF\u63A5\u53D7\u7C7B\u578B:\u3010string\uFF0Cboolean,number,null\u3011\uFF0Cvalue\u503C\uFF1A\u3010' ) .concat(value, '\u3011,\u5B9E\u9645\u503C\u3010') .concat((0, _typeof2.default)(value), '\u3011\uFF01\n\u8BF7\u68C0\u67E5!') ); } // 类型初步转换 var newValue = value; if (value === null || value === '') { newValue = '0'; } else if (typeof value === 'boolean') { newValue = value ? '1' : '0'; } else if (typeof value === 'string') { if (value !== '1' && value !== '0') { throw new Error( 'Form-->\u3010' .concat( callFunction, '\u3011\u65B9\u6CD5\uFF0C\u6807\u7B7E\u7C7B\u578B\u3010Checkbox\u3011\uFF0Cname\u503C\uFF1A\u3010' ) .concat( name, '\u3011\uFF0C\n\u5F02\u5E38\u4FE1\u606F\uFF1A\u671F\u671B\u7684value\u503C\u4E3A\u3010"0"\u6216"1"\u3011\uFF01\u5F53\u524D\u503C\u4E3A\u3010' ) .concat(value, '\u3011') ); } newValue = value; } else if (typeof value === 'number') { if (value !== 1 && value !== 0) { throw new Error( 'Form-->\u3010' .concat( callFunction, '\u3011\u65B9\u6CD5\uFF0C\u6807\u7B7E\u7C7B\u578B\u3010Checkbox\u3011\uFF0Cname\u503C\uFF1A\u3010' ) .concat( name, '\u3011\uFF0C\n\u5F02\u5E38\u4FE1\u606F\uFF1A\u671F\u671B\u7684value\u503C\u4E3A\u3010"0"\u6216"1"\u3011\uFF01\u5F53\u524D\u503C\u4E3A\u3010' ) .concat(value, '\u3011') ); } newValue = String(value); } return { value: newValue }; } function formatCascadeDropdownInputTypeValue(itemInfo, value, callFunction) { var cascadeData = itemInfo.cascadeData, name = itemInfo.name; // 入参合法性校验 if (typeof value !== 'string' && typeof value !== 'number' && value !== null) { throw new Error( 'Form-->\u3010' .concat( callFunction, '\u3011\u65B9\u6CD5\uFF0C\u6807\u7B7E\u7C7B\u578B\u3010CascadeDropdown\u3011\uFF0Cname\u503C\uFF1A\u3010' ) .concat(name, '\u3011\uFF0Cvalue\u503C\uFF1A\u3010') .concat( value, '\u3011\n\u5F02\u5E38\u4FE1\u606F\uFF1Avalue\u7C7B\u578B\uFF0C\u53EF\u63A5\u53D7\u7C7B\u578B:\u3010string\uFF0Cnumber,null\u3011\uFF0C\u5B9E\u9645\u503C\u3010' ) .concat( typeof payload === 'undefined' ? 'undefined' : (0, _typeof2.default)(payload), '\u3011\uFF01\n\u8BF7\u68C0\u67E5!' ) ); } // 类型初步转换 var newValue = value; if (value === null) { newValue = ''; } else if (typeof value === 'number') { newValue = String(value); } /*填值*/ var isExistInCascadeData = function isExistInCascadeData(currentValue, cascadeDataSource, newValueArray) { var index = -1; for (var i = 0; i < cascadeDataSource.length; i++) { var tempObj = cascadeDataSource[i]; if (tempObj.value == currentValue) { index = i; } } if (index == -1) { throw new Error( 'Form-->\u3010' .concat( callFunction, '\u3011\u65B9\u6CD5\uFF0C\u6807\u7B7E\u7C7B\u578B\u3010CascadeDropdown\u3011\uFF0Cname\u503C\uFF1A\u3010' ) .concat(name, '\u3011\uFF0Cvalue\u503C\uFF1A\u3010') .concat(value, '\u3011\n\u5F02\u5E38\u4FE1\u606F\uFF1Avalue\u503C\u4E3A\u3010') .concat(newValue, '\u3011,\u5176\u4E2D\u3010') .concat( currentValue, '\u3011\u5728cascadeData\u6570\u636E\u6E90\u4E2D\u4E0D\u5B58\u5728\uFF01\n\u8BF7\u68C0\u67E5!' ) ); } if (newValueArray.length == 0) { return true; } var newCasecadeData = cascadeDataSource[index].children; var newCurrentValue = newValueArray[0]; if (!newCasecadeData || newCasecadeData.length == 0) { throw new Error( 'Form-->\u3010' .concat( callFunction, '\u3011\u65B9\u6CD5\uFF0C\u6807\u7B7E\u7C7B\u578B\u3010CascadeDropdown\u3011\uFF0Cname\u503C\uFF1A\u3010' ) .concat(name, '\u3011\uFF0Cvalue\u503C\uFF1A\u3010') .concat(value, '\u3011,\n\u5F02\u5E38\u4FE1\u606F\uFF1Avalue\u503C\u4E3A\u3010') .concat(newValue, '\u3011,\u5176\u4E2D\u3010') .concat( newCurrentValue, '\u3011\u5728cascadeData\u6570\u636E\u6E90\u4E2D\u4E0D\u5B58\u5728\uFF01\n\u8BF7\u68C0\u67E5!' ) ); } var resultArray = newValueArray.slice(1); return isExistInCascadeData(newCurrentValue, newCasecadeData, resultArray); }; var isExistResult = true; var valueArray = newValue.split(','); if (valueArray.length > 0 && newValue != '') { var resultArray = valueArray.slice(1); isExistResult = isExistInCascadeData(valueArray[0], cascadeData, resultArray); } if (!isExistResult) { return; } return { value: newValue }; } function getLovClearNameArray(itemInfo) { var fillMapping = itemInfo.fillMapping, fieldsClearOnChange = itemInfo.fieldsClearOnChange, formItemName = itemInfo.name; var clearNameArray = []; // 根据 fillMapping 回填数据 首先回填LovInput if (fillMapping) { var fillMappingArray = fillMapping.split(','); for (var i = 0; i < fillMappingArray.length; i++) { var tempStr = fillMappingArray[i]; var dstName = tempStr.split(':')[0].trim(); if (dstName === formItemName) { continue; } clearNameArray.push(dstName); } } if (fieldsClearOnChange) { var fieldsClearOnChangeArray = fieldsClearOnChange.split(','); for (var _i = 0; _i < fieldsClearOnChangeArray.length; _i++) { var clearName = fieldsClearOnChangeArray[_i]; clearNameArray.push(clearName); } } return clearNameArray; } function getLovClearMappingValuesArray(formItems, formItemName) { var clearNameArray = getLovClearNameArray(formItems[formItemName]); var resultArray = []; if (!clearNameArray.length) { return resultArray; } // 清空数据 for (var i = 0; i < clearNameArray.length; i++) { var dstName = clearNameArray[i]; var dstFormItemTagType = formItems[dstName][_TaglibConstants.TAG_TYPE_KEY_IN_STATE]; var itemInfo = formItems[dstName]; var valueResult = null; if ( dstFormItemTagType === _FormConstants.TAG_TYPE_STRING_INPUT || dstFormItemTagType === _FormConstants.TAG_TYPE_PASSWORD || dstFormItemTagType === _FormConstants.TAG_TYPE_MULTILINETEXT || dstFormItemTagType === _FormConstants.TAG_TYPE_LABEL ) { valueResult = formatStringInputTypeValue(itemInfo, null, 'setValue'); } else if (dstFormItemTagType === _FormConstants.TAG_TYPE_NUMBER_INPUT) { var nullable = itemInfo.nullable, zeroDisplayAs0 = itemInfo.zeroDisplayAs0, mask = itemInfo.mask, maxLength = itemInfo.maxLength; valueResult = { value: (0, _dataNormalizeHelper.clearNumberData)( nullable, zeroDisplayAs0, mask, maxLength, 'LovInput.clearLovMapping => NumberInput.clear()' ) }; } else if (dstFormItemTagType === _FormConstants.TAG_TYPE_DATE_INPUT) { valueResult = formatDateInputTypeValue(itemInfo, null, 'setValue'); } else if (dstFormItemTagType === _FormConstants.TAG_TYPE_DROPDOWN) { valueResult = formatDropdownInputTypeValue(itemInfo, null, 'setValue', formItems); } else if (dstFormItemTagType === _FormConstants.TAG_TYPE_RADIO_LIST) { valueResult = formatRadioListInputTypeValue(itemInfo, null, 'setValue'); } else if ( dstFormItemTagType === _FormConstants.TAG_TYPE_MULTISELECT || dstFormItemTagType === _FormConstants.TAG_TYPE_CHECKBOX_LIST ) { valueResult = formatMultiSelectInputTypeValue(itemInfo, null, 'setValue'); } else if (dstFormItemTagType === _FormConstants.TAG_TYPE_CASCADEDROPDOWN) { valueResult = formatCascadeDropdownInputTypeValue(itemInfo, null, 'setValue'); } else if (dstFormItemTagType === _FormConstants.TAG_TYPE_CHECKBOX) { var _valueResult = formatCheckboxInputTypeValue(itemInfo, null, 'setValue'); } else { throw new Error( 'name\u4E3A' .concat(dstName, '\u7684\u6807\u7B7E\u7C7B\u578B\u672A\u8BC6\u522B:') .concat(formItems[dstName][_TaglibConstants.TAG_TYPE_KEY_IN_STATE]) ); } resultArray.push({ meta: { formItemName: dstName }, params: (0, _objectSpread4.default)({}, valueResult) }); } return resultArray; } var _default = { formatStringInputTypeValue: formatStringInputTypeValue, formatDateInputTypeValue: formatDateInputTypeValue, formatRadioListInputTypeValue: formatRadioListInputTypeValue, formatDropdownInputTypeValue: formatDropdownInputTypeValue, formatMultiSelectInputTypeValue: formatMultiSelectInputTypeValue, formatCheckboxInputTypeValue: formatCheckboxInputTypeValue, formatCascadeDropdownInputTypeValue: formatCascadeDropdownInputTypeValue, getLovClearMappingValuesArray: getLovClearMappingValuesArray }; exports.default = _default; //@ sourceMappingURL=utils.js.map