Przeglądaj źródła

feat: 学生主页

ChenYangfan 6 lat temu
rodzic
commit
fba3a4b61e

+ 6 - 6
src/App.vue

@@ -18,12 +18,12 @@ body {
 <style lang="scss">
 @font-face {
   font-family: 'iconfont'; /* project id 1598214 */
-  src: url('//at.alicdn.com/t/font_1598214_il2if4ux43.eot');
-  src: url('//at.alicdn.com/t/font_1598214_il2if4ux43.eot?#iefix')
+  src: url('//at.alicdn.com/t/font_1598214_8n94nr4m8ja.eot');
+  src: url('//at.alicdn.com/t/font_1598214_8n94nr4m8ja.eot?#iefix')
       format('embedded-opentype'),
-    url('//at.alicdn.com/t/font_1598214_il2if4ux43.woff2') format('woff2'),
-    url('//at.alicdn.com/t/font_1598214_il2if4ux43.woff') format('woff'),
-    url('//at.alicdn.com/t/font_1598214_il2if4ux43.ttf') format('truetype'),
-    url('//at.alicdn.com/t/font_1598214_il2if4ux43.svg#iconfont') format('svg');
+    url('//at.alicdn.com/t/font_1598214_8n94nr4m8ja.woff2') format('woff2'),
+    url('//at.alicdn.com/t/font_1598214_8n94nr4m8ja.woff') format('woff'),
+    url('//at.alicdn.com/t/font_1598214_8n94nr4m8ja.ttf') format('truetype'),
+    url('//at.alicdn.com/t/font_1598214_8n94nr4m8ja.svg#iconfont') format('svg');
 }
 </style>

+ 0 - 0
src/views/teacher/tabs/tab-common.scss → src/common/tab-common.scss


+ 33 - 3
src/router/index.js

@@ -38,14 +38,44 @@ const routes = [{
     name: 'teacher-personal',
     component: () => import('../views/teacher/tabs/PersonalTab.vue')
   }, {
-    path: 'teacher-feedback',
-    name: 'teacher-feedback',
-    component: () => import('../views/teacher/tabs/FeedbackTab.vue')
+    path: 'teacher-discussion',
+    name: 'teacher-discussion',
+    component: () => import('../views/teacher/tabs/DiscussionTab.vue')
   }, {
     path: 'teacher-info',
     name: 'teacher-info',
     component: () => import('../views/teacher/tabs/InfoTab.vue')
   }]
+}, {
+  path: '/student',
+  name: 'student',
+  redirect: '/student/student-home',
+  component: () => import('../views/student/StudentHomeView.vue'),
+  children: [{
+    path: 'student-home',
+    name: 'student-home',
+    component: () => import('../views/student/tabs/HomeTab.vue')
+  }, {
+    path: 'student-search',
+    name: 'student-search',
+    component: () => import('../views/student/tabs/SearchTab.vue')
+  }, {
+    path: 'student-history',
+    name: 'student-history',
+    component: () => import('../views/student/tabs/HistoryTab.vue')
+  }, {
+    path: 'student-personal',
+    name: 'student-personal',
+    component: () => import('../views/student/tabs/PersonalTab.vue')
+  }, {
+    path: 'student-discussion',
+    name: 'student-discussion',
+    component: () => import('../views/student/tabs/DiscussionTab.vue')
+  }, {
+    path: 'student-info',
+    name: 'student-info',
+    component: () => import('../views/student/tabs/InfoTab.vue')
+  }]
 }]
 
 const router = new VueRouter({

+ 3 - 3
src/views/Home.vue

@@ -1,9 +1,9 @@
 <template>
   <div>
     调试链接:<br />
-    <router-link to="/typography">排版布局原型</router-link>
-    <br />
-    <router-link to="/teacher">教师主页</router-link>
+    <router-link to="/typography">排版布局原型</router-link><br />
+    <router-link to="/teacher">教师主页</router-link><br />
+    <router-link to="/student">学生主页</router-link>
   </div>
 </template>
 

+ 53 - 0
src/views/student/StudentHomeView.vue

@@ -0,0 +1,53 @@
+<template>
+  <role-home-vue>
+    <template v-slot:tab>
+      <template v-for="(tab, index) of tabs">
+        <icon-link-vue :tab="tab" :key="index"></icon-link-vue>
+      </template>
+    </template>
+    <template v-slot:preview></template>
+  </role-home-vue>
+</template>
+
+<script>
+import RoleHomeVue from '@/layouts/RoleHome.vue'
+import IconLinkVue from '@/components/home/IconLink.vue'
+
+export default {
+  components: { RoleHomeVue, IconLinkVue },
+  data() {
+    return {
+      tabs: [
+        {
+          name: 'student-home',
+          unicode: '\ue68b'
+        },
+        {
+          name: 'student-search',
+          unicode: '\ue6a2'
+        },
+        {
+          name: 'student-history',
+          unicode: '\ue68c'
+        },
+        {
+          name: 'student-personal',
+          unicode: '\ue790'
+        },
+        {
+          name: 'student-discussion',
+          unicode: '\ue69e'
+        },
+        { name: 'line' },
+        {
+          name: 'student-info',
+          unicode: '\ue68e'
+        }
+      ]
+    }
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+</style>

+ 1 - 1
src/views/teacher/tabs/FeedbackTab.vue → src/views/student/tabs/DiscussionTab.vue

@@ -8,5 +8,5 @@
 export default {}
 </script>
 <style lang="scss" scoped>
-@import './tab-common.scss';
+@import '@/common/tab-common.scss';
 </style>

+ 12 - 0
src/views/student/tabs/HistoryTab.vue

@@ -0,0 +1,12 @@
+<template>
+  <div class="tab-wrapper">
+    feedback
+  </div>
+</template>
+
+<script>
+export default {}
+</script>
+<style lang="scss" scoped>
+@import '@/common/tab-common.scss';
+</style>

+ 12 - 0
src/views/student/tabs/HomeTab.vue

@@ -0,0 +1,12 @@
+<template>
+  <div class="tab-wrapper">
+    feedback
+  </div>
+</template>
+
+<script>
+export default {}
+</script>
+<style lang="scss" scoped>
+@import '@/common/tab-common.scss';
+</style>

+ 12 - 0
src/views/student/tabs/InfoTab.vue

@@ -0,0 +1,12 @@
+<template>
+  <div class="tab-wrapper">
+    feedback
+  </div>
+</template>
+
+<script>
+export default {}
+</script>
+<style lang="scss" scoped>
+@import '@/common/tab-common.scss';
+</style>

+ 12 - 0
src/views/student/tabs/PersonalTab.vue

@@ -0,0 +1,12 @@
+<template>
+  <div class="tab-wrapper">
+    feedback
+  </div>
+</template>
+
+<script>
+export default {}
+</script>
+<style lang="scss" scoped>
+@import '@/common/tab-common.scss';
+</style>

+ 12 - 0
src/views/student/tabs/SearchTab.vue

@@ -0,0 +1,12 @@
+<template>
+  <div class="tab-wrapper">
+    feedback
+  </div>
+</template>
+
+<script>
+export default {}
+</script>
+<style lang="scss" scoped>
+@import '@/common/tab-common.scss';
+</style>

+ 2 - 2
src/views/teacher/TeacherHomeView.vue

@@ -35,8 +35,8 @@ export default {
           unicode: '\ue790'
         },
         {
-          name: 'teacher-feedback',
-          unicode: '\ue68a'
+          name: 'teacher-discussion',
+          unicode: '\ue69e'
         },
         { name: 'line' },
         {

+ 1 - 1
src/views/teacher/tabs/AddTab.vue

@@ -48,7 +48,7 @@ export default {
 }
 </script>
 <style lang="scss" scoped>
-@import './tab-common.scss';
+@import '@/common/tab-common.scss';
 $input-background-color: #ebf0f5;
 
 .title {

+ 12 - 0
src/views/teacher/tabs/DiscussionTab.vue

@@ -0,0 +1,12 @@
+<template>
+  <div class="tab-wrapper">
+    feedback
+  </div>
+</template>
+
+<script>
+export default {}
+</script>
+<style lang="scss" scoped>
+@import '@/common/tab-common.scss';
+</style>

+ 1 - 1
src/views/teacher/tabs/HomeTab.vue

@@ -42,7 +42,7 @@ export default {
 }
 </script>
 <style lang="scss" scoped>
-@import './tab-common.scss';
+@import '@/common/tab-common.scss';
 .tab-wrapper {
   max-height: 80vh;
   overflow: auto;

+ 1 - 1
src/views/teacher/tabs/InfoTab.vue

@@ -8,5 +8,5 @@
 export default {}
 </script>
 <style lang="scss" scoped>
-@import './tab-common.scss';
+@import '@/common/tab-common.scss';
 </style>

+ 1 - 1
src/views/teacher/tabs/PersonalTab.vue

@@ -8,5 +8,5 @@
 export default {}
 </script>
 <style lang="scss" scoped>
-@import './tab-common.scss';
+@import '@/common/tab-common.scss';
 </style>

+ 1 - 1
src/views/teacher/tabs/SearchTab.vue

@@ -21,7 +21,7 @@ export default {
 }
 </script>
 <style lang="scss" scoped>
-@import './tab-common.scss';
+@import '@/common/tab-common.scss';
 .tip {
   color: #aabaca;
   font-size: 20px;