|
@@ -41,7 +41,7 @@ const station = computed(() => getStation(route.params.stcd));
|
|
// 是否显示关卡按钮
|
|
// 是否显示关卡按钮
|
|
const hasLevel = computed(() => !!stationStore.stnm);
|
|
const hasLevel = computed(() => !!stationStore.stnm);
|
|
// 水下地形
|
|
// 水下地形
|
|
-const underwaterState = ref(true);
|
|
|
|
|
|
+const underwaterState = ref(false);
|
|
// 水文站标签
|
|
// 水文站标签
|
|
const hydrologicStationState = computed({
|
|
const hydrologicStationState = computed({
|
|
get: () => basinStore.labelState['水文站'],
|
|
get: () => basinStore.labelState['水文站'],
|
|
@@ -100,13 +100,14 @@ function formatWaterLevelTooltip(val: number) {
|
|
case "波高":
|
|
case "波高":
|
|
return (val).toFixed(2) as string
|
|
return (val).toFixed(2) as string
|
|
}
|
|
}
|
|
-
|
|
|
|
}
|
|
}
|
|
|
|
|
|
function handleHome() {
|
|
function handleHome() {
|
|
appStore.changeCurrentLevel('TaiHuMain')
|
|
appStore.changeCurrentLevel('TaiHuMain')
|
|
// 切换太湖流域视角
|
|
// 切换太湖流域视角
|
|
appStore.changeCurrentView()
|
|
appStore.changeCurrentView()
|
|
|
|
+ // 显示水文站标签
|
|
|
|
+ basinStore.setLabelState2('水文站', true)
|
|
}
|
|
}
|
|
|
|
|
|
async function handleSimulationModeChange(mode) {
|
|
async function handleSimulationModeChange(mode) {
|
|
@@ -248,15 +249,15 @@ function handleWavesChange(type) {
|
|
wavesValue.value = '无'
|
|
wavesValue.value = '无'
|
|
} else {
|
|
} else {
|
|
wavesValue.value = type
|
|
wavesValue.value = type
|
|
- const dateString = "20250429" // formatd(new Date(), "yyyyMMdd")
|
|
|
|
|
|
+ const dateString = "20250430" // formatd(new Date(), "yyyyMMdd")
|
|
|
|
|
|
- let timeList = generateTimeList(dateString + '00', 2, 3);
|
|
|
|
|
|
+ const timeList = generateTimeList(dateString + '00', 2, 3);
|
|
const timeScrollbarStore = useTimeScrollbarStore()
|
|
const timeScrollbarStore = useTimeScrollbarStore()
|
|
timeScrollbarStore.setTimeScrollbarShow(true)
|
|
timeScrollbarStore.setTimeScrollbarShow(true)
|
|
timeScrollbarStore.setMax(timeList.length)
|
|
timeScrollbarStore.setMax(timeList.length)
|
|
const timeObj = extractList(timeList, 4)
|
|
const timeObj = extractList(timeList, 4)
|
|
|
|
|
|
- for (let key in timeObj) {
|
|
|
|
|
|
+ for (const key in timeObj) {
|
|
timeObj[key] = {
|
|
timeObj[key] = {
|
|
style: {
|
|
style: {
|
|
color: '#00c7e3',
|
|
color: '#00c7e3',
|
|
@@ -287,22 +288,28 @@ watch(() => underwaterState.value, (value) => {
|
|
})
|
|
})
|
|
|
|
|
|
function handleWaves() {
|
|
function handleWaves() {
|
|
- if (route.path.indexOf('/waves') > -1) {
|
|
|
|
|
|
+ if (appStore.currentLevel === 'TaiHuMain') {
|
|
|
|
+ appStore.changeCurrentLevel('Demo')
|
|
|
|
+ router.push('/waves')
|
|
|
|
+ } else {
|
|
stationStore.setStnm('')
|
|
stationStore.setStnm('')
|
|
appStore.changeCurrentLevel('TaiHuMain')
|
|
appStore.changeCurrentLevel('TaiHuMain')
|
|
router.push('/');
|
|
router.push('/');
|
|
- } else {
|
|
|
|
- appStore.changeCurrentLevel('Demo')
|
|
|
|
- router.push('/waves')
|
|
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
watch(() => route.path, (path) => {
|
|
watch(() => route.path, (path) => {
|
|
if (path.indexOf('/index') >= 0) {
|
|
if (path.indexOf('/index') >= 0) {
|
|
|
|
+ // 显示水文站标签
|
|
|
|
+ basinStore.setLabelState2('水文站', true)
|
|
showBtnList.value = ['home', 'view', 'label', 'waves', 'typhoon', 'underwater']
|
|
showBtnList.value = ['home', 'view', 'label', 'waves', 'typhoon', 'underwater']
|
|
} else if (path.indexOf('/waves') >= 0) {
|
|
} else if (path.indexOf('/waves') >= 0) {
|
|
|
|
+ // 关闭水文站标签
|
|
|
|
+ basinStore.setLabelState2('水文站', false)
|
|
showBtnList.value = ['weather', 'simulation']
|
|
showBtnList.value = ['weather', 'simulation']
|
|
} else if (path.indexOf('/yuyan') >= 0) {
|
|
} else if (path.indexOf('/yuyan') >= 0) {
|
|
|
|
+ // 关闭水文站标签
|
|
|
|
+ basinStore.setLabelState2('水文站', false)
|
|
showBtnList.value = ['home', 'view', 'waves']
|
|
showBtnList.value = ['home', 'view', 'waves']
|
|
}
|
|
}
|
|
}, {immediate: true, deep: true})
|
|
}, {immediate: true, deep: true})
|
|
@@ -350,8 +357,9 @@ watch(() => route.path, (path) => {
|
|
</div>
|
|
</div>
|
|
</template>
|
|
</template>
|
|
<el-button-group>
|
|
<el-button-group>
|
|
- <el-button v-for="item in ['晴','小雨','中雨','大雨']" :key="item"
|
|
|
|
- @click="Setting.setWeather(item)">{{ item }}
|
|
|
|
|
|
+ <el-button v-for="item in ['晴', '小雨', '中雨', '大雨']" :key="item" @click="Setting.setWeather(item)">{{
|
|
|
|
+ item
|
|
|
|
+ }}
|
|
</el-button>
|
|
</el-button>
|
|
</el-button-group>
|
|
</el-button-group>
|
|
</el-popover>
|
|
</el-popover>
|
|
@@ -398,7 +406,7 @@ watch(() => route.path, (path) => {
|
|
</div>
|
|
</div>
|
|
</template>
|
|
</template>
|
|
<el-radio-group v-model="simulationMode" size="large" @change="handleSimulationModeChange">
|
|
<el-radio-group v-model="simulationMode" size="large" @change="handleSimulationModeChange">
|
|
- <el-radio-button v-for="item in ['水位','雨量','波高','无']" :key="item" :label="item" :value="item"/>
|
|
|
|
|
|
+ <el-radio-button v-for="item in ['水位', '雨量', '波高', '无']" :key="item" :label="item" :value="item"/>
|
|
</el-radio-group>
|
|
</el-radio-group>
|
|
</el-popover>
|
|
</el-popover>
|
|
|
|
|
|
@@ -407,18 +415,17 @@ watch(() => route.path, (path) => {
|
|
<icon :data="chat"/>
|
|
<icon :data="chat"/>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
- <div class="right-btn-item" @click="appStore.setExpand(!appStore.isExpand)">
|
|
|
|
|
|
+ <div v-show="false" class="right-btn-item" @click="appStore.setExpand(!appStore.isExpand)">
|
|
<img :src="backgroundSrc" alt="" style="position: absolute;"/>
|
|
<img :src="backgroundSrc" alt="" style="position: absolute;"/>
|
|
<icon :data="appStore.isExpand ? horizontalExpand : horizontalContract"/>
|
|
<icon :data="appStore.isExpand ? horizontalExpand : horizontalContract"/>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<div v-if="simulationMode !== '无'" class="slider-wrapper">
|
|
<div v-if="simulationMode !== '无'" class="slider-wrapper">
|
|
- <div :style="{'background-image': `url(${waterSliderBackground})`}" class="water-level-slider-container">
|
|
|
|
|
|
+ <div :style="{ 'background-image': `url(${waterSliderBackground})` }" class="water-level-slider-container">
|
|
<div class="water-level-slider-main">
|
|
<div class="water-level-slider-main">
|
|
<el-slider v-model="waterLevel" :format-tooltip="formatWaterLevelTooltip" :marks="waterLevelMarks"
|
|
<el-slider v-model="waterLevel" :format-tooltip="formatWaterLevelTooltip" :marks="waterLevelMarks"
|
|
:max="waterLevelMax" :min="waterLevelMin" :step="waterLevelStep" height="90%" placement="right"
|
|
:max="waterLevelMax" :min="waterLevelMin" :step="waterLevelStep" height="90%" placement="right"
|
|
- tooltip-class="slider-tooltip" vertical
|
|
|
|
- @input="value => bus.emit('set-water-level', value)"/>
|
|
|
|
|
|
+ tooltip-class="slider-tooltip" vertical @input="value => bus.emit('set-water-level', value)"/>
|
|
<span class="water-level-slider-title">{{ simulationMode }}动态模拟</span>
|
|
<span class="water-level-slider-title">{{ simulationMode }}动态模拟</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
@@ -455,7 +462,8 @@ watch(() => route.path, (path) => {
|
|
z-index: 1;
|
|
z-index: 1;
|
|
}
|
|
}
|
|
|
|
|
|
- &:hover, &.active {
|
|
|
|
|
|
+ &:hover,
|
|
|
|
+ &.active {
|
|
svg {
|
|
svg {
|
|
fill: #00cbe6;
|
|
fill: #00cbe6;
|
|
}
|
|
}
|
|
@@ -527,7 +535,8 @@ watch(() => route.path, (path) => {
|
|
z-index: 1;
|
|
z-index: 1;
|
|
}
|
|
}
|
|
|
|
|
|
- &:hover, &.active {
|
|
|
|
|
|
+ &:hover,
|
|
|
|
+ &.active {
|
|
svg {
|
|
svg {
|
|
fill: #00cbe6;
|
|
fill: #00cbe6;
|
|
}
|
|
}
|