From 21fb37c7162d5b47a14d6438870377c85fcc0b52 Mon Sep 17 00:00:00 2001 From: qingyiay <2386314947@qq.com> Date: 星期六, 07 十月 2023 10:23:21 +0800 Subject: [PATCH] 修改装卸员页面 调整websocket逻辑 --- store/index.js | 337 ++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 316 insertions(+), 21 deletions(-) diff --git a/store/index.js b/store/index.js index 5669602..bdb23b7 100644 --- a/store/index.js +++ b/store/index.js @@ -1,33 +1,59 @@ import Vue from 'vue' import Vuex from 'vuex' +import { webSocketUrl } from '@/api/request.js' Vue.use(Vuex) // 鍔ㄦ�佸簳閮╰abbar const userRoleTabbar = { first: [{ - pagePath: "pages/tabbar-page/index-tabbar/index-tabbar", - iconPath: "../../static/tabBar-icon/Gfayun.png", - selectedIconPath: "../../static/tabBar-icon/Bfayun1.png", - text: "棣栭〉" + pagePath: 'pages/tabbar-page/index-tabbar/index-tabbar', + iconPath: '../../static/tabBar-icon/home.png', + selectedIconPath: '../../static/tabBar-icon/homeblue.png', + text: '棣栭〉' }, { - pagePath: "pages/tabbar-page/myPage-tabbar/myPage-tabbar", - iconPath: "../../static/tabBar-icon/Gmine10.png", - selectedIconPath: "../../static/tabBar-icon/Bmine57.png", - text: "鎴戠殑" + pagePath: 'pages/customer-page/customer-my/faYunstatistics/faYunstatistics', + iconPath: '../../static/tabBar-icon/statistics.png', + selectedIconPath: '../../static/tabBar-icon/statisticsactive.png', + text: '缁熻' + }, + { + pagePath: 'pages/tabbar-page/myPage-tabbar/myPage-tabbar', + iconPath: '../../static/tabBar-icon/Gmine10.png', + selectedIconPath: '../../static/tabBar-icon/Bmine57.png', + text: '鎴戠殑' } ], second: [{ - pagePath: "pages/tabbar-page/index-tabbar/index-tabbar", - iconPath: "../../static/tabBar-icon/Ghome.png", - selectedIconPath: "../../static/tabBar-icon/Bhome.png", - text: "棣栭〉" + pagePath: 'pages/tabbar-page/index-tabbar/index-tabbar', + iconPath: '../../static/tabBar-icon/home.png', + selectedIconPath: '../../static/tabBar-icon/homeblue.png', + text: '棣栭〉' }, { - pagePath: "pages/tabbar-page/myPage-tabbar/myPage-tabbar", - iconPath: "../../static/tabBar-icon/Gmine10.png", - selectedIconPath: "../../static/tabBar-icon/Bmine57.png", - text: "鎴戠殑" + pagePath: 'pages/customer-page/customer-my/faYunstatistics/faYunstatistics', + iconPath: '../../static/tabBar-icon/statistics.png', + selectedIconPath: '../../static/tabBar-icon/statisticsactive.png', + text: '缁熻' + }, + { + pagePath: 'pages/tabbar-page/myPage-tabbar/myPage-tabbar', + iconPath: '../../static/tabBar-icon/Gmine10.png', + selectedIconPath: '../../static/tabBar-icon/Bmine57.png', + text: '鎴戠殑' + } + ], + three: [{ + pagePath: 'pages/tabbar-page/index-tabbar/index-tabbar', + iconPath: '../../static/tabBar-icon/home.png', + selectedIconPath: '../../static/tabBar-icon/homeblue.png', + text: '棣栭〉' + }, + { + pagePath: 'pages/tabbar-page/myPage-tabbar/myPage-tabbar', + iconPath: '../../static/tabBar-icon/Gmine10.png', + selectedIconPath: '../../static/tabBar-icon/Bmine57.png', + text: '鎴戠殑' } ] } @@ -35,11 +61,98 @@ state: { // 鐢ㄦ埗鐣岄潰鍒ゆ柗 userInfo: {}, - roleType: null, // 1瀹㈡埛锛�2璐т唬锛�3鍙告満 + roleType: null, // 1瀹㈡埛锛�2璐т唬锛�3鍙告満 5瑁呭嵏鍛� userTabbar: [], // 鐢ㄦ埛鎵�鍦ㄨ鑹插簳閮ㄨ彍鍗曪紝 - orderPlanDataStore: [], + // 绉伴噸鏃剁殑閲嶉噺 + globalweigh: 0, + // 娑堟伅鎺ㄩ�� + globalmessage: '', + // 鍏ㄥ眬weihousecode + globalweighHouseCode: '', + // 鍏ㄥ眬绾㈠鐘舵�� + globalinfraredStatus: false, + // 鍙告満淇敼涓汉淇℃伅 + globaluserInfo: { + phone: '', + name: '', + username: '', + type: 3, + idCard: '', + carNo: '', + carImg: '', + drivingImg: '', + axleNum: '', + weight: '', + userId: '' + }, + globalisconnect: true, + globalisUploadimg: false, + globalisLogin: false, + socketTask: null, + websocketData: null, // 瀛樻斁浠庡悗绔帴鏀跺埌鐨剋ebsocket鏁版嵁 + globalIntervalId: null, + is_open_socket: false, //閬垮厤閲嶅杩炴帴 + connectNum: 1, //閲嶈繛娆℃暟, + reconnectTimeOut: null, + // 鎵撳嵃鍑哄叆闂ㄨ瘉 涓�娆″氨鍙互鏈夋墦鍗板叆闂ㄨ瘉锛� 涓ゆ鍙互鏈夊叆闂ㄨ瘉 鍑洪棬璇� 0娆′竴寮犻兘娌℃湁 + ablePrintInduction: false, //鍏ラ棬璇� + ablePrintOut: false, //鍑洪棬璇� + driverTourImgList: ['https://mx.jzeg.cn:9096/appimg/image/tour/driver/sj1.png', + 'https://mx.jzeg.cn:9096/appimg/image/tour/driver/sj2.jpg', + 'https://mx.jzeg.cn:9096/appimg/image/tour/driver/sj3.jpg', + 'https://mx.jzeg.cn:9096/appimg/image/tour/driver/sj4.jpg', + 'https://mx.jzeg.cn:9096/appimg/image/tour/driver/sj5.jpg', + 'https://mx.jzeg.cn:9096/appimg/image/tour/driver/sj6.jpg', + 'https://mx.jzeg.cn:9096/appimg/image/tour/driver/sj7.jpg', + 'https://mx.jzeg.cn:9096/appimg/image/tour/driver/sj8.jpg', + 'https://mx.jzeg.cn:9096/appimg/image/tour/driver/sj9.jpg', + 'https://mx.jzeg.cn:9096/appimg/image/tour/driver/sj10.jpg', + 'https://mx.jzeg.cn:9096/appimg/image/tour/driver/sj11.jpg', + 'https://mx.jzeg.cn:9096/appimg/image/tour/driver/sj12.jpg', + 'https://mx.jzeg.cn:9096/appimg/image/tour/driver/sj13.jpg', + 'https://mx.jzeg.cn:9096/appimg/image/tour/driver/sj14.jpg', + 'https://mx.jzeg.cn:9096/appimg/image/tour/driver/sj15.jpg', + 'https://mx.jzeg.cn:9096/appimg/image/tour/driver/sj16.jpg', + 'https://mx.jzeg.cn:9096/appimg/image/tour/driver/sj17.jpg', + 'https://mx.jzeg.cn:9096/appimg/image/tour/driver/sj18.jpg', + 'https://mx.jzeg.cn:9096/appimg/image/tour/driver/sj19.jpg', + 'https://mx.jzeg.cn:9096/appimg/image/tour/driver/sj20.jpg', + 'https://mx.jzeg.cn:9096/appimg/image/tour/driver/sj21.jpg', + 'https://mx.jzeg.cn:9096/appimg/image/tour/driver/sj22.jpg', + 'https://mx.jzeg.cn:9096/appimg/image/tour/driver/sj23.jpg', + 'https://mx.jzeg.cn:9096/appimg/image/tour/driver/sj24.jpg', + 'https://mx.jzeg.cn:9096/appimg/image/tour/driver/sj25.jpg', + 'https://mx.jzeg.cn:9096/appimg/image/tour/driver/sj26.jpg', + 'https://mx.jzeg.cn:9096/appimg/image/tour/driver/sj27.jpg', + 'https://mx.jzeg.cn:9096/appimg/image/tour/driver/sj28.jpg', + 'https://mx.jzeg.cn:9096/appimg/image/tour/driver/sj29.jpg', + 'https://mx.jzeg.cn:9096/appimg/image/tour/driver/sj30.jpg', + 'https://mx.jzeg.cn:9096/appimg/image/tour/driver/sj31.jpg', + 'https://mx.jzeg.cn:9096/appimg/image/tour/driver/sj32.jpg', + 'https://mx.jzeg.cn:9096/appimg/image/tour/driver/sj33.jpg', + 'https://mx.jzeg.cn:9096/appimg/image/tour/driver/sj33-1.jpg', + 'https://mx.jzeg.cn:9096/appimg/image/tour/driver/sj34.jpg', + 'https://mx.jzeg.cn:9096/appimg/image/tour/driver/sj35.jpg', + 'https://mx.jzeg.cn:9096/appimg/image/tour/driver/sj36.jpg', + 'https://mx.jzeg.cn:9096/appimg/image/tour/driver/sj37.jpg', + 'https://mx.jzeg.cn:9096/appimg/image/tour/driver/sj38.jpg', + 'https://mx.jzeg.cn:9096/appimg/image/tour/driver/sj39.jpg', + 'https://mx.jzeg.cn:9096/appimg/image/tour/driver/sj40.jpg', + 'https://mx.jzeg.cn:9096/appimg/image/tour/driver/sj41.jpg', + 'https://mx.jzeg.cn:9096/appimg/image/tour/driver/sj42.jpg', + 'https://mx.jzeg.cn:9096/appimg/image/tour/driver/sj43.jpg', + 'https://mx.jzeg.cn:9096/appimg/image/tour/driver/sj44.jpg', + ], + wsgVisiable: false, //纾呮埧蹇欑寮圭獥鎺у埗 + wsgContent: '', + globalIsFirstWeighing: 1, //鏄惁鏄涓�娆′笂纾� + confirmWeighVisiable: false, //纾呮埧绠$悊纭绉伴噸瀹屾垚鎻愮ず寮圭獥 + confirmWeighContent: '' }, mutations: { + lengthchange(state, payload) { + state.fleetDriverDataLength = payload + }, setUserInfo(state, identity) { state.userInfo = userObj[identity] }, @@ -52,11 +165,193 @@ } else if (roleType == 2 || roleType == 3) { state.userTabbar = userRoleTabbar.second uni.setStorageSync('userTabbar', state.userTabbar) + } else if (roleType == 5) { + state.userTabbar = userRoleTabbar.three + uni.setStorageSync('userTabbar', state.userTabbar) } - - + }, + // 鏀瑰彉閲嶉噺 + changeWeigh(state, payload) { + state.globalweigh = payload + console.log(state.globalweigh, '鍏ㄥ眬閲嶉噺鏀瑰彉浜�') + }, + // 娑堟伅鎺ㄩ�� + pushMessage(state, payload) { + state.globalmessage = payload + }, + // 鏀瑰彉weighHouseCode + changeweighHouseCode(state, payload) { + state.globalweighHouseCode = payload + console.log(state.globalweighHouseCode, 'globalweighHouseCode鏀瑰彉浜�') + }, + // 鏀瑰彉绾㈠鐘舵�� + changeinfraredStatus(state, payload) { + state.globalinfraredStatus = payload + }, + changeuserInfo(state, payload) { + state.globaluserInfo = payload + }, + changesocketTask(state, payload) { + state.socketTask = 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 + }, + // 鏀瑰彉閲嶈繛鐘舵�� + changereconnectState(state, payload) { + state.is_open_socket = payload + }, + // 鏀瑰彉閲嶈繛娆℃暟 + changereconnectNum(state, payload) { + if (payload.isWeigh) { + state.connectNum = payload.connectNum + } else { + if (state.connectNum < 6) { + state.connectNum += payload.connectNum + } else { + state.connectNum = payload.connectNum + } + } + }, + changeablePrintInduction(state, payload) { + state.ablePrintInduction = payload + }, + changeablePrintOut(state, payload) { + state.ablePrintOut = payload + }, + changewsgVisiable(state, payload) { + state.wsgVisiable = payload + }, + changewsgContent(state, payload) { + state.wsgContent = payload + }, + changeglobalIsFirstWeighing(state, payload) { + state.globalIsFirstWeighing = payload + }, + changeconfirmWeighVisiable(state, payload) { + state.confirmWeighVisiable = payload + }, + changeconfirmWeighContent(state, payload) { + state.confirmWeighContent = payload + } + }, + actions: { + websocketInit({ state, dispatch, commit }) { + let wsUrl = `${webSocketUrl}?access_token=${uni.getStorageSync('token')}` + state.socketTask = uni.connectSocket({ + url: wsUrl, + header: { CLIENT_TOC: 'Y' }, + success: res => { + console.log(res, 'socketSuccess') + if (res.errMsg === 'connectSocket:ok') { + commit('changeisconnect', true) + commit('changereconnectState', true) + } + }, + fail: res => { + console.log(res, 'socketFail') + console.log('ws澶辫触'); + commit('changereconnectState', false) + dispatch('reconnect') + commit('changeisconnect', false) + } + }) + state.socketTask.onOpen(() => dispatch('websocketOnOpen')) + state.socketTask.onMessage(result => dispatch('websocketOnMessage', result.data)) + state.socketTask.onClose(e => dispatch('websocketOnClose', e)) + state.socketTask.onError(e => dispatch('websocketOnError', e)) + }, + websocketOnOpen({ state, commit }) { + console.log('ws鎵撳紑') + clearInterval(state.reconnectTimeOut) + clearInterval(state.globalIntervalId) + state.globalIntervalId = setInterval(() => { + state.socketTask.send({ + data: JSON.stringify({ type: 'ping' }), + success(e) { + console.log(e, '鍙戦�佸績璺虫垚鍔�') + } + }) + }, 30000) + }, + websocketOnClose({ state, commit, dispatch }, e) { + if (!state.socketTask) return + console.log('ws鍏抽棴', e) + state.socketTask.close(e => { + commit('changeisconnect', false) + }) + clearInterval(state.globalIntervalId) + clearInterval(state.reconnectTimeOut) + state.socketTask = null + commit('changereconnectState', false) + console.log(state.connectNum, state.connectNum.connectNum, '閾炬帴鏁�'); + if (state.connectNum < 6 || state.connectNum.connectNum < 6 && state.globalisLogin) { + uni.showToast({ + title: '杩炴帴澶辫触锛屾鍦ㄥ皾璇曢噸鏂拌繛鎺�', + icon: 'none' + }) + commit('changereconnectNum', { connectNum: 1, isWeigh: false }) + dispatch('reconnect') + } else if (state.connectNum >= 6 && state.globalisLogin) { + commit('changereconnectNum', { connectNum: 1, isWeigh: false }) + uni.showToast({ + title: '缃戠粶寮傚父,璇风◢鍚庨噸璇�', + icon: 'none' + }) + } else { + return + } + }, + websocketOnError({ state, commit, dispatch }, e) { + // 濡傛灉閲嶈繛鐘舵�佷负false鍒欎笉杩涜閲嶈繛锛屼负true鎵嶄細 + console.log('ws鎶ラ敊', e) + clearInterval(state.globalIntervalId) + clearInterval(state.reconnectTimeOut) + state.socketTask = null + commit('changereconnectState', false) + if (state.connectNum < 6 || state.connectNum.connectNum < 6 && state.globalisLogin) { + uni.showToast({ + title: '杩炴帴澶辫触锛屾鍦ㄥ皾璇曢噸鏂拌繛鎺�', + icon: 'none' + }) + commit('changereconnectNum', { connectNum: 1, isWeigh: false }) + dispatch('reconnect') + } else if (state.connectNum > 6 && state.globalisLogin) { + commit('changereconnectNum', { connectNum: 1, isWeigh: false }) + uni.showToast({ + title: '缃戠粶寮傚父,璇风◢鍚庨噸璇�', + icon: 'none' + }) + } else { + return + } + }, + // 鎺ユ敹鏁版嵁 + websocketOnMessage({ state, commit }, result) { + commit('setWebsocketData', result) + }, + // 閲嶆柊杩炴帴 + reconnect({ state, commit, dispatch }) { + console.log(state.is_open_socket, '閲嶆柊杩炴帴socket鐘舵��'); + clearInterval(state.globalIntervalId) + if (!state.is_open_socket && state.globalisLogin) { + state.reconnectTimeOut = setInterval(() => { + dispatch('websocketInit') + }, 5000) + } } } }) -export default store +export default store \ No newline at end of file -- Gitblit v1.9.1