瀏覽代碼

社工模块增加楼层过滤

chenjun 1 月之前
父節點
當前提交
c0ede22e69

+ 7 - 0
src/api/social-work/index.ts

@@ -264,6 +264,12 @@ export const attackRiskPage = async (params: any) => {
   return await request.get({ url: '/elderly-assess-attack-risk-factors/page', params })
 }
 
+
+// 获得床位对调记录分页
+export const bedSwapRecordPage = async (params: any) => {
+  return await request.get({ url: '/elderly/bedSwapRecord/page', params })
+}
+
 // 删除攻击风险因素评估记录
 export const attackRiskDelete = async (id: number) => {
   return await request.delete({ url: `/elderly-assess-attack-risk-factors/delete?id=${id}` })
@@ -275,6 +281,7 @@ export const riskDisclosure_attackRiskDelete = async (id: number) => {
 }
 
 
+
 ///
 
 // 抑郁自评量表(SDS)数据接口

+ 45 - 3
src/views/elderly/apply/nine-precautions/MMSE/index.vue

@@ -18,6 +18,32 @@
         />
       </el-form-item>
 
+      <el-form-item label="楼栋">
+        <el-select
+          v-model="queryParams.buildId"
+          placeholder="选择楼栋"
+          style="width: 180px"
+          @change="handleBuildChange"
+        >
+          <el-option
+            v-for="(item, index) in buildList"
+            :key="index"
+            :label="item.buildName"
+            :value="item.id"
+          />
+        </el-select>
+      </el-form-item>
+      <el-form-item label="楼层">
+        <el-select v-model="queryParams.floorId" placeholder="选择楼层" style="width: 180px">
+          <el-option
+            v-for="(item, index) in floorList"
+            :key="index"
+            :label="item.floorName"
+            :value="item.id"
+          />
+        </el-select>
+      </el-form-item>
+
       <el-form-item label="评估人">
         <el-input
           v-model="queryParams.assessor"
@@ -32,7 +58,7 @@
           size="default"
           ref="selectRef"
           class="!w-240px"
-          v-model="queryParams.assessorDate"
+          v-model="queryParams.assessDate"
           type="daterange"
           :clearable="true"
           :editable="false"
@@ -172,6 +198,8 @@ import { useUserStore } from '@/store/modules/user'
 import Import from '@/components/ImportFile/index.vue'
 import { mmseDelete, mmseGetPage } from '@/api/social-work'
 import { findLabelById } from '@/utils/dict'
+import { ref } from 'vue'
+import { getBuildList } from '@/api/system/badManage'
 const message = useMessage() // 消息弹窗
 const { t } = useI18n() // 国际化
 const userStore = useUserStore()
@@ -200,6 +228,7 @@ let queryParams = reactive({
   pageSize: 10,
   elderName: '',
   assessor: '',
+  floorId: '',
   // assessorDate: getCurrentMonthRange(),
   assessDate: [],
   tenantIds: userStore.orgTenantId
@@ -267,6 +296,7 @@ const handleQuery = async () => {
 const resetQuery = () => {
   queryParams.elderName = ''
   queryParams.assessor = ''
+  queryParams.floorId = ''
   queryParams.tenantIds = userStore.orgTenantId
   // queryParams.assessorDate= getCurrentMonthRange()
   queryParams.assessDate = []
@@ -324,13 +354,25 @@ const cancelDelete = async (id: number) => {
   } catch {}
 }
 
+const floorList = ref([])
+const buildList = ref([])
+const handleBuildChange = (buildId: any) => {
+  const selectedBuild = buildList.value.find((item: any) => item.id === buildId)
+  if (selectedBuild) {
+    floorList.value = selectedBuild.floorList || []
+  }
+}
+
 const route = useRoute()
 /** 初始化 **/
-onMounted(() => {
+onMounted(async () => {
   if (route.query && route.query.elderName) {
     queryParams.elderName = route.query.elderName as string
   }
-  getList()
+  await getList()
+  try {
+    buildList.value = await getBuildList({ tenantIds: queryParams.tenantIds[0] })
+  } catch (e) {}
 })
 
 // 表头格式

+ 47 - 2
src/views/elderly/apply/nine-precautions/anti-entertainment/index.vue

@@ -18,6 +18,32 @@
         />
       </el-form-item>
 
+      <el-form-item label="楼栋">
+        <el-select
+          v-model="queryParams.buildId"
+          placeholder="选择楼栋"
+          style="width: 180px"
+          @change="handleBuildChange"
+        >
+          <el-option
+            v-for="(item, index) in buildList"
+            :key="index"
+            :label="item.buildName"
+            :value="item.id"
+          />
+        </el-select>
+      </el-form-item>
+      <el-form-item label="楼层">
+        <el-select v-model="queryParams.floorId" placeholder="选择楼层" style="width: 180px">
+          <el-option
+            v-for="(item, index) in floorList"
+            :key="index"
+            :label="item.floorName"
+            :value="item.id"
+          />
+        </el-select>
+      </el-form-item>
+
       <el-form-item label="评估人">
         <el-input v-model="queryParams.assessor" placeholder="评估人" class="!w-240px" clearable />
       </el-form-item>
@@ -162,6 +188,8 @@ import {
   fallDownPage
 } from '@/api/social-work'
 import { findLabelById } from '@/utils/dict'
+import { getBuildList } from '@/api/system/badManage'
+import { ref } from 'vue'
 
 const message = useMessage()
 const { t } = useI18n()
@@ -189,6 +217,8 @@ let queryParams = reactive({
   pageSize: 10,
   elderName: '',
   assessor: '',
+  floorId: '',
+  buildId: '',
   // assessDate: getCurrentMonthRange(),
   assessDate: [],
   tenantIds: userStore.orgTenantId
@@ -226,6 +256,8 @@ const handleQuery = async () => {
 const resetQuery = () => {
   queryParams.elderName = ''
   queryParams.assessor = ''
+  queryParams.floorId = ''
+  queryParams.buildId = ''
   queryParams.tenantIds = userStore.orgTenantId
   // queryParams.assessDate = getCurrentMonthRange()
   queryParams.assessDate = []
@@ -275,13 +307,26 @@ const cancelDelete = async (id: number) => {
   } catch {}
 }
 
+const floorList = ref([])
+const buildList = ref([])
+const handleBuildChange = (buildId: any) => {
+  const selectedBuild = buildList.value.find((item: any) => item.id === buildId)
+  if (selectedBuild) {
+    floorList.value = selectedBuild.floorList || []
+  }
+}
+
 const route = useRoute()
 /** 初始化 **/
-onMounted(() => {
+onMounted(async () => {
   if (route.query && route.query.elderName) {
     queryParams.elderName = route.query.elderName as string
   }
-  getList()
+  await getList()
+
+  try {
+    buildList.value = await getBuildList({ tenantIds: queryParams.tenantIds[0] })
+  } catch (e) {}
 })
 
 // 表头格式

+ 47 - 2
src/views/elderly/apply/nine-precautions/attack/index.vue

@@ -18,6 +18,32 @@
         />
       </el-form-item>
 
+      <el-form-item label="楼栋">
+        <el-select
+          v-model="queryParams.buildId"
+          placeholder="选择楼栋"
+          style="width: 180px"
+          @change="handleBuildChange"
+        >
+          <el-option
+            v-for="(item, index) in buildList"
+            :key="index"
+            :label="item.buildName"
+            :value="item.id"
+          />
+        </el-select>
+      </el-form-item>
+      <el-form-item label="楼层">
+        <el-select v-model="queryParams.floorId" placeholder="选择楼层" style="width: 180px">
+          <el-option
+            v-for="(item, index) in floorList"
+            :key="index"
+            :label="item.floorName"
+            :value="item.id"
+          />
+        </el-select>
+      </el-form-item>
+
       <el-form-item label="评估人">
         <el-input
           v-model="queryParams.assessor"
@@ -192,6 +218,8 @@ import { restraintCreatePage, restraintDelete } from '@/api/elderly/nursing/keep
 import { attackRiskDelete, attackRiskPage } from '@/api/social-work'
 import { getRiskLevelInfo } from '@/utils/risk-assessment'
 import { findLabelById } from '@/utils/dict'
+import { ref } from 'vue'
+import { getBuildList } from '@/api/system/badManage'
 const message = useMessage() // 消息弹窗
 const { t } = useI18n() // 国际化
 const userStore = useUserStore()
@@ -220,6 +248,8 @@ let queryParams = reactive({
   pageSize: 10,
   elderName: '',
   assessor: '',
+  floorId: '',
+  buildId: '',
   // assessDate: getCurrentMonthRange(),
   assessDate: [],
   tenantIds: userStore.orgTenantId
@@ -284,6 +314,8 @@ const handleQuery = async () => {
 const resetQuery = () => {
   queryParams.elderName = ''
   queryParams.assessor = ''
+  queryParams.floorId = ''
+  queryParams.buildId = ''
   queryParams.tenantIds = userStore.orgTenantId
   // queryParams.assessDate= getCurrentMonthRange()
   queryParams.assessDate = []
@@ -341,13 +373,26 @@ const cancelDelete = async (id: number) => {
   } catch {}
 }
 
+const floorList = ref([])
+const buildList = ref([])
+const handleBuildChange = (buildId: any) => {
+  const selectedBuild = buildList.value.find((item: any) => item.id === buildId)
+  if (selectedBuild) {
+    floorList.value = selectedBuild.floorList || []
+  }
+}
+
 const route = useRoute()
 /** 初始化 **/
-onMounted(() => {
+onMounted(async () => {
   if (route.query && route.query.elderName) {
     queryParams.elderName = route.query.elderName as string
   }
-  getList()
+  await getList()
+
+  try {
+    buildList.value = await getBuildList({ tenantIds: queryParams.tenantIds[0] })
+  } catch (e) {}
 })
 
 // 表头格式

+ 46 - 5
src/views/elderly/apply/nine-precautions/communication/index.vue

@@ -18,6 +18,32 @@
         />
       </el-form-item>
 
+      <el-form-item label="楼栋">
+        <el-select
+          v-model="queryParams.buildId"
+          placeholder="选择楼栋"
+          style="width: 180px"
+          @change="handleBuildChange"
+        >
+          <el-option
+            v-for="(item, index) in buildList"
+            :key="index"
+            :label="item.buildName"
+            :value="item.id"
+          />
+        </el-select>
+      </el-form-item>
+      <el-form-item label="楼层">
+        <el-select v-model="queryParams.floorId" placeholder="选择楼层" style="width: 180px">
+          <el-option
+            v-for="(item, index) in floorList"
+            :key="index"
+            :label="item.floorName"
+            :value="item.id"
+          />
+        </el-select>
+      </el-form-item>
+
       <el-form-item label="评估人">
         <el-input
           v-model="queryParams.assessor"
@@ -184,14 +210,13 @@
 <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 { 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 { findLabelById } from '@/utils/dict'
+import { getBuildList } from '@/api/system/badManage'
+import { ref } from 'vue'
 const message = useMessage() // 消息弹窗
 const { t } = useI18n() // 国际化
 const userStore = useUserStore()
@@ -220,6 +245,7 @@ let queryParams = reactive({
   pageSize: 10,
   elderName: '',
   assessor: '',
+  floorId: '',
   // assessDate: getCurrentMonthRange(),
   assessDate: [],
   tenantIds: userStore.orgTenantId
@@ -287,6 +313,7 @@ const handleQuery = async () => {
 const resetQuery = () => {
   queryParams.elderName = ''
   queryParams.assessor = ''
+  queryParams.floorId = ''
   queryParams.tenantIds = userStore.orgTenantId
   // queryParams.assessDate= getCurrentMonthRange()
   queryParams.assessDate = []
@@ -344,13 +371,27 @@ const cancelDelete = async (id: number) => {
   } catch {}
 }
 
+const floorList = ref([])
+const buildList = ref([])
+const handleBuildChange = (buildId: any) => {
+  const selectedBuild = buildList.value.find((item: any) => item.id === buildId)
+  if (selectedBuild) {
+    floorList.value = selectedBuild.floorList || []
+  }
+}
+
 const route = useRoute()
+
 /** 初始化 **/
-onMounted(() => {
+onMounted(async () => {
   if (route.query && route.query.elderName) {
     queryParams.elderName = route.query.elderName as string
   }
-  getList()
+  await getList()
+
+  try {
+    buildList.value = await getBuildList({ tenantIds: queryParams.tenantIds[0] })
+  } catch (e) {}
 })
 
 // 表头格式

+ 45 - 5
src/views/elderly/apply/nine-precautions/nutritional-risk/index.vue

@@ -6,6 +6,7 @@ import AddForm from './AddForm.vue'
 import { useUserStore } from '@/store/modules/user'
 import { tableHeaderColor } from '@/utils/table'
 import { findLabelById } from '@/utils/dict'
+import { getBuildList } from '@/api/system/badManage'
 
 const userStore = useUserStore()
 const message = useMessage()
@@ -19,8 +20,9 @@ let queryParams = reactive({
   pageNo: 1,
   pageSize: 10,
   elderName: '',
+  buildId: '',
   assessor: '',
-  // assessDate: getCurrentMonthRange(),
+  floorId: '',
   assessDate: [],
   tenantIds: userStore.orgTenantId
 })
@@ -53,7 +55,8 @@ const resetQuery = () => {
   queryFormRef.value.resetFields()
   queryParams.elderName = ''
   queryParams.assessor = ''
-  // queryParams.assessDate = getCurrentMonthRange()
+  queryParams.floorId = ''
+  queryParams.buildId = ''
   queryParams.assessDate = []
   handleQuery()
 }
@@ -103,8 +106,21 @@ const getResultLevelText = (level: string) => {
   return textMap[level] || level
 }
 
-onMounted(() => {
-  getList()
+const floorList = ref([])
+const buildList = ref([])
+const handleBuildChange = (buildId: any) => {
+  const selectedBuild = buildList.value.find((item: any) => item.id === buildId)
+  if (selectedBuild) {
+    floorList.value = selectedBuild.floorList || []
+  }
+}
+
+onMounted(async () => {
+  await getList()
+
+  try {
+    buildList.value = await getBuildList({ tenantIds: queryParams.tenantIds[0] })
+  } catch (e) {}
 })
 </script>
 
@@ -128,10 +144,34 @@ onMounted(() => {
         />
       </el-form-item>
 
+      <el-form-item label="楼栋">
+        <el-select
+          v-model="queryParams.buildId"
+          placeholder="选择楼栋"
+          style="width: 180px"
+          @change="handleBuildChange"
+        >
+          <el-option
+            v-for="(item, index) in buildList"
+            :key="index"
+            :label="item.buildName"
+            :value="item.id"
+          />
+        </el-select>
+      </el-form-item>
+      <el-form-item label="楼层">
+        <el-select v-model="queryParams.floorId" placeholder="选择楼层" style="width: 180px">
+          <el-option
+            v-for="(item, index) in floorList"
+            :key="index"
+            :label="item.floorName"
+            :value="item.id"
+          />
+        </el-select>
+      </el-form-item>
       <el-form-item label="评估人">
         <el-input v-model="queryParams.assessor" placeholder="评估人" class="!w-240px" clearable />
       </el-form-item>
-
       <el-form-item label="记录日期">
         <el-date-picker
           size="default"

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

@@ -146,7 +146,7 @@
         <p>2. 一次导不完的话,输入批次 2 再次导出,以此类推。</p>
         <p>3. 导出的卡将按照列表顺序生成PNG图片压缩包</p>
         <p>4. 建议单次导出数量不超过200张,以免影响系统性能</p>
-        <p>5. 导出需要较长时间,请耐心等待。</p>
+        <p>5. 导出需要较长时间,请耐心等待。200张大约需要20分钟!</p>
       </div>
       <div style="width: 100%;display: flex;flex-direction: row">
         <el-button  @click="dialogVisible=false" style="margin-top: 10px;margin-left: auto">关 闭</el-button>

+ 268 - 0
src/views/elderly/swap_the_beds/index.vue

@@ -0,0 +1,268 @@
+<template>
+  <ContentWrap>
+    <!-- 保护性约束观察记录表 -->
+    <el-form
+      class="-mb-15px"
+      :model="queryParams"
+      ref="queryFormRef"
+      :inline="true"
+      label-width="110px"
+    >
+      <TenantSelect v-model="queryParams.tenantIds" placeholder="请选择机构名称" prop="tenantIds" />
+      <el-form-item label="长者A">
+        <el-input
+          v-model="queryParams.elderNameA"
+          placeholder="长者姓名"
+          class="!w-240px"
+          clearable
+        />
+      </el-form-item>
+      <el-form-item label="长者B">
+        <el-input
+          v-model="queryParams.elderNameB"
+          placeholder="长者姓名"
+          class="!w-240px"
+          clearable
+        />
+      </el-form-item>
+
+      <el-form-item label="变更日期">
+        <el-date-picker
+          size="default"
+          ref="selectRef"
+          class="!w-240px"
+          v-model="queryParams.swapDate"
+          type="daterange"
+          :clearable="true"
+          :editable="false"
+          placeholder="选择变更日期"
+          value-format="YYYY-MM-DD"
+          format="YYYY-MM-DD"
+          date-format="YYYY-MM-DD"
+        />
+      </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="resetQuery"><Icon icon="ep:refresh" class="mr-5px" /> 重置</el-button>
+      </el-form-item>
+    </el-form>
+  </ContentWrap>
+
+  <!-- 列表 -->
+  <ContentWrap>
+    <el-table v-loading="loading" :data="list" :header-cell-style="tableHeaderColor">
+      <el-table-column header-align="center" align="center" label="序号" width="60">
+        <template #default="scope">
+          {{
+            scope.$index + (queryParams.pageNo * queryParams.pageSize - queryParams.pageSize) + 1
+          }}
+        </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="elderNameA"
+        header-align="center"
+        align="center"
+        label="长者A"
+        min-width="150"
+        show-overflow-tooltip
+      />
+      <el-table-column
+        prop="elderNameB"
+        header-align="center"
+        align="center"
+        label="长者B"
+        min-width="150"
+        show-overflow-tooltip
+      />
+
+      <el-table-column
+        prop="swapDate"
+        header-align="center"
+        align="center"
+        label="变更日期"
+        min-width="200"
+        show-overflow-tooltip
+      />
+
+      <el-table-column
+        prop="newBedNameA"
+        header-align="center"
+        align="center"
+        label="长者A新床位"
+        min-width="200"
+        show-overflow-tooltip
+      />
+      <el-table-column
+        prop="newBedNameB"
+        header-align="center"
+        align="center"
+        label="长者B新床位"
+        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>-->
+<!--          <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>-->
+<!--        </template>-->
+<!--      </el-table-column>-->
+    </el-table>
+    <!-- 分页 -->
+    <Pagination
+      :total="total"
+      v-model:page="queryParams.pageNo"
+      v-model:limit="queryParams.pageSize"
+      @pagination="getList"
+    />
+  </ContentWrap>
+</template>
+
+<script setup lang="ts">
+import { useUserStore } from '@/store/modules/user'
+import { attackRiskDelete, bedSwapRecordPage } from '@/api/social-work'
+import { findLabelById } from '@/utils/dict'
+const message = useMessage() // 消息弹窗
+const { t } = useI18n() // 国际化
+const userStore = useUserStore()
+const loading = ref(true) // 列表的加载中
+const detailRef = ref()
+const importRef = ref()
+const total = ref(0) // 列表的总页数
+const list = ref([]) // 列表的数据
+
+
+
+let queryParams = reactive({
+  pageNo: 1,
+  pageSize: 10,
+  elderNameA: '',
+  elderNameB: '',
+  swapDate: [],
+  tenantIds: userStore.orgTenantId
+})
+const queryFormRef = ref() // 搜索的表单
+
+/** 查询列表 */
+const getList = async () => {
+  loading.value = true
+  try {
+    const data = await bedSwapRecordPage(queryParams)
+    list.value = data.list
+    total.value = data.total
+  } finally {
+    loading.value = false
+  }
+}
+
+/** 搜索按钮操作 */
+const handleQuery = async () => {
+  if (!queryFormRef.value) return
+  const valid = await queryFormRef.value.validate()
+  if (!valid) return
+  queryParams.pageNo = 1
+  await getList()
+}
+
+/** 重置按钮操作 */
+const resetQuery = () => {
+  queryParams.elderNameA = ''
+  queryParams.elderNameB = ''
+  queryParams.tenantIds = userStore.orgTenantId
+  queryParams.swapDate = []
+  queryFormRef.value.resetFields()
+  handleQuery()
+}
+
+/** 添加/修改操作 */
+const formRef = ref()
+const openForm = (id?: number) => {
+  if (queryParams.tenantIds.length == 0 || queryParams.tenantIds.length > 1) {
+    message.error('新增只能选择一个机构')
+    return
+  }
+  formRef.value.open(queryParams.tenantIds[0], id, false)
+}
+
+const editRef = ref()
+const openFormEdit = (row: any = {}, id?: number) => {
+  formRef.value.open(row.tenantId, id, false)
+}
+
+const openFormDetail = (row: any = {}, id?: number) => {
+  formRef.value.open(row.tenantId, id, true)
+}
+
+const openClose = async (item) => {
+  try {
+    console.log('任务ID', item)
+    const res = await message.confirm('确定要删除吗?', '提示')
+    if (res == 'confirm') {
+      // 发起
+      try {
+        const res = await attackRiskDelete(item.id)
+        if (res) {
+          message.success(t('common.updateSuccess'))
+        }
+      } catch (err) {}
+    }
+    // 刷新列表
+    await getList()
+  } catch {}
+}
+
+/** 取消按钮操作 */
+const cancelDelete = async (id: number) => {
+  try {
+    // 取消的二次确认
+    await message.cancelConfirm()
+    // 发起取消
+    // await elderlyBakDel(id)
+    message.success(t('common.delSuccess'))
+    // 刷新列表
+    await getList()
+  } catch {}
+}
+
+const route = useRoute()
+/** 初始化 **/
+onMounted(() => {
+  if (route.query && route.query.elderName) {
+    queryParams.elderName = route.query.elderName as string
+  }
+  getList()
+})
+
+// 表头格式
+const tableHeaderColor = ({ rowIndex }: any) => {
+  if (rowIndex === 0) {
+    return {
+      backgroundColor: '#f8f8f9',
+      color: '#666666',
+      fontWeight: 'bold'
+    }
+  }
+}
+</script>
+
+<style scoped lang="scss"></style>

+ 105 - 63
src/views/social-worker/assessment/SAS/index.vue

@@ -26,6 +26,32 @@
         />
       </el-form-item>
 
+      <el-form-item label="楼栋">
+        <el-select
+          v-model="queryParams.buildId"
+          placeholder="选择楼栋"
+          style="width: 180px"
+          @change="handleBuildChange"
+        >
+          <el-option
+            v-for="(item, index) in buildList"
+            :key="index"
+            :label="item.buildName"
+            :value="item.id"
+          />
+        </el-select>
+      </el-form-item>
+      <el-form-item label="楼层">
+        <el-select v-model="queryParams.floorId" placeholder="选择楼层" style="width: 180px">
+          <el-option
+            v-for="(item, index) in floorList"
+            :key="index"
+            :label="item.floorName"
+            :value="item.id"
+          />
+        </el-select>
+      </el-form-item>
+
       <el-form-item label="记录日期">
         <el-date-picker
           size="default"
@@ -43,7 +69,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 +80,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,37 +93,49 @@
         </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 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="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
+        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>
@@ -130,7 +167,6 @@
     @cancel="showBatchExport = false"
   />
 
-
   <Import
     ref="importRef"
     @success="getList"
@@ -139,21 +175,20 @@
       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 {formatTimestamp, getCurrentMonthRange} from "@/utils/dateUtil";
-import Import from "@/components/ImportFile/index.vue";
-import {
-  sasDelete, sasPage
-} from "@/api/social-work";
+import { formatTimestamp, getCurrentMonthRange } from '@/utils/dateUtil'
+import Import from '@/components/ImportFile/index.vue'
+import { sasDelete, sasPage } from '@/api/social-work'
+import { ref } from 'vue'
+import { getBuildList } from '@/api/system/badManage'
 const message = useMessage() // 消息弹窗
 const { t } = useI18n() // 国际化
 const userStore = useUserStore()
@@ -181,23 +216,22 @@ let queryParams = reactive({
   pageNo: 1,
   pageSize: 10,
   elderName: '',
+  floorId: '',
   assessor: '',
-  assessDate: getCurrentMonthRange(),
+  assessDate: '',
   tenantIds: userStore.orgTenantId
 })
 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,
@@ -219,7 +253,6 @@ const handleBatchExport = async (batch: number, count: number) => {
   //   ]
   //   exportWithExpandedObjectArrays(list, headers, `医疗护理记录${formatToDateTime()}.xlsx`, '医疗护理记录')
   // } catch (_) {}
-
 }
 
 /** 查询列表 */
@@ -248,8 +281,9 @@ const handleQuery = async () => {
 const resetQuery = () => {
   queryParams.elderName = ''
   queryParams.assessor = ''
+  queryParams.floorId = ''
   queryParams.tenantIds = userStore.orgTenantId
-  queryParams.assessDate= getCurrentMonthRange()
+  queryParams.assessDate = ''
   queryFormRef.value.resetFields()
   handleQuery()
 }
@@ -257,39 +291,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 sasDelete(item.id)
-        if (res){
+        if (res) {
           message.success(t('common.updateSuccess'))
         }
-      }catch(err) {}
+      } catch (err) {}
     }
     // 刷新列表
     await getList()
@@ -309,13 +338,26 @@ const cancelDelete = async (id: number) => {
   } catch {}
 }
 
+const floorList = ref([])
+const buildList = ref([])
+const handleBuildChange = (buildId: any) => {
+  const selectedBuild = buildList.value.find((item: any) => item.id === buildId)
+  if (selectedBuild) {
+    floorList.value = selectedBuild.floorList || []
+  }
+}
+
 const route = useRoute()
 /** 初始化 **/
-onMounted(() => {
-  if(route.query && route.query.elderName){
+onMounted(async () => {
+  if (route.query && route.query.elderName) {
     queryParams.elderName = route.query.elderName as string
   }
-  getList()
+  await getList()
+
+  try {
+    buildList.value = await getBuildList({ tenantIds: queryParams.tenantIds[0] })
+  } catch (e) {}
 })
 
 // 表头格式

+ 105 - 64
src/views/social-worker/assessment/SDS/index.vue

@@ -25,7 +25,31 @@
           clearable
         />
       </el-form-item>
-
+      <el-form-item label="楼栋">
+        <el-select
+          v-model="queryParams.buildId"
+          placeholder="选择楼栋"
+          style="width: 180px"
+          @change="handleBuildChange"
+        >
+          <el-option
+            v-for="(item, index) in buildList"
+            :key="index"
+            :label="item.buildName"
+            :value="item.id"
+          />
+        </el-select>
+      </el-form-item>
+      <el-form-item label="楼层">
+        <el-select v-model="queryParams.floorId" placeholder="选择楼层" style="width: 180px">
+          <el-option
+            v-for="(item, index) in floorList"
+            :key="index"
+            :label="item.floorName"
+            :value="item.id"
+          />
+        </el-select>
+      </el-form-item>
       <el-form-item label="记录日期">
         <el-date-picker
           size="default"
@@ -43,7 +67,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 +78,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,37 +91,49 @@
         </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 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="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
+        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>
@@ -130,7 +165,6 @@
     @cancel="showBatchExport = false"
   />
 
-
   <Import
     ref="importRef"
     @success="getList"
@@ -139,21 +173,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 {formatTimestamp, getCurrentMonthRange} from "@/utils/dateUtil";
-import Import from "@/components/ImportFile/index.vue";
-import {
-  sdsDelete, sdsPage
-} from "@/api/social-work";
+import Import from '@/components/ImportFile/index.vue'
+import { sdsDelete, sdsPage } from '@/api/social-work'
+import { ref } from 'vue'
+import { getBuildList } from '@/api/system/badManage'
 const message = useMessage() // 消息弹窗
 const { t } = useI18n() // 国际化
 const userStore = useUserStore()
@@ -182,22 +214,21 @@ let queryParams = reactive({
   pageSize: 10,
   elderName: '',
   assessor: '',
-  assessDate: getCurrentMonthRange(),
+  floorId: '',
+  assessDate: '',
   tenantIds: userStore.orgTenantId
 })
 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,
@@ -219,7 +250,6 @@ const handleBatchExport = async (batch: number, count: number) => {
   //   ]
   //   exportWithExpandedObjectArrays(list, headers, `医疗护理记录${formatToDateTime()}.xlsx`, '医疗护理记录')
   // } catch (_) {}
-
 }
 
 /** 查询列表 */
@@ -248,8 +278,9 @@ const handleQuery = async () => {
 const resetQuery = () => {
   queryParams.elderName = ''
   queryParams.assessor = ''
+  queryParams.floorId = ''
   queryParams.tenantIds = userStore.orgTenantId
-  queryParams.assessDate= getCurrentMonthRange()
+  queryParams.assessDate = ''
   queryFormRef.value.resetFields()
   handleQuery()
 }
@@ -257,39 +288,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 sdsDelete(item.id)
-        if (res){
+        if (res) {
           message.success(t('common.updateSuccess'))
         }
-      }catch(err) {}
+      } catch (err) {}
     }
     // 刷新列表
     await getList()
@@ -309,13 +335,28 @@ const cancelDelete = async (id: number) => {
   } catch {}
 }
 
+const floorList = ref([])
+const buildList = ref([])
+const handleBuildChange = (buildId: any) => {
+  const selectedBuild = buildList.value.find((item: any) => item.id === buildId)
+  if (selectedBuild) {
+    floorList.value = selectedBuild.floorList || []
+  }
+}
+
 const route = useRoute()
 /** 初始化 **/
-onMounted(() => {
-  if(route.query && route.query.elderName){
+onMounted(async () => {
+  if (route.query && route.query.elderName) {
     queryParams.elderName = route.query.elderName as string
   }
-  getList()
+  await getList()
+
+  try {
+    buildList.value = await getBuildList({ tenantIds: queryParams.tenantIds[0] })
+  } catch (e) {}
+
+
 })
 
 // 表头格式

+ 104 - 69
src/views/social-worker/assessment/psychological-social-situation/index.vue

@@ -18,14 +18,33 @@
       </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="楼栋">
+        <el-select
+          v-model="queryParams.buildId"
+          placeholder="选择楼栋"
+          style="width: 180px"
+          @change="handleBuildChange"
+        >
+          <el-option
+            v-for="(item, index) in buildList"
+            :key="index"
+            :label="item.buildName"
+            :value="item.id"
+          />
+        </el-select>
+      </el-form-item>
+      <el-form-item label="楼层">
+        <el-select v-model="queryParams.floorId" placeholder="选择楼层" style="width: 180px">
+          <el-option
+            v-for="(item, index) in floorList"
+            :key="index"
+            :label="item.floorName"
+            :value="item.id"
+          />
+        </el-select>
       </el-form-item>
-
       <el-form-item label="记录日期">
         <el-date-picker
           size="default"
@@ -43,7 +62,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 +73,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,37 +86,49 @@
         </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 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="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
+        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>
@@ -130,7 +160,6 @@
     @cancel="showBatchExport = false"
   />
 
-
   <Import
     ref="importRef"
     @success="getList"
@@ -139,24 +168,23 @@
       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 { 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 { getCurrentMonthRange } from '@/utils/dateUtil'
+import Import from '@/components/ImportFile/index.vue'
 import {
   psychologicalSocialDelete,
   psychologicalSocialPage
-} from "@/api/elderly/assessment/psychological-social";
+} from '@/api/elderly/assessment/psychological-social'
+import { ref } from 'vue'
+import { getBuildList } from '@/api/system/badManage'
 const message = useMessage() // 消息弹窗
 const { t } = useI18n() // 国际化
 const userStore = useUserStore()
@@ -185,6 +213,7 @@ let queryParams = reactive({
   pageSize: 10,
   elderName: '',
   assessor: '',
+  floorId: '',
   assessorDate: getCurrentMonthRange(),
   tenantIds: userStore.orgTenantId
 })
@@ -195,14 +224,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,
@@ -224,7 +252,6 @@ const handleBatchExport = async (batch: number, count: number) => {
   //   ]
   //   exportWithExpandedObjectArrays(list, headers, `医疗护理记录${formatToDateTime()}.xlsx`, '医疗护理记录')
   // } catch (_) {}
-
 }
 
 /** 查询列表 */
@@ -253,8 +280,9 @@ const handleQuery = async () => {
 const resetQuery = () => {
   queryParams.elderName = ''
   queryParams.assessor = ''
+  queryParams.floorId = ''
   queryParams.tenantIds = userStore.orgTenantId
-  queryParams.assessorDate= getCurrentMonthRange()
+  queryParams.assessorDate = getCurrentMonthRange()
   queryFormRef.value.resetFields()
   handleQuery()
 }
@@ -262,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 psychologicalSocialDelete(item.id)
-        if (res){
+        if (res) {
           message.success(t('common.updateSuccess'))
         }
-      }catch(err) {}
+      } catch (err) {}
     }
     // 刷新列表
     await getList()
@@ -315,12 +338,24 @@ const cancelDelete = async (id: number) => {
 }
 
 const route = useRoute()
+const floorList = ref([])
+const buildList = ref([])
+const handleBuildChange = (buildId: any) => {
+  const selectedBuild = buildList.value.find((item: any) => item.id === buildId)
+  if (selectedBuild) {
+    floorList.value = selectedBuild.floorList || []
+  }
+}
+
 /** 初始化 **/
-onMounted(() => {
-  if(route.query && route.query.elderName){
+onMounted(async () => {
+  if (route.query && route.query.elderName) {
     queryParams.elderName = route.query.elderName as string
   }
-  getList()
+  await getList()
+  try {
+    buildList.value = await getBuildList({ tenantIds: queryParams.tenantIds[0] })
+  } catch (e) {}
 })
 
 // 表头格式

+ 30 - 10
src/views/system/little-tools/index.vue

@@ -56,6 +56,11 @@ const cards = ref([
   { id: 6, title: '账单缴费及时性统计', content: '查询所有院区的' }
 ])
 
+const nameList = ['逢源颐康中心', '赤岗颐康中心', '大东颐康中心', '素社颐康中心', '测试居家']
+const excludeName = (name: string) => {
+  return !nameList.includes(name)
+}
+
 const handleExportStatistics = async () => {
   const fullscreenLoading = ElLoading.service({
     lock: true,
@@ -88,16 +93,22 @@ const handleExportStatistics = async () => {
       })
 
       console.log('processedData:', processedData)
+      const pData = []
+
+      processedData.forEach((item: any) => {
+        if (excludeName(item.tenantName)) {
+          pData.push(item)
+        }
+      })
 
       const headers = [
         { key: 'tenantName', title: '机构名称', width: 45 },
         { key: 'totalCount', title: '长者总数', width: 12 },
-        { key: 'uploadedOtherFilesCount', title: '已上传档案数', width: 15 },
         { key: 'emptyOtherFilesCount', title: '未上传档案数', width: 15 },
         { key: 'emptyOtherFilesPercentage', title: '档案已完成占比', width: 15 }
       ]
-      console.log('准备导出的数据:', processedData)
-      await exportWithCustomHeaders(processedData, headers, '各院档案及数据完整率.xlsx')
+      console.log('准备导出的数据:', pData)
+      await exportWithCustomHeaders(pData, headers, '各院档案及数据完整率.xlsx')
       message.success('导出成功')
     } else {
       message.warning('没有数据可以导出')
@@ -129,9 +140,11 @@ const handleExportProcess = async () => {
     const dataList = <any>[]
     for (const tenantId of tenantIds) {
       const data = await getOverdueProcessList({ tenantId: tenantId.id, timeoutDays: 3 })
-      if (data && tenantId.name != '测试居家') {
+      if (data) {
         console.log('数据 返回:', data)
-        dataList.push({ orgName: tenantId.name, num: data.length })
+        if (excludeName(tenantId.name)) {
+          dataList.push({ orgName: tenantId.name, num: data.length })
+        }
       }
     }
     console.log('数据 返回:', dataList)
@@ -139,7 +152,7 @@ const handleExportProcess = async () => {
     if (dataList.length > 0) {
       const headers = [
         { key: 'orgName', title: '机构名称', width: 40 },
-        { key: 'num', title: '院区审批流程未及时审核,且超过3天的未审批数量(条)', width: 50 }
+        { key: 'num', title: '院区审批流程超过3天未及时审核数量(条)', width: 40 }
       ]
       console.log('准备导出的数据:', dataList)
       await exportWithCustomHeaders(dataList, headers, '各院审批数据及时性统计.xlsx')
@@ -179,9 +192,15 @@ const handleExportBill = async () => {
         tenantId: tenantId.id,
         billStartMonth: '2026-01'
       })
-      if (data && data.list && data.total && tenantId.name != '测试居家') {
+      if (data && (data.unpaidExpenseOrders || data.unsettledRefundSettlements)) {
         console.log('数据 返回:', data)
-        dataList.push({ orgName: tenantId.name, num: data.total })
+        if (excludeName(tenantId.name)) {
+          dataList.push({
+            orgName: tenantId.name,
+            num1: data.unpaidExpenseOrders.total,
+            num2: data.unsettledRefundSettlements.total
+          })
+        }
       }
     }
     console.log('数据 返回:', dataList)
@@ -189,10 +208,11 @@ const handleExportBill = async () => {
     if (dataList.length > 0) {
       const headers = [
         { key: 'orgName', title: '机构名称', width: 40 },
-        { key: 'num', title: '院区审批流程未及时审核,且超过3天的未审批数量(条)', width: 50 }
+        { key: 'num1', title: '月度账单未及时缴费(条)', width: 30 },
+        { key: 'num2', title: '退住账单未及时缴费(条)', width: 30 }
       ]
       console.log('准备导出的数据:', dataList)
-      await exportWithCustomHeaders(dataList, headers, '各院审批数据及时性统计.xlsx')
+      await exportWithCustomHeaders(dataList, headers, '账单缴费及时性统计.xlsx')
       message.success('导出成功')
     } else {
       message.warning('没有数据可以导出')