dusenyao 3 سال پیش
والد
کامیت
5ab0bab1a0

+ 2 - 2
package-lock.json

@@ -10141,7 +10141,7 @@
     "node_modules/gcls-book-question-ui": {
       "version": "0.1.0",
       "resolved": "file:../gcls-book-question-ui-0.1.0.tgz",
-      "integrity": "sha512-vSoCZaBN9FIVrm92MYnoZWlUSOMNVddScRF34O9AqsM0TiGdLPPwZr4SiMgg9GFYgrfposylpjBHhhyP/yIIkg==",
+      "integrity": "sha512-zbYQGC9RkZ00zTq1ZL9sZH6TpXSq08QhAinkv9BFxTVuf1F1322z4fWpQo03d77un2zPLFcwo/pEoXSeEiX4cQ==",
       "dependencies": {
         "awe-dnd": "^0.3.4",
         "axios": "^0.21.1",
@@ -30809,7 +30809,7 @@
     },
     "gcls-book-question-ui": {
       "version": "file:..\\gcls-book-question-ui-0.1.0.tgz",
-      "integrity": "sha512-vSoCZaBN9FIVrm92MYnoZWlUSOMNVddScRF34O9AqsM0TiGdLPPwZr4SiMgg9GFYgrfposylpjBHhhyP/yIIkg==",
+      "integrity": "sha512-zbYQGC9RkZ00zTq1ZL9sZH6TpXSq08QhAinkv9BFxTVuf1F1322z4fWpQo03d77un2zPLFcwo/pEoXSeEiX4cQ==",
       "requires": {
         "awe-dnd": "^0.3.4",
         "axios": "^0.21.1",

+ 1 - 1
public/index.html

@@ -1,5 +1,5 @@
 <!DOCTYPE html>
-<html lang="">
+<html>
   <head>
     <meta charset="utf-8">
     <meta http-equiv="X-UA-Compatible" content="IE=edge">

+ 23 - 10
src/router/index.js

@@ -60,7 +60,8 @@ const routes = [
     children: [
       {
         path: '/create_course/index',
-        component: () => import('@/views/teacher/create_course/index'),
+        component: () =>
+          import(/* webpackChunkName: 'create_course'*/ '@/views/teacher/create_course/index'),
         meta: { title: '创建课程' }
       }
     ]
@@ -74,23 +75,35 @@ const routes = [
       // 分步表单 -> 第一步
       {
         path: '/create_course_step_table/course_info',
-        component: () => import('@/views/teacher/create_course/step_table/CourseInfo')
+        component: () =>
+          import(
+            /* webpackChunkName: 'create_course'*/ '@/views/teacher/create_course/step_table/CourseInfo'
+          )
       },
       // 分步表单 -> 第二步
       {
         path: '/create_course_step_table/select_book/:id',
         name: 'SelectBook',
-        component: () => import('@/views/teacher/create_course/step_table/SelectBook')
+        component: () =>
+          import(
+            /* webpackChunkName: 'create_course'*/ '@/views/teacher/create_course/step_table/SelectBook'
+          )
       },
       // 分步表单 -> 第三步
       {
         path: '/create_course_step_table/create_task/:id',
-        component: () => import('@/views/teacher/create_course/step_table/CreateTask')
+        component: () =>
+          import(
+            /* webpackChunkName: 'create_course'*/ '@/views/teacher/create_course/step_table/CreateTask'
+          )
       },
       // 分步表单 -> 第三步 -> 新建课节任务
       {
         path: '/create_course_step_table/new_task/:time_type/:id/:cs_item_id',
-        component: () => import('@/views/teacher/create_course/step_table/NewTask')
+        component: () =>
+          import(
+            /* webpackChunkName: 'create_course'*/ '@/views/teacher/create_course/step_table/NewTask'
+          )
       }
     ]
   },
@@ -102,7 +115,7 @@ const routes = [
     children: [
       {
         path: '/student_list/index/:id',
-        component: () => import('@/views/teacher/student_list')
+        component: () => import(/* webpackChunkName: 'course'*/ '@/views/teacher/student_list')
       }
     ]
   },
@@ -114,19 +127,19 @@ const routes = [
     children: [
       {
         path: '/live/teacher',
-        component: () => import('@/views/live/teacher')
+        component: () => import(/* webpackChunkName: 'live'*/ '@/views/live/teacher')
       },
       {
         path: '/live/teacher/group',
-        component: () => import('@/views/live/teacher/group.vue')
+        component: () => import(/* webpackChunkName: 'live'*/ '@/views/live/teacher/group.vue')
       },
       {
         path: '/live/student',
-        component: () => import('@/views/live/student')
+        component: () => import(/* webpackChunkName: 'live'*/ '@/views/live/student')
       },
       {
         path: '/live/student/group',
-        component: () => import('@/views/live/student/group.vue')
+        component: () => import(/* webpackChunkName: 'live'*/ '@/views/live/student/group.vue')
       }
     ]
   },

+ 11 - 0
src/views/live/common.js

@@ -257,3 +257,14 @@ export function downloadWebSDK(vue) {
     }
   };
 }
+
+// 聊天列表滚动
+export function chatRoll(vue) {
+  let chat = vue.$refs.chat;
+  let isBottom = chat.scrollTop >= chat.scrollHeight - 170;
+  vue.$nextTick(() => {
+    if (isBottom) {
+      chat.scrollTop = chat.scrollHeight;
+    }
+  });
+}

+ 3 - 1
src/views/live/student/group.js

@@ -7,7 +7,9 @@ export {
   getDevice,
   createScript,
   downloadWebSDK,
-  closeVideo
+  closeVideo,
+  handsDown,
+  chatRoll
 } from '@/views/live/common';
 
 /**

+ 5 - 1
src/views/live/student/group.vue

@@ -38,7 +38,7 @@
             <span>聊天</span>
           </div>
           <div class="chat-window">
-            <ul class="chat-window-ul">
+            <ul ref="chat" class="chat-window-ul">
               <li v-for="(item, i) in chatList" :key="i">
                 <div class="msg-normal">
                   <span>{{ item.username }}: </span>
@@ -179,6 +179,10 @@ export default {
           newVal[newVal.length - 1].show(`group-${newVal.length - 1}`);
         });
       }
+    },
+    // 聊天列表滚动
+    chatList() {
+      common.chatRoll(this);
     }
   },
   created() {

+ 5 - 1
src/views/live/student/index.vue

@@ -64,7 +64,7 @@
             <span>聊天</span>
           </div>
           <div class="chat-window">
-            <ul class="chat-window-ul">
+            <ul ref="chat" class="chat-window-ul">
               <li v-for="(item, i) in chatList" :key="i">
                 <div class="msg-normal">
                   <span>{{ item.username }}: </span>
@@ -224,6 +224,10 @@ export default {
           this.$loading().close();
         };
       }
+    },
+    // 聊天列表滚动
+    chatList() {
+      common.chatRoll(this);
     }
   },
   created() {

+ 2 - 1
src/views/live/student/live.js

@@ -8,7 +8,8 @@ export {
   getDevice,
   downloadWebSDK,
   createScript,
-  handsDown
+  handsDown,
+  chatRoll
 } from '@/views/live/common';
 
 // 分组讨论

+ 2 - 1
src/views/live/teacher/group.js

@@ -6,7 +6,8 @@ export {
   getDevice,
   sendPublishMessage,
   closeVideo,
-  roomUpdate
+  roomUpdate,
+  chatRoll
 } from '@/views/live/common';
 
 /**

+ 8 - 3
src/views/live/teacher/group.vue

@@ -59,7 +59,7 @@
             </label> -->
           </div>
           <div class="chat-window">
-            <ul class="chat-window-ul">
+            <ul ref="chat" class="chat-window-ul">
               <li v-for="(item, i) in chatList" :key="i">
                 <div class="msg-normal">
                   <span>{{ item.username }}: </span>
@@ -71,11 +71,12 @@
           <div class="chat-speak">
             <el-input
               v-model="msg"
-              placeholder="输入发言"
+              :placeholder="isGroup ? '输入发言' : '未在小组中'"
               maxlength="400"
+              :disabled="!isGroup"
               @keydown.enter.native="sendMsg"
             >
-              <el-button slot="append" @click="sendMsg">发送</el-button>
+              <el-button slot="append" :disabled="!isGroup" @click="sendMsg">发送</el-button>
             </el-input>
           </div>
         </div>
@@ -207,6 +208,10 @@ export default {
           newVal[newVal.length - 1].show(`group-${newVal.length - 1}`);
         });
       }
+    },
+    // 聊天列表滚动
+    chatList() {
+      common.chatRoll(this);
     }
   },
   created() {

+ 5 - 1
src/views/live/teacher/index.vue

@@ -101,7 +101,7 @@
             </label>
           </div>
           <div class="chat-window">
-            <ul class="chat-window-ul">
+            <ul ref="chat" class="chat-window-ul">
               <li v-for="(item, i) in chatList" :key="i">
                 <div class="msg-normal">
                   <span>{{ item.username }}: </span>
@@ -281,6 +281,10 @@ export default {
           this.$loading().close();
         };
       }
+    },
+    // 聊天列表滚动
+    chatList() {
+      common.chatRoll(this);
     }
   },
   created() {

+ 2 - 1
src/views/live/teacher/live.js

@@ -12,7 +12,8 @@ export {
   publishStream,
   handsDown,
   sendPublishMessage,
-  closeVideo
+  closeVideo,
+  chatRoll
 } from '@/views/live/common';
 
 /**