2025-04-29 22:36:18 +08:00
|
|
|
|
<template>
|
2025-05-07 00:37:49 +08:00
|
|
|
|
<div class="project-planSchedule main-page">
|
2025-04-29 22:36:18 +08:00
|
|
|
|
<el-col :span="6" class="h100">
|
|
|
|
|
<module-one-1-1 label="项目全景">
|
|
|
|
|
<div class="photography-list">
|
|
|
|
|
<template v-if="photographyList && photographyList.length > 0">
|
|
|
|
|
<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标签。
|
|
|
|
|
</video>
|
|
|
|
|
<div class="photography-list-title">{{ item.videoDate }}</div>
|
|
|
|
|
</el-carousel-item>
|
|
|
|
|
</el-carousel>
|
|
|
|
|
</template>
|
|
|
|
|
<template v-else>
|
|
|
|
|
<div class="photography-list-nodata">
|
|
|
|
|
<div>
|
|
|
|
|
<i class="video-play">
|
|
|
|
|
<svg
|
|
|
|
|
class="icon"
|
|
|
|
|
style="
|
|
|
|
|
width: 30px;
|
|
|
|
|
height: 30px;
|
|
|
|
|
vertical-align: middle;
|
|
|
|
|
fill: currentColor;
|
|
|
|
|
overflow: hidden;
|
|
|
|
|
"
|
|
|
|
|
viewBox="0 0 1024 1024"
|
|
|
|
|
version="1.1"
|
|
|
|
|
xmlns="http://www.w3.org/2000/svg"
|
|
|
|
|
p-id="4551"
|
|
|
|
|
>
|
|
|
|
|
<path
|
|
|
|
|
d="M128 138.666667c0-47.232 33.322667-66.666667 74.176-43.562667l663.146667 374.954667c40.96 23.168 40.853333 60.8 0 83.882666L202.176 928.896C161.216 952.064 128 932.565333 128 885.333333v-746.666666z"
|
|
|
|
|
fill="#3D3D3D"
|
|
|
|
|
p-id="4552"
|
|
|
|
|
/>
|
|
|
|
|
</svg>
|
|
|
|
|
</i>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="photography-list-no-title">暂无数据</div>
|
|
|
|
|
</div>
|
|
|
|
|
</template>
|
|
|
|
|
</div>
|
|
|
|
|
</module-one-1-1>
|
2025-05-07 00:37:49 +08:00
|
|
|
|
<module-one-2-1 label="进行中的计划" class="chart-plan-module">
|
2025-04-29 22:36:18 +08:00
|
|
|
|
<div
|
2025-05-07 00:37:49 +08:00
|
|
|
|
v-for="(it, idx) in overviewJxzjh"
|
|
|
|
|
:key="idx"
|
2025-04-29 22:36:18 +08:00
|
|
|
|
class="equipment-list-min equipment-list-min_div quality-target-index-min quality-target-index-min_div"
|
|
|
|
|
>
|
2025-05-07 00:37:49 +08:00
|
|
|
|
<div class="czz-number-img czz-number-img-blue">{{ it.scheduleNode }} %</div>
|
2025-04-29 22:36:18 +08:00
|
|
|
|
<div>
|
|
|
|
|
<div class="equipment-list-data equipment-list-data_div_top">
|
2025-05-07 00:37:49 +08:00
|
|
|
|
<span>{{ it.taskName }}</span>
|
2025-04-29 22:36:18 +08:00
|
|
|
|
</div>
|
|
|
|
|
<div class="equipment-list-data equipment-list-data_div_bottom">
|
2025-05-07 00:37:49 +08:00
|
|
|
|
计划周期:<span class="sp-data"
|
|
|
|
|
>{{ it.planStartDate }}-{{ it.planFinishDate }}</span
|
|
|
|
|
>
|
2025-04-29 22:36:18 +08:00
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</module-one-2-1>
|
|
|
|
|
</el-col>
|
|
|
|
|
<el-col :span="18" class="no-title">
|
2025-05-07 00:37:49 +08:00
|
|
|
|
<el-row>
|
|
|
|
|
<el-col :span="8">
|
|
|
|
|
<module-one-1-1 label="计划状态">
|
|
|
|
|
<project-overview-chart
|
|
|
|
|
:key="'ai1' + overview"
|
|
|
|
|
:sp="''"
|
|
|
|
|
:maintitle="overviewTotal"
|
|
|
|
|
:legend-opt="legendOpt"
|
|
|
|
|
:typedata="overviewDatas"
|
|
|
|
|
:text="overviewText"
|
|
|
|
|
:height="230"
|
|
|
|
|
></project-overview-chart>
|
|
|
|
|
</module-one-1-1>
|
|
|
|
|
</el-col>
|
|
|
|
|
<el-col :span="8">
|
|
|
|
|
<module-one-1-1 label="计划统计">
|
|
|
|
|
<div class="equipment-list-max quality-target-index">
|
|
|
|
|
<el-row>
|
|
|
|
|
<el-col :span="8">
|
|
|
|
|
<div class="equipment-list-min1 quality-target-index-min">
|
|
|
|
|
<div class="czz-number-img czz-number-img-blue">
|
|
|
|
|
<svg
|
|
|
|
|
class="my-svg-icon-blue"
|
|
|
|
|
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="3054"
|
|
|
|
|
>
|
|
|
|
|
<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">任务数</p>
|
|
|
|
|
<div><span style="font-size: 12px">1</span></div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</el-col>
|
|
|
|
|
<el-col :span="8">
|
|
|
|
|
<div class="equipment-list-min1 quality-target-index-min">
|
|
|
|
|
<div class="czz-number-img czz-number-img-green">
|
|
|
|
|
<svg
|
|
|
|
|
class="my-svg-icon-green"
|
|
|
|
|
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="7849"
|
|
|
|
|
>
|
|
|
|
|
<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">已完成</p>
|
|
|
|
|
<div>
|
|
|
|
|
<span style="font-size: 12px">2</span>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</el-col>
|
|
|
|
|
<el-col :span="8">
|
|
|
|
|
<div class="equipment-list-min1 quality-target-index-min">
|
|
|
|
|
<div class="czz-number-img czz-number-img-green">
|
|
|
|
|
<svg
|
|
|
|
|
class="my-svg-icon-green"
|
|
|
|
|
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="7849"
|
|
|
|
|
>
|
|
|
|
|
<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">完成率</p>
|
|
|
|
|
<div>
|
|
|
|
|
<span>3</span>
|
|
|
|
|
<span style="font-size: 12px">%</span>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</el-col>
|
|
|
|
|
<el-col :span="8">
|
|
|
|
|
<div class="equipment-list-min1 quality-target-index-min">
|
|
|
|
|
<div class="czz-number-img czz-number-img-blue">
|
|
|
|
|
<svg
|
|
|
|
|
class="my-svg-icon-blue"
|
|
|
|
|
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="10575"
|
|
|
|
|
>
|
|
|
|
|
<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=""
|
|
|
|
|
p-id="10576"
|
|
|
|
|
></path>
|
|
|
|
|
</svg>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="equipment-list-data">
|
|
|
|
|
<p>进行中</p>
|
|
|
|
|
<div><span style="font-size: 12px">4</span></div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</el-col>
|
|
|
|
|
<el-col :span="8">
|
|
|
|
|
<div class="equipment-list-min1 quality-target-index-min">
|
|
|
|
|
<div class="czz-number-img czz-number-img-green">
|
|
|
|
|
<svg
|
|
|
|
|
class="my-svg-icon-green"
|
|
|
|
|
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="8279"
|
|
|
|
|
>
|
|
|
|
|
<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=""
|
|
|
|
|
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=""
|
|
|
|
|
p-id="8281"
|
|
|
|
|
></path>
|
|
|
|
|
</svg>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="equipment-list-data">
|
|
|
|
|
<p>已滞后</p>
|
|
|
|
|
<div>
|
|
|
|
|
<span style="font-size: 12px">5</span>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</el-col>
|
|
|
|
|
<el-col :span="8">
|
|
|
|
|
<div class="equipment-list-min1 quality-target-index-min">
|
|
|
|
|
<div class="czz-number-img czz-number-img-green">
|
|
|
|
|
<svg
|
|
|
|
|
class="my-svg-icon-green"
|
|
|
|
|
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="8279"
|
|
|
|
|
>
|
|
|
|
|
<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=""
|
|
|
|
|
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=""
|
|
|
|
|
p-id="8281"
|
|
|
|
|
></path>
|
|
|
|
|
</svg>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="equipment-list-data">
|
|
|
|
|
<p>滞后率</p>
|
|
|
|
|
<div>
|
|
|
|
|
<span>6</span>
|
|
|
|
|
<span style="font-size: 12px">%</span>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</el-col>
|
|
|
|
|
</el-row>
|
|
|
|
|
</div>
|
|
|
|
|
</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">
|
|
|
|
|
<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>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</module-one-1-1>
|
|
|
|
|
</el-col>
|
|
|
|
|
</el-row>
|
|
|
|
|
<el-row>
|
|
|
|
|
<module-one-2-3 label="计划施工进度">
|
|
|
|
|
<trend-chart-line :height="450" :data="scheduleNodeData"></trend-chart-line>
|
|
|
|
|
</module-one-2-3>
|
|
|
|
|
</el-row>
|
2025-04-29 22:36:18 +08:00
|
|
|
|
</el-col>
|
|
|
|
|
</div>
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
<script>
|
|
|
|
|
export default {
|
|
|
|
|
data() {
|
|
|
|
|
return {
|
2025-05-07 00:37:49 +08:00
|
|
|
|
selProject: null,
|
2025-04-29 22:36:18 +08:00
|
|
|
|
photographyList: [],
|
2025-05-07 00:37:49 +08:00
|
|
|
|
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],
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
overview: 0,
|
|
|
|
|
overviewTotal: 0,
|
|
|
|
|
overviewDatas: [],
|
|
|
|
|
overviewText: "任务计划",
|
|
|
|
|
overviewTask: [],
|
|
|
|
|
overviewJxzjh: [], //进行中计划
|
|
|
|
|
overviewYwcjh: [], //已完成计划
|
|
|
|
|
overviewYzhjh: [], //已滞后计划
|
|
|
|
|
overviewMonthjh: [], //本月进行计划
|
|
|
|
|
scheduleNodeData: [],
|
2025-04-29 22:36:18 +08:00
|
|
|
|
};
|
|
|
|
|
},
|
|
|
|
|
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();
|
|
|
|
|
},
|
|
|
|
|
methods: {
|
|
|
|
|
init() {
|
|
|
|
|
if (!this.selProject) {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
this.initPhotographyList();
|
2025-05-07 00:37:49 +08:00
|
|
|
|
this.initAllPlanDatas();
|
|
|
|
|
this.initScheduleNodes();
|
2025-04-29 22:36:18 +08:00
|
|
|
|
},
|
|
|
|
|
initPhotographyList() {
|
2025-05-07 00:37:49 +08:00
|
|
|
|
this.$api.detail.photographyList(this.selProject.id).then((res) => {
|
|
|
|
|
this.photographyList = res.data;
|
|
|
|
|
});
|
|
|
|
|
},
|
|
|
|
|
initAllPlanDatas() {
|
|
|
|
|
this.$api.planSchedule.findAllPlanDatas(this.selProject.id).then((res) => {
|
|
|
|
|
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 == "zcwc" || item.taskStatus == "zhwc") {
|
|
|
|
|
_ywcjhs.push(item);
|
|
|
|
|
}
|
|
|
|
|
if (item.taskStatus == "zhwc" || item.taskStatus == "zhjxz") {
|
|
|
|
|
_yzhjhs.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 });
|
|
|
|
|
_tasks.push({
|
|
|
|
|
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: ((_yzhjhs.length / res.data.length) * 100).toFixed(2),
|
|
|
|
|
});
|
|
|
|
|
this.overviewTask = [];
|
|
|
|
|
(this.overviewJxzjh = _jxzjhs),
|
|
|
|
|
(this.overviewYwcjh = _ywcjhs),
|
|
|
|
|
(this.overviewYzhjh = _yzhjhs),
|
|
|
|
|
(this.overviewMonthjh = _nowMonth);
|
2025-04-29 22:36:18 +08:00
|
|
|
|
});
|
|
|
|
|
},
|
2025-05-07 00:37:49 +08:00
|
|
|
|
initScheduleNodes() {
|
|
|
|
|
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 = ["施工进度"];
|
|
|
|
|
let _datas = {
|
|
|
|
|
lineData: _lineData,
|
|
|
|
|
color: _color,
|
|
|
|
|
legend: _legend,
|
|
|
|
|
unit: "%",
|
|
|
|
|
date: _date8,
|
|
|
|
|
};
|
|
|
|
|
this.scheduleNodeData = _datas;
|
|
|
|
|
});
|
|
|
|
|
},
|
2025-04-29 22:36:18 +08:00
|
|
|
|
},
|
|
|
|
|
};
|
|
|
|
|
</script>
|
|
|
|
|
|
2025-05-07 00:37:49 +08:00
|
|
|
|
<style lang="less" scope>
|
|
|
|
|
.project-planSchedule {
|
|
|
|
|
.photography-list {
|
|
|
|
|
width: calc(100% - 4px);
|
|
|
|
|
height: calc(100% - 26px);
|
|
|
|
|
padding-left: 1px;
|
|
|
|
|
|
|
|
|
|
.el-carousel {
|
|
|
|
|
height: 100%;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.photography-video {
|
|
|
|
|
width: 100%;
|
|
|
|
|
height: calc(100% - 30px);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.photography-list-title {
|
|
|
|
|
line-height: 20px;
|
|
|
|
|
text-align: center;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.photography-list-nodata {
|
|
|
|
|
background: rgba(255, 255, 255, 0.2);
|
|
|
|
|
width: 80%;
|
|
|
|
|
height: 80%;
|
|
|
|
|
margin-left: 10%;
|
|
|
|
|
margin-top: 6%;
|
|
|
|
|
display: flex;
|
|
|
|
|
align-items: center;
|
|
|
|
|
justify-content: center;
|
|
|
|
|
flex-flow: column;
|
|
|
|
|
|
|
|
|
|
.video-play {
|
|
|
|
|
width: 80px;
|
|
|
|
|
height: 80px;
|
|
|
|
|
display: inline-block;
|
|
|
|
|
background: rgba(0, 0, 0, 0.4);
|
|
|
|
|
line-height: 80px;
|
|
|
|
|
text-align: center;
|
|
|
|
|
border-radius: 40px;
|
|
|
|
|
margin-bottom: 12px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.photography-list-no-title {
|
|
|
|
|
color: rgba(255, 255, 255, 0.2);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
.equipment-list-data {
|
|
|
|
|
position: relative;
|
|
|
|
|
}
|
|
|
|
|
.quality-target-index-min1 {
|
|
|
|
|
padding: 15px 0 15px 0;
|
|
|
|
|
}
|
|
|
|
|
.problemmodify_list .el-table__body-wrapper::-webkit-scrollbar {
|
|
|
|
|
width: 8px;
|
|
|
|
|
height: 8px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.problemmodify_list .el-table__body-wrapper::-webkit-scrollbar-thumb {
|
|
|
|
|
background-color: #01a9ff;
|
|
|
|
|
border-radius: 4px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.problemmodify_list .el-table__body-wrapper tr {
|
|
|
|
|
cursor: pointer;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.center-image .screen-one-2-1 {
|
|
|
|
|
overflow: hidden;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.equipment-list-data {
|
|
|
|
|
position: relative;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.my-svg-icon-blue,
|
|
|
|
|
.my-svg-icon-green {
|
|
|
|
|
width: 28px;
|
|
|
|
|
height: 28px;
|
|
|
|
|
position: relative;
|
|
|
|
|
top: -10px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.my-svg-icon-green * {
|
|
|
|
|
fill: #63f8bc;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.fgreen {
|
|
|
|
|
color: #63f8bc !important;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.my-svg-icon {
|
|
|
|
|
width: 40px;
|
|
|
|
|
height: 40px;
|
|
|
|
|
margin-bottom: 20px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.my-svg-icon *,
|
|
|
|
|
.my-svg-icon-blue * {
|
|
|
|
|
fill: #389de3;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.people-number-con div:nth-child(3) {
|
|
|
|
|
background: none;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.labour-education .number-unit {
|
|
|
|
|
position: relative;
|
|
|
|
|
bottom: -8px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.bottom-line,
|
|
|
|
|
.bottom-line2 {
|
|
|
|
|
border: none !important;
|
|
|
|
|
position: relative;
|
|
|
|
|
}
|
|
|
|
|
.chart-plan-module {
|
|
|
|
|
.czz-number-img {
|
|
|
|
|
display: flex;
|
|
|
|
|
width: 80px;
|
|
|
|
|
height: 80px;
|
|
|
|
|
align-items: center;
|
|
|
|
|
justify-content: center;
|
|
|
|
|
|
|
|
|
|
svg {
|
|
|
|
|
width: 30px !important;
|
|
|
|
|
height: 30px !important;
|
|
|
|
|
fill: #00aaff59 !important;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.equipment-list-data_div_top {
|
|
|
|
|
span {
|
|
|
|
|
font-size: 14px;
|
|
|
|
|
color: #cbdaff;
|
|
|
|
|
font-weight: normal;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.equipment-list-data_div_bottom {
|
|
|
|
|
margin-top: 10px;
|
|
|
|
|
|
|
|
|
|
.sp-data {
|
|
|
|
|
font-size: 20px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.sp-unit {
|
|
|
|
|
font-size: 14px;
|
|
|
|
|
color: #cbdaff;
|
|
|
|
|
font-weight: normal;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
2025-04-29 22:36:18 +08:00
|
|
|
|
.div-no-data {
|
|
|
|
|
text-align: center;
|
|
|
|
|
height: 600px;
|
|
|
|
|
display: flex;
|
|
|
|
|
align-items: center;
|
|
|
|
|
justify-content: center;
|
|
|
|
|
}
|
|
|
|
|
.no-title {
|
|
|
|
|
.right-title {
|
|
|
|
|
height: 200px;
|
|
|
|
|
display: flex;
|
|
|
|
|
align-items: center;
|
|
|
|
|
justify-content: center;
|
|
|
|
|
}
|
|
|
|
|
.sp-title {
|
|
|
|
|
display: inline-block;
|
|
|
|
|
line-height: 72px;
|
|
|
|
|
padding: 0px 40px;
|
|
|
|
|
font-size: 40px;
|
|
|
|
|
background-size: 100% 100%;
|
|
|
|
|
background-image: url("../../assets/images/bgphoto.png");
|
|
|
|
|
}
|
|
|
|
|
video {
|
|
|
|
|
width: 100%;
|
|
|
|
|
height: calc(100% - 201px);
|
|
|
|
|
}
|
|
|
|
|
/deep/ .screen-one-3-3 {
|
|
|
|
|
background-image: none;
|
|
|
|
|
border: solid 1px #409eff5c;
|
|
|
|
|
.module-title {
|
|
|
|
|
display: none;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
.left-list {
|
|
|
|
|
max-height: calc(100% - 40px);
|
|
|
|
|
overflow-y: auto;
|
|
|
|
|
&::-webkit-scrollbar {
|
|
|
|
|
width: 4px;
|
|
|
|
|
height: 4px;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
.screen-one-3-1 {
|
|
|
|
|
height: calc(100% - 20px) !important;
|
|
|
|
|
.left-list {
|
|
|
|
|
padding: 10px 10px 10px 0px;
|
|
|
|
|
.video-item {
|
|
|
|
|
line-height: 40px;
|
|
|
|
|
border: solid 1px #1e8fff83;
|
|
|
|
|
padding: 0px 20px;
|
|
|
|
|
margin-top: 10px;
|
|
|
|
|
position: relative;
|
|
|
|
|
cursor: pointer;
|
|
|
|
|
&:first-child {
|
|
|
|
|
margin-top: 0px;
|
|
|
|
|
}
|
|
|
|
|
.header-icon {
|
|
|
|
|
position: absolute;
|
|
|
|
|
right: 10px;
|
|
|
|
|
top: 10px;
|
|
|
|
|
}
|
|
|
|
|
&.is-active {
|
|
|
|
|
background-color: #089fff;
|
|
|
|
|
color: #fff;
|
|
|
|
|
&:hover {
|
|
|
|
|
background-color: #089fff;
|
|
|
|
|
color: #fff;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
&:hover {
|
|
|
|
|
background-color: #08a0ff95;
|
|
|
|
|
color: #fff;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
/deep/ .screen-one-3-1 {
|
|
|
|
|
.el-collapse {
|
|
|
|
|
border: none;
|
|
|
|
|
margin-top: 4px;
|
|
|
|
|
|
|
|
|
|
.el-collapse-item {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.el-collapse-item__header {
|
|
|
|
|
background-color: #097fca2e;
|
|
|
|
|
color: #089fff;
|
|
|
|
|
border-bottom: dotted 1px #089fff77;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.el-collapse-item__content {
|
|
|
|
|
padding-bottom: 12px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.el-collapse-item__wrap {
|
|
|
|
|
background-color: transparent;
|
|
|
|
|
border: none;
|
|
|
|
|
.img-item {
|
|
|
|
|
margin-top: 8px;
|
|
|
|
|
display: flex;
|
|
|
|
|
align-items: center;
|
|
|
|
|
justify-content: center;
|
|
|
|
|
flex-direction: column;
|
|
|
|
|
color: #fff;
|
|
|
|
|
position: relative;
|
|
|
|
|
}
|
|
|
|
|
.video-item {
|
|
|
|
|
position: relative;
|
|
|
|
|
line-height: 30px;
|
|
|
|
|
display: flex;
|
|
|
|
|
align-items: center;
|
|
|
|
|
cursor: pointer;
|
|
|
|
|
border-bottom: solid 1px #089fff77;
|
|
|
|
|
.div-date {
|
|
|
|
|
width: calc(90% - 24px);
|
|
|
|
|
text-align: left;
|
|
|
|
|
bottom: 0px;
|
|
|
|
|
color: #089fff;
|
|
|
|
|
padding-left: 24px;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
</style>
|