|
1 | 1 | <template> |
2 | 2 | <div> |
3 | 3 | <BaseReport |
4 | | - :title="title" |
| 4 | + :title="reportTitle" |
5 | 5 | :nav="nav" |
6 | 6 | :name="name" |
7 | 7 | :charts="charts" |
|
10 | 10 | :display-mode.sync="displayMode" |
11 | 11 | v-bind="$attrs" |
12 | 12 | > |
13 | | - <div class="charts-grid"> |
| 13 | + <template #toolbar> |
14 | 14 | <ReportToolbar |
15 | 15 | :filters="currentFilters" |
16 | 16 | class="chart-container full-width report-toolbar-wrap" |
17 | 17 | @filter-change="handleToolbarFilterChange" |
18 | 18 | /> |
19 | | - <template v-if="showChart"> |
20 | | - <div class="chart-container full-width"> |
| 19 | + </template> |
| 20 | + <template #default> |
| 21 | + <div v-if="showChart" class="charts-grid"> |
| 22 | + <div class="chart-container full-width" data-report-type="chart" data-report-name="Overview"> |
21 | 23 | <div class="chart-container-title"> |
22 | 24 | <div class="chart-container-title-text">{{ $t('Overview') }}</div> |
23 | 25 | <SummaryCountCard |
|
26 | 28 | </div> |
27 | 29 | </div> |
28 | 30 |
|
29 | | - <div class="chart-container"> |
| 31 | + <div class="chart-container" data-report-type="chart" data-report-name="AccountCreationSourceDistribution"> |
30 | 32 | <div class="chart-container-title"> |
31 | 33 | <div class="chart-container-title-text">{{ $t('AccountCreationSourceDistribution') }}</div> |
32 | 34 | <div class="chart"> |
|
37 | 39 | </div> |
38 | 40 | </div> |
39 | 41 | </div> |
40 | | - <div class="chart-container"> |
| 42 | + <div class="chart-container" data-report-type="chart" data-report-name="AccountConnectivityStatusDistribution"> |
41 | 43 | <div class="chart-container-title"> |
42 | 44 | <div class="chart-container-title-text">{{ $t('AccountConnectivityStatusDistribution') }}</div> |
43 | 45 | <div class="chart"> |
|
48 | 50 | </div> |
49 | 51 | </div> |
50 | 52 | </div> |
51 | | - <div class="chart-container full-width"> |
| 53 | + <div class="chart-container full-width" data-report-type="chart" data-report-name="AccountPasswordChangeTrends"> |
52 | 54 | <div class="chart-container-title"> |
53 | 55 | <div class="chart-container-title-text">{{ $t('AccountPasswordChangeTrends') }}</div> |
54 | 56 | <div class="chart"> |
|
59 | 61 | </div> |
60 | 62 | </div> |
61 | 63 | </div> |
62 | | - <div class="chart-container"> |
| 64 | + <div class="chart-container" data-report-type="chart" data-report-name="RankByNumberOfAssetAccounts"> |
63 | 65 | <div class="chart-container-title"> |
64 | 66 | <div class="chart-container-title-text">{{ $t('RankByNumberOfAssetAccounts') }}</div> |
65 | 67 | <RankTable :config="config.top10_asset_accounts" /> |
66 | 68 | </div> |
67 | 69 | </div> |
68 | | - <div class="chart-container"> |
| 70 | + <div class="chart-container" data-report-type="chart" data-report-name="AccountAndPasswordChangeRank"> |
69 | 71 | <div class="chart-container-title"> |
70 | 72 | <div class="chart-container-title-text">{{ $t('AccountAndPasswordChangeRank') }}</div> |
71 | 73 | <RankTable :config="config.top10_version_accounts" /> |
72 | 74 | </div> |
73 | 75 | </div> |
74 | | - </template> |
75 | | - |
| 76 | + </div> |
| 77 | + </template> |
| 78 | + <template #table> |
76 | 79 | <div v-if="showTable" class="full-width"> |
77 | 80 | <div v-if="Array.isArray(tableData)" class="report-tables full-width"> |
78 | | - <div v-if="tableData.length" class="report-table-wrap full-width"> |
79 | | - <el-card class="report-card" shadow="hover"> |
80 | | - <div v-if="tableData[0].name" class="chart-container-title"> |
81 | | - <div class="chart-container-title-text">{{ tableData[0].name }}</div> |
82 | | - </div> |
83 | | - <div class="report-card-body"> |
84 | | - <el-table :data="tableData[0].rows" border> |
85 | | - <el-table-column |
86 | | - v-for="column in tableData[0].columns" |
87 | | - :key="column.key" |
88 | | - :label="column.label" |
89 | | - :prop="column.key" |
90 | | - min-width="140" |
91 | | - /> |
92 | | - </el-table> |
| 81 | + <template v-for="(t, idx) in tableData"> |
| 82 | + <div v-if="rankingTableConfigs[t.name]" :key="'rank-' + idx" class="report-table-wrap chart-container full-width" data-report-type="table" :data-report-name="t.name"> |
| 83 | + <div class="chart-container-title"> |
| 84 | + <div class="chart-container-title-text">{{ t.name }}</div> |
93 | 85 | </div> |
94 | | - </el-card> |
95 | | - </div> |
96 | | - <div v-for="(t, idx) in tableData.slice(1)" :key="t.name || idx" class="report-table-wrap full-width"> |
97 | | - <el-card class="report-card" shadow="hover"> |
| 86 | + <RankTable :config="rankingTableConfigs[t.name]" /> |
| 87 | + </div> |
| 88 | + <div v-else :key="t.name || idx" class="report-table-wrap chart-container full-width" data-report-type="table" :data-report-name="t.name"> |
98 | 89 | <div v-if="t.name" class="chart-container-title"> |
99 | 90 | <div class="chart-container-title-text">{{ t.name }}</div> |
100 | 91 | </div> |
|
109 | 100 | /> |
110 | 101 | </el-table> |
111 | 102 | </div> |
112 | | - </el-card> |
113 | | - </div> |
| 103 | + </div> |
| 104 | + </template> |
114 | 105 | </div> |
115 | 106 | <div v-else> |
116 | 107 | <el-table :data="tableData.rows" border> |
|
124 | 115 | </el-table> |
125 | 116 | </div> |
126 | 117 | </div> |
127 | | - </div> |
| 118 | + </template> |
128 | 119 | </BaseReport> |
129 | 120 | </div> |
130 | 121 | </template> |
@@ -174,7 +165,7 @@ export default { |
174 | 165 | { name: 'RankByNumberOfAssetAccounts', title: this.$t('RankByNumberOfAssetAccounts') }, |
175 | 166 | { name: 'AccountAndPasswordChangeRank', title: this.$t('AccountAndPasswordChangeRank') } |
176 | 167 | ], |
177 | | - days: '30', |
| 168 | + days: localStorage.getItem(this.name) || '7', |
178 | 169 | account_stats: { |
179 | 170 | 'total': 0, |
180 | 171 | 'active': 0, |
@@ -221,6 +212,12 @@ export default { |
221 | 212 | } |
222 | 213 | }, |
223 | 214 | computed: { |
| 215 | + rankingTableConfigs() { |
| 216 | + return { |
| 217 | + [this.$t('RankByNumberOfAssetAccounts')]: this.config.top10_asset_accounts, |
| 218 | + [this.$t('AccountAndPasswordChangeRank')]: this.config.top10_version_accounts |
| 219 | + } |
| 220 | + }, |
224 | 221 | totalData() { |
225 | 222 | return [ |
226 | 223 | { |
|
0 commit comments