Files
bbq/src/app/routes/vehicle/components/audit/detail/detail.component.html
wangshiming 0a2dff2400 fix bug
2022-04-22 15:54:34 +08:00

394 lines
14 KiB
HTML

<!-- 页头 -->
<page-header-wrapper [logo]="logo" title="车辆详情" [content]="content" [ngClass]="{ affix: scrollTop > 210 }">
<ng-template #logo>
<button nz-button nz-tooltip nzTooltipTitle="返回上一页" (click)="goBack()">
<i nz-icon nzType="left" nzTheme="outline"></i>
</button>
</ng-template>
<ng-template #content>
<sv-container col="3">
<h2>车牌号:{{ detailData?.carNo }}</h2>
<sv-title style="font-weight: 700">
<span *ngIf="detailData?.approvalStatus === 1 || detailData?.approvalStatus === '1'">未上传</span>
<span *ngIf="detailData?.approvalStatus === 0 || detailData?.approvalStatus === '0'">草稿</span>
<span *ngIf="detailData?.approvalStatus === 10 || detailData?.approvalStatus === '10'">待审核</span>
<span *ngIf="detailData?.approvalStatus === 20 || detailData?.approvalStatus === '20'">已审核</span>
<span *ngIf="detailData?.approvalStatus === 30 || detailData?.approvalStatus === '30'">已驳回</span>
<span *ngIf="detailData?.approvalStatus === 40 || detailData?.approvalStatus === '40'">证件过期</span>
<div style="float: right" *ngIf="detailData?.approvalStatus !== 20 && detailData?.approvalStatus !== '20'">
<ng-container *ngIf="!isEdit">
<button nz-button nzType="default" nzDanger (click)="approveDriver()" acl acl-ability="VEHICLE-AUDIT-DETAIL-pass">通过</button>
<button
nz-button
nzType="default"
nzDanger
(click)="rejectedDriver()"
acl
acl-ability="VEHICLE-AUDIT-DETAIL-reject"
*ngIf="detailData?.approvalStatus === 10 || detailData?.approvalStatus === '10'"
>驳回</button
>
<button nz-button nzType="default" nzDanger (click)="ratify()" acl acl-ability="VEHICLE-AUDIT-DETAIL-save">修改</button>
</ng-container>
<ng-container *ngIf="isEdit">
<button nz-button nzType="default" (click)="reset()">取消</button>
<button nz-button nzType="default" (click)="save()" nzDanger>保存</button>
</ng-container>
</div>
</sv-title>
<sv label="申请时间">
{{ detailData?.createTime }}
</sv>
<sv label="录入人员">
{{ detailData?.saveUser }}
</sv>
</sv-container>
</ng-template>
</page-header-wrapper>
<nz-card [class]="isEdit ? 'edit-box' : 'readOnly-box'">
<sv-container col="3">
<sv-title style="font-weight: 700">车辆基础信息 </sv-title>
<sv label="车牌颜色">
<nz-select
[(ngModel)]="detailData.carNoColor"
[nzPlaceHolder]="isEdit ? '' : '-'"
[nzBorderless]="!isEdit"
[nzShowArrow]="isEdit"
[nzDisabled]="!isEdit"
>
<nz-option *ngFor="let i of contenCarNoColor" [nzLabel]="i.label" [nzValue]="i.value"></nz-option>
</nz-select>
</sv>
<sv label="车型">
<!-- <nz-select [(ngModel)]="detailData.carModel" [nzPlaceHolder]="isEdit?'':'-'" [nzBorderless]="!isEdit"
[nzShowArrow]="isEdit" [nzDisabled]="!isEdit">
<nz-option *ngFor="let i of contencarModel" [nzLabel]="i.label" [nzValue]="i.value"></nz-option>
</nz-select> -->
<input
nz-input
type="text"
[(ngModel)]="detailData.carModel"
[readonly]="!isEdit"
[nzBorderless]="!isEdit"
[placeholder]="isEdit ? '' : '-'"
/>
</sv>
<sv label="车长">
<nz-select
[(ngModel)]="detailData.carLength"
[nzPlaceHolder]="isEdit ? '' : '-'"
[nzBorderless]="!isEdit"
[nzShowArrow]="isEdit"
[nzDisabled]="!isEdit"
>
<nz-option *ngFor="let i of contenCarLength" [nzLabel]="i.label" [nzValue]="i.value"></nz-option>
</nz-select>
</sv>
<sv label="是否为挂车">
<nz-select
[(ngModel)]="detailData.isTrailer"
[nzPlaceHolder]="isEdit ? '' : '-'"
[nzBorderless]="!isEdit"
[nzShowArrow]="isEdit"
[nzDisabled]="!isEdit"
>
<nz-option [nzValue]="false" nzLabel="否"></nz-option>
<nz-option [nzValue]="true" nzLabel="是"></nz-option>
</nz-select>
</sv>
<sv label="是否挂靠">
<nz-select
[(ngModel)]="detailData.isSelf"
[nzPlaceHolder]="isEdit ? '' : '-'"
[nzBorderless]="!isEdit"
[nzShowArrow]="isEdit"
[nzDisabled]="!isEdit"
>
<nz-option [nzValue]="false" nzLabel="否"></nz-option>
<nz-option [nzValue]="true" nzLabel="是"></nz-option>
</nz-select>
</sv>
</sv-container>
<sv-container col="1" class="mt-md">
<sv label="车头照">
<ng-container
*ngTemplateOutlet="
uploadTemplate;
context: { image: detailData?.carFrontPhotoWatermark, key: 'carFrontPhotoWatermark', hover: 'PhotoWatermark2' }
"
>
</ng-container>
</sv>
</sv-container>
<nz-divider></nz-divider>
<sv-container col="3">
<sv-title style="font-weight: 700">行驶证信息</sv-title>
<sv label="档案编号">
<input
nz-input
type="text"
[(ngModel)]="detailData.archivesNo"
[readonly]="!isEdit"
[nzBorderless]="!isEdit"
[placeholder]="isEdit ? '' : '-'"
/>
</sv>
<sv label="行驶证注册日期">
<!-- <input nz-input type="text" [(ngModel)]="detailData.driverLicenseRegisterTime" [readonly]="!isEdit" [nzBorderless]="!isEdit"
[placeholder]="isEdit?'':'-'"> -->
<nz-date-picker
[(ngModel)]="detailData.driverLicenseRegisterTime"
[nzDisabled]="!isEdit"
[nzPlaceHolder]="isEdit ? '' : '-'"
[nzBorderless]="!isEdit"
[nzSuffixIcon]="isEdit ? 'calendar' : ''"
></nz-date-picker>
</sv>
</sv-container>
<sv-container col="3">
<sv label="行驶证到期日">
<!-- <input nz-input type="text" [(ngModel)]="detailData.driverLicenseEndTime" [readonly]="!isEdit" [nzBorderless]="!isEdit"
[placeholder]="isEdit?'':'-'"> -->
<nz-date-picker
[(ngModel)]="detailData.driverLicenseEndTime"
[nzDisabled]="!isEdit"
[nzPlaceHolder]="isEdit ? '' : '-'"
[nzBorderless]="!isEdit"
[nzSuffixIcon]="isEdit ? 'calendar' : ''"
></nz-date-picker>
</sv>
<sv label="行驶证签发机关">
<input
nz-input
style="width: '300px'"
type="text"
[(ngModel)]="detailData.driverLicenseSigningOrg"
[readonly]="!isEdit"
[nzBorderless]="!isEdit"
[placeholder]="isEdit ? '' : '-'"
/>
</sv>
</sv-container>
<sv-container col="3">
<sv label="行驶证发证日期">
<!-- <input nz-input type="text" [(ngModel)]="detailData.driverLicenseGetTime" [readonly]="!isEdit" [nzBorderless]="!isEdit"
[placeholder]="isEdit?'':'-'"> -->
<nz-date-picker
[(ngModel)]="detailData.driverLicenseGetTime"
[nzDisabled]="!isEdit"
[nzPlaceHolder]="isEdit ? '' : '-'"
[nzBorderless]="!isEdit"
[nzSuffixIcon]="isEdit ? 'calendar' : ''"
></nz-date-picker>
</sv>
<sv label="车辆识别代码">
<input
nz-input
type="text"
[(ngModel)]="detailData.carDistinguishCode"
[readonly]="!isEdit"
[nzBorderless]="!isEdit"
[placeholder]="isEdit ? '' : '-'"
/>
</sv>
<sv label="使用性质">
<nz-select
[(ngModel)]="detailData.useNature"
[nzPlaceHolder]="isEdit ? '' : '-'"
[nzBorderless]="!isEdit"
[nzShowArrow]="isEdit"
[nzDisabled]="!isEdit"
>
<nz-option [nzValue]="'1'" nzLabel="营运"></nz-option>
<nz-option [nzValue]="'0'" nzLabel="非营运"></nz-option>
</nz-select>
</sv>
</sv-container>
<sv-container col="3">
<sv label="载重(吨)">
<input
nz-input
type="text"
[(ngModel)]="detailData.carLoad"
[readonly]="!isEdit"
[nzBorderless]="!isEdit"
[placeholder]="isEdit ? '' : '-'"
/>
</sv>
<sv label="整备质量">
<input
nz-input
type="text"
[(ngModel)]="detailData.curbWeight"
[readonly]="!isEdit"
[nzBorderless]="!isEdit"
[placeholder]="isEdit ? '' : '-'"
/>
</sv>
<sv label="所有人">
<input
nz-input
style="width: '300px'"
type="text"
[(ngModel)]="detailData.carOwner"
[readonly]="!isEdit"
[nzBorderless]="!isEdit"
[placeholder]="isEdit ? '' : '-'"
/>
</sv>
</sv-container>
<sv-container col="1">
<sv label="行驶证照片">
<ng-container
*ngTemplateOutlet="
uploadTemplate;
context: { image: detailData?.certificatePhotoFrontWatermark, key: 'certificatePhotoFrontWatermark', hover: 'FrontWatermark' }
"
>
</ng-container>
<ng-container
*ngTemplateOutlet="
uploadTemplate;
context: { image: detailData?.certificatePhotoBackWatermark, key: 'certificatePhotoBackWatermark', hover: 'BackWatermark' }
"
>
</ng-container>
</sv>
</sv-container>
<nz-divider></nz-divider>
<sv-container col="3" class="mt16">
<sv-title style="font-weight: 700">道路运输证信息</sv-title>
<sv label="道路运输证号">
<input
nz-input
type="text"
[(ngModel)]="detailData.roadTransportNo"
[readonly]="!isEdit"
[nzBorderless]="!isEdit"
[placeholder]="isEdit ? '' : '-'"
/>
</sv>
<sv label="经营许可证号">
<input
nz-input
type="text"
[(ngModel)]="detailData.roadTransportLicenceNo"
[readonly]="!isEdit"
[nzBorderless]="!isEdit"
[placeholder]="isEdit ? '' : '-'"
/>
</sv>
<sv label="发证日期">
<!-- <input nz-input type="text" [(ngModel)]="detailData.roadTransportStartTime" [readonly]="!isEdit" [nzBorderless]="!isEdit"
[placeholder]="isEdit?'':'-'"> -->
<nz-date-picker
[(ngModel)]="detailData.roadTransportStartTime"
[nzDisabled]="!isEdit"
[nzPlaceHolder]="isEdit ? '' : '-'"
[nzBorderless]="!isEdit"
[nzSuffixIcon]="isEdit ? 'calendar' : ''"
></nz-date-picker>
</sv>
<sv label="有效期至">
<!-- <input nz-input type="text" [(ngModel)]="detailData.roadTransportEndTime" [readonly]="!isEdit" [nzBorderless]="!isEdit"
[placeholder]="isEdit?'':'-'"> -->
<nz-date-picker
[(ngModel)]="detailData.roadTransportEndTime"
[nzDisabled]="!isEdit"
[nzPlaceHolder]="isEdit ? '' : '-'"
[nzBorderless]="!isEdit"
[nzSuffixIcon]="isEdit ? 'calendar' : ''"
></nz-date-picker>
</sv>
<sv label="道路运输证照片">
<ng-container
*ngTemplateOutlet="
uploadTemplate;
context: { image: detailData?.roadTransportPhotoWatermark, key: 'roadTransportPhotoWatermark', hover: 'Watermark' }
"
>
</ng-container>
</sv>
</sv-container>
<nz-divider></nz-divider>
<sv-container col="2" class="mt16">
<sv-title style="font-weight: 700">认证司机</sv-title>
</sv-container>
<st
#st
[bordered]="true"
[columns]="columns"
[scroll]="{x: '1200px'}"
[data]="service.$api_get_queryDriverByCarId"
[req]="{ method: 'POST', allInBody: true, params: reqParams }"
[res]="{ reName: { list: 'data', total: 'data' } }"
[ngStyle]="{ margin: '1rem 0' }"
multiSort
size="small"
[page]="{ show: false }"
>
<ng-template st-row="auditStatusEnum" let-item let-index="index">
<div>
<span *ngIf="item?.auditStatusEnum === -1 || item?.auditStatusEnum === '-1'">未上传</span>
<span *ngIf="item?.auditStatusEnum === 0 || item?.auditStatusEnum === '0'">草稿</span>
<span *ngIf="item?.auditStatusEnum === 10 || item?.auditStatusEnum === '10'">待审核</span>
<span *ngIf="item?.auditStatusEnum === 20 || item?.auditStatusEnum === '20'">已审核</span>
<span *ngIf="item?.auditStatusEnum === 30 || item?.auditStatusEnum === '30'">已驳回</span>
<span *ngIf="item?.auditStatusEnum === 40 || item?.auditStatusEnum === '40'">证件过期</span>
</div>
</ng-template>
</st>
</nz-card>
<ng-template #redectModal>
<div nz-row nzGutter="8">
<div nz-col nzSpan="24" se-container [labelWidth]="120">
<se [col]="1" label="车牌号">
{{ detailData?.carNo }}
</se>
<se [col]="1" label="备注" required>
<textarea nz-input rows="3" style="margin-left: 14px" [(ngModel)]="approvalOpinion"></textarea>
</se>
</div>
</div>
</ng-template>
<ng-template #uploadTemplate let-image="image" let-key="key" let-hover="hover">
<nz-upload
class="avatar-uploader"
[nzAction]="uploadURl"
nzName="multipartFile"
nzListType="picture-card"
[nzShowUploadList]="false"
nzFileType="image/png,image/jpeg,image/jpg,image/gif"
[nzDisabled]="!isEdit || disabledUpload"
(nzChange)="changeUpload($event, key)"
>
<ng-container *ngIf="!image && isEdit">
<i class="upload-icon" nz-icon [nzType]="false ? 'loading' : 'plus'"></i>
<div class="ant-upload-text">上传</div>
</ng-container>
<div
*ngIf="image"
(mouseover)="detailData[hover] = true"
(mouseleave)="detailData[hover] = false"
(click)="$event.cancelBubble = true"
class="image-hover"
>
<img (click)="showImg(image)" [src]="image" style="width: 200px; height: 160px" />
<div class="mask" *ngIf="detailData[hover] && isEdit"></div>
<div class="mask-over" *ngIf="detailData[hover] && isEdit">
<i nz-icon nzType="close-circle" nzTheme="fill" class="delete-icon" (click)="deleteImg(key)"></i>
<div style="display: flex; align-items: center">
<i nz-icon nzType="eye" nzTheme="fill" class="show-icon" (click)="showImg(image)"></i>
</div>
</div>
</div>
</nz-upload>
</ng-template>