From 00468a057ca642bc535dfdf80c7c1c7716eea4f0 Mon Sep 17 00:00:00 2001
From: shuishen <1109946754@qq.com>
Date: Wed, 27 Nov 2024 19:32:14 +0800
Subject: [PATCH] 地图销毁相关处理
---
src/views/supplies/index.vue | 24
src/views/rt/components/dataContent.vue | 197 +++++++++++++
src/views/companyInfo/components/box/unitContent.vue | 198 ++++++------
src/views/pd/components/dynamicPanel.vue | 8
src/views/rs/components/box/dataContent.vue | 18
src/views/companyInfo/components/box/fireTrend.vue | 4
src/views/companyInfo/index.vue | 6
src/views/rt/index.vue | 23
src/pages/layout/components/scomponents/layersControl.vue | 8
src/views/companyInfo/components/box/dataContent.vue | 2
src/views/supplies/components/dataContent.vue | 279 ++++++++++++++++++
src/pages/layout/components/mainSearch.vue | 6
src/pages/layout/components/scomponents/tool/curtain.vue | 80 ++--
src/views/space/components/box/dataContent.vue | 2
14 files changed, 668 insertions(+), 187 deletions(-)
diff --git a/src/pages/layout/components/mainSearch.vue b/src/pages/layout/components/mainSearch.vue
index 9fc1b5f..f737973 100644
--- a/src/pages/layout/components/mainSearch.vue
+++ b/src/pages/layout/components/mainSearch.vue
@@ -49,7 +49,7 @@
}
}
-function getFuzzyQuery() {
+function getFuzzyQuery () {
fuzzyQuery({
name: searchVal.value
}).then(res => {
@@ -119,7 +119,7 @@
}
-function clearPoint() {
+function clearPoint () {
let arr = Object.keys(addTileLayers)
arr.forEach(i => {
addTileLayers[i] && window.$viewer.removeLayer(addTileLayers[i])
@@ -129,7 +129,7 @@
onUnmounted(() => {
let arr = Object.keys(addTileLayers)
arr.forEach(i => {
- addTileLayers[i] && window.$viewer.removeLayer(addTileLayers[i])
+ addTileLayers[i] && window.$viewer && window.$viewer.removeLayer(addTileLayers[i])
})
})
</script>
diff --git a/src/pages/layout/components/scomponents/layersControl.vue b/src/pages/layout/components/scomponents/layersControl.vue
index 7251ba0..d428091 100644
--- a/src/pages/layout/components/scomponents/layersControl.vue
+++ b/src/pages/layout/components/scomponents/layersControl.vue
@@ -882,7 +882,7 @@
addTileLayers[item.layerName].forEach(m => m.show = false)
} else {
addTileLayers[item.layerName].clear()
- window.$viewer.removeLayer(addTileLayers[item.layerName])
+ window.$viewer && window.$viewer.removeLayer(addTileLayers[item.layerName])
delete addTileLayers[item.layerName]
}
@@ -967,7 +967,7 @@
function destroy () {
let arr = Object.keys(addPupoLayers)
arr.filter(i => i != 'hgyq').forEach(i => {
- addPupoLayers[i] && window.$viewer.removeLayer(addPupoLayers[i])
+ addPupoLayers[i] && window.$viewer && window.$viewer.removeLayer(addPupoLayers[i])
})
addPupoLayers = {}
}
@@ -975,13 +975,13 @@
onUnmounted(() => {
if (tileLayers) {
tileLayers.clear()
- window.$viewer.removeLayer(tileLayers)
+ window.$viewer && window.$viewer.removeLayer(tileLayers)
tileLayers = null
}
let arr = Object.keys(addTileLayers)
arr.filter(i => i != 'hgyq').forEach(i => {
- addTileLayers[i] && window.$viewer.removeLayer(addTileLayers[i])
+ addTileLayers[i] && window.$viewer && window.$viewer.removeLayer(addTileLayers[i])
})
// 弹窗销毁
destroy()
diff --git a/src/pages/layout/components/scomponents/tool/curtain.vue b/src/pages/layout/components/scomponents/tool/curtain.vue
index 8b5074d..87d2bce 100644
--- a/src/pages/layout/components/scomponents/tool/curtain.vue
+++ b/src/pages/layout/components/scomponents/tool/curtain.vue
@@ -2,25 +2,25 @@
* @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
+ * @LastEditTime: 2024-11-27 19:17:04
+ * @FilePath: \bigScreen\src\pages\layout\components\scomponents\tool\curtain.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>
+ <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 #close>
+ <div class="close cursor-p" @click="$emit('closeChild')"><i class="fa fa-close"></i></div>
+ </template>
- <template #content>
- <div class="cur-btn">
- <!-- <div class="m-4">
+ <template #content>
+ <div class="cur-btn">
+ <!-- <div class="m-4">
<p>左侧图层</p>
<el-select class="transparent-bg" v-model="value1" placeholder="天地图">
<el-option v-for="item in components" :key="item.value" :label="item.label" :value="item.value" />
@@ -32,11 +32,11 @@
<el-option v-for="item in components" :key="item.value" :label="item.label" :value="item.value" />
</el-select>
</div> -->
- </div>
- </template>
- </public-box>
+ </div>
+ </template>
+ </public-box>
</template>
-
+
<script setup>
const value1 = ref([])
const value2 = ref([])
@@ -44,65 +44,65 @@
onMounted(() => {
- window.$viewer.sceneSplit.enable = true
+ window.$viewer.sceneSplit.enable = true
})
// 关闭
const close = () => {
- window.$viewer.sceneSplit.enable = false
+ window.$viewer.sceneSplit.enable = false
}
const flyTo = () => {
- // window.$viewer.flyToPosition(new DC.Position(longitude.value, latitude.value, height.value, 0, -90, 0), () => { }, 3)
+ // window.$viewer.flyToPosition(new DC.Position(longitude.value, latitude.value, height.value, 0, -90, 0), () => { }, 3)
}
onUnmounted(() => {
- window.$viewer.sceneSplit.enable = false
+ window.$viewer && (window.$viewer.sceneSplit.enable = false)
})
const components = [
- { label: '天地图', value: '1' },
- { label: '谷歌影像', value: '2' },
- { label: '谷歌矢量', value: '3' },
- { label: '高德影像', value: '4' },
+ { label: '天地图', value: '1' },
+ { label: '谷歌影像', value: '2' },
+ { label: '谷歌矢量', value: '3' },
+ { label: '高德影像', value: '4' },
]
</script>
-
-<style lang="scss" scoped >
+
+<style lang="scss" scoped>
.cur-btn {
- margin: 10px 0;
- display: flex;
+ margin: 10px 0;
+ display: flex;
- // justify-content: center;
- // align-items: center;
+ // justify-content: center;
+ // align-items: center;
- // &.el-select {
- // width: 50px;
- // }
+ // &.el-select {
+ // width: 50px;
+ // }
}
.m-4 {
- text-align: center;
- width: 200px;
+ text-align: center;
+ width: 200px;
}
.transparent-bg {
- background: transparent;
+ background: transparent;
}
// 重新el——select样式
::v-deep .el-select__wrapper {
- background: transparent;
+ background: transparent;
}
::v-deep .el-select-dropdown {
- // background: transparent;
- background-color: aqua;
+ // background: transparent;
+ background-color: aqua;
}
::v-deep .el-select .el-select__placeholder {
- color: #fff;
+ color: #fff;
}
</style>
\ No newline at end of file
diff --git a/src/views/companyInfo/components/box/dataContent.vue b/src/views/companyInfo/components/box/dataContent.vue
index aa1981e..aac8bb5 100644
--- a/src/views/companyInfo/components/box/dataContent.vue
+++ b/src/views/companyInfo/components/box/dataContent.vue
@@ -113,7 +113,7 @@
onUnmounted(() => {
let arr = Object.keys(addTileLayers)
arr.forEach(i => {
- addTileLayers[i] && window.$viewer.removeLayer(addTileLayers[i])
+ addTileLayers[i] && window.$viewer && window.$viewer.removeLayer(addTileLayers[i])
})
})
</script>
diff --git a/src/views/companyInfo/components/box/fireTrend.vue b/src/views/companyInfo/components/box/fireTrend.vue
index 971e9e8..13a5bbb 100644
--- a/src/views/companyInfo/components/box/fireTrend.vue
+++ b/src/views/companyInfo/components/box/fireTrend.vue
@@ -166,7 +166,7 @@
function destroy () {
let arr = Object.keys(addTileLayers)
arr.forEach(i => {
- addTileLayers[i] && window.$viewer.removeLayer(addTileLayers[i])
+ addTileLayers[i] && window.$viewer && window.$viewer.removeLayer(addTileLayers[i])
})
addTileLayers = {}
}
@@ -174,7 +174,7 @@
function destroyPupoLayers () {
let arr = Object.keys(addPupoLayers)
arr.filter(i => i != 'hgyq').forEach(i => {
- addPupoLayers[i] && window.$viewer.removeLayer(addPupoLayers[i])
+ addPupoLayers[i] && window.$viewer && window.$viewer.removeLayer(addPupoLayers[i])
})
addPupoLayers = {}
}
diff --git a/src/views/companyInfo/components/box/unitContent.vue b/src/views/companyInfo/components/box/unitContent.vue
index dfea987..eb0f6da 100644
--- a/src/views/companyInfo/components/box/unitContent.vue
+++ b/src/views/companyInfo/components/box/unitContent.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-27 16:14:10
+ * @LastEditTime: 2024-11-27 19:15:59
* @FilePath: \bigScreen\src\views\companyInfo\components\box\unitContent.vue
* @Description:
*
@@ -17,113 +17,113 @@
import { getList } from "@/api/space/space"
const { VITE_APP_BASE } = import.meta.env
let image = ref(
- [{ label: '阀', value: VITE_APP_BASE + 'img/mapicon/ysf.png' }
- , { label: '池', value: VITE_APP_BASE + 'img/mapicon/yjc.png' }
- , { label: '泵', value: VITE_APP_BASE + 'img/mapicon/yjb.png' }]
+ [{ label: '阀', value: VITE_APP_BASE + 'img/mapicon/ysf.png' }
+ , { label: '池', value: VITE_APP_BASE + 'img/mapicon/yjc.png' }
+ , { label: '泵', value: VITE_APP_BASE + 'img/mapicon/yjb.png' }]
)
const resData = reactive({
- data: []
+ data: []
})
const curSelect = ref('')
let addTileLayers = {}
let addPupoLayers = {}
onMounted(() => {
- handleCheckChange()
+ handleCheckChange()
})
const handleCheckChange = () => {
- let companyInfo = JSON.parse(localStorage.getItem('companyInfo'))
- // resData.data.forEach(item => {
- // if (row.value == item.value) {
- if (!addTileLayers[companyInfo.name]) {
- addTileLayers[companyInfo.name] = new DC.HtmlLayer(companyInfo.name)
- window.$viewer.addLayer(addTileLayers[companyInfo.name])
- getList({
- firmId: companyInfo.id,
- size: 1000,
- // type: item.type,
- }).then(res => {
- let data = res.data.data.records
- data.filter(i => i.lng && i.lng != '' && i.lat && i.lat != '').forEach(i => {
- let img = image.value.filter(l => i.name.includes(l.label))
- img = img.length > 0 ? img : image.value
- let iconEl = `<div class="map-name">${i.name}</div>
+ let companyInfo = JSON.parse(localStorage.getItem('companyInfo'))
+ // resData.data.forEach(item => {
+ // if (row.value == item.value) {
+ if (!addTileLayers[companyInfo.name]) {
+ addTileLayers[companyInfo.name] = new DC.HtmlLayer(companyInfo.name)
+ window.$viewer.addLayer(addTileLayers[companyInfo.name])
+ getList({
+ firmId: companyInfo.id,
+ size: 1000,
+ // type: item.type,
+ }).then(res => {
+ let data = res.data.data.records
+ data.filter(i => i.lng && i.lng != '' && i.lat && i.lat != '').forEach(i => {
+ let img = image.value.filter(l => i.name.includes(l.label))
+ img = img.length > 0 ? img : image.value
+ let iconEl = `<div class="map-name">${i.name}</div>
<div class="map-icon"> <img src="${img[0].value}"> </div>`
- let divIcon = new DC.DivIcon(
- new DC.Position(i.lng, i.lat, 64),
- `<div class="public-map-popup ${'yjc-box'}"> ${iconEl} </div>`
- )
- divIcon.attrParams = i
- let incident = (e) => {
- const { attrParams } = e.overlay
- // 删除
- destroy()
- if (!attrParams.imageUrl) {
- return
- }
- addPupoLayers[attrParams.name] = new DC.HtmlLayer(attrParams.name)
- window.$viewer.addLayer(addPupoLayers[attrParams.name])
- let iconEl = `<div class="marsBlueGradientPnl">
+ let divIcon = new DC.DivIcon(
+ new DC.Position(i.lng, i.lat, 64),
+ `<div class="public-map-popup ${'yjc-box'}"> ${iconEl} </div>`
+ )
+ divIcon.attrParams = i
+ let incident = (e) => {
+ const { attrParams } = e.overlay
+ // 删除
+ destroy()
+ if (!attrParams.imageUrl) {
+ return
+ }
+ addPupoLayers[attrParams.name] = new DC.HtmlLayer(attrParams.name)
+ window.$viewer.addLayer(addPupoLayers[attrParams.name])
+ let iconEl = `<div class="marsBlueGradientPnl">
<div>${attrParams.fullName}</div>
<img src="${attrParams.imageUrl}" />
</div>`
- let divIcon = new DC.DivIcon(
- new DC.Position(attrParams.lng, attrParams.lat, 64),
- `<div class="public-map-popup-two">
+ let divIcon = new DC.DivIcon(
+ new DC.Position(attrParams.lng, attrParams.lat, 64),
+ `<div class="public-map-popup-two">
${iconEl}
</div>`
- )
- let incident = () => {
- destroy()
- }
- divIcon.on(DC.MouseEventType.CLICK, incident)
- addPupoLayers[attrParams.name].addOverlay(divIcon)
- }
+ )
+ let incident = () => {
+ destroy()
+ }
+ divIcon.on(DC.MouseEventType.CLICK, incident)
+ addPupoLayers[attrParams.name].addOverlay(divIcon)
+ }
- // if (item.incident) incident = item.incident
+ // if (item.incident) incident = item.incident
- divIcon.on(DC.MouseEventType.CLICK, incident)
+ divIcon.on(DC.MouseEventType.CLICK, incident)
- addTileLayers[companyInfo.name].addOverlay(divIcon)
- })
- })
- } else {
- addTileLayers[companyInfo.name].show = true
- }
- // } else {
- // if (addTileLayers[item.label]) {
- // addTileLayers[item.label].show = false
- // }
- // }
- // })
+ addTileLayers[companyInfo.name].addOverlay(divIcon)
+ })
+ })
+ } else {
+ addTileLayers[companyInfo.name].show = true
+ }
+ // } else {
+ // if (addTileLayers[item.label]) {
+ // addTileLayers[item.label].show = false
+ // }
+ // }
+ // })
}
// 销毁
-function destroy() {
- let arr = Object.keys(addPupoLayers)
- arr.filter(i => i != 'hgyq').forEach(i => {
- addPupoLayers[i] && window.$viewer.removeLayer(addPupoLayers[i])
- })
- addPupoLayers = {}
+function destroy () {
+ let arr = Object.keys(addPupoLayers)
+ arr.filter(i => i != 'hgyq').forEach(i => {
+ addPupoLayers[i] && window.$viewer && window.$viewer.removeLayer(addPupoLayers[i])
+ })
+ addPupoLayers = {}
}
nextTick(() => {
- EventBus.emit('restHandleCheckChange', `3-3-2`)
- EventBus.emit('restHandleCheckChange', `3-3-4`)
+ EventBus.emit('restHandleCheckChange', `3-3-2`)
+ EventBus.emit('restHandleCheckChange', `3-3-4`)
})
onUnmounted(() => {
- let arr = Object.keys(addTileLayers)
- arr.forEach(i => {
- addTileLayers[i] && window.$viewer.removeLayer(addTileLayers[i])
- })
- destroy()
- EventBus.emit('restHandleDelChange', `3-3-2`)
- EventBus.emit('restHandleDelChange', `3-3-4`)
+ let arr = Object.keys(addTileLayers)
+ arr.forEach(i => {
+ addTileLayers[i] && window.$viewer && window.$viewer.removeLayer(addTileLayers[i])
+ })
+ destroy()
+ EventBus.emit('restHandleDelChange', `3-3-2`)
+ EventBus.emit('restHandleDelChange', `3-3-4`)
})
</script>
<template>
- <div class="left-container cur-container">
- <!-- <div class="tablist h100">
+ <div class="left-container cur-container">
+ <!-- <div class="tablist h100">
<div class="cursor-p" :class="{ on: showOn(item) }" v-for="item, index in resData.data" :key="index"
@click="tabClick(item)">
<div class="nowrap-ellipsis-hidden">
@@ -131,34 +131,34 @@
</div>
</div>
</div> -->
- </div>
+ </div>
</template>
<style lang="scss" scoped>
.cur-container {
- background: transparent;
- pointer-events: none;
+ background: transparent;
+ pointer-events: none;
- .tablist {
- pointer-events: all;
+ .tablist {
+ pointer-events: all;
- &>div {
- margin-top: 16px;
- padding: 10px;
- width: 64px;
- height: 64px;
- line-height: 64px;
- text-align: center;
- border-radius: 50%;
- box-shadow: inset 0 0 40px #409eff;
- color: #fff;
- box-sizing: content-box;
+ &>div {
+ margin-top: 16px;
+ padding: 10px;
+ width: 64px;
+ height: 64px;
+ line-height: 64px;
+ text-align: center;
+ border-radius: 50%;
+ box-shadow: inset 0 0 40px #409eff;
+ color: #fff;
+ box-sizing: content-box;
- &.on {
- position: relative;
- color: #75b1ff;
- }
- }
+ &.on {
+ position: relative;
+ color: #75b1ff;
+ }
}
+ }
}
</style>
diff --git a/src/views/companyInfo/index.vue b/src/views/companyInfo/index.vue
index e20319f..b2a537b 100644
--- a/src/views/companyInfo/index.vue
+++ b/src/views/companyInfo/index.vue
@@ -2,7 +2,7 @@
* @Author: shuishen 1109946754@qq.com
* @Date: 2024-11-08 11:00:30
* @LastEditors: shuishen 1109946754@qq.com
- * @LastEditTime: 2024-11-25 16:45:39
+ * @LastEditTime: 2024-11-27 19:16:37
* @FilePath: \bigScreen\src\views\companyInfo\index.vue
* @Description:
*
@@ -41,11 +41,11 @@
curCompanyWall.addOverlay(wall)
onMounted(() => {
- window.$viewer.flyTo(curCompanyWall)
+ window.$viewer && window.$viewer.flyTo(curCompanyWall)
})
onUnmounted(() => {
- window.$viewer.removeLayer(curCompanyWall)
+ window.$viewer && window.$viewer.removeLayer(curCompanyWall)
})
const handleChildEvent = (data) => {
diff --git a/src/views/pd/components/dynamicPanel.vue b/src/views/pd/components/dynamicPanel.vue
index d7a046c..a825d09 100644
--- a/src/views/pd/components/dynamicPanel.vue
+++ b/src/views/pd/components/dynamicPanel.vue
@@ -2,7 +2,7 @@
* @Author: shuishen 1109946754@qq.com
* @Date: 2024-11-09 15:41:35
* @LastEditors: shuishen 1109946754@qq.com
- * @LastEditTime: 2024-11-27 15:19:10
+ * @LastEditTime: 2024-11-27 19:15:35
* @FilePath: \bigScreen\src\views\pd\components\dynamicPanel.vue
* @Description:
*
@@ -430,9 +430,9 @@
clearAll()
tc.clear()
- dynamicVectorLayer && window.$viewer.removeLayer(dynamicVectorLayer)
- dynamicHtmlLayer && window.$viewer.removeLayer(dynamicHtmlLayer)
- dynamicLineVectorLayer && window.$viewer.removeLayer(dynamicLineVectorLayer)
+ dynamicVectorLayer && window.$viewer && window.$viewer.removeLayer(dynamicVectorLayer)
+ dynamicHtmlLayer && window.$viewer && window.$viewer.removeLayer(dynamicHtmlLayer)
+ dynamicLineVectorLayer && window.$viewer && window.$viewer.removeLayer(dynamicLineVectorLayer)
})
</script>
diff --git a/src/views/rs/components/box/dataContent.vue b/src/views/rs/components/box/dataContent.vue
index 606f14d..9163758 100644
--- a/src/views/rs/components/box/dataContent.vue
+++ b/src/views/rs/components/box/dataContent.vue
@@ -56,7 +56,7 @@
total: 0,
}
-function positionColor() {
+function positionColor () {
return (row) => {
if (
(row.X && row.X != 0) ||
@@ -71,7 +71,7 @@
}
}
-function positionDisabled() {
+function positionDisabled () {
return (row) => {
if (
(row.X && row.X != 0) ||
@@ -124,7 +124,7 @@
})
let addPupoLayers = {}
// 行点击
-function rowClick(row, column, event) {
+function rowClick (row, column, event) {
if (row.lng && row.lat) {
window.$viewer.flyToPosition(new DC.Position(row.lng, row.lat, 600, 0, -90, 0))
// 显示企业信息
@@ -152,7 +152,7 @@
// 查看详情
-function goDetail(row) { }
+function goDetail (row) { }
const searchBtn = (params) => {
resetPage()
@@ -213,10 +213,10 @@
})
// 销毁
-function destroyPupoLayers() {
+function destroyPupoLayers () {
let arr = Object.keys(addPupoLayers)
arr.forEach(i => {
- addPupoLayers[i] && window.$viewer.removeLayer(addPupoLayers[i])
+ addPupoLayers[i] && window.$viewer && window.$viewer.removeLayer(addPupoLayers[i])
})
addPupoLayers = {}
}
@@ -224,7 +224,8 @@
<template>
<div class="w100 h0 flex-1 flex f-d-c">
- <global-search :options="options" @searchBtn="searchBtn" @resetBtn="resetBtn" ref="SeachBarCondition"></global-search>
+ <global-search :options="options" @searchBtn="searchBtn" @resetBtn="resetBtn"
+ ref="SeachBarCondition"></global-search>
<!-- <div class="cur-container">
<div class="tablist">
<div class="cursor-p" :class="{ on: showOn(item) }" v-for="item, index in resData.data" :key="index"
@@ -237,7 +238,8 @@
</div> -->
<div class="h0 flex-1 table-content" ref="TableContent" v-loading="loading"
element-loading-background="rgba(46, 81, 136, 0.9)">
- <el-table empty-text="暂无数据" @row-click="rowClick" border :data="tableData" :height="curTableHeight" style="width: 100%">
+ <el-table empty-text="暂无数据" @row-click="rowClick" border :data="tableData" :height="curTableHeight"
+ style="width: 100%">
<el-table-column align="center" label="ID" width="42" prop="rank">
<template #default="{ $index, row }">
{{ (pages.page - 1) * pages.pageSize + $index + 1 }}
diff --git a/src/views/rt/components/dataContent.vue b/src/views/rt/components/dataContent.vue
new file mode 100644
index 0000000..aa09bc3
--- /dev/null
+++ b/src/views/rt/components/dataContent.vue
@@ -0,0 +1,197 @@
+<!--
+ * @Author: shuishen 1109946754@qq.com
+ * @Date: 2023-03-13 14:54:26
+ * @LastEditors: shuishen 1109946754@qq.com
+ * @LastEditTime: 2024-11-27 19:28:29
+ * @FilePath: \bigScreen\src\views\rt\components\dataContent.vue
+ * @Description:
+ *
+ * Copyright (c) 2023 by ${git_name_email}, All Rights Reserved.
+-->
+<script setup>
+import { getList } from "@/api/rescueTeam/rescueTeam"
+import { getPage } from '@/api/indParkInfo'
+import { reactive } from "vue"
+
+const loading = ref(false)
+
+const tableData = ref([])
+
+let currentIndex = ref(0)
+// 园区 企业
+const tilteList = ref([
+ { label: "园区救援队伍", value: "0", id: "1" },
+ { label: "企业救援队伍", value: "0", id: "2" }
+
+])
+const pages = {
+ page: 1,
+ pageSize: 100,
+ total: 0,
+}
+
+onMounted(() => {
+ getLists(formInline)
+})
+
+
+function handleClick (item, index) {
+ currentIndex.value = index
+ pages.page = 1
+ pages.pageSize = 1000
+ pages.total = 0
+ if (item.id == 1) {
+ formInline.type = 1
+ } else {
+ formInline.type = 2
+ }
+ getLists(formInline)
+}
+// 表格样式
+const tableCellStyle = ({ row, column }) => {
+ return { background: "#152851", color: "#fff" }
+}
+// 表格表头样式
+const headerCellStyle = ({ }) => {
+ return {
+ background: "#152851",
+ color: "#fff",
+ }
+}
+// 搜索条件
+const formInline = reactive({
+ perInCha: "",
+ type: '1'
+})
+
+// 提交查询
+const onSubmit = () => {
+ pages.page = 1
+ pages.pageSize = 13
+ pages.total = 0
+ getLists(formInline)
+}
+
+// 分页树改变
+const handleSizeChange = (val) => {
+ pages.pageSize = val
+ getLists(formInline)
+}
+// 分页改变
+const handleCurrentChange = (val) => {
+ pages.page = val
+ getLists(formInline)
+}
+// 重置条件
+const clearBtn = () => {
+ formInline.perInCha = ''
+ formInline.type = ''
+ pages.page = 1
+ pages.pageSize = 13
+ pages.total = 0
+ getLists(formInline)
+}
+
+// 查询分页数据
+function getLists (param = {}) {
+ tableData.value = []
+ param.current = pages.page
+ param.size = pages.pageSize
+ loading.value = true
+ getList(param)
+ .then((res) => {
+ const data = res.data.data
+ tableData.value = data.records
+ })
+ .catch((err) => {
+ loading.value = false
+ console.log(err)
+ })
+}
+</script>
+
+<template>
+ <public-content>
+ <template #content>
+ <div class="content_box">
+
+ <div class="list_box">
+ <ul>
+ <li v-for="( item, index ) in tilteList " :key="index" :class="[currentIndex === index ? 'active' : '']"
+ @click="handleClick(item, index)">
+ {{ item.label }}
+ </li>
+ </ul>
+ </div>
+
+ <div class="page_box">
+
+ <el-table empty-text="暂无数据" border v-if="formInline.type == 1" :data="tableData" style="width: 100%"
+ :header-cell-style="headerCellStyle" :cell-style="tableCellStyle">
+ <el-table-column prop="teamName" label="救援队伍组名称" />
+ <el-table-column prop="teamJob" label="救援队伍组职务" />
+ <el-table-column prop="perInCha" label="责任人姓名" />
+ <el-table-column prop="job" label="园区职务" />
+ <el-table-column prop="perInChaPho" label="联系电话" />
+ </el-table>
+
+ <el-table empty-text="暂无数据" border v-else :data="tableData" style="width: 100%"
+ :header-cell-style="headerCellStyle" :cell-style="tableCellStyle">
+ <el-table-column prop="firmName" label="企业名称" />
+ <el-table-column prop="perInCha" label="责任人姓名" />
+ <el-table-column prop="perInChaPho" label="联系电话" />
+ <el-table-column prop="perInChaTwo" label="责任人姓名" />
+ <el-table-column prop="perInChaPhoTwo" label="联系电话" />
+ </el-table>
+
+ </div>
+
+ </div>
+ </template>
+ </public-content>
+</template>
+
+<style lang="scss" scoped>
+.content_box {
+ color: #fff;
+}
+
+.list_box {
+ overflow-x: auto;
+ white-space: nowrap;
+ // scrollbar-width: thin;
+ scrollbar-color: rgba(255, 255, 255, 0.3) transparent;
+}
+
+.list_box ul {
+ display: flex;
+ padding: 0;
+ margin: 0;
+ list-style: none;
+}
+
+.list_box li {
+ padding: 10px;
+ margin-right: 10px;
+ cursor: pointer;
+ box-shadow: inset 0 0 40px #409eff;
+ border-radius: 10px;
+ margin-bottom: 5px;
+}
+
+.list_box li.active {
+ // color: #409eff;
+ box-shadow: inset 0 0 100px #2a8ef1;
+}
+
+.page_box {
+ // overflow: scroll;
+}
+
+
+.page_box .el-table {
+ width: 100%;
+ height: 700px;
+ background-color: rgba(117, 116, 116, 0.3);
+}
+</style>
diff --git a/src/views/rt/index.vue b/src/views/rt/index.vue
index 039387e..1b96e51 100644
--- a/src/views/rt/index.vue
+++ b/src/views/rt/index.vue
@@ -2,29 +2,30 @@
* @Author: shuishen 1109946754@qq.com
* @Date: 2023-03-10 15:27:59
* @LastEditors: shuishen 1109946754@qq.com
- * @LastEditTime: 2023-03-13 16:02:07
- * @FilePath: \forest-fire\src\views\statistics\index.vue
+ * @LastEditTime: 2024-11-27 19:28:17
+ * @FilePath: \bigScreen\src\views\rt\index.vue
* @Description: 综合设计
*
* Copyright (c) 2023 by ${git_name_email}, All Rights Reserved.
-->
<script setup>
-import leftContainer from './components/leftContainer.vue'
-import rightContainer from './components/rightContainer.vue'
+import dataContent from './components/dataContent.vue'
</script>
<template>
- <div class="container page-container">
- <left-container></left-container>
-
- <!-- <right-container></right-container> -->
+ <div class="container page-container">
+ <div class="data box w100 h100">
+ <data-content></data-content>
</div>
+ </div>
</template>
<style lang="scss" scoped>
.container {
- position: absolute;
- width: 100%;
- height: 100%;
+ position: absolute;
+ width: 100%;
+ height: 100%;
+ pointer-events: auto;
+ background: rgba(28, 115, 195, 0.2);
}
</style>
\ No newline at end of file
diff --git a/src/views/space/components/box/dataContent.vue b/src/views/space/components/box/dataContent.vue
index 147551b..bddf774 100644
--- a/src/views/space/components/box/dataContent.vue
+++ b/src/views/space/components/box/dataContent.vue
@@ -185,7 +185,7 @@
function destroyPupoLayers () {
let arr = Object.keys(addPupoLayers)
arr.forEach(i => {
- addPupoLayers[i] && window.$viewer.removeLayer(addPupoLayers[i])
+ addPupoLayers[i] && window.$viewer && window.$viewer.removeLayer(addPupoLayers[i])
})
addPupoLayers = {}
}
diff --git a/src/views/supplies/components/dataContent.vue b/src/views/supplies/components/dataContent.vue
new file mode 100644
index 0000000..3599054
--- /dev/null
+++ b/src/views/supplies/components/dataContent.vue
@@ -0,0 +1,279 @@
+<template>
+ <public-content>
+ <template #content>
+ <div class="content_box">
+ <div class="list_box">
+ <span class="content_span" @click="scrollLeft">
+ <img src="@/assets/images/left.png" alt="">
+ </span>
+ <el-scrollbar ref="scrollbarRef">
+ <div class="scrollbar-flex-content">
+ <p v-for="(item, index) in tilteList" @click="handleClick(item, index)" :key="index"
+ class="scrollbar-demo-item" :class="{ active: index === currentIndex }">
+ {{ item.label }}
+ </p>
+ </div>
+ </el-scrollbar>
+ <span class="content_span" @click="scrollRight">
+ <img src="@/assets/images/right.png" alt="">
+ </span>
+ </div>
+
+ <div class="page_box">
+ <div>
+ <el-table empty-text="暂无数据" border v-if="formInline.ownership == 1" :data="tableData">
+ <el-table-column prop="name" label="物资名称" />
+ <el-table-column prop="personInCha" label="负责人" width="150" />
+ <el-table-column prop="personInChaPhone" label="负责人电话" width="250" />
+ <el-table-column prop="stoLoc" label="物资地址" />
+ <el-table-column prop="numUnit" label="数量" width="150" />
+ </el-table>
+
+ <el-table empty-text="暂无数据" border v-else :data="tableData">
+ <el-table-column prop="name" label="物资名称" />
+ <el-table-column prop="personInCha" label="负责人" width="150" />
+ <el-table-column prop="personInChaPhone" label="负责人电话" width="250" />
+ <el-table-column prop="stoLoc" label="物资地址" />
+ <el-table-column prop="numUnit" label="数量" />
+ </el-table>
+ </div>
+ </div>
+ </div>
+ </template>
+ </public-content>
+</template>
+
+<script setup>
+import { getList, getCompanyList } from "@/api/emergencySupplies/emergencySupplies"
+import { getPage } from '@/api/indParkInfo'
+import { reactive, ref, onMounted } from "vue"
+import { ElScrollbar } from 'element-plus'
+
+const loading = ref(false)
+
+const tableData = ref([])
+const pages = {
+ page: 1,
+ pageSize: 1000,
+ total: 0,
+}
+
+let currentIndex = ref(0)
+
+// 园区 企业
+const tilteList = ref([
+ { label: "吉水化工园区", value: "0", id: "1" }
+])
+
+onMounted(() => {
+ getLists(formInline)
+ getCompanyPages()
+})
+
+// const objectSpanMethod = ({ row, column, rowIndex, columnIndex }) => {
+// if (columnIndex === 0) {
+// if (rowIndex % 2 === 0) {
+// return {
+// rowspan: 2,
+// colspan: 1
+// }
+// } else {
+// return {
+// rowspan: 0,
+// colspan: 0
+// }
+// }
+// }
+// }
+
+const scrollbarRef = ref(null)
+
+
+// 搜索条件
+const formInline = reactive({
+ firmId: '',
+ ownership: 1,
+})
+
+function getCompanyPages (param = {}) {
+ param.current = pages.page
+ param.size = pages.pageSize
+ getPage(param).then(res => {
+ let companyList = res.data.data.records
+ companyList.forEach(item => {
+ tilteList.value.push({
+ label: item.name,
+ value: item.id,
+ id: item.id
+ })
+ })
+ }).catch(err => {
+ })
+}
+
+function handleClick (item, index) {
+ currentIndex.value = index
+ pages.page = 1
+ pages.pageSize = 1000
+ pages.total = 0
+ if (item.id == 1) {
+ formInline.firmId = ''
+ formInline.ownership = 1
+ getLists(formInline)
+ } else {
+ formInline.firmId = item.id
+ formInline.ownership = 2
+ getComLists(formInline)
+ }
+}
+
+// 表格样式
+// const tableCellStyle = ({ row, column }) => {
+// return { background: "#152851", color: "#fff" };
+// };
+
+// 表格表头样式
+// const headerCellStyle = ({ }) => {
+// return {
+// background: "#152851",
+// color: "#fff",
+// };
+// };
+
+// 分页树改变
+// const handleSizeChange = (val) => {
+// pages.pageSize = val;
+// getLists(formInline);
+// }
+
+// 分页改变
+// const handleCurrentChange = (val) => {
+// pages.page = val;
+// getLists(formInline);
+// }
+
+// 重置条件
+// const clearBtn = () => {
+// formInline.name = ''
+// formInline.ownership = ''
+// pages.page = 1
+// pages.pageSize = 1000
+// pages.total = 0
+// getLists(formInline);
+// }
+
+// 查询分页数据
+function getLists (param = {}) {
+ param.current = pages.page
+ param.size = pages.pageSize
+ loading.value = true
+ getList(param)
+ .then((res) => {
+ const data = res.data.data
+ tableData.value = data.records
+ pages.total = data.total
+ loading.value = false
+ })
+ .catch((err) => {
+ loading.value = false
+ console.log(err)
+ })
+}
+
+
+// 查询分页数据
+function getComLists (param = {}) {
+ param.current = pages.page
+ param.size = pages.pageSize
+ loading.value = true
+ getCompanyList(param)
+ .then((res) => {
+ const data = res.data.data
+ tableData.value = data.dataList
+ pages.total = data.total
+ loading.value = false
+ })
+ .catch((err) => {
+ loading.value = false
+ console.log(err)
+ })
+}
+
+// 滚动到左边
+const scrollLeft = () => {
+ if (scrollbarRef.value) {
+ const currentScrollLeft = scrollbarRef.value.wrapRef.scrollLeft
+ const step = 500 // 每次滚动的距离
+ scrollbarRef.value.wrapRef.scrollLeft = currentScrollLeft - step
+ }
+}
+
+// 滚动到右边
+const scrollRight = () => {
+ if (scrollbarRef.value) {
+ const currentScrollLeft = scrollbarRef.value.wrapRef.scrollLeft
+ const step = 500 // 每次滚动的距离
+ scrollbarRef.value.wrapRef.scrollLeft = currentScrollLeft + step
+ }
+}
+</script>
+
+
+<style lang="scss" scoped>
+.content_box {
+ color: #fff;
+}
+
+.content_box .list_box {
+ display: flex;
+ text-align: center;
+}
+
+.scrollbar-flex-content {
+ display: flex;
+}
+
+.scrollbar-demo-item {
+ flex-shrink: 0;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ height: 50px;
+ margin: 10px;
+ padding: 0 5px;
+ text-align: center;
+ border-radius: 10px;
+ box-shadow: inset 0 0 40px #409eff;
+ cursor: pointer;
+}
+
+.content_box .content_span {
+ line-height: 70px;
+ margin: 0 15px;
+ cursor: pointer;
+
+ & img {
+ // 图片上下居中
+ vertical-align: middle;
+ width: 30px;
+ height: 30px;
+ }
+
+ & img:hover {
+ box-shadow: inset 0 0 40px #fff;
+ border-radius: 10px;
+ }
+}
+
+.page_box .el-table {
+ width: 100%;
+ height: 680px;
+ // background-color: rgba(117, 116, 116, 0.3);
+}
+
+.active {
+ // color: #409eff;
+ // border-radius: 10px;
+ box-shadow: inset 0 0 100px #2a8ef1;
+}
+</style>
diff --git a/src/views/supplies/index.vue b/src/views/supplies/index.vue
index 039387e..157baab 100644
--- a/src/views/supplies/index.vue
+++ b/src/views/supplies/index.vue
@@ -2,29 +2,31 @@
* @Author: shuishen 1109946754@qq.com
* @Date: 2023-03-10 15:27:59
* @LastEditors: shuishen 1109946754@qq.com
- * @LastEditTime: 2023-03-13 16:02:07
- * @FilePath: \forest-fire\src\views\statistics\index.vue
+ * @LastEditTime: 2024-11-27 19:26:43
+ * @FilePath: \bigScreen\src\views\supplies\index.vue
* @Description: 综合设计
*
* Copyright (c) 2023 by ${git_name_email}, All Rights Reserved.
-->
<script setup>
-import leftContainer from './components/leftContainer.vue'
-import rightContainer from './components/rightContainer.vue'
+import dataContent from "./components/dataContent.vue"
</script>
<template>
- <div class="container page-container">
- <left-container></left-container>
-
- <!-- <right-container></right-container> -->
+ <div class="container page-container">
+ <div class="data box w100 h100">
+ <data-content>
+ </data-content>
</div>
+ </div>
</template>
<style lang="scss" scoped>
.container {
- position: absolute;
- width: 100%;
- height: 100%;
+ position: absolute;
+ width: 100%;
+ height: 100%;
+ pointer-events: auto;
+ background: rgba(28, 115, 195, 0.2);
}
</style>
\ No newline at end of file
--
Gitblit v1.9.3