Blame view

pages/mine/index.vue 4.08 KB
0d1a4181   刘淇   个人中心
1
  <template>
cf70629b   刘淇   养护计划 照片 自己写样式
2
    <view class="page-container">
0d1a4181   刘淇   个人中心
3
      <!-- 顶部用户信息栏 -->
12e66ec8   刘淇   新增树
4
5
6
7
8
9
10
11
12
13
      <view class="header-bg">
        <up-avatar
            :src="'https://img.jichengshanshui.com.cn:28207/appimg/default-avatar.png'"
            size="100rpx"
            shape="square"
            class="user-avatar"
        ></up-avatar>
  
        <!-- 用户名+手机号 -->
        <view class="user-info-content">
5b5a4862   刘淇   按钮放大
14
          <view class="user-name">{{ userStore.isLogin ? userInfo.nickname : '未登录' }}</view>
c5fdc60a   刘淇   树详情
15
  <!--        <view class="user-phone">{{ userStore.isLogin ? userInfo.nickname : '&#45;&#45;&#45;&#45;&#45;&#45;&#45;&#45;' }}</view>-->
24c0bbe7   刘淇   登录账号密码 加密存储
16
          <view class="user-phone">上次登录时间   {{ timeFormat(userInfo.loginDate)}}</view>
c5fdc60a   刘淇   树详情
17
  
0d1a4181   刘淇   个人中心
18
        </view>
12e66ec8   刘淇   新增树
19
  
0d1a4181   刘淇   个人中心
20
21
      </view>
  
12e66ec8   刘淇   新增树
22
23
24
25
26
  
      <view class="mine-content">
        <up-cell-group title="个人信息">
          <up-cell  title="姓名"  :value="userInfo.nickname"></up-cell>
          <up-cell  title="账号" :value="userInfo.username"></up-cell>
c5fdc60a   刘淇   树详情
27
          <up-cell  title="电话" :value="userInfo.mobile"></up-cell>
12e66ec8   刘淇   新增树
28
          <up-cell  title="角色" :value="translateRoles(userStore.userInfo.roles)"></up-cell>
9441e28e   刘淇   考勤打卡
29
             <up-cell  title="考勤" :isLink="true"  url="/pages-sub/daily/attendanceRecord"></up-cell>
12e66ec8   刘淇   新增树
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
        </up-cell-group>
      </view>
  
  
      <up-button
          v-if="!userStore.isLogin"
          type="primary"
          size="mini"
          shape="circle"
          @click="handleLogin"
          class="login-btn"
      >
        立即登录
      </up-button>
  
0d1a4181   刘淇   个人中心
45
      <!-- 退出登录按钮 (仅登录状态显示) -->
67af4c8e   刘淇   工作台 如果没有子节点就不渲染父节点
46
      <view v-if="userStore.isLogin" class="logout-btn-wrap">
0d1a4181   刘淇   个人中心
47
48
49
        <up-button
            type="primary"
            size="large"
12e66ec8   刘淇   新增树
50
            shape="circle"
0d1a4181   刘淇   个人中心
51
            @click="confirmLogout"
12e66ec8   刘淇   新增树
52
            class="login-btn"
0d1a4181   刘淇   个人中心
53
54
55
56
        >
          退出登录
        </up-button>
      </view>
0d1a4181   刘淇   个人中心
57
58
59
    </view>
  </template>
  
c293da23   刘淇   新园林init
60
  <script setup lang="ts">
67af4c8e   刘淇   工作台 如果没有子节点就不渲染父节点
61
62
63
  import { computed } from 'vue'
  import { useUserStore } from '@/pinia/user'
  import {  showModal, onShow } from '@dcloudio/uni-app'
12e66ec8   刘淇   新增树
64
  import {translateRoles} from '@/common/utils/common'
0d1a4181   刘淇   个人中心
65
66
  // 初始化Pinia仓库
  const userStore = useUserStore()
c5fdc60a   刘淇   树详情
67
  import { timeFormat } from '@/uni_modules/uview-plus';
67af4c8e   刘淇   工作台 如果没有子节点就不渲染父节点
68
69
  // 计算属性获取用户信息(响应式)
  const userInfo = computed(() => userStore.userInfo.user || {})
0d1a4181   刘淇   个人中心
70
  
67af4c8e   刘淇   工作台 如果没有子节点就不渲染父节点
71
72
73
  /**
   * 处理登录跳转
   */
0d1a4181   刘淇   个人中心
74
  const handleLogin = () => {
67af4c8e   刘淇   工作台 如果没有子节点就不渲染父节点
75
76
    uni.navigateTo({
      url: '/pages/login/index'
0d1a4181   刘淇   个人中心
77
78
79
    })
  }
  
67af4c8e   刘淇   工作台 如果没有子节点就不渲染父节点
80
81
82
  /**
   * 确认退出登录(带二次确认)
   */
0d1a4181   刘淇   个人中心
83
  const confirmLogout = async () => {
0d1a4181   刘淇   个人中心
84
    try {
67af4c8e   刘淇   工作台 如果没有子节点就不渲染父节点
85
86
87
88
89
90
      const res = await uni.showModal({
        title: '提示',
        content: '确定要退出登录吗?',
        confirmText: '退出',
        cancelText: '取消'
      })
0d1a4181   刘淇   个人中心
91
  
67af4c8e   刘淇   工作台 如果没有子节点就不渲染父节点
92
93
      if (res.confirm) {
        await userStore.logout()
54955fb5   刘淇   巡查和养护 。 失效状态的判断
94
        // uni.showToast({ title: '退出登录成功', type: 'success' })
67af4c8e   刘淇   工作台 如果没有子节点就不渲染父节点
95
      }
0d1a4181   刘淇   个人中心
96
97
    } catch (error) {
      console.error('退出登录失败:', error)
67af4c8e   刘淇   工作台 如果没有子节点就不渲染父节点
98
      uni.showToast({ title: '退出登录失败,请重试', type: 'error' })
0d1a4181   刘淇   个人中心
99
100
    }
  }
c293da23   刘淇   新园林init
101
  
67af4c8e   刘淇   工作台 如果没有子节点就不渲染父节点
102
103
104
105
  // 页面显示时检查登录状态
  onShow(() => {
    userStore.checkLogin()
  })
c293da23   刘淇   新园林init
106
107
  </script>
  
0d1a4181   刘淇   个人中心
108
109
  <script lang="ts">
  export default {
67af4c8e   刘淇   工作台 如果没有子节点就不渲染父节点
110
111
112
113
    name: 'UserCenter',
    options: {
      navigationBarTitleText: '个人中心'
    }
0d1a4181   刘淇   个人中心
114
115
116
117
  }
  </script>
  
  <style lang="scss" scoped>
cf70629b   刘淇   养护计划 照片 自己写样式
118
  .page-container {
12e66ec8   刘淇   新增树
119
  
0d1a4181   刘淇   个人中心
120
121
  }
  
12e66ec8   刘淇   新增树
122
123
124
125
126
  .header-bg {
    position:relative;
    top: 0;
    left: 0;
    width: 100%;
24c0bbe7   刘淇   登录账号密码 加密存储
127
    height: 220px;
12e66ec8   刘淇   新增树
128
129
130
131
132
    //height: 120px;
    background: url("https://img.jichengshanshui.com.cn:28207/appimg/bg.jpg") no-repeat;
    background-size: 100% 100%;
    z-index: -1;
    display: flex;
5b5a4862   刘淇   按钮放大
133
    padding: 80px 0 0 15px;
12e66ec8   刘淇   新增树
134
135
136
137
138
139
  }
  .mine-content{
    margin-top: -150px;
    border-radius: 30px 30px 0 0;
    background: #fff;
  }
0d1a4181   刘淇   个人中心
140
  
12e66ec8   刘淇   新增树
141
  .user-avatar {
0d1a4181   刘淇   个人中心
142
  
0d1a4181   刘淇   个人中心
143
144
  }
  
12e66ec8   刘淇   新增树
145
  .user-info-content {
cf70629b   刘淇   养护计划 照片 自己写样式
146
    margin-left: 15px;
12e66ec8   刘淇   新增树
147
148
149
    flex: 1;
  
    .user-name {
cf70629b   刘淇   养护计划 照片 自己写样式
150
      font-size: 16px;
12e66ec8   刘淇   新增树
151
152
      font-weight: 600;
      color: #ffffff;
cf70629b   刘淇   养护计划 照片 自己写样式
153
154
      margin-bottom: 5px;
      text-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
12e66ec8   刘淇   新增树
155
156
157
    }
  
    .user-phone {
cf70629b   刘淇   养护计划 照片 自己写样式
158
      font-size: 13px;
12e66ec8   刘淇   新增树
159
160
161
      color: rgba(255, 255, 255, 0.9);
    }
  }
0d1a4181   刘淇   个人中心
162
163
  // 退出登录按钮
  .logout-btn-wrap {
24c0bbe7   刘淇   登录账号密码 加密存储
164
    margin: 80px 15px 0;
0d1a4181   刘淇   个人中心
165
  }
12e66ec8   刘淇   新增树
166
167
  // 登录按钮
  .login-btn {
12e66ec8   刘淇   新增树
168
169
170
171
172
    width: 100%;
    height: 44px;
    line-height: 44px;
    border-radius: 4px;
    font-size: 16px;
12e66ec8   刘淇   新增树
173
174
175
176
    background: #0A86F4;
    box-shadow: 0px 4px 6px 1px rgba(25,94,215,0.5);
    border-radius: 23px;
  }
c293da23   刘淇   新园林init
177
  </style>