From c2620132e537104e0de17114fb824dd957b9dd2a Mon Sep 17 00:00:00 2001
From: liuyg <376836862@qq.com>
Date: Mon, 13 Dec 2021 17:29:55 +0800
Subject: [PATCH] +手机端
---
src/router/page/index.js | 343 +++++++++---------
src/components/mobilemap/index.vue | 112 +++--
src/mobileviews/home/index.vue | 29 +
src/mobileLayout/index.vue | 13
src/components/mobileCortrolButtom/index.vue | 53 ++
src/store/index.js | 3
src/components/mobileLeftNav/index.vue | 347 +++++++++++++++++++
src/store/getters.js | 3
src/store/modules/mobile.js | 16
src/components/mobileCortrol/index.vue | 50 ++
src/components/mobileCortrolSearch/index.vue | 52 ++
11 files changed, 799 insertions(+), 222 deletions(-)
diff --git a/src/components/mobileCortrol/index.vue b/src/components/mobileCortrol/index.vue
new file mode 100644
index 0000000..31f6910
--- /dev/null
+++ b/src/components/mobileCortrol/index.vue
@@ -0,0 +1,50 @@
+<template>
+ <div class="m-left-control">
+ <div class="m-l-inbut">+</div>
+ <div class="m-l-inbut">-</div>
+ </div>
+</template>
+
+<script>
+export default {
+ name: "mobileCortrol",
+ computed: {},
+ data() {
+ return {
+ viewer: null,
+ DC: null,
+ };
+ },
+ created() {
+ this.DC = global.DC;
+ },
+ mounted() {},
+ methods: {
+ initialize(viewer) {
+ viewer.scene.globe.depthTestAgainstTerrain = false;
+ this.viewer = viewer;
+ },
+ },
+};
+</script>
+
+<style scoped lang='scss'>
+.m-left-control {
+ position: fixed;
+ left: 20px;
+ top: 20px;
+ z-index: 1;
+ .m-l-inbut {
+ width: 32px;
+ height: 32px;
+ background-color: #c9302c;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ color: white;
+ font-size: 22px;
+ margin-bottom: 12px;
+ border-radius: 5px;
+ }
+}
+</style>
diff --git a/src/components/mobileCortrolButtom/index.vue b/src/components/mobileCortrolButtom/index.vue
new file mode 100644
index 0000000..654ec9f
--- /dev/null
+++ b/src/components/mobileCortrolButtom/index.vue
@@ -0,0 +1,53 @@
+<template>
+ <div class="m-left-mobileCortrolButtom">
+ <div class="m-l-inbut"><i class="el-icon-s-help"></i></div>
+ <div class="m-l-inbut"><i class="el-icon-s-flag"></i></div>
+ <div class="m-l-inbut"><i class="el-icon-menu"></i></div>
+ <div class="m-l-inbut"><i class="el-icon-location"></i></div>
+ </div>
+</template>
+
+<script>
+export default {
+ name: "mobileCortrolButtom",
+ computed: {},
+ data() {
+ return {
+ viewer: null,
+ DC: null,
+ };
+ },
+ created() {
+ this.DC = global.DC;
+ },
+ mounted() {},
+ methods: {
+ initialize(viewer) {
+ viewer.scene.globe.depthTestAgainstTerrain = false;
+ this.viewer = viewer;
+ },
+ },
+};
+</script>
+
+<style scoped lang='scss'>
+.m-left-mobileCortrolButtom {
+ position: fixed;
+ bottom: 20px;
+ left: 20px;
+ z-index: 1;
+ .m-l-inbut {
+ float: left;
+ width: 39px;
+ height: 39px;
+ background-color: #c9302c;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ color: white;
+ font-size: 22px;
+ margin-left: 12px;
+ border-radius: 5px;
+ }
+}
+</style>
diff --git a/src/components/mobileCortrolSearch/index.vue b/src/components/mobileCortrolSearch/index.vue
new file mode 100644
index 0000000..398d4cb
--- /dev/null
+++ b/src/components/mobileCortrolSearch/index.vue
@@ -0,0 +1,52 @@
+<template>
+ <div class="m-left-mobileCortrolSearch">
+ <div class="m-left-SearchMain">
+ <el-input placeholder="请输入内容" v-model="input" clearable
+ ><i class="el-icon-search icon"></i>
+ </el-input>
+ </div>
+ </div>
+</template>
+
+<script>
+export default {
+ name: "mobileCortrolSearch",
+ computed: {},
+ data() {
+ return {
+ viewer: null,
+ DC: null,
+ };
+ },
+ created() {
+ this.DC = global.DC;
+ },
+ mounted() {},
+ methods: {
+ initialize(viewer) {
+ viewer.scene.globe.depthTestAgainstTerrain = false;
+ this.viewer = viewer;
+ },
+ },
+};
+</script>
+
+<style scoped lang='scss'>
+.m-left-mobileCortrolSearch {
+ width: 100%;
+ position: fixed;
+ top: 0;
+ // left: 20px;
+ z-index: 1;
+ .m-left-SearchMain {
+ margin: 0 auto;
+ width: 60%;
+ position: relative;
+ z-index: 1;
+ top: 20px;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ }
+}
+</style>
diff --git a/src/components/mobileLeftNav/index.vue b/src/components/mobileLeftNav/index.vue
new file mode 100644
index 0000000..0d844cf
--- /dev/null
+++ b/src/components/mobileLeftNav/index.vue
@@ -0,0 +1,347 @@
+<template>
+ <div class="m-left-nav" :style="[navStyle]">
+ <!-- :style="[coutrolStyle]" -->
+ <div class="m-left-coutrol" @click="iconHide = !iconHide">
+ <i :class="icons"></i>
+ </div>
+ <ul>
+ <li
+ v-for="(item, index) in leftNavData"
+ :key="index"
+ @click="leftNavClick(item)"
+ >
+ <img :style="[imgStyle]" :src="item.img" alt="" />
+ <span>{{ item.label }}</span>
+ </li>
+ </ul>
+ </div>
+</template>
+
+<script>
+export default {
+ name: "mobileLeftNav",
+ computed: {},
+ watch: {
+ iconHide() {
+ if (this.iconHide) {
+ this.icons = "el-icon-d-arrow-left";
+ this.navStyle.right = "-51px";
+ this.imgStyle.right = "6px";
+ } else {
+ this.icons = "el-icon-d-arrow-right";
+ this.navStyle.right = "0px";
+ this.imgStyle.right = "0";
+ }
+ },
+ },
+ data() {
+ return {
+ icons: "el-icon-d-arrow-right",
+ iconHide: false,
+ navStyle: {
+ right: "0px",
+ },
+ imgStyle: {
+ right: "0",
+ },
+ // coutrolStyle: {
+ // position: " absolute",
+ // left: "-26px",
+ // top: "114px",
+ // right: "auto",
+ // width: "25px",
+ // height: "60px",
+ // backgroundColor: "#fff",
+ // borderRadius: "10px",
+ // display: "flex",
+ // alignItems: "center",
+ // justifyContent: "center",
+ // transition: "left 3s",
+ // },
+ leftNavData: [
+ {
+ flag: false,
+ label: "标签",
+ img: "/img/leftnav/tag.png",
+ normal: "/img/leftnav/tag.png",
+ checked: "/img/leftnav/tag-checked.png",
+ layer: "tagLayer",
+ },
+ {
+ flag: false,
+ label: "道路",
+ img: "/img/leftnav/way.png",
+ normal: "/img/leftnav/way.png",
+ checked: "/img/leftnav/way-checked.png",
+ layer: "wayLayer",
+ },
+ {
+ flag: false,
+ label: "实景",
+ img: "/img/leftnav/scene.png",
+ normal: "/img/leftnav/scene.png",
+ checked: "/img/leftnav/scene-checked.png",
+ layer: "sceneLayer",
+ },
+ {
+ flag: false,
+ label: "活动",
+ img: "/img/leftnav/activity.png",
+ normal: "/img/leftnav/activity.png",
+ checked: "/img/leftnav/activity-checked.png",
+ layer: "activityLayer",
+ },
+ {
+ flag: false,
+ label: "AED",
+ img: "/img/leftnav/aed.png",
+ normal: "/img/leftnav/aed.png",
+ checked: "/img/leftnav/aed-checked.png",
+ layer: "aedLayer",
+ },
+ {
+ flag: false,
+ label: "停车",
+ img: "/img/leftnav/park.png",
+ normal: "/img/leftnav/park.png",
+ checked: "/img/leftnav/park-checked.png",
+ layer: "parkLayer",
+ },
+ {
+ flag: false,
+ label: "出入",
+ img: "/img/leftnav/come.png",
+ normal: "/img/leftnav/come.png",
+ checked: "/img/leftnav/come-checked.png",
+ layer: "comeLayer",
+ },
+ ],
+ viewer: null,
+ DC: null,
+ tagLayer: null,
+ wayLayer: null,
+ sceneLayer: null,
+ activityLayer: null,
+ aedLayer: null,
+ parkLayer: null,
+ comeLayer: null,
+ };
+ },
+ created() {
+ this.DC = global.DC;
+ },
+ mounted() {},
+ methods: {
+ generatePosition(num) {
+ const list = [];
+ for (let i = 0; i < num; i++) {
+ const lng = 121.0493 + Math.random() * 0.5;
+ const lat = 31.2583 + Math.random() * 0.5;
+ list.push(new this.DC.Position(lng, lat, 0));
+ }
+ return list;
+ },
+ leftNavClick(item) {
+ item.flag = !item.flag;
+ if (item.flag == true) {
+ item.img = item.checked;
+ this[item.layer].show = true;
+ } else {
+ item.img = item.normal;
+ this[item.layer].show = false;
+ }
+ },
+ initialize(viewer) {
+ viewer.scene.globe.depthTestAgainstTerrain = false;
+ this.viewer = viewer;
+ this.tagLayer = new this.DC.HtmlLayer("tagLayer");
+ viewer.addLayer(this.tagLayer);
+ this.wayLayer = new this.DC.HtmlLayer("wayLayer");
+ viewer.addLayer(this.wayLayer);
+ this.sceneLayer = new this.DC.VectorLayer("sceneLayer");
+ viewer.addLayer(this.sceneLayer);
+
+ this.aedLayer = new this.DC.VectorLayer("aedLayer");
+ viewer.addLayer(this.aedLayer);
+
+ this.parkLayer = new this.DC.HtmlLayer("parkLayer");
+ viewer.addLayer(this.parkLayer);
+ this.comeLayer = new this.DC.VectorLayer("comeLayer");
+ viewer.addLayer(this.comeLayer);
+
+ const positions1 = this.generatePosition(50);
+ positions1.forEach((item, index) => {
+ const divIcon = new this.DC.DivIcon(
+ item,
+ `
+ <div class="tag-entitys-box">
+ <div class="tag-content">
+ 南门口
+ </div>
+ <div class="tag-angle-content">
+ <img src="https://map.hit.edu.cn/images/tarrow_xq.png">
+ </div>
+ </div>
+ `
+ );
+ this.tagLayer.addOverlay(divIcon);
+ });
+
+ const positions2 = this.generatePosition(50);
+ positions2.forEach((item, index) => {
+ const divIcon = new this.DC.DivIcon(
+ item,
+ `
+ <div class="way-entitys-box">
+ <div class="way-title" style="border: white 1px solid; padding-left: 2px;font-size: 12px; background: #0066ff; width: 12px;line-height: 13px; padding:2px 1px 2px 1px; color:white;">
+ 工建街
+ </div>
+ <div class="way-sign-box">
+ <img src="https://map.hit.edu.cn/images/roadsign3.png">
+ </div>
+ </div>
+ `
+ );
+ this.wayLayer.addOverlay(divIcon);
+ });
+
+ const positions3 = this.generatePosition(50);
+ positions3.forEach((item) => {
+ const billboard = new this.DC.Billboard(
+ item,
+ "/img/leftnav/map-panorama.png"
+ );
+ billboard.size = [16, 16];
+ this.sceneLayer.addOverlay(billboard);
+ });
+
+ const positions4 = this.generatePosition(10);
+ positions4.forEach((item, index) => {
+ const label = new this.DC.Label(item, "建筑AED");
+ label.setStyle({
+ fillColor: this.DC.Color.ORANGERED,
+ font: "10px sans-serif",
+ pixelOffset: { x: 0, y: -16 },
+ });
+ this.aedLayer.addOverlay(label);
+
+ const billboard = new this.DC.Billboard(
+ item,
+ "/img/leftnav/map-aed.png"
+ );
+ billboard.size = [16, 16];
+
+ this.aedLayer.addOverlay(billboard);
+ });
+
+ const positions5 = this.generatePosition(120);
+ positions5.forEach((item, index) => {
+ const divIcon = new this.DC.DivIcon(
+ item,
+ `
+ <div class="park-entitys-box">
+ <div class="park-title" alt="校外街路侧停车场">
+ </div>
+ <div class="park-sign-box">
+ <div>
+ <img src="https://map.hit.edu.cn/images/p-biao.png" width="14" height="14" alt="校外街路侧停车场" title="校外街路侧停车场">
+ </div>
+ <div>
+ <img src="https://map.hit.edu.cn/images/roadsign.png" width="5" height="21">
+ </div>
+ </div>
+ </div>
+ `
+ );
+ this.parkLayer.addOverlay(divIcon);
+ });
+
+ const positions6 = this.generatePosition(10);
+ positions6.forEach((item, index) => {
+ const label = new this.DC.Label(item, "123");
+ label.setStyle({
+ fillColor: this.DC.Color.PURPLE,
+ outlineColor: this.DC.Color.WHITE, // 边框颜色
+ outlineWidth: 2, // 边框大小,
+ font: "10px sans-serif",
+ pixelOffset: { x: 0, y: -16 },
+ });
+ this.comeLayer.addOverlay(label);
+
+ const billboard = new this.DC.Billboard(
+ item,
+ "/img/leftnav/map-activity.png"
+ );
+ billboard.size = [16, 16];
+
+ this.comeLayer.addOverlay(billboard);
+ });
+
+ this.tagLayer.show = false;
+ this.wayLayer.show = false;
+ this.sceneLayer.show = false;
+ this.aedLayer.show = false;
+ this.parkLayer.show = false;
+ this.comeLayer.show = false;
+ },
+ },
+};
+</script>
+
+<style scoped lang='scss'>
+.m-left-nav {
+ position: fixed;
+ bottom: 30px;
+ right: 0px;
+ z-index: 1;
+ background-color: #fff;
+ border-radius: 17px 0 0 17px;
+ transition: all 0.5s;
+ .m-left-coutrol {
+ position: absolute;
+ left: -24px;
+ top: 96px;
+ width: 25px;
+ height: 60px;
+ background-color: #fff;
+ border-radius: 17px 0 0 17px;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ }
+ li {
+ margin-bottom: 6px;
+ font-weight: 400;
+ display: block;
+ width: 80px;
+ height: 30px;
+ line-height: 30px;
+ background-color: #fff;
+ border-radius: 15px;
+ text-align: center;
+ font-size: 0;
+ cursor: pointer;
+
+ img {
+ position: relative;
+ transition: all 0.5s;
+ width: 24px;
+ height: 24px;
+ vertical-align: middle;
+ margin-right: 10px;
+ image-rendering: -moz-crisp-edges;
+ image-rendering: -o-crisp-edges;
+ image-rendering: -webkit-optimize-contrast;
+ image-rendering: crisp-edges;
+ -ms-interpolation-mode: nearest-neighbor;
+ }
+
+ span {
+ display: inline-block;
+ vertical-align: middle;
+ font-size: 14px;
+ color: #2f2f2f;
+ }
+ }
+}
+</style>
diff --git a/src/components/map/indexL.vue b/src/components/mobilemap/index.vue
similarity index 60%
rename from src/components/map/indexL.vue
rename to src/components/mobilemap/index.vue
index cbd4153..d6c01b2 100644
--- a/src/components/map/indexL.vue
+++ b/src/components/mobilemap/index.vue
@@ -1,9 +1,10 @@
/* eslint-disable camelcase */
<template>
- <div id="viewer-container" style="height: 100%; width: 100%">
+ <!-- mobile -->
+ <div id="mobile-viewer-container">
<div
v-show="popupFlag"
- id="modelPopup"
+ id="mobile-modelPopup"
style="
width: 366px;
height: 240px;
@@ -11,34 +12,42 @@
background-size: 100% 100%;
"
>
- <div class="header">
- <div class="logo">
+ <div class="mobile-header">
+ <div class="mobile-logo">
<img src="/img/navicon/map.png" alt="" />
</div>
- <div class="title">明德楼</div>
- <div class="close">
+ <div class="mobile-title">明德楼</div>
+ <div class="mobile-close">
<img src="/img/navicon/close.png" alt="" />
</div>
</div>
- <div class="content">
- <div class="img"></div>
- <div class="meau"></div>
+ <div class="mobile-content">
+ <div class="mobile-img"></div>
+ <div class="mobile-meau"></div>
</div>
</div>
- <div id="map_popup_content"></div>
- <div ref="mapContentContent" v-show="popupWindow" id="map_content_content">
- <div class="arc-bcg">
+ <div id="mobile-map_popup_content"></div>
+ <div
+ ref="mobile-mapContentContent"
+ v-show="popupWindow"
+ id="mobile-map_content_content"
+ >
+ <div class="mobile-arc-bcg">
<img src="/img/job/one.jpg" alt="" @click="once" />
</div>
</div>
+ <mobileLeftNav ref="mobileLeftNav"></mobileLeftNav>
+ <mobileCortrol ref="mobileCortrol"></mobileCortrol>
+ <mobileCortrolButtom ref="mobileCortrolButtom"></mobileCortrolButtom>
+ <mobileCortrolSearch ref="mobileCortrolSearch"></mobileCortrolSearch>
</div>
</template>
<script>
import { mapGetters } from "vuex";
export default {
- name: "mapBox",
+ name: "mobilemapBox",
data() {
return {
popupFlag: false,
@@ -46,7 +55,7 @@
};
},
computed: {
- ...mapGetters(["viewer"]),
+ ...mapGetters(["mviewer"]),
},
mounted() {
var DC = global.DC;
@@ -114,7 +123,7 @@
}
function initViewer() {
- viewer = new DC.Viewer("viewer-container", {
+ viewer = new DC.Viewer("mobile-viewer-container", {
contextOptions: {
webgl: {
stencil: true,
@@ -122,14 +131,14 @@
},
},
});
-
- console.log(DC, 45678);
+ that.$refs.mobileLeftNav.initialize(viewer);
+ // console.log(DC, 45678);
const popup = viewer.popup;
popup.hide();
- that.$store.commit("SET_VIEWER", viewer);
+ that.$store.commit("MSET_VIEWER", viewer);
const baselayer = DC.ImageryLayerFactory.createArcGisImageryLayer({
url: "http://services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer",
@@ -139,32 +148,32 @@
name: "影像",
});
- // eslint-disable-next-line camelcase
- const baselayer_shaded = DC.ImageryLayerFactory.createArcGisImageryLayer({
- url: "http://services.arcgisonline.com/arcgis/rest/services/World_Shaded_Relief/MapServer",
- });
- viewer.addBaseLayer(baselayer_shaded, {
- iconUrl: "examples/images/icon/elec.png",
- name: "电子",
- });
+ // // eslint-disable-next-line camelcase
+ // const baselayer_shaded = DC.ImageryLayerFactory.createArcGisImageryLayer({
+ // url: "http://services.arcgisonline.com/arcgis/rest/services/World_Shaded_Relief/MapServer",
+ // });
+ // viewer.addBaseLayer(baselayer_shaded, {
+ // iconUrl: "examples/images/icon/elec.png",
+ // name: "电子",
+ // });
- // eslint-disable-next-line camelcase
- const baselayer_street = DC.ImageryLayerFactory.createArcGisImageryLayer({
- url: "http://services.arcgisonline.com/arcgis/rest/services/World_Physical_Map/MapServer",
- });
- viewer.addBaseLayer(baselayer_street, {
- iconUrl: "examples/images/icon/ter.png",
- name: "地形",
- });
+ // // eslint-disable-next-line camelcase
+ // const baselayer_street = DC.ImageryLayerFactory.createArcGisImageryLayer({
+ // url: "http://services.arcgisonline.com/arcgis/rest/services/World_Physical_Map/MapServer",
+ // });
+ // viewer.addBaseLayer(baselayer_street, {
+ // iconUrl: "examples/images/icon/ter.png",
+ // name: "地形",
+ // });
- // eslint-disable-next-line camelcase
- const baselayer_ter = DC.ImageryLayerFactory.createArcGisImageryLayer({
- url: "http://services.arcgisonline.com/arcgis/rest/services/World_Terrain_Base/MapServer",
- });
- viewer.addBaseLayer(baselayer_ter, {
- iconUrl: "examples/images/icon/ter.png",
- name: "地形",
- });
+ // // eslint-disable-next-line camelcase
+ // const baselayer_ter = DC.ImageryLayerFactory.createArcGisImageryLayer({
+ // url: "http://services.arcgisonline.com/arcgis/rest/services/World_Terrain_Base/MapServer",
+ // });
+ // viewer.addBaseLayer(baselayer_ter, {
+ // iconUrl: "examples/images/icon/ter.png",
+ // name: "地形",
+ // });
const layer = new DC.TilesetLayer("layer");
viewer.addLayer(layer);
@@ -199,14 +208,14 @@
viewer.scene.globe.depthTestAgainstTerrain = false;
- console.log(document.getElementById("map_content_content"));
+ // console.log(document.getElementById("mobile-map_content_content"));
// 定制化窗体
var divForms = new DC.divForms(viewer, {
domId: "div1",
title: "成教楼 ",
className: "divForms-dom",
- content: document.getElementById("map_content_content"),
+ content: document.getElementById("mobile-map_content_content"),
position: [e.position],
});
@@ -219,17 +228,17 @@
// new DC.Position(105.565571, 31.984708, 15362816, 0, -90)
// )
- viewer.compass.enable = true;
- viewer.zoomController.enable = true;
- viewer.locationBar.enable = true;
- viewer.distanceLegend.enable = true;
+ viewer.compass.enable = false;
+ viewer.zoomController.enable = false;
+ viewer.locationBar.enable = false;
+ viewer.distanceLegend.enable = false;
}
DC.ready(initViewer);
},
methods: {
once() {
- // console.log(123);
+ console.log(123);
// console.log(global, 123456789);
},
},
@@ -237,4 +246,9 @@
</script>
<style lang='scss' scope>
+#mobile-viewer-container {
+ width: 100%;
+ height: 100%;
+ position: relative;
+}
</style>
diff --git a/src/mobileLayout/index.vue b/src/mobileLayout/index.vue
index feea8c6..bf5727f 100644
--- a/src/mobileLayout/index.vue
+++ b/src/mobileLayout/index.vue
@@ -1,14 +1,17 @@
<template>
- <div>
- <mapBox ref="modalForm" />
+ <div id="mobileMaps">
+ <mobilemapBox ref="mobilemapBoxFrom" />
</div>
</template>
<script>
-export default {
-}
+export default {};
</script>
<style>
-
+#mobileMaps {
+ width: 100%;
+ height: 100%;
+ overflow: hidden;
+}
</style>
diff --git a/src/mobileviews/home/index.vue b/src/mobileviews/home/index.vue
new file mode 100644
index 0000000..96fabaa
--- /dev/null
+++ b/src/mobileviews/home/index.vue
@@ -0,0 +1,29 @@
+<template>
+ <div class="content-container">
+ <div class="main-content" id="MainContent">
+ <router-view ref="target-name" />
+ </div>
+
+ <div class="map-scene" ref="MapSceneContent">
+ <div>
+ <mobilemapBox ref="mobilemapBoxFrom" />
+ </div>
+ </div>
+ </div>
+</template>
+
+<script>
+export default {
+ name: "Main",
+ components: {},
+ data() {
+ return {};
+ },
+ created() {},
+ mounted() {},
+ methods: {},
+};
+</script>
+
+<style scoped lang='scss'>
+</style>
diff --git a/src/router/page/index.js b/src/router/page/index.js
index 5e6c479..ae24e98 100644
--- a/src/router/page/index.js
+++ b/src/router/page/index.js
@@ -1,8 +1,8 @@
/*
* @Author: Morpheus
* @Date: 2021-04-30 14:12:09
- * @Last Modified by: Morpheus
- * @Last Modified time: 2021-11-13 16:48:01
+ * @Last Modified by: liu
+ * @Last Modified time: 2021-12-13 14:53:06
*/
import Vue from 'vue'
@@ -26,177 +26,188 @@
title: '系统首页'
},
children: [{
- path: 'mapnav',
- component: resolve => require(['../../pcviews/mapnav/index.vue'], resolve),
- meta: {
- title: '地图导览'
- }
- },
- {
- path: 'orgnav',
- component: resolve => require(['../../pcviews/orgnav/index.vue'], resolve),
- meta: {
- title: '校内机构导览'
- },
- children: [{
- path: 'masses',
- component: resolve => require(['../../pcviews/orgnav/masses.vue'], resolve),
- meta: {
- title: '党群机构'
- }
- },
- {
- path: 'ofc',
- component: resolve => require(['../../pcviews/orgnav/ofc.vue'], resolve),
- meta: {
- title: '职能部处'
- }
- }, {
- path: 'directly',
- component: resolve => require(['../../pcviews/orgnav/directly.vue'], resolve),
- meta: {
- title: '直属及附属单位'
- }
- },
- {
- path: 'teaching',
- component: resolve => require(['../../pcviews/orgnav/teaching.vue'], resolve),
- meta: {
- title: '教学与科研机构'
- }
- }, {
- path: 'rest',
- component: resolve => require(['../../pcviews/orgnav/rest.vue'], resolve),
- meta: {
- title: '其他机构'
- }
- }
- ]
- },
- {
- path: 'arc',
- component: resolve => require(['../../pcviews/arc/index.vue'], resolve),
- meta: {
- title: '校内建筑'
- },
- children: [{
- path: 'edifact',
- component: resolve => require(['../../pcviews/arc/edifact.vue'], resolve),
- meta: {
- title: '行政办公'
- }
- },
- {
- path: 'teaching',
- component: resolve => require(['../../pcviews/arc/teaching.vue'], resolve),
- meta: {
- title: '教学科研'
- }
- }, {
- path: 'venue',
- component: resolve => require(['../../pcviews/arc/venue.vue'], resolve),
- meta: {
- title: '校内场馆'
- }
- },
- {
- path: 'dorm',
- component: resolve => require(['../../pcviews/arc/dorm.vue'], resolve),
- meta: {
- title: '学生宿舍'
- }
- }, {
- path: 'culture',
- component: resolve => require(['../../pcviews/arc/culture.vue'], resolve),
- meta: {
- title: '文化风景'
- }
- },
- {
- path: 'family',
- component: resolve => require(['../../pcviews/arc/family.vue'], resolve),
- meta: {
- title: '家属住宅'
- }
- }, {
- path: 'rest',
- component: resolve => require(['../../pcviews/arc/rest.vue'], resolve),
- meta: {
- title: '其他楼宇'
- }
- }
- ]
- },
- {
- path: 'service',
- component: resolve => require(['../../pcviews/service/index.vue'], resolve),
- meta: {
- title: '生活服务设施'
- }
- },
- {
- path: 'allquery',
- component: resolve => require(['../../pcviews/allquery/index.vue'], resolve),
- meta: {
- title: '综合查询'
- }
- },
- {
- path: 'campusnav',
- component: resolve => require(['../../pcviews/campusnav/index.vue'], resolve),
- meta: {
- title: '校园导览'
- }
- },
- {
- path: 'campusnavi',
- component: resolve => require(['../../pcviews/campusnavi/index.vue'], resolve),
- meta: {
- title: '校园导航'
- }
- },
- {
- path: 'specialmap',
- component: resolve => require(['../../pcviews/specialmap/index.vue'], resolve),
- meta: {
- title: '专题地图'
- }
- },
- {
- path: 'tool',
- component: resolve => require(['../../pcviews/tool/index.vue'], resolve),
- meta: {
- title: '工具'
- },
- children: [{
- path: 'download',
- component: resolve => require(['../../pcviews/tool/download.vue'], resolve),
- meta: {
- title: '地图下载'
- }
- }, {
- path: 'sign',
- component: resolve => require(['../../pcviews/tool/sign.vue'], resolve),
- meta: {
- title: '地图标记'
- }
- },
- {
- path: 'ranging',
- component: resolve => require(['../../pcviews/tool/ranging.vue'], resolve),
- meta: {
- title: '地图测距'
- }
- }
- ]
+ path: 'mapnav',
+ component: resolve => require(['../../pcviews/mapnav/index.vue'], resolve),
+ meta: {
+ title: '地图导览'
}
+ },
+ {
+ path: 'orgnav',
+ component: resolve => require(['../../pcviews/orgnav/index.vue'], resolve),
+ meta: {
+ title: '校内机构导览'
+ },
+ children: [{
+ path: 'masses',
+ component: resolve => require(['../../pcviews/orgnav/masses.vue'], resolve),
+ meta: {
+ title: '党群机构'
+ }
+ },
+ {
+ path: 'ofc',
+ component: resolve => require(['../../pcviews/orgnav/ofc.vue'], resolve),
+ meta: {
+ title: '职能部处'
+ }
+ }, {
+ path: 'directly',
+ component: resolve => require(['../../pcviews/orgnav/directly.vue'], resolve),
+ meta: {
+ title: '直属及附属单位'
+ }
+ },
+ {
+ path: 'teaching',
+ component: resolve => require(['../../pcviews/orgnav/teaching.vue'], resolve),
+ meta: {
+ title: '教学与科研机构'
+ }
+ }, {
+ path: 'rest',
+ component: resolve => require(['../../pcviews/orgnav/rest.vue'], resolve),
+ meta: {
+ title: '其他机构'
+ }
+ }
+ ]
+ },
+ {
+ path: 'arc',
+ component: resolve => require(['../../pcviews/arc/index.vue'], resolve),
+ meta: {
+ title: '校内建筑'
+ },
+ children: [{
+ path: 'edifact',
+ component: resolve => require(['../../pcviews/arc/edifact.vue'], resolve),
+ meta: {
+ title: '行政办公'
+ }
+ },
+ {
+ path: 'teaching',
+ component: resolve => require(['../../pcviews/arc/teaching.vue'], resolve),
+ meta: {
+ title: '教学科研'
+ }
+ }, {
+ path: 'venue',
+ component: resolve => require(['../../pcviews/arc/venue.vue'], resolve),
+ meta: {
+ title: '校内场馆'
+ }
+ },
+ {
+ path: 'dorm',
+ component: resolve => require(['../../pcviews/arc/dorm.vue'], resolve),
+ meta: {
+ title: '学生宿舍'
+ }
+ }, {
+ path: 'culture',
+ component: resolve => require(['../../pcviews/arc/culture.vue'], resolve),
+ meta: {
+ title: '文化风景'
+ }
+ },
+ {
+ path: 'family',
+ component: resolve => require(['../../pcviews/arc/family.vue'], resolve),
+ meta: {
+ title: '家属住宅'
+ }
+ }, {
+ path: 'rest',
+ component: resolve => require(['../../pcviews/arc/rest.vue'], resolve),
+ meta: {
+ title: '其他楼宇'
+ }
+ }
+ ]
+ },
+ {
+ path: 'service',
+ component: resolve => require(['../../pcviews/service/index.vue'], resolve),
+ meta: {
+ title: '生活服务设施'
+ }
+ },
+ {
+ path: 'allquery',
+ component: resolve => require(['../../pcviews/allquery/index.vue'], resolve),
+ meta: {
+ title: '综合查询'
+ }
+ },
+ {
+ path: 'campusnav',
+ component: resolve => require(['../../pcviews/campusnav/index.vue'], resolve),
+ meta: {
+ title: '校园导览'
+ }
+ },
+ {
+ path: 'campusnavi',
+ component: resolve => require(['../../pcviews/campusnavi/index.vue'], resolve),
+ meta: {
+ title: '校园导航'
+ }
+ },
+ {
+ path: 'specialmap',
+ component: resolve => require(['../../pcviews/specialmap/index.vue'], resolve),
+ meta: {
+ title: '专题地图'
+ }
+ },
+ {
+ path: 'tool',
+ component: resolve => require(['../../pcviews/tool/index.vue'], resolve),
+ meta: {
+ title: '工具'
+ },
+ children: [{
+ path: 'download',
+ component: resolve => require(['../../pcviews/tool/download.vue'], resolve),
+ meta: {
+ title: '地图下载'
+ }
+ }, {
+ path: 'sign',
+ component: resolve => require(['../../pcviews/tool/sign.vue'], resolve),
+ meta: {
+ title: '地图标记'
+ }
+ },
+ {
+ path: 'ranging',
+ component: resolve => require(['../../pcviews/tool/ranging.vue'], resolve),
+ meta: {
+ title: '地图测距'
+ }
+ }
+ ]
+ }
]
}]
},
// 手机端
{
path: '/mobileLayout',
- component: resolve => require(['../../mobileLayout/index.vue'], resolve)
+ redirect: '/mobileLayout/default',
+ meta: {
+ title: '导航菜单'
+ },
+ component: resolve => require(['../../mobileLayout/index.vue'], resolve),
+ children: [{
+ path: 'default',
+ component: resolve => require(['../../mobileviews/home/index.vue'], resolve),
+ meta: {
+ title: '系统首页'
+ }
+ }]
},
{
path: '/403',
diff --git a/src/store/getters.js b/src/store/getters.js
index 6326ba0..ce81db6 100644
--- a/src/store/getters.js
+++ b/src/store/getters.js
@@ -1,4 +1,5 @@
const getters = {
- viewer: state => state.viewer.viewer
+ viewer: state => state.viewer.viewer,
+ mviewer: state => state.mobile.mviewer
}
export default getters
diff --git a/src/store/index.js b/src/store/index.js
index 86e50e6..a9d862c 100644
--- a/src/store/index.js
+++ b/src/store/index.js
@@ -2,13 +2,14 @@
import Vuex from 'vuex'
import viewer from './modules/viewer'
+import mobile from './modules/mobile'
import getters from './getters'
Vue.use(Vuex)
const store = new Vuex.Store({
modules: {
- viewer
+ viewer, mobile
},
getters
})
diff --git a/src/store/modules/mobile.js b/src/store/modules/mobile.js
new file mode 100644
index 0000000..7933a3c
--- /dev/null
+++ b/src/store/modules/mobile.js
@@ -0,0 +1,16 @@
+const mobile = {
+ state: {
+ mviewer: null
+ },
+ mutations: {
+ MSET_VIEWER(state, viewer) {
+ // console.log(viewer, 456)
+ state.mviewer = viewer
+ }
+ },
+ actions: {
+
+ }
+}
+
+export default mobile
--
Gitblit v1.9.3