| | |
| | | <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"> |
| | | <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="初次调查日期"> |
| | |
| | | 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 > |
| | | |
| | | |
| | | <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> |
| | | |
| | | |
| | | <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> |
| | |
| | | </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/> |
| | | |
| | | |
| | | <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> |
| | | |
| | | |
| | | <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 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> |
| | | |
| | | |
| | | <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> |
| | | |
| | | |
| | | <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> |
| | | <td colspan="5"> |
| | | <el-form-item> |
| | | <input style="width: 250px;" v-model="state.tableData.常吃的水果.食用份量"/> ; |
| | | <input style="width: 250px;" v-model="state.tableData.常吃的水果.input"/> ; |
| | | |
| | | |
| | | <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> |
| | | |
| | | |
| | | <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> |
| | |
| | | |
| | | <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> |
| | | |
| | | |
| | | <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 colspan="5"> |
| | | |
| | | <el-form-item> |
| | | <input style="width: 250px;" v-model="state.tableData.坚果摄入量.食用份量"/> ; |
| | | <input style="width: 250px;" v-model="state.tableData.坚果摄入量.type"/> ; |
| | | |
| | | |
| | | <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> |
| | | |
| | | |
| | | <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> |
| | | |
| | |
| | | |
| | | <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> |
| | | |
| | | |
| | | <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> |
| | |
| | | </el-form-item> |
| | | </td> |
| | | </tr> |
| | | <div class="page-break"></div> |
| | | <tr> |
| | | <td> |
| | | 12.零食及其他 |
| | |
| | | </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> |
| | |
| | | <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> |
| | |
| | | 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"/> 次/周 |
| | |
| | | <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> |
| | |
| | | <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> |
| | |
| | | |
| | | </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: { |
| | |
| | | 备注: '', |
| | | }, |
| | | 常吃的主食: { |
| | | type: '', //只能选择独居或者家庭 |
| | | type: [], //只能选择独居或者家庭 |
| | | 食用份量: '', |
| | | 食用频次: '', |
| | | }, |
| | | 常吃的蔬菜: { |
| | | type: '', |
| | | type: [], |
| | | 食用份量: '', |
| | | 食用频次: '', |
| | | }, |
| | | 常吃的肉类: { |
| | | type: '', |
| | | type: [], |
| | | 食用份量: '', |
| | | 食用频次: '' |
| | | }, |
| | | 常吃的水果: { |
| | | 食用份量: '', |
| | | 食用频次: '', |
| | | input3: '' |
| | | input: '' |
| | | }, |
| | | |
| | | 常吃的大豆及其制品是: { |
| | |
| | | } |
| | | // 打印 |
| | | 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`, |
| | |
| | | }) |
| | | }else if(info.id>0){ |
| | | info.surveryTime=state.viewInfo.surveryTime |
| | | console.log() |
| | | update(info).then(re=>{ |
| | | console.log(re.data) |
| | | state.dialogTableVisible=false |
| | |
| | | 备注: '', |
| | | }, |
| | | 常吃的主食: { |
| | | type: '', //只能选择独居或者家庭 |
| | | type: [], //只能选择独居或者家庭 |
| | | 食用份量: '', |
| | | 食用频次: '', |
| | | }, |
| | | 常吃的蔬菜: { |
| | | type: '', |
| | | type: [], |
| | | 食用份量: '', |
| | | 食用频次: '', |
| | | }, |
| | | 常吃的肉类: { |
| | | type: '', |
| | | type: [], |
| | | 食用份量: '', |
| | | 食用频次: '' |
| | | }, |
| | | 常吃的水果: { |
| | | 食用份量: '', |
| | | 食用频次: '', |
| | | input3: '' |
| | | input: '' |
| | | }, |
| | | 常吃的大豆及其制品是: { |
| | | type: '', |
| | |
| | | |
| | | } |
| | | // 打开查看或者编辑明细 |
| | | 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.tableData.常吃的主食.type=Array.isArray(state.tableData.常吃的主食.type)?state.tableData.常吃的主食.type:[] |
| | | state.tableData.常吃的蔬菜.type=Array.isArray(state.tableData.常吃的蔬菜.type)?state.tableData.常吃的蔬菜.type:[] |
| | | state.tableData.常吃的肉类.type=Array.isArray(state.tableData.常吃的肉类.type)?state.tableData.常吃的肉类.type:[] |
| | | // state.tableData.常吃的水果.type=Array.isArray(state.tableData.常吃的水果.type)?state.tableData.常吃的水果.type:[] |
| | | // state.tableData.常吃的水果.type=Array.isArray(state.tableData.常吃的水果.type)?state.tableData.常吃的水果.type:[] |
| | | |
| | | 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.常吃的主食.type=Array.isArray(state.tableData.常吃的主食.type)?state.tableData.常吃的主食.type:[] |
| | | state.tableData.常吃的蔬菜.type=Array.isArray(state.tableData.常吃的蔬菜.type)?state.tableData.常吃的蔬菜.type:[] |
| | | state.tableData.常吃的肉类.type=Array.isArray(state.tableData.常吃的肉类.type)?state.tableData.常吃的肉类.type:[] |
| | | state.tableData.初次调查日期=mode.surveryTime |
| | | state.tableData.更新日期=mode.updateTime |
| | | state.dialogTableVisible = true |
| | |
| | | |
| | | |
| | | <style scoped lang="scss"> |
| | | |
| | | .gridtable { |
| | | font-family: verdana, arial, sans-serif; |
| | | font-size: 11px; |