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

This commit is contained in:
Taric Xin
2022-03-25 14:51:49 +08:00
17 changed files with 254 additions and 46 deletions

View File

@ -186,6 +186,13 @@ export class OrderManagementBulkComponent implements OnInit {
placeholder: '最多100个单号空号隔开', placeholder: '最多100个单号空号隔开',
} }
}, },
wayBillCode: {
type: 'string',
title: '运单号',
ui: {
placeholder: '最多100个单号空号隔开',
}
},
resourceCode: { resourceCode: {
type: 'string', type: 'string',
title: '货源编号' title: '货源编号'
@ -199,6 +206,9 @@ export class OrderManagementBulkComponent implements OnInit {
searchDebounceTime: 300, searchDebounceTime: 300,
searchLoadingText: '搜索中...', searchLoadingText: '搜索中...',
allowClear: true, allowClear: true,
visibleIf: {
_$expand: (value: boolean) => value
},
onSearch: (q: any) => { onSearch: (q: any) => {
let str =q.replace(/^\s+|\s+$/g,""); let str =q.replace(/^\s+|\s+$/g,"");
if (str) { if (str) {

View File

@ -4,7 +4,7 @@
* @Author : Shiming * @Author : Shiming
* @Date : 2022-01-12 10:52:50 * @Date : 2022-01-12 10:52:50
* @LastEditors : Shiming * @LastEditors : Shiming
* @LastEditTime : 2022-03-24 09:48:40 * @LastEditTime : 2022-03-25 13:44:42
* @FilePath : \\tms-obc-web\\src\\app\\routes\\order-management\\components\\compliance-audit\\compliance-audit.component.html * @FilePath : \\tms-obc-web\\src\\app\\routes\\order-management\\components\\compliance-audit\\compliance-audit.component.html
* Copyright (C) 2022 huzhenhong. All rights reserved. * Copyright (C) 2022 huzhenhong. All rights reserved.
--> -->
@ -89,11 +89,12 @@
<ng-template st-row="billCode" let-item let-index="index"> <ng-template st-row="billCode" let-item let-index="index">
<a *ngIf="item.billType == '1'" [routerLink]="'/order-management/vehicle/vehicle-detail/' + item.id">{{ item.billCode }}</a> <a *ngIf="item.billType == '1'" [routerLink]="'/order-management/vehicle/vehicle-detail/' + item.id">{{ item.billCode }}</a>
<a *ngIf="item.billType == '2'" [routerLink]="'/order-management/bulk/bulk-detail/' + item.id">{{ item.billCode }}</a> <a *ngIf="item.billType == '2'" [routerLink]="'/order-management/bulk/bulk-detail/' + item.id">{{ item.billCode }}</a>
<a *ngIf="item.billType == '3'" [routerLink]="'/order-management/vehicle/vehicle-detail/' + item.id">{{ item.billCode }}</a>
<div> <div>
<span>{{ item?.billStatusLabel }}</span> <span>{{ item?.billStatusLabel }}</span>
</div> </div>
<div> <div>
<span >{{item?.billTypeLabel}}{{item?.serviceTypeLabel}}</span> <span >{{item?.billTypeLabel}}{{item?.serviceTypeLabel === item?.billTypeLabel ? '':item?.serviceTypeLabel}}</span>
</div> </div>
</ng-template> </ng-template>
<ng-template st-row="goodsName" let-item let-index="index"> <ng-template st-row="goodsName" let-item let-index="index">

View File

@ -10,6 +10,7 @@ import { ConfirReceiptComponent } from '../../modal/bulk/confir-receipt/confir-r
import { of } from 'rxjs'; import { of } from 'rxjs';
import { ShipperBaseService } from '@shared'; import { ShipperBaseService } from '@shared';
import { Router } from '@angular/router'; import { Router } from '@angular/router';
import { OneCarOrderAppealComponent } from '../../modal/audit/appeal/appeal.component';
@Component({ @Component({
selector: 'app-order-management-compliance-audit', selector: 'app-order-management-compliance-audit',
@ -397,7 +398,7 @@ export class OrderManagementComplianceAuditComponent implements OnInit {
buttons: [ buttons: [
{ {
text: '查看申诉记录', text: '查看申诉记录',
click: _record => console.log('1'), click: _record => this.appeal(_record),
// iif: item => item.billStatus == '5' // iif: item => item.billStatus == '5'
}, },
{ {
@ -489,6 +490,23 @@ export class OrderManagementComplianceAuditComponent implements OnInit {
get queryFieldCount(): number { get queryFieldCount(): number {
return Object.keys(this.schema?.properties || {}).length; return Object.keys(this.schema?.properties || {}).length;
} }
// 申诉记录
appeal(item: any) {
const modalRef = this.modal.create({
nzTitle: '申诉',
nzContent: OneCarOrderAppealComponent,
nzComponentParams: {
i: item
},
nzFooter: null
});
modalRef.afterClose.subscribe((res) => {
if(res){
this.resetSF;
this.st.load();
}
});
}
/** /**
* 浮动费用查看 * 浮动费用查看
*/ */

View File

@ -4,7 +4,7 @@
* @Author : Shiming * @Author : Shiming
* @Date : 2022-01-12 10:52:50 * @Date : 2022-01-12 10:52:50
* @LastEditors : Shiming * @LastEditors : Shiming
* @LastEditTime : 2022-03-25 13:18:34 * @LastEditTime : 2022-03-25 13:44:11
* @FilePath : \\tms-obc-web\\src\\app\\routes\\order-management\\components\\receipts-audit\\receipts-audit.component.html * @FilePath : \\tms-obc-web\\src\\app\\routes\\order-management\\components\\receipts-audit\\receipts-audit.component.html
* Copyright (C) 2022 huzhenhong. All rights reserved. * Copyright (C) 2022 huzhenhong. All rights reserved.
--> -->
@ -101,6 +101,7 @@
<!-- <div>{{ item.billCode }}</div> --> <!-- <div>{{ item.billCode }}</div> -->
<a *ngIf="item.resourceType == '1'" [routerLink]="'/order-management/vehicle/vehicle-detail/' + item.id">{{ item.billCode }}</a> <a *ngIf="item.resourceType == '1'" [routerLink]="'/order-management/vehicle/vehicle-detail/' + item.id">{{ item.billCode }}</a>
<a *ngIf="item.resourceType == '2'" [routerLink]="'/order-management/bulk/bulk-detail/' + item.id">{{ item.billCode }}</a> <a *ngIf="item.resourceType == '2'" [routerLink]="'/order-management/bulk/bulk-detail/' + item.id">{{ item.billCode }}</a>
<a *ngIf="item.resourceType == '3'" [routerLink]="'/order-management/vehicle/vehicle-detail/' + item.id">{{ item.billCode }}</a>
<div> <div>
<span>{{item?.billStatusLabel}}</span> <span>{{item?.billStatusLabel}}</span>
</div> </div>

View File

@ -203,6 +203,13 @@ export class OrderManagementVehicleComponent extends BasicTableComponent impleme
placeholder: '最多100个单号空号隔开' placeholder: '最多100个单号空号隔开'
} }
}, },
wayBillCode: {
type: 'string',
title: '运单号',
ui: {
placeholder: '最多100个单号空号隔开',
}
},
resourceCode: { resourceCode: {
type: 'string', type: 'string',
title: '货源编号' title: '货源编号'

View File

@ -0,0 +1,7 @@
<nz-spin *ngIf="!i" class="modal-spin"></nz-spin>
<sf #sf mode="edit" [schema]="schema" [ui]="ui" button="none"></sf>
<div class="modal-footer">
<button nz-button type="button" (click)="close()">关闭</button>
<button nz-button type="submit" nzType="primary" (click)="save(sf.value)" [disabled]="!sf.valid" [nzLoading]="http.loading">确定</button>
</div>

View File

@ -0,0 +1,131 @@
import { Component, OnInit, ViewChild } from '@angular/core';
import { apiConf } from '@conf/api.conf';
import {
SFComponent,
SFCustomWidgetSchema,
SFNumberWidgetSchema,
SFRadioWidgetSchema,
SFSchema,
SFSelectWidgetSchema,
SFTextareaWidgetSchema,
SFUISchema,
SFUploadWidgetSchema
} from '@delon/form';
import { _HttpClient } from '@delon/theme';
import { NzMessageService } from 'ng-zorro-antd/message';
import { NzModalRef, NzModalService } from 'ng-zorro-antd/modal';
import { Observable, Observer } from 'rxjs';
import { OrderManagementService } from '../../../services/order-management.service';
@Component({
selector: 'app-order-management-appeal',
templateUrl: './appeal.component.html'
})
export class OneCarOrderAppealComponent implements OnInit {
record: any = {};
i: any;
@ViewChild('sf', { static: false }) sf!: SFComponent;
schema: SFSchema = {};
ui: SFUISchema = {};
constructor(
private modalRef: NzModalRef,
private modal: NzModalService,
private msgSrv: NzMessageService,
public http: _HttpClient,
public service: OrderManagementService
) {}
ngOnInit(): void {
this.initSF();
}
initSF() {
this.schema = {
properties: {
abnormalCause: {
type: 'string',
title: '异常原因',
default: this.i.abnormalCause,
readOnly: true,
ui: {
widget: 'textarea',
autosize: { minRows: 4, maxRows: 6 }
} as SFTextareaWidgetSchema
},
representationsCause: {
type: 'string',
title: '申诉原因',
ui: {
widget: 'dict-select',
params: { dictKey: 'bill:representation:reason' },
containsAllLabel: false,
placeholder: '请选择',
errors: { required: '请选择' }
}
},
representationsDescribe: {
type: 'string',
title: '申诉描述',
maxLength: 100,
ui: {
widget: 'textarea',
autosize: { minRows: 4, maxRows: 6 }
} as SFTextareaWidgetSchema
},
fileArr: {
type: 'string',
title: '上传凭证',
ui: {
action: apiConf.fileUpload,
accept: 'image/png,image/jpeg,image/jpg',
limit: 5,
limitFileCount: 5,
resReName: 'data.fullFilePath',
urlReName: 'data.fullFilePath',
widget: 'upload',
descriptionI18n: '不超过5张单张大小不超过5M支持.jpg、.jpeg和 .png格式',
name: 'multipartFile',
multiple: true,
listType: 'picture-card',
beforeUpload: (file: any, _fileList: any) => {
return new Observable((observer: Observer<boolean>) => {
const isLt2M = file.size / 1024 / 1024 < 5;
if (!isLt2M) {
this.service.msgSrv.warning('图片大小超过5M!');
observer.complete();
return;
}
observer.next(isLt2M);
observer.complete();
});
}
} as SFUploadWidgetSchema
}
},
required: ['representationsCause', 'representationsDescribe']
};
this.ui = {
'*': {
spanLabelFixed: 100,
grid: { span: 20 }
}
};
}
save(value: any): void {
// if (!this.sf.valid){
// this.sf.validator({ emitError: true });
// return;
// }
// this.service.request(this.service.$api_addCompleteVehicleRepresentations, { id: this.i?.id, ...this.sf.value }).subscribe(res => {
// if (res) {
// this.service.msgSrv.success('申诉成功!');
// this.modalRef.close(true);
// } else {
// this.service.msgSrv.error(res.msg);
// }
// });
}
close(): void {
this.modalRef.destroy();
}
}

View File

@ -4,7 +4,7 @@
* @Author : Shiming * @Author : Shiming
* @Date : 2022-01-06 09:24:00 * @Date : 2022-01-06 09:24:00
* @LastEditors : Shiming * @LastEditors : Shiming
* @LastEditTime : 2022-02-22 13:55:06 * @LastEditTime : 2022-03-25 14:10:36
* @FilePath : \\tms-obc-web\\src\\app\\routes\\order-management\\order-management.module.ts * @FilePath : \\tms-obc-web\\src\\app\\routes\\order-management\\order-management.module.ts
* Copyright (C) 2022 huzhenhong. All rights reserved. * Copyright (C) 2022 huzhenhong. All rights reserved.
*/ */
@ -24,6 +24,7 @@ import { OrderManagementVehicleDetailChangeComponent } from './components/vehicl
import { OrderManagementVehicleDetailComponent } from './components/vehicle-detail/vehicle-detail.component'; import { OrderManagementVehicleDetailComponent } from './components/vehicle-detail/vehicle-detail.component';
import { OrderManagementVehicleComponent } from './components/vehicle/vehicle.component'; import { OrderManagementVehicleComponent } from './components/vehicle/vehicle.component';
import { OneCarOrderAppealComponent } from './modal/audit/appeal/appeal.component';
import { orderManagementVoucherViewComponent } from './modal/audit/voucher-view/voucher-view.component'; import { orderManagementVoucherViewComponent } from './modal/audit/voucher-view/voucher-view.component';
import { ConfirReceiptComponent } from './modal/bulk/confir-receipt/confir-receipt.component'; import { ConfirReceiptComponent } from './modal/bulk/confir-receipt/confir-receipt.component';
import { UpdateFreightComponent } from './modal/bulk/update-freight/update-freight.component'; import { UpdateFreightComponent } from './modal/bulk/update-freight/update-freight.component';
@ -64,7 +65,8 @@ const COMPONENTS: Type<void>[] = [
orderManagementVoucherViewComponent, orderManagementVoucherViewComponent,
OrderManagementComplianceAuditComponent, OrderManagementComplianceAuditComponent,
OneCarOrderCancelConfirmComponent, OneCarOrderCancelConfirmComponent,
OneCarOrderViewtrackComponent OneCarOrderViewtrackComponent,
OneCarOrderAppealComponent
]; ];
@NgModule({ @NgModule({

View File

@ -4,7 +4,7 @@
* @Author : Shiming * @Author : Shiming
* @Date : 2021-12-27 21:08:36 * @Date : 2021-12-27 21:08:36
* @LastEditors : Shiming * @LastEditors : Shiming
* @LastEditTime : 2022-02-24 10:50:46 * @LastEditTime : 2022-03-25 13:56:06
* @FilePath : \\tms-obc-web\\src\\app\\routes\\passport\\components\\order-agreement\\order-agreement.component.html * @FilePath : \\tms-obc-web\\src\\app\\routes\\passport\\components\\order-agreement\\order-agreement.component.html
* Copyright (C) 2022 huzhenhong. All rights reserved. * Copyright (C) 2022 huzhenhong. All rights reserved.
--> -->
@ -13,7 +13,7 @@
<h1 class="mb-md mt-md"> <h1 class="mb-md mt-md">
{{ agreementContent?.agreementName }} {{ agreementContent?.agreementName }}
</h1> </h1>
<p class="md">最新版本生效日期:{{ agreementContent?.modifyTime }}</p> <p class="md" *ngIf="agreementContent?.modifyTime">最新版本生效日期:{{ agreementContent?.modifyTime }}</p>
<div [innerHTML]="agreementContent?.agreementContent | safehtml"></div> <div [innerHTML]="agreementContent?.agreementContent || agreementContent?.contractContent | safehtml"></div>
</div> </div>
</div> </div>

View File

@ -4,7 +4,7 @@
* @Author : Shiming * @Author : Shiming
* @Date : 2022-03-14 14:17:38 * @Date : 2022-03-14 14:17:38
* @LastEditors : Shiming * @LastEditors : Shiming
* @LastEditTime : 2022-03-24 19:19:17 * @LastEditTime : 2022-03-25 13:52:54
* @FilePath : \\tms-obc-web\\src\\app\\routes\\passport\\components\\order-agreement\\order-agreement.component.ts * @FilePath : \\tms-obc-web\\src\\app\\routes\\passport\\components\\order-agreement\\order-agreement.component.ts
* Copyright (C) 2022 huzhenhong. All rights reserved. * Copyright (C) 2022 huzhenhong. All rights reserved.
*/ */

View File

@ -1,16 +1,14 @@
<!-- <nz-spin *ngIf="!i" class="modal-spin"></nz-spin> --> <!-- <nz-spin *ngIf="!i" class="modal-spin"></nz-spin> -->
<div class="serviceBox"> <div class="serviceBox">
<div class="left">客服人员</div> <div class="left"><span style="color:red">* </span>客服人员</div>
<div class="right"> <div class="right">
<nz-select ngModel="lucy" style="width: 250px;"> <nz-select [(ngModel)]="appUserId" style="width: 250px;">
<nz-option nzValue="jack" nzLabel="Jack"></nz-option> <nz-option *ngFor="let item of serviceList" [nzValue]="item.appUserId" [nzLabel]="item.name"></nz-option>
<nz-option nzValue="lucy" nzLabel="Lucy"></nz-option>
<nz-option nzValue="disabled" nzLabel="Disabled" nzDisabled></nz-option>
</nz-select> </nz-select>
</div> </div>
</div> </div>
<div class="modal-footer"> <div class="modal-footer">
<button nz-button type="button" (click)="close()">关闭</button> <button nz-button type="button" (click)="close()">关闭</button>
<button nz-button type="button" nzType="primary" (click)="submitForm()" [disabled]="!sf?.valid">确定</button> <button nz-button type="button" nzType="primary" (click)="submitForm()" [disabled]="!appUserId">确定</button>
</div> </div>

View File

@ -16,46 +16,38 @@ import { UsermanageService } from 'src/app/routes/usercenter/services/usercenter
}) })
export class ShowServiceComponent implements OnInit { export class ShowServiceComponent implements OnInit {
@ViewChild('sf', { static: false }) sf!: SFComponent; @ViewChild('sf', { static: false }) sf!: SFComponent;
appUserId = ''
record: any = {}; record: any = {};
i: any; i: any;
serviceList: any = [];
constructor( constructor(
private modal: NzModalRef, private modal: NzModalRef,
public service: UsermanageService, public service: UsermanageService,
private envSrv: EAEnvironmentService,
private eaCacheSrv: EACacheService,
) { } ) { }
ngOnInit(): void { ngOnInit(): void {
this.initData()
} }
close(): void { close(): void {
this.modal.close(true) this.modal.close(true)
} }
initData(){
this.service.request(this.service.$api_getStaffList).subscribe(res => {
this.serviceList = res
})
}
submitForm(){ submitForm(){
// const params:any = { const params:any = {
// appUserId: this.i.appUserId, appUserId: this.appUserId,
// ...this.sf.value, };
// bindType: this.i.bindType this.service.request(this.service.$api_getStaffList, params).subscribe(res => {
// }; if(res){
// params.carFrontPhoto = this.detailData.carFrontPhoto this.service.msgSrv.success('分配成功')
// params.carProtocal = this.detailData.carProtocal this.modal.close(true)
// params.certificatePhotoFront = this.detailData.certificatePhotoFront }
// params.certificatePhotoBack = this.detailData.certificatePhotoBack })
// params.roadTransportPhoto = this.detailData.roadTransportPhoto
// delete params.titleA
// delete params.titleB
// this.checked = true
// this.service.request(this.service.$api_updateAssistCertification, params).subscribe(res => {
// this.checked = false
// if(res){
// this.service.msgSrv.success('添加成功')
// this.modal.close(true)
// }
// })
} }
} }

View File

@ -160,6 +160,8 @@ export class UsermanageService extends ShipperBaseService {
$api_findEnterpriceChannelRelLog = '/api/mdc/enterpriceRelLog/findEnterpriceChannelRelLog'; $api_findEnterpriceChannelRelLog = '/api/mdc/enterpriceRelLog/findEnterpriceChannelRelLog';
// 查询企业合伙人渠道关系信息 // 查询企业合伙人渠道关系信息
$api_getEnterpriceRel = '/api/mdc/enterpriceRelLog/getEnterpriceRel'; $api_getEnterpriceRel = '/api/mdc/enterpriceRelLog/getEnterpriceRel';
// 员工列表
$api_getStaffList = '/api/mdc/cuc/userApp/getStaffList';
constructor(public injector: Injector, public nzModalService: NzModalService, private nzImageService: NzImageService) { constructor(public injector: Injector, public nzModalService: NzModalService, private nzImageService: NzImageService) {
super(injector); super(injector);

View File

@ -14,7 +14,7 @@ import { CarSettleCarauthComponent } from '../list/carauth/carauth.component';
}) })
export class VehicleComponentsAuditComponent implements OnInit { export class VehicleComponentsAuditComponent implements OnInit {
_$expand = false; _$expand = false;
resourceStatus: any; resourceStatus: any = 1;
defaultTabs = 1; defaultTabs = 1;
ui!: SFUISchema; ui!: SFUISchema;
schema!: SFSchema; schema!: SFSchema;

View File

@ -127,6 +127,15 @@ export class VehicleComponentsListComponent implements OnInit {
} }
} }
}, },
carLoad: {
title: '载重',
type: 'string',
ui: {
visibleIf: {
expand: (value: boolean) => value
}
}
},
isSelf: { isSelf: {
type: 'string', type: 'string',
title: '是否挂靠', title: '是否挂靠',
@ -174,7 +183,23 @@ export class VehicleComponentsListComponent implements OnInit {
expand: (value: boolean) => value expand: (value: boolean) => value
} }
} }
} },
isSelfs: {
type: 'string',
title: '是否入网',
enum: [
{ label: '全部', value: '' },
{ label: '是', value: 1 },
{ label: '否', value: 0 }
],
ui: {
widget: 'select',
allowClear: true,
visibleIf: {
expand: (value: boolean) => value
}
}
},
// putOnRecord: { // putOnRecord: {
// type: 'string', // type: 'string',
// title: '是否已备案', // title: '是否已备案',
@ -211,8 +236,8 @@ export class VehicleComponentsListComponent implements OnInit {
false: { text: '空闲', color: 'default' } false: { text: '空闲', color: 'default' }
} }
}, },
{ title: '道运证', width: '150px', className: 'text-center', index: 'roadTransportNo' }, // { title: '道运证', width: '150px', className: 'text-center', index: 'roadTransportNo' },
{ title: '审核人', width: '150px', className: 'text-center', index: 'approvalUserName' }, // { title: '审核人', width: '150px', className: 'text-center', index: 'approvalUserName' },
{ {
title: '行驶证到期状态', title: '行驶证到期状态',
@ -238,11 +263,11 @@ export class VehicleComponentsListComponent implements OnInit {
3: { text: '已到期', color: 'error' } 3: { text: '已到期', color: 'error' }
} }
}, },
{ title: '是否入网', width: '200px', className: 'text-center', index: 'carOwner' },
{ title: '所有人', width: '200px', className: 'text-center', index: 'carOwner' }, { title: '所有人', width: '200px', className: 'text-center', index: 'carOwner' },
{ title: '是否挂靠', width: '150px', className: 'text-center', render: 'isSelf' }, { title: '是否挂靠', width: '150px', className: 'text-center', render: 'isSelf' },
{ title: '挂靠协议', width: '150px', className: 'text-center', render: 'approvalAuditStatus' }, { title: '挂靠协议', width: '150px', className: 'text-center', render: 'approvalAuditStatus' },
// { title: '是否已备案', className: 'text-center', render: 'putOnRecord', }, // { title: '是否已备案', className: 'text-center', render: 'putOnRecord', },
{ {
title: '操作', title: '操作',
fixed: 'right', fixed: 'right',

View File

@ -84,6 +84,13 @@ export class WaybillManagementBulkComponent implements OnInit {
placeholder: '最多100个运单空号隔开' placeholder: '最多100个运单空号隔开'
} }
}, },
billCode: {
type: 'string',
title: '订单号',
ui: {
placeholder: '最多100个单号空号隔开'
}
},
resourceCode: { resourceCode: {
type: 'string', type: 'string',
title: '货源编号' title: '货源编号'

View File

@ -82,6 +82,13 @@ export class WaybillManagementVehicleComponent implements OnInit {
placeholder: '最多100个运单空号隔开' placeholder: '最多100个运单空号隔开'
} }
}, },
billCode: {
type: 'string',
title: '订单号',
ui: {
placeholder: '最多100个单号空号隔开'
}
},
resourceCode: { resourceCode: {
type: 'string', type: 'string',
title: '货源编号' title: '货源编号'