Merge branch 'develop' of https://gitlab.eascs.com/tms-ui/tms-obc-web into develop
This commit is contained in:
		| @ -9,21 +9,24 @@ | ||||
| <nz-card> | ||||
|     <nz-row [nzGutter]="16"> | ||||
|         <nz-col [nzXl]="9" [nzLg]="8" [nzSm]="12"> | ||||
|             <nz-statistic nzValue="天津怡亚通物流科技有限公司(平安)" [nzTitle]="'张三(13812345678'" | ||||
|                 [nzValueStyle]="{'font-size':'16px','font-weight':'bold'}" class="bold"> | ||||
|             <nz-statistic [nzValue]="params?.ltdName+'('+(params?.bankType===1?'平安':'浦发')+')'" | ||||
|                 [nzTitle]="params.name+'('+params.phone+')'" [nzValueStyle]="{'font-size':'16px','font-weight':'bold'}" | ||||
|                 class="bold"> | ||||
|             </nz-statistic> | ||||
|         </nz-col> | ||||
|         <nz-col [nzXl]="5" [nzLg]="8" [nzSm]="12"> | ||||
|             <nz-statistic nzValue="100,000,000.00 元" [nzTitle]="'账户余额'" | ||||
|             <nz-statistic [nzValue]="(params?.availableBalance || 0)+'元' " [nzTitle]="'账户余额'" | ||||
|                 [nzValueStyle]="{'font-size':'16px',color:'red'}"> | ||||
|             </nz-statistic> | ||||
|         </nz-col> | ||||
|         <nz-col [nzXl]="5" [nzLg]="8" [nzSm]="12"> | ||||
|             <nz-statistic nzValue="100,000.00 元" [nzTitle]="'收入金额'" [nzValueStyle]="{'font-size':'16px',color:'red'}"> | ||||
|             <nz-statistic [nzValue]="(info?.incomeAmount || 0) +'元'" [nzTitle]="'收入金额'" | ||||
|                 [nzValueStyle]="{'font-size':'16px',color:'red'}"> | ||||
|             </nz-statistic> | ||||
|         </nz-col> | ||||
|         <nz-col [nzXl]="5" [nzLg]="8" [nzSm]="12"> | ||||
|             <nz-statistic nzValue="100,000.00 元" [nzTitle]="'支出金额'" [nzValueStyle]="{'font-size':'16px',color:'red'}"> | ||||
|             <nz-statistic [nzValue]="(info?.payAmount || 0) +'元'" [nzTitle]="'支出金额'" | ||||
|                 [nzValueStyle]="{'font-size':'16px',color:'red'}"> | ||||
|             </nz-statistic> | ||||
|         </nz-col> | ||||
|     </nz-row> | ||||
| @ -50,9 +53,9 @@ | ||||
| </nz-card> | ||||
|  | ||||
| <nz-card class="content-box" nzBordered> | ||||
|     <st #st [data]="service.$mock_url" [columns]="columns" | ||||
|     <st #st [data]="service.$api_get_shipper_or_driver_account_detail" [columns]="columns" | ||||
|         [req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, process: beforeReq }" | ||||
|         [res]="{ reName: { list: 'data.records', total: 'data.total' } }" | ||||
|         [page]="{ show: true, showSize: true, pageSizes: [10, 20, 30, 50, 100, 200, 300, 500, 1000] }" | ||||
|         [loading]="service.http.loading" [scroll]="{ x:'1200px',y: '300px' }"></st> | ||||
|         [loading]="service.http.loading" [scroll]="{ x:'1200px',y: '300px' }" (change)="stChange($event)"></st> | ||||
| </nz-card> | ||||
| @ -1,5 +1,5 @@ | ||||
| import { Component, OnInit, ViewChild } from '@angular/core'; | ||||
| import { Router } from '@angular/router'; | ||||
| import { ActivatedRoute, Router } from '@angular/router'; | ||||
| import { STComponent, STColumn, STChange, STRequestOptions } from '@delon/abc/st'; | ||||
| import { SFComponent, SFSchema, SFDateWidgetSchema } from '@delon/form'; | ||||
| import { NzModalService } from 'ng-zorro-antd/modal'; | ||||
| @ -19,17 +19,58 @@ export class DriverAccountDetailComponent implements OnInit { | ||||
|   searchSchema: SFSchema = this.initSF(); | ||||
|  | ||||
|   _$expand = false; | ||||
|   constructor(public service: FreightAccountService) {} | ||||
|  | ||||
|   ngOnInit(): void {} | ||||
|   info: any = {}; | ||||
|   params: any = {}; | ||||
|   constructor(public service: FreightAccountService, private route: ActivatedRoute) { | ||||
|     this.params = route.snapshot.queryParams; | ||||
|   } | ||||
|  | ||||
|   ngOnInit(): void { | ||||
|     this.loadInfo(); | ||||
|   } | ||||
|  | ||||
|   beforeReq = (requestOptions: STRequestOptions) => { | ||||
|     Object.assign(requestOptions.body, { | ||||
|       ltdid: this.params.ltdid, | ||||
|       projectId: this.params.projectId, | ||||
|       enterpriseId: this.params.enterpriseId, | ||||
|       roleId: this.params.roleId | ||||
|     }); | ||||
|     if (this.sf) { | ||||
|       Object.assign(requestOptions.body, { ...this.sf.value }); | ||||
|     } | ||||
|     return requestOptions; | ||||
|   }; | ||||
|  | ||||
|   loadInfo() { | ||||
|     console.log(1); | ||||
|      | ||||
|     this.service | ||||
|       .request(this.service.$api_get_driver_account_balance_detail, { | ||||
|         ...this.sf?.value, | ||||
|         ltdid: this.params.ltdid, | ||||
|         projectId: this.params.projectId, | ||||
|         enterpriseId: this.params.enterpriseId, | ||||
|         roleId: this.params.roleId, | ||||
|         pageIndex: this.st.pi, | ||||
|         pageSize: this.st.ps, | ||||
|         createTime: { | ||||
|           start: this.sf?.value?.createTime?.[0] || null, | ||||
|           end: this.sf?.value?.createTime?.[1] || null | ||||
|         } | ||||
|       }) | ||||
|       .subscribe(res => { | ||||
|         if (res) { | ||||
|           this.info = res; | ||||
|         } | ||||
|       }); | ||||
|   } | ||||
|  | ||||
|   stChange(e: STChange): void { | ||||
|     console.log(e); | ||||
|   } | ||||
|  | ||||
|   exportList() { | ||||
|     this.service.downloadFile(this.service.$mock_url, { ...this.sf.value, pageIndex: this.st.pi, pageSize: this.st.ps }); | ||||
|   } | ||||
| @ -67,9 +108,10 @@ export class DriverAccountDetailComponent implements OnInit { | ||||
|           title: '交易时间', | ||||
|           type: 'string', | ||||
|           ui: { | ||||
|             widget: 'date', | ||||
|             mode: 'range', | ||||
|             format: 'yyyy-MM-dd' | ||||
|             widget: 'sl-from-to-search', | ||||
|             format: 'yyyy-MM-dd', | ||||
|             placeholder: '请选择', | ||||
|             nzShowTime: true | ||||
|           } as SFDateWidgetSchema | ||||
|         }, | ||||
|         orderSn2: { | ||||
|  | ||||
| @ -1,4 +1,4 @@ | ||||
| <page-header-wrapper title="货主账户"> | ||||
| <page-header-wrapper title="司机账户"> | ||||
| </page-header-wrapper> | ||||
|  | ||||
| <nz-card class="search-box"> | ||||
| @ -22,7 +22,7 @@ | ||||
| </nz-card> | ||||
|  | ||||
| <nz-card class="content-box"> | ||||
|     <st #st [data]="service.$api_get_account_balance" [columns]="columns" | ||||
|     <st #st [data]="service.$api_get_driver_account_page" [columns]="columns" | ||||
|         [req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, process: beforeReq }" | ||||
|         [res]="{ reName: { list: 'data.records', total: 'data.total' } }" | ||||
|         [page]="{ show: true, showSize: true, pageSizes: [10, 20, 30, 50, 100, 200, 300, 500, 1000] }" | ||||
|  | ||||
| @ -61,17 +61,17 @@ export class DriverAccountComponent implements OnInit { | ||||
|             hidden: true | ||||
|           } | ||||
|         }, | ||||
|         tenantName: { | ||||
|         name: { | ||||
|           type: 'string', | ||||
|           title: '司机姓名', | ||||
|           ui: { placeholder: '请输入' } | ||||
|         }, | ||||
|         phone: { | ||||
|         idNo: { | ||||
|           type: 'string', | ||||
|           title: '证件号码', | ||||
|           ui: { placeholder: '请输入' } | ||||
|         }, | ||||
|         page: { | ||||
|         phone: { | ||||
|           type: 'string', | ||||
|           title: '手机号', | ||||
|           ui: { | ||||
| @ -126,9 +126,9 @@ export class DriverAccountComponent implements OnInit { | ||||
|           title: '创建时间', | ||||
|           type: 'string', | ||||
|           ui: { | ||||
|             widget: 'date', | ||||
|             mode: 'range', | ||||
|             widget: 'sl-from-to-search', | ||||
|             format: 'yyyy-MM-dd', | ||||
|             placeholder: '请选择', | ||||
|             visibleIf: { | ||||
|               expand: (value: boolean) => value | ||||
|             } | ||||
| @ -140,15 +140,15 @@ export class DriverAccountComponent implements OnInit { | ||||
|  | ||||
|   private initST(): STColumn[] { | ||||
|     return [ | ||||
|       { title: '司机姓名', index: 'tenantName' }, | ||||
|       { title: '证件号码', index: 'description' }, | ||||
|       { title: '手机号', index: 'description' }, | ||||
|       { title: '网络货运人', index: 'ltdid' }, | ||||
|       { title: '银行类型', index: 'description', type: 'enum', enum: { 1: '平安银行', 2: '浦发银行' } }, | ||||
|       { title: '司机姓名', index: 'name' }, | ||||
|       { title: '证件号码', index: 'idNo' }, | ||||
|       { title: '手机号', index: 'phone' }, | ||||
|       { title: '网络货运人', index: 'ltdName' }, | ||||
|       { title: '银行类型', index: 'bankType', type: 'enum', enum: { 1: '平安银行', 2: '浦发银行' } }, | ||||
|       { title: '虚拟账户', index: 'virtualAccount' }, | ||||
|       { title: '可用余额', index: 'availableBalance' }, | ||||
|       { title: '冻结余额', index: 'freezeBalance' }, | ||||
|       { title: '本月累计提现金额', index: 'description', width: 150 }, | ||||
|       { title: '本月累计提现金额', index: 'withdrawBalance', width: 150 }, | ||||
|       { title: '账户总余额', index: 'availableBalance' }, | ||||
|       { title: '创建时间', index: 'createTime', type: 'date', width: 150 }, | ||||
|       { | ||||
| @ -156,7 +156,20 @@ export class DriverAccountComponent implements OnInit { | ||||
|         buttons: [ | ||||
|           { | ||||
|             text: '查看明细', | ||||
|             click: item => this.router.navigate(['/financial-management/driver-account/detail/1']) | ||||
|             click: item => | ||||
|               this.router.navigate(['/financial-management/driver-account/detail/' + item.id], { | ||||
|                 queryParams: { | ||||
|                   name: item.name, | ||||
|                   phone: item.phone, | ||||
|                   ltdName: item.ltdName, | ||||
|                   bankType: item.bankType, | ||||
|                   projectId: item.projectId, | ||||
|                   availableBalance: item.availableBalance, | ||||
|                   enterpriseId: item.enterpriseId, | ||||
|                   roleId: item.roleId, | ||||
|                   ltdid: item.ltdid | ||||
|                 } | ||||
|               }) | ||||
|           } | ||||
|         ] | ||||
|       } | ||||
|  | ||||
| @ -9,17 +9,18 @@ | ||||
| <nz-card> | ||||
|     <nz-row [nzGutter]="16"> | ||||
|         <nz-col [nzXl]="9" [nzLg]="8" [nzSm]="12"> | ||||
|             <nz-statistic nzValue="天津怡亚通物流科技有限公司(浦发)" [nzTitle]="'茅台集团股份有限公司'" | ||||
|                 [nzValueStyle]="{'font-size':'16px','font-weight':'bold'}" class="bold"> | ||||
|             <nz-statistic [nzValue]="params.ltdName+'('+(params.bankType===1?'平安':'浦发')+')'" | ||||
|                 [nzTitle]="params.tenantName" [nzValueStyle]="{'font-size':'16px','font-weight':'bold'}" class="bold"> | ||||
|             </nz-statistic> | ||||
|         </nz-col> | ||||
|         <nz-col [nzXl]="5" [nzLg]="8" [nzSm]="12"> | ||||
|             <nz-statistic nzValue="100,000,000.00 元" [nzTitle]="'账户余额'" | ||||
|             <nz-statistic [nzValue]="params?.availableBalance+'元' " [nzTitle]="'账户余额'" | ||||
|                 [nzValueStyle]="{'font-size':'16px',color:'red'}"> | ||||
|             </nz-statistic> | ||||
|         </nz-col> | ||||
|         <nz-col [nzXl]="5" [nzLg]="8" [nzSm]="12"> | ||||
|             <nz-statistic  [nzValue]="(info?.incomeAmount || 0) +'元'" [nzTitle]="'收入金额'" [nzValueStyle]="{'font-size':'16px',color:'red'}"> | ||||
|             <nz-statistic [nzValue]="(info?.incomeAmount || 0) +'元'" [nzTitle]="'收入金额'" | ||||
|                 [nzValueStyle]="{'font-size':'16px',color:'red'}"> | ||||
|             </nz-statistic> | ||||
|         </nz-col> | ||||
|         <nz-col [nzXl]="5" [nzLg]="8" [nzSm]="12"> | ||||
| @ -38,7 +39,8 @@ | ||||
|                 [button]="'none'"></sf> | ||||
|         </div> | ||||
|         <div nz-col [nzXl]="_$expand ? 24 : 6" [nzLg]="24" [nzSm]="24" [nzXs]="24" class="text-right"> | ||||
|             <button nz-button nzType="primary" [nzLoading]="service.http.loading" (click)="st?.load(1)">查询</button> | ||||
|             <button nz-button nzType="primary" [nzLoading]="service.http.loading" | ||||
|                 (click)="st?.load(1);loadInfo();">查询</button> | ||||
|             <button nz-button (click)="resetSF()">重置</button> | ||||
|             <button nz-button (click)="exportList()"> 导出</button> | ||||
|             <button nz-button nzType="link" (click)="expandToggle()"> | ||||
| @ -50,9 +52,9 @@ | ||||
| </nz-card> | ||||
|  | ||||
| <nz-card class="content-box" nzBordered> | ||||
|     <st #st [data]="service.$api_get_balance_by_shipper" [columns]="columns" | ||||
|     <st #st [data]="service.$api_get_shipper_or_driver_account_detail" [columns]="columns" | ||||
|         [req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' },  process: beforeReq }" | ||||
|         [res]="{ reName: { list: 'data.records', total: 'data.total' } ,  process: afterReq }" | ||||
|         [res]="{ reName: { list: 'data.records', total: 'data.total' } }" | ||||
|         [page]="{ show: true, showSize: true, pageSizes: [10, 20, 30, 50, 100, 200, 300, 500, 1000] }" | ||||
|         [loading]="service.http.loading" [scroll]="{ x:'1200px',y: '300px' }"></st> | ||||
|         [loading]="service.http.loading" [scroll]="{ x:'1200px',y: '300px' }" (change)="stChange($event)"></st> | ||||
| </nz-card> | ||||
| @ -19,30 +19,55 @@ export class FreightAccountDetailComponent implements OnInit { | ||||
|   searchSchema: SFSchema = this.initSF(); | ||||
|  | ||||
|   info: any = {}; | ||||
|   params: any = {}; | ||||
|  | ||||
|   _$expand = false; | ||||
|   constructor(public service: FreightAccountService, private nzModalService: NzModalService, private route: ActivatedRoute) {} | ||||
|   constructor(public service: FreightAccountService, private nzModalService: NzModalService, private route: ActivatedRoute) { | ||||
|     this.params = route.snapshot.queryParams; | ||||
|   } | ||||
|  | ||||
|   ngOnInit(): void {} | ||||
|   ngOnInit(): void { | ||||
|     this.loadInfo(); | ||||
|   } | ||||
|  | ||||
|   beforeReq = (requestOptions: STRequestOptions) => { | ||||
|     Object.assign(requestOptions.body, { transactionNumber: this.route.snapshot.params.id }); | ||||
|     Object.assign(requestOptions.body, { | ||||
|       ltdid: this.params.ltdid, | ||||
|       projectId: this.params.projectId, | ||||
|       enterpriseId: this.params.enterpriseId, | ||||
|       roleId: this.params.roleId | ||||
|     }); | ||||
|     if (this.sf) { | ||||
|       Object.assign(requestOptions.body, { ...this.sf.value }); | ||||
|     } | ||||
|     return requestOptions; | ||||
|   }; | ||||
|  | ||||
|   afterReq = (data: any[], rawData?: any) => { | ||||
|     console.log(data, rawData); | ||||
|     if (rawData?.success) { | ||||
|       this.info = { | ||||
|         incomeAmount: rawData.data.rawData, | ||||
|         payAmount: rawData.data.payAmount | ||||
|       }; | ||||
|     } | ||||
|     return data; | ||||
|   }; | ||||
|   loadInfo() { | ||||
|     this.service | ||||
|       .request(this.service.$api_get_shipper_account_balance_detail, { | ||||
|         ...this.sf.value, | ||||
|         ltdid: this.params.ltdid, | ||||
|         projectId: this.params.projectId, | ||||
|         enterpriseId: this.params.enterpriseId, | ||||
|         roleId: this.params.roleId, | ||||
|         pageIndex: this.st.pi, | ||||
|         pageSize: this.st.ps, | ||||
|         createTime: { | ||||
|           start: this.sf.value.createTime?.[0] || null, | ||||
|           end: this.sf.value.createTime?.[1] || null | ||||
|         } | ||||
|       }) | ||||
|       .subscribe(res => { | ||||
|         if (res) { | ||||
|           this.info = res; | ||||
|         } | ||||
|       }); | ||||
|   } | ||||
|  | ||||
|   stChange(e: STChange): void { | ||||
|     console.log(e); | ||||
|   } | ||||
|  | ||||
|   exportList() { | ||||
|     this.service.downloadFile(this.service.$mock_url, { ...this.sf.value, pageIndex: this.st.pi, pageSize: this.st.ps }); | ||||
| @ -81,9 +106,10 @@ export class FreightAccountDetailComponent implements OnInit { | ||||
|           title: '交易时间', | ||||
|           type: 'string', | ||||
|           ui: { | ||||
|             widget: 'date', | ||||
|             mode: 'range', | ||||
|             format: 'yyyy-MM-dd' | ||||
|             widget: 'sl-from-to-search', | ||||
|             format: 'yyyy-MM-dd', | ||||
|             placeholder: '请选择', | ||||
|             nzShowTime: true | ||||
|           } as SFDateWidgetSchema | ||||
|         }, | ||||
|         transactionNumber: { | ||||
|  | ||||
| @ -22,7 +22,7 @@ | ||||
| </nz-card> | ||||
|  | ||||
| <nz-card class="content-box"> | ||||
|     <st #st [data]="service.$api_get_account_balance" [columns]="columns" | ||||
|     <st #st [data]="service.$api_get_shipper_account_page" [columns]="columns" | ||||
|         [req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' },  process: beforeReq }" | ||||
|         [res]="{ reName: { list: 'data.records', total: 'data.total' } }" | ||||
|         [page]="{ show: true, showSize: true, pageSizes: [10, 20, 30, 50, 100, 200, 300, 500, 1000] }" | ||||
|  | ||||
| @ -70,12 +70,12 @@ export class FreightAccountComponent implements OnInit { | ||||
|           title: '企业名称', | ||||
|           ui: { placeholder: '请输入' } | ||||
|         }, | ||||
|         phone: { | ||||
|         name: { | ||||
|           type: 'string', | ||||
|           title: '联系人', | ||||
|           ui: { placeholder: '请输入' } | ||||
|         }, | ||||
|         page: { | ||||
|         phone: { | ||||
|           type: 'string', | ||||
|           title: '联系人电话', | ||||
|           ui: { | ||||
| @ -126,9 +126,9 @@ export class FreightAccountComponent implements OnInit { | ||||
|           title: '创建时间', | ||||
|           type: 'string', | ||||
|           ui: { | ||||
|             widget: 'date', | ||||
|             mode: 'range', | ||||
|             widget: 'sl-from-to-search', | ||||
|             format: 'yyyy-MM-dd', | ||||
|             placeholder: '请选择', | ||||
|             visibleIf: { | ||||
|               expand: (value: boolean) => value | ||||
|             } | ||||
| @ -141,13 +141,13 @@ export class FreightAccountComponent implements OnInit { | ||||
|   private initST(): STColumn[] { | ||||
|     return [ | ||||
|       { title: '企业名称', index: 'tenantName' }, | ||||
|       { title: '联系人', index: 'description' }, | ||||
|       { title: '联系人电话', index: 'description' }, | ||||
|       { title: '网络货运人', index: 'ltdid' }, | ||||
|       { title: '联系人', index: 'name' }, | ||||
|       { title: '联系人电话', index: 'phone' }, | ||||
|       { title: '网络货运人', index: 'ltdName' }, | ||||
|       { title: '银行类型', index: 'bankType', type: 'enum', enum: { 1: '平安银行', 2: '浦发银行' } }, | ||||
|       { title: '虚拟账户', index: 'virtualAccount' }, | ||||
|       { title: '可用余额', index: 'availableBalance' }, | ||||
|       { title: '冻结余额', index: 'freezeBalance' }, | ||||
|       { title: '冻结余额', index: 'availableBalance' }, | ||||
|       { title: '累计消费金额', index: 'description' }, | ||||
|       { title: '账户总余额', render: 'availableBalance' }, | ||||
|       { title: '创建时间', index: 'createTime', type: 'date', width: 150 }, | ||||
| @ -162,7 +162,19 @@ export class FreightAccountComponent implements OnInit { | ||||
|         buttons: [ | ||||
|           { | ||||
|             text: '查看明细', | ||||
|             click: item => this.router.navigate(['/financial-management/freight-account/detail/' + item.id]) | ||||
|             click: item => | ||||
|               this.router.navigate(['/financial-management/freight-account/detail/' + item.id], { | ||||
|                 queryParams: { | ||||
|                   tenantName: item.tenantName, | ||||
|                   ltdName: item.ltdName, | ||||
|                   bankType: item.bankType, | ||||
|                   availableBalance: item.availableBalance, | ||||
|                   projectId: item.projectId, | ||||
|                   enterpriseId: item.enterpriseId, | ||||
|                   roleId: item.roleId, | ||||
|                   ltdid: item.ltdid | ||||
|                 } | ||||
|               }) | ||||
|           } | ||||
|         ] | ||||
|       } | ||||
|  | ||||
| @ -7,8 +7,17 @@ import { BaseService, ShipperBaseService } from '@shared'; | ||||
| export class FreightAccountService extends ShipperBaseService { | ||||
|   $mock_url = '/rule?_allow_anonymous=true'; | ||||
|  | ||||
|   // 获取账户余额信息 | ||||
|   $api_get_account_balance = '/api/fcc/accountBalance/getAccountBalance'; | ||||
|   // 运营端获取货主账户信息 | ||||
|   $api_get_shipper_account_page = '/api/fcc/accountBalance/getShipperAccountBalanceByOperator'; | ||||
|   // 运营端获取司机账户信息 | ||||
|   $api_get_driver_account_page = '/api/fcc/accountBalance/getDriverAccountBalanceByOperator'; | ||||
|  | ||||
|   // 运营端获取货主账户明细信息 | ||||
|   $api_get_shipper_or_driver_account_detail = '/api/fcc/accountBalance/getShipperAccountBalanceDetailByOperator'; | ||||
|   // 运营端端获取货主交易收入与支出金额 | ||||
|   $api_get_shipper_account_balance_detail = '/api/fcc/accountBalanceDetail/getAccountBalanceShipperIncomeDetailByOperator'; | ||||
|   // 运营端端获取司机交易收入与支出金额 | ||||
|   $api_get_driver_account_balance_detail = '/api/fcc/accountBalanceDetail/getAccountBalanceDriverIncomeDetailByOperator'; | ||||
|  | ||||
|   // 货主端获取账户余额交易明细 | ||||
|   $api_get_balance_by_shipper = '/api/fcc/accountBalanceDetail/getAccountBalanceByShipperPage'; | ||||
|  | ||||
| @ -14,8 +14,6 @@ export class UserLogsComponent implements OnInit { | ||||
|   @ViewChild('sf', { static: false }) | ||||
|   sf!: SFComponent; | ||||
|  | ||||
|   url = `/rule?_allow_anonymous=true`; | ||||
|  | ||||
|   searchSchema: SFSchema = { | ||||
|     properties: { | ||||
|       expand: { | ||||
|  | ||||
| @ -10,56 +10,57 @@ | ||||
|     <div nz-row nzGutter="8"> | ||||
|         <div nz-col [nzXl]="8" [nzLg]="8" [nzSm]="8" [nzXs]="8" se-container [labelWidth]="150" col="1"> | ||||
|             <se label="网络货运人"> | ||||
|                 天津怡亚通物流科技有限公司 | ||||
|                 {{headerInfo?.ltdidName}} | ||||
|             </se> | ||||
|             <se label="申请编号"> | ||||
|                 VP2021012010 | ||||
|                 {{headerInfo?.vatappHId}} | ||||
|             </se> | ||||
|             <se label="已开/全部订单数"> | ||||
|                 50/100 | ||||
|                 {{headerInfo?.vatinvBillNum}} / {{headerInfo?.ordlines}} | ||||
|             </se> | ||||
|             <se label="已开/全部发票金额"> | ||||
|                 5000.00/10000.00 | ||||
|                 {{headerInfo?.vatinvHAmount}} / {{headerInfo?.vatinvHAmount}} | ||||
|             </se> | ||||
|             <se label="网络货运人"> | ||||
|             <se label="已开发票张数"> | ||||
|                 2 | ||||
|             </se> | ||||
|         </div> | ||||
|         <div nz-col [nzXl]="8" [nzLg]="8" [nzSm]="8" [nzXs]="8" se-container [labelWidth]="100" col="1"> | ||||
|             <se label="购买方"> | ||||
|                 茅台股份有限公司 | ||||
|                 {{headerInfo?.projectName}} | ||||
|             </se> | ||||
|             <se label="纳税号"> | ||||
|                 912301046656930913 | ||||
|                 {{headerInfo?.taxNumber}} | ||||
|             </se> | ||||
|             <se label="地址"> | ||||
|                 贵州省贵阳市 | ||||
|                 {{headerInfo?.registerAddr}} | ||||
|             </se> | ||||
|             <se label="电话"> | ||||
|                 075588393198 | ||||
|                 {{headerInfo?.registerPhone}} | ||||
|             </se> | ||||
|             <se label="开户行"> | ||||
|                 中国工商银行股份有限公司哈贵阳支行 | ||||
|                 {{headerInfo?.bankName}} | ||||
|             </se> | ||||
|             <se label="银行账户"> | ||||
|                 3500044119068126788 | ||||
|                 {{headerInfo?.bankAccount}} | ||||
|             </se> | ||||
|         </div> | ||||
|         <div nz-col [nzXl]="8" [nzLg]="8" [nzSm]="8" [nzXs]="8" se-container [labelWidth]="100" col="1"> | ||||
|             <se label="服务名称"> | ||||
|                 运输服务费 | ||||
|                 {{headerInfo?.vatname}} | ||||
|             </se> | ||||
|             <se label="销货清单"> | ||||
|                 需要 | ||||
|                 {{headerInfo?.isdetail}} | ||||
|             </se> | ||||
|             <se label="其他要求"> | ||||
|                 单位按吨 | ||||
|                 {{headerInfo?.otherremarks}} | ||||
|             </se> | ||||
|             <se label="票面备注"> | ||||
|                 <p style="margin-bottom: 0;margin-top: 5px;">起运地:广东省深圳市南山区</p> | ||||
|                 {{headerInfo?.vatremarks}} | ||||
|                 <!-- <p style="margin-bottom: 0;margin-top: 5px;">起运地:广东省深圳市南山区</p> | ||||
|                 <p style="margin-bottom: 0;">目的地:湖北省武汉市青山区</p> | ||||
|                 <p style="margin-bottom: 0;">货物名称:钢材</p> | ||||
|                 <p style="margin-bottom: 0;">车型车牌:高栏车 粤B36889</p> | ||||
|                 <p style="margin-bottom: 0;">车型车牌:高栏车 粤B36889</p> --> | ||||
|             </se> | ||||
|         </div> | ||||
|     </div> | ||||
| @ -99,9 +100,13 @@ | ||||
|         </div> | ||||
|     </div> | ||||
|  | ||||
|     <st #st [data]="service.$mock_url" [columns]="columns" | ||||
|     <st #st [data]="service.$api_get_invoice_requested_order_detail" [columns]="columns" | ||||
|         [req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, process: beforeReq }" | ||||
|         [res]="{ reName: { list: 'data.records', total: 'data.total' } }" | ||||
|         [page]="{ show: true, showSize: true, pageSizes: [10, 20, 30, 50, 100, 200, 300, 500, 1000] }" | ||||
|         [loading]="service.http.loading" [scroll]="{ x:'1200px',y: '200px' }" (change)="stChange($event)"></st> | ||||
|         [loading]="service.http.loading" [scroll]="{ x:'1200px',y: '200px' }" (change)="stChange($event)"> | ||||
|         <ng-template st-row="billHCode" let-item let-index="index" let-column="column"> | ||||
|             <a class="text-primary" (click)="routeToOrder(item)"> {{ item.billHCode }}</a> | ||||
|         </ng-template> | ||||
|     </st> | ||||
| </nz-card> | ||||
| @ -1,5 +1,5 @@ | ||||
| import { Component, OnInit, ViewChild, ViewEncapsulation } from '@angular/core'; | ||||
| import { Router } from '@angular/router'; | ||||
| import { ActivatedRoute, Router } from '@angular/router'; | ||||
| import { STComponent, STColumn, STChange, STRequestOptions } from '@delon/abc/st'; | ||||
| import { SFComponent, SFSchema, SFDateWidgetSchema, SFTextWidgetSchema } from '@delon/form'; | ||||
| import { NzModalService } from 'ng-zorro-antd/modal'; | ||||
| @ -25,10 +25,30 @@ export class InvoiceRequestedDetailComponent implements OnInit { | ||||
|   selectedRows: any[] = []; | ||||
|   totalCallNo = 0; | ||||
|   _$expand = false; | ||||
|   constructor(public service: TicketService, private nzModalService: NzModalService, private router: Router) {} | ||||
|  | ||||
|   vatappHId = null; | ||||
|   headerInfo: any = {}; | ||||
|   constructor( | ||||
|     public service: TicketService, | ||||
|     private nzModalService: NzModalService, | ||||
|     private route: ActivatedRoute, | ||||
|     private router: Router | ||||
|   ) { | ||||
|     this.vatappHId = route.snapshot.params.id; | ||||
|     this.loadHeadInfo(); | ||||
|   } | ||||
|  | ||||
|   ngOnInit(): void {} | ||||
|  | ||||
|   loadHeadInfo() { | ||||
|     this.service.request(this.service.$api_get_invoice_requested_header_detail, { vatappHId: this.vatappHId }).subscribe(res => { | ||||
|       console.log(res); | ||||
|       if (res) { | ||||
|         this.headerInfo = res; | ||||
|       } | ||||
|     }); | ||||
|   } | ||||
|  | ||||
|   beforeReq = (requestOptions: STRequestOptions) => { | ||||
|     if (this.sf) { | ||||
|       Object.assign(requestOptions.body, { ...this.sf.value }); | ||||
| @ -85,7 +105,14 @@ export class InvoiceRequestedDetailComponent implements OnInit { | ||||
|       nzTitle: '确定从当前批次中移除所选订单?', | ||||
|       nzContent: '移除后相关订单可以重新提交开票申请', | ||||
|       nzOnOk: () => { | ||||
|         console.log(this.selectedRows); | ||||
|         const ids = this.selectedRows.map(order => order.billHId); | ||||
|         this.service.request(this.service.$api_remove_bill, ids).subscribe(res => { | ||||
|           if (res) { | ||||
|             this.service.msgSrv.success('移除成功'); | ||||
|             this.loadHeadInfo(); | ||||
|             this.st.reload(); | ||||
|           } | ||||
|         }); | ||||
|       } | ||||
|     }); | ||||
|   } | ||||
| @ -94,6 +121,14 @@ export class InvoiceRequestedDetailComponent implements OnInit { | ||||
|     history.go(-1); | ||||
|   } | ||||
|  | ||||
|   routeToOrder(item: any) { | ||||
|     if (item.billType === 1) { | ||||
|       this.router.navigate(['/order-management/vehicle-detail/' + item.billHCode]); | ||||
|     } else { | ||||
|       this.router.navigate(['/order-management/bulk-detail/' + item.billHCode]); | ||||
|     } | ||||
|   } | ||||
|  | ||||
|   /** | ||||
|    * 重置表单 | ||||
|    */ | ||||
| @ -118,14 +153,14 @@ export class InvoiceRequestedDetailComponent implements OnInit { | ||||
|             hidden: true | ||||
|           } | ||||
|         }, | ||||
|         orderSn: { | ||||
|         billHCode: { | ||||
|           type: 'string', | ||||
|           title: '订单号', | ||||
|           ui: { | ||||
|             placeholder: '请输入' | ||||
|           } | ||||
|         }, | ||||
|         receiveName: { | ||||
|         vatappSts: { | ||||
|           type: 'string', | ||||
|           title: '开票状态', | ||||
|           enum: [ | ||||
| @ -143,17 +178,21 @@ export class InvoiceRequestedDetailComponent implements OnInit { | ||||
|           }, | ||||
|           default: '' | ||||
|         }, | ||||
|         orderSn2: { | ||||
|         vatinvcode: { | ||||
|           type: 'string', | ||||
|           title: '发票号码', | ||||
|           ui: { | ||||
|             placeholder: '请输入' | ||||
|           } | ||||
|         }, | ||||
|         receiveName2: { | ||||
|         billType: { | ||||
|           type: 'string', | ||||
|           title: '订单类型', | ||||
|           enum: [{ label: '全部', value: '' }], | ||||
|           enum: [ | ||||
|             { label: '全部', value: '' }, | ||||
|             { label: '整车', value: '1' }, | ||||
|             { label: '大宗', value: '2' } | ||||
|           ], | ||||
|           ui: { | ||||
|             widget: 'select', | ||||
|             placeholder: '请选择', | ||||
| @ -163,7 +202,7 @@ export class InvoiceRequestedDetailComponent implements OnInit { | ||||
|           }, | ||||
|           default: '' | ||||
|         }, | ||||
|         orderS2n2: { | ||||
|         driverinfo: { | ||||
|           type: 'string', | ||||
|           title: '运司机', | ||||
|           ui: { | ||||
| @ -183,18 +222,17 @@ export class InvoiceRequestedDetailComponent implements OnInit { | ||||
|             } | ||||
|           } | ||||
|         }, | ||||
|         receiveN2ame2: { | ||||
|         projectId: { | ||||
|           title: '项目', | ||||
|           type: 'string', | ||||
|           title: '所属项目', | ||||
|           enum: [{ label: '全部', value: '' }], | ||||
|           default: '', | ||||
|           ui: { | ||||
|             widget: 'select', | ||||
|             placeholder: '请选择', | ||||
|             visibleIf: { | ||||
|               expand: (value: boolean) => value | ||||
|             } | ||||
|           }, | ||||
|           default: '' | ||||
|             }, | ||||
|             asyncData: () => this.service.getEnterpriseProject() | ||||
|           } | ||||
|         } | ||||
|       } | ||||
|     }; | ||||
| @ -203,22 +241,22 @@ export class InvoiceRequestedDetailComponent implements OnInit { | ||||
|   private initST(): STColumn[] { | ||||
|     return [ | ||||
|       { title: '', index: 'key', type: 'checkbox' }, | ||||
|       { title: '订单号', index: 'no', width: 150 }, | ||||
|       { title: '订单完成日期', index: 'updatedAt', type: 'date', width: 150 }, | ||||
|       { title: '开票状态', index: 'callNo', width: 100 }, | ||||
|       { title: '所属项目', index: 'callNo', width: 100 }, | ||||
|       { title: '订单类型', index: 'callNo', width: 100 }, | ||||
|       { title: '装货地', index: 'callNo', width: 90 }, | ||||
|       { title: '卸货地', index: 'callNo', width: 90 }, | ||||
|       { title: '货物信息', index: 'callNo', width: 100 }, | ||||
|       { title: '承运司机', index: 'callNo', width: 140, format: item => `特朗普</br>13789040523</br>粤GT8419` }, | ||||
|       { title: '申请金额', index: 'callNo', width: 100 }, | ||||
|       { title: '运输费', index: 'callNo', width: 90 }, | ||||
|       { title: '附加费', index: 'callNo', width: 90 }, | ||||
|       { title: '开票金额', index: 'callNo', width: 100 }, | ||||
|       { title: '税率', index: 'callNo', width: 90 }, | ||||
|       { title: '发票号码', index: 'callNo', width: 100 }, | ||||
|       { title: '开票日期', index: 'updatedAt', type: 'date', width: 150 } | ||||
|       { title: '订单号', render: 'billHCode', width: 150 }, | ||||
|       { title: '订单完成日期', index: 'billTime', type: 'date', width: 150 }, | ||||
|       { title: '开票状态', index: 'vatappSts', width: 100 }, | ||||
|       { title: '所属项目', index: 'projectId', width: 100 }, | ||||
|       { title: '订单类型', index: 'billType', width: 100, type: 'enum', enum: { 1: '整车', 2: '大宗' } }, | ||||
|       { title: '装货地', index: 'loadingfrom', width: 90 }, | ||||
|       { title: '卸货地', index: 'loadingto', width: 90 }, | ||||
|       { title: '货物信息', index: 'goodsinfo', width: 100 }, | ||||
|       { title: '承运司机', index: 'driverinfo', width: 140 }, | ||||
|       { title: '申请金额', index: 'billkpmoney', width: 100 }, | ||||
|       { title: '运输费', index: 'fjfmoney2', width: 90 }, | ||||
|       { title: '附加费', index: 'fjfmoney', width: 90 }, | ||||
|       { title: '开票金额', index: 'billkpmoney', width: 100 }, | ||||
|       { title: '税率', index: 'billvatrate', width: 90 }, | ||||
|       { title: '发票号码', index: 'vatinvcode', width: 100 }, | ||||
|       { title: '开票日期', index: 'vatinvtime', type: 'date', width: 150 } | ||||
|     ]; | ||||
|   } | ||||
| } | ||||
|  | ||||
| @ -43,11 +43,15 @@ | ||||
|     </ng-template> | ||||
|  | ||||
|  | ||||
|     <st #st [data]="service.$mock_url" [columns]="columns" | ||||
|     <st #st [data]="service.$api_get_invoice_requested_page" [columns]="columns" | ||||
|         [req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, process: beforeReq }" | ||||
|         [res]="{ reName: { list: 'data.records', total: 'data.total' } }" | ||||
|         [page]="{ show: true, showSize: true, pageSizes: [10, 20, 30, 50, 100, 200, 300, 500, 1000] }" | ||||
|         [loading]="service.http.loading" [scroll]="{ x:'1200px',y: '370px' }" (change)="stChange($event)"></st> | ||||
|         [loading]="service.http.loading" [scroll]="{ x:'1200px',y: '370px' }" (change)="stChange($event)"> | ||||
|         <ng-template st-row="vatappcode" let-item let-index="index" let-column="column"> | ||||
|             {{ item.vatappcode }} <br> <label class="text-primary">待受理</label> | ||||
|         </ng-template> | ||||
|     </st> | ||||
| </nz-card> | ||||
|  | ||||
| <ng-template #rejectModal> | ||||
|  | ||||
| @ -32,7 +32,13 @@ export class InvoiceRequestedComponent implements OnInit { | ||||
|  | ||||
|   beforeReq = (requestOptions: STRequestOptions) => { | ||||
|     if (this.sf) { | ||||
|       Object.assign(requestOptions.body, { ...this.sf.value }); | ||||
|       Object.assign(requestOptions.body, { | ||||
|         ...this.sf.value, | ||||
|         createTime: { | ||||
|           start: this.sf.value.createTime?.[0] || null, | ||||
|           end: this.sf.value.createTime?.[1] || null | ||||
|         } | ||||
|       }); | ||||
|     } | ||||
|     return requestOptions; | ||||
|   }; | ||||
| @ -46,10 +52,6 @@ export class InvoiceRequestedComponent implements OnInit { | ||||
|     } | ||||
|   } | ||||
|  | ||||
|   approval(): void {} | ||||
|  | ||||
|   add(): void {} | ||||
|  | ||||
|   rejectAction(item: any[]) { | ||||
|     const modal = this.nzModalService.create({ | ||||
|       nzTitle: '驳回', | ||||
| @ -128,8 +130,8 @@ export class InvoiceRequestedComponent implements OnInit { | ||||
|         { | ||||
|           type: 'default', | ||||
|           label: '移除', | ||||
|           onClick: (com) => { | ||||
|             com?.removeOrder(com.data) | ||||
|           onClick: com => { | ||||
|             com?.removeOrder(com.data); | ||||
|           } | ||||
|         }, | ||||
|         { | ||||
| @ -175,14 +177,14 @@ export class InvoiceRequestedComponent implements OnInit { | ||||
|             hidden: true | ||||
|           } | ||||
|         }, | ||||
|         orderSn: { | ||||
|         vatappcode: { | ||||
|           type: 'string', | ||||
|           title: '申请编号', | ||||
|           ui: { | ||||
|             placeholder: '请输入' | ||||
|           } | ||||
|         }, | ||||
|         orderSn2: { | ||||
|         billHCode: { | ||||
|           type: 'string', | ||||
|           title: '订单号', | ||||
|           ui: { | ||||
| @ -196,55 +198,50 @@ export class InvoiceRequestedComponent implements OnInit { | ||||
|             placeholder: '请输入' | ||||
|           } | ||||
|         }, | ||||
|         receiveName2: { | ||||
|         projectId: { | ||||
|           title: '项目', | ||||
|           type: 'string', | ||||
|           title: '购买方', | ||||
|           enum: [ | ||||
|             { label: '全部', value: '全部' }, | ||||
|             { label: '企业认证审核', value: '企业认证审核' }, | ||||
|             { label: '企业管理员审核', value: '企业管理员审核' } | ||||
|           ], | ||||
|           default: '', | ||||
|           ui: { | ||||
|             widget: 'select', | ||||
|             placeholder: '请选择', | ||||
|             visibleIf: { | ||||
|               expand: (value: boolean) => value | ||||
|             } | ||||
|             }, | ||||
|             asyncData: () => this.service.getEnterpriseProject() | ||||
|           } | ||||
|         }, | ||||
|         receiveName3: { | ||||
|         ltd: { | ||||
|           type: 'string', | ||||
|           title: '网络货运人', | ||||
|           enum: [{ label: '全部', value: '全部' }], | ||||
|           ui: { | ||||
|             widget: 'select', | ||||
|             placeholder: '请选择', | ||||
|             visibleIf: { | ||||
|               expand: (value: boolean) => value | ||||
|             } | ||||
|           } | ||||
|             }, | ||||
|             allowClear: true, | ||||
|             asyncData: () => this.service.getNetworkFreightForwarder() | ||||
|           }, | ||||
|           default: '' | ||||
|         }, | ||||
|         receiveName23: { | ||||
|         otherReq: { | ||||
|           type: 'string', | ||||
|           title: '其他需求', | ||||
|           enum: [ | ||||
|             { label: '全部', value: '全部' }, | ||||
|             { label: '有', value: '有' }, | ||||
|             { label: '无', value: '无' } | ||||
|           ], | ||||
|           enum: [{ label: '全部', value: '' }], | ||||
|           ui: { | ||||
|             widget: 'select', | ||||
|             placeholder: '请选择', | ||||
|             visibleIf: { | ||||
|               expand: (value: boolean) => value | ||||
|             } | ||||
|           } | ||||
|           }, | ||||
|           default: '' | ||||
|         }, | ||||
|         receiveName: { | ||||
|         sts: { | ||||
|           type: 'string', | ||||
|           title: '处理进度', | ||||
|           enum: [ | ||||
|             { label: '全部', value: '全部' }, | ||||
|             { label: '全部', value: '' }, | ||||
|             { label: '待审核', value: '待审核' }, | ||||
|             { label: '处理中', value: '处理中' }, | ||||
|             { label: '已完成', value: '已完成' }, | ||||
| @ -257,27 +254,29 @@ export class InvoiceRequestedComponent implements OnInit { | ||||
|             visibleIf: { | ||||
|               expand: (value: boolean) => value | ||||
|             } | ||||
|           } | ||||
|           }, | ||||
|           default: '' | ||||
|         }, | ||||
|         createTime: { | ||||
|           title: '申请时间', | ||||
|           type: 'string', | ||||
|           ui: { | ||||
|             widget: 'date', | ||||
|             mode: 'range', | ||||
|             widget: 'sl-from-to-search', | ||||
|             format: 'yyyy-MM-dd', | ||||
|             placeholder: '请选择', | ||||
|             nzShowTime: true, | ||||
|             visibleIf: { | ||||
|               expand: (value: boolean) => value | ||||
|             } | ||||
|           } as SFDateWidgetSchema | ||||
|         }, | ||||
|         re2ceiveName: { | ||||
|         isdetail: { | ||||
|           type: 'string', | ||||
|           title: '销货清单', | ||||
|           enum: [ | ||||
|             { label: '全部', value: '全部' }, | ||||
|             { label: '需要', value: '需要' }, | ||||
|             { label: '不需要', value: '不需要' } | ||||
|             { label: '全部', value: '' }, | ||||
|             { label: '需要', value: 1 }, | ||||
|             { label: '不需要', value: 0 } | ||||
|           ], | ||||
|           ui: { | ||||
|             widget: 'select', | ||||
| @ -285,7 +284,8 @@ export class InvoiceRequestedComponent implements OnInit { | ||||
|             visibleIf: { | ||||
|               expand: (value: boolean) => value | ||||
|             } | ||||
|           } | ||||
|           }, | ||||
|           default: '' | ||||
|         } | ||||
|       } | ||||
|     }; | ||||
| @ -294,23 +294,23 @@ export class InvoiceRequestedComponent implements OnInit { | ||||
|   private initST(): STColumn[] { | ||||
|     return [ | ||||
|       { title: '', index: 'key', type: 'checkbox' }, | ||||
|       { title: '申请编号', index: 'no', width: 150, format: item => `VP202110012313</br><label class="text-primary">待受理</label>` }, | ||||
|       { title: '网络货运人', index: 'callNo', width: 120 }, | ||||
|       { title: '购买方', index: 'callNo', width: 90 }, | ||||
|       { title: '订单数', index: 'callNo', width: 90 }, | ||||
|       { title: '申请金额', index: 'callNo', width: 100 }, | ||||
|       { title: '运输费', index: 'callNo', width: 90 }, | ||||
|       { title: '附加费', index: 'callNo', width: 90 }, | ||||
|       { title: '已开票金额', index: 'callNo', width: 120 }, | ||||
|       { title: '开户行', index: 'callNo', width: 90 }, | ||||
|       { title: '银行账户', index: 'callNo', width: 100 }, | ||||
|       { title: '注册地址', index: 'callNo', width: 100 }, | ||||
|       { title: '注册电话', index: 'callNo', width: 100 }, | ||||
|       { title: '服务名称', index: 'callNo', width: 100 }, | ||||
|       { title: '销货清单', index: 'callNo', width: 100 }, | ||||
|       { title: '其他要求', index: 'callNo', width: 100 }, | ||||
|       { title: '申请人', index: 'callNo', width: 90 }, | ||||
|       { title: '申请时间', index: 'updatedAt', type: 'date', width: 150 }, | ||||
|       { title: '申请编号', render: 'vatappcode', width: 150 }, | ||||
|       { title: '网络货运人', index: 'ltdName', width: 120 }, | ||||
|       { title: '购买方', index: 'projectName', width: 90 }, | ||||
|       { title: '订单数', index: 'ordlines', width: 90 }, | ||||
|       { title: '申请金额', index: 'applyAmount', width: 100 }, | ||||
|       { title: '运输费', index: 'fjfmoney2', width: 90 }, | ||||
|       { title: '附加费', index: 'fjfmoney', width: 90 }, | ||||
|       { title: '已开票金额', index: 'invoicedMoney', width: 120 }, | ||||
|       { title: '开户行', index: 'bankName', width: 90 }, | ||||
|       { title: '银行账户', index: 'bankAccount', width: 100 }, | ||||
|       { title: '注册地址', index: 'registerAddr', width: 100 }, | ||||
|       { title: '注册电话', index: 'registerPhone', width: 100 }, | ||||
|       { title: '服务名称', index: 'vatname', width: 100 }, | ||||
|       { title: '销货清单', index: 'isdetail', width: 100 }, | ||||
|       { title: '其他要求', index: 'otherremarks', width: 100 }, | ||||
|       { title: '申请人', index: 'applyName', width: 90 }, | ||||
|       { title: '申请时间', index: 'applyTime', type: 'date', width: 150 }, | ||||
|       { | ||||
|         title: '操作', | ||||
|         width: 150, | ||||
| @ -330,7 +330,7 @@ export class InvoiceRequestedComponent implements OnInit { | ||||
|           }, | ||||
|           { | ||||
|             text: '订单明细', | ||||
|             click: item => this.router.navigate(['/ticket/invoice-requested/detail/1']) | ||||
|             click: item => this.router.navigate(['/ticket/invoice-requested/detail/' + item.vatappcode]) | ||||
|           }, | ||||
|           { | ||||
|             text: '下载对账单' | ||||
|  | ||||
| @ -1,13 +1,21 @@ | ||||
| import { Injectable, Injector } from '@angular/core'; | ||||
| import { BaseService } from 'src/app/shared/services'; | ||||
| import { ShipperBaseService } from '@shared'; | ||||
|  | ||||
| @Injectable({ | ||||
|   providedIn: 'root' | ||||
| }) | ||||
| export class TicketService extends BaseService { | ||||
|  | ||||
| export class TicketService extends ShipperBaseService { | ||||
|   $mock_url = '/rule?_allow_anonymous=true'; | ||||
|  | ||||
|   // 运营端查询发票申请记录 | ||||
|   $api_get_invoice_requested_page = '/api/fcc/ficoVatappH/queryOperateVatappHList'; | ||||
|   // 获取开票申请订单明细头部信息 | ||||
|   $api_get_invoice_requested_header_detail = '/api/fcc/ficoVatappBill/getDetailHeadByVatappHId'; | ||||
|   // 货主/运营端获取开票申请订单明细 | ||||
|   $api_get_invoice_requested_order_detail = '/api/fcc/ficoVatappBill/getDetailByVatapp'; | ||||
|   // 删除开票申请订单明细 | ||||
|   $api_remove_bill = '/api/fcc/ficoVatappBill/deletebatch'; | ||||
|  | ||||
|   constructor(public injector: Injector) { | ||||
|     super(injector); | ||||
|   } | ||||
|  | ||||
| @ -7,12 +7,10 @@ import { | ||||
|   SFComponent, | ||||
|   SFDateWidgetSchema, | ||||
|   SFSchema, | ||||
|   SFSchemaEnum, | ||||
|   SFTextareaWidgetSchema, | ||||
|   SFUISchema, | ||||
|   SFUploadWidgetSchema | ||||
| } from '@delon/form'; | ||||
| import { NzMessageService } from 'ng-zorro-antd/message'; | ||||
| import { UsermanageService } from 'src/app/routes/usercenter/services/usercenter.service'; | ||||
|  | ||||
| const IMAGECONFIG = { | ||||
| @ -79,6 +77,13 @@ export class FreightComponentsListNewComponent implements OnInit { | ||||
|   ngOnInit() {} | ||||
|  | ||||
|   submitForm() { | ||||
|     if (!this.sf1.valid || !this.sf.valid) { | ||||
|       this.sf.validator({ emitError: true }); | ||||
|       this.sf1.validator({ emitError: true }); | ||||
|       this.service.msgSrv.warning('请修改填写错误信息'); | ||||
|       return; | ||||
|     } | ||||
|  | ||||
|     const sfVlaue = this.sf.value; | ||||
|     const params = {}; | ||||
|     Object.assign( | ||||
| @ -113,114 +118,99 @@ export class FreightComponentsListNewComponent implements OnInit { | ||||
|   } | ||||
|  | ||||
|   /* | ||||
|    * 根据地区code查询地区详情 | ||||
|    * code:请求参数 | ||||
|    * type:参数 name:获取省市区名称,fullcode:获取省市区code | ||||
|    * num:参数 1:第一个地区选择,2:第二个地区选择 | ||||
|    * 根据地区code查询地区列表 | ||||
|    */ | ||||
|   getRegionDetailByCode(regionCode: any) { | ||||
|     // 根据地区code查询地区详情 | ||||
|     return this.service.request(this.service.$api_get_region_by_code, { regionCode }); | ||||
|   } | ||||
|  | ||||
|   checkIdCard(imgurl: any, isFront: number, type: number) { | ||||
|     // 识别身份证 参数isFront:0-正面、1-背面;type:0-申请人身份证,1-法定代表人身份证 | ||||
|   // 识别身份证 参数isFront:front-正面、back-背面;type:0-申请人身份证,1-法定代表人身份证 | ||||
|   checkIdCard(imgurl: any, isFront: string, type: number) { | ||||
|     const params = { | ||||
|       idCardImagePath: imgurl, | ||||
|       isFront | ||||
|       idCardUrl: imgurl, | ||||
|       side: isFront | ||||
|     }; | ||||
|     // this.service.request(this.service.$api_checkIdCard, params).subscribe((res) => { | ||||
|     //   if (res) { | ||||
|     //     if (type === 0) { | ||||
|     //       // 申请人身份证 | ||||
|     //       if (isFront === 0) { | ||||
|     //         // 正面 | ||||
|     //         if (res.name) { | ||||
|     //           this.sf.setValue('/name', res.name); | ||||
|     //         } | ||||
|     //         if (res.idCardNumber) { | ||||
|     //           this.sf.setValue('/certificateNumber', res.idCardNumber); | ||||
|     //         } | ||||
|     //       } | ||||
|     //       if (isFront === 1) { | ||||
|     //         // 背面 | ||||
|     //         if (res.validFrom) { | ||||
|     //           this.sf.setValue('/validStartTime', res.validFrom); | ||||
|     //         } | ||||
|     //         if (res.validTo) { | ||||
|     //           this.sf.setValue('/validEndTime', res.validTo); | ||||
|     //         } | ||||
|     //       } | ||||
|     //     } | ||||
|     //     if (type === 1) { | ||||
|     //       // 法定代表人身份证 | ||||
|     //       if (isFront === 0) { | ||||
|     //         // 正面 | ||||
|     //         if (res.name) { | ||||
|     //           this.sf1.setValue('/name', res.name); | ||||
|     //         } | ||||
|     //         if (res.idCardNumber) { | ||||
|     //           this.sf1.setValue('/certificateNumber', res.idCardNumber); | ||||
|     //         } | ||||
|     //       } | ||||
|     //       if (isFront === 1) { | ||||
|     //         // 背面 | ||||
|     //         if (res.validFrom) { | ||||
|     //           this.sf1.setValue('/validStartTime', res.validFrom); | ||||
|     //         } | ||||
|     //         if (res.validTo) { | ||||
|     //           this.sf1.setValue('/validEndTime', res.validTo); | ||||
|     //         } | ||||
|     //       } | ||||
|     //     } | ||||
|     //   } | ||||
|     // }); | ||||
|     this.service.request(this.service.$api_ocr_recognize_id_card, params).subscribe(res => { | ||||
|       if (res) { | ||||
|         if (type === 1) { | ||||
|           // 法定代表人证件照 | ||||
|           if (isFront === 'front') { | ||||
|             // 正面 | ||||
|             if (res.name) { | ||||
|               this.sf1.setValue('/legalPersonIdentityDTO/name', res.name); | ||||
|             } | ||||
|             if (res.number) { | ||||
|               this.sf1.setValue('/legalPersonIdentityDTO/certificateType', 0); | ||||
|               this.sf1.setValue('/legalPersonIdentityDTO/certificateNumber', res.number); | ||||
|             } | ||||
|           } | ||||
|           if (isFront === 'back') { | ||||
|             // 背面 | ||||
|             if (res.validFrom) { | ||||
|               this.sf1.setValue('/legalPersonIdentityDTO/validStartTime', res.validFrom); | ||||
|             } | ||||
|             if (res.validTo) { | ||||
|               this.sf1.setValue('/legalPersonIdentityDTO/validEndTime', res.validTo); | ||||
|               this.sf1.setValue('/legalPersonIdentityDTO/isLoingDate', false); | ||||
|             } else { | ||||
|               this.sf1.setValue('/legalPersonIdentityDTO/isLoingDate', true); | ||||
|             } | ||||
|           } | ||||
|         } | ||||
|         // 企业管理员证件照 | ||||
|         if (type === 0) { | ||||
|           if (isFront === 'front') { | ||||
|             // 正面 | ||||
|             if (res.name) { | ||||
|               this.sf.setValue('/name', res.name); | ||||
|             } | ||||
|             if (res.number) { | ||||
|               this.sf.setValue('/certificateNumber', res.number); | ||||
|             } | ||||
|           } | ||||
|         } | ||||
|       } | ||||
|     }); | ||||
|   } | ||||
|  | ||||
|   // 识别营业执照 | ||||
|   checkBusinessLicense(imgurl: any) { | ||||
|     // 识别营业执照 | ||||
|     const params = { | ||||
|       licenseImagePath: imgurl | ||||
|     }; | ||||
|     // this.service.request(this.service.$api_checkBusinessLicense, params).subscribe((res) => { | ||||
|     //   if (res) { | ||||
|     //     if (res.unifiedSocialCreditCode) { | ||||
|     //       this.sf1.setValue('/unifiedSocialCreditCode', res.unifiedSocialCreditCode); | ||||
|     //     } | ||||
|     //     if (res.enterpriseName) { | ||||
|     //       this.sf1.setValue('/enterpriseName', res.enterpriseName); | ||||
|     //     } | ||||
|     //     if (res.enterpriseType) { | ||||
|     //       this.sf1.setValue('/enterpriseType', res.enterpriseType); | ||||
|     //     } | ||||
|     //     if (res.addressRegionCodes) { | ||||
|     //       this.sf1.setValue('/region', res.addressRegionCodes); | ||||
|     //     } | ||||
|     //     if (res.address) { | ||||
|     //       this.sf1.setValue('/enterpriseAddress', res.address); | ||||
|     //     } | ||||
|     //     if (res.foundDate) { | ||||
|     //       this.sf1.setValue('/enterpriseRegistrationTime', res.foundDate); | ||||
|     //     } | ||||
|     //     if (res.registeredCapital) { | ||||
|     //       this.sf1.setValue('/registrationCapital', res.registeredCapital); | ||||
|     //     } | ||||
|     //     if (res.businessTermStartDate) { | ||||
|     //       this.sf1.setValue('/operatingStartTime', res.businessTermStartDate); | ||||
|     //     } | ||||
|     //     if (res.businessTermEndDate) { | ||||
|     //       this.sf1.setValue('/operatingEndTime', res.businessTermEndDate); | ||||
|     //     } | ||||
|     //     if (res.businessScope) { | ||||
|     //       this.sf1.setValue('/businessScope', res.businessScope); | ||||
|     //     } | ||||
|     //     const len = res.addressRegionCodes.length - 1; | ||||
|     //     this.enterpriseAddressCode = res.addressRegionCodes[len]; | ||||
|     //     this.enterpriseAddressCodeStr = res.addressRegionNames; | ||||
|     //     if (!res.businessTermEndDate) { | ||||
|     //       this.sf1.setValue('/dateType', true); | ||||
|     //     } | ||||
|     //   } | ||||
|     // }); | ||||
|     this.service.request(this.service.$api_ocr_recognize_business_license, { businessLicenseUrl: imgurl }).subscribe(res => { | ||||
|       if (res) { | ||||
|         if (res.registrationNumber) { | ||||
|           this.sf1.setValue('/unifiedSocialCreditCode', res.registrationNumber); | ||||
|         } | ||||
|         if (res.name) { | ||||
|           this.sf1.setValue('/enterpriseName', res.name); | ||||
|         } | ||||
|         if (res.type) { | ||||
|           this.sf1.setValue('/enterpriseType', res.type); | ||||
|         } | ||||
|         if (res.addressRegionCodes) { | ||||
|           this.sf1.setValue('/enterpriseAddressCode', res.addressRegionCodes); | ||||
|         } | ||||
|         if (res.address) { | ||||
|           this.sf1.setValue('/enterpriseAddress', res.address); | ||||
|         } | ||||
|         if (res.registeredCapital) { | ||||
|           this.sf1.setValue('/registrationCapital', res.registeredCapital); | ||||
|         } | ||||
|         if (res.foundDate) { | ||||
|           this.sf1.setValue('/enterpriseRegistrationTime', res.foundDate); | ||||
|         } | ||||
|         if (res.businessTermStartDate) { | ||||
|           this.sf1.setValue('/operatingStartTime', res.businessTermStartDate); | ||||
|         } | ||||
|         if (res.businessTermEndDate) { | ||||
|           this.sf1.setValue('/operatingEndTime', res.businessTermEndDate); | ||||
|         } else { | ||||
|           this.sf1.setValue('/isLoingDate', true); | ||||
|         } | ||||
|         if (res.businessScope) { | ||||
|           this.sf1.setValue('/businessScope', res.businessScope); | ||||
|         } | ||||
|       } | ||||
|     }); | ||||
|   } | ||||
|  | ||||
|   goBack() { | ||||
| @ -438,7 +428,7 @@ export class FreightComponentsListNewComponent implements OnInit { | ||||
|                 change: args => { | ||||
|                   if (args.type === 'success') { | ||||
|                     this.sf1.setValue('/legalPersonIdentityDTO/certificatePhotoFront', args.fileList[0].response.data.fullFilePath); | ||||
|                     this.checkIdCard(args.fileList[0].response.data.fullFileWatermarkPath, 0, 1); | ||||
|                     this.checkIdCard(args.fileList[0].response.data.fullFilePath, 'front', 1); | ||||
|                   } | ||||
|                 } | ||||
|               } as SFUploadWidgetSchema | ||||
| @ -455,7 +445,7 @@ export class FreightComponentsListNewComponent implements OnInit { | ||||
|                 change: args => { | ||||
|                   if (args.type === 'success') { | ||||
|                     this.sf1.setValue('/legalPersonIdentityDTO/certificatePhotoBack', args.fileList[0].response.data.fullFilePath); | ||||
|                     this.checkIdCard(args.fileList[0].response.data.fullFileWatermarkPath, 0, 1); | ||||
|                     this.checkIdCard(args.fileList[0].response.data.fullFilePath, 'back', 1); | ||||
|                   } | ||||
|                 } | ||||
|               } as SFUploadWidgetSchema | ||||
| @ -531,19 +521,11 @@ export class FreightComponentsListNewComponent implements OnInit { | ||||
|                 grid: { span: 6 }, | ||||
|                 class: 'input-back', | ||||
|                 widget: 'checkbox', | ||||
|                 change: i=> this.sf1?.setValue('/legalPersonIdentityDTO/validEndTime', null), | ||||
|                 change: i => this.sf1?.setValue('/legalPersonIdentityDTO/validEndTime', null) | ||||
|               } as SFCheckboxWidgetSchema | ||||
|             } | ||||
|           }, | ||||
|           required: [ | ||||
|             'tipsC', | ||||
|             'certificatePhotoFront', | ||||
|             'certificatePhotoBack', | ||||
|             'name', | ||||
|             'certificateType', | ||||
|             'certificateNumber', | ||||
|             'validStartTime', | ||||
|           ] | ||||
|           required: ['certificatePhotoFront', 'certificatePhotoBack', 'name', 'certificateType', 'certificateNumber', 'validStartTime'] | ||||
|         } | ||||
|       }, | ||||
|       required: [ | ||||
| @ -610,7 +592,7 @@ export class FreightComponentsListNewComponent implements OnInit { | ||||
|             change: args => { | ||||
|               if (args.type === 'success') { | ||||
|                 this.sf.setValue('/certificatePhotoFront', args.fileList[0].response.data.fullFilePath); | ||||
|                 this.checkIdCard(args.fileList[0].response.data.fullFileWatermarkPath, 0, 1); | ||||
|                 this.checkIdCard(args.fileList[0].response.data.fullFilePath, 'front', 0); | ||||
|               } | ||||
|             } | ||||
|           } as SFUploadWidgetSchema | ||||
| @ -632,7 +614,6 @@ export class FreightComponentsListNewComponent implements OnInit { | ||||
|             change: args => { | ||||
|               if (args.type === 'success') { | ||||
|                 this.sf.setValue('/certificatePhotoBack', args.fileList[0].response.data.fullFilePath); | ||||
|                 this.checkIdCard(args.fileList[0].response.data.fullFileWatermarkPath, 0, 1); | ||||
|               } | ||||
|             } | ||||
|           } as SFUploadWidgetSchema | ||||
| @ -668,7 +649,6 @@ export class FreightComponentsListNewComponent implements OnInit { | ||||
|             change: args => { | ||||
|               if (args.type === 'success') { | ||||
|                 this.sf.setValue('/creditPhoto', args.fileList[0].response.data.fullFilePath); | ||||
|                 this.checkIdCard(args.fileList[0].response.data.fullFileWatermarkPath, 0, 1); | ||||
|               } | ||||
|             } | ||||
|           } as SFUploadWidgetSchema | ||||
| @ -705,21 +685,17 @@ export class FreightComponentsListNewComponent implements OnInit { | ||||
|         networkTransporter: { | ||||
|           type: 'string', | ||||
|           title: '网络货运人', | ||||
|           enum: [ | ||||
|             { label: '全部', value: 0 }, | ||||
|             { label: '大宗发货', value: 20 } | ||||
|           ], | ||||
|           default: 0, | ||||
|           ui: { | ||||
|             grid: { xxl: 13, xl: 18, lg: 24, md: 24 }, | ||||
|             widget: 'select', | ||||
|             visibleIf: { | ||||
|               expand: (value: boolean) => value | ||||
|             } | ||||
|           } | ||||
|             placeholder: '请选择', | ||||
|             allowClear: true, | ||||
|             asyncData: () => this.service.getNetworkFreightForwarder() | ||||
|           }, | ||||
|           default: '' | ||||
|         } | ||||
|       }, | ||||
|       required: ['createBank', '银行账号', 'adminMobile', 'name', 'certificateNumber', 'tipsD', 'creditPhoto'] | ||||
|       required: ['createBank', 'bankAccount', 'adminMobile', 'name', 'certificateNumber', 'tipsD', 'creditPhoto'] | ||||
|     }; | ||||
|   } | ||||
| } | ||||
|  | ||||
| @ -8,16 +8,14 @@ | ||||
|  */ | ||||
| import { Injectable, Injector } from '@angular/core'; | ||||
| import { _HttpClient } from '@delon/theme'; | ||||
| import { NzMessageService } from 'ng-zorro-antd/message'; | ||||
| import { ShipperBaseService } from '@shared'; | ||||
| import { NzModalService } from 'ng-zorro-antd/modal'; | ||||
| import { ImageViewComponent } from 'src/app/shared/components/imagelist'; | ||||
| import { BaseService } from 'src/app/shared/services/core/base.service'; | ||||
| import { EAFileUtil } from 'src/app/shared/utils/file.util'; | ||||
|  | ||||
| @Injectable({ | ||||
|   providedIn: 'root' | ||||
| }) | ||||
| export class UsermanageService extends BaseService { | ||||
| export class UsermanageService extends ShipperBaseService { | ||||
|   // 查询企业列表 | ||||
|   $api_get_freight_list = '/api/mdc/cuc/enterpriseInfo/operate/list/page'; | ||||
|  | ||||
| @ -93,6 +91,8 @@ export class UsermanageService extends BaseService { | ||||
|  | ||||
|   // 根据地区code查询列表 | ||||
|   $api_get_region_by_code = '/api/mdc/pbc/region/getRegionByCode'; | ||||
|   // 根据地区code查询地区详情 | ||||
|   $api_get_region_detail_by_code = '/api/mdc/pbc/region/getRegionDetailByCode'; | ||||
|  | ||||
|   // 导出企业 | ||||
|   $api_export_enterprise = '/api/mdc/cuc/enterpriseInfo/operate/export'; | ||||
| @ -101,6 +101,11 @@ export class UsermanageService extends BaseService { | ||||
|   // 车队长导出-运营后台 | ||||
|   $api_export_driver_cap = '/api/mdc/userDriverExpand/export'; | ||||
|  | ||||
|   // 营业执照识别 | ||||
|   $api_ocr_recognize_business_license = '/api/mdc/pbc/hwc/ocr/recognizeBusinessLicense'; | ||||
|   // 身份证识别 | ||||
|   $api_ocr_recognize_id_card = '/api/mdc/pbc/hwc/ocr/recognizeIdCard'; | ||||
|  | ||||
|   constructor(public injector: Injector, private nzModalService: NzModalService) { | ||||
|     super(injector); | ||||
|   } | ||||
|  | ||||
		Reference in New Issue
	
	Block a user