菜谱问题修改

This commit is contained in:
zzyuan 2025-12-11 11:31:06 +08:00
parent b7dd2a72f8
commit e8b20092a7
2 changed files with 217 additions and 54 deletions

View File

@ -103,7 +103,8 @@
</div>
<div class="bottom-card">
<el-button type="primary" @click="addDishes(item)" v-if="item.dishesList.length==0">新增</el-button>
<el-button plain type="primary" v-else @click="editDishes(item)" >修改</el-button>
<el-button plain type="primary" v-if="item.dishesList.length>0" @click="editDishes(item)">修改</el-button>
<el-button plain type="danger" v-if="item.dishesList.length>0" @click="clearDishes(item)">清空</el-button>
</div>
</el-card>
</div>
@ -166,8 +167,10 @@
</div>
<div class="dialog-center">
<div class="dialog-center-header">菜品分类</div>
<div v-for="(item,index) in dishesTypeList" :key="index" style="width: 100%;text-align: center;margin: 10px 0;">
<el-button plain :class="dishesType==item.typeId?'primary':''" style="width: 80%;" @click="choseDishesType(item)">{{ item.dishesTypeName }}</el-button>
<div v-for="(item,index) in dishesTypeList" :key="index" style="width: 100%;text-align: center;margin: 10px 0;display: flex;align-items: center;justify-content: center;">
<el-button plain :class="dishesType==item.typeId?'primary':''" style="width: 70%;" @click="choseDishesType(item)">{{ item.dishesTypeName }}</el-button>
<!-- <el-button size="mini" type="text" style="color: red;" @click="clearDishTab(item)">清空</el-button> -->
<i class="el-icon-delete" style="color: red;cursor: pointer;margin-left: 10px;font-size: 18px;" @click="clearDishTab(item)"></i>
</div>
</div>
<div class="dialog-right">
@ -281,17 +284,22 @@
</el-select>
</el-form-item>
</el-form>
<div style="width: 100%;height: 450px;padding: 10px;border-radius: 10px;margin-bottom: 10px;display: flex;">
<el-card class="dishes-card" v-for="item in dialogDetailList" :key="item.mealtimeType">
<div slot="header">
<span style="font-weight: 600;">{{item.mealtimeName}}</span>
</div>
<div class="body-card">
<div v-for="dish in item.dishesList" :key="dish.dishesId" style="width: 100%;display: flex;justify-content: space-between;align-items: center;">
<span>{{dish.dishesName}}</span>
<div style="width: 100%;height: 500px;padding: 10px;border-radius: 10px;margin-bottom: 10px;display: flex;">
<div style="width: 20%;height: 100%;margin-right: 10px;" v-for="item in dialogDetailList" :key="item.mealtimeType">
<el-card style="width: 100%;height: 88%;position: relative;">
<div slot="header">
<span style="font-weight: 600;">{{item.mealtimeName}}</span>
</div>
<div class="body-card">
<div v-for="dish in item.dishesList" :key="dish.dishesId" style="width: 100%;display: flex;justify-content: space-between;align-items: center;">
<span>{{dish.dishesName}}</span>
</div>
</div>
</el-card>
<div style="width: 100%;height: 12%;display: flex;align-items: center;justify-content: center;">
<el-button type="primary" @click="confirmCopyMealTypeMenu(item)">复制餐次</el-button>
</div>
</el-card>
</div>
</div>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="confirmCopyMenu"> </el-button>
@ -546,7 +554,7 @@ export default {
//
dishesPageList:[],
//
dishesTypeList:[],
dishesTypeList:[{dishesTypeName:"全部",typeId:"-1"}],
dishesType:"",
//
dishesTableList:[],
@ -829,7 +837,7 @@ export default {
//
addDishes(item){
this.dishesList=item.dishesList;
this.dishesTypeList=[]
this.dishesTypeList=[{dishesTypeName:"全部",typeId:"-1"}]
this.dishesTableList=[]
this.getDishesPage()
this.openDishes=true
@ -838,7 +846,7 @@ export default {
editDishes(item){
// console.log(item)
this.dishesList=item.dishesList;
this.dishesTypeList=[]
this.dishesTypeList=[{dishesTypeName:"全部",typeId:"-1"}]
this.dishesList.forEach(dish=>{
let index = this.dishesTypeList.findIndex(v=>v.typeId==dish.typeId)
if(index==-1){
@ -849,6 +857,16 @@ export default {
this.getDishesPage()
this.openDishes=true
},
//
clearDishes(item){
console.log(item)
console.log(this.detailList)
this.detailList.forEach(mealType=>{
if(mealType.mealtimeType==item.mealtimeType){
mealType.dishesList=[]
}
})
},
//
getDishesPage(){
let param = {
@ -911,18 +929,57 @@ export default {
choseDishesType(item){
this.dishesType = item.typeId;
this.dishesTableList = []
this.dishesList.forEach(dish=>{
if(dish.typeId==item.typeId){
this.dishesTableList.push(dish)
}
})
if(this.dishesTableList.length==0){//
let typeIndex = this.dishesTypeList.findIndex(v=>v.typeId==item.typeId)
if(typeIndex>-1){
this.dishesTypeList.splice(typeIndex,1)
if(this.dishesType==-1){
this.dishesList.forEach(dish=>{
this.dishesTableList.push(dish)
})
}else{
this.dishesList.forEach(dish=>{
if(dish.typeId==item.typeId){
this.dishesTableList.push(dish)
}
})
if(this.dishesTableList.length==0){//
let typeIndex = this.dishesTypeList.findIndex(v=>v.typeId==item.typeId)
if(typeIndex>-1){
this.dishesTypeList.splice(typeIndex,1)
}
}
}
},
//-
clearDishTab(item){
this.$modal.confirm('是否确认清空该类别?').then(()=>{
if(item.typeId==-1){
for (let i = this.dishesList.length - 1; i >= 0; i--) {
this.dishesList.splice(i, 1);
}
this.dishesType = -1
this.dishesTypeList=[{dishesTypeName:"全部",typeId:"-1"}]
this.dishesTableList = []
this.dishesPageList.forEach(dish=>{
dish.isChecked = null;
})
}else{
for (let i = this.dishesList.length - 1; i >= 0; i--) {
if (this.dishesList[i].typeId == item.typeId) {
this.dishesList.splice(i, 1);
}
}
this.dishesPageList.forEach(dish=>{
if(dish.typeId==item.typeId){
dish.isChecked = null;
}
})
let typeIndex = this.dishesTypeList.findIndex(v=>v.typeId==item.typeId)
if(typeIndex>-1){
this.dishesTypeList.splice(typeIndex,1)
}
this.dishesTableList = []
this.choseDishesType(this.dishesTypeList[0])
}
}).catch(() => {});
},
//
handleDelDishes(item){
this.$modal.confirm('是否确认删除?').then(()=>{
@ -945,9 +1002,9 @@ export default {
}
}).catch(() => {});
},
//
//
deleteDishes(type,dish){
this.$modal.confirm('是否确认删除').then(()=>{
this.$modal.confirm('是否确认删除菜品').then(()=>{
let index = type.dishesList.findIndex(v=>v.dishesId==dish.dishesId)
this.detailList.forEach(item=>{
if(item.mealtimeType==type.mealtimeType){
@ -1525,7 +1582,7 @@ export default {
]
this.openCopyMenu = true
},
//
//
confirmCopyMenu(){
this.$modal.confirm('当前日期会被覆盖!确定复制?').then(() => {
console.log(this.dialogDetailList)
@ -1574,7 +1631,29 @@ export default {
this.openCopyMenu = false
}).catch(() => {});
},
//-
confirmCopyMealTypeMenu(item){
console.log(item)
console.log(this.dialogDetailList)
console.log(this.detailList)
this.$modal.confirm('当前日期会被覆盖!确定复制?').then(() => {
item.dishesList.forEach(sub=>{
sub.price = (Number(sub.price)/100).toFixed(2)
sub.salePrice = (Number(sub.salePrice)/100).toFixed(2)
})
let index = this.detailList.findIndex(v=>v.mealtimeType==item.mealtimeType)
this.detailList[index].dishesList = item.dishesList;
if(this.copyType=='date'){
this.dateRangeList[this.dateRangeIndex].detailList = this.detailList;
}
if(this.copyType=='week'){
let index = this.weekDateList.findIndex(v=>v.applyWeek==this.weekId)
this.weekDateList[index].detailList = this.detailList;
}
this.$modal.msgSuccess("复制成功");
this.openCopyMenu = false
}).catch(() => {});
},
//-
clearDateMenu(){
this.$modal.confirm('是否确认清空当天菜谱?').then(() => {

View File

@ -103,7 +103,8 @@
</div>
<div class="bottom-card">
<el-button type="primary" @click="addDishes(item)" v-if="item.dishesList.length==0">新增</el-button>
<el-button plain type="primary" v-else @click="editDishes(item)" >修改</el-button>
<el-button plain type="primary" v-if="item.dishesList.length>0" @click="editDishes(item)">修改</el-button>
<el-button plain type="danger" v-if="item.dishesList.length>0" @click="clearDishes(item)">清空</el-button>
</div>
</el-card>
</div>
@ -166,8 +167,9 @@
</div>
<div class="dialog-center">
<div class="dialog-center-header">菜品分类</div>
<div v-for="(item,index) in dishesTypeList" :key="index" style="width: 100%;text-align: center;margin: 10px 0;">
<el-button plain :class="dishesType==item.typeId?'primary':''" style="width: 80%;" @click="choseDishesType(item)">{{ item.dishesTypeName }}</el-button>
<div v-for="(item,index) in dishesTypeList" :key="index" style="width: 100%;text-align: center;margin: 10px 0;display: flex;align-items: center;justify-content: center;">
<el-button plain :class="dishesType==item.typeId?'primary':''" style="width: 70%;" @click="choseDishesType(item)">{{ item.dishesTypeName }}</el-button>
<i class="el-icon-delete" style="color: red;cursor: pointer;margin-left: 10px;font-size: 18px;" @click="clearDishTab(item)"></i>
</div>
</div>
<div class="dialog-right">
@ -280,17 +282,22 @@
</el-select>
</el-form-item>
</el-form>
<div style="width: 100%;height: 450px;padding: 10px;border-radius: 10px;margin-bottom: 10px;display: flex;">
<el-card class="dishes-card" v-for="item in dialogDetailList" :key="item.mealtimeType">
<div slot="header">
<span style="font-weight: 600;">{{item.mealtimeName}}</span>
</div>
<div class="body-card">
<div v-for="dish in item.dishesList" :key="dish.dishesId" style="width: 100%;display: flex;justify-content: space-between;align-items: center;">
<span>{{dish.dishesName}}</span>
<div style="width: 100%;height: 500px;padding: 10px;border-radius: 10px;margin-bottom: 10px;display: flex;">
<div style="width: 20%;height: 100%;margin-right: 10px;" v-for="item in dialogDetailList" :key="item.mealtimeType">
<el-card style="width: 100%;height: 88%;position: relative;">
<div slot="header">
<span style="font-weight: 600;">{{item.mealtimeName}}</span>
</div>
<div class="body-card">
<div v-for="dish in item.dishesList" :key="dish.dishesId" style="width: 100%;display: flex;justify-content: space-between;align-items: center;">
<span>{{dish.dishesName}}</span>
</div>
</div>
</el-card>
<div style="width: 100%;height: 12%;display: flex;align-items: center;justify-content: center;">
<el-button type="primary" @click="confirmCopyMealTypeMenu(item)">复制餐次</el-button>
</div>
</el-card>
</div>
</div>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="confirmCopyMenu"> </el-button>
@ -547,7 +554,7 @@ export default {
//
dishesPageList:[],
//
dishesTypeList:[],
dishesTypeList:[{dishesTypeName:"全部",typeId:"-1"}],
dishesType:"",
//
dishesTableList:[],
@ -1034,7 +1041,7 @@ export default {
//
addDishes(item){
this.dishesList=item.dishesList;
this.dishesTypeList=[]
this.dishesTypeList=[{dishesTypeName:"全部",typeId:"-1"}]
this.dishesTableList=[]
this.getDishesPage()
this.openDishes=true
@ -1042,7 +1049,7 @@ export default {
//
editDishes(item){
this.dishesList=item.dishesList;
this.dishesTypeList=[]
this.dishesTypeList=[{dishesTypeName:"全部",typeId:"-1"}]
this.dishesList.forEach(dish=>{
let index = this.dishesTypeList.findIndex(v=>v.typeId==dish.typeId)
if(index==-1){
@ -1053,6 +1060,16 @@ export default {
this.getDishesPage()
this.openDishes=true
},
//
clearDishes(item){
console.log(item)
console.log(this.detailList)
this.detailList.forEach(mealType=>{
if(mealType.mealtimeType==item.mealtimeType){
mealType.dishesList=[]
}
})
},
//
getDishesPage(){
let param = {
@ -1112,21 +1129,59 @@ export default {
this.choseDishesType(obj)
},
//-
choseDishesType(item){
choseDishesType(item){
this.dishesType = item.typeId;
this.dishesTableList = []
this.dishesList.forEach(dish=>{
if(dish.typeId==item.typeId){
this.dishesTableList.push(dish)
}
})
if(this.dishesTableList.length==0){//
let typeIndex = this.dishesTypeList.findIndex(v=>v.typeId==item.typeId)
if(typeIndex>-1){
this.dishesTypeList.splice(typeIndex,1)
if(this.dishesType==-1){
this.dishesList.forEach(dish=>{
this.dishesTableList.push(dish)
})
}else{
this.dishesList.forEach(dish=>{
if(dish.typeId==item.typeId){
this.dishesTableList.push(dish)
}
})
if(this.dishesTableList.length==0){//
let typeIndex = this.dishesTypeList.findIndex(v=>v.typeId==item.typeId)
if(typeIndex>-1){
this.dishesTypeList.splice(typeIndex,1)
}
}
}
},
//-
clearDishTab(item){
this.$modal.confirm('是否确认清空该类别?').then(()=>{
if(item.typeId==-1){
for (let i = this.dishesList.length - 1; i >= 0; i--) {
this.dishesList.splice(i, 1);
}
this.dishesType = -1
this.dishesTypeList=[{dishesTypeName:"全部",typeId:"-1"}]
this.dishesTableList = []
this.dishesPageList.forEach(dish=>{
dish.isChecked = null;
})
}else{
for (let i = this.dishesList.length - 1; i >= 0; i--) {
if (this.dishesList[i].typeId == item.typeId) {
this.dishesList.splice(i, 1);
}
}
this.dishesPageList.forEach(dish=>{
if(dish.typeId==item.typeId){
dish.isChecked = null;
}
})
let typeIndex = this.dishesTypeList.findIndex(v=>v.typeId==item.typeId)
if(typeIndex>-1){
this.dishesTypeList.splice(typeIndex,1)
}
this.choseDishesType(this.dishesTypeList[0])
}
}).catch(() => {});
},
//
handleDelDishes(item){
this.$modal.confirm('是否确认删除?').then(()=>{
@ -1755,7 +1810,7 @@ export default {
this.openCopyMenu = true
},
//
//
confirmCopyMenu(){
this.$modal.confirm('当前日期会被覆盖!确定复制?').then(() => {
this.detailList=[]
@ -1786,6 +1841,35 @@ export default {
dishesList:[...this.dialogDetailList[4].dishesList]
}
];
this.detailList.forEach(item=>{
item.dishesList.forEach(sub=>{
sub.price = (Number(sub.price)/100).toFixed(2)
sub.salePrice = (Number(sub.salePrice)/100).toFixed(2)
})
})
if(this.copyType=='date'){
this.dateRangeList[this.dateRangeIndex].detailList = this.detailList;
}
if(this.copyType=='week'){
let index = this.weekDateList.findIndex(v=>v.applyWeek==this.weekId)
this.weekDateList[index].detailList = this.detailList;
}
this.$modal.msgSuccess("复制成功");
this.openCopyMenu = false
}).catch(() => {});
},
//-
confirmCopyMealTypeMenu(item){
console.log(item)
console.log(this.dialogDetailList)
console.log(this.detailList)
this.$modal.confirm('当前日期会被覆盖!确定复制?').then(() => {
item.dishesList.forEach(sub=>{
sub.price = (Number(sub.price)/100).toFixed(2)
sub.salePrice = (Number(sub.salePrice)/100).toFixed(2)
})
let index = this.detailList.findIndex(v=>v.mealtimeType==item.mealtimeType)
this.detailList[index].dishesList = item.dishesList;
if(this.copyType=='date'){
this.dateRangeList[this.dateRangeIndex].detailList = this.detailList;
}