shuishen
2022-03-08 368cadf28a912e35bd9d8017588cb0aefffc7b79
src/components/orgNavBar/index.vue
@@ -1,133 +1,127 @@
<template>
  <public-box class="public-org-nav-bar">
    <template slot="public-box-header">
      <div class="title">
        <img class="icon deblurring" src="/img/icon/jg.png" alt />
        <span>{{ orgNavBarTitle }}</span>
      </div>
      <img class="close" src="/img/navicon/close.png" alt @click="closeModel" />
    </template>
    <template slot="public-box-content">
      <ul>
        <li
          v-for="(item, index) in orgNavBarList"
          :key="index"
          @click="mapPopup(item)"
        >
          <img :src="item.icon" alt />
          <span>{{ item.navTitle }}</span>
        </li>
      </ul>
    </template>
  </public-box>
    <public-box class="public-org-nav-bar">
        <template slot="public-box-header">
            <div class="title">
                <img class="icon deblurring" src="/img/icon/jg.png" alt />
                <span>{{ orgNavBarTitle }}</span>
            </div>
            <img class="close" src="/img/navicon/close.png" alt @click="closeModel" />
        </template>
        <template slot="public-box-content">
            <ul>
                <li v-for="(item, index) in orgNavBarList" :key="index" @click="mapPopup(item)">
                    <img :src="item.icon" alt />
                    <span>{{ item.navTitle }}</span>
                </li>
            </ul>
        </template>
    </public-box>
</template>
<script>
import { mapGetters } from "vuex";
import { mapGetters } from 'vuex'
export default {
  name: "OrgNavBar",
  data() {
    return {
      DC: null,
    };
  },
  created() {
    this.DC = global.DC;
  },
  computed: {
    ...mapGetters([
      "viewer",
      "popupBgUrl",
      "pupupQRUrl",
      // 点信息
      "pointPosition",
      // 点名称
      "stateName",
      // 地址
      "siteName",
      // 介绍
      "introduceText",
      // 全景地址
      "panoramaUrl",
      "orgNavBarList",
      "orgNavBarTitle",
    ]),
  },
  methods: {
    mapPopup(item) {
      this.$store.commit("CLEAR_ALL", null);
      var imgArr = item.bgImg.split(",");
      this.$store.commit("SET_POPUPBGURL", imgArr[0]);
      this.$store.commit("SET_POPUPQRURL", item.QRImg);
      this.$store.commit("SET_POINTPOSITION", [
        Number(item.longitude),
        Number(item.latitude),
        Number(item.alt),
        Number(item.heading),
        Number(item.pitch),
        Number(item.roll),
      ]);
      this.$store.commit("SET_STATENAME", item.navTitle);
      this.$store.commit("SET_SITENAME", item.address);
      this.$store.commit("SET_TELEPHONE", item.telephone);
      this.$store.commit("SET_INTRODUCETEXT", item.introduce);
      this.$store.commit("SET_POPUPIMGATLAS", imgArr);
      if (item.videourl && item.videourl != "") {
        this.$store.commit("SET_MONITORURL", item.videourl);
      }
      this.newPopup(item);
      this.viewer.flyToPosition(
        new this.DC.Position(
          Number(item.longitude),
          Number(item.latitude),
          300,
          Number(item.heading),
          Number(item.pitch),
          Number(item.roll)
        ),
        function () {},
        3
      );
    name: 'OrgNavBar',
    data () {
        return {
        }
    },
    newPopup(item) {
      const position = this.DC.Transform.transformWGS84ToCartesian(
        new this.DC.Position(
          Number(item.longitude),
          Number(item.latitude),
          Number(item.alt)
        )
      );
      // 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);
    created () {
    },
    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", []);
    computed: {
        ...mapGetters([
            'viewer',
            'popupBgUrl',
            'pupupQRUrl',
            // 点信息
            'pointPosition',
            // 点名称
            'stateName',
            // 地址
            'siteName',
            // 介绍
            'introduceText',
            // 全景地址
            'panoramaUrl',
            'orgNavBarList',
            'orgNavBarTitle'
        ])
    },
  },
};
    methods: {
        mapPopup (item) {
            this.$store.commit('CLEAR_ALL', null)
            var imgArr = item.bgImg.split(',')
            this.$store.commit('SET_POPUPBGURL', imgArr[0])
            this.$store.commit('SET_POPUPQRURL', item.QRImg)
            this.$store.commit('SET_POINTPOSITION', [
                Number(item.longitude),
                Number(item.latitude),
                Number(item.alt),
                Number(item.heading),
                Number(item.pitch),
                Number(item.roll)
            ])
            this.$store.commit('SET_STATENAME', item.navTitle)
            this.$store.commit('SET_SITENAME', item.address)
            this.$store.commit('SET_TELEPHONE', item.telephone)
            this.$store.commit('SET_INTRODUCETEXT', item.introduce)
            this.$store.commit('SET_POPUPIMGATLAS', imgArr)
            if (item.videourl && item.videourl != '') {
                this.$store.commit('SET_MONITORURL', item.videourl)
            }
            this.newPopup(item)
            this.viewer.flyToPosition(
                new global.DC.Position(
                    Number(item.longitude),
                    Number(item.latitude),
                    300,
                    Number(item.heading),
                    Number(item.pitch),
                    Number(item.roll)
                ),
                function () { },
                3
            )
        },
        newPopup (item) {
            const position = global.DC.Transform.transformWGS84ToCartesian(
                new global.DC.Position(
                    Number(item.longitude),
                    Number(item.latitude),
                    Number(item.alt)
                )
            )
            // eslint-disable-next-line no-unused-vars
            var popup = new global.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)
        },
        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', [])
        }
    }
}
</script>
<style scoped lang="scss"></style>