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

This commit is contained in:
Taric Xin
2022-02-15 15:40:32 +08:00
21 changed files with 800 additions and 692 deletions

View File

@ -4,7 +4,7 @@
* @Author : Shiming
* @Date : 2021-12-06 20:20:26
* @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
* Copyright (C) 2022 huzhenhong. All rights reserved.
-->
@ -16,52 +16,63 @@
</ng-template>
<ng-template #headerContent>
<div class="mb-xs" nz-row>
<button nz-button nzType="primary" nzSize="small" nzDanger>{{i?.billStatusLabel}}</button>
<h4 class="ml-md" style="font-size: 18px;">订单号: {{ i?.billCode }}</h4>
<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;">
<div nz-row style="display: flex; justify-content: end">
<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 nz-button *ngIf="i?.billStatus == '4' || i?.billStatus == '5' || i?.billStatus == '2' || i?.billStatus == '3'" (click)="changeOrder()">修改订单</button>
<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>
<nz-divider></nz-divider>
<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?.goodsResource?.createUserName}} /{{i?.goodsResource?.createUserPhone}} </sv>
<sv label="调度员">{{i?.goodsResource?.dispatchName}}/{{i?.goodsResource?.dispatchPhone}} </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>
<sv label="所属项目">{{ i?.goodsResource?.enterpriseProjectName }}</sv>
<sv label="服务类型">{{ i?.goodsResource?.serviceTypeLabel }}</sv>
<sv label="录单员">{{ i?.goodsResource?.createUserName }} /{{ i?.goodsResource?.createUserPhone }} </sv>
<sv label="调度员">{{ i?.goodsResource?.dispatchName }}/{{ i?.goodsResource?.dispatchPhone }} </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>
<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"
    [nzStatus]="item.displayStatus === 'SHOW' ? 'finish' : 'wait'"
  >
  </nz-step>
 </nz-steps>
 
<nz-steps [nzCurrent]="i?.scheduleVOList?.length + 1" nzLabelPlacement="vertical">
 
<nz-step
*ngFor="let item of i?.scheduleVOList"
[nzTitle]="item.state"
[nzSubtitle]="item.stateTime"
[nzStatus]="item.displayStatus === 'SHOW' ? 'finish' : 'wait'"
>
 
</nz-step>
 </nz-steps
>
</div>
</div>
</nz-card>
@ -71,85 +82,76 @@
<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-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 }} </sv>
<sv label="承运司机">
{{i?.driverName}}/{{i?.driverPhone}}{{i?.carNo}}
</sv>
<sv label="承运司机"> {{ i?.driverName }}/{{ i?.driverPhone }}{{ i?.carNo }} </sv>
<sv label="车型车长载重"> {{ i?.driverCarModelLabel }},{{ i?.driverCarLengthLabel }}米,{{ i?.driverCarWeight }}吨 </sv>
<sv label="计划装货时间">
{{i?.loadPlanTime}}
{{ i?.loadPlanTime }}
</sv>
<sv label="计划卸货时间">
{{i?.unloadPlanTime}}
{{ i?.unloadPlanTime }}
</sv>
<sv label="接单数量">
{{i?.acceptWeight}}吨,{{i?.acceptVolume}}方,{{i?.acceptNumber}}件
</sv>
<sv label="装货数量">
{{i?.acceptWeight}}吨,{{i?.acceptVolume}}方,{{i?.acceptNumber}}件
</sv>
<sv label="卸货数量">
{{i?.settlementWeight}}吨,{{i?.settlementVolume}}方,{{i?.acceptNumber}}件
</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}}</p>
<sv label="接单数量"> {{ i?.acceptWeight }}吨,{{ i?.acceptVolume }}方,{{ i?.acceptNumber }}件 </sv>
<sv label="装货数量"> {{ i?.acceptWeight }}吨,{{ i?.acceptVolume }}方,{{ i?.acceptNumber }}件 </sv>
<sv label="卸货数量"> {{ i?.settlementWeight }}吨,{{ i?.settlementVolume }}方,{{ i?.acceptNumber }}件 </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 }}</p>
</div>
</div>
</div>
</div>
</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}}</p>
<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 }}</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</nz-card>
<nz-card nzTitle="运费信息" #distannce3>
<h2>{{i?.goodsInfoList?.[0]?.freightPrice}}{{i?.goodsInfoList?.[0]?.freightTypeLabel}}(以发货为准,保留小数)</h2>
<st #st [data]="i?.billExpenseDetails" [columns]="logColumns" [ps]="0" [page]="{ show: false, showSize: false }">
<ng-template st-row="price" let-item let-index="index">
{{ item.price | currency}}
{{ item.price | currency }}
</ng-template>
<ng-template st-row="surcharge" let-item let-index="index">
{{ item.surcharge | currency}}
{{ item.surcharge | currency }}
</ng-template>
</st>
<div>
<div>
总计:<span style="color: #da001b; font-size: 18px">{{ i?.totalAmount | currency }}</span>
(运费{{i?.totalFreight | currency}}
附加费{{ i?.totalSurcharge | currency }},附加费率{{i?.totalRate * 100 }}%
总计:<span style="color: #da001b; font-size: 18px">{{ i?.totalAmount | currency }}</span> (运费{{ i?.totalFreight | currency }}
附加费{{ i?.totalSurcharge | currency }}附加费率{{ i?.totalRate * 100 }}%
</div>
</div>
<div>收款人:{{ i?.payeeName }}/{{ i?.payeePhone }}</div>
@ -165,12 +167,10 @@
</sv-container>
<sv-container col="2" class="mt-md">
<sv label="装货凭证">
<app-imagelist [imgList]="[i?.loadingLadingBillFilePath,i?.loadingPeopleVehiclesGoodsFilePath]">
</app-imagelist>
<app-imagelist [imgList]="[i?.loadingLadingBillFilePath, i?.loadingPeopleVehiclesGoodsFilePath]"> </app-imagelist>
</sv>
<sv label="卸货凭证">
<app-imagelist [imgList]="[i?.unloadingLadingBillFilePath,i?.unloadingPeopleVehiclesGoodsFilePath]">
</app-imagelist>
<app-imagelist [imgList]="[i?.unloadingLadingBillFilePath, i?.unloadingPeopleVehiclesGoodsFilePath]"> </app-imagelist>
</sv>
</sv-container>
</nz-card>
@ -189,40 +189,39 @@
<sv label="详细地址">
{{ i?.supplementaryInformationVO?.address }}
</sv>
</sv-container>
<sv-container col="1" class="mt-md">
<sv label="回单凭证">
<app-imagelist [imgList]="i?.receiptFilePath"></app-imagelist>
</sv>
<sv label="备注">
{{i?.goodsResource?.remarks}}
{{ i?.goodsResource?.remarks }}
</sv>
</sv-container>
</nz-card>
<nz-card>
<div nz-row>
<nz-card nzTitle="轨迹信息" style="width: 100%;" #distannce5>
<div nz-row >
<div nz-col [nzSpan]='12'>
<!-- <st #st [data]="i?.auditRecordList" [columns]="logColumns" [ps]="0" [page]="{ show: false, showSize: false }">
<nz-card nzTitle="轨迹信息" style="width: 100%" #distannce5>
<div nz-row>
<div nz-col [nzSpan]="12">
<!-- <st #st [data]="i?.auditRecordList" [columns]="logColumns" [ps]="0" [page]="{ show: false, showSize: false }">
</st> -->
</div>
<div nz-col [nzSpan]='12'>
<amap-path-simplifier></amap-path-simplifier>
</div>
</div>
</div>
<div nz-col [nzSpan]="12">
<amap-path-simplifier></amap-path-simplifier>
</div>
</div>
</nz-card>
</div>
</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>
<app-imagelist [imgList]="imges"></app-imagelist>
</ng-container>
<ng-template #nzModalFooter>
<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>
</nz-modal>
</nz-modal>

View File

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

View File

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

View File

@ -4,7 +4,7 @@
* @Author : Shiming
* @Date : 2022-01-12 10:52:50
* @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
* Copyright (C) 2022 huzhenhong. All rights reserved.
-->
@ -91,7 +91,7 @@
<span>{{item?.serviceTypeName}}</span>
</div>
<div>
<span>{{item?.billStatusLabel}}</span>
<span>{{item?.auditStatusLabel}}</span>
</div>
</ng-template>
<ng-template st-row="goodsName" let-item let-index="index">

View File

@ -335,17 +335,22 @@ export class OrderManagementReceiptsAuditComponent implements OnInit {
{
text: '通过',
click: _record => this.sign(_record),
// iif: item => item.billStatus == '5'
iif: item => item.auditStatus == '1'
},
{
text: '生成电子单据',
click: _record => this.generate(_record),
// iif: item => item.billStatus == '4'
click: _record => this.generate(_record, 2),
iif: item => item.auditStatus == '1'
},
{
text: '查看凭证',
click: _record => this.generate(_record, 3),
iif: item => item.auditStatus == '2'
},
{
text: '修改',
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({
nzTitle: '查看凭证',
nzWidth: '50%',
nzContent: orderManagementVoucherViewComponent,
nzComponentParams: {
i: item,
Status: 2
Status: sts
},
nzFooter: null
});

View File

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

View File

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

View File

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

View File

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

View File

@ -415,36 +415,43 @@ resourceStatus: any;
text: '运费变更记录',
click: (_record) => this.OpenPrice(_record),
iif: item => item.billStatus == '4' || item.billStatus == '5' || item.billStatus == '2' || item.billStatus == '3' || item.billStatus == '6',
acl: { ability: ['ORDER-VEHICLE-ChangeApplyList'] },
},
{
text: '查看评价 ',
click: (_record) => this.viewEvaluate(_record),
iif: item => item.billStatus == '5',
acl: { ability: ['ORDER-VEHICLE-evaluation'] },
},
{
text: '变更运费 ',
click: (_record) => this.updateFreight(_record),
iif: item => item.billStatus !== '1' && item.billStatus !== '6' && item.overallPaymentStatus != '2',
acl: { ability: ['ORDER-VEHICLE-FreightChangeWholeDetail'] },
},
{
text: '确认签收 ',
click: (_record) => this.confirmReceipt(_record),
iif: item => item.billStatus == '4',
acl: { ability: ['ORDER-VEHICLE-signWholeOrder'] },
},
{
text: '取消订单 ',
click: (_record) => this.cancellation(_record),
iif: item => item.billStatus == '4' || item.billStatus == '5' || item.billStatus == '2' || item.billStatus == '3' || item.billStatus == '1',
acl: { ability: ['ORDER-VEHICLE-cancelAnOrder'] },
},
{
text: '修改订单 ',
click: (_record) => this.changeOrder(_record),
iif: item => item.billStatus == '4' || item.billStatus == '5' || item.billStatus == '2' || item.billStatus == '3',
acl: { ability: ['ORDER-VEHICLE-modificationOrder'] },
},
{
text: '查看轨迹 ',
click: (_record) => this.cancellation(_record),
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
* @Date : 2021-12-15 13:17:42
* @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
* Copyright (C) 2022 huzhenhong. All rights reserved.
-->
@ -27,5 +27,5 @@
<div class="modal-footer">
<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" 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>

View File

@ -1,142 +1,192 @@
<!-- 页头 -->
<page-header-wrapper [logo]="logo" [title]="'车队长详情'" [content]="content">
<ng-template #logo>
<button nz-button nz-tooltip nzTooltipTitle="返回上一页" (click)="goBack()">
<i nz-icon nzType="left" nzTheme="outline"></i>
</button>
</ng-template>
<ng-template #content>
<nz-skeleton [nzLoading]="service.http.loading">
<div class="user-info">
<img [src]="userDetail?.avatar" />
<div style="flex: 1">
<div style="display: flex;width: 100%;justify-content: space-between;">
<p style="padding-right: 80px; width: 400px;">{{ userDetail?.name }}
<nz-badge nzStatus="success" nzText="正常" *ngIf="!userDetail?.stateLocked" class="ml-xl">
</nz-badge>
<nz-badge nzStatus="warning" nzText="冻结" *ngIf="userDetail?.stateLocked" class="ml-xl">
</nz-badge>
</p>
<div style="margin-right: 24px;">
<button *ngIf="userDetail?.stateLocked" [nzLoading]="service.http.loading" nz-button
nzType="primary" nzGhost (click)="userAction(1)">
启用
</button>
<button *ngIf="!userDetail?.stateLocked" [nzLoading]="service.http.loading" nz-button
nzDanger nzGhost (click)="userAction(0)">
冻结
</button>
</div>
</div>
<div style="display: flex;">
<p style="padding-right: 80px; width: 400px;">手机号:{{ userDetail?.phone }}
</p>
<p>注册时间:{{ userDetail?.createTime }}</p>
</div>
</div>
<ng-template #logo>
<button nz-button nz-tooltip nzTooltipTitle="返回上一页" (click)="goBack()">
<i nz-icon nzType="left" nzTheme="outline"></i>
</button>
</ng-template>
<ng-template #content>
<nz-skeleton [nzLoading]="service.http.loading">
<div class="user-info">
<img [src]="userDetail?.avatar" />
<div style="flex: 1">
<div style="display: flex; width: 100%; justify-content: space-between">
<p style="padding-right: 80px; width: 400px"
>{{ userDetail?.name }}
<nz-badge nzStatus="success" nzText="正常" *ngIf="!userDetail?.stateLocked" class="ml-xl"> </nz-badge>
<nz-badge nzStatus="warning" nzText="冻结" *ngIf="userDetail?.stateLocked" class="ml-xl"> </nz-badge>
</p>
<div style="margin-right: 24px">
<button
*ngIf="userDetail?.stateLocked"
[nzLoading]="service.http.loading"
nz-button
nzType="primary"
nzGhost
(click)="userAction(1)"
acl
[acl-ability]="['USERCENTER-DRIVER-CAPTAIN-DETAIL-lock']"
>
启用
</button>
<button
*ngIf="!userDetail?.stateLocked"
[nzLoading]="service.http.loading"
nz-button
nzDanger
nzGhost
(click)="userAction(0)"
acl
[acl-ability]="['USERCENTER-DRIVER-CAPTAIN-DETAIL-lock']"
>
冻结
</button>
</div>
</nz-skeleton>
</ng-template>
</div>
<div style="display: flex">
<p style="padding-right: 80px; width: 400px">手机号:{{ userDetail?.phone }} </p>
<p>注册时间:{{ userDetail?.createTime }}</p>
</div>
</div>
</div>
</nz-skeleton>
</ng-template>
</page-header-wrapper>
<nz-card [nzLoading]="service.http.loading">
<div [class]="isEditUser?'edit-box':'readOnly-box'">
<sv-container col="2">
<sv-title>个人信息
<label *ngIf="userIdentityDetail?.certificationStatus===1" style="color: #52c41a;" class="ml-md"><i
nz-icon nzType="check-circle" nzTheme="fill" class="mr-xs"></i>审核通过
</label>
<label *ngIf="userIdentityDetail?.certificationStatus===2" style="color: #ff4d4f;" class="ml-md"><i
nz-icon nzType="close-circle" nzTheme="fill" class="mr-xs"></i>驳回
</label>
<div style="float: right;">
<ng-container *ngIf="isEditUser; else elseTemplate">
<button [nzLoading]="service.http.loading" nz-button (click)="reset()">
取消
</button>
<button [nzLoading]="service.http.loading" nz-button nzDanger (click)="saveUser()">
保存
</button>
</ng-container>
<ng-template #elseTemplate>
<button nz-button nzType="default" nzDanger (click)="approveUser()"
*ngIf="userIdentityDetail?.certificationStatus===0">审核通过</button>
<button nz-button nzType="default" nzDanger (click)="rejectedUser()"
*ngIf="userIdentityDetail?.certificationStatus===0">驳回审核</button>
<button nz-button nzType="default" nzDanger (click)="ratify()">修改</button>
</ng-template>
</div>
</sv-title>
<sv label="姓名">
<input nz-input type="text" [(ngModel)]="userIdentityDetail.name" [readonly]="!isEditUser"
[nzBorderless]="!isEditUser" [placeholder]="isEditUser?'':'-'">
</sv>
<sv label="身份证号">
<input nz-input type="text" [(ngModel)]="userIdentityDetail.certificateNumber" [readonly]="!isEditUser"
[nzBorderless]="!isEditUser" [placeholder]="isEditUser?'':'-'">
</sv>
<sv label="身份证照" col="1">
<div class="d-flex">
<ng-container
*ngTemplateOutlet="uploadTemplate;context:{data:userIdentityDetail,status:isEditUser,key:'certificatePhotoFrontWatermark',key2:'certificatePhotoFront',hover:'certificateBackFront'}">
</ng-container>
<ng-container
*ngTemplateOutlet="uploadTemplate;context:{data:userIdentityDetail,status:isEditUser,key:'certificatePhotoBackWatermark',key2:'certificatePhotoBack',hover:'certificateBack'}">
</ng-container>
</div>
</sv>
</sv-container>
</div>
<sv-container col="3" class="mt-md">
<sv-title>银行结算信息</sv-title>
<sv label="开户银行">
<!-- {{ detailData?.name }} -->
</sv>
<sv label="银行卡号">
<!-- {{ detailData?.certificateNumber }} -->
</sv>
<div [class]="isEditUser ? 'edit-box' : 'readOnly-box'">
<sv-container col="2">
<sv-title
>个人信息
<label *ngIf="userIdentityDetail?.certificationStatus === 1" style="color: #52c41a" class="ml-md"
><i nz-icon nzType="check-circle" nzTheme="fill" class="mr-xs"></i>审核通过
</label>
<label *ngIf="userIdentityDetail?.certificationStatus === 2" style="color: #ff4d4f" class="ml-md"
><i nz-icon nzType="close-circle" nzTheme="fill" class="mr-xs"></i>驳回
</label>
<div style="float: right">
<ng-container *ngIf="isEditUser; else elseTemplate">
<button [nzLoading]="service.http.loading" nz-button (click)="reset()"> 取消 </button>
<button [nzLoading]="service.http.loading" nz-button nzDanger (click)="saveUser()"> 保存 </button>
</ng-container>
<ng-template #elseTemplate>
<button nz-button nzType="default" nzDanger (click)="approveUser()" *ngIf="userIdentityDetail?.certificationStatus === 0"
acl [acl-ability]="['USERCENTER-DRIVER-CAPTAIN-DETAIL-audit']">审核通过</button
>
<button nz-button nzType="default" nzDanger (click)="rejectedUser()" *ngIf="userIdentityDetail?.certificationStatus === 0"
acl [acl-ability]="['USERCENTER-DRIVER-CAPTAIN-DETAIL-audit']" >驳回审核</button
>
<button nz-button nzType="default" nzDanger (click)="ratify()" acl [acl-ability]="['USERCENTER-DRIVER-CAPTAIN-DETAIL-edit']">修改</button>
</ng-template>
</div>
</sv-title>
<sv label="姓名">
<input
nz-input
type="text"
[(ngModel)]="userIdentityDetail.name"
[readonly]="!isEditUser"
[nzBorderless]="!isEditUser"
[placeholder]="isEditUser ? '' : '-'"
/>
</sv>
<sv label="身份证号">
<input
nz-input
type="text"
[(ngModel)]="userIdentityDetail.certificateNumber"
[readonly]="!isEditUser"
[nzBorderless]="!isEditUser"
[placeholder]="isEditUser ? '' : '-'"
/>
</sv>
<sv label="身份证照" col="1">
<div class="d-flex">
<ng-container
*ngTemplateOutlet="
uploadTemplate;
context: {
data: userIdentityDetail,
status: isEditUser,
key: 'certificatePhotoFrontWatermark',
key2: 'certificatePhotoFront',
hover: 'certificateBackFront'
}
"
>
</ng-container>
<ng-container
*ngTemplateOutlet="
uploadTemplate;
context: {
data: userIdentityDetail,
status: isEditUser,
key: 'certificatePhotoBackWatermark',
key2: 'certificatePhotoBack',
hover: 'certificateBack'
}
"
>
</ng-container>
</div>
</sv>
</sv-container>
</div>
<sv-container col="3" class="mt-md">
<sv-title>银行结算信息</sv-title>
<sv label="开户银行">
<!-- {{ detailData?.name }} -->
</sv>
<sv label="银行卡号">
<!-- {{ detailData?.certificateNumber }} -->
</sv>
</sv-container>
</nz-card>
<ng-template #redectModal>
<div nz-row nzGutter="8">
<div nz-col nzSpan="24" se-container [labelWidth]="120">
<se [col]="1" label="姓名">
{{ userIdentityDetail?.name }}
</se>
<se [col]="1" label="备注" required>
<textarea nz-input rows="3" style="width: 325px;margin-left: 14px;"
[(ngModel)]="approvalOpinion"></textarea>
</se>
</div>
<div nz-row nzGutter="8">
<div nz-col nzSpan="24" se-container [labelWidth]="120">
<se [col]="1" label="姓名">
{{ userIdentityDetail?.name }}
</se>
<se [col]="1" label="备注" required>
<textarea nz-input rows="3" style="width: 325px; margin-left: 14px" [(ngModel)]="approvalOpinion"></textarea>
</se>
</div>
</div>
</ng-template>
<ng-template #uploadTemplate let-data="data" let-status="status" let-key="key" let-key2="key2" let-hover="hover">
<nz-upload class="avatar-uploader" [nzAction]="uploadURl" nzName="multipartFile" nzListType="picture-card"
[nzShowUploadList]="false" nzFileType="image/png,image/jpeg,image/jpg,image/gif"
[nzDisabled]="!status || disabledUpload" (nzChange)="changeUpload($event,data,key,key2)">
<ng-container *ngIf="!data[key] && status">
<i class="upload-icon" nz-icon [nzType]="service.http.loading ? 'loading' : 'plus'"></i>
<div class="ant-upload-text">上传</div>
</ng-container>
<div *ngIf="data[key]" (mouseover)="data[hover]=true" (mouseleave)="data[hover]=false"
(click)="$event.cancelBubble=true" class="image-hover">
<img [src]="data[key]" style="width: 200px;height: 160px;" (click)="showImg(data[key])" />
<div class="mask" *ngIf="data[hover] && status"></div>
<div class="mask-over" *ngIf="data[hover] && status">
<i nz-icon nzType="close-circle" nzTheme="fill" class="delete-icon"
(click)="deleteImg(data,key,key2)"></i>
<div style="display: flex;align-items: center;">
<i nz-icon nzType="eye" nzTheme="fill" class="show-icon" (click)="showImg(data[key])"></i>
</div>
</div>
<nz-upload
class="avatar-uploader"
[nzAction]="uploadURl"
nzName="multipartFile"
nzListType="picture-card"
[nzShowUploadList]="false"
nzFileType="image/png,image/jpeg,image/jpg,image/gif"
[nzDisabled]="!status || disabledUpload"
(nzChange)="changeUpload($event, data, key, key2)"
>
<ng-container *ngIf="!data[key] && status">
<i class="upload-icon" nz-icon [nzType]="service.http.loading ? 'loading' : 'plus'"></i>
<div class="ant-upload-text">上传</div>
</ng-container>
<div
*ngIf="data[key]"
(mouseover)="data[hover] = true"
(mouseleave)="data[hover] = false"
(click)="$event.cancelBubble = true"
class="image-hover"
>
<img [src]="data[key]" style="width: 200px; height: 160px" (click)="showImg(data[key])" />
<div class="mask" *ngIf="data[hover] && status"></div>
<div class="mask-over" *ngIf="data[hover] && status">
<i nz-icon nzType="close-circle" nzTheme="fill" class="delete-icon" (click)="deleteImg(data, key, key2)"></i>
<div style="display: flex; align-items: center">
<i nz-icon nzType="eye" nzTheme="fill" class="show-icon" (click)="showImg(data[key])"></i>
</div>
</nz-upload>
</ng-template>
</div>
</div>
</nz-upload>
</ng-template>

View File

@ -16,8 +16,8 @@
<sf #sf [schema]="schema" [ui]="ui" [compact]="true" [button]="'none'"></sf>
</div>
<div nz-col [nzXl]="_$expand ? 24 : 6" [nzLg]="24" [nzSm]="24" [nzXs]="24" class="text-right">
<button nz-button nzType="primary" [nzLoading]="service.http.loading" (click)="st?.load(1)">查询</button>
<button nz-button nzType="primary" [disabled]="service.http.loading" (click)="exportList()">导出</button>
<button nz-button nzType="primary" [nzLoading]="service.http.loading" (click)="st?.load(1)" acl [acl-ability]="['USERCENTER-DRIVER-CAPTAIN-list']">查询</button>
<button nz-button nzType="primary" [disabled]="service.http.loading" (click)="exportList()" acl [acl-ability]="['USERCENTER-DRIVER-CAPTAIN-export']">导出</button>
<button nz-button (click)="resetSF()" [disabled]="service.http.loading">重置</button>
<button nz-button nzType="link" (click)="expandToggle()">
{{ !_$expand ? '展开' : '收起' }}
@ -36,7 +36,7 @@
[page]="{ show: true, showSize: true, pageSizes: [10, 20, 30, 50, 100, 200, 300, 500, 1000] }"
[loading]="service.http.loading">
<ng-template st-row="promotersTelephone" let-item let-index="index">
<a (click)="addPromoter(item)">
<a (click)="addPromoter(item)" acl [acl-ability]="['USERCENTER-DRIVER-CAPTAIN-promoter']">
{{ item.promotersTelephone ||'添加' }}
</a>
</ng-template>

View File

@ -217,11 +217,13 @@ export class UserCenterComponentsDriverCaptainComponent implements OnInit {
text: '查看',
click: item => {
this.router.navigate(['/usercenter/driver/captain/detail', item.appUserId]);
}
},
acl: { ability: ['USERCENTER-DRIVER-CAPTAIN-view'] },
},
{
text: '基础设置',
click: item => this.settingAction(item)
click: item => this.settingAction(item),
acl: { ability: ['USERCENTER-DRIVER-CAPTAIN-basicSetting'] },
}
]
}

View File

@ -17,11 +17,11 @@
</p>
<div style="margin-right: 24px;">
<button *ngIf="userDetail?.stateLocked" [disabled]="service.http.loading" nz-button nzType="primary"
nzGhost (click)="userAction(1)">
nzGhost (click)="userAction(1)" acl [acl-ability]="['USERCENTER-DRIVER-LIST-DETAIL-lock']">
启用
</button>
<button *ngIf="!userDetail?.stateLocked" [disabled]="service.http.loading" nz-button nzDanger nzGhost
(click)="userAction(0)">
(click)="userAction(0)" acl [acl-ability]="['USERCENTER-DRIVER-LIST-DETAIL-lock']">
冻结
</button>
</div>
@ -79,10 +79,10 @@
</ng-container>
<ng-template #elseTemplate>
<button nz-button nzType="default" nzDanger (click)="approveUser()"
*ngIf="userIdentityDetail?.certificationStatus===0">审核通过</button>
*ngIf="userIdentityDetail?.certificationStatus===0" acl [acl-ability]="['USERCENTER-DRIVER-LIST-DETAIL-auditUser']">审核通过</button>
<button nz-button nzType="default" nzDanger (click)="rejectedUser()"
*ngIf="userIdentityDetail?.certificationStatus===0">驳回审核</button>
<button nz-button nzType="default" nzDanger (click)="ratify(0)">修改</button>
*ngIf="userIdentityDetail?.certificationStatus===0" acl [acl-ability]="['USERCENTER-DRIVER-LIST-DETAIL-auditUser']">驳回审核</button>
<button nz-button nzType="default" nzDanger (click)="ratify(0)" acl [acl-ability]="['USERCENTER-DRIVER-LIST-DETAIL-editUser']">修改</button>
</ng-template>
</div>
</sv-title>
@ -128,10 +128,10 @@
</ng-container>
<ng-template #editDriverButton>
<button *ngIf="driverDetail?.approvalStatus==10" nz-button nzType="default" nzDanger
(click)="approveDriver()">审核通过</button>
(click)="approveDriver()" acl [acl-ability]="['USERCENTER-DRIVER-LIST-DETAIL-auditDriver']">审核通过</button>
<button *ngIf="driverDetail?.approvalStatus==10" nz-button nzType="default" nzDanger
(click)="rejectedDriver()">驳回审核</button>
<button nz-button nzType="default" nzDanger (click)="ratify(1)">修改</button>
(click)="rejectedDriver()" acl [acl-ability]="['USERCENTER-DRIVER-LIST-DETAIL-auditDriver']">驳回审核</button>
<button nz-button nzType="default" nzDanger (click)="ratify(1)" acl [acl-ability]="['USERCENTER-DRIVER-LIST-DETAIL-editDriver']">修改</button>
</ng-template>
</div>
</sv-title>

View File

@ -18,8 +18,8 @@
</div>
<div nz-col [nzXl]="_$expand ? 24 : 6" [nzLg]="24" [nzSm]="24" [nzXs]="24" class="text-right"
[class.expend-options]="_$expand">
<button nz-button nzType="primary" [nzLoading]="service.http.loading" (click)="st?.load(1)">查询</button>
<button nz-button nzType="primary" (click)="exportList()" [disabled]="service.http.loading">导出</button>
<button nz-button nzType="primary" [nzLoading]="service.http.loading" (click)="st?.load(1)" acl [acl-ability]="['USERCENTER-DRIVER-LIST-list']">查询</button>
<button nz-button nzType="primary" (click)="exportList()" [disabled]="service.http.loading" acl [acl-ability]="['USERCENTER-DRIVER-LIST-export']">导出</button>
<button nz-button (click)="resetSF()" [disabled]="service.http.loading">重置</button>
<button nz-button nzType="link" (click)="expandToggle()">
{{ !_$expand ? '展开' : '收起' }}
@ -42,7 +42,7 @@
[page]="{ show: true, showSize: true, pageSizes: [10, 20, 30, 50, 100, 200, 300, 500, 1000] }"
[loading]="service.http.loading">
<ng-template st-row="promotersTelephone" let-item let-index="index">
<a (click)="addPromoter(item)">{{ item.promotersTelephone || '添加' }}</a>
<a (click)="addPromoter(item)" acl [acl-ability]="['USERCENTER-DRIVER-LIST-promoter']">{{ item.promotersTelephone || '添加' }}</a>
</ng-template>
</st>
</nz-card>

View File

@ -307,16 +307,18 @@ export class UserCenterComponentsDriverComponent implements OnInit {
text: '查看<br/>',
click: item => {
this.router.navigate(['./detail', item.appUserId], { relativeTo: this.ar });
// this.router.navigate(['./view', item.id], { relativeTo: this.ar, queryParams: { tenantId: item.tenantId } });
}
},
acl: { ability: ['USERCENTER-DRIVER-LIST-view'] },
},
{
text: '基础设置',
click: item => this.settingAction(item)
click: item => this.settingAction(item),
acl: { ability: ['USERCENTER-DRIVER-LIST-basicSetting'] },
},
{
text: '资金账户',
click: item => this.showAccountDetail(item)
click: item => this.showAccountDetail(item),
acl: { ability: ['USERCENTER-DRIVER-LIST-account'] },
}
]
}

View File

@ -44,20 +44,20 @@
</ng-container>
<ng-template #editButton>
<ng-container *ngIf="detailData?.approvalStatus===10">
<button [disabled]="service.http.loading" nz-button nzDanger (click)="auditPass()">
<button [disabled]="service.http.loading" nz-button nzDanger (click)="auditPass()" acl [acl-ability]="['USERCENTER-FREIGHT-ENTERPRISE-D-audit']">
通过
</button>
<button [disabled]="service.http.loading" nz-button nzDanger (click)="auditNo()">
<button [disabled]="service.http.loading" nz-button nzDanger (click)="auditNo()" acl [acl-ability]="['USERCENTER-FREIGHT-ENTERPRISE-D-audit']">
驳回
</button>
</ng-container>
<ng-container *ngIf="detailData?.approvalStatus!=10">
<button [disabled]="service.http.loading" nz-button nzDanger nz-popconfirm [nzPopconfirmTitle]="enable"
(nzOnConfirm)="freezeOrResume(0)" nzPopconfirmPlacement="bottomRight" *ngIf="detailData?.stateLocked" acl [acl-ability]="['USERCENTER-FREIGHT-LIST-DETAIL-lock']">
(nzOnConfirm)="freezeOrResume(0)" nzPopconfirmPlacement="bottomRight" *ngIf="detailData?.stateLocked" acl [acl-ability]="['USERCENTER-FREIGHT-ENTERPRISE-D-lock']">
启用
</button>
<button [disabled]="service.http.loading" nz-button nzDanger nz-popconfirm [nzPopconfirmTitle]="frozen"
(nzOnConfirm)="freezeOrResume(1)" nzPopconfirmPlacement="bottomRight" *ngIf="!detailData?.stateLocked" acl [acl-ability]="['USERCENTER-FREIGHT-LIST-DETAIL-lock']">
(nzOnConfirm)="freezeOrResume(1)" nzPopconfirmPlacement="bottomRight" *ngIf="!detailData?.stateLocked" acl [acl-ability]="['USERCENTER-FREIGHT-ENTERPRISE-D-lock']">
冻结
</button>
<button [disabled]="service.http.loading" nz-button nzDanger nz-popconfirm
@ -71,7 +71,7 @@
关闭支付权限
</button>
</ng-container>
<button [disabled]="service.http.loading" nz-button nzDanger (click)="ratify()" acl [acl-ability]="['USERCENTER-FREIGHT-LIST-DETAIL-save']">
<button [disabled]="service.http.loading" nz-button nzDanger (click)="ratify()" acl [acl-ability]="['USERCENTER-FREIGHT-ENTERPRISE-D-save']">
修改
</button>
</ng-template>

View File

@ -30,11 +30,11 @@
<div nz-col [nzXl]="8" [nzLg]="8" [nzSm]="24" [nzXs]="24" class="d-flex"
style="justify-content: flex-end;padding-right: 24px;">
<button *ngIf="userDetail?.stateLocked" [nzLoading]="service.http.loading" nz-button nzType="primary"
nzGhost (click)="userAction(1)">
nzGhost (click)="userAction(1)" acl [acl-ability]="['USERCENTER-FREIGHT-USER-D-lock']">
启用
</button>
<button *ngIf="!userDetail?.stateLocked" [nzLoading]="service.http.loading" nz-button nzDanger nzGhost
(click)="userAction(0)">
(click)="userAction(0)" acl [acl-ability]="['USERCENTER-FREIGHT-USER-D-lock']">
冻结
</button>
</div>
@ -65,11 +65,10 @@
</button>
</ng-container>
<ng-template #elseTemplate>
<button nz-button nzType="default" nzDanger (click)="auditPass()"
*ngIf="userIdentityDetail.certificationStatus===0" [nzLoading]="service.http.loading">审核通过</button>
<button nz-button nzType="default" nzDanger (click)="auditPass()" *ngIf="userIdentityDetail.certificationStatus===0" [nzLoading]="service.http.loading" acl [acl-ability]="['USERCENTER-FREIGHT-USER-D-audit']">审核通过</button>
<button nz-button nzType="default" nzDanger (click)="auditNo()"
*ngIf="userIdentityDetail.certificationStatus===0" [nzLoading]="service.http.loading">驳回审核</button>
<button nz-button nzType="default" nzDanger (click)="ratify()">修改</button>
*ngIf="userIdentityDetail.certificationStatus===0" [nzLoading]="service.http.loading" acl [acl-ability]="['USERCENTER-FREIGHT-USER-D-audit']">驳回审核</button>
<button nz-button nzType="default" nzDanger (click)="ratify()" acl [acl-ability]="['USERCENTER-FREIGHT-USER-D-edit']" >修改</button>
</ng-template>
</div>
</sv-title>

View File

@ -1,10 +1,10 @@
<!--
* @Author: your name
* @Date: 2021-12-13 10:47:28
* @LastEditTime: 2022-01-12 09:58:12
* @LastEditors: Please set LastEditors
* @LastEditTime : 2022-02-15 13:59:52
* @LastEditors : Shiming
* @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
* @FilePath: \tms-obc-web\src\app\routes\usercenter\components\freight\user\user.component.html
* @FilePath : \\tms-obc-web\\src\\app\\routes\\usercenter\\components\\freight\\user\\user.component.html
-->
<!-- 页头 -->
<page-header-wrapper [title]="'员工列表'"></page-header-wrapper>
@ -16,7 +16,7 @@
<sf #sf [schema]="schema" [ui]="ui" [compact]="true" [button]="'none'"></sf>
</div>
<div nz-col [nzXl]="_$expand ? 24 : 6" [nzLg]="24" [nzSm]="24" [nzXs]="24" class="text-right">
<button nz-button nzType="primary" [nzLoading]="service.http.loading" (click)="st?.load(1)">查询</button>
<button nz-button nzType="primary" [nzLoading]="service.http.loading" (click)="st?.load(1)" acl [acl-ability]="['USERCENTER-FREIGHT-USER-list']">查询</button>
<button nz-button nzType="primary" [disabled]="service.http.loading" (click)="st?.load(1)">导出</button>
<button nz-button (click)="resetSF()" [disabled]="service.http.loading">重置</button>
<button nz-button nzType="link" (click)="expandToggle()">
@ -51,7 +51,7 @@
</div>
</ng-template>
<ng-template st-row="promotersTelephone" let-item let-index="index">
<a (click)="addPromoter(item)">
<a (click)="addPromoter(item)" acl [acl-ability]="['USERCENTER-FREIGHT-USER-promoter']">
{{ item.promotersTelephone || '添加' }}
</a>
</ng-template>

View File

@ -223,17 +223,20 @@ export class FreightComponentsUserComponent implements OnInit {
text: '查看',
click: (item: any) => {
this.router.navigate(['./view', item.appUserId], { relativeTo: this.ar });
}
},
acl: { ability: ['USERCENTER-FREIGHT-USER-view'] },
},
{
text: '冻结',
iif: item => item.stateLocked === 0,
click: (item: any) => this.userAction(0, [item.appUserId])
click: (item: any) => this.userAction(0, [item.appUserId]),
acl: { ability: ['USERCENTER-FREIGHT-USER-lock'] },
},
{
text: '启用',
iif: item => item.stateLocked === 1,
click: (item: any) => this.userAction(1, [item.appUserId])
click: (item: any) => this.userAction(1, [item.appUserId]),
acl: { ability: ['USERCENTER-FREIGHT-USER-lock'] },
}
]
}