cwg-submenu.vue 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. <template>
  2. <view class="cwg-submenu">
  3. <view class="cwg-submenu-title">
  4. <text>
  5. CWG Markets
  6. </text>
  7. </view>
  8. <view class="submenu">
  9. <view class="cwg-submenu-item" v-for="item in submenuItems" :key="item.key" @click="handleClick(item)">
  10. <text>{{ item.label }}</text>
  11. </view>
  12. </view>
  13. </view>
  14. </template>
  15. <script lang="ts" setup>
  16. import { ref } from 'vue';
  17. import useRouter from "@/hooks/useRouter";
  18. const router = useRouter();
  19. interface MenuItem {
  20. key: string;
  21. label: string;
  22. icon?: string;
  23. children?: MenuItem[];
  24. }
  25. const submenuItems = ref<MenuItem[]>([{ key: 'client', label: 'Client Zone', icon: 'icon-client' },
  26. { key: 'promotion', label: 'Promotion Center', icon: 'icon-promotion' },
  27. { key: 'deposit', label: 'Deposit', icon: 'icon-deposit' },
  28. { key: 'withdrawal', label: 'Withdrawal', icon: 'icon-withdrawal' },
  29. { key: 'payment', label: 'Payment History', icon: 'icon-payment' },
  30. { key: 'transfer', label: 'Internal Transfer', icon: 'icon-transfer' },
  31. { key: 'application', label: 'Application History', icon: 'icon-application' },
  32. { key: 'ib', label: 'IB Zone', icon: 'icon-ib' },
  33. { key: 'copy', label: 'Copy Trading', icon: 'icon-copy' },
  34. { key: 'platform', label: 'Trading Platform', icon: 'icon-platform' },
  35. { key: 'chat', label: 'Online Chat', icon: 'icon-chat' },])
  36. const emit = defineEmits(['submenu-click']);
  37. function handleClick(item: MenuItem) {
  38. router.push(item.key);
  39. }
  40. </script>
  41. <style scoped lang="scss">
  42. @import "@/uni.scss";
  43. .cwg-submenu {
  44. background: #fff;
  45. position: relative;
  46. z-index: 11;
  47. padding: 0;
  48. margin: 0;
  49. box-shadow: px2rpx(4) 0 px2rpx(12) rgba(15, 23, 43, 0.08);
  50. border-left: 1px solid #E2E8F0;
  51. .cwg-submenu-title {
  52. padding: px2rpx(20);
  53. font-size: px2rpx(16);
  54. font-weight: 700;
  55. border-bottom: 1px solid #E2E8F0;
  56. color: #0F172B;
  57. }
  58. .submenu {
  59. margin: 0 px2rpx(20);
  60. width: px2rpx(200);
  61. }
  62. .cwg-submenu-item {
  63. padding: px2rpx(20) 0px;
  64. cursor: pointer;
  65. color: #0F172B;
  66. font-weight: 600;
  67. transition: background 0.2s;
  68. display: flex;
  69. align-items: center;
  70. gap: px2rpx(10);
  71. font-size: px2rpx(14);
  72. border-bottom: 1px solid #E2E8F0;
  73. }
  74. }
  75. </style>