1.html:
1 <ul class="search-content"> 2 <li> 3 <span class="name" (click)="selectorChange('扩样数据', true)">扩样数据</span> 4 </li> 5 <li> 6 <span class="name" (click)="selectorChange('原始数据', false)">原始数据</span> 7 </li> 8 </ul>
1.ts:
import { CommonService } from './../../service/common.service'; dataType = this.commonService.expandName; isShowList: boolean = false; selectorChange(item, isExpand) { if (this.commonService.expand !== isExpand) { this.isShowList = false; this.commonService.expandName = item; this.dataType = item; this.commonService.expand = isExpand; this.commonService.expandType.next(isExpand); } }
common.service.ts:
import { of, Subject, Subscription } from 'rxjs'; expandType = new Subject(); expand: boolean = true; expandName: string = '扩样数据'; // 数据扩样处理 HandleData(data) { if (this.expand) { if (typeof data === 'number') { // 值 data = Math.round((data / 0.73) / 0.9165); } else if (!(data instanceof Array)) { // 对象 if (data['subscriberCounts']) { data['subscriberCounts'].forEach((item, index) => { if (item['countList']) { item['countList'].forEach((item1, index1) => { data['subscriberCounts'][index]['countList'][index1] = Math.round((item1 / 0.73) / 0.9165); }); } }); } else if (data['countList']) { data['countList'].forEach((item, index) => { data['countList'][index] = Math.round((item / 0.73) / 0.9165); }); } else if (data['populations']) { data['populations'].forEach((item, index) => { if (item['countList']) { item['countList'].forEach((item1, index1) => { data['populations'][index]['countList'][index1] = Math.round((item1 / 0.73) / 0.9165); }); } }); } } else { // 数组 data.forEach(item => { if (item.subscriberCount) { item.subscriberCount = Math.round((item.subscriberCount / 0.73) / 0.9165); } else if (item['currentCount']) { item.currentCount = Math.round((item.currentCount / 0.73) / 0.9165); }else { item.populations = Math.round((item.populations / 0.73) / 0.9165); } }); } } return data; }