<template>
  <div style="display: flex; justify-content: space-between">
    <!-- 左侧患者列表 -->
    <div style="width: 20%; height: 90vh; border-right: solid 2px #e4e7ed">
      <div
        style="
          height: 40px;
          display: flex;
          align-items: center;
          justify-content: flex-end;
          border-bottom: solid 2px #e4e7ed;
        "
      >
        <el-icon
          @click="refresh"
          class="refresh-icon"
          style="cursor: pointer; font-size: 20px; margin-right: 10px"
        >
          <Refresh />
        </el-icon>
      </div>
      <el-tabs v-model="active" class="demo-tabs centered-tabs tab-header" @tab-click="handleClick">
        <el-tab-pane label="在科" name="first" style="padding: 15px 10px">
          <PatientList />
        </el-tab-pane>
        <!-- 隐藏tab 
        <el-tab-pane label="转科" name="second" style="padding: 0 10px">
          <PatientList />
        </el-tab-pane>
        -->
      </el-tabs>
    </div>

    <!-- 右侧划价确费功能区 -->
    <div style="width: 80%; padding: 10px">
      <!-- 标签页导航 -->
      <el-tabs v-model="activeTab" class="demo-tabs" @tab-change="handleTabChange">
        <el-tab-pane label="划价确费" name="billing">
          <BillingList ref="billingRef" />
        </el-tab-pane>
        <el-tab-pane label="费用明细查询" name="expenseDetail">
          <!-- <FeeDetailQuery :activeTab="activeTab" ref="feeDetailQueryRef" /> -->
          <NewfeeDetailQuery :activeTab="activeTab" ref="feeDetailQueryRef" />
        </el-tab-pane>
        <!--  <el-tab-pane label="医嘱计费" name="orderBilling">
          <OrderBilling ref="orderBillingRef" />
        </el-tab-pane>
        <el-tab-pane label="费用明细查询" name="expenseDetail">
          <FeeDetailQuery ref="feeDetailQueryRef" />
        </el-tab-pane>
        <el-tab-pane label="预交金查询" name="depositQuery">
          <deposit-query ref="depositQueryRef" />
        </el-tab-pane>
        <el-tab-pane label="患者流转日志" name="patientFlow">
          <div style="padding: 20px; text-align: center; color: #909399">患者流转日志功能区域</div>
        </el-tab-pane> -->
      </el-tabs>
    </div>
  </div>
</template>

<script setup>
import {nextTick, provide, ref} from 'vue';
import {ElMessage} from 'element-plus';
import PatientList from '../components/patientList.vue';
import BillingList from './components/billingList.vue';
import NewfeeDetailQuery from './components/newfeeDetailQuery.vue';

// 预交金查询组件引用
const depositQueryRef = ref(null);

// 响应式数据
const active = ref('first');
const activeTab = ref('billing');
const billingRef = ref(null);
const feeDetailQueryRef = ref(null);
const orderBillingRef = ref(null);

// 刷新功能
function refresh() {
  ElMessage.success('刷新成功');
  // 刷新患者列表
}

// 左侧标签页点击
function handleClick() {
  // 可以在这里添加左侧标签切换的逻辑
}

// 🔧 BugFix#417: 提供handleGetPrescription给子组件
function handleGetPrescription() {
  if (billingRef.value) {
    billingRef.value.handleQuery?.();
  }
}
provide('handleGetPrescription', handleGetPrescription);

// 右侧标签页切换
function handleTabChange() {
  // 切换到划价确费标签时，刷新数据
  if (activeTab.value === 'billing' && billingRef.value) {
    nextTick(() => {
      // billingRef.value.handleQuery();
    });
  }
  // 切换到医嘱计费标签时，刷新数据
  if (activeTab.value === 'orderBilling' && orderBillingRef.value) {
    nextTick(() => {
      orderBillingRef.value.handleQuery();
    });
  }
  // 切换到费用明细查询标签时，可以刷新数据
  if (activeTab.value === 'expenseDetail' && feeDetailQueryRef.value) {
    nextTick(() => {
      // 根据feeDetailQuery组件提供的方法进行数据刷新
    });
  }
  // 切换到预交金查询标签时，刷新数据
  if (activeTab.value === 'depositQuery' && depositQueryRef.value) {
    nextTick(() => {
      depositQueryRef.value.handleQuery();
    });
  }
}
</script>

<style scoped>
.centered-tabs :deep(.el-tabs__nav-wrap) {
  display: flex;
  justify-content: center;
}

.centered-tabs :deep(.el-tabs__nav-scroll) {
  display: flex;
  justify-content: center;
}

.tab-header :deep(.el-tabs__item) {
  height: 50px !important;
}

.centered-tabs :deep(.el-tabs__nav) {
  display: flex;
  justify-content: center;
}

:deep(.el-tabs__header) {
  margin: 0;
}
</style>
