This commit is contained in:
Taric Xin
2022-02-15 10:01:07 +08:00
parent 2220c62f00
commit 386bcccae8
11 changed files with 427 additions and 158 deletions

View File

@ -137,13 +137,7 @@ export class StartupService {
.post(this.coreSrv.$api_get_current_user_menus, {
appId: this.coreSrv.envSrv.getEnvironment().appId
})
.pipe(
map((res: any) => {
console.log(res);
return res.data;
})
);
.pipe(map((res: any) => res.data));
// const menuData = this.httpClient.get('assets/mocks/menu-data.json').pipe(map((res: any) => res.data.menu));
return zip(appData, userData, menuData);

View File

@ -8,14 +8,14 @@
</ng-template>
<ng-template #mainLink let-i>
<ng-template [ngTemplateOutlet]="icon" [ngTemplateOutletContext]="{ $implicit: i.icon }"></ng-template>
<span class="alain-pro__menu-title-text" *ngIf="!pro.onlyIcon">{{ i.title }}</span>
<span class="alain-pro__menu-title-text" *ngIf="!pro.onlyIcon">{{ i.text }}</span>
<div *ngIf="i.badge" class="alain-pro__menu-title-badge">
<em>{{ i.badge }}</em>
</div>
</ng-template>
<ng-template #subLink let-i>
<a *ngIf="!i.externalLink" [routerLink]="i.link" [target]="i.target">{{ i.title }} </a>
<a *ngIf="i.externalLink" [attr.href]="i.externalLink" [attr.target]="i.target">{{ i.title }} </a>
<a *ngIf="!i.externalLink" [routerLink]="i.link" [target]="i.target">{{ i.text }} </a>
<a *ngIf="i.externalLink" [attr.href]="i.externalLink" [attr.target]="i.target">{{ i.text }} </a>
</ng-template>
<ul *ngIf="menus" nz-menu [nzMode]="mode" [nzTheme]="pro.theme"
[nzInlineCollapsed]="pro.isMobile ? false : pro.collapsed">
@ -36,7 +36,7 @@
<ng-template #l1TitleTpl>
<span title class="alain-pro__menu-title">
<ng-template [ngTemplateOutlet]="icon" [ngTemplateOutletContext]="{ $implicit: l1.icon }"></ng-template>
<span class="alain-pro__menu-title-text" *ngIf="pro.isMobile || !pro.onlyIcon">{{ l1.title }}</span>
<span class="alain-pro__menu-title-text" *ngIf="pro.isMobile || !pro.onlyIcon">{{ l1.text }}</span>
<div *ngIf="l1.badge" class="alain-pro__menu-title-badge">
<em>{{ l1.badge }}</em>
</div>
@ -49,7 +49,7 @@
(click)="closeCollapsed()">
<ng-template [ngTemplateOutlet]="subLink" [ngTemplateOutletContext]="{ $implicit: l2 }"></ng-template>
</li>
<li *ngIf="!l2._hidden && l2.children!.length > 0" nz-submenu [nzTitle]="l2.title!" [nzOpen]="l2._open"
<li *ngIf="!l2._hidden && l2.children!.length > 0" nz-submenu [nzTitle]="l2.text!" [nzOpen]="l2._open"
[nzDisabled]="l2.disabled" (nzOpenChange)="openChange(l2, $event)">
<ul>
<ng-container *ngFor="let l3 of l2.children">

View File

@ -0,0 +1,71 @@
<page-header-wrapper [title]="'开票订单明细'" [logo]="logo">
<ng-template #logo>
<button nz-button nz-tooltip nzTooltipTitle="返回上一页" (click)="goBack()">
<i nz-icon nzType="left" nzTheme="outline"></i>
</button>
</ng-template>
</page-header-wrapper>
<nz-card>
<h3 class="font-weight-bold">天津怡亚通物流科技有限公司(浦发银行)</h3>
<nz-row [nzGutter]="16">
<nz-col [nzXl]="4" [nzLg]="8" [nzSm]="12">
<nz-statistic [nzValue]="'100,000,000.00 '" nzTitle="平台账户余额"
[nzValueStyle]="{'font-size':'16px',color:'red'}" class="font-weight-bold">
</nz-statistic>
</nz-col>
<nz-col [nzXl]="4" [nzLg]="8" [nzSm]="12">
<nz-statistic [nzValue]="'100,000.00 ' " [nzTitle]="'货主账户余额'"
[nzValueStyle]="{'font-size':'16px',color:'red'}" class="font-weight-bold">
</nz-statistic>
</nz-col>
<nz-col [nzXl]="4" [nzLg]="8" [nzSm]="12">
<nz-statistic [nzValue]="'100,000.00 '" [nzTitle]="'司机账户余额'"
[nzValueStyle]="{'font-size':'16px',color:'red'}" class="font-weight-bold">
</nz-statistic>
</nz-col>
<nz-col [nzXl]="4" [nzLg]="8" [nzSm]="12">
<nz-statistic [nzValue]="'100,000.00 '" [nzTitle]="'累计充值金额'"
[nzValueStyle]="{'font-size':'16px',color:'red'}" class="font-weight-bold">
</nz-statistic>
</nz-col>
<nz-col [nzXl]="4" [nzLg]="8" [nzSm]="12">
<nz-statistic [nzValue]="'100,000.00 '" [nzTitle]="'货主累计提现金额'"
[nzValueStyle]="{'font-size':'16px',color:'red'}" class="font-weight-bold">
</nz-statistic>
</nz-col>
<nz-col [nzXl]="4" [nzLg]="8" [nzSm]="12">
<nz-statistic [nzValue]="'100,000.00 '" [nzTitle]="'司机累计提现金额'"
[nzValueStyle]="{'font-size':'16px',color:'red'}" class="font-weight-bold">
</nz-statistic>
</nz-col>
</nz-row>
</nz-card>
<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 } }}" [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">
<button nz-button nzType="primary" [nzLoading]="service.http.loading" (click)="st?.load(1)">查询</button>
<button nz-button (click)="resetSF()">重置</button>
<button nz-button (click)="exportList()"> 导出</button>
<button nz-button nzType="link" (click)="expandToggle()">
{{ !_$expand ? '展开' : '收起' }}
<i nz-icon [nzType]="!_$expand ? 'down' : 'up'"></i>
</button>
</div>
</div>
</nz-card>
<nz-card nzBordered>
<st #st [data]="service.$api_get_driver_account_detail" [columns]="columns"
[req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, process: beforeReq }"
[res]="{ reName: { list: 'data.records', total: 'data.total' } }"
[page]="{ show: true, showSize: true, pageSizes: [10, 20, 30, 50, 100, 200, 300, 500, 1000] }"
[loading]="service.http.loading" [scroll]="{ x:'1200px',y: '300px' }" (change)="stChange($event)"></st>
</nz-card>

View File

@ -0,0 +1,221 @@
import { Component, OnInit, ViewChild } from '@angular/core';
import { ActivatedRoute } from '@angular/router';
import { STComponent, STColumn, STRequestOptions, STChange } from '@delon/abc/st';
import { SFComponent, SFSchema, SFDateWidgetSchema } from '@delon/form';
import { FreightAccountService } from '../../../services/freight-account.service';
@Component({
selector: 'app-platform-account-detail',
templateUrl: './platform-account-detail.component.html',
styleUrls: ['../../../../commom/less/box.less', '../../../../commom/less/expend-but.less']
})
export class PlatformAccountDetailComponent implements OnInit {
@ViewChild('st', { static: true })
st!: STComponent;
@ViewChild('sf', { static: false })
sf!: SFComponent;
columns: STColumn[] = this.initST();
searchSchema: SFSchema = this.initSF();
_$expand = false;
info: any = {};
params: any = {};
constructor(public service: FreightAccountService, private route: ActivatedRoute) {
this.params = route.snapshot.queryParams;
}
ngOnInit(): void {
this.loadInfo();
}
beforeReq = (requestOptions: STRequestOptions) => {
Object.assign(requestOptions.body, {
ltdId: this.params.ltdId,
projectId: this.params.projectId,
enterpriseId: this.params.enterpriseId,
roleId: this.params.roleId
});
if (this.sf) {
Object.assign(requestOptions.body, {
...this.sf.value,
createTime: {
start: this.sf.value?.createTime?.[0] || '',
end: this.sf.value?.createTime?.[1] || ''
}
});
}
return requestOptions;
};
loadInfo() {
this.service
.request(this.service.$api_get_driver_account_balance_detail, {
...this.sf?.value,
ltdId: this.params.ltdId,
projectId: this.params.projectId,
enterpriseId: this.params.enterpriseId,
roleId: this.params.roleId,
pageIndex: this.st.pi,
pageSize: this.st.ps,
createTime: {
start: this.sf?.value?.createTime?.[0] || '',
end: this.sf?.value?.createTime?.[1] || ''
}
})
.subscribe(res => {
if (res) {
this.info = res;
}
});
}
stChange(e: STChange): void {}
exportList() {
this.service.downloadFile(this.service.$mock_url, { ...this.sf.value, pageIndex: this.st.pi, pageSize: this.st.ps });
}
goBack() {
history.go(-1);
}
/**
* 重置表单
*/
resetSF() {
this.sf.reset();
this._$expand = false;
}
/**
* 伸缩查询条件
*/
expandToggle() {
this._$expand = !this._$expand;
this.sf?.setValue('/expand', this._$expand);
}
private initSF(): SFSchema {
return {
properties: {
expand: {
type: 'boolean',
ui: {
hidden: true
}
},
createTime: {
title: '交易时间',
type: 'string',
ui: {
widget: 'sl-from-to-search',
format: 'yyyy-MM-dd',
placeholder: '请选择',
nzShowTime: true
} as SFDateWidgetSchema
},
transactionNumber: {
type: 'string',
title: '流水号',
ui: {
placeholder: '请输入'
}
},
businessNumber: {
type: 'string',
title: '交易单号',
ui: {
placeholder: '请输入'
}
},
tradeType: {
type: 'string',
title: '交易类型',
ui: {
widget: 'dict-select',
params: { dictKey: 'trade:type' },
placeholder: '请选择',
visibleIf: {
expand: (value: boolean) => value
}
},
default: ''
},
incomeType: {
type: 'string',
title: '收支类型',
ui: {
widget: 'dict-select',
params: { dictKey: 'income:type' },
placeholder: '请选择',
visibleIf: {
expand: (value: boolean) => value
}
},
default: ''
},
incomeType1: {
type: 'string',
title: '货主',
ui: {
widget: 'select',
placeholder: '请选择',
visibleIf: {
expand: (value: boolean) => value
}
},
default: ''
},
incomeType2: {
type: 'string',
title: '所属项目',
ui: {
widget: 'select',
placeholder: '请选择',
visibleIf: {
expand: (value: boolean) => value
}
},
default: ''
}
}
};
}
private initST(): STColumn[] {
return [
{ title: '交易时间', index: 'createTime', type: 'date' },
{ title: '流水号', index: 'channelPaySn' },
{ title: '交易类型', index: 'tradeTypeLabel', className: 'text-center' },
{ title: '交易单号', index: 'businessNumber' },
{ title: '订单号', index: 'businessNumber' },
{ title: '运单号', index: 'businessNumber' },
{ title: '账户类型', index: 'incomeTypeLabel', className: 'text-center' },
{ title: '账户名称', index: 'incomeTypeLabel', className: 'text-center' },
{ title: '所属项目', index: 'incomeTypeLabel', className: 'text-center' },
{ title: '收支类型', index: 'incomeTypeLabel', className: 'text-center' },
{
title: '交易金额',
index: 'amount',
width: 150,
type: 'widget',
className: 'text-right',
widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.amount }) }
},
{
title: '账户余额',
index: 'accountBalance',
width: 150,
type: 'widget',
className: 'text-right',
widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.accountBalance }) }
},
{ title: '付款方', index: 'incomeTypeLabel', className: 'text-center' },
{ title: '收款方', index: 'incomeTypeLabel', className: 'text-center' },
{ title: '备注', index: 'incomeTypeLabel', className: 'text-center' },
];
}
}

View File

@ -52,7 +52,7 @@
</nz-card>
<nz-card class="content-box">
<st #st [data]="url" [columns]="columns" [req]="{ params: reqParams }" [scroll]="{ x: '1200px' }"
[loading]="service.http.loading" (change)="stChange($event)">
<st #st [data]="url" [columns]="columns" [req]="{ process: beforeReq }" [scroll]="{ x: '1200px' }"
[loading]="service.http.loading">
</st>
</nz-card>

View File

@ -1,12 +1,9 @@
import { Component, OnInit, ViewChild } from '@angular/core';
import { Router } from '@angular/router';
import { STComponent, STColumn, STChange } from '@delon/abc/st';
import { STComponent, STColumn, STChange, STRequestOptions } from '@delon/abc/st';
import { SFComponent, SFSchema, SFDateWidgetSchema } from '@delon/form';
import { NzModalService } from 'ng-zorro-antd/modal';
import { SystemStaffStaffModalComponent } from 'src/app/routes/sys-setting/components/staff-management/staff-modal/staff-modal.component';
import { SystemService } from 'src/app/routes/sys-setting/services/system.service';
import { FreightAccountService } from '../../services/freight-account.service';
import { SettingFinancialComponent } from './setting-financial/setting-financial.component';
@Component({
selector: 'app-platform-account',
@ -18,40 +15,22 @@ export class PlatformAccountComponent implements OnInit {
st!: STComponent;
@ViewChild('sf', { static: false })
sf!: SFComponent;
searchSchema: SFSchema = this.initSF();
columns: STColumn[] = this.initST();
url = `/rule?_allow_anonymous=true`;
searchSchema: SFSchema = this.initSF();
columns: STColumn[] = this.initST();
reqParams = { pageIndex: 1, pageSize: 10 };
constructor(public service: FreightAccountService, private router: Router, private nzModalService: NzModalService) {}
ngOnInit(): void {}
stChange(e: STChange): void {
switch (e.type) {
case 'filter':
this.st.load();
break;
beforeReq = (requestOptions: STRequestOptions) => {
if (this.sf) {
Object.assign(requestOptions.body, { ...this.sf.value });
}
}
settingFinanical(item: any) {
const modal = this.nzModalService.create({
nzContent: SettingFinancialComponent,
nzComponentParams: item ? { i: { ...item, roleId: '1,2,3', name: '用户名', phone: 18555555555 } } : { i: { id: 0 } },
nzFooter: null
});
modal.afterClose.subscribe(res => {
this.st.load();
});
}
routeTo(item?: any) {
this.router.navigate(['/financial-management/driver-account-detail/1']);
}
return requestOptions;
};
/**
* 重置表单
@ -192,7 +171,7 @@ export class PlatformAccountComponent implements OnInit {
buttons: [
{
text: '查看明细',
click: item => this.routeTo(item)
click: item => this.router.navigate(['/financial-management/platform-account/detail/' + item.id])
}
]
}

View File

@ -28,6 +28,7 @@ import { VoucherListComponent } from './components/voucher-summary/voucher-list/
import { ReceiptOrderDetailComponent } from './components/receipt-order/receipt-order-detail/receipt-order-detail.component';
import { PaymentOrderDetailComponent } from './components/payment-order/payment-order-detail/payment-order-detail.component';
import { PlatformAccountComponent } from './components/platform-account/platform-account.component';
import { PlatformAccountDetailComponent } from './components/platform-account/platform-account-detail/platform-account-detail.component';
const routes: Routes = [
{ path: 'freight-account', component: FreightAccountComponent, data: { guard: { ability: ['FINANCIAL-FREIGHT-ACOUNT-list'] } } },
@ -35,6 +36,7 @@ const routes: Routes = [
{ path: 'driver-account', component: DriverAccountComponent },
{ path: 'driver-account/detail/:id', component: DriverAccountDetailComponent },
{ path: 'platform-account', component: PlatformAccountComponent },
{ path: 'platform-account/detail/:id', component: PlatformAccountDetailComponent },
{ path: 'recharge-record', component: RechargeRecordComponent },
{ path: 'withdrawals-record', component: WithdrawalsRecordComponent },
{ path: 'withdrawals-record/detail/:id', component: WithdrawalsDetailComponent },

View File

@ -31,7 +31,7 @@ import { PaymentOrderDetailComponent } from './components/payment-order/payment-
import { VoucherListComponent } from './components/voucher-summary/voucher-list/voucher-list.component';
import { ReceiptOrderDetailComponent } from './components/receipt-order/receipt-order-detail/receipt-order-detail.component';
import { PlatformAccountComponent } from './components/platform-account/platform-account.component';
import { SettingFinancialComponent } from './components/platform-account/setting-financial/setting-financial.component';
import { PlatformAccountDetailComponent } from './components/platform-account/platform-account-detail/platform-account-detail.component';
const ROUTESCOMPONENTS = [
FreightAccountComponent,
@ -57,12 +57,13 @@ const ROUTESCOMPONENTS = [
ReceivableOrderDetailComponent,
PayableOrderDetailComponent,
PlatformAccountComponent,
PlatformAccountDetailComponent,
PaymentOrderDetailComponent,
VoucherListComponent,
ReceiptOrderDetailComponent
];
const NOTROUTECOMPONENTS = [DriverAccountDetailComponent, FreightAccountDetailComponent, SettingFinancialComponent, ClearingModalComponent];
const NOTROUTECOMPONENTS = [DriverAccountDetailComponent, FreightAccountDetailComponent, ClearingModalComponent];
@NgModule({
declarations: [...ROUTESCOMPONENTS, ...NOTROUTECOMPONENTS],

View File

@ -54,7 +54,7 @@ export class MenuManagerComponentsIndexComponent implements OnInit {
this.listOfMapData.forEach(item => {
this.mapOfExpandedData[item.key] = this.service.convertTreeToList(item);
});
console.log(this.listOfMapData, this.mapOfExpandedData);
// console.log(this.listOfMapData, this.mapOfExpandedData);
}
});
}

View File

@ -131,7 +131,8 @@ export class MenuModalComponent implements OnInit {
const params = {
...this.sf.value,
...this.params,
i18n: this.sf.value.keyCode,
i18n: '',
// i18n: this.sf.value.keyCode,
menuType: 0,
reuse: 0,
shortcut: 0,