chargeConsumeRecord.vue 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. <template>
  2. <div class="order-console">
  3. <el-drawer
  4. v-model="showOrderConsole"
  5. title="余额变动记录"
  6. direction="rtl"
  7. size="50%"
  8. :before-close="beforeClose"
  9. >
  10. <el-table class="mt-4" size="large" :data="pager.lists">
  11. <el-table-column type="index" width="55"/>
  12. <el-table-column label="变动类型" prop="typeDesc" min-width="80"/>
  13. <el-table-column label="来源/场景" prop="bizScene" show-tooltip-when-overflow/>
  14. <el-table-column label="变动金额(元)" prop="amount" align="right" show-tooltip-when-overflow>
  15. <template #default="scope">
  16. <span v-if="scope.row.type > 0" style="font-weight: bolder;color:#F56C6C">+{{ formatAmount(scope.row.amount) }}</span>
  17. <span v-else style="font-weight: bolder;color:#67C23A">-{{ formatAmount(scope.row.amount) }}</span>
  18. </template>
  19. </el-table-column>
  20. <el-table-column label="操作时间" prop="eventTime"/>
  21. </el-table>
  22. <div class="flex justify-end mt-4">
  23. <pagination v-model="pager" @change="getLists"/>
  24. </div>
  25. </el-drawer>
  26. </div>
  27. </template>
  28. <script setup lang="ts">
  29. import { ElScrollbar } from 'element-plus'
  30. import feedback from '@/utils/feedback'
  31. import {useElabPaging} from "@/hooks/useElabPaging";
  32. import {queryBalanceRecordPage} from "@/api/membership";
  33. // const route = useRoute()
  34. const queryParams = reactive({
  35. mobile: ''
  36. })
  37. const { pager, getLists, resetPage, resetParams } = useElabPaging({
  38. fetchFun: queryBalanceRecordPage,
  39. params: queryParams
  40. })
  41. const showOrderConsole = ref(false)
  42. const open = (item: any) => {
  43. showOrderConsole.value = true
  44. queryParams.userId = item.userId
  45. getLists()
  46. }
  47. const beforeClose = () => {
  48. showOrderConsole.value = false
  49. }
  50. // 示例:添加千分位分隔符并保留两位小数
  51. const formatAmount = (amount: string) => {
  52. return Number(amount).toFixed(2).replace(/\B(?=(\d{3})+(?!\d))/g, ',');
  53. }
  54. onMounted(() => {
  55. // initData()
  56. })
  57. defineExpose({
  58. open
  59. })
  60. </script>
  61. <style lang="scss" scoped>
  62. </style>