Commit b0c415e006ec6064296f1666a8463ca4287c72b6
1 parent
4d5e105e
Exists in
master
feat:切换用户
Showing
6 changed files
with
121 additions
and
12 deletions
Show diff stats
3.13 KB
303 Bytes
src/router/index.js
| @@ -44,6 +44,7 @@ import ans_rank from '@/views/answerRank/ans_rank.vue' //答题排行榜 | @@ -44,6 +44,7 @@ import ans_rank from '@/views/answerRank/ans_rank.vue' //答题排行榜 | ||
| 44 | import brush_questions from '@/views/answerRank/brush_questions.vue' //刷题记录 | 44 | import brush_questions from '@/views/answerRank/brush_questions.vue' //刷题记录 |
| 45 | import stars from '@/views/answerRank/stars.vue' //五星少年 | 45 | import stars from '@/views/answerRank/stars.vue' //五星少年 |
| 46 | import ans_question from '@/views/answerRank/ans_question.vue' //答题 | 46 | import ans_question from '@/views/answerRank/ans_question.vue' //答题 |
| 47 | +import switchUser from '@/views/answerRank/switchUser.vue' //切换 | ||
| 47 | 48 | ||
| 48 | Vue.use(VueRouter) | 49 | Vue.use(VueRouter) |
| 49 | const [routerPush, routerReplace] = [VueRouter.prototype.push, VueRouter.prototype.replace]; | 50 | const [routerPush, routerReplace] = [VueRouter.prototype.push, VueRouter.prototype.replace]; |
| @@ -343,6 +344,14 @@ const routes = [{ | @@ -343,6 +344,14 @@ const routes = [{ | ||
| 343 | } | 344 | } |
| 344 | }, | 345 | }, |
| 345 | { | 346 | { |
| 347 | + path: '/switchUser', | ||
| 348 | + name: 'switchUser', | ||
| 349 | + component: switchUser, | ||
| 350 | + meta: { | ||
| 351 | + title: '切换用户' | ||
| 352 | + } | ||
| 353 | + }, | ||
| 354 | + { | ||
| 346 | path: '/YanxueDetail', | 355 | path: '/YanxueDetail', |
| 347 | name: 'YanxueDetail', | 356 | name: 'YanxueDetail', |
| 348 | component: YanxueDetail, | 357 | component: YanxueDetail, |
src/views/answerRank/ans_question.vue
| @@ -149,15 +149,21 @@ export default { | @@ -149,15 +149,21 @@ export default { | ||
| 149 | ) | 149 | ) |
| 150 | .then((res) => { | 150 | .then((res) => { |
| 151 | if (res.data.code == 200) { | 151 | if (res.data.code == 200) { |
| 152 | - this.$dialog.alert({ | ||
| 153 | - title: "完成答题", | ||
| 154 | - message: "您的分数是:" + res.data.data, | ||
| 155 | - theme: "round-button", | ||
| 156 | - }).then(() => { | ||
| 157 | - this.$router.push({ | ||
| 158 | - name: 'stars' | 152 | + this.$dialog |
| 153 | + .alert({ | ||
| 154 | + title: "完成答题", | ||
| 155 | + message: "您的分数是:" + res.data.data, | ||
| 156 | + theme: "round-button", | ||
| 159 | }) | 157 | }) |
| 160 | - }); | 158 | + .then(() => { |
| 159 | + let index = this.$route.query.index | ||
| 160 | + this.$router.push({ | ||
| 161 | + name: "stars", | ||
| 162 | + query: { | ||
| 163 | + index: index, | ||
| 164 | + }, | ||
| 165 | + }); | ||
| 166 | + }); | ||
| 161 | } else { | 167 | } else { |
| 162 | this.$toast.fail(res.data.message); | 168 | this.$toast.fail(res.data.message); |
| 163 | } | 169 | } |
src/views/answerRank/stars.vue
| @@ -7,8 +7,9 @@ | @@ -7,8 +7,9 @@ | ||
| 7 | <img src="@/assets/rank/tx.png" /> | 7 | <img src="@/assets/rank/tx.png" /> |
| 8 | </div> | 8 | </div> |
| 9 | <div class="font_box"> | 9 | <div class="font_box"> |
| 10 | - <div class="font_name" @click="getUser"> | 10 | + <div class="font_name" @click="switchUser"> |
| 11 | {{ user.travelerName }} | 11 | {{ user.travelerName }} |
| 12 | + <img src="@/assets/rank/qh1.png" /> | ||
| 12 | </div> | 13 | </div> |
| 13 | <div class="font_sch">{{ user.schoolName }}</div> | 14 | <div class="font_sch">{{ user.schoolName }}</div> |
| 14 | </div> | 15 | </div> |
| @@ -113,10 +114,27 @@ export default { | @@ -113,10 +114,27 @@ export default { | ||
| 113 | //获取用户信息 | 114 | //获取用户信息 |
| 114 | getUser() { | 115 | getUser() { |
| 115 | this.userInfo = JSON.parse(localStorage.getItem("userInfo")); | 116 | this.userInfo = JSON.parse(localStorage.getItem("userInfo")); |
| 116 | - console.log(this.userInfo); | 117 | + |
| 117 | if (!this.userInfo.subUsers || this.userInfo.subUsers.length == 0) { | 118 | if (!this.userInfo.subUsers || this.userInfo.subUsers.length == 0) { |
| 118 | return this.$toast.fail("暂无绑定出行人"); | 119 | return this.$toast.fail("暂无绑定出行人"); |
| 119 | } | 120 | } |
| 121 | + | ||
| 122 | + //选择了用户 | ||
| 123 | + if (this.$route.query.index) { | ||
| 124 | + let index = this.$route.query.index; | ||
| 125 | + localStorage.setItem( | ||
| 126 | + "travelerNum", | ||
| 127 | + this.userInfo.subUsers[index].travelerNum | ||
| 128 | + ); | ||
| 129 | + this.user = { | ||
| 130 | + travelerNum: this.userInfo.subUsers[index].travelerNum, | ||
| 131 | + travelerName: this.userInfo.subUsers[index].travelerName, | ||
| 132 | + schoolName: this.userInfo.subUsers[index].schoolName, | ||
| 133 | + }; | ||
| 134 | + return; | ||
| 135 | + } | ||
| 136 | + //未选择用户 - 默认第一个 | ||
| 137 | + | ||
| 120 | localStorage.setItem( | 138 | localStorage.setItem( |
| 121 | "travelerNum", | 139 | "travelerNum", |
| 122 | this.userInfo.subUsers[0].travelerNum | 140 | this.userInfo.subUsers[0].travelerNum |
| @@ -128,11 +146,20 @@ export default { | @@ -128,11 +146,20 @@ export default { | ||
| 128 | schoolName: this.userInfo.subUsers[0].schoolName, | 146 | schoolName: this.userInfo.subUsers[0].schoolName, |
| 129 | }; | 147 | }; |
| 130 | }, | 148 | }, |
| 149 | + //切换用户 | ||
| 150 | + switchUser() { | ||
| 151 | + this.$router.push({ | ||
| 152 | + name: "switchUser", | ||
| 153 | + }); | ||
| 154 | + }, | ||
| 131 | //开始答题 | 155 | //开始答题 |
| 132 | toAns(val) { | 156 | toAns(val) { |
| 133 | this.$router.push({ | 157 | this.$router.push({ |
| 134 | name: "ans_question", | 158 | name: "ans_question", |
| 135 | - query: {categoryId:val.itemCategoryId} | 159 | + query: { |
| 160 | + categoryId: val.itemCategoryId, | ||
| 161 | + index: this.$route.query.index, | ||
| 162 | + }, | ||
| 136 | }); | 163 | }); |
| 137 | }, | 164 | }, |
| 138 | //获取类型 | 165 | //获取类型 |
| @@ -144,7 +171,7 @@ export default { | @@ -144,7 +171,7 @@ export default { | ||
| 144 | ) | 171 | ) |
| 145 | .then((res) => { | 172 | .then((res) => { |
| 146 | if (res.data.code == 200) { | 173 | if (res.data.code == 200) { |
| 147 | - this.libraryList = res.data.data | 174 | + this.libraryList = res.data.data; |
| 148 | } else { | 175 | } else { |
| 149 | this.$toast.fail(res.data.message); | 176 | this.$toast.fail(res.data.message); |
| 150 | } | 177 | } |
| @@ -207,6 +234,12 @@ export default { | @@ -207,6 +234,12 @@ export default { | ||
| 207 | .font_name { | 234 | .font_name { |
| 208 | font-size: 30px; | 235 | font-size: 30px; |
| 209 | color: #333333; | 236 | color: #333333; |
| 237 | + | ||
| 238 | + img { | ||
| 239 | + margin-top: 5px; | ||
| 240 | + width: 30px; | ||
| 241 | + height: 25px; | ||
| 242 | + } | ||
| 210 | } | 243 | } |
| 211 | .font_sch { | 244 | .font_sch { |
| 212 | font-size: 27px; | 245 | font-size: 27px; |
| @@ -0,0 +1,61 @@ | @@ -0,0 +1,61 @@ | ||
| 1 | +<template> | ||
| 2 | + <div class="card"> | ||
| 3 | + <div class="cardBox" v-for="(v, i) in travelerList" :key="i"> | ||
| 4 | + <div class="cardItem" @click="checkUser(v, i)"> | ||
| 5 | + <div>{{ v.travelerName }}</div> | ||
| 6 | + <div class="schoolCss">{{ v.schoolName }}</div> | ||
| 7 | + </div> | ||
| 8 | + </div> | ||
| 9 | + </div> | ||
| 10 | +</template> | ||
| 11 | + | ||
| 12 | +<script> | ||
| 13 | +export default { | ||
| 14 | + data() { | ||
| 15 | + return { | ||
| 16 | + travelerList: [], | ||
| 17 | + }; | ||
| 18 | + }, | ||
| 19 | + methods: { | ||
| 20 | + getData() { | ||
| 21 | + const userInfo = JSON.parse(localStorage.getItem("userInfo")); | ||
| 22 | + | ||
| 23 | + this.travelerList = userInfo.subUsers; | ||
| 24 | + }, | ||
| 25 | + //选择 | ||
| 26 | + checkUser(v, i) { | ||
| 27 | + this.$router.push({ | ||
| 28 | + name: "stars", | ||
| 29 | + query: { | ||
| 30 | + index: i, | ||
| 31 | + }, | ||
| 32 | + }); | ||
| 33 | + }, | ||
| 34 | + }, | ||
| 35 | + mounted() { | ||
| 36 | + this.getData(); | ||
| 37 | + }, | ||
| 38 | +}; | ||
| 39 | +</script> | ||
| 40 | + | ||
| 41 | +<style lang="scss" scoped> | ||
| 42 | +.card { | ||
| 43 | + padding: 7vw; | ||
| 44 | + box-sizing: border-box; | ||
| 45 | + | ||
| 46 | + .cardBox { | ||
| 47 | + .cardItem { | ||
| 48 | + padding: 70px 0; | ||
| 49 | + box-sizing: border-box; | ||
| 50 | + font-size: 40px; | ||
| 51 | + display: flex; | ||
| 52 | + justify-content: space-between; | ||
| 53 | + border-bottom: 1px solid rgb(236, 233, 233); | ||
| 54 | + | ||
| 55 | + .schoolCss { | ||
| 56 | + font-size: 32px; | ||
| 57 | + } | ||
| 58 | + } | ||
| 59 | + } | ||
| 60 | +} | ||
| 61 | +</style> | ||
| 0 | \ No newline at end of file | 62 | \ No newline at end of file |