From 8ea19a6bb34daab1410f6186992a4c1e90299c92 Mon Sep 17 00:00:00 2001
From: zengh <123456>
Date: Wed, 14 Sep 2022 08:54:44 +0800
Subject: [PATCH] 服务器配置

---
 leafletMapOur/grabOrdersMap/js/vueMain.js |  524 +++++++++++++++++++++++++++++++++++++++++++++------------
 1 files changed, 411 insertions(+), 113 deletions(-)

diff --git a/leafletMapOur/grabOrdersMap/js/vueMain.js b/leafletMapOur/grabOrdersMap/js/vueMain.js
index b180f1d..c510e78 100644
--- a/leafletMapOur/grabOrdersMap/js/vueMain.js
+++ b/leafletMapOur/grabOrdersMap/js/vueMain.js
@@ -32,35 +32,153 @@
 		oldlat: '',
 		oldlng: '',
 		haveJDWD: true,
-		data: {}
-		// {
-		// 	type: 0,
-		// 	city: "南昌市",
-		// 	content: "按路线巡逻",
-		// 	district: "青山湖区",
-		// 	id: 5,
-		// 	integral: "14",
-		// 	jnum: 2,
-		// 	line: "LINESTRING(115.88518439579809 28.67705200351289,115.89115548582284 28.677382855466767,115.89148633777671 28.675523782583074,115.88565704144649 28.675145666064356,115.88521590550799 28.67700473894805,115.88521590550799 28.67700473894805)",
-		// 	num: 0,
-		// 	province: "江西省",
-		// 	raddress: null,
-		// 	rname: "巡逻任务",
-		// 	rtype: "0",
-		// 	serid: null,
-		// 	time: "2021-11-17 00:00:00",
-		// 	url: "http://223.82.109.183:2081/zhba/upload/20211102/07fe327a76a43fa8d3431c73febade22.jpg",
-		// }
+		data: {},
+
+		mapPositionLoding: false, //定位loding
+		oncePosition: null, //一次定位实例
+		onPosition: false, //持续定位指示
+
+		setPositionTime: null, //发送定位节流
+		setPositionUseTime: 30000, //节流时间
 	},
 	methods: {
+		// unis(data) {
+		// 	//向uniapp传值
+		// 	uni.postMessage({
+		// 		data: {
+		// 			action: data
+		// 		}
+		// 	});
+		// },
+		// setUniAppMsg(state, data) {
+		// 	let that = this;
+		// 	if (window.parent) {
+		// 		console.log("有window.parent")
+		// 		if (state == "hBackMsg") {
+		// 			window.parent.hBackMsg(data);
+		// 		}
+		// 		if (state == "setIntLat") {
+		// 			window.parent.setIntLat({
+		// 				rid: that.data.id,
+		// 				fn: (out) => {
+		// 					// console.log(out,"1111");
+		// 					// that.addIcon(out);
+		// 					that.addIcon([out[1], out[0]]);
+		// 				}
+		// 			});
+		// 		}
+		// 		if (state == "showTip") {
+		// 			that.parent.showTip("获取定位失败");
+		// 		}
+		// 	} else {
+		// 		console.log("没window.parent")
+		// 		if (state == "hBackMsg") {
+		// 			// window.parent.hBackMsg(data);
+		// 			that.unis("hBackMsg")
+		// 		}
+		// 		if (state == "setIntLat") {
+		// 			// window.parent.setIntLat({
+		// 			// 	rid: that.data.id,
+		// 			// 	fn: (out) => {
+		// 			// 		// console.log(out,"1111");
+		// 			// 		// that.addIcon(out);
+		// 			// 		that.addIcon([out[1], out[0]]);
+		// 			// 	}
+		// 			// });
+		// 			that.unis("setIntLat")
+		// 		}
+		// 		if (state == "showTip") {
+		// 			// that.parent.showTip("获取定位失败");
+		// 			that.unis("showTip")
+		// 		}
+
+		// 	}
+		// },
 		openAPP(type) {
 			// console.log(type)
 			let that = this;
 			if (type != 1) {
-				//反馈
-				uni.navigateTo({
-					url: '/pages/grabOrders/feedback?data=' + JSON.stringify(this.data)
-				});
+				if (that.data.butCT == "beginUp") {
+					// 反馈
+					if (that.onPosition) {
+						that.onPosition.overContinued();
+					}
+					uni.redirectTo({
+						url: '/pages/grabOrders/feedback?data=' + JSON.stringify(this.data) +
+							'&other="11111"'
+					});
+				} else if (that.data.butCT == "begin") {
+					// 开始任务
+					// that.setUniAppMsg("hBackMsg", {
+					// 	type: "start",
+					// 	data: {
+					// 		id: that.data.id,
+					// 		serid: that.data.serid
+					// 	},
+					// 	fn: function(val) {
+					// 		if (val == "success") {
+					// 			// console.log("成功开启任务")
+					// 			that.data.butCT = "beginUp";
+					// 			that.data.rtype = '0';
+					// 			that.data.type = "0";
+					// 		}
+					// 	}
+					// })
+					let rid = that.data.id,
+						serid = that.data.serid,
+						type = 'start',
+						url = that.data.appenUrl + "taskqd/startTask?" +
+						`rid=${rid}&serid=${serid}&type=${type}`;
+					axios.get(url).then((res) => {
+						// console.log(res);
+						that.onPosition = new $getPositions({
+							id: rid,
+							fn: function(res) {
+								// console.log(res);
+								// state.isOnTaskValue[id] = {
+								// 	id: id,
+								// 	intlat: res.intlat
+								// }
+								// state.changes = !state.changes;
+								// console.log(state.isOnTaskValue)
+								// $store.commit("setMsg", {
+								// 	id: id,
+								// 	intlat: res.intlat
+								// })
+								let out = res.intlat;
+								if (typeof out != "string") {
+									that.addIcon([out[1], out[0]]);
+									//坐标输出
+									let d = {
+										uid: that.data.myid,
+										rid: rid,
+										jd: out[0],
+										wd: out[1],
+									}
+									if (that.setPositionTime) {
+										return;
+									} else {
+										that.setPositionTime = setTimeout(() => {
+											axios.post(that.data.appenUrl +
+													"trar/submit", d)
+												.then(res => {
+													// console.log('res=>', res);
+												})
+											clearTimeout(that.setPositionTime);
+											that.setPositionTime = null;
+										}, that.setPositionUseTime)
+									}
+								} else {
+									console.log("获取定位失败")
+								}
+							}
+						})
+						that.onPosition.continuedTime();
+						that.data.butCT = "beginUp";
+						that.data.rtype = '0';
+						that.data.type = "0";
+					})
+				}
 			} else {
 				this.$confirm('是否参与活动:' + this.data.rname + "?", '提示', {
 					confirmButtonText: '确定',
@@ -69,50 +187,30 @@
 					center: true,
 					customClass: "customClass"
 				}).then(() => {
-					let url = "http://223.82.109.183:2082/api" + "/taskqd/Graborder",
+					let url = that.data.appenUrl + "taskqd/Graborder",
 						dataAppend = that.data;
-					axios.post(url, dataAppend).then(res => {
-						// console.log(res);
-						if (res.data.msg == "抢单成功") {
-							that.data.type = 0;
-							that.$message({
-								message: res.data.msg,
-								type: 'success'
-							});
-							return;
-						}
-						that.$message({
-							message: res.data.msg,
-							type: 'warning'
-						});
-					})
+					console.log(url, dataAppend)
+					// axios.post(url, dataAppend).then(res => {
+					// 	// console.log(res);
+					// 	if (res.data.msg == "抢单成功") {
+					// 		that.data.type = 0;
+					// 		that.$message({
+					// 			message: res.data.msg,
+					// 			type: 'success'
+					// 		});
+					// 		return;
+					// 	}
+					// 	that.$message({
+					// 		message: res.data.msg,
+					// 		type: 'warning'
+					// 	});
+					// })
 				}).catch(() => {
 					// this.$message({
 					// 	type: 'info',
 					// 	message: '已取消删除'
 					// });
 				});
-				// return;
-				//抢单
-				// console.log(this.data)
-				// let up = this.data.appenUrl == '/api' ? "http://192.168.0.107:85" : this.data.appenUrl;
-				// let url = "http://223.82.109.183:2082/api" + "/taskqd/Graborder",
-				// 	dataAppend = this.data;
-				// axios.post(url, dataAppend).then(res => {
-				// 	console.log(res);
-				// 	if (res.data.msg == "抢单成功") {
-				// 		this.data.type = 0;
-				// 		this.$message({
-				// 			message: res.data.msg,
-				// 			type: 'success'
-				// 		});
-				// 		return;
-				// 	}
-				// 	this.$message({
-				// 		message: res.data.msg,
-				// 		type: 'warning'
-				// 	});
-				// })
 			}
 		},
 		getDataList() {
@@ -121,43 +219,101 @@
 		},
 		beginCome() {
 			var data = {
-				city: "无数据",
-				content: "无数据",
-				district: "无数据",
-				id: 5,
-				integral: "14",
-				jnum: 2,
-				line: "LINESTRING(115.88518439579809 28.67705200351289,115.89115548582284 28.677382855466767,115.89148633777671 28.675523782583074,115.88565704144649 28.675145666064356,115.88521590550799 28.67700473894805,115.88521590550799 28.67700473894805)",
-				num: 2,
-				province: "无数据",
-				raddress: "",
-				rname: "无数据",
-				rtype: "0",
-				serid: "1123598821738675201,",
-				time: "无数据",
-				url: "http://223.82.109.183:2081/zhba/upload/20211102/07fe327a76a43fa8d3431c73febade22.jpg",
-				buttype: "0",
-				type:'1'
-			}
+					appenUrl: "http://192.168.0.108:83/",
+					butCT: "begin",
+					buttype: 0,
+					captain: "我",
+					city: "南昌市",
+					content: "测试",
+					district: "西湖区",
+					id: 37,
+					integral: "222",
+					iscation: "1",
+					jnum: 3,
+					line: "LINESTRING(115.8995839881188 28.687205773173343,115.89391916267935 28.678966027079593,115.90404718391959 28.673644524394046,115.91211526863638 28.681369286356936)",
+					num: 1,
+					nums: 0,
+					province: "江西省",
+					publisher: "管理",
+					raddress: null,
+					rname: "测试1",
+					rtype: "0",
+					serid: "1123598821738675201,",
+					team: "你,他,它",
+					time: "2022-02-18 14:15:52",
+					type: "0",
+					url: "http://61.131.136.25:2081/zhba/upload/20220218/67f0c8bf3e7b5024c64133691f265072.ico",
+					fname:"管理员"
+				},
+				that = this;
 			//url解码
 			this.data = this.getQueryVariable('data') || data;
-			// this.getdata = data;
-			// this.changeDom(this.getdata[0]);//改变地图高度
-			// console.log(this.getdata[0]);
+			// console.log(this.data)
+			if (typeof this.data == "string") {
+				this.data = JSON.parse(this.data)
+			}
+			console.log(this.data)
+			if (this.data.isOn || this.data.butCT == "beginUp") {
+				//队长开启任务
+				let rid = that.data.id;
+				that.onPosition = new $getPositions({
+					id: rid,
+					fn: function(res) {
+						// console.log(res);
+						// state.isOnTaskValue[id] = {
+						// 	id: id,
+						// 	intlat: res.intlat
+						// }
+						// state.changes = !state.changes;
+						// console.log(state.isOnTaskValue)
+						// $store.commit("setMsg", {
+						// 	id: id,
+						// 	intlat: res.intlat
+						// })
+						let out = res.intlat;
+						if (typeof out != "string") {
+							that.addIcon([out[1], out[0]]);
+							console.log(out)
+							//坐标输出
+							let d = {
+								uid: that.data.myid,
+								rid: rid,
+								jd: out[0],
+								wd: out[1],
+							}
+							// console.log(d)
+							if (that.setPositionTime) {
+								return;
+							} else {
+								that.setPositionTime = setTimeout(() => {
+									axios.post(that.data.appenUrl + "trar/submit", d)
+										.then(res => {
+											// console.log('res=>', res);
+										})
+									clearTimeout(that.setPositionTime);
+									that.setPositionTime = null;
+								}, that.setPositionUseTime)
+							}
+						} else {
+							console.log("获取定位失败")
+						}
+					}
+				})
+				that.onPosition.continuedTime();
+				that.data.butCT = "beginUp";
+				that.data.rtype = '0';
+				that.data.type = "0";
+			}
+			if (typeof this.data.team === "string") {
+				this.data.team = this.data.team.split(',');
+			}
 			let lines = this.data.line
 			let position = lines.slice(lines.indexOf("(") + 1, lines.indexOf(",")).split(" ");
 			// console.log(position)
 			// return
 			this.map = this.beginMap(this.map, position); //创建并接受map
-			// this.move = new myDomMove('#seedata', '.title', '#map');
 			this.map.invalidateSize(true); //应用地图高度
-			// this.move.followFinger(this.map, 'down');
-			// this.lat = data[0].wd;
-			// this.lng = data[0].jd;
-			// this.oldlat = data[0].wd;
-			// this.oldlng = data[0].jd;
-			// this.oldlat = this.getdata[0].wd;
-			// this.oldlng = this.getdata[0].jd;
+			console.log("完成数据")
 		},
 		changeDom(data) {
 			// console.log(data, 'changeDom');
@@ -204,7 +360,7 @@
 			// desc = "+proj=longlat +datum=WGS84 +no_defs ",
 			// crs = new L.CRS("EPSG:4326", desc, {});
 			// center = [data[0].wd, data[0].jd],
-			// url = `http://223.82.109.183:2082/api/alarm/alarm/APP-getAlarm?id=${data[0].id}`;
+			// url = `http://106.225.193.35:83/api/alarm/alarm/APP-getAlarm?id=${data[0].id}`;
 			// url = `http://localhost:89/alarm/alarm/APP-getAlarm?id=${data[0].id}`;
 			// this.nowPosition = center;
 			// axios.post(url).then((res) => {
@@ -360,8 +516,61 @@
 		// },
 		//定位当前位置
 		locationMap() {
-			// console.log([this.lat, this.lng])
-			this.map.setView([this.lat, this.lng], 20);
+			let that = this;
+			if (!this.oncePosition) {
+				this.oncePosition = new $getPositions({
+					id: 1,
+					fn: function(res) {
+						// console.log(res);
+						that.mapPositionLoding = res.state;
+						if (!res.state) {
+							console.log(res)
+							if (typeof res.intlat === "string") {
+								// that.parent.showTip("获取定位失败")
+
+							} else {
+								that.addIcon([res.intlat[1], res.intlat[0]]);
+							}
+						}
+					}
+				}).init();
+				this.oncePosition.once();
+			} else {
+				this.oncePosition.once();
+			}
+
+			// if (!this.onPosition) {
+			// 	this.oncePosition.continuedTime();
+			// 	this.onPosition = !this.onPosition;
+			// } else {
+			// 	this.oncePosition.overContinued();
+			// 	this.onPosition = !this.onPosition;
+			// }
+		},
+		//添加图标
+		addIcon(intlat) {
+			var markers = L.markerClusterGroup(),
+				marker;
+			var transportIcon = L.Icon.extend({ //图标初始化
+				options: {
+					iconSize: [30, 30], // 图标尺寸
+				}
+			});
+			var carIcon = new transportIcon({ //引入图标
+				iconUrl: './img/dinw/dinw1.png'
+			});
+			var setData = (a) => { //定义图标
+				marker = L.marker(a, {
+					icon: carIcon,
+					myData: { //自定义数据
+						...a
+					}
+				});
+			}
+			setData(intlat)
+			markers.addLayer(marker);
+			this.map.addLayer(markers);
+			this.map.setView(intlat, this.map._zoom);
 		},
 		toJQposition() {
 			this.map.setView([this.oldlat, this.oldlng], 20);
@@ -384,6 +593,7 @@
 				that.lat = position.lat; //
 				that.lng = position.lng; //火星坐标 //TODO 实现业务代码逻辑 
 				that.haveShishiweizhi++; //控制只执行一次
+				console.log(position)
 				// console.log(that.haveShishiweizhi)
 				if (that.haveShishiweizhi == 2) {
 					// console.log(position)
@@ -534,38 +744,126 @@
 			for (let k in line) {
 				line[k] = line[k].split(" ").reverse();
 			}
-			// console.log(line)
-
-			// var latlngs = [
-			// 	['28.67705200351289', '115.88518439579809'],
-			// 	['28.68755200354289', '115.88518439574809'],
-			// 	['28.68755200354289', '115.85518439574809'],
-			// ]
-			// var polygon = L.polygon(latlngs, {
-			// 	color: '#000eff',
-			// 	fillColor: '#0000ed',
-			// 	weight: 2
-			// });
 			var polyline = L.polyline(line, {
 				color: '#FC5E20'
 			})
 			// let point = L.circle([28.67705200351289,115.88518439579809],{color:'#FF0000',fillColor:'#FF0000',radius:1000000,fillOpacity:1});
 			map.addLayer(polyline)
+		},
+		checkDomHeight(data) {
+			//  声明定时器
+			var timer = null;
+			//  检查dom是否执行完成
+			function checkDom() {
+				let useData;
+				if (data.domName == 'not') {
+					useData = this[data.name];
+				} else {
+					let dom = document[data.domName](data.name);
+					useData = dom;
+				}
+				if (useData) {
+					//  执行dom加载完成后的操作
+					//  清除定时器
+					if (!timer) {
+						clearTimeout(timer);
+					}
+					if (data.fn) {
+						//回调函数
+						data.fn(useData);
+						return;
+					} else {
+						return dom;
+					}
+				} else {
+					//  自我调用
+					timer = setTimeout(checkDom, 200);
+				}
+			}
+			//  首次执行
+			checkDom();
 		}
 	},
 	created() {},
 	mounted() {
+		let that = this;
 		this.getDataList();
-		// var time = setInterval(() => {
-		// 	if (this.haveShishiweizhi == 1) {
-		// 		this.getLocationData();
-		// 		// console.log(this.haveShishiweizhi)
+		//map适应任务详情高度
+		// console.log(document.getElementById("map"))
+		//因为按钮使用v-if所以在识别高度时候,but还没渲染所以手动添加 56px 不会变
+		console.log("应用数据")
+		let UmainHeight = document.getElementById("Umain").clientHeight;
+		if (this.data.iscation == "1") {
+			UmainHeight += 56;
+		}
+		let h = document.getElementById("mapVue").clientHeight;
+		this.checkDomHeight({
+			domName: "getElementById",
+			name: "map",
+			fn: function(dom) {
+				dom.style.height = h - UmainHeight + "px";
+				document.getElementsByClassName("dingwei")[0].style.bottom =
+					UmainHeight + 10 + "px";
+				that.map.invalidateSize(true);
+			}
+		})
+		//开启滑动
+		//计算最小单位
+		let rows = document.getElementsByClassName("once"),
+			rowsHeight = 45;
+		for (let ri = 0; ri < 3; ri++) {
+			rowsHeight += rows[ri].clientHeight;
+		}
+		this.domMove = new $moveWindow({
+			id: "Umain",
+			minHeight: rowsHeight,
+			maxHeight: UmainHeight,
+			critical: (UmainHeight - rowsHeight) / 4,
+			openAnimation: false,
+			fn: function(res) {
+				// console.log(that.map.options)
 
-		// 	} else if (this.haveShishiweizhi == 2) {
-		// 		clearInterval(time);
-		// 		time = null;
+				document.getElementById("map").style.height = h - res.height + "px";
+				// that.map.setView([that.map.options.center[0], +that.map.options.center[1] + 0.002], that.map
+				// 	.options.zoom);
+				// console.log(h - res.height)
+				if (res.state === true || res.state === false) {
+					that.map.invalidateSize(true);
+				}
+				document.getElementsByClassName("dingwei")[0].style.bottom = res.height +
+					10 + "px";
+			},
+		});
+		this.domMove.init();
+		// console.log(window.parent.setIntLat)
+		// that.setUniAppMsg("setIntLat")
+		// window.parent.setIntLat({
+		// 	rid: this.data.id,
+		// 	fn: (out) => {
+		// 		// console.log(out,"1111");
+		// 		// that.addIcon(out);
+		// 		that.addIcon([out[1], out[0]]);
 		// 	}
-		// }, 1000)
+		// })
+		// window.addEventListener('message', e => {
+		// 	console.log(e, 'HTML 接受APP发送过来的消息 (H5端)');
+		// 	app.dataList = JSON.parse(e.data.data).navigation
+		// 	console.log(app.dataList, '+++++++++');
+		// }, false)
+
+
+		// // HTML 接受APP发送过来的消息 (APP端)
+		// function requestData(data) {
+		// 	console.log(JSON.stringify(data), 'HTML 接受APP发送过来的消息 (APP端)');
+		// 	app.dataList = data.navigation // 赋值
+		// }
 	},
-	wacth: {}
+	wacth: {},
+	beforeDestroy() {
+		let that = this;
+		if (that.onPosition) {
+			that.onPosition.overContinued();
+			console.log("关闭地图")
+		}
+	}
 })

--
Gitblit v1.9.3