修改大屏

dev_xd
haha 2025-05-12 00:07:04 +08:00
parent e7b424885a
commit a14ffac2bd
3 changed files with 1146 additions and 725 deletions

View File

@ -129,7 +129,7 @@ export default {
chartKey: 0,
chart1Height: 230,
chart2Height: 230,
chart3Height: 280,
chart3Height: 250,
dpi: '',
overview: 0,
overviewDay: 0,
@ -272,7 +272,6 @@ export default {
}
},
changeChart2(opt) {
console.log(opt)
if (this.$dpi() == '1K') {
return opt
} else if (this.$dpi() == '2K') {

View File

@ -16,8 +16,8 @@
</div>
</module-one-3-1>
</el-col>
<el-col :span="18" class="no-title">
<module-one-3-3 :notitle="true">
<el-col :span="18" class="no-title h100">
<module-one-3-3 :notitle="true" class="h100">
<template v-if="info">
<div class="right-title">
<span class="sp-title">{{ info.videoDate }}</span>
@ -42,6 +42,8 @@ export default {
info: null,
activeNames: [],
infoList: {},
dpi: '',
chartKey: 0,
}
},
mounted() {
@ -53,8 +55,19 @@ export default {
})
this.selProject = this.$store.getters.selProject
this.init()
this.dpi = this.$dpi()
this.resize()
window.addEventListener('resize', () => {
if (this.dpi != this.$dpi()) {
this.dpi = this.$dpi()
this.resize()
}
})
},
methods: {
resize() {
this.chartKey++
},
playVideo(it) {
this.info = null
setTimeout(() => {
@ -106,9 +119,10 @@ export default {
width: 100%;
height: calc(100% - 201px);
}
/deep/ .screen-one-3-3 {
.screen-one-3-3 {
background-image: none;
border: solid 1px #409eff5c;
height: 100%;
.module-title {
display: none;
}
@ -156,7 +170,7 @@ export default {
}
}
}
/deep/ .screen-one-3-1 {
.screen-one-3-1 {
.el-collapse {
border: none;
margin-top: 4px;
@ -204,5 +218,28 @@ export default {
}
}
}
@media (min-width: 1921px) and (max-width: 2560px) {
.left-list {
font-size: 18px;
.video-item {
line-height: 40px !important;
.header-icon {
font-size: 24px !important;
}
}
}
}
@media (min-width: 2561px) {
.left-list {
font-size: 24px;
.video-item {
line-height: 60px !important;
.header-icon {
font-size: 32px !important;
top: 15px !important;
}
}
}
}
}
</style>

View File

@ -7,8 +7,7 @@
<el-carousel height="100%" :autoplay="false">
<el-carousel-item v-for="(item, idx) in photographyList" :key="idx">
<video controls="controls" class="photography-video" loop="loop">
<source :src="item.videoUrl" type="video/mp4" :key="item.videoUrl" />
您的浏览器不支持Video标签
<source :src="item.videoUrl" type="video/mp4" :key="item.videoUrl" />您的浏览器不支持Video标签
</video>
<div class="photography-list-title">{{ item.videoDate }}</div>
</el-carousel-item>
@ -46,42 +45,45 @@
</div>
</module-one-1-1>
<module-one-2-1 label="进行中的计划" class="chart-plan-module">
<div
v-for="(it, idx) in overviewJxzjh"
:key="idx"
class="equipment-list-min equipment-list-min_div quality-target-index-min quality-target-index-min_div"
>
<div class="scroll" style="height: calc(100% - 20px);overflow-y: auto;">
<div v-for="(it, idx) in overviewJxzjh" :key="idx" class="equipment-list-min equipment-list-min_div quality-target-index-min quality-target-index-min_div">
<div class="czz-number-img czz-number-img-blue">{{ it.scheduleNode }} %</div>
<div>
<div class="equipment-list-data equipment-list-data_div_top">
<span>{{ it.taskName }}</span>
</div>
<div class="equipment-list-data equipment-list-data_div_bottom">
计划周期<span class="sp-data"
>{{ it.planStartDate }}-{{ it.planFinishDate }}</span
>
计划周期
<span class="sp-data">
{{ it.planStartDate }}
<span class="sp-data-line">-</span>
{{ it.planFinishDate }}
</span>
</div>
</div>
</div>
</div>
</module-one-2-1>
</el-col>
<el-col :span="18" class="no-title">
<el-row>
<el-col :span="18" class="h100">
<el-row style="height:33%;" class="right-header-box">
<el-col :span="8">
<module-one-1-1 label="计划状态">
<module-one-1-1 label="计划状态" class="chart-plan-module1">
<project-overview-chart
:key="'ai1' + overview"
:htmlShow="true"
:key="'ai1' + overview+chartKey"
:sp="''"
:fn="changeChart1"
:maintitle="overviewTotal"
:legend-opt="legendOpt"
:typedata="overviewDatas"
:text="overviewText"
:height="230"
:height="chart1Height"
></project-overview-chart>
</module-one-1-1>
</el-col>
<el-col :span="8">
<module-one-1-1 label="计划统计">
<module-one-1-1 label="计划统计" class="chart-plan-module2">
<div class="equipment-list-max quality-target-index">
<el-row>
<el-col :span="8">
@ -101,13 +103,13 @@
>
<path
d="M530.46 269c4.64 0 9.05 2.01 12.09 5.52l109.54 126.3A16.01 16.01 0 0 1 656 411.3V893c0 8.82-7.18 16-16 16H178c-8.82 0-16-7.18-16-16V285c0-8.82 7.18-16 16-16h352.46m0-64H178c-44.18 0-80 35.82-80 80v608c0 44.18 35.82 80 80 80h462c44.18 0 80-35.82 80-80V411.3c0-19.26-6.95-37.87-19.56-52.42L590.9 232.58A80.014 80.014 0 0 0 530.46 205zM819.29 864h-45.92c-17.67 0-32-14.33-32-32s14.33-32 32-32h45.92c25.21 0 45.71-19.94 45.71-44.46V295.17c0-10.61-3.91-20.88-11.01-28.94L747.58 145.52c-8.7-9.87-21.35-15.52-34.7-15.52H370.49c-17.67 0-32-14.33-32-32s14.33-32 32-32h342.38c31.72 0 61.87 13.56 82.71 37.2L902 223.91c17.41 19.75 27 45.06 27 71.26v460.37C929 815.35 879.78 864 819.29 864zM702 468H552.09c-41.96 0-76.09-31.47-76.09-70.15V240.5h64v157.35c0 1.88 4.57 6.15 12.09 6.15H702v64zM898 326H748.09c-41.96 0-76.09-31.47-76.09-70.15V98.5h64v157.35c0 1.88 4.57 6.15 12.09 6.15H898v64zM535.13 784.5H262.88c-17.67 0-32 14.33-32 32s14.33 32 32 32h272.25c17.67 0 32-14.33 32-32s-14.33-32-32-32zM535.13 638.75H262.88c-17.67 0-32 14.33-32 32s14.33 32 32 32h272.25c17.67 0 32-14.33 32-32s-14.33-32-32-32zM535.13 493H262.88c-17.67 0-32 14.33-32 32s14.33 32 32 32h272.25c17.67 0 32-14.33 32-32s-14.33-32-32-32z"
></path>
/>
</svg>
</div>
<div class="equipment-list-data">
<p style="font-size: 12px">{{ overviewTask[0].name }}</p>
<div>
<span style="font-size: 12px">{{ overviewTask[0].value }}</span>
<p class="sp-num">{{ overviewTask[0].name }}</p>
<div class="sp-number">
<span>{{ overviewTask[0].value }}</span>
</div>
</div>
</div>
@ -130,13 +132,13 @@
<path
d="M896 64H128c-35.296 0-64 28.704-64 64v768c0 35.296 28.704 64 64 64h592a32 32 0 1 0 0-64H128V128h768v592a32 32 0 1 0 64 0V128c0-35.296-28.704-64-64-64zM791.744 746.496A206.752 206.752 0 0 0 832 624c0-114.688-93.312-208-208-208S416 509.312 416 624s93.312 208 208 208a206.752 206.752 0 0 0 122.496-40.256l110.88 110.88a31.904 31.904 0 0 0 45.248 0 31.968 31.968 0 0 0 0-45.248l-110.88-110.88zM480 624c0-79.392 64.608-144 144-144s144 64.608 144 144-64.608 144-144 144-144-64.608-144-144zM800 264a32 32 0 0 0-32-32H256a32 32 0 0 0 0 64h512a32 32 0 0 0 32-32zM256 422.656a32 32 0 0 0 0 64h96a32 32 0 0 0 0-64H256z"
p-id="7850"
></path>
/>
</svg>
</div>
<div class="equipment-list-data">
<p style="font-size: 12px">{{ overviewTask[1].name }}</p>
<div>
<span style="font-size: 12px">{{ overviewTask[1].value }}</span>
<p class="sp-num">{{ overviewTask[1].name }}</p>
<div class="sp-number">
<span>{{ overviewTask[1].value }}</span>
</div>
</div>
</div>
@ -159,18 +161,20 @@
<path
d="M896 64H128c-35.296 0-64 28.704-64 64v768c0 35.296 28.704 64 64 64h592a32 32 0 1 0 0-64H128V128h768v592a32 32 0 1 0 64 0V128c0-35.296-28.704-64-64-64zM791.744 746.496A206.752 206.752 0 0 0 832 624c0-114.688-93.312-208-208-208S416 509.312 416 624s93.312 208 208 208a206.752 206.752 0 0 0 122.496-40.256l110.88 110.88a31.904 31.904 0 0 0 45.248 0 31.968 31.968 0 0 0 0-45.248l-110.88-110.88zM480 624c0-79.392 64.608-144 144-144s144 64.608 144 144-64.608 144-144 144-144-64.608-144-144zM800 264a32 32 0 0 0-32-32H256a32 32 0 0 0 0 64h512a32 32 0 0 0 32-32zM256 422.656a32 32 0 0 0 0 64h96a32 32 0 0 0 0-64H256z"
p-id="7850"
></path>
/>
</svg>
</div>
<div class="equipment-list-data">
<p style="font-size: 12px">{{ overviewTask[2].name }}</p>
<div>
<p class="sp-num">{{ overviewTask[2].name }}</p>
<div class="sp-number">
<span>{{ overviewTask[2].value }}</span>
<span style="font-size: 12px">%</span>
<span>%</span>
</div>
</div>
</div>
</el-col>
</el-row>
<el-row class="row2">
<el-col :span="8">
<div class="equipment-list-min1 quality-target-index-min">
<div class="czz-number-img czz-number-img-blue">
@ -188,15 +192,15 @@
>
<path
d="M634.593683 354.898336h-189.279113c39.748614-30.284658 71.926063-58.676525 96.532347-87.068391 26.499076 32.177449 58.676525 60.569316 92.746766 87.068391z m30.284658 177.922366h-246.062847v81.390019H662.985549v-81.390019zM984.760041 190.225508v202.528651c0 183.600739-81.390018 355.844732-225.242144 471.304991l-187.386322 151.42329c-5.678373 5.678373-15.142329 7.571165-22.713493 7.571164s-17.03512-1.892791-24.606285-7.571164l-187.386322-151.42329C195.466141 748.598891 114.076122 576.354898 114.076122 392.754159V190.225508c0-15.142329 9.463956-30.284658 24.606285-35.963031l397.486137-151.42329c9.463956-3.785582 18.927911-3.785582 26.499076 0l397.486136 151.42329c15.142329 5.678373 24.606285 20.820702 24.606285 35.963031zM734.911612 464.680222H348.782222v240.384473h70.033272v-24.606285H662.985549v24.606285h70.033272V464.680222z m64.354899-98.425139c-92.746765-39.748614-162.780037-88.961183-210.099816-149.530499l18.927912-22.713493h-98.425139c-41.641405 62.462107-117.35305 121.138632-225.242144 177.922366 17.03512 18.927911 32.177449 39.748614 45.426987 60.569316 22.713494-13.249538 45.426987-26.499076 64.354898-39.748614v30.284658h293.382625v-28.391867c20.820702 13.249538 41.641405 24.606285 62.462107 34.07024 15.142329-18.927911 30.284658-39.748614 49.21257-62.462107z"
fill=""
fill
p-id="10576"
></path>
/>
</svg>
</div>
<div class="equipment-list-data">
<p>{{ overviewTask[3].name }}</p>
<div>
<span style="font-size: 12px">{{ overviewTask[3].value }}</span>
<p class="sp-num">{{ overviewTask[3].name }}</p>
<div class="sp-number">
<span>{{ overviewTask[3].value }}</span>
</div>
</div>
</div>
@ -218,20 +222,20 @@
>
<path
d="M855.13728 187.4176c-105.97376 0-209.34656-36.9152-291.08736-103.936l-40.9344-33.56672-40.94976 33.56672c-81.77152 67.01568-185.15456 103.936-291.09248 103.936H126.49984V622.83264l4.95104 11.90912c67.33824 161.82784 206.54592 289.3824 372.38272 341.2224l19.08224 5.96992 19.11808-5.86752c170.07616-52.16768 305.99168-176.79872 372.92032-341.89824l4.62848-11.43808 0.08704-12.34944 0.03072-3.27168V187.4176h-64.5632z m0 419.22048l-0.03072 3.26144c-58.8544 145.21856-180.87424 258.06848-332.00128 304.44032-148.33664-46.39232-272.86528-162.24256-332.032-304.4096V252.0064c125.99296 0 241.62304-44.46208 332.032-118.56896C613.50912 207.5648 729.088 252.0064 855.13728 252.0064v354.63168z"
fill=""
fill
p-id="8280"
></path>
/>
<path
d="M400.47616 304.95232c57.68192 2.5856 87.78752 39.74656 90.368 111.5136-2.58048 70.50752-33.97632 107.0336-94.21312 109.5936-55.12192-3.85024-84.59264-40.37632-88.43776-109.5936 2.55488-71.76704 33.31584-108.928 92.28288-111.5136z m-1.92 174.96064c26.91584-1.25952 41.0112-23.07072 42.30144-65.37216-1.29024-42.29632-14.7456-64.08192-40.37632-65.37216-28.20608 0-42.29632 22.44096-42.29632 67.29216 1.25952 39.75168 14.72 60.89728 40.3712 63.45216z m207.64672-174.96064h51.91168l-219.18208 417.21856H387.0208l219.18208-417.21856z m40.37632 199.95648c57.68192 2.5856 87.78752 40.37632 90.36288 113.4336-2.58048 66.6624-33.97632 101.23776-94.208 103.82336-56.41728-3.84512-85.88288-38.45632-88.44288-103.82336 2.56-71.77216 33.32096-109.58848 92.288-113.4336z m-1.92512 176.88576c25.63072-1.25952 39.0912-23.71072 40.38144-67.29728-1.29024-41.0112-14.12096-62.16192-38.45632-63.45216-26.91584 0-41.0368 21.81632-42.30144 65.37728 1.26976 41.0368 14.72512 62.81216 40.37632 65.37216z"
fill=""
fill
p-id="8281"
></path>
/>
</svg>
</div>
<div class="equipment-list-data">
<p>{{ overviewTask[4].name }}</p>
<div>
<span style="font-size: 12px">{{ overviewTask[4].value }}</span>
<p class="sp-num">{{ overviewTask[4].name }}</p>
<div class="sp-number">
<span>{{ overviewTask[4].value }}</span>
</div>
</div>
</div>
@ -253,21 +257,21 @@
>
<path
d="M855.13728 187.4176c-105.97376 0-209.34656-36.9152-291.08736-103.936l-40.9344-33.56672-40.94976 33.56672c-81.77152 67.01568-185.15456 103.936-291.09248 103.936H126.49984V622.83264l4.95104 11.90912c67.33824 161.82784 206.54592 289.3824 372.38272 341.2224l19.08224 5.96992 19.11808-5.86752c170.07616-52.16768 305.99168-176.79872 372.92032-341.89824l4.62848-11.43808 0.08704-12.34944 0.03072-3.27168V187.4176h-64.5632z m0 419.22048l-0.03072 3.26144c-58.8544 145.21856-180.87424 258.06848-332.00128 304.44032-148.33664-46.39232-272.86528-162.24256-332.032-304.4096V252.0064c125.99296 0 241.62304-44.46208 332.032-118.56896C613.50912 207.5648 729.088 252.0064 855.13728 252.0064v354.63168z"
fill=""
fill
p-id="8280"
></path>
/>
<path
d="M400.47616 304.95232c57.68192 2.5856 87.78752 39.74656 90.368 111.5136-2.58048 70.50752-33.97632 107.0336-94.21312 109.5936-55.12192-3.85024-84.59264-40.37632-88.43776-109.5936 2.55488-71.76704 33.31584-108.928 92.28288-111.5136z m-1.92 174.96064c26.91584-1.25952 41.0112-23.07072 42.30144-65.37216-1.29024-42.29632-14.7456-64.08192-40.37632-65.37216-28.20608 0-42.29632 22.44096-42.29632 67.29216 1.25952 39.75168 14.72 60.89728 40.3712 63.45216z m207.64672-174.96064h51.91168l-219.18208 417.21856H387.0208l219.18208-417.21856z m40.37632 199.95648c57.68192 2.5856 87.78752 40.37632 90.36288 113.4336-2.58048 66.6624-33.97632 101.23776-94.208 103.82336-56.41728-3.84512-85.88288-38.45632-88.44288-103.82336 2.56-71.77216 33.32096-109.58848 92.288-113.4336z m-1.92512 176.88576c25.63072-1.25952 39.0912-23.71072 40.38144-67.29728-1.29024-41.0112-14.12096-62.16192-38.45632-63.45216-26.91584 0-41.0368 21.81632-42.30144 65.37728 1.26976 41.0368 14.72512 62.81216 40.37632 65.37216z"
fill=""
fill
p-id="8281"
></path>
/>
</svg>
</div>
<div class="equipment-list-data">
<p>{{ overviewTask[5].name }}</p>
<div>
<p class="sp-num">{{ overviewTask[5].name }}</p>
<div class="sp-number">
<span>{{ overviewTask[5].value }}</span>
<span style="font-size: 12px">%</span>
<span>%</span>
</div>
</div>
</div>
@ -277,32 +281,31 @@
</module-one-1-1>
</el-col>
<el-col :span="8">
<module-one-1-1 label="本月推进明细">
<div
v-for="(it, idx) in overviewMonthjh"
:key="idx"
class="equipment-list-min equipment-list-min_div quality-target-index-min quality-target-index-min_div"
>
<div class="czz-number-img czz-number-img-blue">
{{ it.scheduleNode }} %
</div>
<div>
<div class="equipment-list-data equipment-list-data_div_top">
<module-one-1-1 label="本月推进明细" class="chart-plan-module3">
<div class="scroll" style="height: calc(100% - 20px); overflow-y: auto;">
<div v-for="(it, idx) in overviewMonthjh" :key="idx" class="equipment-list-min equipment-list-min_div quality-target-index-min quality-target-index-min_div">
<div class="czz-number-img czz-number-img-blue">{{ it.scheduleNode }} %</div>
<div class="right-data-box">
<div class="equipment-list-data equipment-list-data_div_top sp-task-name">
<span>{{ it.taskName }}</span>
</div>
<div class="equipment-list-data equipment-list-data_div_bottom">
计划周期<span class="sp-data"
>{{ it.planStartDate }}-{{ it.planFinishDate }}</span
>
<div class="equipment-list-data equipment-list-data_div_bottom sp-plan">
计划周期
<span class="sp-data">
{{ it.planStartDate }}
<span class="sp-data-line">-</span>
{{ it.planFinishDate }}
</span>
</div>
</div>
</div>
</div>
</module-one-1-1>
</el-col>
</el-row>
<el-row>
<el-row style="height:66%;">
<module-one-2-3 label="计划施工进度">
<trend-chart-line :height="450" :data="scheduleNodeData"></trend-chart-line>
<trend-chart-line :key="chartKey" :height="chart2Height" :data="scheduleNodeData"></trend-chart-line>
</module-one-2-3>
</el-row>
</el-col>
@ -313,164 +316,201 @@
export default {
data() {
return {
chartKey: 0,
chart1Height: 230,
chart2Height: 567,
dpi: '',
selProject: null,
photographyList: [],
jxzjhList: [],
legendOpt: {
icon: "rect",
orient: "horizontal",
itemWidth: "50%",
left: 240,
right: "10%",
itemWidth: 20,
itemGap: 20,
itemHeight: 20,
textStyle: {
padding: [0, 0, 0, 0],
fontSize: 10,
color: "#c3dbfd",
align: "center",
rich: {
name: {
color: "#c3dbfd",
padding: [5, 2, 5, 2],
},
percent: {
color: "#4676FD",
padding: [0, 2, 0, 2],
},
},
},
},
legendOpt: {},
overview: 0,
overviewTotal: 0,
overviewDatas: [],
overviewText: "任务计划",
overviewText: '任务计划',
overviewTask: [
{ name: "任务数", value: 0 },
{ name: "已完成", value: 0 },
{ name: "完成率", value: 0 },
{ name: "进行中", value: 0 },
{ name: "已滞后", value: 0 },
{ name: "滞后率", value: 0 },
{ name: '任务数', value: 0 },
{ name: '已完成', value: 0 },
{ name: '完成率', value: 0 },
{ name: '进行中', value: 0 },
{ name: '已滞后', value: 0 },
{ name: '滞后率', value: 0 },
],
overviewJxzjh: [], //
overviewYwcjh: [], //
overviewYzhjh: [], //
overviewMonthjh: [], //
scheduleNodeData: [],
};
}
},
mounted() {
window.photography = this;
this.$store.dispatch("ChangeNav", 502);
this.$bus.$on("projectChange", (prj) => {
this.selProject = prj;
this.init();
});
this.selProject = this.$store.getters.selProject;
this.init();
window.photography = this
this.$store.dispatch('ChangeNav', 502)
this.$bus.$on('projectChange', (prj) => {
this.selProject = prj
this.init()
})
this.selProject = this.$store.getters.selProject
this.init()
this.dpi = this.$dpi()
this.resize()
window.addEventListener('resize', () => {
if (this.dpi != this.$dpi()) {
this.dpi = this.$dpi()
this.resize()
}
})
this.setOpts()
},
methods: {
setOpts() {
let is1K = this.$dpi() == '1K'
let is2K = this.$dpi() == '2K'
this.legendOpt = {
icon: 'rect',
orient: 'horizontal',
itemWidth: '50%',
left: 240,
right: '10%',
itemWidth: 20,
itemGap: 20,
itemHeight: 20,
textStyle: {
padding: [0, 0, 0, 0],
fontSize: is1K ? 10 : is2K ? 14 : 16,
color: '#c3dbfd',
align: 'center',
rich: {
name: {
fontSize: is1K ? 10 : is2K ? 14 : 16,
color: '#c3dbfd',
padding: [5, 2, 5, 2],
},
percent: {
fontSize: is1K ? 10 : is2K ? 14 : 16,
color: '#4676FD',
padding: [0, 2, 0, 2],
},
},
},
}
},
changeChart1(opt) {
if (this.$dpi() == '1K') {
opt.legend[0].left = 200
return opt
} else if (this.$dpi() == '2K') {
opt.legend[0].left = 360
return opt
} else {
opt.legend[0].left = 500
return opt
}
},
resize() {
let is1K = this.$dpi() == '1K'
let is2K = this.$dpi() == '2K'
this.chart1Height = is1K ? 230 : is2K ? 360 : 595
this.chart2Height = is1K ? 567 : is2K ? 800 : 1250
this.chartKey++
},
init() {
if (!this.selProject) {
return;
return
}
this.initPhotographyList();
this.initAllPlanDatas();
this.initScheduleNodes();
this.initPhotographyList()
this.initAllPlanDatas()
this.initScheduleNodes()
},
initPhotographyList() {
this.$api.detail.photographyList(this.selProject.id).then((res) => {
this.photographyList = res.data;
});
this.photographyList = res.data
})
},
initAllPlanDatas() {
this.$api.planSchedule.findAllPlanDatas(this.selProject.id).then((res) => {
let _jxzjhs = [];
let _ywcjhs = [];
let _yzhjhs = [];
let _rwzttj = [];
let _nowMonth = [];
let _jxzjhs = []
let _ywcjhs = []
let _yzhjhs = []
let _rwzttj = []
let _nowMonth = []
res.data.forEach((item) => {
if (item.taskStatus == "zcjxz" || item.taskStatus == "zhjxz") {
_jxzjhs.push(item);
if (item.taskStatus == 'zcjxz' || item.taskStatus == 'zhjxz') {
_jxzjhs.push(item)
}
if (item.taskStatus == "zcwc" || item.taskStatus == "zhwc") {
_ywcjhs.push(item);
if (item.taskStatus == 'zcwc' || item.taskStatus == 'zhwc') {
_ywcjhs.push(item)
}
if (item.taskStatus == "zhwc" || item.taskStatus == "zhjxz") {
_yzhjhs.push(item);
if (item.taskStatus == 'zhwc' || item.taskStatus == 'zhjxz') {
_yzhjhs.push(item)
}
if (item.nowMonth == "Y") {
_nowMonth.push(item);
if (item.nowMonth == 'Y') {
_nowMonth.push(item)
}
});
let _wkss = res.data.filter((ex) => ex.taskStatus === "wks");
let _zcwcs = res.data.filter((ex) => ex.taskStatus === "zcwc");
let _zhwcs = res.data.filter((ex) => ex.taskStatus === "zhwc");
let _zcjxzs = res.data.filter((ex) => ex.taskStatus === "zcjxz");
let _zhjxzs = res.data.filter((ex) => ex.taskStatus === "zhjxz");
_rwzttj.push({ name: "未开始", value: _wkss.length });
_rwzttj.push({ name: "进行中(滞后)", value: _zhwcs.length });
_rwzttj.push({ name: "进行中(正常)", value: _zcwcs.length });
_rwzttj.push({ name: "已完成(滞后)", value: _zhjxzs.length });
_rwzttj.push({ name: "已完成(正常)", value: _zcjxzs.length });
this.overviewDatas = _rwzttj;
this.overview++;
let _tasks = [];
_tasks.push({ name: "任务数", value: res.data.length });
_tasks.push({ name: "已完成", value: _ywcjhs.length });
})
let _wkss = res.data.filter((ex) => ex.taskStatus === 'wks')
let _zcwcs = res.data.filter((ex) => ex.taskStatus === 'zcwc')
let _zhwcs = res.data.filter((ex) => ex.taskStatus === 'zhwc')
let _zcjxzs = res.data.filter((ex) => ex.taskStatus === 'zcjxz')
let _zhjxzs = res.data.filter((ex) => ex.taskStatus === 'zhjxz')
_rwzttj.push({ name: '未开始', value: _wkss.length })
_rwzttj.push({ name: '进行中(滞后)', value: _zhwcs.length })
_rwzttj.push({ name: '进行中(正常)', value: _zcwcs.length })
_rwzttj.push({ name: '已完成(滞后)', value: _zhjxzs.length })
_rwzttj.push({ name: '已完成(正常)', value: _zcjxzs.length })
this.overviewDatas = _rwzttj
this.overview++
let _tasks = []
_tasks.push({ name: '任务数', value: res.data.length })
_tasks.push({ name: '已完成', value: _ywcjhs.length })
_tasks.push({
name: "完成率",
name: '完成率',
value: ((_ywcjhs.length / res.data.length) * 100).toFixed(2),
});
_tasks.push({ name: "进行中", value: _jxzjhs.length });
_tasks.push({ name: "已滞后", value: _yzhjhs.length });
})
_tasks.push({ name: '进行中', value: _jxzjhs.length })
_tasks.push({ name: '已滞后', value: _yzhjhs.length })
_tasks.push({
name: "滞后率",
name: '滞后率',
value: ((_yzhjhs.length / res.data.length) * 100).toFixed(2),
});
this.overviewTask = _tasks;
this.overviewJxzjh = _jxzjhs;
this.overviewYwcjh = _ywcjhs;
this.overviewYzhjh = _yzhjhs;
this.overviewMonthjh = _nowMonth;
});
})
this.overviewTask = _tasks
this.overviewJxzjh = _jxzjhs
this.overviewYwcjh = _ywcjhs
this.overviewYzhjh = _yzhjhs
this.overviewMonthjh = _nowMonth
})
},
initScheduleNodes() {
this.$api.planSchedule
.findAllSchedule({ projectId: this.selProject.id })
.then((res) => {
let _data1 = [];
let _date8 = [];
this.$api.planSchedule.findAllSchedule({ projectId: this.selProject.id }).then((res) => {
let _data1 = []
let _date8 = []
res.data.forEach((item) => {
_data1.push(item.totalSchedule);
_date8.push(item.createDate);
});
let _lineData = [];
_lineData.push(_data1);
let _color = ["#0078e7"];
let _legend = ["施工进度"];
_data1.push(item.totalSchedule)
_date8.push(item.createDate)
})
let _lineData = []
_lineData.push(_data1)
let _color = ['#0078e7']
let _legend = ['施工进度']
let _datas = {
lineData: _lineData,
color: _color,
legend: _legend,
unit: "%",
unit: '%',
date: _date8,
};
this.scheduleNodeData = _datas;
});
}
this.scheduleNodeData = _datas
})
},
},
};
}
</script>
<style lang="less" scope>
.project-planSchedule {
.photography-list {
width: calc(100% - 4px);
height: calc(100% - 26px);
height: calc(100% - 0px);
padding-left: 1px;
.el-carousel {
@ -640,7 +680,7 @@ export default {
padding: 0px 40px;
font-size: 40px;
background-size: 100% 100%;
background-image: url("../../assets/images/bgphoto.png");
background-image: url('../../assets/images/bgphoto.png');
}
video {
width: 100%;
@ -746,3 +786,348 @@ export default {
}
}
</style>
<style lang="less">
.project-planSchedule {
.photography-list {
height: calc(100% - 10px);
}
.right-header-box {
.el-col-8 {
height: 100%;
.screen-one-1-1 {
height: calc(100% - 20px) !important;
}
}
.chart-plan-module1 {
.chart-gif {
left: 50px;
}
.chart-text {
top: 63px;
left: 50px;
}
}
.chart-plan-module2 {
.row2 {
margin-top: 10px;
}
.equipment-list-min1 {
display: flex;
flex-flow: column;
justify-content: center;
align-items: center;
padding: 0px;
.equipment-list-data {
padding: 0px !important;
text-align: center;
line-height: 30px;
.sp-num {
font-size: 14px;
}
.sp-number {
padding-top: 0px;
span {
font-size: 18px;
}
}
}
}
}
.chart-plan-module3 {
.equipment-list-min {
.czz-number-img {
line-height: 80px;
height: 80px;
width: 80px;
}
.sp-task-name {
span {
font-size: 16px;
}
}
.right-data-box {
line-height: 40px;
}
.sp-plan {
font-size: 16px;
.sp-data {
font-size: 12px !important;
.sp-data-line {
font-size: 20px;
}
}
}
}
}
}
.equipment-list-min {
.czz-number-img {
font-size: 14px;
}
.sp-data {
font-size: 12px !important;
.sp-data-line {
font-size: 20px;
}
}
}
@media (min-width: 1921px) and (max-width: 2560px) {
.photography-list {
font-size: 18px;
.el-carousel__arrow {
font-size: 18px;
width: 48px;
height: 48px;
line-height: 48px;
}
}
.right-header-box {
.el-col-8 {
height: 100%;
.screen-one-1-1 {
height: calc(100% - 20px) !important;
}
}
.chart-plan-module1 {
.chart-gif {
left: 55px;
width: 180px;
height: 180px;
top: 90px !important;
}
.chart-text {
left: 55px;
width: 180px;
height: 180px;
top: 90px !important;
.chart-text-title {
font-size: 24px;
}
.chart-text-sub-title {
font-size: 18px;
}
}
}
.chart-plan-module2 {
.row2 {
margin-top: 30px;
}
.equipment-list-min1 {
display: flex;
flex-flow: column;
justify-content: center;
align-items: center;
padding: 0px;
.czz-number-img {
width: 90px;
height: 90px;
line-height: 110px;
svg {
width: 36px;
height: 36px;
}
}
.equipment-list-data {
padding: 0px !important;
text-align: center;
line-height: 40px;
.sp-num {
font-size: 18px;
}
.sp-number {
padding-top: 0px;
span {
font-size: 20px;
}
}
}
}
}
.chart-plan-module3 {
.equipment-list-min {
.czz-number-img {
width: 120px;
height: 120px;
line-height: 120px;
}
.sp-task-name {
span {
font-size: 18px;
}
}
.right-data-box {
line-height: 30px;
}
.sp-plan {
font-size: 18px;
.sp-data {
font-size: 18px !important;
.sp-data-line {
font-size: 24px;
}
}
}
}
}
}
.equipment-list-min {
.czz-number-img {
font-size: 18px;
}
.sp-data {
font-size: 18px !important;
.sp-data-line {
font-size: 24px !important;
}
}
}
.chart-plan-module {
.czz-number-img {
width: 120px;
height: 120px;
line-height: 140px;
}
.equipment-list-data_div_top {
span {
font-size: 20px;
}
}
.equipment-list-data_div_bottom {
font-size: 20px;
span {
font-size: 18px !important;
}
}
}
}
@media (min-width: 2561px) {
.photography-list {
font-size: 24px;
.el-carousel__arrow {
font-size: 24px;
width: 60px;
height: 60px;
line-height: 60px;
}
}
.right-header-box {
.el-col-8 {
height: 100%;
.screen-one-1-1 {
height: calc(100% - 20px) !important;
}
}
.chart-plan-module1 {
.chart-gif {
left: 85px;
width: 280px;
height: 280px;
top: 159px !important;
}
.chart-text {
left: 85px;
width: 280px;
height: 280px;
top: 159px !important;
.chart-text-title {
font-size: 32px;
}
.chart-text-sub-title {
font-size: 24px;
}
}
}
.chart-plan-module2 {
.row2 {
margin-top: 30px;
}
.equipment-list-min1 {
display: flex;
flex-flow: column;
justify-content: center;
align-items: center;
padding: 0px;
.czz-number-img {
width: 120px;
height: 120px;
line-height: 140px;
svg {
width: 56px;
height: 56px;
}
}
.equipment-list-data {
padding: 0px !important;
text-align: center;
line-height: 60px;
.sp-num {
font-size: 24px;
}
.sp-number {
padding-top: 0px;
span {
font-size: 28px;
}
}
}
}
}
.chart-plan-module3 {
.equipment-list-min {
.czz-number-img {
width: 160px;
height: 160px;
line-height: 160px;
}
.sp-task-name {
span {
font-size: 24px;
}
}
.right-data-box {
line-height: 40px;
}
.sp-plan {
font-size: 24px;
.sp-data {
font-size: 24px !important;
.sp-data-line {
font-size: 32px;
}
}
}
}
}
}
.equipment-list-min {
.czz-number-img {
font-size: 24px;
}
.sp-data {
font-size: 24px !important;
.sp-data-line {
font-size: 32px !important;
}
}
}
.chart-plan-module {
.czz-number-img {
width: 160px;
height: 160px;
line-height: 160px;
}
.equipment-list-data_div_top {
span {
font-size: 28px;
}
}
.equipment-list-data_div_bottom {
font-size: 28px;
span {
font-size: 24px !important;
}
}
}
}
}
</style>