From e47c70d32e6fa7c9cb16ca19a79338ea36a83e94 Mon Sep 17 00:00:00 2001
From: zhengyiming <540361168@qq.com>
Date: 星期二, 10 六月 2025 16:38:37 +0800
Subject: [PATCH] fix: v1.4

---
 apps/taro/src/utils/file.ts                                        |   35 +++++++++++++++++
 apps/taro/src/subpackages/my/AgentRecruitment/AgentRecruitment.vue |   10 ++++
 apps/taro/src/subpackages/my/promotionQrcode/InnerPage.vue         |   14 +++++-
 apps/taro/src/hooks/router.ts                                      |    2 +
 apps/taro/src/utils/page.ts                                        |    2 
 5 files changed, 58 insertions(+), 5 deletions(-)

diff --git a/apps/taro/src/hooks/router.ts b/apps/taro/src/hooks/router.ts
index e53ba52..a7400ce 100644
--- a/apps/taro/src/hooks/router.ts
+++ b/apps/taro/src/hooks/router.ts
@@ -51,6 +51,7 @@
   const appStore = useAppStore();
   const { latestRoute } = storeToRefs(appStore);
   const { blLifeRecharge } = useLifeRechargeContext();
+  const system = useSystemStore();
 
   const router = Taro.useRouter();
 
@@ -58,6 +59,7 @@
   console.log('router: params', router, blLifeRecharge.accountModel.channlesNum);
 
   Taro.useTabItemTap((item) => {
+    system.setTabIndex(item.index as any);
     Taro.reLaunch({
       url: pathAddExtraParam(item.pagePath, { channelId: blLifeRecharge.accountModel.channlesNum }),
       success() {
diff --git a/apps/taro/src/subpackages/my/AgentRecruitment/AgentRecruitment.vue b/apps/taro/src/subpackages/my/AgentRecruitment/AgentRecruitment.vue
index 0186594..9abbda6 100644
--- a/apps/taro/src/subpackages/my/AgentRecruitment/AgentRecruitment.vue
+++ b/apps/taro/src/subpackages/my/AgentRecruitment/AgentRecruitment.vue
@@ -41,6 +41,8 @@
 import { Image } from '@tarojs/components';
 import Taro from '@tarojs/taro';
 import { useLifeRechargeContext } from '@life-payment/core-vue';
+import { useUser } from '@/hooks';
+import { isH5, isInWeChat } from '@/utils/env';
 
 defineOptions({
   name: 'AgentRecruitment',
@@ -49,10 +51,16 @@
 const router = Taro.useRouter();
 
 const promoterIdNumber = router.params?.promoterIdNumber ?? '';
+//寰俊缃戦〉鎺堟潈code 闇�瑕侀噸瀹氬悜鑾峰彇 浼氬鑷村娆¤Е鍙憃nMounted
+const code = router.params.code ?? '';
 
 onMounted(() => {
   if (promoterIdNumber) {
-    setClickCount();
+    if (isH5 && isInWeChat) {
+      if (!code) setClickCount();
+    } else {
+      setClickCount();
+    }
   }
 });
 
diff --git a/apps/taro/src/subpackages/my/promotionQrcode/InnerPage.vue b/apps/taro/src/subpackages/my/promotionQrcode/InnerPage.vue
index 32a7724..67bcd46 100644
--- a/apps/taro/src/subpackages/my/promotionQrcode/InnerPage.vue
+++ b/apps/taro/src/subpackages/my/promotionQrcode/InnerPage.vue
@@ -22,6 +22,8 @@
 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',
@@ -58,9 +60,15 @@
 );
 
 function downloadQrcode() {
-  Taro.saveImageToPhotosAlbum({
-    filePath: link.value,
-  });
+  // Taro.saveImageToPhotosAlbum({
+  //   filePath: link.value,
+  // });
+  if (isInAlipay) {
+    Message.warning('鍙湪娴忚鍣ㄦ墦寮�姝ょ綉椤典笅杞芥枃浠躲��');
+  } else {
+    // TODO 杩橀渶瑕佸仛灏忕▼搴忎笅杞界殑鍏煎
+    downloadBase64File(link.value, '鎺ㄥ箍浜岀淮鐮�');
+  }
 }
 </script>
 
diff --git a/apps/taro/src/utils/file.ts b/apps/taro/src/utils/file.ts
index 34a5b36..c959ae4 100644
--- a/apps/taro/src/utils/file.ts
+++ b/apps/taro/src/utils/file.ts
@@ -86,3 +86,38 @@
     return fileName;
   });
 }
+
+export function downloadBase64File(base64Data: string, filename: string) {
+  // 灏哹ase64鏁版嵁鍒嗗壊锛岃幏鍙杕ime-type
+  const [, mime, b64data] = base64Data.match(/^data:([^;]+);base64,(.+)$/);
+
+  // 瑙g爜base64鏁版嵁
+  const byteString = atob(b64data);
+  const arrayBuffer = new ArrayBuffer(byteString.length);
+  const intArray = new Uint8Array(arrayBuffer);
+
+  for (let i = 0; i < byteString.length; i++) {
+    intArray[i] = byteString.charCodeAt(i);
+  }
+
+  // 鍒涘缓Blob瀵硅薄
+  const blob = new Blob([intArray], { type: mime });
+
+  //@ts-ignore
+  if (typeof navigator !== 'undefined' && navigator.msSaveOrOpenBlob) {
+    //@ts-ignore 鍏煎IE
+    navigator.msSaveOrOpenBlob(blob, filename);
+  } else {
+    // 鍒涘缓涓�涓复鏃剁殑a鏍囩鐢ㄤ簬瑙﹀彂涓嬭浇
+    const a = document.createElement('a');
+    const url = window.URL.createObjectURL(blob);
+    a.href = url;
+    a.download = filename; // 璁剧疆涓嬭浇鍚庣殑鏂囦欢鍚�
+    document.body.appendChild(a);
+    a.click(); // 瑙﹀彂涓嬭浇
+    document.body.removeChild(a);
+    setTimeout(() => {
+      window.URL.revokeObjectURL(url); // 娓呴櫎鍒涘缓鐨勫璞RL
+    }, 0);
+  }
+}
diff --git a/apps/taro/src/utils/page.ts b/apps/taro/src/utils/page.ts
index 1d45c4e..b9cfaba 100644
--- a/apps/taro/src/utils/page.ts
+++ b/apps/taro/src/utils/page.ts
@@ -3,10 +3,10 @@
 import { useSystemStoreWithOut } from '@/stores/modules/system';
 import { query2object, object2query } from '@life-payment/utils';
 import { blLifeRecharge } from './blLifeRecharge';
+import { isInAlipay } from '@/utils/env';
 
 export function goBack(delta = 1) {
   const pages = Taro.getCurrentPages();
-
   const systemStore = useSystemStoreWithOut();
 
   if (pages.length > 1) {

--
Gitblit v1.9.1