Ver Fonte

实现动环诊断角标

jiawuxian há 1 ano atrás
pai
commit
2bb08d416e

+ 12 - 0
src/api/iot/donghuan.js

@@ -26,6 +26,18 @@ export function stateStatistic(query) {
     data: query
   });
 }
+
+/**
+ * 获取角标
+ * @param {} orgId 
+ * @returns 
+ */
+export function getDonghuanBadge(orgId){
+  return request({
+    url: `/iot/sensor/app/badge/${orgId}`,
+    method: 'get',
+  });
+}
 // // 获取某天的录像完整性
 // export function integrity(hostCode, channelCode,date) {
 //   return request({

+ 35 - 7
src/views/home/menu.vue

@@ -7,8 +7,8 @@
         <empty v-if="!menuList.length" />
         <card v-else class="menu-list-item" v-for="(v, i) in menuList" :key="i">
           <p>{{ v.meta.title }}</p>
-          <div >
-            <van-grid :clickable="true" :border="false"  :column-num="3">
+          <div>
+            <van-grid :clickable="true" :border="false" :column-num="3">
               <van-grid-item
                 clickable
                 v-for="(item, index) in v.children"
@@ -16,6 +16,7 @@
                 :icon="item.meta.icon"
                 :text="item.meta.title"
                 :to="item.path"
+                :badge="item.badge"
               />
             </van-grid>
           </div>
@@ -23,7 +24,6 @@
       </Scroll>
     </div>
 
-
     <van-dialog v-model="show" title="标题" confirmButtonText="关闭">
       <p class="text">
         {{ info }}
@@ -38,9 +38,10 @@ import Scroll from '@/components/scroll/scroll'
 import Card from '@/components/card'
 import { mapGetters } from 'vuex'
 import { getMenu, getTheAreaWeather } from '@/api/public'
+import { getDonghuanBadge } from '@/api/iot/donghuan.js'
 export default {
   name: 'menus',
-  components: { TopBar,Scroll,Card},
+  components: { TopBar, Scroll, Card },
   data() {
     return {
       menuList: [],
@@ -58,10 +59,38 @@ export default {
   methods: {
     getMenuList() {
       getMenu().then(res => {
-        this.menuList = res.data;
-        this.$refs.Scroll.refresh();
+        this.menuList = res.data
+        this.$refs.Scroll.refresh()
+        this.getBadge('/iot/donghuan', getDonghuanBadge)        
       })
     },
+    getBadge(url, method) {
+      //获取角标
+      let menu
+      for (let mg of this.menuList) {
+        if (mg.children == null || mg.children.length === 0) {
+          continue
+        }
+
+        let m = mg.children.find(c => c.path === url)
+        if (m != null) {
+          menu = m
+          break
+        }
+      }
+
+      if (menu) {
+        method(this.orgId).then(r => {
+          if (r.data) {
+            menu.badge = r.data
+          } else {
+            menu.badge = null
+          }
+          
+          this.$forceUpdate();
+        })
+      }
+    },
     onclick() {
       this.$router.push('/workTime')
     }
@@ -70,7 +99,6 @@ export default {
 </script>
 
 <style lang="scss" scoped>
-
 .text {
   padding: 20px;
 }

+ 1 - 1
src/views/menu/iot/donghuan/components/item.vue

@@ -7,7 +7,7 @@
         </template>
         <template #right-icon>
           <van-tag type="danger" v-if="data.state === 1">{{ data.stateText }}</van-tag>
-          <van-tag color="gray" text-color="black" v-else-if="data.state == null">"未上报"</van-tag>
+          <van-tag color="gray" text-color="black" v-else-if="data.state == null">未上报</van-tag>
           <van-tag type="primary" v-else>{{ data.stateText }}</van-tag>
         </template>
       </van-cell>