index.html 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. {extend name="public/base"/}
  2. {block name="css"}
  3. <style>
  4. .content-linear {background:url("__MIMAGES__/bg_my.png") no-repeat 100% 100%;}
  5. .user-info {padding:20px 16px;display:flex;position:relative;align-items:center;}
  6. .user-info .person-wrap {margin-left:10px;}
  7. .user-info .person-wrap .nickname{font-size:18px;}
  8. .user-info .person-wrap .phone{font-size:14px;margin-top:5px;}
  9. .user-info .setting {position:absolute;top:10px;right:40px;}
  10. .user-info .chat {position:absolute;top:10px;right:10px;}
  11. .user-grid {padding:10px 16px;}
  12. .user-grid .van-grid {border-radius:10px;overflow:hidden;}
  13. .user-grid .grid-text {font-size:12px;color:#1a1a1a;margin-top:5px;}
  14. body {background:#f5f5f5;}
  15. </style>
  16. {/block}
  17. {block name="body"}
  18. <van-nav-bar
  19. class="nav-theme"
  20. :fixed="true"
  21. :placeholder="true"
  22. @click-left="onBack"
  23. >
  24. <template #title>
  25. <span class="text-white">个人中心</span>
  26. </template>
  27. </van-nav-bar>
  28. <div class="content-linear">
  29. <div class="user-info">
  30. <div class="avatar-wrap">
  31. <van-image
  32. width="50"
  33. height="50"
  34. fit="cover"
  35. round
  36. :src="avatar"
  37. ></van-image>
  38. </div>
  39. <div class="person-wrap">
  40. <div class="nickname">{{user.nickname}}</div>
  41. <div class="phone" v-if="user.mobile">{{user.mobile}}</div>
  42. </div>
  43. <div class="setting" @click="navTo('{:url('my/info')}')">
  44. <van-icon name="setting-o" size="20"></van-icon>
  45. </div>
  46. <div class="chat" @click="navTo('{:url('my/notice')}')">
  47. <van-icon name="chat-o" size="20" dot></van-icon>
  48. </div>
  49. </div>
  50. <div class="user-grid">
  51. <van-grid :border="false">
  52. <van-grid-item @click="navTo('{:url('my/info')}')">
  53. <van-image
  54. width="30"
  55. height="30"
  56. src="__MIMAGES__/icon_info.png"
  57. ></van-image>
  58. <div class="grid-text">个人资料</div>
  59. </van-grid-item>
  60. <van-grid-item @click="navTo('{:url('my/password')}')">
  61. <van-image
  62. width="30"
  63. height="30"
  64. src="__MIMAGES__/icon_password.png"
  65. ></van-image>
  66. <div class="grid-text">修改密码</div>
  67. </van-grid-item>
  68. <van-grid-item @click="navTo('{:url('my/mobile')}')">
  69. <van-image
  70. width="30"
  71. height="30"
  72. src="__MIMAGES__/icon_phone.png"
  73. ></van-image>
  74. <div class="grid-text">换绑手机</div>
  75. </van-grid-item>
  76. <van-grid-item @click="navTo('{:url('my/auth')}')">
  77. <van-image
  78. width="30"
  79. height="30"
  80. src="__MIMAGES__/icon_name_auth.png"
  81. ></van-image>
  82. <div class="grid-text">实名认证</div>
  83. </van-grid-item>
  84. </van-grid>
  85. </div>
  86. </div>
  87. <van-cell-group inset>
  88. <van-cell title="绑定微信" v-if="!user.openid" is-link url="{:url('login/wechat')}"></van-cell>
  89. <van-cell title="意见反馈" is-link url="{:url('my/feedback')}"></van-cell>
  90. <van-cell title="关于我们" is-link url="{:url('my/about')}"></van-cell>
  91. <van-cell title="退出" is-link url="{:url('login/logout')}"></van-cell>
  92. </van-cell-group>
  93. <van-tabbar v-model="active" @change="onTab" :placeholder="true">
  94. <van-tabbar-item icon="wap-home-o" url="{:url('/')}">首页</van-tabbar-item>
  95. <van-tabbar-item icon="description" url="{:url('article/index')}">文章</van-tabbar-item>
  96. <van-tabbar-item icon="user-circle-o">我的</van-tabbar-item>
  97. </van-tabbar>
  98. {/block}
  99. {block name="script"}
  100. <script>
  101. function v_setup() {
  102. let base = {};
  103. base.active = 2;
  104. base.user = {$user};
  105. base.navTo = (url) => {
  106. location.href = url;
  107. };
  108. base.avatar = Vue.computed(()=>{
  109. return base.user.avatar ? base.user.avatar : "__COMMON_IMAGES__/default_avatar.png";
  110. });
  111. return base;
  112. }
  113. </script>
  114. {/block}