ElementUI 机票常用联系人页面开发教程 - Vue.js 前端开发
<template>
<div>
<el-form ref="form" :model="form" :rules="rules" label-width="100px">
<el-form-item label="姓名" prop="name">
<el-input v-model="form.name"></el-input>
</el-form-item>
<el-form-item label="证件类型" prop="idType">
<el-select v-model="form.idType">
<el-option label="身份证" value="1"></el-option>
<el-option label="护照" value="2"></el-option>
<el-option label="港澳通行证" value="3"></el-option>
<el-option label="台湾通行证" value="4"></el-option>
</el-select>
</el-form-item>
<el-form-item label="证件号码" prop="idNumber">
<el-input v-model="form.idNumber"></el-input>
</el-form-item>
<el-form-item label="手机号码" prop="phoneNumber">
<el-input v-model="form.phoneNumber"></el-input>
</el-form-item>
<el-form-item label="邮箱" prop="email">
<el-input v-model="form.email"></el-input>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="submitForm">保存</el-button>
</el-form-item>
</el-form>
<el-table :data="contacts" style="margin-top: 20px">
<el-table-column prop="name" label="姓名"></el-table-column>
<el-table-column prop="idType" label="证件类型"></el-table-column>
<el-table-column prop="idNumber" label="证件号码"></el-table-column>
<el-table-column prop="phoneNumber" label="手机号码"></el-table-column>
<el-table-column prop="email" label="邮箱"></el-table-column>
<el-table-column label="操作">
<template slot-scope="scope">
<el-button type="text" @click="handleEdit(scope.$index, scope.row)">编辑</el-button>
<el-button type="text" @click="handleDelete(scope.$index, scope.row)">删除</el-button>
</template>
</el-table-column>
</el-table>
<el-dialog title="编辑联系人" :visible.sync="dialogVisible">
<el-form :model="editForm" :rules="rules" label-width="100px">
<el-form-item label="姓名" prop="name">
<el-input v-model="editForm.name"></el-input>
</el-form-item>
<el-form-item label="证件类型" prop="idType">
<el-select v-model="editForm.idType">
<el-option label="身份证" value="1"></el-option>
<el-option label="护照" value="2"></el-option>
<el-option label="港澳通行证" value="3"></el-option>
<el-option label="台湾通行证" value="4"></el-option>
</el-select>
</el-form-item>
<el-form-item label="证件号码" prop="idNumber">
<el-input v-model="editForm.idNumber"></el-input>
</el-form-item>
<el-form-item label="手机号码" prop="phoneNumber">
<el-input v-model="editForm.phoneNumber"></el-input>
</el-form-item>
<el-form-item label="邮箱" prop="email">
<el-input v-model="editForm.email"></el-input>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="dialogVisible = false">取 消</el-button>
<el-button type="primary" @click="editContact">确 定</el-button>
</div>
</el-dialog>
</div>
</template>
<script>
export default {
data() {
return {
form: {
name: '',
idType: '',
idNumber: '',
phoneNumber: '',
email: ''
},
editForm: {
name: '',
idType: '',
idNumber: '',
phoneNumber: '',
email: ''
},
rules: {
name: [{ required: true, message: '请输入姓名', trigger: 'blur' }],
idType: [{ required: true, message: '请选择证件类型', trigger: 'change' }],
idNumber: [{ required: true, message: '请输入证件号码', trigger: 'blur' }],
phoneNumber: [{ required: true, message: '请输入手机号码', trigger: 'blur' }],
email: [{ required: true, message: '请输入邮箱', trigger: 'blur' }]
},
contacts: [
{
name: '张三',
idType: '1',
idNumber: '110101199001011234',
phoneNumber: '13812345678',
email: 'zhangsan@example.com'
},
{
name: '李四',
idType: '2',
idNumber: 'E1234567',
phoneNumber: '13912345678',
email: 'lisi@example.com'
}
],
dialogVisible: false,
editIndex: ''
}
},
methods: {
submitForm() {
this.$refs.form.validate(valid => {
if (valid) {
this.contacts.push(this.form)
this.form = {
name: '',
idType: '',
idNumber: '',
phoneNumber: '',
email: ''
}
}
})
},
handleEdit(index, row) {
this.editIndex = index
this.dialogVisible = true
this.editForm = Object.assign({}, row)
},
editContact() {
this.$refs.form.validate(valid => {
if (valid) {
this.contacts.splice(this.editIndex, 1, this.editForm)
this.dialogVisible = false
}
})
},
handleDelete(index, row) {
this.$confirm('确定删除该联系人吗?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.contacts.splice(index, 1)
}).catch(() => {})
}
}
}
</scrip
原文地址: https://www.cveoy.top/t/topic/nmoJ 著作权归作者所有。请勿转载和采集!