UNPKG

@open-data-v/base

Version:

OpenDataV 公共基础包

1 lines 4.19 kB
{"version":3,"file":"utils.umd.cjs","sources":["../src/utils.ts"],"sourcesContent":["import { isFunction, isUndefined } from 'lodash-es'\n\nimport type { MetaContainerItem, MetaForm } from './type'\n\nexport const uuid = (hasHyphen?: string) => {\n return (\n hasHyphen ? 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx' : 'xxxxxxxxxxxx4xxxyxxxxxxxxxxxxxxx'\n ).replace(/[xy]/g, function (c) {\n const r = (Math.random() * 16) | 0\n const v = c == 'x' ? r : (r & 0x3) | 0x8\n return v.toString(16)\n })\n}\n\nexport const getObjProp = (\n obj: Array<MetaContainerItem> | Array<MetaForm>,\n propKeys: Array<string>,\n start = 0\n): MetaForm | MetaContainerItem => {\n // @ts-ignore\n const chidObj = obj.find((item) => item.prop === propKeys[start])\n if (chidObj && chidObj.children && start < propKeys.length) {\n return getObjProp(chidObj.children, propKeys, start + 1)\n }\n return chidObj\n}\n\n/**\n * 根据表单配置,生成初始化表单值\n * @param formItems 表单配置项\n * @param modelValue 表单初始值\n */\nexport const buildModeValue = (\n formItems: Array<MetaForm> | Array<MetaContainerItem>,\n modelValue: Record<string, any>\n) => {\n formItems.forEach((el) => {\n if (el.children) {\n const childModelValue = {}\n buildModeValue(el.children, childModelValue)\n modelValue[el.prop] = childModelValue\n } else {\n modelValue[el.prop] = el.props?.defaultValue\n }\n })\n}\n\n/**\n * 根据对象属性路径更新对象\n * @param modelValue 对象\n * @param keys 属性路径\n * @param value 属性值\n */\nexport const updateModeValue = (\n modelValue: Record<string, any>,\n keys: Array<string>,\n value: any\n) => {\n keys.reduce((acc, cur, i) => {\n return (acc[cur] = i === keys.length - 1 ? value : acc[cur] || {})\n // 根据递归创建空对象,直到是最后一个属性并赋值\n }, modelValue)\n}\n\nexport const updateFormItemsValue = (\n formItems: Array<MetaForm> | Array<MetaContainerItem>,\n modelValue: Record<string, any>\n) => {\n formItems.forEach((item) => {\n if (item.children) {\n if (isUndefined(modelValue[item.prop])) {\n modelValue[item.prop] = {}\n }\n return updateFormItemsValue(item.children, modelValue[item.prop])\n }\n if (!isUndefined(modelValue[item.prop]) && (item.props || item.componentOptions)) {\n return ((item.props || item.componentOptions).defaultValue = modelValue[item.prop])\n } else {\n modelValue[item.prop] = (item.props || item.componentOptions).defaultValue\n }\n })\n}\n\nexport const isClass = (varValue: any) => {\n return isFunction(varValue) && !isUndefined(varValue.prototype)\n}\n"],"names":["uuid","hasHyphen","c","r","getObjProp","obj","propKeys","start","chidObj","item","buildModeValue","formItems","modelValue","el","childModelValue","_a","updateModeValue","keys","value","acc","cur","i","updateFormItemsValue","isUndefined","isClass","varValue","isFunction"],"mappings":"6GAIaA,EAAQC,IAEjBA,EAAY,uCAAyC,oCACrD,QAAQ,QAAS,SAAUC,EAAG,CAC9B,MAAMC,EAAK,KAAK,OAAO,EAAI,GAAM,EAE1B,OADGD,GAAK,IAAMC,EAAKA,EAAI,EAAO,GAC5B,SAAS,EAAE,CAAA,CACrB,EAGUC,EAAa,CACxBC,EACAC,EACAC,EAAQ,IACyB,CAE3B,MAAAC,EAAUH,EAAI,KAAMI,GAASA,EAAK,OAASH,EAASC,CAAK,CAAC,EAChE,OAAIC,GAAWA,EAAQ,UAAYD,EAAQD,EAAS,OAC3CF,EAAWI,EAAQ,SAAUF,EAAUC,EAAQ,CAAC,EAElDC,CACT,EAOaE,EAAiB,CAC5BC,EACAC,IACG,CACOD,EAAA,QAASE,GAAO,OACxB,GAAIA,EAAG,SAAU,CACf,MAAMC,EAAkB,CAAC,EACVJ,EAAAG,EAAG,SAAUC,CAAe,EAChCF,EAAAC,EAAG,IAAI,EAAIC,CAAA,MAEtBF,EAAWC,EAAG,IAAI,GAAIE,EAAAF,EAAG,QAAH,YAAAE,EAAU,YAClC,CACD,CACH,EAQaC,EAAkB,CAC7BJ,EACAK,EACAC,IACG,CACHD,EAAK,OAAO,CAACE,EAAKC,EAAKC,IACbF,EAAIC,CAAG,EAAIC,IAAMJ,EAAK,OAAS,EAAIC,EAAQC,EAAIC,CAAG,GAAK,CAAC,EAE/DR,CAAU,CACf,EAEaU,EAAuB,CAClCX,EACAC,IACG,CACOD,EAAA,QAASF,GAAS,CAC1B,GAAIA,EAAK,SACP,OAAIc,EAAY,YAAAX,EAAWH,EAAK,IAAI,CAAC,IACxBG,EAAAH,EAAK,IAAI,EAAI,CAAC,GAEpBa,EAAqBb,EAAK,SAAUG,EAAWH,EAAK,IAAI,CAAC,EAE9D,GAAA,CAACc,EAAY,YAAAX,EAAWH,EAAK,IAAI,CAAC,IAAMA,EAAK,OAASA,EAAK,kBAC7D,OAASA,EAAK,OAASA,EAAK,kBAAkB,aAAeG,EAAWH,EAAK,IAAI,EAEjFG,EAAWH,EAAK,IAAI,GAAKA,EAAK,OAASA,EAAK,kBAAkB,YAChE,CACD,CACH,EAEae,EAAWC,GACfC,EAAAA,WAAWD,CAAQ,GAAK,CAACF,EAAAA,YAAYE,EAAS,SAAS"}