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

This commit is contained in:
Taric Xin
2021-12-22 20:17:35 +08:00
14 changed files with 327 additions and 103 deletions

View File

@ -1,7 +1,7 @@
<!-- <!--
* @Author: your name * @Author: your name
* @Date: 2021-12-03 11:10:14 * @Date: 2021-12-03 11:10:14
* @LastEditTime: 2021-12-22 10:10:22 * @LastEditTime: 2021-12-22 19:58:23
* @LastEditors: Please set LastEditors * @LastEditors: Please set LastEditors
* @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE * @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
* @FilePath: \tms-obc-web\src\app\routes\supply-management\components\vehicle\vehicle.component.html * @FilePath: \tms-obc-web\src\app\routes\supply-management\components\vehicle\vehicle.component.html
@ -104,19 +104,22 @@
</nz-card> </nz-card>
<nz-modal [(nzVisible)]="isVisible" [nzWidth]="600" [nzFooter]="nzModalFooter" nzTitle="浮动费用" (nzOnOk)="handleOK()" (nzOnCancel)="handleCancel('0')"> <nz-modal [(nzVisible)]="isVisible" [nzWidth]="600" [nzFooter]="nzModalFooter" nzTitle="运费变更记录" (nzOnOk)="handleOK()" (nzOnCancel)="handleCancel('0')">
<ng-container *nzModalContent> <ng-container *nzModalContent>
<st <st
#stFloat #stFloat
size="small" size="small"
[bordered]="true" [bordered]="true"
[data]="datass" [data]="service.$api_get_listChangeApply"
[columns]="columnsFloat" [columns]="columnsFloat"
[req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, params: reqParams }" [req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, params: changeParams }"
[res]="{ reName: { list: 'data.records', total: 'data.total' } }" [res]="{ reName: { list: 'data', total: 'data.total' } }"
[page]="{ show: true, showSize: true, pageSizes: [10, 20, 30, 50, 100, 200, 300, 500, 1000] }" [page]="{ show: true, showSize: true, pageSizes: [10, 20, 30, 50, 100, 200, 300, 500, 1000] }"
[loadingDelay]="500" [loadingDelay]="500"
> >
<ng-template st-row="order" let-item let-index="index">
{{ index + 1 }}
</ng-template>
<ng-template st-row="externalSn" let-item let-index="index"> <ng-template st-row="externalSn" let-item let-index="index">
<div> <div>
<span *ngIf="item?.externalSn == '1'">待确认</span> <span *ngIf="item?.externalSn == '1'">待确认</span>
@ -129,14 +132,14 @@
</ng-container> </ng-container>
<ng-template #nzModalFooter> <ng-template #nzModalFooter>
<button nz-button nzType="primary" (click)="handleCancel('0')">取消</button> <button nz-button nzType="primary" (click)="handleCancel('0')">取消</button>
<button nz-button nzType="default" (click)="handleOK()">确定</button> <button nz-button nzType="default" (click)="handleCancel('0')">确定</button>
</ng-template> </ng-template>
</nz-modal> </nz-modal>
<nz-modal [(nzVisible)]="isVisibleView" [nzWidth]="600" [nzFooter]="nzModalFooterview" nzTitle="查看" (nzOnOk)="handleOK()" (nzOnCancel)="handleCancel('1')"> <nz-modal [(nzVisible)]="isVisibleView" [nzWidth]="600" [nzFooter]="nzModalFooterview" nzTitle="查看" (nzOnOk)="handleOK()" (nzOnCancel)="handleCancel('1')">
<ng-container *nzModalContent> <ng-container *nzModalContent>
<sf #sfView [schema]="schemaView" [ui]="uiView" [compact]="true" [button]="'none'"> <sf #sfView [schema]="schemaView" [ui]="uiView" [formData]="ViewCause" [compact]="true" [button]="'none'">
<ng-template sf-template="no" let-me let-ui="uiView" let-schema="schemaView"> <ng-template sf-template="no" let-me let-ui="uiView" let-schema="schemaView">
<div style="display: flex;"> <div style="display: flex;">
<nz-input-number [(ngModel)]="demoValue" [nzMin]="1" [nzMax]="10" [nzStep]="1"></nz-input-number> <nz-input-number [(ngModel)]="demoValue" [nzMin]="1" [nzMax]="10" [nzStep]="1"></nz-input-number>
@ -149,21 +152,20 @@
multiSort multiSort
size="small" size="small"
[bordered]="true" [bordered]="true"
[data]="datass" [data]="service.$api_getChangeRecordBulkDetail"
[columns]="columnsFloatView" [columns]="columnsFloatView"
[req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, params: reqParams }" [req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, params: changeViewParams }"
[res]="{ reName: { list: 'data.records', total: 'data.total' } }" [res]="{ reName: { list: 'data.list', total: 'data.total' } }"
[page]="{ show: true, showSize: true, pageSizes: [10, 20, 30, 50, 100, 200, 300, 500, 1000] }"
[loadingDelay]="500" [loadingDelay]="500"
> >
</st> </st>
<div><span>变更原因:</span></div> <div><span>变更原因:{{ViewCause?.changeCause}}</span></div>
<div><span>拒绝原因:</span></div> <div><span>拒绝原因:{{ViewCause?.refuseCause}}</span></div>
<div><span>注:</span></div> <div><span>注:附加费依据调整后的运输费用重新计算</span></div>
</ng-container> </ng-container>
<ng-template #nzModalFooterview> <ng-template #nzModalFooterview>
<button nz-button nzType="default" (click)="handleCancel('1')">取消</button> <button nz-button nzType="default" (click)="handleCancel('1')">取消</button>
<button nz-button nzType="primary" (click)="handleOK()">确定</button> <button nz-button nzType="primary" (click)="handleCancel('1')">确定</button>
</ng-template> </ng-template>
</nz-modal> </nz-modal>

View File

@ -28,6 +28,10 @@ export class OrderManagementBulkComponent implements OnInit {
isVisibleEvaluate = false; isVisibleEvaluate = false;
isVisible = false; isVisible = false;
_$expand = false; _$expand = false;
changeId: any; // 主页面查看运费变更记录id - 用于运费变更记录
changeViewId: any; // 查看运费变更记录id - 用于查看
ViewCause: any; // 变更运费查看数据
sfViewFormData: any; // 变更运费查看的sf 数据
@ViewChild('st') private readonly st!: STComponent; @ViewChild('st') private readonly st!: STComponent;
@ViewChild('stFloat') private readonly stFloat!: STComponent; @ViewChild('stFloat') private readonly stFloat!: STComponent;
@ViewChild('stFloatView') private readonly stFloatView!: STComponent; @ViewChild('stFloatView') private readonly stFloatView!: STComponent;
@ -76,6 +80,11 @@ tabs = {
get selectedRows() { get selectedRows() {
return this.st?.list.filter((item) => item.checked) || []; return this.st?.list.filter((item) => item.checked) || [];
} }
get changeParams() {
return {
id: this.changeId
};
}
getGoodsSourceStatistical() { getGoodsSourceStatistical() {
this.service.request(this.service.$api_getBulkStatistical).subscribe(res => { this.service.request(this.service.$api_getBulkStatistical).subscribe(res => {
if (res) { if (res) {
@ -311,39 +320,33 @@ tabs = {
initSFView() { initSFView() {
this.schemaView = { this.schemaView = {
properties: { properties: {
no: { freightPrice: {
type: 'string', type: 'string',
title: '运费单价', title: '运费单价',
ui: {
widget: 'custom',
}
}, },
sex: { rule: {
title: '', title: '',
type: 'string', type: 'string',
default: 0,
enum: [
{ label: '保留小数', value: 0 },
{ label: '男', value: 1 },
{ label: '女', value: 2 },
{ label: '保密', value: 3 },
],
ui: { ui: {
widget: 'select', widget: 'dict-select',
params: { dictKey: 'goodresource:rounding:rules' },
visibleIf: {
_$expand: (value: boolean) => value,
},
} as SFSelectWidgetSchema, } as SFSelectWidgetSchema,
}, },
appId: { settlementBasis: {
type: 'string', type: 'string',
title: '结算重量', title: '结算重量',
ui: { ui: {
widget: 'select', widget: 'dict-select',
placeholder: '请选择', params: { dictKey: 'goodresource:settlement:type' },
allowClear: true, visibleIf: {
asyncData: () => this.getCatalogueMember(), _$expand: (value: boolean) => value,
},
} as SFSelectWidgetSchema,
}, },
}, },
},
type: 'object',
}; };
this.uiView = { '*': { spanLabelFixed: 80, grid: { span: 12, gutter: 4 } } }; this.uiView = { '*': { spanLabelFixed: 80, grid: { span: 12, gutter: 4 } } };
} }
@ -468,19 +471,19 @@ tabs = {
{ {
title: '序号', title: '序号',
className: 'text-center', className: 'text-center',
index: 'one', render: 'order'
}, },
{ {
title: '操作时间', title: '操作时间',
className: 'text-center', className: 'text-center',
index: 'two', index: 'applyTime'
}, },
{ {
title: '操作人', title: '操作人',
className: 'text-center', className: 'text-center',
index: 'three', index: 'applyUserName'
}, },
{ title: '状态', render: 'externalSn', className: 'text-center' }, { title: '状态', index: 'handleStatus', className: 'text-center' },
{ {
title: '操作', title: '操作',
fixed: 'right', fixed: 'right',
@ -490,10 +493,14 @@ tabs = {
text: '查看', text: '查看',
click: (_record) => this.FloatView(_record), click: (_record) => this.FloatView(_record),
}, },
// {
// text: '查看协议',
// click: (_record, _modal, _instance) => this.view(_record)
// },
{ {
text: '撤销', text: '撤销',
click: (_record) => this.audit(_record), click: (_record) => this.revoke(_record),
iif: item => item.externalSn === '1' || item.externalSn === 1, iif: item => item.handleStatus === '1' || item.handleStatus === 1,
}, },
], ],
}, },
@ -505,15 +512,16 @@ tabs = {
title: '费用名称', title: '费用名称',
width: '100px', width: '100px',
className: 'text-center', className: 'text-center',
render: 'goodsId' index: 'costName'
}, },
{ {
title: '变更前', title: '变更前',
width: '100px', width: '100px',
className: 'text-center', className: 'text-center',
index: 'amountAfterChange'
}, },
{ title: '变更值', index: 'externalSn', width: '120px', className: 'text-center' }, { title: '变更值', index: 'amountchangeValue', width: '120px', className: 'text-center' },
{ title: '变更后', index: 'externalSn', width: '120px', className: 'text-center' } { title: '变更后', index: 'amountBeforeChange', width: '120px', className: 'text-center' }
]; ];
} }
/** /**
@ -522,6 +530,11 @@ tabs = {
get queryFieldCount(): number { get queryFieldCount(): number {
return Object.keys(this.schema?.properties || {}).length; return Object.keys(this.schema?.properties || {}).length;
} }
get changeViewParams() {
return {
id: this.changeViewId
};
}
/** /**
* 伸缩查询条件 * 伸缩查询条件
*/ */
@ -589,6 +602,7 @@ tabs = {
} }
OpenPrice(item: any) { OpenPrice(item: any) {
this.changeId = item.id;
this.isVisible = true this.isVisible = true
} }
/** /**
@ -596,6 +610,10 @@ tabs = {
*/ */
FloatView(item: any) { FloatView(item: any) {
console.log(item) console.log(item)
this.changeViewId = item.id;
this.service.request(this.service.$api_getChangeRecordBulkDetail, {id: this.changeViewId}).subscribe((res) => {
this.ViewCause = res;
})
this.isVisibleView = true this.isVisibleView = true
} }
/** /**
@ -615,7 +633,7 @@ tabs = {
nzTitle: '变更运费', nzTitle: '变更运费',
nzWidth: 580, nzWidth: 580,
nzContent: UpdateFreightComponent, nzContent: UpdateFreightComponent,
nzComponentParams: { data }, nzComponentParams: { data: { ...data, billId: item.id } },
nzOnOk: sin => { nzOnOk: sin => {
this.service.request(this.service.$api_insertFreightChangeBulk, { billId: item.id, ...sin.sf.value }).subscribe(res => { this.service.request(this.service.$api_insertFreightChangeBulk, { billId: item.id, ...sin.sf.value }).subscribe(res => {
if (res) { if (res) {
@ -676,4 +694,19 @@ tabs = {
}), }),
}) })
} }
revoke(item: any) {
this.modal.confirm({
nzTitle: '是否确定立即撤销费用变更!</i>',
nzOnOk: () =>
this.service.request(this.service.$api_get_revokeChangeRecord, { id: item.id}).subscribe((res) => {
console.log(res)
if(res) {
this.service.msgSrv.success('撤销成功!')
this.stFloat.reload()
} else {
this.service.msgSrv.error(res.msg)
}
})
});
}
} }

View File

@ -417,7 +417,7 @@ export class OrderManagementRiskComponent implements OnInit {
this.isVisibleRE = false; this.isVisibleRE = false;
this.st.reload() this.st.reload()
} else { } else {
// this.service.msgSrv.error(res.msg); this.service.msgSrv.error(res?.msg);
} }
}); });
} }
@ -446,7 +446,7 @@ export class OrderManagementRiskComponent implements OnInit {
this.isVisibleRE = false; this.isVisibleRE = false;
this.st.reload() this.st.reload()
} else { } else {
this.service.msgSrv.error(res.msg); this.service.msgSrv.error(res?.msg);
} }
}); });
} }

View File

@ -1,7 +1,7 @@
<!-- <!--
* @Author: your name * @Author: your name
* @Date: 2021-12-03 11:10:14 * @Date: 2021-12-03 11:10:14
* @LastEditTime: 2021-12-22 09:56:27 * @LastEditTime: 2021-12-22 19:48:42
* @LastEditors: Please set LastEditors * @LastEditors: Please set LastEditors
* @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE * @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
* @FilePath: \tms-obc-web\src\app\routes\supply-management\components\vehicle\vehicle.component.html * @FilePath: \tms-obc-web\src\app\routes\supply-management\components\vehicle\vehicle.component.html
@ -160,7 +160,7 @@
</ng-container> </ng-container>
<ng-template #nzModalFooter> <ng-template #nzModalFooter>
<button nz-button nzType="primary" (click)="handleCancel('0')">取消</button> <button nz-button nzType="primary" (click)="handleCancel('0')">取消</button>
<button nz-button nzType="default" (click)="handleOK()">确定</button> <button nz-button nzType="default" (click)="handleCancel('0')">确定</button>
</ng-template> </ng-template>
</nz-modal> </nz-modal>
@ -172,20 +172,20 @@
multiSort multiSort
size="small" size="small"
[bordered]="true" [bordered]="true"
[data]="service.$api_get_listChangeApply" [data]="service.$api_getChangeRecordWholeDetail"
[columns]="columnsFloatView" [columns]="columnsFloatView"
[req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, params: changeViewParams }" [req]="{ method: 'POST', allInBody: true, params: changeViewParams }"
[res]="{ reName: { list: 'data', total: 'data.total' } }" [res]="{ reName: { list: 'data.list', total: 'data.total' } }"
[loadingDelay]="500" [loadingDelay]="500"
> >
</st> </st>
<div><span>变更原因2</span></div> <div><span>变更原因:{{ViewCause?.changeCause}}</span></div>
<div><span>拒绝原因:</span></div> <div><span>拒绝原因:{{ViewCause?.refuseCause}}</span></div>
<div><span>注:</span></div> <div><span>注:附加费依据调整后的运输费用重新计算</span></div>
</ng-container> </ng-container>
<ng-template #nzModalFooterview> <ng-template #nzModalFooterview>
<button nz-button nzType="default" (click)="handleCancel('1')">取消</button> <button nz-button nzType="default" (click)="handleCancel('1')">取消</button>
<button nz-button nzType="primary" (click)="handleOK()">确定</button> <button nz-button nzType="primary" (click)="handleCancel('1')">确定</button>
</ng-template> </ng-template>
</nz-modal> </nz-modal>

View File

@ -30,6 +30,7 @@ export class OrderManagementVehicleComponent implements OnInit {
isVisible = false; isVisible = false;
changeId: any; // 主页面查看运费变更记录id - 用于运费变更记录 changeId: any; // 主页面查看运费变更记录id - 用于运费变更记录
changeViewId: any; // 查看运费变更记录id - 用于查看 changeViewId: any; // 查看运费变更记录id - 用于查看
ViewCause: any; // 变更运费查看数据
_$expand = false; _$expand = false;
@ViewChild('st') private readonly st!: STComponent; @ViewChild('st') private readonly st!: STComponent;
@ViewChild('stFloat') private readonly stFloat!: STComponent; @ViewChild('stFloat') private readonly stFloat!: STComponent;
@ -457,15 +458,16 @@ resourceStatus: any;
title: '费用名称', title: '费用名称',
width: '100px', width: '100px',
className: 'text-center', className: 'text-center',
render: 'goodsId' index: 'costName'
}, },
{ {
title: '变更前', title: '变更前',
width: '100px', width: '100px',
className: 'text-center', className: 'text-center',
index: 'amountAfterChange'
}, },
{ title: '变更值', index: 'externalSn', width: '120px', className: 'text-center' }, { title: '变更值', index: 'amountchangeValue', width: '120px', className: 'text-center' },
{ title: '变更后', index: 'externalSn', width: '120px', className: 'text-center' } { title: '变更后', index: 'amountBeforeChange', width: '120px', className: 'text-center' }
]; ];
} }
/** /**
@ -560,6 +562,9 @@ resourceStatus: any;
FloatView(item: any) { FloatView(item: any) {
console.log(item) console.log(item)
this.changeViewId = item.id; this.changeViewId = item.id;
this.service.request(this.service.$api_getChangeRecordWholeDetail, {id: this.changeViewId}).subscribe((res) => {
this.ViewCause = res;
})
this.isVisibleView = true this.isVisibleView = true
} }
/** /**
@ -580,7 +585,16 @@ resourceStatus: any;
nzWidth: 580, nzWidth: 580,
nzContent: VehicleUpdateFreightComponent, nzContent: VehicleUpdateFreightComponent,
nzComponentParams: { data: { ...data, id: item.id } }, nzComponentParams: { data: { ...data, id: item.id } },
nzFooter: null nzOnOk: sin => {
this.service.request(this.service.$api_change_bulk, { billId: item.id, ...sin.sf.value }).subscribe(res => {
if (res) {
this.service.msgSrv.success('变更运费成功');
modal.destroy();
this.st.reload();
}
});
return false;
}
}); });
modal.afterClose.subscribe(_ => this.st.reload()); modal.afterClose.subscribe(_ => this.st.reload());
} }

View File

@ -1,7 +1,7 @@
<!-- <!--
* @Author: your name * @Author: your name
* @Date: 2021-12-14 14:03:07 * @Date: 2021-12-14 14:03:07
* @LastEditTime: 2021-12-21 14:47:26 * @LastEditTime: 2021-12-22 18:53:54
* @LastEditors: Please set LastEditors * @LastEditors: Please set LastEditors
* @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE * @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
* @FilePath: \tms-obc-web\src\app\routes\order-management\modal\bulk\update-freight\update-freight.component.html * @FilePath: \tms-obc-web\src\app\routes\order-management\modal\bulk\update-freight\update-freight.component.html
@ -42,12 +42,12 @@ nzMessage="签收后不可再修改运费,请确保运费等信息准确无误
<div>{{detailList?.goodsInfoVO?.volume}}吨</div> <div>{{detailList?.goodsInfoVO?.volume}}吨</div>
</sv> </sv>
<sv label="卸货体积"> <sv label="卸货体积">
<div>xx吨</div> <div>{{detailList?.settlementVolume}}方</div>
</sv> </sv>
</sv-container> </sv-container>
<sv-container col="1"> <sv-container col="1">
<sv label="总运费"> <sv label="总运费">
<div>{{detailList?.goodsInfoVO?.freightPrice ? detailList?.goodsInfoVO?.freightPrice + '元' : ''}} </div> <div>{{detailList?.price}} </div>
</sv> </sv>
<sv label="司机车辆"> <sv label="司机车辆">
<div>{{driverList?.nickName}} / {{driverList?.telephone}}/ {{carList?.carNo}}</div> <div>{{driverList?.nickName}} / {{driverList?.telephone}}/ {{carList?.carNo}}</div>
@ -56,9 +56,27 @@ nzMessage="签收后不可再修改运费,请确保运费等信息准确无误
<div>{{payeeList?.nickName}} / {{payeeList?.telephone}}</div> <div>{{payeeList?.nickName}} / {{payeeList?.telephone}}</div>
</sv> </sv>
<sv label="回单凭证"> <sv label="回单凭证">
<!-- <app-imagelist <nz-upload
[imgList]="[userIdentityDetail?.certificatePhotoFrontWatermark,userIdentityDetail?.certificatePhotoBackWatermark]"> class="avatar-uploader"
</app-imagelist> --> [nzAction]="service.$api_upload_url"
[nzName]="'multipartFile'"
nzListType="picture-card"
[(nzFileList)]="listImagUrls"
[nzShowButton]="listImagUrls.length < 5"
[nzPreview]="handlePreview1"
[nzBeforeUpload]="beforeUpload"
(nzChange)="handleChange1($event)"
>
<div>
<i nz-icon nzType="plus"></i>
<div style="margin-top: 8px">请上传图片</div>
</div>
</nz-upload>
<nz-modal [nzVisible]="previewVisible1" [nzContent]="modalContent" [nzFooter]="null" (nzOnCancel)="previewVisible1 = false">
<ng-template #modalContent>
<img [src]="previewImage1" [ngStyle]="{ width: '100%' }" />
</ng-template>
</nz-modal>
</sv> </sv>
</sv-container> </sv-container>
<div class="modal-footer"> <div class="modal-footer">

View File

@ -2,7 +2,7 @@ import { preloaderFinished } from '@delon/theme';
/* /*
* @Author: your name * @Author: your name
* @Date: 2021-12-14 14:03:07 * @Date: 2021-12-14 14:03:07
* @LastEditTime: 2021-12-21 13:43:08 * @LastEditTime: 2021-12-22 19:10:07
* @LastEditors: Please set LastEditors * @LastEditors: Please set LastEditors
* @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE * @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
* @FilePath: \tms-obc-web\src\app\routes\order-management\modal\bulk\update-freight\update-freight.component.ts * @FilePath: \tms-obc-web\src\app\routes\order-management\modal\bulk\update-freight\update-freight.component.ts
@ -22,7 +22,16 @@ import { _HttpClient } from '@delon/theme';
import { NzMessageService } from 'ng-zorro-antd/message'; import { NzMessageService } from 'ng-zorro-antd/message';
import { NzModalRef } from 'ng-zorro-antd/modal'; import { NzModalRef } from 'ng-zorro-antd/modal';
import { OrderManagementService } from '../../../services/order-management.service'; import { OrderManagementService } from '../../../services/order-management.service';
import { NzUploadChangeParam, NzUploadFile } from 'ng-zorro-antd/upload';
import { Observable, Observer } from 'rxjs';
function getBase64(file: File): Promise<string | ArrayBuffer | null> {
return new Promise((resolve, reject) => {
const reader = new FileReader();
reader.readAsDataURL(file);
reader.onload = () => resolve(reader.result);
reader.onerror = error => reject(error);
});
}
@Component({ @Component({
selector: 'app-order-management-confir-receipt', selector: 'app-order-management-confir-receipt',
templateUrl: './confir-receipt.component.html', templateUrl: './confir-receipt.component.html',
@ -36,6 +45,9 @@ export class ConfirReceiptComponent implements OnInit {
driverList: any; driverList: any;
payeeList: any; payeeList: any;
carList: any; carList: any;
listImagUrls: any[] = [];
previewImage1 = '';
previewVisible1 = false;
constructor(private modal: NzModalRef, private msgSrv: NzMessageService, public http: _HttpClient, public service: OrderManagementService) {} constructor(private modal: NzModalRef, private msgSrv: NzMessageService, public http: _HttpClient, public service: OrderManagementService) {}
ngOnInit(): void { ngOnInit(): void {
@ -44,10 +56,26 @@ export class ConfirReceiptComponent implements OnInit {
save(): void { save(): void {
// 大宗 // 大宗
this.service.request(this.service.$api_get_signBulkOrder, {id: this.i?.id}).subscribe((res: any) => { console.log(this.listImagUrls)
let imgList : any= [];
if(this.listImagUrls.length > 0) {
this.listImagUrls.forEach((res :any) => {
if(res.url) {
imgList.push(res.url)
}
})
}
console.log(imgList)
const params = {
id: this.i?.id,
filePathList: imgList,
}
console.log(params)
this.service.request(this.service.$api_get_signBulkOrder, params).subscribe((res: any) => {
console.log(res.success) console.log(res.success)
if(res) { if(res) {
this.service.msgSrv.success('确认签收成功!') this.service.msgSrv.success('确认签收成功!')
this.modal.destroy();
} else { } else {
this.service.msgSrv.error(res.msg) this.service.msgSrv.error(res.msg)
} }
@ -58,6 +86,16 @@ export class ConfirReceiptComponent implements OnInit {
this.service.request(this.service.$api_get_getBulkSignForDetail, {id: this.i?.id}).subscribe((res: any) => { this.service.request(this.service.$api_get_getBulkSignForDetail, {id: this.i?.id}).subscribe((res: any) => {
console.log(res) console.log(res)
this.detailList = res; this.detailList = res;
let arr : any= []
res.filePathList.forEach((element: any, index: any) => {
console.log(index)
arr.push( {
url: element,
status: 'done',
uid: index
})
});
this.listImagUrls = arr;
this.service.request(this.service.$api_getUserDetailByAppUserId, {id: this.detailList?.payeeId}).subscribe((res: any) => { this.service.request(this.service.$api_getUserDetailByAppUserId, {id: this.detailList?.payeeId}).subscribe((res: any) => {
console.log(res) console.log(res)
this.payeeList = res; this.payeeList = res;
@ -81,5 +119,51 @@ export class ConfirReceiptComponent implements OnInit {
userAction() { userAction() {
} }
handlePreview1 = async (file: NzUploadFile) => {
if (!file.url && !file.preview) {
file.preview = await getBase64(file.originFileObj!);
}
this.previewImage1 = file.url || file.preview;
this.previewVisible1 = true;
};
handleChange1(info: NzUploadChangeParam): void {
switch (info.file.status) {
case 'uploading':
break;
case 'done':
let fileList = [...info.fileList];
// 2. Read from response and show file link
console.log(fileList)
fileList = fileList.map((file: any) => {
if (file.response) {
file.url = file.response.data.fullFilePath;
}
return file;
});
console.log(this.listImagUrls)
break;
case 'error':
this.service.msgSrv.error('网络错误');
break;
}
}
beforeUpload = (file: NzUploadFile, _fileList: NzUploadFile[]) => {
return new Observable((observer: Observer<boolean>) => {
const isJpgOrPng = file.type === 'image/jpeg' || file.type === 'image/png' || file.type === 'image/gif' || file.type === 'image/bmp';
if (!isJpgOrPng) {
this.service.msgSrv.warning('只能上传图片!');
observer.complete();
return;
}
// tslint:disable-next-line: no-non-null-assertion
const isLt2M = file.size! / 1024 / 1024 < 3;
if (!isLt2M) {
this.service.msgSrv.warning('图片大小超过3兆!');
observer.complete();
return;
}
observer.next(isJpgOrPng && isLt2M);
observer.complete();
});
};
} }

View File

@ -1,7 +1,7 @@
<!-- <!--
* @Author: your name * @Author: your name
* @Date: 2021-12-14 14:03:07 * @Date: 2021-12-14 14:03:07
* @LastEditTime: 2021-12-21 15:03:17 * @LastEditTime: 2021-12-22 20:04:15
* @LastEditors: your name * @LastEditors: your name
* @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE * @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
* @FilePath: \tms-obc-web\src\app\routes\order-management\modal\bulk\update-freight\update-freight.component.html * @FilePath: \tms-obc-web\src\app\routes\order-management\modal\bulk\update-freight\update-freight.component.html

View File

@ -1,7 +1,7 @@
/* /*
* @Author: your name * @Author: your name
* @Date: 2021-12-14 14:03:07 * @Date: 2021-12-14 14:03:07
* @LastEditTime: 2021-12-14 15:16:27 * @LastEditTime: 2021-12-22 20:08:13
* @LastEditors: Please set LastEditors * @LastEditors: Please set LastEditors
* @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE * @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
* @FilePath: \tms-obc-web\src\app\routes\order-management\modal\bulk\update-freight\update-freight.component.ts * @FilePath: \tms-obc-web\src\app\routes\order-management\modal\bulk\update-freight\update-freight.component.ts
@ -12,6 +12,8 @@ import {
SFSelectWidgetSchema, SFSelectWidgetSchema,
SFStringWidgetSchema, SFTextWidgetSchema SFStringWidgetSchema, SFTextWidgetSchema
} from '@delon/form'; } from '@delon/form';
import { Subscription } from 'rxjs';
import { OrderManagementService } from '../../../services/order-management.service';
@Component({ @Component({
selector: 'app-order-management-update-freight', selector: 'app-order-management-update-freight',
@ -25,7 +27,8 @@ export class UpdateFreightComponent implements OnInit {
@Input() @Input()
data: any; data: any;
constructor() {} calculateSub!: Subscription;
constructor(private service: OrderManagementService) {}
ngOnInit(): void { ngOnInit(): void {
this.schema = this.initSF(this.data); this.schema = this.initSF(this.data);
@ -48,7 +51,8 @@ export class UpdateFreightComponent implements OnInit {
placeholder: '请输入', placeholder: '请输入',
grid: { grid: {
span: 12 span: 12
} },
change: (val: any) => this.changeNumVal()
} as SFStringWidgetSchema, } as SFStringWidgetSchema,
default: data.freightPrice default: data.freightPrice
}, },
@ -106,7 +110,8 @@ export class UpdateFreightComponent implements OnInit {
grid: { grid: {
span: 12 span: 12
}, },
hideStep: true hideStep: true,
change: (val: any) => this.changeNumVal()
} as SFNumberWidgetSchema } as SFNumberWidgetSchema
}, },
acceptVolume: { acceptVolume: {
@ -119,7 +124,8 @@ export class UpdateFreightComponent implements OnInit {
grid: { grid: {
span: 12 span: 12
}, },
hideStep: true hideStep: true,
change: (val: any) => this.changeNumVal()
} as SFNumberWidgetSchema } as SFNumberWidgetSchema
}, },
settlementWeight: { settlementWeight: {
@ -132,7 +138,8 @@ export class UpdateFreightComponent implements OnInit {
grid: { grid: {
span: 12 span: 12
}, },
hideStep: true hideStep: true,
change: (val: any) => this.changeNumVal()
} as SFNumberWidgetSchema } as SFNumberWidgetSchema
}, },
settlementVolume: { settlementVolume: {
@ -145,7 +152,8 @@ export class UpdateFreightComponent implements OnInit {
grid: { grid: {
span: 12 span: 12
}, },
hideStep: true hideStep: true,
change: (val: any) => this.changeNumVal()
} as SFNumberWidgetSchema } as SFNumberWidgetSchema
} }
}, },
@ -169,4 +177,21 @@ export class UpdateFreightComponent implements OnInit {
} }
}; };
} }
changeNumVal() {
if (this.calculateSub) {
this.calculateSub.unsubscribe();
}
this.calculateSub = this.service
.request(this.service.$api_calculate_cost, { billId: this.data.billId, ...this.sf.value, changeCause: '' })
.subscribe((res: any) => {
if (res) {
Object.assign(this.data, {
totalFreight: res.totalFreight,
freight: res.freight,
surcharge: res.surcharge
});
}
});
}
} }

View File

@ -1,7 +1,7 @@
/* /*
* @Author: your name * @Author: your name
* @Date: 2021-12-15 13:17:42 * @Date: 2021-12-15 13:17:42
* @LastEditTime: 2021-12-21 14:50:54 * @LastEditTime: 2021-12-22 19:19:25
* @LastEditors: Please set LastEditors * @LastEditors: Please set LastEditors
* @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE * @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
* @FilePath: \tms-obc-web\src\app\routes\order-management\modal\vehicle\confir-receipt\confir-receipt.component.ts * @FilePath: \tms-obc-web\src\app\routes\order-management\modal\vehicle\confir-receipt\confir-receipt.component.ts
@ -61,10 +61,24 @@ export class VehicleConfirReceiptComponent implements OnInit {
} }
save(): void { save(): void {
this.service.request(this.service.$api_get_signWholeOrder, {id: this.i?.id}).subscribe((res: any) => { let imgList : any= [];
if(this.listImagUrls.length > 0) {
this.listImagUrls.forEach((res :any) => {
if(res.url) {
imgList.push(res.url)
}
})
}
console.log(imgList)
const params = {
id: this.i?.id,
filePathList: imgList,
}
this.service.request(this.service.$api_get_signWholeOrder, params).subscribe((res: any) => {
console.log(res) console.log(res)
if(res) { if(res) {
this.service.msgSrv.success('确认签收成功!') this.service.msgSrv.success('确认签收成功!')
this.modal.destroy();
} else { } else {
this.service.msgSrv.error(res.msg) this.service.msgSrv.error(res.msg)
} }
@ -101,16 +115,6 @@ export class VehicleConfirReceiptComponent implements OnInit {
}); });
}; };
initData() { initData() {
// if (this.i?.receiptCertificate?.length > 0) {
// this.i?.receiptCertificate.forEach((element: any) => {
// const image = {
// url: element,
// status: 'done',
// uid: '-1'
// };
// this.listImagUrls.push(image);
// });
// }
// 大宗 // 大宗
this.service.request(this.service.$api_get_getWholeSignForDetail, {id: this.i?.id}).subscribe((res: any) => { this.service.request(this.service.$api_get_getWholeSignForDetail, {id: this.i?.id}).subscribe((res: any) => {
console.log(res) console.log(res)
@ -129,6 +133,16 @@ export class VehicleConfirReceiptComponent implements OnInit {
cost.traiPrice = element.price cost.traiPrice = element.price
} }
}); });
let arr : any= []
res.filePathList.forEach((element: any, index: any) => {
console.log(index)
arr.push( {
url: element,
status: 'done',
uid: index
})
});
this.listImagUrls = arr;
this.service.request(this.service.$api_getUserDetailByAppUserId, {id: this.dataInfo?.payeeId}).subscribe((res: any) => { this.service.request(this.service.$api_getUserDetailByAppUserId, {id: this.dataInfo?.payeeId}).subscribe((res: any) => {
console.log(res) console.log(res)
this.payeeList = res; this.payeeList = res;
@ -176,15 +190,16 @@ export class VehicleConfirReceiptComponent implements OnInit {
case 'uploading': case 'uploading':
break; break;
case 'done': case 'done':
const resData = info.file.response.data; let fileList = [...info.fileList];
const arr = [ // 2. Read from response and show file link
{ console.log(fileList)
url: resData.fullFilePath, fileList = fileList.map((file: any) => {
status: 'done', if (file.response) {
uid: '-1' file.url = file.response.data.fullFilePath;
} }
]; return file;
this.listImagUrls = arr; });
console.log(this.listImagUrls)
break; break;
case 'error': case 'error':
this.service.msgSrv.error('网络错误'); this.service.msgSrv.error('网络错误');

View File

@ -1,7 +1,7 @@
/* /*
* @Author: your name * @Author: your name
* @Date: 2021-12-03 15:31:52 * @Date: 2021-12-03 15:31:52
* @LastEditTime: 2021-12-22 10:09:37 * @LastEditTime: 2021-12-22 20:06:45
* @LastEditors: Please set LastEditors * @LastEditors: Please set LastEditors
* @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE * @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
* @FilePath: \tms-obc-web\src\app\routes\order-management\services\order-management.service.ts * @FilePath: \tms-obc-web\src\app\routes\order-management\services\order-management.service.ts
@ -77,7 +77,16 @@ export class OrderManagementService extends BaseService {
public $api_insertFreightChangeBulk = `/api/sdc/billFreightChangeApplication/insertFreightChangeBulk`; public $api_insertFreightChangeBulk = `/api/sdc/billFreightChangeApplication/insertFreightChangeBulk`;
// 大宗详情 // 大宗详情
public $api_getBulkBillDetail = `/api/sdc/billOperate/getBulkBillDetail`; public $api_getBulkBillDetail = `/api/sdc/billOperate/getBulkBillDetail`;
// 查看运费变更记录详情-大宗
public $api_getChangeRecordBulkDetail = `/api/sdc/billFreightChangeRecord/getChangeRecordBulkDetail`;
// 查看运费变更记录详情-整车
public $api_getChangeRecordWholeDetail = `/api/sdc/billFreightChangeRecord/getChangeRecordWholeDetail`;
//运费变更申请计算费用-大宗
$api_calculate_cost = `/api/sdc/billFreightChangeApplication/getBulkSurchargeDetail`;
//运费变更申请计算费用-大宗
$api_getWholeSurchargeDetail = `/api/sdc/billFreightChangeApplication/getWholeSurchargeDetail`;
//运费变更申请-大宗
$api_change_bulk = `/api/sdc/billFreightChangeApplication/insertFreightChangeBulk`;
constructor(public injector: Injector) { constructor(public injector: Injector) {
super(injector) super(injector)
} }

View File

@ -427,10 +427,12 @@ tabs = {
{ {
text: '确认发车', text: '确认发车',
click: (_record) => this.sureDepart(_record), click: (_record) => this.sureDepart(_record),
iif: item => item.wayBillStatus == '2' ,
}, },
{ {
text: '确认到车', text: '确认到车',
click: (_record) => this.sureArrive(_record), click: (_record) => this.sureArrive(_record),
iif: item => item.wayBillStatus == '3' ,
}, },
], ],
}, },

View File

@ -1,7 +1,7 @@
<!-- <!--
* @Author: your name * @Author: your name
* @Date: 2021-12-03 11:10:14 * @Date: 2021-12-03 11:10:14
* @LastEditTime: 2021-12-18 16:17:40 * @LastEditTime: 2021-12-22 11:31:50
* @LastEditors: Please set LastEditors * @LastEditors: Please set LastEditors
* @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE * @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
* @FilePath: \tms-obc-web\src\app\routes\supply-management\components\vehicle\vehicle.component.html * @FilePath: \tms-obc-web\src\app\routes\supply-management\components\vehicle\vehicle.component.html
@ -59,6 +59,11 @@
[loadingDelay]="500" [loadingDelay]="500"
[loading]="service.http.loading" [loading]="service.http.loading"
> >
<ng-template st-row="billExpenseDetailVOList" let-item let-index="index">
<div *ngFor="let i of item?.billExpenseDetailVOList; let ii = index">
<span >{{i?.costName}}{{i?.price}}</span>
</div>
</ng-template>
<ng-template st-row="wayBillCode" let-item let-index="index"> <ng-template st-row="wayBillCode" let-item let-index="index">
<a [routerLink]="'/waybill-management/vehicle-detail/'+item.id">{{item.wayBillCode}}</a> <a [routerLink]="'/waybill-management/vehicle-detail/'+item.id">{{item.wayBillCode}}</a>
<div> <div>

View File

@ -4,6 +4,7 @@ import { SFComponent, SFDateWidgetSchema, SFSchema, SFSchemaEnum, SFSelectWidget
import { ModalHelper, _HttpClient } from '@delon/theme'; import { ModalHelper, _HttpClient } from '@delon/theme';
import { ShipperBaseService } from '@shared'; import { ShipperBaseService } from '@shared';
import { NzModalService } from 'ng-zorro-antd/modal'; import { NzModalService } from 'ng-zorro-antd/modal';
import { NzUploadChangeParam } from 'ng-zorro-antd/upload';
import { of } from 'rxjs'; import { of } from 'rxjs';
import { map } from 'rxjs/operators'; import { map } from 'rxjs/operators';
import { VehicleSureArriveComponent } from 'src/app/routes/order-management/modal/vehicle/sure-arrive/sure-arrive.component'; import { VehicleSureArriveComponent } from 'src/app/routes/order-management/modal/vehicle/sure-arrive/sure-arrive.component';
@ -276,12 +277,24 @@ tabs = {
className: 'text-center', className: 'text-center',
render: 'wayBillCode' render: 'wayBillCode'
}, },
{
title: '货主出价',
width: '100px',
className: 'text-center',
index: 'resourceCode'
},
{ {
title: '货源编号', title: '货源编号',
width: '100px', width: '100px',
className: 'text-center', className: 'text-center',
index: 'resourceCode' index: 'resourceCode'
}, },
{
title: '运费明细',
width: '100px',
className: 'text-center',
render: 'billExpenseDetailVOList'
},
{ title: '网络货运人', index: 'enterpriseInfoName', width: '120px', className: 'text-center' }, { title: '网络货运人', index: 'enterpriseInfoName', width: '120px', className: 'text-center' },
{ title: '货主', index: 'shipperAppUserName', width: '120px', className: 'text-center' }, { title: '货主', index: 'shipperAppUserName', width: '120px', className: 'text-center' },
{ title: '关联订单号', render: 'wayBill', width: '120px', className: 'text-center' }, { title: '关联订单号', render: 'wayBill', width: '120px', className: 'text-center' },
@ -338,10 +351,12 @@ tabs = {
{ {
text: '确认发车', text: '确认发车',
click: (_record) => this.sureDepart(_record), click: (_record) => this.sureDepart(_record),
iif: item => item.wayBillStatus == '2' ,
}, },
{ {
text: '确认到车', text: '确认到车',
click: (_record) => this.sureArrive(_record), click: (_record) => this.sureArrive(_record),
iif: item => item.wayBillStatus == '3' ,
}, },
], ],
}, },
@ -548,4 +563,6 @@ tabs = {
nzFooter: null nzFooter: null
}); });
} }
} }