vue3+element plus通用公共表单组件(支持ts)
以下是一个简单的Vue 3和Element Plus中的通用公共表单组件示例,支持TypeScript。
<template>
<el-form :model="formData" ref="formRef" :rules="rules">
<el-form-item label="用户名" prop="username">
<el-input v-model="formData.username"></el-input>
</el-form-item>
<el-form-item label="密码" prop="password">
<el-input type="password" v-model="formData.password"></el-input>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="submitForm">提交</el-button>
</el-form-item>
</el-form>
</template>
<script lang="ts">
import { defineComponent, reactive, ref } from 'vue';
import { ElForm, ElFormItem, ElInput, ElButton } from 'element-plus';
export default defineComponent({
components: {
ElForm,
ElFormItem,
ElInput,
ElButton
},
setup() {
const formData = reactive({
username: '',
password: ''
});
const formRef = ref<InstanceType<typeof ElForm>>();
const rules = {
username: [
{ required: true, message: '请输入用户名', trigger: 'blur' }
],
password: [
{ required: true, message: '请输入密码', trigger: 'blur' },
{ min: 6, max: 12, message: '密码长度在 6 到 12 个字符', trigger: 'blur' }
]
};
const submitForm = () => {
formRef.value?.validate((valid: boolean) => {
if (valid) {
console.log('表单验证通过,提交数据:', formData);
// 这里执行提交操作
} else {
console.log('表单验证失败');
return false;
}
});
};
return {
formData,
formRef,
rules,
submitForm
};
}
});
</script>
这个组件包含了一个带有用户名和密码输入的表单,并且使用了Element Plus的el-form
、el-form-item
和el-input
组件。它还包括了一个提交按钮,点击后会触发表单验证并打印通过验证的数据。这个组件支持TypeScript,并通过ref
和reactive
来管理表单数据和规则。
评论已关闭