Merge branch 'master' of http://192.168.0.105:10010/r/srs-police-affairs
| | |
| | | * @Author: shuishen 1109946754@qq.com |
| | | * @Date: 2023-02-21 14:16:56 |
| | | * @LastEditors: shuishen 1109946754@qq.com |
| | | * @LastEditTime: 2023-02-22 11:23:04 |
| | | * @LastEditTime: 2023-03-06 10:22:12 |
| | | * @FilePath: \srs-police-affairs\public\static\config.js |
| | | * @Description: |
| | | * |
| | |
| | | VUE_APP_INTRANET_VIDEO: 'http://10.141.11.11:18185/api', |
| | | |
| | | // 设备通道号 |
| | | VUE_APP_OUTER_NET_EQUIPMENT: '34020000002000000003', |
| | | VUE_APP_OUTER_NET_EQUIPMENT: '36110000002009999000', |
| | | VUE_APP_INTRANET_EQUIPMENT: '36110000002009999000', |
| | | |
| | | // 模型地址 |
| | |
| | | * @Author: shuishen 1109946754@qq.com |
| | | * @Date: 2022-08-18 15:58:10 |
| | | * @LastEditors: shuishen 1109946754@qq.com |
| | | * @LastEditTime: 2023-02-11 15:24:58 |
| | | * @LastEditTime: 2023-03-06 14:42:43 |
| | | * @FilePath: \srs-police-affairs\src\App.vue |
| | | * @Description: app.vue |
| | | * |
| | | * Copyright (c) 2022 by shuishen 1109946754@qq.com, All Rights Reserved. |
| | | --> |
| | | <template> |
| | | <div |
| | | id="app" |
| | | :style="{ |
| | | <div id="app" :style="{ |
| | | width: (useSceen == true ? currentWidth + 'px' : '100%'), |
| | | height: (useSceen == true ? currentHeight + 'px' : '100%') |
| | | }" |
| | | > |
| | | }"> |
| | | <router-view></router-view> |
| | | </div> |
| | | </template> |
| | |
| | | * @Author: shuishen 1109946754@qq.com |
| | | * @Date: 2022-08-18 17:00:30 |
| | | * @LastEditors: shuishen 1109946754@qq.com |
| | | * @LastEditTime: 2023-03-02 10:05:29 |
| | | * @LastEditTime: 2023-03-06 14:58:38 |
| | | * @FilePath: \srs-police-affairs\src\components\map\index.vue |
| | | * @Description: 公用地图组件 |
| | | * |
| | |
| | | '31', |
| | | '32', |
| | | '33', |
| | | '34' |
| | | '34', |
| | | '35', |
| | | '36', |
| | | '37', |
| | | '38', |
| | | '39', |
| | | '40', |
| | | '41', |
| | | '42', |
| | | '43', |
| | | '44', |
| | | '45', |
| | | '46', |
| | | '47', |
| | | '48', |
| | | '49', |
| | | '50' |
| | | ] |
| | | |
| | | var siteEntitylayers = null |
| | |
| | | that.switchImg() |
| | | |
| | | // 外网 |
| | | global.viewer.imageryLayers.addImageryProvider( |
| | | new global.DC.Namespace.Cesium.UrlTemplateImageryProvider({ |
| | | url: 'http://t{s}.tianditu.gov.cn/DataServer?T=vec_w&x={x}&y={y}&l={z}&tk=e45274b0235bb913eceb393aabbf9c9c', |
| | | subdomains: ['0', '1', '2', '3', '4', '5', '6', '7'], |
| | | format: 'image/jpeg', |
| | | show: true, |
| | | maximumLevel: 18 |
| | | }) |
| | | ) |
| | | // global.viewer.imageryLayers.addImageryProvider( |
| | | // new global.DC.Namespace.Cesium.UrlTemplateImageryProvider({ |
| | | // url: 'http://t{s}.tianditu.gov.cn/DataServer?T=vec_w&x={x}&y={y}&l={z}&tk=e45274b0235bb913eceb393aabbf9c9c', |
| | | // subdomains: ['0', '1', '2', '3', '4', '5', '6', '7'], |
| | | // format: 'image/jpeg', |
| | | // show: true, |
| | | // maximumLevel: 18 |
| | | // }) |
| | | // ) |
| | | |
| | | global.viewer.imageryLayers.addImageryProvider( |
| | | new global.DC.Namespace.Cesium.UrlTemplateImageryProvider({ |
| | | url: '/sryx/{z}/{x}/{y}.png', |
| | | }) |
| | | ) |
| | | // global.viewer.imageryLayers.addImageryProvider( |
| | | // new global.DC.Namespace.Cesium.UrlTemplateImageryProvider({ |
| | | // url: '/sryx/{z}/{x}/{y}.png', |
| | | // }) |
| | | // ) |
| | | |
| | | // 设置地图初始位置,角度等 |
| | | global.viewer.camera.setView({ |
| | |
| | | |
| | | .add-polygon-box { |
| | | .el-dialog { |
| | | width: countSizeVw(340, 1920); |
| | | height: countSizeVh(220); |
| | | width: countSizeVw(300, 1920); |
| | | height: countSizeVh(166); |
| | | |
| | | .el-dialog__body { |
| | | .el-button { |
| | |
| | | } |
| | | |
| | | .value-name-box { |
| | | width: countSizeVh(110); |
| | | } |
| | | |
| | | .alpha { |
| | | width: calc(100% - countSizeVw(130, 1920)); |
| | | width: countSizeVh(90); |
| | | } |
| | | |
| | | input { |
| | | height: countSizeVh(30); |
| | | font-size: countSizeVh(16); |
| | | border: countSizeVh(1) solid rgb(0, 92, 169); |
| | | } |
| | | |
| | | .placeholder { |
| | | height: countSizeVh(26); |
| | | } |
| | | |
| | | } |
| | |
| | | .edit-plot-box { |
| | | .el-dialog { |
| | | width: countSizeVw(300, 1920); |
| | | height: countSizeVh(220); |
| | | height: countSizeVh(180); |
| | | |
| | | .el-dialog__body { |
| | | .el-button { |
| | |
| | | height: countSizeVh(32); |
| | | line-height: countSizeVh(32); |
| | | width: countSizeVw(120, 1920); |
| | | } |
| | | |
| | | .alpha { |
| | | width: calc(100% - countSizeVw(130, 1920)); |
| | | } |
| | | |
| | | input { |
| | |
| | | * @Author: shuishen 1109946754@qq.com |
| | | * @Date: 2022-08-18 16:18:17 |
| | | * @LastEditors: shuishen 1109946754@qq.com |
| | | * @LastEditTime: 2023-03-03 15:48:24 |
| | | * @LastEditTime: 2023-03-06 14:56:01 |
| | | * @FilePath: \srs-police-affairs\src\views\activity\index.vue |
| | | * @Description: 安保活动 |
| | | * |
| | |
| | | </li> |
| | | <li> |
| | | <button @click="drawArrow('tailed_attack_arrow')" title="燕尾箭头">燕尾箭头</button> |
| | | </li> |
| | | <li> |
| | | <button @click="drawArrow('polygon')" title="多边形">多边形</button> |
| | | </li> |
| | | <li> |
| | | <button @click="drawArrow('polygon')" title="多边形">多边形</button> |
| | | </li> |
| | | <li> |
| | | <button @click="drawArrow('billboard','icon1')" title="头像1">头像1</button> |
| | | </li> |
| | | <li> |
| | | <button @click="drawArrow('billboard', 'icon1')" title="头像1">头像1</button> |
| | | </li> |
| | | </ul> |
| | | </div> |
| | | <div> |
| | |
| | | <ul> |
| | | <li> |
| | | <!-- <el-button |
| | | ></el-button>--> |
| | | ></el-button>--> |
| | | <button @click="draw('polyline', 'policecar')" title="巡逻路线"> |
| | | <img src="../../../public/img/icon/route1.png" style="height:100%" /> |
| | | </button> |
| | |
| | | |
| | | <el-dialog :title="polygonAddTitle" :modal="false" :visible.sync="polygonAddVisible" :close-on-click-modal="true" |
| | | class="add-polygon-box" :before-close="cancelSavePolygon"> |
| | | <!-- <div class="line" v-show="isNeedName"> |
| | | <div class="value-name-box">设置名称:</div> |
| | | <div> |
| | | <input type="text" v-model="polygonName" /> |
| | | </div> |
| | | </div> --> |
| | | <div class="line" v-show="isNeedPolygonType"> |
| | | <div class="value-name-box">选择类型:</div> |
| | | <div class="select-type"> |
| | | <el-select size="small" v-model="polygonAreaType" placeholder="请选择区域类型"> |
| | | <el-option v-for="item in polygonAreaOption" :key="item.value" :label="item.label" |
| | | :value="item.value"></el-option> |
| | | <el-option v-for="item in polygonAreaOption" :key="item.value" :label="item.label" |
| | | :value="item.value"></el-option> |
| | | </el-select> |
| | | </div> |
| | | </div> |
| | |
| | | |
| | | <el-dialog title="修改标绘" :modal="false" :visible.sync="editPlotVisible" :close-on-click-modal="true" |
| | | class="edit-plot-box"> |
| | | <!-- <div v-show="polygonName"> |
| | | <div class="value-name-box">设置名称:</div> |
| | | <div> |
| | | <input type="text" v-model="polygonName" /> |
| | | </div> |
| | | </div> --> |
| | | <div> |
| | | <div class="value-name-box">设置透明度:</div> |
| | | <div class="alpha"> |
| | |
| | | import { getEquipmentAll } from '@/api/home/index.js' |
| | | import flvjs from 'flv.js' |
| | | |
| | | let analyseLayer = null |
| | | let analysePolygon = null |
| | | let drawLayers = null |
| | | let drawArrowLayers = null |
| | | let polylineAreaLayer = null |
| | |
| | | let plot = undefined |
| | | let arrowPlot = undefined |
| | | let lineLayer = undefined |
| | | |
| | | let tc = undefined |
| | | let track = undefined |
| | | let loading = null |
| | |
| | | policeSwitch: true, |
| | | arrowBtnSwitch: true, |
| | | polylineBtnSwitch: false, |
| | | analyseInput: 100, |
| | | activityList: [], |
| | | activityDetails: {}, |
| | | boxShow: true, |
| | |
| | | polygonName: '', |
| | | polygonPositionStr: '', |
| | | chooseColor: '#1CA085', |
| | | choosePlotColor: '#409EFF', |
| | | choosePlotColorAlpha:48, |
| | | choosePlotColor: '#409EFF', |
| | | choosePlotColorAlpha: 48, |
| | | chooseCarColor: '#1CA085', |
| | | choosePoliceColor: '#1CA085', |
| | | chooseLineData: {}, |
| | |
| | | video3: false, |
| | | video4: false, |
| | | }, |
| | | polygonAreaType:1, |
| | | polygonAreaOption:[{ |
| | | value: 1, |
| | | label: '核心区' |
| | | polygonAreaType: 1, |
| | | polygonAreaOption: [{ |
| | | value: 1, |
| | | label: '核心区' |
| | | }, { |
| | | value: 2, |
| | | label: '缓冲区' |
| | | value: 2, |
| | | label: '缓冲区' |
| | | }], |
| | | isNeedPolygonType:false, |
| | | plotPointPositionStr:'', |
| | | isNeedPolygonType: false, |
| | | plotPointPositionStr: '', |
| | | } |
| | | }, |
| | | |
| | |
| | | mounted () { |
| | | this.$parent.$parent.resize('400px', true) |
| | | this.$nextTick(() => { |
| | | if (analyseLayer == null) { |
| | | analyseLayer = new global.DC.VectorLayer('analyseLayer') |
| | | global.viewer.addLayer(analyseLayer) |
| | | } |
| | | |
| | | if (drawLayers == null) { |
| | | drawLayers = new global.DC.VectorLayer('drawLayers') |
| | | global.viewer.addLayer(drawLayers) |
| | |
| | | polylineAreaLayer = new global.DC.VectorLayer('polylineAreaLayer') |
| | | global.viewer.addLayer(polylineAreaLayer) |
| | | } |
| | | |
| | | tc = new global.DC.TrackController(global.viewer) |
| | | |
| | | // 轨迹 |
| | | // let positions = "116.023042, 28.684732; 116.023402, 28.679067; 116.023475, 28.678843; 116.023697, 28.678647; 116.024121, 28.678391; 116.026906, 28.678461; 116.027065, 28.676867; 116.033252, 28.676165" |
| | |
| | | |
| | | }, |
| | | |
| | | // 点击活动列表活动 |
| | | /** |
| | | * @description: 点击活动列表活动 |
| | | * @param {*} item |
| | | * @param {*} index |
| | | * @return {*} |
| | | */ |
| | | activityListClick (item, index) { |
| | | if (this.currentClickIndex !== '' && this.currentClickIndex == index) { |
| | | return |
| | | } |
| | | |
| | | this.removeAll() |
| | | this.removeAllArrow() |
| | | arrowsListLayer.clear() |
| | | this.showingSecurityId = item.id |
| | | arrowsListLayer != null && arrowsListLayer.clear() |
| | | |
| | | this.$EventBus.$emit('mapClearLayer', { |
| | | layerName: 'newDrawLayers', |
| | | type: 'VectorLayer' |
| | |
| | | layerName: 'polygonLayer', |
| | | type: 'VectorLayer' |
| | | }) |
| | | |
| | | this.$EventBus.$emit('mapRemoveLayer', { |
| | | layerName: 'monitoringLayers', |
| | | type: 'VectorLayer' |
| | | }) |
| | | |
| | | this.$EventBus.$emit('mapClearLayer', { |
| | | layerName: 'polylineLayer', |
| | | type: 'VectorLayer' |
| | | }) |
| | | |
| | | this.showingSecurityId = item.id |
| | | |
| | | // 加载当前活动面 |
| | | if (item.activityArea && item.activityArea.length > 0) { |
| | | let polyGonData = item.activityArea.slice(11, item.activityArea.length - 1) |
| | | polyGonData = polyGonData.replace(/,/g, ";") |
| | |
| | | }) |
| | | } |
| | | |
| | | // 警力资源 |
| | | this.getSecurityPoliceList(item.id, this.policeSwitch) |
| | | this.getSecurityCarList(item.id, this.policeSwitch, this.polylineBtnSwitch) |
| | | // 作战标绘 |
| | | this.getSecurityPlotList(item.id, this.arrowBtnSwitch) |
| | | if (this.currentClickIndex !== '' && this.currentClickIndex == index) { |
| | | return |
| | | } |
| | | this.analyseInput = 100 |
| | | // 巡逻路线 |
| | | this.getSecurityCarList(item.id, this.policeSwitch, this.polylineBtnSwitch) |
| | | |
| | | this.activityDetails = item |
| | | |
| | | if (analyseLayer != null) { |
| | | analyseLayer.clear() |
| | | } |
| | | |
| | | let positionObj = this.convertBillboardPositionDate(item, 'activity') |
| | | |
| | | let point = new global.DC.Point(`${positionObj.lng}, ${positionObj.lat}`) |
| | | analyseLayer.addOverlay(point) |
| | | |
| | | this.$EventBus.$emit('mapClearLayer', { |
| | | layerName: 'polylineLayer', |
| | | type: 'VectorLayer' |
| | | }) |
| | | |
| | | this.dialogVisible = true |
| | | if (this.userInfo.dept_id == '1123598813738675201' || this.userInfo.dept_id == item.deptId) { |
| | | this.isShowActivityEditBox = true |
| | | } else { |
| | |
| | | siteWd: positionObj.lat, |
| | | siteGd: 1500 |
| | | }) |
| | | |
| | | this.dialogVisible = true |
| | | }, |
| | | |
| | | // 切换轨警力资源显示 |
| | |
| | | this.getSecurityCarList(this.showingSecurityId, this.policeSwitch, this.polylineBtnSwitch) |
| | | }, |
| | | |
| | | // 输入绘制线范围 |
| | | analyseChange (e) { |
| | | analyseLayer.removeOverlay(analysePolygon) |
| | | let coords = global.DC.GeoTools.pointBuffer(`${this.activityDetails.lng}, ${this.activityDetails.lat}`, e) |
| | | analysePolygon = new global.DC.Polygon(coords) |
| | | analysePolygon.setStyle({ |
| | | material: global.DC.Color.RED.withAlpha(0.4) |
| | | }) |
| | | analyseLayer.addOverlay(analysePolygon) |
| | | }, |
| | | |
| | | // 分页页码变化事件 |
| | | handleCurrentChange: function (currentPage) { |
| | | this.currentPage = currentPage |
| | |
| | | this.isTrackBtnShow = false |
| | | this.closeVideo() |
| | | this.currentClickIndex = '' |
| | | analyseLayer.clear() |
| | | arrowsListLayer.clear() |
| | | this.$EventBus.$emit('mapClearLayer', { |
| | | layerName: 'polylineLayer', |
| | |
| | | overlay.icon = '/img/policeCar.jfif' |
| | | } |
| | | |
| | | |
| | | if (overlay) { |
| | | drawLayers.addOverlay(overlay) |
| | | |
| | | plot.edit(overlay, (e) => { |
| | | drawLayers.addOverlay(overlay) |
| | | // drawLayers.addOverlay(overlay) |
| | | |
| | | flag = true |
| | | |
| | | overlay.on(global.DC.MouseEventType.CLICK, this.overlayTypeClick) |
| | | |
| | | overlay.drawType = poltType |
| | | |
| | | overlay.policeType = policeType |
| | | |
| | | this.overlayObj = overlay |
| | | |
| | | document.oncontextmenu = function () { |
| | | if (flag == true && poltType == 'billboard') { |
| | | if (policeType == 'policeman') { |
| | |
| | | |
| | | // 删除所有地图绘制元素 |
| | | removeAll () { |
| | | drawLayers.clear() |
| | | drawLayers != null && drawLayers.clear() |
| | | }, |
| | | |
| | | drawArrow (type,iconType) { |
| | | /** |
| | | * @description: 箭头 |
| | | * @return {*} |
| | | */ |
| | | removeAllArrow () { |
| | | drawArrowLayers != null && drawArrowLayers.clear() |
| | | }, |
| | | |
| | | drawArrow (type, iconType) { |
| | | if (type == 'polygon') { |
| | | const that = this |
| | | let flag = false |
| | |
| | | // overlay.on(global.DC.MouseEventType.CLICK, this.polygonClick) |
| | | document.oncontextmenu = function () { |
| | | if (flag) { |
| | | that.choosePlotColor = '#409EFF' |
| | | that.choosePlotColor = '#409EFF' |
| | | that.choosePlotColorAlpha = 48 |
| | | that.polygonAreaType = 1 |
| | | that.isNeedName = true |
| | |
| | | }) |
| | | } |
| | | }, { material: global.DC.Color.RED }) |
| | | } else if (type == 'billboard'){ |
| | | console.log(11); |
| | | const that = this |
| | | let flag = false |
| | | |
| | | } else if (type == 'billboard') { |
| | | console.log(11) |
| | | const that = this |
| | | let flag = false |
| | | |
| | | plot && plot.draw(type, overlay => { |
| | | if (iconType == 'icon1') { |
| | | overlay.icon = '/img/icon/icon1.png' |
| | | this.plotSaveType = 6 |
| | | } |
| | | if (overlay) { |
| | | drawArrowLayers.addOverlay(overlay) |
| | | plot.edit(overlay, (e) => { |
| | | flag = true |
| | | console.log('overlay',overlay); |
| | | this.plotPointPositionStr = overlay._position._lng + ' ' + overlay._position._lat |
| | | document.oncontextmenu = function () { |
| | | drawArrowLayers.addOverlay(overlay) |
| | | plot.edit(overlay, (e) => { |
| | | flag = true |
| | | this.plotPointPositionStr = overlay._positions._lng + ' ' + overlay._positions._lat |
| | | document.oncontextmenu = function () { |
| | | if (flag) { |
| | | that.choosePlotColor = '#409EFF' |
| | | that.choosePlotColor = '#409EFF' |
| | | that.choosePlotColorAlpha = 48 |
| | | that.polygonAddVisible = true |
| | | that.isNeedName = false |
| | | flag = false |
| | | } |
| | | } |
| | | }) |
| | | } |
| | | }) |
| | | } |
| | | }) |
| | | }else { |
| | | } else { |
| | | const that = this |
| | | let flag = false |
| | | arrowPlot && arrowPlot.draw(type, overlay => { |
| | |
| | | drawArrowLayers.addOverlay(overlay) |
| | | document.oncontextmenu = function () { |
| | | if (flag) { |
| | | that.choosePlotColor = '#409EFF' |
| | | that.choosePlotColor = '#409EFF' |
| | | that.isNeedName = false |
| | | that.isNeedPolygonType = false |
| | | that.polygonAddVisible = true |
| | |
| | | }) |
| | | } |
| | | }, { material: global.DC.Color.RED }) |
| | | } |
| | | }, |
| | | |
| | | removeAllArrow () { |
| | | if (drawArrowLayers != null) { |
| | | drawArrowLayers.clear() |
| | | } |
| | | }, |
| | | |
| | |
| | | chooseArrow = new global.DC.Polygon(position) |
| | | arrowsListLayer.addOverlay(chooseArrow) |
| | | // 缓存区的话需要扣去包含的核心区 |
| | | if(item.areaType == 2){ |
| | | if (item.areaType == 2) { |
| | | let itemPositionArr = item.position.slice(11, item.position.length - 1).replace(/,/g, ';').replace(/ /g, ',').split(';') |
| | | itemPositionArr.push(itemPositionArr[0]) |
| | | itemPositionArr = itemPositionArr.map(item=>{ |
| | | itemPositionArr = itemPositionArr.map(item => { |
| | | return item.split(',').map(Number) |
| | | }) |
| | | let cachePolygon = this.$turf.polygon([itemPositionArr]) |
| | | plotList.forEach(inItem => { |
| | | // 查询被包含的核心区 |
| | | if(inItem.areaType == 1 && inItem.type == 5){ |
| | | if (inItem.areaType == 1 && inItem.type == 5) { |
| | | let inItemPositionArr = inItem.position.slice(11, inItem.position.length - 1).replace(/,/g, ';').replace(/ /g, ',').split(';') |
| | | inItemPositionArr.push(inItemPositionArr[0]) |
| | | inItemPositionArr = inItemPositionArr.map(item=>{ |
| | | inItemPositionArr = inItemPositionArr.map(item => { |
| | | return item.split(',').map(Number) |
| | | }) |
| | | let carePolygon = this.$turf.polygon([inItemPositionArr]) |
| | | let isContains = this.$turf.booleanContains(cachePolygon, carePolygon); |
| | | let isContains = this.$turf.booleanContains(cachePolygon, carePolygon) |
| | | // 如果完全包含就作为洞面扣去 |
| | | if(isContains){ |
| | | if (isContains) { |
| | | chooseArrow.holes = [inItem.position.slice(11, inItem.position.length - 1).replace(/,/g, ';').replace(/ /g, ',')] |
| | | } |
| | | |
| | |
| | | // 单击。标绘箭头 |
| | | reeditArrowClick (e) { |
| | | this.plotOverlayData = e |
| | | this.choosePlotColor = e.overlay.attrParams.color != '' ? e.overlay.attrParams.color.slice(0,7) : '#409EFF' |
| | | this.choosePlotColorAlpha = e.overlay.attrParams.color != '' ? Number(e.overlay.attrParams.color.split(',')[1]) : 48 |
| | | if(e.overlay.attrParams.item.type == 5){ |
| | | this.choosePlotColor = e.overlay.attrParams.color != '' ? e.overlay.attrParams.color.slice(0, 7) : '#409EFF' |
| | | this.choosePlotColorAlpha = e.overlay.attrParams.color != '' ? Number(e.overlay.attrParams.color.split(',')[1]) : 48 |
| | | if (e.overlay.attrParams.item.type == 5) { |
| | | this.polygonAreaType = e.overlay.attrParams.item.areaType != '' ? e.overlay.attrParams.item.areaType : 1 |
| | | this.isNeedPolygonType = true |
| | | }else{ |
| | | } else { |
| | | this.isNeedPolygonType = false |
| | | } |
| | | // this.polygonName = e.overlay.attrParams.name |
| | |
| | | tc.clear() |
| | | } |
| | | |
| | | tc = new global.DC.TrackController(global.viewer) |
| | | |
| | | /** |
| | | * @description: |
| | | * @param {*} position 当前行驶位置信息 |
| | |
| | | |
| | | // 树形数据传数组 |
| | | filterTree (tree, arr = []) { |
| | | if (!tree.length) return [] |
| | | arr.push(...tree) |
| | | for(let item of tree){ |
| | | if(item.children && item.children.length){ |
| | | this.filterTree(item.children,arr) |
| | | if (!tree.length) return [] |
| | | arr.push(...tree) |
| | | for (let item of tree) { |
| | | if (item.children && item.children.length) { |
| | | this.filterTree(item.children, arr) |
| | | } |
| | | } |
| | | } |
| | | return arr |
| | | return arr |
| | | }, |
| | | |
| | | // 计算透明度值 |
| | | formatTooltip(val) { |
| | | return val / 100; |
| | | formatTooltip (val) { |
| | | return val / 100 |
| | | }, |
| | | |
| | | }, |
| | |
| | | type: 'VectorLayer' |
| | | }) |
| | | |
| | | analyseLayer.clear() |
| | | arrowsListLayer.clear() |
| | | lineLayer.clear() |
| | | arrowsListLayer.remove() |
| | | lineLayer.remove() |
| | | if (pointCircleManLayer != null) { |
| | | pointCircleManLayer.clear() |
| | | pointCircleManLayer.remove() |
| | | } |
| | | |
| | | if (pointCircleCarLayer != null) { |
| | | pointCircleCarLayer.clear() |
| | | pointCircleCarLayer.remove() |
| | | } |
| | | this.removeAll() |
| | | this.removeAllArrow() |
| | | if (tc) { |
| | | tc.clear() |
| | | tc.remove() |
| | | } |
| | | if (polylineAreaLayer) { |
| | | polylineAreaLayer.clear() |
| | | polylineAreaLayer.remove() |
| | | } |
| | | |
| | | this.$parent.$parent.resize('0px') |
| | |
| | | </div>--> |
| | | </div> |
| | | <div class="sub-tab" v-show="peopletype == 0"> |
| | | <div |
| | | class="tab" |
| | | :class="{ 'select-on-tab': tabType == 0 }" |
| | | @click="personTabClick(0)" |
| | | > |
| | | <div class="tab" :class="{ 'select-on-tab': tabType == 0 }" @click="personTabClick(0)"> |
| | | <div class="tab-title-small">户籍人口:</div> |
| | | <div class="tab-title-small"> |
| | | {{ |
| | | personAll.total ? personAll.total : 0 |
| | | personAll.total ? personAll.total : 0 |
| | | }}人 |
| | | </div> |
| | | </div> |
| | | <div |
| | | class="tab" |
| | | :class="{ 'select-on-tab': tabType == 1 }" |
| | | @click="personTabClick(1)" |
| | | > |
| | | <div class="tab" :class="{ 'select-on-tab': tabType == 1 }" @click="personTabClick(1)"> |
| | | <div class="tab-title-small">重点人员:</div> |
| | | <div class="tab-title-small"> |
| | | {{ |
| | | personAll.emphasisNum ? personAll.emphasisNum : 0 |
| | | personAll.emphasisNum ? personAll.emphasisNum : 0 |
| | | }}人 |
| | | </div> |
| | | </div> |
| | |
| | | </div>--> |
| | | </div> |
| | | <div id="PersonEcharts" class="echarts-box"></div> |
| | | <div |
| | | class="back" |
| | | title="返回上一级" |
| | | v-show="dataDeep == 2 && peopletype == 0 && showBack" |
| | | @click="backBegin" |
| | | ></div> |
| | | <div class="back" title="返回上一级" v-show="dataDeep == 2 && peopletype == 0 && showBack" @click="backBegin"> |
| | | </div> |
| | | </div> |
| | | |
| | | <svg class="border-svg"> |
| | | <defs> |
| | | <path |
| | | id="border-box-8-path-974b4d7cfafa444396861ca1d1173c8c" |
| | | <path id="border-box-8-path-974b4d7cfafa444396861ca1d1173c8c" |
| | | d="M0.27,0.03c52.66,0,105.34,0,158,0c1.67,2,3.33,4,5,6c1,0.33,2,0.67,3,1c1.33,1.67,2.67,3.33,4,5 |
| | | c16,0,32,0,48,0c53.66,0,107.34,0,161,0c1.13,1.72,0.63,1.36,3,2c0,0.67,0,1.33,0,2c0.67,0,1.33,0,2,0 |
| | | c0.01,104.58,0.01,206.44,0,309c-1.43,0.78-4.01,2.77-5,4c-12,0-24,0-36,0c-2.67-3.33-5.33-6.67-8-10c-21,0-42,0-63,0 |
| | | c-1.08,2.32-2.35,4.25-4,6c-0.67,0.33-1.33,0.67-2,1c-0.33,1-0.67,2-1,3c-20,0-40,0-60,0c-66.66,0-133.34,0-200,0 |
| | | c-1.28-1.57-2.76-2.25-4-4c-0.33,0-0.67,0-1,0c0-8.67,0-17.33,0-26c0-19.66,0-39.34,0-59C0.27,160.04,0.27,80.02,0.27,0.03z" |
| | | fill="transparent" |
| | | /> |
| | | <radialGradient |
| | | id="border-box-8-gradient-974b4d7cfafa444396861ca1d1173c8c" |
| | | cx="50%" |
| | | cy="50%" |
| | | r="50%" |
| | | > |
| | | c16,0,32,0,48,0c53.66,0,107.34,0,161,0c1.13,1.72,0.63,1.36,3,2c0,0.67,0,1.33,0,2c0.67,0,1.33,0,2,0 |
| | | c0.01,104.58,0.01,206.44,0,309c-1.43,0.78-4.01,2.77-5,4c-12,0-24,0-36,0c-2.67-3.33-5.33-6.67-8-10c-21,0-42,0-63,0 |
| | | c-1.08,2.32-2.35,4.25-4,6c-0.67,0.33-1.33,0.67-2,1c-0.33,1-0.67,2-1,3c-20,0-40,0-60,0c-66.66,0-133.34,0-200,0 |
| | | c-1.28-1.57-2.76-2.25-4-4c-0.33,0-0.67,0-1,0c0-8.67,0-17.33,0-26c0-19.66,0-39.34,0-59C0.27,160.04,0.27,80.02,0.27,0.03z" fill="transparent" /> |
| | | <radialGradient id="border-box-8-gradient-974b4d7cfafa444396861ca1d1173c8c" cx="50%" cy="50%" r="50%"> |
| | | <stop offset="0%" stop-color="#fff" stop-opacity="1" /> |
| | | <stop offset="100%" stop-color="#fff" stop-opacity="0" /> |
| | | </radialGradient> |
| | | <mask id="border-box-8-mask-974b4d7cfafa444396861ca1d1173c8c"> |
| | | <circle |
| | | cx="0" |
| | | cy="0" |
| | | r="150" |
| | | fill="url(#border-box-8-gradient-974b4d7cfafa444396861ca1d1173c8c)" |
| | | > |
| | | <animateMotion |
| | | dur="8s" |
| | | <circle cx="0" cy="0" r="150" fill="url(#border-box-8-gradient-974b4d7cfafa444396861ca1d1173c8c)"> |
| | | <animateMotion dur="8s" |
| | | path="M0.27,0.03c52.66,0,105.34,0,158,0c1.67,2,3.33,4,5,6c1,0.33,2,0.67,3,1c1.33,1.67,2.67,3.33,4,5 |
| | | c16,0,32,0,48,0c53.66,0,107.34,0,161,0c1.13,1.72,0.63,1.36,3,2c0,0.67,0,1.33,0,2c0.67,0,1.33,0,2,0 |
| | | c0.01,104.58,0.01,206.44,0,309c-1.43,0.78-4.01,2.77-5,4c-12,0-24,0-36,0c-2.67-3.33-5.33-6.67-8-10c-21,0-42,0-63,0 |
| | | c-1.08,2.32-2.35,4.25-4,6c-0.67,0.33-1.33,0.67-2,1c-0.33,1-0.67,2-1,3c-20,0-40,0-60,0c-66.66,0-133.34,0-200,0 |
| | | c-1.28-1.57-2.76-2.25-4-4c-0.33,0-0.67,0-1,0c0-8.67,0-17.33,0-26c0-19.66,0-39.34,0-59C0.27,160.04,0.27,80.02,0.27,0.03z" |
| | | rotate="auto" |
| | | repeatCount="indefinite" |
| | | /> |
| | | c16,0,32,0,48,0c53.66,0,107.34,0,161,0c1.13,1.72,0.63,1.36,3,2c0,0.67,0,1.33,0,2c0.67,0,1.33,0,2,0 |
| | | c0.01,104.58,0.01,206.44,0,309c-1.43,0.78-4.01,2.77-5,4c-12,0-24,0-36,0c-2.67-3.33-5.33-6.67-8-10c-21,0-42,0-63,0 |
| | | c-1.08,2.32-2.35,4.25-4,6c-0.67,0.33-1.33,0.67-2,1c-0.33,1-0.67,2-1,3c-20,0-40,0-60,0c-66.66,0-133.34,0-200,0 |
| | | c-1.28-1.57-2.76-2.25-4-4c-0.33,0-0.67,0-1,0c0-8.67,0-17.33,0-26c0-19.66,0-39.34,0-59C0.27,160.04,0.27,80.02,0.27,0.03z" |
| | | rotate="auto" repeatCount="indefinite" /> |
| | | </circle> |
| | | </mask> |
| | | </defs> |
| | | |
| | | <use |
| | | stroke-width="2" |
| | | xlink:href="#border-box-8-path-974b4d7cfafa444396861ca1d1173c8c" |
| | | mask="url(#border-box-8-mask-974b4d7cfafa444396861ca1d1173c8c)" |
| | | stroke="#4fd2dd" |
| | | > |
| | | <animate |
| | | attributeName="stroke-dasharray" |
| | | from="0, 1442" |
| | | to="1442, 0" |
| | | dur="8s" |
| | | repeatCount="indefinite" |
| | | /> |
| | | <use stroke-width="2" xlink:href="#border-box-8-path-974b4d7cfafa444396861ca1d1173c8c" |
| | | mask="url(#border-box-8-mask-974b4d7cfafa444396861ca1d1173c8c)" stroke="#4fd2dd"> |
| | | <animate attributeName="stroke-dasharray" from="0, 1442" to="1442, 0" dur="8s" |
| | | repeatCount="indefinite" /> |
| | | </use> |
| | | </svg> |
| | | </div> |
| | |
| | | <div class="box"> |
| | | <div class="title">现有住宅</div> |
| | | <div class="sub-tab"> |
| | | <div |
| | | class="tab" |
| | | :class="{ 'select-on-tab': tabTypeTwo == 0 }" |
| | | @click="houseTabClick(0)" |
| | | > |
| | | <div class="tab" :class="{ 'select-on-tab': tabTypeTwo == 0 }" @click="houseTabClick(0)"> |
| | | <div class="tab-title-small">实有楼栋:</div> |
| | | <div class="tab-title-small">{{ realHouseNum?realHouseNum: 0 }}栋</div> |
| | | <div class="tab-title-small">{{ realHouseNum ? realHouseNum : 0 }}栋</div> |
| | | </div> |
| | | <div |
| | | class="tab" |
| | | :class="{ 'select-on-tab': tabTypeTwo == 1 }" |
| | | @click="houseTabClick(1)" |
| | | > |
| | | <div class="tab" :class="{ 'select-on-tab': tabTypeTwo == 1 }" @click="houseTabClick(1)"> |
| | | <div class="tab-title-small">关注场所:</div> |
| | | <div class="tab-title-small">{{ keyPlaceNum?keyPlaceNum: 0 }}栋</div> |
| | | <div class="tab-title-small">{{ keyPlaceNum ? keyPlaceNum : 0 }}栋</div> |
| | | </div> |
| | | </div> |
| | | <div id="houseEcharts" class="echarts-box"></div> |
| | | </div> |
| | | |
| | | <svg class="border-svg"> |
| | | <use |
| | | stroke-width="2" |
| | | xlink:href="#border-box-8-path-974b4d7cfafa444396861ca1d1173c8c" |
| | | mask="url(#border-box-8-mask-974b4d7cfafa444396861ca1d1173c8c)" |
| | | stroke="#4fd2dd" |
| | | > |
| | | <animate |
| | | attributeName="stroke-dasharray" |
| | | from="0, 1442" |
| | | to="1442, 0" |
| | | dur="8s" |
| | | repeatCount="indefinite" |
| | | /> |
| | | <use stroke-width="2" xlink:href="#border-box-8-path-974b4d7cfafa444396861ca1d1173c8c" |
| | | mask="url(#border-box-8-mask-974b4d7cfafa444396861ca1d1173c8c)" stroke="#4fd2dd"> |
| | | <animate attributeName="stroke-dasharray" from="0, 1442" to="1442, 0" dur="8s" |
| | | repeatCount="indefinite" /> |
| | | </use> |
| | | </svg> |
| | | </div> |
| | |
| | | <div class="box"> |
| | | <div class="title">现有地</div> |
| | | <div class="sub-tab" v-show="isAllPoliceStation"> |
| | | <div |
| | | class="tab" |
| | | :class="{ 'select-on-tab': tabTypeThree == 0 }" |
| | | @click="landTabClick(0)" |
| | | > |
| | | <div class="tab" :class="{ 'select-on-tab': tabTypeThree == 0 }" @click="landTabClick(0)"> |
| | | <div class="tab-title-small">小区:</div> |
| | | <div class="tab-title-small">{{ villageNum?villageNum: 0 }}个</div> |
| | | <div class="tab-title-small">{{ villageNum ? villageNum : 0 }}个</div> |
| | | </div> |
| | | <div |
| | | class="tab" |
| | | :class="{ 'select-on-tab': tabTypeThree == 1 }" |
| | | @click="landTabClick(1)" |
| | | > |
| | | <div class="tab" :class="{ 'select-on-tab': tabTypeThree == 1 }" @click="landTabClick(1)"> |
| | | <div class="tab-title-small">责任区:</div> |
| | | <div class="tab-title-small">{{ areaNum?areaNum: 0 }}个</div> |
| | | <div class="tab-title-small">{{ areaNum ? areaNum : 0 }}个</div> |
| | | </div> |
| | | </div> |
| | | <div class="sub-tab" v-show="!isAllPoliceStation"> |
| | | <div class="tab1 select-on-tab"> |
| | | <div class="tab-title-small">小区:</div> |
| | | <div class="tab-title-small">{{ villageNum?villageNum: 0 }}个</div> |
| | | <div class="tab-title-small">{{ villageNum ? villageNum : 0 }}个</div> |
| | | </div> |
| | | </div> |
| | | |
| | |
| | | </div> |
| | | |
| | | <svg class="border-svg"> |
| | | <use |
| | | stroke-width="2" |
| | | xlink:href="#border-box-8-path-974b4d7cfafa444396861ca1d1173c8c" |
| | | mask="url(#border-box-8-mask-974b4d7cfafa444396861ca1d1173c8c)" |
| | | stroke="#4fd2dd" |
| | | > |
| | | <animate |
| | | attributeName="stroke-dasharray" |
| | | from="0, 1442" |
| | | to="1442, 0" |
| | | dur="8s" |
| | | repeatCount="indefinite" |
| | | /> |
| | | <use stroke-width="2" xlink:href="#border-box-8-path-974b4d7cfafa444396861ca1d1173c8c" |
| | | mask="url(#border-box-8-mask-974b4d7cfafa444396861ca1d1173c8c)" stroke="#4fd2dd"> |
| | | <animate attributeName="stroke-dasharray" from="0, 1442" to="1442, 0" dur="8s" |
| | | repeatCount="indefinite" /> |
| | | </use> |
| | | </svg> |
| | | </div> |
| | |
| | | color: #fff; |
| | | } |
| | | |
| | | & > div:nth-of-type(2) { |
| | | &>div:nth-of-type(2) { |
| | | font-size: 14px; |
| | | } |
| | | } |
| | |
| | | align-items: center; |
| | | justify-content: center; |
| | | |
| | | & > div { |
| | | &>div { |
| | | height: 22px; |
| | | line-height: 22px; |
| | | white-space: nowrap; |
| | |
| | | <el-table-column prop="contact" label="联系方式"></el-table-column> |
| | | </el-table> |
| | | <div class="pointList"> |
| | | <el-tooltip class="item" effect="dark" :content="item.dept" placement="top" v-for="(item, index) in schedulingDeptList" :key="index"> |
| | | <div class="point" @click="getSchedlingList(item)"> |
| | | <el-tooltip class="item" effect="dark" :content="item.dept" placement="top" |
| | | v-for="(item, index) in schedulingDeptList" :key="index"> |
| | | <div class="point" @click="getSchedlingList(item)"> |
| | | </div> |
| | | </el-tooltip> |
| | | </div> |
| | |
| | | let equimentDataLength = 0 |
| | | |
| | | import recorderArr from '@/assets/data/equimentsDate/recorder.js' |
| | | import { getSchedulingList,getSchedulingDeptList } from '@/api/home/index.js' |
| | | import { getSchedulingList, getSchedulingDeptList } from '@/api/home/index.js' |
| | | import { fontSize } from '@/utils/fontSize.js' |
| | | |
| | | import { getCaseAll, getEquipment } from "@/api/home/index.js" |
| | |
| | | |
| | | export default { |
| | | inject: ['userInfo'], |
| | | data() { |
| | | data () { |
| | | return { |
| | | eventTime: [], |
| | | pickerOptions: { |
| | | shortcuts: [{ |
| | | text: '最近一周', |
| | | onClick(picker) { |
| | | onClick (picker) { |
| | | const end = new Date() |
| | | const start = new Date() |
| | | start.setTime(start.getTime() - 3600 * 1000 * 24 * 7) |
| | |
| | | } |
| | | }, { |
| | | text: '最近一个月', |
| | | onClick(picker) { |
| | | onClick (picker) { |
| | | const end = new Date() |
| | | const start = new Date() |
| | | start.setTime(start.getTime() - 3600 * 1000 * 24 * 30) |
| | |
| | | } |
| | | }, { |
| | | text: '最近三个月', |
| | | onClick(picker) { |
| | | onClick (picker) { |
| | | const end = new Date() |
| | | const start = new Date() |
| | | start.setTime(start.getTime() - 3600 * 1000 * 24 * 90) |
| | |
| | | linetype: 0, |
| | | tableHeight: 0, |
| | | schedulingList: [], |
| | | schedulingDeptList:[1,2,3,4,5,6,1,2,3,4,5,6], |
| | | schedulingDeptList: [1, 2, 3, 4, 5, 6, 1, 2, 3, 4, 5, 6], |
| | | policeStaionID: '' |
| | | } |
| | | }, |
| | | created() { |
| | | created () { |
| | | this.pickerOptions = { |
| | | ...this.pickerOptions, |
| | | disabledDate(time) { |
| | | disabledDate (time) { |
| | | // 设置可选择的日期为今天之后的一个月内 |
| | | let curDate = (new Date()).getTime() |
| | | return time.getTime() > curDate |
| | |
| | | this.getSchedulingDeptList() |
| | | }, |
| | | |
| | | mounted() { |
| | | mounted () { |
| | | |
| | | this.getHomeAllData() |
| | | |
| | |
| | | |
| | | methods: { |
| | | //获取值班列表信息 |
| | | getSchedlingList(item){ |
| | | getSchedlingList (item) { |
| | | this.$emit('showschedulingdetail', item.dept, item.dept, 'type') |
| | | }, |
| | | //获取值班单位信息 |
| | | getSchedulingDeptList(){ |
| | | getSchedulingDeptList().then((res)=>{ |
| | | this.schedulingDeptList = res.data.data; |
| | | getSchedulingDeptList () { |
| | | getSchedulingDeptList().then((res) => { |
| | | this.schedulingDeptList = res.data.data |
| | | }) |
| | | }, |
| | | // actTabClick (type) { |
| | |
| | | * @description: 获取当前组件内所有数据 |
| | | * @return {*} |
| | | */ |
| | | getHomeAllData(id = '') { |
| | | getHomeAllData (id = '') { |
| | | this.policeStaionID = id |
| | | |
| | | this.initEventChangeEcharts() |
| | |
| | | }, 600000) |
| | | }, |
| | | |
| | | getSchedulingList() { |
| | | getSchedulingList () { |
| | | const params = { |
| | | sameday:1 |
| | | sameday: 1 |
| | | } |
| | | getSchedulingList(1,100,params).then(res => { |
| | | getSchedulingList(1, 100, params).then(res => { |
| | | this.schedulingList = res.data.data.records |
| | | }) |
| | | }, |
| | | |
| | | echartsResize() { |
| | | echartsResize () { |
| | | equipmentmyChart && equipmentmyChart != null && equipmentmyChart.resize() |
| | | eventchangemychart && eventchangemychart != null && eventchangemychart.resize() |
| | | }, |
| | | |
| | | // 案件统计中时间变化 |
| | | async caseTimeChange(e) { |
| | | async caseTimeChange (e) { |
| | | const date = e.map(item => { |
| | | return this.dateFormat(item) |
| | | }) |
| | |
| | | }, |
| | | |
| | | // 设置默认时间 |
| | | defaultDate() { |
| | | defaultDate () { |
| | | var current = new Date() |
| | | |
| | | var seven = new Date(current.getTime() - 7 * 24 * 60 * 60 * 1000) |
| | |
| | | }, |
| | | |
| | | // 获取当前日期 |
| | | dateFormat(dateData) { |
| | | dateFormat (dateData) { |
| | | var date = new Date(dateData) |
| | | var y = date.getFullYear() |
| | | var m = date.getMonth() + 1 |
| | |
| | | }, |
| | | |
| | | // 获取案件统计值 |
| | | getCaseAll(start, end) { |
| | | getCaseAll (start, end) { |
| | | const caseAll = getCaseAll(start, end, this.policeStaionID != '' ? this.policeStaionID : this.userInfo.dept_id).then(res => { |
| | | if (res.data.length > 0) { |
| | | return res.data.reduce((previous, current) => { |
| | |
| | | }, |
| | | |
| | | // 初始化案件统计 |
| | | async initEventChangeEcharts() { |
| | | async initEventChangeEcharts () { |
| | | var chartDom = document.getElementById('EventChangeEcharts') |
| | | |
| | | if (eventchangemychart != null && eventchangemychart != '' && eventchangemychart != undefined) eventchangemychart.dispose() |
| | |
| | | }, |
| | | |
| | | // 案件统计的options |
| | | initEventChangeOption(xData, yData) { |
| | | initEventChangeOption (xData, yData) { |
| | | let option |
| | | if (xData.length == 0) { //暂无数据 |
| | | option = { |
| | |
| | | }, |
| | | |
| | | // 现有设备统计 |
| | | getEquipment() { |
| | | getEquipment () { |
| | | const typeData = { |
| | | carCount: '车辆', |
| | | monitorCount: '摄像头', |
| | |
| | | }, |
| | | |
| | | // 现有设备饼图初始化 |
| | | async initEquipmentEcharts(type) { |
| | | async initEquipmentEcharts (type) { |
| | | this.linetype = type |
| | | |
| | | if (equipmentmyChart != null && equipmentmyChart != '' && equipmentmyChart != undefined) { |
| | |
| | | }, |
| | | |
| | | // 现有设备options饼图数据 |
| | | initEquipmentOptions(dataArr) { |
| | | initEquipmentOptions (dataArr) { |
| | | return { |
| | | tooltip: { |
| | | trigger: 'item', |
| | |
| | | }, |
| | | |
| | | // 饼图轮播 |
| | | equipmentEchartsCarousel() { |
| | | equipmentEchartsCarousel () { |
| | | let curIndex = 0 |
| | | if (timer) { |
| | | clearInterval(timer) |
| | |
| | | }, |
| | | |
| | | // 现有设备的点击事件(显示弹窗表格) |
| | | clickEquimentChart() { |
| | | clickEquimentChart () { |
| | | equipmentmyChart.on('click', params => { |
| | | // 设备类型,摄像头弹窗显示,其他弹窗显示,【记录仪列显示,警车列显示,手台列显示】,遍历数组 |
| | | if ('equimentType' in params.data) { |
| | |
| | | }, |
| | | }, |
| | | |
| | | destroyed() { |
| | | destroyed () { |
| | | window.removeEventListener("resize", this.echartsResize) |
| | | |
| | | if (equipmentmyChart) { |
| | |
| | | padding: 0 12px; |
| | | flex: 1; |
| | | |
| | | .pointList{ |
| | | .pointList { |
| | | width: 100%; |
| | | display: flex; |
| | | justify-content: space-evenly; |
| | | margin-top: 15px; |
| | | .point{ |
| | | |
| | | .point { |
| | | width: 12px; |
| | | height: 12px; |
| | | border-radius: 50px; |
| | |
| | | * @Author: shuishen 1109946754@qq.com |
| | | * @Date: 2022-08-18 16:18:17 |
| | | * @LastEditors: shuishen 1109946754@qq.com |
| | | * @LastEditTime: 2023-02-24 13:45:15 |
| | | * @LastEditTime: 2023-03-06 10:29:22 |
| | | * @FilePath: \srs-police-affairs\src\views\video\list.vue |
| | | * @Description: 辖区管理 |
| | | * |
| | |
| | | node.data.name |
| | | }} |
| | | </span> |
| | | |
| | | |
| | | |
| | | <span v-show="node.data.number && node.data.number != -1"> |
| | | ({{ |
| | | node.data.number |
| | | }}个) |
| | | </span> |
| | | </span> |
| | | </el-tree> |
| | | |
| | |
| | | {{ |
| | | node.data.name |
| | | }} |
| | | </span> |
| | | |
| | | |
| | | |
| | | <span v-show="node.data.number && node.data.number != -1"> |
| | | ({{ |
| | | node.data.number |
| | | }}个) |
| | | </span> |
| | | </span> |
| | | </el-tree> |
| | |
| | | <div class="line"> |
| | | <div class="value-name-box">颜色:</div> |
| | | <div class="pick-color-box"> |
| | | <el-color-picker |
| | | v-model="chooseRangeColor" |
| | | :predefine="predefineColors" size="small"> |
| | | </el-color-picker> |
| | | <el-color-picker v-model="chooseRangeColor" :predefine="predefineColors" size="small"> |
| | | </el-color-picker> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div> |
| | | <button @click="saveDrawInfo">保存</button> |
| | | <button @click="cancelSaveDrawInfo">取消</button> |
| | |
| | | drawPlotData: {}, |
| | | chooseRangeColor: '#FF0000', |
| | | predefineColors: [ |
| | | '#ff4500', |
| | | '#ff8c00', |
| | | '#ffd700', |
| | | '#90ee90', |
| | | '#00ced1', |
| | | '#1e90ff', |
| | | '#c71585', |
| | | 'rgba(255, 69, 0, )', |
| | | 'rgb(255, 120, 0)', |
| | | 'hsv(51, 100, 98)', |
| | | 'hsva(120, 40, 94)', |
| | | 'hsl(181, 100%, 37%)', |
| | | 'hsla(209, 100%, 56%)', |
| | | '#c7158577' |
| | | '#ff4500', |
| | | '#ff8c00', |
| | | '#ffd700', |
| | | '#90ee90', |
| | | '#00ced1', |
| | | '#1e90ff', |
| | | '#c71585', |
| | | 'rgba(255, 69, 0, )', |
| | | 'rgb(255, 120, 0)', |
| | | 'hsv(51, 100, 98)', |
| | | 'hsva(120, 40, 94)', |
| | | 'hsl(181, 100%, 37%)', |
| | | 'hsla(209, 100%, 56%)', |
| | | '#c7158577' |
| | | ], |
| | | } |
| | | }, |
| | |
| | | }) |
| | | } |
| | | } |
| | | },{material: global.DC.Color.RED}) |
| | | }, { material: global.DC.Color.RED }) |
| | | }, |
| | | |
| | | removeDrawLayer () { |
| | |
| | | let area = this.$turf.area(polygon) |
| | | extent = area.toFixed(3) |
| | | } |
| | | this.insertRegionSaveList({type:this.drawType, positions:drawPositionStr, name:this.drawName, extent: extent,width:this.range,color:this.chooseRangeColor}) |
| | | this.insertRegionSaveList({ type: this.drawType, positions: drawPositionStr, name: this.drawName, extent: extent, width: this.range, color: this.chooseRangeColor }) |
| | | this.drawDialogVisible = false |
| | | this.drawName = '' |
| | | if (drawPlotLayers != null) { |