Merge branch 'develop' of https://gitlab.eascs.com/tms-ui/tms-obc-web into develop
This commit is contained in:
		| @ -1,6 +1,6 @@ | |||||||
| { | { | ||||||
|   "name": "tms-obc-web", |   "name": "tms-obc-web", | ||||||
|   "version": "1.0.1", |   "version": "1.2.0", | ||||||
|   "description": "运营后台-WEB", |   "description": "运营后台-WEB", | ||||||
|   "author": "cipchk <cipchk@qq.com>", |   "author": "cipchk <cipchk@qq.com>", | ||||||
|   "repository": { |   "repository": { | ||||||
|  | |||||||
| @ -4,7 +4,7 @@ | |||||||
|  * @Author       : Shiming |  * @Author       : Shiming | ||||||
|  * @Date         : 2022-01-18 09:51:21 |  * @Date         : 2022-01-18 09:51:21 | ||||||
|  * @LastEditors  : Shiming |  * @LastEditors  : Shiming | ||||||
|  * @LastEditTime : 2022-04-28 14:09:56 |  * @LastEditTime : 2022-04-28 16:08:43 | ||||||
|  * @FilePath     : \\tms-obc-web\\proxy.conf.js |  * @FilePath     : \\tms-obc-web\\proxy.conf.js | ||||||
|  * Copyright (C) 2022 huzhenhong. All rights reserved. |  * Copyright (C) 2022 huzhenhong. All rights reserved. | ||||||
|  */ |  */ | ||||||
| @ -30,7 +30,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 | ||||||
|     }, |     }, | ||||||
|  | |||||||
| @ -24,7 +24,7 @@ | |||||||
|  |  | ||||||
| <div nz-row [nzGutter]="16"> | <div nz-row [nzGutter]="16"> | ||||||
|   <div nz-col class="gutter-row" [nzSpan]="6"> |   <div nz-col class="gutter-row" [nzSpan]="6"> | ||||||
|     <g2-card [title]="'订单合格率'" [bordered]="true" [total]="cardData1?.proportion" [footer]="footer1" contentHeight="46"> |     <g2-card [title]="'订单合格率'" [bordered]="true" [total]="cardData1?.proportion || '0'" [footer]="footer1" contentHeight="46"> | ||||||
|       <ng-template #footer1> |       <ng-template #footer1> | ||||||
|         <div class="card-f"> |         <div class="card-f"> | ||||||
|           <span class="card-f-l">合格:{{cardData1?.leftQuantity}}</span> <span>不合格:{{cardData1?.rightQuantity}}</span> |           <span class="card-f-l">合格:{{cardData1?.leftQuantity}}</span> <span>不合格:{{cardData1?.rightQuantity}}</span> | ||||||
| @ -33,7 +33,7 @@ | |||||||
|     </g2-card> |     </g2-card> | ||||||
|   </div> |   </div> | ||||||
|   <div nz-col class="gutter-row" [nzSpan]="6"> |   <div nz-col class="gutter-row" [nzSpan]="6"> | ||||||
|     <g2-card [title]="'货源单占比'" [bordered]="true" [total]="cardData2?.proportion" [footer]="footer2" contentHeight="46"> |     <g2-card [title]="'货源单占比'" [bordered]="true" [total]="cardData2?.proportion|| '0'" [footer]="footer2" contentHeight="46"> | ||||||
|       <ng-template #footer2> |       <ng-template #footer2> | ||||||
|         <div class="card-f"> |         <div class="card-f"> | ||||||
|           <span class="card-f-l">货源单:{{cardData2?.leftQuantity}}</span> <span>合同单:{{cardData2?.rightQuantity}}</span> |           <span class="card-f-l">货源单:{{cardData2?.leftQuantity}}</span> <span>合同单:{{cardData2?.rightQuantity}}</span> | ||||||
| @ -42,7 +42,7 @@ | |||||||
|     </g2-card> |     </g2-card> | ||||||
|   </div> |   </div> | ||||||
|   <div nz-col class="gutter-row" [nzSpan]="6"> |   <div nz-col class="gutter-row" [nzSpan]="6"> | ||||||
|     <g2-card [title]="'运费直付占比'" [bordered]="true" [total]="cardData3?.proportion" [footer]="footer3" contentHeight="46"> |     <g2-card [title]="'运费直付占比'" [bordered]="true" [total]="cardData3?.proportion|| '0'" [footer]="footer3" contentHeight="46"> | ||||||
|       <ng-template #footer3> |       <ng-template #footer3> | ||||||
|         <div class="card-f"> |         <div class="card-f"> | ||||||
|           <span class="card-f-l">司机:{{cardData3?.leftQuantity}}</span> <span>车队长:{{cardData3?.rightQuantity}}</span> |           <span class="card-f-l">司机:{{cardData3?.leftQuantity}}</span> <span>车队长:{{cardData3?.rightQuantity}}</span> | ||||||
| @ -51,7 +51,7 @@ | |||||||
|     </g2-card> |     </g2-card> | ||||||
|     </div> |     </div> | ||||||
|   <div nz-col class="gutter-row" [nzSpan]="6"> |   <div nz-col class="gutter-row" [nzSpan]="6"> | ||||||
|     <g2-card [title]="'付款及时率'" [bordered]="true" [total]="cardData4?.proportion" [footer]="footer4" contentHeight="46"> |     <g2-card [title]="'付款及时率'" [bordered]="true" [total]="cardData4?.proportion|| '0'" [footer]="footer4" contentHeight="46"> | ||||||
|       <ng-template #footer4> |       <ng-template #footer4> | ||||||
|         <div class="card-f"> |         <div class="card-f"> | ||||||
|           <span class="card-f-l">准时:{{cardData4?.leftQuantity}}</span> <span>逾期:{{cardData4?.rightQuantity}}</span> |           <span class="card-f-l">准时:{{cardData4?.leftQuantity}}</span> <span>逾期:{{cardData4?.rightQuantity}}</span> | ||||||
|  | |||||||
| @ -47,27 +47,30 @@ export class DatatableComplianceIndexComponent implements OnInit { | |||||||
|       time:this.time |       time:this.time | ||||||
|     } |     } | ||||||
|     this.service.request(this.service.$api_getBillRateQualified, params).subscribe(res => { |     this.service.request(this.service.$api_getBillRateQualified, params).subscribe(res => { | ||||||
|  |  | ||||||
|         if (res) { |         if (res) { | ||||||
|          this.cardData1 = res; |          this.cardData1 = res; | ||||||
|          this.cardData1.proportion = this.cardData1.proportion*100 +'%' |          console.log(this.cardData1); | ||||||
|  |           | ||||||
|  |          this.cardData1.proportion = (this.cardData1?.proportion*100).toFixed(2) +'%' | ||||||
|         } |         } | ||||||
|     }); |     }); | ||||||
|     this.service.request(this.service.$api_getBillRateProportion, params).subscribe(res => { |     this.service.request(this.service.$api_getBillRateProportion, params).subscribe(res => { | ||||||
|         if (res) { |         if (res) { | ||||||
|          this.cardData2 = res; |          this.cardData2 = res; | ||||||
|          this.cardData2.proportion = this.cardData2.proportion*100 +'%' |          this.cardData2.proportion = (this.cardData2?.proportion*100).toFixed(2) +'%' | ||||||
|         } |         } | ||||||
|     }); |     }); | ||||||
|     this.service.request(this.service.$api_getBillRateDirectPayment, params).subscribe(res => { |     this.service.request(this.service.$api_getBillRateDirectPayment, params).subscribe(res => { | ||||||
|         if (res) { |         if (res) { | ||||||
|          this.cardData3 = res; |          this.cardData3 = res; | ||||||
|          this.cardData3.proportion = this.cardData3.proportion*100 +'%' |          this.cardData3.proportion = (this.cardData3?.proportion*100).toFixed(2) +'%' | ||||||
|         } |         } | ||||||
|     }); |     }); | ||||||
|     this.service.request(this.service.$api_getBillTimelyPayment, params).subscribe(res => { |     this.service.request(this.service.$api_getBillTimelyPayment, params).subscribe(res => { | ||||||
|         if (res) { |         if (res) { | ||||||
|          this.cardData4 = res; |          this.cardData4 = res; | ||||||
|          this.cardData4.proportion = this.cardData4.proportion*100 +'%' |          this.cardData4.proportion = (this.cardData4?.proportion*100).toFixed(2) +'%' | ||||||
|         } |         } | ||||||
|     }); |     }); | ||||||
|  |  | ||||||
|  | |||||||
| @ -273,6 +273,7 @@ export class PayableOrderComponent implements OnInit { | |||||||
|         buttons: [ |         buttons: [ | ||||||
|           { |           { | ||||||
|             text: '浏览', |             text: '浏览', | ||||||
|  |             acl: { ability: ['FINANCIAL-PAYABLE-view'] }, | ||||||
|             click: item => |             click: item => | ||||||
|               this.router.navigate(['/financial-management/payable-order/detail/' + item.id], { queryParams: { billHId: item.id } }) |               this.router.navigate(['/financial-management/payable-order/detail/' + item.id], { queryParams: { billHId: item.id } }) | ||||||
|           } |           } | ||||||
|  | |||||||
| @ -33,7 +33,7 @@ | |||||||
|         </div> |         </div> | ||||||
|         <div class="mr-sm"> |         <div class="mr-sm"> | ||||||
|             <button nz-button nzDanger [nzLoading]="service.http.loading" (click)="openDrawer()" acl |             <button nz-button nzDanger [nzLoading]="service.http.loading" (click)="openDrawer()" acl | ||||||
|                 [acl-ability]="['FINANCIAL-RECEIPT-list']">筛选</button> |                 [acl-ability]="['FINANCIAL-PAYMENT-ORDER-list']">筛选</button> | ||||||
|         </div> |         </div> | ||||||
|     </div> |     </div> | ||||||
|  |  | ||||||
|  | |||||||
| @ -251,6 +251,7 @@ export class ReceiptOrderComponent extends BasicTableComponent implements OnInit | |||||||
|         buttons: [ |         buttons: [ | ||||||
|           { |           { | ||||||
|             text: '浏览', |             text: '浏览', | ||||||
|  |             acl: { ability: ['FINANCIAL-RECEIPT-view'] }, | ||||||
|             click: item => this.router.navigate(['/financial-management/receipt-order/detail/' + item.id]) |             click: item => this.router.navigate(['/financial-management/receipt-order/detail/' + item.id]) | ||||||
|           } |           } | ||||||
|           // { |           // { | ||||||
|  | |||||||
| @ -40,7 +40,8 @@ | |||||||
|         <label class="page_title"> <label class="driver">|</label> 充值记录</label> |         <label class="page_title"> <label class="driver">|</label> 充值记录</label> | ||||||
|         <div class="mr-sm"> |         <div class="mr-sm"> | ||||||
|             <button nz-button nzDanger [nzLoading]="service.http.loading" (click)="openDrawer()">筛选</button> |             <button nz-button nzDanger [nzLoading]="service.http.loading" (click)="openDrawer()">筛选</button> | ||||||
|             <button nz-button nzDanger (click)="exportList()"> 导出</button> |             <button nz-button nzDanger (click)="exportList()" acl [acl-ability]="['FINANCIAL-RECHARGE-export']"> | ||||||
|  |                 导出</button> | ||||||
|         </div> |         </div> | ||||||
|     </div> |     </div> | ||||||
|     <st #st [data]="service.$api_get_recharge_page" [columns]="columns" [req]="{ process: beforeReq }" [page]="{}" |     <st #st [data]="service.$api_get_recharge_page" [columns]="columns" [req]="{ process: beforeReq }" [page]="{}" | ||||||
|  | |||||||
| @ -119,7 +119,7 @@ export class RechargeRecordComponent extends BasicTableComponent implements OnIn | |||||||
|           title: '账户名称', |           title: '账户名称', | ||||||
|           ui: { |           ui: { | ||||||
|             placeholder: '请输入', |             placeholder: '请输入', | ||||||
|             autocomplete: 'off', |             autocomplete: 'off' | ||||||
|           } |           } | ||||||
|         }, |         }, | ||||||
|         accountType: { |         accountType: { | ||||||
| @ -133,7 +133,7 @@ export class RechargeRecordComponent extends BasicTableComponent implements OnIn | |||||||
|           ], |           ], | ||||||
|           ui: { |           ui: { | ||||||
|             widget: 'select', |             widget: 'select', | ||||||
|             placeholder: '请选择', |             placeholder: '请选择' | ||||||
|           }, |           }, | ||||||
|           default: '' |           default: '' | ||||||
|         }, |         }, | ||||||
| @ -157,7 +157,7 @@ export class RechargeRecordComponent extends BasicTableComponent implements OnIn | |||||||
|           ], |           ], | ||||||
|           ui: { |           ui: { | ||||||
|             widget: 'select', |             widget: 'select', | ||||||
|             placeholder: '请选择', |             placeholder: '请选择' | ||||||
|           }, |           }, | ||||||
|           default: '' |           default: '' | ||||||
|         } |         } | ||||||
| @ -195,6 +195,7 @@ export class RechargeRecordComponent extends BasicTableComponent implements OnIn | |||||||
|           { type: 'divider' }, |           { type: 'divider' }, | ||||||
|           { |           { | ||||||
|             text: '查看回单<br>', |             text: '查看回单<br>', | ||||||
|  |             acl: { ability: ['FINANCIAL-RECHARGE-receiptApply'] }, | ||||||
|             click: item => |             click: item => | ||||||
|               this.service.getReceiptUrl(item.receiptUrl, { |               this.service.getReceiptUrl(item.receiptUrl, { | ||||||
|                 bankType: item.bankType, |                 bankType: item.bankType, | ||||||
| @ -207,6 +208,7 @@ export class RechargeRecordComponent extends BasicTableComponent implements OnIn | |||||||
|           }, |           }, | ||||||
|           { |           { | ||||||
|             text: '添加备注', |             text: '添加备注', | ||||||
|  |             acl: { ability: ['FINANCIAL-RECHARGE-addRemark'] }, | ||||||
|             click: item => this.addRemark(item) |             click: item => this.addRemark(item) | ||||||
|           } |           } | ||||||
|         ] |         ] | ||||||
|  | |||||||
| @ -283,10 +283,12 @@ export class VoucherSummaryComponent extends BasicTableComponent implements OnIn | |||||||
|         buttons: [ |         buttons: [ | ||||||
|           { |           { | ||||||
|             text: '浏览', |             text: '浏览', | ||||||
|  |             acl: { ability: ['FINANCIAL-VOUCHER-SUMMARY-view'] }, | ||||||
|             click: (item: any) => this.router.navigate(['/financial-management/voucher-summary/detail/' + item.id]) |             click: (item: any) => this.router.navigate(['/financial-management/voucher-summary/detail/' + item.id]) | ||||||
|           }, |           }, | ||||||
|           { |           { | ||||||
|             text: '列表', |             text: '列表', | ||||||
|  |             acl: { ability: ['FINANCIAL-VOUCHER-SUMMARY-child-list'] }, | ||||||
|             click: (item: any) => this.router.navigate(['/financial-management/voucher-summary/list/' + item.vc2code]) |             click: (item: any) => this.router.navigate(['/financial-management/voucher-summary/list/' + item.vc2code]) | ||||||
|           } |           } | ||||||
|         ] |         ] | ||||||
|  | |||||||
| @ -39,16 +39,24 @@ const routes: Routes = [ | |||||||
|   { path: 'freight-account', component: FreightAccountComponent, data: { guard: { ability: ['FINANCIAL-FREIGHT-ACOUNT-list'] } } }, |   { path: 'freight-account', component: FreightAccountComponent, data: { guard: { ability: ['FINANCIAL-FREIGHT-ACOUNT-list'] } } }, | ||||||
|   { path: 'freight-account/detail/:id', component: FreightAccountDetailComponent }, |   { path: 'freight-account/detail/:id', component: FreightAccountDetailComponent }, | ||||||
|   { path: 'driver-account', component: DriverAccountComponent, data: { guard: { ability: ['FINANCIAL-DRIVER-ACOUNT-list'] } } }, |   { path: 'driver-account', component: DriverAccountComponent, data: { guard: { ability: ['FINANCIAL-DRIVER-ACOUNT-list'] } } }, | ||||||
|   { path: 'driver-account/detail/:id', component: DriverAccountDetailComponent, data: { guard: { ability: ['FINANCIAL-DRIVER-ACOUNT-DETAIL-view'] } } }, |   { | ||||||
|   { path: 'platform-account', component: PlatformAccountComponent , data: { guard: { ability: ['FINANCIAL-PLATFORM-list'] } } }, |     path: 'driver-account/detail/:id', | ||||||
|   { path: 'platform-account/detail/:id', component: PlatformAccountDetailComponent , data: { guard: { ability: ['FINANCIAL-PLATFORM-DETAIL-detail'] } } }, |     component: DriverAccountDetailComponent, | ||||||
|   { path: 'recharge-record', component: RechargeRecordComponent }, |     data: { guard: { ability: ['FINANCIAL-DRIVER-ACOUNT-DETAIL-view'] } } | ||||||
|  |   }, | ||||||
|  |   { path: 'platform-account', component: PlatformAccountComponent, data: { guard: { ability: ['FINANCIAL-PLATFORM-list'] } } }, | ||||||
|  |   { | ||||||
|  |     path: 'platform-account/detail/:id', | ||||||
|  |     component: PlatformAccountDetailComponent, | ||||||
|  |     data: { guard: { ability: ['FINANCIAL-PLATFORM-DETAIL-detail'] } } | ||||||
|  |   }, | ||||||
|  |   { path: 'recharge-record', component: RechargeRecordComponent, data: { guard: { ability: ['FINANCIAL-RECHARGE-list'] } } }, | ||||||
|   { path: 'withdrawals-record', component: WithdrawalsRecordComponent }, |   { path: 'withdrawals-record', component: WithdrawalsRecordComponent }, | ||||||
|   { path: 'withdrawals-record/detail/:id', component: WithdrawalsDetailComponent }, |   { path: 'withdrawals-record/detail/:id', component: WithdrawalsDetailComponent }, | ||||||
|   { path: 'refund-record', component: RefundRecordComponent }, |   { path: 'refund-record', component: RefundRecordComponent }, | ||||||
|   { path: 'voucher-management', component: VoucherManagementComponent }, |   { path: 'voucher-management', component: VoucherManagementComponent, data: { guard: { ability: ['FINANCIAL-VOUCHER-list'] } } }, | ||||||
|   { path: 'voucher-management/detail/:id', component: VoucherDetailComponent }, |   { path: 'voucher-management/detail/:id', component: VoucherDetailComponent }, | ||||||
|   { path: 'voucher-summary', component: VoucherSummaryComponent }, |   { path: 'voucher-summary', component: VoucherSummaryComponent, data: { guard: { ability: ['FINANCIAL-VOUCHER-SUMMARY-list'] } } }, | ||||||
|   { path: 'voucher-summary/detail/:id', component: SummaryDetailComponent }, |   { path: 'voucher-summary/detail/:id', component: SummaryDetailComponent }, | ||||||
|   { path: 'voucher-summary/list/:id', component: VoucherListComponent }, |   { path: 'voucher-summary/list/:id', component: VoucherListComponent }, | ||||||
|   { path: 'voucher-summary/list/detail/:id', component: VoucherDetailComponent }, |   { path: 'voucher-summary/list/detail/:id', component: VoucherDetailComponent }, | ||||||
| @ -66,10 +74,18 @@ const routes: Routes = [ | |||||||
|   { path: 'receipt-order/detail/:id', component: ReceiptOrderDetailComponent }, |   { path: 'receipt-order/detail/:id', component: ReceiptOrderDetailComponent }, | ||||||
|   { path: 'advance-collection', component: AdvanceCollectionComponent }, |   { path: 'advance-collection', component: AdvanceCollectionComponent }, | ||||||
|   { path: 'advance-collection/detail/:id', component: AdvanceCollectionDetailComponent }, |   { path: 'advance-collection/detail/:id', component: AdvanceCollectionDetailComponent }, | ||||||
|   { path: 'receivable-order', component: ReceivableOrderComponent, data: { guard: { ability: ['FINANCIAL-RECEIVABLE-list'] } }  }, |   { path: 'receivable-order', component: ReceivableOrderComponent, data: { guard: { ability: ['FINANCIAL-RECEIVABLE-list'] } } }, | ||||||
|   { path: 'receivable-order/detail/:id', component: ReceivableOrderDetailComponent, data: { guard: { ability: ['FINANCIAL-RECEIVABLE-DETAIL-view'] } }  }, |   { | ||||||
|  |     path: 'receivable-order/detail/:id', | ||||||
|  |     component: ReceivableOrderDetailComponent, | ||||||
|  |     data: { guard: { ability: ['FINANCIAL-RECEIVABLE-DETAIL-view'] } } | ||||||
|  |   }, | ||||||
|   { path: 'payable-order', component: PayableOrderComponent, data: { guard: { ability: ['FINANCIAL-PAYABLE-list'] } } }, |   { path: 'payable-order', component: PayableOrderComponent, data: { guard: { ability: ['FINANCIAL-PAYABLE-list'] } } }, | ||||||
|   { path: 'payable-order/detail/:id', component: PayableOrderDetailComponent, data: { guard: { ability: ['FINANCIAL-PAYABLE-DETAIL-view'] } } }, |   { | ||||||
|  |     path: 'payable-order/detail/:id', | ||||||
|  |     component: PayableOrderDetailComponent, | ||||||
|  |     data: { guard: { ability: ['FINANCIAL-PAYABLE-DETAIL-view'] } } | ||||||
|  |   }, | ||||||
|   { path: 'bank-card-management/index', component: CwcBankCardManagementIndexComponent } |   { path: 'bank-card-management/index', component: CwcBankCardManagementIndexComponent } | ||||||
| ]; | ]; | ||||||
|  |  | ||||||
|  | |||||||
| @ -23,8 +23,8 @@ | |||||||
| <nz-card class="content-box"> | <nz-card class="content-box"> | ||||||
|  |  | ||||||
|     <nz-tabset> |     <nz-tabset> | ||||||
|         <nz-tab nzTitle="货主菜单" (nzClick)="changeMemu(0)"></nz-tab> |         <nz-tab nzTitle="货主菜单" (nzClick)="changeMemu(0)" *ngIf="isShowFre"></nz-tab> | ||||||
|         <nz-tab nzTitle="运营后台菜单" (nzClick)="changeMemu(1)"></nz-tab> |         <nz-tab nzTitle="运营后台菜单" (nzClick)="changeMemu(1)" *ngIf="isShowBackEND"></nz-tab> | ||||||
|     </nz-tabset> |     </nz-tabset> | ||||||
|  |  | ||||||
|     <!-- <st #st [data]="service.$api_get_all" [columns]="columns" [expand]="expand" expandRowByClick |     <!-- <st #st [data]="service.$api_get_all" [columns]="columns" [expand]="expand" expandRowByClick | ||||||
| @ -36,7 +36,7 @@ | |||||||
|     </ng-template> |     </ng-template> | ||||||
|   </st> --> |   </st> --> | ||||||
|     <nz-table #expandTable [nzData]="listOfMapData" nzTableLayout="fixed" nzBordered nzSize="small" |     <nz-table #expandTable [nzData]="listOfMapData" nzTableLayout="fixed" nzBordered nzSize="small" | ||||||
|         [nzLoading]="service.http.loading"> |         [nzLoading]="service.http.loading" *ngIf="isShowFre || isShowBackEND"> | ||||||
|         <thead> |         <thead> | ||||||
|             <tr> |             <tr> | ||||||
|                 <!-- <th nzWidth="70px" nzAlign="center">#</th> --> |                 <!-- <th nzWidth="70px" nzAlign="center">#</th> --> | ||||||
| @ -65,7 +65,7 @@ | |||||||
|                         </td> |                         </td> | ||||||
|                         <td nzWidth="100px">{{ item.sorted }}</td> |                         <td nzWidth="100px">{{ item.sorted }}</td> | ||||||
|                         <td nzWidth="150px" nzAlign="center"> |                         <td nzWidth="150px" nzAlign="center"> | ||||||
|                             <a (click)="openDrawer(item)">权限配置</a> |                             <a (click)="openDrawer(item)" acl [acl-ability]="['MENU-AUTH-auth']">权限配置</a> | ||||||
|                         </td> |                         </td> | ||||||
|                     </tr> |                     </tr> | ||||||
|                 </ng-container> |                 </ng-container> | ||||||
|  | |||||||
| @ -1,4 +1,5 @@ | |||||||
| import { Component, OnInit, ViewChild } from '@angular/core'; | import { Component, OnInit, ViewChild } from '@angular/core'; | ||||||
|  | import { ACLService } from '@delon/acl'; | ||||||
| import { SFComponent, SFSchema } from '@delon/form'; | import { SFComponent, SFSchema } from '@delon/form'; | ||||||
| import { EAEnvironmentService } from '@shared'; | import { EAEnvironmentService } from '@shared'; | ||||||
| import { NzDrawerService } from 'ng-zorro-antd/drawer'; | import { NzDrawerService } from 'ng-zorro-antd/drawer'; | ||||||
| @ -34,14 +35,26 @@ export class ApiAuthComponent implements OnInit { | |||||||
|  |  | ||||||
|   mapOfExpandedData: { [key: string]: any[] } = {}; |   mapOfExpandedData: { [key: string]: any[] } = {}; | ||||||
|   listOfMapData: any[] = []; |   listOfMapData: any[] = []; | ||||||
|   constructor(private envSrv: EAEnvironmentService, public service: MenuManagerService, private drawer: NzDrawerService) { |  | ||||||
|  |   isShowBackEND = false; | ||||||
|  |   isShowFre = false; | ||||||
|  |  | ||||||
|  |   constructor( | ||||||
|  |     private envSrv: EAEnvironmentService, | ||||||
|  |     public service: MenuManagerService, | ||||||
|  |     private drawer: NzDrawerService, | ||||||
|  |     private acl: ACLService | ||||||
|  |   ) { | ||||||
|  |     const acls = acl.data.abilities || []; | ||||||
|  |     this.isShowBackEND = acl.data.full || !!acls.find(acl => acl === 'MENU-AUTH-obclist'); | ||||||
|  |     this.isShowFre = acl.data.full || !!acls.find(acl => acl === 'MENU-AUTH-smclist'); | ||||||
|     this.initData(); |     this.initData(); | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   ngOnInit(): void {} |   ngOnInit(): void {} | ||||||
|  |  | ||||||
|   initData(): void { |   initData(): void { | ||||||
|     this.selectedPlatform = this.platforms[0]; |     this.selectedPlatform = this.isShowFre ? this.platforms[0] : this.platforms[1]; | ||||||
|     this.loadMemu(this.selectedPlatform.appId); |     this.loadMemu(this.selectedPlatform.appId); | ||||||
|   } |   } | ||||||
|  |  | ||||||
|  | |||||||
| @ -23,14 +23,15 @@ | |||||||
| <nz-card class="content-box"> | <nz-card class="content-box"> | ||||||
|  |  | ||||||
|   <nz-tabset [nzTabBarExtraContent]="extraTemplate"> |   <nz-tabset [nzTabBarExtraContent]="extraTemplate"> | ||||||
|     <nz-tab nzTitle="货主菜单" (nzClick)="changeMemu(0)"></nz-tab> |     <nz-tab nzTitle="货主菜单" (nzClick)="changeMemu(0)" *ngIf="isShowFre"></nz-tab> | ||||||
|     <nz-tab nzTitle="运营后台菜单" (nzClick)="changeMemu(1)"></nz-tab> |     <nz-tab nzTitle="运营后台菜单" (nzClick)="changeMemu(1)" *ngIf="isShowBackEND"></nz-tab> | ||||||
|   </nz-tabset> |   </nz-tabset> | ||||||
|   <ng-template #extraTemplate> |   <ng-template #extraTemplate> | ||||||
|     <div class="d-flex align-items-center"> |     <div class="d-flex align-items-center"> | ||||||
|       <div> |       <div> | ||||||
|         <button nz-button nzType="primary" (click)="menuAction('新增菜单')">新增</button> |         <button nz-button nzType="primary" (click)="menuAction('新增菜单')" acl | ||||||
|         <button nz-button nzType="primary" (click)="menuSort()">菜单排序</button> |           [acl-ability]="['MENU-INDEX-add']">新增</button> | ||||||
|  |         <button nz-button nzType="primary" (click)="menuSort()" acl [acl-ability]="['MENU-INDEX-sort']">菜单排序</button> | ||||||
|         <!-- <button nz-button nzType="primary" (click)="menuImport(0)" [disabled]="false" |         <!-- <button nz-button nzType="primary" (click)="menuImport(0)" [disabled]="false" | ||||||
|           *ngIf="selectedPlatform.enName==='tms-smc-web'"> |           *ngIf="selectedPlatform.enName==='tms-smc-web'"> | ||||||
|           导入货主菜单 |           导入货主菜单 | ||||||
| @ -52,7 +53,7 @@ | |||||||
|     </ng-template> |     </ng-template> | ||||||
|   </st> --> |   </st> --> | ||||||
|   <nz-table #expandTable [nzData]="listOfMapData" nzTableLayout="fixed" nzBordered nzSize="small" |   <nz-table #expandTable [nzData]="listOfMapData" nzTableLayout="fixed" nzBordered nzSize="small" | ||||||
|     [nzLoading]="service.http.loading"> |     [nzLoading]="service.http.loading" *ngIf="isShowFre || isShowBackEND"> | ||||||
|     <thead> |     <thead> | ||||||
|       <tr> |       <tr> | ||||||
|         <!-- <th nzWidth="70px" nzAlign="center">#</th> --> |         <!-- <th nzWidth="70px" nzAlign="center">#</th> --> | ||||||
| @ -85,12 +86,12 @@ | |||||||
|             <td nzAlign="center" nzWidth="250px"> |             <td nzAlign="center" nzWidth="250px"> | ||||||
|               <a (click)="menuAction('查看菜单',item,item.parentId,true)">查看</a> |               <a (click)="menuAction('查看菜单',item,item.parentId,true)">查看</a> | ||||||
|               <nz-divider nzType="vertical"></nz-divider> |               <nz-divider nzType="vertical"></nz-divider> | ||||||
|               <a (click)="menuAction('编辑菜单',item,item.parentId)">编辑</a> |               <a (click)="menuAction('编辑菜单',item,item.parentId)" acl [acl-ability]="['MENU-INDEX-edit']">编辑</a> | ||||||
|               <nz-divider nzType="vertical"></nz-divider> |               <nz-divider nzType="vertical"></nz-divider> | ||||||
|               <a (click)="deleteAction(item)">删除</a> |               <a (click)="deleteAction(item)" acl [acl-ability]="['MENU-INDEX-delete']">删除</a> | ||||||
|               <ng-container *ngIf="item.level!==3"> |               <ng-container *ngIf="item.level!==3"> | ||||||
|                 <nz-divider nzType="vertical"></nz-divider> |                 <nz-divider nzType="vertical"></nz-divider> | ||||||
|                 <a (click)="menuAction('新增菜单',null,item.id)">新增子项</a> |                 <a (click)="menuAction('新增菜单',null,item.id)" acl [acl-ability]="['MENU-INDEX-add']">新增子项</a> | ||||||
|               </ng-container> |               </ng-container> | ||||||
|             </td> |             </td> | ||||||
|           </tr> |           </tr> | ||||||
|  | |||||||
| @ -1,5 +1,6 @@ | |||||||
| import { Component, OnInit, ViewChild } from '@angular/core'; | import { Component, OnInit, ViewChild } from '@angular/core'; | ||||||
| import { STComponent, STColumn, STRequestOptions, STChange } from '@delon/abc/st'; | import { STComponent, STColumn, STRequestOptions, STChange } from '@delon/abc/st'; | ||||||
|  | import { ACLService } from '@delon/acl'; | ||||||
| import { SFComponent, SFSchema } from '@delon/form'; | import { SFComponent, SFSchema } from '@delon/form'; | ||||||
| import { Menu, ModalHelper } from '@delon/theme'; | import { Menu, ModalHelper } from '@delon/theme'; | ||||||
| import { EAEnvironmentService } from '@shared'; | import { EAEnvironmentService } from '@shared'; | ||||||
| @ -37,14 +38,26 @@ export class MenuManagerComponentsIndexComponent implements OnInit { | |||||||
|  |  | ||||||
|   mapOfExpandedData: { [key: string]: any[] } = {}; |   mapOfExpandedData: { [key: string]: any[] } = {}; | ||||||
|   listOfMapData: any[] = []; |   listOfMapData: any[] = []; | ||||||
|   constructor(private envSrv: EAEnvironmentService, public service: MenuManagerService, private modal: NzModalService, private modalHelper: ModalHelper,) { |  | ||||||
|  |   isShowBackEND = false; | ||||||
|  |   isShowFre = false; | ||||||
|  |   constructor( | ||||||
|  |     private envSrv: EAEnvironmentService, | ||||||
|  |     public service: MenuManagerService, | ||||||
|  |     private modal: NzModalService, | ||||||
|  |     private modalHelper: ModalHelper, | ||||||
|  |     private acl: ACLService | ||||||
|  |   ) { | ||||||
|  |     const acls = acl.data.abilities || []; | ||||||
|  |     this.isShowBackEND = acl.data.full || !!acls.find(acl => acl === 'MENU-INDEX-obclist'); | ||||||
|  |     this.isShowFre = acl.data.full || !!acls.find(acl => acl === 'MENU-INDEX-smclist'); | ||||||
|     this.initData(); |     this.initData(); | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   ngOnInit(): void {} |   ngOnInit(): void {} | ||||||
|  |  | ||||||
|   initData(): void { |   initData(): void { | ||||||
|     this.selectedPlatform = this.platforms[0]; |     this.selectedPlatform = this.isShowFre ? this.platforms[0] : this.platforms[1]; | ||||||
|     this.loadMemu(this.selectedPlatform.appId); |     this.loadMemu(this.selectedPlatform.appId); | ||||||
|   } |   } | ||||||
|  |  | ||||||
| @ -126,13 +139,13 @@ export class MenuManagerComponentsIndexComponent implements OnInit { | |||||||
|       } |       } | ||||||
|     }); |     }); | ||||||
|   } |   } | ||||||
|   menuSort(){ |   menuSort() { | ||||||
|     const dialogData = { |     const dialogData = { | ||||||
|       appId: this.selectedPlatform.appId |       appId: this.selectedPlatform.appId | ||||||
|     }; |     }; | ||||||
|     this.modalHelper.create(MenuManagerMenusortComponent, { i: dialogData }, { size: 900 }).subscribe((res:any) => { |     this.modalHelper.create(MenuManagerMenusortComponent, { i: dialogData }, { size: 900 }).subscribe((res: any) => { | ||||||
|       if(res) { |       if (res) { | ||||||
|         console.log('a') |         console.log('a'); | ||||||
|         this.loadMemu(this.selectedPlatform.appId); |         this.loadMemu(this.selectedPlatform.appId); | ||||||
|       } |       } | ||||||
|     }); |     }); | ||||||
|  | |||||||
| @ -5,12 +5,16 @@ import { MenuManagerComponentsIndexComponent } from './components/index/index.co | |||||||
|  |  | ||||||
| const routes: Routes = [ | const routes: Routes = [ | ||||||
|   { path: '', redirectTo: 'index', pathMatch: 'full' }, |   { path: '', redirectTo: 'index', pathMatch: 'full' }, | ||||||
|   { path: 'index', component: MenuManagerComponentsIndexComponent }, |   { | ||||||
|   { path: 'auth', component: ApiAuthComponent }, |     path: 'index', | ||||||
|  |     component: MenuManagerComponentsIndexComponent, | ||||||
|  |     data: { guard: { ability: ['MENU-INDEX-obclist', 'MENU-INDEX-smclist'] } } | ||||||
|  |   }, | ||||||
|  |   { path: 'auth', component: ApiAuthComponent, data: { guard: { ability: ['MENU-AUTH-obclist', 'MENU-AUTH-smclist'] } } } | ||||||
| ]; | ]; | ||||||
|  |  | ||||||
| @NgModule({ | @NgModule({ | ||||||
|   imports: [RouterModule.forChild(routes)], |   imports: [RouterModule.forChild(routes)], | ||||||
|   exports: [RouterModule], |   exports: [RouterModule] | ||||||
| }) | }) | ||||||
| export class MenuManagerRoutingModule {} | export class MenuManagerRoutingModule {} | ||||||
|  | |||||||
| @ -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-04-13 19:52:15 |  * @LastEditTime : 2022-04-28 19:49:17 | ||||||
|  * @FilePath     : \\tms-obc-web\\src\\app\\routes\\order-management\\components\\vehicle-detail\\vehicle-detail.component.ts |  * @FilePath     : \\tms-obc-web\\src\\app\\routes\\order-management\\components\\vehicle-detail\\vehicle-detail.component.ts | ||||||
|  * Copyright (C) 2022 huzhenhong. All rights reserved. |  * Copyright (C) 2022 huzhenhong. All rights reserved. | ||||||
|  */ |  */ | ||||||
| @ -112,8 +112,6 @@ export class OrderManagementVehicleDetailComponent implements OnInit { | |||||||
|           .request(this.service.$api_get_log_list, { operateObject: this.i?.billCode, operateTypeList: ['3', '8'] }) |           .request(this.service.$api_get_log_list, { operateObject: this.i?.billCode, operateTypeList: ['3', '8'] }) | ||||||
|           .subscribe(res => { |           .subscribe(res => { | ||||||
|             if (res) { |             if (res) { | ||||||
|               console.log('操作日志'); |  | ||||||
|               console.log(res); |  | ||||||
|               let a: any = []; |               let a: any = []; | ||||||
|               res.records.forEach((item: any) => { |               res.records.forEach((item: any) => { | ||||||
|                 a.push({ |                 a.push({ | ||||||
| @ -122,7 +120,6 @@ export class OrderManagementVehicleDetailComponent implements OnInit { | |||||||
|                   color: 'green' |                   color: 'green' | ||||||
|                 }); |                 }); | ||||||
|               }); |               }); | ||||||
|               console.log(a); |  | ||||||
|               this.operationList = a; |               this.operationList = a; | ||||||
|             } |             } | ||||||
|           }); |           }); | ||||||
| @ -133,15 +130,11 @@ export class OrderManagementVehicleDetailComponent implements OnInit { | |||||||
|     }); |     }); | ||||||
|     this.service.request(this.service.$api_listBillComplianceAbnormalByBillId, { id: this.id }).subscribe(res => { |     this.service.request(this.service.$api_listBillComplianceAbnormalByBillId, { id: this.id }).subscribe(res => { | ||||||
|       if (res) { |       if (res) { | ||||||
|         console.log('风险详情'); |  | ||||||
|         console.log(res); |  | ||||||
|         this.abnormalList = res; |         this.abnormalList = res; | ||||||
|       } |       } | ||||||
|     }); |     }); | ||||||
|     this.service.request(this.service.$api_getAbnormalWarningByBillId, { id: this.id }).subscribe(res => { |     this.service.request(this.service.$api_getAbnormalWarningByBillId, { id: this.id }).subscribe(res => { | ||||||
|       if (res) { |       if (res) { | ||||||
|         console.log('异常预警'); |  | ||||||
|         console.log(res); |  | ||||||
|         this.warringList = res; |         this.warringList = res; | ||||||
|       } |       } | ||||||
|     }); |     }); | ||||||
|  | |||||||
| @ -4,7 +4,7 @@ | |||||||
|  * @Author       : Shiming |  * @Author       : Shiming | ||||||
|  * @Date         : 2021-12-29 17:27:37 |  * @Date         : 2021-12-29 17:27:37 | ||||||
|  * @LastEditors  : Shiming |  * @LastEditors  : Shiming | ||||||
|  * @LastEditTime : 2022-01-18 17:22:55 |  * @LastEditTime : 2022-04-28 19:28:16 | ||||||
|  * @FilePath     : \\tms-obc-web\\src\\app\\routes\\order-management\\modal\\vehicle\\modify-captain\\modify-captain.component.html |  * @FilePath     : \\tms-obc-web\\src\\app\\routes\\order-management\\modal\\vehicle\\modify-captain\\modify-captain.component.html | ||||||
|  * Copyright (C) 2022 huzhenhong. All rights reserved. |  * Copyright (C) 2022 huzhenhong. All rights reserved. | ||||||
| --> | --> | ||||||
| @ -28,8 +28,8 @@ | |||||||
|     <img style="height: 20px" [src]="item?.avatar" alt="" /> |     <img style="height: 20px" [src]="item?.avatar" alt="" /> | ||||||
|   </ng-template> |   </ng-template> | ||||||
|   <ng-template st-row="bankList" let-item let-index="index"> |   <ng-template st-row="bankList" let-item let-index="index"> | ||||||
|     <nz-select [(ngModel)]="bankData" style="width: 200px"> |     <nz-select [(ngModel)]="bankData" style="width: 300px"> | ||||||
|       <nz-option *ngFor="let i of item.bankList" [nzLabel]="i.bankCardNumber" [nzValue]="i.id"></nz-option> |       <nz-option *ngFor="let i of item.bankList" [nzLabel]="i.bankName + '/'+i.bankCardNumber" [nzValue]="i.id"></nz-option> | ||||||
|     </nz-select> |     </nz-select> | ||||||
|   </ng-template> |   </ng-template> | ||||||
|   <ng-template st-row="paymentMethodRate" let-item let-index="index"> |   <ng-template st-row="paymentMethodRate" let-item let-index="index"> | ||||||
|  | |||||||
| @ -4,7 +4,7 @@ | |||||||
|  * @Author       : Shiming |  * @Author       : Shiming | ||||||
|  * @Date         : 2021-12-30 14:45:39 |  * @Date         : 2021-12-30 14:45:39 | ||||||
|  * @LastEditors  : Shiming |  * @LastEditors  : Shiming | ||||||
|  * @LastEditTime : 2022-04-22 16:31:57 |  * @LastEditTime : 2022-04-28 19:27:14 | ||||||
|  * @FilePath     : \\tms-obc-web\\src\\app\\routes\\order-management\\modal\\vehicle\\modify-captain\\modify-captain.component.ts |  * @FilePath     : \\tms-obc-web\\src\\app\\routes\\order-management\\modal\\vehicle\\modify-captain\\modify-captain.component.ts | ||||||
|  * Copyright (C) 2022 huzhenhong. All rights reserved. |  * Copyright (C) 2022 huzhenhong. All rights reserved. | ||||||
|  */ |  */ | ||||||
| @ -38,6 +38,21 @@ export class VehicleModifyCaptainComponent implements OnInit { | |||||||
|     this.initSF(); |     this.initSF(); | ||||||
|     this.initST(); |     this.initST(); | ||||||
|   } |   } | ||||||
|  |   initData(id: string) { | ||||||
|  |     // this.service.request(this.service.$api_getDriverBankInfoList,  {roleId: id}).subscribe((res:any) => { | ||||||
|  |     //   console.log(res); | ||||||
|  |     //   if(res) { | ||||||
|  |     //     let List :any= [] | ||||||
|  |     //     res.forEach((element: any) => { | ||||||
|  |     //       List.push({ | ||||||
|  |     //         bankCardNumber: element.bankBranchName + '/'+element.bankCardNumber, | ||||||
|  |     //         value: element.id | ||||||
|  |     //       }) | ||||||
|  |     //     }); | ||||||
|  |     //     this.bankData =  List | ||||||
|  |     //   } | ||||||
|  |     // }) | ||||||
|  |   } | ||||||
|   initSF() { |   initSF() { | ||||||
|     this.schema = { |     this.schema = { | ||||||
|       properties: { |       properties: { | ||||||
| @ -120,6 +135,7 @@ export class VehicleModifyCaptainComponent implements OnInit { | |||||||
|     this.service.request(this.service.$api_get_getCarCaptainByMobile, params).subscribe((res: any) => { |     this.service.request(this.service.$api_get_getCarCaptainByMobile, params).subscribe((res: any) => { | ||||||
|       if (res) { |       if (res) { | ||||||
|         this.dataList = [res]; |         this.dataList = [res]; | ||||||
|  |         this.initData(res.appUserId); | ||||||
|       } |       } | ||||||
|     }); |     }); | ||||||
|   } |   } | ||||||
|  | |||||||
| @ -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-04-22 17:14:39 |  * @LastEditTime : 2022-04-28 19:19:01 | ||||||
|  * @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. | ||||||
|  */ |  */ | ||||||
| @ -222,6 +222,9 @@ export class OrderManagementService extends ShipperBaseService { | |||||||
|   // 订单上报推送 |   // 订单上报推送 | ||||||
|   $api_manualOrderSubmission = '/api/sdc/billOperate/manualOrderSubmission'; |   $api_manualOrderSubmission = '/api/sdc/billOperate/manualOrderSubmission'; | ||||||
|  |  | ||||||
|  |   // 获取司机所有银行卡信息 | ||||||
|  |   $api_getDriverBankInfoList= '/api/fcc/bankInfoDMC/getDriverBankInfoList'; | ||||||
|  |  | ||||||
|   // // 生成卸货单 |   // // 生成卸货单 | ||||||
|   // public $api_createBillDischargeGoods = `/api/sdc/billOperate/createBillDischargeGoods`; |   // public $api_createBillDischargeGoods = `/api/sdc/billOperate/createBillDischargeGoods`; | ||||||
|   // // 生成提货单 |   // // 生成提货单 | ||||||
|  | |||||||
| @ -1,4 +1,17 @@ | |||||||
|  | <!-- | ||||||
|  |  * @Description  :  | ||||||
|  |  * @Version      : 1.0 | ||||||
|  |  * @Author       : Shiming | ||||||
|  |  * @Date         : 2022-04-21 13:49:22 | ||||||
|  |  * @LastEditors  : Shiming | ||||||
|  |  * @LastEditTime : 2022-04-28 17:40:42 | ||||||
|  |  * @FilePath     : \\tms-obc-web\\src\\app\\routes\\supply-management\\components\\assigned-car\\assigned-car.component.html | ||||||
|  |  * Copyright (C) 2022 huzhenhong. All rights reserved. | ||||||
|  | --> | ||||||
|  | <nz-spin [nzSpinning]="service.http.loading"> | ||||||
|  |  | ||||||
| <div> | <div> | ||||||
|  |  | ||||||
|   <div nz-row> |   <div nz-row> | ||||||
|     <div nz-col nzSpan="18"> |     <div nz-col nzSpan="18"> | ||||||
|       <sf #sf [schema]="schema" mode="search" [ui]="ui" [compact]="true" (formSubmit)="st.load(1)" |       <sf #sf [schema]="schema" mode="search" [ui]="ui" [compact]="true" (formSubmit)="st.load(1)" | ||||||
| @ -41,9 +54,12 @@ | |||||||
|       </ng-template> |       </ng-template> | ||||||
|     </st> |     </st> | ||||||
|   </div> |   </div> | ||||||
|   <div class="modal-footer"> |  | ||||||
|     <button nz-button type="button" (click)="close()">关闭</button> | </div> | ||||||
|     <button nz-button type="submit" nzType="primary" (click)="verifyVechicleStatus(params)" [disabled]="!selectedRows" | </nz-spin > | ||||||
|       [nzLoading]="service.http.loading">发布并指派给司机</button> |  | ||||||
|   </div> | <div class="modal-footer"> | ||||||
|  |   <button nz-button type="button" (click)="close()">关闭</button> | ||||||
|  |   <button nz-button type="submit" nzType="primary" (click)="verifyVechicleStatus(params)" [disabled]="!selectedRows" | ||||||
|  |     [nzLoading]="service.http.loading">发布并指派给司机</button> | ||||||
| </div> | </div> | ||||||
| @ -4,12 +4,13 @@ | |||||||
|  * @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-02 14:27:20 |  * @LastEditTime : 2022-04-28 17:36:31 | ||||||
|  * @FilePath     : \\tms-obc-web\\src\\app\\routes\\supply-management\\components\\choose-famifiar\\choose-famifiar.component.html |  * @FilePath     : \\tms-obc-web\\src\\app\\routes\\supply-management\\components\\choose-famifiar\\choose-famifiar.component.html | ||||||
|  * Copyright (C) 2022 huzhenhong. All rights reserved. |  * Copyright (C) 2022 huzhenhong. All rights reserved. | ||||||
| --> | --> | ||||||
| <!-- <button nz-button nzType="primary" style="margin-bottom: 24px" (click)="add()"><i nz-icon nzType="plus"></i>添加司机</button> --> | <!-- <button nz-button nzType="primary" style="margin-bottom: 24px" (click)="add()"><i nz-icon nzType="plus"></i>添加司机</button> --> | ||||||
| <!-- 搜索区 --> | <!-- 搜索区 --> | ||||||
|  | <nz-spin [nzSpinning]="service.http.loading"> | ||||||
| <div nz-row nzGutter="8"> | <div nz-row nzGutter="8"> | ||||||
|   <div nz-col [nzSpan]="18"> |   <div nz-col [nzSpan]="18"> | ||||||
|     <sf #sf [ui]="ui" [schema]="schema" [button]="'none'"></sf> |     <sf #sf [ui]="ui" [schema]="schema" [button]="'none'"></sf> | ||||||
| @ -19,6 +20,7 @@ | |||||||
|     <button nz-button (click)="resetSF()">重置</button> |     <button nz-button (click)="resetSF()">重置</button> | ||||||
|   </div> |   </div> | ||||||
| </div> | </div> | ||||||
|  |  | ||||||
| <div nz-row nzGutter="8"> | <div nz-row nzGutter="8"> | ||||||
|   <div nz-col [nzSpan]="12"> |   <div nz-col [nzSpan]="12"> | ||||||
|     <!-- 数据列表 --> |     <!-- 数据列表 --> | ||||||
| @ -55,6 +57,8 @@ | |||||||
|     </st> |     </st> | ||||||
|   </div> |   </div> | ||||||
| </div> | </div> | ||||||
|  | </nz-spin> | ||||||
|  |  | ||||||
| <div *nzModalFooter> | <div *nzModalFooter> | ||||||
|   <button nz-button nzType="default" (click)="cancel()">取消</button> |   <button nz-button nzType="default" (click)="cancel()">取消</button> | ||||||
|   <button nz-button nzType="primary" (click)="ok()">发布并指派给司机</button> |   <button nz-button nzType="primary" (click)="ok()">发布并指派给司机</button> | ||||||
|  | |||||||
| @ -25,8 +25,10 @@ | |||||||
|         <sf #sf [schema]="schema" [ui]="ui" [compact]="true" [button]="'none'"></sf> |         <sf #sf [schema]="schema" [ui]="ui" [compact]="true" [button]="'none'"></sf> | ||||||
|       </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]="service.http.loading" (click)="st?.load(1)">查询</button> |         <button nz-button nzType="primary" acl [acl-ability]="['SYSTEM-ANNOUNCEMENT-list']" | ||||||
|         <button nz-button [disabled]="false" nzType="primary">导出</button> |           [nzLoading]="service.http.loading" (click)="st?.load(1)">查询</button> | ||||||
|  |         <button nz-button [disabled]="false" nzType="primary" acl | ||||||
|  |           [acl-ability]="['SYSTEM-ANNOUNCEMENT-export']">导出</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 ? '展开' : '收起' }} | ||||||
| @ -40,7 +42,8 @@ | |||||||
| <nz-card class="content-box"> | <nz-card class="content-box"> | ||||||
|   <div class="d-flex justify-content-end mb-sm mt-sm"> |   <div class="d-flex justify-content-end mb-sm mt-sm"> | ||||||
|     <div> |     <div> | ||||||
|       <button nz-button nzType="primary" (click)="roleAction('', 1)">新增公告</button> |       <button nz-button nzType="primary" (click)="roleAction('', 1)" acl | ||||||
|  |         [acl-ability]="['SYSTEM-ANNOUNCEMENT-add']">新增公告</button> | ||||||
|     </div> |     </div> | ||||||
|   </div> |   </div> | ||||||
|   <st #st [data]="service.$api_getAnnouncementInfoList_page" [columns]="columns" [req]="{  params: reqParams }" |   <st #st [data]="service.$api_getAnnouncementInfoList_page" [columns]="columns" [req]="{  params: reqParams }" | ||||||
|  | |||||||
| @ -39,10 +39,12 @@ export class AnnouncementMessageComponent implements OnInit { | |||||||
|       buttons: [ |       buttons: [ | ||||||
|         { |         { | ||||||
|           text: '编辑', |           text: '编辑', | ||||||
|  |           acl: { ability: ['SYSTEM-ANNOUNCEMENT-edit'] }, | ||||||
|           click: item => this.roleAction(item, 2) |           click: item => this.roleAction(item, 2) | ||||||
|         }, |         }, | ||||||
|         { |         { | ||||||
|           text: '删除', |           text: '删除', | ||||||
|  |           acl: { ability: ['SYSTEM-ANNOUNCEMENT-delete'] }, | ||||||
|           click: item => this.deleteAction(item) |           click: item => this.deleteAction(item) | ||||||
|         }, |         }, | ||||||
|       ] |       ] | ||||||
|  | |||||||
| @ -1,7 +1,11 @@ | |||||||
| <page-header-wrapper [title]="'车型车长配置'" [content]="content"> | <page-header-wrapper [title]="'车型车长配置'" [content]="content"> | ||||||
|     <ng-template #content> |     <ng-template #content> | ||||||
|         <nz-tabset class="tabs-wrap"> |         <nz-tabset class="tabs-wrap"> | ||||||
|             <nz-tab *ngFor="let tab of tabs" [nzTitle]="tab.name" (nzSelect)="changeTab(tab)"> </nz-tab> |             <ng-container *ngFor="let tab of tabs"> | ||||||
|  |                 <nz-tab [nzTitle]="tab.name" (nzSelect)="changeTab(tab)" *ngIf="tab.isShow"> | ||||||
|  |                 </nz-tab> | ||||||
|  |             </ng-container> | ||||||
|  |  | ||||||
|         </nz-tabset> |         </nz-tabset> | ||||||
|     </ng-template> |     </ng-template> | ||||||
| </page-header-wrapper> | </page-header-wrapper> | ||||||
| @ -22,10 +26,10 @@ | |||||||
| <nz-card> | <nz-card> | ||||||
|     <div class="d-flex justify-content-end mb-sm"> |     <div class="d-flex justify-content-end mb-sm"> | ||||||
|         <div> |         <div> | ||||||
|             <button nz-button nzType="primary" (click)="configAction()">新增</button> |             <button nz-button nzType="primary" (click)="configAction()" acl | ||||||
|  |                 [acl-ability]="['SYSTEM-CART-CONFIG-add']">新增</button> | ||||||
|         </div> |         </div> | ||||||
|     </div> |     </div> | ||||||
|     <st #st [data]="tabType === 3?service.$api_get_config_item_page:service.$api_get_dict_page" [columns]="columns" |     <st #st [data]="tabType === 3?service.$api_get_config_item_page:service.$api_get_dict_page" [columns]="columns" | ||||||
|         [req]="{process: beforeReq }" [res]="{  process: afterRes }" [loading]="loading" |         [req]="{process: beforeReq }" [res]="{  process: afterRes }" [loading]="loading" [scroll]="{ y: '370px' }"></st> | ||||||
|         [scroll]="{ y: '370px' }"></st> |  | ||||||
| </nz-card> | </nz-card> | ||||||
| @ -1,5 +1,6 @@ | |||||||
| import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnInit, ViewChild } from '@angular/core'; | import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnInit, ViewChild } from '@angular/core'; | ||||||
| import { STComponent, STColumn, STChange, STRequestOptions } from '@delon/abc/st'; | import { STComponent, STColumn, STChange, STRequestOptions } from '@delon/abc/st'; | ||||||
|  | import { ACLService } from '@delon/acl'; | ||||||
| import { SFComponent, SFSchema } from '@delon/form'; | import { SFComponent, SFSchema } from '@delon/form'; | ||||||
| import { NzModalService } from 'ng-zorro-antd/modal'; | import { NzModalService } from 'ng-zorro-antd/modal'; | ||||||
| import { SystemService } from '../../services/system.service'; | import { SystemService } from '../../services/system.service'; | ||||||
| @ -20,17 +21,20 @@ export class CartConfigComponent implements OnInit { | |||||||
|     { |     { | ||||||
|       name: '车型配置', |       name: '车型配置', | ||||||
|       type: 1, |       type: 1, | ||||||
|       isActived: false |       isActived: false, | ||||||
|  |       isShow: true | ||||||
|     }, |     }, | ||||||
|     { |     { | ||||||
|       name: '车长配置', |       name: '车长配置', | ||||||
|       type: 2, |       type: 2, | ||||||
|       isActived: false |       isActived: false, | ||||||
|  |       isShow: true | ||||||
|     }, |     }, | ||||||
|     { |     { | ||||||
|       name: '禁限物品名单', |       name: '禁限物品名单', | ||||||
|       type: 3, |       type: 3, | ||||||
|       isActived: false |       isActived: false, | ||||||
|  |       isShow: true | ||||||
|     } |     } | ||||||
|   ]; |   ]; | ||||||
|   tabType = 1; |   tabType = 1; | ||||||
| @ -102,10 +106,12 @@ export class CartConfigComponent implements OnInit { | |||||||
|       buttons: [ |       buttons: [ | ||||||
|         { |         { | ||||||
|           text: '编辑', |           text: '编辑', | ||||||
|  |           acl: { ability: ['SYSTEM-CART-CONFIG-edit'] }, | ||||||
|           click: item => this.configAction(item) |           click: item => this.configAction(item) | ||||||
|         }, |         }, | ||||||
|         { |         { | ||||||
|           text: '删除', |           text: '删除', | ||||||
|  |           acl: { ability: ['SYSTEM-CART-CONFIG-delete'] }, | ||||||
|           click: item => this.deleteAction(item) |           click: item => this.deleteAction(item) | ||||||
|         } |         } | ||||||
|       ] |       ] | ||||||
| @ -113,7 +119,35 @@ export class CartConfigComponent implements OnInit { | |||||||
|   ]; |   ]; | ||||||
|  |  | ||||||
|   loading = true; |   loading = true; | ||||||
|   constructor(public service: SystemService, private nzModalService: NzModalService, private cdr: ChangeDetectorRef) {} |   constructor( | ||||||
|  |     public service: SystemService, | ||||||
|  |     private nzModalService: NzModalService, | ||||||
|  |     private cdr: ChangeDetectorRef, | ||||||
|  |     private acl: ACLService | ||||||
|  |   ) { | ||||||
|  |     const acls = acl.data.abilities || []; | ||||||
|  |     this.tabs = [ | ||||||
|  |       { | ||||||
|  |         name: '车型配置', | ||||||
|  |         type: 1, | ||||||
|  |         isActived: false, | ||||||
|  |         isShow: acl.data.full || !!acls.find(acl => acl === 'SYSTEM-CART-CONFIG-modeList') | ||||||
|  |       }, | ||||||
|  |       { | ||||||
|  |         name: '车长配置', | ||||||
|  |         type: 2, | ||||||
|  |         isActived: false, | ||||||
|  |         isShow: acl.data.full || !!acls.find(acl => acl === 'SYSTEM-CART-CONFIG-cartLength') | ||||||
|  |       }, | ||||||
|  |       { | ||||||
|  |         name: '禁限物品名单', | ||||||
|  |         type: 3, | ||||||
|  |         isActived: false, | ||||||
|  |         isShow: acl.data.full || !!acls.find(acl => acl === 'SYSTEM-CART-CONFIG-goodsList') | ||||||
|  |       } | ||||||
|  |     ]; | ||||||
|  |     this.tabType = this.tabs.find(tab => tab.isShow)?.type || 1; | ||||||
|  |   } | ||||||
|  |  | ||||||
|   ngOnInit(): void {} |   ngOnInit(): void {} | ||||||
|  |  | ||||||
|  | |||||||
| @ -1,10 +1,10 @@ | |||||||
| <!-- | <!-- | ||||||
|  * @Author: your name |  * @Author: your name | ||||||
|  * @Date: 2021-12-24 15:38:08 |  * @Date: 2021-12-24 15:38:08 | ||||||
|  * @LastEditTime: 2021-12-27 11:21:35 |  * @LastEditTime : 2022-04-28 19:05:49 | ||||||
|  * @LastEditors: Please set LastEditors |  * @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\sys-setting\components\crm-management\crm-management.component.html |  * @FilePath     : \\tms-obc-web\\src\\app\\routes\\sys-setting\\components\\close-account\\close-account.component.html | ||||||
| --> | --> | ||||||
| <page-header-wrapper title="结算客户管理"> | <page-header-wrapper title="结算客户管理"> | ||||||
| </page-header-wrapper> | </page-header-wrapper> | ||||||
| @ -16,7 +16,6 @@ | |||||||
|       <sf #sf [schema]="schema" [ui]="ui" [mode]="'search'" [loading]="false" (formSubmit)="st?.load(1)" |       <sf #sf [schema]="schema" [ui]="ui" [mode]="'search'" [loading]="false" (formSubmit)="st?.load(1)" | ||||||
|         (formReset)="resetSF()"></sf> |         (formReset)="resetSF()"></sf> | ||||||
|     </div> |     </div> | ||||||
|     edit |  | ||||||
|     <!-- 查询字段大于3个时,根据展开状态调整布局 --> |     <!-- 查询字段大于3个时,根据展开状态调整布局 --> | ||||||
|     <ng-container *ngIf="queryFieldCount > 4"> |     <ng-container *ngIf="queryFieldCount > 4"> | ||||||
|       <div nz-col [nzSpan]="_$expand ? 24 : 18"> |       <div nz-col [nzSpan]="_$expand ? 24 : 18"> | ||||||
|  | |||||||
| @ -156,21 +156,22 @@ export class CloseAccountComponent implements OnInit { | |||||||
|         maxLength: 30, |         maxLength: 30, | ||||||
|         ui: { |         ui: { | ||||||
|           widget: 'select', |           widget: 'select', | ||||||
|           serverSearch: true, |           // serverSearch: true, | ||||||
|  |           allowClear: true, | ||||||
|           searchDebounceTime: 300, |           searchDebounceTime: 300, | ||||||
|           searchLoadingText: '搜索中...', |           searchLoadingText: '搜索中...', | ||||||
|           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 => (res as any[]).map(i => ({ label: i.enterpriseName, value: i.id } as SFSchemaEnum)))) | ||||||
|                 .toPromise(); |                 .toPromise(); | ||||||
|             } else { |             } else { | ||||||
|               return of([]); |               return of([]); | ||||||
|             } |             } | ||||||
|           }, |           }, | ||||||
|         } as SFSelectWidgetSchema, |         } as SFSelectWidgetSchema | ||||||
|       }, |       }, | ||||||
|   }, |   }, | ||||||
|   required: ['customerName', 'customerCode', 'networkTransporterId', 'enterpriseId'] |   required: ['customerName', 'customerCode', 'networkTransporterId', 'enterpriseId'] | ||||||
| @ -186,11 +187,16 @@ this.ui2 = { '*': { spanLabelFixed: 120, grid: { span: 24 } } }; | |||||||
|       this.service.request(this.service.$api_settlementCustomer_get, {id: value.id}).subscribe((res: any) => { |       this.service.request(this.service.$api_settlementCustomer_get, {id: value.id}).subscribe((res: any) => { | ||||||
|         console.log(res) |         console.log(res) | ||||||
|         if(res) { |         if(res) { | ||||||
|           this.formData = res; |  | ||||||
|           const List: any = []; |           const List: any = []; | ||||||
|             List.push({ label: res.enterpriseName, value: res.id }); |           List.push({ label: value.enterpriseName, value: res.enterpriseId }); | ||||||
|           this.sfFre.getProperty('/enterpriseId')!.schema.enum = List; |           this.formData = res; | ||||||
|           this.sfFre.getProperty('/enterpriseId')!.widget.reset(List); |           setTimeout(() => { | ||||||
|  |             this.sfFre.getProperty('/enterpriseId')!.schema.enum = List; | ||||||
|  |             this.sfFre.getProperty('/enterpriseId')!.widget.reset(List); | ||||||
|  |             if (res?.enterpriseId) { | ||||||
|  |               this.sfFre.setValue('/enterpriseId', res.enterpriseId); | ||||||
|  |             } | ||||||
|  |           }) | ||||||
|         } |         } | ||||||
|       }) |       }) | ||||||
|       this.edit = true; |       this.edit = true; | ||||||
|  | |||||||
| @ -122,8 +122,17 @@ export class MenuTreeComponent implements OnInit, OnChanges { | |||||||
|         }); |         }); | ||||||
|       } |       } | ||||||
|     } else { |     } else { | ||||||
|  |       console.log(event); | ||||||
|  |  | ||||||
|       if (event.node?.isChecked) { |       if (event.node?.isChecked) { | ||||||
|         this.recursionSetNodeAuth(event.node.origin); |         this.recursionSetNodeAuth(event.node.origin); | ||||||
|  |         if (event.node.parentNode) { | ||||||
|  |           this._NodeAuthMap.set(event.node.parentNode.origin.id, { | ||||||
|  |             authorityId: event.node.parentNode.origin.id, | ||||||
|  |             buttonAuthorityIds: [], | ||||||
|  |             isUpdateAuthority: 1 | ||||||
|  |           }); | ||||||
|  |         } | ||||||
|         if (this.origin.checked) { |         if (this.origin.checked) { | ||||||
|           this.origin.buttonInfoList.forEach((auth: any) => this._apiAuthSet.add(auth.functionButtonId)); |           this.origin.buttonInfoList.forEach((auth: any) => this._apiAuthSet.add(auth.functionButtonId)); | ||||||
|         } |         } | ||||||
|  | |||||||
| @ -1,7 +1,8 @@ | |||||||
| <nz-card class="content-box"> | <nz-card class="content-box"> | ||||||
|  |  | ||||||
|     <div class="d-flex align-items-center mb-sm" style="justify-content: flex-end;"> |     <div class="d-flex align-items-center mb-sm" style="justify-content: flex-end;"> | ||||||
|         <button nz-button nzType="primary" (click)="menuAction('新增组织')">新增</button> |         <button nz-button nzType="primary" (click)="menuAction('新增组织')" acl | ||||||
|  |             [acl-ability]="['SYSTEM-ROLE-add']">新增</button> | ||||||
|     </div> |     </div> | ||||||
|  |  | ||||||
|     <nz-table #expandTable [nzData]="listOfMapData" nzTableLayout="fixed" nzBordered nzSize="small" |     <nz-table #expandTable [nzData]="listOfMapData" nzTableLayout="fixed" nzBordered nzSize="small" | ||||||
| @ -33,16 +34,16 @@ | |||||||
|                         </td> |                         </td> | ||||||
|                         <td nzAlign="center" nzWidth="250px"> |                         <td nzAlign="center" nzWidth="250px"> | ||||||
|                             <ng-container *ngIf="item.roleCode !== 'Administrator'"> |                             <ng-container *ngIf="item.roleCode !== 'Administrator'"> | ||||||
|                                 <a (click)="menuAction(item)">编辑</a> |                                 <a (click)="menuAction(item)" acl [acl-ability]="['SYSTEM-ROLE-edit']">编辑</a> | ||||||
|                                 <nz-divider nzType="vertical"></nz-divider> |                                 <nz-divider nzType="vertical"></nz-divider> | ||||||
|                                 <a (click)="deleteAction(item)">删除</a> |                                 <a (click)="deleteAction(item)" acl [acl-ability]="['SYSTEM-ROLE-delete']">删除</a> | ||||||
|                                 <nz-divider nzType="vertical"></nz-divider> |                                 <nz-divider nzType="vertical"></nz-divider> | ||||||
|                                 <a (click)="menuAction(null,item.id)">新增子组织</a> |                                 <a (click)="menuAction(null,item.id)" acl [acl-ability]="['SYSTEM-ROLE-add']">新增子组织</a> | ||||||
|                                 <br> |                                 <br> | ||||||
|                                 <nz-divider nzType="vertical"></nz-divider> |                                 <nz-divider nzType="vertical"></nz-divider> | ||||||
|                                 <a (click)="configureAPIauth(item)">配置接口权限</a> |                                 <a (click)="configureAPIauth(item)" acl [acl-ability]="['SYSTEM-ROLE-api']">配置接口权限</a> | ||||||
|                                 <nz-divider nzType="vertical"></nz-divider> |                                 <nz-divider nzType="vertical"></nz-divider> | ||||||
|                                 <a>配置数据权限</a> |                                 <a acl [acl-ability]="['SYSTEM-ROLE-data']">配置数据权限</a> | ||||||
|                             </ng-container> |                             </ng-container> | ||||||
|  |  | ||||||
|                         </td> |                         </td> | ||||||
|  | |||||||
| @ -2,7 +2,7 @@ | |||||||
|  |  | ||||||
| <nz-card> | <nz-card> | ||||||
|     <div class="filter-wrap"> |     <div class="filter-wrap"> | ||||||
|         <button nz-button nzType="primary" (click)="add()">新增</button> |         <button nz-button nzType="primary" (click)="add()" acl [acl-ability]="['SMS_TEMPLATE-add']">新增</button> | ||||||
|         <button nz-button nzType="primary" (click)="open()"><i nz-icon nzType="plus" nzTheme="outline"></i>筛选</button> |         <button nz-button nzType="primary" (click)="open()"><i nz-icon nzType="plus" nzTheme="outline"></i>筛选</button> | ||||||
|     </div> |     </div> | ||||||
|     <st #st [data]="this.service.$api_smsTemplate_page " [columns]="columns" [req]="{ process: beforeReq }" |     <st #st [data]="this.service.$api_smsTemplate_page " [columns]="columns" [req]="{ process: beforeReq }" | ||||||
| @ -24,9 +24,10 @@ | |||||||
|     </ng-template> |     </ng-template> | ||||||
| </nz-drawer> | </nz-drawer> | ||||||
|  |  | ||||||
| <nz-modal [(nzVisible)]="isVisible" [nzTitle]="!isEdit?'新增':'编辑'" (nzOnCancel)="handleCancel()" (nzOnOk)="handleOk()" [nzOkDisabled]="!sfEdit?.valid"> | <nz-modal [(nzVisible)]="isVisible" [nzTitle]="!isEdit?'新增':'编辑'" (nzOnCancel)="handleCancel()" (nzOnOk)="handleOk()" | ||||||
|  |     [nzOkDisabled]="!sfEdit?.valid"> | ||||||
|     <ng-container *nzModalContent> |     <ng-container *nzModalContent> | ||||||
|         <sf #sfEdit [formData]="tempData" [schema]="editSchema" [ui]="{ '*': { spanLabelFixed: 90,grid: { span: 24 } }}" [compact]="true" |         <sf #sfEdit [formData]="tempData" [schema]="editSchema" [ui]="{ '*': { spanLabelFixed: 90,grid: { span: 24 } }}" | ||||||
|             [button]="'none'"></sf> |             [compact]="true" [button]="'none'"></sf> | ||||||
|     </ng-container> |     </ng-container> | ||||||
| </nz-modal> | </nz-modal> | ||||||
| @ -1,5 +1,5 @@ | |||||||
|  |  | ||||||
| import { AfterViewInit, ChangeDetectorRef, Component, OnInit, ViewChild } from '@angular/core'; | import { Component, OnInit, ViewChild } from '@angular/core'; | ||||||
| import { ActivatedRoute } from '@angular/router'; | import { ActivatedRoute } from '@angular/router'; | ||||||
| import { STColumn, STComponent, STRequestOptions } from '@delon/abc/st'; | import { STColumn, STComponent, STRequestOptions } from '@delon/abc/st'; | ||||||
| import { SFComponent, SFSchema } from '@delon/form'; | import { SFComponent, SFSchema } from '@delon/form'; | ||||||
| @ -50,27 +50,27 @@ export class SmsTemplateComponent implements OnInit { | |||||||
|         templateName: { |         templateName: { | ||||||
|           type: 'string', |           type: 'string', | ||||||
|           title: '模板名称', |           title: '模板名称', | ||||||
|           ui: { placeholder: '请输入模板名称', errors: { require: '必填项'} } |           ui: { placeholder: '请输入模板名称', errors: { require: '必填项' } } | ||||||
|         }, |         }, | ||||||
|         templateCode: { |         templateCode: { | ||||||
|           type: 'string', |           type: 'string', | ||||||
|           title: '模板编码', |           title: '模板编码', | ||||||
|           readOnly: this.isEdit, |           readOnly: this.isEdit, | ||||||
|           ui: { placeholder: '请输入模板编码', errors: { require: '必填项'} } |           ui: { placeholder: '请输入模板编码', errors: { require: '必填项' } } | ||||||
|         }, |         }, | ||||||
|         templateContent: { |         templateContent: { | ||||||
|           type: 'string', |           type: 'string', | ||||||
|           title: '模板内容', |           title: '模板内容', | ||||||
|           ui: { placeholder: '请输入模板内容', errors: { require: '必填项'} } |           ui: { placeholder: '请输入模板内容', errors: { require: '必填项' } } | ||||||
|         } |         } | ||||||
|       }, |       }, | ||||||
|       required: ['templateName','templateCode','templateContent'] |       required: ['templateName', 'templateCode', 'templateContent'] | ||||||
|     } |     }; | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   columns: STColumn[] = [ |   columns: STColumn[] = [ | ||||||
|     { title: '模板名称', className: 'text-center', index: 'templateName' }, |     { title: '模板名称', className: 'text-center', width: '200px', index: 'templateName' }, | ||||||
|     { title: '模板编码', className: 'text-center', index: 'templateCode' }, |     { title: '模板编码', className: 'text-center', width: '140px', index: 'templateCode' }, | ||||||
|     { title: '模板内容', className: 'text-center', index: 'templateContent' }, |     { title: '模板内容', className: 'text-center', index: 'templateContent' }, | ||||||
|     // { |     // { | ||||||
|     //   title: '创建人', className: 'text-center', index: 'content', |     //   title: '创建人', className: 'text-center', index: 'content', | ||||||
| @ -79,21 +79,23 @@ export class SmsTemplateComponent implements OnInit { | |||||||
|       title: '更新时间', |       title: '更新时间', | ||||||
|       index: 'modifyTime', |       index: 'modifyTime', | ||||||
|       type: 'date', |       type: 'date', | ||||||
|  |       width: '160px', | ||||||
|       className: 'text-center' |       className: 'text-center' | ||||||
|     }, |     }, | ||||||
|     { |     { | ||||||
|       title: '操作', |       title: '操作', | ||||||
|  |       width: '90px', | ||||||
|       buttons: [ |       buttons: [ | ||||||
|         { |         { | ||||||
|           text: '编辑', |           text: '编辑', | ||||||
|           click: i => this.edit(i), |           acl: { ability: ['SMS_TEMPLATE-save'] }, | ||||||
|  |           click: i => this.edit(i) | ||||||
|         } |         } | ||||||
|       ] |       ] | ||||||
|     } |     } | ||||||
|   ]; |   ]; | ||||||
|  |  | ||||||
|   constructor(public service: SystemService, private nzModalService: NzModalService, private route: ActivatedRoute) { |   constructor(public service: SystemService, private nzModalService: NzModalService, private route: ActivatedRoute) {} | ||||||
|   } |  | ||||||
|  |  | ||||||
|   ngOnInit(): void { |   ngOnInit(): void { | ||||||
|     this.initSF(); |     this.initSF(); | ||||||
| @ -144,7 +146,7 @@ export class SmsTemplateComponent implements OnInit { | |||||||
|       templateCode, |       templateCode, | ||||||
|       templateName, |       templateName, | ||||||
|       templateContent |       templateContent | ||||||
|     } |     }; | ||||||
|  |  | ||||||
|     this.service.request(this.service.$api_smsTemplate_edit, params).subscribe(res => { |     this.service.request(this.service.$api_smsTemplate_edit, params).subscribe(res => { | ||||||
|       // console.log(res); |       // console.log(res); | ||||||
| @ -152,8 +154,7 @@ export class SmsTemplateComponent implements OnInit { | |||||||
|         this.isVisible = false; |         this.isVisible = false; | ||||||
|         this.st.reload(); |         this.st.reload(); | ||||||
|       } |       } | ||||||
|     }) |     }); | ||||||
|  |  | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   handleCancel(): void { |   handleCancel(): void { | ||||||
|  | |||||||
| @ -68,20 +68,20 @@ export class StaffManagementComponent implements OnInit { | |||||||
|         { |         { | ||||||
|           text: '冻结', |           text: '冻结', | ||||||
|           iif: item => |           iif: item => | ||||||
|             item.stateLocked === 0 && item.roleCode.split(',').indexOf('Administrator') === -1 && item.telephone !== this.user.phone, |             !item.stateLocked && item.roleCode.split(',').indexOf('Administrator') === -1 && item.telephone !== this.user.phone, | ||||||
|           click: item => this.action(item, 1), |           click: item => this.action(item, 1), | ||||||
|           acl: { ability: ['SYSTEM-STAFF-lock'] } |           acl: { ability: ['SYSTEM-STAFF-lock'] } | ||||||
|         }, |         }, | ||||||
|         { |         { | ||||||
|           text: '超管转授', |           text: '超管转授', | ||||||
|           iif: item => item.stateLocked === 0 && item.roleCode.split(',').indexOf('Administrator') === -1, |           iif: item => !item.stateLocked && item.roleCode.split(',').indexOf('Administrator') === -1, | ||||||
|           click: item => this.transpowerAction(item), |           click: item => this.transpowerAction(item), | ||||||
|           acl: { ability: ['SYSTEM-STAFF-shiftAdmin'] } |           acl: { ability: ['SYSTEM-STAFF-shiftAdmin'] } | ||||||
|         }, |         }, | ||||||
|         { |         { | ||||||
|           text: '删除', |           text: '删除', | ||||||
|           iif: item => |           iif: item => | ||||||
|             item.stateLocked === 0 && item.roleCode.split(',').indexOf('Administrator') === -1 && item.telephone !== this.user.phone, |             !item.stateLocked && item.roleCode.split(',').indexOf('Administrator') === -1 && item.telephone !== this.user.phone, | ||||||
|           click: item => this.action(item, 3), |           click: item => this.action(item, 3), | ||||||
|           acl: { ability: ['SYSTEM-STAFF-delete'] } |           acl: { ability: ['SYSTEM-STAFF-delete'] } | ||||||
|         } |         } | ||||||
|  | |||||||
| @ -54,9 +54,9 @@ const routes: Routes = [ | |||||||
|   { path: 'network-freight/new/:id', component: NetworkFreightNewComponent }, |   { path: 'network-freight/new/:id', component: NetworkFreightNewComponent }, | ||||||
|   { path: 'close-account', component: CloseAccountComponent }, |   { path: 'close-account', component: CloseAccountComponent }, | ||||||
|   // { path: 'btn-management', component: BtnManagementComponent }, |   // { path: 'btn-management', component: BtnManagementComponent }, | ||||||
|   { path: 'announcement-message', component: AnnouncementMessageComponent }, |   { path: 'announcement-message', component: AnnouncementMessageComponent, data: { guard: { ability: ['SYSTEM-ANNOUNCEMENT-list'] } } }, | ||||||
|   { path: 'insurance-set', component: InsuranceSetComponent }, |   { path: 'insurance-set', component: InsuranceSetComponent }, | ||||||
|   { path: 'sms-template', component: SmsTemplateComponent } |   { path: 'sms-template', component: SmsTemplateComponent, data: { guard: { ability: ['SMS_TEMPLATE-search'] } } } | ||||||
| ]; | ]; | ||||||
|  |  | ||||||
| @NgModule({ | @NgModule({ | ||||||
|  | |||||||
| @ -45,10 +45,10 @@ | |||||||
|       已选择 |       已选择 | ||||||
|       <strong class="text-red">{{ selectedRows.length }}</strong> 条数据 |       <strong class="text-red">{{ selectedRows.length }}</strong> 条数据 | ||||||
|     </div> |     </div> | ||||||
|     <button nz-button nzType="primary" (click)="upload()" acl  [acl-ability]="['TAX-ORDERREPORT-declare ']">申报</button> |     <button nz-button nzType="primary" (click)="upload()" acl  [acl-ability]="['TAX-INCOME-declare']">申报</button> | ||||||
|     <button nz-button nzType="primary" (click)="corrections()" acl  [acl-ability]="['TAX-ORDERREPORT-change ']">更正</button> |     <button nz-button nzType="primary" (click)="corrections()" acl  [acl-ability]="['TAX-INCOME-change']">更正</button> | ||||||
|     <button nz-button nzType="primary" (click)="resetData()" acl  [acl-ability]="['TAX-ORDERREPORT-threshold ']">修改起征点</button> |     <button nz-button nzType="primary" (click)="resetData()" acl  [acl-ability]="['TAX-INCOME-threshold']">修改起征点</button> | ||||||
|     <button nz-button nzType="primary" (click)="uploadSetting()" acl  [acl-ability]="['TAX-ORDERREPORT-resetData ']">更新数据</button> |     <button nz-button nzType="primary" (click)="uploadSetting()" acl  [acl-ability]="['TAX-INCOME-resetData']">更新数据</button> | ||||||
|   </div> |   </div> | ||||||
| </ng-template> | </ng-template> | ||||||
|  |  | ||||||
|  | |||||||
| @ -9,7 +9,7 @@ | |||||||
|     <div nz-col [nzSpan]="_$expand ? 24 : 6" [class.text-right]="_$expand"> |     <div nz-col [nzSpan]="_$expand ? 24 : 6" [class.text-right]="_$expand"> | ||||||
|       <button nz-button nzType="primary" [disabled]="!sf.valid" [nzLoading]="isLoading && st.loading" (click)="search()" >查询</button> |       <button nz-button nzType="primary" [disabled]="!sf.valid" [nzLoading]="isLoading && st.loading" (click)="search()" >查询</button> | ||||||
|       <button nz-button (click)="resetSF()">重置</button> |       <button nz-button (click)="resetSF()">重置</button> | ||||||
|       <button nz-button (click)="export()">导出</button> |       <button nz-button (click)="export()" acl [acl-ability]="['TAX_INVOICE_REPORT-export']">导出</button> | ||||||
|       <button nz-button nzType="link" (click)="expandToggle()"> |       <button nz-button nzType="link" (click)="expandToggle()"> | ||||||
|         {{ !_$expand ? '展开' : '收起' }} |         {{ !_$expand ? '展开' : '收起' }} | ||||||
|         <i nz-icon [nzType]="!_$expand ? 'down' : 'up'"></i> |         <i nz-icon [nzType]="!_$expand ? 'down' : 'up'"></i> | ||||||
| @ -32,7 +32,8 @@ | |||||||
|       <span *ngIf="item?.uploadSts == '1'">待上传</span> |       <span *ngIf="item?.uploadSts == '1'">待上传</span> | ||||||
|       <span *ngIf="item?.uploadSts == '3'">已上传</span> |       <span *ngIf="item?.uploadSts == '3'">已上传</span> | ||||||
|       <span *ngIf="item?.uploadSts == '2'">上传中</span> |       <span *ngIf="item?.uploadSts == '2'">上传中</span> | ||||||
|       <span  *ngIf="item?.uploadSts == '4'" style="color: red;" (click)="unnormal(item)">上传异常</span> |       <span *ngIf="item?.uploadSts == '4'" style="color: red;">上传异常</span> | ||||||
|  |       <!-- <span  *ngIf="item?.uploadSts == '4'" style="color: red;" (click)="unnormal(item)">上传异常</span> --> | ||||||
|     </ng-template> |     </ng-template> | ||||||
|     <ng-template st-row="invoiceType" let-item let-index="index"> |     <ng-template st-row="invoiceType" let-item let-index="index"> | ||||||
|       <span>增值税专用发票</span> |       <span>增值税专用发票</span> | ||||||
| @ -53,6 +54,6 @@ | |||||||
|       <strong class="text-red">{{ selectedRows.length }}</strong> 条数据 |       <strong class="text-red">{{ selectedRows.length }}</strong> 条数据 | ||||||
|     </div> |     </div> | ||||||
|     <button *ngIf="selectedIndex === '1' || selectedIndex === '4'" nz-button nzType="primary" (click)="upload()">上传</button> |     <button *ngIf="selectedIndex === '1' || selectedIndex === '4'" nz-button nzType="primary" (click)="upload()">上传</button> | ||||||
|     <button *ngIf="selectedIndex === '3'" nz-button nzType="primary" (click)="recall()">撤回</button> |     <button *ngIf="selectedIndex === '3'" nz-button nzType="primary" (click)="recall()" acl [acl-ability]="['TAX_INVOICE_REPORT-recall']">撤回</button> | ||||||
|   </div> |   </div> | ||||||
| </ng-template> | </ng-template> | ||||||
|  | |||||||
| @ -281,26 +281,7 @@ export class TaxManagementInvoiceReportingComponent implements OnInit { | |||||||
|     }); |     }); | ||||||
|  |  | ||||||
|   } |   } | ||||||
|   /** |  | ||||||
|    *撤销 |  | ||||||
|    * @param record 记录实例 |  | ||||||
|    */ |  | ||||||
|   resetData() { |  | ||||||
|     if (this.selectedRows.length === 0) { |  | ||||||
|       this.openWainingModal('请选择需要更新的数据!'); |  | ||||||
|       return; |  | ||||||
|     } |  | ||||||
|     let params: any[] = []; |  | ||||||
|     this.selectedRows.forEach(item => { |  | ||||||
|       params.push(item.billId); |  | ||||||
|     }); |  | ||||||
|     this.service.request(this.service.$api_get_renewalOrderById, params).subscribe((res: any) => { |  | ||||||
|       if (res) { |  | ||||||
|         this.service.msgSrv.success('更新成功'); |  | ||||||
|         this.st.load(1); |  | ||||||
|       } |  | ||||||
|     }) |  | ||||||
|   } |  | ||||||
|   /** |   /** | ||||||
|    *撤销 |    *撤销 | ||||||
|    * @param record 记录实例 |    * @param record 记录实例 | ||||||
| @ -333,28 +314,13 @@ export class TaxManagementInvoiceReportingComponent implements OnInit { | |||||||
|   } |   } | ||||||
|  |  | ||||||
|   selectChange(item: any) { |   selectChange(item: any) { | ||||||
|     console.log(item); |  | ||||||
|  |  | ||||||
|     this.selectedIndex = item?.value || ''; |     this.selectedIndex = item?.value || ''; | ||||||
|     console.log(this.selectedIndex); |  | ||||||
|  |  | ||||||
|     setTimeout(() => { |     setTimeout(() => { | ||||||
|       this.st.load(); |       this.st.load(); | ||||||
|     }) |     }) | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   /** |  | ||||||
|    * 查看当行数据 |  | ||||||
|    */ |  | ||||||
|   view(record: STData) { |  | ||||||
|     // this.router.navigate(['../view', record.uuid], { relativeTo: this.ar }); |  | ||||||
|     this.router.navigate(['../detail'], { |  | ||||||
|       queryParams: { |  | ||||||
|         id: record.id, |  | ||||||
|       }, |  | ||||||
|       relativeTo: this.ar |  | ||||||
|     }); |  | ||||||
|   } |  | ||||||
|  |  | ||||||
|   /** |   /** | ||||||
|    * 上传 |    * 上传 | ||||||
| @ -368,6 +334,7 @@ export class TaxManagementInvoiceReportingComponent implements OnInit { | |||||||
|     this.selectedRows.forEach(item => { |     this.selectedRows.forEach(item => { | ||||||
|       params.push(item.id); |       params.push(item.id); | ||||||
|     }); |     }); | ||||||
|  |     return; //TODO 接口未提供 | ||||||
|     this.service.request(this.service.$api_get_uploadingTaxOrder, params).subscribe((res: any) => { |     this.service.request(this.service.$api_get_uploadingTaxOrder, params).subscribe((res: any) => { | ||||||
|       if (res) { |       if (res) { | ||||||
|         this.service.msgSrv.success('上传成功'); |         this.service.msgSrv.success('上传成功'); | ||||||
|  | |||||||
| @ -16,18 +16,20 @@ import { TaxManagementIndividualIncomeComponent } from './components/individual- | |||||||
| import { TaxManagementInvoiceReportingComponent } from './components/invoice-reporting/invoice-reporting.component'; | import { TaxManagementInvoiceReportingComponent } from './components/invoice-reporting/invoice-reporting.component'; | ||||||
| import { TaxManagementOrderReportingComponent } from './components/order-reporting/order-reporting.component'; | import { TaxManagementOrderReportingComponent } from './components/order-reporting/order-reporting.component'; | ||||||
|  |  | ||||||
|  |  | ||||||
| const routes: Routes = [ | const routes: Routes = [ | ||||||
|   { path: 'orderReport', component: TaxManagementOrderReportingComponent }, |   { path: 'orderReport', component: TaxManagementOrderReportingComponent, data: { guard: { ability: ['TAX-ORDERREPORT-search'] } } }, | ||||||
|   { path: 'income', component: TaxManagementIndividualIncomeComponent }, |   { path: 'income', component: TaxManagementIndividualIncomeComponent, data: { guard: { ability: ['TAX-INCOME-search'] } } }, | ||||||
|   { path: 'collect', component: TaxManagementIndividualCollectComponent }, |   { path: 'collect', component: TaxManagementIndividualCollectComponent, data: { guard: { ability: ['TAX-COLLECT-search'] } } }, | ||||||
|   { path: 'declare', component: TaxManagementIndividualDeclareComponent }, |   { path: 'declare', component: TaxManagementIndividualDeclareComponent, data: { guard: { ability: ['TAX-DECLARE-search'] } } }, | ||||||
|   { path: 'invoiceReport', component: TaxManagementInvoiceReportingComponent }, |   { | ||||||
|  |     path: 'invoiceReport', | ||||||
|  |     component: TaxManagementInvoiceReportingComponent, | ||||||
|  |     data: { guard: { ability: ['TAX_INVOICE_REPORT-list'] } } | ||||||
|  |   } | ||||||
| ]; | ]; | ||||||
|  |  | ||||||
|  |  | ||||||
| @NgModule({ | @NgModule({ | ||||||
|   imports: [RouterModule.forChild(routes)], |   imports: [RouterModule.forChild(routes)], | ||||||
|   exports: [RouterModule] |   exports: [RouterModule] | ||||||
| }) | }) | ||||||
| export class TaxManagementModuleRoutingModule { } | export class TaxManagementModuleRoutingModule {} | ||||||
|  | |||||||
| @ -11,9 +11,9 @@ | |||||||
|         </div> |         </div> | ||||||
|         <div nz-col [nzXl]="_$expand ? 24 : 6" [nzLg]="24" [nzSm]="24" [nzXs]="24" [class.expend-options]="_$expand" |         <div nz-col [nzXl]="_$expand ? 24 : 6" [nzLg]="24" [nzSm]="24" [nzXs]="24" [class.expend-options]="_$expand" | ||||||
|             class="text-right"> |             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)" acl [acl-ability]="['TICKET-BILLING-ORDER-search']">查询</button> | ||||||
|             <button nz-button (click)="resetSF()">重置</button> |             <button nz-button (click)="resetSF()">重置</button> | ||||||
|             <button nz-button (click)="export()"> 导出</button> |             <button nz-button (click)="export()" acl [acl-ability]="['TICKET-BILLING-ORDER-exprort']"> 导出</button> | ||||||
|             <button nz-button nzType="link" (click)="expandToggle()"> |             <button nz-button nzType="link" (click)="expandToggle()"> | ||||||
|                 {{ !_$expand ? '展开' : '收起' }} |                 {{ !_$expand ? '展开' : '收起' }} | ||||||
|                 <i nz-icon [nzType]="!_$expand ? 'down' : 'up'"></i> |                 <i nz-icon [nzType]="!_$expand ? 'down' : 'up'"></i> | ||||||
|  | |||||||
| @ -290,11 +290,11 @@ export class InvoiceDetailComponent implements OnInit { | |||||||
|       { title: '数量', render: 'vatqty', width: 140, className: 'text-right' }, |       { title: '数量', render: 'vatqty', width: 140, className: 'text-right' }, | ||||||
|       { |       { | ||||||
|         title: '金额', |         title: '金额', | ||||||
|         index: 'vattax', |         index: 'vatmoney', | ||||||
|         width: 140, |         width: 140, | ||||||
|         type: 'widget', |         type: 'widget', | ||||||
|         className: 'text-right', |         className: 'text-right', | ||||||
|         widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.vattax }) } |         widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.vatmoney }) } | ||||||
|       }, |       }, | ||||||
|       { |       { | ||||||
|         title: '税率', |         title: '税率', | ||||||
| @ -305,11 +305,11 @@ export class InvoiceDetailComponent implements OnInit { | |||||||
|       }, |       }, | ||||||
|       { |       { | ||||||
|         title: '税额', |         title: '税额', | ||||||
|         index: 'vatnotax', |         index: 'vattax', | ||||||
|         width: 140, |         width: 140, | ||||||
|         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 }) } | ||||||
|       } |       } | ||||||
|     ]; |     ]; | ||||||
|   } |   } | ||||||
|  | |||||||
| @ -39,6 +39,7 @@ export class InvoicedListComponent implements OnInit { | |||||||
|   ngOnInit(): void {} |   ngOnInit(): void {} | ||||||
|  |  | ||||||
|   beforeReq = (requestOptions: STRequestOptions) => { |   beforeReq = (requestOptions: STRequestOptions) => { | ||||||
|  |     Object.assign(requestOptions.body,{sts: '3'}) | ||||||
|     if (this.sf) { |     if (this.sf) { | ||||||
|       Object.assign(requestOptions.body, { |       Object.assign(requestOptions.body, { | ||||||
|         ...this.sf.value, |         ...this.sf.value, | ||||||
| @ -48,7 +49,7 @@ export class InvoicedListComponent implements OnInit { | |||||||
|         } |         } | ||||||
|       }); |       }); | ||||||
|     } |     } | ||||||
|     return requestOptions; |     return requestOptions ; | ||||||
|   }; |   }; | ||||||
|  |  | ||||||
|   stChange(e: STChange): void { |   stChange(e: STChange): void { | ||||||
|  | |||||||
| @ -71,7 +71,7 @@ const routes: Routes = [ | |||||||
|   { |   { | ||||||
|     path: 'driver/config', |     path: 'driver/config', | ||||||
|     component: UserCenterComponentsDriverConfigComponent, |     component: UserCenterComponentsDriverConfigComponent, | ||||||
|     data: { guard: { ability: ['USERCENTER-DRIVER-CAPTAIN-list'] } } |     data: { guard: { ability: ['USERCENTER-DRIVER-CONFIG-search'] } } | ||||||
|   } |   } | ||||||
| ]; | ]; | ||||||
|  |  | ||||||
|  | |||||||
| @ -16,17 +16,10 @@ | |||||||
|       <sf #sf [schema]="schema" [ui]="ui" [compact]="true" [button]="'none'"></sf> |       <sf #sf [schema]="schema" [ui]="ui" [compact]="true" [button]="'none'"></sf> | ||||||
|     </div> |     </div> | ||||||
|     <div nz-col [nzSpan]="_$expand ? 24 : 6" class="text-right"> |     <div nz-col [nzSpan]="_$expand ? 24 : 6" class="text-right"> | ||||||
|       <button |       <button nz-button nzType="primary" acl [acl-ability]="['VEHICLE-LIST-search']" [nzLoading]="service.http.loading" | ||||||
|         nz-button |         (click)="st?.load(1)">查询</button> | ||||||
|         nzType="primary" |       <button nz-button nzType="primary" [disabled]="false" (click)="exportFire()" acl | ||||||
|         acl |         [acl-ability]="'VEHICLE-LIST-export'">导出</button> | ||||||
|         [acl-ability]="['VEHICLE-LIST-search']" |  | ||||||
|         [nzLoading]="service.http.loading" |  | ||||||
|         (click)="st?.load(1)" |  | ||||||
|         >查询</button> |  | ||||||
|       <button nz-button nzType="primary" [disabled]="false" (click)="exportFire()" acl [acl-ability]="'VEHICLE-LIST-export'" |  | ||||||
|         >导出</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 ? '展开' : '收起' }} | ||||||
| @ -38,23 +31,14 @@ | |||||||
| <nz-card> | <nz-card> | ||||||
|   <!-- 数据列表 --> |   <!-- 数据列表 --> | ||||||
|  |  | ||||||
|   <st |   <st #st [bordered]="true" [scroll]="{ x: '1200px' }" [columns]="columns" [data]="service.$api_get_operate_list" | ||||||
|     #st |  | ||||||
|     [bordered]="true" |  | ||||||
|     [scroll]="{ x: '1200px' }" |  | ||||||
|     [columns]="columns" |  | ||||||
|     [data]="service.$api_get_operate_list" |  | ||||||
|     [req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, params: reqParams }" |     [req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, params: reqParams }" | ||||||
|     [res]="{ reName: { list: 'data.records', total: 'data.total' }, process: dataProcess }" |     [res]="{ reName: { list: 'data.records', total: 'data.total' }, process: dataProcess }" | ||||||
|     [page]="{ show: true, showSize: true, pageSizes: [10, 20, 30, 50, 100, 200, 300, 500, 1000] }" |     [page]="{ show: true, showSize: true, pageSizes: [10, 20, 30, 50, 100, 200, 300, 500, 1000] }" [loading]="false"> | ||||||
|     [loading]="false" |  | ||||||
|   > |  | ||||||
|     <ng-template st-row="carLength" let-item let-index="index"> |     <ng-template st-row="carLength" let-item let-index="index"> | ||||||
|       <div |       <div>{{ item?.carModelLabel }}-{{ item?.carLengthLabel ? item?.carLengthLabel + '米' : '' }}-{{ | ||||||
|         >{{ item?.carModelLabel }}-{{ item?.carLengthLabel ? item?.carLengthLabel + '米' : '' }}-{{ |         item?.carLoad ? item?.carLoad + '吨' : '' | ||||||
|           item?.carLoad ? item?.carLoad + '吨' : '' |         }}</div> | ||||||
|         }}</div |  | ||||||
|       > |  | ||||||
|     </ng-template> |     </ng-template> | ||||||
|     <ng-template st-row="isSelf" let-item let-index="index"> |     <ng-template st-row="isSelf" let-item let-index="index"> | ||||||
|       <div> |       <div> | ||||||
| @ -68,13 +52,19 @@ | |||||||
|     </ng-template> |     </ng-template> | ||||||
|     <ng-template st-row="approvalAuditStatus" let-item let-index="index"> |     <ng-template st-row="approvalAuditStatus" let-item let-index="index"> | ||||||
|       <div> |       <div> | ||||||
|         <span *ngIf="item?.approvalAuditStatus === -1 || (item?.approvalAuditStatus === '-1' && item?.isSelf)">未上传</span> |         <span | ||||||
|  |           *ngIf="item?.approvalAuditStatus === -1 || (item?.approvalAuditStatus === '-1' && item?.isSelf)">未上传</span> | ||||||
|         <span *ngIf="item?.approvalAuditStatus === 0 || (item?.approvalAuditStatus === '0' && item?.isSelf)">草稿</span> |         <span *ngIf="item?.approvalAuditStatus === 0 || (item?.approvalAuditStatus === '0' && item?.isSelf)">草稿</span> | ||||||
|         <span *ngIf="item?.approvalAuditStatus === 10 || (item?.approvalAuditStatus === '10' && item?.isSelf)">待审核</span> |         <span | ||||||
|         <span *ngIf="item?.approvalAuditStatus === 15 || (item?.approvalAuditStatus === '15' && item?.isSelf)">已撤销</span> |           *ngIf="item?.approvalAuditStatus === 10 || (item?.approvalAuditStatus === '10' && item?.isSelf)">待审核</span> | ||||||
|         <span *ngIf="item?.approvalAuditStatus === 20 || (item?.approvalAuditStatus === '20' && item?.isSelf)">已审核</span> |         <span | ||||||
|         <span *ngIf="item?.approvalAuditStatus === 30 || (item?.approvalAuditStatus === '30' && item?.isSelf)">已驳回</span> |           *ngIf="item?.approvalAuditStatus === 15 || (item?.approvalAuditStatus === '15' && item?.isSelf)">已撤销</span> | ||||||
|         <span *ngIf="item?.approvalAuditStatus === 40 || (item?.approvalAuditStatus === '40' && item?.isSelf)">证件过期</span> |         <span | ||||||
|  |           *ngIf="item?.approvalAuditStatus === 20 || (item?.approvalAuditStatus === '20' && item?.isSelf)">已审核</span> | ||||||
|  |         <span | ||||||
|  |           *ngIf="item?.approvalAuditStatus === 30 || (item?.approvalAuditStatus === '30' && item?.isSelf)">已驳回</span> | ||||||
|  |         <span | ||||||
|  |           *ngIf="item?.approvalAuditStatus === 40 || (item?.approvalAuditStatus === '40' && item?.isSelf)">证件过期</span> | ||||||
|         <span *ngIf="!item?.isSelf">-</span> |         <span *ngIf="!item?.isSelf">-</span> | ||||||
|       </div> |       </div> | ||||||
|     </ng-template> |     </ng-template> | ||||||
|  | |||||||
| @ -14,10 +14,14 @@ import { VehicleComponentsListDetailComponent } from './components/list/detail/d | |||||||
| import { VehicleComponentsListComponent } from './components/list/list.component'; | import { VehicleComponentsListComponent } from './components/list/list.component'; | ||||||
|  |  | ||||||
| const routes: Routes = [ | const routes: Routes = [ | ||||||
|   { path: 'list', component: VehicleComponentsListComponent }, |   { path: 'list', component: VehicleComponentsListComponent, data: { guard: { ability: ['VEHICLE-LIST-search'] } } }, | ||||||
|   { path: 'list/detail/:id', component: VehicleComponentsListDetailComponent }, |   { path: 'list/detail/:id', component: VehicleComponentsListDetailComponent, data: { guard: { ability: ['VEHICLE-LIST-DETAIL-list'] } } }, | ||||||
|   { path: 'audit', component: VehicleComponentsAuditComponent }, |   { path: 'audit', component: VehicleComponentsAuditComponent, data: { guard: { ability: ['VEHICLE-AUDIT-search'] } } }, | ||||||
|   { path: 'audit/detail/:id', component: VehicleComponentsAuditDetailComponent } |   { | ||||||
|  |     path: 'audit/detail/:id', | ||||||
|  |     component: VehicleComponentsAuditDetailComponent, | ||||||
|  |     data: { guard: { ability: ['VEHICLE-AUDIT-DETAIL-search'] } } | ||||||
|  |   } | ||||||
| ]; | ]; | ||||||
|  |  | ||||||
| @NgModule({ | @NgModule({ | ||||||
|  | |||||||
| @ -14,9 +14,9 @@ | |||||||
|     [page]="{ show: true, showSize: true, pageSizes: [10, 20, 30, 50, 100, 200, 300, 500, 1000] }" |     [page]="{ show: true, showSize: true, pageSizes: [10, 20, 30, 50, 100, 200, 300, 500, 1000] }" | ||||||
|     [loading]="false" [scroll]="{ y: '370px' }"> |     [loading]="false" [scroll]="{ y: '370px' }"> | ||||||
|     <ng-template st-row="paAccount" let-item let-index="index"> |     <ng-template st-row="paAccount" let-item let-index="index"> | ||||||
|         <a (click)="createAccount(item,'1')" acl  [acl-ability]="['USERCENTER-FREIGHT-LIST-createAccount']" >{{ item.paAccount || '添加' }}</a> |         <a (click)="createAccount(item,'1')" acl  [acl-ability]="['USERCENTER-DRIVER-LIST-createAccount']" >{{ item.paAccount || '添加' }}</a> | ||||||
|     </ng-template> |     </ng-template> | ||||||
|     <ng-template st-row="pfAccount" let-item let-index="index"> |     <ng-template st-row="pfAccount" let-item let-index="index"> | ||||||
|         <a (click)="createAccount(item,'2')" acl  [acl-ability]="['USERCENTER-FREIGHT-LIST-createAccount']" >{{ item.pfAccount || '添加' }}</a> |         <a (click)="createAccount(item,'2')" acl  [acl-ability]="['USERCENTER-DRIVER-LIST-createAccount']" >{{ item.pfAccount || '添加' }}</a> | ||||||
|     </ng-template> |     </ng-template> | ||||||
| </st> | </st> | ||||||
| @ -112,19 +112,23 @@ | |||||||
|                                 <!-- 图片上传 --> |                                 <!-- 图片上传 --> | ||||||
|                                 <ng-container *ngSwitchCase="12"> |                                 <ng-container *ngSwitchCase="12"> | ||||||
|                                     <div> |                                     <div> | ||||||
|                                         <nz-upload class="avatar-uploader" [nzAction]="service.$api_upload_url" |                                         <nz-upload #filst class="avatar-uploader" [nzAction]="service.$api_upload_url" | ||||||
|                                             [nzName]="'multipartFile'" nzName="avatar" nzListType="picture-card" |                                             [nzName]="'multipartFile'" nzName="avatar" nzListType="picture-card" | ||||||
|                                             [nzShowUploadList]="false" (nzChange)="uploadChange($event,item)"> |                                             [nzShowUploadList]="{showPreviewIcon:true,showRemoveIcon:true}" | ||||||
|                                             <ng-container *ngIf="!item.itemValue"> |                                             [nzFileList]="item.itemValue?[{uid:item.id,name:'',url:item.itemValue}]:[]" | ||||||
|  |                                             (nzChange)="uploadChange($event,item)" [nzLimit]="1" | ||||||
|  |                                             [nzShowButton]="filst?.nzFileList?.length===0 " [nzPreview]="nzPreview" | ||||||
|  |                                             [nzRemove]="nzRemove"> | ||||||
|  |                                             <div> | ||||||
|                                                 <i class="upload-icon" nz-icon |                                                 <i class="upload-icon" nz-icon | ||||||
|                                                     [nzType]="service.http.loading ? 'loading' : 'plus'"></i> |                                                     [nzType]="service.http.loading ? 'loading' : 'plus'"></i> | ||||||
|                                                 <div class="ant-upload-text">上传</div> |                                                 <div class="ant-upload-text">上传</div> | ||||||
|                                             </ng-container> |                                             </div> | ||||||
|                                             <div style="width: 102px;height: 102px;display: flex;align-items: center;justify-content: center;" |                                             <!-- <div style="width: 102px;height: 102px;display: flex;align-items: center;justify-content: center;" | ||||||
|                                                 *ngIf="item.itemValue" (click)="$event.cancelBubble = true"> |                                                 *ngIf="item.itemValue" (click)="$event.cancelBubble = true"> | ||||||
|                                                 <img nz-image [nzSrc]="item.itemValue" |                                                 <img nz-image [nzSrc]="item.itemValue" | ||||||
|                                                     style="max-width: 102px;max-height: 102px;" /> |                                                     style="max-width: 102px;max-height: 102px;" /> | ||||||
|                                             </div> |                                             </div> --> | ||||||
|                                         </nz-upload> |                                         </nz-upload> | ||||||
|                                         <p>支持 |                                         <p>支持 | ||||||
|                                             <ng-container *ngFor="let item of item.remark?.format"> |                                             <ng-container *ngFor="let item of item.remark?.format"> | ||||||
|  | |||||||
| @ -98,6 +98,17 @@ export class DynamicSettingH5Component implements OnInit { | |||||||
|     } |     } | ||||||
|   } |   } | ||||||
|  |  | ||||||
|  |   nzPreview = (file: NzUploadFile) => { | ||||||
|  |     this.showImg(file.url); | ||||||
|  |   }; | ||||||
|  |   nzRemove = (file: NzUploadFile) => { | ||||||
|  |     const config = this.configList.find((c: any) => c.id === file.uid); | ||||||
|  |     if (config) { | ||||||
|  |       config.itemValue = ''; | ||||||
|  |     } | ||||||
|  |     return true; | ||||||
|  |   }; | ||||||
|  |  | ||||||
|   showImg(url: any) { |   showImg(url: any) { | ||||||
|     this.nzImageService.preview([{ src: url }]); |     this.nzImageService.preview([{ src: url }]); | ||||||
|   } |   } | ||||||
|  | |||||||
		Reference in New Issue
	
	Block a user