|
|
@@ -12,64 +12,92 @@
|
|
|
<div class="view-value">{{ form.elderName || '-' }}</div>
|
|
|
</el-form-item>
|
|
|
|
|
|
- <el-form-item label="身份证号" prop="idCardNo" required>
|
|
|
- <div class="view-value">{{ form.idCardNo || '-' }}</div>
|
|
|
+ <el-form-item label="身份证号" prop="idCard" required>
|
|
|
+ <div class="view-value">{{ form.idCard || '-' }}</div>
|
|
|
</el-form-item>
|
|
|
|
|
|
- <el-form-item label="院区" prop="campus" required>
|
|
|
- <div class="view-value">{{ campusLabel(form.campus) }}</div>
|
|
|
+ <el-form-item label="近期居住情况(视频)" prop="recentLivingSituation" required>
|
|
|
+ <div class="view-files">
|
|
|
+ <div v-if="!form.recentLivingSituation.length" class="empty">-</div>
|
|
|
+ <ul v-else>
|
|
|
+ <li v-for="(item, index) in form.recentLivingSituation" :key="`life-${index}`">
|
|
|
+ <a :href="item" target="_blank" rel="noopener noreferrer">{{ getFileName(item) }}</a>
|
|
|
+ </li>
|
|
|
+ </ul>
|
|
|
+ </div>
|
|
|
</el-form-item>
|
|
|
|
|
|
- <el-form-item label="近期生活状态(视频)" prop="lifeStatusVideo" required>
|
|
|
+ <el-form-item label="行走情况(视频)" prop="walkSituationVideo" required>
|
|
|
<div class="view-files">
|
|
|
- <div v-if="!form.lifeStatusVideo.length" class="empty">-</div>
|
|
|
+ <div v-if="!form.walkSituationVideo.length" class="empty">-</div>
|
|
|
<ul v-else>
|
|
|
- <li v-for="(item, index) in form.lifeStatusVideo" :key="`life-${index}`">{{ getFileName(item) }}</li>
|
|
|
+ <li v-for="(item, index) in form.walkSituationVideo" :key="`walk-${index}`">
|
|
|
+ <a :href="item" target="_blank" rel="noopener noreferrer">{{ getFileName(item) }}</a>
|
|
|
+ </li>
|
|
|
</ul>
|
|
|
</div>
|
|
|
</el-form-item>
|
|
|
|
|
|
- <el-form-item label="行走情况(视频)" prop="walkingVideo" required>
|
|
|
+ <el-form-item label="近半年内病历" prop="medicalRecordsWithinSixMonth" required>
|
|
|
<div class="view-files">
|
|
|
- <div v-if="!form.walkingVideo.length" class="empty">-</div>
|
|
|
+ <div v-if="!form.medicalRecordsWithinSixMonth.length" class="empty">-</div>
|
|
|
<ul v-else>
|
|
|
- <li v-for="(item, index) in form.walkingVideo" :key="`walk-${index}`">{{ getFileName(item) }}</li>
|
|
|
+ <li v-for="(item, index) in form.medicalRecordsWithinSixMonth" :key="`medical-${index}`">
|
|
|
+ <a :href="item" target="_blank" rel="noopener noreferrer">{{ getFileName(item) }}</a>
|
|
|
+ </li>
|
|
|
</ul>
|
|
|
</div>
|
|
|
</el-form-item>
|
|
|
|
|
|
- <el-form-item label="近半年内病历" prop="medicalRecord" required>
|
|
|
+ <el-form-item label="身份证照片" prop="idCardPhoto" required>
|
|
|
<div class="view-files">
|
|
|
- <div v-if="!form.medicalRecord.length" class="empty">-</div>
|
|
|
+ <div v-if="!form.idCardPhoto.length" class="empty">-</div>
|
|
|
<ul v-else>
|
|
|
- <li v-for="(item, index) in form.medicalRecord" :key="`medical-${index}`">{{ getFileName(item) }}</li>
|
|
|
+ <li v-for="(item, index) in form.idCardPhoto" :key="`idimg-${index}`">
|
|
|
+ <a :href="item" target="_blank" rel="noopener noreferrer">{{ getFileName(item) }}</a>
|
|
|
+ </li>
|
|
|
</ul>
|
|
|
</div>
|
|
|
</el-form-item>
|
|
|
|
|
|
- <el-form-item label="身份证正反面" prop="idCardImages" required>
|
|
|
+ <el-form-item label="近期出院小结(视频)" prop="recentDischargeSummary">
|
|
|
<div class="view-files">
|
|
|
- <div v-if="!form.idCardImages.length" class="empty">-</div>
|
|
|
+ <div v-if="!form.recentDischargeSummary.length" class="empty">-</div>
|
|
|
<ul v-else>
|
|
|
- <li v-for="(item, index) in form.idCardImages" :key="`idimg-${index}`">{{ getFileName(item) }}</li>
|
|
|
+ <li v-for="(item, index) in form.recentDischargeSummary" :key="`discharge-${index}`">
|
|
|
+ <a :href="item" target="_blank" rel="noopener noreferrer">{{ getFileName(item) }}</a>
|
|
|
+ </li>
|
|
|
</ul>
|
|
|
</div>
|
|
|
</el-form-item>
|
|
|
-
|
|
|
- <el-form-item label="近期出院小结(视频)" prop="dischargeSummaryVideo">
|
|
|
+ <el-form-item label="是否精防" prop="remark">
|
|
|
+ <div class="view-value">{{ form.isPsychosis || '-' }}</div>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="照护等级" prop="nurseLevelId">
|
|
|
+ <div class="view-value">{{ form.nurseLevelId || '-' }}</div>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="床位预排备注" prop="remark">
|
|
|
+ <div class="view-value">{{ form.remark || '-' }}</div>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="体检报告" prop="physicalExaminationReport">
|
|
|
<div class="view-files">
|
|
|
- <div v-if="!form.dischargeSummaryVideo.length" class="empty">-</div>
|
|
|
+ <div v-if="!form.physicalExaminationReport.length" class="empty">-</div>
|
|
|
<ul v-else>
|
|
|
- <li v-for="(item, index) in form.dischargeSummaryVideo" :key="`discharge-${index}`">{{ getFileName(item) }}</li>
|
|
|
+ <li v-for="(item, index) in form.physicalExaminationReport" :key="`physical-${index}`">
|
|
|
+ <a :href="item" target="_blank" rel="noopener noreferrer">{{ getFileName(item) }}</a>
|
|
|
+ </li>
|
|
|
</ul>
|
|
|
</div>
|
|
|
</el-form-item>
|
|
|
+ <el-form-item label="最终床位信息" prop="bedId">
|
|
|
+ <div class="view-value">{{ form.bedId || '-' }}</div>
|
|
|
+ </el-form-item>
|
|
|
</el-form>
|
|
|
</template>
|
|
|
|
|
|
<script setup lang="ts">
|
|
|
import { getBusinessId } from '@/api/elderly/common'
|
|
|
-import { getBedChangeRecordById, getBedChangeRecordElderlyById } from '@/api/elderly/elder/bed-change'
|
|
|
+import { getWaitElderDetail } from '@/api/bpm/processInstance'
|
|
|
|
|
|
defineOptions({ name: 'BedChangeProcessForm' })
|
|
|
|
|
|
@@ -77,63 +105,53 @@ const formRef = ref()
|
|
|
|
|
|
const form = reactive({
|
|
|
elderName: '',
|
|
|
- idCardNo: '',
|
|
|
- campus: '',
|
|
|
- lifeStatusVideo: [] as any[],
|
|
|
- walkingVideo: [] as any[],
|
|
|
- medicalRecord: [] as any[],
|
|
|
- idCardImages: [] as any[],
|
|
|
- dischargeSummaryVideo: [] as any[]
|
|
|
+ idCard: '',
|
|
|
+ recentLivingSituation: [] as any[],
|
|
|
+ walkSituationVideo: [] as any[],
|
|
|
+ medicalRecordsWithinSixMonth: [] as any[],
|
|
|
+ idCardPhoto: [] as any[],
|
|
|
+ recentDischargeSummary: [] as any[],
|
|
|
+ physicalExaminationReport: [] as any[],
|
|
|
+ remark: ''
|
|
|
})
|
|
|
|
|
|
const rules = reactive({})
|
|
|
|
|
|
-const campusOptions = ref<{ label: string; value: string }[]>([])
|
|
|
-
|
|
|
-const parseToArray = (value: any) => {
|
|
|
+const parseFileList = (value: any) => {
|
|
|
if (!value) return []
|
|
|
if (Array.isArray(value)) return value
|
|
|
if (typeof value === 'string') {
|
|
|
- try {
|
|
|
- const parsed = JSON.parse(value)
|
|
|
- return Array.isArray(parsed) ? parsed : []
|
|
|
- } catch (_e) {
|
|
|
- return []
|
|
|
- }
|
|
|
+ return value
|
|
|
+ .split(',')
|
|
|
+ .map((item) => item.trim())
|
|
|
+ .filter(Boolean)
|
|
|
}
|
|
|
return []
|
|
|
}
|
|
|
|
|
|
const mapSourceToForm = (source: Record<string, any> = {}) => {
|
|
|
- form.elderName = source.elderName || source.name || ''
|
|
|
- form.idCardNo = source.idCardNo || source.idCard || ''
|
|
|
- form.campus = source.campus || source.campusId || ''
|
|
|
- form.lifeStatusVideo = parseToArray(source.lifeStatusVideo)
|
|
|
- form.walkingVideo = parseToArray(source.walkingVideo)
|
|
|
- form.medicalRecord = parseToArray(source.medicalRecord)
|
|
|
- form.idCardImages = parseToArray(source.idCardImages)
|
|
|
- form.dischargeSummaryVideo = parseToArray(source.dischargeSummaryVideo)
|
|
|
-}
|
|
|
-
|
|
|
-const campusLabel = (value: string) => {
|
|
|
- const item = campusOptions.value.find((it) => it.value === value)
|
|
|
- return item?.label || value || '-'
|
|
|
+ form.elderName = source.elderName || ''
|
|
|
+ form.idCard = source.idCard || ''
|
|
|
+ form.recentLivingSituation = parseFileList(source.recentLivingSituation)
|
|
|
+ form.walkSituationVideo = parseFileList(source.walkSituationVideo)
|
|
|
+ form.medicalRecordsWithinSixMonth = parseFileList(source.medicalRecordsWithinSixMonth)
|
|
|
+ form.idCardPhoto = parseFileList(source.idCardPhoto)
|
|
|
+ form.recentDischargeSummary = parseFileList(source.recentDischargeSummary)
|
|
|
+ form.physicalExaminationReport = parseFileList(source.physicalExaminationReport)
|
|
|
+ form.remark = source.remark || ''
|
|
|
}
|
|
|
|
|
|
const getFileName = (file: any) => {
|
|
|
+ if (typeof file === 'string') {
|
|
|
+ return file.split('/').pop() || file
|
|
|
+ }
|
|
|
return file?.name || file?.fileName || file?.url || '-'
|
|
|
}
|
|
|
|
|
|
-const init = async (id?: string, _detail?: boolean, status?: string, elderly = undefined as any) => {
|
|
|
- if (elderly?.elderId) {
|
|
|
- const elderInfo = await getBedChangeRecordElderlyById(elderly.elderId)
|
|
|
- mapSourceToForm(elderInfo || {})
|
|
|
- }
|
|
|
-
|
|
|
- if (id) {
|
|
|
- const res = await getBedChangeRecordById(id, status, true)
|
|
|
- mapSourceToForm(res || {})
|
|
|
- }
|
|
|
+const init = async (id?: string) => {
|
|
|
+ if (!id) return
|
|
|
+ const res = await getWaitElderDetail(Number(id))
|
|
|
+ mapSourceToForm(res || {})
|
|
|
}
|
|
|
|
|
|
const submitForm = async () => {
|
|
|
@@ -145,24 +163,25 @@ const submitForm = async () => {
|
|
|
|
|
|
const resetForm = () => {
|
|
|
form.elderName = ''
|
|
|
- form.idCardNo = ''
|
|
|
- form.campus = ''
|
|
|
- form.lifeStatusVideo = []
|
|
|
- form.walkingVideo = []
|
|
|
- form.medicalRecord = []
|
|
|
- form.idCardImages = []
|
|
|
- form.dischargeSummaryVideo = []
|
|
|
+ form.idCard = ''
|
|
|
+ form.recentLivingSituation = []
|
|
|
+ form.walkSituationVideo = []
|
|
|
+ form.medicalRecordsWithinSixMonth = []
|
|
|
+ form.idCardPhoto = []
|
|
|
+ form.recentDischargeSummary = []
|
|
|
+ form.physicalExaminationReport = []
|
|
|
+ form.remark = ''
|
|
|
formRef.value?.clearValidate?.()
|
|
|
}
|
|
|
|
|
|
-const processType = ref()
|
|
|
-const getProcess = async (id, type, status) => {
|
|
|
+const processType = ref<number | string>()
|
|
|
+const getProcess = async (id: number | string, type: number | string, _status: number | string) => {
|
|
|
const res = await getBusinessId(id)
|
|
|
- await init(res.businessId, true, status)
|
|
|
+ await init(String(res.businessId))
|
|
|
processType.value = type
|
|
|
}
|
|
|
|
|
|
-const setTenantId = (_tId) => {}
|
|
|
+const setTenantId = (_tId: number | string) => {}
|
|
|
|
|
|
defineExpose({ init, submitForm, getProcess, resetForm, setTenantId })
|
|
|
</script>
|