lex 2 years ago
parent
commit
78510256cc

+ 1 - 0
src/components/col-share/share-item.tsx

@@ -73,6 +73,7 @@ export default defineComponent({
                       : iconTeacher
                   }
                   class={styles.img}
+                  style={{ objectFit: 'cover' }}
                   crossorigin="anonymous"
                 />
                 <img

+ 44 - 2
src/teacher/share-page/share-live/index.tsx

@@ -4,11 +4,18 @@ import UserDetail from '@/business-components/user-detail'
 import ColSticky from '@/components/col-sticky'
 import { postMessage } from '@/helpers/native-message'
 import request from '@/helpers/request'
+import { browser } from '@/helpers/utils'
+import { state } from '@/state'
 import dayjs from 'dayjs'
-import { Button, Toast } from 'vant'
+import { Button, Dialog, Toast } from 'vant'
 import { defineComponent } from 'vue'
 import { shareCall } from '../share'
 import styles from './index.module.less'
+export const getAssetsHomeFile = (fileName: string) => {
+  const path = `../images/${fileName}`
+  const modules = import.meta.globEager('./images/*')
+  return modules[path].default
+}
 interface IProps {
   courseTime: string
   coursePlan: string
@@ -24,7 +31,8 @@ export default defineComponent({
     return {
       recomUserId: query.recomUserId, // 分享人编号
       groupId: query.groupId,
-      live: {} as any
+      live: {} as any,
+      wxStatus: false
     }
   },
   computed: {
@@ -70,6 +78,25 @@ export default defineComponent({
   },
   async mounted() {
     try {
+      if (browser().isApp) {
+        if (state.platformType === 'STUDENT') {
+          // 自动跳转到学生端视频课详情购买页
+          window.location.replace(
+            `${location.origin}/student/#/liveDetail?recomUserId=${this.recomUserId}&groupId=${this.groupId}`
+          )
+        } else if (state.platformType === 'TEACHER') {
+          Dialog.alert({
+            title: '提示',
+            message: '请使用酷乐秀学生端扫码打开'
+          }).then(() => {
+            postMessage({ api: 'back' })
+          })
+        }
+      } else {
+        // 如果不在app里面则不需要唤起操作
+        this.reCall()
+      }
+
       const res = await request.get(
         '/api-teacher/courseGroup/queryLiveCourseInfo',
         {
@@ -92,6 +119,10 @@ export default defineComponent({
       shareCall(str, {})
     },
     onShare() {
+      if (browser().weixin) {
+        this.wxStatus = true
+        return
+      }
       this.reCall()
       setTimeout(() => {
         this.$router.push('/download')
@@ -122,6 +153,17 @@ export default defineComponent({
             </Button>
           </div>
         </ColSticky>
+
+        {this.wxStatus && (
+          <div
+            class={styles.wxpopup}
+            onClick={() => {
+              this.wxStatus = false
+            }}
+          >
+            <img src={getAssetsHomeFile('wx_bg.png')} alt="" />
+          </div>
+        )}
       </div>
     )
   }

+ 27 - 14
src/teacher/share-page/share-video/index.tsx

@@ -1,12 +1,15 @@
 import CourseVideoItem from '@/business-components/course-video-item'
 import SectionDetail from '@/business-components/section-detail'
 import UserDetail from '@/business-components/user-detail'
-import { Button, Toast } from 'vant'
+import { Button, Dialog, Toast } from 'vant'
 import { defineComponent } from 'vue'
 import styles from './index.module.less'
 import request from '@/helpers/request'
 import ColSticky from '@/components/col-sticky'
 import { shareCall } from '../share'
+import { browser } from '@/helpers/utils'
+import { postMessage } from '@/helpers/native-message'
+import { state } from '@/state'
 
 export const getAssetsHomeFile = (fileName: string) => {
   const path = `../images/${fileName}`
@@ -36,6 +39,25 @@ export default defineComponent({
   },
   async mounted() {
     try {
+      if (browser().isApp) {
+        if (state.platformType === 'STUDENT') {
+          // 自动跳转到学生端视频课详情购买页
+          window.location.replace(
+            `${location.origin}/student/#/videoDetail?recomUserId=${this.recomUserId}&groupId=${this.params.videoLessonGroupId}`
+          )
+        } else if (state.platformType === 'TEACHER') {
+          Dialog.alert({
+            title: '提示',
+            message: '请使用酷乐秀学生端扫码打开'
+          }).then(() => {
+            postMessage({ api: 'back' })
+          })
+        }
+      } else {
+        // 如果不在app里面则不需要唤起操作
+        this.reCall()
+      }
+
       const res = await request.post(`/api-teacher/open/videoShareProfit`, {
         data: {
           bizId: this.params.videoLessonGroupId,
@@ -43,7 +65,6 @@ export default defineComponent({
         }
       })
       const result = res.data || {}
-      console.log(result)
       const { lessonGroup, detailList } = result.videoGroup
       this.userInfo = {
         username: result.name,
@@ -57,22 +78,11 @@ export default defineComponent({
       }
 
       this.detailList = detailList || []
-
-      this.reCall()
     } catch {
       //
     }
   },
   methods: {
-    onPlay(detail: any) {
-      this.$router.push({
-        path: '/videoClassDetail',
-        query: {
-          groupId: this.params.videoLessonGroupId,
-          classId: detail.id
-        }
-      })
-    },
     reCall() {
       const { origin } = location
       let str = origin + '/student/#/videoDetail'
@@ -82,6 +92,10 @@ export default defineComponent({
       shareCall(str, {})
     },
     onShare() {
+      if (browser().weixin) {
+        this.wxStatus = true
+        return
+      }
       this.reCall()
       setTimeout(() => {
         this.$router.push('/download')
@@ -110,7 +124,6 @@ export default defineComponent({
                 content: item.videoContent,
                 imgUrl: item.coverUrl
               }}
-              onPlay={this.onPlay}
             />
           ))}
         </SectionDetail>

+ 3 - 1
src/views/video-class/video-item.tsx

@@ -52,7 +52,9 @@ export default defineComponent({
               class={styles.viUserLogo}
             />
             <span class={[styles.viUserName, 'van-hairline--right']}>
-              {item?.userName || `游客${item?.teacherId || ''}`}
+              {item?.userName ||
+                item?.username ||
+                `游客${item?.teacherId || ''}`}
             </span>
             <span class={styles.viUserNum}>{item?.countStudent}人已购买</span>
           </div>