index.vue 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. <template>
  2. <div class="topTableHeight">
  3. <FristMenu :list="marketsSetion" :value="'marketsectionname'" @selectMenu="selectSection" />
  4. <component :is="componentId" v-if="componentId"></component>
  5. <ThirdMenu :list="markets" :value="'marketname'" @selectMenu="onSelectMarket" />
  6. </div>
  7. </template>
  8. <script lang="ts">
  9. import FristMenu from '@/common/components/firstMenu/index.vue';
  10. import ThirdMenu from '@/common/components/thirdMenu/index.vue';
  11. import { TradeMode } from '@/common/constants/enumCommon';
  12. import { contextMenu, defineAsyncComponent, defineComponent } from '@/common/export/commonTable';
  13. import { initData } from '@/common/methods';
  14. import APP from '@/services';
  15. import { TjmdMarketSection, TjmdMarketSectionConfig } from '@/services/go/Tjmd/interface';
  16. import { ref } from 'vue';
  17. export default defineComponent({
  18. components: {
  19. FristMenu,
  20. ThirdMenu,
  21. contextMenu,
  22. [TradeMode.WarehouseReceiptTrade]: defineAsyncComponent(() => import('./compoments/warehouse_receipt_trade/index.vue')),
  23. [TradeMode.quote99]: defineAsyncComponent(() => import('./compoments/spot_trade_reference_market/index.vue')),
  24. [TradeMode.DiaoQi]: defineAsyncComponent(() => import('./compoments/spot_trade_order_transaction/index.vue')),
  25. },
  26. setup() {
  27. // 市场板块
  28. const marketsSetion = APP.getRef('marketsSection')
  29. // 市场
  30. const markets = ref<TjmdMarketSectionConfig[]>([])
  31. // 选中的市场
  32. const selctedMarket = ref<TjmdMarketSectionConfig | null>(null)
  33. const componentId = ref<string>('')
  34. initData(() => {
  35. if (marketsSetion.value.length) {
  36. selectSection(marketsSetion.value[0])
  37. // markets.value = marketsSetion.value[0].mlist
  38. }
  39. })
  40. // 切换市场板块
  41. function selectSection(value: TjmdMarketSection) {
  42. markets.value = [...value.mlist, ...value.mlist]
  43. const index = marketsSetion.value.findIndex((el: TjmdMarketSection) => el.marketsectionid === value.marketsectionid)
  44. if (index !== -1 && value.mlist.length) {
  45. onSelectMarket(index, value.mlist[0])
  46. }
  47. }
  48. // 切换市场
  49. function onSelectMarket(index: number, value: TjmdMarketSectionConfig) {
  50. selctedMarket.value = value
  51. componentId.value = value.trademode.toString()
  52. }
  53. return { marketsSetion, selectSection, markets, onSelectMarket, componentId };
  54. },
  55. });
  56. </script>
  57. <style lang="less">
  58. .home {
  59. .withus {
  60. cursor: pointer;
  61. margin-top: 35px;
  62. padding-bottom: 25px;
  63. }
  64. }
  65. </style>