fix bug
This commit is contained in:
		@ -1,6 +1,60 @@
 | 
			
		||||
<!-- 页头 -->
 | 
			
		||||
<page-header-wrapper [title]="'数据报表'"></page-header-wrapper>
 | 
			
		||||
<nz-card>
 | 
			
		||||
  <sf mode="search" [schema]="searchSchema" (formSubmit)="st.reset($event)" (formReset)="st.reset($event)"></sf>
 | 
			
		||||
  <st #st [data]="url" [columns]="columns"></st>
 | 
			
		||||
<page-header-wrapper [title]="'客户报表'"></page-header-wrapper>
 | 
			
		||||
<div nz-row [nzGutter]="16">
 | 
			
		||||
  <div nz-col class="gutter-row" [nzSpan]="6">
 | 
			
		||||
    <g2-card [title]="'货主'" [bordered]="true" [total]="'¥ 126,560.00'" footer="日访问量 12,423" contentHeight="46">
 | 
			
		||||
    </g2-card>
 | 
			
		||||
  </div>
 | 
			
		||||
  <div nz-col class="gutter-row" [nzSpan]="6">
 | 
			
		||||
    <g2-card [title]="'合伙人'" [bordered]="true" [total]="'¥ 126,560.00'" footer="日访问量 12,423" contentHeight="46">
 | 
			
		||||
    </g2-card>
 | 
			
		||||
  </div>
 | 
			
		||||
  <div nz-col class="gutter-row" [nzSpan]="6">
 | 
			
		||||
    <g2-card [title]="'司机'" [bordered]="true" [total]="'¥ 126,560.00'" footer="日访问量 12,423" contentHeight="46">
 | 
			
		||||
    </g2-card>
 | 
			
		||||
  </div>
 | 
			
		||||
  <div nz-col class="gutter-row" [nzSpan]="6">
 | 
			
		||||
    <g2-card [title]="'车辆'" [bordered]="true" [total]="'¥ 126,560.00'" footer="日访问量 12,423" contentHeight="46">
 | 
			
		||||
    </g2-card>
 | 
			
		||||
  </div>
 | 
			
		||||
</div>
 | 
			
		||||
<nz-card nzTitle="客户报表" [nzExtra]="extraTemplate">
 | 
			
		||||
  <ng-template #extraTemplate>
 | 
			
		||||
    <div class="chooseBox">
 | 
			
		||||
      <div class="timeBox">
 | 
			
		||||
        <nz-radio-group [(ngModel)]="mode" nzButtonStyle="solid" (ngModelChange)="changeData()">
 | 
			
		||||
          <label nz-radio-button nzValue="year">年</label>
 | 
			
		||||
          <label nz-radio-button nzValue="month">月</label>
 | 
			
		||||
          <label nz-radio-button nzValue="date">日</label>
 | 
			
		||||
          <label nz-radio-button nzValue="define">自定义</label>
 | 
			
		||||
        </nz-radio-group>
 | 
			
		||||
        <div class="dateBox">
 | 
			
		||||
          <nz-date-picker [(ngModel)]="date" [nzMode]="mode" [nzFormat]="dateFormat" *ngIf="mode !== 'define'" [nzDisabledDate]="disabledDate" (ngModelChange)="onChange($event)"></nz-date-picker>
 | 
			
		||||
          <nz-range-picker [(ngModel)]="defineDate" [nzFormat]="dateFormat" *ngIf="mode === 'define'" [nzDisabledDate]="disabledDate" (ngModelChange)="onChange($event)"></nz-range-picker>
 | 
			
		||||
        </div>
 | 
			
		||||
 | 
			
		||||
      </div>
 | 
			
		||||
    </div>
 | 
			
		||||
 | 
			
		||||
  </ng-template>
 | 
			
		||||
  <st #st multiSort [columns]="columns" [ps]="20" [data]="service.$api_listOperationalReportPage"
 | 
			
		||||
    [req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, params: reqParams }"
 | 
			
		||||
    [scroll]="{ x: '1200px' }" [res]="{ reName: { list: 'data.records', total: 'data.total' } }"
 | 
			
		||||
    [page]="{ show: true, showSize: true, pageSizes: [20, 50, 100] }" [loading]="false"></st>
 | 
			
		||||
</nz-card>
 | 
			
		||||
<nz-card nzTitle="用户新增报表" [nzExtra]="extraTemplate">
 | 
			
		||||
  <ng-template #extraTemplate>
 | 
			
		||||
    <div class="chooseBox">
 | 
			
		||||
      <div class="timeBox">
 | 
			
		||||
        <nz-radio-group [(ngModel)]="mode" nzButtonStyle="solid" (ngModelChange)="changeData()">
 | 
			
		||||
          <label nz-radio-button nzValue="year">年</label>
 | 
			
		||||
          <label nz-radio-button nzValue="month">月</label>
 | 
			
		||||
        </nz-radio-group>
 | 
			
		||||
        <div class="dateBox">
 | 
			
		||||
          <nz-date-picker [nzDisabledDate]="disabledDate" [nzMode]="mode" (ngModelChange)="onChange($event)"></nz-date-picker>
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
    </div>
 | 
			
		||||
  </ng-template>
 | 
			
		||||
  <app-datatable-curve></app-datatable-curve>
 | 
			
		||||
</nz-card>
 | 
			
		||||
@ -0,0 +1,11 @@
 | 
			
		||||
.chooseBox{
 | 
			
		||||
    display: flex;
 | 
			
		||||
}
 | 
			
		||||
.timeBox{
 | 
			
		||||
    display: flex;
 | 
			
		||||
    margin: 0 0 0 10px;
 | 
			
		||||
}
 | 
			
		||||
.dateBox{
 | 
			
		||||
    display: inline-block;
 | 
			
		||||
    margin: 0 0 0 10px;
 | 
			
		||||
}
 | 
			
		||||
@ -1,45 +1,87 @@
 | 
			
		||||
import { Component, OnInit, ViewChild } from '@angular/core';
 | 
			
		||||
import { STColumn, STComponent } from '@delon/abc/st';
 | 
			
		||||
import { SFSchema } from '@delon/form';
 | 
			
		||||
import { ModalHelper, _HttpClient } from '@delon/theme';
 | 
			
		||||
import { DatePipe, _HttpClient } from '@delon/theme';
 | 
			
		||||
import { differenceInCalendarDays } from 'date-fns';
 | 
			
		||||
import { DataService } from '../../../services/data.service';
 | 
			
		||||
 | 
			
		||||
@Component({
 | 
			
		||||
  selector: 'app-datatable-customindex',
 | 
			
		||||
  templateUrl: './customindex.component.html',
 | 
			
		||||
  styleUrls: ['./customindex.component.less'],
 | 
			
		||||
  providers: [DatePipe]
 | 
			
		||||
 | 
			
		||||
})
 | 
			
		||||
export class DatatableCustomindexComponent implements OnInit {
 | 
			
		||||
  url = `/user`;
 | 
			
		||||
  searchSchema: SFSchema = {
 | 
			
		||||
    properties: {
 | 
			
		||||
      no: {
 | 
			
		||||
        type: 'string',
 | 
			
		||||
        title: '编号'
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  };
 | 
			
		||||
  @ViewChild('st') private readonly st!: STComponent;
 | 
			
		||||
  type = 1;
 | 
			
		||||
  mode = 'year';
 | 
			
		||||
  date: any = null;
 | 
			
		||||
  defineDate = [];
 | 
			
		||||
  time: any = ['2022-01-01 00:00:00']
 | 
			
		||||
  dateFormat = 'yyyy-MM-dd';
 | 
			
		||||
  today = new Date();
 | 
			
		||||
 | 
			
		||||
  columns: STColumn[] = [
 | 
			
		||||
    { title: '编号', index: 'no' },
 | 
			
		||||
    { title: '调用次数', type: 'number', index: 'callNo' },
 | 
			
		||||
    { title: '头像', type: 'img', width: '50px', index: 'avatar' },
 | 
			
		||||
    { title: '时间', type: 'date', index: 'updatedAt' },
 | 
			
		||||
    {
 | 
			
		||||
      title: '',
 | 
			
		||||
      buttons: [
 | 
			
		||||
        // { text: '查看', click: (item: any) => `/form/${item.id}` },
 | 
			
		||||
        // { text: '编辑', type: 'static', component: FormEditComponent, click: 'reload' },
 | 
			
		||||
      ]
 | 
			
		||||
    }
 | 
			
		||||
    { title: '用户类型', index: 'networkTransporterName', className: 'text-center' },
 | 
			
		||||
    { title: '用户总数', index: 'zsl', className: 'text-center' },
 | 
			
		||||
    { title: '已认证数量', index: 'yingsje', className: 'text-center' },
 | 
			
		||||
    { title: '活跃用户数', index: 'cys', className: 'text-center' },
 | 
			
		||||
    { title: '未激活用户数', index: 'yingfyf', className: 'text-center' },
 | 
			
		||||
    { title: '沉默用户数', index: 'yl', className: 'text-center' },
 | 
			
		||||
    { title: '流失用户数', index: 'djd', className: 'text-center' },
 | 
			
		||||
    { title: '流失率', index: 'ysz', className: 'text-center' }
 | 
			
		||||
  ];
 | 
			
		||||
  /**
 | 
			
		||||
   * 查询参数
 | 
			
		||||
   */
 | 
			
		||||
   get reqParams() {
 | 
			
		||||
    if(this.mode === 'year') {
 | 
			
		||||
      this.type = 1
 | 
			
		||||
    } else if(this.mode === 'month') {
 | 
			
		||||
      this.type = 2
 | 
			
		||||
    } else if(this.mode === 'date') {
 | 
			
		||||
      this.type = 3
 | 
			
		||||
    } else {
 | 
			
		||||
      this.type = 4
 | 
			
		||||
    }
 | 
			
		||||
    let params: any = {
 | 
			
		||||
      time: this.time,
 | 
			
		||||
      type: this.type
 | 
			
		||||
     };
 | 
			
		||||
  
 | 
			
		||||
    delete params._$expand;
 | 
			
		||||
    return { ...params };
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  constructor(private http: _HttpClient, private modal: ModalHelper) { }
 | 
			
		||||
 | 
			
		||||
  constructor(public service: DataService, private datePipe: DatePipe) { }
 | 
			
		||||
  ngOnInit(): void { }
 | 
			
		||||
 | 
			
		||||
  add(): void {
 | 
			
		||||
    // this.modal
 | 
			
		||||
    //   .createStatic(FormEditComponent, { i: { id: 0 } })
 | 
			
		||||
    //   .subscribe(() => this.st.reload());
 | 
			
		||||
  changeData(){
 | 
			
		||||
    if(this.mode === 'year') {
 | 
			
		||||
      this.dateFormat = 'yyyy'
 | 
			
		||||
    } else if(this.mode === 'month') {
 | 
			
		||||
      this.dateFormat = 'yyyy-MM'
 | 
			
		||||
    } else {
 | 
			
		||||
      this.dateFormat = 'yyyy-MM-dd'
 | 
			
		||||
    } 
 | 
			
		||||
  }
 | 
			
		||||
  onChange(result: any) {
 | 
			
		||||
    if(this.mode === 'year') {
 | 
			
		||||
      this.time = [this.datePipe.transform(this.date, 'yyyy') + '-01-01 00:00:00']
 | 
			
		||||
    } else if(this.mode === 'month') {
 | 
			
		||||
      this.time = [this.datePipe.transform(this.date, 'yyyy-MM') + '-01 00:00:00']
 | 
			
		||||
    } else if(this.mode === 'date') {
 | 
			
		||||
      this.time = [this.datePipe.transform(this.date, 'yyyy-MM-dd') + ' 00:00:00']
 | 
			
		||||
    } else{
 | 
			
		||||
      this.time = [this.datePipe.transform(this.defineDate[0], 'yyyy-MM-dd') + '00:00:00', this.datePipe.transform(this.defineDate[1], 'yyyy-MM-dd') + ' 00:00:00']
 | 
			
		||||
    }
 | 
			
		||||
    this.st.reload({ ...this.reqParams });
 | 
			
		||||
  }
 | 
			
		||||
  disabledDate = (current: Date): boolean =>
 | 
			
		||||
    // Can not select days before today and today
 | 
			
		||||
    differenceInCalendarDays(current, this.today) > 0;
 | 
			
		||||
  exportFun(){
 | 
			
		||||
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user