import request from '@/config/axios' /** 问卷问题信息 */ export interface Question { id?: number // 问题ID(创建时不需要) questionnaireId: number // 所属问卷ID title: string // 问题标题 type: number // 问题类型:1-单选 2-多选 3-填空 4-评分 5-日期 6-数字 options?: string // 选项JSON(单选/多选时使用) score?: number // 分值 sort?: number // 排序 isRequired?: boolean // 是否必答 partName?: string // 分区名称 partSort?: number // 分区排序 helpText?: string // 帮助说明文字 placeholder?: string // 占位提示 defaultValue?: string // 默认值 autoFillType?: string // 自动填充类型:NONE-无 AUTO-自动填充 MANUAL-手动输入 autoFillSource?: string // 自动填充来源 displayCondition?: string // 显示条件JSON minValue?: number // 最小值 maxValue?: number // 最大值 createTime?: string // 创建时间 } /** 问卷问题分页参数 */ export interface QuestionPageParams { pageNo: number pageSize: number questionnaireId?: number // 所属问卷ID title?: string // 问题标题 type?: number // 问题类型 partName?: string // 分区名称 createTime?: string[] // 创建时间范围 } /** 批量更新请求 */ export interface QuestionBatchUpdateReq { questions: Array<{ id: number partName?: string partSort?: number sort?: number }> } // 问卷问题 API export const QuestionApi = { // 查询问卷问题分页 getQuestionPage: async (params: QuestionPageParams) => { return await request.get({ url: `/prison/question/page`, params }) }, // 查询问卷问题详情 getQuestion: async (id: number) => { return await request.get({ url: `/prison/question/get`, params: { id } }) }, // 新增问卷问题 createQuestion: async (data: Question) => { return await request.post({ url: `/prison/question/create`, data }) }, // 修改问卷问题 updateQuestion: async (data: Question) => { return await request.put({ url: `/prison/question/update`, data }) }, // 删除问卷问题 deleteQuestion: async (id: number) => { return await request.delete({ url: `/prison/question/delete`, params: { id } }) }, /** 批量删除问卷问题 */ deleteQuestionList: async (ids: number[]) => { return await request.delete({ url: `/prison/question/delete-list`, params: { ids: ids.join(',') } }) }, // 批量更新问卷问题(使用POST方法,与后端一致) batchUpdate: async (data: QuestionBatchUpdateReq) => { return await request.post({ url: `/prison/question/batch-update`, data }) }, // 导出问卷问题 Excel exportQuestion: async (params: QuestionPageParams) => { return await request.download({ url: `/prison/question/export-excel`, params }) } }