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

This commit is contained in:
wangshiming
2022-02-23 19:38:22 +08:00
12 changed files with 90 additions and 132 deletions

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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