1.element 组件安装
引入式
<!-- 引入样式 -->
<link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme- chalk/index.css">
<!-- 引入组件库 -->
<script src="https://unpkg.com/element-ui/lib/index.js"></script>
2.案例
1.查询所有业主
界面
<div id="app">
<template>
<el-table
:data="tableData"
style="width: 100%">
<el-table-column
prop="roomName"
label="房间编号"
width="180">
</el-table-column>
<el-table-column
prop="owner_name"
label="业主名字"
width="180">
</el-table-column>
<el-table-column
prop="owner_phone"
label="电话">
</el-table-column>
<el-table-column
prop="owner_ids"
label="电话">
</el-table-column>
<el-table-column
prop="owner_phone"
label="身份证号码">
</el-table-column>
<el-table-column
prop="owner_car"
label="车位信息">
</el-table-column>
<el-table-column
prop="ownere_mail"
label="业主邮箱">
</el-table-column>
</el-table>
</template>
</div>
数据刷新
<script>
var vm =new Vue({
el:"#app",
data:{
tableData:[
]
},
mounted:function () {
axios
.get('/selectOwnerRoom')
.then(response=>{
//初始化数据
// 通过 箭头函数 调用的方法 this 指向 vue 实例,
// 如果function this 指向 的是axios 本身
this.tableData=response.data
}).catch(function (error) {
console.log(error)
})
}
})
</script>
2.更新业主
添加操作按钮
<el-table-column label="操作">
<template slot-scope="scope">
<el-button
size="mini"
@click="handleEdit(scope.$index, scope.row)">编辑</el-button>
<el-button
size="mini"
type="danger"
@click="handleDelete(scope.$index, scope.row)">删除</el-button>
</template>
</el-table-column>
修改界面弹框
<!-- //修改界面弹窗-->
<el-dialog :visible.sync="visible" title="Hello world">
<!--:model="updateform" 双向绑定updateform数据-->
<el-form ref="form" :model="updateform" label-width="80px">
<el-form-item label="房间编号">
<el-input v-model="updateform.roomName"></el-input>
</el-form-item>
<el-form-item label="业主姓名">
<el-input v-model="updateform.owner_name"></el-input>
</el-form-item>
<el-form-item label="电话">
<el-input v-model="updateform.owner_phone"></el-input>
</el-form-item>
<el-form-item label="身份证号码">
<el-input v-model="updateform.owner_ids"></el-input>
</el-form-item>
<el-form-item label="车位">
<el-input v-model="updateform.owner_car"></el-input>
</el-form-item>
<el-form-item label="邮箱">
<el-input v-model="updateform.ownere_mail"></el-input>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="updateOwner">确认</el-button>
<el-button>取消</el-button>
</el-form-item>
</el-form
</el-dialog>
弹框默认不显示
//修改弹窗默认不显示
visible:false,
updateform:{
roomName:'',
owner_name:'',
owner_phone:'',
owner_ids:0,
owner_car:'',
ownere_mail:''
}
显示弹框
methods:{
/* table 数据的的下标 row 每一行数据 对应tableData 每一个元素*/
handleEdit(index,row){
//初始化弹窗数据
this.updateform=row;
//显示窗口
this.visible=true
}
}
提交 修改内容
updateOwner:function () {
axios
.get('/updateOwner',{
params:this.updateform
}).then(response=>{
if (response.data=='success'){
//刷新页面
window.location.reload()
}else {
this.$message.error('修改失败')
}
}).catch(function (error) {
console.log(error)
})
}
流程
点击编辑按钮,拿到该行数据赋值给updateform, visible变为true,弹窗打开,弹窗界面与 updateform双向绑定,修改弹窗内的数据updateform数据随着改变,然后把updateform内的数据通过 params:this.updateform传到后台完成修改
3.删除业主
用的是MessageBox 弹框模板
handleDelete(index,row){
this.$confirm('此操作将永久删除该文件, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
//确定删除提交服务器
axios
.get('/dateOwner',{
params: {
id:row.owner_id
}
}).then(response=>{
if (response.data=='success'){
//刷新页面
window.location.reload()
}else {
this.$message.error('删除失败')
}
}).catch(function (error) {
console.log(error)
})
}).catch(() => {
this.$message({
type: 'info',
message: '已取消删除'
});
});
}
handleDelete方法和操作按钮对应
4.增加业主
界面弹窗
<!--新增业主弹窗-->
<el-dialog :visible.sync="addvisible" title="新增业主">
<!-- //:model="form"双向绑定from表单数据-->
<el-form ref="addform" :model="addform" label-width="80px">
<el-form-item label="房间编号">
<el-select v-model="addform.Room_id" placeholder="请选择">
<el-option
v-for="item in options"
:key="item.roomId"
:label="item.roomName"
:value="item.roomId">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="业主姓名">
<el-input v-model="addform.owner_name"></el-input>
</el-form-item>
<el-form-item label="电话">
<el-input v-model="addform.owner_phone"></el-input>
</el-form-item>
<el-form-item label="身份证号码">
<el-input v-model="addform.owner_ids"></el-input>
</el-form-item>
<el-form-item label="车位">
<el-input v-model="addform.owner_car"></el-input>
</el-form-item>
<el-form-item label="邮箱">
<el-input v-model="addform.ownere_mail"></el-input>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="addOwner">增加业主</el-button>
<el-button>取消</el-button>
</el-form-item>
</el-form>
</el-dialog>
弹框默认不显示
addform:{
roomName:'',
owner_name:'',
owner_phone:'',
owner_ids:0,
owner_car:'',
ownere_mail:'',
Room_id:'',
},
options:[]
提交数据
addOwner:function () {
axios
.get('/addOwner',{
params:this.addform
}).then(response=>{
console.log("data:"+response.data);
if (response.data == 'success') {
//刷新
window.location.reload();
}else{
this.$message.error('新增失败');
}
this.addvisible = false;
}).catch(function (error) {
console.log(error)
})
}