Selaa lähdekoodia

添加南沙院护理记录导出功能

陈军 4 kuukautta sitten
vanhempi
commit
79c9ac3d92

+ 38 - 1
src/views/elderly/nursing/records/family-communication-records/index.vue

@@ -45,6 +45,7 @@
   <ContentWrap>
     <div class="mb-10px">
       <ButtonAdd @click="openForm(undefined)" v-hasPermi="['records:family-communication:add']" />
+      <ButtonImport @click="outTab(undefined)" v-hasPermi="['records:family-communication:add']" />
     </div>
     <el-table v-loading="loading" :data="list" :header-cell-style="tableHeaderColor">
       <el-table-column header-align="center" align="center" label="序号" width="60">
@@ -105,9 +106,14 @@
 
 <script setup lang="ts">
 import { useUserStore } from '@/store/modules/user'
-import { familyCommunicationPage, familyCommunicationDelete } from "@/api/elderly/nursing/records/family-communication/index";
+import { familyCommunicationPage, familyCommunicationDelete } from "@/api/elderly/nursing/records/family-communication";
 import { getTenantId } from '@/utils/auth'
 import { dateFormatter } from '@/utils/formatTime'
+import {
+  rehabilitationAssessmentPage
+} from "@/api/elderly/nursing/records/rehabilitation-assessment";
+import {exportWithExpandedObjectArrays} from "@/utils/excel-export";
+import {formatTimestampYMD, formatToDateTime} from "@/utils/dateUtil";
 
 const AddForm = defineAsyncComponent(() => import('./AddForm.vue'))
 const EditForm = defineAsyncComponent(() => import('./EditForm.vue'))
@@ -158,6 +164,37 @@ const resetQuery = () => {
   handleQuery()
 }
 
+const outTab = async () => {
+  loading.value = true
+  try {
+    const list = await familyCommunicationPage(queryParams)
+    if (list.list.length <= 0) {
+      message.error('暂无数据可以导出!')
+      return
+    }
+    const headers = [
+      { key: 'communicationTime', title: '沟通时间' },
+      { key: 'contractNumber', title: '合同号' },
+      { key: 'elderName', title: '长者姓名' },
+      { key: 'bedInfo', title: '床位号' },
+      { key: 'communicationMethod', title: '沟通方式' },
+      { key: 'servicePerson', title: '服务人' },
+      { key: 'familyName', title: '家属姓名' },
+      { key: 'relationshipWithElder', title: '与长者关系' },
+      { key: 'communicationContent', title: '沟通内容' },
+      { key: 'solutionEffect', title: '解决效果' }
+    ]
+
+    for (const header of list.list) {
+      header.communicationTime = formatTimestampYMD(header.communicationTime)
+    }
+
+    exportWithExpandedObjectArrays(list.list, headers, `家属沟通记录${formatToDateTime()}.xlsx`, '家属沟通记录')
+  } catch (_) {}finally {
+    loading.value = false
+  }
+}
+
 /** 添加操作 */
 const formRef = ref()
 const openForm = (id?: number) => {

+ 24 - 16
src/views/elderly/nursing/records/medical-care-records/index.vue

@@ -138,8 +138,11 @@ import {
 } from "@/api/member/appointment";
 import download from "@/utils/download";
 import { useUserStore } from '@/store/modules/user'
-import {getCurrentMonthRange} from "@/utils/dateUtil";
+import {formatToDateTime, getCurrentMonthRange} from "@/utils/dateUtil";
 import {exportWithCustomHeaders, exportWithExpandedObjectArrays} from "@/utils/excel-export";
+import {
+  rehabilitationAssessmentPage
+} from "@/api/elderly/nursing/records/rehabilitation-assessment";
 const message = useMessage() // 消息弹窗
 const { t } = useI18n() // 国际化
 const userStore = useUserStore()
@@ -173,23 +176,28 @@ const queryFormRef = ref() // 搜索的表单
 
 
 // 打开导出弹窗
-const handleImportCard = () => {
-  exportConfig.value = {
-    title: "批量导出",
-    batchMin: 1,
-    batchMax: 999,
-    countMin: 1,
-    countMax: 500,
-    defaultBatch: 1,
-    defaultCount: 500,
-    description: [
-      '1. 请输入需要导出的数量',
-      '2. 一次导不完的话,输入批次 2 再次导出,以此类推。',
-      '3. 建议单次导出数量不超过500,以免影响系统性能',
-      '4. 导出需要较长时间,请耐心等待。'
+const handleImportCard = async () => {
+  loading.value = true
+  try {
+    let queryP = {...queryParams,discoveryTime:queryParams.discoveryTime?[queryParams.discoveryTime[0]+" 00:00:00",queryParams.discoveryTime[1]+" 23:59:59"]:null}
+    const list = await careRecordsPage(queryP)
+    if (list.list.length <= 0) {
+      message.error('暂无数据可以导出!')
+      return
+    }
+    const headers = [
+      { key: 'discoveryTime', title: '发现时间' },
+      { key: 'contractNumber', title: '合同号' },
+      { key: 'elderName', title: '长者姓名' },
+      { key: 'bedInfo', title: '床位号' },
+      { key: 'conditionDesc', title: '情况描述' },
+      { key: 'handlingNote', title: '处理说明' },
+      { key: 'discoverer', title: '发现人' }
     ]
+    exportWithExpandedObjectArrays(list.list, headers, `医疗护理记录${formatToDateTime()}.xlsx`, '医疗护理记录')
+  } catch (_) {}finally {
+    loading.value = false
   }
- // showBatchExport.value = true
 }
 
 // 处理批量导出

+ 20 - 0
src/views/elderly/nursing/records/medical-records/AddForm.vue

@@ -94,6 +94,25 @@
             </el-form-item>
           </el-col>
         </el-row>
+
+        <el-row>
+          <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
+            <el-form-item label="沟通的长者家属" prop="conditionDesc">
+              <el-input v-if="!isDetail" placeholder="输入长者或者家属"  v-model="dataForm.conditionDesc" />
+              <el-text v-else>{{dataForm.conditionDesc}}</el-text>
+            </el-form-item>
+          </el-col>
+          <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
+            <el-form-item label="沟通方式" prop="conditionDesc">
+              <el-radio-group v-if="!isDetail" v-model="contact">
+                <el-radio :value="1" size="large">面谈</el-radio>
+                <el-radio :value="2" size="large">电联<el-input :disabled="contact!=2" placeholder="输入电话号码"  v-model="dataForm.conditionDesc" /></el-radio>
+                <el-radio :value="3" size="large">微信或短信</el-radio>
+              </el-radio-group>
+              <el-text v-else>{{dataForm.conditionDesc}}</el-text>
+            </el-form-item>
+          </el-col>
+        </el-row>
       </div>
       <el-row>
         <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
@@ -141,6 +160,7 @@ const selectBedRef = ref()
 const title = ref('')
 const dialogVisible = ref(false) // 弹窗
 const loading = ref(false) // 弹窗
+const contact = ref(false) // 弹窗
 const formRef = ref() // 表单 Ref
 const selectElderRef = ref() // 表单 Ref
 const isDetail = ref(false) // 是否详情打开

+ 27 - 14
src/views/elderly/nursing/records/medical-records/index.vue

@@ -121,7 +121,9 @@ import {
   recordsDelete, recordsPage
 } from "@/api/member/appointment";
 import { useUserStore } from '@/store/modules/user'
-import {getCurrentMonthRange} from "@/utils/dateUtil";
+import {formatToDateTime, getCurrentMonthRange} from "@/utils/dateUtil";
+import {trainingPage} from "@/api/elderly/nursing/records/rehabilitation-training";
+import {exportWithExpandedObjectArrays} from "@/utils/excel-export";
 const message = useMessage() // 消息弹窗
 const { t } = useI18n() // 国际化
 const userStore = useUserStore()
@@ -185,6 +187,30 @@ const openFormEdit = (row: any = {}, id?: number) => {
 }
 
 
+const handleExport = async () => {
+// 处理批量导出
+  loading.value = true
+  try {
+    let queryP = {...queryParams,discoveryTime:queryParams.discoveryTime?[queryParams.discoveryTime[0]+" 00:00:00",queryParams.discoveryTime[1]+" 23:59:59"]:null}
+    const list = await recordsPage(queryP)
+    if (list.list.length <= 0) {
+      message.error('暂无数据可以导出!')
+      return
+    }
+    const headers = [
+      { key: 'discoveryTime', title: '发现时间' },
+      { key: 'contractNumber', title: '合同号' },
+      { key: 'elderName', title: '长者姓名' },
+      { key: 'bedInfo', title: '床位号' },
+      { key: 'conditionDesc', title: '情况描述' },
+      { key: 'handlingNote', title: '处理说明' },
+      { key: 'discoverer', title: '发现人' }
+    ]
+    exportWithExpandedObjectArrays(list.list, headers, `医疗记录${formatToDateTime()}.xlsx`, '医疗记录')
+  } catch (_) {}finally {
+    loading.value = false
+  }
+}
 
 const openFormDetail = (id?: number) => {
   formRef.value.open(undefined,id,true)
@@ -192,19 +218,6 @@ const openFormDetail = (id?: number) => {
 
 
 
-const handleExport = async () => {
-  // try {
-  //   // 导出的二次确认
-  //   await message.exportConfirm()
-  //   // 发起导出
-  //   loading.value = true
-  //   const data = await exportAppointmentExcel(queryParams)
-  //   download.excel(data, '来访预约数据.xls')
-  // } catch {
-  // } finally {
-  //   loading.value = false
-  // }
-}
 
 const openClose = async (item) => {
   try {

+ 24 - 13
src/views/elderly/nursing/records/nutrition-record/index.vue

@@ -117,10 +117,11 @@ import ButtonAdd from "@/components/ButtonAdd/src/ButtonAdd.vue";
 import ButtonImport from "@/components/ButtonImport/src/ButtonImport.vue";
 import DetailForm from "@/views/preSalesManage/Appointment/DetailForm.vue";
 import {
-  nutritionPage, nutritionRecordDelete,
+  nutritionPage, nutritionRecordDelete, recordsPage,
 } from "@/api/member/appointment";
 import { useUserStore } from '@/store/modules/user'
-import {getCurrentMonthRange} from "@/utils/dateUtil";
+import {formatToDateTime, getCurrentMonthRange} from "@/utils/dateUtil";
+import {exportWithExpandedObjectArrays} from "@/utils/excel-export";
 const message = useMessage() // 消息弹窗
 const { t } = useI18n() // 国际化
 const userStore = useUserStore()
@@ -192,17 +193,27 @@ const openFormDetail = (id?: number) => {
 
 
 const handleExport = async () => {
-  // try {
-  //   // 导出的二次确认
-  //   await message.exportConfirm()
-  //   // 发起导出
-  //   loading.value = true
-  //   const data = await exportAppointmentExcel(queryParams)
-  //   download.excel(data, '来访预约数据.xls')
-  // } catch {
-  // } finally {
-  //   loading.value = false
-  // }
+  loading.value = true
+  try {
+    let queryP = {...queryParams,recordTime:queryParams.recordTime?[queryParams.recordTime[0]+" 00:00:00",queryParams.recordTime[1]+" 23:59:59"]:null}
+    const list = await nutritionPage(queryP)
+    if (list.list.length <= 0) {
+      message.error('暂无数据可以导出!')
+      return
+    }
+    const headers = [
+      { key: 'recordTime', title: '记录时间' },
+      { key: 'contractNumber', title: '合同号' },
+      { key: 'elderName', title: '长者姓名' },
+      { key: 'bedInfo', title: '床位号' },
+      { key: 'recordContent', title: '营养情况描述' },
+      { key: 'dietitian', title: '营养师' }
+
+    ]
+    exportWithExpandedObjectArrays(list.list, headers, `营养记录${formatToDateTime()}.xlsx`, '营养记录')
+  } catch (_) {}finally {
+    loading.value = false
+  }
 }
 
 const openClose = async (item) => {

+ 30 - 0
src/views/elderly/nursing/records/rehabilitation-assessment/index.vue

@@ -45,6 +45,7 @@
   <ContentWrap>
     <div class="mb-10px">
       <ButtonAdd @click="openForm(undefined)" v-hasPermi="['records:rehabilitation-assessment:add']" />
+      <ButtonImport @click="outTab(undefined)" v-hasPermi="['records:rehabilitation-assessment:add']" />
     </div>
     <el-table v-loading="loading" :data="list" :header-cell-style="tableHeaderColor">
       <el-table-column header-align="center" align="center" label="序号" width="60">
@@ -106,6 +107,9 @@
 import { rehabilitationAssessmentPage,rehabilitationAssessmentDelete } from "@/api/elderly/nursing/records/rehabilitation-assessment/index";
 import { getTenantId } from '@/utils/auth'
 import { dateFormatter } from '@/utils/formatTime'
+import {trainingPage} from "@/api/elderly/nursing/records/rehabilitation-training";
+import {exportWithExpandedObjectArrays} from "@/utils/excel-export";
+import {formatToDateTime} from "@/utils/dateUtil";
 
 const AddForm = defineAsyncComponent(() => import('./AddForm.vue'))
 const EditForm = defineAsyncComponent(() => import('./EditForm.vue'))
@@ -156,6 +160,32 @@ const resetQuery = () => {
   handleQuery()
 }
 
+const outTab = async () => {
+  loading.value = true
+  try {
+    const list = await rehabilitationAssessmentPage(queryParams)
+    if (list.list.length <= 0) {
+      message.error('暂无数据可以导出!')
+      return
+    }
+    const headers = [
+      { key: 'assessmentTime', title: '评估时间' },
+      { key: 'contractNumber', title: '合同号' },
+      { key: 'elderName', title: '长者姓名' },
+      { key: 'bedInfo', title: '床位号' },
+      { key: 'admissionCondition', title: '入住情况' },
+      { key: 'dysfunction', title: '功能障碍' },
+      { key: 'rehabilitationMethod', title: '康复方式' },
+      { key: 'rehabilitationPlan', title: '康复计划' },
+      { key: 'expectedEffect', title: '预期效果' },
+      { key: 'therapist', title: '康复师' }
+    ]
+    exportWithExpandedObjectArrays(list.list, headers, `康复评估记录${formatToDateTime()}.xlsx`, '康复评估记录')
+  } catch (_) {}finally {
+    loading.value = false
+  }
+}
+
 /** 添加操作 */
 const formRef = ref()
 const openForm = (assessmentId?: number) => {

+ 1 - 1
src/views/elderly/nursing/records/rehabilitation-training/AddForm.vue

@@ -142,7 +142,7 @@ import { computed, ref, reactive } from 'vue'
 import { FormRules } from 'element-plus'
 import { useMediaQuery } from '@vueuse/core'
 import { SelectUpload } from '@/components/UploadFile'
-import { trainingCreate } from "@/api/elderly/nursing/records/rehabilitation-training/index";
+import { trainingCreate } from "@/api/elderly/nursing/records/rehabilitation-training";
 import { DICT_TYPE, getIntDictOptions } from '@/utils/dict'
 
 const message = useMessage() // 消息弹窗

+ 29 - 1
src/views/elderly/nursing/records/rehabilitation-training/index.vue

@@ -45,6 +45,7 @@
   <ContentWrap>
     <div class="mb-10px">
       <ButtonAdd @click="openForm(undefined)" v-hasPermi="['records:rehabilitation-training:add']" />
+      <ButtonImport @click="outTab(undefined)" v-hasPermi="['records:rehabilitation-training:add']" />
     </div>
     <el-table v-loading="loading" :data="list" :header-cell-style="tableHeaderColor">
       <el-table-column header-align="center" align="center" label="序号" width="60">
@@ -104,10 +105,13 @@
 
 <script setup lang="ts">
 import { useUserStore } from '@/store/modules/user'
-import { trainingPage, trainingDelete } from "@/api/elderly/nursing/records/rehabilitation-training/index";
+import { trainingPage, trainingDelete } from "@/api/elderly/nursing/records/rehabilitation-training";
 import download from "@/utils/download";
 import { getTenantId } from '@/utils/auth'
 import { dateFormatter } from '@/utils/formatTime'
+import {formatToDateTime} from "@/utils/dateUtil";
+import {exportWithExpandedObjectArrays} from "@/utils/excel-export";
+import {careRecordsPage} from "@/api/member/appointment";
 
 const AddForm = defineAsyncComponent(() => import('./AddForm.vue'))
 const EditForm = defineAsyncComponent(() => import('./EditForm.vue'))
@@ -118,6 +122,7 @@ const message = useMessage() // 消息弹窗
 const { t } = useI18n() // 国际化
 const userStore = useUserStore()
 const loading = ref(true) // 列表的加载中
+const exportLoading = ref(true) // 列表的加载中
 const total = ref(0) // 列表的总页数
 const list = ref([]) // 列表的数据
 let queryParams = reactive({
@@ -165,6 +170,29 @@ const openForm = (recordId?: number) => {
   formRef.value.open(queryParams.tenantId, recordId, false)
 }
 
+const outTab = async () => {
+// 处理批量导出
+  loading.value = true
+    try {
+      const list = await trainingPage(queryParams)
+      if (list.list.length <= 0) {
+        message.error('暂无数据可以导出!')
+        return
+      }
+      const headers = [
+        { key: 'trainingTime', title: '训练时间' },
+        { key: 'contractNumber', title: '合同号' },
+        { key: 'elderName', title: '长者姓名' },
+        { key: 'bedInfo', title: '床位号' },
+        { key: 'recordContent', title: '记录内容' },
+        { key: 'therapist', title: '康复师' }
+      ]
+      exportWithExpandedObjectArrays(list.list, headers, `康复训练记录${formatToDateTime()}.xlsx`, '康复训练记录')
+    } catch (_) {}finally {
+      loading.value = false
+    }
+}
+
 /** 编辑操作 */
 const editRef = ref()
 const openFormEdit = (row: any = {}) => {

+ 1 - 2
src/views/social-worker/assessment/psychological-social-situation/AddForm.vue

@@ -689,8 +689,6 @@ const submitForm = async () => {
   // 提交请求
   try {
 
-
-
     const aa = serializeFormData()
     console.log("AASSS",aa)
     deserializeFormData(aa)
@@ -705,6 +703,7 @@ const submitForm = async () => {
         emit('success')
       }
     }else {
+      console.log("AAAAA",tempParams)
       const res = await restraintCreate(tempParams)
       if (res) {
         message.success(t('common.updateSuccess'))

+ 1 - 1
src/views/social-worker/floor-activity-record/index.vue

@@ -58,7 +58,7 @@
         </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="elderName" header-align="center" align="center" label="长者姓名" min-width="150" show-overflow-tooltip/>-->
       <!--      <el-table-column prop="bedInfo" header-align="center" align="center" label="床位号" min-width="200" show-overflow-tooltip/>-->
       <el-table-column prop="recordTime" header-align="center" align="center" label="记录时间" min-width="150" show-overflow-tooltip>
         <template #default="scope">