Newer
Older
KaiFengPC / src / views / sponeScreen / components / gongcheng_components / dynamicTabs / index.vue
@zhangdeliang zhangdeliang on 23 May 953 bytes 初始化项目
<template>
  <div class="dynamicTabs">
    <el-tabs v-model="active" :stretch="true">
      <el-tab-pane v-for="item in props.tabs" :key="item.name" :label="item.title" :name="item.name" lazy>
        <component :is="allComponents[item.componentName]" :item="item" />
      </el-tab-pane>
    </el-tabs>
  </div>
</template>

<script setup name="dynamicTabs">
import allComponents from './components';
const props = defineProps({
  activeTab: {
    type: String,
    default: '',
  },
  tabs: {
    type: Array,
    default: () => [],
  },
});

const emit = defineEmits(['update:activeTab']);

const active = computed({
  get() {
    return props.activeTab;
  },
  set(val) {
    emit('update:activeTab', val);
  },
});
function TabClick(v) {
  console.log(v, 5555);
}
onMounted(() => {
  //默认选中第一个
  if (!props.activeTab && props.tabs.length) {
    active.value = props.tabs[0].name;
  }
});
</script>

<style lang="scss" scoped></style>