vue3+element-plus表格自定义输入
在Vue 3和Element Plus中创建一个自定义输入组件,可以在表格中使用。以下是一个简单的例子:
- 创建一个自定义输入组件
CustomInput.vue
:
<template>
<el-input v-model="inputValue" @input="handleInput"></el-input>
</template>
<script setup>
import { ref, watch } from 'vue';
const props = defineProps({
modelValue: {
type: [String, Number],
default: ''
}
});
const emit = defineEmits(['update:modelValue']);
const inputValue = ref(props.modelValue);
watch(inputValue, (newValue) => {
emit('update:modelValue', newValue);
});
const handleInput = (value) => {
inputValue.value = value;
};
</script>
- 在父组件中使用
CustomInput.vue
作为表格的自定义列模板:
<template>
<el-table :data="tableData" style="width: 100%">
<el-table-column prop="date" label="日期" width="180"></el-table-column>
<el-table-column prop="name" label="姓名" width="180"></el-table-column>
<el-table-column label="自定义列">
<template #default="{ row }">
<custom-input v-model="row.custom"></custom-input>
</template>
</el-table-column>
</el-table>
</template>
<script setup>
import { ref } from 'vue';
import CustomInput from './CustomInput.vue';
const tableData = ref([
{
date: '2016-05-02',
name: '王小虎',
custom: ''
},
// ...更多数据
]);
</script>
<style>
/* 在这里添加样式 */
</style>
在这个例子中,我们创建了一个自定义输入组件 CustomInput.vue
,并在父组件中使用它作为表格的一个自定义列模板。我们使用 v-model
进行数据双向绑定,确保输入数据能够流入和流出组件。
评论已关闭