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

This commit is contained in:
潘晓云
2022-04-28 20:04:57 +08:00
47 changed files with 356 additions and 227 deletions

View File

@ -1,6 +1,6 @@
{
"name": "tms-obc-web",
"version": "1.0.1",
"version": "1.2.0",
"description": "运营后台-WEB",
"author": "cipchk <cipchk@qq.com>",
"repository": {

View File

@ -4,7 +4,7 @@
* @Author : Shiming
* @Date : 2022-01-18 09:51:21
* @LastEditors : Shiming
* @LastEditTime : 2022-04-28 14:09:56
* @LastEditTime : 2022-04-28 16:08:43
* @FilePath : \\tms-obc-web\\proxy.conf.js
* Copyright (C) 2022 huzhenhong. All rights reserved.
*/
@ -30,7 +30,7 @@ module.exports = {
// },
'//api': {
target: {
host: 'tms-api-dev.eascs.com',
host: 'tms-api-test.eascs.com',
protocol: 'https:',
port: 443
},

View File

@ -24,7 +24,7 @@
<div nz-row [nzGutter]="16">
<div nz-col class="gutter-row" [nzSpan]="6">
<g2-card [title]="'订单合格率'" [bordered]="true" [total]="cardData1?.proportion" [footer]="footer1" contentHeight="46">
<g2-card [title]="'订单合格率'" [bordered]="true" [total]="cardData1?.proportion || '0'" [footer]="footer1" contentHeight="46">
<ng-template #footer1>
<div class="card-f">
<span class="card-f-l">合格:{{cardData1?.leftQuantity}}</span> <span>不合格:{{cardData1?.rightQuantity}}</span>
@ -33,7 +33,7 @@
</g2-card>
</div>
<div nz-col class="gutter-row" [nzSpan]="6">
<g2-card [title]="'货源单占比'" [bordered]="true" [total]="cardData2?.proportion" [footer]="footer2" contentHeight="46">
<g2-card [title]="'货源单占比'" [bordered]="true" [total]="cardData2?.proportion|| '0'" [footer]="footer2" contentHeight="46">
<ng-template #footer2>
<div class="card-f">
<span class="card-f-l">货源单:{{cardData2?.leftQuantity}}</span> <span>合同单:{{cardData2?.rightQuantity}}</span>
@ -42,7 +42,7 @@
</g2-card>
</div>
<div nz-col class="gutter-row" [nzSpan]="6">
<g2-card [title]="'运费直付占比'" [bordered]="true" [total]="cardData3?.proportion" [footer]="footer3" contentHeight="46">
<g2-card [title]="'运费直付占比'" [bordered]="true" [total]="cardData3?.proportion|| '0'" [footer]="footer3" contentHeight="46">
<ng-template #footer3>
<div class="card-f">
<span class="card-f-l">司机:{{cardData3?.leftQuantity}}</span> <span>车队长:{{cardData3?.rightQuantity}}</span>
@ -51,7 +51,7 @@
</g2-card>
</div>
<div nz-col class="gutter-row" [nzSpan]="6">
<g2-card [title]="'付款及时率'" [bordered]="true" [total]="cardData4?.proportion" [footer]="footer4" contentHeight="46">
<g2-card [title]="'付款及时率'" [bordered]="true" [total]="cardData4?.proportion|| '0'" [footer]="footer4" contentHeight="46">
<ng-template #footer4>
<div class="card-f">
<span class="card-f-l">准时:{{cardData4?.leftQuantity}}</span> <span>逾期:{{cardData4?.rightQuantity}}</span>

View File

@ -47,27 +47,30 @@ export class DatatableComplianceIndexComponent implements OnInit {
time:this.time
}
this.service.request(this.service.$api_getBillRateQualified, params).subscribe(res => {
if (res) {
this.cardData1 = res;
this.cardData1.proportion = this.cardData1.proportion*100 +'%'
console.log(this.cardData1);
this.cardData1.proportion = (this.cardData1?.proportion*100).toFixed(2) +'%'
}
});
this.service.request(this.service.$api_getBillRateProportion, params).subscribe(res => {
if (res) {
this.cardData2 = res;
this.cardData2.proportion = this.cardData2.proportion*100 +'%'
this.cardData2.proportion = (this.cardData2?.proportion*100).toFixed(2) +'%'
}
});
this.service.request(this.service.$api_getBillRateDirectPayment, params).subscribe(res => {
if (res) {
this.cardData3 = res;
this.cardData3.proportion = this.cardData3.proportion*100 +'%'
this.cardData3.proportion = (this.cardData3?.proportion*100).toFixed(2) +'%'
}
});
this.service.request(this.service.$api_getBillTimelyPayment, params).subscribe(res => {
if (res) {
this.cardData4 = res;
this.cardData4.proportion = this.cardData4.proportion*100 +'%'
this.cardData4.proportion = (this.cardData4?.proportion*100).toFixed(2) +'%'
}
});

View File

@ -273,6 +273,7 @@ export class PayableOrderComponent implements OnInit {
buttons: [
{
text: '浏览',
acl: { ability: ['FINANCIAL-PAYABLE-view'] },
click: item =>
this.router.navigate(['/financial-management/payable-order/detail/' + item.id], { queryParams: { billHId: item.id } })
}

View File

@ -33,7 +33,7 @@
</div>
<div class="mr-sm">
<button nz-button nzDanger [nzLoading]="service.http.loading" (click)="openDrawer()" acl
[acl-ability]="['FINANCIAL-RECEIPT-list']">筛选</button>
[acl-ability]="['FINANCIAL-PAYMENT-ORDER-list']">筛选</button>
</div>
</div>

View File

@ -251,6 +251,7 @@ export class ReceiptOrderComponent extends BasicTableComponent implements OnInit
buttons: [
{
text: '浏览',
acl: { ability: ['FINANCIAL-RECEIPT-view'] },
click: item => this.router.navigate(['/financial-management/receipt-order/detail/' + item.id])
}
// {

View File

@ -40,7 +40,8 @@
<label class="page_title"> <label class="driver">|</label> 充值记录</label>
<div class="mr-sm">
<button nz-button nzDanger [nzLoading]="service.http.loading" (click)="openDrawer()">筛选</button>
<button nz-button nzDanger (click)="exportList()"> 导出</button>
<button nz-button nzDanger (click)="exportList()" acl [acl-ability]="['FINANCIAL-RECHARGE-export']">
导出</button>
</div>
</div>
<st #st [data]="service.$api_get_recharge_page" [columns]="columns" [req]="{ process: beforeReq }" [page]="{}"

View File

@ -119,7 +119,7 @@ export class RechargeRecordComponent extends BasicTableComponent implements OnIn
title: '账户名称',
ui: {
placeholder: '请输入',
autocomplete: 'off',
autocomplete: 'off'
}
},
accountType: {
@ -133,7 +133,7 @@ export class RechargeRecordComponent extends BasicTableComponent implements OnIn
],
ui: {
widget: 'select',
placeholder: '请选择',
placeholder: '请选择'
},
default: ''
},
@ -157,7 +157,7 @@ export class RechargeRecordComponent extends BasicTableComponent implements OnIn
],
ui: {
widget: 'select',
placeholder: '请选择',
placeholder: '请选择'
},
default: ''
}
@ -195,6 +195,7 @@ export class RechargeRecordComponent extends BasicTableComponent implements OnIn
{ type: 'divider' },
{
text: '查看回单<br>',
acl: { ability: ['FINANCIAL-RECHARGE-receiptApply'] },
click: item =>
this.service.getReceiptUrl(item.receiptUrl, {
bankType: item.bankType,
@ -207,6 +208,7 @@ export class RechargeRecordComponent extends BasicTableComponent implements OnIn
},
{
text: '添加备注',
acl: { ability: ['FINANCIAL-RECHARGE-addRemark'] },
click: item => this.addRemark(item)
}
]

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

@ -39,16 +39,24 @@ 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, 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: '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, data: { guard: { ability: ['FINANCIAL-RECHARGE-list'] } } },
{ 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', component: VoucherManagementComponent, data: { guard: { ability: ['FINANCIAL-VOUCHER-list'] } } },
{ 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, data: { guard: { ability: ['FINANCIAL-RECEIVABLE-list'] } } },
{ path: 'receivable-order/detail/:id', component: ReceivableOrderDetailComponent, data: { guard: { ability: ['FINANCIAL-RECEIVABLE-DETAIL-view'] } } },
{ 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: 'payable-order/detail/:id',
component: PayableOrderDetailComponent,
data: { guard: { ability: ['FINANCIAL-PAYABLE-DETAIL-view'] } }
},
{ path: 'bank-card-management/index', component: CwcBankCardManagementIndexComponent }
];

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

@ -4,7 +4,7 @@
* @Author : Shiming
* @Date : 2021-12-28 14:42:03
* @LastEditors : Shiming
* @LastEditTime : 2022-04-13 19:52:15
* @LastEditTime : 2022-04-28 19:49:17
* @FilePath : \\tms-obc-web\\src\\app\\routes\\order-management\\components\\vehicle-detail\\vehicle-detail.component.ts
* Copyright (C) 2022 huzhenhong. All rights reserved.
*/
@ -112,8 +112,6 @@ export class OrderManagementVehicleDetailComponent implements OnInit {
.request(this.service.$api_get_log_list, { operateObject: this.i?.billCode, operateTypeList: ['3', '8'] })
.subscribe(res => {
if (res) {
console.log('操作日志');
console.log(res);
let a: any = [];
res.records.forEach((item: any) => {
a.push({
@ -122,7 +120,6 @@ export class OrderManagementVehicleDetailComponent implements OnInit {
color: 'green'
});
});
console.log(a);
this.operationList = a;
}
});
@ -133,15 +130,11 @@ export class OrderManagementVehicleDetailComponent implements OnInit {
});
this.service.request(this.service.$api_listBillComplianceAbnormalByBillId, { id: this.id }).subscribe(res => {
if (res) {
console.log('风险详情');
console.log(res);
this.abnormalList = res;
}
});
this.service.request(this.service.$api_getAbnormalWarningByBillId, { id: this.id }).subscribe(res => {
if (res) {
console.log('异常预警');
console.log(res);
this.warringList = res;
}
});

View File

@ -4,7 +4,7 @@
* @Author : Shiming
* @Date : 2021-12-29 17:27:37
* @LastEditors : Shiming
* @LastEditTime : 2022-01-18 17:22:55
* @LastEditTime : 2022-04-28 19:28:16
* @FilePath : \\tms-obc-web\\src\\app\\routes\\order-management\\modal\\vehicle\\modify-captain\\modify-captain.component.html
* Copyright (C) 2022 huzhenhong. All rights reserved.
-->
@ -28,8 +28,8 @@
<img style="height: 20px" [src]="item?.avatar" alt="" />
</ng-template>
<ng-template st-row="bankList" let-item let-index="index">
<nz-select [(ngModel)]="bankData" style="width: 200px">
<nz-option *ngFor="let i of item.bankList" [nzLabel]="i.bankCardNumber" [nzValue]="i.id"></nz-option>
<nz-select [(ngModel)]="bankData" style="width: 300px">
<nz-option *ngFor="let i of item.bankList" [nzLabel]="i.bankName + '/'+i.bankCardNumber" [nzValue]="i.id"></nz-option>
</nz-select>
</ng-template>
<ng-template st-row="paymentMethodRate" let-item let-index="index">

View File

@ -4,7 +4,7 @@
* @Author : Shiming
* @Date : 2021-12-30 14:45:39
* @LastEditors : Shiming
* @LastEditTime : 2022-04-22 16:31:57
* @LastEditTime : 2022-04-28 19:27:14
* @FilePath : \\tms-obc-web\\src\\app\\routes\\order-management\\modal\\vehicle\\modify-captain\\modify-captain.component.ts
* Copyright (C) 2022 huzhenhong. All rights reserved.
*/
@ -38,6 +38,21 @@ export class VehicleModifyCaptainComponent implements OnInit {
this.initSF();
this.initST();
}
initData(id: string) {
// this.service.request(this.service.$api_getDriverBankInfoList, {roleId: id}).subscribe((res:any) => {
// console.log(res);
// if(res) {
// let List :any= []
// res.forEach((element: any) => {
// List.push({
// bankCardNumber: element.bankBranchName + '/'+element.bankCardNumber,
// value: element.id
// })
// });
// this.bankData = List
// }
// })
}
initSF() {
this.schema = {
properties: {
@ -120,6 +135,7 @@ export class VehicleModifyCaptainComponent implements OnInit {
this.service.request(this.service.$api_get_getCarCaptainByMobile, params).subscribe((res: any) => {
if (res) {
this.dataList = [res];
this.initData(res.appUserId);
}
});
}

View File

@ -4,7 +4,7 @@
* @Author : Shiming
* @Date : 2021-12-03 15:31:52
* @LastEditors : Shiming
* @LastEditTime : 2022-04-22 17:14:39
* @LastEditTime : 2022-04-28 19:19:01
* @FilePath : \\tms-obc-web\\src\\app\\routes\\order-management\\services\\order-management.service.ts
* Copyright (C) 2022 huzhenhong. All rights reserved.
*/
@ -222,6 +222,9 @@ export class OrderManagementService extends ShipperBaseService {
// 订单上报推送
$api_manualOrderSubmission = '/api/sdc/billOperate/manualOrderSubmission';
// 获取司机所有银行卡信息
$api_getDriverBankInfoList= '/api/fcc/bankInfoDMC/getDriverBankInfoList';
// // 生成卸货单
// public $api_createBillDischargeGoods = `/api/sdc/billOperate/createBillDischargeGoods`;
// // 生成提货单

View File

@ -1,4 +1,17 @@
<!--
* @Description :
* @Version : 1.0
* @Author : Shiming
* @Date : 2022-04-21 13:49:22
* @LastEditors : Shiming
* @LastEditTime : 2022-04-28 17:40:42
* @FilePath : \\tms-obc-web\\src\\app\\routes\\supply-management\\components\\assigned-car\\assigned-car.component.html
* Copyright (C) 2022 huzhenhong. All rights reserved.
-->
<nz-spin [nzSpinning]="service.http.loading">
<div>
<div nz-row>
<div nz-col nzSpan="18">
<sf #sf [schema]="schema" mode="search" [ui]="ui" [compact]="true" (formSubmit)="st.load(1)"
@ -41,9 +54,12 @@
</ng-template>
</st>
</div>
<div class="modal-footer">
<button nz-button type="button" (click)="close()">关闭</button>
<button nz-button type="submit" nzType="primary" (click)="verifyVechicleStatus(params)" [disabled]="!selectedRows"
[nzLoading]="service.http.loading">发布并指派给司机</button>
</div>
</div>
</nz-spin >
<div class="modal-footer">
<button nz-button type="button" (click)="close()">关闭</button>
<button nz-button type="submit" nzType="primary" (click)="verifyVechicleStatus(params)" [disabled]="!selectedRows"
[nzLoading]="service.http.loading">发布并指派给司机</button>
</div>

View File

@ -4,12 +4,13 @@
* @Author : Shiming
* @Date : 2022-01-12 10:52:50
* @LastEditors : Shiming
* @LastEditTime : 2022-03-02 14:27:20
* @LastEditTime : 2022-04-28 17:36:31
* @FilePath : \\tms-obc-web\\src\\app\\routes\\supply-management\\components\\choose-famifiar\\choose-famifiar.component.html
* Copyright (C) 2022 huzhenhong. All rights reserved.
-->
<!-- <button nz-button nzType="primary" style="margin-bottom: 24px" (click)="add()"><i nz-icon nzType="plus"></i>添加司机</button> -->
<!-- 搜索区 -->
<nz-spin [nzSpinning]="service.http.loading">
<div nz-row nzGutter="8">
<div nz-col [nzSpan]="18">
<sf #sf [ui]="ui" [schema]="schema" [button]="'none'"></sf>
@ -19,6 +20,7 @@
<button nz-button (click)="resetSF()">重置</button>
</div>
</div>
<div nz-row nzGutter="8">
<div nz-col [nzSpan]="12">
<!-- 数据列表 -->
@ -55,7 +57,9 @@
</st>
</div>
</div>
</nz-spin>
<div *nzModalFooter>
<button nz-button nzType="default" (click)="cancel()">取消</button>
<button nz-button nzType="primary" (click)="ok()">发布并指派给司机</button>
</div>
</div>

View File

@ -25,8 +25,10 @@
<sf #sf [schema]="schema" [ui]="ui" [compact]="true" [button]="'none'"></sf>
</div>
<div nz-col [nzSpan]="_$expand ? 24 : 6" [class.expend-options]="_$expand" class="text-right">
<button nz-button nzType="primary" [nzLoading]="service.http.loading" (click)="st?.load(1)">查询</button>
<button nz-button [disabled]="false" nzType="primary">导出</button>
<button nz-button nzType="primary" acl [acl-ability]="['SYSTEM-ANNOUNCEMENT-list']"
[nzLoading]="service.http.loading" (click)="st?.load(1)">查询</button>
<button nz-button [disabled]="false" nzType="primary" acl
[acl-ability]="['SYSTEM-ANNOUNCEMENT-export']">导出</button>
<button nz-button [disabled]="false" (click)="resetSF()">重置</button>
<button nz-button nzType="link" (click)="expandToggle()">
{{ !_$expand ? '展开' : '收起' }}
@ -40,7 +42,8 @@
<nz-card class="content-box">
<div class="d-flex justify-content-end mb-sm mt-sm">
<div>
<button nz-button nzType="primary" (click)="roleAction('', 1)">新增公告</button>
<button nz-button nzType="primary" (click)="roleAction('', 1)" acl
[acl-ability]="['SYSTEM-ANNOUNCEMENT-add']">新增公告</button>
</div>
</div>
<st #st [data]="service.$api_getAnnouncementInfoList_page" [columns]="columns" [req]="{ params: reqParams }"

View File

@ -39,10 +39,12 @@ export class AnnouncementMessageComponent implements OnInit {
buttons: [
{
text: '编辑',
acl: { ability: ['SYSTEM-ANNOUNCEMENT-edit'] },
click: item => this.roleAction(item, 2)
},
{
text: '删除',
acl: { ability: ['SYSTEM-ANNOUNCEMENT-delete'] },
click: item => this.deleteAction(item)
},
]

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

@ -1,10 +1,10 @@
<!--
* @Author: your name
* @Date: 2021-12-24 15:38:08
* @LastEditTime: 2021-12-27 11:21:35
* @LastEditors: Please set LastEditors
* @LastEditTime : 2022-04-28 19:05:49
* @LastEditors : Shiming
* @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
* @FilePath: \tms-obc-web\src\app\routes\sys-setting\components\crm-management\crm-management.component.html
* @FilePath : \\tms-obc-web\\src\\app\\routes\\sys-setting\\components\\close-account\\close-account.component.html
-->
<page-header-wrapper title="结算客户管理">
</page-header-wrapper>
@ -16,7 +16,6 @@
<sf #sf [schema]="schema" [ui]="ui" [mode]="'search'" [loading]="false" (formSubmit)="st?.load(1)"
(formReset)="resetSF()"></sf>
</div>
edit
<!-- 查询字段大于3个时根据展开状态调整布局 -->
<ng-container *ngIf="queryFieldCount > 4">
<div nz-col [nzSpan]="_$expand ? 24 : 18">

View File

@ -156,22 +156,23 @@ export class CloseAccountComponent implements OnInit {
maxLength: 30,
ui: {
widget: 'select',
serverSearch: true,
// serverSearch: true,
allowClear: true,
searchDebounceTime: 300,
searchLoadingText: '搜索中...',
onSearch: (q: any) => {
let str =q.replace(/^\s+|\s+$/g,"");
let str = q?.replace(/^\s+|\s+$/g, '');
if (str) {
return this.service
.request(this.service.$api_enterpriceList, { enterpriseName: str})
.pipe(map((res: any) => (res as any[]).map((i) => ({ label: i.enterpriseName, value: i.id } as SFSchemaEnum))))
.request(this.service.$api_enterpriceList, { enterpriseName: str })
.pipe(map(res => (res as any[]).map(i => ({ label: i.enterpriseName, value: i.id } as SFSchemaEnum))))
.toPromise();
} else {
return of([]);
}
},
} as SFSelectWidgetSchema,
},
} as SFSelectWidgetSchema
},
},
required: ['customerName', 'customerCode', 'networkTransporterId', 'enterpriseId']
};
@ -186,11 +187,16 @@ this.ui2 = { '*': { spanLabelFixed: 120, grid: { span: 24 } } };
this.service.request(this.service.$api_settlementCustomer_get, {id: value.id}).subscribe((res: any) => {
console.log(res)
if(res) {
this.formData = res;
const List: any = [];
List.push({ label: res.enterpriseName, value: res.id });
this.sfFre.getProperty('/enterpriseId')!.schema.enum = List;
this.sfFre.getProperty('/enterpriseId')!.widget.reset(List);
List.push({ label: value.enterpriseName, value: res.enterpriseId });
this.formData = res;
setTimeout(() => {
this.sfFre.getProperty('/enterpriseId')!.schema.enum = List;
this.sfFre.getProperty('/enterpriseId')!.widget.reset(List);
if (res?.enterpriseId) {
this.sfFre.setValue('/enterpriseId', res.enterpriseId);
}
})
}
})
this.edit = true;

View File

@ -122,8 +122,17 @@ export class MenuTreeComponent implements OnInit, OnChanges {
});
}
} else {
console.log(event);
if (event.node?.isChecked) {
this.recursionSetNodeAuth(event.node.origin);
if (event.node.parentNode) {
this._NodeAuthMap.set(event.node.parentNode.origin.id, {
authorityId: event.node.parentNode.origin.id,
buttonAuthorityIds: [],
isUpdateAuthority: 1
});
}
if (this.origin.checked) {
this.origin.buttonInfoList.forEach((auth: any) => this._apiAuthSet.add(auth.functionButtonId));
}

View File

@ -1,7 +1,8 @@
<nz-card class="content-box">
<div class="d-flex align-items-center mb-sm" style="justify-content: flex-end;">
<button nz-button nzType="primary" (click)="menuAction('新增组织')">新增</button>
<button nz-button nzType="primary" (click)="menuAction('新增组织')" acl
[acl-ability]="['SYSTEM-ROLE-add']">新增</button>
</div>
<nz-table #expandTable [nzData]="listOfMapData" nzTableLayout="fixed" nzBordered nzSize="small"
@ -33,18 +34,18 @@
</td>
<td nzAlign="center" nzWidth="250px">
<ng-container *ngIf="item.roleCode !== 'Administrator'">
<a (click)="menuAction(item)">编辑</a>
<a (click)="menuAction(item)" acl [acl-ability]="['SYSTEM-ROLE-edit']">编辑</a>
<nz-divider nzType="vertical"></nz-divider>
<a (click)="deleteAction(item)">删除</a>
<a (click)="deleteAction(item)" acl [acl-ability]="['SYSTEM-ROLE-delete']">删除</a>
<nz-divider nzType="vertical"></nz-divider>
<a (click)="menuAction(null,item.id)">新增子组织</a>
<a (click)="menuAction(null,item.id)" acl [acl-ability]="['SYSTEM-ROLE-add']">新增子组织</a>
<br>
<nz-divider nzType="vertical"></nz-divider>
<a (click)="configureAPIauth(item)">配置接口权限</a>
<a (click)="configureAPIauth(item)" acl [acl-ability]="['SYSTEM-ROLE-api']">配置接口权限</a>
<nz-divider nzType="vertical"></nz-divider>
<a>配置数据权限</a>
<a acl [acl-ability]="['SYSTEM-ROLE-data']">配置数据权限</a>
</ng-container>
</td>
</tr>
</ng-container>

View File

@ -2,7 +2,7 @@
<nz-card>
<div class="filter-wrap">
<button nz-button nzType="primary" (click)="add()">新增</button>
<button nz-button nzType="primary" (click)="add()" acl [acl-ability]="['SMS_TEMPLATE-add']">新增</button>
<button nz-button nzType="primary" (click)="open()"><i nz-icon nzType="plus" nzTheme="outline"></i>筛选</button>
</div>
<st #st [data]="this.service.$api_smsTemplate_page " [columns]="columns" [req]="{ process: beforeReq }"
@ -24,9 +24,10 @@
</ng-template>
</nz-drawer>
<nz-modal [(nzVisible)]="isVisible" [nzTitle]="!isEdit?'新增':'编辑'" (nzOnCancel)="handleCancel()" (nzOnOk)="handleOk()" [nzOkDisabled]="!sfEdit?.valid">
<nz-modal [(nzVisible)]="isVisible" [nzTitle]="!isEdit?'新增':'编辑'" (nzOnCancel)="handleCancel()" (nzOnOk)="handleOk()"
[nzOkDisabled]="!sfEdit?.valid">
<ng-container *nzModalContent>
<sf #sfEdit [formData]="tempData" [schema]="editSchema" [ui]="{ '*': { spanLabelFixed: 90,grid: { span: 24 } }}" [compact]="true"
[button]="'none'"></sf>
<sf #sfEdit [formData]="tempData" [schema]="editSchema" [ui]="{ '*': { spanLabelFixed: 90,grid: { span: 24 } }}"
[compact]="true" [button]="'none'"></sf>
</ng-container>
</nz-modal>

View File

@ -1,5 +1,5 @@
import { AfterViewInit, ChangeDetectorRef, Component, OnInit, ViewChild } from '@angular/core';
import { Component, OnInit, ViewChild } from '@angular/core';
import { ActivatedRoute } from '@angular/router';
import { STColumn, STComponent, STRequestOptions } from '@delon/abc/st';
import { SFComponent, SFSchema } from '@delon/form';
@ -23,7 +23,7 @@ export class SmsTemplateComponent implements OnInit {
isVisible = false;
tempData = {};
isEdit = false;
searchSchema: SFSchema = {
properties: {
templateName: {
@ -50,27 +50,27 @@ export class SmsTemplateComponent implements OnInit {
templateName: {
type: 'string',
title: '模板名称',
ui: { placeholder: '请输入模板名称', errors: { require: '必填项'} }
ui: { placeholder: '请输入模板名称', errors: { require: '必填项' } }
},
templateCode: {
type: 'string',
title: '模板编码',
readOnly: this.isEdit,
ui: { placeholder: '请输入模板编码', errors: { require: '必填项'} }
ui: { placeholder: '请输入模板编码', errors: { require: '必填项' } }
},
templateContent: {
type: 'string',
title: '模板内容',
ui: { placeholder: '请输入模板内容', errors: { require: '必填项'} }
ui: { placeholder: '请输入模板内容', errors: { require: '必填项' } }
}
},
required: ['templateName','templateCode','templateContent']
}
required: ['templateName', 'templateCode', 'templateContent']
};
}
columns: STColumn[] = [
{ title: '模板名称', className: 'text-center', index: 'templateName' },
{ title: '模板编码', className: 'text-center', index: 'templateCode' },
{ title: '模板名称', className: 'text-center', width: '200px', index: 'templateName' },
{ title: '模板编码', className: 'text-center', width: '140px', index: 'templateCode' },
{ title: '模板内容', className: 'text-center', index: 'templateContent' },
// {
// title: '创建人', className: 'text-center', index: 'content',
@ -79,21 +79,23 @@ export class SmsTemplateComponent implements OnInit {
title: '更新时间',
index: 'modifyTime',
type: 'date',
width: '160px',
className: 'text-center'
},
{
title: '操作',
width: '90px',
buttons: [
{
text: '编辑',
click: i => this.edit(i),
acl: { ability: ['SMS_TEMPLATE-save'] },
click: i => this.edit(i)
}
]
}
];
constructor(public service: SystemService, private nzModalService: NzModalService, private route: ActivatedRoute) {
}
constructor(public service: SystemService, private nzModalService: NzModalService, private route: ActivatedRoute) {}
ngOnInit(): void {
this.initSF();
@ -144,7 +146,7 @@ export class SmsTemplateComponent implements OnInit {
templateCode,
templateName,
templateContent
}
};
this.service.request(this.service.$api_smsTemplate_edit, params).subscribe(res => {
// console.log(res);
@ -152,8 +154,7 @@ export class SmsTemplateComponent implements OnInit {
this.isVisible = false;
this.st.reload();
}
})
});
}
handleCancel(): void {

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

@ -54,9 +54,9 @@ const routes: Routes = [
{ path: 'network-freight/new/:id', component: NetworkFreightNewComponent },
{ path: 'close-account', component: CloseAccountComponent },
// { path: 'btn-management', component: BtnManagementComponent },
{ path: 'announcement-message', component: AnnouncementMessageComponent },
{ path: 'announcement-message', component: AnnouncementMessageComponent, data: { guard: { ability: ['SYSTEM-ANNOUNCEMENT-list'] } } },
{ path: 'insurance-set', component: InsuranceSetComponent },
{ path: 'sms-template', component: SmsTemplateComponent }
{ path: 'sms-template', component: SmsTemplateComponent, data: { guard: { ability: ['SMS_TEMPLATE-search'] } } }
];
@NgModule({

View File

@ -45,10 +45,10 @@
已选择
<strong class="text-red">{{ selectedRows.length }}</strong> 条数据
</div>
<button nz-button nzType="primary" (click)="upload()" acl [acl-ability]="['TAX-ORDERREPORT-declare ']">申报</button>
<button nz-button nzType="primary" (click)="corrections()" acl [acl-ability]="['TAX-ORDERREPORT-change ']">更正</button>
<button nz-button nzType="primary" (click)="resetData()" acl [acl-ability]="['TAX-ORDERREPORT-threshold ']">修改起征点</button>
<button nz-button nzType="primary" (click)="uploadSetting()" acl [acl-ability]="['TAX-ORDERREPORT-resetData ']">更新数据</button>
<button nz-button nzType="primary" (click)="upload()" acl [acl-ability]="['TAX-INCOME-declare']">申报</button>
<button nz-button nzType="primary" (click)="corrections()" acl [acl-ability]="['TAX-INCOME-change']">更正</button>
<button nz-button nzType="primary" (click)="resetData()" acl [acl-ability]="['TAX-INCOME-threshold']">修改起征点</button>
<button nz-button nzType="primary" (click)="uploadSetting()" acl [acl-ability]="['TAX-INCOME-resetData']">更新数据</button>
</div>
</ng-template>

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

@ -1,5 +1,5 @@
/*
* @Description :
* @Description :
* @Version : 1.0
* @Author : Shiming
* @Date : 2022-03-30 13:58:28
@ -16,18 +16,20 @@ import { TaxManagementIndividualIncomeComponent } from './components/individual-
import { TaxManagementInvoiceReportingComponent } from './components/invoice-reporting/invoice-reporting.component';
import { TaxManagementOrderReportingComponent } from './components/order-reporting/order-reporting.component';
const routes: Routes = [
{ path: 'orderReport', component: TaxManagementOrderReportingComponent },
{ path: 'income', component: TaxManagementIndividualIncomeComponent },
{ path: 'collect', component: TaxManagementIndividualCollectComponent },
{ path: 'declare', component: TaxManagementIndividualDeclareComponent },
{ path: 'invoiceReport', component: TaxManagementInvoiceReportingComponent },
{ path: 'orderReport', component: TaxManagementOrderReportingComponent, data: { guard: { ability: ['TAX-ORDERREPORT-search'] } } },
{ path: 'income', component: TaxManagementIndividualIncomeComponent, data: { guard: { ability: ['TAX-INCOME-search'] } } },
{ path: 'collect', component: TaxManagementIndividualCollectComponent, data: { guard: { ability: ['TAX-COLLECT-search'] } } },
{ path: 'declare', component: TaxManagementIndividualDeclareComponent, data: { guard: { ability: ['TAX-DECLARE-search'] } } },
{
path: 'invoiceReport',
component: TaxManagementInvoiceReportingComponent,
data: { guard: { ability: ['TAX_INVOICE_REPORT-list'] } }
}
];
@NgModule({
imports: [RouterModule.forChild(routes)],
exports: [RouterModule]
})
export class TaxManagementModuleRoutingModule { }
export class TaxManagementModuleRoutingModule {}

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

@ -290,11 +290,11 @@ export class InvoiceDetailComponent implements OnInit {
{ title: '数量', render: 'vatqty', width: 140, className: 'text-right' },
{
title: '金额',
index: 'vattax',
index: 'vatmoney',
width: 140,
type: 'widget',
className: 'text-right',
widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.vattax }) }
widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.vatmoney }) }
},
{
title: '税率',
@ -305,11 +305,11 @@ export class InvoiceDetailComponent implements OnInit {
},
{
title: '税额',
index: 'vatnotax',
index: 'vattax',
width: 140,
type: 'widget',
className: 'text-right',
widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.vatnotax }) }
widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.vattax }) }
}
];
}

View File

@ -39,6 +39,7 @@ export class InvoicedListComponent implements OnInit {
ngOnInit(): void {}
beforeReq = (requestOptions: STRequestOptions) => {
Object.assign(requestOptions.body,{sts: '3'})
if (this.sf) {
Object.assign(requestOptions.body, {
...this.sf.value,
@ -48,7 +49,7 @@ export class InvoicedListComponent implements OnInit {
}
});
}
return requestOptions;
return requestOptions ;
};
stChange(e: STChange): void {

View File

@ -71,7 +71,7 @@ const routes: Routes = [
{
path: 'driver/config',
component: UserCenterComponentsDriverConfigComponent,
data: { guard: { ability: ['USERCENTER-DRIVER-CAPTAIN-list'] } }
data: { guard: { ability: ['USERCENTER-DRIVER-CONFIG-search'] } }
}
];

View File

@ -16,17 +16,10 @@
<sf #sf [schema]="schema" [ui]="ui" [compact]="true" [button]="'none'"></sf>
</div>
<div nz-col [nzSpan]="_$expand ? 24 : 6" class="text-right">
<button
nz-button
nzType="primary"
acl
[acl-ability]="['VEHICLE-LIST-search']"
[nzLoading]="service.http.loading"
(click)="st?.load(1)"
>查询</button>
<button nz-button nzType="primary" [disabled]="false" (click)="exportFire()" acl [acl-ability]="'VEHICLE-LIST-export'"
>导出</button
>
<button nz-button nzType="primary" acl [acl-ability]="['VEHICLE-LIST-search']" [nzLoading]="service.http.loading"
(click)="st?.load(1)">查询</button>
<button nz-button nzType="primary" [disabled]="false" (click)="exportFire()" acl
[acl-ability]="'VEHICLE-LIST-export'">导出</button>
<button nz-button [disabled]="false" (click)="resetSF()">重置</button>
<button nz-button nzType="link" (click)="expandToggle()">
{{ !_$expand ? '展开' : '收起' }}
@ -38,23 +31,14 @@
<nz-card>
<!-- 数据列表 -->
<st
#st
[bordered]="true"
[scroll]="{ x: '1200px' }"
[columns]="columns"
[data]="service.$api_get_operate_list"
<st #st [bordered]="true" [scroll]="{ x: '1200px' }" [columns]="columns" [data]="service.$api_get_operate_list"
[req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, params: reqParams }"
[res]="{ reName: { list: 'data.records', total: 'data.total' }, process: dataProcess }"
[page]="{ show: true, showSize: true, pageSizes: [10, 20, 30, 50, 100, 200, 300, 500, 1000] }"
[loading]="false"
>
[page]="{ show: true, showSize: true, pageSizes: [10, 20, 30, 50, 100, 200, 300, 500, 1000] }" [loading]="false">
<ng-template st-row="carLength" let-item let-index="index">
<div
>{{ item?.carModelLabel }}-{{ item?.carLengthLabel ? item?.carLengthLabel + '' : '' }}-{{
item?.carLoad ? item?.carLoad + '吨' : ''
}}</div
>
<div>{{ item?.carModelLabel }}-{{ item?.carLengthLabel ? item?.carLengthLabel + '米' : '' }}-{{
item?.carLoad ? item?.carLoad + '' : ''
}}</div>
</ng-template>
<ng-template st-row="isSelf" let-item let-index="index">
<div>
@ -68,13 +52,19 @@
</ng-template>
<ng-template st-row="approvalAuditStatus" let-item let-index="index">
<div>
<span *ngIf="item?.approvalAuditStatus === -1 || (item?.approvalAuditStatus === '-1' && item?.isSelf)">未上传</span>
<span
*ngIf="item?.approvalAuditStatus === -1 || (item?.approvalAuditStatus === '-1' && item?.isSelf)">未上传</span>
<span *ngIf="item?.approvalAuditStatus === 0 || (item?.approvalAuditStatus === '0' && item?.isSelf)">草稿</span>
<span *ngIf="item?.approvalAuditStatus === 10 || (item?.approvalAuditStatus === '10' && item?.isSelf)">待审核</span>
<span *ngIf="item?.approvalAuditStatus === 15 || (item?.approvalAuditStatus === '15' && item?.isSelf)">已撤销</span>
<span *ngIf="item?.approvalAuditStatus === 20 || (item?.approvalAuditStatus === '20' && item?.isSelf)">已审核</span>
<span *ngIf="item?.approvalAuditStatus === 30 || (item?.approvalAuditStatus === '30' && item?.isSelf)">驳回</span>
<span *ngIf="item?.approvalAuditStatus === 40 || (item?.approvalAuditStatus === '40' && item?.isSelf)">证件过期</span>
<span
*ngIf="item?.approvalAuditStatus === 10 || (item?.approvalAuditStatus === '10' && item?.isSelf)">待审核</span>
<span
*ngIf="item?.approvalAuditStatus === 15 || (item?.approvalAuditStatus === '15' && item?.isSelf)">撤销</span>
<span
*ngIf="item?.approvalAuditStatus === 20 || (item?.approvalAuditStatus === '20' && item?.isSelf)">已审核</span>
<span
*ngIf="item?.approvalAuditStatus === 30 || (item?.approvalAuditStatus === '30' && item?.isSelf)">已驳回</span>
<span
*ngIf="item?.approvalAuditStatus === 40 || (item?.approvalAuditStatus === '40' && item?.isSelf)">证件过期</span>
<span *ngIf="!item?.isSelf">-</span>
</div>
</ng-template>
@ -83,4 +73,4 @@
<nz-tag *elseBlock nzColor="success">正常</nz-tag>
</ng-template>
</st>
</nz-card>
</nz-card>

View File

@ -14,10 +14,14 @@ import { VehicleComponentsListDetailComponent } from './components/list/detail/d
import { VehicleComponentsListComponent } from './components/list/list.component';
const routes: Routes = [
{ path: 'list', component: VehicleComponentsListComponent },
{ path: 'list/detail/:id', component: VehicleComponentsListDetailComponent },
{ path: 'audit', component: VehicleComponentsAuditComponent },
{ path: 'audit/detail/:id', component: VehicleComponentsAuditDetailComponent }
{ path: 'list', component: VehicleComponentsListComponent, data: { guard: { ability: ['VEHICLE-LIST-search'] } } },
{ path: 'list/detail/:id', component: VehicleComponentsListDetailComponent, data: { guard: { ability: ['VEHICLE-LIST-DETAIL-list'] } } },
{ path: 'audit', component: VehicleComponentsAuditComponent, data: { guard: { ability: ['VEHICLE-AUDIT-search'] } } },
{
path: 'audit/detail/:id',
component: VehicleComponentsAuditDetailComponent,
data: { guard: { ability: ['VEHICLE-AUDIT-DETAIL-search'] } }
}
];
@NgModule({

View File

@ -14,9 +14,9 @@
[page]="{ show: true, showSize: true, pageSizes: [10, 20, 30, 50, 100, 200, 300, 500, 1000] }"
[loading]="false" [scroll]="{ y: '370px' }">
<ng-template st-row="paAccount" let-item let-index="index">
<a (click)="createAccount(item,'1')" acl [acl-ability]="['USERCENTER-FREIGHT-LIST-createAccount']" >{{ item.paAccount || '添加' }}</a>
<a (click)="createAccount(item,'1')" acl [acl-ability]="['USERCENTER-DRIVER-LIST-createAccount']" >{{ item.paAccount || '添加' }}</a>
</ng-template>
<ng-template st-row="pfAccount" let-item let-index="index">
<a (click)="createAccount(item,'2')" acl [acl-ability]="['USERCENTER-FREIGHT-LIST-createAccount']" >{{ item.pfAccount || '添加' }}</a>
<a (click)="createAccount(item,'2')" acl [acl-ability]="['USERCENTER-DRIVER-LIST-createAccount']" >{{ item.pfAccount || '添加' }}</a>
</ng-template>
</st>

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 }]);
}