76 lines
2.7 KiB
TypeScript
76 lines
2.7 KiB
TypeScript
import request from '@/config/axios'
|
||
|
||
/** 问卷模板信息 */
|
||
export interface Questionnaire {
|
||
id?: number // 问卷ID(创建时不需要)
|
||
title: string // 问卷标题
|
||
type: number // 问卷类型:1-心理测评 2-行为评估 3-满意度调查
|
||
description?: string // 问卷说明
|
||
totalScore?: number | string // 总分(后端为BigDecimal,前端用number或string)
|
||
passScore?: number | string // 及格分(后端为BigDecimal,前端用number或string)
|
||
status: number // 状态:1-草稿 2-已发布 3-已禁用
|
||
coverImage?: string // 封面图片URL(单个图片地址)
|
||
instruction?: string // 填写说明
|
||
estimatedTime?: number // 预计耗时(分钟)
|
||
partCount?: number // 分区数量
|
||
allowAnonymous?: boolean // 是否允许匿名
|
||
creator?: string // 创建者
|
||
createTime?: string // 创建时间
|
||
updater?: string // 更新者
|
||
updateTime?: string // 更新时间
|
||
}
|
||
|
||
/** 问卷模板分页参数 */
|
||
export interface QuestionnairePageParams {
|
||
pageNo: number
|
||
pageSize: number
|
||
title?: string // 问卷标题
|
||
type?: number // 问卷类型
|
||
status?: number // 状态
|
||
description?: string // 问卷说明
|
||
coverImage?: string // 封面图片URL
|
||
instruction?: string // 填写说明
|
||
estimatedTime?: number // 预计耗时
|
||
partCount?: number // 分区数量
|
||
allowAnonymous?: boolean // 是否允许匿名
|
||
createTime?: string[] // 创建时间范围
|
||
}
|
||
|
||
// 问卷模板 API
|
||
export const QuestionnaireApi = {
|
||
// 查询问卷模板分页
|
||
getQuestionnairePage: async (params: QuestionnairePageParams) => {
|
||
return await request.get<{ list: Questionnaire[]; total: number }>({ url: `/prison/questionnaire/page`, params })
|
||
},
|
||
|
||
// 查询问卷模板详情
|
||
getQuestionnaire: async (id: number) => {
|
||
return await request.get<Questionnaire>({ url: `/prison/questionnaire/get`, params: { id } })
|
||
},
|
||
|
||
// 新增问卷模板
|
||
createQuestionnaire: async (data: Questionnaire) => {
|
||
return await request.post<number>({ url: `/prison/questionnaire/create`, data })
|
||
},
|
||
|
||
// 修改问卷模板
|
||
updateQuestionnaire: async (data: Questionnaire) => {
|
||
return await request.put<boolean>({ url: `/prison/questionnaire/update`, data })
|
||
},
|
||
|
||
// 删除问卷模板
|
||
deleteQuestionnaire: async (id: number) => {
|
||
return await request.delete<boolean>({ url: `/prison/questionnaire/delete`, params: { id } })
|
||
},
|
||
|
||
/** 批量删除问卷模板 */
|
||
deleteQuestionnaireList: async (ids: number[]) => {
|
||
return await request.post<boolean>({ url: `/prison/questionnaire/delete-list`, data: ids })
|
||
},
|
||
|
||
// 导出问卷模板 Excel
|
||
exportQuestionnaire: async (params: QuestionnairePageParams) => {
|
||
return await request.download({ url: `/prison/questionnaire/export-excel`, params })
|
||
}
|
||
}
|