From 8a968bcc9d96c6ac88c6ec85b27be63ae40aef36 Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期二, 09 七月 2024 17:37:31 +0800
Subject: [PATCH] 密码强制修改实现

---
 src/views/exam/exam/monitor.vue |   64 ++++++++++++++++++++++++++++++-
 1 files changed, 61 insertions(+), 3 deletions(-)

diff --git a/src/views/exam/exam/monitor.vue b/src/views/exam/exam/monitor.vue
index bbcee56..e43fad8 100644
--- a/src/views/exam/exam/monitor.vue
+++ b/src/views/exam/exam/monitor.vue
@@ -17,9 +17,30 @@
       <el-table-column align="center" prop="status" label="鐘舵��" :formatter="statusFormatter" />
       <el-table-column label="鎿嶄綔" align="center">
         <template slot-scope="{row}">
+          <el-popover
+            placement="right"
+            width="400"
+            trigger="click">
+            <el-form :model="addTimeForm" ref="addTimeForm" :rules="addTimeRule">
+              <el-form-item label="瀛﹀憳">
+                <div>{{row.userName}}</div>
+              </el-form-item>
+              <el-form-item label="鍔犲灏戝垎閽�">
+                <el-input v-model="addTimeForm.addTimeM" type="number" size="small"/>
+              </el-form-item>
+              <el-form-item>
+                <el-button size="mini" type="success" @click="handlerAddTime(row)">鍔犳椂</el-button>
+              </el-form-item>
+            </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 size="mini" type="primary" @click="edit(row)">鏀跺嵎</el-button>
-          <el-button size="mini" type="success" @click="edit(row)">鍔犳椂</el-button>
+          <el-popconfirm
+            title="纭畾瑕佸己鍒舵彁浜よ瀛﹀憳鐨勮瘯鍗峰悧锛�"
+            @confirm="handlerForceSubmit(row.userId)"
+          >
+            <el-button size="mini" type="primary" slot="reference">鏀跺嵎</el-button>
+          </el-popconfirm>
         </template>
       </el-table-column>
     </el-table>
@@ -48,7 +69,7 @@
 <script>
 import { mapGetters, mapState } from 'vuex'
 import Pagination from '@/components/Pagination'
-import { monitorList } from '@/api/exam'
+import { monitorList, addTime, forceSubmit } from '@/api/exam'
 import cheatApi from '@/api/cheat'
 
 export default {
@@ -69,6 +90,16 @@
         name: '',
         itemOrder: ''
       },
+      addTimeForm: {
+        examId: null,
+        userId: null,
+        userName: '',
+        addTimeM: 1  // 娣诲姞澶氬皯鍒嗛挓
+      },
+      forceSubmitForm: {
+        examId: null,
+        userId: null
+      },
       visible: false,
       rules: {
         name: [
@@ -78,6 +109,14 @@
           { required: true, message: '璇疯緭鍏ユ帓搴�', trigger: 'blur', type: 'number' }
         ]
       },
+      addTimeRule: {
+        userId: [
+          { required: true, message: '璇烽�夋嫨涓鸿皝鍔犳椂', trigger: 'blur' }
+        ],
+        addTimeSecond: [
+          { required: true, message: '璇疯緭鍏ュ姞鏃舵椂闂�', trigger: 'blur' }
+        ]
+      },
     };
   },
   created() {
@@ -85,6 +124,25 @@
     this.search()
   },
   methods: {
+    // 澶勭悊鍔犳椂
+    handlerAddTime() {
+      this.$refs['addTimeForm'].validate((valid) => {
+        if (valid) {
+          this.addTimeForm.examId = this.queryParam.examId
+          addTime(this.addTimeForm).then(res => {
+            this.$message.success('鍔犳椂鎴愬姛')
+          })
+        }
+      })
+    },
+    // 寮哄埗浜ゅ嵎
+    handlerForceSubmit(userId) {
+      this.forceSubmitForm.examId = this.queryParam.examId
+      this.forceSubmitForm.userId = userId
+      forceSubmit(this.forceSubmitForm).then(res => {
+        this.$message.success('寮哄埗浜ゅ嵎鎴愬姛')
+      })
+    },
     handleNullify(row) {
       let cheatObj = { examId: row.examId, cheatUser: row.userId };
       cheatApi.edit(cheatObj).then(res => {

--
Gitblit v1.8.0