|
@@ -5,27 +5,53 @@
|
|
|
<div>事件信息</div>
|
|
|
<div class="header-right">
|
|
|
<div class="duration">{{ formattedDuration }}</div>
|
|
|
- <el-button class="custom-button" type="danger" plain>结束处理</el-button>
|
|
|
+ <el-button class="custom-button" type="danger" plain @click="endProcess">结束处理</el-button>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="card-content">
|
|
|
- <div style="line-height: 207px">值班时间:08-30-17:30</div>
|
|
|
- <div style="line-height: 207px">带班领导:张珊珊</div>
|
|
|
- <div style="line-height: 207px">值班时间:林珊珊、张珊珊</div>
|
|
|
+ <div style="line-height: 80px">事件名称:{{ eventInformation.name }}</div>
|
|
|
+ <div style="line-height: 80px">事件类型:{{ eventInformation.type }}</div>
|
|
|
+ <div style="line-height: 80px">事件等级:{{ eventInformation.grade }}</div>
|
|
|
+ <div style="line-height: 80px">事件地点:{{ eventInformation.address }}</div>
|
|
|
+ <div style="line-height: 80px">事件状态:{{ eventInformation.status }}</div>
|
|
|
+ <div style="line-height: 80px">上报时间:{{ eventInformation.time }}</div>
|
|
|
+ <div style="line-height: 80px">报送单位:{{ eventInformation.unit }}</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
- <div class="card">
|
|
|
+ <div class="card" style="height: 435px">
|
|
|
<div class="card-header">
|
|
|
<div>综合值守</div>
|
|
|
</div>
|
|
|
<div class="card-content">
|
|
|
+ <div style="line-height: 80px">值班时间:{{ comprehensiveDutyState.time }}</div>
|
|
|
+ <div class="card-flex" style="line-height: 80px">
|
|
|
+ <div>带班领导:{{ comprehensiveDutyState.classLeader }}</div>
|
|
|
+ <div>副班人员:{{ comprehensiveDutyState.deputyShiftPerson }}</div>
|
|
|
+ </div>
|
|
|
+ <div class="card-flex" style="line-height: 80px">
|
|
|
+ <div>主班领导:{{ comprehensiveDutyState.mainShiftPerson }}</div>
|
|
|
+ <div>备班领导:{{ comprehensiveDutyState.backupPerson }}</div>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</div>
|
|
|
- <div class="card">
|
|
|
+ <div class="card" style="height: 990px">
|
|
|
<div class="card-header">
|
|
|
<div>分析研判</div>
|
|
|
</div>
|
|
|
- <div class="card-content flex" style="height: 100%"></div>
|
|
|
+ <div class="card-content">
|
|
|
+ <div v-for="(item, index) in analyzeJudge" :key="index" class="line">
|
|
|
+ <div>{{ item.label }}</div>
|
|
|
+ <div class="line-content">
|
|
|
+ <div v-for="(item2, index2) in item.children" :key="index2" class="content-item">
|
|
|
+ <el-icon size="72px" style="margin-right: 10px;"><Shop /></el-icon>
|
|
|
+ <div class="text-box">
|
|
|
+ <div class="">{{ item2.data + item2.unit }}</div>
|
|
|
+ <div class="">{{ item2.label }}</div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</template>
|
|
@@ -34,6 +60,7 @@
|
|
|
const duration = ref(0);
|
|
|
const formattedDuration = ref('');
|
|
|
|
|
|
+const router = useRouter();
|
|
|
const updateDuration = () => {
|
|
|
duration.value += 1;
|
|
|
const days = Math.floor(duration.value / (24 * 3600));
|
|
@@ -43,8 +70,101 @@ const updateDuration = () => {
|
|
|
formattedDuration.value = `持续时长:${days}天${hours}小时${minutes}分${seconds}秒`;
|
|
|
};
|
|
|
|
|
|
+// 事件信息
|
|
|
+const eventInformation = ref({
|
|
|
+ name: '',
|
|
|
+ type: '',
|
|
|
+ grade: '',
|
|
|
+ address: '',
|
|
|
+ status: '',
|
|
|
+ time: '',
|
|
|
+ unit: ''
|
|
|
+});
|
|
|
+// 综合值守
|
|
|
+const comprehensiveDutyState = ref({
|
|
|
+ time: '',
|
|
|
+ classLeader: '',
|
|
|
+ deputyShiftPerson: '',
|
|
|
+ mainShiftPerson: '',
|
|
|
+ backupPerson: ''
|
|
|
+});
|
|
|
+
|
|
|
+// 分析研判
|
|
|
+const analyzeJudge = ref({})
|
|
|
+
|
|
|
+// 结束
|
|
|
+const endProcess = () => {
|
|
|
+ router.push('/');
|
|
|
+};
|
|
|
+
|
|
|
+const initData = () => {
|
|
|
+ // 事件信息
|
|
|
+ eventInformation.value = {
|
|
|
+ name: 'xxxxxx应急指挥事件',
|
|
|
+ type: '自然灾害',
|
|
|
+ grade: '一级',
|
|
|
+ address: '广东省茂名市茂南区',
|
|
|
+ status: '进行中',
|
|
|
+ time: '2024/7/1 09:00:00',
|
|
|
+ unit: 'xxx局'
|
|
|
+ };
|
|
|
+ // 综合值守
|
|
|
+ comprehensiveDutyState.value = {
|
|
|
+ // 值班时间
|
|
|
+ time: '08:30-17:30',
|
|
|
+ // 带班领导
|
|
|
+ classLeader: '张珊珊',
|
|
|
+ // 副班人员
|
|
|
+ deputyShiftPerson: '王珊珊',
|
|
|
+ // 主班人员
|
|
|
+ mainShiftPerson: '林珊珊',
|
|
|
+ // 备班人员
|
|
|
+ backupPerson: '刘珊珊'
|
|
|
+ };
|
|
|
+ // 分析研判
|
|
|
+ analyzeJudge.value = [
|
|
|
+ {
|
|
|
+ label: '基础数据',
|
|
|
+ children: [
|
|
|
+ { icon: 'user', label: '人口', data: 200, unit: '万人' },
|
|
|
+ { icon: 'user', label: '人口密度', data: 23, unit: '人/km²' }
|
|
|
+ ]
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: '协同应急',
|
|
|
+ children: [
|
|
|
+ { icon: 'user', label: '专家', data: 10, unit: '个' },
|
|
|
+ { icon: 'user', label: '救援队伍', data: 10, unit: '支' },
|
|
|
+ { icon: 'user', label: '通信机构', data: 10, unit: '所' },
|
|
|
+ { icon: 'user', label: '医疗机构', data: 10, unit: '间' },
|
|
|
+ { icon: 'user', label: '救援车辆', data: 10, unit: '辆' }
|
|
|
+ ]
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: '重点场所',
|
|
|
+ children: [
|
|
|
+ { icon: 'user', label: '救助站', data: 10, unit: '个' },
|
|
|
+ { icon: 'user', label: '应急庇护场所', data: 10, unit: '个' },
|
|
|
+ { icon: 'user', label: '人防工程', data: 10, unit: '个' },
|
|
|
+ { icon: 'user', label: '水利工程', data: 10, unit: '个' },
|
|
|
+ { icon: 'user', label: '物资仓库', data: 10, unit: '个' }
|
|
|
+ ]
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: '重点防护场所',
|
|
|
+ children: [
|
|
|
+ { icon: 'user', label: '高危企业', data: 10, unit: '个' },
|
|
|
+ { icon: 'user', label: '加油站', data: 10, unit: '个' },
|
|
|
+ { icon: 'user', label: '学校', data: 10, unit: '个' },
|
|
|
+ { icon: 'user', label: '养老院', data: 10, unit: '个' }
|
|
|
+ ]
|
|
|
+ }
|
|
|
+ ];
|
|
|
+};
|
|
|
+
|
|
|
onMounted(() => {
|
|
|
- setInterval(updateDuration, 1000);
|
|
|
+ initData();
|
|
|
+ setInterval(updateDuration, 800);
|
|
|
});
|
|
|
</script>
|
|
|
|
|
@@ -73,6 +193,14 @@ onMounted(() => {
|
|
|
align-items: center; /* 确保子元素在垂直方向居中对齐 */
|
|
|
}
|
|
|
}
|
|
|
+ .card-content {
|
|
|
+ font-size: 34px;
|
|
|
+ }
|
|
|
+ .card-flex {
|
|
|
+ width: 80%;
|
|
|
+ display: flex;
|
|
|
+ justify-content: space-between;
|
|
|
+ }
|
|
|
&:last-child {
|
|
|
margin-bottom: 0;
|
|
|
}
|
|
@@ -106,7 +234,7 @@ onMounted(() => {
|
|
|
.table {
|
|
|
table-layout: fixed;
|
|
|
border-collapse: collapse;
|
|
|
- width: 100%;
|
|
|
+ width: 80%;
|
|
|
thead {
|
|
|
.td {
|
|
|
background-color: #fafafa;
|
|
@@ -122,14 +250,27 @@ onMounted(() => {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+.line {
|
|
|
+ .line-content {
|
|
|
+ display: flex;
|
|
|
+ flex-wrap: wrap;
|
|
|
+ .content-item {
|
|
|
+ width: 25%;
|
|
|
+ margin-top: 10px;
|
|
|
+ font-weight: bold;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
@keyframes slide {
|
|
|
0% {
|
|
|
- transform: translateX(-100%);
|
|
|
+ transform: translateX(-80%);
|
|
|
}
|
|
|
80% {
|
|
|
transform: translateX(92px);
|
|
|
}
|
|
|
- 100% {
|
|
|
+ 80% {
|
|
|
transform: translateX(0);
|
|
|
}
|
|
|
}
|