|
|
|
<!-- <p>月度任务总览</p> -->
|
|
|
|
<div class="box">
|
|
|
|
<div class="timebox">
|
|
|
|
<nz-select [(ngModel)]="selectedYear" (ngModelChange)="selectYear($event)">
|
|
|
|
<nz-option [nzValue]="2021" nzLabel="2021年"></nz-option>
|
|
|
|
<nz-option [nzValue]="2022" nzLabel="2022年"></nz-option>
|
|
|
|
</nz-select>
|
|
|
|
<div *ngFor="let item of months" class="monthbtn" (click)="selectMonth(item)"
|
|
|
|
[ngClass]="{'selectedMonth': item.id == selectedMonth}">
|
|
|
|
{{item.name}}
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<div style="flex: 1;overflow-y: auto;">
|
|
|
|
<!-- 上部仪表盘 -->
|
|
|
|
<div class="instrumentpanelbox">
|
|
|
|
<div class="instrumentpanelheader">
|
|
|
|
<span><img src="../../../../assets/images/icon/task1.png" alt=""> 上级任务指标</span>
|
|
|
|
</div>
|
|
|
|
<div class="instrumentpanel">
|
|
|
|
<div class="instrumentpanelitem instrumentpanelitemclose" *ngFor="let item of cardData">
|
|
|
|
<div class="itemone" *ngIf="!item.isDetails">
|
|
|
|
<div class="instrumentpanelitemleft">
|
|
|
|
<div class="panelheadername" [style]="'background:'+ item.background">
|
|
|
|
<img [src]="'../../../../assets/images/icon/'+ item.icon" alt="">
|
|
|
|
{{item.name}}
|
|
|
|
</div>
|
|
|
|
<div class="tasknum">
|
|
|
|
<p>
|
|
|
|
<span style="margin-right: 6px;">任务分配</span>
|
|
|
|
<i (click)="openDetails(item,true)"
|
|
|
|
style="vertical-align: text-top;cursor: pointer;" nz-icon nzType="right-circle"
|
|
|
|
nzTheme="outline"></i>
|
|
|
|
</p>
|
|
|
|
<p style="font-weight: 900;font-size: 36px;text-align: left;">
|
|
|
|
{{item.passed}}/{{item.data.length}}</p>
|
|
|
|
</div>
|
|
|
|
<div class="jindu">
|
|
|
|
<p>
|
|
|
|
<span>完成率</span>
|
|
|
|
<span>{{item.percentage}}%</span>
|
|
|
|
</p>
|
|
|
|
<nz-progress style="width: 100%;" [nzPercent]="item.percentage" nzStrokeColor="#87D068"
|
|
|
|
[nzShowInfo]="false"></nz-progress>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="itemtwo" *ngIf="item.isDetails">
|
|
|
|
<p class="itemtwotitle">
|
|
|
|
<span>{{item.name}}</span>
|
|
|
|
<span class="back" (click)="openDetails(item,false)"><i nz-icon nzType="rollback"
|
|
|
|
nzTheme="outline"></i>返回</span>
|
|
|
|
</p>
|
|
|
|
<div class="itemtwocontent">
|
|
|
|
<div class="itemtwocontentitem" *ngFor="let i of item.data">
|
|
|
|
<p class="itemtwocontentitemp1">
|
|
|
|
<span class="itemtwocontentitemp1name">{{i.company.companyName}}</span>
|
|
|
|
</p>
|
|
|
|
<p>
|
|
|
|
<span class="green" style="margin-right: 12px;">{{i.approvalStatus}}</span>
|
|
|
|
</p>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
<!-- 下级任务申请 -->
|
|
|
|
<div class="taskaudit">
|
|
|
|
<div class="taskauditheader">
|
|
|
|
<span><img src="../../../../assets/images/icon/task.png" alt=""> 下级任务申请</span>
|
|
|
|
<span (click)="istaskauditexpand()" class="expand blue">
|
|
|
|
{{istaskauditExpanded ? '收起' :'展开'}}
|
|
|
|
<i nz-icon [nzType]="istaskauditExpanded ? 'down' : 'up'" nzTheme="outline"></i>
|
|
|
|
</span>
|
|
|
|
</div>
|
|
|
|
<!-- 任务 -->
|
|
|
|
<div *ngIf="istaskauditExpanded">
|
|
|
|
|
|
|
|
<div class="taskauditbox" *ngFor="let item of taskData">
|
|
|
|
<div class="header">
|
|
|
|
<div>
|
|
|
|
<span style="margin-right: 18px;">{{item.name}}</span>
|
|
|
|
<span>
|
|
|
|
已审批: <span class="green"> {{item.finished}}/{{item.list.length}}</span>
|
|
|
|
</span>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
<span (click)="expand(item)" class="expand blue">
|
|
|
|
{{item.isExpand ? '收起' :'展开'}}
|
|
|
|
<i nz-icon [nzType]="item.isExpand ? 'down' : 'up'" nzTheme="outline"></i>
|
|
|
|
</span>
|
|
|
|
</div>
|
|
|
|
<div class="content" *ngIf="item.isExpand">
|
|
|
|
<div *ngFor="let i of item.list" class="card greencard"
|
|
|
|
[ngClass]="{'redcard': i.approvalStatus == '驳回'}">
|
|
|
|
<div class="unitname">
|
|
|
|
<img src="../../../../assets/images/icon/unit.png" alt="">
|
|
|
|
<span>{{i.company.companyName}}</span>
|
|
|
|
</div>
|
|
|
|
<div class="info">
|
|
|
|
<span class="assistant" nz-tooltip [nzTooltipTitle]="titleTemplate">
|
|
|
|
<ng-container *ngIf="i.relatedTaskId; else elseTemplate">
|
|
|
|
<span *ngFor="let o of i.relatedTask.supervisors">
|
|
|
|
{{o.name}}
|
|
|
|
</span>
|
|
|
|
<span *ngFor="let o of i.relatedTask.assistantOrganizations">
|
|
|
|
{{o.name}}
|
|
|
|
</span>
|
|
|
|
</ng-container>
|
|
|
|
<ng-template #elseTemplate>
|
|
|
|
<span *ngFor="let o of i.supervisors">
|
|
|
|
{{o.name}}
|
|
|
|
</span>
|
|
|
|
<span *ngFor="let o of i.assistantOrganizations">
|
|
|
|
{{o.name}}
|
|
|
|
</span>
|
|
|
|
</ng-template>
|
|
|
|
|
|
|
|
</span>
|
|
|
|
<ng-template #titleTemplate let-thing>
|
|
|
|
<ng-container *ngIf="i.relatedTaskId; else elseTemplate">
|
|
|
|
<span style="margin-right: 6px;" *ngFor="let o of i.relatedTask.supervisors">
|
|
|
|
{{o.name}}
|
|
|
|
</span>
|
|
|
|
<span style="margin-right: 6px;"
|
|
|
|
*ngFor="let o of i.relatedTask.assistantOrganizations">
|
|
|
|
{{o.name}}
|
|
|
|
</span>
|
|
|
|
</ng-container>
|
|
|
|
<ng-template #elseTemplate>
|
|
|
|
<span style="margin-right: 6px;" *ngFor="let o of i.supervisors">
|
|
|
|
{{o.name}}
|
|
|
|
</span>
|
|
|
|
<span style="margin-right: 6px;" *ngFor="let o of i.assistantOrganizations">
|
|
|
|
{{o.name}}
|
|
|
|
</span>
|
|
|
|
</ng-template>
|
|
|
|
|
|
|
|
|
|
|
|
</ng-template>
|
|
|
|
<span>|</span>
|
|
|
|
<span>申请人: {{i.organization.level == 'battalion'? i.creator.name :
|
|
|
|
i.organization.name}}</span>
|
|
|
|
</div>
|
|
|
|
<div class="img">
|
|
|
|
<ng-container
|
|
|
|
*ngIf="i.approvalStatus == '驳回' || i.approvalStatus == '通过'; else elseTemplate">
|
|
|
|
<img *ngIf="i.approvalStatus == '驳回'"
|
|
|
|
src="../../../../assets/images/icon/reject.png">
|
|
|
|
<img *ngIf="i.approvalStatus == '通过'"
|
|
|
|
src="../../../../assets/images/icon/agree.png">
|
|
|
|
</ng-container>
|
|
|
|
<ng-template #elseTemplate>
|
|
|
|
<ng-container *ngIf="i.approvalStatus == '已检查'; else elseTemplate2">
|
|
|
|
<span>{{i.inspectionResult}}</span>
|
|
|
|
</ng-container>
|
|
|
|
<ng-template #elseTemplate2>
|
|
|
|
<span> {{i.approvalStatus}}</span>
|
|
|
|
</ng-template>
|
|
|
|
</ng-template>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<!-- 本级部署 -->
|
|
|
|
<div class="deploybox">
|
|
|
|
<div class="deployboxheader">
|
|
|
|
<span><img src="../../../../assets/images/icon/task0.png" alt=""> 本级部署</span>
|
|
|
|
<span (click)="isdeployboxexpand()" class="expand blue">
|
|
|
|
{{isdeployboxExpanded ? '收起' :'展开'}}
|
|
|
|
<i nz-icon [nzType]="isdeployboxExpanded ? 'down' : 'up'" nzTheme="outline"></i>
|
|
|
|
</span>
|
|
|
|
</div>
|
|
|
|
<div class="deploycontent" *ngIf="isdeployboxExpanded">
|
|
|
|
<div class="deploycontentitem">
|
|
|
|
<div class="aaa">
|
|
|
|
<div class="title">
|
|
|
|
任务总数
|
|
|
|
<span
|
|
|
|
style="font-weight: 18;font-size: 26px;margin-left: 10px;">{{countStat.statistics1.num}}</span>
|
|
|
|
</div>
|
|
|
|
<div class="details">
|
|
|
|
<div class="detailsname">
|
|
|
|
完成
|
|
|
|
</div>
|
|
|
|
<span class="progresssquare">
|
|
|
|
<!-- <span>完成率</span> -->
|
|
|
|
<nz-progress nzStrokeLinecap="square" style="width: 70%;margin-bottom: 3px;"
|
|
|
|
[nzPercent]="countStat.statistics1.percentageComplete" nzStrokeColor="#87D068"
|
|
|
|
[nzShowInfo]="false" [nzStrokeWidth]="18">
|
|
|
|
</nz-progress>
|
|
|
|
<span>{{countStat.statistics1.percentageComplete}}%</span>
|
|
|
|
</span>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="percentage">
|
|
|
|
<nz-progress [nzWidth]="80" nz-tooltip nzType="circle"
|
|
|
|
[nzPercent]="countStat.statistics1.item1+countStat.statistics1.item2"
|
|
|
|
nzStrokeLinecap="square" [nzShowInfo]="false"
|
|
|
|
[nzSuccessPercent]="countStat.statistics1.item1"></nz-progress>
|
|
|
|
<div class="typebox">
|
|
|
|
<div class="type">
|
|
|
|
<div class="tips" style="background: #87D068;"></div>
|
|
|
|
<div style="font-size: 13px;"><span
|
|
|
|
style="margin-right: 5px;">上级指派</span><span>{{countStat.statistics1.item1}}%</span>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="type">
|
|
|
|
<div class="tips" style="background: #1890FF;"></div>
|
|
|
|
<div style="font-size: 13px;"><span
|
|
|
|
style="margin-right: 5px;">自主任务</span><span>{{countStat.statistics1.item2}}%</span>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="type">
|
|
|
|
<div class="tips" style="background: #fff;"></div>
|
|
|
|
<div style="font-size: 13px;"><span
|
|
|
|
style="margin-right: 5px;">申领任务</span><span>{{countStat.statistics1.item3}}%</span>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="deploycontentitem">
|
|
|
|
<div class="aaa">
|
|
|
|
<div class="title">
|
|
|
|
消防救援任务总数
|
|
|
|
<span
|
|
|
|
style="font-weight: 18;font-size: 26px;margin-left: 10px;">{{countStat.statistics2.num}}</span>
|
|
|
|
</div>
|
|
|
|
<div class="details">
|
|
|
|
<div class="detailsname">
|
|
|
|
完成
|
|
|
|
<!-- <span style="font-weight: 18;font-size: 26px;margin-left: 10px;">15</span> -->
|
|
|
|
</div>
|
|
|
|
<span class="progresssquare">
|
|
|
|
<!-- <span>完成率</span> -->
|
|
|
|
<nz-progress nzStrokeLinecap="square" style="width: 70%;margin-bottom: 3px;"
|
|
|
|
[nzPercent]="countStat.statistics2.percentageComplete" nzStrokeColor="#87D068"
|
|
|
|
[nzShowInfo]="false" [nzStrokeWidth]="18">
|
|
|
|
</nz-progress>
|
|
|
|
<span>{{countStat.statistics2.percentageComplete}}%</span>
|
|
|
|
</span>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<div class="percentage">
|
|
|
|
<nz-progress [nzWidth]="80" nz-tooltip nzType="circle"
|
|
|
|
[nzPercent]="countStat.statistics2.item1+countStat.statistics2.item2"
|
|
|
|
nzStrokeColor="#3658c8" nzStrokeLinecap="square" [nzShowInfo]="false"
|
|
|
|
[nzSuccessPercent]="countStat.statistics2.item1"></nz-progress>
|
|
|
|
<div class="typebox">
|
|
|
|
<div class="type">
|
|
|
|
<div class="tips" style="background: #87D068;"></div>
|
|
|
|
<div style="font-size: 13px;"><span
|
|
|
|
style="margin-right: 5px;">上级指派</span><span>{{countStat.statistics2.item1}}%</span>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="type">
|
|
|
|
<div class="tips" style="background: #3658c8;"></div>
|
|
|
|
<div style="font-size: 13px;"><span
|
|
|
|
style="margin-right: 5px;">自主任务</span><span>{{countStat.statistics2.item2}}%</span>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="type">
|
|
|
|
<div class="tips" style="background: #fff;"></div>
|
|
|
|
<div style="font-size: 13px;"><span
|
|
|
|
style="margin-right: 5px;">申领任务</span><span>{{countStat.statistics2.item3}}%</span>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="deploycontentitem">
|
|
|
|
<div class="aaa">
|
|
|
|
<div class="title">
|
|
|
|
检查员任务总数
|
|
|
|
<span
|
|
|
|
style="font-weight: 18;font-size: 26px;margin-left: 10px;">{{countStat.statistics3.num}}</span>
|
|
|
|
</div>
|
|
|
|
<div class="details">
|
|
|
|
<div class="detailsname">
|
|
|
|
完成
|
|
|
|
<!-- <span style="font-weight: 18;font-size: 26px;margin-left: 10px;">15</span> -->
|
|
|
|
</div>
|
|
|
|
<span class="progresssquare">
|
|
|
|
<!-- <span>完成率</span> -->
|
|
|
|
<nz-progress nzStrokeLinecap="square" style="width: 70%;margin-bottom: 3px;"
|
|
|
|
[nzPercent]="countStat.statistics3.percentageComplete" nzStrokeColor="#E6D91D"
|
|
|
|
[nzShowInfo]="false" [nzStrokeWidth]="18">
|
|
|
|
</nz-progress>
|
|
|
|
<span>{{countStat.statistics3.percentageComplete}}%</span>
|
|
|
|
</span>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<div class="percentage">
|
|
|
|
<nz-progress [nzWidth]="80" nz-tooltip nzType="circle"
|
|
|
|
[nzPercent]="countStat.statistics3.item1+countStat.statistics3.item2"
|
|
|
|
nzStrokeColor="#E6D91D" [nzShowInfo]="false"
|
|
|
|
[nzSuccessPercent]="countStat.statistics3.item1"></nz-progress>
|
|
|
|
<div class="typebox">
|
|
|
|
<div class="type">
|
|
|
|
<div class="tips" style="background: #87D068;"></div>
|
|
|
|
<div style="font-size: 13px;"><span
|
|
|
|
style="margin-right: 5px;">上级指派</span><span>{{countStat.statistics3.item1}}%</span>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="type">
|
|
|
|
<div class="tips" style="background: #E6D91D;"></div>
|
|
|
|
<div style="font-size: 13px;"><span
|
|
|
|
style="margin-right: 5px;">自主任务</span><span>{{countStat.statistics3.item2}}%</span>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="type">
|
|
|
|
<div class="tips" style="background: #fff;"></div>
|
|
|
|
<div style="font-size: 13px;"><span
|
|
|
|
style="margin-right: 5px;">申领任务</span><span>{{countStat.statistics3.item3}}%</span>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
<!-- 救援站列表 -->
|
|
|
|
<div class="stationcardlistbox">
|
|
|
|
<div class="stationcardlistitembox" *ngFor="let element of stationData">
|
|
|
|
<div class="stationcardlistitem">
|
|
|
|
<div class="spin" *ngIf="element.isLoading">
|
|
|
|
<nz-spin nzSimple></nz-spin>
|
|
|
|
</div>
|
|
|
|
<div class="header">
|
|
|
|
<span style="width: 16%;">
|
|
|
|
<img src="../../../../assets//images/icon/station.png" alt="">
|
|
|
|
{{element.name}}
|
|
|
|
</span>
|
|
|
|
<span style="width: 8%;">
|
|
|
|
<span>
|
|
|
|
单位总数:{{element.allUnitsNum}}/{{TuesdayThursdayNum}}
|
|
|
|
</span>
|
|
|
|
</span>
|
|
|
|
<div style="width: 72%;" class="progress progresssquare">
|
|
|
|
<span>完成进度</span>
|
|
|
|
<nz-progress nzStrokeLinecap="square" [nzStrokeWidth]="16" nzStrokeColor="#87D068"
|
|
|
|
[nzPercent]="element.percentage"></nz-progress>
|
|
|
|
</div>
|
|
|
|
<!-- <button nz-button nzType="primary">任务下派</button> -->
|
|
|
|
<span class="expand blue" (click)="expandcarditem(element)">
|
|
|
|
{{element.isExpand ? '收起' :'展开'}}
|
|
|
|
<i nz-icon [nzType]="element.isExpand ? 'down' : 'up'" nzTheme="outline"></i>
|
|
|
|
</span>
|
|
|
|
</div>
|
|
|
|
<div class="maincontent" *ngIf="element.isExpand">
|
|
|
|
<div class="maincontentitem" *ngFor="let item of element.data">
|
|
|
|
<div class="maincontentitemleft">
|
|
|
|
<div class="panelheadername" [style]="'background:'+ item.background">
|
|
|
|
<img [src]="'../../../../assets/images/icon/'+ item.icon" alt="">
|
|
|
|
{{item.name}}
|
|
|
|
</div>
|
|
|
|
<div class="num">
|
|
|
|
<div class="round" style="background: #2C4DC0;"></div>
|
|
|
|
<span class="word">已分配</span>
|
|
|
|
<span class="boldspan">{{item.data.length}}</span>
|
|
|
|
</div>
|
|
|
|
<div class="num">
|
|
|
|
<div class="round" style="background: #87D068;"></div>
|
|
|
|
<span class="word">已完成</span>
|
|
|
|
<span class="boldspan">{{item.finished}}</span>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="maincontentitemright">
|
|
|
|
<div class="maincontentitemrightitem" *ngFor="let i of item.data">
|
|
|
|
<div class="flexcol namebox">
|
|
|
|
<span class="ellipsi" [title]="i.company.companyName">
|
|
|
|
{{i.company.companyName}}
|
|
|
|
</span>
|
|
|
|
<span>
|
|
|
|
单位名称
|
|
|
|
</span>
|
|
|
|
</div>
|
|
|
|
<div class="flexcol">
|
|
|
|
<span class="ellipsi" [title]="i.company.useNature">
|
|
|
|
{{i.company.useNature}}
|
|
|
|
</span>
|
|
|
|
<span>
|
|
|
|
级别
|
|
|
|
</span>
|
|
|
|
</div>
|
|
|
|
<div class="flexcol">
|
|
|
|
<span class="ellipsi" [title]="i.organization.level == 'battalion'? i.creator.name :
|
|
|
|
i.organization.name">
|
|
|
|
{{i.organization.level == 'battalion'? i.creator.name :
|
|
|
|
i.organization.name}}
|
|
|
|
</span>
|
|
|
|
<span>
|
|
|
|
责任机构
|
|
|
|
</span>
|
|
|
|
</div>
|
|
|
|
<div class="flexcol flexcolassistant">
|
|
|
|
<span class="assistant ellipsi" nz-tooltip [nzTooltipTitle]="titleTemplate">
|
|
|
|
<span *ngFor="let o of i.supervisors">
|
|
|
|
{{o.name}}
|
|
|
|
</span>
|
|
|
|
<span *ngFor="let o of i.assistantOrganizations">
|
|
|
|
{{o.name}}
|
|
|
|
</span>
|
|
|
|
<span></span>
|
|
|
|
</span>
|
|
|
|
<ng-template #titleTemplate let-thing>
|
|
|
|
<span style="margin-right: 6px;" *ngFor="let o of i.supervisors">
|
|
|
|
{{o.name}}
|
|
|
|
</span>
|
|
|
|
<span style="margin-right: 6px;" *ngFor="let o of i.assistantOrganizations">
|
|
|
|
{{o.name}}
|
|
|
|
</span>
|
|
|
|
</ng-template>
|
|
|
|
<span>
|
|
|
|
协助人员
|
|
|
|
</span>
|
|
|
|
</div>
|
|
|
|
<div class="flexcol">
|
|
|
|
<span class="ellipsi">
|
|
|
|
{{i.isSpread ? '已宣传' : '未宣传'}}
|
|
|
|
</span>
|
|
|
|
<span>
|
|
|
|
同步工作
|
|
|
|
</span>
|
|
|
|
</div>
|
|
|
|
<div class="flexcol">
|
|
|
|
<span class="ellipsi" [title]="i.approvalStatus">
|
|
|
|
{{i.approvalStatus}}
|
|
|
|
</span>
|
|
|
|
<span>
|
|
|
|
任务状态
|
|
|
|
</span>
|
|
|
|
</div>
|
|
|
|
<div class="flexcol">
|
|
|
|
<span class="ellipsi" [title]="i.inspectionResult">
|
|
|
|
{{i.inspectionResult}}
|
|
|
|
</span>
|
|
|
|
<span>
|
|
|
|
检查结果
|
|
|
|
</span>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="cutoffrule"></div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
</div>
|