浏览代码

修改问题

lex 1 年之前
父节点
当前提交
c1a5e740a2

+ 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;
     }
   }
 }

+ 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={[

+ 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 {
+    //
+  }
+}