Merge branch 'develop' of https://gitlab.eascs.com/tms-ui/tms-obc-web into develop
This commit is contained in:
		| @ -27,7 +27,7 @@ | ||||
|                     {{ costInfo?.ltdaccountId }} | ||||
|                 </se> | ||||
|                 <se label="预收金额"> | ||||
|                     {{ costInfo?.premoney |currency }} | ||||
|                     {{ costInfo?.brmmoney |currency }} | ||||
|                 </se> | ||||
|                 <se label="收款类型" required> | ||||
|                     {{ costInfo?.brmtypeLabel }} | ||||
|  | ||||
| @ -282,7 +282,7 @@ export class PaymentRecordComponent implements OnInit { | ||||
|       { title: '申请人', index: 'applyUserName', width: 90 }, | ||||
|       { title: '处理时间', index: 'handlerTime', width: 180 }, | ||||
|       { title: '处理人', index: 'handlerUserName', width: 90 }, | ||||
|       { title: '失败原因', index: 'failCause', width: 250 }, | ||||
|       { title: '备注', index: 'failCause', width: 250 }, | ||||
|       { | ||||
|         title: '操作', | ||||
|         fixed: 'right', | ||||
|  | ||||
| @ -265,7 +265,7 @@ export class WithdrawalsRecordComponent implements OnInit { | ||||
|       { title: '提现状态', index: 'refundStatusLabel', width: 100 }, | ||||
|       { title: '银行流水号', index: 'bankSerialNumber', width: 120 }, | ||||
|       { title: '核心交易流水', index: 'coreSerNo', width: 130 }, | ||||
|       { title: '失败原因', index: 'rejectionCause', width: 150, format: item => item.failCause || item.rejectionCause }, | ||||
|       { title: '备注', index: 'rejectionCause', width: 150, format: item => item.failCause || item.rejectionCause }, | ||||
|       { | ||||
|         title: '操作', | ||||
|         fixed: 'right', | ||||
|  | ||||
| @ -50,9 +50,7 @@ | ||||
|         (change)="stChange($event)"> | ||||
|         <ng-template st-row="vatinvcode" let-item let-index="index" let-column="column"> | ||||
|             {{ item.vatinvcode }} <br> | ||||
|             <label class="text-primary" *ngIf="item.sts == '1'">待处理</label> | ||||
|             <label class="text-primary" *ngIf="item.sts == '2'">待确认</label> | ||||
|             <label class="text-primary" *ngIf="item.sts == '3'">已确认</label> | ||||
|             <label class="text-primary" >{{item.stsLabel}}</label> | ||||
|         </ng-template> | ||||
|     </st> | ||||
| </nz-card> | ||||
|  | ||||
| @ -342,13 +342,13 @@ export class CancellationInvoiceComponent implements OnInit { | ||||
|         className: 'text-right', | ||||
|         widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.vatnotax }) } | ||||
|       }, | ||||
|       { | ||||
|         title: '税率', | ||||
|         index: 'billvatrate', | ||||
|         width: 120, | ||||
|         className: 'text-right', | ||||
|         format: item => `${item.billvatrate ? ((item.billvatrate as number) * 100).toFixed(2) : 0}%` | ||||
|       }, | ||||
|       // { | ||||
|       //   title: '税率', | ||||
|       //   index: 'billvatrate', | ||||
|       //   width: 120, | ||||
|       //   className: 'text-right', | ||||
|       //   format: item => `${item.billvatrate ? ((item.billvatrate as number) * 100).toFixed(2) : 0}%` | ||||
|       // }, | ||||
|       { | ||||
|         title: '税额', | ||||
|         index: 'vattax', | ||||
| @ -372,7 +372,7 @@ export class CancellationInvoiceComponent implements OnInit { | ||||
|             text: '查看明细', | ||||
|             click: item => | ||||
|               this.router.navigate(['ticket/cancellation-invoice/detail/' + item.id], { | ||||
|                 queryParams: { type: 1, expressno: item.expressno } | ||||
|                 queryParams: { type: 1, expressno: item.expressno, ltdId: item.ltdId } | ||||
|               }) | ||||
|           }, | ||||
|           { | ||||
|  | ||||
| @ -38,12 +38,14 @@ export class InvoiceDetailComponent implements OnInit { | ||||
|     routes: [] | ||||
|   }; | ||||
|   id: any = null; | ||||
|   ltdId: any = null; | ||||
|   type: any = 1; | ||||
|   constructor(public service: TicketService, private route: ActivatedRoute) { | ||||
|     this.isCanEdit = !!route.snapshot.queryParams.type; | ||||
|     const expressno = route.snapshot.queryParams.expressno; | ||||
|     this.type = route.snapshot.queryParams.type; | ||||
|     this.id = route.snapshot.params.id; | ||||
|     this.ltdId = route.snapshot.queryParams.ltdId; | ||||
|     this.loadInvoiceHeader(this.id); | ||||
|     if (expressno) { | ||||
|       this.loadRoutes(expressno); | ||||
| @ -130,7 +132,12 @@ export class InvoiceDetailComponent implements OnInit { | ||||
|         projectId: { | ||||
|           type: 'string', | ||||
|           title: '所属项目', | ||||
|           ui: { widget: 'select', placeholder: '请选择', allowClear: true, asyncData: () => this.service.getEnterpriseProject() }, | ||||
|           ui: { | ||||
|             widget: 'select', | ||||
|             placeholder: '请选择', | ||||
|             allowClear: true, | ||||
|             asyncData: () => this.service.getEnterpriseProject({ id: this.ltdId }) | ||||
|           }, | ||||
|           default: '' | ||||
|         } | ||||
|       } | ||||
| @ -147,6 +154,13 @@ export class InvoiceDetailComponent implements OnInit { | ||||
|       { title: '卸货地', index: 'loadingto', width: 220 }, | ||||
|       { title: '货物信息', index: 'goodsinfo', width: 140 }, | ||||
|       { title: '承运司机', index: 'driverinfo', width: 280 }, | ||||
|         { | ||||
|         title: '税额', | ||||
|         index: 'billvatrate', | ||||
|         width: 120, | ||||
|         className: 'text-right', | ||||
|         format: item => `${item.billvatrate ? ((item.billvatrate as number) * 100).toFixed(2) : 0}%` | ||||
|       }, | ||||
|       { | ||||
|         title: '申请金额', | ||||
|         index: 'billkpnotax', | ||||
|  | ||||
| @ -56,15 +56,24 @@ export class InvoicedListComponent implements OnInit { | ||||
|     } | ||||
|   } | ||||
|  | ||||
|   deletedInvoice() { | ||||
|     if (this.selectedRows?.length <= 0) { | ||||
|       this.service.msgSrv.warning('请选择发票'); | ||||
|       return; | ||||
|     } | ||||
|     this.nzModalService.warning({ | ||||
|   deletedInvoice(item: any) { | ||||
|     // if (this.selectedRows?.length <= 0) { | ||||
|     //   this.service.msgSrv.warning('请选择发票'); | ||||
|     //   return; | ||||
|     // } | ||||
|     const modal = this.nzModalService.warning({ | ||||
|       nzTitle: '确定将所选发票作废?', | ||||
|       nzCancelText: '取消', | ||||
|       nzOnOk: () => {} | ||||
|       nzOnOk: () => { | ||||
|         this.service.request(this.service.$api_cancel_invoice, { id: item.id }).subscribe(res => { | ||||
|           if (res) { | ||||
|             this.service.msgSrv.success('发票作废成功'); | ||||
|           } | ||||
|           modal.destroy(); | ||||
|           this.st.load(1); | ||||
|         }); | ||||
|         return false; | ||||
|       } | ||||
|     }); | ||||
|   } | ||||
|  | ||||
| @ -240,9 +249,14 @@ export class InvoicedListComponent implements OnInit { | ||||
|             text: '查看明细', | ||||
|             click: item => | ||||
|               this.router.navigate(['/ticket/invoice-list/detail/' + item.id], { | ||||
|                 queryParams: { expressno: item.expressno, type: 2 } | ||||
|                 queryParams: { expressno: item.expressno, type: 2, ltdId: item.ltdId } | ||||
|               }) | ||||
|           }, | ||||
|           { | ||||
|             text: '发票作废', | ||||
|             click: item => this.deletedInvoice(item), | ||||
|             iif: item => item.sts === '1' | ||||
|           }, | ||||
|           { | ||||
|             text: '查看物流', | ||||
|             click: item => this.showlogosticsLogs(item), | ||||
|  | ||||
| @ -52,6 +52,9 @@ export class TicketService extends ShipperBaseService { | ||||
|  | ||||
|   // 已开发票查询 | ||||
|   $api_get_invoice_page = '/api/fcc/ficoVatinvH/list/page'; | ||||
|  | ||||
|   // 发票作废 | ||||
|   $api_cancel_invoice = '/api/fcc/ficoVatinvH/inpinvHCancel'; | ||||
|   // 获取销项发票抬头 | ||||
|   $api_get_invoice_header_detail = '/api/fcc/ficoVatinvH/get'; | ||||
|   // 获取分票发票抬头开票申请订单明细 | ||||
|  | ||||
| @ -1,5 +1,5 @@ | ||||
| <!-- 页头 --> | ||||
| <page-header-wrapper [logo]="logo" title="车辆详情" [content]="content"> | ||||
| <page-header-wrapper [logo]="logo" title="车辆详情" [content]="content" [ngClass]="{'affix': scrollTop>210}"> | ||||
|   <ng-template #logo> | ||||
|     <button nz-button nz-tooltip nzTooltipTitle="返回上一页" (click)="goBack()"> | ||||
|       <i nz-icon nzType="left" nzTheme="outline"></i> | ||||
|  | ||||
| @ -106,9 +106,37 @@ | ||||
|     letter-spacing: 0.7px; | ||||
|   } | ||||
| } | ||||
|  | ||||
| input { | ||||
|   width: 200px; | ||||
| } | ||||
|  | ||||
| .sv__container { | ||||
|   padding-top: 10px; | ||||
| } | ||||
|  | ||||
| ::ng-deep { | ||||
|   .affix { | ||||
|     position: fixed; | ||||
|     top     : 20px !important; | ||||
|     right   : 25px; | ||||
|     left    : 25px; | ||||
|     z-index : 999 !important; | ||||
|   } | ||||
|  | ||||
|   .alain-pro__menu-side .alain-pro__main { | ||||
|     .affix { | ||||
|       position: fixed; | ||||
|       top     : 20px !important; | ||||
|       right   : 25px; | ||||
|       left    : 250px; | ||||
|       z-index : 999 !important; | ||||
|     } | ||||
|   } | ||||
|  | ||||
|   .aside-collapsed.alain-pro__menu-side .alain-pro__main { | ||||
|     .affix { | ||||
|       left: 106px; | ||||
|     } | ||||
|   } | ||||
| } | ||||
| @ -1,4 +1,4 @@ | ||||
| import { Component, OnInit, ViewChild } from '@angular/core'; | ||||
| import { Component, OnDestroy, OnInit, ViewChild } from '@angular/core'; | ||||
| import { ActivatedRoute } from '@angular/router'; | ||||
| import { apiConf } from '@conf/api.conf'; | ||||
| import { STColumn, STComponent } from '@delon/abc/st'; | ||||
| @ -15,13 +15,14 @@ import { EADateUtil } from '@shared'; | ||||
| import { VehicleImgViewComponent } from '../../list/img-view/img-view.component'; | ||||
| import { VehicleComponentsListEditComponent } from '../../list/edit/edit.component'; | ||||
| import { NzImageService } from 'ng-zorro-antd/image'; | ||||
| import { fromEvent, Subscription } from 'rxjs'; | ||||
|  | ||||
| @Component({ | ||||
|   selector: 'app-Vehicle-components-Audit-detail', | ||||
|   templateUrl: './detail.component.html', | ||||
|   styleUrls: ['./detail.component.less'] | ||||
| }) | ||||
| export class VehicleComponentsAuditDetailComponent implements OnInit { | ||||
| export class VehicleComponentsAuditDetailComponent implements OnInit, OnDestroy  { | ||||
|   @ViewChild('st', { static: false }) st!: STComponent; | ||||
|   @ViewChild('redectModal', { static: false }) redectModal!: any; | ||||
|   columns!: STColumn[]; | ||||
| @ -34,6 +35,10 @@ export class VehicleComponentsAuditDetailComponent implements OnInit { | ||||
|   approvalOpinion = ''; | ||||
|   uploadURl = apiConf.waterFileUpload; | ||||
|   disabledUpload = false; | ||||
|  | ||||
|    | ||||
|   scrollTop = 0; | ||||
|   subscribeScoll!: Subscription; | ||||
|   constructor( | ||||
|     public service: VehicleService, | ||||
|     private route: ActivatedRoute, | ||||
| @ -41,11 +46,17 @@ export class VehicleComponentsAuditDetailComponent implements OnInit { | ||||
|     private modal: ModalHelper, | ||||
|     private nzImageService: NzImageService | ||||
|   ) {} | ||||
|   ngOnDestroy(): void { | ||||
|     this.subscribeScoll.unsubscribe(); | ||||
|   } | ||||
|  | ||||
|   ngOnInit() { | ||||
|     this.getSelectList(); | ||||
|     this.getDetailList(); | ||||
|     this.initST(); | ||||
|     this.subscribeScoll = fromEvent(window, 'scroll').subscribe(event => { | ||||
|       this.scrollTop = document.documentElement.scrollTop; | ||||
|     }); | ||||
|   } | ||||
|  | ||||
|   initST() { | ||||
|  | ||||
| @ -6,7 +6,7 @@ | ||||
|  * @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE | ||||
|  * @FilePath     : \\tms-obc-web\\src\\app\\routes\\waybill-management\\components\\vehicle-detail\\vehicle-detail.component.html | ||||
| --> | ||||
| <page-header-wrapper [title]="'整车运单详情'" [logo]="logo" [content]="headerContent"> | ||||
| <page-header-wrapper [title]="'整车运单详情'" [logo]="logo" [content]="headerContent"  [ngClass]="{'affix': scrollTop>210}"> | ||||
|   <ng-template #logo> | ||||
|     <button nz-button nz-tooltip nzTooltipTitle="返回上一页" (click)="goBack()"> | ||||
|       <i nz-icon nzType="left" nzTheme="outline"></i> | ||||
|  | ||||
| @ -1,70 +1,103 @@ | ||||
| :host{ | ||||
|     .btn-size{ | ||||
|         font-size: 14px; | ||||
| :host { | ||||
|   .btn-size { | ||||
|     font-size: 14px; | ||||
|   } | ||||
|  | ||||
|   .bdr { | ||||
|     border-right: 1px solid #ccc; | ||||
|   } | ||||
|  | ||||
|   .bdl { | ||||
|     border-left: 1px solid #ccc; | ||||
|   } | ||||
|  | ||||
|   .source-info { | ||||
|     p { | ||||
|       margin-bottom: .5em; | ||||
|     } | ||||
|     .bdr{ | ||||
|         border-right: 1px solid #ccc; | ||||
|   } | ||||
|  | ||||
|   .freight-info-box { | ||||
|     width: 95%; | ||||
|   } | ||||
|  | ||||
|   .freigth-label { | ||||
|     display   : inline-block; | ||||
|     width     : 50px; | ||||
|     text-align: right; | ||||
|   } | ||||
|  | ||||
|   ::ng-deep { | ||||
|     .approval-status { | ||||
|       .ant-steps { | ||||
|         width : 70%; | ||||
|         margin: 0 auto; | ||||
|       } | ||||
|     } | ||||
|     .bdl{ | ||||
|         border-left: 1px solid #ccc; | ||||
|     } | ||||
|     .source-info{ | ||||
|         p{ | ||||
|             margin-bottom: .5em; | ||||
|         } | ||||
|     } | ||||
|     .freight-info-box{ | ||||
|         width: 95%; | ||||
|     } | ||||
|     .freigth-label{ | ||||
|         display: inline-block; | ||||
|         width: 50px; | ||||
|         text-align: right; | ||||
|   } | ||||
|  | ||||
|   .leftPadding { | ||||
|     padding-right: 100px; | ||||
|   } | ||||
|  | ||||
|   .handling-info { | ||||
|     min-height: 100px; | ||||
|     border    : 1px solid #ccc; | ||||
|  | ||||
|     .loading-row { | ||||
|       display: flex; | ||||
|     } | ||||
|  | ||||
|     ::ng-deep{ | ||||
|       .approval-status{ | ||||
|          .ant-steps{ | ||||
|              width: 70%; | ||||
|              margin: 0 auto; | ||||
|          }  | ||||
|       }   | ||||
|     } | ||||
|     .leftPadding { | ||||
|         padding-right: 100px; | ||||
|     } | ||||
|     .handling-info { | ||||
|         min-height: 100px; | ||||
|         border: 1px solid #ccc; | ||||
|      | ||||
|         .loading-row { | ||||
|           display: flex; | ||||
|         } | ||||
|      | ||||
|         .handling-info-icon { | ||||
|           width: 32px; | ||||
|           height: 32px; | ||||
|           margin-right: 24px; | ||||
|           color: #fff; | ||||
|           line-height: 32px; | ||||
|           text-align: center; | ||||
|           border-radius: 50%; | ||||
|      | ||||
|           &.loading-bg { | ||||
|             background-color: #50D4AB; | ||||
|           } | ||||
|      | ||||
|           &.unloaing-bg { | ||||
|             background: #F66F6A; | ||||
|           } | ||||
|         } | ||||
|      | ||||
|         .info { | ||||
|           flex: 1; | ||||
|         } | ||||
|      | ||||
|         .time-info { | ||||
|           margin-left: 56px; | ||||
|         } | ||||
|     .handling-info-icon { | ||||
|       width        : 32px; | ||||
|       height       : 32px; | ||||
|       margin-right : 24px; | ||||
|       color        : #fff; | ||||
|       line-height  : 32px; | ||||
|       text-align   : center; | ||||
|       border-radius: 50%; | ||||
|  | ||||
|       &.loading-bg { | ||||
|         background-color: #50D4AB; | ||||
|       } | ||||
|  | ||||
|       &.unloaing-bg { | ||||
|         background: #F66F6A; | ||||
|       } | ||||
|     } | ||||
|  | ||||
|     .info { | ||||
|       flex: 1; | ||||
|     } | ||||
|  | ||||
|     .time-info { | ||||
|       margin-left: 56px; | ||||
|     } | ||||
|   } | ||||
| } | ||||
|  | ||||
| ::ng-deep { | ||||
|   .affix { | ||||
|     position: fixed; | ||||
|     top     : 20px !important; | ||||
|     right   : 25px; | ||||
|     left    : 25px; | ||||
|     z-index : 999 !important; | ||||
|   } | ||||
|  | ||||
|   .alain-pro__menu-side .alain-pro__main { | ||||
|     .affix { | ||||
|       position: fixed; | ||||
|       top     : 20px !important; | ||||
|       right   : 25px; | ||||
|       left    : 250px; | ||||
|       z-index : 999 !important; | ||||
|     } | ||||
|   } | ||||
|  | ||||
|   .aside-collapsed.alain-pro__menu-side .alain-pro__main { | ||||
|     .affix { | ||||
|       left: 106px; | ||||
|     } | ||||
|   } | ||||
| } | ||||
| @ -6,7 +6,7 @@ | ||||
|  * @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE | ||||
|  * @FilePath     : \\tms-obc-web\\src\\app\\routes\\waybill-management\\components\\vehicle-detail\\vehicle-detail.component.ts | ||||
|  */ | ||||
| import { Component, OnInit } from '@angular/core'; | ||||
| import { Component, OnDestroy, OnInit } from '@angular/core'; | ||||
| import { ActivatedRoute } from '@angular/router'; | ||||
| import { STColumn } from '@delon/abc/st'; | ||||
| import { _HttpClient } from '@delon/theme'; | ||||
| @ -14,6 +14,7 @@ import format from 'date-fns/format'; | ||||
| import { NzCardComponent } from 'ng-zorro-antd/card'; | ||||
| import { NzMessageService } from 'ng-zorro-antd/message'; | ||||
| import { NzModalService } from 'ng-zorro-antd/modal'; | ||||
| import { Subscription, fromEvent } from 'rxjs'; | ||||
| 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'; | ||||
| @ -22,7 +23,7 @@ import { WaybillManagementServe } from '../../services/waybill-management.servic | ||||
|   templateUrl: './vehicle-detail.component.html', | ||||
|   styleUrls: ['./vehicle-detail.component.less'] | ||||
| }) | ||||
| export class WaybillManagementVehicleDetailComponent implements OnInit { | ||||
| export class WaybillManagementVehicleDetailComponent implements OnInit, OnDestroy { | ||||
|  | ||||
|   id = this.route.snapshot.params.id; | ||||
|   MapList: any[]=[]; | ||||
| @ -53,6 +54,8 @@ export class WaybillManagementVehicleDetailComponent implements OnInit { | ||||
|     } | ||||
|   ]; | ||||
|  | ||||
|   scrollTop = 0; | ||||
|   subscribeScoll!: Subscription; | ||||
|   constructor( | ||||
|     private route: ActivatedRoute, | ||||
|     private msgSrv: NzMessageService, | ||||
| @ -62,9 +65,17 @@ export class WaybillManagementVehicleDetailComponent implements OnInit { | ||||
|  | ||||
|   } | ||||
|  | ||||
|   ngOnDestroy(): void { | ||||
|     this.subscribeScoll.unsubscribe(); | ||||
|   } | ||||
|  | ||||
|  | ||||
|   ngOnInit(): void { | ||||
|     this.initData() | ||||
|     this.getTrajectory() | ||||
|     this.subscribeScoll = fromEvent(window, 'scroll').subscribe(event => { | ||||
|       this.scrollTop = document.documentElement.scrollTop; | ||||
|     }); | ||||
|   } | ||||
|   initData() { | ||||
|     const params = { | ||||
|  | ||||
		Reference in New Issue
	
	Block a user