Commit 235d8ee9 authored by gengchunlei's avatar gengchunlei

慢综 医生端 新增通用随访表单

parent fec5d585
import {fetchBase} from '@/api/doctor/doctorFetch'
//查询居民信息
export function getChronicResidentsId(residentInfoId) {
return fetchBase({ url: `/v1/chronic-residents-record/resident-info`,body:{"residentInfoId":residentInfoId},loading: true})
}
// 主键查询
export function fetchCurrencyById(params) {
return fetchBase({ url: `/v1/chronic-visit-currency/record`, body: params, loading: true })
}
\ No newline at end of file
...@@ -5,19 +5,20 @@ ...@@ -5,19 +5,20 @@
<van-cell-group inset> <van-cell-group inset>
<div class='label-title'>证件类型</div> <div class='label-title'>证件类型</div>
<van-field <van-field
v-model='form.residentName' v-model='form.certificateTypeName'
clearable is-link
disabled
placeholder='证件类型' placeholder='证件类型'
class='input-back mt-2 form-input' class='input-back mt-2 form-input'
:rules="[{ required: true, message: '请选择证件类型' }]" :rules="rules.certificateTypeName"
/> />
<div class='label-title mt-5'>证件号码</div> <div class='label-title mt-5'>证件号码</div>
<van-field <van-field
v-model='form.residentName' v-model='form.idCard'
clearable disabled
placeholder='证件号码' placeholder='证件号码'
class='input-back mt-2 form-input' class='input-back mt-2 form-input'
:rules="[{ required: true, message: '请填写证件号码' }]" :rules="rules.idCard"
/> />
<div class='label-title mt-5'>姓名</div> <div class='label-title mt-5'>姓名</div>
<van-field <van-field
...@@ -25,34 +26,190 @@ ...@@ -25,34 +26,190 @@
clearable clearable
placeholder='姓名' placeholder='姓名'
class='input-back mt-2 form-input' class='input-back mt-2 form-input'
:rules="[{ required: true, message: '请填写姓名' }]" :rules="rules.residentName"
/> />
<div class='label-title mt-5'>性别</div>
<div class='label-title mt-5'>本人电话</div>
<van-field <van-field
v-model='form.user' v-model='form.genderName'
clearable is-link
placeholder='本人电话' disabled
placeholder='性别'
class='input-back mt-2 form-input' class='input-back mt-2 form-input'
:rules="[{ required: true, message: '请填写本人电话' }]" :rules="rules.genderName"
/> />
<div class='label-title mt-5'>出生日期</div>
<van-field
v-model='form.dataBirth'
is-link
disabled
placeholder='出生日期'
class='input-back mt-2 form-input'
:rules="rules.dataBirth"
/>
<div class='label-title mt-5'>民族</div>
<van-field
v-model='form.nationalName'
is-link
readonly
name='national'
placeholder='请选择'
:rules='rules.nationalName'
@click='showNational = true' />
<van-popup v-model:show="showNational" position="bottom">
<van-picker
:columns-field-names="{ text: 'name', value: 'value' }"
:columns="store.getDict('DC00006')"
@confirm="nationalConfirm"
@cancel="showNational = false"
/>
</van-popup>
</van-cell-group> </van-cell-group>
</van-form> </van-form>
</div> </div>
</template> </template>
<script> <script>
import { fetchDataHandle } from '@/utils/common'
import { useStore } from '@/resident/store'
const defaultForm = (info = {}) => {
const form = {
id: undefined,
residentInfoId: undefined,
// 年龄
currentAge: undefined,
// 出生地详细地址
birthAddress: undefined,
// 出生地编码
birthCode: undefined,
// 证件类型,[DC00004]
certificateType: 1,
certificateTypeName: '身份证',
// 联系人姓名
contactName: undefined,
contactName2: undefined,
// 联系人电话
contactPhone: undefined,
// 与居民关系,[DC00023]
contactRelation: undefined,
contactRelationName: undefined,
// 创建单位id
// createdUnitId: undefined,
// createdUnitName: undefined,
// 创建医生
// createdUserName: undefined,
// 出生日期
dataBirth: undefined,
// 职业,[DC00010]
duty: undefined,
dutyName: undefined,
// 文化程度(学历),[DC00007]
education: undefined,
educationName: undefined,
// 性别,[DC00005]
gender: undefined,
genderName: undefined,
// 身份证号
idCard: undefined,
// innerMarital: undefined,
// 民族,[DC00006]
national: undefined,
nationalName: undefined,
// 现住址
nowAddress: undefined,
// 户籍地址
permanentAddress: undefined,
// 现住址编码
presentCode: undefined,
// 户籍地编码
registeredCode: undefined,
// 居民档案id
residentId: undefined,
// 姓名
residentName: undefined,
// 本人电话
telephone: undefined,
// 工作单位
workUnit: undefined,
// diseaseId: undefined,
// 与居民关系
relation: undefined
// relationOther: undefined,
// 人群
// chronicTagsArray: undefined,
// 建档单位、科室、医生
// createDoctorId: undefined,
// createDoctorName: undefined,
// createOfficeId: undefined,
// createOfficeName: undefined,
// createUnitId: undefined,
// createUnitName: undefined
}
Reflect.ownKeys(form).forEach(key => {
if (info[key] != undefined) {
form[key] = info[key]
}
})
return fetchDataHandle(form, {
registeredCode: 'addToArr',
presentCode: 'addToArr'
// birthCode: 'addToArr'
})
}
export default { export default {
name: 'BaseInfo', name: 'BaseInfo',
props: {
info: {
default: () => {
return {}
}
}
},
data() { data() {
return { return {
form: {} store: useStore(),
// 民族
showNational: false,
form: {},
rules: {
certificateTypeName: [{ required: true, message: '请选择证件类型' }],
idCard: [{ required: true, message: '请填写证件号码' }],
residentName:[{ required: true, message: '请填写姓名' }],
genderName: [{ required: true, message: '请选择性别' }],
dataBirth: [{ required: true, message: '请选择出生日期' }],
nationalName: [{ required: true, message: '请选择名族' }],
}
}
},
watch: {
'info': {
handler() {
this.form = defaultForm(this.info)
},
immediate: true
} }
}, },
methods: { methods: {
// 民族
nationalConfirm({ selectedValues, selectedOptions }) {
this.form.national = selectedValues[0]
this.form.nationalName = selectedOptions[0].name
this.showNational = false
},
onSubmit() { onSubmit() {
this.$refs.form.validate().then(() => { return new Promise((resolve, reject) => {
this.$refs.form.validate().then(() => {
resolve(
fetchDataHandle(this.form, {
// birthCode: 'arrToAdd',
presentCode: 'arrToAdd',
registeredCode: 'arrToAdd'
})
)
}).catch((e) => {
console.warn('ArchiveCommon error', e)
reject(e)
})
}) })
} }
} }
...@@ -69,12 +226,13 @@ export default { ...@@ -69,12 +226,13 @@ export default {
font-size: 13px; font-size: 13px;
color: #595959; color: #595959;
font-weight: 500; font-weight: 500;
&::after {
content: "*"; &::after {
color: red; content: "*";
font-weight: bold; color: red;
margin-left: 4px; font-weight: bold;
} margin-left: 4px;
}
} }
......
<template> <template>
<div> <div>
<van-nav-bar title='新增通用随访' left-text='' left-arrow> <van-nav-bar title='新增通用随访' left-text='' left-arrow>
</van-nav-bar> </van-nav-bar>
<div class='p-4'> <div class='p-4'>
<base-info></base-info> <base-info :info="resident"></base-info>
</div> </div>
</div> </div>
</template> </template>
<script> <script>
import BaseInfo from '@/doctor/followUp/generalFU/form/BaseInfo' import BaseInfo from '@/doctor/followUp/generalFU/form/BaseInfo'
import { fetchCurrencyById, getChronicResidentsId } from '@/api/doctor/generalFU'
export default { export default {
name: 'Index', name: 'Index',
components: { BaseInfo }, components: { BaseInfo },
data() { data() {
return { return {
info: {},
resident: {}
}
},
created() {
// this.init()
},
computed: {
routerDetail() {
return this.$route.query
} }
}, },
methods: { methods: {
async init() {
const res = await getChronicResidentsId(this.routerDetail.residentId)
this.resident = {
...res.data,
residentInfoId: this.routerDetail.residentId
}
this.info = {}
this.info.residentInfoId = this.routerDetail.residentId
this.info.gender = this.resident.gender;
this.info.currentAge = this.resident.currentAge;
this.info.genderName = this.resident.genderName;
this.info.diseaseType = this.routerDetail.diseaseType
if (this.routerDetail.id) {
const res = await fetchCurrencyById({ id: this.routerDetail.id })
let result = res.data || {}
this.info = {
...result
}
}
}
} }
} }
</script> </script>
......
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