| src/api/Patients/index.ts | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/i18n/lang/zh-cn.ts | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/layout/navBars/topBar/breadcrumb.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/layout/navBars/topBar/user.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/router/route.ts | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/views/home/components/jilubiao/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/views/tongji/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/api/Patients/index.ts
@@ -93,3 +93,14 @@ data: params, }); } export function nutritionalSummary(params: object) { return request({ url: '/nutrition/food/survey/nutritionalSummary', method: 'post', headers: { 'Content-Type': 'application/x-www-form-urlencoded' }, params }); } src/i18n/lang/zh-cn.ts
@@ -71,6 +71,7 @@ visualizingLinkDemo1: '数据可视化演示1', visualizingLinkDemo2: '数据可视化演示2', personal: '个人中心', tongji:'患者健康服务统计', tools: '工具类集合', layoutLinkView: '外链', layoutIframeViewOne: '内嵌 iframe1', src/layout/navBars/topBar/breadcrumb.vue
@@ -26,6 +26,8 @@ <el-avatar shape="square" style="width: 48px; height: 35px;background-color: #ffffff;margin-right: 10px;margin-left: 10px;" fit="contain" :src="logo" /> <div class="titleHome">营养管理系统</div> </div> </template> @@ -109,7 +111,6 @@ // 路由更新时 onBeforeRouteUpdate((to) => { initRouteSplit(to.path); alert(to.path) }); </script> src/layout/navBars/topBar/user.vue
@@ -91,7 +91,7 @@ <el-dropdown-item command="/home">{{ $t('message.user.dropdown1') }}</el-dropdown-item> <!-- <el-dropdown-item command="wareHouse">{{ $t('message.user.dropdown6') }}</el-dropdown-item> --> <el-dropdown-item command="/personal">{{ $t('message.user.dropdown2') }}</el-dropdown-item> <!-- <el-dropdown-item command="/404">{{ $t('message.user.dropdown3') }}</el-dropdown-item> --> <el-dropdown-item command="/tongji">患者健康服务统计</el-dropdown-item> <!-- <el-dropdown-item command="/401">{{ $t('message.user.dropdown4') }}</el-dropdown-item> --> <el-dropdown-item divided command="logOut">{{ $t('message.user.dropdown5') }}</el-dropdown-item> </el-dropdown-menu> src/router/route.ts
@@ -1120,6 +1120,21 @@ }, }, { path: '/tongji', name: 'tongji', component: () => import('/@/views/tongji/index.vue'), meta: { title: 'message.router.tongji', isLink: '', isHide: false, isKeepAlive: true, isAffix: false, isIframe: false, roles: ['admin', 'common'], icon: 'iconfont icon-gerenzhongxin', }, }, { path: '/tools', name: 'tools', component: () => import('/@/views/tools/index.vue'), src/views/home/components/jilubiao/index.vue
@@ -392,330 +392,6 @@ <!-- </template> --> </template> <!-- 用药管理 --> <tr> <td rowspan="6">用药管理</td> <!-- <td rowspan="2">1</td> --> <td rowspan="2">用药调查</td> <td></td> <td colspan="2"></td> <td></td> <td></td> </tr> <tr> <td></td> <td></td> <td></td> <td></td> </tr> <tr> <!-- <td rowspan="2">2</td> --> <td rowspan="2">用药监督</td> <td></td> <td colspan="2"></td> <td></td> <td></td> </tr> <tr> <td></td> <td></td> <td></td> <td></td> </tr> <tr> <!-- <td rowspan="2">3</td> --> <td rowspan="2">指导建议</td> <td></td> <td colspan="2"></td> <td></td> <td></td> </tr> <tr> <td></td> <td></td> <td></td> <td></td> </tr> <!-- 随访 --> <tr> <td rowspan="2">随访</td> <!-- <td rowspan="2">1</td> --> <td rowspan="2">随访情况</td> <td></td> <td colspan="2"></td> <td></td> <td></td> </tr> <tr> <td></td> <td></td> <td></td> <td></td> </tr> <!-- 营养筛查评估 --> <tr> <td rowspan="4">营养筛查评估</td> <!-- <td rowspan="2">1</td> --> <td rowspan="2">营养筛查结果</td> <td></td> <td colspan="2"></td> <td></td> <td></td> </tr> <tr> <td></td> <td colspan="2"></td> <td></td> <td></td> </tr> <tr> <!-- <td rowspan="2">2</td> --> <td rowspan="2">营养评估结果</td> <td></td> <td colspan="2"></td> <td></td> <td></td> </tr> <tr> <td></td> <td colspan="2"></td> <td></td> <td></td> </tr> <!-- 数据评估 --> <tr> <td rowspan="12">数据评估</td> <!-- <td rowspan="2">1</td> --> <td rowspan="2">干体重</td> <td></td> <td colspan="2"></td> <td></td> <td></td> </tr> <tr> <td></td> <td colspan="2"></td> <td></td> <td></td> </tr> <tr> <!-- <td rowspan="2">2</td> --> <td rowspan="2">BMI </td> <td></td> <td colspan="2"></td> <td></td> <td></td> </tr> <tr> <td></td> <td></td> <td></td> <td></td> </tr> <tr> <!-- <td rowspan="2">3</td> --> <td rowspan="2">生化指标 </td> <td></td> <td colspan="2"></td> <td></td> <td></td> </tr> <tr> <td></td> <td></td> <td></td> <td></td> </tr> <tr> <!-- <td rowspan="2">4</td> --> <td rowspan="2">脱水量 </td> <td></td> <td colspan="2"></td> <td></td> <td></td> </tr> <tr> <td></td> <td colspan="2"></td> <td></td> <td></td> </tr> <tr> <!-- <td rowspan="2">5</td> --> <td rowspan="2">血压 </td> <td></td> <td colspan="2"></td> <td></td> <td></td> </tr> <tr> <td></td> <td colspan="2"></td> <td></td> <td></td> </tr> <tr> <!-- <td rowspan="2">6</td> --> <td rowspan="2">血糖 </td> <td></td> <td colspan="2"></td> <td></td> <td></td> </tr> <tr> <td></td> <td colspan="2"></td> <td></td> <td></td> </tr> <tr> <td rowspan="8">个性化管理</td> <!-- <td rowspan="2">1</td> --> <td rowspan="2">指导目标</td> <td></td> <td colspan="2"></td> <td></td> <td></td> </tr> <tr> <td></td> <td colspan="2"></td> <td></td> <td></td> </tr> <tr> <!-- <td rowspan="2">2</td> --> <td rowspan="2">指导建议</td> <td></td> <td colspan="2"></td> <td></td> <td></td> </tr> <tr> <td></td> <td colspan="2"></td> <td></td> <td></td> </tr> <tr> <!-- <td rowspan="2">3</td> --> <td rowspan="2">指导方案</td> <td></td> <td colspan="2"></td> <td></td> <td></td> </tr> <tr> <td></td> <td></td> <td></td> <td></td> </tr> <tr> <!-- <td rowspan="2">4</td> --> <td rowspan="2">随访情况</td> <td></td> <td colspan="2"></td> <td></td> <td></td> </tr> <tr> <td></td> <td colspan="2"></td> <td></td> <td></td> </tr> <!-- 效果反馈 --> <tr> <td rowspan="4">效果反馈</td> <!-- <td rowspan="2">1</td> --> <td rowspan="2">生化数据改善</td> <td></td> <td colspan="2"></td> <td></td> <td></td> </tr> <tr> <td></td> <td colspan="2"></td> <td></td> <td></td> </tr> <tr> <!-- <td rowspan="2">2</td> --> <td rowspan="2">主观感受改善</td> <td></td> <td colspan="2"></td> <td></td> <td></td> </tr> <tr> <td></td> <td colspan="2"></td> <td></td> <td></td> </tr> <!-- 产品管理 --> <tr> <td rowspan="4">产品管理</td> <!-- <td rowspan="2">1</td> --> <td rowspan="2">好馨意</td> <td></td> <td colspan="2"></td> <td></td> <td></td> </tr> <tr> <td></td> <td colspan="2"></td> <td></td> <td></td> </tr> <tr> <!-- <td rowspan="2">2</td> --> <td rowspan="2">其他品牌</td> <td></td> <td colspan="2"></td> <td></td> <td></td> </tr> <tr> <td></td> <td colspan="2"></td> <td></td> <td></td> </tr> <tr> <td rowspan="4">健康营养宣教</td> <!-- <td rowspan="2">1</td> --> <td rowspan="2">生化指标</td> <td></td> <td colspan="2"></td> <td></td> <td></td> </tr> <tr> <td></td> <td colspan="2"></td> <td></td> <td></td> </tr> <tr> <!-- <td rowspan="2">2</td> --> <td rowspan="2">营养饮食</td> <td></td> <td colspan="2"></td> <td></td> <td></td> </tr> <tr> <td></td> <td colspan="2"></td> <td></td> <td></td> </tr> </table> </el-scrollbar> @@ -799,6 +475,11 @@ try { state.loading = true state.from1Datas=[] state.from2Datas[0].list=[] state.from2Datas[1].list=[] state.from2Datas[2].list=[] state.from2Datas[3].list=[] state.from2Datas[4].list=[] const [res1,fromData1,fromData2,fromData3,fromData4] = await Promise.all([ getPatData(pam), getFrom1(), @@ -815,11 +496,7 @@ } if(fromData2.data.list.length>0){ state.from2Datas[0].list=[] state.from2Datas[1].list=[] state.from2Datas[2].list=[] state.from2Datas[3].list=[] state.from2Datas[4].list=[] fromData2.data.list.forEach((element:any)=>{ console.log('0000000000000',element) if(element.suveryFormName==='NRS-2002'){ src/views/tongji/index.vue
New file @@ -0,0 +1,211 @@ <template> <div class="personal layout-pd"> <el-form size="small" :inline="true" :model="state.formInline"> <el-form-item label="填报日期"> <el-date-picker v-model="state.formInline.date" type="daterange" unlink-panels range-separator="To" start-placeholder="开始" end-placeholder="结束" :shortcuts="shortcuts" format="YYYY/MM/DD" value-format="YYYY-MM-DD" /> </el-form-item> <el-form-item> <el-button type="primary" @click="onSubmit">查询</el-button> </el-form-item> </el-form> <div> <table id="tabledome" class="gridtable"> <tr> <th colspan="22">健康管理服务明显表</th> </tr> <tr> <td colspan="10">服务单位:{{clientName}}</td> <td colspan="22">服务期({{state.formInline.date[0]}}到{{state.formInline.date[2]}})</td> </tr> <tr> <th rowspan="2">序号</th> <th rowspan="2">姓名</th> <th rowspan="2">干体重</th> <th rowspan="2">最新生化检验数据更新</th> <th colspan="5">营养风险&营养评估</th> <th rowspan="2">膳食调查</th> <th colspan="8">个性化饮食指导</th> <th>团体宣教</th> <th rowspan="2">随访跟进</th> <th rowspan="2">营养咨询回复</th> <th rowspan="2">购买套餐</th> </tr> <tr> <th>NRS-2002</th> <th>SGA</th> <th>MIS</th> <th>GNRI</th> <th>PEW</th> <!-- <th>膳食调查</th> --> <!-- <th colspan="8">个性化饮食指导</th> --> <th>控磷</th> <th>控钾</th> <th>控水</th> <th>贫血</th> <th>蛋白质</th> <th>便秘</th> <th>腹泻</th> <th>体重管理</th> <th style="color: red;">专题勾选</th> </tr> <tbody> <tr v-for="(row,index) in state.tableData" :key="index"> <td>{{index+1}}</td> <td>{{row?.patientName}}</td> <td>{{row?.patientDryWeight}}</td> <td>{{row?.checkIsData?'✔':''}}</td> <td>{{row?.surveryTimeMap?.['NRS-2002']?.id?'✔':''}}</td> <td>{{row?.surveryTimeMap?.['SGA']?.id?'✔':''}}</td> <td>{{row?.surveryTimeMap?.['MIS']?.id?'✔':''}}</td> <td>{{row?.surveryTimeMap?.['GNRI']?.id?'✔':''}}</td> <td>{{row?.surveryTimeMap?.['PEW']?.id?'✔':''}}</td> <td>{{row?.surveryTimeMap?.['膳食生活调查表']?.id?'✔':''}}</td> <td>{{row?.surveryTimeMap?.['营养饮食指导方案']?.id?'✔':''}}</td> <td>{{row?.surveryTimeMap?.['营养饮食指导方案']?.id?'✔':''}}</td> <td>{{row?.surveryTimeMap?.['营养饮食指导方案']?.id?'✔':''}}</td> <td>{{row?.surveryTimeMap?.['营养饮食指导方案']?.id?'✔':''}}</td> <td>{{row?.surveryTimeMap?.['营养饮食指导方案']?.id?'✔':''}}</td> <td>{{row?.surveryTimeMap?.['营养饮食指导方案']?.id?'✔':''}}</td> <td>{{row?.surveryTimeMap?.['营养饮食指导方案']?.id?'✔':''}}</td> <td>{{row?.surveryTimeMap?.['营养饮食指导方案']?.id?'✔':''}}</td> <td></td> <td>{{row?.surveryTimeMap?.['随访记录']?.id?'✔':''}}</td> <td></td> <td></td> </tr> </tbody> </table> </div> </div> </template> <script setup lang="ts" name="personal"> import { reactive, computed, onMounted, ref } from 'vue'; import { formatAxis } from '/@/utils/formatTime'; import { storeToRefs } from 'pinia'; import { useUserInfo } from '/@/stores/userInfo'; import {nutritionalSummary} from '/@/api/Patients' import {editUserInfo} from '/@/api/login' import { ElLoading } from 'element-plus'; import {formatDate} from '/@/utils/formatTime' const stores = useUserInfo(); const { userInfos } = storeToRefs(stores); const shortcuts = [ { text: '上一周', value: () => { const end = new Date() const start = new Date() start.setTime(start.getTime() - 3600 * 1000 * 24 * 7) return [start, end] }, }, { text: '上一个月', value: () => { const end = new Date() const start = new Date() start.setTime(start.getTime() - 3600 * 1000 * 24 * 30) return [start, end] }, }, { text: '前三个月', value: () => { const end = new Date() const start = new Date() start.setTime(start.getTime() - 3600 * 1000 * 24 * 90) return [start, end] }, }, ] const clientName=computed(()=>{ return userInfos.value.clientName }) const tableHe = computed(() => { let height = document.documentElement.clientHeight; console.log('窗口高度') const navDom = document.querySelector('.layout-navbars-breadcrumb-index'); if (navDom) { height -= navDom.scrollHeight; } return height+'px' }) // 当前时间提示语 const end = new Date() const start = new Date() start.setTime(start.getTime() - 3600 * 1000 * 24 * 90) const state = reactive({ tableData: <any>[], page:1, size:10, total:0, loading: false, formInline:{ date: [formatDate(start,'YYYY-mm-dd'), formatDate(end,'YYYY-mm-dd')], }, dialogTableVisible:false }) const onSubmit=()=>{ const pasm={ startTime:state.formInline.date[0]+ ' 00:00:00', endTime:state.formInline.date[1]+ ' 23:59:59', clientCode:userInfos.value.clientCode, queryValue:'' } console.log(pasm) nutritionalSummary(pasm).then(re=>{ console.log(re.data) state.tableData=re.data }) } onMounted(()=>{ onSubmit() }) </script> <style scoped lang="scss"> .gridtable { width: 100%; font-family: verdana, arial, sans-serif; font-size: 11px; color: #333333; border-width: 1px; border-color: #666666; border-collapse: collapse; } .gridtable th { border-width: 1px; padding: 8px; border-style: solid; border-color: #666666; background-color: #a4b0e2; } .gridtable td { border-width: 1px; padding: 8px; border-style: solid; border-color: #666666; background-color: #ffffff; text-align: center; } </style>