代客下单增加临时菜

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

View File

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