index.vue 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. <!-- 交易数据 -->
  2. <template>
  3. <app-view>
  4. <template #header>
  5. <app-filter :options="filterOptons" :loading="loading" />
  6. </template>
  7. <!-- 表格数据 -->
  8. <app-table :data="dataList" v-model:columns="tableColumns" :loading="loading">
  9. <!-- 日期 -->
  10. <template #reckondate="{ value }">
  11. {{ formatDate(value, 'YYYY-MM-DD') }}
  12. </template>
  13. <!-- 市场 -->
  14. <template #marketid="{ value }">
  15. {{ getTHJMarketName(value) }}
  16. </template>
  17. <!-- 吨数 -->
  18. <template #tradeqty="{ row }">
  19. {{ `${row.buytradeqty}/${row.selltradeqty}` }}
  20. </template>
  21. <!-- 笔数 -->
  22. <template #tradelot="{ row }">
  23. {{ `${row.buytradelot}/${row.selltradelot}` }}
  24. </template>
  25. <template #footer>
  26. <app-pagination :total="total" v-model:page-size="pageSize" v-model:page-index="pageIndex"
  27. @change="onRefresh" />
  28. </template>
  29. </app-table>
  30. </app-view>
  31. </template>
  32. <script lang="ts" setup>
  33. import { shallowRef } from 'vue'
  34. import { ElMessage } from 'element-plus'
  35. import { formatDate } from '@/filters'
  36. import { Market, getTHJMarketList, getTHJMarketName } from '@/constants/market'
  37. import { useDataFilter } from '@/hooks/datatable'
  38. import { useQueryTHJTradeDataList } from '@/business/goods'
  39. import AppTable from '@pc/components/base/table/index.vue'
  40. import AppFilter from '@pc/components/base/table-filter/index.vue'
  41. import AppPagination from '@pc/components/base/pagination/index.vue'
  42. const { loading, dataList, total, pageIndex, pageSize, getQueryTHJTradeDataList } = useQueryTHJTradeDataList()
  43. const { filterOptons, getQueryParams } = useDataFilter<Model.THJTradeDataReq>()
  44. const tableColumns = shallowRef<Model.TableColumn[]>([
  45. { prop: 'reckondate', label: '日期' },
  46. { prop: 'marketid', label: '市场' },
  47. { prop: 'wrstandardname', label: '商品' },
  48. { prop: 'accountname', label: '下单好友' },
  49. { prop: 'tradeqty', label: '吨数(买/卖)' },
  50. { prop: 'tradelot', label: '笔数(买/卖)' },
  51. ])
  52. filterOptons.selectList = [
  53. {
  54. label: '市场',
  55. key: 'marketid',
  56. locked: true,
  57. selectedValue: Market.THJ,
  58. options: getTHJMarketList(),
  59. },
  60. ]
  61. filterOptons.buttonList = [
  62. { lable: '查询', className: 'el-button--primary', onClick: () => onSearch() }
  63. ]
  64. const onSearch = (clear = false) => {
  65. getQueryParams((qs) => {
  66. pageIndex.value = 1
  67. getQueryTHJTradeDataList(qs.marketid)
  68. }, clear)
  69. }
  70. const onRefresh = () => {
  71. getQueryParams((qs) => {
  72. getQueryTHJTradeDataList(qs.marketid).catch((err) => ElMessage.error(err))
  73. })
  74. }
  75. onRefresh()
  76. </script>