点餐收款应用项目实践
最近利用vue框架做了一个点餐收款的前端项目,实现的功能包括:点餐、增减商品数量、结账、模拟前后端数据交互等。主要用到的技术包括Html+Css+Vue+Webpack+Element+vueRouter等,通过该项目提升了自身的前端实践能力。效果图如下所示:

项目部分代码如下所示:
methods:{
// 添加点餐列表的方法
addGoods(goods){
// 判断该商品是否已经存在点餐列表中
this.allCount = 0;
this.allMoney = 0;
let flag = false;
for(let i=0;i<this.tableData.length;i++){
if(goods.goodsId == this.tableData[i].goodsId){
flag = true;
console.log(flag);
}
}
// 根据判断结果进行点餐列表的数据更新
if(flag){
let arr = this.tableData.filter(o=> o.goodsId == goods.goodsId);
console.log(arr);
arr[0].count++;
}else{
var newGoods = {goodsId:goods.goodsId, goodsName:goods.goodsName, price:goods.price,count:1};
this.tableData.push(newGoods);
console.log(newGoods);
}
this.getallCount();
},
getallCount(){
this.allCount = 0;
this.allMoney = 0;
for(var i=0;i<this.tableData.length;i++){
this.allCount +=this.tableData[i].count;
this.allMoney +=this.tableData[i].price*this.tableData[i].count;
}
},
upGetallCount(){
this.upAllCount= 0;
this.upAllMoney = 0;
for(var i=0;i<this.upData.length;i++){
this.upAllCount +=this.upData[i].count;
this.upAllMoney +=this.upData[i].price*this.upData[i].count;
}
},
delGoods(goods){
var sum= --goods.count;
console.log(sum);
// 如果商品数量不为0,返回;此时如果商品数量为0,则删除该商品表中所有信息
if(sum>0){
this.getallCount();
return;
}else{
// for(let j=0;j<this.tableData.length;j++){
// if(this.tableData[j].count == 0){
// this.tableData.splice(j,1);
// this.getallCount();
// }
// }
this.tableData = this.tableData.filter(q=>q.count != 0);
this.getallCount();
}
},
upDelGoods(goods){
var sum= --goods.count;
console.log(sum);
if(sum>0){
this.upGetallCount();
return;
}else{
this.upData = this.upData.filter(q=>q.count != 0);
this.upGetallCount();
}
},
upAddGoods(goods){
// 判断该商品是否已经存在挂单列表中
let flag = false;
for(let i=0;i<this.upData.length;i++){
if(goods.goodsId == this.upData[i].goodsId){
flag = true;
console.log(flag);
}
}
// 根据判断结果进行点餐列表的数据更新
if(flag){
let arr = this.upData.filter(o=> o.goodsId == goods.goodsId);
console.log(arr);
arr[0].count++;
}else{
var newGoods = {goodsId:goods.goodsId, goodsName:goods.goodsName, price:goods.price,count:1};
this.upData.push(newGoods);
console.log(newGoods);
}
this.upGetallCount();
},
solveMenu(){
if(this.tableData.length ==0){
// alert("请您先进行点餐!");
this.$message.error('不能空结!');
return
}
this.tableData = [];
this.allCount = 0;
this.allMoney = 0;
alert("结账成功!");
},
upMenu(){
this.upData = this.tableData;
this.tableData = [];
this.allCount = 0;
this.allMoney = 0;
this.upGetallCount();
},
delMenu(){
this.tableData = [];
this.allCount = 0;
this.allMoney = 0;
},
returnMenu(){
this.tableData = this.upData;
this.upData = [];
this.upAllCount = 0;
this.upAllMoney = 0;
this.getallCount();
}
}
源代码github地址:https://github.com/sllhappy/order_pos
参考资料:
https://element.eleme.cn/#/zh-CN/component/layout
https://www.cnblogs.com/mumu122GIS/p/11208815.html

浙公网安备 33010602011771号