10 changed files with 404 additions and 400 deletions
@ -1,204 +0,0 @@ |
|||
<template> |
|||
<my-dialog :print="print" :title="patientInfo?patientInfo.itemName:'修改预约'" :is-show="show" @handleSave="handleSave" @close="closeDialog"> |
|||
<el-form id="UBMOrder" ref="form" size="small" :model="form" label-width="90px"> |
|||
<el-form-item required label="选择患者:"> |
|||
<el-input v-model="form.patient" suffix-icon="el-icon-search" /> |
|||
</el-form-item> |
|||
<div v-if="patientInfo" class="patientDetail"> |
|||
<div style="font-size: 16px;font-weight: bold">患者信息</div> |
|||
<div class="detailItem"> |
|||
<div>登记号:{{ patientInfo.patientId }}</div> |
|||
<div>电话:{{ patientInfo.patientPhone }}</div> |
|||
</div> |
|||
<div class="detailItem"> |
|||
<div>姓名:{{ patientInfo.patientName }}</div> |
|||
<div>性别:{{ patientInfo.patientSex }}</div> |
|||
<div>生日:{{ patientInfo.patientBirthday }}</div> |
|||
<div>年龄:{{ patientInfo.patientAge }}</div> |
|||
<div>来源:门诊/住院</div> |
|||
</div> |
|||
</div> |
|||
<el-form-item label="负责医生:"> |
|||
<el-col :span="12"> |
|||
<el-select v-model="form.doctorId" placeholder="请选择"> |
|||
<el-option |
|||
v-for="item in doctorList" |
|||
:key="item.employeeId" |
|||
:label="item.realName" |
|||
:value="item.employeeId" |
|||
/> |
|||
</el-select> |
|||
</el-col> |
|||
<el-col :span="12" style="display: flex;align-items: center"> |
|||
已开医嘱: |
|||
<div class="radioItem" @click="form.docAdvice=true"> |
|||
<input :checked="form.docAdvice" type="radio">是 |
|||
</div> |
|||
<div class="radioItem" @click="form.docAdvice=false"> |
|||
<input :checked="!form.docAdvice" type="radio">否 |
|||
</div> |
|||
</el-col> |
|||
</el-form-item> |
|||
<el-form-item label="备注:"> |
|||
<el-input v-model="form.remark" autosize type="textarea" /> |
|||
</el-form-item> |
|||
<div style="display: flex;padding:0 0 20px 20px"> |
|||
<el-col :span="10" style="display: flex;align-items: center"> |
|||
眼别: |
|||
<div class="radioItem" @click="form.eyeLevel='OD'"> |
|||
<input :checked="form.eyeLevel==='OD'" type="radio">OD |
|||
</div> |
|||
<div class="radioItem" @click="form.eyeLevel='OS'"> |
|||
<input :checked="form.eyeLevel==='OS'" type="radio">OS |
|||
</div> |
|||
<div class="radioItem" @click="form.eyeLevel='OU'"> |
|||
<input :checked="form.eyeLevel==='OU'" type="radio">OU |
|||
</div> |
|||
</el-col> |
|||
<el-col :span="7" style="display: flex;align-items: center"> |
|||
散瞳: |
|||
<div class="radioItem" @click="form.mydriasis=true"> |
|||
<input :checked="form.mydriasis" type="radio">是 |
|||
</div> |
|||
<div class="radioItem" @click="form.mydriasis=false"> |
|||
<input :checked="!form.mydriasis" type="radio">否 |
|||
</div> |
|||
</el-col> |
|||
<el-col :span="7" style="display: flex;align-items: center"> |
|||
缩瞳: |
|||
<div class="radioItem" @click="form.miosis=!form.miosis"> |
|||
<input :checked="form.miosis" type="radio">是 |
|||
</div> |
|||
<div class="radioItem" @click="form.miosis=!form.miosis"> |
|||
<input :checked="!form.miosis" type="radio">否 |
|||
</div> |
|||
</el-col> |
|||
</div> |
|||
<el-form-item required label="预约时间:"> |
|||
<el-date-picker |
|||
v-model="form.date" |
|||
type="datetime" |
|||
placeholder="选择日期时间" |
|||
/> |
|||
</el-form-item> |
|||
</el-form> |
|||
</my-dialog> |
|||
</template> |
|||
|
|||
<script> |
|||
import MyDialog from '@/page-subspecialty/views/modules/nurseManagement/myDialog.vue' |
|||
|
|||
export default { |
|||
name: 'UBMOrder', |
|||
components: { MyDialog }, |
|||
props: { |
|||
isShow: { |
|||
type: Boolean, |
|||
default: false |
|||
}, |
|||
patientInfo: { |
|||
type: Object, |
|||
default: () => {} |
|||
} |
|||
}, |
|||
data() { |
|||
return { |
|||
show: false, |
|||
radio: '1', |
|||
print: { |
|||
id: 'UBMOrder' |
|||
}, |
|||
form: { |
|||
patient: '', |
|||
doctor: '', |
|||
docAdvice: '', |
|||
remark: '', |
|||
doctorId: '', |
|||
eyeLevel: '', |
|||
mydriasis: false, |
|||
miosis: '', |
|||
date: '' |
|||
}, |
|||
doctorList: [] |
|||
} |
|||
}, |
|||
watch: { |
|||
isShow(val) { |
|||
this.show = val |
|||
}, |
|||
'patientInfo.id'() { |
|||
this.$nextTick(() => { |
|||
this.form.doctorId = this.patientInfo.doctorId |
|||
this.form.doctorName = this.patientInfo.doctorName |
|||
this.form.date = this.patientInfo.appointDate |
|||
}) |
|||
} |
|||
}, |
|||
created() { |
|||
this.getDoctorList() |
|||
}, |
|||
methods: { |
|||
getDoctorList() { |
|||
this.$http.get('/sys/user', { params: { position: '门诊医师' }}).then(data => { |
|||
this.doctorList = data.data.data |
|||
}) |
|||
}, |
|||
closeDialog(val) { |
|||
this.$emit('close', val) |
|||
}, |
|||
handleSave() { |
|||
const params = { |
|||
appointDate: this.$moment(this.form.date).format('YYYY-MM-DD HH:mm:ss'), |
|||
doctorId: this.form.doctorId, |
|||
doctorName: this.form.doctorName, |
|||
patientId: this.patientInfo.patientId, |
|||
patientName: this.patientInfo.patientName, |
|||
id: this.patientInfo.id |
|||
} |
|||
this.$http.post('/appoint/updateAppointInfo', params).then(() => { |
|||
this.$message.success('修改成功') |
|||
this.$emit('editSuccess') |
|||
this.closeDialog() |
|||
}) |
|||
} |
|||
} |
|||
} |
|||
</script> |
|||
|
|||
<style lang="scss" scoped> |
|||
.radioItem{ |
|||
user-select: none; |
|||
cursor: pointer; |
|||
margin:0 8px; |
|||
display: flex; |
|||
} |
|||
input{ |
|||
-webkit-appearance: checkbox !important; |
|||
margin-right: 5px !important; |
|||
} |
|||
::v-deep .el-form-item__label{ |
|||
font-size: 14px; |
|||
} |
|||
::v-deep .el-form-item{ |
|||
margin-bottom: 16px; |
|||
} |
|||
::v-deep .el-radio{ |
|||
margin-right: 8px; |
|||
} |
|||
.patientDetail{ |
|||
border: 1px solid #6EB1FF; |
|||
border-radius: 8px; |
|||
background: #E8F5FF; |
|||
padding: 16px; |
|||
font-size: 14px; |
|||
color: rgba(0, 0, 0, 0.88); |
|||
margin-bottom: 22px; |
|||
} |
|||
.detailItem{ |
|||
display:flex; |
|||
margin: 8px 0; |
|||
div{ |
|||
margin-right: 20px; |
|||
} |
|||
} |
|||
</style> |
@ -1,56 +0,0 @@ |
|||
<template> |
|||
<div> |
|||
<el-button type="text" @click="isShow = true">点击打开 Dialog</el-button> |
|||
<el-button type="text" @click="ubmShow = true">UBM预约</el-button> |
|||
<el-button type="text" @click="addShow = true">新增</el-button> |
|||
<el-button type="text" @click="listShow = true">预约患者列表</el-button> |
|||
<el-button type="text" @click="numberShow = true">号源管理</el-button> |
|||
<re-dialog :is-show="isShow" @close="closeDialog1" /> |
|||
<u-b-m-order :is-show="ubmShow" @close="closeDialog2" /> |
|||
<add-project :is-show="addShow" @close="closeDialog3" /> |
|||
<order-patient-list :is-show="listShow" @addOrder="addOrder" @close="closeDialog4" /> |
|||
<number-manage :is-show="numberShow" @close="closeDialog5" /> |
|||
</div> |
|||
</template> |
|||
|
|||
<script> |
|||
import ReDialog from '@/page-subspecialty/views/modules/nurseManagement/reDialog.vue' |
|||
import UBMOrder from '@/page-subspecialty/views/modules/nurseManagement/UBMOrder.vue' |
|||
import AddProject from '@/page-subspecialty/views/modules/nurseManagement/addProject.vue' |
|||
import OrderPatientList from '@/page-subspecialty/views/modules/nurseManagement/orderPatientList.vue' |
|||
import NumberManage from '@/page-subspecialty/views/modules/nurseManagement/reservation/subSetting/numberManage.vue' |
|||
|
|||
export default { |
|||
name: 'NurseManagement', |
|||
components: { NumberManage, OrderPatientList, AddProject, UBMOrder, ReDialog }, |
|||
data() { |
|||
return { |
|||
isShow: false, |
|||
ubmShow: false, // ubm弹框 |
|||
addShow: false, |
|||
listShow: false, |
|||
numberShow: false |
|||
} |
|||
}, |
|||
methods: { |
|||
addOrder() { |
|||
this.ubmShow = true |
|||
}, |
|||
closeDialog1(val) { |
|||
this.isShow = val |
|||
}, closeDialog2(val) { |
|||
this.ubmShow = val |
|||
}, closeDialog3(val) { |
|||
this.addShow = val |
|||
}, closeDialog4(val) { |
|||
this.listShow = val |
|||
}, closeDialog5(val) { |
|||
this.numberShow = val |
|||
} |
|||
} |
|||
} |
|||
</script> |
|||
|
|||
<style scoped> |
|||
|
|||
</style> |
@ -0,0 +1,268 @@ |
|||
<template> |
|||
<el-dialog top="30px" class="number-manage" append-to-body :visible.sync="visible" width="40%" :title="title" @close="closeDialog"> |
|||
<el-form id="addPatientOrder" ref="addPatientForm" :rules="dataRule" size="small" :model="form" label-width="90px"> |
|||
<el-form-item required label="选择患者:" prop="patientId"> |
|||
<el-input v-model="form.patientId" :readonly="isEdit" suffix-icon="el-icon-search" placeholder="请输入登记号" @change="searchPatient" /> |
|||
</el-form-item> |
|||
<div v-if="patientInfo" class="patientDetail"> |
|||
<div style="font-size: 16px;font-weight: bold">患者信息</div> |
|||
<div class="detailItem"> |
|||
<div>登记号:{{ patientInfo.patientId }}</div> |
|||
<div>电话:{{ patientInfo.patientPhone }}</div> |
|||
</div> |
|||
<div class="detailItem"> |
|||
<div>姓名:{{ patientInfo.patientName }}</div> |
|||
<div>性别:{{ patientInfo.patientSex }}</div> |
|||
<div>生日:{{ $moment(patientInfo.patientBirthday).format('YYYY-MM-DD') }}</div> |
|||
<div v-if="patientInfo.patientAge">年龄:{{ patientInfo.patientAge }}</div> |
|||
<div>来源:{{ patientInfo.source }}</div> |
|||
</div> |
|||
</div> |
|||
<el-form-item label="负责医生:"> |
|||
<el-col :span="12"> |
|||
<el-select v-model="form.doctorId" placeholder="请选择" @change="selectDoctor"> |
|||
<el-option |
|||
v-for="item in doctorList" |
|||
:key="item.employeeId" |
|||
:label="item.realName" |
|||
:value="item.employeeId" |
|||
/> |
|||
</el-select> |
|||
</el-col> |
|||
<el-col :span="12" style="display: flex;align-items: center"> |
|||
已开医嘱: |
|||
<div class="radioItem" @click="form.yzOpen='Y'"> |
|||
<input :disabled="isEdit" :checked="form.yzOpen==='Y'" type="radio">是 |
|||
</div> |
|||
<div class="radioItem" @click="form.yzOpen='N'"> |
|||
<input :disabled="isEdit" :checked="form.yzOpen==='N'" type="radio">否 |
|||
</div> |
|||
</el-col> |
|||
</el-form-item> |
|||
<el-form-item label="备注:"> |
|||
<el-input v-model="form.remark" :readonly="isEdit" autosize type="textarea" /> |
|||
</el-form-item> |
|||
<div style="display: flex;padding:0 0 20px 20px"> |
|||
<el-col :span="10" style="display: flex;align-items: center"> |
|||
眼别: |
|||
<div class="radioItem" @click="form.eyeType='OD'"> |
|||
<input :disabled="isEdit" :checked="form.eyeType==='OD'" type="radio">OD |
|||
</div> |
|||
<div class="radioItem" @click="form.eyeType='OS'"> |
|||
<input :disabled="isEdit" :checked="form.eyeType==='OS'" type="radio">OS |
|||
</div> |
|||
<div class="radioItem" @click="form.eyeType='OU'"> |
|||
<input :disabled="isEdit" :checked="form.eyeType==='OU'" type="radio">OU |
|||
</div> |
|||
</el-col> |
|||
<el-col :span="7" style="display: flex;align-items: center"> |
|||
散瞳: |
|||
<div class="radioItem" @click="form.pupilDilate='Y'"> |
|||
<input :disabled="isEdit" :checked="form.pupilDilate==='Y'" type="radio">是 |
|||
</div> |
|||
<div class="radioItem" @click="form.pupilDilate='N'"> |
|||
<input :disabled="isEdit" :checked="form.pupilDilate==='N'" type="radio">否 |
|||
</div> |
|||
</el-col> |
|||
<el-col :span="7" style="display: flex;align-items: center"> |
|||
缩瞳: |
|||
<div class="radioItem" @click="form.pupilShrink='Y'"> |
|||
<input :disabled="isEdit" :checked="form.pupilShrink==='Y'" type="radio">是 |
|||
</div> |
|||
<div class="radioItem" @click="form.pupilShrink='N'"> |
|||
<input :disabled="isEdit" :checked="form.pupilShrink==='N'" type="radio">否 |
|||
</div> |
|||
</el-col> |
|||
</div> |
|||
<el-form-item required label="预约时间:" prop="date"> |
|||
<el-date-picker |
|||
v-model="form.date" |
|||
type="datetime" |
|||
placeholder="选择日期时间" |
|||
/> |
|||
</el-form-item> |
|||
</el-form> |
|||
<span slot="footer" class="dialog-footer"> |
|||
<el-button v-if="print" v-print="print" size="small">打印</el-button> |
|||
<el-button size="small" @click="closeDialog">取 消</el-button> |
|||
<el-button type="primary" size="small" @click="handleSave">确 定</el-button> |
|||
</span> |
|||
</el-dialog> |
|||
</template> |
|||
|
|||
<script> |
|||
|
|||
export default { |
|||
name: 'AddPatientOrder', |
|||
props: { |
|||
title: { |
|||
type: String, |
|||
default: '新增预约' |
|||
}, |
|||
patientDetail: { |
|||
type: Object |
|||
}, |
|||
project: { |
|||
type: Object |
|||
}, |
|||
isEdit: { |
|||
type: Boolean, |
|||
default: false |
|||
} |
|||
}, |
|||
data() { |
|||
return { |
|||
visible: false, |
|||
patientInfo: null, |
|||
form: { |
|||
patientId: '', |
|||
doctorName: '', |
|||
yzOpen: '', |
|||
remark: '', |
|||
doctorId: '', |
|||
eyeType: '', |
|||
pupilDilate: '', |
|||
pupilShrink: '', |
|||
date: '' |
|||
}, |
|||
doctorList: [], |
|||
print: { |
|||
id: 'addPatientOrder' |
|||
} |
|||
} |
|||
}, |
|||
computed: { |
|||
dataRule() { |
|||
return { |
|||
patientId: [ |
|||
{ required: true, message: '请选择患者' } |
|||
], |
|||
date: [ |
|||
{ required: true, message: '请选择时间' } |
|||
] |
|||
} |
|||
} |
|||
}, |
|||
created() { |
|||
this.getDoctorList() |
|||
if (this.patientDetail) { |
|||
this.form.patientId = this.patientDetail.patientId |
|||
this.form.doctorId = this.patientDetail.doctorId |
|||
this.form.doctorName = this.patientDetail.doctorName |
|||
this.form.eyeType = this.patientDetail.eyeType |
|||
this.form.pupilDilate = this.patientDetail.pupilDilate |
|||
this.form.pupilShrink = this.patientDetail.pupilShrink |
|||
this.form.remark = this.patientDetail.remark |
|||
this.form.yzOpen = this.patientDetail.yzOpen |
|||
this.form.date = this.patientDetail.appointDate |
|||
this.patientInfo = this.patientDetail |
|||
} |
|||
}, |
|||
methods: { |
|||
init() { |
|||
this.visible = true |
|||
}, |
|||
// 查询患者 |
|||
searchPatient(val) { |
|||
this.$http.get('/appoint/getPatientInfo', { params: { patientId: val }}).then((data) => { |
|||
if (data.data.data.list.length) { |
|||
this.patientInfo = data.data.data.list[0] |
|||
} |
|||
}) |
|||
}, |
|||
// 获取医生列表 |
|||
getDoctorList() { |
|||
this.$http.get('/sys/user', { params: { position: '门诊医师' }}).then(data => { |
|||
this.doctorList = data.data.data |
|||
}).catch(err => { |
|||
this.$message.error(err.msg) |
|||
}) |
|||
}, |
|||
// 选择医生 |
|||
selectDoctor(val) { |
|||
const curDoctor = this.doctorList.find(item => item.employeeId === val) |
|||
this.form.doctorName = curDoctor.realName |
|||
}, |
|||
// 确认提交 |
|||
handleSave() { |
|||
if (!this.isEdit) { |
|||
this.$refs.addPatientForm.validate((valid) => { |
|||
if (!valid) { |
|||
return false |
|||
} |
|||
const params = { |
|||
appointDate: this.$moment(this.form.date).format('YYYY-MM-DD HH:mm:ss'), |
|||
patientName: this.patientInfo.patientName, |
|||
jzNumber: this.patientInfo.jzNumber, |
|||
appointSource: this.patientInfo.source, |
|||
itemId: this.project.itemId, |
|||
itemName: this.project.itemName, |
|||
...this.form |
|||
} |
|||
this.$http.post('/appoint/saveAppointInfo', params).then(() => { |
|||
this.$message.success('添加成功') |
|||
this.$emit('updateAppoint') |
|||
this.visible = false |
|||
}) |
|||
}) |
|||
} else { |
|||
const params = { |
|||
appointDate: this.$moment(this.form.date).format('YYYY-MM-DD HH:mm:ss'), |
|||
doctorId: this.form.doctorId, |
|||
doctorName: this.form.doctorName, |
|||
patientId: this.form.patientId, |
|||
patientName: this.patientDetail.patientName, |
|||
id: this.patientDetail.id, |
|||
itemId: this.patientDetail.itemId |
|||
} |
|||
this.$http.post('/appoint/updateAppointInfo', params).then(() => { |
|||
this.$message.success('修改成功') |
|||
this.$emit('updateAppoint') |
|||
this.visible = false |
|||
}) |
|||
} |
|||
}, |
|||
// 关闭弹框 |
|||
closeDialog() { |
|||
this.$emit('closeDialog') |
|||
} |
|||
} |
|||
} |
|||
</script> |
|||
<style lang="scss" scoped> |
|||
.radioItem{ |
|||
user-select: none; |
|||
cursor: pointer; |
|||
margin:0 8px; |
|||
display: flex; |
|||
} |
|||
input{ |
|||
-webkit-appearance: checkbox !important; |
|||
margin-right: 5px !important; |
|||
} |
|||
::v-deep .el-form-item__label{ |
|||
font-size: 14px; |
|||
} |
|||
::v-deep .el-form-item{ |
|||
margin-bottom: 16px; |
|||
} |
|||
::v-deep .el-radio{ |
|||
margin-right: 8px; |
|||
} |
|||
.patientDetail{ |
|||
border: 1px solid #6EB1FF; |
|||
border-radius: 8px; |
|||
background: #E8F5FF; |
|||
padding: 16px; |
|||
font-size: 14px; |
|||
color: rgba(0, 0, 0, 0.88); |
|||
margin-bottom: 22px; |
|||
} |
|||
.detailItem{ |
|||
display:flex; |
|||
margin: 8px 0; |
|||
div{ |
|||
margin-right: 20px; |
|||
} |
|||
} |
|||
</style> |
Loading…
Reference in new issue