From 65f4b3f007fe452dc2dcc0045577f1cd10dd4e06 Mon Sep 17 00:00:00 2001
From: shuishen <1109946754@qq.com>
Date: Wed, 30 Oct 2024 11:18:20 +0800
Subject: [PATCH] 工具栏,菜单,等更改
---
src/views/space/index.vue | 0
src/views/supplies/index.vue | 0
src/views/layout/components/scomponents/tool/location.vue | 92 +++++++
src/utils/http.js | 1
src/views/equipment/components/box/fireTrend.vue | 0
src/views/supplies/components/box/occurStatistics.vue | 0
src/views/space/components/box/unitContent.vue | 0
src/views/pac/components/box/fireSource.vue | 0
src/views/supplies/components/rightContainer.vue | 28 +
pnpm-lock.yaml | 12
src/assets/img/stand.png | 0
src/views/space/components/box/fireContent.vue | 0
src/views/supplies/components/box/fireSource.vue | 0
public/images/header.png | 0
src/views/pac/components/rightContainer.vue | 28 +
vite.config.js | 6
src/views/supplies/components/box/publicContent.vue | 0
src/views/equipment/index.vue | 0
src/assets/img/satellite.png | 0
src/views/pac/index.vue | 0
src/views/supplies/components/leftContainer.vue | 0
src/views/layout/components/scomponents/toolList.vue | 132 ++++++++++
src/views/pac/components/box/fireTrend.vue | 0
src/views/supplies/components/box/unitContent.vue | 0
src/router/index.js | 30 +
src/views/equipment/components/box/dataContent.vue | 0
src/views/space/components/box/fireSource.vue | 0
src/views/supplies/components/box/fireContent.vue | 0
src/views/equipment/components/box/fireSource.vue | 0
src/views/space/components/box/occurStatistics.vue | 0
src/views/layout/components/scomponents/tool/exportScene.vue | 12
src/views/pac/components/box/dataContent.vue | 0
src/views/equipment/components/box/occurStatistics.vue | 0
src/views/supplies/components/box/fireTrend.vue | 0
src/views/equipment/components/box/fireContent.vue | 0
src/views/pac/components/box/unitContent.vue | 0
src/views/pac/components/box/publicContent.vue | 0
src/views/space/components/leftContainer.vue | 0
src/views/layout/components/mainMenu.vue | 16
src/utils/getViewer.js | 16 +
src/utils/utils.js | 15 +
src/views/layout/components/mainTool.vue | 56 +---
src/views/space/components/box/publicContent.vue | 0
src/views/equipment/components/leftContainer.vue | 0
src/views/supplies/components/box/dataContent.vue | 0
src/views/space/components/rightContainer.vue | 28 +
src/views/equipment/components/box/publicContent.vue | 0
src/views/space/components/box/fireTrend.vue | 0
src/views/equipment/components/rightContainer.vue | 28 +
src/styles/base/container.scss | 4
src/views/pac/components/box/fireContent.vue | 0
/dev/null | 30 --
src/components/global/publicBox.vue | 59 ++++
src/views/pac/components/box/occurStatistics.vue | 0
package.json | 1
src/views/equipment/components/box/unitContent.vue | 0
src/views/layout/components/scomponents/baseMap.vue | 155 ++++++-----
src/views/pac/components/leftContainer.vue | 0
src/views/space/components/box/dataContent.vue | 0
59 files changed, 547 insertions(+), 202 deletions(-)
diff --git a/package.json b/package.json
index 77689ff..f79ce45 100644
--- a/package.json
+++ b/package.json
@@ -25,6 +25,7 @@
"vue-router": "^4.4.5"
},
"devDependencies": {
+ "@vitejs/plugin-basic-ssl": "^1.1.0",
"@vitejs/plugin-vue": "^5.1.4",
"sass": "^1.80.4",
"sass-loader": "^16.0.2",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 81fa315..afc4342 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -40,6 +40,9 @@
version: 4.4.5(vue@3.5.12)
devDependencies:
+ '@vitejs/plugin-basic-ssl':
+ specifier: ^1.1.0
+ version: 1.1.0(vite@5.4.10)
'@vitejs/plugin-vue':
specifier: ^5.1.4
version: 5.1.4(vite@5.4.10)(vue@3.5.12)
@@ -717,6 +720,15 @@
resolution: {integrity: sha512-oh8q2Zc32S6gd/j50GowEjKLoOVOwHP/bWVjKJInBwQqdOYMdPrf1oVlelTlyfFK3CKxL1uahMDAr+vy8T7yMQ==}
dev: false
+ /@vitejs/plugin-basic-ssl@1.1.0(vite@5.4.10):
+ resolution: {integrity: sha512-wO4Dk/rm8u7RNhOf95ZzcEmC9rYOncYgvq4z3duaJrCgjN8BxAnDVyndanfcJZ0O6XZzHz6Q0hTimxTg8Y9g/A==}
+ engines: {node: '>=14.6.0'}
+ peerDependencies:
+ vite: ^3.0.0 || ^4.0.0 || ^5.0.0
+ dependencies:
+ vite: 5.4.10(sass@1.80.4)(terser@5.31.1)
+ dev: true
+
/@vitejs/plugin-vue@5.1.4(vite@5.4.10)(vue@3.5.12):
resolution: {integrity: sha512-N2XSI2n3sQqp5w7Y/AN/L2XDjBIRGqXko+eDp42sydYSBeJuSm5a1sLf8zakmo8u7tA8NmBgoDLA1HeOESjp9A==}
engines: {node: ^18.0.0 || >=20.0.0}
diff --git a/public/images/header.png b/public/images/header.png
index cf41b4c..7ba2250 100644
--- a/public/images/header.png
+++ b/public/images/header.png
Binary files differ
diff --git a/src/assets/img/satellite.png b/src/assets/img/satellite.png
new file mode 100644
index 0000000..8808789
--- /dev/null
+++ b/src/assets/img/satellite.png
Binary files differ
diff --git a/src/assets/img/stand.png b/src/assets/img/stand.png
new file mode 100644
index 0000000..bb86b66
--- /dev/null
+++ b/src/assets/img/stand.png
Binary files differ
diff --git a/src/components/global/publicBox.vue b/src/components/global/publicBox.vue
new file mode 100644
index 0000000..1f8ca2f
--- /dev/null
+++ b/src/components/global/publicBox.vue
@@ -0,0 +1,59 @@
+<!--
+ * @Author: shuishen 1109946754@qq.com
+ * @Date: 2024-10-29 13:33:11
+ * @LastEditors: shuishen 1109946754@qq.com
+ * @LastEditTime: 2024-10-29 19:58:45
+ * @FilePath: \bigScreen\src\components\global\publicBox.vue
+ * @Description:
+ *
+ * Copyright (c) 2024 by shuishen, All Rights Reserved.
+-->
+<template>
+ <div class="map-layers-change-box">
+ <div class="title">
+ <slot name="name"></slot>
+ <slot name="close"></slot>
+ </div>
+
+ <div class="content">
+ <slot name="content"></slot>
+ </div>
+ </div>
+</template>
+
+<script setup>
+
+</script>
+
+<script>
+export default {
+ name: 'publicBox'
+}
+</script>
+
+<style lang="scss" scoped>
+.map-layers-change-box {
+ position: absolute;
+ right: 540px;
+ z-index: 99;
+ top: 152px;
+ border: 1px solid #4081CB;
+ border-radius: 4px;
+ background: rgba(30, 36, 50, 0.6);
+ box-shadow: inset 0px 3px 7px 0px rgba(42, 138, 236, 0.95);
+ pointer-events: auto;
+ color: #fff;
+
+ .title {
+ display: flex;
+ justify-content: space-between;
+ padding: 0 10px;
+ border-bottom: 1px solid;
+ border-color: rgba(32, 160, 255, 0.3);
+ height: 40px;
+ line-height: 40px;
+ color: #FFFFFF;
+ font-size: 16px;
+ }
+}
+</style>
\ No newline at end of file
diff --git a/src/router/index.js b/src/router/index.js
index 887aef7..0ff1b79 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -2,7 +2,7 @@
* @Author: shuishen 1109946754@qq.com
* @Date: 2024-10-25 16:35:31
* @LastEditors: shuishen 1109946754@qq.com
- * @LastEditTime: 2024-10-25 19:13:08
+ * @LastEditTime: 2024-10-29 17:48:52
* @FilePath: \bigScreen\src\router\index.js
* @Description:
*
@@ -24,23 +24,37 @@
{
path: 'survey',
meta: {
- title: 'survey'
+ title: '园区概况'
},
component: () => import('@/views/survey/index.vue')
},
{
- path: 'env',
+ path: 'space',
meta: {
- title: '环境监测'
+ title: '应急空间'
},
- component: () => import('@/views/env/index.vue')
+ component: () => import('@/views/space/index.vue')
},
{
- path: 'monitoring',
+ path: 'supplies',
meta: {
- title: '视频监控'
+ title: '应急物资'
},
- component: () => import('@/views/monitoring/index.vue')
+ component: () => import('@/views/supplies/index.vue')
+ },
+ {
+ path: 'equipment',
+ meta: {
+ title: '应急设备'
+ },
+ component: () => import('@/views/equipment/index.vue')
+ },
+ {
+ path: 'pac',
+ meta: {
+ title: '三级防控'
+ },
+ component: () => import('@/views/pac/index.vue')
}
]
},
diff --git a/src/styles/base/container.scss b/src/styles/base/container.scss
index 9fd9263..21c003e 100644
--- a/src/styles/base/container.scss
+++ b/src/styles/base/container.scss
@@ -13,4 +13,8 @@
#app {
width: 100%;
height: 100%;
+}
+
+.cursor-p {
+ cursor: pointer;
}
\ No newline at end of file
diff --git a/src/utils/getViewer.js b/src/utils/getViewer.js
new file mode 100644
index 0000000..280e41a
--- /dev/null
+++ b/src/utils/getViewer.js
@@ -0,0 +1,16 @@
+/*
+ * @Author: shuishen 1109946754@qq.com
+ * @Date: 2024-10-29 15:30:08
+ * @LastEditors: shuishen 1109946754@qq.com
+ * @LastEditTime: 2024-10-29 15:31:44
+ * @FilePath: \bigScreen\src\utils\getViewer.js
+ * @Description:
+ *
+ * Copyright (c) 2024 by shuishen, All Rights Reserved.
+ */
+export const getViewer = () => {
+ const { appContext } = getCurrentInstance()
+ const global = appContext.config.globalProperties
+
+ return global.$viewer
+}
\ No newline at end of file
diff --git a/src/utils/http.js b/src/utils/http.js
index 804c9be..7c162c2 100644
--- a/src/utils/http.js
+++ b/src/utils/http.js
@@ -38,6 +38,7 @@
//http request拦截
axios.interceptors.request.use(
config => {
+ console.log(config, '906456456465')
// start progress bar
NProgress.start()
// 初始化错误提示状态
diff --git a/src/utils/initMap.js b/src/utils/initMap.js
deleted file mode 100644
index 3c6cb06..0000000
--- a/src/utils/initMap.js
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * @Author: shuishen 1109946754@qq.com
- * @Date: 2024-10-25 15:09:55
- * @LastEditors: shuishen 1109946754@qq.com
- * @LastEditTime: 2024-10-28 12:02:38
- * @FilePath: \bigScreen\src\utils\initMap.js
- * @Description:
- *
- * Copyright (c) 2024 by shuishen, All Rights Reserved.
- */
-import { reactive } from "vue"
-
-let viewer = reactive(null)
-const { VITE_APP_BASE } = import.meta.env
-
-function initViewer () {
- viewer = new DC.Viewer('viewer-container')
-
- console.log(viewer, window, 1111)
-}
-
-export function readyViewer () {
- DC.ready({
- baseUrl: `${VITE_APP_BASE}/libs/dc-sdk/resources/`
- }).then(initViewer)
-}
-
-export function getViewer () {
- return viewer
-}
\ No newline at end of file
diff --git a/src/utils/utils.js b/src/utils/utils.js
new file mode 100644
index 0000000..99f75e2
--- /dev/null
+++ b/src/utils/utils.js
@@ -0,0 +1,15 @@
+/*
+ * @Author: shuishen 1109946754@qq.com
+ * @Date: 2024-10-29 19:46:37
+ * @LastEditors: shuishen 1109946754@qq.com
+ * @LastEditTime: 2024-10-29 19:50:09
+ * @FilePath: \bigScreen\src\utils\utils.js
+ * @Description:
+ *
+ * Copyright (c) 2024 by shuishen, All Rights Reserved.
+ */
+// 获取assets静态资源
+export const getAssetsFile = (url) => {
+ console.log(import.meta.url, 1222222)
+ return new URL(`../assets/img/${url}`, import.meta.url).href
+}
\ No newline at end of file
diff --git a/src/views/env/components/box/dataContent.vue b/src/views/equipment/components/box/dataContent.vue
similarity index 100%
copy from src/views/env/components/box/dataContent.vue
copy to src/views/equipment/components/box/dataContent.vue
diff --git a/src/views/env/components/box/fireContent.vue b/src/views/equipment/components/box/fireContent.vue
similarity index 100%
copy from src/views/env/components/box/fireContent.vue
copy to src/views/equipment/components/box/fireContent.vue
diff --git a/src/views/env/components/box/fireSource.vue b/src/views/equipment/components/box/fireSource.vue
similarity index 100%
copy from src/views/env/components/box/fireSource.vue
copy to src/views/equipment/components/box/fireSource.vue
diff --git a/src/views/env/components/box/fireTrend.vue b/src/views/equipment/components/box/fireTrend.vue
similarity index 100%
copy from src/views/env/components/box/fireTrend.vue
copy to src/views/equipment/components/box/fireTrend.vue
diff --git a/src/views/env/components/box/occurStatistics.vue b/src/views/equipment/components/box/occurStatistics.vue
similarity index 100%
copy from src/views/env/components/box/occurStatistics.vue
copy to src/views/equipment/components/box/occurStatistics.vue
diff --git a/src/views/env/components/box/publicContent.vue b/src/views/equipment/components/box/publicContent.vue
similarity index 100%
copy from src/views/env/components/box/publicContent.vue
copy to src/views/equipment/components/box/publicContent.vue
diff --git a/src/views/env/components/box/unitContent.vue b/src/views/equipment/components/box/unitContent.vue
similarity index 100%
copy from src/views/env/components/box/unitContent.vue
copy to src/views/equipment/components/box/unitContent.vue
diff --git a/src/views/env/components/leftContainer.vue b/src/views/equipment/components/leftContainer.vue
similarity index 100%
copy from src/views/env/components/leftContainer.vue
copy to src/views/equipment/components/leftContainer.vue
diff --git a/src/views/env/components/rightContainer.vue b/src/views/equipment/components/rightContainer.vue
similarity index 73%
rename from src/views/env/components/rightContainer.vue
rename to src/views/equipment/components/rightContainer.vue
index 8e8592b..67eb54e 100644
--- a/src/views/env/components/rightContainer.vue
+++ b/src/views/equipment/components/rightContainer.vue
@@ -2,8 +2,8 @@
* @Author: shuishen 1109946754@qq.com
* @Date: 2023-03-10 15:27:59
* @LastEditors: shuishen 1109946754@qq.com
- * @LastEditTime: 2024-10-25 18:41:28
- * @FilePath: \bigScreen\src\views\statistics\components\rightContainer.vue
+ * @LastEditTime: 2024-10-26 14:49:05
+ * @FilePath: \bigScreen\src\views\survey\components\rightContainer.vue
* @Description:
*
* Copyright (c) 2023 by ${git_name_email}, All Rights Reserved.
@@ -18,23 +18,29 @@
<template>
<div class="right-container">
<div class="fire-source box">
- <div class="title-box">
- 火警事件来源
- </div>
+ <title-box>
+ <template #titleName>
+ 火警事件来源
+ </template>
+ </title-box>
<fire-source></fire-source>
</div>
<div class="occur-statistics box">
- <div class="title-box">
- 易发区统计
- </div>
+ <title-box>
+ <template #titleName>
+ 易发区统计
+ </template>
+ </title-box>
<fire-trend></fire-trend>
</div>
<div class="fire-trend box">
- <div class="title-box">
- 火警上报趋势
- </div>
+ <title-box>
+ <template #titleName>
+ 火警上报趋势
+ </template>
+ </title-box>
<occur-statistics></occur-statistics>
</div>
</div>
diff --git a/src/views/env/index.vue b/src/views/equipment/index.vue
similarity index 100%
copy from src/views/env/index.vue
copy to src/views/equipment/index.vue
diff --git a/src/views/layout/components/mainMenu.vue b/src/views/layout/components/mainMenu.vue
index 84576eb..5078cde 100644
--- a/src/views/layout/components/mainMenu.vue
+++ b/src/views/layout/components/mainMenu.vue
@@ -22,12 +22,20 @@
path: '/layout/survey'
},
{
- menuName: '环境监测',
- path: '/layout/env'
+ menuName: '应急空间',
+ path: '/layout/space'
},
{
- menuName: '视频监控',
- path: '/layout/monitoring'
+ menuName: '应急物资',
+ path: '/layout/supplies'
+ },
+ {
+ menuName: '应急设备',
+ path: '/layout/equipment'
+ },
+ {
+ menuName: '三级防控',
+ path: '/layout/pac'
},
]
)
diff --git a/src/views/layout/components/mainTool.vue b/src/views/layout/components/mainTool.vue
index 50c0a70..2ae6bdc 100644
--- a/src/views/layout/components/mainTool.vue
+++ b/src/views/layout/components/mainTool.vue
@@ -6,53 +6,17 @@
</el-button>
</div>
- <base-map v-show="showBaseMap" @close="closeBaseMap"></base-map>
+ <base-map v-show="showBaseMap" @close="closeBox"></base-map>
- <ul v-show="moreToolShow" class="dropdown-menu dropdown-menu-right toolBarRight-dropdown-menu" style="">
- <li class="widget-btn" data-widget="widgets/measure/widget.js">
- <a href="javascript:void(0)"><i class="fa fa-calculator"></i>图上量算</a>
- </li>
- <li class="widget-btn" data-widget="widgets/analysis/widget.js">
- <a href="javascript:void(0)"><i class="fa fa-bar-chart"></i>空间分析</a>
- </li>
- <li class="widget-btn" data-widget="widgets/centerXY/widget.js">
- <a href="javascript:void(0)"><i class="fa fa-map-pin"></i>坐标定位</a>
- </li>
- <li class="widget-btn" data-widget="widgets/navXZQH/widget.js">
- <a href="javascript:void(0)"><i class="fa fa-paper-plane"></i>地区导航</a>
- </li>
- <li class="widget-btn" data-widget="widgets/addmarker/widget.js">
- <a href="javascript:void(0)"><i class="fa fa-edit"></i>我的标记</a>
- </li>
- <li class="widget-btn" data-widget="widgets/bookmark/widget.js">
- <a href="javascript:void(0)"><i class="fa fa-tags"></i>视角书签</a>
- </li>
- <li class="widget-btn" data-widget="widgets/print/widget.js">
- <a href="javascript:void(0)"><i class="fa fa-print"></i>地图打印</a>
- </li>
- <li class="widget-btn" data-widget="widgets/plot/widget.js">
- <a href="javascript:void(0)"><i class="fa fa-object-group"></i>图上标绘</a>
- </li>
- <li class="widget-btn" data-widget="widgets/roamLine/widget.js">
- <a href="javascript:void(0)"><i class="fa fa-send-o"></i>飞行漫游</a>
- </li>
- <li class="widget-btn" data-widget="widgets/queryRoute/widget.js">
- <a href="javascript:void(0)"><i class="fa fa-level-up"></i>路线导航</a>
- </li>
- <li class="widget-btn" data-widget="widgets/mapSplit/widget.js">
- <a href="javascript:void(0)"><i class="fa fa-columns"></i>卷帘对比</a>
- </li>
- <li class="widget-btn" data-widget="widgets/mapCompare/widget.js">
- <a href="javascript:void(0)"><i class="fa fa-window-restore"></i>分屏对比</a>
- </li>
- </ul>
+ <tool-list :moreToolShow="moreToolShow" @close="closeBox"></tool-list>
</template>
<script setup>
import baseMap from './scomponents/baseMap.vue'
-let moreToolShow = ref(false)
+import toolList from './scomponents/toolList.vue'
let showBaseMap = ref(false)
+let moreToolShow = ref(false)
const btnGroup = [
{
@@ -76,11 +40,19 @@
if (item.key == 'map') {
showBaseMap.value = !showBaseMap.value
- moreToolShow.value = false
+
+ }
+
+ if (item.key == 'tool') {
+ moreToolShow.value = !moreToolShow.value
}
}
-const closeBaseMap = () => showBaseMap.value = false
+const closeBox = (type) => {
+ if (type == 'map') showBaseMap.value = false
+
+ if (type == 'tool') moreToolShow.value = false
+}
</script>
<style lang="scss" scoped>
diff --git a/src/views/layout/components/scomponents/baseMap.vue b/src/views/layout/components/scomponents/baseMap.vue
index 85430ef..7d5f699 100644
--- a/src/views/layout/components/scomponents/baseMap.vue
+++ b/src/views/layout/components/scomponents/baseMap.vue
@@ -2,20 +2,23 @@
* @Author: shuishen 1109946754@qq.com
* @Date: 2024-10-28 11:44:45
* @LastEditors: shuishen 1109946754@qq.com
- * @LastEditTime: 2024-10-29 00:05:47
+ * @LastEditTime: 2024-10-29 20:50:40
* @FilePath: \bigScreen\src\views\layout\components\scomponents\baseMap.vue
* @Description:
*
* Copyright (c) 2024 by shuishen, All Rights Reserved.
-->
<template>
- <div class="map-layers-change-box">
- <div class="title">
+ <public-box>
+ <template #name>
<div class="name"><i class="fa fa-map"></i> 底图</div>
- <div class="close" @click="$emit('close')"><i class="fa fa-close"></i></div>
- </div>
+ </template>
- <div class="content">
+ <template #close>
+ <div class="close" @click="$emit('close', 'map')"><i class="fa fa-close"></i></div>
+ </template>
+
+ <template #content>
<div class="layers-box-content">
<ul class="layers-box">
<li :class="{ on: item.mode == curMode }" v-for="item, index in baseMaps" :key="index"
@@ -26,18 +29,23 @@
</ul>
</div>
- <div class="checkbox checkbox-primary checkbox-inline" style="margin-left:10px;color:#fff"><input
- id="chkHasTerrain" class="styled" type="checkbox"> <label for="chkHasTerrain">显示地形</label></div>
- </div>
- </div>
+ <div class="show-terrain" style="margin-left:10px;color:#fff">
+ <el-checkbox @change="terrainChange" v-model="showTerrainFlag" label="显示地形" size="large" />
+ </div>
+ </template>
+ </public-box>
</template>
<script setup>
+import { getAssetsFile } from 'utils/utils'
import AmapMercatorTilingScheme from './cesium/AmapMercatorTilingScheme/index'
const { appContext } = getCurrentInstance()
const global = appContext.config.globalProperties
const Cesium = DC.getLib('Cesium')
+const cesiumToken =
+ 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiJkYTZlNGNlYS01NTU1LTQ1MGEtYmNlZS0yNTE2NDk5YWM2MjEiLCJpZCI6MTc5Njk2LCJpYXQiOjE3MDA1NDcwMjV9.qcl4AH2731cfFd0-I1ZLUINPXqvglLkDFD-UGR2zU5M'
+Cesium.Ion.defaultAccessToken = cesiumToken
const TDT_Token = 'c6eea7dad4fa1e2d1e32ec0e7c9735db'
// 天地图Key
@@ -166,7 +174,7 @@
let mapLayers = [
{
- src: '',
+ src: getAssetsFile('stand.png'),
mode: '0',
name: '天地图矢量',
layers: [
@@ -175,7 +183,7 @@
]
},
{
- src: '',
+ src: getAssetsFile('satellite.png'),
mode: '1',
name: '天地图影像',
layers: [
@@ -187,7 +195,7 @@
]
},
{
- src: '',
+ src: getAssetsFile('stand.png'),
mode: '2',
name: '高德矢量',
layers: [
@@ -198,7 +206,7 @@
]
},
{
- src: '',
+ src: getAssetsFile('satellite.png'),
mode: '3',
name: '高德影像',
layers: [
@@ -268,78 +276,79 @@
}
loadLAYER(0, 0)
+
+const showTerrainFlag = ref(false)
+
+const terrainChange = (e) => {
+ if (e) {
+ let terrain = DC.TerrainFactory.createTerrain(DC.TerrainType.XYZ, {
+ url: 'https://data.marsgis.cn/terrain'
+ })
+ global.$viewer.setTerrain(terrain)
+ } else {
+ global.$viewer.setTerrain()
+ }
+}
</script>
<style lang="scss" scoped>
-.map-layers-change-box {
- position: absolute;
- right: 540px;
- z-index: 99;
- top: 152px;
- border: 1px solid #4081CB;
- border-radius: 4px;
- background: rgba(135, 158, 199, 0.3);
- box-shadow: inset 0px 3px 7px 0px rgba(42, 138, 236, 0.95);
- pointer-events: auto;
+.close {
+ cursor: pointer;
+}
- .title {
+.layers-box-content {
+ .layers-box {
display: flex;
justify-content: space-between;
+ flex-wrap: wrap;
+ width: 354px;
padding: 0 10px;
- border-color: rgba(32, 160, 255, 0.3);
- background: rgba(30, 36, 50, 0.6);
- height: 40px;
- line-height: 40px;
- color: #FFFFFF;
- font-size: 16px;
+ box-sizing: border-box;
- .close {
+ li {
+ margin-top: 10px;
cursor: pointer;
- }
- }
- .content {
- .layers-box-content {
- .layers-box {
- display: flex;
- justify-content: space-between;
- flex-wrap: wrap;
- width: 354px;
- padding: 0 10px;
- box-sizing: border-box;
+ &.on,
+ &:hover {
+ div:first-child {
+ border: solid 2px #337fe5;
+ }
- li {
- margin-top: 10px;
- cursor: pointer;
-
- &.on,
- &:hover {
- div:first-child {
- border: solid 2px #337fe5;
- }
-
- div:last-child {
- color: #337fe5;
- }
- }
-
- div:first-child {
- width: 76px;
- height: 76px;
- background: red;
- border: 2px solid white;
- box-sizing: border-box;
- }
-
- div:last-child {
- width: 76px;
- height: 20px;
- line-height: 20px;
- font-size: 12px;
- text-align: center;
- }
+ div:last-child {
+ color: #337fe5;
}
}
+
+ div:first-child {
+ width: 76px;
+ height: 76px;
+ background: red;
+ border: 2px solid white;
+ box-sizing: border-box;
+
+ img {
+ width: 100%;
+ height: 100%;
+ }
+ }
+
+ div:last-child {
+ width: 76px;
+ height: 20px;
+ line-height: 20px;
+ color: #fff;
+ font-size: 12px;
+ text-align: center;
+ }
+ }
+ }
+}
+
+.show-terrain {
+ ::v-deep(.el-checkbox) {
+ .el-checkbox__label {
+ color: #fff;
}
}
}
diff --git a/src/views/layout/components/scomponents/tool/exportScene.vue b/src/views/layout/components/scomponents/tool/exportScene.vue
new file mode 100644
index 0000000..68bd080
--- /dev/null
+++ b/src/views/layout/components/scomponents/tool/exportScene.vue
@@ -0,0 +1,12 @@
+<template>
+</template>
+
+<script setup>
+import { getViewer } from 'utils/getViewer'
+const globalViewer = getViewer()
+globalViewer.exportScene()
+const emit = defineEmits(['closeChild'])
+emit('closeChild')
+</script>
+
+<style lang="scss" scoped></style>
\ No newline at end of file
diff --git a/src/views/layout/components/scomponents/tool/location.vue b/src/views/layout/components/scomponents/tool/location.vue
new file mode 100644
index 0000000..6642fd8
--- /dev/null
+++ b/src/views/layout/components/scomponents/tool/location.vue
@@ -0,0 +1,92 @@
+<!--
+ * @Author: shuishen 1109946754@qq.com
+ * @Date: 2024-10-29 15:48:36
+ * @LastEditors: shuishen 1109946754@qq.com
+ * @LastEditTime: 2024-10-29 19:53:49
+ * @FilePath: \bigScreen\src\views\layout\components\scomponents\tool\location.vue
+ * @Description:
+ *
+ * Copyright (c) 2024 by shuishen, All Rights Reserved.
+-->
+<template>
+ <public-box style="z-index: 100;">
+ <template #name>
+ <div class="name"><i class="fa fa-map-pin"></i> 底图</div>
+ </template>
+
+ <template #close>
+ <div class="close cursor-p" @click="$emit('closeChild')"><i class="fa fa-close"></i></div>
+ </template>
+
+ <template #content>
+ <div class="cur-content">
+ <div>
+ <span>经度:</span>
+ <el-input v-model="longitude" size="small" placeholder="请输入经度" />
+ </div>
+ <div>
+ <span>纬度:</span>
+ <el-input v-model="latitude" size="small" placeholder="请输入纬度" />
+ </div>
+ <div>
+ <span>高度:</span>
+ <el-input v-model="height" size="small" placeholder="请输入高度" />
+ </div>
+ </div>
+
+ <div class="cur-btn">
+ <el-button color="rgba(13,100,167,.8)" @click="flyTo" type="primary" size="small">坐标定位</el-button>
+ </div>
+ </template>
+ </public-box>
+</template>
+
+<script setup>
+const longitude = ref(0)
+const latitude = ref(0)
+const height = ref(0)
+
+import { getViewer } from 'utils/getViewer'
+const globalViewer = getViewer()
+
+const flyTo = () => {
+ globalViewer.flyToPosition(new DC.Position(longitude.value, latitude.value, height.value, 0, -90, 0), () => { }, 3)
+}
+</script>
+
+<style lang="scss" scoped>
+.cur-content {
+ &>div {
+ margin-top: 10px;
+ padding: 0 10px;
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+
+ span {
+ width: 54px;
+ }
+
+ ::v-deep(.el-input) {
+ border: none !important;
+
+ .el-input__wrapper {
+ background: rgba(63, 72, 84, .7) !important;
+ border: none !important;
+ box-shadow: none;
+
+ input {
+ color: #fff;
+ }
+ }
+ }
+ }
+}
+
+.cur-btn {
+ margin: 10px 0;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+}
+</style>
\ No newline at end of file
diff --git a/src/views/layout/components/scomponents/toolList.vue b/src/views/layout/components/scomponents/toolList.vue
new file mode 100644
index 0000000..1ad59ca
--- /dev/null
+++ b/src/views/layout/components/scomponents/toolList.vue
@@ -0,0 +1,132 @@
+<!--
+ * @Author: shuishen 1109946754@qq.com
+ * @Date: 2024-10-29 14:20:49
+ * @LastEditors: shuishen 1109946754@qq.com
+ * @LastEditTime: 2024-10-29 17:21:51
+ * @FilePath: \bigScreen\src\views\layout\components\scomponents\toolList.vue
+ * @Description:
+ *
+ * Copyright (c) 2024 by shuishen, All Rights Reserved.
+-->
+<template>
+ <ul v-show="moreToolShow" class="tool-list-box">
+ <li @click="showComponent(item.component)" v-for="item, index in components" :key="index">
+ <i :class="item.icon"></i> {{ item.title }}
+ </li>
+ </ul>
+
+ <component :is="currentComponent" v-if="currentComponent" @closeChild="closeComponent" />
+</template>
+
+<script setup>
+const { moreToolShow } = defineProps({
+ moreToolShow: {
+ type: Boolean, //参数类型
+ default: false, //默认值
+ required: true, //是否必须传递
+ }
+})
+import location from './tool/location.vue'
+import exportScene from './tool/exportScene.vue'
+import { getViewer } from 'utils/getViewer'
+import component from 'element-plus/es/components/tree-select/src/tree-select-option.mjs'
+const emit = defineEmits(['close'])
+const globalViewer = getViewer()
+
+let currentComponent = shallowRef(null)
+const components = [
+ {
+ icon: 'fa fa-calculator',
+ title: '图上量算',
+ },
+ {
+ icon: 'fa fa-bar-chart',
+ title: '空间分析',
+ },
+ {
+ name: 'location',
+ icon: 'fa fa-map-pin',
+ title: '坐标定位',
+ component: location
+ },
+ {
+ icon: 'fa fa-paper-plane',
+ title: '地区导航',
+ },
+ {
+ icon: 'fa fa-edit',
+ title: '我的标记',
+ },
+ {
+ icon: 'fa fa-tags',
+ title: '视角书签',
+ },
+ {
+ name: 'exportScene',
+ icon: 'fa fa-download',
+ title: '场景导出',
+ component: exportScene
+ },
+ {
+ icon: 'fa fa-object-group',
+ title: '图上标绘',
+ },
+ {
+ icon: 'fa fa-helicopter',
+ title: '飞行漫游',
+ },
+ {
+ icon: 'fa fa-level-up',
+ title: '路线导航',
+ },
+ {
+ icon: 'fa fa-columns',
+ title: '卷帘对比',
+ },
+ {
+ icon: 'fa fa-window-restore',
+ title: '分屏对比',
+ },
+]
+
+const showComponent = (component) => {
+ currentComponent.value = component
+ emit('close', 'tool')
+}
+
+const closeComponent = () => {
+ currentComponent.value = null
+}
+</script>
+
+<style lang="scss" scoped>
+.tool-list-box {
+ position: absolute;
+ right: 540px;
+ z-index: 101;
+ top: 152px;
+ background: rgba(63, 72, 84, .7);
+ pointer-events: auto;
+
+ li {
+ padding: 6px 10px;
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ color: #fff;
+ cursor: pointer;
+
+ i {
+ margin-right: 5px;
+ }
+ }
+
+ li:hover {
+ background: #4db3ff;
+ }
+
+ li:first-child {
+ margin-top: 0;
+ }
+}
+</style>
\ No newline at end of file
diff --git a/src/views/env/components/box/dataContent.vue b/src/views/pac/components/box/dataContent.vue
similarity index 100%
rename from src/views/env/components/box/dataContent.vue
rename to src/views/pac/components/box/dataContent.vue
diff --git a/src/views/env/components/box/fireContent.vue b/src/views/pac/components/box/fireContent.vue
similarity index 100%
rename from src/views/env/components/box/fireContent.vue
rename to src/views/pac/components/box/fireContent.vue
diff --git a/src/views/env/components/box/fireSource.vue b/src/views/pac/components/box/fireSource.vue
similarity index 100%
rename from src/views/env/components/box/fireSource.vue
rename to src/views/pac/components/box/fireSource.vue
diff --git a/src/views/env/components/box/fireTrend.vue b/src/views/pac/components/box/fireTrend.vue
similarity index 100%
rename from src/views/env/components/box/fireTrend.vue
rename to src/views/pac/components/box/fireTrend.vue
diff --git a/src/views/env/components/box/occurStatistics.vue b/src/views/pac/components/box/occurStatistics.vue
similarity index 100%
rename from src/views/env/components/box/occurStatistics.vue
rename to src/views/pac/components/box/occurStatistics.vue
diff --git a/src/views/env/components/box/publicContent.vue b/src/views/pac/components/box/publicContent.vue
similarity index 100%
rename from src/views/env/components/box/publicContent.vue
rename to src/views/pac/components/box/publicContent.vue
diff --git a/src/views/env/components/box/unitContent.vue b/src/views/pac/components/box/unitContent.vue
similarity index 100%
rename from src/views/env/components/box/unitContent.vue
rename to src/views/pac/components/box/unitContent.vue
diff --git a/src/views/env/components/leftContainer.vue b/src/views/pac/components/leftContainer.vue
similarity index 100%
rename from src/views/env/components/leftContainer.vue
rename to src/views/pac/components/leftContainer.vue
diff --git a/src/views/env/components/rightContainer.vue b/src/views/pac/components/rightContainer.vue
similarity index 73%
copy from src/views/env/components/rightContainer.vue
copy to src/views/pac/components/rightContainer.vue
index 8e8592b..67eb54e 100644
--- a/src/views/env/components/rightContainer.vue
+++ b/src/views/pac/components/rightContainer.vue
@@ -2,8 +2,8 @@
* @Author: shuishen 1109946754@qq.com
* @Date: 2023-03-10 15:27:59
* @LastEditors: shuishen 1109946754@qq.com
- * @LastEditTime: 2024-10-25 18:41:28
- * @FilePath: \bigScreen\src\views\statistics\components\rightContainer.vue
+ * @LastEditTime: 2024-10-26 14:49:05
+ * @FilePath: \bigScreen\src\views\survey\components\rightContainer.vue
* @Description:
*
* Copyright (c) 2023 by ${git_name_email}, All Rights Reserved.
@@ -18,23 +18,29 @@
<template>
<div class="right-container">
<div class="fire-source box">
- <div class="title-box">
- 火警事件来源
- </div>
+ <title-box>
+ <template #titleName>
+ 火警事件来源
+ </template>
+ </title-box>
<fire-source></fire-source>
</div>
<div class="occur-statistics box">
- <div class="title-box">
- 易发区统计
- </div>
+ <title-box>
+ <template #titleName>
+ 易发区统计
+ </template>
+ </title-box>
<fire-trend></fire-trend>
</div>
<div class="fire-trend box">
- <div class="title-box">
- 火警上报趋势
- </div>
+ <title-box>
+ <template #titleName>
+ 火警上报趋势
+ </template>
+ </title-box>
<occur-statistics></occur-statistics>
</div>
</div>
diff --git a/src/views/env/index.vue b/src/views/pac/index.vue
similarity index 100%
rename from src/views/env/index.vue
rename to src/views/pac/index.vue
diff --git a/src/views/env/components/box/dataContent.vue b/src/views/space/components/box/dataContent.vue
similarity index 100%
copy from src/views/env/components/box/dataContent.vue
copy to src/views/space/components/box/dataContent.vue
diff --git a/src/views/env/components/box/fireContent.vue b/src/views/space/components/box/fireContent.vue
similarity index 100%
copy from src/views/env/components/box/fireContent.vue
copy to src/views/space/components/box/fireContent.vue
diff --git a/src/views/env/components/box/fireSource.vue b/src/views/space/components/box/fireSource.vue
similarity index 100%
copy from src/views/env/components/box/fireSource.vue
copy to src/views/space/components/box/fireSource.vue
diff --git a/src/views/env/components/box/fireTrend.vue b/src/views/space/components/box/fireTrend.vue
similarity index 100%
copy from src/views/env/components/box/fireTrend.vue
copy to src/views/space/components/box/fireTrend.vue
diff --git a/src/views/env/components/box/occurStatistics.vue b/src/views/space/components/box/occurStatistics.vue
similarity index 100%
copy from src/views/env/components/box/occurStatistics.vue
copy to src/views/space/components/box/occurStatistics.vue
diff --git a/src/views/env/components/box/publicContent.vue b/src/views/space/components/box/publicContent.vue
similarity index 100%
copy from src/views/env/components/box/publicContent.vue
copy to src/views/space/components/box/publicContent.vue
diff --git a/src/views/env/components/box/unitContent.vue b/src/views/space/components/box/unitContent.vue
similarity index 100%
copy from src/views/env/components/box/unitContent.vue
copy to src/views/space/components/box/unitContent.vue
diff --git a/src/views/env/components/leftContainer.vue b/src/views/space/components/leftContainer.vue
similarity index 100%
copy from src/views/env/components/leftContainer.vue
copy to src/views/space/components/leftContainer.vue
diff --git a/src/views/env/components/rightContainer.vue b/src/views/space/components/rightContainer.vue
similarity index 73%
copy from src/views/env/components/rightContainer.vue
copy to src/views/space/components/rightContainer.vue
index 8e8592b..67eb54e 100644
--- a/src/views/env/components/rightContainer.vue
+++ b/src/views/space/components/rightContainer.vue
@@ -2,8 +2,8 @@
* @Author: shuishen 1109946754@qq.com
* @Date: 2023-03-10 15:27:59
* @LastEditors: shuishen 1109946754@qq.com
- * @LastEditTime: 2024-10-25 18:41:28
- * @FilePath: \bigScreen\src\views\statistics\components\rightContainer.vue
+ * @LastEditTime: 2024-10-26 14:49:05
+ * @FilePath: \bigScreen\src\views\survey\components\rightContainer.vue
* @Description:
*
* Copyright (c) 2023 by ${git_name_email}, All Rights Reserved.
@@ -18,23 +18,29 @@
<template>
<div class="right-container">
<div class="fire-source box">
- <div class="title-box">
- 火警事件来源
- </div>
+ <title-box>
+ <template #titleName>
+ 火警事件来源
+ </template>
+ </title-box>
<fire-source></fire-source>
</div>
<div class="occur-statistics box">
- <div class="title-box">
- 易发区统计
- </div>
+ <title-box>
+ <template #titleName>
+ 易发区统计
+ </template>
+ </title-box>
<fire-trend></fire-trend>
</div>
<div class="fire-trend box">
- <div class="title-box">
- 火警上报趋势
- </div>
+ <title-box>
+ <template #titleName>
+ 火警上报趋势
+ </template>
+ </title-box>
<occur-statistics></occur-statistics>
</div>
</div>
diff --git a/src/views/env/index.vue b/src/views/space/index.vue
similarity index 100%
copy from src/views/env/index.vue
copy to src/views/space/index.vue
diff --git a/src/views/env/components/box/dataContent.vue b/src/views/supplies/components/box/dataContent.vue
similarity index 100%
copy from src/views/env/components/box/dataContent.vue
copy to src/views/supplies/components/box/dataContent.vue
diff --git a/src/views/env/components/box/fireContent.vue b/src/views/supplies/components/box/fireContent.vue
similarity index 100%
copy from src/views/env/components/box/fireContent.vue
copy to src/views/supplies/components/box/fireContent.vue
diff --git a/src/views/env/components/box/fireSource.vue b/src/views/supplies/components/box/fireSource.vue
similarity index 100%
copy from src/views/env/components/box/fireSource.vue
copy to src/views/supplies/components/box/fireSource.vue
diff --git a/src/views/env/components/box/fireTrend.vue b/src/views/supplies/components/box/fireTrend.vue
similarity index 100%
copy from src/views/env/components/box/fireTrend.vue
copy to src/views/supplies/components/box/fireTrend.vue
diff --git a/src/views/env/components/box/occurStatistics.vue b/src/views/supplies/components/box/occurStatistics.vue
similarity index 100%
copy from src/views/env/components/box/occurStatistics.vue
copy to src/views/supplies/components/box/occurStatistics.vue
diff --git a/src/views/env/components/box/publicContent.vue b/src/views/supplies/components/box/publicContent.vue
similarity index 100%
copy from src/views/env/components/box/publicContent.vue
copy to src/views/supplies/components/box/publicContent.vue
diff --git a/src/views/env/components/box/unitContent.vue b/src/views/supplies/components/box/unitContent.vue
similarity index 100%
copy from src/views/env/components/box/unitContent.vue
copy to src/views/supplies/components/box/unitContent.vue
diff --git a/src/views/env/components/leftContainer.vue b/src/views/supplies/components/leftContainer.vue
similarity index 100%
copy from src/views/env/components/leftContainer.vue
copy to src/views/supplies/components/leftContainer.vue
diff --git a/src/views/env/components/rightContainer.vue b/src/views/supplies/components/rightContainer.vue
similarity index 73%
copy from src/views/env/components/rightContainer.vue
copy to src/views/supplies/components/rightContainer.vue
index 8e8592b..67eb54e 100644
--- a/src/views/env/components/rightContainer.vue
+++ b/src/views/supplies/components/rightContainer.vue
@@ -2,8 +2,8 @@
* @Author: shuishen 1109946754@qq.com
* @Date: 2023-03-10 15:27:59
* @LastEditors: shuishen 1109946754@qq.com
- * @LastEditTime: 2024-10-25 18:41:28
- * @FilePath: \bigScreen\src\views\statistics\components\rightContainer.vue
+ * @LastEditTime: 2024-10-26 14:49:05
+ * @FilePath: \bigScreen\src\views\survey\components\rightContainer.vue
* @Description:
*
* Copyright (c) 2023 by ${git_name_email}, All Rights Reserved.
@@ -18,23 +18,29 @@
<template>
<div class="right-container">
<div class="fire-source box">
- <div class="title-box">
- 火警事件来源
- </div>
+ <title-box>
+ <template #titleName>
+ 火警事件来源
+ </template>
+ </title-box>
<fire-source></fire-source>
</div>
<div class="occur-statistics box">
- <div class="title-box">
- 易发区统计
- </div>
+ <title-box>
+ <template #titleName>
+ 易发区统计
+ </template>
+ </title-box>
<fire-trend></fire-trend>
</div>
<div class="fire-trend box">
- <div class="title-box">
- 火警上报趋势
- </div>
+ <title-box>
+ <template #titleName>
+ 火警上报趋势
+ </template>
+ </title-box>
<occur-statistics></occur-statistics>
</div>
</div>
diff --git a/src/views/env/index.vue b/src/views/supplies/index.vue
similarity index 100%
copy from src/views/env/index.vue
copy to src/views/supplies/index.vue
diff --git a/vite.config.js b/vite.config.js
index 491ff95..5af17bd 100644
--- a/vite.config.js
+++ b/vite.config.js
@@ -2,7 +2,7 @@
* @Author: shuishen 1109946754@qq.com
* @Date: 2024-10-25 10:56:27
* @LastEditors: shuishen 1109946754@qq.com
- * @LastEditTime: 2024-10-28 11:51:46
+ * @LastEditTime: 2024-10-29 21:44:48
* @FilePath: \bigScreen\vite.config.js
* @Description:
*
@@ -14,6 +14,7 @@
import DC from "@dvgis/vite-plugin-dc"
import AutoImport from 'unplugin-auto-import/vite'
+import basicSsl from '@vitejs/plugin-basic-ssl'
export default ({ mode, command }) => {
const env = loadEnv(mode, process.cwd())
@@ -48,6 +49,7 @@
plugins: [
vue(),
DC(),
+ basicSsl(),
AutoImport({
imports: ["vue", "vue-router"], // 自动导入vue和vue-router相关函数
})
@@ -76,6 +78,8 @@
server: {
port: 668,
+ https: true,
+ host: '0.0.0.0',
proxy: {
'/api': {
// target: 'http://localhost',
--
Gitblit v1.9.3