1.警情点击当前位置时,地图定位到当前位置点
2.警情信息调整,样式修改,信息上下拉动bug修复
| | |
| | | }, |
| | | success: (data) => { |
| | | that.useimg = JSON.parse(data.data).data; |
| | | that.$store.state.avatar = that.useimg; |
| | | //修改用户头像信息 |
| | | uni.request({ |
| | | url:"http://s16s652780.51mypc.cn/api/blade-user/updateUserInfo", |
| | |
| | | page { |
| | | width: 100%; |
| | | height: 100%; |
| | | background-color: rgb(138, 138, 138, 0.1); |
| | | } |
| | | |
| | | body { |
| | | padding: 0; |
| | | margin: 0; |
| | | } |
| | | |
| | | html, body, #mapVue { |
| | | html, |
| | | body, |
| | | #mapVue { |
| | | width: 100%; |
| | | height: 100%; |
| | | } |
| | |
| | | } |
| | | |
| | | #seedata { |
| | | position: fixed; |
| | | bottom: 0; |
| | | width: 100%; |
| | | height: 70%; |
| | | height: 50%; |
| | | z-index: 400; |
| | | background-color: #fff; |
| | | /* opacity: 0.9; */ |
| | | display: flex; |
| | | flex-direction: column; |
| | | border-radius: 60px 60px 0 0; |
| | |
| | | |
| | | .title { |
| | | width: 100%; |
| | | height: 20%; |
| | | /* border: 1px solid springgreen; */ |
| | | border-radius: 60px 60px 0 0; |
| | | position: relative; |
| | | /* top: -3%; */ |
| | | height: 70px; |
| | | border-radius: 30px 30px 0 0; |
| | | position: absolute; |
| | | bottom: 0; |
| | | background-color: #fff; |
| | | z-index: 101; |
| | | z-index: 999; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | flex-direction: column; |
| | | } |
| | | |
| | | .title-span { |
| | | height: 15%; |
| | | .device-name { |
| | | letter-spacing: 2px; |
| | | font-size: 15px; |
| | | } |
| | | |
| | | /* .title::after { |
| | | content: ''; |
| | | display: block; |
| | | width: 40px; |
| | | height: 40px; |
| | | border: springgreen solid 1px; |
| | | } */ |
| | | .device-number { |
| | | margin-top: 5px; |
| | | letter-spacing: 0.5px; |
| | | color: #808080; |
| | | font-size: 13px; |
| | | } |
| | | |
| | | .main { |
| | | width: 95%; |
| | | width: 100%; |
| | | height: 100%; |
| | | margin: 0 auto; |
| | | display: flex; |
| | | align-items: center; |
| | |
| | | border-top: 1px solid rgb(138, 138, 138); |
| | | } |
| | | |
| | | .f-m-once { |
| | | /* border: 1px solid rgb(194, 142, 0); */ |
| | | .div-alarm-people { |
| | | width: 96%; |
| | | height: 25%; |
| | | margin-left: 2%; |
| | | /* height: 80px; */ |
| | | } |
| | | |
| | | .div-alarm-people .f-m-once { |
| | | border-bottom: 1px solid rgb(243, 243, 243); |
| | | align-items: center; |
| | | width: 100%; |
| | | height: 100%; |
| | | height: 50%; |
| | | display: flex; |
| | | margin: auto; |
| | | } |
| | | |
| | | .div-alarm-people .f-m-o-t-img { |
| | | width: 20px; |
| | | height: 20px; |
| | | float: left; |
| | | } |
| | | |
| | | .div-alarm-people .f-m-o-title { |
| | | font-size: 14px; |
| | | margin-left: 10px; |
| | | float: left; |
| | | } |
| | | |
| | | .div-alarm-people .f-m-once-phone-number { |
| | | /* border-bottom: 1px solid rgb(128, 128, 128, 0.1); */ |
| | | align-items: center; |
| | | width: 100%; |
| | | height: 50%; |
| | | display: flex; |
| | | margin: auto; |
| | | } |
| | | |
| | | .div-alarm-people .f-m-once-alarm-type { |
| | | /* border-bottom: 1px solid rgb(128, 128, 128, 0.1); */ |
| | | align-items: center; |
| | | width: 100%; |
| | | height: 50%; |
| | | display: flex; |
| | | margin: auto; |
| | | } |
| | | |
| | | .div-alarm-people .f-m-once-desc { |
| | | /* border-bottom: 1px solid rgb(128, 128, 128, 0.1); */ |
| | | width: 100%; |
| | | height: 50% !important; |
| | | height: 80px; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | padding: 8px 0 8px 0 |
| | | } |
| | | |
| | | .f-m-o-title { |
| | | .div-alarm-people .f-m-o-t-img-desc { |
| | | width: 20px; |
| | | height: 20px; |
| | | float: left; |
| | | } |
| | | |
| | | .div-alarm-people .f-m-o-title-desc { |
| | | display: flex; |
| | | align-items: center; |
| | | width: 40%; |
| | | height: 40px; |
| | | line-height: 40px; |
| | | font-size: 14px; |
| | | margin-left: 10px; |
| | | float: left; |
| | | } |
| | | |
| | | .f-m-o-t-img { |
| | | width: 30px; |
| | | height: 30px; |
| | | padding-right: 10px; |
| | | .div-alarm-people .f-m-o-center { |
| | | font-size: 14px; |
| | | position: absolute; |
| | | left: 135px; |
| | | color: #808080; |
| | | } |
| | | |
| | | .f-m-o-center { |
| | | width: 60%; |
| | | .div-alarm-people .f-m-o-center-desc { |
| | | width: 200px; |
| | | word-wrap: break-word; |
| | | line-height: 1.5; |
| | | /* height: 60px; */ |
| | | /* background-color: rgb(46, 118, 228); */ |
| | | font-size: 14px; |
| | | position: absolute; |
| | | left: 135px; |
| | | color: #808080; |
| | | } |
| | | |
| | | .el-divider { |
| | | margin: 0 auto; |
| | | width: 90%; |
| | | .interval { |
| | | width: 100%; |
| | | height: 2%; |
| | | background-color: rgb(243, 243, 243); |
| | | } |
| | | |
| | | .but { |
| | | width: 100%; |
| | | height: 19%; |
| | | flex: 1; |
| | | display: flex; |
| | | flex-direction: row; |
| | | align-items: center; |
| | | justify-content: space-around; |
| | | padding-top: 5px; |
| | | } |
| | | |
| | | .buta { |
| | | /* border: 1px solid #4D7CEE; */ |
| | | } |
| | | |
| | | .shipingPopup { |
| | |
| | | height: 50px; |
| | | } |
| | | |
| | | |
| | | /* video::-webkit-media-controls-timeline { |
| | | display: none; |
| | | } */ |
| | | |
| | | .butb { |
| | | width: 80px; |
| | | height: 80px; |
| | | border: 1px solid rgb(46, 118, 228); |
| | | width: 200px; |
| | | height: 40px; |
| | | /* border: 1px solid rgb(46, 118, 228); */ |
| | | border-radius: 40px; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | color: #fff; |
| | | background-image: linear-gradient(to bottom, #3CA7F4, #4D7CEE); |
| | | /* background-image: linear-gradient(to bottom, #3CA7F4, #4D7CEE); */ |
| | | background-image: linear-gradient(to bottom, #00BFFF, #4D7CEE); |
| | | } |
| | | |
| | | |
| | | /* .resultFeedback { |
| | | position: fixed; |
| | |
| | | align-items: center; |
| | | justify-content: center; |
| | | } */ |
| | | |
| | | |
| | | /* .b-r-main { |
| | | width: 90%; |
| | |
| | | } |
| | | .b-r-i-o-ups{ |
| | | /* align-items: center; */ |
| | | |
| | | |
| | | } |
| | | .b-r-m-i-o-c-img { |
| | | width: 50px; |
| | |
| | | .b-r-m-but{ |
| | | position: relative; |
| | | left: calc(50% - 40px); |
| | | } */ |
| | | .butc { |
| | | } |
| | | */ .butc { |
| | | /* border: 1px solid #4D7CEE; */ |
| | | } |
| | | |
| | | .b-b-img { |
| | | width: 40px; |
| | | height: 40px; |
| | |
| | | }); |
| | | that.div.on('touchend', function () {//抬起重置 |
| | | once = true;//抬起重置鼠标点击位置 |
| | | var chous = null; |
| | | if (that.state == 'down') {//两种模式 |
| | | var chous = Math.abs(that.__yy - that.__sy) < that.__wy / 8; |
| | | // var chous = Math.abs(that.__yy - that.__sy) < that.__wy / 4; |
| | | chous = (that.__sy - that.__yy) < 0; |
| | | } else if (that.state == 'up') { |
| | | var chous = Math.abs(that.__yy - that.__sy) > that.__wy / 8; |
| | | // var chous = Math.abs(that.__yy - that.__sy) > that.__wy / 4; |
| | | chous = (that.__sy - that.__yy) < 0; |
| | | } |
| | | if (chous) { |
| | | that.changeDomPosition(0, 0, (parseFloat(that.__wy / 10) * 2.999));//改变位置 |
| | | if (!chous) { |
| | | //改变dom位置 |
| | | that.changeDomPosition(0, 0, (parseFloat(that.__wy / 10) * 3.999)); |
| | | // that.getDomPosition();//抬起获取dom位置/持续停留使用 |
| | | that.state = 'down'; |
| | | $('#map').css("height", (index, value) => {//改变地图高度 |
| | |
| | | }) |
| | | map.invalidateSize(true);//应用地图高度 |
| | | } else { |
| | | that.changeDomPosition(0, 0, that.__wy - 80);//改变位置 |
| | | // that.changeDomPosition(0, 0, that.__wy - 50); //改变位置 |
| | | that.changeDomPosition(0, 0, that.__wy); //改变位置 |
| | | // that.getDomPosition();//抬起获取dom位置/持续停留使用 |
| | | that.state = 'up'; |
| | | $('#map').css("height", (index, value) => {//改变地图高度 |
| | |
| | | //存放实时坐标 |
| | | lat: "", |
| | | lng: "", |
| | | |
| | | |
| | | seedata: '', |
| | | |
| | | nowPosition: '', |
| | | |
| | | shipingPopupShow: false, |
| | | shipingM3u8Url: '', |
| | | resultFeedbackPopupShow: false, |
| | |
| | | methods: { |
| | | getDataList() { |
| | | var that = this; |
| | | // var url = 'https://web.byisf.com/api/blade-jfpts/equipment/equipment/listAll'; |
| | | // axios.get(url).then((res) => { |
| | | // that.getdata = res.data.data; |
| | | // console.log(that.getdata) |
| | | that.beginCome(); |
| | | // }) |
| | | }, |
| | | beginCome() { |
| | | var data = [{ |
| | |
| | | "jd": "115.822311", |
| | | "wd": "28.646341" |
| | | }] |
| | | this.getdata = this.getQueryVariable('data') || data;//url解码 |
| | | console.log(this.getdata) |
| | | // this.getdata = [{ |
| | | // jd: 115.91042800000002, |
| | | // wd: 28.68094757898212, |
| | | // state: 0, |
| | | // dtype: 0, |
| | | // size: 300, |
| | | // title: '第一个' |
| | | // }];//url解码 |
| | | //url解码 |
| | | this.getdata = this.getQueryVariable('data') || data; |
| | | this.map = this.beginMap(this.map, this.getdata);//创建并接受map |
| | | this.move = new myDomMove('#seedata', '.title', '#map'); |
| | | // var dy = document.documentElement.clientHeight - 50; |
| | | // $('#seedata').animate({ top: dy + "px" }, 10); |
| | | // $('#map').css("height", (index, value) => {//改变地图高度 |
| | | // return '100%'; |
| | | // // }) |
| | | this.map.invalidateSize(true);//应用地图高度 |
| | | this.move.followFinger(this.map, 'down'); |
| | | }, |
| | | //url解码 |
| | | getQueryVariable(variable) { |
| | | var query = window.location.search.substring(1); |
| | | var vars = query.split("&"); |
| | |
| | | beginMap(map, data) { |
| | | var that = this, |
| | | center = [data[0].wd, data[0].jd], |
| | | url = `/api/blade-jfpts/alarm/alarm/APP-getAlarm?id=${data[0].id}`; |
| | | // console.log(center) |
| | | url = `http://s16s652780.51mypc.cn/api/blade-jfpts/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) => { |
| | | // console.log(res) |
| | | if (res.data.data.length != 0) { |
| | | var dat = res.data.data[0]; |
| | | for (var key in dat) { |
| | |
| | | } else { |
| | | this.seedata = data[0]; |
| | | } |
| | | // console.log(this.seedata, 1524545453) |
| | | }) |
| | | |
| | | |
| | | var createMap = () => { |
| | | map = L.map('map', { //初始化地图 |
| | | center: center, |
| | | zoom: 12, |
| | | zoom: 20, |
| | | minZoom: 2, |
| | | maxZoom: 17, |
| | | attributionControl: false, //去掉右下角 |
| | |
| | | L.tileLayer( //添加切片图层 |
| | | // "https://webmap-tile.sf-express.com/MapTileService/rt?x={x}&y={y}&z={z}", {//顺丰地图 |
| | | "https://webmap-tile.sf-express.com/MapTileService/rt?fetchtype=static&x={x}&y={y}&z={z}&project=sfmap&pic_size=256&pic_type=png8&data_name=361100&data_format=merged-dat&data_type=normal", {//顺丰地图 |
| | | // "http://webrd0{s}.is.autonavi.com/appmaptile?lang=zh_cn&size=1&scale=1&style=8&x={x}&y={y}&z={z}", { |
| | | |
| | | // subdomains: ["1", "2", "3", "4"], |
| | | // attribution: "高德" |
| | | } |
| | | ).addTo(map); |
| | | } |
| | |
| | | var transportIcon = L.Icon.extend({ //图标初始化 |
| | | options: { |
| | | iconSize: [30, 30], // 图标尺寸 |
| | | // iconAnchor: [30, 30], // 图标偏移量 |
| | | // popupAnchor: [-20, -20] // 弹出框偏移量 |
| | | } |
| | | }); |
| | | var carIcon = new transportIcon({ //引入图标 |
| | |
| | | busIcon = new transportIcon({ |
| | | iconUrl: './img/red.png' |
| | | }); |
| | | // console.log(data, 43545343) |
| | | var setData = (a) => {//定义图标 |
| | | marker = L.marker([a.wd, a.jd], { |
| | | icon: planeIcon, |
| | |
| | | } |
| | | for (var i = 0; i < data.length; i++) { |
| | | var a = data[i]; |
| | | // var title = a.title; |
| | | // if (a.dtype == 0) { |
| | | // setData(a); |
| | | // } else if (a.dtype == 1) { |
| | | // setData(a); |
| | | // } else if (a.dtype == 2) { |
| | | // setData(a); |
| | | // } |
| | | if (a.jd == '' || a.wd == '') { |
| | | console.log('没有坐标', i) |
| | | } else { |
| | | setData(a); |
| | | that.getDHLine(a.jd,a.wd); |
| | | } |
| | | // marker.bindPopup(title); |
| | | markers.addLayer(marker); |
| | | } |
| | | map.addLayer(markers); |
| | |
| | | // that.drawer = true; |
| | | that.seedata = a.layer.options.myData; |
| | | that.nowPosition = [that.seedata.wd,that.seedata.jd] |
| | | console.log(that.seedata) |
| | | $('#seedata').css('top', ''); |
| | | $('#map').css("height", (index, value) => {//改变地图高度 |
| | | return '50%'; |
| | | }) |
| | | map.invalidateSize(true);//应用地图高度 |
| | | // console.log(a.layer.options.myData); |
| | | that.move.destruction(); |
| | | that.move.followFinger(map, 'down'); |
| | | |
| | | }); |
| | | // that.seedata = data[0]; |
| | | this.nowPosition = center; |
| | | // map.on('mousemove', (e) => {//实时显示坐标 |
| | | // let latlng = e.latlng; |
| | | // console.log(latlng);// {lat: 30.59, lng: 114.32} |
| | | // }); |
| | | return map;//抛出map |
| | | }, |
| | | getDHLine(x, y) { |
| | |
| | | // zoom the map to the polyline |
| | | that.map.fitBounds(that.LxdhLine.getBounds()) |
| | | }, |
| | | getLocation() { |
| | | // if (navigator.geolocation) { |
| | | // // console.log(navigator.geolocation) |
| | | // navigator.geolocation.getCurrentPosition(onSuccess, onError); |
| | | |
| | | // } else { |
| | | // alert("您的浏览器不支持使用HTML 5来获取地理位置服务"); |
| | | // } |
| | | |
| | | // function onSuccess(position) { |
| | | // console.log('纬度: ' + position.coords.latitude + '\n' + |
| | | // '经度: ' + position.coords.longitude + '\n' + |
| | | // '海拔: ' + position.coords.altitude + '\n' + |
| | | // '水平精度: ' + position.coords.accuracy + '\n' + |
| | | // '垂直精度: ' + position.coords.altitudeAccura) |
| | | // } |
| | | // function onError(error) { |
| | | // switch (error.code) { |
| | | // case error.PERMISSION_DENIED: |
| | | // alert("您拒绝对获取地理位置的请求"); |
| | | // break; |
| | | // case error.POSITION_UNAVAILABLE: |
| | | // alert("位置信息是不可用的"); |
| | | // break; |
| | | // case error.TIMEOUT: |
| | | // alert("请求您的地理位置超时"); |
| | | // break; |
| | | // case error.UNKNOWN_ERROR: |
| | | // alert("未知错误"); |
| | | // break; |
| | | // } |
| | | // } |
| | | // this.map.locate({ |
| | | // setView: true, |
| | | // maxZoom: 16 |
| | | // }); |
| | | // console.log(this.map) |
| | | // this.map.on('locationfound', function (e) { |
| | | // // var radius = e.accuracy / 2; |
| | | // // L.marker(e.latlng).addTo(mapid).bindPopup("你就在这个圈内"); |
| | | // // L.circle(e.latlng, radius).addTo(mapid); |
| | | // console.log(e) |
| | | // }); |
| | | }, |
| | | handleClick(tab, event) { |
| | | // console.log(tab, event); |
| | | }, |
| | | //定位警情位置 |
| | | titleClick(){ |
| | | this.map.setView(this.nowPosition, 12); |
| | | this.map.setView(this.nowPosition, 20); |
| | | }, |
| | | locationMap() {//定位 |
| | | // this.map.setView(this.nowPosition, 12);//定警情位置 |
| | | // this.getLocation(); |
| | | // console.log(wx,12); |
| | | // wx.miniProgram.navigateTo({url: 'pages/workbench/workbench'}) |
| | | //定位当前位置 |
| | | locationMap() { |
| | | this.map.setView([this.lat, this.lng], 20); |
| | | }, |
| | | shipingClick(open) {//打开视频 |
| | | if (open) { |
| | |
| | | }); |
| | | newAxios |
| | | .post( |
| | | "/api_control", |
| | | {}, |
| | | { |
| | | "/api_control", {}, { |
| | | params: { |
| | | param: JSON.stringify({ PktType: "GetAccessToken" }), |
| | | }, |
| | |
| | | }, |
| | | |
| | | }, |
| | | created() { |
| | | }, |
| | | created() {}, |
| | | mounted() { |
| | | this.getDataList(); |
| | | this.getLocationData(); |
| | | }, |
| | | wacth: { |
| | | } |
| | | wacth: {} |
| | | }) |
| | |
| | | <div class="dingwei" @click="locationMap"> |
| | | <img style="width: 80%;height: 80%;" src="./img/dingwei.png" alt=""> |
| | | </div> |
| | | <div id="map"></div> |
| | | <div id="seedata"> |
| | | <div id="map"> |
| | | <div class="title" @click="titleClick"> |
| | | {{seedata.deviceName}} |
| | | <div class="title-span"> </div> |
| | | {{seedata.deviceNumber}} |
| | | <div class="title-span"> </div> |
| | | <div class="title-span"> </div> |
| | | <span class="device-name">{{seedata.deviceName}}</span> |
| | | <span class="device-number">{{seedata.deviceNumber}}</span> |
| | | </div> |
| | | </div> |
| | | <div id="seedata"> |
| | | <div class="main"> |
| | | <div class="div-alarm-people"> |
| | | <div class="f-m-once"> |
| | | <div class="f-m-o-title"> |
| | | <img class="f-m-o-t-img" src="./img/shiyongren.png" alt=""> |
| | | 使用方: |
| | | </div> |
| | | <div class="f-m-o-center">{{seedata.deptName}}</div> |
| | | </div> |
| | | <div class="f-m-once"> |
| | | <div class="f-m-o-title"> |
| | | <img class="f-m-o-t-img" src="./img/ren.png" alt=""> |
| | | 接警人: |
| | | </div> |
| | | <div class="f-m-o-title">接警人</div> |
| | | <div class="f-m-o-center">{{seedata.alarmPeople}}</div> |
| | | </div> |
| | | <div class="f-m-once"> |
| | | <div class="f-m-o-title"> |
| | | <div class="f-m-once-phone-number"> |
| | | <img class="f-m-o-t-img" src="./img/dianhua.png" alt=""> |
| | | 联系电话: |
| | | </div> |
| | | <div class="f-m-o-title">联系电话</div> |
| | | <div class="f-m-o-center">{{seedata.phoneNumber}}</div> |
| | | </div> |
| | | <el-divider></el-divider> |
| | | <div class="f-m-once"> |
| | | <div class="f-m-o-title"> |
| | | <img class="f-m-o-t-img" src="./img/shijian.png" alt=""> |
| | | 报警时间: |
| | | </div> |
| | | |
| | | <div class="interval"></div> |
| | | |
| | | <div class="div-alarm-people"> |
| | | <div class="f-m-once"> |
| | | <img class="f-m-o-t-img" src="./img/shijian.png" alt=""> |
| | | <div class="f-m-o-title">报警时间</div> |
| | | <div class="f-m-o-center">{{seedata.alarmTime}}</div> |
| | | </div> |
| | | <div class="f-m-once"> |
| | | <div class="f-m-o-title"> |
| | | <div class="f-m-once-alarm-type"> |
| | | <img class="f-m-o-t-img" src="./img/leixing.png" alt=""> |
| | | 报警类型: |
| | | </div> |
| | | <div class="f-m-o-title">报警类型</div> |
| | | <div class="f-m-o-center">{{seedata.alarmType}}</div> |
| | | </div> |
| | | <el-divider></el-divider> |
| | | <div class="f-m-once"> |
| | | <div class="f-m-o-title"> |
| | | <img class="f-m-o-t-img" src="./img/beizhu.png" alt=""> |
| | | 备注: |
| | | </div> |
| | | <div class="f-m-o-center">{{seedata.bz}}</div> |
| | | <div class="interval"></div> |
| | | |
| | | <div class="div-alarm-people"> |
| | | <div class="f-m-once-desc"> |
| | | <img class="f-m-o-t-img-desc" src="./img/beizhu.png" alt=""> |
| | | <div class="f-m-o-title-desc">备注</div> |
| | | <div class="f-m-o-center-desc">{{seedata.bz}}</div> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="interval"></div> |
| | | <div class="but"> |
| | | <div class="buta" @click="shipingClick(true)"> |
| | | <img class="b-b-img" src="./img/shiping.png" alt=""> |
| | |
| | | }); |
| | | that.div.on('touchend', function() { //抬起重置 |
| | | console.log("触摸停止") |
| | | console.log(that.__yy, 123) |
| | | console.log(that.__sy, 124) |
| | | once = true; //抬起重置鼠标点击位置 |
| | | var chous = null; |
| | | if (that.state == 'down') { //两种模式 |