265 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			265 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
| <!--
 | ||
|  * @Description  : 
 | ||
|  * @Version      : 1.0
 | ||
|  * @Author       : Shiming
 | ||
|  * @Date         : 2021-12-28 14:42:03
 | ||
|  * @LastEditors  : Shiming
 | ||
|  * @LastEditTime : 2022-04-22 16:27:43
 | ||
|  * @FilePath     : \\tms-obc-web\\src\\app\\routes\\order-management\\components\\vehicle-detail\\vehicle-detail.component.html
 | ||
|  * Copyright (C) 2022 huzhenhong. All rights reserved.
 | ||
| -->
 | ||
| <page-header-wrapper [title]="'整车订单详情'" [logo]="logo" [content]="headerContent">
 | ||
|   <ng-template #logo>
 | ||
|     <button nz-button nz-tooltip nzTooltipTitle="返回上一页" (click)="goBack()">
 | ||
|       <i nz-icon nzType="left" nzTheme="outline"></i>
 | ||
|     </button>
 | ||
|   </ng-template>
 | ||
|   <ng-template #headerContent>
 | ||
|     <div nz-row>
 | ||
|       <button nz-button nzType="primary" nzSize="small" nzDanger>{{ i?.billStatusLabel }}</button>
 | ||
|       <h4 class="ml-md" style="font-size: 18px">订单号: {{ i?.billCode }}</h4>
 | ||
|     </div>
 | ||
|     <div nz-row style="display: flex; justify-content: end" class="mb-xs">
 | ||
|       <div nz-col>
 | ||
|         <button (click)="cancellation()" nz-button
 | ||
|           *ngIf="i.billStatus == '4' || i.billStatus == '5' || i.billStatus == '2' || i.billStatus == '3' || i.billStatus == '1'"
 | ||
|           acl [acl-ability]="['ORDER-VEHICLE-DETAIL-cancelAnOrder']">取消订单</button>
 | ||
|         <button nz-button (click)="changeOrder()"
 | ||
|           *ngIf="i.billStatus == '4' || i.billStatus == '5' || i.billStatus == '2' || i.billStatus == '3'" acl
 | ||
|           [acl-ability]="['ORDER-VEHICLE-DETAIL-modifyOrder']">修改订单</button>
 | ||
|       </div>
 | ||
|     </div>
 | ||
|     <div>
 | ||
|       <div sv-container>
 | ||
|         <sv label="网络货运人">{{ i?.goodsResource?.enterpriseInfoName }} </sv>
 | ||
|         <sv label="货主">{{ i?.goodsResource?.shipperAppUserName }} </sv>
 | ||
|         <sv label="所属项目">{{ i?.goodsResource?.enterpriseProjectName }}</sv>
 | ||
|         <sv label="服务类型">{{ i?.goodsResource?.serviceTypeLabel }}</sv>
 | ||
|         <sv label="录单员">{{ i?.createUserName }} {{ i?.createUserPhone ? '/' + i?.createUserPhone : '' }} </sv>
 | ||
|         <sv label="调度员">{{ i?.goodsResource?.dispatchName }}{{ i?.goodsResource?.dispatchPhone ? '/' +
 | ||
|           i?.goodsResource?.dispatchPhone : '' }}
 | ||
|         </sv>
 | ||
|         <sv label="外部订单号">{{ i?.externalBillCode }}</sv>
 | ||
|         <sv label="货源编号">{{ i?.goodsResource?.resourceCode }} </sv>
 | ||
|         <sv label="运单号">{{ i?.wayBill?.wayBillCode }}</sv>
 | ||
|         <sv label="承诺付款天数">{{ i?.goodsResource?.paymentDays }}</sv>
 | ||
|       </div>
 | ||
| 
 | ||
|       <nz-tabset style="margin-top: 15px">
 | ||
|         <nz-tab nzTitle="装卸货信息" (nzClick)="goDistance(distannce1)"> </nz-tab>
 | ||
|         <nz-tab nzTitle="基本信息" (nzClick)="goDistance(distannce2)"> </nz-tab>
 | ||
|         <nz-tab nzTitle="运费信息" (nzClick)="goDistance(distannce3)"> </nz-tab>
 | ||
|         <nz-tab nzTitle="附件信息" (nzClick)="goDistance(distannce4)"> </nz-tab>
 | ||
|         <nz-tab nzTitle="轨迹信息" (nzClick)="goDistance(distannce5)"> </nz-tab>
 | ||
|       </nz-tabset>
 | ||
|     </div>
 | ||
|   </ng-template>
 | ||
| </page-header-wrapper>
 | ||
| <nz-card nzTitle="运单进度" #distannce1>
 | ||
|   <div class="approval-status">
 | ||
|     <div style="width: 60%; margin: 0 auto">
 | ||
|       <nz-steps [nzCurrent]="i?.scheduleVOList?.length + 1" nzLabelPlacement="vertical">
 | ||
|         <nz-step *ngFor="let item of i?.scheduleVOList" [nzTitle]="item.state" [nzSubtitle]="item.stateTime"
 | ||
|           [nzDescription]="item.cancelReason ? '取消原因:' + item.cancelReason : ''"
 | ||
|           [nzStatus]="item.displayStatus === 'SHOW' ? 'finish' : 'wait'"></nz-step>
 | ||
|       </nz-steps>
 | ||
|     </div>
 | ||
|   </div>
 | ||
| </nz-card>
 | ||
| 
 | ||
| <nz-card nzTitle="基本信息" #distannce2>
 | ||
|   <sv-container col="1">
 | ||
|     <sv-title>货物信息</sv-title>
 | ||
|     <sv label="网络货运人">
 | ||
|       {{ i?.goodsResource?.enterpriseInfoName }}
 | ||
|     </sv>
 | ||
|     <sv label="货物名称">
 | ||
|       {{i?.goodsInfoList?.[0]?.goodsName}}
 | ||
|     </sv>
 | ||
|   </sv-container>
 | ||
|   <sv-container col="2">
 | ||
|     <sv label="货物数量">
 | ||
|       {{i?.goodsInfoList?.[0]?.weight}}吨,{{i?.goodsInfoList?.[0]?.volume}}方,{{i?.goodsInfoList?.[0]?.number}}件 </sv>
 | ||
|     <sv label="用车需求">{{ i?.carModel }}{{ i?.carLength ? '/' + i?.carLength : '' }}</sv>
 | ||
|     <sv label="承运司机"> {{ i?.driverName }}{{ i?.driverPhone ? '/' + i?.driverPhone : '' }}{{ i?.carNo ? '/' + i?.carNo :
 | ||
|       '' }} </sv>
 | ||
|     <sv label="车型车长载重"> {{ i?.driverCarModelLabel }},{{ i?.driverCarLengthLabel }}米,{{ i?.driverCarWeight }}吨 </sv>
 | ||
|   </sv-container>
 | ||
|   <div class="mt-md">
 | ||
|     <h4 class="text-md">装货卸货信息
 | ||
|       <span class="ml-sm text-sm">(
 | ||
|         <label>{{ i?.loadingCount }}装</label>
 | ||
|         <label>{{ i?.unloadingCount }}卸</label>
 | ||
|         )
 | ||
|       </span>
 | ||
|     </h4>
 | ||
|     <div nz-row [nzGutter]="24">
 | ||
|       <div nz-col [nzSpan]="12">
 | ||
|         <div class="handling-info p-md">
 | ||
|           <div class="flex" *ngFor="let item of i?.unLoadingPlaceList">
 | ||
|             <div *ngIf="item.type === '1'" class="loading-row">
 | ||
|               <div class="handling-info-icon loading-bg">装</div>
 | ||
|               <div class="info">
 | ||
|                 <h4>装货地:{{ item?.province }}{{ item.city }}{{ item.area }}{{ item.detailedAddress }}</h4>
 | ||
|                 <p>联系人:{{ item.appUserName }}{{ item.contractTelephone ? '/' + item.contractTelephone : '' }}</p>
 | ||
|               </div>
 | ||
|             </div>
 | ||
|           </div>
 | ||
|           <p class="time-info">计划装货时间:{{ i?.goodsResource?.loadingTime }}</p>
 | ||
|         </div>
 | ||
|       </div>
 | ||
|       <div nz-col [nzSpan]="12">
 | ||
|         <div class="handling-info p-md">
 | ||
|           <div class="flex" *ngFor="let item of i?.unLoadingPlaceList">
 | ||
|             <div *ngIf="item.type === '2'" class="loading-row">
 | ||
|               <div class="handling-info-icon unloaing-bg">卸</div>
 | ||
|               <div class="info">
 | ||
|                 <h4>卸货地:{{ item?.province }}{{ item.city }}{{ item.area }}{{ item.detailedAddress }}</h4>
 | ||
|                 <p>联系人:{{ item.appUserName }}{{ item.contractTelephone ? '/' + item.contractTelephone : '' }}</p>
 | ||
|               </div>
 | ||
|             </div>
 | ||
|           </div>
 | ||
|           <p class="time-info">计划卸货时间:{{ i?.goodsResource?.unloadingTime }}</p>
 | ||
|         </div>
 | ||
|       </div>
 | ||
|     </div>
 | ||
|   </div>
 | ||
| </nz-card>
 | ||
| <nz-card nzTitle="服务信息">
 | ||
|   <sv-container>
 | ||
|     <sv label="服务包">
 | ||
|       {{ i?.goodsResource?.insuranceTypeLabel }}
 | ||
|     </sv>
 | ||
|     <sv label="货物价值">
 | ||
|       {{ i?.goodsResource?.goodsValue !== null ? (i?.goodsResource?.goodsValue | currency) + '元' : '-' }}
 | ||
|     </sv>
 | ||
|     <sv label="服务包费用">
 | ||
|       {{ i?.goodsResource?.insurancePremium !== null ? (i?.goodsResource?.insurancePremium | currency) + '元' : '-' }}
 | ||
|     </sv>
 | ||
|   </sv-container>
 | ||
| </nz-card>
 | ||
| 
 | ||
| <nz-card nzTitle="运费信息" #distannce3>
 | ||
|   <st #st [data]="billExpenses" [columns]="logColumns" [ps]="0" [page]="{ show: false, showSize: false }">
 | ||
|     <ng-template st-row="price" let-item let-index="index">
 | ||
|       {{ item.price | currency }}
 | ||
|     </ng-template>
 | ||
|     <ng-template st-row="prices" let-item let-index="index">
 | ||
|       {{ item.price + item.surcharge | currency }}
 | ||
|     </ng-template>
 | ||
|     <ng-template st-row="surcharge" let-item let-index="index">
 | ||
|       {{ item.surcharge | currency }}
 | ||
|     </ng-template>
 | ||
|   </st>
 | ||
|   <div>
 | ||
|     总计:<span style="color: #da001b; font-size: 18px">{{ i?.totalAmount | currency }}</span> (运费{{ i?.totalFreight |
 | ||
|     currency }},
 | ||
|     附加费{{ i?.totalSurcharge | currency }},附加费率{{ (i?.totalRate * 100).toFixed(2) }}% )
 | ||
|   </div>
 | ||
|   <div *ngIf="i?.payeePhone && i?.payeePhone !== i?.driverPhone">车队长:{{ i?.payeeName }}{{ i?.payeePhone ? '/' +
 | ||
|     i?.payeePhone : '' }}/{{ i?.payeeIdNo }}</div>
 | ||
| </nz-card>
 | ||
| 
 | ||
| <nz-card nzTitle="附件信息" #distannce4>
 | ||
|   <sv-container>
 | ||
|     <sv label="协议附件">
 | ||
|       <a *ngIf="i?.contractContent?.contractContent" (click)="agreement('1')">查看附件</a>     
 | ||
|       <a *ngIf="i?.supplementContent?.contractContent" (click)="agreement('2')">补充协议</a>
 | ||
|     </sv>
 | ||
|   </sv-container>
 | ||
|   <sv-container col="2" class="mt-md">
 | ||
|     <sv label="装货凭证">
 | ||
|       <app-imagelist [imgList]="[i?.loadingLadingBillFilePath, i?.loadingPeopleVehiclesGoodsFilePath]"> </app-imagelist>
 | ||
|     </sv>
 | ||
|     <sv label="卸货凭证">
 | ||
|       <app-imagelist [imgList]="[i?.unloadingLadingBillFilePath, i?.unloadingPeopleVehiclesGoodsFilePath]">
 | ||
|       </app-imagelist>
 | ||
|     </sv>
 | ||
|   </sv-container>
 | ||
| </nz-card>
 | ||
| <nz-card nzTitle="补充信息">
 | ||
|   <sv-container>
 | ||
|     <sv label="是否回单">
 | ||
|       {{ i?.supplementaryInformationVO?.stateReceipt ? '是' : '否' }}
 | ||
|     </sv>
 | ||
|     <sv label="回单类型" *ngIf="i?.supplementaryInformationVO?.stateReceipt">
 | ||
|       {{ i?.supplementaryInformationVO?.receiptType === '1' ? '电子回单' : '纸质回单' }}
 | ||
|     </sv>
 | ||
|     <sv label="联系人" *ngIf="i?.supplementaryInformationVO?.stateReceipt">
 | ||
|       {{ i?.supplementaryInformationVO?.receiptUserName }} / {{ i?.supplementaryInformationVO?.phon }}
 | ||
|     </sv>
 | ||
|     <sv label="所在地区" *ngIf="i?.supplementaryInformationVO?.stateReceipt">
 | ||
|       {{ i?.supplementaryInformationVO?.area }}
 | ||
|     </sv>
 | ||
|     <sv label="详细地址" *ngIf="i?.supplementaryInformationVO?.stateReceipt">
 | ||
|       {{ i?.supplementaryInformationVO?.address }}
 | ||
|     </sv>
 | ||
|   </sv-container>
 | ||
|   <sv-container col="1" class="mt-md">
 | ||
|     <sv label="回单凭证" *ngIf="i?.supplementaryInformationVO?.stateReceipt">
 | ||
|       <app-imagelist [imgList]="i?.receiptFilePath"></app-imagelist>
 | ||
|     </sv>
 | ||
|     <sv label="备注">
 | ||
|       {{ i?.goodsResource?.remarks }}
 | ||
|     </sv>
 | ||
|   </sv-container>
 | ||
| </nz-card>
 | ||
| 
 | ||
| <nz-card  #distannce5>
 | ||
|   <p class="detail_title"><span>|</span> 轨迹信息</p>
 | ||
|   <div nz-row>
 | ||
|     <div nz-col [nzSpan]="24">
 | ||
|       <amap-path-simplifier [mapWidth]="'100%'" [mapHeight]="'600px'" [mapList]="mapList" [pois]="pois">
 | ||
|       </amap-path-simplifier>
 | ||
|       <st [scroll]="{ y: '350px' }" #st [data]="addressItems" [columns]="logColumns2" [ps]="0"
 | ||
|         [page]="{ show: false, showSize: false }" size="small" class="map_st">
 | ||
|       </st>
 | ||
|       <nz-radio-group [(ngModel)]="trajectory" (ngModelChange)="trajectoryChange($event)" class="map_radio">
 | ||
|         <label nz-radio-button nzValue="car">车辆轨迹</label>
 | ||
|         <label nz-radio-button nzValue="driver">司机轨迹</label>
 | ||
|       </nz-radio-group>
 | ||
|     </div>
 | ||
|   </div>
 | ||
| </nz-card>
 | ||
| 
 | ||
| <nz-card>
 | ||
|   <nz-tabset>
 | ||
|     <nz-tab nzTitle="风险异常检测">
 | ||
|       <div *ngIf="abnormalList.length > 0">
 | ||
|         <div> 您的订单可能存在交易风险,请及时提交申诉材料,提交成功后,平台将及时完成审核并通知您! </div>
 | ||
|         <div>如果您的运单没有问题,可以提出申诉,并提供相关资料,我们将24小时内审核反馈</div>
 | ||
|         <ul *ngFor="let item of abnormalList">
 | ||
|           <li style="color: red;">系统识别:{{ item?.complianceName }}</li>
 | ||
|           <li style="color: red;">{{ item?.determineDetails }}</li>
 | ||
|         </ul>
 | ||
|       </div>
 | ||
|     </nz-tab>
 | ||
|     <nz-tab nzTitle="异常预警">
 | ||
|       <st #st [data]="service.$api_get_order_abnormalWarning" [columns]="logColumns3"
 | ||
|         [res]="{ reName: { list: 'data' } }" [req]="{params:{id:route.snapshot.params.id}}"
 | ||
|         [page]="{ show: false, showSize: false }"> </st>
 | ||
|     </nz-tab>
 | ||
|     <nz-tab nzTitle="操作日志">
 | ||
|       <!-- <st #logSt [data]="service.$api_get_log_list" [columns]="operateLogColums"
 | ||
|       [req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, params: logParams ,lazyLoad:true}"
 | ||
|       [res]="{ reName: { list: 'data.records', total: 'data.total' } }">
 | ||
|       <ng-template st-row="operator" let-item>
 | ||
|         {{item?.operator}}/{{item.telephone}}
 | ||
|       </ng-template>
 | ||
|     </st> -->
 | ||
|       <app-logistics-time-line [data]="operationList"></app-logistics-time-line>
 | ||
| 
 | ||
|     </nz-tab>
 | ||
|   </nz-tabset>
 | ||
| </nz-card>
 | ||
| <nz-modal [(nzVisible)]="isVisible" nzWidth="1000px" [nzFooter]="nzModalFooter" [nzTitle]="modalTitle"
 | ||
|   (nzOnOk)="handleOK()" (nzOnCancel)="handleCancel()">
 | ||
|   <ng-container *nzModalContent>
 | ||
|     <div *ngIf="!modalcontent">暂无附件信息</div>
 | ||
|     <div [innerHTML]="modalcontent"></div>
 | ||
|   </ng-container>
 | ||
|   <ng-template #nzModalFooter>
 | ||
|     <button nz-button nzType="primary" (click)="handleOK()" [disabled]="">取消</button>
 | ||
|     <button nz-button nzType="default" (click)="handleCancel()">确定 </button>
 | ||
|   </ng-template>
 | ||
| </nz-modal> |