7 changed files with 639 additions and 306 deletions
			
			
		| @ -0,0 +1,267 @@ | |||
| <template> | |||
|   <div> | |||
|     <head-template head-left=""> | |||
|       <el-button type="primary" size="small">保存</el-button> | |||
|       <el-button v-print="'cornealPrint'" size="small">打印</el-button> | |||
|     </head-template> | |||
|     <div class="notice-content"> | |||
|       <div class="notice-box"> | |||
|         <div id="cornealPrint" class="notice_tip" style="page-break-after:always"> | |||
|           <h3 style="text-align: center;margin-bottom: 32px;"> | |||
|             角膜塑形镜复查单 | |||
|           </h3> | |||
|           <table class="cornealTable"> | |||
|             <tr> | |||
|               <td colspan="2"><div class="tdItem">姓名 <el-input v-model="formData.patient.name" style="flex: 1" placeholder="" /></div></td> | |||
|               <td colspan="2"> | |||
|                 <div class="tdItem">检查日期 | |||
|                   <el-date-picker | |||
|                     v-model="formData.patient.checkDate" | |||
|                     type="date" | |||
|                     placeholder="选择日期" | |||
|                   /> | |||
|                 </div> | |||
|               </td> | |||
|               <td colspan="2"><div class="tdItem">已戴镜时间 <el-input v-model="formData.patient.wearTime" style="flex: 1" placeholder="" /></div></td> | |||
|             </tr> | |||
|             <tr> | |||
|               <td colspan="6"> | |||
|                 <div style="display: flex;flex-wrap: wrap"> | |||
|                   <div v-for="(item,index) in formData.checkList" :key="index" class="checkItem" @click="item.isSelect=!item.isSelect"> | |||
|                     <input type="checkbox" :checked="item.isSelect">{{ item.name }} | |||
|                   </div> | |||
|                 </div> | |||
|               </td> | |||
|             </tr> | |||
|             <tr> | |||
|               <td colspan="2">项目</td> | |||
|               <td colspan="2">右眼</td> | |||
|               <td colspan="2">左眼</td> | |||
|             </tr> | |||
|             <tr v-for="(item,index) in formData.projectList" :key="`${index}_${index}`"> | |||
|               <template v-if="index<4"> | |||
|                 <td colspan="2">{{ item.name }}</td> | |||
|                 <td colspan="2"><el-input v-model="item.os" /></td> | |||
|                 <td colspan="2"><el-input v-model="item.od" /></td> | |||
|               </template> | |||
|             </tr> | |||
|             <tr> | |||
|               <td rowspan="4">{{ formData.projectList[4].name }}</td> | |||
|             </tr> | |||
|             <tr v-for="(item,idx) in formData.projectList[4].areaList" :key="`${item}_${idx}`"> | |||
|               <td>{{ item.name }}</td> | |||
|               <td colspan="2"><el-input v-model="item.os" /></td> | |||
|               <td colspan="2"><el-input v-model="item.od" /></td> | |||
|             </tr> | |||
|             <tr> | |||
|               <td colspan="2">{{ formData.projectList[5].name }}</td> | |||
|               <td colspan="2"> | |||
|                 <div style="display: flex;flex-wrap: wrap"> | |||
|                   <div v-for="(item,index) in formData.projectList[5].osList" :key="index" class="checkItem" @click="item.isSelect=!item.isSelect"> | |||
|                     <input type="checkbox" :checked="item.isSelect">{{ item.name }} | |||
|                   </div> | |||
|                 </div> | |||
|               </td> | |||
|               <td colspan="2"> | |||
|                 <div style="display: flex;flex-wrap: wrap"> | |||
|                   <div v-for="(item,index) in formData.projectList[5].odList" :key="index" class="checkItem" @click="item.isSelect=!item.isSelect"> | |||
|                     <input type="checkbox" :checked="item.isSelect">{{ item.name }} | |||
|                   </div> | |||
|                 </div> | |||
|               </td> | |||
|             </tr> | |||
|             <tr> | |||
|               <td>备注</td> | |||
|               <td /> | |||
|               <td /> | |||
|               <td /> | |||
|               <td /> | |||
|               <td /> | |||
|             </tr> | |||
|             <tr> | |||
|               <td colspan="3">检查人签字</td> | |||
|               <td colspan="3">检查人签字</td> | |||
|             </tr> | |||
|           </table> | |||
|         </div> | |||
|       </div> | |||
|     </div> | |||
|   </div> | |||
| </template> | |||
| 
 | |||
| <script> | |||
| import headTemplate from '@/components/head' | |||
| export default { | |||
|   name: 'CornealReview', | |||
|   components: { | |||
|     headTemplate | |||
|   }, | |||
|   data() { | |||
|     return { | |||
|       formData: { | |||
|         patient: { | |||
|           name: '', | |||
|           checkDate: '', | |||
|           wearTime: '' | |||
|         }, | |||
|         checkList: [ | |||
|           { | |||
|             name: '正常', | |||
|             isSelect: false | |||
|           }, { | |||
|             name: '重影', | |||
|             isSelect: false | |||
|           }, { | |||
|             name: '视力波动', | |||
|             isSelect: false | |||
|           }, { | |||
|             name: '异物感', | |||
|             isSelect: false | |||
|           }, { | |||
|             name: '镜片难摘', | |||
|             isSelect: false | |||
|           }, { | |||
|             name: '眼红', | |||
|             isSelect: false | |||
|           }, { | |||
|             name: '眼痛', | |||
|             isSelect: false | |||
|           }, { | |||
|             name: '眩光', | |||
|             isSelect: false | |||
|           }, { | |||
|             name: '视力不佳', | |||
|             isSelect: false | |||
|           }, { | |||
|             name: '其他', | |||
|             isSelect: false | |||
|           } | |||
|         ], | |||
|         projectList: [ | |||
|           { | |||
|             name: '视力', | |||
|             os: '', | |||
|             od: '' | |||
|           }, { | |||
|             name: '眼压', | |||
|             os: '', | |||
|             od: '' | |||
|           }, { | |||
|             name: '角膜地形图', | |||
|             os: '', | |||
|             od: '' | |||
|           }, { | |||
|             name: '眼轴', | |||
|             os: '', | |||
|             od: '' | |||
|           }, { | |||
|             name: '眼表', | |||
|             os: '', | |||
|             od: '', | |||
|             areaList: [ | |||
|               { | |||
|                 name: '角膜', | |||
|                 os: '', | |||
|                 od: '' | |||
|               }, { | |||
|                 name: '结膜', | |||
|                 os: '', | |||
|                 od: '' | |||
|               }, { | |||
|                 name: '其他', | |||
|                 os: '', | |||
|                 od: '' | |||
|               } | |||
|             ] | |||
|           }, { | |||
|             name: '镜片', | |||
|             os: '', | |||
|             od: '', | |||
|             osList: [ | |||
|               { | |||
|                 name: '正常', | |||
|                 isSelect: false | |||
|               }, { | |||
|                 name: '划痕', | |||
|                 isSelect: false | |||
|               }, { | |||
|                 name: '污染', | |||
|                 isSelect: false | |||
|               }, { | |||
|                 name: '破损', | |||
|                 isSelect: false | |||
|               } | |||
|             ], | |||
|             odList: [ | |||
|               { | |||
|                 name: '正常', | |||
|                 isSelect: false | |||
|               }, { | |||
|                 name: '划痕', | |||
|                 isSelect: false | |||
|               }, { | |||
|                 name: '污染', | |||
|                 isSelect: false | |||
|               }, { | |||
|                 name: '破损', | |||
|                 isSelect: false | |||
|               } | |||
|             ] | |||
|           } | |||
|         ] | |||
|       } | |||
|     } | |||
|   }, | |||
|   methods: { | |||
|   } | |||
| } | |||
| </script> | |||
| 
 | |||
| <style lang="scss" scoped> | |||
| input{ | |||
|   -webkit-appearance: checkbox !important; | |||
|   margin-right: 5px; | |||
| } | |||
| .cornealTable{ | |||
|   width: 100%; | |||
|   tr td{ | |||
|     border: 1px solid #ccc; | |||
|     padding: 0 5px; | |||
|     ::v-deep .el-input__inner { | |||
|       border: none !important; | |||
|       text-align: center; | |||
|       border-radius: 0; | |||
|       padding: 0; | |||
|     } | |||
|     .tdItem{ | |||
|       display: flex !important; | |||
|       align-items: center; | |||
|     } | |||
|     .checkItem{ | |||
|       cursor: pointer; | |||
|       user-select: none; | |||
|       word-break: keep-all; | |||
|       margin-right: 20px; | |||
|     } | |||
|   } | |||
| } | |||
| .notice-content{ | |||
|   width: 100%; | |||
|   flex:1; | |||
| 
 | |||
|   .notice-box{ | |||
|     width: 100%; | |||
|     height: 100%; | |||
|     display: flex; | |||
|     justify-content: space-between; | |||
|   } | |||
| 
 | |||
|   .notice_tip{ | |||
|     width: 100%; | |||
|     height: fit-content; | |||
|     border: 1px solid #000; | |||
|     padding: 64px 32px; | |||
|     margin-right: 16px; | |||
|   } | |||
| } | |||
| </style> | |||
| @ -0,0 +1,331 @@ | |||
| <template> | |||
|   <div class="review"> | |||
|     <!-- 复查头部 --> | |||
|     <div class="review-head"> | |||
|       <span>复查情况</span> | |||
|       <el-button type="primary" size="small" icon="el-icon-plus" @click="addHandle()">新增</el-button> | |||
|     </div> | |||
|     <!-- 复查内容 --> | |||
|     <div class="review-content"> | |||
|       <el-table | |||
|         :data="reviewList" | |||
|         style="width: 100%" | |||
|       > | |||
|         <el-table-column | |||
|           type="index" | |||
|           width="50" | |||
|           align="center" | |||
|         /> | |||
|         <el-table-column | |||
|           prop="returnVisitDate" | |||
|           label="日期" | |||
|           width="150" | |||
|           align="center" | |||
|         /> | |||
|         <el-table-column label="裸眼视力" align="center"> | |||
|           <el-table-column | |||
|             prop="odVision" | |||
|             label="R" | |||
|             align="center" | |||
|           /> | |||
|           <el-table-column | |||
|             prop="osVision" | |||
|             label="L" | |||
|             align="center" | |||
|           /> | |||
|         </el-table-column> | |||
|         <el-table-column label="戴镜视力" align="center"> | |||
|           <el-table-column | |||
|             prop="odGlassVision" | |||
|             label="R" | |||
|             align="center" | |||
|           /> | |||
|           <el-table-column | |||
|             prop="osGlassVision" | |||
|             label="L" | |||
|             align="center" | |||
|           /> | |||
|         </el-table-column> | |||
|         <el-table-column | |||
|           prop="cornealInfo" | |||
|           label="角膜情况" | |||
|           align="center" | |||
|         > | |||
|           <el-table-column | |||
|             prop="odCornealInfo" | |||
|             label="R" | |||
|             align="center" | |||
|           /> | |||
|           <el-table-column | |||
|             prop="osCornealInfo" | |||
|             label="L" | |||
|             align="center" | |||
|           /> | |||
|         </el-table-column> | |||
|         <el-table-column | |||
|           prop="glassInfo" | |||
|           label="镜片情况" | |||
|           align="center" | |||
|         /> | |||
|         <el-table-column | |||
|           prop="doctorAdvice" | |||
|           label="医嘱" | |||
|           align="center" | |||
|         /> | |||
|         <el-table-column | |||
|           prop="doctorName" | |||
|           label="医生" | |||
|           align="center" | |||
|         /> | |||
|         <el-table-column | |||
|           label="操作" | |||
|           width="120" | |||
|           align="center" | |||
|         > | |||
|           <template slot-scope="scope"> | |||
|             <el-button type="text" size="small" @click="editHandle(scope.row)">修改</el-button> | |||
|             <el-button type="text" size="small" @click="delHandle(scope.row)">删除</el-button> | |||
|           </template> | |||
|         </el-table-column> | |||
|       </el-table> | |||
|     </div> | |||
|     <!--    新增弹框--> | |||
|     <el-dialog | |||
|       class="oklens-add-order" | |||
|       :visible.sync="visible" | |||
|       width="30%" | |||
|       :title="title" | |||
|     > | |||
|       <el-form ref="dataForms" :model="dataForm" :rules="dataRule"> | |||
|         <el-form-item label="复查日期:" label-width="95px" prop="returnVisitDate"> | |||
|           <el-date-picker v-model="dataForm.returnVisitDate" type="date" :disabled="title === '编辑复查情况记录'" placeholder="请选择复查日期" value-format="yyyy-MM-dd" @change="changeDate" /> | |||
|         </el-form-item> | |||
|         <el-form-item label="裸眼视力:" label-width="90px" prop="osVision"> | |||
|           <span class="vision">R</span> | |||
|           <el-input v-model="dataForm.odVision" style="display: inline-block;width: 100px;margin-right: 16px" placeholder="右眼" /> | |||
|           <span class="vision">L</span> | |||
|           <el-input v-model="dataForm.osVision" style="display: inline-block;width: 100px" placeholder="左眼" /> | |||
|         </el-form-item> | |||
|         <el-form-item label="戴镜视力:" label-width="90px" prop="osGlassVision"> | |||
|           <span class="vision">R</span> | |||
|           <el-input v-model="dataForm.odGlassVision" style="display: inline-block;width: 100px;margin-right: 16px" placeholder="右眼" /> | |||
|           <span class="vision">L</span> | |||
|           <el-input v-model="dataForm.osGlassVision" style="display: inline-block;width: 100px;" placeholder="左眼" /> | |||
|         </el-form-item> | |||
|         <el-form-item label="角膜情况:" label-width="90px" prop="odCornealInfo"> | |||
|           <span class="vision">R</span> | |||
|           <el-input v-model="dataForm.odCornealInfo" style="display: inline-block;width: 250px" placeholder="请填写右眼角膜情况" /> | |||
|         </el-form-item> | |||
|         <el-form-item label="角膜情况:" label-width="90px" prop="osCornealInfo"> | |||
|           <span class="vision">L</span> | |||
|           <el-input v-model="dataForm.osCornealInfo" style="display: inline-block;width: 250px" placeholder="请填写左眼角膜情况" /> | |||
|         </el-form-item> | |||
|         <el-form-item label="镜片情况:" label-width="90px" prop="glassInfo"> | |||
|           <el-input v-model="dataForm.glassInfo" placeholder="请填写镜片情况" /> | |||
|         </el-form-item> | |||
|         <el-form-item label="医嘱:" label-width="90px" prop="doctorAdvice"> | |||
|           <el-input v-model="dataForm.doctorAdvice" placeholder="请填写医嘱" /> | |||
|         </el-form-item> | |||
|         <el-form-item label="医生:" label-width="90px" prop="doctorName"> | |||
|           <el-input v-model="dataForm.doctorName" placeholder="请填写医生" /> | |||
|         </el-form-item> | |||
|       </el-form> | |||
|       <template slot="footer"> | |||
|         <el-button @click="visible = false">{{ $t('cancel') }}</el-button> | |||
|         <el-button type="primary" @click="dataFormSubmitHandle()">{{ $t('confirm') }}</el-button> | |||
|       </template> | |||
|     </el-dialog> | |||
|   </div> | |||
| </template> | |||
| 
 | |||
| <script> | |||
| export default { | |||
|   name: 'ReviewSituation', | |||
|   props: { | |||
|     patientId: { | |||
|       type: String, | |||
|       default: '' | |||
|     } | |||
|   }, | |||
|   data() { | |||
|     return { | |||
|       visible: false, | |||
|       delFlag: false, | |||
|       title: '新增复查情况记录', | |||
|       returnDate: '', | |||
|       dataForm: { | |||
|         returnVisitDate: '', | |||
|         osGlassVision: '', | |||
|         odGlassVision: '', | |||
|         osVision: '', | |||
|         odVision: '', | |||
|         odCornealInfo: '', | |||
|         osCornealInfo: '', | |||
|         glassInfo: '', | |||
|         doctorAdvice: '', | |||
|         doctorName: '', | |||
|         patientId: this.patientId | |||
|       }, | |||
|       reviewList: [] | |||
|     } | |||
|   }, | |||
|   computed: { | |||
|     dataRule() { | |||
|       return { | |||
|         returnVisitDate: [ | |||
|           { required: true, message: '请选择复查日期', trigger: 'change' } | |||
|         ] | |||
|       } | |||
|     } | |||
|   }, | |||
|   mounted() { | |||
|     this.getReviewList() | |||
|   }, | |||
|   methods: { | |||
|     // 新增 | |||
|     addHandle() { | |||
|       this.visible = true | |||
|       this.title = '新增复查情况记录' | |||
|       this.returnDate = this.getNowFormatDate() | |||
|       this.$nextTick(() => { | |||
|         this.$refs['dataForms'].resetFields() | |||
|         this.dataForm.odGlassVision = '' | |||
|         this.dataForm.odVision = '' | |||
|         this.dataForm.returnVisitDate = this.returnDate | |||
|         // this.getVisitForHis() | |||
|       }) | |||
|     }, | |||
|     // 获取当前时间 yyyy-MM-dd | |||
|     getNowFormatDate() { | |||
|       const date = new Date() | |||
|       const seperator = '-' | |||
|       let month = date.getMonth() + 1 | |||
|       let strDate = date.getDate() | |||
|       if (month >= 1 && month <= 9) { | |||
|         month = '0' + month | |||
|       } | |||
|       if (strDate >= 0 && strDate <= 9) { | |||
|         strDate = '0' + strDate | |||
|       } | |||
|       const currentdate = date.getFullYear() + seperator + month + seperator + strDate | |||
|       return currentdate | |||
|     }, | |||
|     changeDate(val) { | |||
|       this.returnDate = val | |||
|       this.getVisitForHis() | |||
|     }, | |||
| 
 | |||
|     getVisitForHis() { | |||
|       this.$http.get('/return/visit/save', { params: { patientId: this.patientId, returnVisitDate: this.returnDate }}).then(({ data: res }) => { | |||
|         if (res.code !== 0) { | |||
|           return this.$message.error(res.msg) | |||
|         } | |||
|         if (res.data) { | |||
|           this.$nextTick(() => { | |||
|             this.dataForm = { ...res.data } | |||
|             this.dataForm.patientId = this.patientId | |||
|           }) | |||
|         } else { | |||
|           this.$nextTick(() => { | |||
|             this.$refs['dataForms'].resetFields() | |||
|             this.dataForm.odGlassVision = '' | |||
|             this.dataForm.odVision = '' | |||
|             this.dataForm.returnVisitDate = this.returnDate | |||
|           }) | |||
|         } | |||
|       }).catch(() => {}) | |||
|     }, | |||
|     // 编辑 | |||
|     editHandle(row) { | |||
|       this.visible = true | |||
|       this.title = '编辑复查情况记录' | |||
|       this.$nextTick(() => { | |||
|         this.dataForm = { ...row } | |||
|         this.dataForm.id = row.id | |||
|         this.dataForm.patientId = this.patientId | |||
|         // this.dataForm.patientId = this.patientId | |||
|       }) | |||
|     }, | |||
|     // 保存 | |||
|     dataFormSubmitHandle() { | |||
|       this.dataForm.patientId = this.patientId | |||
|       this.$refs.dataForms.validate((valid) => { | |||
|         if (!valid) { | |||
|           return false | |||
|         } | |||
|         const url = this.title === '新增复查情况记录' ? '/return/visit/save' : '/return/visit/update' | |||
|         this.$http.post(url, this.dataForm).then(({ data: res }) => { | |||
|           if (res.code !== 0) { | |||
|             return this.$message.error(res.msg) | |||
|           } | |||
|           this.$message({ | |||
|             message: this.$t('prompt.success'), | |||
|             type: 'success', | |||
|             duration: 500, | |||
|             onClose: () => { | |||
|               this.visible = false | |||
|               this.getReviewList() | |||
|             } | |||
|           }) | |||
|         }).catch(() => {}) | |||
|       }) | |||
|     }, | |||
|     // 删除 | |||
|     delHandle(row) { | |||
|       const ids = [] | |||
|       ids.push(row.id) | |||
|       this.$confirm('确认删除该条信息么?') | |||
|         .then(_ => { | |||
|           this.$http.post('/return/visit/delete', ids).then(({ data: res }) => { | |||
|             if (res.code !== 0) { | |||
|               return this.$message.error(res.msg) | |||
|             } | |||
|             this.getReviewList() | |||
|           }).catch(() => {}) | |||
|         }) | |||
|         .catch(_ => {}) | |||
|     }, | |||
|     // 复查 | |||
|     getReviewList() { | |||
|       this.$http.get('/return/visit/getList', { params: { patientId: this.patientId }}).then(({ data: res }) => { | |||
|         if (res.code !== 0) { | |||
|           return this.$message.error(res.msg) | |||
|         } | |||
|         if (res.data) { | |||
|           this.reviewList = res.data || [] | |||
|         } | |||
|       }).catch(() => {}) | |||
|     } | |||
|   } | |||
| } | |||
| </script> | |||
| 
 | |||
| <style lang="scss" scoped> | |||
| .review { | |||
|   width: 100%; | |||
|   .review-head { | |||
|     display: flex; | |||
|     justify-content: space-between; | |||
|     padding-bottom: 16px; | |||
|   } | |||
|   .review-content { | |||
|     width: 100%; | |||
|     height: calc( 100vh - 50px - 32px - 42px - 48px - 15px); | |||
|     padding: 16px; | |||
|     background: #ffffff; | |||
|     overflow-x: auto; | |||
|   } | |||
|   .vision{ | |||
|     display: inline-block; | |||
|     width: 24px; | |||
|     height: 24px; | |||
|     line-height: 24px; | |||
|     border-radius: 50%; | |||
|     text-align: center; | |||
|     color: #1E79FF; | |||
|     font-weight: 600; | |||
|     margin-right: 8px; | |||
|     background-color: #EBF6FF; | |||
|   } | |||
| } | |||
| </style> | |||
					Loading…
					
					
				
		Reference in new issue