From cad7c9a12b3c92b714f8d27b57867d9a598c6e1c Mon Sep 17 00:00:00 2001 From: chenjinsong <523037378@qq.com> Date: Sun, 15 Aug 2021 15:49:29 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20No=20data=E6=8F=90=E7=A4=BA=E3=80=81?= =?UTF-8?q?=E6=8A=98=E7=BA=BF=E5=9B=BE=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/charts/ChartTable.vue | 5 +- src/components/charts/EchartsFrame.vue | 7 +- src/main.js | 3 +- src/utils/tools.js | 12 +++- src/views/charts/Chart.vue | 89 +++++++++++++++++++++++--- 5 files changed, 100 insertions(+), 16 deletions(-) diff --git a/src/components/charts/ChartTable.vue b/src/components/charts/ChartTable.vue index 5fe4a279..b70c983c 100644 --- a/src/components/charts/ChartTable.vue +++ b/src/components/charts/ChartTable.vue @@ -8,7 +8,7 @@ -
+
-
+
- @@ -24,7 +24,8 @@ export default { props: { layout: Array, chartInfo: Object, - loading: Boolean + loading: Boolean, + noData: Boolean }, setup (props) { return { diff --git a/src/main.js b/src/main.js index 9f5ac1e5..0ddf75fc 100644 --- a/src/main.js +++ b/src/main.js @@ -4,7 +4,7 @@ import store from '@/store' import App from '@/App.vue' import { hasPermission } from '@/permission' import commonMixin from '@/mixins/common' -import { cancelWithChange, clickOutside } from '@/utils/tools' +import { cancelWithChange, clickOutside, noData } from '@/utils/tools' import { ClickOutside } from 'element-plus/lib/directives' import i18n from '@/i18n' import '@/assets/css/main.scss' // 样式入口 @@ -36,6 +36,7 @@ app.directive('has', hasPermission) // 注册指令 app.directive('click-outside', clickOutside) app.directive('ele-click-outside', ClickOutside) app.directive('cancel', cancelWithChange) +app.directive('no-data', noData) app.config.globalProperties.$_ = _ app.mixin(commonMixin) diff --git a/src/utils/tools.js b/src/utils/tools.js index 502387ef..aed2ce20 100644 --- a/src/utils/tools.js +++ b/src/utils/tools.js @@ -346,7 +346,15 @@ export const clickOutside = { delete el.__vueClickOutside__ } } - +export const noData = { + updated (el, binding) { + if (el) { + if (binding.value) { + el.innerHTML = '
No data
' + } + } + } +} export function isEqual (o1, o2) { const isEqualForInner = function (obj1, obj2) { const o1 = obj1 instanceof Object @@ -447,3 +455,5 @@ function JSONParse (data) { return firstParse } } + + diff --git a/src/views/charts/Chart.vue b/src/views/charts/Chart.vue index 280c45ea..a0176b29 100644 --- a/src/views/charts/Chart.vue +++ b/src/views/charts/Chart.vue @@ -46,6 +46,7 @@ :style="computePosition" :chartInfo="chartInfo" :loading="loading" + :no-data="noData" >