vue即点即改
视图部分
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script src="https://cdn.staticfile.org/axios/0.18.0/axios.min.js"></script>
<style>
@import url("//unpkg.com/element-plus/lib/theme-chalk/index.css");
</style>
</head>
<body>
<script src="//unpkg.com/vue@next"></script>
<script src="//unpkg.com/element-plus/lib/index.full.js"></script>
<div id="app">
<el-button type="text" @click="dialogFormVisible = true">添加</el-button>
<el-dialog title="添加" v-model="dialogFormVisible">
<el-form :model="form">
<el-form-item label="用户名称" :label-width="formLabelWidth">
<el-input v-model="form.name" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="手机号码" :label-width="formLabelWidth">
<el-input v-model="form.tel" autocomplete="off"></el-input>
</el-form-item>
</el-form>
<template #footer>
<span class="dialog-footer">
<el-button @click="dialogFormVisible = false">取 消</el-button>
<el-button type="primary" @click="sub">确 定</el-button>
</span>
</template>
</el-dialog>
<el-dialog title="修改" v-model="updateFormVisible">
<el-form :model="form">
<el-form-item label="用户名称" :label-width="formLabelWidth">
<el-input v-model="editForm.name" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="手机号码" :label-width="formLabelWidth">
<el-input v-model="editForm.tel" autocomplete="off"></el-input>
</el-form-item>
</el-form>
<template #footer>
<span class="dialog-footer">
<el-button @click="updateFormVisible = false">取 消</el-button>
<el-button type="primary" @click="updateform">确 定</el-button>
</span>
</template>
</el-dialog>
<el-table
:data="tableData"
style="width: 100%;align-items: center">
<el-table-column
prop="id"
label="ID"
width="180">
</el-table-column>
<el-table-column
prop="username"
label="姓名"
width="180">
<template #default="scope">
<div v-show="arr.indexOf(scope.row.id) == -1" @click="arr.push(scope.row.id)" >
{{ scope.row.username }}
</div>
<div v-show="arr.indexOf(scope.row.id) != -1">
<el-input size="small" v-model="scope.row.username" @blur="updateUsername(scope.row.id,scope.row.username)"
></el-input>
</div>
</template>
</el-table-column>
<el-table-column
prop="tel"
label="手机号码"
width="180">
</el-table-column>
<el-table-column>
fixed="right"
label="操作"
width="100">
<template #default="scope">
<el-button @click="del(scope.row.id)" type="text" size="small">删除</el-button>
<el-button type="text" size="small" @click="edit(scope.row)">修改</el-button>
</template>
</el-table-column>
</el-table>
</div>
</body>
</html>
js部分
<script>
var Main = {
data() {
return {
arr:[],
updateFormVisible:false,
dialogFormVisible: false,
editForm:{
id:'',
name: '',
tel: '',
pageSize:5
},
form: {
date1: '',
date2: '',
delivery: false,
type: [],
resource: '',
desc: ''
},
formLabelWidth: '120px',
tableData: []
}
},
// 初始化方法
mounted(){
this.table();
},
methods: {
handleEdit(index, row) {
console.log(index, row);
},
handleDelete(index, row) {
console.log(index, row);
},
table(){
axios
.get('indexData')
.then(res => (this.tableData = res.data.data))
.catch(function (error) { // 请求失败处理
console.log(error);
});
},
sub(){
// 关闭表单
this.dialogFormVisible = false;
// 异步请求
axios
.post('save',{name:this.form.name,tel:this.form.tel})
.then(res => {
if (res.data.code == 200){
this.table()
this.$message({
type: 'success',
message: '添加成功!'
});
}else {
this.$message({
type: 'error',
message: '添加失败!'
});
}
})
.catch(function (error) { // 请求失败处理
console.log(error);
});
},
edit(data){
this.updateFormVisible = true
this.editForm.name = data.username
this.editForm.tel = data.tel
this.editForm.id = data.id
},
updateform() {
// 关闭表单
this.updateFormVisible = false;
// 异步请求
axios
.post('update',{id:this.editForm.id,username:this.editForm.name,tel:this.editForm.tel})
.then(res => {
if (res.data.code == 200){
this.table()
this.$message({
type: 'success',
message: '修改成功!'
});
}else {
this.$message({
type: 'error',
message: '修改失败!'
});
}
})
.catch(function (error) { // 请求失败处理
console.log(error);
});
},
del(id){
axios
.get('delete?id='+id)
.then(res => {
if (res.data.code == 200){
this.table()
this.$message({
type: 'success',
message: '删除成功!'
});
}else {
this.$message({
type: 'error',
message: '删除失败!'
});
}
})
.catch(function (error) { // 请求失败处理
console.log(error);
});
},
updateUsername(id,username){
axios
.post('updateUsername',{id:id,username:username})
.then(res => {
if (res.data.code == 200){
this.arr = [];
}else {
this.$message({
type: 'error',
message: '修改失败!'
});
}
})
.catch(function (error) { // 请求失败处理
console.log(error);
});
}
}
}
;const app = Vue.createApp(Main);
app.use(ElementPlus);
app.mount("#app")
</script>