lex-xin 2 years ago
parent
commit
6876a910ab

+ 2 - 1
src/helpers/request.ts

@@ -83,7 +83,7 @@ request.interceptors.response.use(
     }
     const data = await res.clone().json()
     if (data.code !== 200 && data.errCode !== 0) {
-      const msg = data.msg || '处理失败,请重试'
+      let msg = data.msg || '处理失败,请重试'
       if (initRequest) {
         if (data.code === 403 || data.code === 401) {
           setLogout()
@@ -96,6 +96,7 @@ request.interceptors.response.use(
       }
       const browserInfo = browser()
       if (data.code === 403) {
+        msg += '403'
         if (browserInfo.isApp) {
           postMessage({
             api: 'login'

+ 1 - 3
src/student/layout/auth.tsx

@@ -38,13 +38,11 @@ export default defineComponent({
           let res = await request.get('/api-student/student/queryUserInfo', {
             initRequest: true // 初始化接口
           })
-          // console.log(res)
           setLogin(res.data)
         } catch (e: any) {
           const message = e.message
-          console.log(message, message.indexOf('430'))
           if (
-            message.indexOf('430') === -1 &&
+            message.indexOf('403') === -1 &&
             message.indexOf('authentication') === -1
           ) {
             setLoginError()

+ 12 - 0
src/student/live-class/live-item.module.less

@@ -67,4 +67,16 @@
       line-height: 1;
     }
   }
+
+  .subjectName {
+    position: absolute;
+    top: 8px;
+    left: 8px;
+    font-size: 12px;
+    padding: 3px 5px;
+    color: #ffffff;
+    line-height: 1;
+    border-radius: 1px;
+    background: rgba(0, 0, 0, 0.29);
+  }
 }

+ 11 - 5
src/student/live-class/live-item.tsx

@@ -15,6 +15,7 @@ interface IProps {
   teacherId: number
   studentCount: number
   existBuy: number
+  subjectName: string
 }
 
 export default defineComponent({
@@ -38,11 +39,16 @@ export default defineComponent({
         onClick={() => this.onClick(this.liveInfo)}
         v-slots={{
           icon: () => (
-            <Image
-              class={styles.liCover}
-              fit="cover"
-              src={this.liveInfo.backgroundPic}
-            />
+            <div style={{ position: 'relative' }}>
+              <Image
+                class={styles.liCover}
+                fit="cover"
+                src={this.liveInfo.backgroundPic}
+              />
+              <span class={styles.subjectName}>
+                {this.liveInfo.subjectName}
+              </span>
+            </div>
           ),
           title: () => (
             <div>

+ 3 - 5
src/student/practice-class/index.tsx

@@ -51,8 +51,8 @@ export default defineComponent({
       this.params.search = _search
       this.onSort()
     },
-    onSort() {
-      const popupParams = this.tempSort
+    onSort(type?: any) {
+      const popupParams = type || this.tempSort
       let str: any = []
       for (let i in popupParams) {
         if (popupParams[i] !== 'ALL') {
@@ -197,9 +197,7 @@ export default defineComponent({
           onClose={() => (this.searchStatus = false)}
           onClosed={() => (this.openStatus = false)}
         >
-          {this.searchType === 'all' && (
-            <AllSearch v-model={this.tempSort} onSort={this.onSort} />
-          )}
+          {this.searchType === 'all' && <AllSearch onSort={this.onSort} />}
           {this.searchType === 'organ' && this.openStatus && (
             <OrganSearch
               subjectList={this.subjectList}

+ 12 - 0
src/student/teacher-dependent/components/live.module.less

@@ -69,3 +69,15 @@
   overflow: hidden;
   margin-bottom: 10px;
 }
+
+.subjectName {
+  position: absolute;
+  top: 8px;
+  left: 8px;
+  font-size: 12px;
+  padding: 3px 5px;
+  color: #ffffff;
+  line-height: 1;
+  border-radius: 1px;
+  background: rgba(0, 0, 0, 0.29);
+}

+ 11 - 6
src/student/teacher-dependent/components/live.tsx

@@ -31,7 +31,7 @@ export default defineComponent({
     formatTime(time: string) {
       let timeStr = dayjs(time || new Date())
       const weekStr = ['周日', '周一', '周二', '周三', '周四', '周五', '周六']
-      console.log(timeStr.day())
+      // console.log(timeStr.day())
 
       return timeStr.format('YYYY-MM-DD') + `(${weekStr[timeStr.day()]})`
     },
@@ -86,11 +86,16 @@ export default defineComponent({
                 <Cell
                   v-slots={{
                     icon: () => (
-                      <Image
-                        class={styles.liCover}
-                        src={item.backgroundPic}
-                        fit="cover"
-                      />
+                      <div style={{ position: 'relative' }}>
+                        <Image
+                          class={styles.liCover}
+                          src={item.backgroundPic}
+                          fit="cover"
+                        />
+                        <span class={styles.subjectName}>
+                          {item?.subjectName}
+                        </span>
+                      </div>
                     ),
                     title: () => (
                       <div class={styles.liContent}>

+ 4 - 4
src/student/teacher-dependent/components/practice.tsx

@@ -147,7 +147,7 @@ export default defineComponent({
     onSelectDay(obj: any) {
       const result = obj || []
       let list = [...this.selectCourseList] as any
-      console.log(obj, list)
+      // console.log(obj, list)
       result.forEach((item: any) => {
         const isExist = list.some(
           (course: any) => course.startTime === item.startTime
@@ -170,7 +170,7 @@ export default defineComponent({
         if (first.startTime < second.startTime) return -1
         return 0
       })
-      console.log(list, 'list')
+      // console.log(list, 'list')
       this.selectCourseList = [...list] as any
     },
     onCloseTag(item: any) {
@@ -261,7 +261,7 @@ export default defineComponent({
         if (status) {
           this.selectStatus = false
 
-          console.log(this.selectCourseList, 'this.selectCourseList')
+          // console.log(this.selectCourseList, 'this.selectCourseList')
 
           this.onBuy()
         }
@@ -278,7 +278,7 @@ export default defineComponent({
             }
           }
         )
-        console.log(res, res.data)
+        // console.log(res, res.data)
         orderStatus.orderType = 'PRACTICE'
         const subjectInfo = this.subjectInfo
         const tempCourseList = [...this.selectCourseList]

BIN
src/student/teacher-dependent/images/follow_bg.png


BIN
src/student/teacher-dependent/images/live_bg.png


+ 63 - 0
src/student/teacher-dependent/teacher-elegant.module.less

@@ -76,3 +76,66 @@
     color: #999999;
   }
 }
+
+.searchContainer {
+  background-color: #fff;
+}
+.item {
+  display: flex;
+  align-items: center;
+  justify-content: space-between;
+  padding: 14px;
+
+  .searchItem {
+    width: 168px;
+    height: 56px;
+  }
+  .title {
+    font-size: 14px;
+    font-weight: 600;
+    color: #333333;
+    line-height: 20px;
+    padding-top: 10px;
+    padding-left: 75px;
+  }
+  .content {
+    padding-left: 75px;
+    font-size: 12px;
+    color: #666666;
+    line-height: 20px;
+  }
+
+  .searchFollow {
+    background: url('./images/follow_bg.png') no-repeat center;
+    background-size: 100%;
+  }
+  .active {
+    .title,
+    .content {
+      color: #ff1f95;
+    }
+  }
+  .searchLive {
+    background: url('./images/live_bg.png') no-repeat center;
+    background-size: 100%;
+  }
+  .active2 {
+    .title,
+    .content {
+      color: var(--van-primary);
+    }
+  }
+}
+.searchDefault {
+  margin: 0 0 12px 14px;
+  display: inline-flex;
+  align-items: center;
+  padding: 4px 8px;
+  border-radius: 20px;
+  color: #666666;
+  font-size: 13px;
+  background: #f7f8f9;
+  .star {
+    margin-right: 5px;
+  }
+}

+ 25 - 9
src/student/teacher-dependent/teacher-elegant.tsx

@@ -3,7 +3,7 @@ import ColResult from '@/components/col-result'
 import ColSearch from '@/components/col-search'
 import request from '@/helpers/request'
 import { state } from '@/state'
-import { List, Popup, Sticky, Image } from 'vant'
+import { List, Popup, Sticky, Image, Icon } from 'vant'
 import { defineComponent } from 'vue'
 import OrganSearch from '../practice-class/model/organ-search'
 import styles from './teacher-elegant.module.less'
@@ -102,16 +102,32 @@ export default defineComponent({
               this.openStatus = !this.openStatus
             }}
           />
-          <div class={styles.searchContainer}>
-            <div class={[styles.searchItem, styles.searchFollow]}>
-              <p class={styles.title}>我的关注</p>
-              <p class={styles.content}>老师最新动态</p>
+          {/* <div class={styles.searchContainer}>
+            <div class={styles.item}>
+              <div
+                class={[styles.searchItem, styles.searchFollow, styles.active]}
+              >
+                <p class={styles.title}>我的关注</p>
+                <p class={styles.content}>老师最新动态</p>
+              </div>
+              <div
+                class={[styles.searchItem, styles.searchLive, styles.active2]}
+              >
+                <p class={styles.title}>直播中</p>
+                <p class={styles.content}>互动直播间</p>
+              </div>
             </div>
-            <div class={[styles.searchItem, styles.searchLive]}>
-              <p class={styles.title}>直播中</p>
-              <p class={styles.content}>互动直播间</p>
+
+            <div class={styles.searchDefault}>
+              <Icon
+                classPrefix="iconfont"
+                class={styles.star}
+                color="#FFC459"
+                name="star_active"
+              />
+              默认排序
             </div>
-          </div>
+          </div> */}
         </Sticky>
 
         {this.dataShow ? (

+ 3 - 9
src/student/video-class/video-detail.tsx

@@ -149,17 +149,11 @@ export default defineComponent({
           ))}
         </SectionDetail>
 
-        {this.userInfo.id && (
+        {this.userInfo.id && !this.userInfo.alreadyBuy && (
           <Sticky offsetBottom={0} position="bottom">
             <div class={['btnGroup', styles.btnMore]}>
-              <Button
-                block
-                round
-                type="primary"
-                onClick={this.onBuy}
-                disabled={this.userInfo.alreadyBuy}
-              >
-                {this.userInfo.alreadyBuy ? '已购买' : '立即购买'}
+              <Button block round type="primary" onClick={this.onBuy}>
+                立即购买
               </Button>
             </div>
           </Sticky>

+ 12 - 0
src/student/video-class/video-item.module.less

@@ -55,4 +55,16 @@
     font-weight: 500;
     color: #2dc7aa;
   }
+
+  .subjectName {
+    position: absolute;
+    top: 8px;
+    left: 8px;
+    font-size: 12px;
+    padding: 3px 5px;
+    color: #ffffff;
+    line-height: 1;
+    border-radius: 1px;
+    background: rgba(0, 0, 0, 0.29);
+  }
 }

+ 9 - 1
src/student/video-class/video-item.tsx

@@ -14,6 +14,7 @@ interface VideoItemProps {
   lessonCount: number
   lessonPrice: number
   countStudent: number
+  lessonSubjectName: string
 }
 
 export default defineComponent({
@@ -34,7 +35,14 @@ export default defineComponent({
           this.onClick(item)
         }}
       >
-        <Image class={styles.viCover} fit="cover" src={item?.lessonCoverUrl} />
+        <div style={{ position: 'relative' }}>
+          <Image
+            class={styles.viCover}
+            fit="cover"
+            src={item?.lessonCoverUrl}
+          />
+          <span class={styles.subjectName}>{item?.lessonSubjectName}</span>
+        </div>
 
         <div class={styles.viSection}>
           <div class={[styles.viTitle, 'van-ellipsis']}>{item?.lessonName}</div>

+ 1 - 1
src/teacher/layout/auth.tsx

@@ -46,7 +46,7 @@ export default defineComponent({
           const message = e.message
           console.log(message)
           if (
-            message.indexOf('430') === -1 &&
+            message.indexOf('403') === -1 &&
             message.indexOf('authentication') === -1
           ) {
             setLoginError()