代客下单增加临时菜

This commit is contained in:
YeMingfei666 2024-11-22 15:45:33 +08:00
parent f393b91c2d
commit d1cbebefe9
3 changed files with 118 additions and 34 deletions

21
src/api/Instead.js Normal file
View File

@ -0,0 +1,21 @@
// 代客下单
import request from "@/utils/request";
//就餐形式,默认堂食后付费
const useType='dine-in-after'
function getUseType(){
const type=localStorage.getItem("useType")
return type?type:useType
}
// 购物车-临时菜添加
export function $temporaryDishes(data) {
return request({
url: '/api/place/temporaryDishes',
method: "post",
data:{
shopId: localStorage.getItem("shopId"),
useType:getUseType(),
...data
}
});
}

View File

@ -8,12 +8,20 @@
<div>
<div>将临时菜添加至购物车不会影响总商品库</div>
<div class="u-m-t-16">
<el-form ref="form" :model="form" label-width="80px">
<el-form-item label="菜品名称">
<el-input v-model="form.name"></el-input>
<el-form ref="form" :model="form" label-width="80px" :rules="rules">
<el-form-item label="菜品名称" prop="name">
<el-input
v-model="form.name"
placeholder="请输入菜品名称"
></el-input>
</el-form-item>
<el-form-item label="菜品分类">
<el-select v-model="form.category" filterable placeholder="选择分类">
<el-form-item label="菜品分类" prop="categoryId">
<el-select
v-model="form.categoryId"
@change="selectChange($event, 'form', 'categoryId')"
filterable
placeholder="选择分类"
>
<el-option
v-for="item in category"
:key="item.id"
@ -23,13 +31,22 @@
</el-option>
</el-select>
</el-form-item>
<el-form-item label="价格">
<el-input v-model="form.price" placeholder="请输入价格" type="number">
<template slot="append"></template>
<el-form-item label="价格" prop="price">
<el-input
v-model="form.price"
placeholder="请输入价格"
type="number"
>
<template slot="append"></template>
</el-input>
</el-form-item>
<el-form-item label="单位">
<el-select v-model="form.unit" filterable placeholder="选择单位">
<el-form-item label="单位" prop="unit">
<el-select
v-model="form.unit"
filterable
placeholder="选择单位"
@change="selectChange($event, 'form', 'unit')"
>
<el-option
v-for="item in units"
:key="item.id"
@ -39,13 +56,16 @@
</el-option>
</el-select>
</el-form-item>
<el-form-item label="下单数量">
<el-input v-model="form.num" placeholder="请输入下单数量" type="number">
<el-form-item label="下单数量" prop="num">
<el-input
v-model="form.num"
placeholder="请输入下单数量"
type="number"
>
</el-input>
</el-form-item>
<el-form-item label="备注">
<el-input v-model="form.note" placeholder="请输入备注" >
</el-input>
<el-input v-model="form.note" placeholder="请输入备注"> </el-input>
</el-form-item>
</el-form>
</div>
@ -57,22 +77,32 @@
</el-dialog>
</template>
<script>
import { tbShopCategoryGet,tbShopUnit } from "@/api/shop";
import { tbShopCategoryGet, tbShopUnit } from "@/api/shop";
import * as $InsteadApi from "@/api/Instead";
export default {
data() {
return {
show: false,
rules: {
name: [{ required: true, message: "请输入菜品名称", trigger: "blur" }],
categoryId: [
{ required: true, message: "请选择菜品分类", trigger: "blur" },
],
price: [{ required: true, message: "请输入菜品价格", trigger: "blur" }],
unit: [{ required: true, message: "请选择菜品单位", trigger: "blur" }],
num: [{ required: true, message: "请输入下单数量", trigger: "blur" }],
},
form: {
name: "",
category:'',
categoryId: "",
price: "",
unit:'',
num:1,
note:''
unit: "",
num: 1,
note: "",
},
category:[],
units:[]
category: [],
units: [],
option:{}
};
},
@ -96,24 +126,52 @@ export default {
sort: "id",
shopId: localStorage.getItem("shopId"),
});
this.units = content
this.units = content;
},
reset() {
this.$refs.form.resetFields();
},
reset() {},
open() {
open(opt) {
this.show = true;
this.option=opt
},
close() {
this.show = false;
},
confirm() {
this.$emit("confirm", this.form);
//selectc
selectChange($event, ref, type) {
// this.$refs[ref][0].validateField(type)
this.$refs[ref].validateField(type);
},
async submit() {
const res = await $InsteadApi.$temporaryDishes({...this.option,...this.form});
console.log(res);
this.$notify({
title: "临时菜添加成功",
type: "success",
});
this.$emit("updateCart");
this.close();
},
confirm() {
this.$refs.form.validate((valid) => {
if (valid) {
console.log(valid);
// this.$emit("confirm", this.form);
// this.close();
this.submit();
} else {
console.log("error submit!!");
return false;
}
});
},
},
mounted() {
this.getCategory()
this.getUnit()
this.getCategory();
this.getUnit();
},
};
</script>
@ -131,7 +189,7 @@ input[type="number"]::-webkit-outer-spin-button {
-webkit-appearance: none;
margin: 0;
}
::v-deep .el-input__inner::-webkit-inner-spin-button {
::v-deep .el-input__inner::-webkit-inner-spin-button {
-webkit-appearance: none;
margin: 0;
}

View File

@ -713,7 +713,7 @@
</div>
<template v-if="goods.list.length">
<div class="goods-list">
<!-- <div
<div
@click="lingshicaiShow"
class="goods-item lingshicai text-center color-999"
:class="{
@ -723,7 +723,7 @@
>
<span class="el-icon-plus" style="font-size: 26px"></span>
<div class="u-m-t-10">临时菜</div>
</div> -->
</div>
<div
class="goods-item"
:class="{
@ -1418,7 +1418,7 @@
></return-cart>
<!-- 临时菜 -->
<cai-add ref="refPopAddCai"></cai-add>
<cai-add ref="refPopAddCai" @updateCart="getCart"></cai-add>
</div>
</template>
@ -1468,6 +1468,7 @@ import {
$calcUsablePoints,
$calcDeDuctionPoints,
} from "@/api/table";
import { tbShopCategoryGet } from "@/api/shop";
import {
isCanBuy,
@ -2172,7 +2173,11 @@ export default {
},
methods: {
lingshicaiShow() {
this.$refs.refPopAddCai.open();
this.$refs.refPopAddCai.open({
masterId:this.masterId,
tableId:this.table.tableId,
vipUserId:this.vipUser.id,
});
},
delQuan(row) {
const index = this.quansSelArr.findIndex((v) => v.id == row.id);