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.

508 lines
177 KiB

3 months ago
  1. <template >
  2. <view class="memberVip" :data-theme="theme">
  3. <view class="bg">
  4. <view class="header">
  5. <view class="picTxt acea-row row-middle">
  6. <view class="pictrue">
  7. <image :src="userInfo.avatar"></image>
  8. </view>
  9. <view class="text acea-row row-middle">
  10. <view class="name line1">{{userInfo.nickname}}</view>
  11. <view class="vip" v-if='userInfo.vip'>
  12. <image :src="userInfo.vipIcon"></image>{{userInfo.vipName}}
  13. </view>
  14. </view>
  15. </view>
  16. </view>
  17. <view class="experience">
  18. <view class="title">当前经验值</view>
  19. <view class="num">{{levelInfo}}</view>
  20. <view class="axis">
  21. <view class="bar">
  22. <view class="barCon">
  23. <view class="solidBar" :style="'width: ' + widthLen +'%;'"></view>
  24. </view>
  25. <view class="acea-row row-around row-middle">
  26. <view class="spotw acea-row row-center" v-for="(item,index) in levelList" :key='index'>
  27. <view class="spot"
  28. :class="current >item.experience?'past':'' + ' ' + current==item.experience?'on':''">
  29. </view>
  30. </view>
  31. </view>
  32. </view>
  33. <view class="numList acea-row row-around row-middle">
  34. <view class="item" :class="current >=item.experience?'past':''"
  35. v-for="(item,index) in levelList" :key="index">{{item.experience}}</view>
  36. </view>
  37. </view>
  38. <view class="vipList acea-row">
  39. <view class="item">
  40. <view class="pictrue">
  41. <image :src="urlDomain+'crmebimage/perset/usersImg/vip01.png'"></image>
  42. </view>
  43. <view class="name">会员折扣</view>
  44. </view>
  45. <view class="item">
  46. <view class="pictrue">
  47. <image :src="urlDomain+'crmebimage/perset/usersImg/vip02.png'"></image>
  48. </view>
  49. <view class="name">专属徽章</view>
  50. </view>
  51. <view class="item">
  52. <view class="pictrue">
  53. <image :src="urlDomain+'crmebimage/perset/usersImg/vip03.png'"></image>
  54. </view>
  55. <view class="name">会员升级</view>
  56. </view>
  57. <view class="item">
  58. <view class="pictrue">
  59. <image :src="urlDomain+'crmebimage/perset/usersImg/vip04.png'"></image>
  60. </view>
  61. <view class="name">经验积累</view>
  62. </view>
  63. <view class="item">
  64. <view class="pictrue">
  65. <image :src="urlDomain+'crmebimage/perset/usersImg/vip05.png'"></image>
  66. </view>
  67. <view class="name">更多特权</view>
  68. </view>
  69. </view>
  70. </view>
  71. <view class="module">
  72. <view class="public_title acea-row row-middle">
  73. <view class="icons"></view>获取经验
  74. </view>
  75. <view class="gainList">
  76. <view class="item acea-row row-between-wrapper">
  77. <view class="picTxt acea-row row-middle">
  78. <view class="pictrue"><text class="iconfont icon-qiandao2"></text></view>
  79. <view class="text">
  80. <view class="name line1">签到</view>
  81. <view class="info line1">每日签到可获得经验值</view>
  82. </view>
  83. </view>
  84. <navigator url='/pages/users/user_sgin/index' class="button" hover-class="none">去获取</navigator>
  85. </view>
  86. <view class="item acea-row row-between-wrapper">
  87. <view class="picTxt acea-row row-middle">
  88. <view class="pictrue on"><text class="iconfont icon-shangpin"></text></view>
  89. <view class="text">
  90. <view class="name line1">购买商品</view>
  91. <view class="info line1">购买商品可获得对应是经验值</view>
  92. </view>
  93. </view>
  94. <navigator url="/pages/goods_cate/goods_cate" class="button" hover-class="none"
  95. open-type='switchTab'>去获取</navigator>
  96. </view>
  97. <!-- <view class="item acea-row row-between-wrapper">
  98. <view class="picTxt acea-row row-middle">
  99. <view class="pictrue on2"><text class="iconfont icon-yaoqing"></text></view>
  100. <view class="text">
  101. <view class="name line1">邀请好友</view>
  102. <view class="info line1">邀请好友注册商城可获得经验值</view>
  103. </view>
  104. </view>
  105. <navigator url="/pages/users/user_spread_code/index" class="button" hover-class="none">去获取</navigator>
  106. </view> -->
  107. </view>
  108. </view>
  109. </view>
  110. <view class="detailed" v-if="expList.length">
  111. <view class="public_title acea-row row-middle">
  112. <view class="icons"></view>经验值明细
  113. </view>
  114. <view class="list">
  115. <view class="item acea-row row-between-wrapper" v-for="(item,index) in expList" :key="index">
  116. <view class="text">
  117. <view class="name">{{item.title}}</view>
  118. <view class="data">{{item.createTime}}</view>
  119. </view>
  120. <view class="num" v-if="item.type == 1">+{{item.experience}}</view>
  121. <view class="num on" v-else>-{{item.experience}}</view>
  122. </view>
  123. </view>
  124. </view>
  125. <view class='loadingicon acea-row row-center-wrapper' v-if="expList.length">
  126. <text class='loading iconfont icon-jiazai' :hidden='loading==false'></text>{{loadTitle}}
  127. </view>
  128. </view>
  129. </template>
  130. <script>
  131. import {
  132. mapGetters
  133. } from "vuex";
  134. import {
  135. getlevelInfo,
  136. getlevelExpList
  137. } from '@/api/user.js';
  138. let app = getApp();
  139. export default {
  140. computed: mapGetters(['userInfo']),
  141. data() {
  142. return {
  143. urlDomain: this.$Cache.get("imgHost"),
  144. //userInfo: '',
  145. levelInfo: '',
  146. levelList: [],
  147. current: 0,
  148. widthLen: 0,
  149. loading: false,
  150. loadend: false,
  151. loadTitle: '加载更多', //提示语
  152. page: 1,
  153. limit: 20,
  154. expList: [],
  155. theme:app.globalData.theme,
  156. };
  157. },
  158. onLoad() {
  159. this.levelInfo = this.userInfo.experience;
  160. this.getInfo();
  161. this.getlevelList();
  162. },
  163. methods: {
  164. getInfo: function() {
  165. let that = this;
  166. getlevelInfo().then(res => {
  167. let levelList = res.data;
  168. let list = []
  169. that.levelList = levelList;
  170. levelList.map((item, index) => {
  171. if (item.experience <= that.levelInfo) {
  172. list.push(item.experience)
  173. }
  174. })
  175. let maxn = Math.max.apply(null, list);
  176. that.current = maxn;
  177. // 解决len取的值没有时;
  178. let levelListLen = levelList[list.length] ? levelList[list.length] : levelList[list
  179. .length - 1];
  180. // 解决除数不能为0
  181. let divisor = levelListLen.experience - maxn ? levelListLen.experience - maxn : 1;
  182. // 每小格所占的百分比
  183. let per = (that.levelInfo - maxn) / divisor / levelList.length;
  184. that.widthLen = ((list.length - 0.5) / (levelList.length)) * 100 + per * 100
  185. }).catch(function(res) {
  186. return that.$util.Tips({
  187. title: res
  188. });
  189. })
  190. },
  191. getlevelList: function() {
  192. let that = this
  193. if (this.loadend) return false;
  194. if (this.loading) return false;
  195. getlevelExpList({
  196. page: that.page,
  197. limit: that.limit
  198. }).then(res => {
  199. let list = res.data.list,
  200. loadend = list.length < that.limit;
  201. let expList = that.$util.SplitArray(list, that.expList);
  202. that.$set(that, 'expList', expList);
  203. that.loadend = loadend;
  204. that.loadTitle = loadend ? '我也是有底线的~' : '加载更多';
  205. that.page = that.page + 1;
  206. that.loading = false;
  207. }).catch(err => {
  208. that.loading = false;
  209. that.loadTitle = '加载更多';
  210. });
  211. }
  212. },
  213. onReachBottom: function() {
  214. this.getlevelList();
  215. }
  216. }
  217. </script>
  218. <style lang="scss">
  219. .memberVip {
  220. .bg {
  221. background-color: #fff;
  222. .header {
  223. background-image: url('data:image/png;base64,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
  224. background-repeat: no-repeat;
  225. background-size: 100% 100%;
  226. width: 100%;
  227. height: 380rpx;
  228. background-color: #fff;
  229. .picTxt {
  230. padding: 28rpx 39rpx;
  231. .pictrue {
  232. width: 70rpx;
  233. height: 70rpx;
  234. border-radius: 50%;
  235. image {
  236. width: 100%;
  237. height: 100%;
  238. border-radius: 50%;
  239. }
  240. }
  241. .text {
  242. color: #FAE2C1;
  243. margin-left: 23rpx;
  244. .name {
  245. max-width: 385rpx;
  246. }
  247. .vip {
  248. padding: 6rpx 18rpx;
  249. border: 1px solid rgba(250, 226, 193, 1);
  250. border-radius: 20rpx;
  251. font-size: 18rpx;
  252. margin-left: 15rpx;
  253. display: flex;
  254. align-items: center;
  255. image {
  256. width: 20rpx;
  257. height: 20rpx;
  258. border-radius: 50%;
  259. margin-right: 8rpx;
  260. }
  261. }
  262. }
  263. }
  264. }
  265. .experience {
  266. background-image: url('data:image/jpg;base64,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
  267. background-repeat: no-repeat;
  268. background-size: 100% 100%;
  269. width: 690rpx;
  270. height: 360rpx;
  271. margin: -250rpx auto 0 auto;
  272. border-radius: 23rpx;
  273. padding: 22rpx 27rpx;
  274. box-sizing: border-box;
  275. .title {
  276. font-size: 24rpx;
  277. color: #AE8B4A;
  278. }
  279. .num {
  280. font-size: 60rpx;
  281. color: #775C29;
  282. margin-top: 6rpx;
  283. }
  284. .axis {
  285. margin: 10rpx 0 15rpx 0;
  286. overflow: hidden;
  287. .bar {
  288. width: 630rpx;
  289. .spotw {
  290. width: 96rpx;
  291. }
  292. .barCon {
  293. width: 100%;
  294. height: 3rpx;
  295. background: #D7BD89;
  296. border-radius: 2rpx;
  297. .solidBar {
  298. width: 0;
  299. height: 100%;
  300. background: #775C29;
  301. border-radius: 2rpx;
  302. transition: width 0.6s ease;
  303. }
  304. }
  305. .spot {
  306. width: 8rpx;
  307. height: 8rpx;
  308. background: #D7BD89;
  309. border-radius: 50%;
  310. margin-top: -5rpx;
  311. &.past {
  312. background: #775C29;
  313. }
  314. &.on {
  315. background: #775C29;
  316. box-shadow: 0rpx 0rpx 8rpx #000;
  317. }
  318. }
  319. }
  320. .numList {
  321. font-size: 26rpx;
  322. color: #D7BD89;
  323. margin-top: 14rpx;
  324. .item {
  325. width: 96rpx;
  326. text-align: center;
  327. &.past {
  328. color: #775C29;
  329. }
  330. }
  331. }
  332. }
  333. .vipList {
  334. .item {
  335. width: 20%;
  336. text-align: center;
  337. .pictrue {
  338. width: 70rpx;
  339. height: 70rpx;
  340. margin: 0 auto;
  341. image {
  342. width: 100%;
  343. height: 100%;
  344. }
  345. }
  346. .name {
  347. font-size: 24rpx;
  348. color: #403D4E;
  349. margin-top: 18rpx;
  350. }
  351. }
  352. }
  353. }
  354. .module {
  355. padding: 40rpx 30rpx 0 30rpx;
  356. .gainList {
  357. margin-top: 10rpx;
  358. .item {
  359. height: 130rpx;
  360. position: relative;
  361. .picTxt {
  362. .pictrue {
  363. width: 70rpx;
  364. height: 70rpx;
  365. border-radius: 50%;
  366. background: linear-gradient(-45deg, rgba(249, 119, 107, 1) 0%, rgba(255, 147, 137, 1) 100%);
  367. text-align: center;
  368. line-height: 70rpx;
  369. color: #fff;
  370. &.on {
  371. background: linear-gradient(-45deg, rgba(254, 160, 96, 1) 0%, rgba(255, 204, 170, 1) 100%);
  372. }
  373. &.on2 {
  374. background: linear-gradient(-45deg, rgba(157, 208, 116, 1) 0%, rgba(161, 214, 124, 1) 100%);
  375. }
  376. }
  377. .text {
  378. margin-left: 30rpx;
  379. width: 400rpx;
  380. .name {
  381. font-size: 30rpx;
  382. color: #282828;
  383. }
  384. .info {
  385. font-size: 24rpx;
  386. color: #999999;
  387. margin-top: 6rpx;
  388. }
  389. }
  390. }
  391. .button {
  392. width: 140rpx;
  393. height: 50rpx;
  394. background: linear-gradient(-90deg, rgba(231, 182, 103, 1) 0%, rgba(255, 234, 181, 1) 100%);
  395. border-radius: 25rpx;
  396. text-align: center;
  397. line-height: 50rpx;
  398. font-size: 26rpx;
  399. color: #8D5306;
  400. }
  401. &~.item {
  402. &::after {
  403. position: absolute;
  404. content: ' ';
  405. width: 720rpx;
  406. height: 1rpx;
  407. background: rgba(245, 245, 245, 1);
  408. top: 0;
  409. left: 0;
  410. }
  411. }
  412. }
  413. }
  414. }
  415. }
  416. .public_title {
  417. color: #282828;
  418. font-size: 30rpx;
  419. .icons {
  420. width: 6rpx;
  421. height: 28rpx;
  422. background: rgba(230, 192, 131, 1);
  423. margin-right: 10rpx;
  424. }
  425. }
  426. .detailed {
  427. padding: 30rpx 30rpx 0 30rpx;
  428. margin-top: 15rpx;
  429. background-color: #fff;
  430. .list {
  431. margin-top: 15rpx;
  432. .item {
  433. height: 122rpx;
  434. border-bottom: 1px solid #EEEEEE;
  435. .text {
  436. .name {
  437. font-size: 28rpx;
  438. color: #282828;
  439. }
  440. .data {
  441. color: #999;
  442. font-size: 24rpx;
  443. }
  444. }
  445. .num {
  446. font-size: 32rpx;
  447. color: $theme-color;
  448. }
  449. .on {
  450. color: #16AC57;
  451. }
  452. }
  453. }
  454. }
  455. }
  456. </style>