zhengyiming
2025-06-10 e47c70d32e6fa7c9cb16ca19a79338ea36a83e94
apps/taro/src/subpackages/my/promotionQrcode/InnerPage.vue
@@ -5,21 +5,25 @@
        class="promotion-qrcode-content-qrcode"
        :style="{ backgroundImage: `url(${OssAssets.common.PromotionQrcodeCodeBG})` }"
      >
        <ShareQrcodeView :channles-num="userChannles[0]?.channlesNum" :size="150" />
        <div class="share-qrcode-view">
          <img v-if="link" :src="link" class="share-qrcode-view-img" />
        </div>
        <div class="promotion-qrcode-content-qrcode-tips">长按二维码分享好友</div>
      </div>
      <div class="promotion-qrcode-content-btn">点击下载二维码</div>
      <div class="promotion-qrcode-content-btn" @click="downloadQrcode">点击下载二维码</div>
    </div>
  </ContentView>
</template>
<script setup lang="ts">
import { ShareQrcodeView, ResultWithoutBG } from '@life-payment/components';
import { useLifeRechargeContext } from '@life-payment/core-vue';
import Taro from '@tarojs/taro';
import { useSystemStore } from '@/stores/modules/system';
import { CSSProperties, useTemplateRef } from 'vue';
import { OssAssets } from '@/constants';
import { createQrCodeImg } from '@/components/Qrcode/utils/qrcode';
import { downloadBase64File, Message } from '@/utils';
import { isInAlipay } from '@/utils/env';
defineOptions({
  name: 'InnerPage',
@@ -28,16 +32,21 @@
// const { virtualUserInfo } = useUser();
const { blLifeRecharge } = useLifeRechargeContext();
const userChannles = computed(() =>
  (blLifeRecharge.accountModel.userChannles ?? []).filter(
    (x) => x.switchType !== blLifeRecharge.constants.LifePaySwitchTypeEnum.微信小程序
  )
);
const qrcodeRef = ref();
const channlesType = ref(userChannles.value[0]?.channlesNum ?? '');
const router = Taro.useRouter();
watch(userChannles, (val) => {
  channlesType.value = val?.[0]?.channlesNum ?? '';
const promoterIdNumber = router.params?.promoterIdNumber ?? '';
// const link = computed(
//   () =>
//     `${CLIENT_ORIGIN}/subpackages/my/AgentRecruitment/AgentRecruitment?promoterIdNumber=${promoterIdNumber}`
// );
const link = computed(() => {
  const url = `${CLIENT_ORIGIN}/subpackages/my/AgentRecruitment/AgentRecruitment?promoterIdNumber=${promoterIdNumber}`;
  return createQrCodeImg(url, {
    size: 300,
  });
});
const systemStore = useSystemStore();
@@ -49,6 +58,18 @@
      backgroundImage: `url(${OssAssets.common.PromotionQrcodeContentBG})`,
    } as CSSProperties)
);
function downloadQrcode() {
  // Taro.saveImageToPhotosAlbum({
  //   filePath: link.value,
  // });
  if (isInAlipay) {
    Message.warning('可在浏览器打开此网页下载文件。');
  } else {
    // TODO 还需要做小程序下载的兼容
    downloadBase64File(link.value, '推广二维码');
  }
}
</script>
<style lang="scss">
@@ -107,5 +128,10 @@
    margin-top: -20px;
    padding: 0;
  }
  .share-qrcode-view-img {
    width: 300px;
    height: 300px;
  }
}
</style>