|
@@ -0,0 +1,947 @@
|
|
|
+<template>
|
|
|
+ <div class="body_container">
|
|
|
+ <!-- 1.============= -->
|
|
|
+ <div class="content_one">
|
|
|
+ <!-- 事件报告 -->
|
|
|
+ <div class="modules_bg_color modules_bg" :class="{ modules_bg_color_active: commonStore.activeModule === '事件报告' }">
|
|
|
+ <TitleHeadermini :title="'事件报告'" @setActiveModule="setActiveModule"></TitleHeadermini>
|
|
|
+ <div>
|
|
|
+ <EventReport :levelObj="riskReportObj"></EventReport>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <!-- 事件总览 -->
|
|
|
+ <div class="modules_bg_color modules_bg2" :class="{ modules_bg_color_active: commonStore.activeModule === '事件总览' }">
|
|
|
+ <TitleHeader :title="'事件总览'" :buttons="riskOverViewButtons" @setActiveModule="setActiveModule" @btnClick="btnClick"></TitleHeader>
|
|
|
+ <div class="modules_bg2_body">
|
|
|
+ <div>
|
|
|
+ <EventReport :levelObj="riskOverViewObj"></EventReport>
|
|
|
+ </div>
|
|
|
+ <div class="modules_bg2_body_right">
|
|
|
+ <div class="riskOver_header">
|
|
|
+ <TowLevelTitle :title="riskOverViewtTitle"></TowLevelTitle>
|
|
|
+ <div class="riskOver_header_tag">
|
|
|
+ <div></div>
|
|
|
+ <span>事件数</span>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <div class="modules_bg2_body_bar">
|
|
|
+ <BarChart></BarChart>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <!-- 2.=================== -->
|
|
|
+ <div class="content_two">
|
|
|
+ <!-- 事件处置 -->
|
|
|
+ <div class="modules_bg_color modules_bg_340" :class="{ modules_bg_color_active: commonStore.activeModule === '事件处置' }">
|
|
|
+ <TitleHeadersmall :title="'事件处置'" :buttons="timeButtons" @setActiveModule="setActiveModule" @btnClick="btnClick"></TitleHeadersmall>
|
|
|
+ <div class="two_level_body">
|
|
|
+ <EventTwoView :levelObj="riskTwoViewObj"></EventTwoView>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <!-- 重大活动保障 -->
|
|
|
+ <div class="modules_bg_color modules_bg_340" :class="{ modules_bg_color_active: commonStore.activeModule === '重大活动保障' }">
|
|
|
+ <TitleHeadersmall :title="'重大活动保障'" :buttons="timeButtons" @setActiveModule="setActiveModule" @btnClick="btnClick"></TitleHeadersmall>
|
|
|
+ <div class="two_level_body">
|
|
|
+ <EventTwoView :levelObj="majorEventGuaranteeObj"></EventTwoView>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <!-- 已结案事件 -->
|
|
|
+ <div class="modules_bg_color modules_bg_412" :class="{ modules_bg_color_active: commonStore.activeModule === '已结案事件' }">
|
|
|
+ <TitleHeadersmall :title="'已结案事件'" :buttons="timeButtons" @setActiveModule="setActiveModule" @btnClick="btnClick"></TitleHeadersmall>
|
|
|
+ <div class="two_level_body">
|
|
|
+ <!-- <RiskTwoView :levelObj="riskClosedCaseObj"></RiskTwoView> -->
|
|
|
+ <EventTwoView :levelObj="riskClosedCaseObj"></EventTwoView>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <!-- 3. 风险列表========================= -->
|
|
|
+ <PublicHealthEmergencyTable></PublicHealthEmergencyTable>
|
|
|
+
|
|
|
+ <!-- 4.===================== -->
|
|
|
+ <div class="content_four modules_bg_color" :class="{ modules_bg_color_active: commonStore.activeModule === '应急处置资源' }">
|
|
|
+ <TitleHeaderLong :title="'应急处置资源'" :buttons="[]" @setActiveModule="setActiveModule" @btnClick="btnClick"></TitleHeaderLong>
|
|
|
+ <div class="content_four_body">
|
|
|
+ <!-- 派单情况 -->
|
|
|
+ <div class="modules_bg_color2 modules_bg_pdqk" :class="{ modules_bg_color_active: commonStore.activeModule === '派单情况' }">
|
|
|
+ <TowLevelTitle :title="'派单情况'" @setActiveModule="setActiveModule"></TowLevelTitle>
|
|
|
+ <div class="modules_bg_pdqk_body">
|
|
|
+ <div class="modules_bg_pdqk_body_item">
|
|
|
+ <img src="../../../assets//img/发出指令.png" alt="" />
|
|
|
+ <div>发出指令</div>
|
|
|
+ <span>25</span>
|
|
|
+ </div>
|
|
|
+ <!-- <img src="../../../assets/img/连线方向箭头.png" alt="" class="line_img"> -->
|
|
|
+ <div class="modules_bg_pdqk_body_item">
|
|
|
+ <img src="../../../assets//img/签收指令.png" alt="" />
|
|
|
+ <div>签收指令</div>
|
|
|
+ <span>22</span>
|
|
|
+ </div>
|
|
|
+ <!-- <img src="../../../assets/img/连线方向箭头.png" alt="" class="line_img"> -->
|
|
|
+ <div class="modules_bg_pdqk_body_item">
|
|
|
+ <img src="../../../assets//img/完成指令.png" alt="" />
|
|
|
+ <div>完成指令</div>
|
|
|
+ <span>17</span>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <!-- <div class="line">
|
|
|
+ <img src="../../../assets/img/连线方向箭头.png" alt="" class="line_img1" />
|
|
|
+ <img src="../../../assets/img/连线方向箭头.png" alt="" class="line_img2" />
|
|
|
+ </div> -->
|
|
|
+
|
|
|
+ <div class="imgbox img-first"><img src="../../../assets/img/连线方向箭头.png" alt="" class="line_img1" /></div>
|
|
|
+ <div class="imgbox img-second"><img src="../../../assets/img/连线方向箭头.png" alt="" class="line_img1" /></div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <!-- 检测设备 -->
|
|
|
+ <div class="modules_bg_color2 modules_bg_jcsb" :class="{ modules_bg_color_active: commonStore.activeModule === '检测设备' }">
|
|
|
+ <TowLevelTitle :title="'检测设备'" @setActiveModule="setActiveModule"></TowLevelTitle>
|
|
|
+ <div class="modules_bg_jcsb_body">
|
|
|
+ <!-- <RiskTwoView :levelObj="riskTwoViewObj"></RiskTwoView> -->
|
|
|
+ <div class="modules_bg_jcsb_body_left">
|
|
|
+ <div class="modules_bg_jcsb_body_left_content">
|
|
|
+ <div>
|
|
|
+ <img src="../../../assets//img/装备总数.png" alt="" />
|
|
|
+ <div>装备总数</div>
|
|
|
+ <span>205</span>
|
|
|
+ </div>
|
|
|
+ <img src="../../../assets/img/方向箭头.png" alt="" />
|
|
|
+ <div>
|
|
|
+ <div>使用中</div>
|
|
|
+ <span>108</span>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="progress">
|
|
|
+ <!-- <el-progress class="circle" type="circle" :percentage="52" /> -->
|
|
|
+ <!-- <MyProgress :percentage="52" :gradientStart="'#83804f'" :gradientEnd="'#ffca0c'"></MyProgress> -->
|
|
|
+
|
|
|
+ <MyProgress :value="50" backgroundColor="#2d4c7f" gradient-start="#83804f" gradient-end="#ffca0c" text-color="#ffffff" :stroke-width="8" :size="54"></MyProgress>
|
|
|
+ <span class="text">使用率</span>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <!-- 应急人员 -->
|
|
|
+ <div class="modules_bg_color2 modules_bg_yjry" :class="{ modules_bg_color_active: commonStore.activeModule === '应急人员' }">
|
|
|
+ <TowLevelTitle :title="'应急人员'" @setActiveModule="setActiveModule"></TowLevelTitle>
|
|
|
+ <div class="modules_bg_yjry_body">
|
|
|
+ <!-- <RiskTwoView :levelObj="riskTwoViewObj"></RiskTwoView> -->
|
|
|
+ <div class="modules_bg_yjry_body_zhz">
|
|
|
+ <img src="../../../assets//img/指挥长.png" alt="" />
|
|
|
+ <span>指挥长</span>
|
|
|
+ <div>
|
|
|
+ 吴寰宇
|
|
|
+ <img src="../../../assets/img/视频电话.png" alt="" />
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="line"></div>
|
|
|
+ <div class="modules_bg_yjry_left_content">
|
|
|
+ <div class="modules_bg_yjry_left">
|
|
|
+ <div class="modules_bg_yjry_left_content">
|
|
|
+ <div>
|
|
|
+ <img src="../../../assets//img/备班人数.png" alt="" />
|
|
|
+ <div>备班人数</div>
|
|
|
+ <span>205</span>
|
|
|
+ </div>
|
|
|
+ <img src="../../../assets/img/方向箭头.png" alt="" />
|
|
|
+ <div>
|
|
|
+ <div>出动数</div>
|
|
|
+ <span>108</span>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="progress">
|
|
|
+ <!-- <el-progress class="circle" type="circle" :percentage="52" /> -->
|
|
|
+ <!-- <MyProgress :percentage="50" :gradientStart="'#9ee6f6'" :gradientEnd="'#62e3ff'"></MyProgress> -->
|
|
|
+ <MyProgress :value="50" backgroundColor="#2d4c7f" gradient-start="#9ee6f6" gradient-end="#62e3ff" text-color="#ffffff" :stroke-width="8" :size="54"></MyProgress>
|
|
|
+ <span class="text">出动率</span>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <!-- 应急车辆 -->
|
|
|
+ <div class="modules_bg_color2 modules_bg_jcsb" :class="{ modules_bg_color_active: commonStore.activeModule === '应急车辆' }">
|
|
|
+ <TowLevelTitle :title="'应急车辆'" @setActiveModule="setActiveModule"></TowLevelTitle>
|
|
|
+ <div class="modules_bg_jcsb_body">
|
|
|
+ <!-- <RiskTwoView :levelObj="riskTwoViewObj"></RiskTwoView> -->
|
|
|
+ <div class="modules_bg_jcsb_body_left">
|
|
|
+ <div class="modules_bg_jcsb_body_left_content">
|
|
|
+ <div>
|
|
|
+ <img src="../../../assets//img/车辆.png" alt="" />
|
|
|
+ <div>车辆</div>
|
|
|
+ <span>115</span>
|
|
|
+ </div>
|
|
|
+ <img src="../../../assets/img/方向箭头.png" alt="" />
|
|
|
+ <div>
|
|
|
+ <div>出动数</div>
|
|
|
+ <span>90</span>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="progress">
|
|
|
+ <!-- <el-progress class="circle" type="circle" :percentage="78" /> -->
|
|
|
+ <!-- <MyProgress :percentage="78" :gradientStart="'#ecc5af'" :gradientEnd="'#ff9a62'"></MyProgress> -->
|
|
|
+ <MyProgress :value="78" backgroundColor="#2d4c7f" gradient-start="#ecc5af" gradient-end="#ff9a62" text-color="#ffffff" :stroke-width="8" :size="54"></MyProgress>
|
|
|
+ <span class="text">出动率</span>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <!-- 地图工具 -->
|
|
|
+ <!-- <MapTools></MapTools> -->
|
|
|
+ </div>
|
|
|
+</template>
|
|
|
+<script setup>
|
|
|
+import MapTools from './components/dialog/MapTools.vue'
|
|
|
+import BarChart from '../comp/BarChart.vue'
|
|
|
+import TitleHeadermini from '../../../components/TitleHeadermini'
|
|
|
+import TitleHeadersmall from '../../../components/TitleHeadersmall'
|
|
|
+import TitleHeader from '../../../components/TitleHeader'
|
|
|
+import TitleHeaderLong from '../../../components/TitleHeaderLong'
|
|
|
+// import RiskTableHeader from '../../../components/TitleHeaderLong/RiskTableHeader'
|
|
|
+import PublicHealthEmergencyTable from './common/PublicHealthEmergencyTable.vue'
|
|
|
+import TowLevelTitle from '../../../components/TowLevelTitle'
|
|
|
+import RiskReport from '../comp/RiskReport.vue'
|
|
|
+import EventReport from '../comp/EventReport.vue'
|
|
|
+import RiskTwoView from '../comp/RiskTwoView.vue'
|
|
|
+import EventTwoView from '../comp/EventTwoView.vue'
|
|
|
+
|
|
|
+import MyProgress from './common/MyProgress'
|
|
|
+import { ref, nextTick, toRaw, reactive, toRefs, onBeforeMount, onMounted } from 'vue'
|
|
|
+import { handleRiskStatistic } from '@/utils/map/baseMethod.js'
|
|
|
+import { useCommonStore } from '@/store/common.js'
|
|
|
+let commonStore = useCommonStore()
|
|
|
+
|
|
|
+// let riskReportObj = ref([{ id: 1, level: 'A', count: 0 }, { id: 2, level: 'B', count: 0 }, { id: 3, level: 'C', count: 0 }, { id: 4, level: 'D', count: 0 },])
|
|
|
+const emit = defineEmits(['openRiskBigTable'])
|
|
|
+
|
|
|
+function setActiveModule(module, name) {
|
|
|
+ //关闭上一个模块的的功能
|
|
|
+ // if(commonStore.activeModule === "风险报告"){
|
|
|
+ // handleRiskStatistic(false)
|
|
|
+ // }
|
|
|
+ // handleRiskStatistic(false)
|
|
|
+ console.log(module, 'module')
|
|
|
+ commonStore.activeModule = module
|
|
|
+
|
|
|
+ nextTick(() => {
|
|
|
+ //打开各模块功能
|
|
|
+ if (commonStore.activeModule === '事件报告') {
|
|
|
+ handleRiskStatistic(true, ['A级', 'B级', 'C级', 'D级'], '日')
|
|
|
+ } else {
|
|
|
+ handleRiskStatistic(true, ['A级', 'B级', 'C级', 'D级'], name)
|
|
|
+ }
|
|
|
+ })
|
|
|
+
|
|
|
+ if (commonStore.activeModule === '应急处置资源') {
|
|
|
+ commonStore.alertKey = Date.now()
|
|
|
+ commonStore.alertMessage = '敬请期待'
|
|
|
+ commonStore.showAlert = true
|
|
|
+ }
|
|
|
+
|
|
|
+ switch (module) {
|
|
|
+ case '检测设备':
|
|
|
+ commonStore.alertMessage = '暂未检测到设备信号'
|
|
|
+ break
|
|
|
+ case '派单情况':
|
|
|
+ commonStore.alertMessage = '暂未获取派单情况'
|
|
|
+ break
|
|
|
+ case '应急人员':
|
|
|
+ commonStore.alertMessage = '暂未检测到应急人员信号'
|
|
|
+ break
|
|
|
+ case '应急车辆':
|
|
|
+ commonStore.alertMessage = '暂未检测到应急车辆信号'
|
|
|
+ break
|
|
|
+
|
|
|
+ default:
|
|
|
+ break
|
|
|
+ }
|
|
|
+ if (['检测设备', '派单情况', '应急人员', '应急车辆'].includes(module)) {
|
|
|
+ commonStore.alertKey = Date.now()
|
|
|
+ commonStore.showAlert = true
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+// 模块 年 月 日
|
|
|
+function btnClick(item, module) {
|
|
|
+ console.log(item, 'item=btnClick')
|
|
|
+ switch (module) {
|
|
|
+ case '事件总览':
|
|
|
+ handleRiskStatistic(true, ['A级', 'B级', 'C级', 'D级'], item.name)
|
|
|
+ if (item.name === '年') {
|
|
|
+ riskOverViewObj.value = {
|
|
|
+ name: '当年累计',
|
|
|
+ count: 147,
|
|
|
+ levelList: [
|
|
|
+ { id: 1, level: '特别重大', count: 12 },
|
|
|
+ { id: 2, level: '重大', count: 42 },
|
|
|
+ { id: 3, level: '较大', count: 26 },
|
|
|
+ { id: 4, level: '一般', count: 53 },
|
|
|
+ { id: 5, level: '未分级', count: 15 }
|
|
|
+ ]
|
|
|
+ }
|
|
|
+ } else if (item.name === '月') {
|
|
|
+ riskOverViewObj.value = {
|
|
|
+ name: '当月累计',
|
|
|
+ count: 27,
|
|
|
+ levelList: [
|
|
|
+ { id: 1, level: '特别重大', count: 1 },
|
|
|
+ { id: 2, level: '重大', count: 3 },
|
|
|
+ { id: 3, level: '较大', count: 12 },
|
|
|
+ { id: 4, level: '一般', count: 8 },
|
|
|
+ { id: 5, level: '未分级', count: 3 }
|
|
|
+ ]
|
|
|
+ }
|
|
|
+ }
|
|
|
+ break
|
|
|
+ case '事件处置':
|
|
|
+ handleRiskStatistic(true, ['A级', 'B级', 'C级', 'D级'], item.name)
|
|
|
+ break
|
|
|
+ case '重大活动保障':
|
|
|
+ handleRiskStatistic(true, ['A级', 'B级', 'C级', 'D级'], item.name)
|
|
|
+ break
|
|
|
+ case '已结案事件':
|
|
|
+ handleRiskStatistic(true, ['A级', 'B级', 'C级', 'D级'], item.name)
|
|
|
+ break
|
|
|
+
|
|
|
+ default:
|
|
|
+ break
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+// 1.=====================================
|
|
|
+let riskReportObj = ref({
|
|
|
+ name: '当日新增',
|
|
|
+ count: 5,
|
|
|
+ levelList: [
|
|
|
+ { id: 1, level: '特别重大', count: 1 },
|
|
|
+ { id: 2, level: '重大', count: 0 },
|
|
|
+ { id: 3, level: '较大', count: 2 },
|
|
|
+ { id: 4, level: '一般', count: 2 },
|
|
|
+ { id: 5, level: '未分级', count: 2 }
|
|
|
+ ]
|
|
|
+})
|
|
|
+
|
|
|
+let riskOverViewObj = ref({
|
|
|
+ name: '当年累计',
|
|
|
+ count: 147,
|
|
|
+ levelList: [
|
|
|
+ { id: 1, level: '特别重大', count: 12 },
|
|
|
+ { id: 2, level: '重大', count: 42 },
|
|
|
+ { id: 3, level: '较大', count: 26 },
|
|
|
+ { id: 4, level: '一般', count: 53 },
|
|
|
+ { id: 5, level: '未分级', count: 15 }
|
|
|
+ ]
|
|
|
+})
|
|
|
+const riskOverViewButtons = ref([
|
|
|
+ { id: 1, name: '月', active: false },
|
|
|
+ { id: 2, name: '年', active: true }
|
|
|
+])
|
|
|
+
|
|
|
+const riskOverViewTwoButtons = ref([
|
|
|
+ { id: 1, name: '按分类', active: false },
|
|
|
+ { id: 2, name: '按级别', active: true }
|
|
|
+])
|
|
|
+
|
|
|
+const riskOverViewtTitle = ref('公共卫生事件分布图')
|
|
|
+
|
|
|
+// 2.====================================================
|
|
|
+const timeButtons = ref([
|
|
|
+ // { id: 1, name: '日', active: false },
|
|
|
+ // { id: 2, name: '月', active: false },
|
|
|
+ // { id: 3, name: '年', active: true }
|
|
|
+])
|
|
|
+
|
|
|
+// 风险处置
|
|
|
+const riskTwoViewObj = ref({
|
|
|
+ name: '处置中',
|
|
|
+ count: 76,
|
|
|
+ levelList: [
|
|
|
+ { id: 1, level: '特别重大', count: 11 },
|
|
|
+ { id: 2, level: '重大', count: 8 },
|
|
|
+ { id: 3, level: '较大', count: 35 },
|
|
|
+ { id: 4, level: '一般', count: 22 },
|
|
|
+ { id: 5, level: '未分级', count: 0 }
|
|
|
+ ]
|
|
|
+})
|
|
|
+
|
|
|
+// 重大活动保障
|
|
|
+const majorEventGuaranteeObj = ref({
|
|
|
+ name: '处置中',
|
|
|
+ count: 58,
|
|
|
+ levelList: [
|
|
|
+ { id: 1, level: '特别重大', count: 13 },
|
|
|
+ { id: 2, level: '重大', count: 9 },
|
|
|
+ { id: 3, level: '较大', count: 26 },
|
|
|
+ { id: 4, level: '一般', count: 26 },
|
|
|
+ { id: 5, level: '未分级', count: 3 }
|
|
|
+ ]
|
|
|
+})
|
|
|
+
|
|
|
+// 已结案风险
|
|
|
+const riskClosedCaseObj = ref({
|
|
|
+ name: '已结案',
|
|
|
+ count: 5,
|
|
|
+ levelList: [
|
|
|
+ { id: 1, level: '特别重大', count: 1 },
|
|
|
+ { id: 2, level: '重大', count: 0 },
|
|
|
+ { id: 3, level: '较大', count: 1 },
|
|
|
+ { id: 4, level: '一般', count: 3 },
|
|
|
+ { id: 5, level: '未分级', count: 3 }
|
|
|
+ ]
|
|
|
+})
|
|
|
+
|
|
|
+// 3.风险列表=======================
|
|
|
+const riskTableButtons = ref([
|
|
|
+ { id: 1, name: '处置中', active: false },
|
|
|
+ { id: 2, name: '已结案', active: true },
|
|
|
+ { id: 3, name: '重大活动', active: true }
|
|
|
+])
|
|
|
+
|
|
|
+const riskTableconfig = ref({
|
|
|
+ indexHeader: '编号',
|
|
|
+ header: ['事件名称', '风险等级', '报告单位', '报告时间', '发生地点', '处置单位', '病例数', '重点场所', '重点人群', '最新状态'],
|
|
|
+ data: [
|
|
|
+ ['行1列', '行1列2', '行1列3', '行1列1', '行1列2', '行1列3', '行1列1', '行1列2', '2024-12-25', '已核实'],
|
|
|
+ ['行1列', '行1列2', '行1列3', '行1列1', '行1列2', '行1列3', '行1列1', '行1列2', '2024-12-25', '已核实'],
|
|
|
+ ['行1列', '行1列2', '行1列3', '行1列1', '行1列2', '行1列3', '行1列1', '行1列2', '2024-12-25', '已核实'],
|
|
|
+ ['行1列', '行1列2', '行1列3', '行1列1', '行1列2', '行1列3', '行1列1', '行1列2', '2024-12-25', '已核实'],
|
|
|
+ ['行1列', '行1列2', '行1列3', '行1列1', '行1列2', '行1列3', '行1列1', '行1列2', '2024-12-25', '已核实'],
|
|
|
+ ['行1列', '行1列2', '行1列3', '行1列1', '行1列2', '行1列3', '行1列1', '行1列2', '2024-12-25', '已核实'],
|
|
|
+ ['行1列', '行1列2', '行1列3', '行1列1', '行1列2', '行1列3', '行1列1', '行1列2', '2024-12-25', '已核实'],
|
|
|
+ ['行1列', '行1列2', '行1列3', '行1列1', '行1列2', '行1列3', '行1列1', '行1列2', '2024-12-25', '已核实']
|
|
|
+ ],
|
|
|
+ rowNum: 3,
|
|
|
+ index: true,
|
|
|
+ columnWidth: [50],
|
|
|
+ align: ['center'],
|
|
|
+ headerBGC: 'rgba(34, 155, 188, 0.3)',
|
|
|
+ headerHeight: 38,
|
|
|
+ oddRowBGC: 'rgba(0, 170, 255, 0.15)',
|
|
|
+ evenRowBGC: 'rgba(10, 39, 50, 0.15)',
|
|
|
+ hoverPause: true,
|
|
|
+ rowClass: 'custom-row-style'
|
|
|
+ // itemStyle: {
|
|
|
+ // height: '40px',
|
|
|
+ // lineHeight: '40px',
|
|
|
+ // marginBottom: '10px'
|
|
|
+ // }
|
|
|
+})
|
|
|
+
|
|
|
+function openRiskBigTable() {
|
|
|
+ // console.log('openRiskBigTable')
|
|
|
+ emit('openRiskBigTable')
|
|
|
+}
|
|
|
+
|
|
|
+onMounted(() => {
|
|
|
+ // commonStore.activeTools['风险列表'] = true
|
|
|
+ // commonStore.activeTools['图例'] = true
|
|
|
+ commonStore.activeTools = {
|
|
|
+ 风险列表: true,
|
|
|
+ 图例: true,
|
|
|
+ 色阶图: true
|
|
|
+ }
|
|
|
+
|
|
|
+ handleRiskStatistic(true, ['A级', 'B级', 'C级', 'D级'], '年')
|
|
|
+})
|
|
|
+</script>
|
|
|
+<style lang="scss" scoped>
|
|
|
+.body_container {
|
|
|
+ width: 100%;
|
|
|
+ // height: 100%;
|
|
|
+ height: 1;
|
|
|
+ box-sizing: border-box;
|
|
|
+ display: flex;
|
|
|
+ flex-direction: column;
|
|
|
+ gap: 15px;
|
|
|
+}
|
|
|
+
|
|
|
+.content_one {
|
|
|
+ display: flex;
|
|
|
+ gap: 16px;
|
|
|
+}
|
|
|
+
|
|
|
+.modules_bg_color {
|
|
|
+ position: relative;
|
|
|
+ background: linear-gradient(180deg, rgba(32, 70, 121, 0) 2%, rgba(32, 70, 121, 0.2) 100%);
|
|
|
+ border-radius: 0px 0px 0px 0px;
|
|
|
+}
|
|
|
+
|
|
|
+.modules_bg_color2 {
|
|
|
+ position: relative;
|
|
|
+ background: linear-gradient(180deg, rgba(32, 70, 121, 0) 2%, rgba(32, 70, 121, 0.2) 100%);
|
|
|
+ border-radius: 0px 0px 0px 0px;
|
|
|
+}
|
|
|
+
|
|
|
+.modules_bg_color::after {
|
|
|
+ position: absolute;
|
|
|
+ content: '';
|
|
|
+ left: 0%;
|
|
|
+ right: 0%;
|
|
|
+ bottom: 0;
|
|
|
+ height: 3px;
|
|
|
+ background-image: url('@/assets/img/image-bottom.png');
|
|
|
+ background-size: 100% 50%;
|
|
|
+}
|
|
|
+
|
|
|
+.modules_bg {
|
|
|
+ display: flex;
|
|
|
+ flex-direction: column;
|
|
|
+ // justify-content: center;
|
|
|
+ align-items: center;
|
|
|
+ width: 320px;
|
|
|
+ // height: 253px;
|
|
|
+ height: 244px;
|
|
|
+ // padding: 0 10px;
|
|
|
+ box-sizing: border-box;
|
|
|
+
|
|
|
+ // background: url('../../../assets/img/m_bg.png');
|
|
|
+}
|
|
|
+
|
|
|
+.modules_bg2 {
|
|
|
+ // width: 808px;
|
|
|
+ // width: 768px;
|
|
|
+ width: 788px;
|
|
|
+ // height: 253px;
|
|
|
+ height: 244px;
|
|
|
+ padding-left: 10px;
|
|
|
+ box-sizing: border-box;
|
|
|
+ display: flex;
|
|
|
+ flex-direction: column;
|
|
|
+ // justify-content: center;
|
|
|
+}
|
|
|
+
|
|
|
+.modules_bg2_body {
|
|
|
+ display: flex;
|
|
|
+ justify-content: space-between;
|
|
|
+}
|
|
|
+
|
|
|
+.modules_bg2_body_right {
|
|
|
+ flex: 1;
|
|
|
+ display: flex;
|
|
|
+ flex-direction: column;
|
|
|
+ width: 494px;
|
|
|
+ margin-left: 10px;
|
|
|
+ .riskOver_header {
|
|
|
+ width: 100%;
|
|
|
+ position: relative;
|
|
|
+ .riskOver_header_tag {
|
|
|
+ position: absolute;
|
|
|
+ top: 0;
|
|
|
+ right: 0px;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ margin-right: 30px;
|
|
|
+ > div {
|
|
|
+ width: 16px;
|
|
|
+ height: 16px;
|
|
|
+ background: #30c9c9;
|
|
|
+ margin-right: 10px;
|
|
|
+ }
|
|
|
+ > span {
|
|
|
+ color: #abb5c3;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+.modules_bg2_body_bar {
|
|
|
+ // flex: 1;
|
|
|
+ width: 444px;
|
|
|
+ // height: 144px;
|
|
|
+ // height: 150px;
|
|
|
+ height: 100%;
|
|
|
+ color: azure;
|
|
|
+ // background-color: pink;
|
|
|
+ margin: 0 auto;
|
|
|
+}
|
|
|
+
|
|
|
+.content_two {
|
|
|
+ display: flex;
|
|
|
+ gap: 10px;
|
|
|
+}
|
|
|
+
|
|
|
+.modules_bg_340 {
|
|
|
+ // width: 340px;
|
|
|
+ width: 380px;
|
|
|
+ height: 187px;
|
|
|
+}
|
|
|
+
|
|
|
+.modules_bg_412 {
|
|
|
+ width: 380px;
|
|
|
+ height: 187px;
|
|
|
+ // padding: 0 10px;
|
|
|
+}
|
|
|
+
|
|
|
+.two_level_body {
|
|
|
+ width: 100%;
|
|
|
+ padding: 0 10px;
|
|
|
+ box-sizing: border-box;
|
|
|
+}
|
|
|
+
|
|
|
+.content_four {
|
|
|
+ // flex: 1;
|
|
|
+ width: 100%;
|
|
|
+ height: 210px;
|
|
|
+
|
|
|
+ .content_four_body {
|
|
|
+ height: 152px;
|
|
|
+ padding: 0 10px;
|
|
|
+ box-sizing: border-box;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: space-between;
|
|
|
+ // background: linear-gradient(180deg, rgba(32, 70, 121, 0) 2%, rgba(32, 70, 121, 0.6) 100%);
|
|
|
+ border-radius: 0px 0px 0px 0px;
|
|
|
+ // border: 1px solid;
|
|
|
+ // border-image: linear-gradient(180deg, rgba(7, 108, 208, 0), rgba(168, 212, 235, 1)) 1 1;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 检测设备 应急车辆
|
|
|
+ .modules_bg_jcsb {
|
|
|
+ width: 223px;
|
|
|
+ height: 126px;
|
|
|
+ padding: 0px 5px 0px;
|
|
|
+ // padding-left: 5px;
|
|
|
+ box-sizing: border-box;
|
|
|
+
|
|
|
+ .modules_bg_jcsb_body {
|
|
|
+ display: flex;
|
|
|
+ justify-content: space-between;
|
|
|
+ align-items: center;
|
|
|
+
|
|
|
+ .modules_bg_jcsb_body_left {
|
|
|
+ width: 140px;
|
|
|
+
|
|
|
+ .modules_bg_jcsb_body_left_content {
|
|
|
+ display: flex;
|
|
|
+ align-items: end;
|
|
|
+ justify-content: space-between;
|
|
|
+ width: 140;
|
|
|
+
|
|
|
+ > div {
|
|
|
+ display: flex;
|
|
|
+ flex-direction: column;
|
|
|
+ align-items: center;
|
|
|
+ font-family: Alibaba PuHuiTi 3, Alibaba PuHuiTi 30;
|
|
|
+ font-weight: normal;
|
|
|
+ font-size: 14px;
|
|
|
+ // color: rgba(255, 255, 255, 0.9);
|
|
|
+ color: #e8ebf0;
|
|
|
+ font-style: normal;
|
|
|
+ text-transform: none;
|
|
|
+ > img {
|
|
|
+ width: 48px;
|
|
|
+ height: 48px;
|
|
|
+ }
|
|
|
+ > span {
|
|
|
+ font-family: Roboto, Roboto;
|
|
|
+ font-weight: bold;
|
|
|
+ font-size: 16px;
|
|
|
+ font-style: normal;
|
|
|
+ text-transform: none;
|
|
|
+ background: linear-gradient(to bottom, #ffffff 4%, #49ffff 100%);
|
|
|
+ -webkit-background-clip: text;
|
|
|
+ -webkit-text-fill-color: transparent;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ > img {
|
|
|
+ width: 22px;
|
|
|
+ height: 21px;
|
|
|
+ margin: 0px 5px 10px 5px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .progress {
|
|
|
+ margin-top: 5px;
|
|
|
+ width: 54px;
|
|
|
+ height: 76px;
|
|
|
+ display: flex;
|
|
|
+ flex-direction: column;
|
|
|
+ align-items: center;
|
|
|
+ // justify-content: center;
|
|
|
+
|
|
|
+ .text {
|
|
|
+ font-family: Alibaba PuHuiTi 3, Alibaba PuHuiTi 30;
|
|
|
+ font-weight: normal;
|
|
|
+ font-size: 14px;
|
|
|
+ // color: rgba(255, 255, 255, 0.9);
|
|
|
+ color: #e8ebf0;
|
|
|
+ font-style: normal;
|
|
|
+ text-transform: none;
|
|
|
+ margin-top: 6px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .circle {
|
|
|
+ display: flex;
|
|
|
+ justify-content: center;
|
|
|
+ align-items: center;
|
|
|
+ margin-top: 12px;
|
|
|
+ width: 48px;
|
|
|
+ height: 48px;
|
|
|
+
|
|
|
+ :deep(.el-progress-circle) {
|
|
|
+ width: 48px !important;
|
|
|
+ height: 48px !important;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 派单情况
|
|
|
+ .modules_bg_pdqk {
|
|
|
+ width: 300px;
|
|
|
+ height: 126px;
|
|
|
+ padding: 0px 20px 10px;
|
|
|
+ box-sizing: border-box;
|
|
|
+
|
|
|
+ .modules_bg_pdqk_body {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: space-between;
|
|
|
+ position: relative;
|
|
|
+
|
|
|
+ .modules_bg_pdqk_body_item {
|
|
|
+ display: flex;
|
|
|
+ flex-direction: column;
|
|
|
+ align-items: center;
|
|
|
+ font-family: Alibaba PuHuiTi 30;
|
|
|
+ font-weight: normal;
|
|
|
+ font-size: 14px;
|
|
|
+ // color: rgba(255, 255, 255, 0.9);
|
|
|
+ color: #e8ebf0;
|
|
|
+ font-style: normal;
|
|
|
+ text-transform: none;
|
|
|
+
|
|
|
+ > span {
|
|
|
+ font-family: Roboto, Roboto;
|
|
|
+ font-weight: bold;
|
|
|
+ font-size: 16px;
|
|
|
+ font-style: normal;
|
|
|
+ text-transform: none;
|
|
|
+ background: linear-gradient(to bottom, #ffffff 4%, #49ffff 100%);
|
|
|
+ -webkit-background-clip: text;
|
|
|
+ -webkit-text-fill-color: transparent;
|
|
|
+ }
|
|
|
+ > img {
|
|
|
+ width: 48px;
|
|
|
+ height: 48px;
|
|
|
+ }
|
|
|
+
|
|
|
+ // .line_img {
|
|
|
+ // width: 16px;
|
|
|
+ // height: 16px;
|
|
|
+ // }
|
|
|
+ }
|
|
|
+
|
|
|
+ .imgbox {
|
|
|
+ position: absolute;
|
|
|
+ top: 10px;
|
|
|
+ width: 64px;
|
|
|
+ height: 16px;
|
|
|
+ border-bottom: 2px dashed #175a7e;
|
|
|
+ }
|
|
|
+ .img-first {
|
|
|
+ left: 48px;
|
|
|
+ .line_img1 {
|
|
|
+ position: absolute;
|
|
|
+ top: 4px;
|
|
|
+ left: 22px;
|
|
|
+ width: 26px;
|
|
|
+ height: 26px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .img-second {
|
|
|
+ left: 148px;
|
|
|
+ .line_img1 {
|
|
|
+ position: absolute;
|
|
|
+ top: 4px;
|
|
|
+ left: 20px;
|
|
|
+ width: 26px;
|
|
|
+ height: 26px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 应急人员
|
|
|
+ .modules_bg_yjry {
|
|
|
+ width: 322px;
|
|
|
+ height: 126px;
|
|
|
+ padding: 0px 5px 5px;
|
|
|
+ // padding-left: 10px;
|
|
|
+ box-sizing: border-box;
|
|
|
+
|
|
|
+ .modules_bg_yjry_body {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ // justify-content: space-between;
|
|
|
+ height: 82px;
|
|
|
+ padding-left: 5px;
|
|
|
+ box-sizing: border-box;
|
|
|
+
|
|
|
+ .modules_bg_yjry_body_zhz {
|
|
|
+ display: flex;
|
|
|
+ flex-direction: column;
|
|
|
+ align-items: center;
|
|
|
+ font-family: Alibaba PuHuiTi 3, Alibaba PuHuiTi 30;
|
|
|
+ font-weight: normal;
|
|
|
+ font-size: 14px;
|
|
|
+ // color: rgba(255, 255, 255, 0.9);
|
|
|
+ color: #e8ebf0;
|
|
|
+ font-style: normal;
|
|
|
+ text-transform: none;
|
|
|
+ > img {
|
|
|
+ width: 48px;
|
|
|
+ height: 48px;
|
|
|
+ }
|
|
|
+
|
|
|
+ > div {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ font-family: Alibaba PuHuiTi 3, Alibaba PuHuiTi 30;
|
|
|
+ font-weight: normal;
|
|
|
+ font-size: 14px;
|
|
|
+ color: #08ffe5;
|
|
|
+ font-style: normal;
|
|
|
+ text-transform: none;
|
|
|
+
|
|
|
+ > img {
|
|
|
+ width: 24px;
|
|
|
+ height: 24px;
|
|
|
+ margin-left: 5px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .modules_bg_yjry_left_content {
|
|
|
+ display: flex;
|
|
|
+ // align-items: center;
|
|
|
+ align-items: end;
|
|
|
+ width: 150px;
|
|
|
+
|
|
|
+ .modules_bg_yjry_left {
|
|
|
+ width: 150px;
|
|
|
+ margin-right: 15px;
|
|
|
+
|
|
|
+ .modules_bg_yjry_left_content {
|
|
|
+ display: flex;
|
|
|
+ align-items: end;
|
|
|
+ justify-content: space-between;
|
|
|
+ width: 150;
|
|
|
+
|
|
|
+ > div {
|
|
|
+ display: flex;
|
|
|
+ flex-direction: column;
|
|
|
+ align-items: center;
|
|
|
+ font-family: Alibaba PuHuiTi 3, Alibaba PuHuiTi 30;
|
|
|
+ font-weight: normal;
|
|
|
+ font-size: 14px;
|
|
|
+ // color: rgba(255, 255, 255, 0.9);
|
|
|
+ color: #e8ebf0;
|
|
|
+ font-style: normal;
|
|
|
+ text-transform: none;
|
|
|
+
|
|
|
+ > span {
|
|
|
+ font-family: Roboto, Roboto;
|
|
|
+ font-weight: bold;
|
|
|
+ font-size: 16px;
|
|
|
+ font-style: normal;
|
|
|
+ text-transform: none;
|
|
|
+ background: linear-gradient(to bottom, #ffffff 4%, #49ffff 100%);
|
|
|
+ -webkit-background-clip: text;
|
|
|
+ -webkit-text-fill-color: transparent;
|
|
|
+ }
|
|
|
+ > img {
|
|
|
+ width: 48px;
|
|
|
+ height: 48px;
|
|
|
+ // margin-top: 5px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ > img {
|
|
|
+ width: 22px;
|
|
|
+ height: 21px;
|
|
|
+ margin: 0px 5px 10px 5px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .progress {
|
|
|
+ width: 54px;
|
|
|
+ height: 76px;
|
|
|
+ display: flex;
|
|
|
+ flex-direction: column;
|
|
|
+ align-items: center;
|
|
|
+ // justify-content: center;
|
|
|
+
|
|
|
+ .text {
|
|
|
+ font-family: Alibaba PuHuiTi 3, Alibaba PuHuiTi 30;
|
|
|
+ font-weight: normal;
|
|
|
+ font-size: 14px;
|
|
|
+ // color: rgba(255, 255, 255, 0.9);
|
|
|
+ color: #e8ebf0;
|
|
|
+ font-style: normal;
|
|
|
+ text-transform: none;
|
|
|
+ margin-top: 6px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .circle {
|
|
|
+ display: flex;
|
|
|
+ justify-content: center;
|
|
|
+ align-items: center;
|
|
|
+ margin-top: 12px;
|
|
|
+ width: 48px;
|
|
|
+ height: 48px;
|
|
|
+
|
|
|
+ :deep(.el-progress-circle) {
|
|
|
+ width: 48px !important;
|
|
|
+ height: 48px !important;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .line {
|
|
|
+ height: 50px;
|
|
|
+ width: 2px;
|
|
|
+ background: linear-gradient(0deg, rgba(34, 73, 127, 0) 0%, rgba(136, 234, 255, 0.6) 50%, rgba(34, 73, 127, 0) 100%);
|
|
|
+ margin: 0 15px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .modules_bg_yjcl {
|
|
|
+ width: 223px;
|
|
|
+ height: 126px;
|
|
|
+ padding: 5px 20px 10px;
|
|
|
+ box-sizing: border-box;
|
|
|
+ }
|
|
|
+}
|
|
|
+</style>
|
|
|
+<!-- <style lang="scss">
|
|
|
+.modules_bg_color_active {
|
|
|
+ // border: 2px solid #00ffff; /* 高亮边框颜色可自定义 */
|
|
|
+ // box-shadow: 0 0 10px rgba(0, 255, 255, 0.5);
|
|
|
+ box-sizing: border-box;
|
|
|
+ box-shadow: 0 0 20px 6px rgba(0, 255, 255, 0.5) !important;
|
|
|
+ /* 柔和背光效果 */
|
|
|
+ z-index: 1;
|
|
|
+ transition: box-shadow 0.3s ease;
|
|
|
+}
|
|
|
+</style> -->
|