UNPKG

tav-ui

Version:
1 lines 3.85 kB
{"version":3,"file":"use-props2.mjs","sources":["../../../../../../../../packages/components/permission/src/hooks/use-props.ts"],"sourcesContent":["import { type ComputedRef, type Ref, computed } from 'vue'\nimport { useGlobalConfig } from '@tav-ui/hooks/global/useGlobalConfig'\nimport { type GlobalConfigFileProps } from '../global-config-types'\n\nfunction useGlobalConfigProps() {\n const globalConfigAppId = (useGlobalConfig('appId') as Ref<string>).value\n const globalConfigFile = (useGlobalConfig('components') as Ref<Record<string, any>>).value\n\n return computed(\n () =>\n ({\n appId: globalConfigAppId || '',\n ...(globalConfigFile || {}),\n } as unknown as GlobalConfigFileProps & {\n appId: string | number\n })\n )\n}\n\n/**\n * 方便组件在单独使用时合并 globalconfigprops\n * @param globalConfigProps\n * @param props\n * @param componentNames\n * @returns\n */\nexport function useMergedProps<K extends Record<string, any>>(\n props: K,\n componentName: keyof GlobalConfigFileProps,\n apiParamsDefault?: any\n) {\n const globalConfigProps = useGlobalConfigProps() as ComputedRef<\n GlobalConfigFileProps & { appId: string | number }\n >\n return computed(() => {\n const result = {} as any // props 不允许赋值所以这里新建变量存储\n const globalConfigComponentProps = globalConfigProps.value[componentName]\n const globalConfigAppId = globalConfigProps.value.appId\n\n // props 属性为 undefined 的话从 globalconfig 中取对应的值(目前只是 api 与 appId)\n Object.keys(props).forEach((key) => {\n const _p =\n globalConfigComponentProps && (globalConfigComponentProps as any)[key]\n ? (globalConfigComponentProps as any)[key]\n : undefined\n\n result[key] = props[key] ?? _p\n })\n\n // apiParams 有一些默认值需要合并\n apiParamsDefault &&\n Object.keys(apiParamsDefault).forEach((key) => {\n if (result['apiParams']) {\n result['apiParams'][key] = result['apiParams'][key] ?? apiParamsDefault[key]\n } else {\n result['apiParams'] = {}\n }\n })\n\n return {\n ...props,\n ...result,\n apiParams: {\n ...props.apiParams,\n appId: props.apiParams?.appId ?? globalConfigAppId,\n },\n } as unknown as typeof globalConfigComponentProps & K\n })\n}\n"],"names":[],"mappings":";;;AAEA,SAAS,oBAAoB,GAAG;AAChC,EAAE,MAAM,iBAAiB,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC;AAC3D,EAAE,MAAM,gBAAgB,GAAG,eAAe,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC;AAC/D,EAAE,OAAO,QAAQ,CAAC,OAAO;AACzB,IAAI,KAAK,EAAE,iBAAiB,IAAI,EAAE;AAClC,IAAI,GAAG,gBAAgB,IAAI,EAAE;AAC7B,GAAG,CAAC,CAAC,CAAC;AACN,CAAC;AACM,SAAS,cAAc,CAAC,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE;AACvE,EAAE,MAAM,iBAAiB,GAAG,oBAAoB,EAAE,CAAC;AACnD,EAAE,OAAO,QAAQ,CAAC,MAAM;AACxB,IAAI,MAAM,MAAM,GAAG,EAAE,CAAC;AACtB,IAAI,MAAM,0BAA0B,GAAG,iBAAiB,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;AAC9E,IAAI,MAAM,iBAAiB,GAAG,iBAAiB,CAAC,KAAK,CAAC,KAAK,CAAC;AAC5D,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,KAAK;AACxC,MAAM,MAAM,EAAE,GAAG,0BAA0B,IAAI,0BAA0B,CAAC,GAAG,CAAC,GAAG,0BAA0B,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC;AAC1H,MAAM,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;AACrC,KAAK,CAAC,CAAC;AACP,IAAI,gBAAgB,IAAI,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,KAAK;AACvE,MAAM,IAAI,MAAM,CAAC,WAAW,CAAC,EAAE;AAC/B,QAAQ,MAAM,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,IAAI,gBAAgB,CAAC,GAAG,CAAC,CAAC;AACrF,OAAO,MAAM;AACb,QAAQ,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC;AACjC,OAAO;AACP,KAAK,CAAC,CAAC;AACP,IAAI,OAAO;AACX,MAAM,GAAG,KAAK;AACd,MAAM,GAAG,MAAM;AACf,MAAM,SAAS,EAAE;AACjB,QAAQ,GAAG,KAAK,CAAC,SAAS;AAC1B,QAAQ,KAAK,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,IAAI,iBAAiB;AAC1D,OAAO;AACP,KAAK,CAAC;AACN,GAAG,CAAC,CAAC;AACL;;;;"}