时空网前端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

269 lines
7.3 KiB

4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
  1. <template>
  2. <view>
  3. <view class="lf-flex head">
  4. <image class="user-img" :src="info.avatar" @click="lookImg(info.avatar)" v-if="info.avatar"></image>
  5. <image class="user-img" src="../../static/logo.png" v-else></image>
  6. <view class="user-info">
  7. <view class="lf-font-40" style="width: 500rpx;">
  8. <text class="lf-font-bold">{{ info.nickname }}</text>
  9. <text class="user-label" v-for="(item, index) in info.tags" :key="index">{{ item }}</text>
  10. </view>
  11. <view class="lf-m-t-20 lf-font-28">
  12. <text>ID {{ info.id }}</text>
  13. <text class="lf-m-l-30">{{ hidePhone(info.tel) }}</text>
  14. </view>
  15. </view>
  16. </view>
  17. <view class="list">
  18. <view class="lf-row-between list-item" hover-class="lf-opacity" @click="$url('/pages/collect/index')">
  19. <view class="lf-row-center">
  20. <image class="icon-img" src="../../static/center/collect.png"></image>
  21. <text class="lf-text-vertical lf-m-l-20 lf-font-32">我的收藏</text>
  22. </view>
  23. <view>
  24. <text class="lf-iconfont lf-icon-xiangyou-copy lf-color-gray lf-font-32"></text>
  25. </view>
  26. </view>
  27. <view class="lf-row-between list-item" hover-class="lf-opacity" @click="$url('/pages/contactService/index')">
  28. <view class="lf-row-center">
  29. <image class="icon-img" src="../../static/center/service.png"></image>
  30. <text class="lf-text-vertical lf-m-l-16 lf-font-32">联系客服</text>
  31. </view>
  32. <view>
  33. <text class="lf-iconfont lf-icon-xiangyou-copy lf-color-gray lf-font-32"></text>
  34. </view>
  35. </view>
  36. <view class="lf-row-between list-item" hover-class="lf-opacity">
  37. <view class="lf-row-center">
  38. <image class="icon-img" src="../../static/center/suggestion.png"></image>
  39. <text class="lf-text-vertical lf-m-l-16 lf-font-32">意见反馈</text>
  40. </view>
  41. <view>
  42. <text class="lf-iconfont lf-icon-xiangyou-copy lf-color-gray lf-font-32"></text>
  43. </view>
  44. <button class="feedback-btn" open-type="feedback"></button>
  45. </view>
  46. <view class="lf-row-between list-item" hover-class="lf-opacity" @click="$url('/pages/FQA/index')">
  47. <view class="lf-row-center">
  48. <image class="icon-img" src="../../static/center/problem.png"></image>
  49. <text class="lf-text-vertical lf-m-l-16 lf-font-32">常见问题</text>
  50. </view>
  51. <view>
  52. <text class="lf-iconfont lf-icon-xiangyou-copy lf-color-gray lf-font-32"></text>
  53. </view>
  54. </view>
  55. <!-- <view class="lf-row-between list-item" hover-class="lf-opacity" @click="quitLogin">
  56. <view class="lf-row-center">
  57. <image class="icon-img" src="../../static/center/loginout.png"></image>
  58. <text class="lf-text-vertical lf-m-l-16 lf-font-32">退出登录</text>
  59. </view>
  60. <view>
  61. <text class="lf-iconfont lf-icon-xiangyou-copy lf-color-gray lf-font-32"></text>
  62. </view>
  63. </view> -->
  64. </view>
  65. <!-- 商家工具 -->
  66. <view class="lf-m-b-20 shop-list" v-if="isRight(info.store)">
  67. <view class="lf-row-between lf-m-b-20">
  68. <view class="lf-font-36 lf-font-bold">商家工具</view>
  69. <view class="lf-font-28 lf-line-1" style="color: #555555; max-width: 400rpx;">{{ info.store.name }}</view>
  70. </view>
  71. <view class="lf-row-between list-item" hover-class="lf-opacity" @click="$url('/pages/shopOrder/index')">
  72. <view class="lf-row-center">
  73. <image class="icon-img" src="../../static/center/order.png"></image>
  74. <text class="lf-text-vertical lf-m-l-16 lf-font-32">商家订单</text>
  75. </view>
  76. <view>
  77. <text class="lf-iconfont lf-icon-xiangyou-copy lf-color-gray lf-font-32"></text>
  78. </view>
  79. </view>
  80. <view class="lf-row-between list-item" hover-class="lf-opacity" @click="chargeOff">
  81. <view class="lf-row-center">
  82. <image class="icon-img" src="../../static/center/scan.png"></image>
  83. <text class="lf-text-vertical lf-m-l-16 lf-font-32">卡券核销</text>
  84. </view>
  85. <view>
  86. <text class="lf-iconfont lf-icon-xiangyou-copy lf-color-gray lf-font-32"></text>
  87. </view>
  88. </view>
  89. </view>
  90. </view>
  91. </template>
  92. <script>
  93. export default {
  94. data() {
  95. return {
  96. info: {
  97. avatar: '',
  98. nickname: '',
  99. id: '',
  100. tel: '',
  101. tags: []
  102. },
  103. showLogin: true
  104. }
  105. },
  106. computed: {
  107. hidePhone(){
  108. return function(tel){
  109. if(tel.length == 11){
  110. var reg = /^(\d{3})\d{4}(\d{4})$/;
  111. var new_phone = tel.replace(reg, "$1****$2");
  112. return new_phone;
  113. }else{
  114. return tel;
  115. }
  116. }
  117. },
  118. isRight(){
  119. return function(val){
  120. return this.$shared.isRight(val);
  121. }
  122. }
  123. },
  124. onLoad() {
  125. },
  126. onShow(e){
  127. this.verifyUserInfo();
  128. this.getData();
  129. },
  130. methods: {
  131. verifyUserInfo(){
  132. // let quit_login_state = uni.getStorageSync('quit_login_state');
  133. // if(quit_login_state){
  134. // return;
  135. // }
  136. let userInfo = uni.getStorageSync('userinfo') || {};
  137. if(!userInfo.id || !userInfo.nickname || !userInfo.avatar){
  138. if(this.showLogin){
  139. this.showLogin = false;
  140. this.$url('/pages/login/index?type=userinfo');
  141. }else{
  142. this.showLogin = true;
  143. this.$url('/pages/index/index', {type: 'switch'});
  144. }
  145. }
  146. },
  147. getData(){
  148. this.$http(this.API.API_USER_CENTER).then(res => {
  149. console.log("res" , res);
  150. this.info = res.data;
  151. })
  152. },
  153. // 预览图片
  154. lookImg(img){
  155. this.$u.throttle(() => {
  156. uni.previewImage({
  157. urls: [img]
  158. })
  159. }, 200);
  160. },
  161. // 卡券核销
  162. chargeOff(){
  163. uni.scanCode({
  164. complete: result => {
  165. console.log("resuly", result)
  166. if(result.errMsg == 'scanCode:ok'){
  167. let content = result.result; // 核销码
  168. this.$http(this.API.API_CONFIRM_CODE, {confirm_code: content}).then(res => {
  169. this.$msg(res.msg, {icon: 'success'});
  170. });
  171. }
  172. }
  173. })
  174. },
  175. // 退出登录
  176. quitLogin(){
  177. uni.showModal({
  178. title: '温馨提示',
  179. content: '您确定退出当前登录状态吗?',
  180. success: result => {
  181. console.log(result);
  182. if(result.confirm){
  183. // uni.setStorageSync('quit_login_state', true);
  184. uni.removeStorageSync('userinfo');
  185. this.$msg('退出成功', {icon: 'success'});
  186. }
  187. }
  188. })
  189. }
  190. }
  191. }
  192. </script>
  193. <style>
  194. page{
  195. overflow-x: hidden;
  196. background-color: #f5f5f5;
  197. }
  198. </style>
  199. <style lang="scss" scoped>
  200. .head{
  201. height: max-content;
  202. width: 750rpx;
  203. background-color: #FFFFFF;
  204. padding: 30rpx 32rpx;
  205. box-sizing: border-box;
  206. display: flex;
  207. .user-img{
  208. width: 150rpx;
  209. height: 150rpx;
  210. border-radius: 50%;
  211. // background-color: #EEEEEE;
  212. margin-right: 20rpx;
  213. }
  214. .user-info{
  215. flex: auto;
  216. height: max-content;
  217. }
  218. .user-label{
  219. display: inline-block;
  220. font-size: 24rpx;
  221. color: #FFFFFF;
  222. background-color: #1E89FF;
  223. padding: 4rpx 16rpx;
  224. border-radius: 30rpx;
  225. margin-left: 8rpx;
  226. }
  227. }
  228. .list{
  229. margin-top: 20rpx;
  230. padding: 0 32rpx;
  231. background-color: #FFFFFF;
  232. width: 100%;
  233. height: auto;
  234. }
  235. .list-item{
  236. border-bottom: 1rpx solid #EEEEEE;
  237. height: 110rpx;
  238. box-sizing: border-box;
  239. position: relative;
  240. .icon-img{
  241. width: 50rpx;
  242. height: 50rpx;
  243. }
  244. .feedback-btn{
  245. position: absolute;
  246. width: 100%;
  247. height: 100%;
  248. z-index: 1;
  249. background: transparent;
  250. }
  251. &:last-child{
  252. border-bottom: none;
  253. }
  254. }
  255. .shop-list{
  256. margin-top: 20rpx;
  257. width: 750rpx;
  258. height: auto;
  259. background-color: #FFFFFF;
  260. padding: 30rpx 32rpx;
  261. padding-bottom: 0;
  262. box-sizing: border-box;
  263. }
  264. </style>