index.vue 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160
  1. <template>
  2. <view class="container" v-if="!isLoading">
  3. <view class="space-upper">
  4. <view class="wallet-account">
  5. <view class="wallet-account_balance">
  6. <text>¥{{ userInfo.balance }}</text>
  7. </view>
  8. <view class="wallet-account_lable">
  9. <text>余额(元)</text>
  10. </view>
  11. </view>
  12. </view>
  13. <view class="space-lower">
  14. <view class="space-lower_item btn-recharge">
  15. <view class="btn-submit" @click="onTargetRecharge()">充值</view>
  16. </view>
  17. <view class="space-lower_item item-lable dis-flex flex-x-around">
  18. <view class="lable-text" @click="onTargetRechargeOrder()">
  19. <text>充值记录</text>
  20. </view>
  21. <view class="lable-text" @click="onTargetBalanceLog()">
  22. <text>账单详情</text>
  23. </view>
  24. </view>
  25. </view>
  26. </view>
  27. </template>
  28. <script>
  29. import * as UserApi from '@/api/user'
  30. import * as BalanceApi from '@/api/balance'
  31. export default {
  32. data() {
  33. return {
  34. // 正在加载
  35. isLoading: true,
  36. // 会员信息
  37. userInfo: {},
  38. // 充值设置
  39. setting: {},
  40. }
  41. },
  42. /**
  43. * 生命周期函数--监听页面加载
  44. */
  45. onLoad(options) {
  46. // 获取页面数据
  47. this.getPageData()
  48. },
  49. methods: {
  50. // 获取页面数据
  51. getPageData() {
  52. const app = this
  53. app.isLoading = true
  54. Promise.all([app.getUserInfo(), app.getSetting()])
  55. .then(() => app.isLoading = false)
  56. },
  57. // 获取会员信息
  58. getUserInfo() {
  59. const app = this
  60. return new Promise((resolve, reject) => {
  61. UserApi.info()
  62. .then(result => {
  63. app.userInfo = result.data.userInfo
  64. resolve(app.userInfo)
  65. })
  66. })
  67. },
  68. // 获取充值设置
  69. getSetting() {
  70. const app = this
  71. return new Promise((resolve, reject) => {
  72. BalanceApi.setting()
  73. .then(result => {
  74. app.setting = result.data.data
  75. resolve(app.setting)
  76. })
  77. })
  78. },
  79. // 跳转充值页面
  80. onTargetRecharge() {
  81. this.$navTo('pages/wallet/recharge/index')
  82. },
  83. // 跳转充值记录页面
  84. onTargetRechargeOrder() {
  85. this.$navTo('pages/wallet/recharge/order')
  86. },
  87. // 跳转账单详情页面
  88. onTargetBalanceLog() {
  89. this.$navTo('pages/wallet/balance/log')
  90. }
  91. }
  92. }
  93. </script>
  94. <style>
  95. page {
  96. background: #fff;
  97. }
  98. </style>
  99. <style lang="scss" scoped>
  100. .container {
  101. background: #fff;
  102. }
  103. .space-upper {
  104. padding: 100rpx 0;
  105. text-align: center;
  106. background: $fuint-theme;
  107. margin: 50rpx 30rpx 10rpx 30rpx;
  108. border-radius: 8rpx;
  109. }
  110. .wallet-account {
  111. margin-top: 20rpx;
  112. }
  113. .wallet-account_balance {
  114. font-size: 52rpx;
  115. color: #FFFFFF;
  116. }
  117. .wallet-account_lable {
  118. margin-top: 10rpx;
  119. color: #FFFFFF;
  120. font-size: 24rpx;
  121. }
  122. .space-lower {
  123. margin-top: 30rpx;
  124. padding: 0rpx 30rpx 0rpx 30rpx;
  125. }
  126. .btn-recharge .btn-submit {
  127. width: 100%;
  128. height: 84rpx;
  129. line-height: 84rpx;
  130. margin: 100rpx auto;
  131. text-align: center;
  132. border-radius: 40rpx;
  133. background: linear-gradient(to right, #f9211c, #ff6335);
  134. color: white;
  135. font-size: 30rpx;
  136. }
  137. .item-lable {
  138. margin-top: 80rpx;
  139. font-size: 26rpx;
  140. color: rgb(94, 94, 94);
  141. padding: 0 100rpx;
  142. }
  143. </style>