/* * @Description : * @Version : 1.0 * @Author : Shiming * @Date : 2021-12-28 14:42:03 * @LastEditors : Shiming * @LastEditTime : 2022-03-29 16:08:56 * @FilePath : \\tms-obc-web\\src\\app\\routes\\order-management\\components\\vehicle-detail\\vehicle-detail.component.ts * Copyright (C) 2022 huzhenhong. All rights reserved. */ import { Component, OnInit } from '@angular/core'; import { ActivatedRoute, Router } from '@angular/router'; import { STColumn } from '@delon/abc/st'; import { NzCardComponent } from 'ng-zorro-antd/card'; import { NzMessageService } from 'ng-zorro-antd/message'; import { NzModalService } from 'ng-zorro-antd/modal'; import format from 'date-fns/format'; import { OrderManagementService } from '../../services/order-management.service'; @Component({ selector: 'app-supply-management-vehicle-detail', templateUrl: './vehicle-detail.component.html', styleUrls: ['./vehicle-detail.component.less'] }) export class OrderManagementVehicleDetailComponent implements OnInit { id = this.route.snapshot.params.id; modalcontent: any; modalTitle:string = ''; trajectory = 'car'; mapList: any[] = []; //地图点位数据组 pois: any[] = []; addressItems: any[] = []; //打点地址数据组 abnormalList: any[] = []; i: any = { unLoadingPlaceList: [], billExpenseDetails: [], goodsInfoList: [], goodsResource: [] }; billExpenses: any[] = []; //运费信息表格信息 imges: any; attObj: any; totalObj: any; approvalLsit: any; isVisible = false; logColumns2: STColumn[] = [ { title: '时间', index: 'vinOutTime' }, { title: '地点', index: 'cityName' } ]; logColumns: STColumn[] = [ { title: '款项', index: 'expenseCodeLabel' }, { title: '小计(元)', render: 'prices' }, { title: '运输费(元)', render: 'price' }, { title: '附加费(元)', render: 'surcharge' }, { title: '支付时间', index: 'paymentTime' }, { title: '支付状态', className: 'text-center', index: 'paymentStatus', type: 'badge', width: '120px', badge: { '1': { text: '待申请', color: 'warning' }, '2': { text: '已支付', color: 'success' }, '3': { text: '已拒绝', color: 'warning' }, '4': { text: '申请中', color: 'warning' } } } ]; constructor( public route: ActivatedRoute, private msgSrv: NzMessageService, private service: OrderManagementService, private router: Router, private modal: NzModalService ) {} ngOnInit(): void { this.initData(); this.getTrajectory(); } initData() { this.service.request(this.service.$api_get_getWholeBillDetail, { id: this.id }).subscribe(res => { if (res) { this.i = res; this.pois = [ { markerLabel: '起', color: 'blue', position: [res.startingPoint.longitude, res.startingPoint.latitude], title: res.startingPoint.detailedAddress }, { markerLabel: '卸', color: 'red', position: [res.endPoint.longitude, res.endPoint.latitude], title: res.endPoint.detailedAddress } ]; this.billExpenses = this.i?.billExpenseDetails?.filter( (data: any) => data.expenseCode === 'PRE' || data.expenseCode === 'RECE' || data.expenseCode === 'BACK' ); this.i.scheduleVOList = this.i?.scheduleVOList?.filter((data: any) => data.displayStatus !== 'HIDE'); } }); this.service.request(this.service.$api_listBillComplianceAbnormalByBillId, { id: this.id }).subscribe(res => { if (res) { console.log('风险详情') console.log(res) this.abnormalList = res } }); this.service.request(this.service.$api_getAbnormalWarningByBillId, { id: this.id }).subscribe(res => { if (res) { console.log('异常预警') console.log(res) } }); } // 取消订单 cancellation() { // api_get_cancelAnOrder this.modal.confirm({ nzTitle: '确定取消该订单吗?', nzContent: `取消后无法恢复,请确认`, nzOnOk: () => this.service.request(this.service.$api_get_cancelAnOrder, { id: this.id }).subscribe(res => { if (res === true) { this.service.msgSrv.success('操作成功!'); this.initData(); } }) }); } goBack() { window.history.go(-1); } // 修改订单 changeOrder() { this.router.navigate(['order-management/vehicle-detailChange', this.id]); } agreement(value: any) { if(value ==='1'){ this.modalTitle = '附件信息'; this.modalcontent = this.i?.contractContent?.contractContent; }else if(value === '2'){ this.modalTitle = '补充协议'; this.modalcontent = this.i?.supplementContent?.contractContent; } this.isVisible = true; } handleCancel() { this.isVisible = false; } handleOK() { this.isVisible = false; } goDistance(elf: NzCardComponent) { if (elf) { elf['elementRef'].nativeElement.scrollIntoView({ behavior: 'smooth', block: 'start', inline: 'start' }); // elf['elementRef'].nativeElement.className = 'target-fix' } } // 获取车辆轨迹 getTrajectory() { this.service.request(this.service.$api_get_getTrajectory, { id: this.id }).subscribe(res => { if (res) { const points = res.trackArray; let list: any[] = []; points?.forEach((item: any) => { list.push({ name: `${item.spd}km/h`, lnglat: [Number((Number(item.lon) / 600000).toFixed(6)), Number((Number(item.lat) / 600000).toFixed(6))], time: item.gtm }); }); this.mapList = list; this.addressItems = res.cityArray; if (this.addressItems && this.addressItems.length > 0) { this.addressItems.forEach(item => { item.vinOutTime = this.getLocalTime(item.vinOutTime); }); } } }); } // 获取司机轨迹 getDriverTrajectory() { this.service.request(this.service.$api_get_getAppDriverPosition, { id: this.id }).subscribe(res => { if (res) { const points = res.tracks; let list: any[] = []; points?.forEach((item: any) => { list.push({ name: item.hgt, lnglat: [Number((Number(item.lon) / 600000).toFixed(6)), Number((Number(item.lat) / 600000).toFixed(6))] }); }); this.mapList = list; this.addressItems = [...res.enclosureDataAppTrack]; if (this.addressItems && this.addressItems.length > 0) { this.addressItems.forEach(item => { item.vinOutTime = this.getLocalTime(item.gtm); item.cityName = item.appAdress; }); } } }); } trajectoryChange(event: any) { if (event === 'car') { this.getTrajectory(); } else if (event === 'driver') { this.getDriverTrajectory(); } } getLocalTime(time: any) { return format(new Date(parseInt(time)), 'yyyy-MM-dd HH:mm:ss'); } }