电子装货单
diff --git a/src/app/routes/order-management/modal/audit/voucher-view/voucher-view.component.ts b/src/app/routes/order-management/modal/audit/voucher-view/voucher-view.component.ts
index c8ae7969..80ec4a45 100644
--- a/src/app/routes/order-management/modal/audit/voucher-view/voucher-view.component.ts
+++ b/src/app/routes/order-management/modal/audit/voucher-view/voucher-view.component.ts
@@ -509,11 +509,75 @@ export class orderManagementVoucherViewComponent implements OnInit {
});
}
sure() {
- const params = [this.i?.id];
- this.service.downloadFile(this.service.$api_createBillTakeGoods, params);
- this.service.downloadFile(this.service.$api_createBillDischargeGoods, params);
- this.service.msgSrv.success('生成电子单据成功!');
- this.modal.destroy(true);
+ // const params = [this.i?.id];
+ // this.service.downloadFile(this.service.$api_createBillTakeGoods, params);
+ // this.service.downloadFile(this.service.$api_createBillDischargeGoods, params);
+ // 逻辑: 先判断电子提货单是否已生成,文件为空则触发签署文件,再查询是否签署成功,成功则退出,刷新页面,再次点击为预览
+ let time = 10;
+ setInterval(function () {
+ time -= 1;
+ }, 1000);
+ const modal = this.modalService.success({
+ nzTitle: '电子装货单和电子卸货单签署中!',
+ nzContent: `
+ 请等待${time}秒后自动关闭
+ `
+ });
+ this.service.request(this.service.$api_createBillTakeGoods, [this.datas?.id]).subscribe(res => {
+ if (res) {
+ switch (res[0]?.esignFlowStatus) {
+ case 1:
+ case '1':
+ setTimeout(() => {
+ this.service.request(this.service.$api_getBillTakeEsignFile, [this.datas?.id]).subscribe(res => {
+ if (res[0]?.esignFlowStatus == '2') {
+ }
+ });
+ }, 9000);
+ return;
+ case 2:
+ return;
+ case '13':
+ default:
+ this.service.msgSrv.error('电子装货单签署异常!');
+ modal.destroy();
+ return;
+ }
+ } else {
+ this.service.msgSrv.error('电子装货单签署异常!');
+ modal.destroy();
+ }
+ });
+ this.service.request(this.service.$api_createBillDischargeGoods, [this.datas?.id]).subscribe(res => {
+ if (res) {
+ switch (res[0]?.esignFlowStatus) {
+ case 1:
+ case '1':
+ setTimeout(() => {
+ this.service.request(this.service.$api_getBillDischargeEsignFile, [this.datas?.id]).subscribe(res => {
+ if (res[0]?.esignFlowStatus == '2') {
+ this.service.msgSrv.success('生成电子单据成功!');
+ this.modal.destroy(true);
+ }
+ });
+ modal.destroy();
+ }, 9000);
+
+ return;
+ case 2:
+ modal.destroy();
+ return;
+ default:
+ this.service.msgSrv.error('电子卸货单签署异常!');
+ modal.destroy();
+ return;
+ }
+ } else {
+ this.service.msgSrv.error('电子卸货单签署异常!');
+ modal.destroy();
+ }
+ });
+
}
// 确认到车界面信息(两个只能看的图片)
initData() {
@@ -590,101 +654,4 @@ export class orderManagementVoucherViewComponent implements OnInit {
});
}
}
- // openlaod2(value: any) {
- // if (value === 1) {
- // // 逻辑: 先判断电子提货单是否已生成,文件为空则触发签署文件,再查询是否签署成功,成功则退出,刷新页面,再次点击为预览
- // let time = 10;
- // setInterval(function () {
- // time -= 1;
- // }, 1000);
- // const modal = this.modalService.success({
- // nzTitle: '电子装货单签署中!',
- // nzContent: `
- // 请等待${time}秒后自动关闭
- // `
- // });
- // if (!this.datas?.loadingElectronicsLadingBillFilePath) {
- // this.service.request(this.service.$api_createBillTakeGoods, [this.datas?.id]).subscribe(res => {
- // if (res) {
- // switch (res[0]?.esignFlowStatus) {
- // case 1:
- // case '1':
- // setTimeout(() => {
- // this.service.request(this.service.$api_getBillTakeEsignFile, [this.datas?.id]).subscribe(res => {
- // if (res[0]?.esignFlowStatus == '2') {
- // this.service.msgSrv.success('电子装货单已生效!');
- // this.modal.destroy(true);
- // }
- // });
- // modal.destroy();
- // }, 10000);
- // return;
- // case 2:
- // modal.destroy();
- // return;
- // case '13':
- // case 13:
- // this.service.msgSrv.error('签署异常!');
- // modal.destroy();
- // return;
- // }
- // }
- // });
- // } else {
- // const a = document.createElement('a');
- // a.href = this.datas?.loadingElectronicsLadingBillFilePath;
- // document.body.appendChild(a);
- // a.click(); //点击下载
- // document.body.removeChild(a); //下载完成移除元素
- // }
- // } else {
- // // 逻辑: 先判断电子提货单是否已生成,文件为空则触发签署文件,再查询是否签署成功,成功则退出,刷新页面,再次点击为预览
- // let time = 10;
- // setInterval(function () {
- // time -= 1;
- // }, 1000); //反复执行函数本身
- // const modal = this.modalService.success({
- // nzTitle: '电子卸货单签署中!',
- // nzContent: `
- // 请等待${time}秒后自动关闭
- // `
- // });
- // if (!this.datas?.unloadingElectronicsLadingBillFilePath) {
- // this.service.request(this.service.$api_createBillDischargeGoods, [this.datas?.id]).subscribe(res => {
- // if (res) {
- // switch (res[0]?.esignFlowStatus) {
- // case 1:
- // case '1':
- // setTimeout(() => {
- // this.service.request(this.service.$api_getBillDischargeEsignFile, [this.datas?.id]).subscribe(res => {
- // if (res[0]?.esignFlowStatus == '2') {
- // this.service.msgSrv.success('电子卸货单已生效!');
- // this.modal.destroy(true);
- // }
- // });
- // modal.destroy();
- // }, 10000);
-
- // return;
- // case 2:
- // modal.destroy();
-
- // return;
- // case '13':
- // case 13:
- // this.service.msgSrv.error('签署异常!');
- // modal.destroy();
- // return;
- // }
- // }
- // });
- // } else {
- // const a = document.createElement('a');
- // a.href = this.datas?.unloadingElectronicsLadingBillFilePath;
- // document.body.appendChild(a);
- // a.click(); //点击下载
- // document.body.removeChild(a); //下载完成移除元素
- // }
- // }
- // }
}
diff --git a/src/app/routes/order-management/modal/vehicle/modify-captain/modify-captain.component.ts b/src/app/routes/order-management/modal/vehicle/modify-captain/modify-captain.component.ts
index 845db74c..e2e8182c 100644
--- a/src/app/routes/order-management/modal/vehicle/modify-captain/modify-captain.component.ts
+++ b/src/app/routes/order-management/modal/vehicle/modify-captain/modify-captain.component.ts
@@ -4,7 +4,7 @@
* @Author : Shiming
* @Date : 2021-12-30 14:45:39
* @LastEditors : Shiming
- * @LastEditTime : 2022-03-24 10:28:48
+ * @LastEditTime : 2022-04-22 15:42:08
* @FilePath : \\tms-obc-web\\src\\app\\routes\\order-management\\modal\\vehicle\\modify-captain\\modify-captain.component.ts
* Copyright (C) 2022 huzhenhong. All rights reserved.
*/
@@ -44,7 +44,8 @@ export class VehicleModifyCaptainComponent implements OnInit {
mobile: {
type: 'string',
title: '车队长手机号',
- maxLength: 11
+ maxLength: 11,
+ default: ''
}
},
required: ['mobile']
@@ -103,8 +104,6 @@ export class VehicleModifyCaptainComponent implements OnInit {
if (res) {
this.modal.destroy();
this.service.msgSrv.success('修改成功');
- } else {
- this.service.msgSrv.error(res?.msg);
}
});
}
@@ -114,7 +113,6 @@ export class VehicleModifyCaptainComponent implements OnInit {
...this.sf?.value
};
this.service.request(this.service.$api_get_getCarCaptainByMobile, params).subscribe((res: any) => {
- console.log(res);
if (res) {
this.dataList = [res];
}
diff --git a/src/app/routes/order-management/modal/vehicle/view-track/view-track.component.html b/src/app/routes/order-management/modal/vehicle/view-track/view-track.component.html
index ad50faeb..97426178 100644
--- a/src/app/routes/order-management/modal/vehicle/view-track/view-track.component.html
+++ b/src/app/routes/order-management/modal/vehicle/view-track/view-track.component.html
@@ -10,11 +10,11 @@
-->
-
+
-
+ [page]="{ show: false, showSize: false }" size="small" class="map_st">
+
diff --git a/src/app/routes/order-management/modal/vehicle/view-track/view-track.component.less b/src/app/routes/order-management/modal/vehicle/view-track/view-track.component.less
index ae775710..64f5143e 100644
--- a/src/app/routes/order-management/modal/vehicle/view-track/view-track.component.less
+++ b/src/app/routes/order-management/modal/vehicle/view-track/view-track.component.less
@@ -1,11 +1,84 @@
:host {
- ::ng-deep {
- // .mapBox {
- // iframe, canvas {
- // width: 400px !important;
- // }
- // }
-
- }
-
- }
\ No newline at end of file
+ .btn-size {
+ font-size: 14px;
+ }
+
+ .bdr {
+ border-right: 1px solid #ccc;
+ }
+
+ .bdl {
+ border-left: 1px solid #ccc;
+ }
+
+ .source-info {
+ p {
+ margin-bottom: .5em;
+ }
+ }
+
+ .freight-info-box {
+ width: 95%;
+ }
+
+ .freigth-label {
+ display : inline-block;
+ width : 50px;
+ text-align: right;
+ }
+
+ ::ng-deep {
+ .approval-status {
+ .ant-steps {
+ width : 70%;
+ margin: 0 auto;
+ }
+ }
+
+ }
+
+ .leftPadding {
+ padding-right: 100px;
+ }
+ .hide{
+ display: none;
+ }
+ .handling-info {
+ min-height: 100px;
+ border: 1px solid #ccc;
+
+ .loading-row {
+ display: flex;
+ }
+
+ .handling-info-icon {
+ width: 32px;
+ height: 32px;
+ margin-right: 24px;
+ color: #fff;
+ line-height: 32px;
+ text-align: center;
+ border-radius: 50%;
+
+ &.loading-bg {
+ background-color: #50D4AB;
+ }
+
+ &.unloaing-bg {
+ background: #F66F6A;
+ }
+ }
+
+ .info {
+ flex: 1;
+ }
+
+ .time-info {
+ margin-left: 56px;
+ }
+ }
+ .target-fix {
+ display: block;
+ margin-top: 290px;
+ }
+}
\ No newline at end of file
diff --git a/src/app/routes/order-management/modal/vehicle/view-track/view-track.component.ts b/src/app/routes/order-management/modal/vehicle/view-track/view-track.component.ts
index 0b5c1dff..b0864915 100644
--- a/src/app/routes/order-management/modal/vehicle/view-track/view-track.component.ts
+++ b/src/app/routes/order-management/modal/vehicle/view-track/view-track.component.ts
@@ -4,7 +4,7 @@
* @Author : Shiming
* @Date : 2022-02-22 13:53:29
* @LastEditors : Shiming
- * @LastEditTime : 2022-03-08 16:11:58
+ * @LastEditTime : 2022-04-22 15:49:04
* @FilePath : \\tms-obc-web\\src\\app\\routes\\order-management\\modal\\vehicle\\view-track\\view-track.component.ts
* Copyright (C) 2022 huzhenhong. All rights reserved.
*/
@@ -24,6 +24,7 @@ import { _HttpClient } from '@delon/theme';
import { NzMessageService } from 'ng-zorro-antd/message';
import { NzModalRef, NzModalService } from 'ng-zorro-antd/modal';
import { OrderManagementService } from '../../../services/order-management.service';
+import { ThisReceiver } from '@angular/compiler';
@Component({
selector: 'app-order-management-view-track',
@@ -37,9 +38,11 @@ export class OneCarOrderViewtrackComponent implements OnInit {
mapList: any[] = []; //地图点位数据组
addressItems: any[] = []; //打点地址数据组
logColumns2: STColumn[] = [
- { title: '时间', index: 'parkBte' },
+ { title: '时间', index: 'parkBte', width: 120, className: 'text-center' },
{ title: '地点', index: 'parkAdr' }
];
+ pois: any[] = [];
+
constructor(
private modalRef: NzModalRef,
private modal: NzModalService,
@@ -56,23 +59,48 @@ export class OneCarOrderViewtrackComponent implements OnInit {
}
// 获取车辆轨迹
getTrajectory() {
- this.service.request(this.service.$api_get_getTrajectory, { id: this.i?.id }).subscribe(res => {
+ this.service.request(this.service.$api_get_getWholeBillDetail, { id: this.i.id }).subscribe(res => {
+ if (res) {
+ this.pois = [
+ {
+ markerLabel: '装',
+ color: 'blue',
+ position: [res.startingPoint.longitude, res.startingPoint.latitude],
+ title: `发货地:${res.startingPoint.province}${res.startingPoint.city}${res.startingPoint.area || ''}${
+ res.startingPoint.detailedAddress
+ }`,
+ time: '计划出发时间:' + res.loadPlanTime
+ },
+ {
+ markerLabel: '卸',
+ color: 'red',
+ position: [res.endPoint.longitude, res.endPoint.latitude],
+ title: `卸货地:${res.endPoint.province}${res.endPoint.city}${res.endPoint.area}${res.endPoint.detailedAddress}`,
+ time: '计划卸货时间:' + res.unloadPlanTime
+ }
+ ];
+ }
+ });
+ this.service.request(this.service.$api_get_getTrajectory, { id: this.i.id }).subscribe(res => {
if (res) {
const points = res.trackArray;
let list: any[] = [];
points?.forEach((item: any) => {
list.push({
- name: item.hgt,
+ name: `${item.spd}`,
lnglat: [Number((Number(item.lon) / 600000).toFixed(6)), Number((Number(item.lat) / 600000).toFixed(6))],
time: item.gtm
});
});
this.mapList = list;
- this.addressItems = res.parkAdr;
- if (this.addressItems && this.addressItems.length > 0) {
- this.addressItems.forEach(item => {
+ const addressItems: any[] = res.parkArray;
+ if (addressItems?.length > 0) {
+ addressItems.forEach(item => {
item.parkBte = this.getLocalTime(item.parkBte);
});
+ this.addressItems = [...addressItems];
+ } else {
+ this.addressItems = [];
}
}
});
@@ -80,7 +108,7 @@ export class OneCarOrderViewtrackComponent implements OnInit {
// 获取司机轨迹
getDriverTrajectory() {
- this.service.request(this.service.$api_get_getAppDriverPosition, { id: this.i?.id }).subscribe(res => {
+ this.service.request(this.service.$api_get_getAppDriverPosition, { id: this.i.id }).subscribe(res => {
if (res) {
const points = res.tracks;
let list: any[] = [];
@@ -91,7 +119,7 @@ export class OneCarOrderViewtrackComponent implements OnInit {
time: item.gtm
});
});
- this.mapList = list;
+ this.mapList = list || [];
const addressItems = [...res.tracks];
if (addressItems) {
addressItems.forEach(item => {
diff --git a/src/app/routes/vehicle/components/audit/detail/detail.component.html b/src/app/routes/vehicle/components/audit/detail/detail.component.html
index eb678c6f..608a8bb0 100644
--- a/src/app/routes/vehicle/components/audit/detail/detail.component.html
+++ b/src/app/routes/vehicle/components/audit/detail/detail.component.html
@@ -1,5 +1,5 @@
-210}">
+ 210 }">
- 车牌号:{{detailData?.carNo}}
-
+ 车牌号:{{ detailData?.carNo }}
+
未上传
草稿
待审核
已审核
已驳回
证件过期
-
-
-
-
+ 修改
取消
@@ -41,14 +46,17 @@
-
-
+
- 车辆基础信息
-
+ 车辆基础信息
-
+
@@ -57,25 +65,46 @@
[nzShowArrow]="isEdit" [nzDisabled]="!isEdit">
-->
-
+
-
+
-
+
-
+
@@ -84,23 +113,38 @@
+ *ngTemplateOutlet="
+ uploadTemplate;
+ context: { image: detailData?.carFrontPhotoWatermark, key: 'carFrontPhotoWatermark', hover: 'PhotoWatermark2' }
+ "
+ >
- 行驶证信息
+ 行驶证信息
-
+
-
+
@@ -108,12 +152,24 @@
-
+
-
+
@@ -121,16 +177,32 @@
-
+
-
+
-
+
@@ -139,64 +211,127 @@
-
+
-
+
-
+
+ *ngTemplateOutlet="
+ uploadTemplate;
+ context: { image: detailData?.certificatePhotoFrontWatermark, key: 'certificatePhotoFrontWatermark', hover: 'FrontWatermark' }
+ "
+ >
+ *ngTemplateOutlet="
+ uploadTemplate;
+ context: { image: detailData?.certificatePhotoBackWatermark, key: 'certificatePhotoBackWatermark', hover: 'BackWatermark' }
+ "
+ >
- 道路运输证信息
+ 道路运输证信息
-
+
-
+
-
+
-
+
+ *ngTemplateOutlet="
+ uploadTemplate;
+ context: { image: detailData?.roadTransportPhotoWatermark, key: 'roadTransportPhotoWatermark', hover: 'Watermark' }
+ "
+ >
- 认证司机
+ 认证司机
-
+
未上传
@@ -210,7 +345,6 @@
-
@@ -218,30 +352,42 @@
{{ detailData?.carNo }}
-
+
-
+
上传
-
-
![]()
+
+
-
\ No newline at end of file
+
diff --git a/src/app/routes/vehicle/components/audit/detail/detail.component.ts b/src/app/routes/vehicle/components/audit/detail/detail.component.ts
index 5e17a8f8..89ece581 100644
--- a/src/app/routes/vehicle/components/audit/detail/detail.component.ts
+++ b/src/app/routes/vehicle/components/audit/detail/detail.component.ts
@@ -61,10 +61,10 @@ export class VehicleComponentsAuditDetailComponent implements OnInit, OnDestroy
initST() {
this.columns = [
- { title: '司机姓名', index: 'name', className: 'text-center' },
- { title: '司机手机号', index: 'mobile', className: 'text-center' },
- { title: '身份证号', index: 'idCardNo', className: 'text-center' },
- { title: '挂靠协议', render: 'auditStatusEnum', className: 'text-center' },
+ { title: '司机姓名', index: 'name', width: 150, className: 'text-center' },
+ { title: '司机手机号', index: 'mobile', width: 200,className: 'text-center' },
+ { title: '身份证号', index: 'idCardNo', width: 200, className: 'text-center' },
+ { title: '挂靠协议', render: 'auditStatusEnum', width: 100,className: 'text-center' },
{
title: '车主申明/挂靠协议',
fixed: 'right',
diff --git a/src/app/routes/vehicle/components/list/detail/detail.component.html b/src/app/routes/vehicle/components/list/detail/detail.component.html
index 56a65d87..f868a506 100644
--- a/src/app/routes/vehicle/components/list/detail/detail.component.html
+++ b/src/app/routes/vehicle/components/list/detail/detail.component.html
@@ -8,11 +8,10 @@
-
-
+
+
- 修改
+ 修改
取消
@@ -23,45 +22,76 @@
- 车辆基础信息
+ 车辆基础信息
-
+
-
+
-
+
-
+
-
+
-
+
@@ -71,7 +101,11 @@
+ *ngTemplateOutlet="
+ uploadTemplate;
+ context: { image: detailData?.carFrontPhotoWatermark, key: 'carFrontPhotoWatermark', hover: 'PhotoWatermark2' }
+ "
+ >
@@ -79,33 +113,62 @@
- 行驶证信息
+ 行驶证信息
-
+
-
+
-
+
-
+
-
+
@@ -113,17 +176,33 @@
-
+
-
+
-
+
@@ -132,68 +211,130 @@
-
+
-
+
-
+
+ *ngTemplateOutlet="
+ uploadTemplate;
+ context: { image: detailData?.certificatePhotoFrontWatermark, key: 'certificatePhotoFrontWatermark', hover: 'FrontWatermark' }
+ "
+ >
+ *ngTemplateOutlet="
+ uploadTemplate;
+ context: { image: detailData?.certificatePhotoBackWatermark, key: 'certificatePhotoBackWatermark', hover: 'BackWatermark' }
+ "
+ >
- 道路运输证信息
+ 道路运输证信息
-
+
-
+
-
+
-
+
+ *ngTemplateOutlet="
+ uploadTemplate;
+ context: { image: detailData?.roadTransportPhotoWatermark, key: 'roadTransportPhotoWatermark', hover: 'Watermark' }
+ "
+ >
- 认证司机
+ 认证司机
-
+
未上传
@@ -208,8 +349,13 @@
-
+
@@ -219,9 +365,7 @@
-
- 暂无评价内容
-
+ 暂无评价内容
@@ -232,23 +376,35 @@
-
+
上传
-
-
![]()
+
+
-
\ No newline at end of file
+
diff --git a/src/app/routes/vehicle/components/list/detail/detail.component.ts b/src/app/routes/vehicle/components/list/detail/detail.component.ts
index 6cdb9990..9e729f83 100644
--- a/src/app/routes/vehicle/components/list/detail/detail.component.ts
+++ b/src/app/routes/vehicle/components/list/detail/detail.component.ts
@@ -89,9 +89,10 @@ export class VehicleComponentsListDetailComponent implements OnInit {
}
initST() {
this.columns = [
- { title: '司机姓名', index: 'name', width: 300, className: 'text-center' },
- { title: '司机手机号', index: 'mobile', width: 300, className: 'text-center' },
- { title: '挂靠协议', render: 'auditStatusEnum', className: 'text-center' },
+ { title: '司机姓名', index: 'name', width: 150, className: 'text-center' },
+ { title: '司机手机号', index: 'mobile', width: 200, className: 'text-center' },
+ { title: '身份证号', index: 'idCardNo',width: 200, className: 'text-center' },
+ { title: '挂靠协议', render: 'auditStatusEnum', width: 100,className: 'text-center' },
{ title: '录入人员', index: 'saveUser', className: 'text-center' },
{
title: '车主申明/挂靠协议',