This commit is contained in:
Taric Xin
2021-12-14 20:30:50 +08:00
parent b887055dbe
commit d0403784eb
8 changed files with 494 additions and 216 deletions

View File

@ -70,8 +70,10 @@
nzType="close-circle" nzTheme="fill" class="mr-xs"></i>驳回
</label>
<div style="float: right;">
<button nz-button nzType="default" nzDanger (click)="approveUser()" *ngIf="userIdentityDetail?.certificationStatus===0">审核通过</button>
<button nz-button nzType="default" nzDanger (click)="rejectedUser()" *ngIf="userIdentityDetail?.certificationStatus===0">驳回审核</button>
<button nz-button nzType="default" nzDanger (click)="approveUser()"
*ngIf="userIdentityDetail?.certificationStatus===0">审核通过</button>
<button nz-button nzType="default" nzDanger (click)="rejectedUser()"
*ngIf="userIdentityDetail?.certificationStatus===0">驳回审核</button>
<button nz-button nzType="default" nzDanger *ngIf="userIdentityDetail?.certificationStatus!==1">修改</button>
</div>
</sv-title>
@ -100,10 +102,8 @@
nzTheme="fill" class="mr-xs"></i>驳回
</label>
<div style="float: right;">
<button nz-button nzType="default" nzDanger
(click)="approveDriver()">审核通过</button>
<button nz-button nzType="default" nzDanger
(click)="rejectedDriver()">驳回审核</button>
<button nz-button nzType="default" nzDanger (click)="approveDriver()">审核通过</button>
<button nz-button nzType="default" nzDanger (click)="rejectedDriver()">驳回审核</button>
<button nz-button nzType="default" *ngIf="driverDetail?.approvalStatus!==20" nzDanger
(click)="ratify()">修改</button>
</div>
@ -118,7 +118,6 @@
{{ driverDetail?.validStartTime }}
</sv>
</sv-container>
<sv-container col="2" class="mt16">
<sv label="有效期至">
{{ driverDetail?.validEndTime }}
@ -132,13 +131,14 @@
</sv>
</sv-container>
<nz-divider></nz-divider>
<sv-container col="3" class="mt16">
<sv-title>从业资格证信息
<label *ngIf="licenseDetail?.approvalStatus===20" style="color: #52c41a;"><i nz-icon nzType="check-circle"
nzTheme="fill" class="mr-xs"></i>审核通过
<label *ngIf="licenseDetail?.approvalStatus===20" style="color: #52c41a;">
<i nz-icon nzType="check-circle" nzTheme="fill" class="mr-xs"></i>审核通过
</label>
<label *ngIf="licenseDetail?.approvalStatus===30" style="color: #ff4d4f;"><i nz-icon nzType="close-circle"
nzTheme="fill" class="mr-xs"></i>驳回
<label *ngIf="licenseDetail?.approvalStatus===30" style="color: #ff4d4f;">
<i nz-icon nzType="close-circle" nzTheme="fill" class="mr-xs"></i>驳回
</label>
</sv-title>
<sv label="从业资格证号">

View File

@ -1,4 +1,3 @@
<ng-container>
<!-- 页头 -->
<page-header-wrapper [logo]="logo" [content]="content">
<ng-template #logo>
@ -29,6 +28,15 @@
</div>
<div nz-col [nzXl]="8" [nzLg]="8" [nzSm]="24" [nzXs]="24" class="d-flex"
style="justify-content: flex-end;">
<ng-container *ngIf="isEdit;else editButton">
<button [nzLoading]="service.http.loading" nz-button (click)="reset()">
取消
</button>
<button [nzLoading]="service.http.loading" nz-button nzDanger (click)="save()">
保存
</button>
</ng-container>
<ng-template #editButton>
<button [nzLoading]="service.http.loading" nz-button nzDanger (click)="auditPass()">
通过
</button>
@ -38,6 +46,7 @@
<button [nzLoading]="service.http.loading" nz-button nzDanger (click)="ratify()">
修改
</button>
</ng-template>
</div>
</div>
</div>
@ -46,31 +55,41 @@
</nz-skeleton>
</ng-template>
</page-header-wrapper>
<nz-card [nzLoading]="service.http.loading">
<nz-card [nzLoading]="service.http.loading" [class]="isEdit?'edit-box':'readOnly-box'">
<sv-container col="3">
<sv-title>企业管理员信息</sv-title>
<sv label="姓名">
{{ detailData?.adminUserInfo?.name }}
<input nz-input type="text" [(ngModel)]="detailData.adminUserInfo.name" [readonly]="!isEdit"
[nzBorderless]="!isEdit" [placeholder]="isEdit?'':'-'">
</sv>
<sv label="手机号">
{{ detailData?.adminUserInfo?.mobile }}
<input nz-input type="text" [(ngModel)]="detailData.adminUserInfo.mobile" [readonly]="!isEdit"
[nzBorderless]="!isEdit" [placeholder]="isEdit?'':'-'">
</sv>
<sv label="身份证号">
{{ detailData?.contactadminUserInfo?.certificateNumber }}
<input nz-input type="text" [(ngModel)]="detailData.legalPersonIdentityVO.certificateNumber" [readonly]="!isEdit"
[nzBorderless]="!isEdit" [placeholder]="isEdit?'':'-'">
</sv>
</sv-container>
<sv-container col="2">
<sv label="身份证照">
<app-imagelist
[imgList]="[detailData?.adminUserInfo?.certificatePhotoFrontWatermark,detailData?.adminUserInfo?.certificatePhotoBackWatermark]">
</app-imagelist>
<sv label="身份证照" col="2">
<div class="d-flex">
<ng-container
*ngTemplateOutlet="uploadTemplate;context:{image:detailData?.adminUserInfo?.certificatePhotoFrontWatermark,key:'certificatePhotoFrontWatermark'}">
</ng-container>
<ng-container
*ngTemplateOutlet="uploadTemplate;context:{image:detailData?.adminUserInfo?.certificatePhotoBackWatermark,key:'certificatePhotoBackWatermark'}">
</ng-container>
</div>
</sv>
<sv label="企业授权函">
<app-imagelist [imgList]="[detailData?.adminUserInfo?.certificatePhotoBackWatermark]"></app-imagelist>
<sv label="企业授权函" col="2">
<ng-container
*ngTemplateOutlet="uploadTemplate;context:{image:detailData?.adminUserInfo?.certificatePhotoBackWatermark,key:'certificatePhotoBackWatermark'}">
</ng-container>
</sv>
</sv-container>
<nz-divider></nz-divider>
<sv-container col="3" class="mt16">
<sv-container col="3">
<sv-title>
<label class="mr-md">企业基本信息</label>
<label *ngIf="detailData?.approvalStatus===10" style="color: #1890ff;"><i nz-icon nzType="info-circle"
@ -84,36 +103,55 @@
</label>
</sv-title>
<sv label="公司名称">
{{ detailData?.enterpriseName }}
<input nz-input type="text" [(ngModel)]="detailData.enterpriseName" [readonly]="!isEdit" [nzBorderless]="!isEdit"
[placeholder]="isEdit?'':'-'">
</sv>
<sv label="统一社会信用代码">
{{ detailData?.unifiedSocialCreditCode }}
<input nz-input type="text" [(ngModel)]="detailData.unifiedSocialCreditCode" [readonly]="!isEdit"
[nzBorderless]="!isEdit" [placeholder]="isEdit?'':'-'">
</sv>
<sv label="公司类型">
{{ detailData?.enterpriseType }}
<input nz-input type="text" [(ngModel)]="detailData.enterpriseType" [readonly]="!isEdit" [nzBorderless]="!isEdit"
[placeholder]="isEdit?'':'-'">
</sv>
<sv label="注册资本">
<ng-container *ngIf="isEdit; else registrationCapitalTemplate">
<input nz-input type="number" [(ngModel)]="detailData.registrationCapital" [readonly]="!isEdit"
[nzBorderless]="!isEdit" [placeholder]="isEdit?'':'-'" class="mr-sm">
</ng-container>
<ng-template #registrationCapitalTemplate>
{{detailData?.registrationCapital}}
</ng-template>
<span *ngIf="detailData?.registrationCapital">万元</span>
</sv>
<sv label="成立日期">
{{ detailData?.enterpriseRegistrationTime }}
<nz-date-picker [(ngModel)]="detailData.enterpriseRegistrationTime" [nzDisabled]="!isEdit"
[nzPlaceHolder]="isEdit?'':'-'" [nzBorderless]="!isEdit" [nzSuffixIcon]="isEdit?'calendar':''"></nz-date-picker>
</sv>
<sv label="营业期限">
<ng-container *ngIf="isEdit; else elseTemplate">
<nz-range-picker [ngModel]="[detailData?.operatingStartTime,detailData?.operatingEndTime]"
(ngModelChange)="changeTime($event)"></nz-range-picker>
</ng-container>
<ng-template #elseTemplate>
<div *ngIf="!!detailData?.operatingStartTime && !!detailData?.operatingEndTime">
{{ detailData?.operatingStartTime }} 至 {{ detailData?.operatingEndTime }}
</div>
<div *ngIf="!detailData?.operatingStartTime && !detailData?.operatingEndTime">长期</div>
<div *ngIf="!!detailData?.operatingStartTime && !detailData?.operatingEndTime">{{ detailData?.operatingStartTime
}} 至 长期</div>
</ng-template>
</sv>
</sv-container>
<sv-container col="2" class="mt16">
<sv label="公司所在地" col="3">
<ng-container *ngIf="!isEdit; else elseTemplate">
<nz-cascader [nzLoadData]="loadData" (ngModelChange)="changeCascader($event)"></nz-cascader>
</ng-container>
<ng-template #elseTemplate>
{{ detailData?.fullRegionVO?.provinceName }}{{ detailData?.fullRegionVO?.cityName }}{{
detailData?.fullRegionVO?.areaName }}
</ng-template>
</sv>
<sv label="公司详细地址">
<sv label="公司详细地址" col="2">
{{ detailData?.enterpriseAddress }}
</sv>
</sv-container>
@ -166,7 +204,6 @@
</sv>
</sv-container>
</nz-card>
</ng-container>
<ng-template #approvedModal>
<div nz-row nzGutter="8">
@ -196,3 +233,26 @@
</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]="service.http.loading ? '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 [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>

View File

@ -1,46 +1,132 @@
@import '~@delon/theme/index';
:host {
::ng-deep {
.ant-steps-dot {
.ant-steps-item-content {
width: 200px;
}
.ant-steps-item-icon {
margin-left: 96px;
}
.ant-steps-item-tail::after {
margin-left: 40px;
}
}
.success {
color: @success-color;
sv-title {
font-weight: 700;
}
.warning {
color: @warning-color;
}
.error {
color: @error-color;
}
}
.mt16 {
margin-top: 16px;
}
.user-info {
display : flex;
font-size: 16px;
.enterprise-name {
margin-right: 15px;
}
img {
width : 64px;
height : 64px;
margin-right : 15px;
border-radius: 50%;
}
.user-info-des {
margin-bottom: 5px;
}
}
.sv__label,
.sv__detail {
line-height: 30px;
}
.edit-box {
input {
max-width: 250px;
}
nz-date-picker {
min-width: 250px;
}
}
.readOnly-box {
input {
padding-left: 0;
color : #000;
border : 0;
}
nz-select-top-control {
padding-left: 0px !important;
}
}
.ant-select {
min-width: 250px;
nz-select-top-control {
cursor: text !important;
color : #000 !important;
}
}
// 图片展示工具样式改造
.ant-upload.ant-upload-disabled {
cursor: pointer;
}
.ant-upload.ant-upload-select-picture-card {
width : 200px;
height: 160px;
}
.ant-upload-picture-card-wrapper {
width: auto;
}
}
}
.image-hover {
.delete-icon {
border-radius : 50%;
color : #F55656;
font-size : 28px;
position : absolute;
top : -15px;
right : -15px;
background-color: #ffffff;
cursor : pointer;
}
.show-icon {
color : #ffffff;
font-size: 30px;
cursor : pointer;
}
}
.image-hover:hover .mask {
opacity: 0.8;
}
.mask {
width : 200px;
height : 160px;
background-color : #4F4F4F;
opacity : 0;
position : absolute;
// top : 6px;
// left : 12px;
border-radius : 6px;
margin-top : -160px;
}
.mask-over {
width : 200px;
height : 160px;
position : absolute;
// top : 6px;
// left : 12px;
border-radius : 6px;
display : flex;
justify-content : center;
align-items : center;
margin-top : -160px;
label {
font-size : 20px;
line-height : 24px;
letter-spacing: 0.7px;
color : #FFFFFF;
}
}

View File

@ -16,6 +16,9 @@ import {
} from '@delon/form';
import { Observable, Observer } from 'rxjs';
import { NzModalService } from 'ng-zorro-antd/modal';
import { apiConf } from '@conf/api.conf';
import { ImageViewComponent } from 'src/app/shared/components/imagelist';
import { NzCascaderOption } from 'ng-zorro-antd/cascader';
@Component({
selector: 'app-Freight-components-EnterpriseAudit-view',
templateUrl: './view.component.html',
@ -30,7 +33,8 @@ export class FreightComponentsEnterpriseAuditViewComponent implements OnInit {
approvalOpinion = '';
networkTransporter = null;
detailData: any;
detailData: any = this.initDefalutData();
tempalateData = { ...this.detailData };
statusE: any = {
10: '待审核',
@ -40,10 +44,13 @@ export class FreightComponentsEnterpriseAuditViewComponent implements OnInit {
isEdit = false;
uploadURl = apiConf.waterFileUpload;
disabledUpload = false;
constructor(private nzModalService: NzModalService, public service: UsermanageService, private route: ActivatedRoute) {}
ngOnInit() {
this.initData();
this.loadData({}, 0).then(res => console.log(res));
// this.launchSign();
}
@ -55,6 +62,7 @@ export class FreightComponentsEnterpriseAuditViewComponent implements OnInit {
.subscribe(res => {
if (res) {
this.detailData = res;
this.tempalateData = { ...this.detailData };
}
});
}
@ -104,6 +112,78 @@ export class FreightComponentsEnterpriseAuditViewComponent implements OnInit {
});
}
showImg(url: any) {
const params = {
imgList: [url],
index: 0
};
this.nzModalService.create({ nzContent: ImageViewComponent, nzComponentParams: { params } });
}
deleteImg(key: string) {
this.nzModalService.warning({
nzTitle: '是否确认删除该图片',
nzOnOk: () => {
this.disabledUpload = true;
this.detailData[key] = '';
setTimeout(() => {
this.disabledUpload = false;
}, 100);
}
});
}
changeUpload({ file, fileList, type }: any, key: string) {
console.log({ file, fileList, type });
if (type === 'success') {
this.detailData[key] = file.response.data.fullFileWatermarkPath;
}
}
changeTime(event: any) {
console.log(event);
}
changeCascader(event: any) {
console.log(event);
}
/*
* 根据地区code查询地区详情
* code请求参数
* type参数 name获取省市区名称fullcode获取省市区code
* num参数 1第一个地区选择2第二个地区选择
*/
getRegionDetailByCode(regionCode: any) {
// 根据地区code查询地区详情
return this.service.request(this.service.$api_get_region_by_code, { regionCode });
}
loadData(node: any, index: number): PromiseLike<void> {
return new Promise(resolve => {
this.getRegionDetailByCode(node?.regionCode || '').subscribe(
res => {
console.log(1);
node.children = res.map((item: any) => ({ ...item, isLeaf: index === 1 }));
},
_ => {},
() => {
resolve();
}
);
});
}
reset() {
this.detailData = { ...this.tempalateData };
this.isEdit = false;
}
save() {
this.isEdit = false;
}
ratify() {
this.isEdit = true;
}
@ -111,4 +191,39 @@ export class FreightComponentsEnterpriseAuditViewComponent implements OnInit {
goBack() {
window.history.go(-1);
}
private initDefalutData() {
return {
adminUserInfo: {
name: '',
mobile: '',
certificatePhotoFrontWatermark: '',
certificatePhotoBackWatermark: ''
},
legalPersonIdentityVO: {
certificateNumber: ''
},
enterpriseName: '',
enterpriseType: '',
unifiedSocialCreditCode: '',
registrationCapital: null,
enterpriseRegistrationTime: '',
driverLicenseSigningOrg: '',
carDistinguishCode: '',
carLoad: '',
curbWeight: '',
roadTransportNo: '',
roadTransportLicenceNo: '',
carOwner: '',
isTrailer: null,
useNature: null,
driverLicenseRegisterTime: null,
driverLicenseGetTime: null,
driverLicenseEndTime: null,
roadTransportStartTime: null,
roadTransportEndTime: null,
carFrontPhotoWatermark: ''
};
}
}

View File

@ -54,8 +54,8 @@
nzType="close-circle" nzTheme="fill" class="mr-xs"></i>驳回
</label>
<div style="float: right;">
<button nz-button nzType="default" nzDanger (click)="auditPass()">审核通过</button>
<button nz-button nzType="default" nzDanger (click)="auditNo()">驳回审核</button>
<button nz-button nzType="default" nzDanger (click)="auditPass()" *ngIf="userIdentityDetail.certificationStatus===0">审核通过</button>
<button nz-button nzType="default" nzDanger (click)="auditNo()" *ngIf="userIdentityDetail.certificationStatus===0">驳回审核</button>
<button nz-button nzType="default" nzDanger (click)="ratify()">修改</button>
</div>
</sv-title>
@ -86,15 +86,14 @@
<div nz-row nzGutter="8">
<div nz-col nzSpan="24" se-container [labelWidth]="120">
<se [col]="1" label="姓名">
{{ userIdentityDetail?.enterpriseName }}
{{ userIdentityDetail?.name }}
</se>
<se [col]="1" label="备注" required>
<textarea nz-input rows="3" style="width: 325px;margin-left: 14px;"
[(ngModel)]="approvalOpinion.remark"></textarea>
<textarea nz-input rows="3" style="width: 325px;margin-left: 14px;" [(ngModel)]="approvalOpinion"></textarea>
</se>
<se [col]="1" label="可选理由">
<nz-tag *ngFor="let tag of reasonTags" nzColor="default" nzMode="checkable"
[nzChecked]="approvalOpinion?.reason===tag" (nzCheckedChange)="approvalOpinion.reason=tag">
(nzCheckedChange)="approvalOpinion=approvalOpinion+'、'+tag">
{{ tag }}
</nz-tag>
</se>

View File

@ -25,10 +25,7 @@ export class FreightComponentsUserDetailComponent implements OnInit {
{ title: '角色', index: 'totalPrice', width: 300, className: 'text-center' }
];
approvalOpinion = {
reason: '',
remark: ''
};
approvalOpinion = '';
reasonTags = ['身份证照片太丑', '姓名与身份证号不匹配'];
constructor(private nzModalService: NzModalService, public service: UsermanageService, private route: ActivatedRoute) {}
@ -83,27 +80,44 @@ export class FreightComponentsUserDetailComponent implements OnInit {
auditPass() {
this.nzModalService.confirm({
nzTitle: '审核通过',
nzContent: `是否确认通过(姓名:黄大仙)审核`,
nzOnOk: () => {}
nzContent: `是否确认通过(姓名:${this.userIdentityDetail?.name})审核`,
nzOnOk: () => {
this.auditEnterprise(0);
}
});
}
auditNo() {
this.approvalOpinion = {
reason: '',
remark: ''
};
this.approvalOpinion = '';
this.nzModalService.create({
nzTitle: '审核驳回',
nzContent: this.redectModal,
nzOnOk: () => {
if (!this.approvalOpinion?.remark) {
if (!this.approvalOpinion) {
return false;
}
this.auditEnterprise(1);
return;
}
});
}
private auditEnterprise(auditStatus: number) {
this.service
.request(this.service.$api_approve_identity, {
auditStatus: auditStatus,
identityId: this.userIdentityDetail.id,
auditType: 0,
certificationOpinions: this.approvalOpinion
})
.subscribe(res => {
if (res) {
this.service.msgSrv.success(auditStatus === 0 ? '审核通过' : '驳回成功');
}
this.initData();
});
}
ratify() {}
goBack() {

View File

@ -41,6 +41,7 @@ import { NzStatisticModule } from 'ng-zorro-antd/statistic';
import { NzTimelineModule } from 'ng-zorro-antd/timeline';
import { NzSkeletonModule } from 'ng-zorro-antd/skeleton';
import { NzUploadModule } from 'ng-zorro-antd/upload';
import { NzCascaderModule } from 'ng-zorro-antd/cascader';
export const SHARED_ZORRO_MODULES = [
NzButtonModule,
NzGridModule,
@ -75,5 +76,6 @@ export const SHARED_ZORRO_MODULES = [
NzStatisticModule,
NzTimelineModule,
NzSkeletonModule,
NzUploadModule
NzUploadModule,
NzCascaderModule
];

View File

@ -57,7 +57,8 @@ import {
MenuOutline,
SwapOutline,
EyeFill,
EyeInvisibleFill
EyeInvisibleFill,
SolutionOutline
} from '@ant-design/icons-angular/icons';
export const ICONS_AUTO = [
@ -114,5 +115,6 @@ export const ICONS_AUTO = [
MenuOutline,
EyeFill,
EyeInvisibleFill,
SwapOutline
SwapOutline,
SolutionOutline
];