vue el-transfer 穿梭框组件,改变文字颜色,将名字包含于工的选项的文字变成黄色
时间: 2024-04-14 18:26:24 浏览: 37
Vue实现点击后文字变色切换方法
5星 · 资源好评率100%
要实现将名字包含于"工"的选项的文字变成黄色,你可以使用 Vue 的计算属性和样式绑定来完成。首先,你需要在模板中使用 `v-bind:class` 绑定样式,并在计算属性中根据名字包含"工"的条件返回一个特定的 CSS 类名。然后,你可以定义这个 CSS 类名,并设置其颜色为黄色。
以下是一个示例代码:
```html
<template>
<div>
<el-transfer
v-model="transferData"
:filterable="true"
:props="transferProps"
:render-content="renderContent"
></el-transfer>
</div>
</template>
<script>
export default {
data() {
return {
transferData: [], // 穿梭框的数据
transferProps: {
label: "name", // 数据项的显示文本字段
key: "id" // 数据项的唯一标识字段
}
};
},
computed: {
// 计算属性,根据名字包含"工"的条件返回特定的 CSS 类名
nameFilterClass() {
return (item) => {
if (item.name.includes("工")) {
return "highlight";
}
return "";
};
}
},
methods: {
// 渲染穿梭框选项的内容,包含样式绑定
renderContent(h, { option }) {
return h(
"span",
{
class: this.nameFilterClass(option),
style: { "margin-left": "5px" }
},
option.name
);
}
}
};
</script>
<style>
.highlight {
color: yellow;
}
</style>
```
在上述示例代码中,我们使用了 `v-bind:class` 指令将 `nameFilterClass` 计算属性的返回值绑定到穿梭框选项的 `class` 属性上。`nameFilterClass` 根据名字包含"工"的条件返回了一个名为 "highlight" 的 CSS 类名。接着,我们在样式中定义了这个 CSS 类名,并设置其颜色为黄色。
你可以根据你的实际需求,将上述示例代码中的 `transferData` 和 `transferProps` 替换为你自己的数据源和配置项。
阅读全文