jsy-app/pages/mine/index.vue
2025-01-17 19:43:28 +08:00

302 lines
7.6 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>
<custom-nav-bar :left="false" leftText="" @leftClick="" title="我的">
<template v-slot:right>
<view class="fixed">
<view align="right" class="iconfont icon-xiaoxi icon"></view>
</view>
</template>
</custom-nav-bar>
<view class="mine-container" :style="{height: `${windowHeight}px`}">
<!--顶部个人信息栏-->
<view class="header-section">
<view class="flex padding justify-between">
<view class="flex align-center">
<!-- <view v-if="!avatar" class="cu-avatar xl round bg-white">
<view class="iconfont icon-people text-gray icon"></view>
</view> -->
<image v-if="avatar" @click="toPage('avatar')" :src="avatar" class="cu-avatar xl round"
mode="widthFix">
</image>
<view @click="toPage('info')" class="user-info">
<view class="u_title">
<text>
<text style="font-size: 30rpx;">{{ user.userName }}</text>
{{user.role.roleName}}
</text>
<text>{{user.mobilePhone}}</text>
<text>{{user.company.companyName}}</text>
</view>
</view>
</view>
</view>
</view>
<view class="content-section">
<view class="menu-list">
<view class="list-cell list-cell-arrow" v-hasPermi="['system:land:list']" @click="toPage('land')">
<view class="menu-item-box">
<view class="iconfont icon-tudidiya menu-icon"></view>
<view>地块管理</view>
</view>
</view>
<view class="list-cell list-cell-arrow" v-hasPermi="['system:user:list']" @click="toPage('user')">
<view class="menu-item-box">
<view class="iconfont icon-yonghu menu-icon"></view>
<view>用户管理</view>
</view>
</view>
<view class="list-cell list-cell-arrow" v-hasPermi="['system:irrigation_runtime:list']"
@click="toPage('wh')">
<view class="menu-item-box">
<view class="iconfont icon-lvli menu-icon"></view>
<view>灌溉履历</view>
</view>
</view>
<view class="list-cell list-cell-arrow" v-hasPermi="['iotlog:userlog:list']" @click="toPage('dl')">
<view class="menu-item-box">
<view class="iconfont icon-caozuo menu-icon"></view>
<view>操作日志</view>
</view>
</view>
<view class="list-cell list-cell-arrow" v-hasPermi="['iot:head:list']" @click="toPage('nq')">
<view class="menu-item-box">
<view class="iconfont icon-weihu menu-icon"></view>
<view>农情</view>
</view>
</view>
<!-- <view class="list-cell list-cell-arrow">
<view class="menu-item-box">
<view class="iconfont icon-weihu menu-icon"></view>
<view>设备维护</view>
</view>
</view> -->
<view class="list-cell list-cell-arrow" v-hasPermi="['mine:dev-ops']" @click="toPage('DevOps')">
<view class="menu-item-box">
<view class="iconfont icon-yunwei menu-icon"></view>
<view>运维</view>
</view>
</view>
<view class="list-cell list-cell-arrow" v-hasPermi="['mine:retrace']" @click="toPage('retrace')">
<view class="menu-item-box">
<view class="iconfont icon-weihu menu-icon"></view>
<view>追溯</view>
</view>
</view>
<view class="list-cell list-cell-arrow" @click="toPage('textview')">
<view class="menu-item-box">
<view class="iconfont icon-v menu-icon"></view>
<view>我的权益</view>
</view>
</view>
<!-- <view class="list-cell list-cell-arrow" @click="toPage('help')">
<view class="menu-item-box">
<view class="iconfont icon-help menu-icon"></view>
<view>常见问题</view>
</view>
</view>
<view class="list-cell list-cell-arrow" @click="toPage('about')">
<view class="menu-item-box">
<view class="iconfont icon-aixin menu-icon"></view>
<view>关于我们</view>
</view>
</view> -->
<!-- <view class="list-cell list-cell-arrow" @click="toPage('setting')">
<view class="menu-item-box">
<view class="iconfont icon-setting menu-icon"></view>
<view>应用设置</view>
</view>
</view> -->
</view>
<view class="menu-list">
<view class="list-cell list-cell-arrow" style="border-radius: 10px;" @click="toPage('setting')">
<view class="menu-item-box">
<view class="iconfont icon-shezhi menu-icon"></view>
<view>设置</view>
</view>
</view>
</view>
</view>
</view>
</template>
<script setup>
import storage from '@/utils/storage'
import store from '@/store'
import {
ref
} from "vue";
import config from '@/config.js'
const user = store.state.user.user;
const version = config.appInfo.version;
const avatar = ref(store.state.user.avatar);
const windowHeight = ref(uni.getSystemInfoSync().windowHeight - 50);
const popup = ref(null);
const rolses = store.state.user.roles;
uni.$on('refresh', () => {
avatar.value = store.state.user.avatar;
})
//页面跳转
function toPage(type) {
switch (type) {
// case "info": //用户资料
// uni.navigateTo({
// url: '/pages/mine/info/index'
// });
// break;
case "avatar": //头像
uni.navigateTo({
url: '/pages/mine/avatar/index'
});
break;
case "edit": //用户编辑
uni.navigateTo({
url: '/pages/mine/info/edit'
});
break;
case "land": //地块
uni.navigateTo({
url: '/pages/work/land/index'
});
break;
case "user": //用户管理
uni.navigateTo({
url: '/pages/work/user/index'
});
break;
case "wh": //灌溉履历
uni.navigateTo({
url: '/pages/work/watering-history/index'
});
break;
case "dl": //操作日志
uni.navigateTo({
url: '/pages/work/operation-log/index'
});
break;
case "setting": //设置
uni.navigateTo({
url: '/pages/mine/setting/index'
});
break;
case "help": //帮助
uni.navigateTo({
url: '/pages/mine/help/index'
});
break;
case "about": //关于我们
uni.navigateTo({
url: '/pages/mine/about/index'
});
break;
case "video": //视频
uni.navigateTo({
url: '/pages/mine/video/index'
});
break;
case "nq": //农情
uni.navigateTo({
url: '/pages/fourmonitor/index'
});
break;
case "DevOps": //运维
uni.navigateTo({
url: '/pages/dev-ops/index'
});
break;
case "retrace": //追溯
uni.navigateTo({
url: '/pages/retrace/index'
});
break;
case "textview": //我的权益
const title = "我的权益"
const content = store.state.user.user.role.remark;
uni.navigateTo({
url: `/pages/common/textview/index?title=${title}&content=${content}`
});
break;
}
}
</script>
<style lang="scss">
// nav
::v-deep.uni-navbar__header-container {
align-items: center;
justify-content: center;
&>view {
font-size: 34rpx;
}
}
::v-deep.uni-navbar__header-btns-right .icon {
font-size: 44rpx;
margin-left: 10px;
}
.mine-container {
width: 100%;
height: 100%;
// 个人信息
.header-section {
padding: 0px 0px 30px 0px;
background-color: #39ac4f;
color: white;
border-radius: 0 0 30px 30px;
.cu-avatar {
border: 2px solid #1cb93a;
background-color: #fff;
}
.user-info {
margin-left: 15px;
.u_title {
font-size: 24rpx;
display: flex;
flex-direction: column;
&>text {
margin-bottom: 5px;
}
}
}
}
.content-section {
position: relative;
top: -50px;
.menu-list {
margin: 10px;
border-radius: 10px;
box-shadow: 0 1px 9px rgb(209, 209, 209, 0.5);
.list-cell:first-child {
border-radius: 10px 10px 0 0;
}
.list-cell:last-child {
border-radius: 0 0 10px 10px;
}
.list-cell {
.menu-item-box {
.menu-icon {
font-size: 40rpx;
color: #39ac4f;
}
}
}
}
}
}
</style>