Browse Source

学员分享完毕

1
mo 3 years ago
parent
commit
8201d10ebe

+ 2 - 1
src/router/notKeepAliveList.js

@@ -115,5 +115,6 @@ export default [
   '/staffPlatManager',
   '/infoOAMananger',
   '/business/createLiveClass',
-  '/business/liveClassDetail'
+  '/business/liveClassDetail',
+  '/liveClassManager'
 ]

+ 11 - 0
src/views/liveClassManager/api.js

@@ -67,5 +67,16 @@ export const getImList= data => {
     url: '/api-web/imGroup/queryGroupList',
     method: 'get',
     data,
+    params: data
+  })
+}
+
+// 群聊分享
+export const shareGroup= data => {
+  return request({
+    url: '/api-web/imLiveBroadcastRoom/shareGroup',
+    method: 'get',
+    data,
+    params: data
   })
 }

+ 2 - 1
src/views/liveClassManager/index.vue

@@ -146,8 +146,9 @@
       append-to-body
       :visible.sync="shareVisible"
       v-if="shareVisible"
+
     >
-      <shareDetail :row="activeRow" />
+      <shareDetail  @close='shareVisible=false' :row="activeRow" />
     </el-dialog>
   </div>
 </template>

+ 35 - 34
src/views/liveClassManager/modals/groupChat.vue

@@ -15,33 +15,32 @@
         ></el-input>
       </el-form-item>
       <el-form-item>
-        <el-select
-          clearable
-          filterable
-          placeholder="请选择分部"
-          v-model="search.organId"
+        <el-button native-type="submit" @click="search" type="primary"
+          >搜索</el-button
+        >
+        <el-button native-type="reset" type="danger" @click="onReSet"
+          >重置</el-button
         >
-          <el-option
-            v-for="(item, index) in selects.branchs"
-            :key="index"
-            :label="item.name"
-            :value="item.id"
-          ></el-option>
-        </el-select>
-      </el-form-item>
-      <el-form-item>
-        <el-button native-type="submit" type="primary">搜索</el-button>
-        <el-button native-type="reset" type="danger">重置</el-button>
       </el-form-item>
     </el-form>
     <div class="tableWrap">
-      <el-checkbox-group v-model="checkList" >
-        <div class="cell" @click="resectCheck(item.id)" v-for="item in tableList" :key="item.id">
-          <el-checkbox class="chioseBox" :label="item.id" @change="resectCheck(item.id)"><br /></el-checkbox>
-          <div class="dotle">{{item.type=='MUSIC'?'乐团':'VIP'}}</div>
+      <el-checkbox-group v-model="checkList">
+        <div
+          class="cell"
+          @click="resectCheck(item.id)"
+          v-for="item in tableList"
+          :key="item.id"
+        >
+          <el-checkbox
+            class="chioseBox"
+            :label="item.id"
+            @change="resectCheck(item.id)"
+            ><br
+          /></el-checkbox>
+          <div class="dotle">{{ item.type == "MUSIC" ? "乐团" : "VIP" }}</div>
           <div class="teamInfo">
-            <p class="title">{{item.name}}</p>
-            <p class="subInfo">{{item.memo}}(共{{item.memberNum}}人)</p>
+            <p class="title">{{ item.name }}</p>
+            <p class="subInfo">{{ item.memo }}(共{{ item.memberNum }}人)</p>
           </div>
         </div>
       </el-checkbox-group>
@@ -64,7 +63,6 @@ export default {
   data() {
     return {
       searchForm: {
-        organIds: "",
         search: "",
       },
       checkList: [],
@@ -75,8 +73,7 @@ export default {
         total: 0, // 总条数
         page_size: [10, 20, 40, 50], // 选择限制显示条数
       },
-      tableList:[]
-
+      tableList: [],
     };
   },
   mounted() {
@@ -84,20 +81,24 @@ export default {
     this.getList();
   },
   methods: {
-    onReSet() {},
-    search() {},
-    resectCheck(id,e) {
-      if(this.checkList.indexOf(id)==-1){
-        this.checkList.push(id)
-      }else{
-        this.checkList.splice(this.checkList.indexOf(id),1)
+    onReSet() {
+      this.searchForm.search = "";
+      this.search();
+    },
+    search() {
+      this.getList();
+    },
+    resectCheck(id, e) {
+      if (this.checkList.indexOf(id) == -1) {
+        this.checkList.push(id);
+      } else {
+        this.checkList.splice(this.checkList.indexOf(id), 1);
       }
-
     },
 
     async getList() {
       try {
-        const res = await getImList();
+        const res = await getImList({ ...this.searchForm });
         this.tableList = res.data;
       } catch (e) {}
     },

+ 1 - 2
src/views/liveClassManager/modals/preview.vue

@@ -80,10 +80,9 @@
 import VueQr from "vue-qr";
 export default {
   components: { VueQr },
-  props: ["form"],
+  props: ["form",'url'],
   data() {
     return {
-      url: "http://www.baidu.com",
     };
   },
   computed: {

+ 29 - 7
src/views/liveClassManager/modals/shareDetail.vue

@@ -15,10 +15,10 @@
       <div class="linkWrap" v-if="form.shareType == 1">
         <div class="shareWrap">
           <h2>乐团老师邀请您参与直播课!</h2>
-          <h4>{{ row.roomTitle }}111</h4>
+          <h4>{{ row.roomTitle }}</h4>
           <p>直播时间:{{ row.liveStartTime }}</p>
           <p>直播内容:{{ row.liveRemark }}</p>
-          <p>直播地址:</p>
+          <p>直播地址:{{url}}</p>
           <p v-if="form.shareTarget == 1">
             请在电脑浏览器中打开以上链接进行直播
           </p>
@@ -27,7 +27,7 @@
       </div>
       <div class="codeWrap" v-if="form.shareType == 2">
         <div class="shareWrap">
-          <preview :form="row" id="preview" />
+          <preview :form="row" id="preview" :url="url"/>
         </div>
         <div class="shareBtn" @click="shareImage">复制分享内容</div>
       </div>
@@ -44,6 +44,8 @@ import { toPng } from "html-to-image";
 import copy from "copy-to-clipboard";
 import preview from "./preview";
 import groupChat from "./groupChat";
+import { shareGroup } from "../api";
+import { vaildStudentUrl } from "@/utils/validate";
 export default {
   props: ["row"],
   components: { preview, groupChat },
@@ -54,22 +56,27 @@ export default {
         shareType: "1",
       },
       content: "",
+      url:''
     };
   },
-  mounted() {},
+  mounted() {
+    this.url = vaildStudentUrl() + `/#/liveClassTransfer?roomUid${this.row.roomUid}`;
+    console.log(this.url)
+  },
   methods: {
     copyText(e) {
       let text = `乐团老师邀请您参与直播课!\n${
         this.row.roomTitle || ""
       }\n直播时间:${this.row.liveStartTime || ""}\n直播内容:${
         this.row.liveRemark || ""
-      }\n直播地址:地址\n`;
+      }\n直播地址:${this.url}\n`;
       if (this.form.shareTarget == 1) {
         text += "请在电脑浏览器中打开以上链接进行直播";
       }
       if (text) {
         copy(text);
         this.$message.success("复制成功");
+         this.$emit('close')
       }
     },
     shareImage() {
@@ -85,14 +92,29 @@ export default {
           link.setAttribute("download", fname);
           document.body.appendChild(link);
           link.click();
+           this.$emit('close')
         })
         .catch(function (error) {
           console.error("oops, something went wrong!", error);
         });
     },
-    shareChat() {
+    async shareChat() {
       let checkList = this.$refs.groupChat.checkList;
-      console.log(checkList);
+      if (!(checkList.length > 0)) {
+        this.$message.error("请至少选择一个群聊");
+        return;
+      }
+      try {
+        let obj = {
+          groupIds: checkList.join(","),
+          roomUid: this.row.roomUid,
+        }
+        const res = await shareGroup(obj);
+        this.$message.success('分享成功')
+        this.$emit('close')
+      } catch (e) {
+        console.log(e);
+      }
     },
   },
 };