Browse Source

初步修改暂无数据提示

lrf402788946 5 years ago
parent
commit
7308313e3a
4 changed files with 52 additions and 8 deletions
  1. 1 1
      src/layout/index/danwei.vue
  2. 23 2
      src/layout/index/news.vue
  3. 26 3
      src/layout/index/notice.vue
  4. 2 2
      src/layout/noData.vue

+ 1 - 1
src/layout/index/danwei.vue

@@ -1,7 +1,7 @@
 <template>
   <div id="danwei">
     <el-row>
-      <el-col :span="24" v-if="enterList && enterList.length > 0">
+      <el-col :span="24" v-if="danweiList && danweiList.length > 0">
         <el-tabs v-model="activeName" type="border-card" :before-leave="handleClick">
           <el-tab-pane v-for="(item, index) in danweiList" :key="index">
             <span slot="label">{{ item.title }}</span>

+ 23 - 2
src/layout/index/news.vue

@@ -1,7 +1,7 @@
 <template>
   <div id="news">
     <el-row>
-      <el-col :span="24" class="news">
+      <el-col :span="24" class="news" v-if="haveData(news)">
         <el-col :span="24" class="topTit">
           <el-col :span="20">
             <span :style="`border-color:${borderColor}`">{{ news.title }}</span>
@@ -36,17 +36,23 @@
           </el-col>
         </el-col>
       </el-col>
+      <el-col :span="24" v-else>
+        <no-data></no-data>
+      </el-col>
     </el-row>
   </div>
 </template>
 
 <script>
+import noData from '@publics/src/layout/noData.vue';
 export default {
   name: 'news',
   props: {
     news: null,
   },
-  components: {},
+  components: {
+    noData,
+  },
   data: () => ({
     borderColor: '#850000',
     Color: '#850000',
@@ -54,6 +60,21 @@ export default {
   created() {},
   computed: {},
   methods: {
+    haveData(data) {
+      let res = false;
+      if (data !== null) {
+        if (_.isArray(data)) {
+          return data.length > 0;
+        } else {
+          let object = _.get(data, 'children', undefined);
+          if (object === undefined) {
+            return false;
+          } else {
+            return this.haveData(object);
+          }
+        }
+      }
+    },
     shuYi(index) {
       this.$refs.shubiao.setActiveItem(`${index}`);
     },

+ 26 - 3
src/layout/index/notice.vue

@@ -1,7 +1,7 @@
 <template>
   <div id="notice">
     <el-row>
-      <el-col :span="24" class="notice">
+      <el-col :span="24" class="notice" v-if="haveData(notice)">
         <el-col :span="24" class="topTit">
           <el-col :span="20">
             <span :style="`border-color:${borderColor}`">{{ notice.title }}</span>
@@ -32,17 +32,24 @@
           </el-col>
         </el-col>
       </el-col>
+      <el-col :span="24" v-else>
+        <no-data></no-data>
+      </el-col>
     </el-row>
   </div>
 </template>
 
 <script>
+import noData from '@publics/src/layout/noData.vue';
+import _ from 'lodash';
 export default {
   name: 'notice',
   props: {
     notice: null,
   },
-  components: {},
+  components: {
+    noData,
+  },
   data: () => ({
     borderColor: '#850000',
     Color: '#850000',
@@ -50,7 +57,23 @@ export default {
   }),
   created() {},
   computed: {},
-  methods: {},
+  methods: {
+    haveData(data) {
+      let res = false;
+      if (data !== null) {
+        if (_.isArray(data)) {
+          return data.length > 0;
+        } else {
+          let object = _.get(data, 'children', undefined);
+          if (object === undefined) {
+            return false;
+          } else {
+            return this.haveData(object);
+          }
+        }
+      }
+    },
+  },
   filters: {
     getDate(date) {
       if (date) {

+ 2 - 2
src/layout/noData.vue

@@ -1,9 +1,9 @@
 <template>
   <div id="noData">
     <el-row>
-      <el-col1 :span="24" class="info">
+      <el-col :span="24" class="info">
         <P>暂无数据,敬请期待</P>
-      </el-col1>
+      </el-col>
     </el-row>
   </div>
 </template>