From cce9b105726750f1b76eef2fa250680ebf36d06c Mon Sep 17 00:00:00 2001
From: luohairen <3399054449@qq.com>
Date: 星期五, 08 十一月 2024 09:54:45 +0800
Subject: [PATCH] 完成教师端,页面顶部展示

---
 src/views/exam/exam/monitor.vue |   76 ++++++++++++++++++++-----------------
 1 files changed, 41 insertions(+), 35 deletions(-)

diff --git a/src/views/exam/exam/monitor.vue b/src/views/exam/exam/monitor.vue
index eade8d1..971bb16 100644
--- a/src/views/exam/exam/monitor.vue
+++ b/src/views/exam/exam/monitor.vue
@@ -2,28 +2,29 @@
   <div class="app-container">
     <el-form :model="queryParam" ref="queryForm" :inline="true">
       <el-form-item>
-        <el-input v-model="queryParam.keyword" placeholder="璇疯緭鍏ュ悕绉�" clearable></el-input>
+        <el-input v-model="queryParam.keyword" size="small" placeholder="璇疯緭鍏ュ悕绉�" @input="search" clearable></el-input>
       </el-form-item>
       <el-form-item>
-        <el-button type="primary" @click="search">鏌ヨ</el-button>
+        <el-button type="primary" @click="search" size="small">鏌ヨ</el-button>
       </el-form-item>
     </el-form>
 
     <el-table v-loading="listLoading" :data="tableData" border fit highlight-current-row style="width: 100%">
-      <el-table-column align="center" prop="examName" label="鑰冭瘯" />
-      <el-table-column align="center" prop="userName" label="濮撳悕" show-overflow-tooltip />
-      <el-table-column align="center" prop="createTime" label="寮�濮嬫椂闂�" />
-      <el-table-column align="center" prop="doTime" label="鑰楁椂锛堢锛�" />
-      <el-table-column align="center" prop="status" label="鐘舵��" :formatter="statusFormatter" />
+      <el-table-column align="center" prop="examName" label="鑰冭瘯"/>
+      <el-table-column align="center" prop="userName" label="濮撳悕" show-overflow-tooltip/>
+      <el-table-column align="center" prop="createTime" label="寮�濮嬫椂闂�"/>
+      <el-table-column align="center" prop="doTime" label="鑰楁椂锛堢锛�"/>
+      <el-table-column align="center" prop="status" label="鐘舵��" :formatter="statusFormatter"/>
       <el-table-column label="鎿嶄綔" align="center">
         <template slot-scope="{row}">
           <el-popover
+            v-show="row.status === 'temp'"
             placement="right"
             width="400"
             trigger="click">
             <el-form :model="addTimeForm" ref="addTimeForm" :rules="addTimeRule">
               <el-form-item label="瀛﹀憳">
-                <span>{{row.userName}}</span>
+                <div>{{ row.userName }}</div>
               </el-form-item>
               <el-form-item label="鍔犲灏戝垎閽�">
                 <el-input v-model="addTimeForm.addTimeM" type="number" size="small"/>
@@ -34,8 +35,9 @@
             </el-form>
             <el-button size="mini" slot="reference">鍔犳椂</el-button>
           </el-popover>
-          <el-button size="mini" type="danger" @click="handleNullify(row)">浣滃簾</el-button>
+          <el-button v-show="row.status === 'temp'" size="mini" type="danger" @click="handleNullify(row)">浣滃紛</el-button>
           <el-popconfirm
+            v-show="row.status === 'temp'"
             title="纭畾瑕佸己鍒舵彁浜よ瀛﹀憳鐨勮瘯鍗峰悧锛�"
             @confirm="handlerForceSubmit(row.userId)"
           >
@@ -44,16 +46,16 @@
         </template>
       </el-table-column>
     </el-table>
-    <pagination v-show="total > 0" :total="total" :page.sync="queryParam.pageIndex" :limit.sync="queryParam.pageSize"
-      @pagination="search" />
+    <pagination v-show="total > 0" :total="total" :page.sync="queryParam.currentPage" :limit.sync="queryParam.pageSize"
+                @pagination="search"/>
 
     <el-dialog :visible.sync="visible" width="400px">
       <el-form :model="form" ref="form" label-width="100px" v-loading="formLoading" :rules="rules">
-        <el-form-item label="鍚嶇О锛�" prop="name" required>
-          <el-input v-model="form.name" maxlength="10" show-word-limit />
+        <el-form-item label="鍚嶇О锛�" prop="name">
+          <el-input v-model="form.name" maxlength="10" show-word-limit/>
         </el-form-item>
-        <el-form-item label="鎺掑簭锛�" prop="itemOrder" required>
-          <el-input-number v-model="form.itemOrder" type="number" :min="1" :max="100" />
+        <el-form-item label="鎺掑簭锛�" prop="itemOrder">
+          <el-input-number v-model="form.itemOrder" type="number" :min="1" :max="100"/>
         </el-form-item>
         <el-form-item>
           <el-button type="primary" @click="submitForm">鎻愪氦</el-button>
@@ -74,12 +76,12 @@
 
 export default {
   components: { Pagination },
-  data() {
+  data () {
     return {
       listLoading: true,
       queryParam: {
         examId: '',
-        pageIndex: 1,
+        currentPage: 1,
         pageSize: 10
       },
       formLoading: false,
@@ -94,7 +96,7 @@
         examId: null,
         userId: null,
         userName: '',
-        addTimeM: 0  // 娣诲姞澶氬皯鍒嗛挓
+        addTimeM: 1  // 娣诲姞澶氬皯鍒嗛挓
       },
       forceSubmitForm: {
         examId: null,
@@ -117,18 +119,19 @@
           { required: true, message: '璇疯緭鍏ュ姞鏃舵椂闂�', trigger: 'blur' }
         ]
       },
-    };
+    }
   },
-  created() {
-    this.queryParam.examId = this.$route.query.examId;
+  created () {
+    this.queryParam.examId = this.$route.query.examId
     this.search()
   },
   methods: {
     // 澶勭悊鍔犳椂
-    handlerAddTime() {
+    handlerAddTime (row) {
       this.$refs['addTimeForm'].validate((valid) => {
         if (valid) {
           this.addTimeForm.examId = this.queryParam.examId
+          this.addTimeForm.userId = row.userId
           addTime(this.addTimeForm).then(res => {
             this.$message.success('鍔犳椂鎴愬姛')
           })
@@ -136,28 +139,31 @@
       })
     },
     // 寮哄埗浜ゅ嵎
-    handlerForceSubmit(userId) {
+    handlerForceSubmit (userId) {
       this.forceSubmitForm.examId = this.queryParam.examId
       this.forceSubmitForm.userId = userId
       forceSubmit(this.forceSubmitForm).then(res => {
         this.$message.success('寮哄埗浜ゅ嵎鎴愬姛')
+        this.search()
       })
     },
-    handleNullify(row) {
-      let cheatObj = { examId: row.examId, cheatUser: row.userId };
+    handleNullify (row) {
+      let cheatObj = { examId: row.examId, cheatUser: row.userId }
       cheatApi.edit(cheatObj).then(res => {
-        this.$message.success(res.message);
+        this.$message.success(res.message)
       })
     },
-    statusFormatter(row) {
+    statusFormatter (row) {
       if (row.status === 'temp') {
         return '杩涜涓�'
       } else if (row.status === 'finish') {
         return '宸茬粨鏉�'
+      } else if (!row.status) {
+        return '鏈紑濮�'
       }
     },
     // 鑾峰彇鍒楄〃
-    search() {
+    search () {
       this.listLoading = true
       monitorList(this.queryParam).then(re => {
         re = re.data
@@ -168,17 +174,17 @@
         this.listLoading = false
       })
     },
-    edit(row) {
+    edit (row) {
       cheatApi.select(row.id).then(re => {
         if (re.code === 1) {
-          this.form = re.data;
-          this.visible = true;
+          this.form = re.data
+          this.visible = true
         } else {
           this.$message.error(re.message)
         }
       })
     },
-    status(row) {
+    status (row) {
       let question = {
         id: row.id,
         status: row.status === '绂佺敤' ? '鍚敤' : '绂佺敤'
@@ -192,7 +198,7 @@
         }
       })
     },
-    deletecheat(row) {
+    deletecheat (row) {
       let _this = this
       cheatApi.deletecheat(row.id).then(re => {
         if (re.code === 1) {
@@ -203,7 +209,7 @@
         }
       })
     },
-    submitForm() {
+    submitForm () {
       let _this = this
       this.$refs.form.validate((valid) => {
         if (valid) {
@@ -223,7 +229,7 @@
         }
       })
     },
-    resetForm() {
+    resetForm () {
       let lastId = this.form.id
       this.$refs['form'].resetFields()
       this.form.id = lastId

--
Gitblit v1.8.0