Commit ee6e762832d1ccd2a0812e97fbbfa9b157e2495f
1 parent
b769660c
备题组卷借口数据对接调整
Showing
20 changed files
with
625 additions
and
540 deletions
src/api/apis/answerSheet.js
@@ -4,9 +4,17 @@ import answerSheet from "../urls/answerSheet" | @@ -4,9 +4,17 @@ import answerSheet from "../urls/answerSheet" | ||
4 | 4 | ||
5 | export default { | 5 | export default { |
6 | // 答题卡列表 | 6 | // 答题卡列表 |
7 | - fetchAnswerList(data) { | 7 | + fetchPaperList(data) { |
8 | return service({ | 8 | return service({ |
9 | - url: answerSheet.answerList, | 9 | + url: answerSheet.paperList, |
10 | + method: 'POST', | ||
11 | + data | ||
12 | + }) | ||
13 | + }, | ||
14 | + // 答题卡详情 | ||
15 | + fetchPaperDetail(data) { | ||
16 | + return service({ | ||
17 | + url: answerSheet.paperDetail, | ||
10 | method: 'POST', | 18 | method: 'POST', |
11 | data | 19 | data |
12 | }) | 20 | }) |
@@ -44,41 +52,33 @@ export default { | @@ -44,41 +52,33 @@ export default { | ||
44 | }) | 52 | }) |
45 | }, | 53 | }, |
46 | // 添加测验类型 | 54 | // 添加测验类型 |
47 | - addAnswerTypeName(data) { | 55 | + addPaperType(data) { |
48 | return service({ | 56 | return service({ |
49 | - url: answerSheet.addAnswerTypeName, | 57 | + url: answerSheet.addPaperType, |
50 | method: 'POST', | 58 | method: 'POST', |
51 | data | 59 | data |
52 | }) | 60 | }) |
53 | }, | 61 | }, |
54 | // 保存答题卡 | 62 | // 保存答题卡 |
55 | - saveAnswerSheet(data) { | 63 | + addPaper(data) { |
56 | return service({ | 64 | return service({ |
57 | - url: answerSheet.saveAnswerSheet, | 65 | + url: answerSheet.addPaper, |
58 | method: 'POST', | 66 | method: 'POST', |
59 | data | 67 | data |
60 | }) | 68 | }) |
61 | }, | 69 | }, |
62 | // 删除答题卡 | 70 | // 删除答题卡 |
63 | - removeAnswerSheet(data) { | ||
64 | - return service({ | ||
65 | - url: answerSheet.removeAnswerSheet, | ||
66 | - method: 'POST', | ||
67 | - data | ||
68 | - }) | ||
69 | - }, | ||
70 | - // 恢复答题卡 | ||
71 | - useAnswerSheet(data) { | 71 | + delPaper(data) { |
72 | return service({ | 72 | return service({ |
73 | - url: answerSheet.useAnswerSheet, | 73 | + url: answerSheet.delPaper, |
74 | method: 'POST', | 74 | method: 'POST', |
75 | data | 75 | data |
76 | }) | 76 | }) |
77 | }, | 77 | }, |
78 | - // 恢复答题卡 | ||
79 | - updateAnswerSheet(data) { | 78 | + // 修改答题卡 |
79 | + modifyPaper(data) { | ||
80 | return service({ | 80 | return service({ |
81 | - url: answerSheet.updateAnswerSheet, | 81 | + url: answerSheet.modifyPaper, |
82 | method: 'POST', | 82 | method: 'POST', |
83 | data | 83 | data |
84 | }) | 84 | }) |
src/api/apis/ask.js
@@ -3,7 +3,7 @@ import service from "../axios" | @@ -3,7 +3,7 @@ import service from "../axios" | ||
3 | import askUrls from "../urls/login" | 3 | import askUrls from "../urls/login" |
4 | 4 | ||
5 | export default { | 5 | export default { |
6 | - // 账号密码登陆 | 6 | + // 随堂问列表 |
7 | fetchQuizList(data) { | 7 | fetchQuizList(data) { |
8 | return service({ | 8 | return service({ |
9 | url: askUrls.quizList, | 9 | url: askUrls.quizList, |
@@ -11,4 +11,12 @@ export default { | @@ -11,4 +11,12 @@ export default { | ||
11 | data | 11 | data |
12 | }) | 12 | }) |
13 | }, | 13 | }, |
14 | + // 随堂问详情 | ||
15 | + quizDetail(data) { | ||
16 | + return service({ | ||
17 | + url: askUrls.quizDetail, | ||
18 | + method: 'POST', | ||
19 | + data | ||
20 | + }) | ||
21 | + }, | ||
14 | } | 22 | } |
src/api/apis/login.js
@@ -4,11 +4,25 @@ import loginUrls from "../urls/login" | @@ -4,11 +4,25 @@ import loginUrls from "../urls/login" | ||
4 | 4 | ||
5 | export default { | 5 | export default { |
6 | // 账号密码登陆 | 6 | // 账号密码登陆 |
7 | - fetchLogin(data) { | 7 | + login(data) { |
8 | return service({ | 8 | return service({ |
9 | url: loginUrls.login, | 9 | url: loginUrls.login, |
10 | method: 'POST', | 10 | method: 'POST', |
11 | data | 11 | data |
12 | }) | 12 | }) |
13 | }, | 13 | }, |
14 | + ssoLogin(data) { | ||
15 | + return service({ | ||
16 | + url: loginUrls.ssoLogin, | ||
17 | + method: 'POST', | ||
18 | + data | ||
19 | + }) | ||
20 | + }, | ||
21 | + logout(data) { | ||
22 | + return service({ | ||
23 | + url: loginUrls.logout, | ||
24 | + method: 'POST', | ||
25 | + data | ||
26 | + }) | ||
27 | + }, | ||
14 | } | 28 | } |
src/api/axios.js
@@ -37,7 +37,7 @@ service.interceptors.response.use( | @@ -37,7 +37,7 @@ service.interceptors.response.use( | ||
37 | store.commit('delTokenSources', response.config.cancelToken) | 37 | store.commit('delTokenSources', response.config.cancelToken) |
38 | } | 38 | } |
39 | if (response.status == 200) { | 39 | if (response.status == 200) { |
40 | - Cookies.set("access_token", response.data.message, { expires: 1 / 12 }) | 40 | + // Cookies.set("access_token", response.data.message, { expires: 1 / 12 }) |
41 | // console.log(response.status) | 41 | // console.log(response.status) |
42 | if (res.code == 999) { | 42 | if (res.code == 999) { |
43 | if (!location.href.includes('localhost')) { | 43 | if (!location.href.includes('localhost')) { |
@@ -56,7 +56,7 @@ service.interceptors.response.use( | @@ -56,7 +56,7 @@ service.interceptors.response.use( | ||
56 | } | 56 | } |
57 | return | 57 | return |
58 | } else { | 58 | } else { |
59 | - Cookies.set("access_token", response.data.message, { expires: 1 / 12 }) | 59 | + // Cookies.set("access_token", response.data.message, { expires: 1 / 12 }) |
60 | } | 60 | } |
61 | } | 61 | } |
62 | return Promise.resolve(response) | 62 | return Promise.resolve(response) |
@@ -72,20 +72,23 @@ service.interceptors.response.use( | @@ -72,20 +72,23 @@ service.interceptors.response.use( | ||
72 | } | 72 | } |
73 | Message.closeAll() | 73 | Message.closeAll() |
74 | const { | 74 | const { |
75 | + data, | ||
75 | status | 76 | status |
76 | } = error.response | 77 | } = error.response |
77 | if (status === 403 || status === 401) { | 78 | if (status === 403 || status === 401) { |
78 | Message({ | 79 | Message({ |
79 | - message: "未登录或登录超时,即将跳转到登录页面", | 80 | + message: data.info||"未登录或登录超时,即将跳转到登录页面", |
80 | type: 'error', | 81 | type: 'error', |
81 | duration: 3 * 1000 | 82 | duration: 3 * 1000 |
82 | }) | 83 | }) |
83 | - router.push({ | ||
84 | - path: '/login', | ||
85 | - query: { | ||
86 | - url: window.location.href | ||
87 | - } | ||
88 | - }) | 84 | + if (!window.location.href.includes('login')) { |
85 | + router.push({ | ||
86 | + path: '/login', | ||
87 | + query: { | ||
88 | + url: window.location.href | ||
89 | + } | ||
90 | + }) | ||
91 | + } | ||
89 | return | 92 | return |
90 | } | 93 | } |
91 | return Promise.reject(error.response) // 返回接口返回的错误信息 | 94 | return Promise.reject(error.response) // 返回接口返回的错误信息 |
src/api/urls/answerSheet.js
1 | export default { | 1 | export default { |
2 | // 答题卡列表 | 2 | // 答题卡列表 |
3 | - answerList: "/apis/answerList", | ||
4 | - // 测验类型 | ||
5 | - typeNames: "/apis/typeNames", | 3 | + paperList: "/api_html/teaching/paperList", |
4 | + // 答题卡详情 | ||
5 | + paperList: "/api_html/teaching/paperDetail", | ||
6 | // 查找年级 | 6 | // 查找年级 |
7 | - gradeList: "/apis/gradeList", | 7 | + gradeList: "/api_html/teaching/gradeList", |
8 | + // 测验类型 | ||
9 | + typeNames: "/api_html/teaching/tagList", | ||
8 | // 查找班级 | 10 | // 查找班级 |
9 | - classList: "/apis/classList", | 11 | + classList: "/api_html/teaching/classList", |
10 | // 查找科目 | 12 | // 查找科目 |
11 | - subjectList: "/apis/subjectList", | ||
12 | - // 天假答题卡测验类型 | ||
13 | - addAnswerTypeName: "/apis/addAnswerTypeName", | 13 | + subjectList: "/api_html/teaching/subjectList", |
14 | + // 添加答题卡测验类型 | ||
15 | + addPaperType: "/api_html/teaching/addPaperType", | ||
14 | // 保存答题卡 | 16 | // 保存答题卡 |
15 | - saveAnswerSheet: "/apis/saveAnswerSheet", | 17 | + addPaper: "/api_html/teaching/addPaper", |
16 | // 删除答题卡 | 18 | // 删除答题卡 |
17 | - removeAnswerSheet: "/apis/removeAnswerSheet", | ||
18 | - // 恢复使用答题卡 | ||
19 | - useAnswerSheet: "/apis/useAnswerSheet", | 19 | + delPaper: "/api_html/teaching/delPaper", |
20 | // 更新答题卡 | 20 | // 更新答题卡 |
21 | - updateAnswerSheet: "/apis/updateAnswerSheet", | 21 | + modifyPaper: "/api_html/teaching/modifyPaper", |
22 | } | 22 | } |
23 | \ No newline at end of file | 23 | \ No newline at end of file |
src/api/urls/ask.js
src/api/urls/login.js
src/components/userForm/editPassword.vue deleted
1 | -<template> | ||
2 | - <el-dialog title="修改密码" width="700px" :visible.sync="visible" destroy-on-close @close="closeCallback"> | ||
3 | - <div class="card"> | ||
4 | - <p class="title"><i class="fa fa-th-large fa-lg"></i>修改密码</p> | ||
5 | - <el-form :model="ruleForm2" status-icon :rules="rules2" ref="ruleForm2" label-width="100px" class="demo-ruleForm"> | ||
6 | - <el-form-item label="原密码" prop="oldPassword"> | ||
7 | - <el-input type="password" v-model="ruleForm2.oldPassword" autocomplete="off"></el-input> | ||
8 | - </el-form-item> | ||
9 | - <el-form-item label="密码" prop="password"> | ||
10 | - <el-input type="password" v-model="ruleForm2.password" autocomplete="off"></el-input> | ||
11 | - </el-form-item> | ||
12 | - <el-form-item label="确认密码" prop="checkPass"> | ||
13 | - <el-input type="password" v-model="ruleForm2.checkPass" autocomplete="off"></el-input> | ||
14 | - </el-form-item> | ||
15 | - <el-form-item> | ||
16 | - <el-button type="primary" @click="submitForm('ruleForm2')">提交</el-button> | ||
17 | - <el-button @click="resetForm('ruleForm2')">重置</el-button> | ||
18 | - </el-form-item> | ||
19 | - </el-form> | ||
20 | - </div> | ||
21 | - </el-dialog> | ||
22 | -</template> | ||
23 | - | ||
24 | -<script> | ||
25 | -import Cookies from "js-cookie" | ||
26 | -export default { | ||
27 | - name: "editPassword", | ||
28 | - props: { | ||
29 | - dialogVisible: { | ||
30 | - type: Boolean, | ||
31 | - default: false | ||
32 | - } | ||
33 | - }, | ||
34 | - data () { | ||
35 | - var validatePass = (rule, value, callback) => { | ||
36 | - if (value === "") { | ||
37 | - callback(new Error("请输入密码")) | ||
38 | - } else if (value.toString().length < 6) { | ||
39 | - callback(new Error("密码长度不能低于6位")) | ||
40 | - } else { | ||
41 | - if (this.ruleForm2.checkPass !== "") { | ||
42 | - this.$refs.ruleForm2.validateField("checkPass") | ||
43 | - } | ||
44 | - callback() | ||
45 | - } | ||
46 | - } | ||
47 | - var validatePass2 = (rule, value, callback) => { | ||
48 | - if (value === "") { | ||
49 | - callback(new Error("请再次输入密码")) | ||
50 | - } else if (value.toString().length < 6) { | ||
51 | - callback(new Error("密码长度不能低于6位")) | ||
52 | - } else if (value !== this.ruleForm2.password) { | ||
53 | - callback(new Error("两次输入密码不一致!")) | ||
54 | - } else { | ||
55 | - callback() | ||
56 | - } | ||
57 | - } | ||
58 | - return { | ||
59 | - visible: this.dialogVisible, | ||
60 | - ruleForm2: { | ||
61 | - oldPassword: "", | ||
62 | - password: "", | ||
63 | - checkPass: "" | ||
64 | - }, | ||
65 | - rules2: { | ||
66 | - oldPassword: [ | ||
67 | - {required: true, validator: validatePass, trigger: "blur"} | ||
68 | - ], | ||
69 | - password: [ | ||
70 | - {required: true, validator: validatePass, trigger: "blur"} | ||
71 | - ], | ||
72 | - checkPass: [ | ||
73 | - {required: true, validator: validatePass2, trigger: "blur"} | ||
74 | - ] | ||
75 | - } | ||
76 | - } | ||
77 | - }, | ||
78 | - methods: { | ||
79 | - closeCallback () { | ||
80 | - this.$emit("editPwdCallback") | ||
81 | - }, | ||
82 | - submitForm (formName) { | ||
83 | - let that = this | ||
84 | - this.$refs[formName].validate((valid) => { | ||
85 | - if (valid) { | ||
86 | - this.$request.fetchEditPassword({ | ||
87 | - oldPassword: that.ruleForm2.oldPassword, | ||
88 | - newPassword: that.ruleForm2.password | ||
89 | - }).then((res) => { | ||
90 | - that.$message({ | ||
91 | - showClose: true, | ||
92 | - message: res.data.message, | ||
93 | - type: "success" | ||
94 | - }) | ||
95 | - setTimeout(function () { | ||
96 | - Cookies.remove("access_token") | ||
97 | - location.reload() | ||
98 | - }, 3000) | ||
99 | - }).catch((err) => { | ||
100 | - that.$message({ | ||
101 | - showClose: true, | ||
102 | - message: err.data.message, | ||
103 | - type: "error" | ||
104 | - }) | ||
105 | - }) | ||
106 | - } else { | ||
107 | - console.log("error submit!!") | ||
108 | - return false | ||
109 | - } | ||
110 | - }) | ||
111 | - }, | ||
112 | - resetForm (formName) { | ||
113 | - this.$refs[formName].resetFields() | ||
114 | - } | ||
115 | - } | ||
116 | -} | ||
117 | -</script> | ||
118 | - | ||
119 | -<style scoped> | ||
120 | - .demo-ruleForm { | ||
121 | - width: 460px; | ||
122 | - padding-top: 25px; | ||
123 | - } | ||
124 | - | ||
125 | - .card { | ||
126 | - width: 560px; | ||
127 | - padding-bottom: 15px; | ||
128 | - margin: 0px auto; | ||
129 | - } | ||
130 | -</style> |
src/router/permission.js
@@ -92,47 +92,3 @@ router.onError((error) => { | @@ -92,47 +92,3 @@ router.onError((error) => { | ||
92 | const targetPath = router.history.pending.fullPath; | 92 | const targetPath = router.history.pending.fullPath; |
93 | if (isChunkLoadFailed) { router.replace(targetPath); } | 93 | if (isChunkLoadFailed) { router.replace(targetPath); } |
94 | }); | 94 | }); |
95 | - | ||
96 | - | ||
97 | - | ||
98 | -// // 真实使用 | ||
99 | -// import fetchUser from "@/api/apis/user" | ||
100 | -// | ||
101 | -// router.beforeEach((to, from, next) => { | ||
102 | -// if (store.getters.token && store.getters.token !== "undefined") { | ||
103 | -// // store.dispatch('setToken', store.getters.token) | ||
104 | -// if (to.path === "/login") { | ||
105 | -// next({path: "/"}) | ||
106 | -// } else { | ||
107 | -// if (!store.getters.info) { | ||
108 | -// (async function getAddRouters () { | ||
109 | -// fetchUser.fetchGetUserInfo().then(async function (response) { | ||
110 | -// await store.dispatch("setInfo", response.data) | ||
111 | - // await store.dispatch("newRoutes", store.getters.info.authorityRouter) | ||
112 | -// await router.addRoutes(store.getters.addRouters) | ||
113 | -// next({path: "/index"}) | ||
114 | -// }).catch(function (error) { | ||
115 | -// console.log(error) | ||
116 | -// }) | ||
117 | -// }()) | ||
118 | -// } else { | ||
119 | -// let is404 = to.matched.some(record => { | ||
120 | -// console.log(record) | ||
121 | -// if (record.meta.role) { | ||
122 | -// return store.getters.info.authorityRouter === -1 | ||
123 | -// } | ||
124 | -// }) | ||
125 | -// if (is404) { | ||
126 | -// next({path: "/404"}) | ||
127 | -// return false | ||
128 | -// } | ||
129 | -// next() | ||
130 | -// } | ||
131 | -// } | ||
132 | -// } else { | ||
133 | -// if (to.path === "/login") { | ||
134 | -// next() | ||
135 | -// } | ||
136 | -// next({path: "/login"}) | ||
137 | -// } | ||
138 | -// }) |
src/store/index.js
@@ -64,7 +64,7 @@ const store = new Vuex.Store({ | @@ -64,7 +64,7 @@ const store = new Vuex.Store({ | ||
64 | let loginForm = {} | 64 | let loginForm = {} |
65 | loginForm.username = params.username; | 65 | loginForm.username = params.username; |
66 | loginForm.password = encryptLoginPassword(params.password); | 66 | loginForm.password = encryptLoginPassword(params.password); |
67 | - request.fetchLogin({ ...loginForm }).then(res => { | 67 | + request.login({ ...loginForm }).then(res => { |
68 | let response = res.data | 68 | let response = res.data |
69 | if (response.status == 0) { | 69 | if (response.status == 0) { |
70 | const userInfo = { ...response.data } | 70 | const userInfo = { ...response.data } |
@@ -92,7 +92,7 @@ const store = new Vuex.Store({ | @@ -92,7 +92,7 @@ const store = new Vuex.Store({ | ||
92 | }) | 92 | }) |
93 | }, | 93 | }, |
94 | permissions({ state, commit }, that) { | 94 | permissions({ state, commit }, that) { |
95 | - // request.fetchLogin(that.loginForm).then(res => { | 95 | + // request.login(that.loginForm).then(res => { |
96 | // if (res.status == 200) { | 96 | // if (res.status == 200) { |
97 | commit("setToken", "xxxx") | 97 | commit("setToken", "xxxx") |
98 | commit("setInfo", { | 98 | commit("setInfo", { |
src/views/ask/analysis.vue
@@ -5,23 +5,161 @@ | @@ -5,23 +5,161 @@ | ||
5 | <span>单课分析</span> | 5 | <span>单课分析</span> |
6 | </template> | 6 | </template> |
7 | </back-box> | 7 | </back-box> |
8 | - <div class="tab-box"> | ||
9 | - <span class="tab-item active">答题表现</span> | ||
10 | - <span class="tab-item">学生问答表现</span> | ||
11 | - <span class="tab-item">学生互动表现</span> | ||
12 | - <span class="tab-item">签到明细</span> | 8 | + <div class="page-content"> |
9 | + <div class="tab-box"> | ||
10 | + <span | ||
11 | + class="tab-item" | ||
12 | + :class="type == 1 ? 'active' : ''" | ||
13 | + @click="type = 1" | ||
14 | + >答题表现</span | ||
15 | + > | ||
16 | + <span | ||
17 | + class="tab-item" | ||
18 | + :class="type == 2 ? 'active' : ''" | ||
19 | + @click="type = 2" | ||
20 | + >学生问答表现</span | ||
21 | + > | ||
22 | + <span | ||
23 | + class="tab-item" | ||
24 | + :class="type == 3 ? 'active' : ''" | ||
25 | + @click="type = 3" | ||
26 | + >学生互动表现</span | ||
27 | + > | ||
28 | + <span | ||
29 | + class="tab-item" | ||
30 | + :class="type == 4 ? 'active' : ''" | ||
31 | + @click="type = 4" | ||
32 | + >签到明细</span | ||
33 | + > | ||
34 | + </div> | ||
35 | + <ul class="info"> | ||
36 | + <li class="info-item">科目:语文</li> | ||
37 | + <li class="info-item">课时:课时1</li> | ||
38 | + <li class="info-item">上课时间:2022-11-9 21:30</li> | ||
39 | + <li class="info-item">下课时间:2022-11-9 21:30</li> | ||
40 | + <li class="info-item">签到人数:45</li> | ||
41 | + <li class="info-item">题目总数:8</li> | ||
42 | + <li class="info-item">答题总数:8</li> | ||
43 | + <li class="info-item">课时时长:45分钟</li> | ||
44 | + <li class="info-item">总参与度::80%</li> | ||
45 | + <li class="info-item">班级总正确率:82%</li> | ||
46 | + <li class="info-item">已答总正确率:89%</li> | ||
47 | + <li class="info-item">反馈时长:15分钟</li> | ||
48 | + </ul> | ||
49 | + <el-table | ||
50 | + :data="tableData" | ||
51 | + border | ||
52 | + style="width: 100%" | ||
53 | + :default-sort="{ prop: 'dadui', order: 'descending' }" | ||
54 | + > | ||
55 | + <el-table-column | ||
56 | + prop="questionIndex" | ||
57 | + label="题号" | ||
58 | + align="center" | ||
59 | + ><template slot-scope="scoped">Q{{scoped.row.questionIndex}}</template></el-table-column> | ||
60 | + <el-table-column | ||
61 | + prop="questionType" | ||
62 | + label="题型" | ||
63 | + align="center" | ||
64 | + ></el-table-column> | ||
65 | + <el-table-column | ||
66 | + prop="dati" | ||
67 | + label="答题人数" | ||
68 | + sortable | ||
69 | + align="center" | ||
70 | + ></el-table-column> | ||
71 | + <el-table-column | ||
72 | + prop="dadui" | ||
73 | + label="答对人数" | ||
74 | + sortable | ||
75 | + align="center" | ||
76 | + ></el-table-column> | ||
77 | + <el-table-column | ||
78 | + prop="canyu" | ||
79 | + label="班级参与度" | ||
80 | + sortable | ||
81 | + align="center" | ||
82 | + ><template slot-scope="scoped">{{scoped.row.canyu}}%</template></el-table-column> | ||
83 | + <el-table-column | ||
84 | + prop="banjidadui" | ||
85 | + label="班级正确率" | ||
86 | + sortable | ||
87 | + align="center" | ||
88 | + ><template slot-scope="scoped">{{scoped.row.banjidadui}}%</template></el-table-column> | ||
89 | + <el-table-column | ||
90 | + prop="yida" | ||
91 | + label="已答正确率" | ||
92 | + sortable | ||
93 | + align="center" | ||
94 | + ><template slot-scope="scoped">{{scoped.row.yida}}%</template></el-table-column> | ||
95 | + <el-table-column | ||
96 | + prop="correctAnswer" | ||
97 | + label="正确答案" | ||
98 | + align="center" | ||
99 | + ></el-table-column> | ||
100 | + <el-table-column | ||
101 | + prop="ganrao" | ||
102 | + label="干扰答案" | ||
103 | + align="center" | ||
104 | + ></el-table-column> | ||
105 | + </el-table> | ||
13 | </div> | 106 | </div> |
14 | </div> | 107 | </div> |
15 | </template> | 108 | </template> |
16 | 109 | ||
17 | <script> | 110 | <script> |
18 | -export default {}; | 111 | +export default { |
112 | + data() { | ||
113 | + return { | ||
114 | + id: "", | ||
115 | + type: 1, | ||
116 | + tableData: [ | ||
117 | + { | ||
118 | + questionIndex: 1, | ||
119 | + questionType: "单选题", | ||
120 | + dati: 5, | ||
121 | + dadui: 60, | ||
122 | + canyu: 50, | ||
123 | + banjidadui: 80, | ||
124 | + yida: 90, | ||
125 | + correctAnswer:"A", | ||
126 | + ganrao:"C" | ||
127 | + }, | ||
128 | + { | ||
129 | + questionIndex: 2, | ||
130 | + questionType: "单选题", | ||
131 | + dati: 6, | ||
132 | + dadui: 80, | ||
133 | + canyu: 60, | ||
134 | + banjidadui: 90, | ||
135 | + yida: 100, | ||
136 | + correctAnswer:"B", | ||
137 | + ganrao:"D" | ||
138 | + }, | ||
139 | + ], | ||
140 | + }; | ||
141 | + }, | ||
142 | + created() { | ||
143 | + this.id = this.$route.query.id; | ||
144 | + // this._QueryData() | ||
145 | + }, | ||
146 | + methods: { | ||
147 | + async _QueryData() { | ||
148 | + let { data, info, status } = this.$request.quizDetail({ | ||
149 | + id: this.id, | ||
150 | + }); | ||
151 | + }, | ||
152 | + }, | ||
153 | +}; | ||
19 | </script> | 154 | </script> |
20 | 155 | ||
21 | <style lang="scss" scoped> | 156 | <style lang="scss" scoped> |
157 | +.page-content { | ||
158 | + padding: 20px 20px 0; | ||
159 | +} | ||
22 | .tab-box { | 160 | .tab-box { |
23 | width: 800px; | 161 | width: 800px; |
24 | - margin: 20px auto; | 162 | + margin: 0 auto 12px; |
25 | background: #f8f8f8; | 163 | background: #f8f8f8; |
26 | border-radius: 20px; | 164 | border-radius: 20px; |
27 | display: flex; | 165 | display: flex; |
@@ -35,10 +173,29 @@ export default {}; | @@ -35,10 +173,29 @@ export default {}; | ||
35 | font-weight: 500; | 173 | font-weight: 500; |
36 | background: transparent; | 174 | background: transparent; |
37 | border-radius: 20px; | 175 | border-radius: 20px; |
176 | + cursor: pointer; | ||
38 | &.active { | 177 | &.active { |
39 | background: #667ffd; | 178 | background: #667ffd; |
40 | color: #fff; | 179 | color: #fff; |
41 | } | 180 | } |
42 | } | 181 | } |
43 | } | 182 | } |
183 | +.info { | ||
184 | + display: flex; | ||
185 | + flex-wrap: wrap; | ||
186 | + border-left: 1px solid #e2e2e2; | ||
187 | + border-top: 1px solid #e2e2e2; | ||
188 | + margin-bottom: 12px; | ||
189 | + .info-item { | ||
190 | + width: 25%; | ||
191 | + height: 50px; | ||
192 | + box-sizing: border-box; | ||
193 | + flex-shrink: 0; | ||
194 | + background: #f8f8f8; | ||
195 | + border-right: 1px solid #e2e2e2; | ||
196 | + border-bottom: 1px solid #e2e2e2; | ||
197 | + line-height: 50px; | ||
198 | + text-align: center; | ||
199 | + } | ||
200 | +} | ||
44 | </style> | 201 | </style> |
45 | \ No newline at end of file | 202 | \ No newline at end of file |
src/views/ask/index.vue
@@ -774,7 +774,7 @@ export default { | @@ -774,7 +774,7 @@ export default { | ||
774 | } | 774 | } |
775 | }, | 775 | }, |
776 | async saveAnswer(){ | 776 | async saveAnswer(){ |
777 | - // const { data, code, message } = await this.$request.updateAnswerSheet({...this.form}); | 777 | + // const { data, code, message } = await this.$request.modifyPaper({...this.form}); |
778 | // if (code == 0) { | 778 | // if (code == 0) { |
779 | this.dialogVisible = false | 779 | this.dialogVisible = false |
780 | // } else { | 780 | // } else { |
src/views/examinationPaper/add.vue
@@ -37,7 +37,7 @@ | @@ -37,7 +37,7 @@ | ||
37 | ></el-col> | 37 | ></el-col> |
38 | </el-form-item> | 38 | </el-form-item> |
39 | <el-form-item label="测验类型:"> | 39 | <el-form-item label="测验类型:"> |
40 | - <el-select v-model="form.tag" placeholder="选择测验类型"> | 40 | + <el-select v-model="form.tagId" placeholder="选择测验类型"> |
41 | <el-option | 41 | <el-option |
42 | v-for="item in answerTypeList" | 42 | v-for="item in answerTypeList" |
43 | :key="item.id" | 43 | :key="item.id" |
@@ -71,8 +71,8 @@ | @@ -71,8 +71,8 @@ | ||
71 | </el-option> | 71 | </el-option> |
72 | </el-select> | 72 | </el-select> |
73 | </el-form-item> | 73 | </el-form-item> |
74 | - <el-form-item label="科目:" prop="subjectId"> | ||
75 | - <el-select class="sel" v-model="form.subjectId" placeholder=""> | 74 | + <el-form-item label="科目:" prop="subjectName"> |
75 | + <el-select class="sel" v-model="form.subjectName" placeholder=""> | ||
76 | <el-option | 76 | <el-option |
77 | v-for="item in subjectList" | 77 | v-for="item in subjectList" |
78 | :key="item.value" | 78 | :key="item.value" |
@@ -91,8 +91,8 @@ | @@ -91,8 +91,8 @@ | ||
91 | label="考试时长" | 91 | label="考试时长" |
92 | ></el-input-number> | 92 | ></el-input-number> |
93 | </el-form-item> | 93 | </el-form-item> |
94 | - <el-form-item label="分享范围:" prop="share"> | ||
95 | - <el-radio-group v-model="form.share"> | 94 | + <el-form-item label="分享范围:" prop="sharingType"> |
95 | + <el-radio-group v-model="form.sharingType"> | ||
96 | <el-radio :label="1">任课班级分享</el-radio> | 96 | <el-radio :label="1">任课班级分享</el-radio> |
97 | <el-radio :label="2">全年级分享</el-radio> | 97 | <el-radio :label="2">全年级分享</el-radio> |
98 | </el-radio-group> | 98 | </el-radio-group> |
@@ -105,7 +105,7 @@ | @@ -105,7 +105,7 @@ | ||
105 | <el-button type="primary" round @click="setStep1">下一步</el-button> | 105 | <el-button type="primary" round @click="setStep1">下一步</el-button> |
106 | </div> | 106 | </div> |
107 | <el-dialog | 107 | <el-dialog |
108 | - title="天假测验类型" | 108 | + title="添加测验类型" |
109 | :visible.sync="dialogVisible" | 109 | :visible.sync="dialogVisible" |
110 | width="500px" | 110 | width="500px" |
111 | > | 111 | > |
@@ -122,9 +122,7 @@ | @@ -122,9 +122,7 @@ | ||
122 | </p> | 122 | </p> |
123 | </div> | 123 | </div> |
124 | <div class="" slot="footer"> | 124 | <div class="" slot="footer"> |
125 | - <el-button type="primary" @click="addAnswerTypeName" | ||
126 | - >确 定</el-button | ||
127 | - > | 125 | + <el-button type="primary" @click="addPaperType">确 定</el-button> |
128 | <el-button @click="dialogVisible = false">取 消</el-button> | 126 | <el-button @click="dialogVisible = false">取 消</el-button> |
129 | </div> | 127 | </div> |
130 | </el-dialog> | 128 | </el-dialog> |
@@ -218,7 +216,7 @@ | @@ -218,7 +216,7 @@ | ||
218 | <p v-else class="answer-box"> | 216 | <p v-else class="answer-box"> |
219 | <span | 217 | <span |
220 | class="answer-s" | 218 | class="answer-s" |
221 | - v-for="option in subQuestions.answerOptions" | 219 | + v-for="option in subQuestions.answerOptions.split(',')" |
222 | :key="option" | 220 | :key="option" |
223 | >{{ option }}</span | 221 | >{{ option }}</span |
224 | > | 222 | > |
@@ -394,7 +392,7 @@ | @@ -394,7 +392,7 @@ | ||
394 | <p v-if="subQuestions.questionType == 3" class="answer-box"> | 392 | <p v-if="subQuestions.questionType == 3" class="answer-box"> |
395 | <span | 393 | <span |
396 | class="answer-s" | 394 | class="answer-s" |
397 | - v-for="option in subQuestions.answerOptions" | 395 | + v-for="option in subQuestions.answerOptions.split(',')" |
398 | :class=" | 396 | :class=" |
399 | subQuestions.correctAnswer.includes(option) | 397 | subQuestions.correctAnswer.includes(option) |
400 | ? 'active' | 398 | ? 'active' |
@@ -408,7 +406,7 @@ | @@ -408,7 +406,7 @@ | ||
408 | <p v-if="subQuestions.questionType == 2" class="answer-box"> | 406 | <p v-if="subQuestions.questionType == 2" class="answer-box"> |
409 | <span | 407 | <span |
410 | class="answer-s" | 408 | class="answer-s" |
411 | - v-for="option in subQuestions.answerOptions" | 409 | + v-for="option in subQuestions.answerOptions.split(',')" |
412 | :class=" | 410 | :class=" |
413 | subQuestions.correctAnswer == option ? 'active' : '' | 411 | subQuestions.correctAnswer == option ? 'active' : '' |
414 | " | 412 | " |
@@ -434,6 +432,8 @@ | @@ -434,6 +432,8 @@ | ||
434 | </template> | 432 | </template> |
435 | 433 | ||
436 | <script> | 434 | <script> |
435 | +import { formatDate, deepClone } from "utils"; | ||
436 | +import { number } from "echarts"; | ||
437 | const questionForm = { | 437 | const questionForm = { |
438 | questionTitle: "", | 438 | questionTitle: "", |
439 | questionType: 2, | 439 | questionType: 2, |
@@ -444,7 +444,7 @@ const subQuesOptions = { | @@ -444,7 +444,7 @@ const subQuesOptions = { | ||
444 | score: 1, | 444 | score: 1, |
445 | partScore: 0, | 445 | partScore: 0, |
446 | selectNum: 4, | 446 | selectNum: 4, |
447 | - answerOptions: ["A", "B", "C", "D"], | 447 | + answerOptions: "A,B,C,D", |
448 | correctAnswer: "", | 448 | correctAnswer: "", |
449 | }; | 449 | }; |
450 | export default { | 450 | export default { |
@@ -471,7 +471,7 @@ export default { | @@ -471,7 +471,7 @@ export default { | ||
471 | { label: "判断题", value: 4 }, | 471 | { label: "判断题", value: 4 }, |
472 | { label: "主观题", value: 5 }, | 472 | { label: "主观题", value: 5 }, |
473 | ], | 473 | ], |
474 | - rightOptions: ["A", "B", "C", "D", "E", "F", "G"], | 474 | + rightOptions: ["A","B","C","D","E","F","G"], |
475 | addSubQuestionsType: "", | 475 | addSubQuestionsType: "", |
476 | step: 0, //步骤 | 476 | step: 0, //步骤 |
477 | gradeList: [], //年级 | 477 | gradeList: [], //年级 |
@@ -481,11 +481,11 @@ export default { | @@ -481,11 +481,11 @@ export default { | ||
481 | form: { | 481 | form: { |
482 | //答题卡详情 | 482 | //答题卡详情 |
483 | title: "", | 483 | title: "", |
484 | - tag: "", | ||
485 | - subjectId: "", | ||
486 | - examsDuration: 0, | 484 | + tagId: "", |
487 | gradeName: "", | 485 | gradeName: "", |
488 | - share: 1, | 486 | + subjectName: "", |
487 | + examsDuration: 0, | ||
488 | + sharingType: 1, | ||
489 | questionList: [], | 489 | questionList: [], |
490 | }, | 490 | }, |
491 | formRules: { | 491 | formRules: { |
@@ -500,7 +500,9 @@ export default { | @@ -500,7 +500,9 @@ export default { | ||
500 | }, | 500 | }, |
501 | ], | 501 | ], |
502 | gradeName: [{ required: true, message: "请选择年级", trigger: "blur" }], | 502 | gradeName: [{ required: true, message: "请选择年级", trigger: "blur" }], |
503 | - subjectId: [{ required: true, message: "请选择科目", trigger: "blur" }], | 503 | + subjectName: [ |
504 | + { required: true, message: "请选择科目", trigger: "blur" }, | ||
505 | + ], | ||
504 | examsDuration: [ | 506 | examsDuration: [ |
505 | { required: true, message: "请设置考试时长", trigger: "blur" }, | 507 | { required: true, message: "请设置考试时长", trigger: "blur" }, |
506 | ], | 508 | ], |
@@ -510,9 +512,7 @@ export default { | @@ -510,9 +512,7 @@ export default { | ||
510 | created() { | 512 | created() { |
511 | this.type = this.$route.query.type ? this.$route.query.type : 1; | 513 | this.type = this.$route.query.type ? this.$route.query.type : 1; |
512 | if (this.type == 2) { | 514 | if (this.type == 2) { |
513 | - this.form = this.$route.query.form && JSON.parse(this.$route.query.form); | ||
514 | - console.log(this.form.examsDuration) | ||
515 | - this.form.examsDuration = Number(this.form.examsDuration)/60 | 515 | + this._QueryDetail(); |
516 | } | 516 | } |
517 | }, | 517 | }, |
518 | methods: { | 518 | methods: { |
@@ -632,13 +632,13 @@ export default { | @@ -632,13 +632,13 @@ export default { | ||
632 | questionsOptions.answerOptions = this.rightOptions.slice( | 632 | questionsOptions.answerOptions = this.rightOptions.slice( |
633 | 0, | 633 | 0, |
634 | questionsOptions.selectNum | 634 | questionsOptions.selectNum |
635 | - ); | 635 | + ).join(','); |
636 | break; | 636 | break; |
637 | case 3: | 637 | case 3: |
638 | questionsOptions.answerOptions = this.rightOptions.slice( | 638 | questionsOptions.answerOptions = this.rightOptions.slice( |
639 | 0, | 639 | 0, |
640 | questionsOptions.selectNum | 640 | questionsOptions.selectNum |
641 | - ); | 641 | + ).join(','); |
642 | questionsOptions.partScore = 0.5; | 642 | questionsOptions.partScore = 0.5; |
643 | break; | 643 | break; |
644 | case 4: | 644 | case 4: |
@@ -667,7 +667,7 @@ export default { | @@ -667,7 +667,7 @@ export default { | ||
667 | let score = question.subQuestions.reduce((a, b) => { | 667 | let score = question.subQuestions.reduce((a, b) => { |
668 | return a + b.score; | 668 | return a + b.score; |
669 | }, 0); | 669 | }, 0); |
670 | - return score; | 670 | + return Number(score).toFixed(2); |
671 | }, | 671 | }, |
672 | changeAddSubQuestions(val, question) { | 672 | changeAddSubQuestions(val, question) { |
673 | if (val) { | 673 | if (val) { |
@@ -680,13 +680,13 @@ export default { | @@ -680,13 +680,13 @@ export default { | ||
680 | questionsOptions.answerOptions = this.rightOptions.slice( | 680 | questionsOptions.answerOptions = this.rightOptions.slice( |
681 | 0, | 681 | 0, |
682 | questionsOptions.selectNum | 682 | questionsOptions.selectNum |
683 | - ); | 683 | + ).join(','); |
684 | break; | 684 | break; |
685 | case 3: | 685 | case 3: |
686 | questionsOptions.answerOptions = this.rightOptions.slice( | 686 | questionsOptions.answerOptions = this.rightOptions.slice( |
687 | 0, | 687 | 0, |
688 | questionsOptions.selectNum | 688 | questionsOptions.selectNum |
689 | - ); | 689 | + ).join(','); |
690 | questionsOptions.partScore = 0.5; | 690 | questionsOptions.partScore = 0.5; |
691 | break; | 691 | break; |
692 | case 4: | 692 | case 4: |
@@ -710,13 +710,13 @@ export default { | @@ -710,13 +710,13 @@ export default { | ||
710 | subQuestions.answerOptions = that.rightOptions.slice( | 710 | subQuestions.answerOptions = that.rightOptions.slice( |
711 | 0, | 711 | 0, |
712 | subQuestions.selectNum | 712 | subQuestions.selectNum |
713 | - ); | 713 | + ).join(','); |
714 | break; | 714 | break; |
715 | case 3: | 715 | case 3: |
716 | subQuestions.answerOptions = that.rightOptions.slice( | 716 | subQuestions.answerOptions = that.rightOptions.slice( |
717 | 0, | 717 | 0, |
718 | subQuestions.selectNum | 718 | subQuestions.selectNum |
719 | - ); | 719 | + ).join(','); |
720 | subQuestions.partScore = 0.5; | 720 | subQuestions.partScore = 0.5; |
721 | break; | 721 | break; |
722 | case 4: | 722 | case 4: |
@@ -727,23 +727,23 @@ export default { | @@ -727,23 +727,23 @@ export default { | ||
727 | }, | 727 | }, |
728 | addOptions(subQuestions) { | 728 | addOptions(subQuestions) { |
729 | //添加选项 | 729 | //添加选项 |
730 | - let length = subQuestions.answerOptions.length; | 730 | + let length = subQuestions.answerOptions.split(',').length; |
731 | if (length > 6) return; | 731 | if (length > 6) return; |
732 | subQuestions.selectNum = length + 1; | 732 | subQuestions.selectNum = length + 1; |
733 | subQuestions.answerOptions = this.rightOptions.slice( | 733 | subQuestions.answerOptions = this.rightOptions.slice( |
734 | 0, | 734 | 0, |
735 | subQuestions.selectNum | 735 | subQuestions.selectNum |
736 | - ); | 736 | + ).join(','); |
737 | }, | 737 | }, |
738 | removeOptions(subQuestions) { | 738 | removeOptions(subQuestions) { |
739 | //删除选项 | 739 | //删除选项 |
740 | - let length = subQuestions.answerOptions.length; | 740 | + let length = subQuestions.answerOptions.split(',').length; |
741 | if (length < 2) return; | 741 | if (length < 2) return; |
742 | subQuestions.selectNum = length - 1; | 742 | subQuestions.selectNum = length - 1; |
743 | subQuestions.answerOptions = this.rightOptions.slice( | 743 | subQuestions.answerOptions = this.rightOptions.slice( |
744 | 0, | 744 | 0, |
745 | subQuestions.selectNum | 745 | subQuestions.selectNum |
746 | - ); | 746 | + ).join(','); |
747 | }, | 747 | }, |
748 | changAnswer(sub, option) { | 748 | changAnswer(sub, option) { |
749 | //设置多选答案 | 749 | //设置多选答案 |
@@ -756,17 +756,17 @@ export default { | @@ -756,17 +756,17 @@ export default { | ||
756 | sub.correctAnswer = arrs.sort().join(""); | 756 | sub.correctAnswer = arrs.sort().join(""); |
757 | } | 757 | } |
758 | }, | 758 | }, |
759 | - async addAnswerTypeName() { | 759 | + async addPaperType() { |
760 | //保存测验类型 | 760 | //保存测验类型 |
761 | if (!this.answerTypeName) { | 761 | if (!this.answerTypeName) { |
762 | this.$message.error("请填写测验名称!"); | 762 | this.$message.error("请填写测验名称!"); |
763 | return; | 763 | return; |
764 | } | 764 | } |
765 | //添加测验类型 | 765 | //添加测验类型 |
766 | - const { data, code, message } = await this.$request.addAnswerTypeName({ | 766 | + const { data, status, message } = await this.$request.addPaperType({ |
767 | typeName: this.answerTypeName, | 767 | typeName: this.answerTypeName, |
768 | }); | 768 | }); |
769 | - if (code == 0) { | 769 | + if (status == 0) { |
770 | this._CreatedTypeList(); | 770 | this._CreatedTypeList(); |
771 | this.dialogVisible = false; | 771 | this.dialogVisible = false; |
772 | this.answerTypeName = ""; | 772 | this.answerTypeName = ""; |
@@ -778,14 +778,24 @@ export default { | @@ -778,14 +778,24 @@ export default { | ||
778 | async save() { | 778 | async save() { |
779 | if (this.saceLoading) return; | 779 | if (this.saceLoading) return; |
780 | this.saceLoading = true; | 780 | this.saceLoading = true; |
781 | - const { data, code, message } = await this.$request.saveAnswerSheet({ | 781 | + //添加题目ID、序号 |
782 | + this.form.questionList.map((item, index) => { | ||
783 | + item.questionId = index + 1; | ||
784 | + item.questionIndex = index + 1; | ||
785 | + item.questionType = 0; | ||
786 | + item.subQuestions.map((items, indexs) => { | ||
787 | + items.questionId = indexs + 1; | ||
788 | + items.questionIndex = indexs + 1; | ||
789 | + }); | ||
790 | + }); | ||
791 | + const { data, status, message } = await this.$request.addPaper({ | ||
782 | ...this.form, | 792 | ...this.form, |
783 | }); | 793 | }); |
784 | this.saceLoading = false; | 794 | this.saceLoading = false; |
785 | - if (code == 0) { | 795 | + if (status == 0) { |
786 | this.$router.push({ | 796 | this.$router.push({ |
787 | - path:"/examinationPaper" | ||
788 | - }) | 797 | + path: "/examinationPaper", |
798 | + }); | ||
789 | } else { | 799 | } else { |
790 | this.$message.error(message); | 800 | this.$message.error(message); |
791 | } | 801 | } |
@@ -796,15 +806,15 @@ export default { | @@ -796,15 +806,15 @@ export default { | ||
796 | }, | 806 | }, |
797 | async _CreatedTypeList() { | 807 | async _CreatedTypeList() { |
798 | //测验类型查询 | 808 | //测验类型查询 |
799 | - const { data, code, message } = await this.$request.fetchTypeNames(); | ||
800 | - if (code == 0) { | 809 | + const { data, status, message } = await this.$request.fetchTypeNames(); |
810 | + if (status == 0) { | ||
801 | this.answerTypeList = [...data.list] || []; | 811 | this.answerTypeList = [...data.list] || []; |
802 | this.answerTypeList.unshift({ | 812 | this.answerTypeList.unshift({ |
803 | - typeName: "--", | 813 | + typeName: "", |
804 | id: "", | 814 | id: "", |
805 | }); | 815 | }); |
806 | if (this.type != 2) { | 816 | if (this.type != 2) { |
807 | - this.form.tag = this.answerTypeList[0].id || ""; | 817 | + this.form.tagId = this.answerTypeList[0].id || ""; |
808 | } | 818 | } |
809 | } else { | 819 | } else { |
810 | this.$message.error(message); | 820 | this.$message.error(message); |
@@ -812,8 +822,8 @@ export default { | @@ -812,8 +822,8 @@ export default { | ||
812 | }, | 822 | }, |
813 | async _GradeList() { | 823 | async _GradeList() { |
814 | //查询年级列表 | 824 | //查询年级列表 |
815 | - const { data, code, message } = await this.$request.fetchGradeList(); | ||
816 | - if (code == 0) { | 825 | + const { data, status, message } = await this.$request.fetchGradeList(); |
826 | + if (status == 0) { | ||
817 | this.gradeList = [...data.gradeNames] || []; | 827 | this.gradeList = [...data.gradeNames] || []; |
818 | if (this.type != 2) { | 828 | if (this.type != 2) { |
819 | this.form.gradeName = this.gradeList[0]; | 829 | this.form.gradeName = this.gradeList[0]; |
@@ -829,38 +839,56 @@ export default { | @@ -829,38 +839,56 @@ export default { | ||
829 | if (grade) { | 839 | if (grade) { |
830 | param.gradeName = grade; | 840 | param.gradeName = grade; |
831 | } | 841 | } |
832 | - const { data, code, message } = await this.$request.fetchSubjectList( | 842 | + const { data, status, message } = await this.$request.fetchSubjectList( |
833 | param | 843 | param |
834 | ); | 844 | ); |
835 | - if (code === 0) { | 845 | + if (status === 0) { |
836 | this.subjectList = data.list.map((item) => { | 846 | this.subjectList = data.list.map((item) => { |
837 | return { | 847 | return { |
838 | - value: item.subjectId, | 848 | + value: item.subjectName, |
839 | label: item.subjectName, | 849 | label: item.subjectName, |
840 | }; | 850 | }; |
841 | }); | 851 | }); |
842 | - if (this.subjectList.length > 1) { | ||
843 | - let isTeachingCourse = false; | ||
844 | - this.subjectList.map((item) => { | ||
845 | - if (item.isTeachingCourse) { | ||
846 | - isTeachingCourse = true; | ||
847 | - } | ||
848 | - }); | ||
849 | - if (this.type != 2) { | ||
850 | - !isTeachingCourse && !dont | ||
851 | - ? (this.form.subjectId = this.subjectList[0].value) | ||
852 | - : ""; | ||
853 | - } | ||
854 | - } | ||
855 | - if (this.subjectList.length > 0 && !dont) { | ||
856 | - this.form.subjectId = this.subjectList[0].value; | 852 | + if (this.subjectList.length) { |
853 | + this.form.subjectName = this.subjectList[0].value; | ||
857 | } | 854 | } |
858 | } else { | 855 | } else { |
859 | this.$message.error(message); | 856 | this.$message.error(message); |
860 | } | 857 | } |
861 | }, | 858 | }, |
862 | - | ||
863 | - | 859 | + async _QueryDetail() { |
860 | + //查询年级列表 | ||
861 | + const { data, status, message } = await this.$request.fetchPaperDetail({ | ||
862 | + paperId: this.$route.query.paperId, | ||
863 | + }); | ||
864 | + if (status == 0) { | ||
865 | + this.form.title = data.title; | ||
866 | + this.form.tagId = data.tagId; | ||
867 | + this.form.subjectName = data.subjectName; | ||
868 | + this.form.gradeName = data.gradeName; | ||
869 | + this.form.examsDuration = data.examsDuration; | ||
870 | + this.form.sharingType = data.sharingType; | ||
871 | + this.form.questionList = data.questionList?.map((item) => { | ||
872 | + let subQuestions = | ||
873 | + item.subQuestions?.map((items) => { | ||
874 | + return { | ||
875 | + questionType: items.questionType, | ||
876 | + score: items.score, | ||
877 | + partScore: items.partScore, | ||
878 | + selectNum: items.answerOptions.split(',').length, | ||
879 | + answerOptions: [...items.answerOptions], | ||
880 | + correctAnswer: items.correctAnswer, | ||
881 | + }; | ||
882 | + }) || []; | ||
883 | + return { | ||
884 | + questionTitle: item.questionTitle, | ||
885 | + subQuestions: subQuestions, | ||
886 | + }; | ||
887 | + }); | ||
888 | + } else { | ||
889 | + this.$message.error(message); | ||
890 | + } | ||
891 | + }, | ||
864 | }, | 892 | }, |
865 | }; | 893 | }; |
866 | </script> | 894 | </script> |
src/views/examinationPaper/edit.vue
@@ -104,6 +104,7 @@ | @@ -104,6 +104,7 @@ | ||
104 | export default { | 104 | export default { |
105 | data() { | 105 | data() { |
106 | return { | 106 | return { |
107 | + questionList:[], | ||
107 | form: { | 108 | form: { |
108 | //答题卡详情 | 109 | //答题卡详情 |
109 | title: "", | 110 | title: "", |
@@ -128,7 +129,7 @@ export default { | @@ -128,7 +129,7 @@ export default { | ||
128 | }, | 129 | }, |
129 | }, | 130 | }, |
130 | created() { | 131 | created() { |
131 | - this.form = this.$route.query.form && JSON.parse(this.$route.query.form); | 132 | + this._QueryDetail() |
132 | }, | 133 | }, |
133 | methods: { | 134 | methods: { |
134 | linkBack() { | 135 | linkBack() { |
@@ -199,17 +200,36 @@ export default { | @@ -199,17 +200,36 @@ export default { | ||
199 | sub.correctAnswer = arrs.sort().join(""); | 200 | sub.correctAnswer = arrs.sort().join(""); |
200 | } | 201 | } |
201 | }, | 202 | }, |
202 | - save(){ | ||
203 | - //删除答题卡 | ||
204 | - // const { data, code, message } = await this.$request.updateAnswerSheet({...this.form}); | ||
205 | - // if (code == 0) { | 203 | + async save(){ |
204 | + let questionList = [] | ||
205 | + //更新答题卡 | ||
206 | + const { data, status, message } = await this.$request.modifyPaper({ | ||
207 | + paperId:this.form.id, | ||
208 | + questionList:questionList | ||
209 | + }); | ||
210 | + if (status == 0) { | ||
206 | this.$router.push({ | 211 | this.$router.push({ |
207 | path:"/examinationPaper" | 212 | path:"/examinationPaper" |
208 | }) | 213 | }) |
209 | - // } else { | ||
210 | - // this.$message.error(message); | ||
211 | - // } | ||
212 | - } | 214 | + } else { |
215 | + this.$message.error(message); | ||
216 | + } | ||
217 | + }, | ||
218 | + async _QueryDetail() { | ||
219 | + //查询年级列表 | ||
220 | + const { data, status, message } = await this.$request.fetchPaperDetail({ | ||
221 | + paperId:this.$route.query.paperId | ||
222 | + }); | ||
223 | + if (status == 0) { | ||
224 | + this.form = deepClone(data) | ||
225 | + this.questionList = deepClone(data.questionList) | ||
226 | + this.form.questionList.map(item=>{ | ||
227 | + item.score = "" | ||
228 | + }) | ||
229 | + } else { | ||
230 | + this.$message.error(message); | ||
231 | + } | ||
232 | + }, | ||
213 | }, | 233 | }, |
214 | }; | 234 | }; |
215 | </script> | 235 | </script> |
src/views/examinationPaper/index.vue
@@ -19,23 +19,23 @@ | @@ -19,23 +19,23 @@ | ||
19 | 19 | ||
20 | <div class="answer-header"> | 20 | <div class="answer-header"> |
21 | <div class="sel-box"> | 21 | <div class="sel-box"> |
22 | - <el-cascader | ||
23 | - class="sel sel2" | ||
24 | - :options="options" | ||
25 | - :props="props" | ||
26 | - collapse-tags | ||
27 | - clearable | ||
28 | - placeholder="选择年级-班级" | ||
29 | - v-model="query.gradeClass" | ||
30 | - @change="changeGrade" | ||
31 | - ><template slot-scope="{ node, data }"> | ||
32 | - <span>{{ data.label }}</span> | ||
33 | - <span v-if="!node.isLeaf"> ({{ data.children.length }}) </span> | ||
34 | - </template></el-cascader | 22 | + <el-select |
23 | + class="sel" | ||
24 | + v-model="query.classId" | ||
25 | + placeholder="选择班级" | ||
26 | + @change="changClazz" | ||
35 | > | 27 | > |
28 | + <el-option | ||
29 | + v-for="item in classList" | ||
30 | + :key="item.value" | ||
31 | + :label="item.label" | ||
32 | + :value="item.value" | ||
33 | + > | ||
34 | + </el-option> | ||
35 | + </el-select> | ||
36 | <el-select | 36 | <el-select |
37 | class="sel" | 37 | class="sel" |
38 | - v-model="query.subjectId" | 38 | + v-model="query.subjectName" |
39 | placeholder="选择科目" | 39 | placeholder="选择科目" |
40 | @change="_QueryData()" | 40 | @change="_QueryData()" |
41 | > | 41 | > |
@@ -49,15 +49,15 @@ | @@ -49,15 +49,15 @@ | ||
49 | </el-select> | 49 | </el-select> |
50 | <el-select | 50 | <el-select |
51 | class="sel" | 51 | class="sel" |
52 | - v-model="query.typeName" | 52 | + v-model="query.tagId" |
53 | placeholder="选择类型" | 53 | placeholder="选择类型" |
54 | @change="_QueryData()" | 54 | @change="_QueryData()" |
55 | > | 55 | > |
56 | <el-option | 56 | <el-option |
57 | v-for="item in typeList" | 57 | v-for="item in typeList" |
58 | :key="item" | 58 | :key="item" |
59 | - :label="item" | ||
60 | - :value="item" | 59 | + :label="item.label" |
60 | + :value="item.value" | ||
61 | >{{ item }} | 61 | >{{ item }} |
62 | </el-option> | 62 | </el-option> |
63 | </el-select> | 63 | </el-select> |
@@ -76,7 +76,7 @@ | @@ -76,7 +76,7 @@ | ||
76 | </div> | 76 | </div> |
77 | </div> | 77 | </div> |
78 | <p class="tips"> | 78 | <p class="tips"> |
79 | - <span>另有25份已经归档的答题卡,</span> | 79 | + <span>另有{{ archivedTotal }}份已经归档的答题卡,</span> |
80 | <router-link to="/examinationPaperRecycle">点击查看>></router-link> | 80 | <router-link to="/examinationPaperRecycle">点击查看>></router-link> |
81 | </p> | 81 | </p> |
82 | <ul class="content"> | 82 | <ul class="content"> |
@@ -87,29 +87,29 @@ | @@ -87,29 +87,29 @@ | ||
87 | </div> | 87 | </div> |
88 | <div class="info"> | 88 | <div class="info"> |
89 | <p class="title"> | 89 | <p class="title"> |
90 | - {{ item.title }} <span class="label">{{ item.typeName }}</span> | 90 | + {{ item.title }} <span class="label">{{ item.tag }}</span> |
91 | </p> | 91 | </p> |
92 | <p class="num"> | 92 | <p class="num"> |
93 | - 总题数:{{ item.answerNum }} | 93 | + 总题数:{{ item.questionNum }} |
94 | <em class="s-line">|</em> | 94 | <em class="s-line">|</em> |
95 | - 预计时长:{{ item.time }} | 95 | + 预计时长:{{ item.examsDuration }} |
96 | <em class="s-line">|</em> | 96 | <em class="s-line">|</em> |
97 | 授课端同步: | 97 | 授课端同步: |
98 | <span | 98 | <span |
99 | class="clazz" | 99 | class="clazz" |
100 | - v-for="(clazzChild, indexs) in item.aboutClazz" | ||
101 | - :key="clazzChild" | 100 | + v-for="(clazzChild, indexs) in item.classList" |
101 | + :key="clazzChild.classId" | ||
102 | >{{ | 102 | >{{ |
103 | - `${clazzChild}班${ | 103 | + `${clazzChild.className}班${ |
104 | indexs != item.aboutClazz.length - 1 ? "、" : "" | 104 | indexs != item.aboutClazz.length - 1 ? "、" : "" |
105 | }` | 105 | }` |
106 | }} | 106 | }} |
107 | - <i class="el-icon-success"></i | 107 | + <i v-if="clazzChild.keepStatus == 1" class="el-icon-success"></i |
108 | ></span> | 108 | ></span> |
109 | </p> | 109 | </p> |
110 | <p class="person"> | 110 | <p class="person"> |
111 | - {{ item.teacher }}<em class="s-line">|</em | ||
112 | - ><span class="date">{{ item.date }}</span> | 111 | + {{ item.realName }}<em class="s-line">|</em |
112 | + ><span class="date">{{ item.modifiedTime }}</span> | ||
113 | </p> | 113 | </p> |
114 | </div> | 114 | </div> |
115 | <div class="btn-box"> | 115 | <div class="btn-box"> |
@@ -134,7 +134,9 @@ | @@ -134,7 +134,9 @@ | ||
134 | icon="el-icon-more" | 134 | icon="el-icon-more" |
135 | ></el-button> | 135 | ></el-button> |
136 | <el-dropdown-menu slot="dropdown"> | 136 | <el-dropdown-menu slot="dropdown"> |
137 | - <el-dropdown-item :command="1" v-if="this.$store.info.id == item.id">修改分享范围</el-dropdown-item> | 137 | + <el-dropdown-item :command="1" v-if="userId == item.id" |
138 | + >修改分享范围</el-dropdown-item | ||
139 | + > | ||
138 | <el-dropdown-item :command="2">复制</el-dropdown-item> | 140 | <el-dropdown-item :command="2">复制</el-dropdown-item> |
139 | <el-dropdown-item :command="3">归档</el-dropdown-item> | 141 | <el-dropdown-item :command="3">归档</el-dropdown-item> |
140 | </el-dropdown-menu> | 142 | </el-dropdown-menu> |
@@ -144,11 +146,6 @@ | @@ -144,11 +146,6 @@ | ||
144 | </ul> | 146 | </ul> |
145 | <el-dialog title="选择分享范围" :visible.sync="dialogVisible" width="400"> | 147 | <el-dialog title="选择分享范围" :visible.sync="dialogVisible" width="400"> |
146 | <el-form :model="shareForm" :rules="shareRulesForm" label-width="160px"> | 148 | <el-form :model="shareForm" :rules="shareRulesForm" label-width="160px"> |
147 | - <el-form-item label="适用年级:"> | ||
148 | - <el-col :span="11"> | ||
149 | - <el-input v-model="shareForm.grade"></el-input> | ||
150 | - </el-col> | ||
151 | - </el-form-item> | ||
152 | <el-form-item prop="share" label="分享范围:"> | 149 | <el-form-item prop="share" label="分享范围:"> |
153 | <el-radio-group v-model="shareForm.share"> | 150 | <el-radio-group v-model="shareForm.share"> |
154 | <el-radio :label="1">任课班级分享</el-radio> | 151 | <el-radio :label="1">任课班级分享</el-radio> |
@@ -169,62 +166,23 @@ export default { | @@ -169,62 +166,23 @@ export default { | ||
169 | name: "examinationPaper", | 166 | name: "examinationPaper", |
170 | data() { | 167 | data() { |
171 | return { | 168 | return { |
172 | - props: { multiple: true, checkStrictly: true }, | ||
173 | - options: [ | ||
174 | - { | ||
175 | - value: 1, | ||
176 | - label: "一年级", | ||
177 | - children: [ | ||
178 | - { | ||
179 | - value: 2, | ||
180 | - label: "二班", | ||
181 | - }, | ||
182 | - { | ||
183 | - value: 3, | ||
184 | - label: "三班", | ||
185 | - }, | ||
186 | - ], | ||
187 | - }, | ||
188 | - { | ||
189 | - value: 4, | ||
190 | - label: "二年级", | ||
191 | - children: [ | ||
192 | - { | ||
193 | - value: 5, | ||
194 | - label: "二班", | ||
195 | - }, | ||
196 | - { | ||
197 | - value: 6, | ||
198 | - label: "三班", | ||
199 | - }, | ||
200 | - ], | ||
201 | - }, | ||
202 | - ], | 169 | + userId: "", |
203 | dialogVisible: false, | 170 | dialogVisible: false, |
204 | query: { | 171 | query: { |
205 | - gradeClass: [], | ||
206 | - subjectId: "0", | ||
207 | - typeName: "周测", | 172 | + classId: "", |
173 | + subjectName: "", | ||
174 | + tagId: "", | ||
208 | title: "", | 175 | title: "", |
209 | }, | 176 | }, |
210 | - classList: [ | ||
211 | - { | ||
212 | - label: "2003班", | ||
213 | - value: "2003", | ||
214 | - }, | ||
215 | - ], | ||
216 | - subjectList: [ | ||
217 | - { | ||
218 | - label: "语文", | ||
219 | - value: "0", | ||
220 | - }, | ||
221 | - ], | ||
222 | - typeList: ["周测"], | 177 | + classList: [], |
178 | + subjectList: [], | ||
179 | + typeList: [], | ||
180 | + archivedTotal: 0, //已归档答题卡数量 | ||
223 | tableData: [ | 181 | tableData: [ |
224 | { | 182 | { |
225 | title: "数学样例试卷202211-324654", | 183 | title: "数学样例试卷202211-324654", |
226 | id: "1062837", | 184 | id: "1062837", |
227 | - typeName: "周测", | 185 | + tag: "周测", |
228 | answerNum: 45, | 186 | answerNum: 45, |
229 | time: 90, | 187 | time: 90, |
230 | aboutClazz: [203, 204], | 188 | aboutClazz: [203, 204], |
@@ -246,7 +204,7 @@ export default { | @@ -246,7 +204,7 @@ export default { | ||
246 | score: 1, | 204 | score: 1, |
247 | partScore: 0, | 205 | partScore: 0, |
248 | selectNum: 4, | 206 | selectNum: 4, |
249 | - answerOptions: ["A", "B", "C", "D"], | 207 | + answerOptions: "A,B,C,D", |
250 | correctAnswer: "B", | 208 | correctAnswer: "B", |
251 | }, | 209 | }, |
252 | ], | 210 | ], |
@@ -256,7 +214,7 @@ export default { | @@ -256,7 +214,7 @@ export default { | ||
256 | { | 214 | { |
257 | title: "数学样例试卷202211-4180949", | 215 | title: "数学样例试卷202211-4180949", |
258 | id: "1062838", | 216 | id: "1062838", |
259 | - typeName: "周测", | 217 | + tag: "周测", |
260 | answerNum: 45, | 218 | answerNum: 45, |
261 | time: 90, | 219 | time: 90, |
262 | aboutClazz: [203, 204], | 220 | aboutClazz: [203, 204], |
@@ -288,14 +246,22 @@ export default { | @@ -288,14 +246,22 @@ export default { | ||
288 | ], | 246 | ], |
289 | shareForm: { | 247 | shareForm: { |
290 | id: "", | 248 | id: "", |
291 | - grade: "", | ||
292 | share: 1, | 249 | share: 1, |
293 | }, | 250 | }, |
294 | shareRulesForm: { | 251 | shareRulesForm: { |
295 | share: [{ required: true, message: "选择分享范围", trigger: "blur" }], | 252 | share: [{ required: true, message: "选择分享范围", trigger: "blur" }], |
296 | }, | 253 | }, |
254 | + page: 1, | ||
255 | + size: 20, | ||
297 | }; | 256 | }; |
298 | }, | 257 | }, |
258 | + async created() { | ||
259 | + this.userId = this.$store.getters.info.uid || ""; | ||
260 | + await this._QueryClassList(); | ||
261 | + await this._QuerySubjectList(); | ||
262 | + this._QueryData(); | ||
263 | + this._QueryTypeList(); | ||
264 | + }, | ||
299 | methods: { | 265 | methods: { |
300 | toAdd(query) { | 266 | toAdd(query) { |
301 | let routerItem = { | 267 | let routerItem = { |
@@ -308,7 +274,7 @@ export default { | @@ -308,7 +274,7 @@ export default { | ||
308 | this.$router.push({ | 274 | this.$router.push({ |
309 | path: "/examinationPaperEdit", | 275 | path: "/examinationPaperEdit", |
310 | query: { | 276 | query: { |
311 | - form: JSON.stringify(item), | 277 | + paperId: item.id, |
312 | }, | 278 | }, |
313 | }); | 279 | }); |
314 | }, | 280 | }, |
@@ -319,13 +285,12 @@ export default { | @@ -319,13 +285,12 @@ export default { | ||
319 | case 1: | 285 | case 1: |
320 | //修改分享范围 | 286 | //修改分享范围 |
321 | that.shareForm.id = item.id; | 287 | that.shareForm.id = item.id; |
322 | - that.shareForm.grade = item.grade; | ||
323 | that.shareForm.share = item.share || 1; | 288 | that.shareForm.share = item.share || 1; |
324 | that.dialogVisible = true; | 289 | that.dialogVisible = true; |
325 | break; | 290 | break; |
326 | case 2: | 291 | case 2: |
327 | //复制 | 292 | //复制 |
328 | - that.toAdd({ type: 2, form: JSON.stringify(item) }); | 293 | + that.toAdd({ type: 2, paperId: item.id }); |
329 | break; | 294 | break; |
330 | case 3: | 295 | case 3: |
331 | //归档 | 296 | //归档 |
@@ -335,51 +300,61 @@ export default { | @@ -335,51 +300,61 @@ export default { | ||
335 | }, | 300 | }, |
336 | async saveShare() { | 301 | async saveShare() { |
337 | //修改分享范围 | 302 | //修改分享范围 |
338 | - // const { data, code, message } = await this.$request.fetchAnswerList({ | ||
339 | - // ...this.shareForm, | ||
340 | - // }); | ||
341 | - // this.loading = false; | ||
342 | - // if (code === 0) { | ||
343 | - this.shareForm.id = ""; | ||
344 | - this.shareForm.grade = ""; | ||
345 | - this.shareForm.share = 1; | ||
346 | - dialogVisible = false; | ||
347 | - // } else { | ||
348 | - // this.$message.error(message); | ||
349 | - // } | 303 | + const { data, status, message } = await this.$request.modifyPaper({ |
304 | + paperId: that.shareForm.id, | ||
305 | + sharingType: that.shareForm.share, | ||
306 | + }); | ||
307 | + this.loading = false; | ||
308 | + if (status === 0) { | ||
309 | + this.shareForm.id = ""; | ||
310 | + this.shareForm.share = 1; | ||
311 | + dialogVisible = false; | ||
312 | + } else { | ||
313 | + this.$message.error(message); | ||
314 | + } | ||
350 | }, | 315 | }, |
351 | async recovery(item) { | 316 | async recovery(item) { |
352 | //归档 | 317 | //归档 |
353 | - // const { data, code, message } = await this.$request.fetchAnswerList({ | ||
354 | - // ...this.shareForm, | ||
355 | - // }); | ||
356 | - // if (code === 0) { | ||
357 | - this.tableData = this.tableData.filter((items) => { | ||
358 | - return items.id != item.id; | 318 | + const { data, status, message } = await this.$request.modifyPaper({ |
319 | + paperId: item.id, | ||
320 | + status: 2, | ||
359 | }); | 321 | }); |
360 | - // } else { | ||
361 | - // this.$message.error(message); | ||
362 | - // } | 322 | + if (status === 0) { |
323 | + let type = this.query.title ? 1 : 0; | ||
324 | + this.page = 1; | ||
325 | + this._QueryData(type); | ||
326 | + } else { | ||
327 | + this.$message.error(message); | ||
328 | + } | ||
363 | }, | 329 | }, |
364 | - async changeGrade() { | ||
365 | - //切换班级 | 330 | + //切换班级 |
331 | + async changClazz() { | ||
366 | await this._QuerySubjectList(); | 332 | await this._QuerySubjectList(); |
367 | - this._QueryData(); | 333 | + this._QueryData(false); |
368 | }, | 334 | }, |
369 | - async changClazz() {}, | ||
370 | // 查找答题卡类型 | 335 | // 查找答题卡类型 |
371 | async _QueryTypeList() { | 336 | async _QueryTypeList() { |
372 | - const { data, code, message } = await this.$request.fetchTypeNames(); | ||
373 | - if (code === 0) { | ||
374 | - this.typeList = [...data.typeNames] || []; | 337 | + const { data, status, message } = await this.$request.fetchTypeNames(); |
338 | + if (status === 0) { | ||
339 | + this.typeList = | ||
340 | + data.subjectNames.map((item) => { | ||
341 | + return { | ||
342 | + value: item.tagId, | ||
343 | + label: item.tag, | ||
344 | + }; | ||
345 | + }) || []; | ||
346 | + this.subjectNames.unshift({ | ||
347 | + value: "", | ||
348 | + label: "--", | ||
349 | + }); | ||
375 | } else { | 350 | } else { |
376 | this.$message.error(message); | 351 | this.$message.error(message); |
377 | } | 352 | } |
378 | }, | 353 | }, |
379 | // 查找班级 | 354 | // 查找班级 |
380 | async _QueryClassList() { | 355 | async _QueryClassList() { |
381 | - const { data, code, message } = await this.$request.fetchClassList(); | ||
382 | - if (code === 0) { | 356 | + const { data, status, message } = await this.$request.fetchClassList(); |
357 | + if (status === 0) { | ||
383 | if (!!data.list) { | 358 | if (!!data.list) { |
384 | this.classList = data.list.map((item) => { | 359 | this.classList = data.list.map((item) => { |
385 | return { | 360 | return { |
@@ -395,14 +370,14 @@ export default { | @@ -395,14 +370,14 @@ export default { | ||
395 | }, | 370 | }, |
396 | // 查找科目 | 371 | // 查找科目 |
397 | async _QuerySubjectList() { | 372 | async _QuerySubjectList() { |
398 | - const { data, code, message } = await this.$request.fetchSubjectList({ | 373 | + const { data, status, message } = await this.$request.fetchSubjectList({ |
399 | clazzId: this.query.clazzId, | 374 | clazzId: this.query.clazzId, |
400 | }); | 375 | }); |
401 | - if (code === 0) { | ||
402 | - this.subjectList = data.list.map((item) => { | 376 | + if (status === 0) { |
377 | + this.subjectList = data.subjectNames.map((item) => { | ||
403 | return { | 378 | return { |
404 | - value: item.subjectId, | ||
405 | - label: item.subjectName, | 379 | + value: item, |
380 | + label: item, | ||
406 | }; | 381 | }; |
407 | }); | 382 | }); |
408 | this.query.clazzId = this.subjectList[0]?.value; | 383 | this.query.clazzId = this.subjectList[0]?.value; |
@@ -418,8 +393,8 @@ export default { | @@ -418,8 +393,8 @@ export default { | ||
418 | query = { ...this.query }; | 393 | query = { ...this.query }; |
419 | } else { | 394 | } else { |
420 | query = { title: this.query.title }; | 395 | query = { title: this.query.title }; |
421 | - this.query.typeName = ""; | ||
422 | - this.query.subjectId = ""; | 396 | + this.query.tagId = ""; |
397 | + this.query.subjectName = ""; | ||
423 | } | 398 | } |
424 | query.clazzId = this.query.clazzId; | 399 | query.clazzId = this.query.clazzId; |
425 | for (let key in query) { | 400 | for (let key in query) { |
@@ -434,11 +409,14 @@ export default { | @@ -434,11 +409,14 @@ export default { | ||
434 | return; | 409 | return; |
435 | } | 410 | } |
436 | this.loading = true; | 411 | this.loading = true; |
437 | - const { data, code, message } = await this.$request.fetchAnswerList({ | 412 | + const { data, status, message } = await this.$request.fetchPaperList({ |
438 | ...query, | 413 | ...query, |
414 | + status: 1, | ||
415 | + page: this.page, | ||
416 | + size: this.size, | ||
439 | }); | 417 | }); |
440 | this.loading = false; | 418 | this.loading = false; |
441 | - if (code === 0) { | 419 | + if (status === 0) { |
442 | this.total = data.total; | 420 | this.total = data.total; |
443 | this.tableData = (data.list && [...data.list]) || []; | 421 | this.tableData = (data.list && [...data.list]) || []; |
444 | } else { | 422 | } else { |
src/views/examinationPaper/recycle.vue
@@ -7,7 +7,7 @@ | @@ -7,7 +7,7 @@ | ||
7 | </back-box> | 7 | </back-box> |
8 | <div class="answer-header"> | 8 | <div class="answer-header"> |
9 | <div class="sel-box"> | 9 | <div class="sel-box"> |
10 | - <el-cascader | 10 | + <!-- <el-cascader |
11 | class="sel sel2" | 11 | class="sel sel2" |
12 | :options="options" | 12 | :options="options" |
13 | :props="props" | 13 | :props="props" |
@@ -20,14 +20,27 @@ | @@ -20,14 +20,27 @@ | ||
20 | <span>{{ data.label }}</span> | 20 | <span>{{ data.label }}</span> |
21 | <span v-if="!node.isLeaf"> ({{ data.children.length }}) </span> | 21 | <span v-if="!node.isLeaf"> ({{ data.children.length }}) </span> |
22 | </template></el-cascader | 22 | </template></el-cascader |
23 | + > --> | ||
24 | + <el-select | ||
25 | + class="sel" | ||
26 | + v-model="query.classId" | ||
27 | + placeholder="选择班级" | ||
28 | + @change="changClazz" | ||
23 | > | 29 | > |
30 | + <el-option | ||
31 | + v-for="item in classList" | ||
32 | + :key="item.value" | ||
33 | + :label="item.label" | ||
34 | + :value="item.value" | ||
35 | + > | ||
36 | + </el-option> | ||
37 | + </el-select> | ||
24 | <el-select | 38 | <el-select |
25 | class="sel" | 39 | class="sel" |
26 | - v-model="query.subjectId" | 40 | + v-model="query.subjectName" |
27 | placeholder="选择科目" | 41 | placeholder="选择科目" |
28 | @change="_QueryData()" | 42 | @change="_QueryData()" |
29 | > | 43 | > |
30 | - <el-option label="全部" value=""></el-option> | ||
31 | <el-option | 44 | <el-option |
32 | v-for="item in subjectList" | 45 | v-for="item in subjectList" |
33 | :key="item.value" | 46 | :key="item.value" |
@@ -38,17 +51,16 @@ | @@ -38,17 +51,16 @@ | ||
38 | </el-select> | 51 | </el-select> |
39 | <el-select | 52 | <el-select |
40 | class="sel" | 53 | class="sel" |
41 | - v-model="query.type" | 54 | + v-model="query.tagId" |
42 | placeholder="选择类型" | 55 | placeholder="选择类型" |
43 | @change="_QueryData()" | 56 | @change="_QueryData()" |
44 | > | 57 | > |
45 | - <el-option label="全部" value=""></el-option> | ||
46 | <el-option | 58 | <el-option |
47 | v-for="item in typeList" | 59 | v-for="item in typeList" |
48 | - :key="item.value" | 60 | + :key="item" |
49 | :label="item.label" | 61 | :label="item.label" |
50 | :value="item.value" | 62 | :value="item.value" |
51 | - >{{ item.label }} | 63 | + >{{ item }} |
52 | </el-option> | 64 | </el-option> |
53 | </el-select> | 65 | </el-select> |
54 | 66 | ||
@@ -74,19 +86,18 @@ | @@ -74,19 +86,18 @@ | ||
74 | </div> | 86 | </div> |
75 | <div class="info"> | 87 | <div class="info"> |
76 | <p class="title"> | 88 | <p class="title"> |
77 | - {{ item.title }} <span class="label">{{ item.typeName }}</span> | 89 | + {{ item.title }} <span class="label">{{ item.tag }}</span> |
78 | </p> | 90 | </p> |
79 | <p class="num"> | 91 | <p class="num"> |
80 | {{ item.gradeName }} | 92 | {{ item.gradeName }} |
81 | <em class="s-line">|</em> | 93 | <em class="s-line">|</em> |
82 | - 总题数:{{ item.answerNum }} | ||
83 | - <em class="s-line">|</em> | ||
84 | - 预计时长:{{ item.time }} | 94 | + 总题数:{{ item.questionNum }} |
85 | <em class="s-line">|</em> | 95 | <em class="s-line">|</em> |
96 | + 预计时长:{{ item.examsDuration }} | ||
86 | </p> | 97 | </p> |
87 | <p class="person"> | 98 | <p class="person"> |
88 | - {{ item.teacher }}<em class="s-line">|</em | ||
89 | - ><span class="date">{{ item.date }}</span> | 99 | + {{ item.realName }}<em class="s-line">|</em |
100 | + ><span class="date">{{ item.modifiedTime }}</span> | ||
90 | </p> | 101 | </p> |
91 | </div> | 102 | </div> |
92 | <div class="btn-box"> | 103 | <div class="btn-box"> |
@@ -97,7 +108,7 @@ | @@ -97,7 +108,7 @@ | ||
97 | size="mini" | 108 | size="mini" |
98 | circle | 109 | circle |
99 | icon="fa fa-mail-reply" | 110 | icon="fa fa-mail-reply" |
100 | - @click="have(item)" | 111 | + @click="modify(item)" |
101 | ></el-button> | 112 | ></el-button> |
102 | </el-tooltip> | 113 | </el-tooltip> |
103 | <el-popconfirm title="确定删除这张答题卡吗?" @confirm="remove(item)"> | 114 | <el-popconfirm title="确定删除这张答题卡吗?" @confirm="remove(item)"> |
@@ -152,17 +163,29 @@ export default { | @@ -152,17 +163,29 @@ export default { | ||
152 | }, | 163 | }, |
153 | ], | 164 | ], |
154 | query: { | 165 | query: { |
155 | - gradeClass: [], | ||
156 | - type: "", | ||
157 | - subjectId: "", | 166 | + classId: 2003, |
167 | + subjectName: "语文", | ||
168 | + tagId: 1, | ||
158 | title: "", | 169 | title: "", |
159 | }, | 170 | }, |
160 | - gradeList: ["二年级"], | 171 | + classList: [ |
172 | + { | ||
173 | + label: "2003班", | ||
174 | + value: 2003, | ||
175 | + }, | ||
176 | + ], | ||
177 | + subjectList: [ | ||
178 | + { | ||
179 | + label: "语文", | ||
180 | + value: "语文", | ||
181 | + }, | ||
182 | + ], | ||
161 | typeList: [ | 183 | typeList: [ |
162 | - { label: "周测", value: 1 }, | ||
163 | - { label: "月测", value: 2 }, | 184 | + { |
185 | + label: "周测", | ||
186 | + value: 1, | ||
187 | + }, | ||
164 | ], | 188 | ], |
165 | - subjectList: [], | ||
166 | tableData: [ | 189 | tableData: [ |
167 | { | 190 | { |
168 | title: "数学样例试卷202211-324654", | 191 | title: "数学样例试卷202211-324654", |
@@ -192,28 +215,42 @@ export default { | @@ -192,28 +215,42 @@ export default { | ||
192 | total: 0, | 215 | total: 0, |
193 | }; | 216 | }; |
194 | }, | 217 | }, |
218 | + async created() { | ||
219 | + await this._QueryClassList(); | ||
220 | + await this._QuerySubjectList(); | ||
221 | + this._QueryTypeList(); | ||
222 | + this._QueryData(false); | ||
223 | + }, | ||
195 | methods: { | 224 | methods: { |
196 | - have(obj) { | ||
197 | - //删除答题卡 | ||
198 | - // const { data, code, message } = await this.$request.useAnswerSheet(); | ||
199 | - // if (code == 0) { | ||
200 | - this.tableData = this.tableData.filter((item) => { | ||
201 | - return obj.if != item.id; | 225 | + async modify(obj) { |
226 | + //恢复答题卡 | ||
227 | + const { data, status, message } = await this.$request.modifyPaper({ | ||
228 | + paperId: obj.id, | ||
229 | + status: 2, | ||
202 | }); | 230 | }); |
203 | - // } else { | ||
204 | - // this.$message.error(message); | ||
205 | - // } | 231 | + if (status == 0) { |
232 | + let type = this.query.title ? 1 : 0; | ||
233 | + this._QueryData(type); | ||
234 | + } else { | ||
235 | + this.$message.error(message); | ||
236 | + } | ||
206 | }, | 237 | }, |
207 | - remove(obj) { | 238 | + async remove(obj) { |
208 | //删除答题卡 | 239 | //删除答题卡 |
209 | - // const { data, code, message } = await this.$request.removeAnswerSheet(); | ||
210 | - // if (code == 0) { | ||
211 | - this.tableData = this.tableData.filter((item) => { | ||
212 | - return obj.if != item.id; | 240 | + const { data, status, message } = await this.$request.delPaper({ |
241 | + paperId: obj.id, | ||
213 | }); | 242 | }); |
214 | - // } else { | ||
215 | - // this.$message.error(message); | ||
216 | - // } | 243 | + if (status == 0) { |
244 | + let type = this.query.title ? 1 : 0; | ||
245 | + this._QueryData(type); | ||
246 | + } else { | ||
247 | + this.$message.error(message); | ||
248 | + } | ||
249 | + }, | ||
250 | + //切换班级 | ||
251 | + async changClazz() { | ||
252 | + await this._QuerySubjectList(); | ||
253 | + this._QueryData(false); | ||
217 | }, | 254 | }, |
218 | async _QueryData(type) { | 255 | async _QueryData(type) { |
219 | //获取答题卡列表 | 256 | //获取答题卡列表 |
@@ -232,58 +269,62 @@ export default { | @@ -232,58 +269,62 @@ export default { | ||
232 | } | 269 | } |
233 | } | 270 | } |
234 | this.loading = true; | 271 | this.loading = true; |
235 | - const { data, code, message } = await this.$request.fetchAnswerList({ | 272 | + const { data, status, message } = await this.$request.fetchAnswerList({ |
236 | ...query, | 273 | ...query, |
237 | }); | 274 | }); |
238 | this.loading = false; | 275 | this.loading = false; |
239 | - if (code === 0) { | 276 | + if (status === 0) { |
240 | this.total = data.total; | 277 | this.total = data.total; |
241 | this.tableData = (data.list && [...data.list]) || []; | 278 | this.tableData = (data.list && [...data.list]) || []; |
242 | } else { | 279 | } else { |
243 | this.$message.error(message); | 280 | this.$message.error(message); |
244 | } | 281 | } |
245 | }, | 282 | }, |
246 | - // 查找答题卡类型 | ||
247 | - async _QueryTypeList() { | ||
248 | - const { data, code, message } = await this.$request.fetchTypeNames(); | ||
249 | - if (code === 0) { | ||
250 | - this.typeList = [...data.typeNames] || []; | 283 | + // 查找班级 |
284 | + async _QueryClassList() { | ||
285 | + const { data, status, message } = await this.$request.fetchClassList(); | ||
286 | + if (status === 0) { | ||
287 | + if (!!data.list) { | ||
288 | + this.classList = data.list.map((item) => { | ||
289 | + return { | ||
290 | + value: item.clazzId, | ||
291 | + label: item.clazzName, | ||
292 | + }; | ||
293 | + }); | ||
294 | + this.query.clazzId = this.classList[0]?.value; | ||
295 | + } | ||
251 | } else { | 296 | } else { |
252 | this.$message.error(message); | 297 | this.$message.error(message); |
253 | } | 298 | } |
254 | }, | 299 | }, |
255 | - async changeGrade() { | ||
256 | - // this._QueryData(); | ||
257 | - // this._GradeList(); | ||
258 | - // this._QuerySubjectList(); | ||
259 | - }, | ||
260 | - async _GradeList() { | ||
261 | - //查询年级列表 | ||
262 | - const { data, code, message } = await this.$request.fetchGradeList(); | ||
263 | - if (code == 0) { | ||
264 | - this.gradeList = [...data.gradeNames] || []; | ||
265 | - this.query.gradeName = this.gradeList[0]; | ||
266 | - this._QuerySubjectList(this.gradeList[0]); | 300 | + // 查找科目 |
301 | + async _QuerySubjectList() { | ||
302 | + const { data, status, message } = await this.$request.fetchSubjectList({ | ||
303 | + clazzId: this.query.clazzId, | ||
304 | + }); | ||
305 | + if (status === 0) { | ||
306 | + this.subjectList = data.subjectNames.map((item) => { | ||
307 | + return { | ||
308 | + value: item, | ||
309 | + label: item, | ||
310 | + }; | ||
311 | + }); | ||
312 | + this.query.clazzId = this.subjectList[0]?.value; | ||
267 | } else { | 313 | } else { |
268 | this.$message.error(message); | 314 | this.$message.error(message); |
269 | } | 315 | } |
270 | }, | 316 | }, |
271 | - async _QuerySubjectList(grade, dont) { | ||
272 | - //查询科目列表 | ||
273 | - let param = {}; | ||
274 | - if (grade) { | ||
275 | - param.gradeName = grade; | ||
276 | - } | ||
277 | - const { data, code, message } = await this.$request.fetchSubjectList( | ||
278 | - param | ||
279 | - ); | ||
280 | - if (code === 0) { | ||
281 | - this.subjectList = data.list.map((item) => { | ||
282 | - return { | ||
283 | - value: item.subjectId, | ||
284 | - label: item.subjectName, | ||
285 | - }; | ||
286 | - }); | 317 | + // 查找答题卡类型 |
318 | + async _QueryTypeList() { | ||
319 | + const { data, status, message } = await this.$request.fetchTypeNames(); | ||
320 | + if (status === 0) { | ||
321 | + this.typeList = | ||
322 | + data.subjectNames.map((item) => { | ||
323 | + return { | ||
324 | + value: item.tagId, | ||
325 | + label: item.tag, | ||
326 | + }; | ||
327 | + }) || []; | ||
287 | } else { | 328 | } else { |
288 | this.$message.error(message); | 329 | this.$message.error(message); |
289 | } | 330 | } |
src/views/index/mainIndex.vue
1 | <template> | 1 | <template> |
2 | <div class="container"> | 2 | <div class="container"> |
3 | - <ul class="nav-list" v-if="type == '学校管理员'"> | 3 | + <ul class="nav-list" v-if="type == 'ROLE_XUEXIAO'"> |
4 | <li class="nav-item item1" @click="links('/setUpAccount')"> | 4 | <li class="nav-item item1" @click="links('/setUpAccount')"> |
5 | <img class="icon" src="../../assets/nav/setUpAccount.png" alt="" /> | 5 | <img class="icon" src="../../assets/nav/setUpAccount.png" alt="" /> |
6 | <div class="text"> | 6 | <div class="text"> |
@@ -44,7 +44,7 @@ | @@ -44,7 +44,7 @@ | ||
44 | </ul> | 44 | </ul> |
45 | <ul class="nav-list" v-if="type == 'ROLE_JITUAN'"> | 45 | <ul class="nav-list" v-if="type == 'ROLE_JITUAN'"> |
46 | <template v-for="item in navList"> | 46 | <template v-for="item in navList"> |
47 | - <li v-if="item.path!='dataSync'" :key="item.path" class="nav-item item4" @click="links(item.path)"> | 47 | + <li v-if="!item.path.includes('dataSync')" :key="item.path" class="nav-item item4" @click="links(item.path)"> |
48 | <img class="icon" :src="getImgs(item.path)" alt="" /> | 48 | <img class="icon" :src="getImgs(item.path)" alt="" /> |
49 | <div class="text" v-if="item.path == '/setUpConglomerate'"> | 49 | <div class="text" v-if="item.path == '/setUpConglomerate'"> |
50 | <p class="p1">学校管理</p> | 50 | <p class="p1">学校管理</p> |
@@ -65,9 +65,9 @@ | @@ -65,9 +65,9 @@ | ||
65 | </li> | 65 | </li> |
66 | </template> | 66 | </template> |
67 | </ul> | 67 | </ul> |
68 | - <ul class="nav-list" v-if="type == 'superAdmin' || type == '任课老师' "> | ||
69 | - <template v-for="item in navList"> | ||
70 | - <li v-if="item.path!='dataSync'" :key="item.path" class="nav-item item4" @click="links(item.path)"> | 68 | + <ul class="nav-list" v-if="type == 'ROLE_JIAOSHI' || type == 'ROLE_BANZHUREN' "> |
69 | + <template v-for="(item) in navList"> | ||
70 | + <li v-if="!item.path.includes('dataSync')" :key="item.path" class="nav-item item4" @click="links(item.path)"> | ||
71 | <img class="icon" :src="getImgs(item.path)" alt="" /> | 71 | <img class="icon" :src="getImgs(item.path)" alt="" /> |
72 | <div class="text" v-if="item.path == '/examinationPaper'"> | 72 | <div class="text" v-if="item.path == '/examinationPaper'"> |
73 | <p class="p1">备题组卷</p> | 73 | <p class="p1">备题组卷</p> |
src/views/layout/header/header.vue
@@ -3,7 +3,8 @@ | @@ -3,7 +3,8 @@ | ||
3 | <el-header id="header"> | 3 | <el-header id="header"> |
4 | <span class="hideAside" @click="collapse" | 4 | <span class="hideAside" @click="collapse" |
5 | ><i class="el-icon-s-fold" v-show="!isCollapse"></i> | 5 | ><i class="el-icon-s-fold" v-show="!isCollapse"></i> |
6 | - <i class="el-icon-s-unfold" v-show="isCollapse"></i></span> | 6 | + <i class="el-icon-s-unfold" v-show="isCollapse"></i |
7 | + ></span> | ||
7 | <ul class="personal"> | 8 | <ul class="personal"> |
8 | <!-- <li> | 9 | <!-- <li> |
9 | <langSelect></langSelect> | 10 | <langSelect></langSelect> |
@@ -63,11 +64,10 @@ import Cookies from "js-cookie"; | @@ -63,11 +64,10 @@ import Cookies from "js-cookie"; | ||
63 | import langSelect from "../../../components/lang/langSelect"; | 64 | import langSelect from "../../../components/lang/langSelect"; |
64 | import tabNav from "./tabNav"; | 65 | import tabNav from "./tabNav"; |
65 | import UserInfo from "../../../components/userForm/userInfo"; | 66 | import UserInfo from "../../../components/userForm/userInfo"; |
66 | -import EditPassword from "../../../components/userForm/editPassword"; | ||
67 | 67 | ||
68 | export default { | 68 | export default { |
69 | name: "Header", | 69 | name: "Header", |
70 | - components: { EditPassword, tabNav, langSelect, UserInfo }, | 70 | + components: { tabNav, langSelect, UserInfo }, |
71 | computed: { | 71 | computed: { |
72 | permissions: function () { | 72 | permissions: function () { |
73 | return this.$store.getters.info.permissions || []; | 73 | return this.$store.getters.info.permissions || []; |
@@ -81,15 +81,15 @@ export default { | @@ -81,15 +81,15 @@ export default { | ||
81 | dialogPassVisible: false, | 81 | dialogPassVisible: false, |
82 | title: "", | 82 | title: "", |
83 | userId: "", | 83 | userId: "", |
84 | - isCollapse:false, | 84 | + isCollapse: false, |
85 | }; | 85 | }; |
86 | }, | 86 | }, |
87 | - created(){ | ||
88 | - this.isCollapse = this.$store.getters.isCollapse | 87 | + created() { |
88 | + this.isCollapse = this.$store.getters.isCollapse; | ||
89 | }, | 89 | }, |
90 | methods: { | 90 | methods: { |
91 | collapse() { | 91 | collapse() { |
92 | - this.isCollapse = !this.isCollapse | 92 | + this.isCollapse = !this.isCollapse; |
93 | this.$store.dispatch("collapse"); | 93 | this.$store.dispatch("collapse"); |
94 | }, | 94 | }, |
95 | successCallback() { | 95 | successCallback() { |
@@ -128,10 +128,19 @@ export default { | @@ -128,10 +128,19 @@ export default { | ||
128 | //刷新权限跳转首页 | 128 | //刷新权限跳转首页 |
129 | this.$store.dispatch("permissions", this); | 129 | this.$store.dispatch("permissions", this); |
130 | }, | 130 | }, |
131 | - logOut() { | ||
132 | - this.$router.push({ | ||
133 | - path: "/login", | ||
134 | - }); | 131 | + async logOut() { |
132 | + const { data } = await this.$request.logout(); | ||
133 | + if (data.status == 0) { | ||
134 | + if (data.data) { | ||
135 | + window.location.href = data; | ||
136 | + } else { | ||
137 | + this.$router.push({ | ||
138 | + path: "/login", | ||
139 | + }); | ||
140 | + } | ||
141 | + } else { | ||
142 | + this.$message.error(message); | ||
143 | + } | ||
135 | }, | 144 | }, |
136 | }, | 145 | }, |
137 | }; | 146 | }; |
@@ -178,11 +187,11 @@ ul.el-menu { | @@ -178,11 +187,11 @@ ul.el-menu { | ||
178 | display: flex; | 187 | display: flex; |
179 | justify-content: space-between; | 188 | justify-content: space-between; |
180 | color: #fff; | 189 | color: #fff; |
181 | - padding:0 20px 0 10px; | 190 | + padding: 0 20px 0 10px; |
182 | .hideAside { | 191 | .hideAside { |
183 | @extend %cursor; | 192 | @extend %cursor; |
184 | - i{ | ||
185 | - font-size:24px; | 193 | + i { |
194 | + font-size: 24px; | ||
186 | line-height: 50px; | 195 | line-height: 50px; |
187 | } | 196 | } |
188 | } | 197 | } |
src/views/login/index.vue
@@ -90,16 +90,16 @@ export default { | @@ -90,16 +90,16 @@ export default { | ||
90 | disableClick: true, | 90 | disableClick: true, |
91 | passwordType: "password", | 91 | passwordType: "password", |
92 | loginForm: { | 92 | loginForm: { |
93 | - username: "15911715665", | ||
94 | - password: "Csiy88888", | 93 | + username: "13028102196", |
94 | + password: "Pw102196#", | ||
95 | }, | 95 | }, |
96 | loginRules: { | 96 | loginRules: { |
97 | username: [ | 97 | username: [ |
98 | - { required: true, message: "请输入用户账号",trigger: "blur" } | 98 | + { required: true, message: "请输入用户账号", trigger: "blur" }, |
99 | ], | 99 | ], |
100 | password: [ | 100 | password: [ |
101 | - { required: true, message: "请输入账号密码",trigger: "blur" } | ||
102 | - ] | 101 | + { required: true, message: "请输入账号密码", trigger: "blur" }, |
102 | + ], | ||
103 | }, | 103 | }, |
104 | url: "", | 104 | url: "", |
105 | }; | 105 | }; |
@@ -127,7 +127,7 @@ export default { | @@ -127,7 +127,7 @@ export default { | ||
127 | }); | 127 | }); |
128 | return false; | 128 | return false; |
129 | } else { | 129 | } else { |
130 | - this.$store.dispatch("Login",{...this.loginForm,url:this.url}) | 130 | + this.$store.dispatch("Login", { ...this.loginForm, url: this.url }); |
131 | } | 131 | } |
132 | }, | 132 | }, |
133 | }, | 133 | }, |
@@ -140,10 +140,8 @@ $dark_gray: #889aa4; | @@ -140,10 +140,8 @@ $dark_gray: #889aa4; | ||
140 | $light_gray: #000; | 140 | $light_gray: #000; |
141 | $cursor: #000; | 141 | $cursor: #000; |
142 | 142 | ||
143 | -@supports (-webkit-mask: none) and (not (cater-color: $cursor)) { | ||
144 | - .login-container .el-input input { | ||
145 | - color: $cursor; | ||
146 | - } | 143 | +.login-container .el-input input { |
144 | + color: $cursor; | ||
147 | } | 145 | } |
148 | .login-container { | 146 | .login-container { |
149 | width: 100%; | 147 | width: 100%; |
@@ -166,7 +164,7 @@ $cursor: #000; | @@ -166,7 +164,7 @@ $cursor: #000; | ||
166 | border: 0px; | 164 | border: 0px; |
167 | -webkit-appearance: none; | 165 | -webkit-appearance: none; |
168 | border-radius: 0px; | 166 | border-radius: 0px; |
169 | - font-size:16px; | 167 | + font-size: 16px; |
170 | color: $light_gray; | 168 | color: $light_gray; |
171 | height: 52px; | 169 | height: 52px; |
172 | caret-color: $cursor; | 170 | caret-color: $cursor; |
vue.config.js
@@ -20,13 +20,13 @@ module.exports = { | @@ -20,13 +20,13 @@ module.exports = { | ||
20 | warnings: false, | 20 | warnings: false, |
21 | errors: true, | 21 | errors: true, |
22 | }, | 22 | }, |
23 | - // proxy: { | ||
24 | - // "/": { | ||
25 | - // target:"http://192.168.3.29:8080", | ||
26 | - // changeOrigin: true, | ||
27 | - // ws:true, | ||
28 | - // }, | ||
29 | - // }, | 23 | + proxy: { |
24 | + "/": { | ||
25 | + target:"http://192.168.3.29:8080", | ||
26 | + changeOrigin: true, | ||
27 | + ws:true, | ||
28 | + }, | ||
29 | + }, | ||
30 | disableHostCheck: true | 30 | disableHostCheck: true |
31 | }, | 31 | }, |
32 | css: { | 32 | css: { |