refactor(store): 将用户认证相关状态移至store管理

移除组件中通过provide/inject传递的realname和userInfoWin状态,改为在store中统一管理
新增openAttest mutation处理认证流程
更新axios.js中的测试session token
This commit is contained in:
DESKTOP-RQ919RC\Pc
2025-06-30 15:00:10 +08:00
parent 8b8b6a1da3
commit b5f4966ebd
17 changed files with 441 additions and 448 deletions

View File

@@ -22,34 +22,19 @@ onMounted(() => {
});
let realname = ref(1); // 是否已经实名
let userInfoWin = ref({});
const getUserInfoWin = () => {
const checkUser = () => {
const user = window.userInfoWin;
if (!user) return;
store.state.userInfoWin = user
document.removeEventListener("getUser", checkUser);
userInfoWin.value = user;
realname.value = user.realname;
store.state.realname = user.realname;
};
document.addEventListener("getUser", checkUser);
};
const openAttest = () => {
const handleAttestClose = () => {
document.removeEventListener("closeAttest", handleAttestClose);
realname.value = window.userInfoWin?.realname;
};
// 启动认证流程时添加监听
document.addEventListener("closeAttest", handleAttestClose);
loadAttest(2);
};
provide("realname", realname);
provide("userInfoWin", userInfoWin);
provide("openAttest", openAttest);
const route = useRoute();
watch(route, (newValue, oldValue) => {

View File

@@ -50,6 +50,7 @@ import { ElLoading } from "element-plus";
import { ref, reactive, onMounted, getCurrentInstance, defineEmits, inject } from "vue";
import { useRouter, useRoute } from "vue-router";
import store from "../../store/index"
const { proxy } = getCurrentInstance();
const router = useRouter();
@@ -74,16 +75,10 @@ let housingnum = ref(0);
let isintermediary = ref(0);
let loading = ref(null); // 加载
let openAttest = inject("openAttest");
const realname = inject("realname");
const userInfoWin = inject("userInfoWin");
// 点击按钮
const ClickBtn = () => {
console.log(realname.value == 0, userInfoWin.value.uin > 0);
if (realname.value == 0 && userInfoWin.value.uin > 0) {
openAttest();
if (store.state.realname == 0 && store.state.userInfoWin?.uin > 0) {
store.commit('openAttest')
return;
}
if (identityList.value.length == 0) init();

View File

@@ -30,10 +30,23 @@ export default createStore({
intermediaryPitchValue: {}, // 中介筛选的值 全局化
locationObj: {}, // 地区数据
bannerData: {}, // 所有轮播数据
userInfoWin: {},
realname: 1, // 是否已经实名
},
getters: {},
mutations: {},
mutations: {
openAttest() {
const handleAttestClose = () => {
document.removeEventListener("closeAttest", handleAttestClose);
store.state.realname = window.userInfoWin?.realname;
};
// 启动认证流程时添加监听
document.addEventListener("closeAttest", handleAttestClose);
loadAttest(2);
},
},
actions: {},
modules: {},
plugins: [],
});
});

View File

@@ -20,7 +20,7 @@ axios.interceptors.request.use(
if (config.url != "/tenement/pc/api/user/operation" && !noMask) showFullScreenLoading()
// 开发时登录用的,可以直接替换小程序的 authorization
if (process.env.NODE_ENV !== "production") {
const miucms_session = "d5645b2afb14eb6e62763901ff977059";
const miucms_session = "nlwy6wa5rqr6csaic4u6aqb08bjmqqbg";
document.cookie = "miucms_session=" + miucms_session;
config["headers"]["authorization"] = miucms_session;
}

File diff suppressed because it is too large Load Diff

View File

@@ -46,10 +46,6 @@ import Masonry from "masonry-layout"
import store from "../../store/index"
import { set } from "nprogress"
let openAttest = inject("openAttest");
const realname = inject("realname");
const userInfoWin = inject("userInfoWin");
//路由
const router = useRouter()