diff --git a/auto_pt/urls.py b/auto_pt/urls.py index 337b4e8..ddc8242 100644 --- a/auto_pt/urls.py +++ b/auto_pt/urls.py @@ -23,6 +23,7 @@ urlpatterns = [ path(r'get_torrent_info_list', views.get_torrent_info_list, name='get_torrent_info_list'), path(r'site_status_api', views.site_status_api, name='site_status_api'), path(r'site_status', views.site_status, name='site_status'), + path(r'site_data_api', views.site_data_api, name='site_data_api'), path(r'downloading_status', views.downloading_status, name='downloading_status'), path(r'do_sql', views.do_sql, name='do_sql'), ] diff --git a/auto_pt/views.py b/auto_pt/views.py index d67e70f..941bb70 100644 --- a/auto_pt/views.py +++ b/auto_pt/views.py @@ -601,6 +601,7 @@ def get_status(ids: list = None): weeks = (now - my_site.time_join).days // 7 days = (now - my_site.time_join).days % 7 site_info = { + 'id': my_site.id, 'name': my_site.site.name, 'icon': my_site.site.logo, 'url': my_site.site.url, @@ -608,7 +609,7 @@ def get_status(ids: list = None): 'invite': my_site.invitation, 'sp_hour': my_site.sp_hour, 'sp_hour_full': '{:.2%}'.format( - float(my_site.sp_hour) / my_site.site.sp_full) if my_site.site.sp_full != 0 else 0, + float(my_site.sp_hour) / my_site.site.sp_full) if my_site.site.sp_full != 0 else '0%', 'seeding': my_site.seed, 'leeching': my_site.leech, 'weeks': f'{weeks}周 {days}天', @@ -623,11 +624,12 @@ def get_status(ids: list = None): 'uploaded': site_info.uploaded, 'downloaded': site_info.downloaded, 'seeding_size': site_info.seed_vol, + 'last_active': datetime.strftime(site_info.updated_at, '%Y年%m月%d日%H:%M:%S'), } status_list.append(site_info) # 按上传量排序 # status_list.sort(key=lambda x: x['mail'], reverse=False) - # status_list.sort(key=lambda x: x['mail'], reverse=True) + status_list.sort(key=lambda x: (x['mail'], x['uploaded']), reverse=True) # sorted(status_list, key=lambda x: x['uploaded']) # 随机乱序 # random.shuffle(status_list) @@ -653,7 +655,40 @@ def site_status(request): return render(request, 'auto_pt/status.html') -def user_data(request): - my_site_list = MySite.objects.all() - - return render(request, 'auto_pt/userdata.html') +def site_data_api(request): + site_id = request.GET.get('id') + logger.info(f'前端传来的站点ID:{site_id}') + my_site = MySite.objects.filter(id=site_id).first() + if not my_site: + return JsonResponse(data=CommonResponse.error( + msg='访问出错咯!' + ).to_dict(), safe=False) + site_info_list = my_site.sitestatus_set.order_by('pk').all() + site_status_list = [] + site = { + 'id': my_site.id, + 'name': my_site.site.name, + 'icon': my_site.site.logo, + 'url': my_site.site.url, + 'class': my_site.my_level, + 'seeding': my_site.seed, + 'leeching': my_site.leech, + 'last_active': datetime.strftime(my_site.updated_at, '%Y年%m月%d日%H:%M:%S'), + } + for site_info in site_info_list: + my_site_status = { + 'uploaded': site_info.uploaded, + 'downloaded': site_info.downloaded, + 'ratio': site_info.ratio, + 'seedingSize': site_info.seed_vol, + 'sp': site_info.my_sp, + 'bonus': site_info.my_bonus, + 'date': site_info.created_at.date() + } + site_status_list.append(my_site_status) + return JsonResponse(data=CommonResponse.success( + data={ + 'site': site, + 'site_status_list': site_status_list + } + ).to_dict(), safe=False) diff --git a/templates/auto_pt/status.html b/templates/auto_pt/status.html index d5f9807..d1ea460 100644 --- a/templates/auto_pt/status.html +++ b/templates/auto_pt/status.html @@ -28,6 +28,12 @@ .info-card .el-card__header a { color: orangered; + text-decoration: none; + } + + .info-card .el-card__header a:hover { + text-decoration: underline orangered; + color: dodgerblue; } .chart-button { @@ -102,6 +108,11 @@
+
+ 历史数据 + +
+
保种分享: 魔力/积分: + style="color: darkorange" title="魔力/积分">
- +
+
+ 更新时间: + +
@@ -159,8 +176,6 @@ v-if="showLegend"> Logo - - @@ -171,6 +186,19 @@ + + + + + + 取 消 + 确 定 + + {% include 'admin/includes/js-part.html' %} @@ -196,432 +224,552 @@ } const vm = new Vue({ - el: '#status', - data() { - return { - chart: null, - ptData: {}, - option: {}, - showList: true, - showChart: false, + el: '#status', + data() { + return { + chart: null, + ptData: {}, + option: {}, + showList: true, + showSiteChart: false, + begInvite: false, + showLogo: true, + showLegend: true, + shuffle: false, - begInvite: false, - showLogo: true, - showLegend: true, - shuffle: false, + } + }, + beforeMount() { - } - }, - beforeMount() { - - }, - mounted() { - {#this.chart = this.$refs.charts.chart#} - this.getData() - }, - watch: { - obj: { - option(newValue, oldValue) { - // option发生变化时自动重新渲染 - this.chart.setOption(newValue) + }, + mounted() { + {#this.chart = this.$refs.charts.chart#} + this.getData() + }, + watch: { + obj: { + option(newValue, oldValue) { + // option发生变化时自动重新渲染 + this.chart.setOption(newValue) + }, + // immediate: true, + deep: true, + } + }, + methods: { + showHistoryList(id) { + axios.get( + "{% url 'site_data_api' %}" + '?id=' + id + ).then(res => { + console.log('获取数据列表成功', res.data) + if (res.data.code === 0) { + console.log(res.data.data) + {#this.ptData = res.data.data#} + {#this.ptData = res.data.data#} + {#this.setPie()#} + {#this.setCard()#} + this.setLine(res.data.data) + } else { + this.loading = false + this.$message({ + type: 'warning', + message: '获取数据列表失败!' + }); + } + }).catch(res => { + console.log('获取数据列表失败', res) + this.$message({ + type: 'warning', + message: '获取数据列表失败!' + res + }); + }) }, - // immediate: true, - deep: true, - } - }, - methods: { - begInviteMode() { - this.begInvite = !this.begInvite - if (this.begInvite) { - this.showLegend = false - this.showLogo = false - } - - this.setPie() - }, - showLogoMode() { - this.showLogo = !this.showLogo - this.setPie() - }, - showLegendMode() { - this.showLegend = !this.showLegend - this.setPie() - }, - setChartOption(option) { - this.option = option - if (this.chart) { - this.chart.clear() - } - this.chart = this.$refs.charts.chart - this.chart.setOption(this.option) - window.addEventListener("resize", () => { - this.chart.resize() - }) - //this.$nextTick(() => {//自适应宽度 - // this.chart.resize(); - //}) - }, - shuffleList() { - this.shuffle = true - this.ptData.status_list.sort(() => { - return Math.random() > 0.5 ? -1 : 1 - }) - - this.showList ? this.setCard() : this.setPie() - }, - sortList() { - if (this.shuffle == false) { - return - } - this.shuffle = false - this.ptData.status_list.sort((a, b) => { - if (b.mail == a.mail) { - return b.uploaded - a.uploaded + begInviteMode() { + this.begInvite = !this.begInvite + if (this.begInvite) { + this.showLegend = false + this.showLogo = false } - return b.mail - a.mail - }) - this.showList ? this.setCard() : this.setPie() - }, - setCard() { - if (this.chart) { - this.chart.clear() + + this.setPie() } - //乱序 - {#this.shuffleList()#} - this.showList = true - - }, - setPie() { - let uploadedList = [] - let siteList = [] - let ptData = this.ptData - let begInvite = !this.begInvite - let status_list = ptData.status_list - this.showList = false - - //if (this.shuffle) { - // status_list.sort(shuffle) - //} - status_list.forEach((site, index) => { - uploadedList.push({ - 'value': site.uploaded, - 'path': 'uploaded/' + site.name, - 'name': site.name + , + showLogoMode() { + this.showLogo = !this.showLogo + this.setPie() + } + , + showLegendMode() { + this.showLegend = !this.showLegend + this.setPie() + } + , + setChartOption(option) { + this.option = option + if (this.chart) { + this.chart.clear() + } + this.chart.setOption(this.option) + window.addEventListener("resize", () => { + this.chart.resize() }) - //downloadedList.push({ - // 'value': site.downloaded, - // 'path': 'downloaded/' + site.name, - // 'name': site.name + //this.$nextTick(() => {//自适应宽度 + // this.chart.resize(); //}) - siteList.push({ - name: site.name, - icon: this.showLogo ? `image://${site.icon}` : 'roundRect' + } + , + shuffleList() { + this.shuffle = true + this.ptData.status_list.sort(() => { + return Math.random() > 0.5 ? -1 : 1 }) - }) - let option = { - title: { - text: 'PT站点数据', - subtext: `上传量:${renderSize(ptData.total_data.uploaded)}\n做种量:${renderSize(ptData.total_data.seeding_size)}\n下载量:${renderSize(ptData.total_data.downloaded)}\n分享率:${ptData.total_data.ratio}`, - subtextStyle: { - color: 'orange', - fontWeight: 'bold', - fontFamily: '黑体', - fontSize: '16', - lineHeight: 32, - }, - left: '5%', - top: '2%', - }, - tooltip: { - show: true, - formatter: function (params) { - return params.name + '\t' + renderSize(params.data.value) - }, - valueFormatter: function (value) { - return renderSize(value) + + this.showList ? this.setCard() : this.setPie() + } + , + sortList() { + //if (this.shuffle == false) { + // return + //} + this.shuffle = false + this.ptData.status_list.sort((a, b) => { + if (b.mail == a.mail) { + return b.uploaded - a.uploaded } - }, - color: [ - '#f66c73', - '#f68645', - '#7af6ad', - '#f4d55f', - '#488ff6', - '#0fba8d', - '#8a47dc', - '#d677f6', - ], - legend: { - show: this.showLegend, - {#type: 'scroll',#} - {#top: 'bottom',#} - right: '2%', - top: '5%', - bottom: '5%', - orient: 'vertical', - data: [], - }, - toolbox: { - show: true, - feature: { - mark: {show: true}, - {#dataView: {show: true, readOnly: false},#} - {#restore: {show: true},#} - saveAsImage: {show: true} - } - }, - series: [ - { - name: '站点数据', - type: 'pie', - top: '10%', - bottom: '10%', - radius: '55%', - {#visualDimension: 1,#} - center: ['45%', '50%'], - roseType: '', - label: { - show: true, - formatter: function (params) { - {#return params.name + ' \t ' + renderSize(params.data.value)#} - return `${begInvite ? params.name : ''} \t ${renderSize(params.data.value)}` + return b.mail - a.mail + }) + this.showList ? this.setCard() : this.setPie() + } + , + setCard() { + if (this.chart) { + this.chart.clear() + } + //乱序 + {#this.shuffleList()#} + this.showList = true + }, + setPie() { + let uploadedList = [] + let siteList = [] + let ptData = this.ptData + let begInvite = !this.begInvite + let status_list = ptData.status_list + this.showList = false + + //if (this.shuffle) { + // status_list.sort(shuffle) + //} + status_list.forEach((site, index) => { + uploadedList.push({ + 'value': site.uploaded, + 'path': 'uploaded/' + site.name, + 'name': site.name + }) + //downloadedList.push({ + // 'value': site.downloaded, + // 'path': 'downloaded/' + site.name, + // 'name': site.name + //}) + siteList.push({ + name: site.name, + icon: this.showLogo ? `image://${site.icon}` : 'roundRect' + }) + }) + let option = { + title: { + text: 'PT站点数据', + subtext: `上传量:${renderSize(ptData.total_data.uploaded)}\n做种量:${renderSize(ptData.total_data.seeding_size)}\n下载量:${renderSize(ptData.total_data.downloaded)}\n分享率:${ptData.total_data.ratio}`, + subtextStyle: { + color: 'orange', + fontWeight: 'bold', + fontFamily: '黑体', + fontSize: '16', + lineHeight: 32, + }, + left: '5%', + top: '2%', + }, + tooltip: { + show: true, + formatter: function (params) { + return params.name + '\t' + renderSize(params.data.value) + }, + valueFormatter: function (value) { + return renderSize(value) + } + }, + color: [ + '#f66c73', + '#f68645', + '#7af6ad', + '#f4d55f', + '#488ff6', + '#0fba8d', + '#8a47dc', + '#d677f6', + ], + legend: { + show: this.showLegend, + {#type: 'scroll',#} + {#top: 'bottom',#} + right: '2%', + top: '5%', + bottom: '5%', + orient: 'vertical', + data: [], + }, + toolbox: { + show: true, + feature: { + mark: {show: true}, + {#dataView: {show: true, readOnly: false},#} + {#restore: {show: true},#} + saveAsImage: {show: true} + } + }, + series: [ + { + name: '站点数据', + type: 'pie', + top: '10%', + bottom: '10%', + radius: '55%', + {#visualDimension: 1,#} + center: ['45%', '50%'], + roseType: '', + label: { + show: true, + formatter: function (params) { + {#return params.name + ' \t ' + renderSize(params.data.value)#} + return `${begInvite ? params.name : ''} \t ${renderSize(params.data.value)}` + }, + itemHeight: 12, + itemWidth: 20 }, - itemHeight: 12, - itemWidth: 20 - }, - itemStyle: { - borderRadius: 7 - }, - data: [ - {value: 40, name: 'rose 1'}, - {value: 38, name: 'rose 2'}, - {value: 32, name: 'rose 3'}, - {value: 30, name: 'rose 4'}, - ], - emphasis: { itemStyle: { - shadowBlur: 10, - shadowOffsetX: 0, - shadowColor: 'rgba(0, 0, 0, 0.5)' + borderRadius: 7 + }, + data: [ + {value: 40, name: 'rose 1'}, + {value: 38, name: 'rose 2'}, + {value: 32, name: 'rose 3'}, + {value: 30, name: 'rose 4'}, + ], + emphasis: { + itemStyle: { + shadowBlur: 10, + shadowOffsetX: 0, + shadowColor: 'rgba(0, 0, 0, 0.5)' + } } } - } - ] - } - option.series[0].data = uploadedList - option.legend.data = siteList - this.setChartOption(option) - }, - setTree() { - let ptData = this.ptData - let begInvite = !this.begInvite - let uploadedList = [] - let downloadedList = [] - ptData.status_list.forEach((site, index) => { - uploadedList.push({ - 'value': site.uploaded, - 'path': 'uploaded/' + site.name, - 'name': `${site.name}\t${renderSize(site.uploaded)}` + ] + } + option.series[0].data = uploadedList + option.legend.data = siteList + this.chart = this.$refs.charts.chart + this.setChartOption(option) + }, + setTree() { + let ptData = this.ptData + let begInvite = !this.begInvite + let uploadedList = [] + let downloadedList = [] + ptData.status_list.forEach((site, index) => { + uploadedList.push({ + 'value': site.uploaded, + 'path': 'uploaded/' + site.name, + 'name': `${site.name}\t${renderSize(site.uploaded)}` + }) + downloadedList.push({ + 'value': site.downloaded, + 'path': 'downloaded/' + site.name, + 'name': `${site.name}\t${renderSize(site.downloaded)}` + }) }) - downloadedList.push({ - 'value': site.downloaded, - 'path': 'downloaded/' + site.name, - 'name': `${site.name}\t${renderSize(site.downloaded)}` - }) - }) - let option = { - backgroundColor: '#130f2c', - title: { - text: 'PT站点数据', - subtext: `上传量:${renderSize(ptData.total_data.uploaded)}\t做种量:${renderSize(ptData.total_data.seeding_size)}\t下载量:${renderSize(ptData.total_data.downloaded)}\t分享率:${ptData.total_data.ratio}`, - subtextStyle: { - color: '#969696', - fontWeight: 'bold', - fontFamily: '黑体', - fontSize: '16', - lineHeight: 32, - }, - left: '10%', - }, - tooltip: { - show: true, - //formatter: function (params) { - // return params.name + '\t' + renderSize(params.data.value) - //} - valueFormatter: function (value) { - return renderSize(value) - } - }, - color: [ - '#f66c73', - '#f68645', - '#7af6ad', - '#f4d55f', - '#488ff6', - '#0fba8d', - '#8a47dc', - '#d677f6', - '#130f2c', - '#2f4155', - ], - toolbox: { - show: true, - feature: { - mark: {show: true}, - saveAsImage: {show: true} - } - }, - series: [ - { - type: 'treemap', - name: '数据汇总', - colorMappingBy: 'index', - {#colorSaturation: [0.9, 0.9],#} - label: { - show: true, - formatter: function (params) { - {#return params.name + '\t' + renderSize(params.data.value)#} - return `${begInvite ? params.name : ''} \t ${renderSize(params.data.value)}` - } + let option = { + backgroundColor: '#130f2c', + title: { + text: 'PT站点数据', + subtext: `上传量:${renderSize(ptData.total_data.uploaded)}\t做种量:${renderSize(ptData.total_data.seeding_size)}\t下载量:${renderSize(ptData.total_data.downloaded)}\t分享率:${ptData.total_data.ratio}`, + subtextStyle: { + color: '#969696', + fontWeight: 'bold', + fontFamily: '黑体', + fontSize: '16', + lineHeight: 32, }, - data: [ - { - name: '上传', - value: 0, - } - ] - } - ] - } - /** - console.log(this.treeOption.series[0].data) - this.treeOption.series[0].data.push({ + left: '10%', + }, + tooltip: { + show: true, + //formatter: function (params) { + // return params.name + '\t' + renderSize(params.data.value) + //} + valueFormatter: function (value) { + return renderSize(value) + } + }, + color: [ + '#f66c73', + '#f68645', + '#7af6ad', + '#f4d55f', + '#488ff6', + '#0fba8d', + '#8a47dc', + '#d677f6', + '#130f2c', + '#2f4155', + ], + toolbox: { + show: true, + feature: { + mark: {show: true}, + saveAsImage: {show: true} + } + }, + series: [ + { + type: 'treemap', + name: '数据汇总', + colorMappingBy: 'index', + {#colorSaturation: [0.9, 0.9],#} + label: { + show: true, + formatter: function (params) { + {#return params.name + '\t' + renderSize(params.data.value)#} + return `${begInvite ? params.name : ''} \t ${renderSize(params.data.value)}` + } + }, + data: [ + { + name: '上传', + value: 0, + } + ] + } + ] + } + /** + console.log(this.treeOption.series[0].data) + this.treeOption.series[0].data.push({ name: '总下载', value: ptData.total_data.downloaded, }) - let treeData = this.treeOption.series[0].data[0] - treeData.value = ptData.total_data.uploaded - treeData.children = dataList - **/ - option.series[0].data.push({ - name: `总上传\t${renderSize(ptData.total_data.uploaded)}`, - value: ptData.total_data.uploaded, - path: "uploaded", - children: uploadedList - }, { - name: `总下载\t${renderSize(ptData.total_data.downloaded)}`, - value: ptData.total_data.downloaded, - path: "downloaded", - children: downloadedList - }) - {#this.treeOption.series[0].data.push()#} - {#this.$refs.charts.chart.setOption(treeOption)#} - this.setChartOption(option) - }, - setBar() { - let option = { - title: { - text: 'PT数据聚合图' - }, - color: [ - 'skyblue', - 'orange' - ], - tooltip: { - trigger: 'axis', - show: true, - axisPointer: { - type: 'shadow' + let treeData = this.treeOption.series[0].data[0] + treeData.value = ptData.total_data.uploaded + treeData.children = dataList + **/ + option.series[0].data.push({ + name: `总上传\t${renderSize(ptData.total_data.uploaded)}`, + value: ptData.total_data.uploaded, + path: "uploaded", + children: uploadedList + }, { + name: `总下载\t${renderSize(ptData.total_data.downloaded)}`, + value: ptData.total_data.downloaded, + path: "downloaded", + children: downloadedList + }) + {#this.treeOption.series[0].data.push()#} + {#this.$refs.charts.chart.setOption(treeOption)#} + this.chart = this.$refs.charts.chart + this.setChartOption(option) + }, + setBar() { + let option = { + title: { + text: 'PT数据聚合图' }, - valueFormatter: function (value) { - return renderSize(value) + color: [ + 'skyblue', + 'orange' + ], + tooltip: { + trigger: 'axis', + show: true, + axisPointer: { + type: 'shadow' + }, + valueFormatter: function (value) { + return renderSize(value) + } + }, + legend: { + show: this.showLegend + }, + grid: { + left: '3%', + right: '4%', + bottom: '3%', + containLabel: true + }, + xAxis: { + type: 'category', + data: [] + }, + yAxis: { + type: 'value', + axisLabel: { + formatter: function (value, index) { + return renderSize(value); + } + }, + label: { + formatter: function (value, index) { + return renderSize(value); + } + }, + boundaryGap: [0, 0.01] + }, + series: [] + }; + let ptData = this.ptData + let uploadedList = [] + let downloadedList = [] + let siteList = [] + {#uploadedList.push(ptData.total_data.uploaded)#} + {#downloadedList.push(ptData.total_data.downloaded)#} + {#siteList.push('总量')#} + ptData.status_list.forEach((site, index) => { + downloadedList.push(site.downloaded) + uploadedList.push(site.uploaded) + siteList.push(site.name) + }) + let uploaded = { + name: '上传量', + type: 'bar', + stack: 'Ad', + data: uploadedList + } + let downloaded = { + name: '下载量', + type: 'bar', + stack: 'Ad', + data: downloadedList + } + option.series.push(downloaded, uploaded) + option.xAxis.data = siteList + this.chart = this.$refs.charts.chart + this.setChartOption(option) + }, + setLine(siteData) { + let site = siteData.site + let dataList = siteData.site_status_list + let uploadedList = [] + let downloadedList = [] + let bonusList = [] + let spList = [] + let ratioList = [] + let seedingSizeList = [] + let dateList = [] + dataList.forEach((info, index) => { + uploadedList.push(info.uploaded) + ratioList.push(info.ratio) + seedingSizeList.push(info.seedingSize) + downloadedList.push(info.downloaded) + spList.push(info.sp) + bonusList.push(info.bonus) + dateList.push(info.date) + }) + let option = { + title: { + text: 'Stacked Line' + }, + tooltip: { + trigger: 'axis' + }, + legend: { + show: true, + }, + grid: { + left: '3%', + right: '4%', + bottom: '3%', + containLabel: true + }, + toolbox: { + feature: { + saveAsImage: {} + } + }, + xAxis: { + type: 'category', + boundaryGap: false, + data: dateList + }, + yAxis: { + type: 'value' + }, + series: [ + { + name: '上传量', + type: 'line', + {#stack: 'Total',#} + data: uploadedList + }, + { + name: '做种量', + type: 'line', + {#stack: 'Total',#} + data: seedingSizeList + }, + { + name: '下载量', + type: 'line', + {#stack: 'Total',#} + data: downloadedList + }, + { + name: '魔力值', + type: 'line', + {#stack: 'Total',#} + data: spList + }, + { + name: '积分', + type: 'line', + {#stack: 'Total',#} + data: bonusList + } + ] + }; + this.showSiteChart = true + this.chart = this.$refs.site_info_charts + this.setChartOption(option) + + }, + getData() { + axios.get( + "{% url "site_status_api" %}" + ).then(res => { + console.log('获取数据列表成功', res.data) + if (res.data.code === 0) { + console.log(res.data.data) + {#this.ptData = res.data.data#} + this.ptData = res.data.data + {#this.setPie()#} + this.setCard() + } else { + this.loading = false + this.$message({ + type: 'warning', + message: '获取数据列表失败!' + }); } - }, - legend: { - show: this.showLegend - }, - grid: { - left: '3%', - right: '4%', - bottom: '3%', - containLabel: true - }, - xAxis: { - type: 'category', - data: [] - }, - yAxis: { - type: 'value', - axisLabel: { - formatter: function (value, index) { - return renderSize(value); - } - }, - label: { - formatter: function (value, index) { - return renderSize(value); - } - }, - boundaryGap: [0, 0.01] - }, - series: [] - }; - let ptData = this.ptData - let uploadedList = [] - let downloadedList = [] - let siteList = [] - {#uploadedList.push(ptData.total_data.uploaded)#} - {#downloadedList.push(ptData.total_data.downloaded)#} - {#siteList.push('总量')#} - ptData.status_list.forEach((site, index) => { - downloadedList.push(site.downloaded) - uploadedList.push(site.uploaded) - siteList.push(site.name) - }) - let uploaded = { - name: '上传量', - type: 'bar', - stack: 'Ad', - data: uploadedList - } - let downloaded = { - name: '下载量', - type: 'bar', - stack: 'Ad', - data: downloadedList - } - option.series.push(downloaded, uploaded) - option.xAxis.data = siteList - this.setChartOption(option) - }, - getData() { - axios.get( - "{% url "site_status_api" %}" - ).then(res => { - console.log('获取数据列表成功', res.data) - if (res.data.code === 0) { - console.log(res.data.data) - {#this.ptData = res.data.data#} - this.ptData = res.data.data - {#this.setPie()#} - this.setCard() - } else { - this.loading = false + }).catch(res => { + console.log('获取数据列表失败', res) this.$message({ type: 'warning', - message: '获取数据列表失败!' + message: '获取数据列表失败!' + res }); - } - }).catch(res => { - console.log('获取数据列表失败', res) - this.$message({ - type: 'warning', - message: '获取数据列表失败!' + res - }); - }) + }) + } } - } - }); + }) + ; \ No newline at end of file