From 81e16742530ddcd86b368678bad74fc8eb471c63 Mon Sep 17 00:00:00 2001
From: fuliqi <fuliqi@qq.com>
Date: 星期一, 28 十月 2024 18:44:19 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master' into test

---
 src/views/class-management/Class.vue      |   75 +++++++++++++++---------
 src/views/user/admin/list.vue             |    8 ++
 src/views/profile/components/Timeline.vue |   15 ----
 src/api/user.js                           |    4 
 src/views/profile/index.vue               |    8 +-
 src/layout/components/Navbar.vue          |    2 
 src/views/train/index.vue                 |    2 
 src/views/meet/index.vue                  |   18 +++++
 src/views/user/teacher/list.vue           |    8 ++
 src/api/classes.js                        |    8 ++
 src/views/user/student/list.vue           |    8 ++
 src/views/profile/components/UserCard.vue |   12 ----
 12 files changed, 104 insertions(+), 64 deletions(-)

diff --git a/src/api/classes.js b/src/api/classes.js
index 95940ee..673b8e2 100644
--- a/src/api/classes.js
+++ b/src/api/classes.js
@@ -83,3 +83,11 @@
     method: "PUT"
   })
 }
+
+// 鑾峰彇鑰佸笀鍒楄〃
+export const getTeacherList = () => {
+  return axios({
+    url: "/api/admin/user/student/list",
+    method: "GET"
+  })
+}
diff --git a/src/api/user.js b/src/api/user.js
index 450f224..46a57f8 100644
--- a/src/api/user.js
+++ b/src/api/user.js
@@ -1,4 +1,4 @@
-import { post,get } from '@/utils/request'
+import { post, get } from '@/utils/request'
 
 export default {
   getUserPageList: query => post('/api/admin/user/page/list', query),
@@ -12,5 +12,5 @@
   selectByUserName: query => post('/api/admin/user/selectByUserName', query),
   studentList: () => get('/api/admin/user/student/list'),
   getClassesCurrentUserList: (param) => get('/api/admin/user/classes/students', param),
-  updatePassword: (data) => post('/api/common/user/update/password', data)
+  updatePassword: (data) => post('/api/common/user/update/password', data),
 }
diff --git a/src/layout/components/Navbar.vue b/src/layout/components/Navbar.vue
index 5fd5250..7def789 100644
--- a/src/layout/components/Navbar.vue
+++ b/src/layout/components/Navbar.vue
@@ -14,7 +14,7 @@
           <router-link to="/profile/index">
             <el-dropdown-item>涓汉淇℃伅</el-dropdown-item>
           </router-link>
-          <router-link to="/">
+          <router-link to="/dashboard">
             <el-dropdown-item>涓婚〉</el-dropdown-item>
           </router-link>
           <el-dropdown-item  @click.native="logout"  divided>閫�鍑�</el-dropdown-item>
diff --git a/src/views/class-management/Class.vue b/src/views/class-management/Class.vue
index 5dffd29..d567a34 100644
--- a/src/views/class-management/Class.vue
+++ b/src/views/class-management/Class.vue
@@ -37,7 +37,7 @@
     >
       <el-table-column
         align="center"
-        label="鐝骇"
+        label="鐝骇鍚嶇О"
         prop="className"
         width="180px"
       ></el-table-column>
@@ -60,9 +60,9 @@
 <!--      ></el-table-column>-->
       <el-table-column
         align="center"
-        width="100px"
+        width="300px"
         label="鏁欏笀"
-        prop="createUserName"
+        prop="teacherNamesStr"
       ></el-table-column>
 <!--      <el-table-column-->
 <!--        align="center"-->
@@ -91,10 +91,10 @@
           <el-button v-show="scope.row.status !== '瑙f暎'" size="small" @click="handlerEdit(scope.row)"
                      type="primary">淇敼
           </el-button>
-          <el-button v-show="scope.row.status !== '瑙f暎'" size="small" type="warning">鐝骇楠岃瘉</el-button>
-          <el-button v-show="scope.row.status !== '瑙f暎'" size="small" @click="handlerOpenNotify(scope.row)"
-                     type="info">閫氱煡
-          </el-button>
+<!--          <el-button v-show="scope.row.status !== '瑙f暎'" size="small" type="warning">鐝骇楠岃瘉</el-button>-->
+<!--          <el-button v-show="scope.row.status !== '瑙f暎'" size="small" @click="handlerOpenNotify(scope.row)"-->
+<!--                     type="info">閫氱煡-->
+<!--          </el-button>-->
           <el-button v-show="scope.row.status !== '瑙f暎'" @click="studentManager(scope.row.id,scope.row.className)" size="small"
                      type="success">鎴愬憳绠$悊
           </el-button>
@@ -123,25 +123,25 @@
       <pagination v-show="total>0" :total="total" :page.sync="searchForm.currentPage"
                   :limit.sync="searchForm.pageSize"
                   @pagination="page"/>
-    <el-dialog
-      title="鐝骇閫氱煡"
-      :visible.sync="notifyOpen"
-      width="600px"
-      :before-close="handleNotifyClose"
-      :close-on-click-modal="false">
-      <el-form :model="notifyForm" :rules="notifyRules" ref="notifyForm" label-width="100px" class="demo-ruleForm">
-        <el-form-item label="閫氱煡鐝骇锛�" prop="className">
-          <span>{{ notifyForm.className }}</span>
-        </el-form-item>
-        <el-form-item label="閫氱煡鍐呭锛�" prop="notifyContent">
-          <el-input type="textarea" v-model="notifyForm.notifyContent" size="small"></el-input>
-        </el-form-item>
-      </el-form>
-      <span slot="footer" class="dialog-footer">
-        <el-button @click="handleNotifyClose">鍙� 娑�</el-button>
-        <el-button type="primary" @click="submitNotifyForm">纭� 瀹�</el-button>
-      </span>
-    </el-dialog>
+<!--    <el-dialog-->
+<!--      title="鐝骇閫氱煡"-->
+<!--      :visible.sync="notifyOpen"-->
+<!--      width="600px"-->
+<!--      :before-close="handleNotifyClose"-->
+<!--      :close-on-click-modal="false">-->
+<!--      <el-form :model="notifyForm" :rules="notifyRules" ref="notifyForm" label-width="100px" class="demo-ruleForm">-->
+<!--        <el-form-item label="閫氱煡鐝骇锛�" prop="className">-->
+<!--          <span>{{ notifyForm.className }}</span>-->
+<!--        </el-form-item>-->
+<!--        <el-form-item label="閫氱煡鍐呭锛�" prop="notifyContent">-->
+<!--          <el-input type="textarea" v-model="notifyForm.notifyContent" size="small"></el-input>-->
+<!--        </el-form-item>-->
+<!--      </el-form>-->
+<!--      <span slot="footer" class="dialog-footer">-->
+<!--        <el-button @click="handleNotifyClose">鍙� 娑�</el-button>-->
+<!--        <el-button type="primary" @click="submitNotifyForm">纭� 瀹�</el-button>-->
+<!--      </span>-->
+<!--    </el-dialog>-->
 
     <el-dialog
       :title="title"
@@ -152,6 +152,16 @@
       <el-form :model="form" :rules="rules" ref="form" label-width="100px" class="demo-ruleForm">
         <el-form-item label="鐝骇鍚嶇О" prop="className">
           <el-input v-model="form.className" size="small"></el-input>
+        </el-form-item>
+        <el-form-item label="鑰佸笀閰嶇疆" prop="teacherList">
+          <el-select v-model="form.teacherList" multiple clearable size="small" placeholder="璇烽�夋嫨">
+            <el-option
+              v-for="item in teacherList"
+              :key="item.id"
+              :label="item.realName"
+              :value="item.id">
+            </el-option>
+          </el-select>
         </el-form-item>
         <el-form-item label="鐝骇鏃堕棿" required>
           <el-col :span="11">
@@ -191,7 +201,7 @@
 </template>
 
 <script>
-import { addClasses, editClasses, getClassess, dissolution, recover } from '@/api/classes'
+import { addClasses, editClasses, getClassess, dissolution, recover, getTeacherList } from '@/api/classes'
 import { addClassesNotify } from '@/api/classesNotify'
 import Pagination from '@/components/Pagination'
 
@@ -199,6 +209,7 @@
   components: { Pagination },
   data () {
     return {
+      teacherList: [],
       notifyOpen: false,
       notifyForm: {
         className: '',
@@ -220,6 +231,7 @@
       form: {
         id: null,
         className: '',
+        teacherList: [],
         status: '',
         verifyStatus: '',
         startTime: null,
@@ -248,6 +260,11 @@
     }
   },
   methods: {
+    getTeacherList () {
+      getTeacherList().then(res => {
+        this.teacherList = res.data.data
+      })
+    },
     handlerOpenNotify (row) {
       this.notifyOpen = true
       this.notifyForm.className = row.className
@@ -286,6 +303,7 @@
       this.form = {
         id: null,
         className: '',
+        teacherList: [],
         status: '',
         verifyStatus: '',
         startTime: null,
@@ -362,7 +380,8 @@
   },
   created () {
     this.page()
-  },
+    this.getTeacherList()
+  }
 }
 </script>
 
diff --git a/src/views/meet/index.vue b/src/views/meet/index.vue
index e1c646d..d05163a 100644
--- a/src/views/meet/index.vue
+++ b/src/views/meet/index.vue
@@ -82,9 +82,21 @@
   methods: {
     muteEveryone () {
       this.jitsiApi.executeCommand('muteEveryone', 'audio')
+      const h = this.$createElement;
+
+      this.$notify({
+        title: '鎻愮ず',
+        message: h('i', { style: 'color: teal'}, '宸插叏浣撶闊�')
+      });
     },
     videoEveryone () {
       this.jitsiApi.executeCommand('muteEveryone', 'video')
+      const h = this.$createElement;
+
+      this.$notify({
+        title: '鎻愮ず',
+        message: h('i', { style: 'color: teal'}, '宸插叧闂叏浣撹棰�')
+      });
     },
     handleCommand (command) {
       this.sendMessage(JSON.stringify(command))
@@ -266,13 +278,15 @@
     this.jitsiApi.addListener('readyToClose', () => {
       window.close()
     })
+    // 鍒濆鍖�
+    this.initWebSocket()
     // 姣忎笁绉掓洿瀛﹀憳鍦ㄧ嚎鐘舵��
     this.intervalId = setInterval(() => {
       this.getRoomInfo()
+      // 鍙戦�佸績璺虫暟鎹�
+      this.ws.send('ping')
     }, 2500)
 
-    // 鍒濆鍖�
-    this.initWebSocket()
   },
   beforeDestroy () {
     // 娓呴櫎瀹氭椂鍣紝閬垮厤鍐呭瓨娉勬紡
diff --git a/src/views/profile/components/Timeline.vue b/src/views/profile/components/Timeline.vue
index 64100ce..b57178f 100644
--- a/src/views/profile/components/Timeline.vue
+++ b/src/views/profile/components/Timeline.vue
@@ -3,13 +3,11 @@
     <el-timeline>
       <el-timeline-item  placement="top" :timestamp="userInfo.lastActiveTime">
         <el-card>
-          <h4>鏈�鍚庢椿鍔ㄦ椂闂�</h4>
           <p>{{ userInfo.realName+'鍦ㄦ牎鑰冪郴缁熶腑鏈�鍚庢椿鍔ㄤ簡' }}</p>
         </el-card>
       </el-timeline-item>
       <el-timeline-item  placement="top" :timestamp="userInfo.createTime">
         <el-card>
-          <h4>鍔犲叆鏃堕棿</h4>
           <p>{{ userInfo.realName+'鍔犲叆浜嗘牎鑰冪郴缁�' }}</p>
         </el-card>
       </el-timeline-item>
@@ -20,17 +18,6 @@
 <script>
 
 export default {
-  props: {
-    userInfo: {
-      type: Object,
-      default: () => {
-        return {
-          realName: '',
-          lastActiveTime: '',
-          createTime: ''
-        }
-      }
-    }
-  }
+  props: ['userInfo'],
 }
 </script>
diff --git a/src/views/profile/components/UserCard.vue b/src/views/profile/components/UserCard.vue
index 251824c..59f37b0 100644
--- a/src/views/profile/components/UserCard.vue
+++ b/src/views/profile/components/UserCard.vue
@@ -13,18 +13,6 @@
         <div class="user-role text-center text-muted">{{ enumFormat(roleEnum,userInfo.role) }}</div>
       </div>
     </div>
-
-    <div class="user-bio">
-      <div class="user-education user-bio-section">
-        <div class="user-bio-section-header"><svg-icon icon-class="education" /><span>涓汉绠�浠�</span></div>
-        <div class="user-bio-section-body">
-          <div class="text-muted">
-           鏃�
-          </div>
-        </div>
-      </div>
-
-    </div>
   </el-card>
 </template>
 
diff --git a/src/views/profile/index.vue b/src/views/profile/index.vue
index 93b3147..14435db 100644
--- a/src/views/profile/index.vue
+++ b/src/views/profile/index.vue
@@ -4,17 +4,17 @@
       <el-row :gutter="20">
 
         <el-col :span="6" :xs="24">
-          <user-card  :userInfo="userInfo" />
+          <user-card  :user-info="userInfo" />
         </el-col>
 
         <el-col :span="18" :xs="24">
           <el-card>
             <el-tabs active-name="timeline">
               <el-tab-pane label="鏃堕棿绾�" name="timeline">
-                <timeline :userInfo="userInfo" />
+                <timeline :user-info="userInfo" />
               </el-tab-pane>
               <el-tab-pane label="璐﹀彿" name="account">
-                <account :userInfo="userInfo"  />
+                <account :user-info="userInfo"  />
               </el-tab-pane>
             </el-tabs>
           </el-card>
@@ -49,7 +49,7 @@
   created () {
     let _this = this
     userApi.getCurrentUser().then(re => {
-      _this.userInfo = re.response
+      _this.userInfo = re.data
     })
   }
 }
diff --git a/src/views/train/index.vue b/src/views/train/index.vue
index a5b3549..3ba3aae 100644
--- a/src/views/train/index.vue
+++ b/src/views/train/index.vue
@@ -120,7 +120,7 @@
         time: [
           { required: true, message: '璇烽�夋嫨鏃堕棿', trigger: 'change' }
         ]
-      }
+      },
     }
   },
   created () {
diff --git a/src/views/user/admin/list.vue b/src/views/user/admin/list.vue
index 31a6b46..d36e14a 100644
--- a/src/views/user/admin/list.vue
+++ b/src/views/user/admin/list.vue
@@ -16,6 +16,14 @@
       <el-table-column prop="userName" label="鐢ㄦ埛鍚�"/>
       <el-table-column prop="realName" label="鐪熷疄濮撳悕" />
       <el-table-column prop="sex" label="鎬у埆" width="60px;" :formatter="sexFormatter"/>
+      <el-table-column label="鐝骇">
+        <template slot-scope="scope">
+        <span v-if="Array.isArray(scope.row.className) && scope.row.className.length > 0">
+          {{ scope.row.className.join(', ') }}
+        </span>
+          <span v-else>-</span>
+        </template>
+      </el-table-column>
       <el-table-column prop="phone" label="鎵嬫満鍙�"/>
       <el-table-column prop="createTime" label="鍒涘缓鏃堕棿" width="160px"/>
       <el-table-column label="鐘舵��" prop="status" width="70px">
diff --git a/src/views/user/student/list.vue b/src/views/user/student/list.vue
index 75db484..b5af310 100644
--- a/src/views/user/student/list.vue
+++ b/src/views/user/student/list.vue
@@ -29,6 +29,14 @@
       <el-table-column prop="realName" label="鐪熷疄濮撳悕" />
 <!--      <el-table-column prop="userLevel" label="瀛︾骇"  :formatter="levelFormatter"/>-->
       <el-table-column prop="sex" label="鎬у埆" width="60px;" :formatter="sexFormatter"/>
+      <el-table-column label="鐝骇">
+        <template slot-scope="scope">
+        <span v-if="Array.isArray(scope.row.className) && scope.row.className.length > 0">
+          {{ scope.row.className.join(', ') }}
+        </span>
+          <span v-else>-</span>
+        </template>
+      </el-table-column>
       <el-table-column prop="phone" label="鎵嬫満鍙�"/>
       <el-table-column prop="createTime" label="鍒涘缓鏃堕棿" width="160px"/>
       <el-table-column label="鐘舵��" prop="status" width="70px">
diff --git a/src/views/user/teacher/list.vue b/src/views/user/teacher/list.vue
index 71a5c15..a89ec22 100644
--- a/src/views/user/teacher/list.vue
+++ b/src/views/user/teacher/list.vue
@@ -16,6 +16,14 @@
       <el-table-column prop="userName" label="鐢ㄦ埛鍚�"/>
       <el-table-column prop="realName" label="鐪熷疄濮撳悕" />
       <el-table-column prop="sex" label="鎬у埆" width="60px;" :formatter="sexFormatter"/>
+      <el-table-column label="鐝骇">
+        <template slot-scope="scope">
+        <span v-if="Array.isArray(scope.row.className) && scope.row.className.length > 0">
+          {{ scope.row.className.join(', ') }}
+        </span>
+          <span v-else>-</span>
+        </template>
+      </el-table-column>
       <el-table-column prop="phone" label="鎵嬫満鍙�"/>
       <el-table-column prop="createTime" label="鍒涘缓鏃堕棿" width="160px"/>
       <el-table-column label="鐘舵��" prop="status" width="70px">

--
Gitblit v1.8.0