| <template> | 
|     <view class="page"> | 
|         <view class="top"> | 
|             <view class="background"></view> | 
|         </view> | 
|         <view class="user-card"> | 
|             <view class="card"> | 
|                 <view class="top"> | 
|                     <view class="userImage"> | 
|                         <!-- <open-data type="userAvatarUrl"></open-data> --> | 
|                         <u-avatar :src="src" size="146"></u-avatar> | 
|                     </view> | 
|                 </view> | 
|                 <view class="bottom" @tap.native="Login"> | 
|                     <view class="left"> | 
|                         <view class="user-text"> | 
|                             <!-- <open-data type="userNickName"></open-data> --> | 
|                             <text style="text-align: center;">{{userNickName}}</text> | 
|                         </view> | 
|                         <!-- <view class="user-phone"> 171****4133 </view> --> | 
|                     </view> | 
|                     <view class="right flex-center"> | 
|                         <u-icon class="icon" name="arrow-right"></u-icon> | 
|                     </view> | 
|                 </view> | 
|                 <view class="settings" @click="settings"> | 
|                     <view class="left"> | 
|                         <view class="settings-text"> | 
|                             <!-- <open-data type="userNickName"></open-data> --> | 
|                             <text style="text-align: center;">设置</text> | 
|                         </view> | 
|                         <!-- <view class="user-phone"> 171****4133 </view> --> | 
|                     </view> | 
|                     <view class="right flex-center"> | 
|                         <u-icon class="icon" name="arrow-right"></u-icon> | 
|                     </view> | 
|                 </view> | 
|             </view> | 
|         </view> | 
|         <view class="list-card"> | 
|         </view> | 
|         <view class="quit flex-center"> | 
|             <!-- <view class="btn flex-center" @click="LastLogin"> | 
|                 更新程序 | 
|             </view> --> | 
|             <view class="btn flex-center" @click="LastLogin"> | 
|                 退出登录 | 
|             </view> | 
|         </view> | 
|     </view> | 
| </template> | 
| <style lang="scss" scoped> | 
|     .top { | 
|         height: 250rpx; | 
|         position: relative; | 
|   | 
|         .background { | 
|             background-color: #5199ff; | 
|             border-bottom-left-radius: 22px; | 
|             border-bottom-right-radius: 22px; | 
|             position: absolute; | 
|             height: 180rpx; | 
|             width: 100%; | 
|         } | 
|     } | 
|   | 
|     .icon { | 
|         color: #96a1ae; | 
|         font-size: 20rpx; | 
|     } | 
|   | 
|     .user-card { | 
|         height: 170rpx; | 
|         padding: 0 15px; | 
|   | 
|         .card { | 
|             position: relative; | 
|             bottom: 62px; | 
|             height: 250rpx; | 
|             background-color: white; | 
|             border-radius: 5px; | 
|   | 
|             .top { | 
|                 height: 30%; | 
|                 position: relative; | 
|   | 
|                 .userImage { | 
|                     position: absolute; | 
|                     bottom: 24%; | 
|                     left: 10%; | 
|                     width: 150rpx; | 
|                     height: 150rpx; | 
|                     overflow: hidden; | 
|                     border-radius: 50%; | 
|                     border: 2px solid white; | 
|                 } | 
|             } | 
|   | 
|             .bottom { | 
|                 display: flex; | 
|                 height: 70%; | 
|   | 
|                 .left { | 
|                     width: 80%; | 
|                     height: 100%; | 
|                     position: relative; | 
|   | 
|                     .user-text { | 
|                         width: 100%; | 
|                         font-size: 1.6em; | 
|                         padding-left: 80rpx; | 
|                         height: 50%; | 
|                     } | 
|   | 
|                     .user-phone { | 
|                         width: 100%; | 
|                         font-size: 1.3em; | 
|                         padding-left: 80rpx; | 
|                         height: 50%; | 
|                     } | 
|                 } | 
|   | 
|                 .right { | 
|                     width: 20%; | 
|                     height: 50%; | 
|                 } | 
|   | 
|                 .right2 { | 
|                     width: 10%; | 
|                     height: 10%; | 
|                 } | 
|             } | 
|   | 
|             .settings { | 
|                 display: flex; | 
|                 height: 70%; | 
|                  | 
|                 .left { | 
|                     width: 80%; | 
|                     height: 50%; | 
|                     position: relative; | 
|                     margin-left: 5%; | 
|   | 
|                     .settings-text { | 
|                         width: 100%; | 
|                         font-size: 1.2em; | 
|                         padding-left: 80rpx; | 
|                         height: 50%; | 
|                         align-items: center; | 
|                         padding-top: 10px; | 
|                     } | 
|                 } | 
|   | 
|                 .right { | 
|                     width: 20%; | 
|                     height: 50%; | 
|                 } | 
|   | 
|             } | 
|         } | 
|     } | 
|   | 
|     .list-card { | 
|         padding: 0 15px; | 
|   | 
|         .card { | 
|             border-radius: 5px; | 
|             position: relative; | 
|             background-color: white; | 
|             border-radius: 5px; | 
|             padding: 5px 30px; | 
|   | 
|             .item { | 
|                 display: flex; | 
|                 height: 120rpx; | 
|   | 
|                 .left { | 
|                     width: 15%; | 
|   | 
|                     image { | 
|                         width: 70rpx; | 
|                         height: 70rpx; | 
|                     } | 
|                 } | 
|   | 
|                 .center { | 
|                     width: 65%; | 
|                     display: flex; | 
|                     justify-content: start; | 
|                     align-items: center; | 
|                     font-size: 1.1em; | 
|                 } | 
|   | 
|                 .right { | 
|                     width: 20%; | 
|                     justify-content: flex-end; | 
|                 } | 
|             } | 
|         } | 
|     } | 
|   | 
|     .item-bottom-solid { | 
|         border-bottom: 1px solid #d4d6da; | 
|     } | 
|   | 
|     .quit { | 
|         height: 100rpx; | 
|         margin-top: 50px; | 
|   | 
|         .btn { | 
|             background-color: #4f99ff; | 
|             border-radius: 30px; | 
|             width: 80%; | 
|             color: white; | 
|             font-size: 1.2em; | 
|             height: 100%; | 
|         } | 
|     } | 
|   | 
|     .flex-center { | 
|         display: flex; | 
|         justify-content: center; | 
|         align-items: center; | 
|     } | 
| </style> | 
|   | 
| <script> | 
|     //import {  } from "@/common/api/{$}.js"; | 
|     import httpInterceptor from '@/common/http.interceptor.js' | 
|     export default { | 
|         data() { | 
|             return { | 
|                 src: "", | 
|                 userNickName: '请登录', | 
|             }; | 
|         }, | 
|         //监听页面初始化,其参数同 onLoad 参数,为上个页面传递的数据,参数类型为 Object(用于页面传参),触发时机早于 onLoad | 
|         onInit() {}, | 
|         //监听页面加载,其参数为上个页面传递的数据,参数类型为 Object(用于页面传参) | 
|         onLoad() { | 
|             let isLogin = this.hasLogin(); | 
|             if (isLogin) { | 
|                 let haslogin = uni.getStorageSync('jo_user') | 
|                 this.userNickName = haslogin.userName; | 
|                 this.src = httpInterceptor.baseUrl + "/" + haslogin.img; | 
|             } | 
|         }, | 
|         //监听页面初次渲染完成。注意如果渲染速度快,会在页面进入动画完成前触发 | 
|         onReady() {}, | 
|         //监听页面显示。页面每次出现在屏幕上都触发,包括从下级页面点返回露出当前页面 | 
|         beforeDestroy() {}, | 
|         //页面滚动到底部的事件(不是scroll-view滚到底),常用于下拉下一页数据。 | 
|         onReachBottom() {}, | 
|         onShareAppMessage(res) {}, | 
|         created() {}, | 
|         methods: { | 
|             hasLogin() { | 
|                 let haslogin = uni.getStorageSync('jo_user') | 
|                 if (haslogin == null || haslogin == "") { | 
|                     return false | 
|                 } else { | 
|                     return true | 
|                 } | 
|             }, | 
|   | 
|             LastLogin() { | 
|                 //uni.clearStorage(); | 
|                 uni.removeStorageSync('jo_id_token'); | 
|                 uni.removeStorageSync('jo_user'); | 
|                 uni.removeStorageSync('jo_userImg'); | 
|                 this.$u.route('/pages/login/login'); | 
|             }, | 
|   | 
|             Login() { | 
|                 this.$u.route('/pages/login/login'); | 
|             }, | 
|             settings(){ | 
|                 this.$u.route('/pages/index/settings'); | 
|             } | 
|         }, | 
|     }; | 
| </script> |