瀏覽代碼

对接7张评估表

unknown 2 月之前
父節點
當前提交
98b7b90dda

+ 8 - 14
src/api/elderly/assessment/psychological-social/index.ts

@@ -14,36 +14,30 @@ export interface PsychologicalSocialFormData {
 
 // 创建心理社交情况记录
 export const psychologicalSocialCreate = async (data: PsychologicalSocialFormData) => {
-  return await request.post({ url: '/elderly-psychological-social/create', data })
+  return await request.post({ url: '/elderly-assess-psychology-social/create', data })
 }
 
 // 更新心理社交情况记录
 export const psychologicalSocialUpdate = async (data: PsychologicalSocialFormData) => {
-  return await request.put({ url: '/elderly-psychological-social/update', data })
+  return await request.put({ url: '/elderly-assess-psychology-social/update', data })
 }
 
 // 根据ID获取心理社交情况记录
 export const psychologicalSocialGetById = async (id: number) => {
-  return await request.get({ url: '/elderly-psychological-social/get?id=' + id })
+  return await request.get({ url: '/elderly-assess-psychology-social/get?id=' + id })
 }
 
 // 获取长者的心理社交情况记录
 export const psychologicalSocialGetByElderId = async (elderId: number) => {
-  return await request.get({ url: '/elderly-psychological-social/getByElderId?elderId=' + elderId })
+  return await request.get({ url: '/elderly-assess-psychology-social/get?id=' + elderId })
 }
 
 // 分页查询心理社交情况记录
-export const psychologicalSocialPage = async (params: {
-  pageNo: number
-  pageSize: number
-  elderId?: number
-  assessor?: string
-  assessDate?: string
-}) => {
-  return await request.post({ url: '/elderly-psychological-social/page', data: params })
+export const psychologicalSocialPage = async (params:any ) => {
+  return await request.get({ url: '/elderly-assess-psychology-social/page', params })
 }
 
 // 删除心理社交情况记录
 export const psychologicalSocialDelete = async (id: number) => {
-  return await request.delete({ url: `/elderly-psychological-social/delete?id=${id}` })
-}
+  return await request.delete({ url: `/elderly-assess-psychology-social/delete?id=${id}` })
+}

+ 35 - 65
src/api/social-work/index.ts

@@ -97,22 +97,22 @@ export const floorActivityPhotoRecordUpdate = async (data) => {
 
 // 创建 MMSE 评估记录
 export const mmseCreate = async (data) => {
-  return await request.post({ url: '/elderly-mmse/create', data })
+  return await request.post({ url: '/elderly-assess-simple-mental-state/create', data })
 }
 
 // 更新 MMSE 评估记录
 export const mmseUpdate = async (data) => {
-  return await request.put({ url: '/elderly-mmse/update', data })
+  return await request.put({ url: '/elderly-assess-simple-mental-state/update', data })
 }
 
 // 获得 MMSE 评估记录分页
 export const mmseGetPage = async (params) => {
-  return await request.get({ url: '/elderly-mmse/page', params })
+  return await request.get({ url: '/elderly-assess-simple-mental-state/page', params })
 }
 
 // 获得 MMSE 评估记录
 export const mmseGetById = async (id) => {
-  return await request.get({ url: '/elderly-mmse/get?id=' + id })
+  return await request.get({ url: '/elderly-assess-simple-mental-state/get?id=' + id })
 }
 
 // 根据长者ID获得 MMSE 评估记录
@@ -122,7 +122,7 @@ export const mmseGetByElderId = async (elderId) => {
 
 // 删除 MMSE 评估记录
 export const mmseDelete = async (id) => {
-  return await request.delete({ url: `/elderly-mmse/delete?id=${id}` })
+  return await request.delete({ url: `/elderly-assess-simple-mental-state/delete?id=${id}` })
 }
 
 // 导出 MMSE 评估记录
@@ -146,17 +146,17 @@ export interface PerceptionFormData {
 
 // 创建感知觉与沟通评估记录
 export const perceptionCreate = async (data: PerceptionFormData) => {
-  return await request.post({ url: '/elderly-perception/create', data })
+  return await request.post({ url: '/elderly-assess-perception-communication/create', data })
 }
 
 // 更新感知觉与沟通评估记录
 export const perceptionUpdate = async (data: PerceptionFormData) => {
-  return await request.put({ url: '/elderly-perception/update', data })
+  return await request.put({ url: '/elderly-assess-perception-communication/update', data })
 }
 
 // 根据ID获取感知觉与沟通评估记录
 export const perceptionGetById = async (id: number) => {
-  return await request.get({ url: '/elderly-perception/get?id=' + id })
+  return await request.get({ url: '/elderly-assess-perception-communication/get?id=' + id })
 }
 
 // 获取长者的感知觉与沟通评估记录
@@ -165,19 +165,13 @@ export const perceptionGetByElderId = async (elderId: number) => {
 }
 
 // 分页查询感知觉与沟通评估记录
-export const perceptionPage = async (params: {
-  pageNo: number
-  pageSize: number
-  elderId?: number
-  assessor?: string
-  assessDate?: string
-}) => {
-  return await request.post({ url: '/elderly-perception/page', data: params })
+export const perceptionPage = async (params:any) => {
+  return await request.get({ url: '/elderly-assess-perception-communication/page', params })
 }
 
 // 删除感知觉与沟通评估记录
 export const perceptionDelete = async (id: number) => {
-  return await request.delete({ url: `/elderly-perception/delete?id=${id}` })
+  return await request.delete({ url: `/elderly-assess-perception-communication/delete?id=${id}` })
 }
 
 // 导出感知觉与沟通评估记录
@@ -201,17 +195,17 @@ export interface NGASRFormData {
 
 // 创建NGASR评估记录
 export const ngasrCreate = async (data: NGASRFormData) => {
-  return await request.post({ url: '/elderly-ngasr/create', data })
+  return await request.post({ url: '/elderly-assess-suicide-risk/create', data })
 }
 
 // 更新NGASR评估记录
 export const ngasrUpdate = async (data: NGASRFormData) => {
-  return await request.put({ url: '/elderly-ngasr/update', data })
+  return await request.put({ url: '/elderly-assess-suicide-risk/update', data })
 }
 
 // 根据ID获取NGASR评估记录
 export const ngasrGetById = async (id: number) => {
-  return await request.get({ url: '/elderly-ngasr/get?id=' + id })
+  return await request.get({ url: '/elderly-assess-suicide-risk/get?id=' + id })
 }
 
 // 获取长者的NGASR评估记录
@@ -220,19 +214,13 @@ export const ngasrGetByElderId = async (elderId: number) => {
 }
 
 // 分页查询NGASR评估记录
-export const ngasrPage = async (params: {
-  pageNo: number
-  pageSize: number
-  elderId?: number
-  assessor?: string
-  assessDate?: string
-}) => {
-  return await request.post({ url: '/elderly-ngasr/page', data: params })
+export const ngasrPage = async (params:any) => {
+  return await request.get({ url: '/elderly-assess-suicide-risk/page', params })
 }
 
 // 删除NGASR评估记录
 export const ngasrDelete = async (id: number) => {
-  return await request.delete({ url: `/elderly-ngasr/delete?id=${id}` })
+  return await request.delete({ url: `/elderly-assess-suicide-risk/delete?id=${id}` })
 }
 
 
@@ -253,17 +241,17 @@ export interface AttackRiskFormData {
 
 // 创建攻击风险因素评估记录
 export const attackRiskCreate = async (data: AttackRiskFormData) => {
-  return await request.post({ url: '/elderly-attack-risk/create', data })
+  return await request.post({ url: '/elderly-assess-attack-risk-factors/create', data })
 }
 
 // 更新攻击风险因素评估记录
 export const attackRiskUpdate = async (data: AttackRiskFormData) => {
-  return await request.put({ url: '/elderly-attack-risk/update', data })
+  return await request.put({ url: '/elderly-assess-attack-risk-factors/update', data })
 }
 
 // 根据ID获取攻击风险因素评估记录
 export const attackRiskGetById = async (id: number) => {
-  return await request.get({ url: '/elderly-attack-risk/get?id=' + id })
+  return await request.get({ url: '/elderly-assess-attack-risk-factors/get?id=' + id })
 }
 
 // 获取长者的攻击风险因素评估记录
@@ -272,19 +260,13 @@ export const attackRiskGetByElderId = async (elderId: number) => {
 }
 
 // 分页查询攻击风险因素评估记录
-export const attackRiskPage = async (params: {
-  pageNo: number
-  pageSize: number
-  elderId?: number
-  assessor?: string
-  assessDate?: string
-}) => {
-  return await request.post({ url: '/elderly-attack-risk/page', data: params })
+export const attackRiskPage = async (params:any) => {
+  return await request.get({ url: '/elderly-assess-attack-risk-factors/page', params })
 }
 
 // 删除攻击风险因素评估记录
 export const attackRiskDelete = async (id: number) => {
-  return await request.delete({ url: `/elderly-attack-risk/delete?id=${id}` })
+  return await request.delete({ url: `/elderly-assess-attack-risk-factors/delete?id=${id}` })
 }
 
 
@@ -306,17 +288,17 @@ export interface SDSFormData {
 
 // 创建抑郁自评量表记录
 export const sdsCreate = async (data: SDSFormData) => {
-  return await request.post({ url: '/elderly-sds/create', data })
+  return await request.post({ url: '/elderly-assess-depression/create', data })
 }
 
 // 更新抑郁自评量表记录
 export const sdsUpdate = async (data: SDSFormData) => {
-  return await request.put({ url: '/elderly-sds/update', data })
+  return await request.put({ url: '/elderly-assess-depression/update', data })
 }
 
 // 根据ID获取抑郁自评量表记录
 export const sdsGetById = async (id: number) => {
-  return await request.get({ url: '/elderly-sds/get?id=' + id })
+  return await request.get({ url: '/elderly-assess-depression/get?id=' + id })
 }
 
 // 获取长者的抑郁自评量表记录
@@ -325,19 +307,13 @@ export const sdsGetByElderId = async (elderId: number) => {
 }
 
 // 分页查询抑郁自评量表记录
-export const sdsPage = async (params: {
-  pageNo: number
-  pageSize: number
-  elderId?: number
-  assessor?: string
-  assessDate?: string
-}) => {
-  return await request.post({ url: '/elderly-sds/page', data: params })
+export const sdsPage = async (params: any) => {
+  return await request.get({ url: '/elderly-assess-depression/page',  params })
 }
 
 // 删除抑郁自评量表记录
 export const sdsDelete = async (id: number) => {
-  return await request.delete({ url: `/elderly-sds/delete?id=${id}` })
+  return await request.delete({ url: `/elderly-assess-depression/delete?id=${id}` })
 }
 
 
@@ -359,17 +335,17 @@ export interface SASFormData {
 
 // 创建焦虑自评量表记录
 export const sasCreate = async (data: SASFormData) => {
-  return await request.post({ url: '/elderly-sas/create', data })
+  return await request.post({ url: '/elderly-assess-anxiety/create', data })
 }
 
 // 更新焦虑自评量表记录
 export const sasUpdate = async (data: SASFormData) => {
-  return await request.put({ url: '/elderly-sas/update', data })
+  return await request.put({ url: '/elderly-assess-anxiety/update', data })
 }
 
 // 根据ID获取焦虑自评量表记录
 export const sasGetById = async (id: number) => {
-  return await request.get({ url: '/elderly-sas/get?id=' + id })
+  return await request.get({ url: '/elderly-assess-anxiety/get?id=' + id })
 }
 
 // 获取长者的焦虑自评量表记录
@@ -378,17 +354,11 @@ export const sasGetByElderId = async (elderId: number) => {
 }
 
 // 分页查询焦虑自评量表记录
-export const sasPage = async (params: {
-  pageNo: number
-  pageSize: number
-  elderId?: number
-  assessor?: string
-  assessDate?: string
-}) => {
-  return await request.post({ url: '/elderly-sas/page', data: params })
+export const sasPage = async (params: any) => {
+  return await request.get({ url: '/elderly-assess-anxiety/page', params })
 }
 
 // 删除焦虑自评量表记录
 export const sasDelete = async (id: number) => {
-  return await request.delete({ url: `/elderly-sas/delete?id=${id}` })
+  return await request.delete({ url: `/elderly-assess-anxiety/delete?id=${id}` })
 }

+ 14 - 32
src/views/social-worker/assessment/AttackRiskFactors/AddForm.vue

@@ -40,11 +40,11 @@
       <el-row :gutter="40">
         <el-col :xs="24" :sm="24" :md="24" :lg="12" :xl="12" class="row">
           <text>评估人</text>
-          <el-input v-model="form.assessor"  />
+          <el-input :disabled="isDetail" v-model="form.assessor"  />
         </el-col>
         <el-col :xs="24" :sm="24" :md="24" :lg="12" :xl="12" class="row">
           <text>评估日期</text>
-          <el-date-picker v-model="form.assessDate" type="date" style="width: 100%;"/>
+          <el-date-picker :disabled="isDetail" v-model="form.assessDate" type="date" style="width: 100%;"/>
 
         </el-col>
       </el-row>
@@ -207,26 +207,11 @@
 
     </div>
 
-    <div><div style="font-weight: bold">这是提交字段,后端可照此字段创建数据表</div>:
-      {
-      "contractNumber": "",
-      "elderName": "",
-      "bedName": "",
-      "checkInTime": "",
-      "elderId": "",
-      "tenantId": 211,
-      "assessmentData": "{\"assessor\":\"\",\"assessDate\":\"\",\"attackLevel\":0,\"riskLevel\":\"\",\"preventiveMeasures\":[],\"preventiveMeasuresOther\":\"\",\"familySignature\":\"\",\"familySignDate\":\"\"}",
-      "attackLevel": 0,
-      "riskLevel": "",
-      "assessor": "",
-      "assessDate": "",
-      "orgType": 1
-      }
-    </div>
+
 
     <template #footer>
       <el-button @click="handleClosed">关闭</el-button>
-      <el-button   type="success" @click="handleExport">打印</el-button>
+      <el-button  v-if="isDetail" type="success" @click="handleExport">打印</el-button>
       <el-button style="margin-left: 22px;margin-right: 30px" v-loading="formLoading" type="primary" v-show="!isDetail" @click="submitForm">确定</el-button>
     </template>
 
@@ -385,10 +370,7 @@ const open = async (tenantId, id?: any, detail: boolean = false) => {
     await loadAttackRiskData(id)
   } else {
     title.value = "新增-攻击风险因素评估"
-    // 如果选择了长者,尝试加载已有的评估数据
-    if (dataForm.value.elderId) {
-      await loadAttackRiskByElderId(dataForm.value.elderId)
-    }
+    
   }
 }
 
@@ -403,12 +385,12 @@ const loadAttackRiskData = async (id: number) => {
       dataForm.value.elderSex = res.elderSex || ''
       dataForm.value.bedName = res.bedName || ''
       dataForm.value.checkInTime = res.checkInTime || ''
-      dataForm.value.contractNumber = res.contractNumber || ''
+      dataForm.value.contractNumber = res.fileNumber || ''
       dataForm.value.elderAge = res.elderAge || ''
-
-      // 解析 assessmentData
-      if (res.assessmentData) {
-        const formData = JSON.parse(res.assessmentData)
+      await selectElderRef.value.upData(res.elderName, res.elderId)
+      // 解析 assessData
+      if (res.assessData) {
+        const formData = JSON.parse(res.assessData)
         deserializeFormData(formData)
       }
     }
@@ -421,8 +403,8 @@ const loadAttackRiskData = async (id: number) => {
 const loadAttackRiskByElderId = async (elderId: number) => {
   try {
     const res = await attackRiskGetByElderId(elderId)
-    if (res && res.assessmentData) {
-      const formData = JSON.parse(res.assessmentData)
+    if (res && res.assessData) {
+      const formData = JSON.parse(res.assessData)
       deserializeFormData(formData)
     }
   } catch (error) {
@@ -467,10 +449,10 @@ const submitForm = async () => {
   formLoading.value = true
   // 提交请求
   try {
-    const assessmentData = serializeFormData()
+    const assessData = serializeFormData()
     const tempParams = {
       ...dataForm.value,
-      assessmentData: JSON.stringify(assessmentData),
+      assessData: JSON.stringify(assessData),
       attackLevel: form.attackLevel,
       riskLevel: form.riskLevel,
       assessor: form.assessor,

+ 26 - 14
src/views/social-worker/assessment/AttackRiskFactors/index.vue

@@ -17,14 +17,21 @@
         />
       </el-form-item>
 
-
+      <el-form-item label="评估人">
+        <el-input
+          v-model="queryParams.assessor"
+          placeholder="长者姓名"
+          class="!w-240px"
+          clearable
+        />
+      </el-form-item>
 
       <el-form-item label="记录日期">
         <el-date-picker
           size="default"
           ref="selectRef"
           class="!w-240px"
-          v-model="queryParams.recordDate"
+          v-model="queryParams.assessDate"
           type="daterange"
           :clearable="true"
           :editable="false"
@@ -48,7 +55,7 @@
 
       <ButtonAdd @click="openForm(undefined)"  />
       <!--      <el-button @click="inputH" type="success"><Icon icon="fa:cloud-upload" :size="16" class="mr-1"/>导入</el-button>-->
-      <ButtonImport @click="handleImportCard"  />
+      <!--      <ButtonImport @click="handleImportCard"  />-->
 
 
     </div>
@@ -63,8 +70,8 @@
 
 
       <el-table-column prop="elderName" header-align="center" align="center" label="长者姓名" min-width="150" show-overflow-tooltip/>
-      <el-table-column prop="bedName" header-align="center" align="center" label="床位号" min-width="200" show-overflow-tooltip/>
-      <el-table-column prop="recordDate" header-align="center" align="center" label="记录日期" min-width="200" show-overflow-tooltip/>
+      <el-table-column prop="assessor" header-align="center" align="center" label="评估人" min-width="200" show-overflow-tooltip/>
+      <el-table-column prop="assessDate" header-align="center" align="center" label="记录日期" min-width="200" show-overflow-tooltip/>
 
       <el-table-column prop="creator" header-align="center" align="center" label="记录人" min-width="200" show-overflow-tooltip/>
 
@@ -146,6 +153,13 @@ import { useUserStore } from '@/store/modules/user'
 import {formatTimestamp, getCurrentMonthRange} from "@/utils/dateUtil";
 import Import from "@/components/ImportFile/index.vue";
 import {restraintCreatePage, restraintDelete} from "@/api/elderly/nursing/keep-fit";
+import {
+  attackRiskDelete, attackRiskPage,
+  ngasrDelete,
+  ngasrPage,
+  perceptionDelete,
+  perceptionPage
+} from "@/api/social-work";
 const message = useMessage() // 消息弹窗
 const { t } = useI18n() // 国际化
 const userStore = useUserStore()
@@ -173,15 +187,13 @@ let queryParams = reactive({
   pageNo: 1,
   pageSize: 10,
   elderName: '',
-  creator: '',
-  recordDate: getCurrentMonthRange(),
+  assessor: '',
+  assessDate: getCurrentMonthRange(),
   tenantIds: userStore.orgTenantId
 })
 const queryFormRef = ref() // 搜索的表单
 
-const inputH = () => {
-  importRef.value.open(queryParams.tenantIds[0])
-}
+
 // 打开导出弹窗
 const handleImportCard = async () => {
 
@@ -221,7 +233,7 @@ const getList = async () => {
   loading.value = true
   try {
     //let queryP = {...queryParams,discoveryTime:queryParams.discoveryTime?[queryParams.discoveryTime[0]+" 00:00:00",queryParams.discoveryTime[1]+" 23:59:59"]:null}
-    const data = await restraintCreatePage(queryParams)
+    const data = await attackRiskPage(queryParams)
     list.value = data.list
     total.value = data.total
   } finally {
@@ -241,9 +253,9 @@ const handleQuery = async () => {
 /** 重置按钮操作 */
 const resetQuery = () => {
   queryParams.elderName = ''
-  queryParams.creator = ''
+  queryParams.assessor = ''
   queryParams.tenantIds = userStore.orgTenantId
-  queryParams.recordDate= getCurrentMonthRange()
+  queryParams.assessDate= getCurrentMonthRange()
   queryFormRef.value.resetFields()
   handleQuery()
 }
@@ -279,7 +291,7 @@ const openClose = async (item) => {
     if (res == 'confirm') {
       // 发起
       try {
-        const res = await restraintDelete(item.id)
+        const res = await attackRiskDelete(item.id)
         if (res){
           message.success(t('common.updateSuccess'))
         }

+ 57 - 46
src/views/social-worker/assessment/MMSE/AddForm.vue

@@ -40,11 +40,11 @@
       <el-row :gutter="40">
         <el-col :xs="24" :sm="24" :md="24" :lg="12" :xl="12" class="row">
           <text>评估人</text>
-          <el-input v-model="form.assessor"  />
+          <el-input :disabled="isDetail" v-model="form.assessor"  />
         </el-col>
         <el-col :xs="24" :sm="24" :md="24" :lg="12" :xl="12" class="row">
           <text>评估日期</text>
-          <el-date-picker v-model="form.assessDate" type="date" style="width: 100%;"/>
+          <el-date-picker :disabled="isDetail" v-model="form.assessDate" type="date" style="width: 100%;"/>
 
         </el-col>
       </el-row>
@@ -71,35 +71,35 @@
               <div class="score-group">
                 <div class="score-row">
                   <span>今年是哪一年?</span>
-                  <el-radio-group v-model="form.orientation.year" size="small">
+                  <el-radio-group :disabled="isDetail" v-model="form.orientation.year" size="small">
                     <el-radio :value="1">正确(1分)</el-radio>
                     <el-radio :value="0">错误(0分)</el-radio>
                   </el-radio-group>
                 </div>
                 <div class="score-row">
                   <span>现在是什么季节?</span>
-                  <el-radio-group v-model="form.orientation.season" size="small">
+                  <el-radio-group  :disabled="isDetail" v-model="form.orientation.season" size="small">
                     <el-radio :value="1">正确(1分)</el-radio>
                     <el-radio :value="0">错误(0分)</el-radio>
                   </el-radio-group>
                 </div>
                 <div class="score-row">
                   <span>现在是几月份?</span>
-                  <el-radio-group v-model="form.orientation.month" size="small">
+                  <el-radio-group :disabled="isDetail" v-model="form.orientation.month" size="small">
                     <el-radio :value="1">正确(1分)</el-radio>
                     <el-radio :value="0">错误(0分)</el-radio>
                   </el-radio-group>
                 </div>
                 <div class="score-row">
                   <span>今天是几号?</span>
-                  <el-radio-group v-model="form.orientation.day" size="small">
+                  <el-radio-group :disabled="isDetail" v-model="form.orientation.day" size="small">
                     <el-radio :value="1">正确(1分)</el-radio>
                     <el-radio :value="0">错误(0分)</el-radio>
                   </el-radio-group>
                 </div>
                 <div class="score-row">
                   <span>今天是星期几?</span>
-                  <el-radio-group v-model="form.orientation.weekDay" size="small">
+                  <el-radio-group :disabled="isDetail" v-model="form.orientation.weekDay" size="small">
                     <el-radio :value="1">正确(1分)</el-radio>
                     <el-radio :value="0">错误(0分)</el-radio>
                   </el-radio-group>
@@ -113,35 +113,35 @@
               <div class="score-group">
                 <div class="score-row">
                   <span>你住在那个省?</span>
-                  <el-radio-group v-model="form.orientation.province" size="small">
+                  <el-radio-group :disabled="isDetail" v-model="form.orientation.province" size="small">
                     <el-radio :value="1">正确(1分)</el-radio>
                     <el-radio :value="0">错误(0分)</el-radio>
                   </el-radio-group>
                 </div>
                 <div class="score-row">
                   <span>你住在那个县(区)?</span>
-                  <el-radio-group v-model="form.orientation.county" size="small">
+                  <el-radio-group :disabled="isDetail" v-model="form.orientation.county" size="small">
                     <el-radio :value="1">正确(1分)</el-radio>
                     <el-radio :value="0">错误(0分)</el-radio>
                   </el-radio-group>
                 </div>
                 <div class="score-row">
                   <span>你住在那个乡(街道)?</span>
-                  <el-radio-group v-model="form.orientation.town" size="small">
+                  <el-radio-group :disabled="isDetail" v-model="form.orientation.town" size="small">
                     <el-radio :value="1">正确(1分)</el-radio>
                     <el-radio :value="0">错误(0分)</el-radio>
                   </el-radio-group>
                 </div>
                 <div class="score-row">
                   <span>咱们现在在哪个养老院?</span>
-                  <el-radio-group v-model="form.orientation.nursingHome" size="small">
+                  <el-radio-group :disabled="isDetail" v-model="form.orientation.nursingHome" size="small">
                     <el-radio :value="1">正确(1分)</el-radio>
                     <el-radio :value="0">错误(0分)</el-radio>
                   </el-radio-group>
                 </div>
                 <div class="score-row">
                   <span>咱们现在在第几层楼?</span>
-                  <el-radio-group v-model="form.orientation.floor" size="small">
+                  <el-radio-group :disabled="isDetail" v-model="form.orientation.floor" size="small">
                     <el-radio :value="1">正确(1分)</el-radio>
                     <el-radio :value="0">错误(0分)</el-radio>
                   </el-radio-group>
@@ -156,7 +156,7 @@
             <div class="form-item">
               <span class="item-number">3.</span>
               <span class="item-label">告诉你三种东西,我说完后,请你重复一遍并记住,待会还会问你(各1分,共3分):</span>
-              <el-radio-group v-model="form.memory.score" size="small">
+              <el-radio-group :disabled="isDetail" v-model="form.memory.score" size="small">
                 <el-radio :value="3">3分</el-radio>
                 <el-radio :value="2">2分</el-radio>
                 <el-radio :value="1">1分</el-radio>
@@ -171,7 +171,7 @@
             <div class="form-item">
               <span class="item-number">4.</span>
               <span class="item-label">100-7=?连续减5次(93、86、79、72、65。各1分,共5分。若错了,但下一个答案正确,只记一次错误):</span>
-              <el-radio-group v-model="form.attention.score" size="small">
+              <el-radio-group :disabled="isDetail" v-model="form.attention.score" size="small">
                 <el-radio :value="5">5分</el-radio>
                 <el-radio :value="4">4分</el-radio>
                 <el-radio :value="3">3分</el-radio>
@@ -188,7 +188,7 @@
             <div class="form-item">
               <span class="item-number">5.</span>
               <span class="item-label">现在请你说出我刚才告诉你让你记住的那些东西?</span>
-              <el-radio-group v-model="form.recall.score" size="small">
+              <el-radio-group :disabled="isDetail" v-model="form.recall.score" size="small">
                 <el-radio :value="3">3分</el-radio>
                 <el-radio :value="2">2分</el-radio>
                 <el-radio :value="1">1分</el-radio>
@@ -206,14 +206,14 @@
               <div class="score-group">
                 <div class="score-row">
                   <span>出示手表,问这个是什么东西?</span>
-                  <el-radio-group v-model="form.naming.watch" size="small">
+                  <el-radio-group :disabled="isDetail" v-model="form.naming.watch" size="small">
                     <el-radio :value="1">正确(1分)</el-radio>
                     <el-radio :value="0">错误(0分)</el-radio>
                   </el-radio-group>
                 </div>
                 <div class="score-row">
                   <span>出示钢笔,问这个是什么东西?</span>
-                  <el-radio-group v-model="form.naming.pen" size="small">
+                  <el-radio-group :disabled="isDetail" v-model="form.naming.pen" size="small">
                     <el-radio :value="1">正确(1分)</el-radio>
                     <el-radio :value="0">错误(0分)</el-radio>
                   </el-radio-group>
@@ -228,7 +228,7 @@
             <div class="form-item">
               <span class="item-number">7.</span>
               <span class="item-label">我现在说一句话,请跟我清楚的重复一遍(四十四只石狮子)!</span>
-              <el-radio-group v-model="form.repetition.score" size="small">
+              <el-radio-group :disabled="isDetail" v-model="form.repetition.score" size="small">
                 <el-radio :value="1">正确(1分)</el-radio>
                 <el-radio :value="0">错误(0分)</el-radio>
               </el-radio-group>
@@ -241,7 +241,7 @@
             <div class="form-item">
               <span class="item-number">8.</span>
               <span class="item-label">(闭上你的眼睛)请你念念这句话,并按上面意思去做!</span>
-              <el-radio-group v-model="form.reading.score" size="small">
+              <el-radio-group :disabled="isDetail" v-model="form.reading.score" size="small">
                 <el-radio :value="1">正确(1分)</el-radio>
                 <el-radio :value="0">错误(0分)</el-radio>
               </el-radio-group>
@@ -254,7 +254,7 @@
             <div class="form-item">
               <span class="item-number">9.</span>
               <span class="item-label">我给您一张纸请您按我说的去做,现在开始:"用右手拿着这张纸,用两只手将它对折起来,放在您的左腿上。"(每个动作1分,共3分):</span>
-              <el-radio-group v-model="form.threeStepCommand.score" size="small">
+              <el-radio-group :disabled="isDetail" v-model="form.threeStepCommand.score" size="small">
                 <el-radio :value="3">3分</el-radio>
                 <el-radio :value="2">2分</el-radio>
                 <el-radio :value="1">1分</el-radio>
@@ -269,7 +269,7 @@
             <div class="form-item">
               <span class="item-number">10.</span>
               <span class="item-label">书写能力要求受试者自己写一句完整的句子:</span>
-              <el-radio-group v-model="form.writing.score" size="small">
+              <el-radio-group :disabled="isDetail" v-model="form.writing.score" size="small">
                 <el-radio :value="1">正确(1分)</el-radio>
                 <el-radio :value="0">错误(0分)</el-radio>
               </el-radio-group>
@@ -292,7 +292,7 @@
                     <polygon points="110,10 150,30 150,80 110,100 70,80 70,30" fill="none" stroke="#333" stroke-width="2"/>
                   </svg>
                 </div>
-                <el-radio-group v-model="form.structure.score" size="small">
+                <el-radio-group :disabled="isDetail" v-model="form.structure.score" size="small">
                   <el-radio :value="1">正确(1分)</el-radio>
                   <el-radio :value="0">错误(0分)</el-radio>
                 </el-radio-group>
@@ -304,7 +304,7 @@
           <div class="section risk-section">
             <div class="section-title">风险程度判断</div>
             <div class="risk-judgment">
-              <el-radio-group v-model="form.riskLevel" >
+              <el-radio-group :disabled="isDetail" v-model="form.riskLevel" >
                 <el-radio value="none" style="margin-right: 10px">无风险:MMSE ≥27分</el-radio>
                 <el-radio value="low" style="margin-right: 10px">低风险:MMSE 26-21分</el-radio>
                 <el-radio value="medium" style="margin-right: 10px">中风险:MMSE 10-20分</el-radio>
@@ -317,7 +317,7 @@
           <div class="section">
             <div class="section-title">预防措施</div>
             <div class="form-item">
-              <el-checkbox-group v-model="form.preventiveMeasures" class="preventive-measures">
+              <el-checkbox-group :disabled="isDetail" v-model="form.preventiveMeasures" class="preventive-measures">
                 <el-checkbox value="diet">饮食与生活习惯管理</el-checkbox>
                 <el-checkbox value="environment">环境优化与安全保障</el-checkbox>
                 <el-checkbox value="emotion">情绪与行为干预</el-checkbox>
@@ -333,23 +333,11 @@
         </div>
     </div>
 
-    <div><div style="font-weight: bold">这是提交字段,后端可照此字段创建数据表</div>:{
-      "contractNumber": "NS20190047",
-      "elderName": "胡肖红",
-      "bedName": "养护楼-6层-605-04",
-      "checkInTime": 1555459200000,
-      "elderId": 17582,
-      "tenantId": 211,
-      "assessmentData": "{\"assessor\":\"11\",\"assessDate\":\"2026-03-11\",\"orientation\":{\"year\":0,\"season\":0,\"month\":0,\"day\":0,\"weekDay\":0,\"province\":0,\"county\":0,\"town\":0,\"nursingHome\":1,\"floor\":0},\"memory\":{\"score\":0},\"attention\":{\"score\":0},\"recall\":{\"score\":0},\"naming\":{\"watch\":0,\"pen\":0},\"repetition\":{\"score\":0},\"reading\":{\"score\":0},\"threeStepCommand\":{\"score\":0},\"writing\":{\"score\":0},\"structure\":{\"score\":0},\"totalScore\":1,\"riskLevel\":\"high\",\"preventiveMeasures\":[\"emotion\"],\"preventiveMeasuresOther\":\"\"}",
-      "totalScore": 1,
-      "assessor": "11",
-      "assessDate": "2026-03-11",
-      "orgType": 1
-      }</div>
+
     <template #footer>
       <el-button @click="handleClosed">关闭</el-button>
       <el-button style="margin-left: 22px;margin-right: 30px" v-loading="formLoading" type="primary" v-show="!isDetail" @click="submitForm">确定</el-button>
-      <el-button  type="success" @click="handleExport">打印</el-button>
+      <el-button v-if="isDetail"  type="success" @click="handleExport">打印</el-button>
     </template>
 
   </el-drawer>
@@ -360,7 +348,7 @@ import { computed, ref } from 'vue'
 
 import dayjs from 'dayjs'
 
-import { mmseCreate, mmseGetById, mmseUpdate, mmseGetByElderId } from "@/api/social-work";
+import {mmseCreate, mmseGetById, mmseUpdate} from "@/api/social-work";
 const message = useMessage() // 消息弹窗
 const { t } = useI18n() // 国际化
 const title = ref('')
@@ -555,6 +543,32 @@ const resetMMSEForm = () => {
   form.preventiveMeasuresOther = ''
 }
 
+/** 加载评估数据 */
+const loadAttackRiskData = async (id: number) => {
+  try {
+    const res = await mmseGetById(id)
+    if (res) {
+      // 填充长者基本信息
+      dataForm.value.elderName = res.elderName || ''
+      dataForm.value.elderId = res.elderId || ''
+      dataForm.value.elderSex = res.elderSex || ''
+      dataForm.value.bedName = res.bedName || ''
+      dataForm.value.checkInTime = res.checkInTime || ''
+      dataForm.value.contractNumber = res.fileNumber || ''
+      dataForm.value.elderAge = res.elderAge || ''
+
+      await selectElderRef.value.upData(res.elderName, res.elderId)
+      // 解析 assessmentData
+      if (res.assessData) {
+        const formData = JSON.parse(res.assessData)
+        deserializeFormData(formData)
+      }
+    }
+  } catch (error) {
+    message.error('加载评估数据失败')
+  }
+}
+
 /** 打开弹窗 */
 const open = async (tenantId, id?: any, detail: boolean = false) => {
   resetForm()
@@ -565,13 +579,10 @@ const open = async (tenantId, id?: any, detail: boolean = false) => {
   if (id) {
     title.value = "编辑-MMSE评估"
     // 加载 MMSE 数据
-    await loadMMSEData(id)
+    await loadAttackRiskData(id)
   } else {
     title.value = "新增-MMSE评估"
-    // 如果选择了长者,尝试加载已有的 MMSE 数据
-    if (dataForm.value.elderId) {
-      await loadMMSEByElderId(dataForm.value.elderId)
-    }
+
   }
 }
 
@@ -644,10 +655,10 @@ const submitForm = async () => {
   formLoading.value = true
   // 提交请求
   try {
-    const assessmentData = serializeFormData()
+    const assessData = serializeFormData()
     const tempParams = {
       ...dataForm.value,
-      assessmentData: JSON.stringify(assessmentData),
+      assessData: JSON.stringify(assessData),
       totalScore: totalScore.value,
       assessor: form.assessor,
       assessDate: form.assessDate ? dayjs(form.assessDate).format('YYYY-MM-DD') : ''

+ 12 - 11
src/views/social-worker/assessment/MMSE/index.vue

@@ -19,7 +19,7 @@
 
       <el-form-item label="评估人">
         <el-input
-          v-model="queryParams.elderName"
+          v-model="queryParams.assessor"
           placeholder="输入评估人"
           class="!w-240px"
           clearable
@@ -32,7 +32,7 @@
           size="default"
           ref="selectRef"
           class="!w-240px"
-          v-model="queryParams.recordDate"
+          v-model="queryParams.assessorDate"
           type="daterange"
           :clearable="true"
           :editable="false"
@@ -56,7 +56,7 @@
 
       <ButtonAdd @click="openForm(undefined)"  />
       <!--      <el-button @click="inputH" type="success"><Icon icon="fa:cloud-upload" :size="16" class="mr-1"/>导入</el-button>-->
-      <ButtonImport @click="handleImportCard"  />
+<!--      <ButtonImport @click="handleImportCard"  />-->
 
 
     </div>
@@ -71,8 +71,8 @@
 
 
       <el-table-column prop="elderName" header-align="center" align="center" label="长者姓名" min-width="150" show-overflow-tooltip/>
-      <el-table-column prop="bedName" header-align="center" align="center" label="床位号" min-width="200" show-overflow-tooltip/>
-      <el-table-column prop="recordDate" header-align="center" align="center" label="记录日期" min-width="200" show-overflow-tooltip/>
+      <el-table-column prop="assessor" header-align="center" align="center" label="评估人" min-width="200" show-overflow-tooltip/>
+      <el-table-column prop="assessDate" header-align="center" align="center" label="记录日期" min-width="200" show-overflow-tooltip/>
 
       <el-table-column prop="creator" header-align="center" align="center" label="记录人" min-width="200" show-overflow-tooltip/>
 
@@ -154,6 +154,7 @@ import { useUserStore } from '@/store/modules/user'
 import {formatTimestamp, getCurrentMonthRange} from "@/utils/dateUtil";
 import Import from "@/components/ImportFile/index.vue";
 import {restraintCreatePage, restraintDelete} from "@/api/elderly/nursing/keep-fit";
+import {mmseDelete, mmseGetPage} from "@/api/social-work";
 const message = useMessage() // 消息弹窗
 const { t } = useI18n() // 国际化
 const userStore = useUserStore()
@@ -181,8 +182,8 @@ let queryParams = reactive({
   pageNo: 1,
   pageSize: 10,
   elderName: '',
-  creator: '',
-  recordDate: getCurrentMonthRange(),
+  assessor: '',
+  assessorDate: getCurrentMonthRange(),
   tenantIds: userStore.orgTenantId
 })
 const queryFormRef = ref() // 搜索的表单
@@ -229,7 +230,7 @@ const getList = async () => {
   loading.value = true
   try {
     //let queryP = {...queryParams,discoveryTime:queryParams.discoveryTime?[queryParams.discoveryTime[0]+" 00:00:00",queryParams.discoveryTime[1]+" 23:59:59"]:null}
-    const data = await restraintCreatePage(queryParams)
+    const data = await mmseGetPage(queryParams)
     list.value = data.list
     total.value = data.total
   } finally {
@@ -249,9 +250,9 @@ const handleQuery = async () => {
 /** 重置按钮操作 */
 const resetQuery = () => {
   queryParams.elderName = ''
-  queryParams.creator = ''
+  queryParams.assessor = ''
   queryParams.tenantIds = userStore.orgTenantId
-  queryParams.recordDate= getCurrentMonthRange()
+  queryParams.assessorDate= getCurrentMonthRange()
   queryFormRef.value.resetFields()
   handleQuery()
 }
@@ -287,7 +288,7 @@ const openClose = async (item) => {
     if (res == 'confirm') {
       // 发起
       try {
-        const res = await restraintDelete(item.id)
+        const res = await mmseDelete(item.id)
         if (res){
           message.success(t('common.updateSuccess'))
         }

+ 13 - 32
src/views/social-worker/assessment/NGASR/AddForm.vue

@@ -40,11 +40,11 @@
       <el-row :gutter="40">
         <el-col :xs="24" :sm="24" :md="24" :lg="12" :xl="12" class="row">
           <text>评估人</text>
-          <el-input v-model="form.assessor"  />
+          <el-input :disabled="isDetail" v-model="form.assessor"  />
         </el-col>
         <el-col :xs="24" :sm="24" :md="24" :lg="12" :xl="12" class="row">
           <text>评估日期</text>
-          <el-date-picker v-model="form.assessDate" type="date" style="width: 100%;"/>
+          <el-date-picker :disabled="isDetail" v-model="form.assessDate" type="date" style="width: 100%;"/>
 
         </el-col>
       </el-row>
@@ -152,28 +152,12 @@
           </div>
         </div>
       </div>
-
     </div>
-      <div><div style="font-weight: bold">这是提交字段,后端可照此字段创建数据表</div>:
-        {
-        "contractNumber": "NS20230012",
-        "elderName": "张宝贞",
-        "bedName": "养护楼-7层-712-01",
-        "checkInTime": 1676851200000,
-        "elderId": 17446,
-        "tenantId": 211,
-        "assessmentData": "{\"assessor\":\"\",\"assessDate\":\"\",\"riskScores\":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],\"totalScore\":0,\"riskLevel\":\"\",\"preventiveMeasures\":[],\"preventiveMeasuresOther\":\"\",\"familySignature\":\"\",\"familySignDate\":\"\"}",
-        "totalScore": 0,
-        "assessor": "",
-        "assessDate": "",
-        "orgType": 1
-        }
-      </div>
 
 
     <template #footer>
       <el-button @click="handleClosed">关闭</el-button>
-      <el-button  type="success" @click="handleExport">打印</el-button>
+      <el-button v-if="isDetail" type="success" @click="handleExport">打印</el-button>
       <el-button style="margin-left: 22px;margin-right: 30px" v-loading="formLoading" type="primary" v-show="!isDetail" @click="submitForm">确定</el-button>
     </template>
 
@@ -355,10 +339,7 @@ const open = async (tenantId, id?: any, detail: boolean = false) => {
     await loadNGASRData(id)
   } else {
     title.value = "新增-自杀风险评估"
-    // 如果选择了长者,尝试加载已有的评估数据
-    if (dataForm.value.elderId) {
-      await loadNGASRByElderId(dataForm.value.elderId)
-    }
+
   }
 }
 
@@ -373,12 +354,12 @@ const loadNGASRData = async (id: number) => {
       dataForm.value.elderSex = res.elderSex || ''
       dataForm.value.bedName = res.bedName || ''
       dataForm.value.checkInTime = res.checkInTime || ''
-      dataForm.value.contractNumber = res.contractNumber || ''
+      dataForm.value.contractNumber = res.fileNumber || ''
       dataForm.value.elderAge = res.elderAge || ''
-
-      // 解析 assessmentData
-      if (res.assessmentData) {
-        const formData = JSON.parse(res.assessmentData)
+      await selectElderRef.value.upData(res.elderName, res.elderId)
+      // 解析 assessData
+      if (res.assessData) {
+        const formData = JSON.parse(res.assessData)
         deserializeFormData(formData)
       }
     }
@@ -391,8 +372,8 @@ const loadNGASRData = async (id: number) => {
 const loadNGASRByElderId = async (elderId: number) => {
   try {
     const res = await ngasrGetByElderId(elderId)
-    if (res && res.assessmentData) {
-      const formData = JSON.parse(res.assessmentData)
+    if (res && res.assessData) {
+      const formData = JSON.parse(res.assessData)
       deserializeFormData(formData)
     }
   } catch (error) {
@@ -443,10 +424,10 @@ const submitForm = async () => {
   formLoading.value = true
   // 提交请求
   try {
-    const assessmentData = serializeFormData()
+    const assessData = serializeFormData()
     const tempParams = {
       ...dataForm.value,
-      assessmentData: JSON.stringify(assessmentData),
+      assessData: JSON.stringify(assessData),
       totalScore: totalScore.value,
       assessor: form.assessor,
       assessDate: form.assessDate ? dayjs(form.assessDate).format('YYYY-MM-DD') : ''

+ 20 - 14
src/views/social-worker/assessment/NGASR/index.vue

@@ -17,14 +17,21 @@
         />
       </el-form-item>
 
-
+      <el-form-item label="评估人">
+        <el-input
+          v-model="queryParams.assessor"
+          placeholder="长者姓名"
+          class="!w-240px"
+          clearable
+        />
+      </el-form-item>
 
       <el-form-item label="记录日期">
         <el-date-picker
           size="default"
           ref="selectRef"
           class="!w-240px"
-          v-model="queryParams.recordDate"
+          v-model="queryParams.assessDate"
           type="daterange"
           :clearable="true"
           :editable="false"
@@ -48,7 +55,7 @@
 
       <ButtonAdd @click="openForm(undefined)"  />
       <!--      <el-button @click="inputH" type="success"><Icon icon="fa:cloud-upload" :size="16" class="mr-1"/>导入</el-button>-->
-      <ButtonImport @click="handleImportCard"  />
+      <!--      <ButtonImport @click="handleImportCard"  />-->
 
 
     </div>
@@ -63,8 +70,8 @@
 
 
       <el-table-column prop="elderName" header-align="center" align="center" label="长者姓名" min-width="150" show-overflow-tooltip/>
-      <el-table-column prop="bedName" header-align="center" align="center" label="床位号" min-width="200" show-overflow-tooltip/>
-      <el-table-column prop="recordDate" header-align="center" align="center" label="记录日期" min-width="200" show-overflow-tooltip/>
+      <el-table-column prop="assessor" header-align="center" align="center" label="评估人" min-width="200" show-overflow-tooltip/>
+      <el-table-column prop="assessDate" header-align="center" align="center" label="记录日期" min-width="200" show-overflow-tooltip/>
 
       <el-table-column prop="creator" header-align="center" align="center" label="记录人" min-width="200" show-overflow-tooltip/>
 
@@ -146,6 +153,7 @@ import { useUserStore } from '@/store/modules/user'
 import {formatTimestamp, getCurrentMonthRange} from "@/utils/dateUtil";
 import Import from "@/components/ImportFile/index.vue";
 import {restraintCreatePage, restraintDelete} from "@/api/elderly/nursing/keep-fit";
+import {ngasrDelete, ngasrPage, perceptionDelete, perceptionPage} from "@/api/social-work";
 const message = useMessage() // 消息弹窗
 const { t } = useI18n() // 国际化
 const userStore = useUserStore()
@@ -173,15 +181,13 @@ let queryParams = reactive({
   pageNo: 1,
   pageSize: 10,
   elderName: '',
-  creator: '',
-  recordDate: getCurrentMonthRange(),
+  assessor: '',
+  assessDate: getCurrentMonthRange(),
   tenantIds: userStore.orgTenantId
 })
 const queryFormRef = ref() // 搜索的表单
 
-const inputH = () => {
-  importRef.value.open(queryParams.tenantIds[0])
-}
+
 // 打开导出弹窗
 const handleImportCard = async () => {
 
@@ -221,7 +227,7 @@ const getList = async () => {
   loading.value = true
   try {
     //let queryP = {...queryParams,discoveryTime:queryParams.discoveryTime?[queryParams.discoveryTime[0]+" 00:00:00",queryParams.discoveryTime[1]+" 23:59:59"]:null}
-    const data = await restraintCreatePage(queryParams)
+    const data = await ngasrPage(queryParams)
     list.value = data.list
     total.value = data.total
   } finally {
@@ -241,9 +247,9 @@ const handleQuery = async () => {
 /** 重置按钮操作 */
 const resetQuery = () => {
   queryParams.elderName = ''
-  queryParams.creator = ''
+  queryParams.assessor = ''
   queryParams.tenantIds = userStore.orgTenantId
-  queryParams.recordDate= getCurrentMonthRange()
+  queryParams.assessDate= getCurrentMonthRange()
   queryFormRef.value.resetFields()
   handleQuery()
 }
@@ -279,7 +285,7 @@ const openClose = async (item) => {
     if (res == 'confirm') {
       // 发起
       try {
-        const res = await restraintDelete(item.id)
+        const res = await ngasrDelete(item.id)
         if (res){
           message.success(t('common.updateSuccess'))
         }

+ 13 - 31
src/views/social-worker/assessment/PerceptionAndCommunication/AddForm.vue

@@ -40,11 +40,11 @@
       <el-row :gutter="40">
         <el-col :xs="24" :sm="24" :md="24" :lg="12" :xl="12" class="row">
           <text>评估人</text>
-          <el-input v-model="form.assessor"  />
+          <el-input :disabled="isDetail" v-model="form.assessor"  />
         </el-col>
         <el-col :xs="24" :sm="24" :md="24" :lg="12" :xl="12" class="row">
           <text>评估日期</text>
-          <el-date-picker v-model="form.assessDate" type="date" style="width: 100%;"/>
+          <el-date-picker :disabled="isDetail" v-model="form.assessDate" type="date" style="width: 100%;"/>
 
         </el-col>
       </el-row>
@@ -192,26 +192,11 @@
       </div>
     </div>
 
-    <div><div style="font-weight: bold">这是提交字段,后端可照此字段创建数据表</div>:
-      {
-      "contractNumber": "NS20190098",
-      "elderName": "陈木娣",
-      "bedName": "养护楼-4层-407-04",
-      "checkInTime": 1562284800000,
-      "elderId": 17563,
-      "tenantId": 211,
-      "assessmentData": "{\"assessor\":\"啊啊\",\"assessDate\":\"2026-03-20\",\"visionScore\":3,\"totalScore\":3,\"riskLevel\":\"high\",\"preventiveMeasures\":[\"expression\",\"medication\"],\"preventiveMeasuresOther\":\"\",\"familySignature\":\"搜索\",\"familySignDate\":\"\"}",
-      "totalScore": 3,
-      "assessor": "啊啊",
-      "assessDate": "2026-03-20",
-      "orgType": 1
-      }
-    </div>
 
     <template #footer>
       <el-button @click="handleClosed">关闭</el-button>
       <el-button style="margin-left: 22px;margin-right: 30px" v-loading="formLoading" type="primary" v-show="!isDetail" @click="submitForm">确定</el-button>
-      <el-button  type="success" @click="handleExport">打印</el-button>
+      <el-button v-if="isDetail" type="success" @click="handleExport">打印</el-button>
     </template>
 
   </el-drawer>
@@ -365,10 +350,7 @@ const open = async (tenantId, id?: any, detail: boolean = false) => {
     await loadPerceptionData(id)
   } else {
     title.value = "新增-感知觉与沟通评估"
-    // 如果选择了长者,尝试加载已有的评估数据
-    if (dataForm.value.elderId) {
-      await loadPerceptionByElderId(dataForm.value.elderId)
-    }
+
   }
 }
 
@@ -383,12 +365,12 @@ const loadPerceptionData = async (id: number) => {
       dataForm.value.elderSex = res.elderSex || ''
       dataForm.value.bedName = res.bedName || ''
       dataForm.value.checkInTime = res.checkInTime || ''
-      dataForm.value.contractNumber = res.contractNumber || ''
+      dataForm.value.contractNumber = res.fileNumber || ''
       dataForm.value.elderAge = res.elderAge || ''
-
-      // 解析 assessmentData
-      if (res.assessmentData) {
-        const formData = JSON.parse(res.assessmentData)
+      await selectElderRef.value.upData(res.elderName, res.elderId)
+      // 解析 assessData
+      if (res.assessData) {
+        const formData = JSON.parse(res.assessData)
         deserializeFormData(formData)
       }
     }
@@ -401,8 +383,8 @@ const loadPerceptionData = async (id: number) => {
 const loadPerceptionByElderId = async (elderId: number) => {
   try {
     const res = await perceptionGetByElderId(elderId)
-    if (res && res.assessmentData) {
-      const formData = JSON.parse(res.assessmentData)
+    if (res && res.assessData) {
+      const formData = JSON.parse(res.assessData)
       deserializeFormData(formData)
     }
   } catch (error) {
@@ -441,10 +423,10 @@ const submitForm = async () => {
   formLoading.value = true
   // 提交请求
   try {
-    const assessmentData = serializeFormData()
+    const assessData = serializeFormData()
     const tempParams = {
       ...dataForm.value,
-      assessmentData: JSON.stringify(assessmentData),
+      assessData: JSON.stringify(assessData),
       totalScore: totalScore.value,
       assessor: form.assessor,
       assessDate: form.assessDate ? dayjs(form.assessDate).format('YYYY-MM-DD') : ''

+ 19 - 11
src/views/social-worker/assessment/PerceptionAndCommunication/index.vue

@@ -17,14 +17,21 @@
         />
       </el-form-item>
 
-
+      <el-form-item label="评估人">
+        <el-input
+          v-model="queryParams.assessor"
+          placeholder="长者姓名"
+          class="!w-240px"
+          clearable
+        />
+      </el-form-item>
 
       <el-form-item label="记录日期">
         <el-date-picker
           size="default"
           ref="selectRef"
           class="!w-240px"
-          v-model="queryParams.recordDate"
+          v-model="queryParams.assessDate"
           type="daterange"
           :clearable="true"
           :editable="false"
@@ -48,7 +55,7 @@
 
       <ButtonAdd @click="openForm(undefined)"  />
       <!--      <el-button @click="inputH" type="success"><Icon icon="fa:cloud-upload" :size="16" class="mr-1"/>导入</el-button>-->
-      <ButtonImport @click="handleImportCard"  />
+<!--      <ButtonImport @click="handleImportCard"  />-->
 
 
     </div>
@@ -63,8 +70,8 @@
 
 
       <el-table-column prop="elderName" header-align="center" align="center" label="长者姓名" min-width="150" show-overflow-tooltip/>
-      <el-table-column prop="bedName" header-align="center" align="center" label="床位号" min-width="200" show-overflow-tooltip/>
-      <el-table-column prop="recordDate" header-align="center" align="center" label="记录日期" min-width="200" show-overflow-tooltip/>
+      <el-table-column prop="assessor" header-align="center" align="center" label="评估人" min-width="200" show-overflow-tooltip/>
+      <el-table-column prop="assessDate" header-align="center" align="center" label="记录日期" min-width="200" show-overflow-tooltip/>
 
       <el-table-column prop="creator" header-align="center" align="center" label="记录人" min-width="200" show-overflow-tooltip/>
 
@@ -146,6 +153,7 @@ import { useUserStore } from '@/store/modules/user'
 import {formatTimestamp, getCurrentMonthRange} from "@/utils/dateUtil";
 import Import from "@/components/ImportFile/index.vue";
 import {restraintCreatePage, restraintDelete} from "@/api/elderly/nursing/keep-fit";
+import {perceptionDelete, perceptionPage} from "@/api/social-work";
 const message = useMessage() // 消息弹窗
 const { t } = useI18n() // 国际化
 const userStore = useUserStore()
@@ -173,8 +181,8 @@ let queryParams = reactive({
   pageNo: 1,
   pageSize: 10,
   elderName: '',
-  creator: '',
-  recordDate: getCurrentMonthRange(),
+  assessor: '',
+  assessDate: getCurrentMonthRange(),
   tenantIds: userStore.orgTenantId
 })
 const queryFormRef = ref() // 搜索的表单
@@ -221,7 +229,7 @@ const getList = async () => {
   loading.value = true
   try {
     //let queryP = {...queryParams,discoveryTime:queryParams.discoveryTime?[queryParams.discoveryTime[0]+" 00:00:00",queryParams.discoveryTime[1]+" 23:59:59"]:null}
-    const data = await restraintCreatePage(queryParams)
+    const data = await perceptionPage(queryParams)
     list.value = data.list
     total.value = data.total
   } finally {
@@ -241,9 +249,9 @@ const handleQuery = async () => {
 /** 重置按钮操作 */
 const resetQuery = () => {
   queryParams.elderName = ''
-  queryParams.creator = ''
+  queryParams.assessor = ''
   queryParams.tenantIds = userStore.orgTenantId
-  queryParams.recordDate= getCurrentMonthRange()
+  queryParams.assessDate= getCurrentMonthRange()
   queryFormRef.value.resetFields()
   handleQuery()
 }
@@ -279,7 +287,7 @@ const openClose = async (item) => {
     if (res == 'confirm') {
       // 发起
       try {
-        const res = await restraintDelete(item.id)
+        const res = await perceptionDelete(item.id)
         if (res){
           message.success(t('common.updateSuccess'))
         }

+ 14 - 30
src/views/social-worker/assessment/SAS/AddForm.vue

@@ -40,11 +40,11 @@
       <el-row :gutter="40">
         <el-col :xs="24" :sm="24" :md="24" :lg="12" :xl="12" class="row">
           <text>评估人</text>
-          <el-input v-model="form.assessor"  />
+          <el-input :disabled="isDetail" v-model="form.assessor"  />
         </el-col>
         <el-col :xs="24" :sm="24" :md="24" :lg="12" :xl="12" class="row">
           <text>评估日期</text>
-          <el-date-picker v-model="form.assessDate" type="date" style="width: 100%;"/>
+          <el-date-picker :disabled="isDetail" v-model="form.assessDate" type="date" style="width: 100%;"/>
 
         </el-col>
       </el-row>
@@ -141,25 +141,12 @@
       </div>
 
     </div>
-    <div><div style="font-weight: bold">这是提交字段,后端可照此字段创建数据表</div>
-      {
-      "contractNumber": "",
-      "elderName": "",
-      "bedName": "",
-      "checkInTime": "",
-      "elderId": "",
-      "tenantId": 211,
-      "assessmentData": "{\"assessor\":\"\",\"assessDate\":\"\",\"answers\":[4,3,2,2,3,3,2,2,0,0,0,0,0,0,0,0,0,2,3,3],\"rawScore\":29,\"standardScore\":36,\"depressionLevel\":\"正常\",\"familySignature\":\"\",\"familySignDate\":\"\"}",
-      "assessor": "",
-      "assessDate": "",
-      "orgType": 1
-      }
-    </div>
+ 
 
 
     <template #footer>
       <el-button @click="handleClosed">关闭</el-button>
-      <el-button   type="success" @click="handleExport">打印</el-button>
+      <el-button  v-if="isDetail" type="success" @click="handleExport">打印</el-button>
       <el-button style="margin-left: 22px;margin-right: 30px" v-loading="formLoading" type="primary" v-show="!isDetail" @click="submitForm">确定</el-button>
     </template>
 
@@ -331,10 +318,7 @@ const open = async (tenantId, id?: any, detail: boolean = false) => {
     await loadSASData(id)
   } else {
     title.value = "新增-焦虑自评量表"
-    // 如果选择了长者,尝试加载已有的评估数据
-    if (dataForm.value.elderId) {
-      await loadSASByElderId(dataForm.value.elderId)
-    }
+   
   }
 }
 
@@ -349,12 +333,12 @@ const loadSASData = async (id: number) => {
       dataForm.value.elderSex = res.elderSex || ''
       dataForm.value.bedName = res.bedName || ''
       dataForm.value.checkInTime = res.checkInTime || ''
-      dataForm.value.contractNumber = res.contractNumber || ''
+      dataForm.value.contractNumber = res.fileNumber || ''
       dataForm.value.elderAge = res.elderAge || ''
-
-      // 解析 assessmentData
-      if (res.assessmentData) {
-        const formData = JSON.parse(res.assessmentData)
+      await selectElderRef.value.upData(res.elderName, res.elderId)
+      // 解析 assessData
+      if (res.assessData) {
+        const formData = JSON.parse(res.assessData)
         deserializeFormData(formData)
       }
     }
@@ -367,8 +351,8 @@ const loadSASData = async (id: number) => {
 const loadSASByElderId = async (elderId: number) => {
   try {
     const res = await sasGetByElderId(elderId)
-    if (res && res.assessmentData) {
-      const formData = JSON.parse(res.assessmentData)
+    if (res && res.assessData) {
+      const formData = JSON.parse(res.assessData)
       deserializeFormData(formData)
     }
   } catch (error) {
@@ -401,10 +385,10 @@ const submitForm = async () => {
   formLoading.value = true
   // 提交请求
   try {
-    const assessmentData = serializeFormData()
+    const assessData = serializeFormData()
     const tempParams = {
       ...dataForm.value,
-      assessmentData: JSON.stringify(assessmentData),
+      assessData: JSON.stringify(assessData),
       rawScore: rawScore.value,
       standardScore: standardScore.value,
       anxietyLevel: anxietyLevelText.value,

+ 26 - 14
src/views/social-worker/assessment/SAS/index.vue

@@ -17,14 +17,21 @@
         />
       </el-form-item>
 
-
+      <el-form-item label="评估人">
+        <el-input
+          v-model="queryParams.assessor"
+          placeholder="长者姓名"
+          class="!w-240px"
+          clearable
+        />
+      </el-form-item>
 
       <el-form-item label="记录日期">
         <el-date-picker
           size="default"
           ref="selectRef"
           class="!w-240px"
-          v-model="queryParams.recordDate"
+          v-model="queryParams.assessDate"
           type="daterange"
           :clearable="true"
           :editable="false"
@@ -48,7 +55,7 @@
 
       <ButtonAdd @click="openForm(undefined)"  />
       <!--      <el-button @click="inputH" type="success"><Icon icon="fa:cloud-upload" :size="16" class="mr-1"/>导入</el-button>-->
-      <ButtonImport @click="handleImportCard"  />
+      <!--      <ButtonImport @click="handleImportCard"  />-->
 
 
     </div>
@@ -63,8 +70,8 @@
 
 
       <el-table-column prop="elderName" header-align="center" align="center" label="长者姓名" min-width="150" show-overflow-tooltip/>
-      <el-table-column prop="bedName" header-align="center" align="center" label="床位号" min-width="200" show-overflow-tooltip/>
-      <el-table-column prop="recordDate" header-align="center" align="center" label="记录日期" min-width="200" show-overflow-tooltip/>
+      <el-table-column prop="assessor" header-align="center" align="center" label="评估人" min-width="200" show-overflow-tooltip/>
+      <el-table-column prop="assessDate" header-align="center" align="center" label="记录日期" min-width="200" show-overflow-tooltip/>
 
       <el-table-column prop="creator" header-align="center" align="center" label="记录人" min-width="200" show-overflow-tooltip/>
 
@@ -146,6 +153,13 @@ import { useUserStore } from '@/store/modules/user'
 import {formatTimestamp, getCurrentMonthRange} from "@/utils/dateUtil";
 import Import from "@/components/ImportFile/index.vue";
 import {restraintCreatePage, restraintDelete} from "@/api/elderly/nursing/keep-fit";
+import {
+  attackRiskDelete, attackRiskPage,
+  ngasrDelete,
+  ngasrPage,
+  perceptionDelete,
+  perceptionPage, sasDelete, sasPage, sdsDelete, sdsPage
+} from "@/api/social-work";
 const message = useMessage() // 消息弹窗
 const { t } = useI18n() // 国际化
 const userStore = useUserStore()
@@ -173,15 +187,13 @@ let queryParams = reactive({
   pageNo: 1,
   pageSize: 10,
   elderName: '',
-  creator: '',
-  recordDate: getCurrentMonthRange(),
+  assessor: '',
+  assessDate: getCurrentMonthRange(),
   tenantIds: userStore.orgTenantId
 })
 const queryFormRef = ref() // 搜索的表单
 
-const inputH = () => {
-  importRef.value.open(queryParams.tenantIds[0])
-}
+
 // 打开导出弹窗
 const handleImportCard = async () => {
 
@@ -221,7 +233,7 @@ const getList = async () => {
   loading.value = true
   try {
     //let queryP = {...queryParams,discoveryTime:queryParams.discoveryTime?[queryParams.discoveryTime[0]+" 00:00:00",queryParams.discoveryTime[1]+" 23:59:59"]:null}
-    const data = await restraintCreatePage(queryParams)
+    const data = await sasPage(queryParams)
     list.value = data.list
     total.value = data.total
   } finally {
@@ -241,9 +253,9 @@ const handleQuery = async () => {
 /** 重置按钮操作 */
 const resetQuery = () => {
   queryParams.elderName = ''
-  queryParams.creator = ''
+  queryParams.assessor = ''
   queryParams.tenantIds = userStore.orgTenantId
-  queryParams.recordDate= getCurrentMonthRange()
+  queryParams.assessDate= getCurrentMonthRange()
   queryFormRef.value.resetFields()
   handleQuery()
 }
@@ -279,7 +291,7 @@ const openClose = async (item) => {
     if (res == 'confirm') {
       // 发起
       try {
-        const res = await restraintDelete(item.id)
+        const res = await sasDelete(item.id)
         if (res){
           message.success(t('common.updateSuccess'))
         }

+ 14 - 30
src/views/social-worker/assessment/SDS/AddForm.vue

@@ -40,11 +40,11 @@
       <el-row :gutter="40">
         <el-col :xs="24" :sm="24" :md="24" :lg="12" :xl="12" class="row">
           <text>评估人</text>
-          <el-input v-model="form.assessor"  />
+          <el-input :disabled="isDetail" v-model="form.assessor"  />
         </el-col>
         <el-col :xs="24" :sm="24" :md="24" :lg="12" :xl="12" class="row">
           <text>评估日期</text>
-          <el-date-picker v-model="form.assessDate" type="date" style="width: 100%;"/>
+          <el-date-picker :disabled="isDetail" v-model="form.assessDate" type="date" style="width: 100%;"/>
 
         </el-col>
       </el-row>
@@ -142,24 +142,11 @@
 
     </div>
 
-    <div><div style="font-weight: bold">这是提交字段,后端可照此字段创建数据表</div>
-      {
-      "contractNumber": "",
-      "elderName": "",
-      "bedName": "",
-      "checkInTime": "",
-      "elderId": "",
-      "tenantId": 211,
-      "assessmentData": "{\"assessor\":\"\",\"assessDate\":\"\",\"answers\":[4,3,2,2,3,3,2,2,0,0,0,0,0,0,0,0,0,2,3,3],\"rawScore\":29,\"standardScore\":36,\"depressionLevel\":\"正常\",\"familySignature\":\"\",\"familySignDate\":\"\"}",
-      "assessor": "",
-      "assessDate": "",
-      "orgType": 1
-      }
-    </div>
+
 
     <template #footer>
       <el-button @click="handleClosed">关闭</el-button>
-      <el-button   type="success" @click="handleExport">打印</el-button>
+      <el-button  v-if="isDetail" type="success" @click="handleExport">打印</el-button>
       <el-button style="margin-left: 22px;margin-right: 30px" v-loading="formLoading" type="primary" v-show="!isDetail" @click="submitForm">确定</el-button>
     </template>
 
@@ -331,10 +318,7 @@ const open = async (tenantId, id?: any, detail: boolean = false) => {
     await loadSDSData(id)
   } else {
     title.value = "新增-抑郁自评量表"
-    // 如果选择了长者,尝试加载已有的评估数据
-    if (dataForm.value.elderId) {
-      await loadSDSByElderId(dataForm.value.elderId)
-    }
+
   }
 }
 
@@ -349,12 +333,12 @@ const loadSDSData = async (id: number) => {
       dataForm.value.elderSex = res.elderSex || ''
       dataForm.value.bedName = res.bedName || ''
       dataForm.value.checkInTime = res.checkInTime || ''
-      dataForm.value.contractNumber = res.contractNumber || ''
+      dataForm.value.contractNumber = res.fileNumber || ''
       dataForm.value.elderAge = res.elderAge || ''
-
-      // 解析 assessmentData
-      if (res.assessmentData) {
-        const formData = JSON.parse(res.assessmentData)
+      await selectElderRef.value.upData(res.elderName, res.elderId)
+      // 解析 assessData
+      if (res.assessData) {
+        const formData = JSON.parse(res.assessData)
         deserializeFormData(formData)
       }
     }
@@ -367,8 +351,8 @@ const loadSDSData = async (id: number) => {
 const loadSDSByElderId = async (elderId: number) => {
   try {
     const res = await sdsGetByElderId(elderId)
-    if (res && res.assessmentData) {
-      const formData = JSON.parse(res.assessmentData)
+    if (res && res.assessData) {
+      const formData = JSON.parse(res.assessData)
       deserializeFormData(formData)
     }
   } catch (error) {
@@ -401,10 +385,10 @@ const submitForm = async () => {
   formLoading.value = true
   // 提交请求
   try {
-    const assessmentData = serializeFormData()
+    const assessData = serializeFormData()
     const tempParams = {
       ...dataForm.value,
-      assessmentData: JSON.stringify(assessmentData),
+      assessData: JSON.stringify(assessData),
       attackLevel: form.attackLevel,
       riskLevel: form.riskLevel,
       assessor: form.assessor,

+ 26 - 14
src/views/social-worker/assessment/SDS/index.vue

@@ -17,14 +17,21 @@
         />
       </el-form-item>
 
-
+      <el-form-item label="评估人">
+        <el-input
+          v-model="queryParams.assessor"
+          placeholder="长者姓名"
+          class="!w-240px"
+          clearable
+        />
+      </el-form-item>
 
       <el-form-item label="记录日期">
         <el-date-picker
           size="default"
           ref="selectRef"
           class="!w-240px"
-          v-model="queryParams.recordDate"
+          v-model="queryParams.assessDate"
           type="daterange"
           :clearable="true"
           :editable="false"
@@ -48,7 +55,7 @@
 
       <ButtonAdd @click="openForm(undefined)"  />
       <!--      <el-button @click="inputH" type="success"><Icon icon="fa:cloud-upload" :size="16" class="mr-1"/>导入</el-button>-->
-      <ButtonImport @click="handleImportCard"  />
+      <!--      <ButtonImport @click="handleImportCard"  />-->
 
 
     </div>
@@ -63,8 +70,8 @@
 
 
       <el-table-column prop="elderName" header-align="center" align="center" label="长者姓名" min-width="150" show-overflow-tooltip/>
-      <el-table-column prop="bedName" header-align="center" align="center" label="床位号" min-width="200" show-overflow-tooltip/>
-      <el-table-column prop="recordDate" header-align="center" align="center" label="记录日期" min-width="200" show-overflow-tooltip/>
+      <el-table-column prop="assessor" header-align="center" align="center" label="评估人" min-width="200" show-overflow-tooltip/>
+      <el-table-column prop="assessDate" header-align="center" align="center" label="记录日期" min-width="200" show-overflow-tooltip/>
 
       <el-table-column prop="creator" header-align="center" align="center" label="记录人" min-width="200" show-overflow-tooltip/>
 
@@ -146,6 +153,13 @@ import { useUserStore } from '@/store/modules/user'
 import {formatTimestamp, getCurrentMonthRange} from "@/utils/dateUtil";
 import Import from "@/components/ImportFile/index.vue";
 import {restraintCreatePage, restraintDelete} from "@/api/elderly/nursing/keep-fit";
+import {
+  attackRiskDelete, attackRiskPage,
+  ngasrDelete,
+  ngasrPage,
+  perceptionDelete,
+  perceptionPage, sdsDelete, sdsPage
+} from "@/api/social-work";
 const message = useMessage() // 消息弹窗
 const { t } = useI18n() // 国际化
 const userStore = useUserStore()
@@ -173,15 +187,13 @@ let queryParams = reactive({
   pageNo: 1,
   pageSize: 10,
   elderName: '',
-  creator: '',
-  recordDate: getCurrentMonthRange(),
+  assessor: '',
+  assessDate: getCurrentMonthRange(),
   tenantIds: userStore.orgTenantId
 })
 const queryFormRef = ref() // 搜索的表单
 
-const inputH = () => {
-  importRef.value.open(queryParams.tenantIds[0])
-}
+
 // 打开导出弹窗
 const handleImportCard = async () => {
 
@@ -221,7 +233,7 @@ const getList = async () => {
   loading.value = true
   try {
     //let queryP = {...queryParams,discoveryTime:queryParams.discoveryTime?[queryParams.discoveryTime[0]+" 00:00:00",queryParams.discoveryTime[1]+" 23:59:59"]:null}
-    const data = await restraintCreatePage(queryParams)
+    const data = await sdsPage(queryParams)
     list.value = data.list
     total.value = data.total
   } finally {
@@ -241,9 +253,9 @@ const handleQuery = async () => {
 /** 重置按钮操作 */
 const resetQuery = () => {
   queryParams.elderName = ''
-  queryParams.creator = ''
+  queryParams.assessor = ''
   queryParams.tenantIds = userStore.orgTenantId
-  queryParams.recordDate= getCurrentMonthRange()
+  queryParams.assessDate= getCurrentMonthRange()
   queryFormRef.value.resetFields()
   handleQuery()
 }
@@ -279,7 +291,7 @@ const openClose = async (item) => {
     if (res == 'confirm') {
       // 发起
       try {
-        const res = await restraintDelete(item.id)
+        const res = await sdsDelete(item.id)
         if (res){
           message.success(t('common.updateSuccess'))
         }

+ 48 - 61
src/views/social-worker/assessment/psychological-social-situation/AddForm.vue

@@ -40,11 +40,11 @@
       <el-row :gutter="40">
         <el-col :xs="24" :sm="24" :md="24" :lg="12" :xl="12" class="row">
           <text>评估人签字</text>
-          <el-input v-model="form.assessor"  />
+          <el-input :disabled="isDetail" v-model="form.assessor"  />
         </el-col>
         <el-col :xs="24" :sm="24" :md="24" :lg="12" :xl="12" class="row">
           <text>评估日期</text>
-          <el-date-picker v-model="form.assessDate" type="date" style="width: 100%;"/>
+          <el-date-picker :disabled="isDetail" v-model="form.assessDate" type="date" style="width: 100%;"/>
 
         </el-col>
       </el-row>
@@ -58,26 +58,26 @@
             <div class="form-item">
               <span class="item-number">1.</span>
               <span class="item-label">收入来源:</span>
-              <el-checkbox-group v-model="form.incomeSource" class="inline-checkbox-group">
+              <el-checkbox-group :disabled="isDetail" v-model="form.incomeSource" class="inline-checkbox-group">
                 <el-checkbox v-for="opt in incomeSourceOptions" :key="opt.value" :value="opt.value">
                   {{ opt.label }}
                 </el-checkbox>
               </el-checkbox-group>
               <template v-if="form.incomeSource.includes('其他')">
-                <el-input v-model="form.incomeSourceOther" class="other-input" />
+                <el-input :disabled="isDetail" v-model="form.incomeSourceOther" class="other-input" />
               </template>
             </div>
 
             <div class="form-item">
               <span class="item-number">2.</span>
               <span class="item-label">财政处理:</span>
-              <el-checkbox-group v-model="form.financialManagement" class="inline-checkbox-group">
+              <el-checkbox-group :disabled="isDetail" v-model="form.financialManagement" class="inline-checkbox-group">
                 <el-checkbox v-for="opt in financialManagementOptions" :key="opt.value" :value="opt.value">
                   {{ opt.label }}
                 </el-checkbox>
               </el-checkbox-group>
               <template v-if="form.financialManagement.includes('其他')">
-                <el-input v-model="form.financialManagementOther" class="other-input" />
+                <el-input :disabled="isDetail" v-model="form.financialManagementOther" class="other-input" />
               </template>
             </div>
           </div>
@@ -89,7 +89,7 @@
             <div class="form-item">
               <span class="item-number">3.</span>
               <span class="item-label">婚姻状况:</span>
-              <el-radio-group v-model="form.maritalStatus" class="inline-radio-group">
+              <el-radio-group :disabled="isDetail" v-model="form.maritalStatus" class="inline-radio-group">
                 <el-radio v-for="opt in maritalStatusOptions" :key="opt.value" :value="opt.value">
                   {{ opt.label }}
                 </el-radio>
@@ -99,43 +99,43 @@
             <div class="form-item">
               <span class="item-number">4.</span>
               <span class="item-label">近亲家属:</span>
-              <span class="sub-item">儿子<el-input v-model="form.familyMembers.son" class="tiny-input" />名</span>
-              <span class="sub-item">女儿<el-input v-model="form.familyMembers.daughter" class="tiny-input" />名</span>
-              <span class="sub-item">女婿<el-input v-model="form.familyMembers.sonInLaw" class="tiny-input" />名</span>
-              <span class="sub-item">儿媳<el-input v-model="form.familyMembers.daughterInLaw" class="tiny-input" />名</span>
-              <span class="sub-item">孙子女<el-input v-model="form.familyMembers.grandChildren" class="tiny-input" />名</span>
+              <span class="sub-item">儿子<el-input :disabled="isDetail" v-model="form.familyMembers.son" class="tiny-input" />名</span>
+              <span class="sub-item">女儿<el-input :disabled="isDetail" v-model="form.familyMembers.daughter" class="tiny-input" />名</span>
+              <span class="sub-item">女婿<el-input :disabled="isDetail" v-model="form.familyMembers.sonInLaw" class="tiny-input" />名</span>
+              <span class="sub-item">儿媳<el-input :disabled="isDetail" v-model="form.familyMembers.daughterInLaw" class="tiny-input" />名</span>
+              <span class="sub-item">孙子女<el-input :disabled="isDetail" v-model="form.familyMembers.grandChildren" class="tiny-input" />名</span>
             </div>
 
             <div class="form-item">
               <span class="item-number">5.</span>
               <span class="item-label">主要照顾亲属:</span>
-              <span class="sub-item">姓名:<el-input v-model="form.mainCaregiver.name" class="short-input" /></span>
-              <span class="sub-item">关系:<el-input v-model="form.mainCaregiver.relation" class="short-input" /></span>
+              <span class="sub-item">姓名:<el-input :disabled="isDetail" v-model="form.mainCaregiver.name" class="short-input" /></span>
+              <span class="sub-item">关系:<el-input :disabled="isDetail" v-model="form.mainCaregiver.relation" class="short-input" /></span>
             </div>
 
             <div class="form-item">
               <span class="item-number">6.</span>
               <span class="item-label">入院前居住情况:</span>
-              <el-radio-group v-model="form.preAdmissionLiving" class="inline-radio-group">
+              <el-radio-group :disabled="isDetail" v-model="form.preAdmissionLiving" class="inline-radio-group">
                 <el-radio v-for="opt in preAdmissionLivingOptions" :key="opt.value" :value="opt.value">
                   {{ opt.label }}
                 </el-radio>
               </el-radio-group>
               <template v-if="form.preAdmissionLiving === '其他'">
-                <el-input v-model="form.preAdmissionLivingOther" class="other-input" />
+                <el-input :disabled="isDetail" v-model="form.preAdmissionLivingOther" class="other-input" />
               </template>
             </div>
 
             <div class="form-item">
               <span class="item-number">7.</span>
               <span class="item-label">家人/亲友到访情况:</span>
-              <el-radio-group v-model="form.familyVisitFrequency" class="inline-radio-group">
+              <el-radio-group :disabled="isDetail" v-model="form.familyVisitFrequency" class="inline-radio-group">
                 <el-radio v-for="opt in familyVisitFrequencyOptions" :key="opt.value" :value="opt.value">
                   {{ opt.label }}
                 </el-radio>
               </el-radio-group>
               <template v-if="form.familyVisitFrequency === 'not_applicable'">
-                <el-input v-model="form.familyVisitFrequencyOther" class="other-input" />
+                <el-input :disabled="isDetail" v-model="form.familyVisitFrequencyOther" class="other-input" />
               </template>
             </div>
           </div>
@@ -147,14 +147,14 @@
             <div class="form-item">
               <span class="item-number">8.</span>
               <span class="item-label">健康状况:</span>
-              <el-radio-group v-model="form.healthStatus" class="inline-radio-group">
+              <el-radio-group :disabled="isDetail" v-model="form.healthStatus" class="inline-radio-group">
                 <el-radio v-for="opt in healthStatusOptions" :key="opt.value" :value="opt.value">
                   {{ opt.label }}
                 </el-radio>
               </el-radio-group>
               <template v-if="form.healthStatus === 'poor'">
                 <span class="sub-label">(请注明病类:</span>
-                <el-input v-model="form.healthStatusDisease" class="short-input" />
+                <el-input :disabled="isDetail" v-model="form.healthStatusDisease" class="short-input" />
                 <span class="sub-label">)</span>
               </template>
             </div>
@@ -167,45 +167,45 @@
             <div class="form-item">
               <span class="item-number">9.</span>
               <span class="item-label">教育程度:</span>
-              <el-radio-group v-model="form.educationLevel" class="inline-radio-group">
+              <el-radio-group :disabled="isDetail" v-model="form.educationLevel" class="inline-radio-group">
                 <el-radio v-for="opt in educationLevelOptions" :key="opt.value" :value="opt.value">
                   {{ opt.label }}
                 </el-radio>
               </el-radio-group>
               <template v-if="form.educationLevel === '其他'">
-                <el-input v-model="form.educationLevelOther" class="other-input" />
+                <el-input :disabled="isDetail" v-model="form.educationLevelOther" class="other-input" />
               </template>
             </div>
 
             <div class="form-item">
               <span class="item-number">10.</span>
               <span class="item-label">政治面貌:</span>
-              <el-input v-model="form.politicalStatus" class="medium-input" />
+              <el-input :disabled="isDetail" v-model="form.politicalStatus" class="medium-input" />
             </div>
 
             <div class="form-item">
               <span class="item-number">11.</span>
               <span class="item-label">以往职业:</span>
-              <el-input v-model="form.previousOccupation" class="medium-input" />
+              <el-input :disabled="isDetail" v-model="form.previousOccupation" class="medium-input" />
             </div>
 
             <div class="form-item">
               <span class="item-number">12.</span>
               <span class="item-label">以前是否入住过养老院:</span>
-              <el-radio-group v-model="form.hasStayedInNursingHome" class="inline-radio-group">
+              <el-radio-group :disabled="isDetail" v-model="form.hasStayedInNursingHome" class="inline-radio-group">
                 <el-radio v-for="opt in hasStayedInNursingHomeOptions" :key="opt.value" :value="opt.value">
                   {{ opt.label }}
                 </el-radio>
               </el-radio-group>
               <template v-if="form.hasStayedInNursingHome === '有'">
-                <el-input v-model="form.nursingHomeStayDetail" class="other-input" />
+                <el-input :disabled="isDetail" v-model="form.nursingHomeStayDetail" class="other-input" />
               </template>
             </div>
 
             <div class="form-item">
               <span class="item-number">13.</span>
               <span class="item-label">来老人院的原因:</span>
-              <el-input v-model="form.reasonForAdmission" class="long-input" />
+              <el-input :disabled="isDetail" v-model="form.reasonForAdmission" class="long-input" />
             </div>
           </div>
 
@@ -216,13 +216,13 @@
             <div class="form-item">
               <span class="item-number">14.</span>
               <span class="item-label">院内好友:</span>
-              <el-input v-model="form.friendsInHome" class="long-input" />
+              <el-input :disabled="isDetail" v-model="form.friendsInHome" class="long-input" />
             </div>
 
             <div class="form-item">
               <span class="item-number">15.</span>
               <span class="item-label">社交喜好:</span>
-              <el-radio-group v-model="form.socialPreference" class="inline-radio-group">
+              <el-radio-group :disabled="isDetail" v-model="form.socialPreference" class="inline-radio-group">
                 <el-radio v-for="opt in socialPreferenceOptions" :key="opt.value" :value="opt.value">
                   {{ opt.label }}
                 </el-radio>
@@ -232,7 +232,7 @@
             <div class="form-item">
               <span class="item-number">16.</span>
               <span class="item-label">心情不好时的反应:</span>
-              <el-input v-model="form.badMoodReaction" class="long-input" />
+              <el-input :disabled="isDetail" v-model="form.badMoodReaction" class="long-input" />
             </div>
 
             <div class="form-item hobby-item">
@@ -241,15 +241,15 @@
                 <span class="item-label">兴趣爱好:</span>
               </div>
 
-              <el-checkbox-group v-model="form.hobbies" class="hobby-checkbox-group">
-                <el-checkbox v-for="opt in hobbyOptions" :key="opt.value" :value="opt.value">
+              <el-checkbox-group :disabled="isDetail" v-model="form.hobbies" class="hobby-checkbox-group">
+                <el-checkbox  v-for="opt in hobbyOptions" :key="opt.value" :value="opt.value">
                   {{ opt.label }}
                 </el-checkbox>
               </el-checkbox-group>
               <template v-if="form.hobbies.includes('其他')">
                 <div class="hobby-other">
                   <span class="sub-label">(请注明:</span>
-                  <el-input v-model="form.hobbiesOther" class="short-input" />
+                  <el-input :disabled="isDetail" v-model="form.hobbiesOther" class="short-input" />
                   <span class="sub-label">)</span>
                 </div>
               </template>
@@ -258,36 +258,22 @@
             <div class="form-item">
               <span class="item-number">18.</span>
               <span class="item-label">特别喜欢/重视的东西或节日等:</span>
-              <el-input v-model="form.specialFestival" class="long-input" />
+              <el-input :disabled="isDetail" v-model="form.specialFestival" class="long-input" />
             </div>
 
             <div class="form-item">
               <span class="item-number">19.</span>
               <span class="item-label">其他特别的事项记录:</span>
-              <el-input v-model="form.otherSpecialNotes" class="long-input" />
+              <el-input :disabled="isDetail" v-model="form.otherSpecialNotes" class="long-input" />
             </div>
           </div>
         </div>
 
     </div>
-    <div><div style="font-weight: bold">这是提交字段,后端可照此字段创建数据表</div>:
-      {
-      "fileNumber": "NS20190098",
-      "elderName": "陈木娣",
-      "bedName": "养护楼-4层-407-04",
-      "checkInTime": 1562284800000,
-      "elderId": 17563,
-      "tenantId": 211,
-      "assessmentData": "{\"assessor\":\"啊啊\",\"assessDate\":\"2026-03-14\",\"incomeSource\":[],\"incomeSourceOther\":\"\",\"financialManagement\":[],\"financialManagementOther\":\"\",\"maritalStatus\":\"已婚\",\"familyMembers\":{\"son\":\"1\",\"daughter\":\"\",\"sonInLaw\":\"\",\"daughterInLaw\":\"\",\"grandChildren\":\"\"},\"mainCaregiver\":{\"name\":\"2\",\"relation\":\"\"},\"preAdmissionLiving\":\"\",\"preAdmissionLivingOther\":\"\",\"familyVisitFrequency\":\"\",\"familyVisitFrequencyOther\":\"\",\"healthStatus\":\"\",\"healthStatusDisease\":\"\",\"educationLevel\":\"高中\",\"educationLevelOther\":\"\",\"politicalStatus\":\"\",\"previousOccupation\":\"\",\"hasStayedInNursingHome\":\"\",\"nursingHomeStayDetail\":\"\",\"reasonForAdmission\":\"\",\"friendsInHome\":\"\",\"socialPreference\":\"\",\"badMoodReaction\":\"\",\"hobbies\":[],\"hobbiesOther\":\"\",\"specialFestival\":\"\",\"otherSpecialNotes\":\"\"}",
-      "assessor": "啊啊",
-      "assessDate": "2026-03-14",
-      "orgType": 1
-      }
-    </div>
 
     <template #footer>
       <el-button @click="handleClosed">关闭</el-button>
-      <el-button  type="success" @click="handleExport">打印</el-button>
+      <el-button v-if="isDetail" type="success" @click="handleExport">打印</el-button>
       <el-button style="margin-left: 22px;margin-right: 30px" v-loading="formLoading" type="primary" v-show="!isDetail" @click="submitForm">确定</el-button>
     </template>
 
@@ -499,10 +485,10 @@ const open = async (tenantId, id?: any, detail: boolean = false) => {
     await loadPsychologicalSocialData(id)
   } else {
     title.value = "新增-长者心理社交情况"
-    // 如果选择了长者,尝试加载已有的心理社交情况数据
-    if (dataForm.value.elderId) {
-      await loadPsychologicalSocialByElderId(dataForm.value.elderId)
-    }
+    // // 如果选择了长者,尝试加载已有的心理社交情况数据
+    // if (dataForm.value.elderId) {
+    //   await loadPsychologicalSocialByElderId(dataForm.value.elderId)
+    // }
   }
 }
 
@@ -662,10 +648,11 @@ const loadPsychologicalSocialData = async (id: number) => {
       dataForm.value.checkInTime = res.checkInTime || ''
       dataForm.value.fileNumber = res.fileNumber || ''
       dataForm.value.elderAge = res.elderAge || ''
+      await selectElderRef.value.upData(res.elderName, res.elderId)
 
-      // 解析 assessmentData
-      if (res.assessmentData) {
-        const formData = JSON.parse(res.assessmentData)
+      // 解析 assessData
+      if (res.assessData) {
+        const formData = JSON.parse(res.assessData)
         deserializeFormData(formData)
       }
     }
@@ -678,8 +665,8 @@ const loadPsychologicalSocialData = async (id: number) => {
 const loadPsychologicalSocialByElderId = async (elderId: number) => {
   try {
     const res = await psychologicalSocialGetByElderId(elderId)
-    if (res && res.assessmentData) {
-      const formData = JSON.parse(res.assessmentData)
+    if (res && res.assessData) {
+      const formData = JSON.parse(res.assessData)
       deserializeFormData(formData)
     }
   } catch (error) {
@@ -696,10 +683,10 @@ const submitForm = async () => {
   formLoading.value = true
   // 提交请求
   try {
-    const assessmentData = serializeFormData()
+    const assessData = serializeFormData()
     const tempParams = {
       ...dataForm.value,
-      assessmentData: JSON.stringify(assessmentData),
+      assessData: JSON.stringify(assessData),
       assessor: form.assessor,
       assessDate: form.assessDate ? dayjs(form.assessDate).format('YYYY-MM-DD') : ''
     }

+ 22 - 11
src/views/social-worker/assessment/psychological-social-situation/index.vue

@@ -17,14 +17,21 @@
         />
       </el-form-item>
 
-
+      <el-form-item label="评估人">
+        <el-input
+          v-model="queryParams.assessor"
+          placeholder="记录人"
+          class="!w-240px"
+          clearable
+        />
+      </el-form-item>
 
       <el-form-item label="记录日期">
         <el-date-picker
           size="default"
           ref="selectRef"
           class="!w-240px"
-          v-model="queryParams.recordDate"
+          v-model="queryParams.assessorDate"
           type="daterange"
           :clearable="true"
           :editable="false"
@@ -48,7 +55,7 @@
 
       <ButtonAdd @click="openForm(undefined)"  />
       <!--      <el-button @click="inputH" type="success"><Icon icon="fa:cloud-upload" :size="16" class="mr-1"/>导入</el-button>-->
-      <ButtonImport @click="handleImportCard"  />
+<!--      <ButtonImport @click="handleImportCard"  />-->
 
 
     </div>
@@ -63,8 +70,8 @@
 
 
       <el-table-column prop="elderName" header-align="center" align="center" label="长者姓名" min-width="150" show-overflow-tooltip/>
-      <el-table-column prop="bedName" header-align="center" align="center" label="床位号" min-width="200" show-overflow-tooltip/>
-      <el-table-column prop="recordDate" header-align="center" align="center" label="记录日期" min-width="200" show-overflow-tooltip/>
+      <el-table-column prop="assessor" header-align="center" align="center" label="评估人" min-width="200" show-overflow-tooltip/>
+      <el-table-column prop="assessDate" header-align="center" align="center" label="记录日期" min-width="200" show-overflow-tooltip/>
 
       <el-table-column prop="creator" header-align="center" align="center" label="记录人" min-width="200" show-overflow-tooltip/>
 
@@ -146,6 +153,10 @@ import { useUserStore } from '@/store/modules/user'
 import {formatTimestamp, getCurrentMonthRange} from "@/utils/dateUtil";
 import Import from "@/components/ImportFile/index.vue";
 import {restraintCreatePage, restraintDelete} from "@/api/elderly/nursing/keep-fit";
+import {
+  psychologicalSocialDelete,
+  psychologicalSocialPage
+} from "@/api/elderly/assessment/psychological-social";
 const message = useMessage() // 消息弹窗
 const { t } = useI18n() // 国际化
 const userStore = useUserStore()
@@ -173,8 +184,8 @@ let queryParams = reactive({
   pageNo: 1,
   pageSize: 10,
   elderName: '',
-  creator: '',
-  recordDate: getCurrentMonthRange(),
+  assessor: '',
+  assessorDate: getCurrentMonthRange(),
   tenantIds: userStore.orgTenantId
 })
 const queryFormRef = ref() // 搜索的表单
@@ -221,7 +232,7 @@ const getList = async () => {
   loading.value = true
   try {
     //let queryP = {...queryParams,discoveryTime:queryParams.discoveryTime?[queryParams.discoveryTime[0]+" 00:00:00",queryParams.discoveryTime[1]+" 23:59:59"]:null}
-    const data = await restraintCreatePage(queryParams)
+    const data = await psychologicalSocialPage(queryParams)
     list.value = data.list
     total.value = data.total
   } finally {
@@ -241,9 +252,9 @@ const handleQuery = async () => {
 /** 重置按钮操作 */
 const resetQuery = () => {
   queryParams.elderName = ''
-  queryParams.creator = ''
+  queryParams.assessor = ''
   queryParams.tenantIds = userStore.orgTenantId
-  queryParams.recordDate= getCurrentMonthRange()
+  queryParams.assessorDate= getCurrentMonthRange()
   queryFormRef.value.resetFields()
   handleQuery()
 }
@@ -279,7 +290,7 @@ const openClose = async (item) => {
     if (res == 'confirm') {
       // 发起
       try {
-        const res = await restraintDelete(item.id)
+        const res = await psychologicalSocialDelete(item.id)
         if (res){
           message.success(t('common.updateSuccess'))
         }