|
|
@@ -1,6 +1,9 @@
|
|
|
<template>
|
|
|
<FlexCol>
|
|
|
- <Result v-if="errorMessage" status="error" :description="errorMessage" />
|
|
|
+ <FlexCol v-if="errorMessage" :padding="30" :gap="30" center height="100%">
|
|
|
+ <Result status="error" :description="errorMessage" />
|
|
|
+ <Button type="primary" @click="loadPageConfig">重新加载</Button>
|
|
|
+ </FlexCol>
|
|
|
<LoadingPage v-else-if="!loadState" />
|
|
|
<CommonListPage
|
|
|
v-else-if="currentCommonCategoryDefine && loadState"
|
|
|
@@ -42,6 +45,7 @@ import CommonCategoryBlocks, { type CategoryDefine } from './CommonCategoryBlock
|
|
|
import Footer from '@/components/display/Footer.vue';
|
|
|
import FlexCol from '@/components/layout/FlexCol.vue';
|
|
|
import LoadingPage from '@/components/display/loading/LoadingPage.vue';
|
|
|
+import Button from '@/components/basic/Button.vue';
|
|
|
|
|
|
/**
|
|
|
* 动态通用内容 - 通用列表页
|
|
|
@@ -91,42 +95,46 @@ async function loadPageConfig() {
|
|
|
|
|
|
await waitTimeOut(200);
|
|
|
|
|
|
- //特殊处理
|
|
|
- for (const [_, tab] of Object.entries(tabRenderDefines.value)) {
|
|
|
- if (tab.type === 'nestCategory')
|
|
|
- await doLoadDynamicCategoryDataMergeTypeGetColumns(tab.categorys)
|
|
|
- }
|
|
|
+ try {
|
|
|
+ //特殊处理
|
|
|
+ for (const [_, tab] of Object.entries(tabRenderDefines.value)) {
|
|
|
+ if (tab.type === 'nestCategory')
|
|
|
+ await doLoadDynamicCategoryDataMergeTypeGetColumns(tab.categorys)
|
|
|
+ }
|
|
|
|
|
|
- //加载下拉列表
|
|
|
- const result = [] as DropDownNames[];
|
|
|
- for (const [key, tab] of Object.entries(tabRenderDefines.value)) {
|
|
|
- if (tab.type !== 'list')
|
|
|
- continue;
|
|
|
- if (tab.dropdownDefines) {
|
|
|
- for (const dropdown of tab.dropdownDefines) {
|
|
|
- const data : SimpleDropDownPickerItem[] = (dropdown.addAll ? [{
|
|
|
- id: 0,
|
|
|
- name: dropdown.addAll
|
|
|
- }] : []);
|
|
|
- if (dropdown.data) {
|
|
|
- data.push(...(await doLoadDynamicDropdownData(dropdown.data)).map((item) => ({
|
|
|
- id: item[dropdown.data.idKey || 'id'],
|
|
|
- name: item[dropdown.data.nameKey || 'title'],
|
|
|
- })))
|
|
|
+ //加载下拉列表
|
|
|
+ const result = [] as DropDownNames[];
|
|
|
+ for (const [key, tab] of Object.entries(tabRenderDefines.value)) {
|
|
|
+ if (tab.type !== 'list')
|
|
|
+ continue;
|
|
|
+ if (tab.dropdownDefines) {
|
|
|
+ for (const dropdown of tab.dropdownDefines) {
|
|
|
+ const data : SimpleDropDownPickerItem[] = (dropdown.addAll ? [{
|
|
|
+ id: 0,
|
|
|
+ name: dropdown.addAll
|
|
|
+ }] : []);
|
|
|
+ if (dropdown.data) {
|
|
|
+ data.push(...(await doLoadDynamicDropdownData(dropdown.data)).map((item) => ({
|
|
|
+ id: item[dropdown.data.idKey || 'id'],
|
|
|
+ name: item[dropdown.data.nameKey || 'title'],
|
|
|
+ })))
|
|
|
+ }
|
|
|
+ result.push({
|
|
|
+ options: data,
|
|
|
+ activeTab: [Number(key)],
|
|
|
+ defaultSelectedValue: dropdown.formQueryKey ? (
|
|
|
+ props.pageQuerys[dropdown.formQueryKey] as number || 0
|
|
|
+ ) : dropdown.defaultValue || 0,
|
|
|
+ })
|
|
|
}
|
|
|
- result.push({
|
|
|
- options: data,
|
|
|
- activeTab: [Number(key)],
|
|
|
- defaultSelectedValue: dropdown.formQueryKey ? (
|
|
|
- props.pageQuerys[dropdown.formQueryKey] as number || 0
|
|
|
- ) : dropdown.defaultValue || 0,
|
|
|
- })
|
|
|
}
|
|
|
}
|
|
|
+ loadState.value = true;
|
|
|
+ dropdownNames.value = result;
|
|
|
+ } catch (error) {
|
|
|
+ loadState.value = false;
|
|
|
+ errorMessage.value = formatError(error);
|
|
|
}
|
|
|
- loadState.value = true;
|
|
|
- dropdownNames.value = result;
|
|
|
-
|
|
|
}
|
|
|
|
|
|
watch(() => props.pageConfigName, loadPageConfig);
|