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