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

This commit is contained in:
潘晓云
2022-04-14 17:06:00 +08:00
62 changed files with 746 additions and 441 deletions

View File

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

View File

@ -4,10 +4,13 @@ import { cacheConf } from '@conf/cache.conf';
import { sysConf } from '@conf/sys.conf'; import { sysConf } from '@conf/sys.conf';
import { ACLService } from '@delon/acl'; import { ACLService } from '@delon/acl';
import { MenuService, SettingsService, TitleService, _HttpClient } from '@delon/theme'; import { MenuService, SettingsService, TitleService, _HttpClient } from '@delon/theme';
import { AlainConfigService } from '@delon/util';
import { environment } from '@env/environment'; import { environment } from '@env/environment';
import { AmapService, EACacheService, EAUserService } from '@shared'; import { AmapService, EACacheService, EAUserService } from '@shared';
import { NzSafeAny } from 'ng-zorro-antd/core/types'; import { NzSafeAny } from 'ng-zorro-antd/core/types';
import { NzIconService } from 'ng-zorro-antd/icon'; import { NzIconService } from 'ng-zorro-antd/icon';
import { NzImageService } from 'ng-zorro-antd/image';
import { NzUploadFile } from 'ng-zorro-antd/upload';
import { Observable, zip } from 'rxjs'; import { Observable, zip } from 'rxjs';
import { catchError, map } from 'rxjs/operators'; import { catchError, map } from 'rxjs/operators';
@ -31,10 +34,22 @@ export class StartupService {
private userSrv: EAUserService, private userSrv: EAUserService,
private amapService: AmapService, private amapService: AmapService,
public cacheSrv: EACacheService, public cacheSrv: EACacheService,
private coreSrv: CoreService private coreSrv: CoreService,
private nzImageService: NzImageService,
private alainConfigService: AlainConfigService
) { ) {
iconSrv.addIcon(...ICONS_AUTO, ...ICONS); iconSrv.addIcon(...ICONS_AUTO, ...ICONS);
this.settingService.setLayout('fixSiderbar', true); this.settingService.setLayout('fixSiderbar', true);
// 全局修改sf图片预览方式
alainConfigService.set('sf', {
ui: {
preview: (file: NzUploadFile) => {
if (file.url) {
this.nzImageService.preview([{ src: file.url }]);
}
}
}
});
} }
// TODO: 退出登录时需要清理用户信息 // TODO: 退出登录时需要清理用户信息

View File

@ -4,7 +4,7 @@
* @Author : Shiming * @Author : Shiming
* @Date : 2022-04-06 13:20:56 * @Date : 2022-04-06 13:20:56
* @LastEditors : Shiming * @LastEditors : Shiming
* @LastEditTime : 2022-04-06 20:24:20 * @LastEditTime : 2022-04-14 15:43:56
* @FilePath : \\tms-obc-web\\src\\app\\routes\\datatable\\components\\customtable\\customindex\\customindex.component.html * @FilePath : \\tms-obc-web\\src\\app\\routes\\datatable\\components\\customtable\\customindex\\customindex.component.html
* Copyright (C) 2022 huzhenhong. All rights reserved. * Copyright (C) 2022 huzhenhong. All rights reserved.
--> -->
@ -12,19 +12,19 @@
<page-header-wrapper [title]="'客户报表'"></page-header-wrapper> <page-header-wrapper [title]="'客户报表'"></page-header-wrapper>
<div nz-row [nzGutter]="16"> <div nz-row [nzGutter]="16">
<div nz-col class="gutter-row" [nzSpan]="6"> <div nz-col class="gutter-row" [nzSpan]="6">
<g2-card [title]="'货主'" [bordered]="true" [total]="hzData?.total" [footer]="'已认证' + ' ' + hzData?.auditPassTotal" contentHeight="46"> <g2-card [title]="'货主'" [bordered]="true" [total]="hzData?.total || '0'" [footer]="'已认证' + ' ' + hzData?.auditPassTotal" contentHeight="46">
</g2-card> </g2-card>
</div> </div>
<div nz-col class="gutter-row" [nzSpan]="6"> <div nz-col class="gutter-row" [nzSpan]="6">
<g2-card [title]="'合伙人'" [bordered]="true" [total]="hhrData?.total" [footer]="'已认证' + ' ' + hhrData?.auditPassTotal" contentHeight="46"> <g2-card [title]="'合伙人'" [bordered]="true" [total]="hhrData?.total || '0'" [footer]="'已认证' + ' ' + hhrData?.auditPassTotal" contentHeight="46">
</g2-card> </g2-card>
</div> </div>
<div nz-col class="gutter-row" [nzSpan]="6"> <div nz-col class="gutter-row" [nzSpan]="6">
<g2-card [title]="'司机'" [bordered]="true" [total]="sjData?.total" [footer]="'已认证' + ' ' + sjData?.auditPassTotal" contentHeight="46"> <g2-card [title]="'司机'" [bordered]="true" [total]="sjData?.total || '0'" [footer]="'已认证' + ' ' + sjData?.auditPassTotal" contentHeight="46">
</g2-card> </g2-card>
</div> </div>
<div nz-col class="gutter-row" [nzSpan]="6"> <div nz-col class="gutter-row" [nzSpan]="6">
<g2-card [title]="'车辆'" [bordered]="true" [total]="clData?.total" [footer]="'已认证' + ' '+ clData?.auditPassTotal" contentHeight="46"> <g2-card [title]="'车辆'" [bordered]="true" [total]="clData?.total || '0'" [footer]="'已认证' + ' '+ clData?.auditPassTotal" contentHeight="46">
</g2-card> </g2-card>
</div> </div>
</div> </div>

View File

@ -38,10 +38,12 @@ export class DatatableCustomindexComponent implements OnInit {
{ title: '未激活用户数', index: 'notActivationTotal', className: 'text-center' }, { title: '未激活用户数', index: 'notActivationTotal', className: 'text-center' },
{ title: '沉默用户数', index: 'silentTotal', className: 'text-center' }, { title: '沉默用户数', index: 'silentTotal', className: 'text-center' },
{ title: '流失用户数', index: 'drainTotal', className: 'text-center' }, { title: '流失用户数', index: 'drainTotal', className: 'text-center' },
{ title: '流失率', index: 'drainRate', className: 'text-center',format: (item: any) => {return (item?.drainRate)*100 + '%' }} { title: '流失率', index: 'drainRate', className: 'text-center',format: (item: any) => {return ((item?.drainRate)*100).toFixed(2) + '%' }}
]; ];
hzData: any; hzData: any;
hhrData: any; hhrData: any = {
total: 0
};
sjData: any; sjData: any;
clData: any; clData: any;
reportData: any = []; reportData: any = [];
@ -114,7 +116,10 @@ export class DatatableCustomindexComponent implements OnInit {
}); });
this.service.request(this.service.$api_statistics_total, { type: 2 }).subscribe(res => { this.service.request(this.service.$api_statistics_total, { type: 2 }).subscribe(res => {
if (res) { if (res) {
this.hhrData = res; this.hhrData = res;
console.log(this.hhrData);
} }
}); });
this.service.request(this.service.$api_statistics_total, { type: 3 }).subscribe(res => { this.service.request(this.service.$api_statistics_total, { type: 3 }).subscribe(res => {

View File

@ -4,23 +4,26 @@
* @Author : Shiming * @Author : Shiming
* @Date : 2022-04-06 10:57:56 * @Date : 2022-04-06 10:57:56
* @LastEditors : Shiming * @LastEditors : Shiming
* @LastEditTime : 2022-04-13 15:20:32 * @LastEditTime : 2022-04-14 15:48:32
* @FilePath : \\tms-obc-web\\src\\app\\routes\\datatable\\components\\datascreen\\datascreen.component.html * @FilePath : \\tms-obc-web\\src\\app\\routes\\datatable\\components\\datascreen\\datascreen.component.html
* Copyright (C) 2022 huzhenhong. All rights reserved. * Copyright (C) 2022 huzhenhong. All rights reserved.
--> -->
<!-- 页头 --> <!-- 页头 -->
<!-- <page-header-wrapper [title]="'运营报表'"></page-header-wrapper> --> <!-- <page-header-wrapper [title]="'运营报表'"></page-header-wrapper> -->
<div> <div>
<div style="position: relative;"> <div style="position: relative">
<h1 style="display: flex; justify-content: center; align-items: center;margin: 0; padding: 0; font-size: 25px;font-weight: 700;">运多星网络货运平台</h1> <h1 style="display: flex; justify-content: center; align-items: center; margin: 0; padding: 0; font-size: 20px; font-weight: 700"
<div style="position: absolute; right: 0; display: flex;"> >运多星网络货运平台</h1
<img src="../../../../../assets/images/oclock.svg" alt="">&nbsp; >
<span style="font-size: 16px; margin-top: 5px;">{{todayTime}}</span> <div style="position: absolute; right: 0; display: flex">
<img src="../../../../../assets/images/oclock.svg" alt="" />&nbsp;
<span style="font-size: 16px; margin-top: 5px">{{ todayTime }}</span>
</div> </div>
</div> </div>
<h1 style="display: flex; justify-content: center; align-items: center;margin: 0; padding: 0;font-size: 25px;font-weight: 700;">实时交易监控</h1> <h1 style="display: flex; justify-content: center; align-items: center; padding: 0; font-size: 20px; font-weight: 700"
>实时交易监控</h1
>
</div> </div>
<div nz-row [nzGutter]="24"> <div nz-row [nzGutter]="24">
<div nz-col class="gutter-row" nzXs="12" nzSm="12" nzMd="12" nzLg="12" nzXl="8" nzXXl="8"> <div nz-col class="gutter-row" nzXs="12" nzSm="12" nzMd="12" nzLg="12" nzXl="8" nzXXl="8">
@ -43,15 +46,14 @@
</nz-row> </nz-row>
</nz-card> </nz-card>
<nz-card nzTitle="本月交易趋势"> <nz-card nzTitle="本月交易趋势">
<app-financetable-curve-min #curve [chartData]='chartData2'></app-financetable-curve-min> <app-financetable-curve-min #curve [chartData]="chartData2"></app-financetable-curve-min>
</nz-card> </nz-card>
<nz-card nzTitle="实时货源"> <nz-card nzTitle="实时货源" style="height: 400px">
<st <st
#st #st
multiSort multiSort
bordered
[columns]="columns" [columns]="columns"
[scroll]="{ y: '320px' }" [scroll]="{ y: '280px' }"
[data]="service.$api_getRealTimeSupply" [data]="service.$api_getRealTimeSupply"
[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' } }" [res]="{ reName: { list: 'data' } }"
@ -86,10 +88,12 @@
</nz-col> </nz-col>
</nz-row> </nz-row>
</nz-card> </nz-card>
<div style="min-height: 550px">
<app-datatable-customindex-map style="max-height: 680px" #map [chartData]="chartData"></app-datatable-customindex-map> <app-datatable-customindex-map style="max-height: 680px" #map [chartData]="chartData"></app-datatable-customindex-map>
</div>
<nz-card> <nz-card>
<nz-row [nzGutter]="24"> <nz-row [nzGutter]="24">
<g2-bar #bar height="310" [delay]='500' repaint='true' [title]="'本月发货量排名'" [data]="salesData2" (ready)='genData()'></g2-bar> <g2-bar #bar height="350" [delay]="300" repaint="true" [title]="'本月发货量排名'" [data]="salesData2" (ready)="genData()"></g2-bar>
</nz-row> </nz-row>
</nz-card> </nz-card>
</div> </div>
@ -152,12 +156,11 @@
</nz-col> </nz-col>
</nz-row> </nz-row>
</nz-card> </nz-card>
<nz-card nzTitle="实时运单风控"> <nz-card nzTitle="实时运单风控" style="height: 400px">
<st <st
#st #st
multiSort multiSort
bordered [scroll]="{ y: '280px' }"
[scroll]="{y: '290px'}"
[columns]="orderColumns" [columns]="orderColumns"
[data]="service.$api_getRealTimeWaybillRiskControl" [data]="service.$api_getRealTimeWaybillRiskControl"
[req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, params: reqOrderParams }" [req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, params: reqOrderParams }"

View File

@ -5,7 +5,11 @@
font-weight: bold; font-weight: bold;
} }
.nz-statistic-number,.ant-statistic-content-value { .nz-statistic-number,.ant-statistic-content-value {
font-size: 20px; font-size: 14px;
}
.ant-table-thead > tr > th, .ant-table-tbody > tr > td, .ant-table tfoot > tr > th, .ant-table tfoot > tr > td {
padding: 0;
font-size: 12px;
} }
} }
} }

View File

@ -5,7 +5,7 @@ import { map } from 'rxjs/operators';
* @Author : Shiming * @Author : Shiming
* @Date : 2022-04-06 10:57:56 * @Date : 2022-04-06 10:57:56
* @LastEditors : Shiming * @LastEditors : Shiming
* @LastEditTime : 2022-04-13 10:25:50 * @LastEditTime : 2022-04-14 16:21:00
* @FilePath : \\tms-obc-web\\src\\app\\routes\\datatable\\components\\datascreen\\datascreen.component.ts * @FilePath : \\tms-obc-web\\src\\app\\routes\\datatable\\components\\datascreen\\datascreen.component.ts
* Copyright (C) 2022 huzhenhong. All rights reserved. * Copyright (C) 2022 huzhenhong. All rights reserved.
*/ */
@ -44,7 +44,7 @@ export class DatatableDatascreenComponent implements OnInit {
monthData: G2TimelineData[] = []; monthData: G2TimelineData[] = [];
monthData2:G2TimelineData[] =[]; monthData2:G2TimelineData[] =[];
salesData2: Array<any> = this.genData(); salesData2: Array<any> = [];
constructor(public service: DataService) {} constructor(public service: DataService) {}
ngOnChanges(changes: any): void { ngOnChanges(changes: any): void {
console.log(changes); console.log(changes);
@ -81,6 +81,7 @@ export class DatatableDatascreenComponent implements OnInit {
this.service.request(this.service.$api_getAnnualTransactions).subscribe((res: any) => { this.service.request(this.service.$api_getAnnualTransactions).subscribe((res: any) => {
this.allDeal = res; this.allDeal = res;
}); });
this.initPillarData()
this.service.request(this.service.$api_getTransactionAmount).subscribe((res: any) => { this.service.request(this.service.$api_getTransactionAmount).subscribe((res: any) => {
this.headDeal = res; this.headDeal = res;
}); });
@ -105,7 +106,7 @@ export class DatatableDatascreenComponent implements OnInit {
} }
}); });
} }
public genData(): G2MiniAreaData[] { genData(): any{
let value: any = []; let value: any = [];
this.service.request(this.service.$api_getShipmentRanking).subscribe((res: any) => { this.service.request(this.service.$api_getShipmentRanking).subscribe((res: any) => {
console.log(res); console.log(res);
@ -115,32 +116,32 @@ export class DatatableDatascreenComponent implements OnInit {
y: element.weight y: element.weight
}); });
}); });
this.salesData2 = value
}); });
console.log(value);
return value;
} }
initPillarData(){ initPillarData(){
this.curve.reRender() // this.curve.reRender()
this.genData();
} }
/** /**
* 初始化数据列表 * 初始化数据列表
*/ */
initST() { initST() {
this.columns = [ this.columns = [
{ title: '序号', render: 'index', className: 'text-center', width: '70px', }, { title: '序号', render: 'index', className: 'text-center', },
{ title: '发货地', index: 'loadAddress', className: 'text-center', width: '90px' }, { title: '发货地', index: 'loadAddress', className: 'text-center', },
{ title: '卸货地', index: 'dischargeAddress', className: 'text-center', width: '90px' }, { title: '卸货地', index: 'dischargeAddress', className: 'text-center',},
{ title: '货物', index: 'goodsName', className: 'text-center', width: '90px' }, { title: '货物', index: 'goodsName', className: 'text-center', },
{ title: '数量', render: 'weight', className: 'text-center', width: '120px' } { title: '数量', render: 'weight', className: 'text-center',}
]; ];
} }
initOrderST() { initOrderST() {
this.orderColumns = [ this.orderColumns = [
{ title: '运单号', index: 'wayCode', className: 'text-center', width: '150px' }, { title: '运单号', index: 'wayCode', className: 'text-center', },
{ title: '司机/车辆', index: 'carNo', className: 'text-center', width: '120px' }, { title: '司机/车辆', index: 'carNo', className: 'text-center', },
{ title: '货主', index: 'shipperName', className: 'text-center', width: '200px' }, { title: '货主', index: 'shipperName', className: 'text-center', },
{ title: '时间', index: 'createTime', className: 'text-center', width: '200px' }, { title: '时间', index: 'createTime', className: 'text-center', },
{ title: '异常预警', index: 'warningTypeLabel', className: 'text-center', width: '120px' } { title: '异常预警', index: 'warningTypeLabel', className: 'text-center',}
]; ];
} }

View File

@ -22,7 +22,7 @@ export class DatatableCustomindexMapComponent implements OnInit, OnChanges, Afte
constructor(private service: DataService, private ngZone: NgZone) {} constructor(private service: DataService, private ngZone: NgZone) {}
ngAfterViewInit(): void { ngAfterViewInit(): void {
this.map.el.nativeElement.style.height = this.map.el.nativeElement.clientWidth + 'px' this.map.el.nativeElement.style.height = this.map.el.nativeElement.clientWidth + 'px'
this.chart.render(); this.chart?.render();
} }
ngOnChanges(changes: SimpleChanges): void { ngOnChanges(changes: SimpleChanges): void {
@ -35,7 +35,6 @@ export class DatatableCustomindexMapComponent implements OnInit, OnChanges, Afte
ngOnInit(): void {} ngOnInit(): void {}
reRender() { reRender() {
console.log('5454545');
setTimeout(() => { setTimeout(() => {
this.chart.render(); this.chart.render();
}, 1000); }, 1000);
@ -75,7 +74,6 @@ export class DatatableCustomindexMapComponent implements OnInit, OnChanges, Afte
this.chart.legend('trend', { this.chart.legend('trend', {
position: 'left' position: 'left'
}); });
console.log('8888');
// 绘制世界地图背景 // 绘制世界地图背景
this.ds = new DataSet(); this.ds = new DataSet();
@ -95,11 +93,10 @@ export class DatatableCustomindexMapComponent implements OnInit, OnChanges, Afte
if(res) { if(res) {
res.forEach((element: any) => { res.forEach((element: any) => {
value.push({ value.push({
name: element.province, '省份': element.province,
value: element.weight, '订单数': element.weight,
}); });
}); });
console.log(value);
this.userData = value this.userData = value
if (!(this.userData instanceof Array) || this.userData.length === 0) { if (!(this.userData instanceof Array) || this.userData.length === 0) {
@ -107,17 +104,18 @@ if (!(this.userData instanceof Array) || this.userData.length === 0) {
} }
this.userDv = this.ds.createView().source(this.userData).transform({ this.userDv = this.ds.createView().source(this.userData).transform({
geoDataView: this.worldMap, geoDataView: this.worldMap,
field: 'name', field: '省份',
type: 'geo.region', type: 'geo.region',
as: ['longitude', 'latitude'] as: ['longitude', 'latitude']
}).transform({ }).transform({
type: 'map', type: 'map',
callback: (obj: { trend: string; value: number }) => { callback: (obj: { trend: string; 订单数: number }) => {
if(obj.value < 500) {
if(obj. < 500) {
obj.trend = '500以下'; obj.trend = '500以下';
} else if(obj.value >= 500 && obj.value < 1000){ } else if(obj. >= 500 && obj. < 1000){
obj.trend = '500-1000'; obj.trend = '500-1000';
} else if(obj.value >= 1000 ){ } else if(obj. >= 1000 ){
obj.trend = '>1000'; obj.trend = '>1000';
} }
return obj; return obj;
@ -127,13 +125,10 @@ if (!(this.userData instanceof Array) || this.userData.length === 0) {
this.userView.data(this.userDv.rows); this.userView.data(this.userDv.rows);
this.userView.scale({ this.userView.scale({
trend: { trend: {
alias: '蓝色地区数量' alias: '订单交易数量'
} }
}); });
console.log(this.userView); this.userView.polygon().position('longitude*latitude').color('trend', ['#0a3f80', '#1b6aca', '#5d93d4']).tooltip('省份*订单数').style({fillOpacity: 0.85 })
console.log('45545');
this.userView.polygon().position('longitude*latitude').color('trend', ['#0a3f80', '#1b6aca', '#5d93d4']).tooltip('name*trend*value').style({fillOpacity: 0.85 })
.animate({ .animate({
leave: { leave: {
animation: 'fade-out' animation: 'fade-out'
@ -145,10 +140,6 @@ if (!(this.userData instanceof Array) || this.userData.length === 0) {
} }
}) })
}); });
console.log('9999');
} }
} }

View File

@ -105,7 +105,7 @@ export class DatatableOrderReportingComponent implements OnInit {
placeholder: '请输入', placeholder: '请输入',
}, },
}, },
enterpriseInfoId: { networkTransporter: {
title: '网络货运人', title: '网络货运人',
type: 'string', type: 'string',
ui: { ui: {

View File

@ -0,0 +1,55 @@
<page-header-wrapper [title]="'异常入金详情'" [logo]="logo">
<ng-template #logo>
<button nz-button nz-tooltip nzTooltipTitle="返回上一页" (click)="goBack()">
<i nz-icon nzType="left" nzTheme="outline"></i>
</button>
</ng-template>
</page-header-wrapper>
<nz-card [nzLoading]="service.http.loading">
<div se-container [labelWidth]="130">
<se label="网络货运人">
{{formData?.ltdName}}
</se>
<se label="银行类型">
{{formData?.bankTypeLabel}}
</se>
<se label="资金总账号">
{{formData?.virtualAccount}}
</se>
<se label="付款账户">
{{formData?.transferBankAccount}}
</se>
<se label="入金金额">
{{formData?.rechargeAmount | currency}}
</se>
<se label="付款银行">
{{formData?.transferBankOpenName}}
</se>
<se label="入金状态">
{{formData?.rechargeStatusLabel}}
</se>
<se label="备注">
{{formData?.rechargeRemark}}
</se>
<se label="入金时间">
{{formData?.createTime}}
</se>
<se label="退款时间">
{{formData?.refundTime}}
</se>
<se label="入金流水号">
{{formData?.paySerialNumber}}
</se>
<se label="退款流水号">
{{formData?.paySerialNumber2}}
</se>
<!-- <se label="入金回单">
<a (click)="downBack('06',formData?.receiptUrl)">{{formData?.refundStatus==='3'?'查看回单':'暂无回单'}}</a>
</se>
<se label="退款回单">
<a (click)="downBack('06',formData?.receiptAbnormalUrl)">{{formData?.refundStatus==='3'?'查看回单':'暂无回单'}}</a>
</se> -->
</div>
</nz-card>

View File

@ -0,0 +1,45 @@
import { Component, OnInit } from '@angular/core';
import { ActivatedRoute } from '@angular/router';
import { FreightAccountService } from '../../../services/freight-account.service';
@Component({
selector: 'app-abnormal-gold-detail',
templateUrl: './abnormal-gold-detail.component.html',
styleUrls: ['./abnormal-gold-detail.component.less']
})
export class AbnormalGoldDetailComponent implements OnInit {
formData: any = {};
constructor(public service: FreightAccountService, private route: ActivatedRoute) {
const id = route.snapshot.params.id;
this.loadRefundDetail(id);
}
ngOnInit(): void {}
loadRefundDetail(id: string) {
this.service.request(this.service.$api_get_getAbnormalAmount_detail, { id }).subscribe(res => {
if (res) {
this.formData = res;
}
});
}
downBack(bussType: string, receiptUrl: string) {
if (this.formData?.refundStatus !== '3') {
return;
}
this.service.getReceiptUrl(receiptUrl, {
bankType: this.formData.bankType,
rmYll: this.formData.userId,
snglFlgCd: this.formData.coreSerNo,
bussType,
ltdId: this.formData.ltdId,
accountType: this.formData.accountType
});
}
goBack() {
history.go(-1);
}
}

View File

@ -4,7 +4,7 @@
* @Author : Shiming * @Author : Shiming
* @Date : 2022-04-06 10:57:56 * @Date : 2022-04-06 10:57:56
* @LastEditors : Shiming * @LastEditors : Shiming
* @LastEditTime : 2022-04-11 14:23:35 * @LastEditTime : 2022-04-14 10:39:57
* @FilePath : \\tms-obc-web\\src\\app\\routes\\financial-management\\components\\abnormal-gold\\abnormal-gold.component.html * @FilePath : \\tms-obc-web\\src\\app\\routes\\financial-management\\components\\abnormal-gold\\abnormal-gold.component.html
* Copyright (C) 2022 huzhenhong. All rights reserved. * Copyright (C) 2022 huzhenhong. All rights reserved.
--> -->
@ -16,7 +16,7 @@
<sf <sf
#sf #sf
[schema]="searchSchema" [schema]="searchSchema"
[ui]="{ '*': { spanLabelFixed: 90, grid: { lg: 8, md: 12, sm: 12, xs: 24 } } }" [ui]="{ '*': { spanLabelFixed: 110, grid: { lg: 8, md: 12, sm: 12, xs: 24 } } }"
[compact]="true" [compact]="true"
[button]="'none'" [button]="'none'"
></sf> ></sf>
@ -35,10 +35,9 @@
<nz-card class="content-box" nzBordered> <nz-card class="content-box" nzBordered>
<nz-tabset> <nz-tabset>
<nz-tab nzTitle="处理"></nz-tab> <nz-tab nzTitle="处理中"(nzClick)="changePaymentStatus('1')"></nz-tab>
<nz-tab nzTitle="已清分"></nz-tab> <nz-tab nzTitle="已退款"(nzClick)="changePaymentStatus('5')"></nz-tab>
<nz-tab nzTitle="已退款"></nz-tab> <nz-tab nzTitle="全部"(nzClick)="changePaymentStatus('')"></nz-tab>
<nz-tab nzTitle="全部"></nz-tab>
</nz-tabset> </nz-tabset>
<st <st

View File

@ -1,37 +0,0 @@
:host::ng-deep {
.search-box {
.ant-card-body {
padding-bottom: 18px;
}
}
.content-box {
.ant-card-body {
padding-top: 0;
}
}
nz-range-picker {
width: 100%;
}
.ant-tabs-tab-btn {
padding-left : 16px;
padding-right: 16px;
}
}
.expend-options {
margin-top: 0px;
}
@media (min-width: 1200px) {
.expend-options {
max-width: 400px;
position : absolute;
right : 0;
bottom : 25px;
}
}

View File

@ -9,7 +9,7 @@ import { ClearingModalComponent } from './clearing-modal/clearing-modal.componen
@Component({ @Component({
selector: 'app-abnormal-gold', selector: 'app-abnormal-gold',
templateUrl: './abnormal-gold.component.html', templateUrl: './abnormal-gold.component.html',
styleUrls: ['./abnormal-gold.component.less'] styleUrls: ['../../../commom/less/box.less', '../../../commom/less/expend-but.less']
}) })
export class AbnormalGoldComponent implements OnInit { export class AbnormalGoldComponent implements OnInit {
@ViewChild('st', { static: true }) @ViewChild('st', { static: true })
@ -21,17 +21,24 @@ export class AbnormalGoldComponent implements OnInit {
_$expand = false; _$expand = false;
rechargeStatus = '1';
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) => {
Object.assign(requestOptions.body, { rechargeStatus: this.rechargeStatus });
if (this.sf) { if (this.sf) {
Object.assign(requestOptions.body, { ...this.sf.value }); Object.assign(requestOptions.body, { ...this.sf.value });
} }
return requestOptions; return requestOptions;
}; };
changePaymentStatus(status: string) {
this.rechargeStatus = status;
this.st.load(1);
}
refund(item: any) { refund(item: any) {
this.nzModalService.warning({ this.nzModalService.warning({
nzTitle: '确定要将该笔款项原路退回?', nzTitle: '确定要将该笔款项原路退回?',
@ -101,7 +108,7 @@ export class AbnormalGoldComponent implements OnInit {
], ],
ui: { ui: {
widget: 'select', widget: 'select',
placeholder: '请选择', placeholder: '请选择'
}, },
default: '' default: ''
}, },
@ -154,36 +161,36 @@ export class AbnormalGoldComponent implements OnInit {
private initST(): STColumn[] { private initST(): STColumn[] {
return [ return [
{ title: '银行流水号', index: 'paySerialNumber', width: 150 }, { title: '银行流水号', index: 'paySerialNumber', width: 180 },
{ title: '网络货运人', index: 'ltdId', width: 120 }, { title: '网络货运人', index: 'ltdName', width: 220 },
{ title: '银行类型', index: 'callNo', width: 100, type: 'enum', enum: { 1: '平安银行', 2: '浦发银行' } }, { title: '银行类型', index: 'bankTypeLabel', width: 100 },
{ title: '资金总账号', index: 'callNo', width: 120 }, { title: '资金总账号', index: 'virtualAccount', width: 180 },
{ title: '充值金额', index: 'rechargeAmount', width: 100 }, {
{ title: '付款账户', index: 'transferBankAccount', width: 100 }, title: '充值金额',
{ title: '付款账号', index: 'transferBankCardNumber', width: 100 }, index: 'rechargeAmount',
{ title: '付款银行', index: 'transferBankOpenName', width: 100 }, width: 140,
{ title: '转账时间', index: 'transferDate', type: 'date', width: 150 }, type: 'widget',
{ title: '转账备注', index: 'rechargeRemark', width: 100 }, className: 'text-right',
{ title: '操作人', index: 'rechargeName', width: 90 }, widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.rechargeAmount }) }
{ title: '操作时间', index: 'callNo', type: 'date', width: 150 }, },
{ title: '状态', index: 'callNo', width: 90 }, { title: '付款账户', index: 'transferBankAccount', width: 180 },
{ title: '付款账号', index: 'transferBankCardNumber', width: 180 },
{ title: '付款银行', index: 'transferBankOpenName', width: 220 },
{ title: '转账时间', index: 'createTime', type: 'date', width: 150 },
{ title: '转账备注', index: 'rechargeRemark', width: 180 },
{ title: '退款时间', index: 'refundTime', type: 'date', width: 150 },
// { title: '操作人', index: 'rechargeName', width: 140 },
// { title: '操作时间', index: 'callNo', type: 'date', width: 160 },
{ title: '状态', index: 'rechargeStatusLabel', width: 110 },
{ {
title: '操作', title: '操作',
fixed: 'right', fixed: 'right',
className: 'text-center', className: 'text-center',
width: 120, width: 120,
buttons: [ buttons: [
{
text: '清分',
click: item => this.clearingAction(item)
},
{
text: '退款',
click: item => this.refund(item)
},
{ {
text: '查看', text: '查看',
click: item => this.router.navigate(['/financial-management/withdrawals-record/detail/1']) click: item => this.router.navigate(['/financial-management/abnormal-gold/detail/' + item.id])
} }
] ]
} }

View File

@ -36,7 +36,7 @@ export class DriverAccountDetailComponent implements OnInit {
projectId: this.params.projectId, projectId: this.params.projectId,
enterpriseId: this.params.enterpriseId, enterpriseId: this.params.enterpriseId,
roleId: this.params.roleId, roleId: this.params.roleId,
bankType: this.params.bankType, bankType: this.params.bankType
}); });
if (this.sf) { if (this.sf) {
Object.assign(requestOptions.body, { Object.assign(requestOptions.body, {
@ -76,7 +76,22 @@ export class DriverAccountDetailComponent implements OnInit {
stChange(e: STChange): void {} stChange(e: STChange): void {}
exportList() { exportList() {
this.service.exportStart( { ...this.sf.value, pageSize: -1 }, this.service.$api_get_exportAccountBalanceDriverByOperatorPage,); this.service.exportStart(
{
...this.sf.value,
pageSize: -1,
ltdId: this.params.ltdId,
projectId: this.params.projectId,
enterpriseId: this.params.enterpriseId,
roleId: this.params.roleId,
bankType: this.params.bankType,
createTime: {
start: this.sf.value?.createTime?.[0] || '',
end: this.sf.value?.createTime?.[1] || ''
}
},
this.service.$api_get_exportAccountBalanceDriverByOperatorPage
);
} }
goBack() { goBack() {
@ -189,7 +204,7 @@ export class DriverAccountDetailComponent implements OnInit {
}, },
{ title: '付款方', index: 'payName', width: 150 }, { title: '付款方', index: 'payName', width: 150 },
{ title: '收款方', index: 'incomeName', width: 150 }, { title: '收款方', index: 'incomeName', width: 150 },
{ title: '备注', index: 'tradeContent' , width: 150}, { title: '备注', index: 'tradeContent', width: 150 }
]; ];
} }
} }

View File

@ -81,6 +81,8 @@ export class DriverAccountComponent implements OnInit {
} }
exportList() { exportList() {
console.log(this.sf.value);
this.service.exportStart({ ...this.sf.value, pageSize: -1 }, this.service.$api_export_driver_account_page); this.service.exportStart({ ...this.sf.value, pageSize: -1 }, this.service.$api_export_driver_account_page);
} }

View File

@ -83,7 +83,21 @@ export class FreightAccountDetailComponent implements OnInit {
stChange(e: STChange): void {} stChange(e: STChange): void {}
exportList() { exportList() {
this.service.exportStart( { ...this.sf.value, pageSize: -1 }, this.service.$api_get_exportAccountBalanceShipperByOperatorPage,); this.service.exportStart(
{
...this.sf.value,
pageSize: -1,
ltdId: this.params.ltdId,
projectId: this.params.projectId,
enterpriseId: this.params.enterpriseId,
roleId: this.params.roleId,
createTime: {
start: this.sf?.value.createTime?.[0] || '',
end: this.sf?.value.createTime?.[1] || ''
}
},
this.service.$api_get_exportAccountBalanceShipperByOperatorPage
);
} }
goBack() { goBack() {

View File

@ -247,7 +247,7 @@ export class PaymentOrderComponent implements OnInit {
widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.payMoney }) } widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.payMoney }) }
}, },
{ title: '付款类型', index: 'payTypeLabel', width: 130 }, { title: '付款类型', index: 'payTypeLabel', width: 130 },
{ title: '付款方式', index: 'payModeLabel', width: 130 }, { title: '付款方式', index: 'payBankTypeLabel', width: 130 },
{ title: '结算客户', index: 'cnoName', width: 160 }, { title: '结算客户', index: 'cnoName', width: 160 },
{ title: '收款人', index: 'hrToLabel', width: 150 }, { title: '收款人', index: 'hrToLabel', width: 150 },
{ title: '应付已核销', index: 'ishrhxLabel', width: 150 }, { title: '应付已核销', index: 'ishrhxLabel', width: 150 },

View File

@ -66,7 +66,18 @@ export class PlatformAccountDetailComponent implements OnInit {
stChange(e: STChange): void {} stChange(e: STChange): void {}
exportList() { exportList() {
this.service.exportStart({ ...this.sf.value, pageSize: -1 }, this.service.$api_get_exportAccountBalanceByPage); this.service.exportStart(
{
...this.sf.value,
...this.params,
createTime: {
start: this.sf.value?.createTime?.[0] || '',
end: this.sf.value?.createTime?.[1] || ''
},
pageSize: -1
},
this.service.$api_get_exportAccountBalanceByPage
);
} }
goBack() { goBack() {

View File

@ -229,7 +229,7 @@ export class RechargeRecordComponent implements OnInit {
bankType: item.bankType, bankType: item.bankType,
rmYll: item.roleId, rmYll: item.roleId,
snglFlgCd: item.paySerialNumber2, snglFlgCd: item.paySerialNumber2,
bussType: '06', bussType: '05',
ltdId: item.ltdId, ltdId: item.ltdId,
accountType: item.accountType accountType: item.accountType
}) })

View File

@ -91,6 +91,16 @@ export class TransactionFlowComponent {
placeholder: '请输入' placeholder: '请输入'
} }
}, },
orderSn: {
type: 'string',
title: '订单号',
ui: {
placeholder: '请输入',
visibleIf: {
expand: (value: boolean) => value
}
}
},
tradeType: { tradeType: {
type: 'string', type: 'string',
title: '交易类型', title: '交易类型',
@ -216,6 +226,7 @@ export class TransactionFlowComponent {
{ title: '流水号', index: 'transactionNumber', width: 180 }, { title: '流水号', index: 'transactionNumber', width: 180 },
{ title: '交易类型', index: 'tradeTypeLabel', width: 120 }, { title: '交易类型', index: 'tradeTypeLabel', width: 120 },
{ title: '关联单号', index: 'businessNumber', width: 150 }, { title: '关联单号', index: 'businessNumber', width: 150 },
{ title: '订单号', index: 'orderSn', width: 150 },
{ title: '账户类型', index: 'accountTypeLabel', width: 130 }, { title: '账户类型', index: 'accountTypeLabel', width: 130 },
{ title: '账户名称', index: 'roleName', width: 180 }, { title: '账户名称', index: 'roleName', width: 180 },
{ title: '所属项目', index: 'projectName', width: 140 }, { title: '所属项目', index: 'projectName', width: 140 },
@ -262,7 +273,6 @@ export class TransactionFlowComponent {
]; ];
} }
exportList() { exportList() {
this.service.exportStart({ ...this.sf.value, pageSize: -1 }, this.service.$api_get_exportAccountBalanceDetailPage);
this.service.exportStart( { ...this.sf.value, pageSize: -1 }, this.service.$api_get_exportAccountBalanceDetailPage,);
} }
} }

View File

@ -22,8 +22,8 @@
[class.expend-options]="_$expand"> [class.expend-options]="_$expand">
<button nz-button nzType="primary" [nzLoading]="service.http.loading" (click)="st?.load(1)">查询</button> <button nz-button nzType="primary" [nzLoading]="service.http.loading" (click)="st?.load(1)">查询</button>
<button nz-button [disabled]="false" (click)="resetSF()">重置</button> <button nz-button [disabled]="false" (click)="resetSF()">重置</button>
<!-- <button nz-button nzType="primary" [disabled]="false"> 导出</button> <button nz-button nzType="primary" [disabled]="false" (click)='exportList()'> 导出</button>
<button nz-button nzType="primary" [disabled]="false"> 导出明细</button> <!-- <button nz-button nzType="primary" [disabled]="false"> 导出明细</button>
<button nz-button nzType="primary" [disabled]="false"> 导出凭证</button> --> <button nz-button nzType="primary" [disabled]="false"> 导出凭证</button> -->
<button nz-button nzType="link" (click)="expandToggle()"> <button nz-button nzType="link" (click)="expandToggle()">
{{ !_$expand ? '展开' : '收起' }} {{ !_$expand ? '展开' : '收起' }}

View File

@ -88,6 +88,10 @@ export class VoucherSummaryComponent implements OnInit {
this.sf?.setValue('/expand', this._$expand); this.sf?.setValue('/expand', this._$expand);
} }
exportList() {
this.service.exportStart({ ...this.sf.value, pageSize: -1 }, this.service.$api_export_fico_vch_page);
}
private initSF(): SFSchema { private initSF(): SFSchema {
return { return {
properties: { properties: {
@ -286,7 +290,7 @@ export class VoucherSummaryComponent implements OnInit {
private initST(): STColumn[] { private initST(): STColumn[] {
return [ return [
{ title: '', index: 'key', type: 'checkbox', width: 60, className: 'text-center', fixed: 'left' }, { title: '', index: 'key', type: 'checkbox', width: 60, className: 'text-center', fixed: 'left' },
{ title: '汇总凭证号', index: 'vc2code', type: 'link', width: 180 }, { title: '汇总凭证号', index: 'vc2code', type: 'link', width: 200 },
{ title: '帐套', index: 'vcltdcode', width: 180 }, { title: '帐套', index: 'vcltdcode', width: 180 },
{ title: '凭证时间', index: 'createTime', type: 'date', width: 150 }, { title: '凭证时间', index: 'createTime', type: 'date', width: 150 },
{ {
@ -302,7 +306,7 @@ export class VoucherSummaryComponent implements OnInit {
}, },
{ title: '凭证类型', index: 'vctype', width: 120 }, { title: '凭证类型', index: 'vctype', width: 120 },
{ title: '序号', index: 'invmoney', width: 100, format: _ => '1' }, { title: '序号', index: 'invmoney', width: 100, format: _ => '1' },
{ title: '摘要', index: 'remarks', width: 120 }, { title: '摘要', index: 'remarks', width: 220 },
{ title: '币种', index: 'currency', width: 100 }, { title: '币种', index: 'currency', width: 100 },
{ {
title: '借方金额', title: '借方金额',
@ -320,7 +324,7 @@ export class VoucherSummaryComponent implements OnInit {
className: 'text-right', className: 'text-right',
widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.crmoney }) } widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.crmoney }) }
}, },
{ title: 'NC凭证', index: 'importncnotes', width: 120 }, { title: 'NC凭证', index: 'importncnotes', width: 180 },
{ title: '凭证状态', index: 'stsLabel', width: 120 }, { title: '凭证状态', index: 'stsLabel', width: 120 },
{ title: '创建时间', index: 'createTime', width: 180 }, { title: '创建时间', index: 'createTime', width: 180 },
{ title: '创建人', index: 'createUserName', width: 120 }, { title: '创建人', index: 'createUserName', width: 120 },

View File

@ -32,6 +32,7 @@ import { PlatformAccountDetailComponent } from './components/platform-account/pl
import { AdvanceCollectionComponent } from './components/advance-collection/advance-collection.component'; import { AdvanceCollectionComponent } from './components/advance-collection/advance-collection.component';
import { AdvanceCollectionDetailComponent } from './components/advance-collection/advance-collection-detail/advance-collection-detail.component'; import { AdvanceCollectionDetailComponent } from './components/advance-collection/advance-collection-detail/advance-collection-detail.component';
import { RefundRecordComponent } from './components/refund-record/refund-record.component'; import { RefundRecordComponent } from './components/refund-record/refund-record.component';
import { AbnormalGoldDetailComponent } from './components/abnormal-gold/abnormal-gold-detail/abnormal-gold-detail.component';
const routes: Routes = [ const routes: Routes = [
{ path: 'freight-account', component: FreightAccountComponent, data: { guard: { ability: ['FINANCIAL-FREIGHT-ACOUNT-list'] } } }, { path: 'freight-account', component: FreightAccountComponent, data: { guard: { ability: ['FINANCIAL-FREIGHT-ACOUNT-list'] } } },
@ -55,6 +56,7 @@ const routes: Routes = [
{ path: 'cost-management/expenses-receivable/:id', component: ExpensesReceivableComponent }, { path: 'cost-management/expenses-receivable/:id', component: ExpensesReceivableComponent },
{ path: 'cost-management/expenses-payable/:id', component: ExpensesPayableComponent }, { path: 'cost-management/expenses-payable/:id', component: ExpensesPayableComponent },
{ path: 'abnormal-gold', component: AbnormalGoldComponent }, { path: 'abnormal-gold', component: AbnormalGoldComponent },
{ path: 'abnormal-gold/detail/:id', component: AbnormalGoldDetailComponent },
{ path: 'payment-record', component: PaymentRecordComponent }, { path: 'payment-record', component: PaymentRecordComponent },
{ path: 'transaction-flow', component: TransactionFlowComponent }, { path: 'transaction-flow', component: TransactionFlowComponent },
{ path: 'payment-order', component: PaymentOrderComponent }, { path: 'payment-order', component: PaymentOrderComponent },

View File

@ -35,6 +35,7 @@ import { PlatformAccountDetailComponent } from './components/platform-account/pl
import { AdvanceCollectionComponent } from './components/advance-collection/advance-collection.component'; import { AdvanceCollectionComponent } from './components/advance-collection/advance-collection.component';
import { AdvanceCollectionDetailComponent } from './components/advance-collection/advance-collection-detail/advance-collection-detail.component'; import { AdvanceCollectionDetailComponent } from './components/advance-collection/advance-collection-detail/advance-collection-detail.component';
import { RefundRecordComponent } from './components/refund-record/refund-record.component'; import { RefundRecordComponent } from './components/refund-record/refund-record.component';
import { AbnormalGoldDetailComponent } from './components/abnormal-gold/abnormal-gold-detail/abnormal-gold-detail.component';
const ROUTESCOMPONENTS = [ const ROUTESCOMPONENTS = [
FreightAccountComponent, FreightAccountComponent,
@ -66,7 +67,8 @@ const ROUTESCOMPONENTS = [
ReceiptOrderDetailComponent, ReceiptOrderDetailComponent,
AdvanceCollectionComponent, AdvanceCollectionComponent,
AdvanceCollectionDetailComponent, AdvanceCollectionDetailComponent,
RefundRecordComponent RefundRecordComponent,
AbnormalGoldDetailComponent
]; ];
const NOTROUTECOMPONENTS = [DriverAccountDetailComponent, FreightAccountDetailComponent, ClearingModalComponent]; const NOTROUTECOMPONENTS = [DriverAccountDetailComponent, FreightAccountDetailComponent, ClearingModalComponent];

View File

@ -102,6 +102,8 @@ export class FreightAccountService extends ShipperBaseService {
// 查询总账凭证表 // 查询总账凭证表
$api_get_fico_vch_page = '/api/fcc/ficoVcH/list/page'; $api_get_fico_vch_page = '/api/fcc/ficoVcH/list/page';
// 导出总账凭证表
$api_export_fico_vch_page = '/api/fcc/ficoVcH/reportVchListPage';
// 获取总账凭证表详情信息 // 获取总账凭证表详情信息
$api_get_fico_vch__detail = '/api/fcc/ficoVcH/getDetail'; $api_get_fico_vch__detail = '/api/fcc/ficoVcH/getDetail';
@ -156,6 +158,9 @@ export class FreightAccountService extends ShipperBaseService {
// 查询异常入金充值信息 // 查询异常入金充值信息
$api_get_getAbnormalAmountPage = '/api/fcc/rechargeInfo/list/getAbnormalAmountPage'; $api_get_getAbnormalAmountPage = '/api/fcc/rechargeInfo/list/getAbnormalAmountPage';
// 查询异常入金充值信息详情
$api_get_getAbnormalAmount_detail = '/api/fcc/rechargeInfo/get';
// 异步导出运营后台异常入金列表 // 异步导出运营后台异常入金列表
$api_get_exportAbnormalAmountPage = '/api/fcc/rechargeInfo/exportAbnormalAmountPage'; $api_get_exportAbnormalAmountPage = '/api/fcc/rechargeInfo/exportAbnormalAmountPage';
// 异步导出运营后台退款记录列表 // 异步导出运营后台退款记录列表
@ -173,9 +178,10 @@ export class FreightAccountService extends ShipperBaseService {
const { bankType, snglFlgCd } = params; const { bankType, snglFlgCd } = params;
if (url) { if (url) {
if (params?.bankType === '1') { if (params?.bankType === '1') {
window.open(params?.receiptUrl); window.open(url);
} else if (params?.bankType === '2') { } else if (params?.bankType === '2') {
this.exportFile({ bankType, receiptUrl: url, bankSerialNumber: snglFlgCd }, this.$api_download_receipt_apply_byte); window.open(url);
// this.exportFile({ bankType, receiptUrl: url, bankSerialNumber: snglFlgCd }, this.$api_download_receipt_apply_byte);
} }
} else { } else {
this.request(this.$api_download_receipt_apply, { ...params }).subscribe(res => { this.request(this.$api_download_receipt_apply, { ...params }).subscribe(res => {
@ -183,11 +189,12 @@ export class FreightAccountService extends ShipperBaseService {
if (bankType === '1') { if (bankType === '1') {
window.open(res?.receiptUrl); window.open(res?.receiptUrl);
} else if (bankType === '2') { } else if (bankType === '2') {
this.downloadFile(this.$api_download_receipt_apply_byte, { window.open(res?.receiptUrl);
bankType, // this.downloadFile(this.$api_download_receipt_apply_byte, {
receiptUrl: res.receiptUrl, // bankType,
bankSerialNumber: snglFlgCd // receiptUrl: res.receiptUrl,
}); // bankSerialNumber: snglFlgCd
// });
} }
} else { } else {
this.msgSrv.warning(res.statusMsg || '获取回单失败'); this.msgSrv.warning(res.statusMsg || '获取回单失败');

View File

@ -501,8 +501,10 @@ export class insuranceManagementListComponent implements OnInit {
// console.log(newUrl); // console.log(newUrl);
// window.open(newUrl,'_self'); // window.open(newUrl,'_self');
window.open(`${_record.newPolicyUrl}`);
// this.service.downloadFile(`${_record.newPolicyUrl}`)
this.service.downloadFile(`${_record.policyUrl}`)
// const params = { // const params = {
// imgList: [_record.policyUrl], // imgList: [_record.policyUrl],
// index: 0 // index: 0

View File

@ -4,7 +4,7 @@
* @Author : Shiming * @Author : Shiming
* @Date : 2021-12-03 15:31:52 * @Date : 2021-12-03 15:31:52
* @LastEditors : Shiming * @LastEditors : Shiming
* @LastEditTime : 2022-04-11 15:13:24 * @LastEditTime : 2022-04-14 11:43:13
* @FilePath : \\tms-obc-web\\src\\app\\routes\\insurance-management\\services\\insurance-management.service.ts * @FilePath : \\tms-obc-web\\src\\app\\routes\\insurance-management\\services\\insurance-management.service.ts
* Copyright (C) 2022 huzhenhong. All rights reserved. * Copyright (C) 2022 huzhenhong. All rights reserved.
*/ */
@ -55,7 +55,17 @@ export class InsuranceManagementService extends ShipperBaseService {
// } // }
// a.remove(); // a.remove();
} }
getReceiptUrl(url: string, params: any) {
const { bankType, snglFlgCd } = params;
if (url) {
if (params?.bankType === '1') {
window.open(params?.receiptUrl);
} else if (params?.bankType === '2') {
window.open(url);
// this.exportFile({ bankType, receiptUrl: url, bankSerialNumber: snglFlgCd }, this.$api_download_receipt_apply_byte);
}
}
}
constructor(public injector: Injector) { constructor(public injector: Injector) {
super(injector); super(injector);
} }

View File

@ -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-04-08 14:06:21 * @LastEditTime : 2022-04-14 10:08:12
* @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.
--> -->
@ -21,20 +21,12 @@
</div> </div>
<div nz-row style="display: flex; justify-content: end" class="mb-xs"> <div nz-row style="display: flex; justify-content: end" class="mb-xs">
<div nz-col> <div nz-col>
<button <button (click)="cancellation()" nz-button
(click)="cancellation()"
nz-button
*ngIf="i?.billStatus !== '1' && i?.billStatus !== '5' && i?.billStatus !== '6' && i?.overallPaymentStatus != '2'" *ngIf="i?.billStatus !== '1' && i?.billStatus !== '5' && i?.billStatus !== '6' && i?.overallPaymentStatus != '2'"
acl [acl-ability]="['ORDER-BULK-DETAIL-cancelAnOrder']" acl [acl-ability]="['ORDER-BULK-DETAIL-cancelAnOrder']">取消订单</button>
>取消订单</button <button nz-button
> *ngIf="i?.billStatus == '4' || i?.billStatus == '5' || i?.billStatus == '2' || i?.billStatus == '3'" acl
<button [acl-ability]="['ORDER-BULK-DETAIL-modifyOrder']" (click)="changeOrder()">修改订单</button>
nz-button
*ngIf="i?.billStatus == '4' || i?.billStatus == '5' || i?.billStatus == '2' || i?.billStatus == '3'"
acl [acl-ability]="['ORDER-BULK-DETAIL-modifyOrder']"
(click)="changeOrder()"
>修改订单</button
>
</div> </div>
</div> </div>
<div> <div>
@ -44,7 +36,8 @@
<sv label="所属项目">{{ i?.goodsResource?.enterpriseProjectName }}</sv> <sv label="所属项目">{{ i?.goodsResource?.enterpriseProjectName }}</sv>
<sv label="服务类型">{{ i?.goodsResource?.serviceTypeLabel }}</sv> <sv label="服务类型">{{ i?.goodsResource?.serviceTypeLabel }}</sv>
<sv label="录单员">{{ i?.createUserName }} {{ i?.createUserPhone ? "/" + i?.createUserPhone : ''}} </sv> <sv label="录单员">{{ i?.createUserName }} {{ i?.createUserPhone ? "/" + i?.createUserPhone : ''}} </sv>
<sv label="调度员">{{ i?.goodsResource?.dispatchName }}{{ i?.goodsResource?.dispatchPhone ? "/" + i?.goodsResource?.dispatchPhone : ''}} </sv> <sv label="调度员">{{ i?.goodsResource?.dispatchName }}{{ i?.goodsResource?.dispatchPhone ? "/" +
i?.goodsResource?.dispatchPhone : ''}} </sv>
<sv label="货源编号">{{ i?.goodsResource?.resourceCode }} </sv> <sv label="货源编号">{{ i?.goodsResource?.resourceCode }} </sv>
<sv label="运单号">{{ i?.wayBill?.wayBillCode }}</sv> <sv label="运单号">{{ i?.wayBill?.wayBillCode }}</sv>
<sv label="承诺付款天数">{{ i?.goodsResource?.paymentDays }}</sv> <sv label="承诺付款天数">{{ i?.goodsResource?.paymentDays }}</sv>
@ -64,12 +57,8 @@
<div style="width: 60%; margin: 0 auto"> <div style="width: 60%; margin: 0 auto">
   
<nz-steps [nzCurrent]="i?.scheduleVOList?.length + 1" nzLabelPlacement="vertical"> <nz-steps [nzCurrent]="i?.scheduleVOList?.length + 1" nzLabelPlacement="vertical">
<nz-step <nz-step *ngFor="let item of i?.scheduleVOList" [nzTitle]="item.state" [nzSubtitle]="item.stateTime"
*ngFor="let item of i?.scheduleVOList" [nzStatus]="item.displayStatus === 'SHOW' ? 'finish' : 'wait'"></nz-step>
[nzTitle]="item.state"
[nzSubtitle]="item.stateTime"
[nzStatus]="item.displayStatus === 'SHOW' ? 'finish' : 'wait'"
></nz-step>
</nz-steps> </nz-steps>
</div> </div>
</div> </div>
@ -82,9 +71,11 @@
</sv> </sv>
</sv-container> </sv-container>
<sv-container col="2"> <sv-container col="2">
<sv label="货物数量"> {{i?.goodsInfoList?.[0]?.weight}}吨,{{i?.goodsInfoList?.[0]?.volume}}方,{{i?.goodsInfoList?.[0]?.number}}件 </sv> <sv label="货物数量">
{{i?.goodsInfoList?.[0]?.weight}}吨,{{i?.goodsInfoList?.[0]?.volume}}方,{{i?.goodsInfoList?.[0]?.number}}件 </sv>
<sv label="用车需求">{{ i?.carModel }}{{ i?.carLength ? "/" + i?.carLength : ''}} </sv> <sv label="用车需求">{{ i?.carModel }}{{ i?.carLength ? "/" + i?.carLength : ''}} </sv>
<sv label="承运司机"> {{ i?.driverName }}{{i?.driverPhone ? "/" + i?.driverPhone : ''}}{{ i?.carNo ? "/" + i?.carNo : ''}} </sv> <sv label="承运司机"> {{ i?.driverName }}{{i?.driverPhone ? "/" + i?.driverPhone : ''}}{{ i?.carNo ? "/" + i?.carNo :
''}} </sv>
<sv label="车型车长载重"> {{ i?.driverCarModelLabel }},{{ i?.driverCarLengthLabel }}米,{{ i?.driverCarWeight }}吨 </sv> <sv label="车型车长载重"> {{ i?.driverCarModelLabel }},{{ i?.driverCarLengthLabel }}米,{{ i?.driverCarWeight }}吨 </sv>
<!-- <sv label="计划装货时间"> <!-- <sv label="计划装货时间">
{{ i?.loadPlanTime }} {{ i?.loadPlanTime }}
@ -93,14 +84,14 @@
{{ i?.unloadPlanTime }} {{ i?.unloadPlanTime }}
</sv> --> </sv> -->
<sv label="接单数量"> {{ i?.acceptWeight }}吨,{{ i?.acceptVolume }}方 </sv> <sv label="接单数量"> {{ i?.acceptWeight }}吨,{{ i?.acceptVolume }}方 </sv>
<sv *ngIf="i?.billStatus =='3' || i?.billStatus =='4' || i?.billStatus =='5'" label="装货数量"> {{ i?.loadWeight }}吨,{{ i?.loadVolume }}方</sv> <sv *ngIf="i?.billStatus =='3' || i?.billStatus =='4' || i?.billStatus =='5'" label="装货数量"> {{ i?.loadWeight }}吨,{{
<sv *ngIf="i?.billStatus =='4' || i?.billStatus =='5'" label="卸货数量"> {{ i?.settlementWeight }}吨,{{ i?.settlementVolume }}方</sv> i?.loadVolume }}方</sv>
<sv *ngIf="i?.billStatus =='4' || i?.billStatus =='5'" label="卸货数量"> {{ i?.settlementWeight }}吨,{{
i?.settlementVolume }}方</sv>
</sv-container> </sv-container>
<div class="mt-md"> <div class="mt-md">
<h4 class="text-md" <h4 class="text-md">装货卸货信息
>装货卸货信息 <span class="ml-sm text-sm">(
<span class="ml-sm text-sm"
>(
<label>{{ i?.loadingCount || '一' }}装</label> <label>{{ i?.loadingCount || '一' }}装</label>
<label>{{ i?.unloadingCount || '一' }}卸</label> <label>{{ i?.unloadingCount || '一' }}卸</label>
</span> </span>
@ -137,7 +128,8 @@
</div> </div>
</nz-card> </nz-card>
<nz-card nzTitle="运费信息" #distannce3> <nz-card nzTitle="运费信息" #distannce3>
<h2>{{i?.freightPrice}}{{i?.freightTypeLabel}}{{ i?.settlementBasisLabel ? i?.settlementBasisLabel + '' :' ' }}{{i?.ruleLabel}}</h2> <h2>{{i?.freightPrice}}{{i?.freightTypeLabel}}{{ i?.settlementBasisLabel ? i?.settlementBasisLabel + '' :' '
}}{{i?.ruleLabel}}</h2>
<st #st [data]="billExpenses" [columns]="logColumns" [ps]="0" [page]="{ show: false, showSize: false }"> <st #st [data]="billExpenses" [columns]="logColumns" [ps]="0" [page]="{ show: false, showSize: false }">
<ng-template st-row="PriceType" let-item let-index="index"> 到付 </ng-template> <ng-template st-row="PriceType" let-item let-index="index"> 到付 </ng-template>
<ng-template st-row="prices" let-item let-index="index"> <ng-template st-row="prices" let-item let-index="index">
@ -152,11 +144,13 @@
</st> </st>
<div> <div>
<div> <div>
总计:<span style="color: #da001b; font-size: 18px">{{ i?.totalAmount | currency }}</span> (运费{{ i?.totalFreight | currency }} 总计:<span style="color: #da001b; font-size: 18px">{{ i?.totalAmount | currency }}</span> (运费{{ i?.totalFreight |
currency }}
附加费{{ i?.totalSurcharge | currency }},附加费率{{ (i?.totalRate * 100).toFixed(2)}}% 附加费{{ i?.totalSurcharge | currency }},附加费率{{ (i?.totalRate * 100).toFixed(2)}}%
</div> </div>
</div> </div>
<div *ngIf ="i?.payeePhone && i?.payeePhone !== i?.driverPhone">车队长:{{ i?.payeeName }}{{ i?.payeePhone ? "/" + i?.payeePhone : ''}}</div> <div *ngIf="i?.payeePhone && i?.payeePhone !== i?.driverPhone">车队长:{{ i?.payeeName }}{{ i?.payeePhone ? "/" +
i?.payeePhone : ''}}</div>
</nz-card> </nz-card>
<nz-card nzTitle="附件信息" #distannce4> <nz-card nzTitle="附件信息" #distannce4>
@ -168,10 +162,12 @@
</sv-container> </sv-container>
<sv-container col="2" class="mt-md"> <sv-container col="2" class="mt-md">
<sv label="装货凭证"> <sv label="装货凭证">
<app-imagelist *ngIf="i?.loadingLadingBillFilePath || i?.loadingPeopleVehiclesGoodsFilePath" [imgList]="[i?.loadingLadingBillFilePath, i?.loadingPeopleVehiclesGoodsFilePath]"> </app-imagelist> <app-imagelist *ngIf="i?.loadingLadingBillFilePath || i?.loadingPeopleVehiclesGoodsFilePath"
[imgList]="[i?.loadingLadingBillFilePath, i?.loadingPeopleVehiclesGoodsFilePath]"> </app-imagelist>
</sv> </sv>
<sv label="卸货凭证"> <sv label="卸货凭证">
<app-imagelist *ngIf="i?.unloadingLadingBillFilePath || i?.unloadingPeopleVehiclesGoodsFilePath " [imgList]="[i?.unloadingLadingBillFilePath, i?.unloadingPeopleVehiclesGoodsFilePath]"> </app-imagelist> <app-imagelist *ngIf="i?.unloadingLadingBillFilePath || i?.unloadingPeopleVehiclesGoodsFilePath "
[imgList]="[i?.unloadingLadingBillFilePath, i?.unloadingPeopleVehiclesGoodsFilePath]"> </app-imagelist>
</sv> </sv>
</sv-container> </sv-container>
</nz-card> </nz-card>
@ -183,7 +179,8 @@
<sv label="回单类型" *ngIf="i?.supplementaryInformationVO?.stateReceipt"> <sv label="回单类型" *ngIf="i?.supplementaryInformationVO?.stateReceipt">
{{ i?.supplementaryInformationVO?.receiptType === '1' ? '电子回单' : '纸质回单' }} {{ i?.supplementaryInformationVO?.receiptType === '1' ? '电子回单' : '纸质回单' }}
</sv> </sv>
<sv label="联系人" *ngIf="i?.supplementaryInformationVO?.stateReceipt"> {{ i?.supplementaryInformationVO?.receiptUserName }} / {{ i?.supplementaryInformationVO?.phon }} </sv> <sv label="联系人" *ngIf="i?.supplementaryInformationVO?.stateReceipt"> {{
i?.supplementaryInformationVO?.receiptUserName }} / {{ i?.supplementaryInformationVO?.phon }} </sv>
<sv label="所在地区" *ngIf="i?.supplementaryInformationVO?.stateReceipt"> <sv label="所在地区" *ngIf="i?.supplementaryInformationVO?.stateReceipt">
{{ i?.supplementaryInformationVO?.area }} {{ i?.supplementaryInformationVO?.area }}
</sv> </sv>
@ -206,11 +203,13 @@
<nz-card nzTitle="轨迹信息" style="width: 100%" [nzExtra]="extraTemplate" #distannce5> <nz-card nzTitle="轨迹信息" style="width: 100%" [nzExtra]="extraTemplate" #distannce5>
<div nz-row> <div nz-row>
<div nz-col [nzSpan]="12"> <div nz-col [nzSpan]="12">
<st [scroll]="{y: '500px'}" style="min-height: 600px;" #st [data]="addressItems" [columns]="logColumns2" [ps]="0" [page]="{ show: false, showSize: false }"> <st [scroll]="{y: '500px'}" style="min-height: 600px;" #st [data]="addressItems" [columns]="logColumns2"
[ps]="0" [page]="{ show: false, showSize: false }">
</st> </st>
</div> </div>
<div nz-col [nzSpan]="12"> <div nz-col [nzSpan]="12">
<amap-path-simplifier [mapWidth]="'100%'" [pois]="pois" [mapHeight]="'600px'" [mapList]="mapList"></amap-path-simplifier> <amap-path-simplifier [mapWidth]="'100%'" [pois]="pois" [mapHeight]="'600px'" [mapList]="mapList">
</amap-path-simplifier>
</div> </div>
</div> </div>
</nz-card> </nz-card>
@ -222,31 +221,40 @@
</ng-template> </ng-template>
</div> </div>
</nz-card> </nz-card>
<nz-card *ngIf="!route?.snapshot?.queryParams?.sts && abnormalList.length > 0"> <nz-card>
<nz-tabset> <nz-tabset>
<nz-tab nzTitle="风险异常检测"> <nz-tab nzTitle="风险异常检测">
<div *ngIf="abnormalList.length > 0">
<div> <div>
您的订单可能存在交易风险,请及时提交申诉材料,提交成功后,平台将及时完成审核并通知您! 您的订单可能存在交易风险,请及时提交申诉材料,提交成功后,平台将及时完成审核并通知您!
</div> </div>
<div>如果您的运单没有问题可以提出申诉并提供相关资料我们将24小时内审核反馈</div> <div>如果您的运单没有问题可以提出申诉并提供相关资料我们将24小时内审核反馈</div>
<ul *ngFor="let item of abnormalList"> <ul *ngFor="let item of abnormalList">
<li>系统识别:{{item?.complianceTypeName}}</li> <li style="color: red;">系统识别:{{item?.complianceTypeName}}</li>
<li>{{item?.determineDetails}},您可在企业端提交申诉材料或联系客服。</li> <li style="color: red;">{{item?.determineDetails}}</li>
<li>2021-11-07 03:20:15</li>
</ul> </ul>
</div>
</nz-tab> </nz-tab>
<nz-tab nzTitle="异常预警"> <nz-tab nzTitle="异常预警">
<st #st [data]="addressItems" [columns]="logColumns2" [ps]="0" [page]="{ show: false, showSize: false }"> <st #st [data]="service.$api_get_order_abnormalWarning" [columns]="logColumns3"
</st> [res]="{ reName: { list: 'data' } }" [req]="{params:{id:route.snapshot.params.id}}"
[page]="{ show: false, showSize: false }"> </st>
</nz-tab> </nz-tab>
<nz-tab nzTitle="操作日志"> <nz-tab nzTitle="操作日志">
<st #st [data]="addressItems" [columns]="logColumns2" [ps]="0" [page]="{ show: false, showSize: false }"> <!-- <st #logSt [data]="service.$api_get_log_list" [columns]="operateLogColums"
</st> [req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, params: logParams ,lazyLoad:true}"
[res]="{ reName: { list: 'data.records', total: 'data.total' } }">
<ng-template st-row="operator" let-item>
{{item?.operator}}/{{item.telephone}}
</ng-template>
</st> -->
<app-logistics-time-line [data]="operationList"></app-logistics-time-line>
</nz-tab> </nz-tab>
</nz-tabset> </nz-tabset>
</nz-card> </nz-card>
<nz-modal [(nzVisible)]="isVisible" [nzFooter]="nzModalFooter" [nzTitle]="modalTitle" (nzOnOk)="handleOK()" nzWidth="1000px" (nzOnCancel)="handleCancel()"> <nz-modal [(nzVisible)]="isVisible" [nzFooter]="nzModalFooter" [nzTitle]="modalTitle" (nzOnOk)="handleOK()"
nzWidth="1000px" (nzOnCancel)="handleCancel()">
<ng-container *nzModalContent> <ng-container *nzModalContent>
<div *ngIf="!modalcontent">暂无附件信息</div> <div *ngIf="!modalcontent">暂无附件信息</div>
<div [innerHTML]="modalcontent"></div> <div [innerHTML]="modalcontent"></div>

View File

@ -4,14 +4,14 @@
* @Author : Shiming * @Author : Shiming
* @Date : 2021-12-06 20:20:26 * @Date : 2021-12-06 20:20:26
* @LastEditors : Shiming * @LastEditors : Shiming
* @LastEditTime : 2022-04-11 22:31:18 * @LastEditTime : 2022-04-13 19:52:18
* @FilePath : \\tms-obc-web\\src\\app\\routes\\order-management\\components\\bulk-detail\\bulk-detail.component.ts * @FilePath : \\tms-obc-web\\src\\app\\routes\\order-management\\components\\bulk-detail\\bulk-detail.component.ts
* Copyright (C) 2022 huzhenhong. All rights reserved. * Copyright (C) 2022 huzhenhong. All rights reserved.
*/ */
import { Router } from '@angular/router'; import { Router } from '@angular/router';
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 } from '@delon/abc/st'; import { STColumn, STComponent } from '@delon/abc/st';
import { _HttpClient } from '@delon/theme'; import { _HttpClient } from '@delon/theme';
import { NzMessageService } from 'ng-zorro-antd/message'; import { NzMessageService } from 'ng-zorro-antd/message';
import { NzModalService } from 'ng-zorro-antd/modal'; import { NzModalService } from 'ng-zorro-antd/modal';
@ -26,10 +26,12 @@ import format from 'date-fns/format';
}) })
export class OrderManagementBulkeDetailComponent implements OnInit { export class OrderManagementBulkeDetailComponent implements OnInit {
MapList: any[] = []; MapList: any[] = [];
@ViewChild('logSt') logSt!: STComponent;
id = this.route.snapshot.params.id; id = this.route.snapshot.params.id;
billExpenses: any[] = []; //运费信息表格信息 billExpenses: any[] = []; //运费信息表格信息
pois: any[] = []; pois: any[] = [];
abnormalList: any[] = []; abnormalList: any[] = [];
operationList: any;
i: any; i: any;
imges: any; imges: any;
totalObj: any; totalObj: any;
@ -41,6 +43,15 @@ export class OrderManagementBulkeDetailComponent implements OnInit {
{ title: '时间', index: 'parkBte' }, { title: '时间', index: 'parkBte' },
{ title: '地点', index: 'parkAdr' } { title: '地点', index: 'parkAdr' }
]; ];
logColumns3: STColumn[] = [
{ title: '时间', index: 'warningTime' },
{ title: '异常预警类型', index: 'warningTypeLabel' }
];
operateLogColums: STColumn[] = [
{ title: '内容', index: 'operationContent' },
{ title: '操作人', render: 'operator' },
{ title: '操作时间', index: 'operatorTimestamp' },
];
logColumns: STColumn[] = [ logColumns: STColumn[] = [
{ title: '款项', index: 'expenseCodeLabel' }, { title: '款项', index: 'expenseCodeLabel' },
{ title: '小计(元)', render: 'prices' }, { title: '小计(元)', render: 'prices' },
@ -61,20 +72,23 @@ export class OrderManagementBulkeDetailComponent implements OnInit {
} }
} }
]; ];
get logParams() {
return { operateObject: this.i?.billCode, operateTypeList: ['3','8'] }
}
trajectory = 'car'; trajectory = 'car';
mapList: any[] = []; //地图点位数据组 mapList: any[] = []; //地图点位数据组
addressItems: any[] = []; //打点地址数据组 addressItems: any[] = []; //打点地址数据组
warringList: any[] = []; //打点地址数据组
constructor( constructor(
public route: ActivatedRoute, public route: ActivatedRoute,
private msgSrv: NzMessageService, private msgSrv: NzMessageService,
private service: OrderManagementService, public service: OrderManagementService,
private router: Router, private router: Router,
private modal: NzModalService private modal: NzModalService
) {} ) {}
ngOnInit(): void { ngOnInit(): void {
console.log(this.route?.snapshot?.queryParams?.sts); console.log(this.route?.snapshot?.queryParams?.sts);
this.initData(); this.initData();
this.getTrajectory(); this.getTrajectory();
} }
@ -103,6 +117,22 @@ export class OrderManagementBulkeDetailComponent implements OnInit {
time: '计划卸货时间:' + res.unloadPlanTime time: '计划卸货时间:' + res.unloadPlanTime
} }
]; ];
this.service.request(this.service.$api_get_log_list,{operateObject: this.i?.billCode, operateTypeList: ['3','8']}).subscribe(res => {
if (res) {
console.log('操作日志');
console.log(res);
let a :any= []
res.records.forEach((item: any) => {
a.push({
value: `操作人: ${item.operator} <br /> 操作内容: ${ item.operationContent}`,
time: item.operatorTimestamp,
color: 'green'
})
})
console.log(a);
this.operationList = a;
}
});
} }
}); });
this.service.request(this.service.$api_listBillComplianceAbnormalByBillId, { id: this.id }).subscribe(res => { this.service.request(this.service.$api_listBillComplianceAbnormalByBillId, { id: this.id }).subscribe(res => {
@ -112,12 +142,15 @@ export class OrderManagementBulkeDetailComponent implements OnInit {
this.abnormalList = res; this.abnormalList = res;
} }
}); });
this.service.request(this.service.$api_getAbnormalWarningByBillId, { id: this.id }).subscribe(res => { this.service.request(this.service.$api_getAbnormalWarningByBillId, { id: this.id }).subscribe(res => {
if (res) { if (res) {
console.log('异常预警'); console.log('异常预警');
console.log(res); console.log(res);
this.warringList = res
} }
}); });
} }
goBack() { goBack() {

View File

@ -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-04-08 11:30:05 * @LastEditTime : 2022-04-14 10:53:35
* @FilePath : \\tms-obc-web\\src\\app\\routes\\order-management\\components\\bulk\\bulk.component.html * @FilePath : \\tms-obc-web\\src\\app\\routes\\order-management\\components\\bulk\\bulk.component.html
* Copyright (C) 2022 huzhenhong. All rights reserved. * Copyright (C) 2022 huzhenhong. All rights reserved.
--> -->
@ -78,6 +78,9 @@
<ng-template st-row="driverName" let-item let-index="index"> <ng-template st-row="driverName" let-item let-index="index">
<div> {{ item?.driverName }}{{ item?.driverPhone ? "/" + item?.driverPhone : '' }}{{ item?.carNo ? "/" + item?.carNo : ''}} </div> <div> {{ item?.driverName }}{{ item?.driverPhone ? "/" + item?.driverPhone : '' }}{{ item?.carNo ? "/" + item?.carNo : ''}} </div>
</ng-template> </ng-template>
<ng-template st-row="settlementWeight" let-item let-index="index">
<div> {{ item.settlementWeight ? item.settlementWeight + '吨/ ': ''}} {{ item.settlementVolume ? item.settlementVolume + '方 ': ''}}</div>
</ng-template>
<ng-template st-row="payeeName" let-item let-index="index"> <ng-template st-row="payeeName" let-item let-index="index">
<div> {{ item?.payeeName }}{{ item?.payeePhone ? "/" + item?.payeePhone : '' }} </div> <div> {{ item?.payeeName }}{{ item?.payeePhone ? "/" + item?.payeePhone : '' }} </div>
</ng-template> </ng-template>

View File

@ -491,12 +491,12 @@ export class OrderManagementBulkComponent implements OnInit {
}, },
{ {
title: '结算数量', title: '结算数量',
index: '结算数量', render: 'settlementWeight',
width: '170px', width: '170px',
className: 'text-left', className: 'text-left',
format: (item: any) => // format: (item: any) =>
`${item.settlementWeight || '0'}吨/ // `${item.settlementWeight || '0'}吨/
${item.settlementVolume || '0'}` // ${item.settlementVolume || '0'}方`
}, },
{ {
title: '承运司机', title: '承运司机',
@ -518,6 +518,12 @@ export class OrderManagementBulkComponent implements OnInit {
className: 'text-left', className: 'text-left',
render: 'loadingTime' render: 'loadingTime'
}, },
{
title: '录单时间',
className: 'text-left',
index: 'recordTime',
width: '170px'
},
{ {
title: '创建时间', title: '创建时间',
width: '180px', width: '180px',

View File

@ -37,6 +37,8 @@ export class OrderManagementComplaintDetailComponent implements OnInit {
if (this.id) if (this.id)
{ {
this.getDetail(this.id); this.getDetail(this.id);
console.log(this.ar.snapshot.queryParams.sts);
this.initSF(); this.initSF();
this.initSTAudit() this.initSTAudit()
} }
@ -63,11 +65,22 @@ export class OrderManagementComplaintDetailComponent implements OnInit {
initSF() { initSF() {
this.schema = { this.schema = {
properties: { properties: {
shpComplaintCauseLabel: {
title: '投诉原因',
type: 'string',
maxLength: 30,
ui: {
hidden: this.ar.snapshot.queryParams.sts == 2,
widget: 'text',
change: (value, orgData) => console.log(value, orgData),
} as SFSelectWidgetSchema,
},
drvComplaintCauseLabel: { drvComplaintCauseLabel: {
title: '投诉原因', title: '投诉原因',
type: 'string', type: 'string',
maxLength: 30, maxLength: 30,
ui: { ui: {
hidden: this.ar.snapshot.queryParams.sts == 1,
widget: 'text', widget: 'text',
change: (value, orgData) => console.log(value, orgData), change: (value, orgData) => console.log(value, orgData),
} as SFSelectWidgetSchema, } as SFSelectWidgetSchema,

View File

@ -360,7 +360,8 @@ export class OrderManagementComplaintComponent implements OnInit {
view(value: any) { view(value: any) {
this.router.navigate(['/order-management/complaint-detail/' + value.id], { this.router.navigate(['/order-management/complaint-detail/' + value.id], {
queryParams: { queryParams: {
detail: JSON.stringify(value) detail: JSON.stringify(value),
sts: this.selectedMainTabStatus
} }
}); });
} }

View File

@ -88,7 +88,7 @@ export class OrderManagementRiskComponent implements OnInit {
this.loading = false this.loading = false
return data.map(item => ({ return data.map(item => ({
...item, ...item,
disabled: item.auditStatus !== '1' disabled: item.representationsStatus !== '2'
})); }));
}; };
search() { search() {
@ -201,7 +201,7 @@ export class OrderManagementRiskComponent implements OnInit {
} }
} as SFSelectWidgetSchema } as SFSelectWidgetSchema
}, },
shipperId: { shipperAppUserName: {
type: 'string', type: 'string',
title: '托运人', title: '托运人',
ui: { ui: {
@ -218,7 +218,7 @@ export class OrderManagementRiskComponent implements OnInit {
if (str) { if (str) {
return this.service return this.service
.request(this.service.$api_enterpriceList, { enterpriseName: str }) .request(this.service.$api_enterpriceList, { enterpriseName: str })
.pipe(map((res: any) => (res as any[]).map(i => ({ label: i.enterpriseName, value: i.id } as SFSchemaEnum)))) .pipe(map((res: any) => (res as any[]).map(i => ({ label: i.enterpriseName, value: i.enterpriseName } as SFSchemaEnum))))
.toPromise(); .toPromise();
} else { } else {
return of([]); return of([]);

View File

@ -4,7 +4,7 @@
* @Author : Shiming * @Author : Shiming
* @Date : 2021-12-28 14:42:03 * @Date : 2021-12-28 14:42:03
* @LastEditors : Shiming * @LastEditors : Shiming
* @LastEditTime : 2022-04-08 14:06:27 * @LastEditTime : 2022-04-14 10:09:03
* @FilePath : \\tms-obc-web\\src\\app\\routes\\order-management\\components\\vehicle-detail\\vehicle-detail.component.html * @FilePath : \\tms-obc-web\\src\\app\\routes\\order-management\\components\\vehicle-detail\\vehicle-detail.component.html
* Copyright (C) 2022 huzhenhong. All rights reserved. * Copyright (C) 2022 huzhenhong. All rights reserved.
--> -->
@ -21,22 +21,12 @@
</div> </div>
<div nz-row style="display: flex; justify-content: end" class="mb-xs"> <div nz-row style="display: flex; justify-content: end" class="mb-xs">
<div nz-col> <div nz-col>
<button <button (click)="cancellation()" nz-button
(click)="cancellation()"
nz-button
*ngIf="i.billStatus == '4' || i.billStatus == '5' || i.billStatus == '2' || i.billStatus == '3' || i.billStatus == '1'" *ngIf="i.billStatus == '4' || i.billStatus == '5' || i.billStatus == '2' || i.billStatus == '3' || i.billStatus == '1'"
acl acl [acl-ability]="['ORDER-VEHICLE-DETAIL-cancelAnOrder']">取消订单</button>
[acl-ability]="['ORDER-VEHICLE-DETAIL-cancelAnOrder']" <button nz-button (click)="changeOrder()"
>取消订单</button *ngIf="i.billStatus == '4' || i.billStatus == '5' || i.billStatus == '2' || i.billStatus == '3'" acl
> [acl-ability]="['ORDER-VEHICLE-DETAIL-modifyOrder']">修改订单</button>
<button
nz-button
(click)="changeOrder()"
*ngIf="i.billStatus == '4' || i.billStatus == '5' || i.billStatus == '2' || i.billStatus == '3'"
acl
[acl-ability]="['ORDER-VEHICLE-DETAIL-modifyOrder']"
>修改订单</button
>
</div> </div>
</div> </div>
<div> <div>
@ -46,8 +36,8 @@
<sv label="所属项目">{{ i?.goodsResource?.enterpriseProjectName }}</sv> <sv label="所属项目">{{ i?.goodsResource?.enterpriseProjectName }}</sv>
<sv label="服务类型">{{ i?.goodsResource?.serviceTypeLabel }}</sv> <sv label="服务类型">{{ i?.goodsResource?.serviceTypeLabel }}</sv>
<sv label="录单员">{{ i?.createUserName }} {{ i?.createUserPhone ? '/' + i?.createUserPhone : '' }} </sv> <sv label="录单员">{{ i?.createUserName }} {{ i?.createUserPhone ? '/' + i?.createUserPhone : '' }} </sv>
<sv label="调度员" <sv label="调度员">{{ i?.goodsResource?.dispatchName }}{{ i?.goodsResource?.dispatchPhone ? '/' +
>{{ i?.goodsResource?.dispatchName }}{{ i?.goodsResource?.dispatchPhone ? '/' + i?.goodsResource?.dispatchPhone : '' }} i?.goodsResource?.dispatchPhone : '' }}
</sv> </sv>
<sv label="外部订单号">{{ i?.externalBillCode }}</sv> <sv label="外部订单号">{{ i?.externalBillCode }}</sv>
<sv label="货源编号">{{ i?.goodsResource?.resourceCode }} </sv> <sv label="货源编号">{{ i?.goodsResource?.resourceCode }} </sv>
@ -70,13 +60,9 @@
<div style="width: 60%; margin: 0 auto"> <div style="width: 60%; margin: 0 auto">
   
<nz-steps [nzCurrent]="i?.scheduleVOList?.length + 1" nzLabelPlacement="vertical"> <nz-steps [nzCurrent]="i?.scheduleVOList?.length + 1" nzLabelPlacement="vertical">
<nz-step <nz-step *ngFor="let item of i?.scheduleVOList" [nzTitle]="item.state" [nzSubtitle]="item.stateTime"
*ngFor="let item of i?.scheduleVOList"
[nzTitle]="item.state"
[nzSubtitle]="item.stateTime"
[nzDescription]="item.cancelReason ? '取消原因' + item.cancelReason : ''" [nzDescription]="item.cancelReason ? '取消原因' + item.cancelReason : ''"
[nzStatus]="item.displayStatus === 'SHOW' ? 'finish' : 'wait'" [nzStatus]="item.displayStatus === 'SHOW' ? 'finish' : 'wait'"></nz-step>
></nz-step>
</nz-steps> </nz-steps>
</div> </div>
</div> </div>
@ -93,16 +79,16 @@
</sv> </sv>
</sv-container> </sv-container>
<sv-container col="2"> <sv-container col="2">
<sv label="货物数量"> {{i?.goodsInfoList?.[0]?.weight}}吨,{{i?.goodsInfoList?.[0]?.volume}}方,{{i?.goodsInfoList?.[0]?.number}}件 </sv> <sv label="货物数量">
{{i?.goodsInfoList?.[0]?.weight}}吨,{{i?.goodsInfoList?.[0]?.volume}}方,{{i?.goodsInfoList?.[0]?.number}}件 </sv>
<sv label="用车需求">{{ i?.carModel }}{{ i?.carLength ? '/' + i?.carLength : '' }}</sv> <sv label="用车需求">{{ i?.carModel }}{{ i?.carLength ? '/' + i?.carLength : '' }}</sv>
<sv label="承运司机"> {{ i?.driverName }}{{ i?.driverPhone ? '/' + i?.driverPhone : '' }}{{ i?.carNo ? '/' + i?.carNo : '' }} </sv> <sv label="承运司机"> {{ i?.driverName }}{{ i?.driverPhone ? '/' + i?.driverPhone : '' }}{{ i?.carNo ? '/' + i?.carNo :
'' }} </sv>
<sv label="车型车长载重"> {{ i?.driverCarModelLabel }},{{ i?.driverCarLengthLabel }}米,{{ i?.driverCarWeight }}吨 </sv> <sv label="车型车长载重"> {{ i?.driverCarModelLabel }},{{ i?.driverCarLengthLabel }}米,{{ i?.driverCarWeight }}吨 </sv>
</sv-container> </sv-container>
<div class="mt-md"> <div class="mt-md">
<h4 class="text-md" <h4 class="text-md">装货卸货信息
>装货卸货信息 <span class="ml-sm text-sm">(
<span class="ml-sm text-sm"
>(
<label>{{ i?.loadingCount }}装</label> <label>{{ i?.loadingCount }}装</label>
<label>{{ i?.unloadingCount }}卸</label> <label>{{ i?.unloadingCount }}卸</label>
) )
@ -167,10 +153,12 @@
</ng-template> </ng-template>
</st> </st>
<div> <div>
总计:<span style="color: #da001b; font-size: 18px">{{ i?.totalAmount | currency }}</span> (运费{{ i?.totalFreight | currency }} 总计:<span style="color: #da001b; font-size: 18px">{{ i?.totalAmount | currency }}</span> (运费{{ i?.totalFreight |
currency }}
附加费{{ i?.totalSurcharge | currency }},附加费率{{ (i?.totalRate * 100).toFixed(2) }}% 附加费{{ i?.totalSurcharge | currency }},附加费率{{ (i?.totalRate * 100).toFixed(2) }}%
</div> </div>
<div *ngIf ="i?.payeePhone && i?.payeePhone !== i?.driverPhone">车队长:{{ i?.payeeName }}{{ i?.payeePhone ? '/' + i?.payeePhone : '' }}</div> <div *ngIf="i?.payeePhone && i?.payeePhone !== i?.driverPhone">车队长:{{ i?.payeeName }}{{ i?.payeePhone ? '/' +
i?.payeePhone : '' }}</div>
</nz-card> </nz-card>
<nz-card nzTitle="附件信息" #distannce4> <nz-card nzTitle="附件信息" #distannce4>
@ -185,7 +173,8 @@
<app-imagelist [imgList]="[i?.loadingLadingBillFilePath, i?.loadingPeopleVehiclesGoodsFilePath]"> </app-imagelist> <app-imagelist [imgList]="[i?.loadingLadingBillFilePath, i?.loadingPeopleVehiclesGoodsFilePath]"> </app-imagelist>
</sv> </sv>
<sv label="卸货凭证"> <sv label="卸货凭证">
<app-imagelist [imgList]="[i?.unloadingLadingBillFilePath, i?.unloadingPeopleVehiclesGoodsFilePath]"> </app-imagelist> <app-imagelist [imgList]="[i?.unloadingLadingBillFilePath, i?.unloadingPeopleVehiclesGoodsFilePath]">
</app-imagelist>
</sv> </sv>
</sv-container> </sv-container>
</nz-card> </nz-card>
@ -222,19 +211,13 @@
<nz-card nzTitle="轨迹信息" style="width: 100%" [nzExtra]="extraTemplate" #distannce5> <nz-card nzTitle="轨迹信息" style="width: 100%" [nzExtra]="extraTemplate" #distannce5>
<div nz-row> <div nz-row>
<div nz-col [nzSpan]="12"> <div nz-col [nzSpan]="12">
<st <st [scroll]="{ y: '500px' }" style="min-height: 600px" #st [data]="addressItems" [columns]="logColumns2"
[scroll]="{ y: '500px' }" [ps]="0" [page]="{ show: false, showSize: false }">
style="min-height: 600px"
#st
[data]="addressItems"
[columns]="logColumns2"
[ps]="0"
[page]="{ show: false, showSize: false }"
>
</st> </st>
</div> </div>
<div nz-col [nzSpan]="12"> <div nz-col [nzSpan]="12">
<amap-path-simplifier [mapWidth]="'100%'" [mapHeight]="'600px'" [mapList]="mapList" [pois]="pois"></amap-path-simplifier> <amap-path-simplifier [mapWidth]="'100%'" [mapHeight]="'600px'" [mapList]="mapList" [pois]="pois">
</amap-path-simplifier>
</div> </div>
</div> </div>
</nz-card> </nz-card>
@ -246,33 +229,38 @@
</ng-template> </ng-template>
</div> </div>
</nz-card> </nz-card>
<nz-card *ngIf="!route?.snapshot?.queryParams?.sts && abnormalList.length > 0"> <nz-card >
<nz-tabset> <nz-tabset>
<nz-tab nzTitle="风险异常检测"> <nz-tab nzTitle="风险异常检测">
<div *ngIf="abnormalList.length > 0">
<div> 您的订单可能存在交易风险,请及时提交申诉材料,提交成功后,平台将及时完成审核并通知您! </div> <div> 您的订单可能存在交易风险,请及时提交申诉材料,提交成功后,平台将及时完成审核并通知您! </div>
<div>如果您的运单没有问题可以提出申诉并提供相关资料我们将24小时内审核反馈</div> <div>如果您的运单没有问题可以提出申诉并提供相关资料我们将24小时内审核反馈</div>
<ul *ngFor="let item of abnormalList"> <ul *ngFor="let item of abnormalList">
<li>系统识别:{{ item?.complianceTypeName }}</li> <li style="color: red;">系统识别:{{ item?.complianceTypeName }}</li>
<li>{{ item?.determineDetails }},您可在企业端提交申诉材料或联系客服。</li> <li style="color: red;">{{ item?.determineDetails }}</li>
<li>2021-11-07 03:20:15</li>
</ul> </ul>
</div>
</nz-tab> </nz-tab>
<nz-tab nzTitle="异常预警"> <nz-tab nzTitle="异常预警">
<st #st [data]="addressItems" [columns]="logColumns2" [ps]="0" [page]="{ show: false, showSize: false }"> </st> <st #st [data]="service.$api_get_order_abnormalWarning" [columns]="logColumns3"
[res]="{ reName: { list: 'data' } }" [req]="{params:{id:route.snapshot.params.id}}"
[page]="{ show: false, showSize: false }"> </st>
</nz-tab> </nz-tab>
<nz-tab nzTitle="操作日志"> <nz-tab nzTitle="操作日志">
<st #st [data]="addressItems" [columns]="logColumns2" [ps]="0" [page]="{ show: false, showSize: false }"> </st> <!-- <st #logSt [data]="service.$api_get_log_list" [columns]="operateLogColums"
[req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, params: logParams ,lazyLoad:true}"
[res]="{ reName: { list: 'data.records', total: 'data.total' } }">
<ng-template st-row="operator" let-item>
{{item?.operator}}/{{item.telephone}}
</ng-template>
</st> -->
<app-logistics-time-line [data]="operationList"></app-logistics-time-line>
</nz-tab> </nz-tab>
</nz-tabset> </nz-tabset>
</nz-card> </nz-card>
<nz-modal <nz-modal [(nzVisible)]="isVisible" nzWidth="1000px" [nzFooter]="nzModalFooter" [nzTitle]="modalTitle"
[(nzVisible)]="isVisible" (nzOnOk)="handleOK()" (nzOnCancel)="handleCancel()">
nzWidth="1000px"
[nzFooter]="nzModalFooter"
[nzTitle]="modalTitle"
(nzOnOk)="handleOK()"
(nzOnCancel)="handleCancel()"
>
<ng-container *nzModalContent> <ng-container *nzModalContent>
<div *ngIf="!modalcontent">暂无附件信息</div> <div *ngIf="!modalcontent">暂无附件信息</div>
<div [innerHTML]="modalcontent"></div> <div [innerHTML]="modalcontent"></div>

View File

@ -4,13 +4,13 @@
* @Author : Shiming * @Author : Shiming
* @Date : 2021-12-28 14:42:03 * @Date : 2021-12-28 14:42:03
* @LastEditors : Shiming * @LastEditors : Shiming
* @LastEditTime : 2022-04-06 15:12:10 * @LastEditTime : 2022-04-13 19:52:15
* @FilePath : \\tms-obc-web\\src\\app\\routes\\order-management\\components\\vehicle-detail\\vehicle-detail.component.ts * @FilePath : \\tms-obc-web\\src\\app\\routes\\order-management\\components\\vehicle-detail\\vehicle-detail.component.ts
* Copyright (C) 2022 huzhenhong. All rights reserved. * Copyright (C) 2022 huzhenhong. All rights reserved.
*/ */
import { Component, OnInit } from '@angular/core'; import { Component, OnInit, ViewChild } from '@angular/core';
import { ActivatedRoute, Router } from '@angular/router'; import { ActivatedRoute, Router } from '@angular/router';
import { STColumn } from '@delon/abc/st'; import { STColumn, STComponent } from '@delon/abc/st';
import { NzCardComponent } from 'ng-zorro-antd/card'; import { NzCardComponent } from 'ng-zorro-antd/card';
import { NzMessageService } from 'ng-zorro-antd/message'; import { NzMessageService } from 'ng-zorro-antd/message';
import { NzModalService } from 'ng-zorro-antd/modal'; import { NzModalService } from 'ng-zorro-antd/modal';
@ -23,12 +23,15 @@ import { OrderManagementService } from '../../services/order-management.service'
}) })
export class OrderManagementVehicleDetailComponent implements OnInit { export class OrderManagementVehicleDetailComponent implements OnInit {
id = this.route.snapshot.params.id; id = this.route.snapshot.params.id;
@ViewChild('logSt') logSt!: STComponent;
modalcontent: any; modalcontent: any;
modalTitle: string = ''; modalTitle: string = '';
trajectory = 'car'; trajectory = 'car';
operationList: any;
mapList: any[] = []; //地图点位数据组 mapList: any[] = []; //地图点位数据组
pois: any[] = []; pois: any[] = [];
addressItems: any[] = []; //打点地址数据组 addressItems: any[] = []; //打点地址数据组
warringList: any[] = []; //打点地址数据组
abnormalList: any[] = []; abnormalList: any[] = [];
i: any = { i: any = {
unLoadingPlaceList: [], unLoadingPlaceList: [],
@ -46,6 +49,15 @@ export class OrderManagementVehicleDetailComponent implements OnInit {
{ title: '时间', index: 'parkBte' }, { title: '时间', index: 'parkBte' },
{ title: '地点', index: 'parkAdr' } { title: '地点', index: 'parkAdr' }
]; ];
logColumns3: STColumn[] = [
{ title: '时间', index: 'warningTime' },
{ title: '异常预警类型', index: 'warningTypeLabel' }
];
operateLogColums: STColumn[] = [
{ title: '内容', index: 'operationContent' },
{ title: '操作人', render: 'operator' },
{ title: '操作时间', index: 'operatorTimestamp' },
];
logColumns: STColumn[] = [ logColumns: STColumn[] = [
{ title: '款项', index: 'expenseCodeLabel' }, { title: '款项', index: 'expenseCodeLabel' },
{ title: '小计(元)', render: 'prices' }, { title: '小计(元)', render: 'prices' },
@ -58,10 +70,11 @@ export class OrderManagementVehicleDetailComponent implements OnInit {
index: 'paymentStatusLabel' index: 'paymentStatusLabel'
} }
]; ];
constructor( constructor(
public route: ActivatedRoute, public route: ActivatedRoute,
private msgSrv: NzMessageService, private msgSrv: NzMessageService,
private service: OrderManagementService, public service: OrderManagementService,
private router: Router, private router: Router,
private modal: NzModalService private modal: NzModalService
) {} ) {}
@ -70,7 +83,9 @@ export class OrderManagementVehicleDetailComponent implements OnInit {
this.initData(); this.initData();
this.getTrajectory(); this.getTrajectory();
} }
get logParams() {
return { operateObject: this.i?.billCode, operateTypeList: ['3','8'] }
}
initData() { initData() {
this.service.request(this.service.$api_get_getWholeBillDetail, { id: this.id }).subscribe(res => { this.service.request(this.service.$api_get_getWholeBillDetail, { id: this.id }).subscribe(res => {
if (res) { if (res) {
@ -80,7 +95,9 @@ export class OrderManagementVehicleDetailComponent implements OnInit {
markerLabel: '装', markerLabel: '装',
color: 'blue', color: 'blue',
position: [res.startingPoint.longitude, res.startingPoint.latitude], position: [res.startingPoint.longitude, res.startingPoint.latitude],
title: `发货地:${res.startingPoint.province}${res.startingPoint.city}${res.startingPoint.area || ''}${res.startingPoint.detailedAddress}`, title: `发货地:${res.startingPoint.province}${res.startingPoint.city}${res.startingPoint.area || ''}${
res.startingPoint.detailedAddress
}`,
time: '计划出发时间:' + res.loadPlanTime time: '计划出发时间:' + res.loadPlanTime
}, },
{ {
@ -91,10 +108,25 @@ export class OrderManagementVehicleDetailComponent implements OnInit {
time: '计划卸货时间:' + res.unloadPlanTime time: '计划卸货时间:' + res.unloadPlanTime
} }
]; ];
this.service.request(this.service.$api_get_log_list,{operateObject: this.i?.billCode, operateTypeList: ['3','8']}).subscribe(res => {
if (res) {
console.log('操作日志');
console.log(res);
let a :any= []
res.records.forEach((item: any) => {
a.push({
value: `操作人: ${item.operator} <br /> 操作内容: ${ item.operationContent}`,
time: item.operatorTimestamp,
color: 'green'
})
})
console.log(a);
this.operationList = a;
}
});
this.billExpenses = this.i?.billExpenseDetails?.filter( this.billExpenses = this.i?.billExpenseDetails?.filter(
(data: any) => data.expenseCode === 'PRE' || data.expenseCode === 'RECE' || data.expenseCode === 'BACK' (data: any) => data.expenseCode === 'PRE' || data.expenseCode === 'RECE' || data.expenseCode === 'BACK'
); );
this.i.scheduleVOList = this.i?.scheduleVOList?.filter((data: any) => data.displayStatus !== 'HIDE');
} }
}); });
this.service.request(this.service.$api_listBillComplianceAbnormalByBillId, { id: this.id }).subscribe(res => { this.service.request(this.service.$api_listBillComplianceAbnormalByBillId, { id: this.id }).subscribe(res => {
@ -108,8 +140,10 @@ export class OrderManagementVehicleDetailComponent implements OnInit {
if (res) { if (res) {
console.log('异常预警'); console.log('异常预警');
console.log(res); console.log(res);
this.warringList = res
} }
}); });
} }
// 取消订单 // 取消订单
cancellation() { cancellation() {

View File

@ -394,6 +394,12 @@ export class OrderManagementVehicleComponent extends BasicTableComponent impleme
className: 'text-left', className: 'text-left',
render: 'loadingTime' render: 'loadingTime'
}, },
{
title: '录单时间',
className: 'text-left',
index: 'recordTime',
width: '170px'
},
{ {
title: '创建时间', title: '创建时间',
className: 'text-left', className: 'text-left',

View File

@ -4,7 +4,7 @@
* @Author : Shiming * @Author : Shiming
* @Date : 2021-12-03 15:31:52 * @Date : 2021-12-03 15:31:52
* @LastEditors : Shiming * @LastEditors : Shiming
* @LastEditTime : 2022-04-11 22:29:34 * @LastEditTime : 2022-04-13 18:52:24
* @FilePath : \\tms-obc-web\\src\\app\\routes\\order-management\\services\\order-management.service.ts * @FilePath : \\tms-obc-web\\src\\app\\routes\\order-management\\services\\order-management.service.ts
* Copyright (C) 2022 huzhenhong. All rights reserved. * Copyright (C) 2022 huzhenhong. All rights reserved.
*/ */
@ -188,6 +188,7 @@ export class OrderManagementService extends ShipperBaseService {
// 查询异常预警表 // 查询异常预警表
$api_get_abnormalWarning = `/api/sdc/abnormalWarning/list/page`; $api_get_abnormalWarning = `/api/sdc/abnormalWarning/list/page`;
$api_get_order_abnormalWarning = `/api/sdc/abnormalWarning/getAbnormalWarningByBillId`;
// 异步导出运营后台大宗订单列表 // 异步导出运营后台大宗订单列表
$api_get_asyncExportBulkList = `/api/sdc/billOperate/asyncExportBulkList`; $api_get_asyncExportBulkList = `/api/sdc/billOperate/asyncExportBulkList`;
@ -203,6 +204,8 @@ export class OrderManagementService extends ShipperBaseService {
$api_abnormalWarning_asyncExport = `/api/sdc/abnormalWarning/asyncExport`; $api_abnormalWarning_asyncExport = `/api/sdc/abnormalWarning/asyncExport`;
// 异步导出投诉管理导出 // 异步导出投诉管理导出
$api_asyncExportComplaintListDrv = `/api/sdc/complaint/operate/asyncExportComplaintListDrv`; $api_asyncExportComplaintListDrv = `/api/sdc/complaint/operate/asyncExportComplaintListDrv`;
//操作日志
public $api_get_log_list = `/api/mdc/pbc/operationLogRecords/getOperationLogRecordsList`;
/** /**
* 根据企业ID获取企业历史网络货运人 * 根据企业ID获取企业历史网络货运人
* @returns * @returns

View File

@ -53,7 +53,7 @@ export class SupplyManagementBulkDetailComponent implements OnInit {
} // 运单类型 } // 运单类型
settlementBasis: any = { settlementBasis: any = {
1: '以收为准', 1: '以收为准',
2: '以发货为准' 2: '以发货为准'
} // 结算依据 } // 结算依据

View File

@ -309,6 +309,9 @@ export class SupplyManagementReleasePublishComponent implements OnInit {
errors: { required: '请填写货物名称' }, errors: { required: '请填写货物名称' },
visibleIf: { visibleIf: {
goodsTypeName: (value: any) => value && value === '其它' goodsTypeName: (value: any) => value && value === '其它'
},
blur: (value: any) => {
this.checkGoodsName();
} }
} }
} }
@ -1237,4 +1240,21 @@ export class SupplyManagementReleasePublishComponent implements OnInit {
} }
this.payChange(); this.payChange();
} }
checkGoodsName() {
const name = this.sf3.getValue('/goodsName1');
if (!name || name.trim().length === 0) {
return;
}
this.service.request(this.service.$api_checkGoodsName, name).subscribe(res => {
if (res === false) {
const modalRef = this.modalService.error({
nzTitle: '货物名称含有违禁词,请重新输入!',
});
modalRef.afterClose.subscribe(result => {
// this.sf3.setValue('/goodsName1', null);
});
}
});
}
} }

View File

@ -190,7 +190,7 @@
</span> </span>
<span>(运费{{ i?.totalFreight | currency }}含附加运费 {{ i?.totalSurcharge | currency }}</span> <span>(运费{{ i?.totalFreight | currency }}含附加运费 {{ i?.totalSurcharge | currency }}</span>
</h3> </h3>
<div *ngIf='i?.resourceStatus !== "1"' >车队长:{{ i?.payeeName }}/{{ i?.payeePhone }}/{{ i?.payeeCardNo }}</div> <div *ngIf='i?.resourceStatus !== "1" && i?.carrierInformationVO?.driverName !== i?.payeeName' >车队长:{{ i?.payeeName }}/{{ i?.payeePhone }}/{{ i?.payeeCardNo }}</div>
</div> </div>
</div> </div>
</nz-card> </nz-card>

View File

@ -196,6 +196,13 @@ export class SupplyManagementVehicleComponent implements OnInit {
}, },
] ]
}) })
tipsModal.afterClose.subscribe(result => {
this.st?.reload();
this.getGoodsSourceStatistical();
})
} else {
this.st?.reload();
this.getGoodsSourceStatistical();
} }
}); });
} }

View File

@ -18,8 +18,8 @@
[compact]="true" [button]="'none'"></sf> [compact]="true" [button]="'none'"></sf>
</div> </div>
<div nz-col [nzSpan]="_$expand ? 24 : 6" class="text-right"> <div nz-col [nzSpan]="_$expand ? 24 : 6" class="text-right">
<button nz-button nzType="primary" [disabled]="!sf.valid" [nzLoading]="service.http.loading" (click)="search()" <button nz-button nzType="primary" [disabled]="!sf.valid" [nzLoading]="service.http.loading"
acl [acl-ability]="['RiskOrder-Search']">查询</button> (click)="search()">查询</button>
<button nz-button (click)="resetSF()">重置</button> <button nz-button (click)="resetSF()">重置</button>
<button nz-button (click)="resetSF()">导出</button> <button nz-button (click)="resetSF()">导出</button>
<button nz-button nzType="link" (click)="expandToggle()"> <button nz-button nzType="link" (click)="expandToggle()">

View File

@ -17,16 +17,8 @@
<sf #sf [schema]="schema" [ui]="ui" [compact]="true" [button]="'none'"></sf> <sf #sf [schema]="schema" [ui]="ui" [compact]="true" [button]="'none'"></sf>
</div> </div>
<div nz-col [nzSpan]="_$expand ? 24 : 6" [class.text-right]="_$expand"> <div nz-col [nzSpan]="_$expand ? 24 : 6" [class.text-right]="_$expand">
<button <button nz-button nzType="primary" [disabled]="!sf.valid" [nzLoading]="service.http.loading"
nz-button (click)="search()">查询</button>
nzType="primary"
[disabled]="!sf.valid"
[nzLoading]="service.http.loading"
(click)="search()"
acl
[acl-ability]="['RiskOrder-Search']"
>查询</button
>
<button nz-button (click)="resetSF()">重置</button> <button nz-button (click)="resetSF()">重置</button>
<button nz-button (click)="resetSF()">导出</button> <button nz-button (click)="resetSF()">导出</button>
<button nz-button nzType="link" (click)="expandToggle()"> <button nz-button nzType="link" (click)="expandToggle()">
@ -41,16 +33,10 @@
<nz-tab *ngFor="let tab of tabs" [nzTitle]="tab.name" (nzSelect)="selectChange(tab)"> </nz-tab> <nz-tab *ngFor="let tab of tabs" [nzTitle]="tab.name" (nzSelect)="selectChange(tab)"> </nz-tab>
</nz-tabset> </nz-tabset>
<!-- 数据列表 --> <!-- 数据列表 -->
<st <st #st [scroll]="{ x: '1200px' }" [data]="service.$api_get_taxDeclaration" [columns]="columns"
#st
[scroll]="{ x: '1200px' }"
[data]="service.$api_get_taxDeclaration"
[columns]="columns"
[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' } }"
[page]="{ show: true, showSize: true, pageSizes: [10, 20, 50, 100] }" [page]="{ show: true, showSize: true, pageSizes: [10, 20, 50, 100] }" [loading]="false">
[loading]="false"
>
<ng-template st-row="orderStatus" let-item let-index="index"> <ng-template st-row="orderStatus" let-item let-index="index">
<a (click)="viewAuditResult(item)" *ngIf="item?.billStatus === '2'">{{ item?.billStatusLabel }}</a> <a (click)="viewAuditResult(item)" *ngIf="item?.billStatus === '2'">{{ item?.billStatusLabel }}</a>
<span *ngIf="item?.billStatus !== '2'">{{ item?.billStatusLabel }}</span> <span *ngIf="item?.billStatus !== '2'">{{ item?.billStatusLabel }}</span>
@ -79,7 +65,8 @@
</div> </div>
</ng-template> </ng-template>
<nz-modal [(nzVisible)]="isVisible" [nzWidth]="600" [nzFooter]="nzModalFooterEvaluate" (nzOnOk)="handleOK()" (nzOnCancel)="handleCancel()"> <nz-modal [(nzVisible)]="isVisible" [nzWidth]="600" [nzFooter]="nzModalFooterEvaluate" (nzOnOk)="handleOK()"
(nzOnCancel)="handleCancel()">
<ng-container *nzModalContent> <ng-container *nzModalContent>
<div> 司机姓名:张三/13812345678 </div> <div> 司机姓名:张三/13812345678 </div>
<div> 是否确认要将该司机的起征点同步调整为超过15万 </div> <div> 是否确认要将该司机的起征点同步调整为超过15万 </div>

View File

@ -24,10 +24,10 @@ export class TaxManagementIndividualDeclareComponent implements OnInit {
@ViewChild('sf', { static: false }) sf!: SFComponent; @ViewChild('sf', { static: false }) sf!: SFComponent;
tabType!: string; tabType!: string;
tabs: any[] = [ tabs: any[] = [
{ name: '待申报', value: '1' }, { name: '待申报', value: '0' },
{ name: '待审核', value: '2' }, { name: '待审核', value: '1' },
{ name: '已通过', value: '3' }, { name: '已通过', value: '2' },
{ name: '不通过', value: '4' }, { name: '不通过', value: '3' },
{ name: '全部', value: '' } { name: '全部', value: '' }
]; ];
selectedIndex = ''; //选择的项目 selectedIndex = ''; //选择的项目
@ -54,7 +54,7 @@ export class TaxManagementIndividualDeclareComponent implements OnInit {
*/ */
get reqParams() { get reqParams() {
const params = Object.assign({}, this.sf?.value || {}, { const params = Object.assign({}, this.sf?.value || {}, {
representationsStatus: this.selectedIndex declareStatus: this.selectedIndex
}); });
delete params._$expand; delete params._$expand;
return { ...params }; return { ...params };
@ -161,7 +161,10 @@ export class TaxManagementIndividualDeclareComponent implements OnInit {
ui: { ui: {
placeholder: '请选择', placeholder: '请选择',
widget: 'select', widget: 'select',
containsAllLabel: true containsAllLabel: true,
visibleIf: {
_$expand: (value: boolean) => value
}
}, },
default: '' default: ''
}, },
@ -271,39 +274,39 @@ export class TaxManagementIndividualDeclareComponent implements OnInit {
} }
/** /**
*撤销 *更正
* @param record 记录实例 * @param record 记录实例
*/ */
recall() { recall() {
if (this.selectedRows.length === 0) { if (this.selectedRows.length === 0) {
this.openWainingModal('请选择需要撤回的数据'); this.openWainingModal('请选择需要更正的数据');
return; return;
} }
this.modal.confirm({ // this.modal.confirm({
nzTitle: '撤回提示', // nzTitle: '撤回提示',
nzContent: ' 撤回后可以重新上传,重新上传会覆盖已上传数据,确定要撤回?', // nzContent: ' 撤回后可以重新上传,重新上传会覆盖已上传数据,确定要撤回?',
nzOkText: '确定', // nzOkText: '确定',
nzCancelText: '取消', // nzCancelText: '取消',
nzOnOk: () => { // nzOnOk: () => {
this.service.request(this.service.$api_recall_reporting, { rows: this.selectedRows }).subscribe((res: any) => { // this.service.request(this.service.$api_recall_reporting, { rows: this.selectedRows }).subscribe((res: any) => {
if (res) { // if (res) {
this.service.msgSrv.success('撤销成功'); // this.service.msgSrv.success('撤销成功');
this.search(); // this.search();
} // }
}); // });
} // }
}); // });
} }
/** /**
*撤销 *修改
* @param record 记录实例 * @param record 记录实例
*/ */
uploadSetting() { uploadSetting() {
if (this.selectedRows.length === 0) { if (this.selectedRows.length === 0) {
this.openWainingModal('请选择需要更新的数据!'); this.openWainingModal('请选择需要修改的数据!');
return; return;
} }
this.isVisible = true // this.isVisible = true
} }
/** /**
@ -328,7 +331,7 @@ export class TaxManagementIndividualDeclareComponent implements OnInit {
} }
selectChange(item: any) { selectChange(item: any) {
this.selectedIndex = item?.representationsStatus || ''; this.selectedIndex = item?.value || '';
setTimeout(() => { setTimeout(() => {
this.st.load(1); this.st.load(1);
}); });
@ -370,7 +373,7 @@ export class TaxManagementIndividualDeclareComponent implements OnInit {
*/ */
upload() { upload() {
if (this.selectedRows.length === 0) { if (this.selectedRows.length === 0) {
this.openWainingModal('请选择需要上传的数据'); this.openWainingModal('请选择需要申报的数据');
return; return;
} }
// this.service.request(this.service.$api_recall_reporting, { rows: this.selectedRows }).subscribe((res: any) => { // this.service.request(this.service.$api_recall_reporting, { rows: this.selectedRows }).subscribe((res: any) => {
@ -387,7 +390,7 @@ export class TaxManagementIndividualDeclareComponent implements OnInit {
*/ */
resetData() { resetData() {
if (this.selectedRows.length === 0) { if (this.selectedRows.length === 0) {
this.openWainingModal('请选择需要上传的数据'); this.openWainingModal('请选择需要更新的数据');
return; return;
} }
let params: any[] = []; let params: any[] = [];

View File

@ -17,8 +17,7 @@
<sf #sf [schema]="schema" [ui]="ui" [compact]="true" [button]="'none'"></sf> <sf #sf [schema]="schema" [ui]="ui" [compact]="true" [button]="'none'"></sf>
</div> </div>
<div nz-col [nzSpan]="_$expand ? 24 : 6" [class.text-right]="_$expand"> <div nz-col [nzSpan]="_$expand ? 24 : 6" [class.text-right]="_$expand">
<button nz-button nzType="primary" [disabled]="!sf.valid" [nzLoading]="isLoading && st.loading" (click)="search()" acl <button nz-button nzType="primary" [disabled]="!sf.valid" [nzLoading]="isLoading && st.loading" (click)="search()" >查询</button>
[acl-ability]="['RiskOrder-Search']">查询</button>
<button nz-button (click)="resetSF()">重置</button> <button nz-button (click)="resetSF()">重置</button>
<button nz-button (click)="resetSF()">导出</button> <button nz-button (click)="resetSF()">导出</button>
<button nz-button nzType="link" (click)="expandToggle()"> <button nz-button nzType="link" (click)="expandToggle()">

View File

@ -261,7 +261,7 @@ export class TaxManagementOrderReportingComponent implements OnInit {
{ title: '卸货地详细地址', index: 'unloadDetailedAddress', className: 'text-center', width: '180px' }, { title: '卸货地详细地址', index: 'unloadDetailedAddress', className: 'text-center', width: '180px' },
{ title: '货主名称', index: 'shipperName', className: 'text-center', width: '180px' }, { title: '货主名称', index: 'shipperName', className: 'text-center', width: '180px' },
{ title: '货主纳税人识别号', index: 'shipperProvinceCode', className: 'text-center', width: '180px' }, { title: '货主纳税人识别号', index: 'shipperProvinceCode', className: 'text-center', width: '180px' },
{ title: '录单时间', index: 'billCreateTime', className: 'text-center', width: '250px' }, { title: '录单时间', index: 'recordTime', className: 'text-center', width: '250px' },
{ title: '接单时间', index: 'wayBillCreateTime', className: 'text-center', width: '200px' }, { title: '接单时间', index: 'wayBillCreateTime', className: 'text-center', width: '200px' },
{ title: '发车时间', index: 'loadTime', className: 'text-center', width: '200px' }, { title: '发车时间', index: 'loadTime', className: 'text-center', width: '200px' },
{ title: '到车时间', index: 'unloadTime', className: 'text-center', width: '150px' }, { title: '到车时间', index: 'unloadTime', className: 'text-center', width: '150px' },

View File

@ -39,17 +39,23 @@ export class CancellationInvoiceComponent implements OnInit {
beforeReq = (requestOptions: STRequestOptions) => { beforeReq = (requestOptions: STRequestOptions) => {
if (this.sf) { if (this.sf) {
Object.assign(requestOptions.body, { Object.assign(requestOptions.body, {
...this.sf.value, ...this.sf.value
});
if (this.sf.value.createTime) {
Object.assign(requestOptions.body, {
createTime: { createTime: {
start: this.sf.value.createTime?.[0] || '', start: this.sf.value.createTime?.[0] || '',
end: this.sf.value.createTime?.[1] || '' end: this.sf.value.createTime?.[1] || ''
} }
}); });
} }
}
if (this.resourceStatus) { if (this.resourceStatus) {
Object.assign(requestOptions.body, { Object.assign(requestOptions.body, {
sts: this.resourceStatus sts: this.resourceStatus
}); });
} else {
delete requestOptions.body.sts;
} }
return requestOptions; return requestOptions;
}; };
@ -401,7 +407,7 @@ export class CancellationInvoiceComponent implements OnInit {
text: '手工开票<br>', text: '手工开票<br>',
iif: item => item.sts != '3', iif: item => item.sts != '3',
click: item => this.requestedAction(item) click: item => this.requestedAction(item)
}, }
// { // {
// text: '推送开票<br>', // text: '推送开票<br>',
// iif: item => item.sts === '1', // iif: item => item.sts === '1',

View File

@ -33,6 +33,7 @@ export class ETCInvoicedRequestedComponent implements OnInit {
...this.sf.value ...this.sf.value
}); });
} }
this.selectedRows = [];
return requestOptions; return requestOptions;
}; };
@ -192,7 +193,7 @@ export class ETCInvoicedRequestedComponent implements OnInit {
visibleIf: { visibleIf: {
expand: (value: boolean) => value expand: (value: boolean) => value
} }
}, }
}, },
ltdId: { ltdId: {
type: 'string', type: 'string',

View File

@ -8,7 +8,7 @@
<nz-card class="statistics-box"> <nz-card class="statistics-box">
<div nz-row nzGutter="8"> <div nz-row nzGutter="8">
<div nz-col [nzXl]="8" [nzLg]="8" [nzSm]="8" [nzXs]="8" se-container [labelWidth]="100" col="1"> <div nz-col [nzXl]="12" [nzLg]="12" [nzSm]="8" [nzXs]="8" se-container [labelWidth]="100" col="1">
<se label="销售方"> <se label="销售方">
{{ headerInfo?.ltdName }} {{ headerInfo?.ltdName }}
</se> </se>
@ -34,7 +34,7 @@
{{ headerInfo?.remarks }} {{ headerInfo?.remarks }}
</se> </se>
</div> </div>
<div nz-col [nzXl]="8" [nzLg]="8" [nzSm]="8" [nzXs]="8" se-container [labelWidth]="100" col="1"> <div nz-col [nzXl]="12" [nzLg]="12" [nzSm]="8" [nzXs]="8" se-container [labelWidth]="100" col="1">
<se label="购买方"> <se label="购买方">
{{ headerInfo?.artoname }} {{ headerInfo?.artoname }}
</se> </se>
@ -57,7 +57,7 @@
{{headerInfo?.otherremarks || '-'}} {{headerInfo?.otherremarks || '-'}}
</se> </se>
</div> </div>
<div *ngIf="isCanEdit && selectedIndex===2" nz-col [nzXl]="8" [nzLg]="8" [nzSm]="8" [nzXs]="8" class="text-right"> <div *ngIf="isCanEdit && selectedIndex===2" nz-col [nzXl]="12" [nzLg]="12" [nzSm]="8" [nzXs]="8" class="text-right">
<ng-container *ngIf="isEdit; else elseTemplate"> <ng-container *ngIf="isEdit; else elseTemplate">
<button nz-button (click)="isEdit = false; invoiceST?.load(1)">取消</button> <button nz-button (click)="isEdit = false; invoiceST?.load(1)">取消</button>
<button nz-button nzType="primary" (click)="saveInvoices()">保 存</button> <button nz-button nzType="primary" (click)="saveInvoices()">保 存</button>
@ -113,7 +113,7 @@
<nz-tab nzTitle="发票明细"> <nz-tab nzTitle="发票明细">
<st #invoiceST [data]="service.$api_get_invoice_details" [columns]="invoiceColumns" size="small" bordered="true" <st #invoiceST [data]="service.$api_get_invoice_details" [columns]="invoiceColumns" size="small" bordered="true"
[page]="{}" [req]="{ process: beforeReq }" [loading]="false" [scroll]="{ x: '1200px', y: '250px' }"> [page]="{}" [req]="{ process: beforeReq }" [loading]="false" [scroll]="{ x: '1200px', y: '250px' }">
<ng-template st-row="vatname" let-item let-index="index"> <ng-template st-row="vatnameLabel" let-item let-index="index">
<nz-select *ngIf="isEdit" [ngModel]="item.vatname" <nz-select *ngIf="isEdit" [ngModel]="item.vatname"
(ngModelChange)="invoiceST.setRow(index, { vatname: $event })" style="width: 100%"> (ngModelChange)="invoiceST.setRow(index, { vatname: $event })" style="width: 100%">
<nz-option [nzValue]="item.value" [nzLabel]="item.label" *ngFor="let item of services"></nz-option> <nz-option [nzValue]="item.value" [nzLabel]="item.label" *ngFor="let item of services"></nz-option>

View File

@ -278,17 +278,17 @@ export class InvoiceDetailComponent implements OnInit {
private initInvoiceST(): STColumn[] { private initInvoiceST(): STColumn[] {
return [ return [
{ title: '服务名称', render: 'vatname', width: 350 }, { title: '服务名称', render: 'vatnameLabel', width: 350 },
{ title: '规格型号', render: 'vatmodel' }, { title: '规格型号', render: 'vatmodel' },
{ title: '单位', render: 'vatunit', width: 100 }, { title: '单位', render: 'vatunit', width: 100 },
{ title: '数量', render: 'vatqty', width: 140, className: 'text-right' }, { title: '数量', render: 'vatqty', width: 140, className: 'text-right' },
{ {
title: '金额', title: '金额',
index: 'vatnotax', index: 'vattax',
width: 140, width: 140,
type: 'widget', type: 'widget',
className: 'text-right', className: 'text-right',
widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.vatnotax }) } widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.vattax }) }
}, },
{ {
title: '税率', title: '税率',
@ -299,11 +299,11 @@ export class InvoiceDetailComponent implements OnInit {
}, },
{ {
title: '税额', title: '税额',
index: 'vattax', index: 'vatnotax',
width: 140, width: 140,
type: 'widget', type: 'widget',
className: 'text-right', className: 'text-right',
widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.vattax }) } widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.vatnotax }) }
} }
]; ];
} }

View File

@ -8,13 +8,12 @@
<nz-card class="statistics-box"> <nz-card class="statistics-box">
<div nz-row nzGutter="8"> <div nz-row nzGutter="8">
<div nz-col [nzXl]="8" [nzLg]="12" nzMd="12" [nzSm]="24" [nzXs]="24" se-container [labelWidth]="150" col="1"> <div nz-col [nzXl]="8" [nzLg]="12" [nzMd]="12" [nzSm]="24" [nzXs]="24" se-container [labelWidth]="150" col="1">
<se label="网络货运人">
<se label="网络货运人" [labelWidth]="133">
{{headerInfo?.ltdidName}} {{headerInfo?.ltdidName}}
</se> </se>
<se label="申请编号">
{{headerInfo?.vatappcode}}
</se>
<se label="已开/全部订单数"> <se label="已开/全部订单数">
{{headerInfo?.vatinvHNum}} / {{headerInfo?.vatinvBillNum}} {{headerInfo?.vatinvHNum}} / {{headerInfo?.vatinvBillNum}}
</se> </se>
@ -31,13 +30,16 @@
{{headerInfo?.provinceName}}{{headerInfo?.cityName}}{{headerInfo?.areaName}}{{headerInfo?.reciaddr}} {{headerInfo?.provinceName}}{{headerInfo?.cityName}}{{headerInfo?.areaName}}{{headerInfo?.reciaddr}}
</se> </se>
</div> </div>
<div nz-col [nzXl]="8" [nzLg]="12" nzMd="12" [nzSm]="24" [nzXs]="24" se-container [labelWidth]="100" col="1"> <div nz-col [nzXl]="8" [nzLg]="12" [nzMd]="12" [nzSm]="24" [nzXs]="24" se-container [labelWidth]="100" col="1">
<se label="购买方"> <se label="购买方">
{{headerInfo?.artoName}} {{headerInfo?.artoName}}
</se> </se>
<se label="纳税号"> <se label="纳税号">
{{headerInfo?.taxNumber}} {{headerInfo?.taxNumber}}
</se> </se>
<se label="申请编号">
{{headerInfo?.vatappcode}}
</se>
<se label="地址"> <se label="地址">
{{headerInfo?.registerAddr}} {{headerInfo?.registerAddr}}
</se> </se>

View File

@ -11,7 +11,7 @@
</se> </se>
<ng-container *ngIf="type===2"> <ng-container *ngIf="type===2">
<se label="收件地址" required> <se label="收件地址" required>
<nz-select [(ngModel)]="data.rcontactInfo" [nzCustomTemplate]="rcontactInfosData"> <nz-select [(ngModel)]="data.rcontactInfo" [nzCustomTemplate]="rcontactInfosData" nzDropdownClassName="print_order_select">
<nz-option [nzValue]="item" nzLabel="Jack" *ngFor="let item of rcontactInfos" <nz-option [nzValue]="item" nzLabel="Jack" *ngFor="let item of rcontactInfos"
[nzCustomContent]="true"> [nzCustomContent]="true">
{{item.contact}} &nbsp; &nbsp;&nbsp; {{item.tel}}<br /> {{item.contact}} &nbsp; &nbsp;&nbsp; {{item.tel}}<br />
@ -25,7 +25,7 @@
</ng-template> </ng-template>
</se> </se>
<se label="寄件地址" required> <se label="寄件地址" required>
<nz-select [(ngModel)]="data.scontactInfo" [nzCustomTemplate]="scontactInfosData"> <nz-select [(ngModel)]="data.scontactInfo" [nzCustomTemplate]="scontactInfosData" nzDropdownClassName="print_order_select">
<nz-option [nzValue]="item" nzLabel="Jack" *ngFor="let item of scontactInfos" <nz-option [nzValue]="item" nzLabel="Jack" *ngFor="let item of scontactInfos"
[nzCustomContent]="true"> [nzCustomContent]="true">
{{item.contact}} &nbsp; &nbsp;&nbsp; {{item.tel}}<br /> {{item.contact}} &nbsp; &nbsp;&nbsp; {{item.tel}}<br />

View File

@ -184,22 +184,22 @@ export class VehicleComponentsListComponent implements OnInit {
} }
} }
}, },
isSelfs: { // isSelfs: {
type: 'string', // type: 'string',
title: '是否入网', // title: '是否入网',
enum: [ // enum: [
{ label: '全部', value: '' }, // { label: '全部', value: '' },
{ label: '是', value: 1 }, // { label: '是', value: 1 },
{ label: '否', value: 0 } // { label: '否', value: 0 }
], // ],
ui: { // ui: {
widget: 'select', // widget: 'select',
allowClear: true, // allowClear: true,
visibleIf: { // visibleIf: {
expand: (value: boolean) => value // expand: (value: boolean) => value
} // }
} // }
} // }
// putOnRecord: { // putOnRecord: {
// type: 'string', // type: 'string',
// title: '是否已备案', // title: '是否已备案',
@ -263,7 +263,7 @@ export class VehicleComponentsListComponent implements OnInit {
3: { text: '已到期', color: 'error' } 3: { text: '已到期', color: 'error' }
} }
}, },
{ title: '是否入网', width: '200px', className: 'text-center', index: 'carOwner' }, // { title: '是否入网', width: '200px', className: 'text-center', index: 'carOwner' },
{ title: '所有人', width: '200px', className: 'text-center', index: 'carOwner' }, { title: '所有人', width: '200px', className: 'text-center', index: 'carOwner' },
{ title: '是否挂靠', width: '150px', className: 'text-center', render: 'isSelf' }, { title: '是否挂靠', width: '150px', className: 'text-center', render: 'isSelf' },
{ title: '挂靠协议', width: '150px', className: 'text-center', render: 'approvalAuditStatus' }, { title: '挂靠协议', width: '150px', className: 'text-center', render: 'approvalAuditStatus' },

View File

@ -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-03-24 19:40:36 * @LastEditTime : 2022-04-13 20:05:09
* @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
@ -57,13 +57,13 @@
<ng-template st-row="exceptionCertificateFirstFilePath" let-item let-index="index"> <ng-template st-row="exceptionCertificateFirstFilePath" let-item let-index="index">
<div class="imgBox"> <div class="imgBox">
<div *ngIf="item?.exceptionCertificateFirstFilePath"> <div *ngIf="item?.exceptionCertificateFirstFilePath">
<app-imagelist style="width: 40px" [imgList]="[item?.exceptionCertificateFirstFilePath]"> </app-imagelist> <app-imagelist style="width: 40px;height: 40px" [imgList]="[item?.exceptionCertificateFirstFilePath]"> </app-imagelist>
</div> </div>
<div *ngIf="item?.exceptionCertificateSecondFilePath"> <div *ngIf="item?.exceptionCertificateSecondFilePath">
<app-imagelist style="width: 40px;" [imgList]="[item?.exceptionCertificateSecondFilePath]"> </app-imagelist> <app-imagelist style="width: 40px;height: 40px" [imgList]="[item?.exceptionCertificateSecondFilePath]"> </app-imagelist>
</div> </div>
<div *ngIf="item?.exceptionCertificateThirdFilePath"> <div *ngIf="item?.exceptionCertificateThirdFilePath">
<app-imagelist style="width: 40px;" [imgList]="[item?.exceptionCertificateThirdFilePath]"> </app-imagelist> <app-imagelist style="width: 40px;height: 40px" [imgList]="[item?.exceptionCertificateThirdFilePath]"> </app-imagelist>
</div> </div>
</div> </div>
</ng-template> </ng-template>

View File

@ -14,6 +14,7 @@
display: flex; display: flex;
img { img {
width: 60px !important; width: 60px !important;
height: 60px !important;
} }
} }

View File

@ -52,7 +52,7 @@ export class WaybillManagementAbnormalAppearComponent implements OnInit {
{ title: '卸货地', index: 'unloadingAddressArr', width: '220px', className: 'text-left' }, { title: '卸货地', index: 'unloadingAddressArr', width: '220px', className: 'text-left' },
{ title: '承运司机', index: 'driver', width: '250px', className: 'text-left' }, { title: '承运司机', index: 'driver', width: '250px', className: 'text-left' },
{ title: '异常信息', index: 'exceptionContent', width: '250px', className: 'text-left' }, { title: '异常信息', index: 'exceptionContent', width: '250px', className: 'text-left' },
{ title: '异常图片', render: 'exceptionCertificateFirstFilePath', width: '200px', className: 'text-left' }, { title: '异常图片', render: 'exceptionCertificateFirstFilePath', width: '300px', className: 'text-left' },
{ title: '上报时间', index: 'createTime', width: '180px', className: 'text-left' } { title: '上报时间', index: 'createTime', width: '180px', className: 'text-left' }
]; ];
columns2: STColumn[] = [ columns2: STColumn[] = [

View File

@ -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-04-08 11:44:33 * @LastEditTime : 2022-04-14 16:38: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\\bulk-detail\\bulk-detail.component.html * @FilePath : \\tms-obc-web\\src\\app\\routes\\waybill-management\\components\\bulk-detail\\bulk-detail.component.html
@ -176,7 +176,8 @@
附加费{{ i?.totalSurcharge | currency }},附加费率{{ (i?.totalRate * 100).toFixed(2)}}% 附加费{{ i?.totalSurcharge | currency }},附加费率{{ (i?.totalRate * 100).toFixed(2)}}%
</div> </div>
</div> </div>
<div>收款人:{{ i?.payee?.name }}/{{ i?.payee?.phone }}/{{ i?.payee?.idNo }}</div> <div *ngIf=" i?.payee?.name !== i?.driver?.name">车队长:{{ i?.payee?.name }}{{ i?.payee?.phone ? "/" +
i?.payee?.phone : ''}}/{{ i?.payee?.idNo }}</div>
</nz-card> </nz-card>
<nz-card nzTitle="附件信息" #distannce4> <nz-card nzTitle="附件信息" #distannce4>

View File

@ -1,5 +1,15 @@
<!--
* @Description :
* @Version : 1.0
* @Author : Shiming
* @Date : 2022-03-14 14:17:38
* @LastEditors : Shiming
* @LastEditTime : 2022-04-13 19:41:48
* @FilePath : \\tms-obc-web\\src\\app\\shared\\components\\logistics-time-line\\logistics-time-line.component.html
* Copyright (C) 2022 huzhenhong. All rights reserved.
-->
<nz-timeline [nzMode]="'left'"> <nz-timeline [nzMode]="'left'">
<nz-timeline-item *ngFor="let item of data" [nzLabel]="item.time" [nzColor]="item.color"> <nz-timeline-item *ngFor="let item of data" [nzLabel]="item.time" [nzColor]="item?.color">
<label [innerHtml]="item.value"></label> <label [innerHtml]="item?.value"></label>
</nz-timeline-item> </nz-timeline-item>
</nz-timeline> </nz-timeline>

View File

@ -104,3 +104,9 @@ nz-range-picker {
} }
} }
} }
.print_order_select {
cdk-virtual-scroll-viewport {
min-height: 54px;
}
}