# Conflicts:
#	src/api/index.js
dev
姜玉琦 2024-08-11 21:53:54 +08:00
commit 158619e907
14 changed files with 747 additions and 103 deletions

View File

@ -4770,6 +4770,13 @@ table{
.toSafety-fixed-left-max{
position: absolute;
}
.toSafety-fixed-bottom-max{
position: absolute;
width: calc(100% - 1000px);
left: 500px;
bottom: 10px;
text-align: center;
}
.toSafety-fixed-left{
padding: 10px 0 10px 15px;
width: 473px;
@ -4786,10 +4793,16 @@ table{
align-items: center;
right: 0;
}
.toSafety-fixed-bottom-img{
position: absolute;
margin-left:-50px;
top:-20px;
}
.toSafety-fixed-right{
padding: 10px 15px 10px 0;
width: 473px;
}
.toSafety-fixed-right-img{
position: absolute;
right: 490px;

View File

@ -82,6 +82,10 @@
document.getElementById("divTest").style.display="block";
}
},400);
setTimeout(()=>{
document.getElementById("divTest").remove();
},60*1000);
</script>
</body>
</html>

View File

@ -25,7 +25,11 @@ import gzDict from './gzaiBox/dict'
import plan from './plan/index'
import periodical from './periodical/index'
import engin from './engin'
<<<<<<< .mine
import tower from './device/tower/index'
=======
import quality from './quality'
>>>>>>> .theirs
import {axios,download} from '@/utils/request'
export default {
project,
@ -56,6 +60,11 @@ export default {
downFile:download,
engin,
gzAiBoxVideo,
<<<<<<< .mine
gzDict,
tower
=======
gzDict,
quality
>>>>>>> .theirs
}

View File

@ -0,0 +1,20 @@
import request from '@/utils/request'
const projectFunVerifyGroupByCheckType=(deptId,projectId)=>{
return request({
url: `/project/projectFunVerify/groupByCheckType?deptId=${deptId||0}&projectId=${projectId||0}`,
method: 'get'
})
}
const listFunVerify=data=>{
return request({
url: `/project/projectFunVerify/list`,
method: 'get',
params:data
})
}
export default{
projectFunVerifyGroupByCheckType,
listFunVerify
}

View File

@ -561,6 +561,14 @@ export default {
</script>
<style lang="less">
body.is-index{
.head-title {
background-color:rgba(2, 18, 56, 0.9);
}
.screen-one-2-1,.screen-one-1-1{
background-color:rgba(2, 18, 56, 0.4);
}
}
.head-title {
z-index: 999;
}

View File

@ -196,7 +196,7 @@
<th>所属项目</th>
<th style="width:95px">所属总包单位</th>
<th>申请单位</th>
<th>分包类型</th>
<th style="width:30px;">分包类型</th>
<th style="width:40px">申请<br />时间</th>
<th style="width:40px">状态</th>
</tr>

View File

@ -1,10 +1,13 @@
<template>
<div class="main-index">
<div class="screen-content">
<el-row>
<el-col :span="6" style="position: relative;">
<module-one-2-1 label="集团项目总览" :key="elKey">
<!--
<iframe src="http://192.168.126.200:12020/#/model/3a1384b4-5d86-6070-dcc0-d13936634761?v=2000" style="position: absolute;top:0px;left:0px;width:100%;height:100%;"></iframe>
-->
<iframe src="#/map" style="position: absolute;top:0px;left:0px;width:100%;height:100%;"></iframe>
<div class="toSafety-fixed-left-max">
<transition name="left">
<div class="toSafety-fixed-left" v-show="leftShow">
<module-one-2-1 label="集团项目总览" :key="elKey">
<img src="images/icon2001.png" v-if="1==2" style="position: absolute;cursor: pointer;right: 0px;top: 8px;"
@click="doShowDlg1">
<div class="survey_title">
@ -38,18 +41,86 @@
:key="elKey" :typedata="dangersDatas" :text="qualityNavTitle" :height="260" gifTop="77px"
style="top:-30px"></project-overview-chart>
</module-one-1-1>
</el-col>
<el-col :span="12">
<module-one-2-1 class="center-image" label="集团项目区域分布">
<iframe src="http://192.168.126.200:12020/#/model/3a13046b-f33a-4754-ed84-48246d128ca1" style="width:100%;height:100%;border:none"></iframe>
<!--
<iframe src="newmap/index.html" style="width:100%;height:100%;border:none" ></iframe>
-->
<!--
<iframe src="#/map" style="width:100%;height:100%;border:none" v-if="!isLocalhost"></iframe>
-->
</module-one-2-1>
<el-row>
</div>
</transition>
<img :src="leftSrc" class="toSafety-fixed-left-img" @click="arrowRetract" id="arrowLeft">
</div>
<div class="toSafety-fixed-right-max">
<img :src="rightSrc" class="toSafety-fixed-right-img" @click="arrowRetract" id="arrowRight">
<transition name="right">
<div class="toSafety-fixed-right" v-show="leftShow">
<module-one-1-1 label="集团新闻">
<el-carousel>
<el-carousel-item v-for="(item, idx) in JournalismList" :key="idx">
<div style="height: 94%;text-align: center;" @click="handJournalism(item)">
<img :src="$apiPath + item.mainImage + '.1000.jpg'" style="width: 99%;height: 100%;">
</div>
<div style="text-align: center;font-size: 12px;line-height: 32px;margin-top: -32px;">
{{ item.title }}
</div>
</el-carousel-item>
</el-carousel>
</module-one-1-1>
<module-one-1-1 label="成本管理" :key="elKey">
<div class="glr-max cost-out" style="position: relative;">
<div class="glr-min">
<div class="glr-title">开累产值</div>
<div class="labour-education">
<div style="transform: scale(0.8);margin-left:-20px">
<people-number
:number="((sumCost.totalMonth * 1.0 || 0).toFixed(2)) || '0.00'"
unit="万元"></people-number>
</div>
<div class="survey_content" style="position: absolute;right: 15px;top: -36px;">
<div class="survey_content_img labour-education_bgd">
<svg class="my-svg-icon"
style="vertical-align: middle;fill: currentColor;overflow: hidden;"
viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"
p-id="16007">
<path
d="M544.853333 545.322667v54.826666h100.053334a33.749333 33.749333 0 1 1 0 67.541334h-99.989334v91.648a33.749333 33.749333 0 0 1-67.52 0v-91.648h-98.282666a33.749333 33.749333 0 0 1 0-67.52h98.282666v-54.848h-98.282666a33.749333 33.749333 0 0 1 0-67.52h76.565333l-90.176-151.658667a33.856 33.856 0 0 1 58.133333-34.453333l88.298667 148.501333 88.362667-148.501333a33.856 33.856 0 0 1 58.069333 34.453333l-90.176 151.68h76.693333a33.749333 33.749333 0 0 1 0 67.498667H544.853333zM512 110.186667a400 400 0 0 0-284.16 117.674666A400.426667 400.426667 0 0 0 110.208 512a400 400 0 0 0 117.674667 284.16A400.426667 400.426667 0 0 0 512 913.792a400 400 0 0 0 284.16-117.674667A400.426667 400.426667 0 0 0 913.792 512a400 400 0 0 0-117.653333-284.16A400.426667 400.426667 0 0 0 512 110.208zM512 42.666667c259.2 0 469.333333 210.133333 469.333333 469.333333s-210.133333 469.333333-469.333333 469.333333S42.666667 771.2 42.666667 512 252.8 42.666667 512 42.666667z"
fill="#8A8A8A" p-id="16008"></path>
</svg>
</div>
</div>
</div>
<div class="glr-title">年度产值</div>
<div class="labour-education">
<div style="transform: scale(0.8);margin-left:-20px">
<people-number
:number="((sumCost.curYear * 1.0 || 0).toFixed(2)) || '0.00'"
unit="万元"></people-number>
</div>
</div>
<div class="glr-title">月度产值</div>
<div class="labour-education">
<div style="transform: scale(0.8);margin-left:-20px">
<people-number
:number="((sumCost.curMonth * 1.0 || 0).toFixed(2)) || '0.00'"
unit="万元"></people-number>
</div>
</div>
</div>
</div>
</module-one-1-1>
<module-one-1-1 label="项目监测预警">
<MonitAndWarning></MonitAndWarning>
</module-one-1-1>
</div>
</transition>
</div>
<div class="toSafety-fixed-bottom-max">
<img :src="bottomSrc" class="toSafety-fixed-bottom-img" @click="arrowRetract" id="arrowBottom">
<transition name="bottom">
<div class="toSafety-fixed-bottom" v-show="leftShow">
<el-row>
<el-col :span="12" style="position: relative;">
<module-one-1-1 label="人员统计" :key="elDeptWorks">
<img src="images/icon2001.png" v-show="laborPersonnelTotal>0" style="position: absolute;cursor: pointer;right: 20px;top: 12px;"
@ -153,72 +224,30 @@
</module-one-1-1>
</el-col>
</el-row>
</div>
</transition>
</div>
<div class="screen-content" v-if="1==2">
<el-row>
<el-col :span="6" style="position: relative;">
</el-col>
<el-col :span="12">
<module-one-2-1 class="center-image" label="集团项目区域分布" >
<iframe v-if="1==2" src="http://192.168.126.200:12020/#/model/3a13046b-f33a-4754-ed84-48246d128ca1" style="width:100%;height:100%;border:none"></iframe>
<!--
<iframe src="newmap/index.html" style="width:100%;height:100%;border:none" ></iframe>
-->
<!--
<iframe src="#/map" style="width:100%;height:100%;border:none" v-if="!isLocalhost"></iframe>
-->
</module-one-2-1>
</el-col>
<el-col :span="6">
<module-one-1-1 label="集团新闻">
<el-carousel>
<el-carousel-item v-for="(item, idx) in JournalismList" :key="idx">
<div style="height: 94%;text-align: center;" @click="handJournalism(item)">
<img :src="$apiPath + item.mainImage + '.1000.jpg'" style="width: 99%;height: 100%;">
</div>
<div style="text-align: center;font-size: 12px;line-height: 32px;margin-top: -32px;">
{{ item.title }}
</div>
</el-carousel-item>
</el-carousel>
</module-one-1-1>
<module-one-1-1 label="成本管理" :key="elKey">
<div class="glr-max cost-out" style="position: relative;">
<div class="glr-min">
<div class="glr-title">开累产值</div>
<div class="labour-education">
<div style="transform: scale(0.8);margin-left:-20px">
<people-number
:number="((sumCost.totalMonth * 1.0 || 0).toFixed(2)) || '0.00'"
unit="万元"></people-number>
</div>
<div class="survey_content" style="position: absolute;right: 15px;top: -36px;">
<div class="survey_content_img labour-education_bgd">
<svg class="my-svg-icon"
style="vertical-align: middle;fill: currentColor;overflow: hidden;"
viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"
p-id="16007">
<path
d="M544.853333 545.322667v54.826666h100.053334a33.749333 33.749333 0 1 1 0 67.541334h-99.989334v91.648a33.749333 33.749333 0 0 1-67.52 0v-91.648h-98.282666a33.749333 33.749333 0 0 1 0-67.52h98.282666v-54.848h-98.282666a33.749333 33.749333 0 0 1 0-67.52h76.565333l-90.176-151.658667a33.856 33.856 0 0 1 58.133333-34.453333l88.298667 148.501333 88.362667-148.501333a33.856 33.856 0 0 1 58.069333 34.453333l-90.176 151.68h76.693333a33.749333 33.749333 0 0 1 0 67.498667H544.853333zM512 110.186667a400 400 0 0 0-284.16 117.674666A400.426667 400.426667 0 0 0 110.208 512a400 400 0 0 0 117.674667 284.16A400.426667 400.426667 0 0 0 512 913.792a400 400 0 0 0 284.16-117.674667A400.426667 400.426667 0 0 0 913.792 512a400 400 0 0 0-117.653333-284.16A400.426667 400.426667 0 0 0 512 110.208zM512 42.666667c259.2 0 469.333333 210.133333 469.333333 469.333333s-210.133333 469.333333-469.333333 469.333333S42.666667 771.2 42.666667 512 252.8 42.666667 512 42.666667z"
fill="#8A8A8A" p-id="16008"></path>
</svg>
</div>
</div>
</div>
<div class="glr-title">年度产值</div>
<div class="labour-education">
<div style="transform: scale(0.8);margin-left:-20px">
<people-number
:number="((sumCost.curYear * 1.0 || 0).toFixed(2)) || '0.00'"
unit="万元"></people-number>
</div>
</div>
<div class="glr-title">月度产值</div>
<div class="labour-education">
<div style="transform: scale(0.8);margin-left:-20px">
<people-number
:number="((sumCost.curMonth * 1.0 || 0).toFixed(2)) || '0.00'"
unit="万元"></people-number>
</div>
</div>
</div>
</div>
</module-one-1-1>
<module-one-1-1 label="项目监测预警">
<MonitAndWarning></MonitAndWarning>
</module-one-1-1>
</el-col>
</el-row>
</div>
@ -464,6 +493,11 @@ export default {
deptInfo: {},
JournalismList: [],
sumCost: {},
//
leftShow:true,
leftSrc:'./images/arrow_left_retract.png',
rightSrc:'./images/arrow_right_retract.png',
bottomSrc:'./images/arrow_bottom_retract.png'
}
},
created() {
@ -493,8 +527,30 @@ export default {
if(this.$root.hasInitHeader){
this.initMe();
}
document.body.classList.add("is-index");
},
beforeDestroy(){
document.body.classList.remove("is-index");
},
methods: {
arrowRetract(){
if(this.leftShow == true){
this.leftSrc = './images/arrow_right_retract.png'
this.rightSrc = './images/arrow_right_open.png'
this.bottomSrc = './images/arrow_bottom_open.png'
$("#arrowLeft").animate({left: 10+'px'},300)
$("#arrowRight").animate({right: 10+'px'},300)
$("#arrowBottom").animate({bottom: 10+'px'},300)
}else{
this.leftSrc = './images/arrow_left_retract.png'
this.rightSrc = './images/arrow_left_open.png'
this.bottomSrc = './images/arrow_bottom_retract.png'
$("#arrowLeft").animate({left: 490+'px'},300)
$("#arrowRight").animate({right: 490+'px'},300)
$("#arrowBottom").animate({bottom: -490+'px'},300)
}
this.leftShow = !this.leftShow;
},
initMe(){
this.prj=this.$root.project||{};
this.deptInfo=this.$root.dept||{};

View File

@ -121,6 +121,10 @@ export default {
obj[it.updateBy].push(it);
}
});
for(let k in obj){
let v=obj[k].sort((a,b)=>b.videoDate.localeCompare(a.videoDate));
obj[k]=v;
}
this.infoList=obj;
})

View File

@ -293,6 +293,7 @@ export default {
this.prjs = this.$root.projects || this.prjs || [];
this.dept = this.$root.dept || this.dept;
this.loadData();
this.getCommList({ value: this.selType })
}));
if (this.$root.hasInitHeader) {
this.initMe();
@ -321,7 +322,6 @@ export default {
},
methods: {
dtChange() {
debugger
this.commChange();
this.getCommList({ value: this.selType })
},
@ -484,16 +484,23 @@ export default {
if (this.$refs.listByCat) {
this.$refs.listByCat.reLoad()
}
let postData = {
committeeId: this.selComm,
projectId: this.project?.id || 0, deptId: this.dept?.id || 0
};
if (this.selDate.length > 0) {
postData.createTime = +this.$dt(this.selDate[0]).$d;
}
if (this.selDate.length > 1) {
postData.updateTime = +this.$dt(this.selDate[1]).$d;
}
this.getProjectId(id => {
let ajaxs = [
this.$api.standard.groupByType({ projectId: this.project?.id || 0, deptId: this.dept?.id || 0 }),
this.$api.standard.groupByProject(),
this.$api.engin.magGroupByTopic(),
this.$api.engin.groupByMag(this.selMag),
this.$api.engin.committeeSumGroupByType({
committeeId: this.selComm,
projectId: this.project?.id || 0, deptId: this.dept?.id || 0
})
this.$api.engin.groupByMag(this.selMag),
this.$api.engin.committeeSumGroupByType(postData)
];
this.$api.http.all(ajaxs).then(res => {
this.showChart1(res[0]);

View File

@ -181,6 +181,9 @@
</module-one-1-1>
</el-col>
<el-col :span="6">
<module-one-1-1 label="工程功能检验" style="position: relative">
<funVerifyGroupByCheckType ref="funGroupByCheckType"/>
</module-one-1-1>
<projectChecking></projectChecking>
</el-col>
</el-row>
@ -209,6 +212,7 @@ import materialSealListDlg from "./quality/materialSealListDlg.vue";
import projectChecking from "./quality/projectChecking.vue";
import debounce from "lodash.debounce";
import ProblemmodifyList from './components/ProblemmodifyList.vue'
import funVerifyGroupByCheckType from './quality/funVerifyGroupByCheckType.vue'
export default {
components: {
materialSealListDlg,
@ -218,7 +222,8 @@ export default {
materialSealDetialDlg,
checkDetectionDlg,
measuredDlg,
projectChecking,ProblemmodifyList
projectChecking,ProblemmodifyList,
funVerifyGroupByCheckType
},
data() {
return {

View File

@ -0,0 +1,173 @@
<template>
<div class="fun-verify-group-check-type">
<img src="images/icon2001.png" v-if="total > 1"
style="position: absolute; cursor: pointer; right: 12px; top: 12px" @click="showFunVerifyDlg" />
<project-overview-chart :key="'ai1' + elKey" :sp="''" txtTop="0" gifTop="8px"
:maintitle="total" :legend-opt="legendOpt2" :typedata="dataList"
:text="showText" :height="180" :width="450" :fn="changeChart1"></project-overview-chart>
<div class="div-legend">
<div v-for="(it,idx) in showList" :key="idx" class="legend-item">
<span class="item-no" :style="'background:'+it.color">{{idx+1 }}</span>
<span class="item-name">{{ it.name }}</span>
<span class="item-value">{{ it.value }}</span>
</div>
</div>
<funVerifyGroupDlg ref="dlg"/>
</div>
</template>
<script>
import throttle from 'lodash.throttle'
import funVerifyGroupDlg from './funVerifyGroupDlg.vue'
export default {
components:{
funVerifyGroupDlg
},
data() {
return {
showText:'汇总总数',
dept: null,
projectInfo: null,
prjs:[],
dataList:[],
showList:[],
total:0,
elKey:0,
legendOpt2: {
icon: "rect",
textStyle: {
fontSize: 14,
color: "#c3dbfd",
rich: {
name: {
color: "#c3dbfd",
padding: [0, 20, 0, 0],
},
val: {
color: "#63f8bc",
},
},
},
},
};
},
mounted() {
this.$bus.$on("projectChange", throttle((res) => {
this.projectInfo = res;
this.dept = this.$root.dept || this.dept||{};
this.prjs=this.$root.projects || this.prjs||[];
this.loadData();
}));
if (this.$root.hasInitHeader) {
this.initMe();
}
},
methods: {
showFunVerifyDlg(){
this.$refs.dlg.showDialog({
dataList:this.dataList,
deptId:this.dept?.id || 0,
projectId:this.projectInfo?.id||0
})
},
changeChart1(opt){
let colors=["#D50000","#AA00FF","#304FFE","#0091EA","#00B8D4","#00C853","#AEEA00","#FFAB00","#5D4037","#F06292","#4A148C","##F9FBE7","#311B92","#004D40","#1A237E","#795548","#FF8A80"];
opt.legend[0].formatter= (name) =>{
let res = this.dataList.filter((v) => v.name === name);
return "{name| " + name + "}"+ " {val|" + res[0].value + "} ";
}
opt.series[0].data.forEach((it,idx)=>{
it.itemStyle.color=colors[idx];
});
this.showList=opt.series[0].data.map(it=>{
return {
name:it.name,
value:it.value,
color:it.itemStyle.color
};
})
if(opt.legend){
delete opt.legend
}
opt.series[0].center=["50%", "40%"];
opt.series[0].radius=["40%", "56%"];
opt.series[1].center=["50%", "40%"];
opt.series[1].radius=["40%", "40%"];
opt.title.padding=[50,0,0,224];
return opt;
},
initMe() {
this.projectInfo = this.$root.project || {};
this.dept = this.$root.dept || {};
this.loadData();
},
loadData: throttle(function () {
this.$api.quality.projectFunVerifyGroupByCheckType(this.dept?.id || 0,this.projectInfo?.id||0).then(d=>{
this.dataList=(d.data||[]).map(it=>{
return {
name:it.checkName,
value:it.id,
checkType:it.checkType
}
});
this.total=0;
this.dataList.forEach(it=>{
this.total+=it.value;
});
this.elKey++;
})
})
},
};
</script>
<style lang="less">
.fun-verify-group-check-type{
.project-overview-chart{
position: relative;
top: -10px;
}
.chart-gif.chart-overview-gif{
width:85px;
height: 85px;
left:182px;
top:28px !important;
}
.div-legend{
position: relative;
top:-60px;
font-size:12px;
padding:0px 10px;
display: flex;
flex-wrap: wrap;
.legend-item{
width:48%;
flex-direction: column;
line-height: 20px;
position: relative;
.item-no{
display: inline-block;
height:18px;
width: 18px;
text-align:center;
border-radius: 5px;
margin-right:5px;
}
.item-name{
display: inline-block;
position: relative;
top:-2px;
}
.item-value{
position:absolute;
right:10px;
font-size:12px;
font-weight: bold;
color: #63f8bc;
}
}
}
}
</style>

View File

@ -0,0 +1,320 @@
<template>
<MyDialog v-if="show" v-model="show" :width="'1200px'" height="680px" :class="'font-size-' + fontSize"
class="fun-verify-group-dlg">
<template slot="title">
<div style="display: flex; align-items: center;justify-content: space-between;">
<div :key="elKey" class="header-title">
工程功能检验
</div>
</div>
</template>
<div class="fun-main">
<div class="fun-nav">
<div v-for="(it, idx) in dataList" :key="idx" class="fun-nav-item"
:class="nav == it.checkType ? 'active' : ''" @click="doNav(it)">
{{ it.name }}({{ it.value }})
</div>
</div>
<div class="fun-list">
<div v-if="selFun.value == 0" class="div-no-data" style="margin-top:200px;">
<img src="images/nodata.png" style="width: 120px;">
<div style="text-align: center;font-size: 12px;color:#888;">暂无数据</div>
</div>
<template v-else>
<div class="fun-data-list">
<div v-for="(it, idx) in datas" :key="idx" class="fun-data-item">
<div class="data-row1">
<el-image style="width: 180px; height: 100px" :src="it.mainImage + '.min.jpg'"
:preview-src-list="it.images">
</el-image>
<div class="data-info">
<span class="data-state"
:class="it.checkResult ? it.checkResult == 1 ? 'is-ok' : 'is-fail' : 'is-progress'">
{{ it.checkResult ? it.checkResult == 1 ? '检验合格' : '检验不合格' : '检验进行中' }}
</span>
<div class="data-item">
<span class="data-label">项目名称:</span>
<el-popover placement="bottom" trigger="hover"
popper-class="engin-image-item-pop">
{{ it.projectName }}
<span slot="reference" class="data-text">{{ it.projectName }}</span>
</el-popover>
</div>
<div class="data-item">
<span class="data-label">总包单位:</span>
<el-popover placement="bottom" trigger="hover"
popper-class="engin-image-item-pop">
{{ it.deptName }}
<span slot="reference" class="data-text">{{ it.deptName }}</span>
</el-popover>
</div>
<div class="data-item">
<span class="data-label">检验标题:</span>
<el-popover placement="bottom" trigger="hover"
popper-class="engin-image-item-pop">
{{ it.checkName }}
<span slot="reference" class="data-text">{{ it.checkName }}</span>
</el-popover>
</div>
<div class="data-item date-time" style="margin-top:4px;">
<span class="data-label">检验时间:</span>
<span class="data-text">{{ it.checkDate }}</span>
</div>
</div>
</div>
<div class="data-detail">
<el-popover placement="bottom" trigger="hover" popper-class="engin-image-item-pop">
{{ it.checkName }}
<span slot="reference" class="state-content">
<span class="data-label">检验描述:</span>
<span class="data-text">{{ it.intro }}</span>
</span>
</el-popover>
<el-link v-if="it.checkFiles" class="link-download" type="primary" @click="downFiles(it)"></el-link>
</div>
</div>
</div>
<el-pagination layout="total,prev, pager, next" @current-change="handleCurrentChange" :total="total"
:page-size="size" :current-page.sync="index" class="bg-pagination"></el-pagination>
</template>
</div>
</div>
</MyDialog>
</template>
<script>
import MyDialog from "../components/MyDialog";
export default {
components: {
MyDialog,
},
data() {
return {
elKey: 0,
fontSize: 0,
show: false,
dataList: [],
nav: 0,
selFun: null,
deptId: 0,
projectId: 0,
total: 0,
size: 6,
index: 1,
datas: [],
};
},
mounted() { },
methods: {
downFiles(row){
row.checkFiles.split(",").forEach(item => {
this.$api.downFile("/jhapi" + item, {}, item.substring(item.lastIndexOf("/") + 1));
});
},
handledownload(it) {
window.open(it.url);
},
showDialog(opt) {
this.index = 1;
this.dataList = opt.dataList;
this.deptId = opt.deptId;
this.projectId = opt.projectId;
this.nav = this.dataList[0].checkType;
this.selFun = this.dataList[0];
this.show = true;
this.loadData();
},
doNav(o) {
this.selFun = o;
this.index = 1;
this.nav = o.checkType;
this.loadData();
},
handleCurrentChange(n) {
this.index = n;
this.loadData();
},
loadData() {
let postData = {
checkType: this.nav,
activeName: "all",
pageNum: this.index,
pageSize: this.size,
};
if (this.projectId && this.projectId > 0) {
postData.projectId = this.projectId;
}
if (this.deptId && this.deptId > 0) {
postData.projectDeptId = this.deptId;
}
this.$api.quality.listFunVerify(postData).then((d) => {
this.total = d.total || 0;
this.datas = (d.rows || []).map((it) => {
it.images = (it.imageUrls || it.mainImage || "")
.split(",")
.filter((it) => it);
return it;
});
});
},
},
};
</script>
<style lang="less">
.fun-verify-group-dlg {
.popup-project-introduction-min {
transform: translateY(150px);
}
.popup-project-introduction-details {
padding: 0px !important;
position: relative;
.quality-table {
padding: 0px !important;
}
.fun-main {
display: flex;
.fun-nav {
width: 300px;
min-width: 300px;
height: 585px;
border-right: solid 1px #dddddd55;
padding: 20px 10px;
.fun-nav-item {
line-height: 30px;
color: #ddddddba;
cursor: pointer;
padding-left: 20px;
&.active {
background: #36607d;
border-radius: 4px;
color: #63f8bc;
font-weight: bold;
}
}
}
.fun-list {
flex-grow: 1;
padding: 10px;
.fun-data-list {
.fun-data-item {
padding: 10px;
display: inline-block;
width: calc(50% - 20px);
font-size: 12px;
.data-row1 {
display: flex;
.el-image {
width: 150px !important;
height: 130px !important;
min-width: 150px !important;
}
.data-info {
padding-left: 8px;
flex-grow: 1;
}
}
.data-state {
display: inline-block;
padding: 0px 10px;
line-height: 24px;
margin-bottom: 4px;
&.is-ok {
background: #27771d6b;
color: #63f8bc;
}
&.is-fail {
background: #ff2d2d33;
color: #ff0505;
}
&.is-progress {
background: #034ef1a3;
color: #a8d6ed;
}
}
.data-item {
line-height: 20px;
color:#00aaff;
&.date-time{
color:#868b93;
}
.data-text.el-popover__reference {
white-space: nowrap;
text-overflow: ellipsis;
display: inline-block;
overflow: hidden;
max-width: 100%;
width: 100%;
}
span {
&:first-child {
display: inline-block;
width: 60px;
}
&:last-child {
display: inline-block;
width: calc(100% - 80px);
.el-popover__reference-wrapper {
display: inline-block;
width: 100%;
line-height: 20px;
position: relative;
top: 5px;
}
}
}
}
.data-detail{
margin-top:10px;
position: relative;
&>span{
width:100%;
.el-popover__reference-wrapper{
width:100%;
.state-content{
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 2;
overflow: hidden;
text-overflow: ellipsis;
height: 30px;
}
}
}
.link-download{
position: absolute;
right: 30px;
top: 0px;
font-size: 12px;
}
}
}
}
}
}
}
}
</style>

View File

@ -1,6 +1,8 @@
<template>
<div class="project-quality-checking">
<module-one-1-1 label="举牌验收">
<module-one-2-1 label="举牌验收" style="position: relative;">
<img src="images/icon2001.png" style="position: absolute;cursor: pointer;right: 12px;top: 12px;"
@click="doShowCheckingListDlg(showChart1?1:2)" v-if="prjs.length>1">
<div class="checking-row1" style="position: relative;height: 310px;overflow: hidden;">
<div class="checking-chart-nav">
<span class="chart-nv-item" @click="showChart1 = true"
@ -15,13 +17,15 @@
</enginChart>
</div>
</div>
</module-one-1-1>
<module-one-1-1 label="常规验收" class="scroll checking-row2" style="position: relative;">
<img src="images/icon2001.png" style="position: absolute;cursor: pointer;right: 12px;top: 12px;"
@click="doShowCheckingListDlg(1)" v-if="prjs.length>1">
<div class="div-nav">
<span class="nav-item" :class="showChart1?'active':''" >常规验收</span>
<span class="nav-item" :class="!showChart1?'active':''" >隐蔽验收</span>
</div>
<div v-show="showChart1" class="scroll checking-row2" style="position: relative;">
<div class="checking-group-nav warning-info-title" style="padding-left: 20px;">
<div class="nav-item" :class="nav1 == it.dictValue ? 'active' : ''"
@click="doQueryGroup(it.dictValue, 'a')" v-for="(it, idx) in dict1" :key="it.dictValue">{{
<div class="nav-item" :class="nav1 == it.dictValue ? 'active' : ''" style="font-size:14px;"
@click="doQueryGroup(it.dictValue, 'a')" v-for="(it) in dict1" :key="it.dictValue">{{
it.dictLabel }}</div>
</div>
<div v-if="(!projectInfo || projectInfo.id == 0)&& !isTypeBuser()">
@ -83,13 +87,11 @@
</div>
</div>
</div>
</module-one-1-1>
<module-one-1-1 label="隐蔽验收" class="scroll checking-row3" style="position: relative;">
<img src="images/icon2001.png" style="position: absolute;cursor: pointer;right: 12px;top: 12px;"
@click="doShowCheckingListDlg(2)" v-if="prjs.length>1">
</div>
<div v-show="!showChart1" class="scroll checking-row3" style="position: relative;">
<div class="checking-group-nav warning-info-title" style="padding-left: 20px;">
<div class="nav-item" :class="nav2 == it.dictValue ? 'active' : ''"
@click="doQueryGroup(it.dictValue, 'b')" v-for="(it, idx) in dict2" :key="it.dictValue">{{
@click="doQueryGroup(it.dictValue, 'b')" v-for="(it) in dict2" :key="it.dictValue">{{
it.dictLabel }}</div>
</div>
<div v-if="(!projectInfo || projectInfo.id == 0) && !isTypeBuser()">
@ -151,13 +153,15 @@
</div>
</div>
</div>
</module-one-1-1>
</div>
</module-one-2-1>
<showCheckingDlg ref="checkDlg"></showCheckingDlg>
<listDlg ref="listDlg"></listDlg>
</div>
</template>
<script>
import "../../components/module/module-one-2-1";
import debounce from "lodash.debounce";
import throttle from 'lodash.throttle'
import enginChart from '../engin/enginChart.vue'
@ -186,6 +190,7 @@ export default {
dataList1: [],
dataList2: [],
prjs:[],
showList:"1"
};
},
created() {
@ -461,6 +466,26 @@ export default {
}
}
.div-nav{
line-height: 30px;
padding:0px 10px;
position: relative;
top:-30px;
.nav-item{
display: inline-block;
color: #eee;
margin-right: 10px;
cursor: pointer;
&.active{
color:#fff;
font-weight: bold;
}
}
}
.checking-row2,.checking-row3{
position: relative;
top:-30px;
}
.problemmodify_list {
&.idle-list {
.el-table__body .el-table__row {

View File

@ -37,8 +37,8 @@ module.exports = defineConfig({
}
},
'/jhapi':{
target: `http://62.234.3.186/jhapi/`,
//target: `http://127.0.0.1:8090/jhapi/`,
//target: `http://62.234.3.186/jhapi/`,
target: `http://127.0.0.1:8090/jhapi/`,
//target: `http://szgc.jhncidg.com/jhapi/`,
changeOrigin: true,
pathRewrite: {