/** * vuex 用户状态管理模块 */ let lifeData = uni.getStorageSync('lifeData') || {}; let $user = lifeData.$user || {}; export default { // 通过添加 namespaced: true 的方式使其成为带命名空间的模块 namespaced: true, /** * vuex的基本数据,用来存储变量 */ state: { /** * 登录用户信息 * js调用示例 * (推荐) vk.getVuex('$user.userInfo'); * 或 vk.vuex.get('$user.userInfo'); * 页面上直接使用示例 * {{ vk.getVuex('$user.userInfo') }} * js更新示例 * vk.setVuex('$user.userInfo.avatar', avatar); */ userInfo: $user.userInfo || {}, agentInfo: $user.agentInfo || {}, permission:$user.permission || [], history: $user.history || { lastEditAvatarTime: null, // 最后修改头像时间 lastEditUserInfoTime: null, // 最后用户主动更新资料时间,昵称、头像 lastInitAgentDataTime: 0, // 最后一次更新经纪人数据(推荐人数等) lastGetUnreadMsgTime: 0 , // 最后一次请求未读消息数量 lastRefreshTime: 0, // 最后一次刷新列表时间 }, dataInfo: $user.dataInfo || { recommendNum: 0, visitedNum: 0, buyNum: 0, totalCommission: 0, unreadMsgNum: 0 } }, /** * 从基本数据(state)派生的数据,相当于state的计算属性 */ getters: { /** * 获取用户信息(使用计算属性获取) * js调用示例 * vk.vuex.getters('$user/getUserInfo'); * 或 * that.$store.getters['$user/getUserInfo']; */ getUserInfo: (state) => { return state.userInfo; } }, /** * 提交更新数据的方法,必须是同步的(如果需要异步使用action)。 * 每个 mutation 都有一个字符串的 事件类型 (type) 和 一个 回调函数 (handler)。 * 回调函数就是我们实际进行状态更改的地方,并且它会接受 state 作为第一个参数,提交载荷作为第二个参数。 */ mutations: { }, /** * 和mutation的功能大致相同,不同之处在于 ==》 * 1. Action 提交的是 mutation,而不是直接变更状态。 * 2. Action 可以包含任意异步操作。 */ actions: { } }