diff --git a/src/api/safety/questionBank/index.ts b/src/api/safety/questionBank/index.ts new file mode 100644 index 0000000..7427f9f --- /dev/null +++ b/src/api/safety/questionBank/index.ts @@ -0,0 +1,63 @@ +import request from '@/utils/request'; +import { AxiosPromise } from 'axios'; +import { QuestionBankVO, QuestionBankForm, QuestionBankQuery } from '@/api/safety/questionBank/types'; + +/** + * 查询题库列表 + * @param query + * @returns {*} + */ + +export const listQuestionBank = (query?: QuestionBankQuery): AxiosPromise => { + return request({ + url: '/safety/questionBank/list', + method: 'get', + params: query + }); +}; + +/** + * 查询题库详细 + * @param id + */ +export const getQuestionBank = (id: string | number): AxiosPromise => { + return request({ + url: '/safety/questionBank/' + id, + method: 'get' + }); +}; + +/** + * 新增题库 + * @param data + */ +export const addQuestionBank = (data: QuestionBankForm) => { + return request({ + url: '/safety/questionBank', + method: 'post', + data: data + }); +}; + +/** + * 修改题库 + * @param data + */ +export const updateQuestionBank = (data: QuestionBankForm) => { + return request({ + url: '/safety/questionBank', + method: 'put', + data: data + }); +}; + +/** + * 删除题库 + * @param id + */ +export const delQuestionBank = (id: string | number | Array) => { + return request({ + url: '/safety/questionBank/' + id, + method: 'delete' + }); +}; diff --git a/src/api/safety/questionBank/types.ts b/src/api/safety/questionBank/types.ts new file mode 100644 index 0000000..e9b17fb --- /dev/null +++ b/src/api/safety/questionBank/types.ts @@ -0,0 +1,101 @@ +export interface QuestionBankVO { + /** + * 主键id + */ + id: string | number; + + /** + * 题目类别 + */ + categoryType: string; + + /** + * 题目类型 + */ + questionType: string; + + /** + * 题目内容 + */ + questionContent: string; + + /** + * 选项(以JSON数组形式存储) + */ + optionList: Array; + + /** + * 正确答案 + */ + correctAnswer: string; + +} + +export interface QuestionBankForm extends BaseEntity { + /** + * 主键id + */ + id?: string | number; + + /** + * 题目类别 + */ + categoryType?: string; + + /** + * 题目类型 + */ + questionType?: string; + + /** + * 题目内容 + */ + questionContent?: string; + + /** + * 选项(以JSON数组形式存储) + */ + optionList?: Array; + + /** + * 正确答案 + */ + correctAnswer?: string; + +} + +export interface QuestionBankQuery extends PageQuery { + + /** + * 题目类别 + */ + categoryType?: string; + + /** + * 题目类型 + */ + questionType?: string; + + /** + * 题目内容 + */ + questionContent?: string; + + /** + * 选项(以JSON数组形式存储) + */ + optionList?: Array; + + /** + * 正确答案 + */ + correctAnswer?: string; + + /** + * 日期范围参数 + */ + params?: any; +} + + + diff --git a/src/api/safety/questionUserAnswer/index.ts b/src/api/safety/questionUserAnswer/index.ts new file mode 100644 index 0000000..5ab5949 --- /dev/null +++ b/src/api/safety/questionUserAnswer/index.ts @@ -0,0 +1,63 @@ +import request from '@/utils/request'; +import { AxiosPromise } from 'axios'; +import { QuestionUserAnswerVO, QuestionUserAnswerForm, QuestionUserAnswerQuery } from '@/api/safety/questionUserAnswer/types'; + +/** + * 查询用户试卷存储列表 + * @param query + * @returns {*} + */ + +export const listQuestionUserAnswer = (query?: QuestionUserAnswerQuery): AxiosPromise => { + return request({ + url: '/safety/questionUserAnswer/list', + method: 'get', + params: query + }); +}; + +/** + * 查询用户试卷存储详细 + * @param id + */ +export const getQuestionUserAnswer = (id: string | number): AxiosPromise => { + return request({ + url: '/safety/questionUserAnswer/' + id, + method: 'get' + }); +}; + +/** + * 新增用户试卷存储 + * @param data + */ +export const addQuestionUserAnswer = (data: QuestionUserAnswerForm) => { + return request({ + url: '/safety/questionUserAnswer', + method: 'post', + data: data + }); +}; + +/** + * 修改用户试卷存储 + * @param data + */ +export const updateQuestionUserAnswer = (data: QuestionUserAnswerForm) => { + return request({ + url: '/safety/questionUserAnswer', + method: 'put', + data: data + }); +}; + +/** + * 删除用户试卷存储 + * @param id + */ +export const delQuestionUserAnswer = (id: string | number | Array) => { + return request({ + url: '/safety/questionUserAnswer/' + id, + method: 'delete' + }); +}; diff --git a/src/api/safety/questionUserAnswer/types.ts b/src/api/safety/questionUserAnswer/types.ts new file mode 100644 index 0000000..3bdb6de --- /dev/null +++ b/src/api/safety/questionUserAnswer/types.ts @@ -0,0 +1,146 @@ +export interface QuestionUserAnswerVO { + /** + * 主键id + */ + id: string | number; + + /** + * 项目id + */ + projectId: string | number; + + /** + * 用户id + */ + userId: string | number; + + /** + * 题库id列表 + */ + bankIdList: Array; + + /** + * 答案列表 + */ + answerList: Array; + + /** + * 得分 + */ + score: number; + + /** + * 用时时间(时间戳/秒) + */ + takeTime: number; + + /** + * 及格线/总分(格式:60,100) + */ + pass: string; + + /** + * 文件地址 + */ + file: string; + +} + +export interface QuestionUserAnswerForm extends BaseEntity { + /** + * 主键id + */ + id?: string | number; + + /** + * 项目id + */ + projectId?: string | number; + + /** + * 用户id + */ + userId?: string | number; + + /** + * 题库id列表 + */ + bankIdList: Array; + + /** + * 答案列表 + */ + answerList: Array; + + /** + * 得分 + */ + score?: number; + + /** + * 用时时间(时间戳/秒) + */ + takeTime?: number; + + /** + * 及格线/总分(格式:60,100) + */ + pass?: string; + + /** + * 文件地址 + */ + file?: string; + +} + +export interface QuestionUserAnswerQuery extends PageQuery { + + /** + * 项目id + */ + projectId?: string | number; + + /** + * 用户id + */ + userId?: string | number; + + /** + * 题库id列表 + */ + bankIdList: Array; + + /** + * 答案列表 + */ + answerList: Array; + + /** + * 得分 + */ + score?: number; + + /** + * 用时时间(时间戳/秒) + */ + takeTime?: number; + + /** + * 及格线/总分(格式:60,100) + */ + pass?: string; + + /** + * 文件地址 + */ + file?: string; + + /** + * 日期范围参数 + */ + params?: any; +} + + + diff --git a/src/api/safety/questionsConfig/index.ts b/src/api/safety/questionsConfig/index.ts new file mode 100644 index 0000000..3c613ec --- /dev/null +++ b/src/api/safety/questionsConfig/index.ts @@ -0,0 +1,63 @@ +import request from '@/utils/request'; +import { AxiosPromise } from 'axios'; +import { QuestionsConfigVO, QuestionsConfigForm, QuestionsConfigQuery } from '@/api/safety/questionsConfig/types'; + +/** + * 查询题库配置列表 + * @param query + * @returns {*} + */ + +export const listQuestionsConfig = (query?: QuestionsConfigQuery): AxiosPromise => { + return request({ + url: '/safety/questionsConfig/list', + method: 'get', + params: query + }); +}; + +/** + * 查询题库配置详细 + * @param id + */ +export const getQuestionsConfig = (id: string | number): AxiosPromise => { + return request({ + url: '/safety/questionsConfig/' + id, + method: 'get' + }); +}; + +/** + * 新增题库配置 + * @param data + */ +export const addQuestionsConfig = (data: QuestionsConfigForm) => { + return request({ + url: '/safety/questionsConfig', + method: 'post', + data: data + }); +}; + +/** + * 修改题库配置 + * @param data + */ +export const updateQuestionsConfig = (data: QuestionsConfigForm) => { + return request({ + url: '/safety/questionsConfig', + method: 'put', + data: data + }); +}; + +/** + * 删除题库配置 + * @param id + */ +export const delQuestionsConfig = (id: string | number | Array) => { + return request({ + url: '/safety/questionsConfig/' + id, + method: 'delete' + }); +}; diff --git a/src/api/safety/questionsConfig/types.ts b/src/api/safety/questionsConfig/types.ts new file mode 100644 index 0000000..a7773d4 --- /dev/null +++ b/src/api/safety/questionsConfig/types.ts @@ -0,0 +1,161 @@ +export interface QuestionsConfigVO { + /** + * 主键id + */ + id: string | number; + + /** + * 单选题(单位/道) + */ + singleChoice: number; + + /** + * 单选分数 + */ + singleScore: number; + + /** + * 多选题(单位/道) + */ + multipleChoice: number; + + /** + * 多选分数 + */ + multipleScore: number; + + /** + * 判断题(单位/道) + */ + estimate: number; + + /** + * 判断分数 + */ + estimateScore: number; + + /** + * 满分 + */ + fullMark: number; + + /** + * 及格线 + */ + passScore: number; + + /** + * 答题最大时间(单位/分钟) + */ + answerTime: number; + +} + +export interface QuestionsConfigForm extends BaseEntity { + /** + * 主键id + */ + id?: string | number; + + /** + * 单选题(单位/道) + */ + singleChoice?: number; + + /** + * 单选分数 + */ + singleScore?: number; + + /** + * 多选题(单位/道) + */ + multipleChoice?: number; + + /** + * 多选分数 + */ + multipleScore?: number; + + /** + * 判断题(单位/道) + */ + estimate?: number; + + /** + * 判断分数 + */ + estimateScore?: number; + + /** + * 满分 + */ + fullMark?: number; + + /** + * 及格线 + */ + passScore?: number; + + /** + * 答题最大时间(单位/分钟) + */ + answerTime?: number; + +} + +export interface QuestionsConfigQuery extends PageQuery { + + /** + * 单选题(单位/道) + */ + singleChoice?: number; + + /** + * 单选分数 + */ + singleScore?: number; + + /** + * 多选题(单位/道) + */ + multipleChoice?: number; + + /** + * 多选分数 + */ + multipleScore?: number; + + /** + * 判断题(单位/道) + */ + estimate?: number; + + /** + * 判断分数 + */ + estimateScore?: number; + + /** + * 满分 + */ + fullMark?: number; + + /** + * 及格线 + */ + passScore?: number; + + /** + * 答题最大时间(单位/分钟) + */ + answerTime?: number; + + /** + * 日期范围参数 + */ + params?: any; +} + + + diff --git a/src/views/project/projectTeam/index.vue b/src/views/project/projectTeam/index.vue index 34bec3e..ecfb730 100644 --- a/src/views/project/projectTeam/index.vue +++ b/src/views/project/projectTeam/index.vue @@ -118,7 +118,7 @@ const currentRow = ref({ teamName: undefined, isClockIn: undefined, remark: undefined, - ProjectTeamVO: undefined + createTime: undefined }); const queryFormRef = ref(); diff --git a/src/views/safety/questionBank/index.vue b/src/views/safety/questionBank/index.vue new file mode 100644 index 0000000..e5dd088 --- /dev/null +++ b/src/views/safety/questionBank/index.vue @@ -0,0 +1,289 @@ + + + diff --git a/src/views/safety/questionUserAnswer/index.vue b/src/views/safety/questionUserAnswer/index.vue new file mode 100644 index 0000000..0f12ad7 --- /dev/null +++ b/src/views/safety/questionUserAnswer/index.vue @@ -0,0 +1,271 @@ + + + diff --git a/src/views/safety/questionsConfig/index.vue b/src/views/safety/questionsConfig/index.vue new file mode 100644 index 0000000..75b8896 --- /dev/null +++ b/src/views/safety/questionsConfig/index.vue @@ -0,0 +1,310 @@ + + +