提交代码

prv
姜玉琦 2024-03-25 23:38:23 +08:00
parent bb2799282c
commit 055fdb9f65
1 changed files with 963 additions and 701 deletions

View File

@ -2,22 +2,69 @@
<div class="project-quality">
<div class="screen-content">
<el-row>
<el-col :span="12" style="position: relative;">
<el-col :span="12" style="position: relative">
<module-one-3-1 label="质量隐患检查" class="hide-scroll">
<div style="position: absolute;right:0px;top:4px;">
<el-date-picker class="bg-date-picker" v-model="selDate" type="daterange" popper-class="bg-date-picker-pop" :editable="false" @change="dtChange"
:picker-options="pickerOptions" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期"></el-date-picker>
<div style="position: absolute; right: 0px; top: 4px">
<el-date-picker
class="bg-date-picker"
v-model="selDate"
type="daterange"
popper-class="bg-date-picker-pop"
:editable="false"
@change="dtChange"
:picker-options="pickerOptions"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
></el-date-picker>
</div>
<div :key="'a' + elSummaryKey">
<div class="warning-info-title" style="padding-left: 20px;">
<div :class="safeNav==0?'active':''" @click="doSafeNav(0,'汇总总数')"></div>
<div :class="safeNav==3?'active':''" @click="doSafeNav(3,'集团总数')"></div>
<div :class="safeNav==4?'active':''" @click="doSafeNav(4,'子公司总数')"></div>
<div :class="safeNav==5?'active':''" @click="doSafeNav(5,'甲方代表')"></div>
<div :class="safeNav==6?'active':''" @click="doSafeNav(6,'监理单位')"></div>
<div :class="safeNav==7?'active':''" @click="doSafeNav(7,'总包单位')"></div>
<div class="warning-info-title" style="padding-left: 20px">
<div
:class="safeNav == 0 ? 'active' : ''"
@click="doSafeNav(0, '汇总总数')"
>
汇总
</div>
<project-overview-chart2 :key="'b'+safeNav" :sp="'\n'" :maintitle="fmt(summaryTotal)" :typedata="summary" :text="safeText" :height="230"></project-overview-chart2>
<div
:class="safeNav == 3 ? 'active' : ''"
@click="doSafeNav(3, '集团总数')"
>
集团
</div>
<div
:class="safeNav == 4 ? 'active' : ''"
@click="doSafeNav(4, '子公司总数')"
>
子公司
</div>
<div
:class="safeNav == 5 ? 'active' : ''"
@click="doSafeNav(5, '甲方代表')"
>
甲方代表
</div>
<div
:class="safeNav == 6 ? 'active' : ''"
@click="doSafeNav(6, '监理单位')"
>
监理单位
</div>
<div
:class="safeNav == 7 ? 'active' : ''"
@click="doSafeNav(7, '总包单位')"
>
总包单位
</div>
</div>
<project-overview-chart2
:key="'b' + safeNav"
:sp="'\n'"
:maintitle="fmt(summaryTotal)"
:typedata="summary"
:text="safeText"
:height="230"
></project-overview-chart2>
</div>
<div style="padding: 0px 20px" :key="'c' + elSummaryPrjKey">
<el-row>
@ -27,23 +74,51 @@
</el-col>
<el-col :span="24">
<div class="rank-chart-title bottom-line">
<span style="position: relative;top: -4px;">项目质量隐患占比({{ summaryPrjTotal }})</span></div>
<div class="idle-list problemmodify_list" style="padding-top:20px;">
<el-table style="width: 100%" ref="wgzp" :data="summaryPrj" height="600" @row-click="doProbleRowClick"
:row-style="rowStyle" class="elTable">
<span style="position: relative; top: -4px"
>项目质量隐患占比({{ summaryPrjTotal }})</span
>
</div>
<div class="idle-list problemmodify_list" style="padding-top: 20px">
<el-table
style="width: 100%"
ref="wgzp"
:data="summaryPrj"
height="600"
@row-click="doProbleRowClick"
:row-style="rowStyle"
class="elTable"
>
<el-table-column type="index" width="40">
<template slot-scope="scope">
<div
:class="scope.$index < 3 && +scope.row.value > 0 ? 'idle-list-color' : ''">
{{ scope.$index + 1 }} </div>
</template></el-table-column>
<el-table-column prop="projectName" label="项目名称" width="120"
class-name="text-left" :show-overflow-tooltip="true">
:class="
scope.$index < 3 && +scope.row.value > 0
? 'idle-list-color'
: ''
"
>
{{ scope.$index + 1 }}
</div>
</template></el-table-column
>
<el-table-column
prop="projectName"
label="项目名称"
width="120"
class-name="text-left"
:show-overflow-tooltip="true"
>
</el-table-column>
<el-table-column prop="prop" label="占比">
<template slot-scope="scope">
<idle-list-chart :prop="Number(scope.row.prop)"
:color="scope.$index < 3 && +scope.row.id > 0 ? '#f05e35' : '#6ab9fe'"></idle-list-chart>
<idle-list-chart
:prop="Number(scope.row.prop)"
:color="
scope.$index < 3 && +scope.row.id > 0
? '#f05e35'
: '#6ab9fe'
"
></idle-list-chart>
</template>
</el-table-column>
<el-table-column prop="id" label="隐患数" width="70" align="center">
@ -51,17 +126,22 @@
<div>{{ scope.row.id }}</div>
</template>
</el-table-column>
<el-table-column prop="id" label="超时隐患数" width="100" align="center">
<el-table-column
prop="id"
label="超时隐患数"
width="100"
align="center"
>
<template slot-scope="scope">
<div>{{ scope.row.infoType }}</div>
</template>
</el-table-column>
<el-table-column prop="id" label="整改率">
<template slot-scope="scope">
<idle-list-chart :prop="Number(scope.row.rate)"
color="#6ab9fe"></idle-list-chart>
<idle-list-chart
:prop="Number(scope.row.rate)"
color="#6ab9fe"
></idle-list-chart>
</template>
</el-table-column>
</el-table>
@ -72,60 +152,156 @@
</module-one-3-1>
</el-col>
<el-col :span="6">
<module-one-1-1 label="材料进场取样复试" style="position: relative;">
<img src="images/icon2001.png" style="position: absolute;cursor: pointer;right: 12px;top: 12px;"
@click="doShowCheckDetectionDlg">
<module-one-1-1 label="材料进场取样复试" style="position: relative">
<img
src="images/icon2001.png"
style="position: absolute; cursor: pointer; right: 12px; top: 12px"
@click="doShowCheckDetectionDlg"
/>
<div class="warning-info">
<div class="warning-info-title">
<div :class="samplingNav==0?'active':''" @click="checkDetection(0)"></div>
<div :class="samplingNav==1?'active':''" @click="checkDetection(1)"></div>
<div :class="samplingNav==2?'active':''" @click="checkDetection(2)"></div>
<div :class="samplingNav==3?'active':''" @click="checkDetection(3)"></div>
<div :class="samplingNav==4?'active':''" @click="checkDetection(4)"></div>
<div :class="samplingNav == 0 ? 'active' : ''" @click="checkDetection(0)">
汇总
</div>
<div :class="samplingNav == 1 ? 'active' : ''" @click="checkDetection(1)">
钢筋原材料
</div>
<div :class="samplingNav == 2 ? 'active' : ''" @click="checkDetection(2)">
钢筋试拉件
</div>
<div :class="samplingNav == 3 ? 'active' : ''" @click="checkDetection(3)">
混凝土试件
</div>
<div :class="samplingNav == 4 ? 'active' : ''" @click="checkDetection(4)">
其他
</div>
</div>
<div class="equipment-list-max quality-target-index">
<el-row>
<el-col :span="12">
<div class="equipment-list-min 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" p-id="3055"></path></svg>
<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"
p-id="3055"
></path>
</svg>
</div>
<div class="equipment-list-data">
<p style="font-size: 12px;">送检数</p>
<div><span>{{ chkDetection.chk1 }}</span><span style="font-size: 12px;"></span></div>
<p style="font-size: 12px">送检数</p>
<div>
<span>{{ chkDetection.chk1 }}</span
><span style="font-size: 12px"></span>
</div>
</div>
</div>
</el-col>
<el-col :span="12">
<div class="equipment-list-min 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>
<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 class="fgreen">{{ chkDetection.chk2 }}</span><span style="font-size: 12px;"></span></div>
<p style="font-size: 12px">待检数</p>
<div>
<span class="fgreen">{{ chkDetection.chk2 }}</span
><span style="font-size: 12px"></span>
</div>
</div>
</div>
</el-col>
<el-col :span="12">
<div class="equipment-list-min 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>
<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>{{ chkDetection.chk3 }}</span><span style="font-size: 12px;"></span></div>
<div>
<span>{{ chkDetection.chk3 }}</span
><span style="font-size: 12px"></span>
</div>
</div>
</div>
</el-col>
<el-col :span="12">
<div class="equipment-list-min 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>
<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 class="fgreen">{{ chkDetection.percent }}</span><span style="font-size: 12px;">%</span></div>
<div>
<span class="fgreen">{{ chkDetection.percent }}</span
><span style="font-size: 12px">%</span>
</div>
</div>
</div>
</el-col>
@ -133,30 +309,83 @@
</div>
</div>
</module-one-1-1>
<module-one-1-1 label="材料封样" style="position: relative;">
<materialSealChart :height="280" :optData="materialSealList" :key="'ms'+materialSealEl"></materialSealChart>
<img src="images/icon2001.png" style="position: absolute;cursor: pointer;right: 12px;top: 12px;"
@click="showMaterialSealDlg">
<module-one-1-1 label="材料封样" style="position: relative">
<materialSealChart
:height="280"
:optData="materialSealList"
:key="'ms' + materialSealEl"
></materialSealChart>
<img
src="images/icon2001.png"
style="position: absolute; cursor: pointer; right: 12px; top: 12px"
@click="showMaterialSealDlg"
/>
</module-one-1-1>
<module-one-1-1 label="实测实量" :key="elCheck" style="position: relative;">
<img src="images/icon2001.png" style="position: absolute;cursor: pointer;right: 12px;top: 12px;"
@click="doShowMeasuredDlg">
<div class="warning-info-title measured-data-list" style="padding-left: 20px;">
<div :class="measuredNav==0?'active':''" @click="doMeasuredNav(0,'汇总')"></div>
<div :class="measuredNav==1?'active':''" @click="doMeasuredNav(1,'混泥土工程')"></div>
<div :class="measuredNav==2?'active':''" @click="doMeasuredNav(2,'二次构建')"></div>
<div :class="measuredNav==3?'active':''" @click="doMeasuredNav(3,'房间尺寸')"></div>
<div :class="measuredNav==4?'active':''" @click="doMeasuredNav(4,'抹灰工程')"></div>
<div :class="measuredNav==5?'active':''" @click="doMeasuredNav(5,'其它')"></div>
<module-one-1-1 label="实测实量" :key="elCheck" style="position: relative">
<img
src="images/icon2001.png"
style="position: absolute; cursor: pointer; right: 12px; top: 12px"
@click="doShowMeasuredDlg"
/>
<div class="warning-info-title warning-info-title_div measured-data-list" style="padding-left: 2px;position: relative;z-index: 9;">
<div
:class="measuredNav == 0 ? 'active' : ''"
@click="doMeasuredNav(0, '汇总')"
>
汇总
</div>
<project-overview-chart :key="measuredNav"
<div
:class="measuredNav == 1 ? 'active' : ''"
@click="doMeasuredNav(1, '混凝土')"
>
混凝土
</div>
<div
:class="measuredNav == 6 ? 'active' : ''"
@click="doMeasuredNav(6, '钢筋工程')"
>
钢筋工程
</div>
<div
:class="measuredNav == 2 ? 'active' : ''"
@click="doMeasuredNav(2, '二次结构')"
>
二次结构
</div>
<div
:class="measuredNav == 3 ? 'active' : ''"
@click="doMeasuredNav(3, '房间尺寸')"
>
房间尺寸
</div>
<div
:class="measuredNav == 4 ? 'active' : ''"
@click="doMeasuredNav(4, '装饰装修')"
>
装饰装修
</div>
<div
:class="measuredNav == 5 ? 'active' : ''"
@click="doMeasuredNav(5, '其它')"
>
其它
</div>
</div>
<project-overview-chart
:sp="'\n'"
:maintitle="measuredTotal"
:legend-opt="legendOptCheck"
:sp="'\n'" :maintitle="measuredTotal"
:typedata="measuredData" :text="measuredText" :height="230"></project-overview-chart>
txtTop="12"
:key="measuredNav"
:typedata="measuredData"
:text="measuredText"
:height="260"
gifTop="77px"
style="top: -30px"
></project-overview-chart>
</module-one-1-1>
</el-col>
<el-col :span="6">
<projectChecking></projectChecking>
<!--
<div class="nav-info" style="padding:20px 20px 10px">
@ -196,7 +425,6 @@
验收描述:{{it.intro}}
</div>
</div>-->
</el-col>
</el-row>
</div>
@ -210,28 +438,34 @@
</template>
<script>
import '../components/module/module-one-3-1'
import '../components/project-overview-chart2'
import '../components/rank-chart'
import '../components/idle-list-chart'
import ProblemmodifyDetail from './components/ProblemmodifyDetail.vue'
import showCheckingDlg from './quality/showCheckingDlg.vue'
import materialSealDetialDlg from './quality/materialSealDetialDlg.vue'
import checkDetectionDlg from './quality/checkDetectionDlg.vue'
import measuredDlg from './quality/measuredDlg.vue'
import materialSealChart from './quality/materialSealChart.vue'
import materialSealListDlg from './quality/materialSealListDlg.vue'
import projectChecking from './quality/projectChecking.vue'
import debounce from 'lodash.debounce'
import "../components/module/module-one-3-1";
import "../components/project-overview-chart2";
import "../components/rank-chart";
import "../components/idle-list-chart";
import ProblemmodifyDetail from "./components/ProblemmodifyDetail.vue";
import showCheckingDlg from "./quality/showCheckingDlg.vue";
import materialSealDetialDlg from "./quality/materialSealDetialDlg.vue";
import checkDetectionDlg from "./quality/checkDetectionDlg.vue";
import measuredDlg from "./quality/measuredDlg.vue";
import materialSealChart from "./quality/materialSealChart.vue";
import materialSealListDlg from "./quality/materialSealListDlg.vue";
import projectChecking from "./quality/projectChecking.vue";
import debounce from "lodash.debounce";
export default {
components: {
materialSealListDlg, materialSealChart, ProblemmodifyDetail,showCheckingDlg,materialSealDetialDlg,checkDetectionDlg,measuredDlg,projectChecking
materialSealListDlg,
materialSealChart,
ProblemmodifyDetail,
showCheckingDlg,
materialSealDetialDlg,
checkDetectionDlg,
measuredDlg,
projectChecking,
},
data() {
return {
materialSealList: [],
selDate:'',
selDate: "",
elKey: 0,
materialSealEl: 0,
elSummaryKey: 0,
@ -240,11 +474,11 @@ export default {
dept: null,
projectInfo: null,
safeNav: 0,
safeText:'汇总总数',
safeText: "汇总总数",
rowStyle: {
color:'#B6CFEF',
fontSize:'12px',
height:'32px'
color: "#B6CFEF",
fontSize: "12px",
height: "32px",
},
samplingNav: 0,
measuredNav: 0,
@ -265,80 +499,97 @@ export default {
chk1: 0,
chk2: 0,
chk3: 0,
percent:100
percent: 100,
},
legendOptCheck: {
icon: "rect",
orient:'vertical',
itemWidth:'40%',
right:'15%',
itemWidth:50,
orient: "horizontal",
itemWidth: "50%",
left:240,
right: "10%",
itemWidth: 20,
itemGap: 20,
itemHeight: 20,
textStyle: {
fontSize: 14,
padding: [0, 0, 2, 0],
fontSize: 10,
color: "#c3dbfd",
rich: {
name: {
color: "#c3dbfd",
padding: [5, 5, 20, 5],
padding: [5, 2, 5, 2],
},
percent: {
color: "#4676FD",
padding: [0, 5, 0, 5],
padding: [0, 2, 0, 2],
},
},
},
},
pickerOptions: {
shortcuts: [{
text: '最近一周',
shortcuts: [
{
text: "最近一周",
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
picker.$emit('pick', [start, end]);
}
}, {
text: '最近一个月',
picker.$emit("pick", [start, end]);
},
},
{
text: "最近一个月",
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
picker.$emit('pick', [start, end]);
}
}, {
text: '最近三个月',
picker.$emit("pick", [start, end]);
},
},
{
text: "最近三个月",
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
picker.$emit('pick', [start, end]);
}
}]
picker.$emit("pick", [start, end]);
},
prjs:[]
}
},
],
},
prjs: [],
};
},
created() {
this.init()
this.init();
},
mounted() {
this.$bus.$on("loadProjects", debounce(prjs => {
this.$bus.$on(
"loadProjects",
debounce((prjs) => {
this.prjs = prjs;
}));
this.$bus.$on("projectChange", debounce(res => {
})
);
this.$bus.$on(
"projectChange",
debounce((res) => {
this.projectInfo = res;
this.doDeptChane();
this.checkDetection(0);
this.doMeasuredNav(0,'汇总')
this.doMeasuredNav(0, "汇总");
this.selectTop20materialSeal();
}));
this.$bus.$on("deptChange",debounce(dept=>{
})
);
this.$bus.$on(
"deptChange",
debounce((dept) => {
this.dept = dept;
this.doDeptChane();
this.checkDetection(0);
this.doMeasuredNav(0,'汇总')
this.doMeasuredNav(0, "汇总");
this.selectTop20materialSeal();
}));
})
);
if (this.$root.hasInitHeader) {
this.initMe();
}
@ -347,7 +598,7 @@ export default {
showMaterialSealDlg() {
this.$refs.msListDlg.showDialog({
deptId: this.dept?.id || 0,
projectId:this.projectInfo?.id||0
projectId: this.projectInfo?.id || 0,
});
},
initMe() {
@ -356,21 +607,21 @@ export default {
this.prjs = this.$root.projects || [];
this.doDeptChane();
this.checkDetection(0);
this.doMeasuredNav(0,'汇总')
this.doMeasuredNav(0, "汇总");
this.selectTop20materialSeal();
},
doShowCheckDetectionDlg() {
this.$refs.chkDetectionDlg.showDialog({
deptId: this.dept?.id || 0,
projectId: this.projectInfo.id,
checkType:this.samplingNav
checkType: this.samplingNav,
});
},
doShowMeasuredDlg() {
this.$refs.measuredDlg.showDialog({
deptId: this.dept?.id || 0,
projectId: this.projectInfo.id,
measureType:this.measuredNav
measureType: this.measuredNav,
});
},
showMaterialSeal(it) {
@ -380,12 +631,12 @@ export default {
let postData = {};
postData.deptId = this.dept?.id || 0;
postData.projectId = this.projectInfo?.id || 0;
this.$api.materialSeal.groupTop12Month(postData).then(d=>{
this.materialSealList=(d||[]).map(it=>{
this.$api.materialSeal.groupTop12Month(postData).then((d) => {
this.materialSealList = (d || []).map((it) => {
return {
label:(it.m<10?'0'+it.m:it.m)+'\n'+(it.y+'').substring(2)+'',
value:it.cnt
}
label: (it.m < 10 ? "0" + it.m : it.m) + "\n" + (it.y + "").substring(2) + "",
value: it.cnt,
};
});
this.materialSealEl++;
});
@ -399,24 +650,27 @@ export default {
return;
}
let postData = {
checkType:""+n
checkType: "" + n,
};
postData.deptId = this.dept?.id || 0;
postData.projectId = this.projectInfo?.id || 0;
this.$api.checkDetection.groupByCheckType(postData).then(d=>{
this.$api.checkDetection.groupByCheckType(postData).then((d) => {
let datas = d.data || [];
let tmps=datas.filter(it=>it.id==1);
let tmps = datas.filter((it) => it.id == 1);
this.chkDetection.chk1 = tmps.length > 0 ? tmps[0].projectId || 0 : 0;
tmps=datas.filter(it=>it.id==2);
tmps = datas.filter((it) => it.id == 2);
this.chkDetection.chk2 = tmps.length > 0 ? tmps[0].projectId || 0 : 0;
tmps=datas.filter(it=>it.id==3);
tmps = datas.filter((it) => it.id == 3);
this.chkDetection.chk3 = tmps.length > 0 ? tmps[0].projectId || 0 : 0;
if (this.chkDetection.chk1 == 0) {
this.chkDetection.percent = 100;
} else {
this.chkDetection.percent=(this.chkDetection.chk3*100.0/this.chkDetection.chk1).toFixed(1);
this.chkDetection.percent = (
(this.chkDetection.chk3 * 100.0) /
this.chkDetection.chk1
).toFixed(1);
}
})
});
},
doProbleRowClick(a, b, c) {
this.$refs.probDlg.showDialog(a, 1, this.safeNav, this.selDate);
@ -432,7 +686,7 @@ export default {
let postData = {
deptId: this.dept?.id || 0,
roleType: this.safeNav,
projectId:this.projectInfo?.id||0
projectId: this.projectInfo?.id || 0,
};
if (this.selDate.length > 0) {
postData.startDate = this.$dt(this.selDate[0]).format("YYYY-MM-DD");
@ -440,50 +694,50 @@ export default {
if (this.selDate.length > 1) {
postData.endDate = this.$dt(this.selDate[1]).format("YYYY-MM-DD");
}
this.$api.problemmodify.qualitySummary(postData).then(d=>{
this.summary=(d||[]).map(it=>{
this.$api.problemmodify.qualitySummary(postData).then((d) => {
this.summary = (d || []).map((it) => {
return {
text: it.problemArea,
prop:'0.0',
prop: "0.0",
name: it.problemArea,
value:+it.roleType||0
}
value: +it.roleType || 0,
};
});
this.summaryTotal = 0;
this.summary.forEach(it=>{
this.summary.forEach((it) => {
this.summaryTotal += it.value;
})
this.summary.forEach(it=>{
});
this.summary.forEach((it) => {
if (this.summaryTotal == 0) {
it.prop="0.0"
it.prop = "0.0";
} else {
it.prop=(it.value*100.0/this.summaryTotal).toFixed(1);
it.prop = ((it.value * 100.0) / this.summaryTotal).toFixed(1);
}
});
this.elSummaryKey++;
});
this.$api.problemmodify.qualitySummaryByProject(postData).then(d=>{
this.summaryPrj=(d||[]).map(it=>{
this.$api.problemmodify.qualitySummaryByProject(postData).then((d) => {
this.summaryPrj = (d || []).map((it) => {
return {
...it,
prop: '0.0',
prop: "0.0",
value: it.id || 0,
rate: 0,
}
};
});
this.summaryPrjTotal = 0;
this.summaryPrj.forEach(it=>{
this.summaryPrj.forEach((it) => {
this.summaryPrjTotal += it.value;
});
this.summaryPrj.forEach(it=>{
this.summaryPrj.forEach((it) => {
if (this.summaryPrjTotal == 0) {
it.prop = "0.0"
it.prop = "0.0";
} else {
it.prop = (it.value * 100.0 / this.summaryPrjTotal).toFixed(1);
it.prop = ((it.value * 100.0) / this.summaryPrjTotal).toFixed(1);
}
it.rate =(it.value==0?0:it.isDel * 100.0 / it.value).toFixed(1);
})
it.rate = (it.value == 0 ? 0 : (it.isDel * 100.0) / it.value).toFixed(1);
});
this.elSummaryPrjKey++;
});
//this.doProjectChecking();
@ -495,23 +749,23 @@ export default {
return;
}
let postData = {
measureType:n
measureType: n,
};
postData.deptId = this.dept?.id || 0;
postData.projectId = this.projectInfo?.id || 0;
this.$api.measure.groupMeasureInfo(postData).then(d=>{
this.measuredData=(d.data||[]).map(it=>{
this.$api.measure.groupMeasureInfo(postData).then((d) => {
this.measuredData = (d.data || []).map((it) => {
return {
name: it.measureInfo,
value:it.id
}
value: it.id,
};
});
this.measuredTotal = 0;
this.measuredData.forEach(it=>{
this.measuredData.forEach((it) => {
this.measuredTotal += it.value;
})
});
this.elCheck++;
})
});
},
doSafeNav(n, t) {
this.safeNav = n;
@ -522,7 +776,9 @@ export default {
doProjectChecking() {
this.acceptanceData = [];
//
this.$api.projectChecking.getProjectCheckingList(this.dept?.id||0,this.projectInfo?.id||0).then(d=>{
this.$api.projectChecking
.getProjectCheckingList(this.dept?.id || 0, this.projectInfo?.id || 0)
.then((d) => {
this.acceptanceData = d.rows;
});
//
@ -532,7 +788,7 @@ export default {
// });
},
init() {
this.localStorage = JSON.parse(localStorage.getItem("data1"))
this.localStorage = JSON.parse(localStorage.getItem("data1"));
//
this.overviewInterval = setInterval(this.overviewClick, 5000);
//
@ -545,21 +801,24 @@ export default {
//
getProfileImage(url) {
if (url) {
return '/jhapi' + url + ".min.jpg";
return "/jhapi" + url + ".min.jpg";
}
return url;
},
getBigProfileImage(it) {
if (it.imageUrls) {
let tmps= it.imageUrls.split(",").filter(d=>d).map(it=>{
return '/jhapi' + it;
})
let tmps = it.imageUrls
.split(",")
.filter((d) => d)
.map((it) => {
return "/jhapi" + it;
});
if (tmps.length > 0) {
return tmps;
}
}
if (it.mainImage && it.mainImage.trim()) {
return ['/jhapi' + it.mainImage];
return ["/jhapi" + it.mainImage];
}
return [];
},
@ -573,8 +832,10 @@ export default {
color: #69839e;
cursor: pointer;
}
.warning-info-title_div div {
padding: 0 5px 0 5px !important;
}
.project-quality {
.problemmodify_list {
.el-table__body-wrapper {
&::-webkit-scrollbar {
@ -597,26 +858,27 @@ export default {
.equipment-list-data {
position: relative;
}
.my-svg-icon-blue,.my-svg-icon-green{
.my-svg-icon-blue,
.my-svg-icon-green {
width: 28px;
height: 28px;
position: relative;
top: -10px;
}
.my-svg-icon-green * {
fill: #63F8BC;
fill: #63f8bc;
}
.fgreen {
color: #63F8BC !important;
color: #63f8bc !important;
}
.my-svg-icon {
width: 40px;
height: 40px;
margin-bottom: 20px;
}
.my-svg-icon-blue *, .my-svg-icon *{
fill: #389DE3;
.my-svg-icon-blue *,
.my-svg-icon * {
fill: #389de3;
}
.people-number-con div:nth-child(3) {
background: none;
@ -625,7 +887,8 @@ export default {
position: relative;
bottom: -8px;
}
.bottom-line2,.bottom-line{
.bottom-line2,
.bottom-line {
border: none !important;
position: relative;
}
@ -658,7 +921,7 @@ export default {
display: inline-block;
position: absolute;
width: 60px;
border-bottom: solid 2px #389DE3;
border-bottom: solid 2px #389de3;
bottom: -4px;
opacity: 0.5;
}
@ -667,7 +930,7 @@ export default {
height: 40px;
}
.my-svg-icon2 * {
fill: #01A9FF;
fill: #01a9ff;
}
.nav-info {
@ -693,11 +956,11 @@ export default {
.acceptance-item .row-5 {
//margin-top:10px;
line-height: 30px;
color: #C7DAFD;
color: #c7dafd;
}
.acceptance-item .row-3 {
line-height: 30px;
color:#4996D4;
color: #4996d4;
}
.acceptance-item .row-1 {
display: flex;
@ -714,8 +977,8 @@ export default {
}
.acceptance-item .sp-lbl {
background: #074031;
border:solid 1px #1D642C;
color: #41AA20;
border: solid 1px #1d642c;
color: #41aa20;
padding: 2px 8px;
float: left;
width: 35%;
@ -756,6 +1019,5 @@ export default {
padding: 0px 5px;
}
}
}
</style>