From 2e45831fca4c883a7f67a06c65749c048c409ffe Mon Sep 17 00:00:00 2001
From: lohir <3399054449@qq.com>
Date: 星期四, 17 十月 2024 17:16:58 +0800
Subject: [PATCH] 班级成员管理显示班级名

---
 src/views/train/index.vue |  101 ++++++++++++++++++++++++++++++++++++--------------
 1 files changed, 72 insertions(+), 29 deletions(-)

diff --git a/src/views/train/index.vue b/src/views/train/index.vue
index 6e982e3..954f923 100644
--- a/src/views/train/index.vue
+++ b/src/views/train/index.vue
@@ -8,41 +8,44 @@
             <div class="card-wrapper">
               <div class="card-header">
                 <div class="header-tab">
-                  <el-tabs v-model="activeName" @tab-click="handleClick">
-                    <el-tab-pane label="鍏ㄩ儴" name="1"></el-tab-pane>
-                    <el-tab-pane label="鏈紑濮�" name="2"></el-tab-pane>
-                    <el-tab-pane label="杩涜涓�" name="3"></el-tab-pane>
-                    <el-tab-pane label="宸茬粨鏉�" name="4"></el-tab-pane>
+                  <el-tabs v-model="activeName" @tab-click="handleClick" size="small">
+                    <el-tab-pane label="鍏ㄩ儴" name="all"></el-tab-pane>
+                    <el-tab-pane label="鏈紑濮�" name="0"></el-tab-pane>
+                    <el-tab-pane label="杩涜涓�" name="1"></el-tab-pane>
+                    <el-tab-pane label="宸茬粨鏉�" name="2"></el-tab-pane>
                   </el-tabs>
                 </div>
                 <div class="header-search">
-                  <el-input v-model="queryParam.meetName" @input="getList" clearable @clear="getList" placeholder="璇疯緭鍏ヨ绋嬪悕绉�"/>
-                  <el-button type="primary" class="ml-4" @click="getList" >鎼滅储</el-button>
+                  <el-input v-model="queryParam.meetName" @input="getList" clearable @clear="getList" size="small"
+                            placeholder="璇疯緭鍏ヨ绋嬪悕绉�"/>
+                  <el-button type="primary" class="ml-4" style="margin-left: 5px" size="small" @click="getList">鎼滅储</el-button>
                 </div>
                 <div>
-                  <el-button type="primary" @click="handleAdd()">娣诲姞</el-button>
+                  <el-button type="primary" @click="handleAdd()" size="small">娣诲姞</el-button>
                 </div>
               </div>
 
               <div class="card-main flex-1 my-5 relative">
                 <div class="main-content absolute top-0 bottom-0 left-0 right-0">
-                  <DataList :tableData="tableData" @handleUpdate="handleUpdate" @remove = "remove"></DataList>
+                  <DataList :tableData="tableData" @handleUpdate="handleUpdate" @remove="remove"
+                            @start="start"></DataList>
                   <div id="meet" ref="meet"></div>
                 </div>
               </div>
 
-              <pagination v-show="total>0" :total="total" :page.sync="queryParam.pageIndex" :limit.sync="queryParam.pageSize"
+              <pagination v-show="total>0" :total="total" :page.sync="queryParam.pageIndex"
+                          :limit.sync="queryParam.pageSize"
                           @pagination="getList"/>
             </div>
           </el-card>
 
           <!-- 娣诲姞浼氳瀵硅瘽妗� -->
           <el-dialog :title="title" :visible.sync="open" width="600px" append-to-body>
-            <el-form label-width="80px" ref="form" :model="form" :rules="rules" >
-              <el-form-item label="鎴块棿鍚嶏細" prop="meetName" >
+            <el-form label-width="80px" ref="form" :model="form" :rules="rules">
+              <el-form-item label="鎴块棿鍚�" prop="meetName">
                 <el-input v-model="form.meetName" placeholder="璇疯緭鍏ユ埧闂村悕" style="width: 300px"></el-input>
               </el-form-item>
-              <el-form-item label="鐝骇锛�" >
+              <el-form-item label="鐝骇">
                 <el-select
                   v-model="form.classesId"
                   placeholder="鐝骇"
@@ -51,16 +54,21 @@
                   <el-option v-for="item in classesIds" :key="item.id" :label="item.className" :value="item.id"/>
                 </el-select>
               </el-form-item>
-              <el-form-item label="涓婅鏃堕棿" prop="time" >
-                  <el-date-picker
-                    v-model="form.time"
-                    type="datetimerange"
-                    format="yyyy-MM-dd HH:mm:ss"
-                    value-format="yyyy-MM-dd HH:mm:ss"
-                    range-separator="鑷�"
-                    start-placeholder="寮�濮嬫棩鏈�"
-                    end-placeholder="缁撴潫鏃ユ湡">
-                  </el-date-picker>
+              <el-form-item label="涓婅鏃堕棿" prop="time">
+                <el-date-picker
+                  v-model="form.time"
+                  type="datetimerange"
+                  format="yyyy-MM-dd HH:mm:ss"
+                  value-format="yyyy-MM-dd HH:mm:ss"
+                  range-separator="鑷�"
+                  start-placeholder="寮�濮嬫棩鏈�"
+                  end-placeholder="缁撴潫鏃ユ湡">
+                </el-date-picker>
+              </el-form-item>
+              <el-form-item label="鐘舵��">
+                <el-radio v-model="form.status" :label="0"  :disabled="!form.id">寰呭紑濮�</el-radio>
+                <el-radio v-model="form.status" :label="1"  :disabled="!form.id">杩涜涓�</el-radio>
+                <el-radio v-model="form.status" :label="2"  :disabled="!form.id">宸茬粨鏉�</el-radio>
               </el-form-item>
             </el-form>
             <div slot="footer" class="dialog-footer">
@@ -78,12 +86,11 @@
 <script>
 import DataList from './data-list/index.vue'
 import Pagination from '@/components/Pagination'
-import { getMeets,addMeet,editMeet,deleteMeetById } from '@/api/meet'
+import { getMeets, addMeet, editMeet, deleteMeetById, startMeet } from '@/api/meet'
 import { myClasses } from '@/api/classes'
 
-
 export default {
-  components: { DataList,Pagination},
+  components: { DataList, Pagination },
   data () {
     return {
       queryParam: {
@@ -96,10 +103,12 @@
       open: false,
       listLoading: true,
       title: '',
-      form: {},
+      form: {
+        status: 0
+      },
       tableData: [],
       classesIds: [],
-      activeName: '1',
+      activeName: 'all',
       searchText: '',
       rules: {
         meetName: [
@@ -120,6 +129,12 @@
   },
   methods: {
     handleClick () {
+      if (this.activeName !== 'all') {
+        this.queryParam.status = this.activeName
+      } else {
+        this.queryParam.status = null
+      }
+      this.getList()
     },
     remove (item) {
       deleteMeetById(item.id).then(re => {
@@ -127,6 +142,29 @@
           this.open = false
           this.getList()
           this.$message.success(re.data.message)
+        } else {
+          this.$message.error(re.data.message)
+        }
+      })
+    },
+    start (item) {
+      // 淇敼鎴块棿鐘舵�佷负杩涜涓�
+      item.status = 1
+      startMeet(item).then(re => {
+        if (re.data.code === 1) {
+          this.getList()
+          let routeUrl = this.$router.resolve({
+            path: '/meet',
+            query: {
+              meetId: item.id,
+              domain: 'ycl.easyblog.vip:8443/' + item.id,
+              roomName: item.meetName,
+              userInfoStr: JSON.stringify({
+                displayName: item.teacherName
+              })
+            }
+          })
+          window.open(routeUrl.href, '_blank')
         } else {
           this.$message.error(re.data.message)
         }
@@ -159,7 +197,7 @@
         id: null,
         meetName: null,
         classesId: null,
-        status: null,
+        status: 0,
         startTime: null,
         endTime: null,
         time: []
@@ -203,6 +241,7 @@
       })
     },
     handleAdd () {
+      this.resetForm()
       this.open = true
       this.title = '鏂板缓鎴块棿'
     }
@@ -214,6 +253,7 @@
 :deep(.el-tabs__nav-wrap:after) {
   display: none;
 }
+
 .train-container {
   width: 100%;
   height: 100%;
@@ -225,14 +265,17 @@
     flex: 1;
     position: relative;
     width: 100%;
+    height: 100%;
   }
 }
+
 .card-header {
   display: flex;
   justify-content: space-between;
   align-items: center;
   flex-shrink: 0;
 }
+
 .header-search {
   display: flex;
   align-items: center;

--
Gitblit v1.8.0