|
|
@@ -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;
|
|
|
}
|