From 31088215b5dd6c99df7116233c78d8a42fb7cdd4 Mon Sep 17 00:00:00 2001 From: huangdeliang <huangdeliang@skieer.com> Date: Wed, 24 Feb 2021 18:20:45 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=A0=B7=E5=BC=8F=EF=BC=8C?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../stdiet/custom/domain/SysRecipesPlan.java | 6 +- .../service/impl/SysOrderServiceImpl.java | 3 + .../service/impl/SysRecipesServiceImpl.java | 3 - .../mapper/custom/SysOrderMapper.xml | 12 +- .../mapper/custom/SysRecipesMapper.xml | 4 +- .../mapper/custom/SysRecipesPlanMapper.xml | 25 ++- stdiet-ui/package.json | 1 + .../src/components/ContractDrawer/index.vue | 1 - .../src/components/OrderDrawer/index.vue | 1 - .../components/RecipesPlanDrawer/index.vue | 81 ++++++++++ stdiet-ui/src/main.js | 112 ++++++++------ stdiet-ui/src/router/index.js | 25 +-- stdiet-ui/src/store/modules/recipes.js | 142 ++++++++++-------- stdiet-ui/src/views/custom/customer/index.vue | 16 +- stdiet-ui/src/views/custom/order/index.vue | 8 +- .../RecipesView/RecipesAspectCom/BarChart.vue | 14 +- .../RecipesView/RecipesAspectCom/PieChart.vue | 1 + .../RecipesView/RecipesAspectCom/index.vue | 7 +- .../AddDishesDrawer/ConfigDishes.vue | 21 +-- .../RecipesView/RecipesCom/index.vue | 102 +++++++++---- .../custom/recipesBuild/RecipesView/index.vue | 7 +- .../src/views/custom/recipesBuild/index.vue | 10 +- .../src/views/custom/recipesPlan/index.vue | 37 +++-- 23 files changed, 423 insertions(+), 216 deletions(-) create mode 100644 stdiet-ui/src/components/RecipesPlanDrawer/index.vue diff --git a/stdiet-custom/src/main/java/com/stdiet/custom/domain/SysRecipesPlan.java b/stdiet-custom/src/main/java/com/stdiet/custom/domain/SysRecipesPlan.java index c67a8fc8e..4892c8d31 100644 --- a/stdiet-custom/src/main/java/com/stdiet/custom/domain/SysRecipesPlan.java +++ b/stdiet-custom/src/main/java/com/stdiet/custom/domain/SysRecipesPlan.java @@ -29,7 +29,11 @@ public class SysRecipesPlan extends BaseEntity private Long cusId; //客户ID - private Long customerId; +// private Long customerId; + + private Integer startNumDay; + + private Integer endNumDay; //非持久化字段,客户姓名 @Excel(name = "客户姓名") diff --git a/stdiet-custom/src/main/java/com/stdiet/custom/service/impl/SysOrderServiceImpl.java b/stdiet-custom/src/main/java/com/stdiet/custom/service/impl/SysOrderServiceImpl.java index 2101510b2..42855dc14 100644 --- a/stdiet-custom/src/main/java/com/stdiet/custom/service/impl/SysOrderServiceImpl.java +++ b/stdiet-custom/src/main/java/com/stdiet/custom/service/impl/SysOrderServiceImpl.java @@ -1,6 +1,7 @@ package com.stdiet.custom.service.impl; import com.stdiet.common.utils.DateUtils; +import com.stdiet.common.utils.SecurityUtils; import com.stdiet.custom.domain.SysOrder; import com.stdiet.custom.mapper.SysOrderMapper; import com.stdiet.custom.service.ISysCommissionDayService; @@ -70,6 +71,7 @@ public class SysOrderServiceImpl implements ISysOrderService { public int insertSysOrder(SysOrder sysOrder) { Date orderTime = DateUtils.getNowDate(); sysOrder.setCreateTime(orderTime); + sysOrder.setCreateBy(SecurityUtils.getUsername()); //sysOrder.setOrderTime(orderTime); //计算服务到期时间 setOrderServerEndDate(sysOrder); @@ -94,6 +96,7 @@ public class SysOrderServiceImpl implements ISysOrderService { SysOrder oldSysOrder = sysOrderMapper.selectSysOrderById(sysOrder.getOrderId()); //计算服务到期时间 setOrderServerEndDate(sysOrder); + sysOrder.setUpdateBy(SecurityUtils.getUsername()); sysOrder.setUpdateTime(DateUtils.getNowDate()); //更新订单 int row = sysOrderMapper.updateSysOrder(sysOrder); diff --git a/stdiet-custom/src/main/java/com/stdiet/custom/service/impl/SysRecipesServiceImpl.java b/stdiet-custom/src/main/java/com/stdiet/custom/service/impl/SysRecipesServiceImpl.java index 3ceaae40d..5b583ff03 100644 --- a/stdiet-custom/src/main/java/com/stdiet/custom/service/impl/SysRecipesServiceImpl.java +++ b/stdiet-custom/src/main/java/com/stdiet/custom/service/impl/SysRecipesServiceImpl.java @@ -30,7 +30,6 @@ public class SysRecipesServiceImpl implements ISysRecipesService { public int addRecipes(SysRecipes sysRecipes) { int rows = sysRecipesMapper.addRecipes(sysRecipes); if (rows > 0) { - int count = sysRecipesMapper.getNumDayByCusId(sysRecipes.getCusId()); List<SysRecipesDaily> menus = sysRecipes.getMenus(); List<SysRecipesDailyDishes> dishes = new ArrayList<>(); int size = menus.size(); @@ -41,8 +40,6 @@ public class SysRecipesServiceImpl implements ISysRecipesService { tarMenu.setId(dailyId); // 插入recipiesId tarMenu.setRecipesId(sysRecipes.getId()); - // 插入numDay - tarMenu.setNumDay(count + i + 1); for (SysRecipesDailyDishes tmpDishes : tarMenu.getDishes()) { // 让菜品插入menuId tmpDishes.setMenuId(dailyId); diff --git a/stdiet-custom/src/main/resources/mapper/custom/SysOrderMapper.xml b/stdiet-custom/src/main/resources/mapper/custom/SysOrderMapper.xml index 20c43cceb..592110f80 100644 --- a/stdiet-custom/src/main/resources/mapper/custom/SysOrderMapper.xml +++ b/stdiet-custom/src/main/resources/mapper/custom/SysOrderMapper.xml @@ -47,10 +47,12 @@ </resultMap> <sql id="selectSysOrderVo"> - select o.order_id, o.review_status, o.cus_id, o.customer, o.phone, o.amount, o.start_time, o.pause_time, o.status, o.weight, ser.dict_label as serve_time, + select o.order_id, o.review_status, o.cus_id, sc.name as customer, sc.phone, o.amount, o.start_time, o.pause_time, o.status, o.weight, ser.dict_label as serve_time, o.serve_time_id, o.pay_type_id, pay.dict_label as pay_type, o.pre_sale_id, o.create_by, o.create_time, o.after_sale_id, o.update_by, o.update_time, o.nutritionist_id, o.remark, o.nutri_assis_id, o.account_id, acc.dict_label as account, o.planner_id, o.planner_assis_id, o.operator_id, o.operator_assis_id, - o.recommender, o.order_time,o.give_serve_day,o.conditioning_project_id,cp.dict_label as conditioning_project,o.server_end_time,o.become_fan_time from sys_order o + o.recommender, o.order_time,o.give_serve_day,o.conditioning_project_id,cp.dict_label as conditioning_project,o.server_end_time,o.become_fan_time + from sys_order o + LEFT JOIN sys_customer sc ON sc.id = o.cus_id LEFT JOIN (SELECT dict_label, dict_value FROM sys_dict_data WHERE dict_type = 'cus_pay_type') AS pay ON pay.dict_value = o.pay_type_id LEFT JOIN (SELECT dict_label, dict_value FROM sys_dict_data WHERE dict_type = 'cus_account') AS acc ON acc.dict_value = o.account_id LEFT JOIN (SELECT dict_label, dict_value FROM sys_dict_data WHERE dict_type = 'cus_serve_time') AS ser ON ser.dict_value = o.serve_time_id @@ -99,7 +101,7 @@ <where> <if test="orderId != null and orderId != ''">and order_id = #{orderId}</if> <if test="customer != null and customer != ''"> - and (customer like concat('%',#{customer},'%') or phone like concat('%',#{customer},'%')) + and (sc.name like concat('%',#{customer},'%') or sc.phone like concat('%',#{customer},'%')) </if> <if test="cusId != null and cusId != ''">and cus_id = #{cusId}</if> <!--<if test="phone != null and phone != ''">and phone = #{phone}</if>--> @@ -127,7 +129,7 @@ and 0 > amount </if> </if> - <if test="true">and del_flag = 0</if> + <if test="true">and o.del_flag = 0</if> </where> order by order_time desc </select> @@ -325,7 +327,7 @@ from sys_order o left join sys_user su_sale on su_sale.user_id = o.after_sale_id and su_sale.del_flag = 0 left join sys_user su_nutritionist on su_nutritionist.user_id = o.nutritionist_id and su_nutritionist.del_flag = 0 - where review_status = 'yes' and o.order_time >= '2021-01-01' and del_flag = 0 + where review_status = 'yes' and o.order_time >= '2021-01-01' and o.del_flag = 0 <if test="userId != null"> and (su_sale.user_id = #{userId} or su_nutritionist.user_id = #{userId}) </if> diff --git a/stdiet-custom/src/main/resources/mapper/custom/SysRecipesMapper.xml b/stdiet-custom/src/main/resources/mapper/custom/SysRecipesMapper.xml index d29b1f7df..3e15a55d7 100644 --- a/stdiet-custom/src/main/resources/mapper/custom/SysRecipesMapper.xml +++ b/stdiet-custom/src/main/resources/mapper/custom/SysRecipesMapper.xml @@ -127,9 +127,9 @@ <!-- 新增每菜单 --> <insert id="bashAddMenus"> - insert into sys_customer_daily_menu (id, num_day, date, recipes_id, cus_id) values + insert into sys_customer_daily_menu (id, num_day, recipes_id, cus_id) values <foreach collection="list" separator="," item="item" index="index"> - (#{item.id}, #{item.numDay}, #{item.date}, #{item.recipesId}, #{item.cusId}) + (#{item.id}, #{item.numDay}, #{item.recipesId}, #{item.cusId}) </foreach> </insert> diff --git a/stdiet-custom/src/main/resources/mapper/custom/SysRecipesPlanMapper.xml b/stdiet-custom/src/main/resources/mapper/custom/SysRecipesPlanMapper.xml index 619537d9e..0b6d91f64 100644 --- a/stdiet-custom/src/main/resources/mapper/custom/SysRecipesPlanMapper.xml +++ b/stdiet-custom/src/main/resources/mapper/custom/SysRecipesPlanMapper.xml @@ -9,6 +9,8 @@ <result property="orderId" column="order_id" /> <result property="startDate" column="start_date" /> <result property="endDate" column="end_date" /> + <result property="startNumDay" column="start_num_day" /> + <result property="endNumDay" column="end_num_day" /> <result property="recipesId" column="recipes_id" /> <result property="sendFlag" column="send_flag" /> <result property="sendTime" column="send_time" /> @@ -19,7 +21,7 @@ <result property="delFlag" column="del_flag" /> <result property="cusId" column="cus_id" /> <!-- 非持久化字段 --> - <result property="customerId" column="cus_id"></result><!-- 客户ID --> +<!-- <result property="customerId" column="cus_id"></result><!– 客户ID –>--> <result property="customer" column="customer" /><!-- 客户姓名 --> <result property="phone" column="phone" /> <result property="orderStartDate" column="order_start_date" /> @@ -31,7 +33,7 @@ </resultMap> <sql id="selectSysRecipesPlanVo"> - select id, order_id, cus_id, start_date, end_date, recipes_id, send_flag, send_time, create_time, create_by, update_time, update_by, del_flag from sys_recipes_plan + select id, order_id, cus_id, start_date, end_date, start_num_day, end_num_day, recipes_id, send_flag, send_time, create_time, create_by, update_time, update_by, del_flag from sys_recipes_plan </sql> <select id="selectSysRecipesPlanList" parameterType="SysRecipesPlan" resultMap="SysRecipesPlanResult"> @@ -40,6 +42,8 @@ <if test="cusId != null "> and cus_id = #{cusId}</if> <if test="startDate != null "> and start_date = #{startDate}</if> <if test="endDate != null "> and end_date = #{endDate}</if> + <if test="startNumDay != null "> and start_num_day = #{startNumDay}</if> + <if test="endNumDay != null "> and end_num_day = #{endNumDay}</if> <if test="recipesId != null "> and recipes_id = #{recipesId}</if> <if test="sendFlag != null "> and send_flag = #{sendFlag}</if> <if test="sendTime != null "> and send_time = #{sendTime}</if> @@ -57,6 +61,8 @@ <if test="cusId != null">cus_id,</if> <if test="startDate != null">start_date,</if> <if test="endDate != null">end_date,</if> + <if test="startNumDay != null">start_num_day,</if> + <if test="endNumDay != null">end_num_day,</if> <if test="recipesId != null">recipes_id,</if> <if test="sendFlag != null">send_flag,</if> <if test="sendTime != null">send_time,</if> @@ -71,6 +77,8 @@ <if test="cusId != null">#{cusId},</if> <if test="startDate != null">#{startDate},</if> <if test="endDate != null">#{endDate},</if> + <if test="startNumDay != null">#{startNumDay},</if> + <if test="endNumDay != null">#{endNumDay},</if> <if test="recipesId != null">#{recipesId},</if> <if test="sendFlag != null">#{sendFlag},</if> <if test="sendTime != null">#{sendTime},</if> @@ -89,6 +97,8 @@ <if test="cusId != null">cus_id = #{cusId},</if> <if test="startDate != null">start_date = #{startDate},</if> <if test="endDate != null">end_date = #{endDate},</if> + <if test="startNumDay != null">start_num_day = #{startNumDay},</if> + <if test="endNumDay != null">end_num_day = #{endNumDay},</if> <if test="recipesId != null">recipes_id = #{recipesId},</if> <if test="sendFlag != null">send_flag = #{sendFlag},</if> <if test="sendTime != null">send_time = #{sendTime},</if> @@ -115,10 +125,10 @@ <!-- 批量插入食谱计划 --> <insert id="insertBatch"> INSERT INTO sys_recipes_plan - (order_id, cus_id, start_date, end_date, send_flag, send_time, recipes_id) + (order_id, cus_id, start_date, end_date, start_num_day, end_num_day, send_flag, send_time, recipes_id) VALUES <foreach collection ="list" item="plan" separator =","> - (#{plan.orderId}, #{plan.cusId}, #{plan.startDate}, #{plan.endDate}, #{plan.sendFlag}, #{plan.sendTime}, #{plan.recipesId}) + (#{plan.orderId}, #{plan.cusId}, #{plan.startDate}, #{plan.endDate}, #{plan.startNumDay}, #{plan.endNumDay}, #{plan.sendFlag}, #{plan.sendTime}, #{plan.recipesId}) </foreach > </insert> @@ -132,15 +142,18 @@ <!-- 食谱计划、订单表联查 --> <select id="selectPlanListByCondition" parameterType="SysRecipesPlan" resultMap="SysRecipesPlanResult"> - SELECT srp.id,srp.order_id,srp.recipes_id,sr.customer,sr.cus_id,sr.phone,su_nutritionist.nick_name nutritionist,su_nutritionist_assis.nick_name AS nutritionist_assis,sr.start_time,sr.server_end_time, srp.start_date,srp.end_date,srp.send_flag,srp.send_time + SELECT srp.id,srp.order_id,srp.recipes_id,srp.start_num_day,srp.end_num_day,srp.cus_id,sc.phone, + su_nutritionist.nick_name nutritionist,su_nutritionist_assis.nick_name AS nutritionist_assis, + srp.start_date,srp.end_date,srp.send_flag,srp.send_time, sc.name as customer FROM sys_recipes_plan srp LEFT JOIN sys_order sr ON sr.order_id = srp.order_id + LEFT JOIN sys_customer sc ON sc.id = srp.cus_id LEFT JOIN sys_user su_nutritionist ON su_nutritionist.user_id = sr.nutritionist_id AND su_nutritionist.del_flag = 0 LEFT JOIN sys_user su_nutritionist_assis ON su_nutritionist_assis.user_id = sr.nutri_assis_id AND su_nutritionist_assis.del_flag = 0 WHERE srp.del_flag = 0 <if test="orderId != null">AND srp.order_id = #{orderId}</if> <if test="sendFlag != null">AND srp.send_flag = #{sendFlag}</if> - <if test="customer != null and customer != ''">AND (sr.customer like concat('%',#{customer},'%') OR sr.phone like concat('%',#{customer},'%'))</if> + <if test="customer != null and customer != ''">AND (sc.name like concat('%',#{customer},'%') OR sc.phone like concat('%',#{customer},'%'))</if> <if test="nutritionistId != null">AND su_nutritionist.user_id = #{nutritionistId}</if> <if test="nutritionistAssisId != null">AND su_nutritionist_assis.user_id = #{nutritionistAssisId}</if> <if test="startDate != null and endDate != null ">AND srp.start_date BETWEEN date_format(#{startDate},'%y%m%d') AND date_format(#{endDate},'%y%m%d') </if> diff --git a/stdiet-ui/package.json b/stdiet-ui/package.json index f69302144..e9357aaf0 100644 --- a/stdiet-ui/package.json +++ b/stdiet-ui/package.json @@ -65,6 +65,7 @@ "vue-count-to": "1.0.13", "vue-cropper": "0.4.9", "vue-router": "3.0.2", + "vue-scrollto": "^2.20.0", "vue-splitpane": "1.0.4", "vuedraggable": "2.20.0", "vuex": "3.1.0" diff --git a/stdiet-ui/src/components/ContractDrawer/index.vue b/stdiet-ui/src/components/ContractDrawer/index.vue index 4085e88b2..2facf1ccf 100644 --- a/stdiet-ui/src/components/ContractDrawer/index.vue +++ b/stdiet-ui/src/components/ContractDrawer/index.vue @@ -4,7 +4,6 @@ :title="title" :close-on-press-escape="false" :visible.sync="visible" - :wrapperClosable="false" @closed="handleOnClosed" size="40%" > diff --git a/stdiet-ui/src/components/OrderDrawer/index.vue b/stdiet-ui/src/components/OrderDrawer/index.vue index a023e35ee..7a1a3ea13 100644 --- a/stdiet-ui/src/components/OrderDrawer/index.vue +++ b/stdiet-ui/src/components/OrderDrawer/index.vue @@ -4,7 +4,6 @@ :title="title" :close-on-press-escape="false" :visible.sync="visible" - :wrapperClosable="false" @closed="handleOnClosed" size="40%" > diff --git a/stdiet-ui/src/components/RecipesPlanDrawer/index.vue b/stdiet-ui/src/components/RecipesPlanDrawer/index.vue new file mode 100644 index 000000000..dbecf5cbb --- /dev/null +++ b/stdiet-ui/src/components/RecipesPlanDrawer/index.vue @@ -0,0 +1,81 @@ +<template> + <el-drawer + :title="title" + :close-on-press-escape="false" + :visible.sync="visible" + @closed="handleOnClosed" + size="40%" + > + <div class="app-container"> + <el-row :gutter="10" class="mb8"> + <el-col :span="1.5"> + <el-button + type="primary" + icon="el-icon-plus" + size="mini" + @click="handleInnerOpen" + >查看暂停记录 + </el-button> + </el-col> + </el-row> + + <el-drawer + :title="innerTitle" + :append-to-body="true" + :close-on-press-escape="false" + :visible.sync="innerVisible" + @closed="handleOnInnerClosed" + > + <div class="app-container"> + <el-row :gutter="10" class="mb8"> + <el-col :span="1.5"> + <el-button + type="primary" + icon="el-icon-plus" + size="mini" + @click="handleInnerOpen" + >查看暂停记录 + </el-button> + </el-col> + </el-row> + </div> + </el-drawer> + </div> + </el-drawer> +</template> +<script> +export default { + name: "RecipesPlanDrawer", + data() { + return { + visible: false, + innerVisible: false, + title: "", + innerTitle: "", + }; + }, + methods: { + showDrawer(data) { + this.data = data; + if (!this.data) { + return; + } + this.visible = true; + this.title = `「${this.data.name}」食谱计划`; + }, + handleOnClosed() { + this.data = undefined; + }, + handleInnerOpen() { + this.innerVisible = true; + this.innerTitle = `「${this.data.name}」暂停记录`; + }, + handleOnInnerClosed() {}, + }, +}; +</script> +<style lang="scss" scoped> +/deep/ :focus { + outline: 0; +} +</style> diff --git a/stdiet-ui/src/main.js b/stdiet-ui/src/main.js index 2f6f7e638..b270a0d4b 100644 --- a/stdiet-ui/src/main.js +++ b/stdiet-ui/src/main.js @@ -1,22 +1,24 @@ -import Vue from 'vue' +import Vue from "vue"; -import Cookies from 'js-cookie' +import Cookies from "js-cookie"; -import 'normalize.css/normalize.css' // a modern alternative to CSS resets -import Element from 'element-ui' -import './assets/styles/element-variables.scss' +import "normalize.css/normalize.css"; // a modern alternative to CSS resets +import Element from "element-ui"; +import "./assets/styles/element-variables.scss"; -import '@/assets/styles/index.scss' // global css -import '@/assets/styles/ruoyi.scss' // ruoyi css -import App from './App' -import store from './store' -import router from './router' -import permission from './directive/permission' +import "@/assets/styles/index.scss"; // global css +import "@/assets/styles/ruoyi.scss"; // ruoyi css +import App from "./App"; +import store from "./store"; +import router from "./router"; +import permission from "./directive/permission"; + +import "./assets/icons"; // icon +import "./permission"; // permission control +import { getDicts } from "@/api/system/dict/data"; +import { getConfigKey } from "@/api/system/config"; +import VueScrollTo from "vue-scrollto"; -import './assets/icons' // icon -import './permission' // permission control -import {getDicts} from "@/api/system/dict/data"; -import {getConfigKey} from "@/api/system/config"; import { addDateRange, download, @@ -32,40 +34,40 @@ import { } from "@/utils/ruoyi"; import Pagination from "@/components/Pagination"; //自定义表格工具扩展 -import RightToolbar from "@/components/RightToolbar" +import RightToolbar from "@/components/RightToolbar"; // 全局方法挂载 -Vue.prototype.getDicts = getDicts -Vue.prototype.getConfigKey = getConfigKey -Vue.prototype.parseTime = parseTime -Vue.prototype.resetForm = resetForm -Vue.prototype.addDateRange = addDateRange -Vue.prototype.selectDictLabel = selectDictLabel -Vue.prototype.selectDictLabels = selectDictLabels -Vue.prototype.download = download -Vue.prototype.downloadResource = downloadResource -Vue.prototype.handleTree = handleTree -Vue.prototype.toThousands = toThousands -Vue.prototype.digitUppercase = digitUppercase -Vue.prototype.validatorIDCard = validatorIDCard +Vue.prototype.getDicts = getDicts; +Vue.prototype.getConfigKey = getConfigKey; +Vue.prototype.parseTime = parseTime; +Vue.prototype.resetForm = resetForm; +Vue.prototype.addDateRange = addDateRange; +Vue.prototype.selectDictLabel = selectDictLabel; +Vue.prototype.selectDictLabels = selectDictLabels; +Vue.prototype.download = download; +Vue.prototype.downloadResource = downloadResource; +Vue.prototype.handleTree = handleTree; +Vue.prototype.toThousands = toThousands; +Vue.prototype.digitUppercase = digitUppercase; +Vue.prototype.validatorIDCard = validatorIDCard; -Vue.prototype.msgSuccess = function (msg) { - this.$message({showClose: true, message: msg, type: "success"}); -} +Vue.prototype.msgSuccess = function(msg) { + this.$message({ showClose: true, message: msg, type: "success" }); +}; -Vue.prototype.msgError = function (msg) { - this.$message({showClose: true, message: msg, type: "error"}); -} +Vue.prototype.msgError = function(msg) { + this.$message({ showClose: true, message: msg, type: "error" }); +}; -Vue.prototype.msgInfo = function (msg) { +Vue.prototype.msgInfo = function(msg) { this.$message.info(msg); -} +}; // 全局组件挂载 -Vue.component('Pagination', Pagination) -Vue.component('RightToolbar', RightToolbar) +Vue.component("Pagination", Pagination); +Vue.component("RightToolbar", RightToolbar); -Vue.use(permission) +Vue.use(permission); /** * If you don't want to use mock-server @@ -77,14 +79,34 @@ Vue.use(permission) */ Vue.use(Element, { - size: Cookies.get('size') || 'medium' // set element-ui default size -}) + size: Cookies.get("size") || "medium" // set element-ui default size +}); -Vue.config.productionTip = false +Vue.config.productionTip = false; + +Vue.directive("title", { + inserted: function(el, binding) { + document.title = el.dataset.title; + } +}); + +Vue.use(VueScrollTo, { + container: "body", + duration: 500, + easing: "ease", + offset: 0, + force: true, + cancelable: true, + onStart: false, + onDone: false, + onCancel: false, + x: false, + y: true +}); new Vue({ - el: '#app', + el: "#app", router, store, render: h => h(App) -}) +}); diff --git a/stdiet-ui/src/router/index.js b/stdiet-ui/src/router/index.js index 723eb3a82..fea245cae 100644 --- a/stdiet-ui/src/router/index.js +++ b/stdiet-ui/src/router/index.js @@ -140,19 +140,11 @@ export const constantRoutes = [ ] }, { - path: "/recipes", - component: Layout, - hidden: true, - children: [ - { - path: "build", - component: resolve => - require(["@/views/custom/recipesBuild"], resolve), - name: "RecipiesBuild", - props: true, - meta: { title: "食谱制作" } - } - ] + path: "/recipes/build", + component: resolve => require(["@/views/custom/recipesBuild"], resolve), + name: "RecipiesBuild", + meta: { title: "食谱制作" }, + hidden: true }, { path: "/f/contract/:id(\\d+)", @@ -174,14 +166,13 @@ export const constantRoutes = [ hidden: true, meta: { title: "胜唐体控健康评估表" } }, -{ + { path: "/foodHeatCalculator/:id", component: resolve => - require(["@/views/custom/foodHeatStatistics/investigate"], resolve), + require(["@/views/custom/foodHeatStatistics/investigate"], resolve), hidden: true, meta: { title: "外食计算器" } -}, - + } ]; export default new Router({ diff --git a/stdiet-ui/src/store/modules/recipes.js b/stdiet-ui/src/store/modules/recipes.js index dd626ff4f..4311492bd 100644 --- a/stdiet-ui/src/store/modules/recipes.js +++ b/stdiet-ui/src/store/modules/recipes.js @@ -8,7 +8,6 @@ import { addRecipesApi } from "@/api/custom/recipes"; import { getDicts } from "@/api/system/dict/data"; -import dayjs from "dayjs"; const oriState = { cusId: undefined, @@ -24,8 +23,8 @@ const oriState = { dishesTypeOptions: [], typeOptions: [], currentDay: -1, - startDate: "", - endDate: "" + startNum: 0, + endNum: 0 }; const mutations = { @@ -36,9 +35,9 @@ const mutations = { if (tarDishes) { const tarIgd = tarDishes.igdList.find(obj => obj.id === payload.igdId); if (tarIgd) { - Object.keys(payload).forEach(key => { - tarIgd[key] = payload[key]; - }); + payload.weight && (tarIgd.weight = payload.weight); + payload.cusWeight && (tarIgd.cusWeight = payload.cusWeight); + payload.cusUnit && (tarIgd.cusUnit = payload.cusUnit); } } }, @@ -125,63 +124,73 @@ const actions = { healthyData }); }, - async getRecipesInfo({ commit }, payload) { + async getRecipesInfo({ commit, state }, payload) { commit("updateStateData", { recipesDataLoading: true }); const recipesDataResult = await getRecipesApi(payload.recipesId); - let recipesData = undefined; + let recipesData = []; if (recipesDataResult.code === 200) { - recipesData = recipesDataResult.data.map(dayData => { - return { - 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; - }, []) - }; - }); + const { endNum, startNum } = state; + let length = null; + if (endNum && startNum) { + length = endNum - startNum; + } + recipesData = recipesDataResult.data.reduce((outArr, dayData, idx) => { + if (!length || (length && length >= idx)) { + outArr.push({ + id: dayData.id, + numDay: startNum ? startNum + idx : 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; + }, []) + }); + } + return outArr; + }, []); } else { throw new Error(recipesDataResult.msg); } @@ -193,9 +202,7 @@ const actions = { cusId, planId, menus: recipesData.map((menu, idx) => ({ - date: dayjs(state.startDate) - .add(idx, "day") - .format("YYYY-MM-DD"), + numDay: menu.numDay, cusId, dishes: menu.dishes.map(dObj => ({ dishesId: dObj.dishesId, @@ -209,11 +216,19 @@ const actions = { })) })) }; + const result = await addRecipesApi(params); if (result.code === 200) { const recipesId = result.data; commit("updateStateData", { recipesId }); dispatch("getRecipesInfo", { recipesId }); + payload.callback && + payload.callback({ + recipesId: result.data, + name: state.healthyData.name, + cusId: state.cusId, + planId: state.planId + }); } // console.log(params); }, @@ -247,6 +262,7 @@ const actions = { } }, async updateDishes({ commit, state }, payload) { + // console.log(payload); if (state.recipesId) { const tarDishes = state.recipesData[payload.num].dishes.find( obj => obj.dishesId === payload.dishesId @@ -273,9 +289,9 @@ const actions = { commit("updateRecipesDishesDetail", payload); } } - } else { - commit("updateRecipesDishesDetail", payload); } + } else { + commit("updateRecipesDishesDetail", payload); } }, async deleteDishes({ commit, state }, payload) { diff --git a/stdiet-ui/src/views/custom/customer/index.vue b/stdiet-ui/src/views/custom/customer/index.vue index c28605b41..9d05de70d 100644 --- a/stdiet-ui/src/views/custom/customer/index.vue +++ b/stdiet-ui/src/views/custom/customer/index.vue @@ -346,6 +346,7 @@ <!-- 外食热量统计 --> <heatStatisticsDrawer ref="heatStatisticsRef"></heatStatisticsDrawer> <!-- 食谱计划抽屉 --> + <RecipesPlanDrawer ref="recipesPlanDrawerRef"/> </div> </template> @@ -364,6 +365,7 @@ import OrderDrawer from "@/components/OrderDrawer"; import PhysicalSignsDialog from "@/components/PhysicalSignsDialog"; import ContractDrawer from "@/components/ContractDrawer"; import HeatStatisticsDrawer from "@/components/HeatStatisticsDrawer"; +import RecipesPlanDrawer from '@/components/RecipesPlanDrawer' import { mapGetters } from "vuex"; export default { @@ -373,6 +375,7 @@ export default { "physical-signs-dialog": PhysicalSignsDialog, "contract-drawer": ContractDrawer, heatStatisticsDrawer: HeatStatisticsDrawer, + RecipesPlanDrawer }, data() { const userId = store.getters && store.getters.userId; @@ -392,14 +395,6 @@ export default { total: 0, // 客户档案表格数据 customerCenterList: [], - // 售前字典 - // preSaleIdOptions: [], - // 售后字典 - // afterSaleIdOptions: [], - // 主营养师字典 - // nutritionistIdOptions: [], - // 助理营养师字典 - // nutriAssisIdOptions: [], // 弹出层标题 title: "", // 是否显示弹出层 @@ -459,9 +454,13 @@ export default { }, computed: { ...mapGetters([ + // 售前字典 "preSaleIdOptions", + // 售后字典 "afterSaleIdOptions", + // 主营养师字典 "nutritionistIdOptions", + // 助理营养师字典 "nutriAssisIdOptions", ]), }, @@ -511,6 +510,7 @@ export default { }, handleOnMenuClick(row) { // console.log(row); + this.$refs['recipesPlanDrawerRef'].showDrawer(row); }, handleClickHeatStatistics(row) { this.$refs["heatStatisticsRef"].showDrawer(row); diff --git a/stdiet-ui/src/views/custom/order/index.vue b/stdiet-ui/src/views/custom/order/index.vue index 2f6326317..d14535a64 100644 --- a/stdiet-ui/src/views/custom/order/index.vue +++ b/stdiet-ui/src/views/custom/order/index.vue @@ -335,7 +335,7 @@ </template> </el-table-column> <el-table-column label="客户姓名" align="center" prop="customer" /> - <!-- <el-table-column label="手机号" align="center" prop="phone" width="100" /> --> + <el-table-column label="手机号" align="center" prop="phone" width="100" /> <el-table-column label="成交金额" align="center" prop="amount"> <template slot-scope="scope"> {{ toThousands(scope.row.amount) }} @@ -391,14 +391,14 @@ @click="handleUpdate(scope.row)" >修改 </el-button> - <!-- <el-button + <el-button size="mini" type="text" icon="el-icon-s-data" @click="orderPauseManage(scope.row)" v-hasPermi="['orderPause:pause:query']" >暂停记录管理 - </el-button> --> + </el-button> <el-button size="mini" v-if=" @@ -660,7 +660,7 @@ export default { /** 删除按钮操作 */ handleDelete(row) { this.$confirm( - '是否确认删除销售订单编号为"' + orderIds + '"的数据项?', + '是否确认删除销售订单编号为"' + row.orderId + '"的数据项?', "警告", { confirmButtonText: "确定", diff --git a/stdiet-ui/src/views/custom/recipesBuild/RecipesView/RecipesAspectCom/BarChart.vue b/stdiet-ui/src/views/custom/recipesBuild/RecipesView/RecipesAspectCom/BarChart.vue index cb9dc7837..32bb1b6b3 100644 --- a/stdiet-ui/src/views/custom/recipesBuild/RecipesView/RecipesAspectCom/BarChart.vue +++ b/stdiet-ui/src/views/custom/recipesBuild/RecipesView/RecipesAspectCom/BarChart.vue @@ -4,9 +4,11 @@ <script> import echarts from "echarts"; +import VueScrollTo from "vue-scrollto"; require("@/utils/echarts/myShine"); import resize from "@/views/dashboard/mixins/resize"; - +import { createNamespacedHelpers } from "vuex"; +const { mapMutations } = createNamespacedHelpers("recipes"); const animationDuration = 6000; export default { @@ -55,8 +57,10 @@ export default { // console.log("updated"); }, methods: { + ...mapMutations(["setCurrentDay"]), initChart() { this.chart = echarts.init(this.$el, "myShine"); + this.chart.on("click", this.handleOnClick); this.updateChart(this.data.length > 0 ? this.data : {}); }, updateChart(source) { @@ -134,6 +138,14 @@ export default { })), }); }, + handleOnClick(params) { + // console.log(params); + const { dataIndex } = params; + this.setCurrentDay({ currentDay: dataIndex }); + VueScrollTo.scrollTo(`#recipes${dataIndex}`, 500, { + container: "#recipes_content", + }); + }, }, watch: { data(newVal, oldVal) { diff --git a/stdiet-ui/src/views/custom/recipesBuild/RecipesView/RecipesAspectCom/PieChart.vue b/stdiet-ui/src/views/custom/recipesBuild/RecipesView/RecipesAspectCom/PieChart.vue index a5cd784f7..ae5739f8e 100644 --- a/stdiet-ui/src/views/custom/recipesBuild/RecipesView/RecipesAspectCom/PieChart.vue +++ b/stdiet-ui/src/views/custom/recipesBuild/RecipesView/RecipesAspectCom/PieChart.vue @@ -124,6 +124,7 @@ export default { text: `${data.name}营养统计`, }, tooltip: { + position: 'right', trigger: "item", appendToBody: true, formatter: (params) => { diff --git a/stdiet-ui/src/views/custom/recipesBuild/RecipesView/RecipesAspectCom/index.vue b/stdiet-ui/src/views/custom/recipesBuild/RecipesView/RecipesAspectCom/index.vue index 14ae7f6b7..a74c628b6 100644 --- a/stdiet-ui/src/views/custom/recipesBuild/RecipesView/RecipesAspectCom/index.vue +++ b/stdiet-ui/src/views/custom/recipesBuild/RecipesView/RecipesAspectCom/index.vue @@ -60,7 +60,12 @@ export default { this.$emit("update:collapse", !this.collapse); }, handleOnSave() { - this.saveRecipes(); + this.saveRecipes({ + callback: (query) => { + console.log(query); + this.$router.replace({ path: "/recipes/build", query }); + }, + }); }, ...mapActions(["saveRecipes"]), }, diff --git a/stdiet-ui/src/views/custom/recipesBuild/RecipesView/RecipesCom/AddDishesDrawer/ConfigDishes.vue b/stdiet-ui/src/views/custom/recipesBuild/RecipesView/RecipesCom/AddDishesDrawer/ConfigDishes.vue index e50d48069..8fa47026c 100644 --- a/stdiet-ui/src/views/custom/recipesBuild/RecipesView/RecipesCom/AddDishesDrawer/ConfigDishes.vue +++ b/stdiet-ui/src/views/custom/recipesBuild/RecipesView/RecipesCom/AddDishesDrawer/ConfigDishes.vue @@ -6,7 +6,7 @@ }}</span> </el-form-item> <el-form-item label="菜品类型"> - <el-radio-group v-model="type" @change="handleOnTypeChange"> + <el-radio-group v-model="mType" @change="handleOnTypeChange"> <el-radio v-for="item in typeOptions" :key="item.dictValue" @@ -41,11 +41,7 @@ /> </template> </el-table-column> - <el-table-column - prop="proteinRatio" - label="P/100g" - align="center" - /> + <el-table-column prop="proteinRatio" label="P/100g" align="center" /> <el-table-column prop="fatRatio" label="F/100g" align="center" /> <el-table-column prop="carbonRatio" label="C/100g" align="center" /> </el-table> @@ -80,7 +76,7 @@ export default { name: "ConfigDishes", data() { return { - nType: this.type, + mType: this.type, }; }, props: { @@ -113,14 +109,19 @@ export default { EditableText, EditableUnit, }, + watch: { + type(val) { + this.mType = val; + }, + }, computed: {}, methods: { handleOnTypeChange(type) { - this.$emit("onChane", { type }); + this.$emit("onChange", { type }); }, handleOnWeightChange(data, val) { // console.log({ data, val }); - this.$emit("onChane", { + this.$emit("onChange", { igdList: produce(this.igdList, (draftState) => { const tarIgd = draftState.find((obj) => obj.id === data.id); if (tarIgd) { @@ -131,7 +132,7 @@ export default { }, handleOnCustomUnitChange(data, val) { // console.log({ data, val }); - this.$emit("onChane", { + this.$emit("onChange", { igdList: produce(this.igdList, (draftState) => { const tarIgd = draftState.find((obj) => obj.id === data.id); if (tarIgd) { diff --git a/stdiet-ui/src/views/custom/recipesBuild/RecipesView/RecipesCom/index.vue b/stdiet-ui/src/views/custom/recipesBuild/RecipesView/RecipesCom/index.vue index eb392b293..79e5821ad 100644 --- a/stdiet-ui/src/views/custom/recipesBuild/RecipesView/RecipesCom/index.vue +++ b/stdiet-ui/src/views/custom/recipesBuild/RecipesView/RecipesCom/index.vue @@ -7,15 +7,14 @@ :cell-style="{ padding: '2px 0' }" :header-cell-style="{ padding: '4px 0', height: 'unset' }" size="mini" - :style="`outline: ${ - currentDay + 1 === num ? '1px solid #d96969' : 'none' - }`" + :style="`outline: ${currentDay === num ? '1px solid #d96969' : 'none'}`" > <el-table-column prop="type" :width="100" align="center"> <template slot="header"> - <span class="num_day" @click="handleOnOneDayAnalysis">{{ - `${name}第${num}天` - }}</span> + <div class="num_day" @click="handleOnOneDayAnalysis"> + <div>{{ name }}</div> + <div>{{ `第${numDay}天` }}</div> + </div> </template> <template slot-scope="scope"> <span style="font-weight: bold; font-size: 14px">{{ @@ -23,7 +22,7 @@ }}</span> </template> </el-table-column> - <el-table-column label="菜品" prop="name" align="center"> + <el-table-column label="菜品" prop="name" align="center" :width="180"> <template slot="header"> <el-tooltip class="item" @@ -50,7 +49,12 @@ </el-popover> </template> </el-table-column> - <el-table-column label="食材" prop="igdName" align="center" /> + <el-table-column + label="食材" + prop="igdName" + align="center" + :width="180" + /> <el-table-column label="分量估算" :width="80" align="center"> <template slot-scope="scope"> <EditableUnit @@ -71,42 +75,84 @@ <el-table-column label="蛋白质/100g" prop="proteinRatio" - :width="100" + :width="60" align="center" - /> + > + <template slot="header"> + <div class="num_day" @click="handleOnOneDayAnalysis"> + <div>蛋白质</div> + <div>/100g</div> + </div> + </template> + </el-table-column> <el-table-column label="脂肪/100g" prop="fatRatio" - :width="90" + :width="60" align="center" - /> + > + <template slot="header"> + <div class="num_day" @click="handleOnOneDayAnalysis"> + <div>脂肪</div> + <div>/100g</div> + </div> + </template> + </el-table-column> <el-table-column label="碳水/100g" prop="carbonRatio" - :width="90" + :width="60" align="center" - /> + > + <template slot="header"> + <div class="num_day" @click="handleOnOneDayAnalysis"> + <div>碳水</div> + <div>/100g</div> + </div> + </template> + </el-table-column> <el-table-column label="蛋白质含量" prop="proteinRatio" - :width="90" + :width="60" align="center" :formatter="nutriFormatter" - /> + > + <template slot="header"> + <div class="num_day" @click="handleOnOneDayAnalysis"> + <div>蛋白质</div> + <div>含量</div> + </div> + </template> + </el-table-column> <el-table-column label="脂肪含量" prop="fatRatio" - :width="90" + :width="60" align="center" :formatter="nutriFormatter" - /> + > + <template slot="header"> + <div class="num_day" @click="handleOnOneDayAnalysis"> + <div>脂肪</div> + <div>含量</div> + </div> + </template> + </el-table-column> <el-table-column label="碳水含量" prop="carbonRatio" - :width="90" + :width="60" align="center" :formatter="nutriFormatter" - /> + > + <template slot="header"> + <div class="num_day" @click="handleOnOneDayAnalysis"> + <div>碳水</div> + <div>含量</div> + </div> + </template> + </el-table-column> <el-table-column label="做法" prop="methods" /> </el-table> <AddDishesDrawer ref="drawerRef" @onConfirm="handleOnDishesConfirm" /> @@ -141,6 +187,10 @@ export default { type: Number, default: 0, }, + numDay: { + type: Number, + default: 0, + }, }, components: { EditableText, @@ -266,7 +316,7 @@ export default { }, handleOnOneDayAnalysis(e) { // 校验某天 - this.setCurrentDay({ currentDay: this.num - 1 }); + this.setCurrentDay({ currentDay: this.num }); }, handleOnAdd() { // console.log(this.num); @@ -274,12 +324,12 @@ export default { }, handleOnDelete(data) { // console.log(data); - this.deleteDishes({ num: this.num - 1, id: data.id }); + this.deleteDishes({ num: this.num, id: data.id }); }, handleOnWeightChange(data, weight) { - // console.log({ data, weight }); + console.log({ data, weight }); this.updateDishes({ - num: this.num - 1, + num: this.num, dishesId: data.dishesId, igdId: data.igdId, weight, @@ -288,7 +338,7 @@ export default { handleOnCustomUnitChange(data, { cusWeight, cusUnit }) { // console.log({ data, cusWeight, cusUnit }); this.updateDishes({ - num: this.num - 1, + num: this.num, dishesId: data.dishesId, igdId: data.igdId, cusWeight, @@ -298,7 +348,7 @@ export default { handleOnDishesConfirm(data) { // console.log(data); this.addDishes({ - num: this.num - 1, + num: this.num, data, }); }, diff --git a/stdiet-ui/src/views/custom/recipesBuild/RecipesView/index.vue b/stdiet-ui/src/views/custom/recipesBuild/RecipesView/index.vue index bd2ced321..f8a26032e 100644 --- a/stdiet-ui/src/views/custom/recipesBuild/RecipesView/index.vue +++ b/stdiet-ui/src/views/custom/recipesBuild/RecipesView/index.vue @@ -2,15 +2,18 @@ <div class="recipes_view_wrapper"> <RecipesAspectCom :collapse.sync="collapse" :data="analyseData" /> <div + id="recipes_content" class="recipes_content" - :style="`height: calc(100vh - ${collapse ? 142 : 312}px)`" + :style="`height: calc(100vh - ${collapse ? 62 : 232}px)`" > <RecipesCom v-for="(item, index) in data" + :id="`recipes${index}`" :key="item.id" :data="item" :name="name" - :num="index + 1" + :num="index" + :numDay="item.numDay" /> </div> </div> diff --git a/stdiet-ui/src/views/custom/recipesBuild/index.vue b/stdiet-ui/src/views/custom/recipesBuild/index.vue index 9f82a033a..d2184f2b4 100644 --- a/stdiet-ui/src/views/custom/recipesBuild/index.vue +++ b/stdiet-ui/src/views/custom/recipesBuild/index.vue @@ -1,5 +1,5 @@ <template> - <div class="recipes_build_wrapper"> + <div class="recipes_build_wrapper" v-title :data-title="$route.query.name"> <div class="left" v-loading="recipesDataLoading"> <RecipesView v-if="!!recipesData.length" @@ -35,13 +35,13 @@ export default { return {}; }, mounted() { - const { cusId, planId, startDate, endDate, recipesId } = this.$route.query; + const { cusId, planId, startNum, endNum, recipesId } = this.$route.query; this.init({ cusId, planId, - startDate, - endDate, + startNum: parseInt(startNum), + endNum: parseInt(endNum), recipesId, }).catch((err) => { this.$message.error(err.message); @@ -78,7 +78,7 @@ export default { .recipes_build_wrapper { padding: 16px; display: flex; - height: calc(100vh - 86px); + height: 100vh; .left { flex: 4; border-right: 1px solid #e6ebf5; diff --git a/stdiet-ui/src/views/custom/recipesPlan/index.vue b/stdiet-ui/src/views/custom/recipesPlan/index.vue index 20489842f..1428a2c86 100644 --- a/stdiet-ui/src/views/custom/recipesPlan/index.vue +++ b/stdiet-ui/src/views/custom/recipesPlan/index.vue @@ -113,18 +113,24 @@ > <!-- <el-table-column type="selection" width="55" align="center" /> --> <el-table-column label="客户姓名" align="center" prop="customer" /> - <!-- <el-table-column + <el-table-column label="客户手机号" align="center" prop="hidePhone" width="180" - /> --> + /> <el-table-column label="食谱日期范围" align="center" prop="scopeDate" width="200" /> + <el-table-column + label="食谱天数范围" + align="center" + prop="scopeDay" + width="200" + /> <el-table-column label="营养师" align="center" prop="nutritionist" /> <el-table-column label="营养师助理" @@ -447,8 +453,9 @@ export default { this.recipesPlanList.forEach(function (item, index) { item.scopeDate = dayjs(item.startDate).format("YYYY-MM-DD") + - " 到 " + + " 至 " + dayjs(item.endDate).format("YYYY-MM-DD"); + item.scopeDay = `第${item.startNumDay} 至 ${item.endNumDay}天`; }); this.total = response.total; this.loading = false; @@ -603,25 +610,25 @@ export default { }, handleBuild(data) { // console.log(data); - const { startDate, endDate, id, cusId, recipesId } = data; + const { id, cusId, recipesId, customer, startNumDay, endNumDay } = data; - // const params = { id: data.id, cusId: data.orderId }; - // const path = `/recipes/build/${orderId}/${id}/${recipesId || 0}`; - // this.$router.push({ - // name: "build", - // params, - // }); const queryParam = { planId: id, cusId, + name: customer, }; - if (!recipesId) { - queryParam.startDate = startDate; - queryParam.endDate = endDate; - } else { + if (recipesId) { queryParam.recipesId = recipesId; + } else { + queryParam.startNum = startNumDay; + queryParam.endNum = endNumDay; } - this.$router.push({ path: "/recipes/build", query: queryParam }); + const routeUrl = this.$router.resolve({ + path: "/recipes/build", + query: queryParam, + }); + window.open(routeUrl.href, "_blank"); + // this.$router.push({ path: "/recipes/build", query: queryParam }); }, }, };