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.
785 lines
50 KiB
785 lines
50 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-option [nzValue]="2026" nzLabel="2026年"></nz-option> |
|
<nz-option [nzValue]="2027" nzLabel="2027年"></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 class="content" cdkScrollable> |
|
|
|
<!-- 投诉举报 complaint--> |
|
<div class="panel" *ngIf="!iszhanxun"> |
|
<div class="spin" *ngIf="complaint.isLoading"> |
|
<nz-spin nzSimple></nz-spin> |
|
</div> |
|
<div class="panelheader"> |
|
<div class="panelheaderleft"> |
|
<div class="panelheadername panelheadernameblue2"> |
|
<img src="../../../../assets/images/icon/yanlian.png" alt=""> |
|
投诉举报 |
|
</div> |
|
<button nz-button nzType="primary" nz-popover nzPopoverPlacement="bottomLeft" |
|
[nzPopoverContent]="contentTemplate1" [nzPopoverTrigger]=null |
|
[nzPopoverVisible]="complaint.isPopover" (click)="isPopover(complaint)">选择单位</button> |
|
<ng-template #contentTemplate1> |
|
<div class="selectUnitPopover"> |
|
<div class="popoverTitle"> |
|
<span (click)="popoverMenuSelect(complaint,1)" |
|
[ngClass]="{'selectedspan': complaint.selectedMenu == 1}">单位名称</span> |
|
<span style="margin: 0 10px;">|</span> |
|
<span (click)="popoverMenuSelect(complaint,2)" |
|
[ngClass]="{'selectedspan': complaint.selectedMenu == 2}">组织机构</span> |
|
</div> |
|
<div class="popoverContent" *ngIf="complaint.selectedMenu == 1"> |
|
<div> |
|
<form nz-form (ngSubmit)="submitForm(complaint)"> |
|
<nz-form-item> |
|
<nz-form-control> |
|
<nz-input-group nzPrefixIcon="search"> |
|
<input type="text" [(ngModel)]="complaint.search1" nz-input |
|
placeholder="请输入单位名称" [ngModelOptions]="{standalone: true}" /> |
|
</nz-input-group> |
|
</nz-form-control> |
|
<button style="display: none;" type="submit"></button> |
|
</nz-form-item> |
|
</form> |
|
</div> |
|
<div class="popoverContentitem"> |
|
<nz-checkbox-group [(ngModel)]="complaint.unitList" |
|
(ngModelChange)="log(complaint)"></nz-checkbox-group> |
|
<p class="blue" *ngIf="complaint.unitList.length < totalCount" (click)="moreData()"> |
|
<ng-container *ngIf="moreDataLoading; else moreDatatemplate"> |
|
<span nz-icon nzType="loading" nzTheme="outline"></span> |
|
</ng-container> |
|
<ng-template #moreDatatemplate> |
|
更多 |
|
</ng-template> |
|
</p> |
|
</div> |
|
</div> |
|
<div class="popoverContent" *ngIf="complaint.selectedMenu == 2"> |
|
<div> |
|
<form nz-form (ngSubmit)="getCompaniesByName(complaint)"> |
|
<nz-form-item> |
|
<nz-form-control> |
|
<nz-input-group nzPrefixIcon="search"> |
|
<input type="text" [(ngModel)]="complaint.search2" nz-input |
|
placeholder="请输入单位名称" [ngModelOptions]="{standalone: true}" /> |
|
</nz-input-group> |
|
</nz-form-control> |
|
<button style="display: none;" type="submit"></button> |
|
</nz-form-item> |
|
</form> |
|
</div> |
|
<div class="popoverContentitem"> |
|
<nz-tree *ngIf="complaint.isnodes" [nzHideUnMatched]='true' |
|
[nzData]="complaint.nodes" [nzTreeTemplate]="nzTreeTemplatecomplaint1" |
|
nzBlockNode [nzAsyncData]="true" (nzExpandChange)="onExpandChange($event)"> |
|
</nz-tree> |
|
<ng-template #nzTreeTemplatecomplaint1 let-node let-origin="origin"> |
|
<div class="nodebox"> |
|
<span class="name"> |
|
<label *ngIf="node.origin.companyName" nz-checkbox |
|
[(ngModel)]="node.origin.isChecked" |
|
(ngModelChange)="orcheckbox(complaint,$event,node)"></label> |
|
{{ node.title }} |
|
</span> |
|
</div> |
|
</ng-template> |
|
|
|
|
|
<nz-tree *ngIf="!complaint.isnodes" [nzHideUnMatched]='true' |
|
[nzData]="complaint.nodes2" [nzTreeTemplate]="nzTreeTemplatecomplaint2" |
|
nzBlockNode> |
|
</nz-tree> |
|
<ng-template #nzTreeTemplatecomplaint2 let-node let-origin="origin"> |
|
<div class="nodebox"> |
|
<span class="name"> |
|
<label *ngIf="node.origin.companyName" nz-checkbox |
|
[(ngModel)]="node.origin.isChecked" |
|
(ngModelChange)="orcheckbox(complaint,$event,node)"></label> |
|
{{ node.title }} |
|
</span> |
|
</div> |
|
</ng-template> |
|
</div> |
|
</div> |
|
<div class="popoverBtn"> |
|
<button nz-button nzType="primary" [nzLoading]="complaint.isLoading" |
|
(click)="selectedUnit(complaint,'投诉举报')">确定</button> |
|
<button nz-button nzType="default" [nzLoading]="complaint.isLoading" |
|
(click)="isPopover(complaint)">取消</button> |
|
</div> |
|
</div> |
|
</ng-template> |
|
<span> |
|
已分配: <span class="blue">{{complaint.allocated}}/{{complaint.data.length}}</span> 家单位 |
|
</span> |
|
</div> |
|
<div class="panelheaderright"> |
|
<!-- <button nz-button nzType="primary">提交审核</button> --> |
|
<span (click)="expand(complaint)" class="expand blue"> |
|
{{complaint.isExpand ? '收起' :'展开'}} |
|
<i nz-icon [nzType]="complaint.isExpand ? 'down' : 'up'" nzTheme="outline"></i> |
|
</span> |
|
</div> |
|
</div> |
|
<div class="panelcontent" *ngIf="complaint.isExpand"> |
|
<nz-table [nzPageSize]="99" #colSpanTable [nzData]="complaint.data" nzBordered nzSize="small" |
|
[nzShowPagination]="false"> |
|
<thead> |
|
<tr> |
|
<th nzWidth="25%">单位名称</th> |
|
<th nzWidth="40%">配合机构/人员</th> |
|
<th nzWidth="25%">说明</th> |
|
<th nzWidth="10%">操作</th> |
|
</tr> |
|
</thead> |
|
<tbody> |
|
<tr *ngFor="let item of colSpanTable.data; index as i"> |
|
<td>{{item.company.companyName}}</td> |
|
<td class="editOr"> |
|
<span class="name"> |
|
<ng-container |
|
*ngIf="(item.supervisors.length == 0 && item.assistantOrganizations.length == 0); else elseTemplate666"> |
|
<span>{{item.organization.name}}</span> |
|
</ng-container> |
|
<ng-template #elseTemplate666> |
|
<span *ngFor="let i of item.supervisors" style="margin-right: 6px;"> |
|
{{i.name}} |
|
</span> |
|
<span *ngFor="let i of item.assistantOrganizations" style="margin-right: 6px;"> |
|
{{i.name}} |
|
</span> |
|
</ng-template> |
|
</span> |
|
<span class="blue" (click)="editOr(complaint,item)" |
|
[ngClass]="{'forbid': item.approvalStatus != '未派发'}">修改机构</span> |
|
</td> |
|
<td style="padding:0 2px!important;"> |
|
<textarea [disabled]="item.approvalStatus != '未派发'" nzAutosize |
|
[(ngModel)]="item.description" style="border: 0;" rows="1" nz-input |
|
placeholder="一段简短的说明文字..." |
|
(ngModelChange)="taskDescChange(complaint,item)"></textarea> |
|
</td> |
|
<td style="display: flex;justify-content: space-between;align-items: center;"> |
|
<ng-container *ngIf="item.approvalStatus == '未派发'; else elseTemplate"> |
|
<span class="blue" (click)="distribute(item,'投诉举报')">派发</span> |
|
</ng-container> |
|
<ng-template #elseTemplate> |
|
<span class="green">已派发</span> |
|
</ng-template> |
|
<span style="margin-left: 6px;" class="red" |
|
(click)="deleteTask(item,complaint)">删除</span> |
|
</td> |
|
</tr> |
|
</tbody> |
|
</nz-table> |
|
</div> |
|
</div> |
|
|
|
<!-- 行政许可 --> |
|
<div class="panel" *ngIf="!iszhanxun"> |
|
<div class="spin" *ngIf="permission.isLoading"> |
|
<nz-spin nzSimple></nz-spin> |
|
</div> |
|
<div class="panelheader"> |
|
<div class="panelheaderleft"> |
|
<div class="panelheadername panelheadernamegreen"> |
|
<img src="../../../../assets/images/icon/yanlian.png" alt=""> |
|
行政许可 |
|
</div> |
|
<button nz-button nzType="primary" nz-popover nzPopoverPlacement="bottomLeft" |
|
[nzPopoverContent]="contentTemplate2" [nzPopoverTrigger]=null |
|
[nzPopoverVisible]="permission.isPopover" (click)="isPopover(permission)">选择单位</button> |
|
<ng-template #contentTemplate2> |
|
<div class="selectUnitPopover"> |
|
<div class="popoverTitle"> |
|
<span (click)="popoverMenuSelect(permission,1)" |
|
[ngClass]="{'selectedspan': permission.selectedMenu == 1}">单位名称</span> |
|
<span style="margin: 0 10px;">|</span> |
|
<span (click)="popoverMenuSelect(permission,2)" |
|
[ngClass]="{'selectedspan': permission.selectedMenu == 2}">组织机构</span> |
|
</div> |
|
<div class="popoverContent" *ngIf="permission.selectedMenu == 1"> |
|
<div> |
|
<form nz-form (ngSubmit)="submitForm(permission)"> |
|
<nz-form-item> |
|
<nz-form-control> |
|
<nz-input-group nzPrefixIcon="search"> |
|
<input type="text" [(ngModel)]="permission.search1" nz-input |
|
placeholder="请输入单位名称" [ngModelOptions]="{standalone: true}" /> |
|
</nz-input-group> |
|
</nz-form-control> |
|
<button style="display: none;" type="submit"></button> |
|
</nz-form-item> |
|
</form> |
|
</div> |
|
<div class="popoverContentitem"> |
|
<nz-checkbox-group [(ngModel)]="permission.unitList" |
|
(ngModelChange)="log(permission)"></nz-checkbox-group> |
|
<p class="blue" *ngIf="permission.unitList.length < totalCount" |
|
(click)="moreData()"> |
|
<ng-container *ngIf="moreDataLoading; else moreDatatemplate"> |
|
<span nz-icon nzType="loading" nzTheme="outline"></span> |
|
</ng-container> |
|
<ng-template #moreDatatemplate> |
|
更多 |
|
</ng-template> |
|
</p> |
|
</div> |
|
</div> |
|
<div class="popoverContent" *ngIf="permission.selectedMenu == 2"> |
|
<div> |
|
<form nz-form (ngSubmit)="getCompaniesByName(permission)"> |
|
<nz-form-item> |
|
<nz-form-control> |
|
<nz-input-group nzPrefixIcon="search"> |
|
<input type="text" [(ngModel)]="permission.search2" nz-input |
|
placeholder="请输入单位名称" [ngModelOptions]="{standalone: true}" /> |
|
</nz-input-group> |
|
</nz-form-control> |
|
<button style="display: none;" type="submit"></button> |
|
</nz-form-item> |
|
</form> |
|
</div> |
|
<div class="popoverContentitem"> |
|
<nz-tree *ngIf="permission.isnodes" [nzHideUnMatched]='true' |
|
[nzData]="permission.nodes" [nzTreeTemplate]="nzTreeTemplatepermission1" |
|
nzBlockNode [nzAsyncData]="true" (nzExpandChange)="onExpandChange($event)"> |
|
</nz-tree> |
|
<ng-template #nzTreeTemplatepermission1 let-node let-origin="origin"> |
|
<div class="nodebox"> |
|
<span class="name"> |
|
<label *ngIf="node.origin.companyName" nz-checkbox |
|
[(ngModel)]="node.origin.isChecked" |
|
(ngModelChange)="orcheckbox(permission,$event,node)"></label> |
|
{{ node.title }} |
|
</span> |
|
</div> |
|
</ng-template> |
|
|
|
|
|
<nz-tree *ngIf="!permission.isnodes" [nzHideUnMatched]='true' |
|
[nzData]="permission.nodes2" [nzTreeTemplate]="nzTreeTemplatepermission2" |
|
nzBlockNode> |
|
</nz-tree> |
|
<ng-template #nzTreeTemplatepermission2 let-node let-origin="origin"> |
|
<div class="nodebox"> |
|
<span class="name"> |
|
<label *ngIf="node.origin.companyName" nz-checkbox |
|
[(ngModel)]="node.origin.isChecked" |
|
(ngModelChange)="orcheckbox(permission,$event,node)"></label> |
|
{{ node.title }} |
|
</span> |
|
</div> |
|
</ng-template> |
|
</div> |
|
</div> |
|
<div class="popoverBtn"> |
|
<button nz-button nzType="primary" [nzLoading]="permission.isLoading" |
|
(click)="selectedUnit(permission,'行政许可')">确定</button> |
|
<button nz-button nzType="default" [nzLoading]="permission.isLoading" |
|
(click)="isPopover(permission)">取消</button> |
|
</div> |
|
</div> |
|
</ng-template> |
|
<span> |
|
已分配: <span class="blue">{{permission.allocated}}/{{permission.data.length}}</span> 家单位 |
|
</span> |
|
</div> |
|
<div class="panelheaderright"> |
|
<!-- <button nz-button nzType="primary">提交审核</button> --> |
|
<span (click)="expand(permission)" class="expand blue"> |
|
{{permission.isExpand ? '收起' :'展开'}} |
|
<i nz-icon [nzType]="permission.isExpand ? 'down' : 'up'" nzTheme="outline"></i> |
|
</span> |
|
</div> |
|
</div> |
|
<div class="panelcontent" *ngIf="permission.isExpand"> |
|
<nz-table [nzPageSize]="99" #colSpanTable [nzData]="permission.data" nzBordered nzSize="small" |
|
[nzShowPagination]="false"> |
|
<thead> |
|
<tr> |
|
<th nzWidth="25%">单位名称</th> |
|
<th nzWidth="40%">配合机构/人员</th> |
|
<th nzWidth="25%">说明</th> |
|
<th nzWidth="10%">操作</th> |
|
</tr> |
|
</thead> |
|
<tbody> |
|
<tr *ngFor="let item of colSpanTable.data; index as i"> |
|
<td>{{item.company.companyName}}</td> |
|
<td class="editOr"> |
|
<span class="name"> |
|
<ng-container |
|
*ngIf="(item.supervisors.length == 0 && item.assistantOrganizations.length == 0); else elseTemplate677"> |
|
<span>{{item.organization.name}}</span> |
|
</ng-container> |
|
<ng-template #elseTemplate677> |
|
<span *ngFor="let i of item.supervisors" style="margin-right: 6px;"> |
|
{{i.name}} |
|
</span> |
|
<span *ngFor="let i of item.assistantOrganizations" style="margin-right: 6px;"> |
|
{{i.name}} |
|
</span> |
|
</ng-template> |
|
</span> |
|
<span class="blue" (click)="editOr(permission,item)" |
|
[ngClass]="{'forbid': item.approvalStatus != '未派发'}">修改机构</span> |
|
</td> |
|
<td style="padding:0 2px!important;"> |
|
<textarea [disabled]="item.approvalStatus != '未派发'" nzAutosize |
|
[(ngModel)]="item.description" style="border: 0;" rows="1" nz-input |
|
placeholder="一段简短的说明文字..." |
|
(ngModelChange)="taskDescChange(permission,item)"></textarea> |
|
</td> |
|
<td style="display: flex;justify-content: space-between;align-items: center;"> |
|
<ng-container *ngIf="item.approvalStatus == '未派发'; else elseTemplate"> |
|
<span class="blue" (click)="distribute(item,'行政许可')">派发</span> |
|
</ng-container> |
|
<ng-template #elseTemplate> |
|
<span class="green">已派发</span> |
|
</ng-template> |
|
<span style="margin-left: 6px;" class="red" |
|
(click)="deleteTask(item,permission)">删除</span> |
|
</td> |
|
</tr> |
|
</tbody> |
|
</nz-table> |
|
</div> |
|
</div> |
|
|
|
<!-- 双随机 doubleRandom--> |
|
<div class="panel" *ngIf="!iszhanxun"> |
|
<div class="spin" *ngIf="doubleRandom.isLoading"> |
|
<nz-spin nzSimple></nz-spin> |
|
</div> |
|
<div class="panelheader"> |
|
<div class="panelheaderleft"> |
|
<div class="panelheadername panelheadernameblue"> |
|
<img src="../../../../assets/images/icon/suiji.png" alt=""> |
|
双随机 |
|
</div> |
|
<button nz-button nzType="primary" nz-popover nzPopoverPlacement="bottomLeft" |
|
[nzPopoverContent]="contentTemplate3" [nzPopoverTrigger]=null |
|
[nzPopoverVisible]="doubleRandom.isPopover" (click)="isPopover(doubleRandom)">选择单位</button> |
|
<ng-template #contentTemplate3> |
|
<div class="selectUnitPopover"> |
|
<div class="popoverTitle"> |
|
<span (click)="popoverMenuSelect(doubleRandom,1)" |
|
[ngClass]="{'selectedspan': doubleRandom.selectedMenu == 1}">单位名称</span> |
|
<span style="margin: 0 10px;">|</span> |
|
<span (click)="popoverMenuSelect(doubleRandom,2)" |
|
[ngClass]="{'selectedspan': doubleRandom.selectedMenu == 2}">组织机构</span> |
|
</div> |
|
<div class="popoverContent" *ngIf="doubleRandom.selectedMenu == 1"> |
|
<div> |
|
<form nz-form (ngSubmit)="submitForm(doubleRandom)"> |
|
<nz-form-item> |
|
<nz-form-control> |
|
<nz-input-group nzPrefixIcon="search"> |
|
<input type="text" [(ngModel)]="doubleRandom.search1" nz-input |
|
placeholder="请输入单位名称" [ngModelOptions]="{standalone: true}" /> |
|
</nz-input-group> |
|
</nz-form-control> |
|
<button style="display: none;" type="submit"></button> |
|
</nz-form-item> |
|
</form> |
|
</div> |
|
<div class="popoverContentitem"> |
|
<nz-checkbox-group [(ngModel)]="doubleRandom.unitList" |
|
(ngModelChange)="log(doubleRandom)"></nz-checkbox-group> |
|
<p class="blue" *ngIf="doubleRandom.unitList.length < totalCount" |
|
(click)="moreData()"> |
|
<ng-container *ngIf="moreDataLoading; else moreDatatemplate"> |
|
<span nz-icon nzType="loading" nzTheme="outline"></span> |
|
</ng-container> |
|
<ng-template #moreDatatemplate> |
|
更多 |
|
</ng-template> |
|
</p> |
|
</div> |
|
</div> |
|
<div class="popoverContent" *ngIf="doubleRandom.selectedMenu == 2"> |
|
<div> |
|
<form nz-form (ngSubmit)="getCompaniesByName(doubleRandom)"> |
|
<nz-form-item> |
|
<nz-form-control> |
|
<nz-input-group nzPrefixIcon="search"> |
|
<input type="text" [(ngModel)]="doubleRandom.search2" nz-input |
|
placeholder="请输入单位名称" [ngModelOptions]="{standalone: true}" /> |
|
</nz-input-group> |
|
</nz-form-control> |
|
<button style="display: none;" type="submit"></button> |
|
</nz-form-item> |
|
</form> |
|
</div> |
|
<div class="popoverContentitem"> |
|
<nz-tree *ngIf="doubleRandom.isnodes" [nzHideUnMatched]='true' |
|
[nzData]="doubleRandom.nodes" [nzTreeTemplate]="nzTreeTemplatedoubleRandom1" |
|
nzBlockNode [nzAsyncData]="true" (nzExpandChange)="onExpandChange($event)"> |
|
</nz-tree> |
|
<ng-template #nzTreeTemplatedoubleRandom1 let-node let-origin="origin"> |
|
<div class="nodebox"> |
|
<span class="name"> |
|
<label *ngIf="node.origin.companyName" nz-checkbox |
|
[(ngModel)]="node.origin.isChecked" |
|
(ngModelChange)="orcheckbox(doubleRandom,$event,node)"></label> |
|
{{ node.title }} |
|
</span> |
|
</div> |
|
</ng-template> |
|
|
|
|
|
<nz-tree *ngIf="!doubleRandom.isnodes" [nzHideUnMatched]='true' |
|
[nzData]="doubleRandom.nodes2" [nzTreeTemplate]="nzTreeTemplatedoubleRandom2" |
|
nzBlockNode> |
|
</nz-tree> |
|
<ng-template #nzTreeTemplatedoubleRandom2 let-node let-origin="origin"> |
|
<div class="nodebox"> |
|
<span class="name"> |
|
<label *ngIf="node.origin.companyName" nz-checkbox |
|
[(ngModel)]="node.origin.isChecked" |
|
(ngModelChange)="orcheckbox(doubleRandom,$event,node)"></label> |
|
{{ node.title }} |
|
</span> |
|
</div> |
|
</ng-template> |
|
</div> |
|
</div> |
|
<div class="popoverBtn"> |
|
<button nz-button nzType="primary" [nzLoading]="doubleRandom.isLoading" |
|
(click)="selectedUnit2(doubleRandom,'双随机')">确定</button> |
|
<button nz-button nzType="default" [nzLoading]="doubleRandom.isLoading" |
|
(click)="isPopover(doubleRandom)">取消</button> |
|
</div> |
|
</div> |
|
</ng-template> |
|
<span> |
|
已分配: <span class="blue">{{doubleRandom.allocated}}/{{doubleRandom.allPlanTasks}}</span> 家单位 |
|
</span> |
|
</div> |
|
<div class="panelheaderright"> |
|
<!-- <button nz-button nzType="primary">提交审核</button> --> |
|
<span (click)="expand(doubleRandom)" class="expand blue"> |
|
{{doubleRandom.isExpand ? '收起' :'展开'}} |
|
<i nz-icon [nzType]="doubleRandom.isExpand ? 'down' : 'up'" nzTheme="outline"></i> |
|
</span> |
|
</div> |
|
</div> |
|
<div class="panelcontent" *ngIf="doubleRandom.isExpand"> |
|
<nz-table [nzPageSize]="99" #colSpanTable [nzData]="doubleRandom.data" nzBordered nzSize="small" |
|
[nzShowPagination]="false"> |
|
<thead> |
|
<tr> |
|
<th nzWidth="18%">责任机构</th> |
|
<th nzWidth="6%">任务额</th> |
|
<th nzWidth="23%">单位名称</th> |
|
<th nzWidth="15%">监督员</th> |
|
<th>说明</th> |
|
<th nzWidth="10%">操作</th> |
|
</tr> |
|
</thead> |
|
<tbody> |
|
<tr *ngFor="let item of colSpanTable.data; index as i"> |
|
<td>{{item.organizatin.name}}</td> |
|
<td>{{item.targetCount}}</td> |
|
<td class="flextd"> |
|
<ng-container *ngIf="item.planTasks && item.planTasks.length != 0; else elseTemplate"> |
|
<div class="itembox" *ngFor="let i of item.planTasks"> |
|
{{i.company.companyName}} |
|
<img *ngIf="i.isCheckAgain" class="isCheckAgain" |
|
src="../../../../assets/images/icon/isCheckAgain.png" alt=""> |
|
</div> |
|
</ng-container> |
|
<ng-template #elseTemplate> |
|
/ |
|
</ng-template> |
|
</td> |
|
<td class="flextd"> |
|
<div class="itembox" *ngFor="let i of item.planTasks"> |
|
<ng-container *ngIf="i.supervisors.length != 0; else elseTemplate"> |
|
<div class="ellipsis"> |
|
<span class="assistant" nz-tooltip [nzTooltipTitle]="titleTemplate"> |
|
<span *ngFor="let o of i.supervisors;let key = index"> |
|
<img *ngIf="key == 0" src="../../../../assets/images/icon/main.png" |
|
alt=""> |
|
<img *ngIf="key == 1" |
|
src="../../../../assets/images/icon/assist.png" alt=""> |
|
{{o.name}} |
|
</span> |
|
</span> |
|
<ng-template #titleTemplate let-thing> |
|
<span style="margin-right: 6px;" |
|
*ngFor="let o of i.supervisors;let key = index"> |
|
<img *ngIf="key == 0" src="../../../../assets/images/icon/main.png" |
|
alt=""> |
|
<img *ngIf="key == 1" |
|
src="../../../../assets/images/icon/assist.png" alt=""> |
|
{{o.name}} |
|
</span> |
|
</ng-template> |
|
</div> |
|
<div> |
|
<span class="blue" (click)="allot(i,'双随机')" |
|
[ngClass]="{'forbid': i.approvalStatus == '通过'}">更改</span> |
|
</div> |
|
</ng-container> |
|
<ng-template #elseTemplate> |
|
<div class="select" (click)="allot(i,'双随机')" |
|
[ngClass]="{'forbidbtn': i.approvalStatus == '通过'}"> |
|
检查员 |
|
</div> |
|
</ng-template> |
|
</div> |
|
</td> |
|
<td style="padding:0 2px!important;" class="flextd"> |
|
<div class="itembox" *ngFor="let i of item.planTasks"> |
|
<textarea [disabled]="i.approvalStatus == '通过'" [(ngModel)]="i.description" |
|
nzAutosize style="border: 0;" rows="1" nz-input placeholder="一段简短的说明文字..." |
|
(ngModelChange)="taskDescChange(doubleRandom,i)"></textarea> |
|
</div> |
|
</td> |
|
<td class="flextd"> |
|
<div class="itembox" *ngFor="let i of item.planTasks"> |
|
<ng-container *ngIf="i.approvalStatus == '未派发'; else elseTemplate"> |
|
<span class="blue" (click)="distribute(i,'双随机')">派发</span> |
|
</ng-container> |
|
<ng-template #elseTemplate> |
|
<span class="green">已派发</span> |
|
</ng-template> |
|
<span style="margin-left: 6px;" class="red" (click)="deleteTask(i,item)">删除</span> |
|
</div> |
|
</td> |
|
</tr> |
|
</tbody> |
|
</nz-table> |
|
</div> |
|
</div> |
|
|
|
<!-- 熟悉演练 --> |
|
<div class="panel"> |
|
<div class="spin" *ngIf="rehearsal.isLoading"> |
|
<nz-spin nzSimple></nz-spin> |
|
</div> |
|
<div class="panelheader"> |
|
<div class="panelheaderleft"> |
|
<div class="panelheadername panelheadernamepurple"> |
|
<img src="../../../../assets/images/icon/yanlian.png" alt=""> |
|
熟悉演练 |
|
</div> |
|
<button nz-button nzType="primary" nz-popover nzPopoverPlacement="bottomLeft" |
|
[nzPopoverContent]="contentTemplate4" [nzPopoverTrigger]=null |
|
[nzPopoverVisible]="rehearsal.isPopover" (click)="isPopover(rehearsal)">选择单位</button> |
|
<ng-template #contentTemplate4> |
|
<div class="selectUnitPopover"> |
|
<div class="popoverTitle"> |
|
<span (click)="popoverMenuSelect(rehearsal,1)" |
|
[ngClass]="{'selectedspan': rehearsal.selectedMenu == 1}">单位名称</span> |
|
<span style="margin: 0 10px;">|</span> |
|
<span (click)="popoverMenuSelect(rehearsal,2)" |
|
[ngClass]="{'selectedspan': rehearsal.selectedMenu == 2}">组织机构</span> |
|
</div> |
|
<div class="popoverContent" *ngIf="rehearsal.selectedMenu == 1"> |
|
<div> |
|
<form nz-form (ngSubmit)="submitForm(rehearsal)"> |
|
<nz-form-item> |
|
<nz-form-control> |
|
<nz-input-group nzPrefixIcon="search"> |
|
<input type="text" [(ngModel)]="rehearsal.search1" nz-input |
|
placeholder="请输入单位名称" [ngModelOptions]="{standalone: true}" /> |
|
</nz-input-group> |
|
</nz-form-control> |
|
<button style="display: none;" type="submit"></button> |
|
</nz-form-item> |
|
</form> |
|
</div> |
|
<div class="popoverContentitem"> |
|
<nz-checkbox-group [(ngModel)]="rehearsal.unitList" |
|
(ngModelChange)="log(rehearsal)"></nz-checkbox-group> |
|
<p class="blue" *ngIf="rehearsal.unitList.length < totalCount" (click)="moreData()"> |
|
<ng-container *ngIf="moreDataLoading; else moreDatatemplate"> |
|
<span nz-icon nzType="loading" nzTheme="outline"></span> |
|
</ng-container> |
|
<ng-template #moreDatatemplate> |
|
更多 |
|
</ng-template> |
|
</p> |
|
</div> |
|
</div> |
|
<div class="popoverContent" *ngIf="rehearsal.selectedMenu == 2"> |
|
<div> |
|
<form nz-form (ngSubmit)="getCompaniesByName(rehearsal)"> |
|
<nz-form-item> |
|
<nz-form-control> |
|
<nz-input-group nzPrefixIcon="search"> |
|
<input type="text" [(ngModel)]="rehearsal.search2" nz-input |
|
placeholder="请输入单位名称" [ngModelOptions]="{standalone: true}" /> |
|
</nz-input-group> |
|
</nz-form-control> |
|
<button style="display: none;" type="submit"></button> |
|
</nz-form-item> |
|
</form> |
|
</div> |
|
<div class="popoverContentitem"> |
|
<nz-tree *ngIf="rehearsal.isnodes" [nzHideUnMatched]='true' |
|
[nzData]="rehearsal.nodes" [nzTreeTemplate]="nzTreeTemplaterehearsal1" |
|
nzBlockNode [nzAsyncData]="true" (nzExpandChange)="onExpandChange($event)"> |
|
</nz-tree> |
|
<ng-template #nzTreeTemplaterehearsal1 let-node let-origin="origin"> |
|
<div class="nodebox"> |
|
<span class="name"> |
|
<label *ngIf="node.origin.companyName" nz-checkbox |
|
[(ngModel)]="node.origin.isChecked" |
|
(ngModelChange)="orcheckbox(rehearsal,$event,node)"></label> |
|
{{ node.title }} |
|
</span> |
|
</div> |
|
</ng-template> |
|
|
|
|
|
<nz-tree *ngIf="!rehearsal.isnodes" [nzHideUnMatched]='true' |
|
[nzData]="rehearsal.nodes2" [nzTreeTemplate]="nzTreeTemplaterehearsal2" |
|
nzBlockNode> |
|
</nz-tree> |
|
<ng-template #nzTreeTemplaterehearsal2 let-node let-origin="origin"> |
|
<div class="nodebox"> |
|
<span class="name"> |
|
<label *ngIf="node.origin.companyName" nz-checkbox |
|
[(ngModel)]="node.origin.isChecked" |
|
(ngModelChange)="orcheckbox(rehearsal,$event,node)"></label> |
|
{{ node.title }} |
|
</span> |
|
</div> |
|
</ng-template> |
|
</div> |
|
</div> |
|
<div class="popoverBtn"> |
|
<button nz-button nzType="primary" [nzLoading]="rehearsal.isLoading" |
|
(click)="selectedUnit2(rehearsal,'熟悉演练')">确定</button> |
|
<button nz-button nzType="default" [nzLoading]="rehearsal.isLoading" |
|
(click)="isPopover(rehearsal)">取消</button> |
|
</div> |
|
</div> |
|
</ng-template> |
|
<span> |
|
已分配: <span class="blue">{{rehearsal.allocated}}/{{rehearsal.allPlanTasks}}</span> 家单位 |
|
</span> |
|
</div> |
|
<div class="panelheaderright"> |
|
<!-- <button nz-button nzType="primary">提交审核</button> --> |
|
<span (click)="expand(rehearsal)" class="expand blue"> |
|
{{rehearsal.isExpand ? '收起' :'展开'}} |
|
<i nz-icon [nzType]="rehearsal.isExpand ? 'down' : 'up'" nzTheme="outline"></i> |
|
</span> |
|
</div> |
|
</div> |
|
<div class="panelcontent" *ngIf="rehearsal.isExpand"> |
|
<nz-table [nzPageSize]="99" #colSpanTable [nzData]="rehearsal.data" nzBordered nzSize="small" |
|
[nzShowPagination]="false"> |
|
<thead> |
|
<tr> |
|
<th nzWidth="25%">责任机构</th> |
|
<th nzWidth="6%">任务额</th> |
|
<th nzWidth="32%">单位名称</th> |
|
<th>说明</th> |
|
<th nzWidth="10%">操作</th> |
|
</tr> |
|
</thead> |
|
<tbody> |
|
<tr *ngFor="let item of colSpanTable.data; index as i"> |
|
<td>{{item.organizatin.name}}</td> |
|
<td> |
|
<nz-input-number [disabled]="item.planTasks && item.planTasks.length == 0" |
|
[(ngModel)]="item.targetCount" [nzMin]="1" [nzMax]="9" [nzStep]="1" |
|
(nzBlur)="targetCountChange(rehearsal,item,$event)"> |
|
</nz-input-number> |
|
</td> |
|
<td class="flextd"> |
|
<ng-container *ngIf="item.planTasks && item.planTasks.length != 0; else elseTemplate"> |
|
<div class="itembox" *ngFor="let i of item.planTasks">{{i.company.companyName}} |
|
</div> |
|
</ng-container> |
|
<ng-template #elseTemplate> |
|
/ |
|
</ng-template> |
|
</td> |
|
<td style="padding:0 2px!important;" class="flextd"> |
|
<div class="itembox" *ngFor="let i of item.planTasks"> |
|
<textarea [disabled]="i.approvalStatus == '通过'" [(ngModel)]="i.description" |
|
nzAutosize nzBorderless rows="1" nz-input placeholder="一段简短的说明文字..." |
|
(ngModelChange)="taskDescChange(rehearsal,i)"></textarea> |
|
</div> |
|
|
|
</td> |
|
<td class="flextd"> |
|
<div class="itembox" *ngFor="let i of item.planTasks"> |
|
<ng-container *ngIf="i.approvalStatus == '未派发'; else elseTemplate"> |
|
<span class="blue" (click)="distribute(i,'熟悉演练')">派发</span> |
|
</ng-container> |
|
<ng-template #elseTemplate> |
|
<span class="green">已派发</span> |
|
</ng-template> |
|
<span style="margin-left: 6px;" class="red" (click)="deleteTask(i,item)">删除</span> |
|
</div> |
|
</td> |
|
</tr> |
|
</tbody> |
|
</nz-table> |
|
</div> |
|
</div> |
|
|
|
<div class="panel" *ngIf="!iszhanxun"> |
|
<div class="panelheader"> |
|
<div class="panelheaderleft"> |
|
<div class="panelheadername panelheadernameor2"> |
|
<img src="../../../../assets/images/icon/xuanchuan.png" alt=""> |
|
消防宣传 |
|
</div> |
|
<!-- <button nz-button nzType="primary">选择单位</button> |
|
<span> |
|
已分配: <span class="blue">0/0</span> 家单位 |
|
</span> --> |
|
</div> |
|
<div class="panelheaderright"> |
|
<!-- <button nz-button nzType="primary">提交审核</button> |
|
<span class="expand blue"> |
|
收起 |
|
<i nz-icon nzType="down" nzTheme="outline"></i> |
|
</span> --> |
|
</div> |
|
</div> |
|
</div> |
|
<div class="panel" *ngIf="!iszhanxun"> |
|
<div class="panelheader"> |
|
<div class="panelheaderleft"> |
|
<div class="panelheadername panelheadernamered"> |
|
<img src="../../../../assets/images/icon/huozai.png" alt=""> |
|
火灾调查 |
|
</div> |
|
<!-- <button nz-button nzType="primary">选择单位</button> |
|
<span> |
|
已分配: <span class="blue">0/0</span> 家单位 |
|
</span> --> |
|
</div> |
|
<div class="panelheaderright"> |
|
<!-- <button nz-button nzType="primary">提交审核</button> |
|
<span class="expand blue"> |
|
收起 |
|
<i nz-icon nzType="down" nzTheme="outline"></i> |
|
</span> --> |
|
</div> |
|
</div> |
|
</div> |
|
</div> |
|
</div> |