|
@@ -43,17 +43,17 @@
|
|
|
<i class="line" />
|
|
|
<div class="box-right">
|
|
|
<div>当前预警等级较高的风险区域:</div>
|
|
|
- <div>{{ hazardousChemicals.highRiskArea.toString() }}</div>
|
|
|
+ <div>{{ hazardousChemicals.highRiskArea ? hazardousChemicals.highRiskArea : '无' }}</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="data-box2">
|
|
|
<div class="common-title-box">预警等级</div>
|
|
|
<div class="box-right">
|
|
|
- <div v-for="(item, index) in hazardousChemicals.warningLevelData" :key="index" :class="getStatusClass3(item.name)">
|
|
|
+ <div v-for="(item, index) in hazardousChemicals.warningLevelData" :key="index" :class="getStatusClass3(item.LEVEL)">
|
|
|
<i class="icon" />
|
|
|
<div class="text-box">
|
|
|
- <div class="text">{{ item.value }}</div>
|
|
|
- <div>{{ item.name }}</div>
|
|
|
+ <div class="text">{{ item.VALUES }}</div>
|
|
|
+ <div>{{ item.LEVEL }}</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
@@ -66,35 +66,10 @@
|
|
|
<div class="text2">镇街个数</div>
|
|
|
</div>
|
|
|
<div class="box2">
|
|
|
- <div class="rain-box6">
|
|
|
- <div class="text3">特大暴雨</div>
|
|
|
- <div class="text3">(>200)</div>
|
|
|
- <div class="text">{{ rainList.data6 }}</div>
|
|
|
- </div>
|
|
|
- <div class="rain-box5">
|
|
|
- <div class="text3">大暴雨</div>
|
|
|
- <div class="text3">(100-200)</div>
|
|
|
- <div class="text">{{ rainList.data5 }}</div>
|
|
|
- </div>
|
|
|
- <div class="rain-box4">
|
|
|
- <div class="text3">暴雨</div>
|
|
|
- <div class="text3">(50-200)</div>
|
|
|
- <div class="text">{{ rainList.data4 }}</div>
|
|
|
- </div>
|
|
|
- <div class="rain-box3">
|
|
|
- <div class="text3">大雨</div>
|
|
|
- <div class="text3">(25-50)</div>
|
|
|
- <div class="text">{{ rainList.data3 }}</div>
|
|
|
- </div>
|
|
|
- <div class="rain-box2">
|
|
|
- <div class="text3">中雨</div>
|
|
|
- <div class="text3">(10-25)</div>
|
|
|
- <div class="text">{{ rainList.data2 }}</div>
|
|
|
- </div>
|
|
|
- <div class="rain-box1">
|
|
|
- <div class="text3">小雨</div>
|
|
|
- <div class="text3">(<10)</div>
|
|
|
- <div class="text">{{ rainList.data1 }}</div>
|
|
|
+ <div v-for="(item, index) in rainList" :key="index" class="rain-box6">
|
|
|
+ <div class="text3">{{ item.name }}</div>
|
|
|
+ <div class="text3">{{ item.range }}</div>
|
|
|
+ <div class="text">{{ item.value }}</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
@@ -128,40 +103,47 @@
|
|
|
</template>
|
|
|
|
|
|
<script lang="ts" setup name="RiskMonitor">
|
|
|
-const active = ref('2');
|
|
|
+import {
|
|
|
+ getForestWarrning, getHazardousWarrning,
|
|
|
+ getMaxForest, getMaxHazardous, getMaxHazardousCount,
|
|
|
+ getTownshipRain,
|
|
|
+ getTownshipRainWarrning
|
|
|
+} from '@/api/routineCommandMap/riskMonitor';
|
|
|
+
|
|
|
+const active = ref('0');
|
|
|
const riskList = ref([
|
|
|
{ name: '危化品', value: '0' },
|
|
|
{ name: '雨晴', value: '1' },
|
|
|
{ name: '森林火灾', value: '2' }
|
|
|
]);
|
|
|
// 危化品
|
|
|
-const hazardousChemicals = ref({
|
|
|
+const hazardousChemicals = reactive({
|
|
|
nowWarningLevel: '',
|
|
|
nowWarningLevelName: '',
|
|
|
- highRiskArea: [],
|
|
|
+ highRiskArea: '',
|
|
|
warningLevelData: []
|
|
|
});
|
|
|
const getStatusClass = () => {
|
|
|
- const level = hazardousChemicals.value.nowWarningLevel;
|
|
|
- if (level === '1') {
|
|
|
+ const level = hazardousChemicals.nowWarningLevel;
|
|
|
+ if (level === 1) {
|
|
|
return 'icon1 lowRisk1';
|
|
|
- } else if (level === '2') {
|
|
|
+ } else if (level === 2) {
|
|
|
return 'icon1 normalRisk1';
|
|
|
- } else if (level === '3') {
|
|
|
+ } else if (level === 3) {
|
|
|
return 'icon1 moreRisk1';
|
|
|
- } else if (level === '4') {
|
|
|
+ } else if (level === 4) {
|
|
|
return 'icon1 significantRisk1';
|
|
|
}
|
|
|
};
|
|
|
const getStatusClass2 = () => {
|
|
|
- const level = hazardousChemicals.value.nowWarningLevel;
|
|
|
- if (level === '1') {
|
|
|
+ const level = hazardousChemicals.nowWarningLevel;
|
|
|
+ if (level === 1) {
|
|
|
return 'lowRiskText1';
|
|
|
- } else if (level === '2') {
|
|
|
+ } else if (level === 2) {
|
|
|
return 'normalRiskText1';
|
|
|
- } else if (level === '3') {
|
|
|
+ } else if (level === 3) {
|
|
|
return 'moreRiskText1';
|
|
|
- } else if (level === '4') {
|
|
|
+ } else if (level === 4) {
|
|
|
return 'significantRiskText1';
|
|
|
}
|
|
|
};
|
|
@@ -177,11 +159,11 @@ const getStatusClass3 = (level: string) => {
|
|
|
}
|
|
|
};
|
|
|
// 雨晴
|
|
|
-const durationTime = ref('1');
|
|
|
+const durationTime = ref(1);
|
|
|
const durationTimeList = ref([
|
|
|
- { name: '1小时', value: '1' },
|
|
|
- { name: '1.5小时', value: '1.5' },
|
|
|
- { name: '2小时', value: '2' }
|
|
|
+ { name: '1小时', value: 1 },
|
|
|
+ { name: '1.5小时', value: 1.5 },
|
|
|
+ { name: '2小时', value: 2 }
|
|
|
]);
|
|
|
const rainList = ref({
|
|
|
data1: 0,
|
|
@@ -193,13 +175,13 @@ const rainList = ref({
|
|
|
});
|
|
|
const raidDescribe = ref('');
|
|
|
// 森林火灾
|
|
|
-const forestFireData = ref({
|
|
|
+const forestFireData = reactive({
|
|
|
nowLevel: '',
|
|
|
text: ''
|
|
|
});
|
|
|
const levelList = ref(['极度危险', '高度危险', '较高危险', '较低危险']);
|
|
|
const getStatusClass4 = () => {
|
|
|
- const level = forestFireData.value.nowLevel;
|
|
|
+ const level = forestFireData.nowLevel;
|
|
|
if (level === '较低危险') {
|
|
|
return 'icon1 lowRisk1';
|
|
|
} else if (level === '较高危险') {
|
|
@@ -211,7 +193,7 @@ const getStatusClass4 = () => {
|
|
|
}
|
|
|
};
|
|
|
const getStatusClass5 = () => {
|
|
|
- const level = forestFireData.value.nowLevel;
|
|
|
+ const level = forestFireData.nowLevel;
|
|
|
if (level === '较低危险') {
|
|
|
return 'lowRiskText1';
|
|
|
} else if (level === '较高危险') {
|
|
@@ -235,28 +217,51 @@ const getStatusClass6 = (level: string) => {
|
|
|
};
|
|
|
const initData = () => {
|
|
|
if (active.value === '0') {
|
|
|
- const data = {
|
|
|
- nowWarningLevel: '4',
|
|
|
- nowWarningLevelName: '重大危险',
|
|
|
- highRiskArea: ['电白区', '信宜市'],
|
|
|
- warningLevelData: [
|
|
|
- { name: '重大风险', value: 0 },
|
|
|
- { name: '较大风险', value: 13 },
|
|
|
- { name: '一般风险', value: 23 },
|
|
|
- { name: '低风险', value: 11 }
|
|
|
- ]
|
|
|
- };
|
|
|
- hazardousChemicals.value = data;
|
|
|
+ getMaxHazardous().then((res) => {
|
|
|
+ const levelList = {
|
|
|
+ 1: '低风险',
|
|
|
+ 2: '一般风险',
|
|
|
+ 3: '较大风险',
|
|
|
+ 4: '重大风险'
|
|
|
+ };
|
|
|
+ hazardousChemicals.nowWarningLevel = res.data.max_level;
|
|
|
+ hazardousChemicals.nowWarningLevelName = levelList[res.data.max_level];
|
|
|
+ });
|
|
|
+ getHazardousWarrning().then((res) => {
|
|
|
+ hazardousChemicals.highRiskArea = res.data.result;
|
|
|
+ });
|
|
|
+ getMaxHazardousCount().then((res) => {
|
|
|
+ hazardousChemicals.warningLevelData = res.data.result;
|
|
|
+ });
|
|
|
} else if (active.value === '1') {
|
|
|
- raidDescribe.value =
|
|
|
- '今日08时至当前,全市有5个镇街发生降雨,最大降雨出现在茂名市茂南区高山镇,累计雨量为67.0毫米。当前1小时降雨量大于50毫米的镇街0个;当前3小时降雨量大于100毫米的镇街0个';
|
|
|
+ getTownshipRain(durationTime.value).then((res) => {
|
|
|
+ res.data.forEach((item) => {
|
|
|
+ const result = splitWithBrackets(item.name);
|
|
|
+ item.name = result[0];
|
|
|
+ item.range = result[1];
|
|
|
+ });
|
|
|
+ rainList.value = res.data;
|
|
|
+ });
|
|
|
+ getTownshipRainWarrning().then((res) => {
|
|
|
+ raidDescribe.value = res.data.result;
|
|
|
+ });
|
|
|
} else if (active.value === '2') {
|
|
|
- forestFireData.value = {
|
|
|
- nowLevel: '极度危险',
|
|
|
- text: '2024年09月09日08时,电白区、信宜市的森林火险等级为中度危险(三级)。高州市、信宜市、化州市的森林火灾等级为轻度危险'
|
|
|
- };
|
|
|
+ getMaxForest().then((res) => {
|
|
|
+ forestFireData.nowLevel = res.data.max_level;
|
|
|
+ });
|
|
|
+ getForestWarrning().then((res) => {
|
|
|
+ forestFireData.text = res.data.result;
|
|
|
+ });
|
|
|
}
|
|
|
};
|
|
|
+const splitWithBrackets = (inputString) => {
|
|
|
+ // 找到第一个左括号的位置
|
|
|
+ const firstBracketIndex = inputString.indexOf('(');
|
|
|
+ // 截取括号外的部分
|
|
|
+ const beforeBrackets = inputString.slice(0, firstBracketIndex);
|
|
|
+ const brackets = inputString.slice(firstBracketIndex, inputString.length);
|
|
|
+ return [beforeBrackets, brackets];
|
|
|
+};
|
|
|
onMounted(() => {
|
|
|
initData();
|
|
|
});
|