From 88550d6f43aece6e20c7a52b6e47aff638fb02f3 Mon Sep 17 00:00:00 2001
From: wupengfei <834520024@qq.com>
Date: 星期四, 04 十二月 2025 16:23:36 +0800
Subject: [PATCH] feat: 通知

---
 apps/underTakeMiniApp/src/subpackages/login/loginByForm/accountLoginForm.vue |   69 ++++++++++++++++++++--------------
 1 files changed, 40 insertions(+), 29 deletions(-)

diff --git a/apps/underTakeMiniApp/src/subpackages/login/loginByForm/accountLoginForm.vue b/apps/underTakeMiniApp/src/subpackages/login/loginByForm/accountLoginForm.vue
index ab08c97..31411a0 100644
--- a/apps/underTakeMiniApp/src/subpackages/login/loginByForm/accountLoginForm.vue
+++ b/apps/underTakeMiniApp/src/subpackages/login/loginByForm/accountLoginForm.vue
@@ -76,6 +76,7 @@
 const formRef = ref(null);
 const isAccount = ref(false);
 const wxMiniAppUserLoginRes = ref<API.LoginCommandCallback>();
+const loginRes = ref(null);
 
 const form = reactive({
   loading: false,
@@ -88,24 +89,11 @@
   userPassword: [{ required: true, message: '璇疯緭鍏ュ瘑鐮�' }],
 });
 
-async function handleLoginByHasAccount() {
+function handleLoginByHasAccount() {
   try {
     if (props.policyChecked) {
       userStore.loginSuccess(wxMiniAppUserLoginRes.value);
-      Message.success('鐧诲綍鎴愬姛', {
-        onClosed: async () => {
-          if (!Taro.requestSubscribeMessage) {
-            await Message.confirm({ message: '浣犵殑寰俊鐗堟湰杩囦綆锛屼笉鏀寔璁㈤槄娑堟伅锛屾槸鍚︾户缁紵' });
-          }
-          await Taro.requestSubscribeMessage({
-            tmplIds: subscribeMessageTemplateIdsForU,
-            success: function (res) {
-              console.log('res: ', res);
-            },
-          });
-          jump();
-        },
-      });
+      handleLoginSuccess();
     } else {
       noAccess();
     }
@@ -114,7 +102,6 @@
 
 async function handleLogin() {
   try {
-    let loginRes = await Taro.login();
     if (props.policyChecked) {
       const { valid } = await formRef.value.validate();
       if (valid) {
@@ -122,18 +109,9 @@
         await userStore.loginByPassword({
           userName: form.userName,
           password: form.userPassword,
-          code: loginRes.code,
+          code: loginRes.value?.code,
         });
-        if (!Taro.requestSubscribeMessage) {
-          await Message.confirm({ message: '浣犵殑寰俊鐗堟湰杩囦綆锛屼笉鏀寔璁㈤槄娑堟伅锛屾槸鍚︾户缁紵' });
-        }
-        await Taro.requestSubscribeMessage({
-          tmplIds: subscribeMessageTemplateIdsForU,
-          success: function (res) {
-            console.log('res: ', res);
-          },
-        });
-        jump();
+        handleLoginSuccess();
       }
     } else {
       noAccess();
@@ -148,6 +126,37 @@
   Message.warning('璇峰厛闃呰骞跺嬀閫夊崗璁�');
 }
 
+async function handleLoginSuccess() {
+  try {
+    if (!Taro.requestSubscribeMessage) {
+      await Message.confirm({ message: '浣犵殑寰俊鐗堟湰杩囦綆锛屼笉鏀寔璁㈤槄娑堟伅锛屾槸鍚︾户缁紵' });
+    }
+    const res = await Taro.getSetting({
+      withSubscriptions: true,
+    });
+    let setting: boolean[] = [];
+    if (res.subscriptionsSetting && res.subscriptionsSetting.itemSettings) {
+      setting = subscribeMessageTemplateIdsForU
+        .map((id) => res.subscriptionsSetting.itemSettings[id] !== 'accept')
+        .filter(Boolean);
+    }
+    Taro.requestSubscribeMessage({
+      tmplIds: subscribeMessageTemplateIdsForU,
+      success: function (res) {
+        console.log('res: ', res);
+      },
+    });
+    console.log('setting: ', setting);
+    Message.success('鐧诲綍鎴愬姛', {
+      onClosed: () => {
+        jump();
+      },
+    });
+  } catch (error) {
+    console.log('error: ', error);
+  }
+}
+
 function goRegister() {
   console.log('RouterPath.registerForm: ', RouterPath.registerForm);
   Taro.navigateTo({
@@ -157,9 +166,9 @@
 
 onMounted(async () => {
   try {
-    let loginRes = await Taro.login();
+    loginRes.value = await Taro.login();
     const params: API.WxmpLoginCommand = {
-      code: loginRes.code,
+      code: loginRes.value?.code,
       type: AppLocalConfig.userType,
       enterpriseType: AppLocalConfig.enterpriseType,
     };
@@ -173,6 +182,8 @@
     if (error?.info?.errorCode == 's401') {
       isAccount.value = false;
     }
+  } finally {
+    loginRes.value = await Taro.login();
   }
 });
 </script>

--
Gitblit v1.9.1