vue 项目单条删除功能实现
作者:互联网
一 定义 api 模块
import request from '@/utils/request'
export default {
// 带查询条件的分页查询
getHospitalList(current, limit, searchObj) {
return request({
url: `/admin/hospital/findPageHospital/${current}/${limit}`,
method: 'post',
data: searchObj // 使用 json 进行参数传递
})
},
// 单条删除医院
deleteHospital(id) {
return request({
url: `/admin/hospital/${id}`,
method: 'delete'
})
}
}
二 页面部分
<template>
<div class="app-container">
<!-- 条件查询 -->
<el-form :inline="true" class="demo-form-inline">
<el-form-item>
<el-input v-model="searchObj.name" placeholder="医院名称" />
</el-form-item>
<el-form-item>
<el-input v-model="searchObj.province" placeholder="省" />
</el-form-item>
<el-form-item>
<el-input v-model="searchObj.city" placeholder="市" />
</el-form-item>
<el-form-item>
<el-input v-model="searchObj.district" placeholder="区" />
</el-form-item>
<el-button type="primary" icon="el-icon-search" @click="getList()">搜索</el-button>
</el-form>
<!-- 列表 -->
<el-table :data="list" stripe style="width: 100%">
<el-table-column type="index" width="50" />
<el-table-column prop="name" label="名称" />
<el-table-column prop="province" label="省" />
<el-table-column prop="city" label="市" />
<el-table-column prop="district" label="区" />
<el-table-column label="状态" width="80">
<template slot-scope="scope">{{ scope.row.status === 1 ? '可用' : '不可用' }}</template>
</el-table-column>
<!-- 删除按钮 -->
<el-table-column label="操作" width="280" align="center">
<template slot-scope="scope">
<el-button
type="danger"
size="mini"
icon="el-icon-delete"
@click="removeDataById(scope.row.id)"
></el-button>
</template>
</el-table-column>
</el-table>
<!-- 分页 -->
<el-pagination
:current-page="page"
:page-size="limit"
:total="total"
style="padding: 30px 0; text-align: center;"
layout="total, prev, pager, next, jumper"
@current-change="getList"
/>
</div>
</template>
</div>
</template>
<script>
// 引入接口定义的 js 文件
import hospital from "@/api/hospital";
export default {
// 定义变量和初始值
data() {
return {
current: 1, // 当前页
limit: 3, // 每页显示记录数
searchObj: {}, // 条件封装对象
list: [], // 没页数据集合
total: 0 // 总记录数
};
},
// 在页面渲染之前执行,一般调用 methods 中定义的方法,得到数据
created() {
this.getList();
},
methods: {
// 定义方法,进行请求接口调用
// 医院列表
getList(page = 1) {
// 添加当前页参数
this.current = page;
hospital
.getHospitalList(this.current, this.limit, this.searchObj)
.then(response => {
// response 是接口返回数据
this.list = response.data.records;
this.total = response.data.total;
}) // 请求成功
.catch(error => {});
}, // 请求失败
// 单条删除医院
removeDataById(id) {
this.$confirm("此操作将永久删除医院信息, 是否继续?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
}).then(() => {
// 确定执行 then 方法
// 调用接口
hospital.deleteHospital(id).then(response => {
// 提示
this.$message({
type: "success",
message: "删除成功!"
});
// 刷新页面
this.getList(1);
});
});
}
}
};
</script>
三 测试效果
删除后,数据库发生了变化
标签:searchObj,vue,删除,hospital,id,current,limit,单条,response 来源: https://blog.csdn.net/chengqiuming/article/details/120685596