// import { getStorage, setStorage, getBrowserLang } from "@/utils/utis"; import { Toast } from "vant"; import { _register, _info, perpetualContracts } from "@/API/user.api"; import { SET_USERINFO, GET_USERINFO, SET_OUT, CONNECT_WALLET, SET_STATUS, SET_CONFIG, GET_DAPPUSERINFO, } from "@/store/const.store"; import { _getBalance } from "@/API/trade.api"; import i18n from "@/i18n"; import { _getIdentify } from "@/API/fund.api"; export default { namespaced: true, state: { status: 0, // 状态 kyc: "", gasObj: {}, // userInfo: { usercode: "", // token: "", // 登录token username: "", perpetual_contracts_status: 0, account: "", // 钱包地址 }, }, getters: { mingStatus: (state) => state.status, isToken: (state) => state.token, userInfo: (state) => state.userInfo, kyc: (state) => state.kyc, }, mutations: { // SET_GAS_OBJ(state,gasObj){ // state.gasObj=gasObj // }, [SET_STATUS](state, status) { // 质押状态 state.status = status; }, [SET_USERINFO](state, info) { console.log("用户信息", info); state.userInfo = { ...state.userInfo, ...info }; }, [SET_OUT](state) { // 退出 state.userInfo = {}; }, [SET_CONFIG](state, status) { // console.log('statusstatus',status) state.userInfo.perpetual_contracts_status = status; }, SET_UERS_KYC(state, data) { state.kyc = data; }, }, actions: { // actionsGasObj({commit},data){ // commit("SET_GAS_OBJ", data); // }, actionsLogin({ commit }, data) { // commit("SET_UESR_OBJ", data); }, async [GET_USERINFO]({ commit }, accounts) { // 发送请求获取信息 commit(SET_USERINFO, accounts); // 登陆 let data = await _info(); commit(SET_USERINFO, data); // 用户信息 data = await _getBalance(); commit(SET_USERINFO, { balance: data.money }); // 余额 }, async GET_UERS_KYC({ commit, state }) { const data = await _getIdentify().catch((err) => Promise.reject(err)); console.log("data222222222222", data.status); // let status = data.perpetual_contracts commit("SET_UERS_KYC", data.status); }, async [SET_CONFIG]({ commit, state }) { const data = await perpetualContracts().catch((err) => Promise.reject(err) ); // console.log('data222222222222',data) let status = data.perpetual_contracts; commit(SET_CONFIG, status); }, async [GET_DAPPUSERINFO]({ commit }, accounts) { // 发送请求获取信息 // console.log('accounts', accounts) Toast.loading({ duration: 0, forbidClick: true }); commit(SET_USERINFO, { account: accounts[0] }); // 钱包地址 let data = await _register(accounts[0], localStorage.getItem("usercode")); commit(SET_USERINFO, data); // 登陆 data = await _info(); commit(SET_USERINFO, data); // 用户信息 data = await _getBalance(); commit(SET_USERINFO, { balance: data.money }); // 余额 }, async [CONNECT_WALLET]({ commit, state, dispatch }, type) { Toast.loading({ duration: 0, forbidClick: true }); setTimeout(async () => { const eth = window.ethereum; if (eth) { // 钱包环境 const accounts = await eth .request({ method: "eth_requestAccounts" }) .catch((err) => { const { code } = err; if (code === 4001) { Toast.fail(i18n.t("您拒绝了链接")); return; } if (code === "ECONNABORTED") { this.$toast(this.$t("网络超时!")); return; } }); if (accounts) { if (!state.userInfo.token) { await dispatch(GET_DAPPUSERINFO, accounts); Toast.success(i18n.t("连接钱包成功")); return false; } else { if (type == "connect") { await dispatch(GET_DAPPUSERINFO, accounts); Toast.success(i18n.t("连接钱包成功")); } else { Toast.success(i18n.t("刷新完成")); } } // await dispatch(GET_DAPPUSERINFO, accounts) // Toast.success(i18n.t('连接钱包成功')) eth.on("accountsChanged", async (accounts) => { // 登录变了 commit(SET_OUT); if (!accounts.length) { Toast.fail(i18n.t("已断开钱包连接")); } else { // 重新请求数据 await dispatch(GET_DAPPUSERINFO, accounts); const data = await _checkStatus(); commit(SET_STATUS, data.status); Toast.success(i18n.t("钱包切换成功")); } }); } else { // Toast('连接钱包异常') } } else { Toast.fail(i18n.t("请先安装钱包插件")); } }, 300); }, }, };