ele tabs 组件点击对应标签后再获取数据渲染(个人笔记)

因为tabs组件会默认调取所有界面的接口的数据,再点击后是不会再次调取的。由于我做的项目不符合该模式,所以做出了一些调整。

html部分

<div class="layout-container">
    <el-tabs v-model="activeName" class="demo-tabs" @tab-click="handleClick">
      <el-tab-pane label="新的询价" name="NewInquiry"> // 给每个tab添加name 属性
        <NewInquiry v-if="tabsSwitch.NewInquiry" /> // 然后给每个界面添加v-if判断是否显示
      </el-tab-pane>
      <el-tab-pane label="准备报价" name="PrepareOffer">
        <PrepareOffer v-if="tabsSwitch.PrepareOffer" />
      </el-tab-pane>
      <el-tab-pane label="已报价" name="OrderOffer">
        <OrderOffer v-if="tabsSwitch.OrderOffer" />
      </el-tab-pane>
      <el-tab-pane label="回绝报价" name="RejectOffer">
        <RejectOffer v-if="tabsSwitch.RejectOffer" />
      </el-tab-pane>
    </el-tabs>
  </div>
</template>

script 部分

import { defineComponent, ref } from "vue";
import NewInquiry from "./mallTabs/newlnqyury.vue"; //这四个界面引入
import OrderOffer from "./mallTabs/orderOffer.vue";
import PrepareOffer from "./mallTabs/prepareOffer.vue";
import RejectOffer from "./mallTabs/rejectOffer.vue";

export default defineComponent({
  components: {
    NewInquiry,
    OrderOffer,
    PrepareOffer,
    RejectOffer,
  },
  setup() {
    const activeName = ref("NewInquiry"); // 默认显示的界面
    let tabsSwitch: any = ref({   //设置是否显示
      NewInquiry: true,
      PrepareOffer: false,
      OrderOffer: false,
      RejectOffer: false,
    });


    const handleClick = (tab: any) => { //点击事件
      for (var i in tabsSwitch.value) { //循环对象中的属性
        if (tab.props.name != i) {   //判断点击的name不等于 tabsSwith里的属性
          tabsSwitch.value[i] = false; //不相等的改成false  不显示
        } else {
          tabsSwitch.value[i] = true; // 相等的改成true  显示
        }
      }
    };
    return {
      activeName,
      handleClick,
      tabsSwitch,
    };
  },
});
</script>

最终效果

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值