فهرست منبع

档案上传界面修改

unknown 12 ساعت پیش
والد
کامیت
cdf9001477

+ 2 - 2
src/components/UploadFile/src/TableUpload.vue

@@ -82,7 +82,7 @@ const props = defineProps({
   },
   fileSize: {
     type: Number,
-    default: 500
+    default: 50
   },
   accept: {
     type: String,
@@ -94,7 +94,7 @@ const props = defineProps({
   },
   limit: {
     type: Number,
-    default: 99
+    default: 30
   }
 })
 

+ 101 - 1
src/views/elderly/apply/nine-precautions/anti-entertainment/AddForm.vue

@@ -244,6 +244,7 @@ import { computed, ref, reactive } from 'vue'
 import dayjs from 'dayjs'
 import {
   entertainmentCreate, entertainmentGetById, entertainmentUpdate,
+  fallDownPage, wanderAwayPage, ngasrPage,
 } from "@/api/social-work";
 
 const message = useMessage()
@@ -265,13 +266,112 @@ let dataForm = ref({
   tenantId: undefined
 })
 
-const elderUp = (e: any) => {
+const elderUp = async (e: any) => {
   console.log(e)
   dataForm.value.elderName = e.elderName
   dataForm.value.elderId = e.id
   dataForm.value.elderSex = e.elderSex === 1 ? '男' : '女'
   dataForm.value.bedName = e.bedName || ''
   dataForm.value.elderAge = e.elderAge
+
+  // 新增模式下,自动查询长者的跌倒/走失/他伤自伤风险评估,并自动选中对应值
+  if (!isDetail.value && e.id) {
+    await loadElderRiskData(e.id)
+  }
+}
+
+// 从最新一条评估记录中解析 riskLevel
+const parseRiskLevel = (record: any): string => {
+  if (!record) return ''
+  // 优先取顶层 riskLevel
+  if (record.riskLevel) return record.riskLevel
+  // 其次尝试从 assessData 中解析
+  if (record.assessData) {
+    try {
+      const assessData = JSON.parse(record.assessData)
+      if (assessData.riskLevel) return assessData.riskLevel
+    } catch (err) {
+      // ignore
+    }
+  }
+  return ''
+}
+
+// 根据评估日期或创建时间获取最新一条记录
+const getLatestRecord = (list: any[]): any => {
+  if (!list || list.length === 0) return null
+  const sorted = [...list].sort((a, b) => {
+    const dateA = a.assessDate || a.createdAt || ''
+    const dateB = b.assessDate || b.createdAt || ''
+    return new Date(dateB).getTime() - new Date(dateA).getTime()
+  })
+  return sorted[0]
+}
+
+// 加载长者风险数据:跌倒风险、走失风险、他伤自伤风险
+const loadElderRiskData = async (elderId: string) => {
+  try {
+    const params = { pageNo: 1, pageSize: 100, elderId: elderId }
+
+    // 1. 查询跌倒风险评估
+    try {
+      const res = await fallDownPage(params)
+      if (res && res.list && res.list.length > 0) {
+        const latest = getLatestRecord(res.list)
+        const riskLevel = parseRiskLevel(latest)
+        if (riskLevel === 'high') {
+          form.assessment.scores[1] = 8
+        } else if (riskLevel === 'medium') {
+          form.assessment.scores[1] = 3
+        } else {
+          form.assessment.scores[1] = 0
+        }
+      }
+    } catch (err) {
+      console.error('获取跌倒风险评估失败', err)
+    }
+
+    // 2. 查询走失风险评估
+    try {
+      const res = await wanderAwayPage(params)
+      if (res && res.list && res.list.length > 0) {
+        const latest = getLatestRecord(res.list)
+        const riskLevel = parseRiskLevel(latest)
+        if (riskLevel === 'high') {
+          form.assessment.scores[2] = 8
+        } else if (riskLevel === 'medium') {
+          form.assessment.scores[2] = 3
+        } else {
+          form.assessment.scores[2] = 0
+        }
+      }
+    } catch (err) {
+      console.error('获取走失风险评估失败', err)
+    }
+
+    // 3. 查询他伤自伤风险评估(NGASR)
+    try {
+      const res = await ngasrPage(params)
+      if (res && res.list && res.list.length > 0) {
+        const latest = getLatestRecord(res.list)
+        const riskLevel = parseRiskLevel(latest)
+        if (riskLevel === 'high') {
+          form.assessment.scores[4] = 5
+        } else if (riskLevel === 'medium') {
+          form.assessment.scores[4] = 1
+        } else {
+          form.assessment.scores[4] = 0
+        }
+      }
+    } catch (err) {
+      console.error('获取他伤自伤风险评估失败', err)
+    }
+
+    // 重新计算总分和风险等级
+    calculateTotal()
+  } catch (e) {
+    console.error('获取风险数据失败', e)
+  }
 }
 
 // 表单数据

+ 1 - 1
src/views/elderly/elder/elder-file/Eight.vue

@@ -1,7 +1,7 @@
 <template>
   <el-row :gutter="20">
     <el-col :span="24">
-      <el-form-item label="上传附件">
+      <el-form-item label="">
         <TableUpload v-model="mergedFiles" is-detail />
       </el-form-item>
     </el-col>