|  |  |  | 
|---|
|  |  |  | </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"> | 
|---|
|  |  |  | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | const offlineData = []; | 
|---|
|  |  |  | for (let i = 0; i < 10; i += 1) { | 
|---|
|  |  |  | offlineData.push({ | 
|---|
|  |  |  | name: `门店${i}`, | 
|---|
|  |  |  | cvr: Math.ceil(Math.random() * 9) / 10 | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | const offlineChartData = []; | 
|---|
|  |  |  | for (let i = 0; i < 20; i += 1) { | 
|---|
|  |  |  | offlineChartData.push({ | 
|---|
|  |  |  | x: new Date().getTime() + 1000 * 60 * 30 * i, | 
|---|
|  |  |  | y1: Math.floor(Math.random() * 100) + 10, | 
|---|
|  |  |  | y2: Math.floor(Math.random() * 100) + 10 | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | const radarOriginData = [ | 
|---|
|  |  |  | { | 
|---|
|  |  |  | name: '个人', | 
|---|
|  |  |  | 
|---|
|  |  |  | visitData: visitData, | 
|---|
|  |  |  | visitData2: visitData2, | 
|---|
|  |  |  |  | 
|---|
|  |  |  | offlineData: offlineData, | 
|---|
|  |  |  | offlineChartData: offlineChartData, | 
|---|
|  |  |  | radarOriginData: radarOriginData, | 
|---|
|  |  |  | radarData: radarData, | 
|---|
|  |  |  | searchData: searchData | 
|---|
|  |  |  | }; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | res.offlineData.forEach((item: any) => { | 
|---|
|  |  |  | item.chart = Object.assign([], res.offlineChartData); | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | this.data = res; | 
|---|
|  |  |  | this.loading = false; | 
|---|
|  |  |  | this.changeSaleType(); | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | handlePieValueFormat(value: any) { | 
|---|
|  |  |  | return value + "次"; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | _activeTab = 0; | 
|---|
|  |  |  | _tabChange(value: any) { | 
|---|
|  |  |  | console.log('tab', this._activeTab, value); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|