From 66d2c8d8c97e19fdbd969f97dd3d6a28f27c415f Mon Sep 17 00:00:00 2001
From: quanyawei <401863037@qq.com>
Date: Wed, 01 Nov 2023 16:07:03 +0800
Subject: [PATCH] fix:小程序分享功能和秒级数据

---
 pages/actionChange/secondLevelData/index.vue |  189 +++++++++++++++++++++++------------------------
 1 files changed, 92 insertions(+), 97 deletions(-)

diff --git a/pages/actionChange/secondLevelData/index.vue b/pages/actionChange/secondLevelData/index.vue
index e6b8a30..69fc5ea 100644
--- a/pages/actionChange/secondLevelData/index.vue
+++ b/pages/actionChange/secondLevelData/index.vue
@@ -1,31 +1,44 @@
 <template>
 	<view class="rootBg">
 		<view class="">
-			<view class="ridoa">
+			<view class="ridoaBox">
 				<u-radio-group v-model="value" placement="row" :size='radioOption.size'
 					:labelColor='radioOption.labelColor' :labelSize='radioOption.labelSize' @change='changeSearchType'>
-					<u-radio activeColor="#19be6b" label="������������������" name="0" :labelSize='radioOption.labelSize'
+					<u-radio activeColor="#19be6b" label="Mac������" name="1" :labelSize='radioOption.labelSize'
 						:labelColor='radioOption.labelColor'></u-radio>
-					<u-radio activeColor="#19be6b" label="������������������" name="1" :labelSize='radioOption.labelSize'
+					<u-radio activeColor="#19be6b" label="������������" name="0" :labelSize='radioOption.labelSize'
+						:labelColor='radioOption.labelColor'></u-radio>
+					<u-radio activeColor="#19be6b" label="������������������" name="2" :labelSize='radioOption.labelSize'
 						:labelColor='radioOption.labelColor'></u-radio>
 				</u-radio-group>
 			</view>
 			<view class="" v-if="value==='1'">
-				<u-input placeholder="���������Mac���" :placeholderStyle='placeholderStyle' color="#fff" v-model='macName'>
+				<u-input placeholder="���������Mac���" :placeholderStyle='placeholderStyle' color="#fff"
+					customStyle="margin: 0 5px;" v-model='macName'>
 					<template slot="suffix">
 						<u-button @tap="searchMacList" text="������" type="success" size="small"></u-button>
 					</template>
 				</u-input>
 			</view>
-			<view class="" v-else>
+			<view class="orgSearch" v-else-if="value==='0'">
 				<u-form ref="uForm" label-width="80" :model="form">
 					<u-form-item border-bottom @click="showeEscalationTime = true ;hideKeyboard('orgName','orgId')">
-						<u-input v-model="form.orgName" disabled disabled-color="#ffffff" placeholder="���������������"
-							type="select" />
+						<u-input v-model="form.orgName" disabled disabled-color="#ffffff" customStyle="margin: 0 5px;"
+							placeholder="���������������" type="select" />
 					</u-form-item>
 					<u-form-item border-bottom @click="selectSite">
-						<u-input v-model="form.siteName" disabled disabled-color="#ffffff" placeholder="���������������"
-							type="select" />
+						<u-input v-model="form.siteName" disabled disabled-color="#ffffff" customStyle="margin: 0 5px;"
+							placeholder="���������������" type="select" />
+					</u-form-item>
+				</u-form>
+				<u-picker :show="showeEscalationTime" :columns="columns" @confirm="selectBack" keyName="name"
+					@cancel="showeEscalationTime = false"></u-picker>
+			</view>
+			<view class="" v-else-if="value==='2'">
+				<u-form ref="uForm" label-width="80" :model="form">
+					<u-form-item border-bottom @click="selecSpecial">
+						<u-input v-model="form.specialName" disabled disabled-color="#ffffff"
+							customStyle="margin: 0 5px;" placeholder="���������������" type="select" />
 					</u-form-item>
 				</u-form>
 				<u-picker :show="showeEscalationTime" :columns="columns" @confirm="selectBack" keyName="name"
@@ -55,9 +68,11 @@
 		<u-toast ref="uToast"></u-toast>
 		<u-modal :show="showModel" title='���������Mac���' showCancelButton @cancel='showModel=false' @confirm='selectMac'>
 			<view class="slot-content">
-				<u-radio-group v-model="modeleMacSelect" iconPlacement="right" placement='column' borderBottom='true'>
+				<u-radio-group v-model="modeleMacSelect" iconPlacement="right" placement='column' borderBottom='true'
+					@change='clickMac'>
 					<view v-for="(item,index) in macList" :key="index" class="ridioBox">
-						<u-radio activeColor="#19be6b" :label="item.mac" :name="item.mac"></u-radio>
+						<u-radio activeColor="#19be6b" :label="`${item.typeName}: ${item.mac}`"
+							:name="item.mac"></u-radio>
 					</view>
 				</u-radio-group>
 			</view>
@@ -71,7 +86,7 @@
 		data() {
 			return {
 				modeleMacSelect: '',
-				value: '0',
+				value: '1',
 				showModel: false,
 				showeEscalationTime: false,
 				columns: [],
@@ -79,7 +94,9 @@
 					orgName: '',
 					orgId: '',
 					siteName: '',
-					siteId: ''
+					siteId: '',
+					specialName: '',
+					specialid: ''
 				},
 				selectForm: {
 					name: '',
@@ -89,7 +106,7 @@
 				radioOption: {
 					size: '20px',
 					labelColor: '#fff',
-					labelSize: '18px'
+					labelSize: '18px',
 				},
 				placeholderStyle: 'color: #fff',
 				macName: '',
@@ -111,7 +128,8 @@
 				// ������������������
 				alarmBg: {},
 				timer: '',
-				isLoading: true
+				isLoading: true,
+				specialType: '3'
 			}
 		},
 		filters: {
@@ -124,14 +142,13 @@
 		computed: {
 			windDirData() {
 				if (this.wsData2) {
-					console.log('this.windDir', this.windDir)
 					return `${this.windDir} (${this.wsData2.a01008})`
 				} else {
 					return ''
 				}
 			},
 			showData() {
-				return [...this.defaultMonitorItems, ...this.coreMonitorItems]
+				return [...this.coreMonitorItems, ...this.defaultMonitorItems]
 			}
 		},
 		created() {
@@ -144,6 +161,10 @@
 			that.timer = ''
 		},
 		methods: {
+			clickMac(e) {
+				this.specialType = this.macList.find(item => item.mac === e).specialType
+				console.log('specialType', this.specialType)
+			},
 			getData() {
 				this.queryAlarmByMac()
 				this.getHourlyAqi()
@@ -151,12 +172,18 @@
 			},
 			changeSearchType() {
 				this.macName = ''
+				if (this.value === '2') {
+					this.getSpeciallist()
+				}
+				if (this.value === '0') {
+					this.getOrgs()
+				}
 			},
 			selectMac() {
 				this.macName = this.modeleMacSelect
 				this.showModel = false
 				if (this.socketTask) {
-					this.socketTask.onClose()
+					this.socketTask.close()
 				}
 				this.getData()
 			},
@@ -164,9 +191,12 @@
 				this.$http.httpGet('/AppDevice/fuzzySearch', {
 					mac: this.macName
 				}).then(res => {
-					this.showModel = true
-					if (res.data && res.data.length > 10) {
-						this.macList = res.data.slice(0, 10)
+					this.macList = []
+					if (res.data && res.data.length > 0) {
+						this.macList = res.data
+						this.showModel = true
+					} else {
+						uni.$u.toast('������������')
 					}
 				}).catch(res => {
 					uni.$u.toast(res)
@@ -186,12 +216,18 @@
 						this.getSites()
 				}
 			},
+			selecSpecial() {
+				this.selectForm = {
+					name: 'specialName',
+					id: 'specialId'
+				}
+				this.showeEscalationTime = true
+			},
 			hideKeyboard(name, id) {
 				this.selectForm = {
 					'name': name,
 					'id': id
 				}
-				this.getOrgs()
 			},
 			selectBack(e) {
 				if (this.selectForm.name === 'orgName') {
@@ -204,12 +240,13 @@
 				} else {
 					this.macName = e.value[0].mac
 					if (this.socketTask) {
-						this.socketTask.onClose()
+						this.socketTask.close()
 					}
 					this.getData()
 				}
 				this.form[this.selectForm.name] = e.value[0].name
 				this.form[this.selectForm.id] = e.value[0].id
+				this.specialType = e.value[0].specialType
 				this.showeEscalationTime = false
 			},
 			getOrgs() {
@@ -222,16 +259,14 @@
 			},
 			getSites() {
 				let params = {
-					organizationId: this.form.orgId
+					monitorPointId: this.form.orgId
 				}
 				this.$http.httpGet('/AppDevice/selectDevice', params).then(res => {
-					console.log(res)
 					this.columns = []
 					this.columns.push(res.data)
 					this.showeEscalationTime = true
 				}).catch(res => {
 					uni.$u.toast(res)
-					console.log(res)
 				})
 			},
 			sensorLayout() {
@@ -245,8 +280,21 @@
 					this.fixedMonitorItems = res.data.fixedMonitorItems
 					this.totalArray.push(...this.coreMonitorItems, ...this.defaultMonitorItems, ...this
 						.fixedMonitorItems)
-					this.getSensorMonthAvg()
-					this.connectSocket()
+					if (this.chartSensorKey.length > 0) {
+						this.getSensorMonthAvg()
+						this.connectSocket()
+					} else {
+						uni.$u.toast('������������')
+					}
+				}).catch(res => {
+					uni.$u.toast(res)
+				})
+			},
+			// ������������������
+			getSpeciallist() {
+				this.$http.httpGet('/AppDevice/specialDevice').then(res => {
+					this.columns = []
+					this.columns.push(res.data)
 				}).catch(res => {
 					uni.$u.toast(res)
 					console.log(res)
@@ -418,8 +466,6 @@
 							this.totalArray[i].alarm = this.alarmProgress[key]
 						}
 					}
-					console.log('this.totalArray', this.totalArray)
-					console.log('this.alarmColour', this.alarmColour)
 					for (const key in this.alarmColour) {
 						if (this.totalArray[i].sensorCode === key) {
 							this.totalArray[i].colour = this.alarmColour[key]
@@ -434,15 +480,18 @@
 			},
 			//������websocket
 			connectSocket() {
-				if (!this.isLoading) {
+				if (this.socketTask) {
 					this.socketTask.close()
 					this.socketTask = null
 				}
 				this.baseUrl = this.$storage.get('baseUrl')
 				let that = this
 				let socketUrl = this.baseUrl + '/singleDevice/' + this.macName
+				if (this.specialType === '0') {
+					socketUrl = this.baseUrl + '/cruiserWebsocket/' + this.macName
+				}
 				socketUrl = socketUrl.replace('https', 'wss').replace('http', 'ws')
-				console.log('������������websocket')
+				console.log('������������websocket', socketUrl)
 				this.socketTask = uni.connectSocket({
 					url: socketUrl,
 					success(res) {
@@ -463,77 +512,16 @@
 					console.log('������������������������' + res.data)
 					that.handlerMsg(res) //������������������������������������������
 				})
-				this.socketTask.onError(function(res) {
-					console.log('WebSocket���������������������������������')
-					console.log(res)
-					// this.isSuccess = false
-					// that.connectSocket()
-					//������������������
-					that.reconnect()
-				})
 				// // ������������������ -
 				this.socketTask.onClose(e => {
 					console.log('WebSocket���������������')
-					clearInterval(that.timer)
-					that.timer = ''
-					if (!that.isClose) {
-						that.reconnect()
-					}
 				})
 				console.log(this.socketTask)
-			},
-			//������������������
-			reconnect() {
-				console.log('������������������')
-				this.socketTask.close()
-				this.socketTask = null
-				if (this.isLoading) {
-					this.connectSocket()
-				}
-			},
-			//������������
-			sendSocketMessage(msg) {
-				console.log('������������')
-				console.log(msg)
-				return new Promise((reslove, reject) => {
-					this.socketTask.send({
-						data: msg,
-						success(res) {
-							console.log('������������')
-							reslove(res)
-						},
-						fail(res) {
-							console.log('������������')
-							console.log(res)
-							reject(res)
-						}
-					})
-				})
-			},
-			//������
-			heart() {
-				let that = this
-				clearInterval(this.timer)
-				this.timer = ''
-				let msg = {
-					'type': 'heartbeat',
-				}
-				this.timer = setInterval(() => {
-					that.sendSocketMessage(JSON.stringify(msg)).then(res => {
-						console.log('������������')
-					}).catch(res => {
-						console.log('������������')
-						console.log((res))
-					})
-				}, 2000)
 			},
 			beforeDestroy() {
 				if (this.socketTask) {
 					this.socketTask.close()
 					this.socketTask = null
-				}
-				if (this.timer) {
-					clearInterval(this.timer) // ���Vue������������������������������������������
 				}
 			},
 		}
@@ -566,7 +554,7 @@
 		justify-content: center;
 	}
 
-	.ridoa {
+	.ridoaBox {
 		text-align: center;
 		padding: 10px 0px;
 	}
@@ -575,9 +563,11 @@
 		color: #fff;
 	}
 
-	/deep/.u-form {
-		display: flex;
-		justify-content: space-evenly;
+	.orgSearch {
+		/deep/.u-form {
+			display: flex;
+			justify-content: space-evenly;
+		}
 	}
 
 	.slot-content {
@@ -593,4 +583,9 @@
 	.ridioBox {
 		margin-bottom: 10px;
 	}
+
+	/deep/.u-modal__content {
+		max-height: 300px;
+		overflow: auto;
+	}
 </style>
\ No newline at end of file

--
Gitblit v1.8.0