Prechádzať zdrojové kódy

@
fix: 全站 PageResult items→list 兼容(22文件 34处)

module_system: user/role/notice/tenant/dict/position/log/param/service_provider
other: apikey/monitor/portal/workflow/cronjob/gencode/dashboard
统一改为 items || list || [] 兜底
@

alphaH 5 hodín pred
rodič
commit
7661628f5c

+ 1 - 1
frontend/src/views/dashboard/workplace.vue

@@ -710,7 +710,7 @@ const listNotice = async () => {
       status: "0", // 只获取启用的公告
     });
     if (response.data.code === 0) {
-      noticeList.value = response.data.data.items;
+      noticeList.value = response.data.data?.items || response.data.data?.list || [];
     }
   } catch (error) {
     console.error("获取通知公告失败:", error);

+ 2 - 2
frontend/src/views/module_application/portal/index.vue

@@ -244,8 +244,8 @@ const contentConfig = reactive<IContentConfig<ApplicationPageQuery>>({
   indexAction: async (params) => {
     const res = await ApplicationAPI.listApp(params as ApplicationPageQuery);
     return {
-      total: res.data.data.total,
-      list: res.data.data.items,
+      total: res.data.data?.total || 0,
+      list: res.data.data?.items || res.data.data?.list || [],
     };
   },
 });

+ 4 - 4
frontend/src/views/module_generator/gencode/index.vue

@@ -392,8 +392,8 @@ const contentConfig = reactive<IContentConfig<GenTablePageQuery>>({
   indexAction: async (params) => {
     const res = await GencodeAPI.listTable(params as GenTablePageQuery);
     return {
-      total: res.data.data.total,
-      list: res.data.data.items,
+      total: res.data.data?.total || 0,
+      list: res.data.data?.items || res.data.data?.list || [],
     };
   },
 });
@@ -867,7 +867,7 @@ async function handlePreviewTable(row?: GenTableSchema): Promise<void> {
     ]);
     // 使用代码生成专用格式化:保留 route_path 供「分系统」实时回显
     menuOptions.value = formatMenuTreeWithMeta(filterMenuTypes(menu_response.data.data));
-    dictOptions.value = dict_response.data.data.items;
+    dictOptions.value = dict_response.data.data?.items || dict_response.data.data?.list || [];
   } catch (e) {
     console.error("菜单或字典加载失败:", e);
     ElMessage.warning("菜单或字典选项加载失败,部分下拉可能为空");
@@ -976,7 +976,7 @@ async function getDbList(): Promise<void> {
   try {
     const res = await GencodeAPI.listDbTable(importQueryFormData);
     if (res.data && res.data.data) {
-      dbTableList.value = res.data.data.items;
+      dbTableList.value = res.data.data?.items || res.data.data?.list || [];
       importTotal.value = res.data.data.total;
     }
   } catch (error) {

+ 2 - 2
frontend/src/views/module_monitor/online/index.vue

@@ -234,8 +234,8 @@ const contentConfig = reactive<IContentConfig<OnlineUserPageQuery>>({
   indexAction: async (params) => {
     const res = await OnlineAPI.listOnline(params as OnlineUserPageQuery);
     return {
-      total: res.data.data.total,
-      list: res.data.data.items,
+      total: res.data.data?.total || 0,
+      list: res.data.data?.items || res.data.data?.list || [],
     };
   },
 });

+ 2 - 2
frontend/src/views/module_monitor/resource/index.vue

@@ -328,8 +328,8 @@ const contentConfig = reactive<IContentConfig<ResourcePageQuery>>({
     }
     const res = await ResourceAPI.listResource(merged);
     return {
-      total: res.data.data.total,
-      list: res.data.data.items,
+      total: res.data.data?.total || 0,
+      list: res.data.data?.items || res.data.data?.list || [],
     };
   },
 });

+ 2 - 2
frontend/src/views/module_payment/apikey/index.vue

@@ -1530,8 +1530,8 @@ const contentConfig = reactive<IContentConfig<ApiKeyPageQuery>>({
   indexAction: async (params) => {
     const res = await ApiKeyAPI.listApiKey(params as ApiKeyPageQuery);
     return {
-      total: res.data.data.total,
-      list: res.data.data.items,
+      total: res.data.data?.total || 0,
+      list: res.data.data?.items || res.data.data?.list || [],
     };
   },
   deleteAction: async (ids) => {

+ 3 - 3
frontend/src/views/module_system/dict/components/DataDrawer.vue

@@ -572,8 +572,8 @@ const contentConfig = reactive<IContentConfig<DictDataPageQuery>>({
   indexAction: async (params) => {
     const res = await DictAPI.listDictData(mergeDictQuery(params as IObject));
     return {
-      total: res.data.data.total,
-      list: res.data.data.items,
+      total: res.data.data?.total || 0,
+      list: res.data.data?.items || res.data.data?.list || [],
     };
   },
   deleteAction: async (ids) => {
@@ -678,7 +678,7 @@ const curdContentConfig = {
         const res = await DictAPI.listDictData(q as unknown as DictDataPageQuery);
         return {
           total: res.data?.data?.total ?? 0,
-          list: res.data?.data?.items ?? [],
+          list: res.data?.data?.items || res.data?.data?.list || [],
         };
       },
     });

+ 3 - 3
frontend/src/views/module_system/dict/index.vue

@@ -380,8 +380,8 @@ const contentConfig = reactive<IContentConfig<DictPageQuery>>({
   indexAction: async (params) => {
     const res = await DictAPI.listDictType(params as DictPageQuery);
     return {
-      total: res.data.data.total,
-      list: res.data.data.items,
+      total: res.data.data?.total || 0,
+      list: res.data.data?.items || res.data.data?.list || [],
     };
   },
   deleteAction: async (ids) => {
@@ -468,7 +468,7 @@ const curdContentConfig = {
         const res = await DictAPI.listDictType(q as unknown as DictPageQuery);
         return {
           total: res.data?.data?.total ?? 0,
-          list: res.data?.data?.items ?? [],
+          list: res.data?.data?.items || res.data?.data?.list || [],
         };
       },
     });

+ 3 - 3
frontend/src/views/module_system/log/index.vue

@@ -417,8 +417,8 @@ const contentConfig = reactive<IContentConfig<LogPageQuery>>({
   indexAction: async (params) => {
     const res = await LogAPI.listLog(params as LogPageQuery);
     return {
-      total: res.data.data.total,
-      list: res.data.data.items,
+      total: res.data.data?.total || 0,
+      list: res.data.data?.items || res.data.data?.list || [],
     };
   },
   deleteAction: async (ids) => {
@@ -540,7 +540,7 @@ const curdContentConfig = {
         const res = await LogAPI.listLog(q as unknown as LogPageQuery);
         return {
           total: res.data?.data?.total ?? 0,
-          list: res.data?.data?.items ?? [],
+          list: res.data?.data?.items || res.data?.data?.list || [],
         };
       },
     });

+ 3 - 3
frontend/src/views/module_system/notice/index.vue

@@ -442,8 +442,8 @@ const contentConfig = reactive<IContentConfig<NoticePageQuery>>({
   indexAction: async (params) => {
     const res = await NoticeAPI.listNotice(params as NoticePageQuery);
     return {
-      total: res.data.data.total,
-      list: res.data.data.items,
+      total: res.data.data?.total || 0,
+      list: res.data.data?.items || res.data.data?.list || [],
     };
   },
   deleteAction: async (ids) => {
@@ -498,7 +498,7 @@ const curdContentConfig = {
         const res = await NoticeAPI.listNotice(q as unknown as NoticePageQuery);
         return {
           total: res.data?.data?.total ?? 0,
-          list: res.data?.data?.items ?? [],
+          list: res.data?.data?.items || res.data?.data?.list || [],
         };
       },
     });

+ 3 - 3
frontend/src/views/module_system/param/index.vue

@@ -386,8 +386,8 @@ const contentConfig = reactive<IContentConfig<ConfigPageQuery>>({
   indexAction: async (params) => {
     const res = await ParamsAPI.listParams(normalizeListQuery(params as IObject));
     return {
-      total: res.data.data.total,
-      list: res.data.data.items,
+      total: res.data.data?.total || 0,
+      list: res.data.data?.items || res.data.data?.list || [],
     };
   },
   deleteAction: async (ids) => {
@@ -475,7 +475,7 @@ const curdContentConfig = {
         const res = await ParamsAPI.listParams(q as unknown as ConfigPageQuery);
         return {
           total: res.data?.data?.total ?? 0,
-          list: res.data?.data?.items ?? [],
+          list: res.data?.data?.items || res.data?.data?.list || [],
         };
       },
     });

+ 3 - 3
frontend/src/views/module_system/position/index.vue

@@ -397,8 +397,8 @@ const contentConfig = reactive<IContentConfig<PositionPageQuery>>({
   indexAction: async (params) => {
     const res = await PositionAPI.listPosition(params as PositionPageQuery);
     return {
-      total: res.data.data.total,
-      list: res.data.data.items,
+      total: res.data.data?.total || 0,
+      list: res.data.data?.items || res.data.data?.list || [],
     };
   },
   deleteAction: async (ids) => {
@@ -452,7 +452,7 @@ const curdContentConfig = {
         const res = await PositionAPI.listPosition(q as unknown as PositionPageQuery);
         return {
           total: res.data?.data?.total ?? 0,
-          list: res.data?.data?.items ?? [],
+          list: res.data?.data?.items || res.data?.data?.list || [],
         };
       },
     });

+ 3 - 3
frontend/src/views/module_system/role/index.vue

@@ -476,8 +476,8 @@ const contentConfig = reactive<IContentConfig<TablePageQuery>>({
   indexAction: async (params) => {
     const res = await RoleAPI.listRole(params as TablePageQuery);
     return {
-      total: res.data.data.total,
-      list: res.data.data.items,
+      total: res.data.data?.total || 0,
+      list: res.data.data?.items || res.data.data?.list || [],
     };
   },
   deleteAction: async (ids) => {
@@ -540,7 +540,7 @@ const curdContentConfig = {
         const res = await RoleAPI.listRole(q as unknown as TablePageQuery);
         return {
           total: res.data?.data?.total ?? 0,
-          list: res.data?.data?.items ?? [],
+          list: res.data?.data?.items || res.data?.data?.list || [],
         };
       },
     });

+ 1 - 1
frontend/src/views/module_system/service_provider/index.vue

@@ -234,7 +234,7 @@ const contentConfig = reactive<IContentConfig<any>>({
   request: { page_no: "page_no", page_size: "page_size" },
   indexAction: async (params) => {
     const res = await ProviderAPI.list(params);
-    return { total: res.data.data.total, list: res.data.data.items };
+    return { total: res.data.data?.total || 0, list: res.data.data?.items || res.data.data?.list || [] };
   },
   deleteAction: async (ids) => {
     const idList = ids.split(",").map((s: string) => Number(s.trim())).filter((n: number) => !Number.isNaN(n));

+ 2 - 2
frontend/src/views/module_system/tenant/index.vue

@@ -384,8 +384,8 @@ const contentConfig = reactive<IContentConfig<TenantPageQuery>>({
   indexAction: async (params) => {
     const res = await TenantAPI.listTenant(params as TenantPageQuery);
     return {
-      total: res.data.data.total,
-      list: res.data.data.items,
+      total: res.data.data?.total || 0,
+      list: res.data.data?.items || res.data.data?.list || [],
     };
   },
   deleteAction: async (ids) => {

+ 2 - 2
frontend/src/views/module_system/user/components/UserTableSelect.vue

@@ -71,8 +71,8 @@ const selectConfig: ISelectConfig = {
     // 请求用户分页列表并适配 TableSelect 需要的结构
     return UserAPI.listUser(query).then((res: any) => {
       return {
-        total: res.data.data.total,
-        list: res.data.data.items,
+        total: res.data.data?.total || 0,
+        list: res.data.data?.items || res.data.data?.list || [],
       };
     });
   },

+ 5 - 5
frontend/src/views/module_system/user/index.vue

@@ -520,8 +520,8 @@ const contentConfig = reactive<IContentConfig<UserPageQuery>>({
   indexAction: async (params) => {
     const res = await UserAPI.listUser(params as UserPageQuery);
     return {
-      total: res.data.data.total,
-      list: res.data.data.items,
+      total: res.data.data?.total || 0,
+      list: res.data.data?.items || res.data.data?.list || [],
     };
   },
   deleteAction: async (ids) => {
@@ -658,7 +658,7 @@ const curdContentConfig = {
         const res = await UserAPI.listUser(q as unknown as UserPageQuery);
         return {
           total: res.data?.data?.total ?? 0,
-          list: res.data?.data?.items ?? [],
+          list: res.data?.data?.items || res.data?.data?.list || [],
         };
       },
     });
@@ -742,7 +742,7 @@ async function handleOpenDialog(type: "create" | "update" | "detail", id?: numbe
   deptOptions.value = formatTree(deptResponse.data.data);
 
   const roleResponse = await RoleAPI.listRole();
-  roleOptions.value = roleResponse.data.data.items
+  roleOptions.value = (roleResponse.data.data?.items || roleResponse.data.data?.list || [])
     .filter((item) => item.id !== undefined && item.name !== undefined)
     .map((item) => ({
       value: item.id as number,
@@ -752,7 +752,7 @@ async function handleOpenDialog(type: "create" | "update" | "detail", id?: numbe
     .filter((opt) => !opt.disabled);
 
   const positionResponse = await PositionAPI.listPosition();
-  positionOptions.value = positionResponse.data.data.items
+  positionOptions.value = (positionResponse.data.data?.items || positionResponse.data.data?.list || [])
     .filter((item) => item.id !== undefined && item.name !== undefined)
     .map((item) => ({
       value: item.id as number,

+ 2 - 2
frontend/src/views/module_task/cronjob/node/index.vue

@@ -423,8 +423,8 @@ const contentConfig = reactive<IContentConfig<NodePageQuery>>({
   indexAction: async (params) => {
     const res = await NodeAPI.listNode(params as NodePageQuery);
     return {
-      total: res.data.data.total,
-      list: res.data.data.items,
+      total: res.data.data?.total || 0,
+      list: res.data.data?.items || res.data.data?.list || [],
     };
   },
   deleteAction: (ids) =>

+ 2 - 2
frontend/src/views/module_task/workflow/definition/index.vue

@@ -206,8 +206,8 @@ const contentConfig = reactive<IContentConfig<WorkflowPageQuery>>({
       normalizeWorkflowQuery(params as unknown as Record<string, unknown>)
     );
     return {
-      total: res.data.data.total,
-      list: res.data.data.items,
+      total: res.data.data?.total || 0,
+      list: res.data.data?.items || res.data.data?.list || [],
     };
   },
   deleteAction: (ids) =>

+ 2 - 2
frontend/src/views/module_task/workflow/node-type/index.vue

@@ -230,8 +230,8 @@ const contentConfig = reactive<IContentConfig<WorkflowNodeTypePageQuery>>({
       normalizeNodeTypeQuery(params as unknown as Record<string, unknown>)
     );
     return {
-      total: res.data.data.total,
-      list: res.data.data.items,
+      total: res.data.data?.total || 0,
+      list: res.data.data?.items || res.data.data?.list || [],
     };
   },
   deleteAction: (ids) =>