MaxKB/ui/src/stores/modules/problem.ts
shaohuzhang1 633c005905
Pr@main@problem manage (#37)
* feat: 问题模块
2024-04-09 11:33:28 +08:00

80 lines
2.0 KiB
TypeScript

import { defineStore } from 'pinia'
import { type Ref } from 'vue'
import problemApi from '@/api/problem'
import paragraphApi from '@/api/paragraph'
import type { pageRequest } from '@/api/type/common'
const useProblemStore = defineStore({
id: 'problem',
state: () => ({}),
actions: {
async asyncPostProblem(datasetId: string, data: any, loading?: Ref<boolean>) {
return new Promise((resolve, reject) => {
problemApi
.postProblems(datasetId, data, loading)
.then((data) => {
resolve(data)
})
.catch((error) => {
reject(error)
})
})
},
async asyncGetProblem(
datasetId: string,
page: pageRequest,
param: any,
loading?: Ref<boolean>
) {
return new Promise((resolve, reject) => {
problemApi
.getProblems(datasetId, page, param, loading)
.then((data) => {
resolve(data)
})
.catch((error) => {
reject(error)
})
})
},
async asyncDisassociationProblem(
datasetId: string,
documentId: string,
paragraphId: string,
problemId: string,
loading?: Ref<boolean>
) {
return new Promise((resolve, reject) => {
paragraphApi
.disassociationProblem(datasetId, documentId, paragraphId, problemId, loading)
.then((data) => {
resolve(data)
})
.catch((error) => {
reject(error)
})
})
},
async asyncAssociationProblem(
datasetId: string,
documentId: string,
paragraphId: string,
problemId: string,
loading?: Ref<boolean>
) {
return new Promise((resolve, reject) => {
paragraphApi
.associationProblem(datasetId, documentId, paragraphId, problemId, loading)
.then((data) => {
resolve(data)
})
.catch((error) => {
reject(error)
})
})
}
}
})
export default useProblemStore