363 lines
10 KiB
Vue
363 lines
10 KiB
Vue
<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-nq2 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-zs1 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="showPop = true">
|
||
<view class="menu-item-box">
|
||
<view class="iconfont icon-bianji1 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 style="position: absolute;bottom: 5px;width: 100vw;text-align: center;color: darkgray;">
|
||
版本 {{version.versionName}}
|
||
</view>
|
||
</view>
|
||
<custom-app-update ref="appUpdate" />
|
||
|
||
<!-- 协议弹窗 -->
|
||
<u-popup mode="center" :show="showPop" :is-mask-click="false">
|
||
<view style="background: #f3f3f3;max-width: 70vw;padding: 10px; border-radius: 5px;">
|
||
<view style="text-align: center;font-weight: bold;margin-bottom: 10px;">
|
||
<text>用户协议和隐私协议</text>
|
||
</view>
|
||
<view style="line-height: 24px; font-size: 14px; color: #555;">
|
||
我们依据相关法律制定了
|
||
<text class="text-blue" @click="handleUserAgrement">《用户协议》</text>
|
||
和
|
||
<text class="text-blue" @click="handlePrivacy">《隐私协议》</text>
|
||
,请您在点击同意之前仔细阅读并充分理解相关条款。为了便于您理解《隐私政策》,特向您说明如下:
|
||
<br>
|
||
1、为了向您提供服务,我们需要收集您的设备信息和操作日志;
|
||
<br>
|
||
2、我们会采取业界先进的安全措施保护您的信息安全,未经您同意,我们不会向第三方共享您的信息;
|
||
<br>
|
||
3、您可以对上述信息进行查询、更正、删除我们也在政策中提供专门的个人信息保护联系方式。
|
||
<br>
|
||
如您同意以上协议内容,请点击"同意"接受并开始使用我们的服务。
|
||
</view>
|
||
<view style=" display: flex;margin-top: 10px;grid-gap: 10px;">
|
||
<u-button type="success" size="large" text="确定" @click="showPop = false" />
|
||
</view>
|
||
</view>
|
||
</u-popup>
|
||
</template>
|
||
|
||
<script setup>
|
||
import {
|
||
ref
|
||
} from "vue";
|
||
import store from '@/store'
|
||
import storage from '@/utils/storage'
|
||
import config from '@/config.js'
|
||
const user = store.state.user.user;
|
||
const avatar = ref(store.state.user.avatar);
|
||
const windowHeight = ref(uni.getSystemInfoSync().windowHeight - 50);
|
||
const popup = ref(null);
|
||
const rolses = store.state.user.roles;
|
||
// const version = config.appInfo.version;
|
||
const version = getApp().version.oldV;
|
||
const appUpdate = ref(null)
|
||
const showPop = ref(false)
|
||
|
||
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'
|
||
// });
|
||
uni.navigateTo({
|
||
url: '/pages/dev-ops/device'
|
||
});
|
||
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;
|
||
}
|
||
}
|
||
|
||
const globalConfig = ref(config);
|
||
// 隐私协议
|
||
function handlePrivacy() {
|
||
let site = globalConfig.value.appInfo.agreements[0];
|
||
uni.navigateTo({
|
||
url: `/pages/common/webview/index?title=${site.title}&url=${site.url}`
|
||
});
|
||
};
|
||
// 用户协议
|
||
function handleUserAgrement() {
|
||
let site = globalConfig.value.appInfo.agreements[1]
|
||
uni.navigateTo({
|
||
url: `/pages/common/webview/index?title=${site.title}&url=${site.url}`
|
||
});
|
||
};
|
||
</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 {
|
||
width: 70px !important;
|
||
height: 70px !important;
|
||
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> |