Commit b42ca349 authored by 芮自成's avatar 芮自成

专病随访联调

parent 3cd3ca5e
import { fetchBase } from '@/api/doctor/doctorFetch'
// 新增高血压随访
export function addHypertensionForm(params) {
return fetchBase({ url: `/chronic-admin/v1/chronic-visit-hypertension/save`, body: params, loading: true })
}
\ No newline at end of file
...@@ -66,7 +66,7 @@ export default { ...@@ -66,7 +66,7 @@ export default {
if (!token) { if (!token) {
token = sessionStorage.getItem('token') token = sessionStorage.getItem('token')
if (process.env.NODE_ENV !== 'production') { if (process.env.NODE_ENV !== 'production') {
token = '754c4502-5f2e-4b43-93d4-8c0e67bc9352' token = '2fd52bba-1093-41d2-b8c9-987e81f891b4'
} }
} }
if (token) { if (token) {
......
<template> <template>
<van-form> <van-form ref="form">
<div class="label-title" required>专病名称</div> <div class="label-title" required>专病名称</div>
<van-field <van-field
v-model="form.diseaseTypeName" v-model="form.diseaseTypeName"
...@@ -11,12 +11,6 @@ ...@@ -11,12 +11,6 @@
class="form-input" class="form-input"
/> />
<van-popup v-model:show="showDiseaseType" position="bottom"> <van-popup v-model:show="showDiseaseType" position="bottom">
<!-- <van-picker
:columns-field-names="{ text: 'name', value: 'value' }"
:columns="store.getDict('CP00117')"
@confirm="diseaseConfirm"
@cancel="showDiseaseType = false"
/> -->
<div class="p-4" style="height: 100%"> <div class="p-4" style="height: 100%">
<div class="flex justify-between items-center mb-4 pop-title"> <div class="flex justify-between items-center mb-4 pop-title">
<div class="greyColor" @click="showDiseaseType = false">取消</div> <div class="greyColor" @click="showDiseaseType = false">取消</div>
...@@ -37,7 +31,7 @@ ...@@ -37,7 +31,7 @@
</van-popup> </van-popup>
<div class="label-title mt-5" required>请选择</div> <div class="label-title mt-5" required>请选择</div>
<van-field style="padding: 0" class="mb-5"> <van-field :rules="rules.serveType" style="padding: 0" class="mb-5">
<template #input> <template #input>
<van-radio-group <van-radio-group
v-model="form.serveType" v-model="form.serveType"
...@@ -51,25 +45,6 @@ ...@@ -51,25 +45,6 @@
</template> </template>
</van-field> </van-field>
<!-- <div class="font-semibold mt-4">居民信息</div> -->
<!-- <div class="label-title mt-4" required>证件类型</div>
<van-field
v-model="form.certificateTypeName"
isLink
readonly
placeholder="请选择"
:rules="rules.certificateTypeName"
@click="showCertificateType = true"
class="form-input"
/>
<van-popup v-model:show="showCertificateType" position="bottom">
<van-picker
:columns-field-names="{ text: 'name', value: 'value' }"
:columns="store.getDict('DC00004')"
@confirm="certificateConfirm"
@cancel="showDiseaseType = false"
/>
</van-popup> -->
<ArchiveCommon ref="archive" :info="info"></ArchiveCommon> <ArchiveCommon ref="archive" :info="info"></ArchiveCommon>
</van-form> </van-form>
</template> </template>
...@@ -84,7 +59,14 @@ export default { ...@@ -84,7 +59,14 @@ export default {
return { return {
store: useStore(), store: useStore(),
form: {}, form: {},
rules: {}, rules: {
diseaseTypeName: [
{ required: true, message: '请选择' }
],
serveType: [
{ required: true, message: '请选择' }
]
},
showDiseaseType: false, showDiseaseType: false,
showCertificateType: false, showCertificateType: false,
info: {} info: {}
...@@ -107,25 +89,33 @@ export default { ...@@ -107,25 +89,33 @@ export default {
this.info = res.data || {} this.info = res.data || {}
}, },
diseaseTypeChange() { diseaseTypeChange() {
this.store.getDict('CP00117').forEach(item => {
}, if (item.value === this.form.diseaseType) {
diseaseConfirm({ selectedValues, selectedOptions }) { this.form.diseaseTypeName = item.name
this.form.diseaseType = selectedValues[0] }
this.form.diseaseTypeName = selectedOptions[0].name })
this.showDiseaseType = false this.showDiseaseType = false
}, },
certificateConfirm({ selectedValues, selectedOptions }) {
this.form.certificateType = selectedValues[0]
this.form.certificateTypeName = selectedOptions[0].name
this.showCertificateType = false
},
async onSubmit() { async onSubmit() {
let baseInfo = {} const baseInfo = await this.$refs.archive.onSubmit()
try { return new Promise((resolve, reject) => {
baseInfo = await this.$refs.archive.onSubmit() this.$refs.form.validate().then(() => {
} catch(e) { resolve({
baseInfo,
diseaseInfo: this.form
})
}).catch(e => {
})
})
// let baseInfo = {}
// try {
// baseInfo = await this.$refs.archive.onSubmit()
// } catch(e) {
// }
}
} }
} }
} }
......
...@@ -5,16 +5,39 @@ ...@@ -5,16 +5,39 @@
</template> </template>
<script> <script>
import HypertensionForm from './components/HypertensionForm.vue' import HypertensionForm from './components/HypertensionForm.vue'
import { addHypertensionForm } from '@/api/doctor/separateFU'
export default { export default {
components: { HypertensionForm }, components: { HypertensionForm },
props: {
baseInfo: {
type: Object,
default: () => {}
},
diseaseInfo: {
type: Object,
default: () => {}
}
},
data() { data() {
return { return {
diseaseType: 1 diseaseType: 1
} }
}, },
computed: {
residentInfoId() {
return this.$route.query.residentInfoId
}
},
methods: { methods: {
submit() { async submit() {
this.$refs.hypertensionForm.submit() const hypertensionForm = await this.$refs.hypertensionForm.submit()
let form = {
...this.diseaseInfo,
residentsRecord: this.baseInfo,
...hypertensionForm,
residentInfoId: this.residentInfoId,
}
return await addHypertensionForm(form, true)
} }
} }
} }
......
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
<div class="p-4 h-overflow"> <div class="p-4 h-overflow">
<BaseInfo v-if="step === 1" ref="baseInfo"></BaseInfo> <BaseInfo v-if="step === 1" ref="baseInfo"></BaseInfo>
<FormCont v-if="step === 2" ref="formCont"></FormCont> <FormCont v-if="step === 2" ref="formCont" :baseInfo="baseInfo" :diseaseInfo="diseaseInfo"></FormCont>
</div> </div>
<div class="bottom-small-line"></div> <div class="bottom-small-line"></div>
<div class="p-4"> <div class="p-4">
...@@ -25,7 +25,9 @@ export default { ...@@ -25,7 +25,9 @@ export default {
components: { BaseInfo, FormCont }, components: { BaseInfo, FormCont },
data() { data() {
return { return {
step: 1 step: 1,
baseInfo: {},
diseaseInfo: {}
} }
}, },
computed: { computed: {
...@@ -45,12 +47,16 @@ export default { ...@@ -45,12 +47,16 @@ export default {
} }
}, },
async toNext() { async toNext() {
// this.$refs.baseInfo.onSubmit() const { baseInfo, diseaseInfo } = await this.$refs.baseInfo.onSubmit()
// console.log(666, obj) this.baseInfo = baseInfo
this.diseaseInfo = diseaseInfo
this.step = 2 this.step = 2
}, },
onSubmit() { onSubmit() {
this.$refs.formCont.submit() this.$refs.formCont.submit().then(() => {
this.$message.success('新增成功')
this.$router.go(-1)
})
} }
} }
} }
......
...@@ -981,7 +981,7 @@ ...@@ -981,7 +981,7 @@
<script> <script>
import { useStore } from '@/doctor/store' import { useStore } from '@/doctor/store'
import CheckBtn from '@/doctor/components/checkBtn/CheckBtn.vue' import CheckBtn from '@/doctor/components/checkBtn/CheckBtn.vue'
import { checkboxReject, calculateBMI } from '@/utils/common' import { checkboxReject, calculateBMI, fetchDataHandle } from '@/utils/common'
import BloodPressurePanel from '@/doctor/components/bloodPressure/BloodPressurePanel.vue' import BloodPressurePanel from '@/doctor/components/bloodPressure/BloodPressurePanel.vue'
import BloodPressureBt from '@/doctor/components/bloodPressure/BloodPressureBt.vue' import BloodPressureBt from '@/doctor/components/bloodPressure/BloodPressureBt.vue'
import DocImageUpload from '@/doctor/components/docImageUpload/DocImageUpload.vue' import DocImageUpload from '@/doctor/components/docImageUpload/DocImageUpload.vue'
...@@ -1417,11 +1417,17 @@ export default { ...@@ -1417,11 +1417,17 @@ export default {
}, },
submit() { submit() {
return new Promise((resolve, reject) => {
this.$refs.form.validate().then(() => { this.$refs.form.validate().then(() => {
console.log(this.form) const form = fetchDataHandle(this.form, {
symptom: 'arrToStr',
currentDiagnosis: 'arrToStr'
})
resolve(form)
}).catch(e => { }).catch(e => {
}) })
})
} }
}, },
watch: { watch: {
......
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