From 3a109f2b9b4ff836e7c8eda0a51bac2b015f56dc Mon Sep 17 00:00:00 2001 From: lcj <2331845269@qq.com> Date: Tue, 25 Mar 2025 15:21:10 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E9=A2=98=E5=BA=93=E9=85=8D?= =?UTF-8?q?=E7=BD=AE=E3=80=81=E9=A2=98=E5=BA=93=E3=80=81=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E8=AF=95=E5=8D=B7=E5=AD=98=E5=82=A8=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- plus-ui/src/api/safety/questionBank/index.ts | 63 ++++ plus-ui/src/api/safety/questionBank/types.ts | 101 ++++++ .../api/safety/questionUserAnswer/index.ts | 63 ++++ .../api/safety/questionUserAnswer/types.ts | 146 +++++++++ .../src/api/safety/questionsConfig/index.ts | 63 ++++ .../src/api/safety/questionsConfig/types.ts | 161 +++++++++ .../src/views/project/projectTeam/index.vue | 2 +- .../src/views/safety/questionBank/index.vue | 289 ++++++++++++++++ .../views/safety/questionUserAnswer/index.vue | 271 +++++++++++++++ .../views/safety/questionsConfig/index.vue | 310 ++++++++++++++++++ 10 files changed, 1468 insertions(+), 1 deletion(-) create mode 100644 plus-ui/src/api/safety/questionBank/index.ts create mode 100644 plus-ui/src/api/safety/questionBank/types.ts create mode 100644 plus-ui/src/api/safety/questionUserAnswer/index.ts create mode 100644 plus-ui/src/api/safety/questionUserAnswer/types.ts create mode 100644 plus-ui/src/api/safety/questionsConfig/index.ts create mode 100644 plus-ui/src/api/safety/questionsConfig/types.ts create mode 100644 plus-ui/src/views/safety/questionBank/index.vue create mode 100644 plus-ui/src/views/safety/questionUserAnswer/index.vue create mode 100644 plus-ui/src/views/safety/questionsConfig/index.vue diff --git a/plus-ui/src/api/safety/questionBank/index.ts b/plus-ui/src/api/safety/questionBank/index.ts new file mode 100644 index 00000000..7427f9f7 --- /dev/null +++ b/plus-ui/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/plus-ui/src/api/safety/questionBank/types.ts b/plus-ui/src/api/safety/questionBank/types.ts new file mode 100644 index 00000000..e9b17fb3 --- /dev/null +++ b/plus-ui/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/plus-ui/src/api/safety/questionUserAnswer/index.ts b/plus-ui/src/api/safety/questionUserAnswer/index.ts new file mode 100644 index 00000000..5ab59492 --- /dev/null +++ b/plus-ui/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/plus-ui/src/api/safety/questionUserAnswer/types.ts b/plus-ui/src/api/safety/questionUserAnswer/types.ts new file mode 100644 index 00000000..3bdb6def --- /dev/null +++ b/plus-ui/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/plus-ui/src/api/safety/questionsConfig/index.ts b/plus-ui/src/api/safety/questionsConfig/index.ts new file mode 100644 index 00000000..3c613ec5 --- /dev/null +++ b/plus-ui/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/plus-ui/src/api/safety/questionsConfig/types.ts b/plus-ui/src/api/safety/questionsConfig/types.ts new file mode 100644 index 00000000..a7773d49 --- /dev/null +++ b/plus-ui/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/plus-ui/src/views/project/projectTeam/index.vue b/plus-ui/src/views/project/projectTeam/index.vue index 34bec3e7..ecfb7306 100644 --- a/plus-ui/src/views/project/projectTeam/index.vue +++ b/plus-ui/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/plus-ui/src/views/safety/questionBank/index.vue b/plus-ui/src/views/safety/questionBank/index.vue new file mode 100644 index 00000000..e5dd0888 --- /dev/null +++ b/plus-ui/src/views/safety/questionBank/index.vue @@ -0,0 +1,289 @@ + + + diff --git a/plus-ui/src/views/safety/questionUserAnswer/index.vue b/plus-ui/src/views/safety/questionUserAnswer/index.vue new file mode 100644 index 00000000..0f12ad73 --- /dev/null +++ b/plus-ui/src/views/safety/questionUserAnswer/index.vue @@ -0,0 +1,271 @@ + + + diff --git a/plus-ui/src/views/safety/questionsConfig/index.vue b/plus-ui/src/views/safety/questionsConfig/index.vue new file mode 100644 index 00000000..75b8896d --- /dev/null +++ b/plus-ui/src/views/safety/questionsConfig/index.vue @@ -0,0 +1,310 @@ + + +