From 9bbb2946699515807256dfb30ab57359f4fdf563 Mon Sep 17 00:00:00 2001
From: chenyc <501753378@qq.com>
Date: 星期一, 24 三月 2025 16:09:43 +0800
Subject: [PATCH] gx优化

---
 src/views/home/components/editDietary.vue |  187 ++++++++++++++++++++++++++++------------------
 1 files changed, 115 insertions(+), 72 deletions(-)

diff --git a/src/views/home/components/editDietary.vue b/src/views/home/components/editDietary.vue
index 3214728..60c4e8c 100644
--- a/src/views/home/components/editDietary.vue
+++ b/src/views/home/components/editDietary.vue
@@ -1,13 +1,13 @@
 <template>
     <div class="dietarySurvey-item">
-        <el-dialog  v-model="state.dialogTableVisible" title="营养膳食生活调查表" :fullscreen="true" width="100%">
-            <div class="container" style="width: 100%; height: 100%;overflow: auto;">
-                <div id="printFrom1">
+        <el-dialog  v-model="state.dialogTableVisible" title="膳食生活调查表" :fullscreen="true" width="100%">
+            <div  style="width: 100%; height: 100%;overflow: auto;">
+                <div ref="printRef">
                     <div>
                         <el-form size="small">
                             <div style="width: 100%">
                                 <table id="tabledome" class="gridtable">
-
+                                    
                                     <tr>
                                         <th colspan="2">
                                             <el-form-item label="初次调查日期">
@@ -128,27 +128,27 @@
                                             1.常吃的主食
                                         </td>
                                         <td colspan="5">
-                                            <el-form-item>
-                                                    <el-radio-group
+                                            <el-form-item> 
+                                                    <el-checkbox-group 
                                                         v-model="state.tableData.常吃的主食.type">
-                                                        <el-checkbox value="精米面类">A.精米面类</el-checkbox>
-                                                        <el-checkbox value="杂豆类">B.杂豆类</el-checkbox>
-                                                        <el-checkbox value="粗粮">C.粗粮</el-checkbox>
-                                                        <el-checkbox value="薯类">B.薯类</el-checkbox>
-                                                        <el-checkbox value="其它">E.其它</el-checkbox>
+                                                            <el-checkbox value="精米面类">A.精米面类</el-checkbox>
+                                                            <el-checkbox value="杂豆类">B.杂豆类</el-checkbox>
+                                                            <el-checkbox value="粗粮">C.粗粮</el-checkbox>
+                                                            <el-checkbox value="薯类">B.薯类</el-checkbox>
+                                                            <el-checkbox value="其它">E.其它</el-checkbox>
 
-                                                    </el-radio-group>
+                                                    </el-checkbox-group >
                                                     &nbsp;&nbsp;
                                                     &nbsp;&nbsp;
                                                     <span>食用份量</span>
                                                     <span>
-                                                        <input style="width: 50px;" v-model="state.tableData.常吃的主食.食用份量"/> 克/天
+                                                        <input :style="{width:state.tableData?.常吃的主食?.食用份量?.length?state.tableData?.常吃的主食?.食用份量?.length*15+'px':'50px'}" v-model="state.tableData.常吃的主食.食用份量"/> 克/天
                                                        
                                                     </span>
                                                     &nbsp;&nbsp;
                                                     &nbsp;&nbsp;
                                                     <span>食用频次</span>
-                                                    <input style="width: 50px;" v-model="state.tableData.常吃的主食.食用频次"/> 次/周
+                                                    <input :style="{width:state.tableData?.常吃的主食?.食用频次?.length?state.tableData?.常吃的主食?.食用频次?.length*15+'px':'50px'}" v-model="state.tableData.常吃的主食.食用频次"/> 次/周
                                                 </el-form-item>
                                         </td>
                                     </tr>
@@ -158,24 +158,25 @@
                                         </td>
                                         <td colspan="5">
                                                 <el-form-item>
-                                                <el-radio-group  v-model="state.tableData.常吃的蔬菜.type">
+                                                <el-checkbox-group   v-model="state.tableData.常吃的蔬菜.type">
                                                     <el-checkbox value="叶菜">A.叶菜</el-checkbox>
                                                     <el-checkbox value="根茎类">B.根茎类</el-checkbox>
                                                     <el-checkbox value="瓜茄">C.瓜茄</el-checkbox>
                                                     <el-checkbox value="鲜豆">B.鲜豆</el-checkbox>
                                                     <el-checkbox value="菌藻">E.菌藻</el-checkbox>
-                                                </el-radio-group>
+                                                </el-checkbox-group >
+                                                <br/>
                                                 &nbsp;&nbsp;
                                                     &nbsp;&nbsp;
                                                     <span>食用份量</span>
                                                     <span>
-                                                        <input style="width: 50px;" v-model="state.tableData.常吃的蔬菜.食用份量"/> 克/天
+                                                        <input :style="{width:state.tableData?.常吃的蔬菜?.食用份量?.length?state.tableData?.常吃的蔬菜?.食用份量?.length*15+'px':'50px'}" v-model="state.tableData.常吃的蔬菜.食用份量"/> 克/天
                                                        
                                                     </span>
                                                     &nbsp;&nbsp;
                                                     &nbsp;&nbsp;
                                                     <span>食用频次</span>
-                                                    <input style="width: 50px;" v-model="state.tableData.常吃的蔬菜.食用频次"/> 次/周
+                                                    <input :style="{width:state.tableData?.常吃的蔬菜?.食用频次?.length?state.tableData?.常吃的蔬菜?.食用频次?.length*15+'px':'50px'}" v-model="state.tableData.常吃的蔬菜.食用频次"/> 次/周
                                                    
                                             </el-form-item>
                                             
@@ -188,24 +189,24 @@
                                         <td colspan="5">
                                           
                                                 <el-form-item>
-                                                <el-radio-group  v-model="state.tableData.常吃的肉类.type">
+                                                <el-checkbox-group   v-model="state.tableData.常吃的肉类.type">
                                                     <el-checkbox value="畜产品">A.畜产品</el-checkbox>
                                                     <el-checkbox value="禽产品">B.禽产品</el-checkbox>
                                                     <el-checkbox value="水产品类">C.水产品类</el-checkbox>
                                                     <el-checkbox value="蛋类">D.蛋类</el-checkbox>
                                                     <el-checkbox value="其他">E.其他</el-checkbox>
-                                                </el-radio-group>
+                                                </el-checkbox-group>
                                                 &nbsp;&nbsp;
                                                     &nbsp;&nbsp;
                                                     <span>食用份量</span>
                                                     <span>
-                                                        <input style="width: 50px;" v-model="state.tableData.常吃的肉类.食用份量"/> 克/天
+                                                        <input :style="{width:state.tableData?.常吃的肉类?.食用份量?.length?state.tableData?.常吃的肉类?.食用份量?.length*15+'px':'50px'}" v-model="state.tableData.常吃的肉类.食用份量"/> 克/天
                                                        
                                                     </span>
                                                     &nbsp;&nbsp;
                                                     &nbsp;&nbsp;
                                                     <span>食用频次</span>
-                                                    <input style="width: 50px;" v-model="state.tableData.常吃的肉类.食用频次"/> 次/周
+                                                    <input :style="{width:state.tableData?.常吃的肉类?.食用频次?.length?state.tableData?.常吃的肉类?.食用频次?.length*15+'px':'50px'}" v-model="state.tableData.常吃的肉类.食用频次"/> 次/周
                                                    
                                             </el-form-item>
                                             
@@ -217,18 +218,18 @@
                                         </td>
                                         <td colspan="5">
                                                 <el-form-item>
-                                                <input style="width: 250px;" v-model="state.tableData.常吃的水果.食用份量"/> ;
+                                                <input style="width: 250px;" v-model="state.tableData.常吃的水果.input"/> ;
                                                 &nbsp;&nbsp;
                                                     &nbsp;&nbsp;
                                                     <span>食用份量</span>
                                                     <span>
-                                                        <input style="width: 50px;" v-model="state.tableData.常吃的水果.食用份量"/> 克/天;
+                                                        <input :style="{width:state.tableData?.常吃的水果?.食用份量?.length?state.tableData?.常吃的水果?.食用份量?.length*15+'px':'50px'}" v-model="state.tableData.常吃的水果.食用份量"/> 克/天;
                                                        
                                                     </span>
                                                     &nbsp;&nbsp;
                                                     &nbsp;&nbsp;
                                                     <span>食用频次</span>
-                                                    <input style="width: 50px;" v-model="state.tableData.常吃的水果.食用频次"/> 次/周
+                                                    <input :style="{width:state.tableData?.常吃的水果?.食用份量?.length?state.tableData?.常吃的水果?.食用频次?.length*15+'px':'50px'}"  v-model="state.tableData.常吃的水果.食用频次"/> 次/周
                                                    
                                             </el-form-item>
                                         </td>
@@ -256,12 +257,12 @@
                                                     &nbsp;&nbsp;
                                                     <span>食用份量</span>
                                                     <span>
-                                                        <input style="width: 50px;" v-model="state.tableData.常吃的大豆及其制品是.食用份量"/> 克/天
+                                                        <input :style="{width:state.tableData?.常吃的大豆及其制品是?.食用份量?.length?state.tableData?.常吃的大豆及其制品是?.食用份量?.length*15+'px':'50px'}" v-model="state.tableData.常吃的大豆及其制品是.食用份量"/> 克/天
                                                     </span>
                                                     &nbsp;&nbsp;
                                                     &nbsp;&nbsp;
                                                     <span>食用频次</span>
-                                                    <input style="width: 50px;" v-model="state.tableData.常吃的大豆及其制品是.食用频次"/> 次/周
+                                                    <input  :style="{width:state.tableData?.常吃的大豆及其制品是?.食用频次?.length?state.tableData?.常吃的大豆及其制品是?.食用频次?.length*15+'px':'50px'}"  v-model="state.tableData.常吃的大豆及其制品是.食用频次"/> 次/周
                                                    
                                             </el-form-item>
     
@@ -276,18 +277,18 @@
                                         <td colspan="5">
                                           
                                                 <el-form-item>
-                                                <input style="width: 250px;" v-model="state.tableData.坚果摄入量.食用份量"/> ;
+                                                <input style="width: 250px;" v-model="state.tableData.坚果摄入量.type"/> ;
                                                 &nbsp;&nbsp;
                                                     &nbsp;&nbsp;
                                                     <span>食用份量</span>
                                                     <span>
-                                                        <input style="width: 50px;" v-model="state.tableData.坚果摄入量.食用份量"/> 克/天;
+                                                        <input :style="{width:state.tableData?.坚果摄入量?.食用份量?.length?state.tableData?.坚果摄入量?.食用份量?.length*15+'px':'50px'}"  v-model="state.tableData.坚果摄入量.食用份量"/> 克/天;
                                                        
                                                     </span>
                                                     &nbsp;&nbsp;
                                                     &nbsp;&nbsp;
                                                     <span>食用频次</span>
-                                                    <input style="width: 50px;" v-model="state.tableData.坚果摄入量.食用频次"/> 次/周
+                                                    <input :style="{width:state.tableData?.坚果摄入量?.食用频次?.length?state.tableData?.坚果摄入量?.食用频次?.length*15+'px':'50px'}" style="width: 50px;" v-model="state.tableData.坚果摄入量.食用频次"/> 次/周
                                                    
                                             </el-form-item>
     
@@ -316,13 +317,13 @@
                                                     &nbsp;&nbsp;
                                                     <span>食用份量</span>
                                                     <span>
-                                                        <input style="width: 50px;" v-model="state.tableData.奶类摄入量.食用份量"/> 克/天
+                                                        <input :style="{width:state.tableData?.奶类摄入量?.食用份量?.length?state.tableData?.奶类摄入量?.食用份量?.length*15+'px':'50px'}" v-model="state.tableData.奶类摄入量.食用份量"/> 克/天
                                                        
                                                     </span>
                                                     &nbsp;&nbsp;
                                                     &nbsp;&nbsp;
                                                     <span>食用频次</span>
-                                                    <input style="width: 50px;" v-model="state.tableData.奶类摄入量.食用频次"/> 次/周
+                                                    <input :style="{width:state.tableData?.奶类摄入量?.食用频次?.length?state.tableData?.奶类摄入量?.食用频次?.length*15+'px':'50px'}" v-model="state.tableData.奶类摄入量.食用频次"/> 次/周
                                             </el-form-item>   
                                         </td>
                                     </tr>
@@ -451,6 +452,7 @@
                                             </el-form-item>   
                                         </td>
                                     </tr>
+                                    <div class="page-break"></div>
                                     <tr>
                                         <td>
                                             12.零食及其他
@@ -475,13 +477,13 @@
                                                         </el-checkbox>
                                                         <el-checkbox value="辛辣食品">辛辣食品 
                                                         </el-checkbox>
-                                                        <el-checkbox value="石炭酉饮米斗">石炭酉饮米斗 
+                                                        <el-checkbox value="碳酸饮料">碳酸饮料 
                                                         </el-checkbox>
                                     
                                                        
                                                     </el-checkbox-group>
                                                     <span>
-                                                        <input style="width: 100px;" v-model="state.tableData.零食及其他.备注"/>
+                                                        <input style="width: 250px;" v-model="state.tableData.零食及其他.备注"/>
                                                     </span>
                                                    
                                             </el-form-item>   
@@ -639,32 +641,32 @@
                                     <tr>
                                         <td>
                                             <el-form-item>
-                                                <el-input type="textarea" v-model="state.tableData.二十四小时饮食回顾记录.早餐" placeholder="" />
+                                                <el-input type="textarea"  :autosize="{ minRows: 2, maxRows: 6 }"  v-model="state.tableData.二十四小时饮食回顾记录.早餐" placeholder="" />
                                             </el-form-item>
                                         </td>
                                         <td>
                                             <el-form-item>
-                                                <el-input type="textarea" v-model="state.tableData.二十四小时饮食回顾记录.早加餐" placeholder="" />
+                                                <el-input type="textarea" :autosize="{ minRows: 2, maxRows: 6 }"  v-model="state.tableData.二十四小时饮食回顾记录.早加餐" placeholder="" />
                                             </el-form-item>
                                         </td>
                                         <td>
                                             <el-form-item>
-                                                <el-input type="textarea" v-model="state.tableData.二十四小时饮食回顾记录.午餐" placeholder="" />
+                                                <el-input type="textarea" :autosize="{ minRows: 2, maxRows: 6 }"  v-model="state.tableData.二十四小时饮食回顾记录.午餐" placeholder="" />
                                             </el-form-item>
                                         </td>
                                         <td>
                                             <el-form-item>
-                                                <el-input type="textarea" v-model="state.tableData.二十四小时饮食回顾记录.午加餐" placeholder="" />
+                                                <el-input type="textarea" :autosize="{ minRows: 2, maxRows: 6 }"  v-model="state.tableData.二十四小时饮食回顾记录.午加餐" placeholder="" />
                                             </el-form-item>
                                         </td>
                                         <td>
                                             <el-form-item>
-                                                <el-input type="textarea" v-model="state.tableData.二十四小时饮食回顾记录.晚餐" placeholder="" />
+                                                <el-input type="textarea" :autosize="{ minRows: 2, maxRows: 6 }"  v-model="state.tableData.二十四小时饮食回顾记录.晚餐" placeholder="" />
                                             </el-form-item>
                                         </td>
                                         <td>
                                             <el-form-item>
-                                                <el-input type="textarea" v-model="state.tableData.二十四小时饮食回顾记录.晚加餐" placeholder="" />
+                                                <el-input type="textarea" :autosize="{ minRows: 2, maxRows: 6 }"  v-model="state.tableData.二十四小时饮食回顾记录.晚加餐" placeholder="" />
                                             </el-form-item>
                                         </td>
                                     </tr> 
@@ -741,7 +743,14 @@
                                                         v-model="state.tableData.饮酒习惯.type">
                                                         <el-radio value="是">是 
                                                             <span>
-                                                                <input style="width: 50px;" v-model="state.tableData.饮酒习惯.食用频次1"/> 根/天
+                                                                酒类
+                                                            </span>
+                                                            <span>
+                                                                <input style="width: 200px;" v-model="state.tableData.饮酒习惯.备注"/> 
+                                                            </span>
+                                                            食用频次:
+                                                            <span>
+                                                                <input style="width: 50px;" v-model="state.tableData.饮酒习惯.食用频次1"/> ml/天
                                                             </span>
                                                             <span>
                                                                 <input style="width: 50px;" v-model="state.tableData.饮酒习惯.食用频次2"/> 次/周
@@ -750,12 +759,7 @@
                                                         <el-radio value="否">否
                                                         </el-radio>
                                                     </el-radio-group>
-                                                    <span>
-                                                        酒类
-                                                    </span>
-                                                    <span>
-                                                        <input style="width: 200px;" v-model="state.tableData.饮酒习惯.备注"/> 
-                                                    </span>
+                                                    
                                             </el-form-item>   
                                         </td>
                                     </tr>
@@ -902,14 +906,14 @@
                     <el-button type="primary" @click="onSubmit">
                         保存
                     </el-button>
-                    <el-button v-if="state.viewInfo.id" type="primary" v-print="'#printFrom1'">
+                    <el-button v-if="state.viewInfo.id" type="primary" @click="onPrint">
                         <el-icon><Printer /></el-icon>
                         打印
                     </el-button>
-                    <el-button type="primary" v-if="state.viewInfo.id" @click="generatePDF">
+                    <!-- <el-button type="primary" v-if="state.viewInfo.id" @click="generatePDF">
                         <el-icon><Position /></el-icon>
                         导出
-                    </el-button>
+                    </el-button> -->
                     
                 </div>
             </template>
@@ -920,27 +924,30 @@
 
 </template>
 
-<script setup lang="ts" name="visualizingLinkDemo2">
+<script setup lang="ts" >
 import html2pdf from 'html2pdf.js';
+import printJs from 'print-js';
 import { reactive, onMounted, onUnmounted, ref } from 'vue';
 import { formatDate } from '/@/utils/formatTime';
 import { NextLoading } from '/@/utils/loading';
 import { useUserInfo } from '/@/stores/userInfo';
 import { usePatientsInfo } from '/@/stores/patientsInfo';
 const storesPat = usePatientsInfo();
-import {Add,update,deleteId,tiaochabiaoInfo} from '/@/api/tiaochabiao/index'
+import {Add,update,list,tiaochabiaoInfo} from '/@/api/tiaochabiao/index'
 import { storeToRefs } from 'pinia';
 import { useRoute,useRouter } from 'vue-router';
-import { ElMessage } from 'element-plus';
+import { ElLoading, ElMessage } from 'element-plus';
 const stores = useUserInfo();
 const { patientsInfo } = storeToRefs(storesPat);
 const { userInfos } = storeToRefs(stores);
 const router = useRouter()
 const emit = defineEmits([ "shuaxin" ]);
+// 定义变量内容
+const printRef = ref();
 const state = reactive({
     dialogTableVisible:false,
     tableData: {
-        表名: '营养膳食生活调查表',
+        表名: '膳食生活调查表',
         初次调查日期:"",
         填表日期: '',
         更新日期: '',
@@ -964,24 +971,24 @@
             备注: '',
         },
         常吃的主食: {
-            type: '', //只能选择独居或者家庭
+            type: [], //只能选择独居或者家庭
             食用份量: '',
             食用频次: '',
         },
         常吃的蔬菜: {
-            type: '',
+            type: [],
             食用份量: '',
             食用频次: '',
         },
         常吃的肉类: {
-            type: '',
+            type: [],
             食用份量: '',
             食用频次: ''
         },
         常吃的水果: {
             食用份量: '',
             食用频次: '',
-            input3: ''
+            input: ''
         },
         
         常吃的大豆及其制品是: {
@@ -1124,7 +1131,7 @@
         surveryTime: formatDate(new Date(), 'YYYY-mm-dd HH:MM:SS'),
         surveryPerson: userInfos.value.code,
         surveryJsonBody: '',
-        suveryFormName:'营养膳食生活调查表',
+        suveryFormName:'膳食生活调查表',
         surveryFormType:0,
         updateTime: ''
     }
@@ -1136,10 +1143,16 @@
 }
 // 打印
 const onPrint=()=>{
-    
+    printJs({
+		printable: printRef.value,
+		type: 'html',
+		css: ['@/assets/css/printcss.css','//at.alicdn.com/t/c/font_2298093_rnp72ifj3ba.css', '//unpkg.com/element-plus/dist/index.css'],
+		scanStyles: false,
+		style: `@media print{}}`,
+	});
 }
 const generatePDF=()=> {
-      const element = document.getElementById('printFrom1');
+      const element = document.getElementById('printMe');
       const opt = {
         margin: 10,
         filename: `${state.tableData.表名}.pdf`,
@@ -1162,7 +1175,7 @@
     surveryTime: formatDate(new Date(), 'YYYY-mm-dd HH:MM:SS'),
     surveryPerson: userInfos.value.code,
     surveryJsonBody: JSON.stringify(state.tableData),
-    suveryFormName:'营养膳食生活调查表',
+    suveryFormName:'膳食生活调查表',
     updateTime: formatDate(new Date(), 'YYYY-mm-dd HH:MM:SS')
   }
   console.log(info)
@@ -1174,6 +1187,7 @@
     })
   }else if(info.id>0){
     info.surveryTime=state.viewInfo.surveryTime
+    console.log()
     update(info).then(re=>{
         console.log(re.data)
         state.dialogTableVisible=false
@@ -1184,7 +1198,7 @@
 }
 const getPageInfo=()=>{
     state.tableData={
-        表名: '营养膳食生活调查表',
+        表名: '膳食生活调查表',
         初次调查日期: formatDate(new Date(),'YYYY-mm-dd'),
         填表日期: '',
         更新日期: formatDate(new Date(),'YYYY-mm-dd'),
@@ -1208,24 +1222,24 @@
             备注: '',
         },
         常吃的主食: {
-            type: '', //只能选择独居或者家庭
+            type: [], //只能选择独居或者家庭
             食用份量: '',
             食用频次: '',
         },
         常吃的蔬菜: {
-            type: '',
+            type: [],
             食用份量: '',
             食用频次: '',
         },
         常吃的肉类: {
-            type: '',
+            type: [],
             食用份量: '',
             食用频次: ''
         },
         常吃的水果: {
             食用份量: '',
             食用频次: '',
-            input3: ''
+            input: ''
         },
         常吃的大豆及其制品是: {
             type: '',
@@ -1366,7 +1380,7 @@
         surveryTime: formatDate(new Date(), 'YYYY-mm-dd HH:MM:SS'),
         surveryPerson: userInfos.value.code,
         surveryJsonBody: '',
-        suveryFormName:'营养膳食生活调查表',
+        suveryFormName:'膳食生活调查表',
         surveryFormType:0,
         updateTime: ''
     }
@@ -1379,14 +1393,44 @@
 
 }
 // 打开查看或者编辑明细
-const openShow = (type: string,mode:tiaochabiaoInfo) => {
+const openShow = async (type: string,mode:tiaochabiaoInfo) => {
     console.log(type)
     if(type==='add'){
-        getPageInfo()
-        state.dialogTableVisible = true
+        const pasm={
+            page: 0,
+            size: 1,
+            wherecondition:`survery_form_type=0 and patient_code='${patientsInfo.value.code}' and  suvery_form_name='膳食生活调查表'`,
+            ordercondition: 'survery_time desc'
+        }
+        const re= await list(pasm);
+        console.log('店家--------',re.data)
+        if(re.data.list.length){
+            const model=re.data.list[0]
+            state.tableData=JSON.parse(model.surveryJsonBody)
+    
+            state.dialogTableVisible = true
+            state.viewInfo={
+                id: 0,
+                code: '',
+                clientCode: userInfos.value.clientCode,
+                patientCode: patientsInfo.value.code,
+                surveryTime: formatDate(new Date(), 'YYYY-mm-dd HH:MM:SS'),
+                surveryPerson: userInfos.value.code,
+                surveryJsonBody: '',
+                suveryFormName:'膳食生活调查表',
+                surveryFormType:0,
+                updateTime: ''
+            }
+
+        }else{
+            getPageInfo()
+            state.dialogTableVisible = true
+        }
+       
     }
     else if(type==='update'){
         console.log(mode)
+        console.log(JSON.parse(mode.surveryJsonBody))
         state.viewInfo=mode
         state.tableData=JSON.parse(mode.surveryJsonBody)
         state.tableData.初次调查日期=mode.surveryTime
@@ -1404,7 +1448,6 @@
 
 
 <style scoped lang="scss">
-
 .gridtable {
     font-family: verdana, arial, sans-serif;
     font-size: 11px;

--
Gitblit v1.8.0