From 6a6d3bbb3748c12c2dc94beec05d21d82d0faba1 Mon Sep 17 00:00:00 2001 From: fengxiang <110431245@qq.com> Date: Tue, 13 Mar 2018 14:43:01 +0800 Subject: [PATCH] 数据报表 --- src/app/routes/dashboard/workplace/workplace.component.html | 313 +++++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 306 insertions(+), 7 deletions(-) diff --git a/src/app/routes/dashboard/workplace/workplace.component.html b/src/app/routes/dashboard/workplace/workplace.component.html index 1e15215..e74510f 100644 --- a/src/app/routes/dashboard/workplace/workplace.component.html +++ b/src/app/routes/dashboard/workplace/workplace.component.html @@ -2,7 +2,6 @@ <ng-template #breadcrumb> <nz-breadcrumb> <nz-breadcrumb-item><a [routerLink]="['/']">������</a></nz-breadcrumb-item> - <nz-breadcrumb-item><a [routerLink]="['/']">Dashboard</a></nz-breadcrumb-item> <nz-breadcrumb-item>���������</nz-breadcrumb-item> </nz-breadcrumb> </ng-template> @@ -10,28 +9,328 @@ <div class="page-header"> <div class="avatar"><nz-avatar nzSize="large" nzSrc="https://gw.alipayobjects.com/zos/rmsportal/lctvVCLfRpYCkYxAsiVQ.png"></nz-avatar></div> <div class="desc"> - <div class="desc-title">���������������������������������</div> - <p>��������� | ���������������������������������������������������������������</p> + <div class="desc-title">���������admin���</div> + <p>��������������� | ������������������������������������������������������������</p> </div> </div> </ng-template> <ng-template #extra> <div class="page-extra"> <div> - <p>���������</p> - <p>56</p> + <p>������</p> + <p>8<span> / 24</span></p> </div> <div> - <p>���������������</p> - <p>8<span> / 24</span></p> + <p>���������</p> + <p>20</p> + </div> + <!-- + <div> + <p>���������</p> + <p>1532</p> </div> <div> <p>������������</p> <p>2,223</p> </div> + --> </div> </ng-template> </pro-header> + +<div nz-row [nzGutter]="24" class="pt-lg" style="margin-top: -24px"> + <div nz-col nzXs="24" nzSm="12" nzMd="12" nzLg="6"> + <chart-card + [title]="'���������������'" + total="{{totalDeviceCount}}" + contentHeight="46px" + [action]="action1" + [footer]="footer1"> + <ng-template #action1> + <nz-tooltip [nzTitle]="'���������������������������������������������������������'"> + <nz-icon nz-tooltip nzType="info-circle-o"></nz-icon> + </nz-tooltip> + </ng-template> + <!-- + <trend flag="up" style="display:block; margin-top:2px;">���������<span class="pl-sm">12%</span></trend> + <trend flag="down">���������<span class="pl-sm">11%</span></trend> + --> + <mini-bar height="46" [data]="totalDeviceCountList"></mini-bar> + <ng-template #footer1> + <p class="text-truncate">������������������:<span class="ml-sm">{{avgDeviceCount}}</span></p> + </ng-template> + </chart-card> + </div> + <div nz-col nzXs="24" nzSm="12" nzMd="12" nzLg="6"> + <chart-card [title]="'������������������'" + total="78%" + contentHeight="46px" + [action]="action2" + [footer]="footer2"> + <ng-template #action2> + <nz-tooltip [nzTitle]="'������������������������������������������������������'"> + <nz-icon nz-tooltip nzType="info-circle-o"></nz-icon> + </nz-tooltip> + </ng-template> + <mini-progress + height="46" + percent="78" + strokeWidth="8" + target="80" + color="#13C2C2"></mini-progress> + <ng-template #footer2> + <div class="d-flex justify-content-between"> + <trend flag="up">���������<span class="pl-sm">8%</span></trend> + <trend flag="down">���������<span class="pl-sm">2%</span></trend> + </div> + </ng-template> + </chart-card> + </div> + <div nz-col nzXs="24" nzSm="12" nzMd="12" nzLg="6"> + <chart-card [title]="'������������'" + total="8,848" + contentHeight="46px" + [action]="action3" + [footer]="footer3"> + <ng-template #action3> + <nz-tooltip [nzTitle]="'���������������������������������������������'"> + <nz-icon nz-tooltip nzType="info-circle-o"></nz-icon> + </nz-tooltip> + </ng-template> + <mini-area + color="#975FE4" + height="46" + [data]="data.visitData"></mini-area> + <ng-template #footer3> + <p class="text-truncate">������������������:<span class="ml-sm">1,234</span></p> + </ng-template> + </chart-card> + </div> + <div nz-col nzXs="24" nzSm="12" nzMd="12" nzLg="6"> + <chart-card [title]="'���������������'" + total="6,560" + contentHeight="46px" + [action]="action4" + [footer]="footer4"> + <ng-template #action4> + <nz-tooltip [nzTitle]="'������������������������������������������������'"> + <nz-icon nz-tooltip nzType="info-circle-o"></nz-icon> + </nz-tooltip> + </ng-template> + <mini-bar + height="46" + color="orange" + [data]="data.visitData"></mini-bar> + <ng-template #footer4> + <p class="text-truncate">������������������:<span class="ml-sm">220</span></p> + </ng-template> + </chart-card> + </div> +</div> +<nz-card [nzLoading]="loading" [nzBordered]="false" nzNoPadding class="sales-card"> + <ng-template #body> + <nz-tabset> + <nz-tab> + <ng-template #nzTabHeading>���������</ng-template> + <div nz-row> + <div nz-col nzXs="24" nzSm="24" nzMd="12" nzLg="16"> + <div class="bar"> + <bar + height="295" + [title]="'���������������'" + [data]="data.salesData"></bar> + </div> + </div> + <div nz-col nzXs="24" nzSm="24" nzMd="12" nzLg="8"> + <div class="rank-list"> + <h4 class="rank-title">���������������������</h4> + <ul> + <li *ngFor="let i of rankingListData; let idx = index"> + <div> + <span class="icon" [ngClass]="{'active': idx < 3}">{{idx+1}}</span> + {{i.title}} + </div> + <span>{{i.total | number: '3.0'}}</span> + </li> + </ul> + </div> + </div> + </div> + </nz-tab> + <nz-tab> + <ng-template #nzTabHeading>���������</ng-template> + <div nz-row> + <div nz-col nzXs="24" nzSm="24" nzMd="12" nzLg="16"> + <div class="bar"> + <bar + height="295" + [title]="'���������������'" + [data]="data.salesData"></bar> + </div> + </div> + <div nz-col nzXs="24" nzSm="24" nzMd="12" nzLg="8"> + <div class="rank-list"> + <h4 class="rank-title">���������������������</h4> + <ul> + <li *ngFor="let i of rankingListData; let idx = index"> + <div> + <span class="icon" [ngClass]="{'active': idx < 3}">{{idx+1}}</span> + {{i.title}} + </div> + <span>{{i.total | number: '3.0'}}</span> + </li> + </ul> + </div> + </div> + </div> + </nz-tab> + <ng-template #nzTabBarExtraContent> + <div class="sales-extra-wrap"> + <div class="sales-extra"> + <a (click)="setDate('today')">������</a> + <a (click)="setDate('week')">������</a> + <a (click)="setDate('month')">������</a> + <a (click)="setDate('year')">������</a> + </div> + <nz-datepicker style="width:120px" class="mr-md" [(ngModel)]="q.start" [nzFormat]="'YYYY-MM-DD'" [nzPlaceHolder]="'������������'"></nz-datepicker> + <nz-datepicker style="width:120px" [(ngModel)]="q.end" [nzFormat]="'YYYY-MM-DD'" [nzPlaceHolder]="'������������'"></nz-datepicker> + </div> + </ng-template> + </nz-tabset> + </ng-template> +</nz-card> +<div nz-row [nzGutter]="24"> + <div nz-col nzXs="24" nzSm="24" nzMd="24" nzLg="12"> + <nz-card [nzLoading]="loading" [nzBordered]="false" nzTitle="������������������"> + <ng-template #extra> + <nz-dropdown> + <nz-icon class="icon-group" nz-dropdown nzType="ellipsis"></nz-icon> + <ul nz-menu> + <li nz-menu-item>���������</li> + <li nz-menu-item>���������</li> + </ul> + </nz-dropdown> + </ng-template> + <ng-template #body> + <div nz-row [nzGutter]="64"> + <div nz-col nzXs="24" nzSm="12" class="mb-md"> + <number-info total="12,321" subTotal="17.1" status="up" [subTitle]="subTitle"> + <ng-template #subTitle> + ��������������� + <nz-tooltip [nzTitle]="'������������'"> + <nz-icon nz-tooltip nzType="info-circle-o" class="ml-sm"></nz-icon> + </nz-tooltip> + </ng-template> + </number-info> + <mini-area [line]="true" height="45" [data]="data.visitData2"></mini-area> + </div> + <div nz-col nzXs="24" nzSm="12" class="mb-md"> + <number-info subTitle="������������������" total="2.7" subTotal="26.2" status="down"></number-info> + <mini-area [line]="true" height="45" [data]="data.visitData2"></mini-area> + </div> + </div> + <nz-table #keyTable [nzDataSource]="data.searchData" [nzPageSize]="5" nzSize="small"> + <thead nz-thead> + <tr> + <th nz-th><span>������</span></th> + <th nz-th><span>���������������</span></th> + <th nz-th class="text-right"> + <span>���������</span> + <nz-table-sort (nzValueChange)="sort('count',$event)"></nz-table-sort> + </th> + <th nz-th class="text-right"> + <span>���������</span> + <nz-table-sort (nzValueChange)="sort('range',$event)"></nz-table-sort> + </th> + </tr> + </thead> + <tbody nz-tbody> + <tr nz-tbody-tr *ngFor="let i of keyTable.data"> + <td nz-td>{{i.index}}</td> + <td nz-td><a (click)="msg.success(i.keyword)">{{i.keyword}}</a></td> + <td nz-td class="text-right">{{i.count}}</td> + <td nz-td class="text-right"> + <trend [flag]="i.status === 1 ? 'down' : 'up'"> + <span>{{i.range}}%</span> + </trend> + </td> + </tr> + </tbody> + </nz-table> + </ng-template> + </nz-card> + </div> + <div nz-col nzXs="24" nzSm="24" nzMd="24" nzLg="12"> + <nz-card [nzLoading]="loading" [nzBordered]="false" nzTitle="���������������������" [nzBodyStyle]="{'padding.px': 24}" class="sales-card" style="min-height: 482px;"> + <ng-template #extra> + <div class="sales-card-extra"> + <nz-dropdown> + <nz-icon class="icon-group" nz-dropdown nzType="ellipsis"></nz-icon> + <ul nz-menu> + <li nz-menu-item>���������</li> + <li nz-menu-item>���������</li> + </ul> + </nz-dropdown> + <div class="sales-type-radio"> + <nz-radio-group [(ngModel)]="salesType" (ngModelChange)="changeSaleType()" [nzSize]="'large'"> + <label nz-radio-button [nzValue]="'all'"><span>������������</span></label> + <label nz-radio-button [nzValue]="'online'"><span>������</span></label> + <label nz-radio-button [nzValue]="'offline'"><span>������</span></label> + </nz-radio-group> + </div> + </div> + </ng-template> + <ng-template #body> + <h4 class="margin:8px 0 32px 0;">���������</h4> + <pie + [hasLegend]="true" + subTitle="���������" + [height]="248" + [lineWidth]="4" + [total]="salesTotal" + [data]="salesPieData" + [valueFormat]="handlePieValueFormat"> + </pie> + </ng-template> + </nz-card> + </div> +</div> +<nz-card [nzLoading]="loading" [nzBordered]="false" [nzBodyStyle]="{'padding': '0 0 32px'}" class="offline-card mt-lg"> + <ng-template #body> + <nz-tabset [(nzSelectedIndex)]="_activeTab" (nzSelectChange)="_tabChange($event)"> + <nz-tab *ngFor="let tab of data.offlineData; let i = index;"> + <ng-template #nzTabHeading> + <div nz-row [nzGutter]="8" style="width: 138px; margin: 8px 0"> + <div nz-col [nzSpan]="12"> + <number-info + [title]="tab.name" + subTitle="���������" + gap="2" + [total]="(tab.cvr * 100) + '%'" + [theme]="i !== _activeTab && 'light'"></number-info> + </div> + <div nz-col [nzSpan]="12" style="padding-top: 36px"> + <pie + [animate]="false" + [color]="i !== _activeTab && '#BDE4FF'" + [inner]="0.55" + [tooltip]="false" + [padding]="[0, 0, 0, 0]" + [percent]="tab.cvr * 100" + [height]="64"> + </pie> + </div> + </div> + </ng-template> + <div class="px-lg"> + <timeline [data]="tab.chart" + [titleMap]="{ y1: '���������', y2: '������������' }"></timeline> + </div> + </nz-tab> + </nz-tabset> + </ng-template> +</nz-card> + <div nz-row [nzGutter]="24"> <div nz-col nzXs="24" nzSm="24" nzMd="16"> <nz-card nzTitle="������������������" [nzBordered]="false" [nzLoading]="loading" nzNoPadding class="mb-lg project-list"> -- Gitblit v1.8.0