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