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

This commit is contained in:
wangshiming
2022-04-28 21:16:37 +08:00
11 changed files with 255 additions and 223 deletions

View File

@ -128,7 +128,7 @@
</div>
</div>
</ng-container>
<p class="time-info">计划装货时间:{{ i?.goodsResource?.loadingTime }}</p>
<p class="time-info mb0">计划装货时间:{{ i?.goodsResource?.loadingTime }}</p>
</div>
</div>
<div class="handling-col" nz-col [nzSpan]="12">
@ -144,7 +144,7 @@
</div>
</div>
</ng-container>
<p class="time-info">计划卸货时间:{{ i?.goodsResource?.unloadingTime }}</p>
<p class="time-info mb0">计划卸货时间:{{ i?.goodsResource?.unloadingTime }}</p>
</div>
</div>
</div>

View File

@ -71,8 +71,8 @@ export class SupplyManagementReleasePublishComponent implements OnInit {
unloadAddress0: [null, [Validators.required]],
unloadName0: [null, [Validators.required]],
unloadPhone0: [null, [Validators.required, Validators.pattern('^[0-9]*$')]],
loadingTime: [null, []],
unloadingTime: [null, []]
loadingTime: [null, [Validators.required]],
unloadingTime: [null, [Validators.required]]
});
}

View File

@ -13,29 +13,7 @@
</button>
</ng-template>
<ng-template #headerContent>
<div nz-row>
<button nz-button nzType="primary" nzSize="small" nzDanger>{{i?.wayBillStatusLabel}}</button>
<h4 class="ml-md" style="font-size: 18px;">运单号: {{ i?.wayBillCode }}</h4>
</div>
<div nz-row style="display: flex; justify-content: end;" class="mb-xs">
<div nz-col>
<button nz-button *ngIf="i?.wayBillStatus == '2'" (click)="sureDepart(i)" acl
[acl-ability]="['WAYBILL-BULK-DETAIL-insertBulkStartCarInfo']">确认发车</button>
<button nz-button nzType="primary" *ngIf="i?.wayBillStatus == '3'" (click)="sureArrive(i)" nzGhost acl
[acl-ability]="['WAYBILL-BULK-DETAIL-insertBulkUnloadCarInfo']">确认到车</button>
</div>
</div>
<div>
<div sv-container>
<sv label="网络货运人">{{ i?.enterpriseInfoName }} </sv>
<sv label="货主">{{ i?.shippername }} </sv>
<sv label="所属项目">{{i?.enterpriseProjectName}}</sv>
<sv label="服务类型">{{i?.serviceTypeLabel}}</sv>
<sv label="调度员">{{i?.dispatchName}} /{{i?.dispatchPhone}}</sv>
<sv label="外部订单号">{{ i?.externalBillCode }}</sv>
<sv label="货源编号">{{ i?.resourceCode }} </sv>
<sv label="承诺付款天数">{{ i?.paymentDays }}</sv>
</div>
<nz-tabset style="margin-top: 15px;">
<nz-tab nzTitle="装卸货信息" (nzClick)="goDistance(distannce1)">
</nz-tab>
@ -51,20 +29,21 @@
</div>
</ng-template>
</page-header-wrapper>
<nz-card #distannce1>
<div class="mb-sm common-order-header" nz-row>
<nz-card [nzBorderless]="true" class="mb0" #distannce1>
<div class=" common-order-header" nz-row>
<div>
<button nz-button nzType="primary" nzSize="small" nzDanger>{{i?.wayBillStatusLabel}}</button>
<b class="ml-md text-md">运单号: {{ i?.wayBillCode }}</b>
</div>
<div>
<button nz-button *ngIf="i?.wayBillStatus == '2'" (click)="sureDepart(i)" acl
[acl-ability]="['WAYBILL-BULK-DETAIL-insertBulkStartCarInfo']">确认发车</button>
<button nz-button nzType="primary" *ngIf="i?.wayBillStatus == '3'" (click)="sureArrive(i)" nzGhost acl
[acl-ability]="['WAYBILL-BULK-DETAIL-insertBulkUnloadCarInfo']">确认到车</button>
</div>
</div>
<div nz-col>
<button nz-button *ngIf="i?.wayBillStatus == '2'" (click)="sureDepart(i)" acl
[acl-ability]="['WAYBILL-BULK-DETAIL-insertBulkStartCarInfo']">确认发车</button>
<button nz-button nzType="primary" *ngIf="i?.wayBillStatus == '3'" (click)="sureArrive(i)" nzGhost acl
[acl-ability]="['WAYBILL-BULK-DETAIL-insertBulkUnloadCarInfo']">确认到车</button>
</div>
<div>
<nz-divider class="mt-sm mb-sm"></nz-divider>
<div class="mb-lg">
<div sv-container>
<sv label="网络货运人">{{ i?.enterpriseInfoName }} </sv>
<sv label="货主">{{ i?.shippername }} </sv>
@ -85,7 +64,7 @@
</div>
</div>
</nz-card>
<nz-card>
<nz-card [nzBorderless]="true" class="mb0">
<div class="font-weight-blod text-md detail-title">
<a class="sign"></a>
<span>装货卸货信息</span>
@ -96,27 +75,27 @@
</span>
</div>
<div nz-row [nzGutter]="24">
<div nz-col [nzSpan]="12">
<div class="handling-col" nz-col [nzSpan]="12">
<div class="handling-info p-md">
<div class="flex" *ngFor="let item of i?.loadingPlace">
<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>
<p class="mb0">联系人:{{item.appUserName}}/{{item.contractTelephone}}</p>
</div>
</div>
</div>
</div>
</div>
<div nz-col [nzSpan]="12">
<div class="handling-col" nz-col [nzSpan]="12">
<div class="handling-info p-md">
<div class="flex" *ngFor="let item of i?.dischargePlace">
<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>
<p class="mb0">联系人:{{item.appUserName}}/{{item.contractTelephone}}</p>
</div>
</div>
</div>
@ -194,14 +173,16 @@
结算依据为1时卸货时间不为空显示运费信息否则隐藏
结算依据为2时装货时间不为空显示运费信息否则隐藏
-->
<nz-card [nzTitle]="priceTitel" #distannce3
<nz-card #distannce3
[hidden]="!(i?.settlementBasis ==='1' && i?.unloadTime) && !(i?.settlementBasis ==='2' && i?.loadTime)"
[nzBorderless]="true" class="mb0">
<div class="font-weight-blod text-md detail-title">
<a class="sign"></a>
<span>运费信息</span>
<span class="pl-sm text-warning">到货后{{i?.goodsResource?.paymentDays}}天内支付运费</span>
</div>
<ng-template #priceTitel>
<span>运费信息</span><span
style="padding-left: 24px; color: #f59a23;font-size: small;">到货后{{i?.goodsResource.paymentDays}}天内支付运费</span>
</ng-template>
<div style="margin-bottom: 18px">
<span style="color: #da001b; font-size: 18px"> {{ i?.freightPrice }}{{ i?.freightTypeLabel }} </span>{{
i?.settlementBasisLabel }}{{
@ -223,7 +204,11 @@
</div>
<div *ngIf=" i?.payeeId !== i?.driverId" class="mt-xs">车队长:{{ i?.payeeName }}/{{ i?.payeePhone }}</div>
</nz-card>
<nz-card nzTitle="附件信息" [nzBorderless]="true" class="mb0" #distannce4>
<nz-card [nzBorderless]="true" class="mb0" #distannce4>
<div class="font-weight-blod text-md detail-title">
<a class="sign"></a>
<span>附件信息</span>
</div>
<sv-container>
<sv label="协议附件">
<a *ngIf="i?.contractContent?.contractContent" (click)="agreement('1')">查看附件</a> &nbsp;&nbsp;&nbsp;&nbsp;
@ -241,7 +226,11 @@
</sv>
</sv-container>
</nz-card>
<nz-card nzTitle="补充信息" [nzBorderless]="true" class="mb0">
<nz-card [nzBorderless]="true" class="mb0">
<div class="font-weight-blod text-md detail-title">
<a class="sign"></a>
<span>补充信息</span>
</div>
<sv-container>
<sv label="是否回单">
{{i?.receiptType == 1 ?'是':'否'}}
@ -270,7 +259,7 @@
</sv-container>
</nz-card>
<nz-card class="mb0">
<nz-card class="mb0" [nzBorderless]="true">
<p class="detail_title" #distannce5><span>|</span> 轨迹信息</p>
<div nz-row>
<div nz-col [nzSpan]="24">

View File

@ -1,70 +1,36 @@
:host{
.btn-size{
font-size: 14px;
}
.bdr{
border-right: 1px solid #ccc;
}
.bdl{
border-left: 1px solid #ccc;
}
.source-info{
p{
margin-bottom: .5em;
}
}
.freight-info-box{
width: 95%;
}
.freigth-label{
display: inline-block;
width: 50px;
text-align: right;
}
:host {
.btn-size {
font-size: 14px;
}
::ng-deep{
.approval-status{
.ant-steps{
width: 70%;
margin: 0 auto;
}
}
.bdr {
border-right: 1px solid #ccc;
}
.bdl {
border-left: 1px solid #ccc;
}
.source-info {
p {
margin-bottom: .5em;
}
.leftPadding {
padding-right: 100px;
}
.handling-info {
min-height: 100px;
border: 1px solid #ccc;
.loading-row {
display: flex;
}
.handling-info-icon {
width: 32px;
height: 32px;
margin-right: 24px;
color: #fff;
line-height: 32px;
text-align: center;
border-radius: 50%;
&.loading-bg {
background-color: #50D4AB;
}
&.unloaing-bg {
background: #F66F6A;
}
}
.info {
flex: 1;
}
.time-info {
margin-left: 56px;
}
}
}
}
.freight-info-box {
width: 95%;
}
.freigth-label {
display: inline-block;
width: 50px;
text-align: right;
}
.leftPadding {
padding-right: 100px;
}
}

View File

@ -6,7 +6,7 @@
* @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
* @FilePath : \\tms-obc-web\\src\\app\\routes\\waybill-management\\components\\vehicle-detail\\vehicle-detail.component.html
-->
<page-header-wrapper [title]="'整车运单详情'" [logo]="logo" [content]="headerContent" [ngClass]="{'affix': scrollTop>210}">
<page-header-wrapper [title]="'整车运单详情'" [logo]="logo" [ngClass]="{'affix': scrollTop>210}">
<ng-template #logo>
<button nz-button nz-tooltip nzTooltipTitle="返回上一页" (click)="goBack()">
<i nz-icon nzType="left" nzTheme="outline"></i>
@ -50,19 +50,85 @@
</div>
</ng-template>
</page-header-wrapper>
<nz-card nzTitle="运单进度">
<nz-card [nzBorderless]="true" class="mb0">
<div nz-row class="mb-xs common-order-header">
<div>
<button nz-button nzType="primary" nzSize="small" nzDanger>{{i?.wayBillStatusLabel}}</button>
<b class="ml-md" style="font-size: 18px;">运单号: {{ i?.wayBillCode }}</b>
</div>
<div nz-col>
<button nz-button (click)="sureDepart(i)" *ngIf="i?.wayBillStatus == '2'" acl
[acl-ability]="['WAYBILL-VEHICLE-DETAIL-wholeStartCarInfo']">确认发车</button>
<button nz-button nzType="primary" (click)="sureArrive(i)" *ngIf="i?.wayBillStatus == '3'" nzGhost acl
[acl-ability]="['WAYBILL-VEHICLE-DETAIL-wholeUnloadCarInfo']">确认到车</button>
</div>
</div>
<nz-divider class="mt-sm mb-sm"></nz-divider>
<div class="">
<div sv-container>
<sv label="网络货运人">{{ i?.enterpriseInfoName }} </sv>
<sv label="货主">{{ i?.shippername }} </sv>
<sv label="所属项目">{{i?.enterpriseProjectName}}</sv>
<sv label="服务类型">{{i?.serviceTypeLabel}}</sv>
<sv label="调度员">{{i?.dispatchName}}{{ i?.dispatchPhone ? '/' + i?.dispatchPhone : '' }}</sv>
<sv label="货源编号">{{ i?.resourceCode }} </sv>
<sv label="承诺付款天数">{{ i?.paymentDays }}</sv>
</div>
</div>
<div class="approval-status">
<div style="width: 60%; margin: 0 auto">
<div class="step-row">
  <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     *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>
<nz-card nzTitle="基本信息" #distannce1>
<nz-card [nzBorderless]="true" class="mb0">
<div class="font-weight-blod text-md detail-title">
<a class="sign"></a>
<span>装货卸货信息</span>
<span class="ml-sm text-sm">(
<label>{{i?.loadingNumber|| '一'}}装</label>
<label>{{i?.dischargeNumber || '一'}}卸</label>
)
</span>
</div>
<div nz-row [nzGutter]="24">
<div class="handling-col" nz-col [nzSpan]="12">
<div class="handling-info p-md">
<div class="flex" *ngFor="let item of i?.loadingPlace">
<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 class="handling-col" nz-col [nzSpan]="12">
<div class="handling-info p-md">
<div class="flex" *ngFor="let item of i?.dischargePlace">
<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>
</nz-card>
<nz-card [nzBorderless]="true" class="mb0" #distannce1>
<div class="font-weight-blod text-md detail-title">
<a class="sign"></a>
<span>基本信息</span>
</div>
<sv-container col="1">
<sv label="货物名称">
{{i?.goodsInfos?.[0]?.goodsName}}
@ -90,45 +156,13 @@
{{i?.unloadingTime}}
</sv>
</sv-container>
<div class="mt-md">
<h4 class="text-md">装货卸货信息
<span class="ml-sm text-sm">(
<label>{{i?.loadingNumber|| '一'}}装</label>
<label>{{i?.dischargeNumber || '一'}}卸</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?.loadingPlace">
<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 nz-col [nzSpan]="12">
<div class="handling-info p-md">
<div class="flex" *ngFor="let item of i?.dischargePlace">
<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>
</nz-card>
<nz-card nzTitle="服务信息">
<nz-card [nzBorderless]="true" class="mb0">
<div class="font-weight-blod text-md detail-title">
<a class="sign"></a>
<span>服务信息</span>
</div>
<sv-container>
<sv label="服务包">
{{i?.insuranceTypeLabel}}
@ -141,7 +175,12 @@
</sv>
</sv-container>
</nz-card>
<nz-card [nzTitle]="'运费信息' +'到货后'+i?.paymentDays+'天内支付运费'" #distannce3>
<nz-card [nzBorderless]="true" class="mb0" #distannce3>
<div class="font-weight-blod text-md detail-title">
<a class="sign"></a>
<span>运费信息</span>
<span>(到货后{{i?.paymentDays}}天内支付运费)</span>
</div>
<st #st [data]="billExpenses" [columns]="logColumns" [ps]="0" [page]="{ show: false, showSize: false }">
<ng-template st-row="price" let-item let-index="index">
{{ item.price | currency }}
@ -162,7 +201,11 @@
}}/{{ i?.payee?.idNo }}</div>
</nz-card>
<nz-card nzTitle="附件信息" #distannce4>
<nz-card [nzBorderless]="true" class="mb0" nzTitle="附件信息" #distannce4>
<div class="font-weight-blod text-md detail-title">
<a class="sign"></a>
<span>附件信息</span>
</div>
<sv-container>
<sv label="协议附件">
<a *ngIf="i?.contractContent?.contractContent" (click)="agreement('1')">查看附件</a> &nbsp;&nbsp;&nbsp;&nbsp;
@ -180,7 +223,11 @@
</sv>
</sv-container>
</nz-card>
<nz-card nzTitle="补充信息">
<nz-card [nzBorderless]="true" class="mb0">
<div class="font-weight-blod text-md detail-title">
<a class="sign"></a>
<span>补充信息</span>
</div>
<sv-container>
<sv label="是否回单">
{{ i?.supplementaryInformationVO?.stateReceipt ? '是' : '否' }}
@ -196,18 +243,20 @@
<sv label="详细地址" *ngIf="i?.supplementaryInformationVO?.stateReceipt">
{{ i?.supplementaryInformationVO?.address }}
</sv>
</sv-container>
<sv-container col="1" class="mt-md">
<sv label="回单凭证" *ngIf="i?.supplementaryInformationVO?.stateReceipt">
<app-imagelist [imgList]="i?.receiptFilePath"></app-imagelist>
</sv>
<sv label="备注">
{{ i?.supplementaryInformationVO?.remarks }}
</sv>
<sv col="1" label="回单凭证" *ngIf="i?.supplementaryInformationVO?.stateReceipt">
<app-imagelist [imgList]="i?.receiptFilePath"></app-imagelist>
</sv>
</sv-container>
</nz-card>
<nz-card>
<nz-card [nzBorderless]="true" class="mb0">
<p class="detail_title" #distannce5><span>|</span> 轨迹信息</p>
<div nz-row>
<div nz-col [nzSpan]="24">
@ -234,4 +283,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

@ -22,58 +22,16 @@
}
.freigth-label {
display : inline-block;
width : 50px;
display: inline-block;
width: 50px;
text-align: right;
}
::ng-deep {
.approval-status {
.ant-steps {
width : 70%;
margin: 0 auto;
}
}
}
.leftPadding {
padding-right: 100px;
}
.handling-info {
min-height: 100px;
border : 1px solid #ccc;
.loading-row {
display: flex;
}
.handling-info-icon {
width : 32px;
height : 32px;
margin-right : 24px;
color : #fff;
line-height : 32px;
text-align : center;
border-radius: 50%;
&.loading-bg {
background-color: #50D4AB;
}
&.unloaing-bg {
background: #F66F6A;
}
}
.info {
flex: 1;
}
.time-info {
margin-left: 56px;
}
}
}
::ng-deep {
@ -100,4 +58,4 @@
// left: 106px;
// }
// }
}
}

View File

@ -1,14 +1,17 @@
<nz-drawer [nzBodyStyle]="{ overflow: 'auto' }" [nzMaskClosable]="false" [nzWidth]="420" [nzVisible]="service.visible"
<nz-drawer [nzBodyStyle]="{ overflow: 'auto' }" [nzMaskClosable]="false" [nzWidth]="640" [nzVisible]="service.visible"
[nzMaskClosable]="true" nzTitle="筛选" [nzFooter]="footerTpl" (nzOnClose)="destroy()">
<div *nzDrawerContent>
<sf *ngIf="schema" #sf [schema]="schema" [ui]="ui" [compact]="true" [button]="'none'" [formData]="defaultValue">
<sf *ngIf="schema" #sf [schema]="schema" [ui]="ui" [compact]="true" [button]="'none'" [formData]="defaultValue"
layout="vertical">
</sf>
</div>
<ng-template #footerTpl>
<div style="float: right">
<button nz-button (click)="destroy()">关闭</button>
<button nz-button (click)="resetSF()">重置</button>
<button nz-button nzType="primary" (click)="search();;">查询</button>
<div style="display: flex;justify-content: space-between;">
<button nz-button (click)="destroy()">取消</button>
<div>
<button nz-button nzType="primary" (click)="search()"><i nz-icon nzType="search" nzTheme="outline"></i>查询</button>
<button nz-button (click)="resetSF()"><i nz-icon nzType="redo" nzTheme="outline"></i>重置</button>
</div>
</div>
</ng-template>
</nz-drawer>

View File

@ -10,7 +10,7 @@ import { SearchDrawerService } from './search-drawer.service';
})
export class SearchDrawerComponent implements OnInit, AfterViewInit {
@ViewChild('sf', { static: false }) sf!: SFComponent;
ui: SFUISchema = { '*': { spanLabelFixed: 95, grid: { span: 24, gutter: 4 } } };
ui: SFUISchema = { '*': { spanLabelFixed: 95, grid: { span: 12, gutter: 24 } } };
schema!: SFSchema;
loading = true;

View File

@ -62,6 +62,7 @@ import {
MinusCircleOutline,
FileTwoTone,
CloudDownloadOutline,
RedoOutline
} from '@ant-design/icons-angular/icons';
export const ICONS_AUTO = [
@ -123,4 +124,5 @@ export const ICONS_AUTO = [
MinusCircleOutline,
FileTwoTone,
CloudDownloadOutline,
RedoOutline
];

View File

@ -58,3 +58,44 @@
margin: 0 10px 10px 0;
}
}
.handling-col {
min-height: 90px;
.handling-info {
min-height: 100%;
border: 1px solid #ccc;
.loading-row {
display: flex;
}
.handling-info-icon {
width: 32px;
height: 32px;
margin-right: 24px;
color: #fff;
line-height: 32px;
text-align: center;
border-radius: 50%;
&.loading-bg {
background-color: #50D4AB;
}
&.unloaing-bg {
background: #F66F6A;
}
}
.info {
flex: 1;
}
.time-info {
margin-left: 56px;
margin-bottom: 0;
}
}
}

View File

@ -28,3 +28,27 @@
.ant-card-body {
padding: 16px;
}
.ant-drawer-content {
.ant-drawer-header {
padding: 16px;
.ant-drawer-title {
font-size : 20px;
font-weight: 500;
color : #1D2129;
}
}
.ant-drawer-body {
padding: 16px;
.ant-form-item-label>label {
color : #575D6C;
font-size: 14px;
}
}
}