From 80a3aa28c4e66df31c6032e3098aeb376198f2d7 Mon Sep 17 00:00:00 2001 From: qingyiay <2386314947@qq.com> Date: 星期五, 30 六月 2023 16:51:39 +0800 Subject: [PATCH] 验质功能增加逻辑修复错误 --- store/index.js | 69 +++++++++++++++++++++++++++++++++- 1 files changed, 67 insertions(+), 2 deletions(-) diff --git a/store/index.js b/store/index.js index f6dcee1..d498e51 100644 --- a/store/index.js +++ b/store/index.js @@ -1,5 +1,6 @@ import Vue from 'vue' import Vuex from 'vuex' +import { webSocketUrl } from '@/api/request.js' Vue.use(Vuex) // 鍔ㄦ�佸簳閮╰abbar @@ -71,6 +72,12 @@ weight: '', userId: '' }, + globalisconnect: true, + globalisUploadimg: false, + globalisLogin: false, + socketTask: null, + websocketData: null, // 瀛樻斁浠庡悗绔帴鏀跺埌鐨剋ebsocket鏁版嵁 + globalIntervalId: null, }, mutations: { lengthchange(state, payload) { @@ -82,7 +89,7 @@ // 璁剧疆搴曢儴鏍� setUserTabbar(state, roleType) { state.roleType = roleType - if (roleType == 1) { + if (roleType == 1 || roleType == 4) { state.userTabbar = userRoleTabbar.first uni.setStorageSync('userTabbar', state.userTabbar) } else if (roleType == 2 || roleType == 3) { @@ -110,8 +117,66 @@ }, changeuserInfo(state, payload) { state.globaluserInfo = payload + }, + // 鏀圭増鍏ㄥ眬websocket鐘舵�� + changeisconnect(state, payload) { + state.globalisconnect = payload + }, + changeisUploadimg(state, payload) { + state.globalisUploadimg = payload + }, + changeisLogin(state, payload) { + state.globalisLogin = payload + console.log(state.globalisLogin, '鍏ㄥ眬鐧诲綍鐘舵�佹敼鍙樹簡') + }, + setWebsocketData(state, data) { + state.websocketData = data + } + }, + actions: { + websocketInit({ state, dispatch, commit }) { + let wsUrl = `${webSocketUrl}?access_token=${uni.getStorageSync('token')}` + state.socketTast = uni.connectSocket({ + url: wsUrl, + header: { CLIENT_TOC: 'Y' }, + complete: res => { + console.log(res, 'socket缁撴灉') + if (res.errMsg === 'connectSocket:ok') { + commit('changeisconnect', true) + } + } + }) + state.socketTast.onOpen(() => dispatch('websocketOnOpen')) + state.socketTast.onMessage(result => dispatch('websocketOnMessage', result.data)) + state.socketTast.onClose(e => dispatch('websocketOnClose', e)) + state.socketTast.onError(e => dispatch('websocketOnError')) + }, + websocketOnOpen({ state, commit }) { + console.log('onOpen') + state.globalIntervalId = setInterval(() => { + state.socketTast.send({ + data: JSON.stringify({ type: 'ping' }), + success(e) { + console.log(e, '鍙戦�佸績璺虫垚鍔�') + } + }) + }, 30000) + }, + websocketOnClose({ state, commit }) { + if (!state.socketTast) return + state.socketTast.close(e => { + commit('changeisconnect', false) + }) + console.log('ws鍏抽棴') + }, + websocketOnError(e) { + console.log('socket鎶ラ敊', e) + }, + // 鎺ユ敹鏁版嵁 + websocketOnMessage({ state, commit }, result) { + commit('setWebsocketData', result) } } }) -export default store +export default store \ No newline at end of file -- Gitblit v1.9.1