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

This commit is contained in:
潘晓云
2022-04-19 14:32:59 +08:00
22 changed files with 350 additions and 284 deletions

View File

@ -4,7 +4,7 @@
* @Author : Shiming * @Author : Shiming
* @Date : 2022-01-18 09:51:21 * @Date : 2022-01-18 09:51:21
* @LastEditors : Shiming * @LastEditors : Shiming
* @LastEditTime : 2022-04-18 16:40:52 * @LastEditTime : 2022-04-19 14:20:28
* @FilePath : \\tms-obc-web\\proxy.conf.js * @FilePath : \\tms-obc-web\\proxy.conf.js
* Copyright (C) 2022 huzhenhong. All rights reserved. * Copyright (C) 2022 huzhenhong. All rights reserved.
*/ */
@ -30,7 +30,7 @@ module.exports = {
// }, // },
'//api': { '//api': {
target: { target: {
host: 'tms-api-dev.eascs.com', host: 'tms-api-test.eascs.com',
protocol: 'https:', protocol: 'https:',
port: 443 port: 443
}, },

View File

@ -88,8 +88,8 @@ export class DatatableBusiindexComponent implements OnInit {
if (res) { if (res) {
this.chartData = res this.chartData = res
if(flag) { if(flag) {
// this.pillar.reRender() this.pillar.reRender()
// this.curve.reRender() this.curve.reRender()
} }
} }
}) })

View File

@ -12,7 +12,6 @@ import { DataService } from '../../../services/data.service';
providers: [DatePipe] providers: [DatePipe]
}) })
export class DatatableMancustomtableComponent implements OnInit { export class DatatableMancustomtableComponent implements OnInit {
url = `/user`;
@ViewChild('st', { static: false }) st!: STComponent; @ViewChild('st', { static: false }) st!: STComponent;
@ViewChild('sf', { static: false }) sf!: SFComponent; @ViewChild('sf', { static: false }) sf!: SFComponent;
_$expand = false; _$expand = false;
@ -20,6 +19,8 @@ export class DatatableMancustomtableComponent implements OnInit {
mode = 'year'; mode = 'year';
date: any = null; date: any = null;
defineDate = []; defineDate = [];
columns: STColumn[] =[];
resourceStatus: number = 1;
time: any = ['2022-01-01 00:00:00']; time: any = ['2022-01-01 00:00:00'];
dateFormat = 'yyyy'; dateFormat = 'yyyy';
today = new Date(); today = new Date();
@ -60,33 +61,41 @@ export class DatatableMancustomtableComponent implements OnInit {
} }
} }
}; };
columns: STColumn[] = [ initST() {
{ title: '部门', index: 'enterpriseName', className: 'text-center', width: '200px' }, this.columns =[
{ title: '业务员', index: 'registerTime', className: 'text-center', width: '200px' }, { title: '部门', index: 'department', className: 'text-center', width: '200px' },
{ title: '已认证货主数', index: 'customerType', className: 'text-center', width: '100px' }, { title: '业务员', index: 'salesmen', className: 'text-center', width: '200px' },
{ title: '新增合伙人', index: 'customerType', className: 'text-center', width: '100px' }, { title: '已认证货主数', index: 'certifiedCount', className: 'text-center', width: '100px', iif: ()=> {
{ title: '合伙人活跃率', index: 'customerType', className: 'text-center', width: '100px' }, console.log(this.resourceStatus);
{ title: '主动合伙人', index: 'customerType', className: 'text-center', width: '100px' }, return this.resourceStatus !== 1
{ title: '纪念合伙人', index: 'customerType', className: 'text-center', width: '100px' },
{ title: '流失合伙人', index: 'customerType', className: 'text-center', width: '100px' }, } },
{ title: '未搭档合伙人', index: 'customerType', className: 'text-center', width: '100px' }, { title: '已认证合伙人', index: 'certifiedCount', className: 'text-center', width: '100px' },
{ title: '新增货主数', index: 'salesmanName', className: 'text-center', width: '100px' }, { title: '新增合伙人数', index: 'addCount', className: 'text-center', width: '100px' },
{ title: '货主活跃率', index: 'partnerName', className: 'text-center', width: '100px' }, { title: '合伙人活跃率', index: 'alivePer', className: 'text-center', width: '100px' },
{ title: '活跃合伙人数', index: 'aliveCount', className: 'text-center', width: '100px' },
{ title: '沉默合伙人数', index: 'silentCount', className: 'text-center', width: '100px' },
{ title: '流失合伙人数', index: 'drainCount', className: 'text-center', width: '100px' },
{ title: '未激活合伙人数', index: 'notActiveCount', className: 'text-center', width: '100px' },
{ title: '新增货主数', index: 'addCount', className: 'text-center', width: '100px' },
{ title: '货主活跃率', index: 'alivePer', className: 'text-center', width: '100px' },
{ {
title: '活跃货主数', title: '活跃货主数',
index: 'customerStatus', index: 'aliveCount',
className: 'text-center', className: 'text-center',
width: '100px' width: '100px'
}, },
{ title: '纪念货主数', index: 'zsl', className: 'text-center', width: '100px' }, { title: '沉默货主数', index: 'silentCount', className: 'text-center', width: '100px' },
{ {
title: '货主数', title: '流失货主数',
index: 'ddje', index: 'drainCount',
className: 'text-right', className: 'text-right',
width: '100px', width: '100px',
}, },
{ title: '未激活货主数', index: 'ysdds', className: 'text-center', width: '120px' } { title: '未激活货主数', index: 'notActiveCount', className: 'text-center', width: '120px' }
]; ];
}
/** /**
* 查询参数 * 查询参数
*/ */
@ -103,15 +112,18 @@ export class DatatableMancustomtableComponent implements OnInit {
let params: any = { let params: any = {
time: this.time, time: this.time,
type: this.type, type: this.type,
parType: this.resourceStatus,
...this.sf?.value ...this.sf?.value
}; };
delete params._$expand; delete params._$expand;
delete params.sort;
return { ...params }; return { ...params };
} }
constructor(public service: DataService, private datePipe: DatePipe) {} constructor(public service: DataService, private datePipe: DatePipe) {}
ngOnInit(): void { ngOnInit(): void {
this.initSF(); this.initSF();
this.initST();
} }
/** /**
* 初始化查询表单 * 初始化查询表单
@ -225,10 +237,13 @@ export class DatatableMancustomtableComponent implements OnInit {
this.isLoading = true; this.isLoading = true;
} }
selectChange(e: number) { selectChange(e: number) {
// this.resourceStatus = e; console.log(e);
this.resourceStatus = e + 1;
// this.initST(); // this.initST();
setTimeout(() => { setTimeout(() => {
this.st.load(); this.initST();
// this.st.load(1);
}, 500); }, 500);
} }
} }

View File

@ -39,9 +39,9 @@ export class DatatableOwnerComponent implements OnInit {
{ title: '合伙人', index: 'partnerName', className: 'text-center', width: '100px' }, { title: '合伙人', index: 'partnerName', className: 'text-center', width: '100px' },
{ title: '客户状态', index: 'customerStatus', className: 'text-center', width: '100px', type: 'enum', enum: { { title: '客户状态', index: 'customerStatus', className: 'text-center', width: '100px', type: 'enum', enum: {
1: '未激活', 1: '未激活',
2: '沉默', 2: '流失',
3: '流失', 3: '活跃',
4: '活跃' 4: '沉默'
} }, } },
{ title: '订单数', index: 'zsl', className: 'text-center', width: '100px' }, { title: '订单数', index: 'zsl', className: 'text-center', width: '100px' },
{ title: '订单金额', index: 'ddje', className: 'text-right', width: '100px', type: 'widget', widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.ddje }) } }, { title: '订单金额', index: 'ddje', className: 'text-right', width: '100px', type: 'widget', widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.ddje }) } },
@ -117,9 +117,9 @@ export class DatatableOwnerComponent implements OnInit {
}, },
enum: [ enum: [
{label: '未激活', value: 1}, {label: '未激活', value: 1},
{label: '沉默', value: 2}, {label: '流失', value: 2},
{label: '流失', value: 3}, {label: '活跃', value: 3},
{label: '活跃', value: 4}, {label: '沉默', value: 4},
] ]
}, },
registerTime: { registerTime: {
@ -156,7 +156,7 @@ export class DatatableOwnerComponent implements OnInit {
} else if(this.mode === 'date') { } else if(this.mode === 'date') {
this.time = [this.datePipe.transform(this.date, 'yyyy-MM-dd') + ' 00:00:00'] this.time = [this.datePipe.transform(this.date, 'yyyy-MM-dd') + ' 00:00:00']
} else{ } else{
this.time = [this.datePipe.transform(this.defineDate[0], 'yyyy-MM-dd') + '00:00:00', this.datePipe.transform(this.defineDate[1], 'yyyy-MM-dd') + ' 00:00:00'] this.time = [this.datePipe.transform(this.defineDate[0], 'yyyy-MM-dd') + ' 00:00:00', this.datePipe.transform(this.defineDate[1], 'yyyy-MM-dd') + ' 00:00:00']
} }
this.st.reload({ ...this.reqParams }); this.st.reload({ ...this.reqParams });
} }

View File

@ -4,7 +4,7 @@
* @Author : Shiming * @Author : Shiming
* @Date : 2022-04-06 10:57:56 * @Date : 2022-04-06 10:57:56
* @LastEditors : Shiming * @LastEditors : Shiming
* @LastEditTime : 2022-04-14 15:48:32 * @LastEditTime : 2022-04-19 14:01:38
* @FilePath : \\tms-obc-web\\src\\app\\routes\\datatable\\components\\datascreen\\datascreen.component.html * @FilePath : \\tms-obc-web\\src\\app\\routes\\datatable\\components\\datascreen\\datascreen.component.html
* Copyright (C) 2022 huzhenhong. All rights reserved. * Copyright (C) 2022 huzhenhong. All rights reserved.
--> -->

View File

@ -59,6 +59,7 @@ export class DatatableFinancetableComponent implements OnInit {
} else { } else {
this.type = 4 this.type = 4
} }
let params: any = { let params: any = {
time: this.time, time: this.time,
type: this.type type: this.type
@ -76,11 +77,11 @@ export class DatatableFinancetableComponent implements OnInit {
initPillarData(){ initPillarData(){
let type = 1 let type = 1
if(this.mode === 'year') { if (this.modeNext === 'year') {
type = 1 this.type = 1
} else if(this.mode === 'month') { } else if (this.modeNext === 'month') {
type = 2 this.type = 2
} }
const params: any = { const params: any = {
time: this.timeNext, time: this.timeNext,
type, type,
@ -121,7 +122,7 @@ export class DatatableFinancetableComponent implements OnInit {
} else if (this.mode === 'date') { } else if (this.mode === 'date') {
this.time = [this.datePipe.transform(this.date, 'yyyy-MM-dd') + ' 00:00:00'] this.time = [this.datePipe.transform(this.date, 'yyyy-MM-dd') + ' 00:00:00']
} else { } else {
this.time = [this.datePipe.transform(this.defineDate[0], 'yyyy-MM-dd') + '00:00:00', this.datePipe.transform(this.defineDate[1], 'yyyy-MM-dd') + ' 00:00:00'] this.time = [this.datePipe.transform(this.defineDate[0], 'yyyy-MM-dd') + ' 00:00:00', this.datePipe.transform(this.defineDate[1], 'yyyy-MM-dd') + ' 00:00:00']
} }
this.st.reload({ ...this.reqParams }); this.st.reload({ ...this.reqParams });
} }
@ -138,9 +139,9 @@ export class DatatableFinancetableComponent implements OnInit {
} }
changeDataNext() { changeDataNext() {
if(this.mode === 'year') { if(this.modeNext === 'year') {
this.dateFormat = 'yyyy' this.dateFormat = 'yyyy'
} else if(this.mode === 'month') { } else if(this.modeNext === 'month') {
this.dateFormat = 'yyyy-MM' this.dateFormat = 'yyyy-MM'
} }
} }
@ -148,9 +149,9 @@ export class DatatableFinancetableComponent implements OnInit {
if(result === null) { if(result === null) {
return return
} }
if(this.mode === 'year') { if(this.modeNext === 'year') {
this.timeNext = [this.datePipe.transform(this.dateNext, 'yyyy') + '-01-01 00:00:00'] this.timeNext = [this.datePipe.transform(this.dateNext, 'yyyy') + '-01-01 00:00:00']
} else if(this.mode === 'month') { } else if(this.modeNext === 'month') {
this.timeNext = [this.datePipe.transform(this.dateNext, 'yyyy-MM') + '-01 00:00:00'] this.timeNext = [this.datePipe.transform(this.dateNext, 'yyyy-MM') + '-01 00:00:00']
} }
this.initPillarData(); this.initPillarData();

View File

@ -1,32 +1,26 @@
<!-- 页头 --> <!-- 页头 -->
<page-header-wrapper [title]="'开票数据报表'"></page-header-wrapper> <page-header-wrapper [title]="'开票数据报表'"></page-header-wrapper>
<nz-card nzTitle="开票数据报表"> <nz-card nzTitle="开票数据报表">
<st <st #st [data]="service.$api_findInvoiceReport" [columns]="columns" [scroll]="{ x: '1200px' }"
#st [req]="{ params: reqParams }" [res]="{ reName: { list: 'data', total: 'data.total' }}" [page]="{ show: false }"
[data]="service.$api_findInvoiceReport" [loadingDelay]="500">
[columns]="columns" <ng-template st-row="totalInvoicedAmount" let-item let-index="index">
[req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, params: reqParams }" {{item.totalInvoicedAmount | currency}}
[res]="{ reName: { list: 'data', total: 'data.total' }}" </ng-template>
[page]="{ show: true, showSize: true, pageSizes: [10, 20, 30, 50, 100, 200, 300, 500, 1000] }" <ng-template st-row="invAmountMonth" let-item let-index="index">
[loadingDelay]="500" {{item.invAmountMonth | currency}}
> </ng-template>
<ng-template st-row="totalInvoicedAmount" let-item let-index="index"> <ng-template st-row="applyWaitInvAmount" let-item let-index="index">
{{item.totalInvoicedAmount | currency}} {{item.applyWaitInvAmount | currency}}
</ng-template> </ng-template>
<ng-template st-row="invAmountMonth" let-item let-index="index"> <ng-template st-row="unInvoicedAmountHistory" let-item let-index="index">
{{item.invAmountMonth | currency}} {{item.unInvoicedAmountHistory | currency}}
</ng-template> </ng-template>
<ng-template st-row="applyWaitInvAmount" let-item let-index="index"> <ng-template st-row="unInvoicedAmountCurMonth" let-item let-index="index">
{{item.applyWaitInvAmount | currency}} {{item.unInvoicedAmountCurMonth | currency}}
</ng-template> </ng-template>
<ng-template st-row="unInvoicedAmountHistory" let-item let-index="index"> <ng-template st-row="invoicedAmount" let-item let-index="index">
{{item.unInvoicedAmountHistory | currency}} {{item.invoicedAmount | currency}}
</ng-template> </ng-template>
<ng-template st-row="unInvoicedAmountCurMonth" let-item let-index="index">
{{item.unInvoicedAmountCurMonth | currency}}
</ng-template>
<ng-template st-row="invoicedAmount" let-item let-index="index">
{{item.invoicedAmount | currency}}
</ng-template>
</st> </st>
</nz-card> </nz-card>

View File

@ -6,71 +6,98 @@ import { DataService } from '../../services/data.service';
@Component({ @Component({
selector: 'app-datatable-invoicetable', selector: 'app-datatable-invoicetable',
templateUrl: './invoicetable.component.html', templateUrl: './invoicetable.component.html'
}) })
export class DatatableInvoicetableComponent implements OnInit { export class DatatableInvoicetableComponent implements OnInit {
@ViewChild('st', { static: false }) @ViewChild('st', { static: false })
st!: STComponent; st!: STComponent;
columns!: STColumn[]; columns!: STColumn[];
data=[{name1:1111}] data = [{ name1: 1111 }];
constructor(private http: _HttpClient, private modal: ModalHelper,public service :DataService) { } constructor(private http: _HttpClient, private modal: ModalHelper, public service: DataService) {}
/** /**
* 查询参数 * 查询参数
*/ */
get reqParams() { get reqParams() {
return { }; return {};
} }
ngOnInit(): void { ngOnInit(): void {
this.initST(); this.initST();
} }
initST() { initST() {
this.columns = [ this.columns = [
{ {
title: '运营主体', title: '运营主体',
index: 'operationName' index: 'operationName',
width: 220
}, },
{ {
title: '已开票总金额', title: '已开票总金额',
index: 'totalInvoicedAmount', index: 'totalInvoicedAmount',
render: 'totalInvoicedAmount', render: 'totalInvoicedAmount',
className: 'text-right',
width: 150
}, },
{ {
title: '当月已开票金额', title: '当月已开票金额',
index: 'invAmountMonth', index: 'invAmountMonth',
render: 'invAmountMonth', render: 'invAmountMonth',
className: 'text-right',
width: 150
}, },
{ {
title: '当月已开票张数', title: '当月已开票张数',
index: 'numInvAmountMonth', index: 'numInvAmountMonth',
className: 'text-right',
width: 150
}, },
{ {
title: '已申请待开金额', title: '已申请待开金额',
index: 'applyWaitInvAmount', index: 'applyWaitInvAmount',
render: 'applyWaitInvAmount', render: 'applyWaitInvAmount',
className: 'text-right',
width: 150
}, },
{ {
title: '申请待开客户', title: '申请待开客户',
index: 'applyWaitCustomer', index: 'applyWaitCustomer',
className: 'text-right',
width: 150
}, },
{ {
title: '已开票金额', title: '已开票金额',
index: 'invoicedAmount', index: 'invoicedAmount',
render: 'invoicedAmount', render: 'invoicedAmount',
className: 'text-right',
width: 150
}, },
{ {
title: '未申请开票金额(历史)', title: '未申请开票金额(历史)',
index: 'unInvoicedAmountHistory', index: 'unInvoicedAmountHistory',
render: 'unInvoicedAmountHistory', render: 'unInvoicedAmountHistory',
className: 'text-right',
width: 200
}, },
{ {
title: '未申请开票金额(当月)', title: '未申请开票金额(当月)',
index: 'unInvoicedAmountCurMonth', index: 'unInvoicedAmountCurMonth',
render: 'unInvoicedAmountCurMonth', render: 'unInvoicedAmountCurMonth',
className: 'text-right',
width: 200
}, },
{
title: '当月发票张数',
index: 'unInvoicedAmountHistory1',
className: 'text-right',
width: 150
},
{
title: '剩余发票张数',
index: 'unInvoicedAmountCurMonth1',
className: 'text-right',
width: 150
}
]; ];
} }
} }

View File

@ -118,7 +118,7 @@ export class DatatableOperationtableComponent implements OnInit {
} else if (this.mode === 'date') { } else if (this.mode === 'date') {
this.time = [this.datePipe.transform(this.date, 'yyyy-MM-dd') + ' 00:00:00'] this.time = [this.datePipe.transform(this.date, 'yyyy-MM-dd') + ' 00:00:00']
} else { } else {
this.time = [this.datePipe.transform(this.defineDate[0], 'yyyy-MM-dd') + '00:00:00', this.datePipe.transform(this.defineDate[1], 'yyyy-MM-dd') + ' 00:00:00'] this.time = [this.datePipe.transform(this.defineDate[0], 'yyyy-MM-dd') + ' 00:00:00', this.datePipe.transform(this.defineDate[1], 'yyyy-MM-dd') + ' 00:00:00']
} }
this.st.reload({ ...this.reqParams }); this.st.reload({ ...this.reqParams });
} }

View File

@ -13,9 +13,10 @@ export class OperationtablePieComponent implements OnInit {
@ViewChild('pie', { static: false }) pie!: G2PieComponent; @ViewChild('pie', { static: false }) pie!: G2PieComponent;
chartData: any = []; chartData: any = [];
el: any; el: any;
chart: any;
enterpriseInfoIdPie = '' enterpriseInfoIdPie = ''
interManlist: any = [] interManlist: any = []
innerView: any =[];
constructor(private service: DataService, private ngZone: NgZone) { constructor(private service: DataService, private ngZone: NgZone) {
} }
@ -27,7 +28,11 @@ export class OperationtablePieComponent implements OnInit {
this.service.request(this.service.$api_operationalReportWaybillStatusDistribution, {id: this.enterpriseInfoIdPie}).subscribe(res => { this.service.request(this.service.$api_operationalReportWaybillStatusDistribution, {id: this.enterpriseInfoIdPie}).subscribe(res => {
if (res) { if (res) {
this.chartData = res this.chartData = res
this.ngZone.runOutsideAngular(() => this.init(this.el)); // this.ngZone.runOutsideAngular(() => this.init(this.el));
setTimeout(() => {
this.chart?.data(this.chartData);
this.chart?.render();
}, 1000)
} }
}) })
} }
@ -39,21 +44,26 @@ export class OperationtablePieComponent implements OnInit {
} }
render(el: ElementRef<HTMLDivElement>): void { render(el: ElementRef<HTMLDivElement>): void {
this.el = el.nativeElement this.el = el.nativeElement
setTimeout(() => {
this.ngZone.runOutsideAngular(() => this.init(this.el));
}, 500)
} }
private init(el: HTMLElement): void { private init(el: HTMLElement): void {
const chart = new Chart({ this.chart = new Chart({
container: el, container: el,
autoFit: true, autoFit: true,
height: 400, height: 400,
}); });
// 新建一个 view 用来单独渲染Annotation // 新建一个 view 用来单独渲染Annotation
const innerView = chart.createView(); // const innerView = chart.createView();
chart.coordinate('theta', {
this.innerView = this.chart.createView();
this.chart.coordinate('theta', {
radius: 0.6, radius: 0.6,
innerRadius: 0.7, innerRadius: 0.7,
}); });
chart.data(this.chartData); // this.chart.data(this.chartData);
// chart.scale('percent', { // chart.scale('percent', {
// formatter: val => { // formatter: val => {
@ -62,10 +72,10 @@ export class OperationtablePieComponent implements OnInit {
// }, // },
// }); // });
chart.tooltip(false); this.chart.tooltip(false);
// 声明需要进行自定义图例字段: 'item' // 声明需要进行自定义图例字段: 'item'
chart.legend('item', { this.chart.legend('item', {
position: 'right', // 配置图例显示位置 position: 'right', // 配置图例显示位置
custom: true, // 关键字段,告诉 G2要使用自定义的图例 custom: true, // 关键字段,告诉 G2要使用自定义的图例
items: this.chartData.map((obj: any, index: any) => { items: this.chartData.map((obj: any, index: any) => {
@ -77,7 +87,7 @@ export class OperationtablePieComponent implements OnInit {
symbol: 'square', // marker 的形状 symbol: 'square', // marker 的形状
style: { style: {
r: 5, // marker 图形半径 r: 5, // marker 图形半径
fill: chart.getTheme().colors10[index], // marker 颜色,使用默认颜色,同图形对应 fill: this.chart.getTheme().colors10[index], // marker 颜色,使用默认颜色,同图形对应
}, },
}, // marker 配置 }, // marker 配置
}; };
@ -90,7 +100,7 @@ export class OperationtablePieComponent implements OnInit {
}, },
}); });
const interval = chart const interval = this.chart
.interval() .interval()
.adjust('stack') .adjust('stack')
.position('percent') .position('percent')
@ -102,7 +112,7 @@ export class OperationtablePieComponent implements OnInit {
}) })
.state({ .state({
active: { active: {
style: element => { style: (element: any) => {
const shape = element.shape; const shape = element.shape;
return { return {
lineWidth: 1, lineWidth: 1,
@ -114,17 +124,17 @@ export class OperationtablePieComponent implements OnInit {
}); });
// 移除图例点击过滤交互 // 移除图例点击过滤交互
chart.removeInteraction('legend-filter'); this.chart.removeInteraction('legend-filter');
chart.interaction('element-active'); this.chart.interaction('element-active');
chart.render(true); this.chart.render(true);
// 默认选择 // 默认选择
interval.elements[0].setState('selected', true); interval.elements[0].setState('selected', true);
const ele = interval.elements[0].getData(); const ele = interval.elements[0].getData();
// 监听 element 上状态的变化来动态更新 Annotation 信息 // 监听 element 上状态的变化来动态更新 Annotation 信息
chart.on('element:statechange', (ev: any) => { this.chart.on('element:statechange', (ev: any) => {
const { state, stateStatus, element } = ev.gEvent.originalEvent; const { state, stateStatus, element } = ev.gEvent.originalEvent;
// 本示例只需要监听 active 的状态变化 // 本示例只需要监听 active 的状态变化
@ -142,10 +152,10 @@ export class OperationtablePieComponent implements OnInit {
// 绘制 annotation // 绘制 annotation
let lastItem: any; let lastItem: any;
function updateAnnotation(data: any) { const updateAnnotation = (data: any) => {
if (data.item !== lastItem) { if (data.item !== lastItem) {
innerView.annotation().clear(true); this.innerView.annotation().clear(true);
innerView this.innerView
.annotation() .annotation()
.text({ .text({
position: ['50%', '50%'], position: ['50%', '50%'],
@ -168,7 +178,7 @@ export class OperationtablePieComponent implements OnInit {
offsetX: -10, offsetX: -10,
offsetY: 20, offsetY: 20,
}) })
innerView.render(true); this.innerView.render(true);
lastItem = data.item; lastItem = data.item;
@ -176,9 +186,9 @@ export class OperationtablePieComponent implements OnInit {
} }
// 清空 annotation // 清空 annotation
function clearAnnotation() { function clearAnnotation(this: any) {
innerView.annotation().clear(true); this.innerView?.annotation()?.clear(true);
innerView.render(true); this.innerView.render(true);
lastItem = null; lastItem = null;
} }

View File

@ -93,6 +93,15 @@ export class DataService extends BaseService {
// 业务员-合规报表 // 业务员-合规报表
$api_listPartComplianceReportPage = `/api/sdc/report/listPartComplianceReportPage`; $api_listPartComplianceReportPage = `/api/sdc/report/listPartComplianceReportPage`;
// 数据报表-订单类型比例
$api_getBillTypeProportion = `/api/sdc/reportData/getBillTypeProportion`;
// 数据报表-运单直付比例
$api_getWayBillDirectProportion = `/api/sdc/reportData/getWayBillDirectProportion`;
// 数据报表-统计订单金额-趋势
$api_getBillAmount = `/api/sdc/reportData/getBillAmount`;
// // 数据报表-统计订单金额-趋势
// $api_getBillAmount = `/api/sdc/reportData/getBillAmount`;
constructor(public injector: Injector) { constructor(public injector: Injector) {

View File

@ -65,7 +65,7 @@
<div nz-col [nzXl]="_$expand ? 24 : 6" [nzLg]="24" [nzSm]="24" [nzXs]="24" class="text-right"> <div nz-col [nzXl]="_$expand ? 24 : 6" [nzLg]="24" [nzSm]="24" [nzXs]="24" class="text-right">
<button nz-button nzType="primary" [nzLoading]="service.http.loading" (click)="inputST?.load(1)">查询</button> <button nz-button nzType="primary" [nzLoading]="service.http.loading" (click)="inputST?.load(1)">查询</button>
<button nz-button (click)="resetInputSF()">重置</button> <button nz-button (click)="resetInputSF()">重置</button>
<button nz-button> 导出</button> <button nz-button (click)="exprot()"> 导出</button>
<button nz-button nzType="link" (click)="expandToggle()"> <button nz-button nzType="link" (click)="expandToggle()">
{{ !_$expand ? '展开' : '收起' }} {{ !_$expand ? '展开' : '收起' }}
<i nz-icon [nzType]="!_$expand ? 'down' : 'up'"></i> <i nz-icon [nzType]="!_$expand ? 'down' : 'up'"></i>
@ -81,11 +81,11 @@
</ng-template> </ng-template>
<ng-template st-row="billId" let-item let-index="index" let-column="column"> <ng-template st-row="billId" let-item let-index="index" let-column="column">
{{item.billCode}}<br> {{item.billCode}}<br>
{{item.billStatus}}<br> {{item.billStatusLabel}}<br>
</ng-template> </ng-template>
<ng-template st-row="wayBillId" let-item let-index="index" let-column="column"> <ng-template st-row="wayBillId" let-item let-index="index" let-column="column">
{{item.wayBillCode}}<br> {{item.wayBillCode}}<br>
{{item.wayBillStatus}}<br> {{item.wayBillStatusLabel}}<br>
</ng-template> </ng-template>
<ng-template st-row="driverId" let-item let-index="index" let-column="column"> <ng-template st-row="driverId" let-item let-index="index" let-column="column">
{{item.driverName}}<br> {{item.driverName}}<br>

View File

@ -123,6 +123,11 @@ export class WithdrawalsDetailComponent implements OnInit {
history.go(-1); history.go(-1);
} }
// 导出
exprot() {
this.service.exportStart({ ...this.inputSF.value, pageSize: -1 }, this.service.$api_export_refund_detail_page);
}
private initInputSF(): SFSchema { private initInputSF(): SFSchema {
return { return {
properties: { properties: {
@ -220,11 +225,11 @@ export class WithdrawalsDetailComponent implements OnInit {
widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.payAmount }) }, widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.payAmount }) },
width: 140 width: 140
}, },
{ title: '运费明细', render: 'amountDetails', className: 'text-center', width: 150 }, { title: '运费明细', render: 'amountDetails', className: 'text-right', width: 150 },
{ title: '货主', index: 'ltdName', className: 'text-center', width: 200 }, { title: '货主', index: 'ltdName', className: 'text-left', width: 200 },
{ title: '订单号', render: 'billId', className: 'text-center', width: 150 }, { title: '订单号', render: 'billId', width: 200 },
{ title: '运单号', render: 'wayBillId', className: 'text-center', width: 150 }, { title: '运单号', render: 'wayBillId', width: 200 },
{ title: '货源编号', index: 'resourceCode', className: 'text-center', width: 150 }, { title: '货源编号', index: 'resourceCode', width: 200 },
{ {
title: '服务类型', title: '服务类型',
index: 'serviceType', index: 'serviceType',
@ -233,9 +238,9 @@ export class WithdrawalsDetailComponent implements OnInit {
type: 'enum', type: 'enum',
enum: { '1': '抢单', '2': '指派', '3': '二维码', '4': '手工单' } enum: { '1': '抢单', '2': '指派', '3': '二维码', '4': '手工单' }
}, },
{ title: '承运司机', render: 'driverId', className: 'text-center', width: 150 }, { title: '承运司机', render: 'driverId', width: 150 },
{ title: '收款人', render: 'captainName', className: 'text-center', width: 150 }, { title: '收款人', render: 'captainName', className: 'text-left', width: 150 },
{ title: '银行类型', index: 'bankType', className: 'text-center', width: 150 } { title: '银行类型', index: 'bankTypeLabel', className: 'text-center', width: 150 }
]; ];
} }
} }

View File

@ -55,7 +55,9 @@ export class FreightAccountService extends ShipperBaseService {
// 获取提现申请表详情 // 获取提现申请表详情
$api_get_refund_detail = '/api/fcc/refundApplicationOBC/get'; $api_get_refund_detail = '/api/fcc/refundApplicationOBC/get';
// 获取提现支付详情 // 获取提现支付详情
$api_get_refund_detail_page = '/api/fcc/refundApplicationOBC/get/payList'; $api_get_refund_detail_page = '/api/fcc/refundApplicationOBC/get/getPayList';
// 提现支付详情导出
$api_export_refund_detail_page = '/api/fcc/refundApplicationOBC/asyncExportPayList';
// 同意提现 // 同意提现
$api_agree_refund = '/api/fcc/refundApplicationOBC/agreeRefund'; $api_agree_refund = '/api/fcc/refundApplicationOBC/agreeRefund';
// 拒绝提现 // 拒绝提现

View File

@ -93,10 +93,17 @@ export class OrderManagementComplaintComponent implements OnInit {
initSF() { initSF() {
this.schema = { this.schema = {
properties: { properties: {
_$expand: { type: 'boolean', ui: { hidden: true } },
complaintCode: { complaintCode: {
type: 'string', type: 'string',
title: '投诉单号' title: '投诉单号'
}, },
wayBillCode: {
type: 'string',
title: '运单号',
ui: {
}
},
complaintCause: { complaintCause: {
title: '投诉原因', title: '投诉原因',
type: 'string', type: 'string',
@ -124,7 +131,10 @@ export class OrderManagementComplaintComponent implements OnInit {
ui: { ui: {
widget: 'sl-from-to', widget: 'sl-from-to',
type: 'date', type: 'date',
format: 'yyyy-MM-dd' format: 'yyyy-MM-dd',
visibleIf: {
_$expand: (value: boolean) => value
},
} as SFDateWidgetSchema } as SFDateWidgetSchema
} }
} }

View File

@ -94,19 +94,6 @@ export class TaxManagementIndividualCollectComponent implements OnInit {
}, },
default: '' default: ''
}, },
declareResult: {
title: '申报结果',
type: 'string',
ui: {
placeholder: '请选择',
widget: 'dict-select',
params: { dictKey: 'service:type' },
containsAllLabel: true,
visibleIf: {
_$expand: (value: boolean) => value
}
}
},
overdueStatus: { overdueStatus: {
title: '是否逾期', title: '是否逾期',
type: 'string', type: 'string',
@ -143,7 +130,7 @@ export class TaxManagementIndividualCollectComponent implements OnInit {
} }
} as SFDateWidgetSchema } as SFDateWidgetSchema
}, },
enterpriseInfoId: { nsrmc: {
type: 'string', type: 'string',
title: '网络货运人', title: '网络货运人',
ui: { ui: {
@ -153,7 +140,7 @@ export class TaxManagementIndividualCollectComponent implements OnInit {
visibleIf: { visibleIf: {
_$expand: (value: boolean) => value _$expand: (value: boolean) => value
}, },
asyncData: () => this.service.getNetworkFreightForwarder() asyncData: () => this.service.getNetworkEnterpriseName()
} }
} }
} }
@ -298,16 +285,12 @@ export class TaxManagementIndividualCollectComponent implements OnInit {
* @param params 更新数据 * @param params 更新数据
*/ */
uploadSetting() { uploadSetting() {
if (this.selectedRows.length === 0) { this.service.request(this.service.$api_get_updateData).subscribe((res: any) => {
this.service.msgSrv.warning('请选择需要更新的数据'); if (res) {
return; this.service.msgSrv.success('更新成功');
} this.search();
// this.service.request(this.service.$api_recall_reporting, { rows: this.selectedRows }).subscribe((res: any) => { }
// if (res) { })
// this.service.msgSrv.success('更新成功');
// this.search();
// }
// })
} }
search() { search() {

View File

@ -413,10 +413,21 @@ export class TaxManagementOrderReportingComponent implements OnInit {
* 上传 * 上传
*/ */
upload() { upload() {
let status = false
if (this.selectedRows.length === 0) { if (this.selectedRows.length === 0) {
this.openWainingModal('请选择需要上传的数据'); this.openWainingModal('请选择需要上传的数据');
return; return;
} }
this.selectedRows.forEach(item => {
if (item?.putStatus != '0') {
status = true
}
});
if(status) {
this.service.msgSrv.warning('选择了已上传,请重新勾选!');
return;
}
let params: any[] = []; let params: any[] = [];
this.selectedRows.forEach(item => { this.selectedRows.forEach(item => {
params.push(item.id); params.push(item.id);

View File

@ -4,7 +4,7 @@
* @Author : Shiming * @Author : Shiming
* @Date : 2021-12-27 10:30:56 * @Date : 2021-12-27 10:30:56
* @LastEditors : Shiming * @LastEditors : Shiming
* @LastEditTime : 2022-04-09 14:22:35 * @LastEditTime : 2022-04-19 14:19:44
* @FilePath : \\tms-obc-web\\src\\app\\routes\\tax-management\\services\\tax-management.service.ts * @FilePath : \\tms-obc-web\\src\\app\\routes\\tax-management\\services\\tax-management.service.ts
* Copyright (C) 2022 huzhenhong. All rights reserved. * Copyright (C) 2022 huzhenhong. All rights reserved.
*/ */
@ -50,6 +50,8 @@ export class TaxManagementService extends ShipperBaseService {
$api_get_taxDeclaration = `/api/sdc/taxDeclaration/list/page`; $api_get_taxDeclaration = `/api/sdc/taxDeclaration/list/page`;
// 更新所有税务申报 // 更新所有税务申报
$api_get_taxDeclaration_updateAll = `/api/sdc/taxDeclaration/updateAll`; $api_get_taxDeclaration_updateAll = `/api/sdc/taxDeclaration/updateAll`;
// 更新所有个税汇总
$api_get_updateData = `/api/sdc/taxSummary/updateData`;
$api_recall_reporting = ``; // 撤回 $api_recall_reporting = ``; // 撤回
$api_async_export_order_reporting_list = ``; // 导出订单上报 $api_async_export_order_reporting_list = ``; // 导出订单上报
$api_get_upload_setting = ``; // 修改上传设置 $api_get_upload_setting = ``; // 修改上传设置

View File

@ -263,6 +263,7 @@ export class InvoiceRequestedComponent {
const modal = this.nzModalService.create({ const modal = this.nzModalService.create({
nzTitle: '开票受理', nzTitle: '开票受理',
nzContent: RequestedInvoiceModalComponent, nzContent: RequestedInvoiceModalComponent,
nzNoAnimation: true,
nzWidth: 1200, nzWidth: 1200,
nzComponentParams: { nzComponentParams: {
id: item.id id: item.id

View File

@ -11,26 +11,16 @@
<app-requested-detail [id]="id"></app-requested-detail> <app-requested-detail [id]="id"></app-requested-detail>
<st <st #st1 [data]="service.$api_get_invoice_requested_order_detail" [columns]="columns" bordered size="small"
#st1 [req]="{ process: beforeReq }" [res]="{ process:afterRes }"
[data]="service.$api_get_invoice_requested_order_detail" [page]="{ show: true, showSize: true, pageSizes: [10, 20, 30, 50, 100, 200, 300, 500, 1000] }" [loading]="false"
[columns]="columns" [scroll]="{ x: '1200px', y: '200px' }" (change)="stChange($event)" class="mt-md">
bordered
size="small"
[req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, process: beforeReq }"
[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"
[scroll]="{ x: '1200px', y: '200px' }"
(change)="stChange($event)"
class="mt-md"
>
<ng-template st-row="billHCode" let-item let-index="index" let-column="column"> <ng-template st-row="billHCode" let-item let-index="index" let-column="column">
<a class="text-primary"> {{ item.billHCode }}</a> <a class="text-primary"> {{ item.billHCode }}</a>
</ng-template> </ng-template>
</st> </st>
<div class="modal-footer text-center"> <div class="modal-footer text-center">
<button nz-button type="button"(click)="removeOrder(selectedRows)">移除</button> <button nz-button type="button" (click)="removeOrder(selectedRows)">移除</button>
<button nz-button type="button" (click)="saveManage()">手工处理</button> <button nz-button type="button" (click)="saveManage()">手工处理</button>
<!-- <button nz-button type="submit" nzType="primary" [nzLoading]="service.http.loading" (click)="saveManage()">自动开票</button> --> <!-- <button nz-button type="submit" nzType="primary" [nzLoading]="service.http.loading" (click)="saveManage()">自动开票</button> -->
</div> </div>

View File

@ -6,7 +6,7 @@
* @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE * @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
* @FilePath : \\tms-obc-web\\src\\app\\routes\\ticket-management\\components\\invoice-requested\\requested-invoice-modal\\requested-invoice-modal.component.ts * @FilePath : \\tms-obc-web\\src\\app\\routes\\ticket-management\\components\\invoice-requested\\requested-invoice-modal\\requested-invoice-modal.component.ts
*/ */
import { Component, ViewChild } from '@angular/core'; import { ChangeDetectorRef, Component, ViewChild } from '@angular/core';
import { Router } from '@angular/router'; import { Router } from '@angular/router';
import { STChange, STColumn, STComponent, STRequestOptions } from '@delon/abc/st'; import { STChange, STColumn, STComponent, STRequestOptions } from '@delon/abc/st';
import { NzModalRef, NzModalService } from 'ng-zorro-antd/modal'; import { NzModalRef, NzModalService } from 'ng-zorro-antd/modal';
@ -24,23 +24,38 @@ export class RequestedInvoiceModalComponent {
columns: STColumn[] = this.initST(); columns: STColumn[] = this.initST();
id: any; id: any;
selectedRows: any[] = []; selectedRows: any[] = [];
constructor(public service: TicketService, private nzModalService: NzModalService, private modal: NzModalRef, private router: Router) {}
constructor(
public service: TicketService,
private nzModalService: NzModalService,
private modal: NzModalRef,
private router: Router,
private cdr: ChangeDetectorRef
) {}
beforeReq = (requestOptions: STRequestOptions) => { beforeReq = (requestOptions: STRequestOptions) => {
Object.assign(requestOptions.body, { vatappHId: this.id }); Object.assign(requestOptions.body, { vatappHId: this.id });
return requestOptions; return requestOptions;
}; };
afterRes = (data: any[], rawData?: any) => {
return data.map(item => ({ ...item, isDelete: data?.length > 1 }));
};
/** /**
* 移除订单 * 移除订单
* *
* @returns * @returns
*/ */
removeOrder(item: any[]) { removeOrder(item: any[]) {
if (this.st1._data?.length <= 1) { if (this.st1.total <= 1 || item?.length === this.st1.total) {
this.service.msgSrv.warning('开票申请记录不能少于一个订单'); this.service.msgSrv.warning('开票申请记录不能少于一个订单');
return; return;
} }
if (item?.length <= 0) {
this.service.msgSrv.warning('请选择要移除订单');
return;
}
this.nzModalService.warning({ this.nzModalService.warning({
nzTitle: '确定从当前批次中移除所选订单?', nzTitle: '确定从当前批次中移除所选订单?',
nzContent: '移除后相关订单可以重新提交开票申请', nzContent: '移除后相关订单可以重新提交开票申请',
@ -111,7 +126,7 @@ export class RequestedInvoiceModalComponent {
{ {
text: '移除', text: '移除',
click: (item: any) => this.removeOrder([item]), click: (item: any) => this.removeOrder([item]),
iif: _ => this.st1._data?.length > 1 iif: item => item.isDelete
} }
] ]
} }

View File

@ -1,4 +1,4 @@
<ng-container > <ng-container>
<!-- 页头 --> <!-- 页头 -->
<page-header-wrapper [logo]="logo" title="车辆详情" [content]="content"> <page-header-wrapper [logo]="logo" title="车辆详情" [content]="content">
<ng-template #logo> <ng-template #logo>
@ -8,84 +8,73 @@
</ng-template> </ng-template>
<ng-template #content> <ng-template #content>
<sv-container col="1"> <sv-container col="1">
<sv-title style="font-weight: 700;"> <sv-title style="font-weight: 700;">
<div style="float: right;"> <div style="float: right;">
<ng-container *ngIf="!isEdit"> <ng-container *ngIf="!isEdit">
<button nz-button nzType="default" nzDanger (click)="ratify()" acl acl-ability="VEHICLE-LIST-DETAIL-save">修改</button> <button nz-button nzType="default" nzDanger (click)="ratify()" acl
</ng-container> acl-ability="VEHICLE-LIST-DETAIL-save">修改</button>
<ng-container *ngIf="isEdit"> </ng-container>
<button nz-button nzType="default" (click)="reset()">取消</button> <ng-container *ngIf="isEdit">
<button nz-button nzType="default" (click)="save()" nzDanger>保存</button> <button nz-button nzType="default" (click)="reset()">取消</button>
</ng-container> <button nz-button nzType="default" (click)="save()" nzDanger>保存</button>
</div> </ng-container>
</sv-title> </div>
</sv-container> </sv-title>
</sv-container>
<sv-container col="3"> <sv-container col="3">
<sv-title style="font-weight: 700;">车辆基础信息</sv-title> <sv-title style="font-weight: 700;">车辆基础信息</sv-title>
<sv label="车牌号"> <sv label="车牌号">
<input nz-input type="text" [(ngModel)]="detailData.carNo" [readonly]="!isEdit" [nzBorderless]="!isEdit" <input nz-input type="text" [(ngModel)]="detailData.carNo" [readonly]="!isEdit" [nzBorderless]="!isEdit"
[placeholder]="isEdit?'':'-'"> [placeholder]="isEdit?'':'-'">
</sv> </sv>
<sv label="车牌颜色"> <sv label="车牌颜色">
<!-- <input nz-input type="text" [(ngModel)]="detailData.carNoColor" [readonly]="!isEdit" [nzBorderless]="!isEdit" <!-- <input nz-input type="text" [(ngModel)]="detailData.carNoColor" [readonly]="!isEdit" [nzBorderless]="!isEdit"
[placeholder]="isEdit?'':'-'"> --> [placeholder]="isEdit?'':'-'"> -->
<nz-select [(ngModel)]="detailData.carNoColor" [nzPlaceHolder]="isEdit?'':'-'" [nzBorderless]="!isEdit" <nz-select [(ngModel)]="detailData.carNoColor" [nzPlaceHolder]="isEdit?'':'-'" [nzBorderless]="!isEdit"
[nzShowArrow]="isEdit" [nzDisabled]="!isEdit"> [nzShowArrow]="isEdit" [nzDisabled]="!isEdit">
<nz-option <nz-option *ngFor="let i of contenCarNoColor" [nzLabel]="i.label" [nzValue]="i.value"></nz-option>
*ngFor="let i of contenCarNoColor" </nz-select>
[nzLabel]="i.label" </sv>
[nzValue]="i.value" <sv label="车型">
></nz-option> <!-- <input nz-input type="text" [(ngModel)]="detailData.carModel" [readonly]="!isEdit" [nzBorderless]="!isEdit"
</nz-select>
</sv>
<sv label="车型">
<!-- <input nz-input type="text" [(ngModel)]="detailData.carModel" [readonly]="!isEdit" [nzBorderless]="!isEdit"
[placeholder]="isEdit?'':'-'"> --> [placeholder]="isEdit?'':'-'"> -->
<nz-select [(ngModel)]="detailData.carModel" [nzPlaceHolder]="isEdit?'':'-'" [nzBorderless]="!isEdit" <nz-select [(ngModel)]="detailData.carModel" [nzPlaceHolder]="isEdit?'':'-'" [nzBorderless]="!isEdit"
[nzShowArrow]="isEdit" [nzDisabled]="!isEdit"> [nzShowArrow]="isEdit" [nzDisabled]="!isEdit">
<nz-option <nz-option *ngFor="let i of contencarModel" [nzLabel]="i.label" [nzValue]="i.value"></nz-option>
*ngFor="let i of contencarModel" </nz-select>
[nzLabel]="i.label" </sv>
[nzValue]="i.value" <sv label="车长(米)">
></nz-option> <!-- <input nz-input type="text" [(ngModel)]="detailData.carLength" [readonly]="!isEdit" [nzBorderless]="!isEdit"
</nz-select>
</sv>
<sv label="车长(米)">
<!-- <input nz-input type="text" [(ngModel)]="detailData.carLength" [readonly]="!isEdit" [nzBorderless]="!isEdit"
[placeholder]="isEdit?'':'-'"> --> [placeholder]="isEdit?'':'-'"> -->
<nz-select [(ngModel)]="detailData.carLength" [nzPlaceHolder]="isEdit?'':'-'" [nzBorderless]="!isEdit" <nz-select [(ngModel)]="detailData.carLength" [nzPlaceHolder]="isEdit?'':'-'" [nzBorderless]="!isEdit"
[nzShowArrow]="isEdit" [nzDisabled]="!isEdit"> [nzShowArrow]="isEdit" [nzDisabled]="!isEdit">
<nz-option <nz-option *ngFor="let i of contenCarLength" [nzLabel]="i.label" [nzValue]="i.value"></nz-option>
*ngFor="let i of contenCarLength" </nz-select>
[nzLabel]="i.label" </sv>
[nzValue]="i.value" <sv label="是否挂靠">
></nz-option> <nz-select [(ngModel)]="detailData.isSelf" [nzPlaceHolder]="isEdit?'':'-'" [nzBorderless]="!isEdit"
</nz-select>
</sv>
<sv label="是否挂靠">
<nz-select [(ngModel)]="detailData.isSelf" [nzPlaceHolder]="isEdit?'':'-'" [nzBorderless]="!isEdit"
[nzShowArrow]="isEdit" [nzDisabled]="!isEdit"> [nzShowArrow]="isEdit" [nzDisabled]="!isEdit">
<nz-option [nzValue]="false" nzLabel="否"></nz-option> <nz-option [nzValue]="false" nzLabel="否"></nz-option>
<nz-option [nzValue]="true" nzLabel="是"></nz-option> <nz-option [nzValue]="true" nzLabel="是"></nz-option>
</nz-select> </nz-select>
</sv> </sv>
<sv label="是否为挂车"> <sv label="是否为挂车">
<nz-select [(ngModel)]="detailData.isTrailer" [nzPlaceHolder]="isEdit?'':'-'" [nzBorderless]="!isEdit" <nz-select [(ngModel)]="detailData.isTrailer" [nzPlaceHolder]="isEdit?'':'-'" [nzBorderless]="!isEdit"
[nzShowArrow]="isEdit" [nzDisabled]="!isEdit"> [nzShowArrow]="isEdit" [nzDisabled]="!isEdit">
<nz-option [nzValue]="false" nzLabel="否"></nz-option> <nz-option [nzValue]="false" nzLabel="否"></nz-option>
<nz-option [nzValue]="true" nzLabel="是"></nz-option> <nz-option [nzValue]="true" nzLabel="是"></nz-option>
</nz-select> </nz-select>
</sv> </sv>
</sv-container> </sv-container>
<sv-container col="1"> <sv-container col="1">
<sv label="车头照"> <sv label="车头照">
<!-- <app-imagelist [imgList]="[detailData?.carFrontPhotoWatermark, detailData?.carFrontPhotoWatermark]"></app-imagelist> --> <!-- <app-imagelist [imgList]="[detailData?.carFrontPhotoWatermark, detailData?.carFrontPhotoWatermark]"></app-imagelist> -->
<ng-container <ng-container
*ngTemplateOutlet="uploadTemplate;context:{image:detailData?.carFrontPhotoWatermark,key:'carFrontPhotoWatermark',hover: 'PhotoWatermark2'}"> *ngTemplateOutlet="uploadTemplate;context:{image:detailData?.carFrontPhotoWatermark,key:'carFrontPhotoWatermark',hover: 'PhotoWatermark2'}">
</ng-container> </ng-container>
</sv> </sv>
</sv-container> </sv-container>
</ng-template> </ng-template>
</page-header-wrapper> </page-header-wrapper>
<nz-card> <nz-card>
@ -93,24 +82,30 @@
<sv-title style="font-weight: 700;">行驶证信息</sv-title> <sv-title style="font-weight: 700;">行驶证信息</sv-title>
<sv label="档案编号"> <sv label="档案编号">
<input nz-input type="text" [(ngModel)]="detailData.archivesNo" [readonly]="!isEdit" [nzBorderless]="!isEdit" <input nz-input type="text" [(ngModel)]="detailData.archivesNo" [readonly]="!isEdit" [nzBorderless]="!isEdit"
[placeholder]="isEdit?'':'-'"> [placeholder]="isEdit?'':'-'">
</sv>
<sv label="车辆品牌">
<input nz-input type="text" [(ngModel)]="detailData.carBrand" [readonly]="!isEdit" [nzBorderless]="!isEdit"
[placeholder]="isEdit?'':'-'">
</sv> </sv>
<sv label="行驶证注册日期"> <sv label="行驶证注册日期">
<!-- <input nz-input type="text" [(ngModel)]="detailData.driverLicenseRegisterTime" [readonly]="!isEdit" [nzBorderless]="!isEdit" <!-- <input nz-input type="text" [(ngModel)]="detailData.driverLicenseRegisterTime" [readonly]="!isEdit" [nzBorderless]="!isEdit"
[placeholder]="isEdit?'':'-'"> --> [placeholder]="isEdit?'':'-'"> -->
<nz-date-picker [(ngModel)]="detailData.driverLicenseRegisterTime" [nzDisabled]="!isEdit" <nz-date-picker [(ngModel)]="detailData.driverLicenseRegisterTime" [nzDisabled]="!isEdit"
[nzPlaceHolder]="isEdit?'':'-'" [nzBorderless]="!isEdit" [nzSuffixIcon]="isEdit?'calendar':''"></nz-date-picker> [nzPlaceHolder]="isEdit?'':'-'" [nzBorderless]="!isEdit" [nzSuffixIcon]="isEdit?'calendar':''">
</nz-date-picker>
</sv> </sv>
</sv-container> </sv-container>
<sv-container col="3"> <sv-container col="3">
<sv label="行驶证到期日"> <sv label="行驶证到期日">
<nz-date-picker [(ngModel)]="detailData.driverLicenseEndTime" [nzDisabled]="!isEdit" <nz-date-picker [(ngModel)]="detailData.driverLicenseEndTime" [nzDisabled]="!isEdit"
[nzPlaceHolder]="isEdit?'':'-'" [nzBorderless]="!isEdit" [nzSuffixIcon]="isEdit?'calendar':''"></nz-date-picker> [nzPlaceHolder]="isEdit?'':'-'" [nzBorderless]="!isEdit" [nzSuffixIcon]="isEdit?'calendar':''">
</sv> </nz-date-picker>
</sv>
<sv label="行驶证签发机关"> <sv label="行驶证签发机关">
<input style="width: '300px'" nz-input type="text" [(ngModel)]="detailData.driverLicenseSigningOrg" [readonly]="!isEdit" [nzBorderless]="!isEdit" <input style="width: '300px'" nz-input type="text" [(ngModel)]="detailData.driverLicenseSigningOrg"
[placeholder]="isEdit?'':'-'"> [readonly]="!isEdit" [nzBorderless]="!isEdit" [placeholder]="isEdit?'':'-'">
</sv> </sv>
</sv-container> </sv-container>
@ -119,118 +114,114 @@
<!-- <input nz-input type="text" [(ngModel)]="detailData.driverLicenseGetTime" [readonly]="!isEdit" [nzBorderless]="!isEdit" <!-- <input nz-input type="text" [(ngModel)]="detailData.driverLicenseGetTime" [readonly]="!isEdit" [nzBorderless]="!isEdit"
[placeholder]="isEdit?'':'-'"> --> [placeholder]="isEdit?'':'-'"> -->
<nz-date-picker [(ngModel)]="detailData.driverLicenseGetTime" [nzDisabled]="!isEdit" <nz-date-picker [(ngModel)]="detailData.driverLicenseGetTime" [nzDisabled]="!isEdit"
[nzPlaceHolder]="isEdit?'':'-'" [nzBorderless]="!isEdit" [nzSuffixIcon]="isEdit?'calendar':''"></nz-date-picker> [nzPlaceHolder]="isEdit?'':'-'" [nzBorderless]="!isEdit" [nzSuffixIcon]="isEdit?'calendar':''">
</nz-date-picker>
</sv> </sv>
<sv label="车辆识别代码"> <sv label="车辆识别代码">
<input nz-input type="text" [(ngModel)]="detailData.carDistinguishCode" [readonly]="!isEdit" [nzBorderless]="!isEdit" <input nz-input type="text" [(ngModel)]="detailData.carDistinguishCode" [readonly]="!isEdit"
[placeholder]="isEdit?'':'-'"> [nzBorderless]="!isEdit" [placeholder]="isEdit?'':'-'">
</sv> </sv>
<sv label="使用性质"> <sv label="使用性质">
<nz-select [(ngModel)]="detailData.useNature" [nzPlaceHolder]="isEdit?'':'-'" [nzBorderless]="!isEdit" <nz-select [(ngModel)]="detailData.useNature" [nzPlaceHolder]="isEdit?'':'-'" [nzBorderless]="!isEdit"
[nzShowArrow]="isEdit" [nzDisabled]="!isEdit"> [nzShowArrow]="isEdit" [nzDisabled]="!isEdit">
<nz-option [nzValue]="'1'" nzLabel="营运"></nz-option> <nz-option [nzValue]="'1'" nzLabel="营运"></nz-option>
<nz-option [nzValue]="'0'" nzLabel="非营运"></nz-option> <nz-option [nzValue]="'0'" nzLabel="非营运"></nz-option>
</nz-select> </nz-select>
</sv> </sv>
</sv-container> </sv-container>
<sv-container col="3"> <sv-container col="3">
<sv label="载重(吨)"> <sv label="载重(吨)">
<input nz-input type="text" [(ngModel)]="detailData.carLoad" [readonly]="!isEdit" [nzBorderless]="!isEdit" <input nz-input type="text" [(ngModel)]="detailData.carLoad" [readonly]="!isEdit" [nzBorderless]="!isEdit"
[placeholder]="isEdit?'':'-'"> [placeholder]="isEdit?'':'-'">
</sv> </sv>
<sv label="整备质量"> <sv label="整备质量">
<input nz-input type="text" [(ngModel)]="detailData.curbWeight" [readonly]="!isEdit" [nzBorderless]="!isEdit" <input nz-input type="text" [(ngModel)]="detailData.curbWeight" [readonly]="!isEdit" [nzBorderless]="!isEdit"
[placeholder]="isEdit?'':'-'"> [placeholder]="isEdit?'':'-'">
</sv> </sv>
<sv label="所有人"> <sv label="所有人">
<input style="width: '300px'" nz-input type="text" [(ngModel)]="detailData.carOwner" [readonly]="!isEdit" [nzBorderless]="!isEdit" <input style="width: '300px'" nz-input type="text" [(ngModel)]="detailData.carOwner" [readonly]="!isEdit"
[placeholder]="isEdit?'':'-'"> [nzBorderless]="!isEdit" [placeholder]="isEdit?'':'-'">
</sv> </sv>
</sv-container> </sv-container>
<sv-container col="1"> <sv-container col="1">
<sv label="行驶证照片"> <sv label="行驶证照片">
<ng-container <ng-container
*ngTemplateOutlet="uploadTemplate;context:{image:detailData?.certificatePhotoFrontWatermark,key:'certificatePhotoFrontWatermark',hover: 'FrontWatermark'}"> *ngTemplateOutlet="uploadTemplate;context:{image:detailData?.certificatePhotoFrontWatermark,key:'certificatePhotoFrontWatermark',hover: 'FrontWatermark'}">
</ng-container> </ng-container>
<ng-container <ng-container
*ngTemplateOutlet="uploadTemplate;context:{image:detailData?.certificatePhotoBackWatermark,key:'certificatePhotoBackWatermark',hover: 'BackWatermark'}"> *ngTemplateOutlet="uploadTemplate;context:{image:detailData?.certificatePhotoBackWatermark,key:'certificatePhotoBackWatermark',hover: 'BackWatermark'}">
</ng-container> </ng-container>
</sv> </sv>
</sv-container> </sv-container>
<nz-divider></nz-divider> <nz-divider></nz-divider>
<sv-container col="3" class="mt16"> <sv-container col="3" class="mt16">
<sv-title style="font-weight: 700;">道路运输证信息</sv-title> <sv-title style="font-weight: 700;">道路运输证信息</sv-title>
<sv label="道路运输证号"> <sv label="道路运输证号">
<input nz-input type="text" [(ngModel)]="detailData.roadTransportNo" [readonly]="!isEdit" [nzBorderless]="!isEdit" <input nz-input type="text" [(ngModel)]="detailData.roadTransportNo" [readonly]="!isEdit"
[placeholder]="isEdit?'':'-'"> [nzBorderless]="!isEdit" [placeholder]="isEdit?'':'-'">
</sv> </sv>
<sv label="经营许可证号"> <sv label="经营许可证号">
<input nz-input type="text" [(ngModel)]="detailData.roadTransportLicenceNo" [readonly]="!isEdit" [nzBorderless]="!isEdit" <input nz-input type="text" [(ngModel)]="detailData.roadTransportLicenceNo" [readonly]="!isEdit"
[placeholder]="isEdit?'':'-'"> [nzBorderless]="!isEdit" [placeholder]="isEdit?'':'-'">
</sv> </sv>
<sv label="发证日期"> <sv label="发证日期">
<!-- <input nz-input type="text" [(ngModel)]="detailData.roadTransportStartTime" [readonly]="!isEdit" [nzBorderless]="!isEdit" <!-- <input nz-input type="text" [(ngModel)]="detailData.roadTransportStartTime" [readonly]="!isEdit" [nzBorderless]="!isEdit"
[placeholder]="isEdit?'':'-'"> --> [placeholder]="isEdit?'':'-'"> -->
<nz-date-picker [(ngModel)]="detailData.roadTransportStartTime" [nzDisabled]="!isEdit" <nz-date-picker [(ngModel)]="detailData.roadTransportStartTime" [nzDisabled]="!isEdit"
[nzPlaceHolder]="isEdit?'':'-'" [nzBorderless]="!isEdit" [nzSuffixIcon]="isEdit?'calendar':''"></nz-date-picker> [nzPlaceHolder]="isEdit?'':'-'" [nzBorderless]="!isEdit" [nzSuffixIcon]="isEdit?'calendar':''">
</nz-date-picker>
</sv> </sv>
<sv label="有效期至"> <sv label="有效期至">
<!-- <input nz-input type="text" [(ngModel)]="detailData.roadTransportEndTime" [readonly]="!isEdit" [nzBorderless]="!isEdit" <!-- <input nz-input type="text" [(ngModel)]="detailData.roadTransportEndTime" [readonly]="!isEdit" [nzBorderless]="!isEdit"
[placeholder]="isEdit?'':'-'"> --> [placeholder]="isEdit?'':'-'"> -->
<nz-date-picker [(ngModel)]="detailData.roadTransportEndTime" [nzDisabled]="!isEdit" <nz-date-picker [(ngModel)]="detailData.roadTransportEndTime" [nzDisabled]="!isEdit"
[nzPlaceHolder]="isEdit?'':'-'" [nzBorderless]="!isEdit" [nzSuffixIcon]="isEdit?'calendar':''"></nz-date-picker> [nzPlaceHolder]="isEdit?'':'-'" [nzBorderless]="!isEdit" [nzSuffixIcon]="isEdit?'calendar':''">
</nz-date-picker>
</sv> </sv>
<sv label="道路运输证照片"> <sv label="道路运输证照片">
<!-- <app-imagelist [imgList]="[detailData?.roadTransportPhoto,detailData?.roadTransportPhotoWatermark ]"></app-imagelist> --> <!-- <app-imagelist [imgList]="[detailData?.roadTransportPhoto,detailData?.roadTransportPhotoWatermark ]"></app-imagelist> -->
<ng-container <ng-container
*ngTemplateOutlet="uploadTemplate;context:{image:detailData?.roadTransportPhotoWatermark,key:'roadTransportPhotoWatermark', hover: 'Watermark'}" > *ngTemplateOutlet="uploadTemplate;context:{image:detailData?.roadTransportPhotoWatermark,key:'roadTransportPhotoWatermark', hover: 'Watermark'}">
</ng-container> </ng-container>
</sv> </sv>
</sv-container> </sv-container>
<nz-divider></nz-divider> <nz-divider></nz-divider>
<sv-container col="2" class="mt16"> <sv-container col="2" class="mt16">
<sv-title style="font-weight: 700;">认证司机</sv-title> <sv-title style="font-weight: 700;">认证司机</sv-title>
</sv-container> </sv-container>
<st <st #st [bordered]="true" [columns]="columns" [data]="service.$api_get_queryDriverByCarId"
#st [req]="{ method: 'POST', allInBody: true, params: reqParams }"
[bordered]="true" [res]="{ reName: { list: 'data', total: 'data' } }" [ngStyle]="{ margin: '1rem 0' }" multiSort size="small"
[columns]="columns" [page]="{ show: false }">
[data]="service.$api_get_queryDriverByCarId" <ng-template st-row="auditStatusEnum" let-item let-index="index">
[req]="{ method: 'POST', allInBody: true, params: reqParams }" <div>
[res]="{ reName: { list: 'data', total: 'data' } }" <span *ngIf="item?.auditStatusEnum === -1 || item?.auditStatusEnum === '-1'">未上传</span>
[ngStyle]="{ margin: '1rem 0' }" <span *ngIf="item?.auditStatusEnum === 0 || item?.auditStatusEnum === '0'">草稿</span>
multiSort <span *ngIf="item?.auditStatusEnum === 10 || item?.auditStatusEnum === '10'">待审核</span>
size="small" <span *ngIf="item?.auditStatusEnum === 20 || item?.auditStatusEnum === '20'">已审核</span>
[page]="{ show: false }" <span *ngIf="item?.auditStatusEnum === 30 || item?.auditStatusEnum === '30'">已驳回</span>
> <span *ngIf="item?.auditStatusEnum === 40 || item?.auditStatusEnum === '40'">证件过期</span>
<ng-template st-row="auditStatusEnum" let-item let-index="index"> </div>
<div> </ng-template>
<span *ngIf="item?.auditStatusEnum === -1 || item?.auditStatusEnum === '-1'">未上传</span> </st>
<span *ngIf="item?.auditStatusEnum === 0 || item?.auditStatusEnum === '0'">草稿</span>
<span *ngIf="item?.auditStatusEnum === 10 || item?.auditStatusEnum === '10'">待审核</span>
<span *ngIf="item?.auditStatusEnum === 20 || item?.auditStatusEnum === '20'">已审核</span>
<span *ngIf="item?.auditStatusEnum === 30 || item?.auditStatusEnum === '30'">已驳回</span>
<span *ngIf="item?.auditStatusEnum === 40 || item?.auditStatusEnum === '40'">证件过期</span>
</div>
</ng-template>
</st>
</nz-card> </nz-card>
</ng-container> </ng-container>
<nz-modal [(nzVisible)]="isVisible" [nzWidth]="600" [nzFooter]="nzModalFooterEvaluate" (nzOnOk)="handleOK()" (nzOnCancel)="handleCancel('2')"> <nz-modal [(nzVisible)]="isVisible" [nzWidth]="600" [nzFooter]="nzModalFooterEvaluate" (nzOnOk)="handleOK()"
(nzOnCancel)="handleCancel('2')">
<ng-container *nzModalContent> <ng-container *nzModalContent>
<nz-tabset> <nz-tabset>
<nz-tab nzTitle="我的评价"> <nz-tab nzTitle="我的评价">
<div> <div>
评分: <nz-rate [ngModel]="2.5" nzAllowHalf></nz-rate> 评分: <nz-rate [ngModel]="2.5" nzAllowHalf></nz-rate>
<div><span>评价内容:</span></div> <div><span>评价内容:</span></div>
</div> </div>
</nz-tab> </nz-tab>
<nz-tab nzTitle="司机评价"> <nz-tab nzTitle="司机评价">
<div> <div>
暂无评价内容 暂无评价内容
</div> </div>
</nz-tab> </nz-tab>
</nz-tabset> </nz-tabset>
</ng-container> </ng-container>