index.vue 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  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 #hedgedtype="{ text }">
  9. <span>{{ getHedgedTypeName(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 { queryTableList, defineComponent, handleComposeTable } from '@/common/export/commonTable';
  18. import { getHedgedTypeName } from '@/@next/constants/enum/hedgedType'
  19. import { Ermcp2AreaExposureRsp, Ermcp2HedgedItemsDetailReq, Ermcp2HedgedItemsDetailRsp } from '@/services/go/ermcp/hedgedItem/interface'
  20. import { queryErmcp2HedgedItemsDetail } from '@/services/go/ermcp/hedgedItem'
  21. import { getUserId } from '@/services/bus/user'
  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<Ermcp2HedgedItemsDetailRsp>(true, 2); // 表格列表数据
  36. const queryFn = () => {
  37. const { middlegoodsid } = props.selectedRow;
  38. if (middlegoodsid) {
  39. const param: Ermcp2HedgedItemsDetailReq = {
  40. userid: getUserId(),
  41. middlegoodsid
  42. }
  43. queryTable(queryErmcp2HedgedItemsDetail, param);
  44. } else {
  45. tableList.value = []
  46. }
  47. }
  48. // 表格通用逻辑
  49. const composeTable = handleComposeTable<Ermcp2HedgedItemsDetailRsp>({
  50. queryFn,
  51. tableName: 'table_pcweb_hedgeditem_exposure_plan_details',
  52. })
  53. watch(() => props.selectedRow, () => queryFn());
  54. return {
  55. ...composeTable,
  56. loading,
  57. tableList,
  58. getHedgedTypeName,
  59. }
  60. }
  61. })
  62. </script>