jsy-app/pages/mine/index.vue

291 lines
7.3 KiB
Vue
Raw Normal View History

2024-09-18 10:30:10 +08:00
<template>
2024-11-25 11:48:03 +08:00
<custom-nav-bar :left="false" leftText="" @leftClick="" title="我的">
<template v-slot:right>
2024-09-20 18:13:41 +08:00
<view class="fixed">
<view align="right" class="iconfont icon-xiaoxi icon"></view>
</view>
2024-11-25 11:48:03 +08:00
</template>
</custom-nav-bar>
2024-09-20 18:13:41 +08:00
<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">
2024-12-02 16:49:48 +08:00
<view class="iconfont icon-people text-gray icon"></view>
</view> -->
<image v-if="avatar" @click="toPage('avatar')" :src="avatar" class="cu-avatar xl round"
2024-09-20 18:13:41 +08:00
mode="widthFix">
</image>
2025-01-08 12:42:53 +08:00
<view @click="toPage('info')" class="user-info">
2024-09-20 18:13:41 +08:00
<view class="u_title">
2025-01-08 12:42:53 +08:00
<text>
<text style="font-size: 30rpx;">{{ user.userName }}</text>
{{user.role.roleName}}
</text>
<text>{{user.mobilePhone}}</text>
<text>{{user.company.companyName}}</text>
2024-09-20 18:13:41 +08:00
</view>
</view>
</view>
</view>
</view>
<view class="content-section">
<view class="menu-list">
2025-01-02 16:29:11 +08:00
<view class="list-cell list-cell-arrow" v-hasPermi="['system:land:list']" @click="toPage('land')">
2024-09-20 18:13:41 +08:00
<view class="menu-item-box">
<view class="iconfont icon-tudidiya menu-icon"></view>
<view>地块管理</view>
</view>
</view>
2025-01-02 16:29:11 +08:00
<view class="list-cell list-cell-arrow" v-hasPermi="['system:user:list']" @click="toPage('user')">
2024-09-20 18:13:41 +08:00
<view class="menu-item-box">
<view class="iconfont icon-yonghu menu-icon"></view>
<view>用户管理</view>
</view>
</view>
2025-01-03 17:25:52 +08:00
<view class="list-cell list-cell-arrow" v-hasPermi="['system:irrigation_runtime:list']"
@click="toPage('wh')">
2024-09-20 18:13:41 +08:00
<view class="menu-item-box">
<view class="iconfont icon-lvli menu-icon"></view>
<view>灌溉履历</view>
</view>
</view>
2025-01-02 16:29:11 +08:00
<view class="list-cell list-cell-arrow" v-hasPermi="['iotlog:userlog:list']" @click="toPage('dl')">
2024-09-20 18:13:41 +08:00
<view class="menu-item-box">
<view class="iconfont icon-caozuo menu-icon"></view>
<view>操作日志</view>
</view>
</view>
2025-01-02 16:29:11 +08:00
<view class="list-cell list-cell-arrow" v-hasPermi="['iot:head:list']" @click="toPage('nq')">
2024-12-19 18:12:16 +08:00
<view class="menu-item-box">
<view class="iconfont icon-weihu menu-icon"></view>
<view>农情</view>
</view>
</view>
<!-- <view class="list-cell list-cell-arrow">
2024-09-20 18:13:41 +08:00
<view class="menu-item-box">
<view class="iconfont icon-weihu menu-icon"></view>
<view>设备维护</view>
</view>
2024-12-28 21:29:59 +08:00
</view> -->
2025-01-02 16:29:11 +08:00
<view class="list-cell list-cell-arrow" v-hasPermi="['mine:dev-ops']" @click="toPage('DevOps')">
2024-09-20 18:13:41 +08:00
<view class="menu-item-box">
<view class="iconfont icon-yunwei menu-icon"></view>
<view>运维</view>
</view>
2024-12-28 21:29:59 +08:00
</view>
2025-01-03 17:25:52 +08:00
<view class="list-cell list-cell-arrow" @click="toPage('textview')">
2024-09-20 18:13:41 +08:00
<view class="menu-item-box">
<view class="iconfont icon-v menu-icon"></view>
<view>我的权益</view>
</view>
</view>
2024-12-20 10:50:22 +08:00
<!-- <view class="list-cell list-cell-arrow" @click="toPage('help')">
2024-09-20 18:13:41 +08:00
<view class="menu-item-box">
<view class="iconfont icon-help menu-icon"></view>
2025-01-03 17:25:52 +08:00
<view>常见问题</view>
2024-09-20 18:13:41 +08:00
</view>
</view>
2024-12-02 16:49:48 +08:00
<view class="list-cell list-cell-arrow" @click="toPage('about')">
2024-09-20 18:13:41 +08:00
<view class="menu-item-box">
<view class="iconfont icon-aixin menu-icon"></view>
<view>关于我们</view>
</view>
2024-12-20 10:50:22 +08:00
</view> -->
<!-- <view class="list-cell list-cell-arrow" @click="toPage('setting')">
2024-09-20 18:13:41 +08:00
<view class="menu-item-box">
<view class="iconfont icon-setting menu-icon"></view>
<view>应用设置</view>
</view>
2024-12-20 10:50:22 +08:00
</view> -->
2024-09-20 18:13:41 +08:00
</view>
<view class="menu-list">
2024-12-02 16:49:48 +08:00
<view class="list-cell list-cell-arrow" style="border-radius: 10px;" @click="toPage('setting')">
2024-09-20 18:13:41 +08:00
<view class="menu-item-box">
<view class="iconfont icon-shezhi menu-icon"></view>
<view>设置</view>
</view>
</view>
</view>
</view>
</view>
2024-09-18 10:30:10 +08:00
</template>
<script setup>
2024-09-20 18:13:41 +08:00
import storage from '@/utils/storage'
import store from '@/store'
import {
ref
} from "vue";
import config from '@/config.js'
2025-01-08 12:42:53 +08:00
const user = store.state.user.user;
2024-09-20 18:13:41 +08:00
const version = config.appInfo.version;
const avatar = ref(store.state.user.avatar);
const windowHeight = ref(uni.getSystemInfoSync().windowHeight - 50);
const popup = ref(null);
2024-11-25 11:48:03 +08:00
const rolses = store.state.user.roles;
2025-01-08 12:43:27 +08:00
2024-09-20 18:13:41 +08:00
uni.$on('refresh', () => {
avatar.value = store.state.user.avatar;
})
2024-12-02 16:49:48 +08:00
//页面跳转
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;
2024-12-10 19:00:27 +08:00
case "video": //视频
uni.navigateTo({
url: '/pages/mine/video/index'
});
break;
2024-12-19 18:12:16 +08:00
case "nq": //农情
uni.navigateTo({
url: '/pages/fourmonitor/index'
});
2025-01-02 16:29:11 +08:00
break;
2024-12-28 21:29:59 +08:00
case "DevOps": //运维
uni.navigateTo({
2024-12-31 19:42:29 +08:00
url: '/pages/dev-ops/index'
2025-01-02 16:29:11 +08:00
});
2024-12-19 18:12:16 +08:00
break;
2025-01-03 17:25:52 +08:00
case "textview": //我的权益
const title = "我的权益"
const content = store.state.user.user.role.remark;
uni.navigateTo({
url: `/pages/common/textview/index?title=${title}&content=${content}`
});
break;
2024-12-02 16:49:48 +08:00
}
2024-09-20 18:13:41 +08:00
}
2024-09-18 10:30:10 +08:00
</script>
<style lang="scss">
2024-09-20 18:13:41 +08:00
// 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 {
2025-01-13 12:39:54 +08:00
padding: 0px 0px 30px 0px;
2024-09-20 18:13:41 +08:00
background-color: #39ac4f;
color: white;
border-radius: 0 0 30px 30px;
2025-01-13 12:39:54 +08:00
2024-09-20 18:13:41 +08:00
.cu-avatar {
2025-01-13 12:39:54 +08:00
border: 2px solid #1cb93a;
background-color: #fff;
2024-09-20 18:13:41 +08:00
}
.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 {
2024-11-25 11:48:03 +08:00
.menu-icon {
font-size: 40rpx;
2024-09-20 18:13:41 +08:00
color: #39ac4f;
}
}
}
2024-09-18 10:30:10 +08:00
2024-09-20 18:13:41 +08:00
}
}
}
</style>