<template>
    <div class="project-safety">
        <div class="screen-content">
            <el-row>
                <el-col :span="12" style="position: relative;">
                    <module-one-3-1 label="安全隐患检查">
                        <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>
                            <project-overview-chart2 :key="'b' + safeNav" :sp="'\n'" :maintitle="fmt(summaryTotal)"
                                :typedata="summary" :text="safeText" :height="230"></project-overview-chart2>
                        </div>
                        <div class="proble-list" v-if="isTypeBuser()">                            
                            <div class="my-module-title module-title" style="" >安全隐患明细</div>            
                            <ProblemmodifyList ref="probList"></ProblemmodifyList>                
                        </div>
                        <div v-else style="padding:0px 20px" :key="'c' + elSummaryPrjKey">
                            <el-row>
                               
                                <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">
                                            <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">
                                            </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>
                                                </template>
                                            </el-table-column>
                                            <el-table-column prop="id" label="隐患数" width="70" align="center">
                                                <template slot-scope="scope">
                                                    <div>{{ scope.row.id }} </div>
                                                </template>
                                            </el-table-column>
                                            <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">
                                                    <!--{{scope.row.isDel}}/{{ scope.row.value }}={{scope.row.rate}}-->
                                                    <idle-list-chart :prop="Number(scope.row.rate)"
                                                        color="#6ab9fe"></idle-list-chart>
                                                </template>
                                            </el-table-column>
                                        </el-table>
                                    </div>
                                </el-col>
                            </el-row>
                        </div>
                    </module-one-3-1>
                </el-col>
                <el-col :span="6">
                    <module-one-1-1 :label="'教育培训(' + WorkTrainCnt1 + ')'" style="position: relative;">
                        <img src="images/icon2001.png"
                            style="position: absolute;cursor: pointer;right: 20px;top: 13px;z-index: 9;" v-if="projects.length>1"
                            @click="doShowWorkTrain(0)">
                        <enginChart ref="chart3" :height="300"></enginChart>                        
                    </module-one-1-1>
                    <module-one-1-1 :label="'应急演练(' + WorkTrainCnt2 + ')'" style="position: relative;">
                        <img src="images/icon2001.png"
                            style="position: absolute;cursor: pointer;right: 20px;top: 13px;z-index: 9;" v-if="projects.length>1"
                            @click="doShowWorkTrain(1)">
                        <enginChart ref="chart4" :height="300"></enginChart>                        
                    </module-one-1-1>
                    <module-one-1-1 label="特种作业人员" style="position: relative;">
                        <img src="images/icon2001.png" v-if="isTypeBuser()"
                            style="position: absolute;cursor: pointer;right: 20px;top: 13px;z-index: 9;" 
                            @click="doSpecialRowClick">
                        <SpecialList ref="specList" v-if="isTypeBuser()"></SpecialList>
                        <div v-else class="quality-table special-table">
                            <el-table :data="specialDataList" class="mytable"
                                style="width: 100%;background: transparent;" height="265" ref="fbsubordinateUnit"
                                @row-click="doSpecialRowClick">
                                <el-table-column prop="projectName" label="项目名称" min-width="180"></el-table-column>
                                <el-table-column prop="total" label="操作证数"> </el-table-column>
                                <el-table-column prop="void" label="已过期">
                                    <template slot-scope="scope">
                                        <span style="color:#01A9FF">{{ scope.row.void }}</span>
                                    </template>
                                </el-table-column>
                            </el-table>
                        </div>
                    </module-one-1-1>
                </el-col>
                <el-col :span="6">
                    <module-one-1-1 :label="fileTitle">
                        <div class="file-nav">
                            <span class="file-nav-item" :class="fileNav == 1 ? 'active' : ''"
                                @click="fileNavChage(1)">上级部门</span>
                            <span class="file-nav-item" :class="fileNav == 2 ? 'active' : ''"
                                @click="fileNavChage(2)">集团公司</span>
                            <span class="file-nav-item" :class="fileNav == 3 ? 'active' : ''"
                                @click="fileNavChage(3)">子分公司</span>
                        </div>
                        <div class="file-list scroll">
                            <div v-for="(it, id) in fileList" :key="id" class="file-item">
                                <svg v-if="it.fileType == 'PDF'" class="my-svg-icon2"
                                    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="1379">
                                    <path
                                        d="M905.185809 178.844158C898.576738 172.685485 891.19337 165.824412 883.21687 158.436127 860.422682 137.322863 837.434925 116.207791 815.697647 96.487895 813.243072 94.261877 813.243072 94.261877 810.786411 92.037081 781.783552 65.781062 757.590948 44.376502 739.713617 29.293612 729.254178 20.469111 721.020606 13.860686 714.970549 9.501727 710.955023 6.608611 707.690543 4.524745 704.47155 2.998714 700.417679 1.07689 696.638044-0.094029 691.307277 0.005928 677.045677 0.273349 665.6 11.769337 665.6 26.182727L665.6 77.352844 665.6 128.522961 665.6 230.863194 665.6 256.448252 691.2 256.448252 896 256.448252 870.4 230.863194 870.4 998.414942 896 972.829884 230.381436 972.829884C187.90385 972.829884 153.6 938.623723 153.6 896.20663L153.6 26.182727 128 51.767786 588.8 51.767786C602.93849 51.767786 614.4 40.312965 614.4 26.182727 614.4 12.05249 602.93849 0.597669 588.8 0.597669L128 0.597669 102.4 0.597669 102.4 26.182727 102.4 896.20663C102.4 966.91021 159.652833 1024 230.381436 1024L896 1024 921.6 1024 921.6 998.414942 921.6 230.863194 921.6 205.278135 896 205.278135 691.2 205.278135 716.8 230.863194 716.8 128.522961 716.8 77.352844 716.8 26.182727C716.8 39.813762 705.748075 50.91427 692.267725 51.167041 687.705707 51.252584 685.069822 50.435995 682.52845 49.231204 682.259458 49.103682 683.344977 49.796618 685.029451 51.010252 689.779394 54.432502 697.145822 60.34494 706.686383 68.394196 724.009052 83.009121 747.816448 104.072869 776.413589 129.961594 778.850014 132.168064 778.850014 132.168064 781.285216 134.376514 802.876774 153.964212 825.739479 174.96442 848.413564 195.966437 856.350957 203.3185 863.697005 210.144893 870.269888 216.269843 874.209847 219.941299 877.019309 222.565641 878.499674 223.951409 888.81866 233.610931 905.019017 233.081212 914.684179 222.768247 924.349344 212.455283 923.819315 196.264383 913.500326 186.604861 911.981323 185.182945 909.155025 182.542876 905.185809 178.844158ZM102.4 461.128719 0 461.128719 0 896.074709 512 896.074709 1024 896.074709 1024 461.128719 153.6 461.128719 153.6 460.531049 102.4 460.531049 102.4 461.128719ZM208.2 711 208.2 819.2 157.6 819.2 157.6 528 269 528C301.533495 528 327.366571 536.466581 346.5 553.4 365.633429 570.333419 375.2 592.733195 375.2 620.6 375.2 649.133476 365.833427 671.333254 347.1 687.2 328.366573 703.066746 302.133502 711 268.4 711L208.2 711ZM208.2 670.4 269 670.4C287.00009 670.4 300.733286 666.166709 310.2 657.7 319.666714 649.233291 324.4 637.000079 324.4 621 324.4 605.266588 319.600047 592.700047 310 583.3 300.399951 573.899953 287.200083 569.066669 270.4 568.8L208.2 568.8 208.2 670.4ZM419.4 819.2 419.4 528 505.4 528C531.133461 528 553.966566 533.733276 573.9 545.2 593.833434 556.666724 609.266611 572.933229 620.2 594 631.133389 615.066771 636.6 639.199863 636.6 666.4L636.6 681C636.6 708.600139 631.100055 732.866562 620.1 753.8 609.099945 774.733438 593.433436 790.866609 573.1 802.2 552.766564 813.533391 529.466799 819.2 503.2 819.2L419.4 819.2ZM470 568.8 470 778.8 503 778.8C529.533466 778.8 549.89993 770.500083 564.1 753.9 578.30007 737.299917 585.533331 713.466822 585.8 682.4L585.8 666.2C585.8 634.599842 578.933402 610.46675 565.2 593.8 551.466598 577.13325 531.533463 568.8 505.4 568.8L470 568.8ZM854.8 695.8 737.6 695.8 737.6 819.2 687 819.2 687 528 872 528 872 568.8 737.6 568.8 737.6 655.4 854.8 655.4 854.8 695.8Z"
                                        fill="#5E5E5E" p-id="1380"></path>
                                </svg>
                                <svg v-if="it.fileType == 'PPT' || it.fileType == 'PPTX'"
                                    style="vertical-align: middle;fill: currentColor;overflow: hidden;"
                                    t="1692028054240" class="icon my-svg-icon2" viewBox="0 0 1024 1024" version="1.1"
                                    xmlns="http://www.w3.org/2000/svg" p-id="1331">
                                    <path
                                        d="M938.666667 469.333333a85.333333 85.333333 0 0 1 85.333333 85.333334v213.333333a85.333333 85.333333 0 0 1-85.333333 85.333333H85.333333a85.333333 85.333333 0 0 1-85.333333-85.333333v-213.333333a85.333333 85.333333 0 0 1 85.333333-85.333334h853.333334zM282.922667 536.490667H169.258667V810.666667h44.970666v-105.216h67.968c66.816 0 100.224-28.416 100.224-84.864 0-56.064-33.408-84.096-99.456-84.096z m251.562666 0H420.821333V810.666667h44.928v-105.216h67.925334c66.858667 0 100.266667-28.416 100.266666-84.864 0-56.064-33.450667-84.096-99.498666-84.096z m341.333334 0h-224.64v38.4h89.898666V810.666667h44.928v-235.776h89.813334v-38.4z m-596.352 38.4c19.626667 0 34.176 3.456 43.434666 10.752 9.216 6.912 14.208 18.432 14.208 34.944 0 16.512-4.608 28.416-13.824 35.712-9.216 6.912-23.808 10.752-43.776 10.752H214.186667v-92.16h65.28z m251.52 0c19.626667 0 34.176 3.456 43.434666 10.752 9.216 6.912 14.208 18.432 14.208 34.944 0 16.512-4.608 28.416-13.824 35.712-9.216 6.912-23.808 10.752-43.818666 10.752h-65.28v-92.16h65.28z"
                                        fill="#008df0" p-id="1332"></path>
                                    <path
                                        d="M609.408 10.538667l314.709333 275.370666a42.666667 42.666667 0 0 1 14.549334 32.128V896a128 128 0 0 1-120.490667 127.786667L810.666667 1024H213.333333a128 128 0 0 1-127.786666-120.490667L85.333333 896V128A128 128 0 0 1 205.824 0.213333L213.333333 0h367.957334a42.666667 42.666667 0 0 1 28.117333 10.538667zM512 85.333333H213.333333a42.666667 42.666667 0 0 0-42.368 37.674667L170.666667 128v768a42.666667 42.666667 0 0 0 37.674666 42.368L213.333333 938.666667h597.333334a42.666667 42.666667 0 0 0 42.368-37.674667L853.333333 896V384h-213.333333a128 128 0 0 1-127.146667-113.066667l-0.64-7.424L512 256V85.333333z m295.338667 213.333334L597.333333 103.808V256a42.666667 42.666667 0 0 0 37.674667 42.368L640 298.666667h167.338667z"
                                        fill="#008df0" p-id="1333"></path>
                                </svg>
                                <svg v-if="it.fileType == 'XLS' || it.fileType == 'XLSX'"
                                    style="vertical-align: middle;fill: currentColor;overflow: hidden;"
                                    t="1692028166276" class="icon my-svg-icon2" viewBox="0 0 1024 1024" version="1.1"
                                    xmlns="http://www.w3.org/2000/svg" p-id="1478">
                                    <path
                                        d="M896 0a128 128 0 0 1 127.786667 120.490667L1024 128v768a128 128 0 0 1-120.490667 127.786667L896 1024H298.666667a128 128 0 0 1-127.786667-120.490667L170.666667 896v-128H85.333333a85.333333 85.333333 0 0 1-85.333333-85.333333V341.333333a85.333333 85.333333 0 0 1 85.333333-85.333333h85.333334V128A128 128 0 0 1 291.157333 0.213333L298.666667 0h597.333333z m0 85.333333H298.666667a42.666667 42.666667 0 0 0-42.368 37.674667L256 128v128h170.666667a85.333333 85.333333 0 0 1 85.333333 85.333333v341.333334a85.333333 85.333333 0 0 1-85.333333 85.333333H256v128a42.666667 42.666667 0 0 0 37.674667 42.368L298.666667 938.666667h597.333333a42.666667 42.666667 0 0 0 42.368-37.674667L938.666667 896V128a42.666667 42.666667 0 0 0-37.674667-42.368L896 85.333333z m-42.666667 554.666667a42.666667 42.666667 0 0 1 0 85.333333h-213.333333a42.666667 42.666667 0 0 1 0-85.333333h213.333333zM181.76 378.026667H125.013333l102.4 147.2L117.76 682.666667h56.746667L256 561.92 337.493333 682.666667h56.746667l-110.506667-157.44 103.253334-147.2H330.24L256 488.106667 181.76 378.026667zM853.333333 469.333333a42.666667 42.666667 0 0 1 0 85.333334h-213.333333a42.666667 42.666667 0 0 1 0-85.333334h213.333333z m0-170.666666a42.666667 42.666667 0 0 1 0 85.333333h-213.333333a42.666667 42.666667 0 0 1 0-85.333333h213.333333z"
                                        fill="#008df0" p-id="1479"></path>
                                </svg>
                                <svg v-if="it.fileType == 'DOC' || it.fileType == 'DOCX'"
                                    style="vertical-align: middle;fill: currentColor;overflow: hidden;"
                                    t="1692028476347" class="icon my-svg-icon2" viewBox="0 0 1024 1024" version="1.1"
                                    xmlns="http://www.w3.org/2000/svg" p-id="1626">
                                    <path
                                        d="M256 896a42.666667 42.666667 0 0 0 37.674667 42.368L298.666667 938.666667h597.333333a42.666667 42.666667 0 0 0 42.368-37.674667L938.666667 896V128a42.666667 42.666667 0 0 0-42.666667-42.666667H298.666667a42.666667 42.666667 0 0 0-42.368 37.674667L256 128v128h170.666667a85.333333 85.333333 0 0 1 85.333333 85.333333v341.333334a85.333333 85.333333 0 0 1-85.333333 85.333333H256v128z m597.333333-256a42.666667 42.666667 0 0 1 0 85.333333h-213.333333a42.666667 42.666667 0 0 1 0-85.333333h213.333333zM108.373333 378.026667H55.893333L143.36 682.666667h49.92l61.866667-235.093334h1.706666L318.72 682.666667h49.493333l87.893334-304.64H403.626667l-59.306667 237.226666h-1.706667L280.32 378.026667H231.68l-62.293333 237.226666h-1.706667L108.373333 378.026667zM853.333333 469.333333a42.666667 42.666667 0 0 1 0 85.333334h-213.333333a42.666667 42.666667 0 0 1 0-85.333334h213.333333z m0-170.666666a42.666667 42.666667 0 0 1 0 85.333333h-213.333333a42.666667 42.666667 0 0 1 0-85.333333h213.333333zM85.333333 768a85.333333 85.333333 0 0 1-85.333333-85.333333V341.333333a85.333333 85.333333 0 0 1 85.333333-85.333333h85.333334V128A128 128 0 0 1 291.157333 0.213333L298.666667 0h597.333333a128 128 0 0 1 127.786667 120.490667L1024 128v768a128 128 0 0 1-120.490667 127.786667L896 1024H298.666667a128 128 0 0 1-127.786667-120.490667L170.666667 896v-128H85.333333z"
                                        fill="#008df0" p-id="1627"></path>
                                </svg>
                                <svg v-if="it.fileType == 'TXT'"
                                    style="vertical-align: middle;fill: currentColor;overflow: hidden;"
                                    t="1692028607806" class="icon my-svg-icon2" viewBox="0 0 1024 1024" version="1.1"
                                    xmlns="http://www.w3.org/2000/svg" p-id="1774">
                                    <path
                                        d="M581.290667 0a42.666667 42.666667 0 0 1 28.117333 10.538667l314.709333 275.370666a42.666667 42.666667 0 0 1 14.549334 32.128V896a128 128 0 0 1-120.490667 127.786667L810.666667 1024H213.333333a128 128 0 0 1-127.786666-120.490667L85.333333 896V128A128 128 0 0 1 205.824 0.213333L213.333333 0h367.957334zM512 85.333333H213.333333a42.666667 42.666667 0 0 0-42.368 37.674667L170.666667 128v768a42.666667 42.666667 0 0 0 37.674666 42.368L213.333333 938.666667h597.333334a42.666667 42.666667 0 0 0 42.368-37.674667L853.333333 896V384h-213.333333a128 128 0 0 1-127.146667-113.066667l-0.64-7.424L512 256V85.333333z m178.901333 384.170667v59.733333h-139.818666v366.933334H481.152v-366.933334H341.333333v-59.733333h349.568zM597.333333 103.808V256a42.666667 42.666667 0 0 0 37.674667 42.368L640 298.666667h167.338667L597.333333 103.808z"
                                        fill="#008df0" p-id="1775"></path>
                                </svg>
                                <svg v-if="it.fileType == 'PNG' || it.fileType == 'JPG' || it.fileType == 'JPEG'"
                                    style="vertical-align: middle;fill: currentColor;overflow: hidden;"
                                    t="1692028684554" class="icon my-svg-icon2" viewBox="0 0 1117 1024" version="1.1"
                                    xmlns="http://www.w3.org/2000/svg" p-id="1922">
                                    <path
                                        d="M977.454545 0a139.636364 139.636364 0 0 1 139.636364 139.636364v744.727272a139.636364 139.636364 0 0 1-139.636364 139.636364H139.636364a139.636364 139.636364 0 0 1-139.636364-139.636364V139.636364a139.636364 139.636364 0 0 1 139.636364-139.636364zM321.163636 495.848727L93.090909 761.902545V884.363636a46.545455 46.545455 0 0 0 41.099636 46.219637L139.636364 930.909091h837.818181a46.312727 46.312727 0 0 0 23.319273-6.237091 42.914909 42.914909 0 0 1-8.052363-5.818182l-4.049455-4.189091-196.189091-236.637091-151.04 188.881455a46.545455 46.545455 0 0 1-71.586909 1.396364l-3.490909-4.654546L321.163636 495.848727zM977.454545 93.090909H139.636364a46.545455 46.545455 0 0 0-46.545455 46.545455v479.232l197.352727-230.260364a46.545455 46.545455 0 0 1 70.656-0.046545l3.444364 4.514909 243.944727 365.940363 146.432-183.016727a46.545455 46.545455 0 0 1 67.677091-5.306182l4.002909 4.096L1024 811.659636V139.636364a46.545455 46.545455 0 0 0-41.099636-46.219637L977.454545 93.090909z m-186.181818 139.636364a93.090909 93.090909 0 1 1 0 186.181818 93.090909 93.090909 0 0 1 0-186.181818z"
                                        fill="#008df0" p-id="1923"></path>
                                </svg>
                                <svg v-if="it.fileType == 'MP4'"
                                    style="vertical-align: middle;fill: currentColor;overflow: hidden;"
                                    t="1692028772745" class="icon my-svg-icon2" viewBox="0 0 1117 1024" version="1.1"
                                    xmlns="http://www.w3.org/2000/svg" p-id="2072">
                                    <path
                                        d="M977.454545 0a139.636364 139.636364 0 0 1 139.403637 131.444364L1117.090909 139.636364v744.727272a139.636364 139.636364 0 0 1-131.444364 139.403637L977.454545 1024H139.636364a139.636364 139.636364 0 0 1-139.403637-131.444364L0 884.363636V139.636364A139.636364 139.636364 0 0 1 131.444364 0.232727L139.636364 0h837.818181z m46.545455 302.545455h-122.228364l-7.214545 5.818181-4.608-5.818181h-267.450182l-7.214545 5.818181-4.608-5.818181H343.226182l-7.214546 5.818181L331.403636 302.545455H93.090909V884.363636a46.545455 46.545455 0 0 0 41.099636 46.219637L139.636364 930.909091h837.818181a46.545455 46.545455 0 0 0 46.219637-41.099636L1024 884.363636V302.545455zM484.212364 422.818909l4.654545 2.420364 279.272727 162.909091a46.545455 46.545455 0 0 1 5.12 76.986181l-5.12 3.444364-279.272727 162.909091a46.545455 46.545455 0 0 1-69.678545-34.909091L418.909091 791.272727v-325.818182a46.545455 46.545455 0 0 1 65.303273-42.635636zM512 546.443636v163.793455l140.381091-81.92L512 546.443636zM163.84 93.090909H139.636364a46.545455 46.545455 0 0 0-46.219637 41.099636L93.090909 139.636364v69.818181h163.84l-93.090909-116.363636z m279.272727 0H282.996364l93.090909 116.363636h160.116363l-93.090909-116.363636z m279.272728 0h-160.116364l93.090909 116.363636h160.116364l-93.090909-116.363636zM977.454545 93.090909h-135.912727l93.090909 116.363636H1024V139.636364a46.545455 46.545455 0 0 0-41.099636-46.219637L977.454545 93.090909z"
                                        fill="#008df0" p-id="2073"></path>
                                </svg>
                                <div style="flex-grow: 1;padding-left: 20px;line-height: 24px;width: 75%;">
                                    <div class="file-name">{{ it.fileName }}</div>
                                    <div style="color: #aaa;" class="file-time">{{ it.createTime | formatDate }}</div>
                                    <div style="color: #aaa;" class="file-time"><svg
                                            style="vertical-align: text-bottom;cursor: pointer;" t="1697992702309"
                                            class="icon" viewBox="0 0 1024 1024" version="1.1"
                                            xmlns="http://www.w3.org/2000/svg" p-id="4259" width="16" height="16">
                                            <path
                                                d="M512 768c-183.466667 0-328.533333-85.333333-426.666667-256 98.133333-170.666667 243.2-256 426.666667-256s328.533333 85.333333 426.666667 256c-98.133333 170.666667-243.2 256-426.666667 256z m8.533333-426.666667c-128 0-256 55.466667-328.533333 170.666667 72.533333 115.2 200.533333 170.666667 328.533333 170.666667s238.933333-55.466667 311.466667-170.666667c-72.533333-115.2-183.466667-170.666667-311.466667-170.666667z m-8.533333 298.666667c-72.533333 0-128-55.466667-128-128s55.466667-128 128-128 128 55.466667 128 128-55.466667 128-128 128z m0-85.333333c25.6 0 42.666667-17.066667 42.666667-42.666667s-17.066667-42.666667-42.666667-42.666667-42.666667 17.066667-42.666667 42.666667 17.066667 42.666667 42.666667 42.666667z"
                                                fill="#01A9FF" p-id="4260"></path>
                                        </svg> <span style="color:#01A9FF;cursor: pointer;">{{ it.readNum }}</span></div>
                                </div>
                                <div>
                                    <span @click="downloadFile(it)" class="file-detail">查看详情</span>
                                </div>
                            </div>
                            <div v-if="!fileList || fileList.length == 0" style="text-align: center;">
                                <img src="images/nodata.png" style="width: 240px;">
                                <div style="text-align: center;">暂无数据</div>
                            </div>
                        </div>

                    </module-one-1-1>
                    <module-one-1-1 label="作业审批" style="position: relative;">
                        <div class="warning-info-title" style="padding-left: 8px;font-size:14px;">
                            <div :class="infoNav == 'sxkj' ? 'active' : ''" @click="onWarningInfoNav('sxkj', '受限空间')">
                                受限空间</div>
                            <div :class="infoNav == 'dhzy' ? 'active' : ''" @click="onWarningInfoNav('dhzy', '动火作业')">
                                动火作业</div>
                            <div :class="infoNav == 'lsyd' ? 'active' : ''" @click="onWarningInfoNav('lsyd', '临时用电')">
                                临时用电</div>
                            <div :class="infoNav == 'gczy' ? 'active' : ''" @click="onWarningInfoNav('gczy', '高处作业')">
                                高处作业</div>
                            <div :class="infoNav == 'dzzy' ? 'active' : ''" @click="onWarningInfoNav('dzzy', '吊装作业')">
                                吊装作业</div>                            
                        </div>
                        <div v-if="safetyWorkFlowList && safetyWorkFlowList.length > 0"
                            class="quality-table special-table scroll"
                            style="overflow-x: hidden;overflow-y: scroll;height: 238px;margin-right: 12px;">
                            <el-table :data="safetyWorkFlowList" class="mytable" style="background: transparent;">
                                <el-table-column prop="businessKeyName" label="项目名称" min-width="150"></el-table-column>
                                <el-table-column prop="total" label="申请状态">
                                    <template slot-scope="scope">
                                        <span v-show="!scope.row.finishTime" style="color:#01A9FF">进行中</span>
                                        <span v-show="scope.row.finishTime" style="color:rgb(30 215 51)">已完成</span>
                                    </template>
                                </el-table-column>
                                <el-table-column prop="createTime" label="申请时间" min-width="90">
                                    <template slot-scope="scope">
                                        {{ scope.row.createTime | formatDate('YYYY-MM-DD') }}
                                    </template>
                                </el-table-column>
                                <el-table-column prop="void" label="申请附件">
                                    <template slot-scope="scope">
                                        <span @click="downloadFlowFile(scope.row)" class="file-detail">查看</span>
                                    </template>
                                </el-table-column>
                            </el-table>
                        </div>
                        <div v-if="!safetyWorkFlowList || safetyWorkFlowList.length == 0" style="text-align: center;">
                            <img src="images/nodata.png" style="width: 240px;">
                            <div style="text-align: center;">暂无数据</div>
                        </div>
                    </module-one-1-1>
                    <module-one-1-1 label="保险采购明细">
                        <div class="quality-table special-table">
                            <el-table :data="insuranceDataList" class="my-table"
                                style="width: 100%;background: transparent;" height="265"
                                @row-click="doInsuranceRowClick" ref="fbsubordinateUnit">

                                <el-table-column prop="projectName" label="项目名称" align="left" min-width="180">
                                </el-table-column>
                                <el-table-column prop="azxstate" label="安责险" class-name="td-center" align="center">
                                    <template slot-scope="scope">
                                        <svg v-if="scope.row.azxstate == '已办理'" style="width: 1em;height: 1em;position: relative;
                            top: -2px;vertical-align: middle;fill: currentColor;overflow: hidden;"
                                            viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"
                                            p-id="3100">
                                            <path
                                                d="M802.922882 383.309012 428.076612 758.155283 220.943065 551.154765c-22.317285-22.317285-22.317285-55.993269 0-78.310553 22.450315-22.450315 55.993269-22.450315 78.443583 0l128.689964 128.689964L724.613352 304.999482c22.450315-22.450315 55.993269-22.450315 78.30953 0C825.373197 327.316767 825.373197 360.858698 802.922882 383.309012zM512 64.322981c-246.155283 0-447.677019 201.521736-447.677019 447.677019s201.521736 447.677019 447.677019 447.677019 447.677019-201.521736 447.677019-447.677019S758.155283 64.322981 512 64.322981z"
                                                fill="#22C134" p-id="3101"></path>
                                        </svg>
                                        <svg v-else style="width: 1em;height: 1em;position: relative;
                            top: -2px;vertical-align: middle;fill: currentColor;overflow: hidden;"
                                            viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"
                                            p-id="3472">
                                            <path
                                                d="M512 981.333333C252.8 981.333333 42.666667 771.2 42.666667 512S252.8 42.666667 512 42.666667s469.333333 210.133333 469.333333 469.333333-210.133333 469.333333-469.333333 469.333333z m44.245333-469.333333l159.914667-159.914667a31.274667 31.274667 0 1 0-44.245333-44.245333L512 467.754667 352.085333 307.84a31.274667 31.274667 0 1 0-44.245333 44.245333L467.754667 512l-159.914667 159.914667a31.274667 31.274667 0 1 0 44.245333 44.245333L512 556.245333l159.914667 159.914667a31.274667 31.274667 0 1 0 44.245333-44.245333L556.245333 512z"
                                                fill="#F5222D" p-id="3473"></path>
                                        </svg>
                                        <span style="color:#fff">{{ scope.row.azxstate }}</span>
                                    </template>
                                </el-table-column>
                                <el-table-column prop="yqxstate" class-name="td-center" label="一切险" align="center">
                                    <template slot-scope="scope">
                                        <svg v-if="scope.row.yqxstate =='已办理'" style="width: 1em;height: 1em;position: relative;
                            top: -2px;vertical-align: middle;fill: currentColor;overflow: hidden;"
                                            viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"
                                            p-id="3100">
                                            <path
                                                d="M802.922882 383.309012 428.076612 758.155283 220.943065 551.154765c-22.317285-22.317285-22.317285-55.993269 0-78.310553 22.450315-22.450315 55.993269-22.450315 78.443583 0l128.689964 128.689964L724.613352 304.999482c22.450315-22.450315 55.993269-22.450315 78.30953 0C825.373197 327.316767 825.373197 360.858698 802.922882 383.309012zM512 64.322981c-246.155283 0-447.677019 201.521736-447.677019 447.677019s201.521736 447.677019 447.677019 447.677019 447.677019-201.521736 447.677019-447.677019S758.155283 64.322981 512 64.322981z"
                                                fill="#22C134" p-id="3101"></path>
                                        </svg>
                                        <svg v-else style="width: 1em;height: 1em;position: relative;
                            top: -2px;vertical-align: middle;fill: currentColor;overflow: hidden;"
                                            viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"
                                            p-id="3472">
                                            <path
                                                d="M512 981.333333C252.8 981.333333 42.666667 771.2 42.666667 512S252.8 42.666667 512 42.666667s469.333333 210.133333 469.333333 469.333333-210.133333 469.333333-469.333333 469.333333z m44.245333-469.333333l159.914667-159.914667a31.274667 31.274667 0 1 0-44.245333-44.245333L512 467.754667 352.085333 307.84a31.274667 31.274667 0 1 0-44.245333 44.245333L467.754667 512l-159.914667 159.914667a31.274667 31.274667 0 1 0 44.245333 44.245333L512 556.245333l159.914667 159.914667a31.274667 31.274667 0 1 0 44.245333-44.245333L556.245333 512z"
                                                fill="#F5222D" p-id="3473"></path>
                                        </svg>
                                        <span style="color:#fff">{{ scope.row.yqxstate }}</span>
                                    </template>
                                </el-table-column>
                            </el-table>
                        </div>
                    </module-one-1-1>
                </el-col>
            </el-row>
        </div>
        <worktrainDlg ref="workTrainDlg"></worktrainDlg>
        <projectSpecialDlg ref="projectSpecialDlg"></projectSpecialDlg>
        <ProblemmodifyDetail ref="probDlg"></ProblemmodifyDetail>
        <AttendanceDetailDialog ref="attDetailDlg"></AttendanceDetailDialog>
        <projectInsuranceDlg ref="insDlg"></projectInsuranceDlg>
        <JobWorkerDialog ref="jobWorkerdlg"></JobWorkerDialog>
        <workTrainListDlg ref="workTrainListDlg"></workTrainListDlg>
    </div>
</template>

<script>

import '../components/module/module-one-2-1'
import '../components/module/module-one-3-1'
import '../components/project-overview-chart2'
import '../components/rank-chart'
import '../components/staff-survey-chart'
import '../components/idle-list-chart'
import worktrainDlg from './dlg/workTrainDlg.vue'
import projectSpecialDlg from './dlg/projectSpecialDlg.vue'
import ProblemmodifyDetail from './components/ProblemmodifyDetail.vue'
import projectInsuranceDlg from './safe/projectInsuranceDlg.vue'
import AttendanceDetailDialog from './components/AttendanceDetailDialog.vue'
import JobWorkerDialog from './components/JobWorkerDialog.vue'
import debounce from 'lodash.debounce'
import enginChart from './engin/enginChart.vue'
import workTrainListDlg from './safe/workTrainListDlg.vue'
import ProblemmodifyList from './components/ProblemmodifyList.vue'
import SpecialList from './safe/SpecialList.vue'
export default {
    components: {
        worktrainDlg,
        projectSpecialDlg,
        ProblemmodifyDetail, AttendanceDetailDialog,
        projectInsuranceDlg, JobWorkerDialog, enginChart, workTrainListDlg,ProblemmodifyList,SpecialList
    },
    data() {
        return {
            dictWorkTrainDataType: [],
            selDate: [],
            elSummaryKey: 0,
            elSummaryPrjKey: 0,
            elKey: 0,
            dept: null,
            projectInfo: null,
            projects: [],
            safeNav: 0,
            safeText: '汇总总数',
            rowStyle: {
                color: '#B6CFEF',
                fontSize: '12px',
                height: '32px'
            },
            //培训图表1
            WorkTrainCnt1: 0,
            WorkTrainChart1: [],
            //培训图表2
            WorkTrainCnt2: 0,
            WorkTrainChart2: [],
            // 教育培训数据
            workTrainList: [],
            // 应急演练数据
            emergencyDrillList: [],
            // 传达文件路由
            fileNav: 1,
            // 传达文件标题
            fileTitle: "传达文件",
            // 传达文件列表
            fileList: [],
            infoNav: 'sxkj',
            staffText: '在岗人员',
            surveyUrl: 'images/survey_icon_4.png',
            laborPersonnelTotal: 0,
            laborPersonnelData: [
                { text: "总包人员", value: 0 },
                { text: "监理人员", value: 0 },
                { text: "劳务人员", value: 0 },
            ],
            safetyWorkFlowList: [],
            //特种作业人员
            specialDataList: [],
            //保险采购明细
            insuranceDataList: [
               
            ],
            summary: [],
            summaryTotal: 0,
            summaryPrj: [],
            summaryPrjTotal: 0,
            pickerOptions: {
                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: '最近一个月',
                    onClick(picker) {
                        const end = new Date();
                        const start = new Date();
                        start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
                        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]);
                    }
                }]
            },
        }
    },
    created() {
        this.init();
        this.$api.dict('work_train_data_type').then(d => {
            this.dictWorkTrainDataType = d || [];
        });
    },
    mounted() {  
        let dt1=this.$dt((+new Date())-30*24*3600*1000);
        let dt2=this.$dt(new Date());
        this.selDate=[dt1,dt2];
        this.$bus.$on("projectChange", debounce(res => {
            this.projectInfo = res;
            this.dtChange();
            this.getWorkTrainChart();
            //this.getWorkTrainList();
            //this.getEmergencyDrillList();
            this.getProjectSpecialView();
            this.getDeptSafetyWorksList();
            this.getProjectInsuranceList();
        }));
        this.$bus.$on("loadProjects", debounce(prjs => {
            this.projects = prjs;
        }))
        this.$bus.$on("deptChange", debounce(dept => {
            this.dept = dept;
            this.dtChange();
            //this.getWorkTrainList();
            //this.getEmergencyDrillList();
            this.getProjectSpecialView();
            this.getDeptSafetyWorksList();
            this.getProjectInsuranceList();
            if (this.fileNav == 3) {
                this.getWorkFileList();
            }
        }));
        if (this.$root.hasInitHeader) {
            this.initMe();
        }
        setTimeout(()=>{
            this.dtChange(true);            
        },400);
    },
    methods: {
        isTypeBuser(){
            return this.$root.isTypeBuser;
        }, 
        doShowWorkTrain(type) {
            this.$refs.workTrainListDlg.showDialog({
                type: type,
                deptId: this.dept.id || 0,
                projectId: this.projectInfo?.id || 0,
                prj: this.projectInfo || {},
                dicts: this.dictWorkTrainDataType.filter(d => d.cssClass == (type == 0 ? 'a' : 'b'))
            });
        },
        doShowAttendanceDetail() {
            let data = {
                deptId: this.dept.id || 0,
                projectId: this.projectInfo?.id || 0,
                attendanceTime: this.$dt(new Date()).format("YYYY-MM-DD")
            }
            if (this.infoNav == 1) {
                this.$refs.attDetailDlg.showDialog(data);
            } else {
                this.$refs.jobWorkerdlg.showDialog(data);
            }
        },
        initMe() {
            this.projectInfo = this.$root.project || {};
            this.dept = this.$root.dept || {};
            this.projects = this.$root.projects || [];            
            this.getWorkTrainChart();
            //this.getWorkTrainList();
            //this.getEmergencyDrillList();
            this.getProjectSpecialView();
            this.getDeptSafetyWorksList();
            this.getProjectInsuranceList();
            if (this.fileNav == 3) {
                this.getWorkFileList();
            }            
        },
        doInsuranceRowClick(row) {
            this.$refs.insDlg.showDialog(this.projects, this.projectInfo, row)
        },
        doProbleRowClick(a, b, c) {
            this.$refs.probDlg.showDialog(a, 0, this.safeNav, this.selDate);
        },
        doSpecialRowClick(row) {
            if(this.isTypeBuser()){
                row=this.$root.projects[1];
                row.projectId=row.id;
            }
            row.title = row.projectName + "特种作业人员清单";
            this.$refs.projectSpecialDlg.showDialog(row);
        },
        doShowDlgTrain(it, type) {
            if (type == "0") {
                it.title = "教育培训";
                it.typeTitle = "培训";
            } else {
                it.title = "应急演练";
                it.typeTitle = "演练";
            }
            this.$refs.workTrainDlg.showDialog(it)
        },
        fileNavChage(val) {
            this.fileNav = val;
            this.getWorkFileList();
        },
        // 获取传达文件列表
        getWorkFileList() {
            this.$api.workFile.getWorkFileList(this.fileNav, this.fileNav == 3 ? this.dept.id : 0).then(d => {
                this.fileList = d.rows;
                //let _title = "传达文件（" + this.fileList.length + "）";
                let _title = "传达文件";
                this.fileTitle = _title;
            });
        },
        getWorkTrainChart() {
            this.$api.workTrain.getGroupByDataType(this.dept?.id || 0, this.projectInfo?.id || 0).then(d => {
                this.WorkTrainChart1 = (d.data || []).filter(it => it.trainType === 'a').map(it => { return { value: it.id || 0, name: it.trainTitle } });
                this.WorkTrainChart2 = (d.data || []).filter(it => it.trainType === 'b').map(it => { return { value: it.id || 0, name: it.trainTitle } });
                let cnt = 0;
                this.WorkTrainChart1.forEach(it => { cnt += it.value || 0; })
                this.WorkTrainCnt1 = cnt;
                cnt = 0;
                this.WorkTrainChart2.forEach(it => { cnt += it.value || 0; })
                this.WorkTrainCnt2 = cnt;

                let opt = {
                    tooltip: {
                        trigger: 'item'
                    },
                    series: [{
                        type: 'pie',
                        radius: '60%',
                        data: this.WorkTrainChart1,
                        label: {
                            alignTo: 'edge',
                            edgeDistance: "10%",
                            color: "#fff",
                            formatter: '{name|{b}}\n{cnt|{c}}',
                            rich: {
                                cnt: {
                                    fontSize: 10,
                                    color: '#eee'
                                }
                            }
                        },

                    }
                    ]
                };
                this.$refs.chart3.init(opt);
                let tmps = this.WorkTrainChart2;
                let opt2 = {
                    grid: {
                        left: 10,
                        right: 10,
                        top: 40,
                        bottom: 60
                    },
                    tooltip: {
                        trigger: 'axis',
                        axisPointer: {
                            type: 'shadow'
                        }
                    },
                    color: ['#409eff'],
                    xAxis: {
                        type: 'category',
                        data: tmps.map(d => d.name.replace("演练", "\n演练")),
                        axisLabel: {
                            color: "#fff",
                            fontSize: 10,
                        }
                    },
                    yAxis: {
                        type: 'value',
                        axisLabel: {
                            show: false,
                            color: "#fff"
                        }
                    },
                    series: [
                        {

                            label: {
                                show: true,
                                color: '#82c9ff',
                                position: 'top',
                            },
                            data: tmps.map(d => d.value),
                            type: 'bar'

                        }
                    ]
                };
                this.$refs.chart4.init(opt2);
            });
        },
        // 获取教育培训列表
        getWorkTrainList() {
            this.$api.workTrain.getWorkTrainList(0, this.dept?.id || 0, this.projectInfo?.id || 0).then(d => {
                this.workTrainList = d.rows;
            });
        },
        // 获取教育培训列表
        getEmergencyDrillList() {
            this.$api.workTrain.getWorkTrainList(1, this.dept?.id || 0, this.projectInfo?.id || 0).then(d => {
                this.emergencyDrillList = d.rows;
            });
        },
        // 获取特种人员数据列表
        getProjectSpecialView() {
            this.$api.special.getProjectSpecialView(this.dept?.id || 0, this.projectInfo?.id || 0).then(d => {
                this.specialDataList = d.rows;
            });
        },
        //查询安全作业概况
        getDeptSafetyWorksList() {
            //查询安全作业
            this.$api.flow.findSafetyWorkList(this.dept?.id || 0, this.projectInfo?.id || 0, this.infoNav).then(d => {
                this.safetyWorkFlowList = d.data || [];
            });
        },
        getProjectId(cb) {
            let func = () => {
                let prjId = this.projectInfo?.id || 0;
                if (prjId == 0) {
                    if (!this.projects || this.projects.length == 0) {
                        setTimeout(func, 100);
                    } else {
                        if (this.projects.length > 1) {
                            cb && cb(this.projects[1].id);
                        } else {
                            cb(0);
                        }
                    }
                } else {
                    cb && cb(prjId);
                }
            }
            func();
        },
        loadAttendanceData() {
            this.getProjectId(id => {
                if (id == 0) {
                    this.laborPersonnelTotal = 0;
                    this.laborPersonnelData = [
                        { text: "总包人员", value: 0 },
                        { text: "监理人员", value: 0 },
                        { text: "劳务人员", value: 0 },
                    ];
                    this.elDeptWorks++;
                    return;
                }
                let data = {
                    subDeptId: this.dept.id || 0,
                    projectId: id || 0,
                    attendanceTime: this.$dt(new Date()).format("YYYY-MM-DD")
                }
                this.$api.attendance.groupByComany(data).then(d => {
                    let tmps = d.data || [];
                    const func = (ids) => {
                        let sum = 0;
                        tmps.filter(it => ids.includes(it.companyTypeId)).map(it => it.id).forEach(it => {
                            sum += it * 1;
                        })
                        return sum;
                    }

                    this.laborPersonnelTotal = 0;
                    this.laborPersonnelData = [{ text: "劳务人员", value: func(["0", "2", "3", "4", "5"]) }, { text: "监理人员", value: func(["8"]) }, { text: "总包人员", value: func(["1", "6"]) }];
                    this.laborPersonnelData.forEach(it => {
                        this.laborPersonnelTotal += it.value;
                    })
                    this.elDeptWorks++;
                });
            });
        },
        getProjectInsuranceList() {
            this.$api.insurance.getProjectInsuranceList(this.dept?.id || 0, this.projectInfo?.id || 0).then(d => {
                this.insuranceDataList = [];
                if (d.rows.length > 0 && d.rows[0] != null) {
                    this.insuranceDataList = d.rows;
                }
            });
        },
        fmt(n) {
            n = "" + n;
            return "          ".substring(0, 3 - n.length) + n;
        },
        dtChange(init) {
            
            this.doDeptChane(init);
        },
        doDeptChane(init) {
            let postData = {
                deptId: this.dept?.id || 0,
                roleType: this.safeNav,
                projectId: this.projectInfo?.id || 0
            };
            if (this.selDate.length > 0) {
                postData.startDate = this.$dt(this.selDate[0]).format("YYYY-MM-DD");
            }
            if (this.selDate.length > 1) {
                postData.endDate = this.$dt(this.selDate[1]).format("YYYY-MM-DD");
            }
            this.$api.problemmodify.safetySummary(postData).then(d => {
                if(init){
                    if(this.isTypeBuser() && this.$refs.probList){
                        this.$refs.probList.loadData(0, this.safeNav, this.selDate);                
                    }
                    if(this.$refs.specList){
                        this.$refs.specList.initData();
                    }
                }
                this.summary = (d || []).map(it => {
                    return {
                        text: it.problemArea,
                        prop: '0.0',
                        name: it.problemArea,
                        value: +it.roleType || 0
                    }
                });
                this.summaryTotal = 0;
                this.summary.forEach(it => {
                    this.summaryTotal += it.value;
                })
                this.summary.forEach(it => {
                    if (this.summaryTotal == 0) {
                        it.prop = "0.0"
                    } else {
                        it.prop = (it.value * 100.0 / this.summaryTotal).toFixed(1);
                    }
                })
                this.elSummaryKey++;
            });
            this.$api.problemmodify.safetySummaryByProject(postData).then(d => {
                this.summaryPrj = (d || []).map(it => {
                    return {
                        ...it,
                        prop: '0.0',
                        value: it.id || 0,
                        rate: 0,
                    }
                });
                this.summaryPrjTotal = 0;
                this.summaryPrj.forEach(it => {
                    this.summaryPrjTotal += it.value;
                });
                this.summaryPrj.forEach(it => {
                    if (this.summaryPrjTotal == 0) {
                        it.prop = "0.0"
                    } else {
                        it.prop = (it.value * 100.0 / this.summaryPrjTotal).toFixed(1);
                    }
                    it.rate = (it.value == 0 ? 0 : it.isDel * 100.0 / it.value).toFixed(1);
                })
                this.elSummaryPrjKey++;
            })
        },
        // 获取图片映射
        getProfileImage(url) {
            if (url) {
                return '/jhapi' + url + ".min.jpg";
            }
            return url;
        },
        downloadFile(it) {
            this.$api.workFile.workFileRead(it.id).then(d => {
                it.readNum = d.data.readNum;
            })
            if (it && it.filePath) {
                window.open('/jhapi' + it.filePath);
            }
        },
        downloadFlowFile(it) {
            // 查询工作流附件
            this.$api.flow.findFormDatasByProcInsId(it.procInsId).then(d => {
                if (d.data && d.data.files) {
                    //多个文件批量下载
                    d.data.files.split(",").forEach(item => {
                        this.$api.downFile("/jhapi" + item, {}, item.substring(item.lastIndexOf("/") + 1));
                    });
                }
            })
        },
        //安全作业概况
        onWarningInfoNav(n, text) {
            this.infoNav = n
            this.staffText = text
            if (n == 'sxkj') {
                this.surveyUrl = 'images/survey_icon_4.png'
            } else {
                this.surveyUrl = 'images/survey_icon_5.png'
            }
            this.getDeptSafetyWorksList();
        },
        doSafeNav(n, t) {
            this.safeNav = n;
            this.safeText = t;
            this.dtChange();
        },
        init() {

            this.localStorage = JSON.parse(localStorage.getItem("data1"))
            //设备概况点击事件定时器
            this.overviewInterval = setInterval(this.overviewClick, 5000);
            //重大节点预期预警
            this.majorInterval = setInterval(this.timer, 5000);
            //正在发生 定时器
            this.warningInterval = setInterval(this.automaticRoll, 5000);
            //预警类型 定时器
            this.warningTypeInterval = setInterval(this.automaticRollType, 5000);

            //定时器|一分钟执行一次
            this.getWorkFileList();

            //setInterval(this.getWorkFileList, 60000);
            //setInterval(this.getWorkTrainList, 60000);
            //setInterval(this.getEmergencyDrillList, 60000);
            //setInterval(this.getProjectSpecialView, 60000);
            //setInterval(this.getDeptSafetyWorksList, 60000);
            //setInterval(this.getProjectInsuranceList, 60000);
        },

    },

};
</script>

<style lang="less">
.project-safety {
    .file-detail {
        color: #0189D4;
        cursor: pointer;
        display: inline-block;
        width: 60px;
        position: relative;
        top: 3px;
    }

    .problemmodify_list {
        .el-table__body-wrapper {
            &::-webkit-scrollbar {
                width: 8px;
                height: 8px;
            }

            &::-webkit-scrollbar-thumb {
                background-color: rgb(1, 169, 255);
                border-radius: 4px;
            }

            tr {
                cursor: pointer;
            }
        }
    }

    .warning-info-title div {
        padding: 0 12px 0 20px !important;
    }

    .center-image .screen-one-2-1 {
        overflow: hidden;
    }

    .my-svg-icon {
        width: 40px;
        height: 40px;
        margin-bottom: 20px;
    }

    .my-svg-icon * {
        fill: #389DE3;

    }

    .people-number-con div:nth-child(3) {
        background: none;
    }

    .labour-education .number-unit {
        position: relative;
        bottom: -8px;
    }

    .bottom-line2,
    .bottom-line {
        position: relative;
        border: none !important;
    }

    .bottom-line::after {
        content: " ";
        display: block;
        position: absolute;
        width: calc(100% - 30px);
        border-bottom: solid 1px rgba(90, 192, 244, 0.3);
        bottom: 5px;
        left: 20px;
        opacity: 0.5;
    }

    .idle-list .el-table__body .el-table__row {
        line-height: 55px;
        height: 55px !important;
    }

    .bottom-line2::after {
        content: " ";
        display: block;
        position: absolute;
        width: calc(100% - 5px);
        border-bottom: solid 1px rgba(90, 192, 244, 0.3);
        bottom: -4px;
        opacity: 0.5;
    }

    .bottom-line2::before {
        content: " ";
        display: inline-block;
        position: absolute;
        width: 60px;
        border-bottom: solid 2px #389DE3;
        bottom: -4px;
        opacity: 0.5;
    }

    .my-svg-icon2 {
        width: 40px;
        height: 40px;
    }

    .my-svg-icon2 * {
        fill: #01A9FF;
    }

    .file-nav {
        padding-left: 10px;
        cursor: pointer;
        font-size: 12px;
        line-height: 30px;
        margin-bottom: 20px;
        margin-top: 10px;
    }

    .file-nav .file-nav-item {
        display: inline-block;
        margin-right: 20px;
        color: #fff
    }

    .file-nav .file-nav-item.active {
        color: #00A9BC;
    }

    .file-item {
        display: flex;
        margin-left: 20px;
        margin-right: 20px;
        margin-bottom: 20px;
        font-size: 12px;
        width: 91%;
    }

    .special-table th .cell {
        color: aquamarine;
        font-size: 12px;
    }

    td.td-left {
        text-align: left !important;
    }

    td.td-center {
        text-align: center !important;
    }

    .file-list {
        max-height: calc(100% - 90px);
        margin-right: 12px;
        overflow-y: auto;
        overflow-x: hidden;
    }

    .transition-item {
        cursor: pointer;
    }

    .train-list {
        max-height: calc(100% - 45px);
        margin-right: 12px;
        overflow-y: auto;
    }

    .train-img {
        width: 85px;
        height: 60px;
    }

    .train-img-par {
        height: 60px;
        overflow: hidden;
        margin: 10px 5px 5px 5px;
    }

    .file-time {
        float: left;
        width: 50%;
    }   
}
</style>