Jelajahi Sumber

直播详情

1
mo 3 tahun lalu
induk
melakukan
4df543373c

+ 14 - 5
src/views/liveClassManager/api.js

@@ -1,5 +1,5 @@
 import request from '@/utils/request2'
-
+// 新建直播间
 export const createLiveBroadcast = data => {
   return request({
     url: '/api-web/imLiveBroadcastRoom/add',
@@ -9,7 +9,7 @@ export const createLiveBroadcast = data => {
   })
 }
 
-
+// 获取直播列表
 export const getLiveBroadcastList = data => {
   return request({
     url: '/api-web/imLiveBroadcastRoom/queryPage',
@@ -39,11 +39,11 @@ export const closeLiveBroadcast = data => {
   })
 }
 
-//查询房间信息
+//查询房间信息 getLiveBroadcastRoomList
 // imLiveBroadcastRoom/queryRoom
-export const getLiveBroadcastRoomList= data => {
+export const getLiveBroadcastRoomDetail= data => {
   return request({
-    url: '/api-web/imLiveBroadcastRoom/queryRoom',
+    url: '/api-web/imLiveBroadcastRoomMember/queryRoomDetail',
     method: 'get',
     data,
   })
@@ -80,3 +80,12 @@ export const shareGroup= data => {
     params: data
   })
 }
+// 关闭直播间 imLiveBroadcastRoom/roomDestroy
+export const closeBroadcastRoomList= data => {
+  return request({
+    url: '/api-web/imLiveBroadcastRoom/roomDestroy/'+data,
+    method: 'get',
+    data,
+    params: data
+  })
+}

+ 67 - 35
src/views/liveClassManager/index.vue

@@ -6,12 +6,14 @@
       直播课管理
     </h2>
     <div class="m-core">
-      <el-button
-        @click="newLiveClass"
-        type="primary"
-        style="margin-bottom: 20px"
-        >新建直播课</el-button
-      >
+      <auth auths="imLiveBroadcastRoom/add">
+        <el-button
+          @click="newLiveClass"
+          type="primary"
+          style="margin-bottom: 20px"
+          >新建直播课</el-button
+        >
+      </auth>
       <save-form
         :inline="true"
         :model="searchForm"
@@ -105,27 +107,39 @@
           <el-table-column align="center" prop="studentId" label="操作">
             <template slot-scope="scope">
               <div>
-                <el-button type="text" v-if="scope.row.liveState != 2"
-                  >关闭直播</el-button
-                >
+                <auth auths="imLiveBroadcastRoom/roomDestroy">
+                  <el-button
+                    type="text"
+                    v-if="scope.row.liveState == 1"
+                    @click="closeRoom(scope.row)"
+                    >关闭直播</el-button
+                  >
+                </auth>
+
                 <el-button type="text" @click="gotoDetail(scope.row)"
                   >直播详情</el-button
                 >
-                <el-button type="text" @click="shareLive(scope.row)"
-                  >分享</el-button
-                >
-                <el-button
-                  type="text"
-                  v-if="scope.row.liveState == 0"
-                  @click="resetLive(scope.row)"
-                  >修改</el-button
-                >
-                <el-button
-                  type="text"
-                  v-if="scope.row.liveState == 0"
-                  @click="deteleLive(scope.row)"
-                  >删除</el-button
-                >
+                <auth auths="imLiveBroadcastRoom/shareGroup">
+                  <el-button type="text" @click="shareLive(scope.row)"
+                    >分享</el-button
+                  >
+                </auth>
+                <auth auths="imLiveBroadcastRoom/update">
+                  <el-button
+                    type="text"
+                    v-if="scope.row.liveState == 0"
+                    @click="resetLive(scope.row)"
+                    >修改</el-button
+                  >
+                </auth>
+                <auth auths="imLiveBroadcastRoom/delete">
+                  <el-button
+                    type="text"
+                    v-if="scope.row.liveState == 0"
+                    @click="deteleLive(scope.row)"
+                    >删除</el-button
+                  >
+                </auth>
               </div>
             </template>
           </el-table-column>
@@ -146,9 +160,8 @@
       append-to-body
       :visible.sync="shareVisible"
       v-if="shareVisible"
-
     >
-      <shareDetail  @close='shareVisible=false' :row="activeRow" />
+      <shareDetail @close="shareVisible = false" :row="activeRow" />
     </el-dialog>
   </div>
 </template>
@@ -160,7 +173,11 @@ import { getTimes } from "@/utils";
 import pagination from "@/components/Pagination/index";
 import shareDetail from "./modals/shareDetail.vue";
 import load from "@/utils/loading";
-import { getLiveBroadcastList,delLiveBroadcast } from "./api";
+import {
+  getLiveBroadcastList,
+  delLiveBroadcast,
+  closeBroadcastRoomList,
+} from "./api";
 export default {
   components: { pagination, shareDetail },
   data() {
@@ -230,7 +247,10 @@ export default {
       //liveClassDetail
     },
     gotoDetail(row) {
-      this.$router.push({path:"/business/liveClassDetail",  query: { ...row },});
+      this.$router.push({
+        path: "/business/liveClassDetail",
+        query: { ...row },
+      });
     },
     shareLive(row) {
       this.activeRow = row;
@@ -252,17 +272,29 @@ export default {
         cancelButtonText: "取消",
         type: "warning",
       })
-        .then(async() => {
-          try{
-            const res = await delLiveBroadcast({id:row.id})
-            this.$message.success('删除成功')
-            this.getList()
-          }catch(e){
-            console.log(e)
+        .then(async () => {
+          try {
+            const res = await delLiveBroadcast({ id: row.id });
+            this.$message.success("删除成功");
+            this.getList();
+          } catch (e) {
+            console.log(e);
           }
         })
         .catch(() => {});
     },
+    closeRoom(row) {
+      this.$confirm("您确定关闭直播间", "提示", {
+        confirmButtonText: "确定",
+        type: "warning",
+      }).then(async (res) => {
+        try {
+          const res = await closeBroadcastRoomList(row.id);
+          this.$message.success("关闭成功");
+          this.getList();
+        } catch (e) {}
+      });
+    },
   },
 };
 </script>

+ 9 - 9
src/views/liveClassManager/liveClassDetail.vue

@@ -67,27 +67,27 @@
           ></el-table-column>
           <el-table-column
             align="center"
-            prop="studentId"
+            prop="studentName"
             label="学员姓名"
           ></el-table-column>
           <el-table-column
             align="center"
-            prop="studentId"
+            prop="phone"
             label="手机号"
           ></el-table-column>
           <el-table-column
             align="center"
-            prop="studentId"
+            prop="subName"
             label="声部"
           ></el-table-column>
           <el-table-column
             align="center"
-            prop="studentId"
+            prop="joinTime"
             label="进入时间"
           ></el-table-column>
           <el-table-column
             align="center"
-            prop="studentId"
+            prop="totalViewTime"
             label="观看时长"
           ></el-table-column>
         </el-table>
@@ -105,7 +105,7 @@
 </template>
 <script>
 import pagination from "@/components/Pagination/index";
-import {getLiveBroadcastRoomList} from './api'
+import {getLiveBroadcastRoomDetail} from './api'
 export default {
   components: { pagination },
   data() {
@@ -133,10 +133,10 @@ export default {
     onReSet() {},
    async getList() {
     try{
-      let obj = {rows:this.rules.limit,page:this.rules.page,roomUid:this.$route.query.roomUid,}
+      let obj = {rows:this.rules.limit,page:this.rules.page,roomUid:this.$route.query.roomUid,search:this.searchForm.search}
       console.log(obj)
-      const res = await getLiveBroadcastRoomList(obj)
-      this.tableList = res.data.rows
+      const res = await getLiveBroadcastRoomDetail(obj)
+      this.tableList = res.data.list
       this.rules.total = res.data.total;
     }catch(e){
       console.log(e)