Browse Source

commit

master
hehongxing 3 years ago
parent
commit
8e3fb35eb6
  1. BIN
      04.系统编码/Frontend/public/images/decision-support/通风廊道规划建议/通风廊道1.png
  2. BIN
      04.系统编码/Frontend/public/images/decision-support/通风廊道规划建议/通风廊道2.png
  3. BIN
      04.系统编码/Frontend/public/images/decision-support/高楼污染指数/高楼污染指数1.png
  4. BIN
      04.系统编码/Frontend/public/images/decision-support/高楼污染指数/高楼污染指数2.png
  5. BIN
      04.系统编码/Frontend/public/images/logo.png
  6. BIN
      04.系统编码/Frontend/public/images/picture2.png
  7. BIN
      04.系统编码/Frontend/public/images/picture3.png
  8. BIN
      04.系统编码/Frontend/public/images/picture5.png
  9. 156
      04.系统编码/Frontend/src/components/DecisionSupport.vue
  10. 139
      04.系统编码/Frontend/src/components/MicrowaveRadiation.vue
  11. 259
      04.系统编码/Frontend/src/components/SynergyEvaluation.vue
  12. 13
      04.系统编码/Frontend/src/hooks/Config.ts
  13. 6
      04.系统编码/Frontend/src/hooks/String.ts
  14. 18
      04.系统编码/Frontend/src/index.less

BIN
04.系统编码/Frontend/public/images/decision-support/通风廊道规划建议/通风廊道1.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 MiB

BIN
04.系统编码/Frontend/public/images/decision-support/通风廊道规划建议/通风廊道2.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 424 KiB

BIN
04.系统编码/Frontend/public/images/decision-support/高楼污染指数/高楼污染指数1.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 135 KiB

BIN
04.系统编码/Frontend/public/images/decision-support/高楼污染指数/高楼污染指数2.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 230 KiB

BIN
04.系统编码/Frontend/public/images/logo.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.2 KiB

After

Width:  |  Height:  |  Size: 22 KiB

BIN
04.系统编码/Frontend/public/images/picture2.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 178 KiB

BIN
04.系统编码/Frontend/public/images/picture3.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 371 KiB

BIN
04.系统编码/Frontend/public/images/picture5.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 359 KiB

156
04.系统编码/Frontend/src/components/DecisionSupport.vue

@ -1,16 +1,154 @@
<template> <template>
<div class="tabs"></div>
<div class="main">
<div class="menu panel">
<div class="menu-item">
<h2 class="tip">指标选择</h2>
<el-row :gutter="12">
<el-col :span="24"><span @click="onIndicatorClick('通风廊道规划建议')" :class="{'active': currentIndicator === '通风廊道规划建议'}">通风廊道规划建议</span></el-col>
<el-col :span="24"><span @click="onIndicatorClick('高楼污染指数')" :class="{'active': currentIndicator === '高楼污染指数'}">高楼污染指数</span></el-col>
</el-row>
</div>
</div>
<div class="container panel">
<span class="save-btn"><img src="/images/save.png" /></span>
<div class="picture-view advice-picture-view" v-if="currentIndicator === '通风廊道规划建议'">
<div class="picture">
<h2 class="title">南京市潜在通风廊道</h2>
<el-image
src="/images/decision-support/通风廊道规划建议/通风廊道1.png"
:preview-src-list="srcList"
:initial-index="1"
fit="contain"
>
</el-image>
</div>
<div class="picture">
<h2 class="title">南京市通风廊道规划示意图</h2>
<el-image
src="/images/decision-support/通风廊道规划建议/通风廊道2.png"
:preview-src-list="srcList"
:initial-index="1"
fit="contain"
class="border"
>
</el-image>
</div>
</div>
<div class="picture-view indicator-picture-view" v-if="currentIndicator === '高楼污染指数'">
<h2 class="title">南京市高楼污染指数-PM2.5</h2>
<div class="picture-block">
<div class="picture">
<el-image
src="/images/decision-support/高楼污染指数/高楼污染指数1.png"
:preview-src-list="srcList"
:initial-index="1"
fit="contain"
>
</el-image>
</div>
<div class="picture">
<el-image
src="/images/decision-support/高楼污染指数/高楼污染指数2.png"
:preview-src-list="srcList"
:initial-index="1"
fit="contain"
>
</el-image>
</div>
</div>
</div>
</div>
</div>
</template> </template>
<script> <script lang="ts">
export default { import { onMounted, reactive, toRefs } from 'vue';
name: "app", import moment from "moment";
setup() {
return { export default {
name: 'DecisionSupport',
setup() {
let options = reactive({
currentIndicator: '通风廊道规划建议',
srcList: ['/images/picture.png']
})
} const onIndicatorClick = (indicator) => {
} options.currentIndicator = indicator;
} }
</script>
return {
...toRefs(options),
onIndicatorClick
}
}
}
</script>
<style lang="less" scoped> <style lang="less" scoped>
.main {
.container {
.save-btn {
top: 0.6rem;
right: 0.6rem;
}
.advice-picture-view {
height: 100%;
display: flex;
align-items: center;
.picture {
width: 7.98rem;
height: auto;
display: block;
.title {
padding: 0;
margin-bottom: 0.7rem;
}
.el-image {
width: 99%;
height: auto;
margin: 0 auto;
&.border {
border: 1px solid #666666;
}
}
&:last-of-type {
width: 5.34rem;
}
}
}
.indicator-picture-view {
height: 100%;
display: flex;
align-items: center;
flex-direction: column;
justify-content: center;
.title {
padding: 0;
margin-bottom: 0.7rem;
}
.picture-block {
display: flex;
align-items: center;
justify-content: center;
}
.picture {
width: 6.5rem;
height: auto;
display: block;
.el-image {
width:100%;
height: auto;
margin: 0 auto;
}
&:last-of-type {
width: 6.44rem;
}
}
}
}
}
</style> </style>

139
04.系统编码/Frontend/src/components/MicrowaveRadiation.vue

@ -1,8 +1,8 @@
<template> <template>
<div class="tabs"> <div class="tabs">
<div class="tab-item" @click="onTabClick('垂直廓线')" :class="{'active': currentTab === '垂直廓线'}"> <div class="tab-item" @click="onTabClick('kuoxian')" :class="{'active': currentTab === 'kuoxian'}">
垂直廓线 垂直廓线
<img src="/images/line.png" v-if="currentTab === '垂直廓线'" /> <img src="/images/line.png" v-if="currentTab === 'kuoxian'" />
</div> </div>
<div class="tab-item" @click="onTabClick('对流指数')" :class="{'active': currentTab === '对流指数'}"> <div class="tab-item" @click="onTabClick('对流指数')" :class="{'active': currentTab === '对流指数'}">
对流指数 对流指数
@ -22,18 +22,18 @@
<div class="menu-item"> <div class="menu-item">
<h2 class="tip">区域选择</h2> <h2 class="tip">区域选择</h2>
<el-row :gutter="12"> <el-row :gutter="12">
<el-col :span="8"><span @click="onRegionClick('江宁')" :class="{'active': currentRegion === '江宁'}">江宁</span></el-col> <el-col :span="8"><span @click="onRegionClick('jiangning')" :class="{'active': currentRegion === 'jiangning'}">江宁</span></el-col>
<el-col :span="8"><span @click="onRegionClick('六合')" :class="{'active': currentRegion === '六合'}">六合</span></el-col> <el-col :span="8"><span @click="onRegionClick('liuhe')" :class="{'active': currentRegion === 'liuhe'}">六合</span></el-col>
<el-col :span="8"><span @click="onRegionClick('浦口')" :class="{'active': currentRegion === '浦口'}">浦口</span></el-col> <el-col :span="8"><span @click="onRegionClick('pukou')" :class="{'active': currentRegion === 'pukou'}">浦口</span></el-col>
<el-col :span="8"><span @click="onRegionClick('高淳')" :class="{'active': currentRegion === '高淳'}">高淳</span></el-col> <el-col :span="8"><span @click="onRegionClick('gaochun')" :class="{'active': currentRegion === 'gaochun'}">高淳</span></el-col>
<el-col :span="8"><span @click="onRegionClick('溧水')" :class="{'active': currentRegion === '溧水'}">溧水</span></el-col> <el-col :span="8"><span @click="onRegionClick('lishui')" :class="{'active': currentRegion === 'lishui'}">溧水</span></el-col>
</el-row> </el-row>
</div> </div>
<div class="menu-item" v-if="currentTab === '垂直廓线'"> <div class="menu-item" v-if="currentTab === 'kuoxian'">
<h2 class="tip">要素选择</h2> <h2 class="tip">要素选择</h2>
<el-row :gutter="12"> <el-row :gutter="12">
<el-col :span="8"><span @click="onElementClick('温度')" :class="{'active': currentElement === '温度'}">温度</span></el-col> <el-col :span="8"><span @click="onElementClick('TEMP')" :class="{'active': currentElement === 'TEMP'}">温度</span></el-col>
<el-col :span="8"><span @click="onElementClick('湿度')" :class="{'active': currentElement === '湿度'}">湿度</span></el-col> <el-col :span="8"><span @click="onElementClick('RH')" :class="{'active': currentElement === 'RH'}">湿度</span></el-col>
</el-row> </el-row>
</div> </div>
<div class="menu-item" v-if="currentTab === '对流指数'"> <div class="menu-item" v-if="currentTab === '对流指数'">
@ -52,13 +52,13 @@
<span class="minute" @click="onTimeClick(time)">{{time.minute}}</span> <span class="minute" @click="onTimeClick(time)">{{time.minute}}</span>
</div> </div>
</div> </div>
<el-date-picker v-model="date" type="date" placeholder="请选择" :clearable="false" :editable="false" class="date-picker"> <el-date-picker v-model="date" type="date" placeholder="请选择" :clearable="false" :editable="false" class="date-picker" @change="onDateChange">
</el-date-picker> </el-date-picker>
<div class="control-btn"> <div class="control-btn">
<span><img src="/images/prev.png" /></span> <span @click="onPrevDayClick"><img src="/images/prev.png" /></span>
<span><img src="/images/next.png" /></span> <span @click="onNextDayClick"><img src="/images/next.png" /></span>
</div> </div>
<el-select v-model="currentHour" placeholder=""> <el-select v-model="currentHour" placeholder="" @change="onHourChange">
<el-option <el-option
v-for="item in hours" v-for="item in hours"
:key="item.value" :key="item.value"
@ -77,16 +77,16 @@
</div> </div>
</div> </div>
<div class="picture-view"> <div class="picture-view">
<span class="arrow arrow-prev"><img src="/images/prev-btn.png" /></span> <span class="arrow arrow-prev" @click="onPrevImgClick"><img src="/images/prev-btn.png" /></span>
<span class="arrow arrow-next"><img src="/images/next-btn.png" /></span> <span class="arrow arrow-next" @click="onNextImgClick"><img src="/images/next-btn.png" /></span>
<span class="save-btn"><img src="/images/save.png" /></span> <span class="save-btn"><img src="/images/save.png" /></span>
<h2 class="title">2021.11.21 10:42 Temperature</h2> <h2 class="title">{{title}}</h2>
<div class="picture"> <div class="picture">
<el-image <el-image
src="/images/picture.png" :src="imgUrl"
:preview-src-list="srcList" :preview-src-list="srcList"
:initial-index="1" :initial-index="1"
fit="contain" fit="contain"
> >
</el-image> </el-image>
</div> </div>
@ -98,31 +98,33 @@
<script lang="ts"> <script lang="ts">
import { onMounted, reactive, toRefs } from 'vue'; import { onMounted, reactive, toRefs } from 'vue';
import moment from "moment"; import moment from "moment";
import { MicrowaveRadiationConfig } from '../hooks/Config';
export default { export default {
name: 'MicrowaveRadiation', name: 'MicrowaveRadiation',
setup() { setup() {
let options = reactive({ let options = reactive({
currentTab: '垂直廓线', currentTab: 'kuoxian',
currentRegion: '江宁', currentRegion: 'jiangning',
currentElement: '温度', currentElement: 'TEMP',
currentCategory: 'CAPE', currentCategory: 'CAPE',
date: new Date(), date: moment().format('YYYY-MM-DD'),
currentHour: '10', currentHour: '10',
hours: [{ hours: [],
value: '10',
label: '10'
}, {
value: '11',
label: '11'
}],
times: [], times: [],
currentTime: null, currentTime: null,
srcList: ['/images/picture.png'] imgUrl: null,
srcList: ['/images/picture.png'],
isPlay: false,
title: null,
test: []
}) })
onMounted(() => { onMounted(() => {
initTimes(); initHours();
initTimeLine();
activeImage();
setTitle(moment(options.date, 'YYYY-MM-DD').hour(parseInt(options.currentHour)))
}) })
const onTabClick = (name) => { const onTabClick = (name) => {
@ -141,18 +143,32 @@
options.currentCategory = category; options.currentCategory = category;
} }
const initTimes = () => { const setTitle = (date) => {
let now = moment(); console.log(date)
options.title = date.format('YYYY.MM.DD HH:mm') + ' ' + options.currentElement;
}
const activeImage = () => {
console.log(MicrowaveRadiationConfig.getUrl("jingning", "kuoxian_TEMP", moment()));
options.imgUrl = MicrowaveRadiationConfig.getUrl(options.currentRegion, options.currentTab + '_' + options.currentElement, moment(options.date).hour(parseInt(options.currentHour)).minute(0));
console.log(options.imgUrl)
}
const initTimeLine = () => {
options.times = [];
options.currentTime = moment(options.date).hour(parseInt(options.currentHour)).format('YYYY-MM-DD HH:mm');
let now = moment(options.date).hour(parseInt(options.currentHour) - 2);
let minute = now.minute(); let minute = now.minute();
const remainder = minute % 6; const remainder = minute % 6;
if (remainder > 0){ if (remainder > 0){
now.minute(minute + (6 - remainder)); now.minute(minute + (6 - remainder));
} }
options.currentTime = now.format('YYYY-MM-DD HH:mm');
now.minute(now.minute() - 6); now.minute(now.minute() - 6);
for (let i = 0; i < 20 ; i++) { for (let i = 0; i < 21 ; i++) {
options.times.push({ options.times.push({
hour: now.add(6, 'minute').format('HH时'), hour: now.add(6, 'minute').format('HH时'),
minute: now.format('mm'), minute: now.format('mm'),
@ -162,10 +178,45 @@
} }
} }
const initHours = () => {
for (let i = 0; i < 23; i++) {
options.hours.push({
value: i,
label: i < 10 ? '0' + i : i,
})
}
}
const onTimeClick = (time) => { const onTimeClick = (time) => {
console.log(time.date)
options.currentTime = time.date; options.currentTime = time.date;
console.log(options.currentTime) setTitle(moment(time.date, 'YYYY-MM-DD HH:mm'));
activeImage();
}
const onPrevDayClick = () => {
options.date = moment(options.date).add(-1, 'day').format('YYYY-MM-DD')
}
const onNextDayClick = () => {
options.date = moment(options.date).add(1, 'day').format('YYYY-MM-DD')
}
const onPrevImgClick = () => {
}
const onNextImgClick = () => {
}
const onHourChange = () => {
initTimeLine();
setTitle(moment(options.date).hour(parseInt(options.currentHour)));
}
const onDateChange = () => {
initTimeLine();
setTitle(moment(options.date).hour(parseInt(options.currentHour)));
} }
return { return {
@ -174,7 +225,13 @@
onRegionClick, onRegionClick,
onElementClick, onElementClick,
onCategoryClick, onCategoryClick,
onTimeClick onTimeClick,
onPrevDayClick,
onNextDayClick,
onPrevImgClick,
onNextImgClick,
onHourChange,
onDateChange
} }
} }
} }

259
04.系统编码/Frontend/src/components/SynergyEvaluation.vue

@ -19,7 +19,7 @@
</div> </div>
<div class="main"> <div class="main">
<div class="menu panel"> <div class="menu panel">
<div class="menu-item"> <div class="menu-item" v-if="currentTab === '植被变化对气候的影响' || currentTab === '植被分布对气候的影响'">
<h2 class="tip">要素选择</h2> <h2 class="tip">要素选择</h2>
<el-row :gutter="12"> <el-row :gutter="12">
<el-col :span="24"><span @click="onElementClick('归一化植被指数NDVI')" :class="{'active': currentElement === '归一化植被指数NDVI'}">归一化植被指数NDVI</span></el-col> <el-col :span="24"><span @click="onElementClick('归一化植被指数NDVI')" :class="{'active': currentElement === '归一化植被指数NDVI'}">归一化植被指数NDVI</span></el-col>
@ -27,9 +27,63 @@
<el-col :span="24"><span @click="onElementClick('增强植被指数EVI')" :class="{'active': currentElement === '增强植被指数EVI'}">增强植被指数EVI</span></el-col> <el-col :span="24"><span @click="onElementClick('增强植被指数EVI')" :class="{'active': currentElement === '增强植被指数EVI'}">增强植被指数EVI</span></el-col>
</el-row> </el-row>
</div> </div>
<div class="menu-item" v-if="currentTab === '植被和气候要素变化趋势' || currentTab === '植被和气候要素的监测'">
<h2 class="tip">要素选择</h2>
<el-row :gutter="12">
<el-col :span="24"><span @click="onCategoryClick('地表温度LST')" :class="{'active': currentCategory === '地表温度LST'}">地表温度LST</span></el-col>
<el-col :span="24"><span @click="onCategoryClick('叶面积指数LAI')" :class="{'active': currentCategory === '叶面积指数LAI'}">叶面积指数LAI</span></el-col>
<el-col :span="24"><span @click="onCategoryClick('增强植被指数EVI')" :class="{'active': currentCategory === '增强植被指数EVI'}">增强植被指数EVI</span></el-col>
<el-col :span="24"><span @click="onCategoryClick('归一化植被指数NDVI')" :class="{'active': currentCategory === '归一化植被指数NDVI'}">归一化植被指数NDVI</span></el-col>
<el-col :span="24"><span @click="onCategoryClick('反照率Albedo')" :class="{'active': currentCategory === '反照率Albedo'}">反照率Albedo</span></el-col>
<el-col :span="24"><span @click="onCategoryClick('蒸散发Evapotranspiration')" :class="{'active': currentCategory === '蒸散发Evapotranspiration'}">蒸散发Evapotranspiration</span></el-col>
<el-col :span="24" v-if="currentTab === '植被和气候要素的监测'"><span @click="onCategoryClick('土地覆盖类型')" :class="{'active': currentCategory === '土地覆盖类型'}">土地覆盖类型</span></el-col>
</el-row>
</div>
<div class="menu-item" v-if="currentTab === '植被和气候要素的监测'">
<h2 class="tip">时间点选择</h2>
<el-row :gutter="12">
<el-col :span="24"><span @click="onTimeClick('地表温度(01:30)')" :class="{'active': currentTime === '地表温度(01:30)'}">地表温度01:30</span></el-col>
<el-col :span="24"><span @click="onTimeClick('地表温度(10:30)')" :class="{'active': currentTime === '地表温度(10:30)'}">地表温度10:30</span></el-col>
<el-col :span="24"><span @click="onTimeClick('地表温度(13:30)')" :class="{'active': currentTime === '地表温度(13:30)'}">地表温度13:30</span></el-col>
<el-col :span="24"><span @click="onTimeClick('地表温度(13:30)')" :class="{'active': currentTime === '地表温度(22:30)'}">地表温度22:30</span></el-col>
</el-row>
</div>
</div> </div>
<div class="container panel"> <div class="container panel synergy-container">
<div class="picture-view synergy-picture-view"> <span class="save-btn"><img src="/images/save.png" /></span>
<div class="element-select" v-if="currentTab === '植被和气候要素变化趋势' || currentTab === '植被和气候要素的监测'">
<div class="surface-temperature" v-if="currentTab === '植被和气候要素变化趋势'">
<span @click="onSurfaceTemperatureClick('地表温度(01:30)')" :class="{'active': currentSurfaceTemperatureTime === '地表温度(01:30)'}">地表温度01:30</span>
<span @click="onSurfaceTemperatureClick('地表温度(10:30)')" :class="{'active': currentSurfaceTemperatureTime === '地表温度(10:30)'}">地表温度10:30</span>
<span @click="onSurfaceTemperatureClick('地表温度(13:30)')" :class="{'active': currentSurfaceTemperatureTime === '地表温度(13:30)'}">地表温度13:30</span>
<span @click="onSurfaceTemperatureClick('地表温度(22:30)')" :class="{'active': currentSurfaceTemperatureTime === '地表温度(22:30)'}">地表温度22:30</span>
</div>
<div class="surface-temperature" v-if="currentTab === '植被和气候要素的监测'">
<span @click="onYearClick('2000')" :class="{'active': currentYear === '2000'}">2000</span>
<span @click="onYearClick('2001')" :class="{'active': currentYear === '2001'}">2001</span>
<span @click="onYearClick('2002')" :class="{'active': currentYear === '2002'}">2002</span>
<span @click="onYearClick('2003')" :class="{'active': currentYear === '2003'}">2003</span>
<span @click="onYearClick('2004')" :class="{'active': currentYear === '2004'}">2004</span>
<span @click="onYearClick('2005')" :class="{'active': currentYear === '2005'}">2005</span>
<span @click="onYearClick('2006')" :class="{'active': currentYear === '2006'}">2006</span>
<span @click="onYearClick('2007')" :class="{'active': currentYear === '2007'}">2007</span>
<span @click="onYearClick('2008')" :class="{'active': currentYear === '2008'}">2008</span>
<span @click="onYearClick('2009')" :class="{'active': currentYear === '2009'}">2009</span>
<span @click="onYearClick('2010')" :class="{'active': currentYear === '2010'}">2010</span>
<span @click="onYearClick('2011')" :class="{'active': currentYear === '2011'}">2011</span>
<span @click="onYearClick('2012')" :class="{'active': currentYear === '2012'}">2012</span>
<span @click="onYearClick('2013')" :class="{'active': currentYear === '2013'}">2013</span>
<span @click="onYearClick('2014')" :class="{'active': currentYear === '2014'}">2014</span>
<span @click="onYearClick('2015')" :class="{'active': currentYear === '2015'}">2015</span>
<span @click="onYearClick('2016')" :class="{'active': currentYear === '2016'}">2016</span>
<span @click="onYearClick('2017')" :class="{'active': currentYear === '2017'}">2017</span>
<span @click="onYearClick('2018')" :class="{'active': currentYear === '2018'}">2018</span>
<span @click="onYearClick('2019')" :class="{'active': currentYear === '2019'}">2019</span>
<span @click="onYearClick('2020')" :class="{'active': currentYear === '2020'}">2020</span>
<span @click="onYearClick('多年平均值2000-2020')" :class="{'active': currentYear === '多年平均值2000-2020'}">多年平均值2000-2020</span>
</div>
</div>
<div class="picture-view synergy-picture-view" v-if="currentTab === '植被变化对气候的影响' || currentTab === '植被分布对气候的影响'">
<el-row :gutter="0"> <el-row :gutter="0">
<el-col :span="8"> <el-col :span="8">
<h2 class="title">地表温度01:30</h2> <h2 class="title">地表温度01:30</h2>
@ -44,7 +98,7 @@
<el-col :span="8"> <el-col :span="8">
<h2 class="title">地表温度01:30</h2> <h2 class="title">地表温度01:30</h2>
<el-image <el-image
src="/images/picture1.png" src="/images/picture2.png"
:preview-src-list="srcList" :preview-src-list="srcList"
:initial-index="1" :initial-index="1"
fit="contain" fit="contain"
@ -93,6 +147,118 @@
</el-col> </el-col>
</el-row> </el-row>
</div> </div>
<div class="picture-view multi-picture-view" v-if="currentTab === '植被和气候要素变化趋势' || currentTab === '植被和气候要素的监测'">
<el-row :gutter="0">
<el-col :span="4">
<el-image
src="/images/picture3.png"
:preview-src-list="srcList"
:initial-index="1"
fit="contain"
>
</el-image>
</el-col>
<el-col :span="4">
<el-image
src="/images/picture3.png"
:preview-src-list="srcList"
:initial-index="1"
fit="contain"
>
</el-image>
</el-col>
<el-col :span="4">
<el-image
src="/images/picture3.png"
:preview-src-list="srcList"
:initial-index="1"
fit="contain"
>
</el-image>
</el-col>
<el-col :span="4">
<el-image
src="/images/picture3.png"
:preview-src-list="srcList"
:initial-index="1"
fit="contain"
>
</el-image>
</el-col>
<el-col :span="4">
<el-image
src="/images/picture3.png"
:preview-src-list="srcList"
:initial-index="1"
fit="contain"
>
</el-image>
</el-col>
<el-col :span="4">
<el-image
src="/images/picture3.png"
:preview-src-list="srcList"
:initial-index="1"
fit="contain"
>
</el-image>
</el-col>
<el-col :span="4">
<el-image
src="/images/picture3.png"
:preview-src-list="srcList"
:initial-index="1"
fit="contain"
>
</el-image>
</el-col>
<el-col :span="4">
<el-image
src="/images/picture3.png"
:preview-src-list="srcList"
:initial-index="1"
fit="contain"
>
</el-image>
</el-col>
<el-col :span="4">
<el-image
src="/images/picture3.png"
:preview-src-list="srcList"
:initial-index="1"
fit="contain"
>
</el-image>
</el-col>
<el-col :span="4">
<el-image
src="/images/picture3.png"
:preview-src-list="srcList"
:initial-index="1"
fit="contain"
>
</el-image>
</el-col>
<el-col :span="4">
<el-image
src="/images/picture3.png"
:preview-src-list="srcList"
:initial-index="1"
fit="contain"
>
</el-image>
</el-col>
<el-col :span="4">
<el-image
src="/images/picture3.png"
:preview-src-list="srcList"
:initial-index="1"
fit="contain"
>
</el-image>
</el-col>
</el-row>
</div>
</div> </div>
</div> </div>
</template> </template>
@ -107,16 +273,10 @@
let options = reactive({ let options = reactive({
currentTab: '植被变化对气候的影响', currentTab: '植被变化对气候的影响',
currentElement: '归一化植被指数NDVI', currentElement: '归一化植被指数NDVI',
date: new Date(), currentCategory: '地表温度LST',
currentHour: '10', currentTime: '地表温度(01:30)',
hours: [{ currentYear: '2000',
value: '10', currentSurfaceTemperatureTime: '地表温度(01:30)',
label: '10'
}, {
value: '11',
label: '11'
}],
currentTime: null,
srcList: ['/images/picture1.png'] srcList: ['/images/picture1.png']
}) })
@ -132,16 +292,29 @@
options.currentElement = element; options.currentElement = element;
} }
const onCategoryClick = (category) => {
options.currentCategory = category;
}
const onTimeClick = (time) => { const onTimeClick = (time) => {
console.log(time.date) options.currentTime = time;
options.currentTime = time.date; }
console.log(options.currentTime)
const onSurfaceTemperatureClick = (value) => {
options.currentSurfaceTemperatureTime = value;
}
const onYearClick = (year) => {
options.currentYear = year;
} }
return { return {
...toRefs(options), ...toRefs(options),
onTabClick, onTabClick,
onElementClick, onElementClick,
onCategoryClick,
onSurfaceTemperatureClick,
onYearClick,
onTimeClick onTimeClick
} }
} }
@ -149,7 +322,9 @@
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
.main { .main {
.container { .synergy-container {
height: calc(~"100% - 0.6rem");
padding: 0.2rem 0 0.2rem 0.2rem;
.synergy-picture-view { .synergy-picture-view {
height: 100%; height: 100%;
display: flex; display: flex;
@ -169,6 +344,54 @@
} }
} }
} }
.multi-picture-view {
height: calc(~"100% - 0.76rem");
.el-row {
height: 100%;
.el-col {
max-width: calc(~"(100% / 6) - 0.2rem");
height: 50%;
margin: 0.2rem 0.2rem 0 0;
border: 1px solid #666666;
.el-image {
height: 100%;
display: flex;
align-items: center;
}
&:nth-of-type(6n) {
margin-right: 0;
}
}
}
}
.element-select {
position: relative;
.surface-temperature {
display: flex;
align-items: center;
border-left: 1px solid #498DF0;
span {
height: 0.34rem;
padding: 0 0.1rem;
text-align: center;
line-height: 0.34rem;
border: 1px solid #498DF0;
border-left: 0;
cursor: pointer;
&.active {
color: #ffffff;
background-color: #498DF0;
}
}
}
}
.save-btn {
right: 0.2rem;
top: 0.2rem;
}
} }
} }
</style> </style>

13
04.系统编码/Frontend/src/hooks/Config.ts

@ -0,0 +1,13 @@
import { Moment } from "moment";
export class Config {
public static parentUrl: string = "http://112.124.40.88:8890/product/picture";
}
export class MicrowaveRadiationConfig {
private static url: string = Config.parentUrl + "/weibo";
public static getUrl(station: string, type: string, time: Moment): string {
return this.url+ '/' + station + '/' + type + '/' + time.format("YYYY/YYYYMM/YYYYMMDD/YYYYMMDDHHmmss.png");
}
}

6
04.系统编码/Frontend/src/hooks/String.ts

@ -0,0 +1,6 @@
export function format(...args: any[]) {
return args[0].replace(/{(\d+)}/g, function (match: any, number: any) {
let index = parseInt(number) + 1;
return typeof args[index] !== 'undefined' ? args[index] : match;
});
}

18
04.系统编码/Frontend/src/index.less

@ -104,8 +104,9 @@ img {
} }
.main { .main {
width: 100%; width: calc(~"100% - 0.4rem");
height: calc(~"100vh - 1.44rem"); height: calc(~"100vh - 1.44rem");
padding: 0 0.2rem;
display: flex; display: flex;
.panel { .panel {
@ -118,7 +119,6 @@ img {
width: 2.5rem; width: 2.5rem;
padding: 0.2rem; padding: 0.2rem;
height: calc(~"100% - 0.6rem"); height: calc(~"100% - 0.6rem");
border-radius: 0 0.1rem 0.1rem 0;
.tip { .tip {
height: 0.32rem; height: 0.32rem;
@ -163,6 +163,7 @@ img {
.container { .container {
width: calc(~"100% - 2.9rem"); width: calc(~"100% - 2.9rem");
margin-left: 0.2rem; margin-left: 0.2rem;
position: relative;
.toolbar { .toolbar {
padding-top: 0.25rem; padding-top: 0.25rem;
@ -360,12 +361,8 @@ img {
} }
.save-btn { .save-btn {
width: 0.26rem;
display: block;
position: absolute;
top: 0.6rem; top: 0.6rem;
right: 2rem; right: 2rem;
cursor: pointer;
} }
.title { .title {
@ -396,5 +393,14 @@ img {
} }
} }
} }
.save-btn {
width: 0.26rem;
cursor: pointer;
position: absolute;
right: 0.2rem;
top: 0;
z-index: 10;
}
} }
} }
Loading…
Cancel
Save