菜品管理编写
This commit is contained in:
parent
6076942710
commit
6c29e263d8
|
@ -0,0 +1,145 @@
|
|||
export interface DishesValue {
|
||||
adaptableGroup?:string,
|
||||
adaptableGroupStr?: any,
|
||||
appraise?:string,
|
||||
beansNuts?:number | string,
|
||||
cerealsPotato?: number | string,
|
||||
code? :string,
|
||||
cost?:number | string,
|
||||
createTime?:string,
|
||||
deptId?:string,
|
||||
deptName?:string,
|
||||
dishTypes? : string,
|
||||
dishTypesStr? :any,
|
||||
essentials?:string,
|
||||
fat?: number | string,
|
||||
fruitsVegetables?:number | string,
|
||||
image?:string,
|
||||
meatEgg?:number | string,
|
||||
name? :string,
|
||||
percentage?:string,
|
||||
power?:number | string,
|
||||
protein?:number | string,
|
||||
spiciness?:number | string,
|
||||
spicinessStr?:string,
|
||||
updateTime?:string,
|
||||
user?:string,
|
||||
userName?:string,
|
||||
}
|
||||
|
||||
const datalist:DishesValue[] = [
|
||||
{
|
||||
adaptableGroup:"0,1",
|
||||
adaptableGroupStr:["小学", "初中"],
|
||||
appraise:"1.西红柿炒蛋酸甜有营养!补充维生素C,对皮肤好,还能让我们肠胃通畅,鸡蛋中含有丰富的叶黄素和玉米黄素等抗氧化物质,可以帮助保护眼睛健康,对我们眼睛有益处。的维生素也可以帮助我们提高免疫力,让我们更强壮。3.世界之大不过一碗西红柿炒鸡蛋,酸甜开胃,营养美味。西红柿和鸡蛋中都含有丰富的维生素和矿物质,如维生素A、维生素C、维生素E、钾、钙等,这些营养物质有助于促进身体的正常运转。",
|
||||
beansNuts:0,
|
||||
cerealsPotato: 0,
|
||||
code :"WY-D002",
|
||||
cost:0.74,
|
||||
createTime:"2024-04-10 02:56:27",
|
||||
deptId:"24",
|
||||
deptName:"总部",
|
||||
dishTypes : "1",
|
||||
dishTypesStr :["副荤"],
|
||||
essentials:"1.鸡蛋打散,炒熟备用。\n2.热锅烧油,放入西红柿翻炒。\n3.加入盐,白糖,鸡精炒熟。\n4.放入鸡蛋,翻拌均匀。\n5.生粉加水调匀,淋入锅中,收汁出锅。",
|
||||
fat: 2.72,
|
||||
fruitsVegetables:70,
|
||||
image:"https://file.wy2020.com/admin/weiyi/img/vip/nutri/dish/cbf28b18d47a4c378ad7c702dc9da6f8_1280w_956h.jpg?x-image-process=image/resize,m_lfit,h_25,w_25",
|
||||
meatEgg:30,
|
||||
name :"西红柿炒鸡蛋",
|
||||
percentage:"西红柿70% :鸡蛋30%",
|
||||
power:52.2,
|
||||
protein:4.56,
|
||||
spiciness:0,
|
||||
spicinessStr:"不辣",
|
||||
updateTime:"2025-05-07 14:53:44",
|
||||
user:"1",
|
||||
userName:"系统管理员",
|
||||
},
|
||||
{
|
||||
adaptableGroup:"0,1",
|
||||
adaptableGroupStr:["小学", "初中"],
|
||||
appraise:"1.西红柿炒蛋酸甜有营养!补充维生素C,对皮肤好,还能让我们肠胃通畅,鸡蛋中含有丰富的叶黄素和玉米黄素等抗氧化物质,可以帮助保护眼睛健康,对我们眼睛有益处。的维生素也可以帮助我们提高免疫力,让我们更强壮。3.世界之大不过一碗西红柿炒鸡蛋,酸甜开胃,营养美味。西红柿和鸡蛋中都含有丰富的维生素和矿物质,如维生素A、维生素C、维生素E、钾、钙等,这些营养物质有助于促进身体的正常运转。",
|
||||
beansNuts:0,
|
||||
cerealsPotato: 0,
|
||||
code :"WY-D002",
|
||||
cost:0.74,
|
||||
createTime:"2024-04-10 02:56:27",
|
||||
deptId:"24",
|
||||
deptName:"总部",
|
||||
dishTypes : "1",
|
||||
dishTypesStr :["副荤"],
|
||||
essentials:"1.鸡蛋打散,炒熟备用。\n2.热锅烧油,放入西红柿翻炒。\n3.加入盐,白糖,鸡精炒熟。\n4.放入鸡蛋,翻拌均匀。\n5.生粉加水调匀,淋入锅中,收汁出锅。",
|
||||
fat: 2.72,
|
||||
fruitsVegetables:70,
|
||||
image:"https://file.wy2020.com/admin/weiyi/img/vip/nutri/dish/cbf28b18d47a4c378ad7c702dc9da6f8_1280w_956h.jpg?x-image-process=image/resize,m_lfit,h_25,w_25",
|
||||
meatEgg:30,
|
||||
name :"西红柿炒鸡蛋",
|
||||
percentage:"西红柿70% :鸡蛋30%",
|
||||
power:52.2,
|
||||
protein:4.56,
|
||||
spiciness:0,
|
||||
spicinessStr:"不辣",
|
||||
updateTime:"2025-05-07 14:53:44",
|
||||
user:"1",
|
||||
userName:"系统管理员",
|
||||
},
|
||||
{
|
||||
adaptableGroup:"0,1",
|
||||
adaptableGroupStr:["小学", "初中"],
|
||||
appraise:"1.西红柿炒蛋酸甜有营养!补充维生素C,对皮肤好,还能让我们肠胃通畅,鸡蛋中含有丰富的叶黄素和玉米黄素等抗氧化物质,可以帮助保护眼睛健康,对我们眼睛有益处。的维生素也可以帮助我们提高免疫力,让我们更强壮。3.世界之大不过一碗西红柿炒鸡蛋,酸甜开胃,营养美味。西红柿和鸡蛋中都含有丰富的维生素和矿物质,如维生素A、维生素C、维生素E、钾、钙等,这些营养物质有助于促进身体的正常运转。",
|
||||
beansNuts:0,
|
||||
cerealsPotato: 0,
|
||||
code :"WY-D002",
|
||||
cost:0.74,
|
||||
createTime:"2024-04-10 02:56:27",
|
||||
deptId:"24",
|
||||
deptName:"总部",
|
||||
dishTypes : "1",
|
||||
dishTypesStr :["副荤"],
|
||||
essentials:"1.鸡蛋打散,炒熟备用。\n2.热锅烧油,放入西红柿翻炒。\n3.加入盐,白糖,鸡精炒熟。\n4.放入鸡蛋,翻拌均匀。\n5.生粉加水调匀,淋入锅中,收汁出锅。",
|
||||
fat: 2.72,
|
||||
fruitsVegetables:70,
|
||||
image:"https://file.wy2020.com/admin/weiyi/img/vip/nutri/dish/cbf28b18d47a4c378ad7c702dc9da6f8_1280w_956h.jpg?x-image-process=image/resize,m_lfit,h_25,w_25",
|
||||
meatEgg:30,
|
||||
name :"西红柿炒鸡蛋",
|
||||
percentage:"西红柿70% :鸡蛋30%",
|
||||
power:52.2,
|
||||
protein:4.56,
|
||||
spiciness:0,
|
||||
spicinessStr:"不辣",
|
||||
updateTime:"2025-05-07 14:53:44",
|
||||
user:"1",
|
||||
userName:"系统管理员",
|
||||
},
|
||||
{
|
||||
adaptableGroup:"0,1",
|
||||
adaptableGroupStr:["小学", "初中"],
|
||||
appraise:"1.西红柿炒蛋酸甜有营养!补充维生素C,对皮肤好,还能让我们肠胃通畅,鸡蛋中含有丰富的叶黄素和玉米黄素等抗氧化物质,可以帮助保护眼睛健康,对我们眼睛有益处。的维生素也可以帮助我们提高免疫力,让我们更强壮。3.世界之大不过一碗西红柿炒鸡蛋,酸甜开胃,营养美味。西红柿和鸡蛋中都含有丰富的维生素和矿物质,如维生素A、维生素C、维生素E、钾、钙等,这些营养物质有助于促进身体的正常运转。",
|
||||
beansNuts:0,
|
||||
cerealsPotato: 0,
|
||||
code :"WY-D002",
|
||||
cost:0.74,
|
||||
createTime:"2024-04-10 02:56:27",
|
||||
deptId:"24",
|
||||
deptName:"总部",
|
||||
dishTypes : "1",
|
||||
dishTypesStr :["副荤"],
|
||||
essentials:"1.鸡蛋打散,炒熟备用。\n2.热锅烧油,放入西红柿翻炒。\n3.加入盐,白糖,鸡精炒熟。\n4.放入鸡蛋,翻拌均匀。\n5.生粉加水调匀,淋入锅中,收汁出锅。",
|
||||
fat: 2.72,
|
||||
fruitsVegetables:70,
|
||||
image:"https://file.wy2020.com/admin/weiyi/img/vip/nutri/dish/cbf28b18d47a4c378ad7c702dc9da6f8_1280w_956h.jpg?x-image-process=image/resize,m_lfit,h_25,w_25",
|
||||
meatEgg:30,
|
||||
name :"西红柿炒鸡蛋",
|
||||
percentage:"西红柿70% :鸡蛋30%",
|
||||
power:52.2,
|
||||
protein:4.56,
|
||||
spiciness:0,
|
||||
spicinessStr:"不辣",
|
||||
updateTime:"2025-05-07 14:53:44",
|
||||
user:"1",
|
||||
userName:"系统管理员",
|
||||
}
|
||||
];
|
||||
|
||||
export default datalist;
|
|
@ -1,11 +1,658 @@
|
|||
<script setup lang="ts">
|
||||
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<div>菜品管理</div>
|
||||
<div class="dishesManagement">
|
||||
<TablePro ref="tableRef" :request-api="reqApi" :search-form-options="searchFormOptions" :columns="columns"
|
||||
:single-line="false"
|
||||
:isPageTable="true">
|
||||
<template #headerExtra>
|
||||
<n-button strong secondary type="primary" @click="addDishes"> 添加菜品</n-button>
|
||||
<n-button strong secondary type="primary"> 导入</n-button>
|
||||
</template>
|
||||
</TablePro>
|
||||
</div>
|
||||
</template>
|
||||
<script setup lang="tsx">
|
||||
import { NButton, useModal, type FormInst, NPerformantEllipsis } from "naive-ui";
|
||||
import { reactive, ref } from "vue";
|
||||
import type { modelDefaultValue } from "@/views/personnelManagement/departmentStructure/index.ts";
|
||||
import { TablePro, type TableProProps, FormPro, type FormItemOptions, type TableProInst } from "@/components";
|
||||
|
||||
type TableType = TableProProps<any, any>
|
||||
|
||||
|
||||
import datalist, { type DishesValue } from "@/views/smartRecipes/dishesManagement/index.ts";
|
||||
import CustomImageUpload from "@/components/customImageUpload/index.vue";
|
||||
|
||||
const modal = useModal();
|
||||
const form = ref<FormInst | null>(null);
|
||||
const reqApi: TableType["requestApi"] = (params) => {
|
||||
return new Promise((resolve: any) => {
|
||||
resolve({
|
||||
code: 200,
|
||||
data: {
|
||||
pages: "2",
|
||||
current: "1",
|
||||
records: datalist,
|
||||
size: "5",
|
||||
total: "10"
|
||||
},
|
||||
success: "成功"
|
||||
});
|
||||
});
|
||||
};
|
||||
const searchFormOptions = reactive<TableType["searchFormOptions"]>({
|
||||
groups: {
|
||||
type: "select",
|
||||
label: "适应群体",
|
||||
options: [
|
||||
{
|
||||
value: "小学",
|
||||
label: "小学"
|
||||
},
|
||||
{
|
||||
value: "初中",
|
||||
label: "初中"
|
||||
},
|
||||
{
|
||||
value: "高中及以上",
|
||||
label: "高中及以上"
|
||||
},
|
||||
{
|
||||
value: "成人男",
|
||||
label: "成人男"
|
||||
},
|
||||
{
|
||||
value: "成人女",
|
||||
label: "成人女"
|
||||
},
|
||||
{
|
||||
value: "高龄老人",
|
||||
label: "高龄老人"
|
||||
},
|
||||
{
|
||||
value: "三高人群",
|
||||
label: "三高人群"
|
||||
},
|
||||
{
|
||||
value: "糖尿病人群",
|
||||
label: "糖尿病人群"
|
||||
},
|
||||
{
|
||||
value: "痛风人群",
|
||||
label: "痛风人群"
|
||||
},
|
||||
{
|
||||
value: "肝肾障碍",
|
||||
label: "肝肾障碍"
|
||||
}
|
||||
]
|
||||
},
|
||||
dishesCategory: {
|
||||
type: "select",
|
||||
label: "菜品类别",
|
||||
options: [
|
||||
{
|
||||
value: "主荤",
|
||||
label: "主荤"
|
||||
},
|
||||
{
|
||||
value: "副荤",
|
||||
label: "副荤"
|
||||
},
|
||||
{
|
||||
value: "素菜",
|
||||
label: "素菜"
|
||||
}, {
|
||||
value: "小菜",
|
||||
label: "小菜"
|
||||
},
|
||||
{
|
||||
value: "水果",
|
||||
label: "水果"
|
||||
},
|
||||
{
|
||||
value: "坚果",
|
||||
label: "坚果"
|
||||
},
|
||||
{
|
||||
value: "汤饮",
|
||||
label: "汤饮"
|
||||
}
|
||||
]
|
||||
},
|
||||
spicinessStr: {
|
||||
type: "select",
|
||||
label: "辣度",
|
||||
options: [{
|
||||
value: "不辣",
|
||||
label: "不辣"
|
||||
}, {
|
||||
value: "微辣",
|
||||
label: "微辣"
|
||||
}]
|
||||
},
|
||||
name: {
|
||||
type: "input",
|
||||
label: "菜品名称"
|
||||
}
|
||||
});
|
||||
|
||||
const columns = ref<TableType["columns"]>([
|
||||
{
|
||||
key: "name",
|
||||
title: "菜品名称",
|
||||
width: 130
|
||||
},
|
||||
{
|
||||
key: "adaptableGroupStr",
|
||||
title: "适应人群",
|
||||
width: 130
|
||||
},
|
||||
{
|
||||
key: "dishTypesStr",
|
||||
title: "菜品类别",
|
||||
width: 130
|
||||
},
|
||||
{
|
||||
key: "spicinessStr",
|
||||
title: "辣度",
|
||||
width: 130
|
||||
},
|
||||
{
|
||||
key: "image",
|
||||
title: "菜品图片",
|
||||
width: 100,
|
||||
render: (value: any) => {
|
||||
return (
|
||||
<n-avatar
|
||||
round
|
||||
src={value.image}
|
||||
/>
|
||||
);
|
||||
}
|
||||
},
|
||||
{
|
||||
key: "percentage",
|
||||
title: "食物占比",
|
||||
width: 130
|
||||
},
|
||||
{
|
||||
key: "cerealsPotato",
|
||||
title: "谷薯含量",
|
||||
width: 120
|
||||
},
|
||||
{
|
||||
key: "meatEgg",
|
||||
title: "肉蛋含量",
|
||||
width: 100
|
||||
},
|
||||
{
|
||||
key: "fruitsVegetables",
|
||||
title: "果蔬含量",
|
||||
width: 100
|
||||
},
|
||||
{
|
||||
key: "beansNuts",
|
||||
title: "豆类坚果类",
|
||||
width: 100
|
||||
},
|
||||
{
|
||||
key: "power",
|
||||
title: "能量",
|
||||
width: 100
|
||||
},
|
||||
{
|
||||
key: "protein",
|
||||
title: "蛋白质",
|
||||
width: 100
|
||||
},
|
||||
{
|
||||
key: "fat",
|
||||
title: "脂肪",
|
||||
width: 100
|
||||
},
|
||||
{
|
||||
key: "appraise",
|
||||
title: "营养师评语",
|
||||
width: 130,
|
||||
render: ({ appraise }) => (
|
||||
<div>
|
||||
{appraise.split("/").map((item: string, index: number) => (
|
||||
<NPerformantEllipsis
|
||||
key={index}
|
||||
style={{ maxWidth: "100px" }}
|
||||
// 关键配置 👇
|
||||
tooltip={{
|
||||
contentStyle: {
|
||||
whiteSpace: "pre-line", // 允许换行
|
||||
maxWidth: "200px" // 限制提示框宽度
|
||||
}
|
||||
}}
|
||||
>
|
||||
{item.replace(/\s/g, "\n")} {/* 将空格转为换行 */}
|
||||
</NPerformantEllipsis>
|
||||
))}
|
||||
</div>
|
||||
)
|
||||
},
|
||||
{
|
||||
key: "essentials",
|
||||
title: "制作要点",
|
||||
width: 130,
|
||||
render: ({ essentials }) => (
|
||||
<div>
|
||||
{essentials.split("/").map((item: string, index: number) => (
|
||||
<NPerformantEllipsis
|
||||
key={index}
|
||||
style={{ maxWidth: "100px" }}
|
||||
// 关键配置 👇
|
||||
tooltip={{
|
||||
contentStyle: {
|
||||
whiteSpace: "pre-line", // 允许换行
|
||||
maxWidth: "200px" // 限制提示框宽度
|
||||
}
|
||||
}}
|
||||
>
|
||||
{item.replace(/\s/g, "\n")} {/* 将空格转为换行 */}
|
||||
</NPerformantEllipsis>
|
||||
))}
|
||||
</div>
|
||||
)
|
||||
},
|
||||
{
|
||||
key: "createTime",
|
||||
title: "提交时间",
|
||||
width: 130
|
||||
},
|
||||
{
|
||||
key: "updateTime",
|
||||
title: "更新时间",
|
||||
width: 130
|
||||
},
|
||||
{
|
||||
key: "",
|
||||
title: "操作",
|
||||
width: 150,
|
||||
fixed: "right",
|
||||
render: (value: DishesValue) => {
|
||||
return (
|
||||
<div style={{ display: "flex" }}>
|
||||
<n-button
|
||||
strong
|
||||
secondary
|
||||
style={{ marginLeft: "10px" }}
|
||||
type="warning"
|
||||
onClick={() => {
|
||||
console.log(value, "000");
|
||||
title.value = `修改食材原料`;
|
||||
userValue.value.image = value.image;
|
||||
userValue.value.name = value.name;
|
||||
userValue.value.adaptableGroupStr = value.adaptableGroupStr;
|
||||
userValue.value.dishTypesStr = value.dishTypesStr;
|
||||
userValue.value.spicinessStr = value.spicinessStr;
|
||||
userValue.value.power = value.power;
|
||||
userValue.value.fat = value.fat;
|
||||
userValue.value.meatEgg = value.meatEgg;
|
||||
userValue.value.percentage = value.percentage;
|
||||
userValue.value.protein = value.protein;
|
||||
userValue.value.cerealsPotato = value.cerealsPotato;
|
||||
userValue.value.fruitsVegetables = value.fruitsVegetables;
|
||||
userValue.value.beansNuts = value.beansNuts;
|
||||
userValue.value.essentials = value.essentials;
|
||||
userValue.value.appraise = value.appraise;
|
||||
modalRef.value = modal.create({
|
||||
title: title.value,
|
||||
preset: "card",
|
||||
style: {
|
||||
width: "1000px"
|
||||
},
|
||||
content: () => (
|
||||
<div style="height:600px;overflow-y: auto;scrollbar-width: none;">
|
||||
<FormPro labelPlacement={"top"} ref={form} v-model:value={userValue.value}
|
||||
form-item-options={formOptions1User}
|
||||
gridProps={{ cols: 1, xGap: 8, itemResponsive: true }}>
|
||||
</FormPro>
|
||||
<FormPro labelPlacement={"top"} ref={form} v-model:value={userValue.value}
|
||||
form-item-options={formOptionsUser}
|
||||
gridProps={{ cols: 2, xGap: 16, itemResponsive: true }}>
|
||||
</FormPro>
|
||||
</div>
|
||||
|
||||
),
|
||||
footer: () => (
|
||||
<div
|
||||
style={{
|
||||
display: "flex",
|
||||
justifyContent: "flex-end"
|
||||
}}
|
||||
>
|
||||
<n-button
|
||||
loading={loading.value}
|
||||
style={{ marginRight: "10px" }}
|
||||
type="primary"
|
||||
onClick={() => {
|
||||
modalRef.value.destroy();
|
||||
resetModelValue();
|
||||
}}
|
||||
>
|
||||
确认
|
||||
</n-button>
|
||||
<n-button
|
||||
onClick={() => {
|
||||
modalRef.value.destroy();
|
||||
resetModelValue();
|
||||
}}
|
||||
>
|
||||
取消
|
||||
</n-button>
|
||||
</div>
|
||||
),
|
||||
onAfterLeave: () => {
|
||||
resetModelValue();
|
||||
}
|
||||
});
|
||||
}}
|
||||
>编辑
|
||||
</n-button>
|
||||
<n-button type="error" style={{ margin: "0 10px" }}>
|
||||
删除
|
||||
</n-button>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
]);
|
||||
const userDefaultValue = {
|
||||
adaptableGroup: "",
|
||||
adaptableGroupStr: "",
|
||||
appraise: "",
|
||||
beansNuts: "",
|
||||
cerealsPotato: "",
|
||||
code: "",
|
||||
cost: "",
|
||||
createTime: "",
|
||||
deptId: "",
|
||||
deptName: "",
|
||||
dishTypes: "",
|
||||
dishTypesStr: "",
|
||||
essentials: "",
|
||||
fat: "",
|
||||
fruitsVegetables: "",
|
||||
image: "",
|
||||
meatEgg: "",
|
||||
name: "",
|
||||
percentage: "",
|
||||
power: "",
|
||||
protein: "",
|
||||
spiciness: "",
|
||||
spicinessStr: "",
|
||||
updateTime: "",
|
||||
user: "",
|
||||
userName: ""
|
||||
};
|
||||
|
||||
const userValue = ref<DishesValue>({
|
||||
...userDefaultValue
|
||||
});
|
||||
|
||||
const resetModelValue = () => {
|
||||
userValue.value = { ...userDefaultValue };
|
||||
};
|
||||
|
||||
const addUserOrUpdate = () => {
|
||||
form.value?.validate().then(() => {
|
||||
// loading.value = true
|
||||
|
||||
});
|
||||
};
|
||||
const formOptionsUser = reactive<FormItemOptions<DishesValue>>({
|
||||
name: {
|
||||
type: "input",
|
||||
label: "菜品名称",
|
||||
required: true
|
||||
},
|
||||
adaptableGroupStr: {
|
||||
type: "select",
|
||||
label: "适应群体",
|
||||
required: true,
|
||||
options: [
|
||||
{
|
||||
value: "小学",
|
||||
label: "小学"
|
||||
},
|
||||
{
|
||||
value: "初中",
|
||||
label: "初中"
|
||||
},
|
||||
{
|
||||
value: "高中及以上",
|
||||
label: "高中及以上"
|
||||
},
|
||||
{
|
||||
value: "成人男",
|
||||
label: "成人男"
|
||||
},
|
||||
{
|
||||
value: "成人女",
|
||||
label: "成人女"
|
||||
},
|
||||
{
|
||||
value: "高龄老人",
|
||||
label: "高龄老人"
|
||||
},
|
||||
{
|
||||
value: "三高人群",
|
||||
label: "三高人群"
|
||||
},
|
||||
{
|
||||
value: "糖尿病人群",
|
||||
label: "糖尿病人群"
|
||||
},
|
||||
{
|
||||
value: "痛风人群",
|
||||
label: "痛风人群"
|
||||
},
|
||||
{
|
||||
value: "肝肾障碍",
|
||||
label: "肝肾障碍"
|
||||
}
|
||||
]
|
||||
},
|
||||
dishTypesStr: {
|
||||
type: "select",
|
||||
label: "菜品类别",
|
||||
required: true,
|
||||
options: [
|
||||
{
|
||||
value: "主荤",
|
||||
label: "主荤"
|
||||
},
|
||||
{
|
||||
value: "副荤",
|
||||
label: "副荤"
|
||||
},
|
||||
{
|
||||
value: "素菜",
|
||||
label: "素菜"
|
||||
}, {
|
||||
value: "小菜",
|
||||
label: "小菜"
|
||||
},
|
||||
{
|
||||
value: "水果",
|
||||
label: "水果"
|
||||
},
|
||||
{
|
||||
value: "坚果",
|
||||
label: "坚果"
|
||||
},
|
||||
{
|
||||
value: "汤饮",
|
||||
label: "汤饮"
|
||||
}
|
||||
]
|
||||
},
|
||||
spicinessStr: {
|
||||
type: "radioGroup",
|
||||
label: "辣度",
|
||||
required: true,
|
||||
options: [{
|
||||
value: "不辣",
|
||||
label: "不辣"
|
||||
}, {
|
||||
value: "微辣",
|
||||
label: "微辣"
|
||||
}]
|
||||
},
|
||||
cerealsPotato:{
|
||||
type:'input',
|
||||
label:'谷薯含量(g/100g)',
|
||||
componentsProps: {
|
||||
disabled: true,
|
||||
},
|
||||
},
|
||||
meatEgg:{
|
||||
type:'input',
|
||||
label:'肉蛋含量(g/100g)',
|
||||
componentsProps: {
|
||||
disabled: true,
|
||||
},
|
||||
},
|
||||
fruitsVegetables:{
|
||||
type:'input',
|
||||
label:'果蔬含量(g/100g)',
|
||||
componentsProps: {
|
||||
disabled: true,
|
||||
},
|
||||
},
|
||||
beansNuts:{
|
||||
type:'input',
|
||||
label:'豆类坚果类(g/100g)',
|
||||
componentsProps: {
|
||||
disabled: true,
|
||||
},
|
||||
},
|
||||
power:{
|
||||
type:'input',
|
||||
label:'能量(kcal/100g)',
|
||||
componentsProps: {
|
||||
disabled: true,
|
||||
},
|
||||
},
|
||||
protein:{
|
||||
type:'input',
|
||||
label:'蛋白质(g/100g)',
|
||||
componentsProps: {
|
||||
disabled: true,
|
||||
},
|
||||
},
|
||||
percentage:{
|
||||
type:'input',
|
||||
label:'食物占比',
|
||||
componentsProps: {
|
||||
disabled: true,
|
||||
},
|
||||
},
|
||||
fat:{
|
||||
type:'input',
|
||||
label:'脂肪(g/100g)',
|
||||
componentsProps: {
|
||||
disabled: true,
|
||||
},
|
||||
},
|
||||
appraise:{
|
||||
type:'input',
|
||||
label:'营养师评语',
|
||||
componentsProps: {
|
||||
type:'textarea'
|
||||
},
|
||||
},
|
||||
essentials:{
|
||||
type:'input',
|
||||
label:'制作要点',
|
||||
componentsProps: {
|
||||
type:'textarea'
|
||||
},
|
||||
}
|
||||
})
|
||||
const formOptions1User = reactive<FormItemOptions<DishesValue>>({
|
||||
// // form表单
|
||||
image: {
|
||||
type: "custom",
|
||||
label: "",
|
||||
customRender: (modelValue) => {
|
||||
return (
|
||||
<div style="margin: auto;text-align: center">
|
||||
<div>
|
||||
<n-image
|
||||
width="150"
|
||||
height="150"
|
||||
src={modelValue.image}
|
||||
/>
|
||||
</div>
|
||||
菜品图片
|
||||
</div>
|
||||
);
|
||||
}
|
||||
}
|
||||
});
|
||||
const loading = ref<boolean>(false);
|
||||
const modalRef = ref();
|
||||
const title = ref("添加食材原料");
|
||||
const addDishes = () => {
|
||||
modalRef.value = modal.create({
|
||||
title: title.value,
|
||||
preset: "card",
|
||||
style: {
|
||||
width: "1000px"
|
||||
},
|
||||
content: () => (
|
||||
<div style="height:600px;overflow-y: auto;scrollbar-width: none;">
|
||||
<FormPro labelPlacement={"top"} ref={form} v-model:value={userValue.value}
|
||||
form-item-options={formOptions1User} gridProps={{ cols: 1, xGap: 8, itemResponsive: true }}>
|
||||
</FormPro>
|
||||
<FormPro labelPlacement={"top"} ref={form} v-model:value={userValue.value}
|
||||
form-item-options={formOptionsUser} gridProps={{ cols: 2, xGap: 16, itemResponsive: true }}>
|
||||
</FormPro>
|
||||
</div>
|
||||
|
||||
),
|
||||
footer: () => (
|
||||
<div
|
||||
style={{
|
||||
display: "flex",
|
||||
justifyContent: "flex-end"
|
||||
}}
|
||||
>
|
||||
<n-button
|
||||
loading={loading.value}
|
||||
style={{ marginRight: "10px" }}
|
||||
type="primary"
|
||||
onClick={() => {
|
||||
addUserOrUpdate();
|
||||
}}
|
||||
>
|
||||
确认
|
||||
</n-button>
|
||||
<n-button
|
||||
onClick={() => {
|
||||
modalRef.value.destroy();
|
||||
resetModelValue();
|
||||
}}
|
||||
>
|
||||
取消
|
||||
</n-button>
|
||||
</div>
|
||||
),
|
||||
onAfterLeave: () => {
|
||||
resetModelValue();
|
||||
}
|
||||
});
|
||||
};
|
||||
</script>
|
||||
<style scoped lang="scss">
|
||||
|
||||
//.dishesManagement {
|
||||
// //overflow-y: auto;
|
||||
//
|
||||
//}
|
||||
</style>
|
|
@ -611,8 +611,8 @@
|
|||
};
|
||||
</script>
|
||||
<style scoped lang="scss">
|
||||
.departmentStructure {
|
||||
//overflow-y: auto;
|
||||
|
||||
}
|
||||
//.departmentStructure {
|
||||
// //overflow-y: auto;
|
||||
//
|
||||
//}
|
||||
</style>
|
Loading…
Reference in New Issue