diff --git a/src/api/apis/answerSheet.js b/src/api/apis/answerSheet.js index d25ecd6..9208541 100644 --- a/src/api/apis/answerSheet.js +++ b/src/api/apis/answerSheet.js @@ -4,9 +4,17 @@ import answerSheet from "../urls/answerSheet" export default { // 答题卡列表 - fetchAnswerList(data) { + fetchPaperList(data) { return service({ - url: answerSheet.answerList, + url: answerSheet.paperList, + method: 'POST', + data + }) + }, + // 答题卡详情 + fetchPaperDetail(data) { + return service({ + url: answerSheet.paperDetail, method: 'POST', data }) @@ -44,41 +52,33 @@ export default { }) }, // 添加测验类型 - addAnswerTypeName(data) { + addPaperType(data) { return service({ - url: answerSheet.addAnswerTypeName, + url: answerSheet.addPaperType, method: 'POST', data }) }, // 保存答题卡 - saveAnswerSheet(data) { + addPaper(data) { return service({ - url: answerSheet.saveAnswerSheet, + url: answerSheet.addPaper, method: 'POST', data }) }, // 删除答题卡 - removeAnswerSheet(data) { - return service({ - url: answerSheet.removeAnswerSheet, - method: 'POST', - data - }) - }, - // 恢复答题卡 - useAnswerSheet(data) { + delPaper(data) { return service({ - url: answerSheet.useAnswerSheet, + url: answerSheet.delPaper, method: 'POST', data }) }, - // 恢复答题卡 - updateAnswerSheet(data) { + // 修改答题卡 + modifyPaper(data) { return service({ - url: answerSheet.updateAnswerSheet, + url: answerSheet.modifyPaper, method: 'POST', data }) diff --git a/src/api/apis/ask.js b/src/api/apis/ask.js index 445bfd1..345d578 100644 --- a/src/api/apis/ask.js +++ b/src/api/apis/ask.js @@ -3,7 +3,7 @@ import service from "../axios" import askUrls from "../urls/login" export default { - // 账号密码登陆 + // 随堂问列表 fetchQuizList(data) { return service({ url: askUrls.quizList, @@ -11,4 +11,12 @@ export default { data }) }, + // 随堂问详情 + quizDetail(data) { + return service({ + url: askUrls.quizDetail, + method: 'POST', + data + }) + }, } diff --git a/src/api/apis/login.js b/src/api/apis/login.js index 32add82..c806b1c 100644 --- a/src/api/apis/login.js +++ b/src/api/apis/login.js @@ -4,11 +4,25 @@ import loginUrls from "../urls/login" export default { // 账号密码登陆 - fetchLogin(data) { + login(data) { return service({ url: loginUrls.login, method: 'POST', data }) }, + ssoLogin(data) { + return service({ + url: loginUrls.ssoLogin, + method: 'POST', + data + }) + }, + logout(data) { + return service({ + url: loginUrls.logout, + method: 'POST', + data + }) + }, } diff --git a/src/api/axios.js b/src/api/axios.js index 5b714b9..03f3de2 100644 --- a/src/api/axios.js +++ b/src/api/axios.js @@ -37,7 +37,7 @@ service.interceptors.response.use( store.commit('delTokenSources', response.config.cancelToken) } if (response.status == 200) { - Cookies.set("access_token", response.data.message, { expires: 1 / 12 }) + // Cookies.set("access_token", response.data.message, { expires: 1 / 12 }) // console.log(response.status) if (res.code == 999) { if (!location.href.includes('localhost')) { @@ -56,7 +56,7 @@ service.interceptors.response.use( } return } else { - Cookies.set("access_token", response.data.message, { expires: 1 / 12 }) + // Cookies.set("access_token", response.data.message, { expires: 1 / 12 }) } } return Promise.resolve(response) @@ -72,20 +72,23 @@ service.interceptors.response.use( } Message.closeAll() const { + data, status } = error.response if (status === 403 || status === 401) { Message({ - message: "未登录或登录超时,即将跳转到登录页面", + message: data.info||"未登录或登录超时,即将跳转到登录页面", type: 'error', duration: 3 * 1000 }) - router.push({ - path: '/login', - query: { - url: window.location.href - } - }) + if (!window.location.href.includes('login')) { + router.push({ + path: '/login', + query: { + url: window.location.href + } + }) + } return } return Promise.reject(error.response) // 返回接口返回的错误信息 diff --git a/src/api/urls/answerSheet.js b/src/api/urls/answerSheet.js index 62c18b2..6fd30a2 100644 --- a/src/api/urls/answerSheet.js +++ b/src/api/urls/answerSheet.js @@ -1,22 +1,22 @@ export default { // 答题卡列表 - answerList: "/apis/answerList", - // 测验类型 - typeNames: "/apis/typeNames", + paperList: "/api_html/teaching/paperList", + // 答题卡详情 + paperList: "/api_html/teaching/paperDetail", // 查找年级 - gradeList: "/apis/gradeList", + gradeList: "/api_html/teaching/gradeList", + // 测验类型 + typeNames: "/api_html/teaching/tagList", // 查找班级 - classList: "/apis/classList", + classList: "/api_html/teaching/classList", // 查找科目 - subjectList: "/apis/subjectList", - // 天假答题卡测验类型 - addAnswerTypeName: "/apis/addAnswerTypeName", + subjectList: "/api_html/teaching/subjectList", + // 添加答题卡测验类型 + addPaperType: "/api_html/teaching/addPaperType", // 保存答题卡 - saveAnswerSheet: "/apis/saveAnswerSheet", + addPaper: "/api_html/teaching/addPaper", // 删除答题卡 - removeAnswerSheet: "/apis/removeAnswerSheet", - // 恢复使用答题卡 - useAnswerSheet: "/apis/useAnswerSheet", + delPaper: "/api_html/teaching/delPaper", // 更新答题卡 - updateAnswerSheet: "/apis/updateAnswerSheet", + modifyPaper: "/api_html/teaching/modifyPaper", } \ No newline at end of file diff --git a/src/api/urls/ask.js b/src/api/urls/ask.js index 2b54532..50ce0d2 100644 --- a/src/api/urls/ask.js +++ b/src/api/urls/ask.js @@ -1,5 +1,7 @@ export default { - // 账号密码登陆 + // 随堂问列表 quizList: "/web/quizList", + // 随堂问详情 + quizDetail: "/web/quizDetail", } diff --git a/src/api/urls/login.js b/src/api/urls/login.js index 27b3e13..5710a7c 100644 --- a/src/api/urls/login.js +++ b/src/api/urls/login.js @@ -2,5 +2,6 @@ export default { // 账号密码登陆 login: "/web/login", - ssoLogin: "/sso/login" + ssoLogin: "/sso/login", + logout: "/api_html/logout" } diff --git a/src/components/userForm/editPassword.vue b/src/components/userForm/editPassword.vue deleted file mode 100644 index 33c6577..0000000 --- a/src/components/userForm/editPassword.vue +++ /dev/null @@ -1,130 +0,0 @@ - - - - - diff --git a/src/router/permission.js b/src/router/permission.js index ffe662f..2d5feeb 100644 --- a/src/router/permission.js +++ b/src/router/permission.js @@ -92,47 +92,3 @@ router.onError((error) => { const targetPath = router.history.pending.fullPath; if (isChunkLoadFailed) { router.replace(targetPath); } }); - - - -// // 真实使用 -// import fetchUser from "@/api/apis/user" -// -// router.beforeEach((to, from, next) => { -// if (store.getters.token && store.getters.token !== "undefined") { -// // store.dispatch('setToken', store.getters.token) -// if (to.path === "/login") { -// next({path: "/"}) -// } else { -// if (!store.getters.info) { -// (async function getAddRouters () { -// fetchUser.fetchGetUserInfo().then(async function (response) { -// await store.dispatch("setInfo", response.data) - // await store.dispatch("newRoutes", store.getters.info.authorityRouter) -// await router.addRoutes(store.getters.addRouters) -// next({path: "/index"}) -// }).catch(function (error) { -// console.log(error) -// }) -// }()) -// } else { -// let is404 = to.matched.some(record => { -// console.log(record) -// if (record.meta.role) { -// return store.getters.info.authorityRouter === -1 -// } -// }) -// if (is404) { -// next({path: "/404"}) -// return false -// } -// next() -// } -// } -// } else { -// if (to.path === "/login") { -// next() -// } -// next({path: "/login"}) -// } -// }) diff --git a/src/store/index.js b/src/store/index.js index 3ec6c73..3a115b3 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -64,7 +64,7 @@ const store = new Vuex.Store({ let loginForm = {} loginForm.username = params.username; loginForm.password = encryptLoginPassword(params.password); - request.fetchLogin({ ...loginForm }).then(res => { + request.login({ ...loginForm }).then(res => { let response = res.data if (response.status == 0) { const userInfo = { ...response.data } @@ -92,7 +92,7 @@ const store = new Vuex.Store({ }) }, permissions({ state, commit }, that) { - // request.fetchLogin(that.loginForm).then(res => { + // request.login(that.loginForm).then(res => { // if (res.status == 200) { commit("setToken", "xxxx") commit("setInfo", { diff --git a/src/views/ask/analysis.vue b/src/views/ask/analysis.vue index 83e3776..e2bf2e6 100644 --- a/src/views/ask/analysis.vue +++ b/src/views/ask/analysis.vue @@ -5,23 +5,161 @@ 单课分析 -
- 答题表现 - 学生问答表现 - 学生互动表现 - 签到明细 +
+
+ 答题表现 + 学生问答表现 + 学生互动表现 + 签到明细 +
+ + + + + + + + + + + +
\ No newline at end of file diff --git a/src/views/ask/index.vue b/src/views/ask/index.vue index abc3f30..8b80103 100644 --- a/src/views/ask/index.vue +++ b/src/views/ask/index.vue @@ -774,7 +774,7 @@ export default { } }, async saveAnswer(){ - // const { data, code, message } = await this.$request.updateAnswerSheet({...this.form}); + // const { data, code, message } = await this.$request.modifyPaper({...this.form}); // if (code == 0) { this.dialogVisible = false // } else { diff --git a/src/views/examinationPaper/add.vue b/src/views/examinationPaper/add.vue index ae24573..d420b68 100644 --- a/src/views/examinationPaper/add.vue +++ b/src/views/examinationPaper/add.vue @@ -37,7 +37,7 @@ > - + - - + + - - + + 任课班级分享 全年级分享 @@ -105,7 +105,7 @@ 下一步 @@ -122,9 +122,7 @@

- 确 定 + 确 定 取 消
@@ -218,7 +216,7 @@

{{ option }} @@ -394,7 +392,7 @@

diff --git a/src/views/examinationPaper/edit.vue b/src/views/examinationPaper/edit.vue index cf564d1..40a078b 100644 --- a/src/views/examinationPaper/edit.vue +++ b/src/views/examinationPaper/edit.vue @@ -104,6 +104,7 @@ export default { data() { return { + questionList:[], form: { //答题卡详情 title: "", @@ -128,7 +129,7 @@ export default { }, }, created() { - this.form = this.$route.query.form && JSON.parse(this.$route.query.form); + this._QueryDetail() }, methods: { linkBack() { @@ -199,17 +200,36 @@ export default { sub.correctAnswer = arrs.sort().join(""); } }, - save(){ - //删除答题卡 - // const { data, code, message } = await this.$request.updateAnswerSheet({...this.form}); - // if (code == 0) { + async save(){ + let questionList = [] + //更新答题卡 + const { data, status, message } = await this.$request.modifyPaper({ + paperId:this.form.id, + questionList:questionList + }); + if (status == 0) { this.$router.push({ path:"/examinationPaper" }) - // } else { - // this.$message.error(message); - // } - } + } else { + this.$message.error(message); + } + }, + async _QueryDetail() { + //查询年级列表 + const { data, status, message } = await this.$request.fetchPaperDetail({ + paperId:this.$route.query.paperId + }); + if (status == 0) { + this.form = deepClone(data) + this.questionList = deepClone(data.questionList) + this.form.questionList.map(item=>{ + item.score = "" + }) + } else { + this.$message.error(message); + } + }, }, }; diff --git a/src/views/examinationPaper/index.vue b/src/views/examinationPaper/index.vue index 17184ce..1715c7c 100644 --- a/src/views/examinationPaper/index.vue +++ b/src/views/examinationPaper/index.vue @@ -19,23 +19,23 @@

- + + + @@ -49,15 +49,15 @@ {{ item }} @@ -76,7 +76,7 @@

- 另有25份已经归档的答题卡, + 另有{{ archivedTotal }}份已经归档的答题卡, 点击查看>>

    @@ -87,29 +87,29 @@

    - {{ item.title }} {{ item.typeName }} + {{ item.title }} {{ item.tag }}

    - 总题数:{{ item.answerNum }} + 总题数:{{ item.questionNum }} | - 预计时长:{{ item.time }} + 预计时长:{{ item.examsDuration }} | 授课端同步: {{ - `${clazzChild}班${ + `${clazzChild.className}班${ indexs != item.aboutClazz.length - 1 ? "、" : "" }` }} -

    - {{ item.teacher }}|{{ item.date }} + {{ item.realName }}|{{ item.modifiedTime }}

    @@ -134,7 +134,9 @@ icon="el-icon-more" > - 修改分享范围 + 修改分享范围 复制 归档 @@ -144,11 +146,6 @@
- - - - - 任课班级分享 @@ -169,62 +166,23 @@ export default { name: "examinationPaper", data() { return { - props: { multiple: true, checkStrictly: true }, - options: [ - { - value: 1, - label: "一年级", - children: [ - { - value: 2, - label: "二班", - }, - { - value: 3, - label: "三班", - }, - ], - }, - { - value: 4, - label: "二年级", - children: [ - { - value: 5, - label: "二班", - }, - { - value: 6, - label: "三班", - }, - ], - }, - ], + userId: "", dialogVisible: false, query: { - gradeClass: [], - subjectId: "0", - typeName: "周测", + classId: "", + subjectName: "", + tagId: "", title: "", }, - classList: [ - { - label: "2003班", - value: "2003", - }, - ], - subjectList: [ - { - label: "语文", - value: "0", - }, - ], - typeList: ["周测"], + classList: [], + subjectList: [], + typeList: [], + archivedTotal: 0, //已归档答题卡数量 tableData: [ { title: "数学样例试卷202211-324654", id: "1062837", - typeName: "周测", + tag: "周测", answerNum: 45, time: 90, aboutClazz: [203, 204], @@ -246,7 +204,7 @@ export default { score: 1, partScore: 0, selectNum: 4, - answerOptions: ["A", "B", "C", "D"], + answerOptions: "A,B,C,D", correctAnswer: "B", }, ], @@ -256,7 +214,7 @@ export default { { title: "数学样例试卷202211-4180949", id: "1062838", - typeName: "周测", + tag: "周测", answerNum: 45, time: 90, aboutClazz: [203, 204], @@ -288,14 +246,22 @@ export default { ], shareForm: { id: "", - grade: "", share: 1, }, shareRulesForm: { share: [{ required: true, message: "选择分享范围", trigger: "blur" }], }, + page: 1, + size: 20, }; }, + async created() { + this.userId = this.$store.getters.info.uid || ""; + await this._QueryClassList(); + await this._QuerySubjectList(); + this._QueryData(); + this._QueryTypeList(); + }, methods: { toAdd(query) { let routerItem = { @@ -308,7 +274,7 @@ export default { this.$router.push({ path: "/examinationPaperEdit", query: { - form: JSON.stringify(item), + paperId: item.id, }, }); }, @@ -319,13 +285,12 @@ export default { case 1: //修改分享范围 that.shareForm.id = item.id; - that.shareForm.grade = item.grade; that.shareForm.share = item.share || 1; that.dialogVisible = true; break; case 2: //复制 - that.toAdd({ type: 2, form: JSON.stringify(item) }); + that.toAdd({ type: 2, paperId: item.id }); break; case 3: //归档 @@ -335,51 +300,61 @@ export default { }, async saveShare() { //修改分享范围 - // const { data, code, message } = await this.$request.fetchAnswerList({ - // ...this.shareForm, - // }); - // this.loading = false; - // if (code === 0) { - this.shareForm.id = ""; - this.shareForm.grade = ""; - this.shareForm.share = 1; - dialogVisible = false; - // } else { - // this.$message.error(message); - // } + const { data, status, message } = await this.$request.modifyPaper({ + paperId: that.shareForm.id, + sharingType: that.shareForm.share, + }); + this.loading = false; + if (status === 0) { + this.shareForm.id = ""; + this.shareForm.share = 1; + dialogVisible = false; + } else { + this.$message.error(message); + } }, async recovery(item) { //归档 - // const { data, code, message } = await this.$request.fetchAnswerList({ - // ...this.shareForm, - // }); - // if (code === 0) { - this.tableData = this.tableData.filter((items) => { - return items.id != item.id; + const { data, status, message } = await this.$request.modifyPaper({ + paperId: item.id, + status: 2, }); - // } else { - // this.$message.error(message); - // } + if (status === 0) { + let type = this.query.title ? 1 : 0; + this.page = 1; + this._QueryData(type); + } else { + this.$message.error(message); + } }, - async changeGrade() { - //切换班级 + //切换班级 + async changClazz() { await this._QuerySubjectList(); - this._QueryData(); + this._QueryData(false); }, - async changClazz() {}, // 查找答题卡类型 async _QueryTypeList() { - const { data, code, message } = await this.$request.fetchTypeNames(); - if (code === 0) { - this.typeList = [...data.typeNames] || []; + const { data, status, message } = await this.$request.fetchTypeNames(); + if (status === 0) { + this.typeList = + data.subjectNames.map((item) => { + return { + value: item.tagId, + label: item.tag, + }; + }) || []; + this.subjectNames.unshift({ + value: "", + label: "--", + }); } else { this.$message.error(message); } }, // 查找班级 async _QueryClassList() { - const { data, code, message } = await this.$request.fetchClassList(); - if (code === 0) { + const { data, status, message } = await this.$request.fetchClassList(); + if (status === 0) { if (!!data.list) { this.classList = data.list.map((item) => { return { @@ -395,14 +370,14 @@ export default { }, // 查找科目 async _QuerySubjectList() { - const { data, code, message } = await this.$request.fetchSubjectList({ + const { data, status, message } = await this.$request.fetchSubjectList({ clazzId: this.query.clazzId, }); - if (code === 0) { - this.subjectList = data.list.map((item) => { + if (status === 0) { + this.subjectList = data.subjectNames.map((item) => { return { - value: item.subjectId, - label: item.subjectName, + value: item, + label: item, }; }); this.query.clazzId = this.subjectList[0]?.value; @@ -418,8 +393,8 @@ export default { query = { ...this.query }; } else { query = { title: this.query.title }; - this.query.typeName = ""; - this.query.subjectId = ""; + this.query.tagId = ""; + this.query.subjectName = ""; } query.clazzId = this.query.clazzId; for (let key in query) { @@ -434,11 +409,14 @@ export default { return; } this.loading = true; - const { data, code, message } = await this.$request.fetchAnswerList({ + const { data, status, message } = await this.$request.fetchPaperList({ ...query, + status: 1, + page: this.page, + size: this.size, }); this.loading = false; - if (code === 0) { + if (status === 0) { this.total = data.total; this.tableData = (data.list && [...data.list]) || []; } else { diff --git a/src/views/examinationPaper/recycle.vue b/src/views/examinationPaper/recycle.vue index 39a994a..07f0953 100644 --- a/src/views/examinationPaper/recycle.vue +++ b/src/views/examinationPaper/recycle.vue @@ -7,7 +7,7 @@
- {{ data.label }} ({{ data.children.length }}) --> + + + + - - {{ item.label }} + >{{ item }} @@ -74,19 +86,18 @@

- {{ item.title }} {{ item.typeName }} + {{ item.title }} {{ item.tag }}

{{ item.gradeName }} | - 总题数:{{ item.answerNum }} - | - 预计时长:{{ item.time }} + 总题数:{{ item.questionNum }} | + 预计时长:{{ item.examsDuration }}

- {{ item.teacher }}|{{ item.date }} + {{ item.realName }}|{{ item.modifiedTime }}

@@ -97,7 +108,7 @@ size="mini" circle icon="fa fa-mail-reply" - @click="have(item)" + @click="modify(item)" > @@ -152,17 +163,29 @@ export default { }, ], query: { - gradeClass: [], - type: "", - subjectId: "", + classId: 2003, + subjectName: "语文", + tagId: 1, title: "", }, - gradeList: ["二年级"], + classList: [ + { + label: "2003班", + value: 2003, + }, + ], + subjectList: [ + { + label: "语文", + value: "语文", + }, + ], typeList: [ - { label: "周测", value: 1 }, - { label: "月测", value: 2 }, + { + label: "周测", + value: 1, + }, ], - subjectList: [], tableData: [ { title: "数学样例试卷202211-324654", @@ -192,28 +215,42 @@ export default { total: 0, }; }, + async created() { + await this._QueryClassList(); + await this._QuerySubjectList(); + this._QueryTypeList(); + this._QueryData(false); + }, methods: { - have(obj) { - //删除答题卡 - // const { data, code, message } = await this.$request.useAnswerSheet(); - // if (code == 0) { - this.tableData = this.tableData.filter((item) => { - return obj.if != item.id; + async modify(obj) { + //恢复答题卡 + const { data, status, message } = await this.$request.modifyPaper({ + paperId: obj.id, + status: 2, }); - // } else { - // this.$message.error(message); - // } + if (status == 0) { + let type = this.query.title ? 1 : 0; + this._QueryData(type); + } else { + this.$message.error(message); + } }, - remove(obj) { + async remove(obj) { //删除答题卡 - // const { data, code, message } = await this.$request.removeAnswerSheet(); - // if (code == 0) { - this.tableData = this.tableData.filter((item) => { - return obj.if != item.id; + const { data, status, message } = await this.$request.delPaper({ + paperId: obj.id, }); - // } else { - // this.$message.error(message); - // } + if (status == 0) { + let type = this.query.title ? 1 : 0; + this._QueryData(type); + } else { + this.$message.error(message); + } + }, + //切换班级 + async changClazz() { + await this._QuerySubjectList(); + this._QueryData(false); }, async _QueryData(type) { //获取答题卡列表 @@ -232,58 +269,62 @@ export default { } } this.loading = true; - const { data, code, message } = await this.$request.fetchAnswerList({ + const { data, status, message } = await this.$request.fetchAnswerList({ ...query, }); this.loading = false; - if (code === 0) { + if (status === 0) { this.total = data.total; this.tableData = (data.list && [...data.list]) || []; } else { this.$message.error(message); } }, - // 查找答题卡类型 - async _QueryTypeList() { - const { data, code, message } = await this.$request.fetchTypeNames(); - if (code === 0) { - this.typeList = [...data.typeNames] || []; + // 查找班级 + async _QueryClassList() { + const { data, status, message } = await this.$request.fetchClassList(); + if (status === 0) { + if (!!data.list) { + this.classList = data.list.map((item) => { + return { + value: item.clazzId, + label: item.clazzName, + }; + }); + this.query.clazzId = this.classList[0]?.value; + } } else { this.$message.error(message); } }, - async changeGrade() { - // this._QueryData(); - // this._GradeList(); - // this._QuerySubjectList(); - }, - async _GradeList() { - //查询年级列表 - const { data, code, message } = await this.$request.fetchGradeList(); - if (code == 0) { - this.gradeList = [...data.gradeNames] || []; - this.query.gradeName = this.gradeList[0]; - this._QuerySubjectList(this.gradeList[0]); + // 查找科目 + async _QuerySubjectList() { + const { data, status, message } = await this.$request.fetchSubjectList({ + clazzId: this.query.clazzId, + }); + if (status === 0) { + this.subjectList = data.subjectNames.map((item) => { + return { + value: item, + label: item, + }; + }); + this.query.clazzId = this.subjectList[0]?.value; } else { this.$message.error(message); } }, - async _QuerySubjectList(grade, dont) { - //查询科目列表 - let param = {}; - if (grade) { - param.gradeName = grade; - } - const { data, code, message } = await this.$request.fetchSubjectList( - param - ); - if (code === 0) { - this.subjectList = data.list.map((item) => { - return { - value: item.subjectId, - label: item.subjectName, - }; - }); + // 查找答题卡类型 + async _QueryTypeList() { + const { data, status, message } = await this.$request.fetchTypeNames(); + if (status === 0) { + this.typeList = + data.subjectNames.map((item) => { + return { + value: item.tagId, + label: item.tag, + }; + }) || []; } else { this.$message.error(message); } diff --git a/src/views/index/mainIndex.vue b/src/views/index/mainIndex.vue index 1dc53d8..b5bb9c2 100644 --- a/src/views/index/mainIndex.vue +++ b/src/views/index/mainIndex.vue @@ -1,6 +1,6 @@