From 1b9fea7d4af68d8f933b2dc42bf6084b9646f64c Mon Sep 17 00:00:00 2001 From: 马宇豪 <978517621@qq.com> Date: 星期二, 04 三月 2025 08:39:55 +0800 Subject: [PATCH] 修改作业等级名称 --- src/views/intellectInspect/inspectIndex/index.vue | 458 ++++++++++++++++++-------------------------------------- 1 files changed, 151 insertions(+), 307 deletions(-) diff --git a/src/views/intellectInspect/inspectIndex/index.vue b/src/views/intellectInspect/inspectIndex/index.vue index 83b347a..b9a2fd9 100644 --- a/src/views/intellectInspect/inspectIndex/index.vue +++ b/src/views/intellectInspect/inspectIndex/index.vue @@ -1,17 +1,11 @@ <template> - <div class="home-container" :class="isFull==true?'container':''" id="bigScreen"> + <div class="home-container"> <div class="full"> - <el-button v-if="isFull==false" type="text" style="height: 34px" @click="toFullscreen"> + <el-button type="text" style="height: 34px" @click="toFullscreen"> <el-icon style="vertical-align: middle"> <FullScreen /> </el-icon> <span style="vertical-align: middle">全屏</span> - </el-button> - <el-button v-else type="text" style="height: 34px" @click="toFullscreen"> - <el-icon style="vertical-align: middle"> - <Close /> - </el-icon> - <span style="vertical-align: middle">退出全屏</span> </el-button> </div> <div style="height: 100%"> @@ -19,28 +13,33 @@ <div class="chart-item"> <div class="chart-tit"> <span class="tit">年度巡检异常趋势</span> + <div class="filter-part"> + <el-cascader v-model="searchDepId" :options="depList" :props="casProps" :show-all-levels="false" size="small"/> + </div> </div> <div class="chart" :id="xjLine"></div> </div> <div class="chart-item"> <div class="chart-tit"> <span class="tit">异常区域设备统计</span> - <div class="filter-part"> + <div class="filter-part2"> <el-switch - v-model="chartStatus" + v-model="searchQuery.regionType" inline-prompt style="--el-switch-on-color: #13ce66; --el-switch-off-color: #13ce66" active-text="区域" inactive-text="设备" + :active-value="2" + :inactive-value="3" /> </div> </div> <div class="chart" :id="sbtj"></div> - <el-radio-group v-model="period" size="small"> - <el-radio border label="week">近7天</el-radio> - <el-radio border label="month">近30天</el-radio> - <el-radio border label="season">近90天</el-radio> - <el-radio border label="year">近一年</el-radio> + <el-radio-group v-model="searchQuery.timeType" size="small"> + <el-radio border :label="1">近7天</el-radio> + <el-radio border :label="2">近30天</el-radio> + <el-radio border :label="3">近90天</el-radio> + <el-radio border :label="4">近一年</el-radio> </el-radio-group> </div> </div> @@ -164,7 +163,7 @@ <div style="margin-bottom: 20px"> <div style="margin-bottom: 10px">处置前:</div> <div v-if="beImgs && beImgs.length>0"> - <el-image v-for="(item,index) in beImgs" :key="index" style="width: 200px; height: 200px;margin-right: 10px" :src="item.split('?')[0]" fit="fill" /> + <el-image v-for="(item,index) in beImgs" :key="index" style="width: 200px; height: 200px;margin-right: 10px" :src="item" fit="fill" /> </div> <div v-else> 无照片信息 @@ -173,7 +172,7 @@ <div> <div style="margin-bottom: 10px">处置后</div> <div v-if="afImgs && beImgs.length>0"> - <el-image v-for="(item,index) in afImgs" :key="index" style="width: 200px; height: 200px;margin-right: 10px" :src="item.split('?')[0]" fit="fill" /> + <el-image v-for="(item,index) in afImgs" :key="index" style="width: 200px; height: 200px;margin-right: 10px" :src="item" fit="fill" /> </div> <div v-else> 无照片信息 @@ -211,6 +210,8 @@ import unusualList from './components/unusualList.vue'; import { departmentApi } from '/@/api/systemManage/department'; import screenfull from "screenfull"; +import { BorderBox10 as DvBorderBox10 } from '@kjgl77/datav-vue3' +import {specialIndexApi} from "/@/api/specialWorkSystem/specialIndex"; // 定义接口来定义对象的类型 interface stateType { tableData: Array<string>; @@ -228,14 +229,17 @@ classGroupList: Array<classGroup>; quotaList: []; inspectPointAllList: []; - chartStatus:boolean; - period: string; - isFull:boolean; - themeColor:string; + searchQuery:{ + regionType:number; + timeType: number; + } dialogVisible:boolean; workNum: string; beImgs: []; - afImgs: [] + afImgs: []; + searchDepId: number|null + depList: Array<any> + casProps:object } interface type { id: number; @@ -253,20 +257,20 @@ const xjLine = ref("eChartXjLine" + Date.now() + Math.random()) const sbtj = ref("eChartSbtj" + Date.now() + Math.random()) const state = reactive<stateType>({ - isFull: false, - themeColor: '#333', workNum: '', beImgs: [], afImgs: [], pageIndex: 1, - pageSize: 5, + pageSize: 10, totalSize: 0, tableData: [], unusualData: [], unchecked: null, unusual: null, - chartStatus: true, - period: 'month', + searchQuery:{ + regionType: 2, + timeType: 2, + }, uncheckedList: [], abnormalList: [], workTypeList: [ @@ -281,6 +285,32 @@ { id: 4, name: '月' }, { id: 5, name: '年' } ], + searchDepId: null, + depList: [ + { + name: '电石事业部', + depId: 49 + }, + { + name: '电力事业部', + id: 50 + }, + { + name: '有机化工事业部', + id: 48 + }, + { + name: '甲醇事业部', + id: 32 + } + ], + casProps: { + expandTrigger: 'hover', + emitPath: false, + value: 'depId', + label: 'name', + checkStrictly: true + }, classGroupList: [], quotaList: [], inspectPointAllList: [], @@ -298,29 +328,22 @@ // 页面载入时执行方法 onMounted(() => { + // getDepartmentData(); + // getCountExcepOrder(); + // getPieCountExcepOrder(); getInspectRecord(); getListExcepOrder(); getDayData(); - getDepartmentData(); initXjLine() initSbtj() }); const toFullscreen =()=>{ - // console.log(state.isFull,'quanp',state.themeColor) - const element = document.getElementById('bigScreen') - if (!screenfull.isEnabled) { - ElMessage.warning('暂不不支持全屏'); - return false; - } - screenfull.toggle(element); - state.isFull = !state.isFull - if(state.isFull == true){ - state.themeColor = '#11FEEE' - }else{ - state.themeColor = '#333' - } - initXjLine() - initSbtj() + router.push({ + path: 'inspectFullScreen', + query: { + + } + }) } const checkAllRecord =()=>{ inspectListRef.value.departmentList = state.departmentList @@ -328,6 +351,28 @@ } const checkAllList =()=>{ unusualListRef.value.showUnusualList() + } + const getCountExcepOrder = async ()=>{ + let res = await inspectIndexApi().getCountExcepOrder({depId: state.searchDepId}); + if (res.data.code === '200') { + console.log('折线图趋势数据>>>', res.data.data) + } else { + ElMessage({ + type: 'warning', + message: res.data.msg + }); + } + } + const getPieCountExcepOrder = async ()=>{ + let res = await inspectIndexApi().getPieCountExcepOrder(state.searchQuery); + if (res.data.code === '200') { + console.log('饼状图趋势数据>>>', res.data.data) + } else { + ElMessage({ + type: 'warning', + message: res.data.msg + }); + } } const acceptance =(row:object)=>{ ElMessageBox.confirm( @@ -428,8 +473,7 @@ padding:[1,1,1,0], textStyle: { // 设置默认的文字颜色 - color: state.themeColor, - fontSize: 12 + color: '#333' }, }, grid: { @@ -449,11 +493,21 @@ boundaryGap: false, data: ['四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月', '一月', '二月', '三月'], axisLabel: { - color: state.themeColor + color: '#333' } }, yAxis: { - type: 'value' + splitLine: { + show: true, + lineStyle: { + color: '#fafafa', + width: 1, + type: 'dashed' + } + }, + axisLabel:{ + color: '#ccc' + } }, series: [ { @@ -518,8 +572,8 @@ top: 'center', textStyle: { // 设置默认的文字颜色 - color: state.themeColor, - fontSize: 12 + color: '#333', + // fontSize: 12 }, itemStyle: { borderWidth: 0 // 设置图例边框宽度为0 @@ -534,21 +588,29 @@ itemStyle: { borderRadius: 1, borderColor: '#fff', - borderWidth: 2 + borderWidth: 1 }, label: { - show: false, - position: 'center' - }, - emphasis: { - label: { - show: true, - fontSize: 40, - fontWeight: 'bold' - } + show: true, + position: 'outside', + overflow: 'truncate', + borderWidth: 0, + color: '#333' }, labelLine: { - show: true + show: true, // 显示指示线 + lineStyle: { + color: '#ccc', + width: 1, + type: 'solid' + } + }, + emphasis: { + itemStyle: { + shadowBlur: 10, + shadowOffsetX: 0, + shadowColor: 'rgba(0, 0, 0, 0.5)' + }, }, data: [ { value: 1048, name: '区域1' }, @@ -582,7 +644,7 @@ }; // 分页获取 const getListExcepOrder = async () => { - const data = { pageSize: 4, pageIndex: state.pageIndex }; + const data = { pageSize: 10, pageIndex: state.pageIndex }; let res = await inspectIndexApi().getListExcepOrderByPage(data); if (res.data.code === '200') { state.unusualData = JSON.parse(JSON.stringify(res.data.data.records)) @@ -598,6 +660,13 @@ let res = await departmentApi().getDepartmentList(); if (res.data.code === '200') { state.departmentList = res.data.data; + const newList = [] + for(let i of state.departmentList[0].children){ + if(i.depId == 32 || i.depId == 48 ||i.depId == 49 || i.depId == 50){ + newList.push(i) + } + } + state.depList = newList } else { ElMessage({ type: 'warning', @@ -679,7 +748,7 @@ ...toRefs(state) }; } -}; +} </script> <style scoped lang="scss"> @@ -698,6 +767,7 @@ height: calc(100vh - 144px); box-sizing: border-box; overflow: hidden; + overflow-y: scroll; .full{ position:fixed; height: 34px; @@ -708,7 +778,7 @@ } .topChart{ width: 100%; - height: calc((100% - 40px) / 3); + height: 300px; display: flex; justify-content: space-between; align-items: flex-start; @@ -740,6 +810,21 @@ font-weight: bolder; } .filter-part{ + display: flex; + align-items: center; + justify-content: right; + :deep(.el-cascader){ + width: 100% !important; + } + .el-switch{ + width: 100% !important; + :deep(.el-switch__core){ + width: 100% !important; + } + } + + } + .filter-part2{ display: flex; align-items: center; justify-content: right; @@ -780,7 +865,6 @@ } } .midChart{ - height: calc((100% - 40px) / 3); width: 100%; background: #fff; display: flex; @@ -803,10 +887,6 @@ .tit{ font-size: 20px; font-weight: bolder; - } - :deep(.el-switch__core){ - width: 120px; - } .top-info { display: flex; @@ -845,60 +925,10 @@ width: 100%; height: 85%; margin-top: 10px; - - .el-table{ - height: 100% !important; - :deep(.el-table__inner-wrapper){ - height: 100% !important; - .el-table__header-wrapper { - height: 20% !important; - .el-table__header{ - height: 100% !important; - th{ - height: 100% !important; - padding: 0 0 !important; - .cell{ - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; - } - } - } - } - .el-table__body-wrapper { - height: 80% !important; - .el-scrollbar__view{ - height: 100% !important; - .el-table__body{ - height: 100% !important; - tbody{ - height: 100% !important; - .el-table__row{ - height: 25% !important; - td{ - height: 25% !important; - padding: 0 0 !important; - .left-info{ - display: flex; - align-items: center; - } - .cell{ - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; - } - .el-button{ - padding: 0 !important; - } - } - } - } - } - } - } - } + .left-info{ + display: flex; + align-items: center; } - .pageBtn { position: absolute; bottom: 15px; @@ -932,193 +962,7 @@ } } } -.container{ - padding: 20px; - background: url('../../../assets/spwbg.png') no-repeat center; - .full{ - position:fixed; - background: #fff; - border-radius: 17px; - box-shadow: 3px 3px 12px rgba(0,0,0,.2); - height: 34px; - line-height: 34px; - top: 0; - right: 20px; - } - .topChart{ - .chart-item{ - border-radius: 4px; - background: rgba(8, 109, 209, 0.2); - border: 1px solid rgba(54, 252, 252, .6); - backdrop-filter: blur(5px); - position: relative; - z-index: 2; - &:last-of-type{ - position: relative; - z-index: 1; - } - .el-radio.is-bordered.is-checked{ - border-color: #11FEEE !important; - :deep(.el-radio__inner){ - border-color: #11FEEE !important; - background: #11FEEE !important; - } - :deep(.el-radio__label){ - color: #11FEEE !important - } - } - .chart-tit{ - .tit{ - color: #11FEEE; - } - ::v-deep(.el-popper){ - background-color: rgba(10,31,92,1); - border: 1px solid rgba(17,254,238,.4); - color: #11FEEE; - .el-cascader-node{ - .in-active-path{ - background: #0049af; - } - &:hover{ - background: #0049af; - } - } - .el-cascader-node__label{ - color: #11FEEE; - } - .el-icon{ - color: #11FEEE; - } - .el-select-dropdown__item{ - color: #11FEEE; - } - .el-select-dropdown__item.hover{ - background: #0049af; - } - } - ::v-deep(.el-popper__arrow){ - &::before{ - background-color: rgba(10,31,92,.6) !important; - border: 1px solid rgba(17,254,238,.4); - } - } - ::v-deep(.el-input__wrapper){ - box-shadow: none; - border: 1px solid rgba(17,254,238,.2); - background: rgba(10,31,92,.6) !important; - height: 1.5rem; - color: #11FEEE; - - input{ - font-size: 0.8rem; - color: #11FEEE; - } - .el-icon{ - color: #11FEEE; - } - } - } - .chart{ - .el-table { - color: #11FEEE !important; - background-color: rgba(0,0,0,0) !important; - :deep(thead){ - color: #11FEEE !important; - } - :deep(tr){ - background-color: rgba(0,0,0,0) !important; - .el-table__cell{ - background-color: rgba(0,0,0,0) !important; - } - } - } - } - } - } - .midChart{ - border-radius: 4px; - background: rgba(8, 109, 209, 0.2); - border: 1px solid rgba(54, 252, 252, .6); - backdrop-filter: blur(5px); - position: relative; - z-index: 3; - .tit{ - color: #11FEEE; - } - .checkAll{ - cursor: pointer; - color: #11feee; - &:hover{ - color: #409eff - } - } - .el-table { - color: #11FEEE !important; - background-color: rgba(0,0,0,0) !important; - :deep(thead){ - color: #11FEEE !important; - background-color: #092846 !important - } - :deep(tr){ - background-color: rgba(0,0,0,0) !important; - .el-table__cell{ - background-color: rgba(0,0,0,0) !important; - } - .el-table-fixed-column--right{ - background-color: #092846 !important - } - } - } - - ::v-deep(.el-popper){ - background-color: rgba(10,31,92,1); - border: 1px solid rgba(17,254,238,.4); - color: #11FEEE; - .el-cascader-node{ - .in-active-path{ - background: #0049af; - } - &:hover{ - background: #0049af; - } - } - .el-cascader-node__label{ - color: #11FEEE; - } - .el-icon{ - color: #11FEEE; - } - .el-select-dropdown__item{ - color: #11FEEE; - } - .el-select-dropdown__item.hover{ - background: #0049af; - } - } - ::v-deep(.el-popper__arrow){ - &::before{ - background-color: rgba(10,31,92,.6) !important; - border: 1px solid rgba(17,254,238,.4); - } - } - ::v-deep(.el-input__wrapper){ - box-shadow: none; - border: 1px solid rgba(17,254,238,.2); - background: rgba(10,31,92,.6) !important; - height: 1.5rem; - color: #11FEEE; - - input{ - font-size: 0.8rem; - color: #11FEEE; - } - .el-icon{ - color: #11FEEE; - } - } - } -} .el-input { width: 100% !important; } -- Gitblit v1.9.2