wujingjing
2025-04-09 dd58c1d3a27ba48a5df050aab7c586bb9b988914
src/stores/global.ts
@@ -10,6 +10,7 @@
import { handleAfterLogin } from '../layout/component/login/login';
import { isShowLogin } from './chatRoom';
import { PostLogin, userBindingWechat } from '../api/ai/user';
import emitter from '../utils/mitt';
/**
 * 连接消息同步服务
 * @returns
@@ -63,6 +64,7 @@
export const checkWechatLogin = async (wxcode: string) => {
   isShowLogin.value = false;
   Local.set('isWechatLogin', true);
   const loadingInstance = ElLoadingService({
      // text: '加载中...',
      target: '.layout-parent',
@@ -74,20 +76,27 @@
   });
   if (res?.json_ok) {
      handleAfterLogin(res, false);
      Local.remove('isWechatLogin');
      // 使用新地址替换当前页面,移除微信登录参数
      // const newUrl = window.location.href.split('?')[0];
      // window.history.replaceState({}, '', SERVE_URL);
      window.location.href = SERVE_URL;
      // window.location.reload();
   } else {
      res?.json_msg && ElMessage.error(res?.json_msg);
      isShowLogin.value = true;
      // isShowLogin.value = true;
      Local.set('wechatLoginMsgInfo', {
         type: 'error',
         value: res?.json_msg ?? '登录失败,请检查是否已绑定微信',
      });
      window.location.href = SERVE_URL;
   }
};
export const handleBindWechat = async (wxcode: string) => {
   const userInfo = Local.get(userInfoKey);
   const loadingInstance = ElLoadingService({
      // text: '加载中...',
      target: '.layout-parent',
@@ -99,11 +108,21 @@
      loadingInstance.close();
   });
   if (res?.json_ok) {
      window.location.href = SERVE_URL;
      ElMessage.success('绑定成功');
      const userInfo = Local.get(userInfoKey);
      Local.set(userInfoKey, {
         ...userInfo,
         isBindWechat: true,
         wechatNickname:res.json_url
      });
      setTimeout(() => {
         window.location.href = SERVE_URL;
      }, 700);
   } else {
      ElMessage.error(res?.json_msg ?? '绑定失败');
      setTimeout(() => {
         window.location.href = SERVE_URL;
      }, 2000);
   }
};
@@ -117,3 +136,36 @@
      handleBindWechat(result.wxcode);
   }
};
/**
 * 返回一个对象,给 parent 调用
 * 此对象包含多个函数
 * @returns
 */
const childCallObj = {
   /** @description 测试函数 */
   test: (msg: string) => {
      console.log('test 函数来自 child', msg);
   },
   execute: (obj: any) => {
      console.log('execute 函数来自 child', obj);
   },
};
export class ParentRegister {
   static notify = null;
   static setRegisterFunc() {
      if (!window.parent) return;
      (window as any).registerNotifyFunction = (notifyFunc: any) => {
         ParentRegister.notify = notifyFunc;
         return childCallObj;
      };
   }
   static updateChildCallObj(key:string,callback:Function) {
      childCallObj[key] = callback;
   }
}
window.callObj = childCallObj;