From 99292a84533bde68885de5a73881245812952965 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E7=BF=94=E5=AE=87-=E6=97=85=E7=AE=A1=E5=AE=B6?= <153298343@qq.com> Date: Tue, 13 Jun 2023 11:14:03 +0800 Subject: [PATCH] up --- src/components/LxHeader/index.vue | 16 +- src/views/dashboard/components/BarChart.vue | 149 ++++++++++++++++++ src/views/dashboard/components/LineChart.vue | 144 +++++++++++++++++ src/views/dashboard/components/PieChart.vue | 102 ++++++++++++ .../dashboard/components/mixins/resize.js | 55 +++++++ src/views/dashboard/index.vue | 61 +++++-- 6 files changed, 511 insertions(+), 16 deletions(-) create mode 100644 src/views/dashboard/components/BarChart.vue create mode 100644 src/views/dashboard/components/LineChart.vue create mode 100644 src/views/dashboard/components/PieChart.vue create mode 100644 src/views/dashboard/components/mixins/resize.js diff --git a/src/components/LxHeader/index.vue b/src/components/LxHeader/index.vue index 338c2ff..be57e6e 100644 --- a/src/components/LxHeader/index.vue +++ b/src/components/LxHeader/index.vue @@ -29,13 +29,23 @@ text: { type: String, default: "未定义名称" - } + }, + custom:{ + type: Boolean, + default: false + }, }, computed: { - title() { + title() { + if(this.custom){ + return this.text; + }else return this.$route.meta.title; }, - iconImg() { + iconImg() { + if(this.custom){ + return this.icon; + }else return this.$route.meta.icon; } diff --git a/src/views/dashboard/components/BarChart.vue b/src/views/dashboard/components/BarChart.vue new file mode 100644 index 0000000..cef9fb2 --- /dev/null +++ b/src/views/dashboard/components/BarChart.vue @@ -0,0 +1,149 @@ + + + diff --git a/src/views/dashboard/components/LineChart.vue b/src/views/dashboard/components/LineChart.vue new file mode 100644 index 0000000..b3419c2 --- /dev/null +++ b/src/views/dashboard/components/LineChart.vue @@ -0,0 +1,144 @@ + + + diff --git a/src/views/dashboard/components/PieChart.vue b/src/views/dashboard/components/PieChart.vue new file mode 100644 index 0000000..b8e0683 --- /dev/null +++ b/src/views/dashboard/components/PieChart.vue @@ -0,0 +1,102 @@ + + + diff --git a/src/views/dashboard/components/mixins/resize.js b/src/views/dashboard/components/mixins/resize.js new file mode 100644 index 0000000..234953b --- /dev/null +++ b/src/views/dashboard/components/mixins/resize.js @@ -0,0 +1,55 @@ +import { debounce } from '@/utils' + +export default { + data() { + return { + $_sidebarElm: null, + $_resizeHandler: null + } + }, + mounted() { + this.$_resizeHandler = debounce(() => { + if (this.chart) { + this.chart.resize() + } + }, 100) + this.$_initResizeEvent() + this.$_initSidebarResizeEvent() + }, + beforeDestroy() { + this.$_destroyResizeEvent() + this.$_destroySidebarResizeEvent() + }, + // to fixed bug when cached by keep-alive + // https://github.com/PanJiaChen/vue-element-admin/issues/2116 + activated() { + this.$_initResizeEvent() + this.$_initSidebarResizeEvent() + }, + deactivated() { + this.$_destroyResizeEvent() + this.$_destroySidebarResizeEvent() + }, + methods: { + // use $_ for mixins properties + // https://vuejs.org/v2/style-guide/index.html#Private-property-names-essential + $_initResizeEvent() { + window.addEventListener('resize', this.$_resizeHandler) + }, + $_destroyResizeEvent() { + window.removeEventListener('resize', this.$_resizeHandler) + }, + $_sidebarResizeHandler(e) { + if (e.propertyName === 'width') { + this.$_resizeHandler() + } + }, + $_initSidebarResizeEvent() { + this.$_sidebarElm = document.getElementsByClassName('sidebar-container')[0] + this.$_sidebarElm && this.$_sidebarElm.addEventListener('transitionend', this.$_sidebarResizeHandler) + }, + $_destroySidebarResizeEvent() { + this.$_sidebarElm && this.$_sidebarElm.removeEventListener('transitionend', this.$_sidebarResizeHandler) + } + } +} diff --git a/src/views/dashboard/index.vue b/src/views/dashboard/index.vue index d6c257b..1cf8f59 100644 --- a/src/views/dashboard/index.vue +++ b/src/views/dashboard/index.vue @@ -7,8 +7,9 @@ 统计设置 - - + + +
预算总体进展情况
- +
@@ -73,12 +74,26 @@
+ + + + + +
+ +
+ +
+
+ + +