Merge branch 'develop'

This commit is contained in:
wangshiming
2022-05-06 17:02:51 +08:00
25 changed files with 384 additions and 661 deletions

View File

@ -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.
*/

View File

@ -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>

View File

@ -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}`);
}
}
}

View File

@ -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>

View File

@ -1,5 +0,0 @@
:host {
.text-black {
color: #000;
}
}

View File

@ -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();
});
});

View File

@ -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}`);
}
}
}

View File

@ -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`; // 上传订单上报

View File

@ -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`;

View File

@ -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',

View File

@ -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

View File

@ -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>

View File

@ -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> 条数据

View File

@ -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: {

View File

@ -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>

View File

@ -1,5 +0,0 @@
:host {
.text-black {
color: #000;
}
}

View File

@ -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();
});
});

View File

@ -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 } }
};
}
/**

View File

@ -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>

View File

@ -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;
}
}
}
}

View File

@ -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
});
}
}

View File

@ -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: {

View File

@ -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',

View File

@ -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();
});
}
/**
*查看评价

View File

@ -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) {