Merge branch 'develop'
This commit is contained in:
@ -4,7 +4,7 @@
|
||||
* @Author : Shiming
|
||||
* @Date : 2022-01-18 09:51:21
|
||||
* @LastEditors : Shiming
|
||||
* @LastEditTime : 2022-05-06 15:29:21
|
||||
* @LastEditTime : 2022-05-06 16:57:23
|
||||
* @FilePath : \\tms-obc-web\\proxy.conf.js
|
||||
* Copyright (C) 2022 huzhenhong. All rights reserved.
|
||||
*/
|
||||
|
||||
@ -1,7 +1,5 @@
|
||||
<page-header-wrapper [title]="''"></page-header-wrapper>
|
||||
|
||||
<!-- <page-header-wrapper [title]="''"></page-header-wrapper>
|
||||
<nz-card>
|
||||
<!-- 搜索表单 -->
|
||||
<div nz-row nzGutter="8">
|
||||
<div nz-col [nzSpan]="_$expand ? 24 : 18">
|
||||
<sf #sf [schema]="schema" [ui]="ui" [compact]="true" [button]="'none'"></sf>
|
||||
@ -17,18 +15,19 @@
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</nz-card>
|
||||
<nz-card>
|
||||
<nz-tabset [nzTabBarExtraContent]="extraTemplate" *ngIf="tabs.length>0">
|
||||
</nz-card> -->
|
||||
<nz-card class="table-box">
|
||||
<div class="tab_header">
|
||||
<label class="page_title"> <label class="driver">|</label> 资金上报</label>
|
||||
<nz-tabset [nzTabBarExtraContent]="extraTemplate" *ngIf="tabs.length>0">
|
||||
<nz-tab *ngFor="let tab of tabs" [nzTitle]="tab.name" (nzSelect)="selectChange(tab)">
|
||||
</nz-tab>
|
||||
</nz-tabset>
|
||||
</div>
|
||||
|
||||
<nz-tab *ngFor="let tab of tabs" [nzTitle]="tab.name" (nzSelect)="selectChange(tab)">
|
||||
</nz-tab>
|
||||
</nz-tabset>
|
||||
<!-- 数据列表 -->
|
||||
<st #st [scroll]="{x:'1200px'}" [data]="service.$api_get_fund_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: true, showSize: true, pageSizes: [10,20, 50, 100] }" (change)="changeSt($event)">
|
||||
<st #st [scroll]="{x:'1200px',y:scrollY}" [data]="service.$api_get_fund_reporting_page" [columns]="columns"
|
||||
[req]="{ params: reqParams }" [page]="{ }" (change)="changeSt($event)">
|
||||
<ng-template st-row="uploadStatus" let-item>
|
||||
<span [ngClass]="{'text-red-dark':item?.uploadStatus === '4'}">{{item?.uploadStatusLabel}}</span>
|
||||
</ng-template>
|
||||
@ -52,14 +51,28 @@
|
||||
</st>
|
||||
</nz-card>
|
||||
<ng-template #extraTemplate>
|
||||
<div class="d-flex align-items-center">
|
||||
<div class="d-flex align-items-center mr-sm">
|
||||
<div class="mr-md">
|
||||
已选择
|
||||
<strong class="text-red">{{ selectedRows.length }}</strong> 条数据
|
||||
</div>
|
||||
<button nz-button nzType="primary" (click)="upload()" acl [acl-ability]="['FUND-REPORTING-upload']">上传</button>
|
||||
<button nz-button nzType="primary" (click)="recall()" acl [acl-ability]="['FUND-REPORTING-recall']">撤回</button>
|
||||
<button nz-button nzType="primary" (click)="updateData()" acl
|
||||
[acl-ability]="['FUND-REPORTING-upload-data']">更新数据</button>
|
||||
<button nz-button nzDanger [nzLoading]="isLoading && st.loading" acl [acl-ability]="['FUND-REPORTING-search']"
|
||||
(click)="openDrawer()">筛选</button>
|
||||
<button nz-button nzDanger (click)="export()" acl [acl-ability]="['FUND-REPORTING-export']"> 导出</button>
|
||||
<button nz-button nz-dropdown [nzDropdownMenu]="menu" nzPlacement="bottomLeft">
|
||||
更多<i nz-icon nzType="down" nzTheme="outline"></i></button>
|
||||
<nz-dropdown-menu #menu="nzDropdownMenu">
|
||||
<ul nz-menu>
|
||||
<li nz-menu-item (click)="upload()" acl [acl-ability]="['FUND-REPORTING-upload']">
|
||||
上传
|
||||
</li>
|
||||
<li nz-menu-item (click)="recall()" acl [acl-ability]="['FUND-REPORTING-recall']">
|
||||
撤回
|
||||
</li>
|
||||
<li nz-menu-item (click)="updateData()" acl [acl-ability]="['FUND-REPORTING-upload-data']">
|
||||
更新数据
|
||||
</li>
|
||||
</ul>
|
||||
</nz-dropdown-menu>
|
||||
</div>
|
||||
</ng-template>
|
||||
</ng-template>
|
||||
@ -1,24 +1,21 @@
|
||||
import { Component, OnInit, ViewChild } from '@angular/core';
|
||||
import { ActivatedRoute, Router } from '@angular/router';
|
||||
import { STChange, STColumn, STComponent, STData } from '@delon/abc/st';
|
||||
import { SFComponent, SFDateWidgetSchema, SFSchema, SFUISchema } from '@delon/form';
|
||||
import { ShipperBaseService } from '@shared';
|
||||
import { SFDateWidgetSchema } from '@delon/form';
|
||||
import { SearchDrawerService } from '@shared';
|
||||
import { NzModalService } from 'ng-zorro-antd/modal';
|
||||
import { BasicTableComponent } from 'src/app/routes/commom';
|
||||
import { ReportingService } from '../../services/reporting.service';
|
||||
import { DatatableReportingFundInfoComponent } from '../fund-info/fund-info.component';
|
||||
|
||||
@Component({
|
||||
selector: 'app-datatable-fund-reporting',
|
||||
templateUrl: './fund-reporting.component.html',
|
||||
styleUrls: ['./fund-reporting.component.less']
|
||||
styleUrls: ['../../../../commom/less/commom-table.less']
|
||||
})
|
||||
export class DatatableFundReportingComponent implements OnInit {
|
||||
_$expand = false;
|
||||
ui!: SFUISchema;
|
||||
schema!: SFSchema;
|
||||
export class DatatableFundReportingComponent extends BasicTableComponent implements OnInit {
|
||||
columns!: STColumn[];
|
||||
@ViewChild('st', { static: false }) st!: STComponent;
|
||||
@ViewChild('sf', { static: false }) sf!: SFComponent;
|
||||
tabType!: string;
|
||||
tabs: any[] = [
|
||||
{ name: '待上传', value: '1' },
|
||||
@ -36,15 +33,9 @@ export class DatatableFundReportingComponent implements OnInit {
|
||||
private router: Router,
|
||||
private ar: ActivatedRoute,
|
||||
private modal: NzModalService,
|
||||
public shipperSrv: ShipperBaseService
|
||||
public searchDrawerService: SearchDrawerService
|
||||
) {
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询字段个数
|
||||
*/
|
||||
get queryFieldCount(): number {
|
||||
return Object.keys(this.schema?.properties || {}).length;
|
||||
super(searchDrawerService);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -65,22 +56,6 @@ export class DatatableFundReportingComponent implements OnInit {
|
||||
// return this.st?.list.filter((item: any) => item.checked) || [];
|
||||
// }
|
||||
|
||||
/**
|
||||
* 伸缩查询条件
|
||||
*/
|
||||
expandToggle() {
|
||||
this._$expand = !this._$expand;
|
||||
this.sf?.setValue('/_$expand', this._$expand);
|
||||
}
|
||||
|
||||
/**
|
||||
* 重置表单
|
||||
*/
|
||||
resetSF() {
|
||||
this.sf.reset();
|
||||
this._$expand = false;
|
||||
this.isLoading = true
|
||||
}
|
||||
/**
|
||||
* 程序初始化入口
|
||||
*/
|
||||
@ -95,29 +70,26 @@ export class DatatableFundReportingComponent implements OnInit {
|
||||
initSF() {
|
||||
this.schema = {
|
||||
properties: {
|
||||
_$expand: { type: 'boolean', ui: { hidden: true } },
|
||||
orderCode: { title: '订单号', type: 'string', ui: { placeholder: '请输入' } },
|
||||
wayBillCode: {
|
||||
type: 'string',
|
||||
title: '运单号',
|
||||
ui: {
|
||||
placeholder: '请输入',
|
||||
},
|
||||
placeholder: '请输入'
|
||||
}
|
||||
},
|
||||
serialNumberCode: {
|
||||
type: 'string',
|
||||
title: '流水单号',
|
||||
ui: {
|
||||
placeholder: '请输入',
|
||||
},
|
||||
placeholder: '请输入'
|
||||
}
|
||||
},
|
||||
carrier: {
|
||||
title: '承运司机',
|
||||
type: 'string',
|
||||
ui: {
|
||||
placeholder: '请输入司机姓名', visibleIf: {
|
||||
_$expand: (value: boolean) => value,
|
||||
},
|
||||
placeholder: '请输入司机姓名'
|
||||
}
|
||||
},
|
||||
carNumber: {
|
||||
@ -125,10 +97,7 @@ export class DatatableFundReportingComponent implements OnInit {
|
||||
type: 'string',
|
||||
maxLength: 9,
|
||||
ui: {
|
||||
placeholder: '请输入',
|
||||
visibleIf: {
|
||||
_$expand: (value: boolean) => value,
|
||||
},
|
||||
placeholder: '请输入'
|
||||
}
|
||||
},
|
||||
payee: {
|
||||
@ -136,10 +105,7 @@ export class DatatableFundReportingComponent implements OnInit {
|
||||
type: 'string',
|
||||
maxLength: 9,
|
||||
ui: {
|
||||
placeholder: '请输入',
|
||||
visibleIf: {
|
||||
_$expand: (value: boolean) => value,
|
||||
},
|
||||
placeholder: '请输入'
|
||||
}
|
||||
},
|
||||
// uploadStatus: {
|
||||
@ -170,10 +136,7 @@ export class DatatableFundReportingComponent implements OnInit {
|
||||
ui: {
|
||||
placeholder: '请选择',
|
||||
allowClear: true,
|
||||
widget: 'select',
|
||||
visibleIf: {
|
||||
_$expand: (value: boolean) => value,
|
||||
},
|
||||
widget: 'select'
|
||||
}
|
||||
},
|
||||
ltdId: {
|
||||
@ -182,10 +145,7 @@ export class DatatableFundReportingComponent implements OnInit {
|
||||
ui: {
|
||||
placeholder: '请选择',
|
||||
widget: 'select',
|
||||
asyncData: () => this.shipperSrv.getNetworkFreightForwarder({}, false),
|
||||
visibleIf: {
|
||||
_$expand: (value: boolean) => value,
|
||||
},
|
||||
asyncData: () => this.service.getNetworkFreightForwarder({}, false),
|
||||
allowClear: true
|
||||
}
|
||||
},
|
||||
@ -195,11 +155,8 @@ export class DatatableFundReportingComponent implements OnInit {
|
||||
ui: {
|
||||
widget: 'sl-from-to',
|
||||
type: 'date',
|
||||
format: 'yyyy-MM-dd',
|
||||
visibleIf: {
|
||||
_$expand: (value: boolean) => value,
|
||||
},
|
||||
} as SFDateWidgetSchema,
|
||||
format: 'yyyy-MM-dd'
|
||||
} as SFDateWidgetSchema
|
||||
},
|
||||
uploadTime: {
|
||||
title: '上传时间',
|
||||
@ -207,17 +164,10 @@ export class DatatableFundReportingComponent implements OnInit {
|
||||
ui: {
|
||||
widget: 'sl-from-to',
|
||||
type: 'date',
|
||||
format: 'yyyy-MM-dd',
|
||||
visibleIf: {
|
||||
_$expand: (value: boolean) => value,
|
||||
},
|
||||
} as SFDateWidgetSchema,
|
||||
},
|
||||
},
|
||||
};
|
||||
this.ui = {
|
||||
'*': { spanLabelFixed: 120, grid: { span: 8, gutter: 4 }, enter: () => this.search() },
|
||||
$time: { grid: { span: 24 } },
|
||||
format: 'yyyy-MM-dd'
|
||||
} as SFDateWidgetSchema
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
@ -226,22 +176,22 @@ export class DatatableFundReportingComponent implements OnInit {
|
||||
*/
|
||||
initST() {
|
||||
this.columns = [
|
||||
{ title: '', type: 'checkbox', className: 'text-center', width: '60px', },
|
||||
{ title: '上传状态', render: 'uploadStatus', className: 'text-center', width: '120px', },
|
||||
{ title: '本地校验', render: 'verifyStatus', className: 'text-center', width: '120px', },
|
||||
{ title: '流水单号', index: 'serialNumberCode', className: 'text-center', width: '190px', },
|
||||
{ title: '', type: 'checkbox', className: 'text-center', width: '60px' },
|
||||
{ title: '上传状态', render: 'uploadStatus', className: 'text-center', width: '120px' },
|
||||
{ title: '本地校验', render: 'verifyStatus', className: 'text-center', width: '120px' },
|
||||
{ title: '流水单号', index: 'serialNumberCode', className: 'text-center', width: '190px' },
|
||||
{
|
||||
title: '订单号',
|
||||
render: 'orderCode',
|
||||
className: 'text-center',
|
||||
width: '180px',
|
||||
width: '180px'
|
||||
},
|
||||
{ title: '运单号', render: 'wayBillCode', className: 'text-center', width: '180px', },
|
||||
{ title: '运单号', render: 'wayBillCode', className: 'text-center', width: '180px' },
|
||||
{
|
||||
title: '网络货运人',
|
||||
index: 'ltdName',
|
||||
className: 'text-center',
|
||||
width: '180px',
|
||||
width: '180px'
|
||||
},
|
||||
{ title: '实际承运人名称', index: 'carrier', className: 'text-center', width: '150px' },
|
||||
{ title: '实际承运人证件号码', index: 'cardId', className: 'text-center', width: '200px' },
|
||||
@ -259,12 +209,10 @@ export class DatatableFundReportingComponent implements OnInit {
|
||||
{ title: '实际支付金额', render: 'payAmount', className: 'text-center', width: '150px' },
|
||||
{ title: '交易时间', index: 'transactionTime', className: 'text-center', width: '180px' },
|
||||
{ title: '上传次数', index: 'uploadFrequency', className: 'text-center', width: '120px' },
|
||||
{ title: '上传时间', index: 'uploadTime', className: 'text-center', width: '180px' },
|
||||
{ title: '上传时间', index: 'uploadTime', className: 'text-center', width: '180px' }
|
||||
];
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
*撤销
|
||||
* @param record 记录实例
|
||||
@ -287,11 +235,9 @@ export class DatatableFundReportingComponent implements OnInit {
|
||||
|
||||
this.search();
|
||||
}
|
||||
})
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
}
|
||||
|
||||
selectChange(item: any) {
|
||||
@ -300,7 +246,7 @@ export class DatatableFundReportingComponent implements OnInit {
|
||||
setTimeout(() => {
|
||||
this.selectedRows = [];
|
||||
this.st.load(1);
|
||||
})
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
@ -310,7 +256,7 @@ export class DatatableFundReportingComponent implements OnInit {
|
||||
// this.router.navigate(['../view', record.uuid], { relativeTo: this.ar });
|
||||
this.router.navigate(['../detail'], {
|
||||
queryParams: {
|
||||
id: record.id,
|
||||
id: record.id
|
||||
},
|
||||
relativeTo: this.ar
|
||||
});
|
||||
@ -348,12 +294,9 @@ export class DatatableFundReportingComponent implements OnInit {
|
||||
this.service.msgSrv.success('上传成功');
|
||||
this.search();
|
||||
}
|
||||
})
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 查看校验结果
|
||||
*/
|
||||
@ -368,12 +311,9 @@ export class DatatableFundReportingComponent implements OnInit {
|
||||
},
|
||||
nzFooter: null
|
||||
});
|
||||
modalRef.afterClose.subscribe(res => {
|
||||
})
|
||||
modalRef.afterClose.subscribe(res => {});
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 查看监管审核结果
|
||||
*/
|
||||
@ -381,7 +321,7 @@ export class DatatableFundReportingComponent implements OnInit {
|
||||
if (record?.verifyStatus !== '2') {
|
||||
return;
|
||||
}
|
||||
this.openWainingModal('监管审核结果', record?.uploadResult)
|
||||
this.openWainingModal('监管审核结果', record?.uploadResult);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -398,20 +338,18 @@ export class DatatableFundReportingComponent implements OnInit {
|
||||
this.service.msgSrv.success('更新成功');
|
||||
this.selectedRows = [];
|
||||
this.st.reload();
|
||||
|
||||
}
|
||||
})
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
search() {
|
||||
this.selectedRows = [];
|
||||
this.st.load(1);
|
||||
}
|
||||
|
||||
/**
|
||||
* 异步导出
|
||||
*/
|
||||
* 异步导出
|
||||
*/
|
||||
export() {
|
||||
this.service.exportStart({ ...this.sf?.value, pageSize: -1 }, this.service.$api_export_fund_reporting);
|
||||
}
|
||||
@ -420,12 +358,11 @@ export class DatatableFundReportingComponent implements OnInit {
|
||||
this.modal.warning({
|
||||
nzMask: false,
|
||||
nzTitle: title,
|
||||
nzContent: content,
|
||||
})
|
||||
nzContent: content
|
||||
});
|
||||
}
|
||||
|
||||
changeSt(e: STChange): void {
|
||||
|
||||
if (e.type === 'checkbox') {
|
||||
const checkRows = (e.checkbox as STData[]) || [];
|
||||
//判断当前页是否有选中的行
|
||||
@ -434,16 +371,15 @@ export class DatatableFundReportingComponent implements OnInit {
|
||||
const stList = this.st.list;
|
||||
stList.forEach(item => {
|
||||
this.selectedRows = this.selectedRows.filter((e: any) => e.id !== item.id);
|
||||
})
|
||||
});
|
||||
} else {
|
||||
//添加新增的行
|
||||
checkRows.forEach((item: any) => {
|
||||
const newSelectedList = this.selectedRows.filter((r: any) => r.id === item.id);
|
||||
if (newSelectedList.length === 0) {
|
||||
this.selectedRows.push(item);
|
||||
|
||||
}
|
||||
})
|
||||
});
|
||||
// 移除取消选中的行
|
||||
const stList = this.st.list;
|
||||
stList.forEach(item => {
|
||||
@ -451,12 +387,12 @@ export class DatatableFundReportingComponent implements OnInit {
|
||||
const index = this.selectedRows.findIndex(_item => item.id === _item.id);
|
||||
if (index !== -1) this.selectedRows.splice(index, 1);
|
||||
}
|
||||
})
|
||||
});
|
||||
}
|
||||
} else if (e.type === 'loaded') {
|
||||
// 页面加载时勾选
|
||||
(e?.loaded || []).forEach((r: any) => {
|
||||
this.selectedRows.forEach((x) => {
|
||||
this.selectedRows.forEach(x => {
|
||||
if (x.id === r.id) {
|
||||
r.checked = true;
|
||||
}
|
||||
@ -470,7 +406,7 @@ export class DatatableFundReportingComponent implements OnInit {
|
||||
window.open(location.origin + `/#/order-management/vehicle/vehicle-detail/${item.orderId}`);
|
||||
} else if (item.orderType === '2') {
|
||||
window.open(location.origin + `/#/order-management/bulk/bulk-detail/${item.orderId}`);
|
||||
} else if (item.orderType === '3'){
|
||||
} else if (item.orderType === '3') {
|
||||
this.router.navigate(['/order-management/vehicle/vehicle-detail/' + item.orderId]);
|
||||
}
|
||||
}
|
||||
@ -478,14 +414,10 @@ export class DatatableFundReportingComponent implements OnInit {
|
||||
routeTowaybill(item: any) {
|
||||
if (item.orderType === '1') {
|
||||
window.open(location.origin + `/#/waybill-management/vehicle/vehicle-detail/${item.wayBillId}`);
|
||||
|
||||
} else if (item.orderType === '2') {
|
||||
window.open(location.origin + `/#/waybill-management/bulk/bulk-detail/${item.wayBillId}`);
|
||||
|
||||
} else if (item.orderType === '3') {
|
||||
window.open(location.origin + `/#/waybill-management/vehicle/vehicle-detail/${item.wayBillId}`);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -1,17 +1,5 @@
|
||||
<!--
|
||||
* @Description :
|
||||
* @Version : 1.0
|
||||
* @Author : Shiming
|
||||
* @Date : 2022-04-28 20:27:07
|
||||
* @LastEditors : Shiming
|
||||
* @LastEditTime : 2022-04-28 21:15:20
|
||||
* @FilePath : \\tms-obc-web\\src\\app\\routes\\datatable\\reporting\\components\\order-reporting\\order-reporting.component.html
|
||||
* Copyright (C) 2022 huzhenhong. All rights reserved.
|
||||
-->
|
||||
<page-header-wrapper [title]="''"></page-header-wrapper>
|
||||
|
||||
<!-- <page-header-wrapper [title]="''"></page-header-wrapper>
|
||||
<nz-card>
|
||||
<!-- 搜索表单 -->
|
||||
<div nz-row nzGutter="8">
|
||||
<div nz-col [nzSpan]=" 24 ">
|
||||
<sf #sf [schema]="schema" [ui]="ui" [compact]="true" [button]="'none'"></sf>
|
||||
@ -27,19 +15,19 @@
|
||||
<i nz-icon [nzType]="!_$expand ? 'down' : 'up'"></i>
|
||||
</button>
|
||||
</div>
|
||||
</nz-card>
|
||||
<nz-card>
|
||||
<nz-tabset [nzTabBarExtraContent]="extraTemplate" *ngIf="tabs.length>0">
|
||||
</nz-card> -->
|
||||
<nz-card class="table-box">
|
||||
<div class="tab_header">
|
||||
<label class="page_title"> <label class="driver">|</label> 订单上报</label>
|
||||
<nz-tabset [nzTabBarExtraContent]="extraTemplate">
|
||||
<nz-tab *ngFor="let tab of tabs" [nzTitle]="tab.name" (nzSelect)="selectChange(tab)">
|
||||
</nz-tab>
|
||||
</nz-tabset>
|
||||
</div>
|
||||
|
||||
<nz-tab *ngFor="let tab of tabs" [nzTitle]="tab.name" (nzSelect)="selectChange(tab)">
|
||||
</nz-tab>
|
||||
</nz-tabset>
|
||||
<!-- 数据列表 -->
|
||||
<st #st [scroll]="{x:'1200px'}" [data]="service.$api_get_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: true, showSize: true, pageSizes: [10,20, 50, 100] }" [loading]="service.http.loading"
|
||||
(change)="changeSt($event)">
|
||||
<st #st [scroll]="{x:'1200px',y:scrollY}" [data]="service.$api_get_order_reporting_page" [columns]="columns"
|
||||
[req]="{ params: reqParams }" [page]="{ }" [loading]="service.http.loading" (change)="changeSt($event)">
|
||||
<ng-template st-row="billPutStatus" let-item let-index="index">
|
||||
<a *ngIf="item?.billPutStatus === '2'" (click)="viewAuditResult(item)">{{filterStatus(item?.billPutStatus)}}</a>
|
||||
<span *ngIf="item?.billPutStatus !== '2'">{{filterStatus(item?.billPutStatus)}}</span>
|
||||
@ -85,16 +73,32 @@
|
||||
</st>
|
||||
</nz-card>
|
||||
<ng-template #extraTemplate>
|
||||
<div class="d-flex align-items-center">
|
||||
<div class="d-flex align-items-center mr-sm">
|
||||
<div class="mr-md">
|
||||
已选择
|
||||
<strong class="text-red">{{ selectedRows.length }}</strong> 条数据
|
||||
</div>
|
||||
<button nz-button nzType="primary" (click)="upload()" acl [acl-ability]="['ORDER-REPORTING-upload']">上传</button>
|
||||
<button nz-button nzType="primary" (click)="recall()" acl [acl-ability]="['ORDER-REPORTING-recall']">撤回</button>
|
||||
<button nz-button nzType="primary" (click)="updateData()" acl
|
||||
[acl-ability]="['ORDER-REPORTING-update-data']">更新数据</button>
|
||||
<button nz-button nzType="primary" (click)="uploadSetting()" acl
|
||||
[acl-ability]="['ORDER-REPORTING-search-updata']">上传设置</button>
|
||||
<button nz-button nzDanger [nzLoading]="isLoading && st.loading" acl [acl-ability]="['ORDER-REPORTING-search']"
|
||||
(click)="openDrawer()">筛选</button>
|
||||
<button nz-button nzDanger (click)="export()" acl [acl-ability]="['ORDER-REPORTING-export']"> 导出</button>
|
||||
<button nz-button nz-dropdown [nzDropdownMenu]="menu" nzPlacement="bottomLeft">
|
||||
更多<i nz-icon nzType="down" nzTheme="outline"></i></button>
|
||||
<nz-dropdown-menu #menu="nzDropdownMenu">
|
||||
<ul nz-menu>
|
||||
<li nz-menu-item (click)="upload()" acl [acl-ability]="['ORDER-REPORTING-upload']">
|
||||
上传
|
||||
</li>
|
||||
<li nz-menu-item (click)="recall()" acl [acl-ability]="['ORDER-REPORTING-recall']">
|
||||
撤回
|
||||
</li>
|
||||
<li nz-menu-item (click)="updateData()" acl [acl-ability]="['ORDER-REPORTING-update-data']">
|
||||
更新数据
|
||||
</li>
|
||||
<li nz-menu-item (click)="uploadSetting()" acl [acl-ability]="['ORDER-REPORTING-search-updata']">
|
||||
上传设置
|
||||
</li>
|
||||
</ul>
|
||||
</nz-dropdown-menu>
|
||||
|
||||
</div>
|
||||
</ng-template>
|
||||
</ng-template>
|
||||
@ -1,5 +0,0 @@
|
||||
:host {
|
||||
.text-black {
|
||||
color: #000;
|
||||
}
|
||||
}
|
||||
@ -1,24 +0,0 @@
|
||||
import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
import { DatatableOrderReportingComponent } from './order-reporting.component';
|
||||
|
||||
describe('DatatableOrderReportingComponent', () => {
|
||||
let component: DatatableOrderReportingComponent;
|
||||
let fixture: ComponentFixture<DatatableOrderReportingComponent>;
|
||||
|
||||
beforeEach(waitForAsync(() => {
|
||||
TestBed.configureTestingModule({
|
||||
declarations: [ DatatableOrderReportingComponent ]
|
||||
})
|
||||
.compileComponents();
|
||||
}));
|
||||
|
||||
beforeEach(() => {
|
||||
fixture = TestBed.createComponent(DatatableOrderReportingComponent);
|
||||
component = fixture.componentInstance;
|
||||
fixture.detectChanges();
|
||||
});
|
||||
|
||||
it('should create', () => {
|
||||
expect(component).toBeTruthy();
|
||||
});
|
||||
});
|
||||
@ -2,8 +2,9 @@ import { Component, OnInit, ViewChild } from '@angular/core';
|
||||
import { ActivatedRoute, Router } from '@angular/router';
|
||||
import { STChange, STColumn, STComponent, STData } from '@delon/abc/st';
|
||||
import { SFComponent, SFDateWidgetSchema, SFSchema, SFUISchema } from '@delon/form';
|
||||
import { ShipperBaseService } from '@shared';
|
||||
import { SearchDrawerService, ShipperBaseService } from '@shared';
|
||||
import { NzModalService } from 'ng-zorro-antd/modal';
|
||||
import { BasicTableComponent } from 'src/app/routes/commom';
|
||||
import { ReportingService } from '../../services/reporting.service';
|
||||
import { DatatableReportingUploadSettingComponent } from '../upload-setting/upload-setting.component';
|
||||
import { DatatableReportingVerifyResultComponent } from '../verify-result/verify-result.component';
|
||||
@ -12,15 +13,11 @@ import { DatatableReportingvViewTrackComponent } from '../view-track/view-track.
|
||||
@Component({
|
||||
selector: 'app-datatable-order-reporting',
|
||||
templateUrl: './order-reporting.component.html',
|
||||
styleUrls: ['./order-reporting.component.less']
|
||||
styleUrls: ['../../../../commom/less/commom-table.less']
|
||||
})
|
||||
export class DatatableOrderReportingComponent implements OnInit {
|
||||
_$expand = false;
|
||||
ui!: SFUISchema;
|
||||
schema!: SFSchema;
|
||||
export class DatatableOrderReportingComponent extends BasicTableComponent implements OnInit {
|
||||
columns!: STColumn[];
|
||||
@ViewChild('st', { static: false }) st!: STComponent;
|
||||
@ViewChild('sf', { static: false }) sf!: SFComponent;
|
||||
tabType!: string;
|
||||
tabs: any[] = [
|
||||
{ name: '待上传', value: '0' },
|
||||
@ -37,15 +34,9 @@ export class DatatableOrderReportingComponent implements OnInit {
|
||||
private router: Router,
|
||||
private ar: ActivatedRoute,
|
||||
private modal: NzModalService,
|
||||
public shipperSrv: ShipperBaseService
|
||||
public searchDrawerService: SearchDrawerService
|
||||
) {
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询字段个数
|
||||
*/
|
||||
get queryFieldCount(): number {
|
||||
return Object.keys(this.schema?.properties || {}).length;
|
||||
super(searchDrawerService);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -53,7 +44,7 @@ export class DatatableOrderReportingComponent implements OnInit {
|
||||
*/
|
||||
get reqParams() {
|
||||
const params = Object.assign({}, this.sf?.value || {}, {
|
||||
billPutStatus: this.selectedIndex,
|
||||
billPutStatus: this.selectedIndex
|
||||
});
|
||||
delete params._$expand;
|
||||
return { ...params };
|
||||
@ -66,22 +57,6 @@ export class DatatableOrderReportingComponent implements OnInit {
|
||||
// return this.st?.list.filter((item: any) => item.checked) || [];
|
||||
// }
|
||||
|
||||
/**
|
||||
* 伸缩查询条件
|
||||
*/
|
||||
expandToggle() {
|
||||
this._$expand = !this._$expand;
|
||||
this.sf?.setValue('/_$expand', this._$expand);
|
||||
}
|
||||
|
||||
/**
|
||||
* 重置表单
|
||||
*/
|
||||
resetSF() {
|
||||
this.sf.reset();
|
||||
this._$expand = false;
|
||||
this.isLoading = true
|
||||
}
|
||||
/**
|
||||
* 程序初始化入口
|
||||
*/
|
||||
@ -102,8 +77,8 @@ export class DatatableOrderReportingComponent implements OnInit {
|
||||
type: 'string',
|
||||
title: '运单号',
|
||||
ui: {
|
||||
placeholder: '请输入',
|
||||
},
|
||||
placeholder: '请输入'
|
||||
}
|
||||
},
|
||||
networkTransporter: {
|
||||
title: '网络货运人',
|
||||
@ -111,7 +86,7 @@ export class DatatableOrderReportingComponent implements OnInit {
|
||||
ui: {
|
||||
placeholder: '请选择',
|
||||
widget: 'select',
|
||||
asyncData: () => this.shipperSrv.getNetworkFreightForwarder({}, false),
|
||||
asyncData: () => this.service.getNetworkFreightForwarder({}, false),
|
||||
allowClear: true
|
||||
}
|
||||
},
|
||||
@ -119,19 +94,14 @@ export class DatatableOrderReportingComponent implements OnInit {
|
||||
title: '货主',
|
||||
type: 'string',
|
||||
ui: {
|
||||
placeholder: '请输入',
|
||||
visibleIf: {
|
||||
_$expand: (value: boolean) => value,
|
||||
},
|
||||
placeholder: '请输入'
|
||||
}
|
||||
},
|
||||
driverName: {
|
||||
title: '承运司机',
|
||||
type: 'string',
|
||||
ui: {
|
||||
placeholder: '请输入司机姓名/手机号', visibleIf: {
|
||||
_$expand: (value: boolean) => value,
|
||||
},
|
||||
placeholder: '请输入司机姓名/手机号'
|
||||
}
|
||||
},
|
||||
carNo: {
|
||||
@ -139,10 +109,7 @@ export class DatatableOrderReportingComponent implements OnInit {
|
||||
type: 'string',
|
||||
maxLength: 9,
|
||||
ui: {
|
||||
placeholder: '请输入',
|
||||
visibleIf: {
|
||||
_$expand: (value: boolean) => value,
|
||||
},
|
||||
placeholder: '请输入'
|
||||
}
|
||||
},
|
||||
// putStatus: {
|
||||
@ -175,10 +142,7 @@ export class DatatableOrderReportingComponent implements OnInit {
|
||||
ui: {
|
||||
placeholder: '请选择',
|
||||
widget: 'select',
|
||||
allowClear: true,
|
||||
visibleIf: {
|
||||
_$expand: (value: boolean) => value,
|
||||
},
|
||||
allowClear: true
|
||||
}
|
||||
},
|
||||
recentlyPutTime: {
|
||||
@ -187,11 +151,8 @@ export class DatatableOrderReportingComponent implements OnInit {
|
||||
ui: {
|
||||
widget: 'sl-from-to',
|
||||
type: 'date',
|
||||
format: 'yyyy-MM-dd',
|
||||
visibleIf: {
|
||||
_$expand: (value: boolean) => value,
|
||||
},
|
||||
} as SFDateWidgetSchema,
|
||||
format: 'yyyy-MM-dd'
|
||||
} as SFDateWidgetSchema
|
||||
},
|
||||
orderReceivingTime: {
|
||||
title: '运单生成时间',
|
||||
@ -199,11 +160,8 @@ export class DatatableOrderReportingComponent implements OnInit {
|
||||
ui: {
|
||||
widget: 'sl-from-to',
|
||||
type: 'date',
|
||||
format: 'yyyy-MM-dd',
|
||||
visibleIf: {
|
||||
_$expand: (value: boolean) => value,
|
||||
},
|
||||
} as SFDateWidgetSchema,
|
||||
format: 'yyyy-MM-dd'
|
||||
} as SFDateWidgetSchema
|
||||
},
|
||||
dispatchedDate: {
|
||||
title: '发货时间',
|
||||
@ -211,11 +169,8 @@ export class DatatableOrderReportingComponent implements OnInit {
|
||||
ui: {
|
||||
widget: 'sl-from-to',
|
||||
type: 'date',
|
||||
format: 'yyyy-MM-dd',
|
||||
visibleIf: {
|
||||
_$expand: (value: boolean) => value,
|
||||
},
|
||||
} as SFDateWidgetSchema,
|
||||
format: 'yyyy-MM-dd'
|
||||
} as SFDateWidgetSchema
|
||||
},
|
||||
receivingDate: {
|
||||
title: '收货时间',
|
||||
@ -223,11 +178,8 @@ export class DatatableOrderReportingComponent implements OnInit {
|
||||
ui: {
|
||||
widget: 'sl-from-to',
|
||||
type: 'date',
|
||||
format: 'yyyy-MM-dd',
|
||||
visibleIf: {
|
||||
_$expand: (value: boolean) => value,
|
||||
},
|
||||
} as SFDateWidgetSchema,
|
||||
format: 'yyyy-MM-dd'
|
||||
} as SFDateWidgetSchema
|
||||
},
|
||||
|
||||
trajectoryDataAppStatus: {
|
||||
@ -240,10 +192,7 @@ export class DatatableOrderReportingComponent implements OnInit {
|
||||
],
|
||||
ui: {
|
||||
placeholder: '请选择',
|
||||
widget: 'select',
|
||||
visibleIf: {
|
||||
_$expand: (value: boolean) => value,
|
||||
},
|
||||
widget: 'select'
|
||||
}
|
||||
},
|
||||
trajectoryDataStatus: {
|
||||
@ -256,22 +205,10 @@ export class DatatableOrderReportingComponent implements OnInit {
|
||||
],
|
||||
ui: {
|
||||
placeholder: '请选择',
|
||||
widget: 'select',
|
||||
visibleIf: {
|
||||
_$expand: (value: boolean) => value,
|
||||
},
|
||||
widget: 'select'
|
||||
}
|
||||
},
|
||||
},
|
||||
};
|
||||
this.ui = {
|
||||
'*': {
|
||||
spanLabelFixed: 120,
|
||||
grid: {
|
||||
lg: 12,
|
||||
xl: 8
|
||||
}, enter: () => this.search()
|
||||
},
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
@ -280,24 +217,24 @@ export class DatatableOrderReportingComponent implements OnInit {
|
||||
*/
|
||||
initST() {
|
||||
this.columns = [
|
||||
{ title: '', type: 'checkbox', className: 'text-center', width: '60px', },
|
||||
{ title: '订单状态', index: 'billPutStatusLabel', className: 'text-center', width: '120px', },
|
||||
{ title: '司机状态', index: 'driverPutStatusLabel', className: 'text-center', width: '120px', },
|
||||
{ title: '车辆状态', index: 'carPutStatusLabel', className: 'text-center', width: '120px', },
|
||||
{ title: '本地校验', render: 'checkStatus', className: 'text-center', width: '120px', },
|
||||
{ title: '', type: 'checkbox', className: 'text-center', width: '60px' },
|
||||
{ title: '订单状态', index: 'billPutStatusLabel', className: 'text-center', width: '120px' },
|
||||
{ title: '司机状态', index: 'driverPutStatusLabel', className: 'text-center', width: '120px' },
|
||||
{ title: '车辆状态', index: 'carPutStatusLabel', className: 'text-center', width: '120px' },
|
||||
{ title: '本地校验', render: 'checkStatus', className: 'text-center', width: '120px' },
|
||||
{
|
||||
title: '订单号',
|
||||
render: 'billCode',
|
||||
className: 'text-center',
|
||||
width: '180px',
|
||||
width: '180px'
|
||||
},
|
||||
{ title: '运单号', render: 'wayBillCode', className: 'text-center', width: '180px', },
|
||||
{ title: '运单号', render: 'wayBillCode', className: 'text-center', width: '180px' },
|
||||
|
||||
{
|
||||
title: '网络货运人',
|
||||
index: 'enterpriseInfoName',
|
||||
className: 'text-center',
|
||||
width: '180px',
|
||||
width: '180px'
|
||||
},
|
||||
{ title: '统一社会信用代码', index: 'unifiedSocialCreditCode', className: 'text-center', width: '200px' },
|
||||
{ title: '运单生成时间', index: 'wayBillCreateTime', className: 'text-center', width: '180px' },
|
||||
@ -317,12 +254,11 @@ export class DatatableOrderReportingComponent implements OnInit {
|
||||
width: '250px',
|
||||
type: 'enum',
|
||||
enum: {
|
||||
"4": "绿色",
|
||||
"3": "黄绿色",
|
||||
"2": "黄色",
|
||||
"1": "蓝色"
|
||||
'4': '绿色',
|
||||
'3': '黄绿色',
|
||||
'2': '黄色',
|
||||
'1': '蓝色'
|
||||
}
|
||||
|
||||
},
|
||||
{ title: '司机姓名', index: 'driverName', className: 'text-center', width: '150px' },
|
||||
{ title: '司机手机号码', index: 'driverPhone', className: 'text-center', width: '200px' },
|
||||
@ -330,18 +266,14 @@ export class DatatableOrderReportingComponent implements OnInit {
|
||||
{ title: '货物信息', index: 'goodsName', className: 'text-center', width: '180px' },
|
||||
{ title: '实际承运人名称', index: 'carrierName', className: 'text-center', width: '150px' },
|
||||
{ title: '实际承运人证件号码', index: 'carrierIdentityNo', className: 'text-center', width: '200px' },
|
||||
|
||||
{ title: '实际承运人道路运输许可证号', index: 'roadTransportNo', className: 'text-center', width: '150px' },
|
||||
|
||||
{ title: '实际承运人道路运输许可证号', index: 'roadTransportNo', className: 'text-center', width: '230px' },
|
||||
{ title: '车辆轨迹', render: 'car', className: 'text-center', width: '250px' },
|
||||
{ title: '司机轨迹', render: 'driver', className: 'text-center', width: '150px' },
|
||||
{ title: '上传次数', index: 'putNumber', className: 'text-center', width: '150px' },
|
||||
{ title: '上传时间', index: 'recentlyPutTime', className: 'text-center', width: '180px' },
|
||||
{ title: '上传时间', index: 'recentlyPutTime', className: 'text-center', width: '180px' }
|
||||
];
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
*撤销
|
||||
* @param record 记录实例
|
||||
@ -363,14 +295,12 @@ export class DatatableOrderReportingComponent implements OnInit {
|
||||
this.service.msgSrv.success('撤销成功');
|
||||
this.search();
|
||||
}
|
||||
})
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
changeSt(e: STChange): void {
|
||||
|
||||
if (e.type === 'checkbox') {
|
||||
const checkRows = (e.checkbox as STData[]) || [];
|
||||
//判断当前页是否有选中的行
|
||||
@ -379,16 +309,15 @@ export class DatatableOrderReportingComponent implements OnInit {
|
||||
const stList = this.st.list;
|
||||
stList.forEach(item => {
|
||||
this.selectedRows = this.selectedRows.filter((e: any) => e.id !== item.id);
|
||||
})
|
||||
});
|
||||
} else {
|
||||
//添加新增的行
|
||||
checkRows.forEach((item: any) => {
|
||||
const newSelectedList = this.selectedRows.filter((r: any) => r.id === item.id);
|
||||
if (newSelectedList.length === 0) {
|
||||
this.selectedRows.push(item);
|
||||
|
||||
}
|
||||
})
|
||||
});
|
||||
// 移除取消选中的行
|
||||
const stList = this.st.list;
|
||||
stList.forEach(item => {
|
||||
@ -396,12 +325,12 @@ export class DatatableOrderReportingComponent implements OnInit {
|
||||
const index = this.selectedRows.findIndex(_item => item.id === _item.id);
|
||||
if (index !== -1) this.selectedRows.splice(index, 1);
|
||||
}
|
||||
})
|
||||
});
|
||||
}
|
||||
} else if (e.type === 'loaded') {
|
||||
// 页面加载时勾选
|
||||
(e?.loaded || []).forEach((r: any) => {
|
||||
this.selectedRows.forEach((x) => {
|
||||
this.selectedRows.forEach(x => {
|
||||
if (x.id === r.id) {
|
||||
r.checked = true;
|
||||
}
|
||||
@ -415,7 +344,7 @@ export class DatatableOrderReportingComponent implements OnInit {
|
||||
setTimeout(() => {
|
||||
this.selectedRows = [];
|
||||
this.st.load(1);
|
||||
})
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
@ -425,7 +354,7 @@ export class DatatableOrderReportingComponent implements OnInit {
|
||||
// this.router.navigate(['../view', record.uuid], { relativeTo: this.ar });
|
||||
this.router.navigate(['../detail'], {
|
||||
queryParams: {
|
||||
id: record.id,
|
||||
id: record.id
|
||||
},
|
||||
relativeTo: this.ar
|
||||
});
|
||||
@ -463,10 +392,9 @@ export class DatatableOrderReportingComponent implements OnInit {
|
||||
this.service.msgSrv.success('上传成功');
|
||||
this.search();
|
||||
}
|
||||
})
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* @param params 上传设置
|
||||
@ -479,8 +407,7 @@ export class DatatableOrderReportingComponent implements OnInit {
|
||||
nzComponentParams: {},
|
||||
nzFooter: null
|
||||
});
|
||||
modalRef.afterClose.subscribe(res => {
|
||||
})
|
||||
modalRef.afterClose.subscribe(res => {});
|
||||
}
|
||||
|
||||
/**
|
||||
@ -496,8 +423,7 @@ export class DatatableOrderReportingComponent implements OnInit {
|
||||
},
|
||||
nzFooter: null
|
||||
});
|
||||
modalRef.afterClose.subscribe(res => {
|
||||
})
|
||||
modalRef.afterClose.subscribe(res => {});
|
||||
}
|
||||
|
||||
/**
|
||||
@ -507,18 +433,17 @@ export class DatatableOrderReportingComponent implements OnInit {
|
||||
if (record?.billStatus !== '2') {
|
||||
return;
|
||||
}
|
||||
this.openWainingModal('监管审核结果', record?.result)
|
||||
this.openWainingModal('监管审核结果', record?.result);
|
||||
}
|
||||
|
||||
|
||||
search() {
|
||||
this.selectedRows = [];
|
||||
this.st.load(1);
|
||||
}
|
||||
|
||||
/**
|
||||
* 异步导出
|
||||
*/
|
||||
* 异步导出
|
||||
*/
|
||||
export() {
|
||||
this.service.exportStart({ ...this.sf?.value, pageSize: -1 }, this.service.$api_export_reporting_order);
|
||||
}
|
||||
@ -527,15 +452,15 @@ export class DatatableOrderReportingComponent implements OnInit {
|
||||
this.modal.warning({
|
||||
nzMask: false,
|
||||
nzTitle: title,
|
||||
nzContent: content,
|
||||
})
|
||||
nzContent: content
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 查看轨迹
|
||||
*/
|
||||
viewTrack(_record: any, trajectory: string) {
|
||||
const title = trajectory === 'car' ? '车辆' : '司机'
|
||||
const title = trajectory === 'car' ? '车辆' : '司机';
|
||||
const modalRef = this.modal.create({
|
||||
nzTitle: `查看${title}轨迹`,
|
||||
nzWidth: 1000,
|
||||
@ -546,13 +471,12 @@ export class DatatableOrderReportingComponent implements OnInit {
|
||||
},
|
||||
nzFooter: null
|
||||
});
|
||||
modalRef.afterClose.subscribe(res => {
|
||||
})
|
||||
modalRef.afterClose.subscribe(res => {});
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新数据
|
||||
*/
|
||||
* 更新数据
|
||||
*/
|
||||
updateData() {
|
||||
if (this.selectedRows.length === 0) {
|
||||
this.openWainingModal('请选择需要更新的数据');
|
||||
@ -565,7 +489,7 @@ export class DatatableOrderReportingComponent implements OnInit {
|
||||
this.selectedRows = [];
|
||||
this.st.reload();
|
||||
}
|
||||
})
|
||||
});
|
||||
}
|
||||
|
||||
filterStatus(status: number) {
|
||||
@ -578,7 +502,6 @@ export class DatatableOrderReportingComponent implements OnInit {
|
||||
return '上传异常';
|
||||
default:
|
||||
return '';
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@ -592,16 +515,15 @@ export class DatatableOrderReportingComponent implements OnInit {
|
||||
return '不通过';
|
||||
default:
|
||||
return '';
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
routeToOrder(item: any) {
|
||||
if (item.billType === '1') {
|
||||
window.open(location.origin + `/#/order-management/vehicle/vehicle-detail/${item.orderId}`);
|
||||
} else if (item.billType === '2') {
|
||||
} else if (item.billType === '2') {
|
||||
window.open(location.origin + `/#/order-management/bulk/bulk-detail/${item.orderId}`);
|
||||
} else if (item.billType === '3') {
|
||||
} else if (item.billType === '3') {
|
||||
window.open(location.origin + `/#/order-management/vehicle/vehicle-detail/${item.orderId}`);
|
||||
}
|
||||
}
|
||||
@ -609,13 +531,10 @@ export class DatatableOrderReportingComponent implements OnInit {
|
||||
routeTowaybill(item: any) {
|
||||
if (item.billType === '1') {
|
||||
window.open(location.origin + `/#/waybill-management/vehicle/vehicle-detail/${item.waybillId}`);
|
||||
|
||||
} else if (item.billType === '2') {
|
||||
window.open(location.origin + `/#/waybill-management/bulk/bulk-detail/${item.waybillId}`);
|
||||
} else if (item.billType === '3') {
|
||||
window.open(location.origin + `/#/waybill-management/vehicle/vehicle-detail/${item.waybillId}`);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -1,10 +1,10 @@
|
||||
import { Injectable, Injector } from '@angular/core';
|
||||
import { BaseService } from '@shared';
|
||||
import { BaseService, ShipperBaseService } from '@shared';
|
||||
|
||||
@Injectable({
|
||||
providedIn: 'root'
|
||||
})
|
||||
export class ReportingService extends BaseService {
|
||||
export class ReportingService extends ShipperBaseService {
|
||||
|
||||
$api_get_order_reporting_page = `/api/sdc/regulation/list/queryPage`; // 订单上报-列表
|
||||
$api_upload_order_reporting = `/api/sdc/regulation/push`; // 上传订单上报
|
||||
|
||||
@ -11,15 +11,13 @@
|
||||
|
||||
import { Injectable, Injector } from '@angular/core';
|
||||
import { _HttpClient } from '@delon/theme';
|
||||
import { NzMessageService } from 'ng-zorro-antd/message';
|
||||
import { ShipperBaseService } from '@shared';
|
||||
import { map } from 'rxjs/operators';
|
||||
import { BaseService } from 'src/app/shared/services/core/base.service';
|
||||
import { EAFileUtil } from 'src/app/shared/utils/file.util';
|
||||
|
||||
@Injectable({
|
||||
providedIn: 'root',
|
||||
})
|
||||
export class DataService extends BaseService {
|
||||
export class DataService extends ShipperBaseService {
|
||||
|
||||
// 查询运营报表
|
||||
$api_listOperationalReportPage = `/api/sdc/report/listOperationalReportPage`;
|
||||
|
||||
@ -9,6 +9,7 @@ import { AddCollectionInvoiceModalComponent } from 'src/app/routes/ticket-manage
|
||||
|
||||
import { PartnerListService } from '../../services/partner-list.service';
|
||||
import { PartnerAuditModalComponent } from '../partner-audit-modal/partner-audit-modal.component';
|
||||
import { map } from 'rxjs/operators';
|
||||
|
||||
@Component({
|
||||
selector: 'app-partner-list',
|
||||
@ -54,7 +55,7 @@ export class PartnerListComponent {
|
||||
};
|
||||
|
||||
loadSelectOptions() {
|
||||
this.service.getRebateConfig().subscribe(res => {
|
||||
this.service.getRebateConfig({stateLocked: 1}).subscribe(res => {
|
||||
if (res) {
|
||||
console.log(res);
|
||||
|
||||
@ -358,11 +359,22 @@ export class PartnerListComponent {
|
||||
ui: {
|
||||
widget: 'select',
|
||||
placeholder: '请选择',
|
||||
// async:
|
||||
asyncData: () =>
|
||||
this.service.request(this.service.$api_get_rebate_config, {}, 'POST').pipe(
|
||||
map(data => {
|
||||
if(data) {
|
||||
return data.map((m: any) => {
|
||||
return { label: m.configName, value: m.id };
|
||||
});
|
||||
} else {
|
||||
return [];
|
||||
|
||||
}
|
||||
})
|
||||
),
|
||||
visibleIf: {
|
||||
expand: (value: boolean) => value
|
||||
}
|
||||
}
|
||||
} } as SFDateWidgetSchema
|
||||
},
|
||||
lockedStatus: {
|
||||
type: 'string',
|
||||
|
||||
@ -2,6 +2,7 @@ import { Component, Input, OnInit, ViewChild } from '@angular/core';
|
||||
import { SFComponent, SFSchema, SFValue } from '@delon/form';
|
||||
import { ModalHelper } from '@delon/theme';
|
||||
import { NzModalRef, NzModalService } from 'ng-zorro-antd/modal';
|
||||
import { map } from 'rxjs/operators';
|
||||
import { PartnerListService } from '../../services/partner-list.service';
|
||||
|
||||
@Component({
|
||||
@ -22,6 +23,7 @@ export class PartnerAuditModalComponent implements OnInit {
|
||||
ngOnInit(): void {
|
||||
console.log(this.info);
|
||||
this.initSF(this.info);
|
||||
// asyncData: () => this.service.getChannel(),
|
||||
|
||||
if(this.info.channelId) {
|
||||
const value = [{
|
||||
@ -30,14 +32,30 @@ export class PartnerAuditModalComponent implements OnInit {
|
||||
}]
|
||||
setTimeout(() => {
|
||||
if(this.sf) {
|
||||
console.log('888');
|
||||
|
||||
// this.sf.getProperty('/channelId')!.schema.enum = value;
|
||||
// this.sf.getProperty('/channelId')!.widget.reset(value);
|
||||
this.sf.getProperty('/channelId')!.schema.enum = value;
|
||||
this.sf.getProperty('/channelId')!.widget.reset(value);
|
||||
this.sf.setValue('/channelId', this.info.channelId);
|
||||
}
|
||||
})
|
||||
|
||||
} else {
|
||||
console.log()
|
||||
this.service.getChannel().pipe(map(data => {
|
||||
console.log(data);
|
||||
|
||||
}))
|
||||
this.service.getChannel().subscribe((res) => {
|
||||
console.log(res);
|
||||
const value :any= res;
|
||||
setTimeout(() => {
|
||||
if(this.sf) {
|
||||
this.sf.getProperty('/channelId')!.schema.enum = value;
|
||||
this.sf.getProperty('/channelId')!.widget.reset(value);
|
||||
this.sf.setValue('/channelId', value);
|
||||
}
|
||||
})
|
||||
})
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@ -49,13 +67,13 @@ export class PartnerAuditModalComponent implements OnInit {
|
||||
ui: {
|
||||
hidden: true
|
||||
},
|
||||
// default: this.info.isPass
|
||||
default: this.info.isPass
|
||||
},
|
||||
staffName: {
|
||||
title: '合伙人名称',
|
||||
type: 'string',
|
||||
ui: { widget: 'text' },
|
||||
// default: user.enterpriseName
|
||||
default: user.enterpriseName
|
||||
},
|
||||
status: {
|
||||
title: '审核结果',
|
||||
@ -78,7 +96,6 @@ export class PartnerAuditModalComponent implements OnInit {
|
||||
widget: 'select',
|
||||
placeholder: '请选择',
|
||||
allowClear: true,
|
||||
asyncData: () => this.service.getChannel(),
|
||||
hidden: this.info.isPass === false,
|
||||
visibleIf: {
|
||||
status: value => value
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
* @Author : Shiming
|
||||
* @Date : 2022-02-24 20:09:49
|
||||
* @LastEditors : Shiming
|
||||
* @LastEditTime : 2022-03-29 11:14:08
|
||||
* @LastEditTime : 2022-05-06 16:37:06
|
||||
* @FilePath : \\tms-obc-web\\src\\app\\routes\\partner\\rebate-management\\components\\rebate-setting\\rebate-setting.component.html
|
||||
* Copyright (C) 2022 huzhenhong. All rights reserved.
|
||||
-->
|
||||
@ -23,7 +23,7 @@
|
||||
></sf>
|
||||
<div nz-col [nzSpan]="_$expand ? 24 : 6" class="text-right">
|
||||
<button nz-button nzType="primary" [nzLoading]="service.http.loading" (click)="st?.load(1);">查询</button>
|
||||
<button nz-button nzType="primary" [disabled]="service.http.loading" acl [acl-ability]="['REBATE-SETTING-export']">导出</button>
|
||||
<!-- <button nz-button nzType="primary" [disabled]="service.http.loading" acl [acl-ability]="['REBATE-SETTING-export']">导出</button> -->
|
||||
<button nz-button [disabled]="service.http.loading" (click)="resetSF()">重置</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -32,7 +32,7 @@
|
||||
</st>
|
||||
</nz-card>
|
||||
<ng-template #extraTemplate>
|
||||
<div class="d-flex align-items-center">
|
||||
<div class="d-flex align-items-center mr-sm">
|
||||
<div class="mr-md">
|
||||
已选择
|
||||
<strong class="text-red">{{ selectedRows.length }}</strong> 条数据
|
||||
|
||||
@ -1,9 +1,7 @@
|
||||
import { Component, OnInit, ViewChild } from '@angular/core';
|
||||
import { ActivatedRoute, Router } from '@angular/router';
|
||||
import { STChange, STColumn, STComponent, STData } from '@delon/abc/st';
|
||||
import { SFComponent, SFDateWidgetSchema, SFSchema, SFSchemaEnum, SFSelectWidgetSchema, SFUISchema } from '@delon/form';
|
||||
import { STChange, STColumn, STComponent } from '@delon/abc/st';
|
||||
import { SFDateWidgetSchema } from '@delon/form';
|
||||
import { SearchDrawerService } from '@shared';
|
||||
import { NzModalService } from 'ng-zorro-antd/modal';
|
||||
import { BasicTableComponent } from 'src/app/routes/commom';
|
||||
import { TaxManagementService } from '../../services/tax-management.service';
|
||||
|
||||
@ -92,7 +90,7 @@ export class TaxManagementIndividualCollectComponent extends BasicTableComponent
|
||||
ui: {
|
||||
widget: 'sl-from-to',
|
||||
type: 'date',
|
||||
format: 'yyyy-MM-dd',
|
||||
format: 'yyyy-MM-dd'
|
||||
} as SFDateWidgetSchema
|
||||
},
|
||||
nsrmc: {
|
||||
|
||||
@ -1,17 +1,5 @@
|
||||
<!--
|
||||
* @Description :
|
||||
* @Version : 1.0
|
||||
* @Author : Shiming
|
||||
* @Date : 2022-03-30 14:00:43
|
||||
* @LastEditors : Shiming
|
||||
* @LastEditTime : 2022-04-19 19:11:08
|
||||
* @FilePath : \\tms-obc-web\\src\\app\\routes\\tax-management\\components\\individual-declare\\individual-declare.component.html
|
||||
* Copyright (C) 2022 huzhenhong. All rights reserved.
|
||||
-->
|
||||
<page-header-wrapper [title]="''"></page-header-wrapper>
|
||||
|
||||
<!-- <page-header-wrapper [title]="''"></page-header-wrapper>
|
||||
<nz-card>
|
||||
<!-- 搜索表单 -->
|
||||
<div nz-row nzGutter="8">
|
||||
<div nz-col [nzSpan]="_$expand ? 24 : 18">
|
||||
<sf #sf [schema]="schema" [ui]="ui" [compact]="true" [button]="'none'"></sf>
|
||||
@ -27,16 +15,19 @@
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</nz-card>
|
||||
<nz-card>
|
||||
<nz-tabset [nzTabBarExtraContent]="extraTemplate" *ngIf="tabs.length > 0">
|
||||
<nz-tab *ngFor="let tab of tabs" [nzTitle]="tab.name" (nzSelect)="selectChange(tab)"> </nz-tab>
|
||||
</nz-tabset>
|
||||
</nz-card> -->
|
||||
|
||||
<nz-card class="table-box">
|
||||
<div class="tab_header">
|
||||
<label class="page_title"> <label class="driver">|</label> 税务申报</label>
|
||||
<nz-tabset [nzTabBarExtraContent]="extraTemplate">
|
||||
<nz-tab *ngFor="let tab of tabs" [nzTitle]="tab.name" (nzSelect)="selectChange(tab)"> </nz-tab>
|
||||
</nz-tabset>
|
||||
</div>
|
||||
|
||||
<!-- 数据列表 -->
|
||||
<st #st [scroll]="{ x: '1200px' }" [data]="service.$api_get_taxDeclaration" [columns]="columns"
|
||||
[req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, params: reqParams }"
|
||||
[res]="{ reName: { list: 'data.records', total: 'data.total' } }"
|
||||
[page]="{ show: true, showSize: true, pageSizes: [10, 20, 50, 100] }" [loading]="false">
|
||||
<st #st [scroll]="{ x: '1200px',y:scrollY }" [data]="service.$api_get_taxDeclaration" [columns]="columns"
|
||||
[req]="{ params: reqParams }" [page]="{ }" [loading]="false">
|
||||
<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>
|
||||
@ -58,10 +49,28 @@
|
||||
已选择
|
||||
<strong class="text-red">{{ selectedRows.length }}</strong> 条数据
|
||||
</div>
|
||||
<button nz-button nzType="primary" (click)="upload()" acl [acl-ability]="['TAX-DECLARE-declare']">申报</button>
|
||||
<button nz-button nzType="primary" (click)="recall()" acl [acl-ability]="['TAX-DECLARE-change']">更正</button>
|
||||
<button nz-button nzType="primary" (click)="uploadSetting()" acl [acl-ability]="['TAX-DECLARE-threshold']">修改起征点</button>
|
||||
<button nz-button nzType="primary" (click)="resetData()" acl [acl-ability]="['TAX-DECLARE-resetData']">更新数据</button>
|
||||
<button nz-button nzDanger [nzLoading]="service.http.loading" acl [acl-ability]="['TAX-DECLARE-search']"
|
||||
(click)="openDrawer()">筛选</button>
|
||||
<button nz-button nzDanger acl [acl-ability]="['TAX-DECLARE-export']"> 导出</button>
|
||||
<button nz-button nz-dropdown [nzDropdownMenu]="menu" nzPlacement="bottomLeft">
|
||||
更多<i nz-icon nzType="down" nzTheme="outline"></i></button>
|
||||
<nz-dropdown-menu #menu="nzDropdownMenu">
|
||||
<ul nz-menu>
|
||||
<li nz-menu-item (click)="upload()" acl [acl-ability]="['TAX-DECLARE-declare']">
|
||||
申报
|
||||
</li>
|
||||
<li nz-menu-item (click)="recall()" acl [acl-ability]="['TAX-DECLARE-change']">
|
||||
更正
|
||||
</li>
|
||||
<li nz-menu-item (click)="uploadSetting()" acl [acl-ability]="['TAX-DECLARE-threshold']">
|
||||
修改起征点
|
||||
</li>
|
||||
<li nz-menu-item (click)="resetData()" acl [acl-ability]="['TAX-DECLARE-resetData']">
|
||||
更新数据
|
||||
</li>
|
||||
</ul>
|
||||
</nz-dropdown-menu>
|
||||
|
||||
</div>
|
||||
</ng-template>
|
||||
|
||||
|
||||
@ -1,5 +0,0 @@
|
||||
:host {
|
||||
.text-black {
|
||||
color: #000;
|
||||
}
|
||||
}
|
||||
@ -1,34 +0,0 @@
|
||||
/*
|
||||
* @Description :
|
||||
* @Version : 1.0
|
||||
* @Author : Shiming
|
||||
* @Date : 2022-03-30 14:45:52
|
||||
* @LastEditors : Shiming
|
||||
* @LastEditTime : 2022-03-31 10:36:54
|
||||
* @FilePath : \\tms-obc-web\\src\\app\\routes\\tax-management\\components\\individual-declare\\individual-declare.component.spec.ts
|
||||
* Copyright (C) 2022 huzhenhong. All rights reserved.
|
||||
*/
|
||||
import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
import { TaxManagementIndividualDeclareComponent } from './individual-declare.component';
|
||||
|
||||
describe('TaxManagementIndividualDeclareComponent', () => {
|
||||
let component: TaxManagementIndividualDeclareComponent;
|
||||
let fixture: ComponentFixture<TaxManagementIndividualDeclareComponent>;
|
||||
|
||||
beforeEach(waitForAsync(() => {
|
||||
TestBed.configureTestingModule({
|
||||
declarations: [ TaxManagementIndividualDeclareComponent ]
|
||||
})
|
||||
.compileComponents();
|
||||
}));
|
||||
|
||||
beforeEach(() => {
|
||||
fixture = TestBed.createComponent(TaxManagementIndividualDeclareComponent);
|
||||
component = fixture.componentInstance;
|
||||
fixture.detectChanges();
|
||||
});
|
||||
|
||||
it('should create', () => {
|
||||
expect(component).toBeTruthy();
|
||||
});
|
||||
});
|
||||
@ -1,27 +1,20 @@
|
||||
import { Component, OnInit, ViewChild } from '@angular/core';
|
||||
import { ActivatedRoute, Router } from '@angular/router';
|
||||
import { STColumn, STComponent, STData } from '@delon/abc/st';
|
||||
import { SFComponent, SFDateWidgetSchema, SFSchema, SFSchemaEnum, SFSelectWidgetSchema, SFUISchema } from '@delon/form';
|
||||
import { ShipperBaseService } from '@shared';
|
||||
import { SFDateWidgetSchema } from '@delon/form';
|
||||
import { SearchDrawerService } from '@shared';
|
||||
import { NzModalService } from 'ng-zorro-antd/modal';
|
||||
import { of } from 'rxjs';
|
||||
import { map } from 'rxjs/operators';
|
||||
import { BasicTableComponent } from 'src/app/routes/commom';
|
||||
import { TaxManagementService } from '../../services/tax-management.service';
|
||||
// import { DatatableReportingUploadSettingComponent } from '../upload-setting/upload-setting.component';
|
||||
// import { DatatableReportingVerifyResultComponent } from '../verify-result/verify-result.component';
|
||||
|
||||
@Component({
|
||||
selector: 'app-tax-management-individual-declare',
|
||||
templateUrl: './individual-declare.component.html',
|
||||
styleUrls: ['./individual-declare.component.less']
|
||||
styleUrls: ['../../../commom/less/commom-table.less']
|
||||
})
|
||||
export class TaxManagementIndividualDeclareComponent implements OnInit {
|
||||
_$expand = false;
|
||||
ui!: SFUISchema;
|
||||
schema!: SFSchema;
|
||||
export class TaxManagementIndividualDeclareComponent extends BasicTableComponent implements OnInit {
|
||||
columns!: STColumn[];
|
||||
@ViewChild('st', { static: false }) st!: STComponent;
|
||||
@ViewChild('sf', { static: false }) sf!: SFComponent;
|
||||
tabType!: string;
|
||||
tabs: any[] = [
|
||||
{ name: '待申报', value: '0' },
|
||||
@ -37,16 +30,10 @@ export class TaxManagementIndividualDeclareComponent implements OnInit {
|
||||
public service: TaxManagementService,
|
||||
private router: Router,
|
||||
private ar: ActivatedRoute,
|
||||
public shipperservice: ShipperBaseService,
|
||||
private modal: NzModalService,
|
||||
public shipperSrv: ShipperBaseService
|
||||
) {}
|
||||
|
||||
/**
|
||||
* 查询字段个数
|
||||
*/
|
||||
get queryFieldCount(): number {
|
||||
return Object.keys(this.schema?.properties || {}).length;
|
||||
public searchDrawerService: SearchDrawerService
|
||||
) {
|
||||
super(searchDrawerService);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -70,21 +57,6 @@ export class TaxManagementIndividualDeclareComponent implements OnInit {
|
||||
return this.st?.list.filter((item: any) => item.checked) || [];
|
||||
}
|
||||
|
||||
/**
|
||||
* 伸缩查询条件
|
||||
*/
|
||||
expandToggle() {
|
||||
this._$expand = !this._$expand;
|
||||
this.sf?.setValue('/_$expand', this._$expand);
|
||||
}
|
||||
|
||||
/**
|
||||
* 重置表单
|
||||
*/
|
||||
resetSF() {
|
||||
this.sf.reset();
|
||||
this._$expand = false;
|
||||
}
|
||||
/**
|
||||
* 程序初始化入口
|
||||
*/
|
||||
@ -134,13 +106,10 @@ export class TaxManagementIndividualDeclareComponent implements OnInit {
|
||||
placeholder: '请选择',
|
||||
widget: 'dict-select',
|
||||
params: { dictKey: 'taxincome:declare:status' },
|
||||
containsAllLabel: true,
|
||||
visibleIf: {
|
||||
_$expand: (value: boolean) => value
|
||||
}
|
||||
containsAllLabel: true
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
isOvertime: {
|
||||
title: '是否逾期',
|
||||
type: 'string',
|
||||
@ -152,10 +121,7 @@ export class TaxManagementIndividualDeclareComponent implements OnInit {
|
||||
ui: {
|
||||
placeholder: '请选择',
|
||||
widget: 'select',
|
||||
containsAllLabel: true,
|
||||
visibleIf: {
|
||||
_$expand: (value: boolean) => value
|
||||
}
|
||||
containsAllLabel: true
|
||||
},
|
||||
default: ''
|
||||
},
|
||||
@ -165,10 +131,7 @@ export class TaxManagementIndividualDeclareComponent implements OnInit {
|
||||
ui: {
|
||||
widget: 'sl-from-to',
|
||||
type: 'date',
|
||||
format: 'yyyy-MM-dd',
|
||||
visibleIf: {
|
||||
_$expand: (value: boolean) => value
|
||||
}
|
||||
format: 'yyyy-MM-dd'
|
||||
} as SFDateWidgetSchema
|
||||
},
|
||||
declareDate: {
|
||||
@ -177,10 +140,7 @@ export class TaxManagementIndividualDeclareComponent implements OnInit {
|
||||
ui: {
|
||||
widget: 'sl-from-to',
|
||||
type: 'date',
|
||||
format: 'yyyy-MM-dd',
|
||||
visibleIf: {
|
||||
_$expand: (value: boolean) => value
|
||||
}
|
||||
format: 'yyyy-MM-dd'
|
||||
} as SFDateWidgetSchema
|
||||
},
|
||||
ltdId: {
|
||||
@ -190,18 +150,11 @@ export class TaxManagementIndividualDeclareComponent implements OnInit {
|
||||
widget: 'select',
|
||||
placeholder: '请选择',
|
||||
allowClear: true,
|
||||
visibleIf: {
|
||||
_$expand: (value: boolean) => value
|
||||
},
|
||||
asyncData: () => this.shipperservice.getNetworkFreightForwarder()
|
||||
asyncData: () => this.service.getNetworkFreightForwarder()
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
this.ui = {
|
||||
'*': { spanLabelFixed: 120, grid: { span: 8, gutter: 4 }, enter: () => this.search() },
|
||||
$time: { grid: { span: 24 } }
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@ -1,13 +1,12 @@
|
||||
<page-header-wrapper [title]="''"></page-header-wrapper>
|
||||
|
||||
<!-- <page-header-wrapper [title]="''"></page-header-wrapper>
|
||||
<nz-card>
|
||||
<!-- 搜索表单 -->
|
||||
<div nz-row nzGutter="8">
|
||||
<div nz-col [nzSpan]="_$expand ? 24 : 18">
|
||||
<sf #sf [schema]="schema" [ui]="ui" [compact]="true" [button]="'none'"></sf>
|
||||
</div>
|
||||
<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()">查询</button>
|
||||
<button nz-button nzType="primary" [disabled]="!sf.valid" [nzLoading]="isLoading && st.loading"
|
||||
(click)="search()">查询</button>
|
||||
<button nz-button (click)="resetSF()">重置</button>
|
||||
<button nz-button (click)="export()" acl [acl-ability]="['TAX_INVOICE_REPORT-export']">导出</button>
|
||||
<button nz-button nzType="link" (click)="expandToggle()">
|
||||
@ -16,22 +15,18 @@
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</nz-card>
|
||||
<nz-card>
|
||||
<nz-tabset [nzTabBarExtraContent]="extraTemplate" *ngIf="tabs.length > 0">
|
||||
<nz-tab *ngFor="let tab of tabs" [nzTitle]="tab.name" (nzSelect)="selectChange(tab)"> </nz-tab>
|
||||
</nz-tabset>
|
||||
</nz-card> -->
|
||||
<nz-card class="table-box">
|
||||
<div class="tab_header">
|
||||
<label class="page_title"> <label class="driver">|</label> 发票上传</label>
|
||||
<nz-tabset [nzTabBarExtraContent]="extraTemplate">
|
||||
<nz-tab *ngFor="let tab of tabs" [nzTitle]="tab.name" (nzSelect)="selectChange(tab)"> </nz-tab>
|
||||
</nz-tabset>
|
||||
</div>
|
||||
|
||||
<!-- 数据列表 -->
|
||||
<st
|
||||
#st
|
||||
[scroll]="{ x: '1200px' }"
|
||||
[data]="service.$api_getInvoiceReport_page"
|
||||
[columns]="columns"
|
||||
[req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, params: reqParams }"
|
||||
[res]="{ reName: { list: 'data.records', total: 'data.total' } }"
|
||||
[page]="{ show: true, showSize: true, pageSizes: [10, 20, 50, 100] }"
|
||||
[loading]="service.http.loading"
|
||||
>
|
||||
<st #st [scroll]="{ x: '1200px',y:scrollY }" [data]="service.$api_getInvoiceReport_page" [columns]="columns"
|
||||
[req]="{ params: reqParams }" [page]="{ }" [loading]="service.http.loading">
|
||||
<ng-template st-row="uploadSts" let-item let-index="index">
|
||||
<!-- <a (click)="viewAuditResult(item)" *ngIf="item?.billStatus === '2'">{{item?.billStatusLabel}}</a> -->
|
||||
<span *ngIf="item?.uploadSts == '1'">待上传</span>
|
||||
@ -52,23 +47,30 @@
|
||||
</ng-template>
|
||||
</st>
|
||||
</nz-card>
|
||||
|
||||
<ng-template #extraTemplate>
|
||||
<div class="d-flex align-items-center">
|
||||
<div class="d-flex align-items-center mr-sm">
|
||||
<div class="mr-md">
|
||||
已选择
|
||||
<strong class="text-red">{{ selectedRows.length }}</strong> 条数据
|
||||
</div>
|
||||
<button
|
||||
*ngIf="selectedIndex === '1' || selectedIndex === '4'"
|
||||
nz-button
|
||||
nzType="primary"
|
||||
(click)="upload()"
|
||||
acl
|
||||
[acl-ability]="['TAX_INVOICE_REPORT-upload']"
|
||||
>上传</button
|
||||
>
|
||||
<button *ngIf="selectedIndex === '3'" nz-button nzType="primary" (click)="recall()" acl [acl-ability]="['TAX_INVOICE_REPORT-recall']"
|
||||
>撤回</button
|
||||
>
|
||||
<button nz-button nzDanger [nzLoading]="isLoading && st.loading" acl [acl-ability]="['TAX-ORDERREPORT-search']"
|
||||
(click)="openDrawer()">筛选</button>
|
||||
<button nz-button nzDanger acl [acl-ability]="['TAX_INVOICE_REPORT-export']"> 导出</button>
|
||||
<button nz-button *ngIf="selectedIndex && selectedIndex !== '2'" nz-dropdown [nzDropdownMenu]="menu"
|
||||
nzPlacement="bottomLeft">
|
||||
更多<i nz-icon nzType="down" nzTheme="outline"></i></button>
|
||||
<nz-dropdown-menu #menu="nzDropdownMenu">
|
||||
<ul nz-menu>
|
||||
<li nz-menu-item *ngIf="selectedIndex === '1' || selectedIndex === '4'" (click)="upload()" acl
|
||||
[acl-ability]="['TAX_INVOICE_REPORT-upload']">
|
||||
上传
|
||||
</li>
|
||||
<li nz-menu-item *ngIf="selectedIndex === '3'" (click)="recall()" acl
|
||||
[acl-ability]="['TAX_INVOICE_REPORT-recall']">
|
||||
撤回
|
||||
</li>
|
||||
</ul>
|
||||
</nz-dropdown-menu>
|
||||
</div>
|
||||
</ng-template>
|
||||
</ng-template>
|
||||
@ -1,22 +0,0 @@
|
||||
:host {
|
||||
.text-black {
|
||||
color: #000;
|
||||
}
|
||||
.icon {
|
||||
display: inline-block;
|
||||
width: 1em;
|
||||
height: 1em;
|
||||
stroke-width: 0;
|
||||
stroke: currentColor;
|
||||
/* stylelint-disable-next-line order/properties-order */
|
||||
fill: currentColor;
|
||||
}
|
||||
::ng-deep {
|
||||
.imgBox {
|
||||
display: flex;
|
||||
img {
|
||||
width: 60px !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1,23 +1,19 @@
|
||||
import { Component, OnInit, ViewChild } from '@angular/core';
|
||||
import { ActivatedRoute, Router } from '@angular/router';
|
||||
import { STColumn, STComponent, STData } from '@delon/abc/st';
|
||||
import { SFComponent, SFDateWidgetSchema, SFSchema, SFSelectWidgetSchema, SFUISchema } from '@delon/form';
|
||||
import { ShipperBaseService } from '@shared';
|
||||
import { STColumn, STComponent } from '@delon/abc/st';
|
||||
import { SFDateWidgetSchema, SFSelectWidgetSchema } from '@delon/form';
|
||||
import { SearchDrawerService } from '@shared';
|
||||
import { NzModalService } from 'ng-zorro-antd/modal';
|
||||
import { BasicTableComponent } from 'src/app/routes/commom';
|
||||
import { TaxManagementService } from '../../services/tax-management.service';
|
||||
|
||||
@Component({
|
||||
selector: 'app-tax-management-invoice-reporting',
|
||||
templateUrl: './invoice-reporting.component.html',
|
||||
styleUrls: ['./invoice-reporting.component.less']
|
||||
styleUrls: ['../../../commom/less/commom-table.less']
|
||||
})
|
||||
export class TaxManagementInvoiceReportingComponent implements OnInit {
|
||||
_$expand = false;
|
||||
ui!: SFUISchema;
|
||||
schema!: SFSchema;
|
||||
export class TaxManagementInvoiceReportingComponent extends BasicTableComponent implements OnInit {
|
||||
columns!: STColumn[];
|
||||
@ViewChild('st', { static: false }) st!: STComponent;
|
||||
@ViewChild('sf', { static: false }) sf!: SFComponent;
|
||||
tabType!: string;
|
||||
isLoading: boolean = false;
|
||||
tabs: any[] = [
|
||||
@ -29,21 +25,8 @@ export class TaxManagementInvoiceReportingComponent implements OnInit {
|
||||
];
|
||||
selectedIndex = '1'; //选择的项目
|
||||
serviceTel = '';
|
||||
constructor(
|
||||
public service: TaxManagementService,
|
||||
private router: Router,
|
||||
private ar: ActivatedRoute,
|
||||
public shipperservice: ShipperBaseService,
|
||||
private modal: NzModalService,
|
||||
public shipperSrv: ShipperBaseService
|
||||
) {
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询字段个数
|
||||
*/
|
||||
get queryFieldCount(): number {
|
||||
return Object.keys(this.schema?.properties || {}).length;
|
||||
constructor(public service: TaxManagementService, private modal: NzModalService, public searchDrawerService: SearchDrawerService) {
|
||||
super(searchDrawerService);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -62,22 +45,6 @@ export class TaxManagementInvoiceReportingComponent implements OnInit {
|
||||
return this.st?.list.filter((item: any) => item.checked) || [];
|
||||
}
|
||||
|
||||
/**
|
||||
* 伸缩查询条件
|
||||
*/
|
||||
expandToggle() {
|
||||
this._$expand = !this._$expand;
|
||||
this.sf?.setValue('/_$expand', this._$expand);
|
||||
}
|
||||
|
||||
/**
|
||||
* 重置表单
|
||||
*/
|
||||
resetSF() {
|
||||
this.sf.reset();
|
||||
this._$expand = false;
|
||||
this.isLoading = true
|
||||
}
|
||||
/**
|
||||
* 程序初始化入口
|
||||
*/
|
||||
@ -92,7 +59,6 @@ export class TaxManagementInvoiceReportingComponent implements OnInit {
|
||||
initSF() {
|
||||
this.schema = {
|
||||
properties: {
|
||||
_$expand: { type: 'boolean', ui: { hidden: true } },
|
||||
// uploadSts: {
|
||||
// title: '上传状态',
|
||||
// type: 'string',
|
||||
@ -118,7 +84,7 @@ export class TaxManagementInvoiceReportingComponent implements OnInit {
|
||||
widget: 'select',
|
||||
placeholder: '请选择',
|
||||
allowClear: true,
|
||||
asyncData: () => this.shipperservice.getNetworkFreightForwarder()
|
||||
asyncData: () => this.service.getNetworkFreightForwarder()
|
||||
}
|
||||
},
|
||||
arto: {
|
||||
@ -132,7 +98,8 @@ export class TaxManagementInvoiceReportingComponent implements OnInit {
|
||||
}
|
||||
},
|
||||
billHCode: {
|
||||
title: '订单号', type: 'string',
|
||||
title: '订单号',
|
||||
type: 'string',
|
||||
ui: {
|
||||
placeholder: '请输入'
|
||||
}
|
||||
@ -143,11 +110,8 @@ export class TaxManagementInvoiceReportingComponent implements OnInit {
|
||||
ui: {
|
||||
widget: 'sl-from-to',
|
||||
type: 'date',
|
||||
format: 'yyyy-MM-dd',
|
||||
visibleIf: {
|
||||
_$expand: (value: boolean) => value,
|
||||
},
|
||||
} as SFDateWidgetSchema,
|
||||
format: 'yyyy-MM-dd'
|
||||
} as SFDateWidgetSchema
|
||||
},
|
||||
uoloadDate: {
|
||||
title: '上传日期',
|
||||
@ -155,31 +119,22 @@ export class TaxManagementInvoiceReportingComponent implements OnInit {
|
||||
ui: {
|
||||
widget: 'sl-from-to',
|
||||
type: 'date',
|
||||
format: 'yyyy-MM-dd',
|
||||
visibleIf: {
|
||||
_$expand: (value: boolean) => value,
|
||||
},
|
||||
} as SFDateWidgetSchema,
|
||||
format: 'yyyy-MM-dd'
|
||||
} as SFDateWidgetSchema
|
||||
},
|
||||
invoiceno: {
|
||||
type: 'string',
|
||||
title: '发票号码',
|
||||
ui: {
|
||||
placeholder: '请输入',
|
||||
visibleIf: {
|
||||
_$expand: (value: boolean) => value
|
||||
}
|
||||
},
|
||||
placeholder: '请输入'
|
||||
}
|
||||
},
|
||||
invoiceno2: {
|
||||
type: 'string',
|
||||
title: '发票代码',
|
||||
ui: {
|
||||
placeholder: '请输入',
|
||||
visibleIf: {
|
||||
_$expand: (value: boolean) => value
|
||||
}
|
||||
},
|
||||
placeholder: '请输入'
|
||||
}
|
||||
},
|
||||
sts: {
|
||||
title: '发票状态',
|
||||
@ -188,17 +143,10 @@ export class TaxManagementInvoiceReportingComponent implements OnInit {
|
||||
widget: 'dict-select',
|
||||
containsAllLabel: true,
|
||||
params: { dictKey: 'vatinv:status' },
|
||||
containAllLable: true,
|
||||
visibleIf: {
|
||||
_$expand: (value: boolean) => value
|
||||
}
|
||||
containAllLable: true
|
||||
} as SFSelectWidgetSchema
|
||||
},
|
||||
},
|
||||
};
|
||||
this.ui = {
|
||||
'*': { spanLabelFixed: 120, grid: { span: 8, gutter: 4 }, enter: () => this.search() },
|
||||
$time: { grid: { span: 24 } },
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
@ -207,9 +155,9 @@ export class TaxManagementInvoiceReportingComponent implements OnInit {
|
||||
*/
|
||||
initST() {
|
||||
this.columns = [
|
||||
{ title: '', type: 'checkbox', className: 'text-center', width: '60px', },
|
||||
{ title: '上传状态', render: 'uploadSts', className: 'text-center', width: '120px', },
|
||||
{ title: '发票类型', render: 'invoiceType', className: 'text-center', width: '180px', },
|
||||
{ title: '', type: 'checkbox', className: 'text-center', width: '60px' },
|
||||
{ title: '上传状态', render: 'uploadSts', className: 'text-center', width: '120px' },
|
||||
{ title: '发票类型', render: 'invoiceType', className: 'text-center', width: '180px' },
|
||||
{
|
||||
title: '发票号码',
|
||||
index: 'invoiceno',
|
||||
@ -217,27 +165,35 @@ export class TaxManagementInvoiceReportingComponent implements OnInit {
|
||||
width: '120px',
|
||||
type: 'link',
|
||||
click: item => {
|
||||
window.open(`/#/ticket/invoice-list/detail/${item.vatinvHId}?type=${item.invoiceType}`, '_blank', 'noopener')
|
||||
window.open(`/#/ticket/invoice-list/detail/${item.vatinvHId}?type=${item.invoiceType}`, '_blank', 'noopener');
|
||||
}
|
||||
},
|
||||
{ title: '发票代码', index: 'invoiceno2', className: 'text-center', width: '150px', },
|
||||
{ title: '发票代码', index: 'invoiceno2', className: 'text-center', width: '150px' },
|
||||
{
|
||||
title: '网络货运人',
|
||||
index: 'ltdName',
|
||||
className: 'text-center',
|
||||
width: '180px',
|
||||
width: '180px'
|
||||
},
|
||||
{
|
||||
title: '购买方企业名称', index: 'artoname', className: 'text-center', width: '200px', type: 'link',
|
||||
title: '购买方企业名称',
|
||||
index: 'artoname',
|
||||
className: 'text-center',
|
||||
width: '200px',
|
||||
type: 'link',
|
||||
click: item => {
|
||||
window.open(`/#/usercenter/freight/list/detail/${item.arto}`, '_blank', 'noopener')
|
||||
window.open(`/#/usercenter/freight/list/detail/${item.arto}`, '_blank', 'noopener');
|
||||
}
|
||||
},
|
||||
{ title: '购买方统一社会信用代码', index: 'artotaxno', className: 'text-center', width: '200px' },
|
||||
{
|
||||
title: '订单号', index: 'billHCode', className: 'text-center', width: '180px', type: 'link',
|
||||
title: '订单号',
|
||||
index: 'billHCode',
|
||||
className: 'text-center',
|
||||
width: '180px',
|
||||
type: 'link',
|
||||
click: item => {
|
||||
window.open(`/#/order-management/vehicle/vehicle-detail/${item.ltdId}`, '_blank', 'noopener')
|
||||
window.open(`/#/order-management/vehicle/vehicle-detail/${item.ltdId}`, '_blank', 'noopener');
|
||||
}
|
||||
},
|
||||
{ title: '货物名称', index: 'goodsinfo', className: 'text-center', width: '120px' },
|
||||
@ -245,12 +201,10 @@ export class TaxManagementInvoiceReportingComponent implements OnInit {
|
||||
{ title: '开票日期', index: 'invoicedate', className: 'text-center', width: '180px' },
|
||||
{ title: '发票所属月份', index: 'invoicemonth', className: 'text-center', width: '140px' },
|
||||
{ title: '发票状态', index: 'sts', render: 'sts', className: 'text-center', width: '120px' },
|
||||
{ title: '上传日期', index: 'uoloadDate', className: 'text-center', width: '180px' },
|
||||
{ title: '上传日期', index: 'uoloadDate', className: 'text-center', width: '180px' }
|
||||
];
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
*撤回
|
||||
* @param record 记录实例
|
||||
@ -276,10 +230,9 @@ export class TaxManagementInvoiceReportingComponent implements OnInit {
|
||||
this.service.msgSrv.success('撤销成功');
|
||||
this.search();
|
||||
}
|
||||
})
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@ -307,10 +260,9 @@ export class TaxManagementInvoiceReportingComponent implements OnInit {
|
||||
this.service.msgSrv.success('撤销成功');
|
||||
this.search();
|
||||
}
|
||||
})
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
selectChange(item: any) {
|
||||
@ -318,10 +270,9 @@ export class TaxManagementInvoiceReportingComponent implements OnInit {
|
||||
|
||||
setTimeout(() => {
|
||||
this.st.load();
|
||||
})
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 上传
|
||||
*/
|
||||
@ -340,10 +291,9 @@ export class TaxManagementInvoiceReportingComponent implements OnInit {
|
||||
this.service.msgSrv.success('上传成功');
|
||||
this.st.load();
|
||||
}
|
||||
})
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 查看监管审核结果
|
||||
*/
|
||||
@ -351,17 +301,16 @@ export class TaxManagementInvoiceReportingComponent implements OnInit {
|
||||
if (record?.billStatus !== '2') {
|
||||
return;
|
||||
}
|
||||
this.openWainingModal('监管审核结果', record?.result)
|
||||
this.openWainingModal('监管审核结果', record?.result);
|
||||
}
|
||||
|
||||
|
||||
search() {
|
||||
this.st.load(1);
|
||||
}
|
||||
|
||||
/**
|
||||
* 异步导出
|
||||
*/
|
||||
* 异步导出
|
||||
*/
|
||||
export() {
|
||||
this.service.exportStart(this.reqParams, this.service.$api_invoiceUpload_export);
|
||||
}
|
||||
@ -370,8 +319,7 @@ export class TaxManagementInvoiceReportingComponent implements OnInit {
|
||||
this.modal.warning({
|
||||
nzMask: false,
|
||||
nzTitle: title,
|
||||
nzContent: content,
|
||||
})
|
||||
nzContent: content
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -2,7 +2,7 @@ import { Component, OnInit, ViewChild } from '@angular/core';
|
||||
import { ActivatedRoute, Router } from '@angular/router';
|
||||
import { STColumn, STComponent, STData } from '@delon/abc/st';
|
||||
import { SFDateWidgetSchema, SFSchemaEnum, SFSelectWidgetSchema } from '@delon/form';
|
||||
import { SearchDrawerService, ShipperBaseService } from '@shared';
|
||||
import { SearchDrawerService } from '@shared';
|
||||
import { NzModalService } from 'ng-zorro-antd/modal';
|
||||
import { of } from 'rxjs';
|
||||
import { map } from 'rxjs/operators';
|
||||
@ -34,7 +34,6 @@ export class TaxManagementOrderReportingComponent extends BasicTableComponent im
|
||||
public service: TaxManagementService,
|
||||
private router: Router,
|
||||
private ar: ActivatedRoute,
|
||||
public shipperservice: ShipperBaseService,
|
||||
private modal: NzModalService,
|
||||
public searchDrawerService: SearchDrawerService
|
||||
) {
|
||||
@ -163,7 +162,7 @@ export class TaxManagementOrderReportingComponent extends BasicTableComponent im
|
||||
widget: 'select',
|
||||
placeholder: '请选择',
|
||||
allowClear: true,
|
||||
asyncData: () => this.shipperservice.getNetworkFreightForwarder()
|
||||
asyncData: () => this.service.getNetworkFreightForwarder()
|
||||
}
|
||||
},
|
||||
recentlyPutTime: {
|
||||
|
||||
@ -257,7 +257,7 @@ export class FreightConfigComponent extends BasicTableComponent implements OnIni
|
||||
format: item => `${item.contractSurchargeRatio}%`
|
||||
},
|
||||
{
|
||||
title: '合同单业务量(元)',
|
||||
title: '合同单业务量(万元)',
|
||||
index: 'contractQuota',
|
||||
width: 170,
|
||||
type: 'widget',
|
||||
@ -265,7 +265,7 @@ export class FreightConfigComponent extends BasicTableComponent implements OnIni
|
||||
widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.contractQuota }) }
|
||||
},
|
||||
{
|
||||
title: '货源单业务量(元)',
|
||||
title: '货源单业务量(万元)',
|
||||
index: 'goodsQuota',
|
||||
width: 170,
|
||||
type: 'widget',
|
||||
|
||||
@ -203,14 +203,18 @@ export class VehicleComponentsListDetailComponent implements OnInit {
|
||||
*查看评价
|
||||
*/
|
||||
viewEvaluate(item: any) {
|
||||
console.log(item);
|
||||
this.st.reload();
|
||||
this.getDetailList();
|
||||
const params = {
|
||||
imgList: [item.carProtocal],
|
||||
index: 0
|
||||
};
|
||||
this.nzImageService.preview([{ src: item.carProtocal}]);
|
||||
// console.log(item);
|
||||
// this.st.reload();
|
||||
// this.getDetailList();
|
||||
// const params = {
|
||||
// imgList: [item.carProtocal],
|
||||
// index: 0
|
||||
// };
|
||||
// this.nzImageService.preview([{ src: item.carProtocal}]);
|
||||
this.modal.createStatic(VehicleImgViewComponent, { i: item }).subscribe(() => {
|
||||
this.st.reload();
|
||||
this.getDetailList();
|
||||
});
|
||||
}
|
||||
/**
|
||||
*查看评价
|
||||
|
||||
@ -383,8 +383,13 @@ export class ShipperBaseService extends BaseService {
|
||||
* 获取全部返佣配置
|
||||
* @returns
|
||||
*/
|
||||
getRebateConfig() {
|
||||
const params = {};
|
||||
getRebateConfig(value?: any) {
|
||||
const params:any = {};
|
||||
if(value) {
|
||||
params.stateLocked = 1
|
||||
}
|
||||
console.log(params);
|
||||
|
||||
return this.request(this.$api_get_rebate_config, params, 'POST').pipe(
|
||||
map(res => {
|
||||
if (res) {
|
||||
|
||||
Reference in New Issue
Block a user