tav-ui
Version:
1 lines • 15.9 kB
Source Map (JSON)
{"version":3,"file":"use-handle-data-source2.mjs","sources":["../../../../../../../../../packages/components/file/src/FileCard/hooks/use-handle-data-source.ts"],"sourcesContent":["import { type ComputedRef, type SetupContext, computed, shallowRef, unref } from 'vue'\nimport { tavI18n } from '@tav-ui/locales'\nimport { type ApiQueryFileByActualIds, type FileCardEmits, type FileCardProps } from '../types'\nimport {\n type FileActionUploadApiResponseRecord,\n type FileActualIdsObjectArray,\n type GlobalConfigFileProps,\n} from '../../typings'\nimport {\n type UseRequestHandleApiDefaultOptions,\n type UseRequestReturn,\n type VersionCaches,\n} from '../../hooks'\nimport {\n type ReturnOf,\n validateDataSourceIsObjectArray,\n validateDataSourceIsStringArray,\n} from '../../utils'\n\nexport function useHandleDataSource(options: {\n mergedProps: ComputedRef<GlobalConfigFileProps & FileCardProps>\n emits: SetupContext<FileCardEmits>['emit']\n VersionCachesController: VersionCaches\n ApiResult: ComputedRef<any>\n ApiError: ComputedRef<string>\n handleApi: UseRequestReturn['handleApi']\n}) {\n const { mergedProps, ApiResult, ApiError, handleApi } = options\n\n //:========================================: api actions :========================================://\n function apiQueryFileOptions(apiParams: FileCardProps['apiParams']) {\n if (!mergedProps.value.apiQueryFileList) {\n console.warn('[tavui TaFileCard] apiQueryFileList is undefined')\n return\n }\n\n const modeQueryApiTypeListConfig: any = {\n api: mergedProps.value.apiQueryFileList,\n beforeApi: mergedProps.value.beforeApiQueryFileList,\n afterApi: mergedProps.value.afterApiQueryFileList,\n apiParams: {\n appId: apiParams.appId,\n businessCheck: apiParams.businessCheck,\n ...(apiParams.businessDisplayItem\n ? {\n businessDisplayItem: apiParams.businessDisplayItem,\n }\n : {}),\n ...(apiParams.businessIds\n ? {\n businessIds: apiParams.businessIds,\n }\n : {}),\n businessKey: apiParams.businessKey,\n ...(apiParams.businessSearchItems\n ? {\n businessSearchItems: apiParams.businessSearchItems,\n }\n : {}),\n endTime: apiParams.endTime,\n ...(typeof apiParams.excludeDeleted !== 'undefined'\n ? { excludeDeleted: apiParams.excludeDeleted }\n : {}),\n ...(typeof apiParams.excludeStaging !== 'undefined'\n ? { excludeStaging: apiParams.excludeStaging }\n : {}),\n ...(apiParams.ids ? { ids: apiParams.ids } : {}),\n moduleCode: apiParams.moduleCode,\n owners: apiParams.owners,\n permissionControl: apiParams.permissionControl,\n ...(apiParams.searchValue ? { searchValue: apiParams.searchValue } : {}),\n ...(apiParams.startTime ? { startTime: apiParams.startTime } : {}),\n ...(apiParams.suffix ? { suffix: apiParams.suffix } : {}),\n ...(apiParams.typeCodes ? { typeCodes: apiParams.typeCodes } : {}),\n ...(apiParams.visibleSubModules ? { visibleSubModules: apiParams.visibleSubModules } : {}),\n },\n }\n\n const options: UseRequestHandleApiDefaultOptions<\n FileCardProps['apiParams'],\n FileActionUploadApiResponseRecord[]\n > = {\n ...modeQueryApiTypeListConfig,\n failureMessage: () => {\n return tavI18n('Tav.common.httpError')\n },\n }\n\n if (mergedProps.value.mode === 'read') {\n //\n } else if (mergedProps.value.mode === 'create') {\n // 必须为空数据状态\n } else if (mergedProps.value.mode === 'update') {\n //\n } else {\n //\n }\n\n return options\n }\n\n function apiQueryFileByActualIdsOptions(apiParams: {\n actualIds: FileCardProps['apiParams']['actualIds']\n }) {\n if (!mergedProps.value.apiQueryFileByActualIds) {\n console.warn('[tavui TaFileCard] apiQueryFileByActualIds is undefined')\n return\n }\n\n const options: UseRequestHandleApiDefaultOptions<\n ApiQueryFileByActualIds,\n FileActionUploadApiResponseRecord[]\n > = {\n api: mergedProps.value.apiQueryFileByActualIds,\n beforeApi: mergedProps.value.beforeApiQueryFileByActualIds,\n afterApi: mergedProps.value.afterApiQueryFileByActualIds,\n apiParams: {\n fileActualIds: apiParams.actualIds,\n },\n failureMessage: () => {\n return tavI18n('Tav.common.httpError')\n },\n }\n\n // if (mergedProps.value.mode === 'read') {\n // } else if (mergedProps.value.mode === 'create') {\n // } else if (mergedProps.value.mode === 'update') {\n // } else {\n // }\n\n return options\n }\n //:========================================: api actions :========================================://\n\n async function handleStringArrayDataSource() {\n // 字符串数组,需要查接口处理数据格式\n const options = apiQueryFileByActualIdsOptions({\n actualIds: mergedProps.value.dataSource as string[],\n })\n if (!options) {\n setDataSource([])\n return\n }\n await handleApi(options)\n if (!ApiError.value) {\n setDataSource(ApiResult.value)\n return\n } else {\n setDataSource([])\n return\n }\n }\n\n function handleObjectArrayDataSource() {\n // 对象数组,需要处理数据格式\n setDataSource(\n (mergedProps.value.dataSource as FileActualIdsObjectArray)\n .map((row) => row.versionList.at(-1))\n .filter(Boolean) as FileActionUploadApiResponseRecord[]\n )\n }\n\n async function handleApiDataSource(params?: any) {\n const options = apiQueryFileOptions({ ...mergedProps.value.apiParams, ...(params ?? {}) })\n if (!options) {\n setDataSource([])\n return\n }\n await handleApi(options)\n if (!ApiError.value && ApiResult.value.length > 0) {\n setDataSource(ApiResult.value)\n return\n } else {\n setDataSource([])\n return\n }\n }\n\n const dataSourceRef = shallowRef<FileActionUploadApiResponseRecord[]>([])\n async function handleDataSource() {\n if (mergedProps.value.mode === 'read') {\n if (mergedProps.value.dataSource) {\n /**\n * 只读模式,使用 datasource 数据源\n * 1. reload 方法直接返回(给不执行提示)\n */\n if (validateDataSourceIsStringArray(mergedProps.value.dataSource)) {\n await handleStringArrayDataSource()\n } else if (validateDataSourceIsObjectArray(mergedProps.value.dataSource)) {\n handleObjectArrayDataSource()\n } else {\n setDataSource(mergedProps.value.dataSource as FileActionUploadApiResponseRecord[])\n }\n } else {\n /**\n * 只读模式,使用 api 数据源\n * 1. 支持不分页接口\n */\n await handleApiDataSource()\n }\n } else if (mergedProps.value.mode === 'create') {\n if (mergedProps.value.dataSource) {\n /**\n * 新增模式,使用 datasource 数据源\n * 1. reload 方法直接返回(给不执行提示)\n */\n if (validateDataSourceIsStringArray(mergedProps.value.dataSource)) {\n await handleStringArrayDataSource()\n } else if (validateDataSourceIsObjectArray(mergedProps.value.dataSource)) {\n handleObjectArrayDataSource()\n } else {\n setDataSource([])\n }\n } else {\n /**\n * 新增模式,不支持 api 数据源,因为此时无 bizid & bizkey。\n * 强制置为 empty\n */\n console.warn('[tavui TaFileCard] \"create\" mode force \"api\" empty')\n setDataSource([])\n }\n } else if (mergedProps.value.mode === 'update') {\n if (mergedProps.value.dataSource) {\n /**\n * 编辑模式,使用 datasource 数据源\n * 1. reload 方法直接返回(给不执行提示)\n */\n if (validateDataSourceIsStringArray(mergedProps.value.dataSource)) {\n await handleStringArrayDataSource()\n } else if (validateDataSourceIsObjectArray(mergedProps.value.dataSource)) {\n handleObjectArrayDataSource()\n } else {\n setDataSource(mergedProps.value.dataSource as FileActionUploadApiResponseRecord[])\n }\n } else {\n /**\n * 编辑模式,使用 api 数据源\n * 1. 只能使用不分页接口\n */\n await handleApiDataSource()\n }\n } else {\n if (mergedProps.value.dataSource) {\n /**\n * 立即更新模式,使用 datasource 数据源\n * 1. reload 方法直接返回(给不执行提示)\n */\n if (validateDataSourceIsStringArray(mergedProps.value.dataSource)) {\n await handleStringArrayDataSource()\n } else if (validateDataSourceIsObjectArray(mergedProps.value.dataSource)) {\n handleObjectArrayDataSource()\n } else {\n setDataSource(mergedProps.value.dataSource as FileActionUploadApiResponseRecord[])\n }\n } else {\n /**\n * 立即更新模式,使用 api 数据源\n * 1. 支持不分页接口\n */\n await handleApiDataSource()\n }\n }\n }\n\n function setDataSource(data: FileActionUploadApiResponseRecord[]) {\n dataSourceRef.value = [...data]\n }\n\n const dataSource = computed(() => unref(dataSourceRef))\n\n return {\n apiActions: {\n apiQueryFileOptions,\n apiQueryFileByActualIdsOptions,\n },\n dataSource,\n handleDataSource,\n setDataSource,\n handleApiDataSource,\n }\n}\n\nexport type UseHandleDataSourceReturn = ReturnOf<typeof useHandleDataSource>\n"],"names":[],"mappings":"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"}