index.vue 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. <template>
  2. <!-- 套期交易-期货持仓明细 -->
  3. <mtp-table-scroll>
  4. <template #default="{ scroll }">
  5. <a-table :columns="columns" class="srcollYTable" :pagination="false" :rowKey="(record, index) => index"
  6. :data-source="tableList" :scroll="scroll">
  7. <!-- 套期工具 -->
  8. <template #ordertype="{ text }">
  9. <span>{{ getOrderTypeName(text) }}</span>
  10. </template>
  11. </a-table>
  12. </template>
  13. </mtp-table-scroll>
  14. </template>
  15. <script lang="ts">
  16. import { PropType, watch } from 'vue'
  17. import { getOrderTypeName } from '@/@next/constants/enum/orderType'
  18. import { queryTableList, defineComponent, handleComposeTable } from '@/common/export/commonTable'
  19. import { Ermcp2AreaExposureRsp } from '@/services/go/ermcp/hedgedItem/interface'
  20. import { ErmcpExposurePostion } from '@/services/go/ermcp/exposure/interface'
  21. import { QueryAutualExposurePosition } from '@/services/go/ermcp/exposure'
  22. import MtpTableScroll from '@/common/components/tableScroll/index.vue'
  23. export default defineComponent({
  24. components: {
  25. MtpTableScroll,
  26. },
  27. props: {
  28. name: String,
  29. selectedRow: {
  30. type: Object as PropType<Ermcp2AreaExposureRsp>,
  31. default: () => ({}),
  32. },
  33. },
  34. setup(props) {
  35. const { loading, tableList, queryTable } = queryTableList<ErmcpExposurePostion>(true, 2); // 表格列表数据
  36. const queryFn = () => {
  37. const { middlegoodsid } = props.selectedRow;
  38. if (middlegoodsid) {
  39. queryTable(QueryAutualExposurePosition, { middlegoodsid });
  40. }
  41. }
  42. // 表格通用逻辑
  43. const composeTable = handleComposeTable<ErmcpExposurePostion>({
  44. queryFn,
  45. tableName: 'table_pcweb_hedgeditem_exposure_position_details',
  46. })
  47. watch(() => props.selectedRow, () => queryFn());
  48. return {
  49. ...composeTable,
  50. loading,
  51. tableList,
  52. getOrderTypeName,
  53. }
  54. }
  55. })
  56. </script>