济南项目
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

491 lines
29 KiB

<!-- <p>月度任务总览</p> -->
<div class="box">
<div class="timebox">
<nz-select [(ngModel)]="selectedYear" (ngModelChange)="selectYear($event)">
<nz-option [nzValue]="2022" nzLabel="2022年"></nz-option>
<nz-option [nzValue]="2023" nzLabel="2023年"></nz-option>
<nz-option [nzValue]="2024" nzLabel="2024年"></nz-option>
<nz-option [nzValue]="2025" nzLabel="2025年"></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 && i.relatedTask; 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 && i.relatedTask; 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 elseTemplate6">
<img *ngIf="i.approvalStatus == '驳回'"
src="../../../../assets/images/icon/reject.png">
<img *ngIf="i.approvalStatus == '通过'"
src="../../../../assets/images/icon/agree.png">
</ng-container>
<ng-template #elseTemplate6>
<ng-container *ngIf="i.approvalStatus == '已检查'; else elseTemplate8">
<span>{{i.inspectionResult}}</span>
</ng-container>
<ng-template #elseTemplate8>
<span> {{i.approvalStatus}}</span>
</ng-template>
</ng-template>
</div>
<!-- <span (click)="xxx(i)">xxx</span> -->
<nz-date-picker nzShowTime nzFormat="yyyy-MM-dd HH:mm:ss" [(ngModel)]="i.planTime"
nzPlaceHolder="请选择检查日期" nzBorderless (ngModelChange)="checkTime($event,i,item)">
</nz-date-picker>
</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 class="flexcol" style="flex: 2;">
<span class="ellipsi">
<nz-date-picker nzShowTime nzFormat="yyyy-MM-dd HH:mm:ss"
[(ngModel)]="i.planTime" nzPlaceHolder="请选择检查日期" nzBorderless
(ngModelChange)="checkTime($event,i,element)">
</nz-date-picker>
</span>
<span>
检查时间
</span>
</div>
<div class="flexcol" style="flex: 1;">
<span class="ellipsi">
<span style="cursor: pointer;margin-right: 5px;" (click)="look(i)">查看</span>
<span style="cursor: pointer;color: rgb(255, 64, 77);" (click)="deleteTask(item,i)">删除</span>
</span>
<span>
操作
</span>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="cutoffrule"></div>
</div>
</div>