update code

dev-login
haha 2023-08-15 00:47:59 +08:00
parent 4f4252f4b5
commit eebddf04db
4 changed files with 832 additions and 560 deletions

View File

@ -44,8 +44,23 @@ const getMonitAndWarning=(deptId,projectId=0)=>{
}
const listSspProblemmodify=data=>{
return request({
url: `bgscreen/problemmodify/listSspProblemmodify`,
method: 'post',
data:data
})
}
const groupByInfotypeCheckState=data=>{
return request({
url: `bgscreen/problemmodify/groupByInfotypeCheckState`,
method: 'post',
data:data
})
}
export default{
safetySummary,qualitySummary,safetySummaryByProject,qualitySummaryByProject,getMonitAndWarning
safetySummary,qualitySummary,safetySummaryByProject,qualitySummaryByProject,getMonitAndWarning,listSspProblemmodify,groupByInfotypeCheckState
}

View File

@ -0,0 +1,113 @@
<template>
<MyDialog v-if="show" v-model="show" width="880px" class="problem-modify-detail">
<template slot="title">
{{ row.projectName}}{{infoType==0?'安全隐患':'质量隐患' }}
</template>
<div>
<div class="head-title-tab">
<div :class="nav==0?'head-nav active':'head-nav'" @click="doNav(0)">({{count['0']}})</div>
<div :class="nav==1?'head-nav active':'head-nav'" @click="doNav(1)">({{count['1']}})</div>
<div :class="nav==3?'head-nav active':'head-nav'" @click="doNav(3)">({{count['3']}})</div>
<div :class="nav==4?'head-nav active':'head-nav'" @click="doNav(4)">({{count['4']}})</div>
</div>
<el-table :data="dataTable" :key="elKey" height="500" widt="100%">
<el-table-column label="项目名称" align="center" prop="problemArea" width="200" show-overflow-tooltip/>
<el-table-column label="隐患图片" align="center" property="path" width="220">
<template slot-scope="scope">
<el-image ref="preview"
style="width: 200px; height: 100px"
:src="scope.row.marksPicture"
>
</el-image>
</template>
</el-table-column>
<el-table-column label="隐患描述" align="center" prop="workParts" width="100" show-overflow-tooltip/>
<el-table-column label="整改要求" align="center" prop="changeInfo" width="200" show-overflow-tooltip/>
</el-table>
</div>
</MyDialog>
</template>
<script>
import '@/components/module/module-one-1-1'
import MyDialog from '../components/MyDialog'
export default {
components: {
MyDialog
},
data() {
return {
elKey:0,
nav:0,
infoType:0,
row:null,
show: false,
count:{
"0":0,
"1":0,
"3":0,
"4":0
},
dataTable:[]
};
},
mounted() {
},
methods: {
doNav(n,init) {
if(n==this.nav && !init){
return;
}
this.nav = n;
this.$api.problemmodify.listSspProblemmodify({
projectId:this.row.projectId,
infoType:this.infoType,
checkState:n
}).then(d=>{
this.dataTable=d.data||[];
this.elKey++;
})
},
showDialog(row,infoType) {
this.row=row;
this.infoType=infoType;
this.show = true
this.doNav(0,true);
this.$api.problemmodify.groupByInfotypeCheckState({
projectId:this.row.projectId
}).then(d=>{
let tmps=(d.data||[]).filter(it=>it.infoType==this.infoType);
tmps.forEach(it=>{
this.count[""+it.checkState]=it.id;
})
})
}
},
};
</script>
<style lang="less" >
.problem-modify-detail{
.popup-project-introduction-details{
padding: 0px !important;
.quality-table{
padding: 0px !important;
}
}
.head-title-tab{
padding-top: 12px;
display: block;
width: 100%;
.head-nav{
background-size: 100% 100%;
display: inline-block;
width: auto;
padding:0px 24px;
}
}
}
</style>

View File

@ -20,30 +20,50 @@
<project-overview-chart2 :key="safeNav" :sp="'\n'" :maintitle="fmt(summaryTotal)" :typedata="summary" :text="safeText" :height="230"></project-overview-chart2>
<div style="padding:0px 20px">
<el-row>
<el-col :span="12">
<el-col :span="12" v-if="1==2">
<div class="rank-chart-title bottom-line">质量隐患类型分析</div>
<rank-chart :data="summary" :showval="true" :height="600"></rank-chart>
</el-col>
<el-col :span="12">
<div class="rank-chart-title bottom-line">项目质量隐患占比</div>
<div class="idle-list" style="padding-top:20px;">
<el-table style="width: 100%" ref="wgzp" :data="summaryPrj" height="600" :row-style="rowStyle" class="elTable">
<el-table-column type="index" width="40">
<template slot-scope="scope">
<div :class="scope.$index < 3 && +scope.row.value>0 ? 'idle-list-color':''">{{scope.$index + 1}} </div>
</template></el-table-column>
<el-table-column prop="name" label="项目名称" width="120" class-name="text-left" :show-overflow-tooltip="true"></el-table-column>
<el-table-column prop="prop" label="占比" >
<template slot-scope="scope">
<idle-list-chart :prop="Number(scope.row.prop)" :color="scope.$index < 3 && +scope.row.value>0 ? '#f05e35':'#6ab9fe'"></idle-list-chart>
</template>
</el-table-column>
<el-table-column prop="number" label="隐患数" width="60" align="center">
<template slot-scope="scope">
<div>{{scope.row.value}} </div>
</template>
</el-table-column>
</el-table>
<el-col :span="24">
<div class="rank-chart-title bottom-line">
<span style="position: relative;top: -4px;">项目质量隐患占比({{ summaryPrjTotal }})</span></div>
<div class="idle-list problemmodify_list" style="padding-top:20px;">
<el-table style="width: 100%" ref="wgzp" :data="summaryPrj" height="600"
:row-style="rowStyle" class="elTable">
<el-table-column type="index" width="40">
<template slot-scope="scope">
<div
:class="scope.$index < 3 && +scope.row.value > 0 ? 'idle-list-color' : ''">
{{ scope.$index + 1 }} </div>
</template></el-table-column>
<el-table-column prop="projectName" label="项目名称" width="120"
class-name="text-left" :show-overflow-tooltip="true">
</el-table-column>
<el-table-column prop="prop" label="占比">
<template slot-scope="scope">
<idle-list-chart :prop="Number(scope.row.prop)"
:color="scope.$index < 3 && +scope.row.id > 0 ? '#f05e35' : '#6ab9fe'"></idle-list-chart>
</template>
</el-table-column>
<el-table-column prop="id" label="隐患数" width="60" align="center">
<template slot-scope="scope">
<div>{{ scope.row.id }} </div>
</template>
</el-table-column>
<el-table-column prop="id" label="超时隐患数" width="100" align="center">
<template slot-scope="scope">
<div>{{ scope.row.infoType }} </div>
</template>
</el-table-column>
<el-table-column prop="id" label="整改率">
<template slot-scope="scope">
<idle-list-chart :prop="Number(scope.row.rate)"
color="#6ab9fe"></idle-list-chart>
</template>
</el-table-column>
</el-table>
</div>
</el-col>
</el-row>
@ -266,10 +286,10 @@ export default {
this.$api.problemmodify.qualitySummaryByProject(this.dept.id,this.safeNav).then(d=>{
this.summaryPrj=(d||[]).map(it=>{
return {
text:it.problemArea,
prop:'0.0',
name:it.problemArea,
value:it.roleType||0
...it,
prop: '0.0',
value: it.id || 0,
rate: 0,
}
});
this.summaryPrjTotal=0;
@ -277,11 +297,12 @@ export default {
this.summaryPrjTotal+=it.value;
});
this.summaryPrj.forEach(it=>{
if(this.summaryPrjTotal==0){
it.prop="0.0"
}else{
it.prop=(it.value*100.0/this.summaryPrjTotal).toFixed(1);
if (this.summaryPrjTotal == 0) {
it.prop = "0.0"
} else {
it.prop = (it.value * 100.0 / this.summaryPrjTotal).toFixed(1);
}
it.rate = (it.checkState * 100.0 / it.value).toFixed(1);
})
this.elKey++;
});
@ -314,6 +335,22 @@ export default {
<style lang="less">
.project-quality{
.problemmodify_list{
.el-table__body-wrapper {
&::-webkit-scrollbar {
width: 8px;
height: 8px;
}
&::-webkit-scrollbar-thumb {
background-color: rgb(1, 169, 255);
border-radius: 4px;
}
tr{
cursor: pointer;
}
}
}
.center-image .screen-one-2-1{
overflow: hidden;
}

File diff suppressed because it is too large Load Diff