lex 2 år sedan
förälder
incheckning
2359870037

+ 17 - 2
src/teacher/share-page/share-music-sheet/index.tsx

@@ -18,7 +18,8 @@ export default defineComponent({
     return {
       id: query.id,
       recomUserId: query.recomUserId, // 分享人编号
-      discount: query.discount || 0, // 专属优惠 0:否 1:是
+      activityId: query.activityId || 0, // 专属优惠Id
+      discounts: 0,
       musicSheet: {} as any,
       teacherName: ''
     }
@@ -33,6 +34,18 @@ export default defineComponent({
       })
       this.musicSheet = res.data.musicSheet || {}
       this.teacherName = res.data.name || ''
+
+      // 判断是否有活动编号
+      if (this.activityId) {
+        const discountObj = await request.post(
+          `/api-student/open/activity/state/${this.activityId}`,
+          {
+            data: {}
+          }
+        )
+
+        this.discounts = discountObj.data.check || 0
+      }
     } catch {
       //
     }
@@ -47,6 +60,8 @@ export default defineComponent({
         query: {
           id: this.id,
           recomUserId: this.recomUserId,
+          activityId: this.activityId,
+          discounts: this.discounts,
           client: browserInfo.isTeacher ? 'teacher' : 'student',
           behaviorId
         }
@@ -83,7 +98,7 @@ export default defineComponent({
             <div>
               <h2>{this.musicSheet.musicSheetName}</h2>
               <p>作曲人: {this.musicSheet.composer}</p>
-              {this.discount == 1 && (
+              {this.discounts == 1 && (
                 <img src={iconDiscount} class={styles.discount} />
               )}
             </div>

+ 1 - 0
src/views/member-center/index.module.less

@@ -277,6 +277,7 @@
     width: 36px;
     height: 36px;
     border-radius: 50%;
+    overflow: hidden;
     border: 1px solid #ffaf59;
   }
 

+ 21 - 6
src/views/member-center/index.tsx

@@ -22,7 +22,10 @@ export const getAssetsHomeFile = (fileName: string) => {
 export default defineComponent({
   name: 'MemberCenter',
   data() {
+    const query = this.$route.query
     return {
+      activityId: query.activityId,
+      recomUserId: query.recomUserId,
       apiSuffix:
         state.platformType === 'STUDENT' ? '/api-student' : '/api-teacher',
       agreeStatus: false,
@@ -69,7 +72,10 @@ export default defineComponent({
       const setting = await request.post(
         `${this.apiSuffix}/memberPriceSettings/list`,
         {
-          data: {}
+          data: {
+            activityId: Number(this.activityId),
+            userId: this.recomUserId
+          }
         }
       )
       const { list, ...more } = setting.data
@@ -102,6 +108,16 @@ export default defineComponent({
     } catch {}
   },
   methods: {
+    calcSalePrice(item: any) {
+      // discount
+      if (item.discount) {
+        const tempPrice = Number(
+          (item.salePrice - item.discountPrice).toFixed(2)
+        )
+        return tempPrice >= 0 ? tempPrice : 0
+      }
+      return item.salePrice
+    },
     onSubmit() {
       const member: any = this.selectMember
       // 判断是否有会员
@@ -119,12 +135,11 @@ export default defineComponent({
         endTime = dayjs(startTime).add(1, 'year').toDate()
       }
 
-      const query = this.$route.query
       orderStatus.orderObject.orderType = 'VIP'
       orderStatus.orderObject.orderName = '小酷Ai' + member.title
       orderStatus.orderObject.orderDesc = '小酷Ai' + member.title
       orderStatus.orderObject.actualPrice = member.salePrice
-      orderStatus.orderObject.recomUserId = query.recomUserId
+      orderStatus.orderObject.recomUserId = this.recomUserId
       orderStatus.orderObject.orderNo = ''
       orderStatus.orderObject.orderList = [
         {
@@ -135,7 +150,7 @@ export default defineComponent({
           price: member.salePrice,
           startTime: dayjs(startTime).format('YYYY-MM-DD'),
           endTime: dayjs(endTime).format('YYYY-MM-DD'),
-          recomUserId: query.recomUserId
+          recomUserId: this.recomUserId
         }
       ]
       this.$router.push({
@@ -239,7 +254,7 @@ export default defineComponent({
                   <p class={styles.title}>{item.title}</p>
                   <p class={styles.price}>
                     <span>¥</span>
-                    {moneyFormat(item.salePrice, '0,0[.]00')}
+                    {moneyFormat(this.calcSalePrice(item), '0,0[.]00')}
                   </p>
                   <del class={styles.originalPrice}>
                     ¥{moneyFormat(item.originalPrice, '0,0[.]00')}
@@ -289,7 +304,7 @@ export default defineComponent({
                 )}
               </span>
             </div>
-            {this.discountTeacher.discount == 1 && (
+            {this.selectMember?.discount == 1 && (
               <div class={[styles.discountItem, styles.discountBuy]}>
                 <img src={iconDiscount} />
               </div>

+ 27 - 6
src/views/music/list/item.tsx

@@ -54,18 +54,36 @@ export default defineComponent({
 
     const shareStatus = ref(false)
     const shareUrl = ref('')
+    const shareDiscount = ref(0)
     // console.log(data)
-    const onShare = (evt: MouseEvent) => {
+    const onShare = async (evt: MouseEvent) => {
       evt.stopPropagation()
+
+      try {
+        const res = await request.post('/api-teacher/open/musicShareProfit', {
+          data: {
+            bizId: data.id,
+            userId: state.user.data?.userId
+          }
+        })
+        let url =
+          location.origin +
+          `/accompany/colexiu-share.html?id=${data.id}&recomUserId=${state.user.data?.userId}`
+        // 判断是否有活动
+        if (res.data.discount === 1) {
+          url += `&activityId=${res.data.activityId}`
+        }
+        shareDiscount.value = res.data.discount || 0
+        shareUrl.value = url
+        shareStatus.value = true
+        return
+      } catch {}
+
       // if (!shareStatus.value) {
       //   Toast('暂无分享地址')
       //   return
       // }
       // https://dev.colexiu.com/accompany/colexiu-share.html?id=2500&recomUserId=1
-      shareUrl.value =
-        location.origin +
-        `/accompany/colexiu-share.html?id=${data.id}&recomUserId=${state.user.data?.userId}`
-      shareStatus.value = true
     }
     return () => (
       <div>
@@ -148,7 +166,10 @@ export default defineComponent({
             shareType="music"
           >
             <div class={styles.shareMate}>
-              <div class={styles.tagDiscount}>专属优惠</div>
+              {shareDiscount.value === 1 && (
+                <div class={styles.tagDiscount}>专属优惠</div>
+              )}
+
               <img
                 class={styles.icon}
                 crossorigin="anonymous"