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 * @Author : Shiming
* @Date : 2022-01-18 09:51:21 * @Date : 2022-01-18 09:51:21
* @LastEditors : Shiming * @LastEditors : Shiming
* @LastEditTime : 2022-05-06 15:29:21 * @LastEditTime : 2022-05-06 16:57:23
* @FilePath : \\tms-obc-web\\proxy.conf.js * @FilePath : \\tms-obc-web\\proxy.conf.js
* Copyright (C) 2022 huzhenhong. All rights reserved. * Copyright (C) 2022 huzhenhong. All rights reserved.
*/ */

View File

@ -1,7 +1,5 @@
<page-header-wrapper [title]="''"></page-header-wrapper> <!-- <page-header-wrapper [title]="''"></page-header-wrapper>
<nz-card> <nz-card>
<!-- 搜索表单 -->
<div nz-row nzGutter="8"> <div nz-row nzGutter="8">
<div nz-col [nzSpan]="_$expand ? 24 : 18"> <div nz-col [nzSpan]="_$expand ? 24 : 18">
<sf #sf [schema]="schema" [ui]="ui" [compact]="true" [button]="'none'"></sf> <sf #sf [schema]="schema" [ui]="ui" [compact]="true" [button]="'none'"></sf>
@ -17,18 +15,19 @@
</button> </button>
</div> </div>
</div> </div>
</nz-card> </nz-card> -->
<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-tabset [nzTabBarExtraContent]="extraTemplate" *ngIf="tabs.length>0">
<nz-tab *ngFor="let tab of tabs" [nzTitle]="tab.name" (nzSelect)="selectChange(tab)"> <nz-tab *ngFor="let tab of tabs" [nzTitle]="tab.name" (nzSelect)="selectChange(tab)">
</nz-tab> </nz-tab>
</nz-tabset> </nz-tabset>
</div>
<!-- 数据列表 --> <!-- 数据列表 -->
<st #st [scroll]="{x:'1200px'}" [data]="service.$api_get_fund_reporting_page" [columns]="columns" <st #st [scroll]="{x:'1200px',y:scrollY}" [data]="service.$api_get_fund_reporting_page" [columns]="columns"
[req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, params: reqParams }" [req]="{ params: reqParams }" [page]="{ }" (change)="changeSt($event)">
[res]="{ reName: { list: 'data.records', total: 'data.total' } }"
[page]="{ show: true, showSize: true, pageSizes: [10,20, 50, 100] }" (change)="changeSt($event)">
<ng-template st-row="uploadStatus" let-item> <ng-template st-row="uploadStatus" let-item>
<span [ngClass]="{'text-red-dark':item?.uploadStatus === '4'}">{{item?.uploadStatusLabel}}</span> <span [ngClass]="{'text-red-dark':item?.uploadStatus === '4'}">{{item?.uploadStatusLabel}}</span>
</ng-template> </ng-template>
@ -52,14 +51,28 @@
</st> </st>
</nz-card> </nz-card>
<ng-template #extraTemplate> <ng-template #extraTemplate>
<div class="d-flex align-items-center"> <div class="d-flex align-items-center mr-sm">
<div class="mr-md"> <div class="mr-md">
已选择 已选择
<strong class="text-red">{{ selectedRows.length }}</strong> 条数据 <strong class="text-red">{{ selectedRows.length }}</strong> 条数据
</div> </div>
<button nz-button nzType="primary" (click)="upload()" acl [acl-ability]="['FUND-REPORTING-upload']">上传</button> <button nz-button nzDanger [nzLoading]="isLoading && st.loading" acl [acl-ability]="['FUND-REPORTING-search']"
<button nz-button nzType="primary" (click)="recall()" acl [acl-ability]="['FUND-REPORTING-recall']">撤回</button> (click)="openDrawer()">筛选</button>
<button nz-button nzType="primary" (click)="updateData()" acl <button nz-button nzDanger (click)="export()" acl [acl-ability]="['FUND-REPORTING-export']"> 导出</button>
[acl-ability]="['FUND-REPORTING-upload-data']">更新数据</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> </div>
</ng-template> </ng-template>

View File

@ -1,24 +1,21 @@
import { Component, OnInit, ViewChild } from '@angular/core'; import { Component, OnInit, ViewChild } from '@angular/core';
import { ActivatedRoute, Router } from '@angular/router'; import { ActivatedRoute, Router } from '@angular/router';
import { STChange, STColumn, STComponent, STData } from '@delon/abc/st'; import { STChange, STColumn, STComponent, STData } from '@delon/abc/st';
import { SFComponent, SFDateWidgetSchema, SFSchema, SFUISchema } from '@delon/form'; import { SFDateWidgetSchema } from '@delon/form';
import { ShipperBaseService } from '@shared'; import { SearchDrawerService } from '@shared';
import { NzModalService } from 'ng-zorro-antd/modal'; import { NzModalService } from 'ng-zorro-antd/modal';
import { BasicTableComponent } from 'src/app/routes/commom';
import { ReportingService } from '../../services/reporting.service'; import { ReportingService } from '../../services/reporting.service';
import { DatatableReportingFundInfoComponent } from '../fund-info/fund-info.component'; import { DatatableReportingFundInfoComponent } from '../fund-info/fund-info.component';
@Component({ @Component({
selector: 'app-datatable-fund-reporting', selector: 'app-datatable-fund-reporting',
templateUrl: './fund-reporting.component.html', templateUrl: './fund-reporting.component.html',
styleUrls: ['./fund-reporting.component.less'] styleUrls: ['../../../../commom/less/commom-table.less']
}) })
export class DatatableFundReportingComponent implements OnInit { export class DatatableFundReportingComponent extends BasicTableComponent implements OnInit {
_$expand = false;
ui!: SFUISchema;
schema!: SFSchema;
columns!: STColumn[]; columns!: STColumn[];
@ViewChild('st', { static: false }) st!: STComponent; @ViewChild('st', { static: false }) st!: STComponent;
@ViewChild('sf', { static: false }) sf!: SFComponent;
tabType!: string; tabType!: string;
tabs: any[] = [ tabs: any[] = [
{ name: '待上传', value: '1' }, { name: '待上传', value: '1' },
@ -36,15 +33,9 @@ export class DatatableFundReportingComponent implements OnInit {
private router: Router, private router: Router,
private ar: ActivatedRoute, private ar: ActivatedRoute,
private modal: NzModalService, private modal: NzModalService,
public shipperSrv: ShipperBaseService public searchDrawerService: SearchDrawerService
) { ) {
} super(searchDrawerService);
/**
* 查询字段个数
*/
get queryFieldCount(): number {
return Object.keys(this.schema?.properties || {}).length;
} }
/** /**
@ -65,22 +56,6 @@ export class DatatableFundReportingComponent implements OnInit {
// return this.st?.list.filter((item: any) => item.checked) || []; // 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() { initSF() {
this.schema = { this.schema = {
properties: { properties: {
_$expand: { type: 'boolean', ui: { hidden: true } },
orderCode: { title: '订单号', type: 'string', ui: { placeholder: '请输入' } }, orderCode: { title: '订单号', type: 'string', ui: { placeholder: '请输入' } },
wayBillCode: { wayBillCode: {
type: 'string', type: 'string',
title: '运单号', title: '运单号',
ui: { ui: {
placeholder: '请输入', placeholder: '请输入'
}, }
}, },
serialNumberCode: { serialNumberCode: {
type: 'string', type: 'string',
title: '流水单号', title: '流水单号',
ui: { ui: {
placeholder: '请输入', placeholder: '请输入'
}, }
}, },
carrier: { carrier: {
title: '承运司机', title: '承运司机',
type: 'string', type: 'string',
ui: { ui: {
placeholder: '请输入司机姓名', visibleIf: { placeholder: '请输入司机姓名'
_$expand: (value: boolean) => value,
},
} }
}, },
carNumber: { carNumber: {
@ -125,10 +97,7 @@ export class DatatableFundReportingComponent implements OnInit {
type: 'string', type: 'string',
maxLength: 9, maxLength: 9,
ui: { ui: {
placeholder: '请输入', placeholder: '请输入'
visibleIf: {
_$expand: (value: boolean) => value,
},
} }
}, },
payee: { payee: {
@ -136,10 +105,7 @@ export class DatatableFundReportingComponent implements OnInit {
type: 'string', type: 'string',
maxLength: 9, maxLength: 9,
ui: { ui: {
placeholder: '请输入', placeholder: '请输入'
visibleIf: {
_$expand: (value: boolean) => value,
},
} }
}, },
// uploadStatus: { // uploadStatus: {
@ -170,10 +136,7 @@ export class DatatableFundReportingComponent implements OnInit {
ui: { ui: {
placeholder: '请选择', placeholder: '请选择',
allowClear: true, allowClear: true,
widget: 'select', widget: 'select'
visibleIf: {
_$expand: (value: boolean) => value,
},
} }
}, },
ltdId: { ltdId: {
@ -182,10 +145,7 @@ export class DatatableFundReportingComponent implements OnInit {
ui: { ui: {
placeholder: '请选择', placeholder: '请选择',
widget: 'select', widget: 'select',
asyncData: () => this.shipperSrv.getNetworkFreightForwarder({}, false), asyncData: () => this.service.getNetworkFreightForwarder({}, false),
visibleIf: {
_$expand: (value: boolean) => value,
},
allowClear: true allowClear: true
} }
}, },
@ -195,11 +155,8 @@ export class DatatableFundReportingComponent implements OnInit {
ui: { ui: {
widget: 'sl-from-to', widget: 'sl-from-to',
type: 'date', type: 'date',
format: 'yyyy-MM-dd', format: 'yyyy-MM-dd'
visibleIf: { } as SFDateWidgetSchema
_$expand: (value: boolean) => value,
},
} as SFDateWidgetSchema,
}, },
uploadTime: { uploadTime: {
title: '上传时间', title: '上传时间',
@ -207,17 +164,10 @@ export class DatatableFundReportingComponent implements OnInit {
ui: { ui: {
widget: 'sl-from-to', widget: 'sl-from-to',
type: 'date', type: 'date',
format: 'yyyy-MM-dd', format: 'yyyy-MM-dd'
visibleIf: { } as SFDateWidgetSchema
_$expand: (value: boolean) => value, }
}, }
} as SFDateWidgetSchema,
},
},
};
this.ui = {
'*': { spanLabelFixed: 120, grid: { span: 8, gutter: 4 }, enter: () => this.search() },
$time: { grid: { span: 24 } },
}; };
} }
@ -226,22 +176,22 @@ export class DatatableFundReportingComponent implements OnInit {
*/ */
initST() { initST() {
this.columns = [ this.columns = [
{ title: '', type: 'checkbox', className: 'text-center', width: '60px', }, { title: '', type: 'checkbox', className: 'text-center', width: '60px' },
{ title: '上传状态', render: 'uploadStatus', className: 'text-center', width: '120px', }, { title: '上传状态', render: 'uploadStatus', className: 'text-center', width: '120px' },
{ title: '本地校验', render: 'verifyStatus', className: 'text-center', width: '120px', }, { title: '本地校验', render: 'verifyStatus', className: 'text-center', width: '120px' },
{ title: '流水单号', index: 'serialNumberCode', className: 'text-center', width: '190px', }, { title: '流水单号', index: 'serialNumberCode', className: 'text-center', width: '190px' },
{ {
title: '订单号', title: '订单号',
render: 'orderCode', render: 'orderCode',
className: 'text-center', className: 'text-center',
width: '180px', width: '180px'
}, },
{ title: '运单号', render: 'wayBillCode', className: 'text-center', width: '180px', }, { title: '运单号', render: 'wayBillCode', className: 'text-center', width: '180px' },
{ {
title: '网络货运人', title: '网络货运人',
index: 'ltdName', index: 'ltdName',
className: 'text-center', className: 'text-center',
width: '180px', width: '180px'
}, },
{ title: '实际承运人名称', index: 'carrier', className: 'text-center', width: '150px' }, { title: '实际承运人名称', index: 'carrier', className: 'text-center', width: '150px' },
{ title: '实际承运人证件号码', index: 'cardId', className: 'text-center', width: '200px' }, { 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: '实际支付金额', render: 'payAmount', className: 'text-center', width: '150px' },
{ title: '交易时间', index: 'transactionTime', className: 'text-center', width: '180px' }, { title: '交易时间', index: 'transactionTime', className: 'text-center', width: '180px' },
{ title: '上传次数', index: 'uploadFrequency', className: 'text-center', width: '120px' }, { 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 记录实例 * @param record 记录实例
@ -287,11 +235,9 @@ export class DatatableFundReportingComponent implements OnInit {
this.search(); this.search();
} }
}) });
} }
}); });
} }
selectChange(item: any) { selectChange(item: any) {
@ -300,7 +246,7 @@ export class DatatableFundReportingComponent implements OnInit {
setTimeout(() => { setTimeout(() => {
this.selectedRows = []; this.selectedRows = [];
this.st.load(1); 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(['../view', record.uuid], { relativeTo: this.ar });
this.router.navigate(['../detail'], { this.router.navigate(['../detail'], {
queryParams: { queryParams: {
id: record.id, id: record.id
}, },
relativeTo: this.ar relativeTo: this.ar
}); });
@ -348,12 +294,9 @@ export class DatatableFundReportingComponent implements OnInit {
this.service.msgSrv.success('上传成功'); this.service.msgSrv.success('上传成功');
this.search(); this.search();
} }
}) });
} }
/** /**
* 查看校验结果 * 查看校验结果
*/ */
@ -368,12 +311,9 @@ export class DatatableFundReportingComponent implements OnInit {
}, },
nzFooter: null nzFooter: null
}); });
modalRef.afterClose.subscribe(res => { modalRef.afterClose.subscribe(res => {});
})
} }
/** /**
* 查看监管审核结果 * 查看监管审核结果
*/ */
@ -381,7 +321,7 @@ export class DatatableFundReportingComponent implements OnInit {
if (record?.verifyStatus !== '2') { if (record?.verifyStatus !== '2') {
return; return;
} }
this.openWainingModal('监管审核结果', record?.uploadResult) this.openWainingModal('监管审核结果', record?.uploadResult);
} }
/** /**
@ -398,12 +338,10 @@ export class DatatableFundReportingComponent implements OnInit {
this.service.msgSrv.success('更新成功'); this.service.msgSrv.success('更新成功');
this.selectedRows = []; this.selectedRows = [];
this.st.reload(); this.st.reload();
} }
}) });
} }
search() { search() {
this.selectedRows = []; this.selectedRows = [];
this.st.load(1); this.st.load(1);
@ -420,12 +358,11 @@ export class DatatableFundReportingComponent implements OnInit {
this.modal.warning({ this.modal.warning({
nzMask: false, nzMask: false,
nzTitle: title, nzTitle: title,
nzContent: content, nzContent: content
}) });
} }
changeSt(e: STChange): void { changeSt(e: STChange): void {
if (e.type === 'checkbox') { if (e.type === 'checkbox') {
const checkRows = (e.checkbox as STData[]) || []; const checkRows = (e.checkbox as STData[]) || [];
//判断当前页是否有选中的行 //判断当前页是否有选中的行
@ -434,16 +371,15 @@ export class DatatableFundReportingComponent implements OnInit {
const stList = this.st.list; const stList = this.st.list;
stList.forEach(item => { stList.forEach(item => {
this.selectedRows = this.selectedRows.filter((e: any) => e.id !== item.id); this.selectedRows = this.selectedRows.filter((e: any) => e.id !== item.id);
}) });
} else { } else {
//添加新增的行 //添加新增的行
checkRows.forEach((item: any) => { checkRows.forEach((item: any) => {
const newSelectedList = this.selectedRows.filter((r: any) => r.id === item.id); const newSelectedList = this.selectedRows.filter((r: any) => r.id === item.id);
if (newSelectedList.length === 0) { if (newSelectedList.length === 0) {
this.selectedRows.push(item); this.selectedRows.push(item);
} }
}) });
// 移除取消选中的行 // 移除取消选中的行
const stList = this.st.list; const stList = this.st.list;
stList.forEach(item => { stList.forEach(item => {
@ -451,12 +387,12 @@ export class DatatableFundReportingComponent implements OnInit {
const index = this.selectedRows.findIndex(_item => item.id === _item.id); const index = this.selectedRows.findIndex(_item => item.id === _item.id);
if (index !== -1) this.selectedRows.splice(index, 1); if (index !== -1) this.selectedRows.splice(index, 1);
} }
}) });
} }
} else if (e.type === 'loaded') { } else if (e.type === 'loaded') {
// 页面加载时勾选 // 页面加载时勾选
(e?.loaded || []).forEach((r: any) => { (e?.loaded || []).forEach((r: any) => {
this.selectedRows.forEach((x) => { this.selectedRows.forEach(x => {
if (x.id === r.id) { if (x.id === r.id) {
r.checked = true; r.checked = true;
} }
@ -478,14 +414,10 @@ export class DatatableFundReportingComponent implements OnInit {
routeTowaybill(item: any) { routeTowaybill(item: any) {
if (item.orderType === '1') { if (item.orderType === '1') {
window.open(location.origin + `/#/waybill-management/vehicle/vehicle-detail/${item.wayBillId}`); window.open(location.origin + `/#/waybill-management/vehicle/vehicle-detail/${item.wayBillId}`);
} else if (item.orderType === '2') { } else if (item.orderType === '2') {
window.open(location.origin + `/#/waybill-management/bulk/bulk-detail/${item.wayBillId}`); window.open(location.origin + `/#/waybill-management/bulk/bulk-detail/${item.wayBillId}`);
} else if (item.orderType === '3') { } else if (item.orderType === '3') {
window.open(location.origin + `/#/waybill-management/vehicle/vehicle-detail/${item.wayBillId}`); window.open(location.origin + `/#/waybill-management/vehicle/vehicle-detail/${item.wayBillId}`);
} }
} }
} }

View File

@ -1,17 +1,5 @@
<!-- <!-- <page-header-wrapper [title]="''"></page-header-wrapper>
* @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>
<nz-card> <nz-card>
<!-- 搜索表单 -->
<div nz-row nzGutter="8"> <div nz-row nzGutter="8">
<div nz-col [nzSpan]=" 24 "> <div nz-col [nzSpan]=" 24 ">
<sf #sf [schema]="schema" [ui]="ui" [compact]="true" [button]="'none'"></sf> <sf #sf [schema]="schema" [ui]="ui" [compact]="true" [button]="'none'"></sf>
@ -27,19 +15,19 @@
<i nz-icon [nzType]="!_$expand ? 'down' : 'up'"></i> <i nz-icon [nzType]="!_$expand ? 'down' : 'up'"></i>
</button> </button>
</div> </div>
</nz-card> </nz-card> -->
<nz-card> <nz-card class="table-box">
<nz-tabset [nzTabBarExtraContent]="extraTemplate" *ngIf="tabs.length>0"> <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 *ngFor="let tab of tabs" [nzTitle]="tab.name" (nzSelect)="selectChange(tab)">
</nz-tab> </nz-tab>
</nz-tabset> </nz-tabset>
</div>
<!-- 数据列表 --> <!-- 数据列表 -->
<st #st [scroll]="{x:'1200px'}" [data]="service.$api_get_order_reporting_page" [columns]="columns" <st #st [scroll]="{x:'1200px',y:scrollY}" [data]="service.$api_get_order_reporting_page" [columns]="columns"
[req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, params: reqParams }" [req]="{ params: reqParams }" [page]="{ }" [loading]="service.http.loading" (change)="changeSt($event)">
[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)">
<ng-template st-row="billPutStatus" let-item let-index="index"> <ng-template st-row="billPutStatus" let-item let-index="index">
<a *ngIf="item?.billPutStatus === '2'" (click)="viewAuditResult(item)">{{filterStatus(item?.billPutStatus)}}</a> <a *ngIf="item?.billPutStatus === '2'" (click)="viewAuditResult(item)">{{filterStatus(item?.billPutStatus)}}</a>
<span *ngIf="item?.billPutStatus !== '2'">{{filterStatus(item?.billPutStatus)}}</span> <span *ngIf="item?.billPutStatus !== '2'">{{filterStatus(item?.billPutStatus)}}</span>
@ -85,16 +73,32 @@
</st> </st>
</nz-card> </nz-card>
<ng-template #extraTemplate> <ng-template #extraTemplate>
<div class="d-flex align-items-center"> <div class="d-flex align-items-center mr-sm">
<div class="mr-md"> <div class="mr-md">
已选择 已选择
<strong class="text-red">{{ selectedRows.length }}</strong> 条数据 <strong class="text-red">{{ selectedRows.length }}</strong> 条数据
</div> </div>
<button nz-button nzType="primary" (click)="upload()" acl [acl-ability]="['ORDER-REPORTING-upload']">上传</button> <button nz-button nzDanger [nzLoading]="isLoading && st.loading" acl [acl-ability]="['ORDER-REPORTING-search']"
<button nz-button nzType="primary" (click)="recall()" acl [acl-ability]="['ORDER-REPORTING-recall']">撤回</button> (click)="openDrawer()">筛选</button>
<button nz-button nzType="primary" (click)="updateData()" acl <button nz-button nzDanger (click)="export()" acl [acl-ability]="['ORDER-REPORTING-export']"> 导出</button>
[acl-ability]="['ORDER-REPORTING-update-data']">更新数据</button> <button nz-button nz-dropdown [nzDropdownMenu]="menu" nzPlacement="bottomLeft">
<button nz-button nzType="primary" (click)="uploadSetting()" acl 更多<i nz-icon nzType="down" nzTheme="outline"></i></button>
[acl-ability]="['ORDER-REPORTING-search-updata']">上传设置</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> </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 { ActivatedRoute, Router } from '@angular/router';
import { STChange, STColumn, STComponent, STData } from '@delon/abc/st'; import { STChange, STColumn, STComponent, STData } from '@delon/abc/st';
import { SFComponent, SFDateWidgetSchema, SFSchema, SFUISchema } from '@delon/form'; 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 { NzModalService } from 'ng-zorro-antd/modal';
import { BasicTableComponent } from 'src/app/routes/commom';
import { ReportingService } from '../../services/reporting.service'; import { ReportingService } from '../../services/reporting.service';
import { DatatableReportingUploadSettingComponent } from '../upload-setting/upload-setting.component'; import { DatatableReportingUploadSettingComponent } from '../upload-setting/upload-setting.component';
import { DatatableReportingVerifyResultComponent } from '../verify-result/verify-result.component'; import { DatatableReportingVerifyResultComponent } from '../verify-result/verify-result.component';
@ -12,15 +13,11 @@ import { DatatableReportingvViewTrackComponent } from '../view-track/view-track.
@Component({ @Component({
selector: 'app-datatable-order-reporting', selector: 'app-datatable-order-reporting',
templateUrl: './order-reporting.component.html', templateUrl: './order-reporting.component.html',
styleUrls: ['./order-reporting.component.less'] styleUrls: ['../../../../commom/less/commom-table.less']
}) })
export class DatatableOrderReportingComponent implements OnInit { export class DatatableOrderReportingComponent extends BasicTableComponent implements OnInit {
_$expand = false;
ui!: SFUISchema;
schema!: SFSchema;
columns!: STColumn[]; columns!: STColumn[];
@ViewChild('st', { static: false }) st!: STComponent; @ViewChild('st', { static: false }) st!: STComponent;
@ViewChild('sf', { static: false }) sf!: SFComponent;
tabType!: string; tabType!: string;
tabs: any[] = [ tabs: any[] = [
{ name: '待上传', value: '0' }, { name: '待上传', value: '0' },
@ -37,15 +34,9 @@ export class DatatableOrderReportingComponent implements OnInit {
private router: Router, private router: Router,
private ar: ActivatedRoute, private ar: ActivatedRoute,
private modal: NzModalService, private modal: NzModalService,
public shipperSrv: ShipperBaseService public searchDrawerService: SearchDrawerService
) { ) {
} super(searchDrawerService);
/**
* 查询字段个数
*/
get queryFieldCount(): number {
return Object.keys(this.schema?.properties || {}).length;
} }
/** /**
@ -53,7 +44,7 @@ export class DatatableOrderReportingComponent implements OnInit {
*/ */
get reqParams() { get reqParams() {
const params = Object.assign({}, this.sf?.value || {}, { const params = Object.assign({}, this.sf?.value || {}, {
billPutStatus: this.selectedIndex, billPutStatus: this.selectedIndex
}); });
delete params._$expand; delete params._$expand;
return { ...params }; return { ...params };
@ -66,22 +57,6 @@ export class DatatableOrderReportingComponent implements OnInit {
// return this.st?.list.filter((item: any) => item.checked) || []; // 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', type: 'string',
title: '运单号', title: '运单号',
ui: { ui: {
placeholder: '请输入', placeholder: '请输入'
}, }
}, },
networkTransporter: { networkTransporter: {
title: '网络货运人', title: '网络货运人',
@ -111,7 +86,7 @@ export class DatatableOrderReportingComponent implements OnInit {
ui: { ui: {
placeholder: '请选择', placeholder: '请选择',
widget: 'select', widget: 'select',
asyncData: () => this.shipperSrv.getNetworkFreightForwarder({}, false), asyncData: () => this.service.getNetworkFreightForwarder({}, false),
allowClear: true allowClear: true
} }
}, },
@ -119,19 +94,14 @@ export class DatatableOrderReportingComponent implements OnInit {
title: '货主', title: '货主',
type: 'string', type: 'string',
ui: { ui: {
placeholder: '请输入', placeholder: '请输入'
visibleIf: {
_$expand: (value: boolean) => value,
},
} }
}, },
driverName: { driverName: {
title: '承运司机', title: '承运司机',
type: 'string', type: 'string',
ui: { ui: {
placeholder: '请输入司机姓名/手机号', visibleIf: { placeholder: '请输入司机姓名/手机号'
_$expand: (value: boolean) => value,
},
} }
}, },
carNo: { carNo: {
@ -139,10 +109,7 @@ export class DatatableOrderReportingComponent implements OnInit {
type: 'string', type: 'string',
maxLength: 9, maxLength: 9,
ui: { ui: {
placeholder: '请输入', placeholder: '请输入'
visibleIf: {
_$expand: (value: boolean) => value,
},
} }
}, },
// putStatus: { // putStatus: {
@ -175,10 +142,7 @@ export class DatatableOrderReportingComponent implements OnInit {
ui: { ui: {
placeholder: '请选择', placeholder: '请选择',
widget: 'select', widget: 'select',
allowClear: true, allowClear: true
visibleIf: {
_$expand: (value: boolean) => value,
},
} }
}, },
recentlyPutTime: { recentlyPutTime: {
@ -187,11 +151,8 @@ export class DatatableOrderReportingComponent implements OnInit {
ui: { ui: {
widget: 'sl-from-to', widget: 'sl-from-to',
type: 'date', type: 'date',
format: 'yyyy-MM-dd', format: 'yyyy-MM-dd'
visibleIf: { } as SFDateWidgetSchema
_$expand: (value: boolean) => value,
},
} as SFDateWidgetSchema,
}, },
orderReceivingTime: { orderReceivingTime: {
title: '运单生成时间', title: '运单生成时间',
@ -199,11 +160,8 @@ export class DatatableOrderReportingComponent implements OnInit {
ui: { ui: {
widget: 'sl-from-to', widget: 'sl-from-to',
type: 'date', type: 'date',
format: 'yyyy-MM-dd', format: 'yyyy-MM-dd'
visibleIf: { } as SFDateWidgetSchema
_$expand: (value: boolean) => value,
},
} as SFDateWidgetSchema,
}, },
dispatchedDate: { dispatchedDate: {
title: '发货时间', title: '发货时间',
@ -211,11 +169,8 @@ export class DatatableOrderReportingComponent implements OnInit {
ui: { ui: {
widget: 'sl-from-to', widget: 'sl-from-to',
type: 'date', type: 'date',
format: 'yyyy-MM-dd', format: 'yyyy-MM-dd'
visibleIf: { } as SFDateWidgetSchema
_$expand: (value: boolean) => value,
},
} as SFDateWidgetSchema,
}, },
receivingDate: { receivingDate: {
title: '收货时间', title: '收货时间',
@ -223,11 +178,8 @@ export class DatatableOrderReportingComponent implements OnInit {
ui: { ui: {
widget: 'sl-from-to', widget: 'sl-from-to',
type: 'date', type: 'date',
format: 'yyyy-MM-dd', format: 'yyyy-MM-dd'
visibleIf: { } as SFDateWidgetSchema
_$expand: (value: boolean) => value,
},
} as SFDateWidgetSchema,
}, },
trajectoryDataAppStatus: { trajectoryDataAppStatus: {
@ -240,10 +192,7 @@ export class DatatableOrderReportingComponent implements OnInit {
], ],
ui: { ui: {
placeholder: '请选择', placeholder: '请选择',
widget: 'select', widget: 'select'
visibleIf: {
_$expand: (value: boolean) => value,
},
} }
}, },
trajectoryDataStatus: { trajectoryDataStatus: {
@ -256,22 +205,10 @@ export class DatatableOrderReportingComponent implements OnInit {
], ],
ui: { ui: {
placeholder: '请选择', placeholder: '请选择',
widget: 'select', widget: 'select'
visibleIf: { }
_$expand: (value: boolean) => value, }
},
} }
},
},
};
this.ui = {
'*': {
spanLabelFixed: 120,
grid: {
lg: 12,
xl: 8
}, enter: () => this.search()
},
}; };
} }
@ -280,24 +217,24 @@ export class DatatableOrderReportingComponent implements OnInit {
*/ */
initST() { initST() {
this.columns = [ this.columns = [
{ title: '', type: 'checkbox', className: 'text-center', width: '60px', }, { title: '', type: 'checkbox', className: 'text-center', width: '60px' },
{ title: '订单状态', index: 'billPutStatusLabel', className: 'text-center', width: '120px', }, { title: '订单状态', index: 'billPutStatusLabel', className: 'text-center', width: '120px' },
{ title: '司机状态', index: 'driverPutStatusLabel', className: 'text-center', width: '120px', }, { title: '司机状态', index: 'driverPutStatusLabel', className: 'text-center', width: '120px' },
{ title: '车辆状态', index: 'carPutStatusLabel', className: 'text-center', width: '120px', }, { title: '车辆状态', index: 'carPutStatusLabel', className: 'text-center', width: '120px' },
{ title: '本地校验', render: 'checkStatus', className: 'text-center', width: '120px', }, { title: '本地校验', render: 'checkStatus', className: 'text-center', width: '120px' },
{ {
title: '订单号', title: '订单号',
render: 'billCode', render: 'billCode',
className: 'text-center', className: 'text-center',
width: '180px', width: '180px'
}, },
{ title: '运单号', render: 'wayBillCode', className: 'text-center', width: '180px', }, { title: '运单号', render: 'wayBillCode', className: 'text-center', width: '180px' },
{ {
title: '网络货运人', title: '网络货运人',
index: 'enterpriseInfoName', index: 'enterpriseInfoName',
className: 'text-center', className: 'text-center',
width: '180px', width: '180px'
}, },
{ title: '统一社会信用代码', index: 'unifiedSocialCreditCode', className: 'text-center', width: '200px' }, { title: '统一社会信用代码', index: 'unifiedSocialCreditCode', className: 'text-center', width: '200px' },
{ title: '运单生成时间', index: 'wayBillCreateTime', className: 'text-center', width: '180px' }, { title: '运单生成时间', index: 'wayBillCreateTime', className: 'text-center', width: '180px' },
@ -317,12 +254,11 @@ export class DatatableOrderReportingComponent implements OnInit {
width: '250px', width: '250px',
type: 'enum', type: 'enum',
enum: { enum: {
"4": "绿色", '4': '绿色',
"3": "黄绿色", '3': '黄绿色',
"2": "黄色", '2': '黄色',
"1": "蓝色" '1': '蓝色'
} }
}, },
{ title: '司机姓名', index: 'driverName', className: 'text-center', width: '150px' }, { title: '司机姓名', index: 'driverName', className: 'text-center', width: '150px' },
{ title: '司机手机号码', index: 'driverPhone', className: 'text-center', width: '200px' }, { 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: 'goodsName', className: 'text-center', width: '180px' },
{ title: '实际承运人名称', index: 'carrierName', className: 'text-center', width: '150px' }, { title: '实际承运人名称', index: 'carrierName', className: 'text-center', width: '150px' },
{ title: '实际承运人证件号码', index: 'carrierIdentityNo', className: 'text-center', width: '200px' }, { title: '实际承运人证件号码', index: 'carrierIdentityNo', className: 'text-center', width: '200px' },
{ title: '实际承运人道路运输许可证号', index: 'roadTransportNo', className: 'text-center', width: '230px' },
{ title: '实际承运人道路运输许可证号', index: 'roadTransportNo', className: 'text-center', width: '150px' },
{ title: '车辆轨迹', render: 'car', className: 'text-center', width: '250px' }, { title: '车辆轨迹', render: 'car', className: 'text-center', width: '250px' },
{ title: '司机轨迹', render: 'driver', className: 'text-center', width: '150px' }, { title: '司机轨迹', render: 'driver', className: 'text-center', width: '150px' },
{ title: '上传次数', index: 'putNumber', 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 记录实例 * @param record 记录实例
@ -363,14 +295,12 @@ export class DatatableOrderReportingComponent implements OnInit {
this.service.msgSrv.success('撤销成功'); this.service.msgSrv.success('撤销成功');
this.search(); this.search();
} }
}) });
} }
}); });
} }
changeSt(e: STChange): void { changeSt(e: STChange): void {
if (e.type === 'checkbox') { if (e.type === 'checkbox') {
const checkRows = (e.checkbox as STData[]) || []; const checkRows = (e.checkbox as STData[]) || [];
//判断当前页是否有选中的行 //判断当前页是否有选中的行
@ -379,16 +309,15 @@ export class DatatableOrderReportingComponent implements OnInit {
const stList = this.st.list; const stList = this.st.list;
stList.forEach(item => { stList.forEach(item => {
this.selectedRows = this.selectedRows.filter((e: any) => e.id !== item.id); this.selectedRows = this.selectedRows.filter((e: any) => e.id !== item.id);
}) });
} else { } else {
//添加新增的行 //添加新增的行
checkRows.forEach((item: any) => { checkRows.forEach((item: any) => {
const newSelectedList = this.selectedRows.filter((r: any) => r.id === item.id); const newSelectedList = this.selectedRows.filter((r: any) => r.id === item.id);
if (newSelectedList.length === 0) { if (newSelectedList.length === 0) {
this.selectedRows.push(item); this.selectedRows.push(item);
} }
}) });
// 移除取消选中的行 // 移除取消选中的行
const stList = this.st.list; const stList = this.st.list;
stList.forEach(item => { stList.forEach(item => {
@ -396,12 +325,12 @@ export class DatatableOrderReportingComponent implements OnInit {
const index = this.selectedRows.findIndex(_item => item.id === _item.id); const index = this.selectedRows.findIndex(_item => item.id === _item.id);
if (index !== -1) this.selectedRows.splice(index, 1); if (index !== -1) this.selectedRows.splice(index, 1);
} }
}) });
} }
} else if (e.type === 'loaded') { } else if (e.type === 'loaded') {
// 页面加载时勾选 // 页面加载时勾选
(e?.loaded || []).forEach((r: any) => { (e?.loaded || []).forEach((r: any) => {
this.selectedRows.forEach((x) => { this.selectedRows.forEach(x => {
if (x.id === r.id) { if (x.id === r.id) {
r.checked = true; r.checked = true;
} }
@ -415,7 +344,7 @@ export class DatatableOrderReportingComponent implements OnInit {
setTimeout(() => { setTimeout(() => {
this.selectedRows = []; this.selectedRows = [];
this.st.load(1); 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(['../view', record.uuid], { relativeTo: this.ar });
this.router.navigate(['../detail'], { this.router.navigate(['../detail'], {
queryParams: { queryParams: {
id: record.id, id: record.id
}, },
relativeTo: this.ar relativeTo: this.ar
}); });
@ -463,10 +392,9 @@ export class DatatableOrderReportingComponent implements OnInit {
this.service.msgSrv.success('上传成功'); this.service.msgSrv.success('上传成功');
this.search(); this.search();
} }
}) });
} }
/** /**
* *
* @param params 上传设置 * @param params 上传设置
@ -479,8 +407,7 @@ export class DatatableOrderReportingComponent implements OnInit {
nzComponentParams: {}, nzComponentParams: {},
nzFooter: null nzFooter: null
}); });
modalRef.afterClose.subscribe(res => { modalRef.afterClose.subscribe(res => {});
})
} }
/** /**
@ -496,8 +423,7 @@ export class DatatableOrderReportingComponent implements OnInit {
}, },
nzFooter: null nzFooter: null
}); });
modalRef.afterClose.subscribe(res => { modalRef.afterClose.subscribe(res => {});
})
} }
/** /**
@ -507,10 +433,9 @@ export class DatatableOrderReportingComponent implements OnInit {
if (record?.billStatus !== '2') { if (record?.billStatus !== '2') {
return; return;
} }
this.openWainingModal('监管审核结果', record?.result) this.openWainingModal('监管审核结果', record?.result);
} }
search() { search() {
this.selectedRows = []; this.selectedRows = [];
this.st.load(1); this.st.load(1);
@ -527,15 +452,15 @@ export class DatatableOrderReportingComponent implements OnInit {
this.modal.warning({ this.modal.warning({
nzMask: false, nzMask: false,
nzTitle: title, nzTitle: title,
nzContent: content, nzContent: content
}) });
} }
/** /**
* 查看轨迹 * 查看轨迹
*/ */
viewTrack(_record: any, trajectory: string) { viewTrack(_record: any, trajectory: string) {
const title = trajectory === 'car' ? '车辆' : '司机' const title = trajectory === 'car' ? '车辆' : '司机';
const modalRef = this.modal.create({ const modalRef = this.modal.create({
nzTitle: `查看${title}轨迹`, nzTitle: `查看${title}轨迹`,
nzWidth: 1000, nzWidth: 1000,
@ -546,8 +471,7 @@ export class DatatableOrderReportingComponent implements OnInit {
}, },
nzFooter: null nzFooter: null
}); });
modalRef.afterClose.subscribe(res => { modalRef.afterClose.subscribe(res => {});
})
} }
/** /**
@ -565,7 +489,7 @@ export class DatatableOrderReportingComponent implements OnInit {
this.selectedRows = []; this.selectedRows = [];
this.st.reload(); this.st.reload();
} }
}) });
} }
filterStatus(status: number) { filterStatus(status: number) {
@ -578,7 +502,6 @@ export class DatatableOrderReportingComponent implements OnInit {
return '上传异常'; return '上传异常';
default: default:
return ''; return '';
} }
} }
@ -592,7 +515,6 @@ export class DatatableOrderReportingComponent implements OnInit {
return '不通过'; return '不通过';
default: default:
return ''; return '';
} }
} }
@ -609,13 +531,10 @@ export class DatatableOrderReportingComponent implements OnInit {
routeTowaybill(item: any) { routeTowaybill(item: any) {
if (item.billType === '1') { if (item.billType === '1') {
window.open(location.origin + `/#/waybill-management/vehicle/vehicle-detail/${item.waybillId}`); window.open(location.origin + `/#/waybill-management/vehicle/vehicle-detail/${item.waybillId}`);
} else if (item.billType === '2') { } else if (item.billType === '2') {
window.open(location.origin + `/#/waybill-management/bulk/bulk-detail/${item.waybillId}`); window.open(location.origin + `/#/waybill-management/bulk/bulk-detail/${item.waybillId}`);
} else if (item.billType === '3') { } else if (item.billType === '3') {
window.open(location.origin + `/#/waybill-management/vehicle/vehicle-detail/${item.waybillId}`); window.open(location.origin + `/#/waybill-management/vehicle/vehicle-detail/${item.waybillId}`);
} }
} }
} }

View File

@ -1,10 +1,10 @@
import { Injectable, Injector } from '@angular/core'; import { Injectable, Injector } from '@angular/core';
import { BaseService } from '@shared'; import { BaseService, ShipperBaseService } from '@shared';
@Injectable({ @Injectable({
providedIn: 'root' providedIn: 'root'
}) })
export class ReportingService extends BaseService { export class ReportingService extends ShipperBaseService {
$api_get_order_reporting_page = `/api/sdc/regulation/list/queryPage`; // 订单上报-列表 $api_get_order_reporting_page = `/api/sdc/regulation/list/queryPage`; // 订单上报-列表
$api_upload_order_reporting = `/api/sdc/regulation/push`; // 上传订单上报 $api_upload_order_reporting = `/api/sdc/regulation/push`; // 上传订单上报

View File

@ -11,15 +11,13 @@
import { Injectable, Injector } from '@angular/core'; import { Injectable, Injector } from '@angular/core';
import { _HttpClient } from '@delon/theme'; import { _HttpClient } from '@delon/theme';
import { NzMessageService } from 'ng-zorro-antd/message'; import { ShipperBaseService } from '@shared';
import { map } from 'rxjs/operators'; 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({ @Injectable({
providedIn: 'root', providedIn: 'root',
}) })
export class DataService extends BaseService { export class DataService extends ShipperBaseService {
// 查询运营报表 // 查询运营报表
$api_listOperationalReportPage = `/api/sdc/report/listOperationalReportPage`; $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 { PartnerListService } from '../../services/partner-list.service';
import { PartnerAuditModalComponent } from '../partner-audit-modal/partner-audit-modal.component'; import { PartnerAuditModalComponent } from '../partner-audit-modal/partner-audit-modal.component';
import { map } from 'rxjs/operators';
@Component({ @Component({
selector: 'app-partner-list', selector: 'app-partner-list',
@ -54,7 +55,7 @@ export class PartnerListComponent {
}; };
loadSelectOptions() { loadSelectOptions() {
this.service.getRebateConfig().subscribe(res => { this.service.getRebateConfig({stateLocked: 1}).subscribe(res => {
if (res) { if (res) {
console.log(res); console.log(res);
@ -358,11 +359,22 @@ export class PartnerListComponent {
ui: { ui: {
widget: 'select', widget: 'select',
placeholder: '请选择', 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: { visibleIf: {
expand: (value: boolean) => value expand: (value: boolean) => value
} } } as SFDateWidgetSchema
}
}, },
lockedStatus: { lockedStatus: {
type: 'string', type: 'string',

View File

@ -2,6 +2,7 @@ import { Component, Input, OnInit, ViewChild } from '@angular/core';
import { SFComponent, SFSchema, SFValue } from '@delon/form'; import { SFComponent, SFSchema, SFValue } from '@delon/form';
import { ModalHelper } from '@delon/theme'; import { ModalHelper } from '@delon/theme';
import { NzModalRef, NzModalService } from 'ng-zorro-antd/modal'; import { NzModalRef, NzModalService } from 'ng-zorro-antd/modal';
import { map } from 'rxjs/operators';
import { PartnerListService } from '../../services/partner-list.service'; import { PartnerListService } from '../../services/partner-list.service';
@Component({ @Component({
@ -22,6 +23,7 @@ export class PartnerAuditModalComponent implements OnInit {
ngOnInit(): void { ngOnInit(): void {
console.log(this.info); console.log(this.info);
this.initSF(this.info); this.initSF(this.info);
// asyncData: () => this.service.getChannel(),
if(this.info.channelId) { if(this.info.channelId) {
const value = [{ const value = [{
@ -30,14 +32,30 @@ export class PartnerAuditModalComponent implements OnInit {
}] }]
setTimeout(() => { setTimeout(() => {
if(this.sf) { 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); 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: { ui: {
hidden: true hidden: true
}, },
// default: this.info.isPass default: this.info.isPass
}, },
staffName: { staffName: {
title: '合伙人名称', title: '合伙人名称',
type: 'string', type: 'string',
ui: { widget: 'text' }, ui: { widget: 'text' },
// default: user.enterpriseName default: user.enterpriseName
}, },
status: { status: {
title: '审核结果', title: '审核结果',
@ -78,7 +96,6 @@ export class PartnerAuditModalComponent implements OnInit {
widget: 'select', widget: 'select',
placeholder: '请选择', placeholder: '请选择',
allowClear: true, allowClear: true,
asyncData: () => this.service.getChannel(),
hidden: this.info.isPass === false, hidden: this.info.isPass === false,
visibleIf: { visibleIf: {
status: value => value status: value => value

View File

@ -4,7 +4,7 @@
* @Author : Shiming * @Author : Shiming
* @Date : 2022-02-24 20:09:49 * @Date : 2022-02-24 20:09:49
* @LastEditors : Shiming * @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 * @FilePath : \\tms-obc-web\\src\\app\\routes\\partner\\rebate-management\\components\\rebate-setting\\rebate-setting.component.html
* Copyright (C) 2022 huzhenhong. All rights reserved. * Copyright (C) 2022 huzhenhong. All rights reserved.
--> -->
@ -23,7 +23,7 @@
></sf> ></sf>
<div nz-col [nzSpan]="_$expand ? 24 : 6" class="text-right"> <div nz-col [nzSpan]="_$expand ? 24 : 6" class="text-right">
<button nz-button nzType="primary" [nzLoading]="service.http.loading" (click)="st?.load(1);">查询</button> <button nz-button nzType="primary" [nzLoading]="service.http.loading" (click)="st?.load(1);">查询</button>
<button nz-button 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> <button nz-button [disabled]="service.http.loading" (click)="resetSF()">重置</button>
</div> </div>
</div> </div>

View File

@ -32,7 +32,7 @@
</st> </st>
</nz-card> </nz-card>
<ng-template #extraTemplate> <ng-template #extraTemplate>
<div class="d-flex align-items-center"> <div class="d-flex align-items-center mr-sm">
<div class="mr-md"> <div class="mr-md">
已选择 已选择
<strong class="text-red">{{ selectedRows.length }}</strong> 条数据 <strong class="text-red">{{ selectedRows.length }}</strong> 条数据

View File

@ -1,9 +1,7 @@
import { Component, OnInit, ViewChild } from '@angular/core'; import { Component, OnInit, ViewChild } from '@angular/core';
import { ActivatedRoute, Router } from '@angular/router'; import { STChange, STColumn, STComponent } from '@delon/abc/st';
import { STChange, STColumn, STComponent, STData } from '@delon/abc/st'; import { SFDateWidgetSchema } from '@delon/form';
import { SFComponent, SFDateWidgetSchema, SFSchema, SFSchemaEnum, SFSelectWidgetSchema, SFUISchema } from '@delon/form';
import { SearchDrawerService } from '@shared'; import { SearchDrawerService } from '@shared';
import { NzModalService } from 'ng-zorro-antd/modal';
import { BasicTableComponent } from 'src/app/routes/commom'; import { BasicTableComponent } from 'src/app/routes/commom';
import { TaxManagementService } from '../../services/tax-management.service'; import { TaxManagementService } from '../../services/tax-management.service';
@ -92,7 +90,7 @@ export class TaxManagementIndividualCollectComponent extends BasicTableComponent
ui: { ui: {
widget: 'sl-from-to', widget: 'sl-from-to',
type: 'date', type: 'date',
format: 'yyyy-MM-dd', format: 'yyyy-MM-dd'
} as SFDateWidgetSchema } as SFDateWidgetSchema
}, },
nsrmc: { nsrmc: {

View File

@ -1,17 +1,5 @@
<!-- <!-- <page-header-wrapper [title]="''"></page-header-wrapper>
* @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>
<nz-card> <nz-card>
<!-- 搜索表单 -->
<div nz-row nzGutter="8"> <div nz-row nzGutter="8">
<div nz-col [nzSpan]="_$expand ? 24 : 18"> <div nz-col [nzSpan]="_$expand ? 24 : 18">
<sf #sf [schema]="schema" [ui]="ui" [compact]="true" [button]="'none'"></sf> <sf #sf [schema]="schema" [ui]="ui" [compact]="true" [button]="'none'"></sf>
@ -27,16 +15,19 @@
</button> </button>
</div> </div>
</div> </div>
</nz-card> </nz-card> -->
<nz-card>
<nz-tabset [nzTabBarExtraContent]="extraTemplate" *ngIf="tabs.length > 0"> <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-tab *ngFor="let tab of tabs" [nzTitle]="tab.name" (nzSelect)="selectChange(tab)"> </nz-tab>
</nz-tabset> </nz-tabset>
</div>
<!-- 数据列表 --> <!-- 数据列表 -->
<st #st [scroll]="{ x: '1200px' }" [data]="service.$api_get_taxDeclaration" [columns]="columns" <st #st [scroll]="{ x: '1200px',y:scrollY }" [data]="service.$api_get_taxDeclaration" [columns]="columns"
[req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, params: reqParams }" [req]="{ params: reqParams }" [page]="{ }" [loading]="false">
[res]="{ reName: { list: 'data.records', total: 'data.total' } }"
[page]="{ show: true, showSize: true, pageSizes: [10, 20, 50, 100] }" [loading]="false">
<ng-template st-row="orderStatus" let-item let-index="index"> <ng-template st-row="orderStatus" let-item let-index="index">
<a (click)="viewAuditResult(item)" *ngIf="item?.billStatus === '2'">{{ item?.billStatusLabel }}</a> <a (click)="viewAuditResult(item)" *ngIf="item?.billStatus === '2'">{{ item?.billStatusLabel }}</a>
<span *ngIf="item?.billStatus !== '2'">{{ item?.billStatusLabel }}</span> <span *ngIf="item?.billStatus !== '2'">{{ item?.billStatusLabel }}</span>
@ -58,10 +49,28 @@
已选择 已选择
<strong class="text-red">{{ selectedRows.length }}</strong> 条数据 <strong class="text-red">{{ selectedRows.length }}</strong> 条数据
</div> </div>
<button nz-button nzType="primary" (click)="upload()" acl [acl-ability]="['TAX-DECLARE-declare']">申报</button> <button nz-button nzDanger [nzLoading]="service.http.loading" acl [acl-ability]="['TAX-DECLARE-search']"
<button nz-button nzType="primary" (click)="recall()" acl [acl-ability]="['TAX-DECLARE-change']">更正</button> (click)="openDrawer()">筛选</button>
<button nz-button nzType="primary" (click)="uploadSetting()" acl [acl-ability]="['TAX-DECLARE-threshold']">修改起征点</button> <button nz-button nzDanger acl [acl-ability]="['TAX-DECLARE-export']"> 导出</button>
<button nz-button nzType="primary" (click)="resetData()" acl [acl-ability]="['TAX-DECLARE-resetData']">更新数据</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> </div>
</ng-template> </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 { Component, OnInit, ViewChild } from '@angular/core';
import { ActivatedRoute, Router } from '@angular/router'; import { ActivatedRoute, Router } from '@angular/router';
import { STColumn, STComponent, STData } from '@delon/abc/st'; import { STColumn, STComponent, STData } from '@delon/abc/st';
import { SFComponent, SFDateWidgetSchema, SFSchema, SFSchemaEnum, SFSelectWidgetSchema, SFUISchema } from '@delon/form'; import { SFDateWidgetSchema } from '@delon/form';
import { ShipperBaseService } from '@shared'; import { SearchDrawerService } from '@shared';
import { NzModalService } from 'ng-zorro-antd/modal'; import { NzModalService } from 'ng-zorro-antd/modal';
import { of } from 'rxjs'; import { BasicTableComponent } from 'src/app/routes/commom';
import { map } from 'rxjs/operators';
import { TaxManagementService } from '../../services/tax-management.service'; import { TaxManagementService } from '../../services/tax-management.service';
// import { DatatableReportingUploadSettingComponent } from '../upload-setting/upload-setting.component';
// import { DatatableReportingVerifyResultComponent } from '../verify-result/verify-result.component';
@Component({ @Component({
selector: 'app-tax-management-individual-declare', selector: 'app-tax-management-individual-declare',
templateUrl: './individual-declare.component.html', templateUrl: './individual-declare.component.html',
styleUrls: ['./individual-declare.component.less'] styleUrls: ['../../../commom/less/commom-table.less']
}) })
export class TaxManagementIndividualDeclareComponent implements OnInit { export class TaxManagementIndividualDeclareComponent extends BasicTableComponent implements OnInit {
_$expand = false;
ui!: SFUISchema;
schema!: SFSchema;
columns!: STColumn[]; columns!: STColumn[];
@ViewChild('st', { static: false }) st!: STComponent; @ViewChild('st', { static: false }) st!: STComponent;
@ViewChild('sf', { static: false }) sf!: SFComponent;
tabType!: string; tabType!: string;
tabs: any[] = [ tabs: any[] = [
{ name: '待申报', value: '0' }, { name: '待申报', value: '0' },
@ -37,16 +30,10 @@ export class TaxManagementIndividualDeclareComponent implements OnInit {
public service: TaxManagementService, public service: TaxManagementService,
private router: Router, private router: Router,
private ar: ActivatedRoute, private ar: ActivatedRoute,
public shipperservice: ShipperBaseService,
private modal: NzModalService, private modal: NzModalService,
public shipperSrv: ShipperBaseService public searchDrawerService: SearchDrawerService
) {} ) {
super(searchDrawerService);
/**
* 查询字段个数
*/
get queryFieldCount(): number {
return Object.keys(this.schema?.properties || {}).length;
} }
/** /**
@ -70,21 +57,6 @@ export class TaxManagementIndividualDeclareComponent implements OnInit {
return this.st?.list.filter((item: any) => item.checked) || []; 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,10 +106,7 @@ export class TaxManagementIndividualDeclareComponent implements OnInit {
placeholder: '请选择', placeholder: '请选择',
widget: 'dict-select', widget: 'dict-select',
params: { dictKey: 'taxincome:declare:status' }, params: { dictKey: 'taxincome:declare:status' },
containsAllLabel: true, containsAllLabel: true
visibleIf: {
_$expand: (value: boolean) => value
}
} }
}, },
@ -152,10 +121,7 @@ export class TaxManagementIndividualDeclareComponent implements OnInit {
ui: { ui: {
placeholder: '请选择', placeholder: '请选择',
widget: 'select', widget: 'select',
containsAllLabel: true, containsAllLabel: true
visibleIf: {
_$expand: (value: boolean) => value
}
}, },
default: '' default: ''
}, },
@ -165,10 +131,7 @@ export class TaxManagementIndividualDeclareComponent implements OnInit {
ui: { ui: {
widget: 'sl-from-to', widget: 'sl-from-to',
type: 'date', type: 'date',
format: 'yyyy-MM-dd', format: 'yyyy-MM-dd'
visibleIf: {
_$expand: (value: boolean) => value
}
} as SFDateWidgetSchema } as SFDateWidgetSchema
}, },
declareDate: { declareDate: {
@ -177,10 +140,7 @@ export class TaxManagementIndividualDeclareComponent implements OnInit {
ui: { ui: {
widget: 'sl-from-to', widget: 'sl-from-to',
type: 'date', type: 'date',
format: 'yyyy-MM-dd', format: 'yyyy-MM-dd'
visibleIf: {
_$expand: (value: boolean) => value
}
} as SFDateWidgetSchema } as SFDateWidgetSchema
}, },
ltdId: { ltdId: {
@ -190,18 +150,11 @@ export class TaxManagementIndividualDeclareComponent implements OnInit {
widget: 'select', widget: 'select',
placeholder: '请选择', placeholder: '请选择',
allowClear: true, allowClear: true,
visibleIf: { asyncData: () => this.service.getNetworkFreightForwarder()
_$expand: (value: boolean) => value
},
asyncData: () => this.shipperservice.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> <nz-card>
<!-- 搜索表单 -->
<div nz-row nzGutter="8"> <div nz-row nzGutter="8">
<div nz-col [nzSpan]="_$expand ? 24 : 18"> <div nz-col [nzSpan]="_$expand ? 24 : 18">
<sf #sf [schema]="schema" [ui]="ui" [compact]="true" [button]="'none'"></sf> <sf #sf [schema]="schema" [ui]="ui" [compact]="true" [button]="'none'"></sf>
</div> </div>
<div nz-col [nzSpan]="_$expand ? 24 : 6" [class.text-right]="_$expand"> <div nz-col [nzSpan]="_$expand ? 24 : 6" [class.text-right]="_$expand">
<button nz-button nzType="primary" [disabled]="!sf.valid" [nzLoading]="isLoading && st.loading" (click)="search()">查询</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)="resetSF()">重置</button>
<button nz-button (click)="export()" acl [acl-ability]="['TAX_INVOICE_REPORT-export']">导出</button> <button nz-button (click)="export()" acl [acl-ability]="['TAX_INVOICE_REPORT-export']">导出</button>
<button nz-button nzType="link" (click)="expandToggle()"> <button nz-button nzType="link" (click)="expandToggle()">
@ -16,22 +15,18 @@
</button> </button>
</div> </div>
</div> </div>
</nz-card> </nz-card> -->
<nz-card> <nz-card class="table-box">
<nz-tabset [nzTabBarExtraContent]="extraTemplate" *ngIf="tabs.length > 0"> <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-tab *ngFor="let tab of tabs" [nzTitle]="tab.name" (nzSelect)="selectChange(tab)"> </nz-tab>
</nz-tabset> </nz-tabset>
</div>
<!-- 数据列表 --> <!-- 数据列表 -->
<st <st #st [scroll]="{ x: '1200px',y:scrollY }" [data]="service.$api_getInvoiceReport_page" [columns]="columns"
#st [req]="{ params: reqParams }" [page]="{ }" [loading]="service.http.loading">
[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"
>
<ng-template st-row="uploadSts" let-item let-index="index"> <ng-template st-row="uploadSts" let-item let-index="index">
<!-- <a (click)="viewAuditResult(item)" *ngIf="item?.billStatus === '2'">{{item?.billStatusLabel}}</a> --> <!-- <a (click)="viewAuditResult(item)" *ngIf="item?.billStatus === '2'">{{item?.billStatusLabel}}</a> -->
<span *ngIf="item?.uploadSts == '1'">待上传</span> <span *ngIf="item?.uploadSts == '1'">待上传</span>
@ -52,23 +47,30 @@
</ng-template> </ng-template>
</st> </st>
</nz-card> </nz-card>
<ng-template #extraTemplate> <ng-template #extraTemplate>
<div class="d-flex align-items-center"> <div class="d-flex align-items-center mr-sm">
<div class="mr-md"> <div class="mr-md">
已选择 已选择
<strong class="text-red">{{ selectedRows.length }}</strong> 条数据 <strong class="text-red">{{ selectedRows.length }}</strong> 条数据
</div> </div>
<button <button nz-button nzDanger [nzLoading]="isLoading && st.loading" acl [acl-ability]="['TAX-ORDERREPORT-search']"
*ngIf="selectedIndex === '1' || selectedIndex === '4'" (click)="openDrawer()">筛选</button>
nz-button <button nz-button nzDanger acl [acl-ability]="['TAX_INVOICE_REPORT-export']"> 导出</button>
nzType="primary" <button nz-button *ngIf="selectedIndex && selectedIndex !== '2'" nz-dropdown [nzDropdownMenu]="menu"
(click)="upload()" nzPlacement="bottomLeft">
acl 更多<i nz-icon nzType="down" nzTheme="outline"></i></button>
[acl-ability]="['TAX_INVOICE_REPORT-upload']" <nz-dropdown-menu #menu="nzDropdownMenu">
>上传</button <ul nz-menu>
> <li nz-menu-item *ngIf="selectedIndex === '1' || selectedIndex === '4'" (click)="upload()" acl
<button *ngIf="selectedIndex === '3'" nz-button nzType="primary" (click)="recall()" acl [acl-ability]="['TAX_INVOICE_REPORT-recall']" [acl-ability]="['TAX_INVOICE_REPORT-upload']">
>撤回</button 上传
> </li>
<li nz-menu-item *ngIf="selectedIndex === '3'" (click)="recall()" acl
[acl-ability]="['TAX_INVOICE_REPORT-recall']">
撤回
</li>
</ul>
</nz-dropdown-menu>
</div> </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 { Component, OnInit, ViewChild } from '@angular/core';
import { ActivatedRoute, Router } from '@angular/router'; import { STColumn, STComponent } from '@delon/abc/st';
import { STColumn, STComponent, STData } from '@delon/abc/st'; import { SFDateWidgetSchema, SFSelectWidgetSchema } from '@delon/form';
import { SFComponent, SFDateWidgetSchema, SFSchema, SFSelectWidgetSchema, SFUISchema } from '@delon/form'; import { SearchDrawerService } from '@shared';
import { ShipperBaseService } from '@shared';
import { NzModalService } from 'ng-zorro-antd/modal'; import { NzModalService } from 'ng-zorro-antd/modal';
import { BasicTableComponent } from 'src/app/routes/commom';
import { TaxManagementService } from '../../services/tax-management.service'; import { TaxManagementService } from '../../services/tax-management.service';
@Component({ @Component({
selector: 'app-tax-management-invoice-reporting', selector: 'app-tax-management-invoice-reporting',
templateUrl: './invoice-reporting.component.html', templateUrl: './invoice-reporting.component.html',
styleUrls: ['./invoice-reporting.component.less'] styleUrls: ['../../../commom/less/commom-table.less']
}) })
export class TaxManagementInvoiceReportingComponent implements OnInit { export class TaxManagementInvoiceReportingComponent extends BasicTableComponent implements OnInit {
_$expand = false;
ui!: SFUISchema;
schema!: SFSchema;
columns!: STColumn[]; columns!: STColumn[];
@ViewChild('st', { static: false }) st!: STComponent; @ViewChild('st', { static: false }) st!: STComponent;
@ViewChild('sf', { static: false }) sf!: SFComponent;
tabType!: string; tabType!: string;
isLoading: boolean = false; isLoading: boolean = false;
tabs: any[] = [ tabs: any[] = [
@ -29,21 +25,8 @@ export class TaxManagementInvoiceReportingComponent implements OnInit {
]; ];
selectedIndex = '1'; //选择的项目 selectedIndex = '1'; //选择的项目
serviceTel = ''; serviceTel = '';
constructor( constructor(public service: TaxManagementService, private modal: NzModalService, public searchDrawerService: SearchDrawerService) {
public service: TaxManagementService, super(searchDrawerService);
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;
} }
/** /**
@ -62,22 +45,6 @@ export class TaxManagementInvoiceReportingComponent implements OnInit {
return this.st?.list.filter((item: any) => item.checked) || []; 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() { initSF() {
this.schema = { this.schema = {
properties: { properties: {
_$expand: { type: 'boolean', ui: { hidden: true } },
// uploadSts: { // uploadSts: {
// title: '上传状态', // title: '上传状态',
// type: 'string', // type: 'string',
@ -118,7 +84,7 @@ export class TaxManagementInvoiceReportingComponent implements OnInit {
widget: 'select', widget: 'select',
placeholder: '请选择', placeholder: '请选择',
allowClear: true, allowClear: true,
asyncData: () => this.shipperservice.getNetworkFreightForwarder() asyncData: () => this.service.getNetworkFreightForwarder()
} }
}, },
arto: { arto: {
@ -132,7 +98,8 @@ export class TaxManagementInvoiceReportingComponent implements OnInit {
} }
}, },
billHCode: { billHCode: {
title: '订单号', type: 'string', title: '订单号',
type: 'string',
ui: { ui: {
placeholder: '请输入' placeholder: '请输入'
} }
@ -143,11 +110,8 @@ export class TaxManagementInvoiceReportingComponent implements OnInit {
ui: { ui: {
widget: 'sl-from-to', widget: 'sl-from-to',
type: 'date', type: 'date',
format: 'yyyy-MM-dd', format: 'yyyy-MM-dd'
visibleIf: { } as SFDateWidgetSchema
_$expand: (value: boolean) => value,
},
} as SFDateWidgetSchema,
}, },
uoloadDate: { uoloadDate: {
title: '上传日期', title: '上传日期',
@ -155,32 +119,23 @@ export class TaxManagementInvoiceReportingComponent implements OnInit {
ui: { ui: {
widget: 'sl-from-to', widget: 'sl-from-to',
type: 'date', type: 'date',
format: 'yyyy-MM-dd', format: 'yyyy-MM-dd'
visibleIf: { } as SFDateWidgetSchema
_$expand: (value: boolean) => value,
},
} as SFDateWidgetSchema,
}, },
invoiceno: { invoiceno: {
type: 'string', type: 'string',
title: '发票号码', title: '发票号码',
ui: { ui: {
placeholder: '请输入', placeholder: '请输入'
visibleIf: {
_$expand: (value: boolean) => value
} }
}, },
},
invoiceno2: { invoiceno2: {
type: 'string', type: 'string',
title: '发票代码', title: '发票代码',
ui: { ui: {
placeholder: '请输入', placeholder: '请输入'
visibleIf: {
_$expand: (value: boolean) => value
} }
}, },
},
sts: { sts: {
title: '发票状态', title: '发票状态',
type: 'string', type: 'string',
@ -188,17 +143,10 @@ export class TaxManagementInvoiceReportingComponent implements OnInit {
widget: 'dict-select', widget: 'dict-select',
containsAllLabel: true, containsAllLabel: true,
params: { dictKey: 'vatinv:status' }, params: { dictKey: 'vatinv:status' },
containAllLable: true, containAllLable: true
visibleIf: {
_$expand: (value: boolean) => value
}
} as SFSelectWidgetSchema } 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() { initST() {
this.columns = [ this.columns = [
{ title: '', type: 'checkbox', className: 'text-center', width: '60px', }, { title: '', type: 'checkbox', className: 'text-center', width: '60px' },
{ title: '上传状态', render: 'uploadSts', className: 'text-center', width: '120px', }, { title: '上传状态', render: 'uploadSts', className: 'text-center', width: '120px' },
{ title: '发票类型', render: 'invoiceType', className: 'text-center', width: '180px', }, { title: '发票类型', render: 'invoiceType', className: 'text-center', width: '180px' },
{ {
title: '发票号码', title: '发票号码',
index: 'invoiceno', index: 'invoiceno',
@ -217,27 +165,35 @@ export class TaxManagementInvoiceReportingComponent implements OnInit {
width: '120px', width: '120px',
type: 'link', type: 'link',
click: item => { 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: '网络货运人', title: '网络货运人',
index: 'ltdName', index: 'ltdName',
className: 'text-center', 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 => { 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: '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 => { 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' }, { 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: 'invoicedate', className: 'text-center', width: '180px' },
{ title: '发票所属月份', index: 'invoicemonth', className: 'text-center', width: '140px' }, { title: '发票所属月份', index: 'invoicemonth', className: 'text-center', width: '140px' },
{ title: '发票状态', index: 'sts', render: 'sts', className: 'text-center', width: '120px' }, { 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 记录实例 * @param record 记录实例
@ -276,10 +230,9 @@ export class TaxManagementInvoiceReportingComponent implements OnInit {
this.service.msgSrv.success('撤销成功'); this.service.msgSrv.success('撤销成功');
this.search(); this.search();
} }
}) });
} }
}); });
} }
/** /**
@ -307,10 +260,9 @@ export class TaxManagementInvoiceReportingComponent implements OnInit {
this.service.msgSrv.success('撤销成功'); this.service.msgSrv.success('撤销成功');
this.search(); this.search();
} }
}) });
} }
}); });
} }
selectChange(item: any) { selectChange(item: any) {
@ -318,10 +270,9 @@ export class TaxManagementInvoiceReportingComponent implements OnInit {
setTimeout(() => { setTimeout(() => {
this.st.load(); this.st.load();
}) });
} }
/** /**
* 上传 * 上传
*/ */
@ -340,10 +291,9 @@ export class TaxManagementInvoiceReportingComponent implements OnInit {
this.service.msgSrv.success('上传成功'); this.service.msgSrv.success('上传成功');
this.st.load(); this.st.load();
} }
}) });
} }
/** /**
* 查看监管审核结果 * 查看监管审核结果
*/ */
@ -351,10 +301,9 @@ export class TaxManagementInvoiceReportingComponent implements OnInit {
if (record?.billStatus !== '2') { if (record?.billStatus !== '2') {
return; return;
} }
this.openWainingModal('监管审核结果', record?.result) this.openWainingModal('监管审核结果', record?.result);
} }
search() { search() {
this.st.load(1); this.st.load(1);
} }
@ -370,8 +319,7 @@ export class TaxManagementInvoiceReportingComponent implements OnInit {
this.modal.warning({ this.modal.warning({
nzMask: false, nzMask: false,
nzTitle: title, 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 { ActivatedRoute, Router } from '@angular/router';
import { STColumn, STComponent, STData } from '@delon/abc/st'; import { STColumn, STComponent, STData } from '@delon/abc/st';
import { SFDateWidgetSchema, SFSchemaEnum, SFSelectWidgetSchema } from '@delon/form'; import { SFDateWidgetSchema, SFSchemaEnum, SFSelectWidgetSchema } from '@delon/form';
import { SearchDrawerService, ShipperBaseService } from '@shared'; import { SearchDrawerService } from '@shared';
import { NzModalService } from 'ng-zorro-antd/modal'; import { NzModalService } from 'ng-zorro-antd/modal';
import { of } from 'rxjs'; import { of } from 'rxjs';
import { map } from 'rxjs/operators'; import { map } from 'rxjs/operators';
@ -34,7 +34,6 @@ export class TaxManagementOrderReportingComponent extends BasicTableComponent im
public service: TaxManagementService, public service: TaxManagementService,
private router: Router, private router: Router,
private ar: ActivatedRoute, private ar: ActivatedRoute,
public shipperservice: ShipperBaseService,
private modal: NzModalService, private modal: NzModalService,
public searchDrawerService: SearchDrawerService public searchDrawerService: SearchDrawerService
) { ) {
@ -163,7 +162,7 @@ export class TaxManagementOrderReportingComponent extends BasicTableComponent im
widget: 'select', widget: 'select',
placeholder: '请选择', placeholder: '请选择',
allowClear: true, allowClear: true,
asyncData: () => this.shipperservice.getNetworkFreightForwarder() asyncData: () => this.service.getNetworkFreightForwarder()
} }
}, },
recentlyPutTime: { recentlyPutTime: {

View File

@ -257,7 +257,7 @@ export class FreightConfigComponent extends BasicTableComponent implements OnIni
format: item => `${item.contractSurchargeRatio}%` format: item => `${item.contractSurchargeRatio}%`
}, },
{ {
title: '合同单业务量(元)', title: '合同单业务量(元)',
index: 'contractQuota', index: 'contractQuota',
width: 170, width: 170,
type: 'widget', type: 'widget',
@ -265,7 +265,7 @@ export class FreightConfigComponent extends BasicTableComponent implements OnIni
widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.contractQuota }) } widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.contractQuota }) }
}, },
{ {
title: '货源单业务量(元)', title: '货源单业务量(元)',
index: 'goodsQuota', index: 'goodsQuota',
width: 170, width: 170,
type: 'widget', type: 'widget',

View File

@ -203,14 +203,18 @@ export class VehicleComponentsListDetailComponent implements OnInit {
*查看评价 *查看评价
*/ */
viewEvaluate(item: any) { viewEvaluate(item: any) {
console.log(item); // 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.st.reload();
this.getDetailList(); this.getDetailList();
const params = { });
imgList: [item.carProtocal],
index: 0
};
this.nzImageService.preview([{ src: item.carProtocal}]);
} }
/** /**
*查看评价 *查看评价

View File

@ -383,8 +383,13 @@ export class ShipperBaseService extends BaseService {
* 获取全部返佣配置 * 获取全部返佣配置
* @returns * @returns
*/ */
getRebateConfig() { getRebateConfig(value?: any) {
const params = {}; const params:any = {};
if(value) {
params.stateLocked = 1
}
console.log(params);
return this.request(this.$api_get_rebate_config, params, 'POST').pipe( return this.request(this.$api_get_rebate_config, params, 'POST').pipe(
map(res => { map(res => {
if (res) { if (res) {