details.vue 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  1. <template>
  2. <scroll-view refresher-enabled :refresher-triggered="isRefreshing" @refresherrefresh="onCustomRefresh"
  3. class="details-main" @scrolltolower="scrolltolower" scroll-y>
  4. <view class="header-box flex_c_c_f hr-solid">
  5. <view class="price-img"></view>
  6. <view class="header-title">余额提现-到支付宝</view>
  7. <view class="header-price">¥{{ data.takeAmount }}</view>
  8. </view>
  9. <view class="stauts-box hr-solid" >
  10. <view class="font-30-333 stauts-text ">当前状态</view>
  11. <view>
  12. <up-steps :current="current" direction="column" dot>
  13. <up-steps-item title="发起提现" :desc="data.createTime">
  14. </up-steps-item>
  15. <up-steps-item title="已驳回" :desc="data.rejectReason" v-if="data.appStatus === '3'"
  16. error></up-steps-item>
  17. <up-steps-item title="后台处理中" :desc="data.updateTime" v-else></up-steps-item>
  18. <up-steps-item title="打款失败" v-if="data.isPay === '2'" error></up-steps-item>
  19. <up-steps-item title="到账" :desc="data.lastTime"
  20. v-if="['1', '0'].includes(data.isPay)"></up-steps-item>
  21. </up-steps>
  22. </view>
  23. </view>
  24. <view class="list-box">
  25. <view v-for="item in list" :key="item.key" class="list-item">
  26. <view class="font-30-333 list-name">{{ item.name }}</view>
  27. <view class="font-30-333" v-if="item.type === 'value'">
  28. 支付宝
  29. </view>
  30. <view class="font-30-333" v-else>{{ data[item.key] || '-' }}</view>
  31. </view>
  32. </view>
  33. </scroll-view>
  34. </template>
  35. <script setup>
  36. import { computed, ref } from 'vue';
  37. import { onLoad } from '@dcloudio/uni-app';
  38. import { getIncomeDetails } from "@/api/mine.js";
  39. import DictTag from '@/components/DictTag/index.vue'
  40. import {
  41. useDict
  42. } from '@/utils/dict.js';
  43. const isRefreshing = ref(false)
  44. const list = [
  45. {
  46. name: '提现金额',
  47. key: 'shoudAmount'
  48. },
  49. {
  50. name: '提现账户',
  51. key: 'alipayName'
  52. },
  53. {
  54. name: '提现账号',
  55. key: 'alipayAccountNo'
  56. },
  57. {
  58. name: '申请时间',
  59. key: 'createTime'
  60. },
  61. {
  62. name: '到账时间',
  63. key: 'lastTime'
  64. },
  65. {
  66. name: '打款方式',
  67. key: 'payType',
  68. type: 'value',
  69. },
  70. // {
  71. // name: '提现单号',
  72. // key: 'volunteerTakeRecordId'
  73. // },
  74. ]
  75. const id = ref(null);
  76. const data = ref({
  77. alipayName: '**',
  78. createTime: '',
  79. takeAmount: 0.0,
  80. });
  81. const current = computed(() => {
  82. if (['3', '1'].includes(data.value.appStatus) || ['0'].includes(data.value.isPay)) {
  83. return 1
  84. }
  85. return 2
  86. })
  87. const onCustomRefresh = () => {
  88. getDetails();
  89. };
  90. const scrolltolower = () => {
  91. console.log('scrolltolower');
  92. };
  93. const getDetails = async () => {
  94. try {
  95. isRefreshing.value = true;
  96. const res = await getIncomeDetails(id.value);
  97. if (res.code !== 200) {
  98. throw res.msg || '账单详情获取失败!'
  99. }
  100. data.value = res.data;
  101. } catch (error) {
  102. console.log("TCL: getDetails -> error", error)
  103. uni.showToast({
  104. title: error.message || error,
  105. icon: 'none'
  106. });
  107. } finally {
  108. isRefreshing.value = false;
  109. }
  110. };
  111. onLoad((options) => {
  112. console.log("TCL: options", options)
  113. id.value = options.sourceId;
  114. getDetails();
  115. })
  116. </script>
  117. <style lang="scss" scoped>
  118. @import "./index.scss";
  119. </style>