Merge branch 'develop' of https://gitlab.eascs.com/tms-ui/tms-obc-web into develop
This commit is contained in:
@ -36,7 +36,9 @@
|
|||||||
{{ item.orderRefundCode }} <br> {{ item.refundStatusLabel }}
|
{{ item.orderRefundCode }} <br> {{ item.refundStatusLabel }}
|
||||||
</ng-template>
|
</ng-template>
|
||||||
<ng-template st-row="refundAmount" let-item let-index="index" let-column="column">
|
<ng-template st-row="refundAmount" let-item let-index="index" let-column="column">
|
||||||
{{ item.refundAmount |currency }}
|
<ng-container *ngFor="let cost of item.billRefundDetailVOS">
|
||||||
|
{{cost.costName}}:{{ cost.refundAmount |currency }}<br>
|
||||||
|
</ng-container>
|
||||||
</ng-template>
|
</ng-template>
|
||||||
<ng-template st-row="billRefundPaymentVOS" let-item let-index="index" let-column="column">
|
<ng-template st-row="billRefundPaymentVOS" let-item let-index="index" let-column="column">
|
||||||
<ng-container *ngFor="let bill of item.billRefundPaymentVOS">
|
<ng-container *ngFor="let bill of item.billRefundPaymentVOS">
|
||||||
|
|||||||
@ -246,8 +246,8 @@ export class RefundRecordComponent implements OnInit {
|
|||||||
private initST(): STColumn[] {
|
private initST(): STColumn[] {
|
||||||
return [
|
return [
|
||||||
{ title: '退款单号', render: 'orderRefundCode', width: 180 },
|
{ title: '退款单号', render: 'orderRefundCode', width: 180 },
|
||||||
{ title: '退款类型', index: 'refundType', width: 120 },
|
{ title: '退款类型', index: 'refundTypeLabel', width: 120 },
|
||||||
{ title: '退款金额', render: 'refundAmount', width: 120 },
|
{ title: '退款金额', render: 'refundAmount', className: 'text-right', width: 160 },
|
||||||
{ title: '退款时间', index: 'applyTime', width: 160 },
|
{ title: '退款时间', index: 'applyTime', width: 160 },
|
||||||
{ title: '货主', index: 'shipperId', width: 150 },
|
{ title: '货主', index: 'shipperId', width: 150 },
|
||||||
{ title: '所属项目', index: 'enterpriseProjectName', width: 140 },
|
{ title: '所属项目', index: 'enterpriseProjectName', width: 140 },
|
||||||
@ -273,6 +273,7 @@ export class RefundRecordComponent implements OnInit {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
text: '重新发起',
|
text: '重新发起',
|
||||||
|
iif: item => item.refundStatus === '5',
|
||||||
click: item => this.reApply(item)
|
click: item => this.reApply(item)
|
||||||
}
|
}
|
||||||
// {
|
// {
|
||||||
|
|||||||
@ -1,9 +0,0 @@
|
|||||||
<page-header [action]="phActionTpl">
|
|
||||||
<ng-template #phActionTpl>
|
|
||||||
<button (click)="add()" nz-button nzType="primary">新建</button>
|
|
||||||
</ng-template>
|
|
||||||
</page-header>
|
|
||||||
<nz-card>
|
|
||||||
<sf mode="search" [schema]="searchSchema" (formSubmit)="st.reset($event)" (formReset)="st.reset($event)"></sf>
|
|
||||||
<st #st [data]="url" [columns]="columns"></st>
|
|
||||||
</nz-card>
|
|
||||||
@ -1,24 +0,0 @@
|
|||||||
import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing';
|
|
||||||
import { PartnerBusinessStatisticsIndexComponent } from './index.component';
|
|
||||||
|
|
||||||
describe('PartnerBusinessStatisticsIndexComponent', () => {
|
|
||||||
let component: PartnerBusinessStatisticsIndexComponent;
|
|
||||||
let fixture: ComponentFixture<PartnerBusinessStatisticsIndexComponent>;
|
|
||||||
|
|
||||||
beforeEach(waitForAsync(() => {
|
|
||||||
TestBed.configureTestingModule({
|
|
||||||
declarations: [PartnerBusinessStatisticsIndexComponent]
|
|
||||||
})
|
|
||||||
.compileComponents();
|
|
||||||
}));
|
|
||||||
|
|
||||||
beforeEach(() => {
|
|
||||||
fixture = TestBed.createComponent(PartnerBusinessStatisticsIndexComponent);
|
|
||||||
component = fixture.componentInstance;
|
|
||||||
fixture.detectChanges();
|
|
||||||
});
|
|
||||||
|
|
||||||
it('should create', () => {
|
|
||||||
expect(component).toBeTruthy();
|
|
||||||
});
|
|
||||||
});
|
|
||||||
@ -1,45 +0,0 @@
|
|||||||
import { Component, OnInit, ViewChild } from '@angular/core';
|
|
||||||
import { STColumn, STComponent } from '@delon/abc/st';
|
|
||||||
import { SFSchema } from '@delon/form';
|
|
||||||
import { ModalHelper, _HttpClient } from '@delon/theme';
|
|
||||||
|
|
||||||
@Component({
|
|
||||||
selector: 'app-partner-business-statistics-index',
|
|
||||||
templateUrl: './index.component.html',
|
|
||||||
})
|
|
||||||
export class PartnerBusinessStatisticsIndexComponent implements OnInit {
|
|
||||||
url = `/user`;
|
|
||||||
searchSchema: SFSchema = {
|
|
||||||
properties: {
|
|
||||||
no: {
|
|
||||||
type: 'string',
|
|
||||||
title: '编号'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
@ViewChild('st') private readonly st!: STComponent;
|
|
||||||
columns: STColumn[] = [
|
|
||||||
{ title: '编号', index: 'no' },
|
|
||||||
{ title: '调用次数', type: 'number', index: 'callNo' },
|
|
||||||
{ title: '头像', type: 'img', width: '50px', index: 'avatar' },
|
|
||||||
{ title: '时间', type: 'date', index: 'updatedAt' },
|
|
||||||
{
|
|
||||||
title: '',
|
|
||||||
buttons: [
|
|
||||||
// { text: '查看', click: (item: any) => `/form/${item.id}` },
|
|
||||||
// { text: '编辑', type: 'static', component: FormEditComponent, click: 'reload' },
|
|
||||||
]
|
|
||||||
}
|
|
||||||
];
|
|
||||||
|
|
||||||
constructor(private http: _HttpClient, private modal: ModalHelper) { }
|
|
||||||
|
|
||||||
ngOnInit(): void { }
|
|
||||||
|
|
||||||
add(): void {
|
|
||||||
// this.modal
|
|
||||||
// .createStatic(FormEditComponent, { i: { id: 0 } })
|
|
||||||
// .subscribe(() => this.st.reload());
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@ -1,12 +0,0 @@
|
|||||||
import { NgModule } from '@angular/core';
|
|
||||||
import { RouterModule, Routes } from '@angular/router';
|
|
||||||
import { PartnerBusinessStatisticsIndexComponent } from './business-statistics/components/index/index.component';
|
|
||||||
|
|
||||||
const routes: Routes = [
|
|
||||||
{ path: 'index', component: PartnerBusinessStatisticsIndexComponent }];
|
|
||||||
|
|
||||||
@NgModule({
|
|
||||||
imports: [RouterModule.forChild(routes)],
|
|
||||||
exports: [RouterModule]
|
|
||||||
})
|
|
||||||
export class PartnerRoutingModule { }
|
|
||||||
@ -1,13 +0,0 @@
|
|||||||
import { NgModule } from '@angular/core';
|
|
||||||
import { CommonModule } from '@angular/common';
|
|
||||||
import { SharedModule } from '@shared';
|
|
||||||
import { PartnerRoutingModule } from './partner-routing.module';
|
|
||||||
import { PartnerBusinessStatisticsIndexComponent } from './business-statistics/components/index/index.component';
|
|
||||||
|
|
||||||
const COMPONENTS: any[] = [
|
|
||||||
PartnerBusinessStatisticsIndexComponent];
|
|
||||||
@NgModule({
|
|
||||||
declarations: [...COMPONENTS],
|
|
||||||
imports: [CommonModule, PartnerRoutingModule, SharedModule]
|
|
||||||
})
|
|
||||||
export class PartnerModule { }
|
|
||||||
@ -67,7 +67,6 @@ const routes: Routes = [
|
|||||||
loadChildren: () => import('./contract-management/contract-management.module').then(m => m.ContractManagementManagementModule)
|
loadChildren: () => import('./contract-management/contract-management.module').then(m => m.ContractManagementManagementModule)
|
||||||
},
|
},
|
||||||
{ path: 'menu-management', loadChildren: () => import('./menu-manager/menu-manager.module').then(m => m.MenuManagerModule) },
|
{ path: 'menu-management', loadChildren: () => import('./menu-manager/menu-manager.module').then(m => m.MenuManagerModule) },
|
||||||
{ path: 'partner', loadChildren: () => import('./partner/partner.module').then(m => m.PartnerModule) },
|
|
||||||
{
|
{
|
||||||
path: 'download',
|
path: 'download',
|
||||||
loadChildren: () => import('./download/download.module').then(m => m.DownloadModule)
|
loadChildren: () => import('./download/download.module').then(m => m.DownloadModule)
|
||||||
|
|||||||
@ -36,16 +36,18 @@
|
|||||||
<strong class="text-red">{{totalCallNo }}</strong>
|
<strong class="text-red">{{totalCallNo }}</strong>
|
||||||
<a *ngIf="totalCallNo > 0" (click)="st.clearCheck()" class="ml-lg">清空</a>
|
<a *ngIf="totalCallNo > 0" (click)="st.clearCheck()" class="ml-lg">清空</a>
|
||||||
</div>
|
</div>
|
||||||
<button nz-button (click)="this.batchPush()">推送开票</button>
|
<button nz-button *ngIf="resourceStatus===1 || !resourceStatus" (click)="this.batchPush()">推送开票</button>
|
||||||
<button nz-button (click)="this.batchRemove(selectedRows)">移除</button>
|
<!-- <button nz-button *ngIf="resourceStatus===1 || !resourceStatus"
|
||||||
<button nz-button (click)="this.batchWithdraw(selectedRows)">撤回</button>
|
(click)="this.batchRemove(selectedRows)">移除</button>
|
||||||
|
<button nz-button *ngIf="resourceStatus===2 || !resourceStatus"
|
||||||
|
(click)="this.batchWithdraw(selectedRows)">撤回</button> -->
|
||||||
</div>
|
</div>
|
||||||
</ng-template>
|
</ng-template>
|
||||||
|
|
||||||
|
|
||||||
<st #st [scroll]="{ x: '2000px' }" [data]="service.$api_ficoVatinvHList" [columns]="columns"
|
<st #st [scroll]="{ x: '2000px' }" [data]="service.$api_ficoVatinvHList" [columns]="columns"
|
||||||
[req]="{process: beforeReq }" [res]="{process:afterRes }" [loading]="service.http.loading">
|
[req]="{process: beforeReq }" [res]="{process:afterRes }" [loading]="service.http.loading"
|
||||||
|
(change)="stChange($event)">
|
||||||
<ng-template st-row="vatinvcode" let-item let-index="index" let-column="column">
|
<ng-template st-row="vatinvcode" let-item let-index="index" let-column="column">
|
||||||
{{ item.vatinvcode }} <br>
|
{{ item.vatinvcode }} <br>
|
||||||
<label class="text-primary" *ngIf="item.sts == '1'">待处理</label>
|
<label class="text-primary" *ngIf="item.sts == '1'">待处理</label>
|
||||||
|
|||||||
@ -23,7 +23,7 @@ export class CancellationInvoiceComponent implements OnInit {
|
|||||||
requestedModal!: any;
|
requestedModal!: any;
|
||||||
columns: STColumn[] = this.initST();
|
columns: STColumn[] = this.initST();
|
||||||
searchSchema: SFSchema = this.initSF();
|
searchSchema: SFSchema = this.initSF();
|
||||||
resourceStatus = '';
|
resourceStatus: any = '';
|
||||||
_$expand = false;
|
_$expand = false;
|
||||||
|
|
||||||
selectedRows: any[] = [];
|
selectedRows: any[] = [];
|
||||||
@ -56,6 +56,15 @@ export class CancellationInvoiceComponent implements OnInit {
|
|||||||
return data.map(node => ({ ...node, disabled: node.sts === '3' }));
|
return data.map(node => ({ ...node, disabled: node.sts === '3' }));
|
||||||
};
|
};
|
||||||
|
|
||||||
|
stChange(e: STChange): void {
|
||||||
|
switch (e.type) {
|
||||||
|
case 'checkbox':
|
||||||
|
this.selectedRows = e.checkbox!;
|
||||||
|
this.totalCallNo = this.selectedRows.reduce((total, cv) => total + cv.vatmoney, 0).toFixed(2);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
selectChange(e: any) {
|
selectChange(e: any) {
|
||||||
this.resourceStatus = e;
|
this.resourceStatus = e;
|
||||||
this.initST();
|
this.initST();
|
||||||
@ -103,17 +112,32 @@ export class CancellationInvoiceComponent implements OnInit {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 批量推送发票
|
* 批量推送发票
|
||||||
* @param item
|
|
||||||
*/
|
*/
|
||||||
batchPush(item?: any) {
|
batchPush() {
|
||||||
if (this.selectedRows?.length <= 0 && !item) {
|
if (this.selectedRows?.length <= 0) {
|
||||||
this.service.msgSrv.warning('请选择开票申请');
|
this.service.msgSrv.warning('请选择开票申请');
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
if (this.selectedRows.find(item => item.sts !== '1')) {
|
||||||
|
this.service.msgSrv.warning('请勿选择非待处理申请');
|
||||||
|
return;
|
||||||
|
}
|
||||||
this.nzModalService.warning({
|
this.nzModalService.warning({
|
||||||
nzTitle: '确定将所选待处理开票申请推送开票?',
|
nzTitle: '确定将所选待处理开票申请推送开票?',
|
||||||
nzContent: '推送开票后发票信息不可修改,待系统开票完成后会自动返回开票结果',
|
nzContent: '推送开票后发票信息不可修改,待系统开票完成后会自动返回开票结果',
|
||||||
nzOnOk: () => {}
|
nzOnOk: () => {
|
||||||
|
this.service
|
||||||
|
.request(
|
||||||
|
this.service.$api_batch_push_invoic,
|
||||||
|
this.selectedRows.map(row => row.id)
|
||||||
|
)
|
||||||
|
.subscribe(res => {
|
||||||
|
if (res) {
|
||||||
|
this.service.msgSrv.success('推送开票成功');
|
||||||
|
this.st.load(1);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -136,11 +160,10 @@ export class CancellationInvoiceComponent implements OnInit {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 移除
|
* 移除
|
||||||
* @param item
|
|
||||||
* @returns
|
* @returns
|
||||||
*/
|
*/
|
||||||
batchRemove(item?: any) {
|
batchRemove() {
|
||||||
if (this.selectedRows?.length <= 0 && !item) {
|
if (this.selectedRows?.length <= 0) {
|
||||||
this.service.msgSrv.warning('请选择开票申请');
|
this.service.msgSrv.warning('请选择开票申请');
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -151,6 +174,28 @@ export class CancellationInvoiceComponent implements OnInit {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 作废发票
|
||||||
|
* @param item
|
||||||
|
* @returns
|
||||||
|
*/
|
||||||
|
removeInvocie(item?: any) {
|
||||||
|
const modal = this.nzModalService.warning({
|
||||||
|
nzTitle: '确定将所选已确认开票申请作废?',
|
||||||
|
nzContent: '作废后发票信息不可修改',
|
||||||
|
nzOnOk: () => {
|
||||||
|
this.service.request(this.service.$api_cancel_invoic, { id: item.id }).subscribe(res => {
|
||||||
|
if (res) {
|
||||||
|
this.service.msgSrv.success('发票作废成功');
|
||||||
|
this.st.load(1);
|
||||||
|
modal.destroy();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 推送发票
|
* 推送发票
|
||||||
* @param item
|
* @param item
|
||||||
@ -162,10 +207,10 @@ export class CancellationInvoiceComponent implements OnInit {
|
|||||||
nzComponentParams: { id: item.id },
|
nzComponentParams: { id: item.id },
|
||||||
nzWidth: 1200,
|
nzWidth: 1200,
|
||||||
nzOnOk: () => {
|
nzOnOk: () => {
|
||||||
this.service.request(this.service.$api_apply_fico, { vatinvHid: item.id }).subscribe(res => {
|
this.service.request(this.service.$api_push_invoic, { id: item.id }).subscribe(res => {
|
||||||
if (res) {
|
if (res) {
|
||||||
this.service.msgSrv.success('开票成功');
|
this.service.msgSrv.success('推送开票成功');
|
||||||
modal.destroy;
|
this.st.load(1);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
return false;
|
return false;
|
||||||
@ -327,15 +372,16 @@ export class CancellationInvoiceComponent implements OnInit {
|
|||||||
iif: item => item.sts != '3',
|
iif: item => item.sts != '3',
|
||||||
click: item => this.requestedAction(item)
|
click: item => this.requestedAction(item)
|
||||||
},
|
},
|
||||||
// {
|
{
|
||||||
// text: '推送开票',
|
text: '推送开票',
|
||||||
// iif: item => item.sts != '3',
|
iif: item => item.sts === '1',
|
||||||
// click: item => this.pushInvoiceAction(item)
|
click: item => this.pushInvoiceAction(item)
|
||||||
// },
|
},
|
||||||
// {
|
{
|
||||||
// text: '移除',
|
text: '作废发票',
|
||||||
// click: item => this.batchRemove(item)
|
iif: item => item.sts === '3',
|
||||||
// },
|
click: item => this.removeInvocie(item)
|
||||||
|
}
|
||||||
// {
|
// {
|
||||||
// text: '确认'
|
// text: '确认'
|
||||||
// // click: item => this.rejectAction(item)
|
// // click: item => this.rejectAction(item)
|
||||||
|
|||||||
@ -34,6 +34,12 @@ export class TicketService extends ShipperBaseService {
|
|||||||
$api_apply_fico = '/api/fcc/ficoVatinvH/crmPushInvo';
|
$api_apply_fico = '/api/fcc/ficoVatinvH/crmPushInvo';
|
||||||
// 运营端手工开票/确认/E税云开票成功后的回调
|
// 运营端手工开票/确认/E税云开票成功后的回调
|
||||||
$api_apply_fico_invoic = '/api/fcc/ficoVatinvH/operateAffirmVatinv';
|
$api_apply_fico_invoic = '/api/fcc/ficoVatinvH/operateAffirmVatinv';
|
||||||
|
// 运营端推送开票-E税云开票
|
||||||
|
$api_push_invoic = '/api/fcc/ficoVatinvH/crmPushInvo';
|
||||||
|
// 运营端批量推送开票-E税云开票
|
||||||
|
$api_batch_push_invoic = '/api/fcc/ficoVatinvH/crmPushInvoBath';
|
||||||
|
// 发票作废
|
||||||
|
$api_cancel_invoic = '/api/fcc/ficoVatinvH/inpinvHCancel';
|
||||||
|
|
||||||
// 获取汇总下单路径
|
// 获取汇总下单路径
|
||||||
$api_get_order_summary_path = '/api/fcc/ficoExpressH/getSummaryOrderAddress';
|
$api_get_order_summary_path = '/api/fcc/ficoExpressH/getSummaryOrderAddress';
|
||||||
|
|||||||
@ -7,6 +7,11 @@
|
|||||||
.myForm .ant-upload.ant-upload-select-picture-card>.ant-upload {
|
.myForm .ant-upload.ant-upload-select-picture-card>.ant-upload {
|
||||||
flex-direction: column !important;
|
flex-direction: column !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
span {
|
||||||
|
word-break: break-all
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user