From 20b0ce2db27b64a60de60aee05dedd448099e330 Mon Sep 17 00:00:00 2001 From: 马宇豪 <978517621@qq.com> Date: 星期一, 08 七月 2024 10:12:16 +0800 Subject: [PATCH] xiugai --- src/views/riskWarningSys/warningBigScreen/indexs/components/acc.vue | 442 ++++++++++++++++++++++++++++++++++++------------------ 1 files changed, 294 insertions(+), 148 deletions(-) diff --git a/src/views/riskWarningSys/warningBigScreen/indexs/components/acc.vue b/src/views/riskWarningSys/warningBigScreen/indexs/components/acc.vue index c350ec4..490f6e1 100644 --- a/src/views/riskWarningSys/warningBigScreen/indexs/components/acc.vue +++ b/src/views/riskWarningSys/warningBigScreen/indexs/components/acc.vue @@ -1,52 +1,31 @@ <template> - <div id="descCont" class="dark-desc"> - <div class="des-tit"> - <div>2022年度事故等级分布与影响一览</div> - <dv-decoration8 :color="lineColor" :reverse="true" style="width:100%;" /> - </div> - <div class="des-main"> - <div v-if="descContent[0]"> - <h4>特别重大事故共计:{{descContent[0].count}}起</h4> - <p> - 死亡人数:{{descContent[0].causeDeathCount}}人; - 重伤人数:{{descContent[0].causeHeavyInjureCount}}人; - 轻伤人数:{{descContent[0].causeLightInjureCount}}人; - 直接经济损失:{{descContent[0].loss}}元</p> - </div> - <div v-if="descContent[1]"> - <h4>重大事故共计:{{descContent[1].count}}起</h4> - <p> - 死亡人数:{{descContent[1].causeDeathCount}}人; - 重伤人数:{{descContent[1].causeHeavyInjureCount}}人; - 轻伤人数:{{descContent[1].causeLightInjureCount}}人; - 直接经济损失:{{descContent[1].loss}}万元</p> - </div> - <div v-if="descContent[2]"> - <h4>较大事故共计:{{descContent[2].count}}起</h4> - <p> - 死亡人数:{{descContent[2].causeDeathCount}}人; - 重伤人数:{{descContent[2].causeHeavyInjureCount}}人; - 轻伤人数:{{descContent[2].causeLightInjureCount}}人; - 直接经济损失:{{descContent[2].loss}}元</p> - </div> - <div v-if="descContent[3]"> - <h4>一般事故共计:{{descContent[3].count}}起</h4> - <p> - 死亡人数:{{descContent[3].causeDeathCount}}人; - 重伤人数:{{descContent[3].causeHeavyInjureCount}}人; - 轻伤人数:{{descContent[3].causeLightInjureCount}}人; - 直接经济损失:{{descContent[3].loss}}元</p> - </div> - <div v-if="descContent[4]"> - <h4>未遂事故共计:{{descContent[4].count}}起</h4> - <p> - 死亡人数:{{descContent[4].causeDeathCount}}人; - 重伤人数:{{descContent[4].causeHeavyInjureCount}}人; - 轻伤人数:{{descContent[4].causeLightInjureCount}}人; - 直接经济损失:{{descContent[4].loss}}元</p> - </div> - </div> + <div> + <div class="tit"> + <div class="title">事故等级分布</div> </div> + <div class="chart-cont"> + <div class="chart"> + <accident :size="2.5" ref="accRef" @getData="getData"></accident> + </div> + <div class="chart-right"> + <dv-decoration-10 :color="lineColor" style="width:100%;height:5%;" /> + <div class="charts-des"> + <div id="descCont" class="dark-desc"> + <div class="des-tit"> + <div>事故等级分布一览</div> + <dv-decoration8 :color="lineColor" :reverse="true" style="width:100%;" /> + </div> + <div class="des-main"> + <div v-for="(item,index) in descContent" :key="index"> + <h4>{{item.accidentGrade}}:{{item.count}}起</h4> + </div> + </div> + </div> + </div> + <dv-decoration-10 :color="lineColor" style="width:100%;height:5%;"/> + </div> + </div> +</div> </template> <script lang="ts"> import screenfull from 'screenfull'; @@ -75,7 +54,9 @@ export default defineComponent({ name: 'accDesc', - components: {}, + components: { + accident: defineAsyncComponent(() => import('/@/views/riskWarningSys/warningBigScreen/components/accident.vue')) + }, props:{ content: Object || null }, @@ -86,28 +67,33 @@ descContent: [], lineColor: ['#11FEEE'], }); - const getDataByYearId = async () => { - const data = { - depId: screenTheme.value.depId || 1, - beginYear: state.timeValue[0], - beginMonth: state.timeValue[1], - endYear: state.timeValue[0], - endMonth: state.timeValue[1] - } - if(state.timeValue[1] == '0'){ - data.beginMonth = '1' - data.endMonth = '12' - } - let res = await riskWarningApi().getRiskByTimeDep(data); - if (res.data.code === '200') { + // const getDataByYearId = async () => { + // const data = { + // depId: screenTheme.value.depId || 1, + // beginYear: state.timeValue[0], + // beginMonth: state.timeValue[1], + // endYear: state.timeValue[0], + // endMonth: state.timeValue[1] + // } + // if(state.timeValue[1] == '0'){ + // data.beginMonth = '1' + // data.endMonth = '12' + // } + // let res = await riskWarningApi().getRiskByTimeDep(data); + // if (res.data.code === '200') { + // + // } else { + // ElMessage({ + // type: 'warning', + // message: res.data.msg + // }); + // } + // } - } else { - ElMessage({ - type: 'warning', - message: res.data.msg - }); - } + const getData = (data:Array)=>{ + state.descContent = data } + const getTheme =()=>{ if(screenTheme.value.isDark){ window.document.getElementById('descCont').setAttribute( "class", 'dark-desc' ); @@ -118,17 +104,18 @@ } } - watchEffect(() => { - if(props.content && props.content.accData && props.content.accData[0] && props.content.accData[1] && props.content.accData[2] && props.content.accData[3] && props.content.accData[4]){ - state.descContent = props.content.accData - } - }) + // watchEffect(() => { + // if(props.content && props.content.accData && props.content.accData[0] && props.content.accData[1] && props.content.accData[2] && props.content.accData[3] && props.content.accData[4]){ + // state.descContent = props.content.accData + // } + // }) // 页面载入时执行方法 onMounted(() => { getTheme(); }); return { + getData, ...toRefs(state) }; } @@ -136,98 +123,257 @@ </script> <style scoped lang="scss"> - .dark-desc{ +.dark-page{ + width: 100%; + height: 100%; + border:1px #5a5959 solid; + background: url('../../../../../assets/warningScreen/body-bg.jpg'); + padding: 4%; + .btns{ + position: fixed; + width: 8%; + height: 6%; + right: 5%; + top: 1.25rem; + font-size: 1.125rem; + color: rgb(17, 254, 238); + cursor: pointer; + } + .tit{ width: 100%; - height: 100%; + height: 122px; + background: url("../../../../../assets/warningScreen/pagebg-t.png") no-repeat center; + background-size: 100% 100%; - .des-tit{ + + .title{ width: 100%; - &>div{ - font-size: 1.5rem; - height: 2.2rem; - line-height: 2.2rem; - text-align: center; - font-weight: bolder; - color: #11FEEE; - } - } - .des-main{ - width: 100%; - height: calc(96% - 2.2rem); - padding: 1rem; - overflow: auto; - color: #11FEEE; - - &::-webkit-scrollbar { width: 0; height: 0; color: transparent; } - &::scrollbar { width: 0; height: 0; color: transparent; } - - &>div{ - margin-bottom: 1rem; - &>h4{ - font-size: 1.25rem; - display: flex; - align-items: center; - - span{ - margin-right: 10px; - } - &:first-of-type{ - margin-bottom: 10px; - } - } - - &>p{ - font-size: 1rem; - margin-top: 10px; - } - } + height: 122px; + line-height: 112px; + border-radius: 8px; + margin-bottom: 20px; + font-size: 2.8rem; + color: #11feee; + font-weight: bolder; + text-align: center; + letter-spacing: 5px; } } - .light-desc{ - width: 100%; - height: 100%; - .des-tit{ - width: 100%; - &>div{ - font-size: 1.5rem; - height: 2.2rem; - line-height: 2.2rem; - text-align: center; - font-weight: bolder; - color: #333; + .chart-cont{ + width: 100%; + padding: 20px; + height: calc(92vh - 122px); + display: flex; + align-items: flex-start; + justify-content: space-between; + + .chart{ + width: calc((100% - 20px) * 0.63); + height: 100%; + padding: 3%; + background: url("../../../../../assets/warningScreen/pagebg-l.png") no-repeat center; + background-size: 100% 100%; + position: relative; + .selector-2{ + position: absolute; + top: 5%; + right: 10%; + width: 20%; + font-size: 1.25rem; + color: #fff; + } + .main-chart{ + width: 100%; + height: 100%; } } - .des-main{ + .chart-right{ + width: calc((100% - 20px) * 0.37); + height: 100%; + .charts-des{ + height: 90%; + padding: 4%; + background: url("../../../../../assets/warningScreen/pagebg-r.png") no-repeat center; + background-size: 100% 100%; + + .dark-desc{ + width: 100%; + height: 100%; + + .des-tit{ + width: 100%; + &>div{ + font-size: 1.5rem; + height: 2.2rem; + line-height: 2.2rem; + text-align: center; + font-weight: bolder; + color: #11FEEE; + } + } + .des-main{ + width: 100%; + height: calc(96% - 2.2rem); + padding: 1rem; + overflow: auto; + color: #11FEEE; + + &::-webkit-scrollbar { width: 0; height: 0; color: transparent; } + &::scrollbar { width: 0; height: 0; color: transparent; } + + &>div{ + margin-bottom: 1rem; + &>h4{ + font-size: 1.25rem; + display: flex; + align-items: center; + + span{ + margin-right: 10px; + } + &:first-of-type{ + margin-bottom: 10px; + } + } + + &>p{ + font-size: 1rem; + margin-top: 10px; + } + } + } + } + } + } + + } +} +.light-page{ + width: 100%; + height: 100%; + border:1px #5a5959 solid; + background: #F0F0F0; + padding: 4%; + .btns{ + position: fixed; + width: 8%; + height: 6%; + right: 5%; + top: 1.25rem; + font-size: 1.125rem; + color: #333; + cursor: pointer; + } + .tit{ + width: 100%; + height: 122px; + background: url("../../../../../assets/warningScreen/pagebg-t-light.png") no-repeat center; + background-size: 100% 100%; + + + .title{ width: 100%; - height: calc(96% - 2.2rem); - padding: 1rem; - overflow: auto; + height: 122px; + line-height: 112px; + border-radius: 8px; + margin-bottom: 20px; + font-size: 2.8rem; color: #333; + font-weight: bolder; + text-align: center; + letter-spacing: 5px; + } + } - &::-webkit-scrollbar { width: 0; height: 0; color: transparent; } - &::scrollbar { width: 0; height: 0; color: transparent; } + .chart-cont{ + width: 100%; + padding: 20px; + height: calc(92vh - 122px); + display: flex; + align-items: flex-start; + justify-content: space-between; - &>div{ - margin-bottom: 1rem; - &>h4{ - font-size: 1.25rem; - display: flex; - align-items: center; + .chart{ + width: calc((100% - 20px) * 0.63); + height: 100%; + padding: 3%; + background: url("../../../../../assets/warningScreen/pagebg-l-light.png") no-repeat center; + background-size: 100% 100%; + position: relative; + .selector-2{ + position: absolute; + top: 5%; + right: 10%; + width: 20%; + font-size: 1.25rem; + color: #fff; + } + .main-chart{ + width: 100%; + height: 100%; + } + } + .chart-right{ + width: calc((100% - 20px) * 0.37); + height: 100%; - span{ - margin-right: 10px; + .charts-des{ + height: 90%; + padding: 4%; + background: url("../../../../../assets/warningScreen/pagebg-r-light.png") no-repeat center; + background-size: 100% 100%; + + .light-desc{ + width: 100%; + height: 100%; + + .des-tit{ + width: 100%; + &>div{ + font-size: 1.5rem; + height: 2.2rem; + line-height: 2.2rem; + text-align: center; + font-weight: bolder; + color: #333; + } } - &:first-of-type{ - margin-bottom: 10px; - } - } + .des-main{ + width: 100%; + height: calc(96% - 2.2rem); + padding: 1rem; + overflow: auto; + color: #333; - &>p{ - font-size: 1rem; - margin-top: 10px; + &::-webkit-scrollbar { width: 0; height: 0; color: transparent; } + &::scrollbar { width: 0; height: 0; color: transparent; } + + &>div{ + margin-bottom: 1rem; + &>h4{ + font-size: 1.25rem; + display: flex; + align-items: center; + + span{ + margin-right: 10px; + } + &:first-of-type{ + margin-bottom: 10px; + } + } + + &>p{ + font-size: 1rem; + margin-top: 10px; + } + } + } } } } + } +} </style> \ No newline at end of file -- Gitblit v1.9.2