<template>
  <div class="layout-container">
    <!-- 顶部菜单栏 -->
    <header class="header">
      <div style="display: flex">
        <DrawerHeader />
      </div>
    </header>
    <div class="footer-container">
      <aside class="left-aside" v-if="showLeft" :style="{ width: leftWidth }">
        <div class="img-layer">
          <!-- <ClientOnly> -->
          <LayerTree />
          <!-- </ClientOnly> -->
        </div>
        <div @click="showLeft = false">⬅️</div>
      </aside>
      <!-- 中间主内容区 -->
      <main class="main-content">
        <CanvasRenderer ref="drawerCanvas" />
      </main>
      <!-- 右侧侧边栏 -->
      <aside v-if="showRight" :style="{ width: rightWidth }" class="right-aside">
        <!-- <div @click="showRight = false">➡️</div>
        <div>右侧侧边栏</div> -->
        <div v-if="currentTopTab == '/smartWellRecommend'" class="scroll-content">
          <el-tabs type="border-card" :stretch="true" v-model="activeTab" class="fixed-tab" tab-position="top">
            <!-- 生成井组参数设置面板 -->
            <el-tab-pane label="生成参数设置" name="genParam">
              <SmartWellProperty />
            </el-tab-pane>
            <el-tab-pane label="设置单井组参数" name="wellGroupParam">
              <WellGroupProperty />
            </el-tab-pane>
          </el-tabs>
        </div>
        <div v-else-if="currentTopTab == '/horizontalWell'" class="scroll-content">
          <HorizontalDrawParam />
        </div>
        <div v-else-if="currentTopTab == '/microEarthQuake'" class="scroll-content">
          <SeismicCalcParam />
        </div>
      </aside>
    </div>
  </div>
</template>

<script setup>
import { ref, onMounted, onBeforeMount } from "vue";
import DrawerHeader from "@/components/DrawerHeader.vue";
import CanvasRenderer from "@/components/CanvasRenderer.vue";
import WellGroupProperty from "@/components/WellGroupProperty.vue";
import LayerTree from "@/components/LayerTree.vue";
import { emitter } from "~/utils/eventBus";

import { useCurrentTabStore } from "~/stores/currentTabStore";

const useTabStore = useCurrentTabStore();

const showLeft = ref(false); // 控制左侧区域的显示
const showRight = ref(true); // 控制右侧区域的显示

const leftWidth = ref("240px");
const rightWidth = ref("300px");

const drawerCanvas = ref(null); // 画布引用

const activeTab = ref("genParam");

const currentTopTab = computed(() => useTabStore.currentTab);

// const layerTree = markRaw(LayerTree);
// const layerTreeRef = ref(layerTree);

// 加载状态
const isLoading = ref(false);

const handleLogin = () => { };

const props = defineProps({
  isView: {
    type: Boolean,
    default: false
  }
});

onBeforeMount(() => {
  showRight.value = useTabStore.showRight;
  if (currentTopTab.value === '/horizontalWell') {
    rightWidth.value = showRight.value ? '350px' : '0';
  } else {
    rightWidth.value = showRight.value ? '300px' : '0';
  }
  console.log("当前页：", currentTopTab.value, rightWidth.value);
});

// 监听窗口变化和面板显隐
onMounted(() => {
  emitter.on("showLayers", () => {
    showLeft.value = !showLeft.value;
    console.log("showLeft:", showLeft.value);
  });
});

onBeforeUnmount(() => {
  emitter.off("showLayers");
});

onUnmounted(() => { });
</script>

<style scoped>
/* html,
body,
#app {
  margin: 0;
  padding: 0;
  overflow: hidden;
} */

.layout-container {
  display: flex;
  flex-direction: column;
  height: 100%;
  /* overflow: hidden; */
}

.header {
  background: #fff;
  color: #333;
  text-align: center;
  height: 45px;
  vertical-align: middle;
  line-height: 40px;
}

.footer-container {
  display: flex;
  flex: 1;
  overflow: hidden;
}

.left-aside,
.right-aside {
  background-color: #f0f9eb;
  border: 1px solid #eaeaea;
  transition: width 0.3s ease;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  height: 100%;
}

.left-aside {
  border-right: none;
}

.right-aside {
  border-left: none;
}

.main-content {
  flex: 1;
  position: relative;
  /* padding: 20px; */
  background-color: #fff;
  border-left: 1px solid #eaeaea;
  border-right: 1px solid #eaeaea;
  overflow: auto;
  resize: both;
}

canvas {
  width: 100%;
  height: 100%;
  /* display: block; */
}

.el-button {
  margin: 10px;
}

.fixed-tab {
  display: flex;
  flex-direction: column;
  /* flex-grow: 1; */
  /* height: calc(100vh - 60px); */
  width: 100%;
  height: 100%;
}

.fixed-tab :deep(.el-tabs__content) {
  flex-grow: 1;
  /* 填充剩余空间 */
  overflow-y: auto;
  /* 内容溢出时滚动 */
  padding: 0;
}

.fixed-tab :deep(.el-tabs__item) {
  float: none;
  /* 清除浮动干扰 */
}

.fixed-tab :deep(.el-tabs__header) {
  display: block !important;
}

.scroll-content {
  height: calc(100vh - 110px);
}

.img-layer {
  min-height: 100%;
  background: #ccc;
}
</style>
