添加降雨推演步骤条
This commit is contained in:
@@ -3,6 +3,7 @@ import { CesiumUtilsSingleton } from '@/utils/cesium/CesiumUtils.ts';
|
||||
import config from '@/config/config.json';
|
||||
import { useLeftLegendStore } from '@/stores/useLeftLegendStore';
|
||||
import { useScene } from '../useScene';
|
||||
import { useRainstormDeduction } from '../rainstorm/useRainstormDeduction';
|
||||
|
||||
export const useRightHandle = () => {
|
||||
/**
|
||||
@@ -11,50 +12,24 @@ export const useRightHandle = () => {
|
||||
*/
|
||||
const rainstormSimulation = (status: unknown) => {
|
||||
if (status as boolean) {
|
||||
// 显示步骤
|
||||
useRainstormDeduction().showStep();
|
||||
|
||||
// 开启暴雨模拟:显示降雨栅格图层
|
||||
useStatusStore().weatherLayers.showRainfallGrid.loading = true;
|
||||
useStatusStore().weatherLayers.showRainfallGrid.show = true;
|
||||
|
||||
// 添加图例
|
||||
useLeftLegendStore().legendListInfo.precipitation = {
|
||||
title: '降雨量图例',
|
||||
list: [
|
||||
{
|
||||
label: '无雨/微雨; <0.1mm/12h',
|
||||
color: 'rgba(200,200,200,0)',
|
||||
},
|
||||
{
|
||||
label: '小雨;<5mm/12h',
|
||||
color: 'rgba(0,0,255,0.4)',
|
||||
},
|
||||
{
|
||||
label: '中雨; <15mm/12h',
|
||||
color: 'rgba(0,255,255,0.5)',
|
||||
},
|
||||
{
|
||||
label: '大雨; <30mm/12h',
|
||||
color: 'rgba(0,255,0,0.6)',
|
||||
},
|
||||
{
|
||||
label: '暴雨; <70mm/12h',
|
||||
color: 'rgba(255,255,0,0.7)',
|
||||
},
|
||||
{
|
||||
label: '大暴雨; <140mm/12h',
|
||||
color: 'rgba(255,165,0,0.8)',
|
||||
},
|
||||
{
|
||||
label: '特大暴雨; >140mm/12h',
|
||||
color: 'rgba(255,0,0,0.9)',
|
||||
},
|
||||
],
|
||||
};
|
||||
useRainstormDeduction().addLegend();
|
||||
} else {
|
||||
// 关闭暴雨模拟:隐藏降雨栅格图层
|
||||
useStatusStore().weatherLayers.showRainfallGrid.show = false;
|
||||
|
||||
// 删除图例
|
||||
delete useLeftLegendStore().legendListInfo.precipitation;
|
||||
|
||||
// 隐藏步骤条
|
||||
useStatusStore().uiComponents.stepBar.show = false;
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -170,7 +170,7 @@ export const useRainDisasterChain = () => {
|
||||
*/
|
||||
const rightButtonInfo = [
|
||||
{
|
||||
name: '暴雨推演',
|
||||
name: '降雨推演',
|
||||
callback: (status: unknown) =>
|
||||
useRightHandle().rainstormSimulation(status),
|
||||
},
|
||||
|
||||
@@ -0,0 +1,54 @@
|
||||
import { useLeftLegendStore } from '@/stores/useLeftLegendStore';
|
||||
import { useStatusStore } from '@/stores/useStatusStore';
|
||||
import { useStepStore } from '@/stores/useStepStore';
|
||||
|
||||
export const useRainstormDeduction = () => {
|
||||
/**
|
||||
* 显示步骤
|
||||
*/
|
||||
const showStep = () => {
|
||||
useStatusStore().uiComponents.stepBar.show = true;
|
||||
useStepStore().stepList = ['获取雨量', '模型计算', '灾害预警', '报告产出'];
|
||||
};
|
||||
|
||||
/**
|
||||
* 添加图例
|
||||
*/
|
||||
const addLegend = () => {
|
||||
useLeftLegendStore().legendListInfo.precipitation = {
|
||||
title: '降雨量图例',
|
||||
list: [
|
||||
{
|
||||
label: '无雨/微雨; <0.1mm/12h',
|
||||
color: 'rgba(200,200,200,0)',
|
||||
},
|
||||
{
|
||||
label: '小雨;<5mm/12h',
|
||||
color: 'rgba(0,0,255,0.4)',
|
||||
},
|
||||
{
|
||||
label: '中雨; <15mm/12h',
|
||||
color: 'rgba(0,255,255,0.5)',
|
||||
},
|
||||
{
|
||||
label: '大雨; <30mm/12h',
|
||||
color: 'rgba(0, 255, 0, 0.89)',
|
||||
},
|
||||
{
|
||||
label: '暴雨; <70mm/12h',
|
||||
color: 'rgba(255,255,0,0.7)',
|
||||
},
|
||||
{
|
||||
label: '大暴雨; <140mm/12h',
|
||||
color: 'rgba(255,165,0,0.8)',
|
||||
},
|
||||
{
|
||||
label: '特大暴雨; >140mm/12h',
|
||||
color: 'rgba(255,0,0,0.9)',
|
||||
},
|
||||
],
|
||||
};
|
||||
};
|
||||
|
||||
return { showStep, addLegend };
|
||||
};
|
||||
Reference in New Issue
Block a user