@aliretail/react-materials-components
Version:
75 lines (52 loc) • 1.63 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports.uniqueGroupKey = exports.uniqueConditionKey = exports.encodeValue = exports.decodeValue = void 0;
var _uniqueId = _interopRequireDefault(require("lodash/uniqueId"));
/** 返回一个独一无二字符串,用作条件的key */
var uniqueConditionKey = function uniqueConditionKey() {
return (0, _uniqueId["default"])('condition');
};
/** 返回一个独一无二字符串,用作关系组的key */
exports.uniqueConditionKey = uniqueConditionKey;
var uniqueGroupKey = function uniqueGroupKey() {
return (0, _uniqueId["default"])('group');
};
/** 从组件值 => 后端想要的值 */
exports.uniqueGroupKey = uniqueGroupKey;
var encodeValue = function encodeValue(v) {
var value = v;
if (typeof v === 'object') {
// 数组和对象
value = JSON.stringify(v);
} else if (typeof v === 'number') {
// 数字
value = v + '';
}
return value;
};
/** 从后端想要的值 => 组件值 */
exports.encodeValue = encodeValue;
var decodeValue = function decodeValue(v) {
if (validateJSONString(v)) {
return JSON.parse(v);
}
return v;
};
/** 校验一个字符串是不是json 字符串 */
exports.decodeValue = decodeValue;
function validateJSONString(str) {
// number、undefined
if (!(typeof str === 'string')) {
return false;
} // json string、normal string
try {
var result = JSON.parse(str);
if (typeof result === 'object') {
return true;
}
return false;
} catch (err) {
return false;
}
}