前端删除优化 批量删除和单删

master
mengwang 2024-04-21 20:40:59 +08:00
parent 53045abd48
commit bf49d4e124
2 changed files with 134 additions and 27 deletions

View File

@ -1,7 +1,7 @@
import axios from '@/utils/request';
/**
* 登录
* 查询
*/
export async function goodsList(data) {
const res = await axios.post('/goods/list', data);
@ -10,3 +10,33 @@ export async function goodsList(data) {
}
return Promise.reject(new Error(res.data.message));
}
/**
* 添加
*/
export async function goodsAdd(data) {
const res = await axios.post('/goods/add', data);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
/**
* 添加
*/
export async function goodsDel(data) {
const res = await axios.post('/goods/del', data);
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}
export async function getType() {
const res = await axios.post('/type/getType');
if (res.data.code === 0) {
return res.data.data;
}
return Promise.reject(new Error(res.data.message));
}

View File

@ -1,5 +1,6 @@
<template>
<div>
{{ this.typeList }}
<el-form :model="GoodsQueryReq">
<el-form-item label="商品编码">
<el-input
@ -11,8 +12,18 @@
<el-input style="width: 250px" v-model="GoodsQueryReq.title"></el-input>
</el-form-item>
<el-button type="primary" @click="showGoodsList"></el-button>
<el-button type="primary" @click="dialogVisible = true">新增</el-button>
<el-button type="primary" @click="del"></el-button>
</el-form>
<el-table :data="GoodsList">
{{ this.ids }}
<el-table
ref="multipleTable"
:data="GoodsList"
tooltip-effect="dark"
style="width: 100%"
@selection-change="handleSelectionChange"
>
<el-table-column type="selection" width="55"> </el-table-column>
<el-table-column prop="id" label="商品ID" />
<el-table-column prop="goodid" label="商品编码" />
<el-table-column prop="title" label="商品名称" />
@ -26,29 +37,63 @@
<el-table-column prop="price" label="商品价格" />
<el-table-column label="操作">
<template slot-scope="scope">
<el-button type="primary" @click="del(scope.row.id)"></el-button>
<el-button type="primary" @click="info(scope.row.id)"></el-button>
<el-button type="primary" @click="delOne(scope.row.id)"
>删除</el-button
>
</template>
</el-table-column>
</el-table>
<div class="block">
<span class="demonstration">完整功能</span>
<el-pagination
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page="GoodsQueryReq.pageNum"
:page-sizes="[2, 50, 100, 200]"
:page-size="GoodsQueryReq.pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="GoodsQueryReq.total"
>
</el-pagination>
</div>
<el-pagination
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page="GoodsQueryReq.pageNum"
:page-sizes="[10, 50, 100, 200]"
:page-size="GoodsQueryReq.pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="GoodsQueryReq.total"
>
</el-pagination>
<el-dialog
title="提示"
:visible.sync="dialogVisible"
width="30%"
:before-close="handleClose"
>
<el-form :model="GoodsSaveReq">
<el-form-item label="商品编码">
<input v-model="GoodsSaveReq.goodid" />
</el-form-item>
<el-form-item label="商品名称">
<input v-model="GoodsSaveReq.title" />
</el-form-item>
<el-form-item label="商品类型">
<el-select v-model="GoodsSaveReq.goodtype" placeholder="请选择">
<el-option
v-for="item in typeList"
:key="item.id"
:label="item.name"
:value="item.id"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="商品价格">
<input v-model="GoodsSaveReq.price" />
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="dialogVisible = false"> </el-button>
<el-button type="primary" @click="(dialogVisible = false), add()"
> </el-button
>
</span>
</el-dialog>
</div>
</template>
<script>
import { goodsList } from '@/api/goods';
import { getType, goodsAdd, goodsDel, goodsList } from '@/api/goods';
export default {
name: 'Goods',
@ -59,12 +104,15 @@
//"
return {
GoodsSaveReq: {},
GoodsQueryReq: {
pageNum: 1,
pageSize: 2
pageSize: 10
},
GoodsList: [],
ids: []
ids: [],
dialogVisible: false,
typeList: []
};
},
// data",
@ -73,35 +121,64 @@
watch: {},
//",
methods: {
handleSelectionChange(val) {
const idss = val.map((item) => {
return item.id;
});
this.ids = idss;
},
getTypeList() {
getType().then((res) => {
this.typeList = res;
});
},
handleClose(done) {
this.$confirm('确认关闭?')
.then(() => {
done();
})
.catch(() => {});
},
showGoodsList() {
goodsList(this.GoodsQueryReq).then((res) => {
this.GoodsQueryReq.total = res.count;
this.GoodsList = res.list;
console.log(res);
});
},
handleSizeChange(val) {
this.GoodsQueryReq.pageSize = val;
this.showGoodsList();
console.log(`每页 ${val}`);
},
handleCurrentChange(val) {
this.GoodsQueryReq.pageNum = val;
this.showGoodsList();
console.log(`当前页: ${val}`);
},
del(val) {
console.log(val);
console.log(this.ids);
delOne(val) {
this.ids.push(val);
goodsDel(this.ids).then((res) => {
console.log(res);
this.showGoodsList();
});
},
del() {
goodsDel(this.ids).then((res) => {
console.log(res);
this.showGoodsList();
});
},
info(val) {
console.log(val);
console.log(this.ids);
},
add() {
goodsAdd(this.GoodsSaveReq).then((res) => {
console.log(res);
});
}
},
// - 访this",
created() {
this.showGoodsList();
this.getTypeList();
},
// - 访DOM",
mounted() {},