From 31dcd2ac79af82cc149f34fbfb6ffd3d4a91a3cd Mon Sep 17 00:00:00 2001
From: 马宇豪 <978517621@qq.com>
Date: Tue, 25 Feb 2025 13:46:58 +0800
Subject: [PATCH] 修改名称
---
src/views/riskWarningSys/warningBigScreen/indexs/index.vue | 206 +++++++++++++++------------------------------------
1 files changed, 62 insertions(+), 144 deletions(-)
diff --git a/src/views/riskWarningSys/warningBigScreen/indexs/index.vue b/src/views/riskWarningSys/warningBigScreen/indexs/index.vue
index c037e1c..771ed21 100644
--- a/src/views/riskWarningSys/warningBigScreen/indexs/index.vue
+++ b/src/views/riskWarningSys/warningBigScreen/indexs/index.vue
@@ -7,216 +7,134 @@
</div>
</dv-decoration-11>
</div>
-
- <div class="tit">
- <div class="title">{{curChart===1?'事故等级分布':curChart===2?'应急演练次数':curChart===3?'隐患等级数量分布':curChart===4?'SPI数据分析':curChart===5?'教育培训分析':curChart===6?'隐患等级':curChart===7?'人员专业度分布':curChart===8?'预警消息报告':curChart===9?'特殊作业实时监控':'风险应急物资储备'}}</div>
- </div>
- <div class="chart-cont">
- <div class="chart">
- <div v-show="curChart===2" class="selector-2">距上次演练结束5天</div>
- <accident v-if="curChart===1" :size="2.5"></accident>
- <training v-else-if="curChart===2" :size="2.5"></training>
- <risk v-else-if="curChart===3" :month="month" :size="2.5"></risk>
- <spi v-else-if="curChart===4" :size="2"></spi>
- <educate v-else-if="curChart===5" :size="2.5"></educate>
- <danger v-else-if="curChart===6" :size="2.5"></danger>
- <profession v-else-if="curChart===7" :size="2.5"></profession>
- <message v-else-if="curChart===8" :size="2"></message>
- <monitor v-else-if="curChart===9" :size="2.5"></monitor>
- <stock v-else class="main-chart" :size="2"></stock>
- </div>
- <div class="chart-right">
- <dv-decoration-10 :color="lineColor" style="width:100%;height:5%;" />
- <div class="charts-des">
- <div class="des-tit">
- <div v-if="curChart===1">2022年度事故等级分布与影响一览</div>
- <div v-else-if="curChart===2">应急演练概况</div>
- <div v-else-if="curChart===3">隐患影响等级分布详情</div>
- <div v-else-if="curChart===4">2022年度事企业SPI趋势</div>
- <div v-else-if="curChart===5">教育培训情况汇总</div>
- <div v-else-if="curChart===6">隐患等级分布与隐患整改率</div>
- <div v-else-if="curChart===7">人员持证上岗情况</div>
- <div v-else-if="curChart===8">预警消息SPI报告-2022年8月</div>
- <div v-else-if="curChart===9">监控列表</div>
- <div v-else>当前应急物资储备情况(总)</div>
- <dv-decoration8 :color="lineColor" :reverse="true" style="width:100%;" />
- </div>
- <div v-if="curChart===2" class="des-main">
- <div>
- <h4>距上次【<span>{{trainDesc.title}}</span>】应急演练结束<span>{{trainDesc.total}}</span>天</h4>
- <h4>
- 应急演练分月情况汇总:
- </h4>
- <p v-for="(item,index) in trainDesc.list" :key="index">{{item.month}}应急演练次数:{{item.num}}次</p>
- </div>
- </div>
- <div v-else class="des-main">
- <div v-for="(item,index) in accidentDesc" :key="index">
- <h4><span>{{item.title}}</span>共计:<span>{{item.total}}</span>起</h4>
- <h4>
- 事故影响
- </h4>
- <p>{{item.desc}}</p>
- </div>
- </div>
- </div>
- <dv-decoration-10 :color="lineColor" style="width:100%;height:5%;" />
- </div>
- </div>
+ <acc-desc v-show="curChart===1"></acc-desc>
+ <train-desc v-show="curChart===2"></train-desc>
+ <risk-desc v-show="curChart===3"></risk-desc>
+ <spi-desc v-show="curChart===4"></spi-desc>
+ <edu-desc v-show="curChart===5"></edu-desc>
+ <dan-desc v-show="curChart===6"></dan-desc>
+ <pro-desc v-show="curChart===7"></pro-desc>
+ <msg-desc v-show="curChart===8" ref="msgRef"/>
+ <mon-desc v-show="curChart===9"></mon-desc>
+ <sto-desc v-show="curChart===10"></sto-desc>
</div>
</template>
<script lang="ts">
import screenfull from 'screenfull';
- import { toRefs, reactive, ref, onMounted, defineComponent, defineAsyncComponent, nextTick, onUnmounted } from 'vue';
+ import {
+ toRefs,
+ reactive,
+ ref,
+ onMounted,
+ defineComponent,
+ defineAsyncComponent,
+ nextTick,
+ onUnmounted,
+ watchEffect
+ } from 'vue';
import { ElTable } from 'element-plus';
import { FormInstance, FormRules, ElMessage } from 'element-plus';
import { safetyRiskEventApi } from '/@/api/doublePreventSystem/safetyRiskEvent/index.ts';
- import { useRoute } from 'vue-router';
+ import {useRoute, useRouter} from 'vue-router';
import {hiddenReportApi} from "/@/api/doublePreventSystem/report";
import { productionDeviceApi } from '/@/api/doublePreventSystem/productionDevice/index.ts';
import '/@/theme/bigScreen.css'
import {useScreenTheme} from "/@/stores/screenTheme"
import {storeToRefs} from "pinia";
+ import msgDesc from '/@/views/riskWarningSys/warningBigScreen/indexs/components/msg.vue'
// 定义接口来定义对象的类型
interface stateType {
isScreenfull: boolean;
curChart: number | null;
- lineColor: Array<string>;
- accidentDesc: Array<any>;
- trainDesc: Object;
+ lineColor: Array<string>
}
export default defineComponent({
name: 'warningPage',
components: {
- accident: defineAsyncComponent(() => import('/@/views/riskWarningSys/warningBigScreen/components/accident.vue')),
- training: defineAsyncComponent(() => import('/@/views/riskWarningSys/warningBigScreen/components/training.vue')),
- spi: defineAsyncComponent(() => import('/@/views/riskWarningSys/warningBigScreen/components/SPI.vue')),
- risk: defineAsyncComponent(() => import('/@/views/riskWarningSys/warningBigScreen/components/risk.vue')),
- educate: defineAsyncComponent(() => import('/@/views/riskWarningSys/warningBigScreen/components/educate.vue')),
- danger: defineAsyncComponent(() => import('/@/views/riskWarningSys/warningBigScreen/components/danger.vue')),
- profession: defineAsyncComponent(() => import('/@/views/riskWarningSys/warningBigScreen/components/profession.vue')),
- message: defineAsyncComponent(() => import('/@/views/riskWarningSys/warningBigScreen/components/message.vue')),
- monitor: defineAsyncComponent(() => import('/@/views/riskWarningSys/warningBigScreen/components/monitor.vue')),
- stock: defineAsyncComponent(() => import('/@/views/riskWarningSys/warningBigScreen/components/stock.vue'))
+ accDesc: defineAsyncComponent(() => import('/@/views/riskWarningSys/warningBigScreen/indexs/components/acc.vue')),
+ trainDesc: defineAsyncComponent(() => import('/@/views/riskWarningSys/warningBigScreen/indexs/components/train.vue')),
+ spiDesc: defineAsyncComponent(() => import('/@/views/riskWarningSys/warningBigScreen/indexs/components/spi.vue')),
+ riskDesc: defineAsyncComponent(() => import('/@/views/riskWarningSys/warningBigScreen/indexs/components/risk.vue')),
+ eduDesc: defineAsyncComponent(() => import('/@/views/riskWarningSys/warningBigScreen/indexs/components/edu.vue')),
+ danDesc: defineAsyncComponent(() => import('/@/views/riskWarningSys/warningBigScreen/indexs/components/dan.vue')),
+ proDesc: defineAsyncComponent(() => import('/@/views/riskWarningSys/warningBigScreen/indexs/components/pro.vue')),
+ msgDesc,
+ monDesc: defineAsyncComponent(() => import('/@/views/riskWarningSys/warningBigScreen/indexs/components/mon.vue')),
+ stoDesc: defineAsyncComponent(() => import('/@/views/riskWarningSys/warningBigScreen/indexs/components/sto.vue'))
},
setup() {
+ const msgRef = ref()
const screenThemes = useScreenTheme()
const { screenTheme } = storeToRefs(screenThemes);
const route = useRoute();
+ const router = useRouter();
const state = reactive<stateType>({
isScreenfull: false,
curChart: null,
lineColor: ['#11FEEE'],
- accidentDesc:[
- {
- title: '特别重大事故',
- total: 10,
- desc: '死亡人数:0人; 重伤人数:2人; 轻伤人数:3人; 直接经济损失:180.61万元'
- },
- {
- title: '重大事故',
- total: 20,
- desc: '死亡人数:1人; 重伤人数:6人; 轻伤人数:0人; 直接经济损失:160.61万元'
- },
- {
- title: '较大事故',
- total: 100,
- desc: '死亡人数:0人; 重伤人数:0人; 轻伤人数:3人; 直接经济损失:190.61万元'
- },
- {
- title: '一般事故',
- total: 130,
- desc: '死亡人数:0人; 重伤人数:0人; 轻伤人数:0人; 直接经济损失:180.61万元'
- },
- {
- title: '未遂事故',
- total: 150,
- desc: '死亡人数:0人; 重伤人数:0人; 轻伤人数:0人; 直接经济损失:9万元'
- }
- ],
- trainDesc:{
- title: '公司级',
- total: 5,
- list: [
- {
- month: '一月份',
- num: 23
- },
- {
- month: '二月份',
- num: 76
- },
- {
- month: '三月份',
- num: 152
- },
- {
- month: '四月份',
- num: 200
- },
- {
- month: '五月份',
- num: 49
- },
- {
- month: '六月份',
- num: 83
- },
- {
- month: '七月份',
- num: 102
- },
- {
- month: '八月份',
- num: 99
- }
- ]
- }
});
// 页面载入时执行方法
onMounted(() => {
+ console.log(msgRef.value,'val')
if (route.query.num) {
state.curChart = Number(route.query.num)
+
+ if(route.query.num == '8'){
+ if(route.query.rowIndex){
+ msgRef.value.showDetails(route.query.rowIndex)
+ }else{
+ msgRef.value.showDetails(0)
+ }
+ }
}
getTheme()
});
+ watchEffect(() => {
+
+ })
// 全屏
const onScreenfullClick = () => {
if (!screenfull.isEnabled) {
ElMessage.warning('暂不不支持全屏');
- return false;
+ return false
}
screenfull.toggle();
screenfull.on('change', () => {
if (screenfull.isFullscreen) {
- state.isScreenfull = true;
+ state.isScreenfull = true
} else {
- state.isScreenfull = false;
+ state.isScreenfull = false
}
});
};
const getTheme =()=>{
if(screenTheme.value.isDark){
- window.document.getElementById('pageCont').setAttribute( "class", 'dark-page' );
+ window.document.getElementById('pageCont').setAttribute( "class", 'dark-page' )
state.lineColor = ['#11FEEE']
}else{
- window.document.getElementById('pageCont').setAttribute( "class", 'light-page' );
+ window.document.getElementById('pageCont').setAttribute( "class", 'light-page' )
state.lineColor = ['#333','#ccc']
}
}
+ watchEffect(() => {
+
+ })
// 返回上一页
const goBack = () => {
- window.history.go(-1);
+ router.push({
+ name: "warningScreen"
+ });
};
return {
route,
+ msgRef,
onScreenfullClick,
goBack,
...toRefs(state)
@@ -296,9 +214,9 @@
height: 100%;
.charts-des{
height: 90%;
+ padding: 4%;
background: url("../../../../assets/warningScreen/pagebg-r.png") no-repeat center;
background-size: 100% 100%;
- padding: 4%;
.des-tit{
width: 100%;
@@ -417,9 +335,9 @@
height: 100%;
.charts-des{
height: 90%;
+ padding: 4%;
background: url("../../../../assets/warningScreen/pagebg-r-light.png") no-repeat center;
background-size: 100% 100%;
- padding: 4%;
.des-tit{
width: 100%;
--
Gitblit v1.9.2