Browse Source

局域网——教师端

XW 3 months ago
parent
commit
4c930c98e3

+ 2 - 0
TEAMModelOS.Extension/IES.Exam/IES.ExamViews/src/view/admin/ActivityManage.less

@@ -1,6 +1,7 @@
 .el-container {
     height: 100%;
     background-color: #F7F5F4;
+    position: relative;
 
     .base-user-center {
         position: absolute;
@@ -262,6 +263,7 @@
         top: 70px;
         right: 20px;
         width: 20%;
+        height: calc(100% - 70px);
 
         .info-box {
             display: flex;

+ 36 - 9
TEAMModelOS.Extension/IES.Exam/IES.ExamViews/src/view/admin/ActivityManage.vue

@@ -78,7 +78,10 @@
                                 <el-button type="warning" size="mini" v-show="needUpdate.status === 1" @click="updatePackage()">立即更新</el-button>
                                 <span v-show="needUpdate.status === 2">该活动在云端不存在或未联网</span>
                             </span>
+                            <el-button v-show="!needUpdate.status" size="mini" style="margin-left: 10px;" @click="updatePackage()">重新下载资源</el-button>
                             <el-button size="mini" style="margin-left: 10px;" @click="pushAnswer()">推送学生作答</el-button>
+                            <el-button size="mini" style="margin-left: 10px;" @click="uploadAnswer()">导出学生作答</el-button>
+                            <el-button size="mini" type="warning" plain style="margin-left: 10px;" @click="cleanPackage()">清理资源</el-button>
                         </span>
                     </div>
                     <el-tabs v-model="activeName" :before-leave="beforeTabLeave">
@@ -97,9 +100,15 @@
                                     提取码:
                                     <span style="color: #24b880; font-size: 20px; font-weight: bold;">{{ evaluationClient.shortCode }}</span>
                                 </div>
+                                <div class="info-tag">学生总数:
+                                    <span>{{ evaluationClient.studentCount }}人</span>
+                                </div>
+                                <div class="info-tag">资源大小:
+                                    <span>{{ evaluationClient.fileSize }}M</span>
+                                </div>
                                 <div class="paper-content">
                                     <div v-for="(item, index) in evaluationClient.subjects" :key="index">
-                                        <p class="subject-name">{{ item.subjectName }}</p>
+                                        <p class="subject-name">{{ item.subjectName }}({{ item.papers.length }}份)</p>
                                         <div>
                                             <el-tag type="warning" v-for="(papers, pIndex) in item.papers" :key="pIndex" @click="openPaper(index, pIndex)">{{ papers.paperName }}</el-tag>
                                         </div>
@@ -244,13 +253,15 @@
             </div>
         </el-dialog>
         <div class="open-evaluation" v-if="showErrorMsgs">
-            <div class="info-box error-info" v-for="(item, index) in openErrorMsgs" :key="index">
-                <p :title="item">
-                    <i class="el-icon-error"></i>
-                    {{ item }}
-                </p>
-                <span><i class="el-icon-close" @click="delInfo(index)"></i></span>
-            </div>
+            <vuescroll>
+                <div class="info-box error-info" v-for="(item, index) in openErrorMsgs" :key="index">
+                    <p :title="item">
+                        <i class="el-icon-error"></i>
+                        {{ item }}
+                    </p>
+                    <span><i class="el-icon-close" @click="delInfo(index)"></i></span>
+                </div>
+            </vuescroll>
             <!-- <div class="info-box success-info">
                 <p>
                     <i class="el-icon-success"></i>
@@ -269,6 +280,7 @@
 import {jwtDecode} from 'jwt-decode'
 import { Loading } from 'element-ui'
 import TestPaper from './TestPaper.vue'
+import vuescroll from 'vuescroll'
 
 export default {
     components: { TestPaper },
@@ -380,6 +392,7 @@ export default {
                             group.isUesed = false
                             return group
                         })
+                        item.fileSize = ((item.blobSize + item.dataSize) / 1024 / 1024).toFixed(2)
                         return item
                     })
                     if(this.examList.length) this.onSelectAct(0)
@@ -642,7 +655,7 @@ export default {
             this.openErrorMsgs = []
             this.isLoading = Loading.service({
                 lock: true,
-                text: '加载中',
+                text: '资源下载中...',
                 background: 'rgba(0, 0, 0, 0.7)'
             })
             let params = {
@@ -807,6 +820,20 @@ export default {
             this.isPushAnswer = true
             this.isInputOpen = true
         },
+        cleanPackage() {
+            // 等待后端接口
+            this.$message({
+                message: '暂未开发',
+                type: 'warning'
+            });
+        },
+        uploadAnswer() {
+            // 等待后端接口
+            this.$message({
+                message: '暂未开发',
+                type: 'warning'
+            });
+        },
         loginOut() {
             localStorage.removeItem('auth_token')
 			localStorage.removeItem('expires_in')