// import $store from '../index.js' // import vueconfig from '../../vue.config.js' import Wst from './lid/websocketL.js' import WxStorage from "../static/lib/wxStorage.js" //微信Storage // var url = 'ws://' + vueconfig.devServer.proxy["/cloud"].target.substring(5) + '/websocket'; import $store from './index.js' import apis from "./apiConfig.js" // let url = 'ws://192.168.0.108:9034/websocket'; // let url = 'ws://106.225.193.35:83/websocket'; let url = apis.wsapi; const webSockets = new Wst(url); let websocket = { state: { webSockets: webSockets, //websocket实例 socket: '', //websoclet主体 socketValue: '', //接收的数据 socketState: false, // 当前连接websocket状态 socketInterval: false, //心跳 socketTimeout: false, //检测服务器是否连接成功timeout socketInterTime: 5000, //心跳时间 秒*1000 socketStateMY: true, //总控 在退出登入时,强行关闭心跳 }, actions: { connectws({ state, commit }) { console.log("开启websocket") var getValue = function(res) { // 消息回调 commit("setSocketValue", res); } var getState = function(res) { // 状态回调 commit("setState", res); } var getws = function(res) { // 主体回调 commit("setSocket", res); } // console.log(webSockets.$callBack) // let equipmentInformation = navigator.userAgent; // var Data = { // router: "share", // res: { // ...$store.state.logs.user, // equipmentInformation: equipmentInformation // }, // } var ws = webSockets.$callBack(getValue, getState, getws, state.puserID || WxStorage.get("ids")) .$connect(); }, }, mutations: { wsOut(state, value) { webSockets.$outws(); }, setSocket(state, value) { //websocket主体 state.socket = value; }, setSocketValue(state, value) { console.log(value, 222222222222) // if (value.router) { //正常数据返回 // //去除心跳数据 // if (value.router == 'share/heartbeat') { // return; // } console.log(value) state.socketValue = value; // console.log(value, 'websocket信息') // } else { //异常数据返回 // console.log(value, '异常') // } let route; let type; let types111 = state.socketValue.type.split(","); if (types111.length > 1) { route = types111[0]; type = types111[1]; } else { type = types111[0]; } // console.log() if (type === "start") { let types = uni.getSystemInfoSync().platform; let d = { serid: uni.getStorageSync("ids") || $store.state.puserID, type: 0, tasktype: route == "grabOrdersZAXC" ? 0 : (route == "grabOrdersZAYWXC" ? 1 : 2) }; let routes = getCurrentPages(); //获取当前页面栈 let curRoute = routes[routes.length - 1].route; //获取当前页面的路由 // console.log(curRoute) // return // let uni.request({ url: $store.state.piAPI + "taskqd/selectLi", method: "POST", data: d, header: { "content-type": "application/x-www-form-urlencoded", }, success(res) { const data = res.data.data; for (let k in data) { if (data[k].id == state.socketValue.rid) { let val = JSON.stringify({ ...data[k], butCT: "beginUp", buttype: 0, myid: d.serid, myName: uni.getStorageSync("name") || $store.state .puserName, appenUrl: $store.state.piAPI, isOn: true }); console.log(val) let url = "/pages/grabOrders/map?data=" + JSON.stringify(val); if (route) { url = "/pages/grabOrders/" + route + "/map?data=" + JSON.stringify(val); } console.log(url) // if (types == "android", curRoute != "pages/grabOrders/map") { if (curRoute != "pages/grabOrders/map") { uni.navigateTo({ url: url, }); return } uni.redirectTo({ url: url, }); } else { continue; } } }, }); } else if (type === "change") { // let routes = getCurrentPages(); //获取当前页面栈 // let curRoute = routes[routes.length - 1].route; //获取当前页面的路由 let d = { serid: uni.getStorageSync("ids") || $store.state.puserID, type: 0, tasktype: route == "grabOrdersZAXC" ? 0 : (route == "grabOrdersZAYWXC" ? 1 : 2) }; } else if (type == "taks") { // 角色辖区 if (state.UserData.jurisdiction == value.xqid) { console.log("开始推送") // $store.state.Jurisdiction; $store.commit("changeTaksMsg"); //任务状态更新 //语音提醒 // console.log($store) $store.commit("controlAudio", { key: 'keke', method: '$play' }) // "1415621013200236545" } } }, //本地建造数据传递 setMyvalue(state, value) { state.socketValue = value; }, setsocketStateMY(state, value) { state.socketStateMY = value; }, setState(state, value) { state.socketState = value; }, } } export default websocket