You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

154 lines
4.6 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<script>
import '@/common/request/request.js';
import piniaPro from '@/stores/piniaPro.js';
import {
globalStore
} from "@/stores/globalData.js";
const globalData = globalStore(piniaPro);
import config from '@/common/config/config.js';
// var mqtt = require('./static/mqtt/dist/mqtt.min.js');
export default {
globalData: {
client: null,
phone:null
},
onLaunch: function() {
// console.log('App Launch')
},
onShow: function() {
// uni.$request({ //刷新token
// url: config.baseUrl + "service-miniapp/customer/refresh",
// method: 'POST',
// }).then(res => {
// if (res.data.code == 401 || res.data.msg == "Error token") {
// //退出清除用户数据
// uni.removeStorageSync("token"); //"用户Token"
// uni.removeStorageSync("userInfo");
// globalData.isLogin = false
// console.log('用户Token清空====退出');
// return;
// } else {
// uni.setStorageSync("token", res.data.msg); //"用户Token"
// console.log('用户Token已更新');
// globalData.isLogin = true
// console.log(globalData.isLogin, 'globalData.isLogin======已登录')
// // 秦欧定制 交接班推送连接
// let userInfo= uni.getStorageSync('userInfo')
// getApp().phone=userInfo.phone
// console.log(getApp().phone,'getApp().phone');
// getApp().onClick_connect()
// if(config.style===1){
// let userInfo= uni.getStorageSync('userInfo')
// getApp().phone=userInfo.phone
// console.log(getApp().phone,'getApp().phone');
// getApp().onClick_connect()
// }
// // 秦欧定制 交接班推送连接
// return;
// }
// })
// console.log('App Show')
},
onHide: function() {
console.log('App Hide')
},
methods: {
//
randomString(len) {
len = len || 32;
var $chars = 'ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz2345678';
var maxPos = $chars.length;
var pwd = '';
for (let i = 0; i < len; i++) {
pwd += $chars.charAt(Math.floor(Math.random() * maxPos));
}
return pwd;
},
onClick_connect () {
const host = config.mqtt_host
const options = {
clientId: getApp().phone + '_' + getApp().randomString(8),
password: 'public',
username: 'admin',
connectTimeout: 30 * 1000, //1000毫秒两次重新连接之间的间隔
}
//开始连接
getApp().globalData.client = mqtt.connect(host, options);
getApp().globalData.client.on('connect', function (connack) {
console.log("连接成功!")
//订阅主题
getApp().onClick_SubOne();
})
//接收服务器消息通知
getApp().globalData.client.on("message", function (topic, payload) {
console.log(" 收到 topic:" + topic + " , payload :" + payload)
//that.globalData.topicMessage = "" + payload;
let topicData = "" + payload;
uni.showModal({
title: '提示',
content: '您有新的交接班待确认!',
cancelText: '取消',
confirmText: '去看看',
success: function (res) {
if (res.cancel) {} else {
uni.reLaunch({
url: '/pagesCenter/shiftTurnover/associateList'
})
}
}
})
})
//服务器连接异常的回调
getApp().globalData.client.on("error", function (error) {
console.log(" 服务器 error 的回调" + error)
})
//服务器重连连接异常的回调
getApp().globalData.client.on("reconnect", function () {
console.log(" 服务器 reconnect的回调")
})
//服务器连接异常的回调
getApp().globalData.client.on("offline", function (errr) {
console.log(" 服务器offline的回调")
})
},
onClick_SubOne() {
let subTopic = 'changeShifts/' + getApp().phone;
if (getApp().globalData.client && getApp().globalData.client.connected) {
//仅订阅单个主题
getApp().globalData.client.subscribe(subTopic, function(err, granted) {
if (!err) {
console.log("订阅主题成功!")
} else {
uni.showToast({
title: '订阅主题失败',
icon: 'fail',
duration: 2000
})
}
})
} else {
uni.showToast({
title: '请先连接服务器',
icon: 'none',
duration: 2000
})
}
},
}
}
</script>
<style lang="scss">
/*每个页面公共css */
@import "@/uni_modules/uview-plus/index.scss";
@import "@/colorui/main.css";
@import "@/colorui/icon.css";
</style>