|
@@ -3,29 +3,20 @@
|
|
|
<topHead></topHead>
|
|
|
<topNav></topNav>
|
|
|
<div class="container d-f">
|
|
|
- <div class="leftMenu">
|
|
|
- <li @click="jump('/myClass')">
|
|
|
- <i class="iconfont iconbanji"></i>
|
|
|
- <span>我的班级</span>
|
|
|
- </li>
|
|
|
- <li class="active">
|
|
|
- <i class="iconfont iconyuejuan"></i> <span>阅卷任务</span>
|
|
|
- </li>
|
|
|
- <li @click="jump('/work_analysis')">
|
|
|
- <i class="iconfont iconzuoye1"></i><span>{{navKey==2?'作业分析':'成绩分析'}}</span>
|
|
|
- </li>
|
|
|
- <!-- <li @click="jump()">
|
|
|
- <i class="iconfont iconcuoti1"></i><span>错题分析</span>
|
|
|
- </li> -->
|
|
|
- </div>
|
|
|
+ <sonNav></sonNav>
|
|
|
<div class="rightContent">
|
|
|
<div class="recordTitle">
|
|
|
- <span>{{navKey==2?'作业中心':'考试中心'}} > </span>
|
|
|
+ <span>{{ navKey == 2 ? "作业中心" : "考试中心" }} > </span>
|
|
|
<span>阅卷任务</span>
|
|
|
</div>
|
|
|
<div class="d-f screen screen1">
|
|
|
<span>班级:</span>
|
|
|
- <el-select v-model="params.cid" clearable placeholder="请选择">
|
|
|
+ <el-select
|
|
|
+ v-model="params.cid"
|
|
|
+ class="small"
|
|
|
+ clearable
|
|
|
+ placeholder="请选择"
|
|
|
+ >
|
|
|
<el-option
|
|
|
:label="item.name"
|
|
|
:value="item.id"
|
|
@@ -33,12 +24,13 @@
|
|
|
:key="item.name"
|
|
|
></el-option>
|
|
|
</el-select>
|
|
|
- <!-- <span>分类:</span>
|
|
|
- <el-select v-model="params.ctgid" clearable placeholder="请选择">
|
|
|
- <el-option label="分类" value="分类"></el-option>
|
|
|
- </el-select> -->
|
|
|
<span>年份:</span>
|
|
|
- <el-select v-model="params.year" clearable placeholder="请选择">
|
|
|
+ <el-select
|
|
|
+ v-model="params.year"
|
|
|
+ class="small"
|
|
|
+ clearable
|
|
|
+ placeholder="请选择"
|
|
|
+ >
|
|
|
<el-option
|
|
|
:label="item.name"
|
|
|
:value="item.name"
|
|
@@ -46,10 +38,6 @@
|
|
|
:key="item.name"
|
|
|
></el-option>
|
|
|
</el-select>
|
|
|
- <!-- <span>状态:</span>
|
|
|
- <el-select v-model="params.status" clearable placeholder="请选择">
|
|
|
- <el-option label="状态1" value="状态1"> </el-option>
|
|
|
- </el-select> -->
|
|
|
<div class="search_box">
|
|
|
<i class="el-icon-search"></i>
|
|
|
<el-input
|
|
@@ -60,54 +48,85 @@
|
|
|
<el-button @click="search">搜索</el-button>
|
|
|
<el-button @click="reset" class="reset">重置</el-button>
|
|
|
</div>
|
|
|
- <div class="d-f j-s table_head">
|
|
|
- <li>作业名称</li>
|
|
|
- <li>满分</li>
|
|
|
- <li>最高分</li>
|
|
|
- <li>平均分</li>
|
|
|
- <li>及格率</li>
|
|
|
- <li>批阅进度</li>
|
|
|
- <li>上传时间</li>
|
|
|
- <li>操作</li>
|
|
|
- </div>
|
|
|
- <div class="none" v-if="tableData.length == 0">
|
|
|
- <div>
|
|
|
- <img src="../../assets/none.png" alt="" />
|
|
|
- </div>
|
|
|
- <div>暂无数据</div>
|
|
|
- </div>
|
|
|
- <div
|
|
|
- v-else
|
|
|
- class="cap_table"
|
|
|
- :style="{ minHeight: $c.cle - 400 + 'px' }"
|
|
|
- >
|
|
|
- <li v-for="(item, i) in tableData" :key="i" class="d-f j-s">
|
|
|
- <div>{{ item.name }}</div>
|
|
|
- <div>{{ item.score }}</div>
|
|
|
- <div>{{ item.high_score }}</div>
|
|
|
- <div>{{ item.avg_score }}</div>
|
|
|
- <div>{{ item.pass_rate }}</div>
|
|
|
- <div class="d-f">
|
|
|
- <el-progress
|
|
|
- :percentage="item.ww"
|
|
|
- :stroke-width="8"
|
|
|
- :color="
|
|
|
- item.student_amount == item.marked_amount
|
|
|
- ? '#0A9DFF'
|
|
|
- : '#FA0A2F'
|
|
|
- "
|
|
|
- ></el-progress>
|
|
|
- <div class="contrasts">
|
|
|
- <span>{{ item.marked_amount }}/</span>
|
|
|
- <span>{{ item.student_amount }}</span>
|
|
|
+ <el-table :data="tableData" stripe style="width: 100%">
|
|
|
+ <el-table-column prop="name" label="作业名称"> </el-table-column>
|
|
|
+ <el-table-column prop="score" label="满分">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <div class="bold">{{scope.row.score}}</div>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column prop="high_score" label="最高分">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <div class="bold">{{scope.row.high_score}}</div>
|
|
|
+ </template> </el-table-column>
|
|
|
+ <el-table-column prop="avg_score" label="平均分">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <div class="bold">{{scope.row.avg_score}}</div>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column prop="pass_rate" label="及格率">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <div class="bold" style="color:#0A9DFF">{{scope.row.pass_rate}}</div>
|
|
|
+ </template> </el-table-column>
|
|
|
+ <el-table-column prop="phone" label="批阅进度" width="180">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <div class="d-f prosss_box">
|
|
|
+ <el-progress
|
|
|
+ :percentage="scope.row.ww"
|
|
|
+ :stroke-width="8"
|
|
|
+ :color="
|
|
|
+ scope.row.student_amount == scope.row.marked_amount
|
|
|
+ ? '#0A9DFF'
|
|
|
+ : '#FA0A2F'
|
|
|
+ "
|
|
|
+ ></el-progress>
|
|
|
+ <div class="contrasts">
|
|
|
+ <span>{{ scope.row.marked_amount }}/</span>
|
|
|
+ <span>{{ scope.row.student_amount }}</span>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
- </div>
|
|
|
- <div>{{ item.updated_at }}</div>
|
|
|
- <div class="operation">
|
|
|
- <span @click="jump('/tk_yp?title='+item.name+'&id='+item.id+'&tid='+item.pid)">批阅</span>
|
|
|
- <span @click="jump('/Answer_analysis?title='+item.name+'&id='+item.id)">查看</span>
|
|
|
- </div>
|
|
|
- </li>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column prop="updated_at" label="上传时间" width="160">
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column prop="phone" label="操作">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <el-button
|
|
|
+ @click="
|
|
|
+ jump(
|
|
|
+ '/tk_yp?title=' +
|
|
|
+ scope.row.name +
|
|
|
+ '&id=' +
|
|
|
+ scope.row.id +
|
|
|
+ '&tid=' +
|
|
|
+ scope.row.pid
|
|
|
+ )
|
|
|
+ "
|
|
|
+ type="text"
|
|
|
+ size="small"
|
|
|
+ >批阅</el-button
|
|
|
+ >
|
|
|
+ <el-button
|
|
|
+ type="text"
|
|
|
+ size="small"
|
|
|
+ @click="
|
|
|
+ jump(
|
|
|
+ '/Answer_analysis?title=' +
|
|
|
+ scope.row.name +
|
|
|
+ '&id=' +
|
|
|
+ scope.row.id
|
|
|
+ )
|
|
|
+ "
|
|
|
+ >查看</el-button
|
|
|
+ >
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ </el-table>
|
|
|
+ <div class="none" v-if="tableData.length == 0">
|
|
|
+ <div>
|
|
|
+ <img src="../../assets/none.png" alt="" />
|
|
|
+ </div>
|
|
|
+ <div>暂无数据</div>
|
|
|
</div>
|
|
|
<div class="d-f j-s pagePagin" v-if="total > 0">
|
|
|
<el-pagination
|
|
@@ -129,6 +148,7 @@
|
|
|
import topNav from "@/components/assembly/topnav";
|
|
|
import topHead from "@/components/assembly/head";
|
|
|
import foot from "@/components/assembly/foot";
|
|
|
+import sonNav from "@/components/assembly/exam_works_nav";
|
|
|
import { tasks, years, classes } from "@/util/api";
|
|
|
export default {
|
|
|
data() {
|
|
@@ -146,11 +166,11 @@ export default {
|
|
|
tableData: [],
|
|
|
classL: [],
|
|
|
total: 0,
|
|
|
- navKey:2,
|
|
|
+ navKey: 2,
|
|
|
};
|
|
|
},
|
|
|
created() {
|
|
|
- // var time = parseInt(new Date().getTime()/1000)
|
|
|
+ // var time = parseInt(new Date().getTime()/1000)
|
|
|
// if(this.Common.timeLogin() ==2){
|
|
|
// localStorage.setItem('open_tiem',time)
|
|
|
// this.$router.go(0);
|
|
@@ -161,8 +181,8 @@ export default {
|
|
|
// return
|
|
|
// }
|
|
|
var thta = this;
|
|
|
- this.navKey = localStorage.getItem('navKey');
|
|
|
- this.params.mtype = this.navKey==2?'work':'exam';
|
|
|
+ this.navKey = localStorage.getItem("navKey");
|
|
|
+ this.params.mtype = this.navKey == 2 ? "work" : "exam";
|
|
|
//年份
|
|
|
years().then((res) => {
|
|
|
if (res.errcode == 0) {
|
|
@@ -171,7 +191,7 @@ export default {
|
|
|
});
|
|
|
//班级
|
|
|
classes().then((res) => {
|
|
|
- console.log(res)
|
|
|
+ console.log(res);
|
|
|
if (res.errcode == 0) {
|
|
|
thta.classL = res.data;
|
|
|
}
|
|
@@ -180,15 +200,15 @@ export default {
|
|
|
},
|
|
|
methods: {
|
|
|
//重置
|
|
|
- reset(){
|
|
|
- this.params.year='';
|
|
|
- this.params.page=1;
|
|
|
- this.params.name='';
|
|
|
- this.params.cid='';
|
|
|
+ reset() {
|
|
|
+ this.params.year = "";
|
|
|
+ this.params.page = 1;
|
|
|
+ this.params.name = "";
|
|
|
+ this.params.cid = "";
|
|
|
this.getList();
|
|
|
},
|
|
|
//搜索
|
|
|
- search(){
|
|
|
+ search() {
|
|
|
this.params.page = 1;
|
|
|
this.getList();
|
|
|
},
|
|
@@ -214,19 +234,21 @@ export default {
|
|
|
}
|
|
|
tasks(obj).then((res) => {
|
|
|
if (res.errcode == 0) {
|
|
|
- res.data.forEach(item => {
|
|
|
- if(item.marked_amount){
|
|
|
- item.ww = Math.round(item.marked_amount/item.student_amount*100)
|
|
|
- }else{
|
|
|
- item.ww =0
|
|
|
- }
|
|
|
+ res.data.forEach((item) => {
|
|
|
+ if (item.marked_amount) {
|
|
|
+ item.ww = Math.round(
|
|
|
+ (item.marked_amount / item.student_amount) * 100
|
|
|
+ );
|
|
|
+ } else {
|
|
|
+ item.ww = 0;
|
|
|
+ }
|
|
|
});
|
|
|
that.tableData = res.data;
|
|
|
that.total = res.total;
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
that.tableData = [];
|
|
|
that.total = 0;
|
|
|
- that.$message.warning(res.mess)
|
|
|
+ that.$message.warning(res.mess);
|
|
|
}
|
|
|
load.close();
|
|
|
});
|
|
@@ -237,154 +259,26 @@ export default {
|
|
|
}
|
|
|
},
|
|
|
},
|
|
|
- components: { topHead, topNav, foot },
|
|
|
+ components: { topHead, topNav, foot, sonNav },
|
|
|
};
|
|
|
</script>
|
|
|
<style scoped>
|
|
|
-.cap_table {
|
|
|
- background-color: #fff;
|
|
|
-}
|
|
|
-.cap_table .el-progress.el-progress--line {
|
|
|
- width: 88px;
|
|
|
-}
|
|
|
-.cap_table .operation span {
|
|
|
- color: #0a9dff;
|
|
|
- margin-right: 12px;
|
|
|
- cursor: pointer;
|
|
|
-}
|
|
|
-.cap_table .operation span:last-child{
|
|
|
- margin-right: 0;
|
|
|
-}
|
|
|
.container {
|
|
|
background: #f4f4f4;
|
|
|
/* margin-bottom: 40px; */
|
|
|
margin-top: 30px;
|
|
|
}
|
|
|
-.table_head {
|
|
|
- border-bottom: 1px solid #f4f4f4;
|
|
|
-}
|
|
|
-.table_head,
|
|
|
-.cap_table li {
|
|
|
- background-color: #fff;
|
|
|
- line-height: 44px;
|
|
|
- padding: 0 15px;
|
|
|
- box-sizing: border-box;
|
|
|
- color: #999;
|
|
|
- font-size: 13px;
|
|
|
-}
|
|
|
-.cap_table .contrasts {
|
|
|
- margin-left: 10px;
|
|
|
-}
|
|
|
-.cap_table li:nth-child(even) {
|
|
|
- background-color: #f5f9fb;
|
|
|
-}
|
|
|
-.cap_table li div {
|
|
|
- line-height: 44px;
|
|
|
- font-size: 14px;
|
|
|
- color: #333;
|
|
|
-}
|
|
|
-.cap_table li > div:nth-child(1) {
|
|
|
- overflow: hidden;
|
|
|
- text-overflow: ellipsis;
|
|
|
- white-space: nowrap;
|
|
|
-}
|
|
|
-.cap_table li > div:nth-child(2),
|
|
|
-.cap_table li > div:nth-child(3),
|
|
|
-.cap_table li > div:nth-child(4),
|
|
|
-.cap_table li > div:nth-child(5) {
|
|
|
- font-weight: bold;
|
|
|
-}
|
|
|
-.cap_table li > div:nth-child(5) {
|
|
|
- color: #0a9dff;
|
|
|
-}
|
|
|
-.table_head li:nth-child(1),
|
|
|
-.table_head li:nth-child(7),
|
|
|
-.cap_table li > div:nth-child(1),
|
|
|
-.cap_table li > div:nth-child(7) {
|
|
|
- width: 15%;
|
|
|
-}
|
|
|
-.table_head li:nth-child(2),
|
|
|
-.table_head li:nth-child(3),
|
|
|
-.table_head li:nth-child(4),
|
|
|
-.table_head li:nth-child(5),
|
|
|
-.table_head li:nth-child(8),
|
|
|
-.cap_table li > div:nth-child(2),
|
|
|
-.cap_table li > div:nth-child(3),
|
|
|
-.cap_table li > div:nth-child(4),
|
|
|
-.cap_table li > div:nth-child(5),
|
|
|
-.cap_table li > div:nth-child(8) {
|
|
|
- width: 8%;
|
|
|
-}
|
|
|
-.table_head li:nth-child(6),
|
|
|
-.cap_table li > div:nth-child(6) {
|
|
|
- width: 16%;
|
|
|
-}
|
|
|
-.recordTitle {
|
|
|
- font-size: 13px;
|
|
|
- color: #cccccc;
|
|
|
- margin: 0 0 15px 0;
|
|
|
-}
|
|
|
-.recordTitle span:last-child {
|
|
|
- color: #666;
|
|
|
-}
|
|
|
-.screen {
|
|
|
- margin-top: 0;
|
|
|
- background: #fff;
|
|
|
- padding: 15px 5px;
|
|
|
- box-shadow: 0px 2px 4px 0px rgba(0, 0, 0, 0.1);
|
|
|
- margin-bottom: 10px;
|
|
|
-}
|
|
|
-.screen span {
|
|
|
- margin-left: 10px;
|
|
|
-}
|
|
|
-.leftMenu {
|
|
|
- width: 230px;
|
|
|
- padding: 10px 0;
|
|
|
- background-color: #fff;
|
|
|
- height: 135px;
|
|
|
-}
|
|
|
-.leftMenu i {
|
|
|
- /* width: 14px;
|
|
|
- height: 14px;*/
|
|
|
- /* vertical-align: middle; */
|
|
|
- display: inline-block;
|
|
|
- margin-left: 24px;
|
|
|
- margin-right: 16px;
|
|
|
-}
|
|
|
-.leftMenu li {
|
|
|
- height: 44px;
|
|
|
- line-height: 44px;
|
|
|
- width: 100%;
|
|
|
- color: #666;
|
|
|
- font-size: 14px;
|
|
|
- cursor: pointer;
|
|
|
- border-left: 2px solid #fff;
|
|
|
- box-sizing: border-box;
|
|
|
-}
|
|
|
-.leftMenu li.active {
|
|
|
- background: #ffe8ec;
|
|
|
- border-left: 2px solid #fa0a2f;
|
|
|
- color: #fa0a2f;
|
|
|
-}
|
|
|
-.pagePagin .el-pagination {
|
|
|
- margin-left: auto;
|
|
|
-}
|
|
|
</style>
|
|
|
<style>
|
|
|
-.cap_table .el-progress-bar {
|
|
|
+.prosss_box .el-progress.el-progress--line{
|
|
|
+ width: 88px;
|
|
|
+ margin:auto 5px auto 0
|
|
|
+}
|
|
|
+.prosss_box .el-progress-bar{
|
|
|
padding-right: 0;
|
|
|
}
|
|
|
-.cap_table .el-progress__text {
|
|
|
+.prosss_box .el-progress__text{
|
|
|
display: none;
|
|
|
}
|
|
|
-.none {
|
|
|
- color: #999;
|
|
|
- text-align: center;
|
|
|
- margin: 0 0 60px 0;
|
|
|
-}
|
|
|
-.none div:nth-child(1) {
|
|
|
- width: 416px;
|
|
|
- height: 276px;
|
|
|
- margin: 0 auto 40px auto;
|
|
|
-}
|
|
|
</style>
|
|
|
+
|