index.vue 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. <template>
  2. <!-- 现货仓单 -->
  3. <section class="spot_warran">
  4. <component :is="componentId" v-if="componentId">
  5. </component>
  6. <thirdMenu :list="tabList" @selectMenu="changeTab" :value="'title'"></thirdMenu>
  7. </section>
  8. </template>
  9. <script lang="ts">
  10. import { defineAsyncComponent, defineComponent, nextTick } from 'vue';
  11. import { enumOrderComponents } from '@/common/constants/enumOrderComponents';
  12. import thirdMenu from '@/common/components/thirdMenu/index.vue';
  13. import { handleOrderDetailList } from '@/common/setup/order/orderData';
  14. import Bus from '@/utils/eventBus/index';
  15. export default defineComponent({
  16. name: enumOrderComponents.spot_warrant,
  17. components: {
  18. thirdMenu,
  19. [enumOrderComponents.spot_warrant_deal]: defineAsyncComponent(() => import('./components/spot_warrant_deal/index.vue')),
  20. [enumOrderComponents.spot_warrant_designated_deal]: defineAsyncComponent(() => import('./components/spot_warrant_designated_deal/index.vue')),
  21. [enumOrderComponents.spot_warrant_in_and_out_warehouse]: defineAsyncComponent(() => import('./components/spot_warrant_in_and_out_warehouse/index.vue')),
  22. [enumOrderComponents.spot_warrant_inventory_summary]: defineAsyncComponent(() => import('./components/spot_warrant_inventory_summary/index.vue')),
  23. [enumOrderComponents.spot_warrant_pending_order]: defineAsyncComponent(() => import('./components/spot_warrant_pending_order/index.vue')),
  24. [enumOrderComponents.spot_warrant_spot_summary]: defineAsyncComponent(() => import('./components/spot_warrant_spot_summary/index.vue')),
  25. [enumOrderComponents.spot_warrant_spot_details]: defineAsyncComponent(() => import('./components/spot_warrant_spot_details/index.vue')), // 现货明细
  26. [enumOrderComponents.spot_warrant_bargain]: defineAsyncComponent(() => import('./components/spot_warrant_bargain/index.vue')),
  27. },
  28. setup() {
  29. const { componentId, tabList, changeTab } = handleOrderDetailList(enumOrderComponents.spot_warrant);
  30. // 组件重新加载
  31. function componentReload() {
  32. const code = componentId.value;
  33. componentId.value = undefined;
  34. nextTick(() => {
  35. componentId.value = code;
  36. });
  37. }
  38. // 资金变化,重新加载数据
  39. Bus.$on('moneyChangedNtf_UI', () => {
  40. // 重新加载组件
  41. componentReload();
  42. });
  43. return {
  44. componentId,
  45. tabList,
  46. changeTab,
  47. };
  48. },
  49. });
  50. </script>