256 lines
6.4 KiB
Vue
256 lines
6.4 KiB
Vue
<template>
|
||
<div>
|
||
<t-row :gutter="[16, 16]">
|
||
<t-col :xs="12" :xl="6">
|
||
<t-card title="空间使用情况" subtitle="(MB)" class="dashboard-chart-card" :bordered="false">
|
||
<div
|
||
id="countContainer"
|
||
ref="countContainer"
|
||
style="width: 326px;height: 326px;margin: 0 auto"
|
||
></div>
|
||
<div>空间总量:{{info.totalSpaceInMB}} MB</div>
|
||
<div>已使用:{{info.usedSpaceInMB}} MB</div>
|
||
</t-card>
|
||
</t-col>
|
||
<t-col :xs="12" :xl="6">
|
||
<t-card title="流量统计" subtitle="(GB)" class="dashboard-chart-card" :bordered="false">
|
||
<div
|
||
id="LLContainer"
|
||
ref="LLContainer"
|
||
style="width: 326px;height: 326px;margin: 0 auto"
|
||
></div>
|
||
<div>流量总量:{{info.totalSpaceInMB}} MB</div>
|
||
<div>已使用:{{info.usedSpaceInMB}} MB</div>
|
||
</t-card>
|
||
</t-col>
|
||
</t-row>
|
||
<div style="margin-top: 15px;">
|
||
<t-card :bordered="false" style="padding: 20px">
|
||
<t-row :gutter="[16, 16]">
|
||
<t-col :span="5" :offset="3">
|
||
<t-form :labelWidth="150">
|
||
<t-form-item label="绑定主体">
|
||
<t-input size="large" :disabled="true" v-model="association.association_name"/>
|
||
</t-form-item>
|
||
<t-form-item label="微信支付商户号">
|
||
<t-input size="large" placeholder="请输入微信支付商户号" v-model="pay.mchID"/>
|
||
</t-form-item>
|
||
<t-form-item label="微信支付密钥V3">
|
||
<t-input size="large" placeholder="请输入微信支付密钥V3" v-model="pay.appkey"/>
|
||
</t-form-item>
|
||
<t-form-item label="证书序列号">
|
||
<t-input size="large" placeholder="请输入证书序列号" v-model="pay.serial"/>
|
||
</t-form-item>
|
||
</t-form>
|
||
<div style="text-align: center;margin-top: 30px">
|
||
<t-button theme="primary" style="width: 200px">保存</t-button>
|
||
</div>
|
||
</t-col>
|
||
</t-row>
|
||
</t-card>
|
||
</div>
|
||
</div>
|
||
</template>
|
||
<script setup lang="ts">
|
||
import store from '@/store';
|
||
import * as echarts from "echarts/core";
|
||
import {LineChart, PieChart} from "echarts/charts";
|
||
import {CanvasRenderer} from "echarts/renderers";
|
||
import { TooltipComponent, LegendComponent } from 'echarts/components';
|
||
echarts.use([TooltipComponent, LegendComponent, PieChart, LineChart, CanvasRenderer]);
|
||
|
||
export default {
|
||
data() {
|
||
return {
|
||
subject: '',
|
||
association: '',
|
||
pay: {
|
||
mchID: '',
|
||
appkey: '',
|
||
serial: '',
|
||
},
|
||
info:{},
|
||
One_data: {
|
||
tooltip: {
|
||
show: true,
|
||
trigger: 'axis',
|
||
position: null,
|
||
},
|
||
series: [
|
||
{
|
||
name: '空间使用情况',
|
||
type: 'pie',
|
||
radius: ['35%', '60%'],
|
||
avoidLabelOverlap: false,
|
||
selectedMode: false,
|
||
hoverAnimation: true,
|
||
silent: false,
|
||
itemStyle: {
|
||
borderColor: "#666666",
|
||
borderWidth: 1,
|
||
},
|
||
label: {
|
||
show: true,
|
||
formatter: '{value|{d}%} \n {name|{b}剩余}',
|
||
rich: {
|
||
value: {
|
||
color: "#000000",
|
||
fontSize: 28,
|
||
fontWeight: 'normal',
|
||
lineHeight: 46,
|
||
},
|
||
name: {
|
||
color: '#909399',
|
||
fontSize: 12,
|
||
lineHeight: 14,
|
||
},
|
||
},
|
||
},
|
||
data: [],
|
||
},
|
||
],
|
||
}
|
||
};
|
||
},
|
||
mounted() {
|
||
if (typeof (store.state.user.association) == 'object') {
|
||
this.association = store.state.user.association;
|
||
} else {
|
||
this.association = JSON.parse(store.state.user.association);
|
||
}
|
||
this.getInfo();
|
||
|
||
},
|
||
|
||
methods: {
|
||
getInfo(){
|
||
this.$request
|
||
.post('/index/fileSize')
|
||
.then((res) => {
|
||
console.log(res);
|
||
this.info=res.data;
|
||
this.renderCharts(res.data);
|
||
})
|
||
.catch((e) => {
|
||
console.log(e);
|
||
});
|
||
},
|
||
renderCharts(data) {
|
||
// 销售合同占比
|
||
if (!this.countContainer) {
|
||
this.countContainer = document.getElementById('countContainer');
|
||
}
|
||
this.countChart = echarts.init(this.countContainer);
|
||
this.One_data.series[0].data=[{value: data.totalSpaceInMB,name: '空间总量'}, {value: data.usedSpaceInMB, name: '已使用'}];
|
||
const option = this.One_data;
|
||
this.countChart.setOption(option);
|
||
if (!this.LLContainer) {
|
||
this.LLContainer = document.getElementById('LLContainer');
|
||
}
|
||
this.LLContainer = echarts.init(this.LLContainer);
|
||
const lloption = this.One_data;
|
||
this.LLContainer.setOption(lloption);
|
||
},
|
||
}
|
||
}
|
||
</script>
|
||
<style scoped lang="less">
|
||
@import '@/style/variables.less';
|
||
|
||
.dashboard-item {
|
||
padding: 8px;
|
||
|
||
/deep/ .t-card__footer {
|
||
padding-top: 0;
|
||
}
|
||
|
||
/deep/ .t-card__title {
|
||
font-size: 14px;
|
||
font-weight: 500;
|
||
}
|
||
|
||
/deep/ .t-card__body {
|
||
display: flex;
|
||
flex-direction: column;
|
||
justify-content: space-between;
|
||
flex: 1;
|
||
position: relative;
|
||
padding: 0px 20px;
|
||
}
|
||
|
||
&:hover {
|
||
cursor: pointer;
|
||
}
|
||
|
||
&-top {
|
||
display: flex;
|
||
flex-direction: row;
|
||
align-items: flex-start;
|
||
|
||
> span {
|
||
display: inline-block;
|
||
color: var(--td-text-color-primary);
|
||
font-size: 36px;
|
||
line-height: 44px;
|
||
}
|
||
}
|
||
|
||
&-bottom {
|
||
display: flex;
|
||
flex-direction: row;
|
||
justify-content: space-between;
|
||
align-items: center;
|
||
|
||
> .t-icon {
|
||
cursor: pointer;
|
||
}
|
||
}
|
||
|
||
&-block {
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: center;
|
||
line-height: 22px;
|
||
color: var(--td-text-color-placeholder);
|
||
}
|
||
|
||
&-trend {
|
||
margin-left: 8px;
|
||
}
|
||
|
||
&-left {
|
||
position: absolute;
|
||
top: 0;
|
||
right: 32px;
|
||
|
||
> span {
|
||
display: inline-flex;
|
||
align-items: center;
|
||
justify-content: center;
|
||
width: 56px;
|
||
height: 56px;
|
||
background: var(--td-brand-color-1);
|
||
border-radius: 50%;
|
||
|
||
.t-icon {
|
||
font-size: 24px;
|
||
color: var(--td-brand-color);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
.dashboard-chart-card {
|
||
padding: 8px;
|
||
|
||
/deep/ .t-card__header {
|
||
padding-bottom: 0px;
|
||
}
|
||
|
||
/deep/ .t-card__title {
|
||
font-size: 20px;
|
||
font-weight: 500;
|
||
}
|
||
}
|
||
</style>
|