tav-ui
Version:
182 lines (179 loc) • 6.48 kB
JavaScript
import { shallowRef, computed, unref } from 'vue';
import '../../../../../locales/index2.mjs';
import '../../utils/index2.mjs';
import { tavI18n } from '../../../../../locales/transfer2.mjs';
import { validateDataSourceIsStringArray, validateDataSourceIsObjectArray } from '../../utils/validate2.mjs';
function useHandleDataSource(options) {
const { mergedProps, ApiResult, ApiError, handleApi } = options;
function apiQueryFileOptions(apiParams) {
if (!mergedProps.value.apiQueryFileList) {
console.warn("[tavui TaFileCard] apiQueryFileList is undefined");
return;
}
const modeQueryApiTypeListConfig = {
api: mergedProps.value.apiQueryFileList,
beforeApi: mergedProps.value.beforeApiQueryFileList,
afterApi: mergedProps.value.afterApiQueryFileList,
apiParams: {
appId: apiParams.appId,
businessCheck: apiParams.businessCheck,
...apiParams.businessDisplayItem ? {
businessDisplayItem: apiParams.businessDisplayItem
} : {},
...apiParams.businessIds ? {
businessIds: apiParams.businessIds
} : {},
businessKey: apiParams.businessKey,
...apiParams.businessSearchItems ? {
businessSearchItems: apiParams.businessSearchItems
} : {},
endTime: apiParams.endTime,
...typeof apiParams.excludeDeleted !== "undefined" ? { excludeDeleted: apiParams.excludeDeleted } : {},
...typeof apiParams.excludeStaging !== "undefined" ? { excludeStaging: apiParams.excludeStaging } : {},
...apiParams.ids ? { ids: apiParams.ids } : {},
moduleCode: apiParams.moduleCode,
owners: apiParams.owners,
permissionControl: apiParams.permissionControl,
...apiParams.searchValue ? { searchValue: apiParams.searchValue } : {},
...apiParams.startTime ? { startTime: apiParams.startTime } : {},
...apiParams.suffix ? { suffix: apiParams.suffix } : {},
...apiParams.typeCodes ? { typeCodes: apiParams.typeCodes } : {},
...apiParams.visibleSubModules ? { visibleSubModules: apiParams.visibleSubModules } : {}
}
};
const options2 = {
...modeQueryApiTypeListConfig,
failureMessage: () => {
return tavI18n("Tav.common.httpError");
}
};
if (mergedProps.value.mode === "read") {
} else if (mergedProps.value.mode === "create") {
} else if (mergedProps.value.mode === "update") {
} else {
}
return options2;
}
function apiQueryFileByActualIdsOptions(apiParams) {
if (!mergedProps.value.apiQueryFileByActualIds) {
console.warn("[tavui TaFileCard] apiQueryFileByActualIds is undefined");
return;
}
const options2 = {
api: mergedProps.value.apiQueryFileByActualIds,
beforeApi: mergedProps.value.beforeApiQueryFileByActualIds,
afterApi: mergedProps.value.afterApiQueryFileByActualIds,
apiParams: {
fileActualIds: apiParams.actualIds
},
failureMessage: () => {
return tavI18n("Tav.common.httpError");
}
};
return options2;
}
async function handleStringArrayDataSource() {
const options2 = apiQueryFileByActualIdsOptions({
actualIds: mergedProps.value.dataSource
});
if (!options2) {
setDataSource([]);
return;
}
await handleApi(options2);
if (!ApiError.value) {
setDataSource(ApiResult.value);
return;
} else {
setDataSource([]);
return;
}
}
function handleObjectArrayDataSource() {
setDataSource(mergedProps.value.dataSource.map((row) => row.versionList.at(-1)).filter(Boolean));
}
async function handleApiDataSource(params) {
const options2 = apiQueryFileOptions({ ...mergedProps.value.apiParams, ...params ?? {} });
if (!options2) {
setDataSource([]);
return;
}
await handleApi(options2);
if (!ApiError.value && ApiResult.value.length > 0) {
setDataSource(ApiResult.value);
return;
} else {
setDataSource([]);
return;
}
}
const dataSourceRef = shallowRef([]);
async function handleDataSource() {
if (mergedProps.value.mode === "read") {
if (mergedProps.value.dataSource) {
if (validateDataSourceIsStringArray(mergedProps.value.dataSource)) {
await handleStringArrayDataSource();
} else if (validateDataSourceIsObjectArray(mergedProps.value.dataSource)) {
handleObjectArrayDataSource();
} else {
setDataSource(mergedProps.value.dataSource);
}
} else {
await handleApiDataSource();
}
} else if (mergedProps.value.mode === "create") {
if (mergedProps.value.dataSource) {
if (validateDataSourceIsStringArray(mergedProps.value.dataSource)) {
await handleStringArrayDataSource();
} else if (validateDataSourceIsObjectArray(mergedProps.value.dataSource)) {
handleObjectArrayDataSource();
} else {
setDataSource([]);
}
} else {
console.warn('[tavui TaFileCard] "create" mode force "api" empty');
setDataSource([]);
}
} else if (mergedProps.value.mode === "update") {
if (mergedProps.value.dataSource) {
if (validateDataSourceIsStringArray(mergedProps.value.dataSource)) {
await handleStringArrayDataSource();
} else if (validateDataSourceIsObjectArray(mergedProps.value.dataSource)) {
handleObjectArrayDataSource();
} else {
setDataSource(mergedProps.value.dataSource);
}
} else {
await handleApiDataSource();
}
} else {
if (mergedProps.value.dataSource) {
if (validateDataSourceIsStringArray(mergedProps.value.dataSource)) {
await handleStringArrayDataSource();
} else if (validateDataSourceIsObjectArray(mergedProps.value.dataSource)) {
handleObjectArrayDataSource();
} else {
setDataSource(mergedProps.value.dataSource);
}
} else {
await handleApiDataSource();
}
}
}
function setDataSource(data) {
dataSourceRef.value = [...data];
}
const dataSource = computed(() => unref(dataSourceRef));
return {
apiActions: {
apiQueryFileOptions,
apiQueryFileByActualIdsOptions
},
dataSource,
handleDataSource,
setDataSource,
handleApiDataSource
};
}
export { useHandleDataSource };
//# sourceMappingURL=use-handle-data-source2.mjs.map