UNPKG

@aliretail/react-materials-components

Version:
75 lines (52 loc) 1.63 kB
"use strict"; 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; } }