dareway-rui
Version:
1,063 lines (903 loc) • 40.4 kB
JavaScript
'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