From 4593a5c6ef4549a519681fa44d94fa242d15bec4 Mon Sep 17 00:00:00 2001
From: shuishen <1109946754@qq.com>
Date: Thu, 30 Dec 2021 11:57:28 +0800
Subject: [PATCH] 完善

---
 src/components/map/components/dimension.vue            |  268 ++++++++++
 src/pcviews/orgnav/ofc.vue                             |   32 
 public/img/search/dorm.png                             |    0 
 src/pcviews/campusnavi/index.vue                       |   32 -
 src/components/arcNavBar/index.vue                     |   63 +
 src/pcviews/arc/dorm.vue                               |   30 
 src/store/modules/search.js                            |   15 
 public/img/icon/monitor.png                            |    0 
 src/pcviews/arc/venue.vue                              |   30 
 src/pcviews/arc/edifact.vue                            |   30 
 src/pcviews/orgnav/directly.vue                        |   32 
 src/pcviews/arc/rest.vue                               |   30 
 src/components/leftNav/index.vue                       |    4 
 src/store/getters.js                                   |    9 
 src/styles/divforms/panoramaBox.scss                   |   56 ++
 src/components/map/components/mapPopup.vue             |   76 ++
 src/pcviews/arc/teaching.vue                           |   30 
 public/img/search/ofc.png                              |    0 
 src/components/map/components/campusBuildingSearch.vue |  359 ++++++++++++-
 src/components/orgNavBar/index.vue                     |   35 
 src/store/modules/popupParams.js                       |   17 
 public/img/search/scenery.png                          |    0 
 src/components/map/index.vue                           |  181 +++---
 src/styles/divforms/popup.scss                         |    9 
 src/pcviews/orgnav/teaching.vue                        |   32 
 src/styles/pcpage/dc-ui.scss                           |    8 
 public/img/search/teach.png                            |    0 
 src/pcviews/arc/family.vue                             |   30 
 public/img/search/org.png                              |    0 
 src/pcviews/orgnav/rest.vue                            |   32 
 public/img/search/venue.png                            |    0 
 src/pcviews/orgnav/masses.vue                          |   32 
 src/pcviews/arc/culture.vue                            |   30 
 src/api/pc/public/search.js                            |   16 
 34 files changed, 1,212 insertions(+), 306 deletions(-)

diff --git a/public/img/icon/monitor.png b/public/img/icon/monitor.png
new file mode 100644
index 0000000..9133654
--- /dev/null
+++ b/public/img/icon/monitor.png
Binary files differ
diff --git a/public/img/search/dorm.png b/public/img/search/dorm.png
new file mode 100644
index 0000000..d440980
--- /dev/null
+++ b/public/img/search/dorm.png
Binary files differ
diff --git a/public/img/search/ofc.png b/public/img/search/ofc.png
new file mode 100644
index 0000000..c5ec2b5
--- /dev/null
+++ b/public/img/search/ofc.png
Binary files differ
diff --git a/public/img/search/org.png b/public/img/search/org.png
new file mode 100644
index 0000000..c218e36
--- /dev/null
+++ b/public/img/search/org.png
Binary files differ
diff --git a/public/img/search/scenery.png b/public/img/search/scenery.png
new file mode 100644
index 0000000..ea71448
--- /dev/null
+++ b/public/img/search/scenery.png
Binary files differ
diff --git a/public/img/search/teach.png b/public/img/search/teach.png
new file mode 100644
index 0000000..cda8f2f
--- /dev/null
+++ b/public/img/search/teach.png
Binary files differ
diff --git a/public/img/search/venue.png b/public/img/search/venue.png
new file mode 100644
index 0000000..c1c6ae3
--- /dev/null
+++ b/public/img/search/venue.png
Binary files differ
diff --git a/src/api/pc/public/search.js b/src/api/pc/public/search.js
new file mode 100644
index 0000000..8e7aac0
--- /dev/null
+++ b/src/api/pc/public/search.js
@@ -0,0 +1,16 @@
+/*
+ * @Author: Morpheus
+ * @Date: 2021-05-09 15:17:44
+ * @Last Modified by: Morpheus
+ * @Last Modified time: 2021-12-27 09:23:11
+ */
+// 校区
+import request from '@/router/axios'
+
+export const getSearchList = (params) => {
+    return request({
+        url: '/blade-architecture/architecture/selectLook',
+        method: 'get',
+        params: params
+    })
+}
diff --git a/src/components/arcNavBar/index.vue b/src/components/arcNavBar/index.vue
index 8ec562e..1e66117 100644
--- a/src/components/arcNavBar/index.vue
+++ b/src/components/arcNavBar/index.vue
@@ -10,7 +10,7 @@
                          src="/img/icon/xyjz.png"
                          alt="">
                     <span>
-                        {{title}}
+                        {{arcNavBarTitle}}
                     </span>
                 </div>
                 <img class="close"
@@ -53,16 +53,12 @@
         return {
             moveFlag: false,
             itemNavList: [],
+            titleList: [],
             DC: null
         }
     },
     props: {
-        title: {
-            type: String
-        },
-        arcCode: {
-            type: Number
-        }
+
     },
     computed: {
         ...mapGetters([
@@ -78,23 +74,33 @@
             // 介绍
             'introduceText',
             // 全景地址
-            'panoramaUrl'
+            'panoramaUrl',
+            'arcNavBarTitle',
+            'arcNavBarCode'
         ])
     },
     created () {
         this.DC = global.DC
-        this.titleList = []
-        getList().then(res => {
-            res.data.data.forEach(item => {
-                this.titleList.push({ title: item.dictValue, flag: false, key: item.dictKey })
-            })
-
-            this.titleList[0].flag = true
-
-            this.getChilsNavs(this.titleList[0].key)
-        })
     },
     mounted () {
+
+    },
+    watch: {
+        arcNavBarCode: {
+            immediate: true,
+            handler (newCode, oldCode) {
+                this.titleList = []
+                getList().then(res => {
+                    res.data.data.forEach(item => {
+                        this.titleList.push({ title: item.dictValue, flag: false, key: item.dictKey })
+                    })
+
+                    this.titleList[0].flag = true
+
+                    this.getChilsNavs(this.titleList[0].key)
+                })
+            }
+        }
     },
     methods: {
         move (e) {
@@ -143,9 +149,7 @@
                 document.onmouseup = null
             }
         },
-        closeModel () {
-            this.$parent.closeModel()
-        },
+
         topNavClick (item, index) {
             this.titleList.forEach(item => {
                 item.flag = false
@@ -155,10 +159,11 @@
 
             this.getChilsNavs(item.key)
         },
+
         getChilsNavs (campus) {
             this.itemNavList = []
 
-            getChildNavList({ campus: campus, type: this.arcCode }).then(res => {
+            getChildNavList({ campus: campus, type: this.arcNavBarCode }).then(res => {
                 res.data.data.forEach(item => {
                     this.itemNavList.push({
                         navTitle: item.mechanismname,
@@ -168,6 +173,7 @@
                 })
             })
         },
+
         mapPopup (param) {
             getChildNavDetail({ id: param.id }).then(res => {
                 var result = res.data.data[0].list
@@ -207,6 +213,7 @@
                 )
             })
         },
+
         newPopup (item) {
             const position = this.DC.Transform.transformWGS84ToCartesian(new this.DC.Position(Number(item.jd), Number(item.wd), Number(item.gd), Number(item.heading), Number(item.pitch), Number(item.roll)))
             // eslint-disable-next-line no-unused-vars
@@ -219,6 +226,18 @@
 
             this.$store.commit('SET_PANORAMAPOPUP', false)
             this.$store.commit('SET_DETAILSPOPUP', true)
+        },
+
+        closeModel () {
+            var path = this.$route.path
+            if (path.indexOf('/arc') != -1) {
+                this.$store.dispatch('delVisitedViews', this.$route)
+                this.$router.push('/pcLayout/default')
+            }
+
+            this.$store.commit('SET_ARCNAVBARTITLE', '')
+            this.$store.commit('SET_ARCNAVBARCODE', '')
+            this.$store.commit('SET_ARCNAVBARFLAG', false)
         }
     }
 }
diff --git a/src/components/leftNav/index.vue b/src/components/leftNav/index.vue
index 4d134e8..a735ae6 100644
--- a/src/components/leftNav/index.vue
+++ b/src/components/leftNav/index.vue
@@ -275,8 +275,8 @@
 <style scoped lang='scss'>
 .left-nav {
     position: fixed;
-    top: 100px;
-    right: 20px;
+    top: 160px;
+    right: 30px;
     // bottom: 20px;
     // left: 0;
     z-index: 1;
diff --git a/src/components/map/components/campusBuildingSearch.vue b/src/components/map/components/campusBuildingSearch.vue
index bccc2f3..3ddaea0 100644
--- a/src/components/map/components/campusBuildingSearch.vue
+++ b/src/components/map/components/campusBuildingSearch.vue
@@ -1,9 +1,12 @@
 <template>
     <div>
-        <div class="map-campus-serarch">
+        <div class="map-campus-search"
+             id="CampusSearchPanel">
             <el-input class="search-input"
                       placeholder="校园搜索…"
-                      v-model="input3">
+                      v-model="searchInput"
+                      @input="searchValueChange"
+                      @focus="shortcutFlag = true">
             </el-input>
             <el-button-group>
                 <el-button @click="navigationShow"
@@ -13,22 +16,31 @@
                            type="primary"
                            icon="el-icon-my-search"></el-button>
             </el-button-group>
-        </div>
-        <div class="map-campus-shortcut">
-            <div class="shortcut-box">
+            <div v-show="searchValShow"
+                 class="search-value-box">
                 <ul>
-                    <li><img src="" alt=""><span>党群机构</span></li>
-                    <li><img src="" alt=""><span></span></li>
-                    <li><img src="" alt=""><span></span></li>
-                    <li><img src="" alt=""><span></span></li>
-                    <li><img src="" alt=""><span></span></li>
-                    <li><img src="" alt=""><span></span></li>
-                    <li><img src="" alt=""><span></span></li>
-                    <li><img src="" alt=""><span></span></li>
-                    <li><img src="" alt=""><span></span></li>
+                    <li v-for="(item, index) in searchValList"
+                        :key="index"
+                        @click="loadPopup(item)">
+                        {{item.name}}
+                    </li>
                 </ul>
             </div>
-
+            <div class="map-campus-shortcut"
+                 v-show="shortcutFlag">
+                <div class="shortcut-box">
+                    <ul>
+                        <li v-for="(item, index) in shortcutList"
+                            :key="index">
+                            <el-button @click="openModelPopup(item)">
+                                <img :src="item.bgimg"
+                                     alt="">
+                                <span>{{item.title}}</span>
+                            </el-button>
+                        </li>
+                    </ul>
+                </div>
+            </div>
         </div>
     </div>
 </template>
@@ -37,29 +49,230 @@
 
 import { mapGetters } from 'vuex'
 
+import { getList } from '@/api/pc/orgnav/index'
+import { getSearchList } from '@/api/pc/public/search'
+
 export default {
     name: 'campusBuildingSearch',
     data () {
         return {
+            DC: null,
             shortcutList: [
                 {
-                    bgimg: '/img/search/',
-                    span: '党群机构'
+                    bgimg: '/img/search/org.png',
+                    title: '党群机构',
+                    type: 'orgnav',
+                    code: 1
+                },
+                {
+                    bgimg: '/img/search/ofc.png',
+                    title: '职能部处',
+                    type: 'orgnav',
+                    code: 2
+                },
+                {
+                    bgimg: '/img/search/teach.png',
+                    title: '教学科研',
+                    type: 'orgnav',
+                    code: 4
+                },
+                {
+                    bgimg: '/img/search/venue.png',
+                    title: '校内场馆',
+                    type: 'arc',
+                    code: 3
+                },
+                {
+                    bgimg: '/img/search/dorm.png',
+                    title: '学生宿舍',
+                    type: 'arc',
+                    code: 4
+                },
+                {
+                    bgimg: '/img/search/scenery.png',
+                    title: '文化风景',
+                    type: 'arc',
+                    code: 5
                 }
-            ]
+            ],
+            shortcutFlag: false,
+            searchInput: '',
+            searchValShow: false,
+            searchValList: []
         }
     },
     computed: {
         ...mapGetters([
+            'viewer',
             // 校内导航的显示关闭
-            'campusNavFlag'
+            'campusNavFlag',
+            'orgNavBarFlag',
+            'arcNavBarFlag'
         ])
     },
+    created () {
+        this.DC = global.DC
+    },
     methods: {
+        searchValueChange () {
+            if (this.searchInput == '') {
+                this.searchValList = []
+                this.searchValShow = false
+                return
+            }
+            getSearchList({ mechanismName: this.searchInput }).then(res => {
+                if (res.data.data.length > 0) {
+                    this.searchValList = res.data.data
+                    this.searchValShow = true
+                }
+            })
+        },
+
         navigationShow () {
             if (this.campusNavFlag == false) {
                 this.$store.commit('SET_CAMPUSNAVFLAG', true)
             }
+        },
+
+        openModelPopup (param) {
+            var list = []
+            if (param.type == 'orgnav') {
+                var path = this.$route.path
+                if (path.indexOf('/arc') != -1) {
+                    this.$store.dispatch('delVisitedViews', this.$route)
+                    this.$router.push('/pcLayout/default')
+                    this.$store.commit('SET_ARCNAVBARTITLE', '')
+                    this.$store.commit('SET_ARCNAVBARCODE', '')
+                    this.$store.commit('SET_ARCNAVBARFLAG', false)
+                }
+
+                if (this.arcNavBarFlag == true) {
+                    this.$store.commit('SET_ARCNAVBARTITLE', '')
+                    this.$store.commit('SET_ARCNAVBARCODE', '')
+                    this.$store.commit('SET_ARCNAVBARFLAG', false)
+                }
+
+                this.$store.commit('SET_ORGNAVBARTITLE', param.title)
+                this.$store.commit('SET_ORGNAVBARLIST', [])
+
+                this.$store.commit('SET_ORGNAVBARFLAG', true)
+
+                getList({ type: param.code }).then(res => {
+                    res.data.data.records.forEach(item => {
+                        list.push({
+                            navTitle: item.mechanismname,
+                            icon: '/img/navicon/tag.png',
+                            longitude: item.jd,
+                            latitude: item.wd,
+                            alt: item.gd,
+                            heading: item.heading,
+                            pitch: item.pitch,
+                            roll: item.roll,
+                            bgImg: item.tpurl,
+                            QRImg: item.codeurl,
+                            address: item.address,
+                            telephone: item.telephone,
+                            introduce: item.introduce
+                        })
+                    })
+
+                    this.$store.commit('SET_ORGNAVBARLIST', list)
+                })
+            } else if (param.type == 'arc') {
+                if (this.$route.path.indexOf('/orgnav') != -1) {
+                    this.$store.dispatch('delVisitedViews', this.$route)
+                    this.$router.push('/pcLayout/default')
+                    this.$store.commit('SET_ORGNAVBARTITLE', '')
+                    this.$store.commit('SET_ORGNAVBARLIST', [])
+                    this.$store.commit('SET_ORGNAVBARFLAG', false)
+                }
+
+                if (this.orgNavBarFlag == true) {
+                    this.$store.commit('SET_ORGNAVBARTITLE', '')
+                    this.$store.commit('SET_ORGNAVBARLIST', [])
+                    this.$store.commit('SET_ORGNAVBARFLAG', false)
+                }
+
+                this.$store.commit('SET_ARCNAVBARTITLE', param.title)
+                this.$store.commit('SET_ARCNAVBARCODE', param.code)
+                this.$store.commit('SET_ARCNAVBARFLAG', true)
+            }
+        },
+
+        shortcutShow (event) {
+            var sp = document.getElementById('CampusSearchPanel')
+
+            if (sp) {
+                if (!sp.contains(event.target)) { // 这句是说如果我们点击到了id为myPanel以外的区域
+                    this.shortcutFlag = false
+                }
+            }
+        },
+
+        loadPopup (param) {
+            var that = this
+
+            that.searchInput = ''
+            that.searchValList = []
+            that.searchValShow = false
+
+            this.$store.commit('CLEAR_ALL', null)
+
+            var result = param.list
+
+            var imgArr = result.tpurl.split(',')
+            var tabOne = param.jx.split(',')
+            var tabTwo = param.sh.split(',')
+
+            this.$store.commit('SET_POPUPBGURL', imgArr[0])
+            this.$store.commit('SET_POPUPQRURL', result.codeurl)
+            this.$store.commit('SET_POINTPOSITION', [Number(result.jd), Number(result.wd), Number(result.gd), Number(result.heading), Number(result.pitch), Number(result.roll)])
+            this.$store.commit('SET_STATENAME', result.mechanismname)
+            this.$store.commit('SET_SITENAME', result.address)
+            this.$store.commit('SET_TELEPHONE', result.telephone)
+            this.$store.commit('SET_INTRODUCETEXT', result.introduce)
+            if (result.panoramaurl != '') {
+                this.$store.commit('SET_PANORAMAURL', result.panoramaurl)
+            }
+            if (result.videourl != '') {
+                this.$store.commit('SET_MONITORURL', result.videourl)
+            }
+            this.$store.commit('SET_POPUPIMGATLAS', imgArr)
+            if (param.jx != '') {
+                this.$store.commit('SET_TEACHLIST', tabOne)
+            } else {
+                this.$store.commit('SET_TEACHLIST', [])
+            }
+
+            if (param.sh != '') {
+                this.$store.commit('SET_LIVELIST', tabTwo)
+            } else {
+                this.$store.commit('SET_LIVELIST', [])
+            }
+
+            this.newPopup(result)
+            this.viewer.flyToPosition(
+                new this.DC.Position(Number(result.jd), Number(result.wd), 3000, Number(result.heading), Number(result.pitch), Number(result.roll)),
+                () => {
+
+                },
+                3
+            )
+        },
+
+        newPopup (item) {
+            const position = this.DC.Transform.transformWGS84ToCartesian(new this.DC.Position(Number(item.jd), Number(item.wd), Number(item.gd), Number(item.heading), Number(item.pitch), Number(item.roll)))
+            // eslint-disable-next-line no-unused-vars
+            var popup = new this.DC.DivForms(this.viewer, {
+                domId: 'divFormsDomBox',
+                position: [
+                    position
+                ]
+            })
+
+            this.$store.commit('SET_PANORAMAPOPUP', false)
+            this.$store.commit('SET_MONITORPOPUP', false)
+            this.$store.commit('SET_DETAILSPOPUP', true)
         }
     }
 
@@ -67,7 +280,7 @@
 </script>
 
 <style lang='scss' scope>
-.map-campus-serarch {
+.map-campus-search {
     position: fixed;
     top: 100px;
     left: 0;
@@ -75,19 +288,21 @@
     bottom: auto;
     margin: auto;
     width: 320px;
-    height: 40px;
+    min-height: 40px;
+    max-height: 360px;
+    height: auto;
     z-index: 11;
     border-radius: 5px;
-    box-shadow: 0 0 10px 2px #666;
+    box-shadow: 0 0 14px 2px rgb(221, 221, 221);
 
     .search-input {
         float: left;
         width: 240px;
+        height: 40px;
         border-radius: 5px 0 0 5px;
 
         input {
-            border: none;
-            border-right: 1px solid #dcdfe6;
+            box-sizing: border-box;
             border-radius: 5px 0 0 5px;
         }
     }
@@ -98,11 +313,12 @@
 
         .el-button {
             margin: 0;
-            position: relative;
+            padding: 0;
             width: 40px;
-            height: 40px;
+            height: 40px !important;
+            position: relative;
             border-radius: 0;
-            border: none;
+            border: 1px solid #dcdfe6;
 
             i {
                 margin: auto;
@@ -114,9 +330,98 @@
             }
         }
 
+        .el-button:nth-child(1) {
+            border-left: none;
+            border-right: none;
+        }
+
         .el-button:nth-child(2) {
+            border-left: none;
+            border-right: none;
             border-radius: 0 5px 5px 0;
         }
     }
+
+    .search-value-box {
+        position: absolute;
+        top: 41px;
+        left: 0;
+        width: auto;
+        min-width: 240px;
+        max-height: 520px;
+        background: #fff;
+        overflow-y: auto;
+        box-shadow: 0 0 14px 2px rgb(221, 221, 221);
+        border-radius: 5px;
+
+        ul {
+            li {
+                padding-left: 20px;
+                height: 36px;
+                line-height: 36px;
+                cursor: pointer;
+            }
+
+            li:hover {
+                background: #f5f5f5;
+            }
+        }
+    }
+
+    .map-campus-shortcut {
+        margin-top: 20px;
+        width: 100%;
+        height: 320px;
+        background: #fff;
+        border-radius: 5px;
+
+        .shortcut-box {
+            padding-top: 36px;
+            ul {
+                display: flex;
+                width: 100%;
+                height: 120px;
+                justify-content: space-around;
+                flex-wrap: wrap;
+
+                li {
+                    width: 84px;
+                    height: 76px;
+
+                    .el-button {
+                        width: 80px;
+                        height: 70px;
+                        padding: 6px 12px;
+                        background: #efefef;
+                        border: none;
+                        border-radius: 5px;
+                        box-sizing: border-box;
+                        text-align: center;
+
+                        & > span {
+                            width: auto;
+                            height: auto;
+
+                            img {
+                                margin-top: 4px;
+                                width: 26px;
+                                height: 26px;
+                            }
+
+                            span {
+                                display: block;
+                                font-size: 14px;
+                                line-height: 28px;
+                            }
+                        }
+                    }
+
+                    .el-button:focus {
+                        border: 1px solid #000;
+                    }
+                }
+            }
+        }
+    }
 }
 </style>
diff --git a/src/components/map/components/dimension.vue b/src/components/map/components/dimension.vue
new file mode 100644
index 0000000..2a65fc1
--- /dev/null
+++ b/src/components/map/components/dimension.vue
@@ -0,0 +1,268 @@
+<template>
+    <div class="dimension-cut">
+        <el-radio-group v-model="dimensionValue"
+                        size="medium"
+                        @change="dimensionChange">
+            <el-radio-button label="三 维"></el-radio-button>
+            <el-radio-button label="2.5维"></el-radio-button>
+        </el-radio-group>
+    </div>
+</template>
+
+<script>
+
+import { mapGetters } from 'vuex'
+
+export default {
+    name: 'dimension',
+    data () {
+        return {
+            DC: null,
+            dimensionValue: '三 维',
+            newLayer: null,
+            provider: null,
+            wallLayer: null,
+            tileset: null,
+            tilesetLayer: null,
+            titlesetLayerFlag: false,
+            oneFlag: false,
+            wallArr: [
+                [116.41526036, 27.95352217, 100],
+                [116.41128018, 27.95789328, 100],
+                [116.40246486, 27.96397110, 100],
+                [116.39728537, 27.96779573, 100],
+                [116.39588026, 27.96862679, 100],
+                [116.38903705, 27.97029865, 100],
+                [116.38872398, 27.97051829, 100],
+                [116.38892229, 27.97090120, 100],
+                [116.38906721, 27.97190632, 100],
+                [116.38706808, 27.97195638, 100],
+                [116.38649076, 27.97114448, 100],
+                [116.38214070, 27.97312735, 100],
+                [116.37876213, 27.97582549, 100],
+                [116.37851310, 27.97664153, 100],
+                [116.37634915, 27.98039526, 100],
+                [116.37439220, 27.98131916, 100],
+                [116.36995935, 27.97936074, 100],
+                [116.37217247, 27.97498147, 100],
+                [116.35099819, 27.97539586, 100],
+                [116.35103749, 27.98088050, 100],
+                [116.33972460, 27.97987911, 100],
+                [116.33950071, 27.97372028, 100],
+                [116.32313266, 27.97004136, 100],
+                [116.32606743, 27.95863979, 100],
+                [116.34788837, 27.92538024, 100],
+                [116.34566310, 27.92338627, 100],
+                [116.34874490, 27.91718915, 100],
+                [116.35311999, 27.91804451, 100],
+                [116.35109257, 27.92284807, 100],
+                [116.35975153, 27.92900526, 100],
+                [116.35660704, 27.93816236, 100],
+                [116.39585177, 27.93945304, 100],
+                [116.41526036, 27.95352217, 100]
+            ]
+        }
+    },
+    computed: {
+        ...mapGetters([
+            'viewer',
+            // 校内导航的显示关闭
+            'campusNavFlag',
+            'orgNavBarFlag',
+            'arcNavBarFlag'
+        ])
+    },
+    created () {
+        this.DC = global.DC
+    },
+    watch: {
+        viewer: {
+            immediate: true,
+            handler (newCode, oldCode) {
+                if (this.titlesetLayerFlag == false && newCode != null) {
+                    var that = this
+                    that.tilesetLayer = new that.DC.TilesetLayer('tilesetLayer')
+                    that.viewer.addLayer(that.tilesetLayer)
+                    that.tileset = new that.DC.Tileset(
+                        'http://data.mars3d.cn/3dtiles/max-shihua/tileset.json',
+                        {
+                            luminanceAtZenith: 0.5
+                        }
+                    )
+                    that.tilesetLayer.addOverlay(that.tileset)
+                    setTimeout(() => {
+                        that.viewer.flyTo(that.tileset, 10)
+                    }, 2000)
+
+                    var silhouetteBlue = that.DC.Namespace.Cesium.PostProcessStageLibrary.createEdgeDetectionStage()
+                    silhouetteBlue.uniforms.color = that.DC.Namespace.Cesium.Color.fromBytes(9, 162, 40)
+                    silhouetteBlue.uniforms.length = 0.01
+                    silhouetteBlue.selected = []
+
+                    that.viewer.scene.postProcessStages.add(
+                        that.DC.Namespace.Cesium.PostProcessStageLibrary.createSilhouetteStage([
+                            silhouetteBlue
+                        ])
+                    )
+
+                    var highlighted = {
+                        feature: undefined,
+                        originalColor: new that.DC.Namespace.Cesium.Color()
+                    }
+
+                    var selected = {
+                        feature: undefined,
+                        originalColor: new that.DC.Namespace.Cesium.Color()
+                    }
+
+                    that.tileset.on(that.DC.MouseEventType.CLICK, e => {
+                        that.viewer.scene.globe.depthTestAgainstTerrain = false
+
+                        that.$store.commit('CLEAR_ALL', null)
+
+                        var imgArr = ['http://223.82.109.183:2081/zhxy/upload/20211222/f66dc4527eb4cc1b2d33fa3a5b345ed0.jpg']
+
+                        that.$store.commit('SET_POPUPBGURL', imgArr[0])
+                        that.$store.commit('SET_POPUPQRURL', 'http://223.82.109.183:2081/zhxy/upload/20211222/9c324adea5d9e5b50cd8f874d5f780f4.png')
+                        that.$store.commit('SET_POINTPOSITION', [Number(e.wgs84Position.lng), Number(e.wgs84Position.lat), Number(e.wgs84Position.alt), Number(0), Number(0), Number(0)])
+                        that.$store.commit('SET_STATENAME', e.overlay.attr.name)
+                        that.$store.commit('SET_SITENAME', e.overlay.attr['地址'])
+                        that.$store.commit('SET_POPUPIMGATLAS', imgArr)
+
+                        // 定制化窗体
+                        // eslint-disable-next-line no-unused-vars
+                        var popup = new that.DC.DivForms(that.viewer, {
+                            domId: 'divFormsDomBox',
+                            position: [
+                                that.DC.Transform.transformWGS84ToCartesian(new that.DC.Position(Number(e.wgs84Position.lng), Number(e.wgs84Position.lat), Number(e.wgs84Position.alt), Number(0), Number(0), Number(0)))
+                            ]
+                        })
+
+                        that.$store.commit('SET_DETAILSPOPUP', true)
+                        that.$store.commit('SET_PANORAMAPOPUP', false)
+                    })
+
+                    that.tileset.on(that.DC.MouseEventType.MOUSE_MOVE, e => {
+                        silhouetteBlue.selected = []
+
+                        if (that.DC.Namespace.Cesium.defined(highlighted.feature)) {
+                            highlighted.feature.color = highlighted.originalColor
+                            highlighted.feature = undefined
+                        }
+
+                        if (e.feature !== selected.feature) {
+                            silhouetteBlue.selected = [e.feature]
+
+                            highlighted.feature = e.feature
+
+                            that.DC.Namespace.Cesium.Color.clone(
+                                e.feature.color,
+                                highlighted.originalColor
+                            )
+                            e.feature.color = that.DC.Namespace.Cesium.Color.fromBytes(155, 255, 175)
+                        }
+                    })
+
+                    this.titlesetLayerFlag = true
+                }
+            }
+        }
+    },
+    methods: {
+        dimensionChange () {
+            var that = this
+            if (that.dimensionValue == '三 维') {
+                that.wallLayer.show = false
+                that.viewer.imageryLayers.remove(that.newLayer)
+                that.newLayer = null
+                that.tilesetLayer.show = true
+                that.viewer.flyTo(that.tileset)
+            } else {
+                that.tilesetLayer.show = false
+                var provider = new that.DC.Namespace.Cesium.WebMapTileServiceImageryProvider({
+                    url: 'http://www.tdtfz.com/OneMapServer/rest/services/fzsw2019/MapServer/WMTS/tile/1.0.0/fzsw2019/{Style}/{TileMatrixSet}/{TileMatrix}/{TileRow}/{TileCol}',
+                    layer: 'fzsw2019',
+                    style: 'default',
+                    tileMatrixSetID: 'default028mm',
+                    format: 'image/jpgpng',
+                    tilingScheme: new that.DC.Namespace.Cesium.GeographicTilingScheme(),
+                    maximumLevel: 19,
+                    tileMatrixLabels: [
+                        '0',
+                        '1',
+                        '2',
+                        '3',
+                        '4',
+                        '5',
+                        '6',
+                        '7',
+                        '8',
+                        '9',
+                        '10',
+                        '11',
+                        '12',
+                        '13',
+                        '14',
+                        '15',
+                        '16',
+                        '17',
+                        '18',
+                        '19'
+                    ]
+                })
+                that.newLayer = that.viewer.imageryLayers.addImageryProvider(provider)
+
+                if (that.oneFlag == false) {
+                    that.wallLayer = new that.DC.VectorLayer('wallLayer')
+                    that.viewer.addLayer(that.wallLayer)
+
+                    that.wallArr.forEach(item => {
+                        item = item.join(',')
+                    })
+                    that.wallArr = that.wallArr.join(';')
+                    const wall = new that.DC.Wall(
+                        that.wallArr
+                    )
+                    wall.setStyle({
+                        material: new that.DC.WallTrailMaterialProperty({
+                            color: that.DC.Namespace.Cesium.Color.fromBytes(0, 142, 255, 150),
+                            // color: that.DC.Color.CYAN,
+                            speed: 10
+                        })
+                    })
+                    that.wallLayer.addOverlay(wall)
+
+                    that.oneFlag = true
+                }
+
+                that.wallLayer.show = true
+
+                that.viewer.camera.setView({
+                    // Cesium的坐标是以地心为原点,一向指向南美洲,一向指向亚洲,一向指向北极州
+                    // fromDegrees()方法,将经纬度和高程转换为世界坐标
+                    destination: that.DC.Namespace.Cesium.Cartesian3.fromDegrees(116.36618337, 27.95911915, 1000.0),
+                    orientation: {
+                        // 指向
+                        heading: that.DC.Namespace.Cesium.Math.toRadians(0, 0),
+                        // 视角
+                        pitch: that.DC.Namespace.Cesium.Math.toRadians(-90),
+                        roll: 0.0
+                    }
+                })
+            }
+        }
+    }
+
+}
+</script>
+
+<style lang='scss' scope>
+.dimension-cut {
+    position: fixed;
+    top: 100px;
+    right: 10px;
+    width: auto;
+    // height: 40px;
+    z-index: 1;
+}
+</style>
diff --git a/src/components/map/components/mapPopup.vue b/src/components/map/components/mapPopup.vue
index 44b37ca..d3a9c40 100644
--- a/src/components/map/components/mapPopup.vue
+++ b/src/components/map/components/mapPopup.vue
@@ -72,6 +72,11 @@
                                                     <i class="popup-icon live-action-nav deblurring"></i>
                                                     实景
                                                 </li>
+                                                <li v-show="panoramaUrl != null && panoramaUrl != ''"
+                                                    @click="monitorClick">
+                                                    <i class="popup-icon monitor-nav deblurring"></i>
+                                                    监控
+                                                </li>
                                             </ul>
                                         </div>
                                         <div v-show="teachList.length > 0 || liveList.length > 0"
@@ -85,7 +90,7 @@
                                                     @click="tabBtnClick('生活服务')">生活服务</li>
                                             </ul>
                                             <div class="btm-content">
-                                                <div class="on">
+                                                <div :class="{'on': tabBtnFlag == '教学科研行政'}">
                                                     <ul>
                                                         <li v-for="(item, index) in teachList"
                                                             :key="index"
@@ -95,11 +100,11 @@
                                                         </li>
                                                     </ul>
                                                 </div>
-                                                <div>
+                                                <div :class="{'on': tabBtnFlag == '生活服务'}">
                                                     <ul>
                                                         <li v-for="(item, index) in liveList"
                                                             :key="index"
-                                                            @click="mechanismDetailPopup(1, item)">>
+                                                            @click="mechanismDetailPopup(1, item)">
                                                             <i class="popup-icon location-icon deblurring"></i>
                                                             {{item}}
                                                         </li>
@@ -118,6 +123,7 @@
                     </div>
                 </div>
             </div>
+
             <div v-if="panoramaPopup"
                  class="panorama-dom"
                  id="PanoramaBox">
@@ -142,11 +148,39 @@
                     </div>
                 </div>
             </div>
+
+            <div v-if="monitorPopup"
+                 class="monitor-dom"
+                 id="MonitorBox">
+                <div style="width: 100%; height: 100%;">
+                    <div class="monitor-container">
+                        <div class="monitor-wrap">
+                            <div class="content-wrap">
+                                <div class="title">
+                                    {{stateName}}
+                                    <img @click="closeMonitorPopupBox"
+                                         class="close-box"
+                                         src="/img/navicon/close.png"
+                                         alt="">
+                                </div>
+                                <div class="content">
+                                    <video :src="monitorUrl"
+                                           controls
+                                           autoplay></video>
+                                </div>
+                            </div>
+                        </div>
+                        <div class="arrow"></div>
+                    </div>
+                </div>
+            </div>
         </div>
 
         <!-- 二维码弹框相关 -->
         <el-dialog title="场景二维码"
                    :visible.sync="QRCodeFlag"
+                   :modal="false"
+                   :modal-append-to-body="false"
                    width='44%'>
             <div style="margin: 0; position: relative; width: 100%; height: 352px;">
                 <img width="260"
@@ -175,7 +209,6 @@
                style="position: fixed; left: 111111111px;"
                v-html="audioSource"
                @ended="overAudio">
-
         </audio>
     </div>
 </template>
@@ -214,12 +247,16 @@
             'telephone',
             // 介绍
             'introduceText',
-            // 全景地址
-            'panoramaUrl',
             // 详情弹框显示关闭
             'detailsPopup',
+            // 全景地址
+            'panoramaUrl',
             // 全景弹框显示关闭
             'panoramaPopup',
+            // 监控地址
+            'monitorUrl',
+            // 监控弹框显示关闭
+            'monitorPopup',
 
             'popupImgAtlas',
             // 教学
@@ -279,8 +316,30 @@
                     positions
                 ]
             })
+
             this.$store.commit('SET_DETAILSPOPUP', false)
+            this.$store.commit('SET_MONITORPOPUP', false)
             this.$store.commit('SET_PANORAMAPOPUP', true)
+        },
+
+        monitorClick () {
+            if (this.audioFlag == true) {
+                this.$refs.audioControlPlay.pause()
+                this.audioFlag = false
+            }
+            // eslint-disable-next-line new-cap
+            var positions = this.DC.Transform.transformWGS84ToCartesian(new this.DC.Position.fromArray(this.pointPosition))
+            this.viewer.scene.globe.depthTestAgainstTerrain = false
+            // eslint-disable-next-line no-unused-vars
+            var monitor = new this.DC.PanoramaBox(this.viewer, {
+                domId: 'MonitorBox',
+                position: [
+                    positions
+                ]
+            })
+            this.$store.commit('SET_PANORAMAPOPUP', false)
+            this.$store.commit('SET_DETAILSPOPUP', false)
+            this.$store.commit('SET_MONITORPOPUP', true)
         },
 
         closeMapPopupBox () {
@@ -297,6 +356,11 @@
             this.$store.commit('SET_PANORAMAPOPUP', false)
         },
 
+        closeMonitorPopupBox () {
+            this.$store.commit('SET_MONITORURL', '')
+            this.$store.commit('SET_MONITORPOPUP', false)
+        },
+
         audioPlay () {
             if (this.audioSource == '') {
                 var zhText = encodeURI(this.$refs.DomIntroduceText.innerText)
diff --git a/src/components/map/index.vue b/src/components/map/index.vue
index 20e9a18..cf18f5b 100644
--- a/src/components/map/index.vue
+++ b/src/components/map/index.vue
@@ -1,16 +1,22 @@
 /* eslint-disable camelcase */
 <template>
     <div id="viewer-container"
-         style="height: 100%; width: 100%;">
+         style="height: 100%; width: 100%;"
+         @click="mapClick($event)">
+
+        <dimension />
 
         <left-nav ref="leftNav"></left-nav>
 
         <mapPopup />
 
-        <campusBuildingSearch />
+        <campusBuildingSearch ref="campusBuildingSearch" />
 
         <campusNav ref="campusNavRoute"
                    v-show="campusNavFlag" />
+
+        <org-nav-bar v-if="orgNavBarFlag"></org-nav-bar>
+        <arc-nav-bar v-if="arcNavBarFlag"></arc-nav-bar>
     </div>
 </template>
 <script>
@@ -18,12 +24,14 @@
 import { mapGetters } from 'vuex'
 import mapPopup from './components/mapPopup.vue'
 import campusBuildingSearch from './components/campusBuildingSearch.vue'
+import dimension from './components/dimension.vue'
 
 export default {
     name: 'mapBox',
     components: {
         mapPopup,
-        campusBuildingSearch
+        campusBuildingSearch,
+        dimension
     },
     data () {
         return {
@@ -54,7 +62,9 @@
             // 全景弹框显示关闭
             'panoramaPopup',
             // 校内导航的显示关闭
-            'campusNavFlag'
+            'campusNavFlag',
+            'orgNavBarFlag',
+            'arcNavBarFlag'
         ])
     },
     mounted () {
@@ -118,10 +128,6 @@
             viewer.measure.deactivate()
         }
 
-        function gotoModel () {
-            viewer.flyTo(tileset)
-        }
-
         function initViewer () {
             viewer = new that.DC.Viewer('viewer-container', {
                 contextOptions: {
@@ -134,22 +140,74 @@
 
             that.$store.commit('SET_VIEWER', viewer)
 
+            viewer.on(that.DC.SceneEventType.CAMERA_CHANGED, (e) => {
+                const height = Math.ceil(viewer.camera.positionCartographic.height)
+
+                if (height < 100) {
+                    viewer.camera.setView({
+                        destination: that.DC.Namespace.Cesium.Cartesian3.fromRadians(viewer.camera.positionCartographic.longitude, viewer.camera.positionCartographic.latitude, 100),
+                        orientation: {
+                            // 指向
+                            heading: that.DC.Namespace.Cesium.Math.toRadians(0, 0),
+                            // 视角
+                            pitch: that.DC.Namespace.Cesium.Math.toRadians(-90),
+                            roll: 0.0
+                        }
+                    })
+                };
+                if (height > 6000) {
+                    viewer.camera.setView({
+                        destination: that.DC.Namespace.Cesium.Cartesian3.fromRadians(viewer.camera.positionCartographic.longitude, viewer.camera.positionCartographic.latitude, 6000),
+                        orientation: {
+                            // 指向
+                            heading: that.DC.Namespace.Cesium.Math.toRadians(0, 0),
+                            // 视角
+                            pitch: that.DC.Namespace.Cesium.Math.toRadians(-90),
+                            roll: 0.0
+                        }
+                    })
+                }
+            })
+
+            // 最小
+            viewer.scene.screenSpaceCameraController.minimumZoomDistance = 500
+            // 最大
+            viewer.scene.screenSpaceCameraController.maximumZoomDistance = 6000
+            // 设置相机缩小时的速率
+            viewer.scene.screenSpaceCameraController._minimumZoomRate = 30000
+            // 设置相机放大时的速率
+            viewer.scene.screenSpaceCameraController._maximumZoomRate = 5906376272000
+            // 视角平移
+            viewer.scene.screenSpaceCameraController.enableRotate = true
+            // 视角缩放
+            viewer.scene.screenSpaceCameraController.enableZoom = true
+            // 视角旋转
+            viewer.scene.screenSpaceCameraController.enableTilt = false
+
             that.$refs.leftNav.initialize(viewer)
 
-            const popup = viewer.popup
+            // const baselayer = that.DC.ImageryLayerFactory.createImageryLayer(that.DC.ImageryType.XYZ, {
+            //     url: 'https://webmap-tile.sf-express.com/MapTileService/rt?x={col}&y={row}&z={level}'
+            //     // url: 'https://webmap-tile.sf-express.com/MapTileService/rt?fetchtype=static&x={x}&y={y}&z={z}&project=sfmap&pic_size=256&pic_type=png8&data_name=361100&data_format=merged-dat&data_type=normal' // 行政区划
 
-            popup.hide()
+            // })
 
-            const baselayer = that.DC.ImageryLayerFactory.createImageryLayer(that.DC.ImageryType.XYZ, {
-                // url: 'https://webmap-tile.sf-express.com/MapTileService/rt?x={col}&y={row}&z={level}'
+            const baselayer = that.DC.ImageryLayerFactory.createAmapImageryLayer(
+                {
+                    crs: 'WGS84'
+                }
+            )
+            viewer.addBaseLayer(baselayer)
 
-                url: 'https://webmap-tile.sf-express.com/MapTileService/rt?fetchtype=static&x={x}&y={y}&z={z}&project=sfmap&pic_size=256&pic_type=png8&data_name=361100&data_format=merged-dat&data_type=normal' // 行政区划
+            // viewer.addBaseLayer(baselayer, {
+            //     iconUrl: 'examples/images/icon/img.png',
+            //     name: '影像'
+            // })
 
-            })
-            viewer.addBaseLayer(baselayer, {
-                iconUrl: 'examples/images/icon/img.png',
-                name: '影像'
-            })
+            // viewer.addBaseLayer(wmtslayer, {
+            //     iconUrl: 'examples/images/icon/img.png',
+            //     name: '影像'
+            // })
 
             // // eslint-disable-next-line camelcase
             // const baselayer_shaded = that.DC.ImageryLayerFactory.createArcGisImageryLayer({
@@ -181,80 +239,7 @@
             //     name: '地形'
             // })
 
-            const tilesetLayer = new that.DC.TilesetLayer('tilesetLayer')
-            viewer.addLayer(tilesetLayer)
-            const tileset = new that.DC.Tileset(
-                'http://data.mars3d.cn/3dtiles/max-shihua/tileset.json',
-                {
-                    luminanceAtZenith: 0.5
-                }
-            )
-            tilesetLayer.addOverlay(tileset)
-            setTimeout(() => {
-                viewer.flyTo(tileset)
-            }, 1500)
-            tileset.on(that.DC.MouseEventType.CLICK, e => {
-                viewer.scene.globe.depthTestAgainstTerrain = false
-
-                that.$store.commit('CLEAR_ALL', null)
-
-                var imgArr = ['http://223.82.109.183:2081/zhxy/upload/20211222/f66dc4527eb4cc1b2d33fa3a5b345ed0.jpg']
-
-                that.$store.commit('SET_POPUPBGURL', imgArr[0])
-                that.$store.commit('SET_POPUPQRURL', 'http://223.82.109.183:2081/zhxy/upload/20211222/9c324adea5d9e5b50cd8f874d5f780f4.png')
-                that.$store.commit('SET_POINTPOSITION', [Number(e.wgs84Position.lng), Number(e.wgs84Position.lat), Number(e.wgs84Position.alt), Number(0), Number(0), Number(0)])
-                that.$store.commit('SET_STATENAME', e.overlay.attr.name)
-                that.$store.commit('SET_SITENAME', e.overlay.attr['地址'])
-                that.$store.commit('SET_POPUPIMGATLAS', imgArr)
-
-                // 定制化窗体
-                // eslint-disable-next-line no-unused-vars
-                var popup = new that.DC.DivForms(viewer, {
-                    domId: 'divFormsDomBox',
-                    position: [
-                        that.DC.Transform.transformWGS84ToCartesian(new that.DC.Position(Number(e.wgs84Position.lng), Number(e.wgs84Position.lat), Number(e.wgs84Position.alt), Number(0), Number(0), Number(0)))
-                    ]
-                })
-
-                that.$store.commit('SET_DETAILSPOPUP', true)
-                that.$store.commit('SET_PANORAMAPOPUP', false)
-            })
-
-            const wallLayer = new that.DC.VectorLayer('wallLayer')
-            viewer.addLayer(wallLayer)
-            var arr = [
-                [115.87597219, 28.74628526, 100],
-                [115.87556558, 28.74415792, 100],
-                [115.87459782, 28.74197687, 100],
-                [115.87371834, 28.74219927, 100],
-                [115.87210924, 28.74182217, 100],
-                [115.86469971, 28.73630725, 100],
-                [115.86387107, 28.73620123, 100],
-                [115.86274498, 28.73616026, 100],
-                [115.86173699, 28.74241350, 100],
-                [115.86105468, 28.74643934, 100],
-                [115.86609240, 28.74642593, 100],
-                [115.87597219, 28.74628526, 100]
-            ]
-            arr.forEach(item => {
-                item = item.join(',')
-            })
-            arr = arr.join(';')
-            const wall = new that.DC.Wall(
-                arr
-            )
-            wall.setStyle({
-                material: new that.DC.WallTrailMaterialProperty({
-                    color: that.DC.Namespace.Cesium.Color.fromBytes(0, 142, 255, 150),
-                    // color: that.DC.Color.CYAN,
-                    speed: 10
-                })
-            })
-            wallLayer.addOverlay(wall)
-
             // viewer.use(new that.DC.Measure())
-
-            // viewer.flyTo(wallLayer)
 
             // viewer.flyToPosition(
             //     new that.DC.Position(117.08489820, 31.65413916, 1500, 0, -90, 45)
@@ -262,14 +247,24 @@
 
             viewer.compass.enable = true
             viewer.zoomController.enable = true
-            // viewer.locationBar.enable = true
+            viewer.locationBar.enable = true
+            viewer.hawkeyeMap.enable = true
+            viewer.hawkeyeMap.addBaseLayer(
+                that.DC.ImageryLayerFactory.createAmapImageryLayer(
+                    {
+                        crs: 'WGS84'
+                    }
+                )
+            )
             // viewer.distanceLegend.enable = true
         }
 
         that.DC.ready(initViewer)
     },
     methods: {
-
+        mapClick (e) {
+            this.$refs.campusBuildingSearch.shortcutShow(e)
+        }
     }
 }
 </script>
diff --git a/src/components/orgNavBar/index.vue b/src/components/orgNavBar/index.vue
index d8f67e1..106d5da 100644
--- a/src/components/orgNavBar/index.vue
+++ b/src/components/orgNavBar/index.vue
@@ -10,7 +10,7 @@
                          src="/img/icon/jg.png"
                          alt="">
                     <span>
-                        {{title}}
+                        {{orgNavBarTitle}}
                     </span>
                 </div>
                 <img class="close"
@@ -20,7 +20,7 @@
             </div>
             <div class="content">
                 <ul>
-                    <li v-for="(item, index) in navList"
+                    <li v-for="(item, index) in orgNavBarList"
                         :key="index"
                         @click="mapPopup(item)">
                         <img :src="item.icon"
@@ -46,14 +46,6 @@
             DC: null
         }
     },
-    props: {
-        navList: {
-            type: Array
-        },
-        title: {
-            type: String
-        }
-    },
     created () {
         this.DC = global.DC
     },
@@ -71,7 +63,9 @@
             // 介绍
             'introduceText',
             // 全景地址
-            'panoramaUrl'
+            'panoramaUrl',
+            'orgNavBarList',
+            'orgNavBarTitle'
         ])
     },
     methods: {
@@ -121,9 +115,7 @@
                 document.onmouseup = null
             }
         },
-        closeModel () {
-            this.$parent.closeModel()
-        },
+
         mapPopup (item) {
             this.$store.commit('CLEAR_ALL', null)
 
@@ -146,6 +138,7 @@
                 3
             )
         },
+
         newPopup (item) {
             const position = this.DC.Transform.transformWGS84ToCartesian(new this.DC.Position(Number(item.longitude), Number(item.latitude), Number(item.alt), Number(item.heading), Number(item.pitch), Number(item.roll)))
             // eslint-disable-next-line no-unused-vars
@@ -158,6 +151,20 @@
 
             this.$store.commit('SET_PANORAMAPOPUP', false)
             this.$store.commit('SET_DETAILSPOPUP', true)
+        },
+
+        closeModel () {
+            var path = this.$route.path
+            if (path.indexOf('/orgnav') != -1) {
+                this.$store.dispatch('delVisitedViews', this.$route)
+                this.$router.push('/pcLayout/default')
+            }
+
+            this.$store.commit('SET_ORGNAVBARTITLE', '')
+
+            this.$store.commit('SET_ORGNAVBARFLAG', false)
+
+            this.$store.commit('SET_ORGNAVBARLIST', [])
         }
     }
 }
diff --git a/src/pcviews/arc/culture.vue b/src/pcviews/arc/culture.vue
index 5ce4193..24e7e5f 100644
--- a/src/pcviews/arc/culture.vue
+++ b/src/pcviews/arc/culture.vue
@@ -3,30 +3,42 @@
  * @Name: 文化风景
  * @Date: 2021-11-15 17:14:47
  * @Last Modified by: Morpheus
- * @Last Modified time: 2021-12-15 11:48:47
+ * @Last Modified time: 2021-12-25 14:39:28
  */
 <template>
     <div>
-        <arc-nav-bar :title="title"
-                     :arcCode="code"></arc-nav-bar>
+
     </div>
 </template>
 
 <script>
+
+import { mapGetters } from 'vuex'
+
 export default {
     data () {
         return {
-            title: '文化风景',
-            code: 5
+
         }
+    },
+    computed: {
+        ...mapGetters([
+            // 校内导航的显示关闭
+            'orgNavBarFlag'
+        ])
     },
     created () {
+        if (this.orgNavBarFlag == true) {
+            this.$store.commit('SET_ORGNAVBARTITLE', '')
+            this.$store.commit('SET_ORGNAVBARLIST', [])
+            this.$store.commit('SET_ORGNAVBARFLAG', false)
+        }
+        this.$store.commit('SET_ARCNAVBARTITLE', '文化风景')
+        this.$store.commit('SET_ARCNAVBARCODE', 5)
+        this.$store.commit('SET_ARCNAVBARFLAG', true)
     },
     methods: {
-        closeModel () {
-            this.$store.dispatch('delVisitedViews', this.$route)
-            this.$router.push('/pcLayout/default')
-        }
+
     }
 }
 </script>
diff --git a/src/pcviews/arc/dorm.vue b/src/pcviews/arc/dorm.vue
index 06fe0d2..243d969 100644
--- a/src/pcviews/arc/dorm.vue
+++ b/src/pcviews/arc/dorm.vue
@@ -3,30 +3,42 @@
  * @Name: 学生宿舍
  * @Date: 2021-11-15 17:14:47
  * @Last Modified by: Morpheus
- * @Last Modified time: 2021-12-15 11:48:43
+ * @Last Modified time: 2021-12-25 14:41:30
  */
 <template>
     <div>
-        <arc-nav-bar :title="title"
-                     :arcCode="code"></arc-nav-bar>
+
     </div>
 </template>
 
 <script>
+
+import { mapGetters } from 'vuex'
+
 export default {
     data () {
         return {
-            title: '学生宿舍',
-            code: 4
+
         }
+    },
+    computed: {
+        ...mapGetters([
+            // 校内导航的显示关闭
+            'orgNavBarFlag'
+        ])
     },
     created () {
+        if (this.orgNavBarFlag == true) {
+            this.$store.commit('SET_ORGNAVBARTITLE', '')
+            this.$store.commit('SET_ORGNAVBARLIST', [])
+            this.$store.commit('SET_ORGNAVBARFLAG', false)
+        }
+        this.$store.commit('SET_ARCNAVBARTITLE', '学生宿舍')
+        this.$store.commit('SET_ARCNAVBARCODE', 4)
+        this.$store.commit('SET_ARCNAVBARFLAG', true)
     },
     methods: {
-        closeModel () {
-            this.$store.dispatch('delVisitedViews', this.$route)
-            this.$router.push('/pcLayout/default')
-        }
+
     }
 }
 </script>
diff --git a/src/pcviews/arc/edifact.vue b/src/pcviews/arc/edifact.vue
index dbab888..9a449f5 100644
--- a/src/pcviews/arc/edifact.vue
+++ b/src/pcviews/arc/edifact.vue
@@ -3,30 +3,42 @@
  * @Name: 行政办公
  * @Date: 2021-11-15 17:14:47
  * @Last Modified by: Morpheus
- * @Last Modified time: 2021-12-15 11:48:39
+ * @Last Modified time: 2021-12-25 14:42:35
  */
 <template>
     <div>
-        <arc-nav-bar :title="title"
-                     :arcCode="code"></arc-nav-bar>
+
     </div>
 </template>
 
 <script>
+
+import { mapGetters } from 'vuex'
+
 export default {
     data () {
         return {
-            title: '行政办公',
-            code: 1
+
         }
+    },
+    computed: {
+        ...mapGetters([
+            // 校内导航的显示关闭
+            'orgNavBarFlag'
+        ])
     },
     created () {
+        if (this.orgNavBarFlag == true) {
+            this.$store.commit('SET_ORGNAVBARTITLE', '')
+            this.$store.commit('SET_ORGNAVBARLIST', [])
+            this.$store.commit('SET_ORGNAVBARFLAG', false)
+        }
+        this.$store.commit('SET_ARCNAVBARTITLE', '行政办公')
+        this.$store.commit('SET_ARCNAVBARCODE', 1)
+        this.$store.commit('SET_ARCNAVBARFLAG', true)
     },
     methods: {
-        closeModel () {
-            this.$store.dispatch('delVisitedViews', this.$route)
-            this.$router.push('/pcLayout/default')
-        }
+
     }
 }
 </script>
diff --git a/src/pcviews/arc/family.vue b/src/pcviews/arc/family.vue
index b86b626..57d5303 100644
--- a/src/pcviews/arc/family.vue
+++ b/src/pcviews/arc/family.vue
@@ -3,30 +3,42 @@
  * @Name: 家属住宅
  * @Date: 2021-11-15 17:14:47
  * @Last Modified by: Morpheus
- * @Last Modified time: 2021-12-15 11:48:35
+ * @Last Modified time: 2021-12-25 14:42:54
  */
 <template>
     <div>
-        <arc-nav-bar :title="title"
-                     :arcCode="code"></arc-nav-bar>
+
     </div>
 </template>
 
 <script>
+
+import { mapGetters } from 'vuex'
+
 export default {
     data () {
         return {
-            title: '家属住宅',
-            code: 6
+
         }
+    },
+    computed: {
+        ...mapGetters([
+            // 校内导航的显示关闭
+            'orgNavBarFlag'
+        ])
     },
     created () {
+        if (this.orgNavBarFlag == true) {
+            this.$store.commit('SET_ORGNAVBARTITLE', '')
+            this.$store.commit('SET_ORGNAVBARLIST', [])
+            this.$store.commit('SET_ORGNAVBARFLAG', false)
+        }
+        this.$store.commit('SET_ARCNAVBARTITLE', '家属住宅')
+        this.$store.commit('SET_ARCNAVBARCODE', 6)
+        this.$store.commit('SET_ARCNAVBARFLAG', true)
     },
     methods: {
-        closeModel () {
-            this.$store.dispatch('delVisitedViews', this.$route)
-            this.$router.push('/pcLayout/default')
-        }
+
     }
 }
 </script>
diff --git a/src/pcviews/arc/rest.vue b/src/pcviews/arc/rest.vue
index 36411e5..8aa61a4 100644
--- a/src/pcviews/arc/rest.vue
+++ b/src/pcviews/arc/rest.vue
@@ -3,30 +3,42 @@
  * @Name: 其他楼宇
  * @Date: 2021-11-15 17:14:47
  * @Last Modified by: Morpheus
- * @Last Modified time: 2021-12-15 11:48:17
+ * @Last Modified time: 2021-12-25 14:44:21
  */
 <template>
     <div>
-        <arc-nav-bar :title="title"
-                     :arcCode="code"></arc-nav-bar>
+
     </div>
 </template>
 
 <script>
+
+import { mapGetters } from 'vuex'
+
 export default {
     data () {
         return {
-            title: '其他楼宇',
-            code: 7
+
         }
+    },
+    computed: {
+        ...mapGetters([
+            // 校内导航的显示关闭
+            'orgNavBarFlag'
+        ])
     },
     created () {
+        if (this.orgNavBarFlag == true) {
+            this.$store.commit('SET_ORGNAVBARTITLE', '')
+            this.$store.commit('SET_ORGNAVBARLIST', [])
+            this.$store.commit('SET_ORGNAVBARFLAG', false)
+        }
+        this.$store.commit('SET_ARCNAVBARTITLE', '其他楼宇')
+        this.$store.commit('SET_ARCNAVBARCODE', 7)
+        this.$store.commit('SET_ARCNAVBARFLAG', true)
     },
     methods: {
-        closeModel () {
-            this.$store.dispatch('delVisitedViews', this.$route)
-            this.$router.push('/pcLayout/default')
-        }
+
     }
 }
 </script>
diff --git a/src/pcviews/arc/teaching.vue b/src/pcviews/arc/teaching.vue
index cf891e0..fab932d 100644
--- a/src/pcviews/arc/teaching.vue
+++ b/src/pcviews/arc/teaching.vue
@@ -3,30 +3,42 @@
  * @Name: 教学科研
  * @Date: 2021-11-15 17:14:47
  * @Last Modified by: Morpheus
- * @Last Modified time: 2021-12-15 11:48:26
+ * @Last Modified time: 2021-12-25 14:45:10
  */
 <template>
     <div>
-        <arc-nav-bar :title="title"
-                     :arcCode="code"></arc-nav-bar>
+
     </div>
 </template>
 
 <script>
+
+import { mapGetters } from 'vuex'
+
 export default {
     data () {
         return {
-            title: '教学科研',
-            code: 2
+
         }
+    },
+    computed: {
+        ...mapGetters([
+            // 校内导航的显示关闭
+            'orgNavBarFlag'
+        ])
     },
     created () {
+        if (this.orgNavBarFlag == true) {
+            this.$store.commit('SET_ORGNAVBARTITLE', '')
+            this.$store.commit('SET_ORGNAVBARLIST', [])
+            this.$store.commit('SET_ORGNAVBARFLAG', false)
+        }
+        this.$store.commit('SET_ARCNAVBARTITLE', '教学科研')
+        this.$store.commit('SET_ARCNAVBARCODE', 2)
+        this.$store.commit('SET_ARCNAVBARFLAG', true)
     },
     methods: {
-        closeModel () {
-            this.$store.dispatch('delVisitedViews', this.$route)
-            this.$router.push('/pcLayout/default')
-        }
+
     }
 }
 </script>
diff --git a/src/pcviews/arc/venue.vue b/src/pcviews/arc/venue.vue
index 48ff9fa..1cbbb45 100644
--- a/src/pcviews/arc/venue.vue
+++ b/src/pcviews/arc/venue.vue
@@ -3,30 +3,42 @@
  * @Name: 校内场馆
  * @Date: 2021-11-15 17:14:47
  * @Last Modified by: Morpheus
- * @Last Modified time: 2021-12-15 11:48:23
+ * @Last Modified time: 2021-12-25 14:47:37
  */
 <template>
     <div>
-        <arc-nav-bar :title="title"
-                     :arcCode="code"></arc-nav-bar>
+
     </div>
 </template>
 
 <script>
+
+import { mapGetters } from 'vuex'
+
 export default {
     data () {
         return {
-            title: '校内场馆',
-            code: 3
+
         }
+    },
+    computed: {
+        ...mapGetters([
+            // 校内导航的显示关闭
+            'orgNavBarFlag'
+        ])
     },
     created () {
+        if (this.orgNavBarFlag == true) {
+            this.$store.commit('SET_ORGNAVBARTITLE', '')
+            this.$store.commit('SET_ORGNAVBARLIST', [])
+            this.$store.commit('SET_ORGNAVBARFLAG', false)
+        }
+        this.$store.commit('SET_ARCNAVBARTITLE', '校内场馆')
+        this.$store.commit('SET_ARCNAVBARCODE', 3)
+        this.$store.commit('SET_ARCNAVBARFLAG', true)
     },
     methods: {
-        closeModel () {
-            this.$store.dispatch('delVisitedViews', this.$route)
-            this.$router.push('/pcLayout/default')
-        }
+
     }
 }
 </script>
diff --git a/src/pcviews/campusnavi/index.vue b/src/pcviews/campusnavi/index.vue
index 4f02eb1..ca4c13d 100644
--- a/src/pcviews/campusnavi/index.vue
+++ b/src/pcviews/campusnavi/index.vue
@@ -6,8 +6,6 @@
 
 <script>
 
-import { mapGetters } from 'vuex'
-
 export default {
     data () {
         return {
@@ -15,36 +13,8 @@
         }
     },
 
-    computed: {
-        ...mapGetters([
-            'viewer',
-            'popupBgUrl',
-            'pupupQRUrl',
-            // 终点
-            'terminus',
-            // 起点
-            'startingPoint',
-            // 点信息
-            'pointPosition',
-            // 点名称
-            'stateName',
-            // 地址
-            'siteName',
-            // 介绍
-            'introduceText',
-            // 全景地址
-            'panoramaUrl',
-            // 详情弹框显示关闭
-            'detailsPopup',
-            // 全景弹框显示关闭
-            'panoramaPopup',
-            // 校内导航的显示关闭
-            'campusNavFlag'
-        ])
-    },
-
     mounted () {
-        if (this.campusNavFlag == false) this.$store.commit('SET_CAMPUSNAVFLAG', true)
+        this.$store.commit('SET_CAMPUSNAVFLAG', true)
     },
 
     methods: {
diff --git a/src/pcviews/orgnav/directly.vue b/src/pcviews/orgnav/directly.vue
index 712bfe4..ea320c3 100644
--- a/src/pcviews/orgnav/directly.vue
+++ b/src/pcviews/orgnav/directly.vue
@@ -3,25 +3,42 @@
  * @Name: 直属及附属单位
  * @Date: 2021-11-15 10:02:12
  * @Last Modified by: Morpheus
- * @Last Modified time: 2021-12-21 15:11:39
+ * @Last Modified time: 2021-12-25 14:50:00
  */
  <template>
     <div>
-        <org-nav-bar :navList="list"
-                     :title="title"></org-nav-bar>
+
     </div>
 </template>
 
 <script>
 import { getList } from '@/api/pc/orgnav/index'
+
+import { mapGetters } from 'vuex'
+
 export default {
     data () {
         return {
-            title: '直属及附属单位',
             list: []
         }
     },
+    computed: {
+        ...mapGetters([
+            // 校内导航的显示关闭
+            'arcNavBarFlag'
+        ])
+    },
     created () {
+        if (this.arcNavBarFlag == true) {
+            this.$store.commit('SET_ARCNAVBARTITLE', '')
+            this.$store.commit('SET_ARCNAVBARCODE', '')
+            this.$store.commit('SET_ARCNAVBARFLAG', false)
+        }
+        this.$store.commit('SET_ORGNAVBARTITLE', '直属及附属单位')
+        this.$store.commit('SET_ORGNAVBARLIST', [])
+
+        this.$store.commit('SET_ORGNAVBARFLAG', true)
+
         getList({ type: 3 }).then(res => {
             res.data.data.records.forEach(item => {
                 this.list.push({
@@ -40,13 +57,12 @@
                     introduce: item.introduce
                 })
             })
+
+            this.$store.commit('SET_ORGNAVBARLIST', this.list)
         })
     },
     methods: {
-        closeModel () {
-            this.$store.dispatch('delVisitedViews', this.$route)
-            this.$router.push('/pcLayout/default')
-        }
+
     }
 }
 </script>
diff --git a/src/pcviews/orgnav/masses.vue b/src/pcviews/orgnav/masses.vue
index 41854f0..5735b88 100644
--- a/src/pcviews/orgnav/masses.vue
+++ b/src/pcviews/orgnav/masses.vue
@@ -3,25 +3,42 @@
  * @Name: 党群机构
  * @Date: 2021-11-15 10:02:12
  * @Last Modified by: Morpheus
- * @Last Modified time: 2021-12-20 11:26:52
+ * @Last Modified time: 2021-12-25 15:10:09
  */
  <template>
     <div>
-        <org-nav-bar :navList="list"
-                     :title="title"></org-nav-bar>
+
     </div>
 </template>
 
 <script>
 import { getList } from '@/api/pc/orgnav/index'
+
+import { mapGetters } from 'vuex'
+
 export default {
     data () {
         return {
-            title: '党群机构',
             list: []
         }
     },
+    computed: {
+        ...mapGetters([
+            // 校内导航的显示关闭
+            'arcNavBarFlag'
+        ])
+    },
     created () {
+        if (this.arcNavBarFlag == true) {
+            this.$store.commit('SET_ARCNAVBARTITLE', '')
+            this.$store.commit('SET_ARCNAVBARCODE', '')
+            this.$store.commit('SET_ARCNAVBARFLAG', false)
+        }
+        this.$store.commit('SET_ORGNAVBARTITLE', '党群机构')
+        this.$store.commit('SET_ORGNAVBARLIST', [])
+
+        this.$store.commit('SET_ORGNAVBARFLAG', true)
+
         getList({ type: 1 }).then(res => {
             res.data.data.records.forEach(item => {
                 this.list.push({
@@ -40,13 +57,12 @@
                     introduce: item.introduce
                 })
             })
+
+            this.$store.commit('SET_ORGNAVBARLIST', this.list)
         })
     },
     methods: {
-        closeModel () {
-            this.$store.dispatch('delVisitedViews', this.$route)
-            this.$router.push('/pcLayout/default')
-        }
+
     }
 }
 </script>
diff --git a/src/pcviews/orgnav/ofc.vue b/src/pcviews/orgnav/ofc.vue
index 9b3e7e1..bf25ede 100644
--- a/src/pcviews/orgnav/ofc.vue
+++ b/src/pcviews/orgnav/ofc.vue
@@ -3,25 +3,42 @@
  * @Name: 职能部处
  * @Date: 2021-11-15 10:02:12
  * @Last Modified by: Morpheus
- * @Last Modified time: 2021-12-20 11:26:49
+ * @Last Modified time: 2021-12-25 15:10:30
  */
  <template>
     <div>
-        <org-nav-bar :navList="list"
-                     :title="title"></org-nav-bar>
+
     </div>
 </template>
 
 <script>
 import { getList } from '@/api/pc/orgnav/index'
+
+import { mapGetters } from 'vuex'
+
 export default {
     data () {
         return {
-            title: '职能部处',
             list: []
         }
     },
+    computed: {
+        ...mapGetters([
+            // 校内导航的显示关闭
+            'arcNavBarFlag'
+        ])
+    },
     created () {
+        if (this.arcNavBarFlag == true) {
+            this.$store.commit('SET_ARCNAVBARTITLE', '')
+            this.$store.commit('SET_ARCNAVBARCODE', '')
+            this.$store.commit('SET_ARCNAVBARFLAG', false)
+        }
+        this.$store.commit('SET_ORGNAVBARTITLE', '职能部处')
+        this.$store.commit('SET_ORGNAVBARLIST', [])
+
+        this.$store.commit('SET_ORGNAVBARFLAG', true)
+
         getList({ type: 2 }).then(res => {
             res.data.data.records.forEach(item => {
                 this.list.push({
@@ -40,13 +57,12 @@
                     introduce: item.introduce
                 })
             })
+
+            this.$store.commit('SET_ORGNAVBARLIST', this.list)
         })
     },
     methods: {
-        closeModel () {
-            this.$store.dispatch('delVisitedViews', this.$route)
-            this.$router.push('/pcLayout/default')
-        }
+
     }
 }
 </script>
diff --git a/src/pcviews/orgnav/rest.vue b/src/pcviews/orgnav/rest.vue
index d4d787e..63cc2ac 100644
--- a/src/pcviews/orgnav/rest.vue
+++ b/src/pcviews/orgnav/rest.vue
@@ -3,25 +3,42 @@
  * @Name: 其他机构
  * @Date: 2021-11-15 10:02:12
  * @Last Modified by: Morpheus
- * @Last Modified time: 2021-12-21 15:13:31
+ * @Last Modified time: 2021-12-25 15:10:47
  */
  <template>
     <div>
-        <org-nav-bar :navList="list"
-                     :title="title"></org-nav-bar>
+
     </div>
 </template>
 
 <script>
 import { getList } from '@/api/pc/orgnav/index'
+
+import { mapGetters } from 'vuex'
+
 export default {
     data () {
         return {
-            title: '其他机构',
             list: []
         }
     },
+    computed: {
+        ...mapGetters([
+            // 校内导航的显示关闭
+            'arcNavBarFlag'
+        ])
+    },
     created () {
+        if (this.arcNavBarFlag == true) {
+            this.$store.commit('SET_ARCNAVBARTITLE', '')
+            this.$store.commit('SET_ARCNAVBARCODE', '')
+            this.$store.commit('SET_ARCNAVBARFLAG', false)
+        }
+        this.$store.commit('SET_ORGNAVBARTITLE', '其他机构')
+        this.$store.commit('SET_ORGNAVBARLIST', [])
+
+        this.$store.commit('SET_ORGNAVBARFLAG', true)
+
         getList({ type: 5 }).then(res => {
             res.data.data.records.forEach(item => {
                 this.list.push({
@@ -40,13 +57,12 @@
                     introduce: item.introduce
                 })
             })
+
+            this.$store.commit('SET_ORGNAVBARLIST', this.list)
         })
     },
     methods: {
-        closeModel () {
-            this.$store.dispatch('delVisitedViews', this.$route)
-            this.$router.push('/pcLayout/default')
-        }
+
     }
 }
 </script>
diff --git a/src/pcviews/orgnav/teaching.vue b/src/pcviews/orgnav/teaching.vue
index 57e84aa..4c41603 100644
--- a/src/pcviews/orgnav/teaching.vue
+++ b/src/pcviews/orgnav/teaching.vue
@@ -3,25 +3,42 @@
  * @Name: 教学与科研机构
  * @Date: 2021-11-15 10:02:12
  * @Last Modified by: Morpheus
- * @Last Modified time: 2021-12-21 15:12:33
+ * @Last Modified time: 2021-12-25 15:11:00
  */
  <template>
     <div>
-        <org-nav-bar :navList="list"
-                     :title="title"></org-nav-bar>
+
     </div>
 </template>
 
 <script>
 import { getList } from '@/api/pc/orgnav/index'
+
+import { mapGetters } from 'vuex'
+
 export default {
     data () {
         return {
-            title: '教学与科研机构',
             list: []
         }
     },
+    computed: {
+        ...mapGetters([
+            // 校内导航的显示关闭
+            'arcNavBarFlag'
+        ])
+    },
     created () {
+        if (this.arcNavBarFlag == true) {
+            this.$store.commit('SET_ARCNAVBARTITLE', '')
+            this.$store.commit('SET_ARCNAVBARCODE', '')
+            this.$store.commit('SET_ARCNAVBARFLAG', false)
+        }
+        this.$store.commit('SET_ORGNAVBARTITLE', '教学与科研机构')
+        this.$store.commit('SET_ORGNAVBARLIST', [])
+
+        this.$store.commit('SET_ORGNAVBARFLAG', true)
+
         getList({ type: 4 }).then(res => {
             res.data.data.records.forEach(item => {
                 this.list.push({
@@ -40,13 +57,12 @@
                     introduce: item.introduce
                 })
             })
+
+            this.$store.commit('SET_ORGNAVBARLIST', this.list)
         })
     },
     methods: {
-        closeModel () {
-            this.$store.dispatch('delVisitedViews', this.$route)
-            this.$router.push('/pcLayout/default')
-        }
+
     }
 }
 </script>
diff --git a/src/store/getters.js b/src/store/getters.js
index b7da4e7..a38b340 100644
--- a/src/store/getters.js
+++ b/src/store/getters.js
@@ -26,7 +26,10 @@
 const search = {
     orgNavBarFlag: state => state.search.orgNavBarFlag,
     orgNavBarTitle: state => state.search.orgNavBarTitle,
-    orgNavBarList: state => state.search.orgNavBarList
+    orgNavBarList: state => state.search.orgNavBarList,
+    arcNavBarFlag: state => state.search.arcNavBarFlag,
+    arcNavBarTitle: state => state.search.arcNavBarTitle,
+    arcNavBarCode: state => state.search.arcNavBarCode
 }
 
 const getters = {
@@ -44,8 +47,10 @@
     telephone: state => state.popupParams.telephone,
     introduceText: state => state.popupParams.introduceText,
     panoramaUrl: state => state.popupParams.panoramaUrl,
-    detailsPopup: state => state.popupParams.detailsPopup,
     panoramaPopup: state => state.popupParams.panoramaPopup,
+    monitorUrl: state => state.popupParams.monitorUrl,
+    monitorPopup: state => state.popupParams.monitorPopup,
+    detailsPopup: state => state.popupParams.detailsPopup,
     popupImgAtlas: state => state.popupParams.popupImgAtlas,
     teachList: state => state.popupParams.teachList,
     liveList: state => state.popupParams.liveList
diff --git a/src/store/modules/popupParams.js b/src/store/modules/popupParams.js
index 077817e..9a3e9ab 100644
--- a/src/store/modules/popupParams.js
+++ b/src/store/modules/popupParams.js
@@ -9,9 +9,11 @@
         siteName: null,
         telephone: null,
         introduceText: null,
-        panoramaUrl: null,
         detailsPopup: false,
+        panoramaUrl: null,
         panoramaPopup: false,
+        monitorUrl: null,
+        monitorPopup: false,
         // 图集
         popupImgAtlas: [],
         teachList: [],
@@ -48,11 +50,17 @@
         SET_PANORAMAURL (state, panoramaUrl) {
             state.panoramaUrl = panoramaUrl
         },
-        SET_DETAILSPOPUP (state, detailsPopup) {
-            state.detailsPopup = detailsPopup
-        },
         SET_PANORAMAPOPUP (state, panoramaPopup) {
             state.panoramaPopup = panoramaPopup
+        },
+        SET_MONITORURL (state, monitorUrl) {
+            state.monitorUrl = monitorUrl
+        },
+        SET_MONITORPOPUP (state, monitorPopup) {
+            state.monitorPopup = monitorPopup
+        },
+        SET_DETAILSPOPUP (state, detailsPopup) {
+            state.detailsPopup = detailsPopup
         },
         SET_POPUPIMGATLAS (state, popupImgAtlas) {
             state.popupImgAtlas = popupImgAtlas
@@ -69,6 +77,7 @@
             state.introduceText = param
             state.telephone = param
             state.panoramaUrl = param
+            state.monitorUrl = param
             state.teachList = []
             state.liveList = []
         }
diff --git a/src/store/modules/search.js b/src/store/modules/search.js
index 102a95e..dead091 100644
--- a/src/store/modules/search.js
+++ b/src/store/modules/search.js
@@ -2,7 +2,10 @@
     state: {
         orgNavBarFlag: false,
         orgNavBarTitle: [],
-        orgNavBarList: []
+        orgNavBarList: [],
+        arcNavBarFlag: false,
+        arcNavBarTitle: [],
+        arcNavBarCode: []
     },
     mutations: {
         SET_ORGNAVBARFLAG (state, orgNavBarFlag) {
@@ -13,6 +16,16 @@
         },
         SET_ORGNAVBARLIST (state, orgNavBarList) {
             state.orgNavBarList = orgNavBarList
+        },
+
+        SET_ARCNAVBARFLAG (state, arcNavBarFlag) {
+            state.arcNavBarFlag = arcNavBarFlag
+        },
+        SET_ARCNAVBARTITLE (state, arcNavBarTitle) {
+            state.arcNavBarTitle = arcNavBarTitle
+        },
+        SET_ARCNAVBARCODE (state, arcNavBarCode) {
+            state.arcNavBarCode = arcNavBarCode
         }
     },
     actions: {
diff --git a/src/styles/divforms/panoramaBox.scss b/src/styles/divforms/panoramaBox.scss
index 530f5bf..32c4edd 100644
--- a/src/styles/divforms/panoramaBox.scss
+++ b/src/styles/divforms/panoramaBox.scss
@@ -30,6 +30,7 @@
                     margin: auto;
                     width: 18px;
                     height: 18px;
+                    cursor: pointer;
                 }
             }
         }
@@ -49,4 +50,59 @@
         transform: rotate(-45deg) translate(5px, -15px);
         background-color: #28bbf0;
     }
+}
+
+.monitor-dom {
+    position: fixed;
+    left: 0;
+    z-index: 1 !important;
+
+    .monitor-wrap {
+        position: relative;
+        overflow: hidden;
+        padding: 30px;
+
+        .content-wrap {
+            padding: 0 20px 20px 20px;
+
+            background-image: linear-gradient(180deg, transparent 0px, #28bbf06c 0px, #28bbf06c 50%, transparent 50%), linear-gradient(0deg, transparent 0px, #28bbf06c 0px, #28bbf06c 50.1%, transparent 50%);
+            border: 1px solid #29baf1;
+            box-shadow: 0 0px 12px #29b8f1e5;
+
+            .title {
+                position: relative;
+                line-height: 36px;
+                color: #fff;
+                text-align: center;
+
+                .close-box {
+                    position: absolute;
+                    top: 0;
+                    right: 8px;
+                    bottom: 0;
+                    left: auto;
+                    margin: auto;
+                    width: 18px;
+                    height: 18px;
+                    cursor: pointer;
+                }
+            }
+        }
+
+        video {
+            width: 460px;
+            height: 320px;
+            object-fit: fill;
+        }
+    }
+
+    .arrow {
+        position: absolute;
+        bottom: 0;
+        left: 0;
+        width: 45px;
+        height: 2px;
+        transform: rotate(-45deg) translate(5px, -15px);
+        background-color: #28bbf0;
+    }
 }
\ No newline at end of file
diff --git a/src/styles/divforms/popup.scss b/src/styles/divforms/popup.scss
index 850cf27..7218484 100644
--- a/src/styles/divforms/popup.scss
+++ b/src/styles/divforms/popup.scss
@@ -10,6 +10,7 @@
         li {
             margin: 0 4px;
             flex: 1;
+            min-width: 72px;
             height: 30px;
             line-height: 30px;
             list-style: none;
@@ -48,6 +49,11 @@
 
             .live-action-nav {
                 background: url(/img/icon/live-action.png) no-repeat;
+                background-size: 100% 100%;
+            }
+
+            .monitor-nav {
+                background: url(/img/icon/monitor.png) no-repeat;
                 background-size: 100% 100%;
             }
 
@@ -142,7 +148,8 @@
     p {
         white-space: normal !important;
         word-wrap: break-word !important;
-        max-width: 396px;
+        min-width: 396px;
+        max-width: 492px;
         font-size: 0.875rem;
         line-height: 24px;
     }
diff --git a/src/styles/pcpage/dc-ui.scss b/src/styles/pcpage/dc-ui.scss
index d6eb8c1..5020a38 100644
--- a/src/styles/pcpage/dc-ui.scss
+++ b/src/styles/pcpage/dc-ui.scss
@@ -12,4 +12,12 @@
         transform: scale(1.6);
     }
 
+    .dc-zoom-controller {
+        background: #2196f3;
+    }
+
+    .dc-compass .out-ring {
+        fill: #2196f3;
+    }
+
 }
\ No newline at end of file

--
Gitblit v1.9.3