index.vue 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. <template>
  2. <app-view class="mine-generalize" flex>
  3. <template #header>
  4. <app-navbar title="我的推广" />
  5. </template>
  6. <app-pull-refresh class="mine-generalize__container" v-model:error="error" v-model:pageIndex="pageIndex"
  7. :page-count="pageCount" @refresh="onRefresh">
  8. <div class="mine-generalize__header">
  9. <div class="info">
  10. <span>{{ userAccount.refercount }}</span>
  11. <h4>推广人数</h4>
  12. </div>
  13. <div class="block">
  14. <div class="block-left">
  15. <h4>当日新增</h4>
  16. <span>{{ userAccount.todayrefercount }}</span>
  17. </div>
  18. <div class="block-right">
  19. <h4>推广编号</h4>
  20. <span @click="showQRCode = false">{{ userAccount.refernum }}</span>
  21. </div>
  22. </div>
  23. </div>
  24. <Tabs class="mine-generalize__tabs" @change="onClickTab">
  25. <Tab title="交易数据">
  26. <Empty v-if="dataList.length === 0" />
  27. </Tab>
  28. <Tab title="推广收益">
  29. <Empty />
  30. </Tab>
  31. </Tabs>
  32. <app-list :columns="columns" :data-list="dataList" v-if="dataList.length">
  33. <!-- 日期 -->
  34. <template #reckondate="{ value }">
  35. {{ formatDate(value, 'YYYY-MM-DD') }}
  36. </template>
  37. <!-- 市场 -->
  38. <template #marketid="{ value }">
  39. {{ value == Market.THJ ? '采购' : '供求' }}
  40. </template>
  41. <!-- 吨数 -->
  42. <template #tradeqty="{ row }">
  43. {{ row.marketid === Market.THJ ? row.buytradeqty : row.selltradeqty }}
  44. </template>
  45. </app-list>
  46. </app-pull-refresh>
  47. <app-qrcode v-model:show="showQRCode" :content="userAccount.refernum" />
  48. </app-view>
  49. </template>
  50. <script lang="ts" setup>
  51. import { shallowRef } from 'vue'
  52. import { Tab, Tabs, Empty } from 'vant'
  53. import { formatDate } from '@/filters'
  54. import { useLoginStore } from '@/stores'
  55. import { queryUserAccount } from '@/services/api/account'
  56. import { useQueryTHJTradeDataList } from '@/business/goods'
  57. import { Market } from '@/constants/market'
  58. import AppQrcode from '@mobile/components/base/qrcode/index.vue'
  59. import AppPullRefresh from '@mobile/components/base/pull-refresh/index.vue'
  60. import AppList from '@mobile/components/base/list/index.vue'
  61. const { pageIndex, pageCount, getQueryTHJTradeDataList } = useQueryTHJTradeDataList()
  62. const pullRefreshRef = shallowRef()
  63. const dataList = shallowRef<Model.THJTradeDataRsp[]>([])
  64. const error = shallowRef(false)
  65. const { getUserId } = useLoginStore()
  66. const showQRCode = shallowRef(false)
  67. const userAccount = shallowRef<Partial<Model.UserAccount>>({
  68. todayrefercount: 0,
  69. refercount: 0,
  70. })
  71. const columns: Model.TableColumn[] = [
  72. { prop: 'reckondate', label: '日期' },
  73. { prop: 'marketid', label: '市场' },
  74. { prop: 'wrstandardname', label: '商品' },
  75. { prop: 'accountname', label: '被推荐人' },
  76. { prop: 'tradeqty', label: '吨数' },
  77. { prop: 'selltradelot', label: '笔数' },
  78. ]
  79. queryUserAccount({
  80. data: {
  81. userID: getUserId()
  82. },
  83. success: (res) => {
  84. userAccount.value = res.data
  85. }
  86. })
  87. // Tab触发
  88. const onClickTab = () => {
  89. pullRefreshRef.value?.refresh()
  90. }
  91. const onRefresh = (finish: () => void) => {
  92. /// 查询数据
  93. getQueryTHJTradeDataList(Market.THJ).then((res) => {
  94. if (pageIndex.value === 1) {
  95. dataList.value = []
  96. }
  97. dataList.value.push(...res)
  98. }).catch(() => {
  99. error.value = true
  100. }).finally(() => {
  101. finish()
  102. })
  103. }
  104. </script>
  105. <style lang="less">
  106. @import './index.less';
  107. </style>