From 037f138b351a5b3c8a25e6228312698b748225f6 Mon Sep 17 00:00:00 2001
From: wupengfei <834520024@qq.com>
Date: 星期五, 05 十二月 2025 13:14:33 +0800
Subject: [PATCH] fix: bug

---
 apps/bMiniApp/src/subpackages/login/loginByForm/accountLoginForm.vue |   64 +++++++++++++++++++++----------
 1 files changed, 43 insertions(+), 21 deletions(-)

diff --git a/apps/bMiniApp/src/subpackages/login/loginByForm/accountLoginForm.vue b/apps/bMiniApp/src/subpackages/login/loginByForm/accountLoginForm.vue
index 1095240..3f3fa50 100644
--- a/apps/bMiniApp/src/subpackages/login/loginByForm/accountLoginForm.vue
+++ b/apps/bMiniApp/src/subpackages/login/loginByForm/accountLoginForm.vue
@@ -43,30 +43,22 @@
       <LargeButton class="login-btn" @click="handleLogin" :loading="form.loading">鐧诲綍</LargeButton>
     </template>
 
-    <!-- <AccessOpenTypeButton
-      type="primary"
-      class="authorization-page-wechat-wrapper"
-      open-type="getPhoneNumber"
-      :access="policyChecked"
-      @noAccess="noAccess"
-      @getphonenumber="handleLogin"
-    >
-      <div class="authorization-page-wechat">鐧诲綍</div>
-    </AccessOpenTypeButton> -->
     <!-- <div class="go-register-btn" @click="goRegister">绔嬪嵆娉ㄥ唽</div> -->
   </div>
 </template>
 
 <script setup lang="ts">
 import { Message } from '@12333/utils';
+import { AccessOpenTypeButton } from '@12333/components';
 import { FormRules } from '@nutui/nutui-taro/dist/types/__VUE/form/types';
 import { LargeButton } from '@/components';
 import { useLoginedJump } from '@/hooks';
 import { useUserStore } from '@/stores/modules/user';
 import { Eye, Marshalling } from '@nutui/icons-vue-taro';
 import Taro from '@tarojs/taro';
-import { AccessOpenTypeButton } from '@12333/components';
 import * as authServices from '@12333/services/apiV2/auth';
+import { subscribeMessageTemplateIdsForB } from '@12333/constants';
+import { ButtonProps, CommonEventFunction } from '@tarojs/components';
 
 defineOptions({
   name: 'AccountLoginForm',
@@ -87,6 +79,7 @@
 const formRef = ref(null);
 const isAccount = ref(false);
 const wxMiniAppUserLoginRes = ref<API.LoginCommandCallback>();
+const loginRes = ref(null);
 
 const form = reactive({
   loading: false,
@@ -103,11 +96,7 @@
   try {
     if (props.policyChecked) {
       userStore.loginSuccess(wxMiniAppUserLoginRes.value);
-      Message.success('鐧诲綍鎴愬姛', {
-        onClosed: () => {
-          jump();
-        },
-      });
+      handleLoginSuccess();
     } else {
       noAccess();
     }
@@ -116,7 +105,6 @@
 
 async function handleLogin() {
   try {
-    let loginRes = await Taro.login();
     if (props.policyChecked) {
       const { valid } = await formRef.value.validate();
       if (valid) {
@@ -124,14 +112,15 @@
         await userStore.loginByPassword({
           userName: form.userName,
           password: form.userPassword,
-          code: loginRes.code,
+          code: loginRes.value?.code,
         });
-        jump();
+        handleLoginSuccess();
       }
     } else {
       noAccess();
     }
   } catch (error) {
+    loginRes.value = await Taro.login();
   } finally {
     form.loading = false;
   }
@@ -139,6 +128,37 @@
 
 function noAccess() {
   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 = subscribeMessageTemplateIdsForB
+        .map((id) => res.subscriptionsSetting.itemSettings[id] !== 'accept')
+        .filter(Boolean);
+    }
+    Taro.requestSubscribeMessage({
+      tmplIds: subscribeMessageTemplateIdsForB,
+      success: function (res) {
+        console.log('res: ', res);
+      },
+    });
+    console.log('setting: ', setting);
+    Message.success('鐧诲綍鎴愬姛', {
+      onClosed: () => {
+        jump();
+      },
+    });
+  } catch (error) {
+    console.log('error: ', error);
+  }
 }
 
 function goRegister() {
@@ -150,9 +170,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,
     };
@@ -166,6 +186,8 @@
     if (error?.info?.errorCode == 's401') {
       isAccount.value = false;
     }
+  } finally {
+    loginRes.value = await Taro.login();
   }
 });
 </script>

--
Gitblit v1.9.1