dev-login
姜玉琦 2023-08-28 00:00:37 +08:00
commit 10f8a30a26
12 changed files with 501 additions and 44 deletions

View File

@ -13,6 +13,7 @@ import journalism from './journalism/index'
import buildNode from './buildNode'
import projectChecking from './projectChecking/index'
import measure from './measure/index'
import materialSeal from './materialSeal/index'
import checkDetection from './checkDetection/index'
import video from './video/index'
import {axios} from '@/utils/request'
@ -32,6 +33,7 @@ export default {
buildNode,
projectChecking,
measure,
materialSeal,
checkDetection,
http:axios,
video

View File

@ -0,0 +1,13 @@
import request from '@/utils/request'
const selectTop20=(data)=> {
return request({
url: `bgscreen/materialSeal/selectTop20`,
method: 'post',
data:data
})
}
export default{
selectTop20
}

View File

@ -48,7 +48,10 @@ Vue.component("screen-header", {
<span>11~25</span>
</div>
</div>
<i class="set-fullscreen set-font-size" style="margin-left: 16px;position: absolute;top: 4px;right: 16px;" @click="toggleFullScreen">
<svg class="icon" v-if="!isFullScreen" style="width: 24px; vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3304"><path d="M145.066667 85.333333h153.6c25.6 0 42.666667-17.066667 42.666666-42.666666S324.266667 0 298.666667 0H34.133333C25.6 0 17.066667 8.533333 8.533333 17.066667 0 25.6 0 34.133333 0 42.666667v256c0 25.6 17.066667 42.666667 42.666667 42.666666s42.666667-17.066667 42.666666-42.666666V145.066667l230.4 230.4c17.066667 17.066667 42.666667 17.066667 59.733334 0 17.066667-17.066667 17.066667-42.666667 0-59.733334L145.066667 85.333333z m170.666666 563.2L162.133333 802.133333l-76.8 76.8V725.333333C85.333333 699.733333 68.266667 682.666667 42.666667 682.666667s-42.666667 17.066667-42.666667 42.666666v256c0 25.6 17.066667 42.666667 42.666667 42.666667h256c25.6 0 42.666667-17.066667 42.666666-42.666667s-17.066667-42.666667-42.666666-42.666666H145.066667l76.8-76.8 153.6-153.6c17.066667-17.066667 17.066667-42.666667 0-59.733334-17.066667-17.066667-42.666667-17.066667-59.733334 0z m665.6 34.133334c-25.6 0-42.666667 17.066667-42.666666 42.666666v153.6l-76.8-76.8-153.6-153.6c-17.066667-17.066667-42.666667-17.066667-59.733334 0-17.066667 17.066667-17.066667 42.666667 0 59.733334l153.6 153.6 76.8 76.8H725.333333c-25.6 0-42.666667 17.066667-42.666666 42.666666s17.066667 42.666667 42.666666 42.666667h256c25.6 0 42.666667-17.066667 42.666667-42.666667v-256c0-25.6-17.066667-42.666667-42.666667-42.666666z m0-682.666667h-256c-25.6 0-42.666667 17.066667-42.666666 42.666667s17.066667 42.666667 42.666666 42.666666h153.6l-76.8 76.8-153.6 153.6c-17.066667 17.066667-17.066667 42.666667 0 59.733334 17.066667 17.066667 42.666667 17.066667 59.733334 0l153.6-153.6 76.8-76.8v153.6c0 25.6 17.066667 42.666667 42.666666 42.666666s42.666667-17.066667 42.666667-42.666666v-256c0-25.6-17.066667-42.666667-42.666667-42.666667z" fill="" p-id="3305"></path></svg>
<svg class="icon" v-else style="width: 24px; vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3952"><path d="M384 597.333333h-256c-25.6 0-42.666667 17.066667-42.666667 42.666667s17.066667 42.666667 42.666667 42.666667h153.6L17.066667 947.2c-17.066667 17.066667-17.066667 42.666667 0 59.733333 17.066667 17.066667 42.666667 17.066667 59.733333 0L341.333333 742.4v153.6c0 25.6 17.066667 42.666667 42.666667 42.666667s42.666667-17.066667 42.666667-42.666667v-256c0-25.6-17.066667-42.666667-42.666667-42.666667z m358.4 85.333334h153.6c25.6 0 42.666667-17.066667 42.666667-42.666667s-17.066667-42.666667-42.666667-42.666667h-256c-25.6 0-42.666667 17.066667-42.666667 42.666667v256c0 25.6 17.066667 42.666667 42.666667 42.666667s42.666667-17.066667 42.666667-42.666667V742.4l264.533333 264.533333c17.066667 17.066667 42.666667 17.066667 59.733333 0 17.066667-17.066667 17.066667-42.666667 0-59.733333L742.4 682.666667zM640 426.666667h256c25.6 0 42.666667-17.066667 42.666667-42.666667s-17.066667-42.666667-42.666667-42.666667H742.4L1006.933333 76.8c17.066667-17.066667 17.066667-42.666667 0-59.733333-17.066667-17.066667-42.666667-17.066667-59.733333 0L682.666667 281.6V128c0-25.6-17.066667-42.666667-42.666667-42.666667s-42.666667 17.066667-42.666667 42.666667v256c0 25.6 17.066667 42.666667 42.666667 42.666667z m-256-341.333334c-25.6 0-42.666667 17.066667-42.666667 42.666667v153.6L76.8 8.533333C59.733333 0 25.6 0 8.533333 8.533333 0 25.6 0 59.733333 8.533333 76.8L281.6 341.333333H128c-25.6 0-42.666667 17.066667-42.666667 42.666667s17.066667 42.666667 42.666667 42.666667h256c25.6 0 42.666667-17.066667 42.666667-42.666667v-256c0-25.6-17.066667-42.666667-42.666667-42.666667z" p-id="3953"></path></svg>
</i>
</div>
`,
props: {
@ -77,6 +80,7 @@ Vue.component("screen-header", {
selDept:'',
localStorage1: JSON.parse(localStorage.getItem("data1")),
localStorage2: JSON.parse(localStorage.getItem("data2")),
isFullScreen:false
}
},
mounted(){
@ -94,6 +98,13 @@ Vue.component("screen-header", {
},
methods: {
toggleFullScreen(){
let el=document.body;
this.$toggleFullScreen(el);
setTimeout(()=>{
this.isFullScreen=document.fullscreenElement==el;
},400);
},
init(){
try{
this.localStorage1=JSON.parse(localStorage.getItem("data1"))

View File

@ -147,7 +147,8 @@ export default {
},
dataTable: [],
dicts: [],
checkStateDicts: []
checkStateDicts: [],
selDate:[]
};
},
@ -178,6 +179,12 @@ export default {
} else {
postData.checkState = n
}
if(this.selDate.length>0){
postData.startDate=this.$dt(this.selDate[0]).format("YYYY-MM-DD");
}
if(this.selDate.length>1){
postData.endDate=this.$dt(this.selDate[1]).format("YYYY-MM-DD");
}
this.$api.problemmodify.listSspProblemmodify(postData).then(d => {
this.dataTable = (d.data || []).map(it => {
if(it.updateTime){
@ -204,7 +211,8 @@ export default {
this.elKey++;
})
},
showDialog(row, infoType,roleType) {
showDialog(row, infoType,roleType,selDate) {
this.selDate=selDate;
this.row = row;
this.infoType = infoType;
this.roleType=roleType;
@ -222,11 +230,18 @@ export default {
});
this.show = true
this.doNav(0, true);
this.$api.problemmodify.groupByInfotypeCheckState({
let postData={
projectId: this.row.projectId,
infoType: this.infoType,
roleType:this.roleType
}).then(d => {
};
if(this.selDate.length>0){
postData.startDate=this.$dt(this.selDate[0]).format("YYYY-MM-DD");
}
if(this.selDate.length>1){
postData.endDate=this.$dt(this.selDate[1]).format("YYYY-MM-DD");
}
this.$api.problemmodify.groupByInfotypeCheckState(postData).then(d => {
for (let i = 0; i <= 5; i++) {
this.count["" + i] = 0;
}

View File

@ -190,7 +190,7 @@ export default {
it.existingProblem=objs[0].existingProblem||'';
}
return it;
})
}).sort((a,b)=>b.projectSchedule-a.projectSchedule);
})
},
@ -219,7 +219,7 @@ export default {
let nds=nodes.filter(item=>item.finish && item.projectId==it.id && findNodes.includes(item.lvl.substring(0,2)));
it.nodes=this.$api.buildNode.toTree(nds);
return it;
})
}).sort((a,b)=>b.projectSchedule-a.projectSchedule);
})
},
loadData4(n){
@ -228,7 +228,7 @@ export default {
it.projectName=it.surProject?.projectName||''
it.projectSchedule=it.surProject?.projectSchedule||'1'
return it;
});
}).sort((a,b)=>b.projectSchedule-a.projectSchedule);;
})
},
showDialog(n,cnts) {

View File

@ -12,6 +12,22 @@ Vue.prototype.$bus=new Vue();
Vue.prototype.$apiPath="/jhapi"
Vue.prototype.$dt=dayjs;
Vue.prototype.$tryToJson=tryToJson
Vue.prototype.$toggleFullScreen=(el)=>{
if(document.fullscreenElement==el){
let screen = document.cancelFullScreen || document.webkitCancelFullScreen || document.mozCancelFullScreen || document.exitFullScreen
if (typeof screen != "undefined" && screen) {
screen.call(document);
return;
}
}else{
let screen = el.requestFullScreen || el.webkitRequestFullScreen || el.mozRequestFullScreen || el.msRequestFullScreen
if (typeof screen != "undefined" && screen) {
screen.call(el);
return;
}
}
}
window.jhcaches={};
/*
Api.project.getInfo().then(d=>{

View File

@ -1,5 +1,5 @@
<template>
<MyDialog v-if="show" v-model="show" width="1600px" height="850px" class="progress-dlg3" :class="'font-size-' + fontSize">
<MyDialog v-if="show" v-model="show" width="1600px" height="850px" class="progress-dlg3" :class="('font-size-' + fontSize)">
<template slot="title">
<div style="display: flex; align-items: center;justify-content: space-between;">
<div style="font-size: 24px;font-weight: bold;">项目形象进度</div>
@ -48,6 +48,10 @@
fill="#fff" p-id="3687"></path>
</svg>
</i>
<i class="set-fullscreen set-font-size" style="margin-left: 16px;" @click="toggleFullScreen">
<svg class="icon" v-if="!isFullScreen" style="width: 24px; vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3304"><path d="M145.066667 85.333333h153.6c25.6 0 42.666667-17.066667 42.666666-42.666666S324.266667 0 298.666667 0H34.133333C25.6 0 17.066667 8.533333 8.533333 17.066667 0 25.6 0 34.133333 0 42.666667v256c0 25.6 17.066667 42.666667 42.666667 42.666666s42.666667-17.066667 42.666666-42.666666V145.066667l230.4 230.4c17.066667 17.066667 42.666667 17.066667 59.733334 0 17.066667-17.066667 17.066667-42.666667 0-59.733334L145.066667 85.333333z m170.666666 563.2L162.133333 802.133333l-76.8 76.8V725.333333C85.333333 699.733333 68.266667 682.666667 42.666667 682.666667s-42.666667 17.066667-42.666667 42.666666v256c0 25.6 17.066667 42.666667 42.666667 42.666667h256c25.6 0 42.666667-17.066667 42.666666-42.666667s-17.066667-42.666667-42.666666-42.666666H145.066667l76.8-76.8 153.6-153.6c17.066667-17.066667 17.066667-42.666667 0-59.733334-17.066667-17.066667-42.666667-17.066667-59.733334 0z m665.6 34.133334c-25.6 0-42.666667 17.066667-42.666666 42.666666v153.6l-76.8-76.8-153.6-153.6c-17.066667-17.066667-42.666667-17.066667-59.733334 0-17.066667 17.066667-17.066667 42.666667 0 59.733334l153.6 153.6 76.8 76.8H725.333333c-25.6 0-42.666667 17.066667-42.666666 42.666666s17.066667 42.666667 42.666666 42.666667h256c25.6 0 42.666667-17.066667 42.666667-42.666667v-256c0-25.6-17.066667-42.666667-42.666667-42.666666z m0-682.666667h-256c-25.6 0-42.666667 17.066667-42.666666 42.666667s17.066667 42.666667 42.666666 42.666666h153.6l-76.8 76.8-153.6 153.6c-17.066667 17.066667-17.066667 42.666667 0 59.733334 17.066667 17.066667 42.666667 17.066667 59.733334 0l153.6-153.6 76.8-76.8v153.6c0 25.6 17.066667 42.666667 42.666666 42.666666s42.666667-17.066667 42.666667-42.666666v-256c0-25.6-17.066667-42.666667-42.666667-42.666667z" fill="" p-id="3305"></path></svg>
<svg class="icon" v-else style="width: 24px; vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3952"><path d="M384 597.333333h-256c-25.6 0-42.666667 17.066667-42.666667 42.666667s17.066667 42.666667 42.666667 42.666667h153.6L17.066667 947.2c-17.066667 17.066667-17.066667 42.666667 0 59.733333 17.066667 17.066667 42.666667 17.066667 59.733333 0L341.333333 742.4v153.6c0 25.6 17.066667 42.666667 42.666667 42.666667s42.666667-17.066667 42.666667-42.666667v-256c0-25.6-17.066667-42.666667-42.666667-42.666667z m358.4 85.333334h153.6c25.6 0 42.666667-17.066667 42.666667-42.666667s-17.066667-42.666667-42.666667-42.666667h-256c-25.6 0-42.666667 17.066667-42.666667 42.666667v256c0 25.6 17.066667 42.666667 42.666667 42.666667s42.666667-17.066667 42.666667-42.666667V742.4l264.533333 264.533333c17.066667 17.066667 42.666667 17.066667 59.733333 0 17.066667-17.066667 17.066667-42.666667 0-59.733333L742.4 682.666667zM640 426.666667h256c25.6 0 42.666667-17.066667 42.666667-42.666667s-17.066667-42.666667-42.666667-42.666667H742.4L1006.933333 76.8c17.066667-17.066667 17.066667-42.666667 0-59.733333-17.066667-17.066667-42.666667-17.066667-59.733333 0L682.666667 281.6V128c0-25.6-17.066667-42.666667-42.666667-42.666667s-42.666667 17.066667-42.666667 42.666667v256c0 25.6 17.066667 42.666667 42.666667 42.666667z m-256-341.333334c-25.6 0-42.666667 17.066667-42.666667 42.666667v153.6L76.8 8.533333C59.733333 0 25.6 0 8.533333 8.533333 0 25.6 0 59.733333 8.533333 76.8L281.6 341.333333H128c-25.6 0-42.666667 17.066667-42.666667 42.666667s17.066667 42.666667 42.666667 42.666667h256c25.6 0 42.666667-17.066667 42.666667-42.666667v-256c0-25.6-17.066667-42.666667-42.666667-42.666667z" p-id="3953"></path></svg>
</i>
</div>
<div class="modify-btn btn-left">
<svg class="my-svg-icon-aaa" @click="modifyLeftBtn"
@ -67,9 +71,9 @@
p-id="4998"></path>
</svg>
</div>
<div style="display: block;height: 782px;">
<div class="prj-info-list" v-if="scheduleInfo && JSON.stringify(scheduleInfo) != '{}'">
<div class="col-1" style="width:500px;padding-top:12px;display: inline-block;margin-top: 120px;">
<div style="display: block;" :class="isFullScreen?'is-fullscreen':''" class="main-content">
<div class="prj-info-list" v-if="scheduleInfo && JSON.stringify(scheduleInfo) != '{}'" style="height:100%;">
<div class="col-1" style="width:40%;padding-top:12px;display: inline-flex;align-items: center;">
<el-carousel height="500px" v-if="scheduleInfo && scheduleInfo.images && scheduleInfo.images.length > 0">
<el-carousel-item v-for="item in scheduleInfo.images" :key="item">
<div style="width: 100%;display: flex;align-items: center;justify-content: center;height: 500px;">
@ -82,8 +86,8 @@
<div style="text-align: center;">暂无图片</div>
</div>
</div>
<div class="col-2 scroll"
style="flex-grow: 1;max-height: 750px;min-height:750px;overflow: auto;width: calc(100% - 504px);margin-top:8px;display: inline-flex;align-items: center;">
<div class="col-2 scroll info-left-right"
style="flex-grow: 1;max-height: 100%;min-height:100%;overflow: auto;width: 60%;margin-top:8px;display: inline-flex;align-items: center;">
<div>
<template v-if="scheduleInfo.plannedNode">
<div><img src="images/title_icon.png"><span class="sp-lbl">计划节点</span></div>
@ -156,7 +160,8 @@ export default {
scheduleInfo: {},
localStorage2: {},
showSel2: false,
prjs: []
prjs: [],
isFullScreen:false
};
},
@ -169,10 +174,17 @@ export default {
// this.$api.project.getProgressProjects().then(d => {
// this.prjs = d.data || [];
// window.jhcaches.progressProjects = this.prjs;
// });
// });
},
methods: {
toggleFullScreen(){
let el=this.$el.querySelector(".popup-project-introduction-min");
this.$toggleFullScreen(el);
setTimeout(()=>{
this.isFullScreen=document.fullscreenElement==el;
},400);
},
findItem() {
let tmps = this.prjs.filter(d => d.projectName == this.dept2);
if (tmps.length > 0) {
@ -266,6 +278,11 @@ export default {
line-height: 64px;
}
}
.prj-info-list{
.info-left-right{
align-items: baseline !important;
}
}
}
}
@ -279,6 +296,11 @@ export default {
line-height: 48px;
}
}
.prj-info-list{
.info-left-right{
align-items: baseline !important;
}
}
}
}
@ -346,6 +368,15 @@ export default {
line-height: 30px;
}
}
.main-content{
height: 782px;
&.is-fullscreen{
height: calc(100vh - 80px);
}
.el-carousel{
width:100%;
}
}
}
.head-title-select {

View File

@ -63,10 +63,10 @@
</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>
@ -135,13 +135,28 @@
</div>
</div>
</module-one-1-1>
<module-one-1-1 label="机械设备管理">
<div class="nav-info" style="padding:20px 20px 12px">
<span class="nav-label">设备总数:</span>
<span class="nav-num">100</span>
<span class="nav-unit"></span>
</div>
<rank-chart :data="mechanicalData" :showval="true" :height="224"></rank-chart>
<module-one-1-1 label="材料封样">
<div class="material-seal-list scroll" :key="'ms'+materialSealEl" style="max-height: 284px;overflow-y: auto;">
<div v-for="(it,idx) in materialSealList" :key="idx" class="material-seal-item">
<div class="material-seal-left">
<el-image :src="it.signFiles+'.min.jpg'" :preview-src-list="[it.signFiles]"></el-image>
</div>
<div class="material-seal-right" @click="showMaterialSeal(it)">
<div><img src="images/title_icon.png"><span class="sp-lbl">封样名称</span></div>
<div class="div-text ">
<div>{{ it.materialName }}</div>
</div>
<div><img src="images/title_icon.png"><span class="sp-lbl">使用部位</span></div>
<div class="div-text ">
<div>{{ it.usePosition }}</div>
</div>
<div><img src="images/title_icon.png"><span class="sp-lbl">封样日期</span></div>
<div class="div-text ">
<div>{{ it.sealDate }}</div>
</div>
</div>
</div>
</div>
</module-one-1-1>
<module-one-1-1 label="实测实量" :key="elCheck">
<div class="warning-info-title measured-data-list" style="padding-left: 20px;">
@ -203,6 +218,7 @@
</div>
<ProblemmodifyDetail ref="probDlg"></ProblemmodifyDetail>
<showCheckingDlg ref="checkDlg"></showCheckingDlg>
<materialSealDetialDlg ref="msDlg"></materialSealDetialDlg>
</div>
</template>
@ -218,14 +234,16 @@ import '../components/idle-list-chart'
import '../components/people-number'
import ProblemmodifyDetail from './components/ProblemmodifyDetail.vue'
import showCheckingDlg from './quality/showCheckingDlg.vue'
import materialSealDetialDlg from './quality/materialSealDetialDlg.vue'
export default {
components:{
ProblemmodifyDetail,showCheckingDlg
ProblemmodifyDetail,showCheckingDlg,materialSealDetialDlg
},
data() {
return {
selDate:'',
elKey:0,
materialSealEl:0,
elSummaryKey:0,
elSummaryPrjKey:0,
elCheck:0,
@ -238,14 +256,7 @@ export default {
fontSize:'12px',
height:'32px'
},
samplingNav:1,
//
mechanicalData:[
{value: '5',prop: '62.5', text: '履带挖掘机'},
{value: '1',prop: '12.5', text: '洒水车'},
{value: '1',prop: '12.5', text: '轮胎装载机'},
{value: 1,prop: '12.5', text: '小轿车'},
],
samplingNav:1,
measuredNav:0,
measuredTotal:0,
measuredText:" 全部",
@ -313,26 +324,47 @@ export default {
}
}]
},
prjs:[]
}
},
created() {
this.init()
},
mounted() {
this.$bus.$on("loadProjects", prjs => {
this.prjs = prjs;
});
this.$bus.$on("projectChange", res => {
this.projectInfo=res;
this.doDeptChane();
this.checkDetection(1);
this.doMeasuredNav(1,'混泥土工程')
this.selectTop20materialSeal();
});
this.$bus.$on("deptChange",dept=>{
this.dept=dept;
this.doDeptChane();
this.checkDetection(1);
this.doMeasuredNav(1,'混泥土工程')
this.selectTop20materialSeal();
});
},
methods: {
showMaterialSeal(it){
this.$refs.msDlg.showDialog(it);
},
selectTop20materialSeal(){
let postData={};
if(this.projectInfo?.id||0==0){
postData.deptId=this.dept?.id||0;
}else{
postData.projectId=this.projectInfo.id;
}
this.$api.materialSeal.selectTop20(postData).then(d=>{
this.materialSealList=d.data||[];
this.materialSealEl++;
});
},
doShowChecking(it){
this.$refs.checkDlg.showDialog(it);
},
@ -345,9 +377,9 @@ export default {
checkType:""+n
};
if(this.projectInfo?.id||0==0){
postData.deptId=this.dept.id;
postData.deptId=this.dept?.id||0;
}else{
postData.projectId=this.projectInfo.id;
postData.projectId=this.projectInfo?.id||0;
}
this.$api.checkDetection.groupByCheckType(postData).then(d=>{
let datas=d.data||[];
@ -365,7 +397,7 @@ export default {
})
},
doProbleRowClick(a,b,c){
this.$refs.probDlg.showDialog(a,1,this.safeNav);
this.$refs.probDlg.showDialog(a,1,this.safeNav,this.selDate);
},
fmt(n){
n=""+n;
@ -428,7 +460,7 @@ export default {
} else {
it.prop = (it.value * 100.0 / this.summaryPrjTotal).toFixed(1);
}
it.rate = (it.checkState * 100.0 / it.value).toFixed(1);
it.rate =(it.value==0?0:it.isDel * 100.0 / it.value).toFixed(1);
})
this.elSummaryPrjKey++;
});
@ -699,5 +731,37 @@ export default {
padding:0px 8px;
}
}
.material-seal-list{
.material-seal-item{
padding:8px;
display: flex;
border-bottom: solid 1px #fff;
box-shadow: inset 7px 0px 11px 5px rgb(36 131 167 / 70%);
&:last-child{
border-bottom: none;
}
.material-seal-left{
width:40%;
}
.material-seal-right{
width:60%;
padding-left:12px;
line-height: 24px;
img{
width: 8px;
position: relative;;
top:3px;
}
.sp-lbl{
color: aquamarine;
white-space: nowrap;
}
.div-text{
margin-left:24px;
}
}
}
}
}
</style>

View File

@ -64,10 +64,9 @@
</el-table-column>
<el-table-column prop="id" label="整改率">
<template slot-scope="scope">
<!--{{scope.row.isDel}}/{{ scope.row.value }}={{scope.row.rate}}-->
<idle-list-chart :prop="Number(scope.row.rate)"
color="#6ab9fe"></idle-list-chart>
</template>
</el-table-column>
</el-table>
@ -407,7 +406,7 @@ export default {
this.$refs.insDlg.showDialog(this.projects, this.projectInfo,row)
},
doProbleRowClick(a,b,c){
this.$refs.probDlg.showDialog(a,0,this.safeNav);
this.$refs.probDlg.showDialog(a,0,this.safeNav,this.selDate);
},
doSpecialRowClick(row){
row.title = row.projectName+"特种作业人员清单";
@ -556,7 +555,7 @@ export default {
} else {
it.prop = (it.value * 100.0 / this.summaryPrjTotal).toFixed(1);
}
it.rate = (it.checkState * 100.0 / it.value).toFixed(1);
it.rate =(it.value==0?0:it.isDel * 100.0 / it.value).toFixed(1);
})
this.elSummaryPrjKey++;
})

View File

@ -0,0 +1,303 @@
<template>
<MyDialog v-if="show" v-model="show" :width="fontSize == 2 ? '1000px' : '1000px'" height="600px"
:class="'font-size-' + fontSize" class="material-seal-detial-dlg">
<template slot="title">
<div style="display: flex; align-items: center;justify-content: space-between;">
<div :key="elKey" class="header-title">
{{ row.projectName }} - 材料封样详情
</div>
</div>
</template>
<div class="font-size-tools">
<i class="set-font-size font-size2" @click="fontSize = 2" :class="fontSize == 2 ? 'active' : ''">
<svg class="icon svg-icon"
style="width: 32px !important;height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;"
viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3686">
<path
d="M839 875H735.3l-74.1-198.7H358.6L288.7 875H185l276.8-726h100.4L839 875zM632.1 594.3L522.3 292.4c-3.4-9.7-7.2-26.6-11.3-50.6h-2.3c-3.4 21.9-7.4 38.7-11.7 50.6L388.1 594.3h244z"
fill="#fff" p-id="3687"></path>
</svg>
</i>
<i class="set-font-size font-size1" @click="fontSize = 1" :class="fontSize == 1 ? 'active' : ''">
<svg class="icon svg-icon"
style="width: 32px !important;height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;"
viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3686">
<path
d="M839 875H735.3l-74.1-198.7H358.6L288.7 875H185l276.8-726h100.4L839 875zM632.1 594.3L522.3 292.4c-3.4-9.7-7.2-26.6-11.3-50.6h-2.3c-3.4 21.9-7.4 38.7-11.7 50.6L388.1 594.3h244z"
fill="#fff" p-id="3687"></path>
</svg>
</i>
<i class="set-font-size font-size0" @click="fontSize = 0" :class="fontSize == 0 ? 'active' : ''">
<svg class="icon svg-icon"
style="width: 32px !important;height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;"
viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3686">
<path
d="M839 875H735.3l-74.1-198.7H358.6L288.7 875H185l276.8-726h100.4L839 875zM632.1 594.3L522.3 292.4c-3.4-9.7-7.2-26.6-11.3-50.6h-2.3c-3.4 21.9-7.4 38.7-11.7 50.6L388.1 594.3h244z"
fill="#fff" p-id="3687"></path>
</svg>
</i>
</div>
<div class="main-content scroll" style="max-height: 515px;overflow-y: auto;display: flex;">
<div class="data-img" style="width: 50%;">
<el-carousel height="500px" v-if="images && images.length > 0">
<el-carousel-item v-for="item in images" :key="item">
<div style="width: 100%;display: flex;align-items: center;justify-content: center;height: 500px;">
<el-image :src="item" style="width:100%" :preview-src-list="images" />
</div>
</el-carousel-item>
</el-carousel>
</div>
<div class="data-content" style="width: 50%;">
<div><img src="images/title_icon.png"><span class="sp-lbl">封样名称</span></div>
<div class="div-text ">
<div>{{ row.materialName }}</div>
</div>
<div><img src="images/title_icon.png"><span class="sp-lbl">使用部位</span></div>
<div class="div-text ">
<div>{{ row.usePosition }}</div>
</div>
<div><img src="images/title_icon.png"><span class="sp-lbl">指定品牌</span></div>
<div class="div-text ">
<div>{{ row.contractBrand }}</div>
</div>
<div><img src="images/title_icon.png"><span class="sp-lbl">拟用品牌</span></div>
<div class="div-text ">
<div>{{ row.useBrand }}</div>
</div>
<div><img src="images/title_icon.png"><span class="sp-lbl">封样日期</span></div>
<div class="div-text ">
<div>{{ row.sealDate }}</div>
</div>
<div><img src="images/title_icon.png"><span class="sp-lbl">会签单</span></div>
<div class="div-text ">
<div>
<div class="file-item" v-for="(it, idx) in signFiles" :key="idx">
<span>{{ it.name }}</span>
<el-button size="mini" type="text" icon="el-icon-download"
@click="handledownload(it)">下载</el-button>
</div>
</div>
</div>
<div><img src="images/title_icon.png"><span class="sp-lbl">变更单</span></div>
<div class="div-text ">
<div>
<div class="file-item" v-for="(it, idx) in alterationFiles" :key="idx">
<span>{{ it.name }}</span>
<el-button size="mini" type="text" icon="el-icon-download"
@click="handledownload(it)">下载</el-button>
</div>
</div>
</div>
</div>
</div>
</MyDialog>
</template>
<script>
import MyDialog from '../components/MyDialog'
export default {
components: {
MyDialog
},
data() {
return {
elKey: 0,
fontSize: 0,
show: false,
row: null,
images: [],
signFiles: [],
alterationFiles: []
};
},
mounted() {
},
methods: {
handledownload(it) {
window.open(it.url)
},
showDialog(row) {
this.row = row;
this.images = this.getBigProfileImage(row);
this.signFiles = this.getFiles(row.signFiles);
this.alterationFiles = this.getFiles(row.alterationFiles);
this.show = true;
},
getFiles(urls) {
if (!urls) {
return [];
}
return urls.split(",").filter(d => d).map(d => {
let name = d.split("/").pop();
return {
url: d,
name: name
}
});
},
getBigProfileImage(it) {
if (it.imageUrls) {
let tmps = it.imageUrls.split(",").filter(d => d).map(it => {
return it;
})
if (tmps.length > 0) {
return tmps;
}
}
if (it.mainImage && it.mainImage.trim()) {
return [it.mainImage];
}
return [];
},
},
};
</script>
<style lang="less">
.material-seal-detial-dlg {
.popup-project-introduction-min {
transform: translateY(200px);
}
&.font-size-2 {
.header-title {
font-size: 28px;
}
.popup-project-introduction-details {
.main-content {
align-items: start;
font-size: 28px;
line-height: 64px;
.data-content {
line-height: 48px;
.div-text {
margin-left: 48px;
}
img {
top: 0px;
}
.el-button--mini {
font-size: 32px;
}
}
.head-title-tab {
.head-nav {
padding: 12px 36px;
}
}
}
}
}
&.font-size-1 {
.header-title {
font-size: 24px;
}
.popup-project-introduction-details {
.main-content {
font-size: 24px;
line-height: 28px;
.data-content {
line-height: 36px;
.div-text {
margin-left: 36px;
}
.el-button--mini {
font-size: 24px;
}
}
.head-title-tab {
.head-nav {
padding: 12px 36px;
}
}
}
}
}
.popup-project-introduction-details {
padding: 0px !important;
position: relative;
.quality-table {
padding: 0px !important;
}
.font-size-tools {
position: absolute;
top: -40px;
right: 200px;
}
}
.main-content {
padding-top: 20px;
align-items: center;
.data-content {
padding-left: 24px;
line-height: 32px;
.sp-lbl {
color: aquamarine;
white-space: nowrap;
}
.div-text {
margin-left: 24px;
word-break: break-all;
}
img {
position: relative;
top: 3px;
width: 10px;
}
}
}
.head-title-tab {
padding-top: 12px;
display: block;
width: 100%;
}
}</style>

View File

@ -204,6 +204,9 @@ export default {
border-bottom: solid 1px #fff;
padding: 12px 0px 12px 20px;
box-shadow: inset 7px 0px 11px 5px rgb(36 131 167 / 70%);
&:last-child{
border-bottom: none;
}
.data-table{
border-collapse:collapse;
td{

View File

@ -16,8 +16,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/`,
changeOrigin: true,
pathRewrite: {
'^/jhapi':'/'