Merge branch 'develop' of https://gitlab.eascs.com/tms-ui/tms-obc-web into develop

This commit is contained in:
wangshiming
2022-05-06 11:15:05 +08:00
24 changed files with 956 additions and 881 deletions

View File

@ -15,7 +15,8 @@ const alainConfig: AlainConfig = {
req: { method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' } }, req: { method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' } },
res: { reName: { list: 'data.records', total: 'data.total' } }, res: { reName: { list: 'data.records', total: 'data.total' } },
page: { show: true, showSize: true, pageSizes: [10, 20, 30, 50, 100, 200, 300, 500, 1000], toTop: false }, page: { show: true, showSize: true, pageSizes: [10, 20, 30, 50, 100, 200, 300, 500, 1000], toTop: false },
modal: { size: 'lg' } modal: { size: 'lg' },
ps: 20
}, },
sf: { button: { search: '查询' } }, sf: { button: { search: '查询' } },
pageHeader: { homeI18n: 'home', recursiveBreadcrumb: true }, pageHeader: { homeI18n: 'home', recursiveBreadcrumb: true },
@ -27,7 +28,7 @@ const alainConfig: AlainConfig = {
'https://gw.alipayobjects.com/os/lib/antv/g2/4.1.4/dist/g2.min.js', 'https://gw.alipayobjects.com/os/lib/antv/g2/4.1.4/dist/g2.min.js',
'https://gw.alipayobjects.com/os/lib/antv/data-set/0.11.7/dist/data-set.js' 'https://gw.alipayobjects.com/os/lib/antv/data-set/0.11.7/dist/data-set.js'
] ]
}, }
}; };
const alainModules = [AlainThemeModule.forRoot(), DelonACLModule.forRoot()]; const alainModules = [AlainThemeModule.forRoot(), DelonACLModule.forRoot()];

View File

@ -4,6 +4,23 @@ import { SearchDrawerService } from '@shared';
import { fromEvent, Subscription } from 'rxjs'; import { fromEvent, Subscription } from 'rxjs';
import { debounceTime } from 'rxjs/operators'; import { debounceTime } from 'rxjs/operators';
/**
* 列表基础组件
* 功能:
* 1、计算列表滚动高度scrollY
* 实现:
* 1、列表组件需继承BasicTableComponent并且提供SearchDrawerService派生类
* 2、引入commom-table.less 样式文件
* 3、列表使用table-box class包裹。组件会自动减去layout-pro-header、page-header-wrapper和nz-tabs-nav标签的高度以及header_box和height_box class的高度最后减去deviationHeight的偏移高度
* 2、提供筛选抽屉并返回sf实例sf
* 实现:
* 1、列表组件需继承BasicTableComponent并且提供SearchDrawerService派生类
* 2、实例化schema及给schema赋值sf配置
* 3、重写search()方法。当筛选抽屉触发查询时会调用这个方法
* 提供:
* 1、抽屉的sf实例
* 2、sf.value的数据=>sfValue
*/
@Component({ @Component({
template: '' template: ''
}) })

View File

@ -36,10 +36,39 @@
</ng-template> </ng-template>
</page-header-wrapper> </page-header-wrapper>
<nz-card [nzLoading]="service.http.loading"> <nz-card [nzLoading]="service.http.loading" [nzBorderless]="true">
<div [class]="isEditUser ? 'edit-box' : 'readOnly-box'"> <div class="mb-md">
<sv-container col="2"> <div class="font-weight-blod text-md detail-title" style="justify-content: space-between;">
<sv-title>个人信息 <div>
<a class="sign"></a>
<span>个人信息</span>
<label *ngIf="userIdentityDetail?.certificationStatus === 1" style="color: #52c41a" class="ml-md"><i nz-icon
nzType="check-circle" nzTheme="fill" class="mr-xs"></i>审核通过
</label>
<label *ngIf="userIdentityDetail?.certificationStatus === 2" style="color: #ff4d4f" class="ml-md"><i nz-icon
nzType="close-circle" nzTheme="fill" class="mr-xs"></i>驳回
</label>
</div>
<div>
<ng-container *ngIf="isEditUser; else elseTemplate">
<button [nzLoading]="service.http.loading" nz-button (click)="reset()"> 取消 </button>
<button [nzLoading]="service.http.loading" nz-button nzDanger (click)="saveUser()"> 保存 </button>
</ng-container>
<ng-template #elseTemplate>
<button nz-button nzType="default" nzDanger (click)="approveUser()"
*ngIf="userIdentityDetail?.certificationStatus === 0" acl
[acl-ability]="['USERCENTER-DRIVER-CAPTAIN-DETAIL-audit']">审核通过</button>
<button nz-button nzType="default" nzDanger (click)="rejectedUser()"
*ngIf="userIdentityDetail?.certificationStatus === 0" acl
[acl-ability]="['USERCENTER-DRIVER-CAPTAIN-DETAIL-audit']">驳回审核</button>
<button nz-button nzType="default" nzDanger (click)="ratify()" acl
[acl-ability]="['USERCENTER-DRIVER-CAPTAIN-DETAIL-edit']">修改</button>
</ng-template>
</div>
</div>
<div [class]="isEditUser ? 'edit-box' : 'readOnly-box'">
<sv-container col="2">
<!-- <sv-title>个人信息
<label *ngIf="userIdentityDetail?.certificationStatus === 1" style="color: #52c41a" class="ml-md"><i nz-icon <label *ngIf="userIdentityDetail?.certificationStatus === 1" style="color: #52c41a" class="ml-md"><i nz-icon
nzType="check-circle" nzTheme="fill" class="mr-xs"></i>审核通过 nzType="check-circle" nzTheme="fill" class="mr-xs"></i>审核通过
</label> </label>
@ -62,18 +91,18 @@
[acl-ability]="['USERCENTER-DRIVER-CAPTAIN-DETAIL-edit']">修改</button> [acl-ability]="['USERCENTER-DRIVER-CAPTAIN-DETAIL-edit']">修改</button>
</ng-template> </ng-template>
</div> </div>
</sv-title> </sv-title> -->
<sv label="姓名"> <sv label="姓名">
<input nz-input type="text" [(ngModel)]="userIdentityDetail.name" [readonly]="!isEditUser" <input nz-input type="text" [(ngModel)]="userIdentityDetail.name" [readonly]="!isEditUser"
[nzBorderless]="!isEditUser" [placeholder]="isEditUser ? '' : '-'" /> [nzBorderless]="!isEditUser" [placeholder]="isEditUser ? '' : '-'" />
</sv> </sv>
<sv label="身份证号"> <sv label="身份证号">
<input nz-input type="text" [(ngModel)]="userIdentityDetail.certificateNumber" [readonly]="!isEditUser" <input nz-input type="text" [(ngModel)]="userIdentityDetail.certificateNumber" [readonly]="!isEditUser"
[nzBorderless]="!isEditUser" [placeholder]="isEditUser ? '' : '-'" /> [nzBorderless]="!isEditUser" [placeholder]="isEditUser ? '' : '-'" />
</sv> </sv>
<sv label="身份证照" col="1"> <sv label="身份证照" col="1">
<div class="d-flex"> <div class="d-flex">
<ng-container *ngTemplateOutlet=" <ng-container *ngTemplateOutlet="
uploadTemplate; uploadTemplate;
context: { context: {
data: userIdentityDetail, data: userIdentityDetail,
@ -83,8 +112,8 @@
hover: 'certificateBackFront' hover: 'certificateBackFront'
} }
"> ">
</ng-container> </ng-container>
<ng-container *ngTemplateOutlet=" <ng-container *ngTemplateOutlet="
uploadTemplate; uploadTemplate;
context: { context: {
data: userIdentityDetail, data: userIdentityDetail,
@ -94,24 +123,33 @@
hover: 'certificateBack' hover: 'certificateBack'
} }
"> ">
</ng-container> </ng-container>
</div> </div>
</sv> </sv>
</sv-container> </sv-container>
</div>
</div> </div>
<sv-container col="3" class="mt-md"> <div>
<sv-title>银行结算信息<ng-container *ngIf="bankList?.length===0">(暂无银行信息)</ng-container></sv-title> <div class="font-weight-blod text-md detail-title">
<ng-container *ngFor="let item of bankList"> <a class="sign"></a>
<sv label="开户银行"> <span>银行结算信息</span>
{{ item.bankName }} <ng-container *ngIf="bankList?.length===0">(暂无银行信息)</ng-container>
</sv> </div>
<sv label="银行卡号"> <sv-container col="3" class="mt-md">
{{ item?.bankCardNumber }} <!-- <sv-title>银行结算信息<ng-container *ngIf="bankList?.length===0">(暂无银行信息)</ng-container>
</sv> </sv-title> -->
</ng-container> <ng-container *ngFor="let item of bankList">
<sv label="开户银行">
{{ item.bankName }}
</sv>
<sv label="银行卡号">
{{ item?.bankCardNumber }}
</sv>
</ng-container>
</sv-container> </sv-container>
</div>
</nz-card> </nz-card>
<ng-template #redectModal> <ng-template #redectModal>
@ -147,4 +185,4 @@
</div> </div>
</div> </div>
</nz-upload> </nz-upload>
</ng-template> </ng-template>

View File

@ -1,39 +1,14 @@
<!-- <!-- <page-header-wrapper></page-header-wrapper>
* @Author: your name
* @Date: 2021-11-29 15:22:34
* @LastEditTime : 2022-02-16 09:58:52
* @LastEditors : Shiming
* @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
* @FilePath : \\tms-obc-web\\src\\app\\routes\\usercenter\\components\\driver\\captain\\captain.component.html
-->
<!-- 页头 -->
<page-header-wrapper></page-header-wrapper>
<nz-card> <nz-card>
<!-- 搜索区 -->
<!-- 搜索表单 -->
<div nz-row nzGutter="8"> <div nz-row nzGutter="8">
<div nz-col [nzXl]="_$expand ? 24 : 18" [nzLg]="24" [nzSm]="24" [nzXs]="24"> <div nz-col [nzXl]="_$expand ? 24 : 18" [nzLg]="24" [nzSm]="24" [nzXs]="24">
<sf #sf [schema]="schema" [ui]="ui" [compact]="true" [button]="'none'"></sf> <sf #sf [schema]="schema" [ui]="ui" [compact]="true" [button]="'none'"></sf>
</div> </div>
<div nz-col [nzXl]="_$expand ? 24 : 6" [nzLg]="24" [nzSm]="24" [nzXs]="24" class="text-right"> <div nz-col [nzXl]="_$expand ? 24 : 6" [nzLg]="24" [nzSm]="24" [nzXs]="24" class="text-right">
<button <button nz-button nzType="primary" [nzLoading]="service.http.loading" (click)="st?.load(1)" acl
nz-button [acl-ability]="['USERCENTER-DRIVER-CAPTAIN-list']">查询</button>
nzType="primary" <button nz-button nzType="primary" [disabled]="false" (click)="exportList()" acl
[nzLoading]="service.http.loading" [acl-ability]="['USERCENTER-DRIVER-CAPTAIN-export']">导出</button>
(click)="st?.load(1)"
acl
[acl-ability]="['USERCENTER-DRIVER-CAPTAIN-list']"
>查询</button
>
<button
nz-button
nzType="primary"
[disabled]="false"
(click)="exportList()"
acl
[acl-ability]="['USERCENTER-DRIVER-CAPTAIN-export']"
>导出</button
>
<button nz-button (click)="resetSF()" [disabled]="false">重置</button> <button nz-button (click)="resetSF()" [disabled]="false">重置</button>
<button nz-button nzType="link" (click)="expandToggle()"> <button nz-button nzType="link" (click)="expandToggle()">
{{ !_$expand ? '展开' : '收起' }} {{ !_$expand ? '展开' : '收起' }}
@ -41,23 +16,22 @@
</button> </button>
</div> </div>
</div> </div>
</nz-card> </nz-card> -->
<nz-card> <nz-card class="table-box">
<!-- 数据列表 --> <div class="header_box">
<!-- 工具栏 --> <label class="page_title"> <label class="driver">|</label> 车队长列表</label>
<div class="toolbar" style="float: right; <div class="mr-sm">
padding-bottom: 15px;"> <button nz-button nzDanger [nzLoading]="service.http.loading" (click)="openDrawer()" acl
<button nz-button nzType="primary" (click)="add()">添加车队长</button> [acl-ability]="['USERCENTER-DRIVER-CAPTAIN-list']">筛选</button>
<button nz-button nzDanger (click)="exportList()" acl [acl-ability]="['USERCENTER-DRIVER-CAPTAIN-export']">
导出</button>
<button nz-button nzType="primary" (click)="add()" acl
[acl-ability]="['USERCENTER-DRIVER-CAPTAIN-add']">添加车队长</button>
</div>
</div> </div>
<st <!-- 数据列表 -->
#st <st #st [columns]="columns" [data]="service.$api_get_user_expand" [req]="{ params: reqParams }"
[columns]="columns" [res]="{ process: dataProcess }" [page]="{ }" [loading]="false" [scroll]="{ x: '1200px',y:scrollY }">
[data]="service.$api_get_user_expand"
[req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, params: reqParams }"
[res]="{ reName: { list: 'data.records', total: 'data.total' }, process: dataProcess }"
[page]="{ show: true, showSize: true, pageSizes: [10, 20, 30, 50, 100, 200, 300, 500, 1000] }"
[loading]="false"
>
<ng-template st-row="promotersTelephone" let-item let-index="index"> <ng-template st-row="promotersTelephone" let-item let-index="index">
<a (click)="addPromoter(item)" acl [acl-ability]="['USERCENTER-DRIVER-CAPTAIN-promoter']"> <a (click)="addPromoter(item)" acl [acl-ability]="['USERCENTER-DRIVER-CAPTAIN-promoter']">
{{ item.promotersTelephone || '添加' }} {{ item.promotersTelephone || '添加' }}
@ -74,4 +48,4 @@
</se> </se>
</div> </div>
</div> </div>
</ng-template> </ng-template>

View File

@ -3,29 +3,39 @@ import { ActivatedRoute, Router } from '@angular/router';
import { STColumn, STColumnBadge, STComponent, STData } from '@delon/abc/st'; import { STColumn, STColumnBadge, STComponent, STData } from '@delon/abc/st';
import { SFComponent, SFSchema, SFUISchema } from '@delon/form'; import { SFComponent, SFSchema, SFUISchema } from '@delon/form';
import { ModalHelper } from '@delon/theme'; import { ModalHelper } from '@delon/theme';
import { DynamicSettingModalComponent } from '@shared'; import { DynamicSettingModalComponent, SearchDrawerService } from '@shared';
import { NzModalService } from 'ng-zorro-antd/modal'; import { NzModalService } from 'ng-zorro-antd/modal';
import { BasicTableComponent } from 'src/app/routes/commom';
import { UsermanageService } from '../../../services/usercenter.service'; import { UsermanageService } from '../../../services/usercenter.service';
import { CtcCaptatinAddComponent } from './add/add.component'; import { CtcCaptatinAddComponent } from './add/add.component';
@Component({ @Component({
selector: 'app-usercenter-components-driver-captain', selector: 'app-usercenter-components-driver-captain',
templateUrl: './captain.component.html', templateUrl: './captain.component.html',
styleUrls: ['./captain.component.less'] styleUrls: ['../../../../commom/less/commom-table.less']
}) })
export class UserCenterComponentsDriverCaptainComponent implements OnInit { export class UserCenterComponentsDriverCaptainComponent extends BasicTableComponent implements OnInit {
_$expand = false;
ui: SFUISchema = { '*': { spanLabelFixed: 120, grid: { lg: 8, md: 12, sm: 12, xs: 24 } } };
schema: SFSchema = this.initSF(); schema: SFSchema = this.initSF();
columns: STColumn[] = this.initST(); columns: STColumn[] = this.initST();
@ViewChild('st', { static: false }) st!: STComponent; @ViewChild('st', { static: false }) st!: STComponent;
@ViewChild('sf', { static: false }) sf!: SFComponent;
@ViewChild('promoterModal', { static: false }) @ViewChild('promoterModal', { static: false })
promoterModal!: any; promoterModal!: any;
promotersTelephone = ''; promotersTelephone = '';
constructor(public service: UsermanageService, private modal: NzModalService, private router: Router, private ar: ActivatedRoute, private modalHelper: ModalHelper,) {} constructor(
public service: UsermanageService,
private modal: NzModalService,
private router: Router,
private ar: ActivatedRoute,
private modalHelper: ModalHelper,
public searchDrawerService: SearchDrawerService
) {
super(searchDrawerService);
}
search() {
this.st?.load(1);
}
/** /**
* 查询参数 * 查询参数
@ -98,22 +108,9 @@ export class UserCenterComponentsDriverCaptainComponent implements OnInit {
}); });
} }
expandToggle() {
this._$expand = !this._$expand;
this.sf?.setValue('/expand', this._$expand);
}
/**
* 重置表单
*/
resetSF() {
this.sf.reset();
this._$expand = false;
}
exportList() { exportList() {
const params = this.reqParams; const params = this.reqParams;
this.service.downloadFile(this.service.$api_export_driver_cap, {...params, pageSize: -1}); this.service.downloadFile(this.service.$api_export_driver_cap, { ...params, pageSize: -1 });
} }
private initSF(): SFSchema { private initSF(): SFSchema {
@ -146,10 +143,7 @@ export class UserCenterComponentsDriverCaptainComponent implements OnInit {
type: 'string', type: 'string',
maxLength: 11, maxLength: 11,
ui: { ui: {
placeholder: '请输入', placeholder: '请输入'
visibleIf: {
expand: (value: boolean) => value
}
} }
}, },
identityStatus: { identityStatus: {
@ -163,10 +157,7 @@ export class UserCenterComponentsDriverCaptainComponent implements OnInit {
], ],
default: '', default: '',
ui: { ui: {
widget: 'select', widget: 'select'
visibleIf: {
expand: (value: boolean) => value
}
} }
}, },
source: { source: {
@ -176,14 +167,11 @@ export class UserCenterComponentsDriverCaptainComponent implements OnInit {
{ label: '全部', value: '' }, { label: '全部', value: '' },
{ label: '用户注册', value: 1 }, { label: '用户注册', value: 1 },
{ label: '货主添加', value: 2 }, { label: '货主添加', value: 2 },
{ label: '运营添加', value: 3 }, { label: '运营添加', value: 3 }
], ],
default: '', default: '',
ui: { ui: {
widget: 'select', widget: 'select'
visibleIf: {
expand: (value: boolean) => value
}
} }
} }
} }
@ -209,7 +197,7 @@ export class UserCenterComponentsDriverCaptainComponent implements OnInit {
} }
}, },
{ title: '推广业务员', className: 'text-center', render: 'promotersTelephone' }, { title: '推广业务员', className: 'text-center', render: 'promotersTelephone' },
{ title: '注册渠道', className: 'text-center', index: 'source', type: 'enum', enum: { 1: '用户注册', 2: '货主添加' , 3: '运营添加'} }, { title: '注册渠道', className: 'text-center', index: 'source', type: 'enum', enum: { 1: '用户注册', 2: '货主添加', 3: '运营添加' } },
{ title: '注册时间', className: 'text-center', index: 'createTime' }, { title: '注册时间', className: 'text-center', index: 'createTime' },
{ {
title: '操作', title: '操作',
@ -222,7 +210,7 @@ export class UserCenterComponentsDriverCaptainComponent implements OnInit {
this.router.navigate(['/usercenter/driver/captain/detail', item.appUserId]); this.router.navigate(['/usercenter/driver/captain/detail', item.appUserId]);
}, },
acl: { ability: ['USERCENTER-DRIVER-CAPTAIN-view'] } acl: { ability: ['USERCENTER-DRIVER-CAPTAIN-view'] }
}, }
// { // {
// text: '基础设置', // text: '基础设置',
// click: item => this.settingAction(item), // click: item => this.settingAction(item),

View File

@ -39,10 +39,60 @@
</page-header-wrapper> </page-header-wrapper>
<nz-card [nzLoading]="service.http.loading"> <nz-card [nzLoading]="service.http.loading" [nzBorderless]="true">
<div [class]="isEditUser?'edit-box':'readOnly-box'"> <div class="mb-md">
<sv-container col="2"> <div class="font-weight-blod text-md detail-title" style="justify-content: space-between;">
<sv-title>个人信息 <div>
<a class="sign"></a>
<span>个人信息</span>
<label *ngIf="userIdentityDetail?.certificationStatus===1" style="color: #52c41a;" class="ml-md"><i nz-icon
nzType="check-circle" nzTheme="fill" class="mr-xs"></i>审核通过
</label>
<label *ngIf="userIdentityDetail?.certificationStatus===2" style="color: #ff4d4f;" class="ml-md"><i nz-icon
nzType="close-circle" nzTheme="fill" class="mr-xs"></i>驳回 驳回原因:{{userIdentityDetail?.certificationOpinions}}
</label>
<label *ngIf="faceStatus == 1" style="color: #bec8c8; position: relative;
bottom: 2px;" class="ml-md"><i nz-icon nzType="check-circle" nzTheme="fill" class="mr-xs">人脸识别结果:已发起</i>
</label>
<label *ngIf="faceStatus == 0" style="color: #bec8c8; position: relative;
bottom: 2px;" class="ml-md"><i nz-icon nzType="check-circle" nzTheme="fill" class="mr-xs">人脸识别结果:无</i>
</label>
<label *ngIf="faceStatus == 2" style="color: #bec8c8; position: relative;
bottom: 2px;" class="ml-md"><i nz-icon nzType="check-circle" nzTheme="fill" class="mr-xs">人脸识别结果:进行中</i>
</label>
<label *ngIf="faceStatus == 3" style="color: #52c41a; position: relative;
bottom: 2px;" class="ml-md"><i nz-icon nzType="check-circle" nzTheme="fill" class="mr-xs">人脸识别结果:已成功</i>
</label>
<label *ngIf="faceStatus == 4" style="color: #ff4d4f; position: relative;
bottom: 2px;" class="ml-md"><i nz-icon nzType="check-circle" nzTheme="fill"
class="mr-xs">人脸识别结果:已失败;失败原因:{{facetext}}</i>
</label>
</div>
<div style="float: right;">
<ng-container *ngIf="isEditUser; else elseTemplate">
<button [disabled]="false" nz-button (click)="reset(0)">
取消
</button>
<button [disabled]="false" nz-button nzDanger (click)="saveUser()">
保存
</button>
</ng-container>
<ng-template #elseTemplate>
<button nz-button nzType="default" nzDanger (click)="approveUser()"
*ngIf="userIdentityDetail?.certificationStatus===0" acl
[acl-ability]="['USERCENTER-DRIVER-LIST-DETAIL-auditUser']">审核通过</button>
<button nz-button nzType="default" nzDanger (click)="rejectedUser()"
*ngIf="userIdentityDetail?.certificationStatus===0" acl
[acl-ability]="['USERCENTER-DRIVER-LIST-DETAIL-auditUser']">驳回审核</button>
<button nz-button nzType="default" nzDanger (click)="ratify(0)" acl
[acl-ability]="['USERCENTER-DRIVER-LIST-DETAIL-editUser']">修改</button>
</ng-template>
</div>
</div>
<div [class]="isEditUser?'edit-box':'readOnly-box'">
<sv-container col="2">
<!-- <sv-title>个人信息
<label *ngIf="userIdentityDetail?.certificationStatus===1" style="color: #52c41a;" class="ml-md"><i nz-icon <label *ngIf="userIdentityDetail?.certificationStatus===1" style="color: #52c41a;" class="ml-md"><i nz-icon
nzType="check-circle" nzTheme="fill" class="mr-xs"></i>审核通过 nzType="check-circle" nzTheme="fill" class="mr-xs"></i>审核通过
</label> </label>
@ -85,49 +135,82 @@
[acl-ability]="['USERCENTER-DRIVER-LIST-DETAIL-editUser']">修改</button> [acl-ability]="['USERCENTER-DRIVER-LIST-DETAIL-editUser']">修改</button>
</ng-template> </ng-template>
</div> </div>
</sv-title> </sv-title> -->
<sv label="姓名"> <sv label="姓名">
<input nz-input type="text" [(ngModel)]="userIdentityDetail.name" [readonly]="!isEditUser" <input nz-input type="text" [(ngModel)]="userIdentityDetail.name" [readonly]="!isEditUser"
[nzBorderless]="!isEditUser" [placeholder]="isEditUser?'':'-'"> [nzBorderless]="!isEditUser" [placeholder]="isEditUser?'':'-'">
</sv> </sv>
<sv label="身份证号"> <sv label="身份证号">
<input nz-input type="text" [(ngModel)]="userIdentityDetail.certificateNumber" [readonly]="!isEditUser" <input nz-input type="text" [(ngModel)]="userIdentityDetail.certificateNumber" [readonly]="!isEditUser"
[nzBorderless]="!isEditUser" [placeholder]="isEditUser?'':'-'"> [nzBorderless]="!isEditUser" [placeholder]="isEditUser?'':'-'">
</sv> </sv>
<sv label="有效期" col="1"> <sv label="有效期" col="1">
<nz-date-picker [(ngModel)]="userIdentityDetail.validStartTime" [nzDisabled]="!isEditUser" nzPlaceHolder=" " <nz-date-picker [(ngModel)]="userIdentityDetail.validStartTime" [nzDisabled]="!isEditUser" nzPlaceHolder=" "
[nzBorderless]="!isEditUser" [nzSuffixIcon]="isEditUser?'calendar':''" style="width: 110px;" class="calendar"> [nzBorderless]="!isEditUser" [nzSuffixIcon]="isEditUser?'calendar':''" style="width: 110px;"
</nz-date-picker> class="calendar">
- </nz-date-picker>
<ng-container *ngIf="!isEditUser && !userIdentityDetail?.validEndTime && userIdentityDetail?.validStartTime"> -
<label style="padding-left: 11px;">长期</label> <ng-container *ngIf="!isEditUser && !userIdentityDetail?.validEndTime && userIdentityDetail?.validStartTime">
</ng-container> <label style="padding-left: 11px;">长期</label>
<nz-date-picker [(ngModel)]="userIdentityDetail.validEndTime" [nzDisabled]="!isEditUser" nzPlaceHolder=" " </ng-container>
[nzBorderless]="!isEditUser" [nzSuffixIcon]="isEditUser?'calendar':''" style="width: 110px;" class="calendar"> <nz-date-picker [(ngModel)]="userIdentityDetail.validEndTime" [nzDisabled]="!isEditUser" nzPlaceHolder=" "
</nz-date-picker> [nzBorderless]="!isEditUser" [nzSuffixIcon]="isEditUser?'calendar':''" style="width: 110px;"
<ng-container *ngIf="isEditUser"> class="calendar">
<label nz-checkbox [ngModel]="!!!userIdentityDetail.validEndTime" </nz-date-picker>
(ngModelChange)="$event?userIdentityDetail.validEndTime='':''" class="ml-sm">长期</label> <ng-container *ngIf="isEditUser">
</ng-container> <label nz-checkbox [ngModel]="!!!userIdentityDetail.validEndTime"
</sv> (ngModelChange)="$event?userIdentityDetail.validEndTime='':''" class="ml-sm">长期</label>
</ng-container>
</sv>
<sv label="身份证照" col="1"> <sv label="身份证照" col="1">
<div class="d-flex"> <div class="d-flex">
<ng-container <ng-container
*ngTemplateOutlet="uploadTemplate;context:{data:userIdentityDetail,status:isEditUser,key:'certificatePhotoFrontWatermark',key2:'certificatePhotoFront',hover:'certificateBackFront'}"> *ngTemplateOutlet="uploadTemplate;context:{data:userIdentityDetail,status:isEditUser,key:'certificatePhotoFrontWatermark',key2:'certificatePhotoFront',hover:'certificateBackFront'}">
</ng-container> </ng-container>
<ng-container <ng-container
*ngTemplateOutlet="uploadTemplate;context:{data:userIdentityDetail,status:isEditUser,key:'certificatePhotoBackWatermark',key2:'certificatePhotoBack',hover:'certificateBack'}"> *ngTemplateOutlet="uploadTemplate;context:{data:userIdentityDetail,status:isEditUser,key:'certificatePhotoBackWatermark',key2:'certificatePhotoBack',hover:'certificateBack'}">
</ng-container> </ng-container>
</div> </div>
</sv> </sv>
</sv-container> </sv-container>
</div>
</div> </div>
<nz-divider></nz-divider> <div class="mb-md">
<div [class]="isEditDriver?'edit-box':'readOnly-box'"> <div class="font-weight-blod text-md detail-title" style="justify-content: space-between;">
<sv-container col="3" class="mt16"> <div>
<sv-title>驾驶证信息 <a class="sign"></a>
<span>驾驶证信息</span>
<label *ngIf="driverDetail?.approvalStatus===20" style="color: #52c41a;" class="ml-md"><i nz-icon
nzType="check-circle" nzTheme="fill" class="mr-xs"></i>审核通过
</label>
<label *ngIf="driverDetail?.approvalStatus===30" style="color: #ff4d4f;" class="ml-md"><i nz-icon
nzType="close-circle" nzTheme="fill" class="mr-xs"></i>驳回
</label>
</div>
<div>
<ng-container *ngIf="isEditDriver;else editDriverButton">
<button [disabled]="false" nz-button (click)="reset(1)">
取消
</button>
<button [disabled]="false" nz-button nzDanger (click)="saveDriver()">
保存
</button>
</ng-container>
<ng-template #editDriverButton>
<button *ngIf="driverDetail?.approvalStatus==10" nz-button nzType="default" nzDanger (click)="approveDriver()"
acl [acl-ability]="['USERCENTER-DRIVER-LIST-DETAIL-auditDriver']">审核通过</button>
<button *ngIf="driverDetail?.approvalStatus==10" nz-button nzType="default" nzDanger
(click)="rejectedDriver()" acl [acl-ability]="['USERCENTER-DRIVER-LIST-DETAIL-auditDriver']">驳回审核</button>
<button nz-button nzType="default" nzDanger (click)="ratify(1)" acl
[acl-ability]="['USERCENTER-DRIVER-LIST-DETAIL-editDriver']">修改</button>
</ng-template>
</div>
</div>
<div [class]="isEditDriver?'edit-box':'readOnly-box'">
<sv-container col="3" class="mt16">
<!-- <sv-title>驾驶证信息
<label *ngIf="driverDetail?.approvalStatus===20" style="color: #52c41a;" class="ml-md"><i nz-icon <label *ngIf="driverDetail?.approvalStatus===20" style="color: #52c41a;" class="ml-md"><i nz-icon
nzType="check-circle" nzTheme="fill" class="mr-xs"></i>审核通过 nzType="check-circle" nzTheme="fill" class="mr-xs"></i>审核通过
</label> </label>
@ -152,37 +235,37 @@
[acl-ability]="['USERCENTER-DRIVER-LIST-DETAIL-editDriver']">修改</button> [acl-ability]="['USERCENTER-DRIVER-LIST-DETAIL-editDriver']">修改</button>
</ng-template> </ng-template>
</div> </div>
</sv-title> </sv-title> -->
<sv label="驾驶证号"> <sv label="驾驶证号">
<input nz-input type="text" [(ngModel)]="driverDetail.licenseNo" [readonly]="!isEditDriver" <input nz-input type="text" [(ngModel)]="driverDetail.licenseNo" [readonly]="!isEditDriver"
[nzBorderless]="!isEditDriver" [placeholder]="isEditDriver?'':'-'"> [nzBorderless]="!isEditDriver" [placeholder]="isEditDriver?'':'-'">
</sv> </sv>
<sv label="准驾车型"> <sv label="准驾车型">
<nz-select [nzMaxTagCount]="3" nzPlaceHolder="请选择" [(ngModel)]="driverDetail.driverModel" nzMode="multiple" <nz-select [nzMaxTagCount]="3" nzPlaceHolder="请选择" [(ngModel)]="driverDetail.driverModel" nzMode="multiple"
[nzPlaceHolder]="isEditDriver?'':'-'" [nzBorderless]="!isEditDriver" [nzShowArrow]="isEditDriver" [nzPlaceHolder]="isEditDriver?'':'-'" [nzBorderless]="!isEditDriver" [nzShowArrow]="isEditDriver"
[nzDisabled]="!isEditDriver"> [nzDisabled]="!isEditDriver">
<nz-option *ngFor="let i of contencarModel" [nzLabel]="i.label" [nzValue]="i.label"></nz-option> <nz-option *ngFor="let i of contencarModel" [nzLabel]="i.label" [nzValue]="i.label"></nz-option>
</nz-select> </nz-select>
</sv> </sv>
<sv label="有效期" col="1"> <sv label="有效期" col="1">
<nz-date-picker [(ngModel)]="driverDetail.validStartTime" [nzDisabled]="!isEditDriver" nzPlaceHolder=" " <nz-date-picker [(ngModel)]="driverDetail.validStartTime" [nzDisabled]="!isEditDriver" nzPlaceHolder=" "
[nzBorderless]="!isEditDriver" [nzSuffixIcon]="isEditDriver?'calendar':''" style="width: 110px;" [nzBorderless]="!isEditDriver" [nzSuffixIcon]="isEditDriver?'calendar':''" style="width: 110px;"
class="calendar"> class="calendar">
</nz-date-picker> </nz-date-picker>
- -
<ng-container *ngIf="!isEditDriver && !driverDetail?.validEndTime && driverDetail?.validStartTime"> <ng-container *ngIf="!isEditDriver && !driverDetail?.validEndTime && driverDetail?.validStartTime">
<label style="padding-left: 11px;">长期</label> <label style="padding-left: 11px;">长期</label>
</ng-container> </ng-container>
<nz-date-picker [(ngModel)]="driverDetail.validEndTime" [nzDisabled]="!isEditDriver" nzPlaceHolder=" " <nz-date-picker [(ngModel)]="driverDetail.validEndTime" [nzDisabled]="!isEditDriver" nzPlaceHolder=" "
[nzBorderless]="!isEditDriver" [nzSuffixIcon]="isEditDriver?'calendar':''" style="width: 110px;" [nzBorderless]="!isEditDriver" [nzSuffixIcon]="isEditDriver?'calendar':''" style="width: 110px;"
class="calendar"> class="calendar">
</nz-date-picker> </nz-date-picker>
<ng-container *ngIf="isEditDriver"> <ng-container *ngIf="isEditDriver">
<label nz-checkbox [ngModel]="!!!driverDetail.validEndTime" <label nz-checkbox [ngModel]="!!!driverDetail.validEndTime"
(ngModelChange)="$event?driverDetail.validEndTime='':''" class="ml-sm">长期</label> (ngModelChange)="$event?driverDetail.validEndTime='':''" class="ml-sm">长期</label>
</ng-container> </ng-container>
</sv> </sv>
<!-- <sv label="有效期起"> <!-- <sv label="有效期起">
<nz-date-picker [(ngModel)]="driverDetail.validStartTime" [nzDisabled]="!isEditDriver" <nz-date-picker [(ngModel)]="driverDetail.validStartTime" [nzDisabled]="!isEditDriver"
[nzPlaceHolder]="isEditDriver?'':'-'" [nzBorderless]="!isEditDriver" [nzPlaceHolder]="isEditDriver?'':'-'" [nzBorderless]="!isEditDriver"
[nzSuffixIcon]="isEditDriver?'calendar':''"></nz-date-picker> [nzSuffixIcon]="isEditDriver?'calendar':''"></nz-date-picker>
@ -192,32 +275,43 @@
[nzPlaceHolder]="isEditDriver?'':'-'" [nzBorderless]="!isEditDriver" [nzPlaceHolder]="isEditDriver?'':'-'" [nzBorderless]="!isEditDriver"
[nzSuffixIcon]="isEditDriver?'calendar':''"></nz-date-picker> [nzSuffixIcon]="isEditDriver?'calendar':''"></nz-date-picker>
</sv> --> </sv> -->
<sv label="驾驶证签发机关" col="2"> <sv label="驾驶证签发机关" col="2">
<ng-container *ngIf="isEditDriver; else signingOrganizationTemplate"> <ng-container *ngIf="isEditDriver; else signingOrganizationTemplate">
<input nz-input type="text" [(ngModel)]="driverDetail.signingOrganization" [readonly]="!isEditDriver" <input nz-input type="text" [(ngModel)]="driverDetail.signingOrganization" [readonly]="!isEditDriver"
[nzBorderless]="!isEditDriver" [placeholder]="isEditDriver?'':'-'"> [nzBorderless]="!isEditDriver" [placeholder]="isEditDriver?'':'-'">
</ng-container> </ng-container>
<ng-template #signingOrganizationTemplate> <ng-template #signingOrganizationTemplate>
{{driverDetail.signingOrganization}} {{driverDetail.signingOrganization}}
</ng-template> </ng-template>
</sv> </sv>
<sv label="驾驶证照片" col="1"> <sv label="驾驶证照片" col="1">
<ng-container <ng-container
*ngTemplateOutlet="uploadTemplate;context:{data:driverDetail,status:isEditDriver,key:'certificatePhotoWatermark',key2:'certificatePhoto',hover:'driverCertificate'}"> *ngTemplateOutlet="uploadTemplate;context:{data:driverDetail,status:isEditDriver,key:'certificatePhotoWatermark',key2:'certificatePhoto',hover:'driverCertificate'}">
</ng-container> </ng-container>
</sv> </sv>
</sv-container> </sv-container>
</div>
<nz-divider></nz-divider> </div>
<div class="mb-md">
<div class="font-weight-blod text-md detail-title">
<a class="sign"></a>
<span>从业资格证信息</span>
<label *ngIf="licenseDetail?.approvalStatus===20" style="color: #52c41a;" class="ml-md">
<i nz-icon nzType="check-circle" nzTheme="fill" class="mr-xs"></i>审核通过
</label>
<label *ngIf="licenseDetail?.approvalStatus===30" style="color: #ff4d4f;" class="ml-md">
<i nz-icon nzType="close-circle" nzTheme="fill" class="mr-xs"></i>驳回
</label>
</div>
<sv-container col="3" class="mt16"> <sv-container col="3" class="mt16">
<sv-title>从业资格证信息 <!-- <sv-title>从业资格证信息
<label *ngIf="licenseDetail?.approvalStatus===20" style="color: #52c41a;" class="ml-md"> <label *ngIf="licenseDetail?.approvalStatus===20" style="color: #52c41a;" class="ml-md">
<i nz-icon nzType="check-circle" nzTheme="fill" class="mr-xs"></i>审核通过 <i nz-icon nzType="check-circle" nzTheme="fill" class="mr-xs"></i>审核通过
</label> </label>
<label *ngIf="licenseDetail?.approvalStatus===30" style="color: #ff4d4f;" class="ml-md"> <label *ngIf="licenseDetail?.approvalStatus===30" style="color: #ff4d4f;" class="ml-md">
<i nz-icon nzType="close-circle" nzTheme="fill" class="mr-xs"></i>驳回 <i nz-icon nzType="close-circle" nzTheme="fill" class="mr-xs"></i>驳回
</label> </label>
</sv-title> </sv-title> -->
<sv label="从业资格证号"> <sv label="从业资格证号">
<input nz-input type="text" [(ngModel)]="licenseDetail.licenseNo" [readonly]="!isEditDriver" <input nz-input type="text" [(ngModel)]="licenseDetail.licenseNo" [readonly]="!isEditDriver"
[nzBorderless]="!isEditDriver" [placeholder]="isEditDriver?'':'-'"> [nzBorderless]="!isEditDriver" [placeholder]="isEditDriver?'':'-'">
@ -262,73 +356,95 @@
</sv-container> </sv-container>
</div> </div>
<nz-divider></nz-divider> <div class="mb-md">
<sv-container col="3" class="mt16"> <div class="font-weight-blod text-md detail-title">
<sv-title>载具信息</sv-title> <a class="sign"></a>
<ng-container *ngFor="let carDatail of carList"> <span>载具信息</span>
<sv label="车牌号"> <ng-container *ngIf="carList?.length===0">(暂无载具信息)</ng-container>
{{ carDatail?.carNo }} </div>
</sv> <sv-container col="3" class="mt16">
<sv label="车牌颜色"> <!-- <sv-title>载具信息</sv-title> -->
{{ carDatail?.carNoColorLabel }} <ng-container *ngFor="let carDatail of carList">
</sv> <sv label="车牌号">
<sv label="车型"> {{ carDatail?.carNo }}
{{ carDatail?.carModelLabel }} </sv>
</sv> <sv label="车牌颜色">
<sv label="车长"> {{ carDatail?.carNoColorLabel }}
{{ carDatail?.carLengthLabel ? carDatail?.carLengthLabel +'米' :'' }} </sv>
</sv> <sv label="车型">
<sv label="是否为当前车辆"> {{ carDatail?.carModelLabel }}
{{ carDatail?.isDefault?'是':'否' }} </sv>
</sv> <sv label="车长">
<sv label="自有载具"> {{ carDatail?.carLengthLabel ? carDatail?.carLengthLabel +'米' :'' }}
{{ carDatail?.isSelf?'否':'是' }} </sv>
</sv> <sv label="是否为当前车辆">
<sv label="行驶证照片" col="1"> {{ carDatail?.isDefault?'是':'否' }}
<app-imagelist [imgList]="[carDatail?.certificatePhotoFrontWatermark,carDatail?.certificatePhotoBackWatermark]"> </sv>
</app-imagelist> <sv label="自有载具">
</sv> {{ carDatail?.isSelf?'否':'是' }}
<sv label="道路运输证照片" col="3"> </sv>
<app-imagelist [imgList]="[carDatail?.roadTransportPhotoWatermark]"></app-imagelist> <sv label="行驶证照片" col="1">
</sv> <app-imagelist
<sv label="车头照" col="2"> [imgList]="[carDatail?.certificatePhotoFrontWatermark,carDatail?.certificatePhotoBackWatermark]">
<app-imagelist [imgList]="[carDatail?.carFrontPhotoWatermark]"></app-imagelist> </app-imagelist>
</sv> </sv>
<nz-divider></nz-divider> <sv label="道路运输证照片" col="3">
</ng-container> <app-imagelist [imgList]="[carDatail?.roadTransportPhotoWatermark]"></app-imagelist>
</sv>
<sv label="车头照" col="2">
<app-imagelist [imgList]="[carDatail?.carFrontPhotoWatermark]"></app-imagelist>
</sv>
<nz-divider></nz-divider>
</ng-container>
</sv-container> </sv-container>
</div>
<sv-container col="3" class="mt-md"> <div class="mb-md">
<sv-title>银行结算信息 <ng-container *ngIf="bankList?.length===0">(暂无银行信息)</ng-container> <div class="font-weight-blod text-md detail-title">
</sv-title> <a class="sign"></a>
<ng-container *ngFor="let item of bankList"> <span>银行结算信息</span>
<sv label="开户银行"> <ng-container *ngIf="bankList?.length===0">(暂无银行信息)</ng-container>
{{ item.bankName }} </div>
</sv> <sv-container col="3" class="mt-md">
<sv label="银行卡号"> <!-- <sv-title>银行结算信息 <ng-container *ngIf="bankList?.length===0">(暂无银行信息)</ng-container>
{{ item?.bankCardNumber }} </sv-title> -->
</sv> <ng-container *ngFor="let item of bankList">
</ng-container> <sv label="开户银行">
</sv-container> {{ item.bankName }}
</sv>
<nz-divider></nz-divider> <sv label="银行卡号">
<sv-container col="3" class="mt-md"> {{ item?.bankCardNumber }}
<sv-title>服务评级 </sv>
</ng-container>
</sv-container>
</div>
<div class="mb-md">
<div class="font-weight-blod text-md detail-title">
<a class="sign"></a>
<span>服务评级</span>
<ng-container *ngIf="billEvaluateList?.length===0">(暂无评级)</ng-container> <ng-container *ngIf="billEvaluateList?.length===0">(暂无评级)</ng-container>
</sv-title> </div>
<sv [label]="item.evaluateTypeLabel" *ngFor="let item of billEvaluateList"> <sv-container col="3" class="mt-md">
<nz-rate [ngModel]="item.evaluateFraction" nzDisabled></nz-rate> <!-- <sv-title>服务评级
</sv> <ng-container *ngIf="billEvaluateList?.length===0">(暂无评级)</ng-container>
</sv-container> </sv-title> -->
<sv [label]="item.evaluateTypeLabel" *ngFor="let item of billEvaluateList">
<nz-rate [ngModel]="item.evaluateFraction" nzDisabled></nz-rate>
</sv>
</sv-container>
</div>
<sv-container col="3" class="mt-md"> <div class="mb-md">
<sv-title>关联企业</sv-title> <div class="font-weight-blod text-md detail-title">
<a class="sign"></a>
<span>关联企业</span>
</div>
<st #st [columns]="columns" [data]="service.$api_get_driver_projects" size="small" <st #st [columns]="columns" [data]="service.$api_get_driver_projects" size="small"
[req]="{ method: 'POST', allInBody: true, params: {appUserId:route.snapshot.params.id} }" [page]="{ show: false }" [req]="{ method: 'POST', allInBody: true, params: {appUserId:route.snapshot.params.id} }" [page]="{ show: false }"
[res]="{ reName: { list: 'data' } }" style="width: 100%;"> [res]="{ reName: { list: 'data' } }" style="width: 100%;">
</st> </st>
</sv-container> </div>
</nz-card> </nz-card>
@ -383,4 +499,4 @@
</div> </div>
</div> </div>
</nz-upload> </nz-upload>
</ng-template> </ng-template>

View File

@ -1,16 +1,5 @@
<!-- <!-- <page-header-wrapper></page-header-wrapper>
* @Author: your name
* @Date: 2021-11-29 15:22:34
* @LastEditTime : 2022-03-09 16:04:08
* @LastEditors : Shiming
* @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
* @FilePath : \\tms-obc-web\\src\\app\\routes\\usercenter\\components\\driver\\driver-config\\driver-config.component.html
-->
<!-- 页头 -->
<page-header-wrapper></page-header-wrapper>
<nz-card> <nz-card>
<!-- 搜索区 -->
<!-- 搜索表单 -->
<div nz-row nzGutter="8"> <div nz-row nzGutter="8">
<div nz-col [nzXl]=" 18" [nzLg]="24" [nzSm]="24" [nzXs]="24"> <div nz-col [nzXl]=" 18" [nzLg]="24" [nzSm]="24" [nzXs]="24">
<sf #sf [schema]="schema" [ui]="{ '*': { spanLabelFixed: 120, grid: { lg: 8, md: 12, sm: 12, xs: 24 } } }" [compact]="true" [button]="'none'"></sf> <sf #sf [schema]="schema" [ui]="{ '*': { spanLabelFixed: 120, grid: { lg: 8, md: 12, sm: 12, xs: 24 } } }" [compact]="true" [button]="'none'"></sf>
@ -21,17 +10,22 @@
<button nz-button nzType="primary" [disabled]="false" (click)="exportList()" acl <button nz-button nzType="primary" [disabled]="false" (click)="exportList()" acl
[acl-ability]="['USERCENTER-DRIVER-CONFIG-export']">导出</button> [acl-ability]="['USERCENTER-DRIVER-CONFIG-export']">导出</button>
<button nz-button (click)="resetSF()" [disabled]="false">重置</button> <button nz-button (click)="resetSF()" [disabled]="false">重置</button>
<!-- <button nz-button nzType="link" (click)="expandToggle()">
{{ !_$expand ? '展开' : '收起' }}
<i nz-icon [nzType]="!_$expand ? 'down' : 'up'"></i>
</button> -->
</div> </div>
</div> </div>
</nz-card> </nz-card> -->
<nz-card> <nz-card class="table-box">
<div class="header_box">
<label class="page_title"> <label class="driver">|</label> 司机配置</label>
<div class="mr-sm">
<button nz-button nzDanger [nzLoading]="service.http.loading" (click)="openDrawer()" acl
[acl-ability]="['USERCENTER-DRIVER-CONFIG-search']">筛选</button>
<button nz-button nzDanger (click)="exportList()" acl [acl-ability]="['USERCENTER-DRIVER-CONFIG-export']">
导出</button>
</div>
</div>
<!-- 数据列表 --> <!-- 数据列表 -->
<st #st [columns]="columns" [scroll]="{ x: '1200px' }"[data]="service.$api_configPage" [req]="{ params: reqParams }" <st #st [columns]="columns" [scroll]="{ x: '1200px',y:scrollY }" [data]="service.$api_configPage" [req]="{ params: reqParams }"
[loading]="false" [page]={}> [loading]="false" [page]="{}">
<ng-template st-row="monthFreightAmount" let-item let-index="index"> <ng-template st-row="monthFreightAmount" let-item let-index="index">
<div>{{item?.monthFreightAmount | currency}}</div> <div>{{item?.monthFreightAmount | currency}}</div>
</ng-template> </ng-template>

View File

@ -2,21 +2,23 @@ import { Component, OnInit, ViewChild } from '@angular/core';
import { ActivatedRoute } from '@angular/router'; import { ActivatedRoute } from '@angular/router';
import { STColumn, STComponent } from '@delon/abc/st'; import { STColumn, STComponent } from '@delon/abc/st';
import { SFComponent, SFSchema } from '@delon/form'; import { SFComponent, SFSchema } from '@delon/form';
import { DynamicSettingModalComponent } from '@shared'; import { DynamicSettingModalComponent, SearchDrawerService } from '@shared';
import { NzModalService } from 'ng-zorro-antd/modal'; import { NzModalService } from 'ng-zorro-antd/modal';
import { BasicTableComponent } from 'src/app/routes/commom';
import { UsermanageService } from '../../../services/usercenter.service'; import { UsermanageService } from '../../../services/usercenter.service';
@Component({ @Component({
selector: 'app-usercenter-components-driver-config', selector: 'app-usercenter-components-driver-config',
templateUrl: './driver-config.component.html', templateUrl: './driver-config.component.html',
styleUrls: ['./driver-config.component.less'] styleUrls: ['../../../../commom/less/commom-table.less']
}) })
export class UserCenterComponentsDriverConfigComponent implements OnInit { export class UserCenterComponentsDriverConfigComponent extends BasicTableComponent implements OnInit {
schema: SFSchema = this.initSF(); schema: SFSchema = this.initSF();
columns: STColumn[] = this.initST(); columns: STColumn[] = this.initST();
@ViewChild('st', { static: false }) st!: STComponent; @ViewChild('st', { static: false }) st!: STComponent;
@ViewChild('sf', { static: false }) sf!: SFComponent;
constructor(public service: UsermanageService, private modal: NzModalService) {} constructor(public service: UsermanageService, private modal: NzModalService, public searchDrawerService: SearchDrawerService) {
super(searchDrawerService);
}
/** /**
* 查询参数 * 查询参数
@ -33,6 +35,10 @@ export class UserCenterComponentsDriverConfigComponent implements OnInit {
ngOnInit() {} ngOnInit() {}
search() {
this.st?.load(1);
}
settingAction(item?: any) { settingAction(item?: any) {
const modal = this.modal.create({ const modal = this.modal.create({
nzTitle: '配置', nzTitle: '配置',
@ -105,7 +111,7 @@ export class UserCenterComponentsDriverConfigComponent implements OnInit {
// { title: '', type: 'checkbox', className: 'text-center' }, // { title: '', type: 'checkbox', className: 'text-center' },
{ title: '司机姓名', className: 'text-center', width: '170px', index: 'name' }, { title: '司机姓名', className: 'text-center', width: '170px', index: 'name' },
{ title: '手机号', className: 'text-center', width: '170px', index: 'mobile' }, { title: '手机号', className: 'text-center', width: '170px', index: 'mobile' },
{ title: '类型', className: 'text-center', width: '170px',render: 'isCaptain' }, { title: '类型', className: 'text-center', width: '170px', render: 'isCaptain' },
{ title: '月承运金额上限(元)', className: 'text-center', width: '200px', render: 'monthFreightAmount' }, { title: '月承运金额上限(元)', className: 'text-center', width: '200px', render: 'monthFreightAmount' },
{ title: '日提现金额上限(元)', className: 'text-center', width: '200px', render: 'dayWithdrawalAmount' }, { title: '日提现金额上限(元)', className: 'text-center', width: '200px', render: 'dayWithdrawalAmount' },
{ title: '月提现金额上限(元)', className: 'text-center', width: '200px', render: 'monthWithdrawalAmount' }, { title: '月提现金额上限(元)', className: 'text-center', width: '200px', render: 'monthWithdrawalAmount' },

View File

@ -114,10 +114,11 @@
</ng-template> </ng-template>
</page-header-wrapper> </page-header-wrapper>
<nz-card [class]="isEdit?'edit-box':'readOnly-box'"> <nz-card [class]="isEdit?'edit-box':'readOnly-box'" [nzBorderless]="true">
<sv-container col="2" class="mt16"> <div class="mb-md">
<sv-title> <div class="font-weight-blod text-md detail-title">
<label class="mr-md">企业基本信息</label> <a class="sign"></a>
<span class="mr-xs">企业基本信息</span>
<label *ngIf="detailData?.approvalStatus===10" style="color: #1890ff;"><i nz-icon nzType="info-circle" <label *ngIf="detailData?.approvalStatus===10" style="color: #1890ff;"><i nz-icon nzType="info-circle"
nzTheme="fill" class="mr-xs"></i>待审核 nzTheme="fill" class="mr-xs"></i>待审核
</label> </label>
@ -130,251 +131,296 @@
<label *ngIf="detailData?.isExpired" style="color: #fa8c16;"> <label *ngIf="detailData?.isExpired" style="color: #fa8c16;">
<i nz-icon nzType="info-circle" nzTheme="fill" class="ml-md mr-xs"></i>企业营业期限已过期 <i nz-icon nzType="info-circle" nzTheme="fill" class="ml-md mr-xs"></i>企业营业期限已过期
</label> </label>
<p style="margin-bottom: 0;"> </div>
四要素验证:
<label *ngIf="detailData?.esignCheckStatus===0" style="color: #ff4d4f;"><i nz-icon nzType="info-circle" <sv-container col="2" class="mt16">
nzTheme="fill" class="mr-xs"></i>不通过&nbsp;&nbsp;驳回原因:{{detailData?.esignCheckMsg}} <sv-title>
</label> <!-- <label class="mr-md">企业基本信息</label>
<label *ngIf="detailData?.esignCheckStatus===1" style="color: #52c41a;"><i nz-icon nzType="check-circle" <label *ngIf="detailData?.approvalStatus===10" style="color: #1890ff;"><i nz-icon nzType="info-circle"
nzTheme="fill" class="mr-xs"></i>通过 nzTheme="fill" class="mr-xs"></i>待审核
</label> </label>
<label *ngIf="detailData?.esignCheckStatus===2" style="color: #1890ff;"><i nz-icon nzType="close-circle" <label *ngIf="detailData?.approvalStatus===20" style="color: #52c41a;"><i nz-icon nzType="check-circle"
nzTheme="fill" class="mr-xs"></i>未认证:&nbsp;&nbsp;{{detailData?.esignCheckMsg}} nzTheme="fill" class="mr-xs"></i>审核通过
</label> </label>
</p> <label *ngIf="detailData?.approvalStatus===30" style="color: #ff4d4f;"><i nz-icon nzType="close-circle"
</sv-title> nzTheme="fill" class="mr-xs"></i>驳回&nbsp;驳回原因:{{detailData?.approvalOpinion}}
<sv label="公司名称"> </label>
<ng-container *ngIf="isEdit; else enterpriseNameelseTemplate"> <label *ngIf="detailData?.isExpired" style="color: #fa8c16;">
<input nz-input type="text" [(ngModel)]="detailData.enterpriseName" [readonly]="!isEdit" <i nz-icon nzType="info-circle" nzTheme="fill" class="ml-md mr-xs"></i>企业营业期限已过期
[nzBorderless]="!isEdit" [placeholder]="isEdit?'':'-'"> </label> -->
</ng-container> <p style="margin-bottom: 0;">
<ng-template #enterpriseNameelseTemplate> 四要素验证:
<span style="word-break:break-all ">{{detailData.enterpriseName}}</span> <label *ngIf="detailData?.esignCheckStatus===0" style="color: #ff4d4f;"><i nz-icon nzType="info-circle"
</ng-template> nzTheme="fill" class="mr-xs"></i>不通过&nbsp;&nbsp;驳回原因:{{detailData?.esignCheckMsg}}
</sv> </label>
<sv label="统一社会信用代码"> <label *ngIf="detailData?.esignCheckStatus===1" style="color: #52c41a;"><i nz-icon nzType="check-circle"
<ng-container *ngIf="isEdit; else unifiedSocialCreditCodeelseTemplate"> nzTheme="fill" class="mr-xs"></i>通过
<input nz-input type="text" [(ngModel)]="detailData.unifiedSocialCreditCode" [readonly]="!isEdit" </label>
[nzBorderless]="!isEdit" [placeholder]="isEdit?'':'-'"> <label *ngIf="detailData?.esignCheckStatus===2" style="color: #1890ff;"><i nz-icon nzType="close-circle"
</ng-container> nzTheme="fill" class="mr-xs"></i>未认证:&nbsp;&nbsp;{{detailData?.esignCheckMsg}}
<ng-template #unifiedSocialCreditCodeelseTemplate> </label>
{{detailData.unifiedSocialCreditCode}} </p>
</ng-template> </sv-title>
</sv> <sv label="公司名称">
<sv label="公司类型"> <ng-container *ngIf="isEdit; else enterpriseNameelseTemplate">
<!-- <input nz-input type="text" [(ngModel)]="detailData.enterpriseType" [readonly]="!isEdit" [nzBorderless]="!isEdit" <input nz-input type="text" [(ngModel)]="detailData.enterpriseName" [readonly]="!isEdit"
[nzBorderless]="!isEdit" [placeholder]="isEdit?'':'-'">
</ng-container>
<ng-template #enterpriseNameelseTemplate>
<span style="word-break:break-all ">{{detailData.enterpriseName}}</span>
</ng-template>
</sv>
<sv label="统一社会信用代码">
<ng-container *ngIf="isEdit; else unifiedSocialCreditCodeelseTemplate">
<input nz-input type="text" [(ngModel)]="detailData.unifiedSocialCreditCode" [readonly]="!isEdit"
[nzBorderless]="!isEdit" [placeholder]="isEdit?'':'-'">
</ng-container>
<ng-template #unifiedSocialCreditCodeelseTemplate>
{{detailData.unifiedSocialCreditCode}}
</ng-template>
</sv>
<sv label="公司类型">
<!-- <input nz-input type="text" [(ngModel)]="detailData.enterpriseType" [readonly]="!isEdit" [nzBorderless]="!isEdit"
[placeholder]="isEdit?'':'-'"> --> [placeholder]="isEdit?'':'-'"> -->
<nz-select [nzMaxTagCount]="3" nzPlaceHolder="请选择" [(ngModel)]="detailData.enterpriseType" <nz-select [nzMaxTagCount]="3" nzPlaceHolder="请选择" [(ngModel)]="detailData.enterpriseType"
[nzPlaceHolder]="isEdit?'':'-'" [nzBorderless]="!isEdit" [nzShowArrow]="isEdit" [nzDisabled]="!isEdit"> [nzPlaceHolder]="isEdit?'':'-'" [nzBorderless]="!isEdit" [nzShowArrow]="isEdit" [nzDisabled]="!isEdit">
<nz-option nzLabel="物流企业" [nzValue]="1"></nz-option> <nz-option nzLabel="物流企业" [nzValue]="1"></nz-option>
<nz-option nzLabel="货运代理" [nzValue]="2"></nz-option> <nz-option nzLabel="货运代理" [nzValue]="2"></nz-option>
<nz-option nzLabel="生产型企业" [nzValue]="3"></nz-option> <nz-option nzLabel="生产型企业" [nzValue]="3"></nz-option>
<nz-option nzLabel="贸易类企业" [nzValue]="4"></nz-option> <nz-option nzLabel="贸易类企业" [nzValue]="4"></nz-option>
<nz-option nzLabel="科技型企业" [nzValue]="5"></nz-option> <nz-option nzLabel="科技型企业" [nzValue]="5"></nz-option>
<nz-option nzLabel="化学化工企业" [nzValue]="6"></nz-option> <nz-option nzLabel="化学化工企业" [nzValue]="6"></nz-option>
<nz-option nzLabel="其他" [nzValue]="7"></nz-option> <nz-option nzLabel="其他" [nzValue]="7"></nz-option>
</nz-select>
</sv>
<sv label="注册资本">
<ng-container *ngIf="isEdit; else registrationCapitalTemplate">
<input nz-input type="text" [(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="成立日期">
<nz-date-picker [(ngModel)]="detailData.enterpriseRegistrationTime" [nzDisabled]="!isEdit"
[nzPlaceHolder]="isEdit?'':'-'" [nzBorderless]="!isEdit" [nzSuffixIcon]="isEdit?'calendar':''"></nz-date-picker>
</sv>
<sv label="营业期限">
<nz-date-picker [(ngModel)]="detailData.operatingStartTime" [nzDisabled]="!isEdit" nzPlaceHolder=" "
[nzBorderless]="!isEdit" [nzSuffixIcon]="isEdit?'calendar':''" style="width: 110px;" class="calendar">
</nz-date-picker>
-
<ng-container *ngIf="!isEdit && !detailData?.operatingEndTime && detailData?.operatingStartTime">
<label style="padding-left: 11px;">长期</label>
</ng-container>
<nz-date-picker [(ngModel)]="detailData.operatingEndTime" [nzDisabled]="!isEdit" nzPlaceHolder=" "
[nzBorderless]="!isEdit" [nzSuffixIcon]="isEdit?'calendar':''" style="width: 110px;" class="calendar">
</nz-date-picker>
<ng-container *ngIf="isEdit">
<label nz-checkbox [ngModel]="!!!detailData.operatingEndTime"
(ngModelChange)="$event?detailData.operatingEndTime='':''" class="ml-sm">长期</label>
</ng-container>
</sv>
<sv label="常用服务">
<ng-container *ngIf="isEdit; else oftenUsedServiceselseTemplate">
<nz-select [(ngModel)]="detailData.oftenUsedServices">
<nz-option [nzValue]="10" nzLabel="整车发货"></nz-option>
<nz-option [nzValue]="20" nzLabel="大宗发货"></nz-option>
</nz-select> </nz-select>
</ng-container> </sv>
<ng-template #oftenUsedServiceselseTemplate> <sv label="注册资本">
<input nz-input type="text" <ng-container *ngIf="isEdit; else registrationCapitalTemplate">
[ngModel]="detailData.oftenUsedServices?detailData.oftenUsedServices===10?'整车发货':'大宗发货':'-'" <input nz-input type="text" [(ngModel)]="detailData.registrationCapital" [readonly]="!isEdit"
[readonly]="!isEdit" [nzBorderless]="!isEdit" [placeholder]="isEdit?'':'-'"> [nzBorderless]="!isEdit" [placeholder]="isEdit?'':'-'" class="mr-sm">
</ng-template> </ng-container>
</sv> <ng-template #registrationCapitalTemplate>
<sv label="公司所在地" col="3"> {{detailData?.registrationCapital}}
<ng-container *ngIf="isEdit; else cascaderelseTemplate"> </ng-template>
<nz-cascader [(ngModel)]="enterpriseAddressCode" [nzLoadData]="loadRegionData"> <span *ngIf="detailData?.registrationCapital">万元</span>
</nz-cascader> </sv>
</ng-container> <sv label="成立日期">
<ng-template #cascaderelseTemplate> <nz-date-picker [(ngModel)]="detailData.enterpriseRegistrationTime" [nzDisabled]="!isEdit"
{{ detailData?.fullRegionVO?.provinceName }}{{ detailData?.fullRegionVO?.cityName }}{{ [nzPlaceHolder]="isEdit?'':'-'" [nzBorderless]="!isEdit" [nzSuffixIcon]="isEdit?'calendar':''">
detailData?.fullRegionVO?.areaName }} </nz-date-picker>
</ng-template> </sv>
</sv> <sv label="营业期限">
<sv label="公司详细地址" col="2"> <nz-date-picker [(ngModel)]="detailData.operatingStartTime" [nzDisabled]="!isEdit" nzPlaceHolder=" "
<ng-container *ngIf="isEdit; else enterpriseAddresselseTemplate"> [nzBorderless]="!isEdit" [nzSuffixIcon]="isEdit?'calendar':''" style="width: 110px;" class="calendar">
<input nz-input type="text" [(ngModel)]="detailData.enterpriseAddress" [readonly]="!isEdit" </nz-date-picker>
[nzBorderless]="!isEdit" [placeholder]="isEdit?'':'-'"> -
</ng-container> <ng-container *ngIf="!isEdit && !detailData?.operatingEndTime && detailData?.operatingStartTime">
<ng-template #enterpriseAddresselseTemplate> <label style="padding-left: 11px;">长期</label>
<span style="word-break:break-all "> {{ detailData?.fullRegionVO?.provinceName }}{{ </ng-container>
detailData?.fullRegionVO?.cityName }}{{ <nz-date-picker [(ngModel)]="detailData.operatingEndTime" [nzDisabled]="!isEdit" nzPlaceHolder=" "
detailData?.fullRegionVO?.areaName }}{{detailData.enterpriseAddress}}</span> [nzBorderless]="!isEdit" [nzSuffixIcon]="isEdit?'calendar':''" style="width: 110px;" class="calendar">
</ng-template> </nz-date-picker>
</sv> <ng-container *ngIf="isEdit">
<sv label="经营范围" col="1"> <label nz-checkbox [ngModel]="!!!detailData.operatingEndTime"
<ng-container *ngIf="isEdit; else businessScopeelseTemplate"> (ngModelChange)="$event?detailData.operatingEndTime='':''" class="ml-sm">长期</label>
<input nz-input type="text" [(ngModel)]="detailData.businessScope" [readonly]="!isEdit" [nzBorderless]="!isEdit" </ng-container>
</sv>
<sv label="常用服务">
<ng-container *ngIf="isEdit; else oftenUsedServiceselseTemplate">
<nz-select [(ngModel)]="detailData.oftenUsedServices">
<nz-option [nzValue]="10" nzLabel="整车发货"></nz-option>
<nz-option [nzValue]="20" nzLabel="大宗发货"></nz-option>
</nz-select>
</ng-container>
<ng-template #oftenUsedServiceselseTemplate>
<input nz-input type="text"
[ngModel]="detailData.oftenUsedServices?detailData.oftenUsedServices===10?'整车发货':'大宗发货':'-'"
[readonly]="!isEdit" [nzBorderless]="!isEdit" [placeholder]="isEdit?'':'-'">
</ng-template>
</sv>
<sv label="公司所在地" col="3">
<ng-container *ngIf="isEdit; else cascaderelseTemplate">
<nz-cascader [(ngModel)]="enterpriseAddressCode" [nzLoadData]="loadRegionData">
</nz-cascader>
</ng-container>
<ng-template #cascaderelseTemplate>
{{ detailData?.fullRegionVO?.provinceName }}{{ detailData?.fullRegionVO?.cityName }}{{
detailData?.fullRegionVO?.areaName }}
</ng-template>
</sv>
<sv label="公司详细地址" col="2">
<ng-container *ngIf="isEdit; else enterpriseAddresselseTemplate">
<input nz-input type="text" [(ngModel)]="detailData.enterpriseAddress" [readonly]="!isEdit"
[nzBorderless]="!isEdit" [placeholder]="isEdit?'':'-'">
</ng-container>
<ng-template #enterpriseAddresselseTemplate>
<span style="word-break:break-all "> {{ detailData?.fullRegionVO?.provinceName }}{{
detailData?.fullRegionVO?.cityName }}{{
detailData?.fullRegionVO?.areaName }}{{detailData.enterpriseAddress}}</span>
</ng-template>
</sv>
<sv label="经营范围" col="1">
<ng-container *ngIf="isEdit; else businessScopeelseTemplate">
<input nz-input type="text" [(ngModel)]="detailData.businessScope" [readonly]="!isEdit"
[nzBorderless]="!isEdit" [placeholder]="isEdit?'':'-'">
</ng-container>
<ng-template #businessScopeelseTemplate>
<span style="word-break:break-all ">{{detailData.businessScope}}</span>
</ng-template>
</sv>
<sv label="税务机关" col="3">
<input nz-input type="text" [(ngModel)]="detailData.taxAuthority" [readonly]="!isEdit" [nzBorderless]="!isEdit"
[placeholder]="isEdit?'':'-'"> [placeholder]="isEdit?'':'-'">
</ng-container> </sv>
<ng-template #businessScopeelseTemplate> <sv label="营业执照" col="3">
<span style="word-break:break-all ">{{detailData.businessScope}}</span> <ng-container
</ng-template> *ngTemplateOutlet="uploadTemplate;context:{data:detailData,status:isEdit,key:'licensePhotoWatermark',key2:'licensePhoto',hover:'detailPhoto'}">
</sv> </ng-container>
<sv label="税务机关" col="3"> </sv>
<input nz-input type="text" [(ngModel)]="detailData.taxAuthority" [readonly]="!isEdit" [nzBorderless]="!isEdit" <sv label="企业授权函" col="3">
[placeholder]="isEdit?'':'-'"> <ng-container
</sv> *ngTemplateOutlet="uploadTemplate;context:{data:detailData,status:isEdit,key:'creditPhotoWatermark',key2:'creditPhoto',hover:'adminPhoto'}">
<sv label="营业执照" col="3"> </ng-container>
<ng-container </sv>
*ngTemplateOutlet="uploadTemplate;context:{data:detailData,status:isEdit,key:'licensePhotoWatermark',key2:'licensePhoto',hover:'detailPhoto'}"> </sv-container>
</ng-container> </div>
</sv> <div class="mb-md">
<sv label="企业授权函" col="3"> <div class="font-weight-blod text-md detail-title">
<ng-container <a class="sign"></a>
*ngTemplateOutlet="uploadTemplate;context:{data:detailData,status:isEdit,key:'creditPhotoWatermark',key2:'creditPhoto',hover:'adminPhoto'}"> <span>法人信息</span>
</ng-container>
</sv>
</sv-container>
<nz-divider></nz-divider>
<sv-container col="3" class="mt16">
<sv-title>法人信息
<label *ngIf="detailData?.legalPersonIdentityVO?.isExpired" style="color: #fa8c16;"> <label *ngIf="detailData?.legalPersonIdentityVO?.isExpired" style="color: #fa8c16;">
<i nz-icon nzType="info-circle" nzTheme="fill" class="ml-md mr-xs"></i>法人身份证期限已过期 <i nz-icon nzType="info-circle" nzTheme="fill" class="ml-md mr-xs"></i>法人身份证期限已过期
</label> </label>
</sv-title> </div>
<sv label="法定代表人"> <sv-container col="3" class="mt16">
<input nz-input type="text" maxlength="32" [(ngModel)]="detailData.legalPersonIdentityVO.name" <!-- <sv-title>法人信息
[readonly]="!isEdit" [nzBorderless]="!isEdit" [placeholder]="isEdit?'':'-'"> <label *ngIf="detailData?.legalPersonIdentityVO?.isExpired" style="color: #fa8c16;">
</sv> <i nz-icon nzType="info-circle" nzTheme="fill" class="ml-md mr-xs"></i>法人身份证期限已过期
<sv label="身份证号码"> </label>
<input nz-input type="text" [(ngModel)]="detailData.legalPersonIdentityVO.certificateNumber" [readonly]="!isEdit" </sv-title> -->
[nzBorderless]="!isEdit" [placeholder]="isEdit?'':'-'"> <sv label="法定代表人">
</sv> <input nz-input type="text" maxlength="32" [(ngModel)]="detailData.legalPersonIdentityVO.name"
<sv label="身份证有效期" col="1"> [readonly]="!isEdit" [nzBorderless]="!isEdit" [placeholder]="isEdit?'':'-'">
<nz-date-picker [(ngModel)]="detailData.legalPersonIdentityVO.validStartTime" [nzDisabled]="!isEdit" </sv>
nzPlaceHolder=" " [nzBorderless]="!isEdit" [nzSuffixIcon]="isEdit?'calendar':''" style="width: 120px;" <sv label="身份证号码">
class="calendar"></nz-date-picker> <input nz-input type="text" [(ngModel)]="detailData.legalPersonIdentityVO.certificateNumber"
- [readonly]="!isEdit" [nzBorderless]="!isEdit" [placeholder]="isEdit?'':'-'">
<ng-container </sv>
*ngIf="!isEdit && !detailData?.legalPersonIdentityVO?.validEndTime && detailData.legalPersonIdentityVO.validStartTime"> <sv label="身份证有效期" col="1">
<label style="padding-left: 11px;">长期</label> <nz-date-picker [(ngModel)]="detailData.legalPersonIdentityVO.validStartTime" [nzDisabled]="!isEdit"
</ng-container> nzPlaceHolder=" " [nzBorderless]="!isEdit" [nzSuffixIcon]="isEdit?'calendar':''" style="width: 120px;"
<nz-date-picker [(ngModel)]="detailData.legalPersonIdentityVO.validEndTime" [nzDisabled]="!isEdit" class="calendar"></nz-date-picker>
nzPlaceHolder=" " [nzBorderless]="!isEdit" [nzSuffixIcon]="isEdit?'calendar':''" style="width: 120px;" -
class="calendar"></nz-date-picker>
<ng-container *ngIf="isEdit">
<label nz-checkbox [ngModel]="!!!detailData.legalPersonIdentityVO.validEndTime"
(ngModelChange)="$event?detailData.legalPersonIdentityVO.validEndTime='':''" class="ml-sm">长期</label>
</ng-container>
</sv>
<sv label="身份证照" col="1">
<div class="d-flex">
<ng-container <ng-container
*ngTemplateOutlet="uploadTemplate;context:{data:detailData?.legalPersonIdentityVO,status:isEdit,key:'certificatePhotoFrontWatermark',key2:'certificatePhotoFront',hover:'legalFront'}"> *ngIf="!isEdit && !detailData?.legalPersonIdentityVO?.validEndTime && detailData.legalPersonIdentityVO.validStartTime">
<label style="padding-left: 11px;">长期</label>
</ng-container> </ng-container>
<ng-container <nz-date-picker [(ngModel)]="detailData.legalPersonIdentityVO.validEndTime" [nzDisabled]="!isEdit"
*ngTemplateOutlet="uploadTemplate;context:{data:detailData?.legalPersonIdentityVO,status:isEdit,key:'certificatePhotoBackWatermark',key2:'certificatePhotoBack',hover:'legalBack'}"> nzPlaceHolder=" " [nzBorderless]="!isEdit" [nzSuffixIcon]="isEdit?'calendar':''" style="width: 120px;"
class="calendar"></nz-date-picker>
<ng-container *ngIf="isEdit">
<label nz-checkbox [ngModel]="!!!detailData.legalPersonIdentityVO.validEndTime"
(ngModelChange)="$event?detailData.legalPersonIdentityVO.validEndTime='':''" class="ml-sm">长期</label>
</ng-container> </ng-container>
</div> </sv>
</sv> <sv label="身份证照" col="1">
</sv-container> <div class="d-flex">
<nz-divider></nz-divider> <ng-container
<sv-container col="3"> *ngTemplateOutlet="uploadTemplate;context:{data:detailData?.legalPersonIdentityVO,status:isEdit,key:'certificatePhotoFrontWatermark',key2:'certificatePhotoFront',hover:'legalFront'}">
<sv-title>企业管理员信息 </ng-container>
<ng-container
*ngTemplateOutlet="uploadTemplate;context:{data:detailData?.legalPersonIdentityVO,status:isEdit,key:'certificatePhotoBackWatermark',key2:'certificatePhotoBack',hover:'legalBack'}">
</ng-container>
</div>
</sv>
</sv-container>
</div>
<div class="mb-md">
<div class="font-weight-blod text-md detail-title">
<a class="sign"></a>
<span>企业管理员信息</span>
<label *ngIf="detailData?.adminUserInfo?.isExpired" style="color: #fa8c16;"> <label *ngIf="detailData?.adminUserInfo?.isExpired" style="color: #fa8c16;">
<i nz-icon nzType="info-circle" nzTheme="fill" class="ml-md mr-xs"></i>企业营业期限已过期 <i nz-icon nzType="info-circle" nzTheme="fill" class="ml-md mr-xs"></i>企业营业期限已过期
</label> </label>
</sv-title> </div>
<sv label="姓名"> <sv-container col="3">
<input nz-input type="text" [(ngModel)]="detailData.adminUserInfo.name" [readonly]="!isEdit" <!-- <sv-title>企业管理员信息
[nzBorderless]="!isEdit" [placeholder]="isEdit?'':'-'"> <label *ngIf="detailData?.adminUserInfo?.isExpired" style="color: #fa8c16;">
</sv> <i nz-icon nzType="info-circle" nzTheme="fill" class="ml-md mr-xs"></i>企业营业期限已过期
<sv label="手机号"> </label>
{{detailData.adminUserInfo?.mobile}} </sv-title> -->
</sv> <sv label="姓名">
<sv label="身份证号"> <input nz-input type="text" [(ngModel)]="detailData.adminUserInfo.name" [readonly]="!isEdit"
<input nz-input type="text" [(ngModel)]="detailData.adminUserInfo.certificateNumber" [readonly]="!isEdit"
[nzBorderless]="!isEdit" [placeholder]="isEdit?'':'-'">
</sv>
<sv label="身份证照" col="2">
<div class="d-flex">
<ng-container
*ngTemplateOutlet="uploadTemplate;context:{data:detailData?.adminUserInfo,status:isEdit,key:'certificatePhotoFrontWatermark',key2:'certificatePhotoFront',hover:'certificateBackFront'}">
</ng-container>
<ng-container
*ngTemplateOutlet="uploadTemplate;context:{data:detailData?.adminUserInfo,status:isEdit,key:'certificatePhotoBackWatermark',key2:'certificatePhotoBack',hover:'certificateBack'}">
</ng-container>
</div>
</sv>
</sv-container>
<nz-divider></nz-divider>
<sv-container col="3" class="mt16">
<sv-title>企业开票信息</sv-title>
<sv label="开户银行">
<ng-container *ngIf="isEdit; else createBankTemplate">
<input nz-input type="text" [(ngModel)]="detailData.createBank" [readonly]="!isEdit" [nzBorderless]="!isEdit"
[placeholder]="isEdit?'':'-'">
</ng-container>
<ng-template #createBankTemplate>
{{detailData.createBank}}
</ng-template>
</sv>
<sv label="银行账户">
<input nz-input type="text" [(ngModel)]="detailData.bankAccount" [readonly]="!isEdit" [nzBorderless]="!isEdit"
[placeholder]="isEdit?'':'-'">
</sv>
<sv label="注册电话">
<input nz-input type="text" [(ngModel)]="detailData.registerPhone" [readonly]="!isEdit" [nzBorderless]="!isEdit"
[placeholder]="isEdit?'':'-'">
</sv>
<sv label="注册地址">
<ng-container *ngIf="isEdit; else registerAddressTemplate">
<input nz-input type="text" [(ngModel)]="detailData.registerAddress" [readonly]="!isEdit"
[nzBorderless]="!isEdit" [placeholder]="isEdit?'':'-'"> [nzBorderless]="!isEdit" [placeholder]="isEdit?'':'-'">
</ng-container> </sv>
<ng-template #registerAddressTemplate> <sv label="手机号">
{{detailData.registerAddress}} {{detailData.adminUserInfo?.mobile}}
</ng-template> </sv>
</sv> <sv label="身份证号">
</sv-container> <input nz-input type="text" [(ngModel)]="detailData.adminUserInfo.certificateNumber" [readonly]="!isEdit"
<nz-divider></nz-divider> [nzBorderless]="!isEdit" [placeholder]="isEdit?'':'-'">
<sv-container col="3" class="mt-md"> </sv>
<sv-title>服务评级 <sv label="身份证照" col="2">
<div class="d-flex">
<ng-container
*ngTemplateOutlet="uploadTemplate;context:{data:detailData?.adminUserInfo,status:isEdit,key:'certificatePhotoFrontWatermark',key2:'certificatePhotoFront',hover:'certificateBackFront'}">
</ng-container>
<ng-container
*ngTemplateOutlet="uploadTemplate;context:{data:detailData?.adminUserInfo,status:isEdit,key:'certificatePhotoBackWatermark',key2:'certificatePhotoBack',hover:'certificateBack'}">
</ng-container>
</div>
</sv>
</sv-container>
</div>
<div class="mb-md">
<div class="font-weight-blod text-md detail-title">
<a class="sign"></a>
<span>企业开票信息</span>
</div>
<sv-container col="3" class="mt16">
<!-- <sv-title>企业开票信息</sv-title> -->
<sv label="开户银行">
<ng-container *ngIf="isEdit; else createBankTemplate">
<input nz-input type="text" [(ngModel)]="detailData.createBank" [readonly]="!isEdit" [nzBorderless]="!isEdit"
[placeholder]="isEdit?'':'-'">
</ng-container>
<ng-template #createBankTemplate>
{{detailData.createBank}}
</ng-template>
</sv>
<sv label="银行账户">
<input nz-input type="text" [(ngModel)]="detailData.bankAccount" [readonly]="!isEdit" [nzBorderless]="!isEdit"
[placeholder]="isEdit?'':'-'">
</sv>
<sv label="注册电话">
<input nz-input type="text" [(ngModel)]="detailData.registerPhone" [readonly]="!isEdit" [nzBorderless]="!isEdit"
[placeholder]="isEdit?'':'-'">
</sv>
<sv label="注册地址">
<ng-container *ngIf="isEdit; else registerAddressTemplate">
<input nz-input type="text" [(ngModel)]="detailData.registerAddress" [readonly]="!isEdit"
[nzBorderless]="!isEdit" [placeholder]="isEdit?'':'-'">
</ng-container>
<ng-template #registerAddressTemplate>
{{detailData.registerAddress}}
</ng-template>
</sv>
</sv-container>
</div>
<div class="mb-md">
<div class="font-weight-blod text-md detail-title">
<a class="sign"></a>
<span>服务评级</span>
<ng-container *ngIf="billEvaluateList?.length===0">(暂无评级)</ng-container> <ng-container *ngIf="billEvaluateList?.length===0">(暂无评级)</ng-container>
</sv-title> </div>
<sv [label]="item.evaluateTypeLabel" *ngFor="let item of billEvaluateList"> <sv-container col="3" class="mt-md">
<nz-rate [ngModel]="item.evaluateFraction" nzDisabled></nz-rate> <!-- <sv-title>服务评级
</sv> <ng-container *ngIf="billEvaluateList?.length===0">(暂无评级)</ng-container>
</sv-container> </sv-title> -->
<sv [label]="item.evaluateTypeLabel" *ngFor="let item of billEvaluateList">
<nz-rate [ngModel]="item.evaluateFraction" nzDisabled></nz-rate>
</sv>
</sv-container>
</div>
<!-- <nz-divider></nz-divider> --> <!-- <nz-divider></nz-divider> -->
<!-- <sv-container col="3" class="mt16"> <!-- <sv-container col="3" class="mt16">
<sv-title>合伙人信息</sv-title> <sv-title>合伙人信息</sv-title>
@ -386,7 +432,7 @@
[nzBorderless]="!isEdit" [placeholder]="isEdit?'':'-'"> [nzBorderless]="!isEdit" [placeholder]="isEdit?'':'-'">
</sv> </sv>
<sv label="管理员"> <sv label="管理员">
</sv> </sv>
<sv label="绑定时间"> <sv label="绑定时间">
<input nz-input type="text" [(ngModel)]="partnerInfo.enterprisePartnerRelTime" [readonly]="!isEdit" <input nz-input type="text" [(ngModel)]="partnerInfo.enterprisePartnerRelTime" [readonly]="!isEdit"
@ -511,4 +557,4 @@
</div> </div>
</div> </div>
</nz-upload> </nz-upload>
</ng-template> </ng-template>

View File

@ -30,11 +30,11 @@
<div nz-col [nzXl]="8" [nzLg]="8" [nzSm]="24" [nzXs]="24" class="d-flex" <div nz-col [nzXl]="8" [nzLg]="8" [nzSm]="24" [nzXs]="24" class="d-flex"
style="justify-content: flex-end;padding-right: 24px;"> style="justify-content: flex-end;padding-right: 24px;">
<button *ngIf="userDetail?.stateLocked" [nzLoading]="service.http.loading" nz-button nzType="primary" <button *ngIf="userDetail?.stateLocked" [nzLoading]="service.http.loading" nz-button nzType="primary"
nzGhost (click)="userAction(1)" acl [acl-ability]="['USERCENTER-FREIGHT-USER-D-lock']"> nzGhost (click)="userAction(1)" acl [acl-ability]="['USERCENTER-FREIGHT-USER-D-lock']">
启用 启用
</button> </button>
<button *ngIf="!userDetail?.stateLocked" [nzLoading]="service.http.loading" nz-button nzDanger nzGhost <button *ngIf="!userDetail?.stateLocked" [nzLoading]="service.http.loading" nz-button nzDanger nzGhost
(click)="userAction(0)" acl [acl-ability]="['USERCENTER-FREIGHT-USER-D-lock']"> (click)="userAction(0)" acl [acl-ability]="['USERCENTER-FREIGHT-USER-D-lock']">
冻结 冻结
</button> </button>
</div> </div>
@ -46,9 +46,42 @@
</ng-template> </ng-template>
</page-header-wrapper> </page-header-wrapper>
<nz-card [nzLoading]="service.http.loading"> <nz-card [nzLoading]="service.http.loading" [nzBorderless]="true" style="height: 100%;">
<sv-container col="2"> <div class="mb-md">
<sv-title>个人信息 <div class="font-weight-blod text-md detail-title" style="justify-content: space-between;">
<div>
<a class="sign"></a>
<span>个人信息</span>
<label *ngIf="userIdentityDetail?.certificationStatus===1" style="color: #52c41a;"><i nz-icon
nzType="check-circle" nzTheme="fill" class="mr-xs"></i>审核通过
</label>
<label *ngIf="userIdentityDetail?.certificationStatus===2" style="color: #ff4d4f;"><i nz-icon
nzType="close-circle" nzTheme="fill" class="mr-xs"></i>驳回
</label>
</div>
<div>
<ng-container *ngIf="isEditUser; else elseTemplate">
<button [nzLoading]="service.http.loading" nz-button (click)="reset()">
取消
</button>
<button [nzLoading]="service.http.loading" nz-button nzDanger (click)="saveUser()">
保存
</button>
</ng-container>
<ng-template #elseTemplate>
<button nz-button nzType="default" nzDanger (click)="auditPass()"
*ngIf="userIdentityDetail.certificationStatus===0" [nzLoading]="service.http.loading" acl
[acl-ability]="['USERCENTER-FREIGHT-USER-D-audit']">审核通过</button>
<button nz-button nzType="default" nzDanger (click)="auditNo()"
*ngIf="userIdentityDetail.certificationStatus===0" [nzLoading]="service.http.loading" acl
[acl-ability]="['USERCENTER-FREIGHT-USER-D-audit']">驳回审核</button>
<button nz-button nzType="default" nzDanger (click)="ratify()" acl
[acl-ability]="['USERCENTER-FREIGHT-USER-D-edit']">修改</button>
</ng-template>
</div>
</div>
<sv-container col="2">
<!-- <sv-title>个人信息
<label *ngIf="userIdentityDetail?.certificationStatus===1" style="color: #52c41a;"><i nz-icon <label *ngIf="userIdentityDetail?.certificationStatus===1" style="color: #52c41a;"><i nz-icon
nzType="check-circle" nzTheme="fill" class="mr-xs"></i>审核通过 nzType="check-circle" nzTheme="fill" class="mr-xs"></i>审核通过
</label> </label>
@ -71,51 +104,60 @@
<button nz-button nzType="default" nzDanger (click)="ratify()" acl [acl-ability]="['USERCENTER-FREIGHT-USER-D-edit']" >修改</button> <button nz-button nzType="default" nzDanger (click)="ratify()" acl [acl-ability]="['USERCENTER-FREIGHT-USER-D-edit']" >修改</button>
</ng-template> </ng-template>
</div> </div>
</sv-title> </sv-title> -->
<sv label="姓名"> <sv label="姓名">
<input nz-input type="text" [maxlength]="32" [(ngModel)]="userIdentityDetail.name" [readonly]="!isEditUser" <input nz-input type="text" [maxlength]="32" [(ngModel)]="userIdentityDetail.name" [readonly]="!isEditUser"
[nzBorderless]="!isEditUser" [placeholder]="isEditUser?'':'-'"> [nzBorderless]="!isEditUser" [placeholder]="isEditUser?'':'-'">
</sv> </sv>
<sv label="身份证号码"> <sv label="身份证号码">
<input nz-input type="text" [minlength]="18" [maxlength]="18" [(ngModel)]="userIdentityDetail.certificateNumber" [readonly]="!isEditUser" <input nz-input type="text" [minlength]="18" [maxlength]="18"
[nzBorderless]="!isEditUser" [placeholder]="isEditUser?'':'-'"> [(ngModel)]="userIdentityDetail.certificateNumber" [readonly]="!isEditUser" [nzBorderless]="!isEditUser"
</sv> [placeholder]="isEditUser?'':'-'">
<sv label="有效期" col="1"> </sv>
<nz-date-picker [(ngModel)]="userIdentityDetail.validStartTime" [nzDisabled]="!isEditUser" nzPlaceHolder=" " <sv label="有效期" col="1">
[nzBorderless]="!isEditUser" [nzSuffixIcon]="isEditUser?'calendar':''" style="width: 130px;" class="calendar"> <nz-date-picker [(ngModel)]="userIdentityDetail.validStartTime" [nzDisabled]="!isEditUser" nzPlaceHolder=" "
</nz-date-picker> [nzBorderless]="!isEditUser" [nzSuffixIcon]="isEditUser?'calendar':''" style="width: 130px;"
- class="calendar">
<ng-container *ngIf="!isEditUser && !userIdentityDetail?.validEndTime && userIdentityDetail?.validStartTime"> </nz-date-picker>
<label style="padding-left: 11px;">长期</label> -
</ng-container> <ng-container *ngIf="!isEditUser && !userIdentityDetail?.validEndTime && userIdentityDetail?.validStartTime">
<nz-date-picker [(ngModel)]="userIdentityDetail.validEndTime" [nzDisabled]="!isEditUser" nzPlaceHolder=" " <label style="padding-left: 11px;">长期</label>
[nzBorderless]="!isEditUser" [nzSuffixIcon]="isEditUser?'calendar':''" style="width: 130px;" class="calendar">
</nz-date-picker>
<ng-container *ngIf="isEditUser">
<label nz-checkbox [ngModel]="!!!userIdentityDetail.validEndTime"
(ngModelChange)="$event?userIdentityDetail.validEndTime='':''" class="ml-sm">长期</label>
</ng-container>
</sv>
<sv label="身份证照" col="1">
<div class="d-flex">
<ng-container
*ngTemplateOutlet="uploadTemplate;context:{data:userIdentityDetail,status:isEditUser,key:'certificatePhotoFrontWatermark',key2:'certificatePhotoFront',hover:'certificateBackFront'}">
</ng-container> </ng-container>
<ng-container <nz-date-picker [(ngModel)]="userIdentityDetail.validEndTime" [nzDisabled]="!isEditUser" nzPlaceHolder=" "
*ngTemplateOutlet="uploadTemplate;context:{data:userIdentityDetail,status:isEditUser,key:'certificatePhotoBackWatermark',key2:'certificatePhotoBack',hover:'certificateBack'}"> [nzBorderless]="!isEditUser" [nzSuffixIcon]="isEditUser?'calendar':''" style="width: 130px;"
class="calendar">
</nz-date-picker>
<ng-container *ngIf="isEditUser">
<label nz-checkbox [ngModel]="!!!userIdentityDetail.validEndTime"
(ngModelChange)="$event?userIdentityDetail.validEndTime='':''" class="ml-sm">长期</label>
</ng-container> </ng-container>
</div> </sv>
</sv> <sv label="身份证照" col="1">
</sv-container> <div class="d-flex">
<nz-divider></nz-divider> <ng-container
<sv-container col="3" class="mt16"> *ngTemplateOutlet="uploadTemplate;context:{data:userIdentityDetail,status:isEditUser,key:'certificatePhotoFrontWatermark',key2:'certificatePhotoFront',hover:'certificateBackFront'}">
<sv-title>关联企业</sv-title> </ng-container>
<ng-container
*ngTemplateOutlet="uploadTemplate;context:{data:userIdentityDetail,status:isEditUser,key:'certificatePhotoBackWatermark',key2:'certificatePhotoBack',hover:'certificateBack'}">
</ng-container>
</div>
</sv>
</sv-container>
</div>
<div class="mb-md">
<div class="font-weight-blod text-md detail-title">
<a class="sign"></a>
<span>关联企业</span>
</div>
<!-- <sv-title>关联企业</sv-title> -->
<st #st [columns]="columns" [data]="service.$api_get_driver_projects" size="small" <st #st [columns]="columns" [data]="service.$api_get_driver_projects" size="small"
[req]="{ method: 'POST', allInBody: true, params: {appUserId:route.snapshot.params.id} }" [req]="{ method: 'POST', allInBody: true, params: {appUserId:route.snapshot.params.id} }"
[res]="{ reName: { list: 'data' } }" [page]="{ show: false }" style="width: 100%;"> [res]="{ reName: { list: 'data' } }" [page]="{ show: false }" style="width: 100%;">
</st> </st>
</sv-container>
</div>
</nz-card> </nz-card>
</ng-container> </ng-container>
@ -159,4 +201,4 @@
</div> </div>
</div> </div>
</nz-upload> </nz-upload>
</ng-template> </ng-template>

View File

@ -3,7 +3,7 @@
:host { :host {
::ng-deep { ::ng-deep {
.user-info { .user-info {
display : flex; display: flex;
font-size: 16px; font-size: 16px;
.enterprise-name { .enterprise-name {
@ -11,9 +11,9 @@
} }
img { img {
width : 64px; width: 64px;
height : 64px; height: 64px;
margin-right : 15px; margin-right: 15px;
border-radius: 50%; border-radius: 50%;
} }
@ -22,4 +22,5 @@
} }
} }
} }
}
}

View File

@ -32,7 +32,7 @@
<div class="mr-sm"> <div class="mr-sm">
<button nz-button nzDanger [nzLoading]="service.http.loading" acl [acl-ability]="['USERCENTER-FREIGHT-USER-list']" <button nz-button nzDanger [nzLoading]="service.http.loading" acl [acl-ability]="['USERCENTER-FREIGHT-USER-list']"
(click)="openDrawer()">筛选</button> (click)="openDrawer()">筛选</button>
<button nz-button nzDanger (click)="st?.load(1)" acl [acl-ability]="['USERCENTER-FREIGHT-ENTERPRISE-export']"> <button nz-button nzDanger (click)="exportList()" acl [acl-ability]="['USERCENTER-FREIGHT-ENTERPRISE-export']">
导出</button> 导出</button>
</div> </div>
</ng-template> </ng-template>

View File

@ -1,12 +0,0 @@
:host::ng-deep {
nz-range-picker {
width: 100%;
}
.content-box {
.ant-card-body {
padding-top: 6px;
}
}
}

View File

@ -22,7 +22,11 @@ export class FreightComponentsUserComponent extends BasicTableComponent implemen
resourceStatus: any = 0; resourceStatus: any = 0;
constructor(public service: UsermanageService, private modal: NzModalService, private router: Router, private ar: ActivatedRoute, constructor(
public service: UsermanageService,
private modal: NzModalService,
private router: Router,
private ar: ActivatedRoute,
public searchDrawerService: SearchDrawerService public searchDrawerService: SearchDrawerService
) { ) {
super(searchDrawerService); super(searchDrawerService);
@ -32,7 +36,6 @@ export class FreightComponentsUserComponent extends BasicTableComponent implemen
this.st?.load(1); this.st?.load(1);
} }
ngOnInit() { ngOnInit() {
this.ar.url.subscribe(params => { this.ar.url.subscribe(params => {
this.st?.load(1); this.st?.load(1);
@ -114,6 +117,16 @@ export class FreightComponentsUserComponent extends BasicTableComponent implemen
}); });
} }
exportList() {
const params = { certificationStatus: this.resourceStatus, pageSize: -1 };
if (this.sf) {
Object.assign(params, {
...this.sf?.value
});
}
this.service.downloadFile(this.service.$api_get_user_list_export, params);
}
private initSF(): SFSchema { private initSF(): SFSchema {
return { return {
properties: { properties: {
@ -157,7 +170,7 @@ export class FreightComponentsUserComponent extends BasicTableComponent implemen
], ],
default: '', default: '',
ui: { ui: {
widget: 'select', widget: 'select'
} }
}, },
promotersTelephone: { promotersTelephone: {
@ -165,7 +178,7 @@ export class FreightComponentsUserComponent extends BasicTableComponent implemen
type: 'string', type: 'string',
maxLength: 11, maxLength: 11,
ui: { ui: {
placeholder: '请输入手机号', placeholder: '请输入手机号'
} }
}, },
effectiveDate: { effectiveDate: {
@ -174,7 +187,7 @@ export class FreightComponentsUserComponent extends BasicTableComponent implemen
ui: { ui: {
widget: 'date', widget: 'date',
mode: 'range', mode: 'range',
format: 'yyyy-MM-dd', format: 'yyyy-MM-dd'
} as SFDateWidgetSchema } as SFDateWidgetSchema
} }
} }
@ -212,19 +225,19 @@ export class FreightComponentsUserComponent extends BasicTableComponent implemen
click: (item: any) => { click: (item: any) => {
this.router.navigate(['./view', item.appUserId], { relativeTo: this.ar }); this.router.navigate(['./view', item.appUserId], { relativeTo: this.ar });
}, },
acl: { ability: ['USERCENTER-FREIGHT-USER-view'] }, acl: { ability: ['USERCENTER-FREIGHT-USER-view'] }
}, },
{ {
text: '冻结', text: '冻结',
iif: item => item.stateLocked === 0, iif: item => item.stateLocked === 0,
click: (item: any) => this.userAction(0, [item.appUserId]), click: (item: any) => this.userAction(0, [item.appUserId]),
acl: { ability: ['USERCENTER-FREIGHT-USER-lock'] }, acl: { ability: ['USERCENTER-FREIGHT-USER-lock'] }
}, },
{ {
text: '启用', text: '启用',
iif: item => item.stateLocked === 1, iif: item => item.stateLocked === 1,
click: (item: any) => this.userAction(1, [item.appUserId]), click: (item: any) => this.userAction(1, [item.appUserId]),
acl: { ability: ['USERCENTER-FREIGHT-USER-lock'] }, acl: { ability: ['USERCENTER-FREIGHT-USER-lock'] }
} }
] ]
} }

View File

@ -49,6 +49,8 @@ export class UsermanageService extends ShipperBaseService {
// 货主员工列表(运营后台) // 货主员工列表(运营后台)
$api_get_user_list = '/api/mdc/cuc/userApp/getShipperUserInfoList'; $api_get_user_list = '/api/mdc/cuc/userApp/getShipperUserInfoList';
// 货主员工列表(运营后台)
$api_get_user_list_export = '/api/mdc/cuc/userApp/getShipperUserInfoList';
// 冻结或恢复员工 // 冻结或恢复员工
$api_lock_staff = '/api/mdc/cuc/userApp/freezeOrResumeStaff'; $api_lock_staff = '/api/mdc/cuc/userApp/freezeOrResumeStaff';
// 冻结或恢复应用用户 // 冻结或恢复应用用户

View File

@ -1,26 +1,6 @@
<!-- <!-- <page-header-wrapper></page-header-wrapper>
* @Author: your name
* @Date: 2021-11-29 15:22:34
* @LastEditTime : 2022-04-20 17:06:02
* @LastEditors : Shiming
* @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
* @FilePath : \\tms-obc-web\\src\\app\\routes\\vehicle\\components\\audit\\audit.component.html
-->
<!-- 页头 -->
<page-header-wrapper></page-header-wrapper>
<nz-card> <nz-card>
<!-- 搜索区 -->
<!-- 搜索表单 -->
<div nz-row nzGutter="8"> <div nz-row nzGutter="8">
<!-- 查询字段小于或等于3个时不显示伸缩按钮 -->
<div nz-col nzSpan="24" *ngIf="queryFieldCount <= 4">
<sf #sf [schema]="schema" [ui]="ui" [mode]="'search'" [disabled]="!sf?.valid" (formSubmit)="st?.load(1)"
(formReset)="resetSF()"></sf>
</div>
<!-- [loading]="false" -->
<!-- 查询字段大于3个时根据展开状态调整布局 -->
<ng-container *ngIf="queryFieldCount > 4"> <ng-container *ngIf="queryFieldCount > 4">
<div nz-col [nzSpan]="_$expand ? 24 : 18"> <div nz-col [nzSpan]="_$expand ? 24 : 18">
<sf #sf [schema]="schema" [ui]="ui" [compact]="true" [button]="'none'"></sf> <sf #sf [schema]="schema" [ui]="ui" [compact]="true" [button]="'none'"></sf>
@ -37,21 +17,34 @@
</div> </div>
</ng-container> </ng-container>
</div> </div>
</nz-card> </nz-card> -->
<nz-card> <nz-card class="table-box">
<div class="tab_header">
<label class="page_title"><label class="driver">|</label>车辆审核列表</label>
<nz-tabset (nzSelectedIndexChange)="selectChange($event)" [nzSelectedIndex]='defaultTabs'
[nzTabBarExtraContent]="extraTemplate">
<nz-tab [nzTitle]="'全部'"></nz-tab>
<nz-tab [nzTitle]="'待审核'"></nz-tab>
<nz-tab [nzTitle]="'审核通过'"></nz-tab>
<nz-tab [nzTitle]="'驳回'"></nz-tab>
</nz-tabset>
</div>
<ng-template #extraTemplate>
<div class="mr-sm">
<button nz-button nzDanger [nzLoading]="service.http.loading" acl [acl-ability]="['VEHICLE-AUDIT-search']"
(click)="openDrawer()">筛选</button>
<button nz-button nzDanger (click)="exportFire()" acl [acl-ability]="['VEHICLE-AUDIT-export']">
导出</button>
<button nz-button nzType="primary" (click)="addModal()" acl [acl-ability]="['VEHICLE-AUDIT-add']">添加车辆</button>
</div>
</ng-template>
<!-- 数据列表 --> <!-- 数据列表 -->
<!-- [data]="service.$api_get_supplier_page" --> <!-- [data]="service.$api_get_supplier_page" -->
<nz-tabset (nzSelectedIndexChange)="selectChange($event)" [nzSelectedIndex]='defaultTabs'
[nzTabBarExtraContent]="extraTemplate"> <st #st [bordered]="true" [scroll]="{ x: '1200px',y:scrollY }" [columns]="columns"
<nz-tab [nzTitle]="'全部'"></nz-tab> [data]='service.$api_get_userCarLicense_list' [req]="{ params: reqParams }" [res]="{ process: dataProcess }"
<nz-tab [nzTitle]="'待审核'"></nz-tab> [page]="{ }" [loading]="false">
<nz-tab [nzTitle]="'审核通过'"></nz-tab>
<nz-tab [nzTitle]="'驳回'"></nz-tab>
</nz-tabset>
<st #st [bordered]="true" [scroll]="{ x: '1200px' }" [columns]="columns" [data]='service.$api_get_userCarLicense_list'
[req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, params: reqParams }"
[res]="{ reName: { list: 'data.records', total: 'data.total' }, process: dataProcess }"
[page]="{ show: true, showSize: true, pageSizes: [10, 20, 30, 50, 100, 200, 300, 500, 1000] }" [loading]="false">
<ng-template st-row="carLength" let-item let-index="index"> <ng-template st-row="carLength" let-item let-index="index">
<div>{{item?.carModel}}-{{item?.carLengthLabel? item?.carLengthLabel + '米' : ''}}-{{ item?.carLoad? <div>{{item?.carModel}}-{{item?.carLengthLabel? item?.carLengthLabel + '米' : ''}}-{{ item?.carLoad?
item?.carLoad + '吨' : ''}}</div> item?.carLoad + '吨' : ''}}</div>
@ -69,11 +62,4 @@
<nz-tag *elseBlock nzColor="success">正常</nz-tag> <nz-tag *elseBlock nzColor="success">正常</nz-tag>
</ng-template> </ng-template>
</st> </st>
</nz-card> </nz-card>
<ng-template #extraTemplate>
<!-- 工具栏 -->
<div class="toolbar" style="float: right;
padding-bottom: 15px;">
<button nz-button nzType="primary" (click)="addModal()">添加车辆</button>
</div>
</ng-template>

View File

@ -1,31 +0,0 @@
/*
* @Author: your name
* @Date: 2021-12-01 20:05:59
* @LastEditTime: 2021-12-01 20:35:33
* @LastEditors: your name
* @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
* @FilePath: \tms-obc-web\src\app\routes\vehicle\components\list\list.component.spec.ts
*/
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { VehicleComponentsListComponent } from './list.component';
describe('VehicleComponentsListComponent', () => {
let component: VehicleComponentsListComponent;
let fixture: ComponentFixture<VehicleComponentsListComponent>;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [VehicleComponentsListComponent],
}).compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(VehicleComponentsListComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});

View File

@ -3,37 +3,32 @@ import { ActivatedRoute, Router } from '@angular/router';
import { STColumn, STColumnBadge, STComponent, STData } from '@delon/abc/st'; import { STColumn, STColumnBadge, STComponent, STData } from '@delon/abc/st';
import { SFComponent, SFDateWidgetSchema, SFSchema, SFSchemaEnum, SFSelectWidgetSchema, SFUISchema } from '@delon/form'; import { SFComponent, SFDateWidgetSchema, SFSchema, SFSchemaEnum, SFSelectWidgetSchema, SFUISchema } from '@delon/form';
import { ModalHelper } from '@delon/theme'; import { ModalHelper } from '@delon/theme';
import { SearchDrawerService } from '@shared';
import { NzModalService } from 'ng-zorro-antd/modal'; import { NzModalService } from 'ng-zorro-antd/modal';
import { of, Subject } from 'rxjs'; import { of, Subject } from 'rxjs';
import { map } from 'rxjs/operators'; import { map } from 'rxjs/operators';
import { BasicTableComponent } from 'src/app/routes/commom';
import { VehicleService } from '../../../vehicle/services/vehicle.service'; import { VehicleService } from '../../../vehicle/services/vehicle.service';
import { CarSettleCarauthComponent } from '../list/carauth/carauth.component'; import { CarSettleCarauthComponent } from '../list/carauth/carauth.component';
@Component({ @Component({
selector: 'app-Vehicle-components-audit', selector: 'app-Vehicle-components-audit',
templateUrl: './audit.component.html' templateUrl: './audit.component.html',
styleUrls: ['../../../commom/less/commom-table.less']
}) })
export class VehicleComponentsAuditComponent implements OnInit { export class VehicleComponentsAuditComponent extends BasicTableComponent implements OnInit {
_$expand = false;
resourceStatus: any = 1; resourceStatus: any = 1;
defaultTabs = 1; defaultTabs = 1;
ui!: SFUISchema;
schema!: SFSchema;
columns!: STColumn[]; columns!: STColumn[];
@ViewChild('st', { static: false }) st!: STComponent; @ViewChild('st', { static: false }) st!: STComponent;
@ViewChild('sf', { static: false }) sf!: SFComponent;
constructor( constructor(
public service: VehicleService, public service: VehicleService,
private modal: NzModalService,
private router: Router, private router: Router,
private ar: ActivatedRoute, private ar: ActivatedRoute,
private modalHelper: ModalHelper private modalHelper: ModalHelper,
) {} public searchDrawerService: SearchDrawerService
/** ) {
* 查询字段个数navigate super(searchDrawerService);
*/
get queryFieldCount(): number {
return Object.keys(this.schema?.properties || {}).length;
} }
/** /**
@ -65,6 +60,11 @@ export class VehicleComponentsAuditComponent implements OnInit {
this.st?.load(1); this.st?.load(1);
}); });
} }
search() {
this.st?.load(1);
}
dataProcess(data: STData[]): STData[] { dataProcess(data: STData[]): STData[] {
return data.map((i, index) => { return data.map((i, index) => {
i.showSortFlag = false; i.showSortFlag = false;
@ -101,9 +101,6 @@ export class VehicleComponentsAuditComponent implements OnInit {
return of([]); return of([]);
} }
}, },
visibleIf: {
_$expand: (value: boolean) => value
}
} as SFSelectWidgetSchema } as SFSelectWidgetSchema
}, },
carNoColor: { carNoColor: {
@ -130,12 +127,7 @@ export class VehicleComponentsAuditComponent implements OnInit {
saveUser: { saveUser: {
type: 'string', type: 'string',
title: '录入人员', title: '录入人员',
ui: { }
visibleIf: {
expand: (value: boolean) => value
}
}
},
// approvalStatus: { // approvalStatus: {
// type: 'string', // type: 'string',
// title: '审核状态', // title: '审核状态',
@ -170,7 +162,6 @@ export class VehicleComponentsAuditComponent implements OnInit {
// } // }
} }
}; };
this.ui = { '*': { spanLabelFixed: 120, grid: { span: 8, gutter: 4 }, enter: () => this.st.load() } };
} }
initST() { initST() {
@ -228,20 +219,9 @@ export class VehicleComponentsAuditComponent implements OnInit {
daoyun(item: any) { daoyun(item: any) {
this.router.navigate(['./view', item], { relativeTo: this.ar }); this.router.navigate(['./view', item], { relativeTo: this.ar });
} }
expandToggle() {
this._$expand = !this._$expand;
this.sf?.setValue('/expand', this._$expand);
}
creat() { creat() {
this.router.navigate(['./new'], { relativeTo: this.ar }); this.router.navigate(['./new'], { relativeTo: this.ar });
} }
/**
* 重置表单
*/
resetSF() {
this.sf.reset();
this._$expand = false;
}
// 导出 // 导出
exportFire() { exportFire() {
let params = Object.assign({}, this.reqParams || {}); let params = Object.assign({}, this.reqParams || {});

View File

@ -40,11 +40,12 @@
</ng-template> </ng-template>
<div #aaa style="position: absolute; top: 87.5%; left: 21%; opacity: 0; "> <div #aaa style="position: absolute; top: 87.5%; left: 21%; opacity: 0; ">
<div style="color: #0c77e7;" (click)='view()'>点击查看行政区域代码</div> <div style="color: #0c77e7;" (click)='view()'>点击查看行政区域代码</div>
</div> </div>
</sf> </sf>
<img class="drivercard borderImg" height="104" src="/assets/images/vehicle/car.png" /> <img class="drivercard borderImg" height="104" src="/assets/images/vehicle/car.png" />
</div>
<div class="modal-footer"> <div class="modal-footer">
<button nz-button type="button" (click)="close()">关闭</button> <button nz-button type="button" (click)="close()">关闭</button>
<button nz-button type="button" nzType="primary" (click)="submitForm()" [disabled]="!(sf?.valid && i.flag !== 'view')" [nzLoading]="service.http.loading">确定</button> <button nz-button type="button" nzType="primary" (click)="submitForm()"
[disabled]="!(sf?.valid && i.flag !== 'view')" [nzLoading]="service.http.loading">确定</button>
</div> </div>

View File

@ -1,129 +1,68 @@
.sfBox { .sfBox {
position: relative; position: relative;
.example { height : 550px;
position: absolute; overflow: auto;
top: 215px;
right: 265px;
color: #1890ff;
cursor: pointer;
.popBox {
position: absolute;
top: -170px;
left: -125px;
width: 300px;
padding: 20px;
text-align: center;
background: #fff;
border: solid 1px #eee;
border-radius: 6px;
box-shadow: 0 1px 5px 1px #ececec;
&::before {
position: absolute;
bottom: -5px;
left: 50%;
width: 10px;
height: 10px;
margin-left: -5px;
background: #fff;
box-shadow: 0 1px 5px 1px #ececec;
transform: rotate(45deg);
content: '';
}
&::after {
position: absolute;
bottom: 0;
left: 0;
z-index: 10;
width: 100%;
height: 10px;
background: #fff;
content: '';
}
img {
max-width: 100%;
max-height: 200px;
}
}
}
.positionSet{
top: 356px;
right: 235px;
}
.positionSet01{
top: 500px;
right: 200px;
}
.positionSet02{
top: 664px;
right: 265px;
}
.positionSet03{
top: 808px;
right: 205px;
}
}
.exaA{
position: absolute;
top: 0;
left: 300px
} }
.pr { .pr {
position: relative; position: relative;
} }
.pa { .pa {
position: absolute; position: absolute;
top: 35px; top : 35px;
left: 140px; left : 140px;
} }
.tips { .tips {
display: flex; display : flex;
margin-bottom: 0; margin-bottom: 0;
color: #333; color : #333;
dt { dt {
width: 150px; width: 150px;
} }
dd { dd {
width: 190px; width : 190px;
margin-bottom: 0; margin-bottom: 0;
text-align: center; text-align : center;
} }
} }
.drivercard{
.drivercard {
position: absolute; position: absolute;
top: 0; top : 0;
left: 325px; left : 325px;
border: solid 1px #ebf0fb; border : solid 1px #ebf0fb;
} }
.jopcard{
position: absolute;
top: 1356px; :host {
left: 330px;
border: solid 1px #ebf0fb;
}
.agreement{
position: absolute;
top: 425px;
left: 330px;
border: solid 1px #ebf0fb;
}
:host{
::ng-deep { ::ng-deep {
.ant-input-borderless{ .ant-input-borderless {
padding: 0; padding : 0;
padding-top: 4px; padding-top: 4px;
color: black; color : black;
resize:none; resize : none;
} }
.setCustom .ant-form-item-control{
margin-left: -100px !important .setCustom {
nz-form-item {
width: auto !important;
}
.ant-form-item-control {
margin-left: -100px !important
}
} }
.borderImg{
.borderImg {
border: solid 1px #ebf0fb; border: solid 1px #ebf0fb;
} }
nz-date-picker {
width: 100%;
}
} }
} }

View File

@ -658,7 +658,7 @@ export class CarSettleCarauthComponent implements OnInit {
grid: { span: 12 } grid: { span: 12 }
}, },
$agreeImg: { $agreeImg: {
grid: { span: 4 }, grid: { span: 3 },
class: 'setCustom' class: 'setCustom'
}, },
$titleB: { $titleB: {

View File

@ -1,16 +1,5 @@
<!-- <!-- <page-header-wrapper></page-header-wrapper>
* @Author: your name
* @Date: 2021-11-29 15:22:34
* @LastEditTime : 2022-02-17 17:25:34
* @LastEditors : Shiming
* @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
* @FilePath : \\tms-obc-web\\src\\app\\routes\\vehicle\\components\\list\\list.component.html
-->
<!-- 页头 -->
<page-header-wrapper></page-header-wrapper>
<nz-card> <nz-card>
<!-- 搜索区 -->
<!-- 搜索表单 -->
<div nz-row nzGutter="8"> <div nz-row nzGutter="8">
<div nz-col [nzSpan]="_$expand ? 24 : 18"> <div nz-col [nzSpan]="_$expand ? 24 : 18">
<sf #sf [schema]="schema" [ui]="ui" [compact]="true" [button]="'none'"></sf> <sf #sf [schema]="schema" [ui]="ui" [compact]="true" [button]="'none'"></sf>
@ -27,11 +16,20 @@
</button> </button>
</div> </div>
</div> </div>
</nz-card> </nz-card> -->
<nz-card> <nz-card class="table-box">
<!-- 数据列表 --> <div class="header_box">
<label class="page_title"> <label class="driver">|</label> 车辆列表</label>
<div class="mr-sm">
<button nz-button nzDanger [nzLoading]="service.http.loading" (click)="openDrawer()" acl
[acl-ability]="['VEHICLE-LIST-search']">筛选</button>
<button nz-button nzDanger (click)="exportFire()" acl [acl-ability]="'VEHICLE-LIST-export'">
导出</button>
</div>
</div>
<st #st [bordered]="true" [scroll]="{ x: '1200px' }" [columns]="columns" [data]="service.$api_get_operate_list" <!-- 数据列表 -->
<st #st [bordered]="true" [scroll]="{ x: '1200px',y:scrollY }" [columns]="columns" [data]="service.$api_get_operate_list"
[req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, params: reqParams }" [req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, params: reqParams }"
[res]="{ reName: { list: 'data.records', total: 'data.total' }, process: dataProcess }" [res]="{ reName: { list: 'data.records', total: 'data.total' }, process: dataProcess }"
[page]="{ show: true, showSize: true, pageSizes: [10, 20, 30, 50, 100, 200, 300, 500, 1000] }" [loading]="false"> [page]="{ show: true, showSize: true, pageSizes: [10, 20, 30, 50, 100, 200, 300, 500, 1000] }" [loading]="false">

View File

@ -1,25 +1,29 @@
import { Component, OnInit, ViewChild } from '@angular/core'; import { Component, OnInit, ViewChild } from '@angular/core';
import { ActivatedRoute, Router } from '@angular/router'; import { ActivatedRoute, Router } from '@angular/router';
import { STColumn, STComponent, STData } from '@delon/abc/st'; import { STColumn, STComponent, STData } from '@delon/abc/st';
import { SFComponent, SFSchema, SFSchemaEnum, SFSelectWidgetSchema, SFUISchema } from '@delon/form'; import { SFSchemaEnum, SFSelectWidgetSchema } from '@delon/form';
import { NzModalService } from 'ng-zorro-antd/modal'; import { SearchDrawerService } from '@shared';
import { of } from 'rxjs'; import { of } from 'rxjs';
import { map } from 'rxjs/operators'; import { map } from 'rxjs/operators';
import { BasicTableComponent } from 'src/app/routes/commom';
import { VehicleService } from '../../../vehicle/services/vehicle.service'; import { VehicleService } from '../../../vehicle/services/vehicle.service';
@Component({ @Component({
selector: 'app-Vehicle-components-list', selector: 'app-Vehicle-components-list',
templateUrl: './list.component.html' templateUrl: './list.component.html',
styleUrls: ['../../../commom/less/commom-table.less']
}) })
export class VehicleComponentsListComponent implements OnInit { export class VehicleComponentsListComponent extends BasicTableComponent implements OnInit {
_$expand = false;
ui!: SFUISchema;
schema!: SFSchema;
columns!: STColumn[]; columns!: STColumn[];
@ViewChild('st', { static: false }) st!: STComponent; @ViewChild('st', { static: false }) st!: STComponent;
@ViewChild('sf', { static: false }) sf!: SFComponent;
constructor(public service: VehicleService, private modal: NzModalService, private router: Router, private ar: ActivatedRoute) {} constructor(
public service: VehicleService,
private router: Router,
private ar: ActivatedRoute,
public searchDrawerService: SearchDrawerService
) {
super(searchDrawerService);
}
/** /**
* 查询参数 * 查询参数
@ -37,6 +41,10 @@ export class VehicleComponentsListComponent implements OnInit {
return params; return params;
} }
search() {
this.st?.load(1);
}
ngOnInit() { ngOnInit() {
this.initSF(); this.initSF();
this.initST(); this.initST();
@ -109,10 +117,7 @@ export class VehicleComponentsListComponent implements OnInit {
ui: { ui: {
widget: 'dict-select', widget: 'dict-select',
params: { dictKey: 'car:model' }, params: { dictKey: 'car:model' },
containsAllLabel: true, containsAllLabel: true
visibleIf: {
expand: (value: boolean) => value
}
} }
}, },
carLength: { carLength: {
@ -121,20 +126,12 @@ export class VehicleComponentsListComponent implements OnInit {
ui: { ui: {
widget: 'dict-select', widget: 'dict-select',
params: { dictKey: 'car:length' }, params: { dictKey: 'car:length' },
containsAllLabel: true, containsAllLabel: true
visibleIf: {
expand: (value: boolean) => value
}
} }
}, },
carLoad: { carLoad: {
title: '载重', title: '载重',
type: 'string', type: 'string'
ui: {
visibleIf: {
expand: (value: boolean) => value
}
}
}, },
isSelf: { isSelf: {
type: 'string', type: 'string',
@ -145,10 +142,7 @@ export class VehicleComponentsListComponent implements OnInit {
], ],
ui: { ui: {
widget: 'select', widget: 'select',
allowClear: true, allowClear: true
visibleIf: {
expand: (value: boolean) => value
}
} }
}, },
driverLicenseStatus: { driverLicenseStatus: {
@ -162,10 +156,7 @@ export class VehicleComponentsListComponent implements OnInit {
default: '', default: '',
ui: { ui: {
widget: 'select', widget: 'select',
allowClear: true, allowClear: true
visibleIf: {
expand: (value: boolean) => value
}
} }
}, },
roadTransportStatus: { roadTransportStatus: {
@ -178,12 +169,9 @@ export class VehicleComponentsListComponent implements OnInit {
], ],
ui: { ui: {
widget: 'select', widget: 'select',
allowClear: true, allowClear: true
visibleIf: {
expand: (value: boolean) => value
}
} }
}, }
// isSelfs: { // isSelfs: {
// type: 'string', // type: 'string',
// title: '是否入网', // title: '是否入网',
@ -216,7 +204,6 @@ export class VehicleComponentsListComponent implements OnInit {
// }, // },
} }
}; };
this.ui = { '*': { spanLabelFixed: 130, grid: { span: 8, gutter: 4 }, enter: () => this.st.load() } };
} }
initST() { initST() {
@ -292,20 +279,9 @@ export class VehicleComponentsListComponent implements OnInit {
} }
]; ];
} }
expandToggle() {
this._$expand = !this._$expand;
this.sf?.setValue('/expand', this._$expand);
}
creat() { creat() {
this.router.navigate(['./new'], { relativeTo: this.ar }); this.router.navigate(['./new'], { relativeTo: this.ar });
} }
/**
* 重置表单
*/
resetSF() {
this.sf.reset();
this._$expand = false;
}
// 导出 // 导出
exportFire() { exportFire() {
let params = Object.assign({}, this.reqParams || {}); let params = Object.assign({}, this.reqParams || {});