YZProjectCloud/yanzhu-bigscreen/src/views/schedule/planSchedule.vue

1160 lines
50 KiB
Vue

<template>
<div class="project-planSchedule main-page">
<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>
<module-one-2-1 label="进行中的计划" class="chart-plan-module">
<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.fullPath }}</span>
</div>
<div class="equipment-list-data equipment-list-data_div_bottom">
计划周期:
<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="h100">
<el-row style="height:33%;" class="right-header-box">
<el-col :span="8">
<module-one-1-1 label="计划状态" class="chart-plan-module1">
<project-overview-chart
:htmlShow="true"
:key="'ai1' + overview+chartKey"
:sp="''"
:fn="changeChart1"
:maintitle="overviewTotal"
:legend-opt="legendOpt"
:typedata="overviewDatas"
:text="overviewText"
:height="chart1Height"
></project-overview-chart>
</module-one-1-1>
</el-col>
<el-col :span="8">
<module-one-1-1 label="计划统计" class="chart-plan-module2">
<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"
/>
</svg>
</div>
<div class="equipment-list-data">
<p class="sp-num">{{ overviewTask[0].name }}</p>
<div class="sp-number">
<span>{{ overviewTask[0].value }}</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"
/>
</svg>
</div>
<div class="equipment-list-data">
<p class="sp-num">{{ overviewTask[1].name }}</p>
<div class="sp-number">
<span>{{ overviewTask[1].value }}</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"
/>
</svg>
</div>
<div class="equipment-list-data">
<p class="sp-num">{{ overviewTask[2].name }}</p>
<div class="sp-number">
<span>{{ overviewTask[2].value }}</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">
<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"
/>
</svg>
</div>
<div class="equipment-list-data">
<p class="sp-num">{{ overviewTask[3].name }}</p>
<div class="sp-number">
<span>{{ overviewTask[3].value }}</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
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"
/>
</svg>
</div>
<div class="equipment-list-data">
<p class="sp-num">{{ overviewTask[4].name }}</p>
<div class="sp-number">
<span>{{ overviewTask[4].value }}</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
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"
/>
</svg>
</div>
<div class="equipment-list-data">
<p class="sp-num">{{ overviewTask[5].name }}</p>
<div class="sp-number">
<span>{{ overviewTask[5].value }}</span>
<span>%</span>
</div>
</div>
</div>
</el-col>
</el-row>
</div>
</module-one-1-1>
</el-col>
<el-col :span="8">
<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 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 style="height:66%;">
<module-one-2-3 label="计划施工进度">
<trend-chart-line :key="chartKey" :height="chart2Height" :data="scheduleNodeData"></trend-chart-line>
</module-one-2-3>
</el-row>
</el-col>
</div>
</template>
<script>
export default {
data() {
return {
chartKey: 0,
chart1Height: 230,
chart2Height: 567,
dpi: '',
selProject: null,
photographyList: [],
jxzjhList: [],
legendOpt: {},
overview: 0,
overviewTotal: 0,
overviewDatas: [],
overviewText: '任务计划',
overviewTask: [
{ 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()
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
}
this.initPhotographyList()
this.initAllPlanDatas()
this.initScheduleNodes()
},
initPhotographyList() {
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 = _tasks
this.overviewJxzjh =this.makePlanTree(res.data, _jxzjhs)
this.overviewYwcjh = _ywcjhs
this.overviewYzhjh = _yzhjhs
this.overviewMonthjh = _nowMonth
})
},
makePlanTree(all, data) {
let getFullPath = (id, name) => {
let _parents = all.filter(d=>d.taskId==id);
if(_parents.length>0){
name.push(_parents[0].taskName);
return getFullPath(_parents[0].parentId,name);
}else{
return name;
}
};
let _data = [];
data.forEach(it=>{
if(all.filter(d=>d.parentId==it.taskId).length==0){
it.fullPath=getFullPath(it.parentId,[it.taskName]).reverse().join("/");
_data.push(it);
}
});
return _data;
},
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
})
},
},
}
</script>
<style lang="less" scope>
.project-planSchedule {
.photography-list {
width: calc(100% - 4px);
height: calc(100% - 0px);
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;
min-width: 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;
}
}
}
.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>
<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;
min-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;
min-width: 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;
min-width: 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;
min-width: 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;
min-width: 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;
min-width: 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;
min-width: 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>