store/modules/user.js
import $U from '@/common/free-lib/util.js'; import $H from '@/common/free-lib/request.js'; export default { state: { user: false, apply: { rows: [], count: 0, }, mailList:[] }, actions: { // 登录后处理 login({ state, dispatch }, user) { // 存到状态种 state.user = user; // 存储到本地存储中 $U.setStorage('token', user.token); $U.setStorage('user', JSON.stringify(user)); $U.setStorage('user_id', user.id); // 更新角标提示 dispatch('updateMailBadge'); }, // 退出登录 logout({ state }) { // 清除登录状态 state.user = false; // 清除本地存储数据 $U.removeStorage('token'); $U.removeStorage('user'); $U.removeStorage('user_id'); // 跳转到登录页 uni.reLaunch({ url: '/pages/common/login/login' }) }, // 初始化登录状态 initLogin({ state, dispatch }) { // 拿到存储的数据 let user = $U.getStorage('user'); if (user) { // 初始化登录状态 state.user = JSON.parse(user); // 连接socket let socket = uni.connectSocket({ url:'ws://xxx:7001/ws', complete:()=>{} }) // 监听连接成功 socket.onOpen(()=>{ console.log('socket已连接') }) // 监听接收信息 socket.onMessage((res)=>{ console.log('监听接收信息',res) }) // 监听断开 socket.onClose(()=>{ console.log('socket已断开') }) // 监听错误 socket.onError(()=>{ console.log('连接错误') }) // 获取离线信息 // 获取好友申请列表 dispatch('getApply'); } }, // 获取好友申请列表 getApply({ state, dispatch }, page = 1) { $H.get('/apply/' + page).then(res => { if (page === 1) { state.apply = res } else { // 下拉刷新 state.apply.rows = [...state.apply.rows, ...res.rows] state.apply.count = res.count } // 更新通讯录角标提示 dispatch('updateMailBadge'); }); }, // 更新通讯录角标提示 updateMailBadge({ state }) { let count = state.apply.count > 99 ? '99+' : state.apply.count.toString(); console.log(state.apply.count); if (state.apply.count > 0) { return uni.setTabBarBadge({ index: 1, text: count }) } uni.removeTabBarBadge({ index: 1 }) }, // 获取通讯录列表 getMailList({state}){ $H.get('/friend/list').then(res=>{ state.mailList = res.rows.newList ? res.rows.newList : []; }) } }, }