生成食谱接口对接
This commit is contained in:
@ -1,5 +1,13 @@
|
||||
import request from "@/utils/request";
|
||||
|
||||
export function addRecipesApi(data) {
|
||||
return request({
|
||||
url: "/custom/recipes/",
|
||||
method: "post",
|
||||
data
|
||||
});
|
||||
}
|
||||
|
||||
export function getRecipesApi(id) {
|
||||
return request({
|
||||
url: "/custom/recipes/" + id,
|
||||
@ -9,7 +17,7 @@ export function getRecipesApi(id) {
|
||||
|
||||
export function updateDishesDetailApi(data) {
|
||||
return request({
|
||||
url: "/custom/recipes",
|
||||
url: "/custom/recipes/dishes",
|
||||
method: "put",
|
||||
data
|
||||
});
|
||||
@ -17,15 +25,15 @@ export function updateDishesDetailApi(data) {
|
||||
|
||||
export function addDishesApi(data) {
|
||||
return request({
|
||||
url: "/custom/recipes",
|
||||
url: "/custom/recipes/dishes",
|
||||
method: "post",
|
||||
data
|
||||
});
|
||||
}
|
||||
|
||||
export function deleteDishesApi(cid) {
|
||||
export function deleteDishesApi(id) {
|
||||
return request({
|
||||
url: "/custom/recipes/dishes/" + cid,
|
||||
url: "/custom/recipes/dishes/" + id,
|
||||
method: "delete"
|
||||
});
|
||||
}
|
||||
|
@ -1,10 +1,10 @@
|
||||
<template>
|
||||
<div :class="classname">
|
||||
<span class="title">{{ title }}:</span>
|
||||
<span class="info_title">{{ title }}:</span>
|
||||
<span v-if="newLine">
|
||||
<div v-for="value in mValue" :key="value">{{ value }}</div>
|
||||
</span>
|
||||
<span v-else class="value">{{ mValue }}</span>
|
||||
<span v-else class="info_value">{{ mValue }}</span>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
@ -32,19 +32,19 @@ export default {
|
||||
props: ["title", "value", "extraclass"],
|
||||
};
|
||||
</script>
|
||||
<style rel="stylesheet/scss" lang="scss">
|
||||
<style lang="scss" >
|
||||
.text_info_wrapper {
|
||||
display: flex;
|
||||
margin-right: 24px;
|
||||
min-width: 120px;
|
||||
font-size: 14px;
|
||||
|
||||
.title {
|
||||
.info_title {
|
||||
color: #8c8c8c;
|
||||
width: auto;
|
||||
}
|
||||
|
||||
.value {
|
||||
.info_value {
|
||||
/* color: #696969; */
|
||||
flex: 1 1 0;
|
||||
}
|
||||
|
@ -145,7 +145,7 @@ export const constantRoutes = [
|
||||
hidden: true,
|
||||
children: [
|
||||
{
|
||||
path: "build/:cusId/:planId/:recipesId",
|
||||
path: "build",
|
||||
component: resolve =>
|
||||
require(["@/views/custom/recipesBuild"], resolve),
|
||||
name: "RecipiesBuild",
|
||||
|
@ -1,62 +1,51 @@
|
||||
import { getOrder } from "@/api/custom/order";
|
||||
import { getCustomerPhysicalSignsByCusId } from "@/api/custom/customer";
|
||||
import { dealHealthy } from "@/utils/healthyData";
|
||||
import { getRecipesPlan } from "@/api/custom/recipesPlan";
|
||||
import {
|
||||
getRecipesApi,
|
||||
updateDishesDetailApi,
|
||||
addDishesApi,
|
||||
deleteDishesApi
|
||||
deleteDishesApi,
|
||||
addRecipesApi
|
||||
} from "@/api/custom/recipes";
|
||||
import { getDicts } from "@/api/system/dict/data";
|
||||
import produce from "immer";
|
||||
import { updateDishes } from "@/api/custom/dishes";
|
||||
import dayjs from "dayjs";
|
||||
|
||||
const oriState = {
|
||||
cusId: undefined,
|
||||
planId: undefined,
|
||||
recipesId: undefined,
|
||||
healthyData: {},
|
||||
healthDataLoading: false,
|
||||
healthyDataType: 0,
|
||||
recipesData: [],
|
||||
recipesDataLoading: false,
|
||||
cusUnitOptions: [],
|
||||
cusWeightOptions: [],
|
||||
dishesTypeOptions: [],
|
||||
typeOptions: [],
|
||||
currentDay: -1
|
||||
currentDay: -1,
|
||||
startDate: "",
|
||||
endDate: ""
|
||||
};
|
||||
|
||||
const mutations = {
|
||||
setRecipiesId(state, payload) {
|
||||
state.recipesId = payload.recipesId;
|
||||
},
|
||||
setHealtyData(state, payload) {
|
||||
state.healthyDataType = payload.healthyDataType;
|
||||
state.healthyData = payload.healthyData;
|
||||
},
|
||||
setRecipesData(state, payload) {
|
||||
state.recipesData = payload.recipesData;
|
||||
// console.log(payload.recipesData);
|
||||
},
|
||||
updateRecipesDishesDetail(state, payload) {
|
||||
const tarDishes = state.recipesData[payload.num].dishes.find(
|
||||
obj => obj.id === payload.dishesId
|
||||
obj => obj.dishesId === payload.dishesId
|
||||
);
|
||||
if (tarDishes) {
|
||||
const tarIgd = tarDishes.igdList.find(obj => obj.id === payload.igdId);
|
||||
if (tarIgd) {
|
||||
payload.weight && (tarIgd.weight = payload.weight);
|
||||
payload.cusWeight && (tarIgd.cusWeight = payload.cusWeight);
|
||||
payload.cusUnit && (tarIgd.cusUnit = payload.cusUnit);
|
||||
Object.keys(payload).forEach(key => {
|
||||
tarIgd[key] = payload[key];
|
||||
});
|
||||
}
|
||||
}
|
||||
},
|
||||
addRecipesDishes(state, payload) {
|
||||
state.recipesData[payload.num].dishes.push(payload.data);
|
||||
},
|
||||
updateOptions(state, payload) {
|
||||
Object.keys(payload).forEach(key => {
|
||||
state[key] = payload[key];
|
||||
});
|
||||
},
|
||||
setCurrentDay(state, payload) {
|
||||
state.currentDay =
|
||||
payload.currentDay === state.currentDay ? -1 : payload.currentDay;
|
||||
@ -67,6 +56,15 @@ const mutations = {
|
||||
payload.num
|
||||
].dishes.filter(obj => obj.id !== payload.dishesId);
|
||||
},
|
||||
updateStateData(state, payload) {
|
||||
Object.keys(payload).forEach(key => {
|
||||
state[key] = payload[key];
|
||||
});
|
||||
},
|
||||
setDate(state, payload) {
|
||||
state.startDate = payload.startDate;
|
||||
state.endDate = payload.endDate;
|
||||
},
|
||||
clean(state) {
|
||||
// console.log("clean");
|
||||
Object.keys(oriState).forEach(key => {
|
||||
@ -76,109 +74,137 @@ const mutations = {
|
||||
};
|
||||
|
||||
const actions = {
|
||||
async init({ commit }, payload) {
|
||||
async init({ commit, dispatch }, payload) {
|
||||
const orderResult = await getOrder(payload.cusId);
|
||||
if (!orderResult.data.cusId) {
|
||||
throw new Error("未找到用户id");
|
||||
}
|
||||
|
||||
commit("updateStateData", {
|
||||
...payload,
|
||||
cusId: orderResult.data.cusId
|
||||
});
|
||||
//
|
||||
getDicts("cus_cus_unit").then(response => {
|
||||
commit("updateOptions", { cusUnitOptions: response.data });
|
||||
commit("healthDataLoading", { cusUnitOptions: response.data });
|
||||
});
|
||||
getDicts("cus_cus_weight").then(response => {
|
||||
commit("updateOptions", { cusWeightOptions: response.data });
|
||||
commit("healthDataLoading", { cusWeightOptions: response.data });
|
||||
});
|
||||
getDicts("cus_dishes_type").then(response => {
|
||||
commit("updateOptions", { typeOptions: response.data });
|
||||
commit("healthDataLoading", { typeOptions: response.data });
|
||||
});
|
||||
getDicts("cus_dishes_type").then(response => {
|
||||
commit("updateOptions", { dishesTypeOptions: response.data });
|
||||
commit("healthDataLoading", { dishesTypeOptions: 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)
|
||||
});
|
||||
} else {
|
||||
throw new Error(healthyDataResult.msg);
|
||||
//
|
||||
if (orderResult.data.cusId) {
|
||||
dispatch("getHealthyData", { cusId: orderResult.data.cusId });
|
||||
}
|
||||
|
||||
// 食谱数据
|
||||
if (payload.recipesId) {
|
||||
const recipesDataResult = await getRecipesApi(payload.recipesId);
|
||||
if (recipesDataResult.code === 200) {
|
||||
commit("setRecipesData", {
|
||||
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,
|
||||
cid: cur.cid,
|
||||
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);
|
||||
}
|
||||
dispatch("getRecipesInfo", payload);
|
||||
}
|
||||
},
|
||||
async saveRecipes({ commit, state }, payload) {
|
||||
const { recipesData } = state;
|
||||
const params = recipesData.map(menu => {
|
||||
return menu.dishes.map(dObj => {
|
||||
async getHealthyData({ commit }, payload) {
|
||||
commit("updateStateData", { healthDataLoading: true });
|
||||
// 健康数据
|
||||
const healthyDataResult = await getCustomerPhysicalSignsByCusId(
|
||||
payload.cusId
|
||||
);
|
||||
let healthyData = undefined,
|
||||
healthyDataType = 0;
|
||||
if (healthyDataResult.code === 200) {
|
||||
if (!healthyDataResult.data.customerHealthy) {
|
||||
throw new Error("客户还没填写健康评估表");
|
||||
}
|
||||
healthyDataType = healthyDataResult.data.type;
|
||||
healthyData = dealHealthy(healthyDataResult.data.customerHealthy);
|
||||
} else {
|
||||
throw new Error(healthyDataResult.msg);
|
||||
}
|
||||
commit("updateStateData", {
|
||||
healthDataLoading: false,
|
||||
healthyDataType,
|
||||
healthyData
|
||||
});
|
||||
},
|
||||
async getRecipesInfo({ commit }, payload) {
|
||||
commit("updateStateData", {
|
||||
recipesDataLoading: true
|
||||
});
|
||||
const recipesDataResult = await getRecipesApi(payload.recipesId);
|
||||
let recipesData = undefined;
|
||||
if (recipesDataResult.code === 200) {
|
||||
recipesData = recipesDataResult.data.map(dayData => {
|
||||
return {
|
||||
dishesId: dObj.id,
|
||||
id: dayData.id,
|
||||
numDay: dayData.numDay,
|
||||
dishes: dayData.dishes.reduce((arr, cur) => {
|
||||
if (
|
||||
cur.dishesId > -1 &&
|
||||
cur.name &&
|
||||
cur.igdList.length > 0 &&
|
||||
cur.type !== "0"
|
||||
) {
|
||||
arr.push({
|
||||
id: cur.id,
|
||||
dishesId: cur.dishesId,
|
||||
name: cur.name,
|
||||
menuId: cur.menuId,
|
||||
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);
|
||||
}
|
||||
commit("updateStateData", { recipesDataLoading: false, recipesData });
|
||||
},
|
||||
async saveRecipes({ commit, dispatch, state }, payload) {
|
||||
const { recipesData, cusId, planId } = state;
|
||||
const params = {
|
||||
cusId,
|
||||
planId,
|
||||
menus: recipesData.map((menu, idx) => ({
|
||||
date: dayjs(state.startDate)
|
||||
.add(idx, "day")
|
||||
.format("YYYY-MM-DD"),
|
||||
cusId,
|
||||
dishes: menu.dishes.map(dObj => ({
|
||||
dishesId: dObj.dishesId,
|
||||
type: dObj.type,
|
||||
detail: dObj.igdList.map(igd => ({
|
||||
id: igd.id,
|
||||
@ -186,72 +212,90 @@ const actions = {
|
||||
cus_unit: igd.cusUnit,
|
||||
cus_weight: igd.cusWeight
|
||||
}))
|
||||
};
|
||||
});
|
||||
});
|
||||
console.log(params);
|
||||
}))
|
||||
}))
|
||||
};
|
||||
const result = await addRecipesApi(params);
|
||||
if (result.code === 200) {
|
||||
dispatch("getRecipesInfo", { recipesId: result.data });
|
||||
}
|
||||
// console.log(params);
|
||||
},
|
||||
async addDishes({ commit, state }, payload) {
|
||||
const tarRecipesObj = state.recipesData[payload.num];
|
||||
if (tarRecipesObj && payload.data) {
|
||||
const { id, type, igdList } = payload.data;
|
||||
const params = {
|
||||
menuId: tarRecipesObj.id,
|
||||
id: id,
|
||||
type: type,
|
||||
detail: igdList.map(igd => ({
|
||||
id: igd.id,
|
||||
weight: igd.weight,
|
||||
cus_unit: igd.cusUnit,
|
||||
cus_weight: igd.cusWeight
|
||||
}))
|
||||
};
|
||||
const result = await addDishesApi(params);
|
||||
if (result.code === 200) {
|
||||
payload.data.cid = result.data;
|
||||
commit("addRecipesDishes", payload);
|
||||
}
|
||||
console.log(result);
|
||||
}
|
||||
},
|
||||
async updateDishes({ commit, state }, payload) {
|
||||
const tarDishes = state.recipesData[payload.num].dishes.find(
|
||||
obj => obj.id === payload.dishesId
|
||||
);
|
||||
if (tarDishes) {
|
||||
const mTarDishes = JSON.parse(JSON.stringify(tarDishes));
|
||||
const tarIgd = mTarDishes.igdList.find(obj => obj.id === payload.igdId);
|
||||
if (tarIgd) {
|
||||
payload.weight && (tarIgd.weight = payload.weight);
|
||||
payload.cusWeight && (tarIgd.cusWeight = payload.cusWeight);
|
||||
payload.cusUnit && (tarIgd.cusUnit = payload.cusUnit);
|
||||
|
||||
if (state.recipesId) {
|
||||
const tarRecipesObj = state.recipesData[payload.num];
|
||||
if (tarRecipesObj && payload.data) {
|
||||
const { dishesId, type, igdList } = payload.data;
|
||||
const params = {
|
||||
cid: mTarDishes.cid,
|
||||
detail: mTarDishes.igdList.map(igd => ({
|
||||
type,
|
||||
dishesId,
|
||||
menuId: tarRecipesObj.id,
|
||||
detail: igdList.map(igd => ({
|
||||
id: igd.id,
|
||||
weight: igd.weight,
|
||||
cus_unit: igd.cusUnit,
|
||||
cus_weight: igd.cusWeight
|
||||
}))
|
||||
};
|
||||
const result = await updateDishesDetailApi(params);
|
||||
const result = await addDishesApi(params);
|
||||
if (result.code === 200) {
|
||||
commit("updateRecipesDishesDetail", payload);
|
||||
payload.menuId = tarRecipesObj.id;
|
||||
// 更新id
|
||||
payload.data.id = result.data;
|
||||
commit("addRecipesDishes", payload);
|
||||
}
|
||||
} else {
|
||||
commit("addRecipesDishes", payload);
|
||||
}
|
||||
// console.log(result);
|
||||
}
|
||||
},
|
||||
async updateDishes({ commit, state }, payload) {
|
||||
if (state.recipesId) {
|
||||
const tarDishes = state.recipesData[payload.num].dishes.find(
|
||||
obj => obj.dishesId === payload.dishesId
|
||||
);
|
||||
if (tarDishes) {
|
||||
const mTarDishes = JSON.parse(JSON.stringify(tarDishes));
|
||||
const tarIgd = mTarDishes.igdList.find(obj => obj.id === payload.igdId);
|
||||
if (tarIgd) {
|
||||
payload.weight && (tarIgd.weight = payload.weight);
|
||||
payload.cusWeight && (tarIgd.cusWeight = payload.cusWeight);
|
||||
payload.cusUnit && (tarIgd.cusUnit = payload.cusUnit);
|
||||
|
||||
const params = {
|
||||
id: mTarDishes.id,
|
||||
detail: mTarDishes.igdList.map(igd => ({
|
||||
id: igd.id,
|
||||
weight: igd.weight,
|
||||
cus_unit: igd.cusUnit,
|
||||
cus_weight: igd.cusWeight
|
||||
}))
|
||||
};
|
||||
const result = await updateDishesDetailApi(params);
|
||||
if (result.code === 200) {
|
||||
commit("updateRecipesDishesDetail", payload);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
commit("updateRecipesDishesDetail", payload);
|
||||
}
|
||||
}
|
||||
},
|
||||
async deleteDishes({ commit, state }, payload) {
|
||||
const tarDishes = state.recipesData[payload.num].dishes.find(
|
||||
obj => obj.id === payload.dishesId
|
||||
);
|
||||
if (tarDishes) {
|
||||
const result = await deleteDishesApi(tarDishes.cid);
|
||||
if (result.code === 200) {
|
||||
commit("deleteSomeDayDishes", payload);
|
||||
if (state.recipesId) {
|
||||
const tarDishes = state.recipesData[payload.num].dishes.find(
|
||||
obj => obj.id === payload.id
|
||||
);
|
||||
if (tarDishes) {
|
||||
const result = await deleteDishesApi(tarDishes.id);
|
||||
if (result.code === 200) {
|
||||
commit("deleteSomeDayDishes", payload);
|
||||
}
|
||||
// console.log(params);
|
||||
}
|
||||
// console.log(params);
|
||||
} else {
|
||||
commit("deleteSomeDayDishes", payload);
|
||||
}
|
||||
},
|
||||
async deleteMenu({ commit }, payload) {}
|
||||
@ -259,6 +303,9 @@ const actions = {
|
||||
|
||||
const getters = {
|
||||
analyseData: state => {
|
||||
if (!state.recipesData.length) {
|
||||
return [];
|
||||
}
|
||||
const datas =
|
||||
state.currentDay > -1
|
||||
? [state.recipesData[state.currentDay]]
|
||||
|
@ -4,8 +4,12 @@
|
||||
:style="`height: ${collapse ? 30 : 200}px`"
|
||||
>
|
||||
<div class="header">
|
||||
<el-button size="mini" type="primary" @click="handleOnSave"
|
||||
>保存</el-button
|
||||
<el-button
|
||||
v-if="!recipesId"
|
||||
size="mini"
|
||||
type="primary"
|
||||
@click="handleOnSave"
|
||||
>生成食谱</el-button
|
||||
>
|
||||
<el-button size="mini" type="text" @click="handleCollapseClick">{{
|
||||
`${collapse ? "展开分析" : "收起分析"}`
|
||||
@ -21,7 +25,12 @@
|
||||
height="170px"
|
||||
width="500px"
|
||||
/>
|
||||
<PieChart v-else :data="data" height="170px" width="500px" />
|
||||
<PieChart
|
||||
v-if="data.length === 1"
|
||||
:data="data"
|
||||
height="170px"
|
||||
width="500px"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
@ -29,7 +38,7 @@
|
||||
import BarChart from "./BarChart";
|
||||
import PieChart from "./PieChart";
|
||||
import { createNamespacedHelpers } from "vuex";
|
||||
const { mapActions } = createNamespacedHelpers("recipes");
|
||||
const { mapActions, mapState } = createNamespacedHelpers("recipes");
|
||||
export default {
|
||||
name: "RecipesAspectCom",
|
||||
components: {
|
||||
@ -43,7 +52,9 @@ export default {
|
||||
// console.log(this.data);
|
||||
},
|
||||
props: ["collapse", "data"],
|
||||
computed: {},
|
||||
computed: {
|
||||
...mapState(["recipesId"]),
|
||||
},
|
||||
methods: {
|
||||
handleCollapseClick() {
|
||||
this.$emit("update:collapse", !this.collapse);
|
||||
|
@ -70,8 +70,8 @@ export default {
|
||||
name: "",
|
||||
type: "",
|
||||
igdList: [],
|
||||
recTags:[],
|
||||
notRecTags: []
|
||||
recTags: [],
|
||||
notRecTags: [],
|
||||
},
|
||||
};
|
||||
},
|
||||
@ -123,8 +123,27 @@ export default {
|
||||
handleOnConfirmClick() {
|
||||
this.visible = false;
|
||||
this.active = 0;
|
||||
this.$emit("onConfirm", this.selDishes);
|
||||
// console.log(this.selDishes);
|
||||
|
||||
const {
|
||||
id,
|
||||
methods,
|
||||
name,
|
||||
notRecTags,
|
||||
recTags,
|
||||
type,
|
||||
igdList,
|
||||
} = this.selDishes;
|
||||
this.$emit("onConfirm", {
|
||||
id: -1,
|
||||
dishesId: id,
|
||||
methods,
|
||||
name,
|
||||
notRecTags,
|
||||
recTags,
|
||||
type,
|
||||
igdList,
|
||||
});
|
||||
console.log(this.selDishes);
|
||||
},
|
||||
},
|
||||
};
|
||||
|
@ -161,7 +161,7 @@ export default {
|
||||
const mData = this.data.dishes
|
||||
.sort((a, b) => a.type - b.type)
|
||||
.reduce((arr, cur, idx) => {
|
||||
if (cur.id > 0 && cur.type !== "0") {
|
||||
if (cur.dishesId > 0 && cur.type !== "0") {
|
||||
cur.igdList.forEach((igd) => {
|
||||
let lastTypeHit = false,
|
||||
lastNameHit = false;
|
||||
@ -194,6 +194,8 @@ export default {
|
||||
|
||||
arr.push({
|
||||
id: cur.id,
|
||||
dishesId: cur.dishesId,
|
||||
menuId: cur.menuId,
|
||||
name: cur.name,
|
||||
type: cur.type,
|
||||
isMain: cur.isMain,
|
||||
@ -272,21 +274,22 @@ export default {
|
||||
},
|
||||
handleOnDelete(data) {
|
||||
// console.log(data);
|
||||
this.deleteDishes({ num: this.num - 1, dishesId: data.id });
|
||||
this.deleteDishes({ num: this.num - 1, id: data.id });
|
||||
},
|
||||
handleOnWeightChange(data, weight) {
|
||||
// console.log({ data, weight });
|
||||
console.log({ data, weight });
|
||||
this.updateDishes({
|
||||
num: this.num - 1,
|
||||
dishesId: data.id,
|
||||
dishesId: data.dishesId,
|
||||
igdId: data.igdId,
|
||||
weight,
|
||||
});
|
||||
},
|
||||
handleOnCustomUnitChange(data, { cusWeight, cusUnit }) {
|
||||
console.log({ data, cusWeight, cusUnit });
|
||||
this.updateDishes({
|
||||
num: this.num - 1,
|
||||
dishesId: data.id,
|
||||
dishesId: data.dishesId,
|
||||
igdId: data.igdId,
|
||||
cusWeight,
|
||||
cusUnit,
|
||||
|
@ -24,6 +24,11 @@ export default {
|
||||
RecipesCom,
|
||||
RecipesAspectCom,
|
||||
},
|
||||
computed: {
|
||||
mCollapse() {
|
||||
return analyseData.length ? this.collapse : false;
|
||||
},
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
collapse: false,
|
||||
|
22
stdiet-ui/src/views/custom/recipesBuild/RecommondView.vue
Normal file
22
stdiet-ui/src/views/custom/recipesBuild/RecommondView.vue
Normal file
@ -0,0 +1,22 @@
|
||||
|
||||
<template>
|
||||
<el-button @click="handleOnClick">推荐</el-button>
|
||||
</template>
|
||||
<script>
|
||||
import { createNamespacedHelpers } from "vuex";
|
||||
const {
|
||||
mapActions,
|
||||
mapState,
|
||||
mapMutations,
|
||||
mapGetters,
|
||||
} = createNamespacedHelpers("recipes");
|
||||
export default {
|
||||
name: "RecommondView",
|
||||
methods: {
|
||||
handleOnClick() {
|
||||
this.getRecipesInfo({ recipesId: 73 });
|
||||
},
|
||||
...mapActions(["getRecipesInfo"]),
|
||||
},
|
||||
};
|
||||
</script>
|
@ -1,13 +1,15 @@
|
||||
<template>
|
||||
<div class="recipes_build_wrapper">
|
||||
<div class="left">
|
||||
<div class="left" v-loading="recipesDataLoading">
|
||||
<RecipesView
|
||||
v-if="!!recipesData.length"
|
||||
:data="recipesData"
|
||||
:name="healthyData.name"
|
||||
:analyseData="analyseData"
|
||||
/>
|
||||
<RecommondView v-else />
|
||||
</div>
|
||||
<div class="right">
|
||||
<div class="right" v-loading="healthDataLoading">
|
||||
<HealthyView :data="healthyData" v-if="healthyDataType === 0" />
|
||||
<BodySignView :data="healthyData" v-else />
|
||||
</div>
|
||||
@ -25,6 +27,7 @@ const {
|
||||
import HealthyView from "./HealthyView";
|
||||
import BodySignView from "./BodySignView";
|
||||
import RecipesView from "./RecipesView/index";
|
||||
import RecommondView from "./RecommondView";
|
||||
|
||||
export default {
|
||||
name: "BuildRecipies",
|
||||
@ -32,12 +35,15 @@ export default {
|
||||
return {};
|
||||
},
|
||||
mounted() {
|
||||
//
|
||||
// console.log({
|
||||
// cusId: this.cusId,
|
||||
// recipesId: this.recipesId,
|
||||
// });
|
||||
this.init({ cusId: this.cusId, recipesId: this.recipesId }).catch((err) => {
|
||||
const { cusId, planId, startDate, endDate, recipesId } = this.$route.query;
|
||||
|
||||
this.init({
|
||||
cusId,
|
||||
planId,
|
||||
startDate,
|
||||
endDate,
|
||||
recipesId,
|
||||
}).catch((err) => {
|
||||
this.$message.error(err.message);
|
||||
});
|
||||
},
|
||||
@ -49,10 +55,17 @@ export default {
|
||||
HealthyView,
|
||||
BodySignView,
|
||||
RecipesView,
|
||||
RecommondView,
|
||||
},
|
||||
props: ["planId", "cusId", "recipesId"],
|
||||
// props: ["cusId", "planId", "recipesId", "startDate", "endDate"],
|
||||
computed: {
|
||||
...mapState(["healthyData", "healthyDataType", "recipesData"]),
|
||||
...mapState([
|
||||
"healthyData",
|
||||
"healthyDataType",
|
||||
"recipesData",
|
||||
"recipesDataLoading",
|
||||
"healthDataLoading",
|
||||
]),
|
||||
...mapGetters(["analyseData"]),
|
||||
},
|
||||
methods: {
|
||||
|
@ -170,14 +170,14 @@
|
||||
<el-button
|
||||
size="mini"
|
||||
type="text"
|
||||
icon="el-icon-edit"
|
||||
icon="el-icon-view"
|
||||
@click="
|
||||
allRecipesPlanQueryParam.orderId = scope.row.orderId;
|
||||
getAllPlanByOrderId();
|
||||
"
|
||||
>查看完整计划
|
||||
</el-button>
|
||||
<el-button
|
||||
<!-- <el-button
|
||||
size="mini"
|
||||
type="text"
|
||||
icon="el-icon-edit"
|
||||
@ -192,13 +192,15 @@
|
||||
@click="getCustomerSign(scope.row)"
|
||||
v-hasPermi="['custom:customer:query']"
|
||||
>查看体征
|
||||
</el-button>
|
||||
</el-button> -->
|
||||
<el-button
|
||||
size="mini"
|
||||
type="text"
|
||||
icon="el-icon-edit"
|
||||
:icon="`${
|
||||
scope.row.recipesId ? 'el-icon-edit' : 'el-icon-edit-outline'
|
||||
}`"
|
||||
@click="handleBuild(scope.row)"
|
||||
>{{ `${scope.row.recipes_id ? "编辑" : "制作"}食谱` }}</el-button
|
||||
>{{ `${scope.row.recipesId ? "编辑" : "制作"}食谱` }}</el-button
|
||||
>
|
||||
</template>
|
||||
</el-table-column>
|
||||
@ -604,20 +606,26 @@ export default {
|
||||
}
|
||||
},
|
||||
handleBuild(data) {
|
||||
// console.log(data);
|
||||
const { startDate, endDate, id, orderId, recipesId } = data;
|
||||
|
||||
// const params = { id: data.id, cusId: data.orderId };
|
||||
let path = `/recipes/build/${data.orderId}/${data.id}`;
|
||||
if (data.recipes_id) {
|
||||
// params.recipesId = data.recipes_id;
|
||||
path += `/${data.recipes_id}`;
|
||||
}
|
||||
// test
|
||||
// params.recipesId = "61";
|
||||
path += '/73';
|
||||
// const path = `/recipes/build/${orderId}/${id}/${recipesId || 0}`;
|
||||
// this.$router.push({
|
||||
// name: "build",
|
||||
// params,
|
||||
// });
|
||||
this.$router.push(path);
|
||||
const queryParam = {
|
||||
planId: id,
|
||||
cusId: orderId,
|
||||
};
|
||||
if (!recipesId) {
|
||||
queryParam.startDate = startDate;
|
||||
queryParam.endDate = endDate;
|
||||
} else {
|
||||
queryParam.recipesId = recipesId;
|
||||
}
|
||||
this.$router.push({ path: "/recipes/build", query: queryParam });
|
||||
},
|
||||
},
|
||||
};
|
||||
|
Reference in New Issue
Block a user