首页初始化
This commit is contained in:
136
src/views/dashboard/ColumnarChart.vue
Normal file
136
src/views/dashboard/ColumnarChart.vue
Normal file
@ -0,0 +1,136 @@
|
||||
<template>
|
||||
<div :class="className" :style="{ height: height, width: width }" />
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import echarts from "echarts";
|
||||
require("echarts/theme/macarons"); // echarts theme
|
||||
import resize from "./mixins/resize";
|
||||
|
||||
export default {
|
||||
mixins: [resize],
|
||||
props: {
|
||||
className: {
|
||||
type: String,
|
||||
default: "chart",
|
||||
},
|
||||
width: {
|
||||
type: String,
|
||||
default: "100%",
|
||||
},
|
||||
height: {
|
||||
type: String,
|
||||
default: "350px",
|
||||
},
|
||||
autoResize: {
|
||||
type: Boolean,
|
||||
default: true,
|
||||
},
|
||||
chartData: {
|
||||
type: Object,
|
||||
required: true,
|
||||
},
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
chart: null,
|
||||
};
|
||||
},
|
||||
watch: {
|
||||
chartData: {
|
||||
deep: true,
|
||||
handler(val) {
|
||||
this.setOptions(val);
|
||||
},
|
||||
},
|
||||
},
|
||||
mounted() {
|
||||
this.$nextTick(() => {
|
||||
this.initChart();
|
||||
});
|
||||
},
|
||||
beforeDestroy() {
|
||||
if (!this.chart) {
|
||||
return;
|
||||
}
|
||||
this.chart.dispose();
|
||||
this.chart = null;
|
||||
},
|
||||
methods: {
|
||||
initChart() {
|
||||
this.chart = echarts.init(this.$el, "macarons");
|
||||
this.setOptions(this.chartData);
|
||||
},
|
||||
setOptions({
|
||||
expertData,
|
||||
patentData,
|
||||
achievementsData,
|
||||
demandData,
|
||||
dockingData,
|
||||
} = {}) {
|
||||
this.chart.setOption({
|
||||
legend: {},
|
||||
tooltip: {
|
||||
trigger: "axis",
|
||||
axisPointer: {
|
||||
type: "cross",
|
||||
},
|
||||
padding: [5, 10],
|
||||
},
|
||||
dataset: {
|
||||
source: [
|
||||
["product", "模拟数量", "真实数量"],
|
||||
["专家数量", ...expertData],
|
||||
["专利数量", ...patentData],
|
||||
["科技成果数量", ...achievementsData],
|
||||
["需求数量", ...demandData],
|
||||
["对接数量", ...dockingData],
|
||||
],
|
||||
},
|
||||
xAxis: {
|
||||
type: "category",
|
||||
axisTick: {
|
||||
show: false,
|
||||
},
|
||||
},
|
||||
yAxis: {
|
||||
axisTick: {
|
||||
show: false,
|
||||
},
|
||||
splitLine: {
|
||||
show: true,
|
||||
},
|
||||
},
|
||||
series: [
|
||||
{
|
||||
type: "bar",
|
||||
barMaxWidth: "60",
|
||||
itemStyle: {
|
||||
normal: {
|
||||
color: "#49a9ee",
|
||||
lineStyle: {
|
||||
color: "#49a9ee",
|
||||
width: 2,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
type: "bar",
|
||||
barMaxWidth: "60",
|
||||
itemStyle: {
|
||||
normal: {
|
||||
color: "#98d87d",
|
||||
lineStyle: {
|
||||
color: "#98d87d",
|
||||
width: 2,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
],
|
||||
});
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
@ -2,14 +2,17 @@
|
||||
<el-row :gutter="40" class="panel-group">
|
||||
<el-col :xs="12" :sm="12" :lg="6" class="card-panel-col">
|
||||
<div class="card-panel" @click="handleSetLineChartData('newVisitis')">
|
||||
<div class="card-panel-icon-wrapper icon-people">
|
||||
<svg-icon icon-class="peoples" class-name="card-panel-icon" />
|
||||
<div class="card-panel-icon-wrapper icon-message">
|
||||
<svg-icon icon-class="message" class-name="card-panel-icon" />
|
||||
</div>
|
||||
<div class="card-panel-description">
|
||||
<div class="card-panel-text">
|
||||
访客
|
||||
</div>
|
||||
<count-to :start-val="0" :end-val="102400" :duration="2600" class="card-panel-num" />
|
||||
<div class="card-panel-text">本月收入创新币</div>
|
||||
<count-to
|
||||
:start-val="0"
|
||||
:end-val="124345"
|
||||
:duration="2600"
|
||||
class="card-panel-num"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</el-col>
|
||||
@ -19,36 +22,45 @@
|
||||
<svg-icon icon-class="message" class-name="card-panel-icon" />
|
||||
</div>
|
||||
<div class="card-panel-description">
|
||||
<div class="card-panel-text">
|
||||
消息
|
||||
</div>
|
||||
<count-to :start-val="0" :end-val="81212" :duration="3000" class="card-panel-num" />
|
||||
<div class="card-panel-text">本月收入金额</div>
|
||||
<count-to
|
||||
:start-val="0"
|
||||
:end-val="68323"
|
||||
:duration="3000"
|
||||
class="card-panel-num"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</el-col>
|
||||
<el-col :xs="12" :sm="12" :lg="6" class="card-panel-col">
|
||||
<div class="card-panel" @click="handleSetLineChartData('purchases')">
|
||||
<div class="card-panel-icon-wrapper icon-money">
|
||||
<svg-icon icon-class="money" class-name="card-panel-icon" />
|
||||
<div class="card-panel-icon-wrapper icon-message">
|
||||
<svg-icon icon-class="message" class-name="card-panel-icon" />
|
||||
</div>
|
||||
<div class="card-panel-description">
|
||||
<div class="card-panel-text">
|
||||
金额
|
||||
</div>
|
||||
<count-to :start-val="0" :end-val="9280" :duration="3200" class="card-panel-num" />
|
||||
<div class="card-panel-text">企业数量</div>
|
||||
<count-to
|
||||
:start-val="0"
|
||||
:end-val="60"
|
||||
:duration="3200"
|
||||
class="card-panel-num"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</el-col>
|
||||
<el-col :xs="12" :sm="12" :lg="6" class="card-panel-col">
|
||||
<div class="card-panel" @click="handleSetLineChartData('shoppings')">
|
||||
<div class="card-panel-icon-wrapper icon-shopping">
|
||||
<svg-icon icon-class="shopping" class-name="card-panel-icon" />
|
||||
<div class="card-panel-icon-wrapper icon-message">
|
||||
<svg-icon icon-class="message" class-name="card-panel-icon" />
|
||||
</div>
|
||||
<div class="card-panel-description">
|
||||
<div class="card-panel-text">
|
||||
订单
|
||||
</div>
|
||||
<count-to :start-val="0" :end-val="13600" :duration="3600" class="card-panel-num" />
|
||||
<div class="card-panel-text">专利成果数量</div>
|
||||
<count-to
|
||||
:start-val="0"
|
||||
:end-val="60"
|
||||
:duration="3600"
|
||||
class="card-panel-num"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</el-col>
|
||||
@ -56,18 +68,18 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import CountTo from 'vue-count-to'
|
||||
import CountTo from "vue-count-to";
|
||||
|
||||
export default {
|
||||
components: {
|
||||
CountTo
|
||||
CountTo,
|
||||
},
|
||||
methods: {
|
||||
handleSetLineChartData(type) {
|
||||
this.$emit('handleSetLineChartData', type)
|
||||
}
|
||||
}
|
||||
}
|
||||
this.$emit("handleSetLineChartData", type);
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
@ -86,8 +98,8 @@ export default {
|
||||
overflow: hidden;
|
||||
color: #666;
|
||||
background: #fff;
|
||||
box-shadow: 4px 4px 40px rgba(0, 0, 0, .05);
|
||||
border-color: rgba(0, 0, 0, .05);
|
||||
box-shadow: 4px 4px 40px rgba(0, 0, 0, 0.05);
|
||||
border-color: rgba(0, 0, 0, 0.05);
|
||||
|
||||
&:hover {
|
||||
.card-panel-icon-wrapper {
|
||||
@ -107,7 +119,7 @@ export default {
|
||||
}
|
||||
|
||||
.icon-shopping {
|
||||
background: #34bfa3
|
||||
background: #34bfa3;
|
||||
}
|
||||
}
|
||||
|
||||
@ -124,7 +136,7 @@ export default {
|
||||
}
|
||||
|
||||
.icon-shopping {
|
||||
color: #34bfa3
|
||||
color: #34bfa3;
|
||||
}
|
||||
|
||||
.card-panel-icon-wrapper {
|
||||
@ -160,7 +172,7 @@ export default {
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width:550px) {
|
||||
@media (max-width: 550px) {
|
||||
.card-panel-description {
|
||||
display: none;
|
||||
}
|
||||
|
@ -1,12 +1,42 @@
|
||||
<template>
|
||||
<div class="app-container">
|
||||
<!-- <panel-group @handleSetLineChartData="handleSetLineChartData" /> -->
|
||||
首页
|
||||
<panel-group />
|
||||
<el-card style="margin-bottom: 32px">
|
||||
<div slot="header">
|
||||
<span>快捷功能</span>
|
||||
</div>
|
||||
<el-row :gutter="10">
|
||||
<el-col
|
||||
:xs="8"
|
||||
:sm="6"
|
||||
:xl="4"
|
||||
v-for="item in quickList"
|
||||
:key="item.id"
|
||||
class="pointer"
|
||||
style="margin-bottom: 20px; padding-top: 20px; text-align: center"
|
||||
>
|
||||
<router-link :to="item.path">
|
||||
<el-avatar
|
||||
:size="80"
|
||||
src="https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg"
|
||||
></el-avatar>
|
||||
<div style="margin: 10px 0">{{ item.title }}</div>
|
||||
</router-link>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-card>
|
||||
<el-row style="background: #fff">
|
||||
<el-card>
|
||||
<div slot="header">
|
||||
<span>数据统计</span>
|
||||
</div>
|
||||
<columnar-chart :chart-data="lineChartData" />
|
||||
</el-card>
|
||||
</el-row>
|
||||
<!-- <el-row style="background: #fff; padding: 16px 16px 0; margin-bottom: 32px">
|
||||
<line-chart :chart-data="lineChartData" />
|
||||
</el-row> -->
|
||||
|
||||
<!-- <el-row :gutter="32">
|
||||
</el-row>
|
||||
<el-row :gutter="32">
|
||||
<el-col :xs="24" :sm="24" :lg="8">
|
||||
<div class="chart-wrapper">
|
||||
<raddar-chart />
|
||||
@ -32,25 +62,7 @@ import LineChart from "./dashboard/LineChart";
|
||||
import RaddarChart from "./dashboard/RaddarChart";
|
||||
import PieChart from "./dashboard/PieChart";
|
||||
import BarChart from "./dashboard/BarChart";
|
||||
|
||||
const lineChartData = {
|
||||
newVisitis: {
|
||||
expectedData: [100, 120, 161, 134, 105, 160, 165],
|
||||
actualData: [120, 82, 91, 154, 162, 140, 145],
|
||||
},
|
||||
messages: {
|
||||
expectedData: [200, 192, 120, 144, 160, 130, 140],
|
||||
actualData: [180, 160, 151, 106, 145, 150, 130],
|
||||
},
|
||||
purchases: {
|
||||
expectedData: [80, 100, 121, 104, 105, 90, 100],
|
||||
actualData: [120, 90, 100, 138, 142, 130, 130],
|
||||
},
|
||||
shoppings: {
|
||||
expectedData: [130, 140, 141, 142, 145, 150, 160],
|
||||
actualData: [120, 82, 91, 154, 162, 140, 130],
|
||||
},
|
||||
};
|
||||
import ColumnarChart from "./dashboard/ColumnarChart";
|
||||
|
||||
export default {
|
||||
name: "Index",
|
||||
@ -60,17 +72,54 @@ export default {
|
||||
RaddarChart,
|
||||
PieChart,
|
||||
BarChart,
|
||||
ColumnarChart,
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
lineChartData: lineChartData.newVisitis,
|
||||
lineChartData: {
|
||||
expertData: [15, 45],
|
||||
patentData: [40, 30],
|
||||
achievementsData: [20, 45],
|
||||
demandData: [45, 40],
|
||||
dockingData: [15, 50],
|
||||
},
|
||||
quickList: [
|
||||
{
|
||||
title: "专家审核",
|
||||
path: "/examine/expertList",
|
||||
},
|
||||
{
|
||||
title: "企业审核",
|
||||
path: "/examine/enterpriseList",
|
||||
},
|
||||
{
|
||||
title: "机构审核",
|
||||
path: "/examine/researchList",
|
||||
},
|
||||
{
|
||||
title: "实验室审核",
|
||||
path: "/examine/laboratoryList",
|
||||
},
|
||||
{
|
||||
title: "经纪人审核",
|
||||
path: "/examine/agentList",
|
||||
},
|
||||
{
|
||||
title: "成果审核",
|
||||
path: "",
|
||||
},
|
||||
{
|
||||
title: "需求审核",
|
||||
path: "",
|
||||
},
|
||||
{
|
||||
title: "企业产品审核",
|
||||
path: "",
|
||||
},
|
||||
],
|
||||
};
|
||||
},
|
||||
methods: {
|
||||
handleSetLineChartData(type) {
|
||||
this.lineChartData = lineChartData[type];
|
||||
},
|
||||
},
|
||||
methods: {},
|
||||
};
|
||||
</script>
|
||||
|
||||
|
Reference in New Issue
Block a user