1
mayisheng
2022-08-15 81f54040c2cb65537c6c6e1db8358a39a57dea0d
src/components/arcNavBar/index.vue
@@ -3,15 +3,15 @@
        <template slot="public-box-header">
            <div class="title">
                <img class="icon deblurring" src="/img/icon/xyjz.png" alt />
                <span>{{arcNavBarTitle}}</span>
                <span>{{ arcNavBarTitle }}</span>
            </div>
            <img class="close" src="/img/navicon/close.png" alt @click="closeModel" />
            <img class="close deblurring" src="/img/navicon/close.png" alt @click="closeModel" />
        </template>
        <template slot="public-box-content">
            <div class="tab" v-show="false">
                <ul>
                    <li
                        :class="{'on': item.flag}"
                        :class="{ on: item.flag }"
                        v-for="(item, index) in titleList"
                        :key="index"
                        @click="topNavClick(item, index)"
@@ -21,7 +21,7 @@
            <ul>
                <li v-for="(item, index) in itemNavList" :key="index" @click="mapPopup(item)">
                    <img :src="item.icon" alt />
                    <span>{{item.navTitle}}</span>
                    <span>{{ item.navTitle }}</span>
                </li>
            </ul>
        </template>
@@ -30,23 +30,23 @@
<script>
import { mapGetters } from 'vuex'
import { getList, getChildNavList, getChildNavDetail } from '@/api/pc/public/arc'
import {
    getList,
    getChildNavList,
    getChildNavDetail
} from '@/api/pc/public/arc'
export default {
    name: 'ArcNavBar',
    data () {
        return {
            itemNavList: [],
            titleList: [],
            DC: null
            titleList: []
        }
    },
    props: {
    },
    props: {},
    computed: {
        ...mapGetters([
            'viewer',
            'popupBgUrl',
            'pupupQRUrl',
            // 点信息
@@ -60,23 +60,25 @@
            // 全景地址
            'panoramaUrl',
            'arcNavBarTitle',
            'arcNavBarCode'
            'arcNavBarCode',
            'twoOrThree'
        ])
    },
    created () {
        this.DC = global.DC
    },
    mounted () {
    },
    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 })
                getList().then((res) => {
                    res.data.data.forEach((item) => {
                        this.titleList.push({
                            title: item.dictValue,
                            flag: false,
                            key: item.dictKey
                        })
                    })
                    this.titleList[0].flag = true
@@ -87,8 +89,18 @@
        }
    },
    methods: {
        coordinate (item) {
            const arr = item.split(',')
            return {
                lng: arr[0],
                lat: arr[1]
            }
        },
        topNavClick (item, index) {
            this.titleList.forEach(item => {
            this.titleList.forEach((item) => {
                item.flag = false
            })
@@ -100,27 +112,32 @@
        getChilsNavs (campus) {
            this.itemNavList = []
            getChildNavList({ campus: campus, type: this.arcNavBarCode }).then(res => {
                res.data.data.forEach(item => {
                    this.itemNavList.push({
                        navTitle: item.mechanismname,
                        icon: '/img/navicon/tag.png',
                        id: item.id
            getChildNavList({ campus: campus, type: this.arcNavBarCode }).then(
                (res) => {
                    res.data.data.forEach((item) => {
                        this.itemNavList.push({
                            navTitle: item.mechanismname,
                            icon: '/img/navicon/tag.png',
                            id: item.id
                        })
                    })
                })
            })
                }
            )
        },
        mapPopup (param) {
            getChildNavDetail({ id: param.id }).then(res => {
            getChildNavDetail({ id: param.id }).then((res) => {
                var result = res.data.data[0].list
                this.$store.commit('CLEAR_ALL', null)
                var imgArr = result.tpurl.split(',')
                const position = this.coordinate(result.x)
                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)
@@ -144,24 +161,80 @@
                    this.$store.commit('SET_LIVELIST', [])
                }
                this.newPopup(result)
                this.viewer.flyToPosition(
                    new this.DC.Position(Number(result.jd), Number(result.wd), 300, Number(result.heading), Number(result.pitch), Number(result.roll)),
                    function () {
                    },
                    3
                )
                this.newPopup(result, position)
                if (this.twoOrThree == '三 维') {
                    this.$store.commit('SET_POINTPOSITION', [
                        Number(position.lng),
                        Number(position.lat),
                        Number(result.gd),
                        Number(result.heading),
                        Number(result.pitch),
                        Number(result.roll)
                    ])
                    global.viewer.flyToPosition(
                        new global.DC.Position(
                            Number(position.lng),
                            Number(position.lat),
                            300,
                            Number(result.heading),
                            Number(result.pitch),
                            Number(result.roll)
                        ),
                        function () { },
                        3
                    )
                } else {
                    this.$store.commit('SET_POINTPOSITION', [
                        Number(result.jd),
                        Number(result.wd),
                        Number(result.gd),
                        Number(result.heading),
                        Number(result.pitch),
                        Number(result.roll)
                    ])
                    global.viewer.flyToPosition(
                        new global.DC.Position(
                            Number(result.jd),
                            Number(result.wd),
                            300,
                            Number(result.heading),
                            Number(result.pitch),
                            Number(result.roll)
                        ),
                        function () { },
                        3
                    )
                }
            })
        },
        newPopup (item) {
            const position = this.DC.Transform.transformWGS84ToCartesian(new this.DC.Position(Number(item.jd), Number(item.wd), Number(item.gd)))
        newPopup (item, positionArr) {
            let position
            if (this.twoOrThree == '三 维') {
                position = global.DC.Transform.transformWGS84ToCartesian(
                    new global.DC.Position(
                        Number(positionArr.lng),
                        Number(positionArr.lat),
                        Number(item.alt)
                    )
                )
            } else {
                position = global.DC.Transform.transformWGS84ToCartesian(
                    new global.DC.Position(
                        Number(item.jd),
                        Number(item.wd),
                        Number(50)
                    )
                )
            }
            // eslint-disable-next-line no-unused-vars
            var popup = new this.DC.DivForms(this.viewer, {
            var popup = new global.DC.DivForms(global.viewer, {
                domId: 'divFormsDomBox',
                position: [
                    position
                ]
                position: [position]
            })
            this.$store.commit('SET_PANORAMAPOPUP', false)
@@ -179,10 +252,13 @@
            this.$store.commit('SET_ARCNAVBARTITLE', '')
            this.$store.commit('SET_ARCNAVBARCODE', '')
            this.$store.commit('SET_ARCNAVBARFLAG', false)
            this.$store.commit('SET_DETAILSPOPUP', false)
            this.$store.commit('SET_PANORAMAPOPUP', false)
            this.$store.commit('SET_MONITORPOPUP', false)
        }
    }
}
</script>
<style scoped lang='scss'>
</style>
<style scoped lang="scss"></style>