From 05c827fea632f004821cc746ba73880769fab7cd Mon Sep 17 00:00:00 2001
From: chenyc <501753378@qq.com>
Date: 星期一, 14 七月 2025 10:06:43 +0800
Subject: [PATCH] gx1868 日期选择和排班患者查询条件,默认显示当天的已排班患者
---
src/views/home/components/suifangjilu/index.vue | 559 ++++++++++++++++++++++++++-----------------------------
1 files changed, 263 insertions(+), 296 deletions(-)
diff --git a/src/views/home/components/suifangjilu/index.vue b/src/views/home/components/suifangjilu/index.vue
index a3649ef..7625c7f 100644
--- a/src/views/home/components/suifangjilu/index.vue
+++ b/src/views/home/components/suifangjilu/index.vue
@@ -1,330 +1,297 @@
<template>
- <div>
- <el-row>
- <el-col :xs="24" :sm="24" :md="24" :lg="12" :xl="12">
- <div class="tableDiv">
- <table>
- <tr>
- <th colspan="7" style="text-align: left">营养服务管理记录</th>
- </tr>
- <tr>
- <td rowspan="3">基本信息</td>
- <td>患者姓名</td>
- <td></td>
- <td>性别</td>
- <td></td>
- <td>年龄</td>
- <td></td>
- </tr>
- <tr>
-
-
- <td>身高(m)</td>
- <td></td>
- <td>病史</td>
- <td></td>
- <td>听力/视力障碍</td>
- <td></td>
- </tr>
- <tr>
-
- <td>透析频次</td>
- <td></td>
- <td>透析时长</td>
- <td></td>
- <td>透龄</td>
- <td></td>
- </tr>
- <tr>
- <td rowspan="2">其他</td>
- <td>口腔功能</td>
- <td></td>
- <td>手机使用度</td>
- <td></td>
- <td>营养服务类别</td>
- <td></td>
- </tr>
- <tr>
- <td>知识接受度</td>
- <td></td>
- <td>临床依从性</td>
- <td></td>
- <td>营养服务认可度</td>
- <td></td>
- </tr>
- <tr>
- <td>项目</td>
- <td>序号</td>
- <td>项目内容</td>
- <td>时间</td>
- <td>详情</td>
- <td>备注</td>
- <td>记录者</td>
- </tr>
- <tr>
- <td rowspan="4">食物过敏史及
- <br/>胃肠功能评估</td>
- <td rowspan="2">1</td>
- <td rowspan="2">食物过敏源</td>
- <td></td>
- <td></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></td>
- <td></td>
- <td></td>
- </tr>
- <tr>
- <td></td>
- <td></td>
- <td></td>
- <td></td>
- </tr>
- <!-- 饮食管理 -->
- <tr>
- <td rowspan="6">饮食管理</td>
- <td rowspan="2">1</td>
- <td rowspan="2">膳食调查</td>
- <td></td>
- <td></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></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></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></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></td>
- <td></td>
- <td></td>
- </tr>
- <tr>
- <td></td>
- <td></td>
- <td></td>
- <td></td>
- </tr>
- <!-- 用药管理 -->
- <tr>
- <td rowspan="6">用药管理</td>
- <td rowspan="2">1</td>
- <td rowspan="2">用药调查</td>
- <td></td>
- <td></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></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></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></td>
- <td></td>
- <td></td>
- </tr>
- <tr>
- <td></td>
- <td></td>
- <td></td>
- <td></td>
- </tr>
-
- </table>
- </div>
- </el-col>
- <el-col :xs="24" :sm="24" :md="24" :lg="12" :xl="12">
- <div class="tableDiv">
- <table>
- <tr>
- <td rowspan="2">随访</td>
- <td rowspan="2">1</td>
- <td rowspan="2">随访情况</td>
- <td></td>
- <td></td>
- <td></td>
- <td></td>
- </tr>
- <tr>
- <td></td>
- <td></td>
- <td></td>
- <td></td>
- </tr>
- </table>
- </div>
- </el-col>
+ <div class="dietarySurvey-home" >
+ <el-row v-if="patientsInfo.id" style="padding-left: 10px;">
+ <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-item>
+ <el-button type="primary" plain @click="addItem">添加</el-button>
+ </el-form-item>
+ </el-form>
</el-row>
+ <div v-if="patientsInfo.id" class="divcont">
+ <el-table size="default" :data="state.tableData" stripe style="width: 100%" :height="tableHe">
+ <el-table-column fixed label="NO" type="index" widtd="80" >
+ <template #header>
+ <el-icon @click="onSubmit"><RefreshRight /></el-icon>
+ </template>
+
+ </el-table-column>
+ <el-table-column prop="surveryTime" label="填表时间" show-overflow-tooltip >
+ <template #default="scope">
+ {{scope.row.updateTime?.substring(0,11)}}
+ </template>
+ </el-table-column>
+ <el-table-column label="干体重" show-overflow-tooltip >
+ <template #default="scope">
+ {{scope.row.mode.干体重}}
+ </template>
+ </el-table-column>
+ <el-table-column label="脱水量" show-overflow-tooltip >
+ <template #default="scope">
+ {{scope.row.mode.脱水量}}
+ </template>
+ </el-table-column>
+ <el-table-column label="指导建议" show-overflow-tooltip >
+ <template #default="scope">
+ {{scope.row.mode.指导建议}}
+ </template>
+ </el-table-column>
+ <el-table-column label="执行反馈" show-overflow-tooltip >
+ <template #default="scope">
+ {{scope.row.mode.执行反馈}}
+ </template>
+ </el-table-column>
+ <el-table-column prop="surveryPersonName" label="填表人" show-overflow-tooltip />
+ <!-- <el-table-column prop="updateTime" label="更新时间" show-overflow-tooltip /> -->
+ <el-table-column label="操作" >
+ <template #default="scope">
+ <el-button size="small" @click="handleEdit(scope.$index, scope.row)">
+ 编辑
+ </el-button>
+ <el-button
+ size="small"
+ type="danger"
+ @click="handleDelete(scope.$index, scope.row)"
+ >
+ 删除
+ </el-button>
+ </template>
+ </el-table-column>
+ </el-table>
+ <el-pagination
+ v-model:current-page="state.page"
+ v-model:page-size="state.size"
+ :page-sizes="[10, 20, 30, 40]"
+ layout="total, sizes, prev, pager, next, jumper"
+ :total="state.total"
+ @size-change="handleSizeChange"
+ @current-change="handleCurrentChange"
+ />
+ </div>
+ <el-empty v-if="!patientsInfo.id" description="无数据,请先选择患者"></el-empty>
+ <editDietary ref="editDietaryRef" @shuaxin="onSubmit"></editDietary>
</div>
-
</template>
<script setup lang="ts">
import { storeToRefs } from 'pinia';
import { usePatientsInfo } from '/@/stores/patientsInfo';
-import { computed, reactive } from 'vue';
+import {list,tiaochabiaoInfo,deleteId} from '/@/api/tiaochabiao/index'
+import { computed, reactive, ref } from 'vue';
+import { useRoute,useRouter } from 'vue-router';
+import { ElLoading, ElMessage, ElMessageBox } from 'element-plus';
+import editDietary from './editDietary.vue'
const storesPat = usePatientsInfo();
const { patientsInfo } = storeToRefs(storesPat);
const props = defineProps(['tableHeight'])
+const editDietaryRef=ref()
+const router = useRouter()
+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 state = reactive({
tableData: [],
+ page:1,
+ size:10,
+ total:0,
loading: false,
+ formInline:{
+ user: '',
+ formTableName:'随访记录',
+ date: [],
+ },
+ dialogTableVisible:false
})
const tableHe = computed(() => {
- return props.tableHeight - 130
+ return (props.tableHeight-200)+'px'
})
+const handleSizeChange = (val: number) => {
+ console.log(`${val} items per page`)
+ state.size=val
+ onSubmit()
+}
+const handleCurrentChange = (val: number) => {
+ console.log(`current page: ${val}`)
+ state.page=val
+ onSubmit()
+}
+
+const onSubmit=()=>{
+ console.log(state.formInline)
+ const pasm={
+ page: state.page,
+ size: state.size,
+ wherecondition:`survery_form_type=0 and patient_code='${patientsInfo.value.code}'`,
+ ordercondition: 'survery_time desc'
+ }
+ if(state.formInline?.date?.length===2){
+ pasm.wherecondition+=` and survery_time BETWEEN '${state.formInline.date[0]} 00:00:00' AND '${state.formInline.date[1]} 23:59:59'`
+ }
+ if(state.formInline?.formTableName){
+ pasm.wherecondition+=`and suvery_form_name='${state.formInline.formTableName}'`
+ }
+ const loading = ElLoading.service({
+ lock: true,
+ text: 'Loading',
+ background: 'rgba(0, 0, 0, 0.7)',
+ })
+ list(pasm).then(re=>{
+ state.tableData=re.data.list.map((v: any) => {
+ v.mode=JSON.parse(v.surveryJsonBody)
+ return v;
+ })
+ state.total=re.data.total
+ }).finally(()=>{
+ loading.close()
+ })
+}
+const addItem=()=>{
+
+ editDietaryRef.value.openShow('add')
+ // router.push({path:'/tiaochabiao1',query:{type:'add',id:0}})
+}
// 第一步:定义子组件里面的方法
const getData = (str: string) => {
- console.log("子组件获取显示数据!" + str);
- console.log(props.tableHeight)
- var pam = {
- patientCode: patientsInfo.value.code,
+ const pasm = {
page: 1,
- size: 100,
- orderType: 1,
- orderIsUse: 2,
- desc: 1,
- orderName: '',
+ size: 10,
+ wherecondition:`survery_form_type=0 and patient_code='${patientsInfo.value.code}'`,
+ ordercondition:'survery_time DESC'
}
+ if(state.formInline?.date?.length===2){
+ pasm.wherecondition+=`and survery_time BETWEEN '${state.formInline.date[0]} 00:00:00' AND '${state.formInline.date[1]} 23:59:59'`
+ }
+ if(state.formInline.formTableName){
+ pasm.wherecondition+=`and suvery_form_name='${state.formInline.formTableName}'`
+ }
+ const loading = ElLoading.service({
+ lock: true,
+ text: 'Loading',
+ background: 'rgba(0, 0, 0, 0.7)',
+ })
+ list(pasm).then(re=>{
+ console.log(re)
+ state.tableData=re.data.list.map((v: any) => {
+ v.mode=JSON.parse(v.surveryJsonBody)
+ return v;
+ })
+ state.total=re.data.total
+ }).finally(()=>{
+ loading.close()
+ })
+
state.loading = true
}
// 第二步:暴露方法
defineExpose({ getData })
+/**
+ * 编辑
+ */
+const handleEdit = (index: number, row: any) => {
+ console.log(index, row,state.formInline.formTableName)
+ editDietaryRef.value.openShow('update',row)
+}
+const handleDelete = (index: number, row: any) => {
+ console.log(index, row)
+ ElMessageBox.confirm(
+ '你确定要删除该条记录?',
+ 'Warning',
+ {
+ confirmButtonText: '确定',
+ cancelButtonText: '取消',
+ type: 'warning',
+ }
+ )
+ .then(() => {
+ deleteId(`id=${row.id}`).then(re=>{
+ ElMessage.success('删除成功')
+ onSubmit()
+ }).catch(e=>{
+ ElMessage.error('删除失败!')
+ })
+ })
+ .catch(() => {
+ ElMessage({
+ type: 'info',
+ message: '取消操作',
+ })
+ })
+
+}
</script>
<style lang="scss">
-.tableDiv {
- table {
- width: 100%;
- border-collapse: collapse;
- }
- th,
- td {
- border: 1px solid #ddd;
- padding: 8px;
- text-align: center;
- }
- th {
- background-color: #409eff;
- font-weight: bold;
- color: #ffffff;
- }
- tr:nth-child(even) {
- background-color: #f2f2f2;
- }
- .note {
- color: #409eff;
- font-size: smaller;
- }
- .fontred {
- color: red;
- font-size: large;
- }
+ .gridtable {font-family: verdana,arial,sans-serif;font-size:11px;color:#333333;border-width: 1px;border-color: #666666;border-collapse: collapse;width: 100%;}
+
+ .gridtable th {border-width: 1px;padding: 8px;border-style: solid;border-color: #666666;background-color: #dedede;}
+
+ .gridtable td {border-width: 1px;padding: 8px;border-style: solid;border-color: #666666;background-color: #ffffff;min-width: 100px;}
+ .input-underline {
+ border: none; /* 移除所有边框 */
+ border-bottom: 1px solid #ccc; /* 显示下边框 */
+ outline: none; /* 移除点击输入框时浏览器可能会提供的默认轮廓线 */
+ text-align: center;
+ }
+ .width50{
+ width: 50px;
+ }
+.infinite-list {
+ overflow: auto;
+ padding: 0;
+ margin: 0;
+ list-style: none;
}
+.infinite-list .infinite-list-item {
+ display: flex;
+}
+
+.divcont{
+ overflow-y: auto; /* 垂直滚动条 */
+}
+
</style>
--
Gitblit v1.8.0