const GRAPHQL_ENDPOINT = 'http://localhost:8080/api/graphql' // GraphQL请求函数 async function graphqlRequest(query, variables = {}) { const response = await fetch(GRAPHQL_ENDPOINT, { method: 'POST', headers: { 'Content-Type': 'application/json', }, body: JSON.stringify({ query, variables, }), }) if (!response.ok) { throw new Error(`HTTP error! status: ${response.status}`) } const result = await response.json() if (result.errors) { throw new Error(result.errors[0].message) } return result.data } // 分页查询评分模板列表 export const getRatingSchemes = async (page = 0, size = 10, name = '') => { const query = ` query GetRatingSchemes($page: Int, $size: Int, $name: String) { ratingSchemes(page: $page, size: $size, name: $name) { content { id name description totalScore createTime updateTime } totalElements totalPages number size first last } } ` const variables = { page, size } if (name) { variables.name = name } const data = await graphqlRequest(query, variables) return data.ratingSchemes } // 根据ID获取评分模板详情 export const getRatingScheme = async (id) => { const query = ` query GetRatingScheme($id: ID!) { ratingScheme(id: $id) { id name description totalScore items { id name maxScore orderNo } createTime updateTime } } ` const data = await graphqlRequest(query, { id }) return data.ratingScheme } // 获取所有评分模板(用于下拉选择) export const getAllRatingSchemes = async () => { const query = ` query GetAllRatingSchemes { allRatingSchemes { id name description totalScore } } ` const data = await graphqlRequest(query) return data.allRatingSchemes } // 保存评分模板 export const saveRatingScheme = async (input) => { const mutation = ` mutation SaveRatingScheme($input: RatingSchemeInput!) { saveRatingScheme(input: $input) { id name description totalScore items { id name maxScore orderNo } createTime updateTime } } ` const data = await graphqlRequest(mutation, { input }) return data.saveRatingScheme } // 删除评分模板 export const deleteRatingScheme = async (id) => { const mutation = ` mutation DeleteRatingScheme($id: ID!) { deleteRatingScheme(id: $id) } ` const data = await graphqlRequest(mutation, { id }) return data.deleteRatingScheme }