/////////////////////////////////////////////////////////////////////////// // Copyright © 2019 zhongsong. All Rights Reserved. // 模块描述:显示坐标 /////////////////////////////////////////////////////////////////////////// define([ 'dojo/_base/declare', 'dojo/_base/lang', 'dojo/_base/array', 'dojo/_base/html', 'dojo/topic', 'jimu/BaseWidget', 'jimu/utils', 'jimu/css!libs/zTree_v3/css/zTreeStyle/zTreeStyle.css', 'libs/zTree_v3/js/jquery.ztree.all', './Cesiumadd' ], function (declare, lang, array, html, topic, BaseWidget, aspect, string, utils ) { return declare([BaseWidget], { baseClass: 'jimu-widget-searchL', name: 'searchL', layers: {}, states: 'one', searchDatas: '', addOneEntitys: null, startup: function () { var that = this; //关键词&&坐标 $("#i-f-gjz").click(function () { that.states = 'one'; $("#i-f-zb").css({ 'backgroundColor': '#fff', 'color': '#969696' }); $("#i-f-gjz").css({ 'backgroundColor': '#3E9FFC', 'color': '#fff' }); // $("#inputTwo").css({ 'display': 'none' }); // $("#local_data").css({ 'display': 'inline-block' }); $("#inputTwo").hide(); $("#local_data").show(); }) $("#i-f-zb").click(function () { that.states = 'two'; $("#i-f-gjz").css({ 'backgroundColor': '#fff', 'color': '#969696' }); $("#i-f-zb").css({ 'backgroundColor': '#3E9FFC', 'color': '#fff' }); // $("#local_data").css({ 'display': 'none' }); // $("#inputTwo").css({ 'display': 'inline-block' }); $("#inputTwo").show(); $("#local_data").hide(); }) $(".searchImg").click(function () { that.getInputData(); that.addOneEntitys.removeAll(); if (typeof that.searchDatas == 'string') { var han = /^[\u4e00-\u9fa5]+$/; if (han.test(that.searchDatas) || that.searchDatas == ' ') { that.getData(0, that.searchDatas); $('.searchLMain').show(); $('.searchLMain').find('ul.layui-tab-title li:eq(0)').addClass('layui-this').siblings().removeClass('layui-this'); $('.searchLMain').find('div.layui-tab-content > div.layui-tab-item:eq(0)').addClass('layui-show').siblings().removeClass('layui-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]) { that.map.camera.flyTo({ // destination: Cesium.Cartesian3.fromDegrees(Number(lng), Number(lat), Number(gaodu)) destination: Cesium.Cartesian3.fromDegrees(Number(that.searchDatas[0]), Number(that.searchDatas[1]), Number(8000)) }); } 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(); that.addOneEntitys.removeAll(); topic.publish('getLegendsData', "legends", ''); }) $("#local_data").keyup(function (e) { // console.log(e); that.getInputData(); if (e.keyCode == 13 && typeof that.searchDatas == 'string') { that.addOneEntitys.removeAll(); var han = /^[\u4e00-\u9fa5]+$/; if (han.test(that.searchDatas) || that.searchDatas == ' ') { that.getData(0, that.searchDatas); $('.searchLMain').show(); $('.searchLMain').find('ul.layui-tab-title li:eq(0)').addClass('layui-this').siblings().removeClass('layui-this'); $('.searchLMain').find('div.layui-tab-content > div.layui-tab-item:eq(0)').addClass('layui-show').siblings().removeClass('layui-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(); } } }) }, 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; 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 || []; 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.addOneEntitys.removeAll();//清除图标点 if (d == []) { if (n == 0) { this.beginLayUi(d); topic.publish('getLegendsData', "legends", d, "./images/addL/全景.png", "全景站点"); } else if (n == 1) { this.beginLayUi(1, d); topic.publish('getLegendsData', "legends", d, "./images/addL/监控.png", "监控站点"); } else if (n == 2) { this.beginLayUi(1, 1, d); topic.publish('getLegendsData', "legends", d, "./images/addL/全景.png", "监测站点"); } } else { var i = 1; for (var k in d) { d[k].tableId = i++; //赋图标点 this.shiti(d[k], +n + 1); } var data = d; if (n == 0) { this.beginLayUi(data); topic.publish('getLegendsData', "legends", d, "./images/addL/全景.png", "全景站点"); } else if (n == 1) { this.beginLayUi(1, data); topic.publish('getLegendsData', "legends", d, "./images/addL/监控.png", "监控站点"); } else if (n == 2) { this.beginLayUi(1, 1, data); topic.publish('getLegendsData', "legends", d, "./images/addL/监测.png", "监测站点"); } } }, onOpen: function () { var dataSourceOne = new Cesium.CustomDataSource(); this.addOneEntitys = dataSourceOne.entities; this.map.dataSources.add(dataSourceOne); //面板打开的时候触发 var that = this; layui.use('element', function () { var $ = layui.jquery , element = layui.element; element.on('tab(docDemoTabBrief)', function (elem) { var val = elem.index;//数据的2和1对调 if (elem.index == 1) { val = 2; } else if (elem.index == 2) { val = 1; } that.getData(val, that.searchDatas); }); }); // 地图图标点击事件 this.movehandLer(); }, // 获取鼠标事件 movehandLer: function movehandLer() { // 取消默认双击事件 this.map.cesiumWidget.screenSpaceEventHandler.removeInputAction(Cesium.ScreenSpaceEventType.LEFT_DOUBLE_CLICK); // 获取鼠标事件 this.mountainHandler = new Cesium.ScreenSpaceEventHandler(this.map.scene.canvas); // 给鼠标左键添加事件函数 // this.mountainHandler.setInputAction(lang.hitch(this, this.mouseMove), Cesium.ScreenSpaceEventType.MOUSE_MOVE); this.mountainHandler.setInputAction(lang.hitch(this, this.clickHand), Cesium.ScreenSpaceEventType.LEFT_CLICK); }, // 注册鼠标左键单击事件 clickHand: function clickHand(data) {// 全局鼠标点击图标事件 渲染地图图标时 添加个相对应的数组储存该对象数据 通过数组是否存在判断点击的项目 var pickedObjects = this.map.scene.drillPick(data.position) || 0; // console.log(pickedObjects); if (pickedObjects.length != 0) { if (pickedObjects[0].primitive.id != undefined) { if (pickedObjects[0].primitive.id.onceData != undefined) {//搜索图标点击事件 // console.log('onceData') var data = pickedObjects[0].primitive.id.onceData[1]; if (pickedObjects[0].primitive.id.onceData[0] == 1) {//全景 var address = data.panAddress; var dom = $('.jimu-widget-searchTabaPopup').find('.header'), str = `${data.name}--全景`; dom.empty(); dom.append(str); // console.log(data) dom = $('#poput-m-t-quanjing'); str = ``; 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' }); } if (pickedObjects[0].primitive.id.onceData[0] == 2) {//监控 var dom = $('.jimu-widget-searchTabaPopup').find('.header'), str = `${data.name}--实时视频`; dom.empty(); dom.append(str); // console.log(data) if (data.flv) { dom = $('#poput-m-t-video'); str = ` `; dom.empty(); dom.append(str); if (flvjs.isSupported()) { var videoElement = document.getElementById('poput-m-t-video-video'); var flvPlayer = flvjs.createPlayer({ type: 'flv', url: data.flv }); flvPlayer.attachMediaElement(videoElement); flvPlayer.load(); flvPlayer.play(); } window.$myVideoFlvplayer = flvPlayer; // var time = setTimeout(() => { // }, 2000); } else { var dom = $('#poput-m-t-video'), str = `
·暂无视频
`; 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' }); } if (pickedObjects[0].primitive.id.onceData[0] == 3) {//监测 console.log('监测', data) } } else if (pickedObjects[0].primitive.id.SQLData != undefined) {//SQL查询图标点击事件 // console.log('SQLData') } else if (pickedObjects[0].primitive.id.spatialQueryData != undefined) {//SQL查询图标点击事件 var data = pickedObjects[0].primitive.id.spatialQueryData; data.name = pickedObjects[0].primitive.id.name; data.dom = pickedObjects[0].primitive.id.description; // console.log(data); var doms = $('#spatialQueryValuemain'); var domo = $('#spatialQueryValue'); doms.empty(); doms.append('
name:' + data.name + '
' + data.dom._value); domo.show(); } } } }, onClose: function () { //面板关闭的时候触发 (when this panel is closed trigger) }, onMinimize: function () { this.resize(); }, onMaximize: function () { this.resize(); }, resize: function () { }, goOnPosition(arr, i, 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) { // console.log(data) var imgs = i == 1 ? 'images/addL/全景.png' : i == 2 ? 'images/addL/监控.png' : i == 3 ? 'images/addL/监测.png' : ''; this.addOneEntitys.add({ id: data.id, // 实体ID name: data.name, // 实体名称 position: Cesium.Cartesian3.fromDegrees(Number(data.lon), Number(data.lat)), // x,y 实体经纬度 label: { show: true, text: data.name, // text 与实体相关的文字 font: "700 20px '黑体'", fillColor: Cesium.Color.fromCssColorString("rgba(57,165,253)"), // 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.CENTER,//水平位置 pixelOffset: new Cesium.Cartesian2(0, -40), // 文字位置 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: 27, height: 40, clampToGround: true, heightReference: Cesium.HeightReference.CLAMP_TO_GROUND, disableDepthTestDistance: Number.POSITIVE_INFINITY, // rotation: Cesium.Math.toRadians(angle), }, onceData: [i, data] }) }, beginLayUi: function (data = 1, data1 = 1, data2 = 1) { // console.log(data,data1,data2) var that = this; layui.use(function () { var element = layui.element , table = layui.table //表格 , laypage = layui.laypage; //分页 if (data != 1) { table.render({ elem: '#test' // , url: './data'全景 , 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: 'protectArea', width: 95, align: 'center', unresize: true, title: '所属保护区' } , { field: 'remarks', width: 95, align: 'center', unresize: true, title: '备注' } , { fixed: 'right', align: 'center', unresize: true, title: '操作', toolbar: '#demoTable' } ]], data: data, //,skin: 'line' //表格风格 even: true // , page: true //是否显示分页 , limits: false , limit: 10 //每页默认显示的数量 , done: function (res, curr, count) { that.addTitle(); } }); table.on('row(test)', function (obj) { that.goOnPosition([obj.data.lon, obj.data.lat], 1, obj.data); }); 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); } else if (layEvent === 'edit') { that.goOnPosition([obj.data.lon, obj.data.lat], 1, obj.data); } }); } if (data1 != 1) { table.render({ elem: '#test1' // , url: './data'//监控 , 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: '所属保护区' } , { field: 'remark', width: 95, align: 'center', unresize: true, title: '备注' } , { fixed: 'right', align: 'center', unresize: true, title: '操作', toolbar: '#demoTable1' } ]], data: data1, //,skin: 'line' //表格风格 even: true // , page: true //是否显示分页 , limits: false , limit: 10 //每页默认显示的数量 , done: function (res, curr, count) { that.addTitle(); } }); table.on('tool(test1)', function (obj) { //注:tool 是工具条事件名,test 是 table 原始容器的属性 lay-filter="对应的值" var data = obj.data //获得当前行数据 , layEvent = obj.event; //获得 lay-event 对应的值 if (layEvent === 'detail') { var dom = $('.header'), str = `${obj.data.name}--实时视频`; dom.empty(); dom.append(str); if (obj.data.flv) { var dom = $('#poput-m-t-video'), str = ` `; dom.empty(); dom.append(str); if (flvjs.isSupported()) { var videoElement = document.getElementById('poput-m-t-video-video'); var flvPlayer = flvjs.createPlayer({ type: 'flv', url: obj.data.flv }); flvPlayer.attachMediaElement(videoElement); flvPlayer.load(); flvPlayer.play(); } window.$myVideoFlvplayer = flvPlayer; // var time = setTimeout(() => { // }, 2000); } else { var dom = $('#poput-m-t-video'), str = `
·暂无视频
`; 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); } }); table.on('row(test1)', function (obj) { that.goOnPosition([obj.data.lon, obj.data.lat], 2, obj.data); }); } if (data2 != 1) { table.render({ elem: '#test2' // , url: './data'//检测 , 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: 'wetlandName_', width: 95, align: 'center', unresize: true, title: '所属保护区' } , { field: 'remark', width: 95, align: 'center', unresize: true, title: '备注' } , { fixed: 'right', align: 'center', unresize: true, title: '操作', toolbar: '#demoTable2' } ]], data: data2, //,skin: 'line' //表格风格 even: true // , page: true //是否显示分页 , limits: false , limit: 10 //每页默认显示的数量 , done: function (res, curr, count) { that.addTitle(); } }); 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('查看操作'); // 监测、测站详情 表格 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' }); } else if (layEvent === 'edit') { that.goOnPosition([obj.data.lon, obj.data.lat], 3, obj.data); } }); table.on('row(test2)', function (obj) { that.goOnPosition([obj.data.lon, obj.data.lat], 3, obj.data); }); } // that.addTitle(); //… }); }, addTitle: function () { let tdom = $("[data-field]"); for (var i = 0; i < tdom.length; i++) { $(tdom[i]).attr("title", $(tdom[i]).text()) } }, setXiangqing(obj) { var str = ''; var XQDom = $('.jimu-widget-searchTabaPopup').find('.xiangqing'); XQDom.empty(); str += ''; str += ``; str += '
测站名称: ${obj.data.name} 建设类型: 建设
经度: ${obj.data.lon} 纬度: ${obj.data.lat}
建站时间: ${obj.data.accessTime} 接入时间: ${obj.data.createTime}
所属保护区: 鄱阳湖南矶湿地国家级自然保护区 地址: 暂无
全景地址: ${obj.data.panoramaUrl}/
测站简介: 暂无
图片:
'; XQDom.append(str); // 相册层 layui.use(['form', 'layer'], function () { //----------模块---------- var form = layui.form; var layer = layui.layer; layer.photos({ photos: '#popupsimg' , anim: 5 //0-6的选择,指定弹出图片动画类型,默认随机(请注意,3.0之前的版本用shift参数) }); }); }, 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 date = new Date(); var date1 = new Date(+new Date() + 8 * 3600 * 1000).toISOString().replace(/T/g, ' ').replace(/\.[\d]{3}Z/, ''); var myDate = date.setDate(date.getDate() - 7); var date2 = new Date(+new Date(myDate) + 8 * 3600 * 1000).toISOString().replace(/T/g, ' ').replace(/\.[\d]{3}Z/, ''); // console.log([date1, date2], 123456789); //设置value $('#test-startDate-1').val(date2); $('#test-endDate-1').val(date1); window.defultEchartsTimes = [date2, date1]; // var time = setTimeout(() => { $('.jimu-widget-searchTabaPopup').find('#query').click(); // clearTimeout(time); // time = null; // }, 500); var str = '', shuiwenDom = $('.jimu-widget-searchTabaPopup').find(id) shuiwenDom.empty(); str = `` for (var k in data) { str += `` } str += `
名称 数值 单位
${data[k].name}${data[k].value}${data[k].unit}
`//占位传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 () { //销毁的时候触发 //todo //do something before this func this.inherited(arguments); } }); });