Merge branch 'develop' of gitlab.eascs.com:tms-ui/tms-obc-web into develop
This commit is contained in:
@ -8,7 +8,7 @@
|
|||||||
[ui]="{ '*': { spanLabelFixed: 110,grid: { lg: 8, md: 12, sm: 12, xs: 24 } }}" [compact]="true"
|
[ui]="{ '*': { spanLabelFixed: 110,grid: { lg: 8, md: 12, sm: 12, xs: 24 } }}" [compact]="true"
|
||||||
[button]="'none'"></sf>
|
[button]="'none'"></sf>
|
||||||
</div>
|
</div>
|
||||||
<div nz-col [nzXl]="_$expand ? 24 : 7" [nzLg]="24" [nzSm]="24" [nzXs]="24" class="text-right">
|
<div nz-col [nzXl]="_$expand ? 24 : 7" [nzLg]="24" [nzSm]="24" [nzXs]="24" class="text-right" [class.expend-options]="_$expand">
|
||||||
<button nz-button nzType="primary" [nzLoading]="false" (click)="st?.load(1)">查询</button>
|
<button nz-button nzType="primary" [nzLoading]="false" (click)="st?.load(1)">查询</button>
|
||||||
<button nz-button (click)="resetSF()">重置</button>
|
<button nz-button (click)="resetSF()">重置</button>
|
||||||
<!-- <button nz-button nzType="primary" > 导出</button>
|
<!-- <button nz-button nzType="primary" > 导出</button>
|
||||||
|
|||||||
@ -196,15 +196,15 @@ export class PaymentOrderComponent implements OnInit {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
feeCode: {
|
// feeCode: {
|
||||||
type: 'string',
|
// type: 'string',
|
||||||
title: '费用号',
|
// title: '费用号',
|
||||||
ui: {
|
// ui: {
|
||||||
visibleIf: {
|
// visibleIf: {
|
||||||
expand: (value: boolean) => value
|
// expand: (value: boolean) => value
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
},
|
// },
|
||||||
createTime: {
|
createTime: {
|
||||||
title: '创建时间',
|
title: '创建时间',
|
||||||
type: 'string',
|
type: 'string',
|
||||||
@ -235,6 +235,8 @@ export class PaymentOrderComponent implements OnInit {
|
|||||||
{ title: '', index: 'key', type: 'checkbox', fixed: 'left', className: 'text-center' },
|
{ title: '', index: 'key', type: 'checkbox', fixed: 'left', className: 'text-center' },
|
||||||
{ title: '付款单号', index: 'payCode', type: 'link', width: 180 },
|
{ title: '付款单号', index: 'payCode', type: 'link', width: 180 },
|
||||||
{ title: '网络货运人', index: 'ltdName', width: 180 },
|
{ title: '网络货运人', index: 'ltdName', width: 180 },
|
||||||
|
{ title: '运单号', index: 'waybillCode', width: 180 },
|
||||||
|
// { title: '费用号', index: 'feeCode', width: 180 },
|
||||||
{ title: '要求付款日期', index: 'payDate', type: 'date', className: 'text-center', width: 150 },
|
{ title: '要求付款日期', index: 'payDate', type: 'date', className: 'text-center', width: 150 },
|
||||||
{
|
{
|
||||||
title: '付款金额',
|
title: '付款金额',
|
||||||
|
|||||||
@ -16,7 +16,7 @@
|
|||||||
<sf #sf [schema]="searchSchema" [ui]="{ '*': { spanLabelFixed: 110, grid: { lg: 8, md: 12, sm: 12, xs: 24 } } }"
|
<sf #sf [schema]="searchSchema" [ui]="{ '*': { spanLabelFixed: 110, grid: { lg: 8, md: 12, sm: 12, xs: 24 } } }"
|
||||||
[compact]="true" [button]="'none'"></sf>
|
[compact]="true" [button]="'none'"></sf>
|
||||||
</div>
|
</div>
|
||||||
<div nz-col [nzXl]="_$expand ? 24 : 7" [nzLg]="24" [nzSm]="24" [nzXs]="24" class="text-right">
|
<div nz-col [nzXl]="_$expand ? 24 : 7" [nzLg]="24" [nzSm]="24" [nzXs]="24" class="text-right" [class.expend-options]="_$expand">
|
||||||
<button nz-button nzType="primary" [nzLoading]="false" (click)="st?.load(1)">查询</button>
|
<button nz-button nzType="primary" [nzLoading]="false" (click)="st?.load(1)">查询</button>
|
||||||
<button nz-button (click)="resetSF()">重置</button>
|
<button nz-button (click)="resetSF()">重置</button>
|
||||||
<!-- <button nz-button nzType="primary"> 导出</button>
|
<!-- <button nz-button nzType="primary"> 导出</button>
|
||||||
|
|||||||
@ -9,7 +9,7 @@ import { FreightAccountService } from '../../services/freight-account.service';
|
|||||||
@Component({
|
@Component({
|
||||||
selector: 'app-receipt-order',
|
selector: 'app-receipt-order',
|
||||||
templateUrl: './receipt-order.component.html',
|
templateUrl: './receipt-order.component.html',
|
||||||
styleUrls: ['../../../commom/less/box.less']
|
styleUrls: ['../../../commom/less/box.less', '../../../commom/less/expend-but.less']
|
||||||
})
|
})
|
||||||
export class ReceiptOrderComponent implements OnInit {
|
export class ReceiptOrderComponent implements OnInit {
|
||||||
@ViewChild('st', { static: true })
|
@ViewChild('st', { static: true })
|
||||||
@ -193,26 +193,26 @@ export class ReceiptOrderComponent implements OnInit {
|
|||||||
}
|
}
|
||||||
} as SFDateWidgetSchema
|
} as SFDateWidgetSchema
|
||||||
},
|
},
|
||||||
billHCode: {
|
// billHCode: {
|
||||||
type: 'string',
|
// type: 'string',
|
||||||
title: '订单号',
|
// title: '订单号',
|
||||||
ui: {
|
// ui: {
|
||||||
placeholder: '请输入',
|
// placeholder: '请输入',
|
||||||
visibleIf: {
|
// visibleIf: {
|
||||||
expand: (value: boolean) => value
|
// expand: (value: boolean) => value
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
},
|
// },
|
||||||
feeHCodes: {
|
// feeHCodes: {
|
||||||
type: 'string',
|
// type: 'string',
|
||||||
title: '费用号',
|
// title: '费用号',
|
||||||
ui: {
|
// ui: {
|
||||||
placeholder: '请输入',
|
// placeholder: '请输入',
|
||||||
visibleIf: {
|
// visibleIf: {
|
||||||
expand: (value: boolean) => value
|
// expand: (value: boolean) => value
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
},
|
// },
|
||||||
remarks: {
|
remarks: {
|
||||||
type: 'string',
|
type: 'string',
|
||||||
title: '付款备注',
|
title: '付款备注',
|
||||||
@ -231,6 +231,8 @@ export class ReceiptOrderComponent implements OnInit {
|
|||||||
return [
|
return [
|
||||||
{ title: '', index: 'key', type: 'checkbox', width: 60, fixed: 'left', className: 'text-center' },
|
{ title: '', index: 'key', type: 'checkbox', width: 60, fixed: 'left', className: 'text-center' },
|
||||||
{ title: '收款单号', index: 'brmcode', type: 'link', width: 180, className: 'text-left' },
|
{ title: '收款单号', index: 'brmcode', type: 'link', width: 180, className: 'text-left' },
|
||||||
|
// { title: '订单号', index: 'billHCode', width: 180, className: 'text-left' },
|
||||||
|
// { title: '费用号', index: 'feeCode', width: 180, className: 'text-left' },
|
||||||
{ title: '网络货运人', index: 'ltdName', width: 200, className: 'text-left' },
|
{ title: '网络货运人', index: 'ltdName', width: 200, className: 'text-left' },
|
||||||
{ title: '到账日期', index: 'brmdate', type: 'date', width: 200, className: 'text-left' },
|
{ title: '到账日期', index: 'brmdate', type: 'date', width: 200, className: 'text-left' },
|
||||||
{ title: '收款账户', index: 'ltdaccountId', width: 200, className: 'text-left' },
|
{ title: '收款账户', index: 'ltdaccountId', width: 200, className: 'text-left' },
|
||||||
|
|||||||
@ -242,6 +242,7 @@ export class ReceivableOrderComponent implements OnInit {
|
|||||||
return [
|
return [
|
||||||
{ title: '', index: 'key', type: 'checkbox' },
|
{ title: '', index: 'key', type: 'checkbox' },
|
||||||
{ title: '核销单号', index: 'ahxcode', type: 'link', width: 140 },
|
{ title: '核销单号', index: 'ahxcode', type: 'link', width: 140 },
|
||||||
|
{ title: '订单号', index: 'billHCode', type: 'link', width: 140 },
|
||||||
{ title: '网络货运人', index: 'ltdName', width: 160 },
|
{ title: '网络货运人', index: 'ltdName', width: 160 },
|
||||||
{ title: '核销日期', index: 'ahxdate', type: 'date', width: 160 },
|
{ title: '核销日期', index: 'ahxdate', type: 'date', width: 160 },
|
||||||
{ title: '付款账户', index: 'shipperaccount', width: 170 },
|
{ title: '付款账户', index: 'shipperaccount', width: 170 },
|
||||||
|
|||||||
@ -35,7 +35,7 @@ export class TransactionFlowComponent {
|
|||||||
Object.assign(requestOptions.body, {
|
Object.assign(requestOptions.body, {
|
||||||
...this.sf.value,
|
...this.sf.value,
|
||||||
createTime: {
|
createTime: {
|
||||||
start: this.sf.value.tcreateTimeime?.[0] || '',
|
start: this.sf.value.createTime?.[0] || '',
|
||||||
end: this.sf.value.createTime?.[1] || ''
|
end: this.sf.value.createTime?.[1] || ''
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@ -120,9 +120,9 @@ export class TransactionFlowComponent {
|
|||||||
type: 'string',
|
type: 'string',
|
||||||
title: '收支类型',
|
title: '收支类型',
|
||||||
enum: [
|
enum: [
|
||||||
{ label: '全部', value: '部' },
|
{ label: '全部', value: '' },
|
||||||
{ label: '收入', value: 1 },
|
{ label: '收入', value: 2 },
|
||||||
{ label: '支出', value: 2 }
|
{ label: '支出', value: 1 }
|
||||||
],
|
],
|
||||||
ui: {
|
ui: {
|
||||||
widget: 'select',
|
widget: 'select',
|
||||||
|
|||||||
@ -54,10 +54,39 @@
|
|||||||
</se>
|
</se>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<nz-alert nzType="info" nzMessage="提现进度" class="mb-md mt-md"></nz-alert>
|
<nz-tabset class="mt-md">
|
||||||
<div nz-row class="mt-xl">
|
<nz-tab nzTitle="提现明细" *ngIf="accountType === '2'">
|
||||||
<div nz-col nzSpan="12" nzOffset="1">
|
<div nz-row nzGutter="8">
|
||||||
<app-logistics-time-line [data]="timeLineData"></app-logistics-time-line>
|
<div nz-col [nzXl]="_$expand ? 24 : 18" [nzLg]="24" [nzSm]="24" [nzXs]="24">
|
||||||
</div>
|
<sf #sf [schema]="inputSearchSchema"
|
||||||
</div>
|
[ui]="{ '*': { spanLabelFixed: 110,grid: { lg: 8, md: 12, sm: 12, xs: 24 } }}" [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]="false" (click)="inputST?.load(1)">查询</button>
|
||||||
|
<button nz-button (click)="resetInputSF()">重置</button>
|
||||||
|
<button nz-button> 导出</button>
|
||||||
|
<button nz-button nzType="link" (click)="expandToggle()">
|
||||||
|
{{ !_$expand ? '展开' : '收起' }}
|
||||||
|
<i nz-icon [nzType]="!_$expand ? 'down' : 'up'"></i>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<st #inputST [data]="service.$api_get_advance_collection_detail" [columns]="columns"
|
||||||
|
[page]="{ show: false }" [req]="{ process: beforeReq }" [res]="{ reName: { list: 'data' } }"
|
||||||
|
[loading]="false" [scroll]="{ x: '1200px', y: '370px' }" class="mt-md">
|
||||||
|
<ng-template st-row="no" let-item let-index="index" let-column="column">
|
||||||
|
{{index+1}}
|
||||||
|
</ng-template>
|
||||||
|
</st>
|
||||||
|
</nz-tab>
|
||||||
|
<nz-tab nzTitle="提现进度">
|
||||||
|
<div nz-row class="mt-xl">
|
||||||
|
<div nz-col nzSpan="12" nzOffset="1">
|
||||||
|
<app-logistics-time-line [data]="timeLineData"></app-logistics-time-line>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</nz-tab>
|
||||||
|
</nz-tabset>
|
||||||
</nz-card>
|
</nz-card>
|
||||||
@ -5,13 +5,19 @@
|
|||||||
border : 1px solid #dbdbdb;
|
border : 1px solid #dbdbdb;
|
||||||
|
|
||||||
.ant-alert-message {
|
.ant-alert-message {
|
||||||
color: rgba(0, 0, 0, 0.85);
|
color : rgba(0, 0, 0, 0.85);
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
font-size: 16px;
|
font-size : 16px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.ant-form-item {
|
.ant-form-item {
|
||||||
margin-bottom: 15px;
|
margin-bottom: 15px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
nz-tabs-nav {
|
||||||
|
background-color: #f3f3f3;
|
||||||
|
border : 1px solid #dbdbdb;
|
||||||
|
padding-left : 18px;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@ -1,5 +1,7 @@
|
|||||||
import { Component, OnInit } from '@angular/core';
|
import { Component, OnInit, ViewChild } from '@angular/core';
|
||||||
import { ActivatedRoute } from '@angular/router';
|
import { ActivatedRoute } from '@angular/router';
|
||||||
|
import { STColumn, STRequestOptions } from '@delon/abc/st';
|
||||||
|
import { SFComponent, SFSchema } from '@delon/form';
|
||||||
import { FreightAccountService } from '../../../services/freight-account.service';
|
import { FreightAccountService } from '../../../services/freight-account.service';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
@ -8,17 +10,37 @@ import { FreightAccountService } from '../../../services/freight-account.service
|
|||||||
styleUrls: ['./withdrawals-detail.component.less']
|
styleUrls: ['./withdrawals-detail.component.less']
|
||||||
})
|
})
|
||||||
export class WithdrawalsDetailComponent implements OnInit {
|
export class WithdrawalsDetailComponent implements OnInit {
|
||||||
|
@ViewChild('st', { static: true })
|
||||||
|
st!: Component;
|
||||||
|
@ViewChild('sf', { static: false })
|
||||||
|
inputSF!: SFComponent;
|
||||||
|
columns: STColumn[] = this.initST();
|
||||||
|
inputSearchSchema: SFSchema = this.initInputSF();
|
||||||
|
_$expand = false;
|
||||||
|
|
||||||
formData: any = {};
|
formData: any = {};
|
||||||
|
|
||||||
timeLineData: any = [];
|
timeLineData: any = [];
|
||||||
|
|
||||||
|
accountType = '1';
|
||||||
|
|
||||||
constructor(public service: FreightAccountService, private route: ActivatedRoute) {
|
constructor(public service: FreightAccountService, private route: ActivatedRoute) {
|
||||||
const id = route.snapshot.params.id;
|
const id = route.snapshot.params.id;
|
||||||
|
this.accountType = route.snapshot.queryParams.type;
|
||||||
this.loadRefundDetail(id);
|
this.loadRefundDetail(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
ngOnInit(): void {}
|
ngOnInit(): void {}
|
||||||
|
|
||||||
|
beforeReq = (requestOptions: STRequestOptions) => {
|
||||||
|
if (this.inputSF.value) {
|
||||||
|
Object.assign(requestOptions.body, {
|
||||||
|
...this.inputSF.value
|
||||||
|
});
|
||||||
|
}
|
||||||
|
return requestOptions;
|
||||||
|
};
|
||||||
|
|
||||||
loadRefundDetail(id: string) {
|
loadRefundDetail(id: string) {
|
||||||
this.service.request(this.service.$api_get_refund_detail, { id }).subscribe(res => {
|
this.service.request(this.service.$api_get_refund_detail, { id }).subscribe(res => {
|
||||||
if (res) {
|
if (res) {
|
||||||
@ -80,7 +102,131 @@ export class WithdrawalsDetailComponent implements OnInit {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 重置表单
|
||||||
|
*/
|
||||||
|
resetInputSF() {
|
||||||
|
this.inputSF.reset();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 伸缩查询条件
|
||||||
|
*/
|
||||||
|
expandToggle() {
|
||||||
|
this._$expand = !this._$expand;
|
||||||
|
this.inputSF?.setValue('/expand', this._$expand);
|
||||||
|
}
|
||||||
|
|
||||||
goBack() {
|
goBack() {
|
||||||
history.go(-1);
|
history.go(-1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private initInputSF(): SFSchema {
|
||||||
|
return {
|
||||||
|
properties: {
|
||||||
|
expand: {
|
||||||
|
type: 'boolean',
|
||||||
|
ui: {
|
||||||
|
hidden: true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
billHCode: {
|
||||||
|
type: 'string',
|
||||||
|
title: '支付编号',
|
||||||
|
ui: {
|
||||||
|
placeholder: '请输入'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
billHCod1e: {
|
||||||
|
type: 'string',
|
||||||
|
title: '订单号',
|
||||||
|
ui: {
|
||||||
|
placeholder: '请输入'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
billHCo1de: {
|
||||||
|
type: 'string',
|
||||||
|
title: '货源编号',
|
||||||
|
ui: {
|
||||||
|
placeholder: '请输入'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
billHC1ode: {
|
||||||
|
type: 'string',
|
||||||
|
title: '服务类型',
|
||||||
|
ui: {
|
||||||
|
widget: 'select',
|
||||||
|
placeholder: '请选择',
|
||||||
|
visibleIf: {
|
||||||
|
expand: (value: boolean) => value
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
billHCo11de: {
|
||||||
|
type: 'string',
|
||||||
|
title: '承运司机',
|
||||||
|
ui: {
|
||||||
|
placeholder: '请输入司机姓名/手机号',
|
||||||
|
visibleIf: {
|
||||||
|
expand: (value: boolean) => value
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
billHCo111de: {
|
||||||
|
type: 'string',
|
||||||
|
title: '车牌号',
|
||||||
|
ui: {
|
||||||
|
placeholder: '请输入',
|
||||||
|
visibleIf: {
|
||||||
|
expand: (value: boolean) => value
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
billHC1o11de: {
|
||||||
|
type: 'string',
|
||||||
|
title: '收款人',
|
||||||
|
ui: {
|
||||||
|
placeholder: '请输入收款人姓名/手机号',
|
||||||
|
visibleIf: {
|
||||||
|
expand: (value: boolean) => value
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
billHC1o111de: {
|
||||||
|
type: 'string',
|
||||||
|
title: '车队长收款',
|
||||||
|
ui: {
|
||||||
|
widget: 'select',
|
||||||
|
placeholder: '请选择',
|
||||||
|
visibleIf: {
|
||||||
|
expand: (value: boolean) => value
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
private initST(): STColumn[] {
|
||||||
|
return [
|
||||||
|
{ title: '支付编号', index: 'brmHCode', className: 'text-left', width: 200 },
|
||||||
|
{
|
||||||
|
title: '支付金额',
|
||||||
|
index: 'yskmoney',
|
||||||
|
type: 'widget',
|
||||||
|
className: 'text-right',
|
||||||
|
widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.yskmoney }) },
|
||||||
|
width: 140
|
||||||
|
},
|
||||||
|
{ title: '运费明细', index: 'billHId', className: 'text-center', width: 150 },
|
||||||
|
{ title: '货主', index: 'billHId', className: 'text-center', width: 150 },
|
||||||
|
{ title: '订单号', index: 'billHId', className: 'text-center', width: 150 },
|
||||||
|
{ title: '运单号', index: 'billHId', className: 'text-center', width: 150 },
|
||||||
|
{ title: '货源编号', index: 'billHId', className: 'text-center', width: 150 },
|
||||||
|
{ title: '服务类型', index: 'billHId', className: 'text-center', width: 150 },
|
||||||
|
{ title: '承运司机', index: 'billHId', className: 'text-center', width: 150 },
|
||||||
|
{ title: '收款人', index: 'billHId', className: 'text-center', width: 150 },
|
||||||
|
{ title: '银行类型', index: 'billHId', className: 'text-center', width: 150 }
|
||||||
|
];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -28,9 +28,9 @@ export class WithdrawalsRecordComponent {
|
|||||||
refundStatus: any = '';
|
refundStatus: any = '';
|
||||||
|
|
||||||
msg = '';
|
msg = '';
|
||||||
constructor(public service: FreightAccountService, private nzModalService: NzModalService, private router: Router) { }
|
constructor(public service: FreightAccountService, private nzModalService: NzModalService, private router: Router) {}
|
||||||
|
|
||||||
ngOnInit(): void { }
|
ngOnInit(): void {}
|
||||||
|
|
||||||
beforeReq = (requestOptions: STRequestOptions) => {
|
beforeReq = (requestOptions: STRequestOptions) => {
|
||||||
if (this.sf) {
|
if (this.sf) {
|
||||||
@ -254,7 +254,7 @@ export class WithdrawalsRecordComponent {
|
|||||||
{ title: '提现单号', index: 'refundApplyCode', width: 120 },
|
{ title: '提现单号', index: 'refundApplyCode', width: 120 },
|
||||||
{ title: '网络货运人', index: 'ltdName', width: 140 },
|
{ title: '网络货运人', index: 'ltdName', width: 140 },
|
||||||
{ title: '银行类型', index: 'bankTypeLabel', width: 100 },
|
{ title: '银行类型', index: 'bankTypeLabel', width: 100 },
|
||||||
{ title: '账户类型', index: 'bankTypeLabel', width: 100 },
|
{ title: '账户类型', index: 'accountType', width: 100 },
|
||||||
{ title: '账户名称', index: 'bankAccountName', width: 140 },
|
{ title: '账户名称', index: 'bankAccountName', width: 140 },
|
||||||
{ title: '虚拟账户', index: 'virtualAccount', width: 100 },
|
{ title: '虚拟账户', index: 'virtualAccount', width: 100 },
|
||||||
{
|
{
|
||||||
@ -276,6 +276,18 @@ export class WithdrawalsRecordComponent {
|
|||||||
width: '110px',
|
width: '110px',
|
||||||
className: 'text-center',
|
className: 'text-center',
|
||||||
buttons: [
|
buttons: [
|
||||||
|
{
|
||||||
|
text: '审核',
|
||||||
|
iif: item => item.refundStatus === '1',
|
||||||
|
click: item => this.auditAction(item)
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: '详情<br>',
|
||||||
|
click: item =>
|
||||||
|
this.router.navigate([`/financial-management/withdrawals-record/detail/${item.id}`], {
|
||||||
|
queryParams: { type: item.accountType }
|
||||||
|
})
|
||||||
|
},
|
||||||
{
|
{
|
||||||
text: '查看回单',
|
text: '查看回单',
|
||||||
iif: item => item.refundStatus === '3',
|
iif: item => item.refundStatus === '3',
|
||||||
@ -287,15 +299,6 @@ export class WithdrawalsRecordComponent {
|
|||||||
bussType: '06',
|
bussType: '06',
|
||||||
ltdId: item.ltdId
|
ltdId: item.ltdId
|
||||||
})
|
})
|
||||||
},
|
|
||||||
{
|
|
||||||
text: '审核',
|
|
||||||
iif: item => item.refundStatus === '1',
|
|
||||||
click: item => this.auditAction(item)
|
|
||||||
},
|
|
||||||
{
|
|
||||||
text: '详情',
|
|
||||||
click: item => this.router.navigate([`/financial-management/withdrawals-record/detail/${item.id}`])
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@ -4,7 +4,7 @@
|
|||||||
* @Author : Shiming
|
* @Author : Shiming
|
||||||
* @Date : 2021-12-06 20:20:26
|
* @Date : 2021-12-06 20:20:26
|
||||||
* @LastEditors : Shiming
|
* @LastEditors : Shiming
|
||||||
* @LastEditTime : 2022-03-23 14:43:34
|
* @LastEditTime : 2022-03-24 14:08:55
|
||||||
* @FilePath : \\tms-obc-web\\src\\app\\routes\\order-management\\components\\bulk-detail\\bulk-detail.component.html
|
* @FilePath : \\tms-obc-web\\src\\app\\routes\\order-management\\components\\bulk-detail\\bulk-detail.component.html
|
||||||
* Copyright (C) 2022 huzhenhong. All rights reserved.
|
* Copyright (C) 2022 huzhenhong. All rights reserved.
|
||||||
-->
|
-->
|
||||||
|
|||||||
@ -172,6 +172,10 @@ export class OrderManagementComplaintDetailComponent implements OnInit {
|
|||||||
查看评价: 3
|
查看评价: 3
|
||||||
*/
|
*/
|
||||||
handleCancel(type: string) {
|
handleCancel(type: string) {
|
||||||
|
if(!this.sfView.valid) {
|
||||||
|
this.service.msgSrv.error('请填写处理结果!')
|
||||||
|
return
|
||||||
|
}
|
||||||
const paramsa = {
|
const paramsa = {
|
||||||
...this.sfView.value,
|
...this.sfView.value,
|
||||||
handleStatus: 0,
|
handleStatus: 0,
|
||||||
@ -193,6 +197,10 @@ export class OrderManagementComplaintDetailComponent implements OnInit {
|
|||||||
this.isVisibleRE = false
|
this.isVisibleRE = false
|
||||||
}
|
}
|
||||||
handleCancel2() {
|
handleCancel2() {
|
||||||
|
if(!this.sfView.valid) {
|
||||||
|
this.service.msgSrv.error('请填写处理结果!')
|
||||||
|
return
|
||||||
|
}
|
||||||
const paramsa = {
|
const paramsa = {
|
||||||
id: this.channelId
|
id: this.channelId
|
||||||
}
|
}
|
||||||
@ -212,6 +220,10 @@ export class OrderManagementComplaintDetailComponent implements OnInit {
|
|||||||
* 审核通过按钮
|
* 审核通过按钮
|
||||||
*/
|
*/
|
||||||
handleOK() {
|
handleOK() {
|
||||||
|
if(!this.sfView.valid) {
|
||||||
|
this.service.msgSrv.error('请填写处理结果!')
|
||||||
|
return
|
||||||
|
}
|
||||||
const paramsa = {
|
const paramsa = {
|
||||||
...this.sfView.value,
|
...this.sfView.value,
|
||||||
handleStatus: 1,
|
handleStatus: 1,
|
||||||
|
|||||||
@ -71,15 +71,13 @@ export class OrderManagementComplaintComponent implements OnInit {
|
|||||||
if(this.selectedMainTabStatus) {
|
if(this.selectedMainTabStatus) {
|
||||||
a.complaintType = this.selectedMainTabStatus
|
a.complaintType = this.selectedMainTabStatus
|
||||||
}
|
}
|
||||||
|
console.log( this.sf?.value);
|
||||||
|
|
||||||
const params: any = Object.assign({}, this.sf?.value || {});
|
const params: any = Object.assign({}, this.sf?.value || {});
|
||||||
delete params._$expand;
|
delete params._$expand;
|
||||||
return {
|
return {
|
||||||
...a,
|
...a,
|
||||||
...params,
|
...params,
|
||||||
complainantTime: {
|
|
||||||
start: this.sf?.value?.complainantTime?.[0] || '',
|
|
||||||
end: this.sf?.value?.complainantTime?.[1] || ''
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
get selectedRows() {
|
get selectedRows() {
|
||||||
@ -110,19 +108,12 @@ export class OrderManagementComplaintComponent implements OnInit {
|
|||||||
widget: 'dict-select',
|
widget: 'dict-select',
|
||||||
params: { dictKey: 'complaint:cause' },
|
params: { dictKey: 'complaint:cause' },
|
||||||
containsAllLabel: true,
|
containsAllLabel: true,
|
||||||
visibleIf: {
|
|
||||||
_$expand: (value: boolean) => value
|
|
||||||
}
|
|
||||||
} as SFSelectWidgetSchema
|
} as SFSelectWidgetSchema
|
||||||
},
|
},
|
||||||
complainantTime: {
|
complainantTime: {
|
||||||
title: '投诉时间',
|
|
||||||
type: 'string',
|
type: 'string',
|
||||||
ui: {
|
title: '投诉时间',
|
||||||
widget: 'date',
|
ui: { widget: 'sl-from-to', type: 'date', format: 'yyyy-MM-dd' } as SFDateWidgetSchema,
|
||||||
mode: 'range',
|
|
||||||
format: 'yyyy-MM-dd',
|
|
||||||
} as SFDateWidgetSchema,
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
@ -255,7 +246,6 @@ export class OrderManagementComplaintComponent implements OnInit {
|
|||||||
*/
|
*/
|
||||||
resetSF(): void {
|
resetSF(): void {
|
||||||
this.sf.reset();
|
this.sf.reset();
|
||||||
this._$expand = false;
|
|
||||||
}
|
}
|
||||||
selectChange(e: number) {
|
selectChange(e: number) {
|
||||||
this.resourceStatus = e;
|
this.resourceStatus = e;
|
||||||
|
|||||||
@ -4,7 +4,7 @@
|
|||||||
* @Author : Shiming
|
* @Author : Shiming
|
||||||
* @Date : 2022-01-12 10:52:50
|
* @Date : 2022-01-12 10:52:50
|
||||||
* @LastEditors : Shiming
|
* @LastEditors : Shiming
|
||||||
* @LastEditTime : 2022-03-23 13:34:31
|
* @LastEditTime : 2022-03-24 09:48:40
|
||||||
* @FilePath : \\tms-obc-web\\src\\app\\routes\\order-management\\components\\compliance-audit\\compliance-audit.component.html
|
* @FilePath : \\tms-obc-web\\src\\app\\routes\\order-management\\components\\compliance-audit\\compliance-audit.component.html
|
||||||
* Copyright (C) 2022 huzhenhong. All rights reserved.
|
* Copyright (C) 2022 huzhenhong. All rights reserved.
|
||||||
-->
|
-->
|
||||||
@ -87,13 +87,14 @@
|
|||||||
<div> {{ item?.payeeName }}/{{ item?.payeePhone }} </div>
|
<div> {{ item?.payeeName }}/{{ item?.payeePhone }} </div>
|
||||||
</ng-template>
|
</ng-template>
|
||||||
<ng-template st-row="billCode" let-item let-index="index">
|
<ng-template st-row="billCode" let-item let-index="index">
|
||||||
<div>{{ item.billCode }}</div>
|
<a *ngIf="item.billType == '1'" [routerLink]="'/order-management/vehicle/vehicle-detail/' + item.id">{{ item.billCode }}</a>
|
||||||
<div>
|
<a *ngIf="item.billType == '2'" [routerLink]="'/order-management/bulk/bulk-detail/' + item.id">{{ item.billCode }}</a>
|
||||||
<span>{{ item?.resourceTypeLabel }}{{ item?.serviceTypeLabel }}</span>
|
|
||||||
</div>
|
|
||||||
<div>
|
<div>
|
||||||
<span>{{ item?.billStatusLabel }}</span>
|
<span>{{ item?.billStatusLabel }}</span>
|
||||||
</div>
|
</div>
|
||||||
|
<div>
|
||||||
|
<span >{{item?.billTypeLabel}}{{item?.serviceTypeLabel}}</span>
|
||||||
|
</div>
|
||||||
</ng-template>
|
</ng-template>
|
||||||
<ng-template st-row="goodsName" let-item let-index="index">
|
<ng-template st-row="goodsName" let-item let-index="index">
|
||||||
<div>{{ item?.goodsName }}</div>
|
<div>{{ item?.goodsName }}</div>
|
||||||
|
|||||||
@ -331,6 +331,7 @@ export class OrderManagementComplianceAuditComponent implements OnInit {
|
|||||||
{ title: '所属项目', index: 'enterpriseProjectName', width: '220px', className: 'text-left' },
|
{ title: '所属项目', index: 'enterpriseProjectName', width: '220px', className: 'text-left' },
|
||||||
{ title: '关联运单号', index: 'wayBillCode', width: '220px', className: 'text-left' },
|
{ title: '关联运单号', index: 'wayBillCode', width: '220px', className: 'text-left' },
|
||||||
{ title: '货源编号', index: 'resourceCode', width: '180px', className: 'text-left' },
|
{ title: '货源编号', index: 'resourceCode', width: '180px', className: 'text-left' },
|
||||||
|
{ title: '服务类型', index: 'serviceTypeLabel', width: '180px', className: 'text-left' },
|
||||||
{ title: '装货地', index: 'loadingAddressArr', width: '180px', className: 'text-left' },
|
{ title: '装货地', index: 'loadingAddressArr', width: '180px', className: 'text-left' },
|
||||||
{
|
{
|
||||||
title: '卸货地',
|
title: '卸货地',
|
||||||
@ -374,13 +375,13 @@ export class OrderManagementComplianceAuditComponent implements OnInit {
|
|||||||
title: '审核人',
|
title: '审核人',
|
||||||
width: '180px',
|
width: '180px',
|
||||||
className: 'text-left',
|
className: 'text-left',
|
||||||
index: 'loadingLadingBillFilePath'
|
index: 'complianceName'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '审核时间',
|
title: '审核时间',
|
||||||
width: '180px',
|
width: '180px',
|
||||||
className: 'text-left',
|
className: 'text-left',
|
||||||
index: 'loadingLadingBillFilePath'
|
index: 'complianceTime'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '状态',
|
title: '状态',
|
||||||
|
|||||||
@ -4,7 +4,7 @@
|
|||||||
* @Author : Shiming
|
* @Author : Shiming
|
||||||
* @Date : 2022-01-12 10:52:50
|
* @Date : 2022-01-12 10:52:50
|
||||||
* @LastEditors : Shiming
|
* @LastEditors : Shiming
|
||||||
* @LastEditTime : 2022-03-23 20:36:40
|
* @LastEditTime : 2022-03-24 09:30:32
|
||||||
* @FilePath : \\tms-obc-web\\src\\app\\routes\\order-management\\components\\receipts-audit\\receipts-audit.component.html
|
* @FilePath : \\tms-obc-web\\src\\app\\routes\\order-management\\components\\receipts-audit\\receipts-audit.component.html
|
||||||
* Copyright (C) 2022 huzhenhong. All rights reserved.
|
* Copyright (C) 2022 huzhenhong. All rights reserved.
|
||||||
-->
|
-->
|
||||||
@ -98,7 +98,9 @@
|
|||||||
<div> {{ item?.payeeName }}/{{ item?.payeePhone }} </div>
|
<div> {{ item?.payeeName }}/{{ item?.payeePhone }} </div>
|
||||||
</ng-template>
|
</ng-template>
|
||||||
<ng-template st-row="billCode" let-item let-index="index">
|
<ng-template st-row="billCode" let-item let-index="index">
|
||||||
<div>{{ item.billCode }}</div>
|
<!-- <div>{{ item.billCode }}</div> -->
|
||||||
|
<a *ngIf="item.resourceType == '1'" [routerLink]="'/order-management/vehicle/vehicle-detail/' + item.id">{{ item.billCode }}</a>
|
||||||
|
<a *ngIf="item.resourceType == '2'" [routerLink]="'/order-management/bulk/bulk-detail/' + item.id">{{ item.billCode }}</a>
|
||||||
<div>
|
<div>
|
||||||
<span>{{item?.billStatusLabel}}</span>
|
<span>{{item?.billStatusLabel}}</span>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -149,6 +149,13 @@ export class OrderManagementReceiptsAuditComponent implements OnInit {
|
|||||||
placeholder: '最多100个单号,空号隔开'
|
placeholder: '最多100个单号,空号隔开'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
wayBillCode: {
|
||||||
|
type: 'string',
|
||||||
|
title: '运单号',
|
||||||
|
ui: {
|
||||||
|
placeholder: '最多100个运单,空号隔开'
|
||||||
|
}
|
||||||
|
},
|
||||||
resourceCode: {
|
resourceCode: {
|
||||||
type: 'string',
|
type: 'string',
|
||||||
title: '货源编号'
|
title: '货源编号'
|
||||||
@ -162,6 +169,9 @@ export class OrderManagementReceiptsAuditComponent implements OnInit {
|
|||||||
searchDebounceTime: 300,
|
searchDebounceTime: 300,
|
||||||
searchLoadingText: '搜索中...',
|
searchLoadingText: '搜索中...',
|
||||||
allowClear: true,
|
allowClear: true,
|
||||||
|
visibleIf: {
|
||||||
|
_$expand: (value: boolean) => value
|
||||||
|
},
|
||||||
onSearch: (q: any) => {
|
onSearch: (q: any) => {
|
||||||
let str =q.replace(/^\s+|\s+$/g,"");
|
let str =q.replace(/^\s+|\s+$/g,"");
|
||||||
if (str) {
|
if (str) {
|
||||||
@ -272,19 +282,38 @@ export class OrderManagementReceiptsAuditComponent implements OnInit {
|
|||||||
}
|
}
|
||||||
} as SFSelectWidgetSchema
|
} as SFSelectWidgetSchema
|
||||||
},
|
},
|
||||||
settlementBasis: {
|
billStatus: {
|
||||||
title: '装卸凭证',
|
title: '运输状态',
|
||||||
type: 'string',
|
type: 'string',
|
||||||
|
default: '',
|
||||||
ui: {
|
ui: {
|
||||||
widget: 'dict-select',
|
widget: 'dict-select',
|
||||||
|
params: { dictKey: 'bill:status' },
|
||||||
containsAllLabel: true,
|
containsAllLabel: true,
|
||||||
params: { dictKey: 'goodresource:settlement:type' },
|
|
||||||
containAllLable: true,
|
|
||||||
visibleIf: {
|
visibleIf: {
|
||||||
_$expand: (value: boolean) => value
|
_$expand: (value: boolean) => value
|
||||||
}
|
}
|
||||||
} as SFSelectWidgetSchema
|
} as SFSelectWidgetSchema
|
||||||
}
|
},
|
||||||
|
loadingDocuments: {
|
||||||
|
type: 'string',
|
||||||
|
title: '装卸货凭证',
|
||||||
|
enum:[
|
||||||
|
{label: '全部',value: ''},
|
||||||
|
{label: '无装卸货凭证',value: '1'},
|
||||||
|
{label: '装卸货凭证齐全',value: '2'},
|
||||||
|
{label: '只有装货凭证',value: '3'},
|
||||||
|
{label: '只有卸货凭证',value: '4'},
|
||||||
|
],
|
||||||
|
ui: {
|
||||||
|
widget: 'select',
|
||||||
|
placeholder: '请选择',
|
||||||
|
allowClear: true,
|
||||||
|
visibleIf: {
|
||||||
|
_$expand: (value: boolean) => value
|
||||||
|
},
|
||||||
|
}
|
||||||
|
},
|
||||||
},
|
},
|
||||||
type: 'object'
|
type: 'object'
|
||||||
};
|
};
|
||||||
|
|||||||
@ -4,7 +4,7 @@
|
|||||||
* @Author : Shiming
|
* @Author : Shiming
|
||||||
* @Date : 2021-12-16 10:19:08
|
* @Date : 2021-12-16 10:19:08
|
||||||
* @LastEditors : Shiming
|
* @LastEditors : Shiming
|
||||||
* @LastEditTime : 2022-03-23 19:12:19
|
* @LastEditTime : 2022-03-24 14:12:14
|
||||||
* @FilePath : \\tms-obc-web\\src\\app\\routes\\order-management\\components\\risk-detail\\risk-detail.component.html
|
* @FilePath : \\tms-obc-web\\src\\app\\routes\\order-management\\components\\risk-detail\\risk-detail.component.html
|
||||||
* Copyright (C) 2022 huzhenhong. All rights reserved.
|
* Copyright (C) 2022 huzhenhong. All rights reserved.
|
||||||
-->
|
-->
|
||||||
@ -21,7 +21,7 @@
|
|||||||
<sv label="申诉状态">
|
<sv label="申诉状态">
|
||||||
<span >{{i?.representationsStatusLabel}}</span>
|
<span >{{i?.representationsStatusLabel}}</span>
|
||||||
</sv>
|
</sv>
|
||||||
<sv label="承运司机">{{i?.driverName ? i?.driverName + '/': ''}} {{i?.driverPhone ?i?.driverPhone + '/': '' }} {{i?.carId}}</sv>
|
<sv label="承运司机">{{i?.driverName ? i?.driverName + '/': ''}} {{i?.driverPhone ?i?.driverPhone + '/': '' }} {{i?.carNo}}</sv>
|
||||||
<sv label="车队长"> {{i?.carCaptainName ? i?.carCaptainName+ '/' : ''}}{{i?.carCaptainPhone}} </sv>
|
<sv label="车队长"> {{i?.carCaptainName ? i?.carCaptainName+ '/' : ''}}{{i?.carCaptainPhone}} </sv>
|
||||||
<sv label="装货时间">{{i?.loadTime}}</sv>
|
<sv label="装货时间">{{i?.loadTime}}</sv>
|
||||||
<sv label="卸货时间">{{i?.unloadTime}}</sv>
|
<sv label="卸货时间">{{i?.unloadTime}}</sv>
|
||||||
|
|||||||
@ -4,7 +4,7 @@
|
|||||||
* @Author : Shiming
|
* @Author : Shiming
|
||||||
* @Date : 2022-01-12 10:52:50
|
* @Date : 2022-01-12 10:52:50
|
||||||
* @LastEditors : Shiming
|
* @LastEditors : Shiming
|
||||||
* @LastEditTime : 2022-03-23 19:45:45
|
* @LastEditTime : 2022-03-24 19:53:19
|
||||||
* @FilePath : \\tms-obc-web\\src\\app\\routes\\order-management\\components\\risk\\risk.component.html
|
* @FilePath : \\tms-obc-web\\src\\app\\routes\\order-management\\components\\risk\\risk.component.html
|
||||||
* Copyright (C) 2022 huzhenhong. All rights reserved.
|
* Copyright (C) 2022 huzhenhong. All rights reserved.
|
||||||
-->
|
-->
|
||||||
@ -65,7 +65,13 @@
|
|||||||
[loading]="false"
|
[loading]="false"
|
||||||
>
|
>
|
||||||
<ng-template st-row="billCode" let-item let-index="index">
|
<ng-template st-row="billCode" let-item let-index="index">
|
||||||
<a [routerLink]="'/order-management/risk-detail/' + item.id">{{ item?.billCode }}</a>
|
<a [routerLink]="'/order-management/risk-detail/' + item.id">{{ item.billCode }}</a>
|
||||||
|
<div>
|
||||||
|
<span>{{ item?.representationsStatusLabel }}</span>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<span >{{item?.billTypeLabel}}{{item?.billTypeLabel === item?.serviceTypeLabel ? '' : item?.serviceTypeLabel}}</span>
|
||||||
|
</div>
|
||||||
</ng-template>
|
</ng-template>
|
||||||
<ng-template st-row="timeer" let-item let-index="index">
|
<ng-template st-row="timeer" let-item let-index="index">
|
||||||
<p>创建时间:{{ item?.createTime }}</p>
|
<p>创建时间:{{ item?.createTime }}</p>
|
||||||
|
|||||||
@ -4,7 +4,7 @@
|
|||||||
* @Author : Shiming
|
* @Author : Shiming
|
||||||
* @Date : 2021-12-30 14:45:39
|
* @Date : 2021-12-30 14:45:39
|
||||||
* @LastEditors : Shiming
|
* @LastEditors : Shiming
|
||||||
* @LastEditTime : 2022-01-18 17:23:11
|
* @LastEditTime : 2022-03-24 10:28:48
|
||||||
* @FilePath : \\tms-obc-web\\src\\app\\routes\\order-management\\modal\\vehicle\\modify-captain\\modify-captain.component.ts
|
* @FilePath : \\tms-obc-web\\src\\app\\routes\\order-management\\modal\\vehicle\\modify-captain\\modify-captain.component.ts
|
||||||
* Copyright (C) 2022 huzhenhong. All rights reserved.
|
* Copyright (C) 2022 huzhenhong. All rights reserved.
|
||||||
*/
|
*/
|
||||||
@ -96,7 +96,7 @@ export class VehicleModifyCaptainComponent implements OnInit {
|
|||||||
console.log(this.bankData);
|
console.log(this.bankData);
|
||||||
const params = {
|
const params = {
|
||||||
billIds: this.data?.ids,
|
billIds: this.data?.ids,
|
||||||
carCaptainId: value.id,
|
carCaptainId: value.appUserId,
|
||||||
bankData: this.bankData
|
bankData: this.bankData
|
||||||
};
|
};
|
||||||
this.service.request(this.service.$api_get_updateCarCaptainBatch, params).subscribe((res: any) => {
|
this.service.request(this.service.$api_get_updateCarCaptainBatch, params).subscribe((res: any) => {
|
||||||
|
|||||||
@ -4,7 +4,7 @@
|
|||||||
* @Author : Shiming
|
* @Author : Shiming
|
||||||
* @Date : 2021-12-15 13:17:42
|
* @Date : 2021-12-15 13:17:42
|
||||||
* @LastEditors : Shiming
|
* @LastEditors : Shiming
|
||||||
* @LastEditTime : 2022-02-24 10:47:39
|
* @LastEditTime : 2022-03-24 19:17:58
|
||||||
* @FilePath : \\tms-obc-web\\src\\app\\routes\\order-management\\modal\\vehicle\\update-freight\\update-freight.component.html
|
* @FilePath : \\tms-obc-web\\src\\app\\routes\\order-management\\modal\\vehicle\\update-freight\\update-freight.component.html
|
||||||
* Copyright (C) 2022 huzhenhong. All rights reserved.
|
* Copyright (C) 2022 huzhenhong. All rights reserved.
|
||||||
-->
|
-->
|
||||||
@ -20,7 +20,7 @@
|
|||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
<label nz-checkbox [(ngModel)]="aggreechecked"></label>
|
<label nz-checkbox [(ngModel)]="aggreechecked"></label>
|
||||||
<span> 确认已阅读并知晓 <a target="_blank" [routerLink]="['/agreement']" [queryParams]="{ type: 11 }">《变更协议》</a></span>
|
<span> 确认已阅读并知晓 <a target="_blank" [routerLink]="['/agreement']" [queryParams]="{ type: 3, data: dataJSON }">《变更协议》</a></span>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
@ -4,7 +4,7 @@
|
|||||||
* @Author : Shiming
|
* @Author : Shiming
|
||||||
* @Date : 2021-12-15 13:17:42
|
* @Date : 2021-12-15 13:17:42
|
||||||
* @LastEditors : Shiming
|
* @LastEditors : Shiming
|
||||||
* @LastEditTime : 2022-02-23 14:25:45
|
* @LastEditTime : 2022-03-24 19:17:10
|
||||||
* @FilePath : \\tms-obc-web\\src\\app\\routes\\order-management\\modal\\vehicle\\update-freight\\update-freight.component.ts
|
* @FilePath : \\tms-obc-web\\src\\app\\routes\\order-management\\modal\\vehicle\\update-freight\\update-freight.component.ts
|
||||||
* Copyright (C) 2022 huzhenhong. All rights reserved.
|
* Copyright (C) 2022 huzhenhong. All rights reserved.
|
||||||
*/
|
*/
|
||||||
@ -30,12 +30,16 @@ export class VehicleUpdateFreightComponent implements OnInit {
|
|||||||
@Input()
|
@Input()
|
||||||
data: any;
|
data: any;
|
||||||
|
|
||||||
|
dataJSON: any;
|
||||||
|
|
||||||
calculateSub!: Subscription;
|
calculateSub!: Subscription;
|
||||||
|
|
||||||
constructor(private modal: NzModalRef, private msgSrv: NzMessageService, public service: OrderManagementService) {}
|
constructor(private modal: NzModalRef, private msgSrv: NzMessageService, public service: OrderManagementService) {}
|
||||||
|
|
||||||
ngOnInit(): void {
|
ngOnInit(): void {
|
||||||
console.log(this.data)
|
console.log(this.data)
|
||||||
|
this.dataJSON = JSON.stringify(this.data)
|
||||||
|
console.log(this.dataJSON)
|
||||||
this.initSF(this.data);
|
this.initSF(this.data);
|
||||||
}
|
}
|
||||||
initSF(data: any) {
|
initSF(data: any) {
|
||||||
|
|||||||
@ -11,13 +11,13 @@
|
|||||||
<b class="text-md ">{{headerTotalInfo?.ltdName}}</b>
|
<b class="text-md ">{{headerTotalInfo?.ltdName}}</b>
|
||||||
</sv>
|
</sv>
|
||||||
<sv label="可用余额">
|
<sv label="可用余额">
|
||||||
{{headerTotalInfo?.allAmount |currency}}
|
<span class="text-error-dark font-weight-bold">{{headerTotalInfo?.allAmount |currency}}</span>
|
||||||
</sv>
|
</sv>
|
||||||
<sv label="收入金额">
|
<sv label="收入金额">
|
||||||
{{headerTotalInfo?.incomeAmount |currency}}
|
<span class="text-error-dark font-weight-bold"> {{headerTotalInfo?.incomeAmount |currency}}</span>
|
||||||
</sv>
|
</sv>
|
||||||
<sv label="支出金额">
|
<sv label="支出金额">
|
||||||
{{headerTotalInfo?.payAmount |currency}}
|
<span class="text-error-dark font-weight-bold">{{headerTotalInfo?.payAmount |currency}}</span>
|
||||||
</sv>
|
</sv>
|
||||||
</sv-container>
|
</sv-container>
|
||||||
<ng-template #labelTpl>
|
<ng-template #labelTpl>
|
||||||
|
|||||||
@ -59,7 +59,7 @@ export class PartnerAccountManagementListComponent implements OnInit {
|
|||||||
*/
|
*/
|
||||||
initST() {
|
initST() {
|
||||||
this.columns = [
|
this.columns = [
|
||||||
{ title: '合伙人名称', index: 'userName', className: 'text-center', width: 250 },
|
{ title: '合伙人名称', index: 'name', className: 'text-center', width: 250 },
|
||||||
{ title: '手机号', index: 'phone', className: 'text-center', width: 200 },
|
{ title: '手机号', index: 'phone', className: 'text-center', width: 200 },
|
||||||
{
|
{
|
||||||
title: '账户总额(元)', index: 'allBalance', className: 'text-right', sort: true, width: 150, type: 'currency',
|
title: '账户总额(元)', index: 'allBalance', className: 'text-right', sort: true, width: 150, type: 'currency',
|
||||||
|
|||||||
@ -8,23 +8,27 @@
|
|||||||
<nz-card>
|
<nz-card>
|
||||||
<sv-container layout="vertical" [noColon]="true" col="5">
|
<sv-container layout="vertical" [noColon]="true" col="5">
|
||||||
<sv [label]="labelTpl">
|
<sv [label]="labelTpl">
|
||||||
<b class="text-md ">{{summaryObj?.company}}</b>
|
<b class="text-md ">{{summaryObj?.taxno}}</b>
|
||||||
</sv>
|
</sv>
|
||||||
<sv label="返佣总额">
|
<sv label="返佣总额">
|
||||||
{{summaryObj?.totalRebate |currency}}
|
<span class="text-error-dark font-weight-bold">{{(summaryObj?.totalRebate?summaryObj?.totalRebate: 0 )|currency :'
|
||||||
|
'}}</span>
|
||||||
</sv>
|
</sv>
|
||||||
<sv label="已入账金额">
|
<sv label="已入账金额">
|
||||||
{{summaryObj?.totalRebate |currency}}
|
<span class="text-error-dark font-weight-bold">{{(summaryObj?.recordedAmount?summaryObj?.recordedAmount:0
|
||||||
|
)|currency:' '}}</span>
|
||||||
</sv>
|
</sv>
|
||||||
<sv label="代缴个税">
|
<sv label="代缴个税">
|
||||||
{{summaryObj?.taxPersonalSum |currency}}
|
<span class="text-error-dark font-weight-bold">{{(summaryObj?.taxPersonalSum?summaryObj?.taxPersonalSum:0
|
||||||
|
)|currency:' '}}</span>
|
||||||
</sv>
|
</sv>
|
||||||
<sv label="待入账金额">
|
<sv label="待入账金额">
|
||||||
{{summaryObj?.waitRecordedAmount |currency}}
|
<span class="text-error-dark font-weight-bold">{{(summaryObj?.waitRecordedAmount?summaryObj?.waitRecordedAmount:0)
|
||||||
|
|currency:' '}}</span>
|
||||||
</sv>
|
</sv>
|
||||||
</sv-container>
|
</sv-container>
|
||||||
<ng-template #labelTpl>
|
<ng-template #labelTpl>
|
||||||
<b class="text-md" style="color: black;">{{summaryObj?.name}}</b>
|
<b class="text-md" style="color: black;">{{summaryObj?.ltdName}}</b>
|
||||||
</ng-template>
|
</ng-template>
|
||||||
</nz-card>
|
</nz-card>
|
||||||
<nz-card>
|
<nz-card>
|
||||||
@ -43,11 +47,11 @@
|
|||||||
</ng-template>
|
</ng-template>
|
||||||
</st>
|
</st>
|
||||||
<div class="total-footer text-md" *ngIf="st?.list?.length !== 0 ">
|
<div class="total-footer text-md" *ngIf="st?.list?.length !== 0 ">
|
||||||
合计 <label class="text-red-dark">{{ summaryObj?.total }}</label> 项,收入 <label
|
合计 <label class="text-red-dark">{{ footerSummary?.total }}</label> 项,收入 <label
|
||||||
class="text-red-dark font-weight-bold">{{
|
class="text-red-dark font-weight-bold">{{
|
||||||
summaryObj?.income | currency
|
footerSummary?.income | currency
|
||||||
}}</label>,支出 <label class="text-red-dark font-weight-bold">{{
|
}}</label>,支出 <label class="text-red-dark font-weight-bold">{{
|
||||||
summaryObj?.spending | currency }}</label>
|
footerSummary?.spending | currency }}</label>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</nz-card>
|
</nz-card>
|
||||||
@ -55,8 +59,8 @@
|
|||||||
<nz-modal [(nzVisible)]="showBillDetail" nzTitle="账户明细" [nzFooter]="null" (nzOnCancel)="handleCancel()" nzWidth="700px">
|
<nz-modal [(nzVisible)]="showBillDetail" nzTitle="账户明细" [nzFooter]="null" (nzOnCancel)="handleCancel()" nzWidth="700px">
|
||||||
<div *nzModalContent>
|
<div *nzModalContent>
|
||||||
<div class="mb-sm">
|
<div class="mb-sm">
|
||||||
<span class="mr-xxl text-md font-weight-bold"><label>网络货运人:</label>{{detailRecord?.ltdName}}</span>
|
<span class="mr-xxl text-sm font-weight-bold"><label>网络货运人:</label>{{detailRecord?.ltdName}}</span>
|
||||||
<span class="text-md font-weight-bold"><label>返佣总额(元):</label>{{detailRecord?.totalRebate |currency: ' '}}</span>
|
<span class="text-sm font-weight-bold"><label>返佣总额(元):</label>{{detailRecord?.totalRebate |currency: ' '}}</span>
|
||||||
</div>
|
</div>
|
||||||
<st #st [data]="billDetailList " [columns]="billDetailColumns" [res]="{ reName: { list: 'data' } }"
|
<st #st [data]="billDetailList " [columns]="billDetailColumns" [res]="{ reName: { list: 'data' } }"
|
||||||
[req]="{ method: 'POST', allInBody: true, params:billDetailReqParams}" [page]="{show:false}">
|
[req]="{ method: 'POST', allInBody: true, params:billDetailReqParams}" [page]="{show:false}">
|
||||||
|
|||||||
@ -19,6 +19,12 @@ export class PartnerAccountManagementRecordedDetailComponent implements OnInit {
|
|||||||
taxno: ''
|
taxno: ''
|
||||||
};
|
};
|
||||||
|
|
||||||
|
footerSummary = {
|
||||||
|
total: 0,
|
||||||
|
income: 0,
|
||||||
|
spending: 0
|
||||||
|
}
|
||||||
|
|
||||||
detailRecord: any = {};
|
detailRecord: any = {};
|
||||||
|
|
||||||
url = `/user`;
|
url = `/user`;
|
||||||
@ -56,8 +62,7 @@ export class PartnerAccountManagementRecordedDetailComponent implements OnInit {
|
|||||||
initSF() {
|
initSF() {
|
||||||
this.schema = {
|
this.schema = {
|
||||||
properties: {
|
properties: {
|
||||||
|
ltdName: {
|
||||||
abnormalCause: {
|
|
||||||
title: '网络货运人',
|
title: '网络货运人',
|
||||||
type: 'string',
|
type: 'string',
|
||||||
ui: {
|
ui: {
|
||||||
@ -78,7 +83,7 @@ export class PartnerAccountManagementRecordedDetailComponent implements OnInit {
|
|||||||
{ title: '网络货运人', index: 'ltdName', className: 'text-center', width: 200 },
|
{ title: '网络货运人', index: 'ltdName', className: 'text-center', width: 200 },
|
||||||
{ title: '银行类型', render: 'bankTypeLabel', className: 'text-center', width: 150 },
|
{ title: '银行类型', render: 'bankTypeLabel', className: 'text-center', width: 150 },
|
||||||
{ title: '虚拟账户', render: 'fictitiousAccount', className: 'text-center', width: 200 },
|
{ title: '虚拟账户', render: 'fictitiousAccount', className: 'text-center', width: 200 },
|
||||||
{ title: '返佣总额(元)', index: 'totalRebate', className: 'text-center', width: 120, type: 'currency' },
|
{ title: '返佣总额(元)', index: 'totalRebate', className: 'text-center', width: 180, type: 'currency' },
|
||||||
{ title: '已入账金额(元)', index: 'recordedAmount', className: 'text-center', width: 180, type: 'currency' },
|
{ title: '已入账金额(元)', index: 'recordedAmount', className: 'text-center', width: 180, type: 'currency' },
|
||||||
{ title: '代缴个税(元)', index: 'taxPersonalSum', className: 'text-center', width: 180, type: 'currency' },
|
{ title: '代缴个税(元)', index: 'taxPersonalSum', className: 'text-center', width: 180, type: 'currency' },
|
||||||
{ title: '待入账金额(元)', index: 'waitRecordedAmount', className: 'text-right', width: 180, type: 'currency' },
|
{ title: '待入账金额(元)', index: 'waitRecordedAmount', className: 'text-right', width: 180, type: 'currency' },
|
||||||
@ -146,7 +151,7 @@ export class PartnerAccountManagementRecordedDetailComponent implements OnInit {
|
|||||||
* @param record 当前行
|
* @param record 当前行
|
||||||
*/
|
*/
|
||||||
viewBookedRecord(record: any) {
|
viewBookedRecord(record: any) {
|
||||||
window.open(location.origin + `#/partner/recorded/record?ltdId=${record?.ltdId}&userId=${record?.userId}&userIdLabel=${record?.banktypeLabel}`);
|
window.open(location.origin + `#/partner/recorded/record?ltdId=${record?.ltdId}`);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -157,6 +162,7 @@ export class PartnerAccountManagementRecordedDetailComponent implements OnInit {
|
|||||||
this.billDetailColumns = [];
|
this.billDetailColumns = [];
|
||||||
this.showBillDetail = true;
|
this.showBillDetail = true;
|
||||||
this.initBillDetailST();
|
this.initBillDetailST();
|
||||||
|
this.detailRecord = record;
|
||||||
this.getBillDetail(record?.ltdId);
|
this.getBillDetail(record?.ltdId);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -170,6 +176,7 @@ export class PartnerAccountManagementRecordedDetailComponent implements OnInit {
|
|||||||
|
|
||||||
handleCancel() {
|
handleCancel() {
|
||||||
this.showBillDetail = false;
|
this.showBillDetail = false;
|
||||||
|
this.detailRecord = {};
|
||||||
|
|
||||||
}
|
}
|
||||||
goBack() {
|
goBack() {
|
||||||
|
|||||||
@ -43,8 +43,6 @@ export class PartnerRecordedRecordComponent implements OnInit {
|
|||||||
|
|
||||||
constructor(public service: RecordedService, private nzModalService: NzModalService,
|
constructor(public service: RecordedService, private nzModalService: NzModalService,
|
||||||
private router: Router, public ar: ActivatedRoute, public shipperSrv: ShipperBaseService) {
|
private router: Router, public ar: ActivatedRoute, public shipperSrv: ShipperBaseService) {
|
||||||
|
|
||||||
this.accountName = this.ar.snapshot.queryParams?.userIdLabel || '';
|
|
||||||
this.ltdId = this.ar.snapshot.queryParams?.ltdId || '';
|
this.ltdId = this.ar.snapshot.queryParams?.ltdId || '';
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,3 +1,13 @@
|
|||||||
|
/*
|
||||||
|
* @Description :
|
||||||
|
* @Version : 1.0
|
||||||
|
* @Author : Shiming
|
||||||
|
* @Date : 2022-03-14 14:17:38
|
||||||
|
* @LastEditors : Shiming
|
||||||
|
* @LastEditTime : 2022-03-24 19:19:17
|
||||||
|
* @FilePath : \\tms-obc-web\\src\\app\\routes\\passport\\components\\order-agreement\\order-agreement.component.ts
|
||||||
|
* Copyright (C) 2022 huzhenhong. All rights reserved.
|
||||||
|
*/
|
||||||
import { Component, OnInit } from '@angular/core';
|
import { Component, OnInit } from '@angular/core';
|
||||||
import { ActivatedRoute, Params } from '@angular/router';
|
import { ActivatedRoute, Params } from '@angular/router';
|
||||||
import { PassportService } from '../../services/passport.service';
|
import { PassportService } from '../../services/passport.service';
|
||||||
@ -10,16 +20,31 @@ import { PassportService } from '../../services/passport.service';
|
|||||||
export class OrderAgreementComponent implements OnInit {
|
export class OrderAgreementComponent implements OnInit {
|
||||||
agreementContent: any;
|
agreementContent: any;
|
||||||
type = 2;
|
type = 2;
|
||||||
|
data : any;
|
||||||
constructor(private ar: ActivatedRoute, private service: PassportService) {
|
constructor(private ar: ActivatedRoute, private service: PassportService) {
|
||||||
ar.queryParams.subscribe((params: Params) => {
|
ar.queryParams.subscribe((params: Params) => {
|
||||||
this.type = params.type || 2;
|
console.log(params);
|
||||||
|
|
||||||
|
this.type = params?.type || 2;
|
||||||
|
this.data = JSON.parse(params?.data) || {};
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
ngOnInit() {
|
ngOnInit() {
|
||||||
this.service.request(this.service.$api_get_agreement, { type: this.type }).subscribe(res => {
|
console.log(this.type);
|
||||||
if (res) {
|
if(this.type == 3) {
|
||||||
this.agreementContent = res;
|
console.log(this.data);
|
||||||
}
|
|
||||||
});
|
this.service.request(this.service.$api_get_getSupplementaryAgreement, { billId: this.data?.billId, billCode: this.data?.billCode }).subscribe(res => {
|
||||||
|
if (res) {
|
||||||
|
this.agreementContent = res;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
this.service.request(this.service.$api_get_agreement, { type: this.type }).subscribe(res => {
|
||||||
|
if (res) {
|
||||||
|
this.agreementContent = res;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -4,7 +4,7 @@
|
|||||||
* @Author : Shiming
|
* @Author : Shiming
|
||||||
* @Date : 2021-12-27 21:08:36
|
* @Date : 2021-12-27 21:08:36
|
||||||
* @LastEditors : Shiming
|
* @LastEditors : Shiming
|
||||||
* @LastEditTime : 2022-01-18 17:24:52
|
* @LastEditTime : 2022-03-24 09:59:50
|
||||||
* @FilePath : \\tms-obc-web\\src\\app\\routes\\passport\\services\\passport.service.ts
|
* @FilePath : \\tms-obc-web\\src\\app\\routes\\passport\\services\\passport.service.ts
|
||||||
* Copyright (C) 2022 huzhenhong. All rights reserved.
|
* Copyright (C) 2022 huzhenhong. All rights reserved.
|
||||||
*/
|
*/
|
||||||
@ -17,6 +17,8 @@ import { BaseService } from 'src/app/shared/services/core/base.service';
|
|||||||
export class PassportService extends BaseService {
|
export class PassportService extends BaseService {
|
||||||
// 登录协议,服务订购协议
|
// 登录协议,服务订购协议
|
||||||
public $api_get_agreement = `/api/mdc/pbc/agreementInfo/getAgreementInfoByType?_allow_anonymous=true`;
|
public $api_get_agreement = `/api/mdc/pbc/agreementInfo/getAgreementInfoByType?_allow_anonymous=true`;
|
||||||
|
// 查看补充协议
|
||||||
|
public $api_get_getSupplementaryAgreement = `/api/sdc/billOperate/getSupplementaryAgreement?_allow_anonymous=true`;
|
||||||
// 未登录账号发送验证码
|
// 未登录账号发送验证码
|
||||||
public $getAccountSMVerificationCode = `/api/mdc/cuc/userBasicInfo/forgetPassword/getAccountSMVerificationCode?_allow_anonymous=true`;
|
public $getAccountSMVerificationCode = `/api/mdc/cuc/userBasicInfo/forgetPassword/getAccountSMVerificationCode?_allow_anonymous=true`;
|
||||||
constructor(public injector: Injector) {
|
constructor(public injector: Injector) {
|
||||||
|
|||||||
@ -2,55 +2,61 @@
|
|||||||
* @Description :
|
* @Description :
|
||||||
* @Version : 1.0
|
* @Version : 1.0
|
||||||
* @Author : Shiming
|
* @Author : Shiming
|
||||||
* @Date : 2021-12-21 10:58:48
|
* @Date : 2022-03-14 14:17:38
|
||||||
* @LastEditors : Shiming
|
* @LastEditors : Shiming
|
||||||
* @LastEditTime : 2022-01-18 17:26:52
|
* @LastEditTime : 2022-03-24 19:31:03
|
||||||
* @FilePath : \\tms-obc-web\\src\\app\\routes\\supply-management\\components\\add-driver\\add-driver.component.html
|
* @FilePath : \\tms-obc-web\\src\\app\\routes\\supply-management\\components\\add-driver\\add-driver.component.html
|
||||||
* Copyright (C) 2022 huzhenhong. All rights reserved.
|
* Copyright (C) 2022 huzhenhong. All rights reserved.
|
||||||
-->
|
-->
|
||||||
|
|
||||||
<div class="modal-header">
|
<div class="modal-header">
|
||||||
<div class="modal-title">添加司机</div>
|
<div class="modal-title">添加司机</div>
|
||||||
</div>
|
</div>
|
||||||
|
<!-- <nz-spin *ngIf="!i" class="modal-spin"></nz-spin> -->
|
||||||
<div class="sfBox">
|
<div class="sfBox">
|
||||||
<sf #sf [compact]="true" [ui]="ui" [schema]="schema" [button]="'none'" *ngIf="schema">
|
<sf #sf [compact]="true" [ui]="ui" [schema]="schema" [button]="'none'" *ngIf="schema">
|
||||||
<ng-template sf-template="tipsA" let-me let-ui="ui" let-schema="schema">
|
<ng-template sf-template="tipsA" let-me let-ui="ui" let-schema="schema">
|
||||||
<div class="pr">
|
<div class="pr">
|
||||||
<dl class="tips">
|
<dl class="tips">
|
||||||
<dt>正面照</dt>
|
<dt>正面照</dt>
|
||||||
<dd>示例</dd>
|
<dd>示例</dd>
|
||||||
</dl>
|
</dl>
|
||||||
<div class="pa"><img height="104" src="./assets/images/usercenter/certificate-demo-front.png" /></div>
|
<div class="pa"><img height="104" src="./assets/images/usercenter/certificate-demo-front.png" /></div>
|
||||||
</div>
|
</div>
|
||||||
</ng-template>
|
</ng-template>
|
||||||
<ng-template sf-template="tipsB" let-me let-ui="ui" let-schema="schema">
|
<ng-template sf-template="tipsB" let-me let-ui="ui" let-schema="schema">
|
||||||
<div class="pr">
|
<div class="pr">
|
||||||
<dl class="tips">
|
<dl class="tips">
|
||||||
<dt>背面照</dt>
|
<dt>背面照</dt>
|
||||||
<dd>示例</dd>
|
<dd>示例</dd>
|
||||||
</dl>
|
</dl>
|
||||||
<div class="pa"><img height="104" src="./assets/images/usercenter/certificate-demo-back.png" /></div>
|
<div class="pa"><img height="104" src="./assets/images/usercenter/certificate-demo-back.png" /></div>
|
||||||
</div>
|
</div>
|
||||||
</ng-template>
|
</ng-template>
|
||||||
|
</sf>
|
||||||
|
<sf #sf1 [compact]="true" [ui]="ui2" [schema]="schema1" [button]="'none'" *ngIf="schema1">
|
||||||
|
<ng-template sf-template="roadImg" let-me let-ui="ui" let-schema="schema">
|
||||||
|
<img height="104" src="/assets/images/drivercard.png" class="borderImg" />
|
||||||
|
</ng-template>
|
||||||
|
</sf>
|
||||||
|
<sf #sf2 [compact]="true" [ui]="ui3" [schema]="schema2" [button]="'none'" *ngIf="schema2">
|
||||||
|
<ng-template sf-template="agreeImg" let-me let-ui="ui" let-schema="schema">
|
||||||
|
<img height="104" src="/assets/images/jopcard.png" class="borderImg" />
|
||||||
|
</ng-template>
|
||||||
</sf>
|
</sf>
|
||||||
<sf #sf1 [compact]="true" [ui]="ui" [schema]="schema1" [button]="'none'" *ngIf="schema1"> </sf>
|
|
||||||
<sf #sf2 [compact]="true" [ui]="ui" [schema]="schema2" [button]="'none'" *ngIf="schema2"> </sf>
|
|
||||||
<img class="drivercard" height="104" src="/assets/images/drivercard.png" />
|
|
||||||
<img class="jopcard" height="104" src="/assets/images/jopcard.png" />
|
|
||||||
<!-- <div class="example" (click)="showExample()">
|
<!-- <div class="example" (click)="showExample()">
|
||||||
查看示例
|
查看示例
|
||||||
<div class="popBox" *ngIf="showCardFlag">
|
<div class="popBox" *ngIf="showCardFlag">
|
||||||
<img src="https://ng.ant.design/assets/img/logo.svg" alt="">
|
<img src="https://ng.ant.design/assets/img/logo.svg" alt="">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="example positionSet" (click)="showJopExample()">
|
<div class="example positionSet" (click)="showJopExample()">
|
||||||
查看示例
|
查看示例
|
||||||
<div class="popBox" *ngIf="showJopFlag">
|
<div class="popBox" *ngIf="showJopFlag">
|
||||||
<img src="https://ng.ant.design/assets/img/logo.svg" alt="">
|
<img src="https://ng.ant.design/assets/img/logo.svg" alt="">
|
||||||
</div>
|
</div>
|
||||||
</div> -->
|
</div> -->
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-footer">
|
<div class="modal-footer">
|
||||||
<button nz-button type="button" (click)="close()">关闭</button>
|
<button nz-button type="button" (click)="close()">关闭</button>
|
||||||
<button nz-button type="button" nzType="primary" (click)="submitForm()">确定</button>
|
<button nz-button type="button" nzType="primary" (click)="submitForm()" [disabled]="!(sf?.valid && sf1?.valid && sf2?.valid)" [nzLoading]="service.http.loading">确定</button>
|
||||||
</div>
|
</div>
|
||||||
@ -1,25 +1,57 @@
|
|||||||
|
.sfBox{
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
.pr {
|
.pr {
|
||||||
position: relative;
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
.pa {
|
||||||
|
position: absolute;
|
||||||
|
top: 35px;
|
||||||
|
left: 150px;
|
||||||
|
img{border: solid 1px #ebf0fb;}
|
||||||
|
}
|
||||||
|
|
||||||
|
.tips {
|
||||||
|
display: flex;
|
||||||
|
margin-bottom: 0;
|
||||||
|
color: #333;
|
||||||
|
|
||||||
|
dt {
|
||||||
|
width: 150px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.pa {
|
dd {
|
||||||
position: absolute;
|
width: 190px;
|
||||||
top: 35px;
|
|
||||||
left: 150px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.tips {
|
|
||||||
display: flex;
|
|
||||||
margin-bottom: 0;
|
margin-bottom: 0;
|
||||||
color: #333;
|
text-align: center;
|
||||||
|
}
|
||||||
dt {
|
}
|
||||||
width: 150px;
|
.drivercard{
|
||||||
|
position: absolute;
|
||||||
|
top: 620px;
|
||||||
|
left: 330px;
|
||||||
|
border: solid 1px #ebf0fb;
|
||||||
|
}
|
||||||
|
.jopcard{
|
||||||
|
position: absolute;
|
||||||
|
top: 1034px;
|
||||||
|
left: 330px;
|
||||||
|
border: solid 1px #ebf0fb;
|
||||||
|
}
|
||||||
|
:host{
|
||||||
|
::ng-deep {
|
||||||
|
.ant-input-borderless{
|
||||||
|
padding: 0;
|
||||||
|
padding-top: 4px;
|
||||||
|
color: black;
|
||||||
|
resize:none;
|
||||||
}
|
}
|
||||||
|
.setCustom .ant-form-item-control{
|
||||||
dd {
|
margin-left: -100px !important
|
||||||
width: 190px;
|
}
|
||||||
margin-bottom: 0;
|
.borderImg{
|
||||||
text-align: center;
|
border: solid 1px #ebf0fb;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
@ -4,11 +4,12 @@ import { cacheConf } from '@conf/cache.conf';
|
|||||||
import { SFComponent, SFUISchema, SFSchema, SFUploadWidgetSchema, SFDateWidgetSchema } from '@delon/form';
|
import { SFComponent, SFUISchema, SFSchema, SFUploadWidgetSchema, SFDateWidgetSchema } from '@delon/form';
|
||||||
import { _HttpClient } from '@delon/theme';
|
import { _HttpClient } from '@delon/theme';
|
||||||
import { EACacheService, EAEnvironmentService } from '@shared';
|
import { EACacheService, EAEnvironmentService } from '@shared';
|
||||||
|
import { AnyRecord } from 'dns';
|
||||||
import { NzModalRef } from 'ng-zorro-antd/modal';
|
import { NzModalRef } from 'ng-zorro-antd/modal';
|
||||||
import { Observable, Observer } from 'rxjs';
|
import { NzUploadFile } from 'ng-zorro-antd/upload';
|
||||||
|
import { Observable, Observer, of } from 'rxjs';
|
||||||
import { map } from 'rxjs/operators';
|
import { map } from 'rxjs/operators';
|
||||||
import { SupplyManagementService } from '../../services/supply-management.service';
|
import { SupplyManagementService } from '../../services/supply-management.service';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'app-car-add-driver',
|
selector: 'app-car-add-driver',
|
||||||
templateUrl: './add-driver.component.html',
|
templateUrl: './add-driver.component.html',
|
||||||
@ -21,6 +22,8 @@ export class CarAddDriverComponent implements OnInit {
|
|||||||
record: any = {};
|
record: any = {};
|
||||||
i: any;
|
i: any;
|
||||||
ui: SFUISchema = {};
|
ui: SFUISchema = {};
|
||||||
|
ui2: SFUISchema = {};
|
||||||
|
ui3: SFUISchema = {};
|
||||||
schema: SFSchema = {};
|
schema: SFSchema = {};
|
||||||
schema1: SFSchema = {};
|
schema1: SFSchema = {};
|
||||||
schema2: SFSchema = {};
|
schema2: SFSchema = {};
|
||||||
@ -32,17 +35,18 @@ export class CarAddDriverComponent implements OnInit {
|
|||||||
userPracticeSeniorityDTO: {}
|
userPracticeSeniorityDTO: {}
|
||||||
};
|
};
|
||||||
companyData: any = {};
|
companyData: any = {};
|
||||||
mobile = '';
|
mobile = ''
|
||||||
|
checked = false
|
||||||
constructor(
|
constructor(
|
||||||
private modal: NzModalRef,
|
private modal: NzModalRef,
|
||||||
public service: SupplyManagementService,
|
public service: SupplyManagementService,
|
||||||
private envSrv: EAEnvironmentService,
|
private envSrv: EAEnvironmentService,
|
||||||
private eaCacheSrv: EACacheService
|
private eaCacheSrv: EACacheService,
|
||||||
) {}
|
) { }
|
||||||
|
|
||||||
ngOnInit(): void {
|
ngOnInit(): void {
|
||||||
this.companyData = this.eaCacheSrv.get(cacheConf.env);
|
this.companyData = this.eaCacheSrv.get(cacheConf.env)
|
||||||
this.initSF();
|
this.initSF()
|
||||||
}
|
}
|
||||||
initSF() {
|
initSF() {
|
||||||
this.schema = {
|
this.schema = {
|
||||||
@ -51,36 +55,37 @@ export class CarAddDriverComponent implements OnInit {
|
|||||||
title: '司机信息(必填)',
|
title: '司机信息(必填)',
|
||||||
type: 'string',
|
type: 'string',
|
||||||
ui: {
|
ui: {
|
||||||
widget: 'text'
|
widget: 'text',
|
||||||
},
|
},
|
||||||
default: '照片上传后会自动识别文字并填充下列内容栏'
|
default: '照片上传后会自动识别文字并填充下列内容栏'
|
||||||
},
|
},
|
||||||
mobile: {
|
mobile: {
|
||||||
title: '手机号',
|
title: '手机号',
|
||||||
type: 'string',
|
type: 'string',
|
||||||
format: 'email',
|
|
||||||
maxLength: 11,
|
maxLength: 11,
|
||||||
ui: {
|
ui: {
|
||||||
widget: 'text'
|
widget: '',
|
||||||
},
|
},
|
||||||
default: this.mobile
|
default: this.mobile
|
||||||
},
|
},
|
||||||
showName: {
|
showName: {
|
||||||
title: '身份证照片',
|
title: '身份证照片',
|
||||||
type: 'string',
|
type: 'string',
|
||||||
|
readOnly: true,
|
||||||
ui: {
|
ui: {
|
||||||
widget: 'text',
|
widget: 'textarea',
|
||||||
showRequired: true
|
borderless:true,
|
||||||
|
showRequired: true,
|
||||||
},
|
},
|
||||||
default: '请上传身份证原件的高清照片,若上传复印件,则需加盖公司印章及法人签字;上传后系统会自动识别并填写'
|
default: '请上传身份证原件的高清照片,若上传复印件,则需加盖公司印章及法人签字;上传后系统会自动识别并填写',
|
||||||
},
|
},
|
||||||
tipsA: {
|
tipsA: {
|
||||||
title: '',
|
title: '',
|
||||||
type: 'string',
|
type: 'string',
|
||||||
ui: {
|
ui: {
|
||||||
widget: 'custom',
|
widget: 'custom',
|
||||||
offsetControl: 6
|
offsetControl: 6,
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
certificatePhotoFrontWatermark: {
|
certificatePhotoFrontWatermark: {
|
||||||
type: 'string',
|
type: 'string',
|
||||||
@ -88,7 +93,7 @@ export class CarAddDriverComponent implements OnInit {
|
|||||||
ui: {
|
ui: {
|
||||||
offsetControl: 6,
|
offsetControl: 6,
|
||||||
action: apiConf.fileUpload,
|
action: apiConf.fileUpload,
|
||||||
fileType: 'image/png,image/jpeg,image/jpg,image/gif',
|
accept: 'image/png,image/jpeg,image/jpg,image/gif',
|
||||||
limit: 1,
|
limit: 1,
|
||||||
limitFileCount: 1,
|
limitFileCount: 1,
|
||||||
resReName: 'data.fullFileWatermarkPath',
|
resReName: 'data.fullFileWatermarkPath',
|
||||||
@ -96,18 +101,20 @@ export class CarAddDriverComponent implements OnInit {
|
|||||||
widget: 'upload',
|
widget: 'upload',
|
||||||
descriptionI18n: '图片支持jpg、jpeg、png、gif格式,大小不超过2M',
|
descriptionI18n: '图片支持jpg、jpeg、png、gif格式,大小不超过2M',
|
||||||
data: {
|
data: {
|
||||||
appId: this.envSrv.env.appId
|
appId: this.envSrv.env.appId,
|
||||||
},
|
},
|
||||||
name: 'multipartFile',
|
name: 'multipartFile',
|
||||||
multiple: false,
|
multiple: false,
|
||||||
listType: 'picture-card',
|
listType: 'picture-card',
|
||||||
change: args => {
|
change: (args: any) => {
|
||||||
if (args.type === 'success') {
|
if (args.type === 'success') {
|
||||||
this.detailData.certificatePhotoFront = args.file.response.data.fullFilePath;
|
this.detailData.certificatePhotoFront = args.file.response.data.fullFilePath
|
||||||
this.checkIdCard(args.file.response.data.fullFilePath, 'front', 0);
|
this.checkIdCard(args.file.response.data.fullFilePath, 'front', 0);
|
||||||
|
} else {
|
||||||
|
this.detailData.certificatePhotoFront = ''
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
beforeUpload: (file: any, _fileList) => {
|
beforeUpload: (file: any, _fileList: any) => {
|
||||||
return new Observable((observer: Observer<boolean>) => {
|
return new Observable((observer: Observer<boolean>) => {
|
||||||
const isLt2M = file.size / 1024 / 1024 < 2;
|
const isLt2M = file.size / 1024 / 1024 < 2;
|
||||||
if (!isLt2M) {
|
if (!isLt2M) {
|
||||||
@ -118,16 +125,17 @@ export class CarAddDriverComponent implements OnInit {
|
|||||||
observer.next(isLt2M);
|
observer.next(isLt2M);
|
||||||
observer.complete();
|
observer.complete();
|
||||||
});
|
});
|
||||||
}
|
},
|
||||||
} as SFUploadWidgetSchema
|
previewFile: (file: NzUploadFile) => of(file.url),
|
||||||
|
},
|
||||||
},
|
},
|
||||||
tipsB: {
|
tipsB: {
|
||||||
title: '',
|
title: '',
|
||||||
type: 'string',
|
type: 'string',
|
||||||
ui: {
|
ui: {
|
||||||
widget: 'custom',
|
widget: 'custom',
|
||||||
offsetControl: 6
|
offsetControl: 6,
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
certificatePhotoBackWatermark: {
|
certificatePhotoBackWatermark: {
|
||||||
type: 'string',
|
type: 'string',
|
||||||
@ -135,7 +143,7 @@ export class CarAddDriverComponent implements OnInit {
|
|||||||
ui: {
|
ui: {
|
||||||
offsetControl: 6,
|
offsetControl: 6,
|
||||||
action: apiConf.fileUpload,
|
action: apiConf.fileUpload,
|
||||||
fileType: 'image/png,image/jpeg,image/jpg,image/gif',
|
accept: 'image/png,image/jpeg,image/jpg,image/gif',
|
||||||
limit: 1,
|
limit: 1,
|
||||||
limitFileCount: 1,
|
limitFileCount: 1,
|
||||||
resReName: 'data.fullFileWatermarkPath',
|
resReName: 'data.fullFileWatermarkPath',
|
||||||
@ -143,18 +151,20 @@ export class CarAddDriverComponent implements OnInit {
|
|||||||
widget: 'upload',
|
widget: 'upload',
|
||||||
descriptionI18n: '图片支持jpg、jpeg、png、gif格式,大小不超过2M',
|
descriptionI18n: '图片支持jpg、jpeg、png、gif格式,大小不超过2M',
|
||||||
data: {
|
data: {
|
||||||
appId: this.envSrv.env.appId
|
appId: this.envSrv.env.appId,
|
||||||
},
|
},
|
||||||
name: 'multipartFile',
|
name: 'multipartFile',
|
||||||
multiple: false,
|
multiple: false,
|
||||||
listType: 'picture-card',
|
listType: 'picture-card',
|
||||||
change: args => {
|
change: (args: any) => {
|
||||||
if (args.type === 'success') {
|
if (args.type === 'success') {
|
||||||
this.detailData.certificatePhotoBack = args.file.response.data.fullFilePath;
|
this.detailData.certificatePhotoBack = args.file.response.data.fullFilePath
|
||||||
this.checkIdCard(args.file.response.data.fullFilePath, 'back', 0);
|
this.checkIdCard(args.file.response.data.fullFilePath, 'back', 0);
|
||||||
|
} else {
|
||||||
|
this.detailData.certificatePhotoBack = ''
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
beforeUpload: (file: any, _fileList) => {
|
beforeUpload: (file: any, _fileList: any) => {
|
||||||
return new Observable((observer: Observer<boolean>) => {
|
return new Observable((observer: Observer<boolean>) => {
|
||||||
const isLt2M = file.size / 1024 / 1024 < 2;
|
const isLt2M = file.size / 1024 / 1024 < 2;
|
||||||
if (!isLt2M) {
|
if (!isLt2M) {
|
||||||
@ -165,8 +175,8 @@ export class CarAddDriverComponent implements OnInit {
|
|||||||
observer.next(isLt2M);
|
observer.next(isLt2M);
|
||||||
observer.complete();
|
observer.complete();
|
||||||
});
|
});
|
||||||
}
|
},
|
||||||
} as SFUploadWidgetSchema
|
previewFile: (file: NzUploadFile) => of(file.url),}
|
||||||
},
|
},
|
||||||
name: {
|
name: {
|
||||||
title: '姓名',
|
title: '姓名',
|
||||||
@ -174,8 +184,8 @@ export class CarAddDriverComponent implements OnInit {
|
|||||||
maxLength: 32,
|
maxLength: 32,
|
||||||
ui: {
|
ui: {
|
||||||
widget: '',
|
widget: '',
|
||||||
placeholder: '请输入姓名'
|
placeholder: '请输入姓名',
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
certificateNumber: {
|
certificateNumber: {
|
||||||
title: '身份证号',
|
title: '身份证号',
|
||||||
@ -187,12 +197,17 @@ export class CarAddDriverComponent implements OnInit {
|
|||||||
widget: '',
|
widget: '',
|
||||||
placeholder: '请输入法定代表人证件号',
|
placeholder: '请输入法定代表人证件号',
|
||||||
errors: {
|
errors: {
|
||||||
required: '请输入18位身份证号码'
|
required: '请输入18位身份证号码',
|
||||||
}
|
},
|
||||||
}
|
},
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
required: ['certificatePhotoFrontWatermark', 'certificatePhotoBackWatermark', 'name', 'certificateNumber']
|
required: [
|
||||||
|
'certificatePhotoFrontWatermark',
|
||||||
|
'certificatePhotoBackWatermark',
|
||||||
|
'name',
|
||||||
|
'certificateNumber'
|
||||||
|
],
|
||||||
};
|
};
|
||||||
this.schema1 = {
|
this.schema1 = {
|
||||||
properties: {
|
properties: {
|
||||||
@ -200,7 +215,7 @@ export class CarAddDriverComponent implements OnInit {
|
|||||||
title: '驾驶证信息(必填)',
|
title: '驾驶证信息(必填)',
|
||||||
type: 'string',
|
type: 'string',
|
||||||
ui: {
|
ui: {
|
||||||
widget: 'text'
|
widget: 'text',
|
||||||
},
|
},
|
||||||
default: '照片上传后会自动识别文字并填充下列内容栏'
|
default: '照片上传后会自动识别文字并填充下列内容栏'
|
||||||
},
|
},
|
||||||
@ -209,7 +224,7 @@ export class CarAddDriverComponent implements OnInit {
|
|||||||
title: '驾驶证照片',
|
title: '驾驶证照片',
|
||||||
ui: {
|
ui: {
|
||||||
action: apiConf.fileUpload,
|
action: apiConf.fileUpload,
|
||||||
fileType: 'image/png,image/jpeg,image/jpg,image/gif',
|
accept: 'image/png,image/jpeg,image/jpg,image/gif',
|
||||||
limit: 1,
|
limit: 1,
|
||||||
limitFileCount: 1,
|
limitFileCount: 1,
|
||||||
resReName: 'data.fullFileWatermarkPath',
|
resReName: 'data.fullFileWatermarkPath',
|
||||||
@ -217,169 +232,80 @@ export class CarAddDriverComponent implements OnInit {
|
|||||||
widget: 'upload',
|
widget: 'upload',
|
||||||
descriptionI18n: '请上传驾驶证照片,支持JPG、PNG格式,文件小于5M。照片信息缺失、拼凑、过度PS、模糊不清,都不会通过审核。',
|
descriptionI18n: '请上传驾驶证照片,支持JPG、PNG格式,文件小于5M。照片信息缺失、拼凑、过度PS、模糊不清,都不会通过审核。',
|
||||||
data: {
|
data: {
|
||||||
appId: this.envSrv.env.appId
|
appId: this.envSrv.env.appId,
|
||||||
},
|
},
|
||||||
name: 'multipartFile',
|
name: 'multipartFile',
|
||||||
multiple: false,
|
multiple: false,
|
||||||
listType: 'picture-card',
|
listType: 'picture-card',
|
||||||
change: args => {
|
change: (args: any) => {
|
||||||
if (args.type === 'success') {
|
if (args.type === 'success') {
|
||||||
this.detailData.userDriverLicenseDTO.certificatePhoto = args.file.response.data.fullFilePath;
|
this.detailData.userDriverLicenseDTO.certificatePhoto = args.file.response.data.fullFilePath
|
||||||
this.checkDriverCard(args.file.response.data.fullFilePath, 'front', 0);
|
this.checkDriverCard(args.file.response.data.fullFilePath, 'front', 0);
|
||||||
|
} else {
|
||||||
|
this.detailData.userDriverLicenseDTO.certificatePhoto = ''
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
beforeUpload: (file: any, _fileList) => {
|
beforeUpload: (file: any, _fileList: any) => {
|
||||||
return new Observable((observer: Observer<boolean>) => {
|
return new Observable((observer: Observer<boolean>) => {
|
||||||
const isLt4M = file.size / 1024 / 1024 < 4;
|
const isLt4M = file.size / 1024 / 1024 < 5;
|
||||||
if (!isLt4M) {
|
if (!isLt4M) {
|
||||||
this.service.msgSrv.warning('图片大小超过4M!');
|
this.service.msgSrv.warning('图片大小超过5M!');
|
||||||
observer.complete();
|
observer.complete();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
observer.next(isLt4M);
|
observer.next(isLt4M);
|
||||||
observer.complete();
|
observer.complete();
|
||||||
});
|
});
|
||||||
}
|
},
|
||||||
} as SFUploadWidgetSchema
|
previewFile: (file: NzUploadFile) => of(file.url),}
|
||||||
|
},
|
||||||
|
roadImg: {
|
||||||
|
title: '',
|
||||||
|
type: 'boolean',
|
||||||
|
// enum: [{ label: '长期', value: true }],
|
||||||
|
ui: {
|
||||||
|
widget: 'custom',
|
||||||
|
}
|
||||||
},
|
},
|
||||||
licenseNo: {
|
licenseNo: {
|
||||||
title: '驾驶证号',
|
title: '驾驶证号',
|
||||||
type: 'string',
|
type: 'string',
|
||||||
ui: {
|
ui: {
|
||||||
// widget: 'text',
|
// widget: 'text',
|
||||||
placeholder: '请输入'
|
placeholder: '请输入',
|
||||||
}
|
},
|
||||||
// default: this.ar.snapshot.queryParams.licenseNo
|
// default: this.ar.snapshot.queryParams.licenseNo
|
||||||
},
|
},
|
||||||
driverModel: {
|
driverModel: {
|
||||||
title: '准驾车型',
|
title: '准驾车型',
|
||||||
type: 'string',
|
type: 'string',
|
||||||
enum: [
|
|
||||||
{ label: 'A1', value: 0 },
|
|
||||||
{ label: 'B1', value: 1 }
|
|
||||||
],
|
|
||||||
ui: {
|
|
||||||
// widget: this.detailData.commitFlag !== 0 ? 'text' : '',
|
|
||||||
placeholder: '请输入'
|
|
||||||
}
|
|
||||||
},
|
|
||||||
validStartTime: {
|
|
||||||
title: '法人证件有效开始日期',
|
|
||||||
type: 'string',
|
|
||||||
ui: {
|
|
||||||
widget: 'date',
|
|
||||||
format: 'yyyy-MM-dd',
|
|
||||||
placeholder: '请选择',
|
|
||||||
errors: {
|
|
||||||
required: '请选择起始日期'
|
|
||||||
},
|
|
||||||
change: i => {}
|
|
||||||
} as SFDateWidgetSchema
|
|
||||||
},
|
|
||||||
validEndTime: {
|
|
||||||
title: '法人证件有效开始日期',
|
|
||||||
type: 'string',
|
|
||||||
ui: {
|
|
||||||
widget: 'date',
|
|
||||||
format: 'yyyy-MM-dd',
|
|
||||||
placeholder: '请选择',
|
|
||||||
errors: {
|
|
||||||
required: '请选择起始日期'
|
|
||||||
},
|
|
||||||
change: i => {}
|
|
||||||
} as SFDateWidgetSchema
|
|
||||||
},
|
|
||||||
signingOrganization: {
|
|
||||||
title: '签发机关',
|
|
||||||
type: 'string',
|
|
||||||
maxLength: 30,
|
|
||||||
ui: {
|
|
||||||
// widget: this.detailData.commitFlag !== 0 ? 'text' : '',
|
|
||||||
placeholder: '请输入'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
required: ['certificatePhotoWatermark', 'licenseNo', 'driverModel', 'validStartTime', 'validEndTime']
|
|
||||||
};
|
|
||||||
this.schema2 = {
|
|
||||||
properties: {
|
|
||||||
titleC: {
|
|
||||||
title: '从业资格证(选填)',
|
|
||||||
type: 'string',
|
|
||||||
ui: {
|
|
||||||
widget: 'text'
|
|
||||||
},
|
|
||||||
default: '照片上传后会自动识别文字并填充下列内容栏'
|
|
||||||
},
|
|
||||||
certificatePhotoWatermark: {
|
|
||||||
type: 'string',
|
|
||||||
title: '',
|
|
||||||
ui: {
|
|
||||||
offsetControl: 6,
|
|
||||||
action: apiConf.fileUpload,
|
|
||||||
fileType: 'image/png,image/jpeg,image/jpg,image/gif',
|
|
||||||
limit: 1,
|
|
||||||
limitFileCount: 1,
|
|
||||||
resReName: 'data.fullFileWatermarkPath',
|
|
||||||
urlReName: 'data.fullFileWatermarkPath',
|
|
||||||
widget: 'upload',
|
|
||||||
descriptionI18n: '图片支持jpg、jpeg、png、gif格式,大小不超过5M',
|
|
||||||
data: {
|
|
||||||
appId: this.envSrv.env.appId
|
|
||||||
},
|
|
||||||
name: 'multipartFile',
|
|
||||||
multiple: false,
|
|
||||||
listType: 'picture-card',
|
|
||||||
change: args => {
|
|
||||||
if (args.type === 'success') {
|
|
||||||
this.detailData.userPracticeSeniorityDTO.certificatePhoto = args.file.response.data.fullFilePath;
|
|
||||||
//this.checkIdCard(args.file.response.data.fullFile, 0, 0);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
beforeUpload: (file: any, _fileList) => {
|
|
||||||
return new Observable((observer: Observer<boolean>) => {
|
|
||||||
const isLt2M = file.size / 1024 / 1024 < 2;
|
|
||||||
if (!isLt2M) {
|
|
||||||
this.service.msgSrv.warning('图片大小超过2M!');
|
|
||||||
observer.complete();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
observer.next(isLt2M);
|
|
||||||
observer.complete();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
} as SFUploadWidgetSchema
|
|
||||||
},
|
|
||||||
licenseNo: {
|
|
||||||
title: '从业资格证号',
|
|
||||||
type: 'string',
|
|
||||||
maxLength: 30,
|
|
||||||
ui: {
|
|
||||||
// widget: this.detailData.commitFlag !== 0 ? 'text' : '',
|
|
||||||
placeholder: '请输入'
|
|
||||||
}
|
|
||||||
},
|
|
||||||
regionCode: {
|
|
||||||
title: '签发省份',
|
|
||||||
type: 'string',
|
|
||||||
ui: {
|
ui: {
|
||||||
widget: 'select',
|
widget: 'select',
|
||||||
placeholder: '请选择',
|
mode: 'multiple',
|
||||||
asyncData: () => this.getProvinceData()
|
containsAllLabel: false,
|
||||||
} as SFDateWidgetSchema
|
placeholder: '请选择准驾车型',
|
||||||
|
asyncData: () =>
|
||||||
|
this.service.request(this.service.$api_getDictValue, { dictKey: 'driverModel' }).pipe(
|
||||||
|
map((data: any) => {
|
||||||
|
return data.map((m: any) => {
|
||||||
|
return { label: m.label, value: m.label };
|
||||||
|
});
|
||||||
|
}),
|
||||||
|
),
|
||||||
|
},
|
||||||
},
|
},
|
||||||
validStartTime: {
|
validStartTime: {
|
||||||
title: '发证日期',
|
title: '有效期起',
|
||||||
type: 'string',
|
type: 'string',
|
||||||
ui: {
|
ui: {
|
||||||
widget: 'date',
|
widget: 'date',
|
||||||
format: 'yyyy-MM-dd',
|
format: 'yyyy-MM-dd',
|
||||||
placeholder: '请选择',
|
placeholder: '请选择',
|
||||||
errors: {
|
errors: {
|
||||||
required: '请选择起始日期'
|
required: '请选择起始日期',
|
||||||
},
|
},
|
||||||
change: i => {}
|
change: (i) => { },
|
||||||
} as SFDateWidgetSchema
|
} as SFDateWidgetSchema,
|
||||||
},
|
},
|
||||||
validEndTime: {
|
validEndTime: {
|
||||||
title: '有效期止',
|
title: '有效期止',
|
||||||
@ -389,67 +315,210 @@ export class CarAddDriverComponent implements OnInit {
|
|||||||
format: 'yyyy-MM-dd',
|
format: 'yyyy-MM-dd',
|
||||||
placeholder: '请选择',
|
placeholder: '请选择',
|
||||||
errors: {
|
errors: {
|
||||||
required: '请选择起始日期'
|
required: '请选择终止日期',
|
||||||
},
|
},
|
||||||
change: i => {}
|
change: (i) => { },
|
||||||
} as SFDateWidgetSchema
|
} as SFDateWidgetSchema,
|
||||||
}
|
},
|
||||||
|
signingOrganization: {
|
||||||
|
title: '签发机关',
|
||||||
|
type: 'string',
|
||||||
|
maxLength: 30,
|
||||||
|
ui: {
|
||||||
|
// widget: this.detailData.commitFlag !== 0 ? 'text' : '',
|
||||||
|
placeholder: '请输入',
|
||||||
|
},
|
||||||
|
},
|
||||||
},
|
},
|
||||||
required: []
|
required: [
|
||||||
|
'certificatePhotoWatermark',
|
||||||
|
'licenseNo',
|
||||||
|
'driverModel',
|
||||||
|
'validStartTime',
|
||||||
|
'validEndTime',
|
||||||
|
],
|
||||||
|
};
|
||||||
|
this.schema2 = {
|
||||||
|
properties: {
|
||||||
|
titleC: {
|
||||||
|
title: '从业资格证(选填)',
|
||||||
|
type: 'string',
|
||||||
|
ui: {
|
||||||
|
widget: 'text',
|
||||||
|
},
|
||||||
|
default: '照片上传后会自动识别文字并填充下列内容栏',
|
||||||
|
},
|
||||||
|
certificatePhotoWatermark: {
|
||||||
|
type: 'string',
|
||||||
|
title: '',
|
||||||
|
ui: {
|
||||||
|
offsetControl: 6,
|
||||||
|
action: apiConf.fileUpload,
|
||||||
|
accept: 'image/png,image/jpeg,image/jpg,image/gif',
|
||||||
|
limit: 1,
|
||||||
|
limitFileCount: 1,
|
||||||
|
resReName: 'data.fullFileWatermarkPath',
|
||||||
|
urlReName: 'data.fullFileWatermarkPath',
|
||||||
|
widget: 'upload',
|
||||||
|
descriptionI18n: '图片支持jpg、jpeg、png、gif格式,大小不超过5M',
|
||||||
|
data: {
|
||||||
|
appId: this.envSrv.env.appId,
|
||||||
|
},
|
||||||
|
name: 'multipartFile',
|
||||||
|
multiple: false,
|
||||||
|
listType: 'picture-card',
|
||||||
|
change: (args: any) => {
|
||||||
|
if (args.type === 'success') {
|
||||||
|
this.detailData.userPracticeSeniorityDTO.certificatePhoto = args.file.response.data.fullFilePath
|
||||||
|
this.checkQualificationCertificate(args.file.response.data.fullFilePath);
|
||||||
|
} else{
|
||||||
|
this.detailData.userPracticeSeniorityDTO.certificatePhoto = ''
|
||||||
|
}
|
||||||
|
},
|
||||||
|
beforeUpload: (file: any, _fileList: any) => {
|
||||||
|
return new Observable((observer: Observer<boolean>) => {
|
||||||
|
const isLt2M = file.size / 1024 / 1024 < 5;
|
||||||
|
if (!isLt2M) {
|
||||||
|
this.service.msgSrv.warning('图片大小超过5M!');
|
||||||
|
observer.complete();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
observer.next(isLt2M);
|
||||||
|
observer.complete();
|
||||||
|
});
|
||||||
|
},
|
||||||
|
previewFile: (file: NzUploadFile) => of(file.url),}
|
||||||
|
},
|
||||||
|
agreeImg: {
|
||||||
|
title: '',
|
||||||
|
type: 'boolean',
|
||||||
|
// enum: [{ label: '长期', value: true }],
|
||||||
|
ui: {
|
||||||
|
widget: 'custom',
|
||||||
|
}
|
||||||
|
},
|
||||||
|
licenseNo: {
|
||||||
|
title: '从业资格证号',
|
||||||
|
type: 'string',
|
||||||
|
maxLength: 30,
|
||||||
|
ui: {
|
||||||
|
// widget: this.detailData.commitFlag !== 0 ? 'text' : '',
|
||||||
|
placeholder: '请输入',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
regionCode: {
|
||||||
|
title: '签发省份',
|
||||||
|
type: 'string',
|
||||||
|
ui: {
|
||||||
|
widget: 'select',
|
||||||
|
placeholder: '请选择',
|
||||||
|
asyncData: () => this.getProvinceData(),
|
||||||
|
} as SFDateWidgetSchema,
|
||||||
|
},
|
||||||
|
validStartTime: {
|
||||||
|
title: '发证日期',
|
||||||
|
type: 'string',
|
||||||
|
ui: {
|
||||||
|
widget: 'date',
|
||||||
|
format: 'yyyy-MM-dd',
|
||||||
|
placeholder: '请选择',
|
||||||
|
errors: {
|
||||||
|
required: '请选择起始日期',
|
||||||
|
},
|
||||||
|
change: (i) => { },
|
||||||
|
} as SFDateWidgetSchema,
|
||||||
|
},
|
||||||
|
validEndTime: {
|
||||||
|
title: '有效期止',
|
||||||
|
type: 'string',
|
||||||
|
ui: {
|
||||||
|
widget: 'date',
|
||||||
|
format: 'yyyy-MM-dd',
|
||||||
|
placeholder: '请选择',
|
||||||
|
errors: {
|
||||||
|
required: '请选择终止日期',
|
||||||
|
},
|
||||||
|
change: (i) => { },
|
||||||
|
} as SFDateWidgetSchema,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
required: [
|
||||||
|
|
||||||
|
],
|
||||||
};
|
};
|
||||||
this.ui = {
|
this.ui = {
|
||||||
'*': {
|
'*': {
|
||||||
spanLabelFixed: 180,
|
spanLabelFixed: 180,
|
||||||
grid: { span: 24 },
|
grid: { span: 24 },
|
||||||
width: 700
|
width: 700,
|
||||||
},
|
},
|
||||||
$title1: {
|
|
||||||
spanLabelFixed: 0
|
|
||||||
},
|
|
||||||
$title2: {
|
|
||||||
spanLabelFixed: 0
|
|
||||||
},
|
|
||||||
$title3: {
|
|
||||||
spanLabelFixed: 0
|
|
||||||
},
|
|
||||||
$title4: {
|
|
||||||
spanLabelFixed: 0
|
|
||||||
},
|
|
||||||
$enterpriseRegistrationTime: {
|
|
||||||
width: 680
|
|
||||||
},
|
|
||||||
$operatingEndTime: {
|
|
||||||
grid: { span: 9 }
|
|
||||||
},
|
|
||||||
$dateType: {
|
|
||||||
grid: { span: 4 }
|
|
||||||
},
|
|
||||||
$validEndTime: {
|
|
||||||
grid: { span: 9 }
|
|
||||||
},
|
|
||||||
$dateType01: {
|
|
||||||
grid: { span: 4 }
|
|
||||||
},
|
|
||||||
$registrationCapital: {
|
|
||||||
grid: { span: 12 }
|
|
||||||
},
|
|
||||||
$unit: {
|
|
||||||
spanLabelFixed: 20,
|
|
||||||
grid: { span: 3 }
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
this.ui2 = {
|
||||||
|
'*': {
|
||||||
|
spanLabelFixed: 180,
|
||||||
|
grid: { span: 18 },
|
||||||
|
width: 600,
|
||||||
|
},
|
||||||
|
$titleB:{
|
||||||
|
grid: { span: 24 },
|
||||||
|
},
|
||||||
|
$certificatePhotoWatermark: {
|
||||||
|
grid: { span: 12 },
|
||||||
|
},
|
||||||
|
$roadImg: {
|
||||||
|
grid: { span: 4 },
|
||||||
|
class: 'setCustom'
|
||||||
|
},
|
||||||
|
};
|
||||||
|
this.ui3 = {
|
||||||
|
'*': {
|
||||||
|
spanLabelFixed: 180,
|
||||||
|
grid: { span: 18 },
|
||||||
|
width: 600,
|
||||||
|
},
|
||||||
|
$titleC:{
|
||||||
|
grid: { span: 24 },
|
||||||
|
},
|
||||||
|
$certificatePhotoWatermark: {
|
||||||
|
grid: { span: 12 },
|
||||||
|
},
|
||||||
|
$agreeImg: {
|
||||||
|
grid: { span: 4 },
|
||||||
|
class: 'setCustom'
|
||||||
|
},
|
||||||
|
};
|
||||||
|
}
|
||||||
|
checkQualificationCertificate(imgurl: any) {
|
||||||
|
// 识别从业资格证 参数side:0-正面、1-背面;type:0-申请人身份证,1-法定代表人身份证
|
||||||
|
const params = {
|
||||||
|
qualificationCertificateUrl: imgurl,
|
||||||
|
};
|
||||||
|
this.service.request(this.service.$api_recognizeQualificationCertificate, params).subscribe((res: any) => {
|
||||||
|
if (res) {
|
||||||
|
this.sf2.setValue('/licenseNo', res.certificateNumber);
|
||||||
|
this.sf2.setValue('/regionCode', res.addressRegionCodes[0]);
|
||||||
|
res.qualificationCategoryList.forEach((item: any) => {
|
||||||
|
console.log(item.category.indexOf('道路货物运输驾驶员') !== -1)
|
||||||
|
if (item.category.indexOf('道路货物运输驾驶员') !== -1) {
|
||||||
|
this.sf2.setValue('/validStartTime', item.initialIssueDate.split(' ')[0]);
|
||||||
|
this.sf2.setValue('/validEndTime', item.expiryDate.split(' ')[0]);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
getProvinceData() {
|
getProvinceData() {
|
||||||
return this.service.request(this.service.$api_getRegionByCode, { regionCode: '' }).pipe(
|
return this.service.request(this.service.$api_getRegionByCode, { regionCode: '' }).pipe(
|
||||||
map((res: any) => {
|
map((res: any) => {
|
||||||
const result: any = [];
|
const result: any = []
|
||||||
if (res) {
|
if (res) {
|
||||||
res.map((m: any) => {
|
res.map((m: any) => {
|
||||||
const item = { label: m.name, value: m.regionCode };
|
const item = { label: m.name, value: m.regionCode }
|
||||||
result.push(item);
|
result.push(item)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
return result;
|
return result
|
||||||
})
|
})
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@ -457,9 +526,9 @@ export class CarAddDriverComponent implements OnInit {
|
|||||||
// 识别身份证 参数side:0-正面、1-背面;type:0-申请人身份证,1-法定代表人身份证
|
// 识别身份证 参数side:0-正面、1-背面;type:0-申请人身份证,1-法定代表人身份证
|
||||||
const params = {
|
const params = {
|
||||||
idCardUrl: imgurl,
|
idCardUrl: imgurl,
|
||||||
side
|
side,
|
||||||
};
|
};
|
||||||
this.service.request(this.service.$api_checkIdCard, params).subscribe((res: any) => {
|
this.service.request(this.service.$api_checkIdCard, params).subscribe((res: any)=> {
|
||||||
if (res) {
|
if (res) {
|
||||||
if (type === 0) {
|
if (type === 0) {
|
||||||
// 法定代表人身份证
|
// 法定代表人身份证
|
||||||
@ -476,7 +545,7 @@ export class CarAddDriverComponent implements OnInit {
|
|||||||
// 识别身份证 参数side:0-正面、1-背面;type:0-申请人身份证,1-法定代表人身份证
|
// 识别身份证 参数side:0-正面、1-背面;type:0-申请人身份证,1-法定代表人身份证
|
||||||
const params = {
|
const params = {
|
||||||
driverLicenseUrl: imgurl,
|
driverLicenseUrl: imgurl,
|
||||||
side
|
side,
|
||||||
};
|
};
|
||||||
this.service.request(this.service.$api_recognizeDriverLicense, params).subscribe((res: any) => {
|
this.service.request(this.service.$api_recognizeDriverLicense, params).subscribe((res: any) => {
|
||||||
if (res) {
|
if (res) {
|
||||||
@ -485,7 +554,7 @@ export class CarAddDriverComponent implements OnInit {
|
|||||||
if (side === 'front') {
|
if (side === 'front') {
|
||||||
// 正面
|
// 正面
|
||||||
this.sf1.setValue('/licenseNo', res.number);
|
this.sf1.setValue('/licenseNo', res.number);
|
||||||
this.sf1.setValue('/driverModel', res.number);
|
this.sf1.setValue('/driverModel', [(res.classType).toUpperCase()]);
|
||||||
this.sf1.setValue('/validStartTime', res.validFrom);
|
this.sf1.setValue('/validStartTime', res.validFrom);
|
||||||
this.sf1.setValue('/validEndTime', res.validTo);
|
this.sf1.setValue('/validEndTime', res.validTo);
|
||||||
this.sf1.setValue('/signingOrganization', res.issuingAuthority);
|
this.sf1.setValue('/signingOrganization', res.issuingAuthority);
|
||||||
@ -497,59 +566,51 @@ export class CarAddDriverComponent implements OnInit {
|
|||||||
close(): void {
|
close(): void {
|
||||||
this.modal.destroy();
|
this.modal.destroy();
|
||||||
}
|
}
|
||||||
showExample() {
|
showExample(){
|
||||||
this.showCardFlag = !this.showCardFlag;
|
this.showCardFlag = !this.showCardFlag
|
||||||
}
|
}
|
||||||
showJopExample() {
|
showJopExample(){
|
||||||
this.showJopFlag = !this.showJopFlag;
|
this.showJopFlag = !this.showJopFlag
|
||||||
}
|
}
|
||||||
submitForm() {
|
submitForm(){
|
||||||
const params: any = {
|
const params:any = {
|
||||||
enterpriseId: this.companyData.enterpriseId,
|
|
||||||
enterpriseProjectId: this.companyData.projectId,
|
|
||||||
source: 1,
|
source: 1,
|
||||||
mobile: this.mobile,
|
mobile: this.sf.value.mobile,
|
||||||
identityInfoDTO: {
|
identityInfoDTO:{
|
||||||
...this.sf.value,
|
...this.sf.value,
|
||||||
certificatePhotoFront: this.detailData.certificatePhotoFront,
|
certificatePhotoFront: this.detailData.certificatePhotoFront,
|
||||||
certificatePhotoBack: this.detailData.certificatePhotoBack
|
certificatePhotoBack: this.detailData.certificatePhotoBack,
|
||||||
},
|
},
|
||||||
userDriverLicenseDTO: {
|
userDriverLicenseDTO: {
|
||||||
...this.sf1.value,
|
...this.sf1.value,
|
||||||
certificatePhoto: this.detailData.userDriverLicenseDTO.certificatePhoto
|
certificatePhoto: this.detailData.userDriverLicenseDTO.certificatePhoto,
|
||||||
},
|
},
|
||||||
userPracticeSeniorityDTO: {
|
userPracticeSeniorityDTO: {
|
||||||
...this.sf2.value,
|
...this.sf2.value,
|
||||||
certificatePhoto: this.detailData.userPracticeSeniorityDTO.certificatePhoto
|
certificatePhoto: this.detailData.userPracticeSeniorityDTO.certificatePhoto,
|
||||||
}
|
},
|
||||||
};
|
};
|
||||||
Object.assign(params, {
|
if(params.userPracticeSeniorityDTO.certificatePhoto === '' || params.userPracticeSeniorityDTO.certificatePhotoWatermark === '') {
|
||||||
identityInfoDTO: {
|
delete params.userPracticeSeniorityDTO.certificatePhotoWatermark
|
||||||
certificatePhotoFrontWatermark: this.sf?.value.certificatePhotoFrontWatermark,
|
delete params.userPracticeSeniorityDTO.certificatePhoto
|
||||||
certificatePhotoBackWatermark: this.sf?.value.certificatePhotoBackWatermark
|
}
|
||||||
},
|
params.userDriverLicenseDTO.driverModel = params.userDriverLicenseDTO.driverModel.join(',')
|
||||||
userDriverLicenseDTO: {
|
delete params.identityInfoDTO.showName;
|
||||||
certificatePhotoWatermark: this.sf?.value.certificatePhotoWatermark
|
|
||||||
},
|
|
||||||
userPracticeSeniorityDTO: {
|
|
||||||
certificatePhotoWatermark: this.sf?.value.certificatePhotoWatermark
|
|
||||||
}
|
|
||||||
});
|
|
||||||
// params.identityInfoDTO.certificatePhotoFrontWatermark = this.sf?.value.certificatePhotoFrontWatermark;
|
|
||||||
// params.identityInfoDTO.certificatePhotoBackWatermark = this.sf?.value.certificatePhotoBackWatermark;
|
|
||||||
// params.userDriverLicenseDTO.certificatePhotoWatermark = this.sf1?.value.certificatePhotoWatermark;
|
|
||||||
// params.userPracticeSeniorityDTO.certificatePhotoWatermark = this.sf2?.value.certificatePhotoWatermark;
|
|
||||||
delete params.identityInfoDTO.titleA;
|
delete params.identityInfoDTO.titleA;
|
||||||
delete params.identityInfoDTO.titleB;
|
delete params.userDriverLicenseDTO.titleB;
|
||||||
delete params.identityInfoDTO.titleC;
|
delete params.userPracticeSeniorityDTO.titleC;
|
||||||
delete params.userDriverLicenseDTO.tipsA;
|
delete params.userDriverLicenseDTO.tipsA;
|
||||||
delete params.userPracticeSeniorityDTO.tipsC;
|
delete params.userPracticeSeniorityDTO.tipsC;
|
||||||
delete params.showName;
|
if(JSON.stringify(params.userPracticeSeniorityDTO) === '{}') {
|
||||||
|
params.userPracticeSeniorityDTO = null
|
||||||
|
}
|
||||||
|
this.checked = true
|
||||||
this.service.request(this.service.$api_enterpriseVehicleSave, params).subscribe((res: any) => {
|
this.service.request(this.service.$api_enterpriseVehicleSave, params).subscribe((res: any) => {
|
||||||
if (res) {
|
this.checked = false
|
||||||
this.service.msgSrv.success('添加成功');
|
if(res){
|
||||||
this.modal.close(true);
|
this.service.msgSrv.success('添加成功')
|
||||||
|
this.modal.close(true)
|
||||||
}
|
}
|
||||||
});
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -147,11 +147,54 @@ export class SupplyManagementVehicleComponent implements OnInit {
|
|||||||
this.st.load(1);
|
this.st.load(1);
|
||||||
}, 500);
|
}, 500);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 导入货源
|
* 导入货源
|
||||||
*/
|
*/
|
||||||
importGoodsSource() { }
|
importGoodsSource() {
|
||||||
|
const modalRef = this.modal.create({
|
||||||
|
nzTitle: '货源导入',
|
||||||
|
nzWidth: 600,
|
||||||
|
nzContent: SupplyManagementImportSupplyComponent,
|
||||||
|
nzComponentParams: {
|
||||||
|
// i: item
|
||||||
|
},
|
||||||
|
nzFooter: null
|
||||||
|
});
|
||||||
|
modalRef.afterClose.subscribe(result => {
|
||||||
|
if (result) {
|
||||||
|
const tipsModal = this.modal.create({
|
||||||
|
nzTitle: '上传提示',
|
||||||
|
nzWidth: 600,
|
||||||
|
nzContent: `<div>文件上传完成!成功<span class="text-blue-dark">${result?.successNumber}</span>条,失败<span class="text-red-dark">${result?.failNumber}</span>条!</div>`,
|
||||||
|
nzFooter: [
|
||||||
|
{
|
||||||
|
label: '取 消',
|
||||||
|
type: 'default',
|
||||||
|
onClick: () => {
|
||||||
|
tipsModal.destroy();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: '下载失败数据',
|
||||||
|
type: 'primary',
|
||||||
|
onClick: () => {
|
||||||
|
if(!result?.failNumber) {
|
||||||
|
this.service.msgSrv.error('没有失败数据!');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
this.service.request(this.service.$api_getFailUploadGoodsOperateResource, result.ids).subscribe((res: any) => {
|
||||||
|
if(res) {
|
||||||
|
console.log(res);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
console.log(111);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
]
|
||||||
|
})
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 修改运费
|
* 修改运费
|
||||||
|
|||||||
@ -4,7 +4,7 @@
|
|||||||
* @Author : Shiming
|
* @Author : Shiming
|
||||||
* @Date : 2021-12-03 11:10:14
|
* @Date : 2021-12-03 11:10:14
|
||||||
* @LastEditors : Shiming
|
* @LastEditors : Shiming
|
||||||
* @LastEditTime : 2022-03-07 13:54:46
|
* @LastEditTime : 2022-03-24 19:35:52
|
||||||
* @FilePath : \\tms-obc-web\\src\\app\\routes\\supply-management\\services\\supply-management.service.ts
|
* @FilePath : \\tms-obc-web\\src\\app\\routes\\supply-management\\services\\supply-management.service.ts
|
||||||
* Copyright (C) 2022 huzhenhong. All rights reserved.
|
* Copyright (C) 2022 huzhenhong. All rights reserved.
|
||||||
*/
|
*/
|
||||||
@ -119,6 +119,8 @@ export class SupplyManagementService extends BaseService {
|
|||||||
public $api_getContractContent = '/api/sdc/contractTemplate/getContractContent';
|
public $api_getContractContent = '/api/sdc/contractTemplate/getContractContent';
|
||||||
// 获取运价
|
// 获取运价
|
||||||
public $api_getFreight = '/api/mdc/cuc/freightConfig/getFreight';
|
public $api_getFreight = '/api/mdc/cuc/freightConfig/getFreight';
|
||||||
|
// 从业资格证
|
||||||
|
$api_recognizeQualificationCertificate = '/api/mdc/pbc/hwc/ocr/recognizeQualificationCertificate';
|
||||||
/**
|
/**
|
||||||
* 获取车型、车长字典数据
|
* 获取车型、车长字典数据
|
||||||
* @returns
|
* @returns
|
||||||
|
|||||||
@ -4,7 +4,7 @@
|
|||||||
* @Author : Shiming
|
* @Author : Shiming
|
||||||
* @Date : 2021-12-24 15:54:08
|
* @Date : 2021-12-24 15:54:08
|
||||||
* @LastEditors : Shiming
|
* @LastEditors : Shiming
|
||||||
* @LastEditTime : 2022-02-17 19:58:06
|
* @LastEditTime : 2022-03-24 11:10:44
|
||||||
* @FilePath : \\tms-obc-web\\src\\app\\routes\\sys-setting\\components\\network-freight\\network-freight.component.html
|
* @FilePath : \\tms-obc-web\\src\\app\\routes\\sys-setting\\components\\network-freight\\network-freight.component.html
|
||||||
* Copyright (C) 2022 huzhenhong. All rights reserved.
|
* Copyright (C) 2022 huzhenhong. All rights reserved.
|
||||||
-->
|
-->
|
||||||
@ -96,7 +96,7 @@
|
|||||||
</st>
|
</st>
|
||||||
</nz-card>
|
</nz-card>
|
||||||
|
|
||||||
<nz-modal [(nzVisible)]="isVisible" [nzFooter]="nzModalFooter" nzTitle="财务设置" (nzOnOk)="handleOK()" (nzOnCancel)="handleCancel()">
|
<!-- <nz-modal [(nzVisible)]="isVisible" [nzFooter]="nzModalFooter" nzTitle="财务设置" (nzOnOk)="handleOK()" (nzOnCancel)="handleCancel()">
|
||||||
<ng-container *nzModalContent>
|
<ng-container *nzModalContent>
|
||||||
<sf #sfFre [schema]="addSchema" [ui]="ui2" [formData]="formData" [compact]="false" [button]="'none'"> </sf>
|
<sf #sfFre [schema]="addSchema" [ui]="ui2" [formData]="formData" [compact]="false" [button]="'none'"> </sf>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
@ -104,7 +104,7 @@
|
|||||||
<button nz-button nzType="primary" (click)="handleCancel()" [disabled]="">取消</button>
|
<button nz-button nzType="primary" (click)="handleCancel()" [disabled]="">取消</button>
|
||||||
<button nz-button nzType="default" (click)="handleOK()">确 定</button>
|
<button nz-button nzType="default" (click)="handleOK()">确 定</button>
|
||||||
</ng-template>
|
</ng-template>
|
||||||
</nz-modal>
|
</nz-modal> -->
|
||||||
|
|
||||||
<nz-modal [(nzVisible)]="isVisibleTicket" [nzFooter]="nzModalFooterTiket" nzTitle="财务设置" (nzOnCancel)="handleCancelTicket()">
|
<nz-modal [(nzVisible)]="isVisibleTicket" [nzFooter]="nzModalFooterTiket" nzTitle="财务设置" (nzOnCancel)="handleCancelTicket()">
|
||||||
<ng-container *nzModalContent>
|
<ng-container *nzModalContent>
|
||||||
@ -117,9 +117,11 @@
|
|||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
<div nz-col [nzSpan]="18" style="overflow: scroll">
|
<div nz-col [nzSpan]="18" style="overflow: scroll">
|
||||||
<sf #sfTicket [schema]="ticketSchema" [ui]="ui3" *ngIf="!taxStatus" [formData]="formDataTicket" [compact]="false" [button]="'none'">
|
<sf #sfTicket [schema]="ticketSchema" [ui]="ui3" *ngIf="TicketStatus" [formData]="formDataTicket" [compact]="false" [button]="'none'">
|
||||||
</sf>
|
</sf>
|
||||||
<sf #sfTax [schema]="TaxSchema" [ui]="ui4" *ngIf="taxStatus" [formData]="formDataTax" [compact]="false" [button]="'none'"> </sf>
|
<sf #sfTax [schema]="TaxSchema" [ui]="ui4" *ngIf="taxStatus" [formData]="formDataTax" [compact]="false" [button]="'none'"> </sf>
|
||||||
|
|
||||||
|
<sf #sfNC [schema]="NCSchema" [ui]="ui5" *ngIf="NCStatus" [formData]="formDataNC" [compact]="false" [button]="'none'"> </sf>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
|
|||||||
@ -1,10 +1,11 @@
|
|||||||
import { Component, OnInit, ViewChild } from '@angular/core';
|
import { Component, OnInit, ViewChild } from '@angular/core';
|
||||||
import { ActivatedRoute, Router } from '@angular/router';
|
import { ActivatedRoute, Router } from '@angular/router';
|
||||||
import { STComponent, STColumn, STChange } from '@delon/abc/st';
|
import { STComponent, STColumn, STChange } from '@delon/abc/st';
|
||||||
import { SFCascaderWidgetSchema, SFComponent, SFRadioWidgetSchema, SFSchema, SFUISchema } from '@delon/form';
|
import { SFCascaderWidgetSchema, SFComponent, SFRadioWidgetSchema, SFSchema, SFSchemaEnum, SFSelectWidgetSchema, SFUISchema } from '@delon/form';
|
||||||
import { DynamicSettingModalComponent, SinglepageSettingModalComponent } from '@shared';
|
import { DynamicSettingModalComponent, SinglepageSettingModalComponent } from '@shared';
|
||||||
import { NzModalService } from 'ng-zorro-antd/modal';
|
import { NzModalService } from 'ng-zorro-antd/modal';
|
||||||
import { takeLast } from 'rxjs/operators';
|
import { of } from 'rxjs';
|
||||||
|
import { map, takeLast } from 'rxjs/operators';
|
||||||
import { AccountDetailComponent } from 'src/app/shared/components/account-detail/account-detail.component';
|
import { AccountDetailComponent } from 'src/app/shared/components/account-detail/account-detail.component';
|
||||||
import { SystemService } from '../../services/system.service';
|
import { SystemService } from '../../services/system.service';
|
||||||
|
|
||||||
@ -20,26 +21,33 @@ export class NetworkFreightComponent implements OnInit {
|
|||||||
@ViewChild('sfFre', { static: false }) sfFre!: SFComponent;
|
@ViewChild('sfFre', { static: false }) sfFre!: SFComponent;
|
||||||
@ViewChild('sfTicket', { static: false }) sfTicket!: SFComponent;
|
@ViewChild('sfTicket', { static: false }) sfTicket!: SFComponent;
|
||||||
@ViewChild('sfTax', { static: false }) sfTax!: SFComponent;
|
@ViewChild('sfTax', { static: false }) sfTax!: SFComponent;
|
||||||
|
@ViewChild('sfNC', { static: false }) sfNC!: SFComponent;
|
||||||
ui: SFUISchema = {};
|
ui: SFUISchema = {};
|
||||||
ui2: SFUISchema = {};
|
ui2: SFUISchema = {};
|
||||||
ui3: SFUISchema = {};
|
ui3: SFUISchema = {};
|
||||||
ui4: SFUISchema = {};
|
ui4: SFUISchema = {};
|
||||||
|
ui5: SFUISchema = {};
|
||||||
schema: SFSchema = {};
|
schema: SFSchema = {};
|
||||||
addSchema: SFSchema = {};
|
addSchema: SFSchema = {};
|
||||||
ticketSchema: SFSchema = {};
|
ticketSchema: SFSchema = {};
|
||||||
TaxSchema: SFSchema = {};
|
TaxSchema: SFSchema = {};
|
||||||
_$expand = false;
|
NCSchema: SFSchema = {};
|
||||||
taxStatus = false;
|
_$expand :boolean= false;
|
||||||
|
taxStatus :boolean= false;
|
||||||
|
TicketStatus :boolean= true;
|
||||||
|
NCStatus :boolean = false;
|
||||||
formData: any;
|
formData: any;
|
||||||
ticketId: any;
|
ticketId: any;
|
||||||
ticketItem: any;
|
ticketItem: any;
|
||||||
formDataTicket: any;
|
formDataTicket: any;
|
||||||
|
formDataNC: any;
|
||||||
formDataTax: any;
|
formDataTax: any;
|
||||||
|
NCID: string = '';
|
||||||
isVisible = false;
|
isVisible = false;
|
||||||
isVisibleTicket = false;
|
isVisibleTicket = false;
|
||||||
edit = false;
|
edit = false;
|
||||||
editId = false;
|
editId = false;
|
||||||
tabs: any[] = [{ name: '开票设置' }, { name: '税务设置' }];
|
tabs: any[] = [{ name: '开票设置' }, { name: '税务设置' }, { name: 'NC设置' }];
|
||||||
|
|
||||||
columns: STColumn[] = [
|
columns: STColumn[] = [
|
||||||
{
|
{
|
||||||
@ -350,6 +358,42 @@ export class NetworkFreightComponent implements OnInit {
|
|||||||
};
|
};
|
||||||
this.ui4 = { '*': { spanLabelFixed: 120, grid: { span: 24 } } };
|
this.ui4 = { '*': { spanLabelFixed: 120, grid: { span: 24 } } };
|
||||||
}
|
}
|
||||||
|
initSFNC() {
|
||||||
|
this.NCSchema = {
|
||||||
|
properties: {
|
||||||
|
crmCustomerId: {
|
||||||
|
type: 'string',
|
||||||
|
title: 'CRM客户编码',
|
||||||
|
ui: {
|
||||||
|
widget: 'select',
|
||||||
|
serverSearch: true,
|
||||||
|
searchDebounceTime: 300,
|
||||||
|
searchLoadingText: '搜索中...',
|
||||||
|
visibleIf: {
|
||||||
|
_$expand: (value: boolean) => value
|
||||||
|
},
|
||||||
|
allowClear: true,
|
||||||
|
onSearch: (q: any) => {
|
||||||
|
let str = q.replace(/^\s+|\s+$/g, '');
|
||||||
|
if (str) {
|
||||||
|
console.log(str);
|
||||||
|
|
||||||
|
return this.service
|
||||||
|
.request(this.service.$api_get_crmCustomer_page, { customerName: str })
|
||||||
|
.pipe(map((res: any) => (res.records as any[]).map(i => ({ label: i.customerName, value: i.id } as SFSchemaEnum))))
|
||||||
|
.toPromise();
|
||||||
|
} else {
|
||||||
|
return of([]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} as SFSelectWidgetSchema
|
||||||
|
},
|
||||||
|
},
|
||||||
|
required: ['crmCustomerId']
|
||||||
|
};
|
||||||
|
this.ui5 = { '*': { spanLabelFixed: 120, grid: { span: 24 } } };
|
||||||
|
|
||||||
|
}
|
||||||
initSFFre() {
|
initSFFre() {
|
||||||
this.addSchema = {
|
this.addSchema = {
|
||||||
properties: {
|
properties: {
|
||||||
@ -397,36 +441,62 @@ export class NetworkFreightComponent implements OnInit {
|
|||||||
// 财务设置
|
// 财务设置
|
||||||
ticket(value: any) {
|
ticket(value: any) {
|
||||||
this.formDataTicket = [];
|
this.formDataTicket = [];
|
||||||
|
this.formDataNC = [];
|
||||||
this.formDataTax = [];
|
this.formDataTax = [];
|
||||||
this.ticketItem = value;
|
this.ticketItem = value;
|
||||||
|
this.taxStatus = false
|
||||||
|
this.TicketStatus = true
|
||||||
|
this.NCStatus = false
|
||||||
this.initSFTax();
|
this.initSFTax();
|
||||||
|
this.initSFNC();
|
||||||
this.initSFTicket();
|
this.initSFTicket();
|
||||||
this.service.request(this.service.$api_getTicketByNetworkTransporterId, { id: value.id }).subscribe((res: any) => {
|
this.NCID = value.id;
|
||||||
|
if(this.TicketStatus) {
|
||||||
|
console.log('9999999');
|
||||||
|
|
||||||
|
this.service.request(this.service.$api_getTicketByNetworkTransporterId, { id: value.id }).subscribe((res: any) => {
|
||||||
|
console.log(res);
|
||||||
|
if (res) {
|
||||||
|
let List = {
|
||||||
|
...res
|
||||||
|
};
|
||||||
|
delete List.senderRegionCode;
|
||||||
|
(List.senderRegionCode = this.getProvinceData(res?.senderRegionCode)), (this.formDataTicket = List);
|
||||||
|
this.ticketId = res.id;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
if(this.NCStatus) {
|
||||||
|
this.getNcSetData()
|
||||||
|
}
|
||||||
|
this.isVisibleTicket = true;
|
||||||
|
}
|
||||||
|
getNcSetData() {
|
||||||
|
const List: any = [];
|
||||||
|
console.log(99999);
|
||||||
|
this.service.request(this.service.$api_get_crmCustomer, { id: this.ticketItem.crmCustomerId }).subscribe((res: any) => {
|
||||||
console.log(res);
|
console.log(res);
|
||||||
if (res) {
|
if (res) {
|
||||||
let List = {
|
List.push({ label: res.customerName, value: res.id });
|
||||||
...res
|
console.log(List);
|
||||||
};
|
|
||||||
delete List.senderRegionCode;
|
this.sfNC.getProperty('/crmCustomerId')!.schema.enum = List;
|
||||||
(List.senderRegionCode = this.getProvinceData(res?.senderRegionCode)), (this.formDataTicket = List);
|
this.sfNC.getProperty('/crmCustomerId')!.widget.reset(List);
|
||||||
this.ticketId = res.id;
|
this.sfNC.setValue('/crmCustomerId', res?.id);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
this.isVisibleTicket = true;
|
|
||||||
}
|
}
|
||||||
getProvinceData(value: any) {
|
getProvinceData(value: any) {
|
||||||
this.service.http.post(this.service.$api_getRegionDetailByCode, { regionCode: value }).subscribe(res => {
|
this.service.http.post(this.service.$api_getRegionDetailByCode, { regionCode: value }).subscribe(res => {
|
||||||
console.log(res.data);
|
|
||||||
console.log(this.formDataTicket);
|
|
||||||
let enterpriseAddressCode: any = [];
|
let enterpriseAddressCode: any = [];
|
||||||
let regioin = res?.data?.regionFullCodes.split(',');
|
let regioin = res?.data?.regionFullCodes.split(',');
|
||||||
console.log(regioin);
|
|
||||||
regioin?.forEach((element: any) => {
|
regioin?.forEach((element: any) => {
|
||||||
enterpriseAddressCode.push(Number(element));
|
enterpriseAddressCode.push(Number(element));
|
||||||
});
|
});
|
||||||
console.log(enterpriseAddressCode);
|
if(this.TicketStatus) {
|
||||||
this.sfTicket.setValue('/senderRegionCode', enterpriseAddressCode);
|
this.sfTicket.setValue('/senderRegionCode', enterpriseAddressCode);
|
||||||
return enterpriseAddressCode;
|
return enterpriseAddressCode;
|
||||||
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
deleteAction(item?: any) {
|
deleteAction(item?: any) {
|
||||||
@ -517,27 +587,56 @@ export class NetworkFreightComponent implements OnInit {
|
|||||||
this.isVisibleTicket = false;
|
this.isVisibleTicket = false;
|
||||||
}
|
}
|
||||||
handleOKTicket() {
|
handleOKTicket() {
|
||||||
console.log(this.sfTicket.valid);
|
console.log( this.taxStatus, this.TicketStatus,this.NCStatus);
|
||||||
console.log(this.sfTicket.value);
|
if(this.TicketStatus) {
|
||||||
if (!this.sfTicket.valid) {
|
console.log(this.sfTicket);
|
||||||
this.service.msgSrv.warning('请正确填写完整!');
|
console.log(this.sfTicket.value);
|
||||||
return;
|
|
||||||
}
|
if (!this.sfTicket.valid) {
|
||||||
const params = {
|
this.service.msgSrv.warning('请正确填写完整!');
|
||||||
...this.sfTicket.value
|
return;
|
||||||
};
|
|
||||||
if (this.ticketId) {
|
|
||||||
params.id = this.ticketId;
|
|
||||||
}
|
|
||||||
params.senderRegionCode = this.sfTicket.value.senderRegionCode[2];
|
|
||||||
console.log(params);
|
|
||||||
this.service.request(this.service.$api_networkTransporterTicket_save, params).subscribe((res: any) => {
|
|
||||||
if (res) {
|
|
||||||
this.service.msgSrv.success('保存成功!');
|
|
||||||
this.isVisibleTicket = false;
|
|
||||||
this.st.reload(1);
|
|
||||||
}
|
}
|
||||||
});
|
const params = {
|
||||||
|
...this.sfTicket.value
|
||||||
|
};
|
||||||
|
if (this.ticketId) {
|
||||||
|
params.id = this.ticketId;
|
||||||
|
}
|
||||||
|
params.senderRegionCode = this.sfTicket.value.senderRegionCode[2];
|
||||||
|
console.log(params);
|
||||||
|
this.service.request(this.service.$api_networkTransporterTicket_save, params).subscribe((res: any) => {
|
||||||
|
if (res) {
|
||||||
|
this.service.msgSrv.success('保存成功!');
|
||||||
|
this.isVisibleTicket = false;
|
||||||
|
this.st.reload(1);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
} else if(this.NCStatus){
|
||||||
|
console.log(this.sfNC);
|
||||||
|
console.log(this.formDataNC);
|
||||||
|
console.log(this.sfNC?.value);
|
||||||
|
|
||||||
|
if (!this.sfNC.valid) {
|
||||||
|
this.service.msgSrv.warning('请正确填写完整!');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
const params = {
|
||||||
|
...this.sfNC.value
|
||||||
|
};
|
||||||
|
if (this.NCID) {
|
||||||
|
params.id = this.NCID;
|
||||||
|
}
|
||||||
|
console.log(params);
|
||||||
|
this.service.request(this.service.$api_setCrmCustomer, params).subscribe((res: any) => {
|
||||||
|
if (res) {
|
||||||
|
this.service.msgSrv.success('保存成功!');
|
||||||
|
this.isVisibleTicket = false;
|
||||||
|
this.st.reload(1);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
// api_setCrmCustomer
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
handleOK() {
|
handleOK() {
|
||||||
@ -571,10 +670,18 @@ export class NetworkFreightComponent implements OnInit {
|
|||||||
return this.service.request(this.service.$api_get_region_by_code, { regionCode });
|
return this.service.request(this.service.$api_get_region_by_code, { regionCode });
|
||||||
}
|
}
|
||||||
changeType(value: any) {
|
changeType(value: any) {
|
||||||
console.log(value);
|
|
||||||
if (value.name === '税务设置') {
|
if (value.name === '税务设置') {
|
||||||
this.taxStatus = true;
|
this.taxStatus = true;
|
||||||
} else {
|
this.TicketStatus = false;
|
||||||
|
this.NCStatus = false;
|
||||||
|
} else if (value.name === '开票设置'){
|
||||||
|
this.TicketStatus = true;
|
||||||
|
this.NCStatus = false;
|
||||||
|
this.taxStatus = false;
|
||||||
|
} else if (value.name === 'NC设置'){
|
||||||
|
this.getNcSetData()
|
||||||
|
this.NCStatus = true;
|
||||||
|
this.TicketStatus = false;
|
||||||
this.taxStatus = false;
|
this.taxStatus = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -173,6 +173,8 @@ export class SystemService extends BaseService {
|
|||||||
$api_ocr_recognize_id_card = '/api/mdc/pbc/hwc/ocr/recognizeIdCard';
|
$api_ocr_recognize_id_card = '/api/mdc/pbc/hwc/ocr/recognizeIdCard';
|
||||||
// 获取字典
|
// 获取字典
|
||||||
$api_getDictValue = '/api/mdc/pbc/dictItems/getDictValue';
|
$api_getDictValue = '/api/mdc/pbc/dictItems/getDictValue';
|
||||||
|
// 设置crm客户
|
||||||
|
$api_setCrmCustomer = '/api/mdc/cuc/networkTransporter/setCrmCustomer';
|
||||||
// 获取一、二、三级地区详情
|
// 获取一、二、三级地区详情
|
||||||
$api_getRegionToThree = '/api/mdc/pbc/region/getRegionToThree';
|
$api_getRegionToThree = '/api/mdc/pbc/region/getRegionToThree';
|
||||||
$api_getRoleTemplateInfo: string = '';
|
$api_getRoleTemplateInfo: string = '';
|
||||||
|
|||||||
@ -45,12 +45,11 @@
|
|||||||
</ng-template>
|
</ng-template>
|
||||||
|
|
||||||
|
|
||||||
<st #st [scroll]="{ x: '2000px' }" [data]="service.$api_ficoVatinvHList" [columns]="columns" [page]="{}"
|
<st #st [scroll]="{ x: '2000px' }" [data]="service.$api_ficoVatinvHList" [columns]="columns" [page]="{}"
|
||||||
[req]="{process: beforeReq }" [res]="{process:afterRes }" [loading]="false"
|
[req]="{process: beforeReq }" [res]="{process:afterRes }" [loading]="false" (change)="stChange($event)">
|
||||||
(change)="stChange($event)">
|
|
||||||
<ng-template st-row="vatinvcode" let-item let-index="index" let-column="column">
|
<ng-template st-row="vatinvcode" let-item let-index="index" let-column="column">
|
||||||
{{ item.vatinvcode }} <br>
|
{{ item.vatinvcode }} <br>
|
||||||
<label class="text-primary" >{{item.stsLabel}}</label>
|
<label class="text-primary">{{item.stsLabel}}</label>
|
||||||
</ng-template>
|
</ng-template>
|
||||||
</st>
|
</st>
|
||||||
</nz-card>
|
</nz-card>
|
||||||
@ -58,6 +57,28 @@
|
|||||||
<ng-template #requestedModal>
|
<ng-template #requestedModal>
|
||||||
<div nz-row nzGutter="8">
|
<div nz-row nzGutter="8">
|
||||||
<div nz-col nzSpan="24" se-container [labelWidth]="100">
|
<div nz-col nzSpan="24" se-container [labelWidth]="100">
|
||||||
|
<se [col]="1" label="开票信息" class="mb-sm">
|
||||||
|
<p style="margin: 0;">公司名: {{openInfo?.artoname}}</p>
|
||||||
|
<p style="margin: 0;">税号: {{openInfo?.artotaxno}}</p>
|
||||||
|
<p style="margin: 0;">注册地址: {{openInfo?.artoadd}}</p>
|
||||||
|
<p style="margin: 0;">注册电话: {{openInfo?.artotel}}</p>
|
||||||
|
<p style="margin: 0;">开户行: {{openInfo?.artobank}}</p>
|
||||||
|
</se>
|
||||||
|
<se [col]="1" label="服务名称" class="mb-sm">
|
||||||
|
{{openInfo?.vatname}}
|
||||||
|
</se>
|
||||||
|
<se [col]="1" label="发票备注栏" class="mb-sm">
|
||||||
|
{{openInfo?.vatremarks}}
|
||||||
|
</se>
|
||||||
|
<se [col]="1" label="其它要求" class="mb-sm">
|
||||||
|
{{openInfo?.otherremarks}}
|
||||||
|
</se>
|
||||||
|
<se [col]="1" label="销货清单" class="mb-sm">
|
||||||
|
{{openInfo?.isdetail?'需要':'不需要'}}
|
||||||
|
</se>
|
||||||
|
<se [col]="1" label="开票金额" class="mb-sm">
|
||||||
|
{{openInfo?.vatnotax | currency}}
|
||||||
|
</se>
|
||||||
<se [col]="1" label="开票日期" required>
|
<se [col]="1" label="开票日期" required>
|
||||||
<nz-date-picker [(ngModel)]="openInfo.invoicedate" nzPlaceHolder="请选择" style=" width: 100%;">
|
<nz-date-picker [(ngModel)]="openInfo.invoicedate" nzPlaceHolder="请选择" style=" width: 100%;">
|
||||||
</nz-date-picker>
|
</nz-date-picker>
|
||||||
@ -65,6 +86,9 @@
|
|||||||
<se [col]="1" label="发票号码" required>
|
<se [col]="1" label="发票号码" required>
|
||||||
<input nz-input [(ngModel)]="openInfo.invoiceno" placeholder="请输入" />
|
<input nz-input [(ngModel)]="openInfo.invoiceno" placeholder="请输入" />
|
||||||
</se>
|
</se>
|
||||||
|
<se [col]="1" label="发票代码" required>
|
||||||
|
<input nz-input [(ngModel)]="openInfo.invoiceno2" placeholder="请输入" />
|
||||||
|
</se>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</ng-template>
|
</ng-template>
|
||||||
@ -29,10 +29,10 @@ export class CancellationInvoiceComponent implements OnInit {
|
|||||||
selectedRows: any[] = [];
|
selectedRows: any[] = [];
|
||||||
totalCallNo = 0;
|
totalCallNo = 0;
|
||||||
|
|
||||||
openInfo: any = { invoicedate: null, invoiceno: null };
|
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) {}
|
||||||
|
|
||||||
ngOnInit(): void { }
|
ngOnInit(): void {}
|
||||||
|
|
||||||
beforeReq = (requestOptions: STRequestOptions) => {
|
beforeReq = (requestOptions: STRequestOptions) => {
|
||||||
if (this.sf) {
|
if (this.sf) {
|
||||||
@ -78,34 +78,41 @@ export class CancellationInvoiceComponent implements OnInit {
|
|||||||
* @param item
|
* @param item
|
||||||
*/
|
*/
|
||||||
requestedAction(item: any) {
|
requestedAction(item: any) {
|
||||||
this.openInfo = { invoicedate: null, invoiceno: null };
|
this.openInfo = { invoicedate: null, invoiceno: null, invoiceno2: null };
|
||||||
const modal = this.nzModalService.create({
|
this.service.request(this.service.$api_get_apply_fico_info, { id: item.vatappHId }).subscribe(info => {
|
||||||
nzTitle: '发票确认',
|
if (info) {
|
||||||
nzContent: this.requestedModal,
|
console.log(info);
|
||||||
nzOnOk: () => {
|
Object.assign(this.openInfo, { ...info });
|
||||||
if (!this.openInfo?.invoicedate || !this.openInfo?.invoiceno) {
|
const modal = this.nzModalService.create({
|
||||||
this.service.msgSrv.warning('请填开票信息');
|
nzTitle: '发票确认',
|
||||||
return false;
|
nzContent: this.requestedModal,
|
||||||
}
|
nzOnOk: () => {
|
||||||
const params = {
|
if (!this.openInfo?.invoicedate || !this.openInfo?.invoiceno) {
|
||||||
invoiceno: this.openInfo.invoiceno,
|
this.service.msgSrv.warning('请填开票信息');
|
||||||
invoicedate: dateTimePickerUtil.format(this.openInfo.invoicedate)
|
return false;
|
||||||
};
|
|
||||||
this.service
|
|
||||||
.request(this.service.$api_apply_fico_invoic, {
|
|
||||||
id: item.id,
|
|
||||||
vatinvcode: item.vatinvcode,
|
|
||||||
...params
|
|
||||||
})
|
|
||||||
.subscribe(res => {
|
|
||||||
if (res) {
|
|
||||||
this.service.msgSrv.success('开票成功');
|
|
||||||
this.st.load(1);
|
|
||||||
modal.destroy();
|
|
||||||
}
|
}
|
||||||
});
|
const params = {
|
||||||
|
invoiceno: this.openInfo.invoiceno,
|
||||||
|
invoicedate: dateTimePickerUtil.format(this.openInfo.invoicedate),
|
||||||
|
invoiceno2: this.openInfo.invoiceno2
|
||||||
|
};
|
||||||
|
this.service
|
||||||
|
.request(this.service.$api_apply_fico_invoic, {
|
||||||
|
id: item.id,
|
||||||
|
vatinvcode: item.vatinvcode,
|
||||||
|
...params
|
||||||
|
})
|
||||||
|
.subscribe(res => {
|
||||||
|
if (res) {
|
||||||
|
this.service.msgSrv.success('开票成功');
|
||||||
|
this.st.load(1);
|
||||||
|
modal.destroy();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -154,7 +161,7 @@ export class CancellationInvoiceComponent implements OnInit {
|
|||||||
this.nzModalService.warning({
|
this.nzModalService.warning({
|
||||||
nzTitle: '确定将所选待确认开票申请撤回?',
|
nzTitle: '确定将所选待确认开票申请撤回?',
|
||||||
nzContent: '提交税控后发票信息不可修改,待税控开票完成后返回开票结果',
|
nzContent: '提交税控后发票信息不可修改,待税控开票完成后返回开票结果',
|
||||||
nzOnOk: () => { }
|
nzOnOk: () => {}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -170,7 +177,7 @@ export class CancellationInvoiceComponent implements OnInit {
|
|||||||
this.nzModalService.warning({
|
this.nzModalService.warning({
|
||||||
nzTitle: '确定将所选待确认开票申请撤回?',
|
nzTitle: '确定将所选待确认开票申请撤回?',
|
||||||
nzContent: '提交税控后发票信息不可修改,待税控开票完成后返回开票结果',
|
nzContent: '提交税控后发票信息不可修改,待税控开票完成后返回开票结果',
|
||||||
nzOnOk: () => { }
|
nzOnOk: () => {}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -369,22 +376,22 @@ export class CancellationInvoiceComponent implements OnInit {
|
|||||||
buttons: [
|
buttons: [
|
||||||
{ type: 'divider' },
|
{ type: 'divider' },
|
||||||
{
|
{
|
||||||
text: '查看明细',
|
text: '查看明细<br>',
|
||||||
click: item =>
|
click: item =>
|
||||||
this.router.navigate(['ticket/cancellation-invoice/detail/' + item.id], {
|
this.router.navigate(['ticket/cancellation-invoice/detail/' + item.id], {
|
||||||
queryParams: { type: 1, expressno: item.expressno, ltdId: item.shipperId }
|
queryParams: { type: 1, expressno: item.expressno, ltdId: item.shipperId }
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
text: '手工开票',
|
text: '手工开票<br>',
|
||||||
iif: item => item.sts != '3',
|
iif: item => item.sts != '3',
|
||||||
click: item => this.requestedAction(item)
|
click: item => this.requestedAction(item)
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
text: '推送开票',
|
text: '推送开票<br>',
|
||||||
iif: item => item.sts === '1',
|
iif: item => item.sts === '1',
|
||||||
click: item => this.pushInvoiceAction(item)
|
click: item => this.pushInvoiceAction(item)
|
||||||
},
|
}
|
||||||
// {
|
// {
|
||||||
// text: '作废发票',
|
// text: '作废发票',
|
||||||
// iif: item => item.sts === '3',
|
// iif: item => item.sts === '3',
|
||||||
|
|||||||
@ -45,7 +45,7 @@
|
|||||||
<strong class="text-red">{{ totalCallNo }}</strong>
|
<strong class="text-red">{{ totalCallNo }}</strong>
|
||||||
<a *ngIf="totalCallNo > 0" (click)="st.clearCheck()" class="ml-lg">清空</a>
|
<a *ngIf="totalCallNo > 0" (click)="st.clearCheck()" class="ml-lg">清空</a>
|
||||||
</div>
|
</div>
|
||||||
<button nz-button *ngIf="resourceStatus==='1' || !resourceStatus" (click)="this.batchRequested()">开票</button>
|
<button nz-button *ngIf="resourceStatus==='1' || !resourceStatus" (click)="this.batchRequested()">开票审核</button>
|
||||||
<!-- <button nz-button (click)="this.rejectAction(selectedRows)">驳回</button>
|
<!-- <button nz-button (click)="this.rejectAction(selectedRows)">驳回</button>
|
||||||
<button nz-button (click)="changePice(selectedRows)">修改地址</button>-->
|
<button nz-button (click)="changePice(selectedRows)">修改地址</button>-->
|
||||||
<button nz-button *ngIf="resourceStatus==='3' || !resourceStatus" (click)="printOrder(selectedRows)">打印面单</button>
|
<button nz-button *ngIf="resourceStatus==='3' || !resourceStatus" (click)="printOrder(selectedRows)">打印面单</button>
|
||||||
|
|||||||
@ -32,5 +32,5 @@
|
|||||||
<div class="modal-footer text-center">
|
<div class="modal-footer text-center">
|
||||||
<button nz-button type="button">移除</button>
|
<button nz-button type="button">移除</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]="false" (click)="saveManage()">自动开票</button>
|
<!-- <button nz-button type="submit" nzType="primary" [nzLoading]="false" (click)="saveManage()">自动开票</button> -->
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -7,6 +7,7 @@
|
|||||||
* @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 { Component, ViewChild } from '@angular/core';
|
||||||
|
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';
|
||||||
|
|
||||||
@ -23,7 +24,7 @@ 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) {}
|
constructor(public service: TicketService, private nzModalService: NzModalService, private modal: NzModalRef, private router: Router) {}
|
||||||
|
|
||||||
beforeReq = (requestOptions: STRequestOptions) => {
|
beforeReq = (requestOptions: STRequestOptions) => {
|
||||||
Object.assign(requestOptions.body, { vatappHId: this.id });
|
Object.assign(requestOptions.body, { vatappHId: this.id });
|
||||||
@ -127,8 +128,17 @@ export class RequestedInvoiceModalComponent {
|
|||||||
};
|
};
|
||||||
this.service.request(this.service.$api_get_applyFicoVatinv, params).subscribe((res: any) => {
|
this.service.request(this.service.$api_get_applyFicoVatinv, params).subscribe((res: any) => {
|
||||||
if (res) {
|
if (res) {
|
||||||
this.service.msgSrv.success('开票成功');
|
this.nzModalService.confirm({
|
||||||
this.modal.destroy(true);
|
nzTitle: '是否进入销票处理页面完成开票',
|
||||||
|
nzOnOk: () => {
|
||||||
|
this.service.msgSrv.success('开票成功');
|
||||||
|
this.modal.destroy(true);
|
||||||
|
this.router.navigate(['/ticket/cancellation-invoice']);
|
||||||
|
},
|
||||||
|
nzOnCancel: () => {
|
||||||
|
this.modal.destroy(true);
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@ -59,4 +59,17 @@
|
|||||||
<nz-tag [nzColor]="'#2db7f5'" class="ml-md">已签收</nz-tag>
|
<nz-tag [nzColor]="'#2db7f5'" class="ml-md">已签收</nz-tag>
|
||||||
</p>
|
</p>
|
||||||
<app-logistics-time-line [data]="routesInfo?.routes"></app-logistics-time-line>
|
<app-logistics-time-line [data]="routesInfo?.routes"></app-logistics-time-line>
|
||||||
|
</ng-template>
|
||||||
|
|
||||||
|
<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>
|
||||||
</ng-template>
|
</ng-template>
|
||||||
@ -30,6 +30,10 @@ export class InvoicedListComponent implements OnInit {
|
|||||||
mailNo: '',
|
mailNo: '',
|
||||||
routes: []
|
routes: []
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@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) {}
|
||||||
|
|
||||||
ngOnInit(): void {}
|
ngOnInit(): void {}
|
||||||
@ -77,6 +81,42 @@ export class InvoicedListComponent implements OnInit {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 填写物流/修改物流
|
||||||
|
* @param item
|
||||||
|
*/
|
||||||
|
requestedAction(item: any) {
|
||||||
|
this.openInfo = { expresscompany: item.expresscompany || null, expressno: item.expressno || null };
|
||||||
|
const modal = this.nzModalService.create({
|
||||||
|
nzTitle: item.expresscompany ? '修改物流' : '填写物流',
|
||||||
|
nzContent: this.requestedModal,
|
||||||
|
nzOnOk: () => {
|
||||||
|
if (!this.openInfo?.expresscompany || !this.openInfo?.expressno) {
|
||||||
|
this.service.msgSrv.warning('请填快递信息');
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
const params = {
|
||||||
|
expresscompany: this.openInfo.expresscompany,
|
||||||
|
expressno: this.openInfo.expressno
|
||||||
|
};
|
||||||
|
this.service
|
||||||
|
.request(this.service.$api_update_Express, {
|
||||||
|
id: item.id,
|
||||||
|
...params
|
||||||
|
})
|
||||||
|
.subscribe(res => {
|
||||||
|
if (res) {
|
||||||
|
this.service.msgSrv.success(item.expresscompany ? '修改成功' : '填写成功');
|
||||||
|
this.st.load(1);
|
||||||
|
modal.destroy();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
invoiceHongChong() {
|
invoiceHongChong() {
|
||||||
if (this.selectedRows?.length <= 0) {
|
if (this.selectedRows?.length <= 0) {
|
||||||
this.service.msgSrv.warning('请选择发票');
|
this.service.msgSrv.warning('请选择发票');
|
||||||
@ -137,6 +177,13 @@ export class InvoicedListComponent implements OnInit {
|
|||||||
autocomplete: 'off'
|
autocomplete: 'off'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
invoiceno2: {
|
||||||
|
type: 'string',
|
||||||
|
title: '发票代码',
|
||||||
|
ui: {
|
||||||
|
autocomplete: 'off'
|
||||||
|
}
|
||||||
|
},
|
||||||
vatappHCode: {
|
vatappHCode: {
|
||||||
type: 'string',
|
type: 'string',
|
||||||
title: '申请编号',
|
title: '申请编号',
|
||||||
@ -151,7 +198,10 @@ export class InvoicedListComponent implements OnInit {
|
|||||||
widget: 'sl-from-to-search',
|
widget: 'sl-from-to-search',
|
||||||
format: 'yyyy-MM-dd',
|
format: 'yyyy-MM-dd',
|
||||||
placeholder: '请选择',
|
placeholder: '请选择',
|
||||||
nzShowTime: true
|
nzShowTime: true,
|
||||||
|
visibleIf: {
|
||||||
|
expand: (value: boolean) => value
|
||||||
|
}
|
||||||
} as SFDateWidgetSchema
|
} as SFDateWidgetSchema
|
||||||
},
|
},
|
||||||
artoname: {
|
artoname: {
|
||||||
@ -196,6 +246,7 @@ export class InvoicedListComponent implements OnInit {
|
|||||||
return [
|
return [
|
||||||
{ title: '', index: 'key', type: 'checkbox' },
|
{ title: '', index: 'key', type: 'checkbox' },
|
||||||
{ title: '发票号码', index: 'invoiceno', width: 150 },
|
{ title: '发票号码', index: 'invoiceno', width: 150 },
|
||||||
|
{ title: '发票代码', index: 'invoiceno2', width: 150 },
|
||||||
{
|
{
|
||||||
title: '申请编号',
|
title: '申请编号',
|
||||||
index: 'vatappHCode',
|
index: 'vatappHCode',
|
||||||
@ -255,7 +306,7 @@ export class InvoicedListComponent implements OnInit {
|
|||||||
className: 'text-center',
|
className: 'text-center',
|
||||||
width: 120,
|
width: 120,
|
||||||
buttons: [
|
buttons: [
|
||||||
{type:'divider'},
|
{ type: 'divider' },
|
||||||
{
|
{
|
||||||
text: '查看明细<br>',
|
text: '查看明细<br>',
|
||||||
click: item =>
|
click: item =>
|
||||||
@ -272,6 +323,16 @@ export class InvoicedListComponent implements OnInit {
|
|||||||
text: '查看物流<br>',
|
text: '查看物流<br>',
|
||||||
click: item => this.showlogosticsLogs(item),
|
click: item => this.showlogosticsLogs(item),
|
||||||
iif: item => item.expresscompany
|
iif: item => item.expresscompany
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: '填写物流<br>',
|
||||||
|
click: item => this.requestedAction(item),
|
||||||
|
iif: item => !item.expresscompany
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: '修改物流<br>',
|
||||||
|
click: item => this.requestedAction(item),
|
||||||
|
iif: item => item.expresscompany
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@ -32,6 +32,8 @@ export class TicketService extends ShipperBaseService {
|
|||||||
$api_ficoVatinv_Detail = '/api/fcc/ficoVatinvL/getDetailByVatinvHId';
|
$api_ficoVatinv_Detail = '/api/fcc/ficoVatinvL/getDetailByVatinvHId';
|
||||||
// 运营端订单明细开票处理
|
// 运营端订单明细开票处理
|
||||||
$api_apply_fico = '/api/fcc/ficoVatinvH/crmPushInvo';
|
$api_apply_fico = '/api/fcc/ficoVatinvH/crmPushInvo';
|
||||||
|
// 手工开票获取开票申请信息展示
|
||||||
|
$api_get_apply_fico_info = '/api/fcc/ficoVatappH/get';
|
||||||
// 运营端手工开票/确认/E税云开票成功后的回调
|
// 运营端手工开票/确认/E税云开票成功后的回调
|
||||||
$api_apply_fico_invoic = '/api/fcc/ficoVatinvH/operateAffirmVatinv';
|
$api_apply_fico_invoic = '/api/fcc/ficoVatinvH/operateAffirmVatinv';
|
||||||
// 运营端推送开票-E税云开票
|
// 运营端推送开票-E税云开票
|
||||||
@ -53,6 +55,9 @@ export class TicketService extends ShipperBaseService {
|
|||||||
// 已开发票查询
|
// 已开发票查询
|
||||||
$api_get_invoice_page = '/api/fcc/ficoVatinvH/list/page';
|
$api_get_invoice_page = '/api/fcc/ficoVatinvH/list/page';
|
||||||
|
|
||||||
|
// 更新快递信息
|
||||||
|
$api_update_Express= '/api/fcc/ficoVatinvH/updateExpress';
|
||||||
|
|
||||||
// 发票作废
|
// 发票作废
|
||||||
$api_cancel_invoice = '/api/fcc/ficoVatinvH/inpinvHCancel';
|
$api_cancel_invoice = '/api/fcc/ficoVatinvH/inpinvHCancel';
|
||||||
// 获取销项发票抬头
|
// 获取销项发票抬头
|
||||||
|
|||||||
@ -1,7 +1,17 @@
|
|||||||
|
<!--
|
||||||
|
* @Description :
|
||||||
|
* @Version : 1.0
|
||||||
|
* @Author : Shiming
|
||||||
|
* @Date : 2022-03-14 14:17:38
|
||||||
|
* @LastEditors : Shiming
|
||||||
|
* @LastEditTime : 2022-03-24 14:17:55
|
||||||
|
* @FilePath : \\tms-obc-web\\src\\app\\routes\\usercenter\\components\\driver\\captain\\add\\add.component.html
|
||||||
|
* Copyright (C) 2022 huzhenhong. All rights reserved.
|
||||||
|
-->
|
||||||
<div class="modal-header">
|
<div class="modal-header">
|
||||||
<div class="modal-title">添加车队长</div>
|
<div class="modal-title">添加车队长</div>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div [ngClass]="i.id || readFlag ? 'hideBtn' : ''">
|
||||||
<sf #sf [compact]="true" [ui]="ui" [schema]="schema" [button]="'none'">
|
<sf #sf [compact]="true" [ui]="ui" [schema]="schema" [button]="'none'">
|
||||||
<ng-template sf-template="tipsA" let-me let-ui="ui" let-schema="schema">
|
<ng-template sf-template="tipsA" let-me let-ui="ui" let-schema="schema">
|
||||||
<div class="pr">
|
<div class="pr">
|
||||||
@ -24,7 +34,6 @@
|
|||||||
</sf>
|
</sf>
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-footer">
|
<div class="modal-footer">
|
||||||
<button nz-button type="button" (click)="close()" *ngIf="i.id === ''">取消</button>
|
<button nz-button type="button" (click)="close()">取消</button>
|
||||||
<button nz-button type="button" (click)="close()" *ngIf="i.id">关闭</button>
|
<button nz-button type="button" nzType="primary" (click)="sure()" [disabled]="!sf?.valid" [nzLoading]="service.http.loading">确定</button>
|
||||||
<button nz-button type="button" nzType="primary" (click)="sure()" [disabled]="!sf?.valid" *ngIf="i.id === ''">确定</button>
|
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -1,36 +1,41 @@
|
|||||||
.pr {
|
.pr {
|
||||||
position: relative;
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
.pa {
|
||||||
|
position: absolute;
|
||||||
|
top: 35px;
|
||||||
|
left: 150px;
|
||||||
|
img{border: solid 1px #ebf0fb;}
|
||||||
|
}
|
||||||
|
|
||||||
|
.tips {
|
||||||
|
display: flex;
|
||||||
|
margin-bottom: 0;
|
||||||
|
color: #333;
|
||||||
|
|
||||||
|
dt {
|
||||||
|
width: 150px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.pa {
|
dd {
|
||||||
position: absolute;
|
width: 190px;
|
||||||
top: 35px;
|
|
||||||
left: 150px;
|
|
||||||
img{border: solid 1px #ebf0fb;}
|
|
||||||
}
|
|
||||||
|
|
||||||
.tips {
|
|
||||||
display: flex;
|
|
||||||
margin-bottom: 0;
|
margin-bottom: 0;
|
||||||
color: #333;
|
text-align: center;
|
||||||
|
|
||||||
dt {
|
|
||||||
width: 150px;
|
|
||||||
}
|
|
||||||
|
|
||||||
dd {
|
|
||||||
width: 190px;
|
|
||||||
margin-bottom: 0;
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
:host{
|
}
|
||||||
::ng-deep {
|
:host{
|
||||||
.ant-input-borderless{
|
::ng-deep {
|
||||||
padding: 0;
|
.ant-input-borderless{
|
||||||
padding-top: 4px;
|
padding: 0;
|
||||||
color: black;
|
padding-top: 4px;
|
||||||
resize:none;
|
color: black;
|
||||||
|
resize:none;
|
||||||
|
}
|
||||||
|
.hideBtn .ant-upload-list-item-actions button{
|
||||||
|
&:last-child{
|
||||||
|
display: none;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
@ -90,12 +90,13 @@ export class CtcCaptatinAddComponent implements OnInit {
|
|||||||
widget: this.i.id ? 'text' : '',
|
widget: this.i.id ? 'text' : '',
|
||||||
placeholder: '请输入手机号',
|
placeholder: '请输入手机号',
|
||||||
blur: () => {
|
blur: () => {
|
||||||
if(this.sf?.value?.mobile) {
|
if(!this.sf.value.mobile) {
|
||||||
|
return
|
||||||
|
}
|
||||||
this.service.request(this.service.$api_getByMobile, { mobile: this.sf.value.mobile }).subscribe(res => {
|
this.service.request(this.service.$api_getByMobile, { mobile: this.sf.value.mobile }).subscribe(res => {
|
||||||
if (res.certificateNumber) {
|
if (res.certificateNumber) {
|
||||||
this.readFlag = true
|
this.readFlag = true
|
||||||
this.detailData = {
|
this.detailData = {
|
||||||
...res,
|
|
||||||
mobile: this.sf.value.mobile,
|
mobile: this.sf.value.mobile,
|
||||||
bankName: this.sf.value.bankName,
|
bankName: this.sf.value.bankName,
|
||||||
bankCardNo: this.sf.value.bankCardNo,
|
bankCardNo: this.sf.value.bankCardNo,
|
||||||
@ -109,28 +110,41 @@ export class CtcCaptatinAddComponent implements OnInit {
|
|||||||
url: res.certificatePhotoFrontWatermark,
|
url: res.certificatePhotoFrontWatermark,
|
||||||
response: res.certificatePhotoFrontWatermark,
|
response: res.certificatePhotoFrontWatermark,
|
||||||
}],
|
}],
|
||||||
certificatePhotoBackWatermark: [
|
certificatePhotoBackWatermark: [
|
||||||
{
|
{
|
||||||
uid: -1,
|
uid: -1,
|
||||||
name: 'LOGO',
|
name: 'LOGO',
|
||||||
status: 'done',
|
status: 'done',
|
||||||
url: res.certificatePhotoBackWatermark,
|
url: res.certificatePhotoBackWatermark,
|
||||||
response: res.certificatePhotoBackWatermark,
|
response: res.certificatePhotoBackWatermark,
|
||||||
}],
|
}],
|
||||||
name: res.name,
|
name: res.name,
|
||||||
certificateNumber: res.certificateNumber,
|
certificateNumber: res.certificateNumber,
|
||||||
certificatePhotoFront: res.certificatePhotoFront,
|
certificatePhotoFront: res.certificatePhotoFront,
|
||||||
certificatePhotoBack: res.certificatePhotoBack,
|
certificatePhotoBack: res.certificatePhotoBack,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
this.initSF()
|
this.initSF()
|
||||||
} else {
|
} else {
|
||||||
this.readFlag = false
|
this.readFlag = false
|
||||||
this.detailData = {}
|
this.detailData = {
|
||||||
|
mobile: this.sf.value.mobile,
|
||||||
|
bankName: this.sf.value.bankName,
|
||||||
|
bankCardNo: this.sf.value.bankCardNo,
|
||||||
|
remark: this.sf.value.remark,
|
||||||
|
identityInfoDTO: {
|
||||||
|
certificatePhotoFrontWatermark: '',
|
||||||
|
certificatePhotoBackWatermark: '',
|
||||||
|
name: '',
|
||||||
|
certificateNumber: '',
|
||||||
|
certificatePhotoFront: '',
|
||||||
|
certificatePhotoBack: '',
|
||||||
|
}
|
||||||
|
}
|
||||||
|
this.initSF()
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
|
||||||
},
|
},
|
||||||
default: this.detailData.mobile
|
default: this.detailData.mobile
|
||||||
},
|
},
|
||||||
@ -138,7 +152,7 @@ export class CtcCaptatinAddComponent implements OnInit {
|
|||||||
title: '姓名',
|
title: '姓名',
|
||||||
type: 'string',
|
type: 'string',
|
||||||
ui: {
|
ui: {
|
||||||
widget: this.i.id ? 'text' : '',
|
widget: this.i.id && (this.i.driverLicenseStatus === 10 || this.i.driverLicenseStatus === 20) ? 'text' : '',
|
||||||
placeholder: '请输入姓名',
|
placeholder: '请输入姓名',
|
||||||
},
|
},
|
||||||
readOnly: this.readFlag,
|
readOnly: this.readFlag,
|
||||||
@ -147,12 +161,11 @@ export class CtcCaptatinAddComponent implements OnInit {
|
|||||||
bankCardNo: {
|
bankCardNo: {
|
||||||
title: '银行卡号',
|
title: '银行卡号',
|
||||||
type: 'string',
|
type: 'string',
|
||||||
maxLength: 20,
|
|
||||||
ui: {
|
ui: {
|
||||||
widget: this.i.id ? 'text' : '',
|
widget: '',
|
||||||
placeholder: '请输入银行卡号',
|
placeholder: '请输入银行卡号',
|
||||||
change: (val: any) =>{
|
change: (val: any) => {
|
||||||
const value = val.replace(/\D/g,'')
|
const value = val.replace(/\D/g, '')
|
||||||
this.sf.setValue('/bankCardNo', value)
|
this.sf.setValue('/bankCardNo', value)
|
||||||
},
|
},
|
||||||
errors: {
|
errors: {
|
||||||
@ -164,9 +177,8 @@ export class CtcCaptatinAddComponent implements OnInit {
|
|||||||
bankName: {
|
bankName: {
|
||||||
title: '开户行',
|
title: '开户行',
|
||||||
type: 'string',
|
type: 'string',
|
||||||
maxLength: 35,
|
|
||||||
ui: {
|
ui: {
|
||||||
widget: this.i.id ? 'text' : '',
|
widget: '',
|
||||||
placeholder: '请输入开户行',
|
placeholder: '请输入开户行',
|
||||||
},
|
},
|
||||||
default: this.detailData.bankName
|
default: this.detailData.bankName
|
||||||
@ -178,7 +190,7 @@ export class CtcCaptatinAddComponent implements OnInit {
|
|||||||
ui: {
|
ui: {
|
||||||
widget: 'textarea',
|
widget: 'textarea',
|
||||||
showRequired: true,
|
showRequired: true,
|
||||||
borderless:true,
|
borderless: true,
|
||||||
},
|
},
|
||||||
default: '请上传身份证原件的高清照片,若上传复印件,则需加盖公司印章及法人签字;上传后系统会自动识别并填写',
|
default: '请上传身份证原件的高清照片,若上传复印件,则需加盖公司印章及法人签字;上传后系统会自动识别并填写',
|
||||||
},
|
},
|
||||||
@ -193,11 +205,11 @@ export class CtcCaptatinAddComponent implements OnInit {
|
|||||||
certificatePhotoFrontWatermark: {
|
certificatePhotoFrontWatermark: {
|
||||||
type: 'string',
|
type: 'string',
|
||||||
title: '',
|
title: '',
|
||||||
readOnly: this.i.id || this.readFlag,
|
readOnly: (this.i.id && (this.i.driverLicenseStatus === 10 || this.i.driverLicenseStatus === 20)) || this.readFlag,
|
||||||
ui: {
|
ui: {
|
||||||
offsetControl: 6,
|
offsetControl: 6,
|
||||||
action: apiConf.fileUpload,
|
action: apiConf.fileUpload,
|
||||||
fileType: 'image/png,image/jpeg,image/jpg,image/gif',
|
accept: 'image/png,image/jpeg,image/jpg,image/gif',
|
||||||
limit: 1,
|
limit: 1,
|
||||||
limitFileCount: 1,
|
limitFileCount: 1,
|
||||||
resReName: 'data.fullFileWatermarkPath',
|
resReName: 'data.fullFileWatermarkPath',
|
||||||
@ -212,10 +224,10 @@ export class CtcCaptatinAddComponent implements OnInit {
|
|||||||
listType: 'picture-card',
|
listType: 'picture-card',
|
||||||
change: (args: any) => {
|
change: (args: any) => {
|
||||||
if (args.type === 'success') {
|
if (args.type === 'success') {
|
||||||
this.detailData.certificatePhotoFront = args.file.response.data.fullFilePath
|
this.detailData.identityInfoDTO.certificatePhotoFront = args.file.response.data.fullFilePath
|
||||||
this.checkIdCard(args.file.response.data.fullFilePath, 'front');
|
this.checkIdCard(args.file.response.data.fullFilePath, 'front');
|
||||||
} else {
|
} else {
|
||||||
this.detailData.certificatePhotoFront = ''
|
this.detailData.identityInfoDTO.certificatePhotoFront = ''
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
beforeUpload: (file: any, _fileList: any) => {
|
beforeUpload: (file: any, _fileList: any) => {
|
||||||
@ -230,6 +242,7 @@ export class CtcCaptatinAddComponent implements OnInit {
|
|||||||
observer.complete();
|
observer.complete();
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
previewFile: (file: any) => { }
|
||||||
},
|
},
|
||||||
default: this.detailData.identityInfoDTO.certificatePhotoFrontWatermark
|
default: this.detailData.identityInfoDTO.certificatePhotoFrontWatermark
|
||||||
},
|
},
|
||||||
@ -244,11 +257,11 @@ export class CtcCaptatinAddComponent implements OnInit {
|
|||||||
certificatePhotoBackWatermark: {
|
certificatePhotoBackWatermark: {
|
||||||
type: 'string',
|
type: 'string',
|
||||||
title: '',
|
title: '',
|
||||||
readOnly: this.i.id || this.readFlag,
|
readOnly: (this.i.id && (this.i.driverLicenseStatus === 10 || this.i.driverLicenseStatus === 20)) || this.readFlag,
|
||||||
ui: {
|
ui: {
|
||||||
offsetControl: 6,
|
offsetControl: 6,
|
||||||
action: apiConf.fileUpload,
|
action: apiConf.fileUpload,
|
||||||
fileType: 'image/png,image/jpeg,image/jpg,image/gif',
|
accept: 'image/png,image/jpeg,image/jpg,image/gif',
|
||||||
limit: 1,
|
limit: 1,
|
||||||
limitFileCount: 1,
|
limitFileCount: 1,
|
||||||
resReName: 'data.fullFileWatermarkPath',
|
resReName: 'data.fullFileWatermarkPath',
|
||||||
@ -263,9 +276,9 @@ export class CtcCaptatinAddComponent implements OnInit {
|
|||||||
listType: 'picture-card',
|
listType: 'picture-card',
|
||||||
change: (args: any) => {
|
change: (args: any) => {
|
||||||
if (args.type === 'success') {
|
if (args.type === 'success') {
|
||||||
this.detailData.certificatePhotoBack = args.file.response.data.fullFilePath
|
this.detailData.identityInfoDTO.certificatePhotoBack = args.file.response.data.fullFilePath
|
||||||
} else {
|
} else {
|
||||||
this.detailData.certificatePhotoBack = ''
|
this.detailData.identityInfoDTO.certificatePhotoBack = ''
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
beforeUpload: (file: any, _fileList: any) => {
|
beforeUpload: (file: any, _fileList: any) => {
|
||||||
@ -280,15 +293,16 @@ export class CtcCaptatinAddComponent implements OnInit {
|
|||||||
observer.complete();
|
observer.complete();
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
previewFile: (file: any) => { }
|
||||||
},
|
},
|
||||||
default: this.detailData.identityInfoDTO.certificatePhotoBackWatermark
|
default: this.detailData.identityInfoDTO.certificatePhotoBackWatermark
|
||||||
},
|
},
|
||||||
certificateNumber: {
|
certificateNumber: {
|
||||||
title: '身份证号',
|
title: '身份证号',
|
||||||
type: 'string',
|
type: 'string',
|
||||||
readOnly: this.readFlag,
|
readOnly: (this.i.id && (this.i.driverLicenseStatus === 10 || this.i.driverLicenseStatus === 20)) || this.readFlag,
|
||||||
ui: {
|
ui: {
|
||||||
widget: this.i.id ? 'text' : '',
|
widget: this.i.id && (this.i.driverLicenseStatus !== 10 && this.i.driverLicenseStatus !== 20) ? 'text' : '',
|
||||||
placeholder: '请输入身份证号',
|
placeholder: '请输入身份证号',
|
||||||
},
|
},
|
||||||
default: this.detailData.identityInfoDTO.certificateNumber
|
default: this.detailData.identityInfoDTO.certificateNumber
|
||||||
@ -298,7 +312,7 @@ export class CtcCaptatinAddComponent implements OnInit {
|
|||||||
type: 'string',
|
type: 'string',
|
||||||
maxLength: 100,
|
maxLength: 100,
|
||||||
ui: {
|
ui: {
|
||||||
widget: this.i.id ? 'text' : 'textarea',
|
widget: 'textarea',
|
||||||
placeholder: '请输入备注',
|
placeholder: '请输入备注',
|
||||||
autosize: { minRows: 2, maxRows: 6 },
|
autosize: { minRows: 2, maxRows: 6 },
|
||||||
},
|
},
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
<!--
|
<!--
|
||||||
* @Author: your name
|
* @Author: your name
|
||||||
* @Date: 2021-12-24 15:38:08
|
* @Date: 2021-12-24 15:38:08
|
||||||
* @LastEditTime : 2022-02-23 15:43:24
|
* @LastEditTime : 2022-03-24 19:40:36
|
||||||
* @LastEditors : Shiming
|
* @LastEditors : Shiming
|
||||||
* @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\\waybill-management\\components\\abnormal-appear\\abnormal-appear.component.html
|
* @FilePath : \\tms-obc-web\\src\\app\\routes\\waybill-management\\components\\abnormal-appear\\abnormal-appear.component.html
|
||||||
@ -43,7 +43,7 @@
|
|||||||
|
|
||||||
<nz-card class="content-box">
|
<nz-card class="content-box">
|
||||||
<nz-tabset [(nzSelectedIndex)]="selectedIndex">
|
<nz-tabset [(nzSelectedIndex)]="selectedIndex">
|
||||||
<nz-tab nzTitle="待回复">
|
<nz-tab [nzTitle]="'待回复(' + tabs?.stayQuantity + ')'">
|
||||||
<st
|
<st
|
||||||
#st
|
#st
|
||||||
[data]="service.$api_get_listOperatePage"
|
[data]="service.$api_get_listOperatePage"
|
||||||
@ -69,10 +69,10 @@
|
|||||||
</ng-template>
|
</ng-template>
|
||||||
</st>
|
</st>
|
||||||
</nz-tab>
|
</nz-tab>
|
||||||
<nz-tab nzTitle="已回复">
|
<nz-tab nzTitle='已回复'>
|
||||||
<st
|
<st
|
||||||
#st2
|
#st2
|
||||||
[data]="service.$api_get_listOperateReplyPage"
|
[data]="service.$api_get_listOperatePage"
|
||||||
[columns]="columns2"
|
[columns]="columns2"
|
||||||
[req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, params: reqParams }"
|
[req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, params: reqParams }"
|
||||||
[res]="{ reName: { list: 'data.records', total: 'data.total' } }"
|
[res]="{ reName: { list: 'data.records', total: 'data.total' } }"
|
||||||
|
|||||||
@ -37,6 +37,10 @@ export class WaybillManagementAbnormalAppearComponent implements OnInit {
|
|||||||
edit = false;
|
edit = false;
|
||||||
editId = false;
|
editId = false;
|
||||||
selectedIndex = 0;
|
selectedIndex = 0;
|
||||||
|
tabs = {
|
||||||
|
stayQuantity: 0,
|
||||||
|
receivedQuantity: 0
|
||||||
|
};
|
||||||
|
|
||||||
columns: STColumn[] = [
|
columns: STColumn[] = [
|
||||||
{ title: '异常编号', index: 'exceptionCode', width: '180px', className: 'text-left' },
|
{ title: '异常编号', index: 'exceptionCode', width: '180px', className: 'text-left' },
|
||||||
@ -68,12 +72,14 @@ export class WaybillManagementAbnormalAppearComponent implements OnInit {
|
|||||||
|
|
||||||
get reqParams() {
|
get reqParams() {
|
||||||
return {
|
return {
|
||||||
...this.sf?.value
|
...this.sf?.value,
|
||||||
|
replyStatus: 0
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
get reqParams2() {
|
get reqParams2() {
|
||||||
return {
|
return {
|
||||||
...this.sf?.value
|
...this.sf?.value,
|
||||||
|
replyStatus: 1
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -81,6 +87,7 @@ export class WaybillManagementAbnormalAppearComponent implements OnInit {
|
|||||||
|
|
||||||
ngOnInit(): void {
|
ngOnInit(): void {
|
||||||
this.initSF();
|
this.initSF();
|
||||||
|
this.getGoodsSourceStatistical();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -205,14 +212,32 @@ export class WaybillManagementAbnormalAppearComponent implements OnInit {
|
|||||||
};
|
};
|
||||||
this.ui = { '*': { spanLabelFixed: 110, grid: { span: 8, gutter: 4 } } };
|
this.ui = { '*': { spanLabelFixed: 110, grid: { span: 8, gutter: 4 } } };
|
||||||
}
|
}
|
||||||
|
getGoodsSourceStatistical() {
|
||||||
|
this.tabs = {
|
||||||
|
stayQuantity: 0,
|
||||||
|
receivedQuantity: 0
|
||||||
|
};
|
||||||
|
const params: any = Object.assign({}, this.reqParams || {});
|
||||||
|
delete params.replyStatus;
|
||||||
|
this.service.request(this.service.$api_get_listOperateStatus, params).subscribe(res => {
|
||||||
|
if (res) {
|
||||||
|
res.forEach((element: any) => {
|
||||||
|
if (element.replyStatus === '1') {
|
||||||
|
this.tabs.receivedQuantity = element.quantity;
|
||||||
|
} else if (element.replyStatus === '0') {
|
||||||
|
this.tabs.stayQuantity = element.quantity;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
search() {
|
search() {
|
||||||
console.log(this.selectedIndex);
|
|
||||||
if (this.selectedIndex === 0) {
|
if (this.selectedIndex === 0) {
|
||||||
this.st?.load(1);
|
this.st?.load(1);
|
||||||
} else {
|
} else {
|
||||||
this.st2?.load(1);
|
this.st2?.load(1);
|
||||||
}
|
}
|
||||||
|
this.getGoodsSourceStatistical();
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* 重置表单
|
* 重置表单
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
<!--
|
<!--
|
||||||
* @Author: your name
|
* @Author: your name
|
||||||
* @Date: 2021-12-03 15:31:52
|
* @Date: 2021-12-03 15:31:52
|
||||||
* @LastEditTime : 2022-03-11 17:27:42
|
* @LastEditTime : 2022-03-24 13:51:41
|
||||||
* @LastEditors : Shiming
|
* @LastEditors : Shiming
|
||||||
* @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\\waybill-management\\components\\bulk-detail\\bulk-detail.component.html
|
* @FilePath : \\tms-obc-web\\src\\app\\routes\\waybill-management\\components\\bulk-detail\\bulk-detail.component.html
|
||||||
@ -27,12 +27,11 @@
|
|||||||
<div sv-container>
|
<div sv-container>
|
||||||
<sv label="网络货运人">{{ i?.enterpriseInfoName }} </sv>
|
<sv label="网络货运人">{{ i?.enterpriseInfoName }} </sv>
|
||||||
<sv label="货主">{{ i?.shippername }} </sv>
|
<sv label="货主">{{ i?.shippername }} </sv>
|
||||||
<sv label="所属项目">{{i?.enterpriseProject}}</sv>
|
<sv label="所属项目">{{i?.enterpriseProjectName}}</sv>
|
||||||
<sv label="服务类型">{{i?.serviceTypeLabel}}</sv>
|
<sv label="服务类型">{{i?.serviceTypeLabel}}</sv>
|
||||||
<sv label="调度员">{{i?.dispatchName}} /{{i?.dispatchPhone}}</sv>
|
<sv label="调度员">{{i?.dispatchName}} /{{i?.dispatchPhone}}</sv>
|
||||||
<sv label="外部订单号">{{ i?.externalBillCode }}</sv>
|
<sv label="外部订单号">{{ i?.externalBillCode }}</sv>
|
||||||
<sv label="货源编号">{{ i?.resourceCode }} </sv>
|
<sv label="货源编号">{{ i?.resourceCode }} </sv>
|
||||||
<sv label="运单号">{{ i?.wayBill?.wayBillCode }}</sv>
|
|
||||||
<sv label="承诺付款天数">{{ i?.paymentDays }}</sv>
|
<sv label="承诺付款天数">{{ i?.paymentDays }}</sv>
|
||||||
</div>
|
</div>
|
||||||
<nz-tabset style="margin-top: 15px;">
|
<nz-tabset style="margin-top: 15px;">
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
<!--
|
<!--
|
||||||
* @Author: your name
|
* @Author: your name
|
||||||
* @Date: 2021-12-03 15:31:52
|
* @Date: 2021-12-03 15:31:52
|
||||||
* @LastEditTime : 2022-03-11 16:39:50
|
* @LastEditTime : 2022-03-24 13:49:56
|
||||||
* @LastEditors : Shiming
|
* @LastEditors : Shiming
|
||||||
* @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\\waybill-management\\components\\vehicle-detail\\vehicle-detail.component.html
|
* @FilePath : \\tms-obc-web\\src\\app\\routes\\waybill-management\\components\\vehicle-detail\\vehicle-detail.component.html
|
||||||
@ -27,12 +27,11 @@
|
|||||||
<div sv-container>
|
<div sv-container>
|
||||||
<sv label="网络货运人">{{ i?.enterpriseInfoName }} </sv>
|
<sv label="网络货运人">{{ i?.enterpriseInfoName }} </sv>
|
||||||
<sv label="货主">{{ i?.shippername }} </sv>
|
<sv label="货主">{{ i?.shippername }} </sv>
|
||||||
<sv label="所属项目">{{i?.enterpriseProject}}</sv>
|
<sv label="所属项目">{{i?.enterpriseProjectName}}</sv>
|
||||||
<sv label="服务类型">{{i?.serviceTypeLabel}}</sv>
|
<sv label="服务类型">{{i?.serviceTypeLabel}}</sv>
|
||||||
<sv label="调度员">{{i?.dispatchName}} /{{i?.dispatchPhone}}</sv>
|
<sv label="调度员">{{i?.dispatchName}} /{{i?.dispatchPhone}}</sv>
|
||||||
<sv label="外部订单号">{{ i?.externalBillCode }}</sv>
|
<sv label="外部订单号">{{ i?.externalBillCode }}</sv>
|
||||||
<sv label="货源编号">{{ i?.resourceCode }} </sv>
|
<sv label="货源编号">{{ i?.resourceCode }} </sv>
|
||||||
<sv label="运单号">{{ i?.wayBill?.wayBillCode }}</sv>
|
|
||||||
<sv label="承诺付款天数">{{ i?.paymentDays }}</sv>
|
<sv label="承诺付款天数">{{ i?.paymentDays }}</sv>
|
||||||
</div>
|
</div>
|
||||||
<nz-tabset style="margin-top: 15px;">
|
<nz-tabset style="margin-top: 15px;">
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
<!--
|
<!--
|
||||||
* @Author: your name
|
* @Author: your name
|
||||||
* @Date: 2021-12-03 11:10:14
|
* @Date: 2021-12-03 11:10:14
|
||||||
* @LastEditTime : 2022-03-21 14:53:06
|
* @LastEditTime : 2022-03-24 17:32:49
|
||||||
* @LastEditors : Shiming
|
* @LastEditors : Shiming
|
||||||
* @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\\waybill-management\\components\\vehicle\\vehicle.component.html
|
* @FilePath : \\tms-obc-web\\src\\app\\routes\\waybill-management\\components\\vehicle\\vehicle.component.html
|
||||||
@ -77,8 +77,8 @@
|
|||||||
<div> {{ item?.payeeName }}/{{ item?.payeePhone }} </div>
|
<div> {{ item?.payeeName }}/{{ item?.payeePhone }} </div>
|
||||||
</ng-template>
|
</ng-template>
|
||||||
<ng-template st-row="billExpenseDetailVOList2" let-item let-index="index">
|
<ng-template st-row="billExpenseDetailVOList2" let-item let-index="index">
|
||||||
<div *ngIf="item?.billExpenseDetailVOList?.length > 0">
|
<div *ngIf="item?.mybidInfo?.length > 0">
|
||||||
<p *ngFor="let data of item?.billExpenseDetailVOList"> {{ data?.costName }}:{{ data?.price | currency }} </p>
|
<p *ngFor="let data of item?.mybidInfo"> {{ data?.expenseName }}:{{ data?.price | currency }} </p>
|
||||||
</div>
|
</div>
|
||||||
</ng-template>
|
</ng-template>
|
||||||
<ng-template st-row="billExpenseDetailVOList" let-item let-index="index">
|
<ng-template st-row="billExpenseDetailVOList" let-item let-index="index">
|
||||||
|
|||||||
@ -2,7 +2,7 @@ import { WaybillManagementBulkComponent } from './../components/bulk/bulk.compon
|
|||||||
/*
|
/*
|
||||||
* @Author: your name
|
* @Author: your name
|
||||||
* @Date: 2021-12-07 14:52:29
|
* @Date: 2021-12-07 14:52:29
|
||||||
* @LastEditTime : 2022-03-11 17:26:20
|
* @LastEditTime : 2022-03-24 15:17:57
|
||||||
* @LastEditors : Shiming
|
* @LastEditors : Shiming
|
||||||
* @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\\waybill-management\\services\\waybill-management.service.ts
|
* @FilePath : \\tms-obc-web\\src\\app\\routes\\waybill-management\\services\\waybill-management.service.ts
|
||||||
@ -49,10 +49,12 @@ export class WaybillManagementServe extends BaseService {
|
|||||||
// 查询CRM客户信息表
|
// 查询CRM客户信息表
|
||||||
$api_get_crmCustomer_page = '/api/mdc/cuc/crmCustomer/list/page';
|
$api_get_crmCustomer_page = '/api/mdc/cuc/crmCustomer/list/page';
|
||||||
|
|
||||||
// 查询运营端未回复异常上报
|
// 查询运营端异常上报
|
||||||
$api_get_listOperatePage = '/api/sdc/exceptionReport/listOperateUnReplyPage';
|
$api_get_listOperatePage = '/api/sdc/exceptionReport/listOperatePage';
|
||||||
// 查询运营端已回复异常上报
|
// 查询运营端异常上报数据统计
|
||||||
$api_get_listOperateReplyPage = '/api/sdc/exceptionReport/listOperateReplyPage';
|
$api_get_listOperateStatus = '/api/sdc/exceptionReport/listOperateStatus';
|
||||||
|
// // 查询运营端已回复异常上报
|
||||||
|
// $api_get_listOperateReplyPage = '/api/sdc/exceptionReport/listOperateReplyPage';
|
||||||
// 获取轨迹
|
// 获取轨迹
|
||||||
$api_get_getTrajectory = `/api/sdc/billShipper/getTrajectoryByBillId`;
|
$api_get_getTrajectory = `/api/sdc/billShipper/getTrajectoryByBillId`;
|
||||||
// 获取订单司机轨迹
|
// 获取订单司机轨迹
|
||||||
|
|||||||
@ -152,16 +152,16 @@ export class EAUserService extends BaseService {
|
|||||||
* 加载用户菜单
|
* 加载用户菜单
|
||||||
*/
|
*/
|
||||||
async loadUserMenus() {
|
async loadUserMenus() {
|
||||||
// return this.asyncRequest(this.$api_get_user_menus, {
|
return this.asyncRequest(this.$api_get_user_menus, {
|
||||||
// appId: this.envSrv.getEnvironment().appId
|
appId: this.envSrv.getEnvironment().appId
|
||||||
// }).then(res => {
|
}).then(res => {
|
||||||
// this.cacheSrv.set(cacheConf.menu, res);
|
this.cacheSrv.set(cacheConf.menu, res);
|
||||||
// this.menuService.add(res);
|
this.menuService.add(res);
|
||||||
// });
|
|
||||||
this.request('assets/mocks/menu-data.json', {}, 'GET').subscribe((res: any) => {
|
|
||||||
this.cacheSrv.set(cacheConf.menu, res.menu);
|
|
||||||
this.menuService.add(res.menu);
|
|
||||||
});
|
});
|
||||||
|
// this.request('assets/mocks/menu-data.json', {}, 'GET').subscribe((res: any) => {
|
||||||
|
// this.cacheSrv.set(cacheConf.menu, res.menu);
|
||||||
|
// this.menuService.add(res.menu);
|
||||||
|
// });
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -61,13 +61,12 @@ export class EAFromToWidget extends ControlWidget implements OnInit {
|
|||||||
}
|
}
|
||||||
|
|
||||||
onChange(result: Array<any>): void {
|
onChange(result: Array<any>): void {
|
||||||
console.log('onChange: ', result);
|
// console.log('onChange: ', result);
|
||||||
|
|
||||||
if (this.type === 'date') {
|
if (this.type === 'date') {
|
||||||
if (JSON.stringify(result) !== '[]') {
|
if (JSON.stringify(result) !== '[]') {
|
||||||
this.setValue({ start: format(result[0], this.format), end: format(result[1], this.format) });
|
this.setValue({ start: format(result[0], this.format), end: format(result[1], this.format) });
|
||||||
} else {
|
} else {
|
||||||
this.setValue(null);
|
this.setValue({ start: '', end: '' });
|
||||||
}
|
}
|
||||||
} else if (this.type === 'number') {
|
} else if (this.type === 'number') {
|
||||||
} else {
|
} else {
|
||||||
@ -82,4 +81,8 @@ export class EAFromToWidget extends ControlWidget implements OnInit {
|
|||||||
_change(value: string): void {
|
_change(value: string): void {
|
||||||
this.setValue(value);
|
this.setValue(value);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
reset(value: string) {
|
||||||
|
this.date = [];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,3 +1,13 @@
|
|||||||
|
/*
|
||||||
|
* @Description :
|
||||||
|
* @Version : 1.0
|
||||||
|
* @Author : Shiming
|
||||||
|
* @Date : 2021-11-29 10:04:12
|
||||||
|
* @LastEditors : Shiming
|
||||||
|
* @LastEditTime : 2022-03-24 18:18:00
|
||||||
|
* @FilePath : \\tms-obc-web\\src\\app\\shared\\widget\\tinymce\\tinymce.widget.ts
|
||||||
|
* Copyright (C) 2022 huzhenhong. All rights reserved.
|
||||||
|
*/
|
||||||
import { Component, OnInit } from '@angular/core';
|
import { Component, OnInit } from '@angular/core';
|
||||||
import { ControlWidget } from '@delon/form';
|
import { ControlWidget } from '@delon/form';
|
||||||
|
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@ -10,12 +10,12 @@
|
|||||||
// ==========Custom brand visual color==========
|
// ==========Custom brand visual color==========
|
||||||
|
|
||||||
.error-color {
|
.error-color {
|
||||||
color: #ff4d4f;
|
color: #ff4d4f;
|
||||||
}
|
}
|
||||||
|
|
||||||
@primary-color : #F5222D;
|
@primary-color : #F5222D;
|
||||||
@font-size-base: 15px;
|
@font-size-base: 15px;
|
||||||
|
|
||||||
.page-header__title {
|
// .page-header__title {
|
||||||
display: none;
|
// display: none;
|
||||||
}
|
// }
|
||||||
|
|||||||
Reference in New Issue
Block a user