Merge branch 'develop'

This commit is contained in:
wangshiming
2022-05-06 15:31:19 +08:00
80 changed files with 1817 additions and 2126 deletions

View File

@ -4,7 +4,7 @@
* @Author : Shiming
* @Date : 2022-01-18 09:51:21
* @LastEditors : Shiming
* @LastEditTime : 2022-05-05 15:22:17
* @LastEditTime : 2022-05-06 15:29:21
* @FilePath : \\tms-obc-web\\proxy.conf.js
* Copyright (C) 2022 huzhenhong. All rights reserved.
*/

View File

@ -15,7 +15,8 @@ const alainConfig: AlainConfig = {
req: { method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' } },
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 },
modal: { size: 'lg' }
modal: { size: 'lg' },
ps: 20
},
sf: { button: { search: '查询' } },
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/data-set/0.11.7/dist/data-set.js'
]
},
}
};
const alainModules = [AlainThemeModule.forRoot(), DelonACLModule.forRoot()];

View File

@ -4,6 +4,23 @@ import { SearchDrawerService } from '@shared';
import { fromEvent, Subscription } from 'rxjs';
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({
template: ''
})

View File

@ -77,8 +77,10 @@ export class DatatableDataindexComponent implements OnInit {
// 订单类型比例
this.service.request(this.service.$api_getBillTypeProportion).subscribe(res => {
if (res) {
this.billTypeDatas = this.formatCoordinateData(res);
this.initBillChart(this.g2custom['el'].nativeElement as any);
const billTypeDatas2 = this.formatCoordinateData(res);
console.log(billTypeDatas2);
this.initBillChart(this.g2custom['el'].nativeElement as any,billTypeDatas2);
}
});
// 大区业绩完成情况
@ -98,6 +100,8 @@ export class DatatableDataindexComponent implements OnInit {
this.service.request(this.service.$api_getWayBillDirectProportion).subscribe(res => {
if (res) {
const billTypeDatas = this.formatCoordinateData(res.map((item: any) => ({ ...item, billType: item.wayBillType })));
console.log(billTypeDatas);
this.initBillChart(this.BillDirectProportion['el'].nativeElement as any, billTypeDatas);
}
});
@ -141,7 +145,7 @@ export class DatatableDataindexComponent implements OnInit {
chart.scale('percent', {
formatter: val => {
val = val * 100 + '%';
val = (val * 100 ).toFixed(0)+ '%';
return val;
}
});
@ -198,7 +202,7 @@ export class DatatableDataindexComponent implements OnInit {
.label('percent', percent => {
return {
content: data => {
return ` ${percent * 100}%`;
return (percent * 100).toFixed(0)+`%`;
},
style: { fontSize: 14 }
};
@ -498,6 +502,8 @@ export class DatatableDataindexComponent implements OnInit {
percent: Number((item.quantity / total).toFixed(2))
});
});
console.log(rs);
return rs;
}

View File

@ -1,9 +1,8 @@
import { Component, OnInit, ViewChild } from '@angular/core';
import { Router } from '@angular/router';
import { STComponent, STColumn, STRequestOptions, STChange } from '@delon/abc/st';
import { SFComponent, SFSchema, SFDateWidgetSchema } from '@delon/form';
import { SFSchema, SFDateWidgetSchema } from '@delon/form';
import { SearchDrawerService } from '@shared';
import { NzModalService } from 'ng-zorro-antd/modal';
import { BasicTableComponent } from 'src/app/routes/commom';
import { FreightAccountService } from '../../services/freight-account.service';
@ -12,7 +11,7 @@ import { FreightAccountService } from '../../services/freight-account.service';
templateUrl: './voucher-management.component.html',
styleUrls: ['../../../commom/less/commom-table.less']
})
export class VoucherManagementComponent extends BasicTableComponent implements OnInit {
export class VoucherManagementComponent extends BasicTableComponent {
@ViewChild('st', { static: true })
st!: STComponent;
@ViewChild('auditModal', { static: false })
@ -25,8 +24,6 @@ export class VoucherManagementComponent extends BasicTableComponent implements O
super(searchDrawerService);
}
ngOnInit(): void {}
search() {
this.st?.load(1);
}

View File

@ -236,7 +236,9 @@ export class WithdrawalsDetailComponent implements OnInit {
width: 140
},
{ title: '运费明细', render: 'amountDetails', className: 'text-right', width: 150 },
{ title: '网络货运人', index: 'ltdName', className: 'text-left', width: 200 },
{ title: '货主', index: 'enterpriseInfoName', className: 'text-left', width: 200 },
{ title: '项目名称', index: 'enterpriseProjectName', className: 'text-left', width: 200 },
{ title: '订单号', render: 'billId', width: 200 },
{ title: '运单号', render: 'wayBillId', width: 200 },
{ title: '货源编号', index: 'resourceCode', width: 200 },

View File

@ -66,8 +66,10 @@
<a *ngIf="totalCallNo > 0" (click)="st.clearCheck();totalCallNo=0" class="ml-lg">清空</a>
</div>
<button nz-button nzDanger [nzLoading]="service.http.loading" (click)="openDrawer()">筛选</button>
<button nz-button nzDanger (click)="exprot()"> 导出</button>
<button nz-button (click)="this.auditAction(null)">审核</button>
<button nz-button nzDanger (click)="exprot()" acl [acl-ability]="['FINANCIAL-WITHDRAWALS-export']">
导出</button>
<button nz-button (click)="this.auditAction(null)" acl
[acl-ability]="['FINANCIAL-WITHDRAWALS-audit']">审核</button>
</div>
</ng-template>

View File

@ -1,7 +1,7 @@
import { Component, ViewChild } from '@angular/core';
import { Router } from '@angular/router';
import { STComponent, STColumn, STChange, STRequestOptions } from '@delon/abc/st';
import { SFComponent, SFSchema, SFDateWidgetSchema } from '@delon/form';
import { SFSchema, SFDateWidgetSchema } from '@delon/form';
import { SearchDrawerService } from '@shared';
import { NzModalService } from 'ng-zorro-antd/modal';
import { BasicTableComponent } from 'src/app/routes/commom';
@ -48,7 +48,7 @@ export class WithdrawalsRecordComponent extends BasicTableComponent {
createTime: {
start: this.sf?.value.createTime?.[0] || '',
end: this.sf?.value.createTime?.[1] || ''
},
}
});
}
delete requestOptions?.body?.expand;
@ -187,13 +187,13 @@ export class WithdrawalsRecordComponent extends BasicTableComponent {
type: 'string',
title: '账户类型',
enum: [
{label: '全部', value: ''},
{label: '个人合伙人', value: '4'},
{label: '企业合伙人', value: '5'}
{ label: '全部', value: '' },
{ label: '个人合伙人', value: '4' },
{ label: '企业合伙人', value: '5' }
],
ui: {
widget: 'select',
placeholder: '请选择',
placeholder: '请选择'
}
},
ltdId: {

View File

@ -9,25 +9,9 @@
* Copyright (C) 2022 huzhenhong. All rights reserved.
-->
<!-- 搜索表单 -->
<page-header-wrapper [title]="''"> </page-header-wrapper>
<!-- <page-header-wrapper [title]="''"> </page-header-wrapper>
<nz-card>
<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"
[loading]="false"
(formSubmit)="st?.load(1)"
(formReset)="resetSF()"
></sf>
</div>
<!-- 查询字段大于3个时根据展开状态调整布局 -->
<ng-container *ngIf="queryFieldCount > 4">
<div nz-col [nzSpan]="_$expand ? 24 : 18">
<sf #sf [schema]="schema" [ui]="ui" [compact]="true" [button]="'none'"></sf>
</div>
@ -40,94 +24,90 @@
<i nz-icon [nzType]="!_$expand ? 'down' : 'up'"></i>
</button>
</div>
</ng-container>
</div>
</nz-card>
</nz-card> -->
<nz-card>
<nz-tabset (nzSelectedIndexChange)="selectChange($event)" [nzTabBarExtraContent]="extraTemplate">
<nz-tab [nzTitle]="'全部(' + tabs?.totalCount + ')'"></nz-tab>
<nz-tab [nzTitle]="'待投保(' + tabs?.receivedQuantity + ')'"></nz-tab>
<nz-tab [nzTitle]="'已投保(' + tabs?.stayQuantity + ')'"></nz-tab>
<nz-tab [nzTitle]="'投保失败(' + tabs?.GoingQuantity + ')'"></nz-tab>
<nz-tab [nzTitle]="'取消(' + tabs?.cancelQuantity + ')'"></nz-tab>
</nz-tabset>
<div style="margin-top: 15px">
<st
#st
[bordered]="true"
[scroll]="{ x: '2000px' }"
[data]="service.$api_premiumInfo_list"
[columns]="columns"
[req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, params: reqParams }"
[res]="{ reName: { list: 'data.records', total: 'data.total' } }"
[page]="{ show: true, showSize: true, pageSizes: [10, 20, 30, 50, 100, 200, 300, 500, 1000] }"
[loading]="false"
>
<ng-template st-row="resourceCode" let-item let-index="index">
{{ item.resourceCode | currency }}
</ng-template>
<ng-template st-row="practicalPremium" let-item let-index="index">
{{ item.practicalPremium | currency }}
</ng-template>
<ng-template st-row="insureAmount" let-item let-index="index">
{{ item.insureAmount | currency }}
</ng-template>
<ng-template st-row="premium" let-item let-index="index">
{{ item.premium | currency }}
</ng-template>
<ng-template st-row="processMessage" let-item let-index="index">
{{ item.processResult == '2' ? item.processMessage : '' }}
</ng-template>
<ng-template st-row="driverName" let-item let-index="index">
<div> {{ item?.driverName }}/{{ item?.driverTelephone }}/{{ item?.carNo }} </div>
</ng-template>
<ng-template st-row="distance" let-item let-index="index">
<div>
{{ item?.distance ? ((item?.distance)/1000).toFixed(4) + '公里' : '' }}
</div>
</ng-template>
<ng-template st-row="goodsNumber" let-item let-index="index">
<div>
{{ item?.billCode }}
</div>
</ng-template>
<ng-template st-row="resourceCode" let-item let-index="index">
<div>
{{ item?.resourceCode }}
</div>
<div>
{{ item?.resourceStatusLabel }}
</div>
</ng-template>
<ng-template st-row="insureCode" let-item let-index="index">
<div>{{ item.insureCode }}</div>
<div>
<span>{{ item?.insureStatusLabel }}</span>
</div>
</ng-template>
<ng-template st-row="goodsName" let-item let-index="index">
<div>{{ item?.goodsInfoName }}</div>
<div>
<span>{{ item?.weight ? item?.weight + '吨/' : '' }}</span>
<span>{{ item?.volume ? item?.volume + '方' : '' }}</span>
<span>{{ item?.number ? item?.number + '件' : '' }}</span>
</div>
</ng-template>
<ng-template st-row="mybidDetailInfo" let-item let-index="index">
<div *ngIf="item.mybidDetailInfo?.length > 0">
<p *ngFor="let data of item.mybidDetailInfo">
{{ data.expenseName }}{{ data.price | currency }}
<span *ngIf="data.paymentStatusLabel" style="color: #f59a63">{{ data.paymentStatusLabel }}</span>
</p>
</div>
</ng-template>
</st>
<nz-card class="table-box">
<div class="tab_header">
<label class="page_title"> <label class="driver">|</label> 保险列表</label>
<nz-tabset (nzSelectedIndexChange)="selectChange($event)" [nzTabBarExtraContent]="extraTemplate">
<nz-tab [nzTitle]="'全部(' + tabs?.totalCount + ')'"></nz-tab>
<nz-tab [nzTitle]="'投保(' + tabs?.receivedQuantity + ')'"></nz-tab>
<nz-tab [nzTitle]="'投保(' + tabs?.stayQuantity + ')'"></nz-tab>
<nz-tab [nzTitle]="'投保失败(' + tabs?.GoingQuantity + ')'"></nz-tab>
<nz-tab [nzTitle]="'已取消(' + tabs?.cancelQuantity + ')'"></nz-tab>
</nz-tabset>
</div>
<st #st [bordered]="true" [scroll]="{ x: '2000px',y:scrollY }" [data]="service.$api_premiumInfo_list"
[columns]="columns" [req]="{ params: reqParams }" [page]="{ }" [loading]="false">
<ng-template st-row="resourceCode" let-item let-index="index">
{{ item.resourceCode | currency }}
</ng-template>
<ng-template st-row="practicalPremium" let-item let-index="index">
{{ item.practicalPremium | currency }}
</ng-template>
<ng-template st-row="insureAmount" let-item let-index="index">
{{ item.insureAmount | currency }}
</ng-template>
<ng-template st-row="premium" let-item let-index="index">
{{ item.premium | currency }}
</ng-template>
<ng-template st-row="processMessage" let-item let-index="index">
{{ item.processResult == '2' ? item.processMessage : '' }}
</ng-template>
<ng-template st-row="driverName" let-item let-index="index">
<div> {{ item?.driverName }}/{{ item?.driverTelephone }}/{{ item?.carNo }} </div>
</ng-template>
<ng-template st-row="distance" let-item let-index="index">
<div>
{{ item?.distance ? ((item?.distance)/1000).toFixed(4) + '公里' : '' }}
</div>
</ng-template>
<ng-template st-row="goodsNumber" let-item let-index="index">
<div>
{{ item?.billCode }}
</div>
</ng-template>
<ng-template st-row="resourceCode" let-item let-index="index">
<div>
{{ item?.resourceCode }}
</div>
<div>
{{ item?.resourceStatusLabel }}
</div>
</ng-template>
<ng-template st-row="insureCode" let-item let-index="index">
<div>{{ item.insureCode }}</div>
<div>
<span>{{ item?.insureStatusLabel }}</span>
</div>
</ng-template>
<ng-template st-row="goodsName" let-item let-index="index">
<div>{{ item?.goodsInfoName }}</div>
<div>
<span>{{ item?.weight ? item?.weight + '吨/' : '' }}</span>
<span>{{ item?.volume ? item?.volume + '方' : '' }}</span>
<span>{{ item?.number ? item?.number + '件' : '' }}</span>
</div>
</ng-template>
<ng-template st-row="mybidDetailInfo" let-item let-index="index">
<div *ngIf="item.mybidDetailInfo?.length > 0">
<p *ngFor="let data of item.mybidDetailInfo">
{{ data.expenseName }}{{ data.price | currency }}
<span *ngIf="data.paymentStatusLabel" style="color: #f59a63">{{ data.paymentStatusLabel }}</span>
</p>
</div>
</ng-template>
</st>
</nz-card>
<ng-template #extraTemplate>
<div>
<button nz-button nzType="primary" (click)="changeOrder()" acl [acl-ability]="['INSURANCE-LIST-insuranceConfig']"> 保险配置 </button>
<div class="mr-sm">
<button nz-button nzDanger [nzLoading]="service.http.loading" (click)="openDrawer()" acl
[acl-ability]="['INSURANCE-LIST-search']">筛选</button>
<button nz-button nzDanger acl [acl-ability]="['INSURANCE-LIST-export']" (click)="exprot()"> 导出</button>
<button nz-button nzType="primary" (click)="changeOrder()" acl [acl-ability]="['INSURANCE-LIST-insuranceConfig']">
保险配置 </button>
</div>
</ng-template>
</ng-template>

View File

@ -1,13 +0,0 @@
:host {
p{
margin-bottom: 0
}
.left_btn {
width: 50px;
height: 32px;
padding-left: 8px;
line-height:32px;
background-color: #d7d7d7;
}
}

View File

@ -1,35 +0,0 @@
/*
* @Description :
* @Version : 1.0
* @Author : Shiming
* @Date : 2021-12-06 20:03:28
* @LastEditors : Shiming
* @LastEditTime : 2022-01-25 17:22:11
* @FilePath : \\tms-obc-web\\src\\app\\routes\\insurance-management\\components\\list\\list.component.spec.ts
* Copyright (C) 2022 huzhenhong. All rights reserved.
*/
import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing';
import { insuranceManagementListComponent } from './list.component';
describe('insuranceManagementListComponent', () => {
let component: insuranceManagementListComponent;
let fixture: ComponentFixture<insuranceManagementListComponent>;
beforeEach(waitForAsync(() => {
TestBed.configureTestingModule({
declarations: [ insuranceManagementListComponent ]
})
.compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(insuranceManagementListComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});

View File

@ -5,31 +5,26 @@ import { ModalHelper, _HttpClient } from '@delon/theme';
import { NzModalService } from 'ng-zorro-antd/modal';
import { map } from 'rxjs/operators';
import { of } from 'rxjs';
import { ShipperBaseService } from '@shared';
import { SearchDrawerService, ShipperBaseService } from '@shared';
import { Router } from '@angular/router';
import { InsuranceManagementService } from '../../services/insurance-management.service';
import { VehicleImgViewComponent } from 'src/app/routes/vehicle/components/list/img-view/img-view.component';
import { ImageViewComponent } from 'src/app/shared/components/imagelist';
import { BasicTableComponent } from 'src/app/routes/commom';
@Component({
selector: 'app-insurance-management-list',
templateUrl: './list.component.html',
styleUrls: ['./list.component.less']
styleUrls: ['../../../commom/less/commom-table.less']
})
export class insuranceManagementListComponent implements OnInit {
ui: SFUISchema = {};
export class insuranceManagementListComponent extends BasicTableComponent implements OnInit {
uiView: SFUISchema = {};
schema: SFSchema = {};
schemaView: SFSchema = {};
auditMany = false;
isVisibleView = false;
isVisibleEvaluate = false;
isVisible = false;
_$expand = false;
@ViewChild('st') private readonly st!: STComponent;
@ViewChild('stFloat') private readonly stFloat!: STComponent;
@ViewChild('stFloatView') private readonly stFloatView!: STComponent;
@ViewChild('sf', { static: false }) sf!: SFComponent;
@ViewChild('sfFre', { static: false }) sfFre!: SFComponent;
@ViewChild('sfView', { static: false }) sfView!: SFComponent;
columns: STColumn[] = [];
@ -63,8 +58,10 @@ export class insuranceManagementListComponent implements OnInit {
private modal: NzModalService,
public shipperservice: ShipperBaseService,
private router: Router,
private modale: ModalHelper,
) { }
public searchDrawerService: SearchDrawerService
) {
super(searchDrawerService);
}
/**
* 查询参数
@ -90,7 +87,7 @@ export class insuranceManagementListComponent implements OnInit {
insureTime: {
start: this.sf?.value?.insureTime?.[0] || '',
end: this.sf?.value?.insureTime?.[1] || ''
},
}
};
}
get selectedRows() {
@ -164,11 +161,7 @@ export class insuranceManagementListComponent implements OnInit {
policyNo: {
type: 'string',
title: '保单号',
ui: {
visibleIf: {
_$expand: (value: boolean) => value
},
}
ui: {}
},
insureType: {
title: '类型',
@ -176,29 +169,18 @@ export class insuranceManagementListComponent implements OnInit {
ui: {
widget: 'dict-select',
params: { dictKey: 'insure:type' },
containsAllLabel: true,
visibleIf: {
_$expand: (value: boolean) => value
}
containsAllLabel: true
} as SFSelectWidgetSchema
},
startAddress: {
type: 'string',
title: '始发地',
ui: {
visibleIf: {
_$expand: (value: boolean) => value
}
}
ui: {}
},
endAddress: {
type: 'string',
title: '目的地',
ui: {
visibleIf: {
_$expand: (value: boolean) => value
}
}
ui: {}
},
shipperAppUserId: {
type: 'string',
@ -209,11 +191,8 @@ export class insuranceManagementListComponent implements OnInit {
searchDebounceTime: 300,
searchLoadingText: '搜索中...',
allowClear: true,
visibleIf: {
_$expand: (value: boolean) => value
},
onSearch: (q: any) => {
let str =q.replace(/^\s+|\s+$/g,"");
let str = q.replace(/^\s+|\s+$/g, '');
if (str) {
return this.service
.request(this.service.$api_enterpriceList, { enterpriseName: str })
@ -233,30 +212,19 @@ export class insuranceManagementListComponent implements OnInit {
title: '所属项目',
ui: {
widget: 'select',
placeholder: '请先选择货主',
visibleIf: {
_$expand: (value: boolean) => value
},
placeholder: '请先选择货主'
} as SFSelectWidgetSchema
},
driverName: {
title: '承运司机',
type: 'string',
ui: {
visibleIf: {
_$expand: (value: boolean) => value
}
}
ui: {}
},
carNo: {
title: '车牌号',
type: 'string',
ui: {
visibleIf: {
_$expand: (value: boolean) => value
}
}
ui: {}
},
insureStatus: {
title: '投保状态',
@ -264,10 +232,7 @@ export class insuranceManagementListComponent implements OnInit {
ui: {
widget: 'dict-select',
params: { dictKey: 'insure:status' },
containsAllLabel: true,
visibleIf: {
_$expand: (value: boolean) => value
}
containsAllLabel: true
} as SFSelectWidgetSchema
},
insureRefundStatus: {
@ -276,10 +241,7 @@ export class insuranceManagementListComponent implements OnInit {
ui: {
widget: 'dict-select',
params: { dictKey: 'insure:refund:status' },
containsAllLable: true,
visibleIf: {
_$expand: (value: boolean) => value
}
containsAllLable: true
} as SFSelectWidgetSchema
},
enterpriseInfoId: {
@ -289,9 +251,6 @@ export class insuranceManagementListComponent implements OnInit {
widget: 'select',
placeholder: '请选择',
allowClear: true,
visibleIf: {
_$expand: (value: boolean) => value
},
asyncData: () => this.shipperservice.getNetworkFreightForwarder()
}
},
@ -302,10 +261,7 @@ export class insuranceManagementListComponent implements OnInit {
widget: 'date',
mode: 'range',
format: 'yyyy-MM-dd',
allowClear: true,
visibleIf: {
_$expand: (value: boolean) => value
}
allowClear: true
} as SFDateWidgetSchema
},
createTime: {
@ -315,10 +271,7 @@ export class insuranceManagementListComponent implements OnInit {
widget: 'date',
mode: 'range',
format: 'yyyy-MM-dd',
allowClear: true,
visibleIf: {
_$expand: (value: boolean) => value
}
allowClear: true
} as SFDateWidgetSchema
},
recordTime: {
@ -328,17 +281,12 @@ export class insuranceManagementListComponent implements OnInit {
widget: 'date',
mode: 'range',
format: 'yyyy-MM-dd',
allowClear: true,
visibleIf: {
_$expand: (value: boolean) => value
}
allowClear: true
} as SFDateWidgetSchema
},
}
},
type: 'object'
};
this.ui = { '*': { spanLabelFixed: 110, grid: { span: 8, gutter: 4 } } };
}
// 获取城市列表
getRegionCode(regionCode: any) {
@ -462,14 +410,14 @@ export class insuranceManagementListComponent implements OnInit {
title: '失败原因',
width: '180px',
className: 'text-left',
render: 'processMessage',
render: 'processMessage'
// processResult=2
},
{
title: '退款状态',
width: '180px',
className: 'text-left',
index: 'insureRefundStatusLabel',
index: 'insureRefundStatusLabel'
// processResult=2
},
{
@ -481,7 +429,7 @@ export class insuranceManagementListComponent implements OnInit {
{
text: '查看保单',
click: _record => this.showImg(_record),
iif: item => item.insureStatus == '2'
iif: item => item.insureStatus == '2'
// acl: { ability: ['VEHICLE-LIST-view'] },
// iif: item =>
// item.billStatus == '4' || item.billStatus == '5' || item.billStatus == '2' || item.billStatus == '3' || item.billStatus == '1'
@ -489,7 +437,7 @@ export class insuranceManagementListComponent implements OnInit {
{
text: '退保费',
click: _record => this.retreatPrice(_record),
iif: item => item.insureStatus == '2'
iif: item => item.insureStatus == '2'
// acl: { ability: ['VEHICLE-LIST-view'] },
}
]
@ -499,39 +447,18 @@ export class insuranceManagementListComponent implements OnInit {
showImg(_record: any) {
// var newUrl=_record.policyUrl.replace('http','https')
// console.log(newUrl);
// window.open(newUrl,'_self');
window.open(`${_record.newPolicyUrl}`);
// this.service.downloadFile(`${_record.newPolicyUrl}`)
// const params = {
// imgList: [_record.policyUrl],
// index: 0
// };
// this.modal.create({ nzContent: ImageViewComponent, nzComponentParams: { params } });
}
/**
* 查询字段个数
*/
get queryFieldCount(): number {
return Object.keys(this.schema?.properties || {}).length;
}
/**
* 伸缩查询条件
*/
expandToggle(): void {
this._$expand = !this._$expand;
this.sf?.setValue('/_$expand', this._$expand);
}
tabChange(item: any) { }
/**
* 重置表单
*/
resetSF(): void {
this.sf.reset();
this._$expand = false;
}
tabChange(item: any) {}
// 退保费
retreatPrice(value: any) {
@ -541,7 +468,7 @@ export class insuranceManagementListComponent implements OnInit {
nzContent: '退还后不可撤销,请谨慎操作!',
nzCancelText: '取消',
nzOnOk: () => {
this.service.request(this.service.$api_get_addINPBillRefundApplication, {id: value.id}).subscribe(res => {
this.service.request(this.service.$api_get_addINPBillRefundApplication, { id: value.id }).subscribe(res => {
if (res) {
this.service.msgSrv.success('删除菜单成功');
}

View File

@ -4,7 +4,7 @@
* @Author : Shiming
* @Date : 2021-12-24 16:58:02
* @LastEditors : Shiming
* @LastEditTime : 2022-04-21 15:33:31
* @LastEditTime : 2022-05-06 14:37:36
* @FilePath : \\tms-obc-web\\src\\app\\routes\\order-management\\components\\bulk-detail-change\\bulk-detail-change.component.html
* Copyright (C) 2022 huzhenhong. All rights reserved.
-->
@ -288,8 +288,14 @@
<div nz-col [nzSpan]="24">
<amap-path-simplifier [mapWidth]="'100%'" [mapHeight]="'600px'" [mapList]="mapList">
</amap-path-simplifier>
<st [scroll]="{ y: '350px' }" #st [data]="addressItems" [noResult]='"暂无停车信息"' [columns]="logColumns2" [ps]="0"
<st [scroll]="{ y: '350px' }" #st [data]="addressItems" [noResult]='fuck' [columns]="logColumns2" [ps]="0"
[page]="{ show: false, showSize: false }" size="small" class="map_st">
<ng-template #fuck>
<div>
<img class="mr-sm" [src]="'../../../../../assets/none.svg'" width="40" height="40" />
</div>
暂无停车信息
</ng-template>
</st>
<nz-radio-group [(ngModel)]="trajectory" (ngModelChange)="trajectoryChange($event)" class="map_radio">
<label nz-radio-button nzValue="car">车辆轨迹</label>

View File

@ -4,7 +4,7 @@
* @Author : Shiming
* @Date : 2021-12-06 20:20:26
* @LastEditors : Shiming
* @LastEditTime : 2022-05-06 10:02:52
* @LastEditTime : 2022-05-06 14:36:18
* @FilePath : \\tms-obc-web\\src\\app\\routes\\order-management\\components\\bulk-detail\\bulk-detail.component.html
* Copyright (C) 2022 huzhenhong. All rights reserved.
-->
@ -287,8 +287,14 @@
<div nz-col [nzSpan]="24">
<amap-path-simplifier [mapWidth]="'100%'" [mapHeight]="'600px'" [mapList]="mapList" [pois]="pois">
</amap-path-simplifier>
<st [scroll]="{ y: '350px' }" [noResult]='"暂无停车信息"' #st [data]="addressItems" [columns]="logColumns2" [ps]="0"
<st [scroll]="{ y: '350px' }" [noResult]='fuck' #st [data]="addressItems" [columns]="logColumns2" [ps]="0"
[page]="{ show: false, showSize: false }" size="small" class="map_st">
<ng-template #fuck>
<div>
<img class="mr-sm" [src]="'../../../../../assets/none.svg'" width="40" height="40" />
</div>
暂无停车信息
</ng-template>
</st>
<nz-radio-group [(ngModel)]="trajectory" (ngModelChange)="trajectoryChange($event)" class="map_radio">
<label nz-radio-button nzValue="car">车辆轨迹</label>

View File

@ -4,7 +4,7 @@
* @Author : Shiming
* @Date : 2021-12-23 13:39:58
* @LastEditors : Shiming
* @LastEditTime : 2022-04-21 15:33:42
* @LastEditTime : 2022-05-06 14:38:38
* @FilePath : \\tms-obc-web\\src\\app\\routes\\order-management\\components\\vehicle-detail-change\\vehicle-detail-change.component.html
* Copyright (C) 2022 huzhenhong. All rights reserved.
-->
@ -322,8 +322,14 @@
<div nz-col [nzSpan]="24">
<amap-path-simplifier [mapWidth]="'100%'" [mapHeight]="'600px'" [mapList]="mapList">
</amap-path-simplifier>
<st [scroll]="{ y: '350px' }" #st [data]="addressItems" [noResult]='"暂无停车信息"' [columns]="logColumns2" [ps]="0"
<st [scroll]="{ y: '350px' }" #st [data]="addressItems" [noResult]='fuck' [columns]="logColumns2" [ps]="0"
[page]="{ show: false, showSize: false }" size="small" class="map_st">
<ng-template #fuck>
<div>
<img class="mr-sm" [src]="'../../../../../assets/none.svg'" width="40" height="40" />
</div>
暂无停车信息
</ng-template>
</st>
<nz-radio-group [(ngModel)]="trajectory" (ngModelChange)="trajectoryChange($event)" class="map_radio">
<label nz-radio-button nzValue="car">车辆轨迹</label>

View File

@ -4,7 +4,7 @@
* @Author : Shiming
* @Date : 2021-12-28 14:42:03
* @LastEditors : Shiming
* @LastEditTime : 2022-04-22 16:27:43
* @LastEditTime : 2022-05-06 14:37:17
* @FilePath : \\tms-obc-web\\src\\app\\routes\\order-management\\components\\vehicle-detail\\vehicle-detail.component.html
* Copyright (C) 2022 huzhenhong. All rights reserved.
-->
@ -290,8 +290,14 @@
<div nz-col [nzSpan]="24">
<amap-path-simplifier [mapWidth]="'100%'" [mapHeight]="'600px'" [mapList]="mapList" [pois]="pois">
</amap-path-simplifier>
<st [scroll]="{ y: '350px' }" #st [data]="addressItems" [columns]="logColumns2" [noResult]='"暂无停车信息"' [ps]="0"
<st [scroll]="{ y: '350px' }" #st [data]="addressItems" [columns]="logColumns2" [noResult]='fuck' [ps]="0"
[page]="{ show: false, showSize: false }" size="small" class="map_st">
<ng-template #fuck>
<div>
<img class="mr-sm" [src]="'../../../../../assets/none.svg'" width="40" height="40" />
</div>
暂无停车信息
</ng-template>
</st>
<nz-radio-group [(ngModel)]="trajectory" (ngModelChange)="trajectoryChange($event)" class="map_radio">
<label nz-radio-button nzValue="car">车辆轨迹</label>

View File

@ -4,7 +4,7 @@
* @Author : Shiming
* @Date : 2022-02-22 13:53:29
* @LastEditors : Shiming
* @LastEditTime : 2022-04-22 16:27:40
* @LastEditTime : 2022-05-06 14:38:09
* @FilePath : \\tms-obc-web\\src\\app\\routes\\order-management\\modal\\vehicle\\view-track\\view-track.component.html
* Copyright (C) 2022 huzhenhong. All rights reserved.
-->
@ -12,8 +12,14 @@
<div nz-col [nzSpan]="24">
<amap-path-simplifier [mapWidth]="'100%'" [mapHeight]="'600px'" [mapList]="mapList" [pois]="pois">
</amap-path-simplifier>
<st [scroll]="{ y: '350px' }" #st [data]="addressItems" [noResult]='"暂无停车信息"' [columns]="logColumns2" [ps]="0"
<st [scroll]="{ y: '350px' }" #st [data]="addressItems" [noResult]='fuck' [columns]="logColumns2" [ps]="0"
[page]="{ show: false, showSize: false }" size="small" class="map_st">
<ng-template #fuck>
<div>
<img class="mr-sm" [src]="'../../../../../assets/none.svg'" width="40" height="40" />
</div>
暂无停车信息
</ng-template>
</st>
<nz-radio-group [(ngModel)]="trajectory" (ngModelChange)="trajectoryChange($event)" class="map_radio">
<label nz-radio-button nzValue="car">车辆轨迹</label>

View File

@ -1,3 +1,13 @@
<!--
* @Description :
* @Version : 1.0
* @Author : Shiming
* @Date : 2022-04-29 17:28:23
* @LastEditors : Shiming
* @LastEditTime : 2022-05-06 14:47:43
* @FilePath : \\tms-obc-web\\src\\app\\routes\\partner\\account-management\\components\\list\\list.component.html
* Copyright (C) 2022 huzhenhong. All rights reserved.
-->
<page-header-wrapper [title]="''"></page-header-wrapper>
<nz-card>
<!-- <div nz-row>
@ -19,15 +29,17 @@
[page]="{ show: true, showSize: true, pageSizes: [10, 20, 30, 50, 100, 200, 300, 500, 1000] }"
[loading]="service.http.loading" multiSort>
<ng-template st-row="allBalance" let-item>
<div class="text-right">{{item.allBalance | currency:' '}}</div>
<div class="text-right">{{item.allBalance | currency}}</div>
</ng-template>
<ng-template st-row="unEntryAmount" let-item>
<a class="text-right text-blue-dark"
[routerLink]="'/partner/account-management/am/recorded/detail/'+item?.roleId">{{item.unEntryAmount | currency:'
'}} acl [acl-ability]="['AM-LIST-unEntryAmount']"</a>
<a class="text-right text-blue-dark" acl [acl-ability]="['AM-LIST-unEntryAmount']"
[routerLink]="'/partner/account-management/am/recorded/detail/'+item?.roleId">{{item.unEntryAmount | currency}} </a>
</ng-template>
<ng-template st-row="availableBalance" let-item>
<div class="text-right">{{item.availableBalance | currency:' '}}</div>
<div class="text-right">{{item.availableBalance | currency}}</div>
</ng-template>
<ng-template st-row="allBalance" let-item>
<div class="text-right">{{item.allBalance | currency}}</div>
</ng-template>

View File

@ -62,13 +62,14 @@ export class PartnerAccountManagementListComponent implements OnInit {
{ title: '合伙人名称', index: 'name', className: 'text-center', width: 250 },
{ title: '手机号', index: 'phone', className: 'text-center', width: 200 },
{
title: '账户总额(元)', index: 'allBalance', className: 'text-right', sort: true, width: 150, type: 'currency',
title: '账户总额(元)', render: 'allBalance', className: 'text-right', width: 150,
},
// sort: true,
{
title: '待入账余额(元)', render: 'unEntryAmount', className: 'text-right', width: 200,
},
{
title: '待入账余额(元)', render: 'unEntryAmount', className: 'text-right', width: 150,
},
{
title: '可用余额(元)', index: 'availableBalance', className: 'text-right', sort: true, width: 150, type: 'currency'
title: '可用余额(元)', index: 'availableBalance', className: 'text-right', width: 150, type: 'currency'
},
{ title: '虚拟账户', index: 'virtualAccount', className: 'text-center', width: 220 },
{

View File

@ -1,3 +1,13 @@
<!--
* @Description :
* @Version : 1.0
* @Author : Shiming
* @Date : 2022-04-29 17:28:23
* @LastEditors : Shiming
* @LastEditTime : 2022-05-06 14:20:04
* @FilePath : \\tms-obc-web\\src\\app\\routes\\partner\\partner-list\\components\\index\\partner-list.component.html
* Copyright (C) 2022 huzhenhong. All rights reserved.
-->
<page-header-wrapper [title]="'合伙人列表'"> </page-header-wrapper>
<nz-card class="search-box" nzBordered>
@ -48,7 +58,7 @@
<div nz-row nzGutter="8">
<div nz-col nzSpan="24" se-container [labelWidth]="140" [col]="1">
<se label="合伙人名称"> {{selectItem?.enterpriseName || selectItem?.contactName}} </se>
<se label="当前渠道销售"> {{selectItem?.channelId}} </se>
<se label="当前渠道销售"> {{selectItem?.channelIdLabel}} </se>
<se label="渠道销售修改为" required>
<nz-select [(ngModel)]="cannelItem.channelId" style="width: 100%">
<nz-option [nzValue]="item.value" [nzLabel]="item.label" *ngFor="let item of cannels"></nz-option>

View File

@ -1,3 +1,4 @@
import { async } from '@angular/core/testing';
import { Component, ViewChild } from '@angular/core';
import { Router } from '@angular/router';
import { STComponent, STColumn, STRequestOptions, STChange } from '@delon/abc/st';
@ -55,6 +56,8 @@ export class PartnerListComponent {
loadSelectOptions() {
this.service.getRebateConfig().subscribe(res => {
if (res) {
console.log(res);
this.customers = res;
}
});
@ -283,8 +286,10 @@ export class PartnerListComponent {
title: '认证审核状态',
enum: [
{ value: '', label: '全部' },
{ value: 1, label: '企业' },
{ value: 2, label: '个人' }
{ value: '-1', label: '未提交' },
{ value: 10, label: '待审核' },
{ value: 20, label: '审核通过' },
{ value: 30, label: '认证驳回' }
],
ui: {
widget: 'select',
@ -297,10 +302,16 @@ export class PartnerListComponent {
signStatus: {
type: 'string',
title: '签约状态',
enum: [
{ value: '', label: '全部' },
{ value: '0', label: '未签约' },
{ value: 10, label: '待合伙人签约' },
{ value: 15, label: '签约中' },
{ value: 20, label: '已签约' },
{ value: 30, label: '签约失败' }
],
ui: {
widget: 'dict-select',
containsAllLabel: true,
params: { dictKey: 'pay:mode' },
widget: 'select',
placeholder: '请选择',
visibleIf: {
expand: (value: boolean) => value
@ -310,10 +321,14 @@ export class PartnerListComponent {
crmStatus: {
type: 'string',
title: 'CRM状态',
enum: [
{ value: '', label: '全部' },
{ value: '0', label: '未同步' },
{ value: 10, label: '同步失败' },
{ value: 20, label: '同步成功' },
],
ui: {
widget: 'dict-select',
containsAllLabel: true,
params: { dictKey: 'pay:mode' },
widget: 'select',
placeholder: '请选择',
visibleIf: {
expand: (value: boolean) => value
@ -343,6 +358,7 @@ export class PartnerListComponent {
ui: {
widget: 'select',
placeholder: '请选择',
// async:
visibleIf: {
expand: (value: boolean) => value
}
@ -415,11 +431,11 @@ export class PartnerListComponent {
width: 150,
type: 'badge',
badge: {
0: { text: '未发起', color: 'default' },
0: { text: '未签约', color: 'default' },
10: { text: '待合伙人签约', color: 'default' },
15: { text: '签约中', color: 'processing' },
20: { text: '平台签约完成', color: 'success' },
30: { text: '驳回', color: 'error' }
20: { text: '已签约', color: 'success' },
30: { text: '签约失败', color: 'error' }
}
},
{
@ -428,9 +444,9 @@ export class PartnerListComponent {
width: 150,
type: 'badge',
badge: {
0: { text: '未发起', color: 'default' },
10: { text: '审核失败', color: 'error' },
20: { text: '审核通过', color: 'success' }
0: { text: '未同步', color: 'default' },
10: { text: '同步失败', color: 'error' },
20: { text: '同步成功', color: 'success' }
}
},
{

View File

@ -1,5 +1,5 @@
<div>
<sf #sf [ui]="{ '*': { spanLabelFixed: 120, grid: { span: 24 }}}" [schema]="schema" [button]="'none'"></sf>
<sf #sf [ui]="{ '*': { spanLabelFixed: 120, grid: { span: 24 }}}" [schema]="schema" [formData]="formData" [button]="'none'"></sf>
</div>
<div class="modal-footer">
<button nz-button type="button" (click)="close()">取消</button>

View File

@ -15,11 +15,30 @@ export class PartnerAuditModalComponent implements OnInit {
@Input()
info: any;
schema!: SFSchema;
formData: any;
sourcePage = '';
constructor(private nzModalService: NzModalService, public service: PartnerListService, private modal: NzModalRef) {}
ngOnInit(): void {
console.log(this.info);
this.initSF(this.info);
if(this.info.channelId) {
const value = [{
label: this.info.channelIdLabel,
value: this.info.channelId,
}]
setTimeout(() => {
if(this.sf) {
console.log('888');
// this.sf.getProperty('/channelId')!.schema.enum = value;
// this.sf.getProperty('/channelId')!.widget.reset(value);
this.sf.setValue('/channelId', this.info.channelId);
}
})
}
}
initSF(user: any) {
@ -30,13 +49,13 @@ export class PartnerAuditModalComponent implements OnInit {
ui: {
hidden: true
},
default: this.info.isPass
// default: this.info.isPass
},
staffName: {
title: '合伙人名称',
type: 'string',
ui: { widget: 'text' },
default: user.enterpriseName
// default: user.enterpriseName
},
status: {
title: '审核结果',
@ -68,7 +87,7 @@ export class PartnerAuditModalComponent implements OnInit {
required: ' '
}
},
default: ''
default: user.channelId
},
approvalOpinion: {
title: '备注',
@ -90,6 +109,8 @@ export class PartnerAuditModalComponent implements OnInit {
},
required: ['channelId', 'approvalOpinion']
};
console.log('666');
}
sure() {

View File

@ -1,17 +1,5 @@
<!--
* @Description :
* @Version : 1.0
* @Author : Shiming
* @Date : 2022-03-30 14:00:43
* @LastEditors : Shiming
* @LastEditTime : 2022-03-31 10:31:40
* @FilePath : \\tms-obc-web\\src\\app\\routes\\tax-management\\components\\individual-collect\\individual-collect.component.html
* Copyright (C) 2022 huzhenhong. All rights reserved.
-->
<page-header-wrapper [title]="''"></page-header-wrapper>
<!-- <page-header-wrapper [title]="''"></page-header-wrapper>
<nz-card class="search-box">
<!-- 搜索表单 -->
<div nz-row nzGutter="8">
<div nz-col [nzSpan]="_$expand ? 24 : 18">
<sf #sf [schema]="schema" [ui]="{ '*': { spanLabelFixed: 100,grid: { lg: 8, md: 12, sm: 12, xs: 24 } }}"
@ -28,13 +16,18 @@
</button>
</div>
</div>
</nz-card>
<nz-card class="content-box">
<nz-tabset [nzTabBarExtraContent]="extraTemplate" *ngIf="tabs.length > 0">
<nz-tab *ngFor="let tab of tabs" [nzTitle]="tab.name" (nzSelect)="selectChange(tab)"> </nz-tab>
</nz-tabset>
</nz-card> -->
<nz-card class="table-box">
<div class="tab_header">
<label class="page_title"> <label class="driver">|</label> 个税汇总</label>
<nz-tabset [nzTabBarExtraContent]="extraTemplate">
<nz-tab *ngFor="let tab of tabs" [nzTitle]="tab.name" (nzSelect)="selectChange(tab)"> </nz-tab>
</nz-tabset>
</div>
<!-- 数据列表 -->
<st #st [scroll]="{ x: '1200px',y:'450px' }" [data]="service.$api_get_individual_collect_page" [columns]="columns"
<st #st [scroll]="{ x: '1200px',y:scrollY }" [data]="service.$api_get_individual_collect_page" [columns]="columns"
[req]="{ params: reqParams }" [page]="{ }" [loading]="false" (change)="stChange($event)">
</st>
</nz-card>
@ -44,8 +37,23 @@
已选择
<strong class="text-red">{{ selectedRows.length }}</strong> 条数据
</div>
<button nz-button nzType="primary" (click)="upload()" acl [acl-ability]="['TAX-COLLECT-report']">申报</button>
<button nz-button nzType="primary" (click)="recall()" acl [acl-ability]="['TAX-COLLECT-change']">更正</button>
<button nz-button nzType="primary" (click)="uploadSetting()" acl [acl-ability]="['TAX-COLLECT-resetData']">更新数据</button>
<button nz-button nzDanger [nzLoading]="service.http.loading" acl [acl-ability]="['TAX-COLLECT-search']"
(click)="openDrawer()">筛选</button>
<button nz-button nzDanger acl [acl-ability]="['TAX-COLLECT-export']"> 导出</button>
<button nz-button nz-dropdown [nzDropdownMenu]="menu" nzPlacement="bottomLeft">
更多<i nz-icon nzType="down" nzTheme="outline"></i></button>
<nz-dropdown-menu #menu="nzDropdownMenu">
<ul nz-menu>
<li nz-menu-item (click)="upload()" acl [acl-ability]="['TAX-COLLECT-report']">
申报
</li>
<li nz-menu-item (click)="recall()" acl [acl-ability]="['TAX-COLLECT-change']">
更正
</li>
<li nz-menu-item (click)="uploadSetting()" acl [acl-ability]="['TAX-COLLECT-resetData']">
更新数据
</li>
</ul>
</nz-dropdown-menu>
</div>
</ng-template>

View File

@ -2,20 +2,19 @@ import { Component, OnInit, ViewChild } from '@angular/core';
import { ActivatedRoute, Router } from '@angular/router';
import { STChange, STColumn, STComponent, STData } from '@delon/abc/st';
import { SFComponent, SFDateWidgetSchema, SFSchema, SFSchemaEnum, SFSelectWidgetSchema, SFUISchema } from '@delon/form';
import { SearchDrawerService } from '@shared';
import { NzModalService } from 'ng-zorro-antd/modal';
import { BasicTableComponent } from 'src/app/routes/commom';
import { TaxManagementService } from '../../services/tax-management.service';
@Component({
selector: 'app-tax-management-individual-collect',
templateUrl: './individual-collect.component.html',
styleUrls: ['../../../commom/less/box.less']
styleUrls: ['../../../commom/less/commom-table.less']
})
export class TaxManagementIndividualCollectComponent implements OnInit {
_$expand = false;
schema!: SFSchema;
export class TaxManagementIndividualCollectComponent extends BasicTableComponent implements OnInit {
columns!: STColumn[];
@ViewChild('st', { static: false }) st!: STComponent;
@ViewChild('sf', { static: false }) sf!: SFComponent;
tabs: any[] = [
{ name: '待申报', value: '0' },
{ name: '待审核', value: '1' },
@ -26,7 +25,9 @@ export class TaxManagementIndividualCollectComponent implements OnInit {
selectedIndex = '0';
selectedRows: any[] = [];
constructor(public service: TaxManagementService, private router: Router, private ar: ActivatedRoute, private modal: NzModalService) {}
constructor(public service: TaxManagementService, public searchDrawerService: SearchDrawerService) {
super(searchDrawerService);
}
/**
* 查询参数
@ -39,14 +40,6 @@ export class TaxManagementIndividualCollectComponent implements OnInit {
return { ...params };
}
/**
* 伸缩查询条件
*/
expandToggle() {
this._$expand = !this._$expand;
this.sf?.setValue('/_$expand', this._$expand);
}
stChange(e: STChange): void {
switch (e.type) {
case 'checkbox':
@ -55,13 +48,6 @@ export class TaxManagementIndividualCollectComponent implements OnInit {
}
}
/**
* 重置表单
*/
resetSF() {
this.sf.reset();
this._$expand = false;
}
/**
* 程序初始化入口
*/
@ -76,7 +62,6 @@ export class TaxManagementIndividualCollectComponent implements OnInit {
initSF() {
this.schema = {
properties: {
_$expand: { type: 'boolean', ui: { hidden: true } },
overdueStatus: {
title: '是否逾期',
type: 'string',
@ -98,7 +83,7 @@ export class TaxManagementIndividualCollectComponent implements OnInit {
ui: {
widget: 'sl-from-to',
type: 'date',
format: 'yyyy-MM-dd',
format: 'yyyy-MM-dd'
} as SFDateWidgetSchema
},
sbrq: {
@ -108,9 +93,6 @@ export class TaxManagementIndividualCollectComponent implements OnInit {
widget: 'sl-from-to',
type: 'date',
format: 'yyyy-MM-dd',
visibleIf: {
_$expand: (value: boolean) => value
}
} as SFDateWidgetSchema
},
nsrmc: {
@ -120,9 +102,6 @@ export class TaxManagementIndividualCollectComponent implements OnInit {
widget: 'select',
placeholder: '请选择',
allowClear: true,
visibleIf: {
_$expand: (value: boolean) => value
},
asyncData: () => this.service.getNetworkEnterpriseName()
}
}
@ -273,7 +252,7 @@ export class TaxManagementIndividualCollectComponent implements OnInit {
this.service.msgSrv.success('更新成功');
this.search();
}
})
});
}
search() {

View File

@ -1,17 +1,5 @@
<!--
* @Description :
* @Version : 1.0
* @Author : Shiming
* @Date : 2022-03-30 14:00:43
* @LastEditors : Shiming
* @LastEditTime : 2022-03-30 15:55:06
* @FilePath : \\tms-obc-web\\src\\app\\routes\\tax-management\\components\\individual-income\\individual-income.component.html
* Copyright (C) 2022 huzhenhong. All rights reserved.
-->
<page-header-wrapper [title]="''"></page-header-wrapper>
<!-- <page-header-wrapper [title]="''"></page-header-wrapper>
<nz-card class="search-box">
<!-- 搜索表单 -->
<div nz-row nzGutter="8">
<div nz-col [nzSpan]="_$expand ? 24 : 18">
<sf #sf [schema]="schema" [ui]="{ '*': { spanLabelFixed: 100,grid: { lg: 8, md: 12, sm: 12, xs: 24 } }}"
@ -28,14 +16,18 @@
</button>
</div>
</div>
</nz-card>
</nz-card> -->
<nz-card class="table-box">
<div class="tab_header">
<label class="page_title"> <label class="driver">|</label> 个税明细</label>
<nz-tabset [nzTabBarExtraContent]="extraTemplate">
<nz-tab *ngFor="let tab of tabs" [nzTitle]="tab.name" (nzSelect)="selectChange(tab)"> </nz-tab>
</nz-tabset>
</div>
<nz-card class="content-box">
<nz-tabset [nzTabBarExtraContent]="extraTemplate" *ngIf="tabs.length > 0">
<nz-tab *ngFor="let tab of tabs" [nzTitle]="tab.name" (nzSelect)="selectChange(tab)"> </nz-tab>
</nz-tabset>
<!-- 数据列表 -->
<st #st [scroll]="{ x: '1200px',y:'450px' }" [data]="service.$api_get_individual_income_page" [columns]="columns"
<st #st [scroll]="{ x: '1200px',y:scrollY }" [data]="service.$api_get_individual_income_page" [columns]="columns"
[req]="{ process: beforeReq }" [page]="{}" [loading]="service.http.loading" (change)="stChange($event)">
</st>
</nz-card>
@ -45,10 +37,29 @@
已选择
<strong class="text-red">{{ selectedRows.length }}</strong> 条数据
</div>
<button nz-button nzType="primary" (click)="upload()" acl [acl-ability]="['TAX-INCOME-declare']">申报</button>
<button nz-button nzType="primary" (click)="corrections()" acl [acl-ability]="['TAX-INCOME-change']">更正</button>
<button nz-button nzType="primary" (click)="resetData()" acl [acl-ability]="['TAX-INCOME-threshold']">修改起征点</button>
<button nz-button nzType="primary" (click)="uploadSetting()" acl [acl-ability]="['TAX-INCOME-resetData']">更新数据</button>
<button nz-button nzDanger [nzLoading]="isLoading && st.loading" acl [acl-ability]="['TAX-INCOME-search']"
(click)="openDrawer()">筛选</button>
<button nz-button nzDanger acl [acl-ability]="['TAX-INCOME-export']"> 导出</button>
<button nz-button nz-dropdown [nzDropdownMenu]="menu" nzPlacement="bottomLeft">
更多<i nz-icon nzType="down" nzTheme="outline"></i></button>
<nz-dropdown-menu #menu="nzDropdownMenu">
<ul nz-menu>
<li nz-menu-item (click)="upload()" acl [acl-ability]="['TAX-INCOME-declare']">
申报
</li>
<li nz-menu-item (click)="corrections()" acl [acl-ability]="['TAX-INCOME-change']">
更正
</li>
<li nz-menu-item (click)="resetData()" acl [acl-ability]="['TAX-INCOME-threshold']">
修改起征点
</li>
<li nz-menu-item (click)="uploadSetting()" acl [acl-ability]="['TAX-INCOME-resetData']">
更新数据
</li>
</ul>
</nz-dropdown-menu>
</div>
</ng-template>

View File

@ -1,22 +1,18 @@
import { Component, OnInit, ViewChild } from '@angular/core';
import { ActivatedRoute, Router } from '@angular/router';
import { STChange, STColumn, STComponent, STData, STRequestOptions } from '@delon/abc/st';
import { SFComponent, SFDateWidgetSchema, SFSchema, SFSchemaEnum, SFSelectWidgetSchema, SFUISchema } from '@delon/form';
import { ShipperBaseService } from '@shared';
import { NzModalService } from 'ng-zorro-antd/modal';
import { SFDateWidgetSchema } from '@delon/form';
import { SearchDrawerService } from '@shared';
import { BasicTableComponent } from 'src/app/routes/commom';
import { TaxManagementService } from '../../services/tax-management.service';
@Component({
selector: 'app-tax-management-individual-income',
templateUrl: './individual-income.component.html',
styleUrls: ['../../../commom/less/box.less', '../../../commom/less/expend-but.less']
styleUrls: ['../../../commom/less/commom-table.less']
})
export class TaxManagementIndividualIncomeComponent implements OnInit {
_$expand = false;
schema!: SFSchema;
export class TaxManagementIndividualIncomeComponent extends BasicTableComponent implements OnInit {
columns!: STColumn[];
@ViewChild('st', { static: false }) st!: STComponent;
@ViewChild('sf', { static: false }) sf!: SFComponent;
isLoading: boolean = false;
tabs: any[] = [
{ name: '待申报', value: '0' },
@ -30,7 +26,9 @@ export class TaxManagementIndividualIncomeComponent implements OnInit {
selectedRows: any[] = [];
constructor(public service: TaxManagementService) {}
constructor(public service: TaxManagementService, public searchDrawerService: SearchDrawerService) {
super(searchDrawerService);
}
beforeReq = (requestOptions: STRequestOptions) => {
Object.assign(requestOptions.body, { declareStatus: this.selectedIndex });
@ -50,22 +48,6 @@ export class TaxManagementIndividualIncomeComponent implements OnInit {
}
}
/**
* 伸缩查询条件
*/
expandToggle() {
this._$expand = !this._$expand;
this.sf?.setValue('/_$expand', this._$expand);
}
/**
* 重置表单
*/
resetSF() {
this.sf.reset();
this._$expand = false;
this.isLoading = true;
}
/**
* 程序初始化入口
*/
@ -80,7 +62,6 @@ export class TaxManagementIndividualIncomeComponent implements OnInit {
initSF() {
this.schema = {
properties: {
_$expand: { type: 'boolean', ui: { hidden: true } },
driverName: { title: '司机姓名', type: 'string', ui: { placeholder: '请输入' } },
telephone: {
type: 'string',
@ -140,10 +121,7 @@ export class TaxManagementIndividualIncomeComponent implements OnInit {
ui: {
placeholder: '请选择',
widget: 'select',
containsAllLabel: true,
visibleIf: {
_$expand: (value: boolean) => value
}
containsAllLabel: true
},
default: ''
},
@ -153,10 +131,7 @@ export class TaxManagementIndividualIncomeComponent implements OnInit {
ui: {
widget: 'sl-from-to',
type: 'date',
format: 'yyyy-MM-dd',
visibleIf: {
_$expand: (value: boolean) => value
}
format: 'yyyy-MM-dd'
} as SFDateWidgetSchema
},
declareDate: {
@ -165,10 +140,7 @@ export class TaxManagementIndividualIncomeComponent implements OnInit {
ui: {
widget: 'sl-from-to',
type: 'date',
format: 'yyyy-MM-dd',
visibleIf: {
_$expand: (value: boolean) => value
}
format: 'yyyy-MM-dd'
} as SFDateWidgetSchema
},
ltdId: {
@ -178,9 +150,6 @@ export class TaxManagementIndividualIncomeComponent implements OnInit {
widget: 'select',
placeholder: '请选择',
allowClear: true,
visibleIf: {
_$expand: (value: boolean) => value
},
asyncData: () => this.service.getNetworkFreightForwarder()
}
}

View File

@ -1,17 +1,5 @@
<!--
* @Description :
* @Version : 1.0
* @Author : Shiming
* @Date : 2022-03-30 14:00:43
* @LastEditors : Shiming
* @LastEditTime : 2022-04-09 14:11:01
* @FilePath : \\tms-obc-web\\src\\app\\routes\\tax-management\\components\\order-reporting\\order-reporting.component.html
* Copyright (C) 2022 huzhenhong. All rights reserved.
-->
<page-header-wrapper [title]="''"></page-header-wrapper>
<!-- <page-header-wrapper [title]="''"></page-header-wrapper>
<nz-card>
<!-- 搜索表单 -->
<div nz-row nzGutter="8">
<div nz-col [nzSpan]="_$expand ? 24 : 18">
<sf #sf [schema]="schema" [ui]="ui" [compact]="true" [button]="'none'"></sf>
@ -27,18 +15,20 @@
</button>
</div>
</div>
</nz-card>
<nz-card>
<nz-tabset [nzTabBarExtraContent]="extraTemplate" *ngIf="tabs.length>0">
</nz-card> -->
<nz-card class="table-box">
<div class="tab_header">
<label class="page_title"> <label class="driver">|</label> 订单上报</label>
<nz-tabset [nzTabBarExtraContent]="extraTemplate" *ngIf="tabs.length>0">
<nz-tab *ngFor="let tab of tabs" [nzTitle]="tab.name" (nzSelect)="selectChange(tab)">
</nz-tab>
</nz-tabset>
</div>
<nz-tab *ngFor="let tab of tabs" [nzTitle]="tab.name" (nzSelect)="selectChange(tab)">
</nz-tab>
</nz-tabset>
<!-- 数据列表 -->
<st #st [scroll]="{x:'1200px'}" [data]="service.$api_getTaxOrderPage_page" [columns]="columns"
[req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, params: reqParams }"
[res]="{ reName: { list: 'data.records', total: 'data.total' } }"
[page]="{ show: true, showSize: true, pageSizes: [10,20, 50, 100] }" [loading]="service.http.loading">
<st #st [scroll]="{x:'1200px',y:scrollY}" [data]="service.$api_getTaxOrderPage_page" [columns]="columns"
[req]="{ params: reqParams }" [page]="{ }" [loading]="service.http.loading">
<ng-template st-row="putStatus" let-item let-index="index">
<!-- <a (click)="viewAuditResult(item)" *ngIf="item?.billStatus === '2'">{{item?.billStatusLabel}}</a> -->
<span *ngIf="item?.putStatus == '0'">待上传</span>
@ -101,11 +91,26 @@
已选择
<strong class="text-red">{{ selectedRows.length }}</strong> 条数据
</div>
<button nz-button nzType="primary" (click)="upload()" acl [acl-ability]="['TAX-ORDERREPORT-upload']">上传</button>
<button nz-button nzType="primary" (click)="recall() " acl [acl-ability]="['TAX-ORDERREPORT-recall']">撤回</button>
<button nz-button nzType="primary" (click)="resetData()" acl
[acl-ability]="['TAX-ORDERREPORT-resetData']">更新数据</button>
<button nz-button nzType="primary" (click)="uploadSetting()" acl
[acl-ability]="['TAX-ORDERREPORT-uploadSetting']">税务设置</button>
<button nz-button nzDanger [nzLoading]="isLoading && st.loading" acl [acl-ability]="['TAX-ORDERREPORT-search']"
(click)="openDrawer()">筛选</button>
<button nz-button nzDanger acl [acl-ability]="['TAX-ORDERREPORT-export']"> 导出</button>
<button nz-button nz-dropdown [nzDropdownMenu]="menu" nzPlacement="bottomLeft">
更多<i nz-icon nzType="down" nzTheme="outline"></i></button>
<nz-dropdown-menu #menu="nzDropdownMenu">
<ul nz-menu>
<li nz-menu-item (click)="upload()" acl [acl-ability]="['TAX-ORDERREPORT-upload']">
上传
</li>
<li nz-menu-item (click)="recall() " acl [acl-ability]="['TAX-ORDERREPORT-recall']">
撤回
</li>
<li nz-menu-item (click)="resetData()" acl [acl-ability]="['TAX-ORDERREPORT-resetData']">
更新数据
</li>
<li nz-menu-item (click)="uploadSetting()" acl [acl-ability]="['TAX-ORDERREPORT-uploadSetting']">
税务设置
</li>
</ul>
</nz-dropdown-menu>
</div>
</ng-template>
</ng-template>

View File

@ -1,22 +0,0 @@
:host {
.text-black {
color: #000;
}
.icon {
display: inline-block;
width: 1em;
height: 1em;
stroke-width: 0;
stroke: currentColor;
/* stylelint-disable-next-line order/properties-order */
fill: currentColor;
}
::ng-deep {
.imgBox {
display: flex;
img {
width: 60px !important;
}
}
}
}

View File

@ -1,24 +0,0 @@
import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing';
import { DatatableOrderReportingComponent } from './order-reporting.component';
describe('DatatableOrderReportingComponent', () => {
let component: DatatableOrderReportingComponent;
let fixture: ComponentFixture<DatatableOrderReportingComponent>;
beforeEach(waitForAsync(() => {
TestBed.configureTestingModule({
declarations: [ DatatableOrderReportingComponent ]
})
.compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(DatatableOrderReportingComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});

View File

@ -1,29 +1,24 @@
import { Component, OnInit, ViewChild } from '@angular/core';
import { ActivatedRoute, Router } from '@angular/router';
import { STColumn, STComponent, STData } from '@delon/abc/st';
import { SFComponent, SFDateWidgetSchema, SFSchema, SFSchemaEnum, SFSelectWidgetSchema, SFUISchema } from '@delon/form';
import { ShipperBaseService } from '@shared';
import { SFDateWidgetSchema, SFSchemaEnum, SFSelectWidgetSchema } from '@delon/form';
import { SearchDrawerService, ShipperBaseService } from '@shared';
import { NzModalService } from 'ng-zorro-antd/modal';
import { of } from 'rxjs';
import { map } from 'rxjs/operators';
import { BasicTableComponent } from 'src/app/routes/commom';
import { TaxManagementService } from '../../services/tax-management.service';
import { TaxManagementUploadSettingComponent } from './upload-setting/upload-setting.component';
import { TaxManagementOrderVerifyResultComponent } from './verify-result/verify-result.component';
// import { DatatableReportingUploadSettingComponent } from '../upload-setting/upload-setting.component';
// import { DatatableReportingVerifyResultComponent } from '../verify-result/verify-result.component';
@Component({
selector: 'app-tax-management-order-reporting',
templateUrl: './order-reporting.component.html',
styleUrls: ['./order-reporting.component.less']
styleUrls: ['../../../commom/less/commom-table.less']
})
export class TaxManagementOrderReportingComponent implements OnInit {
_$expand = false;
ui!: SFUISchema;
schema!: SFSchema;
export class TaxManagementOrderReportingComponent extends BasicTableComponent implements OnInit {
columns!: STColumn[];
@ViewChild('st', { static: false }) st!: STComponent;
@ViewChild('sf', { static: false }) sf!: SFComponent;
tabType!: string;
isLoading: boolean = false;
tabs: any[] = [
@ -41,15 +36,9 @@ export class TaxManagementOrderReportingComponent implements OnInit {
private ar: ActivatedRoute,
public shipperservice: ShipperBaseService,
private modal: NzModalService,
public shipperSrv: ShipperBaseService
public searchDrawerService: SearchDrawerService
) {
}
/**
* 查询字段个数
*/
get queryFieldCount(): number {
return Object.keys(this.schema?.properties || {}).length;
super(searchDrawerService);
}
/**
@ -57,7 +46,7 @@ export class TaxManagementOrderReportingComponent implements OnInit {
*/
get reqParams() {
const params = Object.assign({}, this.sf?.value || {}, {
putStatus: this.selectedIndex,
putStatus: this.selectedIndex
});
delete params._$expand;
return { ...params };
@ -70,22 +59,6 @@ export class TaxManagementOrderReportingComponent implements OnInit {
return this.st?.list.filter((item: any) => item.checked) || [];
}
/**
* 伸缩查询条件
*/
expandToggle() {
this._$expand = !this._$expand;
this.sf?.setValue('/_$expand', this._$expand);
}
/**
* 重置表单
*/
resetSF() {
this.sf.reset();
this._$expand = false;
this.isLoading = true
}
/**
* 程序初始化入口
*/
@ -106,8 +79,8 @@ export class TaxManagementOrderReportingComponent implements OnInit {
type: 'string',
title: '运单号',
ui: {
placeholder: '请输入',
},
placeholder: '请输入'
}
},
shipperId: {
type: 'string',
@ -119,7 +92,7 @@ export class TaxManagementOrderReportingComponent implements OnInit {
searchLoadingText: '搜索中...',
allowClear: true,
onSearch: (q: any) => {
let str = q.replace(/^\s+|\s+$/g, "");
let str = q.replace(/^\s+|\s+$/g, '');
if (str) {
return this.service
.request(this.service.$api_enterpriceList, { enterpriseName: str })
@ -128,17 +101,14 @@ export class TaxManagementOrderReportingComponent implements OnInit {
} else {
return of([]);
}
},
}
} as SFSelectWidgetSchema
},
driverName: {
title: '承运司机',
type: 'string',
ui: {
placeholder: '请输入司机姓名/手机号', visibleIf: {
_$expand: (value: boolean) => value,
},
placeholder: '请输入司机姓名/手机号'
}
},
carNo: {
@ -146,10 +116,7 @@ export class TaxManagementOrderReportingComponent implements OnInit {
type: 'string',
maxLength: 9,
ui: {
placeholder: '请输入',
visibleIf: {
_$expand: (value: boolean) => value,
},
placeholder: '请输入'
}
},
collectionUserName: {
@ -157,10 +124,7 @@ export class TaxManagementOrderReportingComponent implements OnInit {
type: 'string',
maxLength: 9,
ui: {
placeholder: '请输入',
visibleIf: {
_$expand: (value: boolean) => value,
},
placeholder: '请输入'
}
},
// putStatus: {
@ -183,16 +147,13 @@ export class TaxManagementOrderReportingComponent implements OnInit {
title: '本地校验',
type: 'string',
enum: [
{label: '校验中',value: 0},
{label: '通过',value: 1},
{label: '不通过',value: 2},
{ label: '校验中', value: 0 },
{ label: '通过', value: 1 },
{ label: '不通过', value: 2 }
],
ui: {
widget:'select',
placeholder: '请选择',
visibleIf: {
_$expand: (value: boolean) => value,
},
widget: 'select',
placeholder: '请选择'
}
},
networkTransporter: {
@ -202,9 +163,6 @@ export class TaxManagementOrderReportingComponent implements OnInit {
widget: 'select',
placeholder: '请选择',
allowClear: true,
visibleIf: {
_$expand: (value: boolean) => value
},
asyncData: () => this.shipperservice.getNetworkFreightForwarder()
}
},
@ -214,11 +172,8 @@ export class TaxManagementOrderReportingComponent implements OnInit {
ui: {
widget: 'sl-from-to',
type: 'date',
format: 'yyyy-MM-dd',
visibleIf: {
_$expand: (value: boolean) => value,
},
} as SFDateWidgetSchema,
format: 'yyyy-MM-dd'
} as SFDateWidgetSchema
},
orderPayTime: {
title: '结束时间',
@ -226,17 +181,10 @@ export class TaxManagementOrderReportingComponent implements OnInit {
ui: {
widget: 'sl-from-to',
type: 'date',
format: 'yyyy-MM-dd',
visibleIf: {
_$expand: (value: boolean) => value,
},
} as SFDateWidgetSchema,
},
},
};
this.ui = {
'*': { spanLabelFixed: 120, grid: { span: 8, gutter: 4 }, enter: () => this.search() },
$time: { grid: { span: 24 } },
format: 'yyyy-MM-dd'
} as SFDateWidgetSchema
}
}
};
}
@ -245,33 +193,33 @@ export class TaxManagementOrderReportingComponent implements OnInit {
*/
initST() {
this.columns = [
{ title: '', type: 'checkbox', className: 'text-center', width: '60px', },
{ title: '上传状态', render: 'putStatus', className: 'text-center', width: '120px', },
{ title: '本地校验', render: 'checkStatus', className: 'text-center', width: '120px', },
{ title: '', type: 'checkbox', className: 'text-center', width: '60px' },
{ title: '上传状态', render: 'putStatus', className: 'text-center', width: '120px' },
{ title: '本地校验', render: 'checkStatus', className: 'text-center', width: '120px' },
{
title: '订单号',
index: 'billCode',
className: 'text-center',
width: '150px',
width: '150px'
},
{ title: '运单号', index: 'wayBillCode', className: 'text-center', width: '150px', },
{ title: '运单号', index: 'wayBillCode', className: 'text-center', width: '150px' },
{
title: '网络货运人',
index: 'networkTransporterName',
className: 'text-center',
width: '180px',
width: '180px'
},
{
title: '档案编号',
index: 'archivesNo',
className: 'text-center',
width: '180px',
width: '180px'
},
{
title: '品牌型号',
index: 'carBrand',
className: 'text-center',
width: '180px',
width: '180px'
},
{ title: '装货地', index: 'loadingAddress', render: 'loadingPlace', className: 'text-center', width: '200px' },
{ title: '装货地详细地址', index: 'loadingDetailedAddress', render: 'loadingPlace', className: 'text-center', width: '200px' },
@ -301,12 +249,10 @@ export class TaxManagementOrderReportingComponent implements OnInit {
{ title: '提货单', render: 'loadingLadingBill', className: 'text-center', width: '100px' },
{ title: '签收单', render: 'signatureForm', className: 'text-center', width: '100px' },
{ title: '上传次数', index: 'putNumber', className: 'text-center', width: '100px' },
{ title: '最近上传时间', index: 'recentlyPutTime', className: 'text-center', width: '180px' },
{ title: '最近上传时间', index: 'recentlyPutTime', className: 'text-center', width: '180px' }
];
}
/**
*撤回
* @param record 记录实例
@ -331,10 +277,9 @@ export class TaxManagementOrderReportingComponent implements OnInit {
this.service.msgSrv.success('撤销成功');
this.search();
}
})
});
}
});
}
/**
*撤销
@ -354,7 +299,7 @@ export class TaxManagementOrderReportingComponent implements OnInit {
this.service.msgSrv.success('更新成功');
this.st.load(1);
}
})
});
}
/**
*撤销
@ -381,10 +326,9 @@ export class TaxManagementOrderReportingComponent implements OnInit {
this.service.msgSrv.success('撤销成功');
this.search();
}
})
});
}
});
}
selectChange(item: any) {
@ -393,7 +337,7 @@ export class TaxManagementOrderReportingComponent implements OnInit {
this.selectedIndex = item?.value || '';
setTimeout(() => {
this.st.load();
})
});
}
/**
@ -403,7 +347,7 @@ export class TaxManagementOrderReportingComponent implements OnInit {
// this.router.navigate(['../view', record.uuid], { relativeTo: this.ar });
this.router.navigate(['../detail'], {
queryParams: {
id: record.id,
id: record.id
},
relativeTo: this.ar
});
@ -431,21 +375,21 @@ export class TaxManagementOrderReportingComponent implements OnInit {
* 上传
*/
upload() {
let status = false
let status = false;
if (this.selectedRows.length === 0) {
this.openWainingModal('请选择需要上传的数据');
return;
}
this.selectedRows.forEach(item => {
if (item?.putStatus != '0') {
status = true
status = true;
}
});
if(status) {
if (status) {
this.service.msgSrv.warning('选择了已上传,请重新勾选!');
return;
}
// if(this.selectedRows.find(item => item.checkStatus !== 1)) {
// this.service.msgSrv.warning('选择了未通过校验的订单,请重新勾选!');
// return;
@ -459,10 +403,9 @@ export class TaxManagementOrderReportingComponent implements OnInit {
this.service.msgSrv.success('上传成功');
this.st.load();
}
})
});
}
/**
*
* @param params 上传设置
@ -479,7 +422,7 @@ export class TaxManagementOrderReportingComponent implements OnInit {
if (res) {
this.st.load();
}
})
});
}
/**
@ -499,7 +442,7 @@ export class TaxManagementOrderReportingComponent implements OnInit {
if (res) {
this.st.load();
}
})
});
}
/**
@ -509,17 +452,16 @@ export class TaxManagementOrderReportingComponent implements OnInit {
if (record?.billStatus !== '2') {
return;
}
this.openWainingModal('监管审核结果', record?.result)
this.openWainingModal('监管审核结果', record?.result);
}
search() {
this.st.load(1);
}
/**
* 异步导出
*/
* 异步导出
*/
export() {
this.service.exportStart(this.sf?.value, this.service.$api_async_export_order_reporting_list);
}
@ -528,8 +470,7 @@ export class TaxManagementOrderReportingComponent implements OnInit {
this.modal.warning({
nzMask: false,
nzTitle: title,
nzContent: content,
})
nzContent: content
});
}
}

View File

@ -1,7 +1,5 @@
<page-header-wrapper [title]="'可开票订单'">
<!-- <page-header-wrapper [title]="'可开票订单'">
</page-header-wrapper>
<nz-card class="search-box" nzBordered>
<div nz-row nzGutter="8">
<div nz-col [nzXl]="_$expand ? 24 : 18" [nzLg]="24" [nzSm]="24" [nzXs]="24">
@ -20,11 +18,20 @@
</button>
</div>
</div>
</nz-card>
</nz-card> -->
<nz-card class="content-box" nzBordered>
<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]="['FINANCIAL-VOUCHER-list']">筛选</button>
<button nz-button nzDanger (click)="export()" acl
[acl-ability]="['TICKET-BILLING-ORDER-exprort']">导出</button>
</div>
</div>
<st #st [data]="service.$api_invoicedBillInfo_page" [columns]="columns" [req]="{ process: beforeReq }" [page]="{}"
[loading]="false" [scroll]="{ x:'1200px' }">
[loading]="false" [scroll]="{ x:'1200px',y:scrollY }">
<ng-template st-row="sts" let-item let-index="index">
<span *ngIf="item.sts === '1'">待受理</span>
<span *ngIf="item.sts === '2'">处理中</span>

View File

@ -2,27 +2,29 @@ import { Component, OnInit, ViewChild } from '@angular/core';
import { ActivatedRoute, Router } from '@angular/router';
import { STComponent, STColumn, STChange, STRequestOptions } from '@delon/abc/st';
import { SFComponent, SFSchema, SFDateWidgetSchema, SFSelectWidgetSchema } from '@delon/form';
import { SearchDrawerService } from '@shared';
import { NzModalService } from 'ng-zorro-antd/modal';
import { BasicTableComponent } from 'src/app/routes/commom';
import { TicketService } from '../../services/ticket.service';
@Component({
selector: 'app-billing-order',
templateUrl: './billing-order.component.html',
styleUrls: ['../../../commom/less/box.less', '../../../commom/less/expend-but.less']
styleUrls: ['../../../commom/less/commom-table.less']
})
export class BillingOrderComponent implements OnInit {
export class BillingOrderComponent extends BasicTableComponent {
@ViewChild('st', { static: true })
st!: STComponent;
@ViewChild('sf', { static: false })
sf!: SFComponent;
columns: STColumn[] = this.initST();
searchSchema: SFSchema = this.initSF();
schema: SFSchema = this.initSF();
_$expand = false;
constructor(public service: TicketService, private router: Router, public searchDrawerService: SearchDrawerService) {
super(searchDrawerService);
}
constructor(public service: TicketService, private nzModalService: NzModalService, private router: Router, private ar: ActivatedRoute) {}
ngOnInit(): void {}
search() {
this.st?.load(1);
}
beforeReq = (requestOptions: STRequestOptions) => {
if (this.sf) {
@ -38,22 +40,6 @@ export class BillingOrderComponent implements OnInit {
this.router.navigateByUrl(`/order-management/vehicle/vehicle-detail/${item.billId}`);
}
/**
* 重置表单
*/
resetSF() {
this.sf.reset();
this._$expand = false;
}
/**
* 伸缩查询条件
*/
expandToggle() {
this._$expand = !this._$expand;
this.sf?.setValue('/expand', this._$expand);
}
export() {
this.service.exportStart({ ...this.sf?.value, pageSize: -1 }, this.service.$api_export_InvoicedBillInfoPage);
}
@ -118,20 +104,14 @@ export class BillingOrderComponent implements OnInit {
type: 'string',
title: '申请编号',
ui: {
autocomplete: 'off',
visibleIf: {
expand: (value: boolean) => value
}
autocomplete: 'off'
}
},
vatinvcode: {
type: 'string',
title: '分票编号',
ui: {
placeholder: '请输入',
visibleIf: {
expand: (value: boolean) => value
}
placeholder: '请输入'
}
},
vatappdate: {
@ -140,10 +120,7 @@ export class BillingOrderComponent implements OnInit {
ui: {
widget: 'sl-from-to',
type: 'date',
format: 'yyyy-MM-dd HH:mm:ss',
visibleIf: {
expand: (value: boolean) => value
}
format: 'yyyy-MM-dd HH:mm:ss'
} as SFDateWidgetSchema
},
sts: {
@ -152,10 +129,7 @@ export class BillingOrderComponent implements OnInit {
ui: {
widget: 'dict-select',
params: { dictKey: 'etc:invoicing:status' },
placeholder: '请选择',
visibleIf: {
expand: (value: boolean) => value
}
placeholder: '请选择'
}
},
invoiceno: {
@ -163,10 +137,7 @@ export class BillingOrderComponent implements OnInit {
title: '发票号码',
ui: {
placeholder: '请输入',
autocomplete: 'off',
visibleIf: {
expand: (value: boolean) => value
}
autocomplete: 'off'
}
},
invoicedate: {
@ -175,10 +146,7 @@ export class BillingOrderComponent implements OnInit {
ui: {
widget: 'sl-from-to',
type: 'date',
format: 'yyyy-MM-dd',
visibleIf: {
expand: (value: boolean) => value
}
format: 'yyyy-MM-dd'
} as SFDateWidgetSchema
},
enterpriseInfoId: {
@ -188,9 +156,6 @@ export class BillingOrderComponent implements OnInit {
widget: 'select',
placeholder: '请选择',
allowClear: true,
visibleIf: {
expand: (value: boolean) => value
},
asyncData: () => this.service.getNetworkFreightForwarder()
}
}

View File

@ -1,7 +1,5 @@
<page-header-wrapper [title]="'销票处理'">
<!-- <page-header-wrapper [title]="'销票处理'">
</page-header-wrapper>
<nz-card class="search-box" nzBordered>
<div nz-row nzGutter="8">
<div nz-col [nzXl]="_$expand ? 24 : 18" [nzLg]="24" [nzSm]="24" [nzXs]="24">
@ -12,30 +10,36 @@
<div nz-col [nzXl]="_$expand ? 24 : 6" [nzLg]="24" [nzSm]="24" [nzXs]="24" class="text-right">
<button nz-button nzType="primary" [nzLoading]="service.http.loading" (click)="st?.load(1)">查询</button>
<button nz-button (click)="resetSF()">重置</button>
<!-- <button nz-button> 导出</button> -->
<button nz-button nzType="link" (click)="expandToggle()">
{{ !_$expand ? '展开' : '收起' }}
<i nz-icon [nzType]="!_$expand ? 'down' : 'up'"></i>
</button>
</div>
</div>
</nz-card>
</nz-card> -->
<nz-card class="table-box">
<div class="tab_header">
<label class="page_title">
<label class="driver">|</label>
销票处理</label>
<nz-tabset [nzTabBarExtraContent]="extraTemplate" (nzSelectedIndexChange)="selectChange($event)">
<nz-tab nzTitle="全部"></nz-tab>
<nz-tab nzTitle="待处理"></nz-tab>
<nz-tab nzTitle="待确认"></nz-tab>
<!-- <nz-tab nzTitle="已确认"></nz-tab> -->
</nz-tabset>
</div>
<nz-card class="content-box" nzBordered>
<nz-tabset [nzTabBarExtraContent]="extraTemplate" (nzSelectedIndexChange)="selectChange($event)">
<nz-tab nzTitle="全部"></nz-tab>
<nz-tab nzTitle="待处理"></nz-tab>
<nz-tab nzTitle="待确认"></nz-tab>
<!-- <nz-tab nzTitle="已确认"></nz-tab> -->
</nz-tabset>
<ng-template #extraTemplate>
<div class="d-flex align-items-center">
<div class="d-flex align-items-center mr-sm">
<div class="mr-md">
已选择
<strong class="text-red">{{ selectedRows.length }}</strong> 张发票&nbsp;&nbsp; 发票金额总计
<strong class="text-red">{{totalCallNo }}</strong>
<a *ngIf="totalCallNo > 0" (click)="st.clearCheck();totalCallNo=0" class="ml-lg">清空</a>
</div>
<button nz-button nzDanger [nzLoading]="service.http.loading" (click)="openDrawer()">筛选</button>
<!-- <button nz-button *ngIf="resourceStatus===1 || !resourceStatus" (click)="this.batchPush()">推送开票</button> -->
<!-- <button nz-button *ngIf="resourceStatus===1 || !resourceStatus"
(click)="this.batchRemove(selectedRows)">移除</button>
@ -45,7 +49,7 @@
</ng-template>
<st #st [scroll]="{ x: '2000px' }" [data]="service.$api_ficoVatinvHList" [columns]="columns" [page]="{}"
<st #st [scroll]="{ x: '2000px',y:scrollY }" [data]="service.$api_ficoVatinvHList" [columns]="columns" [page]="{}"
[req]="{process: beforeReq }" [res]="{process:afterRes }" [loading]="false" (change)="stChange($event)">
<ng-template st-row="vatinvcode" let-item let-index="index" let-column="column">
{{ item.vatinvcode }} <br>

View File

@ -1,26 +0,0 @@
:host::ng-deep {
.search-box {
.ant-card-body {
padding-bottom: 18px;
}
}
.content-box {
.ant-card-body {
padding-top: 0;
}
}
nz-range-picker {
width: 100%;
}
.ant-tabs-tab-btn {
padding-left : 16px;
padding-right: 16px;
}
.text-truncate {
white-space: normal;
}
}

View File

@ -4,37 +4,42 @@ import { Router } from '@angular/router';
import { STComponent, STColumn, STRequestOptions, STChange } from '@delon/abc/st';
import { SFComponent, SFSchema, SFDateWidgetSchema, SFSelectWidgetSchema, SFSchemaEnum } from '@delon/form';
import { dateTimePickerUtil } from '@delon/util';
import { SearchDrawerService } from '@shared';
import { NzModalService } from 'ng-zorro-antd/modal';
import { of } from 'rxjs';
import { map } from 'rxjs/operators';
import { BasicTableComponent } from 'src/app/routes/commom';
import { TicketService } from '../../services/ticket.service';
import { RequestedInvoiceModalComponent } from '../invoice-requested/requested-invoice-modal/requested-invoice-modal.component';
import { PushInvoiceComponent } from './push-invoice/push-invoice.component';
@Component({
selector: 'app-cancellation-invoice',
templateUrl: './cancellation-invoice.component.html',
styleUrls: ['./cancellation-invoice.component.less']
styleUrls: ['../../../commom/less/commom-table.less']
})
export class CancellationInvoiceComponent implements OnInit {
export class CancellationInvoiceComponent extends BasicTableComponent {
@ViewChild('st', { static: true })
st!: STComponent;
@ViewChild('sf', { static: false })
sf!: SFComponent;
@ViewChild('requestedModal', { static: false })
requestedModal!: any;
columns: STColumn[] = this.initST();
searchSchema: SFSchema = this.initSF();
schema: SFSchema = this.initSF();
resourceStatus: any = '';
_$expand = false;
selectedRows: any[] = [];
totalCallNo = 0;
openInfo: any = { invoicedate: null, invoiceno: null, invoiceno2: null };
constructor(public service: TicketService, private nzModalService: NzModalService, private router: Router) {}
constructor(
public service: TicketService,
private nzModalService: NzModalService,
private router: Router,
public searchDrawerService: SearchDrawerService
) {
super(searchDrawerService);
}
ngOnInit(): void {}
search() {
this.st?.load(1);
}
beforeReq = (requestOptions: STRequestOptions) => {
if (this.sf) {
@ -236,22 +241,6 @@ export class CancellationInvoiceComponent implements OnInit {
});
}
/**
* 重置表单
*/
resetSF() {
this.sf.reset();
this._$expand = false;
}
/**
* 伸缩查询条件
*/
expandToggle() {
this._$expand = !this._$expand;
this.sf?.setValue('/expand', this._$expand);
}
private initSF(): SFSchema {
return {
properties: {
@ -287,10 +276,7 @@ export class CancellationInvoiceComponent implements OnInit {
widget: 'select',
placeholder: '请选择',
allowClear: true,
asyncData: () => this.service.getNetworkFreightForwarder(),
visibleIf: {
expand: (value: boolean) => value
}
asyncData: () => this.service.getNetworkFreightForwarder()
}
},
sts: {
@ -300,10 +286,7 @@ export class CancellationInvoiceComponent implements OnInit {
widget: 'dict-select',
containsAllLabel: true,
params: { dictKey: 'vatinv:status' },
containAllLable: true,
visibleIf: {
_$expand: (value: boolean) => value
}
containAllLable: true
} as SFSelectWidgetSchema
},
// or2derSn: {
@ -322,10 +305,7 @@ export class CancellationInvoiceComponent implements OnInit {
ui: {
widget: 'date',
mode: 'range',
format: 'yyyy-MM-dd',
visibleIf: {
expand: (value: boolean) => value
}
format: 'yyyy-MM-dd'
} as SFDateWidgetSchema
}
}
@ -407,7 +387,7 @@ export class CancellationInvoiceComponent implements OnInit {
{
text: '手工开票<br>',
acl: { ability: ['TICKET-CANCELLATION-apply'] },
iif: item => item.sts != '3' && item.sts != '4' ,
iif: item => item.sts != '3' && item.sts != '4',
click: item => this.requestedAction(item)
}
// {

View File

@ -1,14 +1,4 @@
<!--
* @Description :
* @Version : 1.0
* @Author : Shiming
* @Date : 2022-04-06 10:57:56
* @LastEditors : Shiming
* @LastEditTime : 2022-04-29 14:34:09
* @FilePath : \\tms-obc-web\\src\\app\\routes\\ticket-management\\components\\etc-blacklist\\etc-blacklist.component.html
* Copyright (C) 2022 huzhenhong. All rights reserved.
-->
<page-header-wrapper [title]="'ETC白名单'" [content]="content">
<!-- <page-header-wrapper [title]="'ETC白名单'" [content]="content">
<ng-template #content>
<nz-tabset class="tabs-wrap">
<nz-tab *ngFor="let tab of tabs" [nzTitle]="tab.name" (nzSelect)="changeTab(tab)"> </nz-tab>
@ -33,25 +23,43 @@
<button nz-button (click)="exprot()" acl [acl-ability]="[tabType === 1 ?'TICKET-ETC-BLACK_LIST-exportFreight' : 'TICKET-ETC-BLACK_LIST-exportCart']"> 导出</button>
</div>
</div>
</nz-card>
</nz-card> -->
<nz-card>
<div class="d-flex align-items-center mb-md">
<button nz-button (click)="configAction()" acl [acl-ability]="[tabType === 1 ? 'TICKET-ETC-BLACK_LIST-addFreight' : 'TICKET-ETC-BLACK_LIST-addCart']">添加</button>
<button nz-button (click)="deleteAction()" acl [acl-ability]="[tabType === 1 ? 'TICKET-ETC-BLACK_LIST-deleteFreight' : 'TICKET-ETC-BLACK_LIST-deleteCart']">删除</button>
<div class="ml-md">
已选择
<strong class="text-primary">{{ selectedRows.length }}</strong> 条数据
<a *ngIf="selectedRows.length > 0" (click)="st.clearCheck()" class="ml-lg">清空</a>
</div>
<nz-card class="table-box">
<div class="tab_header">
<label class="page_title"> <label class="driver">|</label> ETC白名单</label>
<nz-tabset [nzTabBarExtraContent]="extraTemplate">
<nz-tab *ngFor="let tab of tabs" [nzTitle]="tab.name" (nzSelect)="changeTab(tab)"> </nz-tab>
</nz-tabset>
</div>
<st
#st
[data]="tabType === 1 ? service.$api_get_etc_shipper_list : service.$api_get_etc_cart_page"
[columns]="columns"
[page]="{}"
[req]="{ process: beforeReq }"
[loading]="false"
(change)="stChange($event)"
></st>
</nz-card>
<ng-template #extraTemplate>
<div class="d-flex align-items-center mr-sm">
<div class="mr-md">
已选择
<strong class="text-primary">{{ selectedRows.length }}</strong> 条数据
<a *ngIf="selectedRows.length > 0" (click)="st.clearCheck()" class="ml-lg">清空</a>
</div>
<button nz-button nzDanger [nzLoading]="service.http.loading" (click)="openDrawer()">筛选</button>
<button nz-button nzDanger (click)="exprot()" acl
[acl-ability]="[tabType === 1 ?'TICKET-ETC-BLACK_LIST-exportFreight' : 'TICKET-ETC-BLACK_LIST-exportCart']">
导出</button>
<button nz-button nz-dropdown [nzDropdownMenu]="menu" nzPlacement="bottomLeft">
更多<i nz-icon nzType="down" nzTheme="outline"></i></button>
<nz-dropdown-menu #menu="nzDropdownMenu">
<ul nz-menu>
<li nz-menu-item (click)="configAction()" acl
[acl-ability]="[tabType === 1 ? 'TICKET-ETC-BLACK_LIST-addFreight' : 'TICKET-ETC-BLACK_LIST-addCart']">
添加
</li>
<li nz-menu-item (click)="deleteAction()" acl
[acl-ability]="[tabType === 1 ? 'TICKET-ETC-BLACK_LIST-deleteFreight' : 'TICKET-ETC-BLACK_LIST-deleteCart']">
删除
</li>
</ul>
</nz-dropdown-menu>
</div>
</ng-template>
<st #st [data]="tabType === 1 ? service.$api_get_etc_shipper_list : service.$api_get_etc_cart_page"
[scroll]="{ x: '1200px',y:scrollY }" [columns]="columns" [page]="{}" [req]="{ process: beforeReq }"
[loading]="false" (change)="stChange($event)"></st>
</nz-card>

View File

@ -1,7 +1,9 @@
import { ChangeDetectionStrategy, Component, OnInit, ViewChild } from '@angular/core';
import { STComponent, STColumn, STChange, STRequestOptions } from '@delon/abc/st';
import { SFComponent, SFSchema } from '@delon/form';
import { SearchDrawerService } from '@shared';
import { NzModalService } from 'ng-zorro-antd/modal';
import { BasicTableComponent } from 'src/app/routes/commom';
import { SystemService } from 'src/app/routes/sys-setting/services/system.service';
import { TicketService } from '../../services/ticket.service';
import { AddCartComponent } from './add-cart/add-cart.component';
@ -10,14 +12,12 @@ import { AddOwnerComponent } from './add-owner/add-owner.component';
@Component({
selector: 'app-etc-blacklist',
templateUrl: './etc-blacklist.component.html',
styleUrls: ['../../../commom/less/box.less', './etc-blacklist.component.less'],
styleUrls: ['../../../commom/less/commom-table.less'],
changeDetection: ChangeDetectionStrategy.OnPush
})
export class ETCBlacklistComponent implements OnInit {
export class ETCBlacklistComponent extends BasicTableComponent {
@ViewChild('st', { static: true })
st!: STComponent;
@ViewChild('sf', { static: false })
sf!: SFComponent;
tabs = [
{
name: '货主',
@ -32,15 +32,19 @@ export class ETCBlacklistComponent implements OnInit {
];
tabType = 1;
searchSchema: SFSchema = this.initSF();
schema: SFSchema = this.initSF();
columns: STColumn[] = this.initST();
selectedRows: any[] = [];
constructor(public service: TicketService, private nzModalService: NzModalService) {}
constructor(public service: TicketService, private nzModalService: NzModalService, public searchDrawerService: SearchDrawerService) {
super(searchDrawerService);
}
ngOnInit(): void {}
search() {
this.st?.load(1);
}
beforeReq = (requestOptions: STRequestOptions) => {
if (this.sf) {
@ -63,6 +67,8 @@ export class ETCBlacklistComponent implements OnInit {
item.isActived = !item.isActived;
// this.st.load(1);
this.st.resetColumns();
console.log(this.st);
}, 500);
}
@ -181,12 +187,6 @@ export class ETCBlacklistComponent implements OnInit {
nzOkText: '确定'
});
}
/**
* 重置表单
*/
resetSF() {
this.sf.reset();
}
private initSF(): SFSchema {
return {
@ -288,12 +288,14 @@ export class ETCBlacklistComponent implements OnInit {
className: 'text-center',
buttons: [
{
text: '删除', iif: () => this.tabType === 1,
text: '删除',
iif: () => this.tabType === 1,
acl: { ability: ['TICKET-ETC-BLACK_LIST-deleteFreight'] },
click: item => this.deleteAction(item)
},
{
text: '删除', iif: () => this.tabType === 2,
text: '删除',
iif: () => this.tabType === 2,
acl: { ability: ['TICKET-ETC-BLACK_LIST-deleteCart'] },
click: item => this.deleteAction(item)
}

View File

@ -1,14 +1,4 @@
<!--
* @Description :
* @Version : 1.0
* @Author : Shiming
* @Date : 2022-04-28 20:27:08
* @LastEditors : Shiming
* @LastEditTime : 2022-04-29 14:19:10
* @FilePath : \\tms-obc-web\\src\\app\\routes\\ticket-management\\components\\etc-invoiced-list\\etc-invoiced-list.component.html
* Copyright (C) 2022 huzhenhong. All rights reserved.
-->
<page-header-wrapper [title]="'运单开票记录'">
<!-- <page-header-wrapper [title]="'运单开票记录'">
</page-header-wrapper>
<nz-card class="search-box" nzBordered>
@ -28,9 +18,18 @@
</button>
</div>
</div>
</nz-card>
</nz-card> -->
<nz-card class="content-box" nzBordered>
<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]="['FINANCIAL-VOUCHER-list']">筛选</button>
<button nz-button nzDanger (click)="exprot()" acl
[acl-ability]="['TICKET-ETC-INVOICE-LIST-export']">导出</button>
</div>
</div>
<st #st [data]="service.$api_get_invoice_record_page" [columns]="columns" [req]="{ process: beforeReq }"
[page]="{}" [loading]="false" [scroll]="{ x:'1200px' }">

View File

@ -2,28 +2,34 @@ import { Component, OnInit, ViewChild } from '@angular/core';
import { Router } from '@angular/router';
import { STComponent, STColumn, STChange, STRequestOptions } from '@delon/abc/st';
import { SFComponent, SFSchema } from '@delon/form';
import { SearchDrawerService } from '@shared';
import { NzModalService } from 'ng-zorro-antd/modal';
import { BasicTableComponent } from 'src/app/routes/commom';
import { TicketService } from '../../services/ticket.service';
import { TransactionDetailsComponent } from './transaction-details/transaction-details.component';
@Component({
selector: 'app-etc-invoiced-list',
templateUrl: './etc-invoiced-list.component.html',
styleUrls: ['../../../commom/less/box.less']
styleUrls: ['../../../commom/less/commom-table.less']
})
export class ETCInvoicedListComponent implements OnInit {
export class ETCInvoicedListComponent extends BasicTableComponent implements OnInit {
@ViewChild('st', { static: true })
st!: STComponent;
@ViewChild('sf', { static: false })
sf!: SFComponent;
columns: STColumn[] = this.initST();
searchSchema: SFSchema = this.initSF();
schema: SFSchema = this.initSF();
_$expand = false;
constructor(public service: TicketService, private nzModalService: NzModalService, private router: Router) {}
constructor(public service: TicketService, private nzModalService: NzModalService, public searchDrawerService: SearchDrawerService) {
super(searchDrawerService);
}
ngOnInit(): void {}
search() {
this.st?.load(1);
}
beforeReq = (requestOptions: STRequestOptions) => {
if (this.sf) {
Object.assign(requestOptions.body, {
@ -52,22 +58,6 @@ export class ETCInvoicedListComponent implements OnInit {
});
}
/**
* 重置表单
*/
resetSF() {
this.sf.reset();
this._$expand = false;
}
/**
* 伸缩查询条件
*/
expandToggle() {
this._$expand = !this._$expand;
this.sf?.setValue('/expand', this._$expand);
}
private initSF(): SFSchema {
return {
properties: {
@ -106,10 +96,7 @@ export class ETCInvoicedListComponent implements OnInit {
ui: {
widget: 'dict-select',
params: { dictKey: 'etc:invoicing:status' },
placeholder: '请选择',
visibleIf: {
expand: (value: boolean) => value
}
placeholder: '请选择'
},
default: ''
},
@ -122,10 +109,7 @@ export class ETCInvoicedListComponent implements OnInit {
searchDebounceTime: 300,
searchLoadingText: '搜索中...',
allowClear: true,
onSearch: (q: any) => this.service.getEnterpriceList({ enterpriseName: q }),
visibleIf: {
expand: (value: boolean) => value
}
onSearch: (q: any) => this.service.getEnterpriceList({ enterpriseName: q })
}
},
enterpriseInfoId: {
@ -135,9 +119,6 @@ export class ETCInvoicedListComponent implements OnInit {
widget: 'select',
placeholder: '请选择',
allowClear: true,
visibleIf: {
expand: (value: boolean) => value
},
asyncData: () => this.service.getNetworkFreightForwarder()
},
default: ''

View File

@ -1,17 +1,5 @@
<!--
* @Description :
* @Version : 1.0
* @Author : Shiming
* @Date : 2022-04-28 20:27:08
* @LastEditors : Shiming
* @LastEditTime : 2022-04-29 14:21:05
* @FilePath : \\tms-obc-web\\src\\app\\routes\\ticket-management\\components\\etc-invoiced-logs\\etc-invoiced-logs.component.html
* Copyright (C) 2022 huzhenhong. All rights reserved.
-->
<page-header-wrapper [title]="'已开发票'">
<!-- <page-header-wrapper [title]="'已开发票'">
</page-header-wrapper>
<nz-card class="search-box" nzBordered>
<div nz-row nzGutter="8">
<div nz-col [nzXl]="_$expand ? 24 : 18" [nzLg]="24" [nzSm]="24" [nzXs]="24">
@ -23,18 +11,26 @@
class="text-right">
<button nz-button nzType="primary" [nzLoading]="service.http.loading" (click)="st?.load(1)">查询</button>
<button nz-button (click)="resetSF()">重置</button>
<button nz-button (click)="exportList()" acl [acl-ability]="['TICKET-ETC-INVOICE-LOGS-export']"> 导出</button>
<button nz-button (click)="exportList()" acl [acl-ability]="['TICKET-ETC-INVOICE-LOGS-export']"> 导出</button>
<button nz-button nzType="link" (click)="expandToggle()">
{{ !_$expand ? '展开' : '收起' }}
<i nz-icon [nzType]="!_$expand ? 'down' : 'up'"></i>
</button>
</div>
</div>
</nz-card>
</nz-card> -->
<nz-card class="content-box" nzBordered>
<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()">筛选</button>
<button nz-button nzDanger (click)="exportList()" acl
[acl-ability]="['TICKET-ETC-INVOICE-LOGS-export']">导出</button>
</div>
</div>
<st #st [data]="service.$api_get_invoice_logs_page" [columns]="columns" [req]="{ process: beforeReq }" [page]="{}"
[loading]="false" [scroll]="{ x:'1200px' }">
[loading]="false" [scroll]="{ x:'1200px',y:scrollY }">
<ng-template st-row="call3No" let-item let-index="index" let-column="column">
{{item.driverName}}<br>{{item.driverCellphone}}
</ng-template>

View File

@ -1,28 +1,29 @@
import { Component, OnInit, ViewChild } from '@angular/core';
import { Component, ViewChild } from '@angular/core';
import { Router } from '@angular/router';
import { STComponent, STColumn, STChange, STRequestOptions } from '@delon/abc/st';
import { SFComponent, SFSchema, SFDateWidgetSchema } from '@delon/form';
import { NzModalService } from 'ng-zorro-antd/modal';
import { STComponent, STColumn, STRequestOptions } from '@delon/abc/st';
import { SFSchema, SFDateWidgetSchema } from '@delon/form';
import { SearchDrawerService } from '@shared';
import { BasicTableComponent } from 'src/app/routes/commom';
import { TicketService } from '../../services/ticket.service';
@Component({
selector: 'app-etc-invoiced-logs',
templateUrl: './etc-invoiced-logs.component.html',
styleUrls: ['../../../commom/less/box.less', '../../../commom/less/expend-but.less']
styleUrls: ['../../../commom/less/commom-table.less']
})
export class ETCInvoicedLogsComponent implements OnInit {
export class ETCInvoicedLogsComponent extends BasicTableComponent {
@ViewChild('st', { static: true })
st!: STComponent;
@ViewChild('sf', { static: false })
sf!: SFComponent;
columns: STColumn[] = this.initST();
searchSchema: SFSchema = this.initSF();
schema: SFSchema = this.initSF();
_$expand = false;
constructor(public service: TicketService, private router: Router, public searchDrawerService: SearchDrawerService) {
super(searchDrawerService);
}
constructor(public service: TicketService, private nzModalService: NzModalService, private router: Router) {}
ngOnInit(): void {}
search() {
this.st?.load(1);
}
beforeReq = (requestOptions: STRequestOptions) => {
if (this.sf) {
@ -46,22 +47,6 @@ export class ETCInvoicedLogsComponent implements OnInit {
this.router.navigate(['/ticket/invoice-requested-detail/1']);
}
/**
* 重置表单
*/
resetSF() {
this.sf.reset();
this._$expand = false;
}
/**
* 伸缩查询条件
*/
expandToggle() {
this._$expand = !this._$expand;
this.sf?.setValue('/expand', this._$expand);
}
exportList() {
const params = { listSource: 1, pageSize: -1 };
if (this.sf) {
@ -107,10 +92,7 @@ export class ETCInvoicedLogsComponent implements OnInit {
type: 'string',
title: '车牌号',
ui: {
placeholder: '请输入',
visibleIf: {
expand: (value: boolean) => value
}
placeholder: '请输入'
}
},
exTime: {
@ -118,10 +100,7 @@ export class ETCInvoicedLogsComponent implements OnInit {
type: 'string',
ui: {
widget: 'sl-from-to-search',
format: 'yyyy-MM-dd',
visibleIf: {
expand: (value: boolean) => value
}
format: 'yyyy-MM-dd'
} as SFDateWidgetSchema
},
invoiceMakeTime: {
@ -129,20 +108,14 @@ export class ETCInvoicedLogsComponent implements OnInit {
type: 'string',
ui: {
widget: 'sl-from-to-search',
format: 'yyyy-MM-dd',
visibleIf: {
expand: (value: boolean) => value
}
format: 'yyyy-MM-dd'
} as SFDateWidgetSchema
},
sellerName: {
type: 'string',
title: '销售方',
ui: {
placeholder: '请输入',
visibleIf: {
expand: (value: boolean) => value
}
placeholder: '请输入'
}
},
ltdId: {
@ -152,9 +125,6 @@ export class ETCInvoicedLogsComponent implements OnInit {
widget: 'select',
placeholder: '请选择',
allowClear: true,
visibleIf: {
expand: (value: boolean) => value
},
asyncData: () => this.service.getNetworkFreightForwarder()
},
default: ''

View File

@ -1,14 +1,4 @@
<!--
* @Description :
* @Version : 1.0
* @Author : Shiming
* @Date : 2022-04-06 10:57:56
* @LastEditors : Shiming
* @LastEditTime : 2022-04-11 14:10:13
* @FilePath : \\tms-obc-web\\src\\app\\routes\\ticket-management\\components\\etc-invoiced-requested\\etc-invoiced-requested.component.html
* Copyright (C) 2022 huzhenhong. All rights reserved.
-->
<page-header-wrapper [title]="'申请记录'">
<!-- <page-header-wrapper [title]="'申请记录'">
</page-header-wrapper>
<nz-card class="search-box" nzBordered>
<div nz-row nzGutter="8">
@ -28,21 +18,36 @@
</button>
</div>
</div>
</nz-card>
</nz-card> -->
<nz-card class="content-box" nzBordered>
<nz-card class="table-box">
<div class="header_box">
<label class="page_title"> <label class="driver">|</label> 申请记录</label>
<div class="d-flex align-items-center mr-sm">
<div class="mr-md">
已选择
<strong class="text-primary">{{ selectedRows.length }}</strong> 张发票
<a *ngIf="selectedRows.length > 0" (click)="st.clearCheck()" class="ml-lg">清空</a>
</div>
<button nz-button nzDanger [nzLoading]="service.http.loading" (click)="openDrawer()">筛选</button>
<button nz-button nzDanger (click)="exprot()" acl [acl-ability]="['TICKET-ETC-INVOICE-REQUESTED-export']">
导出</button>
<button nz-button nzType="primary" (click)="this.auditAction()" acl
[acl-ability]="['TICKET-ETC-INVOICE-REQUESTED-apply']">申请开票</button>
</div>
</div>
<div class="d-flex align-items-center mb-md mt-md">
<!-- <div class="d-flex align-items-center mb-md mt-md">
<button nz-button (click)="this.auditAction()" acl [acl-ability]="['TICKET-ETC-INVOICE-REQUESTED-apply']">申请开票</button>
<div class="ml-md">
已选择
<strong class="text-primary">{{ selectedRows.length }}</strong> 条运单
<a *ngIf="selectedRows.length > 0" (click)="st.clearCheck()" class="ml-lg">清空</a>
</div>
</div>
</div> -->
<st #st [data]="service.$api_get_apply_invoice_page" [columns]="columns" [req]="{ process: beforeReq }" [page]="{}"
[loading]="false" [scroll]="{ x:'1200px' }" (change)="stChange($event)">
[loading]="false" [scroll]="{ x:'1200px',y:scrollY }" (change)="stChange($event)">
<ng-template st-row="call1No" let-item let-index="index" let-column="column">
{{item.driverName}}<br>{{item.driverPhone}}
</ng-template>

View File

@ -2,30 +2,32 @@ import { Component, OnInit, ViewChild } from '@angular/core';
import { Router } from '@angular/router';
import { STComponent, STColumn, STChange, STRequestOptions } from '@delon/abc/st';
import { SFComponent, SFSchema, SFDateWidgetSchema } from '@delon/form';
import { SearchDrawerService } from '@shared';
import { NzModalService } from 'ng-zorro-antd/modal';
import { BasicTableComponent } from 'src/app/routes/commom';
import { TicketService } from '../../services/ticket.service';
@Component({
selector: 'app-etc-invoiced-requested',
templateUrl: './etc-invoiced-requested.component.html',
styleUrls: ['../../../commom/less/box.less', '../../../commom/less/expend-but.less']
styleUrls: ['../../../commom/less/commom-table.less']
})
export class ETCInvoicedRequestedComponent implements OnInit {
export class ETCInvoicedRequestedComponent extends BasicTableComponent {
@ViewChild('st', { static: true })
st!: STComponent;
@ViewChild('sf', { static: false })
sf!: SFComponent;
@ViewChild('auditModal', { static: false })
auditModal!: any;
columns: STColumn[] = this.initST();
searchSchema: SFSchema = this.initSF();
_$expand = false;
schema: SFSchema = this.initSF();
selectedRows: any[] = [];
constructor(public service: TicketService, private nzModalService: NzModalService, private router: Router) {}
constructor(public service: TicketService, private nzModalService: NzModalService, public searchDrawerService: SearchDrawerService) {
super(searchDrawerService);
}
ngOnInit(): void {}
search() {
this.st?.load(1);
}
beforeReq = (requestOptions: STRequestOptions) => {
if (this.sf) {
@ -68,22 +70,6 @@ export class ETCInvoicedRequestedComponent implements OnInit {
});
}
/**
* 重置表单
*/
resetSF() {
this.sf.reset();
this._$expand = false;
}
/**
* 伸缩查询条件
*/
expandToggle() {
this._$expand = !this._$expand;
this.sf?.setValue('/expand', this._$expand);
}
private initSF(): SFSchema {
return {
properties: {
@ -123,9 +109,6 @@ export class ETCInvoicedRequestedComponent implements OnInit {
title: '司机姓名',
ui: {
placeholder: '请输入',
visibleIf: {
expand: (value: boolean) => value
}
}
},
driverPhone: {
@ -133,9 +116,6 @@ export class ETCInvoicedRequestedComponent implements OnInit {
title: '司机手机',
ui: {
placeholder: '请输入',
visibleIf: {
expand: (value: boolean) => value
}
}
},
licenseCarNo: {
@ -143,9 +123,6 @@ export class ETCInvoicedRequestedComponent implements OnInit {
title: '车牌号',
ui: {
placeholder: '请输入',
visibleIf: {
expand: (value: boolean) => value
}
}
},
licenseBelonging: {
@ -153,9 +130,6 @@ export class ETCInvoicedRequestedComponent implements OnInit {
title: '车辆所有人',
ui: {
placeholder: '请输入',
visibleIf: {
expand: (value: boolean) => value
}
}
},
dischargePlace: {
@ -164,9 +138,6 @@ export class ETCInvoicedRequestedComponent implements OnInit {
ui: {
autocomplete: 'off',
placeholder: '请选择',
visibleIf: {
expand: (value: boolean) => value
}
}
},
loadingPlace: {
@ -175,9 +146,6 @@ export class ETCInvoicedRequestedComponent implements OnInit {
ui: {
autocomplete: 'off',
placeholder: '请选择',
visibleIf: {
expand: (value: boolean) => value
}
}
},
shipperId: {
@ -190,9 +158,6 @@ export class ETCInvoicedRequestedComponent implements OnInit {
searchLoadingText: '搜索中...',
allowClear: true,
onSearch: (q: any) => this.service.getEnterpriceList({ enterpriseName: q }),
visibleIf: {
expand: (value: boolean) => value
}
}
},
enterpriseInfoName: {
@ -202,9 +167,6 @@ export class ETCInvoicedRequestedComponent implements OnInit {
widget: 'select',
placeholder: '请选择',
allowClear: true,
visibleIf: {
expand: (value: boolean) => value
},
asyncData: () => this.service.getNetworkFreightForwarder()
},
default: ''

View File

@ -1,4 +1,4 @@
<page-header-wrapper title="快递信息">
<!-- <page-header-wrapper title="快递信息">
</page-header-wrapper>
<nz-card class="search-box">
@ -12,13 +12,19 @@
<button nz-button (click)="resetSF()">重置</button>
</div>
</div>
</nz-card>
</nz-card> -->
<nz-card class="content-box">
<div class="mt-md mb-sm">
<button nz-button nzType="primary" (click)="printOrder()" acl [acl-ability]="['TICKET-EXPRESS-INFO-print']">打印面单</button>
<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]="['FINANCIAL-VOUCHER-list']">筛选</button>
<button nz-button nzType="primary" [nzLoading]="service.http.loading" (click)="openDrawer()" acl
[acl-ability]="['TICKET-EXPRESS-INFO-print']">筛选</button>
</div>
</div>
<st #st [data]="url" [columns]="columns" [req]="{ process:beforeReq }" [loading]="false" [page]="{}" [scroll]="{x:'1200px'}"
(change)="stChange($event)"></st>
<st #st [data]="url" [columns]="columns" [req]="{ process:beforeReq }" [loading]="false" [page]="{}"
[scroll]="{x:'1200px',y:scrollY}" (change)="stChange($event)"></st>
</nz-card>

View File

@ -1,34 +1,24 @@
/*
* @Description :
* @Version : 1.0
* @Author : Shiming
* @Date : 2022-04-28 20:27:22
* @LastEditors : Shiming
* @LastEditTime : 2022-04-29 14:14:59
* @FilePath : \\tms-obc-web\\src\\app\\routes\\ticket-management\\components\\express-info\\express-info.component.ts
* Copyright (C) 2022 huzhenhong. All rights reserved.
*/
import { Component, OnInit, ViewChild } from '@angular/core';
import { STComponent, STColumn, STChange, STRequestOptions } from '@delon/abc/st';
import { SFComponent, SFDateWidgetSchema, SFSchema } from '@delon/form';
import { SearchDrawerService } from '@shared';
import { NzModalService } from 'ng-zorro-antd/modal';
import { BasicTableComponent } from 'src/app/routes/commom';
import { TicketService } from '../../services/ticket.service';
import { ExpressDetailModalComponent } from './express-detail-modal/express-detail-modal.component';
@Component({
selector: 'app-express-info',
templateUrl: './express-info.component.html',
styleUrls: ['../../../commom/less/box.less']
styleUrls: ['../../../commom/less/commom-table.less']
})
export class ExpressInfoComponent implements OnInit {
export class ExpressInfoComponent extends BasicTableComponent {
@ViewChild('st', { static: true })
st!: STComponent;
@ViewChild('sf', { static: false })
sf!: SFComponent;
url = `/api/fcc/ficoExpressH/getListPage`;
searchSchema: SFSchema = {
schema: SFSchema = {
properties: {
expressCode: {
title: '快递单号',
@ -88,12 +78,16 @@ export class ExpressInfoComponent implements OnInit {
selectedRows: any[] = [];
reqParams = { pageIndex: 1, pageSize: 10 };
constructor(public service: TicketService, private nzModalService: NzModalService) {}
constructor(public service: TicketService, private nzModalService: NzModalService, public searchDrawerService: SearchDrawerService) {
super(searchDrawerService);
}
ngOnInit(): void {}
search() {
this.st?.load(1);
}
beforeReq = (requestOptions: STRequestOptions) => {
if (this.sf) {
Object.assign(requestOptions.body, {
@ -162,10 +156,4 @@ export class ExpressInfoComponent implements OnInit {
}
});
}
/**
* 重置表单
*/
resetSF() {
this.sf.reset();
}
}

View File

@ -1,4 +1,4 @@
<page-header-wrapper [title]="'进项发票'">
<!-- <page-header-wrapper [title]="'进项发票'">
</page-header-wrapper>
<nz-card class="search-box" nzBordered>
@ -19,20 +19,36 @@
</button>
</div>
</div>
</nz-card>
</nz-card> -->
<nz-card class="content-box" nzBordered>
<nz-card class="table-box">
<div class="header_box">
<label class="page_title"> <label class="driver">|</label> 进项发票</label>
<div class="d-flex align-items-center mr-sm">
<div class="mr-md">
已选择
<strong class="text-primary">{{ selectedRows.length }}</strong> 张发票
<a *ngIf="selectedRows.length > 0" (click)="st.clearCheck()" class="ml-lg">清空</a>
</div>
<button nz-button nzDanger [nzLoading]="service.http.loading" (click)="openDrawer()" acl
[acl-ability]="['FINANCIAL-VOUCHER-list']">筛选</button>
<button nz-button nzDanger acl [acl-ability]="['VEHICLE-LIST-search']"> 导出</button>
<button nz-button (click)="this.addInvoice()" nzType="primary" acl
[acl-ability]="['TICKET-INPUT-INVOICE-addInvoice']">添加发票</button>
</div>
</div>
<div class="d-flex align-items-center mb-md mt-md">
<button nz-button (click)="this.addInvoice()" nzType="primary" acl [acl-ability]="['TICKET-INPUT-INVOICE-addInvoice']">添加发票</button>
<!-- <div class="d-flex align-items-center mb-md mt-md">
<button nz-button (click)="this.addInvoice()" nzType="primary" acl
[acl-ability]="['TICKET-INPUT-INVOICE-addInvoice']">添加发票</button>
<div class="ml-md">
已选择
<strong class="text-primary">{{ selectedRows.length }}</strong> 张发票
<a *ngIf="selectedRows.length > 0" (click)="st.clearCheck()" class="ml-lg">清空</a>
</div>
</div>
</div> -->
<st #st [data]="service.$api_get_input_invoice_page" [columns]="columns" [req]="{ process: beforeReq }" [page]="{}"
[loading]="false" [scroll]="{ x:'1200px' }" (change)="stChange($event)">
[loading]="false" [scroll]="{ x:'1200px',y:scrollY }" (change)="stChange($event)">
</st>
</nz-card>

View File

@ -1,32 +1,39 @@
import { Component, OnInit, ViewChild } from '@angular/core';
import { Component, ViewChild } from '@angular/core';
import { Router } from '@angular/router';
import { STComponent, STColumn, STRequestOptions, STChange } from '@delon/abc/st';
import { SFComponent, SFDateWidgetSchema, SFSchema } from '@delon/form';
import { SFDateWidgetSchema, SFSchema } from '@delon/form';
import { SearchDrawerService } from '@shared';
import { NzModalService } from 'ng-zorro-antd/modal';
import { BasicTableComponent } from 'src/app/routes/commom';
import { TicketService } from '../../services/ticket.service';
import { AddCollectionInvoiceModalComponent } from './add-collection-invoice-modal/add-collection-invoice-modal.component';
@Component({
selector: 'app-input-invoice',
templateUrl: './input-invoice.component.html',
styleUrls: ['../../../commom/less/box.less', '../../../commom/less/expend-but.less']
styleUrls: ['../../../commom/less/commom-table.less']
})
export class InputInvoiceComponent implements OnInit {
export class InputInvoiceComponent extends BasicTableComponent {
@ViewChild('st', { static: true })
st!: STComponent;
@ViewChild('sf', { static: false })
sf!: SFComponent;
@ViewChild('auditModal', { static: false })
auditModal!: any;
columns: STColumn[] = this.initST();
searchSchema: SFSchema = this.initSF();
_$expand = false;
schema: SFSchema = this.initSF();
selectedRows: any[] = [];
constructor(public service: TicketService, private nzModalService: NzModalService, private router: Router) {}
constructor(
public service: TicketService,
private nzModalService: NzModalService,
private router: Router,
public searchDrawerService: SearchDrawerService
) {
super(searchDrawerService);
}
ngOnInit(): void {}
search() {
this.st?.load(1);
}
beforeReq = (requestOptions: STRequestOptions) => {
if (this.sf) {
@ -66,22 +73,6 @@ export class InputInvoiceComponent implements OnInit {
});
}
/**
* 重置表单
*/
resetSF() {
this.sf.reset();
this._$expand = false;
}
/**
* 伸缩查询条件
*/
expandToggle() {
this._$expand = !this._$expand;
this.sf?.setValue('/expand', this._$expand);
}
private initSF(): SFSchema {
return {
properties: {
@ -127,10 +118,7 @@ export class InputInvoiceComponent implements OnInit {
],
ui: {
widget: 'select',
placeholder: '请选择',
visibleIf: {
expand: (value: boolean) => value
}
placeholder: '请选择'
},
default: ''
},
@ -141,10 +129,7 @@ export class InputInvoiceComponent implements OnInit {
widget: 'select',
placeholder: '请选择',
allowClear: true,
asyncData: () => this.service.getCRMCustomerId(),
visibleIf: {
expand: (value: boolean) => value
}
asyncData: () => this.service.getCRMCustomerId()
}
},
createtime: {
@ -152,10 +137,7 @@ export class InputInvoiceComponent implements OnInit {
type: 'string',
ui: {
widget: 'sl-from-to-search',
format: 'yyyy-MM-dd',
visibleIf: {
expand: (value: boolean) => value
}
format: 'yyyy-MM-dd'
} as SFDateWidgetSchema
},
sts: {
@ -168,10 +150,7 @@ export class InputInvoiceComponent implements OnInit {
],
ui: {
widget: 'select',
placeholder: '请选择',
visibleIf: {
expand: (value: boolean) => value
}
placeholder: '请选择'
},
default: ''
},
@ -180,40 +159,28 @@ export class InputInvoiceComponent implements OnInit {
title: '发票日期',
ui: {
widget: 'sl-from-to-search',
format: 'yyyy-MM-dd',
visibleIf: {
expand: (value: boolean) => value
}
format: 'yyyy-MM-dd'
}
},
remarks: {
type: 'string',
title: '收票备注',
ui: {
placeholder: '请输入',
visibleIf: {
expand: (value: boolean) => value
}
placeholder: '请输入'
}
},
billCode: {
type: 'string',
title: '订单号',
ui: {
placeholder: '请输入',
visibleIf: {
expand: (value: boolean) => value
}
placeholder: '请输入'
}
},
feecode: {
type: 'string',
title: '费用号',
ui: {
placeholder: '请输入',
visibleIf: {
expand: (value: boolean) => value
}
placeholder: '请输入'
}
}
}

View File

@ -1,16 +1,4 @@
<!--
* @Description :
* @Version : 1.0
* @Author : Shiming
* @Date : 2022-01-21 15:39:30
* @LastEditors : Shiming
* @LastEditTime : 2022-04-29 13:55:16
* @FilePath : \\tms-obc-web\\src\\app\\routes\\ticket-management\\components\\invoice-requested\\invoice-requested.component.html
* Copyright (C) 2022 huzhenhong. All rights reserved.
-->
<page-header-wrapper [title]="'开票申请'"> </page-header-wrapper>
<!-- <page-header-wrapper [title]="'开票申请'"> </page-header-wrapper>
<nz-card class="search-box" nzBordered>
<div nz-row nzGutter="8">
<div nz-col [nzXl]="_$expand ? 24 : 18" [nzLg]="24" [nzSm]="24" [nzXs]="24">
@ -27,19 +15,24 @@
</button>
</div>
</div>
</nz-card>
</nz-card> -->
<nz-card class="table-box">
<div class="tab_header">
<label class="page_title">
<label class="driver">|</label>
开票申请</label>
<nz-tabset [nzTabBarExtraContent]="extraTemplate">
<nz-tab nzTitle="待受理" (nzClick)="selectChange('1')"></nz-tab>
<nz-tab nzTitle="处理中" (nzClick)="selectChange('2')"></nz-tab>
<nz-tab nzTitle="已拒绝" (nzClick)="selectChange('4')"></nz-tab>
<nz-tab nzTitle="已撤销" (nzClick)="selectChange('5')"></nz-tab>
<nz-tab nzTitle="已受理" (nzClick)="selectChange('3')"></nz-tab>
<nz-tab nzTitle="全部" (nzClick)="selectChange(null)"></nz-tab>
</nz-tabset>
</div>
<nz-card class="content-box" nzBordered>
<nz-tabset [nzTabBarExtraContent]="extraTemplate">
<nz-tab nzTitle="待受理" (nzClick)="selectChange('1')"></nz-tab>
<nz-tab nzTitle="处理中" (nzClick)="selectChange('2')"></nz-tab>
<nz-tab nzTitle="已拒绝" (nzClick)="selectChange('4')"></nz-tab>
<nz-tab nzTitle="已撤销" (nzClick)="selectChange('5')"></nz-tab>
<nz-tab nzTitle="已受理" (nzClick)="selectChange('3')"></nz-tab>
<nz-tab nzTitle="全部" (nzClick)="selectChange(null)"></nz-tab>
</nz-tabset>
<ng-template #extraTemplate>
<div class="d-flex align-items-center"
<div class="d-flex align-items-center mr-sm"
*ngIf="resourceStatus==='1'|| resourceStatus==='2' || resourceStatus==='3' || !resourceStatus">
<div class="mr-md">
已选择
@ -47,17 +40,35 @@
<strong class="text-red">{{ totalCallNo }}</strong>
<a *ngIf="totalCallNo > 0" (click)="st.clearCheck();totalCallNo=0" class="ml-lg">清空</a>
</div>
<button nz-button *ngIf="resourceStatus==='1' || !resourceStatus" (click)="this.batchRequested()" acl [acl-ability]="['TICKET-INVOICE-REQUESTED-userApply']">批量受理</button>
<button nz-button *ngIf="resourceStatus==='1' || !resourceStatus"
(click)="this.rejectAction(selectedRows)" acl [acl-ability]="['TICKET-INVOICE-REQUESTED-reject']">驳回</button>
<button nz-button *ngIf="resourceStatus !=='4' && resourceStatus !=='5'"
(click)="changeAddress(selectedRows)" acl [acl-ability]="['VEHICLE-LIST-search']">修改地址</button>
<button nz-button *ngIf="resourceStatus==='3' || !resourceStatus" (click)="printOrder(selectedRows)" acl [acl-ability]="['VEHICLE-LIST-search']">快递下单</button>
<button nz-button nzDanger [nzLoading]="service.http.loading" (click)="openDrawer()">筛选</button>
<button nz-button nzDanger (click)="exprot()" acl [acl-ability]="['TICKET-INVOICE-REQUESTED-export']"> 导出</button>
<button nz-button nz-dropdown [nzDropdownMenu]="menu" nzPlacement="bottomLeft">
更多<i nz-icon nzType="down" nzTheme="outline"></i></button>
<nz-dropdown-menu #menu="nzDropdownMenu">
<ul nz-menu>
<li nz-menu-item *ngIf="resourceStatus==='1' || !resourceStatus" (click)="this.batchRequested()" acl
[acl-ability]="['TICKET-INVOICE-REQUESTED-userApply']">
批量受理
</li>
<li nz-menu-item *ngIf="resourceStatus==='1' || !resourceStatus" (click)="this.rejectAction(selectedRows)" acl
[acl-ability]="['TICKET-INVOICE-REQUESTED-reject']">
驳回
</li>
<li nz-menu-item *ngIf="resourceStatus !=='4' && resourceStatus !=='5'" (click)="changeAddress(selectedRows)"
acl [acl-ability]="['VEHICLE-LIST-search']">
修改地址
</li>
<li nz-menu-item *ngIf="resourceStatus==='3' || !resourceStatus" (click)="printOrder(selectedRows)" acl
[acl-ability]="['VEHICLE-LIST-search']">
快递下单
</li>
</ul>
</nz-dropdown-menu>
</div>
</ng-template>
<st #st [data]="service.$api_get_invoice_requested_page" [columns]="columns" [req]="{ process: beforeReq }"
[page]="{}" [res]="{ process: afterRes }" [loading]="false" [scroll]="{ x: '1200px' }" (change)="stChange($event)">
[page]="{}" [res]="{ process: afterRes }" [loading]="false" [scroll]="{ x: '1200px',y:scrollY }" (change)="stChange($event)">
<ng-template st-row="vatappcode" let-item let-index="index" let-column="column">
{{ item.vatappcode }} <br />
<label class="text-primary">{{item.stsLabel}}</label>

View File

@ -1,7 +0,0 @@
:host::ng-deep {
.ant-tabs-tab-btn {
padding-left : 16px;
padding-right: 16px;
}
}

View File

@ -1,11 +1,11 @@
import { query } from '@angular/animations';
import { CurrencyPipe } from '@angular/common';
import { Component, ViewChild } from '@angular/core';
import { Router } from '@angular/router';
import { STComponent, STColumn, STChange, STRequestOptions } from '@delon/abc/st';
import { SFComponent, SFSchema, SFDateWidgetSchema, SFUISchema } from '@delon/form';
import { SFSchema, SFDateWidgetSchema } from '@delon/form';
import { SearchDrawerService } from '@shared';
import { NzModalService } from 'ng-zorro-antd/modal';
import { delay } from 'rxjs/operators';
import { BasicTableComponent } from 'src/app/routes/commom';
import { TicketService } from '../../services/ticket.service';
import { PrintOrderModalComponent } from './print-order-modal/print-order-modal.component';
@ -15,26 +15,33 @@ import { UpdateAddressModalComponent } from './update-address-modal/update-addre
@Component({
selector: 'app-invoice-requested',
templateUrl: './invoice-requested.component.html',
styleUrls: ['./invoice-requested.component.less', '../../../commom/less/box.less']
styleUrls: ['../../../commom/less/commom-table.less']
})
export class InvoiceRequestedComponent {
export class InvoiceRequestedComponent extends BasicTableComponent {
@ViewChild('st', { static: true })
st!: STComponent;
@ViewChild('sf', { static: false })
sf!: SFComponent;
@ViewChild('rejectModal', { static: false })
rejectModal!: any;
resourceStatus: any = '1';
columns: STColumn[] = this.initST();
searchSchema: SFSchema = this.initSF();
_$expand = false;
schema: SFSchema = this.initSF();
totalCallNo = 0;
selectedRows: any[] = [];
rejectReason = '';
constructor(public service: TicketService, private nzModalService: NzModalService, private router: Router) {}
constructor(
public service: TicketService,
private nzModalService: NzModalService,
private router: Router,
public searchDrawerService: SearchDrawerService
) {
super(searchDrawerService);
}
search() {
this.st?.load(1);
}
beforeReq = (requestOptions: STRequestOptions) => {
if (this.resourceStatus) {
@ -300,22 +307,6 @@ export class InvoiceRequestedComponent {
}
}
/**
* 重置表单
*/
resetSF() {
this.sf.reset();
this._$expand = false;
}
/**
* 伸缩查询条件
*/
expandToggle() {
this._$expand = !this._$expand;
this.sf?.setValue('/expand', this._$expand);
}
// 导出
exprot() {
this.service.exportStart({ ...this.sf?.value, pageSize: -1 }, this.service.$api_export_invoice_requested_page);
@ -357,9 +348,6 @@ export class InvoiceRequestedComponent {
default: '',
ui: {
widget: 'select',
visibleIf: {
expand: (value: boolean) => value
},
asyncData: () => this.service.getEnterpriseProject()
}
},
@ -369,9 +357,6 @@ export class InvoiceRequestedComponent {
ui: {
widget: 'select',
placeholder: '请选择',
visibleIf: {
expand: (value: boolean) => value
},
allowClear: true,
asyncData: () => this.service.getNetworkFreightForwarder()
},
@ -379,12 +364,7 @@ export class InvoiceRequestedComponent {
},
otherremarks: {
type: 'string',
title: '其他需求',
ui: {
visibleIf: {
expand: (value: boolean) => value
}
}
title: '其他需求'
},
createTime: {
title: '申请时间',
@ -393,10 +373,7 @@ export class InvoiceRequestedComponent {
widget: 'sl-from-to-search',
format: 'yyyy-MM-dd',
placeholder: '请选择',
nzShowTime: true,
visibleIf: {
expand: (value: boolean) => value
}
nzShowTime: true
} as SFDateWidgetSchema
},
isdetail: {
@ -409,10 +386,7 @@ export class InvoiceRequestedComponent {
],
ui: {
widget: 'select',
placeholder: '请选择',
visibleIf: {
expand: (value: boolean) => value
}
placeholder: '请选择'
},
default: ''
},
@ -425,10 +399,7 @@ export class InvoiceRequestedComponent {
searchDebounceTime: 300,
searchLoadingText: '搜索中...',
allowClear: true,
onSearch: (q: any) => this.service.getEnterpriceList({ enterpriseName: q }),
visibleIf: {
expand: (value: boolean) => value
}
onSearch: (q: any) => this.service.getEnterpriceList({ enterpriseName: q })
}
}
}

View File

@ -1,14 +1,4 @@
<!--
* @Description :
* @Version : 1.0
* @Author : Shiming
* @Date : 2022-01-19 20:19:59
* @LastEditors : Shiming
* @LastEditTime : 2022-01-26 14:27:32
* @FilePath : \\tms-obc-web\\src\\app\\routes\\ticket-management\\components\\invoiced-list\\invoiced-list.component.html
* Copyright (C) 2022 huzhenhong. All rights reserved.
-->
<page-header-wrapper [title]="'已开发票'"> </page-header-wrapper>
<!-- <page-header-wrapper [title]="'已开发票'"> </page-header-wrapper>
<nz-card class="search-box" nzBordered>
<div nz-row nzGutter="8">
@ -19,29 +9,32 @@
<div nz-col [nzXl]="_$expand ? 24 : 6" [nzLg]="24" [nzSm]="24" [nzXs]="24" class="text-right">
<button nz-button nzType="primary" [nzLoading]="service.http.loading" (click)="st?.load(1)">查询</button>
<button nz-button (click)="resetSF()">重置</button>
<!-- <button nz-button> 导出</button> -->
<button nz-button nzType="link" (click)="expandToggle()">
{{ !_$expand ? '展开' : '收起' }}
<i nz-icon [nzType]="!_$expand ? 'down' : 'up'"></i>
</button>
</div>
</div>
</nz-card>
</nz-card> -->
<nz-card nzBordered>
<div class="d-flex align-items-center mb-md">
<!-- <button nz-button (click)="this.deletedInvoice()">作废发票</button>
<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()">筛选</button>
</div>
</div>
<!-- <button nz-button (click)="this.deletedInvoice()">作废发票</button>
<button nz-button (click)="this.invoiceHongChong()">发票红冲</button> -->
<!-- <div class="ml-md">
<!-- <div class="ml-md">
已选择
<strong class="text-red">{{ selectedRows.length }}</strong> 条数据&nbsp;&nbsp; 开票金额总计
<strong class="text-red">{{ totalCallNo }}</strong>
<a *ngIf="totalCallNo > 0" (click)="st.clearCheck()" class="ml-lg">清空</a>
</div> -->
</div>
<st #st [data]="service.$api_get_invoice_page" [columns]="columns" [req]="{ process: beforeReq }" [page]="{}"
[loading]="false" [scroll]="{ x: '1200px' }" (change)="stChange($event)">
[loading]="false" [scroll]="{ x: '1200px',y:scrollY }" (change)="stChange($event)">
<ng-template st-row="no" let-item let-index="index">
{{ item.no }}
<a>预览发票</a>
@ -63,13 +56,13 @@
<ng-template #requestedModal>
<div nz-row nzGutter="8">
<div nz-col nzSpan="24" se-container [labelWidth]="100">
<se [col]="1" label="快递公司" required>
<input nz-input [(ngModel)]="openInfo.expresscompany" placeholder="请输入" />
</se>
<se [col]="1" label="快递单号" required>
<input nz-input [(ngModel)]="openInfo.expressno" placeholder="请输入" />
</se>
</div>
<div nz-col nzSpan="24" se-container [labelWidth]="100">
<se [col]="1" label="快递公司" required>
<input nz-input [(ngModel)]="openInfo.expresscompany" placeholder="请输入" />
</se>
<se [col]="1" label="快递单号" required>
<input nz-input [(ngModel)]="openInfo.expressno" placeholder="请输入" />
</se>
</div>
</div>
</ng-template>

View File

@ -1,27 +1,24 @@
import { CurrencyPipe } from '@angular/common';
import { Component, OnInit, ViewChild } from '@angular/core';
import { Component, ViewChild } from '@angular/core';
import { Router } from '@angular/router';
import { STComponent, STColumn, STChange, STRequestOptions } from '@delon/abc/st';
import { SFComponent, SFSchema, SFDateWidgetSchema } from '@delon/form';
import { SFSchema, SFDateWidgetSchema } from '@delon/form';
import { SearchDrawerService } from '@shared';
import { NzModalService } from 'ng-zorro-antd/modal';
import { BasicTableComponent } from 'src/app/routes/commom';
import { TicketService } from '../../services/ticket.service';
@Component({
selector: 'app-invoiced-list',
templateUrl: './invoiced-list.component.html',
styleUrls: ['../../../commom/less/box.less', '../../../commom/less/expend-but.less']
styleUrls: ['../../../commom/less/commom-table.less']
})
export class InvoicedListComponent implements OnInit {
export class InvoicedListComponent extends BasicTableComponent {
@ViewChild('st', { static: true })
st!: STComponent;
@ViewChild('sf', { static: false })
sf!: SFComponent;
@ViewChild('logosticsLogsModal', { static: false })
logosticsLogsModal!: any;
columns: STColumn[] = this.initST();
searchSchema: SFSchema = this.initSF();
_$expand = false;
schema: SFSchema = this.initSF();
selectedRows: any[] = [];
totalCallNo = 0;
@ -34,12 +31,21 @@ export class InvoicedListComponent implements OnInit {
@ViewChild('requestedModal', { static: false })
requestedModal!: any;
openInfo: any = { expresscompany: null, expressno: null };
constructor(public service: TicketService, private nzModalService: NzModalService, private router: Router) {}
constructor(
public service: TicketService,
private nzModalService: NzModalService,
private router: Router,
public searchDrawerService: SearchDrawerService
) {
super(searchDrawerService);
}
ngOnInit(): void {}
search() {
this.st?.load(1);
}
beforeReq = (requestOptions: STRequestOptions) => {
Object.assign(requestOptions.body,{sts: '3'})
Object.assign(requestOptions.body, { sts: '3' });
if (this.sf) {
Object.assign(requestOptions.body, {
...this.sf?.value,
@ -49,7 +55,7 @@ export class InvoicedListComponent implements OnInit {
}
});
}
return requestOptions ;
return requestOptions;
};
stChange(e: STChange): void {
@ -167,22 +173,6 @@ export class InvoicedListComponent implements OnInit {
});
}
/**
* 重置表单
*/
resetSF() {
this.sf.reset();
this._$expand = false;
}
/**
* 伸缩查询条件
*/
expandToggle() {
this._$expand = !this._$expand;
this.sf?.setValue('/expand', this._$expand);
}
private initSF(): SFSchema {
return {
properties: {
@ -220,20 +210,14 @@ export class InvoicedListComponent implements OnInit {
widget: 'sl-from-to-search',
format: 'yyyy-MM-dd',
placeholder: '请选择',
nzShowTime: true,
visibleIf: {
expand: (value: boolean) => value
}
nzShowTime: true
} as SFDateWidgetSchema
},
artoname: {
type: 'string',
title: '购买人',
ui: {
placeholder: '请输入',
visibleIf: {
expand: (value: boolean) => value
}
placeholder: '请输入'
}
},
ltdId: {
@ -243,9 +227,6 @@ export class InvoicedListComponent implements OnInit {
widget: 'select',
placeholder: '请选择',
allowClear: true,
visibleIf: {
expand: (value: boolean) => value
},
asyncData: () => this.service.getNetworkFreightForwarder({}, true)
},
default: ''
@ -254,10 +235,7 @@ export class InvoicedListComponent implements OnInit {
type: 'string',
title: '分票编号',
ui: {
placeholder: '请输入',
visibleIf: {
expand: (value: boolean) => value
}
placeholder: '请输入'
}
},
invoicetype: {
@ -269,10 +247,7 @@ export class InvoicedListComponent implements OnInit {
],
ui: {
widget: 'select',
placeholder: '请选择',
visibleIf: {
expand: (value: boolean) => value
}
placeholder: '请选择'
},
default: ''
}

View File

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

View File

@ -1,39 +1,14 @@
<!--
* @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>
<!-- <page-header-wrapper></page-header-wrapper>
<nz-card>
<!-- 搜索区 -->
<!-- 搜索表单 -->
<div nz-row nzGutter="8">
<div nz-col [nzXl]="_$expand ? 24 : 18" [nzLg]="24" [nzSm]="24" [nzXs]="24">
<sf #sf [schema]="schema" [ui]="ui" [compact]="true" [button]="'none'"></sf>
</div>
<div nz-col [nzXl]="_$expand ? 24 : 6" [nzLg]="24" [nzSm]="24" [nzXs]="24" class="text-right">
<button
nz-button
nzType="primary"
[nzLoading]="service.http.loading"
(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 nzType="primary" [nzLoading]="service.http.loading" (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 nzType="link" (click)="expandToggle()">
{{ !_$expand ? '展开' : '收起' }}
@ -41,23 +16,22 @@
</button>
</div>
</div>
</nz-card>
<nz-card>
<!-- 数据列表 -->
<!-- 工具栏 -->
<div class="toolbar" style="float: right;
padding-bottom: 15px;">
<button nz-button nzType="primary" (click)="add()">添加车队长</button>
</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-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>
<st
#st
[columns]="columns"
[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"
>
<!-- 数据列表 -->
<st #st [columns]="columns" [data]="service.$api_get_user_expand" [req]="{ params: reqParams }"
[res]="{ process: dataProcess }" [page]="{ }" [loading]="false" [scroll]="{ x: '1200px',y:scrollY }">
<ng-template st-row="promotersTelephone" let-item let-index="index">
<a (click)="addPromoter(item)" acl [acl-ability]="['USERCENTER-DRIVER-CAPTAIN-promoter']">
{{ item.promotersTelephone || '添加' }}
@ -74,4 +48,4 @@
</se>
</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 { SFComponent, SFSchema, SFUISchema } from '@delon/form';
import { ModalHelper } from '@delon/theme';
import { DynamicSettingModalComponent } from '@shared';
import { DynamicSettingModalComponent, SearchDrawerService } from '@shared';
import { NzModalService } from 'ng-zorro-antd/modal';
import { BasicTableComponent } from 'src/app/routes/commom';
import { UsermanageService } from '../../../services/usercenter.service';
import { CtcCaptatinAddComponent } from './add/add.component';
@Component({
selector: 'app-usercenter-components-driver-captain',
templateUrl: './captain.component.html',
styleUrls: ['./captain.component.less']
styleUrls: ['../../../../commom/less/commom-table.less']
})
export class UserCenterComponentsDriverCaptainComponent implements OnInit {
_$expand = false;
ui: SFUISchema = { '*': { spanLabelFixed: 120, grid: { lg: 8, md: 12, sm: 12, xs: 24 } } };
export class UserCenterComponentsDriverCaptainComponent extends BasicTableComponent implements OnInit {
schema: SFSchema = this.initSF();
columns: STColumn[] = this.initST();
@ViewChild('st', { static: false }) st!: STComponent;
@ViewChild('sf', { static: false }) sf!: SFComponent;
@ViewChild('promoterModal', { static: false })
promoterModal!: any;
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() {
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 {
@ -146,10 +143,7 @@ export class UserCenterComponentsDriverCaptainComponent implements OnInit {
type: 'string',
maxLength: 11,
ui: {
placeholder: '请输入',
visibleIf: {
expand: (value: boolean) => value
}
placeholder: '请输入'
}
},
identityStatus: {
@ -163,10 +157,7 @@ export class UserCenterComponentsDriverCaptainComponent implements OnInit {
],
default: '',
ui: {
widget: 'select',
visibleIf: {
expand: (value: boolean) => value
}
widget: 'select'
}
},
source: {
@ -176,14 +167,11 @@ export class UserCenterComponentsDriverCaptainComponent implements OnInit {
{ label: '全部', value: '' },
{ label: '用户注册', value: 1 },
{ label: '货主添加', value: 2 },
{ label: '运营添加', value: 3 },
{ label: '运营添加', value: 3 }
],
default: '',
ui: {
widget: 'select',
visibleIf: {
expand: (value: boolean) => value
}
widget: 'select'
}
}
}
@ -209,7 +197,7 @@ export class UserCenterComponentsDriverCaptainComponent implements OnInit {
}
},
{ 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: '操作',
@ -222,7 +210,7 @@ export class UserCenterComponentsDriverCaptainComponent implements OnInit {
this.router.navigate(['/usercenter/driver/captain/detail', item.appUserId]);
},
acl: { ability: ['USERCENTER-DRIVER-CAPTAIN-view'] }
},
}
// {
// text: '基础设置',
// click: item => this.settingAction(item),

View File

@ -39,10 +39,60 @@
</page-header-wrapper>
<nz-card [nzLoading]="service.http.loading">
<div [class]="isEditUser?'edit-box':'readOnly-box'">
<sv-container col="2">
<sv-title>个人信息
<nz-card [nzLoading]="service.http.loading" [nzBorderless]="true">
<div class="mb-md">
<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;" 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
nzType="check-circle" nzTheme="fill" class="mr-xs"></i>审核通过
</label>
@ -85,49 +135,82 @@
[acl-ability]="['USERCENTER-DRIVER-LIST-DETAIL-editUser']">修改</button>
</ng-template>
</div>
</sv-title>
<sv label="姓名">
<input nz-input type="text" [(ngModel)]="userIdentityDetail.name" [readonly]="!isEditUser"
[nzBorderless]="!isEditUser" [placeholder]="isEditUser?'':'-'">
</sv>
<sv label="身份证号">
<input nz-input type="text" [(ngModel)]="userIdentityDetail.certificateNumber" [readonly]="!isEditUser"
[nzBorderless]="!isEditUser" [placeholder]="isEditUser?'':'-'">
</sv>
<sv label="有效期" col="1">
<nz-date-picker [(ngModel)]="userIdentityDetail.validStartTime" [nzDisabled]="!isEditUser" nzPlaceHolder=" "
[nzBorderless]="!isEditUser" [nzSuffixIcon]="isEditUser?'calendar':''" style="width: 110px;" class="calendar">
</nz-date-picker>
-
<ng-container *ngIf="!isEditUser && !userIdentityDetail?.validEndTime && userIdentityDetail?.validStartTime">
<label style="padding-left: 11px;">长期</label>
</ng-container>
<nz-date-picker [(ngModel)]="userIdentityDetail.validEndTime" [nzDisabled]="!isEditUser" nzPlaceHolder=" "
[nzBorderless]="!isEditUser" [nzSuffixIcon]="isEditUser?'calendar':''" style="width: 110px;" 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-title> -->
<sv label="姓名">
<input nz-input type="text" [(ngModel)]="userIdentityDetail.name" [readonly]="!isEditUser"
[nzBorderless]="!isEditUser" [placeholder]="isEditUser?'':'-'">
</sv>
<sv label="身份证号">
<input nz-input type="text" [(ngModel)]="userIdentityDetail.certificateNumber" [readonly]="!isEditUser"
[nzBorderless]="!isEditUser" [placeholder]="isEditUser?'':'-'">
</sv>
<sv label="有效期" col="1">
<nz-date-picker [(ngModel)]="userIdentityDetail.validStartTime" [nzDisabled]="!isEditUser" nzPlaceHolder=" "
[nzBorderless]="!isEditUser" [nzSuffixIcon]="isEditUser?'calendar':''" style="width: 110px;"
class="calendar">
</nz-date-picker>
-
<ng-container *ngIf="!isEditUser && !userIdentityDetail?.validEndTime && userIdentityDetail?.validStartTime">
<label style="padding-left: 11px;">长期</label>
</ng-container>
<nz-date-picker [(ngModel)]="userIdentityDetail.validEndTime" [nzDisabled]="!isEditUser" nzPlaceHolder=" "
[nzBorderless]="!isEditUser" [nzSuffixIcon]="isEditUser?'calendar':''" style="width: 110px;"
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
*ngTemplateOutlet="uploadTemplate;context:{data:userIdentityDetail,status:isEditUser,key:'certificatePhotoBackWatermark',key2:'certificatePhotoBack',hover:'certificateBack'}">
</ng-container>
</div>
</sv>
</sv-container>
<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
*ngTemplateOutlet="uploadTemplate;context:{data:userIdentityDetail,status:isEditUser,key:'certificatePhotoBackWatermark',key2:'certificatePhotoBack',hover:'certificateBack'}">
</ng-container>
</div>
</sv>
</sv-container>
</div>
</div>
<nz-divider></nz-divider>
<div [class]="isEditDriver?'edit-box':'readOnly-box'">
<sv-container col="3" class="mt16">
<sv-title>驾驶证信息
<div class="mb-md">
<div class="font-weight-blod text-md detail-title" style="justify-content: space-between;">
<div>
<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
nzType="check-circle" nzTheme="fill" class="mr-xs"></i>审核通过
</label>
@ -152,37 +235,37 @@
[acl-ability]="['USERCENTER-DRIVER-LIST-DETAIL-editDriver']">修改</button>
</ng-template>
</div>
</sv-title>
<sv label="驾驶证号">
<input nz-input type="text" [(ngModel)]="driverDetail.licenseNo" [readonly]="!isEditDriver"
[nzBorderless]="!isEditDriver" [placeholder]="isEditDriver?'':'-'">
</sv>
<sv label="准驾车型">
<nz-select [nzMaxTagCount]="3" nzPlaceHolder="请选择" [(ngModel)]="driverDetail.driverModel" nzMode="multiple"
[nzPlaceHolder]="isEditDriver?'':'-'" [nzBorderless]="!isEditDriver" [nzShowArrow]="isEditDriver"
[nzDisabled]="!isEditDriver">
<nz-option *ngFor="let i of contencarModel" [nzLabel]="i.label" [nzValue]="i.label"></nz-option>
</nz-select>
</sv>
<sv label="有效期" col="1">
<nz-date-picker [(ngModel)]="driverDetail.validStartTime" [nzDisabled]="!isEditDriver" nzPlaceHolder=" "
[nzBorderless]="!isEditDriver" [nzSuffixIcon]="isEditDriver?'calendar':''" style="width: 110px;"
class="calendar">
</nz-date-picker>
-
<ng-container *ngIf="!isEditDriver && !driverDetail?.validEndTime && driverDetail?.validStartTime">
<label style="padding-left: 11px;">长期</label>
</ng-container>
<nz-date-picker [(ngModel)]="driverDetail.validEndTime" [nzDisabled]="!isEditDriver" nzPlaceHolder=" "
[nzBorderless]="!isEditDriver" [nzSuffixIcon]="isEditDriver?'calendar':''" style="width: 110px;"
class="calendar">
</nz-date-picker>
<ng-container *ngIf="isEditDriver">
<label nz-checkbox [ngModel]="!!!driverDetail.validEndTime"
(ngModelChange)="$event?driverDetail.validEndTime='':''" class="ml-sm">长期</label>
</ng-container>
</sv>
<!-- <sv label="有效期起">
</sv-title> -->
<sv label="驾驶证号">
<input nz-input type="text" [(ngModel)]="driverDetail.licenseNo" [readonly]="!isEditDriver"
[nzBorderless]="!isEditDriver" [placeholder]="isEditDriver?'':'-'">
</sv>
<sv label="准驾车型">
<nz-select [nzMaxTagCount]="3" nzPlaceHolder="请选择" [(ngModel)]="driverDetail.driverModel" nzMode="multiple"
[nzPlaceHolder]="isEditDriver?'':'-'" [nzBorderless]="!isEditDriver" [nzShowArrow]="isEditDriver"
[nzDisabled]="!isEditDriver">
<nz-option *ngFor="let i of contencarModel" [nzLabel]="i.label" [nzValue]="i.label"></nz-option>
</nz-select>
</sv>
<sv label="有效期" col="1">
<nz-date-picker [(ngModel)]="driverDetail.validStartTime" [nzDisabled]="!isEditDriver" nzPlaceHolder=" "
[nzBorderless]="!isEditDriver" [nzSuffixIcon]="isEditDriver?'calendar':''" style="width: 110px;"
class="calendar">
</nz-date-picker>
-
<ng-container *ngIf="!isEditDriver && !driverDetail?.validEndTime && driverDetail?.validStartTime">
<label style="padding-left: 11px;">长期</label>
</ng-container>
<nz-date-picker [(ngModel)]="driverDetail.validEndTime" [nzDisabled]="!isEditDriver" nzPlaceHolder=" "
[nzBorderless]="!isEditDriver" [nzSuffixIcon]="isEditDriver?'calendar':''" style="width: 110px;"
class="calendar">
</nz-date-picker>
<ng-container *ngIf="isEditDriver">
<label nz-checkbox [ngModel]="!!!driverDetail.validEndTime"
(ngModelChange)="$event?driverDetail.validEndTime='':''" class="ml-sm">长期</label>
</ng-container>
</sv>
<!-- <sv label="有效期起">
<nz-date-picker [(ngModel)]="driverDetail.validStartTime" [nzDisabled]="!isEditDriver"
[nzPlaceHolder]="isEditDriver?'':'-'" [nzBorderless]="!isEditDriver"
[nzSuffixIcon]="isEditDriver?'calendar':''"></nz-date-picker>
@ -192,32 +275,43 @@
[nzPlaceHolder]="isEditDriver?'':'-'" [nzBorderless]="!isEditDriver"
[nzSuffixIcon]="isEditDriver?'calendar':''"></nz-date-picker>
</sv> -->
<sv label="驾驶证签发机关" col="2">
<ng-container *ngIf="isEditDriver; else signingOrganizationTemplate">
<input nz-input type="text" [(ngModel)]="driverDetail.signingOrganization" [readonly]="!isEditDriver"
[nzBorderless]="!isEditDriver" [placeholder]="isEditDriver?'':'-'">
</ng-container>
<ng-template #signingOrganizationTemplate>
{{driverDetail.signingOrganization}}
</ng-template>
</sv>
<sv label="驾驶证照片" col="1">
<ng-container
*ngTemplateOutlet="uploadTemplate;context:{data:driverDetail,status:isEditDriver,key:'certificatePhotoWatermark',key2:'certificatePhoto',hover:'driverCertificate'}">
</ng-container>
</sv>
</sv-container>
<nz-divider></nz-divider>
<sv label="驾驶证签发机关" col="2">
<ng-container *ngIf="isEditDriver; else signingOrganizationTemplate">
<input nz-input type="text" [(ngModel)]="driverDetail.signingOrganization" [readonly]="!isEditDriver"
[nzBorderless]="!isEditDriver" [placeholder]="isEditDriver?'':'-'">
</ng-container>
<ng-template #signingOrganizationTemplate>
{{driverDetail.signingOrganization}}
</ng-template>
</sv>
<sv label="驾驶证照片" col="1">
<ng-container
*ngTemplateOutlet="uploadTemplate;context:{data:driverDetail,status:isEditDriver,key:'certificatePhotoWatermark',key2:'certificatePhoto',hover:'driverCertificate'}">
</ng-container>
</sv>
</sv-container>
</div>
</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-title>从业资格证信息
<!-- <sv-title>从业资格证信息
<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>
</sv-title>
</sv-title> -->
<sv label="从业资格证号">
<input nz-input type="text" [(ngModel)]="licenseDetail.licenseNo" [readonly]="!isEditDriver"
[nzBorderless]="!isEditDriver" [placeholder]="isEditDriver?'':'-'">
@ -262,73 +356,95 @@
</sv-container>
</div>
<nz-divider></nz-divider>
<sv-container col="3" class="mt16">
<sv-title>载具信息</sv-title>
<ng-container *ngFor="let carDatail of carList">
<sv label="车牌号">
{{ carDatail?.carNo }}
</sv>
<sv label="车牌颜色">
{{ carDatail?.carNoColorLabel }}
</sv>
<sv label="车型">
{{ carDatail?.carModelLabel }}
</sv>
<sv label="车长">
{{ carDatail?.carLengthLabel ? carDatail?.carLengthLabel +'米' :'' }}
</sv>
<sv label="是否为当前车辆">
{{ carDatail?.isDefault?'是':'否' }}
</sv>
<sv label="自有载具">
{{ carDatail?.isSelf?'否':'是' }}
</sv>
<sv label="行驶证照片" col="1">
<app-imagelist [imgList]="[carDatail?.certificatePhotoFrontWatermark,carDatail?.certificatePhotoBackWatermark]">
</app-imagelist>
</sv>
<sv label="道路运输证照片" col="3">
<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>
<div class="mb-md">
<div class="font-weight-blod text-md detail-title">
<a class="sign"></a>
<span>载具信息</span>
<ng-container *ngIf="carList?.length===0">(暂无载具信息)</ng-container>
</div>
<sv-container col="3" class="mt16">
<!-- <sv-title>载具信息</sv-title> -->
<ng-container *ngFor="let carDatail of carList">
<sv label="车牌号">
{{ carDatail?.carNo }}
</sv>
<sv label="车牌颜色">
{{ carDatail?.carNoColorLabel }}
</sv>
<sv label="车型">
{{ carDatail?.carModelLabel }}
</sv>
<sv label="车长">
{{ carDatail?.carLengthLabel ? carDatail?.carLengthLabel +'米' :'' }}
</sv>
<sv label="是否为当前车辆">
{{ carDatail?.isDefault?'是':'否' }}
</sv>
<sv label="自有载具">
{{ carDatail?.isSelf?'否':'是' }}
</sv>
<sv label="行驶证照片" col="1">
<app-imagelist
[imgList]="[carDatail?.certificatePhotoFrontWatermark,carDatail?.certificatePhotoBackWatermark]">
</app-imagelist>
</sv>
<sv label="道路运输证照片" col="3">
<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">
<sv-title>银行结算信息 <ng-container *ngIf="bankList?.length===0">(暂无银行信息)</ng-container>
</sv-title>
<ng-container *ngFor="let item of bankList">
<sv label="开户银行">
{{ item.bankName }}
</sv>
<sv label="银行卡号">
{{ item?.bankCardNumber }}
</sv>
</ng-container>
</sv-container>
<nz-divider></nz-divider>
<sv-container col="3" class="mt-md">
<sv-title>服务评级
<div class="mb-md">
<div class="font-weight-blod text-md detail-title">
<a class="sign"></a>
<span>银行结算信息</span>
<ng-container *ngIf="bankList?.length===0">(暂无银行信息)</ng-container>
</div>
<sv-container col="3" class="mt-md">
<!-- <sv-title>银行结算信息 <ng-container *ngIf="bankList?.length===0">(暂无银行信息)</ng-container>
</sv-title> -->
<ng-container *ngFor="let item of bankList">
<sv label="开户银行">
{{ item.bankName }}
</sv>
<sv label="银行卡号">
{{ item?.bankCardNumber }}
</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>
</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">
<!-- <sv-title>服务评级
<ng-container *ngIf="billEvaluateList?.length===0">(暂无评级)</ng-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">
<sv-title>关联企业</sv-title>
<div class="mb-md">
<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"
[req]="{ method: 'POST', allInBody: true, params: {appUserId:route.snapshot.params.id} }" [page]="{ show: false }"
[res]="{ reName: { list: 'data' } }" style="width: 100%;">
</st>
</sv-container>
</div>
</nz-card>
@ -383,4 +499,4 @@
</div>
</div>
</nz-upload>
</ng-template>
</ng-template>

View File

@ -1,16 +1,5 @@
<!--
* @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>
<!-- <page-header-wrapper></page-header-wrapper>
<nz-card>
<!-- 搜索区 -->
<!-- 搜索表单 -->
<div nz-row nzGutter="8">
<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>
@ -21,17 +10,22 @@
<button nz-button nzType="primary" [disabled]="false" (click)="exportList()" acl
[acl-ability]="['USERCENTER-DRIVER-CONFIG-export']">导出</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>
</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 }"
[loading]="false" [page]={}>
<st #st [columns]="columns" [scroll]="{ x: '1200px',y:scrollY }" [data]="service.$api_configPage" [req]="{ params: reqParams }"
[loading]="false" [page]="{}">
<ng-template st-row="monthFreightAmount" let-item let-index="index">
<div>{{item?.monthFreightAmount | currency}}</div>
</ng-template>

View File

@ -2,21 +2,23 @@ import { Component, OnInit, ViewChild } from '@angular/core';
import { ActivatedRoute } from '@angular/router';
import { STColumn, STComponent } from '@delon/abc/st';
import { SFComponent, SFSchema } from '@delon/form';
import { DynamicSettingModalComponent } from '@shared';
import { DynamicSettingModalComponent, SearchDrawerService } from '@shared';
import { NzModalService } from 'ng-zorro-antd/modal';
import { BasicTableComponent } from 'src/app/routes/commom';
import { UsermanageService } from '../../../services/usercenter.service';
@Component({
selector: 'app-usercenter-components-driver-config',
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();
columns: STColumn[] = this.initST();
@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() {}
search() {
this.st?.load(1);
}
settingAction(item?: any) {
const modal = this.modal.create({
nzTitle: '配置',
@ -105,7 +111,7 @@ export class UserCenterComponentsDriverConfigComponent implements OnInit {
// { title: '', type: 'checkbox', className: 'text-center' },
{ title: '司机姓名', className: 'text-center', width: '170px', index: 'name' },
{ 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: 'dayWithdrawalAmount' },
{ title: '月提现金额上限(元)', className: 'text-center', width: '200px', render: 'monthWithdrawalAmount' },

View File

@ -257,7 +257,7 @@ export class FreightConfigComponent extends BasicTableComponent implements OnIni
format: item => `${item.contractSurchargeRatio}%`
},
{
title: '合同单业务量(元)',
title: '合同单业务量(元)',
index: 'contractQuota',
width: 170,
type: 'widget',
@ -265,7 +265,7 @@ export class FreightConfigComponent extends BasicTableComponent implements OnIni
widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.contractQuota }) }
},
{
title: '货源单业务量(元)',
title: '货源单业务量(元)',
index: 'goodsQuota',
width: 170,
type: 'widget',

View File

@ -114,10 +114,11 @@
</ng-template>
</page-header-wrapper>
<nz-card [class]="isEdit?'edit-box':'readOnly-box'">
<sv-container col="2" class="mt16">
<sv-title>
<label class="mr-md">企业基本信息</label>
<nz-card [class]="isEdit?'edit-box':'readOnly-box'" [nzBorderless]="true">
<div class="mb-md">
<div class="font-weight-blod text-md detail-title">
<a class="sign"></a>
<span class="mr-xs">企业基本信息</span>
<label *ngIf="detailData?.approvalStatus===10" style="color: #1890ff;"><i nz-icon nzType="info-circle"
nzTheme="fill" class="mr-xs"></i>待审核
</label>
@ -130,251 +131,296 @@
<label *ngIf="detailData?.isExpired" style="color: #fa8c16;">
<i nz-icon nzType="info-circle" nzTheme="fill" class="ml-md mr-xs"></i>企业营业期限已过期
</label>
<p style="margin-bottom: 0;">
四要素验证:
<label *ngIf="detailData?.esignCheckStatus===0" style="color: #ff4d4f;"><i nz-icon nzType="info-circle"
nzTheme="fill" class="mr-xs"></i>不通过&nbsp;&nbsp;驳回原因:{{detailData?.esignCheckMsg}}
</label>
<label *ngIf="detailData?.esignCheckStatus===1" style="color: #52c41a;"><i nz-icon nzType="check-circle"
nzTheme="fill" class="mr-xs"></i>通过
</label>
<label *ngIf="detailData?.esignCheckStatus===2" style="color: #1890ff;"><i nz-icon nzType="close-circle"
nzTheme="fill" class="mr-xs"></i>未认证:&nbsp;&nbsp;{{detailData?.esignCheckMsg}}
</label>
</p>
</sv-title>
<sv label="公司名称">
<ng-container *ngIf="isEdit; else enterpriseNameelseTemplate">
<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"
</div>
<sv-container col="2" class="mt16">
<sv-title>
<!-- <label class="mr-md">企业基本信息</label>
<label *ngIf="detailData?.approvalStatus===10" style="color: #1890ff;"><i nz-icon nzType="info-circle"
nzTheme="fill" class="mr-xs"></i>待审核
</label>
<label *ngIf="detailData?.approvalStatus===20" style="color: #52c41a;"><i nz-icon nzType="check-circle"
nzTheme="fill" class="mr-xs"></i>审核通过
</label>
<label *ngIf="detailData?.approvalStatus===30" style="color: #ff4d4f;"><i nz-icon nzType="close-circle"
nzTheme="fill" class="mr-xs"></i>驳回&nbsp;驳回原因:{{detailData?.approvalOpinion}}
</label>
<label *ngIf="detailData?.isExpired" style="color: #fa8c16;">
<i nz-icon nzType="info-circle" nzTheme="fill" class="ml-md mr-xs"></i>企业营业期限已过期
</label> -->
<p style="margin-bottom: 0;">
四要素验证:
<label *ngIf="detailData?.esignCheckStatus===0" style="color: #ff4d4f;"><i nz-icon nzType="info-circle"
nzTheme="fill" class="mr-xs"></i>不通过&nbsp;&nbsp;驳回原因:{{detailData?.esignCheckMsg}}
</label>
<label *ngIf="detailData?.esignCheckStatus===1" style="color: #52c41a;"><i nz-icon nzType="check-circle"
nzTheme="fill" class="mr-xs"></i>通过
</label>
<label *ngIf="detailData?.esignCheckStatus===2" style="color: #1890ff;"><i nz-icon nzType="close-circle"
nzTheme="fill" class="mr-xs"></i>未认证:&nbsp;&nbsp;{{detailData?.esignCheckMsg}}
</label>
</p>
</sv-title>
<sv label="公司名称">
<ng-container *ngIf="isEdit; else enterpriseNameelseTemplate">
<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?'':'-'"> -->
<nz-select [nzMaxTagCount]="3" nzPlaceHolder="请选择" [(ngModel)]="detailData.enterpriseType"
[nzPlaceHolder]="isEdit?'':'-'" [nzBorderless]="!isEdit" [nzShowArrow]="isEdit" [nzDisabled]="!isEdit">
<nz-option nzLabel="物流企业" [nzValue]="1"></nz-option>
<nz-option nzLabel="货运代理" [nzValue]="2"></nz-option>
<nz-option nzLabel="生产型企业" [nzValue]="3"></nz-option>
<nz-option nzLabel="贸易类企业" [nzValue]="4"></nz-option>
<nz-option nzLabel="科技型企业" [nzValue]="5"></nz-option>
<nz-option nzLabel="化学化工企业" [nzValue]="6"></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 [nzMaxTagCount]="3" nzPlaceHolder="请选择" [(ngModel)]="detailData.enterpriseType"
[nzPlaceHolder]="isEdit?'':'-'" [nzBorderless]="!isEdit" [nzShowArrow]="isEdit" [nzDisabled]="!isEdit">
<nz-option nzLabel="物流企业" [nzValue]="1"></nz-option>
<nz-option nzLabel="货运代理" [nzValue]="2"></nz-option>
<nz-option nzLabel="生产型企业" [nzValue]="3"></nz-option>
<nz-option nzLabel="贸易类企业" [nzValue]="4"></nz-option>
<nz-option nzLabel="科技型企业" [nzValue]="5"></nz-option>
<nz-option nzLabel="化学化工企业" [nzValue]="6"></nz-option>
<nz-option nzLabel="其他" [nzValue]="7"></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"
</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>
</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?'':'-'">
</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?'':'-'">
</sv>
<sv label="营业执照" col="3">
<ng-container
*ngTemplateOutlet="uploadTemplate;context:{data:detailData,status:isEdit,key:'licensePhotoWatermark',key2:'licensePhoto',hover:'detailPhoto'}">
</ng-container>
</sv>
<sv label="企业授权函" col="3">
<ng-container
*ngTemplateOutlet="uploadTemplate;context:{data:detailData,status:isEdit,key:'creditPhotoWatermark',key2:'creditPhoto',hover:'adminPhoto'}">
</ng-container>
</sv>
</sv-container>
<nz-divider></nz-divider>
<sv-container col="3" class="mt16">
<sv-title>法人信息
</sv>
<sv label="营业执照" col="3">
<ng-container
*ngTemplateOutlet="uploadTemplate;context:{data:detailData,status:isEdit,key:'licensePhotoWatermark',key2:'licensePhoto',hover:'detailPhoto'}">
</ng-container>
</sv>
<sv label="企业授权函" col="3">
<ng-container
*ngTemplateOutlet="uploadTemplate;context:{data:detailData,status:isEdit,key:'creditPhotoWatermark',key2:'creditPhoto',hover:'adminPhoto'}">
</ng-container>
</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?.legalPersonIdentityVO?.isExpired" style="color: #fa8c16;">
<i nz-icon nzType="info-circle" nzTheme="fill" class="ml-md mr-xs"></i>法人身份证期限已过期
</label>
</sv-title>
<sv label="法定代表人">
<input nz-input type="text" maxlength="32" [(ngModel)]="detailData.legalPersonIdentityVO.name"
[readonly]="!isEdit" [nzBorderless]="!isEdit" [placeholder]="isEdit?'':'-'">
</sv>
<sv label="身份证号码">
<input nz-input type="text" [(ngModel)]="detailData.legalPersonIdentityVO.certificateNumber" [readonly]="!isEdit"
[nzBorderless]="!isEdit" [placeholder]="isEdit?'':'-'">
</sv>
<sv label="身份证有效期" col="1">
<nz-date-picker [(ngModel)]="detailData.legalPersonIdentityVO.validStartTime" [nzDisabled]="!isEdit"
nzPlaceHolder=" " [nzBorderless]="!isEdit" [nzSuffixIcon]="isEdit?'calendar':''" style="width: 120px;"
class="calendar"></nz-date-picker>
-
<ng-container
*ngIf="!isEdit && !detailData?.legalPersonIdentityVO?.validEndTime && detailData.legalPersonIdentityVO.validStartTime">
<label style="padding-left: 11px;">长期</label>
</ng-container>
<nz-date-picker [(ngModel)]="detailData.legalPersonIdentityVO.validEndTime" [nzDisabled]="!isEdit"
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">
</div>
<sv-container col="3" class="mt16">
<!-- <sv-title>法人信息
<label *ngIf="detailData?.legalPersonIdentityVO?.isExpired" style="color: #fa8c16;">
<i nz-icon nzType="info-circle" nzTheme="fill" class="ml-md mr-xs"></i>法人身份证期限已过期
</label>
</sv-title> -->
<sv label="法定代表人">
<input nz-input type="text" maxlength="32" [(ngModel)]="detailData.legalPersonIdentityVO.name"
[readonly]="!isEdit" [nzBorderless]="!isEdit" [placeholder]="isEdit?'':'-'">
</sv>
<sv label="身份证号码">
<input nz-input type="text" [(ngModel)]="detailData.legalPersonIdentityVO.certificateNumber"
[readonly]="!isEdit" [nzBorderless]="!isEdit" [placeholder]="isEdit?'':'-'">
</sv>
<sv label="身份证有效期" col="1">
<nz-date-picker [(ngModel)]="detailData.legalPersonIdentityVO.validStartTime" [nzDisabled]="!isEdit"
nzPlaceHolder=" " [nzBorderless]="!isEdit" [nzSuffixIcon]="isEdit?'calendar':''" style="width: 120px;"
class="calendar"></nz-date-picker>
-
<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
*ngTemplateOutlet="uploadTemplate;context:{data:detailData?.legalPersonIdentityVO,status:isEdit,key:'certificatePhotoBackWatermark',key2:'certificatePhotoBack',hover:'legalBack'}">
<nz-date-picker [(ngModel)]="detailData.legalPersonIdentityVO.validEndTime" [nzDisabled]="!isEdit"
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>
</div>
</sv>
</sv-container>
<nz-divider></nz-divider>
<sv-container col="3">
<sv-title>企业管理员信息
</sv>
<sv label="身份证照" col="1">
<div class="d-flex">
<ng-container
*ngTemplateOutlet="uploadTemplate;context:{data:detailData?.legalPersonIdentityVO,status:isEdit,key:'certificatePhotoFrontWatermark',key2:'certificatePhotoFront',hover:'legalFront'}">
</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;">
<i nz-icon nzType="info-circle" nzTheme="fill" class="ml-md mr-xs"></i>企业营业期限已过期
</label>
</sv-title>
<sv label="姓名">
<input nz-input type="text" [(ngModel)]="detailData.adminUserInfo.name" [readonly]="!isEdit"
[nzBorderless]="!isEdit" [placeholder]="isEdit?'':'-'">
</sv>
<sv label="手机号">
{{detailData.adminUserInfo?.mobile}}
</sv>
<sv label="身份证号">
<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"
</div>
<sv-container col="3">
<!-- <sv-title>企业管理员信息
<label *ngIf="detailData?.adminUserInfo?.isExpired" style="color: #fa8c16;">
<i nz-icon nzType="info-circle" nzTheme="fill" class="ml-md mr-xs"></i>企业营业期限已过期
</label>
</sv-title> -->
<sv label="姓名">
<input nz-input type="text" [(ngModel)]="detailData.adminUserInfo.name" [readonly]="!isEdit"
[nzBorderless]="!isEdit" [placeholder]="isEdit?'':'-'">
</ng-container>
<ng-template #registerAddressTemplate>
{{detailData.registerAddress}}
</ng-template>
</sv>
</sv-container>
<nz-divider></nz-divider>
<sv-container col="3" class="mt-md">
<sv-title>服务评级
</sv>
<sv label="手机号">
{{detailData.adminUserInfo?.mobile}}
</sv>
<sv label="身份证号">
<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>
</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>
</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">
<!-- <sv-title>服务评级
<ng-container *ngIf="billEvaluateList?.length===0">(暂无评级)</ng-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> -->
<!-- <sv-container col="3" class="mt16">
<sv-title>合伙人信息</sv-title>
@ -386,7 +432,7 @@
[nzBorderless]="!isEdit" [placeholder]="isEdit?'':'-'">
</sv>
<sv label="管理员">
</sv>
<sv label="绑定时间">
<input nz-input type="text" [(ngModel)]="partnerInfo.enterprisePartnerRelTime" [readonly]="!isEdit"
@ -511,4 +557,4 @@
</div>
</div>
</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"
style="justify-content: flex-end;padding-right: 24px;">
<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 *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>
</div>
@ -46,9 +46,42 @@
</ng-template>
</page-header-wrapper>
<nz-card [nzLoading]="service.http.loading">
<sv-container col="2">
<sv-title>个人信息
<nz-card [nzLoading]="service.http.loading" [nzBorderless]="true" style="height: 100%;">
<div class="mb-md">
<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
nzType="check-circle" nzTheme="fill" class="mr-xs"></i>审核通过
</label>
@ -71,51 +104,60 @@
<button nz-button nzType="default" nzDanger (click)="ratify()" acl [acl-ability]="['USERCENTER-FREIGHT-USER-D-edit']" >修改</button>
</ng-template>
</div>
</sv-title>
<sv label="姓名">
<input nz-input type="text" [maxlength]="32" [(ngModel)]="userIdentityDetail.name" [readonly]="!isEditUser"
[nzBorderless]="!isEditUser" [placeholder]="isEditUser?'':'-'">
</sv>
<sv label="身份证号码">
<input nz-input type="text" [minlength]="18" [maxlength]="18" [(ngModel)]="userIdentityDetail.certificateNumber" [readonly]="!isEditUser"
[nzBorderless]="!isEditUser" [placeholder]="isEditUser?'':'-'">
</sv>
<sv label="有效期" col="1">
<nz-date-picker [(ngModel)]="userIdentityDetail.validStartTime" [nzDisabled]="!isEditUser" nzPlaceHolder=" "
[nzBorderless]="!isEditUser" [nzSuffixIcon]="isEditUser?'calendar':''" style="width: 130px;" class="calendar">
</nz-date-picker>
-
<ng-container *ngIf="!isEditUser && !userIdentityDetail?.validEndTime && userIdentityDetail?.validStartTime">
<label style="padding-left: 11px;">长期</label>
</ng-container>
<nz-date-picker [(ngModel)]="userIdentityDetail.validEndTime" [nzDisabled]="!isEditUser" nzPlaceHolder=" "
[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'}">
</sv-title> -->
<sv label="姓名">
<input nz-input type="text" [maxlength]="32" [(ngModel)]="userIdentityDetail.name" [readonly]="!isEditUser"
[nzBorderless]="!isEditUser" [placeholder]="isEditUser?'':'-'">
</sv>
<sv label="身份证号码">
<input nz-input type="text" [minlength]="18" [maxlength]="18"
[(ngModel)]="userIdentityDetail.certificateNumber" [readonly]="!isEditUser" [nzBorderless]="!isEditUser"
[placeholder]="isEditUser?'':'-'">
</sv>
<sv label="有效期" col="1">
<nz-date-picker [(ngModel)]="userIdentityDetail.validStartTime" [nzDisabled]="!isEditUser" nzPlaceHolder=" "
[nzBorderless]="!isEditUser" [nzSuffixIcon]="isEditUser?'calendar':''" style="width: 130px;"
class="calendar">
</nz-date-picker>
-
<ng-container *ngIf="!isEditUser && !userIdentityDetail?.validEndTime && userIdentityDetail?.validStartTime">
<label style="padding-left: 11px;">长期</label>
</ng-container>
<ng-container
*ngTemplateOutlet="uploadTemplate;context:{data:userIdentityDetail,status:isEditUser,key:'certificatePhotoBackWatermark',key2:'certificatePhotoBack',hover:'certificateBack'}">
<nz-date-picker [(ngModel)]="userIdentityDetail.validEndTime" [nzDisabled]="!isEditUser" nzPlaceHolder=" "
[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>
</div>
</sv>
</sv-container>
<nz-divider></nz-divider>
<sv-container col="3" class="mt16">
<sv-title>关联企业</sv-title>
</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
*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"
[req]="{ method: 'POST', allInBody: true, params: {appUserId:route.snapshot.params.id} }"
[res]="{ reName: { list: 'data' } }" [page]="{ show: false }" style="width: 100%;">
</st>
</sv-container>
</div>
</nz-card>
</ng-container>
@ -159,4 +201,4 @@
</div>
</div>
</nz-upload>
</ng-template>
</ng-template>

View File

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

View File

@ -32,7 +32,7 @@
<div class="mr-sm">
<button nz-button nzDanger [nzLoading]="service.http.loading" acl [acl-ability]="['USERCENTER-FREIGHT-USER-list']"
(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>
</div>
</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;
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
) {
super(searchDrawerService);
@ -32,7 +36,6 @@ export class FreightComponentsUserComponent extends BasicTableComponent implemen
this.st?.load(1);
}
ngOnInit() {
this.ar.url.subscribe(params => {
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 {
return {
properties: {
@ -157,7 +170,7 @@ export class FreightComponentsUserComponent extends BasicTableComponent implemen
],
default: '',
ui: {
widget: 'select',
widget: 'select'
}
},
promotersTelephone: {
@ -165,7 +178,7 @@ export class FreightComponentsUserComponent extends BasicTableComponent implemen
type: 'string',
maxLength: 11,
ui: {
placeholder: '请输入手机号',
placeholder: '请输入手机号'
}
},
effectiveDate: {
@ -174,7 +187,7 @@ export class FreightComponentsUserComponent extends BasicTableComponent implemen
ui: {
widget: 'date',
mode: 'range',
format: 'yyyy-MM-dd',
format: 'yyyy-MM-dd'
} as SFDateWidgetSchema
}
}
@ -212,19 +225,19 @@ export class FreightComponentsUserComponent extends BasicTableComponent implemen
click: (item: any) => {
this.router.navigate(['./view', item.appUserId], { relativeTo: this.ar });
},
acl: { ability: ['USERCENTER-FREIGHT-USER-view'] },
acl: { ability: ['USERCENTER-FREIGHT-USER-view'] }
},
{
text: '冻结',
iif: item => item.stateLocked === 0,
click: (item: any) => this.userAction(0, [item.appUserId]),
acl: { ability: ['USERCENTER-FREIGHT-USER-lock'] },
acl: { ability: ['USERCENTER-FREIGHT-USER-lock'] }
},
{
text: '启用',
iif: item => item.stateLocked === 1,
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_export = '/api/mdc/cuc/userApp/shipperUserInfoExport';
// 冻结或恢复员工
$api_lock_staff = '/api/mdc/cuc/userApp/freezeOrResumeStaff';
// 冻结或恢复应用用户

View File

@ -1,26 +1,6 @@
<!--
* @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>
<!-- <page-header-wrapper></page-header-wrapper>
<nz-card>
<!-- 搜索区 -->
<!-- 搜索表单 -->
<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">
<div nz-col [nzSpan]="_$expand ? 24 : 18">
<sf #sf [schema]="schema" [ui]="ui" [compact]="true" [button]="'none'"></sf>
@ -37,21 +17,34 @@
</div>
</ng-container>
</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" -->
<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>
<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">
<st #st [bordered]="true" [scroll]="{ x: '1200px',y:scrollY }" [columns]="columns"
[data]='service.$api_get_userCarLicense_list' [req]="{ params: reqParams }" [res]="{ process: dataProcess }"
[page]="{ }" [loading]="false">
<ng-template st-row="carLength" let-item let-index="index">
<div>{{item?.carModel}}-{{item?.carLengthLabel? item?.carLengthLabel + '米' : ''}}-{{ item?.carLoad?
item?.carLoad + '吨' : ''}}</div>
@ -69,11 +62,4 @@
<nz-tag *elseBlock nzColor="success">正常</nz-tag>
</ng-template>
</st>
</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>
</nz-card>

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

View File

@ -7,7 +7,7 @@
</ng-template>
<ng-template #content>
<sv-container col="3" class="new-sv-container">
<h2>车牌号66{{ detailData?.carNo }}
<h2>车牌号:{{ detailData?.carNo }}
</h2>
<sv-title style="font-weight: 700">
<!-- <span *ngIf="detailData?.approvalStatus === 1 || detailData?.approvalStatus === '1'">未上传</span>
@ -47,11 +47,7 @@
<div class="mb-xs common-order-header" nz-row>
<div style="display: flex;">
<button nz-button nzType="primary" nzSize="small" nzDanger>{{ carStatus[detailData?.approvalStatus] }}</button>
<div style="display: flex;align-items: center; ">
<b class="ml-md" style="font-size: 18px;padding-right: 10px;">车牌号: {{ detailData?.carNo }}</b>
<div *ngIf="detailData.networkStatus"> <span style="height: 5px; width: 5px; border-radius: 50%; background-color: green;display: inline-block;"></span> 已入网</div>
<div *ngIf="!detailData.networkStatus"><span style="height: 5px; width: 5px; border-radius: 50%; background-color: red;display: inline-block;"></span>未入网</div>
</div>
<b class="ml-md" style="font-size: 18px;padding-right: 10px;">车牌号: {{ detailData?.carNo }}</b>
</div>
<div>
<ng-container *ngIf="!isEdit">

View File

@ -40,11 +40,12 @@
</ng-template>
<div #aaa style="position: absolute; top: 87.5%; left: 21%; opacity: 0; ">
<div style="color: #0c77e7;" (click)='view()'>点击查看行政区域代码</div>
</div>
</div>
</sf>
<img class="drivercard borderImg" height="104" src="/assets/images/vehicle/car.png" />
</div>
<div class="modal-footer">
<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>

View File

@ -1,129 +1,68 @@
.sfBox {
position: relative;
.example {
position: absolute;
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
height : 550px;
overflow: auto;
}
.pr {
position: relative;
}
.pa {
position: absolute;
top: 35px;
left: 140px;
top : 35px;
left : 140px;
}
.tips {
display: flex;
display : flex;
margin-bottom: 0;
color: #333;
color : #333;
dt {
width: 150px;
}
dd {
width: 190px;
width : 190px;
margin-bottom: 0;
text-align: center;
text-align : center;
}
}
.drivercard{
.drivercard {
position: absolute;
top: 0;
left: 325px;
border: solid 1px #ebf0fb;
top : 0;
left : 325px;
border : solid 1px #ebf0fb;
}
.jopcard{
position: absolute;
top: 1356px;
left: 330px;
border: solid 1px #ebf0fb;
}
.agreement{
position: absolute;
top: 425px;
left: 330px;
border: solid 1px #ebf0fb;
}
:host{
:host {
::ng-deep {
.ant-input-borderless{
padding: 0;
.ant-input-borderless {
padding : 0;
padding-top: 4px;
color: black;
resize:none;
color : black;
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;
}
nz-date-picker {
width: 100%;
}
}
}

View File

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

View File

@ -1,16 +1,15 @@
<!--
* @Author: your name
* @Date: 2021-11-29 15:22:34
* @LastEditTime : 2022-02-17 17:25:34
* @Description :
* @Version : 1.0
* @Author : Shiming
* @Date : 2022-05-06 11:15:05
* @LastEditors : Shiming
* @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
* @LastEditTime : 2022-05-06 15:28:50
* @FilePath : \\tms-obc-web\\src\\app\\routes\\vehicle\\components\\list\\list.component.html
* Copyright (C) 2022 huzhenhong. All rights reserved.
-->
<!-- 页头 -->
<page-header-wrapper></page-header-wrapper>
<!-- <page-header-wrapper></page-header-wrapper>
<nz-card>
<!-- 搜索区 -->
<!-- 搜索表单 -->
<div nz-row nzGutter="8">
<div nz-col [nzSpan]="_$expand ? 24 : 18">
<sf #sf [schema]="schema" [ui]="ui" [compact]="true" [button]="'none'"></sf>
@ -27,16 +26,25 @@
</button>
</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 }"
[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">
<div>{{ item?.carModelLabel }}-{{ item?.carLengthLabel ? item?.carLengthLabel + '米' : '' }}-{{
<div>{{ item?.carModel ? item?.carModel + '-' : ''}}{{ item?.carLengthLabel ? item?.carLengthLabel + '米' : '' }}-{{
item?.carLoad ? item?.carLoad + '吨' : ''
}}</div>
</ng-template>

View File

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

View File

@ -274,8 +274,14 @@
<div nz-col [nzSpan]="24">
<amap-path-simplifier [mapWidth]="'100%'" [mapHeight]="'600px'" [mapList]="mapList">
</amap-path-simplifier>
<st [scroll]="{ y: '350px' }" #st [data]="addressItems" [noResult]='"暂无停车信息"' [columns]="logColumns2" [ps]="0"
<st [scroll]="{ y: '350px' }" #st [data]="addressItems" [noResult]='fuck' [columns]="logColumns2" [ps]="0"
[page]="{ show: false, showSize: false }" size="small" class="map_st">
<ng-template #fuck>
<div>
<img class="mr-sm" [src]="'../../../../../assets/none.svg'" width="40" height="40" />
</div>
暂无停车信息
</ng-template>
</st>
<nz-radio-group [(ngModel)]="trajectory" (ngModelChange)="trajectoryChange($event)" class="map_radio">
<label nz-radio-button nzValue="car">车辆轨迹</label>

View File

@ -1,7 +1,7 @@
<!--
* @Author: your name
* @Date: 2021-12-03 15:31:52
* @LastEditTime : 2022-05-06 10:04:19
* @LastEditTime : 2022-05-06 14:38:33
* @LastEditors : Shiming
* @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
* @FilePath : \\tms-obc-web\\src\\app\\routes\\waybill-management\\components\\vehicle-detail\\vehicle-detail.component.html
@ -272,8 +272,14 @@
<div nz-col [nzSpan]="24">
<amap-path-simplifier [mapWidth]="'100%'" [mapHeight]="'600px'" [mapList]="mapList">
</amap-path-simplifier>
<st [scroll]="{ y: '350px' }" #st [data]="addressItems" [noResult]='"暂无停车信息"' [columns]="logColumns2" [ps]="0"
<st [scroll]="{ y: '350px' }" #st [data]="addressItems" [noResult]='fuck' [columns]="logColumns2" [ps]="0"
[page]="{ show: false, showSize: false }" size="small" class="map_st">
<ng-template #fuck>
<div>
<img class="mr-sm" [src]="'../../../../../assets/none.svg'" width="40" height="40" />
</div>
暂无停车信息
</ng-template>
</st>
<nz-radio-group [(ngModel)]="trajectory" (ngModelChange)="trajectoryChange($event)" class="map_radio">
<label nz-radio-button nzValue="car">车辆轨迹</label>

2
src/assets/none.svg Normal file
View File

@ -0,0 +1,2 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1651818563831" class="icon" viewBox="0 0 1837 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6717" xmlns:xlink="http://www.w3.org/1999/xlink" width="358.7890625" height="200"><defs><style type="text/css">@font-face { font-family: feedback-iconfont; src: url("//at.alicdn.com/t/font_1031158_u69w8yhxdu.woff2?t=1630033759944") format("woff2"), url("//at.alicdn.com/t/font_1031158_u69w8yhxdu.woff?t=1630033759944") format("woff"), url("//at.alicdn.com/t/font_1031158_u69w8yhxdu.ttf?t=1630033759944") format("truetype"); }
</style></defs><path d="M920.928443 169.843587m52.840157 0l573.693128 0q52.840157 0 52.840157 52.840156l0 0q0 52.840157-52.840157 52.840157l-573.693128 0q-52.840157 0-52.840157-52.840157l0 0q0-52.840157 52.840157-52.840156Z" fill="#FFFFFF" opacity=".5" p-id="6718"></path><path d="M1335.191496 381.204213h-195.331187A52.900545 52.900545 0 0 0 1192.67782 328.364057a52.896771 52.896771 0 0 0-52.840157-52.840157h195.361382A53.08926 53.08926 0 0 0 1283.260945 328.364057a53.081712 53.081712 0 0 0 51.926777 52.840156z" fill="#FFFFFF" opacity=".5" p-id="6719"></path><path d="M1068.126022 381.204213m52.840157 0l573.693128 0q52.840157 0 52.840157 52.840157l0 0q0 52.840157-52.840157 52.840156l-573.693128 0q-52.840157 0-52.840157-52.840156l0 0q0-52.840157 52.840157-52.840157Z" fill="#FFFFFF" opacity=".5" p-id="6720"></path><path d="M0 569.919058m52.840157 0l573.693128 0q52.840157 0 52.840157 52.840157l0 0q0 52.840157-52.840157 52.840156l-573.693128 0q-52.840157 0-52.840157-52.840156l0 0q0-52.840157 52.840157-52.840157Z" fill="#FFFFFF" opacity=".5" p-id="6721"></path><path d="M429.360241 781.279684h-195.331188A52.900545 52.900545 0 0 0 286.846564 728.439528a52.896771 52.896771 0 0 0-52.840156-52.840157h195.361381A53.08926 53.08926 0 0 0 377.42969 728.439528a53.081712 53.081712 0 0 0 51.926777 52.840156z" fill="#FFFFFF" opacity=".5" p-id="6722"></path><path d="M162.294767 781.279684m52.840156 0l573.693129 0q52.840157 0 52.840156 52.840157l0 0q0 52.840157-52.840156 52.840157l-573.693129 0q-52.840157 0-52.840156-52.840157l0 0q0-52.840157 52.840156-52.840157Z" fill="#FFFFFF" opacity=".5" p-id="6723"></path><path d="M662.370234 451.474073h427.329669v48.28458H662.370234z m0 212.458946h261.558775v48.284581h-261.558775z" fill="#DFDFDF" p-id="6724"></path><path d="M1183.861062 973.768826H567.408924a97.844873 97.844873 0 0 1-37.018304-7.242876 84.766934 84.766934 0 0 1-29.775428-20.120776 92.745798 92.745798 0 0 1-20.120777-29.775429 97.844873 97.844873 0 0 1-7.242876-37.014529V238.211201a97.844873 97.844873 0 0 1 7.242876-37.018304 84.766934 84.766934 0 0 1 20.120777-29.775428 92.742023 92.742023 0 0 1 29.775428-20.120777 97.844873 97.844873 0 0 1 37.018304-7.242876h93.35346v47.480655h-93.35346a47.556141 47.556141 0 0 0-47.480655 47.480655v641.400241a47.556141 47.556141 0 0 0 47.480655 47.480655h615.648213a47.556141 47.556141 0 0 0 47.480655-47.480655V238.211201a47.556141 47.556141 0 0 0-47.480655-47.480655H1090.507603v-47.480655h93.353459a97.844873 97.844873 0 0 1 37.018304 7.242876 84.766934 84.766934 0 0 1 29.775428 20.120776 92.742023 92.742023 0 0 1 20.120777 29.775429 97.844873 97.844873 0 0 1 7.242876 37.018304V878.807516a97.844873 97.844873 0 0 1-7.242876 37.018304 84.76316 84.76316 0 0 1-20.120777 29.775428 92.742023 92.742023 0 0 1-29.775428 20.120777 85.348176 85.348176 0 0 1-37.018304 8.046801z" fill="#DFDFDF" p-id="6725"></path><path d="M666.529509 117.807356V259.671853h413.979981V104.548251l-102.041891-9.956596s-35.67088-76.323832-104.548024-73.006225-102.876011 72.991128-102.87601 72.991128z" fill="#FFFFFF" p-id="6726"></path><path d="M1112.23623 285.691856H639.033756V131.175915a59.418756 59.418756 0 0 1 59.554631-59.554631h61.14361a130.869971 130.869971 0 0 1 233.383649 0h61.143609a59.418756 59.418756 0 0 1 59.581051 59.554631z m-425.74069-47.480655H1065.5595V131.175915a12.37592 12.37592 0 0 0-12.07775-12.07775h-94.149836l-5.635025-16.093602a82.634456 82.634456 0 0 0-156.123791 0l-5.635026 16.093602h-94.157384a12.37592 12.37592 0 0 0-12.07775 12.07775v107.035286z" fill="#DFDFDF" p-id="6727"></path></svg>

After

Width:  |  Height:  |  Size: 4.1 KiB