update code

dev-login
haha 2023-08-10 23:36:55 +08:00
parent c3162b891d
commit 959fae1b74
6 changed files with 345 additions and 85 deletions

View File

@ -13,8 +13,17 @@ const getProjectBuildNode=projectId=>{
method: 'get'
})
}
const getProgressProjects=()=>{
return request({
url:`bgscreen/project/getProgressProjects`,
method: 'get'
})
};
export default{
findProjectByDept,
getProjectBuildNode
getProjectBuildNode,
getProgressProjects
}

View File

@ -15,7 +15,7 @@ Vue.component("screen-header", {
<div :class="nav==4?'head-nav active':'head-nav'" @click="pageJump(4,'projectQuality.html','projectQuality.html')">质量管理</div>
<div :class="nav==5?'head-nav active':'head-nav'" @click="pageJump(5,'projectProgress.html','projectProgress.html')">进度管理</div>
<div :class="nav==6?'head-nav active':'head-nav'" @click="pageJump(6,'projectVideo.html','projectVideo.html')">视频管理</div>
<div :class="nav==7?'head-nav active':'head-nav'" @click="pageJump(7)">技术管理</div>
<div :class="nav==7?'head-nav active':'head-nav'" @click="pageJump(7)">工程管理</div>
</div>
<div class="head-title-select" @mouseleave="hideScreenUlSel1" v-if="localStorage1">
<div class="head-select">

View File

@ -1,6 +1,6 @@
<template>
<MyDialog v-if="show" v-model="show" width="1600px" ref="dlg">
<MyDialog v-if="show" v-model="show" width="1600px" height="850px" ref="dlg" class="index-dlg3" :class="'font-size-'+fontSize">
<template slot="title">
<div class="warning-info-title" style="padding-left: 20px;">
<div :class="nav == 0 ? 'active' : ''" class="nav-item" @click="toggleNav(0)"></div>
@ -8,72 +8,138 @@
<div :class="nav == 2 ? 'active' : ''" class="nav-item" @click="toggleNav(2)"></div>
</div>
</template>
<h1 v-if="1==2">020.xlsx</h1>
<el-table v-show="nav == 0" :data="tableData1" class="mytable" height="500" style="width: 100%;background: transparent;">
<el-table-column prop="prj" label="项目名称" width="300" class-name="text-left"> </el-table-column>
<el-table-column prop="node" label="目前状态" width="100"></el-table-column>
<el-table-column prop="days" label="三季度节点任务" width="160" class-name="text-left">
<template slot-scope="scope">
<div class="text-more-2" style="color:#01A9FF;font-size: 12px;" :title="scope.row.node">{{ scope.row.days}}</div>
</template>
</el-table-column>
<el-table-column prop="date" label="目前进展" class-name="text-left">
<template slot-scope="scope">
<div class="text-more-2" :title="scope.row.date">{{ scope.row.date }}</div>
</template>
</el-table-column>
<el-table-column prop="porgress" label="滞后事项" width="200" class-name="text-left">
<template slot-scope="scope">
<div class="text-more-2" :title="scope.row.porgress">{{ scope.row.porgress }}</div>
</template>
</el-table-column>
<el-table-column prop="question" label="存在问题" width="200" class-name="text-left">
<template slot-scope="scope">
<div class="text-more-2" :title="scope.row.question">{{ scope.row.question }}</div>
</template>
</el-table-column>
</el-table>
<div class="font-size-tools">
<svg class="icon svg-icon" @click="fontSize = 2" :class="fontSize==2?'active':''"
style="width: 1.287109375em;height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;"
viewBox="0 0 1318 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1675">
<path
d="M741.96894493 895.86428833l-89.12883988-217.48854506H317.69440381L232.08582869 895.86428833H164.38571167L446.0422962 200.63571166h74.87058778l288.82705529 695.22857666z m-402.82219204-267.39833244h292.3000683l-146.17366039-388.64663073zM737.68083754 513.40765239h321.91517757v42.12504211H737.68083754z"
fill="" p-id="1676"></path>
<path d="M916.65910814 373.51849105v321.91517757h-42.1250421V373.51849105z" fill="" p-id="1677"></path>
</svg>
<svg class="icon svg-icon" :class="fontSize==1?'active':''" @click="fontSize = 1" 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="#727272" p-id="3687"></path>
</svg>
<svg class="icon svg-icon" @click="fontSize = 0" :class="fontSize==0?'active':''"
style="width: 1.287109375em;height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;"
viewBox="0 0 1318 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1691">
<path
d="M741.96894493 899.61428833l-89.12883989-217.48854506H317.69440381L232.08582869 899.61428833H164.38571167L446.0422962 204.38571166h74.87058778l288.8270553 695.22857666z m-402.82219204-267.39833244h292.3000683l-146.17366039-388.64663073zM737.68083754 550.0449541h321.91517757v42.12504212H737.68083754z"
fill="" p-id="1692"></path>
</svg>
</div>
<el-table v-show="nav == 1" :data="tableData2" class="mytable" height="500" style="width: 100%;background: transparent;">
<el-table-column prop="prj" label="项目名称" class-name="text-left"> </el-table-column>
<el-table-column prop="node" label="项目状态" width="150" >
<template slot-scope="scope">
<span style="color:#01A9FF;font-size: 12px;">{{ scope.row.node }}</span>
</template>
</el-table-column>
<el-table-column prop="days" label="责任主体">
<template slot-scope="scope">
<span>{{ scope.row.days }}</span>
</template>
</el-table-column>
<el-table-column prop="date" label="三季度节点任务"></el-table-column>
<el-table-column prop="porgress" label="目前工作进展"></el-table-column>
<el-table-column prop="question" label="目前存在问题" class-name="text-left"></el-table-column>
</el-table>
<div class="col-2 scroll" style="max-height: 750px;overflow: auto;padding: 12px;">
<div v-show="nav == 0" v-for="(it, idx) in tableData1" class="data-item">
<el-row class="data-row" >
<el-col :span="12" style="display: flex;">
<img src="images/title_icon.png"><span class="sp-lbl sp-lbl2">项目名称:</span>
<div class="div-text">{{ it.prj }}</div>
</el-col>
<el-table v-show="nav == 2" :data="tableData3" class="mytable" height="500" style="width: 100%;background: transparent;"
ref="fbsubordinateUnit">
<el-col :span="12" style="display: flex;">
<img src="images/title_icon.png"><span class="sp-lbl">目前状态:</span>
<div class="div-text" :class="getState(it.node)">{{ it.node }}</div>
</el-col>
</el-row>
<div class="data-row">
<img src="images/title_icon.png"><span class="sp-lbl">三季度节点任务:</span>
<div class="div-text">
<div class="text-more-2" style="color:#01A9FF;" :title="it.days">{{ it.days}}</div>
</div>
</div>
<div class="data-row">
<img src="images/title_icon.png"><span class="sp-lbl">目前进展:</span>
<div class="div-text">{{ it.date }}</div>
</div>
<el-row class="data-row" >
<el-col :span="12" style="display: flex;">
<img src="images/title_icon.png"><span class="sp-lbl sp-lbl2">滞后事项:</span>
<div class="div-text">{{ it.porgress }}</div>
</el-col>
<el-col :span="12" style="display: flex;">
<img src="images/title_icon.png"><span class="sp-lbl sp-lbl2">存在问题:</span>
<div class="div-text">{{ it.question }}</div>
</el-col>
</el-row>
</div>
<div v-show="nav == 1" v-for="(it, idx) in tableData2" class="data-item">
<el-row class="data-row" >
<el-col :span="12" style="display: flex;">
<img src="images/title_icon.png"><span class="sp-lbl sp-lbl2">项目名称:</span>
<div class="div-text">{{ it.prj }}</div>
</el-col>
<el-table-column prop="prj" label="项目名称"> </el-table-column>
<el-table-column prop="node" label="项目状态" width="150" class-name="text-left">
<template slot-scope="scope">
<span style="color:#01A9FF;font-size: 12px;">{{ scope.row.node }}</span>
</template>
</el-table-column>
<el-table-column prop="days" label="责任主体">
<template slot-scope="scope">
<span style="color:red">{{ scope.row.days }}</span>
</template>
</el-table-column>
<el-table-column prop="date" label="三季度节点任务"></el-table-column>
<el-table-column prop="porgress" label="目前工作进展"></el-table-column>
<el-table-column prop="question" label="目前存在问题"></el-table-column>
</el-table>
<el-col :span="6" style="display: flex;">
<img src="images/title_icon.png"><span class="sp-lbl">目前状态:</span>
<div class="div-text" :class="getState(it.node)">{{ it.node }}</div>
</el-col>
<el-col :span="6" style="display: flex;">
<img src="images/title_icon.png"><span class="sp-lbl">责任主体:</span>
<div class="div-text" >{{ it.days }}</div>
</el-col>
</el-row>
<div class="data-row">
<img src="images/title_icon.png"><span class="sp-lbl">三季度节点任务:</span>
<div class="div-text">
<div class="text-more-2" style="color:#01A9FF;" :title="it.date">{{ it.date}}</div>
</div>
</div>
<div class="data-row">
<img src="images/title_icon.png"><span class="sp-lbl">目前进展:</span>
<div class="div-text">{{ it.porgress }}</div>
</div>
<div class="data-row">
<img src="images/title_icon.png"><span class="sp-lbl">目前存在问题:</span>
<div class="div-text">{{ it.question }}</div>
</div>
</div>
<div v-show="nav == 2" v-for="(it, idx) in tableData3" class="data-item">
<el-row class="data-row" >
<el-col :span="12" style="display: flex;">
<img src="images/title_icon.png"><span class="sp-lbl sp-lbl2">项目名称:</span>
<div class="div-text">{{ it.prj }}</div>
</el-col>
<el-col :span="6" style="display: flex;">
<img src="images/title_icon.png"><span class="sp-lbl">目前状态:</span>
<div class="div-text" :class="getState(it.node)">{{ it.node }}</div>
</el-col>
<el-col :span="6" style="display: flex;">
<img src="images/title_icon.png"><span class="sp-lbl">责任主体:</span>
<div class="div-text" >{{ it.days }}</div>
</el-col>
</el-row>
<div class="data-row">
<img src="images/title_icon.png"><span class="sp-lbl">三季度节点任务:</span>
<div class="div-text">
<div class="text-more-2" style="color:#01A9FF;" :title="it.date">{{ it.date}}</div>
</div>
</div>
<div class="data-row">
<img src="images/title_icon.png"><span class="sp-lbl">目前进展:</span>
<div class="div-text">{{ it.porgress }}</div>
</div>
<div class="data-row">
<img src="images/title_icon.png"><span class="sp-lbl">目前存在问题:</span>
<div class="div-text">{{ it.question }}</div>
</div>
</div>
<div v-show="nav == 2" v-if="tableData1.length==0" style="text-align: center;margin-top:200px;">
<img src="images/nodata.png" style="width: 240px;">
<div style="text-align: center;">暂无数据</div>
</div>
<div v-show="nav == 2" v-if="tableData2.length==0" style="text-align: center;margin-top:200px;">
<img src="images/nodata.png" style="width: 240px;">
<div style="text-align: center;">暂无数据</div>
</div>
<div v-show="nav == 2" v-if="tableData3.length==0" style="text-align: center;margin-top:200px;">
<img src="images/nodata.png" style="width: 240px;">
<div style="text-align: center;">暂无数据</div>
</div>
</div>
</MyDialog>
</template>
@ -88,6 +154,7 @@ export default {
return {
nav: 0,
show: false,
fontSize:0,
tableData1: [],
tableData2: [],
tableData3: [],
@ -180,6 +247,9 @@ export default {
},
methods: {
getState(s){
return 'state-'+['','正常','滞后'].indexOf(s);
},
toggleNav(n) {
this.nav = n;
},
@ -207,4 +277,147 @@ export default {
color: #6de9f7;
}
}
}</style>
}</style>
<style lang="less">
.my-dialog.index-dlg3 {
&.font-size-2 {
.popup-project-introduction-details {
.col-2 {
.font-size-tools {
top:-55px;
}
font-size: 32px;
line-height: 64px;
.div-text {
line-height: 64px;
}
.sp-lbl {
width: 140px;
&.sp-lbl2 {
width: 218px;
}
}
img {
width: 32px;
height: 32px;
top: 16px;
}
.data-row {
line-height: 64px;
}
}
}
}
&.font-size-1 {
.popup-project-introduction-details {
.col-2 {
.font-size-tools {
top:-46px;
}
font-size: 24px;
line-height: 48px;
.div-text {
line-height: 48px;
}
.sp-lbl {
width: 140px;
&.sp-lbl2 {
width: 218px;
}
}
img {
width: 24px;
height: 24px;
top: 12px;
}
.data-row {
line-height: 48px;
}
}
}
}
.popup-project-introduction-min {
transform: translateY(100px);
}
.popup-project-introduction-details {
padding: 0px !important;
position: relative;
.quality-table.special-table{
padding:0px !important;
}
.font-size-tools {
position: absolute;
top: -40px;
right: 100px;
.svg-icon {
width: 40px !important;
height: 40px !important;
cursor: pointer;
*{
fill: #fff;
}
&.active{
*{
fill: aqua;
}
}
}
}
}
.popup-project-introduction-min {
transform: translateY(100px);
.data-item {
border-bottom: solid 1px #fff;
padding: 12px 0px 12px 20px;
box-shadow: inset 7px 0px 11px 5px rgb(36 131 167 / 70%);
.sp-lbl {
display: inline-block;
color: aquamarine;
}
.data-row {
display: flex;
line-height: 30px;
.div-text {
display: inline-block;
width: calc(100% - 200px);
vertical-align: top;
white-space: break-spaces;
word-break: break-word;
&.state-2{
color: red;
font-weight: bold;
}
}
border-bottom: solid 1px rgba(255, 255, 255, 0.1);
padding: 4px 0px;
}
img {
width: 16px;
height: 16px;
display: inline-block;
position: relative;
top: 8px;
}
}
}
}
</style>

View File

@ -15,4 +15,5 @@ Vue.prototype.$tryToJson=(str,def=null)=>{
}catch(e){
return def;
}
}
}
window.jhcaches={};

View File

@ -4,7 +4,7 @@
<template slot="title">项目季度考核目标</template>
<div class="col-2 scroll" style="max-height: 750px;overflow: auto;padding: 12px 0px;">
<div class="font-size-tools">
<svg class="icon svg-icon" @click="fontSize = 2"
<svg class="icon svg-icon" @click="fontSize = 2" :class="fontSize==2?'active':''"
style="width: 1.287109375em;height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;"
viewBox="0 0 1318 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1675">
<path
@ -12,9 +12,9 @@
fill="" p-id="1676"></path>
<path d="M916.65910814 373.51849105v321.91517757h-42.1250421V373.51849105z" fill="" p-id="1677"></path>
</svg>
<svg class="icon svg-icon" @click="fontSize = 1" 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="#727272" p-id="3687"></path>
<svg class="icon svg-icon" :class="fontSize==1?'active':''" @click="fontSize = 1" 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="#727272" p-id="3687"></path>
</svg>
<svg class="icon svg-icon" @click="fontSize = 0"
<svg class="icon svg-icon" @click="fontSize = 0" :class="fontSize==0?'active':''"
style="width: 1.287109375em;height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;"
viewBox="0 0 1318 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1691">
<path
@ -185,6 +185,11 @@ export default {
*{
fill: #fff;
}
&.active{
*{
fill: aqua;
}
}
}
}
}

View File

@ -1,8 +1,8 @@
<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>
<div style="font-size: 24px;font-weight: bold;text-align: center;flex-grow: 1;">项目形象进度</div>
<div>
<div class="head-title-select" @mouseleave="hideScreenUlSel2" v-if="localStorage2">
<div class="head-select">
@ -10,7 +10,8 @@
</div>
<el-collapse-transition>
<ul class="header-screen-ul" v-show="showSel2" ref="selectUl">
<li v-for="item in prjs" @click="setScreenLiSel2(item)" :title="item.text">{{ item.text }}
<li v-for="item in prjs" @click="setScreenLiSel2(item)" :title="item.projectName">{{
item.projectName }}
</li>
</ul>
</el-collapse-transition>
@ -20,7 +21,7 @@
</template>
<div class="font-size-tools">
<svg class="icon svg-icon" @click="fontSize = 2"
<svg class="icon svg-icon" @click="fontSize = 2" :class="fontSize==2?'active':''"
style="width: 1.287109375em;height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;"
viewBox="0 0 1318 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1675">
<path
@ -28,9 +29,14 @@
fill="" p-id="1676"></path>
<path d="M916.65910814 373.51849105v321.91517757h-42.1250421V373.51849105z" fill="" p-id="1677"></path>
</svg>
<svg class="icon svg-icon" @click="fontSize = 1" 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>
<svg class="icon svg-icon" @click="fontSize = 0"
<svg class="icon svg-icon" @click="fontSize = 1" :class="fontSize==1?'active':''"
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>
<svg class="icon svg-icon" @click="fontSize = 0" :class="fontSize==0?'active':''"
style="width: 1.287109375em;height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;"
viewBox="0 0 1318 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1691">
<path
@ -71,7 +77,7 @@
</div>
</div>
<div class="col-2 scroll"
style="flex-grow: 1;max-height: 750px;overflow: auto;width: calc(100% - 504px);margin-top:8px;">
style="flex-grow: 1;max-height: 750px;min-height:400px;overflow: auto;width: calc(100% - 504px);margin-top:8px;">
<template v-if="scheduleInfo.plannedNode">
<div><img src="images/title_icon.png"><span class="sp-lbl">计划节点</span></div>
<div class="div-text ">
@ -116,7 +122,7 @@
</template>
</div>
</div>
<div v-else style="text-align: center;padding-top: 150px;">
<div v-else style="text-align: center;padding-top: 150px;min-height: 500px;">
<img src="images/nodata.png" style="width: 240px;">
<div style="text-align: center;">暂无数据</div>
</div>
@ -146,7 +152,15 @@ export default {
},
mounted() {
let objs = window.jhcaches?.progressProjects
if (objs && objs.length > 0) {
this.prjs = objs;
return;
}
this.$api.project.getProgressProjects().then(d => {
this.prjs = d.data || [];
window.jhcaches.progressProjects = this.prjs;
});
},
methods: {
@ -159,25 +173,36 @@ export default {
},
modifyLeftBtn() {
let item = this.findItem();
let idx = 0;
if (item) {
let idx = this.prjs.indexOf(item);
idx = this.prjs.indexOf(item);
if (idx > 0) {
idx--;
} else {
idx = this.prjs.length - 1;
}
this.setScreenLiSel2(this.prjs[idx]);
} else {
idx = 0;
}
this.setScreenLiSel2(this.prjs[idx]);
},
modifyRightBtn() {
let item = this.findItem();
let idx = 0;
if (item) {
let idx = this.prjs.indexOf(item);
idx = this.prjs.indexOf(item);
if (idx < this.prjs.length - 2) {
idx++;
} else {
idx = 0;
}
this.setScreenLiSel2(this.prjs[idx]);
} else {
idx = 0;
}
this.setScreenLiSel2(this.prjs[idx]);
},
showScreenUlSel2() {
this.showSel2 = true
@ -186,7 +211,6 @@ export default {
this.showSel2 = false
},
showDialog(scheduleInfo, prjs) {
this.prjs = prjs;
this.scheduleInfo = scheduleInfo;
this.localStorage2 = JSON.parse(localStorage.getItem("data2"))
this.dept2 = this.localStorage2.text;
@ -231,6 +255,7 @@ export default {
}
}
}
&.font-size-1 {
.popup-project-introduction-details {
.col-2 {
@ -253,6 +278,13 @@ export default {
width: 40px !important;
height: 40px !important;
cursor: pointer;
&.active {
* {
fill: aqua;
}
}
}
}