This commit is contained in:
wangshiming
2022-02-15 15:12:38 +08:00
parent 68fd65f6dc
commit 9e2900ad75
11 changed files with 579 additions and 527 deletions

View File

@ -4,7 +4,7 @@
* @Author : Shiming * @Author : Shiming
* @Date : 2021-12-06 20:20:26 * @Date : 2021-12-06 20:20:26
* @LastEditors : Shiming * @LastEditors : Shiming
* @LastEditTime : 2022-02-10 14:44:36 * @LastEditTime : 2022-02-15 14:52:18
* @FilePath : \\tms-obc-web\\src\\app\\routes\\order-management\\components\\bulk-detail\\bulk-detail.component.html * @FilePath : \\tms-obc-web\\src\\app\\routes\\order-management\\components\\bulk-detail\\bulk-detail.component.html
* Copyright (C) 2022 huzhenhong. All rights reserved. * Copyright (C) 2022 huzhenhong. All rights reserved.
--> -->
@ -16,52 +16,63 @@
</ng-template> </ng-template>
<ng-template #headerContent> <ng-template #headerContent>
<div class="mb-xs" nz-row> <div class="mb-xs" nz-row>
<button nz-button nzType="primary" nzSize="small" nzDanger>{{i?.billStatusLabel}}</button> <button nz-button nzType="primary" nzSize="small" nzDanger>{{ i?.billStatusLabel }}</button>
<h4 class="ml-md" style="font-size: 18px;">订单号: {{ i?.billCode }}</h4> <h4 class="ml-md" style="font-size: 18px">订单号: {{ i?.billCode }}</h4>
</div> </div>
<div nz-row style="display: flex; justify-content: end;"> <div nz-row style="display: flex; justify-content: end">
<div nz-col nzSpan="10"> <div nz-col nzSpan="10">
<button (click)="cancellation()" nz-button *ngIf="i?.billStatus == '4' || i?.billStatus == '5' || i?.billStatus == '2' || i?.billStatus == '3' || i?.billStatus == '1'" >取消订单</button> <button
<button nz-button *ngIf="i?.billStatus == '4' || i?.billStatus == '5' || i?.billStatus == '2' || i?.billStatus == '3'" (click)="changeOrder()">修改订单</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-BULK-DETAIL-cancelAnOrder']"
>取消订单</button
>
<button
nz-button
*ngIf="i?.billStatus == '4' || i?.billStatus == '5' || i?.billStatus == '2' || i?.billStatus == '3'"
acl [acl-ability]="['ORDER-BULK-DETAIL-modifyOrder']"
(click)="changeOrder()"
>修改订单</button
>
</div> </div>
</div> </div>
<nz-divider></nz-divider> <nz-divider></nz-divider>
<div> <div>
<div sv-container> <div sv-container>
<sv label="网络货运人">{{ i?.goodsResource?.enterpriseInfoName }} </sv> <sv label="网络货运人">{{ i?.goodsResource?.enterpriseInfoName }} </sv>
<sv label="货主">{{ i?.goodsResource?.shipperAppUserName }} </sv> <sv label="货主">{{ i?.goodsResource?.shipperAppUserName }} </sv>
<sv label="所属项目">{{i?.goodsResource?.enterpriseProjectName}}</sv> <sv label="所属项目">{{ i?.goodsResource?.enterpriseProjectName }}</sv>
<sv label="服务类型">{{i?.goodsResource?.serviceTypeLabel}}</sv> <sv label="服务类型">{{ i?.goodsResource?.serviceTypeLabel }}</sv>
<sv label="录单员">{{i?.goodsResource?.createUserName}} /{{i?.goodsResource?.createUserPhone}} </sv> <sv label="录单员">{{ i?.goodsResource?.createUserName }} /{{ i?.goodsResource?.createUserPhone }} </sv>
<sv label="调度员">{{i?.goodsResource?.dispatchName}}/{{i?.goodsResource?.dispatchPhone}} </sv> <sv label="调度员">{{ i?.goodsResource?.dispatchName }}/{{ i?.goodsResource?.dispatchPhone }} </sv>
</div> </div>
<nz-tabset style="margin-top: 15px;"> <nz-tabset style="margin-top: 15px">
<nz-tab nzTitle="装卸货信息" (nzClick)="goDistance(distannce1)"> <nz-tab nzTitle="装卸货信息" (nzClick)="goDistance(distannce1)"> </nz-tab>
</nz-tab> <nz-tab nzTitle="基本信息" (nzClick)="goDistance(distannce2)"> </nz-tab>
<nz-tab nzTitle="基本信息" (nzClick)="goDistance(distannce2)"> <nz-tab nzTitle="运费信息" (nzClick)="goDistance(distannce3)"> </nz-tab>
</nz-tab> <nz-tab nzTitle="附件信息" (nzClick)="goDistance(distannce4)"> </nz-tab>
<nz-tab nzTitle="运费信息" (nzClick)="goDistance(distannce3)"> <nz-tab nzTitle="轨迹信息" (nzClick)="goDistance(distannce5)"> </nz-tab>
</nz-tab> </nz-tabset>
<nz-tab nzTitle="附件信息" (nzClick)="goDistance(distannce4)"> </div>
</nz-tab>
<nz-tab nzTitle="轨迹信息" (nzClick)="goDistance(distannce5)">
</nz-tab>
</nz-tabset>
</div>
</ng-template> </ng-template>
</page-header-wrapper> </page-header-wrapper>
<nz-card nzTitle="运单进度" #distannce1> <nz-card nzTitle="运单进度" #distannce1>
<div class="approval-status"> <div class="approval-status">
<div style="width: 60%; margin: 0 auto"> <div style="width: 60%; margin: 0 auto">
  <nz-steps [nzCurrent]="i?.scheduleVOList?.length + 1" nzLabelPlacement="vertical">  
  <nz-step <nz-steps [nzCurrent]="i?.scheduleVOList?.length + 1" nzLabelPlacement="vertical">
          *ngFor="let item of i?.scheduleVOList"  
    [nzTitle]="item.state" <nz-step
    [nzSubtitle]="item.stateTime" *ngFor="let item of i?.scheduleVOList"
    [nzStatus]="item.displayStatus === 'SHOW' ? 'finish' : 'wait'" [nzTitle]="item.state"
  > [nzSubtitle]="item.stateTime"
  </nz-step> [nzStatus]="item.displayStatus === 'SHOW' ? 'finish' : 'wait'"
 </nz-steps> >
 
</nz-step>
 </nz-steps
>
</div> </div>
</div> </div>
</nz-card> </nz-card>
@ -71,85 +82,76 @@
<sv label="货物名称"> <sv label="货物名称">
{{i?.goodsInfoList?.[0]?.goodsName}} {{i?.goodsInfoList?.[0]?.goodsName}}
</sv> </sv>
</sv-container> </sv-container>
<sv-container col="2"> <sv-container col="2">
<sv label="货物数量"> <sv label="货物数量"> {{i?.goodsInfoList?.[0]?.weight}}吨,{{i?.goodsInfoList?.[0]?.volume}}方,{{i?.goodsInfoList?.[0]?.number}}件 </sv>
{{i?.goodsInfoList?.[0]?.weight}}吨,{{i?.goodsInfoList?.[0]?.volume}}方,{{i?.goodsInfoList?.[0]?.number}}件
</sv>
<sv label="用车需求">{{ i?.carModel }}/{{ i?.carLength }} </sv> <sv label="用车需求">{{ i?.carModel }}/{{ i?.carLength }} </sv>
<sv label="承运司机"> <sv label="承运司机"> {{ i?.driverName }}/{{ i?.driverPhone }}{{ i?.carNo }} </sv>
{{i?.driverName}}/{{i?.driverPhone}}{{i?.carNo}}
</sv>
<sv label="车型车长载重"> {{ i?.driverCarModelLabel }},{{ i?.driverCarLengthLabel }}米,{{ i?.driverCarWeight }}吨 </sv> <sv label="车型车长载重"> {{ i?.driverCarModelLabel }},{{ i?.driverCarLengthLabel }}米,{{ i?.driverCarWeight }}吨 </sv>
<sv label="计划装货时间"> <sv label="计划装货时间">
{{i?.loadPlanTime}} {{ i?.loadPlanTime }}
</sv> </sv>
<sv label="计划卸货时间"> <sv label="计划卸货时间">
{{i?.unloadPlanTime}} {{ i?.unloadPlanTime }}
</sv> </sv>
<sv label="接单数量"> <sv label="接单数量"> {{ i?.acceptWeight }}吨,{{ i?.acceptVolume }}方,{{ i?.acceptNumber }}件 </sv>
{{i?.acceptWeight}}吨,{{i?.acceptVolume}}方,{{i?.acceptNumber}}件 <sv label="装货数量"> {{ i?.acceptWeight }}吨,{{ i?.acceptVolume }}方,{{ i?.acceptNumber }}件 </sv>
</sv> <sv label="卸货数量"> {{ i?.settlementWeight }}吨,{{ i?.settlementVolume }}方,{{ i?.acceptNumber }}件 </sv>
<sv label="装货数量"> </sv-container>
{{i?.acceptWeight}}吨,{{i?.acceptVolume}}方,{{i?.acceptNumber}}件 <div class="mt-md">
</sv> <h4 class="text-md"
<sv label="卸货数量"> >装货卸货信息
{{i?.settlementWeight}}吨,{{i?.settlementVolume}}方,{{i?.acceptNumber}}件 <span class="ml-sm text-sm"
</sv> >(
</sv-container> <label>{{ i?.loadingCount || '一' }}装</label>
<div class="mt-md"> <label>{{ i?.unloadingCount || '一' }}卸</label>
<h4 class="text-md">装货卸货信息 </span>
<span class="ml-sm text-sm">( )
<label>{{i?.loadingCount || '一'}}装</label> </h4>
<label>{{i?.unloadingCount || '一'}}卸</label> <div nz-row [nzGutter]="24">
</span> <div nz-col [nzSpan]="12">
) <div class="handling-info p-md">
</h4> <div class="flex" *ngFor="let item of i?.unLoadingPlaceList">
<div nz-row [nzGutter]="24"> <div *ngIf="item.type === '1'" class="loading-row">
<div nz-col [nzSpan]="12"> <div class="handling-info-icon loading-bg"></div>
<div class="handling-info p-md"> <div class="info">
<div class="flex" *ngFor="let item of i?.unLoadingPlaceList"> <h4>装货地:{{ item?.province }}{{ item.city }}{{ item.area }}{{ item.detailedAddress }}</h4>
<div *ngIf="item.type === '1'" class="loading-row"> <p>联系人:{{ item.appUserName }}/{{ item.contractTelephone }}</p>
<div class="handling-info-icon loading-bg"></div> </div>
<div class="info">
<h4>装货地:{{item?.province}}{{item.city}}{{item.area}}{{item.detailedAddress}}</h4>
<p>联系人:{{item.appUserName}}/{{item.contractTelephone}}</p>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</div> <div nz-col [nzSpan]="12">
<div nz-col [nzSpan]="12"> <div class="handling-info p-md">
<div class="handling-info p-md"> <div class="flex" *ngFor="let item of i?.unLoadingPlaceList">
<div class="flex" *ngFor="let item of i?.unLoadingPlaceList"> <div *ngIf="item.type === '2'" class="loading-row">
<div *ngIf="item.type === '2'" class="loading-row"> <div class="handling-info-icon unloaing-bg"></div>
<div class="handling-info-icon unloaing-bg"></div> <div class="info">
<div class="info"> <h4>卸货地:{{ item?.province }}{{ item.city }}{{ item.area }}{{ item.detailedAddress }}</h4>
<h4>卸货地{{item?.province}}{{item.city}}{{item.area}}{{item.detailedAddress}}</h4> <p>联系人{{ item.appUserName }}/{{ item.contractTelephone }}</p>
<p>联系人:{{item.appUserName}}/{{item.contractTelephone}}</p> </div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</div>
</nz-card> </nz-card>
<nz-card nzTitle="运费信息" #distannce3> <nz-card nzTitle="运费信息" #distannce3>
<h2>{{i?.goodsInfoList?.[0]?.freightPrice}}{{i?.goodsInfoList?.[0]?.freightTypeLabel}}(以发货为准,保留小数)</h2> <h2>{{i?.goodsInfoList?.[0]?.freightPrice}}{{i?.goodsInfoList?.[0]?.freightTypeLabel}}(以发货为准,保留小数)</h2>
<st #st [data]="i?.billExpenseDetails" [columns]="logColumns" [ps]="0" [page]="{ show: false, showSize: false }"> <st #st [data]="i?.billExpenseDetails" [columns]="logColumns" [ps]="0" [page]="{ show: false, showSize: false }">
<ng-template st-row="price" let-item let-index="index"> <ng-template st-row="price" let-item let-index="index">
{{ item.price | currency}} {{ item.price | currency }}
</ng-template> </ng-template>
<ng-template st-row="surcharge" let-item let-index="index"> <ng-template st-row="surcharge" let-item let-index="index">
{{ item.surcharge | currency}} {{ item.surcharge | currency }}
</ng-template> </ng-template>
</st> </st>
<div> <div>
<div> <div>
总计:<span style="color: #da001b; font-size: 18px">{{ i?.totalAmount | currency }}</span> 总计:<span style="color: #da001b; font-size: 18px">{{ i?.totalAmount | currency }}</span> (运费{{ i?.totalFreight | currency }}
(运费{{i?.totalFreight | currency}} 附加费{{ i?.totalSurcharge | currency }}附加费率{{ i?.totalRate * 100 }}%
附加费{{ i?.totalSurcharge | currency }},附加费率{{i?.totalRate * 100 }}%
</div> </div>
</div> </div>
<div>收款人:{{ i?.payeeName }}/{{ i?.payeePhone }}</div> <div>收款人:{{ i?.payeeName }}/{{ i?.payeePhone }}</div>
@ -165,12 +167,10 @@
</sv-container> </sv-container>
<sv-container col="2" class="mt-md"> <sv-container col="2" class="mt-md">
<sv label="装货凭证"> <sv label="装货凭证">
<app-imagelist [imgList]="[i?.loadingLadingBillFilePath,i?.loadingPeopleVehiclesGoodsFilePath]"> <app-imagelist [imgList]="[i?.loadingLadingBillFilePath, i?.loadingPeopleVehiclesGoodsFilePath]"> </app-imagelist>
</app-imagelist>
</sv> </sv>
<sv label="卸货凭证"> <sv label="卸货凭证">
<app-imagelist [imgList]="[i?.unloadingLadingBillFilePath,i?.unloadingPeopleVehiclesGoodsFilePath]"> <app-imagelist [imgList]="[i?.unloadingLadingBillFilePath, i?.unloadingPeopleVehiclesGoodsFilePath]"> </app-imagelist>
</app-imagelist>
</sv> </sv>
</sv-container> </sv-container>
</nz-card> </nz-card>
@ -189,40 +189,39 @@
<sv label="详细地址"> <sv label="详细地址">
{{ i?.supplementaryInformationVO?.address }} {{ i?.supplementaryInformationVO?.address }}
</sv> </sv>
</sv-container> </sv-container>
<sv-container col="1" class="mt-md"> <sv-container col="1" class="mt-md">
<sv label="回单凭证"> <sv label="回单凭证">
<app-imagelist [imgList]="i?.receiptFilePath"></app-imagelist> <app-imagelist [imgList]="i?.receiptFilePath"></app-imagelist>
</sv> </sv>
<sv label="备注"> <sv label="备注">
{{i?.goodsResource?.remarks}} {{ i?.goodsResource?.remarks }}
</sv> </sv>
</sv-container> </sv-container>
</nz-card> </nz-card>
<nz-card> <nz-card>
<div nz-row> <div nz-row>
<nz-card nzTitle="轨迹信息" style="width: 100%;" #distannce5> <nz-card nzTitle="轨迹信息" style="width: 100%" #distannce5>
<div nz-row > <div nz-row>
<div nz-col [nzSpan]='12'> <div nz-col [nzSpan]="12">
<!-- <st #st [data]="i?.auditRecordList" [columns]="logColumns" [ps]="0" [page]="{ show: false, showSize: false }"> <!-- <st #st [data]="i?.auditRecordList" [columns]="logColumns" [ps]="0" [page]="{ show: false, showSize: false }">
</st> --> </st> -->
</div> </div>
<div nz-col [nzSpan]='12'> <div nz-col [nzSpan]="12">
<amap-path-simplifier></amap-path-simplifier> <amap-path-simplifier></amap-path-simplifier>
</div> </div>
</div> </div>
</nz-card> </nz-card>
</div> </div>
</nz-card> </nz-card>
<nz-modal [(nzVisible)]="isVisible" [nzFooter]="nzModalFooter" nzTitle="附件信息" (nzOnOk)="handleOK()" (nzOnCancel)="handleCancel()"> <nz-modal [(nzVisible)]="isVisible" [nzFooter]="nzModalFooter" nzTitle="附件信息" (nzOnOk)="handleOK()" (nzOnCancel)="handleCancel()">
<ng-container *nzModalContent> <ng-container *nzModalContent>
<app-imagelist [imgList]="imges"></app-imagelist> <app-imagelist [imgList]="imges"></app-imagelist>
</ng-container> </ng-container>
<ng-template #nzModalFooter> <ng-template #nzModalFooter>
<button nz-button nzType="primary" (click)="handleOK()" [disabled]="">取消</button> <button nz-button nzType="primary" (click)="handleOK()" [disabled]="">取消</button>
<button nz-button nzType="default" (click)="handleCancel()">确定 </button> <button nz-button nzType="default" (click)="handleCancel()">确定 </button>
</ng-template> </ng-template>
</nz-modal> </nz-modal>

View File

@ -9,14 +9,21 @@
* Copyright (C) 2022 huzhenhong. All rights reserved. * Copyright (C) 2022 huzhenhong. All rights reserved.
--> -->
<!-- 搜索表单 --> <!-- 搜索表单 -->
<page-header-wrapper [title]="''"> <page-header-wrapper [title]="''"> </page-header-wrapper>
</page-header-wrapper>
<nz-card> <nz-card>
<div nz-row nzGutter="8"> <div nz-row nzGutter="8">
<!-- 查询字段小于或等于3个时不显示伸缩按钮 --> <!-- 查询字段小于或等于3个时不显示伸缩按钮 -->
<div nz-col nzSpan="24" *ngIf="queryFieldCount <= 4"> <div nz-col nzSpan="24" *ngIf="queryFieldCount <= 4">
<sf #sf [schema]="schema" [ui]="ui" [mode]="'search'" [disabled]="!sf?.valid" [loading]="service.http.loading" <sf
(formSubmit)="st?.load(1)" (formReset)="resetSF()"></sf> #sf
[schema]="schema"
[ui]="ui"
[mode]="'search'"
[disabled]="!sf?.valid"
[loading]="service.http.loading"
(formSubmit)="st?.load(1)"
(formReset)="resetSF()"
></sf>
</div> </div>
<!-- 查询字段大于3个时根据展开状态调整布局 --> <!-- 查询字段大于3个时根据展开状态调整布局 -->
@ -25,10 +32,10 @@
<sf #sf [schema]="schema" [ui]="ui" [compact]="true" [button]="'none'"></sf> <sf #sf [schema]="schema" [ui]="ui" [compact]="true" [button]="'none'"></sf>
</div> </div>
<div nz-col [nzSpan]="_$expand ? 24 : 6" [class.text-right]="_$expand"> <div nz-col [nzSpan]="_$expand ? 24 : 6" [class.text-right]="_$expand">
<button nz-button nzType="primary" [nzLoading]="service.http.loading" <button nz-button nzType="primary" [nzLoading]="service.http.loading" (click)="search()" acl [acl-ability]="['ORDER-BULK-search']"
(click)="search()">查询</button> >查询</button
<button nz-button nzType="primary" [disabled]="service.http.loading" >
>导出</button> <button nz-button nzType="primary" [disabled]="service.http.loading">导出</button>
<button nz-button [disabled]="service.http.loading" (click)="resetSF()">重置</button> <button nz-button [disabled]="service.http.loading" (click)="resetSF()">重置</button>
<button nz-button nzType="link" (click)="expandToggle()"> <button nz-button nzType="link" (click)="expandToggle()">
{{ !_$expand ? '展开' : '收起' }} {{ !_$expand ? '展开' : '收起' }}
@ -40,73 +47,68 @@
</nz-card> </nz-card>
<nz-card> <nz-card>
<nz-tabset (nzSelectedIndexChange)="selectChange($event)" <nz-tabset (nzSelectedIndexChange)="selectChange($event)" [nzTabBarExtraContent]="extraTemplate">
[nzTabBarExtraContent]="extraTemplate"> <nz-tab [nzTitle]="'全部(' + tabs?.totalCount + ')'"></nz-tab>
<nz-tab [nzTitle]="'全部('+tabs?.totalCount+')'"></nz-tab> <nz-tab [nzTitle]="'待接单(' + tabs?.receivedQuantity + ')'"></nz-tab>
<nz-tab [nzTitle]="'接单('+tabs?.receivedQuantity+')'"></nz-tab> <nz-tab [nzTitle]="'发车(' + tabs?.stayQuantity + ')'"></nz-tab>
<nz-tab [nzTitle]="'待发车('+tabs?.stayQuantity+')'"></nz-tab> <nz-tab [nzTitle]="'运输中(' + tabs?.GoingQuantity + ')'"></nz-tab>
<nz-tab [nzTitle]="'运输中('+tabs?.GoingQuantity+')'"></nz-tab> <nz-tab [nzTitle]="'待签收(' + tabs?.signQuantity + ')'"></nz-tab>
<nz-tab [nzTitle]="'待签收('+tabs?.signQuantity+')'"></nz-tab> <nz-tab [nzTitle]="'已完成(' + tabs?.compolatelQuantity + ')'"></nz-tab>
<nz-tab [nzTitle]="'完成('+tabs?.compolatelQuantity+')'"></nz-tab> <nz-tab [nzTitle]="'取消(' + tabs?.cancelQuantity + ')'"></nz-tab>
<nz-tab [nzTitle]="'已取消('+tabs?.cancelQuantity+')'"></nz-tab> </nz-tabset>
</nz-tabset> <div style="margin-top: 15px">
<div style="margin-top: 15px;">
<st <st
#st #st
[bordered]="true" [bordered]="true"
[scroll]="{ x: '2000px' }" [scroll]="{ x: '2000px' }"
[data]="service.$api_get_listBulkPage" [data]="service.$api_get_listBulkPage"
[columns]="columns" [columns]="columns"
[req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, params: reqParams }" [req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, params: reqParams }"
[res]="{ reName: { list: 'data.records', total: 'data.total' } }" [res]="{ reName: { list: 'data.records', 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] }"
[loading]="service.http.loading" [loading]="service.http.loading"
> >
<ng-template st-row="freightPrice" let-item let-index="index"> <ng-template st-row="freightPrice" let-item let-index="index">
{{ item.freightPrice | currency}} {{ item.freightPrice | currency }}
</ng-template> </ng-template>
<ng-template st-row="loadingTime" let-item let-index="index"> <ng-template st-row="loadingTime" let-item let-index="index">
<div *ngIf="item?.loadPlanTime">装 | {{item?.loadPlanTime}}</div> <div *ngIf="item?.loadPlanTime">装 | {{ item?.loadPlanTime }}</div>
<div *ngIf="item?.unloadPlanTime">卸 | {{item?.unloadPlanTime}}</div> <div *ngIf="item?.unloadPlanTime">卸 | {{ item?.unloadPlanTime }}</div>
</ng-template> </ng-template>
<ng-template st-row="driverName" let-item let-index="index"> <ng-template st-row="driverName" let-item let-index="index">
<div> <div> {{ item?.driverName }}/{{ item?.driverPhone }}/{{ item?.carNo }} </div>
{{item?.driverName}}/{{item?.driverPhone}}/{{item?.carNo}}
</div>
</ng-template> </ng-template>
<ng-template st-row="payeeName" let-item let-index="index"> <ng-template st-row="payeeName" let-item let-index="index">
<div> <div> {{ item?.payeeName }}/{{ item?.payeePhone }} </div>
{{item?.payeeName}}/{{item?.payeePhone}} </ng-template>
</div> <ng-template st-row="billCode" let-item let-index="index">
<a [routerLink]="'bulk-detail/' + item.id">{{ item.billCode }}</a>
<div>
<span>{{ item?.billStatusLabel }}</span>
</div>
</ng-template>
<ng-template st-row="goodsName" let-item let-index="index">
<div>{{ item?.goodsName }}</div>
<div>
<span>{{ item?.weight ? item?.weight + '吨/' : '' }}</span>
<span>{{ item?.volume ? item?.volume + '方/' : '' }}</span>
<span>{{ item?.goodsNumber ? item?.goodsNumber + '吨' : '' }}</span>
</div>
</ng-template>
<ng-template st-row="mybidDetailInfo" let-item let-index="index">
<div *ngIf="item.mybidDetailInfo.length > 0">
<p *ngFor="let data of item.mybidDetailInfo">
{{ data.expenseName }}{{ data.price | currency }}
<span *ngIf="data.paymentStatusLabel" style="color: #f59a63">{{ data.paymentStatusLabel }}</span>
</p>
</div>
</ng-template> </ng-template>
<ng-template st-row="billCode" let-item let-index="index">
<a [routerLink]="'bulk-detail/'+item.id">{{item.billCode}}</a>
<div>
<span>{{item?.billStatusLabel}}</span>
</div>
</ng-template>
<ng-template st-row="goodsName" let-item let-index="index">
<div>{{item?.goodsName}}</div>
<div>
<span>{{item?.weight ? item?.weight + '吨/' : '' }}</span>
<span>{{item?.volume ? item?.volume + '方/' : '' }}</span>
<span>{{item?.goodsNumber ? item?.goodsNumber + '吨' : '' }}</span>
</div>
</ng-template>
<ng-template st-row="mybidDetailInfo" let-item let-index="index">
<div *ngIf="item.mybidDetailInfo.length > 0">
<p *ngFor="let data of item.mybidDetailInfo">
{{ data.expenseName }}{{ data.price | currency }}
<span *ngIf="data.paymentStatusLabel" style="color: #f59a63">{{ data.paymentStatusLabel }}</span>
</p>
</div>
</ng-template>
<!-- <ng-template st-row="externalSn" let-item let-index="index"> <!-- <ng-template st-row="externalSn" let-item let-index="index">
<span class="mr-xs">{{111111}}</span> <span class="mr-xs">{{111111}}</span>
<a (click)="editEnternalSn(item)">编辑</a> <a (click)="editEnternalSn(item)">编辑</a>
</ng-template> --> </ng-template> -->
<ng-template st-row="enStatusStr27878" let-item let-index="index"> <ng-template st-row="enStatusStr27878" let-item let-index="index">
<div class="mr-xs" nzPopoverTitle="Title" nz-popover [nzPopoverContent]="contentTemplate">{{item.no}}</div> <div class="mr-xs" nzPopoverTitle="Title" nz-popover [nzPopoverContent]="contentTemplate">{{ item.no }}</div>
</ng-template> </ng-template>
<ng-template #contentTemplate> <ng-template #contentTemplate>
<div> <div>
@ -122,32 +124,37 @@
</div> </div>
</nz-card> </nz-card>
<nz-modal
<nz-modal [(nzVisible)]="isVisible" [nzWidth]="600" [nzFooter]="nzModalFooter" nzTitle="运费变更记录" (nzOnOk)="handleOK()" (nzOnCancel)="handleCancel('0')"> [(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]="service.$api_get_listChangeApply" [data]="service.$api_get_listChangeApply"
[columns]="columnsFloat" [columns]="columnsFloat"
[req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, params: changeParams }" [req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, params: changeParams }"
[res]="{ reName: { list: 'data', 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] }"
> >
<ng-template st-row="order" let-item let-index="index">
<ng-template st-row="order" let-item let-index="index"> {{ index + 1 }}
{{ index + 1 }} </ng-template>
</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> <span *ngIf="item?.externalSn == '2'">确认</span>
<span *ngIf="item?.externalSn == '2'">确认</span> <span *ngIf="item?.externalSn == '3'">撤销</span>
<span *ngIf="item?.externalSn == '3'">已撤销</span> <span *ngIf="item?.externalSn == '4'">拒绝</span>
<span *ngIf="item?.externalSn == '4'">拒绝</span> </div>
</div> </ng-template>
</ng-template> </st>
</st>
</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>
@ -155,41 +162,48 @@
</ng-template> </ng-template>
</nz-modal> </nz-modal>
<nz-modal
<nz-modal [(nzVisible)]="isVisibleView" [nzWidth]="600" [nzFooter]="nzModalFooterview" nzTitle="查看" (nzOnOk)="handleOK()" (nzOnCancel)="handleCancel('1')"> [(nzVisible)]="isVisibleView"
[nzWidth]="600"
[nzFooter]="nzModalFooterview"
nzTitle="查看"
(nzOnOk)="handleOK()"
(nzOnCancel)="handleCancel('1')"
>
<ng-container *nzModalContent> <ng-container *nzModalContent>
<sf #sfView [schema]="schemaView" [ui]="uiView" [formData]="ViewCause" [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>
<div class="left_btn">元/吨</div> <div class="left_btn">元/吨</div>
</div> </div>
</ng-template> </ng-template>
</sf> </sf>
<st <st
#stFloatView #stFloatView
multiSort multiSort
size="small" size="small"
[bordered]="true" [bordered]="true"
[data]="service.$api_getChangeRecordBulkDetail" [data]="service.$api_getChangeRecordBulkDetail"
[columns]="columnsFloatView" [columns]="columnsFloatView"
[req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, params: changeViewParams }" [req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, params: changeViewParams }"
[res]="{ reName: { list: 'data.list', total: 'data.total' } }" [res]="{ reName: { list: 'data.list', total: 'data.total' } }"
> >
<ng-template st-row="amountBeforeChange" let-item let-index="index">
<ng-template st-row="amountBeforeChange" let-item let-index="index"> {{ item.amountBeforeChange | currency }}
{{ item.amountBeforeChange | currency}} </ng-template>
</ng-template> <ng-template st-row="amountchangeValue" let-item let-index="index"> ¥{{ item.amountchangeValue | number: '0.2-2' }} </ng-template>
<ng-template st-row="amountchangeValue" let-item let-index="index"> <ng-template st-row="amountAfterChange" let-item let-index="index">
{{ item.amountchangeValue | number: '0.2-2'}} {{ item.amountAfterChange | currency }}
</ng-template> </ng-template>
<ng-template st-row="amountAfterChange" let-item let-index="index"> </st>
{{ item.amountAfterChange | currency}} <div
</ng-template> ><span>变更原因:{{ ViewCause?.changeCause }}</span></div
</st> >
<div><span>变更原因:{{ViewCause?.changeCause}}</span></div> <div
<div><span>拒绝原因:{{ViewCause?.refuseCause}}</span></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>
@ -197,12 +211,18 @@
</ng-template> </ng-template>
</nz-modal> </nz-modal>
<nz-modal [(nzVisible)]="isVisibleEvaluate" [nzWidth]="600" [nzFooter]="nzModalFooterEvaluate" (nzOnOk)="handleOK()" (nzOnCancel)="handleCancel('2')"> <nz-modal
[(nzVisible)]="isVisibleEvaluate"
[nzWidth]="600"
[nzFooter]="nzModalFooterEvaluate"
(nzOnOk)="handleOK()"
(nzOnCancel)="handleCancel('2')"
>
<ng-container *nzModalContent> <ng-container *nzModalContent>
<nz-tabset> <nz-tabset>
<nz-tab nzTitle="货主评价"> <nz-tab nzTitle="货主评价">
<sv-container col="1" labelWidth="90"> <sv-container col="1" labelWidth="90">
<sv [label]="i.evaluateTypeLabel"*ngFor="let i of shipList" > <sv [label]="i.evaluateTypeLabel" *ngFor="let i of shipList">
<nz-rate [ngModel]="i.evaluateFraction" nzDisabled="true"></nz-rate> <nz-rate [ngModel]="i.evaluateFraction" nzDisabled="true"></nz-rate>
</sv> </sv>
</sv-container> </sv-container>
@ -210,7 +230,7 @@
</nz-tab> </nz-tab>
<nz-tab nzTitle="司机评价"> <nz-tab nzTitle="司机评价">
<sv-container col="1" labelWidth="90"> <sv-container col="1" labelWidth="90">
<sv [label]="i.evaluateTypeLabel"*ngFor="let i of diverList" > <sv [label]="i.evaluateTypeLabel" *ngFor="let i of diverList">
<nz-rate [ngModel]="i.evaluateFraction" nzDisabled="true"></nz-rate> <nz-rate [ngModel]="i.evaluateFraction" nzDisabled="true"></nz-rate>
</sv> </sv>
</sv-container> </sv-container>
@ -226,18 +246,26 @@
<ng-template #enable> <ng-template #enable>
<div class="ant-popover-message"> <div class="ant-popover-message">
<i nz-icon nzType="info-circle" nzTheme="fill"></i> <i nz-icon nzType="info-circle" nzTheme="fill"></i>
<div class="ant-popover-message-title ng-star-inserted self-ant-popover-title" style="font-size: 16px">已选择{{selectedRows?.length || 0}}条订单,确认批量签收吗? <div class="ant-popover-message-title ng-star-inserted self-ant-popover-title" style="font-size: 16px"
</div> >已选择{{ selectedRows?.length || 0 }}条订单,确认批量签收吗?
<div class="ant-popover-message-title ng-star-inserted">
签收后不可再修改运费,请确保运费等信息准确无误后,再进行签收。
</div> </div>
<div class="ant-popover-message-title ng-star-inserted"> 签收后不可再修改运费,请确保运费等信息准确无误后,再进行签收。 </div>
</div> </div>
</ng-template> </ng-template>
<ng-template #extraTemplate> <ng-template #extraTemplate>
<div> <div>
<button nz-button nzType="primary" nzGhost nz-popconfirm <button
[nzPopconfirmTitle]="enable" (nzOnConfirm)="userAction()" nzPopconfirmPlacement="bottomRight"> nz-button
批量签收 nzType="primary"
</button> nzGhost
nz-popconfirm
[nzPopconfirmTitle]="enable"
(nzOnConfirm)="userAction()"
nzPopconfirmPlacement="bottomRight"
acl
[acl-ability]="['ORDER-BULK-batchSignBulkOrder']"
>
批量签收
</button>
</div> </div>
</ng-template> </ng-template>

View File

@ -115,7 +115,7 @@ export class OrderManagementBulkComponent implements OnInit {
totalCount: 0 totalCount: 0
}; };
const params: any = Object.assign({}, this.reqParams || {}); const params: any = Object.assign({}, this.reqParams || {});
delete params.billStatus delete params.billStatus;
this.service.request(this.service.$api_getBulkStatistical, params).subscribe(res => { this.service.request(this.service.$api_getBulkStatistical, params).subscribe(res => {
if (res) { if (res) {
let totalCount = 0; let totalCount = 0;
@ -463,33 +463,39 @@ export class OrderManagementBulkComponent implements OnInit {
text: '运费变更记录', text: '运费变更记录',
click: _record => this.OpenPrice(_record), click: _record => this.OpenPrice(_record),
iif: item => iif: item =>
item.billStatus == '4' || item.billStatus == '5' || item.billStatus == '2' || item.billStatus == '3' || item.billStatus == '6' item.billStatus == '4' || item.billStatus == '5' || item.billStatus == '2' || item.billStatus == '3' || item.billStatus == '6',
acl: { ability: ['ORDER-BULK-listChangeApply'] },
}, },
{ {
text: '查看评价 ', text: '查看评价 ',
click: _record => this.viewEvaluate(_record), click: _record => this.viewEvaluate(_record),
iif: item => item.billStatus == '5' iif: item => item.billStatus == '5',
acl: { ability: ['ORDER-BULK-evaluation'] },
}, },
{ {
text: '变更运费 ', text: '变更运费 ',
click: _record => this.updateFreight(_record), click: _record => this.updateFreight(_record),
iif: item => item.billStatus !== '1' && item.billStatus !== '6' && item.overallPaymentStatus != '2' iif: item => item.billStatus !== '1' && item.billStatus !== '6' && item.overallPaymentStatus != '2',
acl: { ability: ['ORDER-BULK-FreightChangeBulkDetail'] },
}, },
{ {
text: '确认签收 ', text: '确认签收 ',
click: _record => this.confirmReceipt(_record), click: _record => this.confirmReceipt(_record),
iif: item => item.billStatus == '4' iif: item => item.billStatus == '4',
acl: { ability: ['VEHICLE-LIST-view'] },
}, },
{ {
text: '取消订单 ', text: '取消订单 ',
click: _record => this.cancellation(_record), click: _record => this.cancellation(_record),
iif: item => iif: item =>
item.billStatus == '4' || item.billStatus == '5' || item.billStatus == '2' || item.billStatus == '3' || item.billStatus == '1' item.billStatus == '4' || item.billStatus == '5' || item.billStatus == '2' || item.billStatus == '3' || item.billStatus == '1',
acl: { ability: ['ORDER-BULK-signBulkOrder'] },
}, },
{ {
text: '修改订单 ', text: '修改订单 ',
click: _record => this.changeOrder(_record), click: _record => this.changeOrder(_record),
iif: item => item.billStatus == '4' || item.billStatus == '5' || item.billStatus == '2' || item.billStatus == '3' iif: item => item.billStatus == '4' || item.billStatus == '5' || item.billStatus == '2' || item.billStatus == '3',
acl: { ability: ['ORDER-BULK-BulkBillDetail'] },
} }
] ]
} }
@ -624,25 +630,25 @@ export class OrderManagementBulkComponent implements OnInit {
/** /**
*查看评价 *查看评价
*/ */
viewEvaluate(item: any) { viewEvaluate(item: any) {
console.log(item) console.log(item);
this.isVisibleEvaluate = true this.isVisibleEvaluate = true;
const params = { const params = {
businessCode: item.billCode, businessCode: item.billCode,
evaluateUserId: item.shipperAppUserId, evaluateUserId: item.shipperAppUserId
} };
const params2 = { const params2 = {
businessCode: item.billCode, businessCode: item.billCode,
passiveUserId: item.shipperAppUserId, passiveUserId: item.shipperAppUserId
} };
this.service.request(this.service.$api_getBillEvaluateByShipper, params).subscribe(res => { this.service.request(this.service.$api_getBillEvaluateByShipper, params).subscribe(res => {
console.log(res) console.log(res);
console.log(res.evaluateInfos) console.log(res.evaluateInfos);
this.shipList = res.evaluateInfos this.shipList = res.evaluateInfos;
}); });
this.service.request(this.service.$api_getBillEvaluateDriverByShipper, params2).subscribe(res => { this.service.request(this.service.$api_getBillEvaluateDriverByShipper, params2).subscribe(res => {
console.log(res) console.log(res);
this.diverList = res.evaluateInfos this.diverList = res.evaluateInfos;
}); });
} }
/** /**
@ -685,9 +691,9 @@ export class OrderManagementBulkComponent implements OnInit {
}); });
} }
userAction() { userAction() {
if(this.selectedRows.length <= 0) { if (this.selectedRows.length <= 0) {
this.service.msgSrv.error('请选择订单!') this.service.msgSrv.error('请选择订单!');
return return;
} }
let params: any[] = []; let params: any[] = [];
this.selectedRows.forEach(item => { this.selectedRows.forEach(item => {

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-01-24 15:40:10 * @LastEditTime : 2022-02-15 15:03:39
* @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.
--> -->
@ -91,7 +91,7 @@
<span>{{item?.serviceTypeName}}</span> <span>{{item?.serviceTypeName}}</span>
</div> </div>
<div> <div>
<span>{{item?.billStatusLabel}}</span> <span>{{item?.auditStatusLabel}}</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

@ -335,17 +335,22 @@ export class OrderManagementReceiptsAuditComponent implements OnInit {
{ {
text: '通过', text: '通过',
click: _record => this.sign(_record), click: _record => this.sign(_record),
// iif: item => item.billStatus == '5' iif: item => item.auditStatus == '1'
}, },
{ {
text: '生成电子单据', text: '生成电子单据',
click: _record => this.generate(_record), click: _record => this.generate(_record, 2),
// iif: item => item.billStatus == '4' iif: item => item.auditStatus == '1'
},
{
text: '查看凭证',
click: _record => this.generate(_record, 3),
iif: item => item.auditStatus == '2'
}, },
{ {
text: '修改', text: '修改',
click: _record => this.modification(_record), click: _record => this.modification(_record),
// iif: item => item.billStatus == '4' iif: item => item.auditStatus == '1'
}, },
] ]
} }
@ -404,14 +409,14 @@ export class OrderManagementReceiptsAuditComponent implements OnInit {
}); });
} }
// 生成电子单据 // 生成电子单据
generate(item: any) { generate(item: any, sts?: number) {
const modalRef = this.modal.create({ const modalRef = this.modal.create({
nzTitle: '查看凭证', nzTitle: '查看凭证',
nzWidth: '50%', nzWidth: '50%',
nzContent: orderManagementVoucherViewComponent, nzContent: orderManagementVoucherViewComponent,
nzComponentParams: { nzComponentParams: {
i: item, i: item,
Status: 2 Status: sts
}, },
nzFooter: null nzFooter: null
}); });

View File

@ -9,14 +9,21 @@
* Copyright (C) 2022 huzhenhong. All rights reserved. * Copyright (C) 2022 huzhenhong. All rights reserved.
--> -->
<!-- 搜索表单 --> <!-- 搜索表单 -->
<page-header-wrapper [title]="''"> <page-header-wrapper [title]="''"> </page-header-wrapper>
</page-header-wrapper>
<nz-card> <nz-card>
<div nz-row nzGutter="8"> <div nz-row nzGutter="8">
<!-- 查询字段小于或等于3个时不显示伸缩按钮 --> <!-- 查询字段小于或等于3个时不显示伸缩按钮 -->
<div nz-col nzSpan="24" *ngIf="queryFieldCount <= 4"> <div nz-col nzSpan="24" *ngIf="queryFieldCount <= 4">
<sf #sf [schema]="schema" [ui]="ui" [mode]="'search'" [disabled]="!sf?.valid" [loading]="service.http.loading" <sf
(formSubmit)="search()" (formReset)="resetSF()"></sf> #sf
[schema]="schema"
[ui]="ui"
[mode]="'search'"
[disabled]="!sf?.valid"
[loading]="service.http.loading"
(formSubmit)="search()"
(formReset)="resetSF()"
></sf>
</div> </div>
<!-- 查询字段大于3个时根据展开状态调整布局 --> <!-- 查询字段大于3个时根据展开状态调整布局 -->
@ -25,11 +32,9 @@
<sf #sf [schema]="schema" [ui]="ui" [compact]="true" [button]="'none'"></sf> <sf #sf [schema]="schema" [ui]="ui" [compact]="true" [button]="'none'"></sf>
</div> </div>
<div nz-col [nzSpan]="_$expand ? 24 : 6" class="text-right"> <div nz-col [nzSpan]="_$expand ? 24 : 6" class="text-right">
<button nz-button nzType="primary" [nzLoading]="service.http.loading" <button nz-button nzType="primary" [nzLoading]="service.http.loading" (click)="search()" acl [acl-ability]="['ORDER-RISK-search']">查询</button>
(click)="search()">查询</button> <button nz-button nzType="primary" [disabled]="service.http.loading">导出</button>
<button nz-button nzType="primary" [disabled]="service.http.loading" <button nz-button [disabled]="service.http.loading" (click)="resetSF()">重置</button>
>导出</button>
<button nz-button [disabled]="service.http.loading" (click)="resetSF()">重置</button>
<button nz-button nzType="link" (click)="expandToggle()"> <button nz-button nzType="link" (click)="expandToggle()">
{{ !_$expand ? '展开' : '收起' }} {{ !_$expand ? '展开' : '收起' }}
<i nz-icon [nzType]="!_$expand ? 'down' : 'up'"></i> <i nz-icon [nzType]="!_$expand ? 'down' : 'up'"></i>
@ -40,66 +45,65 @@
</nz-card> </nz-card>
<nz-card> <nz-card>
<nz-tabset (nzSelectedIndexChange)="selectChange($event)" <nz-tabset (nzSelectedIndexChange)="selectChange($event)" [nzTabBarExtraContent]="extraTemplate">
[nzTabBarExtraContent]="extraTemplate"> <nz-tab [nzTitle]="'全部'"></nz-tab>
<nz-tab [nzTitle]="'全部'"></nz-tab> <nz-tab [nzTitle]="'待申诉(' + tabs?.stayQuantity + ')'"></nz-tab>
<nz-tab [nzTitle]="'申诉('+tabs?.stayQuantity+')'"></nz-tab> <nz-tab [nzTitle]="'申诉(' + tabs?.underwayQuantity + ')'"></nz-tab>
<nz-tab [nzTitle]="'申诉('+tabs?.underwayQuantity+')'"></nz-tab> <nz-tab [nzTitle]="'申诉成功(' + tabs?.receivedQuantity + ')'"></nz-tab>
<nz-tab [nzTitle]="'申诉成功('+tabs?.receivedQuantity+')'"></nz-tab> <nz-tab [nzTitle]="'申诉失败(' + tabs?.cancelQuantity + ')'"></nz-tab>
<nz-tab [nzTitle]="'申诉失败('+tabs?.cancelQuantity+')'"></nz-tab> </nz-tabset>
</nz-tabset> <div style="margin-top: 15px">
<div style="margin-top: 15px;">
<st <st
#st #st
[bordered]="true" [bordered]="true"
[scroll]="{ x: '2000px' }" [scroll]="{ x: '2000px' }"
[data]="service.$api_get_listRiskPage" [data]="service.$api_get_listRiskPage"
[columns]="columns" [columns]="columns"
[req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, params: reqParams }" [req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, params: reqParams }"
[res]="{ reName: { list: 'data.records', total: 'data.total' } }" [res]="{ reName: { list: 'data.records', 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] }"
[loading]="service.http.loading" [loading]="service.http.loading"
> >
<ng-template st-row="billCode" let-item let-index="index"> <ng-template st-row="billCode" let-item let-index="index">
<a [routerLink]="'/order-management/risk-detail/'+item.id">{{item?.billCode}}</a> <a [routerLink]="'/order-management/risk-detail/' + item.id">{{ item?.billCode }}</a>
</ng-template> </ng-template>
<ng-template st-row="timeer" let-item let-index="index"> <ng-template st-row="timeer" let-item let-index="index">
<p>创建时间:{{item?.createTime}}</p> <p>创建时间:{{ item?.createTime }}</p>
<p>装货时间:{{item?.loadTime}}</p> <p>装货时间:{{ item?.loadTime }}</p>
<p>卸货时间:{{item?.unloadTime}}</p> <p>卸货时间:{{ item?.unloadTime }}</p>
</ng-template> </ng-template>
<ng-template st-row="driverName" let-item let-index="index"> <ng-template st-row="driverName" let-item let-index="index">
<div> <div> {{ item?.driverName }}/{{ item?.driverPhoneNumber }} </div>
{{item?.driverName}}/{{item?.driverPhoneNumber}} </ng-template>
</div> <ng-template st-row="payeeName" let-item let-index="index">
</ng-template> <div> {{ item?.payeeName }}/{{ item?.payeePhoneNumber }} </div>
<ng-template st-row="payeeName" let-item let-index="index"> </ng-template>
<div>
{{item?.payeeName}}/{{item?.payeePhoneNumber}}
</div>
</ng-template>
<ng-template st-row="freightDetails" let-item let-index="index"> <ng-template st-row="freightDetails" let-item let-index="index">
<div *ngIf="item.freightDetails.length > 0"> <div *ngIf="item.freightDetails.length > 0">
<p *ngFor="let data of item.freightDetails"> <p *ngFor="let data of item.freightDetails"> {{ data.expenseName }}{{ data.price | currency }} </p>
{{ data.expenseName }}{{ data.price | currency }}
</p>
</div> </div>
</ng-template> </ng-template>
<ng-template st-row="goodsInfoVOList" let-item let-index="index"> <ng-template st-row="goodsInfoVOList" let-item let-index="index">
<div *ngFor="let i of item?.goodsInfoVOList"> <div *ngFor="let i of item?.goodsInfoVOList">
<p>货物名称:{{i?.goodsName}}</p> <p>货物名称:{{ i?.goodsName }}</p>
<p>重量/体积:{{i?.weight}}吨/{{i?.volume}}方</p> <p>重量/体积:{{ i?.weight }}吨/{{ i?.volume }}方</p>
<p>车型/车长:{{i?.carModel}}/ {{i?.carLength}}</p> <p>车型/车长:{{ i?.carModel }}/ {{ i?.carLength }}</p>
</div> </div>
</ng-template> </ng-template>
</st> </st>
</div> </div>
</nz-card> </nz-card>
<nz-modal [(nzVisible)]="isVisibleRE" [nzWidth]="600" [nzFooter]="nzModalFooterview2" (nzOnOk)="handleOK()" nzTitle="审核" (nzOnCancel)="handleCancel()"> <nz-modal
[(nzVisible)]="isVisibleRE"
[nzWidth]="600"
[nzFooter]="nzModalFooterview2"
(nzOnOk)="handleOK()"
nzTitle="审核"
(nzOnCancel)="handleCancel()"
>
<ng-container *nzModalContent> <ng-container *nzModalContent>
<sf #sfView [schema]="schemaView" [ui]="uiView" [compact]="true" [button]="'none'"> <sf #sfView [schema]="schemaView" [ui]="uiView" [compact]="true" [button]="'none'"> </sf>
</sf>
</ng-container> </ng-container>
<ng-template #nzModalFooterview2> <ng-template #nzModalFooterview2>
<button nz-button nzType="default" (click)="reject()">拒绝</button> <button nz-button nzType="default" (click)="reject()">拒绝</button>
@ -109,10 +113,6 @@
<ng-template #extraTemplate> <ng-template #extraTemplate>
<div> <div>
<button nz-button nzType="primary" (click)="audit()"> <button nz-button nzType="primary" (click)="audit()" acl [acl-ability]="['ORDER-RISK-batchAudit']"> 批量审核 </button>
批量审核
</button>
</div> </div>
</ng-template> </ng-template>

View File

@ -308,10 +308,12 @@ export class OrderManagementRiskComponent implements OnInit {
text: '审核', text: '审核',
click: _record => this.audit(_record), click: _record => this.audit(_record),
iif: item => item.representationsStatus == '1' || item.representationsStatus == '2' , iif: item => item.representationsStatus == '1' || item.representationsStatus == '2' ,
acl: { ability: ['ORDER-RISK-audit'] },
}, },
{ {
text: '详情 ', text: '详情 ',
click: _record => this.viewEvaluate(_record), click: _record => this.viewEvaluate(_record),
acl: { ability: ['ORDER-RISK-riskDetail'] },
} }
] ]
} }

View File

@ -16,13 +16,25 @@
</ng-template> </ng-template>
<ng-template #headerContent> <ng-template #headerContent>
<div class="mb-xs" nz-row> <div class="mb-xs" nz-row>
<button nz-button nzType="primary" nzSize="small" nzDanger>{{i?.billStatusLabel}}</button> <button nz-button nzType="primary" nzSize="small" nzDanger>{{ i?.billStatusLabel }}</button>
<h4 class="ml-md" style="font-size: 18px;">订单号: {{ i?.billCode }}</h4> <h4 class="ml-md" style="font-size: 18px">订单号: {{ i?.billCode }}</h4>
</div> </div>
<div nz-row style="display: flex; justify-content: end;"> <div nz-row style="display: flex; justify-content: end">
<div nz-col nzSpan="10"> <div nz-col nzSpan="10">
<button (click)="cancellation()" nz-button *ngIf="i.billStatus == '4' || i.billStatus == '5' || i.billStatus == '2' || i.billStatus == '3' || i.billStatus == '1'">取消订单</button> <button
<button nz-button (click)="changeOrder()" *ngIf="i.billStatus == '4' || i.billStatus == '5' || i.billStatus == '2' || i.billStatus == '3'" >修改订单</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>
<nz-divider></nz-divider> <nz-divider></nz-divider>
@ -30,65 +42,65 @@
<div sv-container> <div sv-container>
<sv label="网络货运人">{{ i?.goodsResource?.enterpriseInfoName }} </sv> <sv label="网络货运人">{{ i?.goodsResource?.enterpriseInfoName }} </sv>
<sv label="货主">{{ i?.goodsResource?.shipperAppUserName }} </sv> <sv label="货主">{{ i?.goodsResource?.shipperAppUserName }} </sv>
<sv label="所属项目">{{i?.goodsResource?.enterpriseProjectName}}</sv> <sv label="所属项目">{{ i?.goodsResource?.enterpriseProjectName }}</sv>
<sv label="服务类型">{{i?.goodsResource?.serviceTypeLabel}}</sv> <sv label="服务类型">{{ i?.goodsResource?.serviceTypeLabel }}</sv>
<sv label="录单员">{{i?.goodsResource?.createUserName}} /{{i?.goodsResource?.createUserPhone}} </sv> <sv label="录单员">{{ i?.goodsResource?.createUserName }} /{{ i?.goodsResource?.createUserPhone }} </sv>
<sv label="调度员">{{i?.goodsResource?.dispatchName}}/{{i?.goodsResource?.dispatchPhone}} </sv> <sv label="调度员">{{ i?.goodsResource?.dispatchName }}/{{ i?.goodsResource?.dispatchPhone }} </sv>
</div> </div>
<nz-tabset style="margin-top: 15px;"> <nz-tabset style="margin-top: 15px">
<nz-tab nzTitle="装卸货信息" (nzClick)="goDistance(distannce1)"> <nz-tab nzTitle="装卸货信息" (nzClick)="goDistance(distannce1)"> </nz-tab>
</nz-tab> <nz-tab nzTitle="基本信息" (nzClick)="goDistance(distannce2)"> </nz-tab>
<nz-tab nzTitle="基本信息" (nzClick)="goDistance(distannce2)"> <nz-tab nzTitle="运费信息" (nzClick)="goDistance(distannce3)"> </nz-tab>
</nz-tab> <nz-tab nzTitle="附件信息" (nzClick)="goDistance(distannce4)"> </nz-tab>
<nz-tab nzTitle="运费信息" (nzClick)="goDistance(distannce3)"> <nz-tab nzTitle="轨迹信息" (nzClick)="goDistance(distannce5)"> </nz-tab>
</nz-tab>
<nz-tab nzTitle="附件信息" (nzClick)="goDistance(distannce4)">
</nz-tab>
<nz-tab nzTitle="轨迹信息" (nzClick)="goDistance(distannce5)">
</nz-tab>
</nz-tabset> </nz-tabset>
</div> </div>
</ng-template> </ng-template>
</page-header-wrapper> </page-header-wrapper>
<nz-card nzTitle="运单进度" #distannce1 > <nz-card nzTitle="运单进度" #distannce1>
<div class="approval-status"> <div class="approval-status">
<div style="width: 60%; margin: 0 auto"> <div style="width: 60%; margin: 0 auto">
  <nz-steps [nzCurrent]="approvalLsit?.length + 1" nzLabelPlacement="vertical">  
  <nz-step     *ngFor="let item of approvalLsit"     [nzTitle]="item?.state"     [nzSubtitle]="item?.stateTime" <nz-steps [nzCurrent]="approvalLsit?.length + 1" nzLabelPlacement="vertical">
    [nzStatus]="item?.displayStatus === 'SHOW' ? 'finish' : 'wait'"  >  
  </nz-step> <nz-step
 </nz-steps> *ngFor="let item of approvalLsit"
[nzTitle]="item?.state"
[nzSubtitle]="item?.stateTime"
[nzStatus]="item?.displayStatus === 'SHOW' ? 'finish' : 'wait'"
>
 
</nz-step>
 </nz-steps
>
</div> </div>
</div> </div>
</nz-card> </nz-card>
<nz-card nzTitle="基本信息" #distannce2 > <nz-card nzTitle="基本信息" #distannce2>
<sv-container col="1"> <sv-container col="1">
<sv-title>货物信息</sv-title> <sv-title>货物信息</sv-title>
<sv label="网络货运人"> <sv label="网络货运人">
{{i?.goodsResource?.enterpriseInfoName}} {{ i?.goodsResource?.enterpriseInfoName }}
</sv> </sv>
<sv label="货物名称"> <sv label="货物名称">
{{i?.goodsInfoList?.[0]?.goodsName}} {{i?.goodsInfoList?.[0]?.goodsName}}
</sv> </sv>
</sv-container> </sv-container>
<sv-container col="2"> <sv-container col="2">
<sv label="货物数量"> <sv label="货物数量"> {{i?.goodsInfoList?.[0]?.weight}}吨,{{i?.goodsInfoList?.[0]?.volume}}方,{{i?.goodsInfoList?.[0]?.number}}件 </sv>
{{i?.goodsInfoList?.[0]?.weight}}吨,{{i?.goodsInfoList?.[0]?.volume}}方,{{i?.goodsInfoList?.[0]?.number}}件
</sv>
<sv label="用车需求">{{ i?.carModel }}/{{ i?.carLength }} </sv> <sv label="用车需求">{{ i?.carModel }}/{{ i?.carLength }} </sv>
<sv label="承运司机"> <sv label="承运司机"> {{ i?.driverName }}/{{ i?.driverPhone }}/{{ i?.carNo }} </sv>
{{i?.driverName}}/{{i?.driverPhone}}/{{i?.carNo}}
</sv>
<sv label="车型车长载重"> {{ i?.driverCarModelLabel }},{{ i?.driverCarLengthLabel }}米,{{ i?.driverCarWeight }}吨 </sv> <sv label="车型车长载重"> {{ i?.driverCarModelLabel }},{{ i?.driverCarLengthLabel }}米,{{ i?.driverCarWeight }}吨 </sv>
</sv-container> </sv-container>
<div class="mt-md" > <div class="mt-md">
<h4 class="text-md" >装货卸货信息 <h4 class="text-md"
<span class="ml-sm text-sm">( >装货卸货信息
<label>{{i?.loadingCount}}装</label> <span class="ml-sm text-sm"
<label>{{i?.unloadingCount}}卸</label> >(
<label>{{ i?.loadingCount }}装</label>
<label>{{ i?.unloadingCount }}卸</label>
) )
</span> </span>
</h4> </h4>
@ -99,12 +111,12 @@
<div *ngIf="item.type === '1'" class="loading-row"> <div *ngIf="item.type === '1'" class="loading-row">
<div class="handling-info-icon loading-bg"></div> <div class="handling-info-icon loading-bg"></div>
<div class="info"> <div class="info">
<h4>装货地:{{item?.province}}{{item.city}}{{item.area}}{{item.detailedAddress}}</h4> <h4>装货地:{{ item?.province }}{{ item.city }}{{ item.area }}{{ item.detailedAddress }}</h4>
<p>联系人:{{item.appUserName}}/{{item.contractTelephone}}</p> <p>联系人:{{ item.appUserName }}/{{ item.contractTelephone }}</p>
</div> </div>
</div> </div>
</div> </div>
<p class="time-info">计划装货时间:{{i?.goodsResource?.loadingTime}}</p> <p class="time-info">计划装货时间:{{ i?.goodsResource?.loadingTime }}</p>
</div> </div>
</div> </div>
<div nz-col [nzSpan]="12"> <div nz-col [nzSpan]="12">
@ -113,38 +125,36 @@
<div *ngIf="item.type === '2'" class="loading-row"> <div *ngIf="item.type === '2'" class="loading-row">
<div class="handling-info-icon unloaing-bg"></div> <div class="handling-info-icon unloaing-bg"></div>
<div class="info"> <div class="info">
<h4>卸货地:{{item?.province}}{{item.city}}{{item.area}}{{item.detailedAddress}}</h4> <h4>卸货地:{{ item?.province }}{{ item.city }}{{ item.area }}{{ item.detailedAddress }}</h4>
<p>联系人:{{item.appUserName}}/{{item.contractTelephone}}</p> <p>联系人:{{ item.appUserName }}/{{ item.contractTelephone }}</p>
</div> </div>
</div> </div>
</div> </div>
<p class="time-info">计划卸货时间:{{i?.goodsResource?.unloadingTime}}</p> <p class="time-info">计划卸货时间:{{ i?.goodsResource?.unloadingTime }}</p>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</nz-card> </nz-card>
<nz-card nzTitle="保险待定"> <nz-card nzTitle="保险待定"> </nz-card>
</nz-card>
<nz-card nzTitle="运费信息" #distannce3> <nz-card nzTitle="运费信息" #distannce3>
<st #st [data]="i?.billExpenseDetails" [columns]="logColumns" [ps]="0" [page]="{ show: false, showSize: false }"> <st #st [data]="i?.billExpenseDetails" [columns]="logColumns" [ps]="0" [page]="{ show: false, showSize: false }">
<ng-template st-row="price" let-item let-index="index"> <ng-template st-row="price" let-item let-index="index">
{{ item.price | currency}} {{ item.price | currency }}
</ng-template> </ng-template>
<ng-template st-row="surcharge" let-item let-index="index"> <ng-template st-row="surcharge" let-item let-index="index">
{{ item.surcharge | currency}} {{ item.surcharge | currency }}
</ng-template> </ng-template>
</st> </st>
<div> <div>
总计:<span style="color: #da001b; font-size: 18px">{{ i?.totalAmount | currency }}</span> 总计:<span style="color: #da001b; font-size: 18px">{{ i?.totalAmount | currency }}</span> (运费{{ i?.totalFreight | currency }}
(运费{{i?.totalFreight | currency}} 附加费{{ i?.totalSurcharge | currency }}附加费率{{ i?.totalRate * 100 }}%
附加费{{ i?.totalSurcharge | currency }},附加费率{{i?.totalRate * 100 }}%
</div> </div>
<div>收款人:{{ i?.payeeName }}/{{ i?.payeePhone }}</div> <div>收款人:{{ i?.payeeName }}/{{ i?.payeePhone }}</div>
</nz-card> </nz-card>
<nz-card nzTitle="附件信息" #distannce4> <nz-card nzTitle="附件信息" #distannce4>
<sv-container> <sv-container>
<sv label="协议附件"> <sv label="协议附件">
<!-- {{i?.supplementaryInformationVO?.stateReceipt?'是':'否'}} --> <!-- {{i?.supplementaryInformationVO?.stateReceipt?'是':'否'}} -->
@ -154,19 +164,17 @@
</sv-container> </sv-container>
<sv-container col="2" class="mt-md"> <sv-container col="2" class="mt-md">
<sv label="装货凭证"> <sv label="装货凭证">
<app-imagelist [imgList]="[i?.loadingLadingBillFilePath,i?.loadingPeopleVehiclesGoodsFilePath]"> <app-imagelist [imgList]="[i?.loadingLadingBillFilePath, i?.loadingPeopleVehiclesGoodsFilePath]"> </app-imagelist>
</app-imagelist>
</sv> </sv>
<sv label="卸货凭证"> <sv label="卸货凭证">
<app-imagelist [imgList]="[i?.unloadingLadingBillFilePath,i?.unloadingPeopleVehiclesGoodsFilePath]"> <app-imagelist [imgList]="[i?.unloadingLadingBillFilePath, i?.unloadingPeopleVehiclesGoodsFilePath]"> </app-imagelist>
</app-imagelist>
</sv> </sv>
</sv-container> </sv-container>
</nz-card> </nz-card>
<nz-card nzTitle="补充信息"> <nz-card nzTitle="补充信息">
<sv-container> <sv-container>
<sv label="是否回单"> <sv label="是否回单">
{{ i?.supplementaryInformationVO?.stateReceipt ? '是' : '否' }} {{ i?.supplementaryInformationVO?.stateReceipt ? '是' : '否' }}
</sv> </sv>
<sv label="回单类型"> <sv label="回单类型">
{{ i?.supplementaryInformationVO?.receiptType === '1' ? '电子回单' : '纸质回单' }} {{ i?.supplementaryInformationVO?.receiptType === '1' ? '电子回单' : '纸质回单' }}
@ -178,27 +186,26 @@
<sv label="详细地址"> <sv label="详细地址">
{{ i?.supplementaryInformationVO?.address }} {{ i?.supplementaryInformationVO?.address }}
</sv> </sv>
</sv-container> </sv-container>
<sv-container col="1" class="mt-md"> <sv-container col="1" class="mt-md">
<sv label="回单凭证"> <sv label="回单凭证">
<app-imagelist [imgList]="i?.receiptFilePath"></app-imagelist> <app-imagelist [imgList]="i?.receiptFilePath"></app-imagelist>
</sv> </sv>
<sv label="备注"> <sv label="备注">
{{i?.goodsResource?.remarks}} {{ i?.goodsResource?.remarks }}
</sv> </sv>
</sv-container> </sv-container>
</nz-card> </nz-card>
<nz-card> <nz-card>
<div nz-row> <div nz-row>
<nz-card nzTitle="轨迹信息" style="width: 100%;" id="distannce5" #distannce5> <nz-card nzTitle="轨迹信息" style="width: 100%" id="distannce5" #distannce5>
<div nz-row> <div nz-row>
<div nz-col [nzSpan]='12'> <div nz-col [nzSpan]="12">
<!-- <st #st [data]="i?.auditRecordList" [columns]="logColumns" [ps]="0" [page]="{ show: false, showSize: false }"> <!-- <st #st [data]="i?.auditRecordList" [columns]="logColumns" [ps]="0" [page]="{ show: false, showSize: false }">
</st> --> </st> -->
</div> </div>
<div nz-col [nzSpan]='12'> <div nz-col [nzSpan]="12">
<amap-path-simplifier></amap-path-simplifier> <amap-path-simplifier></amap-path-simplifier>
</div> </div>
</div> </div>
@ -206,8 +213,7 @@
</div> </div>
</nz-card> </nz-card>
<nz-modal [(nzVisible)]="isVisible" [nzFooter]="nzModalFooter" nzTitle="附件信息" (nzOnOk)="handleOK()" <nz-modal [(nzVisible)]="isVisible" [nzFooter]="nzModalFooter" nzTitle="附件信息" (nzOnOk)="handleOK()" (nzOnCancel)="handleCancel()">
(nzOnCancel)="handleCancel()">
<ng-container *nzModalContent> <ng-container *nzModalContent>
<app-imagelist [imgList]="imges"></app-imagelist> <app-imagelist [imgList]="imges"></app-imagelist>
</ng-container> </ng-container>
@ -215,4 +221,4 @@
<button nz-button nzType="primary" (click)="handleOK()" [disabled]="">取消</button> <button nz-button nzType="primary" (click)="handleOK()" [disabled]="">取消</button>
<button nz-button nzType="default" (click)="handleCancel()">确定 </button> <button nz-button nzType="default" (click)="handleCancel()">确定 </button>
</ng-template> </ng-template>
</nz-modal> </nz-modal>

View File

@ -9,14 +9,21 @@
* Copyright (C) 2022 huzhenhong. All rights reserved. * Copyright (C) 2022 huzhenhong. All rights reserved.
--> -->
<!-- 搜索表单 --> <!-- 搜索表单 -->
<page-header-wrapper [title]="''"> <page-header-wrapper [title]="''"> </page-header-wrapper>
</page-header-wrapper>
<nz-card> <nz-card>
<div nz-row nzGutter="8"> <div nz-row nzGutter="8">
<!-- 查询字段小于或等于3个时不显示伸缩按钮 --> <!-- 查询字段小于或等于3个时不显示伸缩按钮 -->
<div nz-col nzSpan="24" *ngIf="queryFieldCount <= 4"> <div nz-col nzSpan="24" *ngIf="queryFieldCount <= 4">
<sf #sf [schema]="schema" [ui]="ui" [mode]="'search'" [disabled]="!sf?.valid" [loading]="service.http.loading" <sf
(formSubmit)="st?.load(1)" (formReset)="resetSF()"></sf> #sf
[schema]="schema"
[ui]="ui"
[mode]="'search'"
[disabled]="!sf?.valid"
[loading]="service.http.loading"
(formSubmit)="st?.load(1)"
(formReset)="resetSF()"
></sf>
</div> </div>
<!-- 查询字段大于3个时根据展开状态调整布局 --> <!-- 查询字段大于3个时根据展开状态调整布局 -->
@ -25,10 +32,8 @@
<sf #sf [schema]="schema" [ui]="ui" [compact]="true" [button]="'none'"></sf> <sf #sf [schema]="schema" [ui]="ui" [compact]="true" [button]="'none'"></sf>
</div> </div>
<div nz-col [nzSpan]="_$expand ? 24 : 6" class="text-right"> <div nz-col [nzSpan]="_$expand ? 24 : 6" class="text-right">
<button nz-button nzType="primary" [nzLoading]="service.http.loading" <button nz-button nzType="primary" [nzLoading]="service.http.loading" (click)="search()" acl [acl-ability]="['ORDER-VEHICLE-search']">查询</button>
(click)="search()">查询</button> <button nz-button nzType="primary" [disabled]="service.http.loading">导出</button>
<button nz-button nzType="primary" [disabled]="service.http.loading"
>导出</button>
<button nz-button [disabled]="service.http.loading" (click)="resetSF()">重置</button> <button nz-button [disabled]="service.http.loading" (click)="resetSF()">重置</button>
<button nz-button nzType="link" (click)="expandToggle()"> <button nz-button nzType="link" (click)="expandToggle()">
{{ !_$expand ? '展开' : '收起' }} {{ !_$expand ? '展开' : '收起' }}
@ -40,101 +45,93 @@
</nz-card> </nz-card>
<nz-card> <nz-card>
<nz-tabset (nzSelectedIndexChange)="selectChange($event)" <nz-tabset (nzSelectedIndexChange)="selectChange($event)" [nzTabBarExtraContent]="extraTemplate">
[nzTabBarExtraContent]="extraTemplate"> <nz-tab [nzTitle]="'全部(' + tabs?.totalCount + ')'"></nz-tab>
<nz-tab [nzTitle]="'全部('+tabs?.totalCount+')'"></nz-tab> <nz-tab [nzTitle]="'待接单(' + tabs?.receivedQuantity + ')'"></nz-tab>
<nz-tab [nzTitle]="'接单('+tabs?.receivedQuantity+')'"></nz-tab> <nz-tab [nzTitle]="'发车(' + tabs?.stayQuantity + ')'"></nz-tab>
<nz-tab [nzTitle]="'待发车('+tabs?.stayQuantity+')'"></nz-tab> <nz-tab [nzTitle]="'运输中(' + tabs?.GoingQuantity + ')'"></nz-tab>
<nz-tab [nzTitle]="'运输中('+tabs?.GoingQuantity+')'"></nz-tab> <nz-tab [nzTitle]="'待签收(' + tabs?.signQuantity + ')'"></nz-tab>
<nz-tab [nzTitle]="'待签收('+tabs?.signQuantity+')'"></nz-tab> <nz-tab [nzTitle]="'已完成(' + tabs?.compolatelQuantity + ')'"></nz-tab>
<nz-tab [nzTitle]="'完成('+tabs?.compolatelQuantity+')'"></nz-tab> <nz-tab [nzTitle]="'取消(' + tabs?.cancelQuantity + ')'"></nz-tab>
<nz-tab [nzTitle]="'已取消('+tabs?.cancelQuantity+')'"></nz-tab> </nz-tabset>
</nz-tabset> <div style="margin-top: 15px">
<div style="margin-top: 15px;">
<st <st
#st #st
[bordered]="true" [bordered]="true"
multiSort multiSort
[scroll]="{ x: '1200px' }" [scroll]="{ x: '1200px' }"
[data]="service.$api_get_listWholePage" [data]="service.$api_get_listWholePage"
[columns]="columns" [columns]="columns"
[req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, params: reqParams }" [req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, params: reqParams }"
[res]="{ reName: { list: 'data.records', total: 'data.total' } }" [res]="{ reName: { list: 'data.records', 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] }"
> >
<ng-template st-row="billCode" let-item let-index="index"> <ng-template st-row="billCode" let-item let-index="index">
<a [routerLink]="'vehicle-detail/'+item.id">{{item.billCode}}</a> <a [routerLink]="'vehicle-detail/' + item.id">{{ item.billCode }}</a>
<div> <div>
<span>{{item?.billStatusLabel}}</span> <span>{{ item?.billStatusLabel }}</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">
<div>{{item?.goodsName}}</div> <div>{{ item?.goodsName }}</div>
<div> <div>
<span>{{item?.weight ? item?.weight + '吨/' : '' }}</span> <span>{{ item?.weight ? item?.weight + '吨/' : '' }}</span>
<span>{{item?.volume ? item?.volume + '方/' : '' }}</span> <span>{{ item?.volume ? item?.volume + '方/' : '' }}</span>
<span>{{item?.goodsNumber ? item?.goodsNumber + '吨' : '' }}</span> <span>{{ item?.goodsNumber ? item?.goodsNumber + '吨' : '' }}</span>
</div> </div>
</ng-template> </ng-template>
<!-- 我的出价 --> <!-- 我的出价 -->
<ng-template st-row="mybidInfo" let-item let-index="index" class="temp_p"> <ng-template st-row="mybidInfo" let-item let-index="index" class="temp_p">
<div *ngIf="item.mybidInfo.length > 0"> <div *ngIf="item.mybidInfo.length > 0">
<p *ngFor="let data of item.mybidInfo"> {{ data.expenseName }}:¥{{ data.price | number:'0.2-2' }} </p> <p *ngFor="let data of item.mybidInfo"> {{ data.expenseName }}:¥{{ data.price | number: '0.2-2' }} </p>
</div> </div>
</ng-template> </ng-template>
<ng-template st-row="mybidDetailInfo" let-item let-index="index"> <ng-template st-row="mybidDetailInfo" let-item let-index="index">
<div *ngIf="item.mybidDetailInfo.length > 0"> <div *ngIf="item.mybidDetailInfo.length > 0">
<p *ngFor="let data of item.mybidDetailInfo"> <p *ngFor="let data of item.mybidDetailInfo">
{{ data.expenseName }}:¥{{ data.price | number:'0.2-2' }} {{ data.expenseName }}:¥{{ data.price | number: '0.2-2' }}
<span *ngIf="data.paymentStatus && data.paymentStatus === '1'" style="color: #f59a63">待申请</span> <span *ngIf="data.paymentStatus && data.paymentStatus === '1'" style="color: #f59a63">待申请</span>
<span *ngIf="data.paymentStatus && data.paymentStatus === '2'" style="color: #f59a63">已拒绝</span> <span *ngIf="data.paymentStatus && data.paymentStatus === '2'" style="color: #f59a63">已拒绝</span>
<span *ngIf="data.paymentStatus && data.paymentStatus === '3'" style="color: #f59a63">已支付</span> <span *ngIf="data.paymentStatus && data.paymentStatus === '3'" style="color: #f59a63">已支付</span>
<span *ngIf="data.paymentStatus && data.paymentStatus === '4'" style="color: #f59a63">申请中</span> <span *ngIf="data.paymentStatus && data.paymentStatus === '4'" style="color: #f59a63">申请中</span>
</p> </p>
</div> </div>
</ng-template> </ng-template>
<ng-template st-row="billExpenseDetailVOList" let-item let-index="index"> <ng-template st-row="billExpenseDetailVOList" let-item let-index="index">
<div *ngFor="let i of item?.billExpenseDetailVOList; let ii = index"> <div *ngFor="let i of item?.billExpenseDetailVOList; let ii = index">
<span >{{i?.costName}}{{i?.price}}</span> <span>{{ i?.costName }}{{ i?.price }}</span>
</div> </div>
</ng-template> </ng-template>
<ng-template st-row="driverName" let-item let-index="index"> <ng-template st-row="driverName" let-item let-index="index">
<div> <div> {{ item?.driverName }}/{{ item?.driverPhone }}/{{ item?.carNo }} </div>
{{item?.driverName}}/{{item?.driverPhone}}/{{item?.carNo}} </ng-template>
</div> <ng-template st-row="payeeName" let-item let-index="index">
</ng-template> <div> {{ item?.payeeName }}/{{ item?.payeePhone }} </div>
<ng-template st-row="payeeName" let-item let-index="index"> </ng-template>
<div> <ng-template st-row="loadingTime" let-item let-index="index">
{{item?.payeeName}}/{{item?.payeePhone}} <div *ngIf="item?.loadingTime">装 | {{ item?.loadingTime }}</div>
</div> <div *ngIf="item?.unloadingTime">卸 | {{ item?.unloadingTime }}</div>
</ng-template> </ng-template>
<ng-template st-row="loadingTime" let-item let-index="index">
<div *ngIf="item?.loadingTime">装 | {{item?.loadingTime}}</div>
<div *ngIf="item?.unloadingTime">卸 | {{item?.unloadingTime}}</div>
</ng-template>
</st> </st>
</div> </div>
</nz-card> </nz-card>
<nz-modal [(nzVisible)]="isVisible" [nzWidth]="600" [nzFooter]="nzModalFooter" nzTitle="运费变更记录" (nzOnCancel)="handleCancel('0')">
<nz-modal [(nzVisible)]="isVisible" [nzWidth]="600" [nzFooter]="nzModalFooter" nzTitle="运费变更记录" (nzOnCancel)="handleCancel('0')">
<ng-container *nzModalContent> <ng-container *nzModalContent>
<st <st
#stFloat #stFloat
multiSort multiSort
size="small" size="small"
[bordered]="true" [bordered]="true"
[data]="service.$api_get_listChangeApply" [data]="service.$api_get_listChangeApply"
[columns]="columnsFloat" [columns]="columnsFloat"
[req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, params: changeParams }" [req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, params: changeParams }"
[res]="{ reName: { list: 'data', total: 'data.total' } }" [res]="{ reName: { list: 'data', total: 'data.total' } }"
>
> <ng-template st-row="order" let-item let-index="index">
<ng-template st-row="order" let-item let-index="index"> {{ index + 1 }}
{{ index + 1 }} </ng-template>
</ng-template> </st>
</st>
</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>
@ -142,31 +139,32 @@
</ng-template> </ng-template>
</nz-modal> </nz-modal>
<nz-modal [(nzVisible)]="isVisibleView" [nzWidth]="600" [nzFooter]="nzModalFooterview" nzTitle="查看" (nzOnCancel)="handleCancel('1')">
<nz-modal [(nzVisible)]="isVisibleView" [nzWidth]="600" [nzFooter]="nzModalFooterview" nzTitle="查看" (nzOnCancel)="handleCancel('1')">
<ng-container *nzModalContent> <ng-container *nzModalContent>
<st <st
#stFloatView #stFloatView
size="small" size="small"
[bordered]="true" [bordered]="true"
[data]="service.$api_getChangeRecordWholeDetail" [data]="service.$api_getChangeRecordWholeDetail"
[columns]="columnsFloatView" [columns]="columnsFloatView"
[req]="{ method: 'POST', allInBody: true, params: changeViewParams }" [req]="{ method: 'POST', allInBody: true, params: changeViewParams }"
[res]="{ reName: { list: 'data.list', total: 'data.total' } }" [res]="{ reName: { list: 'data.list', total: 'data.total' } }"
> >
<ng-template st-row="amountBeforeChange" let-item let-index="index"> <ng-template st-row="amountBeforeChange" let-item let-index="index">
{{ item.amountBeforeChange | currency}} {{ item.amountBeforeChange | currency }}
</ng-template> </ng-template>
<ng-template st-row="amountchangeValue" let-item let-index="index"> <ng-template st-row="amountchangeValue" let-item let-index="index"> ¥{{ item.amountchangeValue | number: '0.2-2' }} </ng-template>
¥{{ item.amountchangeValue | number: '0.2-2'}} <ng-template st-row="amountAfterChange" let-item let-index="index">
</ng-template> {{ item.amountAfterChange | currency }}
<ng-template st-row="amountAfterChange" let-item let-index="index"> </ng-template>
{{ item.amountAfterChange | currency}} </st>
</ng-template> <div
</st> ><span>变更原因:{{ ViewCause?.changeCause }}</span></div
<div><span>变更原因:{{ViewCause?.changeCause}}</span></div> >
<div><span>拒绝原因:{{ViewCause?.refuseCause}}</span></div> <div
<div><span>注:附加费依据调整后的运输费用重新计算</span></div> ><span>拒绝原因:{{ ViewCause?.refuseCause }}</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>
@ -174,12 +172,12 @@
</ng-template> </ng-template>
</nz-modal> </nz-modal>
<nz-modal [(nzVisible)]="isVisibleEvaluate" [nzWidth]="600" [nzFooter]="nzModalFooterEvaluate" (nzOnCancel)="handleCancel('2')"> <nz-modal [(nzVisible)]="isVisibleEvaluate" [nzWidth]="600" [nzFooter]="nzModalFooterEvaluate" (nzOnCancel)="handleCancel('2')">
<ng-container *nzModalContent> <ng-container *nzModalContent>
<nz-tabset> <nz-tabset>
<nz-tab nzTitle="货主评价"> <nz-tab nzTitle="货主评价">
<sv-container col="1" labelWidth="90"> <sv-container col="1" labelWidth="90">
<sv [label]="i.evaluateTypeLabel"*ngFor="let i of shipList" > <sv [label]="i.evaluateTypeLabel" *ngFor="let i of shipList">
<nz-rate [ngModel]="i.evaluateFraction" nzDisabled="true"></nz-rate> <nz-rate [ngModel]="i.evaluateFraction" nzDisabled="true"></nz-rate>
</sv> </sv>
</sv-container> </sv-container>
@ -187,7 +185,7 @@
</nz-tab> </nz-tab>
<nz-tab nzTitle="司机评价"> <nz-tab nzTitle="司机评价">
<sv-container col="1" labelWidth="90"> <sv-container col="1" labelWidth="90">
<sv [label]="i.evaluateTypeLabel"*ngFor="let i of diverList" > <sv [label]="i.evaluateTypeLabel" *ngFor="let i of diverList">
<nz-rate [ngModel]="i.evaluateFraction" nzDisabled="true"></nz-rate> <nz-rate [ngModel]="i.evaluateFraction" nzDisabled="true"></nz-rate>
</sv> </sv>
</sv-container> </sv-container>
@ -202,28 +200,29 @@
</nz-modal> </nz-modal>
<ng-template #extraTemplate> <ng-template #extraTemplate>
<div> <div>
<button nz-button nzType="primary"(click)="modifyRate()"> <button nz-button nzType="primary" (click)="modifyRate()" acl [acl-ability]="['ORDER-VEHICLE-modificationAdditional']"> 修改附加费率 </button>
修改附加费率 <button nz-button nzType="primary" (click)="modifyFreightPeople()" acl [acl-ability]="['ORDER-VEHICLE-modificationNetworkFreight']"> 修改网络货运人 </button>
</button> <button nz-button nzType="primary" (click)="modifycaptain()" acl [acl-ability]="['ORDER-VEHICLE-modificationCarCaptain']"> 修改车队长 </button>
<button nz-button nzType="primary"(click)="modifyFreightPeople()"> <button
修改网络货运人 nz-button
</button> nzType="primary"
<button nz-button nzType="primary"(click)="modifycaptain()"> nzGhost
修改车队长 nz-popconfirm
</button> [nzPopconfirmTitle]="enable"
<button nz-button nzType="primary" nzGhost nz-popconfirm (nzOnConfirm)="userAction()"
[nzPopconfirmTitle]="enable" (nzOnConfirm)="userAction()" nzPopconfirmPlacement="bottomRight"> nzPopconfirmPlacement="bottomRight"
批量签收 acl [acl-ability]="['ORDER-VEHICLE-batchSignWholeOrder']"
</button> >
批量签收
</button>
</div> </div>
</ng-template> </ng-template>
<ng-template #enable> <ng-template #enable>
<div class="ant-popover-message"> <div class="ant-popover-message">
<i nz-icon nzType="info-circle" nzTheme="fill"></i> <i nz-icon nzType="info-circle" nzTheme="fill"></i>
<div class="ant-popover-message-title ng-star-inserted self-ant-popover-title" style="font-size: 16px">已选择{{selectedRows?.length || 0}}条订单,确认批量签收吗? <div class="ant-popover-message-title ng-star-inserted self-ant-popover-title" style="font-size: 16px"
</div> >已选择{{ selectedRows?.length || 0 }}条订单,确认批量签收吗?
<div class="ant-popover-message-title ng-star-inserted">
签收后不可再修改运费,请确保运费等信息准确无误后,再进行签收。
</div> </div>
<div class="ant-popover-message-title ng-star-inserted"> 签收后不可再修改运费,请确保运费等信息准确无误后,再进行签收。 </div>
</div> </div>
</ng-template> </ng-template>

View File

@ -415,36 +415,43 @@ resourceStatus: any;
text: '运费变更记录', text: '运费变更记录',
click: (_record) => this.OpenPrice(_record), click: (_record) => this.OpenPrice(_record),
iif: item => item.billStatus == '4' || item.billStatus == '5' || item.billStatus == '2' || item.billStatus == '3' || item.billStatus == '6', iif: item => item.billStatus == '4' || item.billStatus == '5' || item.billStatus == '2' || item.billStatus == '3' || item.billStatus == '6',
acl: { ability: ['ORDER-VEHICLE-ChangeApplyList'] },
}, },
{ {
text: '查看评价 ', text: '查看评价 ',
click: (_record) => this.viewEvaluate(_record), click: (_record) => this.viewEvaluate(_record),
iif: item => item.billStatus == '5', iif: item => item.billStatus == '5',
acl: { ability: ['ORDER-VEHICLE-evaluation'] },
}, },
{ {
text: '变更运费 ', text: '变更运费 ',
click: (_record) => this.updateFreight(_record), click: (_record) => this.updateFreight(_record),
iif: item => item.billStatus !== '1' && item.billStatus !== '6' && item.overallPaymentStatus != '2', iif: item => item.billStatus !== '1' && item.billStatus !== '6' && item.overallPaymentStatus != '2',
acl: { ability: ['ORDER-VEHICLE-FreightChangeWholeDetail'] },
}, },
{ {
text: '确认签收 ', text: '确认签收 ',
click: (_record) => this.confirmReceipt(_record), click: (_record) => this.confirmReceipt(_record),
iif: item => item.billStatus == '4', iif: item => item.billStatus == '4',
acl: { ability: ['ORDER-VEHICLE-signWholeOrder'] },
}, },
{ {
text: '取消订单 ', text: '取消订单 ',
click: (_record) => this.cancellation(_record), click: (_record) => this.cancellation(_record),
iif: item => item.billStatus == '4' || item.billStatus == '5' || item.billStatus == '2' || item.billStatus == '3' || item.billStatus == '1', iif: item => item.billStatus == '4' || item.billStatus == '5' || item.billStatus == '2' || item.billStatus == '3' || item.billStatus == '1',
acl: { ability: ['ORDER-VEHICLE-cancelAnOrder'] },
}, },
{ {
text: '修改订单 ', text: '修改订单 ',
click: (_record) => this.changeOrder(_record), click: (_record) => this.changeOrder(_record),
iif: item => item.billStatus == '4' || item.billStatus == '5' || item.billStatus == '2' || item.billStatus == '3', iif: item => item.billStatus == '4' || item.billStatus == '5' || item.billStatus == '2' || item.billStatus == '3',
acl: { ability: ['ORDER-VEHICLE-modificationOrder'] },
}, },
{ {
text: '查看轨迹 ', text: '查看轨迹 ',
click: (_record) => this.cancellation(_record), click: (_record) => this.cancellation(_record),
iif: item => item.billStatus == '4' || item.billStatus == '5' || item.billStatus == '2' || item.billStatus == '3', iif: item => item.billStatus == '4' || item.billStatus == '5' || item.billStatus == '2' || item.billStatus == '3',
// acl: { ability: ['VEHICLE-LIST-view'] },
}, },
], ],

View File

@ -4,7 +4,7 @@
* @Author : Shiming * @Author : Shiming
* @Date : 2021-12-15 13:17:42 * @Date : 2021-12-15 13:17:42
* @LastEditors : Shiming * @LastEditors : Shiming
* @LastEditTime : 2022-01-21 16:59:43 * @LastEditTime : 2022-02-15 15:12:02
* @FilePath : \\tms-obc-web\\src\\app\\routes\\order-management\\modal\\audit\\voucher-view\\voucher-view.component.html * @FilePath : \\tms-obc-web\\src\\app\\routes\\order-management\\modal\\audit\\voucher-view\\voucher-view.component.html
* Copyright (C) 2022 huzhenhong. All rights reserved. * Copyright (C) 2022 huzhenhong. All rights reserved.
--> -->
@ -27,5 +27,5 @@
<div class="modal-footer"> <div class="modal-footer">
<button nz-button type="button" *ngIf="Status === 1" (click)="close()">关闭</button> <button nz-button type="button" *ngIf="Status === 1" (click)="close()">关闭</button>
<button nz-button type="submit" *ngIf="Status === 1" nzType="primary" (click)="save(sf.value)" [nzLoading]="http.loading">确定</button> <button nz-button type="submit" *ngIf="Status === 1" nzType="primary" (click)="save(sf.value)" [nzLoading]="http.loading">确定</button>
<button nz-button type="submit" nzType="primary" *ngIf="Status !== 1" (click)="sure()" [nzLoading]="http.loading">生成电子单据</button> <button nz-button type="submit" nzType="primary" *ngIf="Status == 2" (click)="sure()" [nzLoading]="http.loading">生成电子单据</button>
</div> </div>