Files
hht-longdianningxin-uni/pages/home/home.vue
2024-09-18 14:03:33 +08:00

233 lines
5.7 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="zd_container">
<view class="header"><span class="page_name">首页</span></view>
<view class="zd_content">
<view class="userInfo_wrap">
<view class="userInfo_content">
<view class="userInfo">
<text v-if="userName !== ''" 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>
<view class="zd_home_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/image/menu/' + e.path + '.png')" alt="">
<view class="menu-name">{{e.title}}</view>
</view>
</view>
</view>
</view>
<view class="sec_menu_wraper" :class="show ? 'popshow' : 'pophide'">
<view class="pop-title">{{title}}</view>
<view class="sec_menu_w">
<view class="sec_menu-item" :style="{'background-image': 'url(' + require('../../static/image/menu/' + icon + '.png') + ')'}" v-for="(e, i) in secM" :key="i" @click="toPage2(e)">
<view class="menu-name_inner">{{e.title}}</view>
</view>
</view>
</view>
<view v-if="show" class="modal" @click.stop="show = false"></view>
</view>
</template>
<script>
// import {authority} from '@/utils/mork2.js'
import {authority} from '@/utils/getData2.js'
export default {
data() {
return {
userName: '',
menuList: [],
show: false,
secM: [],
icon: '',
title: '',
tab: this.$store.getters.navTab
};
},
created () {
if (this.$store.getters.userInfo) {
this.userName = JSON.parse(this.$store.getters.userInfo).username
}
this._authority()
},
methods: {
async _authority () {
let res = await authority()
if (res.code === '1') {
this.menuList = [...res.result.rf_menu0.sonTree]
} else {
uni.showToast({
title: res.desc,
icon: 'none'
})
}
},
toPage1 (e) {
if (e.sonTree.length > 0) {
this.show = true
this.secM = e.sonTree
this.icon = e.path
this.title = e.title
}
},
toPage2 (e) {
let url = e.path + '?title=' + e.title
uni.redirectTo({
url: url
})
},
Quit () {
this.$store.dispatch('delUserInfo', '')
uni.redirectTo({
url: '/pages/login/login'
})
}
}
}
</script>
<style lang="stylus" scoped>
@import '../../common/style/mixin.styl';
.header
_fj(center)
position fixed
_wh(100%, calc(var(--status-bar-height) + 88rpx))
z-index 200
padding var(--status-bar-height) 20rpx 0 20rpx
background-color #f6f6f6
.page_name
_font(36rpx, 88rpx, #444,700,center)
.zd_content
padding-top calc(var(--status-bar-height) + 88rpx)
padding-bottom 20rpx
.userInfo_wrap
_wh(100%,173rpx)
padding 0 30rpx
background linear-gradient(to bottom, #ff6800, #ff9856)
border-radius 12rpx
margin-bottom 68rpx
.userInfo_content
_fj()
_wh(100%, 100%)
_bis('../../static/image/info_bg.png',auto,100%,right,bottom)
.userInfo
_fj(,flex-start,column)
.p1
_font(34rpx,1,#fff)
padding-bottom 18rpx
.p2
_font(26rpx,1,#fff)
.exit
_fj()
height 48rpx
padding 0 20rpx
border 1px solid #FF967C
border-radius 20rpx
.icon-exit
_wh(22rpx, 22rpx)
_bis('../../static/image/exit.png',22rpx)
.exit-text
_font(24rpx,48rpx,#fff,,right)
padding-left 10rpx
.zd_home_wrapper
width 100%
background-color #fff
border-radius: 12rpx;
padding: 24rpx 14rpx 0 14rpx;
margin-bottom: 24rpx;
overflow-y auto
box-shadow 0 4rpx 4rpx 0 rgba(180, 182, 186, 0.4)
.menu-wrap
_wh(100%, auto)
_fj(flex-start,flex-start,,wrap)
align-content: flex-start
.menu-item
_fj()
flex-direction column
_wh(30%, auto)
margin-bottom 40rpx
_font(26rpx, 28rpx,#e74f1a,,center)
&:nth-child(3n+2)
margin-left 5%
margin-right 5%
::v-deep .menu-img
_wh(100%, auto)
margin-bottom 16rpx
img
position relative
opacity 1
_wh(55%, auto)
background-color: #f3f5f8
box-shadow 8rpx 6rpx 10rpx 0px rgba(0,0,0,0.1)
padding 16rpx
border-radius 50%
margin 0 auto 0.2rpx
.menu-name
_font(28rpx, 30rpx, #444,,center)
.sec_menu_wraper
position fixed
bottom 0
left 0
width 100%
background-color #f4f5f5
box-shadow 0 -8px 16px 0 rgba(28,31,33,.1)
border-top-left-radius 20rpx
border-top-right-radius 20rpx
z-index 2017
transition all .3s
.modal
position fixed
bottom 0
left 0
_wh(100%, 100%)
background-color rgba(0,0,0,0.8)
z-index 2010
.sec_menu_w
width calc(100% - 76rpx)
margin 30rpx auto 60rpx auto
_fj(flex-start)
flex-wrap wrap
.sec_menu-item
_wh(30%, 120rpx)
margin-bottom 20rpx
border-radius 10rpx
background-size 40% auto
background-position right 90%
background-repeat no-repeat
&:nth-child(3n+2)
margin-left 5%
margin-right 5%
&:nth-child(5n+1) .menu-name_inner
background linear-gradient(to right, rgba(73,102,255,0.8) 0%, rgba(117,142,255,0.8) 100%)
&:nth-child(5n+2) .menu-name_inner
background linear-gradient(to right, rgba(254, 168, 20,0.8) 0%, rgba(255, 177, 1,0.8) 100%)
&:nth-child(5n+3) .menu-name_inner
background linear-gradient(to right, rgba(0, 228, 153,0.8) 0%, rgba(0, 241, 197,0.8) 100%)
&:nth-child(5n+4) .menu-name_inner
background linear-gradient(to right, rgba(162, 86, 171,0.8) 0%, rgba(183,120,190,0.8) 100%)
&:nth-child(5n+5) .menu-name_inner
background linear-gradient(to right, rgba(146, 94, 52,0.8) 0%, rgba(162, 116, 79,0.8) 100%)
.menu-name_inner
_wh(100%, 100%)
_fj(center)
_font(28rpx, 30rpx, #fff, 700, center)
border-radius 10rpx
padding 10rpx
overflow hidden
.pop-title
margin 60rpx 38rpx 0 38rpx
_font(30rpx, 60rpx, #000,700,center)
.cancel
_wh(calc(100% - 76rpx), 100rpx)
margin 0 auto
padding 20rpx 0
overflow hidden
border-bottom 1px solid #c5c6c7
</style>