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

This commit is contained in:
wangshiming
2022-04-28 16:42:00 +08:00
27 changed files with 371 additions and 249 deletions

View File

@ -186,6 +186,7 @@ export class DriverAccountComponent extends BasicTableComponent implements OnIni
buttons: [
{
text: '查看明细',
acl: { ability: ['FINANCIAL-DRIVER-ACOUNT-view'] },
click: item =>
this.router.navigate(['/financial-management/driver-account/detail/' + item.id], {
queryParams: {

View File

@ -23,7 +23,12 @@ export class PlatformAccountComponent implements OnInit {
info: any = {};
static: any = {};
constructor(public service: FreightAccountService, private router: Router, private nzModalService: NzModalService, public modal: NzModalService) { }
constructor(
public service: FreightAccountService,
private router: Router,
private nzModalService: NzModalService,
public modal: NzModalService
) {}
ngOnInit(): void {
this.loadInfo();
@ -187,6 +192,7 @@ export class PlatformAccountComponent implements OnInit {
buttons: [
{
text: '查看明细 ',
acl: { ability: ['FINANCIAL-PLATFORM-view'] },
click: item =>
this.router.navigate(['/financial-management/platform-account/detail/' + item.id], {
queryParams: { ltdId: item.ltdId, bankType: item.bankType, ltdName: `${item.ltdName}(${item.bankTypeLabel})` }
@ -195,7 +201,7 @@ export class PlatformAccountComponent implements OnInit {
{
text: '提现',
click: item => this.withdraw(item),
iif: (_record) => _record.bankType !== '1'
iif: _record => _record.bankType !== '1'
},
// {
// text: '绑定银行卡',
@ -204,8 +210,8 @@ export class PlatformAccountComponent implements OnInit {
{
text: '查看银行卡',
click: item => this.viewBankcard(item),
iif: (_record) => _record.bankType !== '1'
},
iif: _record => _record.bankType !== '1'
}
]
}
];
@ -224,10 +230,9 @@ export class PlatformAccountComponent implements OnInit {
i: item
}
});
modalRef.afterOpen.subscribe(() => { });
modalRef.afterClose.subscribe((result) => {
modalRef.afterOpen.subscribe(() => {});
modalRef.afterClose.subscribe(result => {
if (result) this.st.reload();
});
}
@ -244,7 +249,7 @@ export class PlatformAccountComponent implements OnInit {
}
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_exportPlatformAccountBalanceByOperator);
}
// 提现
@ -264,7 +269,6 @@ export class PlatformAccountComponent implements OnInit {
// this.getSummary();
// this.withdrawTable.refresh();
}
})
});
}
}

View File

@ -283,10 +283,12 @@ export class VoucherSummaryComponent extends BasicTableComponent implements OnIn
buttons: [
{
text: '浏览',
acl: { ability: ['FINANCIAL-VOUCHER-SUMMARY-view'] },
click: (item: any) => this.router.navigate(['/financial-management/voucher-summary/detail/' + item.id])
},
{
text: '列表',
acl: { ability: ['FINANCIAL-VOUCHER-SUMMARY-child-list'] },
click: (item: any) => this.router.navigate(['/financial-management/voucher-summary/list/' + item.vc2code])
}
]

View File

@ -38,17 +38,25 @@ import { CwcBankCardManagementIndexComponent } from './components/bank-card-mana
const routes: Routes = [
{ path: 'freight-account', component: FreightAccountComponent, data: { guard: { ability: ['FINANCIAL-FREIGHT-ACOUNT-list'] } } },
{ path: 'freight-account/detail/:id', component: FreightAccountDetailComponent },
{ 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: 'driver-account', component: DriverAccountComponent, data: { guard: { ability: ['FINANCIAL-DRIVER-ACOUNT-list'] } } },
{
path: 'driver-account/detail/:id',
component: DriverAccountDetailComponent,
data: { guard: { ability: ['FINANCIAL-DRIVER-ACOUNT-DETAIL-view'] } }
},
{ path: 'platform-account', component: PlatformAccountComponent, data: { guard: { ability: ['FINANCIAL-PLATFORM-list'] } } },
{
path: 'platform-account/detail/:id',
component: PlatformAccountDetailComponent,
data: { guard: { ability: ['FINANCIAL-PLATFORM-DETAIL-detail'] } }
},
{ path: 'recharge-record', component: RechargeRecordComponent },
{ path: 'withdrawals-record', component: WithdrawalsRecordComponent },
{ path: 'withdrawals-record/detail/:id', component: WithdrawalsDetailComponent },
{ path: 'refund-record', component: RefundRecordComponent },
{ path: 'voucher-management', component: VoucherManagementComponent },
{ path: 'voucher-management/detail/:id', component: VoucherDetailComponent },
{ path: 'voucher-summary', component: VoucherSummaryComponent },
{ path: 'voucher-summary', component: VoucherSummaryComponent, data: { guard: { ability: ['FINANCIAL-VOUCHER-SUMMARY-list'] } } },
{ path: 'voucher-summary/detail/:id', component: SummaryDetailComponent },
{ path: 'voucher-summary/list/:id', component: VoucherListComponent },
{ path: 'voucher-summary/list/detail/:id', component: VoucherDetailComponent },
@ -66,10 +74,18 @@ const routes: Routes = [
{ path: 'receipt-order/detail/:id', component: ReceiptOrderDetailComponent },
{ path: 'advance-collection', component: AdvanceCollectionComponent },
{ path: 'advance-collection/detail/:id', component: AdvanceCollectionDetailComponent },
{ path: 'receivable-order', component: ReceivableOrderComponent },
{ path: 'receivable-order/detail/:id', component: ReceivableOrderDetailComponent },
{ path: 'payable-order', component: PayableOrderComponent },
{ path: 'payable-order/detail/:id', component: PayableOrderDetailComponent },
{ path: 'receivable-order', component: ReceivableOrderComponent, data: { guard: { ability: ['FINANCIAL-RECEIVABLE-list'] } } },
{
path: 'receivable-order/detail/:id',
component: ReceivableOrderDetailComponent,
data: { guard: { ability: ['FINANCIAL-RECEIVABLE-DETAIL-view'] } }
},
{ path: 'payable-order', component: PayableOrderComponent, data: { guard: { ability: ['FINANCIAL-PAYABLE-list'] } } },
{
path: 'payable-order/detail/:id',
component: PayableOrderDetailComponent,
data: { guard: { ability: ['FINANCIAL-PAYABLE-DETAIL-view'] } }
},
{ path: 'bank-card-management/index', component: CwcBankCardManagementIndexComponent }
];

View File

@ -1,5 +1,5 @@
/*
* @Description :
* @Description :
* @Version : 1.0
* @Author : Shiming
* @Date : 2022-01-06 09:24:00
@ -13,13 +13,12 @@ import { RouterModule, Routes } from '@angular/router';
import { insuranceManagementListComponent } from './components/list/list.component';
import { insuranceManagementSetComponent } from './components/set/set.component';
const routes: Routes = [
{ path: 'list', component: insuranceManagementListComponent },
{ path: 'list-set', component: insuranceManagementSetComponent },
]
{ path: 'list', component: insuranceManagementListComponent, data: { guard: { ability: ['INSURANCE-LIST-search'] } } },
{ path: 'list-set', component: insuranceManagementSetComponent, data: { guard: { ability: ['INSURANCE-LISTDETAIL-set'] } } }
];
@NgModule({
imports: [RouterModule.forChild(routes)],
exports: [RouterModule]
})
export class InsuranceManagementRoutingModule { }
export class InsuranceManagementRoutingModule {}

View File

@ -23,8 +23,8 @@
<nz-card class="content-box">
<nz-tabset>
<nz-tab nzTitle="货主菜单" (nzClick)="changeMemu(0)"></nz-tab>
<nz-tab nzTitle="运营后台菜单" (nzClick)="changeMemu(1)"></nz-tab>
<nz-tab nzTitle="货主菜单" (nzClick)="changeMemu(0)" *ngIf="isShowFre"></nz-tab>
<nz-tab nzTitle="运营后台菜单" (nzClick)="changeMemu(1)" *ngIf="isShowBackEND"></nz-tab>
</nz-tabset>
<!-- <st #st [data]="service.$api_get_all" [columns]="columns" [expand]="expand" expandRowByClick
@ -36,7 +36,7 @@
</ng-template>
</st> -->
<nz-table #expandTable [nzData]="listOfMapData" nzTableLayout="fixed" nzBordered nzSize="small"
[nzLoading]="service.http.loading">
[nzLoading]="service.http.loading" *ngIf="isShowFre || isShowBackEND">
<thead>
<tr>
<!-- <th nzWidth="70px" nzAlign="center">#</th> -->
@ -65,7 +65,7 @@
</td>
<td nzWidth="100px">{{ item.sorted }}</td>
<td nzWidth="150px" nzAlign="center">
<a (click)="openDrawer(item)">权限配置</a>
<a (click)="openDrawer(item)" acl [acl-ability]="['MENU-AUTH-auth']">权限配置</a>
</td>
</tr>
</ng-container>

View File

@ -1,4 +1,5 @@
import { Component, OnInit, ViewChild } from '@angular/core';
import { ACLService } from '@delon/acl';
import { SFComponent, SFSchema } from '@delon/form';
import { EAEnvironmentService } from '@shared';
import { NzDrawerService } from 'ng-zorro-antd/drawer';
@ -34,14 +35,26 @@ export class ApiAuthComponent implements OnInit {
mapOfExpandedData: { [key: string]: any[] } = {};
listOfMapData: any[] = [];
constructor(private envSrv: EAEnvironmentService, public service: MenuManagerService, private drawer: NzDrawerService) {
isShowBackEND = false;
isShowFre = false;
constructor(
private envSrv: EAEnvironmentService,
public service: MenuManagerService,
private drawer: NzDrawerService,
private acl: ACLService
) {
const acls = acl.data.abilities || [];
this.isShowBackEND = acl.data.full || !!acls.find(acl => acl === 'MENU-AUTH-obclist');
this.isShowFre = acl.data.full || !!acls.find(acl => acl === 'MENU-AUTH-smclist');
this.initData();
}
ngOnInit(): void {}
initData(): void {
this.selectedPlatform = this.platforms[0];
this.selectedPlatform = this.isShowFre ? this.platforms[0] : this.platforms[1];
this.loadMemu(this.selectedPlatform.appId);
}

View File

@ -23,14 +23,15 @@
<nz-card class="content-box">
<nz-tabset [nzTabBarExtraContent]="extraTemplate">
<nz-tab nzTitle="货主菜单" (nzClick)="changeMemu(0)"></nz-tab>
<nz-tab nzTitle="运营后台菜单" (nzClick)="changeMemu(1)"></nz-tab>
<nz-tab nzTitle="货主菜单" (nzClick)="changeMemu(0)" *ngIf="isShowFre"></nz-tab>
<nz-tab nzTitle="运营后台菜单" (nzClick)="changeMemu(1)" *ngIf="isShowBackEND"></nz-tab>
</nz-tabset>
<ng-template #extraTemplate>
<div class="d-flex align-items-center">
<div>
<button nz-button nzType="primary" (click)="menuAction('新增菜单')">新增</button>
<button nz-button nzType="primary" (click)="menuSort()">菜单排序</button>
<button nz-button nzType="primary" (click)="menuAction('新增菜单')" acl
[acl-ability]="['MENU-INDEX-add']">新增</button>
<button nz-button nzType="primary" (click)="menuSort()" acl [acl-ability]="['MENU-INDEX-sort']">菜单排序</button>
<!-- <button nz-button nzType="primary" (click)="menuImport(0)" [disabled]="false"
*ngIf="selectedPlatform.enName==='tms-smc-web'">
导入货主菜单
@ -52,7 +53,7 @@
</ng-template>
</st> -->
<nz-table #expandTable [nzData]="listOfMapData" nzTableLayout="fixed" nzBordered nzSize="small"
[nzLoading]="service.http.loading">
[nzLoading]="service.http.loading" *ngIf="isShowFre || isShowBackEND">
<thead>
<tr>
<!-- <th nzWidth="70px" nzAlign="center">#</th> -->
@ -85,12 +86,12 @@
<td nzAlign="center" nzWidth="250px">
<a (click)="menuAction('查看菜单',item,item.parentId,true)">查看</a>
<nz-divider nzType="vertical"></nz-divider>
<a (click)="menuAction('编辑菜单',item,item.parentId)">编辑</a>
<a (click)="menuAction('编辑菜单',item,item.parentId)" acl [acl-ability]="['MENU-INDEX-edit']">编辑</a>
<nz-divider nzType="vertical"></nz-divider>
<a (click)="deleteAction(item)">删除</a>
<a (click)="deleteAction(item)" acl [acl-ability]="['MENU-INDEX-delete']">删除</a>
<ng-container *ngIf="item.level!==3">
<nz-divider nzType="vertical"></nz-divider>
<a (click)="menuAction('新增菜单',null,item.id)">新增子项</a>
<a (click)="menuAction('新增菜单',null,item.id)" acl [acl-ability]="['MENU-INDEX-add']">新增子项</a>
</ng-container>
</td>
</tr>

View File

@ -1,5 +1,6 @@
import { Component, OnInit, ViewChild } from '@angular/core';
import { STComponent, STColumn, STRequestOptions, STChange } from '@delon/abc/st';
import { ACLService } from '@delon/acl';
import { SFComponent, SFSchema } from '@delon/form';
import { Menu, ModalHelper } from '@delon/theme';
import { EAEnvironmentService } from '@shared';
@ -37,14 +38,26 @@ export class MenuManagerComponentsIndexComponent implements OnInit {
mapOfExpandedData: { [key: string]: any[] } = {};
listOfMapData: any[] = [];
constructor(private envSrv: EAEnvironmentService, public service: MenuManagerService, private modal: NzModalService, private modalHelper: ModalHelper,) {
isShowBackEND = false;
isShowFre = false;
constructor(
private envSrv: EAEnvironmentService,
public service: MenuManagerService,
private modal: NzModalService,
private modalHelper: ModalHelper,
private acl: ACLService
) {
const acls = acl.data.abilities || [];
this.isShowBackEND = acl.data.full || !!acls.find(acl => acl === 'MENU-INDEX-obclist');
this.isShowFre = acl.data.full || !!acls.find(acl => acl === 'MENU-INDEX-smclist');
this.initData();
}
ngOnInit(): void {}
initData(): void {
this.selectedPlatform = this.platforms[0];
this.selectedPlatform = this.isShowFre ? this.platforms[0] : this.platforms[1];
this.loadMemu(this.selectedPlatform.appId);
}
@ -126,13 +139,13 @@ export class MenuManagerComponentsIndexComponent implements OnInit {
}
});
}
menuSort(){
menuSort() {
const dialogData = {
appId: this.selectedPlatform.appId
};
this.modalHelper.create(MenuManagerMenusortComponent, { i: dialogData }, { size: 900 }).subscribe((res:any) => {
if(res) {
console.log('a')
this.modalHelper.create(MenuManagerMenusortComponent, { i: dialogData }, { size: 900 }).subscribe((res: any) => {
if (res) {
console.log('a');
this.loadMemu(this.selectedPlatform.appId);
}
});

View File

@ -5,12 +5,16 @@ import { MenuManagerComponentsIndexComponent } from './components/index/index.co
const routes: Routes = [
{ path: '', redirectTo: 'index', pathMatch: 'full' },
{ path: 'index', component: MenuManagerComponentsIndexComponent },
{ path: 'auth', component: ApiAuthComponent },
{
path: 'index',
component: MenuManagerComponentsIndexComponent,
data: { guard: { ability: ['MENU-INDEX-obclist', 'MENU-INDEX-smclist'] } }
},
{ path: 'auth', component: ApiAuthComponent, data: { guard: { ability: ['MENU-AUTH-obclist', 'MENU-AUTH-smclist'] } } }
];
@NgModule({
imports: [RouterModule.forChild(routes)],
exports: [RouterModule],
exports: [RouterModule]
})
export class MenuManagerRoutingModule {}

View File

@ -6,13 +6,21 @@
</button>
</ng-template>
<ng-template #headerContent>
<div class="mb-xs" nz-row>
<div class="mb-sm common-order-header" nz-row>
<button nz-button nzType="primary" nzSize="small" nzDanger>{{ i?.resourceStatusLabel }}</button>
<h4 class="ml-md">货源编码 : {{ i?.resourceCode }}</h4>
<b class="ml-md">货源编码 : {{ i?.resourceCode }}</b>
</div>
<div nz-row>
<div nz-col nzSpan="14" class="text-grey-darker">网络货运人:{{ i?.shipperAppUserName }}</div>
<div nz-col nzSpan="10">
<div>
<button nz-button (click)="cancleGoodsSource()" *ngIf="i?.resourceStatus === '1'" acl
[acl-ability]="['SUPPLY-BULK-DETAIL-cancelSupply']">取消货源</button>
<button nz-button (click)="updatePrice(i)" *ngIf="i?.resourceStatus === '1'" acl
[acl-ability]="['SUPPLY-BULK-DETAIL-updatePrice']">修改单价</button>
<button nz-button nzType="primary" nzGhost (click)="placeOrder(i)" acl
[acl-ability]="['SUPPLY-BULK-DETAIL-bulkAnotherOrder']">再下一单</button>
</div>
<!-- <div class="common-order-header" nz-row>
<div class="common-grey">网络货运人:{{ i?.shipperAppUserName }}</div>
<div>
<button nz-button (click)="cancleGoodsSource()" *ngIf="i?.resourceStatus === '1'" acl
[acl-ability]="['SUPPLY-BULK-DETAIL-cancelSupply']">取消货源</button>
<button nz-button (click)="updatePrice(i)" *ngIf="i?.resourceStatus === '1'" acl
@ -20,14 +28,15 @@
<button nz-button nzType="primary" nzGhost (click)="placeOrder(i)" acl
[acl-ability]="['SUPPLY-BULK-DETAIL-bulkAnotherOrder']">再下一单</button>
</div>
</div>
<div class="mt-sm mb-sm" nz-row>
</div> -->
<!-- <div class="mt-sm mb-sm" nz-row>
<div>
<b>总费用:<span class="text-red-light text-md">{{ i?.totalAmount | currency: '¥' }}</span></b>
</div>
</div>
</div> -->
<nz-divider></nz-divider>
<div sv-container>
<sv label="网络货运人">{{ i?.shipperAppUserName }}</sv>
<sv label="项目">{{ i?.enterpriseProjectName }}</sv>
<sv label="截止时间">{{ i?.deadlineTime }}</sv>
<sv label="录单员">{{ i?.createUserName }}/{{ i?.createUserPhone }}</sv>
@ -37,13 +46,12 @@
</ng-template>
</page-header-wrapper>
<nz-card [nzBorderless]="true" class="mb0">
<div class="mb-xs" nz-row>
<button nz-button nzType="primary" nzSize="small" nzDanger>{{ i?.resourceStatusLabel }}</button>
<h4 class="ml-md">货源编码 : {{ i?.resourceCode }}</h4>
</div>
<div nz-row>
<div nz-col nzSpan="14" class="text-grey-darker">网络货运人:{{ i?.shipperAppUserName }}</div>
<div nz-col nzSpan="10">
<div class="mb-sm common-order-header" nz-row>
<div>
<button nz-button nzType="primary" nzSize="small" nzDanger>{{ i?.resourceStatusLabel }}</button>
<b class="ml-md">货源编码 : {{ i?.resourceCode }}</b>
</div>
<div>
<button nz-button (click)="cancleGoodsSource()" *ngIf="i?.resourceStatus === '1'" acl
[acl-ability]="['SUPPLY-BULK-DETAIL-cancelSupply']">取消货源</button>
<button nz-button (click)="updatePrice(i)" *ngIf="i?.resourceStatus === '1'" acl
@ -52,13 +60,14 @@
[acl-ability]="['SUPPLY-BULK-DETAIL-bulkAnotherOrder']">再下一单</button>
</div>
</div>
<div class="mt-sm mb-sm" nz-row>
<!-- <div class="mt-sm mb-sm" nz-row>
<div>
<b>总费用:<span class="text-red-light text-md">{{ i?.totalAmount | currency: '¥' }}</span></b>
</div>
</div>
<nz-divider></nz-divider>
<div sv-container>
</div> -->
<nz-divider class="divider-margin"></nz-divider>
<div class="mb-lg" sv-container>
<sv label="网络货运人">{{ i?.shipperAppUserName }}</sv>
<sv label="项目">{{ i?.enterpriseProjectName }}</sv>
<sv label="截止时间">{{ i?.deadlineTime }}</sv>
<sv label="录单员">{{ i?.createUserName }}/{{ i?.createUserPhone }}</sv>
@ -66,8 +75,8 @@
<sv label="服务类型">{{ i?.serviceTypeLabel }} </sv>
</div>
<div class="approval-status">
<div style="width: 60%; margin: 0 auto">
<nz-steps style="width: 70%; margin: 0 auto" [nzLabelPlacement]="'vertical'">
<div class="step-row">
<nz-steps [nzLabelPlacement]="'vertical'">
<nz-step [nzStatus]="i?.resourceStatus !== '1'?'finish':'process'" nzIcon="solution"
[nzDescription]="i?.createTime" nzTitle="下单"></nz-step>
<nz-step *ngIf="i?.resourceStatus === '1' || i?.resourceStatus === '4' "
@ -80,13 +89,22 @@
</div>
</div>
<div class="mt-md">
<h4 class="text-md">装货卸货信息
<div class="font-weight-blod text-md detail-title">
<a class="sign mr-xs"></a>
<span>装货卸货信息</span>
<span class="ml-sm text-sm">(
<label>{{ i?.loadingCount || '一' }}装</label>
<label>{{ i?.unloadingCount || '一' }}卸</label>
)
</span>
</h4>
</div>
<!-- <h4 class="text-md">装货卸货信息
<span class="ml-sm text-sm">(
<label>{{ i?.loadingCount || '一' }}装</label>
<label>{{ i?.unloadingCount || '一' }}卸</label>
)
</span>
</h4> -->
<div nz-row [nzGutter]="24">
<div nz-col [nzSpan]="12">
<div class="handling-info p-md">
@ -95,7 +113,7 @@
<div class="handling-info-icon loading-bg"></div>
<div class="info">
<h4>装货地:{{ item?.province }}{{ item?.city }}{{ item?.area }}{{ item?.detailedAddress }}</h4>
<p>联系人:{{ item?.appUserName }}/{{ item?.contractTelephone }}</p>
<p class="mb0">联系人:{{ item?.appUserName }}/{{ item?.contractTelephone }}</p>
</div>
</div>
</div>
@ -109,7 +127,7 @@
<div class="handling-info-icon unloaing-bg"></div>
<div class="info">
<h4>卸货地:{{ item?.province }}{{ item?.city }}{{ item?.area }}{{ item?.detailedAddress }}</h4>
<p>联系人:{{ item?.appUserName }}/{{ item?.contractTelephone }}</p>
<p class="mb0">联系人:{{ item?.appUserName }}/{{ item?.contractTelephone }}</p>
</div>
</div>
</div>
@ -140,6 +158,15 @@
<sv label="用车需求">
{{item.carModelLabel || '--'}} / {{item.carLengthLabel || '--'}}<span *ngIf="item.carLength !=='999'"></span>
</sv>
<sv label="承运司机"
*ngIf="i?.carrierInformationVO?.driverTelephone && (i?.carrierInformationVO?.driverTelephone !== i?.payeePhone)">
{{i?.carrierInformationVO?.driverName || '--'}} / {{i?.carrierInformationVO?.driverTelephone || '--'}} /
{{i?.carrierInformationVO?.driverLicensePlate || '--'}}
</sv>
<sv label="车型车长载重">
{{i?.driverCarModelLabel || '--'}} / {{(i?.driverCarLength || '--') +'米'}} / {{(i?.driverCarWeight ||
'--')+'吨'}}
</sv>
<!-- <sv label="承运信息">
{{i?.carrierInformationVO?.driverName}} / {{i?.carrierInformationVO?.driverTelephone}} /
{{i?.carrierInformationVO?.driverLicensePlate}}
@ -152,26 +179,35 @@
</nz-card>
<nz-card [nzBorderless]="true" class="mb0" nzTitle="运费信息">
<nz-card [nzBorderless]="true" class="mb0">
<div class="font-weight-blod text-md detail-title">
<a class="sign mr-xs"></a>
<span>运费信息</span>
<span class="pl-sm text-warning">(到货后{{i?.paymentDays}}天内支付运费)</span>
</div>
<div>
<div nz-row>
<div *ngFor="let item of i?.goodsInfoVOList" nz-col nzSpan="24">
<div>
<p class="text-warning-light mb-xs text-right">收货后{{ i?.paymentDays }}天内支付运费</p>
<p class="mb-xs text-right"> {{ settlementBasis[item?.settlementBasis] }}{{ rule[item?.rule] }}</p>
</div>
<nz-divider class="mb-xs mt-xs"></nz-divider>
<div class="text-right">
<label>运费单价:</label>
<span class="text-error-dark text-xxl">{{ item?.freightPrice | currency: '¥' }} {{
freightType[item?.freightType] }}</span>
<span>(附加费率{{i?.rate * 100 | number: '0.2-2'}}%</span>
</div>
<nz-divider class="mb-xs mt-xs"></nz-divider>
<div>
<!-- <p class="text-warning-light mb-xs text-right">收货后{{ i?.paymentDays }}天内支付运费</p> -->
<p class="mb0 text-right"> {{ settlementBasis[item?.settlementBasis] }}{{ rule[item?.rule] }}</p>
</div>
</div>
</div>
</div>
</nz-card>
<nz-card [nzBorderless]="true" class="mb0" nzTitle="关联订单">
<nz-card [nzBorderless]="true" class="mb0">
<div class="font-weight-blod text-md detail-title">
<a class="sign mr-xs"></a>
<span>关联订单</span>
</div>
<sv-container col="5">
<sv [label]="item?.wayBillStatusLabel" *ngFor="let item of i?.wayBillClassifiedStatisticsVOList">
(<span [ngClass]="{ 'text-primary': item?.count > 0 }">{{ item?.count }}</span>)
@ -190,7 +226,11 @@
</sv> -->
</sv-container>
</nz-card>
<nz-card [nzBorderless]="true" class="mb0" nzTitle="补充信息">
<nz-card [nzBorderless]="true" class="mb0">
<div class="font-weight-blod text-md detail-title">
<a class="sign mr-xs"></a>
<span>补充信息</span>
</div>
<sv-container>
<sv label="是否回单">
{{ i?.supplementaryInformationVO?.stateReceipt ? '是' : '否' }}
@ -213,10 +253,14 @@
</sv>
</sv-container>
</nz-card>
<nz-card [nzBorderless]="true" class="mb0" nzTitle="操作日志">
<nz-card [nzBorderless]="true" class="mb0">
<div class="font-weight-blod text-md detail-title">
<a class="sign mr-xs"></a>
<span>操作日志</span>
</div>
<st #st [data]="service.$api_getOperationLogRecordsList" [columns]="logColumns" [page]="{}"
[req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, params: reqParams }"
[res]="{ reName: { list: 'data.records', total: 'data.total' } }">
[res]="{ reName: { list: 'data.records', total: 'data.total' } }" [size]="'small'">
</st>
</nz-card>
</div>

View File

@ -48,7 +48,7 @@
}
.handling-info {
min-height: 100px;
min-height: 90px;
border: 1px solid #ccc;
.loading-row {

View File

@ -260,9 +260,9 @@
<button *ngIf="this.PageStatus == '整车修改'" nz-button nzType="primary" style="margin-left: 48px"
(click)="submitConfirm()" acl [acl-ability]="['SUPPLY-VEHICLE-AMEND-submitChange']">提交修改</button>
<button nz-button nzType="primary" *ngIf="this.PageStatus == '整车下一单'" (click)="submitConfirm('assign')" acl
[acl-ability]="['SUPPLY-BULK-PLACEORDER-vehicleDesignate']">指派熟车</button>
[acl-ability]="['SUPPLY-VEHICLE-PLACEORDER-vehicleDesignate']">指派熟车</button>
<button *ngIf="this.PageStatus == '整车下一单'" nz-button nzType="primary" style="margin-left: 48px"
(click)="submitConfirm('publish')" acl
[acl-ability]="['SUPPLY-BULK-PLACEORDER-vehicleAnotherOrder']">司机抢单</button>
[acl-ability]="['SUPPLY-VEHICLE-PLACEORDER-vehicleAnotherOrder']">司机抢单</button>
</div>
</nz-card>

View File

@ -6,48 +6,14 @@
<i nz-icon nzType="left" nzTheme="outline"></i>
</button>
</ng-template>
<ng-template #headerContent>
<div class="mb-xs" nz-row>
<button nz-button nzType="primary" nzSize="small" nzDanger>{{ i?.resourceStatusLabel }}</button>
<h4 class="ml-md">货源编码 : {{ i?.resourceCode }}</h4>
</div>
<div nz-row>
<div nz-col nzSpan="14" class="text-grey-darker">网络货运人:{{ i?.enterpriseInfoName }}</div>
<div nz-col nzSpan="10">
<button nz-button (click)="cancleGoodsSource()" *ngIf="i?.resourceStatus === '1'" acl
[acl-ability]="['SUPPLY-VEHICLE-DETAIL-cancelSupply']">取消货源</button>
<button nz-button (click)="assignedCar(i)" *ngIf="i?.resourceStatus === '1' && i?.serviceType === '2'" acl
[acl-ability]="['SUPPLY-VEHICLE-DETAIL-vehicleAnew']">重新指派</button>
<button nz-button (click)="updateGoodsSource(i)"
*ngIf="i?.resourceStatus === '1' && i.insurancePayment !== 'Y'" acl
[acl-ability]="['SUPPLY-VEHICLE-DETAIL-changeSupply']">修改货源</button>
<button nz-button nzType="primary" nzGhost (click)="nextOrder(i)" acl
[acl-ability]="['SUPPLY-VEHICLE-DETAIL-vehiclePlaceOrder']">再下一单</button>
</div>
</div>
<div class="mt-sm mb-sm" nz-row>
<div>
<b>总费用:<span class="text-red-light text-md">{{ i?.totalAmount | currency }}</span></b>
</div>
</div>
<nz-divider></nz-divider>
<div sv-container *ngIf="i">
<sv label="外部货源号">{{ i?.externalResourceCode }} </sv>
<sv label="项目">{{ i?.enterpriseProjectName }}</sv>
<sv label="录单员">{{ i?.createUserName }}/{{ i?.createUserPhone }}</sv>
<sv label="调度员">{{ i?.dispatchName }}/{{ i?.dispatchPhone }} </sv>
<sv label="服务类型">{{ i?.serviceTypeLabel }} </sv>
</div>
</ng-template>
</page-header-wrapper>
<nz-card [nzBorderless]="true" class="mb0">
<div class="mb-xs" nz-row>
<button nz-button nzType="primary" nzSize="small" nzDanger>{{ i?.resourceStatusLabel }}</button>
<h4 class="ml-md">货源编码 : {{ i?.resourceCode }}</h4>
</div>
<div nz-row>
<div nz-col nzSpan="14" class="text-grey-darker">网络货运人:{{ i?.enterpriseInfoName }}</div>
<div nz-col nzSpan="10">
<div class="mb-sm common-order-header" nz-row>
<div>
<button nz-button nzType="primary" nzSize="small" nzDanger>{{ i?.resourceStatusLabel }}</button>
<b class="ml-md">货源编码 : {{ i?.resourceCode }}</b>
</div>
<div>
<button nz-button (click)="cancleGoodsSource()" *ngIf="i?.resourceStatus === '1'" acl
[acl-ability]="['SUPPLY-VEHICLE-DETAIL-cancelSupply']">取消货源</button>
<button nz-button (click)="assignedCar(i)" *ngIf="i?.resourceStatus === '1' && i?.serviceType === '2'" acl
@ -65,7 +31,8 @@
</div>
</div> -->
<nz-divider class="divider-margin"></nz-divider>
<div class="mb-lg" sv-container *ngIf="i">
<div class="mb-lg" sv-container>
<sv label="网络货运人">{{ i?.enterpriseInfoName }} </sv>
<sv label="外部货源号">{{ i?.externalResourceCode }} </sv>
<sv label="项目">{{ i?.enterpriseProjectName }}</sv>
<sv label="录单员">{{ i?.createUserName }}/{{ i?.createUserPhone }}</sv>
@ -85,52 +52,24 @@
</nz-steps>
</div>
</div>
</nz-card>
<nz-card [nzBorderless]="true" class="mb0">
<div class="font-weight-blod text-md detail-title">
<a class="sign mr-xs"></a>
<span>基本信息</span>
</div>
<sv-container col="2">
<!-- <sv-title>货物信息</sv-title> -->
<ng-container *ngFor="let item of i?.goodsInfoVOList">
<sv label="货物名称">
{{ item.goodsTypeName }} - {{ item.goodsName }}
</sv>
<sv label="货物数量"> {{ item.weight }}吨,{{ item.volume }}方,{{ item.number }}件 </sv>
</ng-container>
</sv-container>
<sv-container class="mt-md">
<!-- <sv-title>承运信息</sv-title> -->
<sv label="司机姓名">
{{ i?.carrierInformationVO?.driverName }}
</sv>
<sv label="手机号">
{{ i?.carrierInformationVO?.driverTelephone }}
</sv>
<sv label="车牌号">
{{ i?.carrierInformationVO?.driverLicensePlate }}
</sv>
</sv-container>
<sv-container>
<sv label="承运司机" *ngIf="i?.carrierInformationVO.driverTelephone !== i?.payeePhone">
{{i?.carrierInformationVO.driverName || '--'}} / {{i?.carrierInformationVO.driverTelephone || '--'}} /
{{i?.carrierInformationVO.driverLicensePlate || '--'}}
</sv>
<sv label="车型车长载重">
{{i?.driverCarModelLabel || '--'}} / {{(i?.driverCarLength || '--') +'米'}} / {{(i?.driverCarWeight ||
'--')+'吨'}}
</sv>
</sv-container>
<div class="mt-md">
<h4 class="text-md">装货卸货信息
<!-- <h4 class="text-md">装货卸货信息
<span class="ml-sm text-sm">(
<label>{{ i?.loadingCount }}装</label>
<label>{{ i?.unloadingCount }}卸</label>
)
</span>
</h4>
</h4> -->
<div class="font-weight-blod text-md detail-title">
<a class="sign mr-xs"></a>
<span>装货卸货信息</span>
<span class="ml-sm text-sm">(
<label>{{ i?.loadingCount }}装</label>
<label>{{ i?.unloadingCount }}卸</label>
)
</span>
</div>
<div nz-row [nzGutter]="24">
<div nz-col [nzSpan]="12">
<div class="handling-info p-md">
@ -168,6 +107,42 @@
</div>
</nz-card>
<nz-card [nzBorderless]="true" class="mb0">
<div class="font-weight-blod text-md detail-title">
<a class="sign mr-xs"></a>
<span>基本信息</span>
</div>
<sv-container col="2">
<!-- <sv-title>货物信息</sv-title> -->
<ng-container *ngFor="let item of i?.goodsInfoVOList">
<sv label="货物名称">
{{ item.goodsTypeName }} - {{ item.goodsName }}
</sv>
<sv label="货物数量"> {{ item.weight }}吨,{{ item.volume }}方,{{ item.number }}件 </sv>
<sv label="承运司机" *ngIf="i?.carrierInformationVO?.driverTelephone !== i?.payeePhone">
{{i?.carrierInformationVO?.driverName || '--'}} / {{i?.carrierInformationVO?.driverTelephone || '--'}} /
{{i?.carrierInformationVO?.driverLicensePlate || '--'}}
</sv>
<sv label="车型车长载重">
{{i?.driverCarModelLabel || '--'}} / {{(i?.driverCarLength || '--') +'米'}} / {{(i?.driverCarWeight ||
'--')+'吨'}}
</sv>
</ng-container>
</sv-container>
<!-- <sv-container class="mt-md">
<sv-title>承运信息</sv-title>
<sv label="司机姓名">
{{ i?.carrierInformationVO?.driverName }}
</sv>
<sv label="手机号">
{{ i?.carrierInformationVO?.driverTelephone }}
</sv>
<sv label="车牌号">
{{ i?.carrierInformationVO?.driverLicensePlate }}
</sv>
</sv-container> -->
</nz-card>
<nz-card [nzBorderless]="true" class="mb0">
<div class="font-weight-blod text-md detail-title">
<a class="sign"></a>
@ -206,7 +181,7 @@
</st>
<div class="freight-info-box mt-md" nz-row>
<div nz-col nzSpan="24">
<h3>
<h3 class="mb0">
<label>总计 :</label>
<span class="text-error-dark text-xl">
{{ i?.totalAmount | currency }}
@ -251,7 +226,7 @@
</div>
<st #st [data]="service.$api_getOperationLogRecordsList" [columns]="logColumns" [page]="{}"
[req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, params: reqParams }"
[res]="{ reName: { list: 'data.records', total: 'data.total' } }">
[res]="{ reName: { list: 'data.records', total: 'data.total' } }" [size]="'small'">
<ng-template st-row="operator" let-item>
<div>
{{ item?.operator }} {{ item?.telephone ? '/' + item?.telephone : '' }}
@ -260,4 +235,4 @@
</st>
</nz-card>
</div>
</nz-spin>
</nz-spin>

View File

@ -48,7 +48,7 @@
}
.handling-info {
min-height: 176px;
min-height: 100px;
border: 1px solid #ccc;
.loading-row {
@ -79,6 +79,7 @@
.time-info {
margin-left: 56px;
margin-bottom: 0;
}
}
}

View File

@ -51,6 +51,15 @@ const routes: Routes = [
{
path: 'vehicle-amend/:id',
component: SupplyManagementOnecarPublishComponent,
data: {
guard: {
ability: ['SUPPLY-VEHICLE-AMEND-submitChange']
}
}
},
{
path: 'vehicle-next/:id',
component: SupplyManagementOnecarPublishComponent,
data: {
guard: {
ability: [
@ -58,25 +67,30 @@ const routes: Routes = [
'SUPPLY-VEHICLE-PLACEORDER-vehicleDesignate',
'SUPPLY-VEHICLE-PLACEORDER-vehicleAnotherOrder'
]
}
}
}
}
},
{
path: 'vehicle-next/:id',
component: SupplyManagementOnecarPublishComponent,
// data: {
// guard: {
// ability: [
// 'SUPPLY-VEHICLE-PLACEORDER-QRCode',
// 'SUPPLY-VEHICLE-PLACEORDER-vehicleDesignate',
// 'SUPPLY-VEHICLE-PLACEORDER-vehicleAnotherOrder'
// ]
// }
// }
path: 'vehicle-release',
component: SupplyManagementReleasePublishComponent,
data: {
guard: { ability: ['SUPPLY-VEHICLE-RELEASE-bulkDesignate', 'SUPPLY-VEHICLE-RELEASE-bulkDriverOrder'] }
}
},
{
path: 'bulk-release',
component: SupplyManagementBulkReleasePublishComponent,
data: {
guard: { ability: ['SUPPLY-BULK-RELEASE-consignBulkAssign', 'SUPPLY-BULK-RELEASE-consignBulk'] }
}
},
{
path: 'bulk-next/:id',
component: SupplyManagementBulkPublishComponent,
data: {
guard: { ability: ['SUPPLY-BULK-PLACEORDER-vehicleAnotherOrder', 'SUPPLY-BULK-PLACEORDER-vehicleDesignate'] }
}
},
{ path: 'vehicle-release', component: SupplyManagementReleasePublishComponent },
{ path: 'bulk-release', component: SupplyManagementBulkReleasePublishComponent },
{ path: 'bulk-next/:id', component: SupplyManagementBulkPublishComponent },
{ path: 'bulk-amend/:id', component: SupplyManagementBulkPublishComponent }
];

View File

@ -1,7 +1,11 @@
<page-header-wrapper [title]="'车型车长配置'" [content]="content">
<ng-template #content>
<nz-tabset class="tabs-wrap">
<nz-tab *ngFor="let tab of tabs" [nzTitle]="tab.name" (nzSelect)="changeTab(tab)"> </nz-tab>
<ng-container *ngFor="let tab of tabs">
<nz-tab [nzTitle]="tab.name" (nzSelect)="changeTab(tab)" *ngIf="tab.isShow">
</nz-tab>
</ng-container>
</nz-tabset>
</ng-template>
</page-header-wrapper>
@ -22,10 +26,10 @@
<nz-card>
<div class="d-flex justify-content-end mb-sm">
<div>
<button nz-button nzType="primary" (click)="configAction()">新增</button>
<button nz-button nzType="primary" (click)="configAction()" acl
[acl-ability]="['SYSTEM-CART-CONFIG-add']">新增</button>
</div>
</div>
<st #st [data]="tabType === 3?service.$api_get_config_item_page:service.$api_get_dict_page" [columns]="columns"
[req]="{process: beforeReq }" [res]="{ process: afterRes }" [loading]="loading"
[scroll]="{ y: '370px' }"></st>
[req]="{process: beforeReq }" [res]="{ process: afterRes }" [loading]="loading" [scroll]="{ y: '370px' }"></st>
</nz-card>

View File

@ -1,5 +1,6 @@
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnInit, ViewChild } from '@angular/core';
import { STComponent, STColumn, STChange, STRequestOptions } from '@delon/abc/st';
import { ACLService } from '@delon/acl';
import { SFComponent, SFSchema } from '@delon/form';
import { NzModalService } from 'ng-zorro-antd/modal';
import { SystemService } from '../../services/system.service';
@ -20,17 +21,20 @@ export class CartConfigComponent implements OnInit {
{
name: '车型配置',
type: 1,
isActived: false
isActived: false,
isShow: true
},
{
name: '车长配置',
type: 2,
isActived: false
isActived: false,
isShow: true
},
{
name: '禁限物品名单',
type: 3,
isActived: false
isActived: false,
isShow: true
}
];
tabType = 1;
@ -102,10 +106,12 @@ export class CartConfigComponent implements OnInit {
buttons: [
{
text: '编辑',
acl: { ability: ['SYSTEM-CART-CONFIG-edit'] },
click: item => this.configAction(item)
},
{
text: '删除',
acl: { ability: ['SYSTEM-CART-CONFIG-delete'] },
click: item => this.deleteAction(item)
}
]
@ -113,7 +119,35 @@ export class CartConfigComponent implements OnInit {
];
loading = true;
constructor(public service: SystemService, private nzModalService: NzModalService, private cdr: ChangeDetectorRef) {}
constructor(
public service: SystemService,
private nzModalService: NzModalService,
private cdr: ChangeDetectorRef,
private acl: ACLService
) {
const acls = acl.data.abilities || [];
this.tabs = [
{
name: '车型配置',
type: 1,
isActived: false,
isShow: acl.data.full || !!acls.find(acl => acl === 'SYSTEM-CART-CONFIG-modeList')
},
{
name: '车长配置',
type: 2,
isActived: false,
isShow: acl.data.full || !!acls.find(acl => acl === 'SYSTEM-CART-CONFIG-cartLength')
},
{
name: '禁限物品名单',
type: 3,
isActived: false,
isShow: acl.data.full || !!acls.find(acl => acl === 'SYSTEM-CART-CONFIG-goodsList')
}
];
this.tabType = this.tabs.find(tab => tab.isShow)?.type || 1;
}
ngOnInit(): void {}

View File

@ -14,10 +14,14 @@
</div>
<nz-dropdown-menu #menu="nzDropdownMenu">
<ul nz-menu nzSelectable>
<li nz-menu-item (click)="typeAction(item)">编辑</li>
<li nz-menu-item (click)="sortType(item,3)" *ngIf="i!==0">上移</li>
<li nz-menu-item (click)="sortType(item,4)" *ngIf="i!==typeList.length-1">下移</li>
<li nz-menu-item nzDanger (click)="removeType(item)">删除</li>
<li nz-menu-item (click)="typeAction(item)" acl
[acl-ability]="['SYSTEM-GOODS-NAME-CONFIG-edit']">编辑</li>
<li nz-menu-item (click)="sortType(item,3)" acl
[acl-ability]="['SYSTEM-GOODS-NAME-CONFIG-sort']" *ngIf="i!==0">上移</li>
<li nz-menu-item (click)="sortType(item,4)" acl
[acl-ability]="['SYSTEM-GOODS-NAME-CONFIG-sort']" *ngIf="i!==typeList.length-1">下移</li>
<li nz-menu-item nzDanger acl [acl-ability]="['SYSTEM-GOODS-NAME-CONFIG-delete']"
(click)="removeType(item)">删除</li>
</ul>
</nz-dropdown-menu>
</nz-list-item>
@ -25,7 +29,8 @@
<ng-template #listHeader>
<div class="d-flex justify-content-between align-items-center">
<label style="font-weight: 700;font-size: 16px;">货物类型</label>
<button nz-button nzType="primary" (click)="typeAction()"><i nz-icon nzType="plus"
<button nz-button nzType="primary" (click)="typeAction()" acl
[acl-ability]="['SYSTEM-GOODS-NAME-CONFIG-add']"><i nz-icon nzType="plus"
nzTheme="outline"></i>新增</button>
</div>
</ng-template>
@ -39,7 +44,8 @@
</nz-input-group>
<ng-template #suffixTemplateInfo><i nz-icon nzType="search" nzTheme="outline" (click)="st.load(1)"></i>
</ng-template>
<button nz-button nzType="primary" (click)="typeItemAction()"><i nz-icon nzType="plus"
<button nz-button nzType="primary" (click)="typeItemAction()" acl
[acl-ability]="['SYSTEM-GOODS-NAME-CONFIG-add']"><i nz-icon nzType="plus"
nzTheme="outline"></i>新增</button>
</div>

View File

@ -28,18 +28,22 @@ export class GoodsNameConfigComponent implements OnInit {
buttons: [
{
text: '编辑',
acl: { ability: ['SYSTEM-GOODS-NAME-CONFIG-edit'] },
click: item => this.typeItemAction(item)
},
{
text: '上移',
acl: { ability: ['SYSTEM-GOODS-NAME-CONFIG-sort'] },
click: item => this.sortTypeItem(item, 3)
},
{
text: '下移',
acl: { ability: ['SYSTEM-GOODS-NAME-CONFIG-sort'] },
click: item => this.sortTypeItem(item, 4)
},
{
text: '删除',
acl: { ability: ['SYSTEM-GOODS-NAME-CONFIG-delete'] },
click: item => this.removeTypeItem(item)
}
]

View File

@ -68,20 +68,20 @@ export class StaffManagementComponent implements OnInit {
{
text: '冻结',
iif: item =>
item.stateLocked === 0 && item.roleCode.split(',').indexOf('Administrator') === -1 && item.telephone !== this.user.phone,
!item.stateLocked && item.roleCode.split(',').indexOf('Administrator') === -1 && item.telephone !== this.user.phone,
click: item => this.action(item, 1),
acl: { ability: ['SYSTEM-STAFF-lock'] }
},
{
text: '超管转授',
iif: item => item.stateLocked === 0 && item.roleCode.split(',').indexOf('Administrator') === -1,
iif: item => !item.stateLocked && item.roleCode.split(',').indexOf('Administrator') === -1,
click: item => this.transpowerAction(item),
acl: { ability: ['SYSTEM-STAFF-shiftAdmin'] }
},
{
text: '删除',
iif: item =>
item.stateLocked === 0 && item.roleCode.split(',').indexOf('Administrator') === -1 && item.telephone !== this.user.phone,
!item.stateLocked && item.roleCode.split(',').indexOf('Administrator') === -1 && item.telephone !== this.user.phone,
click: item => this.action(item, 3),
acl: { ability: ['SYSTEM-STAFF-delete'] }
}

View File

@ -9,7 +9,7 @@
<div nz-col [nzSpan]="_$expand ? 24 : 6" [class.text-right]="_$expand">
<button nz-button nzType="primary" [disabled]="!sf.valid" [nzLoading]="isLoading && st.loading" (click)="search()" >查询</button>
<button nz-button (click)="resetSF()">重置</button>
<button nz-button (click)="export()">导出</button>
<button nz-button (click)="export()" acl [acl-ability]="['TAX_INVOICE_REPORT-export']">导出</button>
<button nz-button nzType="link" (click)="expandToggle()">
{{ !_$expand ? '展开' : '收起' }}
<i nz-icon [nzType]="!_$expand ? 'down' : 'up'"></i>
@ -32,7 +32,8 @@
<span *ngIf="item?.uploadSts == '1'">待上传</span>
<span *ngIf="item?.uploadSts == '3'">已上传</span>
<span *ngIf="item?.uploadSts == '2'">上传中</span>
<span *ngIf="item?.uploadSts == '4'" style="color: red;" (click)="unnormal(item)">上传异常</span>
<span *ngIf="item?.uploadSts == '4'" style="color: red;">上传异常</span>
<!-- <span *ngIf="item?.uploadSts == '4'" style="color: red;" (click)="unnormal(item)">上传异常</span> -->
</ng-template>
<ng-template st-row="invoiceType" let-item let-index="index">
<span>增值税专用发票</span>
@ -53,6 +54,6 @@
<strong class="text-red">{{ selectedRows.length }}</strong> 条数据
</div>
<button *ngIf="selectedIndex === '1' || selectedIndex === '4'" nz-button nzType="primary" (click)="upload()">上传</button>
<button *ngIf="selectedIndex === '3'" nz-button nzType="primary" (click)="recall()">撤回</button>
<button *ngIf="selectedIndex === '3'" nz-button nzType="primary" (click)="recall()" acl [acl-ability]="['TAX_INVOICE_REPORT-recall']">撤回</button>
</div>
</ng-template>

View File

@ -281,26 +281,7 @@ export class TaxManagementInvoiceReportingComponent implements OnInit {
});
}
/**
*撤销
* @param record 记录实例
*/
resetData() {
if (this.selectedRows.length === 0) {
this.openWainingModal('请选择需要更新的数据!');
return;
}
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('更新成功');
this.st.load(1);
}
})
}
/**
*撤销
* @param record 记录实例
@ -333,28 +314,13 @@ export class TaxManagementInvoiceReportingComponent implements OnInit {
}
selectChange(item: any) {
console.log(item);
this.selectedIndex = item?.value || '';
console.log(this.selectedIndex);
setTimeout(() => {
this.st.load();
})
}
/**
* 查看当行数据
*/
view(record: STData) {
// this.router.navigate(['../view', record.uuid], { relativeTo: this.ar });
this.router.navigate(['../detail'], {
queryParams: {
id: record.id,
},
relativeTo: this.ar
});
}
/**
* 上传
@ -368,6 +334,7 @@ export class TaxManagementInvoiceReportingComponent implements OnInit {
this.selectedRows.forEach(item => {
params.push(item.id);
});
return; //TODO 接口未提供
this.service.request(this.service.$api_get_uploadingTaxOrder, params).subscribe((res: any) => {
if (res) {
this.service.msgSrv.success('上传成功');

View File

@ -11,9 +11,9 @@
</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 nzType="primary" [nzLoading]="service.http.loading" (click)="st?.load(1)" acl [acl-ability]="['TICKET-BILLING-ORDER-search']">查询</button>
<button nz-button (click)="resetSF()">重置</button>
<button nz-button (click)="export()"> 导出</button>
<button nz-button (click)="export()" acl [acl-ability]="['TICKET-BILLING-ORDER-exprort']"> 导出</button>
<button nz-button nzType="link" (click)="expandToggle()">
{{ !_$expand ? '展开' : '收起' }}
<i nz-icon [nzType]="!_$expand ? 'down' : 'up'"></i>

View File

@ -112,19 +112,23 @@
<!-- 图片上传 -->
<ng-container *ngSwitchCase="12">
<div>
<nz-upload class="avatar-uploader" [nzAction]="service.$api_upload_url"
<nz-upload #filst class="avatar-uploader" [nzAction]="service.$api_upload_url"
[nzName]="'multipartFile'" nzName="avatar" nzListType="picture-card"
[nzShowUploadList]="false" (nzChange)="uploadChange($event,item)">
<ng-container *ngIf="!item.itemValue">
[nzShowUploadList]="{showPreviewIcon:true,showRemoveIcon:true}"
[nzFileList]="item.itemValue?[{uid:item.id,name:'',url:item.itemValue}]:[]"
(nzChange)="uploadChange($event,item)" [nzLimit]="1"
[nzShowButton]="filst?.nzFileList?.length===0 " [nzPreview]="nzPreview"
[nzRemove]="nzRemove">
<div>
<i class="upload-icon" nz-icon
[nzType]="service.http.loading ? 'loading' : 'plus'"></i>
<div class="ant-upload-text">上传</div>
</ng-container>
<div style="width: 102px;height: 102px;display: flex;align-items: center;justify-content: center;"
</div>
<!-- <div style="width: 102px;height: 102px;display: flex;align-items: center;justify-content: center;"
*ngIf="item.itemValue" (click)="$event.cancelBubble = true">
<img nz-image [nzSrc]="item.itemValue"
style="max-width: 102px;max-height: 102px;" />
</div>
</div> -->
</nz-upload>
<p>支持
<ng-container *ngFor="let item of item.remark?.format">

View File

@ -98,6 +98,17 @@ export class DynamicSettingH5Component implements OnInit {
}
}
nzPreview = (file: NzUploadFile) => {
this.showImg(file.url);
};
nzRemove = (file: NzUploadFile) => {
const config = this.configList.find((c: any) => c.id === file.uid);
if (config) {
config.itemValue = '';
}
return true;
};
showImg(url: any) {
this.nzImageService.preview([{ src: url }]);
}

View File

@ -24,3 +24,7 @@
.ant-btn {
border-radius: 4px;
}
.ant-card-body {
padding: 16px;
}