elementUI点击el-card选中边框变色

要实现当选中某一个卡片时其边框颜色变色,你可以通过 Vue 的状态管理和条件绑定类来实现。下面是具体的实现步骤:

  1. 在 data 中定义一个状态来追踪选中的卡片。
  2. 在 el-card上绑定点击事件来更新选中的状态。
  3. 使用条件绑定类来应用选中的样式。
<template>
  <el-dialog v-model="knowledgeVisible" title="选择知识库" width="600">
    <el-row :gutter="20">
      <el-col :span="12" v-for="(knowledge, index) in knowledgeList" :key="index">
        <el-card 
          :class="{ 'is-selected': selectedCardIndex === index }"
          :shadow="never"
          class="knowledge-card"
          @click="selectCard(index)"
        >
          <div style="display: flex; align-items: center; margin-bottom: 10px;">
            <img src="https://ai.zscampus.com/aistatic/img/logoV.png" style="width: 10%; margin-right: 5px;">
            <span class="pc-material-title">{{ knowledge.knowledge_name }}</span>
          </div>
          <span class="pc-material-time">创建时间: {{ knowledge.create_time }}</span>
        </el-card>
      </el-col>
    </el-row>
  </el-dialog>
</template>

<script>
export default {
  data() {
    return {
      knowledgeVisible: false,
      selectedCardIndex: null, // 追踪选中的卡片索引
      knowledgeList: [
        // 示例数据
        { knowledge_name: '知识库1', create_time: '2024-01-01' },
        { knowledge_name: '知识库2', create_time: '2024-02-01' },
      ],
    };
  },
  methods: {
    selectCard(index) {
      this.selectedCardIndex = index; // 更新选中的卡片索引
    },
  },
};
</script>

<style scoped>
/* 默认卡片样式 */
.knowledge-card {
  transition: border-color 0.3s ease;
}

/* 选中卡片的样式 */
.is-selected {
  border: 2px solid #409eff; /* 选中时的边框颜色 */
}
</style>

解释

  • 状态管理:

selectedCardIndex 用于追踪当前选中的卡片索引。
knowledgeList 数组保存卡片的数据。

  • 点击事件:

每个 el-card 绑定了 @click 事件,当点击卡片时,会调用 selectCard 方法并传递当前卡片的索引。
selectCard 方法更新 selectedCardIndex,从而更新选中的状态。

  • 样式应用:

使用 :class 绑定,根据 selectedCardIndex 的值来应用 is-selected 类。
.is-selected 类定义了选中时的边框颜色。

  • 6
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值