From f789d1d5841d0f8feefc16570189304c9d9204a9 Mon Sep 17 00:00:00 2001
From: shuishen <1109946754@qq.com>
Date: Thu, 31 Oct 2024 18:31:40 +0800
Subject: [PATCH] 加载倾斜模型 图层组件封装 路由相关调整 项目基础路径调整
---
src/views/rt/components/box/fireContent.vue | 0
src/views/rs/components/box/occurStatistics.vue | 0
.gitignore | 1
src/views/rs/components/box/dataContent.vue | 0
src/views/rs/components/box/fireTrend.vue | 0
src/styles/base/dc-base.scss | 41 ++++
src/views/rt/components/box/unitContent.vue | 0
pnpm-lock.yaml | 11 +
src/views/rs/components/box/publicContent.vue | 0
src/views/rs/components/box/fireSource.vue | 0
src/views/rt/components/box/publicContent.vue | 0
src/views/rt/index.vue | 0
src/views/rt/components/box/dataContent.vue | 0
src/views/rt/components/leftContainer.vue | 48 ++++
src/views/rs/components/leftContainer.vue | 0
src/views/rt/components/box/fireTrend.vue | 0
vite.config.js | 8
src/views/layout/components/mainMenu.vue | 12
src/views/rs/components/box/unitContent.vue | 0
src/views/layout/components/scomponents/layersControl.vue | 174 +++++++++++++++++
src/views/layout/components/mainTool.vue | 27 +-
src/styles/base/index.scss | 39 ---
src/views/rt/components/box/occurStatistics.vue | 0
src/router/index.js | 28 +-
src/views/rs/components/rightContainer.vue | 0
src/views/rs/components/box/fireContent.vue | 0
src/styles/base/container.scss | 2
.env.development | 4
/dev/null | 79 -------
src/main.js | 10
src/views/rt/components/rightContainer.vue | 0
package.json | 9
.env.production | 14 +
src/hooks/initMap.js | 19 -
src/views/rs/index.vue | 0
src/views/rt/components/box/fireSource.vue | 0
src/page/login.vue | 3
src/views/layout/components/scomponents/baseMap.vue | 15 +
38 files changed, 366 insertions(+), 178 deletions(-)
diff --git a/.env.development b/.env.development
index d896f11..fcfda8b 100644
--- a/.env.development
+++ b/.env.development
@@ -13,7 +13,7 @@
VITE_APP_ENV = 'development'
#接口地址
-VITE_APP_API=/api
+VITE_APP_API=/zhyqapi
#页面基础路径
-VITE_APP_BASE=/bigScreen
+VITE_APP_BASE=/zhyq/
diff --git a/.env.production b/.env.production
index 38120f9..16d9b5e 100644
--- a/.env.production
+++ b/.env.production
@@ -1,13 +1,23 @@
+###
+ # @Author: shuishen 1109946754@qq.com
+ # @Date: 2024-10-25 11:21:30
+ # @LastEditors: shuishen 1109946754@qq.com
+ # @LastEditTime: 2024-10-31 10:37:36
+ # @FilePath: \bigScreen\.env.production
+ # @Description:
+ #
+ # Copyright (c) 2024 by shuishen, All Rights Reserved.
+###
#生产环境配置
VITE_APP_ENV = 'production'
#接口地址
#填写前缀 [/api] 需要用nginx进行反向代理
#填写地址 [https://api.bladex.cn] 只需要保证接口支持跨域即可, 无需再做代理
-VITE_APP_API=/api
+VITE_APP_API=/zhyqapi
#页面基础路径
-VITE_APP_BASE=/bigScreen
+VITE_APP_BASE=/zhyq/
# 是否在打包时开启压缩,支持 gzip 和 brotli
VITE_BUILD_COMPRESS = gzip
diff --git a/.gitignore b/.gitignore
index a547bf3..6e37a37 100644
--- a/.gitignore
+++ b/.gitignore
@@ -8,6 +8,7 @@
lerna-debug.log*
node_modules
+zhyq
dist
dist-ssr
*.local
diff --git a/package.json b/package.json
index da41c69..8728974 100644
--- a/package.json
+++ b/package.json
@@ -17,15 +17,16 @@
"@element-plus/icons-vue": "^2.3.1",
"@fortawesome/fontawesome-free": "^6.6.0",
"axios": "^1.7.7",
+ "crypto-js": "^4.1.1",
"element-plus": "^2.8.6",
+ "element-tree-line": "^0.2.1",
+ "js-base64": "^3.7.4",
+ "js-md5": "^0.7.3",
"nprogress": "^0.2.0",
"pinia": "^2.2.4",
"pinia-plugin-persist": "^1.0.0",
"vue": "^3.5.12",
- "vue-router": "^4.4.5",
- "crypto-js": "^4.1.1",
- "js-base64": "^3.7.4",
- "js-md5": "^0.7.3"
+ "vue-router": "^4.4.5"
},
"devDependencies": {
"@vitejs/plugin-basic-ssl": "^1.1.0",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 336b9d5..15d95ec 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -26,6 +26,9 @@
element-plus:
specifier: ^2.8.6
version: 2.8.6(vue@3.5.12)
+ element-tree-line:
+ specifier: ^0.2.1
+ version: 0.2.1(vue@3.5.12)
js-base64:
specifier: ^3.7.4
version: 3.7.4
@@ -987,6 +990,14 @@
- '@vue/composition-api'
dev: false
+ /element-tree-line@0.2.1(vue@3.5.12):
+ resolution: {integrity: sha512-YWHftDSOFiBuw49drxJV7Yi7pCqPpwBBBeQmySjchcxU3uUOAu72FDLK5RyTGJ5qt4Ci+yoUg7zJqsFP5u7N5A==}
+ peerDependencies:
+ vue: ^2.6.11 || ^3.2.0
+ dependencies:
+ vue: 3.5.12
+ dev: false
+
/encodeurl@1.0.2:
resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==}
engines: {node: '>= 0.8'}
diff --git a/src/hooks/initMap.js b/src/hooks/initMap.js
index 872ce88..fbcc970 100644
--- a/src/hooks/initMap.js
+++ b/src/hooks/initMap.js
@@ -2,7 +2,7 @@
* @Author: shuishen 1109946754@qq.com
* @Date: 2024-10-25 15:09:55
* @LastEditors: shuishen 1109946754@qq.com
- * @LastEditTime: 2024-10-30 18:09:34
+ * @LastEditTime: 2024-10-31 18:27:53
* @FilePath: \bigScreen\src\hooks\initMap.js
* @Description:
*
@@ -23,7 +23,7 @@
nextTick(() => {
DC.ready({
- baseUrl: `${VITE_APP_BASE}/libs/dc-sdk/resources/`
+ baseUrl: `${VITE_APP_BASE}libs/dc-sdk/resources/`
}).then(() => {
viewer = new DC.Viewer('viewer-container')
@@ -33,21 +33,6 @@
global.$viewer = viewer
store.setLoadMap(true)
-
- // let layer = new DC.HtmlLayer('layer')
- // viewer.addLayer(layer)
- // let divIcon = new DC.DivIcon(
- // new DC.Position(125, 25),
- // `<div class="public-map-popup">
- // <div class="marsBlueGradientPnl">
- // <div>指挥室</div>
- // </div>
- // </div>`
- // )
-
- // divIcon.setStyle({
- // })
- // layer.addOverlay(divIcon)
})
})
}
diff --git a/src/main.js b/src/main.js
index f11b4cb..689bcb1 100644
--- a/src/main.js
+++ b/src/main.js
@@ -2,13 +2,13 @@
* @Author: shuishen 1109946754@qq.com
* @Date: 2024-10-25 10:56:27
* @LastEditors: shuishen 1109946754@qq.com
- * @LastEditTime: 2024-10-28 10:53:47
+ * @LastEditTime: 2024-10-31 11:01:20
* @FilePath: \bigScreen\src\main.js
* @Description:
*
* Copyright (c) 2024 by shuishen, All Rights Reserved.
*/
-import { createApp } from 'vue'
+import { createApp, h } from 'vue'
import { createPinia } from 'pinia'
import router from '@/router/index'
@@ -24,6 +24,9 @@
// 全局组件自动注册
import components from '@/components/index'
+import { getElementLabelLine } from 'element-tree-line';
+import 'element-tree-line/dist/style.css';
+
import * as DC from '@dvgis/dc-sdk'
import '@dvgis/dc-sdk/dist/dc.min.css'
window.DC = Object.create(DC) //Since the imported DC is read-only, it needs to be re-expanded
@@ -31,6 +34,9 @@
const pinia = createPinia()
pinia.use(piniaPersistPlugin)
+const ElementLabelLine = getElementLabelLine(h);
+app.component(ElementLabelLine.name, ElementLabelLine);
+
app.use(router)
app.use(ElementPlus)
app.use(pinia)
diff --git a/src/page/login.vue b/src/page/login.vue
index aa7b179..8124b0c 100644
--- a/src/page/login.vue
+++ b/src/page/login.vue
@@ -111,10 +111,9 @@
.input {
margin: 30px 0;
width: 300px;
- padding: 10px 0px;
+ padding: 10px 10px 10px 40px;
background-color: rgba(0, 0, 0, 0);
color: #ffffff;
- padding-left: 40px;
border-width: 0px;
font-size: 18px;
}
diff --git a/src/router/index.js b/src/router/index.js
index 7b4a120..02778d7 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -2,13 +2,13 @@
* @Author: shuishen 1109946754@qq.com
* @Date: 2024-10-25 16:35:31
* @LastEditors: shuishen 1109946754@qq.com
- * @LastEditTime: 2024-10-30 15:01:50
+ * @LastEditTime: 2024-10-31 18:22:25
* @FilePath: \bigScreen\src\router\index.js
* @Description:
*
* Copyright (c) 2024 by shuishen, All Rights Reserved.
*/
-import { createRouter, createWebHistory } from 'vue-router'
+import { createRouter, createWebHistory, createWebHashHistory } from 'vue-router'
const routes = [
{
@@ -39,6 +39,13 @@
component: () => import('@/views/survey/index.vue')
},
{
+ path: 'rs',
+ meta: {
+ title: '固定风险源'
+ },
+ component: () => import('@/views/rs/index.vue')
+ },
+ {
path: 'space',
meta: {
title: '应急空间'
@@ -53,18 +60,18 @@
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')
+ },
+ {
+ path: 'rt',
+ meta: {
+ title: '救援队伍'
+ },
+ component: () => import('@/views/rt/index.vue')
}
]
},
@@ -73,7 +80,8 @@
const { VITE_APP_BASE } = import.meta.env
const router = createRouter({
- history: createWebHistory(VITE_APP_BASE),
+ base: VITE_APP_BASE,
+ history: createWebHashHistory(VITE_APP_BASE),
routes
})
diff --git a/src/styles/base/container.scss b/src/styles/base/container.scss
index 21c003e..280a03b 100644
--- a/src/styles/base/container.scss
+++ b/src/styles/base/container.scss
@@ -8,11 +8,13 @@
body {
width: 100%;
height: 100%;
+ overflow: hidden;
}
#app {
width: 100%;
height: 100%;
+ overflow: hidden;
}
.cursor-p {
diff --git a/src/styles/base/dc-base.scss b/src/styles/base/dc-base.scss
new file mode 100644
index 0000000..fd0295d
--- /dev/null
+++ b/src/styles/base/dc-base.scss
@@ -0,0 +1,41 @@
+.div-icon {
+ padding: 0 !important;
+}
+
+.public-map-popup {
+ position: absolute;
+ bottom: 60px;
+ pointer-events: all;
+ display: block;
+ transform-origin: left bottom;
+ transform: translate(-50%, 0px);
+ z-index: auto;
+
+ .marsBlueGradientPnl {
+ text-align: center;
+ padding: 5px 30px;
+ margin: 0;
+ color: #fff;
+ background: linear-gradient(rgb(7 10 203 / 75%), rgb(16 238 220));
+ -webkit-border-radius: 5px;
+ -moz-border-radius: 5px;
+ border-radius: 5px;
+ max-height: 130px;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+ white-space: nowrap;
+
+ &::after {
+ content: "";
+ position: absolute;
+ bottom: -60px;
+ left: calc(50% - 3px);
+ display: block;
+ width: 3px;
+ height: 60px;
+ border-right: 3px solid #2bcdbb;
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/styles/base/index.scss b/src/styles/base/index.scss
index 29aa729..54b25fe 100644
--- a/src/styles/base/index.scss
+++ b/src/styles/base/index.scss
@@ -1,39 +1,2 @@
@use './container.scss'as *;
-
-.public-map-popup {
- position: absolute;
- left: 0;
- top: 0;
- pointer-events: all;
- display: block;
- transform-origin: left bottom;
- z-index: auto;
-
- .marsBlueGradientPnl {
- text-align: center;
- padding: 5px 30px;
- margin: 0;
- color: #fff;
- background: linear-gradient(rgb(7 10 203 / 75%), rgb(16 238 220));
- -webkit-border-radius: 5px;
- -moz-border-radius: 5px;
- border-radius: 5px;
- max-height: 130px;
- -webkit-user-select: none;
- -moz-user-select: none;
- -ms-user-select: none;
- user-select: none;
- white-space: nowrap;
-
- &::after {
- content: "";
- position: absolute;
- bottom: -60px;
- left: calc(50% - 3px);
- display: block;
- width: 3px;
- height: 60px;
- border-right: 3px solid #2bcdbb;
- }
- }
-}
\ No newline at end of file
+@use './dc-base.scss'as *;
\ No newline at end of file
diff --git a/src/views/layout/components/mainMenu.vue b/src/views/layout/components/mainMenu.vue
index 5078cde..93cfe9f 100644
--- a/src/views/layout/components/mainMenu.vue
+++ b/src/views/layout/components/mainMenu.vue
@@ -22,6 +22,10 @@
path: '/layout/survey'
},
{
+ menuName: '固定风险源',
+ path: '/layout/rs'
+ },
+ {
menuName: '应急空间',
path: '/layout/space'
},
@@ -30,13 +34,13 @@
path: '/layout/supplies'
},
{
- menuName: '应急设备',
- path: '/layout/equipment'
- },
- {
menuName: '三级防控',
path: '/layout/pac'
},
+ {
+ menuName: '救援队伍',
+ path: '/layout/rt'
+ },
]
)
diff --git a/src/views/layout/components/mainTool.vue b/src/views/layout/components/mainTool.vue
index 2ae6bdc..988500c 100644
--- a/src/views/layout/components/mainTool.vue
+++ b/src/views/layout/components/mainTool.vue
@@ -6,16 +6,17 @@
</el-button>
</div>
- <base-map v-show="showBaseMap" @close="closeBox"></base-map>
-
+ <base-map v-show="currentComponent == 'map'" @close="closeBox"></base-map>
+ <layers-control v-show="currentComponent == 'layers'" @close="closeBox"></layers-control>
<tool-list :moreToolShow="moreToolShow" @close="closeBox"></tool-list>
</template>
<script setup>
import baseMap from './scomponents/baseMap.vue'
+import layersControl from './scomponents/layersControl.vue'
import toolList from './scomponents/toolList.vue'
-let showBaseMap = ref(false)
+const currentComponent = ref('')
let moreToolShow = ref(false)
const btnGroup = [
@@ -27,31 +28,29 @@
{
name: '图层',
icon: 'fa fa-tasks',
- key: 'task'
+ key: 'layers',
},
{
name: '工具',
icon: 'fa fa-cubes',
- key: 'tool'
+ key: 'tool',
},
]
const btnClick = (item) => {
-
- if (item.key == 'map') {
- showBaseMap.value = !showBaseMap.value
-
- }
-
if (item.key == 'tool') {
moreToolShow.value = !moreToolShow.value
+ } else {
+ currentComponent.value = item.key
}
}
const closeBox = (type) => {
- if (type == 'map') showBaseMap.value = false
-
- if (type == 'tool') moreToolShow.value = false
+ if (type == 'tool') {
+ moreToolShow.value = false
+ } else {
+ currentComponent.value = ''
+ }
}
</script>
diff --git a/src/views/layout/components/scomponents/baseMap.vue b/src/views/layout/components/scomponents/baseMap.vue
index 7d5f699..ff31100 100644
--- a/src/views/layout/components/scomponents/baseMap.vue
+++ b/src/views/layout/components/scomponents/baseMap.vue
@@ -289,6 +289,21 @@
global.$viewer.setTerrain()
}
}
+
+ let layer = new DC.HtmlLayer('layer')
+ global.$viewer.addLayer(layer)
+ let divIcon = new DC.DivIcon(
+ new DC.Position(124, 24, 100),
+ `<div class="public-map-popup">
+ <div class="marsBlueGradientPnl">
+ <div>指挥室</div>
+ </div>
+ </div>`
+ )
+
+ divIcon.setStyle({
+ })
+ layer.addOverlay(divIcon)
</script>
<style lang="scss" scoped>
diff --git a/src/views/layout/components/scomponents/layersControl.vue b/src/views/layout/components/scomponents/layersControl.vue
new file mode 100644
index 0000000..b3ca479
--- /dev/null
+++ b/src/views/layout/components/scomponents/layersControl.vue
@@ -0,0 +1,174 @@
+<!--
+ * @Author: shuishen 1109946754@qq.com
+ * @Date: 2024-10-31 10:47:29
+ * @LastEditors: shuishen 1109946754@qq.com
+ * @LastEditTime: 2024-10-31 18:16:33
+ * @FilePath: \bigScreen\src\views\layout\components\scomponents\layersControl.vue
+ * @Description:
+ *
+ * Copyright (c) 2024 by shuishen, All Rights Reserved.
+-->
+<template>
+ <public-box>
+ <template #name>
+ <div class="name"><i class="fa fa-tasks"></i> 图层</div>
+ </template>
+
+ <template #close>
+ <div class="close" @click="$emit('close', 'layers')"><i class="fa fa-close"></i></div>
+ </template>
+
+ <template #content>
+ <div class="tree-content">
+ <el-tree ref="tree" :data="data" draggable="" show-checkbox node-key="id" :default-expanded-keys="[2, 3]"
+ :default-checked-keys="[5]" :props="defaultProps" :indent="treeProps['indent']" @check="handleCheckChange">
+ <template v-slot:default="{ node }">
+ <element-tree-line :node="node" :showLabelLine="treeProps['showLabelLine']" :indent="treeProps['indent']">
+ <!-- 自定义label的slot -->
+ <template v-slot:node-label>
+ <span style="font-size: 12px">
+ {{ node.label }}
+ <i class="el-icon-eleme"></i></span>
+ </template>
+ <!-- 在右边追加内容的slot -->
+ <!-- <template v-slot:after-node-label>
+ <span style="padding-right: 10px">
+ <el-button type="primary" size="mini" @click.stop="openDrawer(node)">新增子节点</el-button>
+ <el-button type="primary" size="mini" @click.stop="openDrawer(node)">修改</el-button>
+ <el-button type="danger" size="mini" @click.stop="openDialog">删除</el-button></span>
+ </template> -->
+ </element-tree-line>
+ </template>
+ </el-tree>
+ </div>
+ </template>
+ </public-box>
+</template>
+
+<script setup>
+const { VITE_APP_BASE } = import.meta.env
+import { getViewer } from 'utils/getViewer'
+const globalViewer = getViewer()
+
+const treeProps = {
+ indent: 16,
+ showLabelLine: true,
+}
+
+const data = [
+ {
+ id: 1,
+ label: '三维模型',
+ children: [
+ {
+ id: 4,
+ label: '倾斜摄影',
+ children: [
+ {
+ id: 9,
+ label: '化工园区',
+ type: 'layer',
+ subType: '3Dtile',
+ url: VITE_APP_BASE + 'mx/tileset.json'
+ },
+ ],
+ },
+ ],
+ },
+]
+
+const defaultProps = {
+ children: 'children',
+ label: 'label',
+}
+
+const checkType = (value) => {
+ if (typeof value === 'object' && value !== null && !Array.isArray(value)) {
+ return 'obj'
+ } else if (Array.isArray(value)) {
+ return 'arr'
+ }
+}
+// 用于存储收集到的节点的数组
+const collectedNodes = reactive([])
+
+// 递归函数,收集所有 flag 为 true 的子节点
+const collectNodesWithFlag = (nodes) => {
+ if (checkType(nodes) == 'obj') {
+ if (nodes.type == 'layer') {
+ collectedNodes.value.push(nodes)
+ }
+ if (nodes.children && nodes.children.length > 0) {
+ collectNodesWithFlag(nodes.children)
+ return
+ }
+ }
+
+ if (checkType(nodes) == 'arr') {
+ nodes.forEach(item => {
+ if (item.type == 'layer') {
+ collectedNodes.value.push(item)
+ }
+
+ if (item.children && item.children.length > 0) {
+ collectNodesWithFlag(item.children)
+ }
+ })
+ }
+}
+
+let addTileLayers = {}
+let tileLayers = new DC.TilesetLayer('tileLayers')
+globalViewer.addLayer(tileLayers)
+
+const handleCheckChange = (data, options) => {
+ collectedNodes.value = []
+ collectNodesWithFlag(data)
+
+ collectedNodes.value.forEach(item => {
+ if (options.checkedKeys.some(i => i == item.id)) {
+ if (item.subType == '3Dtile') {
+ addTileLayers[item.layerName] = new DC.Tileset(
+ item.url
+ )
+ tileLayers.addOverlay(addTileLayers[item.layerName])
+ globalViewer.flyTo(addTileLayers[item.layerName])
+ }
+ } else {
+ if (item.subType == '3Dtile') {
+ tileLayers.removeOverlay(addTileLayers[item.layerName])
+
+ delete addTileLayers[item.layerName]
+ }
+ }
+ })
+}
+</script>
+
+<style lang="scss" scoped>
+.tree-content {
+ min-width: 200px;
+ padding: 10px;
+
+ ::v-deep(.el-tree) {
+ color: #fff;
+ background: transparent;
+
+ /* 鼠标浮动过的背景颜色 */
+ .el-tree-node__content:hover {
+ background: #0074b7;
+ }
+
+ /* 鼠标点击时节点的背景颜色 */
+ .el-tree-node:focus>.el-tree-node__content {
+ background-color: #0074b7 !important;
+ color: rgb(255, 255, 255);
+ }
+
+ /* 鼠标失去焦点时节点背景的颜色 */
+ .el-tree--highlight-current .el-tree-node.is-current>.el-tree-node__content {
+ background: rgb(0, 129, 204);
+ }
+ }
+}
+</style>
\ No newline at end of file
diff --git a/src/views/equipment/components/box/dataContent.vue b/src/views/rs/components/box/dataContent.vue
similarity index 100%
copy from src/views/equipment/components/box/dataContent.vue
copy to src/views/rs/components/box/dataContent.vue
diff --git a/src/views/equipment/components/box/fireContent.vue b/src/views/rs/components/box/fireContent.vue
similarity index 100%
copy from src/views/equipment/components/box/fireContent.vue
copy to src/views/rs/components/box/fireContent.vue
diff --git a/src/views/equipment/components/box/fireSource.vue b/src/views/rs/components/box/fireSource.vue
similarity index 100%
copy from src/views/equipment/components/box/fireSource.vue
copy to src/views/rs/components/box/fireSource.vue
diff --git a/src/views/equipment/components/box/fireTrend.vue b/src/views/rs/components/box/fireTrend.vue
similarity index 100%
copy from src/views/equipment/components/box/fireTrend.vue
copy to src/views/rs/components/box/fireTrend.vue
diff --git a/src/views/equipment/components/box/occurStatistics.vue b/src/views/rs/components/box/occurStatistics.vue
similarity index 100%
copy from src/views/equipment/components/box/occurStatistics.vue
copy to src/views/rs/components/box/occurStatistics.vue
diff --git a/src/views/equipment/components/box/publicContent.vue b/src/views/rs/components/box/publicContent.vue
similarity index 100%
copy from src/views/equipment/components/box/publicContent.vue
copy to src/views/rs/components/box/publicContent.vue
diff --git a/src/views/equipment/components/box/unitContent.vue b/src/views/rs/components/box/unitContent.vue
similarity index 100%
copy from src/views/equipment/components/box/unitContent.vue
copy to src/views/rs/components/box/unitContent.vue
diff --git a/src/views/equipment/components/leftContainer.vue b/src/views/rs/components/leftContainer.vue
similarity index 100%
rename from src/views/equipment/components/leftContainer.vue
rename to src/views/rs/components/leftContainer.vue
diff --git a/src/views/equipment/components/rightContainer.vue b/src/views/rs/components/rightContainer.vue
similarity index 100%
copy from src/views/equipment/components/rightContainer.vue
copy to src/views/rs/components/rightContainer.vue
diff --git a/src/views/equipment/index.vue b/src/views/rs/index.vue
similarity index 100%
copy from src/views/equipment/index.vue
copy to src/views/rs/index.vue
diff --git a/src/views/equipment/components/box/dataContent.vue b/src/views/rt/components/box/dataContent.vue
similarity index 100%
rename from src/views/equipment/components/box/dataContent.vue
rename to src/views/rt/components/box/dataContent.vue
diff --git a/src/views/equipment/components/box/fireContent.vue b/src/views/rt/components/box/fireContent.vue
similarity index 100%
rename from src/views/equipment/components/box/fireContent.vue
rename to src/views/rt/components/box/fireContent.vue
diff --git a/src/views/equipment/components/box/fireSource.vue b/src/views/rt/components/box/fireSource.vue
similarity index 100%
rename from src/views/equipment/components/box/fireSource.vue
rename to src/views/rt/components/box/fireSource.vue
diff --git a/src/views/equipment/components/box/fireTrend.vue b/src/views/rt/components/box/fireTrend.vue
similarity index 100%
rename from src/views/equipment/components/box/fireTrend.vue
rename to src/views/rt/components/box/fireTrend.vue
diff --git a/src/views/equipment/components/box/occurStatistics.vue b/src/views/rt/components/box/occurStatistics.vue
similarity index 100%
rename from src/views/equipment/components/box/occurStatistics.vue
rename to src/views/rt/components/box/occurStatistics.vue
diff --git a/src/views/equipment/components/box/publicContent.vue b/src/views/rt/components/box/publicContent.vue
similarity index 100%
rename from src/views/equipment/components/box/publicContent.vue
rename to src/views/rt/components/box/publicContent.vue
diff --git a/src/views/equipment/components/box/unitContent.vue b/src/views/rt/components/box/unitContent.vue
similarity index 100%
rename from src/views/equipment/components/box/unitContent.vue
rename to src/views/rt/components/box/unitContent.vue
diff --git a/src/views/rt/components/leftContainer.vue b/src/views/rt/components/leftContainer.vue
new file mode 100644
index 0000000..714a615
--- /dev/null
+++ b/src/views/rt/components/leftContainer.vue
@@ -0,0 +1,48 @@
+<!--
+ * @Author: shuishen 1109946754@qq.com
+ * @Date: 2023-03-10 15:27:59
+ * @LastEditors: shuishen 1109946754@qq.com
+ * @LastEditTime: 2024-10-25 18:43:23
+ * @FilePath: \bigScreen\src\views\statistics\components\leftContainer.vue
+ * @Description:
+ *
+ * Copyright (c) 2023 by ${git_name_email}, All Rights Reserved.
+-->
+<script setup>
+import dataContent from './box/dataContent.vue'
+import unitContent from './box/unitContent.vue'
+import fireContent from './box/fireContent.vue'
+</script>
+
+<template>
+ <div class="left-container">
+ <div class="data box">
+ <title-box>
+ <template #titleName>
+ 数据概览2
+ </template>
+ </title-box>
+ <data-content></data-content>
+ </div>
+
+ <div class="unit box">
+ <title-box>
+ <template #titleName>
+ 入住单位统计
+ </template>
+ </title-box>
+ <unit-content></unit-content>
+ </div>
+
+ <div class="fire box">
+ <title-box>
+ <template #titleName>
+ 实时火警事件
+ </template>
+ </title-box>
+ <fire-content></fire-content>
+ </div>
+ </div>
+</template>
+
+<style lang="scss" scoped></style>
\ No newline at end of file
diff --git a/src/views/equipment/components/rightContainer.vue b/src/views/rt/components/rightContainer.vue
similarity index 100%
rename from src/views/equipment/components/rightContainer.vue
rename to src/views/rt/components/rightContainer.vue
diff --git a/src/views/equipment/index.vue b/src/views/rt/index.vue
similarity index 100%
rename from src/views/equipment/index.vue
rename to src/views/rt/index.vue
diff --git a/vite.config.js b/vite.config.js
index 6ea53e3..3ddbd7c 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-30 16:06:44
+ * @LastEditTime: 2024-10-31 18:23:13
* @FilePath: \bigScreen\vite.config.js
* @Description:
*
@@ -24,7 +24,7 @@
// 根据是否生产环境,动态设置压缩配置
const buildConfig = {
- outDir: 'manage',
+ outDir: 'zhyq',
target: 'esnext',
minify: isProd ? 'terser' : 'esbuild', // 根据环境选择压缩工具
}
@@ -81,11 +81,11 @@
https: true,
host: '0.0.0.0',
proxy: {
- '/api': {
+ '/zhyqapi': {
// target: 'http://localhost',
target: 'https://wrj.shuixiongit.com/zhyqapi',
changeOrigin: true,
- rewrite: path => path.replace(/^\/api/, ''),
+ rewrite: path => path.replace(/^\/zhyqapi/, ''),
},
},
},
diff --git a/vite.config.js.timestamp-1730167409245-f650f9b358bf.mjs b/vite.config.js.timestamp-1730167409245-f650f9b358bf.mjs
deleted file mode 100644
index b35a14d..0000000
--- a/vite.config.js.timestamp-1730167409245-f650f9b358bf.mjs
+++ /dev/null
@@ -1,79 +0,0 @@
-// vite.config.js
-import { defineConfig, loadEnv } from "file:///Y:/jsProject/bigScreen/node_modules/.pnpm/vite@5.4.10_sass@1.80.4_terser@5.31.1/node_modules/vite/dist/node/index.js";
-import { resolve } from "path";
-import vue from "file:///Y:/jsProject/bigScreen/node_modules/.pnpm/@vitejs+plugin-vue@5.1.4_vite@5.4.10_vue@3.5.12/node_modules/@vitejs/plugin-vue/dist/index.mjs";
-import DC from "file:///Y:/jsProject/bigScreen/node_modules/.pnpm/@dvgis+vite-plugin-dc@2.2.0_@dvgis+dc-sdk@3.4.0/node_modules/@dvgis/vite-plugin-dc/dist/index.mjs";
-import AutoImport from "file:///Y:/jsProject/bigScreen/node_modules/.pnpm/unplugin-auto-import@0.18.3/node_modules/unplugin-auto-import/dist/vite.js";
-var __vite_injected_original_dirname = "Y:\\jsProject\\bigScreen";
-var vite_config_default = ({ mode, command }) => {
- const env = loadEnv(mode, process.cwd());
- const { VITE_APP_ENV, VITE_APP_BASE } = env;
- const isProd = VITE_APP_ENV === "production";
- const buildConfig = {
- outDir: "manage",
- target: "esnext",
- minify: isProd ? "terser" : "esbuild"
- // 根据环境选择压缩工具
- };
- if (isProd) {
- buildConfig.terserOptions = {
- compress: {
- drop_console: true,
- // 删除 console
- drop_debugger: true
- // 删除 debugger
- },
- format: {
- comments: false
- // 删除所有注释
- }
- };
- }
- return defineConfig({
- base: VITE_APP_BASE,
- build: buildConfig,
- plugins: [
- vue(),
- DC(),
- AutoImport({
- imports: ["vue", "vue-router"]
- // 自动导入vue和vue-router相关函数
- })
- ],
- css: {
- preprocessorOptions: {
- scss: {
- api: "modern-compiler",
- // 修改api调用方式
- additionalData: `@use "@/styles/variables.scss" as *;`
- }
- }
- },
- resolve: {
- alias: {
- "~": resolve(__vite_injected_original_dirname, "./"),
- "@": resolve(__vite_injected_original_dirname, "./src"),
- components: resolve(__vite_injected_original_dirname, "./src/components"),
- styles: resolve(__vite_injected_original_dirname, "./src/styles"),
- utils: resolve(__vite_injected_original_dirname, "./src/utils"),
- store: resolve(__vite_injected_original_dirname, "./src/store"),
- hooks: resolve(__vite_injected_original_dirname, "./src/hooks")
- }
- },
- server: {
- port: 668,
- proxy: {
- "/api": {
- // target: 'http://localhost',
- target: "https://wrj.shuixiongit.com/api",
- changeOrigin: true,
- rewrite: (path) => path.replace(/^\/api/, "")
- }
- }
- }
- });
-};
-export {
- vite_config_default as default
-};
-//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsidml0ZS5jb25maWcuanMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImNvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9kaXJuYW1lID0gXCJZOlxcXFxqc1Byb2plY3RcXFxcYmlnU2NyZWVuXCI7Y29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2ZpbGVuYW1lID0gXCJZOlxcXFxqc1Byb2plY3RcXFxcYmlnU2NyZWVuXFxcXHZpdGUuY29uZmlnLmpzXCI7Y29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2ltcG9ydF9tZXRhX3VybCA9IFwiZmlsZTovLy9ZOi9qc1Byb2plY3QvYmlnU2NyZWVuL3ZpdGUuY29uZmlnLmpzXCI7LypcbiAqIEBBdXRob3I6IHNodWlzaGVuIDExMDk5NDY3NTRAcXEuY29tXG4gKiBARGF0ZTogMjAyNC0xMC0yNSAxMDo1NjoyN1xuICogQExhc3RFZGl0b3JzOiBzaHVpc2hlbiAxMTA5OTQ2NzU0QHFxLmNvbVxuICogQExhc3RFZGl0VGltZTogMjAyNC0xMC0yOCAxMTo1MTo0NlxuICogQEZpbGVQYXRoOiBcXGJpZ1NjcmVlblxcdml0ZS5jb25maWcuanNcbiAqIEBEZXNjcmlwdGlvbjogXG4gKiBcbiAqIENvcHlyaWdodCAoYykgMjAyNCBieSBzaHVpc2hlbiwgQWxsIFJpZ2h0cyBSZXNlcnZlZC4gXG4gKi9cbmltcG9ydCB7IGRlZmluZUNvbmZpZywgbG9hZEVudiB9IGZyb20gJ3ZpdGUnXG5pbXBvcnQgeyByZXNvbHZlIH0gZnJvbSAncGF0aCdcbmltcG9ydCB2dWUgZnJvbSAnQHZpdGVqcy9wbHVnaW4tdnVlJ1xuaW1wb3J0IERDIGZyb20gXCJAZHZnaXMvdml0ZS1wbHVnaW4tZGNcIlxuXG5pbXBvcnQgQXV0b0ltcG9ydCBmcm9tICd1bnBsdWdpbi1hdXRvLWltcG9ydC92aXRlJ1xuXG5leHBvcnQgZGVmYXVsdCAoeyBtb2RlLCBjb21tYW5kIH0pID0+IHtcbiAgY29uc3QgZW52ID0gbG9hZEVudihtb2RlLCBwcm9jZXNzLmN3ZCgpKVxuICBjb25zdCB7IFZJVEVfQVBQX0VOViwgVklURV9BUFBfQkFTRSB9ID0gZW52XG4gIC8vIFx1NTIyNFx1NjVBRFx1NjYyRlx1NjI1M1x1NzUxRlx1NEVBN1x1NzNBRlx1NTg4M1x1NTMwNVxuICBjb25zdCBpc1Byb2QgPSBWSVRFX0FQUF9FTlYgPT09ICdwcm9kdWN0aW9uJ1xuXG4gIC8vIFx1NjgzOVx1NjM2RVx1NjYyRlx1NTQyNlx1NzUxRlx1NEVBN1x1NzNBRlx1NTg4M1x1RkYwQ1x1NTJBOFx1NjAwMVx1OEJCRVx1N0Y2RVx1NTM4Qlx1N0YyOVx1OTE0RFx1N0Y2RVxuICBjb25zdCBidWlsZENvbmZpZyA9IHtcbiAgICBvdXREaXI6ICdtYW5hZ2UnLFxuICAgIHRhcmdldDogJ2VzbmV4dCcsXG4gICAgbWluaWZ5OiBpc1Byb2QgPyAndGVyc2VyJyA6ICdlc2J1aWxkJywgLy8gXHU2ODM5XHU2MzZFXHU3M0FGXHU1ODgzXHU5MDA5XHU2MkU5XHU1MzhCXHU3RjI5XHU1REU1XHU1MTc3XG4gIH1cblxuICAvLyBcdTU5ODJcdTY3OUNcdTY2MkZcdTc1MUZcdTRFQTdcdTczQUZcdTU4ODNcdUZGMENcdTZERkJcdTUyQTBUZXJzZXJcdTc2ODRcdTkxNERcdTdGNkVcbiAgaWYgKGlzUHJvZCkge1xuICAgIGJ1aWxkQ29uZmlnLnRlcnNlck9wdGlvbnMgPSB7XG4gICAgICBjb21wcmVzczoge1xuICAgICAgICBkcm9wX2NvbnNvbGU6IHRydWUsIC8vIFx1NTIyMFx1OTY2NCBjb25zb2xlXG4gICAgICAgIGRyb3BfZGVidWdnZXI6IHRydWUsIC8vIFx1NTIyMFx1OTY2NCBkZWJ1Z2dlclxuICAgICAgfSxcbiAgICAgIGZvcm1hdDoge1xuICAgICAgICBjb21tZW50czogZmFsc2UsIC8vIFx1NTIyMFx1OTY2NFx1NjI0MFx1NjcwOVx1NkNFOFx1OTFDQVxuICAgICAgfSxcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZGVmaW5lQ29uZmlnKHtcbiAgICBiYXNlOiBWSVRFX0FQUF9CQVNFLFxuICAgIGJ1aWxkOiBidWlsZENvbmZpZyxcblxuICAgIHBsdWdpbnM6IFtcbiAgICAgIHZ1ZSgpLFxuICAgICAgREMoKSxcbiAgICAgIEF1dG9JbXBvcnQoe1xuICAgICAgICBpbXBvcnRzOiBbXCJ2dWVcIiwgXCJ2dWUtcm91dGVyXCJdLCAvLyBcdTgxRUFcdTUyQThcdTVCRkNcdTUxNjV2dWVcdTU0OEN2dWUtcm91dGVyXHU3NkY4XHU1MTczXHU1MUZEXHU2NTcwXG4gICAgICB9KVxuICAgIF0sXG5cbiAgICBjc3M6IHtcbiAgICAgIHByZXByb2Nlc3Nvck9wdGlvbnM6IHtcbiAgICAgICAgc2Nzczoge1xuICAgICAgICAgIGFwaTogJ21vZGVybi1jb21waWxlcicsIC8vIFx1NEZFRVx1NjUzOWFwaVx1OEMwM1x1NzUyOFx1NjVCOVx1NUYwRlxuICAgICAgICAgIGFkZGl0aW9uYWxEYXRhOiBgQHVzZSBcIkAvc3R5bGVzL3ZhcmlhYmxlcy5zY3NzXCIgYXMgKjtgXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuXG4gICAgcmVzb2x2ZToge1xuICAgICAgYWxpYXM6IHtcbiAgICAgICAgJ34nOiByZXNvbHZlKF9fZGlybmFtZSwgJy4vJyksXG4gICAgICAgICdAJzogcmVzb2x2ZShfX2Rpcm5hbWUsICcuL3NyYycpLFxuICAgICAgICBjb21wb25lbnRzOiByZXNvbHZlKF9fZGlybmFtZSwgJy4vc3JjL2NvbXBvbmVudHMnKSxcbiAgICAgICAgc3R5bGVzOiByZXNvbHZlKF9fZGlybmFtZSwgJy4vc3JjL3N0eWxlcycpLFxuICAgICAgICB1dGlsczogcmVzb2x2ZShfX2Rpcm5hbWUsICcuL3NyYy91dGlscycpLFxuICAgICAgICBzdG9yZTogcmVzb2x2ZShfX2Rpcm5hbWUsICcuL3NyYy9zdG9yZScpLFxuICAgICAgICBob29rczogcmVzb2x2ZShfX2Rpcm5hbWUsICcuL3NyYy9ob29rcycpLFxuICAgICAgfSxcbiAgICB9LFxuXG4gICAgc2VydmVyOiB7XG4gICAgICBwb3J0OiA2NjgsXG4gICAgICBwcm94eToge1xuICAgICAgICAnL2FwaSc6IHtcbiAgICAgICAgICAvLyB0YXJnZXQ6ICdodHRwOi8vbG9jYWxob3N0JyxcbiAgICAgICAgICB0YXJnZXQ6ICdodHRwczovL3dyai5zaHVpeGlvbmdpdC5jb20vYXBpJyxcbiAgICAgICAgICBjaGFuZ2VPcmlnaW46IHRydWUsXG4gICAgICAgICAgcmV3cml0ZTogcGF0aCA9PiBwYXRoLnJlcGxhY2UoL15cXC9hcGkvLCAnJyksXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0sXG4gIH0pXG59XG4vLyBodHRwczovL3ZpdGUuZGV2L2NvbmZpZy9cblxuIl0sCiAgIm1hcHBpbmdzIjogIjtBQVVBLFNBQVMsY0FBYyxlQUFlO0FBQ3RDLFNBQVMsZUFBZTtBQUN4QixPQUFPLFNBQVM7QUFDaEIsT0FBTyxRQUFRO0FBRWYsT0FBTyxnQkFBZ0I7QUFmdkIsSUFBTSxtQ0FBbUM7QUFpQnpDLElBQU8sc0JBQVEsQ0FBQyxFQUFFLE1BQU0sUUFBUSxNQUFNO0FBQ3BDLFFBQU0sTUFBTSxRQUFRLE1BQU0sUUFBUSxJQUFJLENBQUM7QUFDdkMsUUFBTSxFQUFFLGNBQWMsY0FBYyxJQUFJO0FBRXhDLFFBQU0sU0FBUyxpQkFBaUI7QUFHaEMsUUFBTSxjQUFjO0FBQUEsSUFDbEIsUUFBUTtBQUFBLElBQ1IsUUFBUTtBQUFBLElBQ1IsUUFBUSxTQUFTLFdBQVc7QUFBQTtBQUFBLEVBQzlCO0FBR0EsTUFBSSxRQUFRO0FBQ1YsZ0JBQVksZ0JBQWdCO0FBQUEsTUFDMUIsVUFBVTtBQUFBLFFBQ1IsY0FBYztBQUFBO0FBQUEsUUFDZCxlQUFlO0FBQUE7QUFBQSxNQUNqQjtBQUFBLE1BQ0EsUUFBUTtBQUFBLFFBQ04sVUFBVTtBQUFBO0FBQUEsTUFDWjtBQUFBLElBQ0Y7QUFBQSxFQUNGO0FBRUEsU0FBTyxhQUFhO0FBQUEsSUFDbEIsTUFBTTtBQUFBLElBQ04sT0FBTztBQUFBLElBRVAsU0FBUztBQUFBLE1BQ1AsSUFBSTtBQUFBLE1BQ0osR0FBRztBQUFBLE1BQ0gsV0FBVztBQUFBLFFBQ1QsU0FBUyxDQUFDLE9BQU8sWUFBWTtBQUFBO0FBQUEsTUFDL0IsQ0FBQztBQUFBLElBQ0g7QUFBQSxJQUVBLEtBQUs7QUFBQSxNQUNILHFCQUFxQjtBQUFBLFFBQ25CLE1BQU07QUFBQSxVQUNKLEtBQUs7QUFBQTtBQUFBLFVBQ0wsZ0JBQWdCO0FBQUEsUUFDbEI7QUFBQSxNQUNGO0FBQUEsSUFDRjtBQUFBLElBRUEsU0FBUztBQUFBLE1BQ1AsT0FBTztBQUFBLFFBQ0wsS0FBSyxRQUFRLGtDQUFXLElBQUk7QUFBQSxRQUM1QixLQUFLLFFBQVEsa0NBQVcsT0FBTztBQUFBLFFBQy9CLFlBQVksUUFBUSxrQ0FBVyxrQkFBa0I7QUFBQSxRQUNqRCxRQUFRLFFBQVEsa0NBQVcsY0FBYztBQUFBLFFBQ3pDLE9BQU8sUUFBUSxrQ0FBVyxhQUFhO0FBQUEsUUFDdkMsT0FBTyxRQUFRLGtDQUFXLGFBQWE7QUFBQSxRQUN2QyxPQUFPLFFBQVEsa0NBQVcsYUFBYTtBQUFBLE1BQ3pDO0FBQUEsSUFDRjtBQUFBLElBRUEsUUFBUTtBQUFBLE1BQ04sTUFBTTtBQUFBLE1BQ04sT0FBTztBQUFBLFFBQ0wsUUFBUTtBQUFBO0FBQUEsVUFFTixRQUFRO0FBQUEsVUFDUixjQUFjO0FBQUEsVUFDZCxTQUFTLFVBQVEsS0FBSyxRQUFRLFVBQVUsRUFBRTtBQUFBLFFBQzVDO0FBQUEsTUFDRjtBQUFBLElBQ0Y7QUFBQSxFQUNGLENBQUM7QUFDSDsiLAogICJuYW1lcyI6IFtdCn0K
--
Gitblit v1.9.3