diff --git a/public/static/课件模板.docx b/public/static/课件模板.docx index c26e1ac..25e2dd4 100644 --- a/public/static/课件模板.docx +++ b/public/static/课件模板.docx diff --git a/src/App.vue b/src/App.vue index 5aef7fe..6561d77 100644 --- a/src/App.vue +++ b/src/App.vue @@ -13,88 +13,84 @@ export default { mounted() { }, - created() { - this.$nextTick(() => { + methods: { + _reSize() { + const $app = this.$refs.app; - // 设置 屏幕 百分比 尺寸 适配 - const standardScale = "100%" / "100%"; - window.addEventListener( - "resize", - _.debounce(function () { - const docHeight = document.body.clientHeight; + const standardScale = "100%" / "100%"; - const docWidth = document.body.clientWidth; + const docHeight = document.body.clientHeight; - if (docWidth < 1700) { + const docWidth = document.body.clientWidth; + + if (docWidth < 1700) { + const currentScale = docHeight / docWidth; - const currentScale = docHeight / docWidth; + let [scale, translate] = [0, 0]; + if (currentScale < standardScale) { + // 以高度计算 + scale = docHeight / 1080; - let [scale, translate] = [0, 0]; + const shouleWidth = 1920 * scale; - if (currentScale < standardScale) { - // 以高度计算 - scale = docHeight / 1080; + const offsetWidth = docWidth - shouleWidth; - const shouleWidth = 1920 * scale; + translate = + offsetWidth > 0 ? `translate(${offsetWidth / 2}px, 0)` : ""; - const offsetWidth = docWidth - shouleWidth; + } else { + // 以宽度计算 + scale = docWidth / 1920; - translate = - offsetWidth > 0 ? `translate(${offsetWidth / 2}px, 0)` : ""; - - } else { - // 以宽度计算 - scale = docWidth / 1920; + const shouleHeight = 1080 * scale; - const shouleHeight = 1080 * scale; + const offsetHeight = docHeight - shouleHeight; - const offsetHeight = docHeight - shouleHeight; + translate = + offsetHeight > 0 ? `translate(0, ${offsetHeight / 2}px)` : ""; + } - translate = - offsetHeight > 0 ? `translate(0, ${offsetHeight / 2}px)` : ""; - } - - if (docHeight <= 700) { + if (docHeight <= 700) { - $app.style.cssText = ` + $app.style.cssText = ` transform: scale(${scale}) ${translate}; transform-origin: top left; min-width: 1920px; - min-height: 850px; - `; - } - else if (docHeight <= 750) { - - $app.style.cssText = ` + min-height: 885px; + `; + } + else if (docHeight <= 780) { + + $app.style.cssText = ` transform: scale(${scale}) ${translate}; transform-origin: top left; min-width: 1920px; - min-height:920px; - `; - } - else { - $app.style.cssText = ` + min-height:910px; + `; + } + else { + $app.style.cssText = ` transform: scale(${scale}) ${translate}; transform-origin: top left; min-width: 1920px; - min-height:1080px; - `; - } + min-height:1045px; + `; + } - } else { - $app.style.cssText = ''; - } - }), - 300 - ); + } else { + $app.style.cssText = ''; + } + }, + }, + created() { + let that = this; + this.$nextTick(() => { if (document.createEvent) { - var event = document.createEvent("HTMLEvents"); - event.initEvent("resize", true, true); - window.dispatchEvent(event); + that._reSize(); } else if (document.createEventObject) { - window.fireEvent("onresize"); + that._reSize(); } }); } @@ -106,7 +102,7 @@ export default { body { margin: 0px; padding: 0px; - font-family: Microsoft YaHei, Helvetica Neue, Helvetica, PingFang SC, Hiragino Sans GB, SimSun, sans-serif; + font-family: Microsoft YaHei, Helvetica Neue, Helvetica, PingFang SC, Hiragino Sans GB, SimSun, sans-serif; -webkit-font-smoothing: antialiased; } diff --git a/src/api/apis/apis.js b/src/api/apis/apis.js index 9507ba0..d099a45 100644 --- a/src/api/apis/apis.js +++ b/src/api/apis/apis.js @@ -23,12 +23,22 @@ const downService = (url, data) => { responseType: 'arraybuffer', }); } -export default { +export default { // 知识点 gKnowledge(section, subject) { - return defaltService(setUpUrls.gtestExamReport, { - ...subject, ...section - }) + var requestParams = []; + if (section) { + requestParams.push("section=" + section); + } + if (subject) { + requestParams.push("subject=" + subject); + } + var requestUrl = setUpUrls.gKnowledge + (requestParams.length >= 1 ? "?" + requestParams.join("&") : ""); + return defaltGetService(requestUrl) + }, + // 年级组长-成绩概要 + gclassdiffReport(data) { + return defaltService(setUpUrls.gclassdiffReport, data) }, // 年级组长-成绩测验单 gTestExamReport(data) { @@ -213,6 +223,9 @@ export default { periodReportList(data) { return defaltService(setUpUrls.periodReportList, data) }, + classdiffreport(data) { + return defaltService(setUpUrls.classdiffreport, data) + }, //任课老师-查询阶段问答报表 phaseAnswerReport(data) { return defaltService(setUpUrls.phaseAnswerReport, data) @@ -680,6 +693,9 @@ export default { pModifyPaper(data) { return defaltService(setUpUrls.pModifyPaper, data) }, + pModifyPaperNew(data) { + return defaltService(setUpUrls.pModifyPaperNew, data) + }, // 删除答题卡 pDelPaper(data) { return defaltService(setUpUrls.pDelPaper, data) diff --git a/src/api/axios.js b/src/api/axios.js index 89387b9..70276fe 100644 --- a/src/api/axios.js +++ b/src/api/axios.js @@ -3,7 +3,7 @@ import NProgress from "nprogress"; import { Message } from "element-ui"; import router from "@/router/index"; import store from "@/store"; -import conf from "../config/index"; // 路径配置 +import conf from "@/config/index"; // 路径配置 import { getURLParams } from "@/utils"; let code = getURLParams("code") || getURLParams("dockkey") || localStorage.getItem("csCode") || ""; diff --git a/src/api/urls/apis.js b/src/api/urls/apis.js index 85e46ef..b433de8 100644 --- a/src/api/urls/apis.js +++ b/src/api/urls/apis.js @@ -1,7 +1,7 @@ export default { - // 年级组长-查询报表列表 - gKnowledge: "/api_html/knowledge/list", + // 年级组长-查询报表列表 + gKnowledge: "/knowledge/list", // 年级组长-查询报表列表 gListExamReport: "/api_html/grade/manager/listExamReport", // 年级组长-查询管理的班级 @@ -17,6 +17,8 @@ export default { gExportPhaseInteractiveReport: "/api_html/grade/manager/exportPhaseInteractiveReport", // 年级组长-成绩测验单 gtestExamReport: "/api_html/grade/manager/testExamReport", + // 年级组长-考试概要 + gclassdiffReport: "/api_html/grade/manager/classdiffreport", // 年级组长-试题分析 gpaperExamReport: "/api_html/grade/manager/paperExamReport", // 年级组长-学生成绩排行 @@ -62,13 +64,15 @@ export default { //任课老师-查询管理班级 tClassList: "/api_html/teaching/classList", + //任老师-报表详情 + classdiffreport: "/api_html/teaching/classdiffreport", tpaperExamReport: "/api_html/teaching/paperExamReport", // 任课老师-学生成绩排行 tstudentExamReport2: "/api_html/teaching/studentExamReport2", // 任课老师-班级情况对比 tclassdiffExamReport: "/api_html/teaching/classdiffExamReport", tClassFromGrade: "/api_html/teaching/grade/classList", - tClassGrade:'/api_html/teaching/grade', + tClassGrade: '/api_html/teaching/grade', //任课老师-测验成绩单 tTestExamReport: "/api_html/teaching/testExamReport", //任课老师-查询答题卡详情 @@ -82,7 +86,7 @@ export default { phaseAnswerReport: "/api_html/teaching/phaseAnswerReport", //任课老师-查询阶段互动报表 phaseInteractiveReport: "/api_html/teaching/phaseInteractiveReport", - exportPhaseExamReport: "/api_html/teaching/exportPhaseExamReport", + exportPhaseExamReport: "/api_html/teaching/exportPhaseExamReport", //任课老师-查询课时题目列表 periodQuestionList: "/api_html/teaching/periodQuestionList", //任课老师-设置课时报表答案 @@ -93,6 +97,8 @@ export default { periodQuestionReport: "/api_html/teaching/periodQuestionReport", //任课老师-查询课时学生答题明细 periodStudentReport: "/api_html/teaching/periodStudentReport", + // 修改答题卡 + pModifyPaperNew: "/api_html/teaching/modifyPaperNew", //任课老师-分页查询即时测报表 examReportList: "/api_html/teaching/examReportList", //任课老师-查询阶段测练报表 diff --git a/src/assets/css/index.scss b/src/assets/css/index.scss index 62f2730..8e42948 100644 --- a/src/assets/css/index.scss +++ b/src/assets/css/index.scss @@ -347,6 +347,26 @@ ul { // 默认实体 .default-body { + + .anwser-column { + border: 1px solid #ebeef5; + + padding: 0px !important; + + .cell { + height: 100%; + width: calc(100% - 2px); + } + + .red { + height: 100%; + width: 100%; + background: #FBEEDC; + color: red; + display: block; + } + } + font-size: 14px; font-weight: 400; color: #303133; @@ -386,7 +406,7 @@ ul { } tr, - td { + td:not(.anwser-column) { height: 40px; padding: 5px 0px !important; border: 1px solid #ebeef5; @@ -432,6 +452,12 @@ ul { line-height: 40px; } + .el-tag__close { + height: 100% !important; + line-height: 1.2; + min-width: 20px; + } + .filter-input, .filter-select { width: 13%; @@ -464,39 +490,108 @@ ul { } } -@media screen and (max-width: 1921px) and (max-height: 1081px) { - * :not(.p1, .fa, .el-button, .el-icon-upload, h1, h2, h3, h4, h5, h6) { +@media screen and (max-width: 1200px) { + .flex-content { + padding: 55px !important; + } + + .flex-btn { + position: fixed !important; + z-index: 999 !important; + bottom: 30px !important; + padding: 10px 10px !important; + right: 0px !important; + background-color: white !important; + width: calc(100% - 280px) !important; + } +} + +@media screen and (max-width: 1500px) and (min-width: 1201px) { + .flex-content { + padding: 55px !important; + } + + .flex-btn { + position: fixed !important; + z-index: 999 !important; + bottom: 30px !important; + padding: 10px 10px !important; + right: 0px !important; + background-color: white !important; + width: calc(100% - 280px) !important; + } +} + +@media screen and (min-width: 1501px) { + .flex-content { + padding: 25px !important; + } + + .flex-btn { + position: fixed !important; + z-index: 999 !important; + bottom: -10px !important; + padding: 10px 0px !important; + right: 30px !important; + background-color: white !important; + width: calc(100% - 280px) !important; + } + +} + + +@media screen and (max-width: 1920px) { + * :not(.p1, .fa, .el-button, .el-icon-upload, h1, h2, h3, h4, h5, h6, .el-progress__text) { + font-size: 18px !important; - .default-title { - font-size: 24px !important; + + + .default-body-detail * { + font-size: 15px !important; + + .cell { + padding-left: 2px !important; + padding-right: 2px !important; + } } - .el-button * { - font-size: 16px !important; + .default-title { + font-size: 24px !important; } - .el-select-dropdown__item * { + .el-select-dropdown__item *, + .small-button * { font-size: 16px !important; } .el-form :not(h1, h2, h3, h4, h5, h6), .el-dropdown-menu__item, - .el-cascader-node__label { + .el-form-item__error, + .el-dialog__body .el-checkbox *, + .el-checkbox__label { font-size: 16px !important; } - } } -@media screen and (min-width: 1921px) and (min-height: 1081px) { - * :not(.p1, .fa, .el-button, .el-icon-upload, h1, h2, h3, h4, h5, h6) { +@media screen and (min-width: 1921px) { + * :not(.p1, .fa, .el-button, .el-icon-upload, h1, h2, h3, h4, h5, h6, .el-progress__text) { font-size: 14px !important; + .default-body-detail * { + font-size: 13px !important; + + .cell { + padding-left: 4px !important; + padding-right: 4px !important; + } + } + .default-body .default-filter * { line-height: 38px !important; - } + } .card-content { width: 48% !important; @@ -506,13 +601,16 @@ ul { font-size: 24px !important; } - .el-select-dropdown__item * { + .el-select-dropdown__item *, + .small-button * { font-size: 12px !important; } .el-form :not(h1, h2, h3, h4, h5, h6), .el-dropdown-menu__item, - .el-cascader-node__label { + .el-form-item__error, + .el-dialog__body .el-checkbox *, + .el-checkbox__label { font-size: 12px !important; } diff --git a/src/components/upload.vue b/src/components/upload.vue index a8f9a36..1cab921 100644 --- a/src/components/upload.vue +++ b/src/components/upload.vue @@ -2,8 +2,9 @@
- +
@@ -11,10 +12,15 @@
+
+ +
+
diff --git a/src/views/basic/askTestQuestion/index.vue b/src/views/basic/askTestQuestion/index.vue index 34e02f2..3a090c0 100644 --- a/src/views/basic/askTestQuestion/index.vue +++ b/src/views/basic/askTestQuestion/index.vue @@ -33,7 +33,7 @@ 筛选 - + 今天 本周 本月 @@ -73,7 +73,7 @@ - 删除 @@ -109,7 +109,7 @@
-
预计时长:
+
考试时长:
{{ item.examsDuration }} 分钟
@@ -159,11 +159,12 @@ 查看 + 复制 - 删除 @@ -199,7 +200,7 @@
-
预计时长:
+
考试时长:
{{ item.examsDuration }} 分钟
@@ -231,45 +232,49 @@ - +
-

- 第一步: - - 或者导出菁优网试卷/组卷网(学科网)试卷; - 为保证第三方试卷导入成功,请注意参考导出示例: +

+ 第一步: + 导出菁优网试卷/组卷网(学科网)试卷;为保证第三方试卷导入成功,请注意参考导出示例: + +

菁优网示例如下:

- 菁优网示例 / + +

组卷网(学科网)示例如下:

- 组卷网(学科网)示例。 -

-

- 第一步: - 下载模板, - 导出菁优网试卷/组卷网(学科网)试卷;为保证第三方试卷导入成功,请注意参考导出示例: +

+ +
+ + 第一步: + 下载模板, + 或者导出菁优网试卷/组卷网(学科网)试卷;为保证第三方试卷导入成功,请注意参考导出示例: + +

菁优网示例如下:

- 菁优网示例 + - / +

组卷网(学科网)示例如下:

- 组卷网(学科网)示例。 + -

+

第二步:上传完成编辑好的试卷。

@@ -303,15 +308,15 @@ export default { sharedList: [], dataType: "1", importType: 0, - tabType: "0", - dateStatus: "-1", + tabType: "0", url: "/api_html/common/paper/upload", //上传文档地址 listPage: { page: 1, size: 8, total: 0, }, - query: { + query: { + dateStatus: "-1", title: "", class: null, subject: null, @@ -334,18 +339,19 @@ export default { this.listPage.page = 1; this._serach(); }, - 'dateStatus'(val) { + 'query.dateStatus'(val) { var dateRange = setDateRules(val); + this.query.dateRange = [dateRange.startDay, dateRange.endDay]; } }, - async created() { + async created() { this.dataType = location.href.endsWith("askPreparationQuestions") ? "1" : "2"; this.code = this.$store.getters.csCode; this.role = this.$store.getters.info.showRole || this.$store.getters.info.permissions[0].role; - this.dateStatus = "onWeek"; + this.query.dateStatus = "onWeek"; await this._loadQueryDatas(); }, methods: { @@ -534,6 +540,8 @@ export default { subjectName: "", tagId: "", title: "", + start: null, + end: null, type: this.dataType, //试卷类型 share: this.tabType, //分享类型 }; @@ -542,9 +550,10 @@ export default { queryParams.subjectName = this.query.subject; queryParams.tagId = this.query.tagId; queryParams.title = this.query.paper; - // queryParams.start = this.query.dateRange[0]; - // queryParams.end = this.query.dateRange[1]; - + if (this.query?.dateRange?.length >= 2) { + queryParams.start = this.query.dateRange[0] ?? ""; + queryParams.end = this.query.dateRange[1] ?? ""; + } const { data, status, info } = await fetchPaperList({ ...queryParams, status: 1, @@ -560,7 +569,7 @@ export default { this.createdCount = data?.myCount || 0; this.sharedCount = data?.gradeCount || 0; this.listPage.total = data.total; - + console.log('page', this.listPage) if (this.tabType == "0") { this.defaultList = []; if (data?.list) this.defaultList = [...data?.list]; @@ -696,7 +705,7 @@ export default { margin-top: 3px; } - width: 48.5%; + width: 48.4%; display: inline-block; margin-bottom: 10px; min-height: 190px; diff --git a/src/views/basic/askTestQuestion/report.vue b/src/views/basic/askTestQuestion/report.vue index 7394ec0..a103f96 100644 --- a/src/views/basic/askTestQuestion/report.vue +++ b/src/views/basic/askTestQuestion/report.vue @@ -4,18 +4,17 @@
{{ dataType == "1" ? '随堂问报表' : '即时测报表' }}
- - + - - - + + 全部科目 + +
- + + + + - - - - + + + + - + - - - @@ -65,7 +64,7 @@ + :testReportIds="apiDatas.testReportIds" :queryParams="query" @headerClick="_headerClick" />
新增 @@ -127,7 +126,7 @@ export default { }; }, watch: { - 'dateStatus'(val) { + 'dateStatus' (val) { if (val == -1) return; var dateRange = setDateRules(val); this.query.dateRange = [dateRange.startDay, dateRange.endDay]; @@ -136,15 +135,10 @@ export default { this.dataType = location.href.endsWith("askReport") ? "1" : "2"; this._loadQueryDatas(); }, - 'dataType'() { - if (this.dataType == "1") { - this.tabType = "0" - } - else if (this.dataType == "2") { - this.tabType = "0" - } + 'query'(value) { + }, - async 'query.subjects'(value) { + async 'query.subjects' (value) { if (this.role == "ROLE_BANZHUREN") { if (value.length == 1 && value[0] != '全部科目') { this.query.status = 'single'; @@ -153,7 +147,10 @@ export default { } else { this.query.status = 'multi'; - this.tabType = '0'; + if (this.role == 'ROLE_BANZHUREN') + this.tabType = '0'; + else + this.tabType = '1'; await this._serach(); } } @@ -169,13 +166,19 @@ export default { this.dateStatus = "onWeek"; await this._loadQueryDatas(); }, + computed: { + selectAll() { + return this.query?.subjects?.filter(f => f != '全部科目').length === this.subjectList.length; + } + }, methods: { - _opr() { - alert('opr'); - }, _dateChange() { this.dateStatus = -1; }, + selectAllHandle() { + if (this.selectAll) this.query.subjects = []; + else this.query.subjects = [...this.subjectList] + }, async _ReScore() { //重新记分 let { data, info, status } = await this.$request.reScore({ @@ -210,9 +213,7 @@ export default { return; } this.subjectList = data?.subjectNames ?? []; - if (this.role == "ROLE_BANZHUREN") { - this.subjectList.unshift("全部科目"); - } + this.query.subject = data?.subjectNames[0] ?? ""; this.checkedSubject = [...this.subjectList]; this.query.subjects = this.checkedSubject; @@ -263,7 +264,6 @@ export default { else { queryParams.subjectNames = [this.query.subject]; } - console.log(queryParams, this.query.subject) queryParams.startDay = this.query.dateRange ? this.query.dateRange[0] @@ -287,7 +287,9 @@ export default { this.$message.error(askReportResponse.info); return; } + this.apiDatas.askReportList = [...askReportResponse?.data?.list ?? []]; + this.apiDatas.askReportIds = [... this.apiDatas?.askReportList?.map((item) => item.id) ?? []]; if (this.$refs["askSummaryReport"]) { @@ -367,6 +369,22 @@ export default { };