Merge branch 'dev' of http://62.234.3.186:3000/sxyanzhu/jhbigscreen into dev
# Conflicts: # src/api/index.jsdev
commit
158619e907
|
@ -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;
|
||||
|
|
|
@ -82,6 +82,10 @@
|
|||
document.getElementById("divTest").style.display="block";
|
||||
}
|
||||
},400);
|
||||
|
||||
setTimeout(()=>{
|
||||
document.getElementById("divTest").remove();
|
||||
},60*1000);
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -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
|
||||
}
|
|
@ -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
|
||||
}
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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||{};
|
||||
|
|
|
@ -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;
|
||||
})
|
||||
|
||||
|
|
|
@ -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]);
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -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>
|
|
@ -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>
|
|
@ -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 {
|
||||
|
|
|
@ -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: {
|
||||
|
|
Loading…
Reference in New Issue