edit
This commit is contained in:
		@ -19,19 +19,8 @@
 | 
			
		||||
        padding-left : 16px;
 | 
			
		||||
        padding-right: 16px;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.expend-options {
 | 
			
		||||
    margin-top: 0px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@media (min-width: 1200px) {
 | 
			
		||||
    .expend-options {
 | 
			
		||||
        margin-top: -40px;
 | 
			
		||||
        max-width : 400px;
 | 
			
		||||
        position  : absolute;
 | 
			
		||||
        right     : 0;
 | 
			
		||||
        bottom    : 30px;
 | 
			
		||||
    .text-truncate {
 | 
			
		||||
        white-space: normal;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										13
									
								
								src/app/routes/commom/less/expend-but.less
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								src/app/routes/commom/less/expend-but.less
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,13 @@
 | 
			
		||||
.expend-options {
 | 
			
		||||
    margin-top: 0px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@media (min-width: 1200px) {
 | 
			
		||||
    .expend-options {
 | 
			
		||||
        max-width: 400px;
 | 
			
		||||
        position : absolute;
 | 
			
		||||
        right    : 0;
 | 
			
		||||
        bottom   : 25px;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@ -34,34 +34,38 @@
 | 
			
		||||
                                    </nz-time-picker>
 | 
			
		||||
                                </ng-container>
 | 
			
		||||
                                <ng-container *ngSwitchCase="5">
 | 
			
		||||
                                    <input type="time" [(ngModel)]="item.itemValue.startTime" placeHolder="开始时间"
 | 
			
		||||
                                        style="margin-left: 23px;">
 | 
			
		||||
                                    <!-- <nz-time-picker nzFormat="HH:mm" nzPlaceHolder="开始时间"
 | 
			
		||||
                                        [(ngModel)]="item.itemValue.startTime" style="margin-left: 23px;">
 | 
			
		||||
                                    </nz-time-picker> -->
 | 
			
		||||
                                    --
 | 
			
		||||
                                    <input type="time" [(ngModel)]="item.itemValue.endTime" placeHolder="结束时间"
 | 
			
		||||
                                        style="margin-left: 23px;" class=" mr-xl">
 | 
			
		||||
                                    <!-- <nz-time-picker nzFormat="HH:mm" nzPlaceHolder="结束时间"
 | 
			
		||||
                                        [(ngModel)]="item.itemValue.endTime">
 | 
			
		||||
                                    </nz-time-picker> -->
 | 
			
		||||
                                    <div class="d-flex" style="align-items: center;justify-content: space-between;">
 | 
			
		||||
                                        <input type="time" [(ngModel)]="item.itemValue.startTime" placeHolder="开始时间"
 | 
			
		||||
                                            style="margin-left: 23px;">
 | 
			
		||||
                                        <!-- <nz-time-picker nzFormat="HH:mm" nzPlaceHolder="开始时间"
 | 
			
		||||
                                            [(ngModel)]="item.itemValue.startTime" style="margin-left: 23px;">
 | 
			
		||||
                                        </nz-time-picker> -->
 | 
			
		||||
                                        <label class="ml-sm mr-sm"> --</label>
 | 
			
		||||
                                        <input type="time" [(ngModel)]="item.itemValue.endTime" placeHolder="结束时间"
 | 
			
		||||
                                            style="margin-left: 0;" class=" mr-xl">
 | 
			
		||||
                                        <!-- <nz-time-picker nzFormat="HH:mm" nzPlaceHolder="结束时间"
 | 
			
		||||
                                            [(ngModel)]="item.itemValue.endTime">
 | 
			
		||||
                                        </nz-time-picker> -->
 | 
			
		||||
                                    </div>
 | 
			
		||||
                                </ng-container>
 | 
			
		||||
                            </ng-container>
 | 
			
		||||
 | 
			
		||||
                            <ng-container [ngSwitch]="item.extendType">
 | 
			
		||||
                                <ng-container *ngSwitchCase="1">
 | 
			
		||||
                                    <button nz-button nzType="default">添加网络货运</button>
 | 
			
		||||
                            <ng-container *ngFor="let item of item.extend">
 | 
			
		||||
                                <ng-container [ngSwitch]="item">
 | 
			
		||||
                                    <ng-container *ngSwitchCase="1">
 | 
			
		||||
                                        <button nz-button nzType="default">配置网络货运</button>
 | 
			
		||||
                                    </ng-container>
 | 
			
		||||
                                    <ng-container *ngSwitchCase="2">
 | 
			
		||||
                                        <button nz-button nzType="default">配置货主</button>
 | 
			
		||||
                                    </ng-container>
 | 
			
		||||
                                    <ng-container *ngSwitchCase="3">
 | 
			
		||||
                                        <button nz-button nzType="default">配置司机</button>
 | 
			
		||||
                                    </ng-container>
 | 
			
		||||
                                    <ng-container *ngSwitchCase="4">
 | 
			
		||||
                                        <button nz-button nzType="default">配置车队长</button>
 | 
			
		||||
                                    </ng-container>
 | 
			
		||||
                                    <ng-container *ngSwitchDefault></ng-container>
 | 
			
		||||
                                </ng-container>
 | 
			
		||||
                                <ng-container *ngSwitchCase="2">
 | 
			
		||||
                                    <button nz-button nzType="default">添加货主</button>
 | 
			
		||||
                                </ng-container>
 | 
			
		||||
                                <ng-container *ngSwitchCase="3">
 | 
			
		||||
                                    <button nz-button nzType="default">添加司机</button>
 | 
			
		||||
                                </ng-container>
 | 
			
		||||
                                <ng-container *ngSwitchCase="4">
 | 
			
		||||
                                    <button nz-button nzType="default">添加车队长</button>
 | 
			
		||||
                                </ng-container>
 | 
			
		||||
                                <ng-container *ngSwitchDefault></ng-container>
 | 
			
		||||
                            </ng-container>
 | 
			
		||||
                        </se>
 | 
			
		||||
                    </div>
 | 
			
		||||
 | 
			
		||||
@ -39,6 +39,7 @@ export class BasicSettingComponent implements OnInit {
 | 
			
		||||
        res = res.map(item => ({
 | 
			
		||||
          ...item,
 | 
			
		||||
          remark: item.remark ? JSON.parse(item.remark) : null,
 | 
			
		||||
          extend: item.extend ? JSON.parse(item.extend) : [],
 | 
			
		||||
          itemValue: item.itemValue ? JSON.parse(item.itemValue) : item.itemValue
 | 
			
		||||
        }));
 | 
			
		||||
        this.configList = res;
 | 
			
		||||
 | 
			
		||||
@ -0,0 +1,15 @@
 | 
			
		||||
<div nz-row nzGutter="8">
 | 
			
		||||
    <div nz-col nzSpan="19">
 | 
			
		||||
        <sf #sf [schema]="searchSchema" [ui]="{ '*': {grid: { span: 12 } }}" [compact]="true" [button]="'none'"></sf>
 | 
			
		||||
    </div>
 | 
			
		||||
    <div nz-col [nzSpan]="5" class="text-right mb-md">
 | 
			
		||||
        <button nz-button nzType="primary" [nzLoading]="service.http.loading" (click)="st?.load(1)">查询</button>
 | 
			
		||||
        <button nz-button (click)="resetSF()">重置</button>
 | 
			
		||||
    </div>
 | 
			
		||||
 | 
			
		||||
    <st #st [data]="service.$mock_url" [columns]="columns" bordered size="small"
 | 
			
		||||
        [req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, process: beforeReq }"
 | 
			
		||||
        [res]="{ reName: { list: 'data.records', total: 'data.total' } }"
 | 
			
		||||
        [page]="{ show: true, showSize: true, pageSizes: [10, 20, 30, 50, 100] }" [loading]="service.http.loading"
 | 
			
		||||
        [scroll]="{ x:'650px',y: '400px' }" (change)="stChange($event)"></st>
 | 
			
		||||
</div>
 | 
			
		||||
@ -0,0 +1,71 @@
 | 
			
		||||
import { Component, OnInit, ViewChild } from '@angular/core';
 | 
			
		||||
import { Router } from '@angular/router';
 | 
			
		||||
import { STComponent, STColumn, STRequestOptions, STChange } from '@delon/abc/st';
 | 
			
		||||
import { SFComponent, SFSchema, SFDateWidgetSchema } from '@delon/form';
 | 
			
		||||
import { NzModalService } from 'ng-zorro-antd/modal';
 | 
			
		||||
import { TicketService } from '../../../services/ticket.service';
 | 
			
		||||
 | 
			
		||||
@Component({
 | 
			
		||||
  selector: 'app-add-cart',
 | 
			
		||||
  templateUrl: './add-cart.component.html',
 | 
			
		||||
  styleUrls: ['./add-cart.component.less']
 | 
			
		||||
})
 | 
			
		||||
export class AddCartComponent implements OnInit {
 | 
			
		||||
  data = [];
 | 
			
		||||
  selectedData: any[] = [];
 | 
			
		||||
  @ViewChild('st', { static: true })
 | 
			
		||||
  st!: STComponent;
 | 
			
		||||
  @ViewChild('sf', { static: false })
 | 
			
		||||
  sf!: SFComponent;
 | 
			
		||||
  columns: STColumn[] = [
 | 
			
		||||
    { title: '', index: 'key', type: 'checkbox' },
 | 
			
		||||
    { title: '车牌号', index: 'no' },
 | 
			
		||||
    { title: '车辆所有人', index: 'callNo' }
 | 
			
		||||
  ];
 | 
			
		||||
  searchSchema: SFSchema = {
 | 
			
		||||
    properties: {
 | 
			
		||||
      params1: {
 | 
			
		||||
        title: '',
 | 
			
		||||
        type: 'string',
 | 
			
		||||
        ui: {
 | 
			
		||||
          placeholder: '请输入车牌号'
 | 
			
		||||
        }
 | 
			
		||||
      },
 | 
			
		||||
      params2: {
 | 
			
		||||
        title: '',
 | 
			
		||||
        type: 'string',
 | 
			
		||||
        ui: {
 | 
			
		||||
          placeholder: '请输入车辆所有人'
 | 
			
		||||
        }
 | 
			
		||||
      },
 | 
			
		||||
    }
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  constructor(public service: TicketService, private nzModalService: NzModalService, private router: Router) {}
 | 
			
		||||
 | 
			
		||||
  ngOnInit(): void {}
 | 
			
		||||
 | 
			
		||||
  beforeReq = (requestOptions: STRequestOptions) => {
 | 
			
		||||
    if (this.sf) {
 | 
			
		||||
      Object.assign(requestOptions.body, {
 | 
			
		||||
        ...this.sf.value
 | 
			
		||||
      });
 | 
			
		||||
    }
 | 
			
		||||
    return requestOptions;
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  stChange(e: STChange): void {
 | 
			
		||||
    switch (e.type) {
 | 
			
		||||
      case 'checkbox':
 | 
			
		||||
        this.selectedData = e.checkbox!;
 | 
			
		||||
        break;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  /**
 | 
			
		||||
   * 重置表单
 | 
			
		||||
   */
 | 
			
		||||
  resetSF() {
 | 
			
		||||
    this.sf.reset();
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@ -0,0 +1,16 @@
 | 
			
		||||
<div nz-row nzGutter="8">
 | 
			
		||||
    <div nz-col nzSpan="19">
 | 
			
		||||
        <sf #sf [schema]="searchSchema" [ui]="{ '*': {grid: { span: 8 } }}" [compact]="true"
 | 
			
		||||
            [button]="'none'"></sf>
 | 
			
		||||
    </div>
 | 
			
		||||
    <div nz-col [nzSpan]="5" class="text-right mb-md">
 | 
			
		||||
        <button nz-button nzType="primary" [nzLoading]="service.http.loading" (click)="st?.load(1)">查询</button>
 | 
			
		||||
        <button nz-button (click)="resetSF()">重置</button>
 | 
			
		||||
    </div>
 | 
			
		||||
 | 
			
		||||
    <st #st [data]="service.$mock_url" [columns]="columns" bordered size="small"
 | 
			
		||||
        [req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, process: beforeReq }"
 | 
			
		||||
        [res]="{ reName: { list: 'data.records', total: 'data.total' } }"
 | 
			
		||||
        [page]="{ show: true, showSize: true, pageSizes: [10, 20, 30, 50, 100] }"
 | 
			
		||||
        [loading]="service.http.loading" [scroll]="{ x:'810px',y: '400px' }" (change)="stChange($event)"></st>
 | 
			
		||||
</div>
 | 
			
		||||
@ -0,0 +1,80 @@
 | 
			
		||||
import { Component, OnInit, ViewChild } from '@angular/core';
 | 
			
		||||
import { Router } from '@angular/router';
 | 
			
		||||
import { STComponent, STColumn, STRequestOptions, STChange } from '@delon/abc/st';
 | 
			
		||||
import { SFComponent, SFSchema, SFDateWidgetSchema } from '@delon/form';
 | 
			
		||||
import { NzModalService } from 'ng-zorro-antd/modal';
 | 
			
		||||
import { TicketService } from '../../../services/ticket.service';
 | 
			
		||||
 | 
			
		||||
@Component({
 | 
			
		||||
  selector: 'app-add-owner',
 | 
			
		||||
  templateUrl: './add-owner.component.html',
 | 
			
		||||
  styleUrls: ['./add-owner.component.less']
 | 
			
		||||
})
 | 
			
		||||
export class AddOwnerComponent implements OnInit {
 | 
			
		||||
  data = [];
 | 
			
		||||
  selectedData: any[] = [];
 | 
			
		||||
  @ViewChild('st', { static: true })
 | 
			
		||||
  st!: STComponent;
 | 
			
		||||
  @ViewChild('sf', { static: false })
 | 
			
		||||
  sf!: SFComponent;
 | 
			
		||||
  columns: STColumn[] = [
 | 
			
		||||
    { title: '', index: 'key', type: 'checkbox' },
 | 
			
		||||
    { title: '企业名称', index: 'no' },
 | 
			
		||||
    { title: '联系人姓名', index: 'callNo' },
 | 
			
		||||
    { title: '联系人手机号', index: 'callNo' },
 | 
			
		||||
    { title: '认证状态', index: 'callNo' }
 | 
			
		||||
  ];
 | 
			
		||||
  searchSchema: SFSchema = {
 | 
			
		||||
    properties: {
 | 
			
		||||
      params1: {
 | 
			
		||||
        title: '',
 | 
			
		||||
        type: 'string',
 | 
			
		||||
        ui: {
 | 
			
		||||
          placeholder: '请输入企业名称'
 | 
			
		||||
        }
 | 
			
		||||
      },
 | 
			
		||||
      params2: {
 | 
			
		||||
        title: '',
 | 
			
		||||
        type: 'string',
 | 
			
		||||
        ui: {
 | 
			
		||||
          placeholder: '请输入姓名'
 | 
			
		||||
        }
 | 
			
		||||
      },
 | 
			
		||||
      params3: {
 | 
			
		||||
        title: '',
 | 
			
		||||
        type: 'string',
 | 
			
		||||
        ui: {
 | 
			
		||||
          placeholder: '请输入手机号'
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  constructor(public service: TicketService, private nzModalService: NzModalService, private router: Router) {}
 | 
			
		||||
 | 
			
		||||
  ngOnInit(): void {}
 | 
			
		||||
 | 
			
		||||
  beforeReq = (requestOptions: STRequestOptions) => {
 | 
			
		||||
    if (this.sf) {
 | 
			
		||||
      Object.assign(requestOptions.body, {
 | 
			
		||||
        ...this.sf.value
 | 
			
		||||
      });
 | 
			
		||||
    }
 | 
			
		||||
    return requestOptions;
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  stChange(e: STChange): void {
 | 
			
		||||
    switch (e.type) {
 | 
			
		||||
      case 'checkbox':
 | 
			
		||||
        this.selectedData = e.checkbox!;
 | 
			
		||||
        break;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  /**
 | 
			
		||||
   * 重置表单
 | 
			
		||||
   */
 | 
			
		||||
  resetSF() {
 | 
			
		||||
    this.sf.reset();
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@ -1,4 +1,4 @@
 | 
			
		||||
<page-header-wrapper [title]="'黑名单'" [content]="content">
 | 
			
		||||
<page-header-wrapper [title]="'ETC白名单'" [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>
 | 
			
		||||
@ -10,7 +10,7 @@
 | 
			
		||||
    <div nz-row nzGutter="8">
 | 
			
		||||
        <div nz-col [nzXl]="18" [nzLg]="24" [nzSm]="24" [nzXs]="24">
 | 
			
		||||
            <sf #sf [schema]="searchSchema"
 | 
			
		||||
                [ui]="{ '*': { spanLabelFixed: 90,grid: { lg: 8, md: 12, sm: 12, xs: 24 } }}" [compact]="true"
 | 
			
		||||
                [ui]="{ '*': { spanLabelFixed: 110,grid: { lg: 8, md: 12, sm: 12, xs: 24 } }}" [compact]="true"
 | 
			
		||||
                [button]="'none'"></sf>
 | 
			
		||||
        </div>
 | 
			
		||||
        <div nz-col [nzXl]="6" [nzLg]="24" [nzMd]="24" [nzSm]="24" [nzXs]="24" class="text-right">
 | 
			
		||||
@ -23,16 +23,16 @@
 | 
			
		||||
 | 
			
		||||
<nz-card>
 | 
			
		||||
    <div class="d-flex align-items-center mb-md">
 | 
			
		||||
        <button nz-button>添加</button>
 | 
			
		||||
        <button nz-button>删除</button>
 | 
			
		||||
        <button nz-button (click)="configAction()">添加</button>
 | 
			
		||||
        <button nz-button (click)="deleteAction()">删除</button>
 | 
			
		||||
        <div class="ml-md">
 | 
			
		||||
            已选择
 | 
			
		||||
            <strong class="text-primary">{{ selectedRows.length }}</strong> 条删除
 | 
			
		||||
            <strong class="text-primary">{{ selectedRows.length }}</strong> 条数据
 | 
			
		||||
            <a *ngIf="selectedRows.length > 0" (click)="st.clearCheck()" class="ml-lg">清空</a>
 | 
			
		||||
        </div>
 | 
			
		||||
    </div>
 | 
			
		||||
    <st #st [data]="url" [columns]="columns"
 | 
			
		||||
        [req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, params: reqParams }"
 | 
			
		||||
    <st #st [data]="service.$mock_url" [columns]="columns"
 | 
			
		||||
        [req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, process: beforeReq }"
 | 
			
		||||
        [res]="{ reName: { list: 'data.records', total: 'data.total' } }"
 | 
			
		||||
        [page]="{ show: true, showSize: true, pageSizes: [10, 20, 30, 50, 100, 200, 300, 500, 1000] }"
 | 
			
		||||
        [loading]="service.http.loading" [scroll]="{ y: '370px' }" (change)="stChange($event)"></st>
 | 
			
		||||
 | 
			
		||||
@ -1,15 +1,4 @@
 | 
			
		||||
:host::ng-deep {
 | 
			
		||||
    .search-box {
 | 
			
		||||
        .ant-card-body {
 | 
			
		||||
            padding-bottom: 18px;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .content-box {
 | 
			
		||||
        .ant-card-body {
 | 
			
		||||
            padding-top: 14px;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .tabs-wrap>.ant-tabs-nav {
 | 
			
		||||
        margin-bottom: 0;
 | 
			
		||||
 | 
			
		||||
@ -1,13 +1,16 @@
 | 
			
		||||
import { Component, OnInit, ViewChild } from '@angular/core';
 | 
			
		||||
import { STComponent, STColumn, STChange } from '@delon/abc/st';
 | 
			
		||||
import { STComponent, STColumn, STChange, STRequestOptions } from '@delon/abc/st';
 | 
			
		||||
import { SFComponent, SFSchema } from '@delon/form';
 | 
			
		||||
import { NzModalService } from 'ng-zorro-antd/modal';
 | 
			
		||||
import { SystemService } from 'src/app/routes/sys-setting/services/system.service';
 | 
			
		||||
import { TicketService } from '../../services/ticket.service';
 | 
			
		||||
import { AddCartComponent } from './add-cart/add-cart.component';
 | 
			
		||||
import { AddOwnerComponent } from './add-owner/add-owner.component';
 | 
			
		||||
 | 
			
		||||
@Component({
 | 
			
		||||
  selector: 'app-etc-blacklist',
 | 
			
		||||
  templateUrl: './etc-blacklist.component.html',
 | 
			
		||||
  styleUrls: ['./etc-blacklist.component.less']
 | 
			
		||||
  styleUrls: ['../../../commom/less/box.less', './etc-blacklist.component.less']
 | 
			
		||||
})
 | 
			
		||||
export class ETCBlacklistComponent implements OnInit {
 | 
			
		||||
  @ViewChild('st', { static: true })
 | 
			
		||||
@ -27,128 +30,32 @@ export class ETCBlacklistComponent implements OnInit {
 | 
			
		||||
    }
 | 
			
		||||
  ];
 | 
			
		||||
  tabType = 1;
 | 
			
		||||
  url = `/rule?_allow_anonymous=true`;
 | 
			
		||||
 | 
			
		||||
  searchSchema: SFSchema = {
 | 
			
		||||
    properties: {
 | 
			
		||||
      tabType: {
 | 
			
		||||
        type: 'number',
 | 
			
		||||
        ui: {
 | 
			
		||||
          hidden: true
 | 
			
		||||
        }
 | 
			
		||||
      },
 | 
			
		||||
      params1: {
 | 
			
		||||
        title: '企业名称',
 | 
			
		||||
        type: 'string',
 | 
			
		||||
        ui: {
 | 
			
		||||
          placeholder: '请输入',
 | 
			
		||||
          visibleIf: {
 | 
			
		||||
            tabType: (value: number) => this.tabType === 1
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      },
 | 
			
		||||
      params2: {
 | 
			
		||||
        title: '联系人姓名',
 | 
			
		||||
        type: 'string',
 | 
			
		||||
        ui: {
 | 
			
		||||
          placeholder: '姓名/手机/车牌号',
 | 
			
		||||
          visibleIf: {
 | 
			
		||||
            tabType: (value: number) => this.tabType === 1
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      },
 | 
			
		||||
      params3: {
 | 
			
		||||
        title: '手机号',
 | 
			
		||||
        type: 'string',
 | 
			
		||||
        ui: {
 | 
			
		||||
          placeholder: '请输入',
 | 
			
		||||
          visibleIf: {
 | 
			
		||||
            tabType: (value: number) => this.tabType === 1
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      },
 | 
			
		||||
      params4: {
 | 
			
		||||
        title: '车牌号',
 | 
			
		||||
        type: 'string',
 | 
			
		||||
        ui: {
 | 
			
		||||
          placeholder: '请输入',
 | 
			
		||||
          visibleIf: {
 | 
			
		||||
            tabType: (value: number) => this.tabType === 2
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      },
 | 
			
		||||
      params5: {
 | 
			
		||||
        title: '司机姓名',
 | 
			
		||||
        type: 'string',
 | 
			
		||||
        ui: {
 | 
			
		||||
          placeholder: '请输入',
 | 
			
		||||
          visibleIf: {
 | 
			
		||||
            tabType: (value: number) => this.tabType === 2
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      },
 | 
			
		||||
      params6: {
 | 
			
		||||
        title: '手机号',
 | 
			
		||||
        type: 'string',
 | 
			
		||||
        ui: {
 | 
			
		||||
          placeholder: '请输入',
 | 
			
		||||
          visibleIf: {
 | 
			
		||||
            tabType: (value: number) => this.tabType === 2
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  };
 | 
			
		||||
  searchSchema: SFSchema = this.initSF();
 | 
			
		||||
 | 
			
		||||
  columns: STColumn[] = [
 | 
			
		||||
    { title: '', index: 'key', type: 'checkbox' },
 | 
			
		||||
    { title: '企业名称', index: 'no', iif: () => this.tabType === 1 },
 | 
			
		||||
    { title: '联系人姓名', index: 'no', iif: () => this.tabType === 1 },
 | 
			
		||||
    { title: '车牌号', index: 'no', iif: () => this.tabType === 2 },
 | 
			
		||||
    { title: '司机姓名', index: 'no', iif: () => this.tabType === 2 },
 | 
			
		||||
    { title: '手机号', index: 'no' },
 | 
			
		||||
    {
 | 
			
		||||
      title: '认证状态',
 | 
			
		||||
      className: 'text-center',
 | 
			
		||||
      index: 'status',
 | 
			
		||||
      type: 'badge',
 | 
			
		||||
      badge: {
 | 
			
		||||
        0: { text: '启用', color: 'success' },
 | 
			
		||||
        2: { text: '禁用', color: 'error' },
 | 
			
		||||
        3: { text: '禁用', color: 'error' },
 | 
			
		||||
        1: { text: '禁用', color: 'error' }
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    { title: '创建者', index: 'no' },
 | 
			
		||||
    {
 | 
			
		||||
      title: '创建时间',
 | 
			
		||||
      index: 'updatedAt',
 | 
			
		||||
      type: 'date'
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      title: '操作',
 | 
			
		||||
      buttons: [
 | 
			
		||||
        {
 | 
			
		||||
          text: '删除',
 | 
			
		||||
          click: item => this.deleteAction(item)
 | 
			
		||||
        }
 | 
			
		||||
      ]
 | 
			
		||||
    }
 | 
			
		||||
  ];
 | 
			
		||||
  columns: STColumn[] = this.initST();
 | 
			
		||||
 | 
			
		||||
  selectedRows: any[] = [];
 | 
			
		||||
 | 
			
		||||
  reqParams = { pageIndex: 1, pageSize: 10 };
 | 
			
		||||
 | 
			
		||||
  constructor(public service: SystemService, private nzModalService: NzModalService) {}
 | 
			
		||||
  constructor(public service: TicketService, private nzModalService: NzModalService) {}
 | 
			
		||||
 | 
			
		||||
  ngOnInit(): void {}
 | 
			
		||||
 | 
			
		||||
  beforeReq = (requestOptions: STRequestOptions) => {
 | 
			
		||||
    if (this.sf) {
 | 
			
		||||
      Object.assign(requestOptions.body, {
 | 
			
		||||
        ...this.sf.value
 | 
			
		||||
      });
 | 
			
		||||
    }
 | 
			
		||||
    return requestOptions;
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  // 切换Tab
 | 
			
		||||
  changeTab(item: any) {
 | 
			
		||||
    this.tabType = item.type;
 | 
			
		||||
    this.sf?.setValue('/tabType', item.type);
 | 
			
		||||
    this.sf?.reset();
 | 
			
		||||
    this.selectedRows = [];
 | 
			
		||||
    setTimeout(() => {
 | 
			
		||||
      this.tabs.forEach(i => (i.isActived = false));
 | 
			
		||||
      item.isActived = !item.isActived;
 | 
			
		||||
@ -162,20 +69,58 @@ export class ETCBlacklistComponent implements OnInit {
 | 
			
		||||
      case 'checkbox':
 | 
			
		||||
        this.selectedRows = e.checkbox!;
 | 
			
		||||
        break;
 | 
			
		||||
      case 'filter':
 | 
			
		||||
        this.st.load();
 | 
			
		||||
        break;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  configAction(item?: any) {}
 | 
			
		||||
  configAction(item?: any) {
 | 
			
		||||
    if (this.tabType === 1) {
 | 
			
		||||
      this.addOwnerAction(item);
 | 
			
		||||
    } else {
 | 
			
		||||
      this.addCartAction(item);
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  addOwnerAction(item: any) {
 | 
			
		||||
    const modal = this.nzModalService.create({
 | 
			
		||||
      nzTitle: '选择货主',
 | 
			
		||||
      nzContent: AddOwnerComponent,
 | 
			
		||||
      nzWidth: 850,
 | 
			
		||||
      nzComponentParams: { data: [] },
 | 
			
		||||
      nzOnOk: com => {
 | 
			
		||||
        console.log(com.selectedData);
 | 
			
		||||
      }
 | 
			
		||||
    });
 | 
			
		||||
    modal.afterClose.subscribe(res => {
 | 
			
		||||
      if (res) {
 | 
			
		||||
        this.st.load();
 | 
			
		||||
      }
 | 
			
		||||
    });
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  addCartAction(item: any) {
 | 
			
		||||
    const modal = this.nzModalService.create({
 | 
			
		||||
      nzTitle: '选择车辆',
 | 
			
		||||
      nzContent: AddCartComponent,
 | 
			
		||||
      nzWidth: 700,
 | 
			
		||||
      nzComponentParams: { data: [] },
 | 
			
		||||
      nzOnOk: com => {
 | 
			
		||||
        console.log(com.selectedData);
 | 
			
		||||
      }
 | 
			
		||||
    });
 | 
			
		||||
    modal.afterClose.subscribe(res => {
 | 
			
		||||
      if (res) {
 | 
			
		||||
        this.st.load();
 | 
			
		||||
      }
 | 
			
		||||
    });
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  deleteAction(item?: any) {
 | 
			
		||||
    this.nzModalService.error({
 | 
			
		||||
      nzTitle: '确认删除?',
 | 
			
		||||
    this.nzModalService.warning({
 | 
			
		||||
      nzTitle: this.tabType === 1 ? '确定将所选货主从ETC白名单中剔除?' : '确定将所选车辆从ETC白名单中剔除?',
 | 
			
		||||
      nzClosable: false,
 | 
			
		||||
      nzCancelText: '取消',
 | 
			
		||||
      nzOnOk: () => {}
 | 
			
		||||
      nzOnOk: () => {},
 | 
			
		||||
      nzOkText: '确定'
 | 
			
		||||
    });
 | 
			
		||||
  }
 | 
			
		||||
  /**
 | 
			
		||||
@ -184,4 +129,116 @@ export class ETCBlacklistComponent implements OnInit {
 | 
			
		||||
  resetSF() {
 | 
			
		||||
    this.sf.reset();
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  private initSF(): SFSchema {
 | 
			
		||||
    return {
 | 
			
		||||
      properties: {
 | 
			
		||||
        tabType: {
 | 
			
		||||
          type: 'number',
 | 
			
		||||
          ui: {
 | 
			
		||||
            hidden: true
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        params1: {
 | 
			
		||||
          title: '企业名称',
 | 
			
		||||
          type: 'string',
 | 
			
		||||
          ui: {
 | 
			
		||||
            placeholder: '请输入',
 | 
			
		||||
            visibleIf: {
 | 
			
		||||
              tabType: (value: number) => this.tabType === 1
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        params2: {
 | 
			
		||||
          title: '联系人姓名',
 | 
			
		||||
          type: 'string',
 | 
			
		||||
          ui: {
 | 
			
		||||
            placeholder: '姓名/手机/车牌号',
 | 
			
		||||
            visibleIf: {
 | 
			
		||||
              tabType: (value: number) => this.tabType === 1
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        params3: {
 | 
			
		||||
          title: '联系人手机号',
 | 
			
		||||
          type: 'string',
 | 
			
		||||
          ui: {
 | 
			
		||||
            placeholder: '请输入',
 | 
			
		||||
            visibleIf: {
 | 
			
		||||
              tabType: (value: number) => this.tabType === 1
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        params4: {
 | 
			
		||||
          title: '车牌号',
 | 
			
		||||
          type: 'string',
 | 
			
		||||
          ui: {
 | 
			
		||||
            placeholder: '请输入',
 | 
			
		||||
            visibleIf: {
 | 
			
		||||
              tabType: (value: number) => this.tabType === 2
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        params5: {
 | 
			
		||||
          title: '司机姓名',
 | 
			
		||||
          type: 'string',
 | 
			
		||||
          ui: {
 | 
			
		||||
            placeholder: '请输入',
 | 
			
		||||
            visibleIf: {
 | 
			
		||||
              tabType: (value: number) => this.tabType === 2
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        params6: {
 | 
			
		||||
          title: '手机号',
 | 
			
		||||
          type: 'string',
 | 
			
		||||
          ui: {
 | 
			
		||||
            placeholder: '请输入',
 | 
			
		||||
            visibleIf: {
 | 
			
		||||
              tabType: (value: number) => this.tabType === 2
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    };
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  private initST(): STColumn[] {
 | 
			
		||||
    return [
 | 
			
		||||
      { title: '', index: 'key', type: 'checkbox' },
 | 
			
		||||
      { title: '企业名称', index: 'no', iif: () => this.tabType === 1 },
 | 
			
		||||
      { title: '联系人姓名', index: 'no', iif: () => this.tabType === 1 },
 | 
			
		||||
      { title: '联系人手机号', index: 'no' },
 | 
			
		||||
      {
 | 
			
		||||
        title: '认证状态',
 | 
			
		||||
        className: 'text-center',
 | 
			
		||||
        index: 'status',
 | 
			
		||||
        type: 'badge',
 | 
			
		||||
        badge: {
 | 
			
		||||
          0: { text: '启用', color: 'success' },
 | 
			
		||||
          2: { text: '禁用', color: 'error' },
 | 
			
		||||
          3: { text: '禁用', color: 'error' },
 | 
			
		||||
          1: { text: '禁用', color: 'error' }
 | 
			
		||||
        },
 | 
			
		||||
        iif: () => this.tabType === 1
 | 
			
		||||
      },
 | 
			
		||||
      { title: '车牌号', index: 'no', iif: () => this.tabType === 2 },
 | 
			
		||||
      { title: '车辆所有人', index: 'no', iif: () => this.tabType === 2 },
 | 
			
		||||
      { title: '创建者', index: 'no' },
 | 
			
		||||
      {
 | 
			
		||||
        title: '创建时间',
 | 
			
		||||
        index: 'updatedAt',
 | 
			
		||||
        type: 'date'
 | 
			
		||||
      },
 | 
			
		||||
      {
 | 
			
		||||
        title: '操作',
 | 
			
		||||
        buttons: [
 | 
			
		||||
          {
 | 
			
		||||
            text: '删除',
 | 
			
		||||
            click: item => this.deleteAction(item)
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
      }
 | 
			
		||||
    ];
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -3,24 +3,35 @@
 | 
			
		||||
 | 
			
		||||
<nz-card class="search-box" nzBordered>
 | 
			
		||||
    <div nz-row nzGutter="8">
 | 
			
		||||
        <div nz-col [nzXl]="18" [nzLg]="24" [nzSm]="24" [nzXs]="24">
 | 
			
		||||
        <div nz-col [nzXl]="_$expand ? 24 : 18" [nzLg]="24" [nzSm]="24" [nzXs]="24">
 | 
			
		||||
            <sf #sf [schema]="searchSchema"
 | 
			
		||||
                [ui]="{ '*': { spanLabelFixed: 90,grid: { lg: 8, md: 12, sm: 12, xs: 24 } }}" [compact]="true"
 | 
			
		||||
                [button]="'none'"></sf>
 | 
			
		||||
        </div>
 | 
			
		||||
        <div nz-col [nzXl]="6" [nzLg]="24" [nzMd]="24" [nzSm]="24" [nzXs]="24" class="text-right">
 | 
			
		||||
        <div nz-col [nzXl]="_$expand ? 24 : 6" [nzLg]="24" [nzSm]="24" [nzXs]="24" class="text-right">
 | 
			
		||||
            <button nz-button nzType="primary" [nzLoading]="service.http.loading" (click)="st?.load(1)">查询</button>
 | 
			
		||||
            <button nz-button (click)="resetSF()">重置</button>
 | 
			
		||||
            <button nz-button> 导出</button>
 | 
			
		||||
            <button nz-button nzType="link" (click)="expandToggle()">
 | 
			
		||||
                {{ !_$expand ? '展开' : '收起' }}
 | 
			
		||||
                <i nz-icon [nzType]="!_$expand ? 'down' : 'up'"></i>
 | 
			
		||||
            </button>
 | 
			
		||||
        </div>
 | 
			
		||||
    </div>
 | 
			
		||||
</nz-card>
 | 
			
		||||
 | 
			
		||||
<nz-card class="content-box" nzBordered>
 | 
			
		||||
 | 
			
		||||
    <st #st [data]="url" [columns]="columns"
 | 
			
		||||
        [req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, params: reqParams }"
 | 
			
		||||
    <st #st [data]="service.$mock_url" [columns]="columns"
 | 
			
		||||
        [req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' },  process: beforeReq }"
 | 
			
		||||
        [res]="{ reName: { list: 'data.records', total: 'data.total' } }"
 | 
			
		||||
        [page]="{ show: true, showSize: true, pageSizes: [10, 20, 30, 50, 100, 200, 300, 500, 1000] }"
 | 
			
		||||
        [loading]="service.http.loading" [scroll]="{ x:'1200px',y: '400px' }" (change)="stChange($event)"></st>
 | 
			
		||||
        [loading]="service.http.loading" [scroll]="{ x:'1200px',y: '400px' }">
 | 
			
		||||
        <ng-template st-row="call1No" let-item let-index="index" let-column="column">
 | 
			
		||||
            张三<br>13812345678
 | 
			
		||||
        </ng-template>
 | 
			
		||||
        <ng-template st-row="call12No" let-item let-index="index" let-column="column">
 | 
			
		||||
            粤B88888<br>张三
 | 
			
		||||
        </ng-template>
 | 
			
		||||
    </st>
 | 
			
		||||
</nz-card>
 | 
			
		||||
@ -1,13 +0,0 @@
 | 
			
		||||
:host::ng-deep {
 | 
			
		||||
    .search-box {
 | 
			
		||||
        .ant-card-body {
 | 
			
		||||
            padding-bottom: 18px;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .content-box {
 | 
			
		||||
        .ant-card-body {
 | 
			
		||||
            padding-top: 16px;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@ -1,6 +1,6 @@
 | 
			
		||||
import { Component, OnInit, ViewChild } from '@angular/core';
 | 
			
		||||
import { Router } from '@angular/router';
 | 
			
		||||
import { STComponent, STColumn, STChange } from '@delon/abc/st';
 | 
			
		||||
import { STComponent, STColumn, STChange, STRequestOptions } from '@delon/abc/st';
 | 
			
		||||
import { SFComponent, SFSchema } from '@delon/form';
 | 
			
		||||
import { NzModalService } from 'ng-zorro-antd/modal';
 | 
			
		||||
import { TicketService } from '../../services/ticket.service';
 | 
			
		||||
@ -9,107 +9,35 @@ import { TransactionDetailsComponent } from './transaction-details/transaction-d
 | 
			
		||||
@Component({
 | 
			
		||||
  selector: 'app-etc-invoiced-list',
 | 
			
		||||
  templateUrl: './etc-invoiced-list.component.html',
 | 
			
		||||
  styleUrls: ['./etc-invoiced-list.component.less']
 | 
			
		||||
  styleUrls: ['../../../commom/less/box.less']
 | 
			
		||||
})
 | 
			
		||||
export class ETCInvoicedListComponent implements OnInit {
 | 
			
		||||
  url = `/rule?_allow_anonymous=true`;
 | 
			
		||||
  @ViewChild('st', { static: true })
 | 
			
		||||
  st!: STComponent;
 | 
			
		||||
  @ViewChild('sf', { static: false })
 | 
			
		||||
  sf!: SFComponent;
 | 
			
		||||
  columns: STColumn[] = [
 | 
			
		||||
    { title: '运单号', index: 'no' },
 | 
			
		||||
    { title: '开票状态', index: 'callNo' },
 | 
			
		||||
    { title: '业务方', index: 'callNo' },
 | 
			
		||||
    { title: '业务方税号', index: 'callNo' },
 | 
			
		||||
    { title: '开票金额', index: 'callNo' },
 | 
			
		||||
    { title: '发票张数', index: 'callNo' },
 | 
			
		||||
    { title: '申请时间', index: 'updatedAt', type: 'date' },
 | 
			
		||||
    {
 | 
			
		||||
      title: '操作',
 | 
			
		||||
      buttons: [
 | 
			
		||||
        {
 | 
			
		||||
          text: '交易明细',
 | 
			
		||||
          click: item => this.showDetail(item)
 | 
			
		||||
        }
 | 
			
		||||
      ]
 | 
			
		||||
    }
 | 
			
		||||
  ];
 | 
			
		||||
  searchSchema: SFSchema = {
 | 
			
		||||
    properties: {
 | 
			
		||||
      orderSn: {
 | 
			
		||||
        type: 'string',
 | 
			
		||||
        title: '运单号',
 | 
			
		||||
        ui: {
 | 
			
		||||
          autocomplete: 'off'
 | 
			
		||||
        }
 | 
			
		||||
      },
 | 
			
		||||
      receiveName: {
 | 
			
		||||
        type: 'string',
 | 
			
		||||
        title: '开票状态',
 | 
			
		||||
        enum: [
 | 
			
		||||
          { label: '全部', value: '' },
 | 
			
		||||
          { label: '待受理', value: '待受理' },
 | 
			
		||||
          { label: '待开票', value: '待开票' },
 | 
			
		||||
          { label: '开票中', value: '开票中' },
 | 
			
		||||
          { label: '已开票', value: '已开票' },
 | 
			
		||||
          { label: '已撤销', value: '已撤销' },
 | 
			
		||||
          { label: '已拒绝', value: '已拒绝' }
 | 
			
		||||
        ],
 | 
			
		||||
        ui: {
 | 
			
		||||
          widget: 'select',
 | 
			
		||||
          placeholder: '请选择',
 | 
			
		||||
          change: (i: any) => {
 | 
			
		||||
            this.sf.value.receiveName = i;
 | 
			
		||||
            this.sf?.setValue('/receiveName', i);
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        default: ''
 | 
			
		||||
      },
 | 
			
		||||
      receiveName2: {
 | 
			
		||||
        type: 'string',
 | 
			
		||||
        title: '业务方',
 | 
			
		||||
        enum: [
 | 
			
		||||
          { label: '全部', value: '' },
 | 
			
		||||
          { label: '待受理', value: '待受理' },
 | 
			
		||||
          { label: '待开票', value: '待开票' },
 | 
			
		||||
          { label: '开票中', value: '开票中' },
 | 
			
		||||
          { label: '已开票', value: '已开票' },
 | 
			
		||||
          { label: '已撤销', value: '已撤销' },
 | 
			
		||||
          { label: '已拒绝', value: '已拒绝' }
 | 
			
		||||
        ],
 | 
			
		||||
        ui: {
 | 
			
		||||
          widget: 'select',
 | 
			
		||||
          placeholder: '请选择',
 | 
			
		||||
          change: (i: any) => {
 | 
			
		||||
            this.sf.value.receiveName = i;
 | 
			
		||||
            this.sf?.setValue('/receiveName', i);
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        default: ''
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  reqParams = {};
 | 
			
		||||
  columns: STColumn[] = this.initST();
 | 
			
		||||
  searchSchema: SFSchema = this.initSF();
 | 
			
		||||
 | 
			
		||||
  _$expand = false;
 | 
			
		||||
  constructor(public service: TicketService, private nzModalService: NzModalService, private router: Router) {}
 | 
			
		||||
 | 
			
		||||
  ngOnInit(): void {}
 | 
			
		||||
 | 
			
		||||
  stChange(e: STChange): void {
 | 
			
		||||
    switch (e.type) {
 | 
			
		||||
      case 'filter':
 | 
			
		||||
        this.st.load();
 | 
			
		||||
        break;
 | 
			
		||||
  beforeReq = (requestOptions: STRequestOptions) => {
 | 
			
		||||
    if (this.sf) {
 | 
			
		||||
      Object.assign(requestOptions.body, {
 | 
			
		||||
        ...this.sf.value
 | 
			
		||||
      });
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
    return requestOptions;
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  showDetail(item: any) {
 | 
			
		||||
    const modal = this.nzModalService.create({
 | 
			
		||||
      nzTitle: '运单交易明细',
 | 
			
		||||
      nzContent: TransactionDetailsComponent,
 | 
			
		||||
      nzWidth: 800,
 | 
			
		||||
      nzWidth: 900,
 | 
			
		||||
      nzComponentParams: { data: [] },
 | 
			
		||||
      nzOnOk: com => {
 | 
			
		||||
        console.log(com.selectedData);
 | 
			
		||||
@ -126,5 +54,117 @@ export class ETCInvoicedListComponent implements OnInit {
 | 
			
		||||
   */
 | 
			
		||||
  resetSF() {
 | 
			
		||||
    this.sf.reset();
 | 
			
		||||
    this._$expand = false;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  /**
 | 
			
		||||
   * 伸缩查询条件
 | 
			
		||||
   */
 | 
			
		||||
  expandToggle() {
 | 
			
		||||
    this._$expand = !this._$expand;
 | 
			
		||||
    this.sf?.setValue('/expand', this._$expand);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  private initSF(): SFSchema {
 | 
			
		||||
    return {
 | 
			
		||||
      properties: {
 | 
			
		||||
        expand: {
 | 
			
		||||
          type: 'boolean',
 | 
			
		||||
          ui: {
 | 
			
		||||
            hidden: true
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        orderSn: {
 | 
			
		||||
          type: 'string',
 | 
			
		||||
          title: '运单号',
 | 
			
		||||
          ui: {
 | 
			
		||||
            autocomplete: 'off'
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        order2Sn: {
 | 
			
		||||
          type: 'string',
 | 
			
		||||
          title: '订单号',
 | 
			
		||||
          ui: {
 | 
			
		||||
            autocomplete: 'off'
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        order2S2n: {
 | 
			
		||||
          type: 'string',
 | 
			
		||||
          title: '订单类型',
 | 
			
		||||
          ui: {
 | 
			
		||||
            widget: 'dict-select',
 | 
			
		||||
            params: { dictKey: 'refund:apply:status' },
 | 
			
		||||
            placeholder: '请选择'
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        receiveName: {
 | 
			
		||||
          type: 'string',
 | 
			
		||||
          title: '开票状态',
 | 
			
		||||
          ui: {
 | 
			
		||||
            widget: 'dict-select',
 | 
			
		||||
            params: { dictKey: 'refund:apply:status' },
 | 
			
		||||
            placeholder: '请选择',
 | 
			
		||||
            visibleIf: {
 | 
			
		||||
              expand: (value: boolean) => value
 | 
			
		||||
            }
 | 
			
		||||
          },
 | 
			
		||||
          default: ''
 | 
			
		||||
        },
 | 
			
		||||
        receiveName2: {
 | 
			
		||||
          type: 'string',
 | 
			
		||||
          title: '托运人',
 | 
			
		||||
          enum: [{ label: '全部', value: '' }],
 | 
			
		||||
          ui: {
 | 
			
		||||
            widget: 'select',
 | 
			
		||||
            placeholder: '请选择',
 | 
			
		||||
            visibleIf: {
 | 
			
		||||
              expand: (value: boolean) => value
 | 
			
		||||
            }
 | 
			
		||||
          },
 | 
			
		||||
          default: ''
 | 
			
		||||
        },
 | 
			
		||||
        ltdId: {
 | 
			
		||||
          type: 'string',
 | 
			
		||||
          title: '网络货运人',
 | 
			
		||||
          ui: {
 | 
			
		||||
            widget: 'select',
 | 
			
		||||
            placeholder: '请选择',
 | 
			
		||||
            allowClear: true,
 | 
			
		||||
            visibleIf: {
 | 
			
		||||
              expand: (value: boolean) => value
 | 
			
		||||
            },
 | 
			
		||||
            asyncData: () => this.service.getNetworkFreightForwarder()
 | 
			
		||||
          },
 | 
			
		||||
          default: ''
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    };
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  private initST(): STColumn[] {
 | 
			
		||||
    return [
 | 
			
		||||
      { title: '运单号', index: 'no' },
 | 
			
		||||
      { title: '订单号', index: 'no' },
 | 
			
		||||
      { title: '开票状态', index: 'callNo' },
 | 
			
		||||
      { title: '订单类型', index: 'callNo' },
 | 
			
		||||
      { title: '装货地', index: 'callNo' },
 | 
			
		||||
      { title: '卸货地', index: 'callNo' },
 | 
			
		||||
      { title: '司机信息', render: 'call1No' },
 | 
			
		||||
      { title: '车辆信息', render: 'call12No' },
 | 
			
		||||
      { title: '托运人', index: 'callNo' },
 | 
			
		||||
      { title: '网络货运人', index: 'callNo' },
 | 
			
		||||
      { title: '开票金额', index: 'callNo' },
 | 
			
		||||
      { title: '开票张数', index: 'callNo' },
 | 
			
		||||
      { title: '申请时间', index: 'updatedAt', type: 'date' },
 | 
			
		||||
      {
 | 
			
		||||
        title: '操作',
 | 
			
		||||
        buttons: [
 | 
			
		||||
          {
 | 
			
		||||
            text: '交易明细',
 | 
			
		||||
            click: item => this.showDetail(item)
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
      }
 | 
			
		||||
    ];
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -9,8 +9,8 @@
 | 
			
		||||
    </div>
 | 
			
		||||
 | 
			
		||||
    <st #st [data]="url" [columns]="columns" bordered size="small"
 | 
			
		||||
        [req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, params: reqParams }"
 | 
			
		||||
        [req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, process: beforeReq }"
 | 
			
		||||
        [res]="{ reName: { list: 'data.records', total: 'data.total' } }"
 | 
			
		||||
        [page]="{ show: true, showSize: true, pageSizes: [10, 20, 30, 50, 100, 200, 300, 500, 1000] }"
 | 
			
		||||
        [loading]="service.http.loading" [scroll]="{ x:'756px',y: '400px' }" (change)="stChange($event)"></st>
 | 
			
		||||
        [loading]="service.http.loading" [scroll]="{ x:'860px',y: '400px' }"></st>
 | 
			
		||||
</div>
 | 
			
		||||
@ -1,14 +1,13 @@
 | 
			
		||||
import { Component, OnInit, ViewChild } from '@angular/core';
 | 
			
		||||
import { Router } from '@angular/router';
 | 
			
		||||
import { STComponent, STColumn, STChange } from '@delon/abc/st';
 | 
			
		||||
import { STComponent, STColumn, STChange, STRequestOptions } from '@delon/abc/st';
 | 
			
		||||
import { SFComponent, SFDateWidgetSchema, SFSchema } from '@delon/form';
 | 
			
		||||
import { NzModalService } from 'ng-zorro-antd/modal';
 | 
			
		||||
import { TicketService } from '../../../services/ticket.service';
 | 
			
		||||
 | 
			
		||||
@Component({
 | 
			
		||||
  selector: 'app-transaction-details',
 | 
			
		||||
  templateUrl: './transaction-details.component.html',
 | 
			
		||||
  styleUrls: ['./transaction-details.component.less']
 | 
			
		||||
  templateUrl: './transaction-details.component.html'
 | 
			
		||||
})
 | 
			
		||||
export class TransactionDetailsComponent implements OnInit {
 | 
			
		||||
  data = [];
 | 
			
		||||
@ -41,11 +40,7 @@ export class TransactionDetailsComponent implements OnInit {
 | 
			
		||||
        ],
 | 
			
		||||
        ui: {
 | 
			
		||||
          widget: 'select',
 | 
			
		||||
          placeholder: '请选择',
 | 
			
		||||
          change: (i: any) => {
 | 
			
		||||
            this.sf.value.receiveName = i;
 | 
			
		||||
            this.sf?.setValue('/receiveName', i);
 | 
			
		||||
          }
 | 
			
		||||
          placeholder: '请选择'
 | 
			
		||||
        },
 | 
			
		||||
        default: ''
 | 
			
		||||
      },
 | 
			
		||||
@ -53,8 +48,7 @@ export class TransactionDetailsComponent implements OnInit {
 | 
			
		||||
        title: '交易时间',
 | 
			
		||||
        type: 'string',
 | 
			
		||||
        ui: {
 | 
			
		||||
          widget: 'date',
 | 
			
		||||
          mode: 'range',
 | 
			
		||||
          widget: 'sl-from-to-search',
 | 
			
		||||
          format: 'yyyy-MM-dd'
 | 
			
		||||
        } as SFDateWidgetSchema
 | 
			
		||||
      }
 | 
			
		||||
@ -67,13 +61,14 @@ export class TransactionDetailsComponent implements OnInit {
 | 
			
		||||
 | 
			
		||||
  ngOnInit(): void {}
 | 
			
		||||
 | 
			
		||||
  stChange(e: STChange): void {
 | 
			
		||||
    switch (e.type) {
 | 
			
		||||
      case 'filter':
 | 
			
		||||
        this.st.load();
 | 
			
		||||
        break;
 | 
			
		||||
  beforeReq = (requestOptions: STRequestOptions) => {
 | 
			
		||||
    if (this.sf) {
 | 
			
		||||
      Object.assign(requestOptions.body, {
 | 
			
		||||
        ...this.sf.value
 | 
			
		||||
      });
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
    return requestOptions;
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  /**
 | 
			
		||||
   * 重置表单
 | 
			
		||||
 | 
			
		||||
@ -6,7 +6,7 @@
 | 
			
		||||
    <div nz-row nzGutter="8">
 | 
			
		||||
        <div nz-col [nzXl]="_$expand ? 24 : 18" [nzLg]="24" [nzSm]="24" [nzXs]="24">
 | 
			
		||||
            <sf #sf [schema]="searchSchema"
 | 
			
		||||
                [ui]="{ '*': { spanLabelFixed: 90,grid: { lg: 8, md: 12, sm: 12, xs: 24 } }}" [compact]="true"
 | 
			
		||||
                [ui]="{ '*': { spanLabelFixed: 100,grid: { lg: 8, md: 12, sm: 12, xs: 24 } }}" [compact]="true"
 | 
			
		||||
                [button]="'none'"></sf>
 | 
			
		||||
        </div>
 | 
			
		||||
        <div nz-col [nzXl]="_$expand ? 24 : 6" [nzLg]="24" [nzSm]="24" [nzXs]="24" [class.expend-options]="_$expand"
 | 
			
		||||
@ -23,9 +23,13 @@
 | 
			
		||||
</nz-card>
 | 
			
		||||
 | 
			
		||||
<nz-card class="content-box" nzBordered>
 | 
			
		||||
    <st #st [data]="url" [columns]="columns"
 | 
			
		||||
        [req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, params: reqParams }"
 | 
			
		||||
    <st #st [data]="service.$mock_url" [columns]="columns"
 | 
			
		||||
        [req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, process: beforeReq }"
 | 
			
		||||
        [res]="{ reName: { list: 'data.records', total: 'data.total' } }"
 | 
			
		||||
        [page]="{ show: true, showSize: true, pageSizes: [10, 20, 30, 50, 100, 200, 300, 500, 1000] }"
 | 
			
		||||
        [loading]="service.http.loading" [scroll]="{ x:'1200px',y: '370px' }" (change)="stChange($event)"></st>
 | 
			
		||||
        [loading]="service.http.loading" [scroll]="{ x:'1200px',y: '370px' }">
 | 
			
		||||
        <ng-template st-row="call3No" let-item let-index="index" let-column="column">
 | 
			
		||||
            特朗普<br>13789040523
 | 
			
		||||
        </ng-template>
 | 
			
		||||
    </st>
 | 
			
		||||
</nz-card>
 | 
			
		||||
@ -1,6 +1,6 @@
 | 
			
		||||
import { Component, OnInit, ViewChild } from '@angular/core';
 | 
			
		||||
import { Router } from '@angular/router';
 | 
			
		||||
import { STComponent, STColumn, STChange } from '@delon/abc/st';
 | 
			
		||||
import { STComponent, STColumn, STChange, STRequestOptions } from '@delon/abc/st';
 | 
			
		||||
import { SFComponent, SFSchema, SFDateWidgetSchema } from '@delon/form';
 | 
			
		||||
import { NzModalService } from 'ng-zorro-antd/modal';
 | 
			
		||||
import { TicketService } from '../../services/ticket.service';
 | 
			
		||||
@ -8,135 +8,15 @@ import { TicketService } from '../../services/ticket.service';
 | 
			
		||||
@Component({
 | 
			
		||||
  selector: 'app-etc-invoiced-logs',
 | 
			
		||||
  templateUrl: './etc-invoiced-logs.component.html',
 | 
			
		||||
  styleUrls: ['./etc-invoiced-logs.component.less']
 | 
			
		||||
  styleUrls: ['../../../commom/less/box.less', '../../../commom/less/expend-but.less']
 | 
			
		||||
})
 | 
			
		||||
export class ETCInvoicedLogsComponent implements OnInit {
 | 
			
		||||
  url = `/rule?_allow_anonymous=true`;
 | 
			
		||||
  @ViewChild('st', { static: true })
 | 
			
		||||
  st!: STComponent;
 | 
			
		||||
  @ViewChild('sf', { static: false })
 | 
			
		||||
  sf!: SFComponent;
 | 
			
		||||
  columns: STColumn[] = [
 | 
			
		||||
    { title: '发票号码', index: 'no' },
 | 
			
		||||
    { title: '发票代码', index: 'callNo' },
 | 
			
		||||
    { title: '运单号', index: 'callNo' },
 | 
			
		||||
    { title: '车牌号', index: 'callNo' },
 | 
			
		||||
    { title: '入站口', index: 'callNo' },
 | 
			
		||||
    { title: '出站口', index: 'callNo' },
 | 
			
		||||
    { title: '里程(km)', index: 'callNo' },
 | 
			
		||||
    { title: '交易id', index: 'callNo' },
 | 
			
		||||
    { title: '交易金额(元)', index: 'callNo' },
 | 
			
		||||
    { title: '发票金额(元)', index: 'callNo' },
 | 
			
		||||
    { title: '税率', index: 'callNo' },
 | 
			
		||||
    { title: '税额(元)', index: 'callNo' },
 | 
			
		||||
    { title: '价税合计(元)', index: 'callNo' },
 | 
			
		||||
    { title: '交易时间', index: 'updatedAt', type: 'date' },
 | 
			
		||||
    { title: '开票日期', index: 'updatedAt', type: 'date' },
 | 
			
		||||
    { title: '购买方', index: 'callNo' },
 | 
			
		||||
    { title: '购方税号', index: 'callNo' },
 | 
			
		||||
    { title: '销售方', index: 'callNo' },
 | 
			
		||||
    { title: '销方税号', index: 'callNo' }
 | 
			
		||||
  ];
 | 
			
		||||
  searchSchema: SFSchema = {
 | 
			
		||||
    properties: {
 | 
			
		||||
      expand: {
 | 
			
		||||
        type: 'boolean',
 | 
			
		||||
        ui: {
 | 
			
		||||
          hidden: true
 | 
			
		||||
        }
 | 
			
		||||
      },
 | 
			
		||||
      orderSn: {
 | 
			
		||||
        type: 'string',
 | 
			
		||||
        title: '发票号码',
 | 
			
		||||
        ui: {
 | 
			
		||||
          placeholder: '请输入',
 | 
			
		||||
          autocomplete: 'off'
 | 
			
		||||
        }
 | 
			
		||||
      },
 | 
			
		||||
      orderSn1: {
 | 
			
		||||
        type: 'string',
 | 
			
		||||
        title: '运单号',
 | 
			
		||||
        ui: {
 | 
			
		||||
          placeholder: '请输入',
 | 
			
		||||
          autocomplete: 'off'
 | 
			
		||||
        }
 | 
			
		||||
      },
 | 
			
		||||
      orderSn2: {
 | 
			
		||||
        type: 'string',
 | 
			
		||||
        title: '车牌号',
 | 
			
		||||
        ui: {
 | 
			
		||||
          placeholder: '请输入',
 | 
			
		||||
          autocomplete: 'off'
 | 
			
		||||
        }
 | 
			
		||||
      },
 | 
			
		||||
      createTime: {
 | 
			
		||||
        title: '交易时间',
 | 
			
		||||
        type: 'string',
 | 
			
		||||
        ui: {
 | 
			
		||||
          widget: 'date',
 | 
			
		||||
          mode: 'range',
 | 
			
		||||
          format: 'yyyy-MM-dd',
 | 
			
		||||
          visibleIf: {
 | 
			
		||||
            expand: (value: boolean) => value
 | 
			
		||||
          }
 | 
			
		||||
        } as SFDateWidgetSchema
 | 
			
		||||
      },
 | 
			
		||||
      createTime2: {
 | 
			
		||||
        title: '开票日期',
 | 
			
		||||
        type: 'string',
 | 
			
		||||
        ui: {
 | 
			
		||||
          widget: 'date',
 | 
			
		||||
          mode: 'range',
 | 
			
		||||
          format: 'yyyy-MM-dd',
 | 
			
		||||
          visibleIf: {
 | 
			
		||||
            expand: (value: boolean) => value
 | 
			
		||||
          }
 | 
			
		||||
        } as SFDateWidgetSchema
 | 
			
		||||
      },
 | 
			
		||||
      receiveName: {
 | 
			
		||||
        type: 'string',
 | 
			
		||||
        title: '购买方',
 | 
			
		||||
        enum: [
 | 
			
		||||
          { label: '全部', value: '全部' },
 | 
			
		||||
          { label: '企业认证审核', value: '企业认证审核' },
 | 
			
		||||
          { label: '企业管理员审核', value: '企业管理员审核' }
 | 
			
		||||
        ],
 | 
			
		||||
        ui: {
 | 
			
		||||
          widget: 'select',
 | 
			
		||||
          placeholder: '请选择',
 | 
			
		||||
          change: (i: any) => {
 | 
			
		||||
            this.sf.value.receiveName = i;
 | 
			
		||||
            this.sf?.setValue('/receiveName', i);
 | 
			
		||||
          },
 | 
			
		||||
          visibleIf: {
 | 
			
		||||
            expand: (value: boolean) => value
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      },
 | 
			
		||||
      receiveName2: {
 | 
			
		||||
        type: 'string',
 | 
			
		||||
        title: '销售方',
 | 
			
		||||
        enum: [
 | 
			
		||||
          { label: '全部', value: '全部' },
 | 
			
		||||
          { label: '企业认证审核', value: '企业认证审核' },
 | 
			
		||||
          { label: '企业管理员审核', value: '企业管理员审核' }
 | 
			
		||||
        ],
 | 
			
		||||
        ui: {
 | 
			
		||||
          widget: 'select',
 | 
			
		||||
          placeholder: '请选择',
 | 
			
		||||
          change: (i: any) => {
 | 
			
		||||
            this.sf.value.receiveName2 = i;
 | 
			
		||||
            this.sf?.setValue('/receiveName2', i);
 | 
			
		||||
          },
 | 
			
		||||
          visibleIf: {
 | 
			
		||||
            expand: (value: boolean) => value
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  reqParams = {};
 | 
			
		||||
  columns: STColumn[] = this.initST();
 | 
			
		||||
  searchSchema: SFSchema = this.initSF();
 | 
			
		||||
 | 
			
		||||
  _$expand = false;
 | 
			
		||||
 | 
			
		||||
@ -144,19 +24,17 @@ export class ETCInvoicedLogsComponent implements OnInit {
 | 
			
		||||
 | 
			
		||||
  ngOnInit(): void {}
 | 
			
		||||
 | 
			
		||||
  stChange(e: STChange): void {
 | 
			
		||||
    switch (e.type) {
 | 
			
		||||
      case 'filter':
 | 
			
		||||
        this.st.load();
 | 
			
		||||
        break;
 | 
			
		||||
  beforeReq = (requestOptions: STRequestOptions) => {
 | 
			
		||||
    if (this.sf) {
 | 
			
		||||
      Object.assign(requestOptions.body, {
 | 
			
		||||
        ...this.sf.value
 | 
			
		||||
      });
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  approval(): void {}
 | 
			
		||||
 | 
			
		||||
  add(): void {}
 | 
			
		||||
    return requestOptions;
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  routeTo(item: any) {
 | 
			
		||||
    return;
 | 
			
		||||
    this.router.navigate(['/ticket/invoice-requested-detail/1']);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
@ -175,4 +53,121 @@ export class ETCInvoicedLogsComponent implements OnInit {
 | 
			
		||||
    this._$expand = !this._$expand;
 | 
			
		||||
    this.sf?.setValue('/expand', this._$expand);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  private initSF(): SFSchema {
 | 
			
		||||
    return {
 | 
			
		||||
      properties: {
 | 
			
		||||
        expand: {
 | 
			
		||||
          type: 'boolean',
 | 
			
		||||
          ui: {
 | 
			
		||||
            hidden: true
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        orderSn: {
 | 
			
		||||
          type: 'string',
 | 
			
		||||
          title: '发票号码',
 | 
			
		||||
          ui: {
 | 
			
		||||
            placeholder: '请输入',
 | 
			
		||||
            autocomplete: 'off'
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        orderS2n1: {
 | 
			
		||||
          type: 'string',
 | 
			
		||||
          title: '订单号',
 | 
			
		||||
          ui: {
 | 
			
		||||
            placeholder: '请输入'
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        orderSn1: {
 | 
			
		||||
          type: 'string',
 | 
			
		||||
          title: '运单号',
 | 
			
		||||
          ui: {
 | 
			
		||||
            placeholder: '请输入'
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        orderSn2: {
 | 
			
		||||
          type: 'string',
 | 
			
		||||
          title: '车牌号',
 | 
			
		||||
          ui: {
 | 
			
		||||
            placeholder: '请输入',
 | 
			
		||||
            visibleIf: {
 | 
			
		||||
              expand: (value: boolean) => value
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        createTime: {
 | 
			
		||||
          title: '交易时间',
 | 
			
		||||
          type: 'string',
 | 
			
		||||
          ui: {
 | 
			
		||||
            widget: 'sl-from-to-search',
 | 
			
		||||
            format: 'yyyy-MM-dd',
 | 
			
		||||
            visibleIf: {
 | 
			
		||||
              expand: (value: boolean) => value
 | 
			
		||||
            }
 | 
			
		||||
          } as SFDateWidgetSchema
 | 
			
		||||
        },
 | 
			
		||||
        createTime2: {
 | 
			
		||||
          title: '开票日期',
 | 
			
		||||
          type: 'string',
 | 
			
		||||
          ui: {
 | 
			
		||||
            widget: 'sl-from-to-search',
 | 
			
		||||
            format: 'yyyy-MM-dd',
 | 
			
		||||
            visibleIf: {
 | 
			
		||||
              expand: (value: boolean) => value
 | 
			
		||||
            }
 | 
			
		||||
          } as SFDateWidgetSchema
 | 
			
		||||
        },
 | 
			
		||||
        receiveName2: {
 | 
			
		||||
          type: 'string',
 | 
			
		||||
          title: '销售方',
 | 
			
		||||
          enum: [{ label: '全部', value: '全部' }],
 | 
			
		||||
          ui: {
 | 
			
		||||
            widget: 'select',
 | 
			
		||||
            placeholder: '请选择',
 | 
			
		||||
            visibleIf: {
 | 
			
		||||
              expand: (value: boolean) => value
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        ltdId: {
 | 
			
		||||
          type: 'string',
 | 
			
		||||
          title: '网络货运人',
 | 
			
		||||
          ui: {
 | 
			
		||||
            widget: 'select',
 | 
			
		||||
            placeholder: '请选择',
 | 
			
		||||
            allowClear: true,
 | 
			
		||||
            visibleIf: {
 | 
			
		||||
              expand: (value: boolean) => value
 | 
			
		||||
            },
 | 
			
		||||
            asyncData: () => this.service.getNetworkFreightForwarder()
 | 
			
		||||
          },
 | 
			
		||||
          default: ''
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    };
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  private initST(): STColumn[] {
 | 
			
		||||
    return [
 | 
			
		||||
      { title: '发票号码', index: 'no', width: 100, type: 'link', click: item => this.routeTo(item) },
 | 
			
		||||
      { title: '发票代码', index: 'callNo', width: 100 },
 | 
			
		||||
      { title: '订单号', index: 'callNo', width: 100 },
 | 
			
		||||
      { title: '运单号', index: 'callNo', width: 100 },
 | 
			
		||||
      { title: '入站口', index: 'callNo', width: 100 },
 | 
			
		||||
      { title: '出站口', index: 'callNo', width: 100 },
 | 
			
		||||
      { title: '司机', render: 'call3No', width: 140 },
 | 
			
		||||
      { title: '车牌号', index: 'callNo', width: 100 },
 | 
			
		||||
      { title: '里程(km)', index: 'callNo', width: 120 },
 | 
			
		||||
      { title: '交易id', index: 'callNo', width: 100 },
 | 
			
		||||
      { title: '交易金额(元)', index: 'callNo', width: 130 },
 | 
			
		||||
      { title: '税率', index: 'callNo', width: 90 },
 | 
			
		||||
      { title: '金额(元)', index: 'callNo', width: 120 },
 | 
			
		||||
      { title: '税额(元)', index: 'callNo', width: 120 },
 | 
			
		||||
      { title: '价税合计(元)', index: 'callNo', width: 130 },
 | 
			
		||||
      { title: '交易时间', index: 'updatedAt', type: 'date', width: 150 },
 | 
			
		||||
      { title: '开票日期', index: 'updatedAt', type: 'date', width: 150 },
 | 
			
		||||
      { title: '销售方', index: 'callNo', width: 90 },
 | 
			
		||||
      { title: '网络货运人', index: 'callNo', width: 120 }
 | 
			
		||||
    ];
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -1,7 +1,6 @@
 | 
			
		||||
<page-header-wrapper [title]="'申请记录'">
 | 
			
		||||
</page-header-wrapper>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<nz-card class="search-box" nzBordered>
 | 
			
		||||
    <div nz-row nzGutter="8">
 | 
			
		||||
        <div nz-col [nzXl]="_$expand ? 24 : 18" [nzLg]="24" [nzSm]="24" [nzXs]="24">
 | 
			
		||||
@ -25,7 +24,7 @@
 | 
			
		||||
<nz-card class="content-box" nzBordered>
 | 
			
		||||
 | 
			
		||||
    <div class="d-flex align-items-center mb-md mt-md">
 | 
			
		||||
        <button nz-button (click)="this.auditAction(null)">申请开票</button>
 | 
			
		||||
        <button nz-button (click)="this.auditAction()">申请开票</button>
 | 
			
		||||
        <div class="ml-md">
 | 
			
		||||
            已选择
 | 
			
		||||
            <strong class="text-primary">{{ selectedRows.length }}</strong> 条运单
 | 
			
		||||
@ -33,20 +32,16 @@
 | 
			
		||||
        </div>
 | 
			
		||||
    </div>
 | 
			
		||||
 | 
			
		||||
    <st #st [data]="url" [columns]="columns"
 | 
			
		||||
        [req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, params: reqParams }"
 | 
			
		||||
    <st #st [data]="service.$mock_url" [columns]="columns"
 | 
			
		||||
        [req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, process: beforeReq }"
 | 
			
		||||
        [res]="{ reName: { list: 'data.records', total: 'data.total' } }"
 | 
			
		||||
        [page]="{ show: true, showSize: true, pageSizes: [10, 20, 30, 50, 100, 200, 300, 500, 1000] }"
 | 
			
		||||
        [loading]="service.http.loading" [scroll]="{ x:'1200px',y: '370px' }" (change)="stChange($event)"></st>
 | 
			
		||||
</nz-card>
 | 
			
		||||
 | 
			
		||||
<ng-template #auditModal>
 | 
			
		||||
    <div nz-row nzGutter="8">
 | 
			
		||||
        <div nz-col nzSpan="24" se-container [labelWidth]="80">
 | 
			
		||||
            <se [col]="1" label="备注">
 | 
			
		||||
                <textarea nz-input rows="3" placeholder="同意可以不用填写原因 ,拒绝必须说明原因"
 | 
			
		||||
                    style="width: 325px;margin-left: 14px;"></textarea>
 | 
			
		||||
            </se>
 | 
			
		||||
        </div>
 | 
			
		||||
    </div>
 | 
			
		||||
</ng-template>
 | 
			
		||||
        [loading]="service.http.loading" [scroll]="{ x:'1200px',y: '370px' }" (change)="stChange($event)">
 | 
			
		||||
        <ng-template st-row="call1No" let-item let-index="index" let-column="column">
 | 
			
		||||
            张三<br>13812345678
 | 
			
		||||
        </ng-template>
 | 
			
		||||
        <ng-template st-row="call1N2o" let-item let-index="index" let-column="column">
 | 
			
		||||
            粤B88888<br>张三
 | 
			
		||||
        </ng-template>
 | 
			
		||||
    </st>
 | 
			
		||||
</nz-card>
 | 
			
		||||
@ -1,6 +1,6 @@
 | 
			
		||||
import { Component, OnInit, ViewChild } from '@angular/core';
 | 
			
		||||
import { Router } from '@angular/router';
 | 
			
		||||
import { STComponent, STColumn, STChange } from '@delon/abc/st';
 | 
			
		||||
import { STComponent, STColumn, STChange, STRequestOptions } from '@delon/abc/st';
 | 
			
		||||
import { SFComponent, SFSchema, SFDateWidgetSchema } from '@delon/form';
 | 
			
		||||
import { NzModalService } from 'ng-zorro-antd/modal';
 | 
			
		||||
import { TicketService } from '../../services/ticket.service';
 | 
			
		||||
@ -8,127 +8,17 @@ import { TicketService } from '../../services/ticket.service';
 | 
			
		||||
@Component({
 | 
			
		||||
  selector: 'app-etc-invoiced-requested',
 | 
			
		||||
  templateUrl: './etc-invoiced-requested.component.html',
 | 
			
		||||
  styleUrls: ['./etc-invoiced-requested.component.less']
 | 
			
		||||
  styleUrls: ['../../../commom/less/box.less', '../../../commom/less/expend-but.less']
 | 
			
		||||
})
 | 
			
		||||
export class ETCInvoicedRequestedComponent implements OnInit {
 | 
			
		||||
  url = `/rule?_allow_anonymous=true`;
 | 
			
		||||
  @ViewChild('st', { static: true })
 | 
			
		||||
  st!: STComponent;
 | 
			
		||||
  @ViewChild('sf', { static: false })
 | 
			
		||||
  sf!: SFComponent;
 | 
			
		||||
  @ViewChild('auditModal', { static: false })
 | 
			
		||||
  auditModal!: any;
 | 
			
		||||
  columns: STColumn[] = [
 | 
			
		||||
    { title: '', index: 'key', type: 'checkbox' },
 | 
			
		||||
    { title: '运单号', index: 'no' },
 | 
			
		||||
    { title: '司机', index: 'callNo' },
 | 
			
		||||
    { title: '装货地', index: 'callNo' },
 | 
			
		||||
    { title: '卸货地', index: 'callNo' },
 | 
			
		||||
    { title: '托运人', index: 'callNo' },
 | 
			
		||||
    { title: '无车承运人', index: 'callNo' },
 | 
			
		||||
    { title: '派车时间', index: 'updatedAt', type: 'date' },
 | 
			
		||||
    { title: '提货时间', index: 'updatedAt', type: 'date' },
 | 
			
		||||
    { title: '卸货时间', index: 'updatedAt', type: 'date' },
 | 
			
		||||
    { title: '签收时间', index: 'updatedAt', type: 'date' },
 | 
			
		||||
  ];
 | 
			
		||||
  searchSchema: SFSchema = {
 | 
			
		||||
    properties: {
 | 
			
		||||
      expand: {
 | 
			
		||||
        type: 'boolean',
 | 
			
		||||
        ui: {
 | 
			
		||||
          hidden: true
 | 
			
		||||
        }
 | 
			
		||||
      },
 | 
			
		||||
      orderSn: {
 | 
			
		||||
        type: 'string',
 | 
			
		||||
        title: '运单号',
 | 
			
		||||
        ui: {
 | 
			
		||||
          autocomplete: 'off',
 | 
			
		||||
          placeholder: '请输入'
 | 
			
		||||
        }
 | 
			
		||||
      },
 | 
			
		||||
      orderSn1: {
 | 
			
		||||
        type: 'string',
 | 
			
		||||
        title: '司机',
 | 
			
		||||
        ui: {
 | 
			
		||||
          autocomplete: 'off',
 | 
			
		||||
          placeholder: '姓名/手机'
 | 
			
		||||
        }
 | 
			
		||||
      },
 | 
			
		||||
      orderSn2: {
 | 
			
		||||
        type: 'string',
 | 
			
		||||
        title: '车牌号',
 | 
			
		||||
        ui: {
 | 
			
		||||
          autocomplete: 'off',
 | 
			
		||||
          placeholder: '请输入'
 | 
			
		||||
        }
 | 
			
		||||
      },
 | 
			
		||||
      orderS3: {
 | 
			
		||||
        type: 'string',
 | 
			
		||||
        title: '卸货地',
 | 
			
		||||
        ui: {
 | 
			
		||||
          autocomplete: 'off',
 | 
			
		||||
          placeholder: '请选择',
 | 
			
		||||
          visibleIf: {
 | 
			
		||||
            expand: (value: boolean) => value
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      },
 | 
			
		||||
      orderSn4: {
 | 
			
		||||
        type: 'string',
 | 
			
		||||
        title: '装货地',
 | 
			
		||||
        ui: {
 | 
			
		||||
          autocomplete: 'off',
 | 
			
		||||
          placeholder: '请选择',
 | 
			
		||||
          visibleIf: {
 | 
			
		||||
            expand: (value: boolean) => value
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      },
 | 
			
		||||
      orderSn5: {
 | 
			
		||||
        type: 'string',
 | 
			
		||||
        title: '托运人',
 | 
			
		||||
        enum: [
 | 
			
		||||
          { label: '全部', value: '全部' },
 | 
			
		||||
          { label: '企业认证审核', value: '企业认证审核' },
 | 
			
		||||
          { label: '企业管理员审核', value: '企业管理员审核' }
 | 
			
		||||
        ],
 | 
			
		||||
        ui: {
 | 
			
		||||
          widget: 'select',
 | 
			
		||||
          placeholder: '请选择',
 | 
			
		||||
          change: (i: any) => {
 | 
			
		||||
            this.sf.value.receiveName = i;
 | 
			
		||||
            this.sf?.setValue('/receiveName', i);
 | 
			
		||||
          },
 | 
			
		||||
          visibleIf: {
 | 
			
		||||
            expand: (value: boolean) => value
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      },
 | 
			
		||||
      receiveName: {
 | 
			
		||||
        type: 'string',
 | 
			
		||||
        title: '无车承运人',
 | 
			
		||||
        enum: [
 | 
			
		||||
          { label: '全部', value: '全部' },
 | 
			
		||||
          { label: '企业认证审核', value: '企业认证审核' },
 | 
			
		||||
          { label: '企业管理员审核', value: '企业管理员审核' }
 | 
			
		||||
        ],
 | 
			
		||||
        ui: {
 | 
			
		||||
          widget: 'select',
 | 
			
		||||
          placeholder: '请选择',
 | 
			
		||||
          change: (i: any) => {
 | 
			
		||||
            this.sf.value.receiveName = i;
 | 
			
		||||
            this.sf?.setValue('/receiveName', i);
 | 
			
		||||
          },
 | 
			
		||||
          visibleIf: {
 | 
			
		||||
            expand: (value: boolean) => value
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  reqParams = {};
 | 
			
		||||
  columns: STColumn[] = this.initST();
 | 
			
		||||
  searchSchema: SFSchema = this.initSF();
 | 
			
		||||
 | 
			
		||||
  _$expand = false;
 | 
			
		||||
 | 
			
		||||
@ -137,64 +27,31 @@ export class ETCInvoicedRequestedComponent implements OnInit {
 | 
			
		||||
 | 
			
		||||
  ngOnInit(): void {}
 | 
			
		||||
 | 
			
		||||
  beforeReq = (requestOptions: STRequestOptions) => {
 | 
			
		||||
    if (this.sf) {
 | 
			
		||||
      Object.assign(requestOptions.body, {
 | 
			
		||||
        ...this.sf.value
 | 
			
		||||
      });
 | 
			
		||||
    }
 | 
			
		||||
    return requestOptions;
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  stChange(e: STChange): void {
 | 
			
		||||
    switch (e.type) {
 | 
			
		||||
      case 'checkbox':
 | 
			
		||||
        this.selectedRows = e.checkbox!;
 | 
			
		||||
        break;
 | 
			
		||||
      case 'filter':
 | 
			
		||||
        this.st.load();
 | 
			
		||||
        break;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  approval(): void {}
 | 
			
		||||
 | 
			
		||||
  add(): void {}
 | 
			
		||||
 | 
			
		||||
  routeTo(item: any) {
 | 
			
		||||
    this.router.navigate(['/ticket/invoice-requested-detail/1']);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  auditAction(item: any) {
 | 
			
		||||
    const modal = this.nzModalService.create({
 | 
			
		||||
      nzTitle: '审核',
 | 
			
		||||
      nzContent: this.auditModal,
 | 
			
		||||
      nzFooter: [
 | 
			
		||||
        {
 | 
			
		||||
          label: '拒绝',
 | 
			
		||||
          type: 'default',
 | 
			
		||||
          onClick: () => {
 | 
			
		||||
            modal.destroy();
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
          label: '通过',
 | 
			
		||||
          type: 'primary',
 | 
			
		||||
          onClick: () => {
 | 
			
		||||
            modal.destroy();
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      ]
 | 
			
		||||
    });
 | 
			
		||||
    modal.afterClose.subscribe(res => {
 | 
			
		||||
      this.st.load();
 | 
			
		||||
    });
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  showReason(item: any) {
 | 
			
		||||
    const modal = this.nzModalService.create({
 | 
			
		||||
      nzTitle: '查看原因',
 | 
			
		||||
      nzContent: '运单数据异常,暂时无法开票,请联系客服400-xxxx-xxxx',
 | 
			
		||||
      nzFooter: [
 | 
			
		||||
        {
 | 
			
		||||
          label: '关闭',
 | 
			
		||||
          type: 'primary',
 | 
			
		||||
          onClick: () => {
 | 
			
		||||
            modal.destroy();
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      ]
 | 
			
		||||
  auditAction() {
 | 
			
		||||
    if (this.selectedRows?.length <= 0) {
 | 
			
		||||
      this.service.msgSrv.warning('请选择申请记录');
 | 
			
		||||
      return;
 | 
			
		||||
    }
 | 
			
		||||
    const modal = this.nzModalService.warning({
 | 
			
		||||
      nzTitle: '确定对已选运单批量申请开票?',
 | 
			
		||||
      nzOnOk: () => {}
 | 
			
		||||
    });
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
@ -213,4 +70,149 @@ export class ETCInvoicedRequestedComponent implements OnInit {
 | 
			
		||||
    this._$expand = !this._$expand;
 | 
			
		||||
    this.sf?.setValue('/expand', this._$expand);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  private initSF(): SFSchema {
 | 
			
		||||
    return {
 | 
			
		||||
      properties: {
 | 
			
		||||
        expand: {
 | 
			
		||||
          type: 'boolean',
 | 
			
		||||
          ui: {
 | 
			
		||||
            hidden: true
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        orderSn: {
 | 
			
		||||
          type: 'string',
 | 
			
		||||
          title: '运单号',
 | 
			
		||||
          ui: {
 | 
			
		||||
            autocomplete: 'off',
 | 
			
		||||
            placeholder: '请输入'
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        orderS2n: {
 | 
			
		||||
          type: 'string',
 | 
			
		||||
          title: '订单号',
 | 
			
		||||
          ui: {
 | 
			
		||||
            autocomplete: 'off',
 | 
			
		||||
            placeholder: '请输入'
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        order2S2n: {
 | 
			
		||||
          type: 'string',
 | 
			
		||||
          title: '订单类型',
 | 
			
		||||
          ui: {
 | 
			
		||||
            widget: 'dict-select',
 | 
			
		||||
            params: { dictKey: 'refund:apply:status' },
 | 
			
		||||
            placeholder: '请选择'
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        orderSn1: {
 | 
			
		||||
          type: 'string',
 | 
			
		||||
          title: '司机姓名',
 | 
			
		||||
          ui: {
 | 
			
		||||
            placeholder: '请输入',
 | 
			
		||||
            visibleIf: {
 | 
			
		||||
              expand: (value: boolean) => value
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        ord0erSn1: {
 | 
			
		||||
          type: 'string',
 | 
			
		||||
          title: '司机手机',
 | 
			
		||||
          ui: {
 | 
			
		||||
            placeholder: '请输入',
 | 
			
		||||
            visibleIf: {
 | 
			
		||||
              expand: (value: boolean) => value
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        orderSn2: {
 | 
			
		||||
          type: 'string',
 | 
			
		||||
          title: '车牌号',
 | 
			
		||||
          ui: {
 | 
			
		||||
            placeholder: '请输入',
 | 
			
		||||
            visibleIf: {
 | 
			
		||||
              expand: (value: boolean) => value
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        orderS1n2: {
 | 
			
		||||
          type: 'string',
 | 
			
		||||
          title: '车辆所有人',
 | 
			
		||||
          ui: {
 | 
			
		||||
            placeholder: '请输入',
 | 
			
		||||
            visibleIf: {
 | 
			
		||||
              expand: (value: boolean) => value
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        orderS3: {
 | 
			
		||||
          type: 'string',
 | 
			
		||||
          title: '卸货地',
 | 
			
		||||
          ui: {
 | 
			
		||||
            autocomplete: 'off',
 | 
			
		||||
            placeholder: '请选择',
 | 
			
		||||
            visibleIf: {
 | 
			
		||||
              expand: (value: boolean) => value
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        orderSn4: {
 | 
			
		||||
          type: 'string',
 | 
			
		||||
          title: '装货地',
 | 
			
		||||
          ui: {
 | 
			
		||||
            autocomplete: 'off',
 | 
			
		||||
            placeholder: '请选择',
 | 
			
		||||
            visibleIf: {
 | 
			
		||||
              expand: (value: boolean) => value
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        orderSn5: {
 | 
			
		||||
          type: 'string',
 | 
			
		||||
          title: '托运人',
 | 
			
		||||
          enum: [{ label: '全部', value: '全部' }],
 | 
			
		||||
          ui: {
 | 
			
		||||
            widget: 'select',
 | 
			
		||||
            placeholder: '请选择',
 | 
			
		||||
            visibleIf: {
 | 
			
		||||
              expand: (value: boolean) => value
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        ltdId: {
 | 
			
		||||
          type: 'string',
 | 
			
		||||
          title: '网络货运人',
 | 
			
		||||
          ui: {
 | 
			
		||||
            widget: 'select',
 | 
			
		||||
            placeholder: '请选择',
 | 
			
		||||
            allowClear: true,
 | 
			
		||||
            visibleIf: {
 | 
			
		||||
              expand: (value: boolean) => value
 | 
			
		||||
            },
 | 
			
		||||
            asyncData: () => this.service.getNetworkFreightForwarder()
 | 
			
		||||
          },
 | 
			
		||||
          default: ''
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    };
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  private initST(): STColumn[] {
 | 
			
		||||
    return [
 | 
			
		||||
      { title: '', index: 'key', type: 'checkbox' },
 | 
			
		||||
      { title: '运单号', index: 'no' },
 | 
			
		||||
      { title: '订单号', index: 'no' },
 | 
			
		||||
      { title: '订单类型', index: 'no' },
 | 
			
		||||
      { title: '装货地', index: 'callNo' },
 | 
			
		||||
      { title: '卸货地', index: 'callNo' },
 | 
			
		||||
      { title: '司机信息', render: 'call1No' },
 | 
			
		||||
      { title: '车辆信息', render: 'call1N2o' },
 | 
			
		||||
      { title: '托运人', index: 'callNo' },
 | 
			
		||||
      { title: '网络货运人', index: 'callNo' },
 | 
			
		||||
      { title: '接单时间', index: 'updatedAt', type: 'date' },
 | 
			
		||||
      { title: '装货时间', index: 'updatedAt', type: 'date' },
 | 
			
		||||
      { title: '卸货时间', index: 'updatedAt', type: 'date' },
 | 
			
		||||
      { title: '签收时间', index: 'updatedAt', type: 'date' }
 | 
			
		||||
    ];
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -15,6 +15,8 @@ import { RequestedDetailComponent } from './components/invoice-requested/request
 | 
			
		||||
import { InvoiceDetailComponent } from './components/invoice-detail/invoice-detail.component';
 | 
			
		||||
import { CancellationInvoiceComponent } from './components/cancellation-invoice/cancellation-invoice.component';
 | 
			
		||||
import { PushInvoiceComponent } from './components/cancellation-invoice/push-invoice/push-invoice.component';
 | 
			
		||||
import { AddOwnerComponent } from './components/etc-blacklist/add-owner/add-owner.component';
 | 
			
		||||
import { AddCartComponent } from './components/etc-blacklist/add-cart/add-cart.component';
 | 
			
		||||
 | 
			
		||||
const COMPONENTS: any = [
 | 
			
		||||
  ETCInvoicedListComponent,
 | 
			
		||||
@ -25,11 +27,18 @@ const COMPONENTS: any = [
 | 
			
		||||
  InvoicedListComponent,
 | 
			
		||||
  InvoiceRequestedDetailComponent,
 | 
			
		||||
  InvoiceDetailComponent,
 | 
			
		||||
  CancellationInvoiceComponent
 | 
			
		||||
  CancellationInvoiceComponent,
 | 
			
		||||
  PushInvoiceComponent
 | 
			
		||||
];
 | 
			
		||||
const NOTROUTECOMPONENTS: any = [
 | 
			
		||||
  TransactionDetailsComponent,
 | 
			
		||||
  RequestedInvoiceModalComponent,
 | 
			
		||||
  RequestedDetailComponent,
 | 
			
		||||
  AddOwnerComponent,
 | 
			
		||||
  AddCartComponent
 | 
			
		||||
];
 | 
			
		||||
const NOTROUTECOMPONENTS: any = [TransactionDetailsComponent, RequestedInvoiceModalComponent, RequestedDetailComponent];
 | 
			
		||||
@NgModule({
 | 
			
		||||
  declarations: [...COMPONENTS, ...NOTROUTECOMPONENTS, PushInvoiceComponent],
 | 
			
		||||
  declarations: [...COMPONENTS, ...NOTROUTECOMPONENTS],
 | 
			
		||||
  imports: [CommonModule, TicketManagementRoutingModule, SharedModule]
 | 
			
		||||
})
 | 
			
		||||
export class TicketManagementModule {}
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user