完成菜品修改

This commit is contained in:
huangdeliang
2021-02-18 17:05:10 +08:00
parent 3554bee2b3
commit e404c3be1a
24 changed files with 1462 additions and 147 deletions

View File

@ -3,11 +3,17 @@ import { getCustomerPhysicalSignsByCusId } from "@/api/custom/customer";
import { dealHealthy } from "@/utils/healthyData";
import { getRecipesPlan } from "@/api/custom/recipesPlan";
import { getRecipes } from "@/api/custom/recipes";
import { getDicts } from "@/api/system/dict/data";
import produce from "immer";
const oriState = {
healthyData: {},
healthyDataType: 0,
recipesData: []
recipesData: [],
cusUnitOptions: [],
cusWeightOptions: [],
typeOptions: [],
currentDay: -1
};
const mutations = {
@ -17,6 +23,46 @@ const mutations = {
},
setRecipesData(state, payload) {
state.recipesData = payload.recipesData;
console.log(payload.recipesData);
},
updateRecipesDishesWeight(state, payload) {
const tarDishes = state.recipesData[payload.num].dishes.find(
obj => obj.id === payload.dishesId
);
if (tarDishes) {
const tarIgd = tarDishes.igdList.find(obj => obj.id === payload.igdId);
if (tarIgd) {
tarIgd.weight = payload.weight;
}
}
},
updateRecipesDishesCustomWeight(state, payload) {
const tarDishes = state.recipesData[payload.num].dishes.find(
obj => obj.id === payload.dishesId
);
if (tarDishes) {
const tarIgd = tarDishes.igdList.find(obj => obj.id === payload.igdId);
if (tarIgd) {
tarIgd.cusWeight = payload.cusWeight;
tarIgd.cusUnit = payload.cusUnit;
}
}
},
updateOptions(state, payload) {
payload.cusUnitOptions && (state.cusUnitOptions = payload.cusUnitOptions);
payload.cusWeightOptions &&
(state.cusWeightOptions = payload.cusWeightOptions);
payload.typeOptions && (state.typeOptions = payload.typeOptions);
},
setCurrentDay(state, payload) {
state.currentDay =
payload.currentDay === state.currentDay ? -1 : payload.currentDay;
},
deleteSomeDayDishes(state, payload) {
// console.log(payload);
state.recipesData[payload.num].dishes = state.recipesData[
payload.num
].dishes.filter(obj => obj.id !== payload.dishesId);
},
clean(state) {
// console.log("clean");
@ -32,12 +78,25 @@ const actions = {
if (!orderResult.data.cusId) {
throw new Error("未找到用户id");
}
//
getDicts("cus_cus_unit").then(response => {
commit("updateOptions", { cusUnitOptions: response.data });
});
getDicts("cus_cus_weight").then(response => {
commit("updateOptions", { cusWeightOptions: response.data });
});
getDicts("cus_dishes_type").then(response => {
commit("updateOptions", { typeOptions: response.data });
});
// 健康数据
const healthyDataResult = await getCustomerPhysicalSignsByCusId(
orderResult.data.cusId
);
if (healthyDataResult.code === 200) {
if (!healthyDataResult.data.customerHealthy) {
throw new Error("客户还没填写健康评估表");
}
commit("setHealtyData", {
healthyDataType: healthyDataResult.data.type,
healthyData: dealHealthy(healthyDataResult.data.customerHealthy)
@ -51,7 +110,56 @@ const actions = {
const recipesDataResult = await getRecipes(payload.recipesId);
if (recipesDataResult.code === 200) {
commit("setRecipesData", {
recipesData: recipesDataResult.data
recipesData: recipesDataResult.data.map(dayData => {
return {
id: dayData.id,
numDay: dayData.numDay,
dishes: dayData.dishes.reduce((arr, cur) => {
if (
cur.id > -1 &&
cur.name &&
cur.igdList.length > 0 &&
cur.type !== "0"
) {
arr.push({
id: cur.id,
name: cur.name,
methods: cur.methods,
type: cur.type,
isMain: cur.isMain,
igdList: cur.igdList.reduce((igdArr, igdData) => {
if (igdData.id > 0) {
const tarDetail = cur.detail.find(
obj => obj.id === igdData.id
);
igdArr.push({
id: igdData.id,
name: igdData.name,
carbonRatio: igdData.carbonRatio,
fatRatio: igdData.fatRatio,
proteinRatio: igdData.proteinRatio,
cusUnit: tarDetail
? tarDetail.cus_unit
: igdData.cusUnit,
cusWeight: tarDetail
? parseFloat(tarDetail.cus_weight)
: igdData.cusWeight,
weight: tarDetail
? parseFloat(tarDetail.weight)
: igdData.weight,
notRec: igdData.notRec,
rec: igdData.rec,
type: igdData.type
});
}
return igdArr;
}, [])
});
}
return arr;
}, [])
};
})
});
} else {
throw new Error(recipesDataResult.msg);
@ -60,7 +168,56 @@ const actions = {
}
};
const getters = {};
const getters = {
analyseData: state => {
const datas =
state.currentDay > -1
? [state.recipesData[state.currentDay]]
: state.recipesData;
const nutriData = datas.map(data =>
data.dishes.reduce(
(obj, cur) => {
cur.igdList.forEach(igd => {
obj.pWeight += (igd.weight / 100) * igd.proteinRatio;
obj.pHeat = obj.pWeight * 4;
obj.fWeight += (igd.weight / 100) * igd.fatRatio;
obj.fHeat = obj.fWeight * 9;
obj.cWeight += (igd.weight / 100) * igd.carbonRatio;
obj.cHeat = obj.cWeight * 4;
});
return obj;
},
{
name: `${data.numDay}`,
pWeight: 0,
fWeight: 0,
cWeight: 0,
pHeat: 0,
fHeat: 0,
cHeat: 0
}
)
);
// console.log(nutriData);
return nutriData;
},
cusUnitDict: state =>
state.cusUnitOptions.reduce((obj, cur) => {
obj[cur.dictValue] = cur.dictLabel;
return obj;
}, {}),
cusWeightDict: state =>
state.cusWeightOptions.reduce((obj, cur) => {
obj[cur.dictValue] = cur.dictLabel;
return obj;
}, {}),
typeDict: state =>
state.typeOptions.reduce((obj, cur) => {
obj[cur.dictValue] = cur.dictLabel;
return obj;
}, {})
};
export default {
namespaced: true,