fix bug
This commit is contained in:
		| @ -20,7 +20,7 @@ module.exports = { | |||||||
|   // } |   // } | ||||||
|   '//api': { |   '//api': { | ||||||
|     target: { |     target: { | ||||||
|       host: 'tms-api-dev.eascs.com', |       host: 'tms-api-test.eascs.com', | ||||||
|       protocol: 'https:', |       protocol: 'https:', | ||||||
|       port: 443 |       port: 443 | ||||||
|     }, |     }, | ||||||
|  | |||||||
| @ -5,6 +5,7 @@ import { DatatableCustomindexComponent } from './components/customtable/customin | |||||||
| import { DatatableOwnerComponent } from './components/customtable/owner/owner.component'; | import { DatatableOwnerComponent } from './components/customtable/owner/owner.component'; | ||||||
| import { DatatableDriverComponent } from './components/customtable/driver/driver.component'; | import { DatatableDriverComponent } from './components/customtable/driver/driver.component'; | ||||||
| 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 { DatatableDataindexComponent } from './components/dataindex/dataindex.component'; | import { DatatableDataindexComponent } from './components/dataindex/dataindex.component'; | ||||||
|  |  | ||||||
| const routes: Routes = [ | const routes: Routes = [ | ||||||
| @ -13,7 +14,9 @@ const routes: Routes = [ | |||||||
|   { path: 'customindex', component: DatatableCustomindexComponent }, |   { path: 'customindex', component: DatatableCustomindexComponent }, | ||||||
|   { path: 'owner', component: DatatableOwnerComponent }, |   { path: 'owner', component: DatatableOwnerComponent }, | ||||||
|   { path: 'driver', component: DatatableDriverComponent }, |   { path: 'driver', component: DatatableDriverComponent }, | ||||||
|   { path: 'operationtable', component: DatatableOperationtableComponent }]; |   { path: 'operationtable', component: DatatableOperationtableComponent }, | ||||||
|  |   { path: 'reporting/order', component: DatatableOrderReportingComponent }]; | ||||||
|  |    | ||||||
|  |  | ||||||
| @NgModule({ | @NgModule({ | ||||||
|   imports: [RouterModule.forChild(routes)], |   imports: [RouterModule.forChild(routes)], | ||||||
|  | |||||||
| @ -6,8 +6,9 @@ import { DatatableCustomindexComponent } from './components/customtable/customin | |||||||
| import { DatatableOwnerComponent } from './components/customtable/owner/owner.component'; | import { DatatableOwnerComponent } from './components/customtable/owner/owner.component'; | ||||||
| import { DatatableDriverComponent } from './components/customtable/driver/driver.component'; | import { DatatableDriverComponent } from './components/customtable/driver/driver.component'; | ||||||
| import { DatatableOperationtableComponent } from './components/operationtable/operationtable.component'; | import { DatatableOperationtableComponent } from './components/operationtable/operationtable.component'; | ||||||
| import { DatatableDataindexComponent } from './components/dataindex/dataindex.component'; |  | ||||||
| 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 { DatatableDataindexComponent } from './components/dataindex/dataindex.component'; | ||||||
|  |  | ||||||
| const COMPONENTS: Type<void>[] = [ | const COMPONENTS: Type<void>[] = [ | ||||||
|   DatatableDataindexComponent, |   DatatableDataindexComponent, | ||||||
| @ -16,7 +17,8 @@ const COMPONENTS: Type<void>[] = [ | |||||||
|   DatatableOwnerComponent, |   DatatableOwnerComponent, | ||||||
|   DatatableDriverComponent, |   DatatableDriverComponent, | ||||||
|   DatatableOperationtableComponent, |   DatatableOperationtableComponent, | ||||||
|   OperationtablePieComponent |   OperationtablePieComponent, | ||||||
|  |   DatatableOrderReportingComponent | ||||||
| ]; | ]; | ||||||
|  |  | ||||||
| @NgModule({ | @NgModule({ | ||||||
|  | |||||||
| @ -0,0 +1,85 @@ | |||||||
|  | <page-header-wrapper [title]="''"></page-header-wrapper> | ||||||
|  |  | ||||||
|  | <nz-card> | ||||||
|  |   <!-- 搜索表单 --> | ||||||
|  |   <div nz-row nzGutter="8"> | ||||||
|  |     <div nz-col [nzSpan]="_$expand ? 24 : 18"> | ||||||
|  |       <sf #sf [schema]="schema" [ui]="ui" [compact]="true" [button]="'none'"></sf> | ||||||
|  |     </div> | ||||||
|  |     <div nz-col [nzSpan]="_$expand ? 24 : 6" [class.text-right]="_$expand"> | ||||||
|  |       <button nz-button nzType="primary" [disabled]="!sf.valid" [nzLoading]="false" (click)="search()" acl | ||||||
|  |         [acl-ability]="['RiskOrder-Search']">查询</button> | ||||||
|  |       <button nz-button (click)="resetSF()">重置</button> | ||||||
|  |       <button nz-button (click)="resetSF()">导出</button> | ||||||
|  |       <button nz-button nzType="link" (click)="expandToggle()"> | ||||||
|  |         {{ !_$expand ? '展开' : '收起' }} | ||||||
|  |         <i nz-icon [nzType]="!_$expand ? 'down' : 'up'"></i> | ||||||
|  |       </button> | ||||||
|  |     </div> | ||||||
|  |   </div> | ||||||
|  | </nz-card> | ||||||
|  | <nz-card> | ||||||
|  |   <nz-tabset [nzTabBarExtraContent]="extraTemplate" *ngIf="tabs.length>0"> | ||||||
|  |  | ||||||
|  |     <nz-tab *ngFor="let tab of tabs" [nzTitle]="tab.name" (nzSelect)="selectChange(tab)"> | ||||||
|  |     </nz-tab> | ||||||
|  |   </nz-tabset> | ||||||
|  |   <!-- 数据列表 --> | ||||||
|  |   <st #st [scroll]="{x:'1200px'}" [data]="service.$api_order_reporting_page" [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, 50, 100] }" [loading]="false"> | ||||||
|  |     <ng-template st-row="orderSn" let-item let-index="index"> | ||||||
|  |       <a (click)="view(item)">{{item.billCode}}</a> | ||||||
|  |     </ng-template> | ||||||
|  |     <ng-template st-row="freightDetails" let-item> | ||||||
|  |       <div *ngFor="let item of item.freightDetails"> | ||||||
|  |         <div>{{item.expenseName}}:{{item.price | currency}} </div> | ||||||
|  |       </div> | ||||||
|  |     </ng-template> | ||||||
|  |     <ng-template st-row="loadingPlace" let-item let-index="index"> | ||||||
|  |       <div *ngFor="let address of item.loadingAddressArr">{{ address }} </div> | ||||||
|  |     </ng-template> | ||||||
|  |     <ng-template st-row="dischargePlace" let-item let-index="index"> | ||||||
|  |       <div *ngFor="let address of item.unloadingAddressArr">{{ address }}</div> | ||||||
|  |     </ng-template> | ||||||
|  |     <ng-template st-row="goodsInfoVOList" let-item> | ||||||
|  |       <div *ngFor="let item of item.goodsInfoVOList"> | ||||||
|  |         <div>货物名称 : {{item.goodsName}}</div> | ||||||
|  |         <div>重量/体积 : {{item.weight}}/{{item.volume}}</div> | ||||||
|  |         <div>车型/车长 :{{item.carModelLabel}}/{{item.carLengthLabel}}</div> | ||||||
|  |       </div> | ||||||
|  |     </ng-template> | ||||||
|  |     <ng-template st-row="driver" let-item> | ||||||
|  |       <div> {{item.driverName}}</div> | ||||||
|  |       <div>{{item.driverPhone}}</div> | ||||||
|  |       <div>{{item.carNo}}</div> | ||||||
|  |     </ng-template> | ||||||
|  |     <ng-template st-row="payeeName" let-item> | ||||||
|  |       <div>{{item.payeeName}}</div> | ||||||
|  |       <div>{{item.payeePhone}}</div> | ||||||
|  |     </ng-template> | ||||||
|  |     <ng-template st-row="transportInfo" let-item> | ||||||
|  |       <div>创建时间:{{item.createTime}}</div> | ||||||
|  |       <div>装货时间:{{item.loadTime}}</div> | ||||||
|  |       <div>卸货时间:{{item.unloadTime}}</div> | ||||||
|  |     </ng-template> | ||||||
|  |     <ng-template st-row="billComplianceVOS" let-item> | ||||||
|  |       <div *ngFor="let item of item?.billComplianceVOS">{{item?.complianceName}}</div> | ||||||
|  |     </ng-template> | ||||||
|  |     <ng-template st-row="serviceType" let-item> | ||||||
|  |       <div>{{item?.billTypeLabel}} ({{item?.serviceTypeLabel}}) </div> | ||||||
|  |     </ng-template> | ||||||
|  |   </st> | ||||||
|  | </nz-card> | ||||||
|  | <ng-template #extraTemplate> | ||||||
|  |   <div class="d-flex align-items-center "> | ||||||
|  |     <div class="mr-md"> | ||||||
|  |       已选择 | ||||||
|  |       <strong class="text-red">{{ selectedRows.length }}</strong> 条数据 | ||||||
|  |     </div> | ||||||
|  |     <button nz-button nzType="primary" (click)="upload()">上传</button> | ||||||
|  |     <button nz-button nzType="primary" (click)="recall({})">撤回</button> | ||||||
|  |     <button nz-button nzType="primary" (click)="uploadSetting()">上传设置</button> | ||||||
|  |   </div> | ||||||
|  | </ng-template> | ||||||
| @ -0,0 +1,24 @@ | |||||||
|  | import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing'; | ||||||
|  | import { DatatableOrderReportingComponent } from './order-reporting.component'; | ||||||
|  |  | ||||||
|  | describe('DatatableOrderReportingComponent', () => { | ||||||
|  |   let component: DatatableOrderReportingComponent; | ||||||
|  |   let fixture: ComponentFixture<DatatableOrderReportingComponent>; | ||||||
|  |  | ||||||
|  |   beforeEach(waitForAsync(() => { | ||||||
|  |     TestBed.configureTestingModule({ | ||||||
|  |       declarations: [ DatatableOrderReportingComponent ] | ||||||
|  |     }) | ||||||
|  |     .compileComponents(); | ||||||
|  |   })); | ||||||
|  |  | ||||||
|  |   beforeEach(() => { | ||||||
|  |     fixture = TestBed.createComponent(DatatableOrderReportingComponent); | ||||||
|  |     component = fixture.componentInstance; | ||||||
|  |     fixture.detectChanges(); | ||||||
|  |   }); | ||||||
|  |  | ||||||
|  |   it('should create', () => { | ||||||
|  |     expect(component).toBeTruthy(); | ||||||
|  |   }); | ||||||
|  | }); | ||||||
| @ -0,0 +1,416 @@ | |||||||
|  | import { Component, OnInit, ViewChild } from '@angular/core'; | ||||||
|  | import { Router, ActivatedRoute } from '@angular/router'; | ||||||
|  | import { STColumn, STComponent, STData } from '@delon/abc/st'; | ||||||
|  | import { SFComponent, SFDateWidgetSchema, SFSchema, SFUISchema } from '@delon/form'; | ||||||
|  | import { ModalHelper, _HttpClient } from '@delon/theme'; | ||||||
|  | import { ShipperBaseService } from '@shared'; | ||||||
|  | import { NzModalService } from 'ng-zorro-antd/modal'; | ||||||
|  | import { ReportingService } from '../../services/reporting.service'; | ||||||
|  |  | ||||||
|  | @Component({ | ||||||
|  |   selector: 'app-datatable-order-reporting', | ||||||
|  |   templateUrl: './order-reporting.component.html', | ||||||
|  | }) | ||||||
|  | export class DatatableOrderReportingComponent implements OnInit { | ||||||
|  |   _$expand = false; | ||||||
|  |   ui!: SFUISchema; | ||||||
|  |   schema!: SFSchema; | ||||||
|  |   columns!: STColumn[]; | ||||||
|  |   @ViewChild('st', { static: false }) st!: STComponent; | ||||||
|  |   @ViewChild('sf', { static: false }) sf!: SFComponent; | ||||||
|  |   tabType!: string; | ||||||
|  |   tabs: any[] = [ | ||||||
|  |     { name: '待上传', value: '1' }, | ||||||
|  |     { name: '上传中', value: '2' }, | ||||||
|  |     { name: '已上传', value: '3' }, | ||||||
|  |     { name: '异常', value: '4' }, | ||||||
|  |     { name: '全部', value: '' } | ||||||
|  |   ]; | ||||||
|  |   selectedIndex = ''; //选择的项目 | ||||||
|  |   serviceTel = ''; | ||||||
|  |   constructor( | ||||||
|  |     public service: ReportingService, | ||||||
|  |     private router: Router, | ||||||
|  |     private ar: ActivatedRoute, | ||||||
|  |     private modal: NzModalService, | ||||||
|  |     public shipperSrv: ShipperBaseService | ||||||
|  |   ) { | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   /** | ||||||
|  |    * 查询字段个数 | ||||||
|  |    */ | ||||||
|  |   get queryFieldCount(): number { | ||||||
|  |     return Object.keys(this.schema?.properties || {}).length; | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   /** | ||||||
|  |    * 查询参数 | ||||||
|  |    */ | ||||||
|  |   get reqParams() { | ||||||
|  |     const params = Object.assign({}, this.sf?.value || {}, { | ||||||
|  |       representationsStatus: this.selectedIndex, | ||||||
|  |     }); | ||||||
|  |     delete params._$expand; | ||||||
|  |     return { ...params }; | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   /** | ||||||
|  |    * 选中行 | ||||||
|  |    */ | ||||||
|  |   get selectedRows() { | ||||||
|  |     return this.st?.list.filter((item: any) => item.checked) || []; | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   /** | ||||||
|  |    * 伸缩查询条件 | ||||||
|  |    */ | ||||||
|  |   expandToggle() { | ||||||
|  |     this._$expand = !this._$expand; | ||||||
|  |     this.sf?.setValue('/_$expand', this._$expand); | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   /** | ||||||
|  |    * 重置表单 | ||||||
|  |    */ | ||||||
|  |   resetSF() { | ||||||
|  |     this.sf.reset(); | ||||||
|  |     this._$expand = false; | ||||||
|  |   } | ||||||
|  |   /** | ||||||
|  |    * 程序初始化入口 | ||||||
|  |    */ | ||||||
|  |   ngOnInit() { | ||||||
|  |     this.initSF(); | ||||||
|  |     this.initST(); | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   /** | ||||||
|  |    * 初始化查询表单 | ||||||
|  |    */ | ||||||
|  |   initSF() { | ||||||
|  |     this.schema = { | ||||||
|  |       properties: { | ||||||
|  |         _$expand: { type: 'boolean', ui: { hidden: true } }, | ||||||
|  |         billCode: { title: '订单号', type: 'string', ui: { placeholder: '请输入' } }, | ||||||
|  |         resourceCode: { | ||||||
|  |           type: 'string', | ||||||
|  |           title: '运单号', | ||||||
|  |           ui: { | ||||||
|  |             placeholder: '请输入', | ||||||
|  |           }, | ||||||
|  |         }, | ||||||
|  |         enterpriseInfoId: { | ||||||
|  |           title: '网络货运人', | ||||||
|  |           type: 'string', | ||||||
|  |           ui: { | ||||||
|  |             placeholder: '请选择', | ||||||
|  |             widget: 'select', | ||||||
|  |             asyncData: () => this.shipperSrv.getNetworkFreightForwarder({}, false), | ||||||
|  |  | ||||||
|  |             allowClear: true | ||||||
|  |           } | ||||||
|  |         }, | ||||||
|  |         externalResourceCode: { | ||||||
|  |           title: '货主', | ||||||
|  |           type: 'string', | ||||||
|  |           ui: { | ||||||
|  |             placeholder: '请输入', | ||||||
|  |             visibleIf: { | ||||||
|  |               _$expand: (value: boolean) => value, | ||||||
|  |             }, | ||||||
|  |           } | ||||||
|  |         }, | ||||||
|  |         driverName: { | ||||||
|  |           title: '承运司机', | ||||||
|  |           type: 'string', | ||||||
|  |           ui: { | ||||||
|  |             placeholder: '请输入司机姓名/手机号', visibleIf: { | ||||||
|  |               _$expand: (value: boolean) => value, | ||||||
|  |             }, | ||||||
|  |           } | ||||||
|  |         }, | ||||||
|  |         carNo: { | ||||||
|  |           title: '车牌号', | ||||||
|  |           type: 'string', | ||||||
|  |           maxLength: 9, | ||||||
|  |           ui: { | ||||||
|  |             placeholder: '请输入', | ||||||
|  |             visibleIf: { | ||||||
|  |               _$expand: (value: boolean) => value, | ||||||
|  |             }, | ||||||
|  |           } | ||||||
|  |         }, | ||||||
|  |         serviceType: { | ||||||
|  |           title: '上传状态', | ||||||
|  |           type: 'string', | ||||||
|  |           ui: { | ||||||
|  |             placeholder: '请选择', | ||||||
|  |             widget: 'dict-select', | ||||||
|  |             params: { dictKey: 'service:type' }, | ||||||
|  |             containsAllLabel: true, | ||||||
|  |             visibleIf: { | ||||||
|  |               _$expand: (value: boolean) => value, | ||||||
|  |             }, | ||||||
|  |           } | ||||||
|  |         }, | ||||||
|  |         serviceType1: { | ||||||
|  |           title: '本地校验', | ||||||
|  |           type: 'string', | ||||||
|  |           ui: { | ||||||
|  |             placeholder: '请选择', | ||||||
|  |             widget: 'dict-select', | ||||||
|  |             params: { dictKey: 'service:type' }, | ||||||
|  |             containsAllLabel: true, | ||||||
|  |             visibleIf: { | ||||||
|  |               _$expand: (value: boolean) => value, | ||||||
|  |             }, | ||||||
|  |           } | ||||||
|  |         }, | ||||||
|  |         createTime: { | ||||||
|  |           title: '上传时间', | ||||||
|  |           type: 'string', | ||||||
|  |           ui: { | ||||||
|  |             widget: 'sl-from-to', | ||||||
|  |             type: 'date', | ||||||
|  |             format: 'yyyy-MM-dd', | ||||||
|  |             visibleIf: { | ||||||
|  |               _$expand: (value: boolean) => value, | ||||||
|  |             }, | ||||||
|  |           } as SFDateWidgetSchema, | ||||||
|  |         }, | ||||||
|  |         createTime1: { | ||||||
|  |           title: '运单生成时间', | ||||||
|  |           type: 'string', | ||||||
|  |           ui: { | ||||||
|  |             widget: 'sl-from-to', | ||||||
|  |             type: 'date', | ||||||
|  |             format: 'yyyy-MM-dd', | ||||||
|  |             visibleIf: { | ||||||
|  |               _$expand: (value: boolean) => value, | ||||||
|  |             }, | ||||||
|  |           } as SFDateWidgetSchema, | ||||||
|  |         }, | ||||||
|  |         createTime2: { | ||||||
|  |           title: '发货时间', | ||||||
|  |           type: 'string', | ||||||
|  |           ui: { | ||||||
|  |             widget: 'sl-from-to', | ||||||
|  |             type: 'date', | ||||||
|  |             format: 'yyyy-MM-dd', | ||||||
|  |             visibleIf: { | ||||||
|  |               _$expand: (value: boolean) => value, | ||||||
|  |             }, | ||||||
|  |           } as SFDateWidgetSchema, | ||||||
|  |         }, | ||||||
|  |         createTime3: { | ||||||
|  |           title: '收货时间', | ||||||
|  |           type: 'string', | ||||||
|  |           ui: { | ||||||
|  |             widget: 'sl-from-to', | ||||||
|  |             type: 'date', | ||||||
|  |             format: 'yyyy-MM-dd', | ||||||
|  |             visibleIf: { | ||||||
|  |               _$expand: (value: boolean) => value, | ||||||
|  |             }, | ||||||
|  |           } as SFDateWidgetSchema, | ||||||
|  |         }, | ||||||
|  |  | ||||||
|  |         loadingPlace: { | ||||||
|  |           title: '车辆轨迹', | ||||||
|  |           type: 'string', | ||||||
|  |           enum: [ | ||||||
|  |             { label: '全部', value: '' }, | ||||||
|  |             { label: '有', value: '1' }, | ||||||
|  |             { label: '无', value: '0' } | ||||||
|  |           ], | ||||||
|  |           ui: { | ||||||
|  |             placeholder: '请选择', | ||||||
|  |  | ||||||
|  |             visibleIf: { | ||||||
|  |               _$expand: (value: boolean) => value, | ||||||
|  |             }, | ||||||
|  |           } | ||||||
|  |         }, | ||||||
|  |         loadingPlace1: { | ||||||
|  |           title: '司机轨迹', | ||||||
|  |           type: 'string', | ||||||
|  |           enum: [ | ||||||
|  |             { label: '全部', value: '' }, | ||||||
|  |             { label: '有', value: '1' }, | ||||||
|  |             { label: '无', value: '0' } | ||||||
|  |           ], | ||||||
|  |           ui: { | ||||||
|  |             placeholder: '请选择', | ||||||
|  |  | ||||||
|  |             visibleIf: { | ||||||
|  |               _$expand: (value: boolean) => value, | ||||||
|  |             }, | ||||||
|  |           } | ||||||
|  |         }, | ||||||
|  |       }, | ||||||
|  |     }; | ||||||
|  |     this.ui = { | ||||||
|  |       '*': { spanLabelFixed: 120, grid: { span: 8, gutter: 4 }, enter: () => this.search() }, | ||||||
|  |       $time: { grid: { span: 24 } }, | ||||||
|  |     }; | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   /** | ||||||
|  |    * 初始化数据列表 | ||||||
|  |    */ | ||||||
|  |   initST() { | ||||||
|  |     this.columns = [ | ||||||
|  |       { title: '', type: 'checkbox', className: 'text-center', width: '80px', }, | ||||||
|  |       { title: '订单状态', index: 'name', className: 'text-center', width: '120px', }, | ||||||
|  |       { title: '司机状态', index: 'name', className: 'text-center', width: '120px', }, | ||||||
|  |       { title: '车辆状态', index: 'name', className: 'text-center', width: '120px', }, | ||||||
|  |       { title: '本地校验', render: 'orderSn', className: 'text-center', width: '180px', }, | ||||||
|  |       { | ||||||
|  |         title: '订单号', | ||||||
|  |         render: 'billComplianceVOS', | ||||||
|  |         className: 'text-center', | ||||||
|  |         width: '150px', | ||||||
|  |       }, | ||||||
|  |       { title: '运单号', render: 'freightDetails', className: 'text-center', width: '150px', }, | ||||||
|  |  | ||||||
|  |       { | ||||||
|  |         title: '网络货运人', | ||||||
|  |         render: 'serviceType', | ||||||
|  |         className: 'text-center', | ||||||
|  |         width: '120px', | ||||||
|  |       }, | ||||||
|  |       { title: '统一社会信用代码', index: 'loadingPlace', render: 'loadingPlace', className: 'text-center', width: '300px' }, | ||||||
|  |       { title: '业务类型', index: 'dischargePlace', render: 'dischargePlace', className: 'text-center', width: '300px' }, | ||||||
|  |       { title: '运单生成时间', render: 'goodsInfoVOList', className: 'text-center', width: '200px' }, | ||||||
|  |       { title: '发货时间', render: 'driver', className: 'text-center', width: '150px' }, | ||||||
|  |       { title: '收货时间', render: 'payeeName', className: 'text-center', width: '150px' }, | ||||||
|  |       { title: '托运人名称', render: 'transportInfo', className: 'text-center', width: '250px' }, | ||||||
|  |       { title: '托运人统一社会信用代码', index: 'loadingPlace', render: 'loadingPlace', className: 'text-center', width: '300px' }, | ||||||
|  |       { title: '装货地址', index: 'dischargePlace', render: 'dischargePlace', className: 'text-center', width: '300px' }, | ||||||
|  |       { title: '运单生成时间', render: 'goodsInfoVOList', className: 'text-center', width: '200px' }, | ||||||
|  |       { title: '收货方名称', render: 'driver', className: 'text-center', width: '150px' }, | ||||||
|  |       { title: '收货地址', render: 'payeeName', className: 'text-center', width: '150px' }, | ||||||
|  |       { title: '运费金额', render: 'transportInfo', className: 'text-center', width: '250px' }, | ||||||
|  |       { title: '车牌号', render: 'payeeName', className: 'text-center', width: '150px' }, | ||||||
|  |       { title: '车牌颜色', render: 'transportInfo', className: 'text-center', width: '250px' }, | ||||||
|  |       { title: '司机姓名', render: 'payeeName', className: 'text-center', width: '150px' }, | ||||||
|  |       { title: '司机手机号码', render: 'transportInfo', className: 'text-center', width: '250px' }, | ||||||
|  |       { title: '司机身份证号', render: 'payeeName', className: 'text-center', width: '150px' }, | ||||||
|  |       { title: '货物信息', render: 'transportInfo', className: 'text-center', width: '250px' }, | ||||||
|  |       { title: '实际承运人名称', render: 'payeeName', className: 'text-center', width: '150px' }, | ||||||
|  |       { title: '实际承运人证件号码', render: 'transportInfo', className: 'text-center', width: '250px' }, | ||||||
|  |       { title: '实际承运人道路运输许可证号', render: 'payeeName', className: 'text-center', width: '150px' }, | ||||||
|  |       { title: '车辆轨迹', render: 'transportInfo', className: 'text-center', width: '250px' }, | ||||||
|  |       { title: '司机轨迹', render: 'payeeName', className: 'text-center', width: '150px' }, | ||||||
|  |       { title: '上传次数', render: 'transportInfo', className: 'text-center', width: '250px' }, | ||||||
|  |       { title: '上传时间', render: 'transportInfo', className: 'text-center', width: '250px' }, | ||||||
|  |       { | ||||||
|  |         title: '操作', | ||||||
|  |         width: '200px', | ||||||
|  |         className: 'text-center', | ||||||
|  |         buttons: [ | ||||||
|  |           // { text: '编辑', click: (_record: any) => this.appeal(_record) }, | ||||||
|  |           { | ||||||
|  |             text: '申诉', | ||||||
|  |             // click: (record) => this.appeal(record), | ||||||
|  |             iif: (_record) => _record.representationsStatus === '1', | ||||||
|  |             acl: { 'ability': ['RiskOrder-Appeal'] } | ||||||
|  |           }, | ||||||
|  |           { | ||||||
|  |             text: '撤销申诉', | ||||||
|  |             pop: { | ||||||
|  |               title: '是否确定立即撤销申诉?', | ||||||
|  |               okType: 'danger', | ||||||
|  |             }, | ||||||
|  |             click: (record) => this.recall(record), | ||||||
|  |             iif: (_record) => _record.representationsStatus === '2', | ||||||
|  |             acl: { 'ability': ['RiskOrder-CancleAppeal'] } | ||||||
|  |           }, | ||||||
|  |           { text: '详情', click: (_record: any) => this.view(_record), acl: { 'ability': ['RiskOrder-Detail'] } }, | ||||||
|  |         ], | ||||||
|  |       }, | ||||||
|  |     ]; | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |   /** | ||||||
|  |    * 删除单个实例 | ||||||
|  |    * @param record 记录实例 | ||||||
|  |    */ | ||||||
|  |   recall(record: STData) { | ||||||
|  |     this.service.request(this.service.$api_recall_reporting, { id: record?.id }).subscribe((res: any) => { | ||||||
|  |       if (res) { | ||||||
|  |         this.search({ representationsStatus: '' }); | ||||||
|  |       } | ||||||
|  |     }) | ||||||
|  |  | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   selectChange(item: any) { | ||||||
|  |     this.selectedIndex = item?.representationsStatus || ''; | ||||||
|  |     setTimeout(() => { | ||||||
|  |       this.st.load(1); | ||||||
|  |     }) | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   /** | ||||||
|  |    * 查看当行数据 | ||||||
|  |    */ | ||||||
|  |   view(record: STData) { | ||||||
|  |     // this.router.navigate(['../view', record.uuid], { relativeTo: this.ar }); | ||||||
|  |     this.router.navigate(['../detail'], { | ||||||
|  |       queryParams: { | ||||||
|  |         id: record.id, | ||||||
|  |       }, | ||||||
|  |       relativeTo: this.ar | ||||||
|  |     }); | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   // appeal(item: any) { | ||||||
|  |   //   const modalRef = this.modal.create({ | ||||||
|  |   //     nzTitle: '申诉', | ||||||
|  |   //     nzWidth: '40%', | ||||||
|  |   //     nzContent: CtcAppealComponent, | ||||||
|  |   //     nzComponentParams: { | ||||||
|  |   //       i: item, | ||||||
|  |   //       status: 'add' | ||||||
|  |   //     }, | ||||||
|  |   //     nzFooter: null | ||||||
|  |   //   }); | ||||||
|  |   //   modalRef.afterClose.subscribe(res => { | ||||||
|  |   //     if (res) { | ||||||
|  |   //       this.search({ representationsStatus: '' }); | ||||||
|  |   //     } | ||||||
|  |   //   }) | ||||||
|  |   // } | ||||||
|  |  | ||||||
|  |   /** | ||||||
|  |    * 上传 | ||||||
|  |    */ | ||||||
|  |   upload() { | ||||||
|  |  | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |  | ||||||
|  |   /** | ||||||
|  |    * | ||||||
|  |    * @param params 上传设置 | ||||||
|  |    */ | ||||||
|  |   uploadSetting() { | ||||||
|  |  | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   search(params = {}) { | ||||||
|  |     this.st.load(1); | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   /** | ||||||
|  |   * 异步导出 | ||||||
|  |   */ | ||||||
|  |   export() { | ||||||
|  |     this.service.exportStart(this.sf?.value, this.service.$api_async_export_order_reporting_list); | ||||||
|  |   } | ||||||
|  |  | ||||||
|  | } | ||||||
| @ -0,0 +1,15 @@ | |||||||
|  | import { Injectable, Injector } from '@angular/core'; | ||||||
|  | import { BaseService } from '@shared'; | ||||||
|  |  | ||||||
|  | @Injectable({ | ||||||
|  |   providedIn: 'root' | ||||||
|  | }) | ||||||
|  | export class ReportingService extends BaseService { | ||||||
|  |  | ||||||
|  |   $api_order_reporting_page = ``; // 订单上报列表 | ||||||
|  |   $api_recall_reporting = ``; // 撤回 | ||||||
|  |   $api_async_export_order_reporting_list = ``; // 导出订单上报 | ||||||
|  |   constructor(public injector: Injector) { | ||||||
|  |     super(injector); | ||||||
|  |   } | ||||||
|  | } | ||||||
| @ -165,7 +165,9 @@ export class DriverAccountDetailComponent implements OnInit { | |||||||
|       { title: '交易时间', index: 'createTime', type: 'date' }, |       { title: '交易时间', index: 'createTime', type: 'date' }, | ||||||
|       { title: '流水号', index: 'channelPaySn' }, |       { title: '流水号', index: 'channelPaySn' }, | ||||||
|       { title: '交易类型', index: 'tradeTypeLabel', className: 'text-center' }, |       { title: '交易类型', index: 'tradeTypeLabel', className: 'text-center' }, | ||||||
|       { title: '关联单号', index: 'businessNumber' }, |       { title: '交易单号', index: 'businessNumber' }, | ||||||
|  |       { title: '订单号', index: 'orderSn' }, | ||||||
|  |       { title: '运单号', index: 'transportSn' }, | ||||||
|       { title: '收支类型', index: 'incomeTypeLabel', className: 'text-center' }, |       { title: '收支类型', index: 'incomeTypeLabel', className: 'text-center' }, | ||||||
|       { |       { | ||||||
|         title: '交易金额', |         title: '交易金额', | ||||||
| @ -182,7 +184,10 @@ export class DriverAccountDetailComponent implements OnInit { | |||||||
|         type: 'widget', |         type: 'widget', | ||||||
|         className: 'text-right', |         className: 'text-right', | ||||||
|         widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.accountBalance }) } |         widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.accountBalance }) } | ||||||
|       } |       }, | ||||||
|  |       { title: '付款方', index: 'payName'}, | ||||||
|  |       { title: '收款方', index: 'payeeName' }, | ||||||
|  |       { title: '备注', index: 'tradeContent' }, | ||||||
|     ]; |     ]; | ||||||
|   } |   } | ||||||
| } | } | ||||||
|  | |||||||
| @ -164,7 +164,7 @@ export class DriverAccountComponent implements OnInit { | |||||||
|       { title: '司机姓名', width: 140, index: 'name' }, |       { title: '司机姓名', width: 140, index: 'name' }, | ||||||
|       { title: '证件号码', width: 140, index: 'idNo' }, |       { title: '证件号码', width: 140, index: 'idNo' }, | ||||||
|       { title: '手机号', width: 140, index: 'phone' }, |       { title: '手机号', width: 140, index: 'phone' }, | ||||||
|       { title: '网络货运人', width: 140, index: 'ltdName' }, |       { title: '网络货运人', width: 180, index: 'ltdName' }, | ||||||
|       { title: '银行类型', width: 120, index: 'bankTypeLabel' }, |       { title: '银行类型', width: 120, index: 'bankTypeLabel' }, | ||||||
|       { title: '虚拟账户', width: 140, index: 'virtualAccount' }, |       { title: '虚拟账户', width: 140, index: 'virtualAccount' }, | ||||||
|       { |       { | ||||||
| @ -186,13 +186,14 @@ export class DriverAccountComponent implements OnInit { | |||||||
|       { |       { | ||||||
|         title: '本月累计提现金额', |         title: '本月累计提现金额', | ||||||
|         index: 'withdrawBalance', |         index: 'withdrawBalance', | ||||||
|         width: 150, |         width: 160, | ||||||
|         type: 'widget', |         type: 'widget', | ||||||
|         className: 'text-right', |         className: 'text-right', | ||||||
|         widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.withdrawBalance }) } |         widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.withdrawBalance }) } | ||||||
|       }, |       }, | ||||||
|       { title: '账户总余额', render: 'availableBalance', className: 'text-right', width: 180 }, |       { title: '账户总余额', render: 'availableBalance', className: 'text-right', width: 180 }, | ||||||
|       { title: '创建时间', index: 'createTime', type: 'date', width: 150 }, |       { title: '创建时间', index: 'createTime', type: 'date', width: 150 }, | ||||||
|  |       { title: '状态', index: 'stateDeletedLabel', width: 120 }, | ||||||
|       { |       { | ||||||
|         title: '操作', |         title: '操作', | ||||||
|         width: 120, |         width: 120, | ||||||
|  | |||||||
| @ -190,7 +190,8 @@ export class RechargeRecordComponent implements OnInit { | |||||||
|                 rmYll: item.roleId, |                 rmYll: item.roleId, | ||||||
|                 snglFlgCd: item.paySerialNumber2, |                 snglFlgCd: item.paySerialNumber2, | ||||||
|                 bussType: '06', |                 bussType: '06', | ||||||
|                 ltdId: item.ltdId |                 ltdId: item.ltdId, | ||||||
|  |                 accountType: item.accountType | ||||||
|               }) |               }) | ||||||
|           } |           } | ||||||
|         ] |         ] | ||||||
|  | |||||||
| @ -253,7 +253,8 @@ export class TransactionFlowComponent { | |||||||
|                 rmYll: item.roleId, |                 rmYll: item.roleId, | ||||||
|                 snglFlgCd: item.channelPaySn, |                 snglFlgCd: item.channelPaySn, | ||||||
|                 bussType: item.tradeType === '7' ? '05' : item.tradeType === '8' ? '06' : '07', |                 bussType: item.tradeType === '7' ? '05' : item.tradeType === '8' ? '06' : '07', | ||||||
|                 ltdId: item.ltdId |                 ltdId: item.ltdId, | ||||||
|  |                 accountType: item.accountType | ||||||
|               }) |               }) | ||||||
|           } |           } | ||||||
|         ] |         ] | ||||||
|  | |||||||
| @ -99,7 +99,8 @@ export class WithdrawalsDetailComponent implements OnInit { | |||||||
|       rmYll: this.formData.userId, |       rmYll: this.formData.userId, | ||||||
|       snglFlgCd: this.formData.coreSerNo, |       snglFlgCd: this.formData.coreSerNo, | ||||||
|       bussType: '06', |       bussType: '06', | ||||||
|       ltdId: this.formData.ltdId |       ltdId: this.formData.ltdId, | ||||||
|  |       accountType: this.formData.accountType | ||||||
|     }); |     }); | ||||||
|   } |   } | ||||||
|  |  | ||||||
|  | |||||||
| @ -297,7 +297,8 @@ export class WithdrawalsRecordComponent { | |||||||
|                 rmYll: item.userId, |                 rmYll: item.userId, | ||||||
|                 snglFlgCd: item.coreSerNo, |                 snglFlgCd: item.coreSerNo, | ||||||
|                 bussType: '06', |                 bussType: '06', | ||||||
|                 ltdId: item.ltdId |                 ltdId: item.ltdId, | ||||||
|  |                 accountType: item.accountType | ||||||
|               }) |               }) | ||||||
|           } |           } | ||||||
|         ] |         ] | ||||||
|  | |||||||
| @ -360,7 +360,7 @@ | |||||||
|   </div> |   </div> | ||||||
| </nz-card> | </nz-card> | ||||||
|  |  | ||||||
| <nz-modal [(nzVisible)]="isVisible"   [nzFooter]="nzModalFooter" [nzTitle]="modalTitle"  (nzOnOk)="handleOK()" (nzOnCancel)="handleCancel()"> | <nz-modal [(nzVisible)]="isVisible"   [nzFooter]="nzModalFooter" [nzTitle]="modalTitle"  (nzOnOk)="handleOK()"  nzWidth="1000px" (nzOnCancel)="handleCancel()"> | ||||||
|   <ng-container *nzModalContent> |   <ng-container *nzModalContent> | ||||||
|     <div *ngIf="!modalcontent">暂无附件信息</div> |     <div *ngIf="!modalcontent">暂无附件信息</div> | ||||||
|     <div [innerHTML]="modalcontent"></div> |     <div [innerHTML]="modalcontent"></div> | ||||||
|  | |||||||
| @ -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-24 14:08:55 |  * @LastEditTime : 2022-03-29 11:09:00 | ||||||
|  * @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. | ||||||
| --> | --> | ||||||
| @ -45,7 +45,6 @@ | |||||||
|         <sv label="服务类型">{{ i?.goodsResource?.serviceTypeLabel }}</sv> |         <sv label="服务类型">{{ i?.goodsResource?.serviceTypeLabel }}</sv> | ||||||
|         <sv label="录单员">{{ i?.createUserName }} /{{ i?.createUserPhone }} </sv> |         <sv label="录单员">{{ i?.createUserName }} /{{ i?.createUserPhone }} </sv> | ||||||
|         <sv label="调度员">{{ i?.goodsResource?.dispatchName }}/{{ i?.goodsResource?.dispatchPhone }} </sv> |         <sv label="调度员">{{ i?.goodsResource?.dispatchName }}/{{ i?.goodsResource?.dispatchPhone }} </sv> | ||||||
|         <sv label="外部订单号">{{ i?.externalBillCode }}</sv> |  | ||||||
|         <sv label="货源编号">{{ i?.goodsResource?.resourceCode }} </sv> |         <sv label="货源编号">{{ i?.goodsResource?.resourceCode }} </sv> | ||||||
|         <sv label="运单号">{{ i?.wayBill?.wayBillCode }}</sv> |         <sv label="运单号">{{ i?.wayBill?.wayBillCode }}</sv> | ||||||
|         <sv label="承诺付款天数">{{ i?.goodsResource?.paymentDays }}</sv> |         <sv label="承诺付款天数">{{ i?.goodsResource?.paymentDays }}</sv> | ||||||
| @ -248,7 +247,7 @@ | |||||||
|   </nz-tabset> |   </nz-tabset> | ||||||
| </nz-card> | </nz-card> | ||||||
|  |  | ||||||
| <nz-modal [(nzVisible)]="isVisible" [nzFooter]="nzModalFooter" [nzTitle]="modalTitle"  (nzOnOk)="handleOK()" (nzOnCancel)="handleCancel()"> | <nz-modal [(nzVisible)]="isVisible" [nzFooter]="nzModalFooter" [nzTitle]="modalTitle"  (nzOnOk)="handleOK()" nzWidth="1000px" (nzOnCancel)="handleCancel()"> | ||||||
|   <ng-container *nzModalContent> |   <ng-container *nzModalContent> | ||||||
|     <div *ngIf="!modalcontent">暂无附件信息</div> |     <div *ngIf="!modalcontent">暂无附件信息</div> | ||||||
|     <div [innerHTML]="modalcontent"></div> |     <div [innerHTML]="modalcontent"></div> | ||||||
|  | |||||||
| @ -35,7 +35,7 @@ | |||||||
|         <button nz-button nzType="primary" [nzLoading]="loading" (click)="search()" acl [acl-ability]="['ORDER-BULK-search']" |         <button nz-button nzType="primary" [nzLoading]="loading" (click)="search()" acl [acl-ability]="['ORDER-BULK-search']" | ||||||
|           >查询</button |           >查询</button | ||||||
|         > |         > | ||||||
|         <button nz-button nzType="primary" [disabled]="loading">导出</button> |         <button nz-button nzType="primary" [disabled]="loading" (click)="exprot()">导出</button> | ||||||
|         <button nz-button [disabled]="loading" (click)="resetSF()">重置</button> |         <button nz-button [disabled]="loading" (click)="resetSF()">重置</button> | ||||||
|         <button nz-button nzType="link" (click)="expandToggle()"> |         <button nz-button nzType="link" (click)="expandToggle()"> | ||||||
|           {{ !_$expand ? '展开' : '收起' }} |           {{ !_$expand ? '展开' : '收起' }} | ||||||
|  | |||||||
| @ -88,6 +88,8 @@ export class OrderManagementBulkComponent implements OnInit { | |||||||
|     } |     } | ||||||
|     const params: any = Object.assign({}, this.sf?.value || {}); |     const params: any = Object.assign({}, this.sf?.value || {}); | ||||||
|     delete params._$expand; |     delete params._$expand; | ||||||
|  |     console.log(params); | ||||||
|  |  | ||||||
|     if (this.sf) { |     if (this.sf) { | ||||||
|       Object.assign(requestOptions.body, { |       Object.assign(requestOptions.body, { | ||||||
|         ...a, |         ...a, | ||||||
| @ -467,10 +469,10 @@ export class OrderManagementBulkComponent implements OnInit { | |||||||
|         width: '180px', |         width: '180px', | ||||||
|         className: 'text-left', |         className: 'text-left', | ||||||
|         format: (item: any) => |         format: (item: any) => | ||||||
|           `${item.goodsName}/ |         `${item?.goodsName}/ | ||||||
|           ${item.goodsWeight || '0'}吨/ |         ${item?.weight || '0'}吨/ | ||||||
|           ${item.goodsVolume || '0'}方/ |         ${item?.volume || '0'}方/ | ||||||
|           ${item.goodsNumber || '0'}件` |         ${item?.goodsNumber || '0'}件` | ||||||
|       }, |       }, | ||||||
|       { |       { | ||||||
|         title: '运费单价', |         title: '运费单价', | ||||||
| @ -847,4 +849,12 @@ export class OrderManagementBulkComponent implements OnInit { | |||||||
|       } |       } | ||||||
|     }); |     }); | ||||||
|   } |   } | ||||||
|  |   // 导出 | ||||||
|  |   exprot() { | ||||||
|  |     this.service.request(this.service.$api_get_asyncExportBulkList, this.reqParams).subscribe((res: any) => { | ||||||
|  |       if (res) { | ||||||
|  |         this.service.msgSrv.success('导出成功,请去下载中心下载!'); | ||||||
|  |       } | ||||||
|  |     }); | ||||||
|  |   } | ||||||
| } | } | ||||||
|  | |||||||
| @ -133,7 +133,7 @@ export class OrderManagementRiskComponent implements OnInit { | |||||||
|           type: 'string', |           type: 'string', | ||||||
|           title: '订单号', |           title: '订单号', | ||||||
|           ui: { |           ui: { | ||||||
|             placeholder: '最多100个单号,空号隔开' |             placeholder: '请输入订单号' | ||||||
|           } |           } | ||||||
|         }, |         }, | ||||||
|         resourceCode: { |         resourceCode: { | ||||||
| @ -334,12 +334,13 @@ export class OrderManagementRiskComponent implements OnInit { | |||||||
|           { |           { | ||||||
|             text: '审核', |             text: '审核', | ||||||
|             click: _record => this.audit(_record), |             click: _record => this.audit(_record), | ||||||
|             iif: item => item.auditStatus == '1' , |             iif: item => item.representationsStatus == '2' , | ||||||
|             acl: { ability: ['ORDER-RISK-audit'] }, |             acl: { ability: ['ORDER-RISK-audit'] }, | ||||||
|           }, |           }, | ||||||
|           { |           { | ||||||
|             text: '详情', |             text: '详情', | ||||||
|             click: _record => this.viewEvaluate(_record), |             click: _record => this.viewEvaluate(_record), | ||||||
|  |             iif: item => item.representationsStatus !== '1' , | ||||||
|             acl: { ability: ['ORDER-RISK-riskDetail'] }, |             acl: { ability: ['ORDER-RISK-riskDetail'] }, | ||||||
|           } |           } | ||||||
|         ] |         ] | ||||||
|  | |||||||
| @ -333,7 +333,7 @@ | |||||||
|     </ng-template> |     </ng-template> | ||||||
|   </div> |   </div> | ||||||
| </nz-card> | </nz-card> | ||||||
| <nz-modal [(nzVisible)]="isVisible"   [nzFooter]="nzModalFooter" [nzTitle]="modalTitle"  (nzOnOk)="handleOK()" (nzOnCancel)="handleCancel()"> | <nz-modal [(nzVisible)]="isVisible"  nzWidth="1000px"  [nzFooter]="nzModalFooter" [nzTitle]="modalTitle"  (nzOnOk)="handleOK()" (nzOnCancel)="handleCancel()"> | ||||||
|   <ng-container *nzModalContent> |   <ng-container *nzModalContent> | ||||||
|     <div *ngIf="!modalcontent">暂无附件信息</div> |     <div *ngIf="!modalcontent">暂无附件信息</div> | ||||||
|     <div [innerHTML]="modalcontent"></div> |     <div [innerHTML]="modalcontent"></div> | ||||||
|  | |||||||
| @ -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-21 14:43:57 |  * @LastEditTime : 2022-03-28 20:31:30 | ||||||
|  * @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. | ||||||
| --> | --> | ||||||
| @ -47,7 +47,7 @@ | |||||||
|         <sv label="调度员">{{ i?.goodsResource?.dispatchName }}/{{ i?.goodsResource?.dispatchPhone }} </sv> |         <sv label="调度员">{{ i?.goodsResource?.dispatchName }}/{{ i?.goodsResource?.dispatchPhone }} </sv> | ||||||
|         <sv label="外部订单号">{{ i?.externalBillCode }}</sv> |         <sv label="外部订单号">{{ i?.externalBillCode }}</sv> | ||||||
|         <sv label="货源编号">{{ i?.goodsResource?.resourceCode }} </sv> |         <sv label="货源编号">{{ i?.goodsResource?.resourceCode }} </sv> | ||||||
|         <sv label="运单号">{{ i?.wayBillId }}</sv> |         <sv label="运单号">{{ i?.wayBill?.wayBillCode }}</sv> | ||||||
|         <sv label="承诺付款天数">{{ i?.goodsResource?.paymentDays }}</sv> |         <sv label="承诺付款天数">{{ i?.goodsResource?.paymentDays }}</sv> | ||||||
|       </div> |       </div> | ||||||
|  |  | ||||||
| @ -230,7 +230,7 @@ | |||||||
|   </div> |   </div> | ||||||
| </nz-card> | </nz-card> | ||||||
|  |  | ||||||
| <nz-modal [(nzVisible)]="isVisible"   [nzFooter]="nzModalFooter" [nzTitle]="modalTitle"  (nzOnOk)="handleOK()" (nzOnCancel)="handleCancel()"> | <nz-modal [(nzVisible)]="isVisible"   nzWidth="1000px"  [nzFooter]="nzModalFooter" [nzTitle]="modalTitle"  (nzOnOk)="handleOK()" (nzOnCancel)="handleCancel()"> | ||||||
|   <ng-container *nzModalContent> |   <ng-container *nzModalContent> | ||||||
|     <div *ngIf="!modalcontent">暂无附件信息</div> |     <div *ngIf="!modalcontent">暂无附件信息</div> | ||||||
|     <div [innerHTML]="modalcontent"></div> |     <div [innerHTML]="modalcontent"></div> | ||||||
|  | |||||||
| @ -4,7 +4,7 @@ | |||||||
|  * @Author       : Shiming |  * @Author       : Shiming | ||||||
|  * @Date         : 2022-01-12 10:52:50 |  * @Date         : 2022-01-12 10:52:50 | ||||||
|  * @LastEditors  : Shiming |  * @LastEditors  : Shiming | ||||||
|  * @LastEditTime : 2022-03-23 10:28:41 |  * @LastEditTime : 2022-03-28 11:10:20 | ||||||
|  * @FilePath     : \\tms-obc-web\\src\\app\\routes\\order-management\\components\\vehicle\\vehicle.component.html |  * @FilePath     : \\tms-obc-web\\src\\app\\routes\\order-management\\components\\vehicle\\vehicle.component.html | ||||||
|  * Copyright (C) 2022 huzhenhong. All rights reserved. |  * Copyright (C) 2022 huzhenhong. All rights reserved. | ||||||
| --> | --> | ||||||
| @ -209,7 +209,7 @@ | |||||||
|       [acl-ability]="['ORDER-VEHICLE-batchSignWholeOrder']"> |       [acl-ability]="['ORDER-VEHICLE-batchSignWholeOrder']"> | ||||||
|       批量签收 |       批量签收 | ||||||
|     </button> |     </button> | ||||||
|     <button nz-button nzType="primary" [disabled]="loading">导出</button> |     <button nz-button nzType="primary" [disabled]="loading" (click)="exprot()">导出</button> | ||||||
|     <button nz-button nzType="primary" (click)="visible=true;" class="mr-sm">筛选</button> |     <button nz-button nzType="primary" (click)="visible=true;" class="mr-sm">筛选</button> | ||||||
|   </div> |   </div> | ||||||
| </ng-template> | </ng-template> | ||||||
|  | |||||||
| @ -29,6 +29,7 @@ export class OrderManagementVehicleComponent extends BasicTableComponent impleme | |||||||
|   isVisibleEvaluate = false; |   isVisibleEvaluate = false; | ||||||
|   isVisible = false; |   isVisible = false; | ||||||
|   loading: boolean = true; |   loading: boolean = true; | ||||||
|  |   paramsList: any; | ||||||
|   changeId: any; // 主页面查看运费变更记录id - 用于运费变更记录 |   changeId: any; // 主页面查看运费变更记录id - 用于运费变更记录 | ||||||
|   changeViewId: any; // 查看运费变更记录id - 用于查看 |   changeViewId: any; // 查看运费变更记录id - 用于查看 | ||||||
|   ViewCause: any; // 变更运费查看数据 |   ViewCause: any; // 变更运费查看数据 | ||||||
| @ -97,36 +98,25 @@ export class OrderManagementVehicleComponent extends BasicTableComponent impleme | |||||||
|     if (this.resourceStatus) { |     if (this.resourceStatus) { | ||||||
|       a.billStatus = this.resourceStatus; |       a.billStatus = this.resourceStatus; | ||||||
|     } |     } | ||||||
|     const params: any = Object.assign({}, this.sf?.value || {}); |     const params: any = Object.assign({}, this.sf?.value || this.paramsList); | ||||||
|     delete params._$expand; |     delete params._$expand; | ||||||
|     return { |     return { | ||||||
|       ...a, |       ...a, | ||||||
|       ...params, |       ...params, | ||||||
|       createTime: { |  | ||||||
|         start: this.sf?.value?.createTime?.[0] || '', |  | ||||||
|         end: this.sf?.value?.createTime?.[1] || '' |  | ||||||
|       } |  | ||||||
|     }; |     }; | ||||||
|   } |   } | ||||||
|   beforeReq = (requestOptions: STRequestOptions) => { |   beforeReq = (requestOptions: STRequestOptions) => { | ||||||
|     const a: any = {}; |     const a: any = {}; | ||||||
|     if (this.resourceStatus) { |     if (this.resourceStatus) { | ||||||
|       a.billStatus = this.resourceStatus; |       a.billStatus = this.resourceStatus; | ||||||
|       Object.assign(requestOptions.body, { |  | ||||||
|         ...a |  | ||||||
|       }); |  | ||||||
|     } |     } | ||||||
|     const params: any = Object.assign({}, this.sf?.value || {}); |     const params: any = Object.assign({}, this.sf?.value || this.paramsList); | ||||||
|     delete params._$expand; |     delete params._$expand; | ||||||
|     if (this.sf) { |     this.paramsList = params | ||||||
|       Object.assign(requestOptions.body, { |       Object.assign(requestOptions.body, { | ||||||
|         ...params, |         ...a, | ||||||
|         createTime: { |         ...this.paramsList, | ||||||
|           start: this.sf?.value?.createTime?.[0] || '', |  | ||||||
|           end: this.sf?.value?.createTime?.[1] || '' |  | ||||||
|         } |  | ||||||
|       }); |       }); | ||||||
|     } |  | ||||||
|     this.loading = true; |     this.loading = true; | ||||||
|     return requestOptions; |     return requestOptions; | ||||||
|   }; |   }; | ||||||
| @ -282,14 +272,19 @@ export class OrderManagementVehicleComponent extends BasicTableComponent impleme | |||||||
|             containsAllLable: true |             containsAllLable: true | ||||||
|           } as SFSelectWidgetSchema |           } as SFSelectWidgetSchema | ||||||
|         }, |         }, | ||||||
|  |         // createTime: { | ||||||
|  |         //   title: '创建时间', | ||||||
|  |         //   type: 'string', | ||||||
|  |         //   ui: { | ||||||
|  |         //     widget: 'date', | ||||||
|  |         //     mode: 'range', | ||||||
|  |         //     format: 'yyyy-MM-dd' | ||||||
|  |         //   } as SFDateWidgetSchema | ||||||
|  |         // }, | ||||||
|         createTime: { |         createTime: { | ||||||
|           title: '创建时间', |  | ||||||
|           type: 'string', |           type: 'string', | ||||||
|           ui: { |           title: '创建时间', | ||||||
|             widget: 'date', |           ui: { widget: 'sl-from-to', type: 'date', format: 'yyyy-MM-dd' } as SFDateWidgetSchema, | ||||||
|             mode: 'range', |  | ||||||
|             format: 'yyyy-MM-dd' |  | ||||||
|           } as SFDateWidgetSchema |  | ||||||
|         }, |         }, | ||||||
|         riskStatus: { |         riskStatus: { | ||||||
|           type: 'string', |           type: 'string', | ||||||
| @ -578,7 +573,7 @@ export class OrderManagementVehicleComponent extends BasicTableComponent impleme | |||||||
|     this.resourceStatus = e; |     this.resourceStatus = e; | ||||||
|     this.initST(); |     this.initST(); | ||||||
|     setTimeout(() => { |     setTimeout(() => { | ||||||
|       this.st.load(1); |       this.st.load(); | ||||||
|     }, 500); |     }, 500); | ||||||
|   } |   } | ||||||
|   /** |   /** | ||||||
| @ -862,4 +857,12 @@ export class OrderManagementVehicleComponent extends BasicTableComponent impleme | |||||||
|       } |       } | ||||||
|     }); |     }); | ||||||
|   } |   } | ||||||
|  |     // 导出 | ||||||
|  |     exprot() { | ||||||
|  |       this.service.request(this.service.$api_get_asyncExportWholeList, this.reqParams).subscribe((res: any) => { | ||||||
|  |         if (res) { | ||||||
|  |           this.service.msgSrv.success('导出成功,请去下载中心下载!'); | ||||||
|  |         } | ||||||
|  |       }); | ||||||
|  |     } | ||||||
| } | } | ||||||
|  | |||||||
| @ -4,7 +4,7 @@ | |||||||
|  * @Author       : Shiming |  * @Author       : Shiming | ||||||
|  * @Date         : 2021-12-03 15:31:52 |  * @Date         : 2021-12-03 15:31:52 | ||||||
|  * @LastEditors  : Shiming |  * @LastEditors  : Shiming | ||||||
|  * @LastEditTime : 2022-03-25 15:27:40 |  * @LastEditTime : 2022-03-28 11:07:48 | ||||||
|  * @FilePath     : \\tms-obc-web\\src\\app\\routes\\order-management\\services\\order-management.service.ts |  * @FilePath     : \\tms-obc-web\\src\\app\\routes\\order-management\\services\\order-management.service.ts | ||||||
|  * Copyright (C) 2022 huzhenhong. All rights reserved. |  * Copyright (C) 2022 huzhenhong. All rights reserved. | ||||||
|  */ |  */ | ||||||
| @ -176,6 +176,12 @@ export class OrderManagementService extends ShipperBaseService { | |||||||
|   $api_get_getAppDriverPosition = `/api/sdc/billShipper/getAppDriverPosition`; |   $api_get_getAppDriverPosition = `/api/sdc/billShipper/getAppDriverPosition`; | ||||||
|   //  查看申述记录 |   //  查看申述记录 | ||||||
|   $api_get_getOrderComplaintDetail = `/api/sdc/billOperate/getOrderComplaintDetail`; |   $api_get_getOrderComplaintDetail = `/api/sdc/billOperate/getOrderComplaintDetail`; | ||||||
|  |  | ||||||
|  |  | ||||||
|  |   //  异步导出运营后台大宗订单列表 | ||||||
|  |   $api_get_asyncExportBulkList = `/api/sdc/billOperate/asyncExportBulkList`; | ||||||
|  |   //  异步导出运营后台整车订单列表 | ||||||
|  |   $api_get_asyncExportWholeList = `/api/sdc/billOperate/asyncExportWholeList`; | ||||||
|   /** |   /** | ||||||
|    * 根据企业ID,获取企业历史网络货运人 |    * 根据企业ID,获取企业历史网络货运人 | ||||||
|    * @returns |    * @returns | ||||||
|  | |||||||
| @ -2,7 +2,6 @@ import { Component, OnInit } from '@angular/core'; | |||||||
| import { ActivatedRoute } from '@angular/router'; | import { ActivatedRoute } from '@angular/router'; | ||||||
| import { FreightAccountService } from 'src/app/routes/financial-management/services/freight-account.service'; | import { FreightAccountService } from 'src/app/routes/financial-management/services/freight-account.service'; | ||||||
|  |  | ||||||
|  |  | ||||||
| @Component({ | @Component({ | ||||||
|   selector: 'app-partner-account-management-withdrawals-detail', |   selector: 'app-partner-account-management-withdrawals-detail', | ||||||
|   templateUrl: './withdrawals-detail.component.html', |   templateUrl: './withdrawals-detail.component.html', | ||||||
| @ -18,7 +17,7 @@ export class PartnerAccountManagementWithdralDetailComponent implements OnInit { | |||||||
|     this.loadRefundDetail(id); |     this.loadRefundDetail(id); | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   ngOnInit(): void { } |   ngOnInit(): void {} | ||||||
|  |  | ||||||
|   loadRefundDetail(id: string) { |   loadRefundDetail(id: string) { | ||||||
|     this.service.request(this.service.$api_get_refund_detail, { id }).subscribe(res => { |     this.service.request(this.service.$api_get_refund_detail, { id }).subscribe(res => { | ||||||
| @ -77,7 +76,8 @@ export class PartnerAccountManagementWithdralDetailComponent implements OnInit { | |||||||
|       rmYll: this.formData.userId, |       rmYll: this.formData.userId, | ||||||
|       snglFlgCd: this.formData.coreSerNo, |       snglFlgCd: this.formData.coreSerNo, | ||||||
|       bussType: '06', |       bussType: '06', | ||||||
|       ltdId: this.formData.ltdId |       ltdId: this.formData.ltdId, | ||||||
|  |       accountType: this.formData.accountType | ||||||
|     }); |     }); | ||||||
|   } |   } | ||||||
|  |  | ||||||
|  | |||||||
| @ -311,7 +311,8 @@ export class PartnerAccountManagementWithdrawalsRecordComponent implements OnIni | |||||||
|                 rmYll: item.userId, |                 rmYll: item.userId, | ||||||
|                 snglFlgCd: item.coreSerNo, |                 snglFlgCd: item.coreSerNo, | ||||||
|                 bussType: '06', |                 bussType: '06', | ||||||
|                 ltdId: item.ltdId |                 ltdId: item.ltdId, | ||||||
|  |                 accountType: item.accountType | ||||||
|               }) |               }) | ||||||
|           }, |           }, | ||||||
|           { |           { | ||||||
|  | |||||||
| @ -1,4 +1,4 @@ | |||||||
| <sf #sf [ui]="ui" [schema]="schema" [button]="'none'" [formData]="i"> | <sf #sf [ui]="ui" [schema]="schema" [button]="'none'" [formData]="record"> | ||||||
| </sf> | </sf> | ||||||
|  |  | ||||||
| <div *nzModalFooter> | <div *nzModalFooter> | ||||||
|  | |||||||
| @ -17,7 +17,8 @@ export class ParterChannelSalesEditComponent implements OnInit { | |||||||
|   ui!: SFUISchema; |   ui!: SFUISchema; | ||||||
|   i: any; |   i: any; | ||||||
|   type: any; |   type: any; | ||||||
|  |   record:any; | ||||||
|  |   currentOAItem:any; | ||||||
|   constructor( |   constructor( | ||||||
|     public http: _HttpClient, |     public http: _HttpClient, | ||||||
|     private cdr: ChangeDetectorRef, |     private cdr: ChangeDetectorRef, | ||||||
| @ -28,7 +29,14 @@ export class ParterChannelSalesEditComponent implements OnInit { | |||||||
|   ) {} |   ) {} | ||||||
|  |  | ||||||
|   ngOnInit(): void { |   ngOnInit(): void { | ||||||
|  |      | ||||||
|  |     this.service.request(this.service.$api_getChannelSalesInfo, {id:this.i?.id}).subscribe(res => { | ||||||
|  |       if(res){ | ||||||
|  |         this.record = res; | ||||||
|  |       } | ||||||
|       this.initSF(); |       this.initSF(); | ||||||
|  |     }); | ||||||
|  |      | ||||||
|   } |   } | ||||||
|   initSF() { |   initSF() { | ||||||
|     this.schema = { |     this.schema = { | ||||||
| @ -62,10 +70,14 @@ export class ParterChannelSalesEditComponent implements OnInit { | |||||||
|             placeholder:'请选择', |             placeholder:'请选择', | ||||||
|             asyncData: (input:string) => this.service.request(this.service.$api_fuzzyQuery,{name:input}).pipe( |             asyncData: (input:string) => this.service.request(this.service.$api_fuzzyQuery,{name:input}).pipe( | ||||||
|               map((res: any) => { |               map((res: any) => { | ||||||
|                 console.log('111',res) |                 return res.map((item:any)=>{ | ||||||
|                 return []; |                   return {label: item.empName+"/"+item.empNo, value: item.empNo, obj: item} | ||||||
|                 }) |                 }) | ||||||
|             ) |               }) | ||||||
|  |             ), | ||||||
|  |             change:(item:any, org:any)=>{ | ||||||
|  |               this.currentOAItem = org.obj; | ||||||
|  |             } | ||||||
|           } as SFAutoCompleteWidgetSchema, |           } as SFAutoCompleteWidgetSchema, | ||||||
|         }, |         }, | ||||||
|         isAuthorization: { |         isAuthorization: { | ||||||
| @ -89,7 +101,6 @@ export class ParterChannelSalesEditComponent implements OnInit { | |||||||
|             mode: 'multiple', |             mode: 'multiple', | ||||||
|             maxMultipleCount: 5, |             maxMultipleCount: 5, | ||||||
|             asyncData: () => { |             asyncData: () => { | ||||||
|          |  | ||||||
|               return this.service.request(this.service.$api_getAppRoleList).pipe( |               return this.service.request(this.service.$api_getAppRoleList).pipe( | ||||||
|                 map((res: any) => { |                 map((res: any) => { | ||||||
|                   return res |                   return res | ||||||
| @ -134,7 +145,7 @@ export class ParterChannelSalesEditComponent implements OnInit { | |||||||
|   save() { |   save() { | ||||||
|     this.sf.validator({ emitError: true }); |     this.sf.validator({ emitError: true }); | ||||||
|     if(!this.sf.valid) return; |     if(!this.sf.valid) return; | ||||||
|     this.service.request(this.service.$api_save, { ...this.sf.value }).subscribe(res => { |     this.service.request(this.service.$api_save, { ...this.sf.value, employeeVO: this.currentOAItem}).subscribe(res => { | ||||||
|       if (res) { |       if (res) { | ||||||
|         this.modalRef.destroy(true); |         this.modalRef.destroy(true); | ||||||
|       } else { |       } else { | ||||||
|  | |||||||
| @ -98,10 +98,6 @@ export class ParterChannelSalesListComponent implements OnInit { | |||||||
|             text: '编辑', |             text: '编辑', | ||||||
|             click: (_record, _modal, _instance) => this.edit(_record), |             click: (_record, _modal, _instance) => this.edit(_record), | ||||||
|           }, |           }, | ||||||
|           { |  | ||||||
|             text: '查看', |  | ||||||
|             click: (_record, _modal, _instance) => this.view(_record), |  | ||||||
|           }, |  | ||||||
|           { |           { | ||||||
|             text: '冻结', |             text: '冻结', | ||||||
|             click: (_record, _modal, _instance) => this.stop(_record.id), |             click: (_record, _modal, _instance) => this.stop(_record.id), | ||||||
| @ -116,7 +112,6 @@ export class ParterChannelSalesListComponent implements OnInit { | |||||||
|       nzWidth:600, |       nzWidth:600, | ||||||
|       nzTitle: '新增', |       nzTitle: '新增', | ||||||
|       nzContent: ParterChannelSalesEditComponent, |       nzContent: ParterChannelSalesEditComponent, | ||||||
|       nzComponentParams: { type: this.spuStatus } |  | ||||||
|     }); |     }); | ||||||
|     modalRef.afterClose.subscribe(res => { |     modalRef.afterClose.subscribe(res => { | ||||||
|       if (res) { |       if (res) { | ||||||
| @ -131,7 +126,7 @@ export class ParterChannelSalesListComponent implements OnInit { | |||||||
|       nzWidth:600, |       nzWidth:600, | ||||||
|       nzTitle: '编辑', |       nzTitle: '编辑', | ||||||
|       nzContent: ParterChannelSalesEditComponent, |       nzContent: ParterChannelSalesEditComponent, | ||||||
|       nzComponentParams: { i: record, type: this.spuStatus } |       nzComponentParams: { i: record } | ||||||
|     }); |     }); | ||||||
|     modalRef.afterClose.subscribe(res => { |     modalRef.afterClose.subscribe(res => { | ||||||
|       if (res) { |       if (res) { | ||||||
| @ -140,14 +135,7 @@ export class ParterChannelSalesListComponent implements OnInit { | |||||||
|     }); |     }); | ||||||
|   } |   } | ||||||
|  |  | ||||||
|    // 编辑 |     | ||||||
|    view(record: STData) { |  | ||||||
|     const modalRef = this.modalService.create({ |  | ||||||
|       nzTitle: '查看', |  | ||||||
|       nzContent: ParterChannelSalesEditComponent, |  | ||||||
|       nzComponentParams: { i: record } |  | ||||||
|     }); |  | ||||||
|   } |  | ||||||
|  |  | ||||||
|   stop(id: any) { |   stop(id: any) { | ||||||
|     this.modalService.confirm({ |     this.modalService.confirm({ | ||||||
|  | |||||||
| @ -15,6 +15,10 @@ export class ChannelSalesService extends BaseService { | |||||||
|   $api_fuzzyQuery = '/api/mdc/channelSalesManagement/fuzzyQuery'; |   $api_fuzzyQuery = '/api/mdc/channelSalesManagement/fuzzyQuery'; | ||||||
|   // 获取角色列表 |   // 获取角色列表 | ||||||
|   $api_getAppRoleList = '/api/mdc/cuc/roleInfo/getRoleList'; |   $api_getAppRoleList = '/api/mdc/cuc/roleInfo/getRoleList'; | ||||||
|  |   // 获取渠道销售管理详情 | ||||||
|  |   $api_listChannelSalesManagement = '/api/mdc/channelSalesManagement/list/listChannelSalesManagement'; | ||||||
|  |   // 根据渠道销售id获取渠道信息 | ||||||
|  |   $api_getChannelSalesInfo = '/api/mdc/channelSalesManagement/getChannelSalesInfo'; | ||||||
|    |    | ||||||
|  |  | ||||||
|   constructor(public injector: Injector) { |   constructor(public injector: Injector) { | ||||||
|  | |||||||
| @ -61,6 +61,7 @@ import { BannerComponentsAddComponent } from './knowledge/banner/components/add/ | |||||||
| import { PersonalPartnerDetailComponent } from './partner-list/components/personal-partner-detail/personal-partner-detail.component'; | import { PersonalPartnerDetailComponent } from './partner-list/components/personal-partner-detail/personal-partner-detail.component'; | ||||||
| import { ParterAdviceFeedbackListComponent } from './advice-feedback/components/list/list.component'; | import { ParterAdviceFeedbackListComponent } from './advice-feedback/components/list/list.component'; | ||||||
| import { ParterAdviceFeedbackDetailComponent } from './advice-feedback/components/feedback-detail/feedback-detail.component'; | import { ParterAdviceFeedbackDetailComponent } from './advice-feedback/components/feedback-detail/feedback-detail.component'; | ||||||
|  | import { ParterRebateManageMentAddPartnerListComponent } from './rebate-management/components/rebate-setting/add-partnerlist/add-partnerlist.component'; | ||||||
|  |  | ||||||
| const COMPONENTS: any[] = [ | const COMPONENTS: any[] = [ | ||||||
|   PartnerBusinessStatisticsIndexComponent, |   PartnerBusinessStatisticsIndexComponent, | ||||||
| @ -111,7 +112,8 @@ const COMPONENTS: any[] = [ | |||||||
|   BannerComponentsAddComponent, |   BannerComponentsAddComponent, | ||||||
|   PersonalPartnerDetailComponent, |   PersonalPartnerDetailComponent, | ||||||
|   ParterAdviceFeedbackListComponent, |   ParterAdviceFeedbackListComponent, | ||||||
|   ParterAdviceFeedbackDetailComponent |   ParterAdviceFeedbackDetailComponent, | ||||||
|  |   ParterRebateManageMentAddPartnerListComponent | ||||||
| ]; | ]; | ||||||
|  |  | ||||||
| @NgModule({ | @NgModule({ | ||||||
|  | |||||||
| @ -0,0 +1,30 @@ | |||||||
|  | <!-- | ||||||
|  |  * @Description  :  | ||||||
|  |  * @Version      : 1.0 | ||||||
|  |  * @Author       : Shiming | ||||||
|  |  * @Date         : 2022-03-28 14:53:52 | ||||||
|  |  * @LastEditors  : Shiming | ||||||
|  |  * @LastEditTime : 2022-03-28 17:03:21 | ||||||
|  |  * @FilePath     : \\tms-obc-web\\src\\app\\routes\\partner\\rebate-management\\components\\rebate-setting\\add-partnerlist\\add-partnerlist.component.html | ||||||
|  |  * Copyright (C) 2022 huzhenhong. All rights reserved. | ||||||
|  | --> | ||||||
|  | <nz-card> | ||||||
|  |   <div nz-row nzGutter="8"> | ||||||
|  |     <!-- 查询字段小于或等于3个时,不显示伸缩按钮 --> | ||||||
|  |     <div nz-col nzSpan="24" > | ||||||
|  |       <sf #sf [schema]="schema" [ui]="ui" [mode]="'search'" [disabled]="!sf?.valid" [loading]="false" | ||||||
|  |         (formSubmit)="search()" (formReset)="resetSF()"></sf> | ||||||
|  |     </div> | ||||||
|  |   </div> | ||||||
|  | </nz-card> | ||||||
|  |  | ||||||
|  | <nz-card class="content-box"> | ||||||
|  |       <st #st [data]="service.$api_get_partner_page " [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] }" [loading]="false" | ||||||
|  |         [scroll]="{ x: '1000' }"> | ||||||
|  |       </st> | ||||||
|  |     <button *ngIf="selectedIndex===0" (click)="batchReply()" nz-button nzType="primary" acl | ||||||
|  |       [acl-ability]="['AbnormalAppear-batchReply']">批量回复</button> | ||||||
|  | </nz-card> | ||||||
| @ -0,0 +1,20 @@ | |||||||
|  | :host::ng-deep{ | ||||||
|  |     .search-box{ | ||||||
|  |         .ant-card-body{ | ||||||
|  |             padding-bottom: 18px; | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     .content-box{ | ||||||
|  |         .ant-card-body{ | ||||||
|  |             padding-top: 14px; | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  |     .imgBox { | ||||||
|  |         display: flex; | ||||||
|  |         img { | ||||||
|  |             width: 60px !important;  | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  |  | ||||||
|  | } | ||||||
| @ -0,0 +1,141 @@ | |||||||
|  | import { Component, OnInit, ViewChild, Type } from '@angular/core'; | ||||||
|  | import { STComponent, STColumn, STChange } from '@delon/abc/st'; | ||||||
|  | import { | ||||||
|  |   SFComponent, | ||||||
|  |   SFDateWidgetSchema, | ||||||
|  |   SFRadioWidgetSchema, | ||||||
|  |   SFSchema, | ||||||
|  |   SFSchemaEnum, | ||||||
|  |   SFSelectWidgetSchema, | ||||||
|  |   SFUISchema | ||||||
|  | } from '@delon/form'; | ||||||
|  | import { ShipperBaseService } from '@shared'; | ||||||
|  | import { NzModalService, NzModalRef } from 'ng-zorro-antd/modal'; | ||||||
|  | import { of } from 'rxjs'; | ||||||
|  | import { map } from 'rxjs/operators'; | ||||||
|  | import { RebateManagementService } from '../../../services/rebate-management.service'; | ||||||
|  |  | ||||||
|  | @Component({ | ||||||
|  |   selector: 'app-add-partnerlist', | ||||||
|  |   templateUrl: './add-partnerlist.component.html', | ||||||
|  |   styleUrls: ['./add-partnerlist.component.less'] | ||||||
|  | }) | ||||||
|  | export class ParterRebateManageMentAddPartnerListComponent implements OnInit { | ||||||
|  |   @ViewChild('st', { static: true }) | ||||||
|  |   st!: STComponent; | ||||||
|  |   @ViewChild('sf', { static: false }) sf!: SFComponent; | ||||||
|  |   ui: SFUISchema = {}; | ||||||
|  |   i: any; | ||||||
|  |   schema: SFSchema = {}; | ||||||
|  |   addSchema: SFSchema = {}; | ||||||
|  |   _$expand = false; | ||||||
|  |   editText = ''; | ||||||
|  |   formData: any; | ||||||
|  |   isVisible = false; | ||||||
|  |   edit = false; | ||||||
|  |   editId = false; | ||||||
|  |   selectedIndex = 0; | ||||||
|  |  | ||||||
|  |   columns: STColumn[] = [ | ||||||
|  |     { title: '', type: 'checkbox', width: '50px', className: 'text-center' }, | ||||||
|  |     { | ||||||
|  |       title: '合伙人名称', | ||||||
|  |       index: 'enterpriseName', | ||||||
|  |       width: 180, | ||||||
|  |       format: item => (item.partnerType ? `${item.enterpriseName || item.contactName}` : '') | ||||||
|  |     }, | ||||||
|  |     { title: '联系人', index: 'contactName', width: 150, format: item => (item.partnerType ? `${item.contactName}` : '') }, | ||||||
|  |     { title: '手机号', index: 'contactMobile', className: 'text-center', width: 150 }, | ||||||
|  |     { title: '类型', index: 'partnerType', className: 'text-center', width: 130, type: 'enum', enum: { 1: '企业', 2: '个人' } }, | ||||||
|  |     { | ||||||
|  |       title: '操作', | ||||||
|  |       width: '90px', | ||||||
|  |       fixed: 'right', | ||||||
|  |       buttons: [ | ||||||
|  |         { | ||||||
|  |           text: '添加', | ||||||
|  |           click: _record => this.add(_record), | ||||||
|  |           acl: { ability: ['AbnormalAppear-reply'] } | ||||||
|  |         } | ||||||
|  |       ] | ||||||
|  |     } | ||||||
|  |   ]; | ||||||
|  |  | ||||||
|  |   get reqParams() { | ||||||
|  |     // signStatus固定传20    代表签约完成 signStatus: 20 | ||||||
|  |     let params: any = { ...this.sf?.value,  }; | ||||||
|  |     return params; | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   get selectedRows() { | ||||||
|  |     return this.st?.list.filter(item => item.checked) || []; | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   constructor( | ||||||
|  |     public service: RebateManagementService, | ||||||
|  |     public shipperSrv: ShipperBaseService, | ||||||
|  |     private modal: NzModalService, | ||||||
|  |     private modals: NzModalRef | ||||||
|  |   ) {} | ||||||
|  |  | ||||||
|  |   ngOnInit(): void { | ||||||
|  |     this.initSF(); | ||||||
|  |   } | ||||||
|  |   initSF() { | ||||||
|  |     this.schema = { | ||||||
|  |       properties: { | ||||||
|  |         enterpriseName: { | ||||||
|  |           type: 'string', | ||||||
|  |           title: '合伙人名称' | ||||||
|  |         }, | ||||||
|  |         partnerType: { | ||||||
|  |           type: 'string', | ||||||
|  |           title: '类型', | ||||||
|  |           enum: [ | ||||||
|  |             { value: '', label: '全部' }, | ||||||
|  |             { value: 1, label: '企业' }, | ||||||
|  |             { value: 2, label: '个人' } | ||||||
|  |           ], | ||||||
|  |           ui: { | ||||||
|  |             widget: 'select', | ||||||
|  |             placeholder: '请选择', | ||||||
|  |             visibleIf: { | ||||||
|  |               expand: (value: boolean) => value | ||||||
|  |             } | ||||||
|  |           }, | ||||||
|  |           default: '' | ||||||
|  |         } | ||||||
|  |       } | ||||||
|  |     }; | ||||||
|  |     this.ui = { '*': { spanLabelFixed: 110, grid: { span: 8, gutter: 4 } } }; | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   search() { | ||||||
|  |     this.st?.load(1); | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   selectedIndexChange(event: any) { | ||||||
|  |     if (this.selectedIndex === 0) { | ||||||
|  |       this.st?.load(1); | ||||||
|  |     } | ||||||
|  |   } | ||||||
|  |   /** | ||||||
|  |    * 重置表单 | ||||||
|  |    */ | ||||||
|  |   resetSF() { | ||||||
|  |     this.sf.reset(); | ||||||
|  |   } | ||||||
|  |   // 回复操作 | ||||||
|  |   add(item: any) { | ||||||
|  |     console.log(item); | ||||||
|  |     this.modals.destroy(item); | ||||||
|  |   } | ||||||
|  |   // 批量回复操作 | ||||||
|  |   batchReply() { | ||||||
|  |     // if (this.selectedRows.length === 0) { | ||||||
|  |     //   this.service.msgSrv.warning('请勾选数据!') | ||||||
|  |     //   return; | ||||||
|  |     // } | ||||||
|  |     this.modals.destroy(this.selectedRows); | ||||||
|  |   } | ||||||
|  | } | ||||||
| @ -4,7 +4,7 @@ | |||||||
|  * @Author       : Shiming |  * @Author       : Shiming | ||||||
|  * @Date         : 2022-02-24 20:09:49 |  * @Date         : 2022-02-24 20:09:49 | ||||||
|  * @LastEditors  : Shiming |  * @LastEditors  : Shiming | ||||||
|  * @LastEditTime : 2022-03-21 13:53:31 |  * @LastEditTime : 2022-03-29 10:47:02 | ||||||
|  * @FilePath     : \\tms-obc-web\\src\\app\\routes\\partner\\rebate-management\\components\\rebate-setting\\add\\add.component.html |  * @FilePath     : \\tms-obc-web\\src\\app\\routes\\partner\\rebate-management\\components\\rebate-setting\\add\\add.component.html | ||||||
|  * Copyright (C) 2022 huzhenhong. All rights reserved. |  * Copyright (C) 2022 huzhenhong. All rights reserved. | ||||||
| --> | --> | ||||||
| @ -14,41 +14,57 @@ | |||||||
|   |   | ||||||
|   <!-- 数据列表 --> |   <!-- 数据列表 --> | ||||||
|  <sv-container col="1"> |  <sv-container col="1"> | ||||||
|     <sv label="配置名称">  <input style="max-width: 400px;" nz-input placeholder="请输入" [(ngModel)]="setValue" /></sv> |     <sv label="配置名称">  <input style="max-width: 400px;" nz-input placeholder="请输入" [(ngModel)]="configName" /></sv> | ||||||
|    <sv-title>固定结算费率配置</sv-title> |    <sv-title>固定结算费率配置</sv-title> | ||||||
|      <sv label="固定结算费率"> <nz-input-number [(ngModel)]="toFixedValue" [nzPrecision]="precision" nzPlaceHolder="请输入"></nz-input-number> %</sv> |      <sv label="固定结算费率"> <nz-input-number [(ngModel)]="accountingRate" [nzPrecision]="precision" nzPlaceHolder="请输入"></nz-input-number> %</sv> | ||||||
|    <sv-title>业务量和管理费比例配置</sv-title> |    <sv-title>业务量和管理费比例配置</sv-title> | ||||||
|      <sv label="选择配置类型"> |      <sv label="选择配置类型"> | ||||||
|     <nz-radio-group [(ngModel)]="radioValue"> |     <nz-radio-group [(ngModel)]="configType"> | ||||||
|       <label nz-radio nzValue="A">按全部等级配置</label> |       <label nz-radio nzValue="1">按全部等级配置</label> | ||||||
|       <label nz-radio nzValue="B">按不同等级配置</label> |       <label nz-radio nzValue="2">按不同等级配置</label> | ||||||
|     </nz-radio-group> |     </nz-radio-group> | ||||||
|     </sv> |     </sv> | ||||||
|     <sv col="1"> |     <sv col="1"> | ||||||
|         <app-rebate-table></app-rebate-table> |          | ||||||
|  |       <app-rebate-table #table [(data)]='tabelData'></app-rebate-table> | ||||||
|     </sv> |     </sv> | ||||||
|    <sv-title>关联合伙人配置</sv-title> |    <sv-title>关联合伙人配置</sv-title> | ||||||
|      <sv label="合伙人选择"> |      <sv label="合伙人选择"> | ||||||
|     <nz-select ngModel="lucy" style="max-width: 400px; min-width: 200px;"> |     <nz-select [(ngModel)]="partnerType" style="max-width: 400px; min-width: 200px;"> | ||||||
|       <nz-option nzValue="jack" nzLabel="Jack"></nz-option> |       <nz-option nzValue="1" nzLabel="全部合伙人"></nz-option> | ||||||
|       <nz-option nzValue="lucy" nzLabel="Lucy"></nz-option> |       <nz-option nzValue="2" nzLabel="新注册合伙人"></nz-option> | ||||||
|  |       <nz-option nzValue="3" nzLabel="自定义合伙人"></nz-option> | ||||||
|     </nz-select> |     </nz-select> | ||||||
|       <span >添加</span> |       <span style="color: #0000FF;" (click)="add()">添加</span> | ||||||
|  |     <st  *ngIf="partnerPeopleList?.length > 0" #st [data]="partnerPeopleList" [columns]="columns" | ||||||
|  |     [req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' } }" | ||||||
|  |     [res]="{ reName: { list: 'data.records', total: 'data.total' } }" | ||||||
|  |     [page]="{ show: true, showSize: true, pageSizes: [10, 20, 30, 50, 100] }" [loading]="false" | ||||||
|  |     [scroll]="{ x: '1000' }"> | ||||||
|  |   </st> | ||||||
|   </sv> |   </sv> | ||||||
|      <sv label="优先级" col="1"> |      <sv label="优先级" col="1"> | ||||||
|     <nz-select ngModel="lucy" style="max-width: 400px; min-width: 200px;"> |     <nz-select [(ngModel)]="priority" style="max-width: 400px; min-width: 200px;"> | ||||||
|       <nz-option nzValue="jack" nzLabel="Jack"></nz-option> |       <nz-option nzValue=1 nzLabel="1">1</nz-option> | ||||||
|       <nz-option nzValue="lucy" nzLabel="Lucy"></nz-option> |       <nz-option nzValue=2 nzLabel="2">2</nz-option> | ||||||
|  |       <nz-option nzValue=3 nzLabel="3">3</nz-option> | ||||||
|  |       <nz-option nzValue=4 nzLabel="4">4</nz-option> | ||||||
|  |       <nz-option nzValue=5 nzLabel="5">5</nz-option> | ||||||
|     </nz-select> |     </nz-select> | ||||||
|   </sv> |   </sv> | ||||||
|      <sv label="规则说明" col="1"> |      <sv label="规则说明" col="1"> | ||||||
|     <sf #sf mode="edit" [schema]="schema1" [ui]="{ '*': { spanLabelFixed: 10, grid: { span: 16 }} }" |     <sf #sf mode="edit" [schema]="schema1" [ui]="{ '*': { spanLabelFixed: 10, grid: { span: 16 }} }" | ||||||
|     button="none"> </sf> |     button="none"> </sf> | ||||||
|   </sv> |   </sv> | ||||||
|      <sv label="规则说明" col="1"> |      <sv label="备注" col="1"> | ||||||
|     <textarea style="max-width: 400px; min-width: 200px;" rows="4" nz-input [(ngModel)]="inputValue"></textarea> |     <textarea style="max-width: 400px; min-width: 200px;" rows="4" nz-input [(ngModel)]="remarke"></textarea> | ||||||
|   </sv> |   </sv> | ||||||
|  </sv-container> |  </sv-container> | ||||||
|  |  <div class="align-center" style="margin-top: 15px;"> | ||||||
|  |   <button nz-button nzType="primary" (click)="goBack()">取消</button> | ||||||
|  |   <button  nz-button nzType="primary" style="margin-left: 48px" (click)="save()" | ||||||
|  |   acl  [acl-ability]="['SUPPLY-VEHICLE-AMEND-submitChange']">提交</button | ||||||
|  |   > | ||||||
|  | </div> | ||||||
|  </div> |  </div> | ||||||
| </nz-card> | </nz-card> | ||||||
|  | |||||||
| @ -7,4 +7,10 @@ | |||||||
|         font-weight: 700; |         font-weight: 700; | ||||||
|     } |     } | ||||||
|   } |   } | ||||||
|  |   .align-center { | ||||||
|  |     display: flex; | ||||||
|  |     align-items: center; | ||||||
|  |     justify-content: center; | ||||||
|  |   } | ||||||
|  |    | ||||||
| } | } | ||||||
|  | |||||||
| @ -4,7 +4,7 @@ | |||||||
|  * @Author       : Shiming |  * @Author       : Shiming | ||||||
|  * @Date         : 2022-03-21 09:26:45 |  * @Date         : 2022-03-21 09:26:45 | ||||||
|  * @LastEditors  : Shiming |  * @LastEditors  : Shiming | ||||||
|  * @LastEditTime : 2022-03-21 13:44:34 |  * @LastEditTime : 2022-03-29 10:53:39 | ||||||
|  * @FilePath     : \\tms-obc-web\\src\\app\\routes\\partner\\rebate-management\\components\\rebate-setting\\add\\add.component.ts |  * @FilePath     : \\tms-obc-web\\src\\app\\routes\\partner\\rebate-management\\components\\rebate-setting\\add\\add.component.ts | ||||||
|  * Copyright (C) 2022 huzhenhong. All rights reserved. |  * Copyright (C) 2022 huzhenhong. All rights reserved. | ||||||
|  */ |  */ | ||||||
| @ -16,17 +16,28 @@ import { SFComponent, SFDateWidgetSchema, SFSchema, SFUISchema } from '@delon/fo | |||||||
| import { processSingleSort, ShipperBaseService } from '@shared'; | import { processSingleSort, ShipperBaseService } from '@shared'; | ||||||
| import { NzModalService } from 'ng-zorro-antd/modal'; | import { NzModalService } from 'ng-zorro-antd/modal'; | ||||||
| import { RebateManagementService } from '../../../services/rebate-management.service'; | import { RebateManagementService } from '../../../services/rebate-management.service'; | ||||||
|  | import { ParterRebateManageMentAddPartnerListComponent } from '../add-partnerlist/add-partnerlist.component'; | ||||||
|  | import { inRange } from '@delon/util'; | ||||||
| @Component({ | @Component({ | ||||||
|   selector: 'app-parter-channel-rebate-management-add', |   selector: 'app-parter-channel-rebate-management-add', | ||||||
|   styleUrls: ['./add.component.less'], |   styleUrls: ['./add.component.less'], | ||||||
|   templateUrl: './add.component.html' |   templateUrl: './add.component.html' | ||||||
| }) | }) | ||||||
| export class ParterRebateManageMentAddComponent implements OnInit { | export class ParterRebateManageMentAddComponent implements OnInit { | ||||||
|   setValue: string = ''; |   @ViewChild('table') table!: any; | ||||||
|   toFixedValue: Number = 2; |   tabelData: any; | ||||||
|   radioValue = 'A'; |   configName: string = ''; | ||||||
|  |   partnerType: string = ''; | ||||||
|  |   remarke: string = ''; | ||||||
|  |   accountingRate: Number = 0; | ||||||
|  |   priority: string = ''; | ||||||
|  |   partnerPeopleList: any; | ||||||
|  |   configType = '1'; | ||||||
|   precision = 2; |   precision = 2; | ||||||
|   inputValue= ''; |   partnerId :Array<string> =[]; | ||||||
|  |   inputValue = ''; | ||||||
|  |   @ViewChild('st', { static: true }) | ||||||
|  |   st!: STComponent; | ||||||
|   @ViewChild('sf', { static: false }) sf!: SFComponent; |   @ViewChild('sf', { static: false }) sf!: SFComponent; | ||||||
|   schema1!: SFSchema; |   schema1!: SFSchema; | ||||||
|   constructor( |   constructor( | ||||||
| @ -34,12 +45,33 @@ export class ParterRebateManageMentAddComponent implements OnInit { | |||||||
|     public ar: ActivatedRoute, |     public ar: ActivatedRoute, | ||||||
|     public service: RebateManagementService, |     public service: RebateManagementService, | ||||||
|     private modal: NzModalService, |     private modal: NzModalService, | ||||||
|     public shipperservice: ShipperBaseService, |     public shipperservice: ShipperBaseService | ||||||
|   ) {} |   ) {} | ||||||
|  |   columns: STColumn[] = [ | ||||||
|  |     { | ||||||
|  |       title: '合伙人名称', | ||||||
|  |       index: 'enterpriseName', | ||||||
|  |       width: 180, | ||||||
|  |       format: item => (item.partnerType ? `${item.enterpriseName || item.contactName}` : '') | ||||||
|  |     }, | ||||||
|  |     { title: '联系人', index: 'contactName', width: 150, format: item => (item.partnerType ? `${item.contactName}` : '') }, | ||||||
|  |     { title: '手机号', index: 'contactMobile', className: 'text-center', width: 150 }, | ||||||
|  |     { title: '类型', index: 'partnerType', className: 'text-center', width: 130, type: 'enum', enum: { 1: '企业', 2: '个人' } }, | ||||||
|  |     { | ||||||
|  |       title: '操作',  width: '90px',  fixed: 'right', | ||||||
|  |       buttons: [ | ||||||
|  |         { | ||||||
|  |           text: '移除', | ||||||
|  |           click: _record => this.delete(_record), | ||||||
|  |           acl: { ability: ['AbnormalAppear-reply'] } | ||||||
|  |         }, | ||||||
|  |       ] | ||||||
|  |     }, | ||||||
|  |   ]; | ||||||
|   initSF(data?: any) { |   initSF(data?: any) { | ||||||
|     this.schema1 = { |     this.schema1 = { | ||||||
|       properties: { |       properties: { | ||||||
|         content: { |         ruleDescription: { | ||||||
|           type: 'string', |           type: 'string', | ||||||
|           title: '', |           title: '', | ||||||
|           ui: { |           ui: { | ||||||
| @ -49,12 +81,69 @@ export class ParterRebateManageMentAddComponent implements OnInit { | |||||||
|               height: 650 |               height: 650 | ||||||
|             } |             } | ||||||
|           }, |           }, | ||||||
|           default: data?.agreementContent || '' |           // default: data?.agreementContent || '' | ||||||
|         } |         } | ||||||
|       } |       } | ||||||
|     }; |     }; | ||||||
|   } |   } | ||||||
|   ngOnInit() { |   ngOnInit() { | ||||||
|     this.initSF() |     this.initSF(); | ||||||
|  |   } | ||||||
|  |   goBack() { | ||||||
|  |     window.history.go(-1); | ||||||
|  |   } | ||||||
|  |   /** | ||||||
|  |    *合伙人选择 | ||||||
|  |    */ | ||||||
|  |    add(item?: any) { | ||||||
|  |     const modalRef = this.modal.create({ | ||||||
|  |       nzTitle: '合伙人选择', | ||||||
|  |       nzWidth: 1000, | ||||||
|  |       nzContent: ParterRebateManageMentAddPartnerListComponent, | ||||||
|  |       nzComponentParams: { | ||||||
|  |         i: item, | ||||||
|  |       }, | ||||||
|  |       nzFooter: null | ||||||
|  |     }); | ||||||
|  |     modalRef.afterClose.subscribe((res: any) => { | ||||||
|  |       this.partnerId = []; | ||||||
|  |       if (res) { | ||||||
|  |         console.log(Array.isArray(res)); | ||||||
|  |         console.log(res); | ||||||
|  |         if(Array.isArray(res)) { | ||||||
|  |           this.partnerPeopleList = res; | ||||||
|  |           res.forEach((ele: any) => { | ||||||
|  |             this.partnerId.push(ele?.id); | ||||||
|  |           }) | ||||||
|  |         } else { | ||||||
|  |           this.partnerPeopleList = [res]; | ||||||
|  |           this.partnerId.push(res?.id); | ||||||
|  |       } | ||||||
|  |       } | ||||||
|  |     }); | ||||||
|  |   } | ||||||
|  |   delete(item: any) { | ||||||
|  |   console.log(item); | ||||||
|  |   } | ||||||
|  |   save () { | ||||||
|  |     const params = { | ||||||
|  |       accountingRate: this.accountingRate, | ||||||
|  |       configName: this.configName, | ||||||
|  |       configType: this.configType, | ||||||
|  |       rebateConfigLineDTO: this.table.data, | ||||||
|  |       priority:  this.priority,// 优先级 | ||||||
|  |       partnerId: this.partnerId.join(','), | ||||||
|  |       ruleDescription: this.sf.value.ruleDescription, | ||||||
|  |       remarke: this.remarke, | ||||||
|  |       partnerType: this.partnerType | ||||||
|  |     } | ||||||
|  |     console.log(params); | ||||||
|  |     this.service.request(this.service.$api_save_rebateConfig, params).subscribe((res: any) => { | ||||||
|  |       if(res) { | ||||||
|  |         console.log(res); | ||||||
|  |         this.service.msgSrv.success('新增成功!') | ||||||
|  |         this.router.navigate(['/partner/rebate/setting']) | ||||||
|  |       } | ||||||
|  |     }) | ||||||
|   } |   } | ||||||
| } | } | ||||||
|  | |||||||
| @ -4,7 +4,7 @@ | |||||||
|  * @Author       : Shiming |  * @Author       : Shiming | ||||||
|  * @Date         : 2022-02-24 20:09:49 |  * @Date         : 2022-02-24 20:09:49 | ||||||
|  * @LastEditors  : Shiming |  * @LastEditors  : Shiming | ||||||
|  * @LastEditTime : 2022-03-22 14:42:27 |  * @LastEditTime : 2022-03-29 10:51:52 | ||||||
|  * @FilePath     : \\tms-obc-web\\src\\app\\routes\\partner\\rebate-management\\components\\rebate-setting\\rebate-setting.component.html |  * @FilePath     : \\tms-obc-web\\src\\app\\routes\\partner\\rebate-management\\components\\rebate-setting\\rebate-setting.component.html | ||||||
|  * Copyright (C) 2022 huzhenhong. All rights reserved. |  * Copyright (C) 2022 huzhenhong. All rights reserved. | ||||||
| --> | --> | ||||||
| @ -47,8 +47,17 @@ | |||||||
|     [loadingDelay]="500" |     [loadingDelay]="500" | ||||||
|     [loading]="service.http.loading" |     [loading]="service.http.loading" | ||||||
|   > |   > | ||||||
|   <ng-template st-row='name44' let-item let-index='index'> |   <ng-template st-row='configType' let-item let-index='index'> | ||||||
|     <div style="color: #f59a23;" (click)="feedback()">1223</div> |     <div *ngIf="item.configType == 1">按全部等级配置</div> | ||||||
|  |     <div *ngIf="item.configType == 2">按不同等级配置</div> | ||||||
|  |   </ng-template> | ||||||
|  |   <ng-template st-row='partnerType' let-item let-index='index'> | ||||||
|  |     <div *ngIf="item.partnerType == 1">全部合伙人</div> | ||||||
|  |     <div *ngIf="item.partnerType == 2">新注册合伙人</div> | ||||||
|  |     <div *ngIf="item.partnerType == 3">自定义合伙人</div> | ||||||
|  |   </ng-template> | ||||||
|  |   <ng-template st-row='stateLocked' let-item let-index='index'> | ||||||
|  |     <div >{{item?.stateLocked ? '启用' : '禁用'}}</div> | ||||||
|   </ng-template> |   </ng-template> | ||||||
|   </st> |   </st> | ||||||
| </nz-card> | </nz-card> | ||||||
|  | |||||||
| @ -69,12 +69,12 @@ export class ParterRebateManageMentSettingComponent implements OnInit { | |||||||
|         _$expand: { type: 'boolean', ui: { hidden: true } }, |         _$expand: { type: 'boolean', ui: { hidden: true } }, | ||||||
|         month: { |         month: { | ||||||
|           type: 'string', |           type: 'string', | ||||||
|           title: '时间月份', |           title: '配置名称', | ||||||
|           format: 'month', |           format: 'configName', | ||||||
|         }, |         }, | ||||||
|         partnerId: { |         stateLocked: { | ||||||
|           type: 'string', |           type: 'string', | ||||||
|           title: '合伙人名称' |           title: '状态' | ||||||
|         }, |         }, | ||||||
|       } |       } | ||||||
|     }; |     }; | ||||||
| @ -89,12 +89,12 @@ export class ParterRebateManageMentSettingComponent implements OnInit { | |||||||
|   initST() { |   initST() { | ||||||
|     this.columns = [ |     this.columns = [ | ||||||
|       { |       { | ||||||
|         title: '月份', |         title: '配置名称', | ||||||
|         index: '配置名称' |         index: 'configName' | ||||||
|       }, |       }, | ||||||
|       { |       { | ||||||
|         title: '配置类型', |         title: '配置类型', | ||||||
|         index: 'configType' |         render: 'configType' | ||||||
|       }, |       }, | ||||||
|       { |       { | ||||||
|         title: '备注', |         title: '备注', | ||||||
| @ -102,7 +102,7 @@ export class ParterRebateManageMentSettingComponent implements OnInit { | |||||||
|       }, |       }, | ||||||
|       { |       { | ||||||
|         title: '关联合伙人范围', |         title: '关联合伙人范围', | ||||||
|         index: 'partnerType' |         render: 'partnerType' | ||||||
|       }, |       }, | ||||||
|       { |       { | ||||||
|         title: '创建时间', |         title: '创建时间', | ||||||
| @ -118,7 +118,7 @@ export class ParterRebateManageMentSettingComponent implements OnInit { | |||||||
|       }, |       }, | ||||||
|       { |       { | ||||||
|         title: '状态', |         title: '状态', | ||||||
|         index: 'stateLocked' |         render: 'stateLocked' | ||||||
|       }, |       }, | ||||||
|       { |       { | ||||||
|         title: '操作', |         title: '操作', | ||||||
| @ -132,6 +132,12 @@ export class ParterRebateManageMentSettingComponent implements OnInit { | |||||||
|           }, |           }, | ||||||
|           { |           { | ||||||
|             text: '禁用', |             text: '禁用', | ||||||
|  |             iif: (_record) =>{ return _record.stateLocked == true}, | ||||||
|  |             click: _record => this.viewEvaluate(_record), | ||||||
|  |           }, | ||||||
|  |           { | ||||||
|  |             text: '启用', | ||||||
|  |             iif: (_record) =>{ return _record.stateLocked == false}, | ||||||
|             click: _record => this.viewEvaluate(_record), |             click: _record => this.viewEvaluate(_record), | ||||||
|           }, |           }, | ||||||
|         ] |         ] | ||||||
| @ -142,10 +148,29 @@ export class ParterRebateManageMentSettingComponent implements OnInit { | |||||||
|    *禁用 |    *禁用 | ||||||
|    */ |    */ | ||||||
|    viewEvaluate(item: any) { |    viewEvaluate(item: any) { | ||||||
|  |      console.log(item.stateLocked); | ||||||
|  |      let title = '' | ||||||
|  |      let stateLocked: boolean; | ||||||
|  |      if(item.stateLocked) { | ||||||
|  |        title = '是否禁用该配置?' | ||||||
|  |        stateLocked = false | ||||||
|  |      } else { | ||||||
|  |        title = '是否启用该配置?' | ||||||
|  |        stateLocked = true | ||||||
|  |      } | ||||||
|     this.modal.confirm({ |     this.modal.confirm({ | ||||||
|       nzTitle: '是否禁用该配置?', |       nzTitle: title, | ||||||
|       nzOnOk: () => { |       nzOnOk: () => { | ||||||
|          |         const params = { | ||||||
|  |           id: item?.id, | ||||||
|  |           stateLocked: stateLocked, | ||||||
|  |         } | ||||||
|  |           this.service.request(this.service.$api_set_updateRebateConfig,params).subscribe((res: any) => {  | ||||||
|  |             if(res) { | ||||||
|  |               this.service.msgSrv.success('设置成功!') | ||||||
|  |               this.st.reload(); | ||||||
|  |             } | ||||||
|  |           }) | ||||||
|       } |       } | ||||||
|     }); |     }); | ||||||
|   } |   } | ||||||
| @ -166,7 +191,7 @@ export class ParterRebateManageMentSettingComponent implements OnInit { | |||||||
|         }); |         }); | ||||||
|   } |   } | ||||||
|   configAction() { |   configAction() { | ||||||
|     this.router.navigate(['/partner/rebate/setting/add', '']) |     this.router.navigate(['/partner/rebate/setting/add/', 1]) | ||||||
|   } |   } | ||||||
|   /** |   /** | ||||||
|    * 重置表单 |    * 重置表单 | ||||||
|  | |||||||
| @ -19,6 +19,12 @@ export class RebateManagementService extends BaseService { | |||||||
|   public $api_get_listCompliancePage = '/api/sdc/billRiskOperate/listRiskPage'; |   public $api_get_listCompliancePage = '/api/sdc/billRiskOperate/listRiskPage'; | ||||||
|   // 查询返佣配置表 |   // 查询返佣配置表 | ||||||
|   public $api_get_rebateConfig = '/api/mdc/rebateConfig/list/page'; |   public $api_get_rebateConfig = '/api/mdc/rebateConfig/list/page'; | ||||||
|  |   // 保存返佣配置表 | ||||||
|  |   public $api_save_rebateConfig = '/api/mdc/rebateConfig/save'; | ||||||
|  |   // 启用/禁用返佣配置 | ||||||
|  |   public $api_set_updateRebateConfig = '/api/mdc/rebateConfig/updateRebateConfig'; | ||||||
|  |     // 查询合伙人信息-分页 | ||||||
|  |   public $api_get_partner_page = '/api/mdc/partner/list/page'; | ||||||
|   constructor(public injector: Injector) { |   constructor(public injector: Injector) { | ||||||
|     super(injector); |     super(injector); | ||||||
|   } |   } | ||||||
|  | |||||||
| @ -92,7 +92,7 @@ export class CarAddDriverComponent implements OnInit { | |||||||
|           title: '', |           title: '', | ||||||
|           ui: { |           ui: { | ||||||
|             offsetControl: 6, |             offsetControl: 6, | ||||||
|             action: apiConf.fileUpload, |             action: apiConf.waterFileUpload, | ||||||
|             accept: 'image/png,image/jpeg,image/jpg,image/gif', |             accept: 'image/png,image/jpeg,image/jpg,image/gif', | ||||||
|             limit: 1, |             limit: 1, | ||||||
|             limitFileCount: 1, |             limitFileCount: 1, | ||||||
| @ -108,6 +108,18 @@ export class CarAddDriverComponent implements OnInit { | |||||||
|             listType: 'picture-card', |             listType: 'picture-card', | ||||||
|             change: (args: any) => { |             change: (args: any) => { | ||||||
|               if (args.type === 'success') { |               if (args.type === 'success') { | ||||||
|  |                 const avatar = [ | ||||||
|  |                   { | ||||||
|  |                     uid: -1, | ||||||
|  |                     name: 'LOGO', | ||||||
|  |                     status: 'done', | ||||||
|  |                     url: args.file.response.data.fullFileWatermarkPath, | ||||||
|  |                     response: { | ||||||
|  |                       url: args.file.response.data.fullFileWatermarkPath, | ||||||
|  |                     }, | ||||||
|  |                   }, | ||||||
|  |                 ]; | ||||||
|  |                 this.sf?.setValue('/certificatePhotoFrontWatermark', avatar); | ||||||
|                 this.detailData.certificatePhotoFront = args.file.response.data.fullFilePath |                 this.detailData.certificatePhotoFront = args.file.response.data.fullFilePath | ||||||
|                 this.checkIdCard(args.file.response.data.fullFilePath, 'front', 0); |                 this.checkIdCard(args.file.response.data.fullFilePath, 'front', 0); | ||||||
|               } else { |               } else { | ||||||
| @ -142,7 +154,7 @@ export class CarAddDriverComponent implements OnInit { | |||||||
|           title: '', |           title: '', | ||||||
|           ui: { |           ui: { | ||||||
|             offsetControl: 6, |             offsetControl: 6, | ||||||
|             action: apiConf.fileUpload, |             action: apiConf.waterFileUpload, | ||||||
|             accept: 'image/png,image/jpeg,image/jpg,image/gif', |             accept: 'image/png,image/jpeg,image/jpg,image/gif', | ||||||
|             limit: 1, |             limit: 1, | ||||||
|             limitFileCount: 1, |             limitFileCount: 1, | ||||||
| @ -158,6 +170,18 @@ export class CarAddDriverComponent implements OnInit { | |||||||
|             listType: 'picture-card', |             listType: 'picture-card', | ||||||
|             change: (args: any) => { |             change: (args: any) => { | ||||||
|               if (args.type === 'success') { |               if (args.type === 'success') { | ||||||
|  |                 const avatar = [ | ||||||
|  |                   { | ||||||
|  |                     uid: -1, | ||||||
|  |                     name: 'LOGO', | ||||||
|  |                     status: 'done', | ||||||
|  |                     url: args.file.response.data.fullFileWatermarkPath, | ||||||
|  |                     response: { | ||||||
|  |                       url: args.file.response.data.fullFileWatermarkPath, | ||||||
|  |                     }, | ||||||
|  |                   }, | ||||||
|  |                 ]; | ||||||
|  |                 this.sf?.setValue('/certificatePhotoBackWatermark', avatar); | ||||||
|                 this.detailData.certificatePhotoBack = args.file.response.data.fullFilePath |                 this.detailData.certificatePhotoBack = args.file.response.data.fullFilePath | ||||||
|                 this.checkIdCard(args.file.response.data.fullFilePath, 'back', 0); |                 this.checkIdCard(args.file.response.data.fullFilePath, 'back', 0); | ||||||
|               } else { |               } else { | ||||||
|  | |||||||
| @ -119,7 +119,15 @@ export class SupplyManagementVehicleAssignedCarComponent implements OnInit { | |||||||
|         nzContent: '<b>该司机还未注册,是否邀请他注册?点击"是"系统将发送邀请短信给司机</b>', |         nzContent: '<b>该司机还未注册,是否邀请他注册?点击"是"系统将发送邀请短信给司机</b>', | ||||||
|         nzOkText: '确定', |         nzOkText: '确定', | ||||||
|         nzCancelText: '取消', |         nzCancelText: '取消', | ||||||
|         nzOnOk: () => console.log('OK') |         nzOnOk: () => { | ||||||
|  |           this.sendMsg(this.sf?.value?.nameOrPhone).subscribe((res => { | ||||||
|  |             if (res.code === '1') { | ||||||
|  |               this.service.msgSrv.success('发送成功'); | ||||||
|  |             } else { | ||||||
|  |               this.service.msgSrv.success('发送失败'); | ||||||
|  |             } | ||||||
|  |           })); | ||||||
|  |         } | ||||||
|       }); |       }); | ||||||
|       return []; |       return []; | ||||||
|     } |     } | ||||||
| @ -256,5 +264,11 @@ export class SupplyManagementVehicleAssignedCarComponent implements OnInit { | |||||||
|     }); |     }); | ||||||
|   } |   } | ||||||
|  |  | ||||||
|  |   /** | ||||||
|  | * 发送邀请司机注册短信 | ||||||
|  | */ | ||||||
|  |   sendMsg(phoneNumber: string) { | ||||||
|  |     return this.service.request(this.service.$api_send_msg_code, phoneNumber) | ||||||
|  |   } | ||||||
|  |  | ||||||
| } | } | ||||||
|  | |||||||
| @ -246,7 +246,15 @@ export class PublishGoodsChooseFamifiarComponent implements OnInit { | |||||||
|         nzContent: '<b>该司机还未注册,是否邀请他注册?点击"是"系统将发送邀请短信给司机</b>', |         nzContent: '<b>该司机还未注册,是否邀请他注册?点击"是"系统将发送邀请短信给司机</b>', | ||||||
|         nzOkText: '确定', |         nzOkText: '确定', | ||||||
|         nzCancelText: '取消', |         nzCancelText: '取消', | ||||||
|         nzOnOk: () => console.log('OK') |         nzOnOk: () => { | ||||||
|  |           this.sendMsg(this.sf?.value?.nameOrPhone).subscribe((res => { | ||||||
|  |             if (res.code === '1') { | ||||||
|  |               this.service.msgSrv.success('发送成功'); | ||||||
|  |             } else { | ||||||
|  |               this.service.msgSrv.success('发送失败'); | ||||||
|  |             } | ||||||
|  |           })); | ||||||
|  |         } | ||||||
|       }); |       }); | ||||||
|       return []; |       return []; | ||||||
|     } |     } | ||||||
| @ -327,4 +335,11 @@ export class PublishGoodsChooseFamifiarComponent implements OnInit { | |||||||
|       } |       } | ||||||
|     }); |     }); | ||||||
|   } |   } | ||||||
|  |  | ||||||
|  |   /** | ||||||
|  | * 发送邀请司机注册短信 | ||||||
|  | */ | ||||||
|  |   sendMsg(phoneNumber: string) { | ||||||
|  |     return this.service.request(this.service.$api_send_msg_code, phoneNumber) | ||||||
|  |   } | ||||||
| } | } | ||||||
|  | |||||||
| @ -177,17 +177,15 @@ export class SupplyManagementVehicleComponent implements OnInit { | |||||||
|             { |             { | ||||||
|               label: '下载失败数据', |               label: '下载失败数据', | ||||||
|               type: 'primary', |               type: 'primary', | ||||||
|  |               loading: this.service.http.loading, | ||||||
|               onClick: () => { |               onClick: () => { | ||||||
|                 if(!result?.failNumber) { |                 if(!result?.failNumber) { | ||||||
|                   this.service.msgSrv.error('没有失败数据!'); |                   this.service.msgSrv.error('没有失败数据!'); | ||||||
|  |                   tipsModal.destroy(); | ||||||
|                   return; |                   return; | ||||||
|                 } |                 } | ||||||
|                 this.service.request(this.service.$api_getFailUploadGoodsOperateResource, result.ids).subscribe((res: any) => { |                 this.service.downloadFile(this.service.$api_getFailUploadGoodsOperateResource, result.ids) | ||||||
|                   if(res) { |                 tipsModal.destroy(); | ||||||
|                     console.log(res); |  | ||||||
|                   } |  | ||||||
|                 }) |  | ||||||
|                 console.log(111); |  | ||||||
|               } |               } | ||||||
|             }, |             }, | ||||||
|           ] |           ] | ||||||
|  | |||||||
| @ -177,6 +177,8 @@ export class SupplyManagementService extends BaseService { | |||||||
|   $api_asyncExportWholeList = '/api/sdc/goodsResourceOperate/asyncExportWholeList'; |   $api_asyncExportWholeList = '/api/sdc/goodsResourceOperate/asyncExportWholeList'; | ||||||
|   // 根据货主ID查询合同签署属性 |   // 根据货主ID查询合同签署属性 | ||||||
|   public $api_getContractAtr = '/api/mdc/cuc/enterpriseInfo/cargoOwner/getContractAtr'; |   public $api_getContractAtr = '/api/mdc/cuc/enterpriseInfo/cargoOwner/getContractAtr'; | ||||||
|  |   // 发送邀请司机短信 | ||||||
|  |   $api_send_msg_code = `/api/mdc/pbc/smsSend/sendInviteDriver`; | ||||||
|  |  | ||||||
|   getDictByKey(dictKey: string) { |   getDictByKey(dictKey: string) { | ||||||
|     const params = { dictKey: dictKey }; |     const params = { dictKey: dictKey }; | ||||||
|  | |||||||
| @ -205,6 +205,10 @@ export class CancellationInvoiceComponent implements OnInit { | |||||||
|     }); |     }); | ||||||
|   } |   } | ||||||
|  |  | ||||||
|  |   downLoadDetail(item: any) { | ||||||
|  |     this.service.exportStart({ id: item.id }, this.service.$api_export_invoic_detail); | ||||||
|  |   } | ||||||
|  |  | ||||||
|   /** |   /** | ||||||
|    * 推送发票 |    * 推送发票 | ||||||
|    * @param item |    * @param item | ||||||
| @ -387,6 +391,11 @@ export class CancellationInvoiceComponent implements OnInit { | |||||||
|                 queryParams: { type: 1, expressno: item.expressno, ltdId: item.shipperId } |                 queryParams: { type: 1, expressno: item.expressno, ltdId: item.shipperId } | ||||||
|               }) |               }) | ||||||
|           }, |           }, | ||||||
|  |           { | ||||||
|  |             text: '销货清单<br>', | ||||||
|  |             iif: item => item.isdetail, | ||||||
|  |             click: item => this.downLoadDetail(item) | ||||||
|  |           }, | ||||||
|           { |           { | ||||||
|             text: '手工开票<br>', |             text: '手工开票<br>', | ||||||
|             iif: item => item.sts != '3', |             iif: item => item.sts != '3', | ||||||
|  | |||||||
| @ -34,11 +34,11 @@ export class ExpressDetailModalComponent implements OnInit { | |||||||
|     }, |     }, | ||||||
|     { |     { | ||||||
|       title: '金额', |       title: '金额', | ||||||
|       index: 'vatnotax', |       index: 'vatmoney', | ||||||
|       width: 90, |       width: 90, | ||||||
|       type: 'widget', |       type: 'widget', | ||||||
|       className: 'text-right', |       className: 'text-right', | ||||||
|       widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.vatnotax }) } |       widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.vatmoney }) } | ||||||
|     }, |     }, | ||||||
|     { |     { | ||||||
|       title: '税率', |       title: '税率', | ||||||
| @ -53,7 +53,7 @@ export class ExpressDetailModalComponent implements OnInit { | |||||||
|       width: 90, |       width: 90, | ||||||
|       type: 'widget', |       type: 'widget', | ||||||
|       className: 'text-right', |       className: 'text-right', | ||||||
|       widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.vatnotax }) } |       widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.vattax }) } | ||||||
|     }, |     }, | ||||||
|     { title: '开票日期', index: 'invoicedate', type: 'date', width: 150, className: 'text-center' } |     { title: '开票日期', index: 'invoicedate', type: 'date', width: 150, className: 'text-center' } | ||||||
|   ]; |   ]; | ||||||
|  | |||||||
| @ -154,13 +154,13 @@ export class InvoiceDetailComponent implements OnInit { | |||||||
|       { title: '卸货地', index: 'loadingto', width: 220 }, |       { title: '卸货地', index: 'loadingto', width: 220 }, | ||||||
|       { title: '货物信息', index: 'goodsinfo', width: 140 }, |       { title: '货物信息', index: 'goodsinfo', width: 140 }, | ||||||
|       { title: '承运司机', index: 'driverinfo', width: 280 }, |       { title: '承运司机', index: 'driverinfo', width: 280 }, | ||||||
|         { |       // { | ||||||
|         title: '税额', |       //   title: '税额', | ||||||
|         index: 'billvatrate', |       //   index: 'billvatrate', | ||||||
|         width: 120, |       //   width: 120, | ||||||
|         className: 'text-right', |       //   className: 'text-right', | ||||||
|         format: item => `${item.billvatrate ? ((item.billvatrate as number) * 100).toFixed(2) : 0}%` |       //   format: item => `${item.billvatrate ? ((item.billvatrate as number) * 100).toFixed(2) : 0}%` | ||||||
|       }, |       // }, | ||||||
|       { |       { | ||||||
|         title: '申请金额', |         title: '申请金额', | ||||||
|         index: 'billkpnotax', |         index: 'billkpnotax', | ||||||
|  | |||||||
| @ -55,6 +55,8 @@ export class InvoiceRequestedComponent { | |||||||
|   }; |   }; | ||||||
|  |  | ||||||
|   afterRes = (data: any[], rawData?: any) => { |   afterRes = (data: any[], rawData?: any) => { | ||||||
|  |     this.totalCallNo = 0; | ||||||
|  |     this.selectedRows = []; | ||||||
|     return data.map(item => ({ |     return data.map(item => ({ | ||||||
|       ...item, |       ...item, | ||||||
|       disabled: item.expressHSts |       disabled: item.expressHSts | ||||||
| @ -436,7 +438,10 @@ export class InvoiceRequestedComponent { | |||||||
|         width: 150, |         width: 150, | ||||||
|         type: 'widget', |         type: 'widget', | ||||||
|         className: 'text-right', |         className: 'text-right', | ||||||
|         widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.invoicedMoney }) } |         widget: { | ||||||
|  |           type: 'currency-chy', | ||||||
|  |           params: ({ record }) => ({ value: record.invoicedMoney }) | ||||||
|  |         } | ||||||
|       }, |       }, | ||||||
|       { title: '开户行', index: 'bankName', width: 160 }, |       { title: '开户行', index: 'bankName', width: 160 }, | ||||||
|       { title: '银行账户', index: 'bankAccount', width: 140 }, |       { title: '银行账户', index: 'bankAccount', width: 140 }, | ||||||
|  | |||||||
| @ -47,6 +47,8 @@ export class RequestedInvoiceModalComponent { | |||||||
|           if (res) { |           if (res) { | ||||||
|             this.service.msgSrv.success('移除成功'); |             this.service.msgSrv.success('移除成功'); | ||||||
|             this.modal.destroy(true); |             this.modal.destroy(true); | ||||||
|  |           } else { | ||||||
|  |             this.service.msgSrv.warning('移除失败'); | ||||||
|           } |           } | ||||||
|         }); |         }); | ||||||
|       } |       } | ||||||
|  | |||||||
| @ -46,6 +46,8 @@ export class TicketService extends ShipperBaseService { | |||||||
|   $api_batch_push_invoic = '/api/fcc/ficoVatinvH/crmPushInvoBath'; |   $api_batch_push_invoic = '/api/fcc/ficoVatinvH/crmPushInvoBath'; | ||||||
|   // 发票作废 |   // 发票作废 | ||||||
|   $api_cancel_invoic = '/api/fcc/ficoVatinvH/inpinvHCancel'; |   $api_cancel_invoic = '/api/fcc/ficoVatinvH/inpinvHCancel'; | ||||||
|  |   // 运营端销票处理导出销售清单 | ||||||
|  |   $api_export_invoic_detail = '/api/fcc/ficoVatinvH/reportVatinvHByOperator'; | ||||||
|  |  | ||||||
|   // 获取汇总下单路径 |   // 获取汇总下单路径 | ||||||
|   $api_get_order_summary_path = '/api/fcc/ficoExpressH/getSummaryOrderAddress'; |   $api_get_order_summary_path = '/api/fcc/ficoExpressH/getSummaryOrderAddress'; | ||||||
| @ -60,7 +62,7 @@ export class TicketService extends ShipperBaseService { | |||||||
|   $api_get_invoice_page = '/api/fcc/ficoVatinvH/list/page'; |   $api_get_invoice_page = '/api/fcc/ficoVatinvH/list/page'; | ||||||
|  |  | ||||||
|   // 更新快递信息 |   // 更新快递信息 | ||||||
|   $api_update_Express= '/api/fcc/ficoVatinvH/updateExpress'; |   $api_update_Express = '/api/fcc/ficoVatinvH/updateExpress'; | ||||||
|  |  | ||||||
|   // 发票作废 |   // 发票作废 | ||||||
|   $api_cancel_invoice = '/api/fcc/ficoVatinvH/inpinvHCancel'; |   $api_cancel_invoice = '/api/fcc/ficoVatinvH/inpinvHCancel'; | ||||||
|  | |||||||
| @ -23,12 +23,16 @@ | |||||||
|             </div> |             </div> | ||||||
|         </ng-template> |         </ng-template> | ||||||
|     </sf> |     </sf> | ||||||
|     <sf #sf1 [compact]="true" [ui]="ui" [schema]="schema1" [button]="'none'" *ngIf="schema1"> |     <sf #sf1 [compact]="true" [ui]="ui2" [schema]="schema1" [button]="'none'" *ngIf="schema1"> | ||||||
|  |         <ng-template sf-template="roadImg" let-me let-ui="ui" let-schema="schema"> | ||||||
|  |             <img height="104" src="/assets/images/drivercard.png" class="borderImg" /> | ||||||
|  |         </ng-template> | ||||||
|     </sf> |     </sf> | ||||||
|     <sf #sf2 [compact]="true" [ui]="ui" [schema]="schema2" [button]="'none'" *ngIf="schema2"> |     <sf #sf2 [compact]="true" [ui]="ui3" [schema]="schema2" [button]="'none'" *ngIf="schema2"> | ||||||
|  |         <ng-template sf-template="agreeImg" let-me let-ui="ui" let-schema="schema"> | ||||||
|  |             <img height="104" src="/assets/images/jopcard.png" class="borderImg" /> | ||||||
|  |         </ng-template> | ||||||
|     </sf> |     </sf> | ||||||
|     <img class="drivercard" height="104" src="/assets/images/drivercard.png" /> |  | ||||||
|     <img class="jopcard" height="104" src="/assets/images/jopcard.png" /> |  | ||||||
|     <!-- <div class="example" (click)="showExample()"> |     <!-- <div class="example" (click)="showExample()"> | ||||||
|       查看示例 |       查看示例 | ||||||
|       <div class="popBox" *ngIf="showCardFlag"> |       <div class="popBox" *ngIf="showCardFlag"> | ||||||
|  | |||||||
| @ -29,13 +29,13 @@ | |||||||
| } | } | ||||||
| .drivercard{ | .drivercard{ | ||||||
|   position: absolute; |   position: absolute; | ||||||
|   top: 50%; |   top: 710px; | ||||||
|   left: 330px; |   left: 330px; | ||||||
|   border: solid 1px #ebf0fb; |   border: solid 1px #ebf0fb; | ||||||
| } | } | ||||||
| .jopcard{ | .jopcard{ | ||||||
|   position: absolute; |   position: absolute; | ||||||
|   top: 79%; |   top: 1115px; | ||||||
|   left: 330px; |   left: 330px; | ||||||
|   border: solid 1px #ebf0fb; |   border: solid 1px #ebf0fb; | ||||||
| } | } | ||||||
| @ -47,5 +47,11 @@ | |||||||
|       color: black; |       color: black; | ||||||
|       resize:none; |       resize:none; | ||||||
|     } |     } | ||||||
|  |     .setCustom .ant-form-item-control{ | ||||||
|  |       margin-left: -100px !important | ||||||
|  |     } | ||||||
|  |     .borderImg{ | ||||||
|  |       border: solid 1px #ebf0fb; | ||||||
|  |     } | ||||||
|   } |   } | ||||||
| } | } | ||||||
| @ -22,6 +22,8 @@ export class CarSettleAddDriverComponent implements OnInit { | |||||||
|   record: any = {}; |   record: any = {}; | ||||||
|   i: any; |   i: any; | ||||||
|   ui: SFUISchema = {}; |   ui: SFUISchema = {}; | ||||||
|  |   ui2: SFUISchema = {}; | ||||||
|  |   ui3: SFUISchema = {}; | ||||||
|   schema: SFSchema = {}; |   schema: SFSchema = {}; | ||||||
|   schema1: SFSchema = {}; |   schema1: SFSchema = {}; | ||||||
|   schema2: SFSchema = {}; |   schema2: SFSchema = {}; | ||||||
| @ -88,7 +90,7 @@ export class CarSettleAddDriverComponent implements OnInit { | |||||||
|           title: '', |           title: '', | ||||||
|           ui: { |           ui: { | ||||||
|             offsetControl: 6, |             offsetControl: 6, | ||||||
|             action: apiConf.fileUpload, |             action: apiConf.waterFileUpload, | ||||||
|             fileType: 'image/png,image/jpeg,image/jpg,image/gif', |             fileType: 'image/png,image/jpeg,image/jpg,image/gif', | ||||||
|             limit: 1, |             limit: 1, | ||||||
|             limitFileCount: 1, |             limitFileCount: 1, | ||||||
| @ -104,7 +106,18 @@ export class CarSettleAddDriverComponent implements OnInit { | |||||||
|             listType: 'picture-card', |             listType: 'picture-card', | ||||||
|             change: (args: any) => { |             change: (args: any) => { | ||||||
|               if (args.type === 'success') { |               if (args.type === 'success') { | ||||||
|                 console.log(args.file.response.data.fullFilePath); |                 const avatar = [ | ||||||
|  |                   { | ||||||
|  |                     uid: -1, | ||||||
|  |                     name: 'LOGO', | ||||||
|  |                     status: 'done', | ||||||
|  |                     url: args.file.response.data.fullFileWatermarkPath, | ||||||
|  |                     response: { | ||||||
|  |                       url: args.file.response.data.fullFileWatermarkPath, | ||||||
|  |                     }, | ||||||
|  |                   }, | ||||||
|  |                 ]; | ||||||
|  |                 this.sf?.setValue('/certificatePhotoFrontWatermark', avatar); | ||||||
|                 this.detailData.certificatePhotoFront = args.file.response.data.fullFilePath; |                 this.detailData.certificatePhotoFront = args.file.response.data.fullFilePath; | ||||||
|                 this.checkIdCard(args.file.response.data.fullFilePath, 'front', 0); |                 this.checkIdCard(args.file.response.data.fullFilePath, 'front', 0); | ||||||
|               } |               } | ||||||
| @ -137,7 +150,7 @@ export class CarSettleAddDriverComponent implements OnInit { | |||||||
|           title: '', |           title: '', | ||||||
|           ui: { |           ui: { | ||||||
|             offsetControl: 6, |             offsetControl: 6, | ||||||
|             action: apiConf.fileUpload, |             action: apiConf.waterFileUpload, | ||||||
|             fileType: 'image/png,image/jpeg,image/jpg,image/gif', |             fileType: 'image/png,image/jpeg,image/jpg,image/gif', | ||||||
|             limit: 1, |             limit: 1, | ||||||
|             limitFileCount: 1, |             limitFileCount: 1, | ||||||
| @ -153,6 +166,18 @@ export class CarSettleAddDriverComponent implements OnInit { | |||||||
|             listType: 'picture-card', |             listType: 'picture-card', | ||||||
|             change: (args: any) => { |             change: (args: any) => { | ||||||
|               if (args.type === 'success') { |               if (args.type === 'success') { | ||||||
|  |                 const avatar = [ | ||||||
|  |                   { | ||||||
|  |                     uid: -1, | ||||||
|  |                     name: 'LOGO', | ||||||
|  |                     status: 'done', | ||||||
|  |                     url: args.file.response.data.fullFileWatermarkPath, | ||||||
|  |                     response: { | ||||||
|  |                       url: args.file.response.data.fullFileWatermarkPath, | ||||||
|  |                     }, | ||||||
|  |                   }, | ||||||
|  |                 ]; | ||||||
|  |                 this.sf?.setValue('/certificatePhotoBackWatermark', avatar); | ||||||
|                 this.detailData.certificatePhotoBack = args.file.response.data.fullFilePath; |                 this.detailData.certificatePhotoBack = args.file.response.data.fullFilePath; | ||||||
|                 this.checkIdCard(args.file.response.data.fullFilePath, 'back', 0); |                 this.checkIdCard(args.file.response.data.fullFilePath, 'back', 0); | ||||||
|               } |               } | ||||||
| @ -234,7 +259,7 @@ export class CarSettleAddDriverComponent implements OnInit { | |||||||
|           type: 'string', |           type: 'string', | ||||||
|           title: '驾驶证照片', |           title: '驾驶证照片', | ||||||
|           ui: { |           ui: { | ||||||
|             action: apiConf.fileUpload, |             action: apiConf.waterFileUpload, | ||||||
|             fileType: 'image/png,image/jpeg,image/jpg,image/gif', |             fileType: 'image/png,image/jpeg,image/jpg,image/gif', | ||||||
|             limit: 1, |             limit: 1, | ||||||
|             limitFileCount: 1, |             limitFileCount: 1, | ||||||
| @ -250,6 +275,18 @@ export class CarSettleAddDriverComponent implements OnInit { | |||||||
|             listType: 'picture-card', |             listType: 'picture-card', | ||||||
|             change: (args: any) => { |             change: (args: any) => { | ||||||
|               if (args.type === 'success') { |               if (args.type === 'success') { | ||||||
|  |                 const avatar = [ | ||||||
|  |                   { | ||||||
|  |                     uid: -1, | ||||||
|  |                     name: 'LOGO', | ||||||
|  |                     status: 'done', | ||||||
|  |                     url: args.file.response.data.fullFileWatermarkPath, | ||||||
|  |                     response: { | ||||||
|  |                       url: args.file.response.data.fullFileWatermarkPath, | ||||||
|  |                     }, | ||||||
|  |                   }, | ||||||
|  |                 ]; | ||||||
|  |                 this.sf1?.setValue('/certificatePhotoWatermark', avatar); | ||||||
|                 this.detailData.userDriverLicenseDTO.certificatePhoto = args.file.response.data.fullFilePath; |                 this.detailData.userDriverLicenseDTO.certificatePhoto = args.file.response.data.fullFilePath; | ||||||
|                 this.checkDriverCard(args.file.response.data.fullFilePath, 'front', 0); |                 this.checkDriverCard(args.file.response.data.fullFilePath, 'front', 0); | ||||||
|               } else { |               } else { | ||||||
| @ -271,6 +308,14 @@ export class CarSettleAddDriverComponent implements OnInit { | |||||||
|             //  previewFile: (file: NzUploadFile) => of(file.url), |             //  previewFile: (file: NzUploadFile) => of(file.url), | ||||||
|           } |           } | ||||||
|         }, |         }, | ||||||
|  |         roadImg: { | ||||||
|  |           title: '', | ||||||
|  |           type: 'boolean', | ||||||
|  |           // enum: [{ label: '长期', value: true }], | ||||||
|  |           ui: { | ||||||
|  |             widget: 'custom', | ||||||
|  |           } | ||||||
|  |         }, | ||||||
|         licenseNo: { |         licenseNo: { | ||||||
|           title: '驾驶证号', |           title: '驾驶证号', | ||||||
|           type: 'string', |           type: 'string', | ||||||
| @ -351,7 +396,7 @@ export class CarSettleAddDriverComponent implements OnInit { | |||||||
|           title: '', |           title: '', | ||||||
|           ui: { |           ui: { | ||||||
|             offsetControl: 6, |             offsetControl: 6, | ||||||
|             action: apiConf.fileUpload, |             action: apiConf.waterFileUpload, | ||||||
|             fileType: 'image/png,image/jpeg,image/jpg,image/gif', |             fileType: 'image/png,image/jpeg,image/jpg,image/gif', | ||||||
|             limit: 1, |             limit: 1, | ||||||
|             limitFileCount: 1, |             limitFileCount: 1, | ||||||
| @ -367,6 +412,18 @@ export class CarSettleAddDriverComponent implements OnInit { | |||||||
|             listType: 'picture-card', |             listType: 'picture-card', | ||||||
|             change: (args: any) => { |             change: (args: any) => { | ||||||
|               if (args.type === 'success') { |               if (args.type === 'success') { | ||||||
|  |                 const avatar = [ | ||||||
|  |                   { | ||||||
|  |                     uid: -1, | ||||||
|  |                     name: 'LOGO', | ||||||
|  |                     status: 'done', | ||||||
|  |                     url: args.file.response.data.fullFileWatermarkPath, | ||||||
|  |                     response: { | ||||||
|  |                       url: args.file.response.data.fullFileWatermarkPath, | ||||||
|  |                     }, | ||||||
|  |                   }, | ||||||
|  |                 ]; | ||||||
|  |                 this.sf2?.setValue('/certificatePhotoWatermark', avatar); | ||||||
|                 this.detailData.userPracticeSeniorityDTO.certificatePhoto = args.file.response.data.fullFilePath; |                 this.detailData.userPracticeSeniorityDTO.certificatePhoto = args.file.response.data.fullFilePath; | ||||||
|                 this.checkQualificationCertificate(args.file.response.data.fullFilePath); |                 this.checkQualificationCertificate(args.file.response.data.fullFilePath); | ||||||
|               } else { |               } else { | ||||||
| @ -385,7 +442,15 @@ export class CarSettleAddDriverComponent implements OnInit { | |||||||
|                 observer.complete(); |                 observer.complete(); | ||||||
|               }); |               }); | ||||||
|             }, |             }, | ||||||
|             previewFile: (file: NzUploadFile) => of() |             // previewFile: (file: NzUploadFile) => of() | ||||||
|  |           } | ||||||
|  |         }, | ||||||
|  |         agreeImg: { | ||||||
|  |           title: '', | ||||||
|  |           type: 'boolean', | ||||||
|  |           // enum: [{ label: '长期', value: true }], | ||||||
|  |           ui: { | ||||||
|  |             widget: 'custom', | ||||||
|           } |           } | ||||||
|         }, |         }, | ||||||
|         licenseNo: { |         licenseNo: { | ||||||
| @ -476,6 +541,40 @@ export class CarSettleAddDriverComponent implements OnInit { | |||||||
|         grid: { span: 3 } |         grid: { span: 3 } | ||||||
|       } |       } | ||||||
|     }; |     }; | ||||||
|  |     this.ui2 = { | ||||||
|  |       '*': { | ||||||
|  |         spanLabelFixed: 180, | ||||||
|  |         grid: { span: 18 }, | ||||||
|  |         width: 600, | ||||||
|  |       }, | ||||||
|  |       $titleB:{ | ||||||
|  |         grid: { span: 24 }, | ||||||
|  |       }, | ||||||
|  |       $certificatePhotoWatermark: { | ||||||
|  |         grid: { span: 12 }, | ||||||
|  |       }, | ||||||
|  |       $roadImg: { | ||||||
|  |         grid: { span: 4 }, | ||||||
|  |         class: 'setCustom' | ||||||
|  |       }, | ||||||
|  |     }; | ||||||
|  |     this.ui3 = { | ||||||
|  |       '*': { | ||||||
|  |         spanLabelFixed: 180, | ||||||
|  |         grid: { span: 18 }, | ||||||
|  |         width: 600, | ||||||
|  |       }, | ||||||
|  |       $titleC:{ | ||||||
|  |         grid: { span: 24 }, | ||||||
|  |       }, | ||||||
|  |       $certificatePhotoWatermark: { | ||||||
|  |         grid: { span: 12 }, | ||||||
|  |       }, | ||||||
|  |       $agreeImg: { | ||||||
|  |         grid: { span: 4 }, | ||||||
|  |         class: 'setCustom' | ||||||
|  |       }, | ||||||
|  |     }; | ||||||
|   } |   } | ||||||
|   getRegionToThree() { |   getRegionToThree() { | ||||||
|     // 获取一、二、三级地区详情 |     // 获取一、二、三级地区详情 | ||||||
| @ -547,7 +646,7 @@ export class CarSettleAddDriverComponent implements OnInit { | |||||||
|           if (side === 'front') { |           if (side === 'front') { | ||||||
|             // 正面 |             // 正面 | ||||||
|             this.sf1.setValue('/licenseNo', res.number); |             this.sf1.setValue('/licenseNo', res.number); | ||||||
|             this.sf1.setValue('/driverModel', [res.classType.toUpperCase()]); |             this.sf1.setValue('/driverModel', [res.classType?.toUpperCase()]); | ||||||
|             this.sf1.setValue('/validStartTime', res.validFrom); |             this.sf1.setValue('/validStartTime', res.validFrom); | ||||||
|             this.sf1.setValue('/validEndTime', res.validTo); |             this.sf1.setValue('/validEndTime', res.validTo); | ||||||
|             this.sf1.setValue('/signingOrganization', res.issuingAuthority); |             this.sf1.setValue('/signingOrganization', res.issuingAuthority); | ||||||
|  | |||||||
| @ -102,7 +102,7 @@ export class CarSettleCarauthComponent implements OnInit { | |||||||
|           type: 'string', |           type: 'string', | ||||||
|           title: '车头照照片', |           title: '车头照照片', | ||||||
|           ui: { |           ui: { | ||||||
|             action: apiConf.fileUpload, |             action: apiConf.waterFileUpload, | ||||||
|             accept: 'image/png,image/jpeg,image/jpg,image/gif', |             accept: 'image/png,image/jpeg,image/jpg,image/gif', | ||||||
|             limit: 1, |             limit: 1, | ||||||
|             limitFileCount: 1, |             limitFileCount: 1, | ||||||
| @ -118,6 +118,19 @@ export class CarSettleCarauthComponent implements OnInit { | |||||||
|             listType: 'picture-card', |             listType: 'picture-card', | ||||||
|             change: (args: any) => { |             change: (args: any) => { | ||||||
|               if (args.type === 'success') { |               if (args.type === 'success') { | ||||||
|  |                 console.log(args); | ||||||
|  |                 const avatar = [ | ||||||
|  |                   { | ||||||
|  |                     uid: -1, | ||||||
|  |                     name: 'LOGO', | ||||||
|  |                     status: 'done', | ||||||
|  |                     url: args.file.response.data.fullFileWatermarkPath, | ||||||
|  |                     response: { | ||||||
|  |                       url: args.file.response.data.fullFileWatermarkPath, | ||||||
|  |                     }, | ||||||
|  |                   }, | ||||||
|  |                 ]; | ||||||
|  |                 this.sf?.setValue('/carFrontPhotoWatermark', avatar); | ||||||
|                 this.detailData.carFrontPhoto = args.file.response.data.fullFilePath |                 this.detailData.carFrontPhoto = args.file.response.data.fullFilePath | ||||||
|               } |               } | ||||||
|             }, |             }, | ||||||
| @ -129,11 +142,15 @@ export class CarSettleCarauthComponent implements OnInit { | |||||||
|                   observer.complete(); |                   observer.complete(); | ||||||
|                   return; |                   return; | ||||||
|                 } |                 } | ||||||
|  |                 console.log(_fileList) | ||||||
|  |                  | ||||||
|                 observer.next(isLt2M); |                 observer.next(isLt2M); | ||||||
|                 observer.complete(); |                 observer.complete(); | ||||||
|               }); |               }); | ||||||
|             }, |             }, | ||||||
|             previewFile: (file: NzUploadFile) => of(file.url), |             // previewFile: (file: NzUploadFile) => of(  | ||||||
|  |             //   file?.response?.data?.fullFilePath | ||||||
|  |             //   ), | ||||||
|           } |           } | ||||||
|         }, |         }, | ||||||
|         carNo: { |         carNo: { | ||||||
| @ -215,7 +232,7 @@ export class CarSettleCarauthComponent implements OnInit { | |||||||
|           type: 'string', |           type: 'string', | ||||||
|           title: '挂靠协议', |           title: '挂靠协议', | ||||||
|           ui: { |           ui: { | ||||||
|             action: apiConf.fileUpload, |             action: apiConf.waterFileUpload, | ||||||
|             accept: 'image/png,image/jpeg,image/jpg,image/gif', |             accept: 'image/png,image/jpeg,image/jpg,image/gif', | ||||||
|             limit: 1, |             limit: 1, | ||||||
|             limitFileCount: 1, |             limitFileCount: 1, | ||||||
| @ -231,6 +248,18 @@ export class CarSettleCarauthComponent implements OnInit { | |||||||
|             listType: 'picture-card', |             listType: 'picture-card', | ||||||
|             change: (args: any) => { |             change: (args: any) => { | ||||||
|               if (args.type === 'success') { |               if (args.type === 'success') { | ||||||
|  |                 const avatar = [ | ||||||
|  |                   { | ||||||
|  |                     uid: -1, | ||||||
|  |                     name: 'LOGO', | ||||||
|  |                     status: 'done', | ||||||
|  |                     url: args.file.response.data.fullFileWatermarkPath, | ||||||
|  |                     response: { | ||||||
|  |                       url: args.file.response.data.fullFileWatermarkPath, | ||||||
|  |                     }, | ||||||
|  |                   }, | ||||||
|  |                 ]; | ||||||
|  |                 this.sf?.setValue('/carProtocalWatermark', avatar); | ||||||
|                 this.detailData.certificatePhotoFront = args.file.response.data.fullFilePath |                 this.detailData.certificatePhotoFront = args.file.response.data.fullFilePath | ||||||
|               } |               } | ||||||
|             }, |             }, | ||||||
| @ -277,7 +306,7 @@ export class CarSettleCarauthComponent implements OnInit { | |||||||
|           type: 'string', |           type: 'string', | ||||||
|           title: '行驶证首页照片', |           title: '行驶证首页照片', | ||||||
|           ui: { |           ui: { | ||||||
|             action: apiConf.fileUpload, |             action: apiConf.waterFileUpload, | ||||||
|             accept: 'image/png,image/jpeg,image/jpg,image/gif', |             accept: 'image/png,image/jpeg,image/jpg,image/gif', | ||||||
|             limit: 1, |             limit: 1, | ||||||
|             limitFileCount: 1, |             limitFileCount: 1, | ||||||
| @ -293,6 +322,18 @@ export class CarSettleCarauthComponent implements OnInit { | |||||||
|             listType: 'picture-card', |             listType: 'picture-card', | ||||||
|             change: (args: any) => { |             change: (args: any) => { | ||||||
|               if (args.type === 'success') { |               if (args.type === 'success') { | ||||||
|  |                 const avatar = [ | ||||||
|  |                   { | ||||||
|  |                     uid: -1, | ||||||
|  |                     name: 'LOGO', | ||||||
|  |                     status: 'done', | ||||||
|  |                     url: args.file.response.data.fullFileWatermarkPath, | ||||||
|  |                     response: { | ||||||
|  |                       url: args.file.response.data.fullFileWatermarkPath, | ||||||
|  |                     }, | ||||||
|  |                   }, | ||||||
|  |                 ]; | ||||||
|  |                 this.sf?.setValue('/certificatePhotoFrontWatermark', avatar); | ||||||
|                 this.detailData.certificatePhotoFront = args.file.response.data.fullFilePath |                 this.detailData.certificatePhotoFront = args.file.response.data.fullFilePath | ||||||
|                 this.checkCarCard(args.file.response.data.fullFilePath, 'front'); |                 this.checkCarCard(args.file.response.data.fullFilePath, 'front'); | ||||||
|               } else { |               } else { | ||||||
| @ -311,7 +352,7 @@ export class CarSettleCarauthComponent implements OnInit { | |||||||
|                 observer.complete(); |                 observer.complete(); | ||||||
|               }); |               }); | ||||||
|             }, |             }, | ||||||
|             previewFile: (file: NzUploadFile) => of(file.url), |             // previewFile: (file: NzUploadFile) => of(file.url), | ||||||
|           } |           } | ||||||
|         }, |         }, | ||||||
|         tipsB: { |         tipsB: { | ||||||
| @ -326,7 +367,7 @@ export class CarSettleCarauthComponent implements OnInit { | |||||||
|           type: 'string', |           type: 'string', | ||||||
|           title: '行驶证副页照片', |           title: '行驶证副页照片', | ||||||
|           ui: { |           ui: { | ||||||
|             action: apiConf.fileUpload, |             action: apiConf.waterFileUpload, | ||||||
|             accept: 'image/png,image/jpeg,image/jpg,image/gif', |             accept: 'image/png,image/jpeg,image/jpg,image/gif', | ||||||
|             limit: 1, |             limit: 1, | ||||||
|             limitFileCount: 1, |             limitFileCount: 1, | ||||||
| @ -342,6 +383,18 @@ export class CarSettleCarauthComponent implements OnInit { | |||||||
|             listType: 'picture-card', |             listType: 'picture-card', | ||||||
|             change: (args: any) => { |             change: (args: any) => { | ||||||
|               if (args.type === 'success') { |               if (args.type === 'success') { | ||||||
|  |                 const avatar = [ | ||||||
|  |                   { | ||||||
|  |                     uid: -1, | ||||||
|  |                     name: 'LOGO', | ||||||
|  |                     status: 'done', | ||||||
|  |                     url: args.file.response.data.fullFileWatermarkPath, | ||||||
|  |                     response: { | ||||||
|  |                       url: args.file.response.data.fullFileWatermarkPath, | ||||||
|  |                     }, | ||||||
|  |                   }, | ||||||
|  |                 ]; | ||||||
|  |                 this.sf?.setValue('/certificatePhotoBackWatermark', avatar); | ||||||
|                 this.detailData.certificatePhotoBack = args.file.response.data.fullFilePath |                 this.detailData.certificatePhotoBack = args.file.response.data.fullFilePath | ||||||
|                 this.checkCarCard(args.file.response.data.fullFilePath, 'back'); |                 this.checkCarCard(args.file.response.data.fullFilePath, 'back'); | ||||||
|               } else { |               } else { | ||||||
| @ -360,7 +413,7 @@ export class CarSettleCarauthComponent implements OnInit { | |||||||
|                 observer.complete(); |                 observer.complete(); | ||||||
|               }); |               }); | ||||||
|             }, |             }, | ||||||
|             previewFile: (file: NzUploadFile) => of(file.url), |             // previewFile: (file: NzUploadFile) => of(file.url), | ||||||
|           } |           } | ||||||
|         }, |         }, | ||||||
|         driverLicenseRegisterTime: { |         driverLicenseRegisterTime: { | ||||||
| @ -444,7 +497,7 @@ export class CarSettleCarauthComponent implements OnInit { | |||||||
|           type: 'string', |           type: 'string', | ||||||
|           title: '道运证照片', |           title: '道运证照片', | ||||||
|           ui: { |           ui: { | ||||||
|             action: apiConf.fileUpload, |             action: apiConf.waterFileUpload, | ||||||
|             accept: 'image/png,image/jpeg,image/jpg,image/gif', |             accept: 'image/png,image/jpeg,image/jpg,image/gif', | ||||||
|             limit: 1, |             limit: 1, | ||||||
|             limitFileCount: 1, |             limitFileCount: 1, | ||||||
| @ -460,6 +513,18 @@ export class CarSettleCarauthComponent implements OnInit { | |||||||
|             listType: 'picture-card', |             listType: 'picture-card', | ||||||
|             change: (args: any) => { |             change: (args: any) => { | ||||||
|               if (args.type === 'success') { |               if (args.type === 'success') { | ||||||
|  |                 const avatar = [ | ||||||
|  |                   { | ||||||
|  |                     uid: -1, | ||||||
|  |                     name: 'LOGO', | ||||||
|  |                     status: 'done', | ||||||
|  |                     url: args.file.response.data.fullFileWatermarkPath, | ||||||
|  |                     response: { | ||||||
|  |                       url: args.file.response.data.fullFileWatermarkPath, | ||||||
|  |                     }, | ||||||
|  |                   }, | ||||||
|  |                 ]; | ||||||
|  |                 this.sf?.setValue('/roadTransportPhotoWatermark', avatar); | ||||||
|                 this.detailData.roadTransportPhoto = args.file.response.data.fullFilePath |                 this.detailData.roadTransportPhoto = args.file.response.data.fullFilePath | ||||||
|                 this.checkTransCard(args.file.response.data.fullFilePath); |                 this.checkTransCard(args.file.response.data.fullFilePath); | ||||||
|               } else { |               } else { | ||||||
| @ -478,7 +543,7 @@ export class CarSettleCarauthComponent implements OnInit { | |||||||
|                 observer.complete(); |                 observer.complete(); | ||||||
|               }); |               }); | ||||||
|             }, |             }, | ||||||
|             previewFile: (file: NzUploadFile) => of(file.url), |             // previewFile: (file: NzUploadFile) => of(file.url), | ||||||
|           } |           } | ||||||
|         }, |         }, | ||||||
|         roadImg: { |         roadImg: { | ||||||
|  | |||||||
| @ -247,7 +247,7 @@ | |||||||
|   </div> |   </div> | ||||||
| </nz-card> | </nz-card> | ||||||
|  |  | ||||||
| <nz-modal [(nzVisible)]="isVisible"   [nzFooter]="nzModalFooter" [nzTitle]="modalTitle"  (nzOnOk)="handleOK()" (nzOnCancel)="handleCancel()"> | <nz-modal [(nzVisible)]="isVisible"  nzWidth="1000px"   [nzFooter]="nzModalFooter" [nzTitle]="modalTitle"  (nzOnOk)="handleOK()" (nzOnCancel)="handleCancel()"> | ||||||
|   <ng-container *nzModalContent> |   <ng-container *nzModalContent> | ||||||
|     <div *ngIf="!modalcontent">暂无附件信息</div> |     <div *ngIf="!modalcontent">暂无附件信息</div> | ||||||
|     <div [innerHTML]="modalcontent"></div> |     <div [innerHTML]="modalcontent"></div> | ||||||
|  | |||||||
| @ -31,7 +31,7 @@ | |||||||
|       </div> |       </div> | ||||||
|       <div nz-col [nzSpan]="_$expand ? 24 : 6" class="text-right"> |       <div nz-col [nzSpan]="_$expand ? 24 : 6" class="text-right"> | ||||||
|         <button nz-button nzType="primary" [nzLoading]="false" (click)="search()"  acl  [acl-ability]="['WAYBILL-BULK-search']">查询</button> |         <button nz-button nzType="primary" [nzLoading]="false" (click)="search()"  acl  [acl-ability]="['WAYBILL-BULK-search']">查询</button> | ||||||
|         <button nz-button nzType="primary" [disabled]="false" acl  [acl-ability]="['WAYBILL-BULK-export']">导出</button> |         <button nz-button nzType="primary" [disabled]="false" acl  [acl-ability]="['WAYBILL-BULK-export']" (click)="exprot()">导出</button> | ||||||
|         <button nz-button [disabled]="false" (click)="resetSF()">重置</button> |         <button nz-button [disabled]="false" (click)="resetSF()">重置</button> | ||||||
|         <button nz-button nzType="link" (click)="expandToggle()"> |         <button nz-button nzType="link" (click)="expandToggle()"> | ||||||
|           {{ !_$expand ? '展开' : '收起' }} |           {{ !_$expand ? '展开' : '收起' }} | ||||||
|  | |||||||
| @ -372,6 +372,8 @@ export class WaybillManagementBulkComponent implements OnInit { | |||||||
|     console.log(e); |     console.log(e); | ||||||
|     if (e >= 1) { |     if (e >= 1) { | ||||||
|       this.resourceStatus = e + 1; |       this.resourceStatus = e + 1; | ||||||
|  |     } else { | ||||||
|  |       this.resourceStatus = 0 | ||||||
|     } |     } | ||||||
|     this.initST(); |     this.initST(); | ||||||
|     setTimeout(() => { |     setTimeout(() => { | ||||||
| @ -473,4 +475,12 @@ export class WaybillManagementBulkComponent implements OnInit { | |||||||
|       this.getGoodsSourceStatistical() |       this.getGoodsSourceStatistical() | ||||||
|     }); |     }); | ||||||
|   } |   } | ||||||
|  |      // 导出 | ||||||
|  |      exprot() { | ||||||
|  |       this.service.request(this.service.$api_asyncExportBulkList, this.reqParams).subscribe((res: any) => { | ||||||
|  |         if (res) { | ||||||
|  |           this.service.msgSrv.success('导出成功,请去下载中心下载!'); | ||||||
|  |         } | ||||||
|  |       }); | ||||||
|  |     } | ||||||
| } | } | ||||||
|  | |||||||
| @ -1,7 +1,7 @@ | |||||||
| <!-- | <!-- | ||||||
|  * @Author: your name |  * @Author: your name | ||||||
|  * @Date: 2021-12-03 15:31:52 |  * @Date: 2021-12-03 15:31:52 | ||||||
|  * @LastEditTime : 2022-03-24 13:49:56 |  * @LastEditTime : 2022-03-29 11:10:08 | ||||||
|  * @LastEditors  : Shiming |  * @LastEditors  : Shiming | ||||||
|  * @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE |  * @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 |  * @FilePath     : \\tms-obc-web\\src\\app\\routes\\waybill-management\\components\\vehicle-detail\\vehicle-detail.component.html | ||||||
| @ -227,7 +227,7 @@ | |||||||
|   </div> |   </div> | ||||||
| </nz-card> | </nz-card> | ||||||
|  |  | ||||||
| <nz-modal [(nzVisible)]="isVisible"   [nzFooter]="nzModalFooter" [nzTitle]="modalTitle"  (nzOnOk)="handleOK()" (nzOnCancel)="handleCancel()"> | <nz-modal [(nzVisible)]="isVisible"  nzWidth="1000px"  [nzFooter]="nzModalFooter" [nzTitle]="modalTitle"  (nzOnOk)="handleOK()" (nzOnCancel)="handleCancel()"> | ||||||
|   <ng-container *nzModalContent> |   <ng-container *nzModalContent> | ||||||
|     <div *ngIf="!modalcontent">暂无附件信息</div> |     <div *ngIf="!modalcontent">暂无附件信息</div> | ||||||
|     <div [innerHTML]="modalcontent"></div> |     <div [innerHTML]="modalcontent"></div> | ||||||
|  | |||||||
| @ -1,7 +1,7 @@ | |||||||
| <!-- | <!-- | ||||||
|  * @Author: your name |  * @Author: your name | ||||||
|  * @Date: 2021-12-03 11:10:14 |  * @Date: 2021-12-03 11:10:14 | ||||||
|  * @LastEditTime : 2022-03-24 17:32:49 |  * @LastEditTime : 2022-03-28 11:15:15 | ||||||
|  * @LastEditors  : Shiming |  * @LastEditors  : Shiming | ||||||
|  * @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE |  * @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\\vehicle.component.html |  * @FilePath     : \\tms-obc-web\\src\\app\\routes\\waybill-management\\components\\vehicle\\vehicle.component.html | ||||||
| @ -31,7 +31,7 @@ | |||||||
|       </div> |       </div> | ||||||
|       <div nz-col [nzSpan]="_$expand ? 24 : 6" [class.expend-options]="_$expand" class="text-right"> |       <div nz-col [nzSpan]="_$expand ? 24 : 6" [class.expend-options]="_$expand" class="text-right"> | ||||||
|         <button nz-button nzType="primary" [nzLoading]="false" (click)="search()"  acl  [acl-ability]="['WAYBILL-VEHICLE-search']">查询</button> |         <button nz-button nzType="primary" [nzLoading]="false" (click)="search()"  acl  [acl-ability]="['WAYBILL-VEHICLE-search']">查询</button> | ||||||
|         <button nz-button nzType="primary" [disabled]="false"  acl  [acl-ability]="['WAYBILL-VEHICLE-export']">导出</button> |         <button nz-button nzType="primary" [disabled]="false"  acl  [acl-ability]="['WAYBILL-VEHICLE-export']" (click)="exprot()">导出</button> | ||||||
|         <button nz-button [disabled]="false" (click)="resetSF()">重置</button> |         <button nz-button [disabled]="false" (click)="resetSF()">重置</button> | ||||||
|         <button nz-button nzType="link" (click)="expandToggle()"> |         <button nz-button nzType="link" (click)="expandToggle()"> | ||||||
|           {{ !_$expand ? '展开' : '收起' }} |           {{ !_$expand ? '展开' : '收起' }} | ||||||
|  | |||||||
| @ -35,10 +35,7 @@ export class WaybillManagementVehicleComponent implements OnInit { | |||||||
|     compolatelQuantity: 0, |     compolatelQuantity: 0, | ||||||
|     deltQuantity: 0 |     deltQuantity: 0 | ||||||
|   }; |   }; | ||||||
|   constructor( |   constructor(public service: WaybillManagementServe, private modal: NzModalService, public shipperservice: ShipperBaseService) {} | ||||||
|     public service: WaybillManagementServe, |  | ||||||
|     private modal: NzModalService, |  | ||||||
|     public shipperservice: ShipperBaseService) { } |  | ||||||
|  |  | ||||||
|   /** |   /** | ||||||
|    * 查询参数 |    * 查询参数 | ||||||
| @ -55,8 +52,8 @@ export class WaybillManagementVehicleComponent implements OnInit { | |||||||
|       ...params, |       ...params, | ||||||
|       createTime: { |       createTime: { | ||||||
|         start: this.sf?.value?.createTime?.[0] || '', |         start: this.sf?.value?.createTime?.[0] || '', | ||||||
|         end: this.sf?.value?.createTime?.[1] || '', |         end: this.sf?.value?.createTime?.[1] || '' | ||||||
|       }, |       } | ||||||
|     }; |     }; | ||||||
|   } |   } | ||||||
|   get selectedRows() { |   get selectedRows() { | ||||||
| @ -103,11 +100,11 @@ export class WaybillManagementVehicleComponent implements OnInit { | |||||||
|             searchLoadingText: '搜索中...', |             searchLoadingText: '搜索中...', | ||||||
|             allowClear: true, |             allowClear: true, | ||||||
|             onSearch: (q: any) => { |             onSearch: (q: any) => { | ||||||
|               let str =q.replace(/^\s+|\s+$/g,""); |               let str = q.replace(/^\s+|\s+$/g, ''); | ||||||
|               if (str) { |               if (str) { | ||||||
|                 return this.service |                 return this.service | ||||||
|                   .request(this.service.$api_enterpriceList, { enterpriseName: str}) |                   .request(this.service.$api_enterpriceList, { enterpriseName: str }) | ||||||
|                   .pipe(map((res: any) => (res as any[]).map((i) => ({ label: i.enterpriseName, value: i.id } as SFSchemaEnum)))) |                   .pipe(map((res: any) => (res as any[]).map(i => ({ label: i.enterpriseName, value: i.id } as SFSchemaEnum)))) | ||||||
|                   .toPromise(); |                   .toPromise(); | ||||||
|               } else { |               } else { | ||||||
|                 return of([]); |                 return of([]); | ||||||
| @ -116,7 +113,7 @@ export class WaybillManagementVehicleComponent implements OnInit { | |||||||
|             change: (q: any) => { |             change: (q: any) => { | ||||||
|               this.getRegionCode(q); |               this.getRegionCode(q); | ||||||
|             } |             } | ||||||
|           } as SFSelectWidgetSchema, |           } as SFSelectWidgetSchema | ||||||
|         }, |         }, | ||||||
|         enterpriseProjectId: { |         enterpriseProjectId: { | ||||||
|           type: 'string', |           type: 'string', | ||||||
| @ -126,7 +123,7 @@ export class WaybillManagementVehicleComponent implements OnInit { | |||||||
|             placeholder: '请先选择货主', |             placeholder: '请先选择货主', | ||||||
|             visibleIf: { |             visibleIf: { | ||||||
|               _$expand: (value: boolean) => value |               _$expand: (value: boolean) => value | ||||||
|             }, |             } | ||||||
|           } as SFSelectWidgetSchema |           } as SFSelectWidgetSchema | ||||||
|         }, |         }, | ||||||
|         loadingPlace: { |         loadingPlace: { | ||||||
| @ -171,8 +168,8 @@ export class WaybillManagementVehicleComponent implements OnInit { | |||||||
|           type: 'string', |           type: 'string', | ||||||
|           ui: { |           ui: { | ||||||
|             visibleIf: { |             visibleIf: { | ||||||
|               _$expand: (value: boolean) => value, |               _$expand: (value: boolean) => value | ||||||
|             }, |             } | ||||||
|           } |           } | ||||||
|         }, |         }, | ||||||
|         paymentstatus: { |         paymentstatus: { | ||||||
| @ -242,7 +239,7 @@ export class WaybillManagementVehicleComponent implements OnInit { | |||||||
|               _$expand: (value: boolean) => value |               _$expand: (value: boolean) => value | ||||||
|             } |             } | ||||||
|           } as SFDateWidgetSchema |           } as SFDateWidgetSchema | ||||||
|         }, |         } | ||||||
|       }, |       }, | ||||||
|       type: 'object' |       type: 'object' | ||||||
|     }; |     }; | ||||||
| @ -328,7 +325,7 @@ export class WaybillManagementVehicleComponent implements OnInit { | |||||||
|         title: '收款人', |         title: '收款人', | ||||||
|         className: 'text-left', |         className: 'text-left', | ||||||
|         width: '200px', |         width: '200px', | ||||||
|         render: 'payeeName', |         render: 'payeeName' | ||||||
|       }, |       }, | ||||||
|       { |       { | ||||||
|         title: '装卸货时间', |         title: '装卸货时间', | ||||||
| @ -352,13 +349,13 @@ export class WaybillManagementVehicleComponent implements OnInit { | |||||||
|             text: '确认发车', |             text: '确认发车', | ||||||
|             click: _record => this.sureDepart(_record), |             click: _record => this.sureDepart(_record), | ||||||
|             iif: item => item.wayBillStatus == '2', |             iif: item => item.wayBillStatus == '2', | ||||||
|             acl: { ability: ['WAYBILL-VEHICLE-wholeStartCarInfo'] }, |             acl: { ability: ['WAYBILL-VEHICLE-wholeStartCarInfo'] } | ||||||
|           }, |           }, | ||||||
|           { |           { | ||||||
|             text: '确认到车', |             text: '确认到车', | ||||||
|             click: _record => this.sureArrive(_record), |             click: _record => this.sureArrive(_record), | ||||||
|             iif: item => item.wayBillStatus == '3', |             iif: item => item.wayBillStatus == '3', | ||||||
|             acl: { ability: ['WAYBILL-VEHICLE-wholeUnloadCarInfo'] }, |             acl: { ability: ['WAYBILL-VEHICLE-wholeUnloadCarInfo'] } | ||||||
|           } |           } | ||||||
|         ] |         ] | ||||||
|       } |       } | ||||||
| @ -389,7 +386,7 @@ export class WaybillManagementVehicleComponent implements OnInit { | |||||||
|   } |   } | ||||||
|   search() { |   search() { | ||||||
|     this.st?.load(1); |     this.st?.load(1); | ||||||
|     this.getGoodsSourceStatistical() |     this.getGoodsSourceStatistical(); | ||||||
|   } |   } | ||||||
|   selectChange(e: number) { |   selectChange(e: number) { | ||||||
|     console.log(e); |     console.log(e); | ||||||
| @ -402,7 +399,7 @@ export class WaybillManagementVehicleComponent implements OnInit { | |||||||
|   /** |   /** | ||||||
|    * 导入货源 |    * 导入货源 | ||||||
|    */ |    */ | ||||||
|   importGoodsSource() { } |   importGoodsSource() {} | ||||||
|   /** |   /** | ||||||
|    *查看评价 |    *查看评价 | ||||||
|    */ |    */ | ||||||
| @ -421,7 +418,7 @@ export class WaybillManagementVehicleComponent implements OnInit { | |||||||
|       deltQuantity: 0 |       deltQuantity: 0 | ||||||
|     }; |     }; | ||||||
|     const params: any = Object.assign({}, this.reqParams || {}); |     const params: any = Object.assign({}, this.reqParams || {}); | ||||||
|     delete params.wayBillStatus |     delete params.wayBillStatus; | ||||||
|     this.service.request(this.service.$api_get_getWholeStatistics, params).subscribe(res => { |     this.service.request(this.service.$api_get_getWholeStatistics, params).subscribe(res => { | ||||||
|       if (res) { |       if (res) { | ||||||
|         let totalCount = 0; |         let totalCount = 0; | ||||||
| @ -446,9 +443,9 @@ export class WaybillManagementVehicleComponent implements OnInit { | |||||||
|               this.tabs.deltQuantity = ele?.count; |               this.tabs.deltQuantity = ele?.count; | ||||||
|               break; |               break; | ||||||
|           } |           } | ||||||
|           totalCount += ele.count |           totalCount += ele.count; | ||||||
|         }); |         }); | ||||||
|         this.tabs.totalQuantity = totalCount |         this.tabs.totalQuantity = totalCount; | ||||||
|       } |       } | ||||||
|     }); |     }); | ||||||
|   } |   } | ||||||
| @ -467,7 +464,7 @@ export class WaybillManagementVehicleComponent implements OnInit { | |||||||
|     }); |     }); | ||||||
|     modalRef.afterClose.subscribe((result: any) => { |     modalRef.afterClose.subscribe((result: any) => { | ||||||
|       this.st.load(1); |       this.st.load(1); | ||||||
|       this.getGoodsSourceStatistical() |       this.getGoodsSourceStatistical(); | ||||||
|     }); |     }); | ||||||
|   } |   } | ||||||
|   // 确认到车 |   // 确认到车 | ||||||
| @ -484,7 +481,15 @@ export class WaybillManagementVehicleComponent implements OnInit { | |||||||
|     }); |     }); | ||||||
|     modalRef.afterClose.subscribe((result: any) => { |     modalRef.afterClose.subscribe((result: any) => { | ||||||
|       this.st.load(1); |       this.st.load(1); | ||||||
|       this.getGoodsSourceStatistical() |       this.getGoodsSourceStatistical(); | ||||||
|  |     }); | ||||||
|  |   } | ||||||
|  |   // 导出 | ||||||
|  |   exprot() { | ||||||
|  |     this.service.request(this.service.$api_asyncExportWholeList, this.reqParams).subscribe((res: any) => { | ||||||
|  |       if (res) { | ||||||
|  |         this.service.msgSrv.success('导出成功,请去下载中心下载!'); | ||||||
|  |       } | ||||||
|     }); |     }); | ||||||
|   } |   } | ||||||
| } | } | ||||||
|  | |||||||
| @ -2,7 +2,7 @@ import { WaybillManagementBulkComponent } from './../components/bulk/bulk.compon | |||||||
| /* | /* | ||||||
|  * @Author: your name |  * @Author: your name | ||||||
|  * @Date: 2021-12-07 14:52:29 |  * @Date: 2021-12-07 14:52:29 | ||||||
|  * @LastEditTime : 2022-03-24 15:17:57 |  * @LastEditTime : 2022-03-28 11:13:50 | ||||||
|  * @LastEditors  : Shiming |  * @LastEditors  : Shiming | ||||||
|  * @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE |  * @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE | ||||||
|  * @FilePath     : \\tms-obc-web\\src\\app\\routes\\waybill-management\\services\\waybill-management.service.ts |  * @FilePath     : \\tms-obc-web\\src\\app\\routes\\waybill-management\\services\\waybill-management.service.ts | ||||||
| @ -61,6 +61,11 @@ export class WaybillManagementServe extends BaseService { | |||||||
|  $api_get_getAppDriverPosition = `/api/sdc/wayBillOperate/getAppDriverPosition`; |  $api_get_getAppDriverPosition = `/api/sdc/wayBillOperate/getAppDriverPosition`; | ||||||
|   // 获取货主企业列表 |   // 获取货主企业列表 | ||||||
|   public $api_enterpriceList = '/api/mdc/cuc/enterpriseInfo/operate/enterpriceList'; |   public $api_enterpriceList = '/api/mdc/cuc/enterpriseInfo/operate/enterpriceList'; | ||||||
|  |  | ||||||
|  |   // 异步导出运营后台大宗运单列表 | ||||||
|  |   public $api_asyncExportBulkList = '/api/sdc/wayBillOperate/asyncExportBulkList'; | ||||||
|  |   // 异步导出运营后台整车运单列表 | ||||||
|  |   public $api_asyncExportWholeList = '/api/sdc/wayBillOperate/asyncExportWholeList'; | ||||||
|   constructor(public injector: Injector) { |   constructor(public injector: Injector) { | ||||||
|     super(injector); |     super(injector); | ||||||
|   } |   } | ||||||
|  | |||||||
| @ -29,7 +29,7 @@ export class DictSelectComponent implements OnInit, ControlValueAccessor { | |||||||
|   @Input() containsAllLabel = true; // 是否包含全部这一选项 |   @Input() containsAllLabel = true; // 是否包含全部这一选项 | ||||||
|   @Input() mode: 'multiple' | 'tags' | 'default' = 'default'; |   @Input() mode: 'multiple' | 'tags' | 'default' = 'default'; | ||||||
|  |  | ||||||
|   constructor(public service: DictSelectService, public cdr: ChangeDetectorRef) {} |   constructor(public service: DictSelectService, public cdr: ChangeDetectorRef) { } | ||||||
|  |  | ||||||
|   writeValue(geo: string): void { |   writeValue(geo: string): void { | ||||||
|     if (geo == null) { |     if (geo == null) { | ||||||
| @ -56,7 +56,6 @@ export class DictSelectComponent implements OnInit, ControlValueAccessor { | |||||||
|         if (this.dictList.length > 0 && this.containsAllLabel !== false) { |         if (this.dictList.length > 0 && this.containsAllLabel !== false) { | ||||||
|           const obj = { label: '全部', value: '' }; |           const obj = { label: '全部', value: '' }; | ||||||
|           this.dictList.unshift(obj); |           this.dictList.unshift(obj); | ||||||
|           console.log(this.dictList); |  | ||||||
|         } |         } | ||||||
|         this.cdr.markForCheck(); |         this.cdr.markForCheck(); | ||||||
|       } |       } | ||||||
|  | |||||||
| @ -4,7 +4,7 @@ | |||||||
|  * @Author       : Shiming |  * @Author       : Shiming | ||||||
|  * @Date         : 2022-01-25 20:18:52 |  * @Date         : 2022-01-25 20:18:52 | ||||||
|  * @LastEditors  : Shiming |  * @LastEditors  : Shiming | ||||||
|  * @LastEditTime : 2022-03-21 14:14:06 |  * @LastEditTime : 2022-03-29 10:34:14 | ||||||
|  * @FilePath     : \\tms-obc-web\\src\\app\\shared\\components\\rebate-table\\rebate-table.component.html |  * @FilePath     : \\tms-obc-web\\src\\app\\shared\\components\\rebate-table\\rebate-table.component.html | ||||||
|  * Copyright (C) 2022 huzhenhong. All rights reserved. |  * Copyright (C) 2022 huzhenhong. All rights reserved. | ||||||
| --> | --> | ||||||
| @ -37,16 +37,15 @@ | |||||||
|                     </td> |                     </td> | ||||||
|                     <td nzWidth="220px" nzAlign="center" > |                     <td nzWidth="220px" nzAlign="center" > | ||||||
|                         <div > |                         <div > | ||||||
|                             <nz-select ngModel="lucy"> |                             <nz-select style="min-width: 150px;" [(ngModel)]="item.gradeConfigId" > | ||||||
|                                 <nz-option nzValue="jack" nzLabel="Jack154654564654"></nz-option> |                                 <nz-option *ngFor="let item of grage" [nzValue]="item.id" [nzLabel]="item.gradeName"></nz-option> | ||||||
|                                 <nz-option nzValue="lucy" nzLabel="Lucy"></nz-option> |  | ||||||
|                             </nz-select> |                             </nz-select> | ||||||
|                         </div> |                         </div> | ||||||
|                     </td> |                     </td> | ||||||
|                     <td nzWidth="220px" nzAlign="center" > |                     <td nzWidth="220px" nzAlign="center" > | ||||||
|                         <div style="    margin-left: 26%"> |                         <div style="    margin-left: 26%"> | ||||||
|                             <nz-input-group  nzPrefix="="> |                             <nz-input-group  nzPrefix="="> | ||||||
|                             <nz-input-number [(ngModel)]="item.baserebateRate" [nzMin]="0" nzSize="small"  |                             <nz-input-number [(ngModel)]="item.startAmount" [nzMin]="0" nzSize="small"  (ngModelChange)="changeendAmount($event,i)" | ||||||
|                                > |                                > | ||||||
|                             </nz-input-number> |                             </nz-input-number> | ||||||
|                         </nz-input-group> |                         </nz-input-group> | ||||||
| @ -56,7 +55,7 @@ | |||||||
|                     <td nzWidth="220px" nzAlign="center" > |                     <td nzWidth="220px" nzAlign="center" > | ||||||
|                         <div style="    margin-left: 26%"> |                         <div style="    margin-left: 26%"> | ||||||
|                             <nz-input-group  nzPrefix="<"> |                             <nz-input-group  nzPrefix="<"> | ||||||
|                             <nz-input-number [(ngModel)]="item.blanketrebateRate" [nzMin]="0" nzSize="small" > |                             <nz-input-number [(ngModel)]="item.endAmount" [nzMin]="0" nzSize="small" > | ||||||
|                             </nz-input-number> |                             </nz-input-number> | ||||||
|                         </nz-input-group> |                         </nz-input-group> | ||||||
|                         </div> |                         </div> | ||||||
| @ -64,7 +63,7 @@ | |||||||
|                     <td nzWidth="220px" nzAlign="center" > |                     <td nzWidth="220px" nzAlign="center" > | ||||||
|                         <div style="    margin-left: 26%"> |                         <div style="    margin-left: 26%"> | ||||||
|                             <nz-input-group [nzAddOnAfter]="addOnAfterTemplate2"> |                             <nz-input-group [nzAddOnAfter]="addOnAfterTemplate2"> | ||||||
|                             <nz-input-number [(ngModel)]="item.baserebateRate" [nzMin]="0" nzSize="small"  |                             <nz-input-number [(ngModel)]="item.managementFeeRatio" [nzMin]="0" nzSize="small"  | ||||||
|                                > |                                > | ||||||
|                             </nz-input-number> |                             </nz-input-number> | ||||||
|                         </nz-input-group> |                         </nz-input-group> | ||||||
|  | |||||||
| @ -1,87 +1,90 @@ | |||||||
| import { debounceTime } from 'rxjs/operators'; | import { debounceTime } from 'rxjs/operators'; | ||||||
| import { Subject } from 'rxjs'; | import { Subject } from 'rxjs'; | ||||||
| import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnInit, ViewChild } from '@angular/core'; | import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, OnInit, Output, ViewChild } from '@angular/core'; | ||||||
| import { BaseService } from '@shared'; | import { BaseService } from '@shared'; | ||||||
| import { SFComponent, SFSchema, SFUISchema } from '@delon/form'; | import { SFComponent, SFSchema, SFUISchema } from '@delon/form'; | ||||||
|  | import { EventEmitter} from '@angular/core' | ||||||
| @Component({ | @Component({ | ||||||
|   selector: 'app-rebate-table', |   selector: 'app-rebate-table', | ||||||
|   templateUrl: './rebate-table.component.html', |   templateUrl: './rebate-table.component.html', | ||||||
|   styleUrls: ['./rebate-table.component.less'] |   styleUrls: ['./rebate-table.component.less'] | ||||||
| }) | }) | ||||||
| export class RebateTableComponent implements OnInit { | export class RebateTableComponent implements OnInit { | ||||||
|   data: any[] = []; |   @Input() data: any =[]; | ||||||
|  |   @Output() | ||||||
|  |   private dataChange: EventEmitter<any> = new EventEmitter(); | ||||||
|  |   emit() { | ||||||
|  |     this.dataChange.emit(this.data) | ||||||
|  |   } | ||||||
|   headers: any[] = []; |   headers: any[] = []; | ||||||
|  |   gradeConfigId: string =''; | ||||||
|  |   grage: any[] = []; | ||||||
|   formatterDollar = (value: number): string => `${value}`; |   formatterDollar = (value: number): string => `${value}`; | ||||||
|   changeSub = new Subject<string>(); |   changeSub = new Subject<string>(); | ||||||
|   constructor(public service: BaseService, private cdr: ChangeDetectorRef) {} |   constructor(public service: BaseService, private cdr: ChangeDetectorRef) {} | ||||||
|  |  | ||||||
|   ngOnInit(): void { |   ngOnInit(): void { | ||||||
|  |    this.data = [ | ||||||
|  |       { | ||||||
|  |         gradeConfigId: '', | ||||||
|  |         startAmount: 0, | ||||||
|  |         endAmount: 0, | ||||||
|  |         managementFeeRatio: 0, | ||||||
|  |       } | ||||||
|  |     ]; | ||||||
|     this.loadData(); |     this.loadData(); | ||||||
|     this.changeEndKmAction(); |     this.changeendAmountAction(); | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   loadData() { |   loadData() { | ||||||
|     this.service.request('/api/mdc/cuc/insuranceConfig/list').subscribe(res => { |     this.service.request('/api/mdc/partnerGradeConfig/listPartnerGradeConfig').subscribe(res => { | ||||||
|       if (res) { |       if (res) { | ||||||
|         console.log(res); |         console.log(res); | ||||||
|         this.data = res; |         this.grage = res; | ||||||
|         this.cdr.detectChanges(); |         this.cdr.detectChanges(); | ||||||
|       } |       } | ||||||
|     }); |     }); | ||||||
|     this.service.request('/api/mdc/pbc/sysConfigItem/findItemValueByItemKeys', [ |     // this.service.request('/api/mdc/pbc/sysConfigItem/findItemValueByItemKeys', [ | ||||||
|       "rebate.config.minrebatePrice" |     //   "rebate.config.minrebatePrice" | ||||||
|      ]).subscribe(res => { |     //  ]).subscribe(res => { | ||||||
|       if (res) { |     //   if (res) { | ||||||
|         console.log(res); |     //     console.log(res); | ||||||
|       } |     //   } | ||||||
|     }); |     // }); | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   /** |  | ||||||
|    * 修改结束车长 |  | ||||||
|    * @param event 车长 |  | ||||||
|    * @param i 下标 |  | ||||||
|    */ |  | ||||||
|   changeEndLength(event: any, i: number) { |  | ||||||
|     if (event <= this.headers[i].startLength) { |  | ||||||
|       this.headers[i].endLength = this.headers[i].startLength + 1; |  | ||||||
|       this.changeNextStartLength(event, i + 1); |  | ||||||
|       return; |  | ||||||
|     } |  | ||||||
|     this.headers[i].endLength = event; |  | ||||||
|     this.changeNextStartLength(event, i + 1); |  | ||||||
|   } |  | ||||||
|  |  | ||||||
|   /** |   /** | ||||||
|    * 修改结束公里数 |    * 修改结束公里数 | ||||||
|    * @param event 车长 |    * @param event 车长 | ||||||
|    * @param i 下标 |    * @param i 下标 | ||||||
|    */ |    */ | ||||||
|   changeEndKm(event: any, i: number) { |   changeendAmount(event: any, i: number) { | ||||||
|     if (event) { |     if (event) { | ||||||
|       console.log(event); |       console.log(event); | ||||||
|  |  | ||||||
|       this.changeSub.next(`${event},${i}`); |       this.changeSub.next(`${event},${i}`); | ||||||
|     } |     } | ||||||
|   } |   } | ||||||
|   changeEndKmAction() { |   changeendAmountAction() { | ||||||
|     this.changeSub.pipe(debounceTime(500)).subscribe((res: string) => { |     this.changeSub.pipe(debounceTime(500)).subscribe((res: string) => { | ||||||
|       if (res) { |       if (res) { | ||||||
|         const paras = res.split(','); |         const paras = res.split(','); | ||||||
|         const num = Number(paras[0]); |         const num = Number(paras[0]); | ||||||
|         const i = Number(paras[1]); |         const i = Number(paras[1]); | ||||||
|  |  | ||||||
|         if (num <= this.data[i].startKm) { |         if (num <= this.data[i]?.startAmount) { | ||||||
|           this.data[i].endKm = null; |           console.log(this.data[i].endAmount); | ||||||
|  |           this.data[i].endAmount = null; | ||||||
|           setTimeout(() => { |           setTimeout(() => { | ||||||
|             this.data[i].endKm = this.data[i].startKm + 1 ; |             this.data[i].endAmount = this.data[i]?.startAmount + 1 ; | ||||||
|           }, 0); |           }, 0); | ||||||
|           this.changeNextStartKm(this.data[i].startKm + 1, i + 1); |           this.changeNextstartAmount(this.data[i]?.startAmount + 1, i + 1); | ||||||
|           return; |           return; | ||||||
|         } |         } | ||||||
|         this.data[i].endKm = num; |         this.data[i].endAmount = num; | ||||||
|         this.changeNextStartKm(num, i + 1); |         this.changeNextstartAmount(num, i + 1); | ||||||
|       } |       } | ||||||
|     }); |     }); | ||||||
|   } |   } | ||||||
| @ -90,14 +93,14 @@ export class RebateTableComponent implements OnInit { | |||||||
|     console.log(this.data); |     console.log(this.data); | ||||||
|  |  | ||||||
|     const tem = this.data[this.data?.length - 1]; |     const tem = this.data[this.data?.length - 1]; | ||||||
|     if (tem && tem.endKm) { |     if (tem) { | ||||||
|       this.data.push({ |       this.data.push({ | ||||||
|         endKm: '', |         gradeConfigId: '', | ||||||
|         startKm: tem.endKm |         startAmount: 0, | ||||||
|  |         endAmount: 0, | ||||||
|  |         managementFeeRatio: 0, | ||||||
|       }); |       }); | ||||||
|       this.data = [...this.data]; |       this.data = [...this.data]; | ||||||
|     } else { |  | ||||||
|       this.service.msgSrv.warning('请填写完整公里数'); |  | ||||||
|     } |     } | ||||||
|   } |   } | ||||||
|  |  | ||||||
| @ -125,32 +128,18 @@ export class RebateTableComponent implements OnInit { | |||||||
|     }); |     }); | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   /** |  | ||||||
|    * 遍历同步后置位车长 |  | ||||||
|    * @param event  车长 |  | ||||||
|    * @param i 下标 |  | ||||||
|    */ |  | ||||||
|   private changeNextStartLength(event: number, i: number) { |  | ||||||
|     if (this.headers[i]) { |  | ||||||
|       this.headers[i].startLength = event; |  | ||||||
|       if (this.headers[i].endLength <= event) { |  | ||||||
|         this.headers[i].endLength = this.headers[i].startLength + 0.5; |  | ||||||
|         this.changeNextStartLength(event + 0.5, i + 1); |  | ||||||
|       } |  | ||||||
|     } |  | ||||||
|   } |  | ||||||
|  |  | ||||||
|   /** |   /** | ||||||
|    * 遍历同步后置位公里数 |    * 遍历同步后置位公里数 | ||||||
|    * @param event  车长 |    * @param event  车长 | ||||||
|    * @param i 下标 |    * @param i 下标 | ||||||
|    */ |    */ | ||||||
|   private changeNextStartKm(event: number, i: number) { |   private changeNextstartAmount(event: number, i: number) { | ||||||
|     if (this.data[i]) { |     if (this.data[i]) { | ||||||
|       this.data[i].startKm = event; |       this.data[i].startAmount = event; | ||||||
|       if (this.data[i].endKm <= event) { |       if (this.data[i].endAmount <= event) { | ||||||
|         this.data[i].endKm = this.data[i].startKm + 1; |         this.data[i].endAmount = this.data[i].startAmount + 1; | ||||||
|         this.changeNextStartKm(event + 1, i + 1); |         this.changeNextstartAmount(event + 1, i + 1); | ||||||
|       } |       } | ||||||
|     } |     } | ||||||
|   } |   } | ||||||
|  | |||||||
| @ -297,7 +297,7 @@ export class ShipperBaseService extends BaseService { | |||||||
|       map(res => { |       map(res => { | ||||||
|         if (res) { |         if (res) { | ||||||
|           return res.map((m: any) => { |           return res.map((m: any) => { | ||||||
|             return { label: `${m.employeeVO?.empName}/${m.employeeVO?.mobile}`, value: m.id }; |             return { label: `${m.employeeVO?.empName}/${m.employeeVO?.mobile}`, value: m.userAppId }; | ||||||
|           }); |           }); | ||||||
|         } else { |         } else { | ||||||
|           return []; |           return []; | ||||||
|  | |||||||
| @ -642,7 +642,12 @@ | |||||||
|           "children": [{ |           "children": [{ | ||||||
|               "text": "数据报表", |               "text": "数据报表", | ||||||
|               "link": "/regulatory-data/dashboard" |               "link": "/regulatory-data/dashboard" | ||||||
|           }] |             }, | ||||||
|  |             { | ||||||
|  |               "text": "订单上报", | ||||||
|  |               "link": "/datatable/reporting/order" | ||||||
|  |             } | ||||||
|  |           ] | ||||||
|         } |         } | ||||||
|       ] |       ] | ||||||
|     }] |     }] | ||||||
|  | |||||||
		Reference in New Issue
	
	Block a user