details.vue 3.5 KB

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