parent
d8cf875a85
commit
9ba848b72c
@ -0,0 +1,45 @@
|
|||||||
|
|
||||||
|
<template>
|
||||||
|
<el-menu :default-openeds="['1', '3']" style="min-height: 100%; overflow-x: hidden"
|
||||||
|
background-color="rgb(48,65,86)"
|
||||||
|
text-color="#fff"
|
||||||
|
active-text-color="#ffd04b"
|
||||||
|
:collapse-transition="false"
|
||||||
|
:collapse="isCollapse"
|
||||||
|
router
|
||||||
|
>
|
||||||
|
<div style="height: 60px;line-height: 60px;text-align: center">
|
||||||
|
<img src="../assets/logo.png" alt="" style="width: 20px;position: relative;top: 5px;margin-right: 5px">
|
||||||
|
<b style="color: white" v-show="logoTextShow">在线考试学生端</b>
|
||||||
|
</div>
|
||||||
|
<el-menu-item index="1">
|
||||||
|
<template slot="title"><i class="el-icon-house"></i>
|
||||||
|
<span slot="title">主页</span>
|
||||||
|
</template>
|
||||||
|
</el-menu-item>
|
||||||
|
<el-menu-item index="/student/exam">
|
||||||
|
<template slot="title"><i class="el-icon-message"></i>
|
||||||
|
<span slot="title">试卷中心</span>
|
||||||
|
</template>
|
||||||
|
</el-menu-item>
|
||||||
|
<el-menu-item index="3">
|
||||||
|
<template slot="title"><i class="el-icon-message"></i>
|
||||||
|
<span slot="title">考试记录</span>
|
||||||
|
</template>
|
||||||
|
</el-menu-item>
|
||||||
|
</el-menu>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
name: "Aside",
|
||||||
|
props: {
|
||||||
|
isCollapse: Boolean,
|
||||||
|
logoTextShow: Boolean
|
||||||
|
},
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped lang="scss">
|
||||||
|
|
||||||
|
</style>
|
@ -0,0 +1,32 @@
|
|||||||
|
|
||||||
|
<template>
|
||||||
|
<div style="font-size: 12px;line-height: 60px;display: flex">
|
||||||
|
<div style="flex: 1;font-size: 20px">
|
||||||
|
<span :class="collapseBtnClass" style="cursor:pointer" @click="collapse"></span>
|
||||||
|
</div>
|
||||||
|
<el-dropdown style="width: 70px; cursor: pointer">
|
||||||
|
<span>王小虎</span>
|
||||||
|
<i class="el-icon-arrow-down" style="margin-left: 5px"></i>
|
||||||
|
<!-- <i class="el-icon-setting" style="margin-right: 15px"></i>-->
|
||||||
|
<el-dropdown-menu slot="dropdown">
|
||||||
|
<el-dropdown-item>个人信息</el-dropdown-item>
|
||||||
|
<el-dropdown-item>退出</el-dropdown-item>
|
||||||
|
</el-dropdown-menu>
|
||||||
|
</el-dropdown>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
name: "Header",
|
||||||
|
props:{
|
||||||
|
collapseBtnClass:String,
|
||||||
|
collapse:Boolean,
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped lang="scss">
|
||||||
|
|
||||||
|
</style>
|
@ -0,0 +1,212 @@
|
|||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
name: "Class"
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<template>
|
||||||
|
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<style scoped lang="scss">
|
||||||
|
|
||||||
|
</style>
|
||||||
|
<template>
|
||||||
|
<el-container style="min-height: 100vh">
|
||||||
|
<el-aside :width="sideWidth+'px'" style="background-color: rgb(238, 241, 246); box-shadow: 2px 0 6px rgb(0 21 41 / 35%)">
|
||||||
|
<el-menu :default-openeds="['1', '3']" style="min-height: 100%; overflow-x: hidden"
|
||||||
|
background-color="rgb(48,65,86)"
|
||||||
|
text-color="#fff"
|
||||||
|
active-text-color="#ffd04b"
|
||||||
|
:collapse-transition="false"
|
||||||
|
:collapse="isCollapse"
|
||||||
|
>
|
||||||
|
<div style="height: 60px;line-height: 60px;text-align: center">
|
||||||
|
<img src="../assets/logo.png" alt="" style="width: 20px;position: relative;top: 5px;margin-right: 5px">
|
||||||
|
<b style="color: white" v-show="logoTextShow">后台管理系统</b>
|
||||||
|
</div>
|
||||||
|
<el-submenu index="1">
|
||||||
|
<template slot="title"><i class="el-icon-message"></i>
|
||||||
|
<span slot="title">导航一</span>
|
||||||
|
</template>
|
||||||
|
<el-menu-item-group>
|
||||||
|
<template slot="title">分组一</template>
|
||||||
|
<el-menu-item index="1-1">选项1</el-menu-item>
|
||||||
|
<el-menu-item index="1-2">选项2</el-menu-item>
|
||||||
|
</el-menu-item-group>
|
||||||
|
<el-menu-item-group title="分组2">
|
||||||
|
<el-menu-item index="1-3">选项3</el-menu-item>
|
||||||
|
</el-menu-item-group>
|
||||||
|
<el-submenu index="1-4">
|
||||||
|
<template slot="title">选项4</template>
|
||||||
|
<el-menu-item index="1-4-1">选项4-1</el-menu-item>
|
||||||
|
</el-submenu>
|
||||||
|
</el-submenu>
|
||||||
|
<el-submenu index="2">
|
||||||
|
<template slot="title"><i class="el-icon-menu"></i>
|
||||||
|
<span slot="title">导航二</span>
|
||||||
|
</template>
|
||||||
|
<el-menu-item-group>
|
||||||
|
<template slot="title">分组一</template>
|
||||||
|
<el-menu-item index="2-1">选项1</el-menu-item>
|
||||||
|
<el-menu-item index="2-2">选项2</el-menu-item>
|
||||||
|
</el-menu-item-group>
|
||||||
|
<el-menu-item-group title="分组2">
|
||||||
|
<el-menu-item index="2-3">选项3</el-menu-item>
|
||||||
|
</el-menu-item-group>
|
||||||
|
<el-submenu index="2-4">
|
||||||
|
<template slot="title">选项4</template>
|
||||||
|
<el-menu-item index="2-4-1">选项4-1</el-menu-item>
|
||||||
|
</el-submenu>
|
||||||
|
</el-submenu>
|
||||||
|
<el-submenu index="3">
|
||||||
|
<template slot="title"><i class="el-icon-setting"></i>
|
||||||
|
<span slot="title">导航三</span>
|
||||||
|
</template>
|
||||||
|
<el-menu-item-group>
|
||||||
|
<template slot="title">分组一</template>
|
||||||
|
<el-menu-item index="3-1">选项1</el-menu-item>
|
||||||
|
<el-menu-item index="3-2">选项2</el-menu-item>
|
||||||
|
</el-menu-item-group>
|
||||||
|
<el-menu-item-group title="分组2">
|
||||||
|
<el-menu-item index="3-3">选项3</el-menu-item>
|
||||||
|
</el-menu-item-group>
|
||||||
|
<el-submenu index="3-4">
|
||||||
|
<template slot="title">选项4</template>
|
||||||
|
<el-menu-item index="3-4-1">选项4-1</el-menu-item>
|
||||||
|
</el-submenu>
|
||||||
|
</el-submenu>
|
||||||
|
</el-menu>
|
||||||
|
</el-aside>
|
||||||
|
|
||||||
|
<el-container>
|
||||||
|
<el-header style="font-size: 12px;border-bottom:1px solid #ccc;line-height: 60px;display: flex">
|
||||||
|
<div style="flex: 1;font-size: 20px">
|
||||||
|
<span :class="collapseBtnClass" style="cursor:pointer" @click="collapse"></span>
|
||||||
|
</div>
|
||||||
|
<el-dropdown style="width: 70px; cursor: pointer">
|
||||||
|
<span>王小虎</span>
|
||||||
|
<i class="el-icon-arrow-down" style="margin-left: 5px"></i>
|
||||||
|
<!-- <i class="el-icon-setting" style="margin-right: 15px"></i>-->
|
||||||
|
<el-dropdown-menu slot="dropdown">
|
||||||
|
<el-dropdown-item>个人信息</el-dropdown-item>
|
||||||
|
<el-dropdown-item>退出</el-dropdown-item>
|
||||||
|
</el-dropdown-menu>
|
||||||
|
</el-dropdown>
|
||||||
|
</el-header>
|
||||||
|
|
||||||
|
<el-main>
|
||||||
|
|
||||||
|
<div style="padding: 10px 0">
|
||||||
|
<el-input style="width: 200px" placeholder="请输入名称" suffix-icon="el-icon-search"></el-input>
|
||||||
|
<el-input style="width: 200px" placeholder="请输入邮箱" suffix-icon="el-icon-message" class="ml-5"></el-input>
|
||||||
|
<el-input style="width: 200px" placeholder="请输入地址" suffix-icon="el-icon-position" class="ml-5"></el-input>
|
||||||
|
<el-button class="ml-5" type="primary">搜索</el-button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div style="margin:10px 0">
|
||||||
|
<el-button type="primary">新增<i class="el-icon-circle-plus-outline"></i></el-button>
|
||||||
|
<el-button type="danger">批量删除<i class="el-icon-circle-plus-outline"></i></el-button>
|
||||||
|
<el-button type="primary">导入<i class="el-icon-circle-plus-outline"></i></el-button>
|
||||||
|
<el-button type="primary">导出<i class="el-icon-circle-plus-outline"></i></el-button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<el-table :data="tableData" border stripe header-row-class-name="headerBg">
|
||||||
|
<el-table-column prop="sumclass" label="班级总数" width="140">
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column prop="sunnumclass" label="班级人数总数" width="120">
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column prop="exampapersum" label="试卷总数">
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column prop="sumtimu" label="题目总数">
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column>
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<el-button type="success">编辑 <i class="el-icon-edit"></i></el-button>
|
||||||
|
<el-button type="danger">删除 <i class="el-icon-circle-plus-outline"></i></el-button>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</el-table>
|
||||||
|
<div>
|
||||||
|
<el-pagination
|
||||||
|
:page-sizes="[5, 10, 15, 20]"
|
||||||
|
:page-size="10"
|
||||||
|
layout="total, sizes, prev, pager, next, jumper"
|
||||||
|
:total="total">
|
||||||
|
</el-pagination>
|
||||||
|
</div>
|
||||||
|
</el-main>
|
||||||
|
</el-container>
|
||||||
|
</el-container>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: 'HomeView',
|
||||||
|
data(){
|
||||||
|
return {
|
||||||
|
tableData: [],
|
||||||
|
total:0,
|
||||||
|
collapseBtnClass:'el-icon-s-fold',
|
||||||
|
isCollapse: false,
|
||||||
|
sideWidth: 200,
|
||||||
|
logoTextShow: true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
// 使用 Vuex 的 getter 来获取 token
|
||||||
|
const token = this.$store.state.token;
|
||||||
|
console.log("token:",token);
|
||||||
|
if (!token) {
|
||||||
|
console.error('No token found, redirecting to login page...');
|
||||||
|
this.$router.push({ name: 'login' }); // 跳转到登录页面
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
this.fetchHomePageData(token);
|
||||||
|
},
|
||||||
|
|
||||||
|
methods: {
|
||||||
|
async fetchHomePageData(token) {
|
||||||
|
try {
|
||||||
|
const response = await fetch('http://localhost:8080/teacher/homepage/homepagesuju', {
|
||||||
|
method: 'GET',
|
||||||
|
headers: {
|
||||||
|
'Authorization': token,
|
||||||
|
'Content-Type': 'application/json',
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
const data = await response.json();
|
||||||
|
if (response.ok && data.code === 200) {
|
||||||
|
const { sumclass, sunnumclass, exampapersum, sumtimu } = data.data;
|
||||||
|
console.log("API Response:", data.data);
|
||||||
|
|
||||||
|
this.tableData = [
|
||||||
|
{ sumclass, sunnumclass, exampapersum, sumtimu }
|
||||||
|
];
|
||||||
|
} else {
|
||||||
|
console.error('Failed to fetch data:', data.msg || 'Unknown error');
|
||||||
|
}
|
||||||
|
} catch (error) {
|
||||||
|
console.error('Error fetching data:', error);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
collapse(){
|
||||||
|
//点击收缩按钮触发
|
||||||
|
this.isCollapse = !this.isCollapse
|
||||||
|
if(this.isCollapse){
|
||||||
|
this.sideWidth = 64
|
||||||
|
this.collapseBtnClass = 'el-icon-s-unfold'
|
||||||
|
this.logoTextShow = false
|
||||||
|
}else{
|
||||||
|
this.sideWidth = 200
|
||||||
|
this.collapseBtnClass = 'el-icon-s-fold'
|
||||||
|
this.logoTextShow = true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
</script>
|
Loading…
Reference in new issue