| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426 |
- <template>
- <BasePanelLeft>
- <div class="comprehensive-container">
- <div class="left">
- <BaseMain title="通知公告">
- <template v-slot:mainArea>
- <div class="main-container h380">
- <template v-if="noticeList.length > 0">
- <div class="img-txt" v-if="noticeList.length > 0" @click="toSee(noticeList[0])">
- <template v-if="noticeList[0].images != null">
- <el-image class="img" :src="noticeList[0].images"></el-image>
- </template>
- <template v-else>
- <el-image class="img" :src="defaultImg" ></el-image>
- </template>
- <div class="txt">{{ noticeList[0].announcementName }}</div>
- </div>
- <div class="list" v-for="item in noticeDataList" :key="item.id">
- <div class="left">
- <template v-if="item.images != null">
- <el-image :src="item.images" class="img"></el-image>
- </template>
- <template v-else>
- <el-image :src="defaultSmallImg" class="img"></el-image>
- </template>
- </div>
- <div class="right">
- <div class="title">{{ item.announcementName }}</div>
- <div class="date">{{ formatDate(item.createTime) }}</div>
- <div class="detailBtn" @click="toSee(item)">详情</div>
- </div>
- </div>
- </template>
- <template v-else>
- <div class="noData">
- <img src="@/assets/image/comprehensive/noData.png" alt="">
- <div class="txt">暂无公告信息</div>
- </div>
- </template>
- </div>
- </template>
- </BaseMain>
- <BaseMain title="概况">
- <template v-slot:mainArea>
- <div class="main-container">
- <div class="title-area">
- <div class="left">渭河生态区</div>
- <div class="right">干流全长:818km</div>
- </div>
- <div class="icon-item">
- <img src="@/assets/image/comprehensive/point2.png" class="img3" />
- <img src="@/assets/image/comprehensive/line.png" class="img2" />
- <img src="@/assets/image/comprehensive/point1.png" class="img1" />
- </div>
- <div class="info">
- <div class="left">发源于渭源县鸟鼠山于渭南市潼关县汇入黄河</div>
- <!-- <div class="right">于:渭南市潼关县</div> -->
- </div>
- <div class="base-info-card">
- <div class="base-info-item">
- <span>流域总面积</span>
- <span class="value green">13.5 <span>万k㎡</span></span>
- </div>
- <div class="base-info-item">
- <span>陕西境内河长</span>
- <span class="value yellow">512 <span>km</span></span>
- </div>
- <div class="base-info-item">
- <span>陕西境内流域总面积</span>
- <span class="value blue">6.76 <span>万k㎡</span></span>
- </div>
- </div>
- <div class="base-info-card m0">
- <div class="base-info-item">
- <span>生态区面积</span>
- <span class="value green">1277.04<span>万k㎡</span></span>
- </div>
- <div class="base-info-item">
- <span>宝鸡峡大坝以上河道管理区面积</span>
- <span class="value yellow">291.49<span>km²</span></span>
- </div>
- <div class="base-info-item">
- <span>宝鸡峡大坝以下河道管理区面积</span>
- <span class="value blue">538.85 <span>km²</span></span>
- </div>
- </div>
- <div class="title-area borderT">
- <div class="left">渭河生态区兴平段</div>
- <div class="right">河道长度:30.6km</div>
- </div>
- <div class="icon-item">
- <img src="@/assets/image/comprehensive/point2.png" class="img3" />
- <img src="@/assets/image/comprehensive/line.png" class="img2" />
- <img src="@/assets/image/comprehensive/point1.png" class="img1" />
- </div>
- <div class="info">
- <div class="left">西起:武兴交界</div>
- <div class="right">东至:兴秦交界</div>
- </div>
- <div class="icon-card-container">
- <div class="area">
- <img src="@/assets/image/comprehensive/icon2.png" />
- <div class="areainfo">
- <div class="title">农村区段</div>
- <div class="km"><span>一级管控 </span><span class="blue">17</span>k㎡</div>
- <div class="km"><span>二级管控 </span><span class="blue">15.87</span>k㎡</div>
- </div>
- </div>
- <div class="area">
- <img src="@/assets/image/comprehensive/icon1.png" />
- <div class="areainfo">
- <div class="title">城市核心区段</div>
- <div class="km"><span>一级管控 </span><span class="green">0.39</span>k㎡</div>
- <div class="km"><span>二级管控 </span><span class="green">0.78</span>k㎡</div>
- </div>
- </div>
- </div>
- </div>
- </template>
- </BaseMain>
- </div>
- </div>
- </BasePanelLeft>
- </template>
- <script>
- import moment from 'moment'
- import BasePanelLeft from '@/components/base-panel/base-panel-left'
- import BaseMain from '@/components/base-main/base-main.vue'
- import {getAnnouncementList} from '@/api/announcementApi'
- import ImgUrl from '@/assets/image/comprehensive/bg1.png'
- import ImgUrl2 from '@/assets/image/comprehensive/bg2.png'
- export default {
- components: {
- BaseMain,
- BasePanelLeft
- },
- data() {
- return {
- noticeList: [],
- noticeDataList: [],
- defaultImg:ImgUrl,
- defaultSmallImg:ImgUrl2,
- tableInfo: [
- {
- id: 1,
- title: '桑镇西桥村至庄头镇蔡庄村段',
- len: 13.146,
- year: 30,
- sl: 6669
- },
- {
- id: 2,
- title: '庄头镇蔡庄村至阜寨镇段家村段',
- len: 13.146,
- year: 30,
- sl: 6669
- }
- ]
- }
- },
- mounted(){
- this.fetchData()
- },
- methods: {
- formatDate(date) {
- return moment(date).format('YYYY-MM-DD HH:mm:ss')
- },
- fetchData() {
- getAnnouncementList({ announcementStatus: '1',pageNum: 1,
- pageSize: 3}).then((res) => {
- this.noticeList = res.data.records
- this.noticeDataList = this.noticeList.splice(1, this.noticeList.length)
- })
- },
- toSee(data){
- console.info(data)
- this.$globalEventBus.$emit('clickAnnouncePopup',{list:data})
- }
- }
- }
- </script>
- <style lang="scss" scoped>
- .comprehensive-container {
- position: absolute;
- top: px-to-rem(30);
- z-index: 1;
- left: px-to-rem(-4);
- .h380{
- height: px-to-rem(419);
- }
- .main-container {
- padding: px-to-rem(10);
- .noData{
- width: 100%;
- height: 100%;
- text-align: center;
- img{
- margin-top: px-to-rem(70);
- margin-bottom: px-to-rem(20);
- }
- .txt{
- color: #fff;
- font-size: px-to-rem(14);
- }
- }
- .title-area {
- display: flex;
- justify-content: space-between;
- margin-top: px-to-rem(10);
- align-items: center;
- .left {
- font-weight: bold;
- font-size: px-to-rem(16);
- color: #ffffff;
- }
- .right {
- font-weight: 500;
- font-size: px-to-rem(14);
- color: #ffffff;
- }
- }
- .img-txt {
- position: relative;
- .img {
- width: 100%;
- }
- :deep(.el-image__inner) {
- height: px-to-rem(182);
- width: 100%;
- }
- .txt {
- width: px-to-rem(337);
- height: px-to-rem(30);
- background: rgba(0, 0, 0, 0.5);
- border-radius: px-to-rem(4);
- font-weight: bold;
- font-size: px-to-rem(14);
- color: #ffffff;
- line-height: px-to-rem(30);
- position: absolute;
- left: 0;
- bottom: 0;
- text-align: left;
- padding-left: px-to-rem(10);
- }
- }
- .list {
- display: flex;
- justify-content: space-between;
- margin-top: px-to-rem(10);
- background: rgba(79, 159, 255, 0.2);
- border-radius: px-to-rem(4);
- border: 1px solid #4f9fff;
- padding: px-to-rem(5);
- height: px-to-rem(93);
- .left .img {
- width: px-to-rem(100);
- height: px-to-rem(80);
- :deep(.el-image__inner) {
- height: px-to-rem(80);
- }
- }
- .right {
- font-weight: 500;
- font-size: px-to-rem(14);
- color: #ffffff;
- position: relative;
- .date {
- font-weight: 400;
- font-size: px-to-rem(14);
- color: #ffffff;
- margin-top: px-to-rem(9);
- margin-bottom: px-to-rem(10);
- }
- .detailBtn {
- width: px-to-rem(48);
- height: px-to-rem(24);
- line-height: px-to-rem(25);
- background: linear-gradient(0deg, #468adb 0%, #366dae 100%);
- border-radius: px-to-rem(4);
- border: px-to-rem(1) solid transparent;
- font-weight: 400;
- font-size: px-to-rem(14);
- color: #ffffff;
- position: absolute;
- right: 0;
- text-align: center;
- bottom: px-to-rem(4);
- }
- }
- }
- .borderT{
- padding-top: px-to-rem(17);
- border-top: px-to-rem(1) solid #5980A9;
- }
- }
- .icon-item {
- position: relative;
- height: px-to-rem(18);
- margin-top: px-to-rem(10);
- .img1 {
- position: absolute;
- top: px-to-rem(0);
- z-index: 1;
- }
- .img2 {
- width: px-to-rem(328);
- height: px-to-rem(11);
- position: absolute;
- left: px-to-rem(8);
- top: px-to-rem(4);
- }
- .img3 {
- position: absolute;
- top: px-to-rem(0);
- right: 0;
- z-index: 1;
- }
- }
- .info {
- display: flex;
- justify-content: space-between;
- font-weight: bold;
- font-size: px-to-rem(14);
- color: #ffffff;
- margin-top: px-to-rem(15);
- // padding-bottom: px-to-rem(10);
- }
- .base-info-card {
- display: flex;
- justify-content: space-between;
- margin-top: px-to-rem(7);
- .base-info-item {
- display: flex;
- flex-direction: column;
- margin-bottom: px-to-rem(5);
- justify-content: space-around;
- width: 30%;
- span {
- font-weight: bold;
- font-size: px-to-rem(12);
- color: #c4c6c8;
- }
- .value {
- font-size: px-to-rem(14);
- margin-top: px-to-rem(5);
- color: #ffffff;
- }
- .yellow {
- color: #d6a042;
- }
- .blue {
- color: #81b1f5;
- }
- .green {
- color: #80f5ff;
- }
- }
- }
- .m0 {
- margin-top: 0;
- }
- .table-card {
- border: px-to-rem(1) solid #6b87b1;
- background: #182c44;
- margin-bottom: px-to-rem(5);
- .title {
- background: #3b5071;
- font-weight: bold;
- font-size: px-to-rem(14);
- color: #ffffff;
- height: px-to-rem(24);
- line-height: px-to-rem(24);
- padding-left: px-to-rem(11);
- }
- .base-info-card {
- padding: 0 px-to-rem(10);
- .base-info-item {
- border-right: px-to-rem(1) solid #3a4148;
- width: 33%;
- }
- .base-info-item:last-child {
- border-right: 0;
- }
- .pl20 {
- padding-left: px-to-rem(20);
- }
- }
- }
- .icon-card-container {
- display: flex;
- justify-content: space-between;
- padding: 0 px-to-rem(10);
- margin-top: px-to-rem(9);
- .area {
- align-items: center;
- display: flex;
- justify-content: space-between;
- img {
- width: px-to-rem(47);
- height: px-to-rem(49);
- margin-right: px-to-rem(8);
- }
- .areainfo {
- .title,
- .km {
- font-weight: bold;
- font-size: px-to-rem(12);
- color: #c4c6c8;
- span{
- color: #F5F5F5;
- }
- .blue {
- color: #81b1f5;
- }
- .green {
- color: #80f5ff;
- }
- }
- }
- }
- }
- }
- </style>
|