添加输入结果页面雏形

This commit is contained in:
LittleBoy 2024-12-25 22:19:05 +08:00
parent f30cde879c
commit 35b77f225f
7 changed files with 156 additions and 24 deletions

View File

@ -3,9 +3,12 @@ const props = defineProps(["title", "description"]);
</script>
<template>
<div class="page-content-header">
<div class="page-content-title" v-html="props.title"></div>
<div class="page-content-desc" v-html="props.description"></div>
<div class="page-content-header flex justify-between">
<div class="left-intro-content flex-1">
<div class="page-content-title" v-html="props.title"></div>
<div class="page-content-desc" v-html="props.description"></div>
</div>
<div class="right-content"><slot></slot></div>
</div>
</template>

View File

@ -59,34 +59,34 @@ function onValuesChange() {
<SelectOption value="vein">静脉制剂</SelectOption>
</Select>
</Form.Item>
<Form.Item label="能量密度" name="power" :rules="[{ required: true, message: '请输入能量密度' }]">
<Form.Item label="能量密度" name="power">
<Input placeholder="请输入能量密度" v-model:value="currentData.power" />
</Form.Item>
<Form.Item label="蛋白Pro" name="protein" :rules="[{ required: true, message: '请输入蛋白Pro' }]">
<Form.Item label="蛋白Pro" name="protein">
<Input placeholder="请输入蛋白Pro" v-model:value="currentData.protein" />
</Form.Item>
<Form.Item label="Glu" name="glu" :rules="[{ required: true, message: '请输入Glu' }]">
<Form.Item label="Glu" name="glu">
<Input placeholder="请输入Glu" v-model:value="currentData.glu" />
</Form.Item>
<Form.Item label="Fat" name="fat" :rules="[{ required: true, message: '请输入Fat' }]">
<Form.Item label="Fat" name="fat">
<Input placeholder="请输入Fat" v-model:value="currentData.fat" />
</Form.Item>
<Form.Item label="纤维素" name="cellulose" :rules="[{ required: true, message: '请输入纤维素' }]">
<Form.Item label="纤维素" name="cellulose">
<Input placeholder="请输入纤维素" v-model:value="currentData.cellulose" />
</Form.Item>
<Form.Item label="Na" name="na" :rules="[{ required: true, message: '请输入Na' }]">
<Form.Item label="Na" name="na">
<Input placeholder="请输入Na" v-model:value="currentData.na" />
</Form.Item>
<Form.Item label="K" name="k" :rules="[{ required: true, message: '请输入K' }]">
<Form.Item label="K" name="k">
<Input placeholder="请输入K" v-model:value="currentData.k" />
</Form.Item>
<Form.Item label="Ca" name="ca" :rules="[{ required: true, message: '请输入Ca' }]">
<Form.Item label="Ca" name="ca">
<Input placeholder="请输入Ca" v-model:value="currentData.ca" />
</Form.Item>
<Form.Item label="P" name="p" :rules="[{ required: true, message: '请输入P' }]">
<Form.Item label="P" name="p">
<Input placeholder="请输入P" v-model:value="currentData.p" />
</Form.Item>
<Form.Item label="Mg" name="mg" :rules="[{ required: true, message: '请输入Mg' }]">
<Form.Item label="Mg" name="mg">
<Input placeholder="请输入Mg" v-model:value="currentData.mg" />
</Form.Item>
</div>

View File

@ -15,7 +15,9 @@ import useRequest from "@/service/useRequest";
import EditModal from "./edit-modal.vue"
const editProduct = ref<Partial<ProductInfoModel>>()
const editProduct = ref<Partial<ProductInfoModel>>();
// const formState = ref<{name?:string;category?:string}>({
// })
const searchParams = ref<ProductSearchParam>({
page: 1,
limit: 10,
@ -44,13 +46,19 @@ function handleDelete(id: number) {
})
}
function handleSearch(){
// searchParams.value = {
// ...searchParams.value,
// ...formState.value,
// page: 1,
// }
searchParams.value.page = 1;
run()
}
</script>
<template>
<div class="data-fields-container">
<PageHeader title="输入指标编辑" description="*输入指标: 作为输入参数进行计算,可对指标进行新增、编辑、删除操作。" />
<PageHeader title="制剂数据编辑" description="*数据编辑: 删除数据可能导致系统无法正常计算结果,请谨慎操作。" />
<div class="search-form">
<Space :size="20">
<Space class="form-item">

View File

@ -1,18 +1,124 @@
<template>
<p>输出计算</p>
<!-- <DataField /> -->
<Button @click="showMessage">test</Button>
<div class="result-container">
<PageHeader title="输出指标编辑" description="*输出指标: 使用输入参数进行计算,可对指标进行编辑操作。">
<Button type="primary">保存</Button>
</PageHeader>
</div>
<div class="result-calc-expression-list-container overflow-auto grid grid-cols-2 gap-4"
style="max-height: calc(100vh - 240px);margin-right:-5px;padding-right:5px;">
<div class="result-item bg-gray-100 p-3 rounded" v-for="item in ResultExpressionList" :key="item.key">
<div class="result-item-title text-base font-bold">{{ item.title }}</div>
<div class="result-item-expression mt-3">
<textarea class="w-full h-[66px] rounded outline-none p-3 bg-none resize-none" v-model="item.expression"
:placeholder="`请输入${item.title}计算公式`" />
</div>
</div>
</div>
<div class="hidden">
<!-- <DataField /> -->
<Button type="primary" @click="showMessage">test</Button>
<p>输出计算</p>
</div>
</template>
<script setup lang="ts">
import PageHeader from "@/components/page-header.vue";
// import DataField from "@/components/data-fields/index.vue"
import Button from "@/components/button/button.vue";
import { message } from "@/components/message";
import { ref } from "vue";
const dataList = [
{ title: "总入液量ml", expression: "", key: "total" },
{ title: "Prog不含白蛋白", expression: "", key: "danbai" },
{ title: "Prog含白蛋白", expression: "", key: "danbai_baidanbai" },
{ title: "Glug", expression: "", key: "glu" },
{ title: "Fatg", expression: "", key: "fat" },
{ title: "纤维素g", expression: "", key: "cellulose" },
{ title: "Nag", expression: "", key: "na" },
{ title: "Kg", expression: "", key: "k" },
{ title: "Cag", expression: "", key: "ca" },
{ title: "Pg", expression: "", key: "p" },
{ title: "Mgg", expression: "", key: "mg" },
{ title: "实际热卡(Kcal)", expression: "", key: "shijireka" },
{ title: "热量/体重(Kcal/kg)", expression: "", key: "reliang_tizhong" },
{ title: "蛋白/体重(不含白蛋白)", expression: "", key: "danbai_tizhong" },
{
title: "蛋白/体重(含白蛋白)",
expression: "",
key: "danbai_tizhong_baidanbai",
},
{ title: "蛋白热卡比(不含白蛋白)", expression: "", key: "danbai_rekabi" },
{
title: "蛋白热卡比(含白蛋白)",
expression: "",
key: "danbai_rekabi_baidanbai",
},
{ title: "糖热卡比", expression: "", key: "tang_rekabi" },
{ title: "脂肪热卡比", expression: "", key: "zhifang_rekabi" },
{ title: "氮平衡(不含白蛋白)", expression: "", key: "danpingheng" },
{ title: "氮平衡(含白蛋白)", expression: "", key: "danpingheng_baidanbai" },
{ title: "肠内热卡百分比", expression: "", key: "changneibi" },
{ title: "肠外热卡百分比", expression: "", key: "changwaibi" },
];
const ResultExpressionList = ref(dataList);
// const list = [
// { name: 'ml', value: '', key: 'total' },
// { name: 'Prog', value: '', key: 'danbai' },
// { name: 'Prog', value: '', key: 'danbai_baidanbai' },
// { name: 'Glug', value: '', key: 'glu' },
// { name: 'Fatg', value: '', key: 'fat' },
// { name: 'g', value: '', key: 'cellulose' },
// { name: 'Nag', value: '', key: 'na' },
// { name: 'Kg', value: '', key: 'k' },
// { name: 'Cag', value: '', key: 'ca' },
// { name: 'Pg', value: '', key: 'p' },
// { name: 'Mgg', value: '', key: 'mg' },
// { name: '(Kcal)', value: '', key: 'shijireka' },
// { name: '/(Kcal/kg)', value: '', key: 'reliang_tizhong' },
// { name: '/()', value: '', key: 'danbai_tizhong' },
// { name: '/()', value: '', key: 'danbai_tizhong_baidanbai' },
// { name: '()', value: '', key: 'danbai_rekabi' },
// { name: '()', value: '', key: 'danbai_rekabi_baidanbai' },
// { name: '', value: '', key: 'tang_rekabi' },
// { name: '', value: '', key: 'zhifang_rekabi' },
// { name: '()', value: '', key: 'danpingheng' },
// { name: '()', value: '', key: 'danpingheng_baidanbai' },
// { name: '', value: '', key: 'changneibi' },
// { name: '', value: '', key: 'changwaibi' }
// ].map(it => ({ title: it.name, expression: '', key: it.key }));
// console.log(JSON.stringify(list))
const showMessage = () => {
message.show(
'This notification does not automatically close, and you need to click the close button to close.',
'Notification title',
"This notification does not automatically close, and you need to click the close button to close.",
"Notification title",
0
)
}
);
};
</script>
<style lang="scss" scoped>
// .result-calc-expression-list-container {}
// .result-item {
// display: flex;
// flex-direction: column;
// margin-bottom: 20px;
// .result-item-title {
// font-size: 14px;
// font-weight: 500;
// color: #333333;
// margin-bottom: 10px;
// }
// .result-item-expression {}
// textarea {
// width: 100%;
// height: 40px;
// outline: none;
// }
// }</style>

View File

@ -1,5 +1,5 @@
<script setup lang="ts">
import { ref, h, watch } from "vue";
import { ref, h } from "vue";
import { SearchOutlined, PlusOutlined } from '@ant-design/icons-vue';
import {
Pagination, Select, SelectOption, Input, Button, Space, Empty, Spin,

View File

@ -36,6 +36,21 @@
--primary-color-2-hover: #3895ffbf;
--primary-border-radius: 3px;
}
::-webkit-scrollbar {
width: 4px;
border-radius: 5px
}
::-webkit-scrollbar-thumb {
background: #4096ff80;
height: 10px;
border-radius: 5px
}
::-webkit-scrollbar-thumb:hover {
background: #4096ff;
cursor: pointer
}
[type=reset],
[type=submit],

View File

@ -34,7 +34,7 @@ export default defineConfig({
server: {
proxy: {
'/api': {
target: 'http://localhost:3001',
target: 'http://43.136.175.109:50001',
changeOrigin: true,
// rewrite: path => path.replace(/^\/api/, '')
}