ソースを参照

Merge branch 'colexiu1.3' into ponline

lex 1 年間 前
コミット
a90af436a7

BIN
src/student/down-load/images/student_bg.png


BIN
src/student/down-load/images/teacher_bg.png


BIN
src/student/down-load/images/teacher_logo.png


+ 9 - 1
src/student/down-load/index.module.less

@@ -11,10 +11,16 @@
   width: 104px;
   height: 127px;
   margin: 0 auto;
+
+  img {
+    width: inherit;
+    height: inherit;
+  }
 }
 
 .down {
   text-align: center;
+
   :global {
     .van-button {
       width: 194px;
@@ -29,6 +35,7 @@
   padding-bottom: 32px;
   width: 227px;
   margin: 0 auto;
+
   img {
     width: 100%;
   }
@@ -42,8 +49,9 @@
   left: 0;
   background: rgba(0, 0, 0, 0.5);
   z-index: 9999;
+
   img {
     width: 88%;
     margin: 0 6%;
   }
-}
+}

+ 1 - 0
src/tenant/activation-code/index.module.less

@@ -13,6 +13,7 @@
     .van-sticky {
       background: url('./bg-image.png') no-repeat top center;
       background-size: 100% 214px;
+      z-index: 99999999;
     }
   }
 }

+ 1 - 0
src/tenant/exercise-record/exercis-detail.module.less

@@ -149,6 +149,7 @@
     .van-sticky {
       background: url('../images/bg-image.png') no-repeat top center;
       background-size: 100% 214px;
+      z-index: 99999999;
     }
   }
 

+ 2 - 2
src/tenant/exercise-record/exercis-detail.tsx

@@ -188,11 +188,11 @@ export default defineComponent({
             const indexData = data.indexMonthData || []
             if (data.dataType === 'CLOUD_STUDY_TRAIN_TIME') {
               indexData.forEach((d: any) => {
-                cloudTime.push(d.totalNum)
+                cloudTime.push(d.percent)
               })
             } else if (data.dataType === 'CLOUD_STUDY_TRAIN_NUM') {
               indexData.forEach((d: any) => {
-                cloudNum.push(d.totalNum)
+                cloudNum.push(d.percent)
               })
             }
           })

+ 1 - 1
src/tenant/music/album/index.tsx

@@ -134,7 +134,7 @@ export default defineComponent({
               : '/api-student',
           data: {
             ...params,
-            idAndName: params.search
+            idAndName: lightTextC.value
           }
         })
         if (data.value) {

+ 1 - 1
src/tenant/music/list/index.tsx

@@ -179,7 +179,7 @@ export default defineComponent({
         createBy: teacherId
       }
       if (hideSearch) {
-        tempParams.idAndName = tempParams.search
+        tempParams.idAndName = lightTextC.value
         tempParams.search = null
       }
       if (exquisiteFlag.value) {

+ 1 - 1
src/tenant/music/music-detail/index.module.less

@@ -606,4 +606,4 @@
       line-height: 15px;
     }
   }
-}
+}

+ 51 - 0
src/tenant/music/music-detail/new-index.module.less

@@ -562,4 +562,55 @@
       line-height: 15px;
     }
   }
+}
+
+.shareMate {
+  position: relative;
+  margin-top: 50px;
+  display: flex;
+  flex: 1;
+  align-items: center;
+  padding: 11px 12px;
+  background: #ffffff;
+  border-radius: 10px;
+
+  // border: 1px solid #2dc7aa;
+  .icon {
+    width: 36px;
+    height: 36px;
+    border-radius: 10px;
+  }
+
+  .info {
+    margin-left: 14px;
+    flex: 1;
+    margin-right: 14px;
+    word-break: break-all;
+
+    >h4 {
+      color: var(--music-list-item-title-color);
+      font-size: 14px;
+      font-weight: 600;
+      width: 200px;
+    }
+
+    >p {
+      color: var(--music-list-item-mate-color);
+      line-height: 17px;
+    }
+  }
+
+  .tagDiscount {
+    position: absolute;
+    top: -26px;
+    left: 15px;
+    padding: 2px 10px 1px;
+    height: 23px;
+    background: linear-gradient(180deg, #ffb635 0%, #ff4e18 100%);
+    border-radius: 8px 8px 0px 0px;
+    font-size: 14px;
+    font-weight: 600;
+    color: #ffffff;
+    line-height: 20px;
+  }
 }

+ 18 - 18
src/tenant/music/music-detail/new-index.tsx

@@ -312,24 +312,24 @@ export default defineComponent({
 
       window.addEventListener('message', showLoading)
 
-      useEventListener(document, 'scroll', evt => {
-        const { y } = useWindowScroll()
-        if (y.value > 20) {
-          background.value = `rgba(255, 255, 255)`
-          color.value = 'black'
-          postMessage({
-            api: 'backIconChange',
-            content: { iconStyle: 'black' }
-          })
-        } else {
-          background.value = 'transparent'
-          color.value = '#fff'
-          postMessage({
-            api: 'backIconChange',
-            content: { iconStyle: 'white' }
-          })
-        }
-      })
+      // useEventListener(document, 'scroll', evt => {
+      //   const { y } = useWindowScroll()
+      //   if (y.value > 20) {
+      //     background.value = `rgba(255, 255, 255)`
+      //     color.value = 'black'
+      //     postMessage({
+      //       api: 'backIconChange',
+      //       content: { iconStyle: 'black' }
+      //     })
+      //   } else {
+      //     background.value = 'transparent'
+      //     color.value = '#fff'
+      //     postMessage({
+      //       api: 'backIconChange',
+      //       content: { iconStyle: 'white' }
+      //     })
+      //   }
+      // })
     })
     onUnmounted(() => {
       window.removeEventListener('message', showLoading)

+ 1 - 1
src/tenant/music/search/header.tsx

@@ -110,7 +110,7 @@ export default defineComponent({
     })
 
     watch(activeTab, val => {
-      mitter.emit('changeTab', val)
+      mitter.emit('changeTab', val, keyword.value)
     })
 
     // 输入时搜索

+ 48 - 46
src/tenant/music/search/result-all-search.tsx

@@ -63,55 +63,57 @@ export default defineComponent({
     })
     return () => (
       <div class={styles.allSearch}>
-        <div class={[styles.albumSection, styles.searchAllTitle]}>
-          <div class={styles.albumTitle}>
-            <span>热门专辑</span>
+        {state.albumList.length > 0 && (
+          <div class={[styles.albumSection, styles.searchAllTitle]}>
+            <div class={styles.albumTitle}>
+              <span>热门专辑</span>
 
-            <span
-              class={styles.more}
-              onClick={() => {
-                openWebViewOrWeb(
-                  `${location.origin}/tenant/#/music-album`,
-                  () => {
-                    router.push({
-                      path: '/music-album'
-                    })
-                  }
-                )
-              }}
-            >
-              更多 <Icon name="arrow" />
-            </span>
-          </div>
-          <div class={styles.musicGrid}>
-            <MusicGrid
-              showLight
-              lightText={state.defauleParams.idAndName}
-              list={state.albumList}
-              onGoto={(n: any) => {
-                openWebViewOrWeb(
-                  `${location.origin}/tenant/#/music-album-detail/${n.id}`,
-                  () => {
-                    router.push({
-                      name: 'music-album-detail',
-                      params: {
-                        id: n.id
-                      }
-                    })
-                  }
-                )
-              }}
-            />
-
-            {state.albumList.length <= 0 && !state.loading && (
-              <ColResult
-                tips="暂无专辑"
-                btnStatus={false}
-                classImgSize="SMALL"
+              <span
+                class={styles.more}
+                onClick={() => {
+                  openWebViewOrWeb(
+                    `${location.origin}/tenant/#/music-album`,
+                    () => {
+                      router.push({
+                        path: '/music-album'
+                      })
+                    }
+                  )
+                }}
+              >
+                更多 <Icon name="arrow" />
+              </span>
+            </div>
+            <div class={styles.musicGrid}>
+              <MusicGrid
+                showLight
+                lightText={state.defauleParams.idAndName}
+                list={state.albumList}
+                onGoto={(n: any) => {
+                  openWebViewOrWeb(
+                    `${location.origin}/tenant/#/music-album-detail/${n.id}`,
+                    () => {
+                      router.push({
+                        name: 'music-album-detail',
+                        params: {
+                          id: n.id
+                        }
+                      })
+                    }
+                  )
+                }}
               />
-            )}
+
+              {state.albumList.length <= 0 && !state.loading && (
+                <ColResult
+                  tips="暂无专辑"
+                  btnStatus={false}
+                  classImgSize="SMALL"
+                />
+              )}
+            </div>
           </div>
-        </div>
+        )}
 
         <div
           class={[

+ 2 - 1
src/tenant/music/search/search-result.tsx

@@ -59,7 +59,8 @@ export default defineComponent({
     const albumList = ref(null)
     const musicList = ref(null)
 
-    const changeTab = (val: any) => {
+    const changeTab = (val: any, searchStr: any) => {
+      keyword.value = searchStr
       activeTab.value = val
     }
 

+ 5 - 12
src/tenant/music/train-list/index.tsx

@@ -308,18 +308,11 @@ export default defineComponent({
                   showTitleImg
                   list={data.value.rows}
                   onDetail={(item: any) => {
-                    const url =
-                      location.origin +
-                      location.pathname +
-                      '#/music-detail?id=' +
-                      item.id
-                    openDefaultWebView(url, () => {
-                      router.push({
-                        path: '/music-detail',
-                        query: {
-                          id: item.id
-                        }
-                      })
+                    router.push({
+                      path: '/music-detail',
+                      query: {
+                        id: item.id
+                      }
                     })
                   }}
                 />

+ 2 - 1
src/tenant/music/train-tool/index.tsx

@@ -262,7 +262,8 @@ export default defineComponent({
 
     return () => (
       <div class={styles.trainTool}>
-        {state.tenantAlbumStatus === 0 || !state.ablumStatus ? (
+        {(state.tenantAlbumStatus === 0 || !state.ablumStatus) &&
+        state.buy != '1' ? (
           <>
             <TheSticky position="top">
               <ColHeader border={false} isFixed={false} />

+ 1 - 1
src/tenant/trade/detail.tsx

@@ -93,7 +93,7 @@ export default defineComponent({
                           )}
                         </div>
 
-                        {orderDetail.bizInfo?.bizMusicCount && (
+                        {orderDetail.bizInfo?.bizMusicCount > 0 && (
                           <span class={styles.songLength}>
                             共{orderDetail.bizInfo?.bizMusicCount}首
                           </span>

+ 1 - 1
src/tenant/trade/index.tsx

@@ -214,7 +214,7 @@ export default defineComponent({
         <div class={styles.tradeList}>
           {state.dataShow ? (
             <List
-              loading={state.loading}
+              // loading={state.loading}
               finished={state.finished}
               finishedText=" "
               class={[styles.list]}

+ 300 - 299
src/tenant/trade/tradeOrder.ts

@@ -1,299 +1,300 @@
-import { memberType } from '@/constant'
-import request from '@/helpers/request'
-import { state } from '@/state'
-import { orderStatus } from '@/views/order-detail/orderStatus'
-import dayjs from 'dayjs'
-
-const apiSuffix =
-  state.platformType === 'STUDENT' ? '/api-student' : '/api-teacher'
-// LIVE: '直播课',
-// PRACTICE: '陪练课',
-// VIDEO: '视频课',
-// VIP: '开通会员',
-// MUSIC: '单曲点播'
-interface IAmount {
-  couponAmount: number
-  discountPrice: number
-}
-export const formatOrderDetail = async (item: any, amount?: IAmount) => {
-  const type = item.goodType
-  let tempList: any = {}
-
-  switch (type) {
-    case 'LIVE':
-      {
-        try {
-          const live = await getLiveDetail(item.bizId)
-          const courseInfo: any[] = []
-          const coursePlanList = live.planList || []
-          coursePlanList.forEach((item: any) => {
-            const startTime = item.startTime || new Date()
-            const endTime = item.endTime || new Date()
-            courseInfo.push({
-              courseTime: `${dayjs(startTime).format('YYYY-MM-DD')} ${dayjs(
-                startTime
-              ).format('HH:mm')}~${dayjs(endTime).format('HH:mm')}`,
-              coursePlan: item.plan,
-              id: item.courseId
-            })
-          })
-          tempList = {
-            orderType: item.goodType,
-            goodName: item.goodName,
-            courseGroupId: live.courseGroupId,
-            courseGroupName: live.courseGroupName,
-            coursePrice: live.coursePrice,
-            teacherName: live.userName || `游客${live.teacherId || ''}`,
-            teacherId: live.teacherId,
-            avatar: live.avatar,
-            courseInfo
-          }
-        } catch (e: any) {
-          throw new Error(e.message)
-        }
-      }
-      break
-    case 'PRACTICE': {
-      const bizContent: any = JSON.parse(item.bizContent)
-      tempList = {
-        ...bizContent,
-        teacherName: item.username,
-        starGrade: item.starGrade,
-        avatar: item.avatar
-      }
-      break
-    }
-    case 'VIDEO': {
-      try {
-        const res = await getVideoDetail(item.bizId)
-        const { lessonGroup, detailList } = res
-        tempList = {
-          orderType: item.goodType,
-          goodName: item.goodName,
-          courseGroupId: lessonGroup.id,
-          courseGroupName: lessonGroup.lessonName,
-          coursePrice: lessonGroup.lessonPrice,
-          teacherName: lessonGroup.username,
-          teacherId: lessonGroup.teacherId,
-          avatar: lessonGroup.avatar,
-          courseInfo: detailList
-        }
-      } catch (e: any) {
-        throw new Error(e.message)
-      }
-      break
-    }
-    case 'VIP':
-      {
-        try {
-          const res = await getVipDetail(item.id)
-          tempList = {
-            orderType: item.goodType,
-            goodName: item.goodName,
-            id: item.id,
-            title: memberType[res.period] || '',
-            // 判断是否有优惠金额
-            price: amount?.couponAmount
-              ? Number(
-                  (
-                    res.salePrice -
-                    amount.couponAmount +
-                    amount.discountPrice
-                  ).toFixed(2)
-                )
-              : res.salePrice || item.actualPrice,
-            startTime: dayjs(res.startTime).format('YYYY-MM-DD'),
-            endTime: dayjs(res.endTime).format('YYYY-MM-DD')
-          }
-        } catch (e: any) {
-          throw new Error(e.message)
-        }
-      }
-      break
-    case 'MUSIC':
-      {
-        try {
-          const res = await getMusicDetail(item.bizId)
-          tempList = {
-            orderType: item.goodType,
-            goodName: item.goodName,
-            ...res
-          }
-        } catch (e: any) {
-          throw new Error(e.message)
-        }
-      }
-      break
-    case 'ALBUM':
-      {
-        try {
-          const res = await getAlbumDetail(item.bizId)
-          tempList = {
-            orderType: item.goodType,
-            goodName: item.goodName,
-            ...res
-          }
-        } catch (e: any) {
-          throw new Error(e.message)
-        }
-      }
-      break
-    case 'TENANT_ALBUM':
-      {
-        try {
-          const res = await getTenantAlbumDetail(item.bizId)
-          tempList = {
-            orderType: item.goodType,
-            goodName: item.goodName,
-            ...res
-          }
-        } catch (e: any) {
-          throw new Error(e.message)
-        }
-      }
-      break
-    case 'ACTI_REGIST':
-      {
-        try {
-          const res = await getMusicActiveTrack(item.bizId)
-          tempList = {
-            orderType: item.goodType,
-            goodsName: res.activityName,
-            activityId: res.id,
-            actualPrice: res.registrationPrice
-          }
-        } catch (e: any) {
-          throw new Error(e.message)
-        }
-      }
-      break
-  }
-  tempList.orderType = type
-  tempList.goodName = item.goodName
-  orderStatus.orderObject.orderList.push(tempList)
-}
-// 获取视频课详情
-export const getVideoDetail = async (groupId: any) => {
-  try {
-    const res = await request.get(
-      `${apiSuffix}/videoLesson/selectVideoLesson`,
-      {
-        params: {
-          groupId
-        }
-      }
-    )
-    return res.data
-  } catch {
-    throw new Error('获取视频课详情失败')
-  }
-}
-
-// 获取直播课详情
-export const getLiveDetail = async (groupId: any) => {
-  try {
-    const res = await request.get(
-      `${apiSuffix}/courseGroup/queryLiveCourseInfo`,
-      {
-        params: {
-          groupId
-        }
-      }
-    )
-    return res.data
-  } catch {
-    throw new Error('获取直播课详情失败')
-  }
-}
-
-// 获取会员详情
-export const getVipDetail = async (id: any) => {
-  try {
-    const setting = await request.get(`${apiSuffix}/vipCardRecord/detail/` + id)
-    return setting.data || []
-  } catch {
-    throw new Error('获取会员详情失败')
-  }
-}
-
-// 获取曲目详情
-export const getMusicDetail = async (id: any) => {
-  try {
-    const res = await request.get(`${apiSuffix}/music/sheet/detail/${id}`)
-    return res.data
-  } catch {
-    throw new Error('获取曲目详情失败')
-  }
-}
-
-// 活动列表
-// 获取曲目详情
-export const getMusicActiveTrack = async (id: any) => {
-  try {
-    const res = await request.post(`${apiSuffix}/open/activity/info/${id}`)
-    return res.data
-  } catch {
-    throw new Error('获取曲目详情失败')
-  }
-}
-
-// 获取专辑详情
-export const getAlbumDetail = async (id: any) => {
-  try {
-    const res = await request.post(`${apiSuffix}/music/album/detail`, {
-      data: { id }
-    })
-    return res.data
-  } catch {
-    throw new Error('获取专辑详情失败')
-  }
-}
-
-// 获取机构专辑详情
-export const getTenantAlbumDetail = async (id: any) => {
-  try {
-    const res = await request.post(
-      `${apiSuffix}/userTenantAlbumRecord/detail`,
-      {
-        data: { albumId: id }
-      }
-    )
-    return res.data
-  } catch {
-    throw new Error('获取机构专辑详情失败')
-  }
-}
-
-// 为了处理继续支付逻辑
-export const tradeOrder = (result: any, callBack?: any) => {
-  const {
-    orderNo,
-    actualPrice,
-    orderDesc,
-    orderName,
-    orderType,
-    orderDetailList,
-    couponAmount, // 优惠金额
-    discountPrice,
-    paymentConfig // v2 类型的订单才会用
-  } = result
-  orderStatus.orderObject.orderType = orderType
-  orderStatus.orderObject.orderName = orderName
-  orderStatus.orderObject.orderDesc = orderDesc
-  orderStatus.orderObject.actualPrice = actualPrice
-  orderStatus.orderObject.orderNo = orderNo
-  orderStatus.orderObject.discountPrice = discountPrice
-  orderStatus.orderObject.orderList = []
-  orderStatus.orderObject.paymentConfig = paymentConfig
-  try {
-    orderDetailList.forEach(async (item: any) => {
-      await formatOrderDetail(item, {
-        couponAmount,
-        discountPrice
-      })
-    })
-    callBack && callBack()
-  } catch {
-    //
-  }
-}
+import { memberType } from '@/constant'
+import request from '@/helpers/request'
+import { state } from '@/state'
+import { orderStatus } from '@/views/order-detail/orderStatus'
+import dayjs from 'dayjs'
+
+const apiSuffix =
+  state.platformType === 'STUDENT' ? '/api-student' : '/api-teacher'
+// LIVE: '直播课',
+// PRACTICE: '陪练课',
+// VIDEO: '视频课',
+// VIP: '开通会员',
+// MUSIC: '单曲点播'
+interface IAmount {
+  couponAmount: number
+  discountPrice: number
+}
+export const formatOrderDetail = async (item: any, amount?: IAmount) => {
+  const type = item.goodType
+  let tempList: any = {}
+
+  switch (type) {
+    case 'LIVE':
+      {
+        try {
+          const live = await getLiveDetail(item.bizId)
+          const courseInfo: any[] = []
+          const coursePlanList = live.planList || []
+          coursePlanList.forEach((item: any) => {
+            const startTime = item.startTime || new Date()
+            const endTime = item.endTime || new Date()
+            courseInfo.push({
+              courseTime: `${dayjs(startTime).format('YYYY-MM-DD')} ${dayjs(
+                startTime
+              ).format('HH:mm')}~${dayjs(endTime).format('HH:mm')}`,
+              coursePlan: item.plan,
+              id: item.courseId
+            })
+          })
+          tempList = {
+            orderType: item.goodType,
+            goodName: item.goodName,
+            courseGroupId: live.courseGroupId,
+            courseGroupName: live.courseGroupName,
+            coursePrice: live.coursePrice,
+            teacherName: live.userName || `游客${live.teacherId || ''}`,
+            teacherId: live.teacherId,
+            avatar: live.avatar,
+            courseInfo
+          }
+        } catch (e: any) {
+          throw new Error(e.message)
+        }
+      }
+      break
+    case 'PRACTICE': {
+      const bizContent: any = JSON.parse(item.bizContent)
+      tempList = {
+        ...bizContent,
+        teacherName: item.username,
+        starGrade: item.starGrade,
+        avatar: item.avatar
+      }
+      break
+    }
+    case 'VIDEO': {
+      try {
+        const res = await getVideoDetail(item.bizId)
+        const { lessonGroup, detailList } = res
+        tempList = {
+          orderType: item.goodType,
+          goodName: item.goodName,
+          courseGroupId: lessonGroup.id,
+          courseGroupName: lessonGroup.lessonName,
+          coursePrice: lessonGroup.lessonPrice,
+          teacherName: lessonGroup.username,
+          teacherId: lessonGroup.teacherId,
+          avatar: lessonGroup.avatar,
+          courseInfo: detailList
+        }
+      } catch (e: any) {
+        throw new Error(e.message)
+      }
+      break
+    }
+    case 'VIP':
+      {
+        try {
+          const res = await getVipDetail(item.id)
+          tempList = {
+            orderType: item.goodType,
+            goodName: item.goodName,
+            id: item.id,
+            title: memberType[res.period] || '',
+            // 判断是否有优惠金额
+            price: amount?.couponAmount
+              ? Number(
+                  (
+                    res.salePrice -
+                    amount.couponAmount +
+                    amount.discountPrice
+                  ).toFixed(2)
+                )
+              : res.salePrice || item.actualPrice,
+            startTime: dayjs(res.startTime).format('YYYY-MM-DD'),
+            endTime: dayjs(res.endTime).format('YYYY-MM-DD')
+          }
+        } catch (e: any) {
+          throw new Error(e.message)
+        }
+      }
+      break
+    case 'MUSIC':
+      {
+        try {
+          const res = await getMusicDetail(item.bizId)
+          tempList = {
+            orderType: item.goodType,
+            goodName: item.goodName,
+            ...res
+          }
+        } catch (e: any) {
+          throw new Error(e.message)
+        }
+      }
+      break
+    case 'ALBUM':
+      {
+        try {
+          const res = await getAlbumDetail(item.bizId)
+          tempList = {
+            orderType: item.goodType,
+            goodName: item.goodName,
+            ...res
+          }
+        } catch (e: any) {
+          throw new Error(e.message)
+        }
+      }
+      break
+    case 'TENANT_ALBUM':
+      {
+        try {
+          const res = await getTenantAlbumDetail(item.bizId)
+          tempList = {
+            orderType: item.goodType,
+            goodName: item.goodName,
+            ...res,
+            purchaseCycle: item.bizInfo?.bizValidTime || res.purchaseCycle
+          }
+        } catch (e: any) {
+          throw new Error(e.message)
+        }
+      }
+      break
+    case 'ACTI_REGIST':
+      {
+        try {
+          const res = await getMusicActiveTrack(item.bizId)
+          tempList = {
+            orderType: item.goodType,
+            goodsName: res.activityName,
+            activityId: res.id,
+            actualPrice: res.registrationPrice
+          }
+        } catch (e: any) {
+          throw new Error(e.message)
+        }
+      }
+      break
+  }
+  tempList.orderType = type
+  tempList.goodName = item.goodName
+  orderStatus.orderObject.orderList.push(tempList)
+}
+// 获取视频课详情
+export const getVideoDetail = async (groupId: any) => {
+  try {
+    const res = await request.get(
+      `${apiSuffix}/videoLesson/selectVideoLesson`,
+      {
+        params: {
+          groupId
+        }
+      }
+    )
+    return res.data
+  } catch {
+    throw new Error('获取视频课详情失败')
+  }
+}
+
+// 获取直播课详情
+export const getLiveDetail = async (groupId: any) => {
+  try {
+    const res = await request.get(
+      `${apiSuffix}/courseGroup/queryLiveCourseInfo`,
+      {
+        params: {
+          groupId
+        }
+      }
+    )
+    return res.data
+  } catch {
+    throw new Error('获取直播课详情失败')
+  }
+}
+
+// 获取会员详情
+export const getVipDetail = async (id: any) => {
+  try {
+    const setting = await request.get(`${apiSuffix}/vipCardRecord/detail/` + id)
+    return setting.data || []
+  } catch {
+    throw new Error('获取会员详情失败')
+  }
+}
+
+// 获取曲目详情
+export const getMusicDetail = async (id: any) => {
+  try {
+    const res = await request.get(`${apiSuffix}/music/sheet/detail/${id}`)
+    return res.data
+  } catch {
+    throw new Error('获取曲目详情失败')
+  }
+}
+
+// 活动列表
+// 获取曲目详情
+export const getMusicActiveTrack = async (id: any) => {
+  try {
+    const res = await request.post(`${apiSuffix}/open/activity/info/${id}`)
+    return res.data
+  } catch {
+    throw new Error('获取曲目详情失败')
+  }
+}
+
+// 获取专辑详情
+export const getAlbumDetail = async (id: any) => {
+  try {
+    const res = await request.post(`${apiSuffix}/music/album/detail`, {
+      data: { id }
+    })
+    return res.data
+  } catch {
+    throw new Error('获取专辑详情失败')
+  }
+}
+
+// 获取机构专辑详情
+export const getTenantAlbumDetail = async (id: any) => {
+  try {
+    const res = await request.post(
+      `${apiSuffix}/userTenantAlbumRecord/detail`,
+      {
+        data: { albumId: id }
+      }
+    )
+    return res.data
+  } catch {
+    throw new Error('获取机构专辑详情失败')
+  }
+}
+
+// 为了处理继续支付逻辑
+export const tradeOrder = (result: any, callBack?: any) => {
+  const {
+    orderNo,
+    actualPrice,
+    orderDesc,
+    orderName,
+    orderType,
+    orderDetailList,
+    couponAmount, // 优惠金额
+    discountPrice,
+    paymentConfig // v2 类型的订单才会用
+  } = result
+  orderStatus.orderObject.orderType = orderType
+  orderStatus.orderObject.orderName = orderName
+  orderStatus.orderObject.orderDesc = orderDesc
+  orderStatus.orderObject.actualPrice = actualPrice
+  orderStatus.orderObject.orderNo = orderNo
+  orderStatus.orderObject.discountPrice = discountPrice
+  orderStatus.orderObject.orderList = []
+  orderStatus.orderObject.paymentConfig = paymentConfig
+  try {
+    orderDetailList.forEach(async (item: any) => {
+      await formatOrderDetail(item, {
+        couponAmount,
+        discountPrice
+      })
+    })
+    callBack && callBack()
+  } catch {
+    //
+  }
+}

+ 1 - 1
src/views/article-center/help-center-detail.tsx

@@ -36,7 +36,7 @@ export default defineComponent({
         content
       }
 
-      const documentTitle = catalogId == 2 ? '公告详情' : ' '
+      const documentTitle = catalogId == 2 ? '公告详情' : 'ㅤ' //'    ‌‍‎‏ '
       document.title = documentTitle
     } catch {}
     useEventTracking('帮助中心')

+ 6 - 2
src/views/article-center/help-center.tsx

@@ -29,7 +29,11 @@ export default defineComponent({
         title: '',
         status: 1,
         // STUDENT:学生 TEACHER:老师 ANALYSIS:智能陪练
-        catalogType: query.platformType || state.platformType,
+        catalogType:
+          query.platformType ||
+          (state.projectType === 'tenant' && state.platformType === 'STUDENT')
+            ? 'TENANT_STUDENT'
+            : state.platformType,
         page: 1,
         rows: 20
       }
@@ -99,7 +103,7 @@ export default defineComponent({
           <List
             v-model:loading={this.loading}
             finished={this.finished}
-            finishedText="没有更多了"
+            finishedText=" "
             onLoad={this.getList}
           >
             {this.list.map((item: any) => (

+ 1 - 1
src/views/tenantStudentRejest/index.module.less

@@ -332,7 +332,7 @@
       height: 40px;
       background: #fe2451;
       border-radius: 20px;
-      border: 1px solid #dbdbdb;
+      // border: 1px solid #dbdbdb;
       line-height: 40px;
       font-size: 14px;
       font-weight: 400;

+ 5 - 5
src/views/tenantStudentRejest/index.tsx

@@ -314,7 +314,7 @@ export default defineComponent({
                     <Field
                       class={styles.inputCode}
                       inputAlign="left"
-                      label="请输入验证码"
+                      label="验证码"
                       labelWidth={0}
                       v-model={forms.code}
                       maxlength={6}
@@ -446,10 +446,10 @@ export default defineComponent({
             <div class={styles.secondWrap}>
               <h2>提示</h2>
               <p>
-                当前账号已存在 <span>【{data.userSchoolName}】</span> ,是否
-              </p>
-              <p>
-                确认更换到<span>{data.schoolName}</span>吗?
+                当前账号已存在 <span>【{data.userSchoolName}】</span>{' '}
+                ,是否确认更换到
+                <span>{data.schoolName}</span>
+                吗?
               </p>
               <div class={styles.buttonWrap}>
                 <div

+ 1 - 1
src/views/trade/trade-detail.tsx

@@ -98,7 +98,7 @@ export default defineComponent({
         const urlFix =
           state.platformType === 'TEACHER' ? '/api-teacher' : '/api-student'
         const res = await request.get(
-          `${urlFix}/userOrder/detailByOrderNo/${this.orderNo}`,
+          `${urlFix}/open/userOrder/detailByOrderNo/${this.orderNo}`,
           {
             hideLoading: status
           }