Files
pad-nl-three-uni/pages/home/home.vue
2024-02-21 18:08:27 +08:00

184 lines
3.8 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<view class="content">
<view class="header">首页</view>
<view class="userInfo-wrap">
<view class="userInfo">
<text class="p1">{{userName}}</text>
<text class="p2">欢迎进入诺力三期平板系统</text>
</view>
<view class="exit" @tap="Quit">
<view class="icon-exit"></view>
<view class="exit-text">退出</view>
</view>
</view>
<view class="zd_wrapper">
<view class="menu-wrap">
<view class="menu-item" v-for="(e, i) in menuList" :key="i" @tap="toPage1(e)">
<image class="menu-img" :src="require('../../static/images/' + e.path + '.png')" alt="">
<view class="menu-name">{{e.name}}</view>
</view>
</view>
</view>
<view v-if="show === true" class="sec_menu_wraper">
<view class="sec_menu_w">
<view class="menu-item" v-for="(e, i) in secM" :key="i" @click="toPage2(e)">
<view class="sec_menu-col_inner">
<view class="menu-name menu-name_inner">{{e.name}}</view>
</view>
</view>
</view>
<view class="cancel">
<view class="iconfont cancel_icon" @tap="show = false"></view>
</view>
</view>
</view>
</template>
<script>
import {authority} from '@/utils/getData2.js'
export default {
data() {
return {
userName: this.$store.getters.userInfo !== '' ? JSON.parse(this.$store.getters.userInfo).username : '',
menuList: [],
show: false,
secM: []
};
},
created () {
this._authority()
},
methods: {
async _authority () {
let res = await authority()
this.menuList = [...res.sonTree]
},
toPage1 (e) {
if (e.sonTree.length > 0) {
this.show = true
this.secM = e.sonTree
} else {
let url = e.router
uni.redirectTo({
url: url
})
}
},
toPage2 (e) {
let url = e.path
uni.redirectTo({
url: url
})
},
Quit () {
this.$store.dispatch('delUserInfo')
uni.redirectTo({
url: '/pages/login/login'
})
}
}
}
</script>
<style lang="stylus">
@import '../../common/style/mixin.styl';
.zd_content
padding-top 0
.header
height 42px
_font(16px,42px,#333,,center)
.userInfo-wrap
_fj()
_wh(calc(100% - 30px),80px)
padding 0 15px
_bis($red,'../../static/images/info_bg.png',auto,100%,right,bottom)
border-radius 12px
margin 0 auto 15px auto
.userInfo
_fj(,flex-start,column)
.p1
_font(16px,1,#fff)
padding-bottom 8px
.p2
_font(13px,1,#fff)
.exit
_fj()
height 22px
padding 0 7px
border 1px solid #FF967C
border-radius 10px
.icon-exit
_wh(10px, 10px)
_bis(,'../../static/images/exit.png',11px)
.exit-text
_font(12px,22px,#fff,,right)
padding-left 5px
.zd_wrapper
_wh(calc(100% - 30px),calc(100% - 152px)) /** 42+80+15+15 */
padding 15px 5%
background-color #fff
border-radius 12px
margin 0 auto 15px auto
.menu-wrap
_fj(flex-start,center,,wrap)
height 100%
.menu-item
_fj()
flex-direction column
_wh(30%, auto)
margin-bottom 20px
_font(13px, 30px,#e74f1a,,center)
&:nth-child(3n+2)
margin-left 5%
margin-right 5%
::v-deep .menu-img
_wh(100%, auto)
img
position relative
opacity 1
_wh(55%, auto)
max-width 90px
margin 0 auto 0.1px
.menu-name
_font(14px, 18px, #444,,center)
.sec_menu_wraper
position fixed
top 0
left 0
_wh(100%, 100%)
background-color rgba(0, 0, 0, .9)
z-index 2017
flex-direction column
.sec_menu_w
_fj()
_wh(calc(100% - 30px), calc(100% - 50px))
padding 0 12px
margin 0 auto
flex-wrap wrap
align-content center
&::after
content ''
display block
_wh(30%,0)
.sec_menu-col
background-color transparent
border none
height auto
.sec_menu-col_inner
_fj(center)
_wh(80px, 80px)
border-radius 50%
background-color $yellow
margin 0 auto
.menu-name_inner
color #fff
padding 0 10px
.cancel
_wh(100%, 50px)
padding 0 12px
overflow hidden
background-color rgba(255, 255, 255, .3)
box-shadow 0 0.5px 2px 0 rgba(160,160,160,0.9)
</style>