import Vue from 'vue' import Vuex from 'vuex' import { webSocketUrl,BaseUrl } from '@/api/request.js' // 请求相关 import { reqGet } from '@/api/index.js' Vue.use(Vuex) // 动态底部tabbar const userRoleTabbar = { first: [{ pagePath: 'pages/tabbar-page/index-tabbar/index-tabbar', //#ifdef MP-WEIXIN iconPath: '../../static/tabBar-icon/home.png', selectedIconPath: '../../static/tabBar-icon/homeblue.png', // #endif // #ifdef H5 iconPath: '/static/tabBar-icon/home.png', selectedIconPath: '/static/tabBar-icon/homeblue.png', // #endif text: '首页' }, { pagePath: 'pages/customer-page/customer-my/faYunstatistics/faYunstatistics', //#ifdef MP-WEIXIN iconPath: '../../static/tabBar-icon/statistics.png', selectedIconPath: '../../static/tabBar-icon/statisticsactive.png', // #endif // #ifdef H5 iconPath: '/static/tabBar-icon/statistics.png', selectedIconPath: '/static/tabBar-icon/statisticsactive.png', // #endif text: '统计' }, { pagePath: 'pages/tabbar-page/myPage-tabbar/myPage-tabbar', //#ifdef MP-WEIXIN iconPath: '../../static/tabBar-icon/Gmine10.png', selectedIconPath: '../../static/tabBar-icon/Bmine57.png', // #endif // #ifdef H5 iconPath: '/static/tabBar-icon/Gmine10.png', selectedIconPath: '/static/tabBar-icon/Bmine57.png', // #endif text: '我的' } ], second: [{ pagePath: 'pages/tabbar-page/index-tabbar/index-tabbar', //#ifdef MP-WEIXIN iconPath: '../../static/tabBar-icon/home.png', selectedIconPath: '../../static/tabBar-icon/homeblue.png', // #endif // #ifdef H5 iconPath: '/static/tabBar-icon/home.png', selectedIconPath: '/static/tabBar-icon/homeblue.png', // #endif text: '首页' }, { pagePath: 'pages/customer-page/customer-my/faYunstatistics/faYunstatistics', //#ifdef MP-WEIXIN iconPath: '../../static/tabBar-icon/statistics.png', selectedIconPath: '../../static/tabBar-icon/statisticsactive.png', // #endif //#ifdef H5 iconPath: '/static/tabBar-icon/statistics.png', selectedIconPath: '/static/tabBar-icon/statisticsactive.png', // #endif text: '统计' }, { pagePath: 'pages/tabbar-page/myPage-tabbar/myPage-tabbar', //#ifdef MP-WEIXIN iconPath: '../../static/tabBar-icon/Gmine10.png', selectedIconPath: '../../static/tabBar-icon/Bmine57.png', // #endif //#ifdef H5 iconPath: '/static/tabBar-icon/Gmine10.png', selectedIconPath: '/static/tabBar-icon/Bmine57.png', // #endif text: '我的' } ], three: [{ pagePath: 'pages/tabbar-page/index-tabbar/index-tabbar', //#ifdef MP-WEIXIN iconPath: '../../static/tabBar-icon/home.png', selectedIconPath: '../../static/tabBar-icon/homeblue.png', // #endif //#ifdef H5 iconPath: '/static/tabBar-icon/home.png', selectedIconPath: '/static/tabBar-icon/homeblue.png', // #endif text: '首页' }, { pagePath: 'pages/tabbar-page/myPage-tabbar/myPage-tabbar', //#ifdef MP-WEIXIN iconPath: '../../static/tabBar-icon/Gmine10.png', selectedIconPath: '../../static/tabBar-icon/Bmine57.png', // #endif //#ifdef H5 iconPath: '/static/tabBar-icon/Gmine10.png', selectedIconPath: '/static/tabBar-icon/Bmine57.png', // #endif text: '我的' } ], fourth: [{ pagePath: 'pages/tabbar-page/index-tabbar/index-tabbar', //#ifdef MP-WEIXIN iconPath: '../../static/tabBar-icon/home.png', selectedIconPath: '../../static/tabBar-icon/homeblue.png', // #endif //#ifdef H5 iconPath: '/static/tabBar-icon/home.png', selectedIconPath: '/static/tabBar-icon/homeblue.png', // #endif text: '进场' },{ pagePath: 'pages/doorkeeper-page/doorkeeper-index/exit-index', //#ifdef MP-WEIXIN iconPath: '../../static/tabBar-icon/home.png', selectedIconPath: '../../static/tabBar-icon/homeblue.png', // #endif //#ifdef H5 iconPath: '/static/tabBar-icon/home.png', selectedIconPath: '/static/tabBar-icon/homeblue.png', // #endif text: '出场' }, { pagePath: 'pages/tabbar-page/myPage-tabbar/myPage-tabbar', //#ifdef MP-WEIXIN iconPath: '../../static/tabBar-icon/Gmine10.png', selectedIconPath: '../../static/tabBar-icon/Bmine57.png', // #endif //#ifdef H5 iconPath: '/static/tabBar-icon/Gmine10.png', selectedIconPath: '/static/tabBar-icon/Bmine57.png', // #endif text: '我的' }, ], five:[{ pagePath: 'pages/tabbar-page/index-tabbar/index-tabbar', //#ifdef MP-WEIXIN iconPath: '../../static/tabBar-icon/home.png', selectedIconPath: '../../static/tabBar-icon/homeblue.png', // #endif //#ifdef H5 iconPath: '/static/tabBar-icon/home.png', selectedIconPath: '/static/tabBar-icon/homeblue.png', // #endif text: '首页' }, { pagePath: 'pages/loadUnload-page/historyOrder/index', //#ifdef MP-WEIXIN iconPath: '../../static/tabBar-icon/home.png', selectedIconPath: '../../static/tabBar-icon/homeblue.png', // #endif //#ifdef H5 iconPath: '/static/tabBar-icon/home.png', selectedIconPath: '/static/tabBar-icon/homeblue.png', // #endif text: '历史收发单' }, { pagePath: 'pages/loadUnload-page/orderPlanList/index', //#ifdef MP-WEIXIN iconPath: '../../static/tabBar-icon/statistics.png', selectedIconPath: '../../static/tabBar-icon/statisticsactive.png', // #endif //#ifdef H5 iconPath: '/static/tabBar-icon/statistics.png', selectedIconPath: '/static/tabBar-icon/statisticsactive.png', // #endif text: '日计划' }, { pagePath: 'pages/tabbar-page/myPage-tabbar/myPage-tabbar', //#ifdef MP-WEIXIN iconPath: '../../static/tabBar-icon/Gmine10.png', selectedIconPath: '../../static/tabBar-icon/Bmine57.png', // #endif //#ifdef H5 iconPath: '/static/tabBar-icon/Gmine10.png', selectedIconPath: '/static/tabBar-icon/Bmine57.png', // #endif text: '我的' } ], six:[{ pagePath: 'pages/tabbar-page/index-tabbar/index-tabbar', //#ifdef MP-WEIXIN iconPath: '../../static/tabBar-icon/home.png', selectedIconPath: '../../static/tabBar-icon/homeblue.png', // #endif //#ifdef H5 iconPath: '/static/tabBar-icon/home.png', selectedIconPath: '/static/tabBar-icon/homeblue.png', // #endif text: '首页' }, { pagePath: 'pages/tabbar-page/myPage-tabbar/myPage-tabbar', //#ifdef MP-WEIXIN iconPath: '../../static/tabBar-icon/Gmine10.png', selectedIconPath: '../../static/tabBar-icon/Bmine57.png', // #endif //#ifdef H5 iconPath: '/static/tabBar-icon/Gmine10.png', selectedIconPath: '/static/tabBar-icon/Bmine57.png', // #endif text: '我的' }] } const store = new Vuex.Store({ state: { // 用戶界面判斷 userInfo: {}, roleType: null, // 1客户,2货代,3司机 5装卸员 userTabbar: [], // 用户所在角色底部菜单, // 称重时的重量 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, // 存放从后端接收到的websocket数据 globalIntervalId: null, is_open_socket: false, //避免重复连接 connectNum: 1, //重连次数, reconnectTimeOut: null, //重新链接的定时器 // 打印出入门证 一次就可以有打印入门证, 两次可以有入门证 出门证 0次一张都没有 ablePrintInduction: false, //入门证 ablePrintOut: false, //出门证 driverTourImgList: ['https://wrzs.czjlchem.com:9090/appimg/image/tour/driver/sj1.png', 'https://wrzs.czjlchem.com:9090/appimg/image/tour/driver/sj2.jpg', 'https://wrzs.czjlchem.com:9090/appimg/image/tour/driver/sj3.jpg', 'https://wrzs.czjlchem.com:9090/appimg/image/tour/driver/sj4.jpg', 'https://wrzs.czjlchem.com:9090/appimg/image/tour/driver/sj5.jpg', 'https://wrzs.czjlchem.com:9090/appimg/image/tour/driver/sj6.jpg', 'https://wrzs.czjlchem.com:9090/appimg/image/tour/driver/sj7.jpg', 'https://wrzs.czjlchem.com:9090/appimg/image/tour/driver/sj8.jpg', 'https://wrzs.czjlchem.com:9090/appimg/image/tour/driver/sj9.jpg', 'https://wrzs.czjlchem.com:9090/appimg/image/tour/driver/sj10.jpg', 'https://wrzs.czjlchem.com:9090/appimg/image/tour/driver/sj11.jpg', 'https://wrzs.czjlchem.com:9090/appimg/image/tour/driver/sj12.jpg', 'https://wrzs.czjlchem.com:9090/appimg/image/tour/driver/sj13.jpg', 'https://wrzs.czjlchem.com:9090/appimg/image/tour/driver/sj14.jpg', 'https://wrzs.czjlchem.com:9090/appimg/image/tour/driver/sj15.jpg', 'https://wrzs.czjlchem.com:9090/appimg/image/tour/driver/sj16.jpg', 'https://wrzs.czjlchem.com:9090/appimg/image/tour/driver/sj17.jpg', 'https://wrzs.czjlchem.com:9090/appimg/image/tour/driver/sj18.jpg', 'https://wrzs.czjlchem.com:9090/appimg/image/tour/driver/sj19.jpg', 'https://wrzs.czjlchem.com:9090/appimg/image/tour/driver/sj20.jpg', 'https://wrzs.czjlchem.com:9090/appimg/image/tour/driver/sj21.jpg', 'https://wrzs.czjlchem.com:9090/appimg/image/tour/driver/sj22.jpg', 'https://wrzs.czjlchem.com:9090/appimg/image/tour/driver/sj23.jpg', 'https://wrzs.czjlchem.com:9090/appimg/image/tour/driver/sj24.jpg', 'https://wrzs.czjlchem.com:9090/appimg/image/tour/driver/sj25.jpg', 'https://wrzs.czjlchem.com:9090/appimg/image/tour/driver/sj26.jpg', 'https://wrzs.czjlchem.com:9090/appimg/image/tour/driver/sj27.jpg', 'https://wrzs.czjlchem.com:9090/appimg/image/tour/driver/sj28.jpg', 'https://wrzs.czjlchem.com:9090/appimg/image/tour/driver/sj29.jpg', 'https://wrzs.czjlchem.com:9090/appimg/image/tour/driver/sj30.jpg', 'https://wrzs.czjlchem.com:9090/appimg/image/tour/driver/sj31.jpg', 'https://wrzs.czjlchem.com:9090/appimg/image/tour/driver/sj32.jpg', 'https://wrzs.czjlchem.com:9090/appimg/image/tour/driver/sj33.jpg', 'https://wrzs.czjlchem.com:9090/appimg/image/tour/driver/sj33-1.jpg', 'https://wrzs.czjlchem.com:9090/appimg/image/tour/driver/sj34.jpg', 'https://wrzs.czjlchem.com:9090/appimg/image/tour/driver/sj35.jpg', 'https://wrzs.czjlchem.com:9090/appimg/image/tour/driver/sj36.jpg', 'https://wrzs.czjlchem.com:9090/appimg/image/tour/driver/sj37.jpg', 'https://wrzs.czjlchem.com:9090/appimg/image/tour/driver/sj38.jpg', 'https://wrzs.czjlchem.com:9090/appimg/image/tour/driver/sj39.jpg', 'https://wrzs.czjlchem.com:9090/appimg/image/tour/driver/sj40.jpg', 'https://wrzs.czjlchem.com:9090/appimg/image/tour/driver/sj41.jpg', 'https://wrzs.czjlchem.com:9090/appimg/image/tour/driver/sj42.jpg', 'https://wrzs.czjlchem.com:9090/appimg/image/tour/driver/sj43.jpg', 'https://wrzs.czjlchem.com:9090/appimg/image/tour/driver/sj44.jpg', ], wsgVisiable: false, //磅房忙碌弹窗控制 wsgContent: '', globalIsFirstWeighing: 1, //是否是第一次上磅 confirmWeighVisiable: false, //磅房管理确认称重完成提示弹窗 confirmWeighContent: '', // 称重稳定态 0/稳定 1/非稳定 非稳定态不能点称重 globalWarning: false, filedId:'', //场地id bunkerList:'', //仓库list samplingPersonList:'', //采样员list pvcIdList:['1818242458023153665'], }, mutations: { setUserInfo(state, identity) { state.userInfo = userObj[identity] }, // 设置底部栏 setUserTabbar(state, roleType) { state.roleType = roleType if (roleType == 1) { state.userTabbar = userRoleTabbar.first uni.setStorageSync('userTabbar', state.userTabbar) } else if (roleType == 2 || roleType == 3) { state.userTabbar = userRoleTabbar.second uni.setStorageSync('userTabbar', state.userTabbar) } else if (roleType == 5) { state.userTabbar = userRoleTabbar.five uni.setStorageSync('userTabbar', state.userTabbar) }else if (roleType == 6) { state.userTabbar = userRoleTabbar.fourth uni.setStorageSync('userTabbar', state.userTabbar) }else if (roleType == 7) { state.userTabbar = userRoleTabbar.six 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) { console.log(data,'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 }, // 改变稳定态 changeWarning(state, payload) { state.globalWarning = payload }, // 场地filedId的获取 getFiledId(state, payload) { console.log(payload,'filedId=====') state.filedId = payload uni.setStorageSync('filedId', state.filedId) }, getBunkerList(state, payload) { state.bunkerList = payload uni.setStorageSync('bunkerList', state.bunkerList) }, getSamplingPersonList(state, payload) { console.log('我执行了samplingPersonList====',payload) state.samplingPersonList = payload uni.setStorageSync('samplingPersonList', state.samplingPersonList) }, }, actions: { websocketInit({ state, dispatch, commit }) { // #ifdef H5 let wsUrl = `${webSocketUrl}?UUID=${uni.getStorageSync('token')}` // #endif // #ifndef H5 let wsUrl = `${webSocketUrl}?access_token=${uni.getStorageSync('token')}` // #endif state.socketTask = uni.connectSocket({ url: wsUrl, header: { clientToc: 'Y' , '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) 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) } }, //filedId async getBunkerList({ state,dispatch, commit }) { //获取filedId // this.$reqGet(`getList/${this.deptId}`).then(res => { // console.log(res,'想得到filedId') // }) let deptId = uni.getStorageSync('userInfo').deptIds console.log(deptId,'deptId====') await uni.request({ //获取deptId url: `/wrzs/jccoalfiled/list/${deptId}`, method: 'GET', header: { Authorization: 'Bearer' + ' ' + uni.getStorageSync('token'), clientToc: 'Y', 'CLIENT_TOC': 'Y', }, success: res => { console.log(res,'filedId接口000000000000') commit('getFiledId',res.data.data[0].id || '') dispatch('getFiledIdCoalBunker') // console.log(res,'shuj------') // this.filedId = res.data?.data.length > 0 ? res.data.data[0].id : ''; // this.getFiledIdCoalBunker() } }) }, getSamplingPerson({ state, commit }) { //采样人 let params = { current: 1, size: 999, type: 7 } reqGet('pageCarAndHuoDai',params).then(res => { console.log(res,'pageCarAndHuoDai======') if(res.code == 0) { let temp = res.data.records commit('getSamplingPersonList',temp) } }) }, getFiledIdCoalBunker({ state, commit }) { //仓库列表(采样地点) let filedId = uni.getStorageSync('filedId') console.log(filedId,'最终的filedId=============') reqGet('getFiledIdCoalBunker', {filedId: filedId}).then(res => { console.log(res,'res----仓库') commit('getBunkerList',res.data) }) }, }, getters:{ websocketData:(state) => state.websocketData, samplingPersonList: (state) => state.samplingPersonList } }) export default store