Merge branch 'develop' of https://gitlab.eascs.com/tms-ui/tms-obc-web into develop
This commit is contained in:
@ -34,7 +34,6 @@
|
||||
],
|
||||
"styles": [
|
||||
"node_modules/perfect-scrollbar/css/perfect-scrollbar.css",
|
||||
"node_modules/quill/dist/quill.snow.css",
|
||||
"src/styles.less",
|
||||
{
|
||||
"input": "src/styles/default.less",
|
||||
@ -49,7 +48,6 @@
|
||||
],
|
||||
|
||||
"scripts": [
|
||||
"node_modules/quill/dist/quill.min.js",
|
||||
"node_modules/perfect-scrollbar/dist/perfect-scrollbar.js",
|
||||
"node_modules/qrious/dist/qrious.min.js"
|
||||
],
|
||||
@ -139,7 +137,6 @@
|
||||
"karmaConfig": "karma.conf.js",
|
||||
"tsConfig": "tsconfig.spec.json",
|
||||
"scripts": [
|
||||
"node_modules/quill/dist/quill.min.js",
|
||||
"node_modules/perfect-scrollbar/dist/perfect-scrollbar.js"
|
||||
],
|
||||
"styles": [],
|
||||
|
||||
4624
package-lock.json
generated
4624
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@ -67,8 +67,6 @@
|
||||
"ngx-trend": "^7.0.0",
|
||||
"perfect-scrollbar": "^1.5.2",
|
||||
"qrious": "^4.0.2",
|
||||
"quill": "^1.3.7",
|
||||
"quill-image-resize-module": "^3.0.0",
|
||||
"rxjs": "~6.6.0",
|
||||
"screenfull": "^5.1.0",
|
||||
"tslib": "^2.3.0",
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
* @Author : Shiming
|
||||
* @Date : 2022-01-18 09:51:21
|
||||
* @LastEditors : Shiming
|
||||
* @LastEditTime : 2022-05-09 11:25:41
|
||||
* @LastEditTime : 2022-05-13 09:36:19
|
||||
* @FilePath : \\tms-obc-web\\proxy.conf.js
|
||||
* Copyright (C) 2022 huzhenhong. All rights reserved.
|
||||
*/
|
||||
|
||||
@ -1,23 +1,19 @@
|
||||
/* eslint-disable import/order */
|
||||
/* eslint-disable import/no-duplicates */
|
||||
import { HttpClientModule } from '@angular/common/http';
|
||||
import { default as ngLang } from '@angular/common/locales/zh';
|
||||
import { APP_INITIALIZER, DEFAULT_CURRENCY_CODE, LOCALE_ID, NgModule, Type } from '@angular/core';
|
||||
import { APP_INITIALIZER, DEFAULT_CURRENCY_CODE, NgModule, Type } from '@angular/core';
|
||||
import { BrowserModule } from '@angular/platform-browser';
|
||||
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
|
||||
import { SimpleInterceptor } from '@delon/auth';
|
||||
import { NzNotificationModule } from 'ng-zorro-antd/notification';
|
||||
import zh from '@angular/common/locales/zh';
|
||||
registerLocaleData(zh);
|
||||
// #region global third module
|
||||
|
||||
import { BidiModule } from '@angular/cdk/bidi';
|
||||
const GLOBAL_THIRD_MODULES: Array<Type<any>> = [BidiModule];
|
||||
const GLOBAL_THIRD_MODULES: Array<Type<any>> = [];
|
||||
|
||||
// #endregion
|
||||
|
||||
// #region Http Interceptors
|
||||
import { HTTP_INTERCEPTORS } from '@angular/common/http';
|
||||
import { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';
|
||||
|
||||
import { BusinessInterceptor, DefaultInterceptor } from '@core';
|
||||
|
||||
@ -42,38 +38,20 @@ const APPINIT_PROVIDES = [
|
||||
multi: true
|
||||
},
|
||||
{ provide: DEFAULT_CURRENCY_CODE, useValue: '¥' },
|
||||
{ provide: RouteReuseStrategy, useClass: ReuseTabStrategy, deps: [ReuseTabService] },
|
||||
AuthGuard
|
||||
{ provide: RouteReuseStrategy, useClass: ReuseTabStrategy, deps: [ReuseTabService] }
|
||||
];
|
||||
// #endregion
|
||||
|
||||
import { AppComponent } from './app.component';
|
||||
import { CoreModule } from './core/core.module';
|
||||
import { GlobalConfigModule } from './global-config.module';
|
||||
import { LayoutModule } from './layout/layout.module';
|
||||
import { RoutesModule } from './routes/routes.module';
|
||||
import { SharedModule } from './shared/shared.module';
|
||||
import { STWidgetModule } from './shared/widget/st-widget.module';
|
||||
import { registerLocaleData } from '@angular/common';
|
||||
import { AuthGuard } from './core/guards/auth.guard';
|
||||
import { RouteReuseStrategy } from '@angular/router';
|
||||
import { RouteReuseStrategy, RouterModule } from '@angular/router';
|
||||
import { ReuseTabService, ReuseTabStrategy } from '@delon/abc/reuse-tab';
|
||||
|
||||
@NgModule({
|
||||
declarations: [AppComponent],
|
||||
imports: [
|
||||
BrowserModule,
|
||||
BrowserAnimationsModule,
|
||||
HttpClientModule,
|
||||
GlobalConfigModule.forRoot(),
|
||||
CoreModule,
|
||||
SharedModule,
|
||||
LayoutModule,
|
||||
RoutesModule,
|
||||
STWidgetModule,
|
||||
NzNotificationModule,
|
||||
...GLOBAL_THIRD_MODULES
|
||||
],
|
||||
imports: [BrowserModule, BrowserAnimationsModule, HttpClientModule, CoreModule, RoutesModule, RouterModule, ...GLOBAL_THIRD_MODULES],
|
||||
providers: [...INTERCEPTOR_PROVIDES, ...APPINIT_PROVIDES],
|
||||
bootstrap: [AppComponent]
|
||||
})
|
||||
|
||||
@ -1,10 +1,11 @@
|
||||
import { NgModule, Optional, SkipSelf } from '@angular/core';
|
||||
import { AuthGuard } from './guards/auth.guard';
|
||||
import { EATokenGuard } from './guards/token.guard';
|
||||
|
||||
import { throwIfAlreadyLoaded } from './module-import-guard';
|
||||
|
||||
@NgModule({
|
||||
providers: [EATokenGuard]
|
||||
providers: [AuthGuard, EATokenGuard]
|
||||
})
|
||||
export class CoreModule {
|
||||
constructor(@Optional() @SkipSelf() parentModule: CoreModule) {
|
||||
|
||||
@ -3,6 +3,7 @@ import { NavigationEnd, Router } from '@angular/router';
|
||||
import { ReuseTabService } from '@delon/abc/reuse-tab';
|
||||
import { MenuService } from '@delon/theme';
|
||||
import { InputBoolean } from '@delon/util';
|
||||
import { SearchDrawerService } from '@shared';
|
||||
import { NzMenuModeType } from 'ng-zorro-antd/menu';
|
||||
import { Subject } from 'rxjs';
|
||||
import { filter, takeUntil } from 'rxjs/operators';
|
||||
@ -31,7 +32,8 @@ export class LayoutProMenuComponent implements OnInit, OnDestroy {
|
||||
private router: Router,
|
||||
public pro: BrandService,
|
||||
private cdr: ChangeDetectorRef,
|
||||
private reuseService: ReuseTabService
|
||||
private reuseService: ReuseTabService,
|
||||
private searchDrawerService: SearchDrawerService
|
||||
) {}
|
||||
|
||||
private cd(): void {
|
||||
@ -132,6 +134,7 @@ export class LayoutProMenuComponent implements OnInit, OnDestroy {
|
||||
routeTo(link: string | undefined) {
|
||||
if (link) {
|
||||
this.reuseService.clear();
|
||||
this.searchDrawerService.unsubscribe();
|
||||
this.router.navigate([link]);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
import { AfterViewInit, Component, OnDestroy, OnInit } from '@angular/core';
|
||||
import { OnReuseDestroy } from '@delon/abc/reuse-tab';
|
||||
import { OnReuseDestroy, OnReuseInit, ReuseHookOnReuseInitType } from '@delon/abc/reuse-tab';
|
||||
import { SFComponent, SFSchema } from '@delon/form';
|
||||
import { SearchDrawerService } from '@shared';
|
||||
import { fromEvent, Subscription } from 'rxjs';
|
||||
@ -25,19 +25,18 @@ import { debounceTime } from 'rxjs/operators';
|
||||
@Component({
|
||||
template: ''
|
||||
})
|
||||
export class BasicTableComponent implements AfterViewInit, OnDestroy, OnReuseDestroy {
|
||||
export class BasicTableComponent implements AfterViewInit, OnDestroy, OnReuseDestroy, OnReuseInit {
|
||||
scrollY = '400px';
|
||||
|
||||
sf!: SFComponent;
|
||||
sfValue: Record<string, any> = {};
|
||||
drawer: Subscription[] = [];
|
||||
schema: SFSchema = {};
|
||||
|
||||
deviationHeight = 0;
|
||||
|
||||
constructor(public searchDrawerService: SearchDrawerService) {}
|
||||
_onReuseDestroy(): void {
|
||||
this.drawer.forEach(sub => sub.unsubscribe());
|
||||
_onReuseInit(type?: ReuseHookOnReuseInitType): void {
|
||||
this.search();
|
||||
}
|
||||
|
||||
ngAfterViewInit(): void {
|
||||
@ -51,23 +50,29 @@ export class BasicTableComponent implements AfterViewInit, OnDestroy, OnReuseDes
|
||||
});
|
||||
}
|
||||
|
||||
_onReuseDestroy(): void {
|
||||
// this.drawer.forEach(sub => sub.unsubscribe());
|
||||
}
|
||||
|
||||
ngOnDestroy(): void {
|
||||
this.drawer.forEach(sub => sub.unsubscribe());
|
||||
this.searchDrawerService.unsubscribe();
|
||||
}
|
||||
|
||||
openDrawer() {
|
||||
if (this.drawer?.length > 0) {
|
||||
console.log(this.sfValue);
|
||||
|
||||
if (this.searchDrawerService.drawer?.length > 0) {
|
||||
this.searchDrawerService.create(this.sfValue, this.schema);
|
||||
} else {
|
||||
const drawer = this.searchDrawerService.create(this.sfValue, this.schema);
|
||||
this.drawer.push(
|
||||
this.searchDrawerService.drawer.push(
|
||||
drawer.initEvent.subscribe((sf: SFComponent) => {
|
||||
if (sf) {
|
||||
this.sf = sf;
|
||||
}
|
||||
})
|
||||
);
|
||||
this.drawer.push(
|
||||
this.searchDrawerService.drawer.push(
|
||||
drawer.closeEvent.subscribe((res: Record<string, any>) => {
|
||||
this.sfValue = res;
|
||||
if (res) {
|
||||
|
||||
@ -22,11 +22,8 @@ import { ContractManagementService } from '../../services/contract-management.se
|
||||
})
|
||||
export class ContractManagementDetailComponent implements OnInit {
|
||||
constructor(
|
||||
private nzModalService: NzModalService,
|
||||
public service: ContractManagementService,
|
||||
public route: ActivatedRoute,
|
||||
private datePipe: DatePipe,
|
||||
private router: Router
|
||||
public route: ActivatedRoute
|
||||
) {}
|
||||
textStatus = '合同详情';
|
||||
name: any;
|
||||
|
||||
@ -2,7 +2,6 @@ import { Component } from '@angular/core';
|
||||
|
||||
@Component({
|
||||
selector: 'app-dashboard',
|
||||
templateUrl: './dashboard.component.html',
|
||||
styleUrls: ['./dashboard.component.less']
|
||||
template: ''
|
||||
})
|
||||
export class DashboardComponent {}
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
<!--
|
||||
* @Description :
|
||||
* @Description :
|
||||
* @Version : 1.0
|
||||
* @Author : Shiming
|
||||
* @Date : 2022-04-28 20:27:07
|
||||
@ -19,7 +19,7 @@
|
||||
</p>
|
||||
</ng-template>
|
||||
<ng-template #AdvanceDepositFooter>
|
||||
<g2-custom #AdvanceDeposit delay="100"></g2-custom>
|
||||
<g2-custom #AdvanceDeposit></g2-custom>
|
||||
<!-- <g2-mini-area line color="#cceafe" height="45" [data]="totalAdvanceDeposit?.list || []"
|
||||
(clickItem)="handleClick($event)">
|
||||
</g2-mini-area> -->
|
||||
@ -75,12 +75,12 @@
|
||||
</div>
|
||||
<div nz-row [nzGutter]="16">
|
||||
<div nz-col class="gutter-row" [nzSpan]="6">
|
||||
<nz-card acl [acl-ability]="['dataindex-getBillTypeProportion']"><label class="chart_title">订单类型比例</label>
|
||||
<nz-card acl [acl-ability]="['dataindex-getBillTypeProportion']"><label class="chart_title">订单类型比例</label>
|
||||
<g2-custom #g2custom delay="100"></g2-custom>
|
||||
</nz-card>
|
||||
</div>
|
||||
<div nz-col class="gutter-row" [nzSpan]="18">
|
||||
<nz-card acl [acl-ability]="['dataindex-getBillAmount']"><label class="chart_title">大区业绩完成情况</label>
|
||||
<nz-card acl [acl-ability]="['dataindex-getBillAmount']"><label class="chart_title">大区业绩完成情况</label>
|
||||
<!-- <g2-timeline [data]="chartData" [titleMap]="{ y1: '订单金额(元)', y2: '' }" [height]="200" mask="MM月DD日"
|
||||
[slider]="false"></g2-timeline> -->
|
||||
<g2-custom #RegionalPerforman delay="100"></g2-custom>
|
||||
@ -89,7 +89,7 @@
|
||||
</div>
|
||||
<div nz-row [nzGutter]="16">
|
||||
<div nz-col class="gutter-row" [nzSpan]="6">
|
||||
<nz-card acl [acl-ability]="['dataindex-getWayBillDirectProportion']"> <label class="chart_title">运单直付比例</label>
|
||||
<nz-card acl [acl-ability]="['dataindex-getWayBillDirectProportion']"> <label class="chart_title">运单直付比例</label>
|
||||
<!-- <g2-pie #pie title="销售额" subTitle="销售额" [total]="total" [valueFormat]="format" [data]="salesPieData" height="294"
|
||||
(clickItem)="handleClick($event)" [lineWidth]="10">
|
||||
</g2-pie> -->
|
||||
@ -97,11 +97,11 @@
|
||||
</nz-card>
|
||||
</div>
|
||||
<div nz-col class="gutter-row" [nzSpan]="18">
|
||||
<nz-card acl [acl-ability]="['dataindex-getBillPaymentAmount']">
|
||||
<nz-card acl [acl-ability]="['dataindex-getBillPaymentAmount']">
|
||||
<label class="chart_title">业绩完成情况</label>
|
||||
<!-- <g2-bar [data]="salesData" (clickItem)="handleClick($event)" height="400"></g2-bar> -->
|
||||
<g2-custom #SaleProportion delay="100"></g2-custom>
|
||||
|
||||
</nz-card>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
import { ChangeDetectorRef, Component, ElementRef, NgZone, OnInit, ViewChild } from '@angular/core';
|
||||
import { AfterViewInit, ChangeDetectorRef, Component, ElementRef, NgZone, OnInit, ViewChild } from '@angular/core';
|
||||
import { ModalHelper, _HttpClient } from '@delon/theme';
|
||||
import { G2MiniAreaClickItem, G2MiniAreaData } from '@delon/chart/mini-area';
|
||||
import { G2PieClickItem, G2PieComponent, G2PieData } from '@delon/chart/pie';
|
||||
@ -18,7 +18,7 @@ import { GeometryLabelCfg } from '@antv/g2/lib/interface';
|
||||
styleUrls: ['./dataindex.component.less'],
|
||||
providers: [CurrencyPipe]
|
||||
})
|
||||
export class DatatableDataindexComponent implements OnInit {
|
||||
export class DatatableDataindexComponent implements OnInit, AfterViewInit {
|
||||
@ViewChild('AdvanceDeposit', { static: false }) AdvanceDeposit!: G2CustomComponent;
|
||||
@ViewChild('g2custom', { static: false }) g2custom!: G2CustomComponent;
|
||||
@ViewChild('RegionalPerforman', { static: false }) RegionalPerforman!: G2CustomComponent;
|
||||
@ -38,19 +38,24 @@ export class DatatableDataindexComponent implements OnInit {
|
||||
|
||||
regionalPerformanceCompletion: DataPerformanceTrendVO[] = [];
|
||||
|
||||
constructor(private service: DataService, private currency: CurrencyPipe) {}
|
||||
|
||||
ngOnInit(): void {
|
||||
constructor(private service: DataService, private currency: CurrencyPipe) { }
|
||||
ngAfterViewInit(): void {
|
||||
this.initMiniAreaData();
|
||||
this.initOthersData();
|
||||
}
|
||||
|
||||
ngOnInit(): void {
|
||||
|
||||
}
|
||||
|
||||
private initMiniAreaData() {
|
||||
// 客户预存款总额
|
||||
this.service.request(this.service.$api_total_advance_deposit).subscribe((res: DataTotalVO) => {
|
||||
if (res) {
|
||||
this.totalAdvanceDeposit = this.formatMiniAreaData(res);
|
||||
this.initAreaMap(this.AdvanceDeposit['el'].nativeElement as any, []);
|
||||
setTimeout(() => {
|
||||
this.initAreaMap(this.AdvanceDeposit['el'].nativeElement as any, []);
|
||||
}, 400);
|
||||
}
|
||||
});
|
||||
// 业绩量总额
|
||||
@ -79,8 +84,9 @@ export class DatatableDataindexComponent implements OnInit {
|
||||
if (res) {
|
||||
const billTypeDatas2 = this.formatCoordinateData(res);
|
||||
console.log(billTypeDatas2);
|
||||
|
||||
this.initBillChart(this.g2custom['el'].nativeElement as any,billTypeDatas2);
|
||||
setTimeout(() => {
|
||||
this.initBillChart(this.g2custom['el'].nativeElement as any, billTypeDatas2);
|
||||
}, 100);
|
||||
}
|
||||
});
|
||||
// 大区业绩完成情况
|
||||
@ -89,31 +95,35 @@ export class DatatableDataindexComponent implements OnInit {
|
||||
// this.regionalPerformanceCompletion = res.map(item => ({ ...item, time: new Date(item.time)?.getTime() }));
|
||||
// this.initRegionalPerformanceChart(this.RegionalPerforman['el'].nativeElement as any, this.regionalPerformanceCompletion);
|
||||
this.regionalPerformanceCompletion = this.formatBarData(res);
|
||||
this.initBiaxialChart(this.RegionalPerforman['el'].nativeElement as any, this.regionalPerformanceCompletion, {
|
||||
y1Title: '业绩量(万)',
|
||||
y2Title: '业绩完成率',
|
||||
y3Title: '同期业绩完成率'
|
||||
});
|
||||
setTimeout(() => {
|
||||
this.initBiaxialChart(this.RegionalPerforman['el'].nativeElement as any, this.regionalPerformanceCompletion, {
|
||||
y1Title: '业绩量(万)',
|
||||
y2Title: '业绩完成率',
|
||||
y3Title: '同期业绩完成率'
|
||||
});
|
||||
}, 100);
|
||||
}
|
||||
});
|
||||
// 订单类型比例
|
||||
this.service.request(this.service.$api_getWayBillDirectProportion).subscribe(res => {
|
||||
if (res) {
|
||||
const billTypeDatas = this.formatCoordinateData(res.map((item: any) => ({ ...item, billType: item.wayBillType })));
|
||||
console.log(billTypeDatas);
|
||||
|
||||
this.initBillChart(this.BillDirectProportion['el'].nativeElement as any, billTypeDatas);
|
||||
setTimeout(() => {
|
||||
this.initBillChart(this.BillDirectProportion['el'].nativeElement as any, billTypeDatas);
|
||||
}, 100);
|
||||
}
|
||||
});
|
||||
// 统计订单结算金额-趋势
|
||||
this.service.request(this.service.$api_get_bill_payment_amount).subscribe(res => {
|
||||
if (res) {
|
||||
this.salesData = this.formatBarData(res);
|
||||
this.initBiaxialChart(this.SaleProportion['el'].nativeElement as any, this.salesData, {
|
||||
y1Title: '业绩量(万)',
|
||||
y2Title: '业绩完成率',
|
||||
y3Title: '同期业绩完成率'
|
||||
});
|
||||
setTimeout(() => {
|
||||
this.initBiaxialChart(this.SaleProportion['el'].nativeElement as any, this.salesData, {
|
||||
y1Title: '业绩量(万)',
|
||||
y2Title: '业绩完成率',
|
||||
y3Title: '同期业绩完成率'
|
||||
});
|
||||
}, 100);
|
||||
}
|
||||
});
|
||||
}
|
||||
@ -145,7 +155,7 @@ export class DatatableDataindexComponent implements OnInit {
|
||||
|
||||
chart.scale('percent', {
|
||||
formatter: val => {
|
||||
val = (val * 100 ).toFixed(0)+ '%';
|
||||
val = (val * 100).toFixed(0) + '%';
|
||||
return val;
|
||||
}
|
||||
});
|
||||
@ -202,7 +212,7 @@ export class DatatableDataindexComponent implements OnInit {
|
||||
.label('percent', percent => {
|
||||
return {
|
||||
content: data => {
|
||||
return (percent * 100).toFixed(0)+`%`;
|
||||
return (percent * 100).toFixed(0) + `%`;
|
||||
},
|
||||
style: { fontSize: 14 }
|
||||
};
|
||||
@ -351,6 +361,8 @@ export class DatatableDataindexComponent implements OnInit {
|
||||
}
|
||||
return {};
|
||||
});
|
||||
console.log(chart);
|
||||
|
||||
chart.render();
|
||||
}
|
||||
|
||||
@ -503,7 +515,7 @@ export class DatatableDataindexComponent implements OnInit {
|
||||
});
|
||||
});
|
||||
console.log(rs);
|
||||
|
||||
|
||||
return rs;
|
||||
}
|
||||
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
* @Author : Shiming
|
||||
* @Date : 2022-04-06 10:57:56
|
||||
* @LastEditors : Shiming
|
||||
* @LastEditTime : 2022-05-07 09:43:16
|
||||
* @LastEditTime : 2022-05-09 13:59:19
|
||||
* @FilePath : \\tms-obc-web\\src\\app\\routes\\datatable\\components\\datascreen\\datascreen.component.html
|
||||
* Copyright (C) 2022 huzhenhong. All rights reserved.
|
||||
-->
|
||||
@ -48,31 +48,6 @@
|
||||
<nz-card nzTitle="本年交易趋势">
|
||||
<app-financetable-curve-min #curve [chartData]="chartData2"></app-financetable-curve-min>
|
||||
</nz-card>
|
||||
<nz-card nzTitle="实时货源" style="height: 400px">
|
||||
<st
|
||||
#st
|
||||
multiSort
|
||||
[columns]="columns"
|
||||
[scroll]="{ y: '280px' }"
|
||||
[data]="service.$api_getRealTimeSupply"
|
||||
[req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, params: reqParams }"
|
||||
[res]="{ reName: { list: 'data' } }"
|
||||
[page]="{ show: false, showSize: false, pageSizes: [5, 50, 100] }"
|
||||
[loading]="service.http.loading"
|
||||
>
|
||||
<ng-template st-row="index" let-item let-index="index">
|
||||
{{ index + 1 }}
|
||||
</ng-template>
|
||||
<ng-template st-row="weight" let-item let-index="index">
|
||||
{{ item.weight ? item.weight + '吨' : '' }}
|
||||
{{ item.volume ? item.volume + '方' : '' }}
|
||||
</ng-template>
|
||||
<ng-template st-row="weight" let-item let-index="index">
|
||||
{{ item.weight ? item.weight + '吨' : '' }}
|
||||
{{ item.volume ? item.volume + '方' : '' }}
|
||||
</ng-template>
|
||||
</st>
|
||||
</nz-card>
|
||||
</div>
|
||||
<div nz-col class="gutter-row" nzXs="12" nzSm="12" nzMd="12" nzLg="12" nzXl="8" nzXXl="8">
|
||||
<nz-card>
|
||||
@ -91,11 +66,6 @@
|
||||
<div style="min-height: 550px">
|
||||
<app-datatable-customindex-map style="max-height: 680px" #map [chartData]="chartData"></app-datatable-customindex-map>
|
||||
</div>
|
||||
<nz-card>
|
||||
<nz-row [nzGutter]="24">
|
||||
<g2-bar #bar height="350" [delay]="300" repaint="true" [title]="'本月发货量排名'" [data]="salesData2" (ready)="genData()"></g2-bar>
|
||||
</nz-row>
|
||||
</nz-card>
|
||||
</div>
|
||||
<div nz-col class="gutter-row" nzXs="12" nzSm="12" nzMd="12" nzLg="12" nzXl="8" nzXXl="8">
|
||||
<nz-card>
|
||||
@ -156,11 +126,48 @@
|
||||
</nz-col>
|
||||
</nz-row>
|
||||
</nz-card>
|
||||
</div>
|
||||
</div>
|
||||
<div nz-row [nzGutter]="24">
|
||||
<div nz-col class="gutter-row" nzXs="12" nzSm="12" nzMd="12" nzLg="12" nzXl="8" nzXXl="8">
|
||||
|
||||
<nz-card nzTitle="实时货源" style="height: 400px">
|
||||
<st
|
||||
#st
|
||||
multiSort
|
||||
[columns]="columns"
|
||||
[scroll]="{ y: '280px' }"
|
||||
[data]="service.$api_getRealTimeSupply"
|
||||
[req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, params: reqParams }"
|
||||
[res]="{ reName: { list: 'data' } }"
|
||||
[page]="{ show: false, showSize: false, pageSizes: [5, 50, 100] }"
|
||||
[loading]="service.http.loading"
|
||||
>
|
||||
<ng-template st-row="index" let-item let-index="index">
|
||||
{{ index + 1 }}
|
||||
</ng-template>
|
||||
<ng-template st-row="weight" let-item let-index="index">
|
||||
{{ item.weight ? item.weight + '吨' : '' }}
|
||||
{{ item.volume ? item.volume + '方' : '' }}
|
||||
</ng-template>
|
||||
<ng-template st-row="weight" let-item let-index="index">
|
||||
{{ item.weight ? item.weight + '吨' : '' }}
|
||||
{{ item.volume ? item.volume + '方' : '' }}
|
||||
</ng-template>
|
||||
</st>
|
||||
</nz-card>
|
||||
</div>
|
||||
<div nz-col class="gutter-row" nzXs="12" nzSm="12" nzMd="12" nzLg="12" nzXl="8" nzXXl="8">
|
||||
<nz-card style="height: 400px">
|
||||
<g2-bar #bar height="350" [delay]="300" repaint="true" [title]="'本月发货量排名'" [data]="salesData2" (ready)="genData()"></g2-bar>
|
||||
</nz-card>
|
||||
</div>
|
||||
<div nz-col class="gutter-row" nzXs="12" nzSm="12" nzMd="12" nzLg="12" nzXl="8" nzXXl="8">
|
||||
<nz-card nzTitle="实时运单风控" style="height: 400px">
|
||||
<st
|
||||
#st
|
||||
multiSort
|
||||
[scroll]="{ y: '280px' }"
|
||||
[scroll]="{ y: '300px' }"
|
||||
[columns]="orderColumns"
|
||||
[data]="service.$api_getRealTimeWaybillRiskControl"
|
||||
[req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, params: reqOrderParams }"
|
||||
|
||||
@ -8,7 +8,7 @@
|
||||
font-size: 14px;
|
||||
}
|
||||
.ant-table-thead > tr > th, .ant-table-tbody > tr > td, .ant-table tfoot > tr > th, .ant-table tfoot > tr > td {
|
||||
padding: 0;
|
||||
padding: 5px;
|
||||
font-size: 12px;
|
||||
}
|
||||
}
|
||||
|
||||
@ -86,7 +86,7 @@ const COMPONENTS: Type<void>[] = [
|
||||
imports: [
|
||||
SharedModule,
|
||||
DatatableRoutingModule,
|
||||
SHARED_G2_MODULES
|
||||
...SHARED_G2_MODULES
|
||||
],
|
||||
declarations: COMPONENTS,
|
||||
})
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
* @Author : Shiming
|
||||
* @Date : 2021-12-30 19:36:30
|
||||
* @LastEditors : Shiming
|
||||
* @LastEditTime : 2022-05-07 17:33:01
|
||||
* @LastEditTime : 2022-05-11 11:23:52
|
||||
* @FilePath : \\tms-obc-web\\src\\app\\routes\\financial-management\\components\\cost-management\\cost-management.component.html
|
||||
* Copyright (C) 2022 huzhenhong. All rights reserved.
|
||||
-->
|
||||
@ -36,7 +36,8 @@
|
||||
<div class="mr-sm">
|
||||
<button nz-button nzDanger [nzLoading]="service.http.loading" (click)="openDrawer()" acl
|
||||
[acl-ability]="['FINANCIAL-COST-list']">筛选</button>
|
||||
<button nz-button nzDanger (click)="exportList()"> 导出</button>
|
||||
<button nz-button nzDanger (click)="exportList()" acl
|
||||
[acl-ability]="['FINANCIAL-COST-export']"> 导出</button>
|
||||
</div>
|
||||
</div>
|
||||
<!-- <div nz-row class="mb-sm">
|
||||
|
||||
@ -84,7 +84,7 @@ export class CostManagementComponent extends BasicTableComponent implements OnIn
|
||||
|
||||
|
||||
exportList() {
|
||||
this.service.exportStart({ ...this.sf?.value, pageSize: -1 }, this.service.$api_get_exportPlatformAccountBalanceByOperator);
|
||||
this.service.exportStart({ ...this.sf?.value, pageSize: -1 }, this.service.$api_get_reportFeehList);
|
||||
}
|
||||
|
||||
routeTo(url: string, params?: any, status?: any) {
|
||||
|
||||
@ -168,7 +168,7 @@ export class DriverAccountComponent extends BasicTableComponent implements OnIni
|
||||
widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.freezeBalance }) }
|
||||
},
|
||||
{
|
||||
title: '本月累计提现金额',
|
||||
title: '累计提现金额',
|
||||
index: 'withdrawBalance',
|
||||
width: 160,
|
||||
type: 'widget',
|
||||
|
||||
@ -30,7 +30,7 @@ export class PayableOrderDetailComponent implements OnInit {
|
||||
this.loadHeadInfo();
|
||||
}
|
||||
|
||||
ngOnInit(): void {}
|
||||
ngOnInit(): void { }
|
||||
|
||||
loadHeadInfo() {
|
||||
this.service.request(this.service.$api_get_fico_ph_header, { id: this.id }).subscribe(res => {
|
||||
@ -46,27 +46,27 @@ export class PayableOrderDetailComponent implements OnInit {
|
||||
Object.assign(requestOptions.body, {
|
||||
...this.sf?.value,
|
||||
billTime: {
|
||||
start: this.sf?.value.billTime?.[0] || null,
|
||||
end: this.sf?.value.billTime?.[1] || null
|
||||
start: this.sf?.value.billTime?.[0] || '',
|
||||
end: this.sf?.value.billTime?.[1] || ''
|
||||
},
|
||||
feedate: {
|
||||
start: this.sf?.value.feedate?.[0] || null,
|
||||
end: this.sf?.value.feedate?.[1] || null
|
||||
start: this.sf?.value.feedate?.[0] || '',
|
||||
end: this.sf?.value.feedate?.[1] || ''
|
||||
}
|
||||
});
|
||||
if (this.sf?.value.billTime) {
|
||||
Object.assign(requestOptions.body, {
|
||||
billTime: {
|
||||
start: this.sf?.value.billTime?.[0] || null,
|
||||
end: this.sf?.value.billTime?.[1] || null
|
||||
start: this.sf?.value.billTime?.[0] || '',
|
||||
end: this.sf?.value.billTime?.[1] || ''
|
||||
}
|
||||
});
|
||||
}
|
||||
if (this.sf?.value.feedate) {
|
||||
Object.assign(requestOptions.body, {
|
||||
feedate: {
|
||||
start: this.sf?.value.feedate?.[0] || null,
|
||||
end: this.sf?.value.feedate?.[1] || null
|
||||
start: this.sf?.value.feedate?.[0] || '',
|
||||
end: this.sf?.value.feedate?.[1] || ''
|
||||
}
|
||||
});
|
||||
}
|
||||
@ -117,26 +117,23 @@ export class PayableOrderDetailComponent implements OnInit {
|
||||
placeholder: '请输入'
|
||||
}
|
||||
},
|
||||
cno: {
|
||||
type: 'string',
|
||||
title: '结算客户',
|
||||
ui: {
|
||||
widget: 'select',
|
||||
placeholder: '请选择',
|
||||
allowClear: true,
|
||||
asyncData: () => this.service.getCloseAccount()
|
||||
},
|
||||
default: ''
|
||||
},
|
||||
// cno: {
|
||||
// type: 'string',
|
||||
// title: '结算客户',
|
||||
// ui: {
|
||||
// widget: 'select',
|
||||
// placeholder: '请选择',
|
||||
// allowClear: true,
|
||||
// asyncData: () => this.service.getCloseAccount()
|
||||
// },
|
||||
// default: ''
|
||||
// },
|
||||
feedate: {
|
||||
title: '费用日期',
|
||||
type: 'string',
|
||||
ui: {
|
||||
widget: 'sl-from-to-search',
|
||||
format: 'yyyy-MM-dd',
|
||||
visibleIf: {
|
||||
expand: (value: boolean) => value
|
||||
}
|
||||
} as SFDateWidgetSchema
|
||||
},
|
||||
billTime: {
|
||||
|
||||
@ -48,6 +48,9 @@
|
||||
<div></div>
|
||||
<div class="mr-sm">
|
||||
<button nz-button nzDanger [nzLoading]="service.http.loading" (click)="openDrawer()">筛选</button>
|
||||
<button nz-button nzDanger [disabled]="service.http.loading" acl
|
||||
[acl-ability]="['FINANCIAL-PAYABLE-export']" (click)='exportList()'>
|
||||
导出</button>
|
||||
</div>
|
||||
</div>
|
||||
<st #st [data]="service.$api_get_fico_ph_page" [columns]="columns" [req]="{ process: beforeReq }" [page]="{}"
|
||||
|
||||
@ -21,11 +21,7 @@ export class PayableOrderComponent extends BasicTableComponent implements OnInit
|
||||
|
||||
selectedRows: any[] = [];
|
||||
info: any = {};
|
||||
constructor(
|
||||
public service: FreightAccountService,
|
||||
private router: Router,
|
||||
public searchDrawerService: SearchDrawerService
|
||||
) {
|
||||
constructor(public service: FreightAccountService, private router: Router, public searchDrawerService: SearchDrawerService) {
|
||||
super(searchDrawerService);
|
||||
}
|
||||
|
||||
@ -77,6 +73,9 @@ export class PayableOrderComponent extends BasicTableComponent implements OnInit
|
||||
}
|
||||
}
|
||||
|
||||
exportList() {
|
||||
this.service.exportStart({ ...this.sf?.value, pageSize: -1 }, this.service.$api_get_fico_ph_page_export);
|
||||
}
|
||||
|
||||
private initSF(): SFSchema {
|
||||
return {
|
||||
@ -94,6 +93,20 @@ export class PayableOrderComponent extends BasicTableComponent implements OnInit
|
||||
placeholder: '请输入'
|
||||
}
|
||||
},
|
||||
billHCode: {
|
||||
type: 'string',
|
||||
title: '订单号',
|
||||
ui: {
|
||||
placeholder: '请输入'
|
||||
}
|
||||
},
|
||||
waybillHCode: {
|
||||
type: 'string',
|
||||
title: '运单号',
|
||||
ui: {
|
||||
placeholder: '请输入'
|
||||
}
|
||||
},
|
||||
ltdId: {
|
||||
type: 'string',
|
||||
title: '网络货运人',
|
||||
@ -118,7 +131,7 @@ export class PayableOrderComponent extends BasicTableComponent implements OnInit
|
||||
enum: [{ value: '1', label: '费用款项' }],
|
||||
ui: {
|
||||
widget: 'select',
|
||||
placeholder: '请选择',
|
||||
placeholder: '请选择'
|
||||
}
|
||||
},
|
||||
cno: {
|
||||
@ -128,7 +141,7 @@ export class PayableOrderComponent extends BasicTableComponent implements OnInit
|
||||
widget: 'select',
|
||||
placeholder: '请选择',
|
||||
allowClear: true,
|
||||
asyncData: () => this.service.getCloseAccount(),
|
||||
asyncData: () => this.service.getCloseAccount()
|
||||
}
|
||||
},
|
||||
driver2IdName: {
|
||||
@ -136,19 +149,18 @@ export class PayableOrderComponent extends BasicTableComponent implements OnInit
|
||||
title: '收款人',
|
||||
ui: {
|
||||
widget: 'select',
|
||||
placeholder: '请选择',
|
||||
placeholder: '请选择'
|
||||
}
|
||||
},
|
||||
sts: {
|
||||
type: 'string',
|
||||
title: '核销状态',
|
||||
enum: [
|
||||
{ value: 1, label: '已核销' },
|
||||
{ value: 0, label: '待核销' }
|
||||
],
|
||||
default: '',
|
||||
ui: {
|
||||
widget: 'select',
|
||||
placeholder: '请选择',
|
||||
widget: 'dict-select',
|
||||
containsAllLable: true,
|
||||
params: { dictKey: 'write:off:status' },
|
||||
containAllLable: true
|
||||
}
|
||||
},
|
||||
phxdate: {
|
||||
@ -156,7 +168,7 @@ export class PayableOrderComponent extends BasicTableComponent implements OnInit
|
||||
type: 'string',
|
||||
ui: {
|
||||
widget: 'sl-from-to-search',
|
||||
format: 'yyyy-MM-dd',
|
||||
format: 'yyyy-MM-dd'
|
||||
} as SFDateWidgetSchema
|
||||
},
|
||||
createTime: {
|
||||
@ -164,21 +176,14 @@ export class PayableOrderComponent extends BasicTableComponent implements OnInit
|
||||
type: 'string',
|
||||
ui: {
|
||||
widget: 'sl-from-to-search',
|
||||
format: 'yyyy-MM-dd',
|
||||
format: 'yyyy-MM-dd'
|
||||
} as SFDateWidgetSchema
|
||||
},
|
||||
billHCode: {
|
||||
type: 'string',
|
||||
title: '订单号',
|
||||
ui: {
|
||||
placeholder: '请输入',
|
||||
}
|
||||
},
|
||||
feeHCode: {
|
||||
type: 'string',
|
||||
title: '费用号',
|
||||
ui: {
|
||||
placeholder: '请输入',
|
||||
placeholder: '请输入'
|
||||
}
|
||||
},
|
||||
remarks: {
|
||||
@ -186,7 +191,7 @@ export class PayableOrderComponent extends BasicTableComponent implements OnInit
|
||||
title: '核销备注',
|
||||
ui: {
|
||||
autocomplete: 'off',
|
||||
placeholder: '请选择',
|
||||
placeholder: '请选择'
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -196,7 +201,9 @@ export class PayableOrderComponent extends BasicTableComponent implements OnInit
|
||||
private initST(): STColumn[] {
|
||||
return [
|
||||
{ title: '', index: 'key', type: 'checkbox' },
|
||||
{ title: '核销单号', index: 'phxcode', type: 'link', width: 140 },
|
||||
{ title: '核销单号', index: 'phxcode', type: 'link', width: 160 },
|
||||
{ title: '订单号', index: 'billHCode', width: 160 },
|
||||
{ title: '运单号', index: 'waybillHCode', width: 160 },
|
||||
{ title: '网络货运人', index: 'ltdName', width: 220 },
|
||||
{ title: '核销日期', index: 'phxdate', type: 'date', width: 160 },
|
||||
{ title: '付款账户', index: 'shipperaccount', width: 170 },
|
||||
@ -224,7 +231,7 @@ export class PayableOrderComponent extends BasicTableComponent implements OnInit
|
||||
{ title: '银行水单', index: 'bankreceipt', width: 190 },
|
||||
{ title: '创建时间', index: 'createTime', width: 180 },
|
||||
// { title: '创建人', index: 'createUserIdLabel', width: 120 },
|
||||
{ title: '核销状态', index: 'sts', type: 'enum', enum: { 0: '待核销', 1: '已核销' }, width: 120 },
|
||||
{ title: '核销状态', index: 'stsLabel', width: 120 },
|
||||
{ title: '核销备注', index: 'remarks', width: 120 },
|
||||
{
|
||||
title: '操作',
|
||||
|
||||
@ -34,6 +34,9 @@
|
||||
<div class="mr-sm">
|
||||
<button nz-button nzDanger [nzLoading]="service.http.loading" (click)="openDrawer()" acl
|
||||
[acl-ability]="['FINANCIAL-PAYMENT-ORDER-list']">筛选</button>
|
||||
<button nz-button nzDanger [disabled]="service.http.loading" acl
|
||||
[acl-ability]="['FINANCIAL-PAYMENT-ORDER-export']" (click)='exportList()'>
|
||||
导出</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
@ -77,6 +77,10 @@ export class PaymentOrderComponent extends BasicTableComponent implements OnInit
|
||||
});
|
||||
}
|
||||
|
||||
exportList() {
|
||||
this.service.exportStart({ ...this.sf?.value, pageSize: -1 }, this.service.$api_get_payment_page_export);
|
||||
}
|
||||
|
||||
private initSF(): SFSchema {
|
||||
return {
|
||||
properties: {
|
||||
|
||||
@ -21,17 +21,20 @@
|
||||
|
||||
<nz-card class="table-box">
|
||||
<div class="header_box">
|
||||
<div>
|
||||
<label class="page_title"> <label class="driver">|</label> 收款单</label>
|
||||
<label class="ml-md">
|
||||
已选择
|
||||
<strong class="text-primary">{{ selectedRows.length }}</strong> 张单
|
||||
<a *ngIf="selectedRows.length > 0" (click)="st.clearCheck()" class="ml-lg">清空</a>
|
||||
</label>
|
||||
</div>
|
||||
<div class="mr-sm">
|
||||
<button nz-button nzDanger [nzLoading]="service.http.loading" (click)="openDrawer()">筛选</button>
|
||||
</div>
|
||||
<div>
|
||||
<label class="page_title"> <label class="driver">|</label> 收款单</label>
|
||||
<label class="ml-md">
|
||||
已选择
|
||||
<strong class="text-primary">{{ selectedRows.length }}</strong> 张单
|
||||
<a *ngIf="selectedRows.length > 0" (click)="st.clearCheck()" class="ml-lg">清空</a>
|
||||
</label>
|
||||
</div>
|
||||
<div class="mr-sm">
|
||||
<button nz-button nzDanger [nzLoading]="service.http.loading" (click)="openDrawer()">筛选</button>
|
||||
<button nz-button nzDanger [disabled]="service.http.loading" acl [acl-ability]="['FINANCIAL-RECEIPT-export']"
|
||||
(click)='exportList()'>
|
||||
导出</button>
|
||||
</div>
|
||||
</div>
|
||||
<!-- <div class="d-flex align-items-center mb-md mt-md">
|
||||
<button nz-button (click)="this.addInvoice()" nzType="primary">添加收款</button>
|
||||
|
||||
@ -81,6 +81,10 @@ export class ReceiptOrderComponent extends BasicTableComponent implements OnInit
|
||||
// });
|
||||
}
|
||||
|
||||
exportList() {
|
||||
this.service.exportStart({ ...this.sf?.value, pageSize: -1 }, this.service.$api_get_receipt_page_export);
|
||||
}
|
||||
|
||||
private initSF(): SFSchema {
|
||||
return {
|
||||
properties: {
|
||||
|
||||
@ -48,7 +48,9 @@
|
||||
<div></div>
|
||||
<div class="mr-sm">
|
||||
<button nz-button nzDanger [nzLoading]="service.http.loading" (click)="openDrawer()">筛选</button>
|
||||
<button nz-button nzDanger> 导出</button>
|
||||
<button nz-button nzDanger [disabled]="service.http.loading" acl [acl-ability]="['FINANCIAL-RECEIVABLE-export']"
|
||||
(click)='exportList()'>
|
||||
导出</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
@ -12,7 +12,7 @@ import { FreightAccountService } from '../../services/freight-account.service';
|
||||
@Component({
|
||||
selector: 'app-receivable-order',
|
||||
templateUrl: './receivable-order.component.html',
|
||||
styleUrls: ['../../../commom/less/commom-table.less','../../../commom/less/common-table-bar.less']
|
||||
styleUrls: ['../../../commom/less/commom-table.less', '../../../commom/less/common-table-bar.less']
|
||||
})
|
||||
export class ReceivableOrderComponent extends BasicTableComponent implements OnInit {
|
||||
@ViewChild('st', { static: true })
|
||||
@ -80,6 +80,9 @@ export class ReceivableOrderComponent extends BasicTableComponent implements OnI
|
||||
}
|
||||
}
|
||||
|
||||
exportList() {
|
||||
this.service.exportStart({ ...this.sf?.value, pageSize: -1 }, this.service.$api_get_fico_page_export);
|
||||
}
|
||||
|
||||
private initSF(): SFSchema {
|
||||
return {
|
||||
@ -121,7 +124,7 @@ export class ReceivableOrderComponent extends BasicTableComponent implements OnI
|
||||
ui: {
|
||||
widget: 'dict-select',
|
||||
params: { dictKey: 'driverrecord:receive:type' },
|
||||
placeholder: '请选择',
|
||||
placeholder: '请选择'
|
||||
}
|
||||
},
|
||||
arvattype: {
|
||||
@ -130,7 +133,7 @@ export class ReceivableOrderComponent extends BasicTableComponent implements OnI
|
||||
ui: {
|
||||
widget: 'dict-select',
|
||||
params: { dictKey: 'pay:type' },
|
||||
placeholder: '请选择',
|
||||
placeholder: '请选择'
|
||||
}
|
||||
},
|
||||
cno: {
|
||||
@ -140,7 +143,7 @@ export class ReceivableOrderComponent extends BasicTableComponent implements OnI
|
||||
widget: 'select',
|
||||
placeholder: '请选择',
|
||||
allowClear: true,
|
||||
asyncData: () => this.service.getCloseAccount(),
|
||||
asyncData: () => this.service.getCloseAccount()
|
||||
}
|
||||
},
|
||||
arto: {
|
||||
@ -152,7 +155,7 @@ export class ReceivableOrderComponent extends BasicTableComponent implements OnI
|
||||
searchDebounceTime: 300,
|
||||
searchLoadingText: '搜索中...',
|
||||
allowClear: true,
|
||||
onSearch: (q: any) => this.service.getEnterpriceList({ enterpriseName: q }),
|
||||
onSearch: (q: any) => this.service.getEnterpriceList({ enterpriseName: q })
|
||||
}
|
||||
},
|
||||
sts: {
|
||||
@ -164,8 +167,7 @@ export class ReceivableOrderComponent extends BasicTableComponent implements OnI
|
||||
],
|
||||
ui: {
|
||||
widget: 'select',
|
||||
placeholder: '请选择',
|
||||
|
||||
placeholder: '请选择'
|
||||
}
|
||||
},
|
||||
banktype: {
|
||||
@ -178,8 +180,7 @@ export class ReceivableOrderComponent extends BasicTableComponent implements OnI
|
||||
],
|
||||
ui: {
|
||||
widget: 'select',
|
||||
placeholder: '请选择',
|
||||
|
||||
placeholder: '请选择'
|
||||
},
|
||||
default: ''
|
||||
},
|
||||
@ -188,8 +189,7 @@ export class ReceivableOrderComponent extends BasicTableComponent implements OnI
|
||||
type: 'string',
|
||||
ui: {
|
||||
widget: 'sl-from-to-search',
|
||||
format: 'yyyy-MM-dd',
|
||||
|
||||
format: 'yyyy-MM-dd'
|
||||
} as SFDateWidgetSchema
|
||||
},
|
||||
createTime: {
|
||||
@ -197,14 +197,21 @@ export class ReceivableOrderComponent extends BasicTableComponent implements OnI
|
||||
type: 'string',
|
||||
ui: {
|
||||
widget: 'sl-from-to-search',
|
||||
format: 'yyyy-MM-dd',
|
||||
format: 'yyyy-MM-dd'
|
||||
} as SFDateWidgetSchema
|
||||
},
|
||||
billHCode: {
|
||||
type: 'string',
|
||||
title: '订单号',
|
||||
ui: {
|
||||
placeholder: '请输入',
|
||||
placeholder: '请输入'
|
||||
}
|
||||
},
|
||||
waybillHCode: {
|
||||
type: 'string',
|
||||
title: '运单号',
|
||||
ui: {
|
||||
placeholder: '请输入'
|
||||
}
|
||||
},
|
||||
// orderS3: {
|
||||
@ -222,7 +229,7 @@ export class ReceivableOrderComponent extends BasicTableComponent implements OnI
|
||||
title: '核销备注',
|
||||
ui: {
|
||||
autocomplete: 'off',
|
||||
placeholder: '请选择',
|
||||
placeholder: '请选择'
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -234,6 +241,7 @@ export class ReceivableOrderComponent extends BasicTableComponent implements OnI
|
||||
{ title: '', index: 'key', type: 'checkbox' },
|
||||
{ title: '核销单号', index: 'ahxcode', type: 'link', width: 210 },
|
||||
{ title: '订单号', index: 'billHCode', type: 'link', width: 180 },
|
||||
{ title: '运单号', index: 'waybillHCode', width: 180 },
|
||||
{ title: '网络货运人', index: 'ltdName', width: 220 },
|
||||
{ title: '核销日期', index: 'ahxdate', type: 'date', width: 160 },
|
||||
{ title: '收款账户', index: 'ltdaccountId', width: 200 },
|
||||
|
||||
@ -41,9 +41,10 @@
|
||||
{{ item.orderRefundCode }} <br> {{ item.refundStatusLabel }}
|
||||
</ng-template>
|
||||
<ng-template st-row="refundAmount" let-item let-index="index" let-column="column">
|
||||
<ng-container *ngFor="let cost of item.billRefundDetailVOS">
|
||||
{{cost.costName}}:{{ cost.refundAmount |currency }}<br>
|
||||
</ng-container>
|
||||
<p *ngFor="let cost of item.billRefundDetailVOS"
|
||||
style="display: flex;align-items: center;justify-content: space-between;margin: 0;">
|
||||
<label> {{cost.costName}}:</label><label>{{ cost.refundAmount |currency }}</label>
|
||||
</p>
|
||||
</ng-template>
|
||||
<ng-template st-row="billRefundPaymentVOS" let-item let-index="index" let-column="column">
|
||||
<ng-container *ngFor="let bill of item.billRefundPaymentVOS">
|
||||
|
||||
@ -233,6 +233,14 @@ export class RefundRecordComponent extends BasicTableComponent implements OnInit
|
||||
{ title: '退款单号', render: 'orderRefundCode', width: 190 },
|
||||
{ title: '退款类型', index: 'refundTypeLabel', width: 140 },
|
||||
{ title: '退款金额', render: 'refundAmount', className: 'text-right', width: 180 },
|
||||
{
|
||||
title: '合计金额',
|
||||
index: 'refundAmount',
|
||||
width: 150,
|
||||
type: 'widget',
|
||||
className: 'text-right',
|
||||
widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.refundAmount }) }
|
||||
},
|
||||
{ title: '退款时间', index: 'refundExecuteTime', width: 170 },
|
||||
{ title: '货主', index: 'enterpriseInfoName', width: 150 },
|
||||
{ title: '所属项目', index: 'enterpriseProjectName', width: 140 },
|
||||
|
||||
@ -27,6 +27,8 @@
|
||||
<div class="mr-sm">
|
||||
<button nz-button nzDanger [nzLoading]="service.http.loading" (click)="openDrawer()" acl
|
||||
[acl-ability]="['FINANCIAL-VOUCHER-list']">筛选</button>
|
||||
<button nz-button nzDanger [disabled]="service.http.loading" (click)="exprot()" acl
|
||||
[acl-ability]="['FINANCIAL-VOUCHER-export']">导出</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
@ -61,6 +61,11 @@ export class VoucherManagementComponent extends BasicTableComponent {
|
||||
}
|
||||
}
|
||||
|
||||
// 导出
|
||||
exprot() {
|
||||
this.service.exportStart({ ...this.sf?.value, pageSize: -1 }, this.service.$api_get_fico_vch_export);
|
||||
}
|
||||
|
||||
private initSF(): SFSchema {
|
||||
return {
|
||||
properties: {
|
||||
@ -147,9 +152,15 @@ export class VoucherManagementComponent extends BasicTableComponent {
|
||||
vctype: {
|
||||
type: 'string',
|
||||
title: '凭证类型',
|
||||
enum: [
|
||||
{label: '全部', value:''},
|
||||
{label: 'WLW', value:'WLW'},
|
||||
{label: 'YH', value:'YH'},
|
||||
{label: 'KP', value:'KP'},
|
||||
{label: 'ZZ', value:'ZZ'},
|
||||
],
|
||||
ui: {
|
||||
widget: 'dict-select',
|
||||
params: { dictKey: 'credential:type' },
|
||||
widget: 'select',
|
||||
placeholder: '请选择'
|
||||
},
|
||||
default: ''
|
||||
|
||||
@ -83,6 +83,10 @@ export class FreightAccountService extends ShipperBaseService {
|
||||
|
||||
// 查询费用单抬头
|
||||
$api_get_cost_page = '/api/fcc/ficoFeeH/list/page';
|
||||
// 导出费用单列表数据
|
||||
$api_get_cost_page_export = '/api/fcc/ficoFeeH/asyncExport';
|
||||
// 导出费用管理列表数据
|
||||
$api_get_reportFeehList = '/api/fcc/ficoFeeH/reportFeehList';
|
||||
// 根据费用头ID查询费用单及开票明细
|
||||
$api_get_cost_detail = '/api/fcc/ficoFeeL/detail';
|
||||
// 费用关联的应收核销明细
|
||||
@ -90,6 +94,8 @@ export class FreightAccountService extends ShipperBaseService {
|
||||
|
||||
// 查询应收核销抬头
|
||||
$api_get_fico_page = '/api/fcc/ficoAhxH/list/page';
|
||||
// 应收核销列表数据导出
|
||||
$api_get_fico_page_export = '/api/fcc/ficoAhxH/asyncExport';
|
||||
// 应收核销汇总
|
||||
$api_get_fico_sum = '/api/fcc/ficoAhxH/getSum';
|
||||
// 获取应收核销抬头
|
||||
@ -99,6 +105,8 @@ export class FreightAccountService extends ShipperBaseService {
|
||||
|
||||
// 查询应付核销抬头
|
||||
$api_get_fico_ph_page = '/api/fcc/ficoPhxH/list/page';
|
||||
// 应付核销列表数据导出
|
||||
$api_get_fico_ph_page_export = '/api/fcc/ficoPhxH/asyncExport';
|
||||
// 应付核销汇总
|
||||
$api_get_fico_ph_sum = '/api/fcc/ficoPhxH/getSum';
|
||||
// 获取应付核销抬头
|
||||
@ -108,6 +116,8 @@ export class FreightAccountService extends ShipperBaseService {
|
||||
|
||||
// 查询总账凭证表
|
||||
$api_get_fico_vch_page = '/api/fcc/ficoVcH/list/page';
|
||||
// 导出总账凭证列表数据
|
||||
$api_get_fico_vch_export = '/api/fcc/ficoVcH/asyncExport';
|
||||
// 导出总账凭证表
|
||||
$api_export_fico_vch_page = '/api/fcc/ficoVcH/reportVchListPage';
|
||||
// 获取总账凭证表详情信息
|
||||
@ -115,6 +125,8 @@ export class FreightAccountService extends ShipperBaseService {
|
||||
|
||||
// 查询付款单抬头
|
||||
$api_get_payment_page = '/api/fcc/ficoPayH/listFicoPayHPage';
|
||||
// 付款单列表数据导出
|
||||
$api_get_payment_page_export = '/api/fcc/ficoPayH/asyncExport';
|
||||
// 查询付款单明细
|
||||
$api_get_payment_detail = '/api/fcc/ficoPayL/list/page';
|
||||
// 付款单抬头信息
|
||||
@ -122,6 +134,8 @@ export class FreightAccountService extends ShipperBaseService {
|
||||
|
||||
// 查询收款单抬头
|
||||
$api_get_receipt_page = '/api/fcc/ficoBrmH/list/page';
|
||||
// 收款单列表数据导出
|
||||
$api_get_receipt_page_export = '/api/fcc/ficoBrmH/asyncExport';
|
||||
// 收款单抬头信息
|
||||
$api_get_receipt_header = '/api/fcc/ficoBrmH/get';
|
||||
// 获取收款单抬头
|
||||
|
||||
@ -104,10 +104,9 @@
|
||||
</span>
|
||||
</div>
|
||||
<div nz-row [nzGutter]="24">
|
||||
<div nz-col [nzSpan]="12">
|
||||
<div class="handling-col" nz-col [nzSpan]="12">
|
||||
<div class="handling-info p-md">
|
||||
<ng-container *ngFor="let item of i?.unLoadingPlaceList">
|
||||
|
||||
<div class="flex" *ngIf="item.type === '1'">
|
||||
<div class="loading-row">
|
||||
<div class="handling-info-icon loading-bg">装</div>
|
||||
@ -121,7 +120,7 @@
|
||||
</ng-container>
|
||||
</div>
|
||||
</div>
|
||||
<div nz-col [nzSpan]="12">
|
||||
<div class="handling-col" nz-col [nzSpan]="12">
|
||||
<div class="handling-info p-md">
|
||||
<ng-container *ngFor="let item of i?.unLoadingPlaceList">
|
||||
<div class="flex" *ngIf="item.type === '2'">
|
||||
@ -176,9 +175,7 @@
|
||||
结算依据为2时,装货时间不为空,显示运费信息,否则隐藏
|
||||
[hidden]="!(i?.settlementBasis ==='1' && i?.unloadTime) && !(i?.settlementBasis ==='2' && i?.loadTime)"
|
||||
-->
|
||||
<nz-card #distannce3
|
||||
|
||||
[nzBorderless]="true" class="mb0">
|
||||
<nz-card #distannce3 [nzBorderless]="true" class="mb0">
|
||||
<div class="font-weight-blod text-md detail-title">
|
||||
<a class="sign"></a>
|
||||
<span>运费信息</span>
|
||||
|
||||
@ -31,7 +31,8 @@
|
||||
<div class="tab_header">
|
||||
<label class="page_title">
|
||||
<label class="driver">|</label>
|
||||
大宗订单</label>
|
||||
大宗订单</label
|
||||
>
|
||||
<nz-tabset (nzSelectedIndexChange)="selectChange($event)" [nzTabBarExtraContent]="extraTemplate">
|
||||
<nz-tab [nzTitle]="'全部(' + tabs?.totalCount + ')'"></nz-tab>
|
||||
<nz-tab [nzTitle]="'待接单(' + tabs?.receivedQuantity + ')'"></nz-tab>
|
||||
@ -44,10 +45,17 @@
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<st #st [bordered]="true" [scroll]="{ x: '2000px',y:scrollY }" [data]="service.$api_get_listBulkPage"
|
||||
[columns]="columns" [req]="{ process: beforeReq }"
|
||||
[res]="{ reName: { list: 'data.records', total: 'data.total' } , process: afterRes}"
|
||||
[page]="{ show: true, showSize: true, pageSizes: [10, 20, 30, 50, 100, 200, 300, 500, 1000] }" [loading]="false">
|
||||
<st
|
||||
#st
|
||||
[bordered]="true"
|
||||
[scroll]="{ x: '2000px', y: scrollY }"
|
||||
[data]="service.$api_get_listBulkPage"
|
||||
[columns]="columns"
|
||||
[req]="{ process: beforeReq }"
|
||||
[res]="{ reName: { list: 'data.records', total: 'data.total' }, process: afterRes }"
|
||||
[page]="{ show: true, showSize: true, pageSizes: [10, 20, 30, 50, 100, 200, 300, 500, 1000] }"
|
||||
[loading]="false"
|
||||
>
|
||||
<ng-template st-row="freightPrice" let-item let-index="index">
|
||||
{{ item.freightPrice | currency }}
|
||||
</ng-template>
|
||||
@ -56,19 +64,19 @@
|
||||
<div *ngIf="item?.unloadTime">卸 | {{ item?.unloadTime }}</div>
|
||||
</ng-template>
|
||||
<ng-template st-row="driverName" let-item let-index="index">
|
||||
<div> {{ item?.driverName }}{{ item?.driverPhone ? "/" + item?.driverPhone : '' }}{{ item?.carNo ? "/" +
|
||||
item?.carNo : ''}} </div>
|
||||
<div> {{ item?.driverName }}{{ item?.driverPhone ? '/' + item?.driverPhone : '' }}{{ item?.carNo ? '/' + item?.carNo : '' }} </div>
|
||||
</ng-template>
|
||||
<ng-template st-row="settlementWeight" let-item let-index="index">
|
||||
<div> {{ item.settlementWeight ? item.settlementWeight + '吨/ ': ''}} {{ item.settlementVolume ?
|
||||
item.settlementVolume + '方 ': ''}}</div>
|
||||
<div>
|
||||
{{ item.settlementWeight ? item.settlementWeight + '吨/ ' : '' }}
|
||||
{{ item.settlementVolume ? item.settlementVolume + '方 ' : '' }}</div
|
||||
>
|
||||
</ng-template>
|
||||
<ng-template st-row="payeeName" let-item let-index="index">
|
||||
<div *ngIf="item.payeeName !== item.driverName"> {{ item?.payeeName }}{{ item?.payeePhone ? "/" +
|
||||
item?.payeePhone : '' }} </div>
|
||||
<div *ngIf="item.payeeName !== item.driverName"> {{ item?.payeeName }}{{ item?.payeePhone ? '/' + item?.payeePhone : '' }} </div>
|
||||
</ng-template>
|
||||
<ng-template st-row="createUserName" let-item let-index="index">
|
||||
<div> {{ item?.createUserName }}{{ item?.createUserPhone ? "/" + item?.createUserPhone : '' }} </div>
|
||||
<div> {{ item?.createUserName }}{{ item?.createUserPhone ? '/' + item?.createUserPhone : '' }} </div>
|
||||
</ng-template>
|
||||
<ng-template st-row="billCode" let-item let-index="index">
|
||||
<a [routerLink]="'bulk-detail/' + item.id">{{ item.billCode }}</a>
|
||||
@ -91,8 +99,7 @@
|
||||
<div *ngIf="item.mybidDetailInfo.length > 0">
|
||||
<p *ngFor="let data of item.mybidDetailInfo">
|
||||
<span *ngIf="data.expenseCode !== 'FL'">{{ data.expenseName }}:{{ data.price | currency }}</span>
|
||||
<span *ngIf="data.expenseCode === 'FL'">{{ data.expenseName }}:{{ (data.price * 100).toFixed(2) + '%'
|
||||
}}</span>
|
||||
<span *ngIf="data.expenseCode === 'FL'">{{ data.expenseName }}:{{ (data.price * 100).toFixed(2) + '%' }}</span>
|
||||
<span *ngIf="data.paymentStatusLabel" style="color: #f59a63">{{ data.paymentStatusLabel }}</span>
|
||||
</p>
|
||||
</div>
|
||||
@ -101,13 +108,25 @@
|
||||
</div>
|
||||
</nz-card>
|
||||
|
||||
<nz-modal [(nzVisible)]="isVisible" [nzWidth]="600" [nzFooter]="nzModalFooter" nzTitle="运费变更记录" (nzOnOk)="handleOK()"
|
||||
(nzOnCancel)="handleCancel('0')">
|
||||
<nz-modal
|
||||
[(nzVisible)]="isVisible"
|
||||
[nzWidth]="600"
|
||||
[nzFooter]="nzModalFooter"
|
||||
nzTitle="运费变更记录"
|
||||
(nzOnOk)="handleOK()"
|
||||
(nzOnCancel)="handleCancel('0')"
|
||||
>
|
||||
<ng-container *nzModalContent>
|
||||
<st #stFloat size="small" [bordered]="true" [data]="service.$api_get_listChangeApply" [columns]="columnsFloat"
|
||||
[req]="{ process: beforeReq }"
|
||||
[res]="{ reName: { list: 'data.records', total: 'data.total' } , process: afterRes}"
|
||||
[page]="{ show: true, showSize: true, pageSizes: [10, 20, 30, 50, 100, 200, 300, 500, 1000] }">
|
||||
<st
|
||||
#stFloat
|
||||
size="small"
|
||||
[bordered]="true"
|
||||
[data]="service.$api_get_listChangeApply"
|
||||
[columns]="columnsFloat"
|
||||
[req]="{ process: beforeReq }"
|
||||
[res]="{ reName: { list: 'data.records', total: 'data.total' }, process: afterRes }"
|
||||
[page]="{ show: true, showSize: true, pageSizes: [10, 20, 30, 50, 100, 200, 300, 500, 1000] }"
|
||||
>
|
||||
<ng-template st-row="order" let-item let-index="index">
|
||||
{{ index + 1 }}
|
||||
</ng-template>
|
||||
@ -127,8 +146,14 @@
|
||||
</ng-template>
|
||||
</nz-modal>
|
||||
|
||||
<nz-modal [(nzVisible)]="isVisibleView" [nzWidth]="600" [nzFooter]="nzModalFooterview" nzTitle="查看"
|
||||
(nzOnOk)="handleOK()" (nzOnCancel)="handleCancel('1')">
|
||||
<nz-modal
|
||||
[(nzVisible)]="isVisibleView"
|
||||
[nzWidth]="600"
|
||||
[nzFooter]="nzModalFooterview"
|
||||
nzTitle="查看"
|
||||
(nzOnOk)="handleOK()"
|
||||
(nzOnCancel)="handleCancel('1')"
|
||||
>
|
||||
<ng-container *nzModalContent>
|
||||
<sf #sfView [schema]="schemaView" [ui]="uiView" [formData]="ViewCause" [compact]="true" [button]="'none'">
|
||||
<ng-template sf-template="no" let-me let-ui="uiView" let-schema="schemaView">
|
||||
@ -138,21 +163,30 @@
|
||||
</div>
|
||||
</ng-template>
|
||||
</sf>
|
||||
<st #stFloatView multiSort size="small" [bordered]="true" [data]="service.$api_getChangeRecordBulkDetail"
|
||||
<st
|
||||
#stFloatView
|
||||
multiSort
|
||||
size="small"
|
||||
[bordered]="true"
|
||||
[data]="service.$api_getChangeRecordBulkDetail"
|
||||
[columns]="columnsFloatView"
|
||||
[req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, params: changeViewParams }"
|
||||
[res]="{ reName: { list: 'data.list', total: 'data.total' } }">
|
||||
[res]="{ reName: { list: 'data.list', total: 'data.total' } }"
|
||||
>
|
||||
<ng-template st-row="amountBeforeChange" let-item let-index="index">
|
||||
{{ item.amountBeforeChange | currency }}
|
||||
</ng-template>
|
||||
<ng-template st-row="amountchangeValue" let-item let-index="index"> ¥{{ item.amountchangeValue | number: '0.2-2'
|
||||
}} </ng-template>
|
||||
<ng-template st-row="amountchangeValue" let-item let-index="index"> ¥{{ item.amountchangeValue | number: '0.2-2' }} </ng-template>
|
||||
<ng-template st-row="amountAfterChange" let-item let-index="index">
|
||||
{{ item.amountAfterChange | currency }}
|
||||
</ng-template>
|
||||
</st>
|
||||
<div><span>变更原因:{{ ViewCause?.changeCause }}</span></div>
|
||||
<div><span>拒绝原因:{{ ViewCause?.refuseCause }}</span></div>
|
||||
<div
|
||||
><span>变更原因:{{ ViewCause?.changeCause }}</span></div
|
||||
>
|
||||
<div
|
||||
><span>拒绝原因:{{ ViewCause?.refuseCause }}</span></div
|
||||
>
|
||||
<div><span>注:附加费依据调整后的运输费用重新计算</span></div>
|
||||
</ng-container>
|
||||
<ng-template #nzModalFooterview>
|
||||
@ -161,8 +195,13 @@
|
||||
</ng-template>
|
||||
</nz-modal>
|
||||
|
||||
<nz-modal [(nzVisible)]="isVisibleEvaluate" [nzWidth]="600" [nzFooter]="nzModalFooterEvaluate" (nzOnOk)="handleOK()"
|
||||
(nzOnCancel)="handleCancel('2')">
|
||||
<nz-modal
|
||||
[(nzVisible)]="isVisibleEvaluate"
|
||||
[nzWidth]="600"
|
||||
[nzFooter]="nzModalFooterEvaluate"
|
||||
(nzOnOk)="handleOK()"
|
||||
(nzOnCancel)="handleCancel('2')"
|
||||
>
|
||||
<ng-container *nzModalContent>
|
||||
<nz-tabset>
|
||||
<nz-tab nzTitle="货主评价">
|
||||
@ -191,21 +230,29 @@
|
||||
<ng-template #enable>
|
||||
<div class="ant-popover-message">
|
||||
<i nz-icon nzType="info-circle" nzTheme="fill"></i>
|
||||
<div class="ant-popover-message-title ng-star-inserted self-ant-popover-title" style="font-size: 16px">已选择{{
|
||||
selectedRows?.length || 0 }}条订单,确认批量签收吗?
|
||||
<div class="ant-popover-message-title ng-star-inserted self-ant-popover-title" style="font-size: 16px"
|
||||
>已选择{{ selectedRows?.length || 0 }}条订单,确认批量签收吗?
|
||||
</div>
|
||||
<div class="ant-popover-message-title ng-star-inserted"> 签收后不可再修改运费,请确保运费等信息准确无误后,再进行签收。 </div>
|
||||
</div>
|
||||
</ng-template>
|
||||
<ng-template #extraTemplate>
|
||||
<div class="mr-sm">
|
||||
<button nz-button nzDanger [nzLoading]="loading" (click)="openDrawer()" acl
|
||||
[acl-ability]="['ORDER-BULK-search']">筛选</button>
|
||||
<button nz-button nzDanger [nzLoading]="loading" (click)="openDrawer()" acl [acl-ability]="['ORDER-BULK-search']">筛选</button>
|
||||
<button nz-button nzDanger [disabled]="loading" (click)="exprot()">导出</button>
|
||||
<button *ngIf="resourceStatus == 4" nz-button nzType="primary" nzGhost nz-popconfirm [nzPopconfirmTitle]="enable"
|
||||
(nzOnConfirm)="userAction()" nzPopconfirmPlacement="bottomRight" acl
|
||||
[acl-ability]="['ORDER-BULK-batchSignBulkOrder']">
|
||||
<button
|
||||
*ngIf="resourceStatus == 4"
|
||||
nz-button
|
||||
nzType="primary"
|
||||
nzGhost
|
||||
nz-popconfirm
|
||||
[nzPopconfirmTitle]="enable"
|
||||
(nzOnConfirm)="userAction()"
|
||||
nzPopconfirmPlacement="bottomRight"
|
||||
acl
|
||||
[acl-ability]="['ORDER-BULK-batchSignBulkOrder']"
|
||||
>
|
||||
批量签收
|
||||
</button>
|
||||
</div>
|
||||
</ng-template>
|
||||
</ng-template>
|
||||
|
||||
@ -824,4 +824,5 @@ export class OrderManagementBulkComponent extends BasicTableComponent implements
|
||||
exprot() {
|
||||
this.service.exportStart({ ...this.reqParams, pageSize: -1 }, this.service.$api_get_asyncExportBulkList);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
* @Author : Shiming
|
||||
* @Date : 2022-01-12 10:52:50
|
||||
* @LastEditors : Shiming
|
||||
* @LastEditTime : 2022-04-29 10:29:12
|
||||
* @LastEditTime : 2022-05-10 13:55:39
|
||||
* @FilePath : \\tms-obc-web\\src\\app\\routes\\order-management\\components\\receipts-audit\\receipts-audit.component.html
|
||||
* Copyright (C) 2022 huzhenhong. All rights reserved.
|
||||
-->
|
||||
@ -39,10 +39,17 @@
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<st #st [bordered]="true" [scroll]="{ x: '2000px',y:scrollY }" [data]="service.$api_get_billExamine_page"
|
||||
[columns]="columns" [req]="{ process: beforeReq }"
|
||||
[res]="{ reName: { list: 'data.records', total: 'data.total' } , process: afterRes}"
|
||||
[page]="{ show: true, showSize: true, pageSizes: [10, 20, 30, 50, 100, 200, 300, 500, 1000] }" [loading]="false">
|
||||
<st
|
||||
#st
|
||||
[bordered]="true"
|
||||
[scroll]="{ x: '2000px', y: scrollY }"
|
||||
[data]="service.$api_get_billExamine_page"
|
||||
[columns]="columns"
|
||||
[req]="{ process: beforeReq }"
|
||||
[res]="{ reName: { list: 'data.records', total: 'data.total' }, process: afterRes }"
|
||||
[page]="{ show: true, showSize: true, pageSizes: [10, 20, 30, 50, 100, 200, 300, 500, 1000] }"
|
||||
[loading]="false"
|
||||
>
|
||||
<ng-template st-row="freightPrice" let-item let-index="index">
|
||||
{{ item.freightPrice | currency }}
|
||||
</ng-template>
|
||||
@ -62,8 +69,7 @@
|
||||
<app-imagelist style="width: 40px" [imgList]="[item.unloadingLadingBillFilePath]"> </app-imagelist>
|
||||
</div>
|
||||
<div *ngIf="item.unloadingPeopleVehiclesGoodsFilePath">
|
||||
<app-imagelist style="width: 40px" [imgList]="[item.unloadingPeopleVehiclesGoodsFilePath]">
|
||||
</app-imagelist>
|
||||
<app-imagelist style="width: 40px" [imgList]="[item.unloadingPeopleVehiclesGoodsFilePath]"> </app-imagelist>
|
||||
</div>
|
||||
</div>
|
||||
</ng-template>
|
||||
@ -72,26 +78,21 @@
|
||||
<div *ngIf="item?.unloadingTime">卸 | {{ item?.unloadingTime }}</div>
|
||||
</ng-template>
|
||||
<ng-template st-row="driverName" let-item let-index="index">
|
||||
<div> {{ item?.driverName }}{{ item?.driverPhone ? "/" + item?.driverPhone : ''}}{{ item?.carNo ? "/" +
|
||||
item?.carNo : '' }} </div>
|
||||
<div> {{ item?.driverName }}{{ item?.driverPhone ? '/' + item?.driverPhone : '' }}{{ item?.carNo ? '/' + item?.carNo : '' }} </div>
|
||||
</ng-template>
|
||||
<ng-template st-row="payeeName" let-item let-index="index">
|
||||
<div> {{ item?.payeeName }}{{item?.payeePhone ? "/" + item?.payeePhone : '' }} </div>
|
||||
<div *ngIf="item.payeeName !== item.driverName"> {{ item?.payeeName }}{{ item?.payeePhone ? '/' + item?.payeePhone : '' }} </div>
|
||||
</ng-template>
|
||||
<ng-template st-row="billCode" let-item let-index="index">
|
||||
<!-- <div>{{ item.billCode }}</div> -->
|
||||
<a *ngIf="item.resourceType == '1'" [routerLink]="'/order-management/vehicle/vehicle-detail/' + item.id">{{
|
||||
item.billCode }}</a>
|
||||
<a *ngIf="item.resourceType == '2'" [routerLink]="'/order-management/bulk/bulk-detail/' + item.id">{{
|
||||
item.billCode }}</a>
|
||||
<a *ngIf="item.resourceType == '3'" [routerLink]="'/order-management/vehicle/vehicle-detail/' + item.id">{{
|
||||
item.billCode }}</a>
|
||||
<a *ngIf="item.resourceType == '1'" [routerLink]="'/order-management/vehicle/vehicle-detail/' + item.id">{{ item.billCode }}</a>
|
||||
<a *ngIf="item.resourceType == '2'" [routerLink]="'/order-management/bulk/bulk-detail/' + item.id">{{ item.billCode }}</a>
|
||||
<a *ngIf="item.resourceType == '3'" [routerLink]="'/order-management/vehicle/vehicle-detail/' + item.id">{{ item.billCode }}</a>
|
||||
<div>
|
||||
<span>{{item?.billStatusLabel}}</span>
|
||||
<span>{{ item?.billStatusLabel }}</span>
|
||||
</div>
|
||||
<div>
|
||||
<span>{{item?.resourceTypeLabel}}{{item?.serviceTypeLabel === item?.resourceTypeLabel ?
|
||||
'':item?.serviceTypeLabel}}</span>
|
||||
<span>{{ item?.resourceTypeLabel }}{{ item?.serviceTypeLabel === item?.resourceTypeLabel ? '' : item?.serviceTypeLabel }}</span>
|
||||
</div>
|
||||
</ng-template>
|
||||
<ng-template st-row="goodsName" let-item let-index="index">
|
||||
@ -116,20 +117,18 @@
|
||||
|
||||
<ng-template #extraTemplate>
|
||||
<div>
|
||||
<button nz-button nzDanger [nzLoading]="service.http.loading" (click)="openDrawer()" acl
|
||||
[acl-ability]="['ORDER-RECEIPTS-search']">筛选</button>
|
||||
<button nz-button nzDanger [nzLoading]="service.http.loading" (click)="openDrawer()" acl [acl-ability]="['ORDER-RECEIPTS-search']"
|
||||
>筛选</button
|
||||
>
|
||||
<button nz-button nzDanger [disabled]="false" (click)="exprot()" acl [acl-ability]="['ORDER-RECEIPTS-export']">导出</button>
|
||||
<button nz-button nz-dropdown [nzDropdownMenu]="menu" nzPlacement="bottomLeft">
|
||||
更多<i nz-icon nzType="down" nzTheme="outline"></i></button>
|
||||
更多<i nz-icon nzType="down" nzTheme="outline"></i
|
||||
></button>
|
||||
<nz-dropdown-menu #menu="nzDropdownMenu">
|
||||
<ul nz-menu>
|
||||
<li nz-menu-item (click)="sign('1')" acl [acl-ability]="['ORDER-RECEIPTS-billAuditPassBatch']">
|
||||
批量通过
|
||||
</li>
|
||||
<li nz-menu-item (click)="sign1('1')" acl [acl-ability]="['ORDER-RECEIPTS- electronicBilling']">
|
||||
批量生成电子单据
|
||||
</li>
|
||||
<li nz-menu-item (click)="sign('1')" acl [acl-ability]="['ORDER-RECEIPTS-billAuditPassBatch']"> 批量通过 </li>
|
||||
<li nz-menu-item (click)="sign1('1')" acl [acl-ability]="['ORDER-RECEIPTS- electronicBilling']"> 批量生成电子单据 </li>
|
||||
</ul>
|
||||
</nz-dropdown-menu>
|
||||
</div>
|
||||
</ng-template>
|
||||
</ng-template>
|
||||
|
||||
@ -127,7 +127,6 @@ export class OrderManagementReceiptsAuditComponent extends BasicTableComponent i
|
||||
this.initST();
|
||||
setTimeout(() => {
|
||||
this.st.load();
|
||||
this.getGoodsSourceStatistical();
|
||||
}, 500);
|
||||
}
|
||||
ngOnInit(): void {
|
||||
@ -341,7 +340,6 @@ export class OrderManagementReceiptsAuditComponent extends BasicTableComponent i
|
||||
title: '车队长',
|
||||
className: 'text-left',
|
||||
width: '180px',
|
||||
index: 'payeeName',
|
||||
render: 'payeeName'
|
||||
},
|
||||
{
|
||||
|
||||
@ -134,8 +134,8 @@
|
||||
<div class="handling-col" nz-col [nzSpan]="12">
|
||||
<div class="handling-info p-md">
|
||||
<ng-container *ngFor="let item of i?.unLoadingPlaceList">
|
||||
<div class="flex" *ngFor="let item of i?.unLoadingPlaceList">
|
||||
<div *ngIf="item.type === '2'" class="loading-row">
|
||||
<div class="flex" *ngIf="item.type === '2'">
|
||||
<div class="loading-row">
|
||||
<div class="handling-info-icon unloaing-bg">卸</div>
|
||||
<div class="info">
|
||||
<h4>卸货地:{{ item?.province }}{{ item.city }}{{ item.area }}{{ item.detailedAddress }}</h4>
|
||||
@ -290,7 +290,7 @@
|
||||
<div nz-col [nzSpan]="24">
|
||||
<amap-path-simplifier [mapWidth]="'100%'" [mapHeight]="'600px'" [mapList]="mapList" [pois]="pois">
|
||||
</amap-path-simplifier>
|
||||
<st [scroll]="{ y: '350px' }" #st [data]="addressItems" [columns]="logColumns2" [noResult]='fuck' [ps]="0"
|
||||
<st [scroll]="{ y: '350px' }" #st [data]="addressItems" [columns]="logColumns2" [noResult]='fuck' [ps]="0"
|
||||
[page]="{ show: false, showSize: false }" size="small" class="map_st">
|
||||
<ng-template #fuck>
|
||||
<div>
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
* @Author : Shiming
|
||||
* @Date : 2022-01-12 10:52:50
|
||||
* @LastEditors : Shiming
|
||||
* @LastEditTime : 2022-04-22 16:53:07
|
||||
* @LastEditTime : 2022-05-11 09:49:01
|
||||
* @FilePath : \\tms-obc-web\\src\\app\\routes\\order-management\\components\\vehicle\\vehicle.component.html
|
||||
* Copyright (C) 2022 huzhenhong. All rights reserved.
|
||||
-->
|
||||
@ -95,10 +95,10 @@
|
||||
</div>
|
||||
</ng-template>
|
||||
<ng-template st-row="driverName" let-item let-index="index">
|
||||
<div> {{ item?.driverName }}{{ item?.driverPhone ? '/' + item?.driverPhone : '' }}{{ item?.carNo ? '/' +
|
||||
item?.carNo : '' }} </div><br />
|
||||
<div *ngIf="item.payeeName !== item.driverName">车队长: {{ item?.payeeName ? item?.payeeName + '/' : ''}}{{
|
||||
item?.payeePhone }} </div>
|
||||
<div> {{ item?.driverName }}{{ item?.driverPhone ? '/' + item?.driverPhone : '' }}{{ item?.carNo ? '/' + item?.carNo : '' }} </div>
|
||||
</ng-template>
|
||||
<ng-template st-row="payeeName" let-item let-index="index">
|
||||
<div *ngIf="item.payeeName !== item.driverName"> {{ item?.payeeName }}{{ item?.payeePhone ? '/' + item?.payeePhone : '' }} </div>
|
||||
</ng-template>
|
||||
|
||||
<ng-template st-row="loadingTime" let-item let-index="index">
|
||||
|
||||
@ -379,8 +379,15 @@ export class OrderManagementVehicleComponent extends BasicTableComponent impleme
|
||||
title: '承运司机',
|
||||
className: 'text-left',
|
||||
width: '250px',
|
||||
index: 'driverName',
|
||||
render: 'driverName'
|
||||
},
|
||||
{
|
||||
title: '车队长',
|
||||
className: 'text-left',
|
||||
width: '180px',
|
||||
render: 'payeeName'
|
||||
},
|
||||
{ title: '网络货运人', index: 'enterpriseInfoName', width: '250px', className: 'text-left' },
|
||||
{ title: '关联运单号', index: 'wayBillCode', width: '170px', className: 'text-left' },
|
||||
{ title: '关联货源编号', index: 'resourceCode', width: '170px', className: 'text-left' },
|
||||
|
||||
@ -1,3 +1,13 @@
|
||||
<!--
|
||||
* @Description :
|
||||
* @Version : 1.0
|
||||
* @Author : Shiming
|
||||
* @Date : 2022-04-28 20:27:07
|
||||
* @LastEditors : Shiming
|
||||
* @LastEditTime : 2022-05-12 14:57:21
|
||||
* @FilePath : \\tms-obc-web\\src\\app\\routes\\partner\\account-management\\components\\recorded-detail\\recorded-detail.component.html
|
||||
* Copyright (C) 2022 huzhenhong. All rights reserved.
|
||||
-->
|
||||
<page-header-wrapper [title]="'待入账明细'" [logo]="logo">
|
||||
<ng-template #logo>
|
||||
<button nz-button (click)="goBack()">
|
||||
@ -6,29 +16,44 @@
|
||||
</ng-template>
|
||||
</page-header-wrapper>
|
||||
<nz-card>
|
||||
<sv-container layout="vertical" [noColon]="true" col="5">
|
||||
<sv [label]="labelTpl">
|
||||
<b class="text-md ">{{summaryObj?.taxno}}</b>
|
||||
<sv-container layout="vertical" [noColon]="true" col="6">
|
||||
<sv label="合伙人信息">
|
||||
<div
|
||||
><b>{{ summaryObj?.partnerName }}</b></div
|
||||
>
|
||||
<div
|
||||
><b>{{ summaryObj?.partnerInfo }}</b></div
|
||||
>
|
||||
</sv>
|
||||
<sv label="返佣总额">
|
||||
<span class="text-error-dark font-weight-bold">{{(summaryObj?.totalRebate?summaryObj?.totalRebate: 0 )|currency :'
|
||||
'}}</span>
|
||||
<span class="text-error-dark font-weight-bold">{{ (summaryObj?.totalRebate ? summaryObj?.totalRebate : 0) | currency }}</span>
|
||||
</sv>
|
||||
<sv label="已入账金额">
|
||||
<span class="text-error-dark font-weight-bold">{{(summaryObj?.recordedAmount?summaryObj?.recordedAmount:0
|
||||
)|currency:' '}}</span>
|
||||
<span class="text-error-dark font-weight-bold">{{ (summaryObj?.recordedAmount ? summaryObj?.recordedAmount : 0) | currency }}</span>
|
||||
</sv>
|
||||
<sv label="代缴个税">
|
||||
<span class="text-error-dark font-weight-bold">{{(summaryObj?.taxPersonalSum?summaryObj?.taxPersonalSum:0
|
||||
)|currency:' '}}</span>
|
||||
<sv label="已代缴个税">
|
||||
<span class="text-error-dark font-weight-bold">{{
|
||||
(summaryObj?.recordedTaxPersonal ? summaryObj?.recordedTaxPersonal : 0) | currency
|
||||
}}</span>
|
||||
</sv>
|
||||
<sv label="入账中金额">
|
||||
<span class="text-error-dark font-weight-bold">{{
|
||||
(summaryObj?.ongoingRecordedAmount ? summaryObj?.ongoingRecordedAmount : 0) | currency
|
||||
}}</span>
|
||||
</sv>
|
||||
<sv label="代缴中个税">
|
||||
<span class="text-error-dark font-weight-bold">{{
|
||||
(summaryObj?.waitRecordedTaxPersonal ? summaryObj?.waitRecordedTaxPersonal : 0) | currency
|
||||
}}</span>
|
||||
</sv>
|
||||
<sv label="待入账金额">
|
||||
<span class="text-error-dark font-weight-bold">{{(summaryObj?.waitRecordedAmount?summaryObj?.waitRecordedAmount:0)
|
||||
|currency:' '}}</span>
|
||||
<span class="text-error-dark font-weight-bold">{{
|
||||
(summaryObj?.waitRecordedAmount ? summaryObj?.waitRecordedAmount : 0) | currency
|
||||
}}</span>
|
||||
</sv>
|
||||
</sv-container>
|
||||
<ng-template #labelTpl>
|
||||
<b class="text-md" style="color: black;">{{summaryObj?.ltdName}}</b>
|
||||
<b class="text-md" style="color: black">{{ summaryObj?.ltdName }}</b>
|
||||
</ng-template>
|
||||
</nz-card>
|
||||
<nz-card>
|
||||
@ -36,44 +61,109 @@
|
||||
<sf mode="search" #sf [schema]="schema" [ui]="ui" (formSubmit)="search()" (formReset)="resetSF()"></sf>
|
||||
</div>
|
||||
<div class="table-content">
|
||||
<st #st [data]="service.$api_get_invoice_detail_page " [columns]="columns"
|
||||
[req]="{ method: 'POST', allInBody: true, reName: {pi: 'pageIndex', ps: 'pageSize' }, params: reqParams }"
|
||||
<st
|
||||
#st
|
||||
[data]="service.$api_get_invoice_detail_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: [5,10, 20, 50, 100, 200, 500] }"
|
||||
[loading]="service.http.loading" [scroll]="{x:'1200px'}">
|
||||
<ng-template st-row="amount" let-item>
|
||||
<div *ngIf="item.incomeType === '1'"> - {{item.amount | currency }}</div>
|
||||
<div *ngIf="item.incomeType === '2'"> + {{item.amount | currency }}</div>
|
||||
[page]="{ show: true, showSize: true, pageSizes: [5, 10, 20, 50, 100, 200, 500] }"
|
||||
[scroll]="{ x: '1200px' }"
|
||||
>
|
||||
<!-- [loading]="service.http.loading" -->
|
||||
|
||||
<ng-template st-row="recordedAmount" let-item>
|
||||
<div>{{ item.recordedAmount | currency }}</div>
|
||||
</ng-template>
|
||||
<ng-template st-row="recordedTaxPersonal" let-item>
|
||||
<div>{{ item.recordedTaxPersonal | currency }}</div>
|
||||
</ng-template>
|
||||
<ng-template st-row="ongoingRecordedAmount" let-item>
|
||||
<div>{{ item.ongoingRecordedAmount | currency }}</div>
|
||||
</ng-template>
|
||||
<ng-template st-row="waitRecordedTaxPersonal" let-item>
|
||||
<div>{{ item.waitRecordedTaxPersonal | currency }}</div>
|
||||
</ng-template>
|
||||
<ng-template st-row="changeAmount" let-item>
|
||||
<div (click)="changeB(item)" style="color: #1890ff;">{{ item.changeAmount | currency }}</div>
|
||||
</ng-template>
|
||||
<ng-template st-row="waitRecordedAmount" let-item>
|
||||
<div>{{ item.waitRecordedAmount | currency }}</div>
|
||||
</ng-template>
|
||||
<ng-template st-row="totalRebate" let-item>
|
||||
<div>{{ item.totalRebate | currency }}</div>
|
||||
</ng-template>
|
||||
</st>
|
||||
<div class="total-footer text-md" *ngIf="st?.list?.length !== 0 ">
|
||||
合计 <label class="text-red-dark">{{ footerSummary?.total }}</label> 项,收入 <label
|
||||
class="text-red-dark font-weight-bold">{{
|
||||
footerSummary?.income | currency
|
||||
}}</label>,支出 <label class="text-red-dark font-weight-bold">{{
|
||||
footerSummary?.spending | currency }}</label>
|
||||
</div>
|
||||
</div>
|
||||
</nz-card>
|
||||
|
||||
<nz-modal [(nzVisible)]="showBillDetail" nzTitle="账户明细" [nzFooter]="null" (nzOnCancel)="handleCancel()" nzWidth="700px">
|
||||
<div *nzModalContent>
|
||||
<div class="mb-sm">
|
||||
<span class="mr-xxl text-sm font-weight-bold"><label>网络货运人:</label>{{detailRecord?.ltdName}}</span>
|
||||
<span class="text-sm font-weight-bold"><label>返佣总额(元):</label>{{detailRecord?.totalRebate |currency: ' '}}</span>
|
||||
<span class="mr-xxl text-sm font-weight-bold"><label>网络货运人:</label>{{ detailRecord?.ltdName }}</span>
|
||||
<span class="text-sm font-weight-bold"><label>返佣总额(元):</label>{{ detailRecord?.totalRebate | currency: ' ' }}</span>
|
||||
</div>
|
||||
<st #st [data]="billDetailList " [columns]="billDetailColumns" [res]="{ reName: { list: 'data' } }"
|
||||
[req]="{ method: 'POST', allInBody: true, params:billDetailReqParams}" [page]="{show:false}">
|
||||
<st
|
||||
#st
|
||||
[data]="billDetailList"
|
||||
[columns]="billDetailColumns"
|
||||
[res]="{ reName: { list: 'data' } }"
|
||||
[req]="{ method: 'POST', allInBody: true, params: billDetailReqParams }"
|
||||
[page]="{ show: false }"
|
||||
>
|
||||
<ng-template st-row="month" let-item>
|
||||
<div>
|
||||
<span>{{item?.year }}年</span>
|
||||
<span>{{item?.month }}月</span>
|
||||
<span>{{ item?.year }}年</span>
|
||||
<span>{{ item?.month }}月</span>
|
||||
</div>
|
||||
</ng-template>
|
||||
<ng-template st-row="profitAmountSum" let-item>
|
||||
<div>{{item?.profitAmountSum |currency :' '}}</div>
|
||||
<div>{{ item?.profitAmountSum | currency: ' ' }}</div>
|
||||
</ng-template>
|
||||
|
||||
</st>
|
||||
</div>
|
||||
</nz-modal>
|
||||
<nz-modal [(nzVisible)]="showBillDetailB" nzTitle="调整待入账金额记录" [nzFooter]="null" (nzOnCancel)="handleCancelB()" nzWidth="900px">
|
||||
<div *nzModalContent>
|
||||
<div class="mb-sm">
|
||||
<span class="mr-xxl text-sm font-weight-bold"><label>网络货运人:</label>{{ changeRecordB?.ltdName }}</span>
|
||||
<span class="text-sm font-weight-bold"><label>调整金额(元):</label>{{ changeRecordB?.changeAmount | currency: ' ' }}</span>
|
||||
</div>
|
||||
<st
|
||||
#stB
|
||||
[scroll]="{x: '700px'}"
|
||||
[data]="billDetailListB"
|
||||
[columns]="billDetailColumnsB"
|
||||
[res]="{ reName: { list: 'data' } }"
|
||||
[req]="{ method: 'POST', allInBody: true, params: billDetailReqParams }"
|
||||
[page]="{ show: false }"
|
||||
>
|
||||
<ng-template st-row="changeAmount" let-item>
|
||||
<div> {{item.changeAmount | currency}}</div>
|
||||
</ng-template>
|
||||
<ng-template st-row="createUserName" let-item>
|
||||
<div>{{ item?.createUserName ? item?.createUserName : '--'}}/{{item?.createUserPhone ? item?.createUserPhone : '--'}}</div>
|
||||
</ng-template>
|
||||
</st>
|
||||
</div>
|
||||
</nz-modal>
|
||||
<nz-modal [(nzVisible)]="changeAccount" nzTitle="账户明细" [nzFooter]="nzModalFooter" (nzOnCancel)="handleCancelA()" nzWidth="600px">
|
||||
<div *nzModalContent>
|
||||
<div style="display: flex; justify-content: center; align-items: center;font-weight: 700; font-size: 16px; padding: 10px 0;"><label>网络货运人:</label>{{ changeRecord?.ltdName }}</div>
|
||||
<div style="display: flex; justify-content: center; align-items: center;font-weight: 700; font-size: 16px; padding: 10px 0;"><label>待入账金额(元):</label>{{ changeRecord?.waitRecordedAmount | currency }}</div>
|
||||
<sf #sfView [schema]="schemaView" [ui]="uiView" [compact]="true" [button]="'none'">
|
||||
<ng-template sf-template="smsVerifyCode" let-me let-ui="uiView" let-schema="schemaView">
|
||||
<div style="display: flex;">
|
||||
<div [style.background-color]="addd ? '#ff4d4f' : '#ccc'" style="display: flex; justify-content: center; align-items: center;width: 30px; height: 30px; background-color: #ccc;margin: 0 10px;font-size: 14px;" (click)="add(changeAmount)">+</div>
|
||||
<div style="display: flex; justify-content: center; align-items: center;width: 30px; height: 30px; background-color: #ccc;margin: 0 10px;font-size: 14px;" [style.background-color]="!addd ? '#ff4d4f' : '#ccc'" (click)="deletes(changeAmount)">-</div>
|
||||
<nz-input-number style="width: 50%;height: 32px; border-radius: 4px 0 0 4px;" nzPlaceHolder="请输入金额" [(ngModel)]="changeAmount" [nzMin]="1" [nzMax]="99999999" [nzStep]="1"></nz-input-number>
|
||||
<span style="margin: 10px ;">元</span>
|
||||
</div>
|
||||
</ng-template>
|
||||
</sf>
|
||||
</div>
|
||||
<ng-template #nzModalFooter>
|
||||
<button nz-button nzType="primary" (click)="handleCancel()">取消</button>
|
||||
<button nz-button nzType="default" (click)="handleOK()">确定</button>
|
||||
</ng-template>
|
||||
</nz-modal>
|
||||
|
||||
@ -0,0 +1,6 @@
|
||||
:host::ng-deep {
|
||||
|
||||
.file-col {
|
||||
background-color: red;
|
||||
}
|
||||
}
|
||||
@ -3,11 +3,13 @@ import { ActivatedRoute, Router } from '@angular/router';
|
||||
import { STColumn, STComponent } from '@delon/abc/st';
|
||||
import { SFComponent, SFDateWidgetSchema, SFSchema, SFUISchema, Widget } from '@delon/form';
|
||||
import { ModalHelper, _HttpClient } from '@delon/theme';
|
||||
import { NzModalService } from 'ng-zorro-antd/modal';
|
||||
import { AccountManagemantService } from '../../services/account-managemant.service';
|
||||
|
||||
@Component({
|
||||
selector: 'app-partner-account-management-recorded-detail',
|
||||
templateUrl: './recorded-detail.component.html',
|
||||
styleUrls: ['./recorded-detail.component.less'],
|
||||
templateUrl: './recorded-detail.component.html'
|
||||
})
|
||||
export class PartnerAccountManagementRecordedDetailComponent implements OnInit {
|
||||
summaryObj: any = {
|
||||
@ -18,34 +20,42 @@ export class PartnerAccountManagementRecordedDetailComponent implements OnInit {
|
||||
ltdName: '',
|
||||
taxno: ''
|
||||
};
|
||||
@ViewChild('sfView', { static: false }) sfView!: SFComponent;
|
||||
schemaView!: SFSchema;
|
||||
uiView: SFUISchema = {};
|
||||
|
||||
footerSummary = {
|
||||
total: 0,
|
||||
income: 0,
|
||||
spending: 0
|
||||
}
|
||||
};
|
||||
|
||||
detailRecord: any = {};
|
||||
changeRecord: any = {};
|
||||
changeRecordB: any = {};
|
||||
|
||||
url = `/user`;
|
||||
schema: SFSchema = {};
|
||||
ui!: SFUISchema;
|
||||
@ViewChild('st') private readonly st!: STComponent;
|
||||
@ViewChild('stB') private readonly stB!: STComponent;
|
||||
@ViewChild('sf') private readonly sf!: SFComponent;
|
||||
|
||||
|
||||
columns: STColumn[] = [];
|
||||
billDetailColumns: STColumn[] = [];
|
||||
billDetailColumnsB: STColumn[] = [];
|
||||
showBillDetail = false;
|
||||
changeAccount = false;
|
||||
showBillDetailB = false;
|
||||
addd = false;
|
||||
billDetailList = [];
|
||||
billDetailListB = [];
|
||||
roleId = '';
|
||||
|
||||
constructor(public service: AccountManagemantService, public router: Router, public ar: ActivatedRoute) {
|
||||
changeAmount: number = 0;
|
||||
constructor(public service: AccountManagemantService, public router: Router, public ar: ActivatedRoute, private nzModalService: NzModalService,) {
|
||||
this.roleId = this.ar.snapshot.params.id;
|
||||
|
||||
}
|
||||
|
||||
|
||||
get reqParams() {
|
||||
return { ...this.sf?.value, partnerId: this.roleId };
|
||||
}
|
||||
@ -63,45 +73,60 @@ export class PartnerAccountManagementRecordedDetailComponent implements OnInit {
|
||||
this.schema = {
|
||||
properties: {
|
||||
ltdName: {
|
||||
title: '网络货运人',
|
||||
type: 'string',
|
||||
title: '网络货运人',
|
||||
ui: {
|
||||
placeholder: '请输入',
|
||||
},
|
||||
},
|
||||
|
||||
// allowClear: true,
|
||||
// asyncData: () => this.service.getNetworkFreightForwarder(),
|
||||
// visibleIf: {
|
||||
// expand: (value: boolean) => value
|
||||
// }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
this.ui = { '*': { spanLabelFixed: 120, grid: { span: 8, gutter: 4 } }, };
|
||||
};
|
||||
this.ui = { '*': { spanLabelFixed: 120, grid: { span: 8, gutter: 4 } } };
|
||||
}
|
||||
|
||||
/**
|
||||
* 初始化数据列表
|
||||
*/
|
||||
* 初始化数据列表
|
||||
*/
|
||||
initST() {
|
||||
this.columns = [
|
||||
{ title: '网络货运人', index: 'ltdName', className: 'text-center', width: 200 },
|
||||
{ title: '银行类型', render: 'bankTypeLabel', className: 'text-center', width: 150 },
|
||||
{ title: '虚拟账户', render: 'fictitiousAccount', className: 'text-center', width: 200 },
|
||||
{ title: '返佣总额(元)', index: 'totalRebate', className: 'text-center', width: 180, type: 'currency' },
|
||||
{ title: '已入账金额(元)', index: 'recordedAmount', className: 'text-center', width: 180, type: 'currency' },
|
||||
{ title: '代缴个税(元)', index: 'taxPersonalSum', className: 'text-center', width: 180, type: 'currency' },
|
||||
{ title: '待入账金额(元)', index: 'waitRecordedAmount', className: 'text-right', width: 180, type: 'currency' },
|
||||
{ title: '银行类型', index: 'bankTypeName', className: 'text-center', width: 150 },
|
||||
{ title: '虚拟账户', index: 'virtualAccount', className: 'text-center', width: 200 },
|
||||
{ title: '返佣总额(元)', render: 'totalRebate', className: 'text-center', width: 180 },
|
||||
{ title: '已入账金额(元)', render: 'recordedAmount', className: 'text-center', width: 180 },
|
||||
{ title: '已代缴个税(元)', render: 'recordedTaxPersonal', className: 'text-center', width: 180 },
|
||||
{ title: '入账中金额(元)', render: 'ongoingRecordedAmount', className: 'text-center', width: 180 },
|
||||
{ title: '代缴中个税(元)', render: 'waitRecordedTaxPersonal', className: 'text-center', width: 180 },
|
||||
{ title: '调整金额(元)', render: 'changeAmount', className: 'text-center', width: 180 },
|
||||
{ title: '待入账金额(元)', render: 'waitRecordedAmount', className: 'text-right', width: 180 },
|
||||
{
|
||||
title: '操作', className: 'text-center', width: 300,
|
||||
title: '操作',
|
||||
className: 'text-center',
|
||||
width: 150,
|
||||
fixed: 'right',
|
||||
buttons: [
|
||||
{
|
||||
text: '查看入账记录',
|
||||
acl: { ability: ['AN-RECORDED-DETAIL-viewRecord'] },
|
||||
click: (_record) => this.viewBookedRecord(_record)
|
||||
click: _record => this.viewBookedRecord(_record)
|
||||
},
|
||||
{
|
||||
text: '查看账单明细',
|
||||
acl: { ability: ['AN-RECORDED-DETAIL-viewBill'] },
|
||||
click: (_record) => this.viewAccountDetail(_record)
|
||||
click: _record => this.viewAccountDetail(_record)
|
||||
},
|
||||
{
|
||||
text: '调整待入账金额',
|
||||
acl: { ability: [''] },
|
||||
click: _record => this.changeStalyAccount(_record)
|
||||
}
|
||||
]
|
||||
},
|
||||
}
|
||||
];
|
||||
}
|
||||
|
||||
@ -110,26 +135,69 @@ export class PartnerAccountManagementRecordedDetailComponent implements OnInit {
|
||||
{ title: '账单月份', render: 'month', className: 'text-center', width: '40%' },
|
||||
{ title: '返佣金额(元)', render: 'profitAmountSum', className: 'text-center', width: '40%' },
|
||||
{
|
||||
title: '操作', className: 'text-center', width: '20%', buttons: [
|
||||
title: '操作',
|
||||
className: 'text-center',
|
||||
width: '20%',
|
||||
buttons: [
|
||||
{
|
||||
text: '订单明细',
|
||||
click: (_record) => window.open(location.origin + `#/partner/rebate/record?ltdId=${_record?.ltdId}`)
|
||||
click: _record => window.open(location.origin + `#/partner/rebate/record?ltdId=${_record?.ltdId}`)
|
||||
}
|
||||
]
|
||||
},
|
||||
]
|
||||
}
|
||||
];
|
||||
}
|
||||
initBillDetailSTB() {
|
||||
this.billDetailColumnsB = [
|
||||
{ title: '调整金额(元)', render: 'changeAmount', className: 'text-center', width: '150px' },
|
||||
{ title: '备注', index: 'remark', className: 'text-center', width: '200px' },
|
||||
{ title: '操作时间', index: 'modifyTime', className: 'text-center', width: '200px' },
|
||||
{ title: '操作人', index: 'createUserName', className: 'text-center', width: '150px' },
|
||||
];
|
||||
}
|
||||
initSFNew() {
|
||||
this.schemaView = {
|
||||
properties: {
|
||||
smsVerifyCode: {
|
||||
title: '调整金额',
|
||||
type: 'string',
|
||||
description: '(“+”表示增加待入账金额,“-”表示减少待入账金额 )',
|
||||
ui: {
|
||||
widget: 'custom',
|
||||
placeholder: '请输入金额',
|
||||
|
||||
errors: {
|
||||
},
|
||||
},
|
||||
},
|
||||
remark: {
|
||||
title: '备注',
|
||||
type: 'string',
|
||||
maxLength: 50,
|
||||
ui: {
|
||||
placeholder: '请输入备注',
|
||||
widget: 'textarea',
|
||||
autosize: { minRows: 3, maxRows: 6 }
|
||||
}
|
||||
}
|
||||
},
|
||||
required: ['smsVerifyCode', 'remark'],
|
||||
};
|
||||
this.uiView = {
|
||||
'*': {
|
||||
spanLabelFixed: 100,
|
||||
grid: { span: 24 },
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
resetSF() {
|
||||
this.sf.reset();
|
||||
setTimeout(() => {
|
||||
this.st.reset();
|
||||
})
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
|
||||
search() {
|
||||
this.st.load(1);
|
||||
}
|
||||
@ -142,16 +210,30 @@ export class PartnerAccountManagementRecordedDetailComponent implements OnInit {
|
||||
if (res) {
|
||||
this.billDetailList = res;
|
||||
}
|
||||
})
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取入账金额记录
|
||||
*/
|
||||
getBillDetailB(ltdId: string) {
|
||||
let params = {
|
||||
ltdId: ltdId,
|
||||
partnerId: this.roleId ,
|
||||
}
|
||||
this.service.request(this.service.$api_get_getIncomeChangePage, params).subscribe(res => {
|
||||
if (res) {
|
||||
this.billDetailListB = res.records;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
export() { }
|
||||
export() {}
|
||||
|
||||
/**
|
||||
* 查看入账记录
|
||||
* @param record 当前行
|
||||
*/
|
||||
* 查看入账记录
|
||||
* @param record 当前行
|
||||
*/
|
||||
viewBookedRecord(record: any) {
|
||||
window.open(location.origin + `#/partner/recorded/record?ltdId=${record?.ltdId}`);
|
||||
}
|
||||
@ -167,22 +249,106 @@ export class PartnerAccountManagementRecordedDetailComponent implements OnInit {
|
||||
this.detailRecord = record;
|
||||
this.getBillDetail(record?.ltdId);
|
||||
}
|
||||
/**
|
||||
* 查看调整金额
|
||||
* @param record 当前行
|
||||
*/
|
||||
changeB(record: any) {
|
||||
// this.billDetailColumns = [];
|
||||
this.showBillDetailB = true;
|
||||
this.initBillDetailSTB();
|
||||
this.changeRecordB = record;
|
||||
this.getBillDetailB(record?.ltdId);
|
||||
}
|
||||
/**
|
||||
* 调整待入账金额
|
||||
* @param record 当前行
|
||||
*/
|
||||
changeStalyAccount(record: any) {
|
||||
|
||||
this.changeRecord = record;
|
||||
let params:any = {
|
||||
partnerId: this.roleId ,
|
||||
ltdId: record.ltdId,
|
||||
ltdName: record.ltdName,
|
||||
}
|
||||
this.service.request(this.service.$api_get_getPartnerLitAmountSummary, params).subscribe(res => {
|
||||
if (res) {
|
||||
this.changeAmount = Math.abs(res.waitRecordedAmount)
|
||||
if(res.waitRecordedAmount > 0) {
|
||||
this.addd = true;
|
||||
} else {
|
||||
this.addd = false;
|
||||
}
|
||||
this.changeAccount = true;
|
||||
this.initSFNew();
|
||||
}
|
||||
});
|
||||
// this.getBillDetail(record?.ltdId);
|
||||
}
|
||||
|
||||
getInvoiceSummary() {
|
||||
this.service.request(this.service.$api_get_invoice_summary, { partnerId: this.roleId }).subscribe(res => {
|
||||
if (res) {
|
||||
this.summaryObj = res;
|
||||
}
|
||||
})
|
||||
});
|
||||
}
|
||||
|
||||
handleCancel() {
|
||||
this.showBillDetail = false;
|
||||
this.detailRecord = {};
|
||||
|
||||
}
|
||||
handleCancelA() {
|
||||
this.changeAccount = false;
|
||||
this.changeRecord = {};
|
||||
}
|
||||
handleCancelB() {
|
||||
this.showBillDetailB = false;
|
||||
this.changeRecordB = {};
|
||||
}
|
||||
goBack() {
|
||||
window.history.go(-1);
|
||||
}
|
||||
deletes(value: number) {
|
||||
this.addd = false
|
||||
}
|
||||
add(value: number) {
|
||||
this.addd = true
|
||||
}
|
||||
handleOK() {
|
||||
console.log(this.sfView.value);
|
||||
|
||||
if(!this.sfView.value?.remark || !this.changeAmount) {
|
||||
this.service.msgSrv.error('请填写必填项!')
|
||||
return
|
||||
}
|
||||
console.log(this.addd);
|
||||
|
||||
let params:any = {
|
||||
remark: this.sfView.value?.remark,
|
||||
partnerId: this.roleId ,
|
||||
ltdId: this.changeRecord.ltdId
|
||||
}
|
||||
if(!this.addd) {
|
||||
params.changeAmount = -this.changeAmount
|
||||
} else {
|
||||
params.changeAmount = this.changeAmount
|
||||
}
|
||||
console.log(params);
|
||||
this.nzModalService.warning({
|
||||
nzTitle: `确定调整“${params.changeAmount > 0 ? '+' + params.changeAmount : params.changeAmount}元”的待入账金额吗?`,
|
||||
nzOnOk: () => {
|
||||
this.service.request(this.service.$api_get_saveIncomeChange, params).subscribe((res) => {
|
||||
if(res) {
|
||||
console.log(res);
|
||||
this.service.msgSrv.success('修改成功!')
|
||||
this.changeAccount = false;
|
||||
this.st.load()
|
||||
}
|
||||
})
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,10 +1,20 @@
|
||||
/*
|
||||
* @Description :
|
||||
* @Version : 1.0
|
||||
* @Author : Shiming
|
||||
* @Date : 2022-04-21 13:49:22
|
||||
* @LastEditors : Shiming
|
||||
* @LastEditTime : 2022-05-12 14:44:17
|
||||
* @FilePath : \\tms-obc-web\\src\\app\\routes\\partner\\account-management\\services\\account-managemant.service.ts
|
||||
* Copyright (C) 2022 huzhenhong. All rights reserved.
|
||||
*/
|
||||
import { Injectable, Injector } from '@angular/core';
|
||||
import { BaseService } from '@shared';
|
||||
import { BaseService, ShipperBaseService } from '@shared';
|
||||
|
||||
@Injectable({
|
||||
providedIn: 'root'
|
||||
})
|
||||
export class AccountManagemantService extends BaseService {
|
||||
export class AccountManagemantService extends ShipperBaseService {
|
||||
|
||||
$api_get_account_management_page = `/api/bpc/accountBalancePartner/getPartnerAccountBalanceByOperator`; // 账户管理
|
||||
$api_get_virtual_detail_page = `/api/bpc/accountBalancePartner/getPartnerAccountBalanceInfoByOperator`;//虚拟账户明细
|
||||
@ -15,6 +25,9 @@ export class AccountManagemantService extends BaseService {
|
||||
$api_get_bill_detail = `/api/bpc/partnerIncomeDetail/findPartnerWaitIncomeByOperator`; // 查看账单明细
|
||||
$api_get_invoice_summary = `/api/bpc/partnerInvoiceEntry/oprationEntrySummary`; // 入账明细汇总
|
||||
$api_get_invoice_detail_page = `/api/bpc/partnerInvoiceEntry/oprationEntryDetail`; // 待入账明细列表
|
||||
$api_get_getPartnerLitAmountSummary = `/api/bpc/partnerInvoiceEntry/getPartnerLitAmountSummary`; // 查询合伙货运人相关金额
|
||||
$api_get_saveIncomeChange = `/api/bpc/partnerIncomeChange/saveIncomeChange`; // 调整金额
|
||||
$api_get_getIncomeChangePage = `/api/bpc/partnerIncomeChange/getIncomeChangePage`; // 调整金额
|
||||
|
||||
constructor(public injector: Injector) {
|
||||
super(injector)
|
||||
|
||||
@ -42,27 +42,34 @@ export class ParterChannelSalesEditComponent implements OnInit {
|
||||
|
||||
ngOnInit(): void {
|
||||
this.initSF();
|
||||
console.log(this.sts);
|
||||
|
||||
if (!this.sts) {
|
||||
this.service.request(this.service.$api_getChannelSalesInfo, { id: this.i?.id }).subscribe(res => {
|
||||
const List: any = [];
|
||||
const List3: any = [];
|
||||
if (res) {
|
||||
let value1 = Object.assign({}, res);
|
||||
delete value1.employeeVO;
|
||||
let value = res.employeeVO;
|
||||
List.push({ label: value.empName + '/' + value.empNo, value: value.empNo });
|
||||
setTimeout(() => {
|
||||
if (this.sf) {
|
||||
console.log(this.sf.getProperty('/employeeVO')!.schema);
|
||||
|
||||
this.sf.getProperty('/employeeVO')!.schema.enum = List;
|
||||
this.sf.getProperty('/employeeVO')!.widget.reset(List);
|
||||
}
|
||||
if (value.empNo) {
|
||||
this.sf.setValue('/employeeVO', value.empNo);
|
||||
this.currentOAItem = value;
|
||||
this.sf.setValue('/phoneNumber', res.telephone);
|
||||
}
|
||||
})
|
||||
res.roleInfoVOList.forEach((element: any) => {
|
||||
List3.push(element.id);
|
||||
});
|
||||
setTimeout(() => {
|
||||
if (this.sf) {
|
||||
this.sf.getProperty('/employeeVO')!.schema.enum = List;
|
||||
this.sf.getProperty('/employeeVO')!.widget.reset(List);
|
||||
}
|
||||
if (value.empNo) {
|
||||
this.sf.setValue('/employeeVO', value.empNo);
|
||||
console.log(List3);
|
||||
|
||||
this.sf.setValue('/roleIds', List3);
|
||||
this.currentOAItem = value;
|
||||
this.sf.setValue('/phoneNumber', res.telephone);
|
||||
}
|
||||
});
|
||||
this.record = value1;
|
||||
}
|
||||
});
|
||||
@ -88,6 +95,7 @@ export class ParterChannelSalesEditComponent implements OnInit {
|
||||
title: '手机号',
|
||||
type: 'string',
|
||||
maxLength: 11,
|
||||
readOnly: !this.sts,
|
||||
ui: {
|
||||
placeholder: '请输入'
|
||||
}
|
||||
@ -114,6 +122,7 @@ export class ParterChannelSalesEditComponent implements OnInit {
|
||||
title: '关联OA员工',
|
||||
type: 'string',
|
||||
maxLength: 30,
|
||||
readOnly: !this.sts,
|
||||
ui: {
|
||||
widget: 'select',
|
||||
// serverSearch: true,
|
||||
@ -203,14 +212,14 @@ export class ParterChannelSalesEditComponent implements OnInit {
|
||||
close() {
|
||||
this.modalRef.destroy();
|
||||
}
|
||||
save() {
|
||||
save() {
|
||||
this.sf.validator({ emitError: true });
|
||||
|
||||
|
||||
if (!this.sf.valid) return;
|
||||
let params: any= {
|
||||
...this.sf?.value,
|
||||
}
|
||||
delete params.telephone
|
||||
let params: any = {
|
||||
...this.sf?.value
|
||||
};
|
||||
delete params.telephone;
|
||||
this.service.request(this.service.$api_save, { ...params, employeeVO: this.currentOAItem }).subscribe(res => {
|
||||
if (res) {
|
||||
this.service.msgSrv.success(res.msg);
|
||||
|
||||
@ -133,7 +133,13 @@ export class ParterChannelSalesListComponent implements OnInit {
|
||||
acl: { ability: ['channelSales-frozen'] },
|
||||
iif: (item) => {return item.stateLocked == false},
|
||||
click: (_record, _modal, _instance) => this.stop(_record),
|
||||
}
|
||||
},
|
||||
{
|
||||
text: '启用',
|
||||
acl: { ability: ['channelSales-open'] },
|
||||
iif: (item) => {return item.stateLocked == true},
|
||||
click: (_record, _modal, _instance) => this.open(_record),
|
||||
},
|
||||
]
|
||||
}
|
||||
];
|
||||
@ -185,6 +191,24 @@ export class ParterChannelSalesListComponent implements OnInit {
|
||||
});
|
||||
}
|
||||
}
|
||||
open(record: STData) {
|
||||
if (record.stateLocked) {
|
||||
const params = {
|
||||
id: record.id
|
||||
}
|
||||
this.modalService.confirm({
|
||||
nzTitle: '<i>启用确认</i>',
|
||||
nzContent: `<b>确定启用该账号吗?</br>`,
|
||||
nzOnOk: () =>
|
||||
this.service.request(this.service.$api_activeChannelSales, params).subscribe(res => {
|
||||
if (res) {
|
||||
this.service.msgSrv.success('启用成功!');
|
||||
this.st.reload();
|
||||
}
|
||||
})
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 重置表单
|
||||
|
||||
@ -21,6 +21,8 @@ export class ChannelSalesService extends BaseService {
|
||||
$api_getChannelSalesInfo = '/api/mdc/channelSalesManagement/getChannelSalesInfo';
|
||||
// 冻结渠道销售
|
||||
$api_frozenChannelSales = '/api/mdc/channelSalesManagement/frozenChannelSales';
|
||||
// 激活渠道销售
|
||||
$api_activeChannelSales = '/api/mdc/channelSalesManagement/activeChannelSales';
|
||||
|
||||
|
||||
constructor(public injector: Injector) {
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
* @Author : Shiming
|
||||
* @Date : 2022-04-28 20:27:22
|
||||
* @LastEditors : Shiming
|
||||
* @LastEditTime : 2022-05-07 18:04:15
|
||||
* @LastEditTime : 2022-05-11 16:04:16
|
||||
* @FilePath : \\tms-obc-web\\src\\app\\routes\\partner\\level-config\\components\\edit\\edit.component.ts
|
||||
* Copyright (C) 2022 huzhenhong. All rights reserved.
|
||||
*/
|
||||
@ -49,6 +49,7 @@ export class ParterLevelConfigEditComponent implements OnInit {
|
||||
sortId: {
|
||||
title: '排序',
|
||||
minimum: 0,
|
||||
maximum: 999999,
|
||||
type:"number",
|
||||
ui: {
|
||||
change: (item: any) => {
|
||||
|
||||
@ -1,3 +1,14 @@
|
||||
<!--
|
||||
* @Description :
|
||||
* @Version : 1.0
|
||||
* @Author : Shiming
|
||||
* @Date : 2022-04-29 17:28:23
|
||||
* @LastEditors : Shiming
|
||||
* @LastEditTime : 2022-05-12 16:55:43
|
||||
* @FilePath : \\tms-obc-web\\src\\app\\routes\\partner\\level-config\\components\\list\\list.component.html
|
||||
* Copyright (C) 2022 huzhenhong. All rights reserved.
|
||||
-->
|
||||
<page-header-wrapper [title]="'等级配置'"> </page-header-wrapper>
|
||||
<nz-card>
|
||||
<!-- 搜索区 -->
|
||||
<sf
|
||||
@ -16,6 +27,7 @@
|
||||
<st
|
||||
#st
|
||||
[data]="service.$api_getList"
|
||||
[scroll]="{x: '1200px'}"
|
||||
[columns]="columns"
|
||||
[req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, params: reqParams }"
|
||||
[res]="{ reName: { list: 'data.records', total: 'data.total' } }"
|
||||
|
||||
@ -69,28 +69,34 @@ export class ParterLevelConfigListComponent implements OnInit {
|
||||
this.columns = [
|
||||
{
|
||||
title: '等级姓名',
|
||||
index: 'gradeName'
|
||||
index: 'gradeName',
|
||||
width: 200
|
||||
},
|
||||
{
|
||||
title: '备注',
|
||||
index: 'remark'
|
||||
index: 'remark',
|
||||
width: 200
|
||||
},
|
||||
{
|
||||
title: '创建时间',
|
||||
index: 'createTime'
|
||||
index: 'createTime',
|
||||
width: 200
|
||||
},
|
||||
|
||||
{
|
||||
title: '启用时间',
|
||||
index: 'enableTime'
|
||||
index: 'enableTime',
|
||||
width: 200
|
||||
},
|
||||
{
|
||||
title: '排序',
|
||||
index: 'sortId'
|
||||
index: 'sortId',
|
||||
width: 200
|
||||
},
|
||||
{
|
||||
title: '状态',
|
||||
index: 'stateLocked',
|
||||
width: 200,
|
||||
format: (item: any) => {
|
||||
return item.stateLocked ? '禁用' : '启用';
|
||||
}
|
||||
@ -98,6 +104,8 @@ export class ParterLevelConfigListComponent implements OnInit {
|
||||
{
|
||||
title: '操作',
|
||||
className: 'text-center',
|
||||
width: 120,
|
||||
fixed: 'right',
|
||||
buttons: [
|
||||
{
|
||||
text: '编辑',
|
||||
@ -162,7 +170,7 @@ export class ParterLevelConfigListComponent implements OnInit {
|
||||
restart(item: any) {
|
||||
this.modalService.confirm({
|
||||
nzTitle: '<i>启用确认</i>',
|
||||
nzContent: `<b>确定启用该账号吗?</br>`,
|
||||
nzContent: `<b>确定启用该等级吗?</br>`,
|
||||
nzOnOk: () =>
|
||||
this.service.request(this.service.$api_updatePartnerGradeConfig, { id: item.id }).subscribe(res => {
|
||||
if (res) {
|
||||
@ -175,7 +183,7 @@ export class ParterLevelConfigListComponent implements OnInit {
|
||||
stop(item: any) {
|
||||
this.modalService.confirm({
|
||||
nzTitle: '<i>禁用确认</i>',
|
||||
nzContent: `<b>确定禁用该账号吗?</br>`,
|
||||
nzContent: `<b>确定禁用该等级吗?</br>`,
|
||||
nzOnOk: () =>
|
||||
this.service.request(this.service.$api_updatePartnerGradeConfig, { id: item.id }).subscribe(res => {
|
||||
if (res) {
|
||||
|
||||
@ -569,12 +569,14 @@ export class AddEtpPartnerComponent {
|
||||
cityCodesList: {
|
||||
type: 'string',
|
||||
title: '所属城市',
|
||||
maxMultipleCount: 3,
|
||||
ui: {
|
||||
widget: 'tree-select',
|
||||
grid: { xxl: 13, xl: 18, lg: 24, md: 24 },
|
||||
placeholder: '请选择城市(最多3个)',
|
||||
checkable: true,
|
||||
class: 'city-tree-select',
|
||||
maxMultipleCount: 3,
|
||||
asyncData: () =>
|
||||
this.getRegionDetailByCode('').pipe(
|
||||
map((res: any) =>
|
||||
|
||||
@ -299,9 +299,12 @@ export class AddPersonalPartnerComponent {
|
||||
_addressTitle: { title: '', type: 'string', ui: { widget: 'custom' } },
|
||||
cityCodesList: {
|
||||
type: 'string',
|
||||
title: '所属城市',
|
||||
title: '所属城市7',
|
||||
maxMultipleCount: 3,
|
||||
ui: {
|
||||
widget: 'tree-select',
|
||||
maxMultipleCount: 3,
|
||||
maxTagCount: 3,
|
||||
grid: { xxl: 13, xl: 18, lg: 24, md: 24 },
|
||||
placeholder: '请选择城市(最多3个)',
|
||||
checkable: true,
|
||||
@ -314,9 +317,9 @@ export class AddPersonalPartnerComponent {
|
||||
)
|
||||
),
|
||||
expandChange: ({ node }: { node: NzTreeNode }) =>
|
||||
this.getRegionDetailByCode(node.key).pipe(
|
||||
map((res: any) => res.map((item: any) => ({ ...item, title: item.name, key: item.regionCode, isLeaf: true })))
|
||||
)
|
||||
this.getRegionDetailByCode(node.key).pipe(
|
||||
map((res: any) => res.map((item: any) => ({ ...item, title: item.name, key: item.regionCode, isLeaf: true })))
|
||||
)
|
||||
} as SFTreeSelectWidgetSchema
|
||||
},
|
||||
// 渠道销售
|
||||
@ -340,30 +343,30 @@ export class AddPersonalPartnerComponent {
|
||||
}
|
||||
|
||||
private setInfo(info: any) {
|
||||
this.sf.setValue('/adminUserInfo/name', info?.name);
|
||||
this.sf.setValue('/adminUserInfo/certificatePhotoFront', info?.certificatePhotoFront);
|
||||
this.sf.setValue('/adminUserInfo/certificatePhotoFrontWatermark', [
|
||||
{
|
||||
uid: -1,
|
||||
name: '文件',
|
||||
status: 'done',
|
||||
url: info?.certificatePhotoFrontWatermark,
|
||||
response: info?.certificatePhotoFrontWatermark
|
||||
}
|
||||
]);
|
||||
this.sf.setValue('/adminUserInfo/certificatePhotoBack', info?.certificatePhotoBack);
|
||||
this.sf.setValue('/adminUserInfo/certificatePhotoBackWatermark', [
|
||||
{
|
||||
uid: -1,
|
||||
name: '文件',
|
||||
status: 'done',
|
||||
url: info?.certificatePhotoBackWatermark,
|
||||
response: info?.certificatePhotoBackWatermark
|
||||
}
|
||||
]);
|
||||
this.sf.setValue('/adminUserInfo/certificateNumber', info?.certificateNumber);
|
||||
this.sf.setValue('/adminUserInfo/validStartTime', info?.validStartTime);
|
||||
this.sf.setValue('/adminUserInfo/validEndTime', info?.validEndTime ? info?.validEndTime: null);
|
||||
this.sf.setValue('/adminUserInfo/_isLoingDate', info?.validEndTime ? false: true);
|
||||
this.sf.setValue('/adminUserInfo/name', info?.name);
|
||||
this.sf.setValue('/adminUserInfo/certificatePhotoFront', info?.certificatePhotoFront);
|
||||
this.sf.setValue('/adminUserInfo/certificatePhotoFrontWatermark', [
|
||||
{
|
||||
uid: -1,
|
||||
name: '文件',
|
||||
status: 'done',
|
||||
url: info?.certificatePhotoFrontWatermark,
|
||||
response: info?.certificatePhotoFrontWatermark
|
||||
}
|
||||
]);
|
||||
this.sf.setValue('/adminUserInfo/certificatePhotoBack', info?.certificatePhotoBack);
|
||||
this.sf.setValue('/adminUserInfo/certificatePhotoBackWatermark', [
|
||||
{
|
||||
uid: -1,
|
||||
name: '文件',
|
||||
status: 'done',
|
||||
url: info?.certificatePhotoBackWatermark,
|
||||
response: info?.certificatePhotoBackWatermark
|
||||
}
|
||||
]);
|
||||
this.sf.setValue('/adminUserInfo/certificateNumber', info?.certificateNumber);
|
||||
this.sf.setValue('/adminUserInfo/validStartTime', info?.validStartTime);
|
||||
this.sf.setValue('/adminUserInfo/validEndTime', info?.validEndTime ? info?.validEndTime : null);
|
||||
this.sf.setValue('/adminUserInfo/_isLoingDate', info?.validEndTime ? false : true);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,13 +1,49 @@
|
||||
<h2>转移客户数:{{changeST?.total}}</h2>
|
||||
<st #changeST [data]="service.$api_get_partner_change_list" [columns]="columns.changeColumn"
|
||||
[req]="{params:{id:id ,type:1}}" [loading]="service.http.loading" bordered size="small"
|
||||
[page]="{ show: false }" [scroll]="{ x: '750px' }">
|
||||
<!--
|
||||
* @Description :
|
||||
* @Version : 1.0
|
||||
* @Author : Shiming
|
||||
* @Date : 2022-04-28 20:27:08
|
||||
* @LastEditors : Shiming
|
||||
* @LastEditTime : 2022-05-11 14:44:15
|
||||
* @FilePath : \\tms-obc-web\\src\\app\\routes\\partner\\partner-list\\components\\channel-log-modal\\channel-log-modal.component.html
|
||||
* Copyright (C) 2022 huzhenhong. All rights reserved.
|
||||
-->
|
||||
<div class="bbod">
|
||||
<h2>转移客户数:{{ changeST?.list?.length }}</h2>
|
||||
<st
|
||||
#changeST
|
||||
[data]="service.$api_get_partner_change_list"
|
||||
[columns]="columns.changeColumn"
|
||||
[req]="{ params: { id: id, type: 1 } }"
|
||||
[res]="{ reName: { list: 'data' } }"
|
||||
[loading]="service.http.loading"
|
||||
bordered
|
||||
size="small"
|
||||
[page]="{ show: false }"
|
||||
[scroll]="{ x: '750px' }"
|
||||
>
|
||||
<ng-template st-row="crmStatus" let-item let-index="index" let-column="column">
|
||||
<div *ngIf="item.crmStatus == '0'">未发起</div>
|
||||
<div *ngIf="item.crmStatus == '10'">待审核</div>
|
||||
<div *ngIf="item.crmStatus == '20'">审核通过</div>
|
||||
<div *ngIf="item.crmStatus == '30'">驳回</div>
|
||||
</ng-template>
|
||||
</st>
|
||||
<h2>不转移客户数:{{noChangeST?.total}}</h2>
|
||||
<st #noChangeST [data]="service.$api_get_partner_change_list" [columns]="columns.beChangeColumn"
|
||||
[req]="{params:{id:id ,type:2}}" [res]="{reName: { list: 'data' }}"
|
||||
[loading]="service.http.loading" bordered size="small" [page]="{ show: false }" [scroll]="{ x: '750px' }">
|
||||
<h2>不转移客户数:{{ noChangeST?.list?.length }}</h2>
|
||||
<st
|
||||
#noChangeST
|
||||
[data]="service.$api_get_partner_change_list"
|
||||
[columns]="columns.beChangeColumn"
|
||||
[req]="{ params: { id: id, type: 2 } }"
|
||||
[res]="{ reName: { list: 'data' } }"
|
||||
[loading]="service.http.loading"
|
||||
bordered
|
||||
size="small"
|
||||
[page]="{ show: false }"
|
||||
[scroll]="{ x: '750px' }"
|
||||
>
|
||||
</st>
|
||||
<p>
|
||||
客户转移:客户跟着上级合伙人转移一并到新渠道销售下,会同步发起CRM《客户转移》流程;不转移的,客户会与上级合伙人解绑,修改成功后,修改时间也是合伙人与客户的结算结束时间,成为原来渠道销售的直客。
|
||||
</p>
|
||||
客户转移:客户跟着上级合伙人转移一并到新渠道销售下,会同步发起CRM《客户转移》流程;不转移的,客户会与上级合伙人解绑,修改成功后,修改时间也是合伙人与客户的结算结束时间,成为原来渠道销售的直客。
|
||||
</p>
|
||||
</div>
|
||||
|
||||
@ -0,0 +1,10 @@
|
||||
/* stylelint-disable-next-line CssSyntaxError */
|
||||
:host {
|
||||
::ng-deep {
|
||||
.bbod{
|
||||
height: 600px;
|
||||
overflow-y: hidden;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@ -1,32 +1,48 @@
|
||||
import { Component, OnInit } from '@angular/core';
|
||||
import { STColumn } from '@delon/abc/st';
|
||||
/*
|
||||
* @Description :
|
||||
* @Version : 1.0
|
||||
* @Author : Shiming
|
||||
* @Date : 2022-05-09 10:49:35
|
||||
* @LastEditors : Shiming
|
||||
* @LastEditTime : 2022-05-11 14:47:57
|
||||
* @FilePath : \\tms-obc-web\\src\\app\\routes\\partner\\partner-list\\components\\channel-log-modal\\channel-log-modal.component.ts
|
||||
* Copyright (C) 2022 huzhenhong. All rights reserved.
|
||||
*/
|
||||
import { Component, OnInit, ViewChild } from '@angular/core';
|
||||
import { STColumn, STComponent } from '@delon/abc/st';
|
||||
import { PartnerListService } from '../../services/partner-list.service';
|
||||
|
||||
@Component({
|
||||
selector: 'app-channel-log-modal',
|
||||
styleUrls: ['./channel-log-modal.component.less'],
|
||||
templateUrl: './channel-log-modal.component.html'
|
||||
})
|
||||
export class ChannelLogModalComponent implements OnInit {
|
||||
@ViewChild('changeST', { static: true }) changeST!: STComponent;
|
||||
@ViewChild('noChangeST', { static: true }) noChangeST!: STComponent;
|
||||
columns: { changeColumn: STColumn[]; beChangeColumn: STColumn[] } = this.initST();
|
||||
id = '';
|
||||
constructor(public service: PartnerListService) {}
|
||||
|
||||
ngOnInit(): void {}
|
||||
ngOnInit(): void {
|
||||
console.log(this.changeST);
|
||||
|
||||
}
|
||||
|
||||
private initST(): { changeColumn: STColumn[]; beChangeColumn: STColumn[] } {
|
||||
return {
|
||||
changeColumn: [
|
||||
{ title: '客户名称', index: 'payCode', width: 180 },
|
||||
{ title: '合伙人', index: 'ltdName', width: 160 },
|
||||
{ title: '渠道销售', index: 'payDate', className: 'text-center', width: 130 },
|
||||
{ title: 'CRM审核状态', index: 'payDate', width: 150 },
|
||||
{ title: '生效时间', index: 'payDate', className: 'text-center', width: 130 }
|
||||
{ title: '客户名称', index: 'enterpriseName', width: 180 },
|
||||
{ title: '合伙人', index: 'newPartnerName', width: 160 },
|
||||
{ title: '渠道销售', index: 'newChannelName', className: 'text-center', width: 130 },
|
||||
{ title: 'CRM审核状态', render: 'crmStatus', width: 150 },
|
||||
{ title: '生效时间', index: 'effectiveTime', className: 'text-center', width: 130 }
|
||||
],
|
||||
beChangeColumn: [
|
||||
{ title: '客户名称', index: 'payCode', width: 180 },
|
||||
{ title: '合伙人', index: 'ltdName', width: 160 },
|
||||
{ title: '渠道销售', index: 'payDate', className: 'text-center', width: 130 },
|
||||
{ title: '生效时间', index: 'payDate', className: 'text-center', width: 130 }
|
||||
{ title: '客户名称', index: 'enterpriseName', width: 180 },
|
||||
{ title: '合伙人', index: 'newPartnerName', width: 160 },
|
||||
{ title: '渠道销售', index: 'newChannelName', className: 'text-center', width: 130 },
|
||||
{ title: '生效时间', index: 'effectiveTime', className: 'text-center', width: 130 }
|
||||
]
|
||||
};
|
||||
}
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
* @Author : Shiming
|
||||
* @Date : 2022-04-29 17:28:23
|
||||
* @LastEditors : Shiming
|
||||
* @LastEditTime : 2022-05-09 11:33:34
|
||||
* @LastEditTime : 2022-05-10 15:33:15
|
||||
* @FilePath : \\tms-obc-web\\src\\app\\routes\\partner\\partner-list\\components\\index\\partner-list.component.html
|
||||
* Copyright (C) 2022 huzhenhong. All rights reserved.
|
||||
-->
|
||||
@ -61,6 +61,14 @@
|
||||
[scroll]="{ x: '1200px' }"
|
||||
[page]="{}"
|
||||
>
|
||||
<ng-template st-row="enterpriseName" let-item let-index="index">
|
||||
<div>
|
||||
{{item.partnerType ? item.enterpriseName || item.contactName : ''}}
|
||||
</div>
|
||||
<div *ngIf="item.partnerType == 1">
|
||||
管理员: {{item.contactName }}
|
||||
</div>
|
||||
</ng-template>
|
||||
</st>
|
||||
</nz-card>
|
||||
|
||||
@ -84,9 +92,18 @@
|
||||
<se label="合伙人名称"> {{ selectItem?.enterpriseName || selectItem?.contactName }} </se>
|
||||
<se label="当前渠道销售"> {{ selectItem?.channelIdLabel }} </se>
|
||||
<se label="渠道销售修改为" required>
|
||||
<nz-select [(ngModel)]="cannelItem.channelId" style="width: 100%">
|
||||
<nz-option [nzValue]="item.value" [nzLabel]="item.label" *ngFor="let item of cannels"></nz-option>
|
||||
</nz-select>
|
||||
<nz-select
|
||||
nzPlaceHolder="请搜索"
|
||||
nzShowSearch
|
||||
nzServerSearch
|
||||
[(ngModel)]="cannelItem.channelId"
|
||||
[nzShowArrow]="false"
|
||||
(nzOnSearch)="onSearch($event)"
|
||||
>
|
||||
<ng-container *ngFor="let item of cannels">
|
||||
<nz-option [nzValue]="item.value" [nzLabel]="item.label"></nz-option>
|
||||
</ng-container>
|
||||
</nz-select>
|
||||
</se>
|
||||
<se label="备注" required>
|
||||
<textarea rows="3" nz-input [(ngModel)]="cannelItem.remark"></textarea>
|
||||
@ -104,7 +121,6 @@
|
||||
[req]="{ process: beforeReq, params: { effectiveStatus: 2, newPartnerId: selectItem.id } }"
|
||||
[loading]="service.http.loading"
|
||||
[page]="{ show: false }"
|
||||
|
||||
(change)="stChange($event)"
|
||||
>
|
||||
</st>
|
||||
|
||||
@ -4,13 +4,12 @@ import { Router } from '@angular/router';
|
||||
import { STComponent, STColumn, STRequestOptions, STChange } from '@delon/abc/st';
|
||||
import { SFComponent, SFSchema, SFDateWidgetSchema, SFAutoCompleteWidgetSchema, SFSelectWidgetSchema } from '@delon/form';
|
||||
import { NzModalService } from 'ng-zorro-antd/modal';
|
||||
import { of } from 'rxjs';
|
||||
import { BehaviorSubject, Observable, of } from 'rxjs';
|
||||
import { AddCollectionInvoiceModalComponent } from 'src/app/routes/ticket-management/components/input-invoice/add-collection-invoice-modal/add-collection-invoice-modal.component';
|
||||
|
||||
import { PartnerListService } from '../../services/partner-list.service';
|
||||
import { PartnerAuditModalComponent } from '../partner-audit-modal/partner-audit-modal.component';
|
||||
import { map } from 'rxjs/operators';
|
||||
|
||||
import { catchError, debounceTime, map, switchMap } from 'rxjs/operators';
|
||||
@Component({
|
||||
selector: 'app-partner-list',
|
||||
templateUrl: './partner-list.component.html',
|
||||
@ -24,7 +23,7 @@ export class PartnerListComponent {
|
||||
columns: STColumn[] = this.initST();
|
||||
searchSchema: SFSchema = this.initSF();
|
||||
_$expand = false;
|
||||
|
||||
isLoading: boolean = false;
|
||||
@ViewChild('editTemplate', { static: true })
|
||||
editTemplate: any;
|
||||
templateId: any;
|
||||
@ -36,13 +35,14 @@ export class PartnerListComponent {
|
||||
cannels: any[] = [];
|
||||
selectedRows: any[] = [];
|
||||
cannelItem: any = { channelId: null, effectiveNode: 1, enterpriseIdList: [], remark: '' };
|
||||
|
||||
searchChange$ = new BehaviorSubject('');
|
||||
selectItem: any = {};
|
||||
|
||||
constructor(public service: PartnerListService, private nzModalService: NzModalService, private router: Router) {
|
||||
this.loadSelectOptions();
|
||||
}
|
||||
|
||||
ngOnInit(): void {
|
||||
}
|
||||
beforeReq = (requestOptions: STRequestOptions) => {
|
||||
if (this.sf) {
|
||||
let params = { ...this.sf?.value };
|
||||
@ -55,18 +55,13 @@ export class PartnerListComponent {
|
||||
};
|
||||
|
||||
loadSelectOptions() {
|
||||
this.service.getRebateConfig({stateLocked: 1}).subscribe(res => {
|
||||
this.service.getRebateConfig({ stateLocked: 1 }).subscribe(res => {
|
||||
if (res) {
|
||||
console.log(res);
|
||||
|
||||
|
||||
this.customers = res;
|
||||
}
|
||||
});
|
||||
this.service.getChannel().subscribe(res => {
|
||||
if (res) {
|
||||
this.cannels = res;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
auditPartner(item: any) {
|
||||
@ -236,10 +231,6 @@ export class PartnerListComponent {
|
||||
type: 'string',
|
||||
title: '合伙人名称'
|
||||
},
|
||||
contactName: {
|
||||
type: 'string',
|
||||
title: '企业管理员'
|
||||
},
|
||||
contactMobile: {
|
||||
type: 'string',
|
||||
title: '手机号'
|
||||
@ -252,9 +243,6 @@ export class PartnerListComponent {
|
||||
searchDebounceTime: 300,
|
||||
searchLoadingText: '搜索中...',
|
||||
allowClear: true,
|
||||
visibleIf: {
|
||||
expand: (value: boolean) => value
|
||||
},
|
||||
onSearch: (q: any) => {
|
||||
let str = q.replace(/^\s+|\s+$/g, '');
|
||||
if (str) {
|
||||
@ -326,7 +314,7 @@ export class PartnerListComponent {
|
||||
{ value: '', label: '全部' },
|
||||
{ value: '0', label: '未同步' },
|
||||
{ value: 10, label: '同步失败' },
|
||||
{ value: 20, label: '同步成功' },
|
||||
{ value: 20, label: '同步成功' }
|
||||
],
|
||||
ui: {
|
||||
widget: 'select',
|
||||
@ -360,21 +348,21 @@ export class PartnerListComponent {
|
||||
widget: 'select',
|
||||
placeholder: '请选择',
|
||||
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 [];
|
||||
|
||||
}
|
||||
})
|
||||
),
|
||||
this.service.request(this.service.$api_get_rebate_config, {}, 'POST').pipe(
|
||||
map(data => {
|
||||
if (data) {
|
||||
return data.map((m: any) => {
|
||||
return { label: m.configName, value: m.id };
|
||||
});
|
||||
} else {
|
||||
return [];
|
||||
}
|
||||
})
|
||||
),
|
||||
visibleIf: {
|
||||
expand: (value: boolean) => value
|
||||
} } as SFDateWidgetSchema
|
||||
}
|
||||
} as SFDateWidgetSchema
|
||||
},
|
||||
lockedStatus: {
|
||||
type: 'string',
|
||||
@ -412,13 +400,11 @@ export class PartnerListComponent {
|
||||
return [
|
||||
{
|
||||
title: '合伙人名称',
|
||||
index: 'enterpriseName',
|
||||
width: 180,
|
||||
format: item => (item.partnerType ? `${item.enterpriseName || item.contactName}` : '')
|
||||
render: 'enterpriseName',
|
||||
width: 180
|
||||
},
|
||||
{ title: '付款编码', index: 'payCode', width: 160 },
|
||||
{ title: '邀请码', index: 'invitationCode', className: 'text-center', width: 130 },
|
||||
{ title: '企业管理员', index: 'contactName', width: 150, format: item => (item.partnerType ? `${item.contactName}` : '') },
|
||||
{ title: '手机号', index: 'contactMobile', className: 'text-center', width: 150 },
|
||||
{ title: '类型', index: 'partnerType', className: 'text-center', width: 130, type: 'enum', enum: { 1: '企业', 2: '个人' } },
|
||||
{ title: '注册渠道', index: 'source', type: 'enum', enum: { 1: '合伙人注册', 2: '平台添加' }, width: 130 },
|
||||
@ -518,4 +504,34 @@ export class PartnerListComponent {
|
||||
}
|
||||
];
|
||||
}
|
||||
onSearch(value: string): void {
|
||||
this.isLoading = true;
|
||||
let params: any = {};
|
||||
if (value) {
|
||||
console.log(+value);
|
||||
// 数字
|
||||
if (+value) {
|
||||
params.phoneNumber = value;
|
||||
} else {
|
||||
// 中文
|
||||
params.name = value;
|
||||
}
|
||||
this.service.request(this.service.$api_get_channel, params).subscribe(res => {
|
||||
let NewList: { label: string; value: any; }[] = [];
|
||||
let List = res.filter((i: any) => {
|
||||
NewList.push({ label: `${i.name}/${i.telephone}`, value: i.id }) ;
|
||||
});
|
||||
this.cannels = NewList
|
||||
});
|
||||
this.searchChange$.next(value);
|
||||
} else if(value === '') {
|
||||
this.service.request(this.service.$api_get_channel, {name: '清空数X'}).subscribe(res => {
|
||||
let NewList: { label: string; value: any; }[] = [];
|
||||
let List = res.filter((i: any) => {
|
||||
NewList.push({ label: `${i.name}/${i.telephone}`, value: i.id }) ;
|
||||
});
|
||||
this.cannels = NewList
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -28,22 +28,17 @@ export class PartnerAuditModalComponent implements OnInit {
|
||||
if(this.info.channelId) {
|
||||
const value = [{
|
||||
label: this.info.channelIdLabel,
|
||||
value: this.info.channelId,
|
||||
value: this.info.channelSaleslId,
|
||||
}]
|
||||
setTimeout(() => {
|
||||
if(this.sf) {
|
||||
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.channelSaleslId);
|
||||
}
|
||||
})
|
||||
|
||||
} else {
|
||||
console.log()
|
||||
this.service.getChannel().pipe(map(data => {
|
||||
console.log(data);
|
||||
|
||||
}))
|
||||
this.service.getChannel().subscribe((res) => {
|
||||
console.log(res);
|
||||
const value :any= res;
|
||||
|
||||
@ -28,9 +28,7 @@
|
||||
</div>
|
||||
<div nz-row>
|
||||
<div nz-col [nzLg]="12" [nzSm]="24" [nzXs]="24"> 注册时间:{{ detailData?.createTime }} </div>
|
||||
<div nz-col [nzLg]="12" [nzSm]="24" [nzXs]="24">
|
||||
所属城市:{{enterpriseDefaultCityName}}
|
||||
</div>
|
||||
<div nz-col [nzLg]="12" [nzSm]="24" [nzXs]="24"> 所属城市:{{ enterpriseDefaultCityName }} </div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -45,14 +43,32 @@
|
||||
<button [disabled]="service.http.loading" nz-button nzDanger (click)="auditPartner(false)"> 驳回 </button>
|
||||
</ng-container>
|
||||
<ng-container *ngIf="detailData?.approvalStatus != 10">
|
||||
<button [disabled]="service.http.loading" nz-button nzDanger nz-popconfirm [nzPopconfirmTitle]="enable"
|
||||
(nzOnConfirm)="freezeOrResume(0)" nzPopconfirmPlacement="bottomRight" *ngIf="detailData?.lockedStatus"
|
||||
acl [acl-ability]="['USERCENTER-FREIGHT-ENTERPRISE-D-lock']">
|
||||
<button
|
||||
[disabled]="service.http.loading"
|
||||
nz-button
|
||||
nzDanger
|
||||
nz-popconfirm
|
||||
[nzPopconfirmTitle]="enable"
|
||||
(nzOnConfirm)="freezeOrResume(0)"
|
||||
nzPopconfirmPlacement="bottomRight"
|
||||
*ngIf="detailData?.lockedStatus"
|
||||
acl
|
||||
[acl-ability]="['USERCENTER-FREIGHT-ENTERPRISE-D-lock']"
|
||||
>
|
||||
启用
|
||||
</button>
|
||||
<button [disabled]="service.http.loading" nz-button nzDanger nz-popconfirm [nzPopconfirmTitle]="frozen"
|
||||
(nzOnConfirm)="freezeOrResume(1)" nzPopconfirmPlacement="bottomRight" *ngIf="!detailData?.lockedStatus"
|
||||
acl [acl-ability]="['USERCENTER-FREIGHT-ENTERPRISE-D-lock']">
|
||||
<button
|
||||
[disabled]="service.http.loading"
|
||||
nz-button
|
||||
nzDanger
|
||||
nz-popconfirm
|
||||
[nzPopconfirmTitle]="frozen"
|
||||
(nzOnConfirm)="freezeOrResume(1)"
|
||||
nzPopconfirmPlacement="bottomRight"
|
||||
*ngIf="!detailData?.lockedStatus"
|
||||
acl
|
||||
[acl-ability]="['USERCENTER-FREIGHT-ENTERPRISE-D-lock']"
|
||||
>
|
||||
冻结
|
||||
</button>
|
||||
</ng-container>
|
||||
@ -64,17 +80,24 @@
|
||||
</ng-template>
|
||||
|
||||
<ng-template #frozen>
|
||||
<ng-container *ngTemplateOutlet="
|
||||
<ng-container
|
||||
*ngTemplateOutlet="
|
||||
PopconfirmTempalte;
|
||||
context: { title: '确定冻结该合伙人吗?', content: '停用后,该合伙人将被限制使用,不限于访问受限、邀请客户、佣金收益等,请谨慎操作' }
|
||||
">
|
||||
context: {
|
||||
title: '确定冻结该合伙人吗?',
|
||||
content: '停用后,该合伙人将被限制使用,不限于访问受限、邀请客户、佣金收益等,请谨慎操作'
|
||||
}
|
||||
"
|
||||
>
|
||||
</ng-container>
|
||||
</ng-template>
|
||||
<ng-template #enable>
|
||||
<ng-container *ngTemplateOutlet="
|
||||
<ng-container
|
||||
*ngTemplateOutlet="
|
||||
PopconfirmTempalte;
|
||||
context: { title: '确定启用该合伙人吗?', content: '启用后,该该合伙人将恢复正常使用功能,请再次确认' }
|
||||
">
|
||||
"
|
||||
>
|
||||
</ng-container>
|
||||
</ng-template>
|
||||
</page-header-wrapper>
|
||||
@ -83,21 +106,34 @@
|
||||
<sv-container col="3">
|
||||
<sv-title>企业管理员信息</sv-title>
|
||||
<sv label="姓名">
|
||||
<input nz-input type="text" [(ngModel)]="detailData.adminUserInfo.name" [readonly]="!isEdit"
|
||||
[nzBorderless]="!isEdit" [placeholder]="isEdit ? '' : '-'" />
|
||||
<input
|
||||
nz-input
|
||||
type="text"
|
||||
[(ngModel)]="detailData.adminUserInfo.name"
|
||||
[readonly]="!isEdit"
|
||||
[nzBorderless]="!isEdit"
|
||||
[placeholder]="isEdit ? '' : '-'"
|
||||
/>
|
||||
</sv>
|
||||
<sv label="手机号">
|
||||
<!-- <input nz-input type="text" [(ngModel)]="detailData.adminUserInfo.mobile" [readonly]="!isEdit"
|
||||
[nzBorderless]="!isEdit" [placeholder]="isEdit ? '' : '-'" /> -->
|
||||
{{detailData.adminUserInfo.mobile}}
|
||||
{{ detailData.adminUserInfo.mobile }}
|
||||
</sv>
|
||||
<sv label="身份证号">
|
||||
<input nz-input type="text" [(ngModel)]="detailData.adminUserInfo.certificateNumber" [readonly]="!isEdit"
|
||||
[nzBorderless]="!isEdit" [placeholder]="isEdit ? '' : '-'" />
|
||||
<input
|
||||
nz-input
|
||||
type="text"
|
||||
[(ngModel)]="detailData.adminUserInfo.certificateNumber"
|
||||
[readonly]="!isEdit"
|
||||
[nzBorderless]="!isEdit"
|
||||
[placeholder]="isEdit ? '' : '-'"
|
||||
/>
|
||||
</sv>
|
||||
<sv label="身份证照" col="2">
|
||||
<div class="d-flex">
|
||||
<ng-container *ngTemplateOutlet="
|
||||
<ng-container
|
||||
*ngTemplateOutlet="
|
||||
uploadTemplate;
|
||||
context: {
|
||||
data: detailData?.adminUserInfo,
|
||||
@ -106,9 +142,11 @@
|
||||
key2: 'certificatePhotoFront',
|
||||
hover: 'certificateBackFront'
|
||||
}
|
||||
">
|
||||
"
|
||||
>
|
||||
</ng-container>
|
||||
<ng-container *ngTemplateOutlet="
|
||||
<ng-container
|
||||
*ngTemplateOutlet="
|
||||
uploadTemplate;
|
||||
context: {
|
||||
data: detailData?.adminUserInfo,
|
||||
@ -117,25 +155,44 @@
|
||||
key2: 'certificatePhotoBack',
|
||||
hover: 'certificateBack'
|
||||
}
|
||||
">
|
||||
"
|
||||
>
|
||||
</ng-container>
|
||||
</div>
|
||||
</sv>
|
||||
<sv label="身份证有效期" col="1">
|
||||
<nz-date-picker [(ngModel)]="detailData.adminUserInfo.validStartTime" [nzDisabled]="!isEdit" nzPlaceHolder=" "
|
||||
[nzBorderless]="!isEdit" [nzSuffixIcon]="isEdit ? 'calendar' : ''" style="width: 140px" class="calendar">
|
||||
<nz-date-picker
|
||||
[(ngModel)]="detailData.adminUserInfo.validStartTime"
|
||||
[nzDisabled]="!isEdit"
|
||||
nzPlaceHolder=" "
|
||||
[nzBorderless]="!isEdit"
|
||||
[nzSuffixIcon]="isEdit ? 'calendar' : ''"
|
||||
style="width: 140px"
|
||||
class="calendar"
|
||||
>
|
||||
</nz-date-picker>
|
||||
-
|
||||
<ng-container
|
||||
*ngIf="!isEdit && !detailData?.adminUserInfo.validEndTime && detailData?.adminUserInfo.validStartTime">
|
||||
<ng-container *ngIf="!isEdit && !detailData?.adminUserInfo.validEndTime && detailData?.adminUserInfo.validStartTime">
|
||||
<label style="padding-left: 11px">长期</label>
|
||||
</ng-container>
|
||||
<nz-date-picker [(ngModel)]="detailData.adminUserInfo.validEndTime" [nzDisabled]="!isEdit" nzPlaceHolder=" "
|
||||
[nzBorderless]="!isEdit" [nzSuffixIcon]="isEdit ? 'calendar' : ''" style="width: 140px" class="calendar">
|
||||
<nz-date-picker
|
||||
[(ngModel)]="detailData.adminUserInfo.validEndTime"
|
||||
[nzDisabled]="!isEdit"
|
||||
nzPlaceHolder=" "
|
||||
[nzBorderless]="!isEdit"
|
||||
[nzSuffixIcon]="isEdit ? 'calendar' : ''"
|
||||
style="width: 140px"
|
||||
class="calendar"
|
||||
>
|
||||
</nz-date-picker>
|
||||
<ng-container *ngIf="isEdit">
|
||||
<label nz-checkbox [ngModel]="!!!detailData.adminUserInfo.validEndTime"
|
||||
(ngModelChange)="$event ? (detailData.adminUserInfo.validEndTime = '') : ''" class="ml-sm">长期</label>
|
||||
<label
|
||||
nz-checkbox
|
||||
[ngModel]="!!!detailData.adminUserInfo.validEndTime"
|
||||
(ngModelChange)="$event ? (detailData.adminUserInfo.validEndTime = '') : ''"
|
||||
class="ml-sm"
|
||||
>长期</label
|
||||
>
|
||||
</ng-container>
|
||||
</sv>
|
||||
</sv-container>
|
||||
@ -144,60 +201,81 @@
|
||||
<sv-container col="3" class="mt16">
|
||||
<sv-title>
|
||||
<label class="mr-md">企业基本信息</label>
|
||||
<label *ngIf="detailData?.approvalStatus === 10" style="color: #1890ff"><i nz-icon nzType="info-circle"
|
||||
nzTheme="fill" class="mr-xs"></i>待审核
|
||||
<label *ngIf="detailData?.approvalStatus === 10" style="color: #1890ff"
|
||||
><i nz-icon nzType="info-circle" nzTheme="fill" class="mr-xs"></i>待审核
|
||||
</label>
|
||||
<label *ngIf="detailData?.approvalStatus === 20" style="color: #52c41a"><i nz-icon nzType="check-circle"
|
||||
nzTheme="fill" class="mr-xs"></i>审核通过
|
||||
<label *ngIf="detailData?.approvalStatus === 20" style="color: #52c41a"
|
||||
><i nz-icon nzType="check-circle" nzTheme="fill" class="mr-xs"></i>审核通过
|
||||
</label>
|
||||
<label *ngIf="detailData?.approvalStatus === 30" style="color: #ff4d4f"><i nz-icon nzType="close-circle"
|
||||
nzTheme="fill" class="mr-xs"></i>驳回 驳回原因:{{ detailData?.approvalOpinion }}
|
||||
<label *ngIf="detailData?.approvalStatus === 30" style="color: #ff4d4f"
|
||||
><i nz-icon nzType="close-circle" nzTheme="fill" class="mr-xs"></i>驳回 驳回原因:{{ detailData?.approvalOpinion }}
|
||||
</label>
|
||||
<p style="margin-bottom: 0">
|
||||
四要素验证:
|
||||
<label *ngIf="detailData?.esignCheckStatus === 0" style="color: #ff4d4f"><i nz-icon nzType="info-circle"
|
||||
nzTheme="fill" class="mr-xs"></i>不通过 驳回原因:{{ detailData?.esignCheckMsg }}
|
||||
<label *ngIf="detailData?.esignCheckStatus === 0" style="color: #ff4d4f"
|
||||
><i nz-icon nzType="info-circle" nzTheme="fill" class="mr-xs"></i>不通过 驳回原因:{{ detailData?.esignCheckMsg }}
|
||||
</label>
|
||||
<label *ngIf="detailData?.esignCheckStatus === 1" style="color: #52c41a"><i nz-icon nzType="check-circle"
|
||||
nzTheme="fill" class="mr-xs"></i>通过
|
||||
<label *ngIf="detailData?.esignCheckStatus === 1" style="color: #52c41a"
|
||||
><i nz-icon nzType="check-circle" nzTheme="fill" class="mr-xs"></i>通过
|
||||
</label>
|
||||
<label *ngIf="detailData?.esignCheckStatus === 2" style="color: #1890ff"><i nz-icon nzType="close-circle"
|
||||
nzTheme="fill" class="mr-xs"></i>未认证: {{detailData?.esignCheckMsg}}
|
||||
<label *ngIf="detailData?.esignCheckStatus === 2" style="color: #1890ff"
|
||||
><i nz-icon nzType="close-circle" nzTheme="fill" class="mr-xs"></i>未认证: {{ detailData?.esignCheckMsg }}
|
||||
</label>
|
||||
</p>
|
||||
</sv-title>
|
||||
<sv label="公司名称">
|
||||
<!-- <input nz-input type="text" [(ngModel)]="" [readonly]="!isEdit" [nzBorderless]="!isEdit"
|
||||
[placeholder]="isEdit ? '' : '-'" /> -->
|
||||
{{detailData.enterpriseName}}
|
||||
{{ detailData.enterpriseName }}
|
||||
</sv>
|
||||
<sv label="统一社会信用代码">
|
||||
<!-- <input nz-input type="text" [(ngModel)]="detailData.unifiedSocialCreditCode" [readonly]="!isEdit"
|
||||
[nzBorderless]="!isEdit" [placeholder]="isEdit ? '' : '-'" /> -->
|
||||
{{detailData.unifiedSocialCreditCode}}
|
||||
{{ detailData.unifiedSocialCreditCode }}
|
||||
</sv>
|
||||
<sv label="营业执照" col="2">
|
||||
<ng-container *ngTemplateOutlet="
|
||||
<ng-container
|
||||
*ngTemplateOutlet="
|
||||
uploadTemplate;
|
||||
context: { data: detailData, status: isEdit, key: 'licensePhotoWatermark', key2: 'licensePhoto', hover: 'detailPhoto' }
|
||||
">
|
||||
"
|
||||
>
|
||||
</ng-container>
|
||||
</sv>
|
||||
|
||||
<sv label="营业期限" col="1">
|
||||
<nz-date-picker [(ngModel)]="detailData.operatingStartTime" [nzDisabled]="!isEdit" nzPlaceHolder=" "
|
||||
[nzBorderless]="!isEdit" [nzSuffixIcon]="isEdit ? 'calendar' : ''" style="width: 100px" class="calendar">
|
||||
<nz-date-picker
|
||||
[(ngModel)]="detailData.operatingStartTime"
|
||||
[nzDisabled]="!isEdit"
|
||||
nzPlaceHolder=" "
|
||||
[nzBorderless]="!isEdit"
|
||||
[nzSuffixIcon]="isEdit ? 'calendar' : ''"
|
||||
style="width: 100px"
|
||||
class="calendar"
|
||||
>
|
||||
</nz-date-picker>
|
||||
-
|
||||
<ng-container *ngIf="!isEdit && !detailData?.operatingEndTime && detailData?.operatingStartTime">
|
||||
<label style="padding-left: 11px">长期</label>
|
||||
</ng-container>
|
||||
<nz-date-picker [(ngModel)]="detailData.operatingEndTime" [nzDisabled]="!isEdit" nzPlaceHolder=" "
|
||||
[nzBorderless]="!isEdit" [nzSuffixIcon]="isEdit ? 'calendar' : ''" style="width: 100px" class="calendar">
|
||||
<nz-date-picker
|
||||
[(ngModel)]="detailData.operatingEndTime"
|
||||
[nzDisabled]="!isEdit"
|
||||
nzPlaceHolder=" "
|
||||
[nzBorderless]="!isEdit"
|
||||
[nzSuffixIcon]="isEdit ? 'calendar' : ''"
|
||||
style="width: 100px"
|
||||
class="calendar"
|
||||
>
|
||||
</nz-date-picker>
|
||||
<ng-container *ngIf="isEdit">
|
||||
<label nz-checkbox [ngModel]="!!!detailData.operatingEndTime"
|
||||
(ngModelChange)="$event ? (detailData.operatingEndTime = '') : ''" class="ml-sm">长期</label>
|
||||
<label
|
||||
nz-checkbox
|
||||
[ngModel]="!!!detailData.operatingEndTime"
|
||||
(ngModelChange)="$event ? (detailData.operatingEndTime = '') : ''"
|
||||
class="ml-sm"
|
||||
>长期</label
|
||||
>
|
||||
</ng-container>
|
||||
</sv>
|
||||
</sv-container>
|
||||
@ -205,33 +283,63 @@
|
||||
<sv-container col="3" class="mt16">
|
||||
<sv-title>企业法人信息</sv-title>
|
||||
<sv label="法定代表人">
|
||||
<input nz-input type="text" [(ngModel)]="detailData.legalPersonIdentity.name" [readonly]="!isEdit"
|
||||
[nzBorderless]="!isEdit" [placeholder]="isEdit ? '' : '-'" />
|
||||
<input
|
||||
nz-input
|
||||
type="text"
|
||||
[(ngModel)]="detailData.legalPersonIdentity.name"
|
||||
[readonly]="!isEdit"
|
||||
[nzBorderless]="!isEdit"
|
||||
[placeholder]="isEdit ? '' : '-'"
|
||||
/>
|
||||
</sv>
|
||||
<sv label="身份证号码">
|
||||
<input nz-input type="text" [(ngModel)]="detailData.legalPersonIdentity.certificateNumber" [readonly]="!isEdit"
|
||||
[nzBorderless]="!isEdit" [placeholder]="isEdit ? '' : '-'" />
|
||||
<input
|
||||
nz-input
|
||||
type="text"
|
||||
[(ngModel)]="detailData.legalPersonIdentity.certificateNumber"
|
||||
[readonly]="!isEdit"
|
||||
[nzBorderless]="!isEdit"
|
||||
[placeholder]="isEdit ? '' : '-'"
|
||||
/>
|
||||
</sv>
|
||||
<sv label="身份证有效期" col="1">
|
||||
<nz-date-picker [(ngModel)]="detailData.legalPersonIdentity.validStartTime" [nzDisabled]="!isEdit"
|
||||
nzPlaceHolder=" " [nzBorderless]="!isEdit" [nzSuffixIcon]="isEdit ? 'calendar' : ''" style="width: 140px"
|
||||
class="calendar"></nz-date-picker>
|
||||
<nz-date-picker
|
||||
[(ngModel)]="detailData.legalPersonIdentity.validStartTime"
|
||||
[nzDisabled]="!isEdit"
|
||||
nzPlaceHolder=" "
|
||||
[nzBorderless]="!isEdit"
|
||||
[nzSuffixIcon]="isEdit ? 'calendar' : ''"
|
||||
style="width: 140px"
|
||||
class="calendar"
|
||||
></nz-date-picker>
|
||||
-
|
||||
<ng-container
|
||||
*ngIf="!isEdit && !detailData?.legalPersonIdentity?.validEndTime && detailData.legalPersonIdentity.validStartTime">
|
||||
<ng-container *ngIf="!isEdit && !detailData?.legalPersonIdentity?.validEndTime && detailData.legalPersonIdentity.validStartTime">
|
||||
<label style="padding-left: 11px">长期</label>
|
||||
</ng-container>
|
||||
<nz-date-picker [(ngModel)]="detailData.legalPersonIdentity.validEndTime" [nzDisabled]="!isEdit" nzPlaceHolder=" "
|
||||
[nzBorderless]="!isEdit" [nzSuffixIcon]="isEdit ? 'calendar' : ''" style="width: 140px" class="calendar">
|
||||
<nz-date-picker
|
||||
[(ngModel)]="detailData.legalPersonIdentity.validEndTime"
|
||||
[nzDisabled]="!isEdit"
|
||||
nzPlaceHolder=" "
|
||||
[nzBorderless]="!isEdit"
|
||||
[nzSuffixIcon]="isEdit ? 'calendar' : ''"
|
||||
style="width: 140px"
|
||||
class="calendar"
|
||||
>
|
||||
</nz-date-picker>
|
||||
<ng-container *ngIf="isEdit">
|
||||
<label nz-checkbox [ngModel]="!!!detailData.legalPersonIdentity.validEndTime"
|
||||
(ngModelChange)="$event ? (detailData.legalPersonIdentity.validEndTime = '') : ''" class="ml-sm">长期</label>
|
||||
<label
|
||||
nz-checkbox
|
||||
[ngModel]="!!!detailData.legalPersonIdentity.validEndTime"
|
||||
(ngModelChange)="$event ? (detailData.legalPersonIdentity.validEndTime = '') : ''"
|
||||
class="ml-sm"
|
||||
>长期</label
|
||||
>
|
||||
</ng-container>
|
||||
</sv>
|
||||
<sv label="身份证照" col="1">
|
||||
<div class="d-flex">
|
||||
<ng-container *ngTemplateOutlet="
|
||||
<ng-container
|
||||
*ngTemplateOutlet="
|
||||
uploadTemplate;
|
||||
context: {
|
||||
data: detailData?.legalPersonIdentity,
|
||||
@ -240,9 +348,11 @@
|
||||
key2: 'certificatePhotoFront',
|
||||
hover: 'legalFront'
|
||||
}
|
||||
">
|
||||
"
|
||||
>
|
||||
</ng-container>
|
||||
<ng-container *ngTemplateOutlet="
|
||||
<ng-container
|
||||
*ngTemplateOutlet="
|
||||
uploadTemplate;
|
||||
context: {
|
||||
data: detailData?.legalPersonIdentity,
|
||||
@ -251,16 +361,26 @@
|
||||
key2: 'certificatePhotoBack',
|
||||
hover: 'legalBack'
|
||||
}
|
||||
">
|
||||
"
|
||||
>
|
||||
</ng-container>
|
||||
</div>
|
||||
</sv>
|
||||
<sv label="所属城市">
|
||||
<ng-container *ngIf="isEdit; else cascaderelseTemplate">
|
||||
<nz-tree-select #areaTreeSelect style="width: 350px" [(ngModel)]="enterpriseAddressCode"
|
||||
[nzDropdownStyle]="{ 'max-height': '300px' }" [nzExpandedKeys]="enterpriseDefaultAddressCode"
|
||||
[nzNodes]="areaList" [nzAsyncData]="true" [nzCheckStrictly]="true" nzCheckable
|
||||
(nzExpandChange)="onExpandChange($event.node)" nzDropdownClassName="area-tree-select">
|
||||
<nz-tree-select
|
||||
#areaTreeSelect
|
||||
style="width: 350px"
|
||||
[(ngModel)]="enterpriseAddressCode"
|
||||
[nzDropdownStyle]="{ 'max-height': '300px' }"
|
||||
[nzExpandedKeys]="enterpriseDefaultAddressCode"
|
||||
[nzNodes]="areaList"
|
||||
[nzAsyncData]="true"
|
||||
[nzCheckStrictly]="true"
|
||||
nzCheckable
|
||||
(nzExpandChange)="onExpandChange($event.node)"
|
||||
nzDropdownClassName="area-tree-select"
|
||||
>
|
||||
</nz-tree-select>
|
||||
</ng-container>
|
||||
<ng-template #cascaderelseTemplate>
|
||||
@ -280,20 +400,25 @@
|
||||
<nz-card>
|
||||
<sv-container col="3" class="mt16">
|
||||
<sv-title>修改渠道销售记录</sv-title>
|
||||
<sv label="">
|
||||
<st #st [data]="service.$api_get_personal_channel_list" [columns]="columns"
|
||||
[req]="{params:{partnerId:route.snapshot.params.id}}" [loading]="service.http.loading" bordered size="small"
|
||||
[page]="{ show: false }" [scroll]="{ x: '1200px' }">
|
||||
</st>
|
||||
</sv>
|
||||
</sv-container>
|
||||
<st
|
||||
#st
|
||||
[data]="service.$api_get_personal_channel_list"
|
||||
[columns]="columns"
|
||||
[req]="{ params: { partnerId: route.snapshot.params.id } }"
|
||||
[loading]="service.http.loading"
|
||||
bordered
|
||||
size="small"
|
||||
[page]="{ show: false }"
|
||||
[scroll]="{ x: '1200px' }"
|
||||
>
|
||||
</st>
|
||||
</nz-card>
|
||||
|
||||
<ng-template #PopconfirmTempalte let-title="title" let-content="content">
|
||||
<div class="ant-popover-message">
|
||||
<i nz-icon nzType="info-circle" nzTheme="fill"></i>
|
||||
<div class="ant-popover-message-title ng-star-inserted self-ant-popover-title" style="font-size: 16px">{{ title }}
|
||||
</div>
|
||||
<div class="ant-popover-message-title ng-star-inserted self-ant-popover-title" style="font-size: 16px">{{ title }} </div>
|
||||
<div class="ant-popover-message-title ng-star-inserted">
|
||||
{{ content }}
|
||||
</div>
|
||||
@ -301,18 +426,36 @@
|
||||
</ng-template>
|
||||
|
||||
<ng-template #uploadTemplate let-data="data" let-status="status" let-key="key" let-key2="key2" let-hover="hover">
|
||||
<nz-upload class="avatar-uploader" [nzAction]="uploadURl" nzName="multipartFile" nzListType="picture-card"
|
||||
[nzShowUploadList]="false" nzFileType="image/png,image/jpeg,image/jpg,image/gif"
|
||||
[nzDisabled]="!isEdit || disabledUpload" (nzChange)="changeUpload($event, data, key, key2, hover)">
|
||||
<nz-upload
|
||||
class="avatar-uploader"
|
||||
[nzAction]="uploadURl"
|
||||
nzName="multipartFile"
|
||||
nzListType="picture-card"
|
||||
[nzShowUploadList]="false"
|
||||
nzFileType="image/png,image/jpeg,image/jpg,image/gif"
|
||||
[nzDisabled]="!isEdit || disabledUpload"
|
||||
(nzChange)="changeUpload($event, data, key, key2, hover)"
|
||||
>
|
||||
<ng-container *ngIf="!data[key] && isEdit">
|
||||
<i class="upload-icon" nz-icon [nzType]="service.http.loading ? 'loading' : 'plus'"></i>
|
||||
<div class="ant-upload-text">上传</div>
|
||||
</ng-container>
|
||||
<div *ngIf="data[key]" (mouseover)="detailData[hover] = true" (mouseleave)="detailData[hover] = false"
|
||||
(click)="$event.cancelBubble = true" class="image-hover">
|
||||
<div
|
||||
*ngIf="data[key]"
|
||||
(mouseover)="detailData[hover] = true"
|
||||
(mouseleave)="detailData[hover] = false"
|
||||
(click)="$event.cancelBubble = true"
|
||||
class="image-hover"
|
||||
>
|
||||
<img nz-image [nzSrc]="data[key]" style="width: 200px; height: 160px" />
|
||||
<i nz-icon *ngIf="detailData[hover] && isEdit" nzType="close-circle" nzTheme="fill" class="delete-icon"
|
||||
(click)="deleteImg(data, key, key2)"></i>
|
||||
<i
|
||||
nz-icon
|
||||
*ngIf="detailData[hover] && isEdit"
|
||||
nzType="close-circle"
|
||||
nzTheme="fill"
|
||||
class="delete-icon"
|
||||
(click)="deleteImg(data, key, key2)"
|
||||
></i>
|
||||
</div>
|
||||
</nz-upload>
|
||||
</ng-template>
|
||||
|
||||
@ -9,7 +9,7 @@
|
||||
<nz-skeleton [nzLoading]="service.http.loading">
|
||||
<div class="user-info" nz-row>
|
||||
<div nz-col [nzXl]="18" [nzLg]="24" [nzSm]="24" [nzXs]="24" class="d-flex">
|
||||
<img [src]="detailData?.enterpriseLogo" />
|
||||
<img [src]="detailData?.avatar" />
|
||||
<div style="flex: 1">
|
||||
<div nz-row>
|
||||
<div nz-col [nzLg]="12" [nzSm]="24" [nzXs]="24">
|
||||
@ -21,16 +21,14 @@
|
||||
</div>
|
||||
</div>
|
||||
<div nz-row>
|
||||
<div nz-col [nzLg]="12" [nzSm]="24" [nzXs]="24">
|
||||
<!-- <div nz-col [nzLg]="12" [nzSm]="24" [nzXs]="24">
|
||||
<p>{{ detailData?.adminUserInfo?.certificateNumber }}</p>
|
||||
</div>
|
||||
</div> -->
|
||||
<div nz-col [nzLg]="12" [nzSm]="24" [nzXs]="24"> 个人合伙人 </div>
|
||||
</div>
|
||||
<div nz-row>
|
||||
<div nz-col [nzLg]="12" [nzSm]="24" [nzXs]="24"> 注册时间:{{ detailData?.createTime }} </div>
|
||||
<div nz-col [nzLg]="12" [nzSm]="24" [nzXs]="24">
|
||||
所属城市:{{enterpriseDefaultCityName}}
|
||||
</div>
|
||||
<div nz-col [nzLg]="12" [nzSm]="24" [nzXs]="24"> 所属城市:{{ enterpriseDefaultCityName }} </div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -40,19 +38,33 @@
|
||||
<button [disabled]="service.http.loading" nz-button nzDanger (click)="save()"> 保存 </button>
|
||||
</ng-container>
|
||||
<ng-template #editButton>
|
||||
<ng-container *ngIf="detailData?.approvalStatus === 10">
|
||||
<button [disabled]="service.http.loading" nz-button nzDanger (click)="auditPartner(true)"> 通过 </button>
|
||||
<button [disabled]="service.http.loading" nz-button nzDanger (click)="auditPartner(false)"> 驳回 </button>
|
||||
</ng-container>
|
||||
<ng-container *ngIf="detailData?.approvalStatus != 10">
|
||||
<button [disabled]="service.http.loading" nz-button nzDanger nz-popconfirm [nzPopconfirmTitle]="enable"
|
||||
(nzOnConfirm)="freezeOrResume(0)" nzPopconfirmPlacement="bottomRight" *ngIf="detailData?.lockedStatus"
|
||||
acl [acl-ability]="['USERCENTER-FREIGHT-ENTERPRISE-D-lock']">
|
||||
<button
|
||||
[disabled]="service.http.loading"
|
||||
nz-button
|
||||
nzDanger
|
||||
nz-popconfirm
|
||||
[nzPopconfirmTitle]="enable"
|
||||
(nzOnConfirm)="freezeOrResume(0)"
|
||||
nzPopconfirmPlacement="bottomRight"
|
||||
*ngIf="detailData?.lockedStatus"
|
||||
acl
|
||||
[acl-ability]="['USERCENTER-FREIGHT-ENTERPRISE-D-lock']"
|
||||
>
|
||||
启用
|
||||
</button>
|
||||
<button [disabled]="service.http.loading" nz-button nzDanger nz-popconfirm [nzPopconfirmTitle]="frozen"
|
||||
(nzOnConfirm)="freezeOrResume(1)" nzPopconfirmPlacement="bottomRight" *ngIf="!detailData?.lockedStatus"
|
||||
acl [acl-ability]="['USERCENTER-FREIGHT-ENTERPRISE-D-lock']">
|
||||
<button
|
||||
[disabled]="service.http.loading"
|
||||
nz-button
|
||||
nzDanger
|
||||
nz-popconfirm
|
||||
[nzPopconfirmTitle]="frozen"
|
||||
(nzOnConfirm)="freezeOrResume(1)"
|
||||
nzPopconfirmPlacement="bottomRight"
|
||||
*ngIf="!detailData?.lockedStatus"
|
||||
acl
|
||||
[acl-ability]="['USERCENTER-FREIGHT-ENTERPRISE-D-lock']"
|
||||
>
|
||||
冻结
|
||||
</button>
|
||||
</ng-container>
|
||||
@ -64,57 +76,116 @@
|
||||
</ng-template>
|
||||
|
||||
<ng-template #frozen>
|
||||
<ng-container *ngTemplateOutlet="
|
||||
PopconfirmTempalte;
|
||||
context: { title: '确定冻结该合伙人吗?', content: '停用后,该合伙人将被限制使用,不限于访问受限、邀请客户、佣金收益等,请谨慎操作' }
|
||||
">
|
||||
<ng-container
|
||||
*ngTemplateOutlet="
|
||||
PopconfirmTempalte;
|
||||
context: {
|
||||
title: '确定冻结该合伙人吗?',
|
||||
content: '停用后,该合伙人将被限制使用,不限于访问受限、邀请客户、佣金收益等,请谨慎操作'
|
||||
}
|
||||
"
|
||||
>
|
||||
</ng-container>
|
||||
</ng-template>
|
||||
<ng-template #enable>
|
||||
<ng-container *ngTemplateOutlet="
|
||||
PopconfirmTempalte;
|
||||
context: { title: '确定启用该合伙人吗?', content: '启用后,该该合伙人将恢复正常使用功能,请再次确认' }
|
||||
">
|
||||
<ng-container
|
||||
*ngTemplateOutlet="
|
||||
PopconfirmTempalte;
|
||||
context: { title: '确定启用该合伙人吗?', content: '启用后,该该合伙人将恢复正常使用功能,请再次确认' }
|
||||
"
|
||||
>
|
||||
</ng-container>
|
||||
</ng-template>
|
||||
</page-header-wrapper>
|
||||
|
||||
<nz-card [class]="isEdit ? 'edit-box' : 'readOnly-box'">
|
||||
<div class="font-weight-blod text-md detail-title" style="justify-content: space-between;">
|
||||
<div style="display: flex; justify-content: center;align-items: center;">
|
||||
<a class="sign"></a>
|
||||
<p style="margin-bottom: 0">
|
||||
合伙人信息
|
||||
<label *ngIf="!detailData?.adminUserInfo?.isExpired" style="color: #ff4d4f"><i nz-icon nzType="info-circle"
|
||||
nzTheme="fill" class="mr-xs"></i>{{detailData?.adminUserInfo?.esignCheckMsg}}
|
||||
</label>
|
||||
<label *ngIf="detailData?.adminUserInfo?.isExpired" style="color: #52c41a"><i nz-icon nzType="check-circle"
|
||||
nzTheme="fill" class="mr-xs"></i>验证通过
|
||||
</label>
|
||||
</p>
|
||||
</div>
|
||||
<div>
|
||||
<ng-container *ngIf="detailData?.approvalStatus === 10">
|
||||
<button [disabled]="service.http.loading" nz-button nzDanger (click)="auditPartner(true)"> 通过 </button>
|
||||
<button [disabled]="service.http.loading" nz-button nzDanger (click)="auditPartner(false)"> 驳回 </button>
|
||||
</ng-container>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<sv-container col="3" class="mt16">
|
||||
<sv-title>合伙人信息</sv-title>
|
||||
<!-- <sv-title>合伙人信息</sv-title> -->
|
||||
<sv label="姓名">
|
||||
<input nz-input type="text" [(ngModel)]="detailData.adminUserInfo.name" [readonly]="!isEdit"
|
||||
[nzBorderless]="!isEdit" [placeholder]="isEdit ? '' : '-'" />
|
||||
<input
|
||||
nz-input
|
||||
type="text"
|
||||
[(ngModel)]="detailData.adminUserInfo.name"
|
||||
[readonly]="!isEdit"
|
||||
[nzBorderless]="!isEdit"
|
||||
[placeholder]="isEdit ? '' : '-'"
|
||||
/>
|
||||
</sv>
|
||||
<sv label="手机号">
|
||||
<!-- <input nz-input type="text" [(ngModel)]="detailData.adminUserInfo.certificateNumber" [readonly]="!isEdit"
|
||||
[nzBorderless]="!isEdit" [placeholder]="isEdit ? '' : '-'" /> -->
|
||||
{{detailData.adminUserInfo.mobile}}
|
||||
{{ detailData.adminUserInfo.mobile }}
|
||||
</sv>
|
||||
<sv label="身份证号">
|
||||
<input nz-input type="text" [(ngModel)]="detailData.adminUserInfo.certificateNumber" [readonly]="!isEdit"
|
||||
[nzBorderless]="!isEdit" [placeholder]="isEdit ? '' : '-'" />
|
||||
<input
|
||||
nz-input
|
||||
type="text"
|
||||
[(ngModel)]="detailData.adminUserInfo.certificateNumber"
|
||||
[readonly]="!isEdit"
|
||||
[nzBorderless]="!isEdit"
|
||||
[placeholder]="isEdit ? '' : '-'"
|
||||
/>
|
||||
</sv>
|
||||
<sv label="身份证有效期" col="1">
|
||||
<nz-date-picker [(ngModel)]="detailData.adminUserInfo.validStartTime" [nzDisabled]="!isEdit" nzPlaceHolder=" "
|
||||
[nzBorderless]="!isEdit" [nzSuffixIcon]="isEdit ? 'calendar' : ''" style="width: 140px" class="calendar">
|
||||
<nz-date-picker
|
||||
[(ngModel)]="detailData.adminUserInfo.validStartTime"
|
||||
[nzDisabled]="!isEdit"
|
||||
nzPlaceHolder=" "
|
||||
[nzBorderless]="!isEdit"
|
||||
[nzSuffixIcon]="isEdit ? 'calendar' : ''"
|
||||
style="width: 140px"
|
||||
class="calendar"
|
||||
>
|
||||
</nz-date-picker>
|
||||
-
|
||||
<ng-container
|
||||
*ngIf="!isEdit && !detailData?.adminUserInfo?.validEndTime && detailData.adminUserInfo.validStartTime">
|
||||
<ng-container *ngIf="!isEdit && !detailData?.adminUserInfo?.validEndTime && detailData.adminUserInfo.validStartTime">
|
||||
<label style="padding-left: 11px">长期</label>
|
||||
</ng-container>
|
||||
<nz-date-picker [(ngModel)]="detailData.adminUserInfo.validEndTime" [nzDisabled]="!isEdit" nzPlaceHolder=" "
|
||||
[nzBorderless]="!isEdit" [nzSuffixIcon]="isEdit ? 'calendar' : ''" style="width: 140px" class="calendar">
|
||||
<nz-date-picker
|
||||
[(ngModel)]="detailData.adminUserInfo.validEndTime"
|
||||
[nzDisabled]="!isEdit"
|
||||
nzPlaceHolder=" "
|
||||
[nzBorderless]="!isEdit"
|
||||
[nzSuffixIcon]="isEdit ? 'calendar' : ''"
|
||||
style="width: 140px"
|
||||
class="calendar"
|
||||
>
|
||||
</nz-date-picker>
|
||||
<ng-container *ngIf="isEdit">
|
||||
<label nz-checkbox [ngModel]="!!!detailData.adminUserInfo.validEndTime"
|
||||
(ngModelChange)="$event ? (detailData.adminUserInfo.validEndTime = '') : ''" class="ml-sm">长期</label>
|
||||
<label
|
||||
nz-checkbox
|
||||
[ngModel]="!!!detailData.adminUserInfo.validEndTime"
|
||||
(ngModelChange)="$event ? (detailData.adminUserInfo.validEndTime = '') : ''"
|
||||
class="ml-sm"
|
||||
>长期</label
|
||||
>
|
||||
</ng-container>
|
||||
</sv>
|
||||
<sv label="身份证照" col="1">
|
||||
<div class="d-flex">
|
||||
<ng-container *ngTemplateOutlet="
|
||||
<ng-container
|
||||
*ngTemplateOutlet="
|
||||
uploadTemplate;
|
||||
context: {
|
||||
data: detailData?.adminUserInfo,
|
||||
@ -123,9 +194,11 @@
|
||||
key2: 'certificatePhotoFront',
|
||||
hover: 'legalFront'
|
||||
}
|
||||
">
|
||||
"
|
||||
>
|
||||
</ng-container>
|
||||
<ng-container *ngTemplateOutlet="
|
||||
<ng-container
|
||||
*ngTemplateOutlet="
|
||||
uploadTemplate;
|
||||
context: {
|
||||
data: detailData?.adminUserInfo,
|
||||
@ -134,16 +207,26 @@
|
||||
key2: 'certificatePhotoBack',
|
||||
hover: 'legalBack'
|
||||
}
|
||||
">
|
||||
"
|
||||
>
|
||||
</ng-container>
|
||||
</div>
|
||||
</sv>
|
||||
<sv label="所属城市">
|
||||
<ng-container *ngIf="isEdit; else cascaderelseTemplate">
|
||||
<nz-tree-select #areaTreeSelect style="width: 350px" [(ngModel)]="enterpriseAddressCode"
|
||||
[nzDropdownStyle]="{ 'max-height': '300px' }" [nzExpandedKeys]="enterpriseDefaultAddressCode"
|
||||
[nzNodes]="areaList" [nzAsyncData]="true" [nzCheckStrictly]="true" nzCheckable
|
||||
(nzExpandChange)="onExpandChange($event.node)" nzDropdownClassName="area-tree-select">
|
||||
<nz-tree-select
|
||||
#areaTreeSelect
|
||||
style="width: 350px"
|
||||
[(ngModel)]="enterpriseAddressCode"
|
||||
[nzDropdownStyle]="{ 'max-height': '300px' }"
|
||||
[nzExpandedKeys]="enterpriseDefaultAddressCode"
|
||||
[nzNodes]="areaList"
|
||||
[nzAsyncData]="true"
|
||||
[nzCheckStrictly]="true"
|
||||
nzCheckable
|
||||
(nzExpandChange)="onExpandChange($event.node)"
|
||||
nzDropdownClassName="area-tree-select"
|
||||
>
|
||||
</nz-tree-select>
|
||||
</ng-container>
|
||||
<ng-template #cascaderelseTemplate>
|
||||
@ -161,22 +244,27 @@
|
||||
</nz-card>
|
||||
|
||||
<nz-card>
|
||||
<sv-container col="3" class="mt16">
|
||||
<sv-container >
|
||||
<sv-title>修改渠道销售记录</sv-title>
|
||||
<sv label="">
|
||||
<st #st [data]="service.$api_get_personal_channel_list" [columns]="columns"
|
||||
[req]="{params:{partnerId:route.snapshot.params.id}}" [loading]="service.http.loading" bordered size="small"
|
||||
[page]="{ show: false }" [scroll]="{ x: '1200px' }">
|
||||
</st>
|
||||
</sv>
|
||||
</sv-container>
|
||||
<st
|
||||
#st
|
||||
[scroll]="{x: '1200px'}"
|
||||
[data]="service.$api_get_personal_channel_list"
|
||||
[columns]="columns"
|
||||
[req]="{ params: { partnerId: route.snapshot.params.id } }"
|
||||
[loading]="service.http.loading"
|
||||
bordered
|
||||
size="small"
|
||||
[page]="{ show: false }"
|
||||
>
|
||||
</st>
|
||||
</nz-card>
|
||||
|
||||
<ng-template #PopconfirmTempalte let-title="title" let-content="content">
|
||||
<div class="ant-popover-message">
|
||||
<i nz-icon nzType="info-circle" nzTheme="fill"></i>
|
||||
<div class="ant-popover-message-title ng-star-inserted self-ant-popover-title" style="font-size: 16px">{{ title }}
|
||||
</div>
|
||||
<div class="ant-popover-message-title ng-star-inserted self-ant-popover-title" style="font-size: 16px">{{ title }} </div>
|
||||
<div class="ant-popover-message-title ng-star-inserted">
|
||||
{{ content }}
|
||||
</div>
|
||||
@ -184,18 +272,36 @@
|
||||
</ng-template>
|
||||
|
||||
<ng-template #uploadTemplate let-data="data" let-status="status" let-key="key" let-key2="key2" let-hover="hover">
|
||||
<nz-upload class="avatar-uploader" [nzAction]="uploadURl" nzName="multipartFile" nzListType="picture-card"
|
||||
[nzShowUploadList]="false" nzFileType="image/png,image/jpeg,image/jpg,image/gif"
|
||||
[nzDisabled]="!isEdit || disabledUpload" (nzChange)="changeUpload($event, data, key, key2, hover)">
|
||||
<nz-upload
|
||||
class="avatar-uploader"
|
||||
[nzAction]="uploadURl"
|
||||
nzName="multipartFile"
|
||||
nzListType="picture-card"
|
||||
[nzShowUploadList]="false"
|
||||
nzFileType="image/png,image/jpeg,image/jpg,image/gif"
|
||||
[nzDisabled]="!isEdit || disabledUpload"
|
||||
(nzChange)="changeUpload($event, data, key, key2, hover)"
|
||||
>
|
||||
<ng-container *ngIf="!data[key] && isEdit">
|
||||
<i class="upload-icon" nz-icon [nzType]="service.http.loading ? 'loading' : 'plus'"></i>
|
||||
<div class="ant-upload-text">上传</div>
|
||||
</ng-container>
|
||||
<div *ngIf="data[key]" (mouseover)="detailData[hover] = true" (mouseleave)="detailData[hover] = false"
|
||||
(click)="$event.cancelBubble = true" class="image-hover">
|
||||
<div
|
||||
*ngIf="data[key]"
|
||||
(mouseover)="detailData[hover] = true"
|
||||
(mouseleave)="detailData[hover] = false"
|
||||
(click)="$event.cancelBubble = true"
|
||||
class="image-hover"
|
||||
>
|
||||
<img nz-image [nzSrc]="data[key]" style="width: 200px; height: 160px" />
|
||||
<i nz-icon *ngIf="detailData[hover] && isEdit" nzType="close-circle" nzTheme="fill" class="delete-icon"
|
||||
(click)="deleteImg(data, key, key2)"></i>
|
||||
<i
|
||||
nz-icon
|
||||
*ngIf="detailData[hover] && isEdit"
|
||||
nzType="close-circle"
|
||||
nzTheme="fill"
|
||||
class="delete-icon"
|
||||
(click)="deleteImg(data, key, key2)"
|
||||
></i>
|
||||
</div>
|
||||
</nz-upload>
|
||||
</ng-template>
|
||||
</ng-template>
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
* @Author : Shiming
|
||||
* @Date : 2022-02-24 20:09:49
|
||||
* @LastEditors : Shiming
|
||||
* @LastEditTime : 2022-03-29 13:40:16
|
||||
* @LastEditTime : 2022-05-12 16:43:10
|
||||
* @FilePath : \\tms-obc-web\\src\\app\\routes\\partner\\rebate-management\\components\\rebate-record\\rebate-record.component.html
|
||||
* Copyright (C) 2022 huzhenhong. All rights reserved.
|
||||
-->
|
||||
@ -23,7 +23,7 @@
|
||||
></sf>
|
||||
<div nz-col [nzSpan]="_$expand ? 24 : 6" class="text-right">
|
||||
<button nz-button nzType="primary" [nzLoading]="service.http.loading" (click)="st?.load(1);">查询</button>
|
||||
<button nz-button nzType="primary" [disabled]="service.http.loading" acl [acl-ability]="['REBATE-RECORD-export']">导出</button>
|
||||
<button nz-button nzType="primary" (click)="exprot()" [disabled]="service.http.loading" acl [acl-ability]="['REBATE-RECORD-export']">导出</button>
|
||||
<button nz-button [disabled]="service.http.loading" (click)="resetSF()">重置</button>
|
||||
</div>
|
||||
</div>
|
||||
@ -33,7 +33,7 @@
|
||||
<!-- 数据列表 -->
|
||||
<st
|
||||
#st
|
||||
[data]="service.$api_get_getIncomeByBillpage"
|
||||
[data]="service.$api_get_partnerIncomeHead"
|
||||
[columns]="columns"
|
||||
[req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, params: reqParams }"
|
||||
[res]="{ reName: { list: 'data.records', total: 'data.total' } }"
|
||||
@ -42,7 +42,10 @@
|
||||
[loading]="service.http.loading"
|
||||
>
|
||||
<ng-template st-row='abnormalFeedback' let-item let-index='index'>
|
||||
<div style="color: #f59a23;" (click)="feedback()">123212{{item?.abnormalFeedback}}</div>
|
||||
<div style="color: #f59a23;" (click)="feedback(item)">123212{{item?.abnormalFeedback}}</div>
|
||||
</ng-template>
|
||||
<ng-template st-row='profitAmountSum' let-item let-index='index'>
|
||||
<div >{{item?.profitAmountSum | currency}}</div>
|
||||
</ng-template>
|
||||
</st>
|
||||
</nz-card>
|
||||
|
||||
@ -68,11 +68,11 @@ export class ParterRebateManageMentRecordComponent implements OnInit {
|
||||
{
|
||||
title: '月份',
|
||||
index: 'month',
|
||||
format: (item: any) => {return item?.month ? item?.month + '月' : ''}
|
||||
format: (item: any) => {return ((item?.year ? item?.year + '-' : '') + (item?.month ? item.month : ''))}
|
||||
},
|
||||
{
|
||||
title: '返佣金额(元)',
|
||||
index: 'name1'
|
||||
render: 'profitAmountSum'
|
||||
},
|
||||
{
|
||||
title: '合伙人名称',
|
||||
@ -80,15 +80,16 @@ export class ParterRebateManageMentRecordComponent implements OnInit {
|
||||
},
|
||||
{
|
||||
title: '实际等级',
|
||||
index: 'name1'
|
||||
index: 'partnerGrade'
|
||||
},
|
||||
{
|
||||
title: '管理费比例',
|
||||
index: 'rebateRatio'
|
||||
index: 'manageFeeRatio',
|
||||
format: (item) => {return item.manageFeeRatio + '%' }
|
||||
},
|
||||
{
|
||||
title: '返佣时间',
|
||||
index: 'name1'
|
||||
index: 'returnCommissionTime'
|
||||
},
|
||||
{
|
||||
title: '异常反馈',
|
||||
@ -117,7 +118,7 @@ export class ParterRebateManageMentRecordComponent implements OnInit {
|
||||
nzTitle: '明细',
|
||||
nzWidth: 1200,
|
||||
nzContent: ParterRebateManageMenRecordDetailComponent,
|
||||
nzComponentParams: { },
|
||||
nzComponentParams: { record: item },
|
||||
nzFooter: null
|
||||
});
|
||||
modal.afterClose.subscribe((res: any) => {
|
||||
@ -148,4 +149,10 @@ export class ParterRebateManageMentRecordComponent implements OnInit {
|
||||
this.sf.reset();
|
||||
this.st.load(1);
|
||||
}
|
||||
// 导出
|
||||
exprot() {
|
||||
// this.service.exportStart({ ...this.reqParams, pageSize: -1 }, this.service.$api_get_partnerIncomeHead_export);
|
||||
this.service.downloadFile(this.service.$api_get_partnerIncomeHead_export, { ...this.reqParams, pageSize: -1 });
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
* @Author : Shiming
|
||||
* @Date : 2022-02-24 20:09:49
|
||||
* @LastEditors : Shiming
|
||||
* @LastEditTime : 2022-05-07 15:42:10
|
||||
* @LastEditTime : 2022-05-11 17:04:39
|
||||
* @FilePath : \\tms-obc-web\\src\\app\\routes\\partner\\rebate-management\\components\\rebate-setting\\add\\add.component.html
|
||||
* Copyright (C) 2022 huzhenhong. All rights reserved.
|
||||
-->
|
||||
@ -23,7 +23,14 @@
|
||||
<sv-title> 固定结算费率配置</sv-title>
|
||||
|
||||
<sv label="固定结算费率">
|
||||
<nz-input-number [disabled]="hiden" [nzMin]="0" [nzMax]="100" [(ngModel)]="accountingRate" [nzPrecision]="precision" nzPlaceHolder="请输入"></nz-input-number
|
||||
<nz-input-number
|
||||
[disabled]="hiden"
|
||||
[nzMin]="0"
|
||||
[nzMax]="100"
|
||||
[(ngModel)]="accountingRate"
|
||||
[nzPrecision]="precision"
|
||||
nzPlaceHolder="请输入"
|
||||
></nz-input-number
|
||||
> %</sv
|
||||
>
|
||||
|
||||
@ -74,15 +81,26 @@
|
||||
</sv>
|
||||
|
||||
<sv label="优先级" col="1">
|
||||
<!-- <nz-select [(ngModel)]="priority" [disabled]="hiden" style="max-width: 400px; min-width: 200px; margin-left: 28px">
|
||||
<nz-option nzValue="1" nzLabel="1">1</nz-option>
|
||||
<nz-option nzValue="2" nzLabel="2">2</nz-option>
|
||||
<nz-option nzValue="3" nzLabel="3">3</nz-option>
|
||||
<nz-option nzValue="4" nzLabel="4">4</nz-option>
|
||||
<nz-option nzValue="5" nzLabel="5">5</nz-option>
|
||||
</nz-select> -->
|
||||
<nz-input-number style="max-width: 400px; min-width: 200px; margin-left: 28px" [(ngModel)]="priority" [nzMin]="0" [nzMax]="9999" [nzStep]="1"></nz-input-number>
|
||||
<nz-input-number
|
||||
style="max-width: 400px; min-width: 200px; margin-left: 28px"
|
||||
[(ngModel)]="priority"
|
||||
[nzMin]="0"
|
||||
[nzMax]="9999"
|
||||
[nzStep]="1"
|
||||
></nz-input-number>
|
||||
<div style="color: #7F7F7F;margin-left: 28px">
|
||||
1、指全部合伙人、新注册合伙人、自定义合伙人三种范围优先执行的顺序,等级数字越大,优先执行该返佣模板<br />
|
||||
2、同一合伙人范围的按创建时间最新的执行返佣模板
|
||||
</div>
|
||||
</sv>
|
||||
<!-- <sv label="生效时间" col="1">
|
||||
<nz-date-picker
|
||||
nzShowTime
|
||||
nzFormat="yyyy-MM-dd HH:mm:ss"
|
||||
[(ngModel)]="enableTime"
|
||||
nzPlaceHolder="请选择,精确到秒"
|
||||
></nz-date-picker>
|
||||
</sv> -->
|
||||
|
||||
<sv label="规则说明" col="1">
|
||||
<sf
|
||||
@ -99,7 +117,9 @@
|
||||
|
||||
<sv label="备注" col="1" style="margin-top: 16px">
|
||||
<textarea
|
||||
[disabled]="hiden"
|
||||
maxlength="20"
|
||||
placeholder="请输入20个字符"
|
||||
[readonly]='hiden'
|
||||
style="max-width: 400px; min-width: 200px; margin-left: 40px"
|
||||
rows="4"
|
||||
nz-input
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
* @Author : Shiming
|
||||
* @Date : 2022-03-21 09:26:45
|
||||
* @LastEditors : Shiming
|
||||
* @LastEditTime : 2022-05-07 15:38:49
|
||||
* @LastEditTime : 2022-05-11 16:49:20
|
||||
* @FilePath : \\tms-obc-web\\src\\app\\routes\\partner\\rebate-management\\components\\rebate-setting\\add\\add.component.ts
|
||||
* Copyright (C) 2022 huzhenhong. All rights reserved.
|
||||
*/
|
||||
@ -12,6 +12,7 @@ import { Component, OnInit, ViewChild } from '@angular/core';
|
||||
import { ActivatedRoute, Router } from '@angular/router';
|
||||
import { STColumn, STComponent } from '@delon/abc/st';
|
||||
import { SFComponent, SFSchema } from '@delon/form';
|
||||
import { DatePipe } from '@delon/theme';
|
||||
import { ShipperBaseService } from '@shared';
|
||||
import { NzModalService } from 'ng-zorro-antd/modal';
|
||||
import { RebateManagementService } from '../../../services/rebate-management.service';
|
||||
@ -19,7 +20,8 @@ import { ParterRebateManageMentAddPartnerListComponent } from '../add-partnerlis
|
||||
@Component({
|
||||
selector: 'app-parter-channel-rebate-management-add',
|
||||
styleUrls: ['./add.component.less'],
|
||||
templateUrl: './add.component.html'
|
||||
templateUrl: './add.component.html',
|
||||
providers: [DatePipe]
|
||||
})
|
||||
export class ParterRebateManageMentAddComponent implements OnInit {
|
||||
@ViewChild('table') table!: any;
|
||||
@ -27,6 +29,7 @@ export class ParterRebateManageMentAddComponent implements OnInit {
|
||||
tabelData: any;
|
||||
tabelType: any;
|
||||
formData: any;
|
||||
enableTime: any;
|
||||
addStatus: boolean = false;
|
||||
hiden: boolean = false;
|
||||
configName: string = '';
|
||||
@ -48,7 +51,8 @@ export class ParterRebateManageMentAddComponent implements OnInit {
|
||||
public ar: ActivatedRoute,
|
||||
public service: RebateManagementService,
|
||||
private modal: NzModalService,
|
||||
public shipperservice: ShipperBaseService
|
||||
public shipperservice: ShipperBaseService,
|
||||
private datePipe: DatePipe
|
||||
) {}
|
||||
columns: STColumn[] = [];
|
||||
initSF(data?: any) {
|
||||
@ -200,6 +204,7 @@ export class ParterRebateManageMentAddComponent implements OnInit {
|
||||
accountingRate: this.accountingRate,
|
||||
configName: this.configName,
|
||||
configType: this.configType,
|
||||
// enableTime:this.datePipe.transform(this.enableTime,'yyyy-MM-dd HH:mm:ss'),
|
||||
rebateConfigLineDTO: this.table.data,
|
||||
priority: this.priority, // 优先级
|
||||
partnerIds: this.partnerId,
|
||||
@ -229,6 +234,8 @@ export class ParterRebateManageMentAddComponent implements OnInit {
|
||||
this.priority = res?.priority + '';
|
||||
this.formData = { ruleDescription: res?.ruleDescription };
|
||||
this.remark = res.remark;
|
||||
// this.enableTime = res.enableTime;
|
||||
// this.enableTime = new Date(Date.parse(res?.enableTime?.replace(/-/g, '/')))
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
* @Author : Shiming
|
||||
* @Date : 2022-02-24 20:09:49
|
||||
* @LastEditors : Shiming
|
||||
* @LastEditTime : 2022-05-06 16:37:06
|
||||
* @LastEditTime : 2022-05-11 17:07:17
|
||||
* @FilePath : \\tms-obc-web\\src\\app\\routes\\partner\\rebate-management\\components\\rebate-setting\\rebate-setting.component.html
|
||||
* Copyright (C) 2022 huzhenhong. All rights reserved.
|
||||
-->
|
||||
@ -58,7 +58,7 @@
|
||||
<div *ngIf="item.partnerType == 3">自定义合伙人</div>
|
||||
</ng-template>
|
||||
<ng-template st-row='stateLocked' let-item let-index='index'>
|
||||
<div >{{item?.stateLocked ? '生效中' : '失效'}}</div>
|
||||
<div >{{item?.stateLocked ? '失效' : '生效中'}}</div>
|
||||
</ng-template>
|
||||
</st>
|
||||
</nz-card>
|
||||
|
||||
@ -53,8 +53,8 @@ export class ParterRebateManageMentSettingComponent implements OnInit {
|
||||
title: '状态',
|
||||
enum: [
|
||||
{ label: '全部', value: '' },
|
||||
{ label: '生效中', value: 1 },
|
||||
{ label: '失效', value: 0 }
|
||||
{ label: '生效中', value: 0 },
|
||||
{ label: '失效', value: 1 }
|
||||
],
|
||||
ui: {
|
||||
widget: 'select'
|
||||
@ -94,7 +94,7 @@ export class ParterRebateManageMentSettingComponent implements OnInit {
|
||||
},
|
||||
{
|
||||
title: '创建时间',
|
||||
index: 'enableTime',
|
||||
index: 'createTime',
|
||||
width: '200px'
|
||||
},
|
||||
{
|
||||
@ -127,7 +127,7 @@ export class ParterRebateManageMentSettingComponent implements OnInit {
|
||||
text: '禁用',
|
||||
acl: { ability: ['REBATE-SETTING-forbidden'] },
|
||||
iif: _record => {
|
||||
return _record.stateLocked == true && (_record.partnerType == 3 || _record.partnerType == 2);
|
||||
return _record.stateLocked == false && (_record.partnerType == 3 || _record.partnerType == 2);
|
||||
},
|
||||
click: _record => this.viewEvaluate(_record)
|
||||
},
|
||||
@ -135,7 +135,7 @@ export class ParterRebateManageMentSettingComponent implements OnInit {
|
||||
text: '启用',
|
||||
acl: { ability: ['REBATE-SETTING-startUseing'] },
|
||||
iif: _record => {
|
||||
return _record.stateLocked == false;
|
||||
return _record.stateLocked == true;
|
||||
},
|
||||
click: _record => this.viewEvaluate(_record)
|
||||
}
|
||||
|
||||
@ -4,23 +4,22 @@
|
||||
* @Author : Shiming
|
||||
* @Date : 2022-02-24 20:09:49
|
||||
* @LastEditors : Shiming
|
||||
* @LastEditTime : 2022-03-10 15:10:47
|
||||
* @LastEditTime : 2022-05-12 17:43:46
|
||||
* @FilePath : \\tms-obc-web\\src\\app\\routes\\partner\\rebate-management\\model\\abnormal-feedback\\abnormal-feedback.component.html
|
||||
* Copyright (C) 2022 huzhenhong. All rights reserved.
|
||||
-->
|
||||
<sv-container col="1">
|
||||
<sv label="异常反馈">
|
||||
<div>有订单有异常请查看 </div>
|
||||
<div>2022-09-08 00:00:00 </div>
|
||||
<sv *ngFor="let item of mybidDetailInfo" label="异常反馈" >
|
||||
<div>{{item.feedbackInfo}} </div>
|
||||
<div>{{item.createTime}} </div>
|
||||
<sv label="回复" *ngIf="item.replyVOList">
|
||||
<div>{{item.replyVOList}} </div>
|
||||
<div>{{item.feedbackInfo}} </div>
|
||||
</sv>
|
||||
</sv>
|
||||
<sv *ngIf="mybidDetailInfo.length == 0"label="异常反馈" >
|
||||
<div>暂无反馈信息 </div>
|
||||
</sv>
|
||||
<!-- <sv label="异常反馈">
|
||||
<p *ngFor="let data of i?.mybidDetailInfo; let index = index">
|
||||
<label *ngIf="data?.paymentStatusLabel == '已支付'">
|
||||
<span>{{data?.expenseName}}</span>
|
||||
<span>{{ data.price | number: '0.2-2' }}</span>
|
||||
</label>
|
||||
</p>
|
||||
</sv> -->
|
||||
</sv-container>
|
||||
<div>
|
||||
<sf
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
* @Author : Shiming
|
||||
* @Date : 2022-03-10 14:50:45
|
||||
* @LastEditors : Shiming
|
||||
* @LastEditTime : 2022-03-10 15:09:51
|
||||
* @LastEditTime : 2022-05-12 17:54:15
|
||||
* @FilePath : \\tms-obc-web\\src\\app\\routes\\partner\\rebate-management\\model\\abnormal-feedback\\abnormal-feedback.component.ts
|
||||
* Copyright (C) 2022 huzhenhong. All rights reserved.
|
||||
*/
|
||||
@ -24,17 +24,30 @@ export class ParterRebateManageMenAbnormalFeedbackComponent implements OnInit {
|
||||
@ViewChild('sf', { static: false })
|
||||
sf!: SFComponent;
|
||||
i!: any;
|
||||
mybidDetailInfo: any = [];
|
||||
data = [{ name1: 1111 }];
|
||||
constructor(public service: RebateManagementService, public shipperservice: ShipperBaseService, public modalRef: NzModalRef) {}
|
||||
|
||||
ngOnInit() {
|
||||
this.initSF();
|
||||
this.initData();
|
||||
}
|
||||
initData() {
|
||||
if (this.i) {
|
||||
console.log(this.i);
|
||||
|
||||
this.service
|
||||
.request(this.service.$api_get_getExceptionMessage, { partnerId: this.i?.partnerId, month: this.i.month, year: this.i.year })
|
||||
.subscribe(res => {
|
||||
console.log(res);
|
||||
this.mybidDetailInfo = res;
|
||||
});
|
||||
}
|
||||
}
|
||||
initSF() {
|
||||
this.schema = {
|
||||
properties: {
|
||||
name3: {
|
||||
feedbackInfo: {
|
||||
type: 'string',
|
||||
title: '回复',
|
||||
maxLength: 50,
|
||||
@ -54,6 +67,21 @@ export class ParterRebateManageMenAbnormalFeedbackComponent implements OnInit {
|
||||
};
|
||||
}
|
||||
close() {
|
||||
this.modalRef.destroy();
|
||||
if (!this.sf.valid) {
|
||||
this.service.msgSrv.error('请填写必填项!');
|
||||
return;
|
||||
}
|
||||
let params = {
|
||||
partnerId: this.i?.partnerId,
|
||||
month: this.i.month,
|
||||
year: this.i.year,
|
||||
...this.sf.value
|
||||
};
|
||||
this.service.request(this.service.$api_get_partnerIncomeExceptionAdd,params).subscribe((res) => {
|
||||
if(res) {
|
||||
this.service.msgSrv.success('保存成功!');
|
||||
this.modalRef.destroy();
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
@ -23,7 +23,7 @@
|
||||
<st
|
||||
#st
|
||||
[bordered]="true"
|
||||
[data]="service.$api_get_listCompliancePage"
|
||||
[data]="service.$api_get_partnerIncomeDetail"
|
||||
[columns]="columns"
|
||||
[req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, params: reqParams }"
|
||||
[res]="{ reName: { list: 'data.records', total: 'data.total' } }"
|
||||
|
||||
@ -21,6 +21,7 @@ export class ParterRebateManageMenRecordDetailComponent implements OnInit {
|
||||
spuStatus = '1';
|
||||
size: NzButtonSize = 'large';
|
||||
_$expand = false;
|
||||
record: any;
|
||||
data = [{ name1: 1111 }];
|
||||
constructor(public service: RebateManagementService, public shipperservice: ShipperBaseService, public modalRef: NzModalRef) {}
|
||||
/**
|
||||
@ -43,10 +44,13 @@ export class ParterRebateManageMenRecordDetailComponent implements OnInit {
|
||||
const params: any = Object.assign({}, this.sf?.value || {});
|
||||
delete params._$expand;
|
||||
return {
|
||||
partnerId: this.record.partnerId,
|
||||
...params
|
||||
};
|
||||
}
|
||||
ngOnInit() {
|
||||
console.log(this.record);
|
||||
|
||||
this.initSF();
|
||||
this.initST();
|
||||
}
|
||||
@ -54,7 +58,7 @@ export class ParterRebateManageMenRecordDetailComponent implements OnInit {
|
||||
initSF() {
|
||||
this.schema = {
|
||||
properties: {
|
||||
enterpriseInfoId: {
|
||||
ltdId: {
|
||||
type: 'string',
|
||||
title: '网络货运人',
|
||||
ui: {
|
||||
@ -68,18 +72,27 @@ export class ParterRebateManageMenRecordDetailComponent implements OnInit {
|
||||
}
|
||||
}
|
||||
},
|
||||
paymentStatus: {
|
||||
bankType: {
|
||||
title: '银行类型',
|
||||
type: 'string',
|
||||
ui: {
|
||||
widget: 'dict-select',
|
||||
params: { dictKey: 'overall:payment:status' },
|
||||
containsAllLabel: true,
|
||||
change: (value: any) => {
|
||||
console.log(value);
|
||||
this.st.reload();
|
||||
enum: [
|
||||
{
|
||||
label: '全部',
|
||||
value: ''
|
||||
},
|
||||
{
|
||||
label: '平安银行',
|
||||
value: '1'
|
||||
},
|
||||
{
|
||||
label: '浦发银行',
|
||||
value: '2'
|
||||
}
|
||||
} as SFSelectWidgetSchema
|
||||
],
|
||||
ui: {
|
||||
widget: 'select',
|
||||
containsAllLabel: true
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
@ -93,6 +106,10 @@ export class ParterRebateManageMenRecordDetailComponent implements OnInit {
|
||||
|
||||
initST() {
|
||||
this.columns = [
|
||||
{
|
||||
title: '网络货运人',
|
||||
index: 'billCode'
|
||||
},
|
||||
{
|
||||
title: '订单号',
|
||||
index: 'billCode'
|
||||
@ -106,7 +123,7 @@ export class ParterRebateManageMenRecordDetailComponent implements OnInit {
|
||||
index: 'name1'
|
||||
},
|
||||
{
|
||||
title: '预估返佣金额(元)',
|
||||
title: '返佣金额(元)',
|
||||
index: 'name1'
|
||||
},
|
||||
{
|
||||
@ -118,27 +135,11 @@ export class ParterRebateManageMenRecordDetailComponent implements OnInit {
|
||||
index: 'name1'
|
||||
},
|
||||
{
|
||||
title: '网络货运人',
|
||||
title: '银行类型',
|
||||
index: 'name1'
|
||||
},
|
||||
{
|
||||
title: '销售渠道',
|
||||
index: 'name1'
|
||||
},
|
||||
{
|
||||
title: '合伙人名称',
|
||||
index: 'name1'
|
||||
},
|
||||
{
|
||||
title: '合伙人等级',
|
||||
index: 'name1'
|
||||
},
|
||||
{
|
||||
title: '管理费比例',
|
||||
index: 'name1'
|
||||
},
|
||||
{
|
||||
title: '固定结算费率',
|
||||
title: '虚拟账户',
|
||||
index: 'name1'
|
||||
},
|
||||
{
|
||||
|
||||
@ -1,10 +1,10 @@
|
||||
/*
|
||||
* @Description :
|
||||
* @Description :
|
||||
* @Version : 1.0
|
||||
* @Author : Shiming
|
||||
* @Date : 2022-03-10 11:19:00
|
||||
* @LastEditors : Shiming
|
||||
* @LastEditTime : 2022-04-25 19:23:25
|
||||
* @LastEditTime : 2022-05-12 15:36:23
|
||||
* @FilePath : \\tms-obc-web\\src\\app\\routes\\partner\\rebate-management\\services\\rebate-management.service.ts
|
||||
* Copyright (C) 2022 huzhenhong. All rights reserved.
|
||||
*/
|
||||
@ -12,7 +12,7 @@ import { Injectable, Injector } from '@angular/core';
|
||||
import { BaseService } from '@shared';
|
||||
|
||||
@Injectable({
|
||||
providedIn: 'root',
|
||||
providedIn: 'root'
|
||||
})
|
||||
export class RebateManagementService extends BaseService {
|
||||
// 查询规则抽查列表
|
||||
@ -24,17 +24,26 @@ export class RebateManagementService extends BaseService {
|
||||
// 启用/禁用返佣配置
|
||||
public $api_set_updateRebateConfig = '/api/mdc/rebateConfig/updateRebateConfig';
|
||||
|
||||
|
||||
// 运营端查询合伙人返佣
|
||||
public $api_get_getIncomeByBillpage = '/api/bpc/partnerIncomeHead/getIncomeByBillpage';
|
||||
// 获取返佣模板信息
|
||||
public $api_get_getPartnerRebateConfigInfo = '/api/mdc/rebateConfig/getPartnerRebateConfigInfo';
|
||||
// 合伙人管理/返佣管理/返佣明细
|
||||
public $api_get_searchPageList= '/api/fcc/billPaymentApplicationOBC/list/searchPageList';
|
||||
public $api_get_searchPageList = '/api/fcc/billPaymentApplicationOBC/list/searchPageList';
|
||||
// 合伙人管理/返佣管理/退款返佣明细
|
||||
public $api_get_searchRefundPageList= '/api/fcc/billPaymentApplicationOBC/list/searchRefundPageList';
|
||||
// 查询合伙人信息-分页
|
||||
public $api_get_partner_page = '/api/mdc/partner/list/page';
|
||||
public $api_get_searchRefundPageList = '/api/fcc/billPaymentApplicationOBC/list/searchRefundPageList'; // 查询合伙人信息-分页
|
||||
public $api_get_partner_page = '/api/mdc/partner/list/page';
|
||||
|
||||
// 查询查询返佣记录列表-分页
|
||||
public $api_get_partnerIncomeHead = '/api/fcc/partnerIncomeHead/list/rebate';
|
||||
// 查询返佣记录明细
|
||||
public $api_get_partnerIncomeDetail = '/api/fcc/partnerIncomeDetail/rebate/detail';
|
||||
// 导出返佣记录明细
|
||||
public $api_get_partnerIncomeHead_export = '/api/fcc/partnerIncomeDetail/rebate/detail/export';
|
||||
// 根据合伙人id、年、月 查询异常反馈信息(反馈异常查下)
|
||||
public $api_get_getExceptionMessage = '/api/fcc/partnerIncomeDetailException/getExceptionMessage';
|
||||
// 保存合伙人收益账单详情-异常反馈表(反馈异常提交)
|
||||
public $api_get_partnerIncomeExceptionAdd = '/api/fcc/partnerIncomeDetailException/partnerIncomeExceptionAdd';
|
||||
constructor(public injector: Injector) {
|
||||
super(injector);
|
||||
}
|
||||
|
||||
@ -4,8 +4,8 @@
|
||||
* @Author : Shiming
|
||||
* @Date : 2022-01-05 20:15:41
|
||||
* @LastEditors : Shiming
|
||||
* @LastEditTime : 2022-01-18 17:17:19
|
||||
* @FilePath : \\tms-obc-web\\src\\app\\routes\\financial-management\\components\\withdrawals-record\\withdrawals-detail\\withdrawals-detail.component.html
|
||||
* @LastEditTime : 2022-05-11 15:06:17
|
||||
* @FilePath : \\tms-obc-web\\src\\app\\routes\\partner\\recorded\\components\\detail\\detail.component.html
|
||||
* Copyright (C) 2022 huzhenhong. All rights reserved.
|
||||
-->
|
||||
<page-header-wrapper [title]="'入账详情'" [logo]="logo" [action]="action">
|
||||
@ -40,7 +40,7 @@
|
||||
{{formData?.entryNumber}}
|
||||
</se>
|
||||
<se label="银行类型">
|
||||
{{formData?.bankName}}
|
||||
{{formData?.bankType}}
|
||||
</se>
|
||||
<se label="虚拟账户">
|
||||
{{formData?.fictitiousAccount}}
|
||||
@ -58,7 +58,10 @@
|
||||
{{formData?.recordedAmount | currency}}
|
||||
</se>
|
||||
<se label="入账状态">
|
||||
{{formData?.stsLabel}}
|
||||
<span *ngIf="formData?.sts == '1'">待审核</span>
|
||||
<span *ngIf="formData?.sts == '2'">待复核</span>
|
||||
<span *ngIf="formData?.sts == '3'">已入账</span>
|
||||
<span *ngIf="formData?.sts == '4'">已驳回</span>
|
||||
</se>
|
||||
<se label="发票图片">
|
||||
<img *ngIf="formData?.invoiceUrl" nz-image width="100px" height="100px" [nzSrc]="formData?.invoiceUrl" alt="" />
|
||||
|
||||
@ -3,7 +3,6 @@ import { ActivatedRoute } from '@angular/router';
|
||||
import { NzModalService } from 'ng-zorro-antd/modal';
|
||||
import { RecordedService } from '../../services/recorded.service';
|
||||
|
||||
|
||||
@Component({
|
||||
selector: 'app-partner-recored-detail',
|
||||
templateUrl: './detail.component.html',
|
||||
@ -21,52 +20,75 @@ export class PartnerRecordedDetailComponent implements OnInit {
|
||||
this.getRecordedDetail(this.id);
|
||||
}
|
||||
|
||||
ngOnInit(): void { }
|
||||
ngOnInit(): void {}
|
||||
|
||||
getRecordedDetail(id: string) {
|
||||
this.service.request(this.service.$api_get_recorded_record_detail, { id }).subscribe(res => {
|
||||
if (res) {
|
||||
this.formData = res;
|
||||
|
||||
}
|
||||
});
|
||||
this.service.request(this.service.$api_get_getPartnerInvoiceEntryDetail, { id }).subscribe(res => {
|
||||
if (res) {
|
||||
// 处理流程节点数据
|
||||
// 流程是否结束
|
||||
// let isEnd = false;
|
||||
// if (res.successTime) {
|
||||
// isEnd = true;
|
||||
// if (res.refundStatus === '3') {
|
||||
// this.timeLineData.push({ time: res.successTime, value: `到账成功`, color: 'green' });
|
||||
// } else {
|
||||
// this.timeLineData.push({ time: res.successTime, value: `提现失败`, color: 'red' });
|
||||
// }
|
||||
// }
|
||||
// if (res.agreeTime && res.refundStatus !== '4') {
|
||||
// this.timeLineData.push({ time: res.agreeTime, value: `银行处理中`, color: 'gray' });
|
||||
// }
|
||||
// if (res.agreeTime) {
|
||||
// if (res.refundStatus === '4') {
|
||||
// isEnd = true;
|
||||
// this.timeLineData.push({
|
||||
// time: res.agreeTime,
|
||||
// value: `拒绝提现<br/>操作人员:${res.handlerUserIdLabel}`,
|
||||
// color: 'red'
|
||||
// });
|
||||
// } else {
|
||||
// this.timeLineData.push({
|
||||
// time: res.agreeTime,
|
||||
// value: `审核通过<br/>操作人员:${res.handlerUserIdLabel}`,
|
||||
// color: 'gray'
|
||||
// });
|
||||
// }
|
||||
// }
|
||||
// if (res.createTime) {
|
||||
// this.timeLineData.push({
|
||||
// time: res.createTime,
|
||||
// value: `提交提现申请<br/>提现${res.amount}元至${res.bankName}(${res.bankCardNumber})<br/>操作人员:${res.userIdLabel}`,
|
||||
// color: 'gray'
|
||||
// });
|
||||
// }
|
||||
// if (this.timeLineData?.length > 0 && !isEnd) {
|
||||
// this.timeLineData[0].color = 'green';
|
||||
// }
|
||||
console.log(res);
|
||||
// submitTime creattime
|
||||
let isEnd = false;
|
||||
if (res.reAuditTime) {
|
||||
isEnd = true;
|
||||
if (res.sts === '3') {
|
||||
this.timeLineData.push({ time: res.successTime, value: `到账成功`, color: 'green' });
|
||||
} else {
|
||||
this.timeLineData.push({ time: res.successTime, value: `提现失败`, color: 'red' });
|
||||
}
|
||||
}
|
||||
if (res.agreeTime && res.refundStatus !== '4') {
|
||||
this.timeLineData.push({ time: res.agreeTime, value: `银行处理中`, color: 'gray' });
|
||||
}
|
||||
if (res.reAuditTime) {
|
||||
if (res.refundStatus === '4') {
|
||||
isEnd = true;
|
||||
this.timeLineData.push({
|
||||
time: res.reAuditTime,
|
||||
value: `拒绝提现<br/>操作人员:${res.handlerUserIdLabel}`,
|
||||
color: 'red'
|
||||
});
|
||||
} else {
|
||||
this.timeLineData.push({
|
||||
time: res.reAuditTime,
|
||||
value: `审核通过<br/>操作人员:${res.handlerUserIdLabel}`,
|
||||
color: 'gray'
|
||||
});
|
||||
}
|
||||
}
|
||||
if (res.agreeTime) {
|
||||
if (res.refundStatus === '4') {
|
||||
isEnd = true;
|
||||
this.timeLineData.push({
|
||||
time: res.agreeTime,
|
||||
value: `拒绝提现<br/>操作人员:${res.handlerUserIdLabel}`,
|
||||
color: 'red'
|
||||
});
|
||||
} else {
|
||||
this.timeLineData.push({
|
||||
time: res.agreeTime,
|
||||
value: `审核通过<br/>操作人员:${res.handlerUserIdLabel}`,
|
||||
color: 'gray'
|
||||
});
|
||||
}
|
||||
}
|
||||
if (res.createTime) {
|
||||
this.timeLineData.push({
|
||||
time: res.createTime,
|
||||
value: `提交提现申请<br/>提现${res.amount}元至${res.bankName}(${res.bankCardNumber})<br/>操作人员:${res.userIdLabel}`,
|
||||
color: 'gray'
|
||||
});
|
||||
}
|
||||
if (this.timeLineData?.length > 0 && !isEnd) {
|
||||
this.timeLineData[0].color = 'green';
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
@ -87,18 +109,28 @@ export class PartnerRecordedDetailComponent implements OnInit {
|
||||
this.service.msgSrv.warning('请填写拒绝原因 ');
|
||||
return;
|
||||
}
|
||||
this.audit({ ids: params, rejectReason: this.msg, sts: '3' }, () => {
|
||||
modal.destroy(true);
|
||||
}, '审核拒绝成功');
|
||||
this.audit(
|
||||
{ ids: params, rejectReason: this.msg, sts: '3' },
|
||||
() => {
|
||||
modal.destroy(true);
|
||||
},
|
||||
'审核拒绝成功'
|
||||
);
|
||||
}
|
||||
},
|
||||
{
|
||||
label: '通过',
|
||||
type: 'primary',
|
||||
onClick: () => {
|
||||
this.audit({ ids: params, rejectReason: this.msg, sts: this.formData?.sts === '0' ? 1 : 2 }, () => {
|
||||
modal.destroy(true);
|
||||
}, `${this.formData?.sts === '1' ? '审核' : '复审'}通过成功`);
|
||||
console.log(this.formData?.sts);
|
||||
|
||||
this.audit(
|
||||
{ ids: params, rejectReason: this.msg, sts: this.formData?.sts === '0' ? 1 : 2 },
|
||||
() => {
|
||||
modal.destroy(true);
|
||||
},
|
||||
`${this.formData?.sts === '1' ? '审核' : '复审'}通过成功`
|
||||
);
|
||||
}
|
||||
}
|
||||
]
|
||||
@ -117,13 +149,11 @@ export class PartnerRecordedDetailComponent implements OnInit {
|
||||
* 审核
|
||||
*/
|
||||
audit(params: any, callback: Function, msg = '成功') {
|
||||
this.service
|
||||
.request(this.service.$api_audit_recored, ...params)
|
||||
.subscribe(res => {
|
||||
if (res) {
|
||||
this.service.msgSrv.success(msg);
|
||||
callback();
|
||||
}
|
||||
});
|
||||
this.service.request(this.service.$api_audit_recored, {...params}).subscribe(res => {
|
||||
if (res) {
|
||||
this.service.msgSrv.success(msg);
|
||||
callback();
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,16 +1,29 @@
|
||||
<!--
|
||||
* @Description :
|
||||
* @Version : 1.0
|
||||
* @Author : Shiming
|
||||
* @Date : 2022-04-29 17:28:23
|
||||
* @LastEditors : Shiming
|
||||
* @LastEditTime : 2022-05-11 14:25:14
|
||||
* @FilePath : \\tms-obc-web\\src\\app\\routes\\partner\\recorded\\components\\record\\record.component.html
|
||||
* Copyright (C) 2022 huzhenhong. All rights reserved.
|
||||
-->
|
||||
<page-header-wrapper [title]="''"></page-header-wrapper>
|
||||
<nz-card class="search-box" nzBordered>
|
||||
<div nz-row nzGutter="8">
|
||||
<div nz-col [nzXl]="_$expand ? 24 : 18" [nzLg]="24" [nzSm]="24" [nzXs]="24">
|
||||
<sf #sf [schema]="searchSchema"
|
||||
[ui]="{ '*': { spanLabelFixed: 90,grid: { lg: 8, md: 12, sm: 12, xs: 24,gutter:15 } }}" [compact]="true"
|
||||
[button]="'none'"></sf>
|
||||
<sf
|
||||
#sf
|
||||
[schema]="searchSchema"
|
||||
[ui]="{ '*': { spanLabelFixed: 90, grid: { lg: 8, md: 12, sm: 12, xs: 24, gutter: 15 } } }"
|
||||
[compact]="true"
|
||||
[button]="'none'"
|
||||
></sf>
|
||||
</div>
|
||||
<div nz-col [nzXl]="_$expand ? 24 : 6" [nzLg]="24" [nzSm]="24" [nzXs]="24" [class.expend-options]="_$expand"
|
||||
class="text-right">
|
||||
<div nz-col [nzXl]="_$expand ? 24 : 6" [nzLg]="24" [nzSm]="24" [nzXs]="24" [class.expend-options]="_$expand" class="text-right">
|
||||
<button nz-button nzType="primary" (click)="search()">查询</button>
|
||||
<button nz-button (click)="resetSF()">重置</button>
|
||||
<button nz-button acl [acl-ability]="['RECORDED-LIST-export']"> 导出</button>
|
||||
<button nz-button acl [acl-ability]="['RECORDED-LIST-export']"> 导出</button>
|
||||
<button nz-button nzType="link" (click)="expandToggle()">
|
||||
{{ !_$expand ? '展开' : '收起' }}
|
||||
<i nz-icon [nzType]="!_$expand ? 'down' : 'up'"></i>
|
||||
@ -21,7 +34,7 @@
|
||||
|
||||
<nz-card class="content-box" nzBordered>
|
||||
<nz-tabset [nzTabBarExtraContent]="extraTemplate">
|
||||
<nz-tab nzTitle="全部" (nzClick)="changeRefundStatus()"></nz-tab>
|
||||
<nz-tab nzTitle="全部" (nzClick)="changeRefundStatus('0')"></nz-tab>
|
||||
<nz-tab nzTitle="待初审" (nzClick)="changeRefundStatus('1')"></nz-tab>
|
||||
<nz-tab nzTitle="待复核" (nzClick)="changeRefundStatus('2')"></nz-tab>
|
||||
<nz-tab nzTitle="已入账" (nzClick)="changeRefundStatus('3')"></nz-tab>
|
||||
@ -29,37 +42,55 @@
|
||||
</nz-tabset>
|
||||
|
||||
<ng-template #extraTemplate>
|
||||
<div class="d-flex align-items-center ">
|
||||
<div class="d-flex align-items-center">
|
||||
<div class="mr-md">
|
||||
已选择
|
||||
<strong class="text-red">{{ selectedRows.length }}</strong> 条数据,累计入账 <strong class="text-red">{{
|
||||
totalCallNo }}</strong>
|
||||
<strong class="text-red">{{ selectedRows.length }}</strong> 条数据,累计入账 <strong class="text-red">{{ totalCallNo }}</strong>
|
||||
<!-- <a *ngIf="totalCallNo > 0" (click)="st.clearCheck()" class="ml-lg">清空</a> -->
|
||||
</div>
|
||||
<button nz-button (click)="this.auditAction(null)" acl [acl-ability]="['RECORDED-LIST-audit']">审核</button>
|
||||
<button nz-button (click)="this.auditAction(null)" acl [acl-ability]="['RECORDED-LIST-audit']">审核</button>
|
||||
</div>
|
||||
</ng-template>
|
||||
|
||||
<div class="table-content">
|
||||
<st #st [data]="service.$api_get_recorded_page" [columns]="columns"
|
||||
[req]="{ method: 'POST', allInBody: true,process: beforeReq}" [loading]="service.http.loading"
|
||||
[scroll]="{ x:'1200px' }" (change)="stChange($event)"
|
||||
<st
|
||||
#st
|
||||
[data]="service.$api_get_recorded_page"
|
||||
[columns]="columns"
|
||||
[req]="{ method: 'POST', allInBody: true, process: beforeReq }"
|
||||
[loading]="service.http.loading"
|
||||
[scroll]="{ x: '1200px' }"
|
||||
(change)="stChange($event)"
|
||||
[res]="{ reName: { list: 'data.records', total: 'data.total' }, process: afterRes }"
|
||||
[page]="{ show: true, pageSizes: [10, 20, 50, 100, 200, 500] }">
|
||||
[page]="{ show: true, pageSizes: [10, 20, 50, 100, 200, 500] }"
|
||||
>
|
||||
<ng-template st-row="bankCardNumber" let-item let-index="index" let-column="column">
|
||||
{{ item.bankName }} <br> {{ item.bankCardNumber }}
|
||||
{{ item.bankName }} <br />
|
||||
{{ item.bankCardNumber }}
|
||||
</ng-template>
|
||||
<ng-template st-row="sts" let-item let-index="index" let-column="column">
|
||||
<div *ngIf="item.sts == '0'">待初审</div>
|
||||
<div *ngIf="item.sts == '1'">待复核</div>
|
||||
<div *ngIf="item.sts == '2'">已入账</div>
|
||||
<div *ngIf="item.sts == '3'">已拒绝</div>
|
||||
</ng-template>
|
||||
</st>
|
||||
<div class=" text-md" *ngIf="st?.list?.length !== 0 ">
|
||||
<span class="mr-md">合伙人数:<label
|
||||
class="text-red-dark font-weight-bold">{{totalInfo?.invoiceAmountSum}}</label></span>
|
||||
<span class="mr-md">入账笔数:<label class="text-red-dark font-weight-bold">{{totalInfo?.count}}</label></span>
|
||||
<span class="mr-md">开票金额:<label
|
||||
class="text-red-dark font-weight-bold">{{totalInfo?.invoiceEntryNum}}</label></span>
|
||||
<span class="mr-md">代缴个税:<label
|
||||
class="text-red-dark font-weight-bold">{{totalInfo?.taxPersonalSum}}</label></span>
|
||||
<span class="mr-md">入账金额:<label
|
||||
class="text-red-dark font-weight-bold">{{totalInfo?.recordedAmountSum}}</label></span>
|
||||
<div class="text-md" *ngIf="st?.list?.length !== 0">
|
||||
<span class="mr-md"
|
||||
>合伙人数:<label class="text-red-dark font-weight-bold">{{ totalInfo?.partnerNum }}</label></span
|
||||
>
|
||||
<span class="mr-md"
|
||||
>入账笔数:<label class="text-red-dark font-weight-bold">{{ totalInfo?.invoiceEntryNum }}</label></span
|
||||
>
|
||||
<span class="mr-md"
|
||||
>开票金额:<label class="text-red-dark font-weight-bold">{{ totalInfo?.invoiceAmountSum }}</label></span
|
||||
>
|
||||
<span class="mr-md"
|
||||
>代缴个税:<label class="text-red-dark font-weight-bold">{{ totalInfo?.taxPersonalSum }}</label></span
|
||||
>
|
||||
<span class="mr-md"
|
||||
>入账金额:<label class="text-red-dark font-weight-bold">{{ totalInfo?.recordedAmountSum }}</label></span
|
||||
>
|
||||
</div>
|
||||
</div>
|
||||
</nz-card>
|
||||
@ -68,8 +99,13 @@
|
||||
<div nz-row nzGutter="8">
|
||||
<div nz-col nzSpan="24" se-container [labelWidth]="80">
|
||||
<se [col]="1" label="备注">
|
||||
<textarea nz-input rows="3" [(ngModel)]="msg" placeholder="同意可以不用填写原因 ,拒绝必须说明原因"
|
||||
style="width: 325px;margin-left: 14px;"></textarea>
|
||||
<textarea
|
||||
nz-input
|
||||
rows="3"
|
||||
[(ngModel)]="msg"
|
||||
placeholder="同意可以不用填写原因 ,拒绝必须说明原因"
|
||||
style="width: 325px; margin-left: 14px"
|
||||
></textarea>
|
||||
</se>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -8,7 +8,6 @@ import { FreightAccountService } from 'src/app/routes/financial-management/servi
|
||||
import Big from 'src/app/shared/utils/deal-precision';
|
||||
import { RecordedService } from '../../services/recorded.service';
|
||||
|
||||
|
||||
@Component({
|
||||
selector: 'app-partner-recorded-record',
|
||||
templateUrl: './record.component.html',
|
||||
@ -22,12 +21,12 @@ export class PartnerRecordedRecordComponent implements OnInit {
|
||||
columns!: STColumn[];
|
||||
searchSchema!: SFSchema;
|
||||
totalInfo: any = {
|
||||
invoiceAmountSum: 0,
|
||||
invoiceEntryNum: 0,
|
||||
partnerNum: 0,
|
||||
recordedAmountSum: 0,
|
||||
taxPersonalSum: 0
|
||||
}
|
||||
invoiceEntryNum: 0,
|
||||
invoiceAmountSum: 0,
|
||||
taxPersonalSum: 0,
|
||||
recordedAmountSum: 0
|
||||
};
|
||||
|
||||
_$expand = false;
|
||||
|
||||
@ -40,16 +39,20 @@ export class PartnerRecordedRecordComponent implements OnInit {
|
||||
ltdId = ''; // 网络货运人
|
||||
accountName = ''; // 账户名称
|
||||
|
||||
|
||||
constructor(public service: RecordedService, private nzModalService: NzModalService,
|
||||
private router: Router, public ar: ActivatedRoute, public shipperSrv: ShipperBaseService) {
|
||||
constructor(
|
||||
public service: RecordedService,
|
||||
private nzModalService: NzModalService,
|
||||
private router: Router,
|
||||
public ar: ActivatedRoute,
|
||||
public shipperSrv: ShipperBaseService
|
||||
) {
|
||||
this.ltdId = this.ar.snapshot.queryParams?.ltdId || '';
|
||||
|
||||
}
|
||||
|
||||
ngOnInit(): void {
|
||||
this.searchSchema = this.initSF();
|
||||
this.columns = this.initST();
|
||||
this.getSummary()
|
||||
}
|
||||
|
||||
beforeReq = (requestOptions: STRequestOptions) => {
|
||||
@ -60,7 +63,7 @@ export class PartnerRecordedRecordComponent implements OnInit {
|
||||
start: this.sf?.value.createTime?.[0] || '',
|
||||
end: this.sf?.value.createTime?.[1] || ''
|
||||
},
|
||||
refundStatus: this.refundStatus || null
|
||||
sts: this.refundStatus || ''
|
||||
});
|
||||
}
|
||||
delete requestOptions?.body?.expand;
|
||||
@ -68,7 +71,7 @@ export class PartnerRecordedRecordComponent implements OnInit {
|
||||
};
|
||||
|
||||
afterRes = (data: any[], rawData?: any) => {
|
||||
// data = data.map(node => ({ ...node, disabled: node.sts !== '0' }));
|
||||
data = data.map(node => ({ ...node, disabled: node.sts !== '0' }));
|
||||
return data;
|
||||
};
|
||||
|
||||
@ -81,16 +84,15 @@ export class PartnerRecordedRecordComponent implements OnInit {
|
||||
const stList = this.st.list;
|
||||
stList.forEach(item => {
|
||||
this.selectedRows = this.selectedRows.filter((e: any) => e.id !== item.id);
|
||||
})
|
||||
});
|
||||
} else {
|
||||
//添加新增的行
|
||||
checkRows.forEach((item: any) => {
|
||||
const newSelectedList = this.selectedRows.filter((r: any) => r.id === item.id);
|
||||
if (newSelectedList.length === 0) {
|
||||
this.selectedRows.push(item);
|
||||
|
||||
}
|
||||
})
|
||||
});
|
||||
// 移除取消选中的行
|
||||
const stList = this.st.list;
|
||||
stList.forEach(item => {
|
||||
@ -98,17 +100,17 @@ export class PartnerRecordedRecordComponent implements OnInit {
|
||||
const index = this.selectedRows.findIndex(_item => item.id === _item.id);
|
||||
if (index !== -1) this.selectedRows.splice(index, 1);
|
||||
}
|
||||
})
|
||||
});
|
||||
}
|
||||
let totalCallNo = 0;
|
||||
this.selectedRows.forEach((item => {
|
||||
this.selectedRows.forEach(item => {
|
||||
totalCallNo = new Big(this.totalCallNo).plus(item?.entryAmount).parse();
|
||||
}));
|
||||
});
|
||||
this.totalCallNo = totalCallNo;
|
||||
} else if (e.type === 'loaded') {
|
||||
// 页面加载时勾选
|
||||
(e?.loaded || []).forEach((r) => {
|
||||
this.selectedRows.forEach((x) => {
|
||||
(e?.loaded || []).forEach(r => {
|
||||
this.selectedRows.forEach(x => {
|
||||
if (x.id === r.id) {
|
||||
r.checked = true;
|
||||
}
|
||||
@ -117,8 +119,27 @@ export class PartnerRecordedRecordComponent implements OnInit {
|
||||
}
|
||||
}
|
||||
|
||||
changeRefundStatus(status?: string) {
|
||||
this.refundStatus = status || null;
|
||||
changeRefundStatus(status: any) {
|
||||
let value = '';
|
||||
switch (status) {
|
||||
case '0':
|
||||
value = '';
|
||||
break;
|
||||
case '1':
|
||||
value = '0';
|
||||
break;
|
||||
case '2':
|
||||
value = '1';
|
||||
break;
|
||||
case '3':
|
||||
value = '2';
|
||||
break;
|
||||
case '4':
|
||||
value = '3';
|
||||
break;
|
||||
}
|
||||
|
||||
this.refundStatus = value || null;
|
||||
this.st.load(1);
|
||||
}
|
||||
|
||||
@ -146,10 +167,14 @@ export class PartnerRecordedRecordComponent implements OnInit {
|
||||
this.service.msgSrv.warning('请填写拒绝原因 ');
|
||||
return;
|
||||
}
|
||||
this.audit({ ids: params, rejectReason: this.msg, sts: '3' }, () => {
|
||||
modal.destroy();
|
||||
this.st.load(1);
|
||||
}, '审核拒绝成功');
|
||||
this.audit(
|
||||
{ ids: params, rejectReason: this.msg, sts: '3' },
|
||||
() => {
|
||||
modal.destroy();
|
||||
this.st.load(1);
|
||||
},
|
||||
'审核拒绝成功'
|
||||
);
|
||||
// this.service
|
||||
// .request(this.service.$api_disagree_recorded, {
|
||||
// id: params,
|
||||
@ -168,10 +193,14 @@ export class PartnerRecordedRecordComponent implements OnInit {
|
||||
label: '通过',
|
||||
type: 'primary',
|
||||
onClick: () => {
|
||||
this.audit({ ids: params, rejectReason: this.msg, sts: '1' }, () => {
|
||||
modal.destroy();
|
||||
this.st.load(1);
|
||||
}, '审核通过成功');
|
||||
this.audit(
|
||||
{ ids: params, rejectReason: this.msg, sts: '1' },
|
||||
() => {
|
||||
modal.destroy();
|
||||
this.st.load(1);
|
||||
},
|
||||
'审核通过成功'
|
||||
);
|
||||
}
|
||||
}
|
||||
]
|
||||
@ -230,22 +259,22 @@ export class PartnerRecordedRecordComponent implements OnInit {
|
||||
placeholder: '请输入'
|
||||
}
|
||||
},
|
||||
sts: {
|
||||
type: 'string',
|
||||
title: '入账状态',
|
||||
default: '',
|
||||
enum: [
|
||||
{ label: '全部', value: '' },
|
||||
{ label: '待初审', value: '0' },
|
||||
{ label: '待复核', value: '1' },
|
||||
{ label: '已入账', value: '2' },
|
||||
{ label: '已拒绝', value: '3' },
|
||||
],
|
||||
ui: {
|
||||
widget: 'select',
|
||||
placeholder: '请选择'
|
||||
}
|
||||
},
|
||||
// sts: {
|
||||
// type: 'string',
|
||||
// title: '入账状态',
|
||||
// default: '',
|
||||
// enum: [
|
||||
// { label: '全部', value: '' },
|
||||
// { label: '待初审', value: '0' },
|
||||
// { label: '待复核', value: '1' },
|
||||
// { label: '已入账', value: '2' },
|
||||
// { label: '已拒绝', value: '3' },
|
||||
// ],
|
||||
// ui: {
|
||||
// widget: 'select',
|
||||
// placeholder: '请选择'
|
||||
// }
|
||||
// },
|
||||
ltdId: {
|
||||
type: 'string',
|
||||
title: '网络货运人',
|
||||
@ -254,7 +283,7 @@ export class PartnerRecordedRecordComponent implements OnInit {
|
||||
widget: 'select',
|
||||
placeholder: '请选择',
|
||||
allowClear: true,
|
||||
asyncData: () => this.shipperSrv.getNetworkFreightForwarder({}, true),
|
||||
asyncData: () => this.shipperSrv.getNetworkFreightForwarder({}, true)
|
||||
}
|
||||
},
|
||||
submitTime: {
|
||||
@ -269,7 +298,7 @@ export class PartnerRecordedRecordComponent implements OnInit {
|
||||
expand: (value: boolean) => value
|
||||
}
|
||||
} as SFDateWidgetSchema
|
||||
},
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
@ -283,11 +312,11 @@ export class PartnerRecordedRecordComponent implements OnInit {
|
||||
{ title: '网络货运人', index: 'ltdName', width: 220, className: 'text-center' },
|
||||
{
|
||||
title: '开票金额',
|
||||
index: 'amount',
|
||||
index: 'invoiceAmount',
|
||||
width: 150,
|
||||
type: 'widget',
|
||||
className: 'text-right',
|
||||
widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.amount }) }
|
||||
widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.invoiceAmount }) }
|
||||
},
|
||||
{
|
||||
title: '代缴个税',
|
||||
@ -295,7 +324,7 @@ export class PartnerRecordedRecordComponent implements OnInit {
|
||||
width: 150,
|
||||
type: 'widget',
|
||||
className: 'text-right',
|
||||
widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.amount }) }
|
||||
widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.taxPersonal }) }
|
||||
},
|
||||
{
|
||||
title: '入账金额',
|
||||
@ -303,11 +332,11 @@ export class PartnerRecordedRecordComponent implements OnInit {
|
||||
width: 150,
|
||||
type: 'widget',
|
||||
className: 'text-right',
|
||||
widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.amount }) }
|
||||
widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.entryAmount }) }
|
||||
},
|
||||
|
||||
{ title: '提交时间', index: 'submitTime', width: 180, className: 'text-center' },
|
||||
{ title: '入账状态', index: 'stsLabel', width: 120, className: 'text-center' },
|
||||
{ title: '入账状态', render: 'sts', width: 120, className: 'text-center' },
|
||||
{
|
||||
title: '操作',
|
||||
fixed: 'right',
|
||||
@ -336,17 +365,15 @@ export class PartnerRecordedRecordComponent implements OnInit {
|
||||
}
|
||||
|
||||
/**
|
||||
* 审核
|
||||
*/
|
||||
* 审核
|
||||
*/
|
||||
audit(params: any, callback: Function, msg = '成功') {
|
||||
this.service
|
||||
.request(this.service.$api_audit_recored, { ...params })
|
||||
.subscribe(res => {
|
||||
if (res) {
|
||||
this.service.msgSrv.success(msg);
|
||||
callback();
|
||||
}
|
||||
});
|
||||
this.service.request(this.service.$api_audit_recored, { ...params }).subscribe(res => {
|
||||
if (res) {
|
||||
this.service.msgSrv.success(msg);
|
||||
callback();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
search() {
|
||||
@ -361,6 +388,6 @@ export class PartnerRecordedRecordComponent implements OnInit {
|
||||
if (res) {
|
||||
this.totalInfo = res;
|
||||
}
|
||||
})
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
* @Author : Shiming
|
||||
* @Date : 2022-04-21 13:49:22
|
||||
* @LastEditors : Shiming
|
||||
* @LastEditTime : 2022-04-25 11:11:58
|
||||
* @LastEditTime : 2022-05-12 15:02:19
|
||||
* @FilePath : \\tms-obc-web\\src\\app\\routes\\partner\\recorded\\services\\recorded.service.ts
|
||||
* Copyright (C) 2022 huzhenhong. All rights reserved.
|
||||
*/
|
||||
@ -22,6 +22,7 @@ export class RecordedService extends BaseService {
|
||||
$api_agree_recorded = ``; // 同意审核
|
||||
$api_audit_recored = `/api/bpc/partnerInvoiceEntry/oprationAudit`; // 审核单据
|
||||
$api_get_list_summary = `/api/bpc/partnerInvoiceEntry/invoiceEntrySummary`; // 每页统计
|
||||
$api_get_getPartnerInvoiceEntryDetail = `/api/bpc/partnerInvoiceEntry/getPartnerInvoiceEntryDetail`; // 获取合伙人发票入账明细
|
||||
constructor(public injector: Injector) {
|
||||
super(injector);
|
||||
}
|
||||
|
||||
@ -9,6 +9,6 @@ const COMPONENTS: any = [DashboardComponent];
|
||||
const NOTROUTECOMPONENTS: any = [];
|
||||
@NgModule({
|
||||
declarations: [...COMPONENTS, ...NOTROUTECOMPONENTS],
|
||||
imports: [CommonModule, RegulatoryDataRoutingModule, SharedModule, SHARED_G2_MODULES]
|
||||
imports: [CommonModule, RegulatoryDataRoutingModule, SharedModule, ...SHARED_G2_MODULES]
|
||||
})
|
||||
export class RegulatoryDataModule {}
|
||||
|
||||
@ -83,11 +83,6 @@ const routes: Routes = [
|
||||
]
|
||||
},
|
||||
// passport
|
||||
{
|
||||
path: 'agreement',
|
||||
component: OrderAgreementComponent,
|
||||
data: { title: '协议', titleI18n: 'app.login.agreement' }
|
||||
},
|
||||
{ path: '', loadChildren: () => import('./passport/passport.module').then(m => m.PassportModule) },
|
||||
{ path: 'exception', loadChildren: () => import('./exception/exception.module').then(m => m.ExceptionModule) },
|
||||
// 单页不包裹Layout
|
||||
|
||||
@ -1,16 +1,23 @@
|
||||
import { NgModule, Type } from '@angular/core';
|
||||
import { SharedModule } from '@shared';
|
||||
import { BasicModuleModule, SharedModule, STWidgetModule } from '@shared';
|
||||
|
||||
// dashboard pages
|
||||
import { DashboardComponent } from './dashboard/dashboard.component';
|
||||
import { RouteRoutingModule } from './routes-routing.module';
|
||||
import { BasicTableComponent } from './commom/components/basic-table/basic-table.component';
|
||||
import { LayoutModule } from '../layout/layout.module';
|
||||
import { GlobalConfigModule } from '../global-config.module';
|
||||
|
||||
const COMPONENTS = [DashboardComponent, BasicTableComponent];
|
||||
const COMPONENTS_NOROUNT: Array<Type<void>> = [];
|
||||
|
||||
@NgModule({
|
||||
imports: [SharedModule, RouteRoutingModule],
|
||||
imports: [
|
||||
LayoutModule,
|
||||
BasicModuleModule,
|
||||
GlobalConfigModule.forRoot(),
|
||||
RouteRoutingModule
|
||||
],
|
||||
declarations: [...COMPONENTS, ...COMPONENTS_NOROUNT],
|
||||
entryComponents: COMPONENTS_NOROUNT
|
||||
})
|
||||
|
||||
@ -98,7 +98,7 @@
|
||||
</ng-template>
|
||||
<ng-template #tpl>
|
||||
<span style="font-size: 14px;"> 国家法规及行政命令禁限运货物不能托运
|
||||
<a target="_blank" [queryParams]="{ type: 15 }" [routerLink]="['/agreement']">《禁运物品说明》</a>
|
||||
<a target="_blank" [queryParams]="{ type: 15 }" [routerLink]="['/passport/agreement']">《禁运物品说明》</a>
|
||||
</span>
|
||||
</ng-template>
|
||||
</sf>
|
||||
|
||||
@ -219,13 +219,23 @@ export class SupplyManagementBulkPublishComponent implements OnInit {
|
||||
// }
|
||||
}
|
||||
},
|
||||
goodsName: {
|
||||
type: 'string',
|
||||
title: '货物名称',
|
||||
ui: {
|
||||
// hidden: true,
|
||||
// visibleIf: {
|
||||
// goodsTypeName: (value: any) => value && value !== '其它'
|
||||
// }
|
||||
}
|
||||
},
|
||||
goodsTypeId: {
|
||||
type: 'string',
|
||||
title: '货物类型',
|
||||
title: '',
|
||||
ui: {
|
||||
widget: 'select',
|
||||
placeholder: '请选择',
|
||||
errors: { required: '请选择货物类型' },
|
||||
errors: { required: '请选择货物名称' },
|
||||
asyncData: () =>
|
||||
this.shipperSrv.loadConfigByKey('goods.name.config.type').pipe(
|
||||
map((data: any) => {
|
||||
@ -247,47 +257,38 @@ export class SupplyManagementBulkPublishComponent implements OnInit {
|
||||
hidden: true
|
||||
}
|
||||
},
|
||||
goodsNameId: {
|
||||
type: 'string',
|
||||
title: '',
|
||||
ui: {
|
||||
widget: 'select',
|
||||
placeholder: '请选择',
|
||||
errors: { required: '请填写货物类型' },
|
||||
change: (value: any, data: any) => {
|
||||
this.sf3.setValue('/goodsName', data.label);
|
||||
},
|
||||
visibleIf: {
|
||||
goodsTypeName: (value: any) => value && value !== '其它'
|
||||
}
|
||||
}
|
||||
},
|
||||
goodsName: {
|
||||
type: 'string',
|
||||
title: '',
|
||||
ui: {
|
||||
hidden: true,
|
||||
visibleIf: {
|
||||
goodsTypeName: (value: any) => value && value !== '其它'
|
||||
}
|
||||
}
|
||||
},
|
||||
goodsName1: {
|
||||
type: 'string',
|
||||
title: '',
|
||||
maxLength: 20,
|
||||
ui: {
|
||||
errors: { required: '请填写货物类型' },
|
||||
visibleIf: {
|
||||
goodsTypeName: (value: any) => value && value === '其它'
|
||||
},
|
||||
blur: (value: any) => {
|
||||
this.checkGoodsName();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// goodsName1: {
|
||||
// type: 'string',
|
||||
// title: '',
|
||||
// maxLength: 20,
|
||||
// ui: {
|
||||
// errors: { required: '请填写货物名称' },
|
||||
// visibleIf: {
|
||||
// goodsTypeName: (value: any) => value && value === '其它'
|
||||
// },
|
||||
// blur: (value: any) => {
|
||||
// this.checkGoodsName();
|
||||
// }
|
||||
// }
|
||||
// },
|
||||
// goodsNameId: {
|
||||
// type: 'string',
|
||||
// title: '',
|
||||
// ui: {
|
||||
// widget: 'select',
|
||||
// placeholder: '请选择',
|
||||
// errors: { required: '请填写货物名称' },
|
||||
// change: (value: any, data: any) => {
|
||||
// // this.sf3.setValue('/goodsName', data.label);
|
||||
// },
|
||||
// visibleIf: {
|
||||
// goodsTypeName: (value: any) => value && value !== '其它'
|
||||
// }
|
||||
// }
|
||||
// },
|
||||
},
|
||||
required: ['goodsTypeId', 'goodsName', 'goodsNameId', 'goodsName1']
|
||||
required: ['goodsTypeId', 'goodsName', ]
|
||||
};
|
||||
this.ui3 = {
|
||||
'*': {
|
||||
@ -708,10 +709,6 @@ export class SupplyManagementBulkPublishComponent implements OnInit {
|
||||
const LoadingList = this.startInfo.concat(this.endInfo);
|
||||
// 货物信息
|
||||
const sf3Values = { ...this.sf3.value };
|
||||
if (sf3Values.goodsTypeName === '其它') {
|
||||
sf3Values.goodsName = sf3Values.goodsName1;
|
||||
delete sf3Values.goodsName1;
|
||||
}
|
||||
if (this.sf4.value.carModel.includes('999')) {
|
||||
this.sf4.value.carModel = ['999'];
|
||||
}
|
||||
|
||||
@ -235,13 +235,34 @@ export class SupplyManagementBulkReleasePublishComponent implements OnInit {
|
||||
initSF3() {
|
||||
this.schema3 = {
|
||||
properties: {
|
||||
goodsTypeId: {
|
||||
goodsTips: {
|
||||
type: 'string',
|
||||
title: '',
|
||||
ui: {
|
||||
widget: 'custom',
|
||||
class: 'goods_Tips_item',
|
||||
// visibleIf: {
|
||||
// goodsTypeName: (value: any) => value && value === '其它'
|
||||
// }
|
||||
}
|
||||
},
|
||||
goodsName: {
|
||||
type: 'string',
|
||||
title: '货物名称',
|
||||
ui: {
|
||||
// hidden: true,
|
||||
// visibleIf: {
|
||||
// goodsTypeName: (value: any) => value && value !== '其它'
|
||||
// }
|
||||
}
|
||||
},
|
||||
goodsTypeId: {
|
||||
type: 'string',
|
||||
title: '',
|
||||
ui: {
|
||||
widget: 'select',
|
||||
placeholder: '请选择',
|
||||
errors: { required: '请选择货物类型' },
|
||||
errors: { required: '请选择货物名称' },
|
||||
asyncData: () =>
|
||||
this.shipperSrv.loadConfigByKey('goods.name.config.type').pipe(
|
||||
map((data: any) => {
|
||||
@ -263,44 +284,8 @@ export class SupplyManagementBulkReleasePublishComponent implements OnInit {
|
||||
hidden: true
|
||||
}
|
||||
},
|
||||
goodsNameId: {
|
||||
type: 'string',
|
||||
title: '',
|
||||
ui: {
|
||||
widget: 'select',
|
||||
placeholder: '请选择',
|
||||
errors: { required: '请填写货物名称' },
|
||||
change: (value: any, data: any) => {
|
||||
this.sf3.setValue('/goodsName', data.label);
|
||||
},
|
||||
visibleIf: {
|
||||
goodsTypeName: (value: any) => value && value !== '其它'
|
||||
}
|
||||
}
|
||||
},
|
||||
goodsName: {
|
||||
type: 'string',
|
||||
title: '',
|
||||
ui: {
|
||||
hidden: true,
|
||||
visibleIf: {
|
||||
goodsTypeName: (value: any) => value && value !== '其它'
|
||||
}
|
||||
}
|
||||
},
|
||||
goodsName1: {
|
||||
type: 'string',
|
||||
title: '',
|
||||
maxLength: 20,
|
||||
ui: {
|
||||
errors: { required: '请填写货物名称' },
|
||||
visibleIf: {
|
||||
goodsTypeName: (value: any) => value && value === '其它'
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
required: ['goodsTypeId', 'goodsName', 'goodsNameId','goodsName1']
|
||||
required: ['goodsTypeId', 'goodsName', ]
|
||||
};
|
||||
this.ui3 = {
|
||||
'*': {
|
||||
@ -624,10 +609,6 @@ export class SupplyManagementBulkReleasePublishComponent implements OnInit {
|
||||
|
||||
// 货物信息
|
||||
const sf3Values = { ...this.sf3.value };
|
||||
if (sf3Values.goodsTypeName === '其它') {
|
||||
sf3Values.goodsName = sf3Values.goodsName1;
|
||||
delete sf3Values.goodsName1;
|
||||
}
|
||||
if (this.sf4.value.carModel.includes('999')) {
|
||||
this.sf4.value.carModel = ['999']
|
||||
}
|
||||
|
||||
@ -146,7 +146,7 @@
|
||||
</ng-template>
|
||||
<ng-template #tpl>
|
||||
<span style="font-size: 14px;"> 国家法规及行政命令禁限运货物不能托运
|
||||
<a target="_blank" [queryParams]="{ type: 15 }" [routerLink]="['/agreement']">《禁运物品说明》</a>
|
||||
<a target="_blank" [queryParams]="{ type: 15 }" [routerLink]="['/passport/agreement']">《禁运物品说明》</a>
|
||||
</span>
|
||||
</ng-template>
|
||||
</sf>
|
||||
@ -201,7 +201,7 @@
|
||||
<nz-alert nzType="warning" [nzMessage]="template1" nzShowIcon></nz-alert>
|
||||
</ng-template>
|
||||
<ng-template #template1>①香港、澳门、台湾、西藏、新疆不予承保,②单次运输保额仅限200万元以内,③保险详细内容及注意事项请见<a target="_blank"
|
||||
[queryParams]="{ type: 10 }" [routerLink]="['/agreement']">《保险告知函》</a></ng-template>
|
||||
[queryParams]="{ type: 10 }" [routerLink]="['/passport/agreement']">《保险告知函》</a></ng-template>
|
||||
</sf>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -264,13 +264,23 @@ export class SupplyManagementOnecarPublishComponent implements OnInit {
|
||||
// }
|
||||
}
|
||||
},
|
||||
goodsName: {
|
||||
type: 'string',
|
||||
title: '货物名称',
|
||||
ui: {
|
||||
// hidden: true,
|
||||
// visibleIf: {
|
||||
// goodsTypeName: (value: any) => value && value !== '其它'
|
||||
// }
|
||||
}
|
||||
},
|
||||
goodsTypeId: {
|
||||
type: 'string',
|
||||
title: '货物类型',
|
||||
title: '',
|
||||
ui: {
|
||||
widget: 'select',
|
||||
placeholder: '请选择',
|
||||
errors: { required: '请选择货物类型' },
|
||||
errors: { required: '请选择货物名称' },
|
||||
asyncData: () =>
|
||||
this.shipperSrv.loadConfigByKey('goods.name.config.type').pipe(
|
||||
map((data: any) => {
|
||||
@ -292,47 +302,38 @@ export class SupplyManagementOnecarPublishComponent implements OnInit {
|
||||
hidden: true
|
||||
}
|
||||
},
|
||||
goodsNameId: {
|
||||
type: 'string',
|
||||
title: '',
|
||||
ui: {
|
||||
widget: 'select',
|
||||
placeholder: '请选择',
|
||||
errors: { required: '请填写货物类型' },
|
||||
change: (_value: any, data: any) => {
|
||||
this.sf3.setValue('/goodsName', data.label);
|
||||
},
|
||||
visibleIf: {
|
||||
goodsTypeName: (value: any) => value && value !== '其它'
|
||||
}
|
||||
}
|
||||
},
|
||||
goodsName: {
|
||||
type: 'string',
|
||||
title: '',
|
||||
ui: {
|
||||
hidden: true,
|
||||
visibleIf: {
|
||||
goodsTypeName: (value: any) => value && value !== '其它'
|
||||
}
|
||||
}
|
||||
},
|
||||
goodsName1: {
|
||||
type: 'string',
|
||||
title: '',
|
||||
maxLength: 20,
|
||||
ui: {
|
||||
errors: { required: '请填写货物类型' },
|
||||
visibleIf: {
|
||||
goodsTypeName: (value: any) => value && value === '其它'
|
||||
},
|
||||
blur: (value: any) => {
|
||||
this.checkGoodsName();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// goodsName1: {
|
||||
// type: 'string',
|
||||
// title: '',
|
||||
// maxLength: 20,
|
||||
// ui: {
|
||||
// errors: { required: '请填写货物名称' },
|
||||
// visibleIf: {
|
||||
// goodsTypeName: (value: any) => value && value === '其它'
|
||||
// },
|
||||
// blur: (value: any) => {
|
||||
// this.checkGoodsName();
|
||||
// }
|
||||
// }
|
||||
// },
|
||||
// goodsNameId: {
|
||||
// type: 'string',
|
||||
// title: '',
|
||||
// ui: {
|
||||
// widget: 'select',
|
||||
// placeholder: '请选择',
|
||||
// errors: { required: '请填写货物名称' },
|
||||
// change: (value: any, data: any) => {
|
||||
// // this.sf3.setValue('/goodsName', data.label);
|
||||
// },
|
||||
// visibleIf: {
|
||||
// goodsTypeName: (value: any) => value && value !== '其它'
|
||||
// }
|
||||
// }
|
||||
// },
|
||||
},
|
||||
required: ['goodsTypeId', 'goodsName', 'goodsNameId', 'goodsName1']
|
||||
required: ['goodsTypeId', 'goodsName', ]
|
||||
};
|
||||
this.ui3 = {
|
||||
'*': {
|
||||
@ -1013,10 +1014,8 @@ export class SupplyManagementOnecarPublishComponent implements OnInit {
|
||||
|
||||
// 货物信息
|
||||
const sf3Values = { ...this.sf3.value };
|
||||
if (sf3Values.goodsTypeName === '其它') {
|
||||
sf3Values.goodsName = sf3Values.goodsName1;
|
||||
delete sf3Values.goodsName1;
|
||||
}
|
||||
console.log(sf3Values);
|
||||
|
||||
if (this.sf4.value.carModel.includes('999')) {
|
||||
this.sf4.value.carModel = ['999'];
|
||||
}
|
||||
|
||||
@ -145,7 +145,7 @@
|
||||
</ng-template>
|
||||
<ng-template #tpl>
|
||||
<span style="font-size: 14px;"> 国家法规及行政命令禁限运货物不能托运
|
||||
<a target="_blank" [queryParams]="{ type: 15 }" [routerLink]="['/agreement']">《禁运物品说明》</a>
|
||||
<a target="_blank" [queryParams]="{ type: 15 }" [routerLink]="['/passport/agreement']">《禁运物品说明》</a>
|
||||
</span>
|
||||
</ng-template>
|
||||
</sf>
|
||||
@ -200,7 +200,7 @@
|
||||
<nz-alert nzType="warning" [nzMessage]="template1" nzShowIcon></nz-alert>
|
||||
</ng-template>
|
||||
<ng-template #template1>①香港、澳门、台湾、西藏、新疆不予承保,②单次运输保额仅限200万元以内,③保险详细内容及注意事项请见<a target="_blank"
|
||||
[queryParams]="{ type: 10 }" [routerLink]="['/agreement']">《保险告知函》</a></ng-template>
|
||||
[queryParams]="{ type: 10 }" [routerLink]="['/passport/agreement']">《保险告知函》</a></ng-template>
|
||||
</sf>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -251,13 +251,23 @@ export class SupplyManagementReleasePublishComponent implements OnInit {
|
||||
// }
|
||||
}
|
||||
},
|
||||
goodsName: {
|
||||
type: 'string',
|
||||
title: '货物名称',
|
||||
ui: {
|
||||
// hidden: true,
|
||||
// visibleIf: {
|
||||
// goodsTypeName: (value: any) => value && value !== '其它'
|
||||
// }
|
||||
}
|
||||
},
|
||||
goodsTypeId: {
|
||||
type: 'string',
|
||||
title: '货物类型',
|
||||
title: '',
|
||||
ui: {
|
||||
widget: 'select',
|
||||
placeholder: '请选择',
|
||||
errors: { required: '请选择货物类型' },
|
||||
errors: { required: '请选择货物名称' },
|
||||
asyncData: () =>
|
||||
this.shipperSrv.loadConfigByKey('goods.name.config.type').pipe(
|
||||
map((data: any) => {
|
||||
@ -279,47 +289,38 @@ export class SupplyManagementReleasePublishComponent implements OnInit {
|
||||
hidden: true
|
||||
}
|
||||
},
|
||||
goodsNameId: {
|
||||
type: 'string',
|
||||
title: '',
|
||||
ui: {
|
||||
widget: 'select',
|
||||
placeholder: '请选择',
|
||||
errors: { required: '请填写货物类型' },
|
||||
change: (value: any, data: any) => {
|
||||
this.sf3.setValue('/goodsName', data.label);
|
||||
},
|
||||
visibleIf: {
|
||||
goodsTypeName: (value: any) => value && value !== '其它'
|
||||
}
|
||||
}
|
||||
},
|
||||
goodsName: {
|
||||
type: 'string',
|
||||
title: '',
|
||||
ui: {
|
||||
hidden: true,
|
||||
visibleIf: {
|
||||
goodsTypeName: (value: any) => value && value !== '其它'
|
||||
}
|
||||
}
|
||||
},
|
||||
goodsName1: {
|
||||
type: 'string',
|
||||
title: '',
|
||||
maxLength: 20,
|
||||
ui: {
|
||||
errors: { required: '请填写货物类型' },
|
||||
visibleIf: {
|
||||
goodsTypeName: (value: any) => value && value === '其它'
|
||||
},
|
||||
blur: (value: any) => {
|
||||
this.checkGoodsName();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// goodsName1: {
|
||||
// type: 'string',
|
||||
// title: '',
|
||||
// maxLength: 20,
|
||||
// ui: {
|
||||
// errors: { required: '请填写货物名称' },
|
||||
// visibleIf: {
|
||||
// goodsTypeName: (value: any) => value && value === '其它'
|
||||
// },
|
||||
// blur: (value: any) => {
|
||||
// this.checkGoodsName();
|
||||
// }
|
||||
// }
|
||||
// },
|
||||
// goodsNameId: {
|
||||
// type: 'string',
|
||||
// title: '',
|
||||
// ui: {
|
||||
// widget: 'select',
|
||||
// placeholder: '请选择',
|
||||
// errors: { required: '请填写货物名称' },
|
||||
// change: (value: any, data: any) => {
|
||||
// // this.sf3.setValue('/goodsName', data.label);
|
||||
// },
|
||||
// visibleIf: {
|
||||
// goodsTypeName: (value: any) => value && value !== '其它'
|
||||
// }
|
||||
// }
|
||||
// },
|
||||
},
|
||||
required: ['goodsTypeId', 'goodsName', 'goodsNameId', 'goodsName1']
|
||||
required: ['goodsTypeId', 'goodsName', ]
|
||||
};
|
||||
this.ui3 = {
|
||||
'*': {
|
||||
@ -978,10 +979,6 @@ export class SupplyManagementReleasePublishComponent implements OnInit {
|
||||
|
||||
// 货物信息
|
||||
const sf3Values = { ...this.sf3.value };
|
||||
if (sf3Values.goodsTypeName === '其它') {
|
||||
sf3Values.goodsName = sf3Values.goodsName1;
|
||||
delete sf3Values.goodsName1;
|
||||
}
|
||||
if (this.sf4.value.carModel.includes('999')) {
|
||||
this.sf4.value.carModel = ['999'];
|
||||
}
|
||||
@ -1020,19 +1017,18 @@ export class SupplyManagementReleasePublishComponent implements OnInit {
|
||||
insurancePackagedGoods: this.sf4.value.insurancePackagedGoods,
|
||||
goodsValue: this.sf4.value.goodsValue
|
||||
};
|
||||
console.log(params);
|
||||
// const modalRef = this.modalService.create({
|
||||
// nzTitle: '运输协议',
|
||||
// nzContent: TranAgreementComponent,
|
||||
// nzWidth: 900,
|
||||
// nzFooter: null,
|
||||
// nzComponentParams: { object: params, shipperName: this.shipperName, type: 'onecar' }
|
||||
// });
|
||||
// modalRef.afterClose.subscribe(result => {
|
||||
// if (result) {
|
||||
// this.submit(submitType, params);
|
||||
// }
|
||||
// });
|
||||
const modalRef = this.modalService.create({
|
||||
nzTitle: '运输协议',
|
||||
nzContent: TranAgreementComponent,
|
||||
nzWidth: 900,
|
||||
nzFooter: null,
|
||||
nzComponentParams: { object: params, shipperName: this.shipperName, type: 'onecar' }
|
||||
});
|
||||
modalRef.afterClose.subscribe(result => {
|
||||
if (result) {
|
||||
this.submit(submitType, params);
|
||||
}
|
||||
});
|
||||
}
|
||||
// 提交
|
||||
submit(submitType?: string, params?: any): void {
|
||||
@ -1287,7 +1283,7 @@ export class SupplyManagementReleasePublishComponent implements OnInit {
|
||||
this.service.request(this.service.$api_checkGoodsName, name).subscribe(res => {
|
||||
if (res === false) {
|
||||
const modalRef = this.modalService.error({
|
||||
nzTitle: '货物类型含有违禁词,请重新输入!',
|
||||
nzTitle: '货物名称含有违禁词,请重新输入!',
|
||||
});
|
||||
modalRef.afterClose.subscribe(result => {
|
||||
// this.sf3.setValue('/goodsName1', null);
|
||||
|
||||
@ -19,10 +19,10 @@
|
||||
<div class="box">
|
||||
<se-container se-container="1">
|
||||
<se label="角色权限" required [labelWidth]="120">
|
||||
<app-cuc-menu #menu (changeData)="getData($event)" [type]="params.id === 0 ? 'add' : 'edit'" [roleId]="params.id" [appId]="params.appId"
|
||||
[isAuthorityIdDTOList]="roleInfoData.authority || []"
|
||||
[authorityAssistId]="roleInfoData.authorityAssistId || []" (changeIF)="changeIF($event)">
|
||||
</app-cuc-menu>
|
||||
<app-menu-tree #menu (changeData)="getData($event)" [type]="params.id === 0 ? 'add' : 'edit'" [roleId]="params.id"
|
||||
[appId]="params.appId" [isAuthorityIdDTOList]="roleInfoData.authority || []"
|
||||
[authorityAssistId]="roleInfoData.authorityAssistId || []" (changeIF)="changeIF($event)">
|
||||
</app-menu-tree>
|
||||
</se>
|
||||
</se-container>
|
||||
</div>
|
||||
|
||||
@ -39,7 +39,7 @@
|
||||
</div>
|
||||
<button nz-button nzDanger [nzLoading]="service.http.loading" acl [acl-ability]="['TAX-COLLECT-search']"
|
||||
(click)="openDrawer()">筛选</button>
|
||||
<button nz-button nzDanger acl [acl-ability]="['TAX-COLLECT-export']"> 导出</button>
|
||||
<button nz-button nzDanger (click)="exprot()" acl [acl-ability]="['TAX-COLLECT-export']"> 导出</button>
|
||||
<button nz-button nz-dropdown [nzDropdownMenu]="menu" nzPlacement="bottomLeft">
|
||||
更多<i nz-icon nzType="down" nzTheme="outline"></i></button>
|
||||
<nz-dropdown-menu #menu="nzDropdownMenu">
|
||||
|
||||
@ -245,7 +245,16 @@ export class TaxManagementIndividualCollectComponent extends BasicTableComponent
|
||||
* @param params 更新数据
|
||||
*/
|
||||
uploadSetting() {
|
||||
this.service.request(this.service.$api_get_updateData).subscribe((res: any) => {
|
||||
let params: any;
|
||||
if (this.selectedRows.length === 0) {
|
||||
params =[]
|
||||
} else{
|
||||
params =[]
|
||||
this.selectedRows.forEach(item => {
|
||||
params.push(item.id);
|
||||
});
|
||||
}
|
||||
this.service.request(this.service.$api_get_updateData,params).subscribe((res: any) => {
|
||||
if (res) {
|
||||
this.service.msgSrv.success('更新成功');
|
||||
this.search();
|
||||
@ -257,10 +266,8 @@ export class TaxManagementIndividualCollectComponent extends BasicTableComponent
|
||||
this.st.load(1);
|
||||
}
|
||||
|
||||
/**
|
||||
* 异步导出
|
||||
*/
|
||||
export() {
|
||||
this.service.exportStart(this.sf?.value, this.service.$api_async_export_order_reporting_list);
|
||||
}
|
||||
// 导出
|
||||
exprot() {
|
||||
this.service.exportStart({ ...this.reqParams, pageSize: -1 }, this.service.$api_taxSummary_export);
|
||||
}
|
||||
}
|
||||
|
||||
@ -26,8 +26,8 @@
|
||||
</div>
|
||||
|
||||
<!-- 数据列表 -->
|
||||
<st #st [scroll]="{ x: '1200px',y:scrollY }" [data]="service.$api_get_taxDeclaration" [columns]="columns"
|
||||
[req]="{ params: reqParams }" [page]="{ }" [loading]="false">
|
||||
<st #st [scroll]="{ x: '1200px', y: scrollY }" [data]="service.$api_get_taxDeclaration" [columns]="columns"
|
||||
[req]="{ params: reqParams }" [page]="{}" [loading]="false" (change)="changeST($event)">
|
||||
<ng-template st-row="orderStatus" let-item let-index="index">
|
||||
<a (click)="viewAuditResult(item)" *ngIf="item?.billStatus === '2'">{{ item?.billStatusLabel }}</a>
|
||||
<span *ngIf="item?.billStatus !== '2'">{{ item?.billStatusLabel }}</span>
|
||||
@ -51,26 +51,17 @@
|
||||
</div>
|
||||
<button nz-button nzDanger [nzLoading]="service.http.loading" acl [acl-ability]="['TAX-DECLARE-search']"
|
||||
(click)="openDrawer()">筛选</button>
|
||||
<button nz-button nzDanger acl [acl-ability]="['TAX-DECLARE-export']"> 导出</button>
|
||||
<button nz-button nzDanger (click)="exprot()" acl [acl-ability]="['TAX-DECLARE-export']"> 导出</button>
|
||||
<button nz-button nz-dropdown [nzDropdownMenu]="menu" nzPlacement="bottomLeft">
|
||||
更多<i nz-icon nzType="down" nzTheme="outline"></i></button>
|
||||
<nz-dropdown-menu #menu="nzDropdownMenu">
|
||||
<ul nz-menu>
|
||||
<li nz-menu-item (click)="upload()" acl [acl-ability]="['TAX-DECLARE-declare']">
|
||||
申报
|
||||
</li>
|
||||
<li nz-menu-item (click)="recall()" acl [acl-ability]="['TAX-DECLARE-change']">
|
||||
更正
|
||||
</li>
|
||||
<li nz-menu-item (click)="uploadSetting()" acl [acl-ability]="['TAX-DECLARE-threshold']">
|
||||
修改起征点
|
||||
</li>
|
||||
<li nz-menu-item (click)="resetData()" acl [acl-ability]="['TAX-DECLARE-resetData']">
|
||||
更新数据
|
||||
</li>
|
||||
<li nz-menu-item (click)="upload()" acl [acl-ability]="['TAX-DECLARE-declare']"> 申报 </li>
|
||||
<li nz-menu-item (click)="recall()" acl [acl-ability]="['TAX-DECLARE-change']"> 更正 </li>
|
||||
<li nz-menu-item (click)="uploadSetting()" acl [acl-ability]="['TAX-DECLARE-threshold']"> 修改起征点 </li>
|
||||
<li nz-menu-item (click)="resetData()" acl [acl-ability]="['TAX-DECLARE-resetData']"> 更新数据 </li>
|
||||
</ul>
|
||||
</nz-dropdown-menu>
|
||||
|
||||
</div>
|
||||
</ng-template>
|
||||
|
||||
@ -84,4 +75,4 @@
|
||||
<button nz-button nzType="default" (click)="handleCancel()">取消</button>
|
||||
<button nz-button nzType="primary" (click)="handleOK()">确定</button>
|
||||
</ng-template>
|
||||
</nz-modal>
|
||||
</nz-modal>
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
import { Component, OnInit, ViewChild } from '@angular/core';
|
||||
import { ActivatedRoute, Router } from '@angular/router';
|
||||
import { STColumn, STComponent, STData } from '@delon/abc/st';
|
||||
import { STChange, STColumn, STComponent, STData } from '@delon/abc/st';
|
||||
import { SFDateWidgetSchema } from '@delon/form';
|
||||
import { SearchDrawerService } from '@shared';
|
||||
import { NzModalService } from 'ng-zorro-antd/modal';
|
||||
@ -26,6 +26,9 @@ export class TaxManagementIndividualDeclareComponent extends BasicTableComponent
|
||||
selectedIndex = ''; //选择的项目
|
||||
serviceTel = '';
|
||||
isVisible: boolean = false;
|
||||
checkedList: any[] = [];
|
||||
|
||||
// selectedRows:any[] =[];
|
||||
constructor(
|
||||
public service: TaxManagementService,
|
||||
private router: Router,
|
||||
@ -63,18 +66,6 @@ export class TaxManagementIndividualDeclareComponent extends BasicTableComponent
|
||||
ngOnInit() {
|
||||
this.initSF();
|
||||
this.initST();
|
||||
const object1: any = {};
|
||||
const object2: any = {};
|
||||
Object.defineProperty(object1, 'name', { writable: false, value: 'wang' });
|
||||
Object.defineProperty(object2, 'xxoo', { writable: false, value: 'wang' });
|
||||
console.log(object1);
|
||||
console.log(object1.name);
|
||||
console.log(object2);
|
||||
console.log(object2.xxoo);
|
||||
object1.name = 'ming';
|
||||
object2.xxoo = 'ming';
|
||||
console.log(object1);
|
||||
console.log(object2);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -110,13 +101,13 @@ export class TaxManagementIndividualDeclareComponent extends BasicTableComponent
|
||||
}
|
||||
},
|
||||
|
||||
isOvertime: {
|
||||
overtime: {
|
||||
title: '是否逾期',
|
||||
type: 'string',
|
||||
enum: [
|
||||
{ value: '', label: '全部' },
|
||||
{ value: false, label: '否' },
|
||||
{ value: true, label: '是' }
|
||||
{ value: '0', label: '否' },
|
||||
{ value: '1', label: '是' }
|
||||
],
|
||||
ui: {
|
||||
placeholder: '请选择',
|
||||
@ -178,11 +169,11 @@ export class TaxManagementIndividualDeclareComponent extends BasicTableComponent
|
||||
},
|
||||
{
|
||||
title: '是否逾期',
|
||||
index: 'overdueStatus',
|
||||
index: 'overtime',
|
||||
className: 'text-center',
|
||||
width: '120px',
|
||||
type: 'enum',
|
||||
enum: { false: '否', true: '是' }
|
||||
enum: { '0': '否', '1': '是' }
|
||||
},
|
||||
{
|
||||
title: '税款所属期起',
|
||||
@ -202,7 +193,7 @@ export class TaxManagementIndividualDeclareComponent extends BasicTableComponent
|
||||
{ title: '证件类型', index: 'sfzjlx', className: 'text-center', width: '200px' },
|
||||
{ title: '证件号码', index: 'sfzjhm', className: 'text-center', width: '200px' },
|
||||
{ title: '联系电话', index: 'lxdh', className: 'text-center', width: '200px' },
|
||||
{ title: '国家(地区)', index: ' gjdq', className: 'text-center', width: '200px' },
|
||||
{ title: '国家(地区)', index: 'gjdq', className: 'text-center', width: '200px' },
|
||||
{ title: '所属行业', index: 'hy', className: 'text-center', width: '200px' },
|
||||
{ title: '征收项目', index: 'zsxm', className: 'text-center', width: '200px' },
|
||||
{ title: '征收品目', index: 'zsmp', className: 'text-center', width: '200px' },
|
||||
@ -368,12 +359,13 @@ export class TaxManagementIndividualDeclareComponent extends BasicTableComponent
|
||||
this.openWainingModal('请选择需要申报的数据');
|
||||
return;
|
||||
}
|
||||
// this.service.request(this.service.$api_recall_reporting, { rows: this.selectedRows }).subscribe((res: any) => {
|
||||
// if (res) {
|
||||
// this.service.msgSrv.success('申报成功');
|
||||
// this.search();
|
||||
// }
|
||||
// })
|
||||
const ids = this.selectedRows.map(item => item?.id);
|
||||
this.service.request(this.service.$api_declare_tax, ids).subscribe((res: any) => {
|
||||
if (res) {
|
||||
this.service.msgSrv.success('申报成功');
|
||||
this.search();
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
@ -381,14 +373,15 @@ export class TaxManagementIndividualDeclareComponent extends BasicTableComponent
|
||||
* @param params 更新数据
|
||||
*/
|
||||
resetData() {
|
||||
let params: any;
|
||||
if (this.selectedRows.length === 0) {
|
||||
this.openWainingModal('请选择需要更新的数据');
|
||||
return;
|
||||
params = []
|
||||
} else {
|
||||
params = []
|
||||
this.selectedRows.forEach(item => {
|
||||
params.push(item.id);
|
||||
});
|
||||
}
|
||||
let params: any[] = [];
|
||||
this.selectedRows.forEach(item => {
|
||||
params.push(item.id);
|
||||
});
|
||||
this.service.request(this.service.$api_get_taxDeclaration_updateAll, params).subscribe((res: any) => {
|
||||
if (res) {
|
||||
this.service.msgSrv.success('更新成功');
|
||||
@ -428,11 +421,9 @@ export class TaxManagementIndividualDeclareComponent extends BasicTableComponent
|
||||
this.st.load(1);
|
||||
}
|
||||
|
||||
/**
|
||||
* 异步导出
|
||||
*/
|
||||
export() {
|
||||
this.service.exportStart(this.sf?.value, this.service.$api_async_export_order_reporting_list);
|
||||
// 导出
|
||||
exprot() {
|
||||
this.service.exportStart({ ...this.reqParams, pageSize: -1 }, this.service.$api_taxDeclaration_export);
|
||||
}
|
||||
|
||||
openWainingModal(content: string, title = '提示') {
|
||||
@ -442,8 +433,60 @@ export class TaxManagementIndividualDeclareComponent extends BasicTableComponent
|
||||
nzContent: content
|
||||
});
|
||||
}
|
||||
handleOK() {}
|
||||
handleOK() { }
|
||||
handleCancel() {
|
||||
this.isVisible = false;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param e
|
||||
*/
|
||||
changeST(e: STChange): void {
|
||||
if (e?.type === 'checkbox') {
|
||||
if (e?.checkbox!.length === 0) {
|
||||
// 全选取消
|
||||
this.st.list.forEach((item, index) => {
|
||||
this.st.setRow(index, { checked: false });
|
||||
})
|
||||
this.checkedList = [];
|
||||
} else {
|
||||
// 取消选择
|
||||
if (this.checkedList.length > e?.checkbox!.length) {
|
||||
const item = this.checkedList.find(item => !item?.checked);
|
||||
this.st.list?.forEach(((row, index) => {
|
||||
if (row?.driverId === item?.driverId && row?.ltdId === item?.ltdId && row?.taxMonth === item?.taxMonth) {
|
||||
this.st.setRow(index, { checked: false });
|
||||
this.checkedList = this.checkedList.filter(_item => _item?.id !== row?.id);
|
||||
}
|
||||
}))
|
||||
} else {
|
||||
// 全选
|
||||
const allChecked = this.st?.list.every(item => item.checked);
|
||||
if (allChecked) {
|
||||
this.st.list?.forEach((row, index) => {
|
||||
const flag = this.checkedList.find(_item => _item.id === row?.id);
|
||||
if (!flag) {
|
||||
this.checkedList.push(row);
|
||||
}
|
||||
})
|
||||
return;
|
||||
}
|
||||
// 单个新增选择
|
||||
const list = e?.checkbox?.filter(item => !this.checkedList.some(_item => _item?.id === item.id));
|
||||
list?.forEach(item => {
|
||||
this.st.list?.forEach((row, index) => {
|
||||
if (row?.driverId === item?.driverId && row?.ltdId === item?.ltdId && row?.taxMonth === item?.taxMonth) {
|
||||
this.st.setRow(index, { checked: true });
|
||||
const flag = this.checkedList.find(_item => _item.id === row?.id);
|
||||
if (!flag) {
|
||||
this.checkedList.push(row);
|
||||
}
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,3 +1,13 @@
|
||||
<!--
|
||||
* @Description :
|
||||
* @Version : 1.0
|
||||
* @Author : Shiming
|
||||
* @Date : 2022-05-06 15:31:19
|
||||
* @LastEditors : Shiming
|
||||
* @LastEditTime : 2022-05-11 21:04:42
|
||||
* @FilePath : \\tms-obc-web\\src\\app\\routes\\tax-management\\components\\individual-income\\individual-income.component.html
|
||||
* Copyright (C) 2022 huzhenhong. All rights reserved.
|
||||
-->
|
||||
<!-- <page-header-wrapper [title]="''"></page-header-wrapper>
|
||||
<nz-card class="search-box">
|
||||
<div nz-row nzGutter="8">
|
||||
@ -39,7 +49,7 @@
|
||||
</div>
|
||||
<button nz-button nzDanger [nzLoading]="isLoading && st.loading" acl [acl-ability]="['TAX-INCOME-search']"
|
||||
(click)="openDrawer()">筛选</button>
|
||||
<button nz-button nzDanger acl [acl-ability]="['TAX-INCOME-export']"> 导出</button>
|
||||
<button nz-button nzDanger (click)="exprot()" acl [acl-ability]="['TAX-INCOME-export']"> 导出</button>
|
||||
<button nz-button nz-dropdown [nzDropdownMenu]="menu" nzPlacement="bottomLeft">
|
||||
更多<i nz-icon nzType="down" nzTheme="outline"></i></button>
|
||||
<nz-dropdown-menu #menu="nzDropdownMenu">
|
||||
@ -63,11 +73,17 @@
|
||||
</div>
|
||||
</ng-template>
|
||||
|
||||
<nz-modal [(nzVisible)]="isVisible" [nzWidth]="600" [nzFooter]="nzModalFooterEvaluate" (nzOnOk)="handleOK()"
|
||||
<nz-modal [(nzVisible)]="isVisible" [nzWidth]="600" [nzFooter]="nzModalFooterEvaluate"
|
||||
(nzOnCancel)="handleCancel()">
|
||||
<ng-container *nzModalContent>
|
||||
<div> 司机姓名:张三/13812345678 </div>
|
||||
<div *ngIf="oneStatus">
|
||||
<div> 司机姓名:{{driverRecord?.xm}}/{{driverRecord.lxdh}} </div>
|
||||
<div> 是否确认要将该司机的起征点同步调整为超过15万? </div>
|
||||
</div>
|
||||
<div *ngIf="!oneStatus">
|
||||
<div> 已选择{{selectedRows.length}}个司机 </div>
|
||||
<div> 是否确认要将该司机的起征点同步调整为超过15万? </div>
|
||||
</div>
|
||||
</ng-container>
|
||||
<ng-template #nzModalFooterEvaluate>
|
||||
<button nz-button nzType="default" (click)="handleCancel()">取消</button>
|
||||
|
||||
@ -23,8 +23,10 @@ export class TaxManagementIndividualIncomeComponent extends BasicTableComponent
|
||||
];
|
||||
selectedIndex = '0'; //选择的项目
|
||||
isVisible: boolean = false;
|
||||
oneStatus: boolean = false;
|
||||
|
||||
selectedRows: any[] = [];
|
||||
driverRecord!: any;
|
||||
|
||||
constructor(public service: TaxManagementService, public searchDrawerService: SearchDrawerService) {
|
||||
super(searchDrawerService);
|
||||
@ -287,11 +289,20 @@ export class TaxManagementIndividualIncomeComponent extends BasicTableComponent
|
||||
* @param record 记录实例
|
||||
*/
|
||||
resetData() {
|
||||
// if (this.selectedRows.length === 0) {
|
||||
// this.openWainingModal('请选择需要更新的数据!');
|
||||
// return;
|
||||
// }
|
||||
// this.isVisible = true;
|
||||
if (this.selectedRows.length === 0) {
|
||||
this.service.msgSrv.error('请选择明细!');
|
||||
return;
|
||||
}
|
||||
if(this.selectedRows.length === 1) {
|
||||
console.log(this.selectedRows);
|
||||
this.oneStatus = true
|
||||
this.driverRecord = this.selectedRows[0]
|
||||
|
||||
} else {
|
||||
this.oneStatus = false
|
||||
|
||||
}
|
||||
this.isVisible = true;
|
||||
}
|
||||
|
||||
selectChange(item: any) {
|
||||
@ -326,7 +337,16 @@ export class TaxManagementIndividualIncomeComponent extends BasicTableComponent
|
||||
* @param params 更新数据
|
||||
*/
|
||||
uploadSetting() {
|
||||
this.service.request(this.service.$api_update_individual_income_page).subscribe((res: any) => {
|
||||
let params: any;
|
||||
if (this.selectedRows.length === 0) {
|
||||
params =[]
|
||||
} else{
|
||||
params =[]
|
||||
this.selectedRows.forEach(item => {
|
||||
params.push(item.id);
|
||||
});
|
||||
}
|
||||
this.service.request(this.service.$api_update_individual_income_page, params).subscribe((res: any) => {
|
||||
if (res) {
|
||||
this.service.msgSrv.success('更新成功');
|
||||
this.search();
|
||||
@ -338,14 +358,23 @@ export class TaxManagementIndividualIncomeComponent extends BasicTableComponent
|
||||
this.st.load(1);
|
||||
}
|
||||
|
||||
/**
|
||||
* 异步导出
|
||||
*/
|
||||
export() {
|
||||
this.service.exportStart(this.sf?.value, this.service.$api_async_export_order_reporting_list);
|
||||
}
|
||||
// 导出
|
||||
exprot() {
|
||||
this.service.exportStart({ ...this.sfValue,declareStatus: this.selectedIndex, pageSize: -1 }, this.service.$api_taxIncome_export);
|
||||
}
|
||||
|
||||
handleOK() {}
|
||||
handleOK() {
|
||||
let params: any = [];
|
||||
if (this.selectedRows.length !== 0) {
|
||||
this.selectedRows.forEach(item => {
|
||||
params.push(item.id);
|
||||
});
|
||||
}
|
||||
this.service.request(this.service.$api_fixThreshold, params).subscribe((res) => {
|
||||
console.log(res);
|
||||
|
||||
})
|
||||
}
|
||||
handleCancel() {
|
||||
this.isVisible = false;
|
||||
}
|
||||
|
||||
@ -312,7 +312,7 @@ export class TaxManagementInvoiceReportingComponent extends BasicTableComponent
|
||||
* 异步导出
|
||||
*/
|
||||
export() {
|
||||
this.service.exportStart(this.reqParams, this.service.$api_invoiceUpload_export);
|
||||
this.service.exportStart({...this.reqParams, pageSize: -1 }, this.service.$api_invoiceUpload_export);
|
||||
}
|
||||
|
||||
openWainingModal(content: string, title = '提示') {
|
||||
|
||||
@ -20,33 +20,37 @@
|
||||
<nz-card class="table-box">
|
||||
<div class="tab_header">
|
||||
<label class="page_title"> <label class="driver">|</label> 订单上报</label>
|
||||
<nz-tabset [nzTabBarExtraContent]="extraTemplate" *ngIf="tabs.length>0">
|
||||
<nz-tab *ngFor="let tab of tabs" [nzTitle]="tab.name" (nzSelect)="selectChange(tab)">
|
||||
</nz-tab>
|
||||
<nz-tabset [nzTabBarExtraContent]="extraTemplate" *ngIf="tabs.length > 0">
|
||||
<nz-tab *ngFor="let tab of tabs" [nzTitle]="tab.name" (nzSelect)="selectChange(tab)"> </nz-tab>
|
||||
</nz-tabset>
|
||||
</div>
|
||||
|
||||
<!-- 数据列表 -->
|
||||
<st #st [scroll]="{x:'1200px',y:scrollY}" [data]="service.$api_getTaxOrderPage_page" [columns]="columns"
|
||||
[req]="{ params: reqParams }" [page]="{ }" [loading]="service.http.loading">
|
||||
<st
|
||||
#st
|
||||
[scroll]="{ x: '1200px', y: scrollY }"
|
||||
[data]="service.$api_getTaxOrderPage_page"
|
||||
[columns]="columns"
|
||||
[req]="{ params: reqParams }"
|
||||
[page]="{}"
|
||||
[loading]="service.http.loading"
|
||||
>
|
||||
<ng-template st-row="putStatus" let-item let-index="index">
|
||||
<!-- <a (click)="viewAuditResult(item)" *ngIf="item?.billStatus === '2'">{{item?.billStatusLabel}}</a> -->
|
||||
<span *ngIf="item?.putStatus == '0'">待上传</span>
|
||||
<span *ngIf="item?.putStatus == '1'">已上传</span>
|
||||
<span *ngIf="item?.putStatus == '3'">上传中</span>
|
||||
<span *ngIf="item?.putStatus == '2'" style="color: red;" (click)="unnormal(item)">上传异常</span>
|
||||
|
||||
<span *ngIf="item?.putStatus == '2'" style="color: red" (click)="unnormal(item)">上传异常</span>
|
||||
</ng-template>
|
||||
<ng-template st-row="checkStatus" let-item let-index="index">
|
||||
<!-- <a (click)="viewAuditResult(item)" *ngIf="item?.billStatus === '2'">{{item?.billStatusLabel}}</a> -->
|
||||
<span *ngIf="item?.checkStatus == '0'">校验中</span>
|
||||
<span *ngIf="item?.checkStatus == '1'">通过</span>
|
||||
<!-- <span *ngIf="item?.checkStatus == '2'" style="color: red;" (click)="unnormal(item)">不通过</span> -->
|
||||
<a *ngIf="item?.checkStatus == '2'" style="color: red;" (click)="viewResult(item)">不通过</a>
|
||||
|
||||
<a *ngIf="item?.checkStatus == '2'" style="color: red" (click)="viewResult(item)">不通过</a>
|
||||
</ng-template>
|
||||
<ng-template st-row="driverName" let-item let-index="index">
|
||||
<div> {{ item?.driverName }}{{ item?.driverPhone ? "/" + item?.driverPhone : '' }} </div>
|
||||
<div> {{ item?.driverName }}{{ item?.driverPhone ? '/' + item?.driverPhone : '' }} </div>
|
||||
</ng-template>
|
||||
<!-- <ng-template st-row="localValid" let-item let-index="index">
|
||||
<a (click)="viewResult(item)" *ngIf="item?.billStatus === '2'">{{item?.billStatusLabel}}</a>
|
||||
@ -55,33 +59,44 @@
|
||||
<ng-template st-row="loadingPicture" let-item let-index="index">
|
||||
<div class="imgBox">
|
||||
<div *ngIf="item.loadingPicture">
|
||||
<app-imagelist style="width: 60px" [imgList]="[item.loadingPicture]"> </app-imagelist>
|
||||
<a (click)="viewPhoto([item.loadingPicture])" class="text-blue-dark" nzType="text" nz-button>查看</a>
|
||||
<!-- <app-imagelist style="width: 60px" [imgList]="[item.loadingPicture]"> </app-imagelist> -->
|
||||
</div>
|
||||
</div>
|
||||
</ng-template>
|
||||
<ng-template st-row="unloadPicture" let-item let-index="index">
|
||||
<div class="imgBox">
|
||||
<div *ngIf="item.unloadPicture">
|
||||
<app-imagelist style="width: 40px" [imgList]="[item.unloadPicture]"> </app-imagelist>
|
||||
<a (click)="viewPhoto([item.unloadPicture])" class="text-blue-dark" nzType="text" nz-button>查看</a>
|
||||
<!-- <app-imagelist style="width: 40px" [imgList]="[item.unloadPicture]"> </app-imagelist> -->
|
||||
</div>
|
||||
</div>
|
||||
</ng-template>
|
||||
<ng-template st-row="loadingLadingBill" let-item let-index="index">
|
||||
<div class="imgBox">
|
||||
<div *ngIf="item.loadingLadingBill">
|
||||
<app-imagelist style="width: 40px" [imgList]="[item.loadingLadingBill]"> </app-imagelist>
|
||||
<a (click)="viewPhoto([item.loadingLadingBill])" class="text-blue-dark" nzType="text" nz-button>查看</a>
|
||||
<!-- <app-imagelist style="width: 40px" [imgList]="[item.loadingLadingBill]"> </app-imagelist> -->
|
||||
</div>
|
||||
</div>
|
||||
</ng-template>
|
||||
<ng-template st-row="goodsName" let-item let-index="index">
|
||||
<div>{{ item.goodsName ? item.goodsName : '--' }} </div>
|
||||
<div> {{ item.loadWeight ? item.loadWeight : '--' }}吨/{{ item.loadVolume ?item.loadVolume: '--' }}方 </div>
|
||||
</ng-template>
|
||||
<ng-template st-row="signatureForm" let-item let-index="index">
|
||||
<div class="imgBox">
|
||||
<div *ngIf="item.signatureForm">
|
||||
<app-imagelist style="width: 40px" [imgList]="[item.signatureForm]"> </app-imagelist>
|
||||
<a (click)="viewPhoto([item.signatureForm])" class="text-blue-dark" nzType="text" nz-button>查看</a>
|
||||
<!-- <app-imagelist style="width: 40px" [imgList]="[item.signatureForm]"> </app-imagelist> -->
|
||||
</div>
|
||||
</div>
|
||||
</ng-template>
|
||||
<ng-template st-row="orderAmount" let-item let-index="index">
|
||||
<div class="text-right">{{item?.orderAmount | currency }}</div>
|
||||
<div class="text-right">{{ item?.orderAmount | currency }}</div>
|
||||
</ng-template>
|
||||
<ng-template st-row="wayAmount" let-item let-index="index">
|
||||
<div class="text-right">{{ item?.wayAmount | currency }}</div>
|
||||
</ng-template>
|
||||
</st>
|
||||
</nz-card>
|
||||
@ -91,26 +106,20 @@
|
||||
已选择
|
||||
<strong class="text-red">{{ selectedRows.length }}</strong> 条数据
|
||||
</div>
|
||||
<button nz-button nzDanger [nzLoading]="isLoading && st.loading" acl [acl-ability]="['TAX-ORDERREPORT-search']"
|
||||
(click)="openDrawer()">筛选</button>
|
||||
<button nz-button nzDanger [nzLoading]="isLoading && st.loading" acl [acl-ability]="['TAX-ORDERREPORT-search']" (click)="openDrawer()"
|
||||
>筛选</button
|
||||
>
|
||||
<button nz-button nzDanger acl [acl-ability]="['TAX-ORDERREPORT-export']"> 导出</button>
|
||||
<button nz-button nz-dropdown [nzDropdownMenu]="menu" nzPlacement="bottomLeft">
|
||||
更多<i nz-icon nzType="down" nzTheme="outline"></i></button>
|
||||
更多<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-ORDERREPORT-upload']">
|
||||
上传
|
||||
</li>
|
||||
<li nz-menu-item (click)="recall() " acl [acl-ability]="['TAX-ORDERREPORT-recall']">
|
||||
撤回
|
||||
</li>
|
||||
<li nz-menu-item (click)="resetData()" acl [acl-ability]="['TAX-ORDERREPORT-resetData']">
|
||||
更新数据
|
||||
</li>
|
||||
<li nz-menu-item (click)="uploadSetting()" acl [acl-ability]="['TAX-ORDERREPORT-uploadSetting']">
|
||||
税务设置
|
||||
</li>
|
||||
<li nz-menu-item (click)="upload()" acl [acl-ability]="['TAX-ORDERREPORT-upload']"> 上传 </li>
|
||||
<li nz-menu-item (click)="recall()" acl [acl-ability]="['TAX-ORDERREPORT-recall']"> 撤回 </li>
|
||||
<li nz-menu-item (click)="resetData()" acl [acl-ability]="['TAX-ORDERREPORT-resetData']"> 更新数据 </li>
|
||||
<li nz-menu-item (click)="uploadSetting()" acl [acl-ability]="['TAX-ORDERREPORT-uploadSetting']"> 税务设置 </li>
|
||||
</ul>
|
||||
</nz-dropdown-menu>
|
||||
</div>
|
||||
</ng-template>
|
||||
</ng-template>
|
||||
|
||||
@ -10,6 +10,8 @@ import { BasicTableComponent } from 'src/app/routes/commom';
|
||||
import { TaxManagementService } from '../../services/tax-management.service';
|
||||
import { TaxManagementUploadSettingComponent } from './upload-setting/upload-setting.component';
|
||||
import { TaxManagementOrderVerifyResultComponent } from './verify-result/verify-result.component';
|
||||
import { NzImageService } from 'ng-zorro-antd/image';
|
||||
import { image } from 'html2canvas/dist/types/css/types/image';
|
||||
|
||||
@Component({
|
||||
selector: 'app-tax-management-order-reporting',
|
||||
@ -35,7 +37,8 @@ export class TaxManagementOrderReportingComponent extends BasicTableComponent im
|
||||
private router: Router,
|
||||
private ar: ActivatedRoute,
|
||||
private modal: NzModalService,
|
||||
public searchDrawerService: SearchDrawerService
|
||||
public searchDrawerService: SearchDrawerService,
|
||||
public imageService: NzImageService
|
||||
) {
|
||||
super(searchDrawerService);
|
||||
}
|
||||
@ -226,17 +229,17 @@ export class TaxManagementOrderReportingComponent extends BasicTableComponent im
|
||||
{ title: '卸货地详细地址', index: 'unloadDetailedAddress', className: 'text-center', width: '180px' },
|
||||
{ title: '货主名称', index: 'shipperName', className: 'text-center', width: '180px' },
|
||||
{ title: '货主纳税人识别号', index: 'shipperProvinceCode', className: 'text-center', width: '180px' },
|
||||
{ title: '录单时间', index: 'recordTime', className: 'text-center', width: '250px' },
|
||||
{ title: '录单时间', index: 'billCreateTime', className: 'text-center', width: '250px' },
|
||||
{ title: '接单时间', index: 'wayBillCreateTime', className: 'text-center', width: '200px' },
|
||||
{ title: '发车时间', index: 'loadTime', className: 'text-center', width: '200px' },
|
||||
{ title: '到车时间', index: 'unloadTime', className: 'text-center', width: '150px' },
|
||||
{ title: '结束时间', index: 'payeeName', className: 'text-center', width: '150px' },
|
||||
{ title: '结束时间', index: 'orderPayTime', className: 'text-center', width: '150px' },
|
||||
{ title: '订单金额', render: 'orderAmount', className: 'text-center', width: '120px' },
|
||||
{ title: '司机姓名', render: 'driverName', className: 'text-center', width: '150px' },
|
||||
{ title: '司机身份证号', index: 'transpdriverCertificateNumberortInfo', className: 'text-center', width: '180px' },
|
||||
{ title: '司机身份证号', index: 'driverCertificateNumber', className: 'text-center', width: '180px' },
|
||||
{ title: '车牌号', index: 'carNo', className: 'text-center', width: '100px' },
|
||||
{ title: '货物信息', render: 'transportInfo', className: 'text-center', width: '200px' },
|
||||
{ title: '运费金额', render: 'payeeName', className: 'text-center', width: '100px' },
|
||||
{ title: '货物信息', render: 'goodsName', className: 'text-center', width: '200px' },
|
||||
{ title: '运费金额', render: 'wayAmount', className: 'text-center', width: '100px' },
|
||||
{ title: '装卸方式', index: 'loadingUnloadWay', className: 'text-center', width: '180px' },
|
||||
{ title: '支付方式', index: 'payMent', className: 'text-center', width: '150px' },
|
||||
{ title: '支付账号', index: 'paymentAccount', className: 'text-center', width: '200px' },
|
||||
@ -285,14 +288,16 @@ export class TaxManagementOrderReportingComponent extends BasicTableComponent im
|
||||
* @param record 记录实例
|
||||
*/
|
||||
resetData() {
|
||||
let params: any = {};
|
||||
if (this.selectedRows.length === 0) {
|
||||
this.openWainingModal('请选择需要更新的数据!');
|
||||
return;
|
||||
params ={}
|
||||
} else{
|
||||
params =[]
|
||||
this.selectedRows.forEach(item => {
|
||||
params.push(item.billId);
|
||||
});
|
||||
}
|
||||
let params: any[] = [];
|
||||
this.selectedRows.forEach(item => {
|
||||
params.push(item.billId);
|
||||
});
|
||||
|
||||
this.service.request(this.service.$api_get_renewalOrderById, params).subscribe((res: any) => {
|
||||
if (res) {
|
||||
this.service.msgSrv.success('更新成功');
|
||||
@ -462,7 +467,7 @@ export class TaxManagementOrderReportingComponent extends BasicTableComponent im
|
||||
* 异步导出
|
||||
*/
|
||||
export() {
|
||||
this.service.exportStart(this.sf?.value, this.service.$api_async_export_order_reporting_list);
|
||||
this.service.exportStart({...this.reqParams, pageSize: -1} ,this.service.$api_async_export_order_reporting_list);
|
||||
}
|
||||
|
||||
openWainingModal(content: string, title = '提示') {
|
||||
@ -472,4 +477,12 @@ export class TaxManagementOrderReportingComponent extends BasicTableComponent im
|
||||
nzContent: content
|
||||
});
|
||||
}
|
||||
|
||||
viewPhoto(images: any[]) {
|
||||
|
||||
if (images.length > 0) {
|
||||
const imgs = images.map(item => ({ src: item }));
|
||||
this.imageService.preview(imgs);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
* @Author : Shiming
|
||||
* @Date : 2021-12-27 10:30:56
|
||||
* @LastEditors : Shiming
|
||||
* @LastEditTime : 2022-04-19 14:19:44
|
||||
* @LastEditTime : 2022-05-11 14:53:31
|
||||
* @FilePath : \\tms-obc-web\\src\\app\\routes\\tax-management\\services\\tax-management.service.ts
|
||||
* Copyright (C) 2022 huzhenhong. All rights reserved.
|
||||
*/
|
||||
@ -60,8 +60,18 @@ export class TaxManagementService extends ShipperBaseService {
|
||||
$api_getInvoiceReport_page = '/api/sdc/invoiceUploadInfo/list/page';
|
||||
// 发票上传列表导出
|
||||
$api_invoiceUpload_export = '/api/sdc/invoiceUploadInfo/reportList';
|
||||
// 个税明细导出接口
|
||||
$api_taxIncome_export = '/api/sdc/taxIncome/asyncExport';
|
||||
// 个税汇总导出接口
|
||||
$api_taxSummary_export = '/api/sdc/taxSummary/asyncExport';
|
||||
// 税务申报导出接口
|
||||
$api_taxDeclaration_export = '/api/sdc/taxDeclaration/asyncExport';
|
||||
// 发票上传撤回
|
||||
$api_invoiceUpload_withdraw = '/api/sdc/invoiceUploadInfo/withdraw';
|
||||
// 修改起征点
|
||||
$api_fixThreshold = '/api/sdc/taxIncome/fixThreshold';
|
||||
//申报
|
||||
$api_declare_tax = `/api/sdc/taxDeclaration/declare`;
|
||||
constructor(public injector: Injector) {
|
||||
super(injector);
|
||||
}
|
||||
|
||||
@ -35,7 +35,7 @@ const COMPONENTS: Type<void>[] = [
|
||||
imports: [
|
||||
SharedModule,
|
||||
TaxManagementModuleRoutingModule,
|
||||
SHARED_G2_MODULES
|
||||
...SHARED_G2_MODULES
|
||||
],
|
||||
declarations: COMPONENTS,
|
||||
})
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user