| | |
| | | |
| | | <script setup> |
| | | import { Text } from 'vue'; |
| | | import publicContent from './publicContent.vue' |
| | | import { Picture } from '@element-plus/icons-vue' |
| | | |
| | | import { inject, Text } from 'vue' |
| | | const { VITE_APP_BASE } = import.meta.env |
| | | import { getDetail } from '@/api/indParkInfo' |
| | | |
| | | import { getAssetsFile } from 'utils/utils' |
| | | import { useRouterStore } from 'store/router' |
| | | import { useRouter, useRoute } from 'vue-router' |
| | | let router = useRouter() |
| | | const store = useRouterStore() |
| | | |
| | | let state = reactive({ |
| | | parkInfo: {} |
| | | }) |
| | | |
| | | // 企业信息统计数组 |
| | | let parkInfoList = ref([ |
| | | let parkInfoList = reactive([ |
| | | { |
| | | id: 1, |
| | | name: 'plaArea', |
| | | title: '园区面积', |
| | | content: '1000', |
| | | unit: '公顷', |
| | | img: 'images/雨量站@2x.png' |
| | | img: getAssetsFile('yq-mj.png', '/bgicon') |
| | | }, |
| | | { |
| | | id: 2, |
| | |
| | | title: '救援人员数量', |
| | | content: '1000', |
| | | unit: '人', |
| | | img: 'images/雨量站@2x.png' |
| | | img: getAssetsFile('yq-jy.png', '/bgicon') |
| | | |
| | | }, |
| | | { |
| | | id: 3, |
| | | name: 'riskFirmNum', |
| | | title: '风险企业数量', |
| | | content: '1000', |
| | | img: 'images/雨量站@2x.png' |
| | | }, |
| | | { |
| | | id: 4, |
| | | name: 'proTarNum', |
| | | title: '保护目标数量', |
| | | content: '1000', |
| | | img: 'images/雨量站@2x.png' |
| | | }, |
| | | // { |
| | | // id: 3, |
| | | // name: 'riskFirmNum', |
| | | // title: '风险企业数量', |
| | | // content: '1000', |
| | | // img: getAssetsFile('yq-fx.png', '/bgicon') |
| | | // }, |
| | | // { |
| | | // id: 4, |
| | | // name: 'proTarNum', |
| | | // title: '保护目标数量', |
| | | // content: '1000', |
| | | // img: getAssetsFile('yq-bh.png', '/bgicon') |
| | | // }, |
| | | { |
| | | id: 5, |
| | | name: 'spaceNum', |
| | | title: '应急空间数量', |
| | | content: '1000', |
| | | img: 'images/雨量站@2x.png' |
| | | img: getAssetsFile('yq-yj.png', '/bgicon') |
| | | }, |
| | | { |
| | | id: 6, |
| | | name: 'firmNum', |
| | | title: '企业数量', |
| | | content: '1000', |
| | | img: 'images/雨量站@2x.png' |
| | | img: getAssetsFile('yq-qy.png', '/bgicon') |
| | | } |
| | | ] |
| | | ) |
| | | |
| | | |
| | | |
| | | |
| | | // 初始化 |
| | | onMounted(() => { |
| | |
| | | |
| | | }) |
| | | // 获取详情 |
| | | function getData() { |
| | | function getData () { |
| | | getDetail().then(res => { |
| | | state.parkInfo = res.data.data |
| | | parkInfoList.value.forEach(item => { |
| | | parkInfoList.forEach(item => { |
| | | if (item.name == 'plaArea') { |
| | | state.parkInfo[item.name] && (item.content = (state.parkInfo[item.name] * 100).toFixed(2)) |
| | | } else { |
| | |
| | | console.log(err) |
| | | }) |
| | | } |
| | | |
| | | |
| | | |
| | | </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> |
| | | |
| | | <div class="container"> |
| | | <div class="box-content-sj" v-for="item in parkInfoList" :key="item.id"> |
| | | <img :src="VITE_APP_BASE + 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 class="box-content-box"> |
| | | <div class="box-content"> |
| | | <div> |
| | | <div class="box-content-img"> |
| | | <!-- <img :src="state.parkInfo.imageUrls" alt=""> --> |
| | | <el-image style="width: 100px; height: 100px" :src="state.parkInfo.imageUrls" :zoom-rate="1.2" :max-scale="7" |
| | | :min-scale="0.2" :preview-src-list="[state.parkInfo.imageUrls]" :initial-index="4" fit="cover"> |
| | | <template #error> |
| | | <div class="image-slot"> |
| | | <el-icon> |
| | | <Picture /> |
| | | </el-icon> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | </el-image> |
| | | <span>{{ state.parkInfo.remark }}</span> |
| | | </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 }} |
| | | <text v-if="item.unit">({{ item.unit }})</text> |
| | | </div> |
| | | |
| | | <div class="box-content-text-content"> |
| | | {{ item.title }} |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | </public-content> |
| | | </div> |
| | | |
| | | <!-- <el-button @click="goSubLayout">跳转a</el-button> --> |
| | | </div> |
| | | </template> |
| | | |
| | | <style lang="scss" scoped> |
| | | .box-content-box { |
| | | padding: 10px; |
| | | color: #fff; |
| | | font-size: 15px; |
| | | } |
| | |
| | | } |
| | | |
| | | .box-content-img { |
| | | height: 300px; |
| | | overflow: scroll; |
| | | |
| | | height: 280px; |
| | | line-height: 28px; |
| | | // 隐藏滚动条 |
| | | scrollbar-width: none; |
| | | overflow-x: hidden; |
| | | overflow-y: auto; |
| | | } |
| | | |
| | | .box-content-img img { |
| | | .box-content-img span { |
| | | // 行距 |
| | | line-height: 25px; |
| | | // 字体间隙 |
| | | letter-spacing: 1px; |
| | | } |
| | | |
| | | .box-content-img .el-image { |
| | | float: left; |
| | | margin: 5px; |
| | | margin-right: 15px; |
| | | /* 宽度可以根据实际情况调整 */ |
| | | width: 120px; |
| | | height: 120px; |
| | | width: 130px; |
| | | height: 130px; |
| | | } |
| | | |
| | | .box-content-title img { |
| | | width: 80px; |
| | | height: 80px; |
| | | } |
| | | |
| | | .box-content-text { |
| | | padding-left: 5px; |
| | | height: 300px; |
| | | height: 360px; |
| | | overflow: scroll; |
| | | // 隐藏滚动条 |
| | | scrollbar-width: none; |
| | | // scrollbar-width: none; |
| | | |
| | | } |
| | | |
| | | .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: 40%; |
| | | /* 最小宽度,防止在非常小的屏幕上变得太窄 */ |
| | | box-sizing: border-box; |
| | | padding: 5px; |
| | | // border: 1px solid #ccc; |
| | | display: flex; |
| | | // 设置高度 |
| | | align-items: center; |
| | | } |
| | | justify-content: space-between; |
| | | |
| | | .box-content-sj img { |
| | | max-width: 60%; |
| | | height: 60px; |
| | | } |
| | | img { |
| | | width: 36px; |
| | | height: 36px; |
| | | vertical-align: middle; |
| | | } |
| | | |
| | | .box-content-ss { |
| | | margin: 0px 0px 0px 10px; |
| | | } |
| | | .r { |
| | | margin-left: 1px; |
| | | 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: 13px; |
| | | 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; |
| | | } |
| | | |
| | | .box-content-text-title text { |
| | | margin-top: 5px; |
| | | font-size: 10px; |
| | | text-align: center; |
| | | } |
| | | } |
| | | } |
| | | </style> |