lex 2 lat temu
rodzic
commit
938f5ce175

+ 0 - 62
package-lock.json

@@ -26,7 +26,6 @@
         "qrcode": "^1.5.1",
         "qrcode": "^1.5.1",
         "qrcode.vue": "^3.3.3",
         "qrcode.vue": "^3.3.3",
         "query-string": "^7.1.1",
         "query-string": "^7.1.1",
-        "swiper": "^8.3.1",
         "umi-request": "^1.4.0",
         "umi-request": "^1.4.0",
         "vant": "^3.4.6",
         "vant": "^3.4.6",
         "vconsole": "^3.14.6",
         "vconsole": "^3.14.6",
@@ -3749,15 +3748,6 @@
         "url": "https://github.com/fb55/entities?sponsor=1"
         "url": "https://github.com/fb55/entities?sponsor=1"
       }
       }
     },
     },
-    "node_modules/dom7": {
-      "version": "4.0.4",
-      "resolved": "https://registry.npmmirror.com/dom7/-/dom7-4.0.4.tgz",
-      "integrity": "sha512-DSSgBzQ4rJWQp1u6o+3FVwMNnT5bzQbMb+o31TjYYeRi05uAcpF8koxdfzeoe5ElzPmua7W7N28YJhF7iEKqIw==",
-      "license": "MIT",
-      "dependencies": {
-        "ssr-window": "^4.0.0"
-      }
-    },
     "node_modules/domelementtype": {
     "node_modules/domelementtype": {
       "version": "2.2.0",
       "version": "2.2.0",
       "resolved": "https://registry.npmmirror.com/domelementtype/-/domelementtype-2.2.0.tgz",
       "resolved": "https://registry.npmmirror.com/domelementtype/-/domelementtype-2.2.0.tgz",
@@ -8403,12 +8393,6 @@
         "node": ">=6"
         "node": ">=6"
       }
       }
     },
     },
-    "node_modules/ssr-window": {
-      "version": "4.0.2",
-      "resolved": "https://registry.npmmirror.com/ssr-window/-/ssr-window-4.0.2.tgz",
-      "integrity": "sha512-ISv/Ch+ig7SOtw7G2+qkwfVASzazUnvlDTwypdLoPoySv+6MqlOV10VwPSE6EWkGjhW50lUmghPmpYZXMu/+AQ==",
-      "license": "MIT"
-    },
     "node_modules/strict-uri-encode": {
     "node_modules/strict-uri-encode": {
       "version": "2.0.0",
       "version": "2.0.0",
       "resolved": "https://registry.npmmirror.com/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz",
       "resolved": "https://registry.npmmirror.com/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz",
@@ -8593,30 +8577,6 @@
       "integrity": "sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==",
       "integrity": "sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==",
       "dev": true
       "dev": true
     },
     },
-    "node_modules/swiper": {
-      "version": "8.3.1",
-      "resolved": "https://registry.npmmirror.com/swiper/-/swiper-8.3.1.tgz",
-      "integrity": "sha512-oASYsulsERlbQVTZ8FjlTDJSN4YZwhp+AkvepOj8EOhgpvxzKoMpWpBPrk7ypkMioQUx6x2NPvkRU0Qv9mpS0A==",
-      "funding": [
-        {
-          "type": "patreon",
-          "url": "https://www.patreon.com/swiperjs"
-        },
-        {
-          "type": "open_collective",
-          "url": "http://opencollective.com/swiper"
-        }
-      ],
-      "hasInstallScript": true,
-      "license": "MIT",
-      "dependencies": {
-        "dom7": "^4.0.4",
-        "ssr-window": "^4.0.2"
-      },
-      "engines": {
-        "node": ">= 4.7.0"
-      }
-    },
     "node_modules/systemjs": {
     "node_modules/systemjs": {
       "version": "6.12.1",
       "version": "6.12.1",
       "resolved": "https://registry.npmmirror.com/systemjs/-/systemjs-6.12.1.tgz",
       "resolved": "https://registry.npmmirror.com/systemjs/-/systemjs-6.12.1.tgz",
@@ -12313,14 +12273,6 @@
         }
         }
       }
       }
     },
     },
-    "dom7": {
-      "version": "4.0.4",
-      "resolved": "https://registry.npmmirror.com/dom7/-/dom7-4.0.4.tgz",
-      "integrity": "sha512-DSSgBzQ4rJWQp1u6o+3FVwMNnT5bzQbMb+o31TjYYeRi05uAcpF8koxdfzeoe5ElzPmua7W7N28YJhF7iEKqIw==",
-      "requires": {
-        "ssr-window": "^4.0.0"
-      }
-    },
     "domelementtype": {
     "domelementtype": {
       "version": "2.2.0",
       "version": "2.2.0",
       "resolved": "https://registry.npmmirror.com/domelementtype/-/domelementtype-2.2.0.tgz",
       "resolved": "https://registry.npmmirror.com/domelementtype/-/domelementtype-2.2.0.tgz",
@@ -15452,11 +15404,6 @@
       "resolved": "https://registry.npmmirror.com/split-on-first/-/split-on-first-1.1.0.tgz",
       "resolved": "https://registry.npmmirror.com/split-on-first/-/split-on-first-1.1.0.tgz",
       "integrity": "sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw=="
       "integrity": "sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw=="
     },
     },
-    "ssr-window": {
-      "version": "4.0.2",
-      "resolved": "https://registry.npmmirror.com/ssr-window/-/ssr-window-4.0.2.tgz",
-      "integrity": "sha512-ISv/Ch+ig7SOtw7G2+qkwfVASzazUnvlDTwypdLoPoySv+6MqlOV10VwPSE6EWkGjhW50lUmghPmpYZXMu/+AQ=="
-    },
     "strict-uri-encode": {
     "strict-uri-encode": {
       "version": "2.0.0",
       "version": "2.0.0",
       "resolved": "https://registry.npmmirror.com/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz",
       "resolved": "https://registry.npmmirror.com/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz",
@@ -15566,15 +15513,6 @@
       "integrity": "sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==",
       "integrity": "sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==",
       "dev": true
       "dev": true
     },
     },
-    "swiper": {
-      "version": "8.3.1",
-      "resolved": "https://registry.npmmirror.com/swiper/-/swiper-8.3.1.tgz",
-      "integrity": "sha512-oASYsulsERlbQVTZ8FjlTDJSN4YZwhp+AkvepOj8EOhgpvxzKoMpWpBPrk7ypkMioQUx6x2NPvkRU0Qv9mpS0A==",
-      "requires": {
-        "dom7": "^4.0.4",
-        "ssr-window": "^4.0.2"
-      }
-    },
     "systemjs": {
     "systemjs": {
       "version": "6.12.1",
       "version": "6.12.1",
       "resolved": "https://registry.npmmirror.com/systemjs/-/systemjs-6.12.1.tgz",
       "resolved": "https://registry.npmmirror.com/systemjs/-/systemjs-6.12.1.tgz",

+ 0 - 1
package.json

@@ -38,7 +38,6 @@
     "qrcode": "^1.5.1",
     "qrcode": "^1.5.1",
     "qrcode.vue": "^3.3.3",
     "qrcode.vue": "^3.3.3",
     "query-string": "^7.1.1",
     "query-string": "^7.1.1",
-    "swiper": "^8.3.1",
     "umi-request": "^1.4.0",
     "umi-request": "^1.4.0",
     "vant": "^3.4.6",
     "vant": "^3.4.6",
     "vconsole": "^3.14.6",
     "vconsole": "^3.14.6",

+ 7 - 3
src/business-components/user-detail/index.tsx

@@ -111,7 +111,11 @@ export default defineComponent({
                   ) : (
                   ) : (
                     this.showBuy && (
                     this.showBuy && (
                       <div class={styles.buyNum}>
                       <div class={styles.buyNum}>
-                        {this.userInfo.buyNum}人已购买
+                        {this.userInfo.buyNum}人已
+                        {this.userInfo.lessonPrice <= 0 &&
+                        this.userInfo.auditVersion === 0
+                          ? '领取'
+                          : '购买'}
                       </div>
                       </div>
                     )
                     )
                   )}
                   )}
@@ -130,9 +134,9 @@ export default defineComponent({
                       <>¥{this.userInfo.lessonPrice}/</>
                       <>¥{this.userInfo.lessonPrice}/</>
                     )}
                     )}
                     {this.userInfo.lessonPrice <= 0 &&
                     {this.userInfo.lessonPrice <= 0 &&
-                      this.userInfo.auditVersion!==0 && <>¥{0}/</>}
+                      this.userInfo.auditVersion !== 0 && <>¥{0}/</>}
                     {this.userInfo.lessonPrice <= 0 &&
                     {this.userInfo.lessonPrice <= 0 &&
-                      this.userInfo.auditVersion===0 && <>免费/</>}
+                      this.userInfo.auditVersion === 0 && <>免费/</>}
                     {this.userInfo.lessonNum}课时
                     {this.userInfo.lessonNum}课时
                   </div>
                   </div>
                 )
                 )

BIN
src/components/col-share/images/live1.png


BIN
src/components/col-share/images/live2.png


BIN
src/components/col-share/images/live3.png


BIN
src/components/col-share/images/music1.png


BIN
src/components/col-share/images/music11.png


BIN
src/components/col-share/images/music2.png


BIN
src/components/col-share/images/music3.png


BIN
src/components/col-share/images/shop1.png


BIN
src/components/col-share/images/shop2.png


BIN
src/components/col-share/images/shop3.png


BIN
src/components/col-share/images/video1.png


BIN
src/components/col-share/images/video2.png


BIN
src/components/col-share/images/video3.png


+ 55 - 12
src/components/col-share/index.module.less

@@ -1,5 +1,5 @@
 .shareContainer {
 .shareContainer {
-  width: 333px;
+  width: 375px;
 
 
   .swipe__indicators {
   .swipe__indicators {
     color: #fff;
     color: #fff;
@@ -115,19 +115,62 @@
 
 
 .shareSection {
 .shareSection {
   border-radius: 12px;
   border-radius: 12px;
-  width: 323px;
+  width: 334px;
   padding: 16px;
   padding: 16px;
-  margin: 0 5px;
+  margin: 0 auto;
   box-sizing: border-box;
   box-sizing: border-box;
-  background: url('./images/bg1.png') no-repeat top center #fff;
-  background-size: contain;
-  &.yellow {
-    background: url('./images/bg2.png') no-repeat top center #fff;
-    background-size: contain;
+  background: #fff;
+  &.video {
+    background: url('./images/video1.png') no-repeat top center #fff;
+    background-size: cover;
+    &.yellow {
+      background: url('./images/video2.png') no-repeat top center #fff;
+      background-size: cover;
+    }
+    &.pink {
+      background: url('./images/video3.png') no-repeat top center #fff;
+      background-size: cover;
+    }
+  }
+  &.live {
+    background: url('./images/live1.png') no-repeat top center #fff;
+    background-size: cover;
+    &.yellow {
+      background: url('./images/live2.png') no-repeat top center #fff;
+      background-size: cover;
+    }
+    &.pink {
+      background: url('./images/live3.png') no-repeat top center #fff;
+      background-size: cover;
+    }
+  }
+  &.shop {
+    background: url('./images/shop1.png') no-repeat top center #fff;
+    background-size: cover;
+    &.yellow {
+      background: url('./images/shop2.png') no-repeat top center #fff;
+      background-size: cover;
+    }
+    &.pink {
+      background: url('./images/shop3.png') no-repeat top center #fff;
+      background-size: cover;
+    }
+  }
+  &.music {
+    background: url('./images/music1.png') no-repeat top center #fff;
+    background-size: cover;
+    &.yellow {
+      background: url('./images/music2.png') no-repeat top center #fff;
+      background-size: cover;
+    }
+    &.pink {
+      background: url('./images/music3.png') no-repeat top center #fff;
+      background-size: cover;
+    }
   }
   }
-  &.pink {
-    background: url('./images/bg3.png') no-repeat top center #fff;
-    background-size: contain;
+
+  .shareContent {
+    padding-top: 124px;
   }
   }
 }
 }
 
 
@@ -187,6 +230,6 @@
   justify-content: space-between;
   justify-content: space-between;
   padding-top: 12px;
   padding-top: 12px;
   :global(.van-button) {
   :global(.van-button) {
-    padding: 8px 32px;
+    padding: 8px 46px;
   }
   }
 }
 }

+ 41 - 18
src/components/col-share/index.tsx

@@ -24,29 +24,36 @@ export default defineComponent({
   },
   },
   data() {
   data() {
     return {
     return {
+      swiperIndex: 0,
       image: null as any,
       image: null as any,
       codeUrl: ''
       codeUrl: ''
     }
     }
   },
   },
   async mounted() {
   async mounted() {
     try {
     try {
-      const shortRes = await request.post('/api-teacher/sysConfig/shortURL', {
-        requestType: 'form',
-        data: {
-          orginURL: this.shareUrl
-        }
-      })
-      this.codeUrl = shortRes.data
-      // this.codeUrl = this.shareUrl
+      // const shortRes = await request.post('/api-teacher/sysConfig/shortURL', {
+      //   requestType: 'form',
+      //   data: {
+      //     orginURL: this.shareUrl
+      //   }
+      // })
+      // this.codeUrl = shortRes.data
+      this.codeUrl = this.shareUrl
     } catch {
     } catch {
       //
       //
     }
     }
   },
   },
   methods: {
   methods: {
     async onSaveImg() {
     async onSaveImg() {
-      const container: any = document.getElementById('share-preview-container')
-      html2canvas(container, { allowTaint: true, useCORS: true }).then(
-        async canvas => {
+      const container: any = document.getElementById(
+        `share-preview-container${this.swiperIndex}`
+      )
+      html2canvas(container, {
+        allowTaint: true,
+        useCORS: true,
+        backgroundColor: null
+      })
+        .then(async canvas => {
           const url = canvas.toDataURL('image/png')
           const url = canvas.toDataURL('image/png')
           this.image = url
           this.image = url
           Toast.loading({
           Toast.loading({
@@ -64,13 +71,21 @@ export default defineComponent({
           } else {
           } else {
             Toast.fail('保存失败')
             Toast.fail('保存失败')
           }
           }
-        }
-      )
+        })
+        .catch(() => {
+          Toast.clear()
+        })
     },
     },
     async shareShow() {
     async shareShow() {
-      const container: any = document.getElementById('share-preview-container')
-      html2canvas(container, { allowTaint: true, useCORS: true }).then(
-        async canvas => {
+      const container: any = document.getElementById(
+        `share-preview-container${this.swiperIndex}`
+      )
+      html2canvas(container, {
+        allowTaint: true,
+        useCORS: true,
+        backgroundColor: null
+      })
+        .then(async canvas => {
           const url = canvas.toDataURL('image/png')
           const url = canvas.toDataURL('image/png')
           this.image = url
           this.image = url
 
 
@@ -97,8 +112,10 @@ export default defineComponent({
               }
               }
             )
             )
           }
           }
-        }
-      )
+        })
+        .catch(() => {
+          Toast.clear()
+        })
     }
     }
   },
   },
   render() {
   render() {
@@ -111,6 +128,9 @@ export default defineComponent({
                 showIndicators={true}
                 showIndicators={true}
                 // loop={false}
                 // loop={false}
                 lazyRender={true}
                 lazyRender={true}
+                onChange={(index: number) => {
+                  this.swiperIndex = index
+                }}
                 v-slots={{
                 v-slots={{
                   indicator: (active: any) => (
                   indicator: (active: any) => (
                     <div class={styles.swipe__indicators}>
                     <div class={styles.swipe__indicators}>
@@ -134,6 +154,7 @@ export default defineComponent({
               >
               >
                 <SwipeItem>
                 <SwipeItem>
                   <ShareItem
                   <ShareItem
+                    id="share-preview-container0"
                     teacherId={this.teacherId}
                     teacherId={this.teacherId}
                     shareUrl={this.codeUrl}
                     shareUrl={this.codeUrl}
                     shareType={this.shareType}
                     shareType={this.shareType}
@@ -143,6 +164,7 @@ export default defineComponent({
                 </SwipeItem>
                 </SwipeItem>
                 <SwipeItem>
                 <SwipeItem>
                   <ShareItem
                   <ShareItem
+                    id="share-preview-container1"
                     teacherId={this.teacherId}
                     teacherId={this.teacherId}
                     shareUrl={this.codeUrl}
                     shareUrl={this.codeUrl}
                     showType="yellow"
                     showType="yellow"
@@ -153,6 +175,7 @@ export default defineComponent({
                 </SwipeItem>
                 </SwipeItem>
                 <SwipeItem>
                 <SwipeItem>
                   <ShareItem
                   <ShareItem
+                    id="share-preview-container2"
                     teacherId={this.teacherId}
                     teacherId={this.teacherId}
                     shareUrl={this.codeUrl}
                     shareUrl={this.codeUrl}
                     showType="pink"
                     showType="pink"

+ 11 - 81
src/components/col-share/share-item.tsx

@@ -18,6 +18,9 @@ export const getAssetsHomeFile = (fileName: string) => {
 export default defineComponent({
 export default defineComponent({
   name: 'share-item',
   name: 'share-item',
   props: {
   props: {
+    id: {
+      type: String
+    },
     teacherId: {
     teacherId: {
       type: Number
       type: Number
     },
     },
@@ -43,74 +46,12 @@ export default defineComponent({
   },
   },
   computed: {
   computed: {
     getString() {
     getString() {
-      const tempalte = {
-        live: [
-          {
-            title: '精品必修课程来啦~~~',
-            content: '优秀的老师能帮助您快速成长',
-            tips: '多种技巧干货分享'
-          },
-          {
-            title: '零基础学习,让你轻松上手就能演奏',
-            content: '听说快乐和可爱都会传染,让课程变得更轻松',
-            tips: '强烈推荐'
-          },
-          {
-            title: '优秀是一种习惯,越早养成越好',
-            content: '快来提升自己,让自己更优秀',
-            tips: '这套课程不错哟!推荐给你~'
-          }
-        ],
-        music: [
-          {
-            title: '科学练习,有助于水平快速提升',
-            content: '随时陪伴,让你的练习更加轻松',
-            tips: '这首曲子很不错!推荐给你~'
-          },
-          {
-            title: '没有天赋异禀,优秀的人总是努力翻山越岭',
-            content: '只有反复练习才能在台上游刃有余',
-            tips: '这首曲子不错哟,推荐给你~'
-          },
-          {
-            title: '海量乐谱,欢迎大家来围观',
-            content: '每一首作品,都有一颗精心策划的心',
-            tips: '这首曲子不错哟,推荐给你~'
-          }
-        ],
-        mall: [
-          {
-            title: '开业大吉,火力全开',
-            content: '做最稳定的品质,给最优惠的价格',
-            tips: '好物推荐,优惠多多'
-          },
-          {
-            title: '新品嗨购,优惠不停',
-            content: '有品质才会热爱,有诚信才会信赖',
-            tips: '好物推荐,优惠多多'
-          },
-          {
-            title: '精选优惠产品来啦~',
-            content: '快来选购一件适合你的乐器吧~',
-            tips: '好物推荐,优惠多多'
-          }
-        ]
-      }
-      let selectItem: any = []
       if (this.shareType === 'music') {
       if (this.shareType === 'music') {
-        selectItem = tempalte.music
+        return '这首曲目挺不错!推荐给你~'
       } else if (this.shareType === 'mall') {
       } else if (this.shareType === 'mall') {
-        selectItem = tempalte.mall
+        return '这件商品挺不错!推荐给你~'
       } else {
       } else {
-        selectItem = tempalte.live
-      }
-
-      if (this.showType === 'yellow') {
-        return selectItem[1]
-      } else if (this.showType === 'pink') {
-        return selectItem[2]
-      } else {
-        return selectItem[0]
+        return '这个课程挺不错!推荐给你~'
       }
       }
     }
     }
   },
   },
@@ -130,20 +71,18 @@ export default defineComponent({
   render() {
   render() {
     return (
     return (
       <div
       <div
+        id={this.id}
         class={[
         class={[
           styles.shareSection,
           styles.shareSection,
           styles.shareContainer,
           styles.shareContainer,
+          styles[this.shareType],
           styles[this.showType]
           styles[this.showType]
         ]}
         ]}
-        id="share-preview-container"
       >
       >
-        <div class={styles.shareTitle}>
-          <p class={styles.title} v-html={this.getString?.title}></p>
-          <p class={styles.titleTip}>{this.getString?.content}</p>
+        <div class={styles.shareContent}>
+          {this.$slots.default && this.$slots.default()}
         </div>
         </div>
 
 
-        {this.$slots.default && this.$slots.default()}
-
         <Cell
         <Cell
           center
           center
           border={false}
           border={false}
@@ -157,15 +96,6 @@ export default defineComponent({
                   style={{ objectFit: 'cover' }}
                   style={{ objectFit: 'cover' }}
                   crossorigin="anonymous"
                   crossorigin="anonymous"
                 />
                 />
-                {/* <div
-                  class={styles.img}
-                  style={{
-                    background: `url(${
-                      state.user.data.heardUrl ? this.heardUrl : iconTeacher
-                    }) no-repeat center`,
-                    backgroundSize: 'cover'
-                  }}
-                ></div> */}
                 <img
                 <img
                   class={styles.recommend}
                   class={styles.recommend}
                   src={getAssetsHomeFile('recommend.png')}
                   src={getAssetsHomeFile('recommend.png')}
@@ -174,7 +104,7 @@ export default defineComponent({
             ),
             ),
             title: () => (
             title: () => (
               <div>
               <div>
-                <p class={styles.name}>{this.getString?.tips}</p>
+                <p class={styles.name}>{this.getString}</p>
                 <p class={styles.titleTips}>
                 <p class={styles.titleTips}>
                   <span>{state.user.data.username}</span>
                   <span>{state.user.data.username}</span>
                   酷乐秀入驻老师
                   酷乐秀入驻老师

+ 17 - 3
src/components/col-video/index.tsx

@@ -15,6 +15,10 @@ export default defineComponent({
       type: Boolean,
       type: Boolean,
       default: false
       default: false
     },
     },
+    freeTitleStatus: {
+      type: Boolean,
+      default: true
+    },
     // 试看比例
     // 试看比例
     freeRate: {
     freeRate: {
       type: Number,
       type: Number,
@@ -263,12 +267,18 @@ export default defineComponent({
                   size={50}
                   size={50}
                   onClick={this.onClickPlay}
                   onClick={this.onClickPlay}
                 />
                 />
-                <p class={styles.freeTxt}>免费试看</p>
+                <p class={styles.freeTxt}>
+                  免费
+                  {this.freeTitleStatus ? '试看' : '领取'}
+                </p>
                 {/* <p class={styles.freeRate}>每课时可试看{this.freeRate}%</p> */}
                 {/* <p class={styles.freeRate}>每课时可试看{this.freeRate}%</p> */}
               </>
               </>
             ) : (
             ) : (
               <>
               <>
-                <p class={styles.tips}>免费试看结束,购买完整课程后继续学习</p>
+                <p class={styles.tips}>
+                  免费{this.freeTitleStatus ? '试看' : '领取'}
+                  结束,购买完整课程后继续学习
+                </p>
                 <Button
                 <Button
                   class={styles.btn}
                   class={styles.btn}
                   type="primary"
                   type="primary"
@@ -276,7 +286,11 @@ export default defineComponent({
                   size="small"
                   size="small"
                   onClick={this.onBuy}
                   onClick={this.onBuy}
                 >
                 >
-                  {state.platformType === 'STUDENT' ? '立即购买' : '返回'}
+                  {state.platformType === 'STUDENT'
+                    ? this.freeTitleStatus
+                      ? '立即购买'
+                      : '免费领取'
+                    : '返回'}
                 </Button>
                 </Button>
                 <div class={styles.replay} onClick={this.onReplay}>
                 <div class={styles.replay} onClick={this.onReplay}>
                   <Icon
                   <Icon

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

@@ -33,6 +33,7 @@ export default defineComponent({
       classId: query.classId,
       classId: query.classId,
       tabIndex: 1,
       tabIndex: 1,
       title: '',
       title: '',
+      lessonPrice: 0,
       detailList: [],
       detailList: [],
       posterUrl: '',
       posterUrl: '',
       srcUrl: '',
       srcUrl: '',
@@ -82,6 +83,7 @@ export default defineComponent({
       )
       )
       const result = res.data || {}
       const result = res.data || {}
       this.title = result.lessonGroup.lessonName
       this.title = result.lessonGroup.lessonName
+      this.lessonPrice = result.lessonGroup.lessonPrice
       this.detailList = result.detailList || []
       this.detailList = result.detailList || []
       this.trySee = !result.alreadyBuy
       this.trySee = !result.alreadyBuy
       this.detailList.forEach((item: any, index: number) => {
       this.detailList.forEach((item: any, index: number) => {
@@ -186,6 +188,7 @@ export default defineComponent({
               !this.reload && (
               !this.reload && (
                 <ColVideo
                 <ColVideo
                   freeRate={Number(this.freeRate)}
                   freeRate={Number(this.freeRate)}
+                  freeTitleStatus={this.lessonPrice > 0 ? true : false}
                   trySee={this.trySee}
                   trySee={this.trySee}
                   src={this.srcUrl}
                   src={this.srcUrl}
                   poster={this.posterUrl}
                   poster={this.posterUrl}

+ 4 - 4
src/teacher/live-class/live-detail.module.less

@@ -12,11 +12,11 @@
   }
   }
 
 
   .shareCourse {
   .shareCourse {
-    margin: 40px 0 0;
-    padding: 0;
-    background: transparent;
+    margin: 0;
+    padding: 8px;
+    background: #fff;
     :global(.itemTitle) {
     :global(.itemTitle) {
-      max-width: 120px !important;
+      max-width: 110px !important;
     }
     }
   }
   }
 }
 }

+ 3 - 0
src/teacher/video-class/video-class-detail.tsx

@@ -33,6 +33,7 @@ export default defineComponent({
       classId: query.classId,
       classId: query.classId,
       tabIndex: 1,
       tabIndex: 1,
       title: '',
       title: '',
+      lessonPrice: 0,
       currentClassIndex: 1,
       currentClassIndex: 1,
       detailList: [],
       detailList: [],
       posterUrl: '',
       posterUrl: '',
@@ -77,6 +78,7 @@ export default defineComponent({
       )
       )
       const result = res.data || {}
       const result = res.data || {}
       this.title = result.lessonGroup.lessonName
       this.title = result.lessonGroup.lessonName
+      this.lessonPrice = result.lessonGroup.lessonPrice
       this.detailList = result.detailList || []
       this.detailList = result.detailList || []
 
 
       if (state.user.data?.userId !== result.lessonGroup.teacherId) {
       if (state.user.data?.userId !== result.lessonGroup.teacherId) {
@@ -194,6 +196,7 @@ export default defineComponent({
         <ColVideo
         <ColVideo
           src={this.srcUrl}
           src={this.srcUrl}
           poster={this.posterUrl}
           poster={this.posterUrl}
+          freeTitleStatus={this.lessonPrice > 0 ? true : false}
           freeRate={Number(this.freeRate)}
           freeRate={Number(this.freeRate)}
           trySee={this.trySee}
           trySee={this.trySee}
           height={this.videoHeight}
           height={this.videoHeight}

+ 4 - 4
src/teacher/video-class/video-detail.module.less

@@ -12,11 +12,11 @@
   }
   }
 
 
   .shareCourse {
   .shareCourse {
-    margin: 40px 0 0;
-    padding: 0;
-    background: transparent;
+    margin: 0;
+    padding: 8px;
+    background: #fff;
     :global(.itemTitle) {
     :global(.itemTitle) {
-      max-width: 120px !important;
+      max-width: 110px !important;
     }
     }
   }
   }
 
 

+ 2 - 1
src/views/music/list/item.module.less

@@ -95,7 +95,7 @@
 }
 }
 
 
 .shareMate {
 .shareMate {
-  margin-top: 70px;
+  margin-top: 50px;
   display: flex;
   display: flex;
   flex: 1;
   flex: 1;
   align-items: center;
   align-items: center;
@@ -106,6 +106,7 @@
   .icon {
   .icon {
     width: 36px;
     width: 36px;
     height: 36px;
     height: 36px;
+    border-radius: 10px;
   }
   }
   .info {
   .info {
     margin-left: 14px;
     margin-left: 14px;

+ 18 - 3
src/views/music/list/item.tsx

@@ -34,7 +34,9 @@ export default defineComponent({
     // console.log(props, emit)
     // console.log(props, emit)
     const favorite = ref(data.favorite)
     const favorite = ref(data.favorite)
     const favoriteLoading = ref(false)
     const favoriteLoading = ref(false)
-    const titleImg = ref(data.titleImg + '@base@tag=imgScale&h=80&w=80&m=1')
+    const titleImg =
+      data.titleImg + '@base@tag=imgScale&h=80&w=80&m=1?t=' + +new Date()
+    //daya.ks3-cn-beijing.ksyun.com/202204/T2yF851.jpeg@base@tag=imgScale&h=80&w=80&m=1
 
 
     const toggleFavorite = async (evt: MouseEvent) => {
     const toggleFavorite = async (evt: MouseEvent) => {
       evt.stopPropagation()
       evt.stopPropagation()
@@ -146,10 +148,23 @@ export default defineComponent({
             shareType="music"
             shareType="music"
           >
           >
             <div class={styles.shareMate}>
             <div class={styles.shareMate}>
-              <Image
-                src={titleImg.value || MusicIcon}
+              {/* <Image
+                src={
+                  data.titleImg +
+                    `@base@tag=imgScale&h=80&w=80&m=1?t=${+new Date()}` ||
+                  MusicIcon
+                }
                 round
                 round
                 class={styles.icon}
                 class={styles.icon}
+              /> */}
+              <img
+                class={styles.icon}
+                crossorigin="anonymous"
+                src={
+                  data.titleImg +
+                    `@base@tag=imgScale&h=80&w=80&m=1?t=${+new Date()}` ||
+                  MusicIcon
+                }
               />
               />
               <div class={styles.info}>
               <div class={styles.info}>
                 <h4 class="van-multi-ellipsis--l2">{data.musicSheetName}</h4>
                 <h4 class="van-multi-ellipsis--l2">{data.musicSheetName}</h4>

+ 9 - 5
src/views/video-class/video-item.tsx

@@ -14,8 +14,8 @@ interface VideoItemProps {
   lessonCount: number
   lessonCount: number
   lessonPrice: number
   lessonPrice: number
   countStudent: number
   countStudent: number
-  lessonSubjectName: string,
-  auditVersion:number
+  lessonSubjectName: string
+  auditVersion: number
 }
 }
 
 
 export default defineComponent({
 export default defineComponent({
@@ -57,12 +57,16 @@ export default defineComponent({
                 item?.username ||
                 item?.username ||
                 `游客${item?.teacherId || ''}`}
                 `游客${item?.teacherId || ''}`}
             </span>
             </span>
-            <span class={styles.viUserNum}>{item?.countStudent}人已购买</span>
+            <span class={styles.viUserNum}>
+              {item?.countStudent}人已
+              {item?.lessonPrice <= 0 && item.auditVersion !== 0 && <>购买</>}
+              {item?.lessonPrice <= 0 && item.auditVersion === 0 && <>领取</>}
+            </span>
           </div>
           </div>
           <div class={styles.viPrice}>
           <div class={styles.viPrice}>
             {item?.lessonPrice > 0 && <>¥{item?.lessonPrice}/</>}
             {item?.lessonPrice > 0 && <>¥{item?.lessonPrice}/</>}
-            {item?.lessonPrice <= 0 &&item.auditVersion!==0 &&<>¥{0}/</>}
-            {item?.lessonPrice <= 0 &&item.auditVersion===0 &&<>免费/</>}
+            {item?.lessonPrice <= 0 && item.auditVersion !== 0 && <>¥{0}/</>}
+            {item?.lessonPrice <= 0 && item.auditVersion === 0 && <>免费/</>}
             {item?.lessonCount}课时
             {item?.lessonCount}课时
           </div>
           </div>
         </div>
         </div>

+ 8 - 23
yarn.lock

@@ -2087,13 +2087,6 @@
     "domhandler" "^4.2.0"
     "domhandler" "^4.2.0"
     "entities" "^2.0.0"
     "entities" "^2.0.0"
 
 
-"dom7@^4.0.4":
-  "integrity" "sha512-DSSgBzQ4rJWQp1u6o+3FVwMNnT5bzQbMb+o31TjYYeRi05uAcpF8koxdfzeoe5ElzPmua7W7N28YJhF7iEKqIw=="
-  "resolved" "https://registry.npmmirror.com/dom7/-/dom7-4.0.4.tgz"
-  "version" "4.0.4"
-  dependencies:
-    "ssr-window" "^4.0.0"
-
 "domelementtype@^2.0.1", "domelementtype@^2.2.0":
 "domelementtype@^2.0.1", "domelementtype@^2.2.0":
   "integrity" "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A=="
   "integrity" "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A=="
   "resolved" "https://registry.npmmirror.com/domelementtype/-/domelementtype-2.2.0.tgz"
   "resolved" "https://registry.npmmirror.com/domelementtype/-/domelementtype-2.2.0.tgz"
@@ -2200,9 +2193,9 @@
   "resolved" "https://registry.npmmirror.com/es-module-lexer/-/es-module-lexer-0.9.3.tgz"
   "resolved" "https://registry.npmmirror.com/es-module-lexer/-/es-module-lexer-0.9.3.tgz"
   "version" "0.9.3"
   "version" "0.9.3"
 
 
-"esbuild-windows-64@0.13.15":
-  "integrity" "sha512-9aMsPRGDWCd3bGjUIKG/ZOJPKsiztlxl/Q3C1XDswO6eNX/Jtwu4M+jb6YDH9hRSUflQWX0XKAfWzgy5Wk54JQ=="
-  "resolved" "https://registry.npmmirror.com/esbuild-windows-64/-/esbuild-windows-64-0.13.15.tgz"
+"esbuild-darwin-64@0.13.15":
+  "integrity" "sha512-ihOQRGs2yyp7t5bArCwnvn2Atr6X4axqPpEdCFPVp7iUj4cVSdisgvEKdNR7yH3JDjW6aQDw40iQFoTqejqxvQ=="
+  "resolved" "https://registry.npmmirror.com/esbuild-darwin-64/-/esbuild-darwin-64-0.13.15.tgz"
   "version" "0.13.15"
   "version" "0.13.15"
 
 
 "esbuild@^0.13.12":
 "esbuild@^0.13.12":
@@ -2591,6 +2584,11 @@
   "resolved" "https://registry.npmmirror.com/fs.realpath/-/fs.realpath-1.0.0.tgz"
   "resolved" "https://registry.npmmirror.com/fs.realpath/-/fs.realpath-1.0.0.tgz"
   "version" "1.0.0"
   "version" "1.0.0"
 
 
+"fsevents@~2.3.2":
+  "integrity" "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA=="
+  "resolved" "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.2.tgz"
+  "version" "2.3.2"
+
 "function-bind@^1.1.1":
 "function-bind@^1.1.1":
   "integrity" "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
   "integrity" "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
   "resolved" "https://registry.npmmirror.com/function-bind/-/function-bind-1.1.1.tgz"
   "resolved" "https://registry.npmmirror.com/function-bind/-/function-bind-1.1.1.tgz"
@@ -4366,11 +4364,6 @@
   "resolved" "https://registry.npmmirror.com/split-on-first/-/split-on-first-1.1.0.tgz"
   "resolved" "https://registry.npmmirror.com/split-on-first/-/split-on-first-1.1.0.tgz"
   "version" "1.1.0"
   "version" "1.1.0"
 
 
-"ssr-window@^4.0.0", "ssr-window@^4.0.2":
-  "integrity" "sha512-ISv/Ch+ig7SOtw7G2+qkwfVASzazUnvlDTwypdLoPoySv+6MqlOV10VwPSE6EWkGjhW50lUmghPmpYZXMu/+AQ=="
-  "resolved" "https://registry.npmmirror.com/ssr-window/-/ssr-window-4.0.2.tgz"
-  "version" "4.0.2"
-
 "strict-uri-encode@^2.0.0":
 "strict-uri-encode@^2.0.0":
   "integrity" "sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ=="
   "integrity" "sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ=="
   "resolved" "https://registry.npmmirror.com/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz"
   "resolved" "https://registry.npmmirror.com/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz"
@@ -4469,14 +4462,6 @@
   "resolved" "https://registry.npmmirror.com/svg-tags/-/svg-tags-1.0.0.tgz"
   "resolved" "https://registry.npmmirror.com/svg-tags/-/svg-tags-1.0.0.tgz"
   "version" "1.0.0"
   "version" "1.0.0"
 
 
-"swiper@^8.3.1":
-  "integrity" "sha512-oASYsulsERlbQVTZ8FjlTDJSN4YZwhp+AkvepOj8EOhgpvxzKoMpWpBPrk7ypkMioQUx6x2NPvkRU0Qv9mpS0A=="
-  "resolved" "https://registry.npmmirror.com/swiper/-/swiper-8.3.1.tgz"
-  "version" "8.3.1"
-  dependencies:
-    "dom7" "^4.0.4"
-    "ssr-window" "^4.0.2"
-
 "systemjs@^6.12.1":
 "systemjs@^6.12.1":
   "integrity" "sha512-hqTN6kW+pN6/qro6G9OZ7ceDQOcYno020zBQKpZQLsJhYTDMCMNfXi/Y8duF5iW+4WWZr42ry0MMkcRGpbwG2A=="
   "integrity" "sha512-hqTN6kW+pN6/qro6G9OZ7ceDQOcYno020zBQKpZQLsJhYTDMCMNfXi/Y8duF5iW+4WWZr42ry0MMkcRGpbwG2A=="
   "resolved" "https://registry.npmmirror.com/systemjs/-/systemjs-6.12.1.tgz"
   "resolved" "https://registry.npmmirror.com/systemjs/-/systemjs-6.12.1.tgz"