车辆对接
This commit is contained in:
		| @ -1,7 +1,7 @@ | ||||
| <!-- | ||||
|  * @Author: your name | ||||
|  * @Date: 2021-12-03 11:10:14 | ||||
|  * @LastEditTime: 2021-12-15 14:25:34 | ||||
|  * @LastEditTime: 2021-12-20 17:11:27 | ||||
|  * @LastEditors: Please set LastEditors | ||||
|  * @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE | ||||
|  * @FilePath: \tms-obc-web\src\app\routes\supply-management\components\vehicle\vehicle.component.html | ||||
| @ -47,7 +47,7 @@ | ||||
|     #st | ||||
|     [bordered]="true" | ||||
|     [scroll]="{ x: '2000px' }" | ||||
|     [data]="service.$api_get_bulkPage_list" | ||||
|     [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' } }" | ||||
| @ -55,8 +55,27 @@ | ||||
|     [loadingDelay]="500" | ||||
|     [loading]="service.http.loading" | ||||
|     > | ||||
|       <ng-template st-row="goodsId" let-item let-index="index"> | ||||
|         <a [routerLink]="'/order-management/bulk-detail/'+item.id">{{item.id}}</a> | ||||
|     <ng-template st-row="billCode" let-item let-index="index"> | ||||
|       <a [routerLink]="'/waybill-management/vehicle-detail/'+item.id">{{item.wayBillCode}}</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 }} | ||||
|           <span *ngIf="data.paymentStatus" style="color: #f59a63">{{ data.paymentStatus }}</span> | ||||
|         </p> | ||||
|       </div> | ||||
|     </ng-template> | ||||
|       <!-- <ng-template st-row="externalSn" let-item let-index="index"> | ||||
|         <span class="mr-xs">{{111111}}</span> | ||||
| @ -93,6 +112,14 @@ | ||||
|     [page]="{ show: true, showSize: true, pageSizes: [10, 20, 30, 50, 100, 200, 300, 500, 1000] }" | ||||
|     [loadingDelay]="500" | ||||
|   > | ||||
|   <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> | ||||
|  | ||||
| @ -10,6 +10,7 @@ import { ConfirReceiptComponent } from '../../modal/bulk/confir-receipt/confir-r | ||||
| import { SureDepartComponent } from '../../modal/bulk/sure-depart/sure-depart.component'; | ||||
| import { SureArriveComponent } from '../../modal/bulk/sure-arrive/sure-arrive.component'; | ||||
| import { of } from 'rxjs'; | ||||
| import { ShipperBaseService } from '@shared'; | ||||
|  | ||||
|  | ||||
| @Component({ | ||||
| @ -82,7 +83,7 @@ export class OrderManagementBulkComponent implements OnInit { | ||||
|     count: 0, | ||||
|   }, | ||||
|   ]; | ||||
|   constructor(public service: OrderManagementService, private modal: NzModalService) { } | ||||
|   constructor(public service: OrderManagementService, private modal: NzModalService,public service2: ShipperBaseService) { } | ||||
|  | ||||
|   /** | ||||
|  * 查询参数 | ||||
| @ -112,37 +113,37 @@ export class OrderManagementBulkComponent implements OnInit { | ||||
|     this.schema = { | ||||
|       properties: { | ||||
|         _$expand: { type: 'boolean', ui: { hidden: true } }, | ||||
|         no: { | ||||
|         billCode: { | ||||
|           type: 'string', | ||||
|           title: '订单号', | ||||
|           title: '订单号' | ||||
|         }, | ||||
|         no2: { | ||||
|         resourceCode: { | ||||
|           type: 'string', | ||||
|           title: '货源编号' | ||||
|         }, | ||||
|         no1: { | ||||
|         shipperAppUserId: { | ||||
|           type: 'string', | ||||
|           title: '货主' | ||||
|         }, | ||||
|         no3: { | ||||
|         loadingPlace: { | ||||
|           type: 'string', | ||||
|           title: '装货地', | ||||
|           ui: { | ||||
|             visibleIf: { | ||||
|               _$expand: (value: boolean) => value, | ||||
|             }, | ||||
|               _$expand: (value: boolean) => value | ||||
|             } | ||||
|           } | ||||
|         }, | ||||
|         no4: { | ||||
|         dischargePlace: { | ||||
|           type: 'string', | ||||
|           title: '卸货地', | ||||
|           ui: { | ||||
|             visibleIf: { | ||||
|               _$expand: (value: boolean) => value, | ||||
|             }, | ||||
|               _$expand: (value: boolean) => value | ||||
|             } | ||||
|           } | ||||
|         }, | ||||
|         brandId: { | ||||
|         driverId: { | ||||
|           title: '承运司机', | ||||
|           type: 'string', | ||||
|           ui: { | ||||
| @ -153,27 +154,43 @@ export class OrderManagementBulkComponent implements OnInit { | ||||
|             onSearch: (q: any) => { | ||||
|               if (!!q) { | ||||
|                 return this.service | ||||
|                   .request(this.service.$api_get_getDriverInfo, { keyword: q, | ||||
|                   model: 1, type: 1 }) | ||||
|                   .pipe(map((res) => (res as any[]).map((i) => ({ label: i.name, value: i.id } as SFSchemaEnum)))) | ||||
|                   .request(this.service.$api_get_getDriverInfo, { keyword: q, model: 1, type: 1 }) | ||||
|                   .pipe(map(res => (res as any[]).map(i => ({ label: i.name, value: i.id } as SFSchemaEnum)))) | ||||
|                   .toPromise(); | ||||
|               } else { | ||||
|                 return of([]); | ||||
|               } | ||||
|             }, | ||||
|             visibleIf: { | ||||
|               expand: (value: boolean) => value, | ||||
|               _$expand: (value: boolean) => value | ||||
|             } | ||||
|           } as SFSelectWidgetSchema | ||||
|         }, | ||||
|           } as SFSelectWidgetSchema, | ||||
|         }, | ||||
|         no9: { | ||||
|           type: 'string', | ||||
|  | ||||
|         carNo: {  | ||||
|           title: '车牌号', | ||||
|           type: 'string', | ||||
|           ui: { | ||||
|             widget: 'select', | ||||
|             serverSearch: true, | ||||
|             searchDebounceTime: 300, | ||||
|             searchLoadingText: '搜索中...', | ||||
|             onSearch: (q: any) => { | ||||
|               if (!!q) { | ||||
|                 return this.service | ||||
|                   .request(this.service.$api_get_getCarLicenseListByCarNo, { | ||||
|                     carNo: q | ||||
|                   }) | ||||
|                   .pipe(map((res: any[]) => (res as any[]).map((i) => ({ label: i.carNo, value: i.carNo } as SFSchemaEnum)))) | ||||
|                   .toPromise(); | ||||
|               } else { | ||||
|                 return of([]); | ||||
|               } | ||||
|             }, | ||||
|             visibleIf: { | ||||
|               _$expand: (value: boolean) => value, | ||||
|             }, | ||||
|           } | ||||
|           } as SFSelectWidgetSchema, | ||||
|          }, | ||||
|          payeeId: { | ||||
|           title: '车队长', | ||||
| @ -195,22 +212,17 @@ export class OrderManagementBulkComponent implements OnInit { | ||||
|               } | ||||
|             }, | ||||
|             visibleIf: { | ||||
|               expand: (value: boolean) => value, | ||||
|               _$expand: (value: boolean) => value, | ||||
|             }, | ||||
|           } as SFSelectWidgetSchema, | ||||
|         },  | ||||
|         sex: { | ||||
|         paymentstatus: { | ||||
|           title: '支付状态', | ||||
|           type: 'string', | ||||
|           default: 0, | ||||
|           enum: [ | ||||
|             { label: '未知', value: 0 }, | ||||
|             { label: '男', value: 1 }, | ||||
|             { label: '女', value: 2 }, | ||||
|             { label: '保密', value: 3 }, | ||||
|           ], | ||||
|           ui: { | ||||
|             widget: 'select', | ||||
|             widget: 'dict-select', | ||||
|             params: { dictKey: 'payment:status' }, | ||||
|             containAllLable:true, | ||||
|             visibleIf: { | ||||
|               _$expand: (value: boolean) => value, | ||||
|             }, | ||||
| @ -224,24 +236,28 @@ export class OrderManagementBulkComponent implements OnInit { | ||||
|             mode: 'range', | ||||
|             format: 'yyyy-MM-dd', | ||||
|             visibleIf: { | ||||
|               _$expand: (value: boolean) => value, | ||||
|               _$expand: (value: boolean) => value | ||||
|             } | ||||
|           } as SFDateWidgetSchema | ||||
|         }, | ||||
|           } as SFDateWidgetSchema, | ||||
|         }, | ||||
|         appId: { | ||||
|         isRiskSheet: { | ||||
|           type: 'string', | ||||
|           title: '是否风险单', | ||||
|           default: '0', | ||||
|           enum: [ | ||||
|             { label: '全部', value: '0' }, | ||||
|             { label: '是', value: '1' }, | ||||
|             { label: '否', value: '2' } | ||||
|           ], | ||||
|           ui: { | ||||
|             widget: 'select', | ||||
|             placeholder: '请选择', | ||||
|             visibleIf: { | ||||
|               _$expand: (value: boolean) => value, | ||||
|             }, | ||||
|             allowClear: true, | ||||
|             asyncData: () => this.getCatalogueMember(), | ||||
|           }, | ||||
|         }, | ||||
|         appId2: { | ||||
|         enterpriseInfoName: { | ||||
|           type: 'string', | ||||
|           title: '网络货运人', | ||||
|           ui: { | ||||
| @ -251,23 +267,10 @@ export class OrderManagementBulkComponent implements OnInit { | ||||
|               _$expand: (value: boolean) => value, | ||||
|             }, | ||||
|             allowClear: true, | ||||
|             asyncData: () => this.getCatalogueMember(), | ||||
|             asyncData: () => this.service2.getNetworkFreightForwarder(), | ||||
|           }, | ||||
|         }, | ||||
|         appId3: { | ||||
|           type: 'string', | ||||
|           title: '结算依据', | ||||
|           ui: { | ||||
|             widget: 'dict-select', | ||||
|             params: { dictKey: 'goodresource:settlement:type' }, | ||||
|             containAllLable:true, | ||||
|             placeholder: '请选择', | ||||
|             visibleIf: { | ||||
|               _$expand: (value: boolean) => value, | ||||
|             }, | ||||
|           }, | ||||
|         }, | ||||
|         appId4: { | ||||
|         goodsName: { | ||||
|           type: 'string', | ||||
|           title: '货物名称', | ||||
|           ui: { | ||||
| @ -294,7 +297,7 @@ export class OrderManagementBulkComponent implements OnInit { | ||||
|           } as SFSelectWidgetSchema, | ||||
|         }, | ||||
|       }, | ||||
|       type: 'object', | ||||
|       type: 'object' | ||||
|     }; | ||||
|     this.ui = { '*': { spanLabelFixed: 110, grid: { span: 8, gutter: 4 } } }; | ||||
|   } | ||||
| @ -351,71 +354,70 @@ export class OrderManagementBulkComponent implements OnInit { | ||||
|         title: '订单号', | ||||
|         width: '100px', | ||||
|         className: 'text-center', | ||||
|         render: 'goodsId' | ||||
|         render: 'billCode' | ||||
|       }, | ||||
|       { | ||||
|         title: '运费明细', | ||||
|         width: '100px', | ||||
|         index: 'externalSn', | ||||
|         className: 'text-center', | ||||
|         render: 'mybidDetailInfo', | ||||
|       }, | ||||
|       { title: '网络货运人', index: 'externalSn', width: '120px', className: 'text-center' }, | ||||
|       { title: '托运人', index: 'externalSn', width: '120px', className: 'text-center' }, | ||||
|       { title: '关联运单号', index: 'externalSn', width: '120px', className: 'text-center' }, | ||||
|       { title: '货源编号', index: 'externalSn', width: '120px', className: 'text-center' }, | ||||
|       { title: '装货地', index: 'linkUrl', width: '120px', className: 'text-center' }, | ||||
|       { title: '网络货运人', index: 'enterpriseInfoName', width: '120px', className: 'text-center' }, | ||||
|       { title: '托运人', index: 'enterpriseProjectName', width: '120px', className: 'text-center' }, | ||||
|       { title: '关联运单号', index: 'wayBillCode', width: '120px', className: 'text-center' }, | ||||
|       { title: '货源编号', index: 'resourceCode', width: '120px', className: 'text-center' }, | ||||
|       { title: '装货地', index: 'loadingAddressArr', width: '120px', className: 'text-center' }, | ||||
|       { | ||||
|         title: '卸货地', | ||||
|         className: 'text-center', | ||||
|         width: '120px', | ||||
|         index: 'unloadingAddressArr' | ||||
|       }, | ||||
|       { | ||||
|         title: '货物信息', | ||||
|         className: 'text-center', | ||||
|         width: '120px', | ||||
|       },  | ||||
|       { | ||||
|         render: 'goodsName' | ||||
|       }, { | ||||
|         title: '运费单价', | ||||
|         className: 'text-center', | ||||
|         width: '120px', | ||||
|         index: 'freightPrice' | ||||
|       }, | ||||
|       { | ||||
|         title: '接单数量', | ||||
|         className: 'text-center', | ||||
|         width: '120px', | ||||
|         index: 'goodsNumber', | ||||
|         width: '100px', | ||||
|       }, | ||||
|       { | ||||
|         title: '结算重量', | ||||
|         className: 'text-center', | ||||
|         width: '120px', | ||||
|       }, | ||||
|       { | ||||
|         title: '接单重量', | ||||
|         className: 'text-center', | ||||
|         width: '120px', | ||||
|         index: 'settlementWeight', | ||||
|         width: '100px', | ||||
|       }, | ||||
|       { | ||||
|         title: '承运司机', | ||||
|         className: 'text-center', | ||||
|         width: '120px', | ||||
|         render: 'feiong' | ||||
|         index: 'driverName', | ||||
|         width: '100px', | ||||
|       }, | ||||
|       { | ||||
|         title: '收款人', | ||||
|         className: 'text-center', | ||||
|         width: '120px', | ||||
|         index: 'payeeName', | ||||
|         width: '100px', | ||||
|       }, | ||||
|       { | ||||
|         title: '装卸货时间', | ||||
|         width: '170px', | ||||
|         className: 'text-center', | ||||
|         width: '120px', | ||||
|         render: 'enStatusStr27878' | ||||
|         render: 'loadingTime' | ||||
|       }, | ||||
|       { | ||||
|         title: '创建时间', | ||||
|         className: 'text-center', | ||||
|         width: '120px', | ||||
|     | ||||
|         index: 'createTime', | ||||
|       }, | ||||
|       { | ||||
|         title: '操作', | ||||
| @ -472,7 +474,7 @@ export class OrderManagementBulkComponent implements OnInit { | ||||
|         className: 'text-center', | ||||
|         index: 'three',  | ||||
|       }, | ||||
|       { title: '状态', index: 'externalSn',  className: 'text-center' }, | ||||
|       { title: '状态', render: 'externalSn',  className: 'text-center' }, | ||||
|       { | ||||
|         title: '操作', | ||||
|         fixed: 'right', | ||||
| @ -485,6 +487,7 @@ export class OrderManagementBulkComponent implements OnInit { | ||||
|           { | ||||
|             text: '撤销', | ||||
|             click: (_record) => this.audit(_record), | ||||
|            iif: item => item.externalSn === '1' || item.externalSn === 1, | ||||
|           }, | ||||
|         ], | ||||
|       }, | ||||
| @ -635,7 +638,8 @@ export class OrderManagementBulkComponent implements OnInit { | ||||
|       nzWidth: '50%', | ||||
|       nzContent: SureDepartComponent, | ||||
|       nzComponentParams: { | ||||
|         i: item | ||||
|         i: item, | ||||
|         Status: 1 | ||||
|       }, | ||||
|       nzFooter: null | ||||
|     }); | ||||
|  | ||||
| @ -1,7 +1,7 @@ | ||||
| <!-- | ||||
|  * @Author: your name | ||||
|  * @Date: 2021-12-03 11:10:14 | ||||
|  * @LastEditTime: 2021-12-20 09:56:30 | ||||
|  * @LastEditTime: 2021-12-20 17:07:17 | ||||
|  * @LastEditors: Please set LastEditors | ||||
|  * @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE | ||||
|  * @FilePath: \tms-obc-web\src\app\routes\supply-management\components\vehicle\vehicle.component.html | ||||
| @ -47,23 +47,39 @@ | ||||
|     #st | ||||
|     [bordered]="true" | ||||
|     [scroll]="{ x: '2000px' }" | ||||
|     [data]="service.$api_get_getWholeBillDetail" | ||||
|     [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] }" | ||||
|     [loadingDelay]="500" | ||||
|     [loading]="service.http.loading" | ||||
|   | ||||
|     > | ||||
|     <ng-template st-row="billCode" let-item let-index="index"> | ||||
|       <a [routerLink]="'/waybill-management/vehicle-detail/'+item.id">{{item.wayBillCode}}</a> | ||||
|       <div> | ||||
|         <span *ngIf="item?.wayBillStatus == 1">待接单</span> | ||||
|         <span *ngIf="item?.wayBillStatus == 2">待发车</span> | ||||
|         <span *ngIf="item?.wayBillStatus == 3">运输中</span> | ||||
|         <span *ngIf="item?.wayBillStatus == 4">待签收</span> | ||||
|         <span *ngIf="item?.wayBillStatus == 5">已完成</span> | ||||
|         <span *ngIf="item?.wayBillStatus == 6">已取消</span> | ||||
|         <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 *ngFor="let i of item?.mybidDetailInfo"> | ||||
|           <div></div> | ||||
|         </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 }} | ||||
|             <span *ngIf="data.paymentStatus" style="color: #f59a63">{{ data.paymentStatus }}</span> | ||||
|           </p> | ||||
|         </div> | ||||
|       </ng-template> | ||||
|     <ng-template st-row="billExpenseDetailVOList" let-item let-index="index"> | ||||
| @ -71,6 +87,22 @@ | ||||
|         <span >{{i?.costName}}:{{i?.price}}</span> | ||||
|       </div> | ||||
|     </ng-template> | ||||
|     <ng-template st-row="driverName" let-item let-index="index"> | ||||
|     <div> | ||||
|       {{item?.driverName}} | ||||
|     </div> | ||||
|     <div> | ||||
|       {{item?.driverPhone}} | ||||
|     </div> | ||||
|     </ng-template> | ||||
|     <ng-template st-row="payeeName" let-item let-index="index"> | ||||
|     <div> | ||||
|       {{item?.payeeName}} | ||||
|     </div> | ||||
|     <div> | ||||
|       {{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> | ||||
| @ -102,21 +134,23 @@ | ||||
| </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 | ||||
|     multiSort | ||||
|     size="small" | ||||
|     [bordered]="true" | ||||
|     [data]="service.$api_get_getWholeBillDetail" | ||||
|     [data]="service.$api_get_listChangeApply" | ||||
|     [columns]="columnsFloat" | ||||
|     [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] }" | ||||
|     [req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, params: changeParams }" | ||||
|     [res]="{ reName: { list: 'data', total: 'data.total' } }" | ||||
|     [loadingDelay]="500" | ||||
|   > | ||||
|      | ||||
|   > | ||||
|   <ng-template st-row="order" let-item let-index="index"> | ||||
|     {{ index + 1 }} | ||||
|   </ng-template> | ||||
|   </st> | ||||
|   </ng-container> | ||||
|   <ng-template #nzModalFooter> | ||||
| @ -133,11 +167,10 @@ | ||||
|     multiSort | ||||
|     size="small" | ||||
|     [bordered]="true" | ||||
|     [data]="datass" | ||||
|     [data]="service.$api_get_getChangeRecordWholeDetail" | ||||
|     [columns]="columnsFloatView" | ||||
|     [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] }" | ||||
|     [req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, params: changeViewParams }" | ||||
|     [res]="{ reName: { list: 'data', total: 'data.total' } }" | ||||
|     [loadingDelay]="500" | ||||
|   > | ||||
|   </st> | ||||
|  | ||||
| @ -26,6 +26,8 @@ export class OrderManagementVehicleComponent implements OnInit { | ||||
|   isVisibleView = false; | ||||
|   isVisibleEvaluate = false; | ||||
|   isVisible = false; | ||||
|   changeId: any;       // 主页面查看运费变更记录id - 用于运费变更记录 | ||||
|   changeViewId: any;  // 查看运费变更记录id - 用于查看 | ||||
|   _$expand = false; | ||||
|   @ViewChild('st') private readonly st!: STComponent; | ||||
|   @ViewChild('stFloat') private readonly stFloat!: STComponent; | ||||
| @ -90,6 +92,16 @@ export class OrderManagementVehicleComponent implements OnInit { | ||||
|       ...this.sf?.value, | ||||
|     }; | ||||
|   } | ||||
|   get changeParams() { | ||||
|     return { | ||||
|       id: this.changeId | ||||
|     }; | ||||
|   } | ||||
|   get changeViewParams() { | ||||
|     return { | ||||
|       id: this.changeViewId | ||||
|     }; | ||||
|   } | ||||
|   get selectedRows() { | ||||
|     return this.st?.list.filter((item) => item.checked) || []; | ||||
|   } | ||||
| @ -314,33 +326,34 @@ export class OrderManagementVehicleComponent implements OnInit { | ||||
|         title: '运费明细', | ||||
|         width: '100px', | ||||
|         className: 'text-center', | ||||
|         render: 'billExpenseDetailVOList', | ||||
|         render: 'mybidDetailInfo', | ||||
|       }, | ||||
|       { title: '网络货运人', index: 'enterpriseInfoId', width: '120px', className: 'text-center' }, | ||||
|       { title: '货主', index: 'shipperAppUserId', width: '120px', className: 'text-center' }, | ||||
|       { title: '关联运单号', index: 'linkUrl', width: '120px', className: 'text-center' }, | ||||
|       { title: '网络货运人', index: 'enterpriseInfoName', width: '120px', className: 'text-center' }, | ||||
|       { title: '货主', index: 'shipperAppUserName', width: '120px', className: 'text-center' }, | ||||
|       { title: '关联运单号', index: 'wayBillCode', width: '120px', className: 'text-center' }, | ||||
|       { title: '货源编号', index: 'resourceCode', width: '120px', className: 'text-center' }, | ||||
|       { title: '装货地', index: 'loadingPlace', width: '120px', className: 'text-center' }, | ||||
|       { title: '装货地', index: 'loadingAddressArr', width: '120px', className: 'text-center' }, | ||||
|       { | ||||
|         title: '卸货地', | ||||
|         className: 'text-center', | ||||
|         width: '120px', | ||||
|         index: 'dischargePlace' | ||||
|         index: 'unloadingAddressArr' | ||||
|       }, | ||||
|       { | ||||
|         title: '货物信息', | ||||
|         className: 'text-center', | ||||
|         width: '120px', | ||||
|         render: 'goodsName' | ||||
|       }, { | ||||
|         title: '承运司机', | ||||
|         className: 'text-center', | ||||
|         width: '120px', | ||||
|         index: 'driverId' | ||||
|         render: 'driverName' | ||||
|       }, | ||||
|       { | ||||
|         title: '收款人', | ||||
|         className: 'text-center', | ||||
|         index: 'payeeId', | ||||
|         render: 'payeeName', | ||||
|         width: '100px', | ||||
|       }, | ||||
|       { | ||||
| @ -366,7 +379,7 @@ export class OrderManagementVehicleComponent implements OnInit { | ||||
|           }, | ||||
|           { | ||||
|             text: '运费变更记录', | ||||
|             click: (_record) => this.OpenPrice(), | ||||
|             click: (_record) => this.OpenPrice(_record), | ||||
|           }, | ||||
|           { | ||||
|             text: '变更运费', | ||||
| @ -397,19 +410,19 @@ export class OrderManagementVehicleComponent implements OnInit { | ||||
|       { | ||||
|         title: '序号', | ||||
|         className: 'text-center', | ||||
|         index: 'one',  | ||||
|         render: 'order' | ||||
|       }, | ||||
|       { | ||||
|         title: '操作时间', | ||||
|         className: 'text-center', | ||||
|         index: 'two',  | ||||
|         index: 'applyTime' | ||||
|       }, | ||||
|       { | ||||
|         title: '操作人', | ||||
|         className: 'text-center', | ||||
|         index: 'three',  | ||||
|         index: 'applyUserName' | ||||
|       }, | ||||
|       { title: '状态', index: 'externalSn',  className: 'text-center' }, | ||||
|       { title: '状态',     index: 'handleStatus',  className: 'text-center' }, | ||||
|       { | ||||
|         title: '操作', | ||||
|         fixed: 'right', | ||||
| @ -419,9 +432,13 @@ export class OrderManagementVehicleComponent implements OnInit { | ||||
|             text: '查看', | ||||
|             click: (_record) => this.FloatView(_record), | ||||
|           }, | ||||
|           // { | ||||
|           //   text: '查看协议', | ||||
|           //   click: (_record, _modal, _instance) => this.view(_record) | ||||
|           // }, | ||||
|           { | ||||
|             text: '撤销', | ||||
|             click: (_record) => this.audit(_record), | ||||
|             click: (_record) => this.revoke(_record), | ||||
|           }, | ||||
|         ], | ||||
|       }, | ||||
| @ -520,7 +537,9 @@ export class OrderManagementVehicleComponent implements OnInit { | ||||
|   handleOK() { | ||||
|      | ||||
|   } | ||||
|   OpenPrice() { | ||||
|   OpenPrice(value: any) { | ||||
|     console.log(value) | ||||
|     this.changeId = value.id; | ||||
|     this.isVisible = true | ||||
|   } | ||||
|    /** | ||||
| @ -528,6 +547,8 @@ export class OrderManagementVehicleComponent implements OnInit { | ||||
|   */ | ||||
|   FloatView(item: any) { | ||||
|     console.log(item) | ||||
|     console.log() | ||||
|     this.changeViewId = item.id; | ||||
|     this.isVisibleView = true | ||||
|   } | ||||
|    /** | ||||
| @ -573,7 +594,8 @@ export class OrderManagementVehicleComponent implements OnInit { | ||||
|         nzWidth: '50%', | ||||
|         nzContent: VehicleSureDepartComponent, | ||||
|         nzComponentParams: { | ||||
|           i: item | ||||
|           i: item, | ||||
|          Status: 2 | ||||
|         }, | ||||
|         nzFooter: null | ||||
|       }); | ||||
| @ -590,4 +612,19 @@ export class OrderManagementVehicleComponent implements OnInit { | ||||
|         nzFooter: null | ||||
|       }); | ||||
|     } | ||||
|     revoke(item: any) { | ||||
|       this.modal.confirm({ | ||||
|         nzTitle: '是否确定立即撤销费用变更!</i>', | ||||
|         nzOnOk: () =>  | ||||
|         this.service.request(this.service.$api_get_revokeChangeRecord, { id: item.id}).subscribe((res) => { | ||||
|           console.log(res) | ||||
|           if(res) { | ||||
|             this.service.msgSrv.success('撤销成功!') | ||||
|             this.stFloat.reload() | ||||
|           } else { | ||||
|             this.service.msgSrv.error(res.msg) | ||||
|           } | ||||
|         }) | ||||
|       }); | ||||
|     } | ||||
| } | ||||
|  | ||||
| @ -2,7 +2,7 @@ import { preloaderFinished } from '@delon/theme'; | ||||
| /* | ||||
|  * @Author: your name | ||||
|  * @Date: 2021-12-14 14:03:07 | ||||
|  * @LastEditTime: 2021-12-14 16:34:52 | ||||
|  * @LastEditTime: 2021-12-20 16:13:16 | ||||
|  * @LastEditors: Please set LastEditors | ||||
|  * @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE | ||||
|  * @FilePath: \tms-obc-web\src\app\routes\order-management\modal\bulk\update-freight\update-freight.component.ts | ||||
| @ -34,6 +34,8 @@ import { Observable, Observer } from 'rxjs'; | ||||
| export class SureDepartComponent implements OnInit { | ||||
|   record: any = {}; | ||||
|   i: any; | ||||
|   Status: any; | ||||
|  | ||||
|   data: any ={ | ||||
|     place1: '', | ||||
|     place2: '' | ||||
|  | ||||
| @ -2,7 +2,7 @@ import { preloaderFinished } from '@delon/theme'; | ||||
| /* | ||||
|  * @Author: your name | ||||
|  * @Date: 2021-12-14 14:03:07 | ||||
|  * @LastEditTime: 2021-12-14 17:38:20 | ||||
|  * @LastEditTime: 2021-12-20 16:21:19 | ||||
|  * @LastEditors: Please set LastEditors | ||||
|  * @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE | ||||
|  * @FilePath: \tms-obc-web\src\app\routes\order-management\modal\bulk\update-freight\update-freight.component.ts | ||||
| @ -34,6 +34,7 @@ import { Observable, Observer } from 'rxjs'; | ||||
| export class VehicleSureArriveComponent implements OnInit { | ||||
|   record: any = {}; | ||||
|   i: any; | ||||
|   Status: any; | ||||
|   data: any ={ | ||||
|     place1: '', | ||||
|     place2: '' | ||||
|  | ||||
| @ -1,21 +1,21 @@ | ||||
| <!-- | ||||
|  * @Author: your name | ||||
|  * @Date: 2021-12-14 15:53:03 | ||||
|  * @LastEditTime: 2021-12-14 16:19:03 | ||||
|  * @LastEditTime: 2021-12-20 16:28:39 | ||||
|  * @LastEditors: Please set LastEditors | ||||
|  * @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE | ||||
|  * @FilePath: \tms-obc-web\src\app\routes\order-management\modal\bulk\sure-depart\sure-depart.component.html | ||||
| --> | ||||
| <sf #sf mode="edit" [schema]="schema" [ui]="ui" [formData]="i" button="none"> | ||||
|   <ng-template sf-template="no2" let-me let-ui="ui" let-schema="schema"> | ||||
|   <ng-template sf-template="weight" let-me let-ui="ui" let-schema="schema"> | ||||
|     <div style="display: flex;"> | ||||
|      <nz-input-number [(ngModel)]="data.place1" [nzMin]="1" [nzMax]="10" [nzStep]="1"></nz-input-number> | ||||
|      <nz-input-number [(ngModel)]="data.weight" [nzMin]="1" [nzMax]="999999" [nzStep]="1"></nz-input-number> | ||||
|      <div class="left_btn">吨</div> | ||||
|     </div> | ||||
|    </ng-template> | ||||
|   <ng-template sf-template="no3" let-me let-ui="ui" let-schema="schema"> | ||||
|   <ng-template sf-template="volume" let-me let-ui="ui" let-schema="schema"> | ||||
|     <div style="display: flex;"> | ||||
|      <nz-input-number [(ngModel)]="data.place2" [nzMin]="1" [nzMax]="10" [nzStep]="1"></nz-input-number> | ||||
|      <nz-input-number [(ngModel)]="data.volume" [nzMin]="1" [nzMax]="999999" [nzStep]="1"></nz-input-number> | ||||
|      <div class="left_btn">方</div> | ||||
|     </div> | ||||
|    </ng-template> | ||||
|  | ||||
| @ -2,7 +2,7 @@ import { preloaderFinished } from '@delon/theme'; | ||||
| /* | ||||
|  * @Author: your name | ||||
|  * @Date: 2021-12-14 14:03:07 | ||||
|  * @LastEditTime: 2021-12-14 16:34:52 | ||||
|  * @LastEditTime: 2021-12-20 16:54:21 | ||||
|  * @LastEditors: Please set LastEditors | ||||
|  * @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE | ||||
|  * @FilePath: \tms-obc-web\src\app\routes\order-management\modal\bulk\update-freight\update-freight.component.ts | ||||
| @ -20,11 +20,13 @@ import { | ||||
|   SFUISchema, | ||||
|   SFUploadWidgetSchema | ||||
| } from '@delon/form'; | ||||
| import { apiConf } from '@conf/api.conf'; | ||||
| import { _HttpClient } from '@delon/theme'; | ||||
| import { NzMessageService } from 'ng-zorro-antd/message'; | ||||
| import { NzModalRef } from 'ng-zorro-antd/modal'; | ||||
| import { SupplyManagementService } from 'src/app/routes/supply-management/services/supply-management.service'; | ||||
| import { Observable, Observer } from 'rxjs'; | ||||
| import { WaybillManagementServe } from 'src/app/routes/waybill-management/services/waybill-management.service'; | ||||
| import { EAEnvironmentService, EADateUtil } from '@shared'; | ||||
|  | ||||
| @Component({ | ||||
|   selector: 'app-order-management-vehicle-sure-depart', | ||||
| @ -34,19 +36,25 @@ import { Observable, Observer } from 'rxjs'; | ||||
| export class VehicleSureDepartComponent implements OnInit { | ||||
|   record: any = {}; | ||||
|   i: any; | ||||
|   Status: any; | ||||
|   data: any ={ | ||||
|     place1: '', | ||||
|     place2: '' | ||||
|     weight: '', | ||||
|     volume: '' | ||||
|   }; | ||||
|   @ViewChild('sf', { static: false }) sf!: SFComponent; | ||||
|   schema: SFSchema = {}; | ||||
|   ui: SFUISchema = {}; | ||||
|   constructor(private modal: NzModalRef, private msgSrv: NzMessageService, public http: _HttpClient, public service: SupplyManagementService ) {} | ||||
|   constructor(private modal: NzModalRef, private msgSrv: NzMessageService, public http: _HttpClient, public service: WaybillManagementServe, private envSrv: EAEnvironmentService,) {} | ||||
|  | ||||
|   ngOnInit(): void { | ||||
|     this.initSF(); | ||||
|     console.log(this.i) | ||||
|     this.data.weight = this.i?.weight | ||||
|     this.i.time = this.i.loadingTime; | ||||
|     console.log(this.Status) | ||||
|   } | ||||
|   initSF() { | ||||
|     if(this.Status === 1) { | ||||
|       this.schema = { | ||||
|         properties: { | ||||
|           datetime: { | ||||
| @ -54,14 +62,103 @@ export class VehicleSureDepartComponent implements OnInit { | ||||
|             title: '装货时间', | ||||
|             format: 'date-time', | ||||
|           }, | ||||
|         no2: { | ||||
|           imgUrl1: { | ||||
|             type: 'string', | ||||
|             title: '装货凭证', | ||||
|             ui: { | ||||
|               widget: 'upload', | ||||
|               action: apiConf.fileUpload, | ||||
|               fileType: 'image/png,image/jpeg,image/jpg,image/gif', | ||||
|               limit: 1, | ||||
|               limitFileCount: 1, | ||||
|               resReName: 'data.fullFileWatermarkPath', | ||||
|               urlReName: 'data.fullFileWatermarkPath', | ||||
|               descriptionI18n: '提货单', | ||||
|               data: { | ||||
|                 appId: this.envSrv.env.appId, | ||||
|               }, | ||||
|               name: 'multipartFile', | ||||
|               beforeUpload: (file: any, fileList: any) => { | ||||
|                 return new Observable((observer: Observer<boolean>) => { | ||||
|                   const isLt1M = file.size / 1024 / 1024 < 5; | ||||
|                   const fileType = 'image/png,image/jpeg'; | ||||
|                   if (fileType.indexOf(file.type) === -1) { | ||||
|                     this.service.msgSrv.warning('图片格式不正确!'); | ||||
|                     observer.complete(); | ||||
|                     return; | ||||
|                   } | ||||
|                   if (!isLt1M) { | ||||
|                     this.service.msgSrv.warning('图片大小超过5M!'); | ||||
|                     observer.complete(); | ||||
|                     return; | ||||
|                   } | ||||
|                   observer.next(isLt1M); | ||||
|                   observer.complete(); | ||||
|                 }); | ||||
|               }, | ||||
|               multiple: false, | ||||
|               listType: 'picture-card', | ||||
|               showRequired: true, | ||||
|             } as SFUploadWidgetSchema, | ||||
|           }, | ||||
|           imgUrl2: { | ||||
|             type: 'string', | ||||
|             title: '', | ||||
|             ui: { | ||||
|               widget: 'upload', | ||||
|               action: apiConf.fileUpload, | ||||
|               fileType: 'image/png,image/jpeg,image/jpg,image/gif', | ||||
|               limit: 1, | ||||
|               limitFileCount: 1, | ||||
|               resReName: 'data.fullFileWatermarkPath', | ||||
|               urlReName: 'data.fullFileWatermarkPath', | ||||
|               descriptionI18n: '人车货照片', | ||||
|               data: { | ||||
|                 appId: this.envSrv.env.appId, | ||||
|               }, | ||||
|               name: 'multipartFile', | ||||
|               beforeUpload: (file: any, fileList: any) => { | ||||
|                 return new Observable((observer: Observer<boolean>) => { | ||||
|                   const isLt1M = file.size / 1024 / 1024 < 5; | ||||
|                   const fileType = 'image/png,image/jpeg'; | ||||
|                   if (fileType.indexOf(file.type) === -1) { | ||||
|                     this.service.msgSrv.warning('图片格式不正确!'); | ||||
|                     observer.complete(); | ||||
|                     return; | ||||
|                   } | ||||
|                   if (!isLt1M) { | ||||
|                     this.service.msgSrv.warning('图片大小超过5M!'); | ||||
|                     observer.complete(); | ||||
|                     return; | ||||
|                   } | ||||
|                   observer.next(isLt1M); | ||||
|                   observer.complete(); | ||||
|                 }); | ||||
|               }, | ||||
|               multiple: false, | ||||
|               listType: 'picture-card', | ||||
|               showRequired: true, | ||||
|             } as SFUploadWidgetSchema, | ||||
|           } | ||||
|         }, | ||||
|         required: ['reason'] | ||||
|       }; | ||||
|     } else { | ||||
|       this.schema = { | ||||
|         properties: { | ||||
|           time: { | ||||
|             type: 'string', | ||||
|             title: '装货时间', | ||||
|             format: 'date-time', | ||||
|           }, | ||||
|           weight: { | ||||
|             type: 'string', | ||||
|             title: '装货重量', | ||||
|             ui: { | ||||
|               widget: 'custom', | ||||
|              } | ||||
|           }, | ||||
|         no3: { | ||||
|           volume: { | ||||
|             type: 'string', | ||||
|             title: '装货体积', | ||||
|             ui: { | ||||
| @ -76,120 +173,120 @@ export class VehicleSureDepartComponent implements OnInit { | ||||
|              }, | ||||
|              default: '单张大小不超过5M,支持.jpg、.jpeg和 .png格式', | ||||
|           }, | ||||
|         avatar: { | ||||
|           imgUrl1: { | ||||
|             type: 'string', | ||||
|             title: '装货凭证', | ||||
|             ui: { | ||||
|             action: `/scm/cms/cms/upload/multipartFile/fileModel`, | ||||
|             fileType: 'image/png,image/jpeg,image/jpg', | ||||
|               widget: 'upload', | ||||
|               action: apiConf.fileUpload, | ||||
|               fileType: 'image/png,image/jpeg,image/jpg,image/gif', | ||||
|               limit: 1, | ||||
|               limitFileCount: 1, | ||||
|             resReName: 'url', | ||||
|             urlReName: 'url', | ||||
|             widget: 'upload', | ||||
|             descriptionI18n: ' 提单号', | ||||
|               resReName: 'data.fullFileWatermarkPath', | ||||
|               urlReName: 'data.fullFileWatermarkPath', | ||||
|               descriptionI18n: '提货单', | ||||
|               data: { | ||||
|               // appId: environment.appId, | ||||
|                 appId: this.envSrv.env.appId, | ||||
|               }, | ||||
|               name: 'multipartFile', | ||||
|             multiple: true, | ||||
|             listType: 'picture-card', | ||||
|             change: (args: any) => { | ||||
|               if (args.type === 'success') { | ||||
|                 const avatar = [ | ||||
|                   { | ||||
|                     uid: -1, | ||||
|                     name: 'LOGO', | ||||
|                     status: 'done', | ||||
|                     url: args.fileList[0].response.url, | ||||
|                     response: { | ||||
|                       url: args.fileList[0].response.url | ||||
|                     } | ||||
|                   } | ||||
|                 ]; | ||||
|                 this.sf?.setValue('/avatar', avatar); | ||||
|               } | ||||
|             }, | ||||
|             beforeUpload: (file: any, _fileList: any) => { | ||||
|               beforeUpload: (file: any, fileList: any) => { | ||||
|                 return new Observable((observer: Observer<boolean>) => { | ||||
|                 const isLt2M = file.size / 1024 / 1024 < 5; | ||||
|                 if (!isLt2M) { | ||||
|                   const isLt1M = file.size / 1024 / 1024 < 5; | ||||
|                   const fileType = 'image/png,image/jpeg'; | ||||
|                   if (fileType.indexOf(file.type) === -1) { | ||||
|                     this.service.msgSrv.warning('图片格式不正确!'); | ||||
|                     observer.complete(); | ||||
|                     return; | ||||
|                   } | ||||
|                   if (!isLt1M) { | ||||
|                     this.service.msgSrv.warning('图片大小超过5M!'); | ||||
|                     observer.complete(); | ||||
|                     return; | ||||
|                   } | ||||
|                 observer.next(isLt2M); | ||||
|                   observer.next(isLt1M); | ||||
|                   observer.complete(); | ||||
|                 }); | ||||
|             } | ||||
|           } as SFUploadWidgetSchema | ||||
|               }, | ||||
|         avatar2: { | ||||
|               multiple: false, | ||||
|               listType: 'picture-card', | ||||
|               showRequired: true, | ||||
|             } as SFUploadWidgetSchema, | ||||
|           }, | ||||
|           imgUrl2: { | ||||
|             type: 'string', | ||||
|             title: '', | ||||
|             ui: { | ||||
|             action: `/scm/cms/cms/upload/multipartFile/fileModel`, | ||||
|             fileType: 'image/png,image/jpeg,image/jpg', | ||||
|               widget: 'upload', | ||||
|               action: apiConf.fileUpload, | ||||
|               fileType: 'image/png,image/jpeg,image/jpg,image/gif', | ||||
|               limit: 1, | ||||
|               limitFileCount: 1, | ||||
|             resReName: 'url', | ||||
|             urlReName: 'url', | ||||
|             widget: 'upload', | ||||
|               resReName: 'data.fullFileWatermarkPath', | ||||
|               urlReName: 'data.fullFileWatermarkPath', | ||||
|               descriptionI18n: '人车货照片', | ||||
|               data: { | ||||
|               // appId: environment.appId, | ||||
|                 appId: this.envSrv.env.appId, | ||||
|               }, | ||||
|               name: 'multipartFile', | ||||
|             multiple: true, | ||||
|             listType: 'picture-card', | ||||
|             change: (args: any) => { | ||||
|               if (args.type === 'success') { | ||||
|                 const avatar = [ | ||||
|                   { | ||||
|                     uid: -1, | ||||
|                     name: 'LOGO', | ||||
|                     status: 'done', | ||||
|                     url: args.fileList[0].response.url, | ||||
|                     response: { | ||||
|                       url: args.fileList[0].response.url | ||||
|                     } | ||||
|                   } | ||||
|                 ]; | ||||
|                 this.sf?.setValue('/avatar', avatar); | ||||
|               } | ||||
|             }, | ||||
|             beforeUpload: (file: any, _fileList: any) => { | ||||
|               beforeUpload: (file: any, fileList: any) => { | ||||
|                 return new Observable((observer: Observer<boolean>) => { | ||||
|                 const isLt2M = file.size / 1024 / 1024 < 5; | ||||
|                 if (!isLt2M) { | ||||
|                   const isLt1M = file.size / 1024 / 1024 < 5; | ||||
|                   const fileType = 'image/png,image/jpeg'; | ||||
|                   if (fileType.indexOf(file.type) === -1) { | ||||
|                     this.service.msgSrv.warning('图片格式不正确!'); | ||||
|                     observer.complete(); | ||||
|                     return; | ||||
|                   } | ||||
|                   if (!isLt1M) { | ||||
|                     this.service.msgSrv.warning('图片大小超过5M!'); | ||||
|                     observer.complete(); | ||||
|                     return; | ||||
|                   } | ||||
|                 observer.next(isLt2M); | ||||
|                   observer.next(isLt1M); | ||||
|                   observer.complete(); | ||||
|                 }); | ||||
|             } | ||||
|           } as SFUploadWidgetSchema | ||||
|               }, | ||||
|               multiple: false, | ||||
|               listType: 'picture-card', | ||||
|               showRequired: true, | ||||
|             } as SFUploadWidgetSchema, | ||||
|           } | ||||
|         }, | ||||
|         required: ['reason'] | ||||
|       }; | ||||
|     } | ||||
|    | ||||
|     this.ui = { | ||||
|       '*': { | ||||
|         spanLabelFixed: 100, | ||||
|         grid: { span: 20 } | ||||
|       }, | ||||
|       $avatar: { grid: { span: 12} }, | ||||
|       $avatar2: { grid: { span: 12} }, | ||||
|       $imgUrl1: { grid: { span: 12} }, | ||||
|       $imgUrl2: { grid: { span: 12} }, | ||||
|     }; | ||||
|   } | ||||
|   save(value: any): void { | ||||
|     | ||||
|     console.log(value) | ||||
|     // this.http.post(`/user/${this.record.id}`, value).subscribe(res => { | ||||
|     //   this.msgSrv.success('保存成功'); | ||||
|     //   this.modal.close(true); | ||||
|     // }); | ||||
|     const params = { | ||||
|       id: this.i.id, | ||||
|       imgUrl1: value.imgUrl1.data.fullFilePath, | ||||
|       imgUrl2: value.imgUrl2.data.fullFilePath, | ||||
|       time: value.time, | ||||
|       volume: this.data.volume, | ||||
|       weight: this.data.weight | ||||
|     } | ||||
|     console.log(EADateUtil.yearToDateTime(value.time)) | ||||
|     params.time = EADateUtil.yearToDateTime(value.time) | ||||
|     console.log(params) | ||||
|     | ||||
|     // this.service.request(this.service.$api_get_insertBulkStartCarInfo, params).subscribe((res) => { | ||||
|     //   if(res) { | ||||
|     //     this.service.msgSrv.success('确认发车成功!') | ||||
|     //   } else{ | ||||
|     //     this.service.msgSrv.error(res.msg) | ||||
|     //   } | ||||
|     // }) | ||||
|   } | ||||
|  | ||||
|   close(): void { | ||||
|  | ||||
| @ -1,22 +1,27 @@ | ||||
| <!-- | ||||
|  * @Author: your name | ||||
|  * @Date: 2021-12-14 14:03:07 | ||||
|  * @LastEditTime: 2021-12-15 15:53:02 | ||||
|  * @LastEditors: Please set LastEditors | ||||
|  * @Date: 2021-12-15 13:17:42 | ||||
|  * @LastEditTime: 2021-12-20 15:55:51 | ||||
|  * @LastEditors: your name | ||||
|  * @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE | ||||
|  * @FilePath: \tms-obc-web\src\app\routes\order-management\modal\bulk\update-freight\update-freight.component.html | ||||
|  * @FilePath: \tms-obc-web\src\app\routes\order-management\modal\vehicle\update-freight\update-freight.component.html | ||||
| --> | ||||
| <sf #sf [schema]="schema" [ui]="ui" [compact]="true" [button]="'none'"> | ||||
| </sf> | ||||
| <nz-spin *ngIf="!i" class="modal-spin"></nz-spin> | ||||
| <sf #sf mode="edit" [schema]="schema" [ui]="ui" [formData]="i" button="none"></sf> | ||||
| <nz-divider></nz-divider> | ||||
| <div> | ||||
|   <p style="font-weight: bolder;">总运费:<span style="color: red;">¥{{gross}}</span></p> | ||||
|   <p>运输费:¥{{transportation}},附加费:¥{{additional}}</p> | ||||
|   <p> | ||||
|     <span style="font-weight: bolder" | ||||
|       >总运费:<span style="color: #dc112a">¥{{ totalPrice }}</span></span | ||||
|     > | ||||
|     (运输费:¥{{ tranPrice }},附加费:¥{{ otherPrice }}) | ||||
|   </p> | ||||
|   <p> | ||||
|     <label nz-checkbox [(ngModel)]="aggreechecked">确认已阅读并知晓<a>《变更协议》</a></label> | ||||
|   </p> | ||||
| </div> | ||||
|  | ||||
| <div class="modal-footer"> | ||||
|   <button nz-button type="button" (click)="close()">关闭</button> | ||||
|   <button nz-button type="submit" nzType="primary" (click)="save(sf.value)" [disabled]="!sf.valid" [nzLoading]="http.loading" | ||||
|     >确认</button | ||||
|   > | ||||
|   <button nz-button type="submit" nzType="primary" (click)="save(sf.value)" [disabled]="!aggreechecked">确定</button> | ||||
| </div> | ||||
|  | ||||
| @ -2,7 +2,7 @@ import { preloaderFinished } from '@delon/theme'; | ||||
| /* | ||||
|  * @Author: your name | ||||
|  * @Date: 2021-12-14 14:03:07 | ||||
|  * @LastEditTime: 2021-12-15 15:52:36 | ||||
|  * @LastEditTime: 2021-12-20 15:57:37 | ||||
|  * @LastEditors: Please set LastEditors | ||||
|  * @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE | ||||
|  * @FilePath: \tms-obc-web\src\app\routes\order-management\modal\bulk\update-freight\update-freight.component.ts | ||||
| @ -21,6 +21,7 @@ import { | ||||
| import { _HttpClient } from '@delon/theme'; | ||||
| import { NzMessageService } from 'ng-zorro-antd/message'; | ||||
| import { NzModalRef } from 'ng-zorro-antd/modal'; | ||||
| import { OrderManagementService } from '../../../services/order-management.service'; | ||||
|  | ||||
| @Component({ | ||||
|   selector: 'app-order-management-vehicle-update-freight', | ||||
| @ -28,68 +29,140 @@ import { NzModalRef } from 'ng-zorro-antd/modal'; | ||||
|   styleUrls: ['./update-freight.component.less'] | ||||
| }) | ||||
| export class VehicleUpdateFreightComponent implements OnInit { | ||||
|   record: any = {}; | ||||
|   record: any; | ||||
|   i: any; | ||||
|   @ViewChild('sf', { static: false }) sf!: SFComponent; | ||||
|   schema: SFSchema = {}; | ||||
|   ui: SFUISchema = {}; | ||||
|   data: any = {}; | ||||
|   constructor(private modal: NzModalRef, private msgSrv: NzMessageService, public http: _HttpClient) {} | ||||
|  | ||||
|   totalPrice = 0; | ||||
|   tranPrice = 0; | ||||
|   otherPrice = 0; | ||||
|  | ||||
|   aggreechecked = false; | ||||
|   constructor(private modal: NzModalRef, private msgSrv: NzMessageService, public service: OrderManagementService) {} | ||||
|  | ||||
|   ngOnInit(): void { | ||||
|     this.i = { | ||||
|       prePay: this.record?.mybidDetailInfo?.filter((data: any) => data.expenseCode === 'PRE')[0]?.price || 0, | ||||
|       toPay: this.record?.mybidDetailInfo?.filter((data: any) => data.expenseCode === 'RECE')[0]?.price || 0, | ||||
|       oilCardPay: this.record?.mybidDetailInfo?.filter((data: any) => data.expenseCode === 'OIL')[0]?.price || 0, | ||||
|       receiptPay: this.record?.mybidDetailInfo?.filter((data: any) => data.expenseCode === 'BACK')[0]?.price || 0, | ||||
|       prePayStatus: this.record?.mybidDetailInfo?.filter((data: any) => data.expenseCode === 'PRE')[0]?.paymentStatus, | ||||
|       toPayStatus: this.record?.mybidDetailInfo?.filter((data: any) => data.expenseCode === 'RECE')[0]?.paymentStatus, | ||||
|       oilCardPayStatus: this.record?.mybidDetailInfo?.filter((data: any) => data.expenseCode === 'OIL')[0]?.paymentStatus, | ||||
|       receiptPayStatus: this.record?.mybidDetailInfo?.filter((data: any) => data.expenseCode === 'BACK')[0]?.paymentStatus | ||||
|     }; | ||||
|     this.tranPrice = this.i.prePay + this.i.toPay + this.i.oilCardPay + this.i.receiptPay; | ||||
|     this.totalPrice = this.i.prePay + this.i.toPay + this.i.oilCardPay + this.i.receiptPay + this.otherPrice; | ||||
|     this.initSF(); | ||||
|  | ||||
|     if (this.record.id > 0) this.http.get(`/user/${this.record.id}`).subscribe(res => (this.i = res)); | ||||
|   } | ||||
|   // 运输费 | ||||
|   get transportation () { | ||||
|     console.log(this.sf?.value) | ||||
|     const value = Number(this.sf?.value?.number || 0) + Number(this.sf?.value?.number2 || 0) + Number(this.sf?.value?.number3 || 0) | ||||
|     console.log( value ) | ||||
|     return value || 0 | ||||
|   } | ||||
|   // 总运费 | ||||
|   get gross () { | ||||
|     const value = Number(this.transportation || 0) + Number(this.transportation || 0) | ||||
|     console.log( value ) | ||||
|     return value || 0 | ||||
|   } | ||||
|   // 附加费 | ||||
|   get additional () { | ||||
|     return 100 | ||||
|     this.service.request(this.service.$api_get_getFreightChangeWholeDetail, { id: this.record.id}).subscribe((res) => { | ||||
|       console.log(res) | ||||
|       console.log(this.i) | ||||
|       console.log(this.tranPrice) | ||||
|     }) | ||||
|   } | ||||
|   initSF() { | ||||
|     this.schema = { | ||||
|       properties: { | ||||
|         number: { type: 'number',title: '预付' ,minimum: 1, maximum: 999999999, multipleOf: 1, ui: { widgetWidth: 200 } }, | ||||
|         number2: { type: 'number',title: '到付' ,minimum: 1, maximum: 999999999, multipleOf: 1, ui: { widgetWidth: 200 } }, | ||||
|         number3: { type: 'number',title: '回单付' ,minimum: 1, maximum: 999999999, multipleOf: 1, ui: { widgetWidth: 200 } }, | ||||
|         name3: { | ||||
|         prePay: { | ||||
|           type: 'number', | ||||
|           title: '预付', | ||||
|           default: 0.0, | ||||
|           readOnly: this.i.prePayStatus !== '3', | ||||
|           ui: { | ||||
|             prefix: '¥', | ||||
|             widgetWidth: 200, | ||||
|             precision: 2, | ||||
|             change: (val: any) => this.changeNumVal() | ||||
|           } as SFNumberWidgetSchema | ||||
|         }, | ||||
|         toPay: { | ||||
|           type: 'number', | ||||
|           title: '到付', | ||||
|           default: 0.0, | ||||
|           readOnly: this.i.toPayStatus !== '3', | ||||
|           ui: { | ||||
|             prefix: '¥', | ||||
|             widgetWidth: 200, | ||||
|             precision: 2, | ||||
|             change: (val: any) => this.changeNumVal() | ||||
|           } as SFNumberWidgetSchema | ||||
|         }, | ||||
|         // oilCardPay: { | ||||
|         //   type: 'number', | ||||
|         //   title: '油卡', | ||||
|         //   default: 0.0, | ||||
|         //   readOnly: this.i.oilCardPayStatus === '1' || this.i.oilCardPayStatus === '3', | ||||
|         //   ui: { | ||||
|         //     prefix: '¥', | ||||
|         //     widgetWidth: 200, | ||||
|         //     precision: 2, | ||||
|         //     change: (val: any) => this.changeNumVal() | ||||
|         //   } as SFNumberWidgetSchema | ||||
|         // }, | ||||
|         receiptPay: { | ||||
|           type: 'number', | ||||
|           title: '回单付', | ||||
|           default: 0.0, | ||||
|           readOnly: this.i.receiptPayStatus !== '3', | ||||
|           ui: { | ||||
|             prefix: '¥', | ||||
|             widgetWidth: 200, | ||||
|             precision: 2, | ||||
|             change: (val: any) => this.changeNumVal() | ||||
|           } as SFNumberWidgetSchema | ||||
|         }, | ||||
|         changeCause: { | ||||
|           type: 'string', | ||||
|           title: '变更原因', | ||||
|           maxLength: 100, | ||||
|           ui: { | ||||
|             widgetWidth: 300, | ||||
|             placeholder:"选填,最多不超过100字", | ||||
|             widget: 'textarea', | ||||
|             autosize: { minRows: 3, maxRows: 6 } | ||||
|           } as SFTextareaWidgetSchema | ||||
|         } | ||||
|       }, | ||||
|       }, | ||||
|       required: ['name3'], | ||||
|       type: 'object', | ||||
|       required: ['changeCause'] | ||||
|     }; | ||||
|     this.ui = { '*': { spanLabelFixed: 100, grid: { span: 16,gutter:8 } } | ||||
|     this.ui = { | ||||
|       '*': { | ||||
|         spanLabelFixed: 100, | ||||
|         grid: { span: 16 } | ||||
|       } | ||||
|     }; | ||||
|   } | ||||
|   save(value: any): void { | ||||
|     console.log(this.sf.value) | ||||
|     console.log(value) | ||||
|     console.log(this.data) | ||||
|     this.http.post(`/user/${this.record.id}`, value).subscribe(res => { | ||||
|       this.msgSrv.success('保存成功'); | ||||
|       this.modal.close(true); | ||||
|     const editItems = this.record?.mybidDetailInfo.filter((data: any) => data.receiptPayStatus === '3'); | ||||
|     editItems.forEach((item: any) => { | ||||
|       switch (item.expenseName) { | ||||
|         case '预付': | ||||
|           item.price = this.sf.value.prePay; | ||||
|           break; | ||||
|         case '到付': | ||||
|           item.price = this.sf.value.toPay; | ||||
|           break; | ||||
|         case '回单付': | ||||
|           item.price = this.sf.value.receiptPay; | ||||
|           break; | ||||
|         default: | ||||
|           break; | ||||
|       } | ||||
|     }); | ||||
|  | ||||
|     const params = { | ||||
|       id: this.record?.id, | ||||
|       dtos: editItems, | ||||
|       changeCause: this.sf.value.changeCause | ||||
|     }; | ||||
|  | ||||
|     // this.service.request(this.service.$api_insertFreightChangeWhole, params).subscribe((res: any) => { | ||||
|     //   if (res) { | ||||
|     //     this.modal.destroy(); | ||||
|     //   } else { | ||||
|     //     this.service.msgSrv.error(res.msg); | ||||
|     //   } | ||||
|     // }); | ||||
|   } | ||||
|  | ||||
|   close(): void { | ||||
| @ -97,8 +170,10 @@ export class VehicleUpdateFreightComponent implements OnInit { | ||||
|   } | ||||
|   /** | ||||
|    * 更新数字框 | ||||
|    * @param value | ||||
|    * @param type | ||||
|    * | ||||
|    */ | ||||
|   changeNumVal(value: any, type: number) {} | ||||
|   changeNumVal() { | ||||
|     this.tranPrice = this.sf.value.prePay + this.sf.value.toPay + this.sf.value.oilCardPay + this.sf.value.receiptPay; | ||||
|     this.totalPrice = this.sf.value.prePay + this.sf.value.toPay + this.sf.value.oilCardPay + this.sf.value.receiptPay + this.otherPrice; | ||||
|   } | ||||
| } | ||||
|  | ||||
| @ -1,7 +1,7 @@ | ||||
| /* | ||||
|  * @Author: your name | ||||
|  * @Date: 2021-12-03 15:31:52 | ||||
|  * @LastEditTime: 2021-12-20 10:00:25 | ||||
|  * @LastEditTime: 2021-12-20 15:30:26 | ||||
|  * @LastEditors: Please set LastEditors | ||||
|  * @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE | ||||
|  * @FilePath: \tms-obc-web\src\app\routes\order-management\services\order-management.service.ts | ||||
| @ -34,6 +34,17 @@ export class OrderManagementService extends BaseService { | ||||
|   $api_get_getWholeBillDetail = `/api/sdc/billOperate/getWholeBillDetail`; | ||||
|       // 根据车牌号查询车辆信息 | ||||
|   $api_get_getCarLicenseListByCarNo= `/api/mdc/cuc/carLicenseAudit/operate/getCarLicenseListByCarNo`; | ||||
|  | ||||
|     //  查询大宗订单列表 | ||||
|     $api_get_listBulkPage = `/api/sdc/billOperate/listBulkPage`; | ||||
|     //  查看运费变更记录详情-整车 | ||||
|     $api_get_getChangeRecordWholeDetail = `/api/sdc/billFreightChangeRecord/getChangeRecordWholeDetail`; | ||||
|     //  根据订单ID查看运费变更申请记录 | ||||
|     $api_get_listChangeApply = `/api/sdc/billFreightChangeApplication/listChangeApply`; | ||||
|     //  变更运费页面-整车-整车 | ||||
|     $api_get_getFreightChangeWholeDetail = `/api/sdc/billFreightChangeApplication/getFreightChangeWholeDetail`; | ||||
|     //  订单申请撤销 | ||||
|     $api_get_revokeChangeRecord = `/api/sdc/billFreightChangeApplication/revokeChangeRecord`; | ||||
|   constructor(public injector: Injector) { | ||||
|     super(injector) | ||||
|   } | ||||
|  | ||||
| @ -1,24 +0,0 @@ | ||||
| import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing'; | ||||
| import { SupplyManagementBulkDetailComponent } from './bulk-detail.component'; | ||||
|  | ||||
| describe('SupplyManagementBulkDetailComponent', () => { | ||||
|   let component: SupplyManagementBulkDetailComponent; | ||||
|   let fixture: ComponentFixture<SupplyManagementBulkDetailComponent>; | ||||
|  | ||||
|   beforeEach(waitForAsync(() => { | ||||
|     TestBed.configureTestingModule({ | ||||
|       declarations: [ SupplyManagementBulkDetailComponent ] | ||||
|     }) | ||||
|     .compileComponents(); | ||||
|   })); | ||||
|  | ||||
|   beforeEach(() => { | ||||
|     fixture = TestBed.createComponent(SupplyManagementBulkDetailComponent); | ||||
|     component = fixture.componentInstance; | ||||
|     fixture.detectChanges(); | ||||
|   }); | ||||
|  | ||||
|   it('should create', () => { | ||||
|     expect(component).toBeTruthy(); | ||||
|   }); | ||||
| }); | ||||
| @ -1,146 +0,0 @@ | ||||
| /* | ||||
|  * @Author: your name | ||||
|  * @Date: 2021-12-03 11:10:14 | ||||
|  * @LastEditTime: 2021-12-13 15:24:41 | ||||
|  * @LastEditors: Please set LastEditors | ||||
|  * @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE | ||||
|  * @FilePath: \tms-obc-web\src\app\routes\supply-management\components\bulk-detail\bulk-detail.component.ts | ||||
|  */ | ||||
| import { Component, OnInit } from '@angular/core'; | ||||
| import { ActivatedRoute, Router } from '@angular/router'; | ||||
| import { STColumn } from '@delon/abc/st'; | ||||
| import { _HttpClient } from '@delon/theme'; | ||||
| import { NzMessageService } from 'ng-zorro-antd/message'; | ||||
| import { NzModalService } from 'ng-zorro-antd/modal'; | ||||
| import { SupplyManagementAddDriversComponent } from '../add-drivers/add-drivers.component'; | ||||
| import { SupplyManagementService } from '../../services/supply-management.service'; | ||||
|  | ||||
| @Component({ | ||||
|   selector: 'app-supply-management-bulk-detail', | ||||
|   templateUrl: './bulk-detail.component.html', | ||||
|   styleUrls: ['./bulk-detail.component.less'] | ||||
| }) | ||||
| export class SupplyManagementBulkDetailComponent implements OnInit { | ||||
|   isVisibleView = false | ||||
|   id = this.route.snapshot.params.id; | ||||
|   i: any; | ||||
|   logColumns: STColumn[] = [ | ||||
|     { title: '内容', index: 'theme' }, | ||||
|     { title: '操作人', index: 'operationUserPhone' }, | ||||
|     { title: '操作时间', index: ' createTime' }, | ||||
|   ]; | ||||
|   columnsFloatView: STColumn[] = [ | ||||
|     { title: '司机姓名', index: 'theme' }, | ||||
|     { title: '手机号', index: 'operationUserPhone' }, | ||||
|     { title: '车队长', index: ' createTime' }, | ||||
|     { title: '车牌号', index: ' createTime' }, | ||||
|   ]; | ||||
|   driverColums: STColumn[] = [ | ||||
|     { title: '司机姓名', index: 'theme' }, | ||||
|     { title: '手机号', index: 'operationUserPhone' }, | ||||
|     { title: '车牌号', index: ' createTime' }, | ||||
|     { title: '承运次数', index: 'operationUserPhone' }, | ||||
|     { title: '承运数量', index: ' createTime' }, | ||||
|     { | ||||
|       title: '操作', | ||||
|       fixed: 'right', | ||||
|       width: '200px', | ||||
|       className: 'text-center', | ||||
|       buttons: [ | ||||
|         { | ||||
|           text: '移除', | ||||
|           click: (_record) => this.delDiver(_record), | ||||
|         }, | ||||
|       ], | ||||
|     }, | ||||
|   ]; | ||||
|   dataList: any; | ||||
|   constructor( | ||||
|     private route: ActivatedRoute, | ||||
|     private msgSrv: NzMessageService, | ||||
|     private service: SupplyManagementService, | ||||
|     private modal: NzModalService, | ||||
|     private router: Router,private ar: ActivatedRoute | ||||
|   ) { | ||||
|  | ||||
|   } | ||||
|  | ||||
|   ngOnInit(): void { | ||||
|     this.getDetailList(); | ||||
|   } | ||||
|   // 获取录单员  | ||||
|   getDetailList() { | ||||
|     const params = { | ||||
|       id: this.id | ||||
|     }; | ||||
|    this.service.request(`${this.service.$api_get_getBulkDetail}`, params).subscribe((res) => { | ||||
|       console.log(res) | ||||
|       this.dataList = res | ||||
|     }) | ||||
|   } | ||||
|   /** | ||||
|    * 移除司机 | ||||
|    */ | ||||
|   delDiver(item: any) { | ||||
|     const { id } = item; | ||||
|     this.modal.confirm({ | ||||
|       nzTitle: '<i>删除确认</i>', | ||||
|       nzContent: `请仔细核对,避免误操作!<br>是否删除?</br>`, | ||||
|       nzOnOk: () => { | ||||
|         // this.service.http.post(this.service.$api_del_driver, { id }).subscribe((res) => { | ||||
|         //   if (res) { | ||||
|         //     this.service.msgSrv.success('数据删除成功!'); | ||||
|         //     // this.st1.reload(); | ||||
|         //   } else { | ||||
|         //     this.service.msgSrv.error('删除失败!'); | ||||
|         //   } | ||||
|         // }); | ||||
|       }, | ||||
|     }); | ||||
|   } | ||||
|  | ||||
|   /** | ||||
|  * 指派熟车 | ||||
|  */ | ||||
|   assignedCar() { | ||||
|     const modalRef = this.modal.create({ | ||||
|       nzTitle: '指派熟车', | ||||
|       nzWidth: '90%', | ||||
|       nzContent: SupplyManagementAddDriversComponent, | ||||
|       nzComponentParams: { | ||||
|         i: this.i, | ||||
|       }, | ||||
|       nzFooter: null, | ||||
|     }); | ||||
|   } | ||||
|  | ||||
|   goBack() { | ||||
|     window.history.go(-1); | ||||
|   } | ||||
|     // 修改货源  | ||||
|     modification() { | ||||
|       this.router.navigate(['/supply-management/bulk-amend', this.id], { | ||||
|         queryParams: { | ||||
|           sta: 3 | ||||
|         }, | ||||
|       }) | ||||
|     } | ||||
|     //  再下一单 | ||||
|     nextOrder() { | ||||
|       this.router.navigate(['/supply-management/bulk-amend', this.id], { | ||||
|         queryParams: { | ||||
|           sta: 4 | ||||
|         }, | ||||
|       }) | ||||
|     } | ||||
|  | ||||
|     handleCancel() { | ||||
|       this.isVisibleView = false | ||||
|     } | ||||
|     handleOK() { | ||||
|  | ||||
|     } | ||||
|     NowAssign() { | ||||
|       this.isVisibleView = true | ||||
|     } | ||||
| } | ||||
| @ -17,7 +17,7 @@ | ||||
|         </sv-title> | ||||
|         <sv-title> | ||||
|           <div class=""> | ||||
|             <a class="btn-size" (click)="modification()">修改单价</a> | ||||
|             <a class="btn-size" (click)="modification()">修改货源</a> | ||||
|             <a class="btn-size m-lg mr-lg">取消货源</a> | ||||
|             <a class="btn-size" (click)="nextOrder()">再下一单</a> | ||||
|           </div> | ||||
| @ -48,6 +48,7 @@ | ||||
|             <p>装货地:{{item?.detailedAddress}}</p> | ||||
|              <p>联系人:{{item?.appUserName}}/{{item?.contractTelephone}}</p> | ||||
|           <p>发货日期:{{item?.createTime}}</p> | ||||
| 
 | ||||
|           </div> | ||||
|           <div *ngIf="item.type === 2 || item.type === '2'"> | ||||
|           <p>卸货地:{{item?.detailedAddress}}</p> | ||||
| @ -59,11 +60,10 @@ | ||||
|     </div> | ||||
|     <div nz-col nzSpan="5"> | ||||
|       <div class="source-info bdr bdl pl-md"> | ||||
|         <h3 style="font-weight: 700;">货物信息</h3> | ||||
|         <div *ngFor="let item of dataList?.goodsInfoVOList; let i = index"> | ||||
|         <h3 *ngIf="i === 0" style="font-weight: 700;">货物信息</h3> | ||||
|         <p>货物名称:{{item?.goodsName}}</p> | ||||
|         <p>货物数量:{{item?.weight}}吨/{{item?.volume}}立方</p> | ||||
|         <p>剩余:{{item?.weight}}吨/{{item?.volume}}立方</p> | ||||
|         <p>用车需求:{{item?.vehicleDemand}}</p> | ||||
|         </div> | ||||
|       </div> | ||||
| @ -73,21 +73,25 @@ | ||||
|         <h3 style="font-weight: 700;">承运信息</h3> | ||||
|         <p>网络货运人:{{dataList?.carrierInformationVO?.enterpriseInfoName}}</p> | ||||
|         <p>服务类型:{{dataList?.carrierInformationVO?.serviceType === 1 ? '抢单' : '指派'}}</p> | ||||
|         <p><a href="javascript:;" (click)="NowAssign()">当前指派</a></p> | ||||
|         <p>司机姓名:{{dataList?.carrierInformationVO?.driverName}}</p> | ||||
|         <p>手机号:{{dataList?.carrierInformationVO?.driverTelephone}}</p> | ||||
|         <p>车牌号:{{dataList?.carrierInformationVO?.driverLicensePlate}}</p> | ||||
|       </div> | ||||
|     </div> | ||||
|     <div nz-col nzSpan="5"> | ||||
|       <div class="source-info bdr pl-md"> | ||||
|         <h3 style="font-weight: 700;">关联运单</h3> | ||||
|         <p>待发车 ({{dataList?.goodsInfoList?.goodsName}})</p> | ||||
|         <p>运输中 ({{dataList?.goodsInfoList?.goodsName}})</p> | ||||
|         <p>待签收 ({{dataList?.goodsInfoList?.goodsName}})</p> | ||||
|         <p>已完成 ({{dataList?.goodsInfoList?.goodsName}})</p> | ||||
|         <p>已取消 ({{dataList?.goodsInfoList?.goodsName}})</p> | ||||
|         <h3 style="font-weight: 700;">服务信息</h3> | ||||
|         <p>货物价值:{{dataList?.goodsInfoList?.goodsName}}</p> | ||||
|         <p>保价费金额:{{dataList?.goodsInfoList?.goodsName}}</p> | ||||
|       </div> | ||||
|     </div> | ||||
|     <div class="source-info pl-md"> | ||||
|       <h3 style="font-weight: 700;">补充信息</h3> | ||||
|       <p>{{dataList?.supplementaryInformationVO?.stateReceipt === 2 ? '不需要回单' : '需要回单'}}</p> | ||||
|       <p>联系人:{{dataList?.supplementaryInformationVO?.receiptUserId}}</p> | ||||
|       <p>联系电话:{{dataList?.supplementaryInformationVO?.remarks}}</p> | ||||
|       <p>所在地区:{{dataList?.supplementaryInformationVO?.remarks}}</p> | ||||
|       <p>详细地址:{{dataList?.supplementaryInformationVO?.receiptAddress}}</p> | ||||
|       <p>备注:{{dataList?.supplementaryInformationVO?.remarks}}</p> | ||||
|     </div> | ||||
|   </div> | ||||
| @ -96,15 +100,18 @@ | ||||
|     <div class="freight-info-box"> | ||||
|       <h3 style="font-weight: 700;">运费信息</h3> | ||||
|       <div class="text-right"> | ||||
|         <p style="color: #f9b523;">到货后15天内支付运费</p> | ||||
|         <p>以发货为准,保留小数</p> | ||||
|         | ||||
|         <p>预付:{{dataList?.shippingInformationVO?.prePay | currency: '¥' }}</p> | ||||
|         <p>油卡:{{dataList?.shippingInformationVO?.oilCardPay | currency: '¥'}}</p> | ||||
|         <p>到付:{{dataList?.shippingInformationVO?.toPay | currency: '¥'}}</p> | ||||
|         <p>回单付:{{dataList?.shippingInformationVO?.receiptPay | currency: '¥'}}</p> | ||||
|         <p>保险费:{{dataList?.shippingInformationVO?.insuranceFee | currency: '¥'}}</p> | ||||
|         <p>附加费保险费:{{dataList?.shippingInformationVO?.appendFee | currency: '¥'}}</p> | ||||
|       </div> | ||||
|     </div> | ||||
|     <nz-divider></nz-divider> | ||||
|     <div class="freight-info-box" nz-row> | ||||
|       <div nz-col nzSpan="24"> | ||||
|         <h3 class="text-right"><label>单价 :</label> <span class="text-error-dark text-xl" style="color: red;">{{dataList?.freightPrice }}</span>元/吨</h3> | ||||
|         <h3 class="text-right"><label>总计 :</label> <span class="text-error-dark text-xl">{{dataList?.shippingInformationVO?.totalFee |  currency: '¥' }}</span></h3> | ||||
|       </div> | ||||
| 
 | ||||
|     </div> | ||||
| @ -117,18 +124,3 @@ | ||||
|     </nz-card> | ||||
|   </div> | ||||
| </nz-card> | ||||
| 
 | ||||
| <nz-modal [(nzVisible)]="isVisibleView"  [nzWidth]="600" [nzFooter]="nzModalFooterview" nzTitle="当前指派" (nzOnOk)="handleOK()" (nzOnCancel)="handleCancel()"> | ||||
|   <ng-container *nzModalContent> | ||||
|     <st | ||||
|     #stFloatView | ||||
|     [data]="i?.auditRecordList" | ||||
|     [columns]="columnsFloatView" | ||||
|     [page]="{ show: false, showSize: false }" | ||||
|   > | ||||
|   </st> | ||||
|   </ng-container> | ||||
|   <ng-template #nzModalFooterview> | ||||
|     <button nz-button nzType="default" (click)="handleCancel()">取消</button> | ||||
|   </ng-template> | ||||
| </nz-modal> | ||||
| @ -0,0 +1,24 @@ | ||||
| import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing'; | ||||
| import { SupplyManagementVehicleDetailComponent } from './vehicle-detail.component'; | ||||
|  | ||||
| describe('SupplyManagementVehicleDetailComponent', () => { | ||||
|   let component: SupplyManagementVehicleDetailComponent; | ||||
|   let fixture: ComponentFixture<SupplyManagementVehicleDetailComponent>; | ||||
|  | ||||
|   beforeEach(waitForAsync(() => { | ||||
|     TestBed.configureTestingModule({ | ||||
|       declarations: [ SupplyManagementVehicleDetailComponent ] | ||||
|     }) | ||||
|     .compileComponents(); | ||||
|   })); | ||||
|  | ||||
|   beforeEach(() => { | ||||
|     fixture = TestBed.createComponent(SupplyManagementVehicleDetailComponent); | ||||
|     component = fixture.componentInstance; | ||||
|     fixture.detectChanges(); | ||||
|   }); | ||||
|  | ||||
|   it('should create', () => { | ||||
|     expect(component).toBeTruthy(); | ||||
|   }); | ||||
| }); | ||||
| @ -0,0 +1,80 @@ | ||||
| /* | ||||
|  * @Author: your name | ||||
|  * @Date: 2021-12-03 11:10:14 | ||||
|  * @LastEditTime: 2021-12-09 20:54:28 | ||||
|  * @LastEditors: Please set LastEditors | ||||
|  * @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE | ||||
|  * @FilePath: \tms-obc-web\src\app\routes\supply-management\components\vehicle-detail\vehicle-detail.component.ts | ||||
|  */ | ||||
| import { Component, OnInit } from '@angular/core'; | ||||
| import { ActivatedRoute, Router } from '@angular/router'; | ||||
| import { STColumn } from '@delon/abc/st'; | ||||
| import { _HttpClient } from '@delon/theme'; | ||||
| import { NzMessageService } from 'ng-zorro-antd/message'; | ||||
| import { SupplyManagementService } from '../../services/supply-management.service'; | ||||
|  | ||||
| @Component({ | ||||
|   selector: 'app-supply-management-vehicle-detail', | ||||
|   templateUrl: './vehicle-detail.component.html', | ||||
|   styleUrls: ['./vehicle-detail.component.less'] | ||||
| }) | ||||
| export class SupplyManagementVehicleDetailComponentOld implements OnInit { | ||||
|  | ||||
|   id = this.route.snapshot.params.id; | ||||
|   i: any; | ||||
|   dataList: any; | ||||
|   logColumns: STColumn[] = [ | ||||
|     { title: '内容', index: 'theme' }, | ||||
|     { title: '操作人', index: 'operationUserPhone' }, | ||||
|     { title: '操作时间', index: ' createTime' }, | ||||
|   ]; | ||||
|  | ||||
|   constructor( | ||||
|     private route: ActivatedRoute, | ||||
|     private msgSrv: NzMessageService, | ||||
|     private service: SupplyManagementService, | ||||
|     private router: Router,private ar: ActivatedRoute | ||||
|   ) { | ||||
|  | ||||
|   } | ||||
|  | ||||
|   ngOnInit(): void { | ||||
|     console.log(this.id) | ||||
|     if(this.id) { | ||||
|       this.getDetailList(this.id) | ||||
|     } | ||||
|   } | ||||
|  | ||||
|   // 获取录单员  | ||||
|   getDetailList(id: any) { | ||||
|     const params = { | ||||
|       id: id | ||||
|     }; | ||||
|    this.service.request(`${this.service.$api_get_getCompleteVehicleDetail}`, params).subscribe((res) => { | ||||
|       console.log(res) | ||||
|       this.dataList = res | ||||
|     }) | ||||
|   } | ||||
|   // 修改货源  | ||||
|   modification() { | ||||
|     this.router.navigate(['/supply-management/vehicle-amend', this.id], { | ||||
|       queryParams: { | ||||
|         sta: 1 | ||||
|       }, | ||||
|     }) | ||||
|   } | ||||
|   //  再下一单 | ||||
|   nextOrder() { | ||||
|     this.router.navigate(['/supply-management/vehicle-amend', this.id], { | ||||
|       queryParams: { | ||||
|         sta: 2 | ||||
|       }, | ||||
|     }) | ||||
|   } | ||||
|  | ||||
|  | ||||
|  | ||||
|   goBack() { | ||||
|     window.history.go(-1); | ||||
|   } | ||||
| } | ||||
| @ -1,126 +1,168 @@ | ||||
| <page-header-wrapper [title]="''" [logo]="logo"> | ||||
| <div *ngIf="i"> | ||||
|   <page-header-wrapper [title]="''" [logo]="logo" [content]="headerContent"> | ||||
|     <ng-template #logo> | ||||
|       <button nz-button nz-tooltip nzTooltipTitle="返回上一页" (click)="goBack()"> | ||||
|         <i nz-icon nzType="left" nzTheme="outline"></i> | ||||
|       </button> | ||||
|     </ng-template> | ||||
| </page-header-wrapper> | ||||
| <nz-card> | ||||
|     <ng-template #headerContent> | ||||
|       <div class="mb-xs" nz-row> | ||||
|         <button nz-button nzType="primary" nzSize="small" nzDanger>{{i?.resourceStatusLabel}}</button> | ||||
|         <h4 class="ml-md">货源编码 : {{ i?.resourceCode }}</h4> | ||||
|       </div> | ||||
|       <div nz-row> | ||||
|     <div nz-col nzSpan="6"> | ||||
|       <sv-container class="bdr"> | ||||
|         <sv label="货源编号" col="1">{{ dataList?.resourceCode }}</sv> | ||||
|         <sv-title class="text-center text-lg"> | ||||
|           <span *ngIf="dataList?.resourceType === 1">待接单</span> | ||||
|           <span *ngIf="dataList?.resourceType === 2">已接单</span> | ||||
|           <span *ngIf="dataList?.resourceType === 3">已取消</span> | ||||
|         </sv-title> | ||||
|         <sv-title> | ||||
|           <div class=""> | ||||
|             <a class="btn-size" (click)="modification()">修改货源</a> | ||||
|             <a class="btn-size m-lg mr-lg">取消货源</a> | ||||
|             <a class="btn-size" (click)="nextOrder()">再下一单</a> | ||||
|         <div nz-col nzSpan="14" class="text-grey-darker">网络货运人:{{i?.carrierInformationVO?.enterpriseInfoName}}</div> | ||||
|         <div nz-col nzSpan="10"> | ||||
|           <button nz-button (click)="cancleGoodsSource()" *ngIf="i?.resourceStatus  === '1'">取消货源</button> | ||||
|           <button nz-button (click)="assignedCar(i)" | ||||
|             *ngIf="i?.resourceStatus  === '1' && i?.serviceType === '2'">重新指派</button> | ||||
|           <button nz-button (click)="updateGoodsSource(i)" *ngIf="i?.resourceStatus === '1'">修改货源</button> | ||||
|           <button nz-button nzType="primary" nzGhost (click)="placeOrder(i)">再下一单</button> | ||||
|         </div> | ||||
|         </sv-title> | ||||
|       </sv-container> | ||||
|       </div> | ||||
|     <div nz-col nzSpan="16" class="approval-status"> | ||||
|       <nz-steps style="width: 80%; margin: 0 auto" [nzLabelPlacement]="'vertical'"> | ||||
|         <nz-step nzStatus="finish" nzIcon="user" [nzDescription]="i?.createAt" nzTitle="下单"></nz-step> | ||||
|         <nz-step nzStatus="finish" nzIcon="user" nzTitle="完结"></nz-step> | ||||
|       <div class="mt-sm mb-sm" nz-row> | ||||
|         <div> | ||||
|           <b>总费用:<span class="text-red-light text-md">{{totalExpensePrice | currency}}</span></b> | ||||
|         </div> | ||||
|       </div> | ||||
|       <nz-divider></nz-divider> | ||||
|       <div sv-container *ngIf="i"> | ||||
|         <sv label="外部货源号"><a>{{ i?.externalResourceCode }} <i class="mr-xs" nz-icon nzType="edit" nzTheme="outline" | ||||
|               (click)="editEnternalSn(i)"></i></a></sv> | ||||
|         <sv label="项目">{{i?.enterpriseProjectId}}</sv> | ||||
|         <sv label="录单员">{{i?.createUserId}}</sv> | ||||
|         <sv label="调度员">{{i?.dispatchName}} 18100000000 </sv> | ||||
|         <sv label="服务类型">{{i?.serviceTypeLabel}} </sv> | ||||
|       </div> | ||||
|     </ng-template> | ||||
|   </page-header-wrapper> | ||||
|   <nz-card title="货源进度"> | ||||
|     <div class="approval-status"> | ||||
|       <div style="width: 60%; margin: 0 auto"> | ||||
|         <nz-steps [nzLabelPlacement]="'vertical'"> | ||||
|           <nz-step [nzStatus]="i?.resourceStatus !== '1'?'finish':'process'" nzIcon="solution" | ||||
|             [nzDescription]="i?.createAt" nzTitle="下单"></nz-step> | ||||
|           <nz-step *ngIf="i?.resourceStatus === '1' || i?.resourceStatus === '2' " | ||||
|             [nzStatus]="i?.resourceStatus=== '1'? 'wait':'finish'" nzIcon="file-done" [nzTitle]="'接单'"></nz-step> | ||||
|           <nz-step nzStatus="finish" nzIcon="close-circle" nzTitle="取消货源" *ngIf="i?.resourceStatus === '3'"></nz-step> | ||||
|         </nz-steps> | ||||
|       </div> | ||||
|     </div> | ||||
|   <nz-divider></nz-divider> | ||||
|   <div sv-container > | ||||
|     <sv label="项目名称">{{ dataList?.enterpriseProjectId }}</sv> | ||||
|     <sv label="外部货源号">{{ dataList?.externalResourceCode }}</sv> | ||||
|     <sv label="录单员">{{ dataList?.enterpriseProjectId }}</sv> | ||||
|     <sv label="调度员">{{ dataList?.dispatchName }}</sv> | ||||
|   </div> | ||||
|   <nz-divider></nz-divider> | ||||
|   <div nz-row> | ||||
|     <div nz-col nzSpan="6"> | ||||
|       <div class="source-info"> | ||||
|         <div *ngFor="let item of dataList?.unLoadingPlaceVOList; let i = index"> | ||||
|           <h3 *ngIf="i === 0" style="font-weight: 700;">装卸货信息</h3> | ||||
|           <div *ngIf="item?.type === 1 || item?.type === '1'"> | ||||
|             <p>装货地:{{item?.detailedAddress}}</p> | ||||
|   </nz-card> | ||||
|   <nz-card nzTitle="装货卸货信息 (一装一卸2)"> | ||||
|     <div nz-row [nzGutter]="24"> | ||||
|       <div nz-col [nzSpan]="12"> | ||||
|         <div class="handling-info p-md"> | ||||
|           <div class="flex" *ngFor="let item of i?.unLoadingPlaceVOList"> | ||||
|             <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>发货日期:{{item?.createTime}}</p> | ||||
|               </div> | ||||
|             </div> | ||||
|           </div> | ||||
|           <p class="time-info">装货时间:{{i?.loadingTime}}</p> | ||||
|         </div> | ||||
|       </div> | ||||
|       <div nz-col [nzSpan]="12"> | ||||
|         <div class="handling-info p-md"> | ||||
|           <div class="flex" *ngFor="let item of i?.unLoadingPlaceVOList"> | ||||
|             <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> | ||||
|           <p class="time-info">卸货时间:{{i?.unloadingTime}}</p> | ||||
|         </div> | ||||
|       </div> | ||||
|     </div> | ||||
|   </nz-card> | ||||
|  | ||||
|   <nz-card nzTitle="基本信息"> | ||||
|     <sv-container col="2"> | ||||
|       <sv-title>货物信息</sv-title> | ||||
|       <ng-container *ngFor="let item of i?.goodsInfoVOList"> | ||||
|         <sv label="货物名称"> | ||||
|           {{item.goodsName}} | ||||
|         </sv> | ||||
|         <sv label="货物数量"> | ||||
|           {{item.weight}}顿,{{item.volume}}方,{{item.number}}件 | ||||
|         </sv> | ||||
|       </ng-container> | ||||
|     </sv-container> | ||||
|     <sv-container class="mt-md"> | ||||
|       <sv-title>承运信息</sv-title> | ||||
|       <sv label="司机姓名"> | ||||
|         {{i?.carrierInformationVO?.driverName}} | ||||
|       </sv> | ||||
|       <sv label="手机号"> | ||||
|         {{i?.carrierInformationVO?.driverTelephone}} | ||||
|       </sv> | ||||
|       <sv label="车牌号"> | ||||
|         {{i?.carrierInformationVO?.driverLicensePlate}} | ||||
|       </sv> | ||||
|     </sv-container> | ||||
|   </nz-card> | ||||
|  | ||||
|   <nz-card nzTitle="服务信息"> | ||||
|     <sv-container> | ||||
|       <sv label="服务类型"> | ||||
|         {{i?.carrierInformationVO?.serviceTypeLabel}} | ||||
|       </sv> | ||||
|       <sv label="货物价值"> | ||||
|         {{i?.goodsValue}} | ||||
|       </sv> | ||||
|       <sv label="保价费金额"> | ||||
|         {{i?.insuranceAmount |currency}} 元 | ||||
|       </sv> | ||||
|     </sv-container> | ||||
|   </nz-card> | ||||
|   <nz-card nzTitle="运费信息(到货后15天内支付运费)"> | ||||
|     <st [data]="i?.expenseList" [columns]="expenseColumns" [page]="{show:false}"> | ||||
|       <ng-template st-row="total" let-item> | ||||
|         <div> | ||||
|           {{(item.price * item.rate) | currency}} | ||||
|           <span>(含附加费)</span> | ||||
|         </div> | ||||
|           <div *ngIf="item.type === 2 || item.type === '2'"> | ||||
|           <p>卸货地:{{item?.detailedAddress}}</p> | ||||
|           <p>联系人:{{item?.appUserName}}/{{item?.contractTelephone}}</p> | ||||
|           <p>卸货日期:{{item?.modifyTime}}</p> | ||||
|         </div> | ||||
|         </div> | ||||
|       </div> | ||||
|     </div> | ||||
|     <div nz-col nzSpan="5"> | ||||
|       <div class="source-info bdr bdl pl-md"> | ||||
|         <div *ngFor="let item of dataList?.goodsInfoVOList; let i = index"> | ||||
|         <h3 *ngIf="i === 0" style="font-weight: 700;">货物信息</h3> | ||||
|         <p>货物名称:{{item?.goodsName}}</p> | ||||
|         <p>货物数量:{{item?.weight}}吨/{{item?.volume}}立方</p> | ||||
|         <p>用车需求:{{item?.vehicleDemand}}</p> | ||||
|         </div> | ||||
|       </div> | ||||
|     </div> | ||||
|     <div nz-col nzSpan="5"> | ||||
|       <div class="source-info bdr pl-md"> | ||||
|         <h3 style="font-weight: 700;">承运信息</h3> | ||||
|         <p>网络货运人:{{dataList?.carrierInformationVO?.enterpriseInfoName}}</p> | ||||
|         <p>服务类型:{{dataList?.carrierInformationVO?.serviceType === 1 ? '抢单' : '指派'}}</p> | ||||
|         <p>司机姓名:{{dataList?.carrierInformationVO?.driverName}}</p> | ||||
|         <p>手机号:{{dataList?.carrierInformationVO?.driverTelephone}}</p> | ||||
|         <p>车牌号:{{dataList?.carrierInformationVO?.driverLicensePlate}}</p> | ||||
|       </div> | ||||
|     </div> | ||||
|     <div nz-col nzSpan="5"> | ||||
|       <div class="source-info bdr pl-md"> | ||||
|         <h3 style="font-weight: 700;">服务信息</h3> | ||||
|         <p>货物价值:{{dataList?.goodsInfoList?.goodsName}}</p> | ||||
|         <p>保价费金额:{{dataList?.goodsInfoList?.goodsName}}</p> | ||||
|       </div> | ||||
|     </div> | ||||
|     <div class="source-info pl-md"> | ||||
|       <h3 style="font-weight: 700;">补充信息</h3> | ||||
|       <p>{{dataList?.supplementaryInformationVO?.stateReceipt === 2 ? '不需要回单' : '需要回单'}}</p> | ||||
|       <p>联系人:{{dataList?.supplementaryInformationVO?.receiptUserId}}</p> | ||||
|       <p>联系电话:{{dataList?.supplementaryInformationVO?.remarks}}</p> | ||||
|       <p>所在地区:{{dataList?.supplementaryInformationVO?.remarks}}</p> | ||||
|       <p>详细地址:{{dataList?.supplementaryInformationVO?.receiptAddress}}</p> | ||||
|       <p>备注:{{dataList?.supplementaryInformationVO?.remarks}}</p> | ||||
|     </div> | ||||
|   </div> | ||||
|   <nz-divider></nz-divider> | ||||
|   <div nz-row> | ||||
|     <div class="freight-info-box"> | ||||
|       <h3 style="font-weight: 700;">运费信息</h3> | ||||
|       <div class="text-right"> | ||||
|         <p>预付:{{dataList?.shippingInformationVO?.prePay | currency: '¥' }}</p> | ||||
|         <p>油卡:{{dataList?.shippingInformationVO?.oilCardPay | currency: '¥'}}</p> | ||||
|         <p>到付:{{dataList?.shippingInformationVO?.toPay | currency: '¥'}}</p> | ||||
|         <p>回单付:{{dataList?.shippingInformationVO?.receiptPay | currency: '¥'}}</p> | ||||
|         <p>保险费:{{dataList?.shippingInformationVO?.insuranceFee | currency: '¥'}}</p> | ||||
|         <p>附加费保险费:{{dataList?.shippingInformationVO?.appendFee | currency: '¥'}}</p> | ||||
|       </div> | ||||
|     </div> | ||||
|     <nz-divider></nz-divider> | ||||
|     <div class="freight-info-box" nz-row> | ||||
|       </ng-template> | ||||
|     </st> | ||||
|     <div class="freight-info-box mt-md" nz-row> | ||||
|       <div nz-col nzSpan="24"> | ||||
|         <h3 class="text-right"><label>总计 :</label> <span class="text-error-dark text-xl">{{dataList?.shippingInformationVO?.totalFee |  currency: '¥' }}</span></h3> | ||||
|       </div> | ||||
|  | ||||
|         <h3> | ||||
|           <label>总计 :</label> | ||||
|           <span class="text-error-dark text-xl"> | ||||
|             {{totalExpensePrice | currency}} | ||||
|           </span> | ||||
|           <span>(运费¥3500.00含附加运费¥191.98)</span> | ||||
|         </h3> | ||||
|       </div> | ||||
|     </div> | ||||
|   <nz-divider></nz-divider> | ||||
|   <div nz-row> | ||||
|     <nz-card nzTitle="操作日志" style="width: 100%;"> | ||||
|   </nz-card> | ||||
|   <nz-card nzTitle="补充信息"> | ||||
|     <sv-container> | ||||
|       <sv label="是否回单"> | ||||
|         {{i?.supplementaryInformationVO?.stateReceipt?'是':'否'}} | ||||
|       </sv> | ||||
|       <sv label="回单类型"> | ||||
|         {{i?.supplementaryInformationVO?.receiptTypeLabel}} | ||||
|       </sv> | ||||
|       <sv label="所在地区"> | ||||
|         {{i?.supplementaryInformationVO?.area}} | ||||
|       </sv> | ||||
|       <sv label="详细地址"> | ||||
|         {{i?.supplementaryInformationVO?.address}} | ||||
|       </sv> | ||||
|       <sv label="备注"> | ||||
|         {{i?.supplementaryInformationVO?.remarks}} | ||||
|       </sv> | ||||
|     </sv-container> | ||||
|   </nz-card> | ||||
|   <nz-card nzTitle="操作日志"> | ||||
|     <st #st [data]="i?.auditRecordList" [columns]="logColumns" [ps]="0" [page]="{ show: false, showSize: false }"> | ||||
|     </st> | ||||
|   </nz-card> | ||||
| </div> | ||||
| </nz-card> | ||||
| @ -1,25 +1,37 @@ | ||||
| :host { | ||||
|     .btn-size{ | ||||
|         font-size: 14px; | ||||
|     } | ||||
|     .bdr{ | ||||
|         border-right: 1px solid #ccc; | ||||
|     } | ||||
|     .bdl{ | ||||
|         border-left: 1px solid #ccc; | ||||
|     } | ||||
|     .title{ | ||||
|         font-size: 26; | ||||
|         font-weight: bold; | ||||
|     } | ||||
|   .source-info { | ||||
|     min-height: 210px; | ||||
|  | ||||
|     p { | ||||
|       margin-bottom: .5em; | ||||
|     } | ||||
|   } | ||||
|  | ||||
|   .btn-size { | ||||
|     font-size: 14px; | ||||
|   } | ||||
|  | ||||
|   .bdr { | ||||
|     border-right: 1px solid #ccc; | ||||
|   } | ||||
|  | ||||
|   .bdl { | ||||
|     border-left: 1px solid #ccc; | ||||
|   } | ||||
|  | ||||
|   .title { | ||||
|     font-weight: bold; | ||||
|     font-size: 26; | ||||
|   } | ||||
|  | ||||
|   .freight-info-box { | ||||
|     width: 95%; | ||||
|  | ||||
|     p { | ||||
|       margin-bottom: 5px; | ||||
|     } | ||||
|   } | ||||
|  | ||||
|   .freigth-label { | ||||
|     display: inline-block; | ||||
|     width: 50px; | ||||
| @ -34,4 +46,39 @@ | ||||
|       } | ||||
|     } | ||||
|   } | ||||
|  | ||||
|   .handling-info { | ||||
|     min-height: 176px; | ||||
|     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; | ||||
|     } | ||||
|   } | ||||
| } | ||||
| @ -1,17 +1,12 @@ | ||||
| /* | ||||
|  * @Author: your name | ||||
|  * @Date: 2021-12-03 11:10:14 | ||||
|  * @LastEditTime: 2021-12-09 20:54:28 | ||||
|  * @LastEditors: Please set LastEditors | ||||
|  * @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE | ||||
|  * @FilePath: \tms-obc-web\src\app\routes\supply-management\components\vehicle-detail\vehicle-detail.component.ts | ||||
|  */ | ||||
| import { Component, OnInit } from '@angular/core'; | ||||
| import { ActivatedRoute, Router } from '@angular/router'; | ||||
| import { STColumn } from '@delon/abc/st'; | ||||
| import { _HttpClient } from '@delon/theme'; | ||||
| import { NzMessageService } from 'ng-zorro-antd/message'; | ||||
| import { NzModalService } from 'ng-zorro-antd/modal'; | ||||
| import { SupplyManagementService } from '../../services/supply-management.service'; | ||||
| import { SupplyManagementAssignedCarComponent } from '../assigned-car/assigned-car.component'; | ||||
| import { SupplyManagementUpdateExternalSnComponent } from '../update-external-sn/update-external-sn.component'; | ||||
|  | ||||
| @Component({ | ||||
|   selector: 'app-supply-management-vehicle-detail', | ||||
| @ -22,59 +17,144 @@ export class SupplyManagementVehicleDetailComponent implements OnInit { | ||||
|  | ||||
|   id = this.route.snapshot.params.id; | ||||
|   i: any; | ||||
|   dataList: any; | ||||
|   logColumns: STColumn[] = [ | ||||
|     { title: '内容', index: 'theme' }, | ||||
|     { title: '操作人', index: 'operationUserPhone' }, | ||||
|     { title: '操作时间', index: ' createTime' }, | ||||
|   ]; | ||||
|   serviceType: any = { | ||||
|     1: '抢单', | ||||
|     2: '指派' | ||||
|   } | ||||
|   status: any = { 1: '待接单', 2: '已接单', 3: '已取消' }; | ||||
|   totalExpensePrice = 0; | ||||
|   expenseColumns: STColumn[] = [ | ||||
|     { | ||||
|       title: '款项', | ||||
|       width: '150px', | ||||
|       className: 'text-center', | ||||
|       index: 'expenseName' | ||||
|     }, | ||||
|     { | ||||
|       title: '总费用(元)', | ||||
|       width: '150px', | ||||
|       className: 'text-center', | ||||
|       render: 'total' | ||||
|     }, | ||||
|     { | ||||
|       title: '协议金额(元)', | ||||
|       width: '150px', | ||||
|       className: 'text-center', | ||||
|       index: 'price' | ||||
|     }, | ||||
|   ]; | ||||
|  | ||||
|   constructor( | ||||
|     private route: ActivatedRoute, | ||||
|     private msgSrv: NzMessageService, | ||||
|     private service: SupplyManagementService, | ||||
|     private router: Router,private ar: ActivatedRoute | ||||
|     public modal: NzModalService, | ||||
|     public router: Router | ||||
|   ) { | ||||
|  | ||||
|   } | ||||
|  | ||||
|   ngOnInit(): void { | ||||
|     console.log(this.id) | ||||
|     if(this.id) { | ||||
|       this.getDetailList(this.id) | ||||
|     } | ||||
|     this.getGoodsSourceDetail() | ||||
|   } | ||||
|  | ||||
|   // 获取录单员  | ||||
|   getDetailList(id: any) { | ||||
|     const params = { | ||||
|       id: id | ||||
|     }; | ||||
|    this.service.request(`${this.service.$api_get_getCompleteVehicleDetail}`, params).subscribe((res) => { | ||||
|       console.log(res) | ||||
|       this.dataList = res | ||||
|   getGoodsSourceDetail() { | ||||
|     this.service.request(this.service.$api_get_getCompleteVehicleDetail, { id: this.id }).subscribe(res => { | ||||
|       const expenseList = res?.expenseList || []; | ||||
|       this.totalExpensePrice = 0; | ||||
|       expenseList.forEach((e: any) => { | ||||
|         this.totalExpensePrice += e?.price * e?.rate; | ||||
|       }); | ||||
|       this.i = { ...res, totalExpensePrice: this.totalExpensePrice }; | ||||
|  | ||||
|     }) | ||||
|   } | ||||
|   // 修改货源  | ||||
|   modification() { | ||||
|     this.router.navigate(['/supply-management/vehicle-amend', this.id], { | ||||
|   /** | ||||
|    * 修改货源 | ||||
|    */ | ||||
|   updateGoodsSource(record: any) { | ||||
|     this.router.navigate(['./pbg/onecar-publish'], { | ||||
|       queryParams: { | ||||
|         sta: 1 | ||||
|       }, | ||||
|         id: record?.id, | ||||
|         type: 'edit' | ||||
|       } | ||||
|     }) | ||||
|   } | ||||
|   //  再下一单 | ||||
|   nextOrder() { | ||||
|     this.router.navigate(['/supply-management/vehicle-amend', this.id], { | ||||
|  | ||||
|   /** | ||||
|    * 取消货源 | ||||
|    */ | ||||
|   cancleGoodsSource() { | ||||
|     this.modal.confirm({ | ||||
|       nzTitle: '<b>确定取消货源吗?</b>', | ||||
|       nzContent: `<b>取消后不可恢复,谨慎操作</b>`, | ||||
|       nzOnOk: () => | ||||
|             this.service.msgSrv.success('操作成功!') | ||||
|         // this.service.request(this.service.$api_cancle_goods_source, { id: this.i.id }).subscribe((res) => { | ||||
|         //   if (res === true) { | ||||
|         //     this.service.msgSrv.success('操作成功!'); | ||||
|         //     this.getGoodsSourceDetail(); | ||||
|         //   } | ||||
|         // }), | ||||
|     }) | ||||
|   } | ||||
|  | ||||
|   /** | ||||
|    *再下一单 | ||||
|    * @param record | ||||
|    */ | ||||
|   placeOrder(record: any) { | ||||
|     this.router.navigate(['./pbg/onecar-publish'], { | ||||
|       queryParams: { | ||||
|         sta: 2 | ||||
|       }, | ||||
|         id: record?.id, | ||||
|         type: 'add' | ||||
|       } | ||||
|     }) | ||||
|   } | ||||
|   /** | ||||
|   * 编辑外部货源号 | ||||
|   * @param item st当前行对象 | ||||
|   */ | ||||
|   editEnternalSn(item: any) { | ||||
|     const modalRef = this.modal.create({ | ||||
|       nzWidth: '400px', | ||||
|       nzContent: SupplyManagementUpdateExternalSnComponent, | ||||
|       nzComponentParams: { | ||||
|         orderObject: item, | ||||
|       }, | ||||
|       nzFooter: null, | ||||
|       nzClosable: false | ||||
|     }); | ||||
|   } | ||||
|  | ||||
|   /** | ||||
|  * 重新指派 | ||||
|  */ | ||||
|   assignedCar(item: any) { | ||||
|     const modalRef = this.modal.create({ | ||||
|       nzTitle: '指派熟车', | ||||
|       nzWidth: '1200px', | ||||
|       nzContent: SupplyManagementAssignedCarComponent, | ||||
|       nzComponentParams: { | ||||
|         i: item, | ||||
|       }, | ||||
|       nzFooter: null, | ||||
|  | ||||
|     }); | ||||
|     modalRef.afterClose.subscribe((result) => { | ||||
|       if (result) { | ||||
|         this.getGoodsSourceDetail(); | ||||
|       } | ||||
|     }); | ||||
|   } | ||||
|  | ||||
|   goBack() { | ||||
|     window.history.go(-1); | ||||
|   } | ||||
|  | ||||
| } | ||||
|  | ||||
| @ -83,13 +83,13 @@ export class SupplyManagementVehicleComponent implements OnInit { | ||||
|           } as SFSelectWidgetSchema, | ||||
|         }, | ||||
|         goodsName: { | ||||
|           type: 'string', | ||||
|           title: '货物名称', | ||||
|         | ||||
|           type: 'string', | ||||
|           default: '', | ||||
|           ui: { | ||||
|               widget: 'dict-select', | ||||
|               // params: { dictKey: 'GoodsName' }, | ||||
|             placeholder: '请选择', | ||||
|             widget: 'select', | ||||
|             // asyncData: () =>[] | ||||
|  | ||||
|           } as SFSelectWidgetSchema, | ||||
|         }, | ||||
|         loadingPlace: { | ||||
| @ -280,7 +280,7 @@ export class SupplyManagementVehicleComponent implements OnInit { | ||||
|           { | ||||
|             text: '取消货源', | ||||
|             // iif: item => item.auditStatus === 1 || item.auditStatus === 2, | ||||
|             // click: (_record) => this.delOne(_record), | ||||
|             click: (_record) => this.cancleGoodsSource(_record), | ||||
|           }, | ||||
|           { | ||||
|             text: '再下一单', | ||||
| @ -288,7 +288,7 @@ export class SupplyManagementVehicleComponent implements OnInit { | ||||
|           }, | ||||
|           { | ||||
|             text: '重新指派', | ||||
|             click: (_record) => this.assignedCar(_record), | ||||
|             // click: (_record) => this.assignedCar(_record), | ||||
|             // iif: item =>  item.auditStatus === 2, | ||||
|           }, | ||||
|         ], | ||||
| @ -430,6 +430,23 @@ export class SupplyManagementVehicleComponent implements OnInit { | ||||
|         sta: 2 | ||||
|       }, | ||||
|     }) | ||||
|   } | ||||
|     /** | ||||
|    * 取消货源 | ||||
|    */ | ||||
|      cancleGoodsSource(record: any) { | ||||
|       this.modal.confirm({ | ||||
|         nzTitle: '<b>确定取消货源吗?</b>', | ||||
|         nzContent: `<b>取消后不可恢复,谨慎操作</b>`, | ||||
|         nzOnOk: () => | ||||
|           this.service.request(this.service.$api_cancle_goods_source, [record.id]).subscribe((res) => { | ||||
|             if (res === true) { | ||||
|               this.service.msgSrv.success('操作成功!'); | ||||
|               this.st?.reload(); | ||||
|               this.getGoodsSourceStatistical(); | ||||
|             } | ||||
|           }), | ||||
|       }) | ||||
|     } | ||||
|      // 获取货源状态统计 | ||||
|      getGoodsSourceStatistical() { | ||||
|  | ||||
| @ -1,7 +1,7 @@ | ||||
| /* | ||||
|  * @Author: your name | ||||
|  * @Date: 2021-12-03 11:10:14 | ||||
|  * @LastEditTime: 2021-12-14 20:09:41 | ||||
|  * @LastEditTime: 2021-12-20 14:26:54 | ||||
|  * @LastEditors: Please set LastEditors | ||||
|  * @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE | ||||
|  * @FilePath: \tms-obc-web\src\app\routes\supply-management\services\supply-management.service.ts | ||||
| @ -13,6 +13,8 @@ import { BaseService } from 'src/app/shared/services'; | ||||
|   providedIn: 'root' | ||||
| }) | ||||
| export class SupplyManagementService extends BaseService { | ||||
|   // 取消货源 | ||||
|   $api_cancle_goods_source = `/api/sdc/goodsResourceOperate/cancelSource`;  | ||||
|   // 整车获取货源表详情 | ||||
|   $api_get_getCompleteVehicleDetail = `/api/sdc/goodsResourceOperate/getWholeDetail`; | ||||
|   // 大宗获取货源表详情 | ||||
|  | ||||
| @ -1,8 +1,8 @@ | ||||
| /* | ||||
|  * @Author: your name | ||||
|  * @Date: 2021-12-03 11:10:14 | ||||
|  * @LastEditTime: 2021-12-06 13:51:59 | ||||
|  * @LastEditors: your name | ||||
|  * @LastEditTime: 2021-12-20 13:38:33 | ||||
|  * @LastEditors: Please set LastEditors | ||||
|  * @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE | ||||
|  * @FilePath: \tms-obc-web\src\app\routes\supply-management\supply-management-routing.module.ts | ||||
|  */ | ||||
| @ -11,7 +11,6 @@ import { RouterModule, Routes } from '@angular/router'; | ||||
| import { SupplyManagementIndexComponent } from './components/index/index.component'; | ||||
| import { SupplyManagementBulkComponent } from './components/bulk/bulk.component'; | ||||
| import { SupplyManagementVehicleComponent } from './components/vehicle/vehicle.component'; | ||||
| import { SupplyManagementBulkDetailComponent } from './components/bulk-detail/bulk-detail.component'; | ||||
| import { SupplyManagementVehicleDetailComponent } from './components/vehicle-detail/vehicle-detail.component'; | ||||
| import { SupplyManagementAddDriversComponent } from './components/add-drivers/add-drivers.component'; | ||||
| import { SupplyManagementOnecarPublishComponent } from './components/onecar-publish/onecar-publish.component'; | ||||
| @ -19,7 +18,7 @@ import { SupplyManagementBulkPublishComponent } from './components/bulk-publish/ | ||||
|  | ||||
| const routes: Routes = [ | ||||
|   { path: 'index', component: SupplyManagementIndexComponent }, | ||||
|   { path: 'bulk-detail/:id', component: SupplyManagementBulkDetailComponent }, | ||||
|   // { path: 'bulk-detail/:id', component: SupplyManagementBulkDetailComponent }, | ||||
|   { path: 'vehicle-detail/:id', component: SupplyManagementVehicleDetailComponent }, | ||||
|   { path: 'add-drivers', component: SupplyManagementAddDriversComponent }, | ||||
|   { path: 'vehicle-amend/:id', component: SupplyManagementOnecarPublishComponent }, | ||||
|  | ||||
| @ -1,7 +1,7 @@ | ||||
| /* | ||||
|  * @Author: your name | ||||
|  * @Date: 2021-12-03 11:10:14 | ||||
|  * @LastEditTime: 2021-12-14 20:40:01 | ||||
|  * @LastEditTime: 2021-12-20 13:38:26 | ||||
|  * @LastEditors: Please set LastEditors | ||||
|  * @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE | ||||
|  * @FilePath: \tms-obc-web\src\app\routes\supply-management\supply-management.module.ts | ||||
| @ -17,7 +17,6 @@ import { SupplyManagementUpdateFreightComponent } from './components/update-frei | ||||
| import { SupplyManagementAssignedCarComponent } from './components/assigned-car/assigned-car.component'; | ||||
| import { SupplyManagementQrcodePageComponent } from './components/qrcode-page/qrcode-page.component'; | ||||
| import { SupplyManagementUpdateExternalSnComponent } from './components/update-external-sn/update-external-sn.component'; | ||||
| import { SupplyManagementBulkDetailComponent } from './components/bulk-detail/bulk-detail.component'; | ||||
| import { SupplyManagementVehicleDetailComponent } from './components/vehicle-detail/vehicle-detail.component'; | ||||
| import { SupplyManagementAddDriversComponent } from './components/add-drivers/add-drivers.component'; | ||||
| import { SupplyManagementOnecarPublishComponent } from './components/onecar-publish/onecar-publish.component'; | ||||
| @ -28,6 +27,7 @@ import { SupplyManagementBulkPublishComponent } from './components/bulk-publish/ | ||||
| import { PublishAddressListComponent } from './components/onecar-publish/address-list/address-list.component'; | ||||
| import { PublishSuccessComponent } from './components/onecar-publish/publish-success/publish-success.component'; | ||||
|  | ||||
|  | ||||
| const COMPONENTS: Type<void>[] = [ | ||||
|   SupplyManagementIndexComponent, | ||||
|   SupplyManagementBulkComponent, | ||||
| @ -37,7 +37,6 @@ const COMPONENTS: Type<void>[] = [ | ||||
|   SupplyManagementAssignedCarComponent, | ||||
|   SupplyManagementQrcodePageComponent, | ||||
|   SupplyManagementUpdateExternalSnComponent, | ||||
|   SupplyManagementBulkDetailComponent, | ||||
|   SupplyManagementVehicleDetailComponent, | ||||
|   SupplyManagementAddDriversComponent, | ||||
|   SupplyManagementOnecarPublishComponent, | ||||
|  | ||||
| @ -1,7 +1,7 @@ | ||||
| <!-- | ||||
|  * @Author: your name | ||||
|  * @Date: 2021-12-03 15:31:52 | ||||
|  * @LastEditTime: 2021-12-17 14:57:52 | ||||
|  * @LastEditTime: 2021-12-20 15:06:25 | ||||
|  * @LastEditors: Please set LastEditors | ||||
|  * @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE | ||||
|  * @FilePath: \tms-obc-web\src\app\routes\order-management\components\vehicle-detail\vehicle-detail.component.html | ||||
| @ -52,10 +52,12 @@ | ||||
|         </div> | ||||
|         <div *ngIf="item.type === 2 || item.type === '2'"> | ||||
|         <p>卸货地:{{item?.detailedAddress}}</p> | ||||
|          | ||||
|         <p>联系人:{{item?.appUserName}}/{{item?.contractTelephone}}</p> | ||||
|         <p>卸货日期:{{item?.modifyTime}}</p> | ||||
|       </div> | ||||
|       </div> | ||||
|        | ||||
|     </div> | ||||
|     <div nz-col nzSpan="5"> | ||||
|       <div class="source-info bdr bdl pl-md"> | ||||
| @ -84,10 +86,10 @@ | ||||
|     </div> | ||||
|     <div class="source-info pl-md"> | ||||
|       <h3>补充信息</h3> | ||||
|       <p style="color: #1890ff;">协议附件</p> | ||||
|       <p style="color: #1890ff;"> 装车附件</p> | ||||
|       <p style="color: #1890ff;">卸货附件</p> | ||||
|       <p style="color: #1890ff;">回单附件</p> | ||||
|       <p style="color: #1890ff;" (click)="agreement('1')">协议附件</p> | ||||
|       <p style="color: #1890ff;" (click)="agreement('2')"> 装车附件</p> | ||||
|       <p style="color: #1890ff;" (click)="agreement('3')">卸货附件</p> | ||||
|       <p style="color: #1890ff;" (click)="agreement('4')">回单附件</p> | ||||
|     </div> | ||||
|   </div> | ||||
|   <nz-divider></nz-divider> | ||||
| @ -96,18 +98,16 @@ | ||||
|       <h3>运费信息</h3> | ||||
|       <div class="text-right"> | ||||
|         <p><label class="freigth-label">收款人:</label><span>{{i?.payee?.name}} /{{i?.payee?.phone}} / {{i?.payee?.phone}}</span></p> | ||||
|         <p><label class="freigth-label">预付:</label><span>{{400 | currency: '¥' }}</span></p> | ||||
|         <p><label class="freigth-label">油卡:</label><span>{{400 | currency: '¥' }}</span></p> | ||||
|         <p><label class="freigth-label">到付:</label><span>{{400 | currency: '¥' }}</span></p> | ||||
|         <p><label class="freigth-label">回单付:</label><span>{{400 | currency: '¥'}}</span></p> | ||||
|         <p><label class="freigth-label">附加费:</label><span>{{400 | currency: '¥' }}</span></p> | ||||
|         <div *ngFor="let item of i?.billExpenseDetailVOList"> | ||||
|           <p><label class="freigth-label">{{item?.costName}}:</label><span>{{ item?.price| currency: '¥' }}</span></p> | ||||
|         </div> | ||||
|       </div> | ||||
|     </div> | ||||
|     <nz-divider></nz-divider> | ||||
|     <div class="freight-info-box" nz-row> | ||||
|       <div nz-col nzSpan="24"> | ||||
|         <h3 class="text-right"><label>总计 :</label> <span class="text-error-dark text-xl">{{400 | currency }}</span></h3> | ||||
|         <h3 class="text-right">未支付</h3> | ||||
|         <h3 class="text-right"><label>总计 :</label> <span class="text-error-dark text-xl">{{i?.freight | currency: '¥' }}</span></h3> | ||||
|         <h3 class="text-right">{{i?.wayBillStatusLabel}}</h3> | ||||
|       </div> | ||||
|  | ||||
|     </div> | ||||
| @ -152,3 +152,12 @@ | ||||
|     </nz-card> | ||||
|   </div> | ||||
| </nz-card> | ||||
| <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> | ||||
|   </ng-template> | ||||
| </nz-modal> | ||||
| @ -1,7 +1,7 @@ | ||||
| /* | ||||
|  * @Author: your name | ||||
|  * @Date: 2021-12-03 15:31:52 | ||||
|  * @LastEditTime: 2021-12-17 14:59:03 | ||||
|  * @LastEditTime: 2021-12-20 16:23:36 | ||||
|  * @LastEditors: Please set LastEditors | ||||
|  * @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE | ||||
|  * @FilePath: \tms-obc-web\src\app\routes\order-management\components\vehicle-detail\vehicle-detail.component.ts | ||||
| @ -12,7 +12,7 @@ import { STColumn } from '@delon/abc/st'; | ||||
| import { _HttpClient } from '@delon/theme'; | ||||
| import { NzMessageService } from 'ng-zorro-antd/message'; | ||||
| import { NzModalService } from 'ng-zorro-antd/modal'; | ||||
| import { SupplyManagementService } from '../../services/waybill-management.service'; | ||||
| import { WaybillManagementServe } from '../../services/waybill-management.service'; | ||||
| @Component({ | ||||
|   selector: 'app-supply-management-bulk-detail', | ||||
|   templateUrl: './bulk-detail.component.html', | ||||
| @ -22,16 +22,18 @@ export class WaybillManagementBulkeDetailComponent implements OnInit { | ||||
|  | ||||
|   id = this.route.snapshot.params.id; | ||||
|   i: any; | ||||
|   isVisible = false; | ||||
|   logColumns: STColumn[] = [ | ||||
|     { title: '时间', index: 'operationUserPhone' }, | ||||
|     { title: '地点', index: ' createTime' }, | ||||
|   ]; | ||||
|   imges: any; | ||||
|   unLoadingPlaceVOList: any = []; | ||||
|  | ||||
|   constructor( | ||||
|     private route: ActivatedRoute, | ||||
|     private msgSrv: NzMessageService, | ||||
|     private service: SupplyManagementService, | ||||
|     private service: WaybillManagementServe, | ||||
|     private modalService: NzModalService | ||||
|   ) { | ||||
|  | ||||
| @ -66,5 +68,24 @@ export class WaybillManagementBulkeDetailComponent implements OnInit { | ||||
|   goBack() { | ||||
|     window.history.go(-1); | ||||
|   } | ||||
|    | ||||
|   agreement(value: any) { | ||||
|     console.log('123') | ||||
|     console.log(value) | ||||
|     if(value === '1') { | ||||
|       this.imges = this.i?.supplementAgreement | ||||
|     } else if (value === '2') { | ||||
|       this.imges = this.i?.loadingCertificate | ||||
|     } else if (value === '3') { | ||||
|       this.imges = this.i?.unLoadingCertificate | ||||
|     } else if (value === '4') { | ||||
|       this.imges = this.i?.receiptCertificate | ||||
|     } | ||||
|     this.isVisible = true; | ||||
|   } | ||||
|   handleCancel() { | ||||
|     this.isVisible = false | ||||
| } | ||||
| handleOK() { | ||||
|   this.isVisible = false | ||||
| } | ||||
| } | ||||
|  | ||||
| @ -6,7 +6,9 @@ import { ShipperBaseService } from '@shared'; | ||||
| import { NzModalService } from 'ng-zorro-antd/modal'; | ||||
| import { of } from 'rxjs'; | ||||
| import { map } from 'rxjs/operators'; | ||||
| import { SupplyManagementService } from '../../services/waybill-management.service'; | ||||
| import { VehicleSureArriveComponent } from 'src/app/routes/order-management/modal/vehicle/sure-arrive/sure-arrive.component'; | ||||
| import { VehicleSureDepartComponent } from 'src/app/routes/order-management/modal/vehicle/sure-depart/sure-depart.component'; | ||||
| import { WaybillManagementServe } from '../../services/waybill-management.service'; | ||||
|  | ||||
|  | ||||
| @Component({ | ||||
| @ -55,7 +57,7 @@ tabs = { | ||||
|   receivedQuantity: 0, | ||||
|   stayQuantity: 0 | ||||
| }; | ||||
|   constructor(public service: SupplyManagementService, private modal: NzModalService, public service2: ShipperBaseService) { } | ||||
|   constructor(public service: WaybillManagementServe, private modal: NzModalService, public service2: ShipperBaseService) { } | ||||
|  | ||||
|   /** | ||||
|  * 查询参数 | ||||
| @ -422,6 +424,14 @@ tabs = { | ||||
|             text: '查看评价', | ||||
|             click: (_record) => this.viewEvaluate(_record), | ||||
|           }, | ||||
|           { | ||||
|             text: '确认发车', | ||||
|             click: (_record) => this.sureDepart(_record), | ||||
|           }, | ||||
|           { | ||||
|             text: '确认到车', | ||||
|             click: (_record) => this.sureArrive(_record), | ||||
|           }, | ||||
|         ], | ||||
|       }, | ||||
|     ]; | ||||
| @ -602,4 +612,31 @@ tabs = { | ||||
|       } | ||||
|     }) | ||||
|   } | ||||
|     //  *确认发车 | ||||
|     | ||||
|     sureDepart(item: any) { | ||||
|       const modalRef = this.modal.create({ | ||||
|         nzTitle: '确认发车', | ||||
|         nzWidth: '50%', | ||||
|         nzContent: VehicleSureDepartComponent, | ||||
|         nzComponentParams: { | ||||
|           i: item, | ||||
|          Status: 2 | ||||
|         }, | ||||
|         nzFooter: null | ||||
|       }); | ||||
|     } | ||||
|     // 确认到车 | ||||
|     sureArrive(item: any) { | ||||
|       const modalRef = this.modal.create({ | ||||
|         nzTitle: '确认到车', | ||||
|         nzWidth: '50%', | ||||
|         nzContent: VehicleSureArriveComponent, | ||||
|         nzComponentParams: { | ||||
|           i: item, | ||||
|          Status: 2 | ||||
|         }, | ||||
|         nzFooter: null | ||||
|       }); | ||||
|     } | ||||
| } | ||||
|  | ||||
| @ -1,7 +1,7 @@ | ||||
| <!-- | ||||
|  * @Author: your name | ||||
|  * @Date: 2021-12-03 15:31:52 | ||||
|  * @LastEditTime: 2021-12-20 10:12:37 | ||||
|  * @LastEditTime: 2021-12-20 15:07:51 | ||||
|  * @LastEditors: Please set LastEditors | ||||
|  * @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE | ||||
|  * @FilePath: \tms-obc-web\src\app\routes\order-management\components\vehicle-detail\vehicle-detail.component.html | ||||
| @ -84,10 +84,10 @@ | ||||
|     </div> | ||||
|     <div class="source-info pl-md"> | ||||
|       <h3>补充信息</h3> | ||||
|       <p style="color: #1890ff;">协议附件</p> | ||||
|       <p style="color: #1890ff;"> 装车附件</p> | ||||
|       <p style="color: #1890ff;">卸货附件</p> | ||||
|       <p style="color: #1890ff;">回单附件</p> | ||||
|       <p style="color: #1890ff;" (click)="agreement('1')">协议附件</p> | ||||
|       <p style="color: #1890ff;" (click)="agreement('2')"> 装车附件</p> | ||||
|       <p style="color: #1890ff;" (click)="agreement('3')">卸货附件</p> | ||||
|       <p style="color: #1890ff;" (click)="agreement('4')">回单附件</p> | ||||
|     </div> | ||||
|   </div> | ||||
|   <nz-divider></nz-divider> | ||||
| @ -104,8 +104,8 @@ | ||||
|     <nz-divider></nz-divider> | ||||
|     <div class="freight-info-box" nz-row> | ||||
|       <div nz-col nzSpan="24"> | ||||
|         <h3 class="text-right"><label>总计 :</label> <span class="text-error-dark text-xl">{{400 | currency }}</span></h3> | ||||
|         <h3 class="text-right">未支付</h3> | ||||
|         <h3 class="text-right"><label>总计 :</label> <span class="text-error-dark text-xl">{{i?.freight | currency: '¥' }}</span></h3> | ||||
|         <h3 class="text-right">{{i?.wayBillStatusLabel}}</h3> | ||||
|       </div> | ||||
|  | ||||
|     </div> | ||||
| @ -114,23 +114,22 @@ | ||||
|   <div nz-row >  | ||||
|     <div nz-col [nzSpan]='12'> | ||||
|       <div  style="position: relative;"> | ||||
|         <div style="height: 24px; width: 90px; background-color: #68758e;position: absolute; top: -109%; left: 0%;color: #fff;text-align: center;">平台支付</div> | ||||
|         <span class="leftPadding">司机运输费666</span> | ||||
|         <span class="leftPadding">1000.00</span> | ||||
|         <span class="leftPadding">未支付</span> | ||||
|         <div style="height: 24px; width: 90px; background-color: #68758e;color: #fff;text-align: center;">平台支付</div> | ||||
|          | ||||
|         <div > | ||||
|           <!-- <p><label class="freigth-label">{{i?.platformPaymentDetail?.costName}}:</label><span>{{ i?.platformPaymentDetail?.price| currency: '¥' }}</span></p> --> | ||||
|           <div *ngFor="let item of i?.platformPaymentDetail"> | ||||
|             <p><label class="freigth-label">{{item?.costName}}:</label><span>{{ item?.price| currency: '¥' }}</span></p> | ||||
|           </div> | ||||
|         </div> | ||||
|       </div> | ||||
|     </div> | ||||
|     <div nz-col [nzSpan]='12'> | ||||
|       <div style="position: relative;"> | ||||
|         <div style="height: 24px; width: 90px; background-color: #68758e;position: absolute; top: -109%; left: 0%;color: #fff;text-align: center;">货主支付</div> | ||||
|         <span class="leftPadding">司机运输费22</span> | ||||
|         <span class="leftPadding">1000.00</span> | ||||
|         <span class="leftPadding">未支付</span> | ||||
|         <div style="height: 24px; width: 90px; background-color: #68758e;color: #fff;text-align: center;">货主支付</div> | ||||
|         <div *ngFor="let item of i?.ownerPaymentDetail?.freightDetail"> | ||||
|           <p><label class="freigth-label">{{item?.costName}}:</label><span>{{ item?.price| currency: '¥' }}</span></p> | ||||
|         </div> | ||||
|       <div> | ||||
|         <span class="leftPadding">附加费</span> | ||||
|         <span class="leftPadding">1000.00</span> | ||||
|         <span class="leftPadding">未支付</span> | ||||
|       </div> | ||||
|     </div> | ||||
|   </div> | ||||
| @ -150,3 +149,12 @@ | ||||
|     </nz-card> | ||||
|   </div> | ||||
| </nz-card> | ||||
| <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> | ||||
|   </ng-template> | ||||
| </nz-modal> | ||||
|  | ||||
| @ -1,7 +1,7 @@ | ||||
| /* | ||||
|  * @Author: your name | ||||
|  * @Date: 2021-12-03 15:31:52 | ||||
|  * @LastEditTime: 2021-12-17 14:38:14 | ||||
|  * @LastEditTime: 2021-12-20 13:55:09 | ||||
|  * @LastEditors: Please set LastEditors | ||||
|  * @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE | ||||
|  * @FilePath: \tms-obc-web\src\app\routes\order-management\components\vehicle-detail\vehicle-detail.component.ts | ||||
| @ -12,7 +12,7 @@ import { STColumn } from '@delon/abc/st'; | ||||
| import { _HttpClient } from '@delon/theme'; | ||||
| import { NzMessageService } from 'ng-zorro-antd/message'; | ||||
| import { NzModalService } from 'ng-zorro-antd/modal'; | ||||
| import { SupplyManagementService } from '../../services/waybill-management.service'; | ||||
| import { WaybillManagementServe } from '../../services/waybill-management.service'; | ||||
| @Component({ | ||||
|   selector: 'app-supply-management-vehicle-detail', | ||||
|   templateUrl: './vehicle-detail.component.html', | ||||
| @ -21,7 +21,9 @@ import { SupplyManagementService } from '../../services/waybill-management.servi | ||||
| export class WaybillManagementVehicleDetailComponent implements OnInit { | ||||
|  | ||||
|   id = this.route.snapshot.params.id; | ||||
|   isVisible = false; | ||||
|   i: any; | ||||
|   imges: any; | ||||
|   logColumns: STColumn[] = [ | ||||
|     { title: '时间', index: 'operationUserPhone' }, | ||||
|     { title: '地点', index: ' createTime' }, | ||||
| @ -31,7 +33,7 @@ export class WaybillManagementVehicleDetailComponent implements OnInit { | ||||
|   constructor( | ||||
|     private route: ActivatedRoute, | ||||
|     private msgSrv: NzMessageService, | ||||
|     private service: SupplyManagementService, | ||||
|     private service: WaybillManagementServe, | ||||
|     private modalService: NzModalService | ||||
|   ) { | ||||
|  | ||||
| @ -65,5 +67,24 @@ export class WaybillManagementVehicleDetailComponent implements OnInit { | ||||
|   goBack() { | ||||
|     window.history.go(-1); | ||||
|   } | ||||
|    | ||||
| handleCancel() { | ||||
|     this.isVisible = false | ||||
| } | ||||
| handleOK() { | ||||
|   this.isVisible = false | ||||
| } | ||||
| agreement(value: any) { | ||||
|   console.log('123') | ||||
|   console.log(value) | ||||
|   if(value === '1') { | ||||
|     this.imges = this.i?.supplementAgreement | ||||
|   } else if (value === '2') { | ||||
|     this.imges = this.i?.loadingCertificate | ||||
|   } else if (value === '3') { | ||||
|     this.imges = this.i?.unLoadingCertificate | ||||
|   } else if (value === '4') { | ||||
|     this.imges = this.i?.receiptCertificate | ||||
|   } | ||||
|   this.isVisible = true; | ||||
| } | ||||
| } | ||||
|  | ||||
| @ -6,7 +6,7 @@ import { ShipperBaseService } from '@shared'; | ||||
| import { NzModalService } from 'ng-zorro-antd/modal'; | ||||
| import { of } from 'rxjs'; | ||||
| import { map } from 'rxjs/operators'; | ||||
| import { SupplyManagementService } from '../../services/waybill-management.service'; | ||||
| import { WaybillManagementServe } from '../../services/waybill-management.service'; | ||||
|  | ||||
|  | ||||
| @Component({ | ||||
| @ -51,7 +51,7 @@ tabs = { | ||||
|   receivedQuantity: 0, | ||||
|   stayQuantity: 0 | ||||
| }; | ||||
|   constructor(public service: SupplyManagementService, private modal: NzModalService, public service2: ShipperBaseService) { } | ||||
|   constructor(public service: WaybillManagementServe, private modal: NzModalService, public service2: ShipperBaseService) { } | ||||
|  | ||||
|   /** | ||||
|  * 查询参数 | ||||
|  | ||||
| @ -1,3 +1,4 @@ | ||||
| import { WaybillManagementBulkComponent } from './../components/bulk/bulk.component'; | ||||
| /* | ||||
|  * @Author: your name | ||||
|  * @Date: 2021-12-07 14:52:29 | ||||
| @ -12,7 +13,7 @@ import { BaseService } from 'src/app/shared/services'; | ||||
| @Injectable({ | ||||
|   providedIn: 'root' | ||||
| }) | ||||
| export class SupplyManagementService extends BaseService { | ||||
| export class WaybillManagementServe extends BaseService { | ||||
|  | ||||
|   $api_get_catalogue_member = `/user?_allow_anonymous=true`; | ||||
|   $api_del_driver = ``; | ||||
| @ -35,6 +36,10 @@ export class SupplyManagementService extends BaseService { | ||||
|  | ||||
|       // 根据车牌号查询车辆信息 | ||||
|   $api_get_getCarLicenseListByCarNo= `/api/mdc/cuc/carLicenseAudit/operate/getCarLicenseListByCarNo`; | ||||
|    | ||||
|       // 大宗确认发车 | ||||
|   $api_get_insertBulkStartCarInfo= `/api/sdc/wayBillOperate/insertBulkStartCarInfo`; | ||||
|    | ||||
|   constructor(public injector: Injector) { | ||||
|     super(injector) | ||||
|   } | ||||
|  | ||||
| @ -1,7 +1,7 @@ | ||||
| /* | ||||
|  * @Author: your name | ||||
|  * @Date: 2021-11-29 10:04:12 | ||||
|  * @LastEditTime: 2021-12-15 20:50:49 | ||||
|  * @LastEditTime: 2021-12-20 16:55:59 | ||||
|  * @LastEditors: Please set LastEditors | ||||
|  * @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE | ||||
|  * @FilePath: \tms-obc-web\src\app\shared\utils\date.util.ts | ||||
| @ -67,6 +67,8 @@ export class EADateUtil { | ||||
|    * @returns YYYY-MM-DD 00:00:00 | ||||
|    */ | ||||
|   static yearToDateTime(start: Date): number { | ||||
|     console.log('222') | ||||
|     console.log(start) | ||||
|     let Dates : any=''; | ||||
|     if(typeof(start) !== 'string') { | ||||
|         var c = new Date(start);   | ||||
|  | ||||
		Reference in New Issue
	
	Block a user