From 7bcdaba7faad85bf16bf0f2a1dbd3e390bdb15dd Mon Sep 17 00:00:00 2001
From: shuishen <1109946754@qq.com>
Date: Tue, 05 Nov 2024 21:15:40 +0800
Subject: [PATCH] 救援队伍统计、应急空间统计、风险源统计图表样式初步调整,园区概况布局调整 倾斜模型加载配置微调后续看加载效果 企业名录样式调整
---
src/views/survey/components/box/dataContent.vue | 180 +++++++-----
src/views/survey/components/box/fireSource.vue | 105 +++---
src/views/survey/components/leftContainer.vue | 22 +
src/hooks/useEchartsResize.js | 12
src/styles/page/index.scss | 14
src/views/survey/components/box/unitContent.vue | 60 ++--
src/views/survey/components/rightContainer.vue | 36 -
src/styles/base/paddingStyle.scss | 4
src/views/rs/components/rightContainer.vue | 6
src/views/survey/components/box/fireContent.vue | 164 ++++++++---
/dev/null | 26 -
src/views/survey/components/box/fireTrend.vue | 110 +++----
src/views/rs/components/leftContainer.vue | 12
src/views/layout/components/scomponents/baseMap.vue | 4
src/views/layout/components/scomponents/layersControl.vue | 26 +
15 files changed, 445 insertions(+), 336 deletions(-)
diff --git a/src/hooks/useEchartsResize.js b/src/hooks/useEchartsResize.js
new file mode 100644
index 0000000..82553a1
--- /dev/null
+++ b/src/hooks/useEchartsResize.js
@@ -0,0 +1,12 @@
+
+export function useEchartsResize (echartsResize) {
+ // 在组件挂载时开始观察
+ onMounted(() => {
+ window.addEventListener("resize", echartsResize)
+ })
+
+ // 在组件卸载时停止观察
+ onUnmounted(() => {
+ window.removeEventListener("resize", echartsResize)
+ })
+}
\ No newline at end of file
diff --git a/src/styles/base/paddingStyle.scss b/src/styles/base/paddingStyle.scss
index e5e4302..b76a49f 100644
--- a/src/styles/base/paddingStyle.scss
+++ b/src/styles/base/paddingStyle.scss
@@ -6,6 +6,10 @@
padding: 0 20px;
}
+.p-all-0 {
+ padding: 0px;
+}
+
.p-all-6 {
padding: 6px;
}
diff --git a/src/styles/page/index.scss b/src/styles/page/index.scss
index a6bda6c..a34c74d 100644
--- a/src/styles/page/index.scss
+++ b/src/styles/page/index.scss
@@ -9,13 +9,11 @@
width: 408px;
height: 100%;
pointer-events: auto;
- background: rgba(28, 115, 195, 0.05);
+ background: rgba(28, 115, 195, 0.2);
&>div {
- flex: 1;
display: flex;
flex-direction: column;
- flex-shrink: 0;
.title-box {
position: relative;
@@ -46,7 +44,9 @@
}
.content-box {
- flex: 1;
+ display: flex;
+ flex-direction: column;
+ height: calc(100% - 38px);
}
}
@@ -54,4 +54,10 @@
// background: rgba(42,64,120,0.68);
}
}
+
+ .left-container {}
+
+ .right-container {
+ right: 0;
+ }
}
\ No newline at end of file
diff --git a/src/views/layout/components/scomponents/baseMap.vue b/src/views/layout/components/scomponents/baseMap.vue
index 2e84c5e..3d8cb0d 100644
--- a/src/views/layout/components/scomponents/baseMap.vue
+++ b/src/views/layout/components/scomponents/baseMap.vue
@@ -2,7 +2,7 @@
* @Author: shuishen 1109946754@qq.com
* @Date: 2024-10-28 11:44:45
* @LastEditors: shuishen 1109946754@qq.com
- * @LastEditTime: 2024-10-29 20:50:40
+ * @LastEditTime: 2024-11-05 18:39:20
* @FilePath: \bigScreen\src\views\layout\components\scomponents\baseMap.vue
* @Description:
*
@@ -275,7 +275,7 @@
curMode.value = mode
}
-loadLAYER(0, 0)
+loadLAYER(1, 1)
const showTerrainFlag = ref(false)
diff --git a/src/views/layout/components/scomponents/layersControl.vue b/src/views/layout/components/scomponents/layersControl.vue
index d24382c..0826c86 100644
--- a/src/views/layout/components/scomponents/layersControl.vue
+++ b/src/views/layout/components/scomponents/layersControl.vue
@@ -2,7 +2,7 @@
* @Author: shuishen 1109946754@qq.com
* @Date: 2024-10-31 10:47:29
* @LastEditors: shuishen 1109946754@qq.com
- * @LastEditTime: 2024-11-04 22:42:54
+ * @LastEditTime: 2024-11-05 18:36:54
* @FilePath: \bigScreen\src\views\layout\components\scomponents\layersControl.vue
* @Description:
*
@@ -244,10 +244,24 @@
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])
+ if (!addTileLayers[item.layerName]) {
+ addTileLayers[item.layerName] = new DC.Tileset(
+ item.url,
+ {
+ cullWithChildrenBounds: false,
+ maximumScreenSpaceError: 256,
+ maximumMemoryUsage: 1024,
+ skipLevelOfDetail: true,
+ preferLeaves: true
+ })
+
+ tileLayers.addOverlay(addTileLayers[item.layerName])
+ } else {
+ addTileLayers[item.layerName].show = true
+ }
+
+ console.log(addTileLayers[item.layerName], 11111111)
+
globalViewer.flyTo(addTileLayers[item.layerName])
} else if (item.subType == 'labelPoint') {
if (!addTileLayers[item.layerName]) {
@@ -275,7 +289,7 @@
} else {
if (addTileLayers[item.layerName]) {
if (item.subType == '3Dtile') {
- tileLayers.removeOverlay(addTileLayers[item.layerName])
+ addTileLayers[item.layerName].show = false
} else if (item.subType == 'labelPoint') {
globalViewer.removeLayer(addTileLayers[item.layerName])
}
diff --git a/src/views/rs/components/leftContainer.vue b/src/views/rs/components/leftContainer.vue
index 0781c33..7d92c6b 100644
--- a/src/views/rs/components/leftContainer.vue
+++ b/src/views/rs/components/leftContainer.vue
@@ -22,7 +22,9 @@
数据概览
</template>
</title-box>
- <data-content></data-content>
+ <div class="content-box">
+ <data-content></data-content>
+ </div>
</div>
<div class="unit box">
@@ -31,7 +33,9 @@
入住单位统计
</template>
</title-box>
- <unit-content></unit-content>
+ <div class="content-box">
+ <unit-content></unit-content>
+ </div>
</div>
<div class="fire box">
@@ -40,7 +44,9 @@
实时火警事件
</template>
</title-box>
- <fire-content></fire-content>
+ <div class="content-box">
+ <fire-content></fire-content>
+ </div>
</div>
</div>
</template>
diff --git a/src/views/rs/components/rightContainer.vue b/src/views/rs/components/rightContainer.vue
index 67eb54e..3037fd7 100644
--- a/src/views/rs/components/rightContainer.vue
+++ b/src/views/rs/components/rightContainer.vue
@@ -23,7 +23,9 @@
火警事件来源
</template>
</title-box>
+ <div class="content-box">
<fire-source></fire-source>
+ </div>
</div>
<div class="occur-statistics box">
@@ -32,7 +34,9 @@
易发区统计
</template>
</title-box>
+ <div class="content-box">
<fire-trend></fire-trend>
+ </div>
</div>
<div class="fire-trend box">
@@ -41,7 +45,9 @@
火警上报趋势
</template>
</title-box>
+ <div class="content-box">
<occur-statistics></occur-statistics>
+ </div>
</div>
</div>
</template>
diff --git a/src/views/survey/components/box/dataContent.vue b/src/views/survey/components/box/dataContent.vue
index 3c61513..b23ff73 100644
--- a/src/views/survey/components/box/dataContent.vue
+++ b/src/views/survey/components/box/dataContent.vue
@@ -1,95 +1,127 @@
-
+<!--
+ * @Author: shuishen 1109946754@qq.com
+ * @Date: 2024-11-04 16:32:04
+ * @LastEditors: shuishen 1109946754@qq.com
+ * @LastEditTime: 2024-11-05 17:12:37
+ * @FilePath: \bigScreen\src\views\survey\components\box\dataContent.vue
+ * @Description:
+ *
+ * Copyright (c) 2024 by shuishen, All Rights Reserved.
+-->
<script setup>
-import publicContent from './publicContent.vue'
-
// import { ref, reactive, onMounted, nextTick, inject } from 'vue'
-
+import { useEchartsResize } from 'hooks/useEchartsResize'
import { getRescueTeamStatistic } from '@/api/indParkInfo'
+import { nextTick } from 'vue'
let $echarts = inject('echarts')
const curEcharts = ref(null)
let myEcharts = reactive(null)
-onMounted(() => {
- nextTick(() => {
- myEcharts = $echarts.init(curEcharts.value)
- getStatistic()
-
+function getStatistic () {
+ getRescueTeamStatistic().then(res => {
+ let xaxis_data = []
+ let yaxis_data = []
+ res.data.data.forEach(element => {
+ xaxis_data.push(element.type)
+ yaxis_data.push(element.num)
})
-})
-
-function getStatistic() {
- getRescueTeamStatistic().then(res => {
- let xaxis_data = []
- let yaxis_data = []
- res.data.data.forEach(element => {
- xaxis_data.push(element.type)
- yaxis_data.push(element.num)
- });
-
- myEcharts.setOption({
- tooltip: {
- trigger: 'axis',
- axisPointer: {
- type: 'shadow'
- }
- },
- grid: {
- left: '3%',
- right: '4%',
- bottom: '3%',
- containLabel: true
- },
- xAxis: [
- {
- type: 'category',
- data: xaxis_data,
- axisTick: {
- alignWithLabel: true
- }
- }
- ],
- yAxis: [
- {
- type: 'value'
- }
- ],
- series: [
- {
- name: 'Direct',
- type: 'bar',
- barWidth: '30%',
- data: yaxis_data
- }
- ]
- })
+ myEcharts.setOption({
+ tooltip: {
+ trigger: 'axis',
+ axisPointer: {
+ type: 'shadow'
+ }
+ },
+ grid: {
+ top: '6%',
+ left: '6%',
+ right: '6%',
+ bottom: '6%',
+ containLabel: true
+ },
+ xAxis: [
+ {
+ type: 'category',
+ data: xaxis_data,
+ axisTick: {
+ alignWithLabel: true
+ },
+ nameTextStyle: {
+ color: '#fff'
+ },
+ axisLine: {
+ lineStyle: {
+ color: '#fff'
+ }
+ },
+ axisTick: {
+ alignWithLabel: true,
+ lineStyle: {
+ color: '#fff'
+ }
+ },
+ axisLabel: {
+ color: '#fff'
+ },
+ }
+ ],
+ yAxis: [
+ {
+ type: 'value',
+ nameTextStyle: {
+ color: '#fff'
+ },
+ axisLine: {
+ lineStyle: {
+ color: '#fff'
+ }
+ },
+ axisTick: {
+ lineStyle: {
+ color: '#fff'
+ }
+ },
+ axisLabel: {
+ color: '#fff'
+ },
+ }
+ ],
+ series: [
+ {
+ name: '救援人数',
+ type: 'bar',
+ barWidth: '30',
+ data: yaxis_data,
+ itemStyle: {
+ color: 'rgb(0, 0, 144)'
+ }
+ }
+ ]
})
+
+
+ })
}
+nextTick(() => {
+ myEcharts = $echarts.init(curEcharts.value)
+ getStatistic()
+})
+const echartsResize = () => {
+ myEcharts && myEcharts.resize()
+}
+
+useEchartsResize(echartsResize)
</script>
<template>
- <public-content>
- <template #content>
- <div class="unit-content">
- <div class="unit-content-echarts" ref="curEcharts">
+ <div class="w100 h100" ref="curEcharts">
- </div>
- </div>
- </template>
- </public-content>
+ </div>
</template>
-<style lang="scss" scoped>
-.data-content {
- color: #fff;
-
-}
-
-.unit-content-echarts {
- height: 200px;
-}
-</style>
\ No newline at end of file
+<style lang="scss" scoped></style>
\ No newline at end of file
diff --git a/src/views/survey/components/box/fireContent.vue b/src/views/survey/components/box/fireContent.vue
index 4fe904b..6afa14d 100644
--- a/src/views/survey/components/box/fireContent.vue
+++ b/src/views/survey/components/box/fireContent.vue
@@ -2,15 +2,14 @@
* @Author: shuishen 1109946754@qq.com
* @Date: 2024-11-04 16:32:04
* @LastEditors: shuishen 1109946754@qq.com
- * @LastEditTime: 2024-11-04 16:32:58
+ * @LastEditTime: 2024-11-05 17:42:44
* @FilePath: \bigScreen\src\views\survey\components\box\fireContent.vue
* @Description:
*
* Copyright (c) 2024 by shuishen, All Rights Reserved.
-->
<script setup>
-import publicContent from './publicContent.vue'
-
+import { useEchartsResize } from 'hooks/useEchartsResize'
import { getRiskSourceStatistic } from '../../../../api/indParkInfo'
let $echarts = inject('echarts')
@@ -18,85 +17,154 @@
let myEcharts = reactive(null)
-onMounted(() => {
- myEcharts = $echarts.init(curEcharts.value)
- getRiskSource()
-
-})
-
+let typeLevel = [
+ {
+ name: '低',
+ itemStyle: {
+ color: '#31B5FF'
+ }
+ },
+ {
+ name: '一般',
+ itemStyle: {
+ color: '#FFFF00'
+ }
+ },
+ {
+ name: '较大',
+ itemStyle: {
+ color: '#FFC000'
+ }
+ },
+ {
+ name: '重大',
+ itemStyle: {
+ color: '#FE0000'
+ }
+ }
+]
function getRiskSource () {
getRiskSourceStatistic().then(res => {
let xaxis_data = []
let yaxis_data = []
+ let seriesData = []
res.data.data.forEach(element => {
xaxis_data.push(element.riskLevel)
- yaxis_data.push(element.num)
+ yaxis_data.push({
+ name: element.riskLevel,
+ value: element.num
+ })
+
+ seriesData.push({
+ name: element.riskLevel,
+ type: 'bar',
+ data: [],
+ barWidth: '30',
+ barGap: '-100%',
+ itemStyle: typeLevel.find(i => i.name == element.riskLevel).itemStyle
+ })
})
+
+ seriesData = seriesData.map(item => {
+ return {
+ ...item,
+ data: yaxis_data.map(i => {
+ return i.name == item.name ? i.value : 0
+ })
+ }
+ })
+
myEcharts.setOption({
+ legend: {
+ data: xaxis_data,
+ top: "5%",
+ right: "5%",
+ textStyle: {
+ color: '#fff'
+ }
+ },
+
tooltip: {
- trigger: 'axis',
axisPointer: {
type: 'shadow'
}
},
+
grid: {
- left: '3%',
- right: '4%',
- bottom: '3%',
+ top: '16%',
+ left: '6%',
+ right: '6%',
+ bottom: '6%',
containLabel: true
},
+
xAxis: [
{
type: 'category',
data: xaxis_data,
+ nameTextStyle: {
+ color: '#fff'
+ },
+ axisLine: {
+ lineStyle: {
+ color: '#fff'
+ }
+ },
axisTick: {
- alignWithLabel: true
- }
+ alignWithLabel: true,
+ lineStyle: {
+ color: '#fff'
+ }
+ },
+ axisLabel: {
+ color: '#fff'
+ },
}
],
+
yAxis: [
{
- type: 'value'
+ type: 'value',
+ nameTextStyle: {
+ color: '#fff'
+ },
+ axisLine: {
+ lineStyle: {
+ color: '#fff'
+ }
+ },
+ axisTick: {
+ lineStyle: {
+ color: '#fff'
+ }
+ },
+ axisLabel: {
+ color: '#fff'
+ },
}
],
- series: [
- {
- name: 'Direct',
- type: 'bar',
- barWidth: '30%',
- data: yaxis_data
- }
- ]
+ series: seriesData
})
})
}
+
+nextTick(() => {
+ myEcharts = $echarts.init(curEcharts.value)
+ getRiskSource()
+})
+
+const echartsResize = () => {
+ myEcharts && myEcharts.resize()
+}
+
+useEchartsResize(echartsResize)
</script>
<template>
- <public-content>
- <template #content>
- <div class="fireContent-box">
+ <div class="w100 h100" ref="curEcharts">
- <div>
- <div class="fire-content-echarts" ref="curEcharts">
-
-
- </div>
-
- </div>
-
- </div>
- </template>
- </public-content>
+ </div>
</template>
-<style lang="scss" scoped>
-.fireContent-box {
- color: #fff;
-}
-
-.fire-content-echarts {
- height: 200px;
-}
-</style>
\ No newline at end of file
+<style lang="scss" scoped></style>
\ No newline at end of file
diff --git a/src/views/survey/components/box/fireSource.vue b/src/views/survey/components/box/fireSource.vue
index 89233ab..fe9f2a9 100644
--- a/src/views/survey/components/box/fireSource.vue
+++ b/src/views/survey/components/box/fireSource.vue
@@ -1,6 +1,5 @@
<script setup>
import { Text } from 'vue'
-import publicContent from './publicContent.vue'
const { VITE_APP_BASE } = import.meta.env
import { getDetail } from '@/api/indParkInfo'
@@ -86,45 +85,38 @@
</script>
<template>
- <public-content>
- <template #content>
- <div class="box-content-box">
- <div class="box-content">
- <div>
- <div class="box-content-img">
- <img :src="state.parkInfo.imageUrls" alt="">
- {{ state.parkInfo.remark }}
- </div>
- </div>
+ <div class="box-content-box">
+ <div class="box-content">
+ <div>
+ <div class="box-content-img">
+ <img :src="state.parkInfo.imageUrls" alt="">
+ {{ state.parkInfo.remark }}
</div>
+ </div>
+ </div>
- <div class="container">
- <div class="box-content-sj" v-for="item in parkInfoList" :key="item.id">
- <img :src="item.img" alt="">
- <div>
- <div class="box-content-ss">
- <div>
- <div class="box-content-text-title">
- <span class="box-content-text-title-span">{{ item.content }}</span>
- </div>
- </div>
- <div>
- <div class="box-content-text-content">
- <text class="box-content-text-content-span">{{ item.title }}</text>
- <text v-if="item.unit" class="box-content-text-content-span">({{ item.unit }})</text>
- </div>
- </div>
- </div>
- </div>
+ <div class="container">
+ <div class="box-content-sj" v-for="item in parkInfoList" :key="item.id">
+ <img :src="item.img" alt="">
+
+ <div class="r">
+ <div class="box-content-text-title">
+ {{ item.content }}
+ </div>
+
+ <div class="box-content-text-content">
+ {{ item.title }}
+ <text v-if="item.unit">({{ item.unit }})</text>
</div>
</div>
</div>
- </template>
- </public-content>
+ </div>
+ </div>
</template>
<style lang="scss" scoped>
.box-content-box {
+ padding: 10px;
color: #fff;
font-size: 15px;
}
@@ -135,7 +127,7 @@
}
.box-content-img {
- height: 300px;
+ height: 360px;
overflow-x: hidden;
overflow-y: auto;
}
@@ -155,7 +147,7 @@
.box-content-text {
padding-left: 5px;
- height: 300px;
+ height: 360px;
overflow: scroll;
// 隐藏滚动条
scrollbar-width: none;
@@ -163,43 +155,48 @@
}
.container {
+ margin-top: 10px;
display: flex;
+ justify-content: space-around;
flex-wrap: wrap;
gap: 5px;
}
.box-content-sj {
- flex: 1 1 31%;
/* 每个盒子占据大约31%的宽度,留出一些空间用于间距 */
- min-width: 100px;
+ min-width: 30%;
/* 最小宽度,防止在非常小的屏幕上变得太窄 */
box-sizing: border-box;
- padding: 5px;
// border: 1px solid #ccc;
display: flex;
// 设置高度
align-items: center;
-}
+ justify-content: space-between;
-.box-content-sj img {
- width: 36px;
- height: 36px;
- vertical-align: middle;
-}
+ img {
+ width: 36px;
+ height: 36px;
+ vertical-align: middle;
+ }
-.box-content-ss {
- margin: 0px 0px 0px 10px;
-}
+ .r {
+ margin-left: 6px;
+ flex: 1;
+ display: flex;
+ flex-direction: column;
+ justify-content: space-around;
-.box-content-text-title,
-.box-content-text-content {
- margin-top: 5px;
- font-size: 10px;
- text-align: center;
-}
+ .box-content-text-title,
+ .box-content-text-content {
+ margin-top: 5px;
+ font-size: 10px;
+ text-align: center;
+ }
-.box-content-text-title-span,
-.box-content-text-content-span {
- font-weight: bold;
+ .box-content-text-title {
+ font-size: 16px;
+ font-weight: bold;
+ }
+ }
}
</style>
\ No newline at end of file
diff --git a/src/views/survey/components/box/fireTrend.vue b/src/views/survey/components/box/fireTrend.vue
index d9b6f07..0b1dacb 100644
--- a/src/views/survey/components/box/fireTrend.vue
+++ b/src/views/survey/components/box/fireTrend.vue
@@ -2,15 +2,13 @@
* @Author: shuishen 1109946754@qq.com
* @Date: 2023-03-13 14:54:26
* @LastEditors: shuishen 1109946754@qq.com
- * @LastEditTime: 2024-11-01 10:28:42
+ * @LastEditTime: 2024-11-05 20:39:31
* @FilePath: \bigScreen\src\views\survey\components\box\fireTrend.vue
* @Description:
*
* Copyright (c) 2023 by ${git_name_email}, All Rights Reserved.
-->
<script setup>
-import publicContent from './publicContent.vue'
-
import { getPage } from '@/api/indParkInfo'
let parkQy = ref([])
@@ -22,7 +20,7 @@
})
-function getPages() {
+function getPages () {
getPage().then(res => {
parkQy.value = res.data.data.records
console.log(res)
@@ -31,7 +29,7 @@
})
}
-function search() {
+function search () {
getPage({ name: searchQuery.value }).then(res => {
parkQy.value = res.data.data.records
console.log(res)
@@ -43,75 +41,75 @@
</script>
<template>
- <public-content>
- <template #content>
- <div class="box-content w100 h100 flex f-d-c">
- <div>
- <div class="search-container">
- <input type="text" v-model="searchQuery" placeholder="请输入企业名称" class="search-input" />
- <button class="search-button" @click="search">搜索</button>
- </div>
- </div>
-
- <div class="data-content-list">
- <div class="data-content-item" v-for="item in parkQy" :key="item.id">
- <div> {{ item.name }}</div>
- <el-button size="small" type="primary">进入企业</el-button>
- </div>
- </div>
+ <div class="box-content w100 h100 flex f-d-c">
+ <div>
+ <div class="search-container">
+ <el-input v-model="searchQuery" placeholder="请输入企业名称" size="mini">
+ </el-input>
+ <el-button :color="'#007bff'" @click="search" size="mini">搜索</el-button>
</div>
- </template>
- </public-content>
+ </div>
+
+ <div class="data-content-list">
+ <div class="data-content-item" v-for="item in parkQy" :key="item.id">
+ <div> {{ item.name }}</div>
+ <el-button size="small" type="primary" color="rgba(23,82,240, 0.7)">进入企业</el-button>
+ </div>
+ </div>
+ </div>
</template>
<style lang="scss" scoped>
.box-content {
color: #fff;
+ padding: 0 10px;
}
.search-container {
+ margin: 10px 0;
display: flex;
align-items: center;
justify-content: center;
- margin: 10px 0px;
+
+ ::v-deep(.el-input) {
+ width: 0;
+ flex: 1;
+
+ .el-input__wrapper {
+ font-size: 16px;
+ font-weight: 400;
+ border-radius: 0;
+ background: rgba(135, 158, 199, 0.3);
+ box-shadow: inset 0px 3px 7px 0px rgba(42, 138, 236, 0.95);
+
+ .el-input__inner {
+ color: #BFD3E5;
+ }
+ }
+ }
+
+ ::v-deep(.el-button) {
+ border-radius: 0;
+ }
}
.data-content-list {
flex: 1;
overflow-y: auto;
-}
-.search-input {
- width: 79%;
- /* 可以根据需要调整宽度 */
- padding: 10px;
- border: 1px solid #ccc;
- border-radius: 4px 0 0 4px;
- outline: none;
- background-color: transparent;
- color: #fff;
-}
+ .data-content-item {
+ margin-top: 10px;
+ padding: 0 10px;
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ height: 32px;
+ background: linear-gradient(rgba(45, 45, 255, 0.1), rgba(45, 94, 255, 0.7));
+ border-radius: 2px;
+ }
-.search-button {
- padding: 10px 20px;
- border: 1px solid #ccc;
- border-radius: 0 4px 4px 0;
- background-color: #007bff;
- color: white;
- cursor: pointer;
- transition: background-color 0.3s;
-}
-
-.search-button:hover {
- background-color: #0056b3;
-}
-
-.data-content-item {
- display: flex;
- margin: 2px 10px;
- padding: 5px 5px;
- background-color: #747bff;
- justify-content: space-between;
- border-radius: 5px;
+ .data-content-item:first-child {
+ margin-top: 0;
+ }
}
</style>
\ No newline at end of file
diff --git a/src/views/survey/components/box/publicContent.vue b/src/views/survey/components/box/publicContent.vue
deleted file mode 100644
index f247dd4..0000000
--- a/src/views/survey/components/box/publicContent.vue
+++ /dev/null
@@ -1,26 +0,0 @@
-<!--
- * @Author: shuishen 1109946754@qq.com
- * @Date: 2023-03-13 14:54:26
- * @LastEditors: shuishen 1109946754@qq.com
- * @LastEditTime: 2024-11-01 10:35:55
- * @FilePath: \bigScreen\src\views\survey\components\box\publicContent.vue
- * @Description:
- *
- * Copyright (c) 2023 by ${git_name_email}, All Rights Reserved.
--->
-<script setup>
-
-</script>
-
-<template>
- <div class="content">
- <slot name="content"></slot>
- </div>
-</template>
-
-<style lang="scss" scoped>
-.content {
- padding: 20px 0;
- height: calc(100% - 32px);
-}
-</style>
\ No newline at end of file
diff --git a/src/views/survey/components/box/unitContent.vue b/src/views/survey/components/box/unitContent.vue
index e38a6b6..7e68486 100644
--- a/src/views/survey/components/box/unitContent.vue
+++ b/src/views/survey/components/box/unitContent.vue
@@ -2,14 +2,14 @@
* @Author: shuishen 1109946754@qq.com
* @Date: 2023-03-13 14:54:26
* @LastEditors: shuishen 1109946754@qq.com
- * @LastEditTime: 2024-11-04 13:58:17
+ * @LastEditTime: 2024-11-05 17:15:55
* @FilePath: \bigScreen\src\views\survey\components\box\unitContent.vue
* @Description:
*
* Copyright (c) 2023 by ${git_name_email}, All Rights Reserved.
-->
<script setup>
-import publicContent from './publicContent.vue'
+import { useEchartsResize } from 'hooks/useEchartsResize'
import { getEmergencySpaceStatistic } from '../../../../api/indParkInfo'
@@ -17,14 +17,6 @@
const curEcharts = ref(null)
let myEcharts = reactive(null)
-
-onMounted(() => {
- nextTick(() => {
- myEcharts = $echarts.init(curEcharts.value)
- getEmergencySpace()
-
- })
-})
function getEmergencySpace () {
getEmergencySpaceStatistic().then(res => {
@@ -41,8 +33,21 @@
myEcharts.setOption({
legend: {
orient: "vertical",
- left: "left",
+ top: '5%',
+ left: "5%",
+ textStyle: {
+ color: '#fff'
+ }
},
+
+ grid: {
+ top: '6%',
+ left: '6%',
+ right: '6%',
+ bottom: '6%',
+ containLabel: true
+ },
+
tooltip: {
trigger: 'item'
},
@@ -51,7 +56,8 @@
{
// name: 'Access From',
type: 'pie',
- radius: ['40%', '70%'],
+ left: '10%',
+ radius: ['30%', '60%'],
// avoidLabelOverlap: false,
// padAngle: 5,
// itemStyle: {
@@ -80,26 +86,22 @@
})
}
+nextTick(() => {
+ myEcharts = $echarts.init(curEcharts.value)
+ getEmergencySpace()
+})
+
+const echartsResize = () => {
+ myEcharts && myEcharts.resize()
+}
+
+useEchartsResize(echartsResize)
</script>
<template>
- <public-content>
- <template #content>
- <div class="unit-content">
- <div class="unit-content-echarts" ref="curEcharts">
+ <div class="w100 h100" ref="curEcharts">
- </div>
- </div>
- </template>
- </public-content>
+ </div>
</template>
-<style lang="scss" scoped>
-.unit-content {
- color: #fff;
-}
-
-.unit-content-echarts {
- height: 200px;
-}
-</style>
\ No newline at end of file
+<style lang="scss" scoped></style>
\ No newline at end of file
diff --git a/src/views/survey/components/leftContainer.vue b/src/views/survey/components/leftContainer.vue
index 94e09ea..581965a 100644
--- a/src/views/survey/components/leftContainer.vue
+++ b/src/views/survey/components/leftContainer.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:43:23
- * @FilePath: \bigScreen\src\views\statistics\components\leftContainer.vue
+ * @LastEditTime: 2024-11-05 16:33:44
+ * @FilePath: \bigScreen\src\views\survey\components\leftContainer.vue
* @Description:
*
* Copyright (c) 2023 by ${git_name_email}, All Rights Reserved.
@@ -16,31 +16,37 @@
<template>
<div class="left-container">
- <div class="data box">
+ <div class="data box h0 flex-1 flex f-d-c">
<title-box>
<template #titleName>
救援队伍统计
</template>
</title-box>
- <data-content></data-content>
+ <div class="content-box">
+ <data-content></data-content>
+ </div>
</div>
- <div class="unit box">
+ <div class="unit box h0 flex-1">
<title-box>
<template #titleName>
应急空间统计
</template>
</title-box>
- <unit-content></unit-content>
+ <div class="content-box">
+ <unit-content></unit-content>
+ </div>
</div>
- <div class="fire box">
+ <div class="fire box h0 flex-1">
<title-box>
<template #titleName>
风险源统计
</template>
</title-box>
- <fire-content></fire-content>
+ <div class="content-box">
+ <fire-content></fire-content>
+ </div>
</div>
</div>
</template>
diff --git a/src/views/survey/components/rightContainer.vue b/src/views/survey/components/rightContainer.vue
index 6932b8a..099cf8b 100644
--- a/src/views/survey/components/rightContainer.vue
+++ b/src/views/survey/components/rightContainer.vue
@@ -2,7 +2,7 @@
* @Author: shuishen 1109946754@qq.com
* @Date: 2023-03-10 15:27:59
* @LastEditors: shuishen 1109946754@qq.com
- * @LastEditTime: 2024-11-01 11:22:02
+ * @LastEditTime: 2024-11-05 17:46:24
* @FilePath: \bigScreen\src\views\survey\components\rightContainer.vue
* @Description:
*
@@ -19,13 +19,15 @@
<div class="mt-10 w100 h100 flex f-d-c a-i-c j-c-s-p"></div>
<div class="right-container">
- <div class="h0 fire-source box">
+ <div class="box">
<title-box>
<template #titleName>
园区简介
</template>
</title-box>
- <fire-source></fire-source>
+ <div class="content-box">
+ <fire-source></fire-source>
+ </div>
</div>
<!-- <div class="fire-trend box">
@@ -38,37 +40,19 @@
</div> -->
- <div class="h0 occur-statistics box">
+ <div class="h0 flex-1 box">
<title-box>
<template #titleName>
企业名录
</template>
</title-box>
- <fire-trend></fire-trend>
+ <div class="content-box">
+ <fire-trend></fire-trend>
+ </div>
</div>
</div>
</template>
-<style lang="scss" scoped>
-.right-container {
- display: flex;
- flex-direction: column;
- padding: 20px;
- position: absolute;
- top: 0;
- right: 0;
- width: 440px;
- height: 100%;
- pointer-events: auto;
-
- .fire-source {
- flex: 3;
- }
-
- .occur-statistics {
- flex: 2;
- }
-}
-</style>
\ No newline at end of file
+<style lang="scss" scoped></style>
\ No newline at end of file
--
Gitblit v1.9.3