|  | @@ -1,5 +1,5 @@
 | 
	
		
			
				|  |  |  import { Button, Cell, Swipe, SwipeItem, Toast } from 'vant'
 | 
	
		
			
				|  |  | -import { defineComponent } from 'vue'
 | 
	
		
			
				|  |  | +import { defineComponent, PropType } from 'vue'
 | 
	
		
			
				|  |  |  import styles from './index.module.less'
 | 
	
		
			
				|  |  |  import { postMessage, promisefiyPostMessage } from '@/helpers/native-message'
 | 
	
		
			
				|  |  |  import html2canvas from 'html2canvas'
 | 
	
	
		
			
				|  | @@ -15,6 +15,11 @@ export default defineComponent({
 | 
	
		
			
				|  |  |      shareUrl: {
 | 
	
		
			
				|  |  |        type: String,
 | 
	
		
			
				|  |  |        default: ''
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    shareType: {
 | 
	
		
			
				|  |  | +      // 分享类型
 | 
	
		
			
				|  |  | +      type: String as PropType<'' | 'video' | 'music' | 'live'>,
 | 
	
		
			
				|  |  | +      default: ''
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |    },
 | 
	
		
			
				|  |  |    data() {
 | 
	
	
		
			
				|  | @@ -33,60 +38,64 @@ export default defineComponent({
 | 
	
		
			
				|  |  |        // })
 | 
	
		
			
				|  |  |        // this.codeUrl = shortRes.data
 | 
	
		
			
				|  |  |        this.codeUrl = this.shareUrl
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -      this.$nextTick(async () => {
 | 
	
		
			
				|  |  | -        const container: any = document.getElementById(
 | 
	
		
			
				|  |  | -          'share-preview-container'
 | 
	
		
			
				|  |  | -        )
 | 
	
		
			
				|  |  | -        html2canvas(container, { allowTaint: true, useCORS: true }).then(
 | 
	
		
			
				|  |  | -          canvas => {
 | 
	
		
			
				|  |  | -            const url = canvas.toDataURL('image/png')
 | 
	
		
			
				|  |  | -            this.image = url
 | 
	
		
			
				|  |  | -          }
 | 
	
		
			
				|  |  | -        )
 | 
	
		
			
				|  |  | -      })
 | 
	
		
			
				|  |  |      } catch {
 | 
	
		
			
				|  |  |        //
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |    },
 | 
	
		
			
				|  |  |    methods: {
 | 
	
		
			
				|  |  |      async onSaveImg() {
 | 
	
		
			
				|  |  | -      const res = await promisefiyPostMessage({
 | 
	
		
			
				|  |  | -        api: 'savePicture',
 | 
	
		
			
				|  |  | -        content: {
 | 
	
		
			
				|  |  | -          base64: this.image
 | 
	
		
			
				|  |  | +      const container: any = document.getElementById('share-preview-container')
 | 
	
		
			
				|  |  | +      html2canvas(container, { allowTaint: true, useCORS: true }).then(
 | 
	
		
			
				|  |  | +        async canvas => {
 | 
	
		
			
				|  |  | +          const url = canvas.toDataURL('image/png')
 | 
	
		
			
				|  |  | +          this.image = url
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +          const res = await promisefiyPostMessage({
 | 
	
		
			
				|  |  | +            api: 'savePicture',
 | 
	
		
			
				|  |  | +            content: {
 | 
	
		
			
				|  |  | +              base64: this.image
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +          })
 | 
	
		
			
				|  |  | +          if (res?.content?.status === 'success') {
 | 
	
		
			
				|  |  | +            Toast.success('保存成功')
 | 
	
		
			
				|  |  | +          } else {
 | 
	
		
			
				|  |  | +            Toast.fail('保存失败')
 | 
	
		
			
				|  |  | +          }
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | -      })
 | 
	
		
			
				|  |  | -      if (res?.content?.status === 'success') {
 | 
	
		
			
				|  |  | -        Toast.success('保存成功')
 | 
	
		
			
				|  |  | -      } else {
 | 
	
		
			
				|  |  | -        Toast.fail('保存失败')
 | 
	
		
			
				|  |  | -      }
 | 
	
		
			
				|  |  | +      )
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  |      async shareShow() {
 | 
	
		
			
				|  |  | -      const image = this.image
 | 
	
		
			
				|  |  | -      if (image) {
 | 
	
		
			
				|  |  | -        postMessage(
 | 
	
		
			
				|  |  | -          {
 | 
	
		
			
				|  |  | -            api: 'shareAchievements',
 | 
	
		
			
				|  |  | -            content: {
 | 
	
		
			
				|  |  | -              title: '我在酷乐秀使用小酷Ai练习乐器',
 | 
	
		
			
				|  |  | -              desc: '酷乐秀小酷Ai帮助我自主练习乐器,真的太好用啦!每天都要坚持练习哦~',
 | 
	
		
			
				|  |  | -              image,
 | 
	
		
			
				|  |  | -              video: '',
 | 
	
		
			
				|  |  | -              type: 'image'
 | 
	
		
			
				|  |  | -            }
 | 
	
		
			
				|  |  | -          },
 | 
	
		
			
				|  |  | -          (res: any) => {
 | 
	
		
			
				|  |  | -            if (res && res.content) {
 | 
	
		
			
				|  |  | -              Toast(
 | 
	
		
			
				|  |  | -                res.content.message ||
 | 
	
		
			
				|  |  | -                  (res.content.status ? '分享成功' : '分享失败')
 | 
	
		
			
				|  |  | -              )
 | 
	
		
			
				|  |  | -            }
 | 
	
		
			
				|  |  | +      const container: any = document.getElementById('share-preview-container')
 | 
	
		
			
				|  |  | +      html2canvas(container, { allowTaint: true, useCORS: true }).then(
 | 
	
		
			
				|  |  | +        async canvas => {
 | 
	
		
			
				|  |  | +          const url = canvas.toDataURL('image/png')
 | 
	
		
			
				|  |  | +          this.image = url
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +          const image = this.image
 | 
	
		
			
				|  |  | +          if (image) {
 | 
	
		
			
				|  |  | +            postMessage(
 | 
	
		
			
				|  |  | +              {
 | 
	
		
			
				|  |  | +                api: 'shareAchievements',
 | 
	
		
			
				|  |  | +                content: {
 | 
	
		
			
				|  |  | +                  title: '我在酷乐秀使用小酷Ai练习乐器',
 | 
	
		
			
				|  |  | +                  desc: '酷乐秀小酷Ai帮助我自主练习乐器,真的太好用啦!每天都要坚持练习哦~',
 | 
	
		
			
				|  |  | +                  image,
 | 
	
		
			
				|  |  | +                  video: '',
 | 
	
		
			
				|  |  | +                  type: 'image'
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +              },
 | 
	
		
			
				|  |  | +              (res: any) => {
 | 
	
		
			
				|  |  | +                if (res && res.content) {
 | 
	
		
			
				|  |  | +                  Toast(
 | 
	
		
			
				|  |  | +                    res.content.message ||
 | 
	
		
			
				|  |  | +                      (res.content.status ? '分享成功' : '分享失败')
 | 
	
		
			
				|  |  | +                  )
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +              }
 | 
	
		
			
				|  |  | +            )
 | 
	
		
			
				|  |  |            }
 | 
	
		
			
				|  |  | -        )
 | 
	
		
			
				|  |  | -      }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +      )
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |    },
 | 
	
		
			
				|  |  |    render() {
 | 
	
	
		
			
				|  | @@ -94,7 +103,7 @@ export default defineComponent({
 | 
	
		
			
				|  |  |        <>
 | 
	
		
			
				|  |  |          {this.codeUrl && (
 | 
	
		
			
				|  |  |            <>
 | 
	
		
			
				|  |  | -            <div class={styles.shareContainer}>
 | 
	
		
			
				|  |  | +            <div class={styles.shareContainer} id="share-preview-container">
 | 
	
		
			
				|  |  |                <Swipe showIndicators={false} loop={false}>
 | 
	
		
			
				|  |  |                  <SwipeItem>
 | 
	
		
			
				|  |  |                    <ShareItem teacherId={this.teacherId} shareUrl={this.codeUrl}>
 |