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", | ||||
|   "version": "1.0.1", | ||||
|   "version": "1.2.0", | ||||
|   "description": "运营后台-WEB", | ||||
|   "author": "cipchk <cipchk@qq.com>", | ||||
|   "repository": { | ||||
|  | ||||
| @ -4,7 +4,7 @@ | ||||
|  * @Author       : Shiming | ||||
|  * @Date         : 2022-01-18 09:51:21 | ||||
|  * @LastEditors  : Shiming | ||||
|  * @LastEditTime : 2022-04-28 14:09:56 | ||||
|  * @LastEditTime : 2022-04-28 16:08:43 | ||||
|  * @FilePath     : \\tms-obc-web\\proxy.conf.js | ||||
|  * Copyright (C) 2022 huzhenhong. All rights reserved. | ||||
|  */ | ||||
| @ -30,7 +30,7 @@ module.exports = { | ||||
|   // }, | ||||
|   '//api': { | ||||
|     target: { | ||||
|       host: 'tms-api-dev.eascs.com', | ||||
|       host: 'tms-api-test.eascs.com', | ||||
|       protocol: 'https:', | ||||
|       port: 443 | ||||
|     }, | ||||
|  | ||||
| @ -24,7 +24,7 @@ | ||||
|  | ||||
| <div nz-row [nzGutter]="16"> | ||||
|   <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> | ||||
|         <div class="card-f"> | ||||
|           <span class="card-f-l">合格:{{cardData1?.leftQuantity}}</span> <span>不合格:{{cardData1?.rightQuantity}}</span> | ||||
| @ -33,7 +33,7 @@ | ||||
|     </g2-card> | ||||
|   </div> | ||||
|   <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> | ||||
|         <div class="card-f"> | ||||
|           <span class="card-f-l">货源单:{{cardData2?.leftQuantity}}</span> <span>合同单:{{cardData2?.rightQuantity}}</span> | ||||
| @ -42,7 +42,7 @@ | ||||
|     </g2-card> | ||||
|   </div> | ||||
|   <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> | ||||
|         <div class="card-f"> | ||||
|           <span class="card-f-l">司机:{{cardData3?.leftQuantity}}</span> <span>车队长:{{cardData3?.rightQuantity}}</span> | ||||
| @ -51,7 +51,7 @@ | ||||
|     </g2-card> | ||||
|     </div> | ||||
|   <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> | ||||
|         <div class="card-f"> | ||||
|           <span class="card-f-l">准时:{{cardData4?.leftQuantity}}</span> <span>逾期:{{cardData4?.rightQuantity}}</span> | ||||
|  | ||||
| @ -47,27 +47,30 @@ export class DatatableComplianceIndexComponent implements OnInit { | ||||
|       time:this.time | ||||
|     } | ||||
|     this.service.request(this.service.$api_getBillRateQualified, params).subscribe(res => { | ||||
|  | ||||
|         if (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 => { | ||||
|         if (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 => { | ||||
|         if (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 => { | ||||
|         if (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: [ | ||||
|           { | ||||
|             text: '浏览', | ||||
|             acl: { ability: ['FINANCIAL-PAYABLE-view'] }, | ||||
|             click: item => | ||||
|               this.router.navigate(['/financial-management/payable-order/detail/' + item.id], { queryParams: { billHId: item.id } }) | ||||
|           } | ||||
|  | ||||
| @ -33,7 +33,7 @@ | ||||
|         </div> | ||||
|         <div class="mr-sm"> | ||||
|             <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> | ||||
|  | ||||
|  | ||||
| @ -251,6 +251,7 @@ export class ReceiptOrderComponent extends BasicTableComponent implements OnInit | ||||
|         buttons: [ | ||||
|           { | ||||
|             text: '浏览', | ||||
|             acl: { ability: ['FINANCIAL-RECEIPT-view'] }, | ||||
|             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> | ||||
|         <div class="mr-sm"> | ||||
|             <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> | ||||
|     <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: '账户名称', | ||||
|           ui: { | ||||
|             placeholder: '请输入', | ||||
|             autocomplete: 'off', | ||||
|             autocomplete: 'off' | ||||
|           } | ||||
|         }, | ||||
|         accountType: { | ||||
| @ -133,7 +133,7 @@ export class RechargeRecordComponent extends BasicTableComponent implements OnIn | ||||
|           ], | ||||
|           ui: { | ||||
|             widget: 'select', | ||||
|             placeholder: '请选择', | ||||
|             placeholder: '请选择' | ||||
|           }, | ||||
|           default: '' | ||||
|         }, | ||||
| @ -157,7 +157,7 @@ export class RechargeRecordComponent extends BasicTableComponent implements OnIn | ||||
|           ], | ||||
|           ui: { | ||||
|             widget: 'select', | ||||
|             placeholder: '请选择', | ||||
|             placeholder: '请选择' | ||||
|           }, | ||||
|           default: '' | ||||
|         } | ||||
| @ -195,6 +195,7 @@ export class RechargeRecordComponent extends BasicTableComponent implements OnIn | ||||
|           { type: 'divider' }, | ||||
|           { | ||||
|             text: '查看回单<br>', | ||||
|             acl: { ability: ['FINANCIAL-RECHARGE-receiptApply'] }, | ||||
|             click: item => | ||||
|               this.service.getReceiptUrl(item.receiptUrl, { | ||||
|                 bankType: item.bankType, | ||||
| @ -207,6 +208,7 @@ export class RechargeRecordComponent extends BasicTableComponent implements OnIn | ||||
|           }, | ||||
|           { | ||||
|             text: '添加备注', | ||||
|             acl: { ability: ['FINANCIAL-RECHARGE-addRemark'] }, | ||||
|             click: item => this.addRemark(item) | ||||
|           } | ||||
|         ] | ||||
|  | ||||
| @ -283,10 +283,12 @@ export class VoucherSummaryComponent extends BasicTableComponent implements OnIn | ||||
|         buttons: [ | ||||
|           { | ||||
|             text: '浏览', | ||||
|             acl: { ability: ['FINANCIAL-VOUCHER-SUMMARY-view'] }, | ||||
|             click: (item: any) => this.router.navigate(['/financial-management/voucher-summary/detail/' + item.id]) | ||||
|           }, | ||||
|           { | ||||
|             text: '列表', | ||||
|             acl: { ability: ['FINANCIAL-VOUCHER-SUMMARY-child-list'] }, | ||||
|             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/detail/:id', component: FreightAccountDetailComponent }, | ||||
|   { 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: 'platform-account/detail/:id', component: PlatformAccountDetailComponent , data: { guard: { ability: ['FINANCIAL-PLATFORM-DETAIL-detail'] } } }, | ||||
|   { path: 'recharge-record', component: RechargeRecordComponent }, | ||||
|   { | ||||
|     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: '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/detail/:id', component: WithdrawalsDetailComponent }, | ||||
|   { 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-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/list/:id', component: VoucherListComponent }, | ||||
|   { path: 'voucher-summary/list/detail/:id', component: VoucherDetailComponent }, | ||||
| @ -67,9 +75,17 @@ const routes: Routes = [ | ||||
|   { path: 'advance-collection', component: AdvanceCollectionComponent }, | ||||
|   { path: 'advance-collection/detail/:id', component: AdvanceCollectionDetailComponent }, | ||||
|   { 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/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 } | ||||
| ]; | ||||
|  | ||||
|  | ||||
| @ -23,8 +23,8 @@ | ||||
| <nz-card class="content-box"> | ||||
|  | ||||
|     <nz-tabset> | ||||
|         <nz-tab nzTitle="货主菜单" (nzClick)="changeMemu(0)"></nz-tab> | ||||
|         <nz-tab nzTitle="运营后台菜单" (nzClick)="changeMemu(1)"></nz-tab> | ||||
|         <nz-tab nzTitle="货主菜单" (nzClick)="changeMemu(0)" *ngIf="isShowFre"></nz-tab> | ||||
|         <nz-tab nzTitle="运营后台菜单" (nzClick)="changeMemu(1)" *ngIf="isShowBackEND"></nz-tab> | ||||
|     </nz-tabset> | ||||
|  | ||||
|     <!-- <st #st [data]="service.$api_get_all" [columns]="columns" [expand]="expand" expandRowByClick | ||||
| @ -36,7 +36,7 @@ | ||||
|     </ng-template> | ||||
|   </st> --> | ||||
|     <nz-table #expandTable [nzData]="listOfMapData" nzTableLayout="fixed" nzBordered nzSize="small" | ||||
|         [nzLoading]="service.http.loading"> | ||||
|         [nzLoading]="service.http.loading" *ngIf="isShowFre || isShowBackEND"> | ||||
|         <thead> | ||||
|             <tr> | ||||
|                 <!-- <th nzWidth="70px" nzAlign="center">#</th> --> | ||||
| @ -65,7 +65,7 @@ | ||||
|                         </td> | ||||
|                         <td nzWidth="100px">{{ item.sorted }}</td> | ||||
|                         <td nzWidth="150px" nzAlign="center"> | ||||
|                             <a (click)="openDrawer(item)">权限配置</a> | ||||
|                             <a (click)="openDrawer(item)" acl [acl-ability]="['MENU-AUTH-auth']">权限配置</a> | ||||
|                         </td> | ||||
|                     </tr> | ||||
|                 </ng-container> | ||||
|  | ||||
| @ -1,4 +1,5 @@ | ||||
| import { Component, OnInit, ViewChild } from '@angular/core'; | ||||
| import { ACLService } from '@delon/acl'; | ||||
| import { SFComponent, SFSchema } from '@delon/form'; | ||||
| import { EAEnvironmentService } from '@shared'; | ||||
| import { NzDrawerService } from 'ng-zorro-antd/drawer'; | ||||
| @ -34,14 +35,26 @@ export class ApiAuthComponent implements OnInit { | ||||
|  | ||||
|   mapOfExpandedData: { [key: string]: 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(); | ||||
|   } | ||||
|  | ||||
|   ngOnInit(): void {} | ||||
|  | ||||
|   initData(): void { | ||||
|     this.selectedPlatform = this.platforms[0]; | ||||
|     this.selectedPlatform = this.isShowFre ? this.platforms[0] : this.platforms[1]; | ||||
|     this.loadMemu(this.selectedPlatform.appId); | ||||
|   } | ||||
|  | ||||
|  | ||||
| @ -23,14 +23,15 @@ | ||||
| <nz-card class="content-box"> | ||||
|  | ||||
|   <nz-tabset [nzTabBarExtraContent]="extraTemplate"> | ||||
|     <nz-tab nzTitle="货主菜单" (nzClick)="changeMemu(0)"></nz-tab> | ||||
|     <nz-tab nzTitle="运营后台菜单" (nzClick)="changeMemu(1)"></nz-tab> | ||||
|     <nz-tab nzTitle="货主菜单" (nzClick)="changeMemu(0)" *ngIf="isShowFre"></nz-tab> | ||||
|     <nz-tab nzTitle="运营后台菜单" (nzClick)="changeMemu(1)" *ngIf="isShowBackEND"></nz-tab> | ||||
|   </nz-tabset> | ||||
|   <ng-template #extraTemplate> | ||||
|     <div class="d-flex align-items-center"> | ||||
|       <div> | ||||
|         <button nz-button nzType="primary" (click)="menuAction('新增菜单')">新增</button> | ||||
|         <button nz-button nzType="primary" (click)="menuSort()">菜单排序</button> | ||||
|         <button nz-button nzType="primary" (click)="menuAction('新增菜单')" acl | ||||
|           [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" | ||||
|           *ngIf="selectedPlatform.enName==='tms-smc-web'"> | ||||
|           导入货主菜单 | ||||
| @ -52,7 +53,7 @@ | ||||
|     </ng-template> | ||||
|   </st> --> | ||||
|   <nz-table #expandTable [nzData]="listOfMapData" nzTableLayout="fixed" nzBordered nzSize="small" | ||||
|     [nzLoading]="service.http.loading"> | ||||
|     [nzLoading]="service.http.loading" *ngIf="isShowFre || isShowBackEND"> | ||||
|     <thead> | ||||
|       <tr> | ||||
|         <!-- <th nzWidth="70px" nzAlign="center">#</th> --> | ||||
| @ -85,12 +86,12 @@ | ||||
|             <td nzAlign="center" nzWidth="250px"> | ||||
|               <a (click)="menuAction('查看菜单',item,item.parentId,true)">查看</a> | ||||
|               <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> | ||||
|               <a (click)="deleteAction(item)">删除</a> | ||||
|               <a (click)="deleteAction(item)" acl [acl-ability]="['MENU-INDEX-delete']">删除</a> | ||||
|               <ng-container *ngIf="item.level!==3"> | ||||
|                 <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> | ||||
|             </td> | ||||
|           </tr> | ||||
|  | ||||
| @ -1,5 +1,6 @@ | ||||
| import { Component, OnInit, ViewChild } from '@angular/core'; | ||||
| import { STComponent, STColumn, STRequestOptions, STChange } from '@delon/abc/st'; | ||||
| import { ACLService } from '@delon/acl'; | ||||
| import { SFComponent, SFSchema } from '@delon/form'; | ||||
| import { Menu, ModalHelper } from '@delon/theme'; | ||||
| import { EAEnvironmentService } from '@shared'; | ||||
| @ -37,14 +38,26 @@ export class MenuManagerComponentsIndexComponent implements OnInit { | ||||
|  | ||||
|   mapOfExpandedData: { [key: string]: 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(); | ||||
|   } | ||||
|  | ||||
|   ngOnInit(): void {} | ||||
|  | ||||
|   initData(): void { | ||||
|     this.selectedPlatform = this.platforms[0]; | ||||
|     this.selectedPlatform = this.isShowFre ? this.platforms[0] : this.platforms[1]; | ||||
|     this.loadMemu(this.selectedPlatform.appId); | ||||
|   } | ||||
|  | ||||
| @ -126,13 +139,13 @@ export class MenuManagerComponentsIndexComponent implements OnInit { | ||||
|       } | ||||
|     }); | ||||
|   } | ||||
|   menuSort(){ | ||||
|   menuSort() { | ||||
|     const dialogData = { | ||||
|       appId: this.selectedPlatform.appId | ||||
|     }; | ||||
|     this.modalHelper.create(MenuManagerMenusortComponent, { i: dialogData }, { size: 900 }).subscribe((res:any) => { | ||||
|       if(res) { | ||||
|         console.log('a') | ||||
|     this.modalHelper.create(MenuManagerMenusortComponent, { i: dialogData }, { size: 900 }).subscribe((res: any) => { | ||||
|       if (res) { | ||||
|         console.log('a'); | ||||
|         this.loadMemu(this.selectedPlatform.appId); | ||||
|       } | ||||
|     }); | ||||
|  | ||||
| @ -5,12 +5,16 @@ import { MenuManagerComponentsIndexComponent } from './components/index/index.co | ||||
|  | ||||
| const routes: Routes = [ | ||||
|   { 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({ | ||||
|   imports: [RouterModule.forChild(routes)], | ||||
|   exports: [RouterModule], | ||||
|   exports: [RouterModule] | ||||
| }) | ||||
| export class MenuManagerRoutingModule {} | ||||
|  | ||||
| @ -4,7 +4,7 @@ | ||||
|  * @Author       : Shiming | ||||
|  * @Date         : 2021-12-28 14:42:03 | ||||
|  * @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 | ||||
|  * 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'] }) | ||||
|           .subscribe(res => { | ||||
|             if (res) { | ||||
|               console.log('操作日志'); | ||||
|               console.log(res); | ||||
|               let a: any = []; | ||||
|               res.records.forEach((item: any) => { | ||||
|                 a.push({ | ||||
| @ -122,7 +120,6 @@ export class OrderManagementVehicleDetailComponent implements OnInit { | ||||
|                   color: 'green' | ||||
|                 }); | ||||
|               }); | ||||
|               console.log(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 => { | ||||
|       if (res) { | ||||
|         console.log('风险详情'); | ||||
|         console.log(res); | ||||
|         this.abnormalList = res; | ||||
|       } | ||||
|     }); | ||||
|     this.service.request(this.service.$api_getAbnormalWarningByBillId, { id: this.id }).subscribe(res => { | ||||
|       if (res) { | ||||
|         console.log('异常预警'); | ||||
|         console.log(res); | ||||
|         this.warringList = res; | ||||
|       } | ||||
|     }); | ||||
|  | ||||
| @ -4,7 +4,7 @@ | ||||
|  * @Author       : Shiming | ||||
|  * @Date         : 2021-12-29 17:27:37 | ||||
|  * @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 | ||||
|  * Copyright (C) 2022 huzhenhong. All rights reserved. | ||||
| --> | ||||
| @ -28,8 +28,8 @@ | ||||
|     <img style="height: 20px" [src]="item?.avatar" alt="" /> | ||||
|   </ng-template> | ||||
|   <ng-template st-row="bankList" let-item let-index="index"> | ||||
|     <nz-select [(ngModel)]="bankData" style="width: 200px"> | ||||
|       <nz-option *ngFor="let i of item.bankList" [nzLabel]="i.bankCardNumber" [nzValue]="i.id"></nz-option> | ||||
|     <nz-select [(ngModel)]="bankData" style="width: 300px"> | ||||
|       <nz-option *ngFor="let i of item.bankList" [nzLabel]="i.bankName + '/'+i.bankCardNumber" [nzValue]="i.id"></nz-option> | ||||
|     </nz-select> | ||||
|   </ng-template> | ||||
|   <ng-template st-row="paymentMethodRate" let-item let-index="index"> | ||||
|  | ||||
| @ -4,7 +4,7 @@ | ||||
|  * @Author       : Shiming | ||||
|  * @Date         : 2021-12-30 14:45:39 | ||||
|  * @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 | ||||
|  * Copyright (C) 2022 huzhenhong. All rights reserved. | ||||
|  */ | ||||
| @ -38,6 +38,21 @@ export class VehicleModifyCaptainComponent implements OnInit { | ||||
|     this.initSF(); | ||||
|     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() { | ||||
|     this.schema = { | ||||
|       properties: { | ||||
| @ -120,6 +135,7 @@ export class VehicleModifyCaptainComponent implements OnInit { | ||||
|     this.service.request(this.service.$api_get_getCarCaptainByMobile, params).subscribe((res: any) => { | ||||
|       if (res) { | ||||
|         this.dataList = [res]; | ||||
|         this.initData(res.appUserId); | ||||
|       } | ||||
|     }); | ||||
|   } | ||||
|  | ||||
| @ -4,7 +4,7 @@ | ||||
|  * @Author       : Shiming | ||||
|  * @Date         : 2021-12-03 15:31:52 | ||||
|  * @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 | ||||
|  * Copyright (C) 2022 huzhenhong. All rights reserved. | ||||
|  */ | ||||
| @ -222,6 +222,9 @@ export class OrderManagementService extends ShipperBaseService { | ||||
|   // 订单上报推送 | ||||
|   $api_manualOrderSubmission = '/api/sdc/billOperate/manualOrderSubmission'; | ||||
|  | ||||
|   // 获取司机所有银行卡信息 | ||||
|   $api_getDriverBankInfoList= '/api/fcc/bankInfoDMC/getDriverBankInfoList'; | ||||
|  | ||||
|   // // 生成卸货单 | ||||
|   // 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 nz-row> | ||||
|     <div nz-col nzSpan="18"> | ||||
|       <sf #sf [schema]="schema" mode="search" [ui]="ui" [compact]="true" (formSubmit)="st.load(1)" | ||||
| @ -41,9 +54,12 @@ | ||||
|       </ng-template> | ||||
|     </st> | ||||
|   </div> | ||||
|   <div class="modal-footer"> | ||||
|  | ||||
| </div> | ||||
| </nz-spin > | ||||
|  | ||||
| <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 | ||||
|  * @Date         : 2022-01-12 10:52:50 | ||||
|  * @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 | ||||
|  * 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> --> | ||||
| <!-- 搜索区 --> | ||||
| <nz-spin [nzSpinning]="service.http.loading"> | ||||
| <div nz-row nzGutter="8"> | ||||
|   <div nz-col [nzSpan]="18"> | ||||
|     <sf #sf [ui]="ui" [schema]="schema" [button]="'none'"></sf> | ||||
| @ -19,6 +20,7 @@ | ||||
|     <button nz-button (click)="resetSF()">重置</button> | ||||
|   </div> | ||||
| </div> | ||||
|  | ||||
| <div nz-row nzGutter="8"> | ||||
|   <div nz-col [nzSpan]="12"> | ||||
|     <!-- 数据列表 --> | ||||
| @ -55,6 +57,8 @@ | ||||
|     </st> | ||||
|   </div> | ||||
| </div> | ||||
| </nz-spin> | ||||
|  | ||||
| <div *nzModalFooter> | ||||
|   <button nz-button nzType="default" (click)="cancel()">取消</button> | ||||
|   <button nz-button nzType="primary" (click)="ok()">发布并指派给司机</button> | ||||
|  | ||||
| @ -25,8 +25,10 @@ | ||||
|         <sf #sf [schema]="schema" [ui]="ui" [compact]="true" [button]="'none'"></sf> | ||||
|       </div> | ||||
|       <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 [disabled]="false" nzType="primary">导出</button> | ||||
|         <button nz-button nzType="primary" acl [acl-ability]="['SYSTEM-ANNOUNCEMENT-list']" | ||||
|           [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 nzType="link" (click)="expandToggle()"> | ||||
|           {{ !_$expand ? '展开' : '收起' }} | ||||
| @ -40,7 +42,8 @@ | ||||
| <nz-card class="content-box"> | ||||
|   <div class="d-flex justify-content-end mb-sm mt-sm"> | ||||
|     <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> | ||||
|   <st #st [data]="service.$api_getAnnouncementInfoList_page" [columns]="columns" [req]="{  params: reqParams }" | ||||
|  | ||||
| @ -39,10 +39,12 @@ export class AnnouncementMessageComponent implements OnInit { | ||||
|       buttons: [ | ||||
|         { | ||||
|           text: '编辑', | ||||
|           acl: { ability: ['SYSTEM-ANNOUNCEMENT-edit'] }, | ||||
|           click: item => this.roleAction(item, 2) | ||||
|         }, | ||||
|         { | ||||
|           text: '删除', | ||||
|           acl: { ability: ['SYSTEM-ANNOUNCEMENT-delete'] }, | ||||
|           click: item => this.deleteAction(item) | ||||
|         }, | ||||
|       ] | ||||
|  | ||||
| @ -1,7 +1,11 @@ | ||||
| <page-header-wrapper [title]="'车型车长配置'" [content]="content"> | ||||
|     <ng-template #content> | ||||
|         <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> | ||||
|     </ng-template> | ||||
| </page-header-wrapper> | ||||
| @ -22,10 +26,10 @@ | ||||
| <nz-card> | ||||
|     <div class="d-flex justify-content-end mb-sm"> | ||||
|         <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> | ||||
|     <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" | ||||
|         [scroll]="{ y: '370px' }"></st> | ||||
|         [req]="{process: beforeReq }" [res]="{  process: afterRes }" [loading]="loading" [scroll]="{ y: '370px' }"></st> | ||||
| </nz-card> | ||||
| @ -1,5 +1,6 @@ | ||||
| import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnInit, ViewChild } from '@angular/core'; | ||||
| import { STComponent, STColumn, STChange, STRequestOptions } from '@delon/abc/st'; | ||||
| import { ACLService } from '@delon/acl'; | ||||
| import { SFComponent, SFSchema } from '@delon/form'; | ||||
| import { NzModalService } from 'ng-zorro-antd/modal'; | ||||
| import { SystemService } from '../../services/system.service'; | ||||
| @ -20,17 +21,20 @@ export class CartConfigComponent implements OnInit { | ||||
|     { | ||||
|       name: '车型配置', | ||||
|       type: 1, | ||||
|       isActived: false | ||||
|       isActived: false, | ||||
|       isShow: true | ||||
|     }, | ||||
|     { | ||||
|       name: '车长配置', | ||||
|       type: 2, | ||||
|       isActived: false | ||||
|       isActived: false, | ||||
|       isShow: true | ||||
|     }, | ||||
|     { | ||||
|       name: '禁限物品名单', | ||||
|       type: 3, | ||||
|       isActived: false | ||||
|       isActived: false, | ||||
|       isShow: true | ||||
|     } | ||||
|   ]; | ||||
|   tabType = 1; | ||||
| @ -102,10 +106,12 @@ export class CartConfigComponent implements OnInit { | ||||
|       buttons: [ | ||||
|         { | ||||
|           text: '编辑', | ||||
|           acl: { ability: ['SYSTEM-CART-CONFIG-edit'] }, | ||||
|           click: item => this.configAction(item) | ||||
|         }, | ||||
|         { | ||||
|           text: '删除', | ||||
|           acl: { ability: ['SYSTEM-CART-CONFIG-delete'] }, | ||||
|           click: item => this.deleteAction(item) | ||||
|         } | ||||
|       ] | ||||
| @ -113,7 +119,35 @@ export class CartConfigComponent implements OnInit { | ||||
|   ]; | ||||
|  | ||||
|   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 {} | ||||
|  | ||||
|  | ||||
| @ -1,10 +1,10 @@ | ||||
| <!-- | ||||
|  * @Author: your name | ||||
|  * @Date: 2021-12-24 15:38:08 | ||||
|  * @LastEditTime: 2021-12-27 11:21:35 | ||||
|  * @LastEditors: Please set LastEditors | ||||
|  * @LastEditTime : 2022-04-28 19:05:49 | ||||
|  * @LastEditors  : Shiming | ||||
|  * @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> | ||||
| @ -16,7 +16,6 @@ | ||||
|       <sf #sf [schema]="schema" [ui]="ui" [mode]="'search'" [loading]="false" (formSubmit)="st?.load(1)" | ||||
|         (formReset)="resetSF()"></sf> | ||||
|     </div> | ||||
|     edit | ||||
|     <!-- 查询字段大于3个时,根据展开状态调整布局 --> | ||||
|     <ng-container *ngIf="queryFieldCount > 4"> | ||||
|       <div nz-col [nzSpan]="_$expand ? 24 : 18"> | ||||
|  | ||||
| @ -156,21 +156,22 @@ export class CloseAccountComponent implements OnInit { | ||||
|         maxLength: 30, | ||||
|         ui: { | ||||
|           widget: 'select', | ||||
|           serverSearch: true, | ||||
|           // serverSearch: true, | ||||
|           allowClear: true, | ||||
|           searchDebounceTime: 300, | ||||
|           searchLoadingText: '搜索中...', | ||||
|           onSearch: (q: any) => { | ||||
|             let str =q.replace(/^\s+|\s+$/g,""); | ||||
|             let str = q?.replace(/^\s+|\s+$/g, ''); | ||||
|             if (str) { | ||||
|               return this.service | ||||
|                 .request(this.service.$api_enterpriceList, { enterpriseName: str}) | ||||
|                 .pipe(map((res: any) => (res as any[]).map((i) => ({ label: i.enterpriseName, value: i.id } as SFSchemaEnum)))) | ||||
|                 .request(this.service.$api_enterpriceList, { enterpriseName: str }) | ||||
|                 .pipe(map(res => (res as any[]).map(i => ({ label: i.enterpriseName, value: i.id } as SFSchemaEnum)))) | ||||
|                 .toPromise(); | ||||
|             } else { | ||||
|               return of([]); | ||||
|             } | ||||
|           }, | ||||
|         } as SFSelectWidgetSchema, | ||||
|         } as SFSelectWidgetSchema | ||||
|       }, | ||||
|   }, | ||||
|   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) => { | ||||
|         console.log(res) | ||||
|         if(res) { | ||||
|           this.formData = res; | ||||
|           const List: any = []; | ||||
|             List.push({ label: res.enterpriseName, value: res.id }); | ||||
|           List.push({ label: value.enterpriseName, value: res.enterpriseId }); | ||||
|           this.formData = res; | ||||
|           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; | ||||
|  | ||||
| @ -122,8 +122,17 @@ export class MenuTreeComponent implements OnInit, OnChanges { | ||||
|         }); | ||||
|       } | ||||
|     } else { | ||||
|       console.log(event); | ||||
|  | ||||
|       if (event.node?.isChecked) { | ||||
|         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) { | ||||
|           this.origin.buttonInfoList.forEach((auth: any) => this._apiAuthSet.add(auth.functionButtonId)); | ||||
|         } | ||||
|  | ||||
| @ -1,7 +1,8 @@ | ||||
| <nz-card class="content-box"> | ||||
|  | ||||
|     <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> | ||||
|  | ||||
|     <nz-table #expandTable [nzData]="listOfMapData" nzTableLayout="fixed" nzBordered nzSize="small" | ||||
| @ -33,16 +34,16 @@ | ||||
|                         </td> | ||||
|                         <td nzAlign="center" nzWidth="250px"> | ||||
|                             <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> | ||||
|                                 <a (click)="deleteAction(item)">删除</a> | ||||
|                                 <a (click)="deleteAction(item)" acl [acl-ability]="['SYSTEM-ROLE-delete']">删除</a> | ||||
|                                 <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> | ||||
|                                 <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> | ||||
|                                 <a>配置数据权限</a> | ||||
|                                 <a acl [acl-ability]="['SYSTEM-ROLE-data']">配置数据权限</a> | ||||
|                             </ng-container> | ||||
|  | ||||
|                         </td> | ||||
|  | ||||
| @ -2,7 +2,7 @@ | ||||
|  | ||||
| <nz-card> | ||||
|     <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> | ||||
|     </div> | ||||
|     <st #st [data]="this.service.$api_smsTemplate_page " [columns]="columns" [req]="{ process: beforeReq }" | ||||
| @ -24,9 +24,10 @@ | ||||
|     </ng-template> | ||||
| </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> | ||||
|         <sf #sfEdit [formData]="tempData" [schema]="editSchema" [ui]="{ '*': { spanLabelFixed: 90,grid: { span: 24 } }}" [compact]="true" | ||||
|             [button]="'none'"></sf> | ||||
|         <sf #sfEdit [formData]="tempData" [schema]="editSchema" [ui]="{ '*': { spanLabelFixed: 90,grid: { span: 24 } }}" | ||||
|             [compact]="true" [button]="'none'"></sf> | ||||
|     </ng-container> | ||||
| </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 { STColumn, STComponent, STRequestOptions } from '@delon/abc/st'; | ||||
| import { SFComponent, SFSchema } from '@delon/form'; | ||||
| @ -50,27 +50,27 @@ export class SmsTemplateComponent implements OnInit { | ||||
|         templateName: { | ||||
|           type: 'string', | ||||
|           title: '模板名称', | ||||
|           ui: { placeholder: '请输入模板名称', errors: { require: '必填项'} } | ||||
|           ui: { placeholder: '请输入模板名称', errors: { require: '必填项' } } | ||||
|         }, | ||||
|         templateCode: { | ||||
|           type: 'string', | ||||
|           title: '模板编码', | ||||
|           readOnly: this.isEdit, | ||||
|           ui: { placeholder: '请输入模板编码', errors: { require: '必填项'} } | ||||
|           ui: { placeholder: '请输入模板编码', errors: { require: '必填项' } } | ||||
|         }, | ||||
|         templateContent: { | ||||
|           type: 'string', | ||||
|           title: '模板内容', | ||||
|           ui: { placeholder: '请输入模板内容', errors: { require: '必填项'} } | ||||
|           ui: { placeholder: '请输入模板内容', errors: { require: '必填项' } } | ||||
|         } | ||||
|       }, | ||||
|       required: ['templateName','templateCode','templateContent'] | ||||
|     } | ||||
|       required: ['templateName', 'templateCode', 'templateContent'] | ||||
|     }; | ||||
|   } | ||||
|  | ||||
|   columns: STColumn[] = [ | ||||
|     { title: '模板名称', className: 'text-center', index: 'templateName' }, | ||||
|     { title: '模板编码', className: 'text-center', index: 'templateCode' }, | ||||
|     { title: '模板名称', className: 'text-center', width: '200px', index: 'templateName' }, | ||||
|     { title: '模板编码', className: 'text-center', width: '140px', index: 'templateCode' }, | ||||
|     { title: '模板内容', className: 'text-center', index: 'templateContent' }, | ||||
|     // { | ||||
|     //   title: '创建人', className: 'text-center', index: 'content', | ||||
| @ -79,21 +79,23 @@ export class SmsTemplateComponent implements OnInit { | ||||
|       title: '更新时间', | ||||
|       index: 'modifyTime', | ||||
|       type: 'date', | ||||
|       width: '160px', | ||||
|       className: 'text-center' | ||||
|     }, | ||||
|     { | ||||
|       title: '操作', | ||||
|       width: '90px', | ||||
|       buttons: [ | ||||
|         { | ||||
|           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 { | ||||
|     this.initSF(); | ||||
| @ -144,7 +146,7 @@ export class SmsTemplateComponent implements OnInit { | ||||
|       templateCode, | ||||
|       templateName, | ||||
|       templateContent | ||||
|     } | ||||
|     }; | ||||
|  | ||||
|     this.service.request(this.service.$api_smsTemplate_edit, params).subscribe(res => { | ||||
|       // console.log(res); | ||||
| @ -152,8 +154,7 @@ export class SmsTemplateComponent implements OnInit { | ||||
|         this.isVisible = false; | ||||
|         this.st.reload(); | ||||
|       } | ||||
|     }) | ||||
|  | ||||
|     }); | ||||
|   } | ||||
|  | ||||
|   handleCancel(): void { | ||||
|  | ||||
| @ -68,20 +68,20 @@ export class StaffManagementComponent implements OnInit { | ||||
|         { | ||||
|           text: '冻结', | ||||
|           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), | ||||
|           acl: { ability: ['SYSTEM-STAFF-lock'] } | ||||
|         }, | ||||
|         { | ||||
|           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), | ||||
|           acl: { ability: ['SYSTEM-STAFF-shiftAdmin'] } | ||||
|         }, | ||||
|         { | ||||
|           text: '删除', | ||||
|           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), | ||||
|           acl: { ability: ['SYSTEM-STAFF-delete'] } | ||||
|         } | ||||
|  | ||||
| @ -54,9 +54,9 @@ const routes: Routes = [ | ||||
|   { path: 'network-freight/new/:id', component: NetworkFreightNewComponent }, | ||||
|   { path: 'close-account', component: CloseAccountComponent }, | ||||
|   // { 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: 'sms-template', component: SmsTemplateComponent } | ||||
|   { path: 'sms-template', component: SmsTemplateComponent, data: { guard: { ability: ['SMS_TEMPLATE-search'] } } } | ||||
| ]; | ||||
|  | ||||
| @NgModule({ | ||||
|  | ||||
| @ -45,10 +45,10 @@ | ||||
|       已选择 | ||||
|       <strong class="text-red">{{ selectedRows.length }}</strong> 条数据 | ||||
|     </div> | ||||
|     <button nz-button nzType="primary" (click)="upload()" acl  [acl-ability]="['TAX-ORDERREPORT-declare ']">申报</button> | ||||
|     <button nz-button nzType="primary" (click)="corrections()" acl  [acl-ability]="['TAX-ORDERREPORT-change ']">更正</button> | ||||
|     <button nz-button nzType="primary" (click)="resetData()" acl  [acl-ability]="['TAX-ORDERREPORT-threshold ']">修改起征点</button> | ||||
|     <button nz-button nzType="primary" (click)="uploadSetting()" acl  [acl-ability]="['TAX-ORDERREPORT-resetData ']">更新数据</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-INCOME-change']">更正</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-INCOME-resetData']">更新数据</button> | ||||
|   </div> | ||||
| </ng-template> | ||||
|  | ||||
|  | ||||
| @ -9,7 +9,7 @@ | ||||
|     <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 (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()"> | ||||
|         {{ !_$expand ? '展开' : '收起' }} | ||||
|         <i nz-icon [nzType]="!_$expand ? 'down' : 'up'"></i> | ||||
| @ -32,7 +32,8 @@ | ||||
|       <span *ngIf="item?.uploadSts == '1'">待上传</span> | ||||
|       <span *ngIf="item?.uploadSts == '3'">已上传</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 st-row="invoiceType" let-item let-index="index"> | ||||
|       <span>增值税专用发票</span> | ||||
| @ -53,6 +54,6 @@ | ||||
|       <strong class="text-red">{{ selectedRows.length }}</strong> 条数据 | ||||
|     </div> | ||||
|     <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> | ||||
| </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 记录实例 | ||||
| @ -333,28 +314,13 @@ export class TaxManagementInvoiceReportingComponent implements OnInit { | ||||
|   } | ||||
|  | ||||
|   selectChange(item: any) { | ||||
|     console.log(item); | ||||
|  | ||||
|     this.selectedIndex = item?.value || ''; | ||||
|     console.log(this.selectedIndex); | ||||
|  | ||||
|     setTimeout(() => { | ||||
|       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 => { | ||||
|       params.push(item.id); | ||||
|     }); | ||||
|     return; //TODO 接口未提供 | ||||
|     this.service.request(this.service.$api_get_uploadingTaxOrder, params).subscribe((res: any) => { | ||||
|       if (res) { | ||||
|         this.service.msgSrv.success('上传成功'); | ||||
|  | ||||
| @ -16,18 +16,20 @@ import { TaxManagementIndividualIncomeComponent } from './components/individual- | ||||
| import { TaxManagementInvoiceReportingComponent } from './components/invoice-reporting/invoice-reporting.component'; | ||||
| import { TaxManagementOrderReportingComponent } from './components/order-reporting/order-reporting.component'; | ||||
|  | ||||
|  | ||||
| const routes: Routes = [ | ||||
|   { path: 'orderReport', component: TaxManagementOrderReportingComponent }, | ||||
|   { path: 'income', component: TaxManagementIndividualIncomeComponent }, | ||||
|   { path: 'collect', component: TaxManagementIndividualCollectComponent }, | ||||
|   { path: 'declare', component: TaxManagementIndividualDeclareComponent }, | ||||
|   { path: 'invoiceReport', component: TaxManagementInvoiceReportingComponent }, | ||||
|   { path: 'orderReport', component: TaxManagementOrderReportingComponent, data: { guard: { ability: ['TAX-ORDERREPORT-search'] } } }, | ||||
|   { path: 'income', component: TaxManagementIndividualIncomeComponent, data: { guard: { ability: ['TAX-INCOME-search'] } } }, | ||||
|   { path: 'collect', component: TaxManagementIndividualCollectComponent, data: { guard: { ability: ['TAX-COLLECT-search'] } } }, | ||||
|   { path: 'declare', component: TaxManagementIndividualDeclareComponent, data: { guard: { ability: ['TAX-DECLARE-search'] } } }, | ||||
|   { | ||||
|     path: 'invoiceReport', | ||||
|     component: TaxManagementInvoiceReportingComponent, | ||||
|     data: { guard: { ability: ['TAX_INVOICE_REPORT-list'] } } | ||||
|   } | ||||
| ]; | ||||
|  | ||||
|  | ||||
| @NgModule({ | ||||
|   imports: [RouterModule.forChild(routes)], | ||||
|   exports: [RouterModule] | ||||
| }) | ||||
| export class TaxManagementModuleRoutingModule { } | ||||
| export class TaxManagementModuleRoutingModule {} | ||||
|  | ||||
| @ -11,9 +11,9 @@ | ||||
|         </div> | ||||
|         <div nz-col [nzXl]="_$expand ? 24 : 6" [nzLg]="24" [nzSm]="24" [nzXs]="24" [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" [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)="export()"> 导出</button> | ||||
|             <button nz-button (click)="export()" acl [acl-ability]="['TICKET-BILLING-ORDER-exprort']"> 导出</button> | ||||
|             <button nz-button nzType="link" (click)="expandToggle()"> | ||||
|                 {{ !_$expand ? '展开' : '收起' }} | ||||
|                 <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: '金额', | ||||
|         index: 'vattax', | ||||
|         index: 'vatmoney', | ||||
|         width: 140, | ||||
|         type: 'widget', | ||||
|         className: 'text-right', | ||||
|         widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.vattax }) } | ||||
|         widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.vatmoney }) } | ||||
|       }, | ||||
|       { | ||||
|         title: '税率', | ||||
| @ -305,11 +305,11 @@ export class InvoiceDetailComponent implements OnInit { | ||||
|       }, | ||||
|       { | ||||
|         title: '税额', | ||||
|         index: 'vatnotax', | ||||
|         index: 'vattax', | ||||
|         width: 140, | ||||
|         type: 'widget', | ||||
|         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 {} | ||||
|  | ||||
|   beforeReq = (requestOptions: STRequestOptions) => { | ||||
|     Object.assign(requestOptions.body,{sts: '3'}) | ||||
|     if (this.sf) { | ||||
|       Object.assign(requestOptions.body, { | ||||
|         ...this.sf.value, | ||||
| @ -48,7 +49,7 @@ export class InvoicedListComponent implements OnInit { | ||||
|         } | ||||
|       }); | ||||
|     } | ||||
|     return requestOptions; | ||||
|     return requestOptions ; | ||||
|   }; | ||||
|  | ||||
|   stChange(e: STChange): void { | ||||
|  | ||||
| @ -71,7 +71,7 @@ const routes: Routes = [ | ||||
|   { | ||||
|     path: 'driver/config', | ||||
|     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> | ||||
|     </div> | ||||
|     <div nz-col [nzSpan]="_$expand ? 24 : 6" class="text-right"> | ||||
|       <button | ||||
|         nz-button | ||||
|         nzType="primary" | ||||
|         acl | ||||
|         [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 nzType="primary" acl [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 nzType="link" (click)="expandToggle()"> | ||||
|         {{ !_$expand ? '展开' : '收起' }} | ||||
| @ -38,23 +31,14 @@ | ||||
| <nz-card> | ||||
|   <!-- 数据列表 --> | ||||
|  | ||||
|   <st | ||||
|     #st | ||||
|     [bordered]="true" | ||||
|     [scroll]="{ x: '1200px' }" | ||||
|     [columns]="columns" | ||||
|     [data]="service.$api_get_operate_list" | ||||
|   <st #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 }" | ||||
|     [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] }" | ||||
|     [loading]="false" | ||||
|   > | ||||
|     [page]="{ show: true, showSize: true, pageSizes: [10, 20, 30, 50, 100, 200, 300, 500, 1000] }" [loading]="false"> | ||||
|     <ng-template st-row="carLength" let-item let-index="index"> | ||||
|       <div | ||||
|         >{{ item?.carModelLabel }}-{{ item?.carLengthLabel ? item?.carLengthLabel + '米' : '' }}-{{ | ||||
|       <div>{{ item?.carModelLabel }}-{{ item?.carLengthLabel ? item?.carLengthLabel + '米' : '' }}-{{ | ||||
|         item?.carLoad ? item?.carLoad + '吨' : '' | ||||
|         }}</div | ||||
|       > | ||||
|         }}</div> | ||||
|     </ng-template> | ||||
|     <ng-template st-row="isSelf" let-item let-index="index"> | ||||
|       <div> | ||||
| @ -68,13 +52,19 @@ | ||||
|     </ng-template> | ||||
|     <ng-template st-row="approvalAuditStatus" let-item let-index="index"> | ||||
|       <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 === 10 || (item?.approvalAuditStatus === '10' && item?.isSelf)">待审核</span> | ||||
|         <span *ngIf="item?.approvalAuditStatus === 15 || (item?.approvalAuditStatus === '15' && 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?.approvalAuditStatus === 10 || (item?.approvalAuditStatus === '10' && item?.isSelf)">待审核</span> | ||||
|         <span | ||||
|           *ngIf="item?.approvalAuditStatus === 15 || (item?.approvalAuditStatus === '15' && 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> | ||||
|       </div> | ||||
|     </ng-template> | ||||
|  | ||||
| @ -14,10 +14,14 @@ import { VehicleComponentsListDetailComponent } from './components/list/detail/d | ||||
| import { VehicleComponentsListComponent } from './components/list/list.component'; | ||||
|  | ||||
| const routes: Routes = [ | ||||
|   { path: 'list', component: VehicleComponentsListComponent }, | ||||
|   { path: 'list/detail/:id', component: VehicleComponentsListDetailComponent }, | ||||
|   { path: 'audit', component: VehicleComponentsAuditComponent }, | ||||
|   { path: 'audit/detail/:id', component: VehicleComponentsAuditDetailComponent } | ||||
|   { path: 'list', component: VehicleComponentsListComponent, data: { guard: { ability: ['VEHICLE-LIST-search'] } } }, | ||||
|   { path: 'list/detail/:id', component: VehicleComponentsListDetailComponent, data: { guard: { ability: ['VEHICLE-LIST-DETAIL-list'] } } }, | ||||
|   { path: 'audit', component: VehicleComponentsAuditComponent, data: { guard: { ability: ['VEHICLE-AUDIT-search'] } } }, | ||||
|   { | ||||
|     path: 'audit/detail/:id', | ||||
|     component: VehicleComponentsAuditDetailComponent, | ||||
|     data: { guard: { ability: ['VEHICLE-AUDIT-DETAIL-search'] } } | ||||
|   } | ||||
| ]; | ||||
|  | ||||
| @NgModule({ | ||||
|  | ||||
| @ -14,9 +14,9 @@ | ||||
|     [page]="{ show: true, showSize: true, pageSizes: [10, 20, 30, 50, 100, 200, 300, 500, 1000] }" | ||||
|     [loading]="false" [scroll]="{ y: '370px' }"> | ||||
|     <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 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> | ||||
| </st> | ||||
| @ -112,19 +112,23 @@ | ||||
|                                 <!-- 图片上传 --> | ||||
|                                 <ng-container *ngSwitchCase="12"> | ||||
|                                     <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" | ||||
|                                             [nzShowUploadList]="false" (nzChange)="uploadChange($event,item)"> | ||||
|                                             <ng-container *ngIf="!item.itemValue"> | ||||
|                                             [nzShowUploadList]="{showPreviewIcon:true,showRemoveIcon:true}" | ||||
|                                             [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 | ||||
|                                                     [nzType]="service.http.loading ? 'loading' : 'plus'"></i> | ||||
|                                                 <div class="ant-upload-text">上传</div> | ||||
|                                             </ng-container> | ||||
|                                             <div style="width: 102px;height: 102px;display: flex;align-items: center;justify-content: center;" | ||||
|                                             </div> | ||||
|                                             <!-- <div style="width: 102px;height: 102px;display: flex;align-items: center;justify-content: center;" | ||||
|                                                 *ngIf="item.itemValue" (click)="$event.cancelBubble = true"> | ||||
|                                                 <img nz-image [nzSrc]="item.itemValue" | ||||
|                                                     style="max-width: 102px;max-height: 102px;" /> | ||||
|                                             </div> | ||||
|                                             </div> --> | ||||
|                                         </nz-upload> | ||||
|                                         <p>支持 | ||||
|                                             <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) { | ||||
|     this.nzImageService.preview([{ src: url }]); | ||||
|   } | ||||
|  | ||||
		Reference in New Issue
	
	Block a user