From 89a1a63f716224a5370e3022f71c17bbf7473e1d Mon Sep 17 00:00:00 2001 From: yujialong <479214531@qq.com> Date: Fri, 16 Aug 2024 17:02:50 +0800 Subject: [PATCH] =?UTF-8?q?=E7=90=86=E8=AE=BA=E8=80=83=E8=AF=95=E5=AE=9E?= =?UTF-8?q?=E9=AA=8C=E6=8A=A5=E5=91=8A=E8=81=94=E8=B0=83=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/assets/img/right.svg | 1 + src/assets/img/shrink.svg | 1 + src/assets/img/tag-active.svg | 1 + src/assets/img/tag.svg | 1 + src/assets/img/wrong.svg | 1 + src/const/ques.js | 50 + src/libs/util.js | 37 + src/router/index.js | 42 +- src/utils/api.js | 1 + src/views/match/manage/matchArchList.vue | 378 +++----- src/views/match/manage/theoryReport.vue | 914 ++++++++++++++++++ .../{matchReport.vue => trialReport.vue} | 0 12 files changed, 1141 insertions(+), 286 deletions(-) create mode 100644 src/assets/img/right.svg create mode 100644 src/assets/img/shrink.svg create mode 100644 src/assets/img/tag-active.svg create mode 100644 src/assets/img/tag.svg create mode 100644 src/assets/img/wrong.svg create mode 100644 src/const/ques.js create mode 100644 src/views/match/manage/theoryReport.vue rename src/views/match/manage/{matchReport.vue => trialReport.vue} (100%) diff --git a/src/assets/img/right.svg b/src/assets/img/right.svg new file mode 100644 index 0000000..a35728a --- /dev/null +++ b/src/assets/img/right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/img/shrink.svg b/src/assets/img/shrink.svg new file mode 100644 index 0000000..7ba4e0d --- /dev/null +++ b/src/assets/img/shrink.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/img/tag-active.svg b/src/assets/img/tag-active.svg new file mode 100644 index 0000000..c5183d4 --- /dev/null +++ b/src/assets/img/tag-active.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/img/tag.svg b/src/assets/img/tag.svg new file mode 100644 index 0000000..2661143 --- /dev/null +++ b/src/assets/img/tag.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/img/wrong.svg b/src/assets/img/wrong.svg new file mode 100644 index 0000000..c34c0a0 --- /dev/null +++ b/src/assets/img/wrong.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/const/ques.js b/src/const/ques.js new file mode 100644 index 0000000..3814d19 --- /dev/null +++ b/src/const/ques.js @@ -0,0 +1,50 @@ +export default { + difficults: [ + { + id: 'basic', + name: '基础', + coefficient: 0.2, // 难度系数,试卷里计算试卷难度专用 + theme: 'success', + }, + { + id: 'easy', + name: '普通', + coefficient: 0.4, + theme: '', + }, + { + id: 'medium', + name: '较难', + coefficient: 0.6, + theme: 'warning', + }, + { + id: 'hard', + name: '难', + coefficient: 0.8, + theme: 'danger', + }, + ], + questionTypes: [ + { + id: 'single_choice', + name: '单选题' + }, + { + id: 'multiple_choice', + name: '多选题' + }, + { + id: 'judgement', + name: '判断题' + }, + { + id: 'fill_blank', + name: '填空题' + }, + { + id: 'essay', + name: '问答题' + }, + ], +} diff --git a/src/libs/util.js b/src/libs/util.js index 082ef00..a3bd3ea 100644 --- a/src/libs/util.js +++ b/src/libs/util.js @@ -172,6 +172,43 @@ const util = { resolve(new Date(data.currentTime)) }) }, + // 阿拉伯数字转化为中文数字 + arabicToChinese (num) { + const arr1 = ['零', '一', '二', '三', '四', '五', '六', '七', '八', '九']; + const arr2 = ['', '十', '百', '千', '万', '亿', '点', '']; + const a = `${num}`.replace(/(^0*)/g, '').split('.'); + let k = 0; + let re = ''; + for (let i = a[0].length - 1; i >= 0; i--) { + switch (k) { + case 0: + re = arr2[7] + re; + break; + case 4: + if (!new RegExp(`0{4}//d{${a[0].length - i - 1}}$`).test(a[0])) re = arr2[4] + re; + break; + case 8: + re = arr2[5] + re; + arr2[7] = arr2[5]; + k = 0; + break; + default: + } + if (k % 4 == 2 && a[0].charAt(i + 2) != 0 && a[0].charAt(i + 1) == 0) re = arr1[0] + re; + if (a[0].charAt(i) != 0) re = arr1[a[0].charAt(i)] + arr2[k % 4] + re; + k++; + } + return num > 9 && num < 20 ? re.slice(1) : re; + }, + // 阿拉伯数字转化为英文字母 + numToLetter (num) { + let result = '' + if (num > 26) { + result += numberToLetter((num / 26) >> 0 - 1) + } + result += String.fromCharCode(65 + (num % 26)) + return result + }, } export default util \ No newline at end of file diff --git a/src/router/index.js b/src/router/index.js index 2169858..dc41d9e 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -19,143 +19,119 @@ let router = new Router({ { path: '/customer', component: () => import('../views/customer/customer.vue'), - // meta: { title: '客户管理' } }, { path: '/addcustomer', component: () => import('../views/customer/AddCustomer.vue'), - // meta: { title: '新增客户' } }, { path: '/bmOrder', component: () => import('../views/customer/Order.vue'), - // meta: { title: '新增客户' } }, { path: '/user', component: () => import('../views/user/User.vue'), - // meta: { title: '用户管理' } }, { path: '/adduser', component: () => import('../views/user/AddUser.vue'), - // meta: { title: '新增用户' } }, { path: '/info', component: () => import('../views/user/Info.vue'), - // meta: { title: '新增用户' } }, { path: '/order', component: () => import('../views/order/Order.vue'), - // meta: { title: '订单管理' } }, { path: '/addorder', component: () => import('../views/order/AddOrder.vue'), - // meta: { title: '新增订单' } }, { path: '/selectClient', component: () => import('../views/order/selectClient.vue'), - // meta: { title: '选择订单客户' } }, { path: '/configure', component: () => import('../views/serve/Configure.vue'), - // meta: { title: '服务配置' } }, { path: '/backstage', component: () => import('../views/serve/backstage'), - // meta: { title: '服务配置' } }, { path: '/addModel', component: () => import('../views/serve/addModel'), - // meta: { title: '服务配置' } }, { path: '/addconfigure', component: () => import('../views/serve/AddConfigure.vue'), - // meta: { title: '新增配置' } }, { path: '/projectList', component: () => import('../views/serve/projectList.vue'), - // meta: { title: '项目管理' } }, { path: '/projectAdd', component: () => import('../views/serve/projectAdd.vue'), - // meta: { title: '项目配置' } }, { path: '/curriculum', component: () => import('../views/course/Curriculum.vue'), - // meta: { title: '课程管理' } }, { path: '/addcurriculum', component: () => import('../views/course/AddCurriculum.vue'), - // meta: { title: '新建课程' } }, { path: '/contentSettings', component: () => import('../views/course/contentSettings.vue'), - // meta: { title: '内容设置' } }, { path: '/addlink', component: () => import('../views/course/AddLink.vue'), - // meta: { title: '添加环节' } }, { path: '/data', component: () => import('../views/data/Data.vue'), - // meta: { title: '数据管理' } }, { path: '/match', component: () => import('../views/match/list'), - // meta: { title: '数据管理' } }, { path: '/addMatch', component: () => import('../views/match/add'), - // meta: { title: '数据管理' } }, { path: '/matchManage', component: () => import('../views/match/manage'), - // meta: { title: '数据管理' } }, { path: '/noticeDetail', component: () => import('../views/match/manage/noticeDetail'), - // meta: { title: '数据管理' } }, { path: '/matchArchList', component: () => import('../views/match/manage/matchArchList'), - // meta: { title: '数据管理' } }, { path: '/matchRank', component: () => import('../views/match/manage/matchRank'), - // meta: { title: '数据管理' } }, { - path: '/matchReport', - component: () => import('../views/match/manage/matchReport'), - // meta: { title: '数据管理' } + path: '/trialReport', + component: () => import('../views/match/manage/trialReport'), + }, + { + path: '/theoryReport', + component: () => import('../views/match/manage/theoryReport'), }, { path: '/matchInfo', component: () => import('../views/match/manage/matchInfo'), - // meta: { title: '数据管理' } }, { path: `/theoreticalCourse`, @@ -190,32 +166,26 @@ let router = new Router({ { path: '/system', component: () => import('../views/system'), - // meta: { title: '数据管理' } }, { path: '/manageLog', component: () => import('../views/system/manageLog'), - // meta: { title: '数据管理' } }, { path: '/addLog', component: () => import('../views/system/addLog'), - // meta: { title: '数据管理' } }, { path: '/permission', component: () => import('../views/customer/Permission.vue'), - // meta: { title: '应用权限', permission: true } }, { path: '/person', component: () => import('../views/setting'), - // meta: { title: '个人中心' } }, { path: '/parner', component: () => import('../views/parner'), - // meta: { title: '个人中心' } }, { path: '/parnerOperation', diff --git a/src/utils/api.js b/src/utils/api.js index bc10dfb..24df619 100644 --- a/src/utils/api.js +++ b/src/utils/api.js @@ -344,6 +344,7 @@ export default { libraryList: `exam/exam/paperLibrary/libraryList`, examPaperList: `exam/exam/paper/examPaperList`, copyExamPaper: `exam/exam/paper/copyExamPaper`, + getDetailedExamScores: `exam/exam/paper/getDetailedExamScores`, // 赛事内容 addCompetitionContent: `competition/competition/content/addCompetitionContent`, diff --git a/src/views/match/manage/matchArchList.vue b/src/views/match/manage/matchArchList.vue index 57cb2af..12aa69f 100644 --- a/src/views/match/manage/matchArchList.vue +++ b/src/views/match/manage/matchArchList.vue @@ -1,289 +1,166 @@