Merge branch 'develop' of gitlab.eascs.com:tms-ui/tms-obc-web into develop
This commit is contained in:
@ -72,7 +72,7 @@ export class ContractManagementContractListComponent implements OnInit {
|
||||
title: '签约对象',
|
||||
width: '100px',
|
||||
className: 'text-center',
|
||||
index: 'documentType'
|
||||
index: 'signingObjectLabel'
|
||||
},
|
||||
{
|
||||
title: '合同类型',
|
||||
|
||||
@ -78,7 +78,7 @@ export class ContractManagementPartnerComponent implements OnInit {
|
||||
title: '签约对象',
|
||||
width: '100px',
|
||||
className: 'text-center',
|
||||
index: 'signingObject'
|
||||
index: 'signingObjectLabel'
|
||||
},
|
||||
{
|
||||
title: '合同类型',
|
||||
|
||||
@ -131,7 +131,7 @@ export class ContractManagementTemplateFrameComponent implements OnInit {
|
||||
title: '签约对象',
|
||||
width: '100px',
|
||||
className: 'text-center',
|
||||
render: 'signingObjectLabel'
|
||||
index: 'signingObjectLabel'
|
||||
},
|
||||
{
|
||||
title: '合同类型',
|
||||
@ -145,15 +145,17 @@ export class ContractManagementTemplateFrameComponent implements OnInit {
|
||||
className: 'text-center',
|
||||
index: 'resourceTypeLabel'
|
||||
},
|
||||
{ title: '创建人', index: 'createUserId', width: '120px', className: 'text-center' },
|
||||
{ title: '创建人', index: 'createUserIdLabel', width: '120px', className: 'text-center' },
|
||||
{
|
||||
title: '创建时间',
|
||||
className: 'text-center',
|
||||
index: 'createTime'
|
||||
index: 'createTime',
|
||||
width: '200px'
|
||||
},
|
||||
{
|
||||
title: '操作',
|
||||
fixed: 'right',
|
||||
width: '110px',
|
||||
className: 'text-center',
|
||||
buttons: [
|
||||
{
|
||||
|
||||
@ -145,15 +145,17 @@ export class ContractManagementTemplatePartnerComponent implements OnInit {
|
||||
className: 'text-center',
|
||||
index: 'resourceTypeLabel'
|
||||
},
|
||||
{ title: '创建人', index: 'createUserId', width: '120px', className: 'text-center' },
|
||||
{ title: '创建人', index: 'createUserIdLabel', width: '120px', className: 'text-center' },
|
||||
{
|
||||
title: '创建时间',
|
||||
className: 'text-center',
|
||||
index: 'createTime'
|
||||
index: 'createTime',
|
||||
width: '200px'
|
||||
},
|
||||
{
|
||||
title: '操作',
|
||||
fixed: 'right',
|
||||
width: '110px',
|
||||
className: 'text-center',
|
||||
buttons: [
|
||||
{
|
||||
|
||||
@ -145,15 +145,17 @@ export class ContractManagementTemplateDetailComponent implements OnInit {
|
||||
className: 'text-center',
|
||||
index: 'resourceTypeLabel'
|
||||
},
|
||||
{ title: '创建人', index: 'createUserId', width: '120px', className: 'text-center' },
|
||||
{ title: '创建人', index: 'createUserIdLabel', width: '120px', className: 'text-center' },
|
||||
{
|
||||
title: '创建时间',
|
||||
className: 'text-center',
|
||||
index: 'createTime'
|
||||
index: 'createTime',
|
||||
width: '200px'
|
||||
},
|
||||
{
|
||||
title: '操作',
|
||||
fixed: 'right',
|
||||
width: '110px',
|
||||
className: 'text-center',
|
||||
buttons: [
|
||||
{
|
||||
|
||||
@ -92,7 +92,7 @@ export class RechargeRecordComponent implements OnInit {
|
||||
format: 'yyyy-MM-dd'
|
||||
} as SFDateWidgetSchema
|
||||
},
|
||||
rechargeName: {
|
||||
roleName: {
|
||||
type: 'string',
|
||||
title: '账户名称',
|
||||
ui: {
|
||||
@ -162,7 +162,7 @@ export class RechargeRecordComponent implements OnInit {
|
||||
{ title: '网络货运人', index: 'ltdName', width: 160 },
|
||||
{ title: '银行类型', index: 'bankTypeLabel', width: 100 },
|
||||
{ title: '账户类型', index: 'accountTypeLabel', width: 100 },
|
||||
{ title: '账户名称', index: 'rechargeName', width: 160 },
|
||||
{ title: '账户名称', index: 'roleName', width: 160 },
|
||||
{ title: '虚拟账户', index: 'virtualAccount', width: 100 },
|
||||
{
|
||||
title: '充值金额',
|
||||
|
||||
@ -311,7 +311,7 @@ export class VoucherManagementComponent implements OnInit {
|
||||
{ title: '帐套', index: 'ltdId', width: 200, format: item => `${item.vcltdcode}-${item.vcltdname}` },
|
||||
{ title: '凭证时间', index: 'vctime', type: 'date', width: 200 },
|
||||
{ title: '凭证类型', index: 'vctype', width: 200 },
|
||||
{ title: '序号', index: 'invmoney', width: 200, format: _ => '1' },
|
||||
// { title: '序号', index: 'invmoney', width: 200, format: _ => '1' },
|
||||
{ title: '摘要', index: 'remarks', width: 300 },
|
||||
{ title: '币种', index: 'currency', width: 100 },
|
||||
{
|
||||
|
||||
@ -233,7 +233,7 @@ export class insuranceManagementListComponent implements OnInit {
|
||||
title: '所属项目',
|
||||
ui: {
|
||||
widget: 'select',
|
||||
placeholder: '请选择',
|
||||
placeholder: '请先选择货主',
|
||||
visibleIf: {
|
||||
_$expand: (value: boolean) => value
|
||||
},
|
||||
|
||||
@ -220,7 +220,7 @@ export class OrderManagementBulkComponent implements OnInit {
|
||||
title: '所属项目',
|
||||
ui: {
|
||||
widget: 'select',
|
||||
placeholder: '请选择',
|
||||
placeholder: '请先选择货主',
|
||||
visibleIf: {
|
||||
_$expand: (value: boolean) => value
|
||||
},
|
||||
@ -392,7 +392,7 @@ export class OrderManagementBulkComponent implements OnInit {
|
||||
};
|
||||
this.uiView = { '*': { spanLabelFixed: 80, grid: { span: 12, gutter: 4 } } };
|
||||
}
|
||||
// 获取城市列表
|
||||
// 获取所属项目
|
||||
getRegionCode(regionCode: any) {
|
||||
console.log(regionCode);
|
||||
return this.service
|
||||
|
||||
@ -103,6 +103,18 @@ export class OrderManagementComplaintComponent implements OnInit {
|
||||
type: 'string',
|
||||
title: '投诉单号',
|
||||
},
|
||||
complaintCause: {
|
||||
title: '投诉原因',
|
||||
type: 'string',
|
||||
ui: {
|
||||
widget: 'dict-select',
|
||||
params: { dictKey: 'complaint:cause' },
|
||||
containsAllLabel: true,
|
||||
visibleIf: {
|
||||
_$expand: (value: boolean) => value
|
||||
}
|
||||
} as SFSelectWidgetSchema
|
||||
},
|
||||
complainantTime: {
|
||||
title: '投诉时间',
|
||||
type: 'string',
|
||||
@ -124,14 +136,14 @@ export class OrderManagementComplaintComponent implements OnInit {
|
||||
this.columns = [
|
||||
{
|
||||
title: '投诉单号',
|
||||
width: '170px',
|
||||
width: '200px',
|
||||
fixed: 'left',
|
||||
className: 'text-center',
|
||||
render: 'complaintCode'
|
||||
},
|
||||
{
|
||||
title: '运单号',
|
||||
width: '170px',
|
||||
width: '200px',
|
||||
className: 'text-center',
|
||||
index: 'wayBillCode'
|
||||
},
|
||||
@ -161,6 +173,12 @@ export class OrderManagementComplaintComponent implements OnInit {
|
||||
width: '200px',
|
||||
index:'handlePartyLabel'
|
||||
},
|
||||
{
|
||||
title: '处理时间',
|
||||
className: 'text-center',
|
||||
width: '200px',
|
||||
index:'handleTime'
|
||||
},
|
||||
{
|
||||
title: '处理结果',
|
||||
className: 'text-center',
|
||||
|
||||
@ -179,7 +179,7 @@ export class OrderManagementComplianceAuditComponent implements OnInit {
|
||||
title: '所属项目',
|
||||
ui: {
|
||||
widget: 'select',
|
||||
placeholder: '请选择',
|
||||
placeholder: '请先选择货主',
|
||||
visibleIf: {
|
||||
_$expand: (value: boolean) => value
|
||||
},
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
* @Author : Shiming
|
||||
* @Date : 2022-01-12 10:52:50
|
||||
* @LastEditors : Shiming
|
||||
* @LastEditTime : 2022-03-22 17:54:50
|
||||
* @LastEditTime : 2022-03-23 20:36:40
|
||||
* @FilePath : \\tms-obc-web\\src\\app\\routes\\order-management\\components\\receipts-audit\\receipts-audit.component.html
|
||||
* Copyright (C) 2022 huzhenhong. All rights reserved.
|
||||
-->
|
||||
@ -59,8 +59,8 @@
|
||||
[scroll]="{ x: '2000px' }"
|
||||
[data]="service.$api_get_billExamine_page"
|
||||
[columns]="columns"
|
||||
[req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, params: reqParams }"
|
||||
[res]="{ reName: { list: 'data.records', total: 'data.total' } }"
|
||||
[req]="{ process: beforeReq }"
|
||||
[res]="{ reName: { list: 'data.records', total: 'data.total' } , process: afterRes}"
|
||||
[page]="{ show: true, showSize: true, pageSizes: [10, 20, 30, 50, 100, 200, 300, 500, 1000] }"
|
||||
[loading]="false"
|
||||
>
|
||||
@ -103,7 +103,7 @@
|
||||
<span>{{item?.billStatusLabel}}</span>
|
||||
</div>
|
||||
<div>
|
||||
<span >{{item?.billTypeLabel}}{{item?.serviceTypeLabel}}</span>
|
||||
<span >{{item?.resourceTypeLabel}}{{item?.serviceTypeLabel}}</span>
|
||||
</div>
|
||||
</ng-template>
|
||||
<ng-template st-row="goodsName" let-item let-index="index">
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
import { Component, OnInit, ViewChild } from '@angular/core';
|
||||
import { STColumn, STComponent } from '@delon/abc/st';
|
||||
import { STColumn, STComponent, STRequestOptions } from '@delon/abc/st';
|
||||
import { SFComponent, SFDateWidgetSchema, SFSchema, SFSchemaEnum, SFSelectWidgetSchema, SFUISchema } from '@delon/form';
|
||||
import { ModalHelper, _HttpClient } from '@delon/theme';
|
||||
import { NzModalService } from 'ng-zorro-antd/modal';
|
||||
@ -30,6 +30,7 @@ export class OrderManagementReceiptsAuditComponent implements OnInit {
|
||||
@ViewChild('st') private readonly st!: STComponent;
|
||||
@ViewChild('sf', { static: false }) sf!: SFComponent;
|
||||
columns: STColumn[] = [];
|
||||
loading: boolean = true;
|
||||
resourceStatus: any;
|
||||
tabs = {
|
||||
receivedQuantity: 0,
|
||||
@ -62,6 +63,34 @@ export class OrderManagementReceiptsAuditComponent implements OnInit {
|
||||
}
|
||||
};
|
||||
}
|
||||
beforeReq = (requestOptions: STRequestOptions) => {
|
||||
const a: any = {};
|
||||
if (this.resourceStatus) {
|
||||
a.auditStatus = this.resourceStatus;
|
||||
}
|
||||
const params: any = Object.assign({}, this.sf?.value || {});
|
||||
delete params._$expand;
|
||||
if (this.sf) {
|
||||
Object.assign(requestOptions.body, {
|
||||
...a,
|
||||
...params,
|
||||
createTime: {
|
||||
start: this.sf?.value?.createTime?.[0] || '',
|
||||
end: this.sf?.value?.createTime?.[1] || ''
|
||||
}
|
||||
});
|
||||
}
|
||||
this.loading = true;
|
||||
return requestOptions;
|
||||
};
|
||||
afterRes = (data: any[], rawData?: any) => {
|
||||
console.log(data)
|
||||
this.loading = false
|
||||
return data.map(item => ({
|
||||
...item,
|
||||
// disabled: item.billStatus !== '4'
|
||||
}));
|
||||
};
|
||||
get selectedRows() {
|
||||
return this.st?.list.filter(item => item.checked) || [];
|
||||
}
|
||||
@ -143,6 +172,9 @@ export class OrderManagementReceiptsAuditComponent implements OnInit {
|
||||
} else {
|
||||
return of([]);
|
||||
}
|
||||
},
|
||||
change: (q: any) => {
|
||||
this.getRegionCode(q);
|
||||
}
|
||||
} as SFSelectWidgetSchema
|
||||
},
|
||||
@ -151,14 +183,11 @@ export class OrderManagementReceiptsAuditComponent implements OnInit {
|
||||
title: '所属项目',
|
||||
ui: {
|
||||
widget: 'select',
|
||||
placeholder: '请选择',
|
||||
allowClear: true,
|
||||
asyncData: () => this.service.getEnterpriseProject(),
|
||||
placeholder: '请先选择货主',
|
||||
visibleIf: {
|
||||
_$expand: (value: boolean) => value
|
||||
}
|
||||
},
|
||||
default: ''
|
||||
},
|
||||
} as SFSelectWidgetSchema
|
||||
},
|
||||
loadingPlace: {
|
||||
type: 'string',
|
||||
@ -498,4 +527,25 @@ export class OrderManagementReceiptsAuditComponent implements OnInit {
|
||||
})
|
||||
});
|
||||
}
|
||||
// 获取所属项目
|
||||
getRegionCode(regionCode: any) {
|
||||
console.log(regionCode);
|
||||
return this.service
|
||||
.request(this.service.$api_get_enterprise_project, { id: regionCode })
|
||||
.pipe(
|
||||
map(res =>
|
||||
res.map((item: any) => ({
|
||||
label: item.projectName,
|
||||
value: item.id
|
||||
}))
|
||||
)
|
||||
)
|
||||
.subscribe(res => {
|
||||
this.sf.getProperty('/enterpriseProjectId')!.schema.enum = res;
|
||||
this.sf.getProperty('/enterpriseProjectId')!.widget.reset(res);
|
||||
// if (this.enterpriseProjectIds) {
|
||||
// this.sf1.setValue('/enterpriseProjectId', this.enterpriseProjectIds);
|
||||
// }
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
* @Author : Shiming
|
||||
* @Date : 2021-12-16 10:19:08
|
||||
* @LastEditors : Shiming
|
||||
* @LastEditTime : 2022-03-22 18:08:04
|
||||
* @LastEditTime : 2022-03-23 19:12:19
|
||||
* @FilePath : \\tms-obc-web\\src\\app\\routes\\order-management\\components\\risk-detail\\risk-detail.component.html
|
||||
* Copyright (C) 2022 huzhenhong. All rights reserved.
|
||||
-->
|
||||
@ -21,8 +21,8 @@
|
||||
<sv label="申诉状态">
|
||||
<span >{{i?.representationsStatusLabel}}</span>
|
||||
</sv>
|
||||
<sv label="承运司机">{{i?.driverName ? i?.driverName + '/': ''}} {{i?.driverPhoneNumber ?i?.driverPhoneNumber + '/': '' }} {{i?.carId}}</sv>
|
||||
<sv label="车队长"> {{i?.payeeName ? i?.payeeName+ '/' : ''}}{{i?.payeePhoneNumber}} </sv>
|
||||
<sv label="承运司机">{{i?.driverName ? i?.driverName + '/': ''}} {{i?.driverPhone ?i?.driverPhone + '/': '' }} {{i?.carId}}</sv>
|
||||
<sv label="车队长"> {{i?.carCaptainName ? i?.carCaptainName+ '/' : ''}}{{i?.carCaptainPhone}} </sv>
|
||||
<sv label="装货时间">{{i?.loadTime}}</sv>
|
||||
<sv label="卸货时间">{{i?.unloadTime}}</sv>
|
||||
<sv label="装货地">{{i?.loadingPlace}}</sv>
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
* @Author : Shiming
|
||||
* @Date : 2022-01-12 10:52:50
|
||||
* @LastEditors : Shiming
|
||||
* @LastEditTime : 2022-03-22 09:42:03
|
||||
* @LastEditTime : 2022-03-23 19:45:45
|
||||
* @FilePath : \\tms-obc-web\\src\\app\\routes\\order-management\\components\\risk\\risk.component.html
|
||||
* Copyright (C) 2022 huzhenhong. All rights reserved.
|
||||
-->
|
||||
@ -59,8 +59,8 @@
|
||||
[scroll]="{ x: '2000px' }"
|
||||
[data]="service.$api_get_listRiskPage"
|
||||
[columns]="columns"
|
||||
[req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, params: reqParams }"
|
||||
[res]="{ reName: { list: 'data.records', total: 'data.total' } }"
|
||||
[req]="{ process: beforeReq }"
|
||||
[res]="{ reName: { list: 'data.records', total: 'data.total' } , process: afterRes}"
|
||||
[page]="{ show: true, showSize: true, pageSizes: [10, 20, 30, 50, 100, 200, 300, 500, 1000] }"
|
||||
[loading]="false"
|
||||
>
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
import { registerLocaleData } from '@angular/common';
|
||||
import { Router } from '@angular/router';
|
||||
import { Component, OnInit, ViewChild } from '@angular/core';
|
||||
import { STColumn, STComponent } from '@delon/abc/st';
|
||||
import { STColumn, STComponent, STRequestOptions } from '@delon/abc/st';
|
||||
import { SFComponent, SFDateWidgetSchema, SFSchema, SFSchemaEnum, SFSelectWidgetSchema, SFUISchema } from '@delon/form';
|
||||
import { ModalHelper, _HttpClient } from '@delon/theme';
|
||||
import { ShipperBaseService } from '@shared';
|
||||
@ -21,7 +21,9 @@ export class OrderManagementRiskComponent implements OnInit {
|
||||
schema: SFSchema = {};
|
||||
schemaView: SFSchema = {};
|
||||
auditMany = false;
|
||||
loading: boolean = true;
|
||||
auditId: any;
|
||||
auditIdR: any;
|
||||
isVisibleRE = false;
|
||||
resourceStatus: any;
|
||||
_$expand = false;
|
||||
@ -46,14 +48,6 @@ export class OrderManagementRiskComponent implements OnInit {
|
||||
* 查询参数
|
||||
*/
|
||||
get reqParams() {
|
||||
// const a:any = {};
|
||||
// if(this.resourceStatus) {
|
||||
// a.representationsStatus = this.resourceStatus
|
||||
// }
|
||||
// return {
|
||||
// ...a,
|
||||
// ...this.sf?.value,
|
||||
// };
|
||||
const a: any = {};
|
||||
if (this.resourceStatus) {
|
||||
a.representationsStatus = this.resourceStatus
|
||||
@ -69,6 +63,34 @@ export class OrderManagementRiskComponent implements OnInit {
|
||||
},
|
||||
};
|
||||
}
|
||||
beforeReq = (requestOptions: STRequestOptions) => {
|
||||
const a: any = {};
|
||||
if (this.resourceStatus) {
|
||||
a.representationsStatus = this.resourceStatus
|
||||
}
|
||||
const params: any = Object.assign({}, this.sf?.value || {});
|
||||
delete params._$expand;
|
||||
if (this.sf) {
|
||||
Object.assign(requestOptions.body, {
|
||||
...a,
|
||||
...params,
|
||||
createTime: {
|
||||
start: this.sf?.value?.createTime?.[0] || '',
|
||||
end: this.sf?.value?.createTime?.[1] || '',
|
||||
},
|
||||
});
|
||||
}
|
||||
this.loading = true;
|
||||
return requestOptions;
|
||||
};
|
||||
afterRes = (data: any[], rawData?: any) => {
|
||||
console.log(data)
|
||||
this.loading = false
|
||||
return data.map(item => ({
|
||||
...item,
|
||||
disabled: item.auditStatus !== '1'
|
||||
}));
|
||||
};
|
||||
search() {
|
||||
this.st?.load(1);
|
||||
this.getGoodsSourceStatistical()
|
||||
@ -312,7 +334,7 @@ export class OrderManagementRiskComponent implements OnInit {
|
||||
{
|
||||
text: '审核',
|
||||
click: _record => this.audit(_record),
|
||||
iif: item => item.representationsStatus == '1' || item.representationsStatus == '2',
|
||||
iif: item => item.auditStatus == '1' ,
|
||||
acl: { ability: ['ORDER-RISK-audit'] },
|
||||
},
|
||||
{
|
||||
@ -336,6 +358,14 @@ export class OrderManagementRiskComponent implements OnInit {
|
||||
widget: 'text'
|
||||
}
|
||||
},
|
||||
id: {
|
||||
title: '',
|
||||
type: 'string',
|
||||
default: this.auditIdR,
|
||||
ui: {
|
||||
hidden: true
|
||||
}
|
||||
},
|
||||
representationsCause: {
|
||||
title: '备注',
|
||||
type: 'string',
|
||||
@ -428,12 +458,13 @@ export class OrderManagementRiskComponent implements OnInit {
|
||||
idList.push(item.id);
|
||||
});
|
||||
} else {
|
||||
idList.push(this.sfView.value.billCode)
|
||||
idList.push(this.sfView.value.id)
|
||||
}
|
||||
const parms = {
|
||||
ids: idList,
|
||||
auditRemark: this.sfView.value.representationsCause,
|
||||
representationsStatus: 3,
|
||||
auditStatus: 2,
|
||||
};
|
||||
this.service.request(this.service.$api_get_listRisk_audit, parms).subscribe(res => {
|
||||
if (res) {
|
||||
@ -454,7 +485,7 @@ export class OrderManagementRiskComponent implements OnInit {
|
||||
idList.push(item.id);
|
||||
});
|
||||
} else {
|
||||
idList.push(this.sfView.value.billCode)
|
||||
idList.push(this.sfView.value.id)
|
||||
}
|
||||
if (!this.sfView.value.representationsCause) {
|
||||
this.service.msgSrv.error('拒绝原因为空!');
|
||||
@ -464,6 +495,7 @@ export class OrderManagementRiskComponent implements OnInit {
|
||||
ids: idList,
|
||||
auditRemark: this.sfView.value.representationsCause,
|
||||
representationsStatus: 4,
|
||||
auditStatus: 3,
|
||||
};
|
||||
this.service.request(this.service.$api_get_listRisk_audit, parms).subscribe(res => {
|
||||
if (res) {
|
||||
@ -480,6 +512,7 @@ export class OrderManagementRiskComponent implements OnInit {
|
||||
audit(item?: any) {
|
||||
if (item) {
|
||||
this.auditId = item.billCode;
|
||||
this.auditIdR = item.id;
|
||||
this.initSTAudit(1);
|
||||
this.isVisibleRE = true;
|
||||
} else {
|
||||
|
||||
@ -237,7 +237,7 @@ export class OrderManagementVehicleComponent extends BasicTableComponent impleme
|
||||
title: '所属项目',
|
||||
ui: {
|
||||
widget: 'select',
|
||||
placeholder: '请选择'
|
||||
placeholder: '请先选择货主',
|
||||
} as SFSelectWidgetSchema
|
||||
},
|
||||
loadingPlace: {
|
||||
|
||||
@ -424,7 +424,7 @@ export class orderManagementVoucherViewComponent implements OnInit {
|
||||
const params = [this.i.id];
|
||||
this.service.request(this.service.$api_get_billAuditPass, params).subscribe((res) => {
|
||||
if(res) {
|
||||
this.service.msgSrv.success('审核成功!')
|
||||
this.service.msgSrv.success('生成电子单据成功!')
|
||||
this.modal.destroy(true);
|
||||
}
|
||||
})
|
||||
|
||||
@ -425,7 +425,7 @@ export class VehicleSureArriveComponent implements OnInit {
|
||||
save(value: any): void {
|
||||
console.log(this.Status);
|
||||
console.log(value?.imgUrl3?.data?.fullFilePath);
|
||||
console.log(value?.imgUrl3.url);
|
||||
console.log(value?.imgUrl3?.url);
|
||||
|
||||
if (this.Status === 1) {
|
||||
if (!value.time) {
|
||||
@ -436,8 +436,8 @@ export class VehicleSureArriveComponent implements OnInit {
|
||||
id: this.i.id,
|
||||
imgUrl1: value?.imgUrl1?.data?.fullFilePath,
|
||||
imgUrl2: value?.imgUrl2?.data?.fullFilePath,
|
||||
setLading: value?.imgUrl3?.data?.fullFilePath || value?.imgUrl3.url,
|
||||
setPeoCarGoods: value?.imgUrl4?.data?.fullFilePath || value?.imgUrl4.url,
|
||||
setLading: value?.imgUrl3?.data?.fullFilePath || value?.imgUrl3?.url,
|
||||
setPeoCarGoods: value?.imgUrl4?.data?.fullFilePath || value?.imgUrl4?.url,
|
||||
time: value?.time
|
||||
};
|
||||
params.time = this.datePipe.transform(value.time, 'yyyy-MM-dd HH:mm:ss ');
|
||||
@ -466,8 +466,8 @@ export class VehicleSureArriveComponent implements OnInit {
|
||||
id: this.i?.id,
|
||||
imgUrl1: value?.imgUrl1?.data?.fullFilePath,
|
||||
imgUrl2: value?.imgUrl2?.data?.fullFilePath,
|
||||
setLading: value?.imgUrl3?.data?.fullFilePath || value?.imgUrl3.url,
|
||||
setPeoCarGoods: value?.imgUrl4?.data?.fullFilePath || value?.imgUrl4.url,
|
||||
setLading: value?.imgUrl3?.data?.fullFilePath || value?.imgUrl3?.url,
|
||||
setPeoCarGoods: value?.imgUrl4?.data?.fullFilePath || value?.imgUrl4?.url,
|
||||
time: value?.time,
|
||||
volume: this.data?.volume,
|
||||
weight: this.data?.weight
|
||||
|
||||
@ -51,8 +51,7 @@
|
||||
<se label="当前渠道销售"> 张三/13999999999 </se>
|
||||
<se label="渠道销售修改为" required>
|
||||
<nz-select ngModel="lucy" style="width: 100%">
|
||||
<nz-option nzValue="jack" nzLabel="Jack"></nz-option>
|
||||
<nz-option nzValue="lucy" nzLabel="Lucy"></nz-option>
|
||||
<nz-option [nzValue]="item.value" [nzLabel]="item.label" *ngFor="let item of cannels"></nz-option>
|
||||
</nz-select>
|
||||
</se>
|
||||
<se label="备注" required>
|
||||
@ -60,20 +59,11 @@
|
||||
</se>
|
||||
<se label="一并转移的客户">
|
||||
<p style="margin-top: 8px">已选(0)</p>
|
||||
<nz-table #rowSelectionTable [nzData]="customers" nzSize="small" nzBordered>
|
||||
<thead>
|
||||
<tr>
|
||||
<th [nzChecked]="false"></th>
|
||||
<th>客户名称</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr *ngFor="let data of rowSelectionTable.data">
|
||||
<td [nzChecked]="data.checked"></td>
|
||||
<td>{{ data.name }}</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</nz-table>
|
||||
<st #rest [data]="service.$api_get_enterprice_rel_list" [columns]="[
|
||||
{ title: '', index: 'key', type: 'checkbox' },
|
||||
{ title: '客户名称', index: 'enterpriceName' }
|
||||
]" [req]="{ process: beforeReq }" [loading]="service.http.loading" [page]="{show:false}">
|
||||
</st>
|
||||
</se>
|
||||
<se label="生效节点" required>
|
||||
<nz-radio-group>
|
||||
|
||||
@ -30,15 +30,12 @@ export class PartnerListComponent {
|
||||
@ViewChild('editCannel', { static: true })
|
||||
editCannel: any;
|
||||
customers: any[] = [];
|
||||
cannels: any[] = [];
|
||||
|
||||
selectItem: any = {};
|
||||
|
||||
constructor(public service: PartnerListService, private nzModalService: NzModalService, private router: Router) {
|
||||
this.service.getRebateConfig().subscribe(res => {
|
||||
if (res) {
|
||||
this.customers = res;
|
||||
}
|
||||
});
|
||||
this.loadSelectOptions();
|
||||
}
|
||||
|
||||
beforeReq = (requestOptions: STRequestOptions) => {
|
||||
@ -52,6 +49,19 @@ export class PartnerListComponent {
|
||||
return requestOptions;
|
||||
};
|
||||
|
||||
loadSelectOptions(){
|
||||
this.service.getRebateConfig().subscribe(res => {
|
||||
if (res) {
|
||||
this.customers = res;
|
||||
}
|
||||
});
|
||||
this.service.getChannel().subscribe(res => {
|
||||
if (res) {
|
||||
this.customers = res;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
auditPartner(item: any) {
|
||||
const modal = this.nzModalService.create({
|
||||
nzTitle: '审核',
|
||||
@ -371,7 +381,7 @@ export class PartnerListComponent {
|
||||
{
|
||||
title: '操作',
|
||||
fixed: 'right',
|
||||
width: '140px',
|
||||
width: '150px',
|
||||
buttons: [
|
||||
{ type: 'divider' },
|
||||
{
|
||||
|
||||
@ -27,6 +27,8 @@ export class PartnerListService extends ShipperBaseService {
|
||||
$api_resend_crm = '/api/mdc/partner/reSendCrm';
|
||||
// 查询合伙人修改渠道渠道销售记录
|
||||
$api_get_personal_channel_list = '/api/mdc/partnerChannelRelLog/list/page';
|
||||
// 查询客户关系列表-不分页
|
||||
$api_get_enterprice_rel_list = '/api/mdc/enterpriceRelLog/list';
|
||||
// 冻结/启用企业业
|
||||
$api_lock_freight = '/api/mdc/cuc/enterpriseInfo/operate/lock';
|
||||
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
* @Author : Shiming
|
||||
* @Date : 2022-02-24 20:19:51
|
||||
* @LastEditors : Shiming
|
||||
* @LastEditTime : 2022-03-10 10:27:21
|
||||
* @LastEditTime : 2022-03-23 19:57:34
|
||||
* @FilePath : \\tms-obc-web\\src\\app\\routes\\supply-management\\components\\tran-agreement\\tran-agreement.component.ts
|
||||
* Copyright (C) 2022 huzhenhong. All rights reserved.
|
||||
*/
|
||||
@ -28,111 +28,136 @@ import { SupplyManagementService } from '../../services/supply-management.servic
|
||||
styleUrls: ['./tran-agreement.component.less']
|
||||
})
|
||||
export class TranAgreementComponent {
|
||||
enterpriseInfo:any; // 网络货运人
|
||||
type:any;
|
||||
enterpriseInfo: any; // 网络货运人
|
||||
type: any;
|
||||
object: any;
|
||||
agreement:any;
|
||||
envCache:any;
|
||||
shipperName:any;
|
||||
constructor(private modal: NzModalRef,public service: SupplyManagementService,) {
|
||||
|
||||
}
|
||||
agreement: any;
|
||||
envCache: any;
|
||||
shipperName: any;
|
||||
constructor(private modal: NzModalRef, public service: SupplyManagementService) {}
|
||||
|
||||
ngOnInit() {
|
||||
console.log(this.object)
|
||||
// 获取托运人承运人信息
|
||||
this.service.request(this.service.$api_getContractAtr,{id:this.object?.shipperAppUserId}).subscribe(res => {
|
||||
if (res) {
|
||||
this.enterpriseInfo = res
|
||||
this.getContent();
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
console.log(this.object);
|
||||
// 获取托运人承运人信息
|
||||
this.service.request(this.service.$api_getContractAtr, { id: this.object?.shipperAppUserId }).subscribe(res => {
|
||||
if (res) {
|
||||
this.enterpriseInfo = res;
|
||||
this.getContent();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
getContent() {
|
||||
let params:any;
|
||||
if(this.type ==='onecar'){
|
||||
|
||||
params = {
|
||||
contractType:'1',
|
||||
resourceType: '1',
|
||||
signingObject: '1',
|
||||
templateType: 'MX',
|
||||
parametersDTO: {
|
||||
contractCode:'',
|
||||
shipperLegalPersonName:this.enterpriseInfo.legalPersonName || '', //托运法定代表人
|
||||
carrierLegalPersonName:this.enterpriseInfo.netLegalPersonName || '', //承运法定代表人
|
||||
shipperName:this?.shipperName || '', //托运人
|
||||
carrierName:this.object?.enterpriseInfoName || '', //承运人
|
||||
consignorInfo: `${this.object?.unLoadingPlaceDTOList[0]?.appUserName || ''} ${this.object?.unLoadingPlaceDTOList[0]?.contractTelephone || ''}`, // 发货信息
|
||||
consignorAddress: this.object?.unLoadingPlaceDTOList[0].detailedAddress || '', // 发货地址
|
||||
consignorDate: this.object?.loadingTime || '', // 发货时间
|
||||
consigneeInfo: `${this.object?.unLoadingPlaceDTOList[this.object?.unLoadingPlaceDTOList.length-1].appUserName} ${this.object?.unLoadingPlaceDTOList[this.object?.unLoadingPlaceDTOList.length-1].contractTelephone}`, // 收货信息
|
||||
consigneeDate: this.object?.unloadingTime || '', // 收货时间
|
||||
consigneeAddress: this.object?.unLoadingPlaceDTOList[this.object?.unLoadingPlaceDTOList.length-1].detailedAddress || '', // 收货地址
|
||||
goodsName:this.object?.goodsInfoDTOList[0].goodsName || '', // 货物名称
|
||||
shippingType:'整车运输',
|
||||
consignmentVolume:`${this.object?.goodsInfoDTOList[0]?.weight || '-'}吨/${this.object?.goodsInfoDTOList[0]?.volume || '-'}方/${this.object?.goodsInfoDTOList[0]?.number || '-'}件`, //托运量
|
||||
transporterInfo:'', //运输方信息
|
||||
freightAmount:this.object?.total || '', // 订单运费金额(元)
|
||||
pre:this.object?.expenseDTOList?.filter((item:any) => item.expenseCode === 'PRE')[0].price || '', //预付
|
||||
rece:this.object?.expenseDTOList?.filter((item:any) => item.expenseCode === 'RECE')[0].price || '',// 到付
|
||||
back:this.object?.expenseDTOList?.filter((item:any) => item.expenseCode === 'BACK')[0].price || '', // 回单付
|
||||
lunarKnot:0,
|
||||
total:this.object?.subtotal || '', // 合计(元)
|
||||
paymentTime:`到货后${this.object?.paymentDays || ''}天`, // 承诺支付运费时间
|
||||
year:new Date().getFullYear() || '', // 签约年份
|
||||
month:new Date().getMonth()+1 || '', // 签约月份
|
||||
day:new Date().getDate() || '', // 签约日期
|
||||
}
|
||||
}
|
||||
} else if(this.type ==='bulk'){
|
||||
let params: any;
|
||||
if (this.type === 'onecar') {
|
||||
params = {
|
||||
contractType:'1',
|
||||
contractType: '1',
|
||||
resourceType: '1',
|
||||
signingObject: '1',
|
||||
templateType: 'MX',
|
||||
parametersDTO: {
|
||||
contractCode: '',
|
||||
shipperLegalPersonName: this.enterpriseInfo.legalPersonName || '', //托运法定代表人
|
||||
carrierLegalPersonName: this.enterpriseInfo.netLegalPersonName || '', //承运法定代表人
|
||||
shipperName: this?.shipperName || '', //托运人
|
||||
carrierName: this.object?.enterpriseInfoName || '', //承运人
|
||||
consignorInfo: `${this.object?.unLoadingPlaceDTOList[0]?.appUserName || ''} ${
|
||||
this.object?.unLoadingPlaceDTOList[0]?.contractTelephone || ''
|
||||
}`, // 发货信息
|
||||
consignorAddress: this.object?.unLoadingPlaceDTOList[0].detailedAddress || '', // 发货地址
|
||||
consignorDate: this.object?.loadingTime || '', // 发货时间
|
||||
consigneeInfo: `${this.object?.unLoadingPlaceDTOList[this.object?.unLoadingPlaceDTOList.length - 1].appUserName} ${
|
||||
this.object?.unLoadingPlaceDTOList[this.object?.unLoadingPlaceDTOList.length - 1].contractTelephone
|
||||
}`, // 收货信息
|
||||
consigneeDate: this.object?.unloadingTime || '', // 收货时间
|
||||
consigneeAddress: this.object?.unLoadingPlaceDTOList[this.object?.unLoadingPlaceDTOList.length - 1].detailedAddress || '', // 收货地址
|
||||
goodsName: this.object?.goodsInfoDTOList[0].goodsName || '', // 货物名称
|
||||
shippingType: '整车运输',
|
||||
consignmentVolume: `${this.object?.goodsInfoDTOList[0]?.weight || '-'}吨/${this.object?.goodsInfoDTOList[0]?.volume || '-'}方/${
|
||||
this.object?.goodsInfoDTOList[0]?.number || '-'
|
||||
}件`, //托运量
|
||||
transporterInfo: '', //运输方信息
|
||||
freightAmount: this.object?.total || '', // 订单运费金额(元)
|
||||
pre: this.object?.expenseDTOList?.filter((item: any) => item.expenseCode === 'PRE')[0].price || '', //预付
|
||||
rece: this.object?.expenseDTOList?.filter((item: any) => item.expenseCode === 'RECE')[0].price || '', // 到付
|
||||
back: this.object?.expenseDTOList?.filter((item: any) => item.expenseCode === 'BACK')[0].price || '', // 回单付
|
||||
lunarKnot: 0,
|
||||
total: this.object?.subtotal || '', // 合计(元)
|
||||
paymentTime: `到货后${this.object?.paymentDays || ''}天`, // 承诺支付运费时间
|
||||
year: new Date().getFullYear() || '', // 签约年份
|
||||
month: new Date().getMonth() + 1 || '', // 签约月份
|
||||
day: new Date().getDate() || '' // 签约日期
|
||||
}
|
||||
};
|
||||
} else if (this.type === 'bulk') {
|
||||
params = {
|
||||
contractType: '1',
|
||||
resourceType: '2',
|
||||
signingObject: '1',
|
||||
templateType: 'MX',
|
||||
parametersDTO: {
|
||||
contractCode:'',
|
||||
shipperName:this?.shipperName || '', //托运人
|
||||
carrierName:this.object?.enterpriseInfoName || '', //承运人
|
||||
shipperLegalPersonName:this.enterpriseInfo.legalPersonName || '', //托运法定代表人
|
||||
carrierLegalPersonName:this.enterpriseInfo.netLegalPersonName || '', //承运法定代表人
|
||||
consignorInfo: `${this.object.unLoadingPlaceDTOList[0]?.appUserName || ''} ${this.object.unLoadingPlaceDTOList[0]?.contractTelephone || ''}`, // 发货信息
|
||||
contractCode: '',
|
||||
shipperName: this?.shipperName || '', //托运人
|
||||
carrierName: this.object?.enterpriseInfoName || '', //承运人
|
||||
shipperLegalPersonName: this.enterpriseInfo.legalPersonName || '', //托运法定代表人
|
||||
carrierLegalPersonName: this.enterpriseInfo.netLegalPersonName || '', //承运法定代表人
|
||||
consignorInfo: `${this.object.unLoadingPlaceDTOList[0]?.appUserName || ''} ${
|
||||
this.object.unLoadingPlaceDTOList[0]?.contractTelephone || ''
|
||||
}`, // 发货信息
|
||||
consignorAddress: this.object.unLoadingPlaceDTOList[0].detailedAddress, // 发货地址
|
||||
consignorDate: '', // 发货时间
|
||||
consigneeInfo: `${this.object.unLoadingPlaceDTOList[this.object.unLoadingPlaceDTOList.length-1]?.appUserName || ''} ${this.object.unLoadingPlaceDTOList[this.object.unLoadingPlaceDTOList.length-1]?.contractTelephone || ''}`, // 收货信息
|
||||
consigneeInfo: `${this.object.unLoadingPlaceDTOList[this.object.unLoadingPlaceDTOList.length - 1]?.appUserName || ''} ${
|
||||
this.object.unLoadingPlaceDTOList[this.object.unLoadingPlaceDTOList.length - 1]?.contractTelephone || ''
|
||||
}`, // 收货信息
|
||||
consigneeDate: '', // 收货时间
|
||||
consigneeAddress: this.object.unLoadingPlaceDTOList[this.object.unLoadingPlaceDTOList.length-1]?.detailedAddress || '', // 收货地址
|
||||
goodsName:this.object.goodsInfoDTOList[0]?.goodsName || '', // 货物名称
|
||||
shippingType:'大宗运输',
|
||||
consignmentVolume:`${this.object?.goodsInfoDTOList?.[0]?.weight|| '-'}吨/${this.object?.goodsInfoDTOList?.[0]?.volume || '-'}方/${this.object.goodsInfoDTOList?.[0]?.number || '-'}车`, //托运量
|
||||
transporterInfo:'', //运输方信息
|
||||
freightAmount:'', // 订单运费金额(元)
|
||||
pre:'', //预付
|
||||
rece:'',// 到付
|
||||
back:'',// 回单付
|
||||
lunarKnot:'',
|
||||
total:'', // 合计(元)
|
||||
paymentTime:`到货后${this.object?.paymentDays || ''}天`, // 承诺支付运费时间
|
||||
year:new Date().getFullYear() || '', // 签约年份
|
||||
month:new Date().getMonth()+1 || '', // 签约月份
|
||||
day:new Date().getDate() || '', // 签约日期
|
||||
},
|
||||
}
|
||||
consigneeAddress: this.object.unLoadingPlaceDTOList[this.object.unLoadingPlaceDTOList.length - 1]?.detailedAddress || '', // 收货地址
|
||||
goodsName: this.object.goodsInfoDTOList[0]?.goodsName || '', // 货物名称
|
||||
shippingType: '大宗运输',
|
||||
consignmentVolume: `${this.object?.goodsInfoDTOList?.[0]?.weight || '-'}吨/${
|
||||
this.object?.goodsInfoDTOList?.[0]?.volume || '-'
|
||||
}方/${this.object.goodsInfoDTOList?.[0]?.number || '-'}车`, //托运量
|
||||
transporterInfo: '', //运输方信息
|
||||
freightAmount: '', // 订单运费金额(元)
|
||||
pre: '', //预付
|
||||
rece: '', // 到付
|
||||
back: '', // 回单付
|
||||
lunarKnot: '',
|
||||
total: '', // 合计(元)
|
||||
paymentTime: `到货后${this.object?.paymentDays || ''}天`, // 承诺支付运费时间
|
||||
year: new Date().getFullYear() || '', // 签约年份
|
||||
month: new Date().getMonth() + 1 || '', // 签约月份
|
||||
day: new Date().getDate() || '' // 签约日期
|
||||
}
|
||||
};
|
||||
}
|
||||
console.log(params)
|
||||
this.service.request(this.service.$api_getContractContent,params).subscribe((res) => {
|
||||
if (params.parametersDTO.freightAmount) {
|
||||
params.parametersDTO.freightAmount = this.toThousands(params.parametersDTO.freightAmount);
|
||||
}
|
||||
if (params.parametersDTO.pre) {
|
||||
params.parametersDTO.pre = this.toThousands(params.parametersDTO.pre);
|
||||
}
|
||||
if (params.parametersDTO.rece) {
|
||||
params.parametersDTO.rece = this.toThousands(params.parametersDTO.rece);
|
||||
}
|
||||
if (params.parametersDTO.back) {
|
||||
params.parametersDTO.back = this.toThousands(params.parametersDTO.back);
|
||||
}
|
||||
if (params.parametersDTO.total) {
|
||||
params.parametersDTO.total = this.toThousands(params.parametersDTO.total);
|
||||
}
|
||||
console.log(params);
|
||||
this.service.request(this.service.$api_getContractContent, params).subscribe(res => {
|
||||
if (res) {
|
||||
this.agreement = res.contractContent;
|
||||
}
|
||||
});
|
||||
}
|
||||
handleOk(){
|
||||
|
||||
toThousands(num: any) {
|
||||
let str = num.toString();
|
||||
return '¥' + str.replace(/(\d)(?=(?:\d{3})+$)/g, '$1,');
|
||||
}
|
||||
handleOk() {
|
||||
this.modal.close(true);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -425,7 +425,7 @@ export class SupplyManagementVehicleComponent implements OnInit {
|
||||
title: '所属项目',
|
||||
ui: {
|
||||
widget: 'select',
|
||||
placeholder: '请选择',
|
||||
placeholder: '请先选择货主',
|
||||
visibleIf: {
|
||||
_$expand: (value: boolean) => value
|
||||
}
|
||||
|
||||
@ -90,6 +90,7 @@ export class CtcCaptatinAddComponent implements OnInit {
|
||||
widget: this.i.id ? 'text' : '',
|
||||
placeholder: '请输入手机号',
|
||||
blur: () => {
|
||||
if(this.sf?.value?.mobile) {
|
||||
this.service.request(this.service.$api_getByMobile, { mobile: this.sf.value.mobile }).subscribe(res => {
|
||||
if (res.certificateNumber) {
|
||||
this.readFlag = true
|
||||
@ -128,7 +129,8 @@ export class CtcCaptatinAddComponent implements OnInit {
|
||||
this.detailData = {}
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
default: this.detailData.mobile
|
||||
},
|
||||
@ -145,6 +147,7 @@ export class CtcCaptatinAddComponent implements OnInit {
|
||||
bankCardNo: {
|
||||
title: '银行卡号',
|
||||
type: 'string',
|
||||
maxLength: 20,
|
||||
ui: {
|
||||
widget: this.i.id ? 'text' : '',
|
||||
placeholder: '请输入银行卡号',
|
||||
@ -161,6 +164,7 @@ export class CtcCaptatinAddComponent implements OnInit {
|
||||
bankName: {
|
||||
title: '开户行',
|
||||
type: 'string',
|
||||
maxLength: 35,
|
||||
ui: {
|
||||
widget: this.i.id ? 'text' : '',
|
||||
placeholder: '请输入开户行',
|
||||
|
||||
@ -152,7 +152,7 @@ export class WaybillManagementAbnormalAppearComponent implements OnInit {
|
||||
title: '所属项目',
|
||||
ui: {
|
||||
widget: 'select',
|
||||
placeholder: '请选择',
|
||||
placeholder: '请先选择货主',
|
||||
visibleIf: {
|
||||
_$expand: (value: boolean) => value
|
||||
}
|
||||
|
||||
@ -116,7 +116,7 @@ export class WaybillManagementVehicleComponent implements OnInit {
|
||||
title: '所属项目',
|
||||
ui: {
|
||||
widget: 'select',
|
||||
placeholder: '请选择',
|
||||
placeholder: '请先选择货主',
|
||||
visibleIf: {
|
||||
_$expand: (value: boolean) => value
|
||||
},
|
||||
|
||||
@ -21,6 +21,8 @@ export class ShipperBaseService extends BaseService {
|
||||
$api_getSysConfigTreeByParentFullKey = `/api/mdc/pbc/sysConfig/getSysConfigTreeByParentFullKey`;
|
||||
// 获取全部返佣配置
|
||||
$api_get_rebate_config = `/api/mdc/rebateConfig/list/listRebateConfig`;
|
||||
// 获取渠道销售管理集合
|
||||
$api_get_channel = `/api/mdc/channelSalesManagement/list/listChannelSalesManagement`;
|
||||
constructor(public injector: Injector) {
|
||||
super(injector);
|
||||
}
|
||||
@ -254,4 +256,23 @@ export class ShipperBaseService extends BaseService {
|
||||
})
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取渠道销售管理集合
|
||||
* @returns
|
||||
*/
|
||||
getChannel() {
|
||||
const params = {};
|
||||
return this.request(this.$api_get_channel, params, 'POST').pipe(
|
||||
map(res => {
|
||||
if (res) {
|
||||
return res.map((m: any) => {
|
||||
return { label: m.name, value: m.id };
|
||||
});
|
||||
} else {
|
||||
return [];
|
||||
}
|
||||
})
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user