From df1c052d1f0d368cb78ebb1831980745bca11edc Mon Sep 17 00:00:00 2001
From: liuyg <376836862@qq.com>
Date: Thu, 10 Jun 2021 11:56:18 +0800
Subject: [PATCH] 数据图表的查询渲染

---
 widgets/searchL/Widget.js |  522 +++++++++++++++++++++++++++++++++++++++++++++------------
 1 files changed, 411 insertions(+), 111 deletions(-)

diff --git a/widgets/searchL/Widget.js b/widgets/searchL/Widget.js
index bc6f478..43880d5 100644
--- a/widgets/searchL/Widget.js
+++ b/widgets/searchL/Widget.js
@@ -27,10 +27,14 @@
 			baseClass: 'jimu-widget-searchL',
 			name: 'searchL',
 			layers: {},
+			states: 'one',
+			searchDatas: '',
 			startup: function () {
+				var that = this;
 
 				//关键词&&坐标
 				$("#i-f-gjz").click(function () {
+					that.states = 'one';
 					// console.log("gjz");
 					$("#i-f-zb").css({ 'backgroundColor': '#fff', 'color': '#000' });
 					$("#i-f-gjz").css({ 'backgroundColor': '#3E9FFC', 'color': '#fff' });
@@ -40,6 +44,7 @@
 					$("#local_data").show();
 				})
 				$("#i-f-zb").click(function () {
+					that.states = 'two';
 					// console.log("zb");
 					$("#i-f-gjz").css({ 'backgroundColor': '#fff', 'color': '#000' });
 					$("#i-f-zb").css({ 'backgroundColor': '#3E9FFC', 'color': '#fff' });
@@ -50,100 +55,130 @@
 				})
 
 				$(".searchImg").click(function () {
-					$('.searchLMain').show();
+					// console.log(2324345)
+					that.getInputData();
+					// console.log(that.searchDatas)
+					if (typeof that.searchDatas == 'string') {
+						var han = /^[\u4e00-\u9fa5]+$/;
+						if (han.test(that.searchDatas) || that.searchDatas == '  ') {
+							that.getData(0, that.searchDatas);
+							$('.searchLMain').show();
+						} else {
+							layui.use(function () { //亦可加载特定模块:layui.use(['layer', 'laydate', function(){
+								//得到各种内置组件
+								var layer = layui.layer //弹层
+								// layer.msg('请先填写关键字', { icon: 1, time: 1000, shift: 6 });
+								layer.tips('请先填写关键字', '.searchImg', {
+									tips: [2, '#FF5722']
+								});
+							})
+							$('.searchLMain').hide();
+						}
+					} else {
+						if (that.searchDatas[0] && that.searchDatas[1]) {
+							console.log(that.searchDatas);
+						} else {
+							layui.use(function () { //亦可加载特定模块:layui.use(['layer', 'laydate', function(){
+								//得到各种内置组件
+								var layer = layui.layer //弹层
+								// layer.msg('请先填写关键字', { icon: 1, time: 1000, shift: 6 });
+								layer.tips('请先填写完整坐标', '.searchImg', {
+									tips: [2, '#FF5722']
+								});
+							})
+						}
+					}
 				})
 				$(".searchColce").click(function () {
 					$('.searchLMain').hide();
 				})
 
-
 			},
-
-			closeToolBox: function (item) {
-				// if (item != this.name) {
-				// 	$('.tool-y-box').hide();
-				// }
-
+			getInputData: function () {
+				if (this.states == 'one') {
+					this.searchDatas = $('#local_data').val();
+				} else if (this.states == 'two') {
+					this.searchDatas = [$('#local_data1').val(), $('#local_data2').val()];
+				}
 			},
+			getData: function (index, val) {
+				val = val == '  ' ? '' : val;
+				var d = $('.searchLMain').find('.layui-tab-item').hide;
+				// console.log(d)
+				var that = this,
+					url = `http://171.34.76.171:8880/pyh-wetResource/monitorRecords/queryMonitorData?name=${val}&start&limit&type=${index}`
+					// url = `http://171.34.76.171:8880/pyh-wetResource/monitorRecords/queryMonitorData?name=&start&limit&type=${index}`
+					, token = 'Bearer eyJhbGciOiJIUzUxMiJ9.eyJpc3MiOiJlY2hpc2FuIiwic3ViIjoiYWRtaW4iLCJpYXQiOjE2MjMyMjU5OTcsImV4cCI6MTYyNTgxNzk5N30.zWpoKa5AK7xLIPNm-CXoHY9D5kpk9AiUTGkuAQOZi2Rdl2BfroT4IqxjBpyUPZlgwCjG2CoJqy_7rnnodpmqNw';
 
+				axios.get(url, {
+					headers: {
+						'token': token
+					}
+				}).then((res) => {
+					if (res.data.code == 200) {
+						var data = res.data.data.panoramaList || res.data.data.stationList || res.data.data.videoList || [];
+						// console.log(data)
+
+						var val = index;//数据的2和1对调
+						if (index == 1) {
+							val = 2;
+						} else if (index == 2) {
+							val = 1;
+						}
+
+						that.createDatas(data, val);
+					} else {
+						console.log('请求访问失败')
+					}
+				})
+			},
+			createDatas: function (d, n) {
+				this.map.entities.removeAll();//清除图标点
+				if (d == []) {
+					if (n == 0) {
+						this.beginLayUi(d);
+					} else if (n == 1) {
+						this.beginLayUi(1, d);
+					} else if (n == 2) {
+						this.beginLayUi(1, 1, d);
+					}
+				} else {
+					var i = 1;
+					for (var k in d) {
+						d[k].tableId = i++;
+						//赋图标点
+						this.shiti(d[k], +n + 1);
+					}
+					var data = d;
+					console.log(data)
+					if (n == 0) {
+						this.beginLayUi(data);
+					} else if (n == 1) {
+						this.beginLayUi(1, data);
+					} else if (n == 2) {
+						this.beginLayUi(1, 1, data);
+					}
+				}
+			},
 			onOpen: function () {
-				//面板打开的时候触发 (when open this panel trigger)layui.use(function(){
-				var data = [
-					{
-						"id": 1,
-						"username": "东湖",
-						"style1": "属性1",
-						"style2": "属性2",
-					},
-					{
-						"id": 2,
-						"username": "南矶山",
-						"style1": "属性1",
-						"style2": "属性2",
-					},
-					{
-						"id": 3,
-						"username": "东湖",
-						"style1": "属性1",
-						"style2": "属性2",
-					},
-					{
-						"id": 4,
-						"username": "南矶山",
-						"style1": "属性1",
-						"style2": "属性2",
-					},
-					{
-						"id": 5,
-						"username": "东湖",
-						"style1": "属性1",
-						"style2": "属性2",
-					},
-					{
-						"id": 6,
-						"username": "南矶山",
-						"style1": "属性1",
-						"style2": "属性2",
-					},
-					{
-						"id": 7,
-						"username": "东湖",
-						"style1": "属性1",
-						"style2": "属性2",
-					},
-					{
-						"id": 8,
-						"username": "南矶山",
-						"style1": "属性1",
-						"style2": "属性2",
-					},
-					{
-						"id": 9,
-						"username": "东湖",
-						"style1": "属性1",
-						"style2": "属性2",
-					},
-					{
-						"id": 10,
-						"username": "南矶山",
-						"style1": "属性1",
-						"style2": "属性2",
-					},
-					{
-						"id": 11,
-						"username": "东湖",
-						"style1": "属性1",
-						"style2": "属性2",
-					},
-					{
-						"id": 12,
-						"username": "南矶山",
-						"style1": "属性1",
-						"style2": "属性2",
-					},
+				//面板打开的时候触发
+				var that = this;
+				that.getData(0)
+				layui.use('element', function () {
+					var $ = layui.jquery
+						, element = layui.element;
+					element.on('tab(docDemoTabBrief)', function (elem) {
 
-				];
-				this.beginLayUi(data);
+						var val = elem.index;//数据的2和1对调
+						if (elem.index == 1) {
+							val = 2;
+						} else if (elem.index == 2) {
+							val = 1;
+						}
+
+						that.getData(val, that.searchDatas);
+					});
+				});
 			},
 
 			onClose: function () {
@@ -161,44 +196,309 @@
 			resize: function () {
 
 			},
-			beginLayUi: function (data) {
+			goOnPosition(arr, i, data) {
+				console.log(data)
+				this.map.camera.flyTo({
+					// destination: Cesium.Cartesian3.fromDegrees(Number(lng), Number(lat), Number(gaodu))
+					destination: Cesium.Cartesian3.fromDegrees(Number(arr[0]), Number(arr[1]), Number(8000))
+				});
+			},
+			//定位实体位置
+			shiti: function (data, i) {
+				var imgs = i == 1 ? 'images/addL/全景.png' : i == 2 ? 'images/addL/监控.png' : i == 3 ? 'images/addL/监测.png' : '';
+				this.map.entities.add({
+					id: data.id, // 实体ID
+					name: data.name, // 实体名称
+					position: Cesium.Cartesian3.fromDegrees(Number(data.lon), Number(data.lat)), // x,y 实体经纬度
+					// label: {
+					// 	show: true,
+					// 	text: item.siteName, // text 与实体相关的文字
+					// 	font: "700 14px '黑体'",
+					// 	fillColor: Cesium.Color.DEEPSKYBLUE,
+					// 	// backgroundColor: Cesium.Color.DEEPSKYBLUE,
+					// 	style: Cesium.LabelStyle.FILL_AND_OUTLINE,
+					// 	outlineWidth: 2,
+					// 	outlineColor: Cesium.Color.fromBytes(255, 255, 255), // 文字轮廓的颜色
+					// 	verticalOrigin: Cesium.VerticalOrigin.CENTER,//垂直位置
+					// 	horizontalOrigin: Cesium.HorizontalOrigin.LEFT,//水平位置
+					// 	pixelOffset: new Cesium.Cartesian2(10, -10), // 文字位置
+					// 	heightReference: Cesium.HeightReference.CLAMP_TO_GROUND,
+					// 	distanceDisplayCondition: new Cesium.DistanceDisplayCondition(1, entityConfig.showheight),
+					// 	disableDepthTestDistance: Number.POSITIVE_INFINITY
+					// },
+					billboard: {
+						show: true,
+						// image: 'images/addL/监测.png',
+						image: imgs,
+						// image: entityConfig.img,
+						width: 40,
+						// height: 80,
+						clampToGround: true,
+						heightReference: Cesium.HeightReference.CLAMP_TO_GROUND,
+						disableDepthTestDistance: Number.POSITIVE_INFINITY,
+						// rotation: Cesium.Math.toRadians(angle),
+					}
+				})
+			},
+			beginLayUi: function (data = 1, data1 = 1, data2 = 1) {
+				// data.push(...data)
+				// console.log(data)
+				var that = this;
 				layui.use(function () {
 					var element = layui.element
 						, table = layui.table //表格
 						, laypage = layui.laypage; //分页
 
-					table.render({
-						elem: '#test'
-						// , url: './data'
-						, height: 475
-						, page: { //支持传入 laypage 组件的所有参数(某些参数除外,如:jump/elem) - 详见文档
-							// layout: ['limit', 'count', 'prev', 'page', 'next', 'skip'] //自定义分页布局
-							layout: ['count', 'prev', 'page', 'next', 'skip'] //自定义分页布局
-							//,curr: 5 //设定初始在第 5 页
-							, groups: 3 //只显示 1 个连续页码
-							, first: false //不显示首页
-							, last: false //不显示尾页
-						}
-						, cols: [[
-							{ field: 'id', width: 59, align: 'center', unresize: true, title: '序号' }
-							, { field: 'username', width: 90, align: 'center', unresize: true, title: '图层名称' }
-							, { field: 'style1', width: 95, align: 'center', unresize: true, title: '图层属性1' }
-							, { field: 'style2', width: 95, align: 'center', unresize: true, title: '图层属性2' }
-							, { fixed: 'right', width: 115, align: 'center', unresize: true, title: '操作', toolbar: '#demoTable' }
-						]],
-						data: data,
-						//,skin: 'line' //表格风格
-						even: true
-						// , page: true //是否显示分页
-						, limits: false
-						, limit: 10 //每页默认显示的数量
+					if (data != 1) {
 
-					});
+						table.render({
+							elem: '#test'
+							// , url: './data'
+							, height: 475
+							, page: { //支持传入 laypage 组件的所有参数(某些参数除外,如:jump/elem) - 详见文档
+								// layout: ['limit', 'count', 'prev', 'page', 'next', 'skip'] //自定义分页布局
+								layout: ['count', 'prev', 'page', 'next', 'skip'] //自定义分页布局
+								//,curr: 5 //设定初始在第 5 页
+								, groups: 3 //只显示 1 个连续页码
+								, first: false //不显示首页
+								, last: false //不显示尾页
+							}
+							, cols: [[
+								{ field: 'tableId', width: 59, align: 'center', unresize: true, title: '序号' }
+								, { field: 'name', width: 90, align: 'center', unresize: true, title: '图层名称' }
+								, { field: 'remarks', width: 95, align: 'center', unresize: true, title: '图层属性1' }
+								, { field: 'createTime', width: 95, align: 'center', unresize: true, title: '图层属性2' }
+								, { fixed: 'right', align: 'center', unresize: true, title: '操作', toolbar: '#demoTable' }
+							]],
+							data: data,
+							//,skin: 'line' //表格风格
+							even: true
+							// , page: true //是否显示分页
+							, limits: false
+							, limit: 10 //每页默认显示的数量
+
+						});
+
+						table.on('tool(test)', function (obj) { //注:tool 是工具条事件名,test 是 table 原始容器的属性 lay-filter="对应的值"
+							var data = obj.data //获得当前行数据
+								, layEvent = obj.event; //获得 lay-event 对应的值
+							if (layEvent === 'detail') {
+								//   layer.msg('查看操作');
+								window.open(obj.data.panAddress);
+								// console.log(obj.data.panAddress)
+							} else if (layEvent === 'edit') {
+								that.goOnPosition([obj.data.lon, obj.data.lat], 1, obj.data);
+							}
+						});
+					}
+					if (data1 != 1) {
+						table.render({
+							elem: '#test1'
+							// , url: './data'
+							, height: 475
+							, page: { //支持传入 laypage 组件的所有参数(某些参数除外,如:jump/elem) - 详见文档
+								// layout: ['limit', 'count', 'prev', 'page', 'next', 'skip'] //自定义分页布局
+								layout: ['count', 'prev', 'page', 'next', 'skip'] //自定义分页布局
+								//,curr: 5 //设定初始在第 5 页
+								, groups: 3 //只显示 1 个连续页码
+								, first: false //不显示首页
+								, last: false //不显示尾页
+							}
+							, cols: [[
+								{ field: 'tableId', width: 59, align: 'center', unresize: true, title: '序号' }
+								, { field: 'name', width: 90, align: 'center', unresize: true, title: '图层名称' }
+								, { field: 'protectName', width: 95, align: 'center', unresize: true, title: '图层属性1' }
+								, { field: 'serviceUrl', width: 95, align: 'center', unresize: true, title: '图层属性2' }
+								, { fixed: 'right', align: 'center', unresize: true, title: '操作', toolbar: '#demoTable1' }
+							]],
+							data: data1,
+							//,skin: 'line' //表格风格
+							even: true
+							// , page: true //是否显示分页
+							, limits: false
+							, limit: 10 //每页默认显示的数量
+
+						});
+						table.on('tool(test1)', function (obj) { //注:tool 是工具条事件名,test 是 table 原始容器的属性 lay-filter="对应的值"
+							var data = obj.data //获得当前行数据
+								, layEvent = obj.event; //获得 lay-event 对应的值
+							if (layEvent === 'detail') {
+								//   layer.msg('查看操作');
+								var dom = $('#poput-m-t-video'),
+									str = `
+									<div class="header">${obj.data.name}--实时视频</div>
+									<video id="video1" class="video-js vjs-default-skin" width="100%" height="100%"
+										data-setup='{"controls" : true, "autoplay" : true, "preload" : "auto"}'>
+										<source src="${obj.data.flv}" type="video/x-flv">
+									</video>`;
+								dom.empty();
+								dom.append(str);
+
+								$('.jimu-widget-searchTabaPopup').css({ 'display': 'block' });
+								$('.jimu-widget-searchTabaPopup').find('.p-main').eq(0).css({ 'display': 'block' }).siblings().css({ 'display': 'none' });
+							} else if (layEvent === 'edit') {
+								that.goOnPosition([obj.data.lon, obj.data.lat], 2, obj.data);
+							}
+							// console.log(obj.data.name)
+						});
+					}
+					if (data2 != 1) {
+
+						table.render({
+							elem: '#test2'
+							// , url: './data'
+							, height: 475
+							, page: { //支持传入 laypage 组件的所有参数(某些参数除外,如:jump/elem) - 详见文档
+								// layout: ['limit', 'count', 'prev', 'page', 'next', 'skip'] //自定义分页布局
+								layout: ['count', 'prev', 'page', 'next', 'skip'] //自定义分页布局
+								//,curr: 5 //设定初始在第 5 页
+								, groups: 3 //只显示 1 个连续页码
+								, first: false //不显示首页
+								, last: false //不显示尾页
+							}
+							, cols: [[
+								{ field: 'tableId', width: 59, align: 'center', unresize: true, title: '序号' }
+								, { field: 'name', width: 90, align: 'center', unresize: true, title: '图层名称' }
+								, { field: 'stcd', width: 95, align: 'center', unresize: true, title: '图层属性1' }
+								, { field: 'createTime', width: 95, align: 'center', unresize: true, title: '图层属性2' }
+								, { fixed: 'right', align: 'center', unresize: true, title: '操作', toolbar: '#demoTable2' }
+							]],
+							data: data2,
+							//,skin: 'line' //表格风格
+							even: true
+							// , page: true //是否显示分页
+							, limits: false
+							, limit: 10 //每页默认显示的数量
+
+						});
+						table.on('tool(test2)', function (obj) { //注:tool 是工具条事件名,test 是 table 原始容器的属性 lay-filter="对应的值"
+							var data = obj.data //获得当前行数据
+								, layEvent = obj.event; //获得 lay-event 对应的值
+							if (layEvent === 'detail') {
+								//   layer.msg('查看操作');
+
+								// 监测、测站详情 表格
+
+
+								// console.log(obj.data.stcd)
+								// console.log(axios)
+								that.setXiangqing(obj);//渲染详情
+								that.getshuiwen(obj.data.stcd)//水文实时渲染
+								that.setbiaoti(obj.data)//表格各分部标题渲染
+
+								$('.jimu-widget-searchTabaPopup').css({ 'display': 'block' });
+								$('.jimu-widget-searchTabaPopup').find('.p-main').eq(1).css({ 'display': 'block' }).siblings().css({ 'display': 'none' });
+								// console.log(obj.data.name)
+							} else if (layEvent === 'edit') {
+								that.goOnPosition([obj.data.lon, obj.data.lat], 3, obj.data);
+							}
+						});
+					}
 
 					//…
 				});
 			},
+			setXiangqing(obj) {
+				var str = '';
+				var XQDom = $('.jimu-widget-searchTabaPopup').find('.xiangqing');
+				XQDom.empty();
 
+				str += '<table border="1" cellpadding="100">';
+				str += `<tr>
+							<th>测站名称:</th>
+							<td>${obj.data.name}</td>
+							<th>建设类型:</th>
+							<td>建设</td>
+						</tr>
+						<tr>
+							<th>经度:</th>
+							<td>${obj.data.lon}</td>
+							<th>纬度:</th>
+							<td>${obj.data.lat}</td>
+						</tr>
+						<tr>
+							<th>建站时间:</th>
+							<td>${obj.data.accessTime}</td>
+							<th>接入时间:</th>
+							<td>${obj.data.createTime}</td>
+						</tr>
+						<tr>
+							<th>所属保护区:</th>
+							<td>鄱阳湖南矶湿地国家级自然保护区</td>
+							<th>地址:</th>
+							<td>暂无</td>
+						</tr>
+						<tr>
+							<th>全景地址:</th>
+							<td colspan="3">${obj.data.panoramaUrl}/</td>
+						</tr>
+						<tr>
+							<th>测站简介:</th>
+							<td class="left" colspan="3">暂无</td>
+						</tr>
+						<tr>
+							<th>图片:</th>
+							<td class="left" colspan="3">
+							<img src="${obj.data.attList[0].uaOriginPath}" alt="">
+							</td>
+						</tr>`;
+				str += '</table>';
+				XQDom.append(str);
+			},
+			getshuiwen: function (stcd) {
+				var that = this;
+				var url = `http://171.34.76.171:8880/pyh-station/monitorData/queryNewestTimeEleDataByStcd?stcd=${stcd}`,
+					token = 'Bearer eyJhbGciOiJIUzUxMiJ9.eyJpc3MiOiJlY2hpc2FuIiwic3ViIjoiYWRtaW4iLCJpYXQiOjE2MjMyNDQxNDQsImV4cCI6MTYyNTgzNjE0NH0.wjtMw7hv8IYGxFKI9b1vo2ozMXD1pE0-02HinfPl-r8l0TYVg1YvMBxW_VzzFKoY1jeC6XByQQT-aC_mAvBnWA';
+				axios.get(url, {
+					headers: {
+						'token': token
+					}
+				}).then((res) => {
+					if (res.data.code == 200) {
+						var datashuiziyuan = res.data.data.MONITOR_WATER//水资源数据
+						that.setshishidata(datashuiziyuan, stcd);
+						var datakongqi = res.data.data.MONITOR_AIR//空气源数据
+						that.setshishidata(datakongqi, stcd, '#kongqishishi');
+						var dataqixiang = res.data.data.MONITOR_WEATHER//气象源数据
+						that.setshishidata(dataqixiang, stcd, '#qixiangshishi');
+					}
+				})
+			},
+			setshishidata: function (data, stcd, id = '#shuiwenshishi') {
+				var str = '',
+					shuiwenDom = $('.jimu-widget-searchTabaPopup').find(id)
+				shuiwenDom.empty();
+				str = `<table class="layui-table">
+				<colgroup>
+					<col width="150">
+					<col width="150">
+					<col width="200">
+					<col>
+				</colgroup>
+				<thead>
+					<tr>
+						<th>名称</th>
+						<th>数值</th>
+						<th>单位</th>
+					</tr>
+				</thead>
+				<tbody>`
+				for (var k in data) {
+					str += `<tr><td>${data[k].name}</td><td>${data[k].value}</td><td>${data[k].unit}</td></tr>`
+				}
+				str += `</tbody></table>
+				<input type="test" id="userMyStcd" style="display:none" value="${stcd}"/>`//占位传stcd 给图表历史查询用
+				shuiwenDom.append(str);
+
+			},
+			setbiaoti: function (data) {
+				var title = $('.jimu-widget-searchTabaPopup').find('.myOUrtitle');
+				title.empty();
+				title.append(data.name);
+				var time = $('.jimu-widget-searchTabaPopup').find('.myOUrtime');
+				time.empty();
+				time.append(data.createTime);
+			},
 
 			destroy: function () {
 				//销毁的时候触发

--
Gitblit v1.9.3