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

This commit is contained in:
wangshiming
2022-02-25 10:34:32 +08:00
10 changed files with 296 additions and 74 deletions

View File

@ -95,7 +95,9 @@ export class StartupService {
// ACL设置权限为全量
this.aclService.setFull(false);
// 初始化菜单
this.menuService.add(menuData);
if(menuData){
this.menuService.add(menuData);
}
// 设置页面标题的后缀
this.titleService.default = '';
this.titleService.suffix = appData.name;

View File

@ -80,6 +80,10 @@ export class WithdrawalsRecordComponent implements OnInit {
label: '拒绝',
type: 'default',
onClick: () => {
if (!this.msg) {
this.service.msgSrv.warning('请填写拒绝原因 ');
return false;
}
this.service
.request(this.service.$api_disagree_refund, {
refundApplicationId: params,
@ -92,6 +96,7 @@ export class WithdrawalsRecordComponent implements OnInit {
this.st.load(1);
}
});
return false;
}
},
{
@ -110,6 +115,7 @@ export class WithdrawalsRecordComponent implements OnInit {
this.st.load(1);
}
});
return false;
}
}
]
@ -258,7 +264,7 @@ export class WithdrawalsRecordComponent implements OnInit {
{ title: '提现银行账户', render: 'bankCardNumber', width: 180 },
{ title: '提现状态', index: 'refundStatusLabel', width: 100 },
{ title: '银行流水号', index: 'bankSerialNumber', width: 120 },
{ title: '核心交易流水', index: 'coreSerNo', width: 120 },
{ title: '核心交易流水', index: 'coreSerNo', width: 130 },
{ title: '失败原因', index: 'rejectionCause', width: 150, format: item => item.failCause || item.rejectionCause },
{
title: '操作',

View File

@ -11,40 +11,62 @@
<page-header-wrapper [title]="'货主配置'"></page-header-wrapper>
<nz-card class="search-box">
<!-- 搜索表单 -->
<div nz-row nzGutter="8">
<div nz-col [nzXl]="_$expand ? 24 : 18" [nzLg]="24" [nzSm]="24" [nzXs]="24">
<sf
#sf
[schema]="schema"
[ui]="{ '*': { spanLabelFixed: 110, grid: { lg: 8, md: 12, sm: 12, xs: 24, gutter: 4 } } }"
[compact]="true"
[button]="'none'"
></sf>
</div>
<div nz-col [nzXl]="_$expand ? 24 : 6" [nzLg]="24" [nzSm]="24" [nzXs]="24" [class.expend-options]="_$expand" class="text-right">
<button
nz-button
nzType="primary"
[nzLoading]="service.http.loading"
(click)="st?.load(1)"
acl
[acl-ability]="['USERCENTER-FREIGHT-LIST-list']"
>查询</button
>
<button nz-button nzType="primary" [disabled]="service.http.loading" acl [acl-ability]="['USERCENTER-FREIGHT-LIST-export']"
>导出</button
>
<button nz-button [disabled]="service.http.loading" (click)="resetSF()">重置</button>
<button nz-button nzType="link" (click)="expandToggle()">
{{ !_$expand ? '展开' : '收起' }}
<i nz-icon [nzType]="!_$expand ? 'down' : 'up'"></i>
</button>
</div>
<div nz-row nzGutter="8">
<div nz-col [nzXl]="_$expand ? 24 : 18" [nzLg]="24" [nzSm]="24" [nzXs]="24">
<sf #sf [schema]="schema"
[ui]="{ '*': { spanLabelFixed: 110, grid: { lg: 8, md: 12, sm: 12, xs: 24, gutter: 4 } } }" [compact]="true"
[button]="'none'"></sf>
</div>
<div nz-col [nzXl]="_$expand ? 24 : 6" [nzLg]="24" [nzSm]="24" [nzXs]="24" [class.expend-options]="_$expand"
class="text-right">
<button nz-button nzType="primary" [nzLoading]="service.http.loading" (click)="st?.load(1)" acl
[acl-ability]="['USERCENTER-FREIGHT-LIST-list']">查询</button>
<button nz-button nzType="primary" [disabled]="service.http.loading" acl
[acl-ability]="['USERCENTER-FREIGHT-LIST-export']">导出</button>
<button nz-button [disabled]="service.http.loading" (click)="resetSF()">重置</button>
<button nz-button nzType="link" (click)="expandToggle()">
{{ !_$expand ? '展开' : '收起' }}
<i nz-icon [nzType]="!_$expand ? 'down' : 'up'"></i>
</button>
</div>
</div>
</nz-card>
<nz-card>
<!-- 数据列表 -->
<st #st [columns]="columns" [data]='service.$api_freight_config_page' [req]="{ process: beforeReq }"
[scroll]="{ x: '1200px' }" [loading]="service.http.loading">
</st>
<div class="d-flex align-items-center mb-md " style="justify-content: end;">
<button nz-button (click)="editRoleBatch()">修改角色</button>
<button nz-button (click)="editIWBatch()">修改网络货运人</button>
<div class="ml-md">
已选择
<strong class="text-primary">{{ selectedRows.length }}</strong> 条数据
<a *ngIf="selectedRows.length > 0" (click)="st.clearCheck()" class="ml-lg">清空</a>
</div>
</div>
<!-- 数据列表 -->
<st #st [columns]="columns" [data]='service.$api_freight_config_page' [req]="{ process: beforeReq }"
[scroll]="{ x: '1200px' }" [loading]="service.http.loading" (change)="stChange($event)">
</st>
</nz-card>
<ng-template #IWModal>
<div nz-row nzGutter="8">
<div nz-col nzSpan="24" se-container [labelWidth]="120">
<se [col]="1" label="网络货运人" required>
<nz-select nzPlaceHolder="请选择" [(ngModel)]="networkTransporter">
<nz-option [nzValue]="item.value" [nzLabel]="item.label" *ngFor="let item of ltdId"></nz-option>
</nz-select>
</se>
</div>
</div>
</ng-template>
<ng-template #roleModal>
<div nz-row nzGutter="8">
<div nz-col nzSpan="24" se-container [labelWidth]="120">
<se [col]="1" label="企业角色" required>
<nz-select nzPlaceHolder="请选择" [(ngModel)]="roleId">
<nz-option [nzValue]="item.value" [nzLabel]="item.label" *ngFor="let item of roles"></nz-option>
</nz-select>
</se>
</div>
</div>
</ng-template>

View File

@ -1,6 +1,6 @@
import { Component, OnInit, ViewChild } from '@angular/core';
import { Router, ActivatedRoute } from '@angular/router';
import { STColumn, STComponent, STRequestOptions, STData } from '@delon/abc/st';
import { STColumn, STComponent, STRequestOptions, STData, STChange } from '@delon/abc/st';
import { SFUISchema, SFSchema, SFComponent, SFDateWidgetSchema } from '@delon/form';
import { ShipperBaseService, DynamicSettingModalComponent } from '@shared';
import { NzModalService } from 'ng-zorro-antd/modal';
@ -10,34 +10,60 @@ import { UsermanageService } from '../../../services/usercenter.service';
@Component({
selector: 'app-freight-config',
templateUrl: './freight-config.component.html',
styleUrls: ['../../../../commom/less/box.less']
styleUrls: ['../../../../commom/less/box.less', '../../../../commom/less/expend-but.less']
})
export class FreightConfigComponent implements OnInit {
schema: SFSchema = this.initSF();
columns: STColumn[] = this.initST();
@ViewChild('st', { static: false }) st!: STComponent;
@ViewChild('sf', { static: false }) sf!: SFComponent;
selectedRows: any[] = [];
@ViewChild('IWModal', { static: false })
IWModal!: any;
@ViewChild('roleModal', { static: false })
roleModal!: any;
ltdId: any = [];
roles: any = [];
networkTransporter = null;
roleId = null;
_$expand = false;
constructor(public service: UsermanageService, private modal: NzModalService, public shipperservice: ShipperBaseService) {}
ngOnInit() {
this.initST();
this.loadltdId();
this.loadRoles();
}
beforeReq = (requestOptions: STRequestOptions) => {
Object.assign(requestOptions.body, { listSource: 1 });
if (this.sf) {
console.log(1);
if (this.sf?.value) {
Object.assign(requestOptions.body, {
...this.sf.value,
createTime: {
start: this.sf?.value.effectiveDate[0],
end: this.sf?.value.effectiveDate[1]
}
...this.sf.value
});
if (this.sf?.value.createTime) {
Object.assign(requestOptions.body, {
createTime: {
start: this.sf?.value.createTime[0],
end: this.sf?.value.createTime[1]
}
});
}
}
return requestOptions;
};
stChange(e: STChange): void {
switch (e.type) {
case 'checkbox':
this.selectedRows = e.checkbox!;
break;
}
}
settingAction(item?: any) {
const modal = this.modal.create({
nzTitle: '配置',
@ -48,20 +74,20 @@ export class FreightConfigComponent implements OnInit {
businessId: item.id,
formatTypeList: (item: any[]) => [
...item,
// {
// name: '权限配置',
// items: [
// {
// configType: 1,
// itemType: 999
// }
// ]
// },
{
name: '费率变更记录',
name: '权限配置',
configType: 1,
items: [
{
itemType: 999
}
]
},
{
name: '费率变更记录',
configType: 2,
items: [
{
configType: 2,
itemType: 999
}
]
@ -77,6 +103,68 @@ export class FreightConfigComponent implements OnInit {
});
}
editRoleBatch() {
if (this.selectedRows?.length <= 0) {
this.service.msgSrv.warning('请选择企业');
return;
}
this.roleId = null;
const modal = this.modal.create({
nzTitle: '修改角色',
nzContent: this.roleModal,
nzOnOk: () => {
if (!this.roleId) {
return false;
}
this.service
.request(this.service.$api_update_enter_role_batch, {
enterpriseIdList: this.selectedRows.map(i => i.id),
roleId: this.roleId
})
.subscribe((res: Array<string>) => {
if (res) {
this.service.msgSrv.success('修改成功');
this.st.load(1);
modal.destroy();
}
});
return false;
}
});
}
editIWBatch() {
if (this.selectedRows?.length <= 0) {
this.service.msgSrv.warning('请选择企业');
return;
}
this.networkTransporter = null;
const modal = this.modal.create({
nzTitle: '修改网络货运人',
nzContent: this.IWModal,
nzOnOk: () => {
if (!this.networkTransporter) {
return false;
}
this.service
.request(this.service.$api_update_enter_newowork_batch, {
enterpriseIdList: this.selectedRows.map(i => i.id),
networkTransporterId: this.networkTransporter
})
.subscribe((res: Array<string>) => {
if (res && res.length === 0) {
this.service.msgSrv.success('修改成功');
this.st.load(1);
modal.destroy();
} else {
this.service.msgSrv.error(`企业${res?.join(',')}修改失败`);
}
});
return false;
}
});
}
exportList() {
const params = {};
if (this.sf) {
@ -86,10 +174,25 @@ export class FreightConfigComponent implements OnInit {
}
this.service.downloadFile(this.service.$api_export_enterprise, params);
}
loadltdId() {
this.service.getNetworkFreightForwarder().subscribe(res => {
if (res) {
this.ltdId = res;
}
});
}
loadRoles() {
this.service.getRoles({ enterpriseId: 0, projectId: 0 }).subscribe(res => {
if (res) {
this.roles = res;
}
});
}
/**
* 伸缩查询条件
*/
expandToggle(): void {
expandToggle(): void {
this._$expand = !this._$expand;
this.sf?.setValue('/_$expand', this._$expand);
}
@ -139,28 +242,29 @@ export class FreightConfigComponent implements OnInit {
showRequired: false,
visibleIf: {
_$expand: (value: boolean) => value
},
}
}
},
effectiveDate: {
createTime: {
title: '注册时间',
type: 'string',
ui: {
widget: 'date',
mode: 'range',
widget: 'sl-from-to-search',
format: 'yyyy-MM-dd',
placeholder: '请选择',
nzShowTime: true,
visibleIf: {
_$expand: (value: boolean) => value,
},
allowClear: true,
} as SFDateWidgetSchema,
},
_$expand: (value: boolean) => value
}
} as SFDateWidgetSchema
}
}
};
}
initST(): STColumn[] {
return [
{ title: '', index: 'key', type: 'checkbox' },
{ title: '企业名称', className: 'text-center', index: 'enterpriseName', width: 350 },
{ title: '网络货运人', className: 'text-center', index: 'netTranName', width: 160 },
{
@ -180,7 +284,7 @@ export class FreightConfigComponent implements OnInit {
{
title: '合同单业务量(元)',
index: 'contractQuota',
width: 140,
width: 160,
type: 'widget',
className: 'text-right',
widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.contractQuota }) }
@ -188,7 +292,7 @@ export class FreightConfigComponent implements OnInit {
{
title: '货源单业务量(元)',
index: 'goodsQuota',
width: 140,
width: 160,
type: 'widget',
className: 'text-right',
widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.goodsQuota }) }
@ -197,7 +301,7 @@ export class FreightConfigComponent implements OnInit {
title: '注册时间',
index: 'createTime',
width: 180,
className: 'text-right',
className: 'text-right'
},
{
title: '操作',

View File

@ -123,6 +123,9 @@
<label *ngIf="detailData?.approvalStatus===30" style="color: #ff4d4f;"><i nz-icon nzType="close-circle"
nzTheme="fill" class="mr-xs"></i>驳回&nbsp;驳回原因:{{detailData?.approvalOpinion}}
</label>
<label *ngIf="detailData?.isExpired===30" style="color: #fa8c16;">
<i nz-icon nzType="info-circle" nzTheme="fill" class="ml-md mr-xs"></i>企业营业期限已过期
</label>
<p style="margin-bottom: 0;">
四要素验证:
<label *ngIf="detailData?.esignCheckStatus===0" style="color: #ff4d4f;"><i nz-icon nzType="info-circle"
@ -246,7 +249,11 @@
</sv-container>
<nz-divider></nz-divider>
<sv-container col="3" class="mt16">
<sv-title>法人信息</sv-title>
<sv-title>法人信息
<label *ngIf="detailData?.legalPersonIdentityVO?.isExpired===30" style="color: #fa8c16;">
<i nz-icon nzType="info-circle" nzTheme="fill" class="ml-md mr-xs"></i>企业营业期限已过期
</label>
</sv-title>
<sv label="法定代表人">
<input nz-input type="text" [(ngModel)]="detailData.legalPersonIdentityVO.name" [readonly]="!isEdit"
[nzBorderless]="!isEdit" [placeholder]="isEdit?'':'-'">
@ -286,7 +293,11 @@
</sv-container>
<nz-divider></nz-divider>
<sv-container col="3">
<sv-title>企业管理员信息</sv-title>
<sv-title>企业管理员信息
<label *ngIf="detailData?.adminUserInfo?.isExpired===30" style="color: #fa8c16;">
<i nz-icon nzType="info-circle" nzTheme="fill" class="ml-md mr-xs"></i>企业营业期限已过期
</label>
</sv-title>
<sv label="姓名">
<input nz-input type="text" [(ngModel)]="detailData.adminUserInfo.name" [readonly]="!isEdit"
[nzBorderless]="!isEdit" [placeholder]="isEdit?'':'-'">

View File

@ -37,6 +37,10 @@ export class UsermanageService extends ShipperBaseService {
// 查询货主配置列表
$api_freight_config_page = '/api/mdc/cuc/enterpriseInfo/operate/list/configPage';
// 更新企业超级管理员权限
$api_update_enter_role_batch = '/api/mdc/cuc/enterpriseInfo/operate/updateRole';
// 批量更新企业网络货运人
$api_update_enter_newowork_batch = '/api/mdc/cuc/enterpriseInfo/operate/updatnNetworkTransporter';
// 货主员工列表(运营后台)
$api_get_user_list = '/api/mdc/cuc/userApp/getShipperUserList';

View File

@ -3,14 +3,13 @@
<custom-element>
<ng-container [ngSwitch]="selectedTab?.configType">
<ng-container *ngSwitchCase="1">
权限配置
<app-enter-auth [enterpriseId]="businessId"> </app-enter-auth>
</ng-container>
<ng-container *ngSwitchCase="2">
</ng-container>
<ng-container *ngSwitchDefault>
<app-rate-change [businessId]="businessId" [configFullKey]="configFullKey"></app-rate-change>
</ng-container>
<ng-container *ngSwitchDefault>
</ng-container>
</ng-container>
</custom-element>
</app-dynamic-setting-h5>

View File

@ -20,7 +20,14 @@ import { SEModule } from '@delon/abc/se';
import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
import { RateChangeComponent } from './rate-change/rate-change.component';
import { STModule } from '@delon/abc/st';
const COMPONENTS = [DynamicSettingH5Component, DynamicSettingModalComponent, FreightTableComponent, RateChangeComponent];
import { EnterAuthComponent } from './enter-auth/enter-auth.component';
const COMPONENTS = [
DynamicSettingH5Component,
DynamicSettingModalComponent,
FreightTableComponent,
RateChangeComponent,
EnterAuthComponent
];
@NgModule({
declarations: [...COMPONENTS],
imports: [CommonModule, FormsModule, SHARED_ZORRO_MODULES, SEModule, STModule],

View File

@ -0,0 +1,15 @@
<div nz-row nzGutter="8">
<div nz-col nzSpan="24" se-container [labelWidth]="120">
<se [col]="1" label="企业角色" required>
<nz-select nzPlaceHolder="请选择" [(ngModel)]="roleId" style="width: 150px;">
<nz-option [nzValue]="item.value" [nzLabel]="item.label" *ngFor="let item of roles"></nz-option>
</nz-select>
</se>
</div>
</div>
<div nz-row nzGutter="8">
<div nz-col nzSpan="24">
<button nz-button nzSize="large" nzType="primary" (click)="saveAction()" style="float: right;"
class="mt-md">保存</button>
</div>
</div>

View File

@ -0,0 +1,52 @@
import { Component, Input, OnInit } from '@angular/core';
import { NzModalRef } from 'ng-zorro-antd/modal';
import { ShipperBaseService } from 'src/app/shared/services/business/shipper-base.service';
@Component({
selector: 'app-enter-auth',
templateUrl: './enter-auth.component.html'
})
export class EnterAuthComponent implements OnInit {
@Input()
enterpriseId = '';
@Input()
roleId = '';
roles: any[] = [];
constructor(private service: ShipperBaseService, private modalHelp: NzModalRef) {
this.loadRoles();
}
ngOnInit(): void {
console.log(this.enterpriseId);
this.loadEnterRole();
}
loadEnterRole() {
this.service.request('/api/mdc/cuc/enterpriseInfo/operate/getRole', { enterpriseId: this.enterpriseId }).subscribe(res => {
if (res) {
this.roleId = res.roleId;
}
});
}
loadRoles() {
this.service.getRoles({ enterpriseId: 0, projectId: 0 }).subscribe(res => {
if (res) {
this.roles = res;
}
});
}
saveAction() {
this.service
.request('/api/mdc/cuc/enterpriseInfo/operate/updateRole', { enterpriseIdList: [this.enterpriseId], roleId: this.roleId })
.subscribe(res => {
if (res) {
this.service.msgSrv.success('修改成功');
this.modalHelp.destroy(true);
}
});
}
}