Merge branch 'develop' of https://gitlab.eascs.com/tms-ui/tms-obc-web into develop
This commit is contained in:
70
src/app/routes/commom/less/commom-table.less
Normal file
70
src/app/routes/commom/less/commom-table.less
Normal file
@ -0,0 +1,70 @@
|
||||
:host {
|
||||
::ng-deep {
|
||||
nz-card {
|
||||
margin: -24px -24px 0;
|
||||
|
||||
.ant-tabs-nav {
|
||||
margin: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.ant-tabs-tab {
|
||||
margin: 0 0 0 16px;
|
||||
padding: 12px 0;
|
||||
}
|
||||
|
||||
.ant-table-body {
|
||||
border-bottom: 1px solid #f0f0f0;
|
||||
}
|
||||
|
||||
.table-box {
|
||||
.ant-card-body {
|
||||
padding: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.ant-table-pagination.ant-pagination {
|
||||
margin: 8px;
|
||||
}
|
||||
|
||||
.ant-table-thead > tr > th,
|
||||
.ant-table-tbody > tr > td,
|
||||
.ant-table tfoot > tr > th,
|
||||
.ant-table tfoot > tr > td {
|
||||
padding: 8px;
|
||||
}
|
||||
|
||||
.ant-table.ant-table-bordered > .ant-table-container {
|
||||
border-top: 0;
|
||||
}
|
||||
|
||||
.ant-pagination-item {
|
||||
min-width: 24px;
|
||||
height: 24px;
|
||||
line-height: 21px;
|
||||
}
|
||||
|
||||
.ant-pagination-total-text {
|
||||
height: 24px;
|
||||
line-height: 24px;
|
||||
}
|
||||
|
||||
.ant-pagination-prev,
|
||||
.ant-pagination-next,
|
||||
.ant-pagination-jump-prev,
|
||||
.ant-pagination-jump-next {
|
||||
min-width: 24px;
|
||||
height: 24px;
|
||||
line-height: 21px;
|
||||
}
|
||||
|
||||
.ant-select-single:not(.ant-select-customize-input) .ant-select-selector {
|
||||
height: 24px;
|
||||
}
|
||||
|
||||
.ant-select-single .ant-select-selector .ant-select-selection-item,
|
||||
.ant-select-single .ant-select-selector .ant-select-selection-placeholder {
|
||||
line-height: 21px;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -82,7 +82,7 @@ export class PaymentRecordComponent implements OnInit {
|
||||
hidden: true
|
||||
}
|
||||
},
|
||||
orderSn: {
|
||||
orderPaymentCode: {
|
||||
type: 'string',
|
||||
title: '支付编号',
|
||||
ui: {
|
||||
|
||||
@ -151,7 +151,7 @@ export class TransactionFlowComponent {
|
||||
},
|
||||
default: ''
|
||||
},
|
||||
orderS2n2221: {
|
||||
enterpriseName: {
|
||||
type: 'string',
|
||||
title: '账户名称',
|
||||
ui: {
|
||||
@ -213,7 +213,7 @@ export class TransactionFlowComponent {
|
||||
private initST(): STColumn[] {
|
||||
return [
|
||||
{ title: '交易时间', index: 'createTime', width: 180 },
|
||||
{ title: '流水号', index: 'transactionNumber', width: 170 },
|
||||
{ title: '流水号', index: 'transactionNumber', width: 180 },
|
||||
{ title: '交易类型', index: 'tradeTypeLabel', width: 120 },
|
||||
{ title: '关联单号', index: 'businessNumber', width: 150 },
|
||||
{ title: '账户类型', index: 'accountTypeLabel', width: 130 },
|
||||
|
||||
@ -348,7 +348,7 @@
|
||||
</st>
|
||||
</div>
|
||||
<div nz-col [nzSpan]="12">
|
||||
<amap-path-simplifier [mapWidth]="'100%'" [mapHeight]="'600px'" [MapList]="mapList"></amap-path-simplifier>
|
||||
<amap-path-simplifier [mapWidth]="'100%'" [mapHeight]="'600px'" [mapList]="mapList"></amap-path-simplifier>
|
||||
</div>
|
||||
</div>
|
||||
</nz-card>
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
* @Author : Shiming
|
||||
* @Date : 2021-12-06 20:20:26
|
||||
* @LastEditors : Shiming
|
||||
* @LastEditTime : 2022-03-21 14:43:04
|
||||
* @LastEditTime : 2022-03-22 11:06:16
|
||||
* @FilePath : \\tms-obc-web\\src\\app\\routes\\order-management\\components\\bulk-detail\\bulk-detail.component.html
|
||||
* Copyright (C) 2022 huzhenhong. All rights reserved.
|
||||
-->
|
||||
@ -212,7 +212,7 @@
|
||||
</st>
|
||||
</div>
|
||||
<div nz-col [nzSpan]="12">
|
||||
<amap-path-simplifier [mapWidth]="'100%'" [pois]="pois" [mapHeight]="'600px'" [MapList]="mapList"></amap-path-simplifier>
|
||||
<amap-path-simplifier [mapWidth]="'100%'" [pois]="pois" [mapHeight]="'600px'" [mapList]="mapList"></amap-path-simplifier>
|
||||
</div>
|
||||
</div>
|
||||
</nz-card>
|
||||
@ -232,9 +232,9 @@
|
||||
您的订单可能存在交易风险,请及时提交申诉材料,提交成功后,平台将及时完成审核并通知您!
|
||||
</div>
|
||||
<div>如果您的运单没有问题,可以提出申诉,并提供相关资料,我们将24小时内审核反馈</div>
|
||||
<ul>
|
||||
<li>系统识别:司机装货轨迹异常</li>
|
||||
<li>司机装货轨迹异常,您可在企业端提交申诉材料或联系客服。</li>
|
||||
<ul *ngFor="let item of abnormalList">
|
||||
<li>系统识别:{{item?.complianceTypeName}}</li>
|
||||
<li>{{item?.determineDetails}},您可在企业端提交申诉材料或联系客服。</li>
|
||||
<li>2021-11-07 03:20:15</li>
|
||||
</ul>
|
||||
</nz-tab>
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
* @Author : Shiming
|
||||
* @Date : 2021-12-06 20:20:26
|
||||
* @LastEditors : Shiming
|
||||
* @LastEditTime : 2022-03-21 14:43:06
|
||||
* @LastEditTime : 2022-03-22 10:56:18
|
||||
* @FilePath : \\tms-obc-web\\src\\app\\routes\\order-management\\components\\bulk-detail\\bulk-detail.component.ts
|
||||
* Copyright (C) 2022 huzhenhong. All rights reserved.
|
||||
*/
|
||||
@ -29,6 +29,7 @@ export class OrderManagementBulkeDetailComponent implements OnInit {
|
||||
id = this.route.snapshot.params.id;
|
||||
billExpenses: any[] = []; //运费信息表格信息
|
||||
pois: any[] = [];
|
||||
abnormalList: any[] = [];
|
||||
i: any;
|
||||
imges: any;
|
||||
totalObj: any;
|
||||
@ -96,10 +97,17 @@ export class OrderManagementBulkeDetailComponent implements OnInit {
|
||||
];
|
||||
}
|
||||
});
|
||||
this.service.request(this.service.$api_get_getRiskDetail, { id: this.id }).subscribe(res => {
|
||||
this.service.request(this.service.$api_listBillComplianceAbnormalByBillId, { id: this.id }).subscribe(res => {
|
||||
if (res) {
|
||||
console.log('风险详情')
|
||||
console.log(res)
|
||||
this.abnormalList = res
|
||||
}
|
||||
});
|
||||
this.service.request(this.service.$api_getAbnormalWarningByBillId, { id: this.id }).subscribe(res => {
|
||||
if (res) {
|
||||
console.log('异常预警')
|
||||
console.log(res)
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@ -30,8 +30,8 @@ export class OrderManagementComplaintComponent implements OnInit {
|
||||
columns: STColumn[] = [];
|
||||
selectedIndex: number = 0;
|
||||
mainTabs = [
|
||||
{ name: '投诉', status: '1' },
|
||||
{ name: '被投诉', status: '2' },
|
||||
{ name: '司机投诉', status: '1' },
|
||||
{ name: '货主投诉', status: '2' },
|
||||
]
|
||||
tabs = [ {
|
||||
name: '全部',
|
||||
|
||||
@ -140,7 +140,10 @@ export class OrderManagementComplianceAuditComponent implements OnInit {
|
||||
_$expand: { type: 'boolean', ui: { hidden: true } },
|
||||
billCode: {
|
||||
type: 'string',
|
||||
title: '订单号'
|
||||
title: '订单号',
|
||||
ui: {
|
||||
placeholder: '最多100个单号,空号隔开'
|
||||
}
|
||||
},
|
||||
resourceCode: {
|
||||
type: 'string',
|
||||
|
||||
@ -115,7 +115,10 @@ export class OrderManagementReceiptsAuditComponent implements OnInit {
|
||||
_$expand: { type: 'boolean', ui: { hidden: true } },
|
||||
billCode: {
|
||||
type: 'string',
|
||||
title: '订单号'
|
||||
title: '订单号',
|
||||
ui: {
|
||||
placeholder: '最多100个单号,空号隔开'
|
||||
}
|
||||
},
|
||||
resourceCode: {
|
||||
type: 'string',
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
* @Author : Shiming
|
||||
* @Date : 2022-01-12 10:52:50
|
||||
* @LastEditors : Shiming
|
||||
* @LastEditTime : 2022-03-21 15:09:10
|
||||
* @LastEditTime : 2022-03-22 09:42:03
|
||||
* @FilePath : \\tms-obc-web\\src\\app\\routes\\order-management\\components\\risk\\risk.component.html
|
||||
* Copyright (C) 2022 huzhenhong. All rights reserved.
|
||||
-->
|
||||
@ -92,7 +92,7 @@
|
||||
<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?.carModelLabel }}/ {{ i?.carLengthLabel }}</p>
|
||||
</div>
|
||||
</ng-template>
|
||||
</st>
|
||||
|
||||
@ -109,7 +109,10 @@ export class OrderManagementRiskComponent implements OnInit {
|
||||
_$expand: { type: 'boolean', ui: { hidden: true } },
|
||||
billCode: {
|
||||
type: 'string',
|
||||
title: '订单号'
|
||||
title: '订单号',
|
||||
ui: {
|
||||
placeholder: '最多100个单号,空号隔开'
|
||||
}
|
||||
},
|
||||
resourceCode: {
|
||||
type: 'string',
|
||||
@ -234,9 +237,9 @@ export class OrderManagementRiskComponent implements OnInit {
|
||||
},
|
||||
{
|
||||
title: '申诉状态',
|
||||
width: '100px',
|
||||
width: '180px',
|
||||
className: 'text-left',
|
||||
index: 'representationsStatus'
|
||||
index: 'representationsStatusLabel'
|
||||
},
|
||||
{
|
||||
title: '货源编号',
|
||||
@ -279,7 +282,7 @@ export class OrderManagementRiskComponent implements OnInit {
|
||||
{
|
||||
title: '货物信息',
|
||||
className: 'text-left',
|
||||
width: '200px',
|
||||
width: '250px',
|
||||
render: 'goodsInfoVOList'
|
||||
},
|
||||
{
|
||||
@ -476,7 +479,7 @@ export class OrderManagementRiskComponent implements OnInit {
|
||||
*/
|
||||
audit(item?: any) {
|
||||
if (item) {
|
||||
this.auditId = item.id;
|
||||
this.auditId = item.billCode;
|
||||
this.initSTAudit(1);
|
||||
this.isVisibleRE = true;
|
||||
} else {
|
||||
|
||||
@ -322,7 +322,7 @@
|
||||
</st>
|
||||
</div>
|
||||
<div nz-col [nzSpan]="12">
|
||||
<amap-path-simplifier [mapWidth]="'100%'" [mapHeight]="'600px'" [MapList]="mapList"></amap-path-simplifier>
|
||||
<amap-path-simplifier [mapWidth]="'100%'" [mapHeight]="'600px'" [mapList]="mapList"></amap-path-simplifier>
|
||||
</div>
|
||||
</div>
|
||||
</nz-card>
|
||||
|
||||
@ -218,7 +218,7 @@
|
||||
</st>
|
||||
</div>
|
||||
<div nz-col [nzSpan]="12">
|
||||
<amap-path-simplifier [mapWidth]="'100%'" [mapHeight]="'600px'" [MapList]="mapList" [pois]="pois"></amap-path-simplifier>
|
||||
<amap-path-simplifier [mapWidth]="'100%'" [mapHeight]="'600px'" [mapList]="mapList" [pois]="pois"></amap-path-simplifier>
|
||||
</div>
|
||||
</div>
|
||||
</nz-card>
|
||||
|
||||
@ -149,7 +149,8 @@ export class OrderManagementVehicleDetailComponent implements OnInit {
|
||||
points?.forEach((item: any) => {
|
||||
list.push({
|
||||
name: `${item.spd}km/h`,
|
||||
lnglat: [Number((Number(item.lon) / 600000).toFixed(6)), Number((Number(item.lat) / 600000).toFixed(6))]
|
||||
lnglat: [Number((Number(item.lon) / 600000).toFixed(6)), Number((Number(item.lat) / 600000).toFixed(6))],
|
||||
time: item.gtm
|
||||
});
|
||||
});
|
||||
this.mapList = list;
|
||||
|
||||
@ -9,30 +9,16 @@
|
||||
* Copyright (C) 2022 huzhenhong. All rights reserved.
|
||||
-->
|
||||
<!-- 搜索表单 -->
|
||||
<page-header-wrapper [title]="''"> </page-header-wrapper>
|
||||
<nz-card>
|
||||
<!-- <page-header-wrapper [title]="''"> </page-header-wrapper> -->
|
||||
<!-- <nz-card class="search-box">
|
||||
<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]="false"
|
||||
(formSubmit)="st?.load(1)"
|
||||
(formReset)="resetSF()"
|
||||
></sf>
|
||||
</div>
|
||||
|
||||
<!-- 查询字段大于3个时,根据展开状态调整布局 -->
|
||||
<ng-container *ngIf="queryFieldCount > 4">
|
||||
<div nz-col [nzSpan]="_$expand ? 24 : 18">
|
||||
<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]="loading" (click)="search()" acl [acl-ability]="['ORDER-VEHICLE-search']">查询</button>
|
||||
<div nz-col [nzSpan]="_$expand ? 24 : 6" class="text-right" [class.expend-options]="_$expand">
|
||||
<button nz-button nzType="primary" [nzLoading]="loading" (click)="search()" acl
|
||||
[acl-ability]="['ORDER-VEHICLE-search']">查询</button>
|
||||
<button nz-button nzType="primary" [disabled]="loading">导出</button>
|
||||
<button nz-button [disabled]="loading" (click)="resetSF()">重置</button>
|
||||
<button nz-button nzType="link" (click)="expandToggle()">
|
||||
@ -42,30 +28,29 @@
|
||||
</div>
|
||||
</ng-container>
|
||||
</div>
|
||||
</nz-card>
|
||||
</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">
|
||||
<st
|
||||
#st
|
||||
[bordered]="true"
|
||||
multiSort
|
||||
[scroll]="{ x: '1200px' }"
|
||||
[data]="service.$api_get_listWholePage"
|
||||
[columns]="columns"
|
||||
[req]="{ process: beforeReq }"
|
||||
<nz-card class="table-box">
|
||||
<div style="display: flex;align-items: center;">
|
||||
<label style="font-weight: bold;font-size: 17px;">
|
||||
<label style="color: #ff4d4f;margin-left: 17px;margin-right: 6px;">|</label>
|
||||
整车订单</label>
|
||||
<nz-tabset (nzSelectedIndexChange)="selectChange($event)" [nzTabBarExtraContent]="extraTemplate" style="flex: 1;">
|
||||
<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>
|
||||
|
||||
<div>
|
||||
<st #st [bordered]="true" multiSort [scroll]="{ x:'1200px',y:scrollY }" [data]="service.$api_get_listWholePage"
|
||||
[columns]="columns" [req]="{ process: beforeReq }"
|
||||
[res]="{ reName: { list: 'data.records', total: 'data.total' } , process: afterRes}"
|
||||
[page]="{ show: true, showSize: true, pageSizes: [10, 20, 30, 50, 100, 200, 300, 500, 1000] }"
|
||||
>
|
||||
[page]="{ show: true, showSize: true, pageSizes: [10, 20, 30, 50, 100, 200, 300, 500, 1000] }">
|
||||
<ng-template st-row="billCode" let-item let-index="index">
|
||||
<a [routerLink]="'vehicle-detail/' + item.id">{{ item.billCode }}</a>
|
||||
<div>
|
||||
@ -97,8 +82,9 @@
|
||||
<ng-template st-row="mybidDetailInfo" let-item let-index="index">
|
||||
<div *ngIf="item.mybidDetailInfo.length > 0">
|
||||
<div *ngFor="let data of item.mybidDetailInfo">
|
||||
{{ data.expenseName }}:{{ data.price | currency }}
|
||||
<span *ngIf="data.paymentStatus && data.paymentStatus === '1' && data.price>0" style="color: #f59a63">待申请</span>
|
||||
{{ data.expenseName }}:{{ data.price | currency }}
|
||||
<span *ngIf="data.paymentStatus && data.paymentStatus === '1' && data.price>0"
|
||||
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>
|
||||
@ -126,18 +112,13 @@
|
||||
</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"
|
||||
<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' } }"
|
||||
>
|
||||
[res]="{ reName: { list: 'data', total: 'data.total' } }">
|
||||
<ng-template st-row="order" let-item let-index="index">
|
||||
{{ index + 1 }}
|
||||
</ng-template>
|
||||
@ -149,31 +130,23 @@
|
||||
</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' } }"
|
||||
>
|
||||
<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="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>变更原因:{{ ViewCause?.changeCause }}</span></div>
|
||||
<div><span>拒绝原因:{{ ViewCause?.refuseCause }}</span></div>
|
||||
<div><span>注:附加费依据调整后的运输费用重新计算</span></div>
|
||||
</ng-container>
|
||||
<ng-template #nzModalFooterview>
|
||||
@ -182,7 +155,8 @@
|
||||
</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="货主评价">
|
||||
@ -208,32 +182,44 @@
|
||||
<button nz-button nzType="primary" (click)="handleCancel('2')">确定</button>
|
||||
</ng-template>
|
||||
</nz-modal>
|
||||
|
||||
<nz-drawer [nzBodyStyle]="{ overflow: 'auto' }" [nzMaskClosable]="false" [nzWidth]="420" [nzVisible]="visible"
|
||||
[nzMaskClosable]="true" nzTitle="筛选" [nzFooter]="footerTpl" (nzOnClose)="visible=false">
|
||||
<div *nzDrawerContent>
|
||||
<sf #sf [schema]="schema" [ui]="ui" [compact]="true" [button]="'none'"></sf>
|
||||
</div>
|
||||
<ng-template #footerTpl>
|
||||
<div style="float: right">
|
||||
<button nz-button (click)="visible=false">关闭</button>
|
||||
<button nz-button [disabled]="loading" (click)="resetSF()">重置</button>
|
||||
<button nz-button nzType="primary" (click)="search();;">搜索</button>
|
||||
</div>
|
||||
</ng-template>
|
||||
</nz-drawer>
|
||||
|
||||
<ng-template #extraTemplate>
|
||||
<div>
|
||||
<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
|
||||
*ngIf="resourceStatus == 4"
|
||||
nz-button
|
||||
nzType="primary"
|
||||
nzGhost
|
||||
nz-popconfirm
|
||||
[nzPopconfirmTitle]="enable"
|
||||
(nzOnConfirm)="userAction()"
|
||||
nzPopconfirmPlacement="bottomRight"
|
||||
acl [acl-ability]="['ORDER-VEHICLE-batchSignWholeOrder']"
|
||||
>
|
||||
<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 *ngIf="resourceStatus == 4" nz-button nzType="primary" nzGhost nz-popconfirm [nzPopconfirmTitle]="enable"
|
||||
(nzOnConfirm)="userAction()" nzPopconfirmPlacement="bottomRight" acl
|
||||
[acl-ability]="['ORDER-VEHICLE-batchSignWholeOrder']">
|
||||
批量签收
|
||||
</button>
|
||||
<button nz-button nzType="primary" [disabled]="loading">导出</button>
|
||||
<button nz-button nzType="primary" (click)="visible=true;" class="mr-sm">筛选</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 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>
|
||||
@ -1,5 +0,0 @@
|
||||
:host {
|
||||
p{
|
||||
margin-bottom: 0
|
||||
}
|
||||
}
|
||||
@ -1,34 +0,0 @@
|
||||
/*
|
||||
* @Description :
|
||||
* @Version : 1.0
|
||||
* @Author : Shiming
|
||||
* @Date : 2021-12-03 15:31:52
|
||||
* @LastEditors : Shiming
|
||||
* @LastEditTime : 2022-01-25 13:28:47
|
||||
* @FilePath : \\tms-obc-web\\src\\app\\routes\\order-management\\components\\vehicle\\vehicle.component.spec.ts
|
||||
* Copyright (C) 2022 huzhenhong. All rights reserved.
|
||||
*/
|
||||
import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
import { OrderManagementVehicleComponent } from './vehicle.component';
|
||||
|
||||
describe('OrderManagementVehicleComponent', () => {
|
||||
let component: OrderManagementVehicleComponent;
|
||||
let fixture: ComponentFixture<OrderManagementVehicleComponent>;
|
||||
|
||||
beforeEach(waitForAsync(() => {
|
||||
TestBed.configureTestingModule({
|
||||
declarations: [ OrderManagementVehicleComponent ]
|
||||
})
|
||||
.compileComponents();
|
||||
}));
|
||||
|
||||
beforeEach(() => {
|
||||
fixture = TestBed.createComponent(OrderManagementVehicleComponent);
|
||||
component = fixture.componentInstance;
|
||||
fixture.detectChanges();
|
||||
});
|
||||
|
||||
it('should create', () => {
|
||||
expect(component).toBeTruthy();
|
||||
});
|
||||
});
|
||||
File diff suppressed because it is too large
Load Diff
@ -16,7 +16,7 @@
|
||||
</st>
|
||||
</div>
|
||||
<div style="flex: 1;" >
|
||||
<amap-path-simplifier [mapWidth]="'100%'" [mapHeight]="'600px'" [MapList]="MapList"></amap-path-simplifier>
|
||||
<amap-path-simplifier [mapWidth]="'100%'" [mapHeight]="'600px'" [mapList]="MapList"></amap-path-simplifier>
|
||||
</div>
|
||||
</div>
|
||||
</nz-card>
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
* @Author : Shiming
|
||||
* @Date : 2021-12-03 15:31:52
|
||||
* @LastEditors : Shiming
|
||||
* @LastEditTime : 2022-03-08 09:27:47
|
||||
* @LastEditTime : 2022-03-22 10:49:37
|
||||
* @FilePath : \\tms-obc-web\\src\\app\\routes\\order-management\\services\\order-management.service.ts
|
||||
* Copyright (C) 2022 huzhenhong. All rights reserved.
|
||||
*/
|
||||
@ -158,6 +158,11 @@ export class OrderManagementService extends ShipperBaseService {
|
||||
// 批量修改费率-实时查看附加费
|
||||
public $api_searchAdditionalRateBatch = '/api/sdc/billOperate/searchAdditionalRateBatch';
|
||||
|
||||
// 风险异常
|
||||
public $api_listBillComplianceAbnormalByBillId = '/api/sdc/billCompliance/listBillComplianceAbnormalByBillId';
|
||||
// 异常预警
|
||||
public $api_getAbnormalWarningByBillId = '/api/sdc/abnormalWarning/getAbnormalWarningByBillId';
|
||||
|
||||
getDictByKey(dictKey: string) {
|
||||
const params = { dictKey: dictKey };
|
||||
return this.request(this.$api_getDictValue, params);
|
||||
|
||||
@ -44,7 +44,7 @@
|
||||
</nz-card>
|
||||
<ng-template #extraTemplate>
|
||||
<div>
|
||||
<button (click)="audit('', 2)" nz-button nzType="primary" acl [acl-ability]="['SUPPLY-INDEX-bulkBatchAudit']">批量审核</button>
|
||||
<button (click)="audit('', 2)" nz-button nzType="primary" acl [acl-ability]="['SUPPLY-INDEX-bulkBatchAudit']">审核</button>
|
||||
<button (click)="releaseGoods()" nz-button nzType="primary" acl [acl-ability]="['SUPPLY-INDEX-bulkUndertakesToSupply']">代发货源</button>
|
||||
</div>
|
||||
</ng-template>
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
* @Author : Shiming
|
||||
* @Date : 2022-01-12 10:52:50
|
||||
* @LastEditors : Shiming
|
||||
* @LastEditTime : 2022-03-07 11:13:39
|
||||
* @LastEditTime : 2022-03-22 13:32:15
|
||||
* @FilePath : \\tms-obc-web\\src\\app\\routes\\supply-management\\components\\vehicle\\vehicle.component.html
|
||||
* Copyright (C) 2022 huzhenhong. All rights reserved.
|
||||
-->
|
||||
@ -97,7 +97,7 @@
|
||||
</nz-card>
|
||||
<ng-template #extraTemplate>
|
||||
<div>
|
||||
<button (click)="audit('', 2)" nz-button nzType="primary" acl [acl-ability]="['SUPPLY-INDEX-vehicleBatchAudit']">批量审核</button>
|
||||
<button (click)="audit('', 2)" nz-button nzType="primary" acl [acl-ability]="['SUPPLY-INDEX-vehicleBatchAudit']">审核</button>
|
||||
<button (click)="releaseGoods()" nz-button nzType="primary" acl [acl-ability]="['SUPPLY-INDEX-vehicleUndertakesToSupply']"
|
||||
>代发货源</button
|
||||
>
|
||||
|
||||
@ -218,7 +218,7 @@ export class CarSettleAddDriverComponent implements OnInit {
|
||||
default: ''
|
||||
}
|
||||
},
|
||||
required: ['certificatePhotoFrontWatermark', 'certificatePhotoBackWatermark', 'name', 'certificateNumber', 'bankCardNo']
|
||||
required: ['mobile','certificatePhotoFrontWatermark', 'certificatePhotoBackWatermark', 'name', 'certificateNumber', 'bankCardNo']
|
||||
};
|
||||
this.schema1 = {
|
||||
properties: {
|
||||
|
||||
@ -402,29 +402,29 @@ export class UserCenterComponentsDriverDetailComponent implements OnInit {
|
||||
}
|
||||
|
||||
saveUser() {
|
||||
const userIdentity = this.userIdentityDetail;
|
||||
const userIdentity = this?.userIdentityDetail;
|
||||
const params = {
|
||||
certificateNumber: userIdentity.certificateNumber,
|
||||
certificatePhotoBack: userIdentity.certificatePhotoBack,
|
||||
certificatePhotoBackWatermark: userIdentity.certificatePhotoBackWatermark,
|
||||
certificatePhotoFront: userIdentity.certificatePhotoFront,
|
||||
certificatePhotoFrontWatermark: userIdentity.certificatePhotoFrontWatermark,
|
||||
certificateType: userIdentity.certificateType,
|
||||
handCertificate: userIdentity.handCertificate,
|
||||
id: userIdentity.id,
|
||||
name: userIdentity.name,
|
||||
souceType: userIdentity.souceType,
|
||||
sourceAppId: userIdentity.sourceAppId,
|
||||
tenantId: userIdentity.tenantId,
|
||||
userId: userIdentity.userId,
|
||||
certificateNumber: userIdentity?.certificateNumber,
|
||||
certificatePhotoBack: userIdentity?.certificatePhotoBack,
|
||||
certificatePhotoBackWatermark: userIdentity?.certificatePhotoBackWatermark,
|
||||
certificatePhotoFront: userIdentity?.certificatePhotoFront,
|
||||
certificatePhotoFrontWatermark: userIdentity?.certificatePhotoFrontWatermark,
|
||||
certificateType: userIdentity?.certificateType,
|
||||
handCertificate: userIdentity?.handCertificate,
|
||||
id: userIdentity?.id,
|
||||
name: userIdentity?.name,
|
||||
souceType: userIdentity?.souceType,
|
||||
sourceAppId: userIdentity?.sourceAppId,
|
||||
tenantId: userIdentity?.tenantId,
|
||||
userId: userIdentity?.userId,
|
||||
validEndTime:
|
||||
userIdentity.validEndTime?.length === 10
|
||||
? userIdentity.validEndTime
|
||||
: this.datePipe.transform(userIdentity.validEndTime, 'yyyy-MM-dd'),
|
||||
userIdentity?.validEndTime?.length === 10
|
||||
? userIdentity?.validEndTime
|
||||
: this.datePipe.transform(userIdentity?.validEndTime, 'yyyy-MM-dd'),
|
||||
validStartTime:
|
||||
userIdentity.validStartTime?.length === 10
|
||||
? userIdentity.validStartTime
|
||||
: this.datePipe.transform(userIdentity.validStartTime, 'yyyy-MM-dd')
|
||||
userIdentity?.validStartTime?.length === 10
|
||||
? userIdentity?.validStartTime
|
||||
: this.datePipe.transform(userIdentity?.validStartTime, 'yyyy-MM-dd')
|
||||
};
|
||||
this.service.request(this.service.$api_update_driver_identity, params).subscribe(res => {
|
||||
if (res) {
|
||||
|
||||
@ -77,6 +77,7 @@ export class UserCenterComponentsDriverComponent implements OnInit {
|
||||
nzContent: this.promoterModal,
|
||||
nzOnOk: () => {
|
||||
if (!!!this.promotersTelephone) {
|
||||
this.service.msgSrv.error('请填写手机号!');
|
||||
return false;
|
||||
}
|
||||
if (typeof this.promotersTelephone === 'string' && !/(^1\d{10}$)/.test(this.promotersTelephone)) {
|
||||
|
||||
@ -70,6 +70,7 @@ export class FreightConfigComponent implements OnInit {
|
||||
nzWidth: 900,
|
||||
nzComponentParams: {
|
||||
extendType: '2',
|
||||
spareBusinessId: item.networkTransporter,
|
||||
businessId: item.id,
|
||||
formatTypeList: (item: any[]) => [
|
||||
...item,
|
||||
|
||||
@ -119,6 +119,7 @@ export class VehicleComponentsAuditDetailComponent implements OnInit, OnDestroy
|
||||
nzContent: this.redectModal,
|
||||
nzOnOk: () => {
|
||||
if (!this.approvalOpinion) {
|
||||
this.service.msgSrv.error('请填写备注!')
|
||||
return false;
|
||||
}
|
||||
this.adjuctUser(
|
||||
|
||||
@ -236,7 +236,7 @@
|
||||
</st>
|
||||
</div>
|
||||
<div nz-col [nzSpan]="12">
|
||||
<amap-path-simplifier [mapWidth]="'100%'" [mapHeight]="'600px'" [MapList]="mapList"></amap-path-simplifier>
|
||||
<amap-path-simplifier [mapWidth]="'100%'" [mapHeight]="'600px'" [mapList]="mapList"></amap-path-simplifier>
|
||||
</div>
|
||||
</div>
|
||||
</nz-card>
|
||||
|
||||
@ -80,6 +80,9 @@ tabs = {
|
||||
wayBillCode: {
|
||||
type: 'string',
|
||||
title: '运单号',
|
||||
ui: {
|
||||
placeholder: '最多100个运单,空号隔开'
|
||||
}
|
||||
},
|
||||
resourceCode: {
|
||||
type: 'string',
|
||||
|
||||
@ -216,7 +216,7 @@
|
||||
</st>
|
||||
</div>
|
||||
<div nz-col [nzSpan]="12">
|
||||
<amap-path-simplifier [mapWidth]="'100%'" [mapHeight]="'600px'" [MapList]="mapList"></amap-path-simplifier>
|
||||
<amap-path-simplifier [mapWidth]="'100%'" [mapHeight]="'600px'" [mapList]="mapList"></amap-path-simplifier>
|
||||
</div>
|
||||
</div>
|
||||
</nz-card>
|
||||
|
||||
@ -77,7 +77,10 @@ export class WaybillManagementVehicleComponent implements OnInit {
|
||||
_$expand: { type: 'boolean', ui: { hidden: true } },
|
||||
wayBillCode: {
|
||||
type: 'string',
|
||||
title: '运单号'
|
||||
title: '运单号',
|
||||
ui: {
|
||||
placeholder: '最多100个运单,空号隔开'
|
||||
}
|
||||
},
|
||||
resourceCode: {
|
||||
type: 'string',
|
||||
|
||||
@ -8,4 +8,8 @@
|
||||
* @FilePath : \\tms-obc-web\\src\\app\\shared\\components\\amap\\amap-path-simplifier\\amap-path-simplifier.component.html
|
||||
* Copyright (C) 2022 huzhenhong. All rights reserved.
|
||||
-->
|
||||
<div class="map-container" id="container" tabindex="0" [style]="{width: mapWidth, height: mapHeight}"></div>
|
||||
<div class="map-container" id="container" tabindex="0" [style]="{width: mapWidth, height: mapHeight}"></div>
|
||||
<div style="display: flex;align-items: center;">
|
||||
<div>巡航倍数 : <input type="number" [ngModel]="navSpeed" min="1" (ngModelChange)="changeMultiple($event)"
|
||||
style="border-color: #f0f0f0;outline: 0;width: 60px;text-align: center;" class="mt-sm ml-sm"/></div>
|
||||
</div>
|
||||
@ -1,8 +1,10 @@
|
||||
import AMapLoader from '@amap/amap-jsapi-loader';
|
||||
import { Component, Input, OnChanges, OnInit, Output, SimpleChanges, EventEmitter, OnDestroy } from '@angular/core';
|
||||
import { amapConf } from '@conf/amap.config';
|
||||
import { InputNumber } from '@delon/util';
|
||||
import { throwError } from 'rxjs';
|
||||
import { BaseService } from 'src/app/shared/services';
|
||||
import { AmapService, InfoItem, MapList, PathList, POI } from '../amap.service';
|
||||
declare var AMap: any;
|
||||
declare var AMapUI: any;
|
||||
declare var Loca: any;
|
||||
@ -21,41 +23,52 @@ export class AmapPathSimplifierComponent implements OnInit, OnChanges, OnDestroy
|
||||
infoWindow: any;
|
||||
markerList: any;
|
||||
SimpleMarker: any;
|
||||
// 简单路径信息
|
||||
@Input()
|
||||
pathList: any = [];
|
||||
mapList: MapList[] = [];
|
||||
// 完整路线图信息
|
||||
@Input()
|
||||
pathList: PathList[] = [];
|
||||
// 当前选中路线图下标
|
||||
@Input()
|
||||
selectedIndex = 0;
|
||||
// 巡航倍数
|
||||
@InputNumber()
|
||||
navSpeed = 1;
|
||||
// 标点数组
|
||||
@Input()
|
||||
pois: POI[] = [];
|
||||
private _pois: any = [];
|
||||
|
||||
@Input()
|
||||
mapWidth = '800px';
|
||||
@Input() MapList: any;
|
||||
@Input()
|
||||
mapHeight = '500px';
|
||||
|
||||
@Output()
|
||||
readonly clcikPointEvent = new EventEmitter<any>();
|
||||
|
||||
@Input()
|
||||
pois: any = [];
|
||||
private _pois: any = [];
|
||||
|
||||
constructor(public service: BaseService) {}
|
||||
constructor(public service: BaseService, private amapService: AmapService) {}
|
||||
ngOnChanges(changes: SimpleChanges): void {
|
||||
// 路线图变更: 设置路线图, 指定路线图
|
||||
if (changes?.pathList?.currentValue && this?.pathSimplifierIns) {
|
||||
this.setData(changes.pathList?.currentValue);
|
||||
this.setPathIndex(this.selectedIndex);
|
||||
}
|
||||
if (changes?.MapList?.currentValue && this?.pathSimplifierIns && changes.MapList?.currentValue.length > 0) {
|
||||
// console.log(this.MapList);
|
||||
// 路径信息变更: 更新路线图, 设置路线图, 指定路线图, 获取终点地址信息并标点
|
||||
if (changes?.mapList?.currentValue && this?.pathSimplifierIns && changes.mapList?.currentValue.length > 0) {
|
||||
// console.log(this.mapList);
|
||||
this.pathList = [
|
||||
{
|
||||
name: '路线1',
|
||||
points: changes.MapList?.currentValue
|
||||
points: changes.mapList?.currentValue
|
||||
}
|
||||
];
|
||||
this.setData(this.pathList);
|
||||
this.setPathIndex(this.selectedIndex);
|
||||
this.getPoiByPositon(this.MapList[this.MapList?.length - 1]?.lnglat);
|
||||
this.getPoiByPositon(this.mapList[this.mapList?.length - 1]?.lnglat);
|
||||
}
|
||||
// 标点列表变更: 更新标点数据, 绘画标点
|
||||
if (changes?.pois?.currentValue) {
|
||||
// console.log(this.pois);
|
||||
this._pois = changes?.pois?.currentValue;
|
||||
@ -68,11 +81,13 @@ export class AmapPathSimplifierComponent implements OnInit, OnChanges, OnDestroy
|
||||
this.mapInit();
|
||||
}
|
||||
ngOnDestroy(): void {
|
||||
// 销毁地图数据
|
||||
if (this.aMap) {
|
||||
this.aMap.destroy();
|
||||
}
|
||||
}
|
||||
|
||||
/** 地图初始化 */
|
||||
mapInit() {
|
||||
AMapLoader.load({
|
||||
key: CONFIG.key,
|
||||
@ -94,14 +109,15 @@ export class AmapPathSimplifierComponent implements OnInit, OnChanges, OnDestroy
|
||||
});
|
||||
|
||||
this.aMap.on('complete', () => {
|
||||
// this.service.msgSrv.info('地图加载完成 !');
|
||||
// 信息窗口
|
||||
this.infoWindow = new AMap.InfoWindow({
|
||||
offset: new AMap.Pixel(0, -40)
|
||||
});
|
||||
// 初始化定位工具
|
||||
this.geocoder = new AMap.Geocoder({
|
||||
radius: 1000 //范围,默认:500
|
||||
radius: 500 //范围,默认:500
|
||||
});
|
||||
// this.service.msgSrv.info('地图加载完成 !');
|
||||
this.pathInit();
|
||||
this.setPOIS();
|
||||
});
|
||||
@ -111,34 +127,20 @@ export class AmapPathSimplifierComponent implements OnInit, OnChanges, OnDestroy
|
||||
});
|
||||
}
|
||||
|
||||
/** 初始化路径工具 */
|
||||
pathInit() {
|
||||
this.pathSimplifierIns = new AMapUI.PathSimplifier({
|
||||
zIndex: 100,
|
||||
//autoSetFitView:false,
|
||||
map: this.aMap, //所属的地图实例
|
||||
|
||||
getPath: function (pathData: any, pathIndex: any) {
|
||||
var points = pathData.points,
|
||||
lnglatList = [];
|
||||
|
||||
for (var i = 0, len = points?.length; i < len; i++) {
|
||||
lnglatList.push(points[i].lnglat);
|
||||
}
|
||||
|
||||
return lnglatList;
|
||||
},
|
||||
getHoverTitle: function (pathData: any, pathIndex: any, pointIndex: any) {
|
||||
if (pointIndex >= 0) {
|
||||
//point
|
||||
return `${pathData.name},${pathData.points[pointIndex].name}`;
|
||||
}
|
||||
return '';
|
||||
},
|
||||
map: this.aMap,
|
||||
// 重组路径数据
|
||||
getPath: (pathData: PathList, pathIndex: number) => pathData.points.map(points => points.lnglat),
|
||||
// 鼠标悬浮事件
|
||||
getHoverTitle: (pathData: PathList, pathIndex: number, pointIndex: number) => '',
|
||||
renderOptions: {
|
||||
renderAllPointsIfNumberBelow: 10 //绘制路线节点,如不需要可设置为-1
|
||||
renderAllPointsIfNumberBelow: 20 //绘制路线节点,如不需要可设置为-1
|
||||
}
|
||||
});
|
||||
(window as any).pathSimplifierIns = this.pathSimplifierIns;
|
||||
this.setData(this.pathList);
|
||||
|
||||
if (this.pathList.length > 0) {
|
||||
@ -147,26 +149,40 @@ export class AmapPathSimplifierComponent implements OnInit, OnChanges, OnDestroy
|
||||
|
||||
this.pathSimplifierIns.on('pointClick', (e: any, info: any) => {
|
||||
this.clcikPointEvent.emit({ e, info });
|
||||
console.log(`Click: ${info.pathData.points[info.pointIndex].name}`);
|
||||
// 弹出信息窗口
|
||||
if (info) {
|
||||
this.geocoder.getAddress(info.pathData.points[info.pointIndex].lnglat, (status: any, result: any) => {
|
||||
if (status === 'complete' && result.info === 'OK') {
|
||||
// result中对应详细地理坐标信息
|
||||
this.selectedPOI({
|
||||
position: info.pathData.points[info.pointIndex].lnglat,
|
||||
content: `
|
||||
<label style="font-weight: bold;">${result.regeocode.formattedAddress}<label/><br/>
|
||||
<label style="font-weight: 400;">车速: ${info.pathData.points[info.pointIndex].name}<label/><br/>
|
||||
<label style="font-weight: 400;">时间: ${this.amapService.formatTime(info.pathData.points[info.pointIndex].time)}<label/>
|
||||
`
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/** 初始化标点工具 */
|
||||
setPOIS() {
|
||||
AMapUI.loadUI(['misc/MarkerList', 'overlay/SimpleMarker'], (MarkerList: any, SimpleMarker: any) => {
|
||||
this.markerList = new MarkerList({
|
||||
//关联的map对象
|
||||
map: this.aMap,
|
||||
//返回数据项的位置信息,需要是AMap.LngLat实例,或者是经纬度数组,比如[116.789806, 39.904989]
|
||||
getPosition: (dataItem: any) => {
|
||||
return dataItem.position;
|
||||
},
|
||||
getPosition: (dataItem: POI) => dataItem.position,
|
||||
//返回数据项对应的Marker
|
||||
getMarker: (dataItem: any, context: any, recycledMarker: any) => {
|
||||
getMarker: (dataItem: POI, context: any, recycledMarker: any) => {
|
||||
//存在可回收利用的marker
|
||||
if (recycledMarker) {
|
||||
//直接更新内容返回
|
||||
recycledMarker.setIconLabel(context.id);
|
||||
recycledMarker.setIconStyle(dataItem.iconStyle);
|
||||
recycledMarker.setIconStyle(dataItem.color);
|
||||
return recycledMarker;
|
||||
}
|
||||
this.SimpleMarker = SimpleMarker;
|
||||
@ -189,7 +205,7 @@ export class AmapPathSimplifierComponent implements OnInit, OnChanges, OnDestroy
|
||||
});
|
||||
},
|
||||
//返回数据项对应的infoWindow
|
||||
getInfoWindow: (dataItem: any, context: any, recycledInfoWindow: any) => {
|
||||
getInfoWindow: (dataItem: POI, context: any, recycledInfoWindow: any) => {
|
||||
this.selectedPOI(dataItem);
|
||||
return null;
|
||||
}
|
||||
@ -202,28 +218,57 @@ export class AmapPathSimplifierComponent implements OnInit, OnChanges, OnDestroy
|
||||
});
|
||||
}
|
||||
|
||||
setData(pathList: any[]) {
|
||||
/**
|
||||
* 设置路线图数据
|
||||
* @param pathList
|
||||
*/
|
||||
setData(pathList: PathList[]) {
|
||||
this.pathSimplifierIns.setData(pathList);
|
||||
}
|
||||
|
||||
/**
|
||||
* 指定路线图
|
||||
* @param index
|
||||
*/
|
||||
setPathIndex(index: number) {
|
||||
this.pathSimplifierIns.setSelectedPathIndex(index);
|
||||
this.startNav();
|
||||
}
|
||||
|
||||
/**
|
||||
* 开启巡航
|
||||
*/
|
||||
startNav() {
|
||||
if (this.navigator) {
|
||||
this.navigator.start();
|
||||
this.navigator = this.pathSimplifierIns?.createPathNavigator(this.selectedIndex, {
|
||||
loop: true, //循环播放
|
||||
speed: 500000 * this.navSpeed //巡航速度,单位千米/小时
|
||||
});
|
||||
this.navigator?.start();
|
||||
}
|
||||
|
||||
changeMultiple(multiple: number) {
|
||||
if (multiple <= 0) {
|
||||
this.navSpeed = 1;
|
||||
return;
|
||||
} else {
|
||||
this.navigator = this.pathSimplifierIns?.createPathNavigator(0, {
|
||||
loop: true, //循环播放
|
||||
speed: 1000000 //巡航速度,单位千米/小时
|
||||
});
|
||||
this.navigator?.start();
|
||||
this.navSpeed = multiple;
|
||||
this.resetNav();
|
||||
}
|
||||
}
|
||||
|
||||
/** 根据经纬度获取地址信息 */
|
||||
/** 重置巡航 */
|
||||
resetNav() {
|
||||
if (this.navigator) {
|
||||
this.navigator.destroy();
|
||||
setTimeout(() => {
|
||||
this.startNav();
|
||||
}, 200);
|
||||
} else {
|
||||
this.startNav();
|
||||
}
|
||||
}
|
||||
|
||||
/** 根据标点经纬度获取地址信息 */
|
||||
getPoiByPositon(position: string[]) {
|
||||
this.geocoder.getAddress(position, (status: any, result: any) => {
|
||||
if (status === 'complete' && result.info === 'OK') {
|
||||
@ -232,7 +277,6 @@ export class AmapPathSimplifierComponent implements OnInit, OnChanges, OnDestroy
|
||||
if (this.markerList) {
|
||||
this.markerList.render(this._pois);
|
||||
}
|
||||
// this.setPOI({ markerLabel: '终', color: 'red', position: position });
|
||||
}
|
||||
});
|
||||
}
|
||||
@ -240,45 +284,13 @@ export class AmapPathSimplifierComponent implements OnInit, OnChanges, OnDestroy
|
||||
/**
|
||||
* 选中标点,设置窗口信息
|
||||
*
|
||||
* @param location
|
||||
* @param infoItem
|
||||
*/
|
||||
selectedPOI(location: any) {
|
||||
this.infoWindow.setContent(`地址: <pre>${location.title}</pre>`);
|
||||
this.infoWindow.open(this.aMap, location.position);
|
||||
this.infoWindow.setPosition(location.position);
|
||||
this.aMap.setCenter(location.position);
|
||||
}
|
||||
|
||||
/**
|
||||
* 增加标记点
|
||||
*
|
||||
* @param poi
|
||||
*/
|
||||
setPOI(poi: POI) {
|
||||
AMapUI.loadUI(['overlay/SimpleMarker'], (SimpleMarker: any) => {
|
||||
//启动页面
|
||||
new SimpleMarker({
|
||||
//普通文本
|
||||
iconLabel: {
|
||||
//普通文本
|
||||
innerHTML: poi.markerLabel,
|
||||
//设置样式
|
||||
style: {
|
||||
color: '#fff',
|
||||
fontSize: '110%',
|
||||
marginTop: '2px'
|
||||
}
|
||||
},
|
||||
iconStyle: poi.color,
|
||||
map: this.aMap,
|
||||
position: poi.position
|
||||
});
|
||||
});
|
||||
selectedPOI(infoItem: InfoItem) {
|
||||
this.infoWindow.setContent(infoItem.content || `地址: <pre>${infoItem.title}</pre>`);
|
||||
this.infoWindow.open(this.aMap, infoItem.position);
|
||||
this.infoWindow.setPosition(infoItem.position);
|
||||
// 地图定位居中
|
||||
this.aMap.setCenter(infoItem.position);
|
||||
}
|
||||
}
|
||||
|
||||
export interface POI {
|
||||
markerLabel: string;
|
||||
color: string;
|
||||
position: string[];
|
||||
}
|
||||
|
||||
@ -12,7 +12,10 @@ import { Injectable } from '@angular/core';
|
||||
import { Observable, Subject, throwError } from 'rxjs';
|
||||
import AMapLoader from '@amap/amap-jsapi-loader';
|
||||
import { amapConf } from '@conf/amap.config';
|
||||
import { formatDate } from '@angular/common';
|
||||
import { DateTimePickerUtil } from '@delon/util';
|
||||
declare var AMap: any;
|
||||
declare var AMapUI: any;
|
||||
|
||||
const CONFIG = amapConf;
|
||||
@Injectable({
|
||||
@ -82,4 +85,59 @@ export class AmapService {
|
||||
|
||||
return this.currentSub;
|
||||
}
|
||||
|
||||
/**
|
||||
* 增加标记点
|
||||
*
|
||||
* @param poi
|
||||
*/
|
||||
setPOI(poi: POI, aMap: any) {
|
||||
AMapUI.loadUI(['overlay/SimpleMarker'], (SimpleMarker: any) => {
|
||||
//启动页面
|
||||
new SimpleMarker({
|
||||
//普通文本
|
||||
iconLabel: {
|
||||
//普通文本
|
||||
innerHTML: poi.markerLabel,
|
||||
//设置样式
|
||||
style: {
|
||||
color: '#fff',
|
||||
fontSize: '110%',
|
||||
marginTop: '2px'
|
||||
}
|
||||
},
|
||||
iconStyle: poi.color,
|
||||
map: aMap,
|
||||
position: poi.position
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
formatTime(time: string): string {
|
||||
return `${time.slice(0, 4)}-${time.slice(4, 6)}-${time.slice(6, 8)} ${time.slice(9, 11)}:${time.slice(11, 13)}:${time.slice(13, 15)}`;
|
||||
}
|
||||
}
|
||||
|
||||
export interface POI {
|
||||
markerLabel?: string;
|
||||
title: string;
|
||||
color: string;
|
||||
position: string[];
|
||||
}
|
||||
|
||||
export interface InfoItem {
|
||||
title?: string;
|
||||
content?: string;
|
||||
position: string[];
|
||||
}
|
||||
|
||||
export interface MapList {
|
||||
name: string;
|
||||
time: string;
|
||||
lnglat: string[];
|
||||
}
|
||||
|
||||
export interface PathList {
|
||||
name: string;
|
||||
points: MapList[];
|
||||
}
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
* @Author : Shiming
|
||||
* @Date : 2022-01-10 16:06:17
|
||||
* @LastEditors : Shiming
|
||||
* @LastEditTime : 2022-02-17 13:28:39
|
||||
* @LastEditTime : 2022-03-22 10:05:15
|
||||
* @FilePath : \\tms-obc-web\\src\\app\\shared\\components\\dynamic-setting\\dynamic-setting-modal\\dynamic-setting-modal.component.ts
|
||||
* Copyright (C) 2022 huzhenhong. All rights reserved.
|
||||
*/
|
||||
@ -34,6 +34,8 @@ export class DynamicSettingModalComponent implements OnInit {
|
||||
@Input()
|
||||
extendType!: string;
|
||||
@Input()
|
||||
spareBusinessId!: string;
|
||||
@Input()
|
||||
businessId!: string;
|
||||
@Input()
|
||||
configvalue!: string;
|
||||
@ -54,7 +56,8 @@ export class DynamicSettingModalComponent implements OnInit {
|
||||
.request('/api/mdc/pbc/sysConfigItemExtend/getSysConfigExtend', {
|
||||
configFullKey: this.configFullKey,
|
||||
extendType: this.extendType,
|
||||
businessId: this.businessId
|
||||
businessId: this.businessId,
|
||||
spareBusinessId: this.spareBusinessId,
|
||||
})
|
||||
.pipe(
|
||||
map((res: Array<any>) => {
|
||||
|
||||
@ -47,6 +47,7 @@ import { NzAffixModule } from 'ng-zorro-antd/affix';
|
||||
import { NzTypographyModule } from 'ng-zorro-antd/typography';
|
||||
import { NzSwitchModule } from 'ng-zorro-antd/switch';
|
||||
import { NzImageModule } from 'ng-zorro-antd/image';
|
||||
import { NzDrawerModule } from 'ng-zorro-antd/drawer';
|
||||
export const SHARED_ZORRO_MODULES = [
|
||||
NzButtonModule,
|
||||
NzGridModule,
|
||||
@ -87,5 +88,6 @@ export const SHARED_ZORRO_MODULES = [
|
||||
NzAffixModule,
|
||||
NzTypographyModule,
|
||||
NzSwitchModule,
|
||||
NzImageModule
|
||||
NzImageModule,
|
||||
NzDrawerModule
|
||||
];
|
||||
|
||||
@ -7,59 +7,64 @@
|
||||
@import './styles/theme';
|
||||
|
||||
.icon {
|
||||
width : 18px;
|
||||
fill : currentColor;
|
||||
overflow : hidden;
|
||||
font-size: 18px !important;
|
||||
color : #ffffff;
|
||||
margin-right: 10px;
|
||||
width : 18px;
|
||||
fill : currentColor;
|
||||
overflow : hidden;
|
||||
font-size : 18px !important;
|
||||
color : #ffffff;
|
||||
margin-right: 10px;
|
||||
}
|
||||
|
||||
@layout-gutter: 8px;
|
||||
|
||||
/* 全局滚动条美化 */
|
||||
*::-webkit-scrollbar {
|
||||
width : (@layout-gutter);
|
||||
height: (@layout-gutter);
|
||||
width : (@layout-gutter);
|
||||
height: (@layout-gutter);
|
||||
}
|
||||
|
||||
*::-webkit-scrollbar-thumb {
|
||||
background : #d9d9d9;
|
||||
cursor : pointer;
|
||||
border-radius: (@layout-gutter) / 2;
|
||||
background : #d9d9d9;
|
||||
cursor : pointer;
|
||||
border-radius: (@layout-gutter) / 2;
|
||||
}
|
||||
|
||||
/* 全局隐藏input-number上下箭头 谷歌*/
|
||||
input::-webkit-outer-spin-button,
|
||||
input::-webkit-inner-spin-button {
|
||||
-webkit-appearance: none;
|
||||
-webkit-appearance: none;
|
||||
}
|
||||
|
||||
/* 全局隐藏input-number上下箭头 火狐*/
|
||||
input[type="number"] {
|
||||
-moz-appearance: textfield;
|
||||
-moz-appearance: textfield;
|
||||
}
|
||||
|
||||
.alain-pro__sider-logo {
|
||||
padding-left: 12px;
|
||||
padding-left: 12px;
|
||||
}
|
||||
|
||||
.break-word-all {
|
||||
word-break: break-all;
|
||||
word-wrap : break-word;
|
||||
word-break: break-all;
|
||||
word-wrap : break-word;
|
||||
}
|
||||
|
||||
st {
|
||||
.block-td {
|
||||
.ant-divider-vertical {
|
||||
display: none;
|
||||
margin: 0;
|
||||
border-left: none;
|
||||
}
|
||||
|
||||
st-td {
|
||||
span>a {
|
||||
display: block;
|
||||
}
|
||||
.block-td {
|
||||
.ant-divider-vertical {
|
||||
display : none;
|
||||
margin : 0;
|
||||
border-left: none;
|
||||
}
|
||||
|
||||
st-td {
|
||||
span>a {
|
||||
display: block;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
nz-range-picker {
|
||||
width: 100%;
|
||||
}
|
||||
@ -1,80 +1,112 @@
|
||||
|
||||
.alain-pro__sider-logo h1{
|
||||
.alain-pro__sider-logo h1 {
|
||||
font-size: 15px !important;
|
||||
}
|
||||
.page-header__title{
|
||||
|
||||
.page-header__title {
|
||||
font-size: 14px !important;
|
||||
}
|
||||
.alain-pro__body{
|
||||
|
||||
.alain-pro__body {
|
||||
margin: 12px 12px 0px !important;
|
||||
}
|
||||
.alain-pro__page-header-content{
|
||||
|
||||
.alain-pro__page-header-content {
|
||||
margin: 8px 8px 0 !important;
|
||||
}
|
||||
|
||||
.ant-card {
|
||||
margin-bottom: 8px !important;
|
||||
}
|
||||
.ant-table tfoot>tr>td, .ant-table tfoot>tr>th, .ant-table-tbody>tr>td, .ant-table-thead>tr>th{
|
||||
|
||||
.ant-table tfoot>tr>td,
|
||||
.ant-table tfoot>tr>th,
|
||||
.ant-table-tbody>tr>td,
|
||||
.ant-table-thead>tr>th {
|
||||
padding: 6px 10px;
|
||||
}
|
||||
.alain-pro__page-header-wrapper{
|
||||
|
||||
.alain-pro__page-header-wrapper {
|
||||
margin: 0 !important
|
||||
}
|
||||
.alain-pro__menu-icon{
|
||||
margin: 3px 5px 0 0 ;
|
||||
|
||||
.alain-pro__menu-icon {
|
||||
margin : 3px 5px 0 0;
|
||||
font-size: 14px !important;
|
||||
}
|
||||
|
||||
.sf__compact .ant-form-item {
|
||||
margin-top: 4px !important;
|
||||
margin-top : 4px !important;
|
||||
margin-bottom: 4px !important;
|
||||
}
|
||||
.body-box{
|
||||
|
||||
.body-box {
|
||||
max-width: 760px !important;
|
||||
.box-content{
|
||||
|
||||
.box-content {
|
||||
height: 77% !important;
|
||||
}
|
||||
}
|
||||
.login-logo{
|
||||
width:250px !important;
|
||||
|
||||
.login-logo {
|
||||
width : 250px !important;
|
||||
height: 100% !important;
|
||||
}
|
||||
.ant-tabs-tab-btn{
|
||||
|
||||
.ant-tabs-tab-btn {
|
||||
font-size: 18px !important;
|
||||
}
|
||||
.login-box-content{
|
||||
|
||||
.login-box-content {
|
||||
max-width: 300px !important;
|
||||
height: 100% !important;
|
||||
padding: 58px 0 38px !important;
|
||||
height : 100% !important;
|
||||
padding : 58px 0 38px !important;
|
||||
}
|
||||
|
||||
.total-footer {
|
||||
bottom: 10px !important;
|
||||
}
|
||||
.ant-layout-header{
|
||||
height: 44px;
|
||||
padding: 0 25px;
|
||||
|
||||
.ant-layout-header {
|
||||
height : 44px;
|
||||
padding : 0 25px;
|
||||
line-height: 44px;
|
||||
img{
|
||||
|
||||
img {
|
||||
width: 22px
|
||||
}
|
||||
.title{
|
||||
|
||||
.title {
|
||||
font-size: 14px;
|
||||
}
|
||||
}
|
||||
.ant-tabs-tab-btn{
|
||||
|
||||
.ant-tabs-tab-btn {
|
||||
font-size: 14px !important;
|
||||
}
|
||||
.ant-row{
|
||||
margin-left: 0px !important;
|
||||
|
||||
.ant-row {
|
||||
margin-left : 0px !important;
|
||||
margin-right: 0px !important;
|
||||
}
|
||||
h2{
|
||||
|
||||
h2 {
|
||||
font-size: 16px !important;
|
||||
}
|
||||
.sv__container{
|
||||
|
||||
.sv__container {
|
||||
padding: 0 !important;
|
||||
}
|
||||
|
||||
.alain-pro__menu-side .alain-pro__main .affix {
|
||||
top: 0 !important;
|
||||
top : 0 !important;
|
||||
left: 215px !important;
|
||||
}
|
||||
|
||||
.table-box {
|
||||
margin: -12px -12px 0 !important;
|
||||
|
||||
.ant-tabs-tab {
|
||||
padding: 12px 0px !important;
|
||||
margin : 0 0 0 16px !important;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user