在vue3 ts element-plus项目中,点击按钮,将表单所填的值作为参数调用保存接口,脚本格式为 <script lang="ts" setup> 举例说明
时间: 2024-03-20 11:40:44 浏览: 70
vuejs+element UI点击编辑表格某一行时获取内容填入表单的示例
好的,以下是一个在Vue3 TypeScript项目中使用Element Plus组件库,并且在按钮点击时调用保存接口的示例代码:
```html
<template>
<el-form :model="form" ref="form" :rules="rules">
<el-form-item label="姓名" prop="name">
<el-input v-model="form.name"></el-input>
</el-form-item>
<el-form-item label="年龄" prop="age">
<el-input v-model.number="form.age"></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" setup>
import { ref } from 'vue';
import { ElForm, ElFormItem, ElInput, ElButton } from 'element-plus';
import { saveData } from '@/api';
const form = ref({
name: '',
age: 0
});
const rules = {
name: [{ required: true, message: '请输入姓名', trigger: 'blur' }],
age: [
{ required: true, message: '请输入年龄', trigger: 'blur' },
{ type: 'number', message: '年龄必须为数字', trigger: 'blur' }
]
};
const submitForm = () => {
const formRef = (this.$refs.form as unknown) as ElForm;
formRef.validate(async (valid: boolean) => {
if (valid) {
try {
await saveData(form.value); // 调用保存接口
this.$message.success('保存成功!');
} catch (error) {
this.$message.error('保存失败!');
}
} else {
this.$message.warning('请检查表单是否填写完整!');
return false;
}
});
};
</script>
```
这里使用了Vue3的Composition API,并且导入了Element Plus组件库中的表单元素和按钮组件。表单数据使用了Vue3的`ref`响应式引用,保存接口在`api`模块中定义,点击保存按钮时,调用表单验证方法`validate`,验证通过后调用保存接口,保存成功或失败则使用Element Plus的消息组件进行提示。
阅读全文