| | |
| | | </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); |
| | | } |
| | | } |