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

This commit is contained in:
Taric Xin
2022-03-30 14:55:53 +08:00
9 changed files with 383 additions and 56 deletions

View File

@ -4,8 +4,8 @@
* @Author : Shiming
* @Date : 2022-03-30 14:00:43
* @LastEditors : Shiming
* @LastEditTime : 2022-03-30 14:06:01
* @FilePath : \\tms-obc-web\\src\\app\\routes\\tax-management\\components\\reporting\\order-reporting\\order-reporting.component.html
* @LastEditTime : 2022-03-30 14:41:01
* @FilePath : \\tms-obc-web\\src\\app\\routes\\tax-management\\components\\order-reporting\\order-reporting.component.html
* Copyright (C) 2022 huzhenhong. All rights reserved.
-->
<page-header-wrapper [title]="''"></page-header-wrapper>
@ -42,6 +42,7 @@
<ng-template st-row="orderStatus" let-item let-index="index">
<a (click)="viewAuditResult(item)" *ngIf="item?.billStatus === '2'">{{item?.billStatusLabel}}</a>
<span *ngIf="item?.billStatus !== '2'">{{item?.billStatusLabel}}</span>
<span style="color: red;" (click)="unnormal(item)">异常</span>
</ng-template>
@ -62,6 +63,7 @@
</div>
<button nz-button nzType="primary" (click)="upload()">上传</button>
<button nz-button nzType="primary" (click)="recall()">撤回</button>
<button nz-button nzType="primary" (click)="uploadSetting()">上传设置</button>
<button nz-button nzType="primary" (click)="resetData()">更新数据</button>
<button nz-button nzType="primary" (click)="uploadSetting()">税务设置</button>
</div>
</ng-template>

View File

@ -7,6 +7,8 @@ import { NzModalService } from 'ng-zorro-antd/modal';
import { of } from 'rxjs';
import { map } from 'rxjs/operators';
import { TaxManagementService } from '../../services/tax-management.service';
import { TaxManagementUploadSettingComponent } from './upload-setting/upload-setting.component';
import { TaxManagementOrderVerifyResultComponent } from './verify-result/verify-result.component';
// import { DatatableReportingUploadSettingComponent } from '../upload-setting/upload-setting.component';
// import { DatatableReportingVerifyResultComponent } from '../verify-result/verify-result.component';
@ -114,9 +116,6 @@ export class TaxManagementOrderReportingComponent implements OnInit {
searchDebounceTime: 300,
searchLoadingText: '搜索中...',
allowClear: true,
visibleIf: {
_$expand: (value: boolean) => value
},
onSearch: (q: any) => {
let str =q.replace(/^\s+|\s+$/g,"");
if (str) {
@ -240,10 +239,8 @@ export class TaxManagementOrderReportingComponent implements OnInit {
initST() {
this.columns = [
{ title: '', type: 'checkbox', className: 'text-center', width: '60px', },
{ title: '订单状态', render: 'orderStatus', className: 'text-center', width: '120px', },
{ title: '司机状态', render: 'driverStatus', className: 'text-center', width: '120px', },
{ title: '车辆状态', render: 'carStatus', className: 'text-center', width: '120px', },
{ title: '本地校验66', render: 'localValid', className: 'text-center', width: '120px', },
{ title: '上传状态', render: 'orderStatus', className: 'text-center', width: '120px', },
{ title: '本地校验', render: 'localValid', className: 'text-center', width: '120px', },
{
title: '订单号',
render: 'billComplianceVOS',
@ -251,37 +248,41 @@ export class TaxManagementOrderReportingComponent implements OnInit {
width: '150px',
},
{ title: '运单号', render: 'freightDetails', className: 'text-center', width: '150px', },
{
title: '网络货运人',
render: 'serviceType',
className: 'text-center',
width: '180px',
},
{ title: '统一社会信用代码', index: 'loadingPlace', render: 'loadingPlace', className: 'text-center', width: '200px' },
{ title: '业务类型', index: 'dischargePlace', render: 'dischargePlace', className: 'text-center', width: '120px' },
{ title: '运单生成时间', render: 'goodsInfoVOList', className: 'text-center', width: '180px' },
{ title: '发货时间', render: 'driver', className: 'text-center', width: '180px' },
{ title: '收货时间', render: 'payeeName', className: 'text-center', width: '180px' },
{ title: '托运人名称', render: 'transportInfo', className: 'text-center', width: '250px' },
{ title: '托运人统一社会信用代码', index: 'loadingPlace', render: 'loadingPlace', className: 'text-center', width: '200px' },
{ title: '装货地址', index: 'dischargePlace', render: 'dischargePlace', className: 'text-center', width: '200px' },
{ title: '收货方名称', render: 'driver', className: 'text-center', width: '150px' },
{ title: '收货地址', render: 'payeeName', className: 'text-center', width: '150px' },
{ title: '运费金额', render: 'amount', className: 'text-center', width: '250px' },
{ title: '车牌号', render: 'payeeName', className: 'text-center', width: '150px' },
{ title: '车牌颜色', render: 'transportInfo', className: 'text-center', width: '250px' },
{ title: '装货地', index: 'loadingPlace', render: 'loadingPlace', className: 'text-center', width: '200px' },
{ title: '装货地详细地址', index: 'loadingPlace', render: 'loadingPlace', className: 'text-center', width: '200px' },
{ title: '卸货地', index: 'dischargePlace', render: 'dischargePlace', className: 'text-center', width: '120px' },
{ title: '卸货地详细地址', render: 'goodsInfoVOList', className: 'text-center', width: '180px' },
{ title: '货主名称', render: 'driver', className: 'text-center', width: '180px' },
{ title: '货主纳税人识别号', render: 'payeeName', className: 'text-center', width: '180px' },
{ title: '录单时间', render: 'transportInfo', className: 'text-center', width: '250px' },
{ title: '接单时间', index: 'loadingPlace', render: 'loadingPlace', className: 'text-center', width: '200px' },
{ title: '发车时间', index: 'dischargePlace', render: 'dischargePlace', className: 'text-center', width: '200px' },
{ title: '到车时间', render: 'driver', className: 'text-center', width: '150px' },
{ title: '结束时间', render: 'payeeName', className: 'text-center', width: '150px' },
{ title: '订单金额', render: 'amount', className: 'text-center', width: '250px' },
{ title: '司机姓名', render: 'payeeName', className: 'text-center', width: '150px' },
{ title: '司机手机号码', render: 'transportInfo', className: 'text-center', width: '200px' },
{ title: '司机身份证号', render: 'payeeName', className: 'text-center', width: '150px' },
{ title: '货物信息', render: 'transportInfo', className: 'text-center', width: '180px' },
{ title: '实际承运人名称', render: 'payeeName', className: 'text-center', width: '150px' },
{ title: '实际承运人证件号码', render: 'transportInfo', className: 'text-center', width: '200px' },
{ title: '实际承运人道路运输许可证号', render: 'payeeName', className: 'text-center', width: '150px' },
{ title: '车辆轨迹', render: 'transportInfo', className: 'text-center', width: '250px' },
{ title: '司机轨迹', render: 'payeeName', className: 'text-center', width: '150px' },
{ title: '上传次数', render: 'transportInfo', className: 'text-center', width: '150px' },
{ title: '上传时间', render: 'transportInfo', className: 'text-center', width: '180px' },
{ title: '司机身份证号', render: 'transportInfo', className: 'text-center', width: '250px' },
{ title: '车牌号', render: 'payeeName', className: 'text-center', width: '150px' },
{ title: '货物信息', render: 'transportInfo', className: 'text-center', width: '200px' },
{ title: '运费金额', render: 'payeeName', className: 'text-center', width: '150px' },
{ title: '装卸方式', render: 'transportInfo', className: 'text-center', width: '180px' },
{ title: '支付方式', render: 'payeeName', className: 'text-center', width: '150px' },
{ title: '支付账号', render: 'transportInfo', className: 'text-center', width: '200px' },
{ title: '银行流水号', render: 'payeeName', className: 'text-center', width: '150px' },
{ title: '收款人姓名', render: 'transportInfo', className: 'text-center', width: '250px' },
{ title: '收款人身份证号码', render: 'payeeName', className: 'text-center', width: '150px' },
{ title: '装货照片', render: 'transportInfo', className: 'text-center', width: '150px' },
{ title: '卸货照片', render: 'transportInfo', className: 'text-center', width: '180px' },
{ title: '提货单', render: 'transportInfo', className: 'text-center', width: '180px' },
{ title: '签收单', render: 'transportInfo', className: 'text-center', width: '180px' },
{ title: '上传次数', render: 'transportInfo', className: 'text-center', width: '180px' },
{ title: '最近上传时间', render: 'transportInfo', className: 'text-center', width: '180px' },
];
}
@ -311,6 +312,43 @@ export class TaxManagementOrderReportingComponent implements OnInit {
}
});
}
/**
*撤销
* @param record 记录实例
*/
resetData() {
if (this.selectedRows.length === 0) {
this.openWainingModal('请选择需要更新的数据!');
return;
}
this.service.request(this.service.$api_recall_reporting, { rows: this.selectedRows }).subscribe((res: any) => {
if (res) {
this.service.msgSrv.success('更新成功');
this.search();
}
})
}
/**
*撤销
* @param record 记录实例
*/
unnormal(value: any) {
this.modal.confirm({
nzTitle: '税务审核结果',
nzContent: '订单结算时间所在月份与申报月份不一致',
nzOkText: '确定',
nzCancelText: '',
nzOnOk: () => {
this.service.request(this.service.$api_recall_reporting, { rows: this.selectedRows }).subscribe((res: any) => {
if (res) {
this.service.msgSrv.success('撤销成功');
this.search();
}
})
}
});
}
selectChange(item: any) {
@ -373,32 +411,32 @@ export class TaxManagementOrderReportingComponent implements OnInit {
* @param params 上传设置
*/
uploadSetting() {
// const modalRef = this.modal.create({
// nzTitle: '上传设置',
// nzWidth: 600,
// nzContent: DatatableReportingUploadSettingComponent,
// nzComponentParams: {},
// nzFooter: null
// });
// modalRef.afterClose.subscribe(res => {
// })
const modalRef = this.modal.create({
nzTitle: '税务上传设置',
nzWidth: 600,
nzContent: TaxManagementUploadSettingComponent,
nzComponentParams: {},
nzFooter: null
});
modalRef.afterClose.subscribe(res => {
})
}
/**
* 查看校验结果
*/
viewResult(item: any) {
// const modalRef = this.modal.create({
// nzTitle: '校验结果',
// nzWidth: 1200,
// nzContent: DatatableReportingVerifyResultComponent,
// nzComponentParams: {
// record: item
// },
// nzFooter: null
// });
// modalRef.afterClose.subscribe(res => {
// })
const modalRef = this.modal.create({
nzTitle: '本地校验结果',
nzWidth: 1200,
nzContent: TaxManagementOrderVerifyResultComponent,
nzComponentParams: {
record: item
},
nzFooter: null
});
modalRef.afterClose.subscribe(res => {
})
}
/**

View File

@ -0,0 +1,8 @@
<nz-spin [nzSpinning]="!i"></nz-spin>
<sf *ngIf="i" #sf mode="edit" [schema]="schema" [ui]="ui" [formData]="i" button="none">
<div class="modal-footer">
<button nz-button type="button" (click)="close()">取消</button>
<button nz-button type="submit" nzType="primary" (click)="save(sf.value)" [disabled]="!sf.valid"
[nzLoading]="service.http.loading">修改</button>
</div>
</sf>

View File

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

View File

@ -0,0 +1,110 @@
import { Component, OnInit } from '@angular/core';
import { SFSchema, SFUISchema } from '@delon/form';
import { NzModalRef } from 'ng-zorro-antd/modal';
import { TaxManagementService } from '../../../services/tax-management.service';
@Component({
selector: 'app-datatable-upload-setting',
templateUrl: './upload-setting.component.html',
})
export class TaxManagementUploadSettingComponent implements OnInit {
record: any = {};
i: any = {};
schema!: SFSchema;
ui!: SFUISchema;
constructor(
private modal: NzModalRef,
public service: TaxManagementService
) { }
ngOnInit(): void {
this.initSF();
// this.loadData();
}
/**
* 初始化查询表单
*/
initSF() {
this.schema = {
properties: {
no: {
type: 'string',
title: '订单数据',
enum: [
{
label: '手动上传',
value: '1'
},
{
label: '自动上传',
value: '2'
}
],
description: '开启自动上传后,订单将在支付完成且风险单校验通过后自动上传',
ui: {
widget: 'radio',
}
},
owner: {
type: 'string',
title: '资金数据',
enum: [
{
label: '手动上传',
value: '1'
},
{
label: '自动上传',
value: '2'
}
],
description: '开启自动上传后,订单将在支付完成且风险单校验通过后自动上传',
ui: {
widget: 'radio',
}
},
},
required: ['owner', 'no'],
}
this.ui = {
'*': {
spanLabelFixed: 100,
grid: { span: 24 },
},
};
}
/**
* 获取设置数据
*/
loadData() {
this.service.request(this.service.$api_get_upload_setting, {}).subscribe(res => {
if (res) {
this.i = res;
}
})
}
/**
* 修改
* @param value
*/
save(value: any): void {
this.service.request(this.service.$api_upload_setting_save, { ...value }).subscribe(res => {
if (res) {
this.service.msgSrv.success('保存成功');
this.modal.close(true);
}
})
}
close(): void {
this.modal.destroy();
}
}

View File

@ -0,0 +1,23 @@
<div nz-row>
<div style="width: 10%;">
<nz-tabset [nzTabPosition]="'left'" style="height: 100%;">
<nz-tab [nzTitle]="item?.name" *ngFor="let item of tabs" (nzSelect)="selectTab(item)"></nz-tab>
</nz-tabset>
</div>
<div style="width: 90%;">
<st #st [scroll]="{x:'1000px'}" [data]="service.$api_order_reporting_page" [columns]="columns"
[req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, params: reqParams }"
[res]="{ reName: { list: 'data.records', total: 'data.total' } }" [page]="{ show: false}" [loading]="false"
[bordered]="true">
<ng-template st-row="freightDetails" let-item>
<div *ngFor="let item of item.freightDetails">
<div>{{item.expenseName}}:{{item.price | currency}} </div>
</div>
</ng-template>
</st>
</div>
</div>
<div class="modal-footer">
<button nz-button type="button" (click)="close()">取消</button>
<button nz-button type="submit" nzType="primary" (click)="update()" [nzLoading]="service.http.loading">修改</button>
</div>

View File

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

View File

@ -0,0 +1,94 @@
/*
* @Description :
* @Version : 1.0
* @Author : Shiming
* @Date : 2022-03-30 14:26:01
* @LastEditors : Shiming
* @LastEditTime : 2022-03-30 14:28:54
* @FilePath : \\tms-obc-web\\src\\app\\routes\\tax-management\\components\\order-reporting\\verify-result\\verify-result.component.ts
* Copyright (C) 2022 huzhenhong. All rights reserved.
*/
import { Component, OnInit, ViewChild } from '@angular/core';
import { Router } from '@angular/router';
import { STColumn, STComponent } from '@delon/abc/st';
import { SFSchema } from '@delon/form';
import { ModalHelper, _HttpClient } from '@delon/theme';
import { NzModalRef } from 'ng-zorro-antd/modal';
import { TaxManagementService } from '../../../services/tax-management.service';
@Component({
selector: 'app-tax-management-order-reporting-verify-result',
templateUrl: './verify-result.component.html',
})
export class TaxManagementOrderVerifyResultComponent implements OnInit {
url = `/user`;
searchSchema: SFSchema = {
properties: {
no: {
type: 'string',
title: '编号'
}
}
};
@ViewChild('st') private readonly st!: STComponent;
columns: STColumn[] = [];
record: any = {}
tabs: any[] = [
{ name: '平台信息', value: '1' },
{ name: '货主信息', value: '2' },
{ name: '司机信息', value: '3' },
{ name: '订单信息', value: '4' },
];
get reqParams() {
return {};
}
constructor(public service: TaxManagementService, private modalRef: NzModalRef, public router: Router) {
}
ngOnInit(): void {
this.initST();
}
/**
* 初始化数据列表
*/
initST() {
this.columns = [
{ title: '序号', type: 'no', className: 'text-center', width: '60px', },
{ title: '校验字段', index: 'orderStatus', className: 'text-center', width: '120px', },
{ title: '是否必填', index: 'orderStatus', className: 'text-center', width: '100px', },
{ title: '上传值', index: 'orderStatus', className: 'text-center', width: '120px', },
{ title: '本地校验', index: 'orderStatus', className: 'text-center', width: '100px', },
{ title: '错误内容', index: 'orderStatus', className: 'text-center', width: '150px', },
]
}
add(): void {
// this.modal
// .createStatic(FormEditComponent, { i: { id: 0 } })
// .subscribe(() => this.st.reload());
}
selectTab(e: any) {
}
update() {
if (this.record?.billType === '1') {
window.open(location.origin + `/#/order-management/vehicle-detailChange/${this.record?.id}`)
} else if (this.record.billType === '2') {
window.open(location.origin + `/#/order-management/bulk-detailChange/${this.record?.id}`);
}
}
close(): void {
this.modalRef.destroy();
}
}

View File

@ -4,18 +4,22 @@
* @Author : Shiming
* @Date : 2022-03-30 13:58:28
* @LastEditors : Shiming
* @LastEditTime : 2022-03-30 14:14:57
* @LastEditTime : 2022-03-30 14:35:17
* @FilePath : \\tms-obc-web\\src\\app\\routes\\tax-management\\taxmanagement.module.ts
* Copyright (C) 2022 huzhenhong. All rights reserved.
*/
import { NgModule, Type } from '@angular/core';
import { SharedModule, SHARED_G2_MODULES } from '@shared';
import { TaxManagementOrderReportingComponent } from './components/order-reporting/order-reporting.component';
import { TaxManagementUploadSettingComponent } from './components/order-reporting/upload-setting/upload-setting.component';
import { TaxManagementOrderVerifyResultComponent } from './components/order-reporting/verify-result/verify-result.component';
import { TaxManagementModuleRoutingModule } from './tax-management-routing.module';
const COMPONENTS: Type<void>[] = [
TaxManagementOrderReportingComponent
TaxManagementOrderReportingComponent,
TaxManagementOrderVerifyResultComponent,
TaxManagementUploadSettingComponent
]