Merge branch 'master' of http://192.168.0.105:10010/r/srs-police-affairs
| | |
| | | * @Author: shuishen 1109946754@qq.com |
| | | * @Date: 2022-11-15 15:10:41 |
| | | * @LastEditors: shuishen 1109946754@qq.com |
| | | * @LastEditTime: 2023-02-16 11:51:45 |
| | | * @LastEditTime: 2023-02-17 10:34:10 |
| | | * @FilePath: \srs-police-affairs\src\api\video\index.js |
| | | * @Description: |
| | | * |
| | |
| | | * @param {*} params 包含参数 range 参数值参考 116.292735,40.0717; 116.476708, 40.083625; 116.476708, 40.083625; 116.292735, 40.0717 |
| | | * @returns |
| | | */ |
| | | export const getRegionList = (page = 1, count = 15, id) => { |
| | | export const getRegionList = (params) => { |
| | | return request({ |
| | | url: '/device/query/SpatialQueryList', |
| | | method: 'get', |
| | | method: 'post', |
| | | requestBaseUrl: 'outside', |
| | | params: { |
| | | page, |
| | | count, |
| | | id |
| | | } |
| | | data: params |
| | | }) |
| | | } |
| | | |
| | |
| | | * @Author: shuishen 1109946754@qq.com |
| | | * @Date: 2022-08-18 17:00:30 |
| | | * @LastEditors: shuishen 1109946754@qq.com |
| | | * @LastEditTime: 2023-02-16 15:16:48 |
| | | * @LastEditTime: 2023-02-17 08:48:00 |
| | | * @FilePath: \srs-police-affairs\src\components\map\index.vue |
| | | * @Description: 公用地图组件 |
| | | * |
| | |
| | | // global.viewer.addTerrain(terrain) |
| | | |
| | | // 内网 |
| | | that.switchImg() |
| | | // that.switchImg() |
| | | |
| | | // 外网 |
| | | // global.viewer.imageryLayers.addImageryProvider( |
| | | // new global.DC.Namespace.Cesium.UrlTemplateImageryProvider({ |
| | | // url: 'http://t{s}.tianditu.gov.cn/DataServer?T=img_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=img_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.camera.setView({ |
| | |
| | | height: countSizeVh(46); |
| | | |
| | | input { |
| | | font-size: countSizeVh(18); |
| | | border-radius: countSizeVh(20); |
| | | height: countSizeVh(32); |
| | | font-size: countSizeVh(16); |
| | | border: countSizeVh(1) solid rgb(0, 92, 169); |
| | | } |
| | | } |
| | | |
| | |
| | | * @Author: shuishen 1109946754@qq.com |
| | | * @Date: 2022-08-18 16:18:17 |
| | | * @LastEditors: shuishen 1109946754@qq.com |
| | | * @LastEditTime: 2023-02-04 16:09:25 |
| | | * @LastEditTime: 2023-02-17 10:23:23 |
| | | * @FilePath: \srs-police-affairs\src\views\police\index.vue |
| | | * @Description: 辖区管理 |
| | | * |
| | |
| | | prop="newName" |
| | | :show-overflow-tooltip="true" |
| | | label="名称" |
| | | min-width="56%" |
| | | :min-width="typeValue == 0 ? '56%' : '68%'" |
| | | ></el-table-column> |
| | | <el-table-column prop="status" label="状态" min-width="14%"> |
| | | <el-table-column |
| | | prop="status" |
| | | label="状态" |
| | | :min-width="typeValue == 0 ? '14%' : '14%'" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <div class="state-box" :class="{ online: scope.row.status == '1' }"></div> |
| | | </template> |
| | | </el-table-column> |
| | | |
| | | <el-table-column label="操作" align="center" min-width="30%"> |
| | | <el-table-column |
| | | label="操作" |
| | | align="center" |
| | | :min-width="typeValue == 0 ? '30%' : '18%'" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-button |
| | | @click="rowClick(scope.row)" |
| | |
| | | <el-pagination |
| | | background |
| | | layout="prev, pager, next" |
| | | you:page-size="equimentPage.pageSize" |
| | | :page-size="equimentPage.pageSize" |
| | | :page-count="equimentPage.count" |
| | | :pager-count="4" |
| | | :current-page="equimentPage.currentPage" |
| | |
| | | equimentTableData: [], |
| | | equimentPage: { |
| | | total: 0, |
| | | pageSize: 15, |
| | | pageSize: 25, |
| | | count: 0, |
| | | currentPage: 1 |
| | | }, |
| | |
| | | background-color: rgba(24, 79, 202, 0.6); |
| | | // border: 1px solid rgb(0, 92, 169); |
| | | border: 1px solid rgb(24, 79, 202); |
| | | border-radius: 20px; |
| | | } |
| | | |
| | | input:focus { |
| | |
| | | * @Author: shuishen 1109946754@qq.com |
| | | * @Date: 2022-08-18 16:18:17 |
| | | * @LastEditors: shuishen 1109946754@qq.com |
| | | * @LastEditTime: 2023-02-16 15:34:43 |
| | | * @LastEditTime: 2023-02-17 10:06:38 |
| | | * @FilePath: \srs-police-affairs\src\views\video\list.vue |
| | | * @Description: 辖区管理 |
| | | * |
| | |
| | | v-model="searchValue" |
| | | @input="searchChange" |
| | | type="text" |
| | | placeholder="请输入搜索条件" |
| | | placeholder="请输入…" |
| | | /> |
| | | </div> |
| | | |
| | |
| | | <h3>请输入距离</h3> |
| | | <input type="text" v-model="range" /> |
| | | <button @click="changeRange" class="btn">确定</button> |
| | | </div> |
| | | <div v-show="searchValBoxShow" class="search-val-box"> |
| | | <div |
| | | @click="searchVlaClick(item)" |
| | | v-for="(item, index) in searchArray" |
| | | :key="index" |
| | | >{{ item.name }}</div> |
| | | </div> |
| | | |
| | | <div class="down-tree"> |
| | |
| | | </el-tree> |
| | | </el-scrollbar> |
| | | </div> |
| | | |
| | | <div class="list-show" v-if="false"> |
| | | <div class="car-list"> |
| | | <div class="list-box"> |
| | | <el-table |
| | | :data="monitoringList" |
| | | style="width: 100%" |
| | | :header-cell-style="{ 'text-align': 'center', 'background-color': 'rgba(9, 40, 199, 0.5)', 'borderColor': '#324e75' }" |
| | | :cell-style="{ 'text-align': 'center', 'borderColor': '#324e75' }" |
| | | @cell-click="rowClick" |
| | | > |
| | | <el-table-column |
| | | :show-overflow-tooltip="true" |
| | | prop="name" |
| | | label="点位名称" |
| | | min-width="35%" |
| | | ></el-table-column> |
| | | <el-table-column |
| | | :show-overflow-tooltip="true" |
| | | prop="pTZTypeText" |
| | | label="点位类型" |
| | | min-width="35%" |
| | | ></el-table-column> |
| | | <el-table-column |
| | | :show-overflow-tooltip="true" |
| | | prop="status" |
| | | label="状态" |
| | | min-width="30%" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <div |
| | | class="state-box" |
| | | :class="{ online: scope.row.status == '1' }" |
| | | ></div> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | </div> |
| | | <div class="pages"> |
| | | <el-pagination |
| | | background |
| | | layout="prev, pager, next" |
| | | :page-size="pagesize" |
| | | :page-count="pagesCount" |
| | | :current-page="currentPage" |
| | | pager-count="5" |
| | | @current-change="handleCurrentChange" |
| | | ></el-pagination> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="search-content"> |
| | |
| | | </div> |
| | | <button @click="searchExtensivelyClick" class="el-icon-search"></button> |
| | | </div> |
| | | |
| | | <div v-show="searchExtensivelyValBoxShow" class="searchExtensively-val-box"> |
| | | <div> |
| | | <div |
| | |
| | | |
| | | <script> |
| | | import EntityDraw from "@/utils/EntityDraw.js" |
| | | import { listQuery, accurateSearch } from "@/utils/search.js" |
| | | import { |
| | | getVideoList, |
| | | getDevices, |
| | | getRegionList, |
| | | insertRegionSaveList, |
| | |
| | | |
| | | data () { |
| | | return { |
| | | currentPage: 1, |
| | | pagesize: 15, |
| | | pagesCount: 1, |
| | | monitoringList: [], |
| | | monitoringSaveList: [], |
| | | dialogTitle: '', |
| | |
| | | dialogVisible: false, |
| | | drawDialogVisible: false, |
| | | searchValue: '', |
| | | searchArray: [], |
| | | searchValBoxShow: false, |
| | | boxShow: true, |
| | | flvPlayer: null, |
| | | range: 100, |
| | |
| | | }, |
| | | |
| | | created () { |
| | | this.getVideoList(this.currentPage, this.pagesize) |
| | | }, |
| | | |
| | | mounted () { |
| | |
| | | }, |
| | | |
| | | methods: { |
| | | handleCurrentChange: function (currentPage) { |
| | | this.currentPage = currentPage |
| | | this.getVideoList(this.currentPage, this.pagesize) |
| | | }, |
| | | |
| | | getVideoList (current, size, name) { |
| | | getVideoList(current, size, name).then(res => { |
| | | this.pagesCount = res.data.data.pages |
| | | this.monitoringList = res.data.data.list |
| | | this.monitoringSaveList = res.data.data.list |
| | | this.$EventBus.$emit('mapRemoveLayer', { |
| | | layerName: 'monitoringLayers', |
| | | type: 'VectorLayer' |
| | | }) |
| | | this.initMonitoringIcon() |
| | | }) |
| | | }, |
| | | |
| | | async getDevices (channelId) { |
| | | let flvAddress = '' |
| | | await getDevices(channelId).then(res => { |
| | |
| | | return flvAddress |
| | | }, |
| | | |
| | | initMonitoringIcon () { |
| | | this.monitoringList.forEach((item, index) => { |
| | | this.$EventBus.$emit('layerPointAdd', { |
| | | layerName: 'monitoringLayers', |
| | | type: "billboard", |
| | | params: { |
| | | name: item.name, |
| | | lng: item.longitude, |
| | | lat: item.latitude, |
| | | alt: 100, |
| | | url: '/img/icon/video.png', |
| | | deviceId: item.deviceId, |
| | | channelId: item.channelId |
| | | }, |
| | | incident: this.siteClick |
| | | }) |
| | | |
| | | }) |
| | | }, |
| | | |
| | | rowClick (row) { |
| | | this.$EventBus.$emit('toPosition', { |
| | | layerName: 'monitoringLayers', |
| | | siteJd: row.longitude, |
| | | siteWd: row.latitude, |
| | | siteGd: 60000, |
| | | siteHeading: -3, |
| | | sitePitch: -90 |
| | | }) |
| | | }, |
| | | |
| | | async siteClick (e) { |
| | | if (this.flvPlayer != null) { |
| | |
| | | } |
| | | }, |
| | | |
| | | searchVlaClick (item) { |
| | | this.searchValBoxShow = false |
| | | this.searchArray = [] |
| | | this.monitoringList = [item] |
| | | this.searchValue = item.name |
| | | this.getVideoList(this.currentPage, this.pagesize, this.searchValue) |
| | | }, |
| | | |
| | | draw (type) { |
| | | |
| | | if (graphicLayer == null) graphicLayer = new EntityDraw() |
| | |
| | | }) |
| | | positionStr = positionStr + JSON.parse(data).data[0].lng + ',' + JSON.parse(data).data[0].lat + ';' |
| | | } |
| | | getRegionList(1, 15, positionStr).then(res => { |
| | | |
| | | getRegionList({ |
| | | page: 1, |
| | | count: 20, |
| | | range: positionStr |
| | | }).then(res => { |
| | | this.monitoringList = res.data.data.list |
| | | |
| | | this.$EventBus.$emit('mapRemoveLayer', { |
| | | layerName: 'monitoringLayers', |
| | | type: 'VectorLayer' |
| | | }) |
| | | |
| | | this.initMonitoringIcon() |
| | | }) |
| | | }, |
| | | |
| | | /** |
| | | * @description: 加载面调用接口返回的点数据 |
| | | * @return {*} |
| | | */ |
| | | initMonitoringIcon () { |
| | | this.monitoringList.forEach((item, index) => { |
| | | this.$EventBus.$emit('layerPointAdd', { |
| | | layerName: 'monitoringLayers', |
| | | type: "billboard", |
| | | params: { |
| | | name: item.name, |
| | | lng: item.longitude, |
| | | lat: item.latitude, |
| | | alt: 100, |
| | | url: '/img/icon/video.png', |
| | | deviceId: item.deviceId, |
| | | channelId: item.channelId |
| | | }, |
| | | incident: this.siteClick |
| | | }) |
| | | }) |
| | | }, |
| | | |
| | | saveDraw () { |
| | | if (this.drawInfo.length != 0) { |
| | | this.drawDialogVisible = true |
| | |
| | | * @Author: shuishen 1109946754@qq.com |
| | | * @Date: 2022-08-18 16:18:17 |
| | | * @LastEditors: shuishen 1109946754@qq.com |
| | | * @LastEditTime: 2023-02-16 16:50:33 |
| | | * @LastEditTime: 2023-02-17 10:34:59 |
| | | * @FilePath: \srs-police-affairs\src\views\video\region.vue |
| | | * @Description: 辖区管理 |
| | | * |
| | |
| | | type8: '' |
| | | } |
| | | |
| | | getRegionList(1, 20, row.id).then(res => { |
| | | getRegionList({ |
| | | page: 1, |
| | | count: 20, |
| | | id: row.id |
| | | }).then(res => { |
| | | let monitorData = res.data.data.list |
| | | |
| | | this.monitoringList = res.data.data.list |
| | | this.$EventBus.$emit('mapRemoveLayer', { |
| | | layerName: 'monitoringLayers', |