Commit e8b450ff authored by gengchunlei's avatar gengchunlei

医生端小程序 v1.2 1、死亡记录详情

parent 41f28548
...@@ -4,3 +4,8 @@ import {fetchBase} from '@/api/doctor/doctorFetch' ...@@ -4,3 +4,8 @@ import {fetchBase} from '@/api/doctor/doctorFetch'
export function saveResidentsDeath(params) { export function saveResidentsDeath(params) {
return fetchBase({ url: `/chronic-admin/v1/chronic-residents-death/save`,body: params,loading: true}) return fetchBase({ url: `/chronic-admin/v1/chronic-residents-death/save`,body: params,loading: true})
} }
// 查询死亡记录
export function getResidentsDeath(params) {
return fetchBase({ url: `/chronic-admin/v1/chronic-residents-death/info-record`,body: params,loading: true})
}
\ No newline at end of file
<!--死亡记录详情-->
<template> <template>
<div class='flex flex-col' style='height: 100vh'>
<div class='p-3 text-black text-center shrink-0 doc-nav-bar'>
<span @click='onBack' class='text-12 back-bt'>
<doc-icon type='doc-left2' />
</span>
<span>死亡记录详情</span>
</div>
<div class='p-3 grow cont-box'>
<div class='p-3 h-full cont-inner'>
<div class='flex justify-between collapse-head mt-2'>
<span class='text-16 font-semibold'>全部内容</span>
<span @click='toggleAll'>
<span v-if='!collapseAll'>展开全部</span>
<span v-else>收起全部</span>
<span :class="['ml-2 icon-down', { 'icon-down-expanded': collapseAll }]">
<doc-icon type='doc-down' />
</span>
</span>
</div>
<van-collapse :model-value='activeCollapse' ref='collapse' class='doc-collapse'
@change='collapseChange'>
<van-collapse-item key='1' title='居民信息' name='1'>
<template #right-icon>
<doc-icon type='doc-down' />
</template>
<div class='list'>
<div v-for='item in columnsBase' :key='item.key'>
<div class='flex justify-between py-1 border-bottom item'>
<span class='shrink-0 mr-2 label'>{{ item.title }}</span>
<span v-if="item.key === 'idCard'">{{ $idCardHide(residentInfo.idCard) || '-'
}}</span>
<span class='text-end' v-else>
<span>{{ residentInfo[item.key] || '-' }}</span>
<span v-if='item.unit' class='ml-1'>{{ item.unit }}</span>
</span>
</div>
</div>
</div>
</van-collapse-item>
<van-collapse-item key='2' title='死亡信息' name='2'>
<template #right-icon>
<doc-icon type='doc-down' />
</template>
<div class='list'>
<div class='flex justify-between py-1 border-bottom item'>
<span class='shrink-0 mr-2 label'>死亡日期</span>
<span class='text-end'>
<span>{{ info.deathDate || '-' }}</span>
</span>
</div>
<div class='flex flex-col py-1 border-bottom item'>
<div class='shrink-0 mr-2 label'>死亡原因</div>
<div class='reason-bg' >
{{info.deathReasonStr}}
</div>
</div>
</div>
</van-collapse-item>
<!-- <van-collapse-item key='3' title='录入机构' name='3'>
<template #right-icon>
<doc-icon type='doc-down' />
</template>
<div class='list'>
<div v-for='item in columnsOrg' :key='item.key'>
<div class='flex justify-between py-1 border-bottom item'>
<span class='shrink-0 mr-2 label'>{{ item.title }}</span>
<span class='text-end'>
<span>{{ info[item.key] || '-' }}</span>
</span>
</div>
</div>
</div>
</van-collapse-item>-->
</van-collapse>
</div>
</div>
</div>
</template> </template>
<script> <script>
import Mp3 from '@/doctor/components/mediaPlay/Mp3.vue'
import Mp4 from '@/doctor/components/mediaPlay/Mp4.vue'
import ImagePreview from '@/residentWX/components/imagePreview/imagePreview'
import { fetchCurrencyById, messageResend } from '@/api/doctor/generalFU'
import { getTemplateDetail } from '@/api/doctor/workbench'
import { getResidentsDeath } from '@/api/doctor/death'
export default { export default {
name: 'Detail' name: 'CurrencyFUDetail.vue',
components: { },
data() {
return {
activeCollapse: [],
collapseList: [
{ title: '居民信息', name: '1' },
{ title: '死亡信息', name: '2' },
// { title: '录入机构', name: '3' },
],
// 全部展开、收起
collapseAll: false,
info: {},
columnsBase: [
{ title: '姓名', key: 'residentName' },
{ title: '证件号码', key: 'idCard' },
{ title: '性别', key: 'genderName' },
{ title: '出生日期', key: 'dataBirth' },
{ title: '年龄', key: 'currentAge' },
{ title: '民族', key: 'nationalName' },
{ title: '本人电话', key: 'telephone' },
{ title: '现住址', key: 'presentCodeName' },
{ title: '详细地址', key: 'nowAddress' },
{ title: '户籍地址', key: 'registeredCodeName' },
{ title: '详细地址', key: 'permanentAddress' }
],
columnsOrg: [
{ title: '录入单位', key: 'createUnitName' },
{ title: '录入科室', key: 'createOfficeName' },
{ title: '录入医生', key: 'createDoctorName' }
],
}
},
computed: {
routerDetail() {
return this.$route.query
},
residentInfo() {
return this.info.residentsRecord || {}
},
},
created() {
document.title = '死亡记录详情'
this.load()
},
methods: {
async load() {
if (!this.routerDetail.residentInfoId) {
this.$message.info('未获取到信息')
return
}
let par = {
residentInfoId: this.routerDetail.residentInfoId
}
getResidentsDeath(par).then(res => {
let result = res.data || {}
this.info = result
}).finally(() => {
})
},
// 折叠面板切换
collapseChange(val) {
if (val && val.length <= 2) {
this.activeCollapse = val.slice(val.length - 1)
} else {
if (this.activeCollapse.length > val.length) {
this.activeCollapse = val
}
if (this.activeCollapse.length < val.length) {
this.activeCollapse = val.slice(val.length - 1)
}
}
if (val && val.length === this.collapseList.length) {
this.collapseAll = true
} else {
this.collapseAll = false
}
},
// 全部展开、收起
toggleAll() {
if (this.collapseAll) {
this.activeCollapse = []
} else {
this.activeCollapse = this.collapseList.map(e => e.name)
}
this.collapseAll = !this.collapseAll
},
onBack() {
this.$router.back()
}
}
} }
</script> </script>
<style scoped> <style lang='less' scoped>
@import url('../../utils/common.less');
.base-info {
background: linear-gradient(to bottom, #F0F6FF, #fff 50%);
color: #8c8c8c;
.name {
font-weight: 600;
color: #000;
font-size: 18px;
}
.top-label {
font-size: 13px;
line-height: 22px;
}
.color-b {
color: #262626;
}
}
.cont-box {
background-color: #f9f9f9;
.cont-inner {
background: linear-gradient(to bottom, #F0F6FF, #fff .6rem);
border-top-left-radius: .08rem;
border-top-right-radius: .08rem;
}
}
.collapse-head {
.icon-down {
vertical-align: middle;
font-size: .12rem;
.svg-icon {
transition: all .2s;
}
}
.icon-down-expanded {
.svg-icon {
transform: rotate(-180deg);
}
}
}
table {
text-align: left;
border-bottom: 1px solid var(--van-cell-border-color);
> tr {
> td {
padding-left: 14px;
padding-bottom: 12px;
&:first-child {
text-align: right;
padding-left: 0;
}
}
}
}
.list {
.label {
min-width: 5em;
}
}
.card {
background-color: #F8FAFC;
padding: 4px 10px;
border-radius: 4px;
color: #4D5665;
}
.reason-bg {
background: #F8FAFC;
border-radius: 4px;
padding: 4px 8px;
color: #4D5665;
line-height: 24px;
}
</style> </style>
...@@ -130,7 +130,7 @@ export default { ...@@ -130,7 +130,7 @@ export default {
this.deathDateRange.max = new Date(date.year(), date.month(), date.date()) this.deathDateRange.max = new Date(date.year(), date.month(), date.date())
// this.deathDateRange.min = new Date(date.year() - 10) // this.deathDateRange.min = new Date(date.year() - 10)
this.form._deathDate = [date.year(), date.month(), date.date()] this.form._deathDate = [date.year(), date.month(), date.date()]
// this.form.deathDate = dayjs().format('YYYY-MM-DD') this.form.deathDate = dayjs().format('YYYY-MM-DD')
}, },
dataConfirm({ selectedValues }) { dataConfirm({ selectedValues }) {
this.form.deathDate = selectedValues.join('-') this.form.deathDate = selectedValues.join('-')
...@@ -153,9 +153,7 @@ export default { ...@@ -153,9 +153,7 @@ export default {
this.form.deathReasonList.splice(index, 1) this.form.deathReasonList.splice(index, 1)
}, },
onSubmit() { onSubmit() {
debugger
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
debugger
this.$refs.form.validate().then(() => { this.$refs.form.validate().then(() => {
let par = { let par = {
...this.form, ...this.form,
...@@ -164,7 +162,6 @@ export default { ...@@ -164,7 +162,6 @@ export default {
} }
resolve(par) resolve(par)
}).catch((e) => { }).catch((e) => {
debugger
const array = e || [] const array = e || []
if (array.length) { if (array.length) {
this.$refs.form.scrollToField(array[0].name) this.$refs.form.scrollToField(array[0].name)
......
...@@ -51,6 +51,9 @@ export default { ...@@ -51,6 +51,9 @@ export default {
computed: { computed: {
routerDetail() { routerDetail() {
return this.$route.query return this.$route.query
},
authInfo() {
return this.store.authInfo
} }
}, },
created() { created() {
...@@ -85,10 +88,18 @@ export default { ...@@ -85,10 +88,18 @@ export default {
this.step = val this.step = val
}, },
async onsubmit() { async onsubmit() {
debugger
let baseInfo = await this.$refs.baseInfo.onSubmit() let baseInfo = await this.$refs.baseInfo.onSubmit()
let deathRecordForm = await this.$refs.deathRecordForm.onSubmit() let deathRecordForm = await this.$refs.deathRecordForm.onSubmit()
let params = { let params = {
residentInfoId: this.routerDetail.residentInfoId,
createUnitId: this.authInfo.unitId,
createUnitName: this.authInfo.unitName,
// 录入科室
createOfficeId: this.authInfo.officeId,
createOfficeName: this.authInfo.officeName,
// 录入医生
createDoctorId: this.authInfo.relationId,
createDoctorName: this.authInfo.nickName,
residentsRecord: baseInfo, residentsRecord: baseInfo,
...deathRecordForm ...deathRecordForm
} }
......
...@@ -134,6 +134,7 @@ export default { ...@@ -134,6 +134,7 @@ export default {
{ name: '新增慢病诊断', value: 3, path: '/doctor/diagnose/form' }, { name: '新增慢病诊断', value: 3, path: '/doctor/diagnose/form' },
{ name: '新增通用随访', value: 4, path: '/doctor/followUp/generalFU/add' }, { name: '新增通用随访', value: 4, path: '/doctor/followUp/generalFU/add' },
{ name: '新增死亡记录', value: 5, path: '/doctor/deathRecord/add' }, { name: '新增死亡记录', value: 5, path: '/doctor/deathRecord/add' },
{ name: '新增死亡记录详情', value: 6, path: '/doctor/deathRecord/detail' },
] ]
} }
}, },
......
...@@ -105,6 +105,11 @@ const routes = [ ...@@ -105,6 +105,11 @@ const routes = [
name: 'deathRecord-add', name: 'deathRecord-add',
component: () => import(/* webpackChunkName: "doctor" */ '@/doctor/deathRecord/form/Index.vue') component: () => import(/* webpackChunkName: "doctor" */ '@/doctor/deathRecord/form/Index.vue')
}, },
{
path: 'deathRecord/detail',
name: 'deathRecord-detail',
component: () => import(/* webpackChunkName: "doctor" */ '@/doctor/deathRecord/detail/Detail')
},
] ]
}, },
{ {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment