From 375c18a6d2713ff19b22093eec57315992d8333f Mon Sep 17 00:00:00 2001
From: Codex Assistant <codex@example.com>
Date: 星期四, 06 十一月 2025 13:33:52 +0800
Subject: [PATCH] 增加评审下载
---
web/src/api/region.js | 276 +++++++++++++++++++++++++++++++-----------------------
1 files changed, 159 insertions(+), 117 deletions(-)
diff --git a/web/src/api/region.js b/web/src/api/region.js
index e61e32d..6a134e2 100644
--- a/web/src/api/region.js
+++ b/web/src/api/region.js
@@ -1,138 +1,180 @@
-const GRAPHQL_ENDPOINT = '/api/graphql'
+import { API_CONFIG, graphqlRequest } from '@/config/api'
-// GraphQL璇锋眰鍑芥暟
-async function graphqlRequest(query, variables = {}) {
- const response = await fetch(GRAPHQL_ENDPOINT, {
- method: 'POST',
- headers: {
- 'Content-Type': 'application/json',
- },
- body: JSON.stringify({
- query,
- variables,
- }),
- })
+// GraphQL 璇锋眰鍑芥暟 - 缁熶竴浣跨敤 graphqlRequest
- if (!response.ok) {
- const errorText = await response.text();
- throw new Error(`HTTP error! status: ${response.status}, body: ${errorText}`)
+// 鑾峰彇鎵�鏈夊湴鍖�
+export const getRegions = async () => {
+ const query = `
+ query GetRegions {
+ regions {
+ id
+ name
+ description
+ createTime
+ updateTime
+ }
+ }
+ `
+
+ try {
+ const result = await graphqlRequest(query)
+ return result.data.regions || []
+ } catch (error) {
+ throw new Error(error.message || '鑾峰彇鍦板尯鍒楄〃澶辫触')
}
-
- const result = await response.json()
-
- if (result.errors) {
- throw new Error(result.errors.map(e => e.message).join('\n'))
- }
-
- return result.data
}
-// --- GraphQL Query Strings ---
-
-const GET_REGIONS = `
- query GetRegions($name: String, $state: Int, $page: Int!, $size: Int!) {
- regions(name: $name, state: $state, page: $page, size: $size) {
- content { id name pid code level leafFlag fullPath state createTime createUserId updateTime updateUserId version }
- totalElements totalPages currentPage pageSize
+// 鏍规嵁 ID 鑾峰彇鍦板尯璇︽儏
+export const getRegion = async (id) => {
+ const query = `
+ query GetRegion($id: ID!) {
+ region(id: $id) {
+ id
+ name
+ description
+ createTime
+ updateTime
+ }
}
+ `
+
+ try {
+ const result = await graphqlRequest(query, { id })
+ return result.data.region
+ } catch (error) {
+ throw new Error(error.message || '鑾峰彇鍦板尯璇︽儏澶辫触')
}
-`
+}
-const GET_ALL_REGIONS = `
- query GetAllRegions {
- allRegions { id name pid code level leafFlag fullPath state createTime }
+// 淇濆瓨鍦板尯锛堟柊澧炴垨鏇存柊锛�
+export const saveRegion = async (regionData) => {
+ const mutation = `
+ mutation SaveRegion($input: RegionInput!) {
+ saveRegion(input: $input) {
+ id
+ name
+ description
+ createTime
+ updateTime
+ }
+ }
+ `
+
+ try {
+ const data = await graphqlRequest(mutation, { input: regionData })
+ return data.saveRegion
+ } catch (error) {
+ throw new Error(error.message || '淇濆瓨鍦板尯澶辫触')
}
-`
+}
-const GET_REGION = `
- query GetRegion($id: ID!) {
- region(id: $id) { id name pid code level leafFlag fullPath state createTime createUserId updateTime updateUserId version }
+// 鍒犻櫎鍦板尯
+export const deleteRegion = async (id) => {
+ const mutation = `
+ mutation DeleteRegion($id: ID!) {
+ deleteRegion(id: $id)
+ }
+ `
+
+ try {
+ const data = await graphqlRequest(mutation, { id })
+ return data.deleteRegion
+ } catch (error) {
+ throw new Error(error.message || '鍒犻櫎鍦板尯澶辫触')
}
-`
+}
-const GET_PROVINCES = `
- query GetProvinces {
- provinces { id name pid code level state }
+// 鑾峰彇鎵�鏈夌渷浠�
+export const getProvinces = async () => {
+ const query = `
+ query GetProvinces {
+ provinces {
+ id
+ name
+ pid
+ level
+ }
+ }
+ `
+
+ try {
+ const result = await graphqlRequest(query)
+ return result.data.provinces || []
+ } catch (error) {
+ throw new Error(error.message || '鑾峰彇鐪佷唤鍒楄〃澶辫触')
}
-`
+}
-const GET_CITIES = `
- query GetCities($provinceId: ID!) {
- cities(provinceId: $provinceId) { id name pid code level state }
+// 鏍规嵁鐪佷唤 ID 鑾峰彇鍩庡競
+export const getCities = async (provinceId) => {
+ const query = `
+ query GetCities($provinceId: ID!) {
+ cities(provinceId: $provinceId) {
+ id
+ name
+ pid
+ level
+ }
+ }
+ `
+
+ try {
+ const result = await graphqlRequest(query, { provinceId })
+ return result.data.cities || []
+ } catch (error) {
+ throw new Error(error.message || '鑾峰彇鍩庡競鍒楄〃澶辫触')
}
-`
+}
-const GET_DISTRICTS = `
- query GetDistricts($cityId: ID!) {
- districts(cityId: $cityId) { id name pid code level state }
+// 鏍规嵁鍩庡競 ID 鑾峰彇鍖哄幙
+export const getDistricts = async (cityId) => {
+ const query = `
+ query GetDistricts($cityId: ID!) {
+ districts(cityId: $cityId) {
+ id
+ name
+ pid
+ level
+ }
+ }
+ `
+
+ try {
+ const result = await graphqlRequest(query, { cityId })
+ return result.data.districts || []
+ } catch (error) {
+ throw new Error(error.message || '鑾峰彇鍖哄幙鍒楄〃澶辫触')
}
-`
+}
-const GET_REGION_CHILDREN = `
- query GetRegionChildren($parentId: ID!) {
- regionChildren(parentId: $parentId) { id name pid code level leafFlag state }
+// 鑾峰彇鍙跺瓙鍦板尯鍒楄〃
+export const getLeafRegions = async () => {
+ const query = `
+ query LeafRegions {
+ leafRegions {
+ id
+ name
+ leafFlag
+ }
+ }
+ `
+
+ try {
+ const result = await graphqlRequest(query)
+ return result.data.leafRegions || []
+ } catch (error) {
+ throw new Error(error.message || '鑾峰彇鍙跺瓙鍦板尯鍒楄〃澶辫触')
}
-`
+}
-const SAVE_REGION = `
- mutation SaveRegion($input: RegionInput!) {
- saveRegion(input: $input) { id name pid code level leafFlag fullPath state createTime updateTime version }
- }
-`
-
-const DELETE_REGION = `
- mutation DeleteRegion($id: ID!) {
- deleteRegion(id: $id)
- }
-`
-
-const TOGGLE_REGION_STATE = `
- mutation ToggleRegionState($id: ID!) {
- toggleRegionState(id: $id) { id name state updateTime }
- }
-`
-
-// --- API Functions ---
-
+// RegionApi 瀵硅薄锛屽寘鍚墍鏈夊尯鍩熺浉鍏崇殑 API 鏂规硶
export const RegionApi = {
- getRegions: async (name, state, page, size) => {
- const data = await graphqlRequest(GET_REGIONS, { name, state, page, size });
- return data.regions;
- },
- getAllRegions: async () => {
- const data = await graphqlRequest(GET_ALL_REGIONS);
- return data.allRegions;
- },
- getRegion: async (id) => {
- const data = await graphqlRequest(GET_REGION, { id });
- return data.region;
- },
- getProvinces: async () => {
- const data = await graphqlRequest(GET_PROVINCES);
- return data.provinces || [];
- },
- getCities: async (provinceId) => {
- const data = await graphqlRequest(GET_CITIES, { provinceId });
- return data.cities || [];
- },
- getDistricts: async (cityId) => {
- const data = await graphqlRequest(GET_DISTRICTS, { cityId });
- return data.districts || [];
- },
- getChildren: async (parentId) => {
- const data = await graphqlRequest(GET_REGION_CHILDREN, { parentId });
- return data.regionChildren;
- },
- saveRegion: async (input) => {
- const data = await graphqlRequest(SAVE_REGION, { input });
- return data.saveRegion;
- },
- deleteRegion: async (id) => {
- const data = await graphqlRequest(DELETE_REGION, { id });
- return data.deleteRegion;
- },
- toggleRegionState: async (id) => {
- const data = await graphqlRequest(TOGGLE_REGION_STATE, { id });
- return data.toggleRegionState;
- }
-}
\ No newline at end of file
+ getRegions,
+ getRegion,
+ saveRegion,
+ deleteRegion,
+ getProvinces,
+ getCities,
+ getDistricts,
+ getLeafRegions
+}
--
Gitblit v1.8.0