Merge branch 'develop' of https://gitlab.eascs.com/tms-ui/tms-obc-web into develop
This commit is contained in:
		| @ -5,7 +5,7 @@ import { OnChanges } from '@angular/core'; | |||||||
|  * @Author       : Shiming |  * @Author       : Shiming | ||||||
|  * @Date         : 2022-01-05 11:01:55 |  * @Date         : 2022-01-05 11:01:55 | ||||||
|  * @LastEditors  : Shiming |  * @LastEditors  : Shiming | ||||||
|  * @LastEditTime : 2022-02-28 20:22:46 |  * @LastEditTime : 2022-03-30 10:45:19 | ||||||
|  * @FilePath     : \\tms-obc-web\\src\\app\\routes\\contract-management\\components\\contract-template-detail\\contract-template-detail.component.ts |  * @FilePath     : \\tms-obc-web\\src\\app\\routes\\contract-management\\components\\contract-template-detail\\contract-template-detail.component.ts | ||||||
|  * Copyright (C) 2022 huzhenhong. All rights reserved. |  * Copyright (C) 2022 huzhenhong. All rights reserved. | ||||||
|  */ |  */ | ||||||
| @ -95,7 +95,9 @@ export class ContractManagementTemplateTextComponent implements OnInit { | |||||||
|                     { label: '订单补充协议', value: '2' }, |                     { label: '订单补充协议', value: '2' }, | ||||||
|                     { label: '运单合同', value: '3' }, |                     { label: '运单合同', value: '3' }, | ||||||
|                     { label: '运单补充协议', value: '4' }, |                     { label: '运单补充协议', value: '4' }, | ||||||
|                     { label: '委托代收合同', value: '5' } |                     { label: '委托代收合同', value: '5' }, | ||||||
|  |                     { label: '电子提货单', value: '10' }, | ||||||
|  |                     { label: '电子卸货单', value: '11' }, | ||||||
|                   ]; |                   ]; | ||||||
|                   this.sf.getProperty('/contractType')!.schema.enum = this.Types; |                   this.sf.getProperty('/contractType')!.schema.enum = this.Types; | ||||||
|                   this.sf.getProperty('/contractType')!.widget.reset(this.Types); |                   this.sf.getProperty('/contractType')!.widget.reset(this.Types); | ||||||
|  | |||||||
| @ -0,0 +1,6 @@ | |||||||
|  | <!-- 页头 --> | ||||||
|  | <page-header-wrapper [title]="'数据报表'"></page-header-wrapper> | ||||||
|  | <nz-card> | ||||||
|  |   <sf mode="search" [schema]="searchSchema" (formSubmit)="st.reset($event)" (formReset)="st.reset($event)"></sf> | ||||||
|  |   <st #st [data]="url" [columns]="columns"></st> | ||||||
|  | </nz-card> | ||||||
| @ -0,0 +1,45 @@ | |||||||
|  | import { Component, OnInit, ViewChild } from '@angular/core'; | ||||||
|  | import { STColumn, STComponent } from '@delon/abc/st'; | ||||||
|  | import { SFSchema } from '@delon/form'; | ||||||
|  | import { ModalHelper, _HttpClient } from '@delon/theme'; | ||||||
|  |  | ||||||
|  | @Component({ | ||||||
|  |   selector: 'app-datatable-compliance-customer', | ||||||
|  |   templateUrl: './customer.component.html', | ||||||
|  | }) | ||||||
|  | export class DatatableComplianceCustomerComponent implements OnInit { | ||||||
|  |   url = `/user`; | ||||||
|  |   searchSchema: SFSchema = { | ||||||
|  |     properties: { | ||||||
|  |       no: { | ||||||
|  |         type: 'string', | ||||||
|  |         title: '编号' | ||||||
|  |       } | ||||||
|  |     } | ||||||
|  |   }; | ||||||
|  |   @ViewChild('st') private readonly st!: STComponent; | ||||||
|  |   columns: STColumn[] = [ | ||||||
|  |     { title: '编号', index: 'no' }, | ||||||
|  |     { title: '调用次数', type: 'number', index: 'callNo' }, | ||||||
|  |     { title: '头像', type: 'img', width: '50px', index: 'avatar' }, | ||||||
|  |     { title: '时间', type: 'date', index: 'updatedAt' }, | ||||||
|  |     { | ||||||
|  |       title: '', | ||||||
|  |       buttons: [ | ||||||
|  |         // { text: '查看', click: (item: any) => `/form/${item.id}` }, | ||||||
|  |         // { text: '编辑', type: 'static', component: FormEditComponent, click: 'reload' }, | ||||||
|  |       ] | ||||||
|  |     } | ||||||
|  |   ]; | ||||||
|  |  | ||||||
|  |   constructor(private http: _HttpClient, private modal: ModalHelper) { } | ||||||
|  |  | ||||||
|  |   ngOnInit(): void { } | ||||||
|  |  | ||||||
|  |   add(): void { | ||||||
|  |     // this.modal | ||||||
|  |     //   .createStatic(FormEditComponent, { i: { id: 0 } }) | ||||||
|  |     //   .subscribe(() => this.st.reload()); | ||||||
|  |   } | ||||||
|  |  | ||||||
|  | } | ||||||
| @ -0,0 +1,66 @@ | |||||||
|  | <!-- 页头 --> | ||||||
|  | <page-header-wrapper [title]="'合规监控报表'"></page-header-wrapper> | ||||||
|  | <nz-card> | ||||||
|  |   <!-- 搜索区 --> | ||||||
|  |   <div nz-row> | ||||||
|  |     <div nz-col nzSpan="18"> | ||||||
|  |       <sf #sf [ui]="ui" [schema]="schema" [button]="'none'"></sf> | ||||||
|  |     </div> | ||||||
|  |     <div nz-col nzSpan="6"> | ||||||
|  |       <div class="chooseBox"> | ||||||
|  |         <div class="timeBox"> | ||||||
|  |           <nz-radio-group [(ngModel)]="mode" nzButtonStyle="solid" (ngModelChange)="changeData()"> | ||||||
|  |             <label nz-radio-button nzValue="year">年</label> | ||||||
|  |             <label nz-radio-button nzValue="month">月</label> | ||||||
|  |           </nz-radio-group> | ||||||
|  |           <div class="dateBox"> | ||||||
|  |             <nz-date-picker [(ngModel)]="date" [nzMode]="mode" [nzFormat]="dateFormat" (ngModelChange)="onChange($event)"></nz-date-picker> | ||||||
|  |           </div> | ||||||
|  |         </div> | ||||||
|  |       </div> | ||||||
|  |     </div> | ||||||
|  |   </div> | ||||||
|  | </nz-card> | ||||||
|  |  | ||||||
|  | <div nz-row [nzGutter]="16"> | ||||||
|  |   <div nz-col class="gutter-row" [nzSpan]="6"> | ||||||
|  |     <g2-card [title]="'订单合格率'" [bordered]="true" [total]="'95.00%'" [footer]="footer1" contentHeight="46"> | ||||||
|  |       <ng-template #footer1> | ||||||
|  |         <div class="card-f"> | ||||||
|  |           <span class="card-f-l">合格:12423</span> <span>不合格:12423</span> | ||||||
|  |         </div> | ||||||
|  |       </ng-template> | ||||||
|  |     </g2-card> | ||||||
|  |   </div> | ||||||
|  |   <div nz-col class="gutter-row" [nzSpan]="6"> | ||||||
|  |     <g2-card [title]="'货源单占比'" [bordered]="true" [total]="'94.00%'" [footer]="footer2" contentHeight="46"> | ||||||
|  |       <ng-template #footer2> | ||||||
|  |         <div class="card-f"> | ||||||
|  |           <span class="card-f-l">货源单:12423</span> <span>合同单:12423</span> | ||||||
|  |         </div> | ||||||
|  |       </ng-template> | ||||||
|  |     </g2-card> | ||||||
|  |   </div> | ||||||
|  |   <div nz-col class="gutter-row" [nzSpan]="6"> | ||||||
|  |     <g2-card [title]="'运费直付占比'" [bordered]="true" [total]="'95.10%'" [footer]="footer3" contentHeight="46"> | ||||||
|  |       <ng-template #footer3> | ||||||
|  |         <div class="card-f"> | ||||||
|  |           <span class="card-f-l">司机:12423</span> <span>车队长:12423</span> | ||||||
|  |         </div> | ||||||
|  |       </ng-template> | ||||||
|  |     </g2-card> | ||||||
|  |     </div> | ||||||
|  |   <div nz-col class="gutter-row" [nzSpan]="6"> | ||||||
|  |     <g2-card [title]="'付款及时率'" [bordered]="true" [total]="'90.00%'" [footer]="footer4" contentHeight="46"> | ||||||
|  |       <ng-template #footer4> | ||||||
|  |         <div class="card-f"> | ||||||
|  |           <span class="card-f-l">准时:12423</span> <span>逾期:12423</span> | ||||||
|  |         </div> | ||||||
|  |       </ng-template> | ||||||
|  |     </g2-card> | ||||||
|  |   </div> | ||||||
|  | </div> | ||||||
|  |  | ||||||
|  | <nz-card nzTitle="平台合规情况监控报表"> | ||||||
|  |   <g2-custom delay="100" (render)="render($event)"></g2-custom> | ||||||
|  | </nz-card> | ||||||
| @ -0,0 +1,17 @@ | |||||||
|  | .card-f{ | ||||||
|  |     color: #5a5a5a; | ||||||
|  |     .card-f-l{ | ||||||
|  |       margin-right: 24px;   | ||||||
|  |     } | ||||||
|  | } | ||||||
|  | .chooseBox{ | ||||||
|  |   display: flex; | ||||||
|  | } | ||||||
|  | .timeBox{ | ||||||
|  |   display: flex; | ||||||
|  |   margin: 0 0 0 10px; | ||||||
|  | } | ||||||
|  | .dateBox{ | ||||||
|  |   display: inline-block; | ||||||
|  |   margin: 0 0 0 10px; | ||||||
|  | } | ||||||
| @ -0,0 +1,198 @@ | |||||||
|  | import { Component, ElementRef, NgZone, OnInit, ViewChild } from '@angular/core'; | ||||||
|  | import { DatePipe, ModalHelper, _HttpClient } from '@delon/theme'; | ||||||
|  | import { G2MiniAreaClickItem, G2MiniAreaData } from '@delon/chart/mini-area'; | ||||||
|  | import { format } from 'date-fns'; | ||||||
|  | import { SFComponent, SFDateWidgetSchema, SFRadioWidgetSchema, SFSchema, SFUISchema } from '@delon/form'; | ||||||
|  | import { G2TimelineData, G2TimelineMap } from '@delon/chart/timeline'; | ||||||
|  | import { Chart } from '@antv/g2'; | ||||||
|  | const DataSet = require('@antv/data-set'); | ||||||
|  | @Component({ | ||||||
|  |   selector: 'app-datatable-compliance-index', | ||||||
|  |   templateUrl: './index.component.html', | ||||||
|  |   styleUrls: ['./index.component.less'], | ||||||
|  |   providers: [DatePipe] | ||||||
|  | }) | ||||||
|  | export class DatatableComplianceIndexComponent implements OnInit { | ||||||
|  |   @ViewChild('sf', { static: false }) | ||||||
|  |   sf!: SFComponent; | ||||||
|  |   ui!: SFUISchema; | ||||||
|  |   schema: SFSchema = {}; | ||||||
|  |  | ||||||
|  |   mode = 'year'; | ||||||
|  |   date: any = null; | ||||||
|  |   dateFormat = 'yyyy-MM-dd'; | ||||||
|  |   time: any = ['2022-01-01 00:00:00'] | ||||||
|  |   constructor(private http: _HttpClient, private modal: ModalHelper, private ngZone: NgZone, private datePipe: DatePipe) {} | ||||||
|  |  | ||||||
|  |   ngOnInit(): void { | ||||||
|  |     this.initSF(); | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   changeData(){ | ||||||
|  |     if(this.mode === 'year') { | ||||||
|  |       this.dateFormat = 'yyyy' | ||||||
|  |     } else if(this.mode === 'month') { | ||||||
|  |       this.dateFormat = 'yyyy-MM' | ||||||
|  |     } else { | ||||||
|  |       this.dateFormat = 'yyyy-MM-dd' | ||||||
|  |     }  | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   onChange(result: any) { | ||||||
|  |     if(this.mode === 'year') { | ||||||
|  |       this.time = [this.datePipe.transform(this.date, 'yyyy') + '-01-01 00:00:00'] | ||||||
|  |     } else if(this.mode === 'month') { | ||||||
|  |       this.time = [this.datePipe.transform(this.date, 'yyyy-MM') + '-01 00:00:00'] | ||||||
|  |     } | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   initSF() { | ||||||
|  |     this.schema = { | ||||||
|  |       properties: { | ||||||
|  |         name: { | ||||||
|  |           type: 'string', | ||||||
|  |           title: '', | ||||||
|  |           ui: { | ||||||
|  |             widget: 'select', | ||||||
|  |             placeholder: '网络货运人' | ||||||
|  |           } | ||||||
|  |         }, | ||||||
|  |         name2: { | ||||||
|  |           type: 'string', | ||||||
|  |           title: '', | ||||||
|  |           ui: { | ||||||
|  |             widget: 'select', | ||||||
|  |             placeholder: '部门' | ||||||
|  |           } | ||||||
|  |         }, | ||||||
|  |         name3: { | ||||||
|  |           type: 'string', | ||||||
|  |           title: '', | ||||||
|  |           ui: { | ||||||
|  |             placeholder: '业务员' | ||||||
|  |           } | ||||||
|  |         } | ||||||
|  |       } | ||||||
|  |     }; | ||||||
|  |     this.ui = { | ||||||
|  |       '*': { | ||||||
|  |         grid: { span: 4 } | ||||||
|  |       } | ||||||
|  |     }; | ||||||
|  |  | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   render(el: ElementRef<HTMLDivElement>) { | ||||||
|  |     this.ngZone.runOutsideAngular(() => this.init(el.nativeElement)); | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   private init(el: HTMLElement): void { | ||||||
|  |     const chart = new Chart({ | ||||||
|  |       container: el, | ||||||
|  |       autoFit: true, | ||||||
|  |       height: 400 | ||||||
|  |     }); | ||||||
|  |     // 以三组数据为例, 需要展示 91/92/93年中a/b/c数据走势 | ||||||
|  | 		const data = [ | ||||||
|  |       { data: '1月', label: '订单合格率', value: 5 }, | ||||||
|  |       { data: '2月', label: '订单合格率', value: 10 }, | ||||||
|  |       { data: '3月', label: '订单合格率', value: 25 }, | ||||||
|  |       { data: '4月', label: '订单合格率', value: 35 }, | ||||||
|  |       { data: '5月', label: '订单合格率', value: 15 }, | ||||||
|  |       { data: '6月', label: '订单合格率', value: 5 }, | ||||||
|  |       { data: '7月', label: '订单合格率', value: 95 }, | ||||||
|  |       { data: '8月', label: '订单合格率', value: 45 }, | ||||||
|  |  | ||||||
|  |       { data: '1月', label: '付款及时率', value: 10 }, | ||||||
|  |       { data: '2月', label: '付款及时率', value: 15 }, | ||||||
|  |       { data: '3月', label: '付款及时率', value: 30 }, | ||||||
|  |       { data: '4月', label: '付款及时率', value: 8 }, | ||||||
|  |       { data: '5月', label: '付款及时率', value: 9 }, | ||||||
|  |       { data: '6月', label: '付款及时率', value: 5 }, | ||||||
|  |       { data: '7月', label: '付款及时率', value: 80 }, | ||||||
|  |       { data: '8月', label: '付款及时率', value: 55 }, | ||||||
|  |  | ||||||
|  |       { data: '1月', label: '货源占比率', value: 90 }, | ||||||
|  |       { data: '2月', label: '货源占比率', value: 30 }, | ||||||
|  |       { data: '3月', label: '货源占比率', value: 45 }, | ||||||
|  |       { data: '4月', label: '货源占比率', value: 35 }, | ||||||
|  |       { data: '5月', label: '货源占比率', value: 95 }, | ||||||
|  |       { data: '6月', label: '货源占比率', value: 35 }, | ||||||
|  |       { data: '7月', label: '货源占比率', value: 65 }, | ||||||
|  |       { data: '8月', label: '货源占比率', value: 63 }, | ||||||
|  |  | ||||||
|  |       { data: '1月', label: '运费直付占比', value: 30 }, | ||||||
|  |       { data: '2月', label: '运费直付占比', value: 60 }, | ||||||
|  |       { data: '3月', label: '运费直付占比', value: 25 }, | ||||||
|  |       { data: '4月', label: '运费直付占比', value: 35 }, | ||||||
|  |       { data: '5月', label: '运费直付占比', value: 15 }, | ||||||
|  |       { data: '6月', label: '运费直付占比', value: 55 }, | ||||||
|  |       { data: '7月', label: '运费直付占比', value: 50 }, | ||||||
|  |       { data: '8月', label: '运费直付占比', value: 30 }, | ||||||
|  |     ]; | ||||||
|  |  | ||||||
|  |     chart.data(data); | ||||||
|  |     //刻度自定义 | ||||||
|  |     chart.scale({ | ||||||
|  |       data: { | ||||||
|  |         range: [0, 1], | ||||||
|  |       }, | ||||||
|  |       value: { | ||||||
|  |         min: 0, | ||||||
|  |         nice: true, | ||||||
|  |       }, | ||||||
|  |     }); | ||||||
|  |     // 图表下方图形文字自定义 | ||||||
|  |     chart.legend({ | ||||||
|  |       items:[ | ||||||
|  |         { | ||||||
|  |           name: '订单合格率', | ||||||
|  |           value: 'node_load1', | ||||||
|  |           marker: { | ||||||
|  |             symbol: 'circle', | ||||||
|  |             style: {fill: '#6193f7'} | ||||||
|  |           }, | ||||||
|  |         }, | ||||||
|  |         { | ||||||
|  |           name: '付款及时率', | ||||||
|  |           value: 'node_load2', | ||||||
|  |           marker: {symbol: 'circle',style: {fill: '#58d3a2'}}, | ||||||
|  |         }, | ||||||
|  |         { | ||||||
|  |           name: '货源占比率', | ||||||
|  |           value: 'node_load13', | ||||||
|  |           marker: {symbol: 'circle',style: {fill: '#5b6d8f'}}, | ||||||
|  |         }, | ||||||
|  |         { | ||||||
|  |           name: '运费直付占比', | ||||||
|  |           value: 'node_load13', | ||||||
|  |           marker: {symbol: 'circle',style: {fill: '#f0b915'}}, | ||||||
|  |         }, | ||||||
|  |       ] | ||||||
|  |     }); | ||||||
|  |     // 提示自定义 | ||||||
|  |     chart.tooltip({ | ||||||
|  |       showCrosshairs: true, | ||||||
|  |       shared: true, | ||||||
|  |     }); | ||||||
|  |      | ||||||
|  |     //数据格式化 | ||||||
|  |     chart.axis('value', { | ||||||
|  |       label: { | ||||||
|  |         formatter: (val) => { | ||||||
|  |           return val + ' %'; | ||||||
|  |         }, | ||||||
|  |       }, | ||||||
|  |     }); | ||||||
|  | 		// 在x*y的坐标点上按z值绘制线条, 如果z值相同将使用直线连接 | ||||||
|  | 		chart.line().position('data*value').color('label').tooltip('label*value', (name:any, value:any) => { | ||||||
|  |       return { | ||||||
|  |         name: name, | ||||||
|  |         value: value + '%' | ||||||
|  |       }; | ||||||
|  |     });; | ||||||
|  | 		// 在x*y的坐标上按z值绘制圆点 | ||||||
|  | 		chart.point().position('data*value').size(4).color('label').shape('circle'); | ||||||
|  | 		chart.render(); | ||||||
|  |   } | ||||||
|  | } | ||||||
| @ -0,0 +1,6 @@ | |||||||
|  | <!-- 页头 --> | ||||||
|  | <page-header-wrapper [title]="'数据报表'"></page-header-wrapper> | ||||||
|  | <nz-card> | ||||||
|  |   <sf mode="search" [schema]="searchSchema" (formSubmit)="st.reset($event)" (formReset)="st.reset($event)"></sf> | ||||||
|  |   <st #st [data]="url" [columns]="columns"></st> | ||||||
|  | </nz-card> | ||||||
| @ -0,0 +1,45 @@ | |||||||
|  | import { Component, OnInit, ViewChild } from '@angular/core'; | ||||||
|  | import { STColumn, STComponent } from '@delon/abc/st'; | ||||||
|  | import { SFSchema } from '@delon/form'; | ||||||
|  | import { ModalHelper, _HttpClient } from '@delon/theme'; | ||||||
|  |  | ||||||
|  | @Component({ | ||||||
|  |   selector: 'app-datatable-compliance-salesman', | ||||||
|  |   templateUrl: './salesman.component.html', | ||||||
|  | }) | ||||||
|  | export class DatatableComplianceSalesmanComponent implements OnInit { | ||||||
|  |   url = `/user`; | ||||||
|  |   searchSchema: SFSchema = { | ||||||
|  |     properties: { | ||||||
|  |       no: { | ||||||
|  |         type: 'string', | ||||||
|  |         title: '编号' | ||||||
|  |       } | ||||||
|  |     } | ||||||
|  |   }; | ||||||
|  |   @ViewChild('st') private readonly st!: STComponent; | ||||||
|  |   columns: STColumn[] = [ | ||||||
|  |     { title: '编号', index: 'no' }, | ||||||
|  |     { title: '调用次数', type: 'number', index: 'callNo' }, | ||||||
|  |     { title: '头像', type: 'img', width: '50px', index: 'avatar' }, | ||||||
|  |     { title: '时间', type: 'date', index: 'updatedAt' }, | ||||||
|  |     { | ||||||
|  |       title: '', | ||||||
|  |       buttons: [ | ||||||
|  |         // { text: '查看', click: (item: any) => `/form/${item.id}` }, | ||||||
|  |         // { text: '编辑', type: 'static', component: FormEditComponent, click: 'reload' }, | ||||||
|  |       ] | ||||||
|  |     } | ||||||
|  |   ]; | ||||||
|  |  | ||||||
|  |   constructor(private http: _HttpClient, private modal: ModalHelper) { } | ||||||
|  |  | ||||||
|  |   ngOnInit(): void { } | ||||||
|  |  | ||||||
|  |   add(): void { | ||||||
|  |     // this.modal | ||||||
|  |     //   .createStatic(FormEditComponent, { i: { id: 0 } }) | ||||||
|  |     //   .subscribe(() => this.st.reload()); | ||||||
|  |   } | ||||||
|  |  | ||||||
|  | } | ||||||
| @ -0,0 +1,6 @@ | |||||||
|  | <!-- 页头 --> | ||||||
|  | <page-header-wrapper [title]="'数据报表'"></page-header-wrapper> | ||||||
|  | <nz-card> | ||||||
|  |   <sf mode="search" [schema]="searchSchema" (formSubmit)="st.reset($event)" (formReset)="st.reset($event)"></sf> | ||||||
|  |   <st #st [data]="url" [columns]="columns"></st> | ||||||
|  | </nz-card> | ||||||
| @ -0,0 +1,45 @@ | |||||||
|  | import { Component, OnInit, ViewChild } from '@angular/core'; | ||||||
|  | import { STColumn, STComponent } from '@delon/abc/st'; | ||||||
|  | import { SFSchema } from '@delon/form'; | ||||||
|  | import { ModalHelper, _HttpClient } from '@delon/theme'; | ||||||
|  |  | ||||||
|  | @Component({ | ||||||
|  |   selector: 'app-datatable-financetable', | ||||||
|  |   templateUrl: './financetable.component.html', | ||||||
|  | }) | ||||||
|  | export class DatatableFinancetableComponent implements OnInit { | ||||||
|  |   url = `/user`; | ||||||
|  |   searchSchema: SFSchema = { | ||||||
|  |     properties: { | ||||||
|  |       no: { | ||||||
|  |         type: 'string', | ||||||
|  |         title: '编号' | ||||||
|  |       } | ||||||
|  |     } | ||||||
|  |   }; | ||||||
|  |   @ViewChild('st') private readonly st!: STComponent; | ||||||
|  |   columns: STColumn[] = [ | ||||||
|  |     { title: '编号', index: 'no' }, | ||||||
|  |     { title: '调用次数', type: 'number', index: 'callNo' }, | ||||||
|  |     { title: '头像', type: 'img', width: '50px', index: 'avatar' }, | ||||||
|  |     { title: '时间', type: 'date', index: 'updatedAt' }, | ||||||
|  |     { | ||||||
|  |       title: '', | ||||||
|  |       buttons: [ | ||||||
|  |         // { text: '查看', click: (item: any) => `/form/${item.id}` }, | ||||||
|  |         // { text: '编辑', type: 'static', component: FormEditComponent, click: 'reload' }, | ||||||
|  |       ] | ||||||
|  |     } | ||||||
|  |   ]; | ||||||
|  |  | ||||||
|  |   constructor(private http: _HttpClient, private modal: ModalHelper) { } | ||||||
|  |  | ||||||
|  |   ngOnInit(): void { } | ||||||
|  |  | ||||||
|  |   add(): void { | ||||||
|  |     // this.modal | ||||||
|  |     //   .createStatic(FormEditComponent, { i: { id: 0 } }) | ||||||
|  |     //   .subscribe(() => this.st.reload()); | ||||||
|  |   } | ||||||
|  |  | ||||||
|  | } | ||||||
| @ -0,0 +1,14 @@ | |||||||
|  | <!-- 页头 --> | ||||||
|  | <page-header-wrapper [title]="'开票数据报表'"></page-header-wrapper> | ||||||
|  | <nz-card nzTitle="开票数据报表"> | ||||||
|  |   <st | ||||||
|  |     #st | ||||||
|  |     [data]="data" | ||||||
|  |     [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" | ||||||
|  |   > | ||||||
|  |   </st> | ||||||
|  | </nz-card> | ||||||
| @ -0,0 +1,70 @@ | |||||||
|  | import { Component, OnInit, ViewChild } from '@angular/core'; | ||||||
|  | import { STColumn, STComponent } from '@delon/abc/st'; | ||||||
|  | import { SFSchema } from '@delon/form'; | ||||||
|  | import { ModalHelper, _HttpClient } from '@delon/theme'; | ||||||
|  |  | ||||||
|  | @Component({ | ||||||
|  |   selector: 'app-datatable-invoicetable', | ||||||
|  |   templateUrl: './invoicetable.component.html', | ||||||
|  | }) | ||||||
|  | export class DatatableInvoicetableComponent implements OnInit { | ||||||
|  |   @ViewChild('st', { static: false }) | ||||||
|  |   st!: STComponent; | ||||||
|  |   columns!: STColumn[]; | ||||||
|  |  | ||||||
|  |   data=[{name1:1111}] | ||||||
|  |   constructor(private http: _HttpClient, private modal: ModalHelper) { } | ||||||
|  |  | ||||||
|  |   /** | ||||||
|  |    * 查询参数 | ||||||
|  |    */ | ||||||
|  |    get reqParams() { | ||||||
|  |     return {  }; | ||||||
|  |   } | ||||||
|  |   ngOnInit(): void {  | ||||||
|  |     this.initST(); | ||||||
|  |   } | ||||||
|  |   initST() { | ||||||
|  |     this.columns = [ | ||||||
|  |       { | ||||||
|  |         title: '运营主体', | ||||||
|  |         index: 'name1' | ||||||
|  |       }, | ||||||
|  |       { | ||||||
|  |         title: '已开票总金额', | ||||||
|  |         index: 'name1' | ||||||
|  |       }, | ||||||
|  |       { | ||||||
|  |         title: '当月已开票金额', | ||||||
|  |         index: 'name1' | ||||||
|  |       }, | ||||||
|  |       { | ||||||
|  |         title: '已申请待开金额', | ||||||
|  |         index: 'name1' | ||||||
|  |       }, | ||||||
|  |       { | ||||||
|  |         title: '未申请开票金额(历史)', | ||||||
|  |         index: 'name1' | ||||||
|  |       }, | ||||||
|  |       { | ||||||
|  |         title: '未申请开票金额(当月)', | ||||||
|  |         index: 'name1' | ||||||
|  |       }, | ||||||
|  |       { | ||||||
|  |         title: '当月发票张数', | ||||||
|  |         index: 'name1' | ||||||
|  |       }, | ||||||
|  |       { | ||||||
|  |         title: '剩余发票张数', | ||||||
|  |         index: 'name1' | ||||||
|  |       }, | ||||||
|  |        | ||||||
|  |     ]; | ||||||
|  |   } | ||||||
|  |   add(): void { | ||||||
|  |     // this.modal | ||||||
|  |     //   .createStatic(FormEditComponent, { i: { id: 0 } }) | ||||||
|  |     //   .subscribe(() => this.st.reload()); | ||||||
|  |   } | ||||||
|  |  | ||||||
|  | } | ||||||
| @ -7,6 +7,11 @@ import { DatatableDriverComponent } from './components/customtable/driver/driver | |||||||
| import { DatatableOperationtableComponent } from './components/operationtable/operationtable.component'; | import { DatatableOperationtableComponent } from './components/operationtable/operationtable.component'; | ||||||
| import { DatatableOrderReportingComponent } from './reporting/components/order-reporting/order-reporting.component'; | import { DatatableOrderReportingComponent } from './reporting/components/order-reporting/order-reporting.component'; | ||||||
| import { DatatableDataindexComponent } from './components/dataindex/dataindex.component'; | import { DatatableDataindexComponent } from './components/dataindex/dataindex.component'; | ||||||
|  | import { DatatableComplianceIndexComponent } from './components/compliance/index/index.component'; | ||||||
|  | import { DatatableFinancetableComponent } from './components/financetable/financetable.component'; | ||||||
|  | import { DatatableInvoicetableComponent } from './components/invoicetable/invoicetable.component'; | ||||||
|  | import { DatatableComplianceSalesmanComponent } from './components/compliance/salesman/salesman.component'; | ||||||
|  | import { DatatableComplianceCustomerComponent } from './components/compliance/customer/customer.component'; | ||||||
| import { DatatableFundReportingComponent } from './reporting/components/fund-reporting/fund-reporting.component'; | import { DatatableFundReportingComponent } from './reporting/components/fund-reporting/fund-reporting.component'; | ||||||
|  |  | ||||||
| const routes: Routes = [ | const routes: Routes = [ | ||||||
| @ -17,9 +22,14 @@ const routes: Routes = [ | |||||||
|   { path: 'driver', component: DatatableDriverComponent }, |   { path: 'driver', component: DatatableDriverComponent }, | ||||||
|   { path: 'operationtable', component: DatatableOperationtableComponent }, |   { path: 'operationtable', component: DatatableOperationtableComponent }, | ||||||
|   { path: 'reporting/order', component: DatatableOrderReportingComponent }, |   { path: 'reporting/order', component: DatatableOrderReportingComponent }, | ||||||
|  |   { path: 'compliancetabel/index', component: DatatableComplianceIndexComponent }, | ||||||
|  |   { path: 'compliancetabel/salesman', component: DatatableComplianceSalesmanComponent }, | ||||||
|  |   { path: 'compliancetabel/customer', component: DatatableComplianceCustomerComponent }, | ||||||
|  |   { path: 'financetable', component: DatatableFinancetableComponent }, | ||||||
|  |   { path: 'invoicetable', component: DatatableInvoicetableComponent }, | ||||||
|   { path: 'reporting/fund', component: DatatableFundReportingComponent } |   { path: 'reporting/fund', component: DatatableFundReportingComponent } | ||||||
| ]; | ]; | ||||||
|  |    | ||||||
|  |  | ||||||
| @NgModule({ | @NgModule({ | ||||||
|   imports: [RouterModule.forChild(routes)], |   imports: [RouterModule.forChild(routes)], | ||||||
|  | |||||||
| @ -9,6 +9,11 @@ import { DatatableOperationtableComponent } from './components/operationtable/op | |||||||
| import { OperationtablePieComponent } from './components/operationtable/pie/pie.component'; | import { OperationtablePieComponent } from './components/operationtable/pie/pie.component'; | ||||||
| import { DatatableOrderReportingComponent } from './reporting/components/order-reporting/order-reporting.component'; | import { DatatableOrderReportingComponent } from './reporting/components/order-reporting/order-reporting.component'; | ||||||
| import { DatatableDataindexComponent } from './components/dataindex/dataindex.component'; | import { DatatableDataindexComponent } from './components/dataindex/dataindex.component'; | ||||||
|  | import { DatatableComplianceIndexComponent } from './components/compliance/index/index.component'; | ||||||
|  | import { DatatableFinancetableComponent } from './components/financetable/financetable.component'; | ||||||
|  | import { DatatableInvoicetableComponent } from './components/invoicetable/invoicetable.component'; | ||||||
|  | import { DatatableComplianceSalesmanComponent } from './components/compliance/salesman/salesman.component'; | ||||||
|  | import { DatatableComplianceCustomerComponent } from './components/compliance/customer/customer.component'; | ||||||
| import { DatatableReportingUploadSettingComponent } from './reporting/components/upload-setting/upload-setting.component'; | import { DatatableReportingUploadSettingComponent } from './reporting/components/upload-setting/upload-setting.component'; | ||||||
| import { DatatableReportingVerifyResultComponent } from './reporting/components/verify-result/verify-result.component'; | import { DatatableReportingVerifyResultComponent } from './reporting/components/verify-result/verify-result.component'; | ||||||
| import { DatatableFundReportingComponent } from './reporting/components/fund-reporting/fund-reporting.component'; | import { DatatableFundReportingComponent } from './reporting/components/fund-reporting/fund-reporting.component'; | ||||||
| @ -22,10 +27,16 @@ const COMPONENTS: Type<void>[] = [ | |||||||
|   DatatableOperationtableComponent, |   DatatableOperationtableComponent, | ||||||
|   OperationtablePieComponent, |   OperationtablePieComponent, | ||||||
|   DatatableOrderReportingComponent, |   DatatableOrderReportingComponent, | ||||||
|  |   DatatableComplianceIndexComponent, | ||||||
|  |   DatatableFinancetableComponent, | ||||||
|  |   DatatableInvoicetableComponent, | ||||||
|  |   DatatableComplianceSalesmanComponent, | ||||||
|  |   DatatableComplianceCustomerComponent, | ||||||
|   DatatableReportingUploadSettingComponent, |   DatatableReportingUploadSettingComponent, | ||||||
|   DatatableReportingVerifyResultComponent, |   DatatableReportingVerifyResultComponent, | ||||||
|   DatatableFundReportingComponent |   DatatableFundReportingComponent | ||||||
| ]; | ] | ||||||
|  |   | ||||||
|  |  | ||||||
| @NgModule({ | @NgModule({ | ||||||
|   imports: [ |   imports: [ | ||||||
|  | |||||||
| @ -267,7 +267,7 @@ export class DatatableOrderReportingComponent implements OnInit { | |||||||
|       { title: '订单状态', render: 'orderStatus', className: 'text-center', width: '120px', }, |       { title: '订单状态', render: 'orderStatus', className: 'text-center', width: '120px', }, | ||||||
|       { title: '司机状态', render: 'driverStatus', className: 'text-center', width: '120px', }, |       { title: '司机状态', render: 'driverStatus', className: 'text-center', width: '120px', }, | ||||||
|       { title: '车辆状态', render: 'carStatus', className: 'text-center', width: '120px', }, |       { title: '车辆状态', render: 'carStatus', className: 'text-center', width: '120px', }, | ||||||
|       { title: '本地校验', render: 'localValid', className: 'text-center', width: '120px', }, |       { title: '本地校验66', render: 'localValid', className: 'text-center', width: '120px', }, | ||||||
|       { |       { | ||||||
|         title: '订单号', |         title: '订单号', | ||||||
|         render: 'billComplianceVOS', |         render: 'billComplianceVOS', | ||||||
|  | |||||||
| @ -4,7 +4,7 @@ | |||||||
|  * @Author       : Shiming |  * @Author       : Shiming | ||||||
|  * @Date         : 2021-12-06 20:20:26 |  * @Date         : 2021-12-06 20:20:26 | ||||||
|  * @LastEditors  : Shiming |  * @LastEditors  : Shiming | ||||||
|  * @LastEditTime : 2022-03-29 14:30:12 |  * @LastEditTime : 2022-03-30 09:35:49 | ||||||
|  * @FilePath     : \\tms-obc-web\\src\\app\\routes\\order-management\\components\\bulk-detail\\bulk-detail.component.html |  * @FilePath     : \\tms-obc-web\\src\\app\\routes\\order-management\\components\\bulk-detail\\bulk-detail.component.html | ||||||
|  * Copyright (C) 2022 huzhenhong. All rights reserved. |  * Copyright (C) 2022 huzhenhong. All rights reserved. | ||||||
| --> | --> | ||||||
| @ -222,7 +222,7 @@ | |||||||
|     </ng-template> |     </ng-template> | ||||||
|   </div> |   </div> | ||||||
| </nz-card> | </nz-card> | ||||||
| <nz-card *ngIf="!route?.snapshot?.queryParams?.sts"> | <nz-card *ngIf="!route?.snapshot?.queryParams?.sts && abnormalList.length > 0"> | ||||||
|   <nz-tabset > |   <nz-tabset > | ||||||
|     <nz-tab nzTitle="风险异常检测"> |     <nz-tab nzTitle="风险异常检测"> | ||||||
|       <button nz-button nzType="primary"[disabled]="">申 诉</button> |       <button nz-button nzType="primary"[disabled]="">申 诉</button> | ||||||
|  | |||||||
| @ -54,11 +54,14 @@ export class OrderManagementComplaintComponent implements OnInit { | |||||||
|     public service: OrderManagementService, |     public service: OrderManagementService, | ||||||
|     private modal: NzModalService, |     private modal: NzModalService, | ||||||
|     private router: Router |     private router: Router | ||||||
|      ) {     if (this.selectedIndex === 0) { |      ) {    | ||||||
|       this.selectedMainTabStatus = '1'; |     //    console.log(this.selectedIndex); | ||||||
|     } else if (this.selectedIndex === 1) { |     //   if (this.selectedIndex === 0) { | ||||||
|       this.selectedMainTabStatus = '2'; |     //   this.selectedMainTabStatus = '2'; | ||||||
|     }} |     // } else if (this.selectedIndex === 1) { | ||||||
|  |     //   this.selectedMainTabStatus = '1'; | ||||||
|  |     // } | ||||||
|  |   } | ||||||
|  |  | ||||||
|   /** |   /** | ||||||
|  * 查询参数 |  * 查询参数 | ||||||
| @ -68,11 +71,18 @@ export class OrderManagementComplaintComponent implements OnInit { | |||||||
|     if(this.resourceStatus) { |     if(this.resourceStatus) { | ||||||
|       a.complaintStatus = this.resourceStatus  |       a.complaintStatus = this.resourceStatus  | ||||||
|     } |     } | ||||||
|     if(this.selectedMainTabStatus) { |     console.log(this.selectedMainTabStatus); | ||||||
|       a.complaintType = this.selectedMainTabStatus |  | ||||||
|     } |  | ||||||
|     console.log( this.sf?.value); |  | ||||||
|      |      | ||||||
|  |     if(this.selectedMainTabStatus) { | ||||||
|  |       switch(this.selectedMainTabStatus) { | ||||||
|  |         case '1': | ||||||
|  |           a.complainantParty = '2' | ||||||
|  |           break; | ||||||
|  |           case '2': | ||||||
|  |           a.complainantParty = '1' | ||||||
|  |           break; | ||||||
|  |       } | ||||||
|  |     } | ||||||
|     const params: any = Object.assign({}, this.sf?.value || {}); |     const params: any = Object.assign({}, this.sf?.value || {}); | ||||||
|     delete params._$expand; |     delete params._$expand; | ||||||
|     return { |     return { | ||||||
| @ -264,6 +274,7 @@ export class OrderManagementComplaintComponent implements OnInit { | |||||||
|    * 切换投诉与被投诉tab |    * 切换投诉与被投诉tab | ||||||
|    */ |    */ | ||||||
|      selectMainTab(e: any) { |      selectMainTab(e: any) { | ||||||
|  |        console.log(e); | ||||||
|       console.log(this.selectedIndex); |       console.log(this.selectedIndex); | ||||||
|       this.selectedMainTabStatus = e?.status; |       this.selectedMainTabStatus = e?.status; | ||||||
|       this.initST(); |       this.initST(); | ||||||
|  | |||||||
| @ -4,7 +4,7 @@ | |||||||
|  * @Author       : Shiming |  * @Author       : Shiming | ||||||
|  * @Date         : 2021-12-28 14:42:03 |  * @Date         : 2021-12-28 14:42:03 | ||||||
|  * @LastEditors  : Shiming |  * @LastEditors  : Shiming | ||||||
|  * @LastEditTime : 2022-03-28 20:31:30 |  * @LastEditTime : 2022-03-30 09:36:23 | ||||||
|  * @FilePath     : \\tms-obc-web\\src\\app\\routes\\order-management\\components\\vehicle-detail\\vehicle-detail.component.html |  * @FilePath     : \\tms-obc-web\\src\\app\\routes\\order-management\\components\\vehicle-detail\\vehicle-detail.component.html | ||||||
|  * Copyright (C) 2022 huzhenhong. All rights reserved. |  * Copyright (C) 2022 huzhenhong. All rights reserved. | ||||||
| --> | --> | ||||||
| @ -229,7 +229,7 @@ | |||||||
|     </ng-template> |     </ng-template> | ||||||
|   </div> |   </div> | ||||||
| </nz-card> | </nz-card> | ||||||
| <nz-card *ngIf="!route?.snapshot?.queryParams?.sts"> | <nz-card *ngIf="!route?.snapshot?.queryParams?.sts && abnormalList.length > 0"> | ||||||
|   <nz-tabset > |   <nz-tabset > | ||||||
|     <nz-tab nzTitle="风险异常检测"> |     <nz-tab nzTitle="风险异常检测"> | ||||||
|       <button nz-button nzType="primary"[disabled]="">申 诉</button> |       <button nz-button nzType="primary"[disabled]="">申 诉</button> | ||||||
|  | |||||||
| @ -65,7 +65,7 @@ | |||||||
|                 <p style="margin: 0;">开户行: {{openInfo?.artobank}}</p> |                 <p style="margin: 0;">开户行: {{openInfo?.artobank}}</p> | ||||||
|             </se> |             </se> | ||||||
|             <se [col]="1" label="服务名称" class="mb-sm"> |             <se [col]="1" label="服务名称" class="mb-sm"> | ||||||
|                 {{openInfo?.vatnameLable}} |                 {{openInfo?.vatnameLabel}} | ||||||
|             </se> |             </se> | ||||||
|             <se [col]="1" label="发票备注栏" class="mb-sm"> |             <se [col]="1" label="发票备注栏" class="mb-sm"> | ||||||
|                 {{openInfo?.vatremarks}} |                 {{openInfo?.vatremarks}} | ||||||
|  | |||||||
| @ -50,6 +50,8 @@ export class InvoiceRequestedDetailComponent implements OnInit { | |||||||
|   } |   } | ||||||
|  |  | ||||||
|   beforeReq = (requestOptions: STRequestOptions) => { |   beforeReq = (requestOptions: STRequestOptions) => { | ||||||
|  |     this.totalCallNo = '0'; | ||||||
|  |     this.selectedRows = []; | ||||||
|     Object.assign(requestOptions.body, { vatappHId: this.id }); |     Object.assign(requestOptions.body, { vatappHId: this.id }); | ||||||
|     if (this.sf) { |     if (this.sf) { | ||||||
|       Object.assign(requestOptions.body, { ...this.sf.value }); |       Object.assign(requestOptions.body, { ...this.sf.value }); | ||||||
| @ -58,7 +60,7 @@ export class InvoiceRequestedDetailComponent implements OnInit { | |||||||
|   }; |   }; | ||||||
|  |  | ||||||
|   afterRes = (data: any[], rawData?: any) => { |   afterRes = (data: any[], rawData?: any) => { | ||||||
|     this.totalCallNo = data.reduce((total, cv) => total + cv.billkpmoney, 0).toFixed(2); |     // this.totalCallNo = data.reduce((total, cv) => total + cv.billkpmoney, 0).toFixed(2); | ||||||
|     return data.map(item => ({ |     return data.map(item => ({ | ||||||
|       ...item |       ...item | ||||||
|     })); |     })); | ||||||
|  | |||||||
| @ -717,6 +717,8 @@ export class CarSettleCarauthComponent implements OnInit { | |||||||
|     params.roadTransportPhoto = this.detailData.roadTransportPhoto |     params.roadTransportPhoto = this.detailData.roadTransportPhoto | ||||||
|     delete params.titleA |     delete params.titleA | ||||||
|     delete params.titleB |     delete params.titleB | ||||||
|  |     console.log(params); | ||||||
|  |      | ||||||
|     this.service.request(this.service.$api_saveUpdateShipperCar, params).subscribe((res: any) => { |     this.service.request(this.service.$api_saveUpdateShipperCar, params).subscribe((res: any) => { | ||||||
|       if (res) { |       if (res) { | ||||||
|         this.service.msgSrv.success('添加成功') |         this.service.msgSrv.success('添加成功') | ||||||
|  | |||||||
| @ -646,8 +646,32 @@ | |||||||
|             { |             { | ||||||
|               "text": "订单上报", |               "text": "订单上报", | ||||||
|               "link": "/datatable/reporting/order" |               "link": "/datatable/reporting/order" | ||||||
|  |             }, | ||||||
|  |             { | ||||||
|  |               "text": "合规监控报表", | ||||||
|  |               "children": [{ | ||||||
|  |                   "text": "合规监控报表", | ||||||
|  |                   "link": "/datatable/compliancetabel/index" | ||||||
|  |                 }, | ||||||
|  |                 { | ||||||
|  |                   "text": "业务员-合规报表", | ||||||
|  |                   "link": "/datatable/compliancetabel/salesman" | ||||||
|  |                 }, | ||||||
|  |                 { | ||||||
|  |                   "text": "客户-合规报表", | ||||||
|  |                   "link": "/datatable/compliancetabel/customer" | ||||||
|  |                 } | ||||||
|  |               ] | ||||||
|  |             }, | ||||||
|  |             { | ||||||
|  |               "text": "财务报表", | ||||||
|  |               "link": "/datatable/financetable" | ||||||
|  |             }, | ||||||
|  |             { | ||||||
|  |               "text": "开票数据报表", | ||||||
|  |               "link": "/datatable/invoicetable" | ||||||
|             } |             } | ||||||
|           ] |         ] | ||||||
|         } |         } | ||||||
|       ] |       ] | ||||||
|     }] |     }] | ||||||
|  | |||||||
		Reference in New Issue
	
	Block a user