From 940222bec16446d4b933fb7682ca4933fb520b4a Mon Sep 17 00:00:00 2001
From: linwe <872216996@qq.com>
Date: Tue, 19 Nov 2024 18:29:11 +0800
Subject: [PATCH] 企业详情优化
---
src/views/rt/components/box/dataContent.vue | 7
src/pages/layout/components/scomponents/layersControl.vue | 2
src/views/companyInfo/components/box/unitContent.vue | 144 +++++++++++++---------------
src/views/supplies/components/box/dataContent.vue | 26 ++---
src/views/companyInfo/components/box/fireTrend.vue | 68 +++++++++++++
src/views/space/components/box/dataContent.vue | 17 +-
6 files changed, 160 insertions(+), 104 deletions(-)
diff --git a/src/pages/layout/components/scomponents/layersControl.vue b/src/pages/layout/components/scomponents/layersControl.vue
index 6313690..52d6aaa 100644
--- a/src/pages/layout/components/scomponents/layersControl.vue
+++ b/src/pages/layout/components/scomponents/layersControl.vue
@@ -481,7 +481,7 @@
item.source.features.forEach(i => {
let polylineVolume = new DC.PolylineVolume(
i.geometry.coordinates.map(d => [d[0], d[1], item.height].join(',')).join(';'),
- computeCircle(0.3)
+ computeCircle(2)
)
polylineVolume.setStyle({
diff --git a/src/views/companyInfo/components/box/fireTrend.vue b/src/views/companyInfo/components/box/fireTrend.vue
index 835e5f0..8572ebb 100644
--- a/src/views/companyInfo/components/box/fireTrend.vue
+++ b/src/views/companyInfo/components/box/fireTrend.vue
@@ -101,6 +101,66 @@
console.log(err)
})
}
+let addTileLayers = {}
+// 行点击
+function rowClick(row) {
+ // window.$viewer.flyToPosition(new DC.Position(row.lng, row.lat, 600, 0, -90, 0))
+
+ // return
+ if (!addTileLayers[row.name]) {
+ addTileLayers[row.name] = new DC.HtmlLayer(row.name)
+ window.$viewer.addLayer(addTileLayers[row.name])
+
+ // item.method(item.params).then(res => {
+ // let data = res.data.data.records
+
+ // tableData.value.filter(i => i.lng && i.lng != '' && i.lat && i.lat != '').forEach(i => {
+ let iconEl = ''
+
+ // if ('showPanel' in item && item.showPanel == false) {
+ // if (item.backgroundIcon) {
+ // iconEl = `
+ // <div class="map-name">${i[item.showParams] || i.name}</div>
+ // <div class="map-icon">
+ // <img src="${item.backgroundIcon}">
+ // </div>
+ // `
+ // }
+ // } else
+ {
+ iconEl = `<div class="marsBlueGradientPnl">
+ <div>${row.name}</div>
+ </div>`
+ }
+
+ let divIcon = new DC.DivIcon(
+ new DC.Position(row.lng, row.lat, 64),
+ `<div class="public-map-popup ${'sk-box'}">
+ ${iconEl}
+ </div>`
+ )
+
+ // divIcon.attrParams = i
+
+ let incident = () => { }
+
+ // if (item.incident) incident = item.incident
+
+ divIcon.on(DC.MouseEventType.CLICK, incident)
+
+ addTileLayers[row.name].addOverlay(divIcon)
+ // })
+ // })
+ }
+}
+
+onUnmounted(() => {
+ console.log('销毁***************************')
+ let arr = Object.keys(addTileLayers)
+ arr.forEach(i => {
+ addTileLayers[i] && window.$viewer.removeLayer(addTileLayers[i])
+ })
+})
</script>
<template>
@@ -117,9 +177,15 @@
<div class="table-box">
<el-table :data="tableData" empty-text="" style="width: 100%" :header-cell-style="headerCellStyle"
:cell-style="tableCellStyle" element-loading-background="rgba(122, 122, 122, 0.1)">
- <el-table-column prop="name" label="名称" />
+ <el-table-column prop="name" label="名称" width="160" />
<el-table-column prop="numUnit" label="数量" />
<el-table-column prop="personInCha" label="负责人" />
+ <el-table-column fixed="right" label="操作" width="80">
+ <template #default="scope">
+ <el-button link type="primary" size="small" :disabled="scope.row.lng == ''"
+ @click="rowClick(scope.row)">定位</el-button>
+ </template>
+ </el-table-column>
</el-table>
</div>
</div>
diff --git a/src/views/companyInfo/components/box/unitContent.vue b/src/views/companyInfo/components/box/unitContent.vue
index fc826d6..6070010 100644
--- a/src/views/companyInfo/components/box/unitContent.vue
+++ b/src/views/companyInfo/components/box/unitContent.vue
@@ -20,99 +20,93 @@
const curSelect = ref('')
let addTileLayers = {}
-
-const handleCheckChange = (row) => {
+onMounted(() => {
+ handleCheckChange()
+})
+const handleCheckChange = () => {
let companyInfo = JSON.parse(localStorage.getItem('companyInfo'))
- resData.data.forEach(item => {
- if (row.value == item.value) {
- if (!addTileLayers[item.label]) {
- addTileLayers[item.label] = new DC.HtmlLayer(item.label)
- window.$viewer.addLayer(addTileLayers[item.label])
- 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 iconEl = ''
- if ('showPanel' in item && item.showPanel == false) {
- if (item.backgroundIcon) {
- iconEl = `
- <div class="map-name">${i[item.showParams] || i.name}</div>
- <div class="map-icon">
- <img src="${item.backgroundIcon}">
- </div>
- `
- }
- } else {
- iconEl = `<div class="marsBlueGradientPnl">
+ // 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 iconEl = ''
+ {
+ iconEl = `<div class="marsBlueGradientPnl">
<div>${i.name}</div>
</div>`
- }
+ }
- let divIcon = new DC.DivIcon(
- new DC.Position(i.lng, i.lat, 0),
- `<div class="public-map-popup">
+ let divIcon = new DC.DivIcon(
+ new DC.Position(i.lng, i.lat, 0),
+ `<div class="public-map-popup">
${iconEl}
</div>`
- )
+ )
- divIcon.attrParams = i
+ divIcon.attrParams = i
- let incident = () => { }
+ let incident = () => { }
- 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[item.label].addOverlay(divIcon)
- })
- })
- } else {
- addTileLayers[item.label].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
+ // }
+ // }
+ // })
}
// 获取下拉字典
-const getDictData = (code) => {
- const param = {
- code: code,
- }
- getDictionary(param).then((res) => {
- resData.data = res.data.data.map(item => {
- return {
- type: item.sort,
- label: item.dictValue,
- value: item.dictKey
- }
- })
+// const getDictData = (code) => {
+// const param = {
+// code: code,
+// }
+// getDictionary(param).then((res) => {
+// resData.data = res.data.data.map(item => {
+// return {
+// type: item.sort,
+// label: item.dictValue,
+// value: item.dictKey
+// }
+// })
- tabClick(resData.data[0])
- })
-}
+// tabClick(resData.data[0])
+// })
+// }
-const tabClick = (item) => {
- handleCheckChange(item)
- curSelect.value = item.value
-}
+// const tabClick = (item) => {
+// handleCheckChange(item)
+// // curSelect.value = item.value
+// }
-const showOn = computed(() => (item) => {
- if (curSelect.value == item.value) {
- return true
- }
- return false
-})
+// const showOn = computed(() => (item) => {
+// if (curSelect.value == item.value) {
+// return true
+// }
+// return false
+// })
-getDictData("emergency_space_type")
+// getDictData("emergency_space_type")
onUnmounted(() => {
+ console.log('leftContainer unmounted***********************')
let arr = Object.keys(addTileLayers)
arr.forEach(i => {
addTileLayers[i] && window.$viewer.removeLayer(addTileLayers[i])
@@ -122,14 +116,14 @@
<template>
<div class="left-container cur-container">
- <div class="tablist h100">
+ <!-- <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">
{{ item.label }}
</div>
</div>
- </div>
+ </div> -->
</div>
</template>
diff --git a/src/views/rt/components/box/dataContent.vue b/src/views/rt/components/box/dataContent.vue
index bd2b3f0..da27608 100644
--- a/src/views/rt/components/box/dataContent.vue
+++ b/src/views/rt/components/box/dataContent.vue
@@ -164,7 +164,6 @@
.list_box ul {
display: flex;
- /* 使用 Flexbox 布局 */
padding: 0;
margin: 0;
list-style: none;
@@ -174,11 +173,13 @@
padding: 10px;
margin-right: 10px;
cursor: pointer;
+ box-shadow: inset 0 0 40px #409eff;
+ border-radius: 10px;
+ margin-bottom: 5px;
}
.list_box li.active {
- background-color: rgba(117, 116, 116, 0.3);
- color: white;
+ color: #409eff;
}
.page_box {
diff --git a/src/views/space/components/box/dataContent.vue b/src/views/space/components/box/dataContent.vue
index 5ecaab6..8f5a2c3 100644
--- a/src/views/space/components/box/dataContent.vue
+++ b/src/views/space/components/box/dataContent.vue
@@ -45,7 +45,7 @@
total: 0,
}
-function positionColor () {
+function positionColor() {
return (row) => {
if (
(row.X && row.X != 0) ||
@@ -60,7 +60,7 @@
}
}
-function positionDisabled () {
+function positionDisabled() {
return (row) => {
if (
(row.X && row.X != 0) ||
@@ -112,7 +112,7 @@
// 行点击
-function rowClick (row) {
+function rowClick(row) {
// if (state.layer) {
// window.$viewer.removeLayer(state.layer)
@@ -139,7 +139,7 @@
// 查看详情
-function goDetail (row) { }
+function goDetail(row) { }
const searchBtn = (params) => {
resetPage()
@@ -181,15 +181,14 @@
<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="h0 flex-1 table-content" ref="TableContent">
<el-table border :data="tableData" :height="curTableHeight" style="width: 100%" v-loading="loading">
<el-table-column prop="name" label="名称" />
- <el-table-column prop="emergencySpaceType" label="类型" width="70" />
- <el-table-column prop="mainFuncName" label="作用" width="60" />
- <el-table-column width="60" label="操作" align="center">
+ <el-table-column prop="emergencySpaceType" label="类型" width="130" />
+ <el-table-column prop="mainFuncName" label="作用" width="70" />
+ <el-table-column width="70" label="操作" align="center">
<template #default="scope">
<el-button link type="primary" size="small" :disabled="scope.row.lng == ''" @click="rowClick(scope.row)">
定位
diff --git a/src/views/supplies/components/box/dataContent.vue b/src/views/supplies/components/box/dataContent.vue
index b31b758..09bf385 100644
--- a/src/views/supplies/components/box/dataContent.vue
+++ b/src/views/supplies/components/box/dataContent.vue
@@ -26,12 +26,9 @@
</el-table>
<el-table border empty-text="" v-else :data="tableData">
- <!-- <el-table-column prop="firmName" label="企业名称" /> -->
<el-table-column prop="name" label="物资名称" />
- <!-- <el-table-column prop="personInCha" label="负责人" /> -->
- <!-- <el-table-column prop="personInChaPhone" label="负责人电话" /> -->
<el-table-column prop="stoLoc" label="物资地址" />
- <el-table-column prop="num" label="数量" />
+ <el-table-column prop="numUnit" label="数量" />
</el-table>
</div>
</div>
@@ -93,7 +90,7 @@
ownership: 1,
})
-function getCompanyPages (param = {}) {
+function getCompanyPages(param = {}) {
param.current = pages.page
param.size = pages.pageSize
getPage(param).then(res => {
@@ -109,7 +106,7 @@
})
}
-function handleClick (item, index) {
+function handleClick(item, index) {
currentIndex.value = index
pages.page = 1
pages.pageSize = 1000
@@ -161,7 +158,7 @@
// }
// 查询分页数据
-function getLists (param = {}) {
+function getLists(param = {}) {
param.current = pages.page
param.size = pages.pageSize
loading.value = true
@@ -180,7 +177,7 @@
// 查询分页数据
-function getComLists (param = {}) {
+function getComLists(param = {}) {
param.current = pages.page
param.size = pages.pageSize
loading.value = true
@@ -240,16 +237,15 @@
margin: 10px;
padding: 0 5px;
text-align: center;
- border-radius: 4px;
- // background: var(--el-color-danger-light-9);
- background-color: rgba(117, 116, 116, 0.3);
- // color: var(--el-color-danger);
- // color: #000;
+ border-radius: 10px;
+ box-shadow: inset 0 0 40px #409eff;
+ cursor: pointer;
}
.content_box .content_span {
line-height: 70px;
margin: 0 15px;
+ cursor: pointer;
}
.page_box .el-table {
@@ -259,8 +255,8 @@
}
.active {
- background-color: rgba(255, 255, 255, 0.3);
- color: #fff;
+ // background-color: rgba(255, 255, 255, 0.3);
+ color: #409eff;
border-radius: 10px;
}
</style>
--
Gitblit v1.9.3