From fc3b818f35aae344350dfb59551db257f261c580 Mon Sep 17 00:00:00 2001
From: xuefei <564615061@qq.cm>
Date: 星期日, 02 七月 2023 11:53:26 +0800
Subject: [PATCH] bug:外购净重不对

---
 store/index.js |   64 ++++++++++++++++++++++++++++++--
 1 files changed, 60 insertions(+), 4 deletions(-)

diff --git a/store/index.js b/store/index.js
index 72a6b9c..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,8 +72,12 @@
 			weight: '',
 			userId: ''
 		},
-		globalisconnect: false,
-		globalisUploadimg: false
+		globalisconnect: true,
+		globalisUploadimg: false,
+		globalisLogin: false,
+		socketTask: null,
+		websocketData: null, // 瀛樻斁浠庡悗绔帴鏀跺埌鐨剋ebsocket鏁版嵁
+		globalIntervalId: null,
 	},
 	mutations: {
 		lengthchange(state, payload) {
@@ -84,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) {
@@ -119,8 +124,59 @@
 		},
 		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