|
|
- <template>
- <view style="display: flex;flex-direction: column; width: 100vw;height: 100vh;">
- <tabber :select="2" />
- <!-- 顶部 -->
- <view style="width: 100%;height: 30%;">
- <image src="https://tennis-oss.xzaiyp.top/2024-09-07/05cbb032-8177-478e-8fbe-0a3797096890.png"
- style="width: 100%;height: 100%;"></image>
- </view>
-
- <!--中部 用户信息-->
- <view
- style="border-radius: 20rpx;position: absolute;top: 20%;left: 10%; width:80%;height: 12%;z-index: 1;background: white;">
- <!--头像-->
- <view
- style="position: absolute;z-index:2;width:30%;height:90%;border-radius: 50%;overflow: hidden;top: -32%;left: 2%;">
- <image :src="userInfo.headImage || '微信用户'" style="width: 100%;height: 100%;"></image>
- </view>
- <!--福利中心-->
- <!-- <view style="position: absolute;z-index:2;width:33%;height:30%;top: 13%;right: 2%;">
- <image src="/static/image/center/flzx.png" style="width: 100%;height: 100%;"></image>
- </view> -->
- <!-- 未认证-->
- <view style="position: absolute;z-index:2;width:15%;height:20%;top: 45%;left: 28%;">
- <image src="/static/image/center/wrz.png" style="width: 100%;height: 100%;"></image>
- </view>
- <!-- 去认证 -->
- <view style="position: absolute;z-index:2;width:55%;height:20%;top: 43%;left: 46%;">
- <span style="font-size: 26rpx;" class="textColor"
- @click="toAuthPage">去认证</span>
- </view>
- <!-- 用户信息 -->
- <view style="position: absolute;z-index:2;width:55%;height:20%;top: 60%;left: 7%;">
- <view>
- <span style="font-size: 35rpx;margin-right: 5rpx">{{ userInfo.nickName || '微信用户' }}</span>
- <span style="font-size: 18rpx">{{ userInfo.phone }}</span>
- </view>
- </view>
- <!-- 点赞量 -->
- <!-- <view
- style="display: flex;flex-direction: column;gap:2rpx ;position: absolute;z-index:2;width:15%;height:40%;top: 55%;right: 3%;">
- <view style="display: flex;justify-content: center;align-items: center;width: 100%;height: 100%;">
- <image src="/static/image/center/dianZan.svg" style="width: 40%;height: 84%;"></image>
- </view>
- <view style="display: flex;justify-content: center ;font-size: 20rpx;color:#777777">点赞量</view>
- </view> -->
- </view>
-
- <!-- 下部 -->
- <view style="width: 100%;height: 70%;padding-top:150rpx">
- <view>
- <!--上GridView-->
- <view>
- <uv-grid :col="4">
- <uv-grid-item v-for="(item,index) in baseList" :key="index" @click="goToPage(item)">
- <img :src="item.imageUrl" :alt="item.title"
- :style="{ width: '80rpx', height: '80rpx',marginBottom: '10rpx'}" />
- <text style="font-size: 30rpx;color: #333333;">{{ item.title }}
- </text>
- </uv-grid-item>
- </uv-grid>
- </view>
-
-
- <!--其他-->
- <view style="margin:50rpx 0 0 50rpx;font-size: 40rpx;color: #333333;">其他</view>
-
- <!--下GridView-->
- <view style="margin-top: 50rpx;">
- <uv-grid :col="4">
- <uv-grid-item v-for="(item,index) in otherList" :key="index" @click="goToPage(item)">
- <img :src="item.imageUrl" :alt="item.title"
- :style="{ width: '80rpx', height: '80rpx',marginBottom: '10rpx'}" />
- <text style="font-size: 30rpx;color: #333333;">{{ item.title }}
- </text>
- </uv-grid-item>
- </uv-grid>
- </view>
- </view>
- </view>
-
-
- <!-- 退出弹框-->
- <confirmationPopup ref="confirmationPopup" title="提示" :cancel="true" @confirm="handleConfirm"
- @cancel="handleCancel" confirmText="确认">
- <view class="confirmationPopup">
- <!-- <image src="/static/image/publish/upload.png"
- style="width: 150rpx;height: 150rpx;"
- mode=""></image> -->
- <view style="text-align:center">
- 确认退出登录吗?
- </view>
- </view>
- </confirmationPopup>
- </view>
- </template>
-
- <script>
- import {
- mapState
- } from 'vuex'
- import tabber from '@/components/base/tabbar.vue'
- import confirmationPopup from "@/components/toast/confirmationPopup.vue";
-
- export default {
- components: {
- confirmationPopup,
- tabber,
- },
- computed: {
- ...mapState(['userInfo']),
- },
- data() {
- return {
- // 基础列表
- baseList: [{
- name: 'photo',
- imageUrl: 'https://tennis-oss.xzaiyp.top/2024-09-07/05cbb032-8177-478e-8fbe-0a3797096890.png',
- title: '我的发布',
- gotoPageUrl: '/mine/releaseRecord'
- },
- {
- name: 'lock',
- imageUrl: 'https://tennis-oss.xzaiyp.top/2024-09-07/05cbb032-8177-478e-8fbe-0a3797096890.png',
- title: '我的推广',
- gotoPageUrl: '/mine/promotionRecord'
- },
- {
- name: 'star',
- imageUrl: 'https://tennis-oss.xzaiyp.top/2024-09-07/05cbb032-8177-478e-8fbe-0a3797096890.png',
- title: '我的银行卡',
- gotoPageUrl: '/mine/addBankCard'
- },
- {
- name: 'star',
- imageUrl: 'https://tennis-oss.xzaiyp.top/2024-09-07/05cbb032-8177-478e-8fbe-0a3797096890.png',
- title: '我的钱包',
- gotoPageUrl: '/mine/purse'
- },
- ],
- // 其他列表
- otherList: [{
- name: 'photo',
- imageUrl: 'https://tennis-oss.xzaiyp.top/2024-09-07/05cbb032-8177-478e-8fbe-0a3797096890.png',
- title: '实名信息',
- gotoPageUrl: '/mine/certifiedIndividual'
- },
- {
- name: 'lock',
- imageUrl: 'https://tennis-oss.xzaiyp.top/2024-09-07/05cbb032-8177-478e-8fbe-0a3797096890.png',
- title: '帮助反馈'
- },
- {
- name: 'outLogin',
- imageUrl: 'https://tennis-oss.xzaiyp.top/2024-09-07/05cbb032-8177-478e-8fbe-0a3797096890.png',
- title: '退出登录',
- gotoPageUrl: '/mine/promotionRecord'
- },
- ],
- }
- },
- onShow() {
- // 获取用户个人信息
- this.$store.commit('getUserInfo')
- },
- methods: {
- toAuthPage(){
- uni.navigateTo({
- url: '/pages_mine/mine/authOption'
- })
- },
- // 点击列表跳转页面
- goToPage(item) {
- if (item.name == 'outLogin') {
- //
- this.$refs.confirmationPopup.open()
- return
- }
- uni.navigateTo({
- url: '/pages_mine' + item.gotoPageUrl
- })
-
- },
- handleConfirm() {
- // 退出登录
- console.log("退出登录")
- this.$api('loginLogout', res => {
- if (res.code == 200) {
- uni.removeStorageSync('token')
- this.$store.state.userInfo = {}
- uni.redirectTo({
- url: '/pages/index/index'
- })
- }
- })
- this.$refs.confirmationPopup.close()
- },
- handleCancel() {
- // 取消退出登录
- console.log("取消退出登录")
- this.$refs.confirmationPopup.close()
- }
-
- }
- }
- </script>
-
- <style lang="scss" scoped>
- * {
- box-sizing: border-box;
- margin: 0;
- padding: 0;
- }
-
- .textColor {
- background: $uni-linear-gradient-color;
- -webkit-background-clip: text;
- /*将设置的背景颜色限制在文字中*/
- -webkit-text-fill-color: transparent;
- /*给文字设置成透明*/
- }
-
- .confirmationPopup {
- display: flex;
- flex-direction: column;
- align-items: center;
- justify-content: center;
- width: 100%;
- height: 200rpx;
-
- image {
- margin-top: 40rpx;
- }
-
- .info {
- margin-top: 40rpx;
- font-size: 26rpx;
- }
- }
- </style>
|