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

---
 apps/underTakeMiniApp/src/subpackages/login/loginByForm/accountLoginForm.vue |   52 +++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 41 insertions(+), 11 deletions(-)

diff --git a/apps/underTakeMiniApp/src/subpackages/login/loginByForm/accountLoginForm.vue b/apps/underTakeMiniApp/src/subpackages/login/loginByForm/accountLoginForm.vue
index a13ad5f..31411a0 100644
--- a/apps/underTakeMiniApp/src/subpackages/login/loginByForm/accountLoginForm.vue
+++ b/apps/underTakeMiniApp/src/subpackages/login/loginByForm/accountLoginForm.vue
@@ -55,6 +55,7 @@
 import { Eye, Marshalling } from '@nutui/icons-vue-taro';
 import Taro from '@tarojs/taro';
 import * as authServices from '@12333/services/apiV2/auth';
+import { subscribeMessageTemplateIdsForU } from '@12333/constants';
 
 defineOptions({
   name: 'AccountLoginForm',
@@ -75,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,
@@ -87,15 +89,11 @@
   userPassword: [{ required: true, message: '璇疯緭鍏ュ瘑鐮�' }],
 });
 
-async function handleLoginByHasAccount() {
+function handleLoginByHasAccount() {
   try {
     if (props.policyChecked) {
       userStore.loginSuccess(wxMiniAppUserLoginRes.value);
-      Message.success('鐧诲綍鎴愬姛', {
-        onClosed: () => {
-          jump();
-        },
-      });
+      handleLoginSuccess();
     } else {
       noAccess();
     }
@@ -104,7 +102,6 @@
 
 async function handleLogin() {
   try {
-    let loginRes = await Taro.login();
     if (props.policyChecked) {
       const { valid } = await formRef.value.validate();
       if (valid) {
@@ -112,9 +109,9 @@
         await userStore.loginByPassword({
           userName: form.userName,
           password: form.userPassword,
-          code: loginRes.code,
+          code: loginRes.value?.code,
         });
-        jump();
+        handleLoginSuccess();
       }
     } else {
       noAccess();
@@ -129,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({
@@ -138,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,
     };
@@ -154,6 +182,8 @@
     if (error?.info?.errorCode == 's401') {
       isAccount.value = false;
     }
+  } finally {
+    loginRes.value = await Taro.login();
   }
 });
 </script>

--
Gitblit v1.9.1