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
|
}
|