Parcourir la source

集团账号查看的时候添加机构名称

chenjun il y a 1 mois
Parent
commit
7700733699
26 fichiers modifiés avec 2293 ajouts et 1457 suppressions
  1. 93 27
      src/components/BedCardComponent/index.vue
  2. 67 63
      src/components/BedCardModal/index.vue
  3. 11 12
      src/layout/components/Setting/src/Setting.vue
  4. 32 0
      src/utils/dict.ts
  5. 13 10
      src/utils/outBedCard.ts
  6. 81 61
      src/views/elderly/apply/nine-precautions/MMSE/index.vue
  7. 94 50
      src/views/elderly/apply/nine-precautions/anti-entertainment/index.vue
  8. 86 50
      src/views/elderly/apply/nine-precautions/asphyxiation-by-choking/index.vue
  9. 83 63
      src/views/elderly/apply/nine-precautions/attack/index.vue
  10. 80 58
      src/views/elderly/apply/nine-precautions/commit-suicide/index.vue
  11. 84 61
      src/views/elderly/apply/nine-precautions/communication/index.vue
  12. 95 52
      src/views/elderly/apply/nine-precautions/daily-life/index.vue
  13. 94 51
      src/views/elderly/apply/nine-precautions/empyrosis/index.vue
  14. 94 51
      src/views/elderly/apply/nine-precautions/equilibrium/index.vue
  15. 94 51
      src/views/elderly/apply/nine-precautions/fall-down/index.vue
  16. 94 51
      src/views/elderly/apply/nine-precautions/fall-prevention-measures/index.vue
  17. 77 43
      src/views/elderly/apply/nine-precautions/nutritional-risk/index.vue
  18. 94 51
      src/views/elderly/apply/nine-precautions/pressure-sores/index.vue
  19. 127 89
      src/views/elderly/apply/nine-precautions/risk-disclosure-statement/index.vue
  20. 94 51
      src/views/elderly/apply/nine-precautions/wander-away/index.vue
  21. 321 220
      src/views/elderly/assess/synthetic-ability/Print.vue
  22. 301 280
      src/views/elderly/assess/synthetic-ability/components/Result.vue
  23. 12 0
      src/views/elderly/contracts/risk-disclosure-statement/index.vue
  24. 3 3
      src/views/elderly/elder/elder-file/Detail.vue
  25. 51 5
      src/views/elderly/elder/health-record/Form.vue
  26. 18 4
      src/views/elderly/restaurant/satisfactionSurvey/index.vue

+ 93 - 27
src/components/BedCardComponent/index.vue

@@ -4,8 +4,8 @@
     <div class="bed-card">
       <!-- 头部信息 -->
       <div class="card-header">
-        <h2 class="header-title">床头卡信息</h2>
-        <div class="header-room">{{ patientData.roomName || 'F301-1' }}</div>
+        <h2 class="header-title">长者床头卡</h2>
+        <div class="header-room">{{ patientData.roomName || '' }}</div>
         <img src="../../assets/imgs/logo_card.png" alt="颐年医养" class="header-logo" />
       </div>
 
@@ -13,8 +13,10 @@
         <!-- 左侧床号信息 -->
         <div class="left-section">
           <div class="bed-info">
-            <span class="bed-letter">{{ patientData.bedName || '' }}</span>
-            <span class="bed-text">床</span>
+            <div class="bed-letter" v-for="(item, index) in bedList" :key="index">
+              <span>{{ item || '' }}</span>
+              <span v-if="index == (bedList || []).length - 1" class="bed-text">床</span>
+            </div>
           </div>
 
           <!-- 二维码 -->
@@ -28,7 +30,7 @@
         <div class="right-section">
           <table class="info-table">
             <!-- 基本信息行 -->
-            <tr>
+            <tr class="row-basic">
               <td class="table-label">姓名</td>
               <td class="table-data">{{ patientData.elderName || '--' }}</td>
               <td class="table-label">性别</td>
@@ -40,7 +42,7 @@
             </tr>
 
             <!-- 护理等级 / 照护要点 / 过敏史 -->
-            <tr>
+            <tr class="row-care">
               <td class="table-label">护理等级</td>
               <td class="table-data">{{ patientData.careLevel || '--' }}</td>
               <td class="table-label">照护要点</td>
@@ -54,7 +56,7 @@
             </tr>
 
             <!-- 既往病史 / 用药史 -->
-            <tr>
+            <tr class="row-medical">
               <td class="table-label">既往病史</td>
               <td class="table-data" style="font-size: 14px" colspan="3">{{
                 patientData.medicalHistory || '--'
@@ -66,7 +68,7 @@
             </tr>
 
             <!-- 饮食要点 -->
-            <tr>
+            <tr class="row-diet">
               <td class="table-label">饮食要点</td>
               <td class="table-data diet-cell" colspan="7">
                 <div v-if="hasDietGuidelines" class="diet-list">
@@ -76,7 +78,9 @@
                     class="diet-item"
                     :class="{ active: isDietActive(item.label) }"
                   >
-                    <el-icon v-if="isDietActive(item.label)" style="margin-right: 2px" size="22"><Check /></el-icon>
+                    <el-icon v-if="isDietActive(item.label)" style="margin-right: 2px" size="22"
+                      ><Check
+                    /></el-icon>
                     <!--                    <span v-if="isDietActive(item.label)" class="diet-check">√</span>-->
                     <span class="diet-name" style="font-size: 16px">{{ item.label }}</span>
                   </div>
@@ -86,7 +90,7 @@
             </tr>
 
             <!-- 九防注意事项 -->
-            <tr>
+            <tr class="row-prevention">
               <td class="table-label prevention-title">
                 <div class="vertical-text">九防注意事项</div>
               </td>
@@ -103,13 +107,21 @@
                       <span class="risk-text">{{ getRiskText(patientData[item.field]) }}</span>
                     </div> -->
                     <img
-                      v-if="patientData[item.field]"
+                      v-if="
+                        patientData[item.field] &&
+                        getPreventionImage(item.field, patientData[item.field])
+                      "
                       :src="getPreventionImage(item.field, patientData[item.field])"
                       :alt="item.name"
                       class="placeholder-image"
                     />
-                    <div v-else class="prevention-image placeholder-image">
-                      <span>{{ item.name }}</span>
+                    <div
+                      v-else
+                      class="prevention-image placeholder-image"
+                      style="display: flex; flex-direction: column"
+                    >
+                      <div style="font-size: 14px; color: #666666">{{ item.name }}</div>
+                      <div style="font-size: 14px; color: #666666">(无风险)</div>
                     </div>
                     <!--          <div class="prevention-name">{{ item.name }}</div>-->
                   </div>
@@ -118,7 +130,7 @@
             </tr>
 
             <!-- 责任人员 -->
-            <tr>
+            <tr class="row-staff">
               <td class="table-label"><div>责任</div><div>护理员</div></td>
               <td class="table-data" colspan="2">{{
                 patientData.responsibleStaff?.nurseAide || '--'
@@ -220,12 +232,16 @@ const getRiskText = (value: string) => {
 // 根据风险等级获取九防图片地址
 const getPreventionImage = (field: string, level: string) => {
   const levelMap: Record<string, string> = {
-    '低': '01',
-    '中': '02',
-    '高': '03'
+    低: '01',
+    中: '02',
+    高: '03'
+  }
+  const suffix = levelMap[level] || '00'
+  if (suffix === '00') {
+    return false
+  } else {
+    return new URL(`../../assets/jiufang/${field}-${suffix}.png`, import.meta.url).href
   }
-  const suffix = levelMap[level] || '01'
-  return new URL(`../../assets/jiufang/${field}-${suffix}.png`, import.meta.url).href
 }
 
 // 患者数据
@@ -364,11 +380,17 @@ const exportAsImage = async (type: number) => {
   }
 }
 
+const bedList = ref<string[]>()
+
 // 更新患者数据的方法
 const updatePatientData = (data: any) => {
   qrCodeContent.value =
     'https://callback.ynims.com/qrcode/elderlyId?=' + data.qr?.eId + '&tenantId=' + data.qr?.tId
   Object.assign(patientData, data)
+  try {
+    bedList.value = patientData.bedName.toString().split('-')
+    //console.log(bedList.value)
+  } catch (e) {}
 }
 
 // 重置临时zip数据
@@ -395,12 +417,15 @@ defineExpose({
 }
 
 .bed-card {
-  min-width: 900px;
+  width: 980px;
+  height: 640px;
   background-color: white;
   border: 1px solid #e0e0e0;
   box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
   position: relative;
   overflow: hidden;
+  display: flex;
+  flex-direction: column;
 }
 
 .card-header {
@@ -410,6 +435,9 @@ defineExpose({
   display: flex;
   justify-content: space-between;
   align-items: center;
+  height: 76px;
+  box-sizing: border-box;
+  flex-shrink: 0;
 }
 
 .header-title {
@@ -435,7 +463,9 @@ defineExpose({
 
 .card-main {
   display: flex;
-  min-height: 480px;
+  flex: 1;
+  min-height: 0;
+  overflow: hidden;
 }
 
 .left-section {
@@ -446,6 +476,8 @@ defineExpose({
   display: flex;
   flex-direction: column;
   align-items: center;
+  justify-content: space-between;
+  flex-shrink: 0;
 }
 
 .room-number {
@@ -456,14 +488,14 @@ defineExpose({
 }
 
 .bed-info {
-  font-size: 36px;
+  font-size: 32px;
   font-weight: bold;
   color: #ff6b00;
   margin-bottom: 20px;
 }
 
 .bed-letter {
-  margin-right: 10px;
+  padding-top: 10px;
 }
 
 .qrcode-container {
@@ -478,14 +510,45 @@ defineExpose({
 
 .right-section {
   flex: 1;
+  min-width: 0;
   padding: 0;
+  height: 100%;
 }
 
 .info-table {
   width: 100%;
+  height: 100%;
   border-collapse: collapse;
   font-size: 18px;
-  height: 100%;
+  table-layout: fixed;
+}
+
+.info-table tr {
+  height: 86px;
+}
+
+.info-table .row-basic {
+  height: 50px;
+}
+
+.info-table .row-care {
+  height: 70px;
+}
+
+.info-table .row-medical {
+  height: 70px;
+}
+
+.info-table .row-diet {
+  height: 50px;
+}
+
+.info-table .row-prevention {
+  height: 200px;
+}
+
+.info-table .row-staff {
+  height: 60px;
 }
 
 .info-table td {
@@ -493,18 +556,21 @@ defineExpose({
   padding: 10px;
   text-align: center;
   vertical-align: middle;
+  overflow: hidden;
 }
 
 .table-label {
   font-weight: bold;
   background-color: #f5f5f5;
-  width: 80px;
+  width: 90px;
   white-space: nowrap;
 }
 
 .table-data {
   text-align: left;
   color: #333;
+  overflow: hidden;
+  white-space: wrap;
 }
 
 .diet-cell {
@@ -565,7 +631,7 @@ defineExpose({
   writing-mode: vertical-rl;
   text-orientation: upright;
   letter-spacing: 4px;
-  font-size: 16px;
+  font-size: 18px;
   font-weight: bold;
   margin: 0 auto;
 }
@@ -579,7 +645,6 @@ defineExpose({
   grid-template-columns: repeat(5, 1fr);
   grid-template-rows: repeat(2, 1fr);
   height: 100%;
-  min-height: 180px;
 }
 
 .prevention-item {
@@ -678,6 +743,7 @@ defineExpose({
 
 .card-footer {
   height: 8px;
+  flex-shrink: 0;
   background: linear-gradient(90deg, #e78d35 0%, #4caf50 100%);
   clear: both;
 }

+ 67 - 63
src/components/BedCardModal/index.vue

@@ -8,33 +8,32 @@
   >
     <div class="dialog-content">
       <slot>
-        <BedCardComponent
-          ref="bedCardRef"
-          :patientData="patientData"
-        />
+        <BedCardComponent ref="bedCardRef" :patientData="patientData" />
       </slot>
     </div>
     <template #footer>
       <div class="dialog-footer">
-<!--        <el-popover-->
-<!--          placement="top-start"-->
-<!--          :width="200"-->
-<!--          trigger="hover"-->
-<!--          content="下载后,让家属扫此二维码可以关注“颐年健康产业集团”公众号,家属关注公众号之后,根据指引再注册‘颐年家属端’小程序,并绑定长者之后可以接收账单推送。(注意:还需要在编辑长者档案中把托养人设置为账单推送人,并设置手机号码!)"-->
-<!--        >-->
-<!--          <template #reference>-->
-<!--            <el-button @click="handleDownload" type="primary" link >下载‘颐年健康产业集团’公众号二维码</el-button>-->
-<!--          </template>-->
-<!--        </el-popover>-->
-
-        <el-button @click="handleImport" type="warning" style="margin-left: auto">导出床头卡</el-button>
+        <!--        <el-popover-->
+        <!--          placement="top-start"-->
+        <!--          :width="200"-->
+        <!--          trigger="hover"-->
+        <!--          content="下载后,让家属扫此二维码可以关注“颐年健康产业集团”公众号,家属关注公众号之后,根据指引再注册‘颐年家属端’小程序,并绑定长者之后可以接收账单推送。(注意:还需要在编辑长者档案中把托养人设置为账单推送人,并设置手机号码!)"-->
+        <!--        >-->
+        <!--          <template #reference>-->
+        <!--            <el-button @click="handleDownload" type="primary" link >下载‘颐年健康产业集团’公众号二维码</el-button>-->
+        <!--          </template>-->
+        <!--        </el-popover>-->
+
+        <el-button @click="handleImport" type="warning" style="margin-left: auto"
+          >导出床头卡</el-button
+        >
         <el-button @click="handleClose" style="margin-left: 30px">{{ closeText }}</el-button>
         <slot name="footer-extra"></slot>
       </div>
 
-<!--      <div v-if="description" class="dialog-description">-->
-<!--        <p><small>{{ description }}</small></p>-->
-<!--      </div>-->
+      <!--      <div v-if="description" class="dialog-description">-->
+      <!--        <p><small>{{ description }}</small></p>-->
+      <!--      </div>-->
     </template>
   </el-dialog>
 </template>
@@ -42,30 +41,32 @@
 <script setup lang="ts">
 import { ref, watch, nextTick } from 'vue'
 import BedCardComponent from '@/components/BedCardComponent/index.vue'
-import {InfoFilled} from "@element-plus/icons-vue";
 
 // 定义组件属性并设置默认值
-const props = withDefaults(defineProps<{
-  modelValue: boolean
-  title?: string
-  width?: string
-  patientData?: any
-  description?: string
-  closeText?: string
-  closeOnClickModal?: boolean
-}>(), {
-  title: '床头卡预览',
-  width: '900px',
-  description: '* 扫此二维码可以关注“颐年健康产业集团”公众号,家属绑定并注册小程序之后,可以',
-  closeText: '关闭预览',
-  closeOnClickModal: false
-})
+const props = withDefaults(
+  defineProps<{
+    modelValue: boolean
+    title?: string
+    width?: string
+    patientData?: any
+    description?: string
+    closeText?: string
+    closeOnClickModal?: boolean
+  }>(),
+  {
+    title: '床头卡预览',
+    width: '900px',
+    description: '* 扫此二维码可以关注“颐年健康产业集团”公众号,家属绑定并注册小程序之后,可以',
+    closeText: '关闭预览',
+    closeOnClickModal: false
+  }
+)
 
 // 定义事件
 const emit = defineEmits<{
   'update:modelValue': [value: boolean]
-  'close': []
-  'importCard':[]
+  close: []
+  importCard: []
 }>()
 
 // 床头卡组件引用
@@ -75,13 +76,16 @@ const bedCardRef = ref(null)
 const visible = ref(props.modelValue)
 
 // 监听props变化,同步visible值
-watch(() => props.modelValue, (newVal) => {
-  visible.value = newVal
-  // 当弹窗打开时,更新患者数据
-  if (newVal) {
-    updatePatientData({})
+watch(
+  () => props.modelValue,
+  (newVal) => {
+    visible.value = newVal
+    // 当弹窗打开时,更新患者数据
+    if (newVal) {
+      updatePatientData({})
+    }
   }
-})
+)
 
 // 监听visible变化,向父组件发送更新事件
 watch(visible, (newVal) => {
@@ -95,18 +99,19 @@ const updatePatientData = async (data) => {
   const sourceData = data && Object.keys(data).length > 0 ? data : props.patientData
   if (bedCardRef.value && typeof bedCardRef.value.updatePatientData === 'function' && sourceData) {
     // 处理床位信息
-    let beStr = ['','']
-    try {
-      const bdList = sourceData.bedName?.toString().split('-')
-      beStr[0] = bdList[bdList?.length-2] || ''
-      beStr[1] = bdList[bdList?.length-1] || ''
-    } catch (e) {
-      console.error('处理床位信息失败:', e)
-    }
+    // let beStr = ['', '']
+    // try {
+    //   const bdList = sourceData.bedName?.toString().split('-')
+    //   beStr[0] = bdList[bdList?.length - 2] || ''
+    //   beStr[1] = bdList[bdList?.length - 1] || ''
+    //   console.log('处理处理')
+    // } catch (e) {
+    //   console.error('处理床位信息失败:', e)
+    // }
 
     const patientData = {
-      roomName: beStr[0],
-      bedName: beStr[1],
+      roomName: sourceData.roomName,
+      bedName: sourceData.bedName,
       elderName: sourceData.elderName || '--',
       elderSex: sourceData.elderSex?.toString() === '1' ? '男' : '女',
       birthday: sourceData.birthday ? formatDate(sourceData.birthday, 'YYYY-MM-DD') : '--',
@@ -135,7 +140,7 @@ const updatePatientData = async (data) => {
         eId: sourceData.id || sourceData.qr?.eId || '',
         tId: sourceData.tenantId || sourceData.qr?.tId || ''
       }
-    };
+    }
 
     bedCardRef.value.updatePatientData(patientData)
   }
@@ -159,7 +164,7 @@ const formatDate = (date, format) => {
       .replace('yyyy', year)
       .replace('MM', month)
       .replace('DD', day)
-  }catch (_){}
+  } catch (_) {}
   return '--'
 }
 
@@ -178,20 +183,20 @@ const handleImport = () => {
   emit('importCard')
 }
 
-const handleDownload = ()=>{
+const handleDownload = () => {
   // 创建一个临时链接元素
-  const link = document.createElement('a');
+  const link = document.createElement('a')
   // 设置链接地址为图片资源路径
-  link.href = '/src/assets/imgs/ynjkcyjt.jpg';
+  link.href = '/src/assets/imgs/ynjkcyjt.jpg'
   // 设置下载文件名为 '颐年健康产业集团公众号二维码.jpg'
-  link.download = '颐年健康产业集团公众号二维码.jpg';
+  link.download = '颐年健康产业集团公众号二维码.jpg'
 
   // 将链接元素添加到文档中
-  document.body.appendChild(link);
+  document.body.appendChild(link)
   // 模拟点击链接触发下载
-  link.click();
+  link.click()
   // 下载完成后移除链接元素
-  document.body.removeChild(link);
+  document.body.removeChild(link)
 }
 // 显示弹窗
 const show = () => {
@@ -215,7 +220,6 @@ defineExpose({
 .dialog-content {
   display: flex;
   justify-content: center;
-
 }
 
 .dialog-footer {

+ 11 - 12
src/layout/components/Setting/src/Setting.vue

@@ -4,15 +4,12 @@ import { useClipboard, useCssVar } from '@vueuse/core'
 
 import { CACHE_KEY, useCache } from '@/hooks/web/useCache'
 import { useDesign } from '@/hooks/web/useDesign'
-
 import { setCssVar, trim } from '@/utils'
 import { colorIsDark, hexToRGB, lighten } from '@/utils/color'
 import { useAppStore } from '@/store/modules/app'
 import { useUserStore } from '@/store/modules/user'
-import { ThemeSwitch } from '@/layout/components/ThemeSwitch'
 import ColorRadioPicker from './components/ColorRadioPicker.vue'
 import InterfaceDisplay from './components/InterfaceDisplay.vue'
-import LayoutRadioPicker from './components/LayoutRadioPicker.vue'
 import { usePermissionStore } from '@/store/modules/permission'
 defineOptions({ name: 'Setting' })
 const permissionStore = usePermissionStore()
@@ -245,16 +242,19 @@ const clear = () => {
   window.location.reload()
 }
 
-onMounted(()=>{
+onMounted(() => {
   const el = document.documentElement
-  if(userStore.getIsBusiness){
-    el.style.setProperty('--left-menu-max-width', '320px');
-  }else{
-    el.style.setProperty('--left-menu-max-width', '200px');
+  if (userStore.getIsBusiness) {
+    el.style.setProperty('--left-menu-max-width', '320px')
+  } else {
+    el.style.setProperty('--left-menu-max-width', '200px')
   }
 
   let themeColor = ''
   setSystemTheme(appStore.getTheme.elColorPrimary)
+
+  appStore.setLayout('classic')
+
 })
 </script>
 
@@ -279,8 +279,8 @@ onMounted(()=>{
       <ThemeSwitch /> -->
 
       <!-- 布局 -->
-      <ElDivider>{{ t('setting.layout') }}</ElDivider>
-      <LayoutRadioPicker />
+      <!--      <ElDivider>{{ t('setting.layout') }}</ElDivider>-->
+      <!--      <LayoutRadioPicker />-->
 
       <!-- 系统主题 -->
       <ElDivider>{{ t('setting.systemTheme') }}</ElDivider>
@@ -340,7 +340,6 @@ onMounted(()=>{
       <!-- 界面显示 -->
       <ElDivider>{{ t('setting.interfaceDisplay') }}</ElDivider>
       <InterfaceDisplay />
-
     </template>
 
     <ElDivider />
@@ -360,6 +359,6 @@ $prefix-cls: #{$namespace}-setting;
 
 .#{$prefix-cls} {
   border-radius: 6px 0 0 6px;
-  z-index: 1200;/*修正没有z-index会被表格层覆盖,值不要超过4000*/
+  z-index: 1200; /*修正没有z-index会被表格层覆盖,值不要超过4000*/
 }
 </style>

+ 32 - 0
src/utils/dict.ts

@@ -74,6 +74,38 @@ export const getBoolDictOptions = (dictType: string) => {
   return dictOption
 }
 
+/**
+ * 在树形结构中根据 id (value) 查找并返回 label
+ * @param {Array} treeData - 树形数据数组
+ * @param {Number|String} targetId - 要查找的目标 id
+ * @returns {String} 匹配的 label,找不到则返回空字符串 ''
+ */
+export const findLabelById = (treeData: Array<any>, targetId: number | string): string => {
+
+
+  // 遍历当前层级的数组
+  for (let i = 0; i < treeData.length; i++) {
+    const item = treeData[i]
+
+    // 1. 如果匹配到了,直接返回 label
+    if (item.value === targetId) {
+      return item.label
+    }
+
+    // 2. 如果有子节点,递归进入下一层去查找
+    if (item.children && Array.isArray(item.children) && item.children.length > 0) {
+      const result = findLabelById(item.children, targetId)
+      // 如果递归找到了结果(不是空字符串),就返回它
+      if (result !== '') {
+        return result
+      }
+    }
+  }
+
+  // 3. 遍历完都没有找到,返回空字符串
+  return ''
+}
+
 /**
  * 获取指定字典类型的指定值对应的字典对象
  * @param dictType 字典类型

+ 13 - 10
src/utils/outBedCard.ts

@@ -96,13 +96,13 @@ export const getPatientData = (data,dataElder) => {
     console.log('床头卡原始长者详情数据:', dataElder)
     dataForm.value = dataElder
     // 获取床位信息
-    const beStr = ['', '']
-    try {
-      const bdList = dataForm.value.bedName?.toString().split('-')
-      beStr[1] = bdList[bdList?.length - 1]?.replace(/床$/, '')
-      beStr[0] = bdList[bdList?.length - 2] +' - ' + beStr[1]
-
-    } catch (e) {}
+    // const beStr = ['', '']
+    // try {
+    //   const bdList = dataForm.value.bedName?.toString().split('-')
+    //   beStr[1] = bdList[bdList?.length - 1]?.replace(/床$/, '')
+    //   beStr[0] = bdList[bdList?.length - 2] +' - ' + beStr[1]
+    //
+    // } catch (e) {}
 
     // 解析Flag字段为中文
     const parsedFlagData = parseFlagFields(data)
@@ -163,14 +163,17 @@ export const getPatientData = (data,dataElder) => {
     if (parsedFlagData.drugAllergyHistoryText && parsedFlagData.drugAllergyHistoryText !== '--') {
       allergies.push(parsedFlagData.drugAllergyHistoryText)
     }
-    if (parsedFlagData.historyFoodAllergiesText && parsedFlagData.historyFoodAllergiesText !== '--') {
+    if (
+      parsedFlagData.historyFoodAllergiesText &&
+      parsedFlagData.historyFoodAllergiesText !== '--'
+    ) {
       allergies.push(parsedFlagData.historyFoodAllergiesText)
     }
 
     // 组装最终数据
     const result = {
-      roomName: beStr[0],
-      bedName: beStr[1],
+      roomName: '',
+      bedName: dataForm.value.bedName,
       elderName: dataForm.value.elderName,
       elderSex: dataForm.value.elderSex?.toString() == '1' ? '男' : '女',
       birthday: formatDate(dataForm.value.birthday, 'YYYY-MM-DD'),

+ 81 - 61
src/views/elderly/apply/nine-precautions/MMSE/index.vue

@@ -26,7 +26,6 @@
         />
       </el-form-item>
 
-
       <el-form-item label="评估日期">
         <el-date-picker
           size="default"
@@ -44,7 +43,9 @@
       </el-form-item>
 
       <el-form-item>
-        <el-button @click="handleQuery" style="margin-left: 2vw"><Icon icon="ep:search" class="mr-5px" /> 搜索</el-button>
+        <el-button @click="handleQuery" style="margin-left: 2vw"
+          ><Icon icon="ep:search" class="mr-5px" /> 搜索</el-button
+        >
         <el-button @click="resetQuery"><Icon icon="ep:refresh" class="mr-5px" /> 重置</el-button>
       </el-form-item>
     </el-form>
@@ -53,12 +54,9 @@
   <!-- 列表 -->
   <ContentWrap>
     <div class="mb-10px">
-
-      <ButtonAdd @click="openForm(undefined)"  />
+      <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>
     <el-table v-loading="loading" :data="list" :header-cell-style="tableHeaderColor">
       <el-table-column header-align="center" align="center" label="序号" width="60">
@@ -69,43 +67,75 @@
         </template>
       </el-table-column>
 
-
-      <el-table-column prop="elderName" header-align="center" align="center" label="长者姓名" min-width="150" 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 header-align="center" align="center" label="风险等级" min-width="200" show-overflow-tooltip>
+      <el-table-column
+        label="机构名称"
+        v-if="userStore.getUser.id == 1"
+        type="index"
+        width="150"
+        align="center"
+      >
+        <template #default="{ row }">
+          {{ findLabelById(userStore.getOrgTenant.options, row.tenantId) }}
+        </template>
+      </el-table-column>
+      <el-table-column
+        prop="elderName"
+        header-align="center"
+        align="center"
+        label="长者姓名"
+        min-width="150"
+        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
+        header-align="center"
+        align="center"
+        label="风险等级"
+        min-width="200"
+        show-overflow-tooltip
+      >
         <template #default="scope">
-          <el-tag v-if="getRiskLevelInfo(scope.row.assessData).text" :type="getRiskLevelInfo(scope.row.assessData).type">
+          <el-tag
+            v-if="getRiskLevelInfo(scope.row.assessData).text"
+            :type="getRiskLevelInfo(scope.row.assessData).type"
+          >
             {{ getRiskLevelInfo(scope.row.assessData).text }}
           </el-tag>
         </template>
       </el-table-column>
-      <el-table-column prop="creator" header-align="center" align="center" label="记录人" min-width="200" show-overflow-tooltip/>
-
-
-      <el-table-column label="操作" align="center" width="200" >
+      <el-table-column
+        prop="creator"
+        header-align="center"
+        align="center"
+        label="记录人"
+        min-width="200"
+        show-overflow-tooltip
+      />
+
+      <el-table-column label="操作" align="center" width="200">
         <template #default="scope">
-          <el-button
-            link
-            type="primary"
-            @click="openFormEdit(scope.row, scope.row.id)"
-          >
+          <el-button link type="primary" @click="openFormEdit(scope.row, scope.row.id)">
             编辑
           </el-button>
-          <el-button
-            link
-            type="warning"
-            @click="openFormDetail(scope.row,scope.row.id)"
-          >
+          <el-button link type="warning" @click="openFormDetail(scope.row, scope.row.id)">
             详情
           </el-button>
-          <el-button
-            link
-            type="danger"
-            @click="openClose(scope.row)"
-          >
-            删除
-          </el-button>
+          <el-button link type="danger" @click="openClose(scope.row)"> 删除 </el-button>
         </template>
       </el-table-column>
     </el-table>
@@ -120,9 +150,6 @@
 
   <AddForm ref="formRef" @success="getList" />
 
-
-
-
   <Import
     ref="importRef"
     @success="getList"
@@ -131,19 +158,19 @@
       downloadUrl: 'elderly-service-order/get-import-template',
       excelTempName: '居家工单-【导入】模板',
       importUrl: '/elderly-service-order/import',
-      failExportUrl: '',
+      failExportUrl: ''
     }"
   />
-
 </template>
 
 <script setup lang="ts">
-import AddForm from "./AddForm.vue";
-import ButtonAdd from "@/components/ButtonAdd/src/ButtonAdd.vue";
-import { getRiskLevelInfo } from "@/utils/risk-assessment";
+import AddForm from './AddForm.vue'
+import ButtonAdd from '@/components/ButtonAdd/src/ButtonAdd.vue'
+import { getRiskLevelInfo } from '@/utils/risk-assessment'
 import { useUserStore } from '@/store/modules/user'
-import Import from "@/components/ImportFile/index.vue";
-import {mmseDelete, mmseGetPage} from "@/api/social-work";
+import Import from '@/components/ImportFile/index.vue'
+import { mmseDelete, mmseGetPage } from '@/api/social-work'
+import { findLabelById } from '@/utils/dict'
 const message = useMessage() // 消息弹窗
 const { t } = useI18n() // 国际化
 const userStore = useUserStore()
@@ -183,14 +210,13 @@ const inputH = () => {
 }
 // 打开导出弹窗
 const handleImportCard = async () => {
-
   // showBatchExport.value = true
 }
 
 // 处理批量导出
 const handleBatchExport = async (batch: number, count: number) => {
   exportLoading.value = true
-  console.log(batch,count)
+  console.log(batch, count)
   // try {
   //   let queryParams = {
   //     pageNo: batch,
@@ -212,7 +238,6 @@ const handleBatchExport = async (batch: number, count: number) => {
   //   ]
   //   exportWithExpandedObjectArrays(list, headers, `医疗护理记录${formatToDateTime()}.xlsx`, '医疗护理记录')
   // } catch (_) {}
-
 }
 
 /** 查询列表 */
@@ -251,39 +276,34 @@ const resetQuery = () => {
 /** 添加/修改操作 */
 const formRef = ref()
 const openForm = (id?: number) => {
-  if(queryParams.tenantIds.length == 0 || queryParams.tenantIds.length > 1){
+  if (queryParams.tenantIds.length == 0 || queryParams.tenantIds.length > 1) {
     message.error('新增只能选择一个机构')
     return
   }
-  formRef.value.open(queryParams.tenantIds[0], id,false)
+  formRef.value.open(queryParams.tenantIds[0], id, false)
 }
 
 const editRef = ref()
 const openFormEdit = (row: any = {}, id?: number) => {
-  formRef.value.open(row.tenantId, id,false)
+  formRef.value.open(row.tenantId, id, false)
 }
 
-
-const openFormDetail = (row: any = {},id?: number) => {
-  formRef.value.open(row.tenantId,id,true)
+const openFormDetail = (row: any = {}, id?: number) => {
+  formRef.value.open(row.tenantId, id, true)
 }
 
-
-
-
-
 const openClose = async (item) => {
   try {
-    console.log("任务ID",item)
+    console.log('任务ID', item)
     const res = await message.confirm('确定要删除吗?', '提示')
     if (res == 'confirm') {
       // 发起
       try {
         const res = await mmseDelete(item.id)
-        if (res){
+        if (res) {
           message.success(t('common.updateSuccess'))
         }
-      }catch(err) {}
+      } catch (err) {}
     }
     // 刷新列表
     await getList()
@@ -306,7 +326,7 @@ const cancelDelete = async (id: number) => {
 const route = useRoute()
 /** 初始化 **/
 onMounted(() => {
-  if(route.query && route.query.elderName){
+  if (route.query && route.query.elderName) {
     queryParams.elderName = route.query.elderName as string
   }
   getList()

+ 94 - 50
src/views/elderly/apply/nine-precautions/anti-entertainment/index.vue

@@ -18,12 +18,7 @@
       </el-form-item>
 
       <el-form-item label="评估人">
-        <el-input
-          v-model="queryParams.assessor"
-          placeholder="评估人"
-          class="!w-240px"
-          clearable
-        />
+        <el-input v-model="queryParams.assessor" placeholder="评估人" class="!w-240px" clearable />
       </el-form-item>
 
       <el-form-item label="记录日期">
@@ -43,7 +38,9 @@
       </el-form-item>
 
       <el-form-item>
-        <el-button @click="handleQuery" style="margin-left: 2vw"><Icon icon="ep:search" class="mr-5px" /> 搜索</el-button>
+        <el-button @click="handleQuery" style="margin-left: 2vw"
+          ><Icon icon="ep:search" class="mr-5px" /> 搜索</el-button
+        >
         <el-button @click="resetQuery"><Icon icon="ep:refresh" class="mr-5px" /> 重置</el-button>
       </el-form-item>
     </el-form>
@@ -62,43 +59,81 @@
           }}
         </template>
       </el-table-column>
-
-      <el-table-column prop="elderName" header-align="center" align="center" label="长者姓名" min-width="150" show-overflow-tooltip/>
-      <el-table-column prop="assessor" header-align="center" align="center" label="评估人" min-width="150" show-overflow-tooltip/>
-      <el-table-column prop="assessDate" header-align="center" align="center" label="记录日期" min-width="150" show-overflow-tooltip/>
-      <el-table-column prop="assessScore" header-align="center" align="center" label="评估总得分" min-width="120" show-overflow-tooltip/>
-      <el-table-column prop="riskLevel" header-align="center" align="center" label="风险等级" min-width="120" show-overflow-tooltip>
+      <el-table-column
+        label="机构名称"
+        v-if="userStore.getUser.id == 1"
+        type="index"
+        width="150"
+        align="center"
+      >
+        <template #default="{ row }">
+          {{ findLabelById(userStore.getOrgTenant.options, row.tenantId) }}
+        </template>
+      </el-table-column>
+      <el-table-column
+        prop="elderName"
+        header-align="center"
+        align="center"
+        label="长者姓名"
+        min-width="150"
+        show-overflow-tooltip
+      />
+      <el-table-column
+        prop="assessor"
+        header-align="center"
+        align="center"
+        label="评估人"
+        min-width="150"
+        show-overflow-tooltip
+      />
+      <el-table-column
+        prop="assessDate"
+        header-align="center"
+        align="center"
+        label="记录日期"
+        min-width="150"
+        show-overflow-tooltip
+      />
+      <el-table-column
+        prop="assessScore"
+        header-align="center"
+        align="center"
+        label="评估总得分"
+        min-width="120"
+        show-overflow-tooltip
+      />
+      <el-table-column
+        prop="riskLevel"
+        header-align="center"
+        align="center"
+        label="风险等级"
+        min-width="120"
+        show-overflow-tooltip
+      >
         <template #default="scope">
           <el-tag :type="getRiskLevelType(scope.row.riskLevel)">
             {{ getRiskLevelText(scope.row.riskLevel) }}
           </el-tag>
         </template>
       </el-table-column>
-      <el-table-column prop="creator" header-align="center" align="center" label="记录人" min-width="150" show-overflow-tooltip/>
+      <el-table-column
+        prop="creator"
+        header-align="center"
+        align="center"
+        label="记录人"
+        min-width="150"
+        show-overflow-tooltip
+      />
 
       <el-table-column label="操作" align="center" width="200">
         <template #default="scope">
-          <el-button
-            link
-            type="primary"
-            @click="openFormEdit(scope.row, scope.row.id)"
-          >
+          <el-button link type="primary" @click="openFormEdit(scope.row, scope.row.id)">
             编辑
           </el-button>
-          <el-button
-            link
-            type="warning"
-            @click="openFormDetail(scope.row,scope.row.id)"
-          >
+          <el-button link type="warning" @click="openFormDetail(scope.row, scope.row.id)">
             详情
           </el-button>
-          <el-button
-            link
-            type="danger"
-            @click="openClose(scope.row)"
-          >
-            删除
-          </el-button>
+          <el-button link type="danger" @click="openClose(scope.row)"> 删除 </el-button>
         </template>
       </el-table-column>
     </el-table>
@@ -112,21 +147,20 @@
   </ContentWrap>
 
   <AddForm ref="formRef" @success="getList" />
-
-
 </template>
 
 <script setup lang="ts">
-import AddForm from "./AddForm.vue";
-import ButtonAdd from "@/components/ButtonAdd/src/ButtonAdd.vue";
+import AddForm from './AddForm.vue'
+import ButtonAdd from '@/components/ButtonAdd/src/ButtonAdd.vue'
 import { useUserStore } from '@/store/modules/user'
-import { getCurrentMonthRange } from "@/utils/dateUtil";
+import { getCurrentMonthRange } from '@/utils/dateUtil'
 import {
   entertainmentDelete,
   entertainmentPage,
   fallDownDelete,
   fallDownPage
-} from "@/api/social-work";
+} from '@/api/social-work'
+import { findLabelById } from '@/utils/dict'
 
 const message = useMessage()
 const { t } = useI18n()
@@ -226,9 +260,9 @@ const openClose = async (item: any) => {
           message.success(t('common.updateSuccess'))
           await getList()
         }
-      } catch (err) { }
+      } catch (err) {}
     }
-  } catch { }
+  } catch {}
 }
 
 /** 取消按钮操作 */
@@ -237,7 +271,7 @@ const cancelDelete = async (id: number) => {
     await message.cancelConfirm()
     message.success(t('common.delSuccess'))
     await getList()
-  } catch { }
+  } catch {}
 }
 
 const route = useRoute()
@@ -263,22 +297,32 @@ const tableHeaderColor = ({ rowIndex }: any) => {
 // 获取风险等级类型
 const getRiskLevelType = (riskLevel: string) => {
   switch (riskLevel) {
-    case 'none': return 'success'
-    case 'low': return 'info'
-    case 'medium': return 'warning'
-    case 'high': return 'danger'
-    default: return ''
+    case 'none':
+      return 'success'
+    case 'low':
+      return 'info'
+    case 'medium':
+      return 'warning'
+    case 'high':
+      return 'danger'
+    default:
+      return ''
   }
 }
 
 // 获取风险等级文本
 const getRiskLevelText = (riskLevel: string) => {
   switch (riskLevel) {
-    case 'none': return '无风险'
-    case 'low': return '低风险'
-    case 'medium': return '中风险'
-    case 'high': return '高风险'
-    default: return '-'
+    case 'none':
+      return '无风险'
+    case 'low':
+      return '低风险'
+    case 'medium':
+      return '中风险'
+    case 'high':
+      return '高风险'
+    default:
+      return '-'
   }
 }
 </script>

+ 86 - 50
src/views/elderly/apply/nine-precautions/asphyxiation-by-choking/index.vue

@@ -18,12 +18,7 @@
       </el-form-item>
 
       <el-form-item label="评估人">
-        <el-input
-          v-model="queryParams.assessor"
-          placeholder="评估人"
-          class="!w-240px"
-          clearable
-        />
+        <el-input v-model="queryParams.assessor" placeholder="评估人" class="!w-240px" clearable />
       </el-form-item>
 
       <el-form-item label="记录日期">
@@ -43,7 +38,9 @@
       </el-form-item>
 
       <el-form-item>
-        <el-button @click="handleQuery" style="margin-left: 2vw"><Icon icon="ep:search" class="mr-5px" /> 搜索</el-button>
+        <el-button @click="handleQuery" style="margin-left: 2vw"
+          ><Icon icon="ep:search" class="mr-5px" /> 搜索</el-button
+        >
         <el-button @click="resetQuery"><Icon icon="ep:refresh" class="mr-5px" /> 重置</el-button>
       </el-form-item>
     </el-form>
@@ -62,42 +59,73 @@
           }}
         </template>
       </el-table-column>
-
-      <el-table-column prop="elderName" header-align="center" align="center" label="长者姓名" min-width="150" show-overflow-tooltip/>
-      <el-table-column prop="assessor" header-align="center" align="center" label="评估人" min-width="150" show-overflow-tooltip/>
-      <el-table-column prop="assessDate" header-align="center" align="center" label="记录日期" min-width="150" show-overflow-tooltip/>
-      <el-table-column prop="riskLevel" header-align="center" align="center" label="风险等级" min-width="120" show-overflow-tooltip>
+      <el-table-column
+        label="机构名称"
+        v-if="userStore.getUser.id == 1"
+        type="index"
+        width="150"
+        align="center"
+      >
+        <template #default="{ row }">
+          {{ findLabelById(userStore.getOrgTenant.options, row.tenantId) }}
+        </template>
+      </el-table-column>
+      <el-table-column
+        prop="elderName"
+        header-align="center"
+        align="center"
+        label="长者姓名"
+        min-width="150"
+        show-overflow-tooltip
+      />
+      <el-table-column
+        prop="assessor"
+        header-align="center"
+        align="center"
+        label="评估人"
+        min-width="150"
+        show-overflow-tooltip
+      />
+      <el-table-column
+        prop="assessDate"
+        header-align="center"
+        align="center"
+        label="记录日期"
+        min-width="150"
+        show-overflow-tooltip
+      />
+      <el-table-column
+        prop="riskLevel"
+        header-align="center"
+        align="center"
+        label="风险等级"
+        min-width="120"
+        show-overflow-tooltip
+      >
         <template #default="scope">
           <el-tag :type="getRiskLevelType(scope.row.riskLevel)">
             {{ getRiskLevelText(scope.row.riskLevel) }}
           </el-tag>
         </template>
       </el-table-column>
-      <el-table-column prop="creator" header-align="center" align="center" label="记录人" min-width="150" show-overflow-tooltip/>
+      <el-table-column
+        prop="creator"
+        header-align="center"
+        align="center"
+        label="记录人"
+        min-width="150"
+        show-overflow-tooltip
+      />
 
       <el-table-column label="操作" align="center" width="200">
         <template #default="scope">
-          <el-button
-            link
-            type="primary"
-            @click="openFormEdit(scope.row, scope.row.id)"
-          >
+          <el-button link type="primary" @click="openFormEdit(scope.row, scope.row.id)">
             编辑
           </el-button>
-          <el-button
-            link
-            type="warning"
-            @click="openFormDetail(scope.row,scope.row.id)"
-          >
+          <el-button link type="warning" @click="openFormDetail(scope.row, scope.row.id)">
             详情
           </el-button>
-          <el-button
-            link
-            type="danger"
-            @click="openClose(scope.row)"
-          >
-            删除
-          </el-button>
+          <el-button link type="danger" @click="openClose(scope.row)"> 删除 </el-button>
         </template>
       </el-table-column>
     </el-table>
@@ -131,14 +159,12 @@
 </template>
 
 <script setup lang="ts">
-import AddForm from "./AddForm.vue";
-import ButtonAdd from "@/components/ButtonAdd/src/ButtonAdd.vue";
+import AddForm from './AddForm.vue'
+import ButtonAdd from '@/components/ButtonAdd/src/ButtonAdd.vue'
 import { useUserStore } from '@/store/modules/user'
-import { getCurrentMonthRange } from "@/utils/dateUtil";
-import {
-  asphyxiationDelete,
-  asphyxiationPage
-} from "@/api/social-work";
+import { getCurrentMonthRange } from '@/utils/dateUtil'
+import { asphyxiationDelete, asphyxiationPage } from '@/api/social-work'
+import { findLabelById } from '@/utils/dict'
 
 const message = useMessage()
 const { t } = useI18n()
@@ -238,9 +264,9 @@ const openClose = async (item: any) => {
           message.success(t('common.updateSuccess'))
           await getList()
         }
-      } catch (err) { }
+      } catch (err) {}
     }
-  } catch { }
+  } catch {}
 }
 
 /** 取消按钮操作 */
@@ -249,7 +275,7 @@ const cancelDelete = async (id: number) => {
     await message.cancelConfirm()
     message.success(t('common.delSuccess'))
     await getList()
-  } catch { }
+  } catch {}
 }
 
 const route = useRoute()
@@ -275,22 +301,32 @@ const tableHeaderColor = ({ rowIndex }: any) => {
 // 获取风险等级类型
 const getRiskLevelType = (riskLevel: string) => {
   switch (riskLevel) {
-    case 'none': return 'success'
-    case 'low': return 'info'
-    case 'medium': return 'warning'
-    case 'high': return 'danger'
-    default: return ''
+    case 'none':
+      return 'success'
+    case 'low':
+      return 'info'
+    case 'medium':
+      return 'warning'
+    case 'high':
+      return 'danger'
+    default:
+      return ''
   }
 }
 
 // 获取风险等级文本
 const getRiskLevelText = (riskLevel: string) => {
   switch (riskLevel) {
-    case 'none': return '无风险'
-    case 'low': return '低风险'
-    case 'medium': return '中度风险'
-    case 'high': return '高风险'
-    default: return '-'
+    case 'none':
+      return '无风险'
+    case 'low':
+      return '低风险'
+    case 'medium':
+      return '中度风险'
+    case 'high':
+      return '高风险'
+    default:
+      return '-'
   }
 }
 </script>

+ 83 - 63
src/views/elderly/apply/nine-precautions/attack/index.vue

@@ -43,7 +43,9 @@
       </el-form-item>
 
       <el-form-item>
-        <el-button @click="handleQuery" style="margin-left: 2vw"><Icon icon="ep:search" class="mr-5px" /> 搜索</el-button>
+        <el-button @click="handleQuery" style="margin-left: 2vw"
+          ><Icon icon="ep:search" class="mr-5px" /> 搜索</el-button
+        >
         <el-button @click="resetQuery"><Icon icon="ep:refresh" class="mr-5px" /> 重置</el-button>
       </el-form-item>
     </el-form>
@@ -52,12 +54,9 @@
   <!-- 列表 -->
   <ContentWrap>
     <div class="mb-10px">
-
-      <ButtonAdd @click="openForm(undefined)"  />
+      <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"  />-->
-
-
     </div>
     <el-table v-loading="loading" :data="list" :header-cell-style="tableHeaderColor">
       <el-table-column header-align="center" align="center" label="序号" width="60">
@@ -68,43 +67,75 @@
         </template>
       </el-table-column>
 
-
-      <el-table-column prop="elderName" header-align="center" align="center" label="长者姓名" min-width="150" show-overflow-tooltip/>
-      <el-table-column prop="assessor" header-align="center" align="center" label="评估人" min-width="200" show-overflow-tooltip/>
-      <el-table-column header-align="center" align="center" label="风险等级" min-width="200" show-overflow-tooltip>
+      <el-table-column
+        label="机构名称"
+        v-if="userStore.getUser.id == 1"
+        type="index"
+        width="150"
+        align="center"
+      >
+        <template #default="{ row }">
+          {{ findLabelById(userStore.getOrgTenant.options, row.tenantId) }}
+        </template>
+      </el-table-column>
+      <el-table-column
+        prop="elderName"
+        header-align="center"
+        align="center"
+        label="长者姓名"
+        min-width="150"
+        show-overflow-tooltip
+      />
+      <el-table-column
+        prop="assessor"
+        header-align="center"
+        align="center"
+        label="评估人"
+        min-width="200"
+        show-overflow-tooltip
+      />
+      <el-table-column
+        header-align="center"
+        align="center"
+        label="风险等级"
+        min-width="200"
+        show-overflow-tooltip
+      >
         <template #default="scope">
-          <el-tag v-if="getRiskLevelInfo(scope.row.assessData).text" :type="getRiskLevelInfo(scope.row.assessData).type">
+          <el-tag
+            v-if="getRiskLevelInfo(scope.row.assessData).text"
+            :type="getRiskLevelInfo(scope.row.assessData).type"
+          >
             {{ getRiskLevelInfo(scope.row.assessData).text }}
           </el-tag>
         </template>
       </el-table-column>
-       <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/>
-
-
-      <el-table-column label="操作" align="center" width="200" >
+      <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
+      />
+
+      <el-table-column label="操作" align="center" width="200">
         <template #default="scope">
-          <el-button
-            link
-            type="primary"
-            @click="openFormEdit(scope.row, scope.row.id)"
-          >
+          <el-button link type="primary" @click="openFormEdit(scope.row, scope.row.id)">
             编辑
           </el-button>
-          <el-button
-            link
-            type="warning"
-            @click="openFormDetail(scope.row,scope.row.id)"
-          >
+          <el-button link type="warning" @click="openFormDetail(scope.row, scope.row.id)">
             详情
           </el-button>
-          <el-button
-            link
-            type="danger"
-            @click="openClose(scope.row)"
-          >
-            删除
-          </el-button>
+          <el-button link type="danger" @click="openClose(scope.row)"> 删除 </el-button>
         </template>
       </el-table-column>
     </el-table>
@@ -136,7 +167,6 @@
     @cancel="showBatchExport = false"
   />
 
-
   <Import
     ref="importRef"
     @success="getList"
@@ -145,24 +175,22 @@
       downloadUrl: 'elderly-service-order/get-import-template',
       excelTempName: '居家工单-【导入】模板',
       importUrl: '/elderly-service-order/import',
-      failExportUrl: '',
+      failExportUrl: ''
     }"
   />
-
 </template>
 
 <script setup lang="ts">
-import AddForm from "./AddForm.vue";
-import ButtonAdd from "@/components/ButtonAdd/src/ButtonAdd.vue";
-import ButtonImport from "@/components/ButtonImport/src/ButtonImport.vue";
+import AddForm from './AddForm.vue'
+import ButtonAdd from '@/components/ButtonAdd/src/ButtonAdd.vue'
+import ButtonImport from '@/components/ButtonImport/src/ButtonImport.vue'
 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,
-} from "@/api/social-work";
-import { getRiskLevelInfo } from "@/utils/risk-assessment";
+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 } from '@/api/social-work'
+import { getRiskLevelInfo } from '@/utils/risk-assessment'
+import { findLabelById } from '@/utils/dict'
 const message = useMessage() // 消息弹窗
 const { t } = useI18n() // 国际化
 const userStore = useUserStore()
@@ -197,17 +225,15 @@ let queryParams = reactive({
 })
 const queryFormRef = ref() // 搜索的表单
 
-
 // 打开导出弹窗
 const handleImportCard = async () => {
-
   // showBatchExport.value = true
 }
 
 // 处理批量导出
 const handleBatchExport = async (batch: number, count: number) => {
   exportLoading.value = true
-  console.log(batch,count)
+  console.log(batch, count)
   // try {
   //   let queryParams = {
   //     pageNo: batch,
@@ -229,7 +255,6 @@ const handleBatchExport = async (batch: number, count: number) => {
   //   ]
   //   exportWithExpandedObjectArrays(list, headers, `医疗护理记录${formatToDateTime()}.xlsx`, '医疗护理记录')
   // } catch (_) {}
-
 }
 
 /** 查询列表 */
@@ -268,39 +293,34 @@ const resetQuery = () => {
 /** 添加/修改操作 */
 const formRef = ref()
 const openForm = (id?: number) => {
-  if(queryParams.tenantIds.length == 0 || queryParams.tenantIds.length > 1){
+  if (queryParams.tenantIds.length == 0 || queryParams.tenantIds.length > 1) {
     message.error('新增只能选择一个机构')
     return
   }
-  formRef.value.open(queryParams.tenantIds[0], id,false)
+  formRef.value.open(queryParams.tenantIds[0], id, false)
 }
 
 const editRef = ref()
 const openFormEdit = (row: any = {}, id?: number) => {
-  formRef.value.open(row.tenantId, id,false)
+  formRef.value.open(row.tenantId, id, false)
 }
 
-
-const openFormDetail = (row: any = {},id?: number) => {
-  formRef.value.open(row.tenantId,id,true)
+const openFormDetail = (row: any = {}, id?: number) => {
+  formRef.value.open(row.tenantId, id, true)
 }
 
-
-
-
-
 const openClose = async (item) => {
   try {
-    console.log("任务ID",item)
+    console.log('任务ID', item)
     const res = await message.confirm('确定要删除吗?', '提示')
     if (res == 'confirm') {
       // 发起
       try {
         const res = await attackRiskDelete(item.id)
-        if (res){
+        if (res) {
           message.success(t('common.updateSuccess'))
         }
-      }catch(err) {}
+      } catch (err) {}
     }
     // 刷新列表
     await getList()
@@ -323,7 +343,7 @@ const cancelDelete = async (id: number) => {
 const route = useRoute()
 /** 初始化 **/
 onMounted(() => {
-  if(route.query && route.query.elderName){
+  if (route.query && route.query.elderName) {
     queryParams.elderName = route.query.elderName as string
   }
   getList()

+ 80 - 58
src/views/elderly/apply/nine-precautions/commit-suicide/index.vue

@@ -43,7 +43,9 @@
       </el-form-item>
 
       <el-form-item>
-        <el-button @click="handleQuery" style="margin-left: 2vw"><Icon icon="ep:search" class="mr-5px" /> 搜索</el-button>
+        <el-button @click="handleQuery" style="margin-left: 2vw"
+          ><Icon icon="ep:search" class="mr-5px" /> 搜索</el-button
+        >
         <el-button @click="resetQuery"><Icon icon="ep:refresh" class="mr-5px" /> 重置</el-button>
       </el-form-item>
     </el-form>
@@ -52,12 +54,9 @@
   <!-- 列表 -->
   <ContentWrap>
     <div class="mb-10px">
-
-      <ButtonAdd @click="openForm(undefined)"  />
+      <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"  />-->
-
-
     </div>
     <el-table v-loading="loading" :data="list" :header-cell-style="tableHeaderColor">
       <el-table-column header-align="center" align="center" label="序号" width="60">
@@ -67,44 +66,76 @@
           }}
         </template>
       </el-table-column>
+      <el-table-column
+        label="机构名称"
+        v-if="userStore.getUser.id == 1"
+        type="index"
+        width="150"
+        align="center"
+      >
+        <template #default="{ row }">
+          {{ findLabelById(userStore.getOrgTenant.options, row.tenantId) }}
+        </template>
+      </el-table-column>
 
-
-      <el-table-column prop="elderName" header-align="center" align="center" label="长者姓名" min-width="150" 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 header-align="center" align="center" label="风险等级" min-width="200" show-overflow-tooltip>
+      <el-table-column
+        prop="elderName"
+        header-align="center"
+        align="center"
+        label="长者姓名"
+        min-width="150"
+        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
+        header-align="center"
+        align="center"
+        label="风险等级"
+        min-width="200"
+        show-overflow-tooltip
+      >
         <template #default="scope">
-          <el-tag v-if="getRiskLevelInfo(scope.row.assessData).text" :type="getRiskLevelInfo(scope.row.assessData).type">
+          <el-tag
+            v-if="getRiskLevelInfo(scope.row.assessData).text"
+            :type="getRiskLevelInfo(scope.row.assessData).type"
+          >
             {{ getRiskLevelInfo(scope.row.assessData).text }}
           </el-tag>
         </template>
       </el-table-column>
-      <el-table-column prop="creator" header-align="center" align="center" label="记录人" min-width="200" show-overflow-tooltip/>
-
-
-      <el-table-column label="操作" align="center" width="200" >
+      <el-table-column
+        prop="creator"
+        header-align="center"
+        align="center"
+        label="记录人"
+        min-width="200"
+        show-overflow-tooltip
+      />
+
+      <el-table-column label="操作" align="center" width="200">
         <template #default="scope">
-          <el-button
-            link
-            type="primary"
-            @click="openFormEdit(scope.row, scope.row.id)"
-          >
+          <el-button link type="primary" @click="openFormEdit(scope.row, scope.row.id)">
             编辑
           </el-button>
-          <el-button
-            link
-            type="warning"
-            @click="openFormDetail(scope.row,scope.row.id)"
-          >
+          <el-button link type="warning" @click="openFormDetail(scope.row, scope.row.id)">
             详情
           </el-button>
-          <el-button
-            link
-            type="danger"
-            @click="openClose(scope.row)"
-          >
-            删除
-          </el-button>
+          <el-button link type="danger" @click="openClose(scope.row)"> 删除 </el-button>
         </template>
       </el-table-column>
     </el-table>
@@ -136,7 +167,6 @@
     @cancel="showBatchExport = false"
   />
 
-
   <Import
     ref="importRef"
     @success="getList"
@@ -145,19 +175,19 @@
       downloadUrl: 'elderly-service-order/get-import-template',
       excelTempName: '居家工单-【导入】模板',
       importUrl: '/elderly-service-order/import',
-      failExportUrl: '',
+      failExportUrl: ''
     }"
   />
-
 </template>
 
 <script setup lang="ts">
-import AddForm from "./AddForm.vue";
-import ButtonAdd from "@/components/ButtonAdd/src/ButtonAdd.vue";
+import AddForm from './AddForm.vue'
+import ButtonAdd from '@/components/ButtonAdd/src/ButtonAdd.vue'
 import { useUserStore } from '@/store/modules/user'
-import Import from "@/components/ImportFile/index.vue";
-import {ngasrDelete, ngasrPage} from "@/api/social-work";
-import {getRiskLevelInfo} from "@/utils/risk-assessment";
+import Import from '@/components/ImportFile/index.vue'
+import { ngasrDelete, ngasrPage } from '@/api/social-work'
+import { getRiskLevelInfo } from '@/utils/risk-assessment'
+import { findLabelById } from '@/utils/dict'
 const message = useMessage() // 消息弹窗
 const { t } = useI18n() // 国际化
 const userStore = useUserStore()
@@ -192,17 +222,15 @@ let queryParams = reactive({
 })
 const queryFormRef = ref() // 搜索的表单
 
-
 // 打开导出弹窗
 const handleImportCard = async () => {
-
   // showBatchExport.value = true
 }
 
 // 处理批量导出
 const handleBatchExport = async (batch: number, count: number) => {
   exportLoading.value = true
-  console.log(batch,count)
+  console.log(batch, count)
   // try {
   //   let queryParams = {
   //     pageNo: batch,
@@ -224,7 +252,6 @@ const handleBatchExport = async (batch: number, count: number) => {
   //   ]
   //   exportWithExpandedObjectArrays(list, headers, `医疗护理记录${formatToDateTime()}.xlsx`, '医疗护理记录')
   // } catch (_) {}
-
 }
 
 /** 查询列表 */
@@ -263,39 +290,34 @@ const resetQuery = () => {
 /** 添加/修改操作 */
 const formRef = ref()
 const openForm = (id?: number) => {
-  if(queryParams.tenantIds.length == 0 || queryParams.tenantIds.length > 1){
+  if (queryParams.tenantIds.length == 0 || queryParams.tenantIds.length > 1) {
     message.error('新增只能选择一个机构')
     return
   }
-  formRef.value.open(queryParams.tenantIds[0], id,false)
+  formRef.value.open(queryParams.tenantIds[0], id, false)
 }
 
 const editRef = ref()
 const openFormEdit = (row: any = {}, id?: number) => {
-  formRef.value.open(row.tenantId, id,false)
+  formRef.value.open(row.tenantId, id, false)
 }
 
-
-const openFormDetail = (row: any = {},id?: number) => {
-  formRef.value.open(row.tenantId,id,true)
+const openFormDetail = (row: any = {}, id?: number) => {
+  formRef.value.open(row.tenantId, id, true)
 }
 
-
-
-
-
 const openClose = async (item) => {
   try {
-    console.log("任务ID",item)
+    console.log('任务ID', item)
     const res = await message.confirm('确定要删除吗?', '提示')
     if (res == 'confirm') {
       // 发起
       try {
         const res = await ngasrDelete(item.id)
-        if (res){
+        if (res) {
           message.success(t('common.updateSuccess'))
         }
-      }catch(err) {}
+      } catch (err) {}
     }
     // 刷新列表
     await getList()
@@ -318,7 +340,7 @@ const cancelDelete = async (id: number) => {
 const route = useRoute()
 /** 初始化 **/
 onMounted(() => {
-  if(route.query && route.query.elderName){
+  if (route.query && route.query.elderName) {
     queryParams.elderName = route.query.elderName as string
   }
   getList()

+ 84 - 61
src/views/elderly/apply/nine-precautions/communication/index.vue

@@ -43,7 +43,9 @@
       </el-form-item>
 
       <el-form-item>
-        <el-button @click="handleQuery" style="margin-left: 2vw"><Icon icon="ep:search" class="mr-5px" /> 搜索</el-button>
+        <el-button @click="handleQuery" style="margin-left: 2vw"
+          ><Icon icon="ep:search" class="mr-5px" /> 搜索</el-button
+        >
         <el-button @click="resetQuery"><Icon icon="ep:refresh" class="mr-5px" /> 重置</el-button>
       </el-form-item>
     </el-form>
@@ -52,12 +54,9 @@
   <!-- 列表 -->
   <ContentWrap>
     <div class="mb-10px">
-
-      <ButtonAdd @click="openForm(undefined)"  />
+      <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>
     <el-table v-loading="loading" :data="list" :header-cell-style="tableHeaderColor">
       <el-table-column header-align="center" align="center" label="序号" width="60">
@@ -68,43 +67,75 @@
         </template>
       </el-table-column>
 
-
-      <el-table-column prop="elderName" header-align="center" align="center" label="长者姓名" min-width="150" 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 header-align="center" align="center" label="风险等级" min-width="200" show-overflow-tooltip>
+      <el-table-column
+        label="机构名称"
+        v-if="userStore.getUser.id == 1"
+        type="index"
+        width="150"
+        align="center"
+      >
+        <template #default="{ row }">
+          {{ findLabelById(userStore.getOrgTenant.options, row.tenantId) }}
+        </template>
+      </el-table-column>
+      <el-table-column
+        prop="elderName"
+        header-align="center"
+        align="center"
+        label="长者姓名"
+        min-width="150"
+        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
+        header-align="center"
+        align="center"
+        label="风险等级"
+        min-width="200"
+        show-overflow-tooltip
+      >
         <template #default="scope">
-          <el-tag v-if="getRiskLevelInfo(scope.row.assessData).text" :type="getRiskLevelInfo(scope.row.assessData).type">
+          <el-tag
+            v-if="getRiskLevelInfo(scope.row.assessData).text"
+            :type="getRiskLevelInfo(scope.row.assessData).type"
+          >
             {{ getRiskLevelInfo(scope.row.assessData).text }}
           </el-tag>
         </template>
       </el-table-column>
-      <el-table-column prop="creator" header-align="center" align="center" label="记录人" min-width="200" show-overflow-tooltip/>
-
-
-      <el-table-column label="操作" align="center" width="200" >
+      <el-table-column
+        prop="creator"
+        header-align="center"
+        align="center"
+        label="记录人"
+        min-width="200"
+        show-overflow-tooltip
+      />
+
+      <el-table-column label="操作" align="center" width="200">
         <template #default="scope">
-          <el-button
-            link
-            type="primary"
-            @click="openFormEdit(scope.row, scope.row.id)"
-          >
+          <el-button link type="primary" @click="openFormEdit(scope.row, scope.row.id)">
             编辑
           </el-button>
-          <el-button
-            link
-            type="warning"
-            @click="openFormDetail(scope.row,scope.row.id)"
-          >
+          <el-button link type="warning" @click="openFormDetail(scope.row, scope.row.id)">
             详情
           </el-button>
-          <el-button
-            link
-            type="danger"
-            @click="openClose(scope.row)"
-          >
-            删除
-          </el-button>
+          <el-button link type="danger" @click="openClose(scope.row)"> 删除 </el-button>
         </template>
       </el-table-column>
     </el-table>
@@ -136,7 +167,6 @@
     @cancel="showBatchExport = false"
   />
 
-
   <Import
     ref="importRef"
     @success="getList"
@@ -145,22 +175,22 @@
       downloadUrl: 'elderly-service-order/get-import-template',
       excelTempName: '居家工单-【导入】模板',
       importUrl: '/elderly-service-order/import',
-      failExportUrl: '',
+      failExportUrl: ''
     }"
   />
-
 </template>
 
 <script setup lang="ts">
-import AddForm from "./AddForm.vue";
-import ButtonAdd from "@/components/ButtonAdd/src/ButtonAdd.vue";
-import ButtonImport from "@/components/ButtonImport/src/ButtonImport.vue";
-import { getRiskLevelInfo } from "@/utils/risk-assessment";
+import AddForm from './AddForm.vue'
+import ButtonAdd from '@/components/ButtonAdd/src/ButtonAdd.vue'
+import ButtonImport from '@/components/ButtonImport/src/ButtonImport.vue'
+import { getRiskLevelInfo } from '@/utils/risk-assessment'
 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";
+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'
+import { findLabelById } from '@/utils/dict'
 const message = useMessage() // 消息弹窗
 const { t } = useI18n() // 国际化
 const userStore = useUserStore()
@@ -200,14 +230,13 @@ const inputH = () => {
 }
 // 打开导出弹窗
 const handleImportCard = async () => {
-
   // showBatchExport.value = true
 }
 
 // 处理批量导出
 const handleBatchExport = async (batch: number, count: number) => {
   exportLoading.value = true
-  console.log(batch,count)
+  console.log(batch, count)
   // try {
   //   let queryParams = {
   //     pageNo: batch,
@@ -229,7 +258,6 @@ const handleBatchExport = async (batch: number, count: number) => {
   //   ]
   //   exportWithExpandedObjectArrays(list, headers, `医疗护理记录${formatToDateTime()}.xlsx`, '医疗护理记录')
   // } catch (_) {}
-
 }
 
 /** 查询列表 */
@@ -268,39 +296,34 @@ const resetQuery = () => {
 /** 添加/修改操作 */
 const formRef = ref()
 const openForm = (id?: number) => {
-  if(queryParams.tenantIds.length == 0 || queryParams.tenantIds.length > 1){
+  if (queryParams.tenantIds.length == 0 || queryParams.tenantIds.length > 1) {
     message.error('新增只能选择一个机构')
     return
   }
-  formRef.value.open(queryParams.tenantIds[0], id,false)
+  formRef.value.open(queryParams.tenantIds[0], id, false)
 }
 
 const editRef = ref()
 const openFormEdit = (row: any = {}, id?: number) => {
-  formRef.value.open(row.tenantId, id,false)
+  formRef.value.open(row.tenantId, id, false)
 }
 
-
-const openFormDetail = (row: any = {},id?: number) => {
-  formRef.value.open(row.tenantId,id,true)
+const openFormDetail = (row: any = {}, id?: number) => {
+  formRef.value.open(row.tenantId, id, true)
 }
 
-
-
-
-
 const openClose = async (item) => {
   try {
-    console.log("任务ID",item)
+    console.log('任务ID', item)
     const res = await message.confirm('确定要删除吗?', '提示')
     if (res == 'confirm') {
       // 发起
       try {
         const res = await perceptionDelete(item.id)
-        if (res){
+        if (res) {
           message.success(t('common.updateSuccess'))
         }
-      }catch(err) {}
+      } catch (err) {}
     }
     // 刷新列表
     await getList()
@@ -323,7 +346,7 @@ const cancelDelete = async (id: number) => {
 const route = useRoute()
 /** 初始化 **/
 onMounted(() => {
-  if(route.query && route.query.elderName){
+  if (route.query && route.query.elderName) {
     queryParams.elderName = route.query.elderName as string
   }
   getList()

+ 95 - 52
src/views/elderly/apply/nine-precautions/daily-life/index.vue

@@ -18,12 +18,7 @@
       </el-form-item>
 
       <el-form-item label="评估人">
-        <el-input
-          v-model="queryParams.assessor"
-          placeholder="评估人"
-          class="!w-240px"
-          clearable
-        />
+        <el-input v-model="queryParams.assessor" placeholder="评估人" class="!w-240px" clearable />
       </el-form-item>
 
       <el-form-item label="记录日期">
@@ -43,7 +38,9 @@
       </el-form-item>
 
       <el-form-item>
-        <el-button @click="handleQuery" style="margin-left: 2vw"><Icon icon="ep:search" class="mr-5px" /> 搜索</el-button>
+        <el-button @click="handleQuery" style="margin-left: 2vw"
+          ><Icon icon="ep:search" class="mr-5px" /> 搜索</el-button
+        >
         <el-button @click="resetQuery"><Icon icon="ep:refresh" class="mr-5px" /> 重置</el-button>
       </el-form-item>
     </el-form>
@@ -62,43 +59,81 @@
           }}
         </template>
       </el-table-column>
-
-      <el-table-column prop="elderName" header-align="center" align="center" label="长者姓名" min-width="150" show-overflow-tooltip/>
-      <el-table-column prop="assessor" header-align="center" align="center" label="评估人" min-width="150" show-overflow-tooltip/>
-      <el-table-column prop="assessDate" header-align="center" align="center" label="记录日期" min-width="150" show-overflow-tooltip/>
-      <el-table-column prop="assessScore" header-align="center" align="center" label="评估总得分" min-width="120" show-overflow-tooltip/>
-      <el-table-column prop="riskLevel" header-align="center" align="center" label="结果等级" min-width="150" show-overflow-tooltip>
+      <el-table-column
+        label="机构名称"
+        v-if="userStore.getUser.id == 1"
+        type="index"
+        width="150"
+        align="center"
+      >
+        <template #default="{ row }">
+          {{ findLabelById(userStore.getOrgTenant.options, row.tenantId) }}
+        </template>
+      </el-table-column>
+      <el-table-column
+        prop="elderName"
+        header-align="center"
+        align="center"
+        label="长者姓名"
+        min-width="150"
+        show-overflow-tooltip
+      />
+      <el-table-column
+        prop="assessor"
+        header-align="center"
+        align="center"
+        label="评估人"
+        min-width="150"
+        show-overflow-tooltip
+      />
+      <el-table-column
+        prop="assessDate"
+        header-align="center"
+        align="center"
+        label="记录日期"
+        min-width="150"
+        show-overflow-tooltip
+      />
+      <el-table-column
+        prop="assessScore"
+        header-align="center"
+        align="center"
+        label="评估总得分"
+        min-width="120"
+        show-overflow-tooltip
+      />
+      <el-table-column
+        prop="riskLevel"
+        header-align="center"
+        align="center"
+        label="结果等级"
+        min-width="150"
+        show-overflow-tooltip
+      >
         <template #default="scope">
           <el-tag :type="getResultLevelType(scope.row.riskLevel)">
-            {{ (scope.row.riskLevel) }}
+            {{ scope.row.riskLevel }}
           </el-tag>
         </template>
       </el-table-column>
-      <el-table-column prop="creator" header-align="center" align="center" label="记录人" min-width="150" show-overflow-tooltip/>
+      <el-table-column
+        prop="creator"
+        header-align="center"
+        align="center"
+        label="记录人"
+        min-width="150"
+        show-overflow-tooltip
+      />
 
       <el-table-column label="操作" align="center" width="200">
         <template #default="scope">
-          <el-button
-            link
-            type="primary"
-            @click="openFormEdit(scope.row, scope.row.id)"
-          >
+          <el-button link type="primary" @click="openFormEdit(scope.row, scope.row.id)">
             编辑
           </el-button>
-          <el-button
-            link
-            type="warning"
-            @click="openFormDetail(scope.row,scope.row.id)"
-          >
+          <el-button link type="warning" @click="openFormDetail(scope.row, scope.row.id)">
             详情
           </el-button>
-          <el-button
-            link
-            type="danger"
-            @click="openClose(scope.row)"
-          >
-            删除
-          </el-button>
+          <el-button link type="danger" @click="openClose(scope.row)"> 删除 </el-button>
         </template>
       </el-table-column>
     </el-table>
@@ -132,14 +167,12 @@
 </template>
 
 <script setup lang="ts">
-import AddForm from "./AddForm.vue";
-import ButtonAdd from "@/components/ButtonAdd/src/ButtonAdd.vue";
+import AddForm from './AddForm.vue'
+import ButtonAdd from '@/components/ButtonAdd/src/ButtonAdd.vue'
 import { useUserStore } from '@/store/modules/user'
-import { getCurrentMonthRange } from "@/utils/dateUtil";
-import {
-  dailyLifeDelete,
-  dailyLifePage
-} from "@/api/social-work";
+import { getCurrentMonthRange } from '@/utils/dateUtil'
+import { dailyLifeDelete, dailyLifePage } from '@/api/social-work'
+import { findLabelById } from '@/utils/dict'
 
 const message = useMessage()
 const { t } = useI18n()
@@ -239,9 +272,9 @@ const openClose = async (item: any) => {
           message.success(t('common.updateSuccess'))
           await getList()
         }
-      } catch (err) { }
+      } catch (err) {}
     }
-  } catch { }
+  } catch {}
 }
 
 /** 取消按钮操作 */
@@ -250,7 +283,7 @@ const cancelDelete = async (id: number) => {
     await message.cancelConfirm()
     message.success(t('common.delSuccess'))
     await getList()
-  } catch { }
+  } catch {}
 }
 
 const route = useRoute()
@@ -276,22 +309,32 @@ const tableHeaderColor = ({ rowIndex }: any) => {
 // 获取结果等级类型
 const getResultLevelType = (resultLevel: string) => {
   switch (resultLevel) {
-    case 'complete_dependence': return 'danger'
-    case 'large_help': return 'warning'
-    case 'need_help': return 'info'
-    case 'basic_independent': return 'success'
-    default: return ''
+    case 'complete_dependence':
+      return 'danger'
+    case 'large_help':
+      return 'warning'
+    case 'need_help':
+      return 'info'
+    case 'basic_independent':
+      return 'success'
+    default:
+      return ''
   }
 }
 
 // 获取结果等级文本
 const getResultLevelText = (resultLevel: string) => {
   switch (resultLevel) {
-    case 'complete_dependence': return '生活完全依赖'
-    case 'large_help': return '生活需要很大帮助'
-    case 'need_help': return '生活需要帮忙'
-    case 'basic_independent': return '生活基本自理'
-    default: return '-'
+    case 'complete_dependence':
+      return '生活完全依赖'
+    case 'large_help':
+      return '生活需要很大帮助'
+    case 'need_help':
+      return '生活需要帮忙'
+    case 'basic_independent':
+      return '生活基本自理'
+    default:
+      return '-'
   }
 }
 </script>

+ 94 - 51
src/views/elderly/apply/nine-precautions/empyrosis/index.vue

@@ -18,12 +18,7 @@
       </el-form-item>
 
       <el-form-item label="评估人">
-        <el-input
-          v-model="queryParams.assessor"
-          placeholder="评估人"
-          class="!w-240px"
-          clearable
-        />
+        <el-input v-model="queryParams.assessor" placeholder="评估人" class="!w-240px" clearable />
       </el-form-item>
 
       <el-form-item label="记录日期">
@@ -43,7 +38,9 @@
       </el-form-item>
 
       <el-form-item>
-        <el-button @click="handleQuery" style="margin-left: 2vw"><Icon icon="ep:search" class="mr-5px" /> 搜索</el-button>
+        <el-button @click="handleQuery" style="margin-left: 2vw"
+          ><Icon icon="ep:search" class="mr-5px" /> 搜索</el-button
+        >
         <el-button @click="resetQuery"><Icon icon="ep:refresh" class="mr-5px" /> 重置</el-button>
       </el-form-item>
     </el-form>
@@ -62,43 +59,81 @@
           }}
         </template>
       </el-table-column>
-
-      <el-table-column prop="elderName" header-align="center" align="center" label="长者姓名" min-width="150" show-overflow-tooltip/>
-      <el-table-column prop="assessor" header-align="center" align="center" label="评估人" min-width="150" show-overflow-tooltip/>
-      <el-table-column prop="assessDate" header-align="center" align="center" label="记录日期" min-width="150" show-overflow-tooltip/>
-      <el-table-column prop="riskLevel" header-align="center" align="center" label="风险等级" min-width="120" show-overflow-tooltip>
+      <el-table-column
+        label="机构名称"
+        v-if="userStore.getUser.id == 1"
+        type="index"
+        width="150"
+        align="center"
+      >
+        <template #default="{ row }">
+          {{ findLabelById(userStore.getOrgTenant.options, row.tenantId) }}
+        </template>
+      </el-table-column>
+      <el-table-column
+        prop="elderName"
+        header-align="center"
+        align="center"
+        label="长者姓名"
+        min-width="150"
+        show-overflow-tooltip
+      />
+      <el-table-column
+        prop="assessor"
+        header-align="center"
+        align="center"
+        label="评估人"
+        min-width="150"
+        show-overflow-tooltip
+      />
+      <el-table-column
+        prop="assessDate"
+        header-align="center"
+        align="center"
+        label="记录日期"
+        min-width="150"
+        show-overflow-tooltip
+      />
+      <el-table-column
+        prop="riskLevel"
+        header-align="center"
+        align="center"
+        label="风险等级"
+        min-width="120"
+        show-overflow-tooltip
+      >
         <template #default="scope">
           <el-tag :type="getRiskLevelType(scope.row.riskLevel)">
             {{ getRiskLevelText(scope.row.riskLevel) }}
           </el-tag>
         </template>
       </el-table-column>
-      <el-table-column prop="assessScore" header-align="center" align="center" label="评估总得分" min-width="120" show-overflow-tooltip/>
-      <el-table-column prop="creator" header-align="center" align="center" label="记录人" min-width="150" show-overflow-tooltip/>
+      <el-table-column
+        prop="assessScore"
+        header-align="center"
+        align="center"
+        label="评估总得分"
+        min-width="120"
+        show-overflow-tooltip
+      />
+      <el-table-column
+        prop="creator"
+        header-align="center"
+        align="center"
+        label="记录人"
+        min-width="150"
+        show-overflow-tooltip
+      />
 
       <el-table-column label="操作" align="center" width="200">
         <template #default="scope">
-          <el-button
-            link
-            type="primary"
-            @click="openFormEdit(scope.row, scope.row.id)"
-          >
+          <el-button link type="primary" @click="openFormEdit(scope.row, scope.row.id)">
             编辑
           </el-button>
-          <el-button
-            link
-            type="warning"
-            @click="openFormDetail(scope.row,scope.row.id)"
-          >
+          <el-button link type="warning" @click="openFormDetail(scope.row, scope.row.id)">
             详情
           </el-button>
-          <el-button
-            link
-            type="danger"
-            @click="openClose(scope.row)"
-          >
-            删除
-          </el-button>
+          <el-button link type="danger" @click="openClose(scope.row)"> 删除 </el-button>
         </template>
       </el-table-column>
     </el-table>
@@ -132,14 +167,12 @@
 </template>
 
 <script setup lang="ts">
-import AddForm from "./AddForm.vue";
-import ButtonAdd from "@/components/ButtonAdd/src/ButtonAdd.vue";
+import AddForm from './AddForm.vue'
+import ButtonAdd from '@/components/ButtonAdd/src/ButtonAdd.vue'
 import { useUserStore } from '@/store/modules/user'
-import { getCurrentMonthRange } from "@/utils/dateUtil";
-import {
-  burnPreventionDelete,
-  burnPreventionPage
-} from "@/api/social-work";
+import { getCurrentMonthRange } from '@/utils/dateUtil'
+import { burnPreventionDelete, burnPreventionPage } from '@/api/social-work'
+import { findLabelById } from '@/utils/dict'
 
 const message = useMessage()
 const { t } = useI18n()
@@ -239,9 +272,9 @@ const openClose = async (item: any) => {
           message.success(t('common.updateSuccess'))
           await getList()
         }
-      } catch (err) { }
+      } catch (err) {}
     }
-  } catch { }
+  } catch {}
 }
 
 /** 取消按钮操作 */
@@ -250,7 +283,7 @@ const cancelDelete = async (id: number) => {
     await message.cancelConfirm()
     message.success(t('common.delSuccess'))
     await getList()
-  } catch { }
+  } catch {}
 }
 
 const route = useRoute()
@@ -276,22 +309,32 @@ const tableHeaderColor = ({ rowIndex }: any) => {
 // 获取风险等级类型
 const getRiskLevelType = (riskLevel: string) => {
   switch (riskLevel) {
-    case 'none': return 'success'
-    case 'low': return 'info'
-    case 'medium': return 'warning'
-    case 'high': return 'danger'
-    default: return ''
+    case 'none':
+      return 'success'
+    case 'low':
+      return 'info'
+    case 'medium':
+      return 'warning'
+    case 'high':
+      return 'danger'
+    default:
+      return ''
   }
 }
 
 // 获取风险等级文本
 const getRiskLevelText = (riskLevel: string) => {
   switch (riskLevel) {
-    case 'none': return '无风险'
-    case 'low': return '低风险'
-    case 'medium': return '中风险'
-    case 'high': return '高风险'
-    default: return '-'
+    case 'none':
+      return '无风险'
+    case 'low':
+      return '低风险'
+    case 'medium':
+      return '中风险'
+    case 'high':
+      return '高风险'
+    default:
+      return '-'
   }
 }
 </script>

+ 94 - 51
src/views/elderly/apply/nine-precautions/equilibrium/index.vue

@@ -18,12 +18,7 @@
       </el-form-item>
 
       <el-form-item label="评估人">
-        <el-input
-          v-model="queryParams.assessor"
-          placeholder="评估人"
-          class="!w-240px"
-          clearable
-        />
+        <el-input v-model="queryParams.assessor" placeholder="评估人" class="!w-240px" clearable />
       </el-form-item>
 
       <el-form-item label="记录日期">
@@ -43,7 +38,9 @@
       </el-form-item>
 
       <el-form-item>
-        <el-button @click="handleQuery" style="margin-left: 2vw"><Icon icon="ep:search" class="mr-5px" /> 搜索</el-button>
+        <el-button @click="handleQuery" style="margin-left: 2vw"
+          ><Icon icon="ep:search" class="mr-5px" /> 搜索</el-button
+        >
         <el-button @click="resetQuery"><Icon icon="ep:refresh" class="mr-5px" /> 重置</el-button>
       </el-form-item>
     </el-form>
@@ -62,43 +59,81 @@
           }}
         </template>
       </el-table-column>
-
-      <el-table-column prop="elderName" header-align="center" align="center" label="长者姓名" min-width="150" show-overflow-tooltip/>
-      <el-table-column prop="assessor" header-align="center" align="center" label="评估人" min-width="150" show-overflow-tooltip/>
-      <el-table-column prop="assessDate" header-align="center" align="center" label="记录日期" min-width="150" show-overflow-tooltip/>
-      <el-table-column prop="assessScore" header-align="center" align="center" label="评估总得分" min-width="120" show-overflow-tooltip/>
-      <el-table-column prop="riskLevel" header-align="center" align="center" label="风险等级" min-width="120" show-overflow-tooltip>
+      <el-table-column
+        label="机构名称"
+        v-if="userStore.getUser.id == 1"
+        type="index"
+        width="150"
+        align="center"
+      >
+        <template #default="{ row }">
+          {{ findLabelById(userStore.getOrgTenant.options, row.tenantId) }}
+        </template>
+      </el-table-column>
+      <el-table-column
+        prop="elderName"
+        header-align="center"
+        align="center"
+        label="长者姓名"
+        min-width="150"
+        show-overflow-tooltip
+      />
+      <el-table-column
+        prop="assessor"
+        header-align="center"
+        align="center"
+        label="评估人"
+        min-width="150"
+        show-overflow-tooltip
+      />
+      <el-table-column
+        prop="assessDate"
+        header-align="center"
+        align="center"
+        label="记录日期"
+        min-width="150"
+        show-overflow-tooltip
+      />
+      <el-table-column
+        prop="assessScore"
+        header-align="center"
+        align="center"
+        label="评估总得分"
+        min-width="120"
+        show-overflow-tooltip
+      />
+      <el-table-column
+        prop="riskLevel"
+        header-align="center"
+        align="center"
+        label="风险等级"
+        min-width="120"
+        show-overflow-tooltip
+      >
         <template #default="scope">
           <el-tag :type="getRiskLevelType(scope.row.riskLevel)">
             {{ getRiskLevelText(scope.row.riskLevel) }}
           </el-tag>
         </template>
       </el-table-column>
-      <el-table-column prop="creator" header-align="center" align="center" label="记录人" min-width="150" show-overflow-tooltip/>
+      <el-table-column
+        prop="creator"
+        header-align="center"
+        align="center"
+        label="记录人"
+        min-width="150"
+        show-overflow-tooltip
+      />
 
       <el-table-column label="操作" align="center" width="200">
         <template #default="scope">
-          <el-button
-            link
-            type="primary"
-            @click="openFormEdit(scope.row, scope.row.id)"
-          >
+          <el-button link type="primary" @click="openFormEdit(scope.row, scope.row.id)">
             编辑
           </el-button>
-          <el-button
-            link
-            type="warning"
-            @click="openFormDetail(scope.row,scope.row.id)"
-          >
+          <el-button link type="warning" @click="openFormDetail(scope.row, scope.row.id)">
             详情
           </el-button>
-          <el-button
-            link
-            type="danger"
-            @click="openClose(scope.row)"
-          >
-            删除
-          </el-button>
+          <el-button link type="danger" @click="openClose(scope.row)"> 删除 </el-button>
         </template>
       </el-table-column>
     </el-table>
@@ -132,14 +167,12 @@
 </template>
 
 <script setup lang="ts">
-import AddForm from "./AddForm.vue";
-import ButtonAdd from "@/components/ButtonAdd/src/ButtonAdd.vue";
+import AddForm from './AddForm.vue'
+import ButtonAdd from '@/components/ButtonAdd/src/ButtonAdd.vue'
 import { useUserStore } from '@/store/modules/user'
-import { getCurrentMonthRange } from "@/utils/dateUtil";
-import {
-  equilibriumDelete,
-  equilibriumPage
-} from "@/api/social-work";
+import { getCurrentMonthRange } from '@/utils/dateUtil'
+import { equilibriumDelete, equilibriumPage } from '@/api/social-work'
+import { findLabelById } from '@/utils/dict'
 
 const message = useMessage()
 const { t } = useI18n()
@@ -239,9 +272,9 @@ const openClose = async (item: any) => {
           message.success(t('common.updateSuccess'))
           await getList()
         }
-      } catch (err) { }
+      } catch (err) {}
     }
-  } catch { }
+  } catch {}
 }
 
 /** 取消按钮操作 */
@@ -250,7 +283,7 @@ const cancelDelete = async (id: number) => {
     await message.cancelConfirm()
     message.success(t('common.delSuccess'))
     await getList()
-  } catch { }
+  } catch {}
 }
 
 const route = useRoute()
@@ -276,22 +309,32 @@ const tableHeaderColor = ({ rowIndex }: any) => {
 // 获取风险等级类型
 const getRiskLevelType = (riskLevel: string) => {
   switch (riskLevel) {
-    case 'none': return 'success'
-    case 'low': return 'info'
-    case 'medium': return 'warning'
-    case 'high': return 'danger'
-    default: return ''
+    case 'none':
+      return 'success'
+    case 'low':
+      return 'info'
+    case 'medium':
+      return 'warning'
+    case 'high':
+      return 'danger'
+    default:
+      return ''
   }
 }
 
 // 获取风险等级文本
 const getRiskLevelText = (riskLevel: string) => {
   switch (riskLevel) {
-    case 'none': return '无风险'
-    case 'low': return '低风险'
-    case 'medium': return '中风险'
-    case 'high': return '高风险'
-    default: return '-'
+    case 'none':
+      return '无风险'
+    case 'low':
+      return '低风险'
+    case 'medium':
+      return '中风险'
+    case 'high':
+      return '高风险'
+    default:
+      return '-'
   }
 }
 </script>

+ 94 - 51
src/views/elderly/apply/nine-precautions/fall-down/index.vue

@@ -18,12 +18,7 @@
       </el-form-item>
 
       <el-form-item label="评估人">
-        <el-input
-          v-model="queryParams.assessor"
-          placeholder="评估人"
-          class="!w-240px"
-          clearable
-        />
+        <el-input v-model="queryParams.assessor" placeholder="评估人" class="!w-240px" clearable />
       </el-form-item>
 
       <el-form-item label="记录日期">
@@ -43,7 +38,9 @@
       </el-form-item>
 
       <el-form-item>
-        <el-button @click="handleQuery" style="margin-left: 2vw"><Icon icon="ep:search" class="mr-5px" /> 搜索</el-button>
+        <el-button @click="handleQuery" style="margin-left: 2vw"
+          ><Icon icon="ep:search" class="mr-5px" /> 搜索</el-button
+        >
         <el-button @click="resetQuery"><Icon icon="ep:refresh" class="mr-5px" /> 重置</el-button>
       </el-form-item>
     </el-form>
@@ -62,43 +59,81 @@
           }}
         </template>
       </el-table-column>
-
-      <el-table-column prop="elderName" header-align="center" align="center" label="长者姓名" min-width="150" show-overflow-tooltip/>
-      <el-table-column prop="assessor" header-align="center" align="center" label="评估人" min-width="150" show-overflow-tooltip/>
-      <el-table-column prop="assessDate" header-align="center" align="center" label="记录日期" min-width="150" show-overflow-tooltip/>
-      <el-table-column prop="assessScore" header-align="center" align="center" label="评估总得分" min-width="120" show-overflow-tooltip/>
-      <el-table-column prop="riskLevel" header-align="center" align="center" label="风险等级" min-width="120" show-overflow-tooltip>
+      <el-table-column
+        label="机构名称"
+        v-if="userStore.getUser.id == 1"
+        type="index"
+        width="150"
+        align="center"
+      >
+        <template #default="{ row }">
+          {{ findLabelById(userStore.getOrgTenant.options, row.tenantId) }}
+        </template>
+      </el-table-column>
+      <el-table-column
+        prop="elderName"
+        header-align="center"
+        align="center"
+        label="长者姓名"
+        min-width="150"
+        show-overflow-tooltip
+      />
+      <el-table-column
+        prop="assessor"
+        header-align="center"
+        align="center"
+        label="评估人"
+        min-width="150"
+        show-overflow-tooltip
+      />
+      <el-table-column
+        prop="assessDate"
+        header-align="center"
+        align="center"
+        label="记录日期"
+        min-width="150"
+        show-overflow-tooltip
+      />
+      <el-table-column
+        prop="assessScore"
+        header-align="center"
+        align="center"
+        label="评估总得分"
+        min-width="120"
+        show-overflow-tooltip
+      />
+      <el-table-column
+        prop="riskLevel"
+        header-align="center"
+        align="center"
+        label="风险等级"
+        min-width="120"
+        show-overflow-tooltip
+      >
         <template #default="scope">
           <el-tag :type="getRiskLevelType(scope.row.riskLevel)">
             {{ getRiskLevelText(scope.row.riskLevel) }}
           </el-tag>
         </template>
       </el-table-column>
-      <el-table-column prop="creator" header-align="center" align="center" label="记录人" min-width="150" show-overflow-tooltip/>
+      <el-table-column
+        prop="creator"
+        header-align="center"
+        align="center"
+        label="记录人"
+        min-width="150"
+        show-overflow-tooltip
+      />
 
       <el-table-column label="操作" align="center" width="200">
         <template #default="scope">
-          <el-button
-            link
-            type="primary"
-            @click="openFormEdit(scope.row, scope.row.id)"
-          >
+          <el-button link type="primary" @click="openFormEdit(scope.row, scope.row.id)">
             编辑
           </el-button>
-          <el-button
-            link
-            type="warning"
-            @click="openFormDetail(scope.row,scope.row.id)"
-          >
+          <el-button link type="warning" @click="openFormDetail(scope.row, scope.row.id)">
             详情
           </el-button>
-          <el-button
-            link
-            type="danger"
-            @click="openClose(scope.row)"
-          >
-            删除
-          </el-button>
+          <el-button link type="danger" @click="openClose(scope.row)"> 删除 </el-button>
         </template>
       </el-table-column>
     </el-table>
@@ -132,14 +167,12 @@
 </template>
 
 <script setup lang="ts">
-import AddForm from "./AddForm.vue";
-import ButtonAdd from "@/components/ButtonAdd/src/ButtonAdd.vue";
+import AddForm from './AddForm.vue'
+import ButtonAdd from '@/components/ButtonAdd/src/ButtonAdd.vue'
 import { useUserStore } from '@/store/modules/user'
-import { getCurrentMonthRange } from "@/utils/dateUtil";
-import {
-  fallDownDelete,
-  fallDownPage
-} from "@/api/social-work";
+import { getCurrentMonthRange } from '@/utils/dateUtil'
+import { fallDownDelete, fallDownPage } from '@/api/social-work'
+import { findLabelById } from '@/utils/dict'
 
 const message = useMessage()
 const { t } = useI18n()
@@ -239,9 +272,9 @@ const openClose = async (item: any) => {
           message.success(t('common.updateSuccess'))
           await getList()
         }
-      } catch (err) { }
+      } catch (err) {}
     }
-  } catch { }
+  } catch {}
 }
 
 /** 取消按钮操作 */
@@ -250,7 +283,7 @@ const cancelDelete = async (id: number) => {
     await message.cancelConfirm()
     message.success(t('common.delSuccess'))
     await getList()
-  } catch { }
+  } catch {}
 }
 
 const route = useRoute()
@@ -276,22 +309,32 @@ const tableHeaderColor = ({ rowIndex }: any) => {
 // 获取风险等级类型
 const getRiskLevelType = (riskLevel: string) => {
   switch (riskLevel) {
-    case 'none': return 'success'
-    case 'low': return 'info'
-    case 'medium': return 'warning'
-    case 'high': return 'danger'
-    default: return ''
+    case 'none':
+      return 'success'
+    case 'low':
+      return 'info'
+    case 'medium':
+      return 'warning'
+    case 'high':
+      return 'danger'
+    default:
+      return ''
   }
 }
 
 // 获取风险等级文本
 const getRiskLevelText = (riskLevel: string) => {
   switch (riskLevel) {
-    case 'none': return '无风险'
-    case 'low': return '低风险'
-    case 'medium': return '中风险'
-    case 'high': return '高风险'
-    default: return '-'
+    case 'none':
+      return '无风险'
+    case 'low':
+      return '低风险'
+    case 'medium':
+      return '中风险'
+    case 'high':
+      return '高风险'
+    default:
+      return '-'
   }
 }
 </script>

+ 94 - 51
src/views/elderly/apply/nine-precautions/fall-prevention-measures/index.vue

@@ -18,12 +18,7 @@
       </el-form-item>
 
       <el-form-item label="评估人">
-        <el-input
-          v-model="queryParams.assessor"
-          placeholder="评估人"
-          class="!w-240px"
-          clearable
-        />
+        <el-input v-model="queryParams.assessor" placeholder="评估人" class="!w-240px" clearable />
       </el-form-item>
 
       <el-form-item label="记录日期">
@@ -43,7 +38,9 @@
       </el-form-item>
 
       <el-form-item>
-        <el-button @click="handleQuery" style="margin-left: 2vw"><Icon icon="ep:search" class="mr-5px" /> 搜索</el-button>
+        <el-button @click="handleQuery" style="margin-left: 2vw"
+          ><Icon icon="ep:search" class="mr-5px" /> 搜索</el-button
+        >
         <el-button @click="resetQuery"><Icon icon="ep:refresh" class="mr-5px" /> 重置</el-button>
       </el-form-item>
     </el-form>
@@ -62,43 +59,81 @@
           }}
         </template>
       </el-table-column>
-
-      <el-table-column prop="elderName" header-align="center" align="center" label="长者姓名" min-width="150" show-overflow-tooltip/>
-      <el-table-column prop="assessor" header-align="center" align="center" label="评估人" min-width="150" show-overflow-tooltip/>
-      <el-table-column prop="assessDate" header-align="center" align="center" label="记录日期" min-width="150" show-overflow-tooltip/>
-      <el-table-column prop="assessScore" header-align="center" align="center" label="评估总得分" min-width="120" show-overflow-tooltip/>
-      <el-table-column prop="riskLevel" header-align="center" align="center" label="风险等级" min-width="120" show-overflow-tooltip>
+      <el-table-column
+        label="机构名称"
+        v-if="userStore.getUser.id == 1"
+        type="index"
+        width="150"
+        align="center"
+      >
+        <template #default="{ row }">
+          {{ findLabelById(userStore.getOrgTenant.options, row.tenantId) }}
+        </template>
+      </el-table-column>
+      <el-table-column
+        prop="elderName"
+        header-align="center"
+        align="center"
+        label="长者姓名"
+        min-width="150"
+        show-overflow-tooltip
+      />
+      <el-table-column
+        prop="assessor"
+        header-align="center"
+        align="center"
+        label="评估人"
+        min-width="150"
+        show-overflow-tooltip
+      />
+      <el-table-column
+        prop="assessDate"
+        header-align="center"
+        align="center"
+        label="记录日期"
+        min-width="150"
+        show-overflow-tooltip
+      />
+      <el-table-column
+        prop="assessScore"
+        header-align="center"
+        align="center"
+        label="评估总得分"
+        min-width="120"
+        show-overflow-tooltip
+      />
+      <el-table-column
+        prop="riskLevel"
+        header-align="center"
+        align="center"
+        label="风险等级"
+        min-width="120"
+        show-overflow-tooltip
+      >
         <template #default="scope">
           <el-tag :type="getRiskLevelType(scope.row.riskLevel)">
             {{ getRiskLevelText(scope.row.riskLevel) }}
           </el-tag>
         </template>
       </el-table-column>
-      <el-table-column prop="creator" header-align="center" align="center" label="记录人" min-width="150" show-overflow-tooltip/>
+      <el-table-column
+        prop="creator"
+        header-align="center"
+        align="center"
+        label="记录人"
+        min-width="150"
+        show-overflow-tooltip
+      />
 
       <el-table-column label="操作" align="center" width="200">
         <template #default="scope">
-          <el-button
-            link
-            type="primary"
-            @click="openFormEdit(scope.row, scope.row.id)"
-          >
+          <el-button link type="primary" @click="openFormEdit(scope.row, scope.row.id)">
             编辑
           </el-button>
-          <el-button
-            link
-            type="warning"
-            @click="openFormDetail(scope.row,scope.row.id)"
-          >
+          <el-button link type="warning" @click="openFormDetail(scope.row, scope.row.id)">
             详情
           </el-button>
-          <el-button
-            link
-            type="danger"
-            @click="openClose(scope.row)"
-          >
-            删除
-          </el-button>
+          <el-button link type="danger" @click="openClose(scope.row)"> 删除 </el-button>
         </template>
       </el-table-column>
     </el-table>
@@ -132,14 +167,12 @@
 </template>
 
 <script setup lang="ts">
-import AddForm from "./AddForm.vue";
-import ButtonAdd from "@/components/ButtonAdd/src/ButtonAdd.vue";
+import AddForm from './AddForm.vue'
+import ButtonAdd from '@/components/ButtonAdd/src/ButtonAdd.vue'
 import { useUserStore } from '@/store/modules/user'
-import { getCurrentMonthRange } from "@/utils/dateUtil";
-import {
-  fallPreventionDelete,
-  fallPreventionPage
-} from "@/api/social-work";
+import { getCurrentMonthRange } from '@/utils/dateUtil'
+import { fallPreventionDelete, fallPreventionPage } from '@/api/social-work'
+import { findLabelById } from '@/utils/dict'
 
 const message = useMessage()
 const { t } = useI18n()
@@ -239,9 +272,9 @@ const openClose = async (item: any) => {
           message.success(t('common.updateSuccess'))
           await getList()
         }
-      } catch (err) { }
+      } catch (err) {}
     }
-  } catch { }
+  } catch {}
 }
 
 /** 取消按钮操作 */
@@ -250,7 +283,7 @@ const cancelDelete = async (id: number) => {
     await message.cancelConfirm()
     message.success(t('common.delSuccess'))
     await getList()
-  } catch { }
+  } catch {}
 }
 
 const route = useRoute()
@@ -276,22 +309,32 @@ const tableHeaderColor = ({ rowIndex }: any) => {
 // 获取风险等级类型
 const getRiskLevelType = (riskLevel: string) => {
   switch (riskLevel) {
-    case 'none': return 'success'
-    case 'low': return 'info'
-    case 'medium': return 'warning'
-    case 'high': return 'danger'
-    default: return ''
+    case 'none':
+      return 'success'
+    case 'low':
+      return 'info'
+    case 'medium':
+      return 'warning'
+    case 'high':
+      return 'danger'
+    default:
+      return ''
   }
 }
 
 // 获取风险等级文本
 const getRiskLevelText = (riskLevel: string) => {
   switch (riskLevel) {
-    case 'none': return '无风险'
-    case 'low': return '低风险'
-    case 'medium': return '中风险'
-    case 'high': return '高风险'
-    default: return '-'
+    case 'none':
+      return '无风险'
+    case 'low':
+      return '低风险'
+    case 'medium':
+      return '中风险'
+    case 'high':
+      return '高风险'
+    default:
+      return '-'
   }
 }
 </script>

+ 77 - 43
src/views/elderly/apply/nine-precautions/nutritional-risk/index.vue

@@ -4,8 +4,8 @@ import { ContentWrap } from '@/components/ContentWrap'
 import { nutritionalRiskPage, nutritionalRiskDelete } from '@/api/social-work'
 import AddForm from './AddForm.vue'
 import { useUserStore } from '@/store/modules/user'
-import { getCurrentMonthRange } from '@/utils/dateUtil'
-import {tableHeaderColor} from "@/utils/table";
+import { tableHeaderColor } from '@/utils/table'
+import { findLabelById } from '@/utils/dict'
 
 const userStore = useUserStore()
 const message = useMessage()
@@ -87,18 +87,18 @@ const handleExport = () => {
 
 const getResultLevelType = (level: string) => {
   const typeMap: Record<string, string> = {
-    'good': 'success',
-    'at_risk': 'warning',
-    'malnutrition': 'danger'
+    good: 'success',
+    at_risk: 'warning',
+    malnutrition: 'danger'
   }
   return typeMap[level] || 'info'
 }
 
 const getResultLevelText = (level: string) => {
   const textMap: Record<string, string> = {
-    'good': '营养状况良好',
-    'at_risk': '有营养不良风险',
-    'malnutrition': '有营养不良'
+    good: '营养状况良好',
+    at_risk: '有营养不良风险',
+    malnutrition: '有营养不良'
   }
   return textMap[level] || level
 }
@@ -128,12 +128,7 @@ onMounted(() => {
       </el-form-item>
 
       <el-form-item label="评估人">
-        <el-input
-          v-model="queryParams.assessor"
-          placeholder="评估人"
-          class="!w-240px"
-          clearable
-        />
+        <el-input v-model="queryParams.assessor" placeholder="评估人" class="!w-240px" clearable />
       </el-form-item>
 
       <el-form-item label="记录日期">
@@ -153,7 +148,9 @@ onMounted(() => {
       </el-form-item>
 
       <el-form-item>
-        <el-button @click="handleQuery" style="margin-left: 2vw"><Icon icon="ep:search" class="mr-5px" /> 搜索</el-button>
+        <el-button @click="handleQuery" style="margin-left: 2vw"
+          ><Icon icon="ep:search" class="mr-5px" /> 搜索</el-button
+        >
         <el-button @click="resetQuery"><Icon icon="ep:refresh" class="mr-5px" /> 重置</el-button>
       </el-form-item>
     </el-form>
@@ -172,45 +169,83 @@ onMounted(() => {
           }}
         </template>
       </el-table-column>
-
-      <el-table-column prop="elderName" header-align="center" align="center" label="长者姓名" min-width="150" show-overflow-tooltip/>
-      <el-table-column prop="assessor" header-align="center" align="center" label="评估人" min-width="150" show-overflow-tooltip/>
-      <el-table-column prop="assessDate" header-align="center" align="center" label="记录日期" min-width="150" show-overflow-tooltip/>
-<!--      <el-table-column prop="initialScore" header-align="center" align="center" label="初筛分数" min-width="100" show-overflow-tooltip/>-->
-<!--      <el-table-column prop="assessScore" header-align="center" align="center" label="评估分数" min-width="100" show-overflow-tooltip/>-->
-      <el-table-column prop="assessScore" header-align="center" align="center" label="量表总分" min-width="100" show-overflow-tooltip/>
-      <el-table-column prop="resultLevel" header-align="center" align="center" label="评估结果" min-width="150" show-overflow-tooltip>
+      <el-table-column
+        label="机构名称"
+        v-if="userStore.getUser.id == 1"
+        type="index"
+        width="150"
+        align="center"
+      >
+        <template #default="{ row }">
+          {{ findLabelById(userStore.getOrgTenant.options, row.tenantId) }}
+        </template>
+      </el-table-column>
+      <el-table-column
+        prop="elderName"
+        header-align="center"
+        align="center"
+        label="长者姓名"
+        min-width="150"
+        show-overflow-tooltip
+      />
+      <el-table-column
+        prop="assessor"
+        header-align="center"
+        align="center"
+        label="评估人"
+        min-width="150"
+        show-overflow-tooltip
+      />
+      <el-table-column
+        prop="assessDate"
+        header-align="center"
+        align="center"
+        label="记录日期"
+        min-width="150"
+        show-overflow-tooltip
+      />
+      <!--      <el-table-column prop="initialScore" header-align="center" align="center" label="初筛分数" min-width="100" show-overflow-tooltip/>-->
+      <!--      <el-table-column prop="assessScore" header-align="center" align="center" label="评估分数" min-width="100" show-overflow-tooltip/>-->
+      <el-table-column
+        prop="assessScore"
+        header-align="center"
+        align="center"
+        label="量表总分"
+        min-width="100"
+        show-overflow-tooltip
+      />
+      <el-table-column
+        prop="resultLevel"
+        header-align="center"
+        align="center"
+        label="评估结果"
+        min-width="150"
+        show-overflow-tooltip
+      >
         <template #default="scope">
           <el-tag :type="getResultLevelType(scope.row.riskLevel)">
             {{ getResultLevelText(scope.row.riskLevel) }}
           </el-tag>
         </template>
       </el-table-column>
-      <el-table-column prop="creator" header-align="center" align="center" label="记录人" min-width="150" show-overflow-tooltip/>
+      <el-table-column
+        prop="creator"
+        header-align="center"
+        align="center"
+        label="记录人"
+        min-width="150"
+        show-overflow-tooltip
+      />
 
       <el-table-column label="操作" align="center" width="200">
         <template #default="scope">
-          <el-button
-            link
-            type="primary"
-            @click="openFormEdit(scope.row, scope.row.id)"
-          >
+          <el-button link type="primary" @click="openFormEdit(scope.row, scope.row.id)">
             编辑
           </el-button>
-          <el-button
-            link
-            type="warning"
-            @click="openFormDetail(scope.row,scope.row.id)"
-          >
+          <el-button link type="warning" @click="openFormDetail(scope.row, scope.row.id)">
             详情
           </el-button>
-          <el-button
-            link
-            type="danger"
-            @click="openClose(scope.row)"
-          >
-            删除
-          </el-button>
+          <el-button link type="danger" @click="openClose(scope.row)"> 删除 </el-button>
         </template>
       </el-table-column>
     </el-table>
@@ -226,5 +261,4 @@ onMounted(() => {
   <AddForm ref="formRef" @success="getList" />
 </template>
 
-<style scoped lang="scss">
-</style>
+<style scoped lang="scss"></style>

+ 94 - 51
src/views/elderly/apply/nine-precautions/pressure-sores/index.vue

@@ -18,12 +18,7 @@
       </el-form-item>
 
       <el-form-item label="评估人">
-        <el-input
-          v-model="queryParams.assessor"
-          placeholder="评估人"
-          class="!w-240px"
-          clearable
-        />
+        <el-input v-model="queryParams.assessor" placeholder="评估人" class="!w-240px" clearable />
       </el-form-item>
 
       <el-form-item label="记录日期">
@@ -43,7 +38,9 @@
       </el-form-item>
 
       <el-form-item>
-        <el-button @click="handleQuery" style="margin-left: 2vw"><Icon icon="ep:search" class="mr-5px" /> 搜索</el-button>
+        <el-button @click="handleQuery" style="margin-left: 2vw"
+          ><Icon icon="ep:search" class="mr-5px" /> 搜索</el-button
+        >
         <el-button @click="resetQuery"><Icon icon="ep:refresh" class="mr-5px" /> 重置</el-button>
       </el-form-item>
     </el-form>
@@ -62,43 +59,81 @@
           }}
         </template>
       </el-table-column>
-
-      <el-table-column prop="elderName" header-align="center" align="center" label="长者姓名" min-width="150" show-overflow-tooltip/>
-      <el-table-column prop="assessor" header-align="center" align="center" label="评估人" min-width="150" show-overflow-tooltip/>
-      <el-table-column prop="assessDate" header-align="center" align="center" label="记录日期" min-width="150" show-overflow-tooltip/>
-      <el-table-column prop="assessScore" header-align="center" align="center" label="评估总得分" min-width="120" show-overflow-tooltip/>
-      <el-table-column prop="riskLevel" header-align="center" align="center" label="风险等级" min-width="120" show-overflow-tooltip>
+      <el-table-column
+        label="机构名称"
+        v-if="userStore.getUser.id == 1"
+        type="index"
+        width="150"
+        align="center"
+      >
+        <template #default="{ row }">
+          {{ findLabelById(userStore.getOrgTenant.options, row.tenantId) }}
+        </template>
+      </el-table-column>
+      <el-table-column
+        prop="elderName"
+        header-align="center"
+        align="center"
+        label="长者姓名"
+        min-width="150"
+        show-overflow-tooltip
+      />
+      <el-table-column
+        prop="assessor"
+        header-align="center"
+        align="center"
+        label="评估人"
+        min-width="150"
+        show-overflow-tooltip
+      />
+      <el-table-column
+        prop="assessDate"
+        header-align="center"
+        align="center"
+        label="记录日期"
+        min-width="150"
+        show-overflow-tooltip
+      />
+      <el-table-column
+        prop="assessScore"
+        header-align="center"
+        align="center"
+        label="评估总得分"
+        min-width="120"
+        show-overflow-tooltip
+      />
+      <el-table-column
+        prop="riskLevel"
+        header-align="center"
+        align="center"
+        label="风险等级"
+        min-width="120"
+        show-overflow-tooltip
+      >
         <template #default="scope">
           <el-tag :type="getRiskLevelType(scope.row.riskLevel)">
             {{ getRiskLevelText(scope.row.riskLevel) }}
           </el-tag>
         </template>
       </el-table-column>
-      <el-table-column prop="creator" header-align="center" align="center" label="记录人" min-width="150" show-overflow-tooltip/>
+      <el-table-column
+        prop="creator"
+        header-align="center"
+        align="center"
+        label="记录人"
+        min-width="150"
+        show-overflow-tooltip
+      />
 
       <el-table-column label="操作" align="center" width="200">
         <template #default="scope">
-          <el-button
-            link
-            type="primary"
-            @click="openFormEdit(scope.row, scope.row.id)"
-          >
+          <el-button link type="primary" @click="openFormEdit(scope.row, scope.row.id)">
             编辑
           </el-button>
-          <el-button
-            link
-            type="warning"
-            @click="openFormDetail(scope.row,scope.row.id)"
-          >
+          <el-button link type="warning" @click="openFormDetail(scope.row, scope.row.id)">
             详情
           </el-button>
-          <el-button
-            link
-            type="danger"
-            @click="openClose(scope.row)"
-          >
-            删除
-          </el-button>
+          <el-button link type="danger" @click="openClose(scope.row)"> 删除 </el-button>
         </template>
       </el-table-column>
     </el-table>
@@ -132,14 +167,12 @@
 </template>
 
 <script setup lang="ts">
-import AddForm from "./AddForm.vue";
-import ButtonAdd from "@/components/ButtonAdd/src/ButtonAdd.vue";
+import AddForm from './AddForm.vue'
+import ButtonAdd from '@/components/ButtonAdd/src/ButtonAdd.vue'
 import { useUserStore } from '@/store/modules/user'
-import { getCurrentMonthRange } from "@/utils/dateUtil";
-import {
-  pressureSoresDelete,
-  pressureSoresPage
-} from "@/api/social-work";
+import { getCurrentMonthRange } from '@/utils/dateUtil'
+import { pressureSoresDelete, pressureSoresPage } from '@/api/social-work'
+import { findLabelById } from '@/utils/dict'
 
 const message = useMessage()
 const { t } = useI18n()
@@ -239,9 +272,9 @@ const openClose = async (item: any) => {
           message.success(t('common.updateSuccess'))
           await getList()
         }
-      } catch (err) { }
+      } catch (err) {}
     }
-  } catch { }
+  } catch {}
 }
 
 /** 取消按钮操作 */
@@ -250,7 +283,7 @@ const cancelDelete = async (id: number) => {
     await message.cancelConfirm()
     message.success(t('common.delSuccess'))
     await getList()
-  } catch { }
+  } catch {}
 }
 
 const route = useRoute()
@@ -276,22 +309,32 @@ const tableHeaderColor = ({ rowIndex }: any) => {
 // 获取风险等级类型
 const getRiskLevelType = (riskLevel: string) => {
   switch (riskLevel) {
-    case 'none': return 'success'
-    case 'low': return 'info'
-    case 'medium': return 'warning'
-    case 'high': return 'danger'
-    default: return ''
+    case 'none':
+      return 'success'
+    case 'low':
+      return 'info'
+    case 'medium':
+      return 'warning'
+    case 'high':
+      return 'danger'
+    default:
+      return ''
   }
 }
 
 // 获取风险等级文本
 const getRiskLevelText = (riskLevel: string) => {
   switch (riskLevel) {
-    case 'none': return '无风险'
-    case 'low': return '低风险'
-    case 'medium': return '中风险'
-    case 'high': return '高风险'
-    default: return '-'
+    case 'none':
+      return '无风险'
+    case 'low':
+      return '低风险'
+    case 'medium':
+      return '中风险'
+    case 'high':
+      return '高风险'
+    default:
+      return '-'
   }
 }
 </script>

+ 127 - 89
src/views/elderly/apply/nine-precautions/risk-disclosure-statement/index.vue

@@ -17,29 +17,25 @@
         />
       </el-form-item>
 
-<!--      <el-form-item label="评估年份">-->
-<!--        <el-date-picker-->
-<!--          size="default"-->
-<!--          ref="selectRef"-->
-<!--          class="!w-240px"-->
-<!--          v-model="queryParams.recordMonthRange"-->
-<!--          type="year"-->
-<!--          :clearable="true"-->
-<!--          :editable="false"-->
-<!--          placeholder="选择记录年份"-->
-<!--          value-format="YYYY"-->
-<!--          format="YYYY"-->
-<!--          date-format="YYYY"-->
-<!--        />-->
-<!--      </el-form-item>-->
+      <!--      <el-form-item label="评估年份">-->
+      <!--        <el-date-picker-->
+      <!--          size="default"-->
+      <!--          ref="selectRef"-->
+      <!--          class="!w-240px"-->
+      <!--          v-model="queryParams.recordMonthRange"-->
+      <!--          type="year"-->
+      <!--          :clearable="true"-->
+      <!--          :editable="false"-->
+      <!--          placeholder="选择记录年份"-->
+      <!--          value-format="YYYY"-->
+      <!--          format="YYYY"-->
+      <!--          date-format="YYYY"-->
+      <!--        />-->
+      <!--      </el-form-item>-->
 
       <el-form-item>
-        <el-button @click="handleQuery">
-          <Icon icon="ep:search" class="mr-5px" /> 搜索
-        </el-button>
-        <el-button @click="resetQuery">
-          <Icon icon="ep:refresh" class="mr-5px" /> 重置
-        </el-button>
+        <el-button @click="handleQuery"> <Icon icon="ep:search" class="mr-5px" /> 搜索 </el-button>
+        <el-button @click="resetQuery"> <Icon icon="ep:refresh" class="mr-5px" /> 重置 </el-button>
       </el-form-item>
     </el-form>
   </ContentWrap>
@@ -51,7 +47,7 @@
         <el-button type="primary" @click="handleAdd">
           <Icon icon="ep:plus" class="mr-5px" /> 新增
         </el-button>
-         <el-button type="success" @click="handleExport">
+        <el-button type="success" @click="handleExport">
           <Icon icon="ep:upload" class="mr-5px" /> 导出
         </el-button>
       </template>
@@ -59,98 +55,146 @@
 
     <el-table v-loading="loading" :data="list" stripe>
       <el-table-column type="index" label="序号" width="60" align="center" />
-      <el-table-column label="长者姓名" prop="elderName" width="110" align="center"/>
+      <el-table-column
+        label="机构名称"
+        v-if="userStore.getUser.id == 1"
+        type="index"
+        width="150"
+        align="center"
+      >
+        <template #default="{ row }">
+          {{ findLabelById(userStore.getOrgTenant.options, row.tenantId) }}
+        </template>
+      </el-table-column>
+      <el-table-column label="长者姓名" prop="elderName" width="110" align="center" />
       <el-table-column label="性别" prop="elderSex" width="80" align="center">
         <template #default="{ row }">
           {{ getDictLabel(DICT_TYPE.SYSTEM_USER_SEX, row.elderSex) }}
         </template>
       </el-table-column>
-      <el-table-column label="年龄" prop="elderAge" width="80" align="center"/>
+      <el-table-column label="年龄" prop="elderAge" width="80" align="center" />
 
-      <el-table-column label="床号" prop="bedName" width="200" align="center"/>
-      <el-table-column label="合同号" prop="contractNumber" width="150" align="center"/>
-      <el-table-column label="护理级别" prop="nurseLevelName" width="150" align="center"/>
+      <el-table-column label="床号" prop="bedName" width="200" align="center" />
+      <el-table-column label="合同号" prop="contractNumber" width="150" align="center" />
+      <el-table-column label="护理级别" prop="nurseLevelName" width="150" align="center" />
 
-      <el-table-column label="防噎食评估" prop="asphyxiationRisk" width="130" align="center" >
+      <el-table-column label="防噎食评估" prop="asphyxiationRisk" width="130" align="center">
         <template #default="{ row }">
-          <el-tag :type="getRiskType(row.riskData?.asphyxiation?.level)" :class="{ 'cursor-pointer': row.riskData?.asphyxiation?.id }" @click="row.riskData?.asphyxiation?.id && handleOpenAsphyxiation(row.riskData?.asphyxiation)">{{ getRiskLevelText(row.riskData?.asphyxiation?.level || '-') }}</el-tag>
+          <el-tag
+            :type="getRiskType(row.riskData?.asphyxiation?.level)"
+            :class="{ 'cursor-pointer': row.riskData?.asphyxiation?.id }"
+            @click="
+              row.riskData?.asphyxiation?.id && handleOpenAsphyxiation(row.riskData?.asphyxiation)
+            "
+            >{{ getRiskLevelText(row.riskData?.asphyxiation?.level || '-') }}</el-tag
+          >
         </template>
       </el-table-column>
-      <el-table-column label="防压疮评估" prop="pressureUlcerRisk" width="130" align="center" >
+      <el-table-column label="防压疮评估" prop="pressureUlcerRisk" width="130" align="center">
         <template #default="{ row }">
-          <el-tag :type="getRiskType(row.riskData?.pressureUlcer?.level)" :class="{ 'cursor-pointer': row.riskData?.pressureUlcer?.id }" @click="row.riskData?.pressureUlcer?.id && handleOpenPressureUlcer(row.riskData?.pressureUlcer)">{{ getRiskLevelText(row.riskData?.pressureUlcer?.level || '-') }}</el-tag>
+          <el-tag
+            :type="getRiskType(row.riskData?.pressureUlcer?.level)"
+            :class="{ 'cursor-pointer': row.riskData?.pressureUlcer?.id }"
+            @click="
+              row.riskData?.pressureUlcer?.id &&
+              handleOpenPressureUlcer(row.riskData?.pressureUlcer)
+            "
+            >{{ getRiskLevelText(row.riskData?.pressureUlcer?.level || '-') }}</el-tag
+          >
         </template>
       </el-table-column>
-      <el-table-column label="防跌倒评估" prop="fallRisk" width="130" align="center" >
+      <el-table-column label="防跌倒评估" prop="fallRisk" width="130" align="center">
         <template #default="{ row }">
-          <el-tag :type="getRiskType(row.riskData?.fall?.level)" :class="{ 'cursor-pointer': row.riskData?.fall?.id }" @click="row.riskData?.fall?.id && handleOpenFall(row.riskData?.fall)">{{ getRiskLevelText(row.riskData?.fall?.level || '-') }}</el-tag>
+          <el-tag
+            :type="getRiskType(row.riskData?.fall?.level)"
+            :class="{ 'cursor-pointer': row.riskData?.fall?.id }"
+            @click="row.riskData?.fall?.id && handleOpenFall(row.riskData?.fall)"
+            >{{ getRiskLevelText(row.riskData?.fall?.level || '-') }}</el-tag
+          >
         </template>
       </el-table-column>
-      <el-table-column label="防坠床评估" prop="bedFallRisk" width="130" align="center" >
+      <el-table-column label="防坠床评估" prop="bedFallRisk" width="130" align="center">
         <template #default="{ row }">
-          <el-tag :type="getRiskType(row.riskData?.bedFall?.level)" :class="{ 'cursor-pointer': row.riskData?.bedFall?.id }" @click="row.riskData?.bedFall?.id && handleOpenBedFall(row.riskData?.bedFall)">{{ getRiskLevelText(row.riskData?.bedFall?.level || '-') }}</el-tag>
+          <el-tag
+            :type="getRiskType(row.riskData?.bedFall?.level)"
+            :class="{ 'cursor-pointer': row.riskData?.bedFall?.id }"
+            @click="row.riskData?.bedFall?.id && handleOpenBedFall(row.riskData?.bedFall)"
+            >{{ getRiskLevelText(row.riskData?.bedFall?.level || '-') }}</el-tag
+          >
         </template>
       </el-table-column>
-      <el-table-column label="防烫伤评估" prop="scaldRisk" width="130" align="center" >
+      <el-table-column label="防烫伤评估" prop="scaldRisk" width="130" align="center">
         <template #default="{ row }">
-          <el-tag :type="getRiskType(row.riskData?.scald?.level)" :class="{ 'cursor-pointer': row.riskData?.scald?.id }" @click="row.riskData?.scald?.id && handleOpenScald(row.riskData?.scald)">{{ getRiskLevelText(row.riskData?.scald?.level || '-') }}</el-tag>
+          <el-tag
+            :type="getRiskType(row.riskData?.scald?.level)"
+            :class="{ 'cursor-pointer': row.riskData?.scald?.id }"
+            @click="row.riskData?.scald?.id && handleOpenScald(row.riskData?.scald)"
+            >{{ getRiskLevelText(row.riskData?.scald?.level || '-') }}</el-tag
+          >
         </template>
       </el-table-column>
-      <el-table-column label="防走失评估" prop="wanderingRisk" width="130" align="center" >
+      <el-table-column label="防走失评估" prop="wanderingRisk" width="130" align="center">
         <template #default="{ row }">
-          <el-tag :type="getRiskType(row.riskData?.wandering?.level)" :class="{ 'cursor-pointer': row.riskData?.wandering?.id }" @click="row.riskData?.wandering?.id && handleOpenWandering(row.riskData?.wandering)">{{ getRiskLevelText(row.riskData?.wandering?.level || '-') }}</el-tag>
+          <el-tag
+            :type="getRiskType(row.riskData?.wandering?.level)"
+            :class="{ 'cursor-pointer': row.riskData?.wandering?.id }"
+            @click="row.riskData?.wandering?.id && handleOpenWandering(row.riskData?.wandering)"
+            >{{ getRiskLevelText(row.riskData?.wandering?.level || '-') }}</el-tag
+          >
         </template>
       </el-table-column>
-      <el-table-column label="防自伤他伤评估" prop="suicideRisk" width="130" align="center" >
+      <el-table-column label="防自伤他伤评估" prop="suicideRisk" width="130" align="center">
         <template #default="{ row }">
-          <el-tag :type="getRiskType(row.riskData?.selfHarm?.level)" :class="{ 'cursor-pointer': row.riskData?.selfHarm?.id }" @click="row.riskData?.selfHarm?.id && handleOpenSuicide(row.riskData?.selfHarm)">{{ getRiskLevelText(row.riskData?.selfHarm?.level || '-') }}</el-tag>
+          <el-tag
+            :type="getRiskType(row.riskData?.selfHarm?.level)"
+            :class="{ 'cursor-pointer': row.riskData?.selfHarm?.id }"
+            @click="row.riskData?.selfHarm?.id && handleOpenSuicide(row.riskData?.selfHarm)"
+            >{{ getRiskLevelText(row.riskData?.selfHarm?.level || '-') }}</el-tag
+          >
         </template>
       </el-table-column>
 
-      <el-table-column label="防食品药品误食评估" prop="perceptionRisk" width="152" align="center" >
+      <el-table-column label="防食品药品误食评估" prop="perceptionRisk" width="152" align="center">
         <template #default="{ row }">
-          <el-tag :type="getRiskType(row.riskData?.foodDrug?.level)" :class="{ 'cursor-pointer': row.riskData?.foodDrug?.id }" @click="row.riskData?.foodDrug?.id && handleOpenMental(row.riskData?.foodDrug)">{{ getRiskLevelText(row.riskData?.foodDrug?.level || '-') }}</el-tag>
+          <el-tag
+            :type="getRiskType(row.riskData?.foodDrug?.level)"
+            :class="{ 'cursor-pointer': row.riskData?.foodDrug?.id }"
+            @click="row.riskData?.foodDrug?.id && handleOpenMental(row.riskData?.foodDrug)"
+            >{{ getRiskLevelText(row.riskData?.foodDrug?.level || '-') }}</el-tag
+          >
         </template>
       </el-table-column>
-      <el-table-column label="防文娱活动意外" prop="balanceRisk" width="130" align="center" >
+      <el-table-column label="防文娱活动意外" prop="balanceRisk" width="130" align="center">
         <template #default="{ row }">
-          <el-tag :type="getRiskType(row.riskData?.entertainment?.level)" :class="{ 'cursor-pointer': row.riskData?.entertainment?.id }" @click="row.riskData?.entertainment?.id && handleOpenBalance(row.riskData?.entertainment)">{{ getRiskLevelText(row.riskData?.entertainment?.level || '-') }}</el-tag>
+          <el-tag
+            :type="getRiskType(row.riskData?.entertainment?.level)"
+            :class="{ 'cursor-pointer': row.riskData?.entertainment?.id }"
+            @click="
+              row.riskData?.entertainment?.id && handleOpenBalance(row.riskData?.entertainment)
+            "
+            >{{ getRiskLevelText(row.riskData?.entertainment?.level || '-') }}</el-tag
+          >
         </template>
       </el-table-column>
 
       <el-table-column label="记录时间" prop="bedName" width="200" align="center">
         <template #default="{ row }">
-          {{formatToDateTime(row.createTime)}}
+          {{ formatToDateTime(row.createTime) }}
         </template>
       </el-table-column>
-      <el-table-column label="记录人" prop="creator" width="150" align="center"/>
+      <el-table-column label="记录人" prop="creator" width="150" align="center" />
 
-     <el-table-column label="操作" align="center" width="200" fixed="right">
+      <el-table-column label="操作" align="center" width="200" fixed="right">
         <template #default="scope">
-          <el-button
-            link
-            type="primary"
-            @click="handleEdit(scope.row, scope.row.id)"
-          >
+          <el-button link type="primary" @click="handleEdit(scope.row, scope.row.id)">
             编辑
           </el-button>
-          <el-button
-            link
-            type="warning"
-            @click="handleView(scope.row,scope.row.id)"
-          >
+          <el-button link type="warning" @click="handleView(scope.row, scope.row.id)">
             详情
           </el-button>
-          <el-button
-            link
-            type="danger"
-            @click="handleDelete(scope.row)"
-          >
-            删除
-          </el-button>
+          <el-button link type="danger" @click="handleDelete(scope.row)"> 删除 </el-button>
         </template>
       </el-table-column>
-
     </el-table>
 
     <!-- 分页 -->
@@ -164,7 +208,7 @@
 
   <!-- 新增/编辑弹窗 -->
   <SafetyRiskNoticeForm ref="formRef" @success="getList" />
-  
+
   <!-- 各项评估详情弹窗 -->
   <AsphyxiationForm ref="asphyxiationFormRef" />
   <PressureSoresForm ref="pressureSoresFormRef" />
@@ -178,16 +222,11 @@
   <AntiEntertainmentForm ref="equilibriumFormRef" />
   <DailyLifeForm ref="dailyLifeFormRef" />
   <NutritionalRiskForm ref="nutritionalRiskFormRef" />
-
-
 </template>
 
 <script setup lang="ts">
-import { DICT_TYPE, getDictLabel } from '@/utils/dict'
-import {
-  getSafetyRiskNoticePage,
-  deleteSafetyRiskNotice
-} from '@/api/elderly/apply/check-in'
+import { DICT_TYPE, findLabelById, getDictLabel } from '@/utils/dict'
+import { getSafetyRiskNoticePage, deleteSafetyRiskNotice } from '@/api/elderly/apply/check-in'
 import { formatTime } from '@/utils'
 import SafetyRiskNoticeForm from './Form.vue'
 import AsphyxiationForm from '@/views/elderly/apply/nine-precautions/asphyxiation-by-choking/AddForm.vue'
@@ -202,8 +241,8 @@ import AttackForm from '@/views/elderly/apply/nine-precautions/attack/AddForm.vu
 import AntiEntertainmentForm from '@/views/elderly/apply/nine-precautions/anti-entertainment/AddForm.vue'
 import DailyLifeForm from '@/views/elderly/apply/nine-precautions/daily-life/AddForm.vue'
 import NutritionalRiskForm from '@/views/elderly/apply/nine-precautions/nutritional-risk/AddForm.vue'
-import { useUserStore } from "@/store/modules/user";
-import { formatToDateTime } from "@/utils/dateUtil";
+import { useUserStore } from '@/store/modules/user'
+import { formatToDateTime } from '@/utils/dateUtil'
 import { exportWithExpandedObjectArrays } from '@/utils/excel-export'
 const userStore = useUserStore()
 defineOptions({ name: 'RiskDisclosureStatement' })
@@ -266,9 +305,7 @@ const resetQuery = () => {
 // 新增
 const formRef = ref()
 const handleAdd = () => {
-   formRef.value?.open()
-
-
+  formRef.value?.open()
 }
 
 // 各项评估弹窗引用
@@ -327,15 +364,19 @@ const handleOpenNutrition = (row: any) => {
   nutritionalRiskFormRef.value?.open(queryParams.tenantIds[0], row.id, true)
 }
 
-
 // 获取风险等级文本
 const getRiskLevelText = (riskLevel: string) => {
   switch (riskLevel) {
-    case 'none': return '无风险'
-    case 'low': return '低风险'
-    case 'medium': return '中度风险'
-    case 'high': return '高风险'
-    default: return '-'
+    case 'none':
+      return '无风险'
+    case 'low':
+      return '低风险'
+    case 'medium':
+      return '中度风险'
+    case 'high':
+      return '高风险'
+    default:
+      return '-'
   }
 }
 
@@ -448,7 +489,4 @@ onMounted(() => {
 })
 </script>
 
-
-
-<style scoped lang="scss">
-</style>
+<style scoped lang="scss"></style>

+ 94 - 51
src/views/elderly/apply/nine-precautions/wander-away/index.vue

@@ -18,12 +18,7 @@
       </el-form-item>
 
       <el-form-item label="评估人">
-        <el-input
-          v-model="queryParams.assessor"
-          placeholder="评估人"
-          class="!w-240px"
-          clearable
-        />
+        <el-input v-model="queryParams.assessor" placeholder="评估人" class="!w-240px" clearable />
       </el-form-item>
 
       <el-form-item label="记录日期">
@@ -43,7 +38,9 @@
       </el-form-item>
 
       <el-form-item>
-        <el-button @click="handleQuery" style="margin-left: 2vw"><Icon icon="ep:search" class="mr-5px" /> 搜索</el-button>
+        <el-button @click="handleQuery" style="margin-left: 2vw"
+          ><Icon icon="ep:search" class="mr-5px" /> 搜索</el-button
+        >
         <el-button @click="resetQuery"><Icon icon="ep:refresh" class="mr-5px" /> 重置</el-button>
       </el-form-item>
     </el-form>
@@ -62,43 +59,81 @@
           }}
         </template>
       </el-table-column>
-
-      <el-table-column prop="elderName" header-align="center" align="center" label="长者姓名" min-width="150" show-overflow-tooltip/>
-      <el-table-column prop="assessor" header-align="center" align="center" label="评估人" min-width="150" show-overflow-tooltip/>
-      <el-table-column prop="assessDate" header-align="center" align="center" label="记录日期" min-width="150" show-overflow-tooltip/>
-      <el-table-column prop="assessScore" header-align="center" align="center" label="评估总得分" min-width="120" show-overflow-tooltip/>
-      <el-table-column prop="riskLevel" header-align="center" align="center" label="风险等级" min-width="120" show-overflow-tooltip>
+      <el-table-column
+        label="机构名称"
+        v-if="userStore.getUser.id == 1"
+        type="index"
+        width="150"
+        align="center"
+      >
+        <template #default="{ row }">
+          {{ findLabelById(userStore.getOrgTenant.options, row.tenantId) }}
+        </template>
+      </el-table-column>
+      <el-table-column
+        prop="elderName"
+        header-align="center"
+        align="center"
+        label="长者姓名"
+        min-width="150"
+        show-overflow-tooltip
+      />
+      <el-table-column
+        prop="assessor"
+        header-align="center"
+        align="center"
+        label="评估人"
+        min-width="150"
+        show-overflow-tooltip
+      />
+      <el-table-column
+        prop="assessDate"
+        header-align="center"
+        align="center"
+        label="记录日期"
+        min-width="150"
+        show-overflow-tooltip
+      />
+      <el-table-column
+        prop="assessScore"
+        header-align="center"
+        align="center"
+        label="评估总得分"
+        min-width="120"
+        show-overflow-tooltip
+      />
+      <el-table-column
+        prop="riskLevel"
+        header-align="center"
+        align="center"
+        label="风险等级"
+        min-width="120"
+        show-overflow-tooltip
+      >
         <template #default="scope">
           <el-tag :type="getRiskLevelType(scope.row.riskLevel)">
             {{ getRiskLevelText(scope.row.riskLevel) }}
           </el-tag>
         </template>
       </el-table-column>
-      <el-table-column prop="creator" header-align="center" align="center" label="记录人" min-width="150" show-overflow-tooltip/>
+      <el-table-column
+        prop="creator"
+        header-align="center"
+        align="center"
+        label="记录人"
+        min-width="150"
+        show-overflow-tooltip
+      />
 
       <el-table-column label="操作" align="center" width="200">
         <template #default="scope">
-          <el-button
-            link
-            type="primary"
-            @click="openFormEdit(scope.row, scope.row.id)"
-          >
+          <el-button link type="primary" @click="openFormEdit(scope.row, scope.row.id)">
             编辑
           </el-button>
-          <el-button
-            link
-            type="warning"
-            @click="openFormDetail(scope.row,scope.row.id)"
-          >
+          <el-button link type="warning" @click="openFormDetail(scope.row, scope.row.id)">
             详情
           </el-button>
-          <el-button
-            link
-            type="danger"
-            @click="openClose(scope.row)"
-          >
-            删除
-          </el-button>
+          <el-button link type="danger" @click="openClose(scope.row)"> 删除 </el-button>
         </template>
       </el-table-column>
     </el-table>
@@ -132,14 +167,12 @@
 </template>
 
 <script setup lang="ts">
-import AddForm from "./AddForm.vue";
-import ButtonAdd from "@/components/ButtonAdd/src/ButtonAdd.vue";
+import AddForm from './AddForm.vue'
+import ButtonAdd from '@/components/ButtonAdd/src/ButtonAdd.vue'
 import { useUserStore } from '@/store/modules/user'
-import { getCurrentMonthRange } from "@/utils/dateUtil";
-import {
-  wanderAwayDelete,
-  wanderAwayPage
-} from "@/api/social-work";
+import { getCurrentMonthRange } from '@/utils/dateUtil'
+import { wanderAwayDelete, wanderAwayPage } from '@/api/social-work'
+import { findLabelById } from '@/utils/dict'
 
 const message = useMessage()
 const { t } = useI18n()
@@ -239,9 +272,9 @@ const openClose = async (item: any) => {
           message.success(t('common.updateSuccess'))
           await getList()
         }
-      } catch (err) { }
+      } catch (err) {}
     }
-  } catch { }
+  } catch {}
 }
 
 /** 取消按钮操作 */
@@ -250,7 +283,7 @@ const cancelDelete = async (id: number) => {
     await message.cancelConfirm()
     message.success(t('common.delSuccess'))
     await getList()
-  } catch { }
+  } catch {}
 }
 
 const route = useRoute()
@@ -276,22 +309,32 @@ const tableHeaderColor = ({ rowIndex }: any) => {
 // 获取风险等级类型
 const getRiskLevelType = (riskLevel: string) => {
   switch (riskLevel) {
-    case 'none': return 'success'
-    case 'low': return 'info'
-    case 'medium': return 'warning'
-    case 'high': return 'danger'
-    default: return ''
+    case 'none':
+      return 'success'
+    case 'low':
+      return 'info'
+    case 'medium':
+      return 'warning'
+    case 'high':
+      return 'danger'
+    default:
+      return ''
   }
 }
 
 // 获取风险等级文本
 const getRiskLevelText = (riskLevel: string) => {
   switch (riskLevel) {
-    case 'none': return '无风险'
-    case 'low': return '低风险'
-    case 'medium': return '中风险'
-    case 'high': return '高风险'
-    default: return '-'
+    case 'none':
+      return '无风险'
+    case 'low':
+      return '低风险'
+    case 'medium':
+      return '中风险'
+    case 'high':
+      return '高风险'
+    default:
+      return '-'
   }
 }
 </script>

+ 321 - 220
src/views/elderly/assess/synthetic-ability/Print.vue

@@ -14,13 +14,13 @@
             <td>A.1.2 评估基准日期</td>
             <td>{{ formatDate(dataForm.evaluatorDate, 'YYYY-MM-DD') }}</td>
           </tr>
-          <tr v-if="templateType==0||templateType==1">
+          <tr v-if="templateType == 0 || templateType == 1">
             <td>A.1.3 评估性质</td>
             <td>
               {{ getDictLabel(DICT_TYPE.EVALUATION_ARR, dataForm.questionnaireType) }}
             </td>
           </tr>
-          <tr v-if="templateType==0||templateType==1">
+          <tr v-if="templateType == 0 || templateType == 1">
             <td>A.1.4 评估原因</td>
             <td>{{ dataForm.evaluateReasons }}</td>
           </tr>
@@ -31,18 +31,32 @@
         <h4>A.2 评估对象基本信息表</h4>
         <table style="width: 100%" border="2">
           <tr>
-            <td :colspan="(templateType==0||templateType==1)?2:''" style="width: 180px;" >A.2.1 姓名</td>
-            <td :style="(templateType==0||templateType==1)?'width: 100%':''">{{ dataForm.elderName }}</td>
+            <td :colspan="templateType == 0 || templateType == 1 ? 2 : ''" style="width: 180px"
+              >A.2.1 姓名</td
+            >
+            <td :style="templateType == 0 || templateType == 1 ? 'width: 100%' : ''">{{
+              dataForm.elderName
+            }}</td>
           </tr>
           <tr>
-            <td :colspan="(templateType==0||templateType==1)?2:''" style="width: 180px;">A.2.2 性别</td>
-            <td :style="(templateType==0||templateType==1)?'width: 100%':''">{{ dataForm.elderSex == 1 ? '男' : '女' }}</td>
+            <td :colspan="templateType == 0 || templateType == 1 ? 2 : ''" style="width: 180px"
+              >A.2.2 性别</td
+            >
+            <td :style="templateType == 0 || templateType == 1 ? 'width: 100%' : ''">{{
+              dataForm.elderSex == 1 ? '男' : '女'
+            }}</td>
           </tr>
           <tr>
-            <td :colspan="(templateType==0||templateType==1)?2:''" style="width: 180px;">A.2.3 出生日期</td>
-            <td :style="(templateType==0||templateType==1)?'width: 100%':''">{{ formatDate(dataForm.birthday, 'YYYY-MM-DD') }}</td>
+            <td :colspan="templateType == 0 || templateType == 1 ? 2 : ''" style="width: 180px"
+              >A.2.3 出生日期</td
+            >
+            <td :style="templateType == 0 || templateType == 1 ? 'width: 100%' : ''">{{
+              formatDate(dataForm.birthday, 'YYYY-MM-DD')
+            }}</td>
           </tr>
-          <template v-if="dataForm.evaluationAgency == 1 && (templateType==0||templateType==1)">
+          <template
+            v-if="dataForm.evaluationAgency == 1 && (templateType == 0 || templateType == 1)"
+          >
             <tr>
               <td colspan="2">A.2.4 身高</td>
               <td>______{{ dataForm.height }}_______cm</td>
@@ -190,24 +204,24 @@
               </td>
             </tr>
 
-            <tr v-if="templateType!=8">
+            <tr v-if="templateType != 8">
               <td width="60px" rowspan="5">A.2.14 近 30 天内照护风险事件</td>
               <td>A3.14.1 跌到</td>
               <td>{{ getDictLabel(DICT_TYPE.ACCIDENT_ARR, dataForm.accidentalFall) }}</td>
             </tr>
-            <tr v-if="templateType!=8">
+            <tr v-if="templateType != 8">
               <td>A3.14.2 走失</td>
               <td>{{ getDictLabel(DICT_TYPE.ACCIDENT_ARR, dataForm.accidentalLoss) }}</td>
             </tr>
-            <tr v-if="templateType!=8">
+            <tr v-if="templateType != 8">
               <td>A3.14.3 噎食</td>
               <td>{{ getDictLabel(DICT_TYPE.ACCIDENT_ARR, dataForm.accidentalChoking) }}</td>
             </tr>
-            <tr v-if="templateType!=8">
+            <tr v-if="templateType != 8">
               <td>A3.14.4 自杀、自伤</td>
               <td>{{ getDictLabel(DICT_TYPE.ACCIDENT_ARR, dataForm.accidentalSuicide) }}</td>
             </tr>
-            <tr v-if="templateType!=8">
+            <tr v-if="templateType != 8">
               <td>A3.14.5 其他</td>
               <td>{{ dataForm.economySource }}</td>
             </tr>
@@ -220,14 +234,17 @@
           <table style="width: 100%" border="2">
             <template v-for="(l, index2) in item.list" :key="index2">
               <tr>
-                <td colspan="2">{{l.type=='input'?(l.title+': '+(l.value?l.value:'')):l.title}}</td>
+                <td colspan="2">{{
+                  l.type == 'input' ? l.title + ': ' + (l.value ? l.value : '') : l.title
+                }}</td>
               </tr>
               <tr v-for="(r, i) in l.options" :key="index2 + i + l.title">
                 <td
                   :rowspan="l.options.length"
                   v-if="i == 0"
                   style="text-align: center; width: 50px"
-                  >{{l.type=='checkbox'?(l.value?l.value.join():''):l.value }}{{(l.type=='checkbox'||index2==0)?'':'分'}}</td
+                  >{{ l.type == 'checkbox' ? (l.value ? l.value.join() : '') : l.value
+                  }}{{ l.type == 'checkbox' || index2 == 0 ? '' : '分' }}</td
                 >
                 <td>{{ r.label }}</td>
               </tr>
@@ -236,87 +253,120 @@
               <td colspan="2">总计得分:{{ item.total }}分</td>
             </tr> -->
           </table>
-          <div style="margin-top: 12px;" v-if="templateType!=8">
+          <div style="margin-top: 12px" v-if="templateType != 8">
             <table style="width: 100%" border="2">
               <tr>
-                <td>{{item.name}}小计:</td>
+                <td>{{ item.name }}小计:</td>
               </tr>
               <tr>
                 <td>
-                  <div class="mb1">{{item.total}}分</div>
-                  (上述{{item.list.length}}个项目得分综合)
+                  <div class="mb1">{{ item.total }}分</div>
+                  (上述{{ item.list.length }}个项目得分综合)
                 </td>
               </tr>
             </table>
-<!--            <table style="width: 100%" border="2">-->
-<!--              <tr>-->
-<!--                <td :colspan="item.templateList.length">{{item.name}}分级</td>-->
-<!--              </tr>-->
-<!--              <tr>-->
-<!--                <td v-for="(t, u) in item.templateList" :key="u">-->
-<!--                  <div>{{ item.propertiesName }}</div>-->
-<!--                  <div>(总分{{ t.minValue }}-{{ t.maxValue }}分)</div>-->
-<!--                </td>-->
-<!--              </tr>-->
-<!--            </table>-->
+            <!--            <table style="width: 100%" border="2">-->
+            <!--              <tr>-->
+            <!--                <td :colspan="item.templateList.length">{{item.name}}分级</td>-->
+            <!--              </tr>-->
+            <!--              <tr>-->
+            <!--                <td v-for="(t, u) in item.templateList" :key="u">-->
+            <!--                  <div>{{ item.propertiesName }}</div>-->
+            <!--                  <div>(总分{{ t.minValue }}-{{ t.maxValue }}分)</div>-->
+            <!--                </td>-->
+            <!--              </tr>-->
+            <!--            </table>-->
           </div>
-          <div v-if="templateType==8" style="margin-top: 16px">
+          <div v-if="templateType == 8" style="margin-top: 16px">
             <h4>评估结果</h4>
             <table style="width: 100%" border="2">
-
               <tr>
-                <td  style="width: 180px;">能力评估最终等级</td>
-                <td > {{jsonRes.length>0?jsonRes[0].value:''}}-{{jsonRes.length>0?jsonRes[0].dsc:''}}</td>
+                <td style="width: 180px">能力评估最终等级</td>
+                <td>
+                  {{ jsonRes.length > 0 ? jsonRes[0].value : '' }}-{{
+                    jsonRes.length > 0 ? jsonRes[0].dsc : ''
+                  }}</td
+                >
               </tr>
               <tr>
-                <td  style="width: 180px;">照护评估最终等级</td>
-                <td > {{jsonRes.length>0?jsonRes[9].value:''}}</td>
+                <td style="width: 180px">照护评估最终等级</td>
+                <td> {{ jsonRes.length > 0 ? jsonRes[9].value : '' }}</td>
               </tr>
               <tr>
-                <td  style="width: 180px;">护理等级</td>
-                <td > {{(dataForm&&dataForm.elder&&dataForm.elder.nurseLevelName)?dataForm.elder.nurseLevelName:''}}</td>
+                <td style="width: 180px">护理等级</td>
+                <td>
+                  {{
+                    dataForm.recommendedNursingLevel
+                      ? findValue(
+                          nurseLevelList,
+                          dataForm.recommendedNursingLevel,
+                          'id',
+                          'nurseLevelName'
+                        )
+                      : dataForm && dataForm.elder && dataForm.elder.nurseLevelName
+                        ? dataForm.elder.nurseLevelName
+                        : ''
+                  }}</td
+                >
               </tr>
               <tr>
-                <td  style="width: 180px;">日常生活评估等级</td>
-                <td > {{jsonRes.length>0?jsonRes[1].dsc:''}}({{jsonRes.length>0?jsonRes[1].value+'分':''}})</td>
+                <td style="width: 180px">日常生活评估等级</td>
+                <td>
+                  {{ jsonRes.length > 0 ? jsonRes[1].dsc : '' }}({{
+                    jsonRes.length > 0 ? jsonRes[1].value + '分' : ''
+                  }})</td
+                >
               </tr>
               <tr>
-                <td  style="width: 180px;">认知能力评估等级</td>
-                <td > {{jsonRes.length>0?jsonRes[2].dsc:''}}({{jsonRes.length>0?jsonRes[2].value+'分':''}})</td>
+                <td style="width: 180px">认知能力评估等级</td>
+                <td>
+                  {{ jsonRes.length > 0 ? jsonRes[2].dsc : '' }}({{
+                    jsonRes.length > 0 ? jsonRes[2].value + '分' : ''
+                  }})</td
+                >
               </tr>
               <tr>
-                <td  style="width: 180px;">感知与沟通评估等级</td>
-                <td > {{jsonRes.length>0?jsonRes[3].dsc:''}}({{jsonRes.length>0?jsonRes[3].value+'分':''}})</td>
+                <td style="width: 180px">感知与沟通评估等级</td>
+                <td>
+                  {{ jsonRes.length > 0 ? jsonRes[3].dsc : '' }}({{
+                    jsonRes.length > 0 ? jsonRes[3].value + '分' : ''
+                  }})</td
+                >
               </tr>
               <tr>
-                <td  style="width: 180px;">健康状况评估等级</td>
-                <td > {{jsonRes.length>0?jsonRes[4].dsc:''}}</td>
+                <td style="width: 180px">健康状况评估等级</td>
+                <td> {{ jsonRes.length > 0 ? jsonRes[4].dsc : '' }}</td>
               </tr>
               <tr>
-                <td  style="width: 180px;">社会支持评估等级</td>
-                <td > {{jsonRes.length>0?jsonRes[7].dsc:''}}({{jsonRes.length>0?jsonRes[7].value+'分':''}})</td>
+                <td style="width: 180px">社会支持评估等级</td>
+                <td>
+                  {{ jsonRes.length > 0 ? jsonRes[7].dsc : '' }}({{
+                    jsonRes.length > 0 ? jsonRes[7].value + '分' : ''
+                  }})</td
+                >
               </tr>
-
             </table>
-            <table style="width: 100%;margin-top: 10px" >
+            <table style="width: 100%; margin-top: 10px">
               <tr>
                 <td colspan="3">
                   <div class="flex-column">
                     <div class="flex">
                       <span>评估员签名______{{ dataForm.informationProviderName }}______</span>
-                      <span>日期___{{(dateList.length>0)?dateList[0]:''}}___年___{{(dateList.length>0)?dateList[1]:''}}___月___{{(dateList.length>0)?dateList[2]:''}}___日</span>
+                      <span
+                        >日期___{{ dateList.length > 0 ? dateList[0] : '' }}___年___{{
+                          dateList.length > 0 ? dateList[1] : ''
+                        }}___月___{{ dateList.length > 0 ? dateList[2] : '' }}___日</span
+                      >
                     </div>
-<!--                    <div class="flex">-->
-<!--                      <span>家属签名____________________</span>-->
-<!--                      <span>日期_________年_________月_________日</span>-->
-<!--                    </div>-->
+                    <!--                    <div class="flex">-->
+                    <!--                      <span>家属签名____________________</span>-->
+                    <!--                      <span>日期_________年_________月_________日</span>-->
+                    <!--                    </div>-->
                   </div>
                 </td>
               </tr>
             </table>
-
           </div>
-
         </div>
       </template>
       <div v-else class="page">
@@ -346,48 +396,53 @@
       </div>
 
       <!-- 能力评估报告 -->
-      <div  class="page" v-if="dataForm.evaluationAgency == '1' && templateType!=8">
+      <div class="page" v-if="dataForm.evaluationAgency == '1' && templateType != 8">
         <h4>C.老年人能力评估报告</h4>
         <table style="width: 100%" border="2">
           <tr>
             <td style="width: 200px">C.1一级指标分级</td>
             <td v-for="(c, index) in cellArr" :key="index" class="t-flex" style="border: none">
-              <div v-for="(item, i) in c" :key="i" class="flex-1" style="display: flex;align-items: center;height: 100%;">
+              <div
+                v-for="(item, i) in c"
+                :key="i"
+                class="flex-1"
+                style="display: flex; align-items: center; height: 100%"
+              >
                 {{ item.evaluationName }} <span v-if="item.evaluationName"> </span>
               </div>
             </td>
           </tr>
 
-<!--          <tr>-->
-<!--            <td>C.2老年人能力初步等级</td>-->
-<!--            <td colspan="2">-->
-<!--              <div class="flex">-->
-<!--                <div class="left">-->
-<!--                  <span-->
-<!--                    v-for="(item, index) in evaluations"-->
-<!--                    :key="index"-->
-<!--                    :label="item.value"-->
-<!--                    class="item-info"-->
-<!--                    >-->
-<!--                    {{ calculateGradingSystem(dataForm.processSequenceList||[],templateType,dataForm.totalScore) }} (总分: {{dataForm.totalScore}})-->
-<!--                    </span-->
-<!--                  >-->
-<!--                </div>-->
-<!--                <div class="right">{{ active }}</div>-->
-<!--              </div>-->
-<!--            </td>-->
-<!--          </tr>-->
-<!--          <tr>-->
-<!--            <td>C.3等级变更条款</td>-->
-<!--            <td colspan="2">-->
-<!--              <div>-->
-<!--                <span>1.有认知障碍/痴呆、精神疾病者,在原有能力级别上提高一个等级。</span>-->
-<!--                <span>2.近30天内发生过2次及以上跌倒、食、自杀、走失者,在原有能力级别上提高一个等级。</span>-->
-<!--                <span>3.处于昏迷状态者,直接评定为重度失能。</span>-->
-<!--                <span>若初步等级确定为“3重度失能”,则不考虑上述1-3中各情况对最终等级的影响,等级不再提高。</span>-->
-<!--              </div>-->
-<!--            </td>-->
-<!--          </tr>-->
+          <!--          <tr>-->
+          <!--            <td>C.2老年人能力初步等级</td>-->
+          <!--            <td colspan="2">-->
+          <!--              <div class="flex">-->
+          <!--                <div class="left">-->
+          <!--                  <span-->
+          <!--                    v-for="(item, index) in evaluations"-->
+          <!--                    :key="index"-->
+          <!--                    :label="item.value"-->
+          <!--                    class="item-info"-->
+          <!--                    >-->
+          <!--                    {{ calculateGradingSystem(dataForm.processSequenceList||[],templateType,dataForm.totalScore) }} (总分: {{dataForm.totalScore}})-->
+          <!--                    </span-->
+          <!--                  >-->
+          <!--                </div>-->
+          <!--                <div class="right">{{ active }}</div>-->
+          <!--              </div>-->
+          <!--            </td>-->
+          <!--          </tr>-->
+          <!--          <tr>-->
+          <!--            <td>C.3等级变更条款</td>-->
+          <!--            <td colspan="2">-->
+          <!--              <div>-->
+          <!--                <span>1.有认知障碍/痴呆、精神疾病者,在原有能力级别上提高一个等级。</span>-->
+          <!--                <span>2.近30天内发生过2次及以上跌倒、食、自杀、走失者,在原有能力级别上提高一个等级。</span>-->
+          <!--                <span>3.处于昏迷状态者,直接评定为重度失能。</span>-->
+          <!--                <span>若初步等级确定为“3重度失能”,则不考虑上述1-3中各情况对最终等级的影响,等级不再提高。</span>-->
+          <!--              </div>-->
+          <!--            </td>-->
+          <!--          </tr>-->
           <tr>
             <td>C.2老年人能力最终等级</td>
             <td colspan="2">
@@ -398,13 +453,20 @@
                     :key="index"
                     :label="item.value"
                     class="item-info"
-                    >
-                     {{ calculateGradingSystem(dataForm.processSequenceList||[],templateType,dataForm.totalScore) }} (总分: {{dataForm.totalScore}})
-                    </span>
+                  >
+                    {{
+                      calculateGradingSystem(
+                        dataForm.processSequenceList || [],
+                        templateType,
+                        dataForm.totalScore
+                      )
+                    }}
+                    (总分: {{ dataForm.totalScore }})
+                  </span>
                 </div>
-<!--                <div class="right">-->
-<!--                  {{ active }}-->
-<!--                </div>-->
+                <!--                <div class="right">-->
+                <!--                  {{ active }}-->
+                <!--                </div>-->
               </div>
             </td>
           </tr>
@@ -413,7 +475,11 @@
               <div class="flex-column">
                 <div class="flex">
                   <span>评估员签名______{{ dataForm.informationProviderName }}______</span>
-                  <span>日期___{{(dateList.length>0)?dateList[0]:''}}___年___{{(dateList.length>0)?dateList[1]:''}}___月___{{(dateList.length>0)?dateList[2]:''}}___日</span>
+                  <span
+                    >日期___{{ dateList.length > 0 ? dateList[0] : '' }}___年___{{
+                      dateList.length > 0 ? dateList[1] : ''
+                    }}___月___{{ dateList.length > 0 ? dateList[2] : '' }}___日</span
+                  >
                 </div>
                 <div class="flex">
                   <span>家属签名____________________</span>
@@ -425,105 +491,105 @@
           <tr>
             <td colspan="3">
               <span class="ml5">注:老年人能力初步等级划分标准</span>
-              <div class="mt5" v-if="templateType==0">
+              <div class="mt5" v-if="templateType == 0">
                 <template v-for="(item, index) in descArr" :key="item.label">
                   <b>{{ index }} {{ item.label }}:</b>
                   <div v-for="c in item.desc" :key="c" class="ml5 mb2 mt2">{{ c }}</div>
                 </template>
               </div>
-              <div v-if="templateType==1">
+              <div v-if="templateType == 1">
                 <div class="elderly-level-table">
                   <!-- 一级指标等级评估表 -->
                   <table>
                     <thead>
-                    <tr>
-                      <th>一级指标</th>
-                      <th>能力完好</th>
-                      <th>轻度受损</th>
-                      <th>中度受损</th>
-                      <th>重度受损</th>
-                    </tr>
+                      <tr>
+                        <th>一级指标</th>
+                        <th>能力完好</th>
+                        <th>轻度受损</th>
+                        <th>中度受损</th>
+                        <th>重度受损</th>
+                      </tr>
                     </thead>
                     <tbody>
-                    <tr>
-                      <td>日常生活活动能力(B1)</td>
-                      <td>100分</td>
-                      <td>65-95分</td>
-                      <td>45-60分</td>
-                      <td>0-40分</td>
-                    </tr>
-                    <tr>
-                      <td>认知能力(B2)</td>
-                      <td>16分</td>
-                      <td>4-15分</td>
-                      <td>2-3分</td>
-                      <td>0-1分</td>
-                    </tr>
-                    <tr>
-                      <td>感知觉与沟通能力(B3)</td>
-                      <td>12分</td>
-                      <td>4-11分</td>
-                      <td>2-3分</td>
-                      <td>0-1分</td>
-                    </tr>
+                      <tr>
+                        <td>日常生活活动能力(B1)</td>
+                        <td>100分</td>
+                        <td>65-95分</td>
+                        <td>45-60分</td>
+                        <td>0-40分</td>
+                      </tr>
+                      <tr>
+                        <td>认知能力(B2)</td>
+                        <td>16分</td>
+                        <td>4-15分</td>
+                        <td>2-3分</td>
+                        <td>0-1分</td>
+                      </tr>
+                      <tr>
+                        <td>感知觉与沟通能力(B3)</td>
+                        <td>12分</td>
+                        <td>4-11分</td>
+                        <td>2-3分</td>
+                        <td>0-1分</td>
+                      </tr>
                     </tbody>
                   </table>
 
                   <!-- 失能等级对应表 -->
-                  <table style="margin-top: 20px;">
+                  <table style="margin-top: 20px">
                     <thead>
-                    <tr>
-                      <th colspan="2"></th>
-                      <th colspan="4">B2/B3 (以失能等级严重的判断)</th>
-                    </tr>
-                    <tr>
-                      <th>B1失能等级</th>
-                      <th>B2/B3失能等级</th>
-                      <th>能力完好</th>
-                      <th>轻度受损</th>
-                      <th>中度受损</th>
-                      <th>重度受损</th>
-                    </tr>
+                      <tr>
+                        <th colspan="2"></th>
+                        <th colspan="4">B2/B3 (以失能等级严重的判断)</th>
+                      </tr>
+                      <tr>
+                        <th>B1失能等级</th>
+                        <th>B2/B3失能等级</th>
+                        <th>能力完好</th>
+                        <th>轻度受损</th>
+                        <th>中度受损</th>
+                        <th>重度受损</th>
+                      </tr>
                     </thead>
                     <tbody>
-                    <tr>
-                      <td rowspan="4">B1失能等级</td>
-                      <td>能力完好</td>
-                      <td>0级</td>
-                      <td>0级</td>
-                      <td>1级</td>
-                      <td>1级</td>
-                    </tr>
-                    <tr>
-                      <td>轻度受损</td>
-                      <td>1级</td>
-                      <td>1级</td>
-                      <td>1级</td>
-                      <td>2级</td>
-                    </tr>
-                    <tr>
-                      <td>中度受损</td>
-                      <td>2级</td>
-                      <td>2级</td>
-                      <td>2级</td>
-                      <td>3级</td>
-                    </tr>
-                    <tr>
-                      <td>重度受损</td>
-                      <td>3级</td>
-                      <td>3级</td>
-                      <td>4级</td>
-                      <td>5级</td>
-                    </tr>
+                      <tr>
+                        <td rowspan="4">B1失能等级</td>
+                        <td>能力完好</td>
+                        <td>0级</td>
+                        <td>0级</td>
+                        <td>1级</td>
+                        <td>1级</td>
+                      </tr>
+                      <tr>
+                        <td>轻度受损</td>
+                        <td>1级</td>
+                        <td>1级</td>
+                        <td>1级</td>
+                        <td>2级</td>
+                      </tr>
+                      <tr>
+                        <td>中度受损</td>
+                        <td>2级</td>
+                        <td>2级</td>
+                        <td>2级</td>
+                        <td>3级</td>
+                      </tr>
+                      <tr>
+                        <td>重度受损</td>
+                        <td>3级</td>
+                        <td>3级</td>
+                        <td>4级</td>
+                        <td>5级</td>
+                      </tr>
                     </tbody>
                   </table>
 
                   <!-- 老年人能力等级对应表 -->
-                  <div style="margin-top: 20px;">
+                  <div style="margin-top: 20px">
                     <h4>老年人能力等级对应</h4>
                     <div class="level-descriptions">
                       <div v-for="(item, index) in syntheticAbilityRecord2" :key="index">
-                        <div style="margin-bottom: 10px;">
+                        <div style="margin-bottom: 10px">
                           <span>{{ item.label }}: {{ item.des }}</span>
                         </div>
                       </div>
@@ -531,8 +597,8 @@
                   </div>
                 </div>
               </div>
-              <div style="padding: 18px;" v-else>
-                {{getAbilityDesc(templateType)}}
+              <div style="padding: 18px" v-else>
+                {{ getAbilityDesc(templateType) }}
               </div>
             </td>
           </tr>
@@ -546,17 +612,20 @@
   </Dialog>
 </template>
 <script setup lang="ts">
-import { DICT_TYPE, getDictLabel, getDictOptions, getIntDictOptions, getStrDictOptions } from '@/utils/dict'
+import {
+  DICT_TYPE,
+  getDictLabel,
+  getDictOptions,
+  getIntDictOptions,
+  getStrDictOptions
+} from '@/utils/dict'
 import { getSyntheticAbilityInfoById } from '@/api/elderly/assess/synthetic-ability'
 import { formatDate } from '@/utils/formatTime'
 import { getEvaluationProcessConfigList } from '@/api/elderly/assess/evaluation-process'
-import {  getEvaluationTemplatesConfigList } from '@/api/elderly/assess/evaluation-process'
-import {
-  calculateGradingSystem,
-  getAbilityDesc,
-  getTemplateType
-} from "@/utils/evaluation";
-import {formatTimestampYMD} from "@/utils/dateUtil";
+import { getEvaluationTemplatesConfigList } from '@/api/elderly/assess/evaluation-process'
+import { calculateGradingSystem, getAbilityDesc, getTemplateType } from '@/utils/evaluation'
+import { formatTimestampYMD } from '@/utils/dateUtil'
+import { getNursingLevelPage } from '@/api/elderly/nursing'
 const message = useMessage() // 消息弹窗
 const { t } = useI18n() // 国际化
 const templateType = ref(0)
@@ -566,10 +635,31 @@ const loading = ref(false) // 表单的加载中
 const temArr = ref([])
 const dateList = ref([])
 const descArr = ref([
-  {label: '能力完好', desc: ['日常生活活动、精神状态,感知觉与沟通分级均为0,社会参与分级为0或1']},
-  {label: '轻度失能', desc: ['日常生活活动分级为 0,但精神状态,感知觉与沟通中至少一项为1及以上,或者社会参与的分级为 2', '日常生活活动分级为 1,精神状态,感知觉与沟通、社会参与中至少有意向的分级为0或1']},
-  {label: '能力完好', desc: ['日常生活活动分级为 1,但精神状态,感知觉与沟通、社会参与均为2,或有一项为 3', '日常生活活动分级为 2,且精神状态,感知觉与沟通、社会参与中有1~2项的分级为 1或2']},
-  {label: '能力完好', desc: ['日常生活活动的分级为 3:或日常生活活动、精神状态、感知觉与沟通、社会参与分级均为 2', '日常生活活动分级为 2,且精神状态、感知觉与沟通、社会参与中至少有一项分级为 3']},
+  {
+    label: '能力完好',
+    desc: ['日常生活活动、精神状态,感知觉与沟通分级均为0,社会参与分级为0或1']
+  },
+  {
+    label: '轻度失能',
+    desc: [
+      '日常生活活动分级为 0,但精神状态,感知觉与沟通中至少一项为1及以上,或者社会参与的分级为 2',
+      '日常生活活动分级为 1,精神状态,感知觉与沟通、社会参与中至少有意向的分级为0或1'
+    ]
+  },
+  {
+    label: '能力完好',
+    desc: [
+      '日常生活活动分级为 1,但精神状态,感知觉与沟通、社会参与均为2,或有一项为 3',
+      '日常生活活动分级为 2,且精神状态,感知觉与沟通、社会参与中有1~2项的分级为 1或2'
+    ]
+  },
+  {
+    label: '能力完好',
+    desc: [
+      '日常生活活动的分级为 3:或日常生活活动、精神状态、感知觉与沟通、社会参与分级均为 2',
+      '日常生活活动分级为 2,且精神状态、感知觉与沟通、社会参与中至少有一项分级为 3'
+    ]
+  }
 ])
 const active = ref()
 let syntheticAbilityInfoListTemp = []
@@ -624,7 +714,7 @@ const loadTemplatesConfigList = async (id) => {
   return res
 }
 
-const evaluations:any = ref([])
+const evaluations: any = ref([])
 // 大表评估
 const getEvaluationList = async (id) => {
   const res = await getEvaluationProcessConfigList({
@@ -632,7 +722,7 @@ const getEvaluationList = async (id) => {
     pageSize: 20,
     evaluationProcessId: id
   })
-  evaluations.value = [...res, {propertiesName: '未评估'}]
+  evaluations.value = [...res, { propertiesName: '未评估' }]
 }
 
 const cellNum = ref()
@@ -641,7 +731,7 @@ const jsonRes = ref([])
 /** 打开弹窗 */
 const open = async (id) => {
   dialogVisible.value = true
-  templateType.value=0
+  templateType.value = 0
   try {
     loading.value = true
     const res = await getSyntheticAbilityInfoById(id)
@@ -650,7 +740,7 @@ const open = async (id) => {
       elderSex: res.elder.elderSex,
       papersType: res.elder.papersType,
       idCard: res.elder.idCard,
-      birthday:res.elder.birthday,
+      birthday: res.elder.birthday,
       elderAge: res.elder.elderAge,
       nationId: res.elder.nationId,
       elderHeight: res.elder.elderHeight,
@@ -661,7 +751,7 @@ const open = async (id) => {
       liveSituation: res.elder.liveSituation,
       economySource: res.elder.economySource,
       medicalInsurance: res.elder.medicalInsurance,
-      elderName: res.elder.elderName,
+      elderName: res.elder.elderName
     }
     syntheticAbilityInfoListTemp = res.syntheticAbilityInfoList
     // 打印的标题
@@ -670,15 +760,16 @@ const open = async (id) => {
     if (res.evaluationAgency == 1) {
       await getEvaluationList(res.questionnaireId)
       templateType.value = getTemplateType(res.processSequenceList)
-      console.log("模板A:",templateType.value)
-      if(templateType.value==8){//一套表
+      console.log('模板A:', templateType.value)
+      if (templateType.value == 8) {
+        //一套表
         try {
-          jsonRes.value  = JSON.parse(res.result)
-        }catch (e) {}
+          jsonRes.value = JSON.parse(res.result)
+        } catch (e) {}
       }
       try {
         dateList.value = formatTimestampYMD(res.createDate).split('-')
-      }catch (e) {}
+      } catch (e) {}
       // 形成一个对象,把标题抽出来
       res.syntheticAbilityInfoList.map((item, index) => {
         // if(item.evaluationName.includes('广州')){
@@ -689,64 +780,61 @@ const open = async (id) => {
         obj.id = item.id
         obj.total = 0
         JSON.parse(item.evaluationContent).map((e) => {
-          if (e.type == 'radio' || e.type=='checkbox' || e.type=='input') {
+          if (e.type == 'radio' || e.type == 'checkbox' || e.type == 'input') {
             obj.list.push({
               value: e.value,
               title: e.title,
               options: e.options,
               info: e.info,
-              type:e.type,
+              type: e.type
             })
             obj.total += !isNaN(e.value) ? Number(e.value) : 0
           }
         })
         temArr.value.push(obj)
-        res.processSequenceList.map(async r => {
-          if(r.templateName == item.evaluationName){
+        res.processSequenceList.map(async (r) => {
+          if (r.templateName == item.evaluationName) {
             temArr.value[index].templateList = await loadTemplatesConfigList(r.templateId)
           }
         })
       })
       cellArr.value = getArr(res.syntheticAbilityInfoList)
-      if(res.syntheticAbilityInfoList.length % 2 != 0){
+      if (res.syntheticAbilityInfoList.length % 2 != 0) {
         cellArr.value[cellArr.value.length - 1].push({})
       }
 
       // 找到对应的分数段
-      evaluations.value.map((item, index)=>{
-        if(item.propertiesName == dataForm.value.result){
+      evaluations.value.map((item, index) => {
+        if (item.propertiesName == dataForm.value.result) {
           active.value = index
         }
       })
-
     } else {
-      getNurseLevelList()
     }
+    await getNurseLevelList()
   } finally {
     loading.value = false
   }
 }
 
-
 defineExpose({ open }) // 提供 open 方法,用于打开弹窗
 
 // 转化为二维数组
 const getArr = (arr) => {
-  const bigArr = [];
-  let smallArr = [];
-  arr.forEach(item => {
-
+  const bigArr = []
+  let smallArr = []
+  arr.forEach((item) => {
     // 将小数组的内容存放到大数组中,且只存放一次【判断小数组是否为空,如果为空就需要往大数组中添加,如果小数组不为空,那么就不会往大数组中添加】
     if (smallArr.length === 0) {
-      bigArr.push(smallArr);
+      bigArr.push(smallArr)
     }
 
-    smallArr.push(item);
+    smallArr.push(item)
 
     if (smallArr.length === 2) {
-      smallArr = [];
+      smallArr = []
     }
-  });
+  })
   return bigArr
 }
 
@@ -770,8 +858,20 @@ const findValueIndex = (arr, value) => {
   }
   return ''
 }
+
+const nurseLevelList = ref([])
 // 获取等级
-const getNurseLevelList = () => {}
+const getNurseLevelList = async () => {
+  try {
+    const data = await getNursingLevelPage({
+      pageNum: 1,
+      pageSize: 100
+    })
+    nurseLevelList.value = data.list
+  } finally {
+  }
+}
+
 const handleClosed = () => {
   dialogVisible.value = false
   temArr.value = []
@@ -803,7 +903,8 @@ const handleClosed = () => {
   }
   .page {
     padding: 20px;
-    table:not([cellpadding]) td, table:not([cellpadding]) th {
+    table:not([cellpadding]) td,
+    table:not([cellpadding]) th {
       padding: 0.7rem;
     }
     h4 {
@@ -838,24 +939,24 @@ const handleClosed = () => {
         border-radius: 5px;
       }
     }
-    .flex-column{
+    .flex-column {
       display: flex;
       flex-direction: column;
-      .flex{
+      .flex {
         display: flex;
         justify-content: space-between;
         padding: 5px 0;
       }
     }
-    .grid{
+    .grid {
       display: grid;
       grid-template-columns: 1fr 3fr;
       gap: 10px;
       margin-top: 10px;
     }
-    .t-flex{
+    .t-flex {
       display: flex;
-      .flex-1{
+      .flex-1 {
         flex: 1;
       }
     }

+ 301 - 280
src/views/elderly/assess/synthetic-ability/components/Result.vue

@@ -1,268 +1,296 @@
 <template>
-  <div class="result-page" v-if="props.type==0">
-      <div class="left">评估表</div>
-      <div class="right">
-        <div v-for="(item, index) in props.templates" :key="index" class="text">
-          <div class="w180">{{ item.templateName }}</div>
-          <span>{{ item.totalRecord }}分</span>
-        </div>
+  <div class="result-page" v-if="props.type == 0">
+    <div class="left">评估表</div>
+    <div class="right">
+      <div v-for="(item, index) in props.templates" :key="index" class="text">
+        <div class="w180">{{ item.templateName }}</div>
+        <span>{{ item.totalRecord }}分</span>
       </div>
-      <div class="left">初步等级</div>
-      <div class="right">
-        <div class="text">
-          <div class="w180">初步等级得分</div>
-          <span class="blue">{{ totalNum }}</span>
-        </div>
-        <div class="text">
-          <div class="w180">初步评估等级</div>
-          <span class="blue">{{ calculateGradingSystem(props.templates,templateType,totalNum) }}</span>
-        </div>
-        <div class="text-acc" v-show="templateType==0">
-          <div class="w180">能力等级变更依据</div>
-          <div class="desc">
-            <span>1.处于昏迷状态者,直接评定为能力完全丧失(完全失能)</span>
-            <span>2.确诊为痴呆(F00~F03)、精神科专科医生诊断的其他精神和行为障碍疾病(F04~F99),在原有能力级别上提高一个等级</span>
-            <span>3.近 30 天内发生过2次及以上照护风险事件(如跌倒、噎食、自杀、自伤、走失等),在原有能力级别上提高一个等级</span>
-          </div>
-        </div>
+    </div>
+    <div class="left">初步等级</div>
+    <div class="right">
+      <div class="text">
+        <div class="w180">初步等级得分</div>
+        <span class="blue">{{ totalNum }}</span>
       </div>
-      <div class="left">等级评估</div>
-      <div class="right">
-        <div class="flex text">
-          <div>最终评估等级 <span class="blue">{{calculateGradingSystem(props.templates,templateType,totalNum)}}</span></div>
-          <el-divider direction="vertical"/>
-          <el-form-item label="推荐护理等级" v-if="templateType==0||templateType==1" label-width="100px">
-            <el-select v-model="nursingLevel" class="!w-240px">
-              <el-option
-                v-for="(n, i) in nurseLevelList"
-                :key="i"
-                :label="n.nurseLevelName"
-                :value="n.id"
-              />
-            </el-select>
-          </el-form-item>
+      <div class="text">
+        <div class="w180">初步评估等级</div>
+        <span class="blue">{{
+          calculateGradingSystem(props.templates, templateType, totalNum)
+        }}</span>
+      </div>
+      <div class="text-acc" v-show="templateType == 0">
+        <div class="w180">能力等级变更依据</div>
+        <div class="desc">
+          <span>1.处于昏迷状态者,直接评定为能力完全丧失(完全失能)</span>
+          <span
+            >2.确诊为痴呆(F00~F03)、精神科专科医生诊断的其他精神和行为障碍疾病(F04~F99),在原有能力级别上提高一个等级</span
+          >
+          <span
+            >3.近 30
+            天内发生过2次及以上照护风险事件(如跌倒、噎食、自杀、自伤、走失等),在原有能力级别上提高一个等级</span
+          >
         </div>
-        <div class="text">
-          <div class="grid">
-            <span>评估等级划分</span>
-            <div v-if="templateType==0">
-              <div class="flex-column" v-for="(item, index) in syntheticAbilityRecord" :key="index">
-                <template v-if="index != 5">
-                  <div style="margin-bottom: 10px">
-                    <span>{{ item.label }} {{ item.des }}:</span>
-                    <span style="margin-left: 4px">{{ item.record }}</span>
-                  </div>
-                </template>
-              </div>
+      </div>
+    </div>
+    <div class="left">等级评估</div>
+    <div class="right">
+      <div class="flex text">
+        <div
+          >最终评估等级
+          <span class="blue">{{
+            calculateGradingSystem(props.templates, templateType, totalNum)
+          }}</span></div
+        >
+        <el-divider direction="vertical" />
+        <el-form-item label="推荐护理等级" label-width="100px">
+          <el-select v-model="nursingLevel" class="!w-240px">
+            <el-option
+              v-for="(n, i) in nurseLevelList"
+              :key="i"
+              :label="n.nurseLevelName"
+              :value="n.id"
+            />
+          </el-select>
+        </el-form-item>
+      </div>
+      <div class="text">
+        <div class="grid">
+          <span>评估等级划分</span>
+          <div v-if="templateType == 0">
+            <div class="flex-column" v-for="(item, index) in syntheticAbilityRecord" :key="index">
+              <template v-if="index != 5">
+                <div style="margin-bottom: 10px">
+                  <span>{{ item.label }} {{ item.des }}:</span>
+                  <span style="margin-left: 4px">{{ item.record }}</span>
+                </div>
+              </template>
             </div>
-            <div v-if="templateType==1">
-              <div class="elderly-level-table">
-                <!-- 一级指标等级评估表 -->
-                <table>
-                  <thead>
-                    <tr>
-                      <th>一级指标</th>
-                      <th>能力完好</th>
-                      <th>轻度受损</th>
-                      <th>中度受损</th>
-                      <th>重度受损</th>
-                    </tr>
-                  </thead>
-                  <tbody>
-                    <tr>
-                      <td>日常生活活动能力(B1)</td>
-                      <td>100分</td>
-                      <td>65-95分</td>
-                      <td>45-60分</td>
-                      <td>0-40分</td>
-                    </tr>
-                    <tr>
-                      <td>认知能力(B2)</td>
-                      <td>16分</td>
-                      <td>4-15分</td>
-                      <td>2-3分</td>
-                      <td>0-1分</td>
-                    </tr>
-                    <tr>
-                      <td>感知觉与沟通能力(B3)</td>
-                      <td>12分</td>
-                      <td>4-11分</td>
-                      <td>2-3分</td>
-                      <td>0-1分</td>
-                    </tr>
-                  </tbody>
-                </table>
-
-                <!-- 失能等级对应表 -->
-                <table style="margin-top: 20px;">
-                  <thead>
-                    <tr>
-                      <th colspan="2"></th>
-                      <th colspan="4">B2/B3 (以失能等级严重的判断)</th>
-                    </tr>
-                    <tr>
-                      <th>B1失能等级</th>
-                      <th>B2/B3失能等级</th>
-                      <th>能力完好</th>
-                      <th>轻度受损</th>
-                      <th>中度受损</th>
-                      <th>重度受损</th>
-                    </tr>
-                  </thead>
-                  <tbody>
-                    <tr>
-                      <td rowspan="4">B1失能等级</td>
-                      <td>能力完好</td>
-                      <td>0级</td>
-                      <td>0级</td>
-                      <td>1级</td>
-                      <td>1级</td>
-                    </tr>
-                    <tr>
-                      <td>轻度受损</td>
-                      <td>1级</td>
-                      <td>1级</td>
-                      <td>1级</td>
-                      <td>2级</td>
-                    </tr>
-                    <tr>
-                      <td>中度受损</td>
-                      <td>2级</td>
-                      <td>2级</td>
-                      <td>2级</td>
-                      <td>3级</td>
-                    </tr>
-                    <tr>
-                      <td>重度受损</td>
-                      <td>3级</td>
-                      <td>3级</td>
-                      <td>4级</td>
-                      <td>5级</td>
-                    </tr>
-                  </tbody>
-                </table>
-
-                <!-- 老年人能力等级对应表 -->
-                <div style="margin-top: 20px;">
-                  <h4>老年人能力等级对应</h4>
-                  <div class="level-descriptions">
-                    <div v-for="(item, index) in syntheticAbilityRecord2" :key="index">
-                      <div style="margin-bottom: 10px;">
-                        <span>{{ item.label }}: {{ item.des }}</span>
-                      </div>
+          </div>
+          <div v-if="templateType == 1">
+            <div class="elderly-level-table">
+              <!-- 一级指标等级评估表 -->
+              <table>
+                <thead>
+                  <tr>
+                    <th>一级指标</th>
+                    <th>能力完好</th>
+                    <th>轻度受损</th>
+                    <th>中度受损</th>
+                    <th>重度受损</th>
+                  </tr>
+                </thead>
+                <tbody>
+                  <tr>
+                    <td>日常生活活动能力(B1)</td>
+                    <td>100分</td>
+                    <td>65-95分</td>
+                    <td>45-60分</td>
+                    <td>0-40分</td>
+                  </tr>
+                  <tr>
+                    <td>认知能力(B2)</td>
+                    <td>16分</td>
+                    <td>4-15分</td>
+                    <td>2-3分</td>
+                    <td>0-1分</td>
+                  </tr>
+                  <tr>
+                    <td>感知觉与沟通能力(B3)</td>
+                    <td>12分</td>
+                    <td>4-11分</td>
+                    <td>2-3分</td>
+                    <td>0-1分</td>
+                  </tr>
+                </tbody>
+              </table>
+
+              <!-- 失能等级对应表 -->
+              <table style="margin-top: 20px">
+                <thead>
+                  <tr>
+                    <th colspan="2"></th>
+                    <th colspan="4">B2/B3 (以失能等级严重的判断)</th>
+                  </tr>
+                  <tr>
+                    <th>B1失能等级</th>
+                    <th>B2/B3失能等级</th>
+                    <th>能力完好</th>
+                    <th>轻度受损</th>
+                    <th>中度受损</th>
+                    <th>重度受损</th>
+                  </tr>
+                </thead>
+                <tbody>
+                  <tr>
+                    <td rowspan="4">B1失能等级</td>
+                    <td>能力完好</td>
+                    <td>0级</td>
+                    <td>0级</td>
+                    <td>1级</td>
+                    <td>1级</td>
+                  </tr>
+                  <tr>
+                    <td>轻度受损</td>
+                    <td>1级</td>
+                    <td>1级</td>
+                    <td>1级</td>
+                    <td>2级</td>
+                  </tr>
+                  <tr>
+                    <td>中度受损</td>
+                    <td>2级</td>
+                    <td>2级</td>
+                    <td>2级</td>
+                    <td>3级</td>
+                  </tr>
+                  <tr>
+                    <td>重度受损</td>
+                    <td>3级</td>
+                    <td>3级</td>
+                    <td>4级</td>
+                    <td>5级</td>
+                  </tr>
+                </tbody>
+              </table>
+
+              <!-- 老年人能力等级对应表 -->
+              <div style="margin-top: 20px">
+                <h4>老年人能力等级对应</h4>
+                <div class="level-descriptions">
+                  <div v-for="(item, index) in syntheticAbilityRecord2" :key="index">
+                    <div style="margin-bottom: 10px">
+                      <span>{{ item.label }}: {{ item.des }}</span>
                     </div>
                   </div>
                 </div>
               </div>
             </div>
-            <div v-if="templateType!=1&&templateType!=0">
-              <div>
-                {{getAbilityDesc(templateType)}}
-              </div>
-
+          </div>
+          <div v-if="templateType != 1 && templateType != 0">
+            <div>
+              {{ getAbilityDesc(templateType) }}
             </div>
-
-
           </div>
         </div>
       </div>
-<!--      <div class="left">评估人员签名</div>-->
-<!--      <div class="right">-->
-<!--        <div class="qr" v-loading="loading">-->
-<!--          <div class="direction">-->
-<!--            <Qrcode :text="qrUrl" :width="200" v-show="!base64Str" />-->
-<!--            <div class="square" v-show="!base64Str">-->
-<!--              <span>打开手机端颐年康养首页</span>-->
-<!--              <span>点击右上角扫一扫按钮</span>-->
-<!--            </div>-->
-<!--          </div>-->
-<!--          <img :src="base64Str" alt="家属签名" v-show="base64Str" class="image" />-->
-<!--        </div>-->
-<!--        <div class="btns">-->
-<!--          <template v-if="!base64Str">-->
-<!--            <el-button type="primary" @click="getSign">延用签名</el-button>-->
-<!--            <el-button type="primary" @click="getSign">获取签名</el-button>-->
-<!--          </template>-->
-<!--          <template v-else>-->
-<!--            <el-button type="primary" @click="generateQRCode">重新签</el-button>-->
-<!--          </template>-->
-<!--        </div>-->
-<!--      </div>-->
     </div>
-    <div v-if="props.type==1" class="result-page">
-      <div class="left">
-        能力评估
-        <br/>
-        最终等级
-      </div>
-      <div class="right" style="align-items: center;justify-content: start;display: flex">
-        {{props.templates[0].totalRecordList[0].value}}-{{props.templates[0].totalRecordList[0].dsc}}
-      </div>
-
-      <div class="left">
-        照护评估
-        <br/>
-        最终等级
-      </div>
-      <div class="right" style="align-items: center;justify-content: start;display: flex">
-        {{props.templates[0].totalRecordList[9].value}}
-      </div>
-      <div class="left">
-        护理
-        <br/>
-        等级
-      </div>
-      <div class="right" style="align-items: center;justify-content: start;display: flex">
-        {{props.nurseLevelName}}
-      </div>
-
-      <div class="left">
-        日常生活
-        <br/>
-        评估等级
-      </div>
-      <div class="right" style="align-items: center;justify-content: start;display: flex">
-        {{props.templates[0].totalRecordList[1].dsc}}({{props.templates[0].totalRecordList[1].value}}分)
-      </div>
+    <!--      <div class="left">评估人员签名</div>-->
+    <!--      <div class="right">-->
+    <!--        <div class="qr" v-loading="loading">-->
+    <!--          <div class="direction">-->
+    <!--            <Qrcode :text="qrUrl" :width="200" v-show="!base64Str" />-->
+    <!--            <div class="square" v-show="!base64Str">-->
+    <!--              <span>打开手机端颐年康养首页</span>-->
+    <!--              <span>点击右上角扫一扫按钮</span>-->
+    <!--            </div>-->
+    <!--          </div>-->
+    <!--          <img :src="base64Str" alt="家属签名" v-show="base64Str" class="image" />-->
+    <!--        </div>-->
+    <!--        <div class="btns">-->
+    <!--          <template v-if="!base64Str">-->
+    <!--            <el-button type="primary" @click="getSign">延用签名</el-button>-->
+    <!--            <el-button type="primary" @click="getSign">获取签名</el-button>-->
+    <!--          </template>-->
+    <!--          <template v-else>-->
+    <!--            <el-button type="primary" @click="generateQRCode">重新签</el-button>-->
+    <!--          </template>-->
+    <!--        </div>-->
+    <!--      </div>-->
+  </div>
+  <div v-if="props.type == 1" class="result-page">
+    <div class="left">
+      能力评估
+      <br />
+      最终等级
+    </div>
+    <div class="right" style="align-items: center; justify-content: start; display: flex">
+      {{ props.templates[0].totalRecordList[0].value }}-{{
+        props.templates[0].totalRecordList[0].dsc
+      }}
+    </div>
 
-      <div class="left">
-        认知能力
-        <br/>
-        评估等级
-      </div>
-      <div class="right" style="align-items: center;justify-content: start;display: flex">
-        {{props.templates[0].totalRecordList[2].dsc}}({{props.templates[0].totalRecordList[2].value}}分)
-      </div>
+    <div class="left">
+      照护评估
+      <br />
+      最终等级
+    </div>
+    <div class="right" style="align-items: center; justify-content: start; display: flex">
+      {{ props.templates[0].totalRecordList[9].value }}
+    </div>
+    <div class="left">
+      护理
+      <br />
+      等级
+    </div>
+    <div class="right" style="align-items: center; justify-content: start; display: flex">
+      <el-form-item label="推荐护理等级" label-width="100px">
+        <el-select v-model="nursingLevel" class="!w-240px">
+          <el-option
+            v-for="(n, i) in nurseLevelList"
+            :key="i"
+            :label="n.nurseLevelName"
+            :value="n.id"
+          />
+        </el-select>
+      </el-form-item>
+    </div>
 
-      <div class="left">
-        感知与沟通
-        <br/>
-        评估等级
-      </div>
-      <div class="right" style="align-items: center;justify-content: start;display: flex">
-        {{props.templates[0].totalRecordList[3].dsc}}({{props.templates[0].totalRecordList[3].value}}分)
-      </div>
+    <div class="left">
+      日常生活
+      <br />
+      评估等级
+    </div>
+    <div class="right" style="align-items: center; justify-content: start; display: flex">
+      {{ props.templates[0].totalRecordList[1].dsc }}({{
+        props.templates[0].totalRecordList[1].value
+      }}分)
+    </div>
 
-      <div class="left">
-        健康状况
-        <br/>
-        评估等级
-      </div>
-      <div class="right" style="align-items: center;justify-content: start;display: flex">
-        {{props.templates[0].totalRecordList[4].dsc}}({{props.templates[0].totalRecordList[4].value}}分)
-      </div>
+    <div class="left">
+      认知能力
+      <br />
+      评估等级
+    </div>
+    <div class="right" style="align-items: center; justify-content: start; display: flex">
+      {{ props.templates[0].totalRecordList[2].dsc }}({{
+        props.templates[0].totalRecordList[2].value
+      }}分)
+    </div>
 
-      <div class="left">
-        社会支持
-        <br/>
-        评估等级
-      </div>
-      <div class="right" style="align-items: center;justify-content: start;display: flex">
-        {{props.templates[0].totalRecordList[7].dsc}}({{props.templates[0].totalRecordList[7].value}}分)
-      </div>
+    <div class="left">
+      感知与沟通
+      <br />
+      评估等级
+    </div>
+    <div class="right" style="align-items: center; justify-content: start; display: flex">
+      {{ props.templates[0].totalRecordList[3].dsc }}({{
+        props.templates[0].totalRecordList[3].value
+      }}分)
+    </div>
 
+    <div class="left">
+      健康状况
+      <br />
+      评估等级
+    </div>
+    <div class="right" style="align-items: center; justify-content: start; display: flex">
+      {{ props.templates[0].totalRecordList[4].dsc }}({{
+        props.templates[0].totalRecordList[4].value
+      }}分)
+    </div>
 
+    <div class="left">
+      社会支持
+      <br />
+      评估等级
     </div>
+    <div class="right" style="align-items: center; justify-content: start; display: flex">
+      {{ props.templates[0].totalRecordList[7].dsc }}({{
+        props.templates[0].totalRecordList[7].value
+      }}分)
+    </div>
+  </div>
 </template>
 <script setup lang="ts">
 import { syntheticAbilityRecord } from '@/utils/constants'
@@ -279,7 +307,7 @@ import {
   getAbilityDesc,
   getTemplateType,
   syntheticAbilityRecord2
-} from "@/utils/evaluation";
+} from '@/utils/evaluation'
 const message = useMessage()
 const props = defineProps({
   templates: {
@@ -290,7 +318,8 @@ const props = defineProps({
     type: Array,
     default: () => []
   },
-  syntheticAbilityId: { // 评估表id
+  syntheticAbilityId: {
+    // 评估表id
     type: String,
     default: ''
   },
@@ -312,10 +341,10 @@ const nursingLevel = ref('')
 
 const totalNum = computed(() => {
   let num = 0
-  props.templates.map(item=>{
+  props.templates.map((item) => {
     num += Number(item.totalRecord)
   })
-  return num;
+  return num
 })
 
 const base64Str = ref('') // 二维码地址
@@ -348,26 +377,21 @@ const generateQRCode = async () => {
 const getSign = async () => {
   try {
     loading.value = true
-
   } finally {
     loading.value = false
   }
 }
 
-const savaSign = async () => {
-
-}
+const savaSign = async () => {}
 
 const templateType = ref(0)
 
-
-
-onMounted(()=>{
-  if(props.syntheticAbilityId){
+onMounted(() => {
+  if (props.syntheticAbilityId) {
     generateQRCode()
   }
 
-  nextTick(()=>{
+  nextTick(() => {
     templateType.value = getTemplateType(props.templates)
     // for (const argumentsKey of props.templates) {
     //   if(argumentsKey.templateName.includes('广州')){
@@ -375,20 +399,18 @@ onMounted(()=>{
     //     break
     //   }
     // }
-
   })
-
 })
 
 defineExpose({ nursingLevel, savaSign, base64Str, generateQRCode })
 </script>
 <style lang="scss" scoped>
-.result-page{
+.result-page {
   display: grid;
   grid-template-columns: 1fr 3fr;
   grid-gap: 10px;
 
-  .left{
+  .left {
     display: flex;
     justify-content: center;
     align-items: center;
@@ -397,57 +419,57 @@ defineExpose({ nursingLevel, savaSign, base64Str, generateQRCode })
     padding: 10%;
     border-radius: 8px;
   }
-  .right{
+  .right {
     background-color: #f7fafe;
     border-radius: 8px;
     padding: 15px;
-    .text{
+    .text {
       padding: 10px;
       border-bottom: 1px solid #ddd;
-      &:last-child{
+      &:last-child {
         border-bottom: none;
       }
-      .w180{
+      .w180 {
         display: inline-block;
         width: 180px;
       }
-      .blue{
+      .blue {
         color: var(--el-color-primary);
         font-weight: bold;
       }
     }
-    .text-acc{
+    .text-acc {
       display: flex;
-      .w180{
+      .w180 {
         display: inline-block;
         width: 180px;
         flex-shrink: 0;
         padding: 10px;
       }
-      .desc{
+      .desc {
         display: flex;
         flex-direction: column;
         padding: 10px;
       }
     }
 
-    .flex{
+    .flex {
       align-items: baseline;
       justify-content: space-between;
     }
-    .btns{
+    .btns {
       display: flex;
       flex-direction: column;
-      .el-button{
+      .el-button {
         width: 200px;
         margin-left: 0;
         margin-top: 10px;
       }
     }
-    .qr{
-      .direction{
+    .qr {
+      .direction {
         display: flex;
-        .square{
+        .square {
           display: flex;
           justify-content: center;
           align-items: center;
@@ -456,30 +478,29 @@ defineExpose({ nursingLevel, savaSign, base64Str, generateQRCode })
           flex-direction: column;
           background-color: #f2f2f2;
           margin-left: 20px;
-          span{
+          span {
             padding: 10px 0;
           }
         }
       }
-      .image{
+      .image {
         height: 200px;
       }
     }
   }
 
-  .grid{
+  .grid {
     display: grid;
     grid-template-columns: 1fr 3fr;
     grid-gap: 10px;
-    .flex-column{
+    .flex-column {
       display: flex;
       flex-direction: column;
-      span{
+      span {
         margin-bottom: 8px;
       }
     }
   }
-
 }
 
 .elderly-level-table table {

+ 12 - 0
src/views/elderly/contracts/risk-disclosure-statement/index.vue

@@ -61,6 +61,17 @@
           }}
         </template>
       </el-table-column>
+      <el-table-column
+        label="机构名称"
+        v-if="userStore.getUser.id == 1"
+        type="index"
+        width="150"
+        align="center"
+      >
+        <template #default="{ row }">
+          {{ findLabelById(userStore.getOrgTenant.options, row.tenantId) }}
+        </template>
+      </el-table-column>
 
       <el-table-column
         prop="elderName"
@@ -131,6 +142,7 @@ import {
 } from '@/api/social-work'
 import { getRiskLevelInfo } from '@/utils/risk-assessment'
 import { riskDisclosure_findPage } from '@/api/elderly/contracts'
+import { findLabelById } from '@/utils/dict'
 const message = useMessage() // 消息弹窗
 const { t } = useI18n() // 国际化
 const userStore = useUserStore()

+ 3 - 3
src/views/elderly/elder/elder-file/Detail.vue

@@ -109,7 +109,7 @@
     :patientData="dataForm"
     @import-card="importCardFun"
     :title="'床头卡预览'"
-    :width="'1000px'"
+    :width="'1080px'"
     @close="handleDialogClose"
   />
   <!-- 分享卡弹窗组件 -->
@@ -240,8 +240,8 @@ const handleTabChange = (tab) => {
 // 床头卡弹窗控制
 const dialogVisible = ref(false)
 const dialogVisibleShare = ref(false)
-const bedCardModalRef = ref(null)
-const shareCardModalRef = ref(null)
+const bedCardModalRef = ref()
+const shareCardModalRef = ref()
 
 // 显示床头卡弹窗
 const showCardBad = () => {

+ 51 - 5
src/views/elderly/elder/health-record/Form.vue

@@ -889,14 +889,52 @@ const riskOptionsMap = ref<Record<string, any[]>>({
   entertainment: []
 })
 
-// 风险等级文本映射
+// 风险等级文本映射(下拉显示用)
 const riskLevelTextMap: Record<string, string> = {
-  none: '风险',
+  none: '风险',
   low: '低风险',
   medium: '中风险',
   high: '高风险'
 }
 
+// 九防字段列表
+const riskFields = [
+  'asphyxiationByChoking',
+  'pressureSores',
+  'fallPreventionMeasures',
+  'assessSimpleMentalState',
+  'empyrosis',
+  'fallDown',
+  'wanderAway',
+  'antiEntertainment',
+  'commitSuicide'
+]
+
+// 提交时:前端英文 -> 后端中文
+const riskLevelSubmitMap: Record<string, string> = {
+  none: '无',
+  low: '低',
+  medium: '中',
+  high: '高'
+}
+
+// 回显时:后端中文 -> 前端英文
+const riskLevelReverseMap: Record<string, string> = {
+  '无': 'none',
+  '低': 'low',
+  '中': 'medium',
+  '高': 'high'
+}
+
+// 按映射转换目标对象的九防字段值
+const convertRiskFields = (target: any, map: Record<string, string>) => {
+  riskFields.forEach((field) => {
+    if (target[field] && map[target[field]]) {
+      target[field] = map[target[field]]
+    }
+  })
+}
+
 // 获取风险选项(从接口数据)
 const getRiskOptions = (key: string) => {
   return riskOptionsMap.value[key] || []
@@ -926,7 +964,7 @@ const loadElderRiskData = async (elderId: string) => {
           if (res && res.list && res.list.length > 0) {
             const levelSet = new Set<string>()
             res.list.forEach((record: any) => {
-              let riskLevel = record.riskLevel || 'low'
+              let riskLevel = record.riskLevel
               if (record.assessData) {
                 try {
                   const assessData = JSON.parse(record.assessData)
@@ -937,6 +975,10 @@ const loadElderRiskData = async (elderId: string) => {
                   console.error('解析 assessData 失败', e)
                 }
               }
+              // 兼容接口返回中英文风险值
+              if (riskLevel && riskLevelReverseMap[riskLevel]) {
+                riskLevel = riskLevelReverseMap[riskLevel]
+              }
               levelSet.add(riskLevel)
             })
             const options = Array.from(levelSet).map((level) => ({
@@ -986,6 +1028,8 @@ const open = async (row, elderId, detail) => {
   if (row.id) {
     try {
       const res = await getElderHealthRecordById(elderId)
+      // 回显:后端中文风险值映射为前端英文
+      convertRiskFields(res, riskLevelReverseMap)
       let tempList = str2arr(res.attachmentArray)
       tempList.map((item) => {
         item.fileUrl = item.fileUrl ? [{ fileUrl: item.fileUrl, fileName: item.fileName }] : []
@@ -996,8 +1040,8 @@ const open = async (row, elderId, detail) => {
         elderSex: res.elder.elderSex,
         bedName: res.elder.bedName,
         ...res,
-        drugAllergyHistory: str2arr(res.drugAllergyHistory, 'drugAllergyHistoryInput'),
-        historyFoodAllergies: str2arr(res.historyFoodAllergies, 'historyFoodAllergiesInput'),
+        //drugAllergyHistory: res.drugAllergyHistory,
+        //historyFoodAllergies: str2arr(res.historyFoodAllergies, 'historyFoodAllergiesInput'),
         typesToxins: str2arr(res.typesToxins, 'typesToxinsInput'),
         disabilitySituation: str2arr(res.disabilitySituation, 'disabilitySituationInput'),
         hospitalizationHistory: str2arr(res.hospitalizationHistory), // 住院记录
@@ -1062,6 +1106,8 @@ const submitForm = async () => {
       medicationHistory: dataForm.value.medicationHistory,
       dietaryGuidelines: dataForm.value.dietaryGuidelines
     }
+    // 提交:前端英文风险值映射为后端中文
+    convertRiskFields(params, riskLevelSubmitMap)
     const res = params.id
       ? await editElderlyHealthRecord(params)
       : await addElderlyHealthRecord(params)

+ 18 - 4
src/views/elderly/restaurant/satisfactionSurvey/index.vue

@@ -69,7 +69,18 @@
     </div>
 
     <el-table v-loading="loading" :data="pageList" border>
-      <!-- <el-table-column label="序号" type="index" width="60" align="center" /> -->
+      <el-table-column
+        label="机构名称"
+        v-if="userStore.getUser.id == 1"
+        type="index"
+        width="150"
+        align="center"
+      >
+        <template #default="{ row }">
+          {{ findLabelById(userStore.getOrgTenant.options, row.tenantId) }}
+        </template>
+      </el-table-column>
+
       <el-table-column label="总得分" min-width="90" align="center">
         <template #default="{ row }">
           {{ getGrandTotal(row) }}
@@ -225,6 +236,7 @@ import {
   getFoodSatisfactionSurveyPage
 } from '@/api/system/foods'
 import { getUserGroupTenant } from '@/api/system/user'
+import { findLabelById } from '@/utils/dict'
 
 defineOptions({ name: 'SatisfactionSurvey' })
 
@@ -270,6 +282,9 @@ interface QueryParams {
   recordDate: string[]
 }
 
+const getTenantList = () => {
+  return userStore.getOrgTenant.options
+}
 const roleOptions = [
   { label: '家属', value: '家属' },
   { label: '员工', value: '员工' }
@@ -328,7 +343,7 @@ const getTenantNameById = (tenantId?: number) => {
 }
 
 const getTenantUserText = (record: SurveyRecord) =>
-  `${(record.tenantName?record.tenantName+'/':undefined) || getTenantNameById(record.tenantId)}${record.submitter || ''}`
+  `${(record.tenantName ? record.tenantName + '/' : undefined) || getTenantNameById(record.tenantId)}${record.submitter || ''}`
 
 const normalizeRecord = (raw: any): SurveyRecord => {
   const qualityItems = qualityItemTemplates.map((item) => ({
@@ -441,8 +456,7 @@ const handleDelete = async (id: number) => {
   } catch {}
 }
 
-
-onMounted( () => {
+onMounted(() => {
   getList()
 })
 </script>