Merge branch 'develop' of https://gitlab.eascs.com/tms-ui/tms-obc-web into develop
This commit is contained in:
@ -4,7 +4,7 @@
|
||||
* @Author : Shiming
|
||||
* @Date : 2022-01-18 09:51:21
|
||||
* @LastEditors : Shiming
|
||||
* @LastEditTime : 2022-04-27 17:26:44
|
||||
* @LastEditTime : 2022-04-28 14:09:56
|
||||
* @FilePath : \\tms-obc-web\\proxy.conf.js
|
||||
* Copyright (C) 2022 huzhenhong. All rights reserved.
|
||||
*/
|
||||
|
||||
@ -24,9 +24,8 @@ export class ContractManagementIndexComponent implements OnInit {
|
||||
|
||||
constructor(private http: _HttpClient, private modal: ModalHelper, private acl: ACLService) {
|
||||
const acls = acl.data.abilities || [];
|
||||
this.isShowDetail = !!acls.find(acl => acl === 'CONTRACT-INDEX-searchDetail');
|
||||
this.isShowFrame = !!acls.find(acl => acl === 'CONTRACT-INDEX-listFrame');
|
||||
console.log(this.isShowFrame);
|
||||
this.isShowDetail =acl.data.full || !!acls.find(acl => acl === 'CONTRACT-INDEX-searchDetail');
|
||||
this.isShowFrame =acl.data.full || !!acls.find(acl => acl === 'CONTRACT-INDEX-listFrame');
|
||||
|
||||
}
|
||||
|
||||
|
||||
@ -32,7 +32,8 @@
|
||||
</label>
|
||||
</div>
|
||||
<div class="mr-sm">
|
||||
<button nz-button nzDanger [nzLoading]="service.http.loading" (click)="openDrawer()">筛选</button>
|
||||
<button nz-button nzDanger [nzLoading]="service.http.loading" (click)="openDrawer()" acl
|
||||
[acl-ability]="['FINANCIAL-RECEIPT-list']">筛选</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
@ -60,22 +60,21 @@ const routes: Routes = [
|
||||
{ path: 'abnormal-gold/detail/:id', component: AbnormalGoldDetailComponent },
|
||||
{ path: 'payment-record', component: PaymentRecordComponent },
|
||||
{ path: 'transaction-flow', component: TransactionFlowComponent },
|
||||
{ path: 'payment-order', component: PaymentOrderComponent },
|
||||
{ path: 'payment-order', component: PaymentOrderComponent, data: { guard: { ability: ['FINANCIAL-PAYMENT-ORDER-list'] } } },
|
||||
{ path: 'payment-order/detail/:id', component: PaymentOrderDetailComponent },
|
||||
{ path: 'receipt-order', component: ReceiptOrderComponent },
|
||||
{ path: 'receipt-order', component: ReceiptOrderComponent, data: { guard: { ability: ['FINANCIAL-RECEIPT-list'] } } },
|
||||
{ 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: 'bank-card-management/index', component: CwcBankCardManagementIndexComponent },
|
||||
|
||||
{ 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 }
|
||||
];
|
||||
|
||||
@NgModule({
|
||||
imports: [RouterModule.forChild(routes)],
|
||||
exports: [RouterModule]
|
||||
})
|
||||
export class FinancialManagementRoutingModule { }
|
||||
export class FinancialManagementRoutingModule {}
|
||||
|
||||
@ -555,8 +555,8 @@ export class OrderManagementBulkComponent extends BasicTableComponent implements
|
||||
},{
|
||||
text: '订单上报推送',
|
||||
click: _record => this.orderReportPush(_record),
|
||||
iif: item => item.overallPaymentStatus === '2' && (item.billStatus === '4' || item.billStatus === '5')
|
||||
// acl: { ability: ['VEHICLE-LIST-view'] },
|
||||
iif: item => item.overallPaymentStatus === '2' && (item.billStatus === '4' || item.billStatus === '5'),
|
||||
acl: { ability: ['ORDER-BULK-push'] },
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@ -473,8 +473,8 @@ export class OrderManagementVehicleComponent extends BasicTableComponent impleme
|
||||
{
|
||||
text: '订单上报推送',
|
||||
click: _record => this.orderReportPush(_record),
|
||||
iif: item => item.overallPaymentStatus === '2' && (item.billStatus === '4' || item.billStatus === '5')
|
||||
// acl: { ability: ['VEHICLE-LIST-view'] },
|
||||
iif: item => item.overallPaymentStatus === '2' && (item.billStatus === '4' || item.billStatus === '5'),
|
||||
acl: { ability: ['ORDER-VEHICLE-push'] },
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@ -125,7 +125,7 @@ export class SupplyManagementBulkDetailComponent implements OnInit {
|
||||
*/
|
||||
placeOrder(record: any) {
|
||||
console.log(record)
|
||||
this.router.navigate(['/supply-management/bulk-amend', record.id], {
|
||||
this.router.navigate(['/supply-management/bulk-next', record.id], {
|
||||
queryParams: {
|
||||
sta: 4
|
||||
},
|
||||
|
||||
@ -492,7 +492,7 @@ export class SupplyManagementBulkComponent extends BasicTableComponent implement
|
||||
|
||||
// 再下一单
|
||||
nextOrder(item: any) {
|
||||
this.router.navigate(['/supply-management/bulk-amend', item.id], {
|
||||
this.router.navigate(['/supply-management/bulk-next', item.id], {
|
||||
queryParams: {
|
||||
sta: 4
|
||||
}
|
||||
|
||||
@ -25,10 +25,10 @@
|
||||
<label class="page_title"> <label class="driver">|</label> 货源管理</label>
|
||||
</div>
|
||||
<nz-tabset [(nzSelectedIndex)]="selectedIndex" class="header_tab">
|
||||
<nz-tab nzTitle="整车货源">
|
||||
<nz-tab nzTitle="整车货源" *ngIf="isShowVehicle">
|
||||
<app-supply-management-vehicle></app-supply-management-vehicle>
|
||||
</nz-tab>
|
||||
<nz-tab nzTitle="大宗货源">
|
||||
<nz-tab nzTitle="大宗货源" *ngIf="isShowBulk">
|
||||
<app-supply-management-bulk></app-supply-management-bulk>
|
||||
</nz-tab>
|
||||
</nz-tabset>
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
import { Component, OnInit, ViewChild } from '@angular/core';
|
||||
import { STColumn, STComponent } from '@delon/abc/st';
|
||||
import { ACLService } from '@delon/acl';
|
||||
import { SFSchema } from '@delon/form';
|
||||
import { ModalHelper, _HttpClient } from '@delon/theme';
|
||||
import { SearchDrawerService } from '@shared';
|
||||
@ -12,7 +13,14 @@ import { BasicTableComponent } from 'src/app/routes/commom';
|
||||
})
|
||||
export class SupplyManagementIndexComponent implements OnInit {
|
||||
selectedIndex = 0;
|
||||
isShowVehicle = false;
|
||||
isShowBulk = false;
|
||||
|
||||
constructor(private http: _HttpClient, private modal: ModalHelper, private acl: ACLService) {
|
||||
const acls = acl.data.abilities || [];
|
||||
this.isShowVehicle = acl.data.full || !!acls.find(acl => acl === 'SUPPLY-INDEX-vehicleSearch');
|
||||
this.isShowBulk = acl.data.full || !!acls.find(acl => acl === 'SUPPLY-INDEX-bulkSearch');
|
||||
}
|
||||
|
||||
ngOnInit(): void {}
|
||||
}
|
||||
|
||||
@ -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>
|
||||
|
||||
@ -6,39 +6,6 @@
|
||||
<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>
|
||||
|
||||
@ -115,18 +115,7 @@ export class SupplyManagementVehicleDetailComponent implements OnInit {
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
*再下一单
|
||||
* @param record
|
||||
*/
|
||||
placeOrder(record: any) {
|
||||
this.router.navigate(['./pbg/onecar-publish'], {
|
||||
queryParams: {
|
||||
id: record?.id,
|
||||
type: 'add'
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 编辑外部货源号
|
||||
* @param item st当前行对象
|
||||
@ -168,7 +157,7 @@ export class SupplyManagementVehicleDetailComponent implements OnInit {
|
||||
});
|
||||
}
|
||||
nextOrder(item: any) {
|
||||
this.router.navigate(['/supply-management/vehicle-amend', item.id], {
|
||||
this.router.navigate(['/supply-management/vehicle-next', item.id], {
|
||||
queryParams: {
|
||||
sta: 2
|
||||
}
|
||||
|
||||
@ -324,7 +324,7 @@ export class SupplyManagementVehicleComponent extends BasicTableComponent implem
|
||||
});
|
||||
}
|
||||
nextOrder(item: any) {
|
||||
this.router.navigate(['/supply-management/vehicle-amend', item.id], {
|
||||
this.router.navigate(['/supply-management/vehicle-next', item.id], {
|
||||
queryParams: {
|
||||
sta: 2
|
||||
}
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
* @Author : Shiming
|
||||
* @Date : 2021-12-03 11:10:14
|
||||
* @LastEditors : Shiming
|
||||
* @LastEditTime : 2022-02-10 14:39:00
|
||||
* @LastEditTime : 2022-04-28 14:45:50
|
||||
* @FilePath : \\tms-obc-web\\src\\app\\routes\\supply-management\\supply-management-routing.module.ts
|
||||
* Copyright (C) 2022 huzhenhong. All rights reserved.
|
||||
*/
|
||||
@ -21,13 +21,76 @@ import { SupplyManagementReleasePublishComponent } from './components/release-pu
|
||||
import { SupplyManagementVehicleDetailComponent } from './components/vehicle-detail/vehicle-detail.component';
|
||||
|
||||
const routes: Routes = [
|
||||
{ path: 'index', component: SupplyManagementIndexComponent },
|
||||
{ path: 'index/bulk-detail/:id', component: SupplyManagementBulkDetailComponent },
|
||||
{ path: 'index/vehicle-detail/:id', component: SupplyManagementVehicleDetailComponent },
|
||||
{
|
||||
path: 'index',
|
||||
component: SupplyManagementIndexComponent,
|
||||
data: { guard: { ability: ['SUPPLY-INDEX-vehicleSearch', 'SUPPLY-INDEX-bulkSearch'] } }
|
||||
},
|
||||
{
|
||||
path: 'index/bulk-detail/:id',
|
||||
component: SupplyManagementBulkDetailComponent,
|
||||
data: {
|
||||
guard: { ability: ['SUPPLY-BULK-DETAIL-cancelSupply', 'SUPPLY-BULK-DETAIL-updatePrice', 'SUPPLY-BULK-DETAIL-bulkAnotherOrder'] }
|
||||
}
|
||||
},
|
||||
{
|
||||
path: 'index/vehicle-detail/:id',
|
||||
component: SupplyManagementVehicleDetailComponent,
|
||||
data: {
|
||||
guard: {
|
||||
ability: [
|
||||
'SUPPLY-VEHICLE-DETAIL-cancelSupply',
|
||||
'SUPPLY-VEHICLE-DETAIL-changeSupply',
|
||||
'SUPPLY-VEHICLE-DETAIL-vehiclePlaceOrder',
|
||||
'SUPPLY-VEHICLE-DETAIL-vehicleAnew'
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
{ path: 'add-drivers', component: SupplyManagementAddDriversComponent },
|
||||
{ path: 'vehicle-amend/:id', component: SupplyManagementOnecarPublishComponent },
|
||||
{ path: 'vehicle-release', component: SupplyManagementReleasePublishComponent },
|
||||
{ path: 'bulk-release', component: SupplyManagementBulkReleasePublishComponent },
|
||||
{
|
||||
path: 'vehicle-amend/:id',
|
||||
component: SupplyManagementOnecarPublishComponent,
|
||||
data: {
|
||||
guard: {
|
||||
ability: ['SUPPLY-VEHICLE-AMEND-submitChange']
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
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: 'bulk-amend/:id', component: SupplyManagementBulkPublishComponent }
|
||||
];
|
||||
|
||||
|
||||
@ -19,7 +19,8 @@
|
||||
更新时间: {{ tabItem.modifyTime }}
|
||||
<a style="margin-left: 8px" target="_blank" [queryParams]="{ type: tabItem.type }"
|
||||
[routerLink]="['/passport/agreement']">预览</a>
|
||||
<button nz-button nzType="link" (click)="update()">修改</button>
|
||||
<button nz-button nzType="link" (click)="update()" acl
|
||||
[acl-ability]="['SYSTEM-AGREEMENT-CONFIG-save']">修改</button>
|
||||
</div>
|
||||
<div [innerHTML]="tabItem.agreementContent | safehtml"></div>
|
||||
</nz-card>
|
||||
|
||||
@ -8,15 +8,10 @@
|
||||
* @FilePath : \\tms-obc-web\\src\\app\\routes\\sys-setting\\components\\basic-setting\\basic-setting.component.html
|
||||
* Copyright (C) 2022 huzhenhong. All rights reserved.
|
||||
-->
|
||||
<app-dynamic-setting-h5
|
||||
[tabs]="tabs"
|
||||
[configList]="configList"
|
||||
[selectedTab]="selectedTab"
|
||||
(selectedEvent)="getConfigList($event)"
|
||||
(saveEvent)="saveAction($event)"
|
||||
[labelWidth]="labelWidth"
|
||||
>
|
||||
<app-dynamic-setting-h5 [tabs]="tabs" [configList]="configList" [selectedTab]="selectedTab"
|
||||
(selectedEvent)="getConfigList($event)" (saveEvent)="saveAction($event)" [labelWidth]="labelWidth"
|
||||
[isCanSave]="isCanSave">
|
||||
<custom-element>
|
||||
<app-parterl-config [configList]="configList"></app-parterl-config>
|
||||
<app-parterl-config [configList]="configList"></app-parterl-config>
|
||||
</custom-element>
|
||||
</app-dynamic-setting-h5>
|
||||
</app-dynamic-setting-h5>
|
||||
@ -9,8 +9,8 @@
|
||||
* Copyright (C) 2022 huzhenhong. All rights reserved.
|
||||
*/
|
||||
import { Component, OnInit, ViewChild } from '@angular/core';
|
||||
import { ACLService } from '@delon/acl';
|
||||
import { SFComponent, SFSchema, SFUISchema } from '@delon/form';
|
||||
import { dateTimePickerUtil } from '@delon/util';
|
||||
import { SystemService } from '../../services/system.service';
|
||||
const NOJSONTYPE = new Set([8, 12, 13]);
|
||||
@Component({
|
||||
@ -23,7 +23,10 @@ export class BasicSettingComponent implements OnInit {
|
||||
selectedTab: any = null;
|
||||
labelWidth = 250;
|
||||
configList: any = [];
|
||||
constructor(public service: SystemService) {}
|
||||
isCanSave = false;
|
||||
constructor(public service: SystemService, private acl: ACLService) {
|
||||
this.isCanSave = !!acl.data.abilities?.find(a => a === 'SYSTEM-BASIC_SETTING-save');
|
||||
}
|
||||
|
||||
ngOnInit() {
|
||||
this.getTypeList();
|
||||
|
||||
@ -7,7 +7,7 @@
|
||||
<se label="个人提现手续费" style="margin:15px 0 0 0">
|
||||
<div>
|
||||
按照提现金额收取
|
||||
<nz-input-number [(ngModel)]="personValue" [nzMin]="0" [nzMax]="100" [nzPrecision]="2" [nzStep]="0.01"></nz-input-number>
|
||||
<nz-input-number [(ngModel)]="personServe" [nzMin]="0" [nzMax]="100" [nzPrecision]="2" [nzStep]="0.01"></nz-input-number>
|
||||
<span> %手续费 </span>
|
||||
</div>
|
||||
</se>
|
||||
@ -15,7 +15,7 @@
|
||||
<div>
|
||||
按照提现金额收取
|
||||
<nz-input-number
|
||||
[(ngModel)]="enterpriseValue"
|
||||
[(ngModel)]="enterpriseServe"
|
||||
[nzMin]="0"
|
||||
[nzMax]="100"
|
||||
[nzPrecision]="2"
|
||||
@ -52,12 +52,12 @@
|
||||
<div nz-row nzGutter="8">
|
||||
<div nz-col nzSpan="24">
|
||||
<span>客户</span>
|
||||
<nz-input-number style="margin: 0 10px; " [(ngModel)]="personValue" [nzMin]="0" [nzMax]="3000" [nzPrecision]="2" [nzStep]="0.1"></nz-input-number>
|
||||
<nz-input-number style="margin: 0 10px; " [(ngModel)]="silenceClient" [nzMin]="0" [nzMax]="3000" [nzPrecision]="2" [nzStep]="0.1"></nz-input-number>
|
||||
<span>天内没有交易订单的视为“沉默客户”</span>
|
||||
</div>
|
||||
<div nz-col nzSpan="24" style="margin-top: 10px;">
|
||||
<span>客户</span>
|
||||
<nz-input-number style="margin: 0 10px; " [(ngModel)]="personValue" [nzMin]="0" [nzMax]="3000" [nzPrecision]="2" [nzStep]="0.1"></nz-input-number>
|
||||
<nz-input-number style="margin: 0 10px; " [(ngModel)]="loseClient" [nzMin]="0" [nzMax]="3000" [nzPrecision]="2" [nzStep]="0.1"></nz-input-number>
|
||||
<span>天内没有交易订单的视为“流失客户”</span>
|
||||
</div>
|
||||
<div nz-col nzSpan="24">
|
||||
@ -66,15 +66,13 @@
|
||||
</div>
|
||||
</nz-card>
|
||||
<div class="mb-md save-btn">
|
||||
<button class="ml-lg" nz-button nzSize="large" nzType="primary">保存</button>
|
||||
<button class="ml-lg" nz-button nzSize="large">取消</button>
|
||||
<button class="ml-lg" nz-button nzSize="large" nzType="primary" (click)="save()">保存</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<ng-template #auditTimes let-data="data" let-title="title">
|
||||
<div *ngIf="auditTimeStatus" >
|
||||
<div style="display: flex">
|
||||
<nz-radio-group [(ngModel)]="everyDay" (ngModelChange)="everyDayChange(everyDay)" style="display: block">
|
||||
<label nz-radio [nzValue]="1" class="mt-sm"
|
||||
>每天<span *ngIf="TimeStatus" style="margin-left: 30px; color: #0200ff; cursor: pointer" (click)="addEvery()">添加时间段</span></label
|
||||
@ -92,7 +90,6 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div >
|
||||
<nz-radio-group [(ngModel)]="MonthDay" (ngModelChange)="MonthDayChange(MonthDay)" style="display: block">
|
||||
<label nz-radio [nzValue]="2" class="mt-sm"
|
||||
|
||||
@ -4,6 +4,8 @@ import { NzUploadFile } from 'ng-zorro-antd/upload';
|
||||
import { Observable, Observer, of } from 'rxjs';
|
||||
import { apiConf } from '@conf/api.conf';
|
||||
import { SystemService } from '../../services/system.service';
|
||||
const NOJSONTYPE = new Set([8, 12, 13]);
|
||||
|
||||
const IMAGECONFIG = {
|
||||
previewFile: (file: NzUploadFile) => of(file.url),
|
||||
action: apiConf.waterFileUpload,
|
||||
@ -35,13 +37,17 @@ export class PartnerSystemConfigComponent implements OnInit, OnChanges {
|
||||
isEveryDay: false,
|
||||
isEveryWeek: false
|
||||
};
|
||||
personValue!: number;
|
||||
enterpriseValue!: number;
|
||||
auditValue!: number;
|
||||
auditTime!: any;
|
||||
labelWidth = 250;
|
||||
|
||||
personServe!: number; // 个人提现手续费
|
||||
enterpriseServe!: number; // 企业提现手续费
|
||||
auditValue!: boolean; // 提现审核
|
||||
auditTime!: any; // 审核时间
|
||||
silenceClient!: number; // 沉默客户
|
||||
loseClient!: number; // 流失客户
|
||||
everyDay: any;
|
||||
auditTimeStatus: boolean = false;
|
||||
everyDay: boolean = false;
|
||||
MonthDay: boolean = false;
|
||||
MonthDay: any;
|
||||
time: Date | null = null;
|
||||
defaultOpenValue = new Date(0, 0, 0, 0, 0, 0);
|
||||
tabs = [
|
||||
@ -105,9 +111,32 @@ export class PartnerSystemConfigComponent implements OnInit, OnChanges {
|
||||
// };
|
||||
|
||||
constructor(private service: SystemService) {}
|
||||
ngOnChanges(changes: SimpleChanges): void {
|
||||
ngOnChanges(changes: any): void {
|
||||
if (changes.configList) {
|
||||
console.log(changes.configList.currentValue);
|
||||
console.log(changes.configList.currentValue[0]?.remark);
|
||||
this.personServe = changes.configList.currentValue[0]?.remark.personServe, // 个人提现手续费
|
||||
this.enterpriseServe= changes.configList.currentValue[0]?.remark.enterpriseServe, // 企业提现手续费
|
||||
this.auditValue= changes.configList.currentValue[0]?.remark.auditValue, // 提现审核
|
||||
this.auditTime= changes.configList.currentValue[0]?.remark.auditTime, // 审核时间
|
||||
this.silenceClient= changes.configList.currentValue[0]?.remark.silenceClient, // 沉默客户
|
||||
this.loseClient= changes.configList.currentValue[0]?.remark.loseClient // 流失客户
|
||||
this.everyDayData= changes.configList.currentValue[0]?.remark.everyDayData // 流失客户
|
||||
this.MonthDayData= changes.configList.currentValue[0]?.remark.MonthDayData // 流失客户
|
||||
if (this.auditTime == '2') {
|
||||
// 每天
|
||||
this.auditTimeStatus = true;
|
||||
if(this.everyDayData){
|
||||
this.everyDayData = this.everyDayData
|
||||
this.everyDay = 1
|
||||
} else if(this.MonthDayData) {
|
||||
// 每周
|
||||
this.MonthDay = 2
|
||||
this.MonthDayData = this.MonthDayData
|
||||
this.TimeStatus =false
|
||||
}
|
||||
} else {
|
||||
this.auditTimeStatus = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -136,23 +165,47 @@ export class PartnerSystemConfigComponent implements OnInit, OnChanges {
|
||||
});
|
||||
}
|
||||
addMonth() {
|
||||
this.MonthDayData.push({
|
||||
month: [
|
||||
{ label: '周一', value: '周一' },
|
||||
{ label: '周二', value: '周二' },
|
||||
{ label: '周三', value: '周三' },
|
||||
{ label: '周四', value: '周四' },
|
||||
{ label: '周五', value: '周五' },
|
||||
{ label: '周六', value: '周六' },
|
||||
{ label: '周日', value: '周日' }
|
||||
],
|
||||
Times: [
|
||||
console.log(this.MonthDayData);
|
||||
if(this.MonthDayData) {
|
||||
this.MonthDayData.push({
|
||||
month: [
|
||||
{ label: '周一', value: '周一' },
|
||||
{ label: '周二', value: '周二' },
|
||||
{ label: '周三', value: '周三' },
|
||||
{ label: '周四', value: '周四' },
|
||||
{ label: '周五', value: '周五' },
|
||||
{ label: '周六', value: '周六' },
|
||||
{ label: '周日', value: '周日' }
|
||||
],
|
||||
Times: [
|
||||
{
|
||||
startTime: '',
|
||||
endTime: ''
|
||||
}
|
||||
]
|
||||
});
|
||||
} else {
|
||||
this.MonthDayData = [
|
||||
{
|
||||
startTime: '',
|
||||
endTime: ''
|
||||
month: [
|
||||
{ label: '周一', value: '周一' },
|
||||
{ label: '周二', value: '周二' },
|
||||
{ label: '周三', value: '周三' },
|
||||
{ label: '周四', value: '周四' },
|
||||
{ label: '周五', value: '周五' },
|
||||
{ label: '周六', value: '周六' },
|
||||
{ label: '周日', value: '周日' }
|
||||
],
|
||||
Times: [
|
||||
{
|
||||
startTime: [],
|
||||
endTime: []
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
});
|
||||
];
|
||||
}
|
||||
|
||||
}
|
||||
delMonth(value: number, index: number) {
|
||||
this.MonthDayData[value].Times.splice(index, 1);
|
||||
@ -165,14 +218,12 @@ export class PartnerSystemConfigComponent implements OnInit, OnChanges {
|
||||
console.log(this.MonthDayData);
|
||||
}
|
||||
everyDayChange(type: any): void {
|
||||
console.log(type);
|
||||
if (type) {
|
||||
this.MonthDay = false;
|
||||
this.TimeStatus = true;
|
||||
}
|
||||
}
|
||||
MonthDayChange(type: any): void {
|
||||
console.log(type);
|
||||
if (type) {
|
||||
this.everyDay = false;
|
||||
this.TimeStatus = false;
|
||||
@ -315,13 +366,63 @@ export class PartnerSystemConfigComponent implements OnInit, OnChanges {
|
||||
});
|
||||
};
|
||||
changeAuto(value: any) {
|
||||
console.log(value);
|
||||
if (value == '2') {
|
||||
this.auditTimeStatus = true;
|
||||
} else {
|
||||
this.auditTimeStatus = false;
|
||||
}
|
||||
}
|
||||
save() {
|
||||
let params : any = {
|
||||
personServe: this.personServe, // 个人提现手续费
|
||||
enterpriseServe: this.enterpriseServe, // 企业提现手续费
|
||||
auditValue: this.auditValue, // 提现审核
|
||||
auditTime: this.auditTime, // 审核时间
|
||||
silenceClient: this.silenceClient, // 沉默客户
|
||||
loseClient: this.loseClient // 流失客户
|
||||
};
|
||||
if(this.auditTime == '2') {
|
||||
// 每天
|
||||
console.log(this.everyDay);
|
||||
console.log(this.MonthDay);
|
||||
|
||||
if(this.everyDay){
|
||||
params.everyDayData = this.everyDayData
|
||||
} else if(this.MonthDay) {
|
||||
// 每周
|
||||
params.MonthDayData = this.MonthDayData
|
||||
}
|
||||
}
|
||||
const pra = Object.assign({}, ...this.configList)
|
||||
pra.remark = JSON.stringify(params)
|
||||
this.service.request(this.service.$api_update_config_batch, [pra]).subscribe(res => {
|
||||
if (res) {
|
||||
this.service.msgSrv.success('修改配置成功');
|
||||
setTimeout(() => {
|
||||
this.getConfigList(this.selectedTab);
|
||||
}, 100);
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
getConfigList(selectedTab: any) {
|
||||
this.selectedTab = selectedTab;
|
||||
this.service.request(this.service.$api_get_config_by_parent_id, { id: selectedTab?.id }).subscribe((res: Array<any>) => {
|
||||
if (res?.length > 0) {
|
||||
res = res.map(item => ({
|
||||
...item,
|
||||
remark: item.remark ? JSON.parse(item.remark) : null,
|
||||
itemValue: item?.itemValue ? (NOJSONTYPE.has(item?.itemType) ? item?.itemValue : JSON.parse(item?.itemValue)) : item?.itemValue,
|
||||
itemData: item.itemData ? JSON.parse(item.itemData) : item.itemData
|
||||
}));
|
||||
const hiddenType = res.find(item => item.itemType === 7 || item.itemType === 999);
|
||||
this.labelWidth = hiddenType ? 0 : 250;
|
||||
this.configList = res;
|
||||
} else {
|
||||
this.configList = [];
|
||||
}
|
||||
});
|
||||
}
|
||||
private getImageModel(args: any, key: any) {
|
||||
return [
|
||||
{
|
||||
|
||||
@ -29,26 +29,34 @@ import { SmsTemplateComponent } from './components/sms-template/sms-template.com
|
||||
import { OrganizationManagementComponent } from './components/organization-management/organization-management.component';
|
||||
|
||||
const routes: Routes = [
|
||||
{ path: 'staff-management', component: StaffManagementComponent },
|
||||
{ path: 'staff-management', component: StaffManagementComponent, data: { guard: { ability: ['SYSTEM-STAFF-list'] } } },
|
||||
{ path: 'role-management/user/:type', component: RoleManagementComponent },
|
||||
{ path: 'role-management/freight/:type', component: RoleManagementComponent },
|
||||
{ path: 'organization-management', component: OrganizationManagementComponent },
|
||||
{ path: 'basic-setting', component: BasicSettingComponent },
|
||||
{ path: 'organization-management', component: OrganizationManagementComponent, data: { guard: { ability: ['SYSTEM-ROLE-list'] } } },
|
||||
{ path: 'basic-setting', component: BasicSettingComponent, data: { guard: { ability: ['SYSTEM-BASIC_SETTING-list'] } } },
|
||||
{ path: 'note-management', component: NoTeManagementComponent },
|
||||
{ path: 'basic-config', component: BasicConfigComponent },
|
||||
{ path: 'audit-reason-config', component: AuditReasonConfigComponent },
|
||||
{ path: 'cart-config', component: CartConfigComponent },
|
||||
{ path: 'agreement-config', component: AgreementConfigComponentsBaseComponent },
|
||||
{
|
||||
path: 'cart-config',
|
||||
component: CartConfigComponent,
|
||||
data: { guard: { ability: ['SYSTEM-CART-CONFIG-modeList', 'SYSTEM-CART-CONFIG-cartLength', 'SYSTEM-CART-CONFIG-goodsList'] } }
|
||||
},
|
||||
{
|
||||
path: 'agreement-config',
|
||||
component: AgreementConfigComponentsBaseComponent,
|
||||
data: { guard: { ability: ['SYSTEM-AGREEMENT-CONFIG-list'] } }
|
||||
},
|
||||
{ path: 'system-config', component: SystemConfigComponent },
|
||||
{ path: 'goods-name-config', component: GoodsNameConfigComponent },
|
||||
{ path: 'crm-management', component: CrmManagementComponent },
|
||||
{ path: 'network-freight', component: NetworkFreightComponent },
|
||||
{ path: 'goods-name-config', component: GoodsNameConfigComponent, data: { guard: { ability: ['SYSTEM-GOODS-NAME-CONFIG-list'] } } },
|
||||
{ path: 'crm-management', component: CrmManagementComponent, data: { guard: { ability: ['SYSTEM-CRM-list'] } } },
|
||||
{ path: 'network-freight', component: NetworkFreightComponent, data: { guard: { ability: ['SYSTEM-NETWORK-FREIGHT-list'] } } },
|
||||
{ path: 'network-freight/new/:id', component: NetworkFreightNewComponent },
|
||||
{ path: 'close-account', component: CloseAccountComponent },
|
||||
// { path: 'btn-management', component: BtnManagementComponent },
|
||||
{ path: 'announcement-message', component: AnnouncementMessageComponent },
|
||||
{ path: 'insurance-set', component: InsuranceSetComponent },
|
||||
{ path: 'sms-template', component: SmsTemplateComponent}
|
||||
{ path: 'sms-template', component: SmsTemplateComponent }
|
||||
];
|
||||
|
||||
@NgModule({
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
/*
|
||||
* @Author: your name
|
||||
* @Date: 2021-12-03 15:23:05
|
||||
* @LastEditTime : 2022-04-27 15:52:30
|
||||
* @LastEditTime : 2022-04-27 20:54:10
|
||||
* @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\\sys-setting.module.ts
|
||||
@ -38,6 +38,7 @@ import { OrganizationManagementComponent } from './components/organization-manag
|
||||
import { OrganizationModalComponent } from './components/organization-management/organization-modal/organization-modal.component';
|
||||
import { ApiAuthModalComponent } from './components/organization-management/api-auth-modal/api-auth-modal.component';
|
||||
import { MenuTreeComponent } from './components/organization-management/menu-tree/menu-tree.component';
|
||||
import { PartnerSystemConfigComponent } from './components/config/config.component';
|
||||
|
||||
const COMPONENTS = [
|
||||
StaffManagementComponent,
|
||||
@ -58,6 +59,7 @@ const COMPONENTS = [
|
||||
NoTeManagementComponent,
|
||||
SmsTemplateComponent,
|
||||
OrganizationManagementComponent,
|
||||
PartnerSystemConfigComponent
|
||||
];
|
||||
const NOTROUTECOMPONENTS = [
|
||||
BuyerTranspowerComponent,
|
||||
|
||||
@ -179,8 +179,10 @@ export class InvoiceRequestedDetailComponent implements OnInit {
|
||||
routeToOrder(item: any) {
|
||||
if (item.billType === '1') {
|
||||
this.router.navigate(['/order-management/vehicle/vehicle-detail/' + item.billHId]);
|
||||
} else {
|
||||
} else if (item.billType === '2'){
|
||||
this.router.navigate(['/order-management/bulk/bulk-detail/' + item.billHId]);
|
||||
} else if (item.billType === '3'){
|
||||
this.router.navigate(['/order-management/vehicle/vehicle-detail/' + item.billHId]);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
/*
|
||||
* @Author: your name
|
||||
* @Date: 2021-12-23 16:50:17
|
||||
* @LastEditTime : 2022-04-21 13:57:43
|
||||
* @LastEditTime : 2022-04-28 13:54:14
|
||||
* @LastEditors : Shiming
|
||||
* @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
|
||||
* @FilePath : \\tms-obc-web\\src\\app\\routes\\ticket-management\\components\\invoice-requested\\requested-invoice-modal\\requested-invoice-modal.component.ts
|
||||
@ -88,7 +88,7 @@ export class RequestedInvoiceModalComponent {
|
||||
{ title: '订单号', index: 'billHCode', width: 150 },
|
||||
{ title: '订单完成日期', index: 'billfinTime', type: 'date', width: 150 },
|
||||
{ title: '所属项目', index: 'projectIdName', width: 250 },
|
||||
{ title: '订单类型', index: 'billTypeName', width: 90 },
|
||||
{ title: '订单类型', index: 'billTypeLabel', width: 90 },
|
||||
{ title: '装货地', index: 'loadingfrom', width: 250 },
|
||||
{ title: '卸货地', index: 'loadingto', width: 250 },
|
||||
{ title: '货物信息', index: 'goodsinfo', width: 170 },
|
||||
|
||||
@ -16,8 +16,8 @@
|
||||
<p style="margin-bottom: 0;word-break:break-all">{{ detailData?.enterpriseName }}</p>
|
||||
</div>
|
||||
<div nz-col [nzLg]="12" [nzSm]="24" [nzXs]="24">
|
||||
<nz-badge nzStatus="success" nzText="正常" *ngIf="detailData?.stateLocked === 0"></nz-badge>
|
||||
<nz-badge nzStatus="error" nzText="冻结" *ngIf="detailData?.stateLocked === 1"></nz-badge>
|
||||
<nz-badge nzStatus="success" nzText="正常" *ngIf="!detailData?.stateLocked"></nz-badge>
|
||||
<nz-badge nzStatus="error" nzText="冻结" *ngIf="detailData?.stateLocked"></nz-badge>
|
||||
</div>
|
||||
</div>
|
||||
<div nz-row>
|
||||
@ -48,30 +48,30 @@
|
||||
保存
|
||||
</button>
|
||||
<button [disabled]="false" nz-button nzDanger (click)="auditPass(true)"
|
||||
*ngIf="detailData?.approvalStatus===10" acl [acl-ability]="['USERCENTER-FREIGHT-ENTERPRISE-D-audit']">
|
||||
*ngIf="detailData?.approvalStatus===10" acl [acl-ability]="['USERCENTER-FREIGHT-LIST-DETAIL-pass']">
|
||||
通过
|
||||
</button>
|
||||
</ng-container>
|
||||
<ng-template #editButton>
|
||||
<ng-container *ngIf="detailData?.approvalStatus===10">
|
||||
<button [disabled]="false" nz-button nzDanger (click)="auditPass(false)" acl
|
||||
[acl-ability]="['USERCENTER-FREIGHT-ENTERPRISE-D-audit']">
|
||||
[acl-ability]="['USERCENTER-FREIGHT-LIST-DETAIL-pass']">
|
||||
通过
|
||||
</button>
|
||||
<button [disabled]="false" nz-button nzDanger (click)="auditNo()" acl
|
||||
[acl-ability]="['USERCENTER-FREIGHT-ENTERPRISE-D-audit']">
|
||||
[acl-ability]="['USERCENTER-FREIGHT-LIST-DETAIL-pass']">
|
||||
驳回
|
||||
</button>
|
||||
</ng-container>
|
||||
<ng-container *ngIf="detailData?.approvalStatus!=10">
|
||||
<button [disabled]="false" nz-button nzDanger nz-popconfirm [nzPopconfirmTitle]="enable"
|
||||
(nzOnConfirm)="freezeOrResume(0)" nzPopconfirmPlacement="bottomRight" *ngIf="detailData?.stateLocked"
|
||||
acl [acl-ability]="['USERCENTER-FREIGHT-ENTERPRISE-D-lock']">
|
||||
acl [acl-ability]="['USERCENTER-FREIGHT-LIST-DETAIL-lock']">
|
||||
启用
|
||||
</button>
|
||||
<button [disabled]="false" nz-button nzDanger nz-popconfirm [nzPopconfirmTitle]="frozen"
|
||||
(nzOnConfirm)="freezeOrResume(1)" nzPopconfirmPlacement="bottomRight" *ngIf="!detailData?.stateLocked"
|
||||
acl [acl-ability]="['USERCENTER-FREIGHT-ENTERPRISE-D-lock']">
|
||||
acl [acl-ability]="['USERCENTER-FREIGHT-LIST-DETAIL-lock']">
|
||||
冻结
|
||||
</button>
|
||||
<button [disabled]="false" nz-button nzDanger nz-popconfirm [nzPopconfirmTitle]="Payfrozen"
|
||||
@ -84,7 +84,7 @@
|
||||
</button>
|
||||
</ng-container>
|
||||
<button [disabled]="false" nz-button nzDanger (click)="ratify()" acl
|
||||
[acl-ability]="['USERCENTER-FREIGHT-ENTERPRISE-D-save']">
|
||||
[acl-ability]="['USERCENTER-FREIGHT-LIST-DETAIL-save']">
|
||||
修改
|
||||
</button>
|
||||
</ng-template>
|
||||
|
||||
@ -156,7 +156,7 @@
|
||||
|
||||
<div class="mb-md save-btn">
|
||||
<button class="ml-lg" nz-button nzSize="large" nzType="primary" (click)="saveAction()"
|
||||
*ngIf="selectedTab?.configKey!=='freight' && labelWidth!==0">保存</button>
|
||||
*ngIf="selectedTab?.configKey!=='freight' && labelWidth!==0 && isCanSave">保存</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -28,6 +28,8 @@ export class DynamicSettingH5Component implements OnInit {
|
||||
|
||||
@Input()
|
||||
configList: any = [];
|
||||
@Input()
|
||||
isCanSave = true;
|
||||
@Output()
|
||||
selectedEvent = new EventEmitter<any>();
|
||||
@Output()
|
||||
|
||||
@ -22,7 +22,7 @@ export * from './components/dynamic-setting';
|
||||
export * from './components/singlepage-setting';
|
||||
export * from './components/insurance-table/index';
|
||||
export * from './components/rebate-table/index';
|
||||
export * from './components/search-drawer';
|
||||
export * from './components/search-drawer/index';
|
||||
|
||||
// Utils
|
||||
export * from './utils';
|
||||
|
||||
@ -39,8 +39,9 @@ import { PipeModule } from './pipes';
|
||||
import { AccountDetailComponent } from './components/account-detail/account-detail.component';
|
||||
import { CaptchaModule } from './components/captcha';
|
||||
import { rebateTableModule } from './components/rebate-table';
|
||||
import { SearchDrawerComponent } from './components/search-drawer/search-drawer.component';
|
||||
import { SearchDrawerModule } from './components/search-drawer/search-drawer.module';
|
||||
import { SearchDrawerModule } from './components/search-drawer';
|
||||
// import { SearchDrawerComponent } from './components/search-drawer/search-drawer.component';
|
||||
|
||||
|
||||
const MODULES = [
|
||||
AddressModule,
|
||||
|
||||
Reference in New Issue
Block a user