From 3fd84886a15713ece1ba34954f49fd1e075ef7be Mon Sep 17 00:00:00 2001
From: qingyiay <2386314947@qq.com>
Date: 星期三, 19 四月 2023 17:38:48 +0800
Subject: [PATCH] 改变称重监听,增加发运详情,修复电子提煤单错误

---
 pages/tabbar-page/index-tabbar/index-tabbar.vue |  193 ++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 178 insertions(+), 15 deletions(-)

diff --git a/pages/tabbar-page/index-tabbar/index-tabbar.vue b/pages/tabbar-page/index-tabbar/index-tabbar.vue
index 5d9d6d6..a4ff57e 100644
--- a/pages/tabbar-page/index-tabbar/index-tabbar.vue
+++ b/pages/tabbar-page/index-tabbar/index-tabbar.vue
@@ -1,9 +1,21 @@
 <template>
 	<view>
+		<view class="search-bar">
+			<view class="icon-box" @click="messagePage"><u-icon name="chat" color="#000" size="50"></u-icon></view>
+		</view>
 		<customer-index v-if="roleType == 1" ref="customerIndexRef" :orderPlanDataStore="orderPlanDataStore"></customer-index>
-		<freight-forwarder-index v-if="roleType == 2" ref="freightForwarderIndexRef"></freight-forwarder-index>
-		<driver-index v-if="roleType == 3" ref="driverIndexRef"></driver-index>
+		<freight-forwarder-index
+			v-if="roleType == 2"
+			ref="freightForwarderIndexRef"
+			:indexHistoryCoalData="indexHistoryCoalData"
+			:indexHuoDaiOrderPlanData="indexHuoDaiOrderPlanData"
+		></freight-forwarder-index>
+		<driver-index v-if="roleType == 3" ref="driverIndexRef" :indexdriverBillOfLoadingData="indexdriverBillOfLoadingData"></driver-index>
 		<tab-bar :current="0"></tab-bar>
+		<!-- 鎺ㄩ�佹秷鎭脊绐� -->
+		<u-modal :show="messagePushShow" :title="messageList.title" @confirm="messageconfirm">
+			<view class="slot-content"><rich-text :nodes="messageList.content"></rich-text></view>
+		</u-modal>
 	</view>
 </template>
 
@@ -11,24 +23,70 @@
 import customerIndex from '@/pages/customer-page/customer-index/customer-index.vue';
 import driverIndex from '@/pages/driver-page/driver-index/driver-index.vue';
 import freightForwarderIndex from '@/pages/freight-forwarder-page/freightForwarder-index/freightForwarder-index.vue';
-import { mapState } from 'vuex';
+import { mapState, mapMutations } from 'vuex';
+import { webSocketUrl } from '@/api/request.js';
+let socket = null;
 export default {
 	components: {
 		customerIndex,
 		driverIndex,
 		freightForwarderIndex
 	},
+	computed: {
+		...mapState(['globalweighHouseCode', 'globalweigh'])
+	},
+	//棣栭〉涓嬫媺鍒锋柊
 	onPullDownRefresh() {
-		uni.showLoading({
-			title: '鍔犺浇涓�...'
-		});
-		this.$reqGet('GetOrderPlan').then(res => {
-			if (res.data) {
-				this.orderPlanDataStore = res.data;
-				uni.hideLoading();
-				uni.stopPullDownRefresh();
-			}
-		});
+		uni.showLoading({ title: '鍔犺浇涓�...' });
+		// 鑾峰彇鍘嗗彶鎻愮叅鍗�
+		if (this.roleType == 1 || this.roleType == 2) {
+			this.$reqGet('getJhOrderPlanDataPage', { current: 1, size: 10 }).then(res => {
+				if (res.data.records) {
+					this.indexHistoryCoalData = res.data.records;
+					uni.hideLoading();
+					uni.stopPullDownRefresh();
+				} else {
+					this.$u.toast('鍔犺浇澶辫触');
+				}
+			});
+		}
+		// 瀹㈡埛鑾峰彇鏃ヨ鍒�
+		if (this.roleType == 1) {
+			this.$reqGet('GetOrderPlan').then(res => {
+				if (res.data) {
+					this.orderPlanDataStore = res.data;
+					this.$u.toast('鍔犺浇鎴愬姛');
+					uni.hideLoading();
+					uni.stopPullDownRefresh();
+				} else {
+					this.$u.toast('鍔犺浇澶辫触');
+				}
+			});
+		} else if (this.roleType == 2) {
+			this.$reqGet('huoDaiList').then(res => {
+				if (res.data) {
+					this.indexHuoDaiOrderPlanData = res.data;
+					this.$u.toast('鍔犺浇鎴愬姛');
+					uni.hideLoading();
+					uni.stopPullDownRefresh();
+				} else {
+					this.$u.toast('鍔犺浇澶辫触');
+				}
+			});
+		} else if (this.roleType == 3) {
+			this.$reqGet('qiangDanList').then(res => {
+				if (res.code == 0) {
+					this.indexdriverBillOfLoadingData = res.data;
+					this.$u.toast('鍔犺浇鎴愬姛');
+					uni.hideLoading();
+					uni.stopPullDownRefresh();
+				} else {
+					this.$u.toast('鍔犺浇澶辫触');
+					uni.hideLoading();
+					uni.stopPullDownRefresh();
+				}
+			});
+		}
 	},
 	onLoad() {
 		// 寮�鍚弻浜洪�氳瘽
@@ -50,14 +108,40 @@
 	data() {
 		return {
 			roleType: null,
-			orderPlanDataStore: []
+			orderPlanDataStore: [],
+			indexHuoDaiOrderPlanData: [],
+			indexHistoryCoalData: [],
+			indexdriverBillOfLoadingData: {},
+			messagePushShow: false,
+			messageList: {},
+			isconnect: false
 		};
 	},
 	onShow() {
 		this.init();
+		if (!this.isconnect) {
+			this.initWebsocket();
+		}
 		this.userAuthorization();
 	},
+	onHide() {
+		console.log('椤甸潰闅愯棌');
+		if (!this.isconnect) {
+			this.initWebsocket();
+		}
+	},
+	onUnload() {
+		console.log('椤甸潰鍗歌浇');
+		socket.close();
+		clearInterval(this.intervalId);
+	},
 	methods: {
+		...mapMutations(['pushMessage', 'changeWeigh', 'changeinfraredStatus']),
+		messagePage() {
+			uni.navigateTo({
+				url: '/pages/public-page/message/message'
+			});
+		},
 		init() {
 			this.roleType = uni.getStorageSync('roleType');
 			switch (this.roleType) {
@@ -119,9 +203,88 @@
 					console.log('鑾峰彇澶辫触');
 				}
 			});
+		},
+		// 鍒濆鍖杦ebsocket
+		initWebsocket() {
+			let wsUrl = `${webSocketUrl}?access_token=${uni.getStorageSync('token')}`;
+			socket = uni.connectSocket({
+				url: wsUrl,
+				header: {
+					CLIENT_TOC: 'Y'
+				},
+				complete: res => {
+					console.log(res, 'socket缁撴灉');
+					if (res.errMsg == 'connectSocket:ok') {
+						this.isconnect = true;
+					}
+				}
+			});
+			socket.onOpen(() => {
+				console.log('onOpen');
+				this.intervalId = setInterval(() => {
+					socket.send({
+						data: JSON.stringify({ type: 'ping' }),
+						success(e) {
+							console.log(e, '鍙戦�佸績璺虫垚鍔�');
+						}
+					});
+				}, 30000);
+			});
+
+			// 鑾峰彇鏈嶅姟鍣ㄤ紶鏉ョ殑鏁版嵁锛屽仛鐩稿簲澶勭悊
+			socket.onMessage(res => {
+				console.log('message', res);
+				if (res.data.startsWith('weigh')) {
+					let nowWeighObj = JSON.parse(res.data.slice(7));
+					if (this.globalweighHouseCode && nowWeighObj.eqCode == this.globalweighHouseCode) {
+						if (nowWeighObj.eqInfraredStatus) {
+							this.changeinfraredStatus(true);
+							this.changeWeigh(nowWeighObj.weigh);
+						} else {
+							this.changeinfraredStatus(false);
+							this.changeWeigh(nowWeighObj.weigh);
+						}
+					}
+				} else if (res.data.startsWith('msg')) {
+					this.messageList = JSON.parse(res.data.slice(5));
+					this.messagePushShow = true;
+				} else {
+					console.log('websocket杩樺湪娲荤潃');
+				}
+			});
+			socket.onClose(e => {
+				console.log('webSocketClose', e);
+				this.$u.toast('杩炴帴宸叉柇寮�锛岃閲嶆柊杩涘叆璇ラ〉闈紝閲嶈瘯锛侊紒');
+				this.isconnect = false;
+			});
+			socket.onError(err => {
+				console.log('socket鎶ラ敊', err);
+				this.$u.toast('鍑虹幇閿欒锛岃閲嶆柊杩涘叆璇ラ〉闈紝閲嶈瘯锛侊紒');
+			});
+		},
+		messageconfirm() {
+			this.messagePushShow = false;
 		}
 	}
 };
 </script>
 
-<style lang="scss" scoped></style>
+<style lang="scss" scoped>
+.search-bar {
+	height: vww(20);
+	width: 96%;
+	margin: vww(3) auto;
+	position: relative;
+	.icon-box {
+		width: vww(30);
+		height: vww(30);
+		background-color: #eee;
+		border-radius: 50%;
+		display: flex;
+		justify-content: center;
+		align-items: center;
+		position: absolute;
+		right: vww(-3);
+	}
+}
+</style>

--
Gitblit v1.9.1