| src/App.vue | ●●●●● patch | view | raw | blame | history | |
| src/components/map/index.vue | ●●●●● patch | view | raw | blame | history | |
| src/router/page/index.js | ●●●●● patch | view | raw | blame | history | |
| src/styles/media/index.scss | ●●●●● patch | view | raw | blame | history | |
| src/views/activity/index.vue | ●●●●● patch | view | raw | blame | history | |
| src/views/home/components/leftContainer.vue | ●●●●● patch | view | raw | blame | history | |
| src/views/home/components/rightContainer.vue | ●●●●● patch | view | raw | blame | history | |
| src/views/home/index.vue | ●●●●● patch | view | raw | blame | history | |
| src/views/house/index.vue | ●●●●● patch | view | raw | blame | history | |
| src/views/layout/index.vue | ●●●●● patch | view | raw | blame | history | |
| src/views/login/index.vue | ●●●●● patch | view | raw | blame | history | |
| src/views/police/index.vue | ●●●●● patch | view | raw | blame | history | |
| src/views/video/list.vue | ●●●●● patch | view | raw | blame | history | |
| src/views/video/region.vue | ●●●●● patch | view | raw | blame | history |
src/App.vue
@@ -2,7 +2,7 @@ * @Author: shuishen 1109946754@qq.com * @Date: 2022-08-18 15:58:10 * @LastEditors: shuishen 1109946754@qq.com * @LastEditTime: 2022-11-10 09:13:07 * @LastEditTime: 2022-12-28 08:56:50 * @FilePath: \srs-police-affairs\src\App.vue * @Description: app.vue * @@ -14,10 +14,27 @@ </div> </template> <script> export default { data () { return { currentWidth: 0, currentHeight: 0, } }, created () { if (window.screen.availWidth) { this.currentWidth = window.screen.availWidth + 'px' this.currentHeight = window.screen.availHeight + 'px' } } } </script> <style lang="scss"> #app { width: 100%; height: 100%; font-family: Avenir, Helvetica, Arial, sans-serif; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; src/components/map/index.vue
@@ -2,7 +2,7 @@ * @Author: shuishen 1109946754@qq.com * @Date: 2022-08-18 17:00:30 * @LastEditors: shuishen 1109946754@qq.com * @LastEditTime: 2022-12-26 09:18:51 * @LastEditTime: 2022-12-28 10:24:21 * @FilePath: \srs-police-affairs\src\components\map\index.vue * @Description: 公用地图组件 * @@ -10,6 +10,8 @@ --> <template> <div class="viewer-box" id="viewer-container"> <slot ref="mainContent" name="mainContent"></slot> <slot name="showButton"></slot> <!-- 全屏控制按钮 --> <div class="screen-full-btn"> <el-tooltip v-if="isFullscreen" content="缩放" placement="bottom" effect="dark"> @@ -382,8 +384,8 @@ methods: { // 模型的点击事件 tilesetClick (e) { if (this.$route.path != "/lyout/house") { this.$router.push({ path: '/lyout/house', query: { searchName: 'xxx小区' } }) if (this.$route.path != "/layout/house") { this.$router.push({ path: '/layout/house', query: { searchName: 'xxx小区' } }) } }, switchImg () { src/router/page/index.js
@@ -9,7 +9,7 @@ import VueRouter from 'vue-router' Vue.use(VueRouter) const lyout = () => import('../../views/lyout/index.vue') const layout = () => import('../../views/layout/index.vue') const home = () => import('../../views/home/index.vue') const house = () => import('../../views/house/index.vue') const police = () => import('../../views/police/index.vue') @@ -31,15 +31,15 @@ }, { path: '/', redirect: '/lyout' redirect: '/layout' }, { path: '/lyout', redirect: '/lyout/home', path: '/layout', redirect: '/layout/home', meta: { title: '导航菜单' }, component: lyout, component: layout, children: [ { path: 'home', src/styles/media/index.scss
@@ -61,8 +61,6 @@ } .main-content { top: countSizeVh(60); height: calc(100% - countSizeVh(60)); .home-page { @@ -209,15 +207,6 @@ } } .house-box, .alert-box { .title { height: countSizeVh(62); line-height: countSizeVh(62); } } } .bottom-container { @@ -248,7 +237,7 @@ } } .timeSeclect{ .timeSeclect { top: countSizeVh(15); right: countSizeVw(128, 1920); } @@ -287,19 +276,21 @@ } .region-select { top: countSizeVh(20); top: countSizeVh(80); width: countSizeVw(640, 1920); height: countSizeVh(36); .selects-container .selects-box .text { font-size: countSizeVh(15); } .selects-container .select-options div { height: countSizeVh(36); line-height: countSizeVh(36); } .selects-container .issel{ height:countSizeVh(170)!important; .selects-container .issel { height: countSizeVh(170) !important; } } @@ -725,42 +716,48 @@ } } &>.come-out-content,&>.park-content,&>.business-content{ &>.come-out-content, &>.park-content, &>.business-content { .el-table__header-wrapper { height: countSizeVh(48); .el-table__header { height: 100%; width: countSizeVw(400,1920)!important; width: countSizeVw(400, 1920) !important; } } .el-table__body{ width: countSizeVw(400,1920)!important; .el-table__body { width: countSizeVw(400, 1920) !important; } .el-table .el-table__cell { padding: 0; } .el-table th.el-table__cell { height: 100%; } .el-table .cell { line-height: countSizeVh(48); font-size: countSizeVh(16); } .el-table th.el-table__cell>.cell { height: 100%; } .el-table__empty-text { font-size: countSizeVh(16); } } } .police-info ,.warning-info{ .police-info, .warning-info { .tableClass { width: countSizeVw(600, 1920); height: countSizeVh(400); @@ -770,38 +767,41 @@ .tableClass td { width: countSizeVw(200, 1920); } .el-table__header-wrapper { height: countSizeVh(48); .el-table__header { height: 100%; width: countSizeVw(400,1920)!important; width: countSizeVw(400, 1920) !important; } } .el-table__body{ width: countSizeVw(400,1920)!important; .el-table__body { width: countSizeVw(400, 1920) !important; } .el-table .el-table__cell { padding: 0; } .el-table th.el-table__cell { height: 100%; } .el-table .cell { line-height: countSizeVh(48); font-size: countSizeVh(16); } .el-table th.el-table__cell>.cell { height: 100%; } .el-table__empty-text { font-size: countSizeVh(16); } } } } @@ -1238,7 +1238,7 @@ font-size: countSizeVh(16); } .el-button--text{ .el-button--text { font-size: countSizeVh(16); } @@ -1454,7 +1454,7 @@ margin: 0 countSizeVw(5, 1920); border: countSizeVh(1) solid #cecece; border-radius: countSizeVh(4) countSizeVw(4, 1920); font-size:countSizeVh(16); font-size: countSizeVh(16); } } } @@ -1517,25 +1517,29 @@ .category { width: countSizeVw(96, 1920); } .el-switch{ .el-switch { font-size: countSizeVh(14); height: countSizeVh(12); line-height: countSizeVh(12); } .el-switch__core{ .el-switch__core { height: countSizeVw(14, 1920); width: countSizeVw(30, 1920)!important; width: countSizeVw(30, 1920) !important; border-radius: countSizeVw(10, 1920); border: countSizeVh(1) solid #DCDFE6; } .el-switch__core:after{ top: countSizeVh(1) ; left: countSizeVh(1) ; .el-switch__core:after { top: countSizeVh(1); left: countSizeVh(1); width: countSizeVw(12, 1920); height: countSizeVw(12, 1920); } .el-switch.is-checked .el-switch__core::after{ margin-left:countSizeVw(18, 1920)!important; .el-switch.is-checked .el-switch__core::after { margin-left: countSizeVw(18, 1920) !important; } } } @@ -1555,7 +1559,7 @@ margin: 0 countSizeVw(5, 1920); border: countSizeVh(1) solid #cecece; border-radius: countSizeVw(4, 1920); font-size:countSizeVh(16); font-size: countSizeVh(16); } } } @@ -1564,20 +1568,20 @@ } .main-content { .police-affairs-details-box{ .police-affairs-details-box { .el-dialog { width: countSizeVw(540, 1920); height: countSizeVh(320); font-size: countSizeVh(16); } .el-dialog__header span{ .el-dialog__header span { font-size: countSizeVh(18); } .el-dialog__header button{ .el-dialog__header button { font-size: countSizeVh(18); right: countSizeVw(10, 1920); right: countSizeVw(10, 1920); } .el-dialog .el-dialog__header { @@ -1585,7 +1589,7 @@ line-height: countSizeVh(56); font-size: countSizeVh(16); } .el-dialog .el-dialog__body .item { width: calc(50% - countSizeVw(20, 1920)); height: countSizeVh(36); @@ -1593,279 +1597,342 @@ margin: 0 countSizeVw(10, 1920); font-size: countSizeVh(16); } .el-dialog .el-dialog__body .item > div:first-child { .el-dialog .el-dialog__body .item>div:first-child { width: countSizeVw(100, 1920); margin-right: countSizeVw(20, 1920); font-size: countSizeVh(16); } .el-dialog .el-dialog__body .item > div:nth-of-type(2) { .el-dialog .el-dialog__body .item>div:nth-of-type(2) { width: calc(100% - countSizeVw(120, 1920)); font-size: countSizeVh(16); } } .resident-details-box { } .resident-details-box { .el-dialog { width: countSizeVw(320, 1920); width: countSizeVw(320, 1920); } .el-dialog__header span{ .el-dialog__header span { font-size: countSizeVh(18); } .el-dialog .el-dialog__body{ .el-dialog .el-dialog__body { font-size: countSizeVh(16); } .el-dialog__header button{ .el-dialog__header button { font-size: countSizeVh(18); right: countSizeVw(10, 1920); right: countSizeVw(10, 1920); } } .panorama-details-box{ } .panorama-details-box { .el-dialog { width: countSizeVw(960, 1920); height: countSizeVh(600); width: countSizeVw(960, 1920); height: countSizeVh(600); } .el-dialog__header span{ .el-dialog__header span { font-size: countSizeVh(18); } .el-dialog .el-dialog__body{ .el-dialog .el-dialog__body { font-size: countSizeVh(16); } .el-dialog__header button{ .el-dialog__header button { font-size: countSizeVh(18); right: countSizeVw(10, 1920); right: countSizeVw(10, 1920); } } .phone-details-box{ } .phone-details-box { .el-dialog { width: countSizeVw(720, 1920); height: countSizeVh(400); font-size: countSizeVh(16); } .el-dialog__header span{ .el-dialog__header span { font-size: countSizeVh(18); } .el-dialog .el-dialog__body{ .el-dialog .el-dialog__body { font-size: countSizeVh(16); } .el-dialog__header button{ .el-dialog__header button { font-size: countSizeVh(18); right: countSizeVw(10, 1920); right: countSizeVw(10, 1920); } .el-dialog .el-dialog__header { height: countSizeVh(56); line-height: countSizeVh(56); } .el-dialog .el-dialog__body .item { width: calc(50% - countSizeVw(20, 1920)); height: countSizeVh(36); line-height: countSizeVh(36); margin: 0 countSizeVw(10, 1920); } .el-dialog .el-dialog__body .item > div:first-child { .el-dialog .el-dialog__body .item>div:first-child { width: countSizeVw(100, 1920); margin-right: countSizeVw(20, 1920); } .el-dialog .el-dialog__body .item > div:nth-of-type(2) { .el-dialog .el-dialog__body .item>div:nth-of-type(2) { width: calc(100% - countSizeVw(120, 1920)); } } .area-details-box{ .el-dialog__header span{ } .area-details-box { .el-dialog__header span { font-size: countSizeVh(18); } .el-dialog .el-dialog__body{ .el-dialog .el-dialog__body { font-size: countSizeVh(16); } .el-dialog__header button{ .el-dialog__header button { font-size: countSizeVh(18); right: countSizeVw(10, 1920); right: countSizeVw(10, 1920); } .el-dialog { width: countSizeVw(700, 1920); height: countSizeVh(400); } .el-dialog .el-dialog__header { height: countSizeVh(56); line-height: countSizeVh(56); } } .el-dialog .el-dialog__body .item { width: calc(50% - countSizeVw(20, 1920)); height: countSizeVh(36); line-height: countSizeVh(36); margin: 0 countSizeVw(10, 1920); } .el-dialog .el-dialog__body .item > div:first-child { .el-dialog .el-dialog__body .item>div:first-child { width: countSizeVw(100, 1920); margin-right: countSizeVw(20, 1920); } .el-dialog .el-dialog__body .item > div:nth-of-type(2) { .el-dialog .el-dialog__body .item>div:nth-of-type(2) { width: calc(100% - countSizeVw(120, 1920)); } } .equiment-details-box { .el-dialog__header span{ } .equiment-details-box { .el-dialog__header span { font-size: countSizeVh(18); } .el-dialog .el-dialog__body{ .el-dialog .el-dialog__body { font-size: countSizeVh(16); } .el-dialog__header button{ .el-dialog__header button { font-size: countSizeVh(18); right: countSizeVw(10, 1920); right: countSizeVw(10, 1920); } .el-dialog { width: countSizeVw(1000, 1920); height: countSizeVh(600); } } .land-details-box { .el-dialog__header span{ width: countSizeVw(1000, 1920); height: countSizeVh(600); } } .land-details-box { .el-dialog__header span { font-size: countSizeVh(18); } .el-dialog .el-dialog__body{ .el-dialog .el-dialog__body { font-size: countSizeVh(16); } .el-dialog__header button{ .el-dialog__header button { font-size: countSizeVh(18); right: countSizeVw(10, 1920); right: countSizeVw(10, 1920); } .el-dialog { width: countSizeVw(630, 1920); height: countSizeVh(300); } } .keyPerson-details-box { .el-dialog__header span{ width: countSizeVw(630, 1920); height: countSizeVh(300); } } .keyPerson-details-box { .el-dialog__header span { font-size: countSizeVh(18); } .el-dialog .el-dialog__body{ .el-dialog .el-dialog__body { font-size: countSizeVh(16); } .el-dialog__header button{ .el-dialog__header button { font-size: countSizeVh(18); right: countSizeVw(10, 1920); right: countSizeVw(10, 1920); } .el-dialog { width: countSizeVw(1000, 1920); height: countSizeVh(700); } } .policeSituation-details-box { .el-dialog__header span{ width: countSizeVw(1000, 1920); height: countSizeVh(700); } } .policeSituation-details-box { .el-dialog__header span { font-size: countSizeVh(18); } .el-dialog .el-dialog__body{ .el-dialog .el-dialog__body { font-size: countSizeVh(16); } .el-dialog__header button{ .el-dialog__header button { font-size: countSizeVh(18); right: countSizeVw(10, 1920); right: countSizeVw(10, 1920); } .el-dialog { width: countSizeVw(800, 1920); height: countSizeVh(500); width: countSizeVw(800, 1920); height: countSizeVh(500); } .el-dialog .el-dialog__header { height: countSizeVh(56); line-height: countSizeVh(56); height: countSizeVh(56); line-height: countSizeVh(56); } .el-dialog .el-dialog__body .item { width: calc(50% - countSizeVw(20, 1920)); height: countSizeVh(36); line-height: countSizeVh(36); margin: 0 countSizeVw(10, 1920); width: calc(50% - countSizeVw(20, 1920)); height: countSizeVh(36); line-height: countSizeVh(36); margin: 0 countSizeVw(10, 1920); } .el-dialog .el-dialog__body .item > div:first-child { width: countSizeVw(100, 1920); margin-right: countSizeVw(20, 1920); .el-dialog .el-dialog__body .item>div:first-child { width: countSizeVw(100, 1920); margin-right: countSizeVw(20, 1920); } .el-dialog .el-dialog__body .item > div:nth-of-type(2) { width: calc(100% - countSizeVw(120, 1920)); .el-dialog .el-dialog__body .item>div:nth-of-type(2) { width: calc(100% - countSizeVw(120, 1920)); } .el-dialog .el-dialog__body .dialog-content { height: countSizeVh(36); line-height: countSizeVh(36); margin-left: countSizeVw(10, 1920); height: countSizeVh(36); line-height: countSizeVh(36); margin-left: countSizeVw(10, 1920); } .el-dialog .el-dialog__body .dialog-content > div:first-child { width: countSizeVw(100, 1920); margin-right: countSizeVw(20, 1920); .el-dialog .el-dialog__body .dialog-content>div:first-child { width: countSizeVw(100, 1920); margin-right: countSizeVw(20, 1920); } .el-dialog .el-dialog__body .dialog-content > div:nth-of-type(2) { width: calc(100% - countSizeVw(120, 1920)); .el-dialog .el-dialog__body .dialog-content>div:nth-of-type(2) { width: calc(100% - countSizeVw(120, 1920)); } } .activity-details-box { .el-dialog__header span{ } .activity-details-box { .el-dialog__header span { font-size: countSizeVh(18); } .el-dialog .el-dialog__body{ .el-dialog .el-dialog__body { font-size: countSizeVh(16); } .el-dialog__header button{ .el-dialog__header button { font-size: countSizeVh(18); right: countSizeVw(10, 1920); right: countSizeVw(10, 1920); } .el-dialog { width: countSizeVw(640, 1920); height: countSizeVh(400); } .el-dialog .el-dialog__header { height: countSizeVh(56); line-height: countSizeVh(56); } .el-dialog .el-dialog__body .item { width: calc(50% - countSizeVw(20, 1920)); height: countSizeVh(36); line-height: countSizeVh(36); margin: 0 countSizeVw(10, 1920); } .el-dialog .el-dialog__body .item > div:first-child { .el-dialog .el-dialog__body .item>div:first-child { margin-right: countSizeVw(20, 1920); } .el-dialog .el-dialog__body .item > div:nth-of-type(2) { .el-dialog .el-dialog__body .item>div:nth-of-type(2) { width: calc(100% - countSizeVw(120, 1920)); } } .video-draw-box { .el-dialog__header span{ } .video-draw-box { .el-dialog__header span { font-size: countSizeVh(18); } .el-dialog .el-dialog__body{ .el-dialog .el-dialog__body { font-size: countSizeVh(16); } .el-dialog__header button{ .el-dialog__header button { font-size: countSizeVh(18); right: countSizeVw(10, 1920); right: countSizeVw(10, 1920); } .el-dialog { width: countSizeVw(320, 1920); height: countSizeVh(180); } .el-dialog .el-dialog__body input { height: countSizeVh(30); font-size: countSizeVh(16); border: countSizeVh(1) solid #005ca9; } .el-dialog .el-dialog__body button { width: countSizeVw(60, 1920); height: countSizeVh(30); border-radius: countSizeVh(4); margin-top: countSizeVh(10); } } .choose-police-box { .el-dialog__header span{ } .choose-police-box { .el-dialog__header span { font-size: countSizeVh(18); } .el-dialog .el-dialog__body{ .el-dialog .el-dialog__body { font-size: countSizeVh(16); } .el-dialog__header button{ .el-dialog__header button { font-size: countSizeVh(18); right: countSizeVw(10, 1920); right: countSizeVw(10, 1920); } .el-dialog { width: countSizeVw(320, 1920); @@ -2019,12 +2086,16 @@ font-size: countSizeVh(24); } .dc-location-bar{ .dc-location-bar { font-size: countSizeVh(16); } .main-content.spread { position: absolute; top: countSizeVh(60); width: countSizeVw(400, 1920); height: calc(100% - countSizeVh(60)); z-index: 99; } .flexible-btn { @@ -2326,8 +2397,6 @@ } .main-content { top: maxCountSizeVh(60); height: calc(100% - maxCountSizeVh(60)); .left-container, .right-container { @@ -2372,14 +2441,6 @@ } } } .house-box { .title { height: countSizeVh(54); line-height: countSizeVh(54); } } } .bottom-container { @@ -2389,7 +2450,7 @@ } .region-select { top: maxCountSizeVh(20); top: maxCountSizeVh(80); } } } src/views/activity/index.vue
@@ -475,7 +475,7 @@ mounted () { this.$parent.resize('400px', true) this.$parent.$parent.resize('400px', true) this.$nextTick(() => { if (analyseLayer == null) { @@ -1073,7 +1073,7 @@ this.removeAll() tc.clear() this.$parent.resize('0px') this.$parent.$parent.resize('0px') } } </script> src/views/home/components/leftContainer.vue
@@ -13,38 +13,21 @@ </div> </div> <div class="sub-tab" v-show="peopletype == 0"> <div class="tab3" :class="{ 'select-on-tab': tabType == 0 }" @click="personTabClick(0)" > <div class="tab3" :class="{ 'select-on-tab': tabType == 0 }" @click="personTabClick(0)"> <div class="num">164.57万人</div> <div class="type">户籍人口</div> </div> <div class="tab3" :class="{ 'select-on-tab': tabType == 1 }" @click="personTabClick(1)" > <div class="tab3" :class="{ 'select-on-tab': tabType == 1 }" @click="personTabClick(1)"> <div class="num">17.52万人</div> <div class="type">流动人口</div> </div> <div class="tab3" :class="{ 'select-on-tab': tabType == 2 }" @click="personTabClick(2)" > <div class="tab3" :class="{ 'select-on-tab': tabType == 2 }" @click="personTabClick(2)"> <div class="num">91995人</div> <div class="type">境外人口</div> </div> </div> <div id="PersonEcharts" class="echarts-box"></div> <div class="back" title="返回上一级" v-show="dataDeep == 2 && peopletype == 0" @click="backBegin" ></div> <div class="back" title="返回上一级" v-show="dataDeep == 2 && peopletype == 0" @click="backBegin"></div> <!-- <svg viewBox="0 0 384 329" width="100%" height="100%" style="position: absolute; top: 0; left: 0;"> <defs> @@ -65,19 +48,11 @@ <div class="house-box" style="position: relative;"> <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">182万户</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">634个</div> </div> @@ -95,19 +70,11 @@ <div class="land-box" style="position: relative;"> <div class="title">现有地</div> <div class="sub-tab"> <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">634个</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">634个</div> </div> @@ -1041,7 +1008,7 @@ color: #fff; } & > div:nth-of-type(2) { &>div:nth-of-type(2) { font-size: 14px; } } @@ -1065,7 +1032,7 @@ border-radius: 8px; cursor: pointer; & > div { &>div { height: 22px; line-height: 22px; } src/views/home/components/rightContainer.vue
@@ -195,11 +195,12 @@ trigger: 'item', confine: true, formatter: function (params) { console.log(params, 555) let tipHtml = `` if ('carCount' in params.data) { tipHtml = `<span style="display: inline-block; margin-right: 4px; border-radius: 10px; width: 10px; height: 10px;background-color: #91cc75;"></span> ${params.data.name}<strong style="margin-left:10px">${params.data.value}台</strong><br /><strong style="margin-left:10px;color:#5c7bd9">占比:${params.percent}%</strong><br /><span style="color:#5470c6">警车:${params.data.carCount}台</span><br /><span style="margin-left:10px;color:#91cc75">监控:${params.data.monitorCount}台</span><br /><span style="color:#fac858">手台:${params.data.phoneCount}台</span><br /><span style="margin-left:10px;color:#ee6666">手持记录仪:${params.data.recorderCount}台</span>` tipHtml = `${params.marker} <strong style="color: ${params.color}">${params.data.name} ${params.data.value}台</strong><br /><strong style="margin-left:10px;color:#5c7bd9">占比:${params.percent}%</strong><br /><span style="color:#5470c6">警车:${params.data.carCount}台</span><br /><span style="margin-left:10px;color:#91cc75">监控:${params.data.monitorCount}台</span><br /><span style="color:#fac858">手台:${params.data.phoneCount}台</span><br /><span style="margin-left:10px;color:#ee6666">手持记录仪:${params.data.recorderCount}台</span>` } else { tipHtml = `<span style="display: inline-block; margin-right: 4px; border-radius: 10px; width: 10px; height: 10px;background-color: #91cc75;"></span> ${params.data.name}<strong style="margin-left:10px">${params.data.value}台</strong><br /><span style="color:#4caf50">正常:${params.data.working}台</span><br /><span style="color:#2979ff">故障:${params.data.fault}台</span><br /><span style="margin-left:10px;color:#5c7bd9">设备故障率:${Math.floor(params.data.fault / (params.data.working + params.data.fault) * 100)}%</span><br />` tipHtml = `${params.marker} <strong style="color: ${params.color}">${params.data.name} ${params.data.value}台</strong><br /><span style="color:#4caf50">正常:${params.data.working}台</span><br /><span style="color:#2979ff">故障:${params.data.fault}台</span><br /><span style="margin-left:10px;color:#5c7bd9">设备故障率:${Math.floor(params.data.fault / (params.data.working + params.data.fault) * 100)}%</span><br />` } return tipHtml }, @@ -212,8 +213,8 @@ graphic: { type: "text", // left: "36.5%", left: "40%", top: "48%", top: "40%", left: "center", style: { text: "设备总数", textAlign: "center", @@ -224,8 +225,8 @@ }, title: { text: `${this.regionTotal}`, left: "42%", top: "56%", top: "52%", left: "center", textStyle: { color: "#27D9C8", fontSize: fontSize(20), @@ -237,8 +238,9 @@ { name: '', type: 'pie', radius: ['40%', '70%'], center: ['47%', '57%'], radius: ['90%', '136%'], top: 'middle', left: 'center', data: dataArr, avoidLabelOverlap: false, labelLine: { @@ -282,13 +284,7 @@ } } } ], grid: { x: 10, y: 10, x2: 10, y2: 20 }, ] } }, src/views/home/index.vue
@@ -2,7 +2,7 @@ * @Author: shuishen 1109946754@qq.com * @Date: 2022-08-18 16:18:17 * @LastEditors: shuishen 1109946754@qq.com * @LastEditTime: 2022-12-13 15:10:42 * @LastEditTime: 2022-12-28 10:26:55 * @FilePath: \srs-police-affairs\src\views\home\index.vue * @Description: 小区-栋-层-房屋 * @@ -702,7 +702,7 @@ }, houseSiteClick (e) { this.$router.push({ path: '/lyout/house', query: { searchName: 'xxx小区' } }) this.$router.push({ path: '/layout/house', query: { searchName: 'xxx小区' } }) }, carChange (e) { @@ -1518,7 +1518,7 @@ .left-container { display: flex; flex-direction: column; position: fixed; position: absolute; top: 60px; left: 0; width: 400px; @@ -1529,7 +1529,7 @@ .right-container { display: flex; flex-direction: column; position: fixed; position: absolute; top: 60px; right: 0; width: 400px; @@ -1540,7 +1540,7 @@ .center-container { display: flex; position: fixed; position: absolute; left: 50%; bottom: 318px; transform: translate(-50%, 0); @@ -1661,7 +1661,7 @@ } .bottom-container { position: fixed; position: absolute; left: 400px; bottom: 8px; height: 300px; @@ -1673,7 +1673,7 @@ .region-select { display: flex; position: absolute; top: 20px; top: 80px; width: 640px; height: 36px; z-index: 99; src/views/house/index.vue
@@ -597,7 +597,7 @@ // this.getUnitbuild('6E513C5E5D1611EAB6183C15FB00027B', '361102') }, mounted () { this.$parent.resize('400px', true) this.$parent.$parent.resize('400px', true) this.$nextTick(() => { this.searchHouse = this.$route.query.searchName @@ -867,7 +867,7 @@ // titlesetName: 'sdTilesetLayer' // }) this.$parent.resize('0px') this.$parent.$parent.resize('0px') } } </script> src/views/layout/index.vue
File was renamed from src/views/lyout/index.vue @@ -2,8 +2,8 @@ * @Author: shuishen 1109946754@qq.com * @Date: 2022-08-18 16:18:24 * @LastEditors: shuishen 1109946754@qq.com * @LastEditTime: 2022-12-27 09:33:59 * @FilePath: \srs-police-affairs\src\views\lyout\index.vue * @LastEditTime: 2022-12-28 10:08:37 * @FilePath: \srs-police-affairs\src\views\layout\index.vue * @Description: * * Copyright (c) 2022 by shuishen 1109946754@qq.com, All Rights Reserved. @@ -17,9 +17,7 @@ <span :class="{ on: currentUrl.indexOf(item.path) != -1 }">{{ item.menuName }}</span> <div class="sub-nav-list" v-show="item.children && item.childrenFlag"> <div v-for="(subItem, subIndex) in item.children" :key="subIndex" @click="goToPath(subItem)"> {{ subItem.menuName }} {{ subItem.menuName }} </div> </div> </div> @@ -36,9 +34,7 @@ <span :class="{ on: currentUrl.indexOf(item.path) != -1 }">{{ item.menuName }}</span> <div class="sub-nav-list" v-show="item.children && item.childrenFlag"> <div v-for="(subItem, subIndex) in item.children" :key="subIndex" @click="goToPath(subItem)"> {{ subItem.menuName }} {{ subItem.menuName }} </div> </div> </div> @@ -76,18 +72,18 @@ <div class="main-container"> <!-- 地图区域 --> <mapBox ref="modalForm" /> <map-box ref="modalForm"> <!-- 主体内容区域 --> <div slot="mainContent" class="main-content" id="MainContent" :class="{ 'spread': leftShow && show, 'take-back': leftShow && !show }"> <router-view ref="target-name"></router-view> </div> <!-- 主体内容区域 --> <div class="main-content" id="MainContent" :class="{ 'spread': leftShow && show, 'take-back': leftShow && !show }"> <router-view ref="target-name"></router-view> </div> <el-button v-show="leftShow" class="flexible-btn" :class="{ 'spread': leftShow && show, 'take-back': leftShow && !show }" :icon="show ? 'el-icon-arrow-left' : 'el-icon-arrow-right'" id="FlexibleBtn" type="primary" @click="flexibelClick"></el-button> <el-button slot="showButton" v-show="leftShow" class="flexible-btn" :class="{ 'spread': leftShow && show, 'take-back': leftShow && !show }" :icon="show ? 'el-icon-arrow-left' : 'el-icon-arrow-right'" id="FlexibleBtn" type="primary" @click="flexibelClick"></el-button> </map-box> </div> </div> </template> @@ -100,37 +96,37 @@ menuLeftList: [ { menuName: '首页', path: '/lyout/home' path: '/layout/home' }, { menuName: '社区感知', path: '/lyout/house' path: '/layout/house' }, { menuName: '警力资源', path: '/lyout/police' path: '/layout/police' } ], menuRightList: [ { menuName: '视频监控', path: '/lyout/video', path: '/layout/video', childrenFlag: false, children: [ { menuName: '列表查询', path: '/lyout/video/list' path: '/layout/video/list' }, { menuName: '空间查询', path: '/lyout/video/region' path: '/layout/video/region' } ] }, { menuName: '安保活动', path: '/lyout/activity' path: '/layout/activity' }, { menuName: '运维管理', @@ -145,7 +141,7 @@ boxWidth: 0, currentUrl: '/lyout/home', currentUrl: '/layout/home', userOn: false, isShowUserDetail: false, user: {} @@ -154,7 +150,7 @@ created () { this.currentUrl = this.$route.path this.init(); this.init() }, watch: { @@ -169,7 +165,7 @@ document.querySelector('.image-switch-img-btn').classList.remove('shrink-btn') }) if (this.currentUrl == '/lyout/home') { if (this.currentUrl == '/layout/home') { this.leftShow = false } else { this.leftShow = true @@ -183,8 +179,8 @@ }, methods: { init(){ this.user = this.$store.state.user.userInfo; init () { this.user = this.$store.state.user.userInfo }, //登出 goTOLogout () { @@ -514,12 +510,6 @@ position: relative; width: 100%; height: 100%; .main-content { position: absolute; top: 60px; height: calc(100% - 60px); } .main-content.spread { width: 400px; src/views/login/index.vue
@@ -56,7 +56,7 @@ export default { name: 'AppRegister', data() { data () { return { user: { username: '', @@ -106,7 +106,7 @@ newAxios: null } }, created() { created () { var that = this document.onkeydown = (e) => { @@ -117,7 +117,7 @@ } }, methods: { onLogin() { onLogin () { this.$refs.formName.validate((valid) => { if (valid) { nprogress.start() @@ -126,14 +126,14 @@ lock: true, text: '登录中,请稍后。。。', spinner: "el-icon-loading" }); }) this.$store.dispatch("LoginByUsername", this.loginForm).then((res) => { //跳转首页 this.$router.push({ path: "/lyout/home" }); loading.close(); this.$router.push({ path: "/layout/home" }) loading.close() }).catch(() => { loading.close(); }); loading.close() }) } }) } @@ -142,9 +142,7 @@ </script> <style scoped lang="scss"> .login-btn{ .login-btn { background-color: #409EFF; border-radius: 2px; height: 30px; @@ -153,7 +151,7 @@ font-size: 14px; } .login-btn:hover{ .login-btn:hover { background-color: #66B1FF; } src/views/police/index.vue
@@ -2,7 +2,7 @@ * @Author: shuishen 1109946754@qq.com * @Date: 2022-08-18 16:18:17 * @LastEditors: shuishen 1109946754@qq.com * @LastEditTime: 2022-12-15 10:33:21 * @LastEditTime: 2022-12-28 10:21:32 * @FilePath: \srs-police-affairs\src\views\police\index.vue * @Description: 辖区管理 * @@ -13,48 +13,28 @@ <div class="police-page container"> <div v-show="boxShow" class="container-content"> <div class="switch-box"> <el-select v-model="typeValue" @change="navClick" placeholder="请选择" class="type-select-css" > <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value" class="option-css" ></el-option> <el-select v-model="typeValue" @change="navClick" placeholder="请选择" class="type-select-css"> <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value" class="option-css"></el-option> </el-select> </div> <div class="list-show" ref="tableBox" v-show="!detailFlag"> <div class="search-box" ref="tableSearchBox"> <input v-model="searchValue" @input="searchChange" type="text" placeholder="请输入搜索条件" /> <input v-model="searchValue" @input="searchChange" type="text" placeholder="请输入搜索条件" /> <button @click="searchClick" class="el-icon-search"></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 @click="searchVlaClick(item)" v-for="(item, index) in searchArray" :key="index">{{ item.name }} </div> </div> <div class="list" v-show="navType == 1"> <el-table :data="carList" <el-table :data="carList" :header-cell-style="{ 'text-align': 'center', 'background-color': '#203c60', 'borderColor': '#324e75' }" :cell-style="{ 'text-align': 'center', 'borderColor': '#324e75', 'cursor': 'pointer' }" :height="currentTableHeight" > :height="currentTableHeight"> <el-table-column prop="serialNumber" label="编号" min-width="25%"></el-table-column> <el-table-column prop="carType" label="类型" min-width="25%"></el-table-column> <el-table-column prop="status" label="状态" min-width="25%"> @@ -65,20 +45,10 @@ <el-table-column label="操作" align="center" min-width="25%"> <template slot-scope="scope"> <el-button @click="rowClick(scope.row)" type="text" size="small" title="定位" > <el-button @click="rowClick(scope.row)" type="text" size="small" title="定位"> <i class="el-icon-location"></i> </el-button> <el-button @click="carDetail(scope.row)" type="text" size="small" title="轨迹" > <el-button @click="carDetail(scope.row)" type="text" size="small" title="轨迹"> <i class="el-icon-position"></i> </el-button> </template> @@ -86,25 +56,18 @@ </el-table> <div class="pages"> <el-pagination background layout="prev, pager, next" :page-size="pagesize" :page-count="carPagesCount" :current-page="currentPage" @current-change="handleCurrentChange" ></el-pagination> <el-pagination background layout="prev, pager, next" :page-size="pagesize" :page-count="carPagesCount" :current-page="currentPage" @current-change="handleCurrentChange"></el-pagination> </div> </div> <div class="list" v-show="navType == 2"> <el-table :data="phoneList.slice((currentPage - 1) * pagesize, currentPage * pagesize)" <el-table :data="phoneList.slice((currentPage - 1) * pagesize, currentPage * pagesize)" style="width: 100%" :header-cell-style="{ 'text-align': 'center', 'background-color': '#203c60', 'borderColor': '#324e75' }" :cell-style="{ 'text-align': 'center', 'borderColor': '#324e75', 'cursor': 'pointer' }" :height="currentTableHeight" > :height="currentTableHeight"> <el-table-column prop="name" label="名称" min-width="25%"></el-table-column> <el-table-column prop="phoneType" label="类型" min-width="25%"></el-table-column> <el-table-column prop="state" label="状态" min-width="25%"> @@ -115,20 +78,10 @@ <el-table-column label="操作" align="center" min-width="25%"> <template slot-scope="scope"> <el-button @click="rowClick(scope.row)" type="text" size="small" title="定位" > <el-button @click="rowClick(scope.row)" type="text" size="small" title="定位"> <i class="el-icon-location"></i> </el-button> <el-button @click="carDetail(scope.row)" type="text" size="small" title="轨迹" > <el-button @click="carDetail(scope.row)" type="text" size="small" title="轨迹"> <i class="el-icon-position"></i> </el-button> </template> @@ -136,26 +89,18 @@ </el-table> <div class="pages"> <el-pagination background layout="prev, pager, next" :total="phoneList.length" :page-size="pagesize" pager-count="3" :current-page="currentPage" @current-change="handleCurrentChange" ></el-pagination> <el-pagination background layout="prev, pager, next" :total="phoneList.length" :page-size="pagesize" pager-count="3" :current-page="currentPage" @current-change="handleCurrentChange"></el-pagination> </div> </div> <div class="list" v-show="navType == 3"> <el-table :data="dtList.slice((currentPage - 1) * pagesize, currentPage * pagesize)" <el-table :data="dtList.slice((currentPage - 1) * pagesize, currentPage * pagesize)" style="width: 100%" :header-cell-style="{ 'text-align': 'center', 'background-color': '#203c60', 'borderColor': '#324e75' }" :cell-style="{ 'text-align': 'center', 'borderColor': '#324e75', 'cursor': 'pointer' }" :height="currentTableHeight" > :height="currentTableHeight"> <el-table-column prop="name" label="名称" min-width="25%"></el-table-column> <el-table-column prop="dtType" label="类型" min-width="25%"></el-table-column> <el-table-column prop="state" label="状态" min-width="25%"> @@ -166,20 +111,10 @@ <el-table-column label="操作" align="center" min-width="25%"> <template slot-scope="scope"> <el-button @click="rowClick(scope.row)" type="text" size="small" title="定位" > <el-button @click="rowClick(scope.row)" type="text" size="small" title="定位"> <i class="el-icon-location"></i> </el-button> <el-button @click="carDetail(scope.row)" type="text" size="small" title="轨迹" > <el-button @click="carDetail(scope.row)" type="text" size="small" title="轨迹"> <i class="el-icon-position"></i> </el-button> </template> @@ -187,26 +122,18 @@ </el-table> <div class="pages"> <el-pagination background layout="prev, pager, next" :total="dtList.length" :page-size="pagesize" pager-count="3" :current-page="currentPage" @current-change="handleCurrentChange" ></el-pagination> <el-pagination background layout="prev, pager, next" :total="dtList.length" :page-size="pagesize" pager-count="3" :current-page="currentPage" @current-change="handleCurrentChange"></el-pagination> </div> </div> <div class="list" v-show="navType == 4"> <el-table :data="zfList.slice((currentPage - 1) * pagesize, currentPage * pagesize)" <el-table :data="zfList.slice((currentPage - 1) * pagesize, currentPage * pagesize)" style="width: 100%" :header-cell-style="{ 'text-align': 'center', 'background-color': '#203c60', 'borderColor': '#324e75' }" :cell-style="{ 'text-align': 'center', 'borderColor': '#324e75', 'cursor': 'pointer' }" :height="currentTableHeight" > :height="currentTableHeight"> <el-table-column prop="name" label="名称" min-width="25%"></el-table-column> <el-table-column prop="phoneType" label="类型" min-width="25%"></el-table-column> <el-table-column label="状态" min-width="25%"> @@ -217,20 +144,10 @@ <el-table-column label="操作" align="center" min-width="25%"> <template slot-scope="scope"> <el-button @click="rowClick(scope.row)" type="text" size="small" title="定位" > <el-button @click="rowClick(scope.row)" type="text" size="small" title="定位"> <i class="el-icon-location"></i> </el-button> <el-button @click="carDetail(scope.row)" type="text" size="small" title="轨迹" > <el-button @click="carDetail(scope.row)" type="text" size="small" title="轨迹"> <i class="el-icon-position"></i> </el-button> </template> @@ -238,15 +155,9 @@ </el-table> <div class="pages"> <el-pagination background layout="prev, pager, next" :total="zfList.length" :page-size="pagesize" pager-count="3" :current-page="currentPage" @current-change="handleCurrentChange" ></el-pagination> <el-pagination background layout="prev, pager, next" :total="zfList.length" :page-size="pagesize" pager-count="3" :current-page="currentPage" @current-change="handleCurrentChange"></el-pagination> </div> </div> </div> @@ -277,15 +188,9 @@ <li> <div>选择时间:</div> <div class="datetime"> <el-date-picker v-model="trackTime" type="datetimerange" range-separator="至" start-placeholder="开始日期" size="mini" :editable="false" end-placeholder="结束日期" ></el-date-picker> <el-date-picker v-model="trackTime" type="datetimerange" range-separator="至" start-placeholder="开始日期" size="mini" :editable="false" end-placeholder="结束日期"></el-date-picker> </div> </li> @@ -318,15 +223,9 @@ <li> <div>选择时间:</div> <div class="datetime"> <el-date-picker v-model="trackTime" type="datetimerange" range-separator="至" start-placeholder="开始日期" size="mini" :editable="false" end-placeholder="结束日期" ></el-date-picker> <el-date-picker v-model="trackTime" type="datetimerange" range-separator="至" start-placeholder="开始日期" size="mini" :editable="false" end-placeholder="结束日期"></el-date-picker> </div> </li> @@ -337,33 +236,14 @@ </div> </div> <el-dialog :title="dialogTitle" :modal="true" :visible.sync="dialogVisible" :before-close="dialogBeforeClose" :close-on-click-modal="true" class="car-video-box" > <video src="/video/sp.mp4" autoplay controls width="100%" height="100%" ref="videoElement" style="object-fit: fill" ></video> <el-dialog :title="dialogTitle" :modal="true" :visible.sync="dialogVisible" :before-close="dialogBeforeClose" :close-on-click-modal="true" class="car-video-box"> <video src="/video/sp.mp4" autoplay controls width="100%" height="100%" ref="videoElement" style="object-fit: fill"></video> </el-dialog> <el-dialog :title="phoneTitle" :modal="true" :visible.sync="phoneVisible" :before-close="phoneBeforeClose" :close-on-click-modal="true" class="phone-details-box" > <el-dialog :title="phoneTitle" :modal="true" :visible.sync="phoneVisible" :before-close="phoneBeforeClose" :close-on-click-modal="true" class="phone-details-box"> <div class="item"> <div>责任人:</div> <div>{{ phoneDetails.person }}</div> @@ -453,7 +333,7 @@ }, mounted () { this.$parent.resize('400px', true) this.$parent.$parent.resize('400px', true) this.navClick(1) @@ -809,7 +689,7 @@ window.removeEventListener('resize', this.setTableHeight) this.$parent.resize('0px') this.$parent.$parent.resize('0px') } } </script> @@ -834,7 +714,7 @@ display: flex; justify-content: space-around; & > div { &>div { flex: 1; } } @@ -901,7 +781,7 @@ border-radius: 10px; overflow-y: auto; & > div { &>div { height: 100%; padding: 0 10px; line-height: 36px; @@ -981,18 +861,18 @@ color: #fff; border-bottom: 1px solid #fff; & > div { &>div { text-align: center; } & > div:first-child { &>div:first-child { flex: 2; } & > div:last-child { &>div:last-child { flex: 6; & > div { &>div { width: 100% !important; } } src/views/video/list.vue
@@ -149,7 +149,7 @@ }, mounted () { this.$parent.$parent.resize('400px', true) this.$parent.$parent.$parent.resize('400px', true) graphicLayer = new EntityDraw() }, @@ -440,7 +440,7 @@ graphicLayer.destroy() this.$parent.$parent.resize('0px') this.$parent.$parent.$parent.resize('0px') if (this.flvPlayer != null) { this.flvPlayer.pause() src/views/video/region.vue
@@ -2,7 +2,7 @@ * @Author: shuishen 1109946754@qq.com * @Date: 2022-08-18 16:18:17 * @LastEditors: shuishen 1109946754@qq.com * @LastEditTime: 2022-12-01 15:43:56 * @LastEditTime: 2022-12-28 10:22:01 * @FilePath: \srs-police-affairs\src\views\video\region.vue * @Description: 辖区管理 * @@ -14,33 +14,22 @@ <div class="region-left-container"> <div v-show="boxShow" class="container-content"> <div class="search-box"> <input v-model="searchValue" @input="searchChange" type="text" placeholder="请输入搜索条件" /> <input v-model="searchValue" @input="searchChange" type="text" placeholder="请输入搜索条件" /> <button @click="searchClick" class="el-icon-search"></button> </div> <div v-show="true" class="search-val-box"> <div @click="searchVlaClick(item)" v-for="(item, index) in searchArray" :key="index" >{{ item.name }}</div> <div @click="searchVlaClick(item)" v-for="(item, index) in searchArray" :key="index">{{ item.name }} </div> </div> <div class="list-show"> <div class="car-list"> <div class="list-box"> <el-table :data="saveRangeList" style="width: 100%" <el-table :data="saveRangeList" style="width: 100%" :header-cell-style="{ 'text-align': 'center', 'background-color': '#203c60', 'borderColor': '#324e75' }" :cell-style="{ 'text-align': 'center', 'borderColor': '#324e75' }" @cell-click="rowClick" > @cell-click="rowClick"> <el-table-column prop="name" label="范围名称" min-width="50%"></el-table-column> <el-table-column prop="type" label="范围类型" min-width="50%"> <template slot-scope="scope"> @@ -50,20 +39,11 @@ </el-table-column> <el-table-column prop="id" label="操作" min-width="50%"> <template slot-scope="scope"> <el-button @click="flytoRange(scope.row)" type="text" size="small" title="定位" > <el-button @click="flytoRange(scope.row)" type="text" size="small" title="定位"> <i class="el-icon-location"></i> </el-button> <el-button @click="deleteRegionSaveList(scope.row.id)" type="text" size="small" title="删除" > <el-button @click="deleteRegionSaveList(scope.row.id)" type="text" size="small" title="删除"> <i class="el-icon-delete"></i> </el-button> </template> @@ -71,14 +51,9 @@ </el-table> </div> <div class="pages"> <el-pagination background layout="prev, pager, next" :page-size="pagesize" :page-count="pagesCount" :current-page="currentPage" @current-change="handleCurrentChange" ></el-pagination> <el-pagination background layout="prev, pager, next" :page-size="pagesize" :page-count="pagesCount" :current-page="currentPage" @current-change="handleCurrentChange"></el-pagination> </div> </div> </div> @@ -86,247 +61,104 @@ </div> <div class="item video1" v-show="isShowVideo1"> <div class="select" v-show="isShowSelect.video1" @mouseenter="enterSelectBox(1)"> <el-select size="small" v-model="monitorType1" @change="((val)=>{navClick(val,1)})" placeholder="请选择" ref="videoSelect1" > <el-option v-for="item in monitorOption" :key="item.value" :label="item.label" :value="item.value" ></el-option> <el-select size="small" v-model="monitorType1" @change="((val) => { navClick(val, 1) })" placeholder="请选择" ref="videoSelect1"> <el-option v-for="item in monitorOption" :key="item.value" :label="item.label" :value="item.value"></el-option> </el-select> </div> <div class="video" @mouseenter="enterVideoBox(1)" @mouseleave="leaveVideoBox(1)"> <video id="videoElement1" autoplay controls width="100%" height="100%" style="object-fit: fill" ></video> <video id="videoElement1" autoplay controls width="100%" height="100%" style="object-fit: fill"></video> </div> </div> <div class="item video2" v-show="isShowVideo2"> <div class="select" v-show="isShowSelect.video2" @mouseenter="enterSelectBox(2)"> <el-select size="small" v-model="monitorType2" @change="((val)=>{navClick(val,2)})" placeholder="请选择" ref="videoSelect2" > <el-option v-for="item in monitorOption" :key="item.value" :label="item.label" :value="item.value" ></el-option> <el-select size="small" v-model="monitorType2" @change="((val) => { navClick(val, 2) })" placeholder="请选择" ref="videoSelect2"> <el-option v-for="item in monitorOption" :key="item.value" :label="item.label" :value="item.value"></el-option> </el-select> </div> <div class="video" @mouseenter="enterVideoBox(2)" @mouseleave="leaveVideoBox(2)"> <video id="videoElement2" autoplay controls width="100%" height="100%" style="object-fit: fill" ></video> <video id="videoElement2" autoplay controls width="100%" height="100%" style="object-fit: fill"></video> </div> </div> <div class="item video3" v-show="isShowVideo3"> <div class="select" v-show="isShowSelect.video3" @mouseenter="enterSelectBox(3)"> <el-select size="small" v-model="monitorType3" @change="((val)=>{navClick(val,3)})" placeholder="请选择" ref="videoSelect3" > <el-option v-for="item in monitorOption" :key="item.value" :label="item.label" :value="item.value" ></el-option> <el-select size="small" v-model="monitorType3" @change="((val) => { navClick(val, 3) })" placeholder="请选择" ref="videoSelect3"> <el-option v-for="item in monitorOption" :key="item.value" :label="item.label" :value="item.value"></el-option> </el-select> </div> <div class="video" @mouseenter="enterVideoBox(3)" @mouseleave="leaveVideoBox(3)"> <video id="videoElement3" autoplay controls width="100%" height="100%" style="object-fit: fill" ></video> <video id="videoElement3" autoplay controls width="100%" height="100%" style="object-fit: fill"></video> </div> </div> <div class="item video4" v-show="isShowVideo4"> <div class="select" v-show="isShowSelect.video4" @mouseenter="enterSelectBox(4)"> <el-select size="small" v-model="monitorType4" @change="((val)=>{navClick(val,4)})" placeholder="请选择" ref="videoSelect4" > <el-option v-for="item in monitorOption" :key="item.value" :label="item.label" :value="item.value" ></el-option> <el-select size="small" v-model="monitorType4" @change="((val) => { navClick(val, 4) })" placeholder="请选择" ref="videoSelect4"> <el-option v-for="item in monitorOption" :key="item.value" :label="item.label" :value="item.value"></el-option> </el-select> </div> <div class="video" @mouseenter="enterVideoBox(4)" @mouseleave="leaveVideoBox(4)"> <video id="videoElement4" autoplay controls width="100%" height="100%" style="object-fit: fill" ></video> <video id="videoElement4" autoplay controls width="100%" height="100%" style="object-fit: fill"></video> </div> </div> <div class="item video5" v-show="isShowVideo5"> <div class="select" v-show="isShowSelect.video5" @mouseenter="enterSelectBox(5)"> <el-select size="small" v-model="monitorType5" @change="((val)=>{navClick(val,5)})" placeholder="请选择" ref="videoSelect5" > <el-option v-for="item in monitorOption" :key="item.value" :label="item.label" :value="item.value" ></el-option> <el-select size="small" v-model="monitorType5" @change="((val) => { navClick(val, 5) })" placeholder="请选择" ref="videoSelect5"> <el-option v-for="item in monitorOption" :key="item.value" :label="item.label" :value="item.value"></el-option> </el-select> </div> <div class="video" @mouseenter="enterVideoBox(5)" @mouseleave="leaveVideoBox(5)"> <video id="videoElement5" autoplay controls width="100%" height="100%" style="object-fit: fill" ></video> <video id="videoElement5" autoplay controls width="100%" height="100%" style="object-fit: fill"></video> </div> </div> <div class="item video6" v-show="isShowVideo6"> <div class="select" v-show="isShowSelect.video6" @mouseenter="enterSelectBox(6)"> <el-select size="small" v-model="monitorType6" @change="((val)=>{navClick(val,6)})" placeholder="请选择" ref="videoSelect6" > <el-option v-for="item in monitorOption" :key="item.value" :label="item.label" :value="item.value" ></el-option> <el-select size="small" v-model="monitorType6" @change="((val) => { navClick(val, 6) })" placeholder="请选择" ref="videoSelect6"> <el-option v-for="item in monitorOption" :key="item.value" :label="item.label" :value="item.value"></el-option> </el-select> </div> <div class="video" @mouseenter="enterVideoBox(6)" @mouseleave="leaveVideoBox(6)"> <video id="videoElement6" autoplay controls width="100%" height="100%" style="object-fit: fill" ></video> <video id="videoElement6" autoplay controls width="100%" height="100%" style="object-fit: fill"></video> </div> </div> <div class="item video7" v-show="isShowVideo7"> <div class="select" v-show="isShowSelect.video7" @mouseenter="enterSelectBox(7)"> <el-select size="small" v-model="monitorType7" v-show="isShowSelect.video7" @change="((val)=>{navClick(val,7)})" placeholder="请选择" ref="videoSelect7" > <el-option v-show="isShowSelect.video7" v-for="item in monitorOption" :key="item.value" :label="item.label" :value="item.value" ></el-option> <el-select size="small" v-model="monitorType7" v-show="isShowSelect.video7" @change="((val) => { navClick(val, 7) })" placeholder="请选择" ref="videoSelect7"> <el-option v-show="isShowSelect.video7" v-for="item in monitorOption" :key="item.value" :label="item.label" :value="item.value"></el-option> </el-select> </div> <div class="video" @mouseenter="enterVideoBox(7)" @mouseleave="leaveVideoBox(7)"> <video id="videoElement7" autoplay controls width="100%" height="100%" style="object-fit: fill" ></video> <video id="videoElement7" autoplay controls width="100%" height="100%" style="object-fit: fill"></video> </div> </div> <div class="item video8" v-show="isShowVideo8"> <div class="select" v-show="isShowSelect.video8" @mouseenter="enterSelectBox(8)"> <el-select size="small" v-model="monitorType8" @change="((val)=>{navClick(val,8)})" placeholder="请选择" ref="videoSelect8" > <el-option v-for="item in monitorOption" :key="item.value" :label="item.label" :value="item.value" ></el-option> <el-select size="small" v-model="monitorType8" @change="((val) => { navClick(val, 8) })" placeholder="请选择" ref="videoSelect8"> <el-option v-for="item in monitorOption" :key="item.value" :label="item.label" :value="item.value"></el-option> </el-select> </div> <div class="video" @mouseenter="enterVideoBox(8)" @mouseleave="leaveVideoBox(8)"> <video id="videoElement8" autoplay controls width="100%" height="100%" style="object-fit: fill" ></video> <video id="videoElement8" autoplay controls width="100%" height="100%" style="object-fit: fill"></video> </div> </div> <el-dialog :title="dialogTitle" :modal="true" :visible.sync="dialogVisible" :before-close="dialogBeforeClose" :close-on-click-modal="true" class="car-video-box" > <video id="videoElement" autoplay controls width="100%" height="100%" style="object-fit: fill" ></video> <el-dialog :title="dialogTitle" :modal="true" :visible.sync="dialogVisible" :before-close="dialogBeforeClose" :close-on-click-modal="true" class="car-video-box"> <video id="videoElement" autoplay controls width="100%" height="100%" style="object-fit: fill"></video> </el-dialog> </div> </template> @@ -400,7 +232,7 @@ }, mounted () { this.$parent.$parent.resize('400px', true) this.$parent.$parent.$parent.resize('400px', true) graphicLayer = new EntityDraw() }, @@ -742,7 +574,7 @@ graphicLayer.destroy() this.$parent.$parent.resize('0px') this.$parent.$parent.$parent.resize('0px') if (this.flvPlayer != null) { this.flvPlayer.pause() @@ -833,7 +665,7 @@ border-radius: 10px; overflow-y: auto; & > div { &>div { height: 100%; padding: 0 10px; line-height: 36px; @@ -844,7 +676,7 @@ .list-show { flex: 1; & > div { &>div { height: 100%; display: flex; flex-direction: column; @@ -899,12 +731,15 @@ padding: 1%; } } .video1 { left: calc(1540 / 1920 * 100vw); } .video2 { left: calc(400 / 1920 * 100vw); } .video3 { left: calc(400 / 1920 * 100vw); top: calc(340 / 1080 * 100vh); @@ -914,18 +749,22 @@ left: calc(1540 / 1920 * 100vw); top: calc(340 / 1080 * 100vh); } .video5 { left: calc(400 / 1920 * 100vw); top: calc(680 / 1080 * 100vh); } .video6 { left: calc(1540 / 1920 * 100vw); top: calc(680 / 1080 * 100vh); } .video7 { left: calc(780 / 1920 * 100vw); top: calc(680 / 1080 * 100vh); } .video8 { left: calc(1160 / 1920 * 100vw); top: calc(680 / 1080 * 100vh); @@ -939,9 +778,11 @@ padding-bottom: 0; } } .video7 .video { padding: 1% 0; } .video8 .video { padding: 1% 0 1% 1%; }