17 changed files with 2604 additions and 725 deletions
			
			
		| @ -0,0 +1,93 @@ | |||
| <template> | |||
|   <table> | |||
|     <tbody> | |||
|       <tr> | |||
|         <td rowspan="2" style="width: 30%" /> | |||
|         <td class="table_title">翔安医院</td> | |||
|       </tr> | |||
|       <tr> | |||
|         <td>个案管理信息表</td> | |||
|       </tr> | |||
|       <tr><td colspan="2" style="font-weight: bold">无效联系记录</td></tr> | |||
|       <tr> | |||
|         <td colspan="2"> | |||
|           <el-radio v-model="radio" label="1">拒接</el-radio> | |||
|           <el-radio v-model="radio" label="2">未接</el-radio> | |||
|           <el-radio v-model="radio" label="3">空号</el-radio> | |||
|         </td> | |||
|       </tr> | |||
|     </tbody> | |||
|   </table> | |||
| </template> | |||
| 
 | |||
| <script> | |||
| export default { | |||
|   name: 'Invalid', | |||
|   props: { | |||
|     followId: { | |||
|       type: String, | |||
|       default: '' | |||
|     }, | |||
|     jsonText: { | |||
|       type: String, | |||
|       default: '' | |||
|     } | |||
|   }, | |||
|   data() { | |||
|     return { | |||
|       radio: '0' | |||
|     } | |||
|   }, | |||
|   watch: { | |||
|     jsonText(val) { | |||
|       if (val) { | |||
|         const data = val && JSON.parse(val) | |||
|         this.radio = data.radio | |||
|       } else { | |||
|         this.radio = '0' | |||
|       } | |||
|     } | |||
|   }, | |||
|   created() { | |||
|     if (this.jsonText) { | |||
|       this.radio = this.jsonText && JSON.parse(this.jsonText).radio | |||
|     } | |||
|   }, | |||
|   methods: { | |||
|     addOrUpdateHandle() { | |||
|       const jsonText = JSON.stringify({ | |||
|         radio: this.radio | |||
|       }) | |||
|       const dataForm = { | |||
|         flag: '7', | |||
|         name: '无效联系', | |||
|         patientId: this.patientId, | |||
|         platform: this.platform, | |||
|         id: this.followId, | |||
|         updateTime: this.$moment().format('YYYY-MM-DD HH:mm:ss') | |||
|       } | |||
|       const params = { | |||
|         jsonText: jsonText, | |||
|         ...dataForm | |||
|       } | |||
|       return this.$http.post('/case/update', params) | |||
|     } | |||
|   } | |||
| } | |||
| </script> | |||
| 
 | |||
| <style lang="scss" scoped> | |||
| table{ | |||
|   width: 100%; | |||
|   margin-top: 20px; | |||
|   font-size: 16px; | |||
|   .table_title{ | |||
|     font-size: 22px !important; | |||
|   } | |||
|   tr td{ | |||
|     border: 1px solid #ccc; | |||
|     text-align: center; | |||
|     padding: 10px 0; | |||
|   } | |||
| } | |||
| </style> | |||
| @ -0,0 +1,356 @@ | |||
| <template> | |||
|   <div> | |||
|     <table> | |||
|       <tbody> | |||
|         <tr> | |||
|           <td rowspan="2" style="width: 30%" /> | |||
|           <td class="table_title" colspan="2">翔安医院</td> | |||
|         </tr> | |||
|         <tr> | |||
|           <td colspan="2">个案管理信息表</td> | |||
|         </tr> | |||
|         <tr><td colspan="3" style="font-weight: bold">门诊随访记录</td></tr> | |||
|         <tr> | |||
|           <td colspan="3"> | |||
|             <div class="flex">随访日期: | |||
|               <el-date-picker | |||
|                 v-model="patientData.followDate" | |||
|                 type="date" | |||
|               /> | |||
|             </div> | |||
|           </td> | |||
|         </tr> | |||
|         <tr> | |||
|           <td colspan="3"> | |||
|             <div class="flex a-c" style="width: 380px"> | |||
|               主诉:<el-input v-model="patientData.mainSuit" style="flex: 1" /> | |||
|             </div> | |||
|           </td> | |||
|         </tr> | |||
|         <tr><td colspan="3"> | |||
|           <div class="flex a-c"> | |||
|             诊断: | |||
|             <div class="flex" style="width: 180px">眼别:<el-input v-model="patientData.eyeLevel" style="flex: 1;margin-right: 15px" /></div> | |||
|             <div class="flex" style="width: 280px">疾病诊断:<el-input v-model="patientData.diagnose" style="flex: 1;margin-right: 15px" /></div> | |||
|           </div> | |||
|         </td></tr> | |||
|         <!--    常规检查--> | |||
|         <tr> | |||
|           <td colspan="3"><div class="flex">常规检查</div></td> | |||
|         </tr> | |||
|         <tr v-for="(check,index) in checks" :key="index" class="content_input"> | |||
|           <td>{{ check.name }}</td> | |||
|           <td> | |||
|             <div v-if="check.OD==='OD'">{{ check.OD }}</div> | |||
|             <div v-else> | |||
|               <el-input v-model="check.OD" /> | |||
|             </div> | |||
|           </td> | |||
|           <td> | |||
|             <div v-if="check.OS==='OS'">{{ check.OS }}</div> | |||
|             <div v-else> | |||
|               <el-input v-model="check.OS" /> | |||
|             </div> | |||
|           </td> | |||
|         </tr> | |||
|         <!--    裂隙灯检查--> | |||
|         <tr> | |||
|           <td colspan="3"><div class="flex">裂隙灯检查</div></td> | |||
|         </tr> | |||
|         <tr v-for="(check,index) in slitChecks" :key="index+check.name" class="content_input"> | |||
|           <td> | |||
|             <el-checkbox v-if="check.name!=='检查内容'" v-model="check.isSelect">{{ check.name }}</el-checkbox> | |||
|             <div v-else>{{ check.name }}</div> | |||
|           </td> | |||
|           <td> | |||
|             <div v-if="check.OD==='OD'">{{ check.OD }}</div> | |||
|             <div v-else> | |||
|               <el-input v-model="check.OD" /> | |||
|             </div> | |||
|           </td> | |||
|           <td> | |||
|             <div v-if="check.OS==='OS'">{{ check.OS }}</div> | |||
|             <div v-else> | |||
|               <el-input v-model="check.OS" /> | |||
|             </div> | |||
|           </td> | |||
|         </tr> | |||
|         <!--    诊断措施--> | |||
|         <tr> | |||
|           <td colspan="3"> | |||
|             <div class="flex">诊断措施: | |||
|               <div v-for="(item,idx) in diaMeasures" :key="idx+'_'+idx" style="margin-right: 15px"> | |||
|                 <el-input v-model="item.cure" :placeholder="item.placeholder" style="flex: 1;margin-right: 15px" /> | |||
|               </div> | |||
|             </div> | |||
|           </td> | |||
|         </tr> | |||
|         <!--      复查--> | |||
|         <tr> | |||
|           <td colspan="3"> | |||
|             <div class="flex">复查备注(计划)</div> | |||
|             <div class="flex" style="margin-top: 10px"> | |||
|               <el-radio v-model="patientData.period" label="week">按计划随访</el-radio> | |||
|               <el-radio v-model="patientData.period" label="month">临时调整</el-radio> | |||
|               日期:<el-date-picker v-model="patientData.periodDate" type="date" /> | |||
|             </div> | |||
|           </td> | |||
|         </tr> | |||
|       </tbody> | |||
|     </table> | |||
|   </div> | |||
| </template> | |||
| 
 | |||
| <script> | |||
| export default { | |||
|   name: 'OutFollow', | |||
|   props: { | |||
|     patientId: { | |||
|       type: String, | |||
|       default: '' | |||
|     }, | |||
|     platform: { | |||
|       type: String, | |||
|       default: '' | |||
|     }, | |||
|     followId: { | |||
|       type: String, | |||
|       default: '' | |||
|     }, | |||
|     jsonText: { | |||
|       type: String, | |||
|       default: '' | |||
|     } | |||
|   }, | |||
|   data() { | |||
|     return { | |||
|       initData: {}, | |||
|       patientData: { | |||
|         followDate: '', | |||
|         mainSuit: '', | |||
|         eyeLevel: '', | |||
|         diagnose: '', | |||
|         period: '', | |||
|         periodDate: '' | |||
|       }, | |||
|       // 常规检查 | |||
|       checks: [ | |||
|         { | |||
|           name: '检查内容', | |||
|           OD: 'OD', | |||
|           OS: 'OS' | |||
|         }, | |||
|         { | |||
|           name: '视力', | |||
|           OD: '', | |||
|           OS: '' | |||
|         }, | |||
|         { | |||
|           name: '眼压', | |||
|           OD: '', | |||
|           OS: '' | |||
|         }, | |||
|         { | |||
|           name: 'C/D', | |||
|           OD: '', | |||
|           OS: '' | |||
|         } | |||
|       ], | |||
|       slitChecks: [ | |||
|         { | |||
|           name: '检查内容', | |||
|           OD: 'OD', | |||
|           OS: 'OS' | |||
|         }, | |||
|         { | |||
|           name: '结膜/滤过泡', | |||
|           isSelect: false, | |||
|           OD: '', | |||
|           OS: '' | |||
|         }, | |||
|         { | |||
|           name: '角膜', | |||
|           isSelect: false, | |||
|           OD: '', | |||
|           OS: '' | |||
|         }, | |||
|         { | |||
|           name: '中央前房', | |||
|           isSelect: false, | |||
|           OD: '', | |||
|           OS: '' | |||
|         }, | |||
|         { | |||
|           name: '周边前房', | |||
|           isSelect: false, | |||
|           OD: '', | |||
|           OS: '' | |||
|         }, | |||
|         { | |||
|           name: '虹膜', | |||
|           isSelect: false, | |||
|           OD: '', | |||
|           OS: '' | |||
|         }, | |||
|         { | |||
|           name: '瞳孔', | |||
|           isSelect: false, | |||
|           OD: '', | |||
|           OS: '' | |||
|         }, | |||
|         { | |||
|           name: '直径', | |||
|           isSelect: false, | |||
|           OD: '', | |||
|           OS: '' | |||
|         }, | |||
|         { | |||
|           name: '对光反射', | |||
|           isSelect: false, | |||
|           OD: '', | |||
|           OS: '' | |||
|         }, | |||
|         { | |||
|           name: '晶体', | |||
|           isSelect: false, | |||
|           OD: '', | |||
|           OS: '' | |||
|         }, | |||
|         { | |||
|           name: '盘沿', | |||
|           isSelect: false, | |||
|           OD: '', | |||
|           OS: '' | |||
|         }, | |||
|         { | |||
|           name: '神经纤维层', | |||
|           isSelect: false, | |||
|           OD: '', | |||
|           OS: '' | |||
|         }, | |||
|         { | |||
|           name: '动态房角镜', | |||
|           isSelect: false, | |||
|           OD: '', | |||
|           OS: '' | |||
|         }, | |||
|         { | |||
|           name: '静态房角镜', | |||
|           isSelect: false, | |||
|           OD: '', | |||
|           OS: '' | |||
|         } | |||
|       ], | |||
|       diaMeasures: [ | |||
|         { | |||
|           placeholder: '降压用药', | |||
|           cure: '' | |||
|         }, | |||
|         { | |||
|           placeholder: '手术', | |||
|           cure: '' | |||
|         }, | |||
|         { | |||
|           placeholder: '激光', | |||
|           cure: '' | |||
|         } | |||
|       ] | |||
|     } | |||
|   }, | |||
|   watch: { | |||
|     jsonText(val) { | |||
|       if (val) { | |||
|         const data = JSON.parse(this.jsonText) | |||
|         this.patientData = data.patientData | |||
|         this.checks = data.checks | |||
|         this.slitChecks = data.slitChecks | |||
|         this.diaMeasures = data.diaMeasures | |||
|       } else { | |||
|         this.patientData = this.initData.patientData | |||
|         this.checks = this.initData.checks | |||
|         this.slitChecks = this.initData.slitChecks | |||
|         this.diaMeasures = this.initData.diaMeasures | |||
|       } | |||
|     } | |||
|   }, | |||
|   created() { | |||
|     // 初始化赋空 | |||
|     const data = { | |||
|       patientData: this.patientData, | |||
|       checks: this.checks, | |||
|       slitChecks: this.slitChecks, | |||
|       diaMeasures: this.diaMeasures | |||
|     } | |||
|     this.initData = JSON.parse(JSON.stringify(data)) | |||
|     // 赋值 | |||
|     if (this.jsonText) { | |||
|       const data = JSON.parse(this.jsonText) | |||
|       this.patientData = data.patientData | |||
|       this.checks = data.checks | |||
|       this.slitChecks = data.slitChecks | |||
|       this.diaMeasures = data.diaMeasures | |||
|     } | |||
|   }, | |||
|   methods: { | |||
|     addOrUpdateHandle() { | |||
|       const jsonText = JSON.stringify({ | |||
|         patientData: this.patientData, | |||
|         checks: this.checks, | |||
|         slitChecks: this.slitChecks, | |||
|         diaMeasures: this.diaMeasures | |||
|       }) | |||
|       const dataForm = { | |||
|         id: this.followId, | |||
|         flag: '7', | |||
|         name: '门诊随访', | |||
|         patientId: this.patientId, | |||
|         platform: this.platform, | |||
|         updateTime: this.$moment().format('YYYY-MM-DD HH:mm:ss') | |||
|       } | |||
|       const params = { | |||
|         jsonText: jsonText, | |||
|         ...dataForm | |||
|       } | |||
|       return this.$http.post('/case/update', params) | |||
|     } | |||
|   } | |||
| } | |||
| </script> | |||
| 
 | |||
| <style lang="scss" scoped> | |||
| .flex{ | |||
|   display: flex; | |||
| } | |||
| table{ | |||
|   width: 100%; | |||
|   margin-top: 20px; | |||
|   .table_title{ | |||
|     font-size: 22px !important; | |||
|   } | |||
|   tr td{ | |||
|     border: 1px solid #ccc; | |||
|     text-align: center; | |||
|     padding: 10px; | |||
|   } | |||
| } | |||
| ::v-deep .el-input__inner { | |||
|   border: none; | |||
|   height: 26px !important; | |||
|   line-height: 26px !important; | |||
|   text-align: center; | |||
| } | |||
| 
 | |||
| ::v-deep .el-input__inner { | |||
|   border-bottom: 1px solid #ccc; | |||
|   border-radius: 0; | |||
|   padding: 0; | |||
| } | |||
| ::v-deep .el-input__prefix { | |||
|   display: none; | |||
| } | |||
| .content_input{ | |||
|   ::v-deep .el-input__inner{ | |||
|     width: 150px; | |||
|   } | |||
| } | |||
| </style> | |||
| @ -0,0 +1,212 @@ | |||
| <template> | |||
|   <table> | |||
|     <tbody> | |||
|       <tr> | |||
|         <td rowspan="2" style="width: 30%" /> | |||
|         <td class="table_title" colspan="2">翔安医院</td> | |||
|       </tr> | |||
|       <tr> | |||
|         <td colspan="2">个案管理信息表</td> | |||
|       </tr> | |||
|       <tr><td colspan="3" style="font-weight: bold">电话随访记录</td></tr> | |||
|       <tr> | |||
|         <td colspan="3"> | |||
|           <div class="flex a-c"> | |||
|             <div class="flex a-c"> | |||
|               随访日期:<el-date-picker | |||
|                 v-model="followData.followDate" | |||
|                 type="date" | |||
|               /> | |||
|             </div> | |||
|             <div class="flex a-c">上次复查注意事项:<el-input v-model="followData.followDesc" style="flex: 1" /></div> | |||
|           </div> | |||
|         </td> | |||
|       </tr> | |||
|       <tr> | |||
|         <td colspan="3"> | |||
|           <div class="flex a-c"> | |||
|             主诉:<el-input v-model="followData.mainSuit" style="flex: 1" /> | |||
|           </div></td> | |||
|       </tr> | |||
|       <tr> | |||
|         <td colspan="3"> | |||
|           <div class="flex a-c"> | |||
|             诊断:眼别:<el-input v-model="followData.eyeLevel" style="flex: 1;margin-right: 15px" /> | |||
|             疾病诊断:<el-input v-model="followData.diagnose" style="flex: 1;margin-right: 15px" /> | |||
|             后缀:<el-input v-model="followData.suffix" style="flex: 1" /> | |||
|           </div> | |||
|         </td> | |||
|       </tr> | |||
|       <!--      常规检查--> | |||
|       <tr> | |||
|         <td colspan="3">常规检查</td> | |||
|       </tr> | |||
|       <tr> | |||
|         <td>检查内容</td> | |||
|         <td>OD</td> | |||
|         <td>OS</td> | |||
|       </tr> | |||
|       <tr> | |||
|         <td>视力</td> | |||
|         <td><el-input v-model="followData.OD.vision" style="flex: 1" /></td> | |||
|         <td><el-input v-model="followData.OD.pressure" style="flex: 1" /></td> | |||
|       </tr> | |||
|       <tr> | |||
|         <td>眼压</td> | |||
|         <td><el-input v-model="followData.OS.vision" style="flex: 1" /></td> | |||
|         <td><el-input v-model="followData.OS.pressure" style="flex: 1" /></td> | |||
|       </tr> | |||
|       <!--      处理选择--> | |||
|       <tr> | |||
|         <td colspan="3"> | |||
|           处理选择: | |||
|           <el-radio v-model="followData.selection" label="again">继续随访</el-radio> | |||
|           <el-radio v-model="followData.selection" label="add">加药</el-radio> | |||
|           <el-radio v-model="followData.selection" label="sub">减药</el-radio> | |||
|           <el-radio v-model="followData.selection" label="goin">预约入院手术</el-radio> | |||
|         </td> | |||
|       </tr> | |||
|       <!--      用药--> | |||
|       <tr> | |||
|         <td colspan="3"> | |||
|           <div class="flex a-c">用药:<el-input v-model="followData.pharmacy" style="flex: 1" /></div> | |||
|         </td> | |||
|       </tr> | |||
|       <!--      备注--> | |||
|       <tr> | |||
|         <td colspan="3"> | |||
|           <div class="flex a-c">备注: | |||
|             <el-radio v-model="followData.notes" label="suspicious">可疑进展</el-radio> | |||
|             <el-radio v-model="followData.notes" label="confirm">确认进展</el-radio> | |||
|           </div> | |||
|         </td> | |||
|       </tr> | |||
|       <!--    复查备注--> | |||
|       <tr> | |||
|         <td colspan="3"> | |||
|           <div class="flex a-c">复查备注(计划): | |||
|             <el-radio v-model="followData.schedule" label="onSchedule">按计划随访</el-radio> | |||
|             <div style="width: 180px"><el-input v-model="followData.period" style="flex: 1" placeholder="请输入周期" /></div> | |||
|             <el-radio v-model="followData.periodCircle" label="week">周</el-radio> | |||
|             <el-radio v-model="followData.periodCircle" label="month">月</el-radio> | |||
|           </div> | |||
|         </td> | |||
|       </tr> | |||
|     </tbody> | |||
|   </table> | |||
| </template> | |||
| 
 | |||
| <script> | |||
| export default { | |||
|   name: 'PhoneFollow', | |||
|   props: { | |||
|     followId: { | |||
|       type: String, | |||
|       default: '' | |||
|     }, | |||
|     jsonText: { | |||
|       type: String, | |||
|       default: '' | |||
|     } | |||
|   }, | |||
|   data() { | |||
|     return { | |||
|       initData: {}, | |||
|       followData: { | |||
|         followDate: '', | |||
|         followDesc: '', | |||
|         mainSuit: '', | |||
|         eyeLevel: '', | |||
|         diagnose: '', // 疾病诊断 | |||
|         suffix: '', // 后缀 | |||
|         OD: { | |||
|           vision: '', | |||
|           pressure: '' | |||
|         }, | |||
|         OS: { | |||
|           vision: '', | |||
|           pressure: '' | |||
|         }, | |||
|         selection: '', // 处理选择 | |||
|         pharmacy: '', | |||
|         notes: '', // 备注 | |||
|         schedule: '', | |||
|         period: '', // 周期 | |||
|         periodCircle: '' // 周期单选 | |||
|       } | |||
|     } | |||
|   }, | |||
|   watch: { | |||
|     jsonText(val) { | |||
|       if (val) { | |||
|         this.followData = JSON.parse(this.jsonText) | |||
|       } else { | |||
|         this.followData = this.initData | |||
|       } | |||
|     } | |||
|   }, | |||
|   created() { | |||
|     this.initData = JSON.parse(JSON.stringify(this.followData)) | |||
|     if (this.jsonText) { | |||
|       this.followData = JSON.parse(this.jsonText) | |||
|     } | |||
|   }, | |||
|   methods: { | |||
|     addOrUpdateHandle() { | |||
|       const jsonText = JSON.stringify({ | |||
|         ...this.followData | |||
|       }) | |||
|       const dataForm = { | |||
|         flag: '7', | |||
|         name: '电话随访', | |||
|         patientId: this.patientId, | |||
|         platform: this.platform, | |||
|         id: this.followId, | |||
|         updateTime: this.$moment().format('YYYY-MM-DD HH:mm:ss') | |||
|       } | |||
|       const params = { | |||
|         jsonText: jsonText, | |||
|         ...dataForm | |||
|       } | |||
|       return this.$http.post('/case/update', params) | |||
|     } | |||
|   } | |||
| } | |||
| </script> | |||
| 
 | |||
| <style lang="scss" scoped> | |||
| .flex{ | |||
|   display: flex; | |||
| } | |||
| .a-c{ | |||
|   align-items: center; | |||
| } | |||
| table{ | |||
|   width: 100%; | |||
|   margin-top: 20px; | |||
|   font-size: 16px; | |||
|   .table_title{ | |||
|     font-size: 22px !important; | |||
|   } | |||
|   tr td{ | |||
|     border: 1px solid #ccc; | |||
|     text-align: center; | |||
|     padding: 10px; | |||
|   } | |||
| } | |||
| ::v-deep .el-input__inner { | |||
|   border: none; | |||
|   height: 26px !important; | |||
|   line-height: 26px !important; | |||
|   text-align: center; | |||
| } | |||
| 
 | |||
| ::v-deep .el-input__inner { | |||
|   border-bottom: 1px solid #ccc; | |||
|   border-radius: 0; | |||
|   padding: 0; | |||
| } | |||
| ::v-deep .el-input__prefix { | |||
|   display: none; | |||
| } | |||
| </style> | |||
| @ -1,117 +1,118 @@ | |||
| // system入口
 | |||
| import Vue from 'vue' | |||
| import Element from 'element-ui' | |||
| import Vue from "vue"; | |||
| import Element from "element-ui"; | |||
| // import 'lib-flexible/flexible'
 | |||
| import App from './App.vue' | |||
| import router from './router' | |||
| import store from './store' | |||
| import http from './utils/request' | |||
| import jQuery from 'jquery' | |||
| import 'element-ui/lib/theme-chalk/index.css' | |||
| import '@/icons' | |||
| import '@/assets/scss/aui.scss' | |||
| import '@/assets/scss/reset.scss' | |||
| import i18n from '@/i18n' | |||
| import * as filters from '@/filters' | |||
| import renRadioGroup from '@/components/ren-radio-group' | |||
| import renDeptTree from '@/components/ren-dept-tree' | |||
| import { hasPermission, getDictLabel } from '@/utils' | |||
| import cloneDeep from 'lodash/cloneDeep' | |||
| import 'xe-utils' | |||
| import VXETable from 'vxe-table' | |||
| import 'vxe-table/lib/index.css' | |||
| import App from "./App.vue"; | |||
| import router from "./router"; | |||
| import store from "./store"; | |||
| import http from "./utils/request"; | |||
| import jQuery from "jquery"; | |||
| import "element-ui/lib/theme-chalk/index.css"; | |||
| import "@/icons"; | |||
| import "@/assets/scss/aui.scss"; | |||
| import "@/assets/scss/reset.scss"; | |||
| import i18n from "@/i18n"; | |||
| import * as filters from "@/filters"; | |||
| import renRadioGroup from "@/components/ren-radio-group"; | |||
| import renDeptTree from "@/components/ren-dept-tree"; | |||
| import { hasPermission, getDictLabel } from "@/utils"; | |||
| import cloneDeep from "lodash/cloneDeep"; | |||
| import "xe-utils"; | |||
| import VXETable from "vxe-table"; | |||
| import "vxe-table/lib/index.css"; | |||
| // import echarts from 'echarts'
 | |||
| import * as echarts from 'echarts' | |||
| import moment from 'moment' | |||
| import VueChatScroll from 'vue-chat-scroll' | |||
| import * as echarts from "echarts"; | |||
| import moment from "moment"; | |||
| import VueChatScroll from "vue-chat-scroll"; | |||
| import "default-passive-events"; | |||
| 
 | |||
| // import jsNSV from '@/utils/js-NSV.js'
 | |||
| 
 | |||
| import Base64 from '@/utils/base64.js' | |||
| Vue.prototype.$Base64 = Base64 | |||
| import Base64 from "@/utils/base64.js"; | |||
| Vue.prototype.$Base64 = Base64; | |||
| 
 | |||
| import Print from 'vue-print-nb' | |||
| Vue.use(Print) | |||
| import Print from "vue-print-nb"; | |||
| Vue.use(Print); | |||
| 
 | |||
| import { confirm } from '@/utils/confirm' | |||
| Vue.prototype.$confirmFun = confirm | |||
| import { confirm } from "@/utils/confirm"; | |||
| Vue.prototype.$confirmFun = confirm; | |||
| 
 | |||
| // import VueDragResize from 'vue-drag-resize'
 | |||
| // Vue.component('vue-drag-resize', VueDragResize)
 | |||
| 
 | |||
| // 裁切工具
 | |||
| import VueCropper from 'vue-cropper' | |||
| Vue.use(VueCropper) | |||
| import VueCropper from "vue-cropper"; | |||
| Vue.use(VueCropper); | |||
| 
 | |||
| import Recorder from 'js-audio-recorder' | |||
| import Recorder from "js-audio-recorder"; | |||
| const recorder = new Recorder({ | |||
|   sampleBits: 16, // 采样位数,支持 8 或 16,默认是16
 | |||
|   sampleRate: 16000, // 采样率,支持 11025、16000、22050、24000、44100、48000,根据浏览器默认值,我的chrome是48000
 | |||
|   numChannels: 1 // 声道,支持 1 或 2, 默认是1
 | |||
| // compiling: false,(0.x版本中生效,1.x增加中)  // 是否边录边转换,默认是false
 | |||
| }) | |||
| Vue.prototype.$recorder = recorder | |||
|   numChannels: 1, // 声道,支持 1 或 2, 默认是1
 | |||
|   // compiling: false,(0.x版本中生效,1.x增加中)  // 是否边录边转换,默认是false
 | |||
| }); | |||
| Vue.prototype.$recorder = recorder; | |||
| 
 | |||
| // 全局监听DOM元素
 | |||
| import ElementResizeDetectorMaker from 'element-resize-detector' | |||
| Vue.prototype.$erd = ElementResizeDetectorMaker() | |||
| import ElementResizeDetectorMaker from "element-resize-detector"; | |||
| Vue.prototype.$erd = ElementResizeDetectorMaker(); | |||
| 
 | |||
| import animejs from 'animejs' | |||
| Vue.prototype.$anime = animejs | |||
| import animejs from "animejs"; | |||
| Vue.prototype.$anime = animejs; | |||
| 
 | |||
| moment.locale('zh-cn') // 设置语言 或 moment.lang('zh-cn');
 | |||
| moment.locale("zh-cn"); // 设置语言 或 moment.lang('zh-cn');
 | |||
| 
 | |||
| Vue.use(Element, { | |||
|   size: 'default', | |||
|   i18n: (key, value) => i18n.t(key, value) | |||
| }) | |||
|   size: "default", | |||
|   i18n: (key, value) => i18n.t(key, value), | |||
| }); | |||
| 
 | |||
| Object.keys(filters).forEach(key => { | |||
|   Vue.filter(key, filters[key]) | |||
| }) | |||
| Object.keys(filters).forEach((key) => { | |||
|   Vue.filter(key, filters[key]); | |||
| }); | |||
| 
 | |||
| // 全局组件
 | |||
| Vue.use(renRadioGroup) | |||
| Vue.use(renDeptTree) | |||
| Vue.use(VueChatScroll) | |||
| Vue.use(VXETable) | |||
| Vue.use(renRadioGroup); | |||
| Vue.use(renDeptTree); | |||
| Vue.use(VueChatScroll); | |||
| Vue.use(VXETable); | |||
| 
 | |||
| // DICOM
 | |||
| import cornerstone from 'cornerstone-core' | |||
| import cornerstoneMath from 'cornerstone-math' | |||
| import cornerstoneTools from 'cornerstone-tools' | |||
| import Hammer from 'hammerjs' | |||
| import dicomParser from 'dicom-parser' | |||
| import cornerstoneWADOImageLoader from 'cornerstone-wado-image-loader' | |||
| import cornerstoneWebImageLoader from 'cornerstone-web-image-loader' | |||
| 
 | |||
| cornerstoneTools.external.cornerstone = cornerstone | |||
| cornerstoneTools.external.Hammer = Hammer | |||
| cornerstoneTools.external.cornerstoneMath = cornerstoneMath | |||
| cornerstoneWADOImageLoader.external.dicomParser = dicomParser | |||
| cornerstoneWADOImageLoader.external.cornerstoneMath = cornerstoneMath | |||
| cornerstoneWADOImageLoader.external.cornerstone = cornerstone | |||
| cornerstoneWebImageLoader.external.cornerstone = cornerstone | |||
| cornerstone.registerImageLoader('http', cornerstoneWADOImageLoader.loadImage) | |||
| cornerstone.registerImageLoader('https', cornerstoneWADOImageLoader.loadImage) | |||
| cornerstone.registerImageLoader('http', cornerstoneWebImageLoader.loadImage) | |||
| Vue.prototype.$cornerstone = cornerstone | |||
| Vue.prototype.$cornerstoneTools = cornerstoneTools | |||
| import cornerstone from "cornerstone-core"; | |||
| import cornerstoneMath from "cornerstone-math"; | |||
| import cornerstoneTools from "cornerstone-tools"; | |||
| import Hammer from "hammerjs"; | |||
| import dicomParser from "dicom-parser"; | |||
| import cornerstoneWADOImageLoader from "cornerstone-wado-image-loader"; | |||
| import cornerstoneWebImageLoader from "cornerstone-web-image-loader"; | |||
| 
 | |||
| cornerstoneTools.external.cornerstone = cornerstone; | |||
| cornerstoneTools.external.Hammer = Hammer; | |||
| cornerstoneTools.external.cornerstoneMath = cornerstoneMath; | |||
| cornerstoneWADOImageLoader.external.dicomParser = dicomParser; | |||
| cornerstoneWADOImageLoader.external.cornerstoneMath = cornerstoneMath; | |||
| cornerstoneWADOImageLoader.external.cornerstone = cornerstone; | |||
| cornerstoneWebImageLoader.external.cornerstone = cornerstone; | |||
| cornerstone.registerImageLoader("http", cornerstoneWADOImageLoader.loadImage); | |||
| cornerstone.registerImageLoader("https", cornerstoneWADOImageLoader.loadImage); | |||
| cornerstone.registerImageLoader("http", cornerstoneWebImageLoader.loadImage); | |||
| Vue.prototype.$cornerstone = cornerstone; | |||
| Vue.prototype.$cornerstoneTools = cornerstoneTools; | |||
| 
 | |||
| // 挂载全局
 | |||
| Vue.prototype.$http = http | |||
| Vue.prototype.$ = jQuery | |||
| Vue.prototype.$hasPermission = hasPermission | |||
| Vue.prototype.$getDictLabel = getDictLabel | |||
| Vue.prototype.$moment = moment | |||
| Vue.prototype.$echarts = echarts | |||
| 
 | |||
| Vue.config.productionTip = false | |||
| Vue.prototype.$http = http; | |||
| Vue.prototype.$ = jQuery; | |||
| Vue.prototype.$hasPermission = hasPermission; | |||
| Vue.prototype.$getDictLabel = getDictLabel; | |||
| Vue.prototype.$moment = moment; | |||
| Vue.prototype.$echarts = echarts; | |||
| 
 | |||
| Vue.config.productionTip = false; | |||
| // 保存整站vuex本地储存初始状态
 | |||
| window.SITE_CONFIG.storeState = cloneDeep(store.state) | |||
| window.SITE_CONFIG.storeState = cloneDeep(store.state); | |||
| new Vue({ | |||
|   i18n, | |||
|   router, | |||
|   store, | |||
|   render: h => h(App) | |||
| }).$mount('#app') | |||
|   render: (h) => h(App), | |||
| }).$mount("#app"); | |||
|  | |||
| @ -0,0 +1,341 @@ | |||
| <template> | |||
|   <div id="operation-record" style=" background: #fff; padding: 10px 20px 50px 20px;page-break-after:always"> | |||
|     <div class="btnBox"> | |||
|       <el-button v-print="'#threeFunc'" size="small">打印</el-button> | |||
|       <el-button type="primary" size="small" @click="handleSaveTable">保存</el-button> | |||
|     </div> | |||
|     <div id="threeFunc" style="width: 840px;padding-right: 8px"> | |||
|       <p style="color:#000000;font-size:32px;margin:0 0 30px 0;text-align:center;"> | |||
|         眼科激光手术患者知情同意书 | |||
|       </p> | |||
|       <!--患者信息--> | |||
|       <div class="flex"> | |||
|         <div class="flex a-c item">姓名:<el-input v-model="patient.patientName" style="flex: 1" placeholder="" /></div> | |||
|         <div class="flex a-c item">年龄:<el-input v-model="patient.age" style="flex: 1" placeholder="" />岁</div> | |||
|         <div class="flex a-c item">性别:<el-input v-model="patient.sex" style="flex: 1" placeholder="" /></div> | |||
|         <div class="flex a-c item">眼别:<el-input v-model="patient.eyeLevel" style="flex: 1" placeholder="" /></div> | |||
|       </div> | |||
|       <!--术前判断--> | |||
|       <div> | |||
|         <div class="formTitle"> | |||
|           一、术前诊断: | |||
|         </div> | |||
|         <div v-for="(item, index) in judgement" :key="index" class="judgeItem"> | |||
|           {{ `${index+1}. ${item.name}:` }} | |||
|           <el-input v-if="item.isEdit" v-model="item.remark" style="flex: 1" /> | |||
|           <template v-else> | |||
|             <div v-for="(judge,idx) in item.symptom" :key="idx" class="flex a-c"> | |||
|               <el-checkbox v-model="judge.isSelected" class="checkboxItem" /> | |||
|               {{ judge.title }} | |||
|               <el-input v-if="judge.isEdit" v-model="judge.remark" style="flex: 1" /> | |||
|             </div> | |||
|           </template> | |||
|         </div> | |||
|       </div> | |||
|       <!--麻醉方式选择--> | |||
|       <div> | |||
|         <div class="formTitle">二、麻醉方式选择:</div> | |||
|         <div class="flex"> | |||
|           <div v-for="(sel,i) in modeSelect" :key="i" style="margin-right: 30px"><el-checkbox v-model="sel.isSelected" class="checkboxItem" />{{ sel.name }}</div> | |||
|         </div> | |||
|       </div> | |||
|       <!--拟行激光术名称--> | |||
|       <div> | |||
|         <div class="formTitle">三、拟行激光术名称:</div> | |||
|         <div class="proposed"> | |||
|           <div v-for="(item,i) in proposedName" :key="i" style="margin-right: 35px"><el-checkbox v-model="item.isSelected" class="checkboxItem" /> | |||
|             {{ item.name }} | |||
|             <span v-if="item.area">( | |||
|               <span v-for="(area,index) in item.area" :key="`${index}_${i}`" class="areaItem"><el-checkbox v-model="area.isSelected" class="checkboxItem" />{{ area.name }}</span> | |||
|               )</span> | |||
|           </div> | |||
|         </div> | |||
|       </div> | |||
|       <!--      术中可能发生的并发症及处理--> | |||
|       <div> | |||
|         <div class="formTitle">四、术中可能发生的并发症及处理:</div> | |||
|         <div v-for="(item,index) in intraoperation" :key="index"> | |||
|           {{ `${index+1}. ${item}` }} | |||
|         </div> | |||
|       </div> | |||
|       <!--      术后视力预后--> | |||
|       <div> | |||
|         <div class="formTitle">五、术后视力预后</div> | |||
|         <div>取决于眼内情况,若眼底条件太差或者出现并发症,激光治疗后视力可能恢复不良。</div> | |||
|       </div> | |||
|       <!--      术后可能发生下列并发症--> | |||
|       <div> | |||
|         <div class="formTitle">六、术后可能发生下列并发症</div> | |||
|         <div class="proposed"> | |||
|           <div v-for="(post,idx) in postoperative" :key="idx" class="postItem" style="margin-right: 30px"> | |||
|             {{ `${idx+1},${post}` }} | |||
|           </div> | |||
|         </div> | |||
|         <div class="btnBox"> | |||
|           <div> | |||
|             <div class="flex a-c">主诊/谈话医生签名:<el-input v-model="doctor.name" style="flex: 1" /></div> | |||
|             <div class="flex a-c">日期:<el-input v-model="doctor.dateTime" style="flex: 1" /></div> | |||
|           </div> | |||
|         </div> | |||
|       </div> | |||
|       <!--      术前患者--> | |||
|       <div> | |||
|         <div class="formTitle">七、术前患者(或家属、单位意见):</div> | |||
|         <div class="proposed"> | |||
|           医生已和我详细讨论了治疗计划、手术方式、治疗目的以及术后可能的效果。我已详细阅读以上内容,并完全理解和接受手术可能出现的风险和并发症,我同意医生的治疗并接受手术。 | |||
|         </div> | |||
|         <div class="btnBox"> | |||
|           <div> | |||
|             <div class="flex a-c">患者或直系亲属签名:<el-input v-model="patientInfo.name" style="flex: 1" /></div> | |||
|             <div class="flex a-c">日期:<el-input v-model="patientInfo.dateTime" style="flex: 1" /></div> | |||
|           </div> | |||
|         </div> | |||
|       </div> | |||
|     </div> | |||
|   </div> | |||
| </template> | |||
| 
 | |||
| <script> | |||
| export default { | |||
|   name: 'InformedConsent', | |||
|   data() { | |||
|     return { | |||
|       // 患者信息 | |||
|       patient: { | |||
|         patientName: '', | |||
|         age: '', | |||
|         sex: '', | |||
|         eyeLevel: '' | |||
|       }, | |||
|       // 主诊医生 | |||
|       doctor: { | |||
|         name: '', | |||
|         dateTime: '' | |||
|       }, | |||
|       patientInfo: { | |||
|         name: '', | |||
|         dateTime: '' | |||
|       }, | |||
|       // 术前判断 | |||
|       judgement: [ | |||
|         { | |||
|           name: '白内障', | |||
|           symptom: [{ | |||
|             title: '后发性', | |||
|             isSelected: false | |||
|           }, { | |||
|             title: '其他', | |||
|             isSelected: false, | |||
|             isEdit: true, | |||
|             remark: '' | |||
|           }] | |||
|         }, { | |||
|           name: '青光眼', | |||
|           symptom: [{ | |||
|             title: '闭角型', | |||
|             isSelected: false | |||
|           }, { | |||
|             title: '开角型', | |||
|             isSelected: false | |||
|           }, { | |||
|             title: '其他', | |||
|             isSelected: false, | |||
|             remark: '', | |||
|             isEdit: true | |||
|           }] | |||
|         }, { | |||
|           name: '眼底病', | |||
|           symptom: [{ | |||
|             title: '糖尿病视网膜病变', | |||
|             isSelected: false | |||
|           }, { | |||
|             title: '视网膜裂孔', | |||
|             isSelected: false | |||
|           }, { | |||
|             title: '视网膜变性', | |||
|             isSelected: false | |||
|           }, { | |||
|             title: '黄斑部疾病', | |||
|             isSelected: false | |||
|           }, { | |||
|             title: '其他', | |||
|             isSelected: false, | |||
|             isEdit: true, | |||
|             remark: '' | |||
|           }] | |||
|         }, { | |||
|           name: '视网膜血管性病变', | |||
|           symptom: [{ | |||
|             title: '视网膜静脉阻塞(中央)', | |||
|             isSelected: false | |||
|           }, { | |||
|             title: '视网膜静脉阻塞(分支)', | |||
|             isSelected: false | |||
|           }, { | |||
|             title: '视网膜静脉周围炎', | |||
|             isSelected: false | |||
|           }] | |||
|         }, { | |||
|           name: "Coat's 病", | |||
|           symptom: [{ | |||
|             title: '', | |||
|             isSelected: false | |||
|           }] | |||
|         }, { | |||
|           name: '其他', | |||
|           isEdit: true, | |||
|           remark: '', | |||
|           symptom: [] | |||
|         } | |||
|       ], | |||
|       // 麻醉方式选择 | |||
|       modeSelect: [ | |||
|         { | |||
|           name: '表麻', | |||
|           isSelected: false | |||
|         }, { | |||
|           name: '局麻', | |||
|           isSelected: false | |||
|         }, { | |||
|           name: '局麻+镇静', | |||
|           isSelected: false | |||
|         }, { | |||
|           name: '基础麻醉', | |||
|           isSelected: false | |||
|         }, { | |||
|           name: '其他', | |||
|           isSelected: false, | |||
|           isEdit: true, | |||
|           remark: '' | |||
|         } | |||
|       ], | |||
|       // 拟行激光术名称 | |||
|       proposedName: [ | |||
|         { | |||
|           name: '激光后囊切开术', | |||
|           isSelected: false | |||
|         }, { | |||
|           name: '激光前囊切开术', | |||
|           isSelected: false | |||
|         }, { | |||
|           name: '激光周边虹膜切除', | |||
|           isSelected: false | |||
|         }, { | |||
|           name: '激光房角成形术', | |||
|           isSelected: false | |||
|         }, { | |||
|           name: '激光睫状体光凝术', | |||
|           isSelected: false | |||
|         }, { | |||
|           name: '激光断线', | |||
|           isSelected: false | |||
|         }, { | |||
|           name: '视网膜光凝术', | |||
|           isSelected: false, | |||
|           area: [{ | |||
|             name: '局部', | |||
|             isSelected: false | |||
|           }, { | |||
|             name: '全', | |||
|             isSelected: false | |||
|           }, { | |||
|             name: '黄斑区', | |||
|             isSelected: false | |||
|           }] | |||
|         }, { | |||
|           name: '激光瞳孔成形术', | |||
|           isSelected: false | |||
|         }, { | |||
|           name: '激光瞳孔残膜切开术', | |||
|           isSelected: false | |||
|         }, { | |||
|           name: '激光虹膜黏连剖除术', | |||
|           isSelected: false | |||
|         }, { | |||
|           name: '玻璃体条索切开术', | |||
|           isSelected: false | |||
|         }, { | |||
|           name: '激光倒睫术', | |||
|           isSelected: false | |||
|         }, { | |||
|           name: '其他', | |||
|           isSelected: false | |||
|         } | |||
|       ], | |||
|       // 术中 | |||
|       intraoperation: ['麻醉意外:需进行抢救或暂停手术', '出血:需要压迫止血,推迟或暂停手术', '其他无法预计的并发症', '术中可能会根据具体情况变更手术方式'], | |||
|       postoperative: ['暂时性眼压升高', '损伤人工晶体', '角膜内皮损伤', '虹膜炎症反应', '玻璃体前界膜破裂', '视功能损伤', '渗出性视网膜脱离', '黄斑水肿', '脉络膜脱离', '虹膜(视网膜、脉络膜)出血', '其他'] | |||
|     } | |||
|   }, | |||
|   methods: { | |||
|     handleSaveTable() { | |||
|       const data = { | |||
|         patient: this.patient, | |||
|         doctor: this.doctor, | |||
|         patientInfo: this.patientInfo, | |||
|         judgement: this.judgement, | |||
|         modeSelect: this.modeSelect, | |||
|         proposedName: this.proposedName | |||
|       } | |||
|       console.log(data) | |||
|       this.$emit('save', data) | |||
|     } | |||
|   } | |||
| } | |||
| </script> | |||
| 
 | |||
| <style lang="scss" scoped> | |||
| .flex{ | |||
|   display: flex; | |||
| } | |||
| .a-c{ | |||
|   align-items: center; | |||
| } | |||
| .item{ | |||
|   &:not(:last-child){ | |||
|     margin-right: 15px; | |||
|   } | |||
| } | |||
| .formTitle{ | |||
|   font-weight: bold; | |||
|   margin-top: 10px; | |||
| } | |||
| .areaItem{ | |||
|   &:not(:last-child){ | |||
|     margin-right: 10px; | |||
|   } | |||
| } | |||
| .judgeItem{ | |||
|   display: flex; | |||
|   align-items: center; | |||
|   div{ | |||
|     margin: 0 5px; | |||
|   } | |||
| } | |||
| .checkboxItem{ | |||
|   margin-right: 5px; | |||
| } | |||
| .proposed{ | |||
|   display: flex; | |||
|   flex-wrap: wrap; | |||
| } | |||
| .btnBox{ | |||
|   display: flex; | |||
|   justify-content: flex-end; | |||
| } | |||
| ::v-deep .el-input__inner { | |||
|   border: none; | |||
|   height: 26px !important; | |||
|   line-height: 26px !important; | |||
|   text-align: center; | |||
| } | |||
| 
 | |||
| ::v-deep .el-input__inner { | |||
|   border-bottom: 1px solid #ccc; | |||
|   border-radius: 0; | |||
|   padding: 0; | |||
| } | |||
| ::v-deep .el-input__prefix { | |||
|   display: none; | |||
| } | |||
| </style> | |||
| @ -0,0 +1,609 @@ | |||
| <template> | |||
|   <div id="operation-record" style=" background: #fff; padding: 10px 20px 50px 20px;page-break-after:always"> | |||
|     <div class="btnBox"> | |||
|       <el-button v-print="'#threeFunc'" size="small">打印</el-button> | |||
|       <el-button type="primary" size="small" @click="handleSaveTable">保存</el-button> | |||
|     </div> | |||
|     <div id="threeFunc" style="width: 840px;padding-right: 8px"> | |||
|       <p style="color:#000000;font-size:32px;margin:0 0 30px 0;text-align:center;"> | |||
|         青少年儿童屈光发育档案 | |||
|       </p> | |||
|       <div class="operation-record-table"> | |||
|         <el-table :data="headData" :span-method="headSpanMethod" border style="width: 820px; margin-top: 20px"> | |||
|           <el-table-column label="" width="" align="center" :resizable="false"> | |||
|             <template slot-scope="scope"> | |||
|               <span>{{ scope.row.name }}</span> | |||
|             </template> | |||
|           </el-table-column> | |||
|           <el-table-column label="" width="" :resizable="false" prop="type"> | |||
|             <template slot-scope="scope"> | |||
|               <div v-if="scope.row.name == '姓名'"> | |||
|                 <div class="width-100 center"> | |||
|                   <el-input v-model="scope.row.patientName" placeholder="" /> | |||
|                 </div> | |||
|               </div> | |||
|               <div v-if="scope.row.name == '身高'"> | |||
|                 <div class="width-100 center"> | |||
|                   <el-input v-model="scope.row.height" placeholder="" /> | |||
|                 </div> | |||
|               </div> | |||
|               <div v-if="scope.row.name == '是否戴镜'"> | |||
|                 <div class="width-100 center"> | |||
|                   <el-input v-model="scope.row.isMirror" placeholder="" /> | |||
|                 </div> | |||
|               </div> | |||
|             </template> | |||
|           </el-table-column> | |||
|           <el-table-column label="" width="" :resizable="false"> | |||
|             <template slot-scope="scope"> | |||
|               <div v-if="scope.row.name == '姓名'"> | |||
|                 <div class="width-100 center"> | |||
|                   性别 | |||
|                 </div> | |||
|               </div> | |||
|               <div v-if="scope.row.name == '身高'"> | |||
|                 <div class="width-100 center"> | |||
|                   体重 | |||
|                 </div> | |||
|               </div> | |||
|               <div v-if="scope.row.name == '是否戴镜'"> | |||
|                 <div class="width-100 center"> | |||
|                   戴镜习惯 | |||
|                 </div> | |||
|               </div> | |||
|             </template> | |||
|           </el-table-column> | |||
|           <el-table-column label="" width="" :resizable="false"> | |||
|             <template slot-scope="scope"> | |||
|               <div v-if="scope.row.name == '姓名'"> | |||
|                 <div class="width-100 center"> | |||
|                   <el-input v-model="scope.row.sex" placeholder="" /> | |||
|                 </div> | |||
|               </div> | |||
|               <div v-if="scope.row.name == '身高'"> | |||
|                 <div class="width-100 center"> | |||
|                   <el-input v-model="scope.row.weight" placeholder="" /> | |||
|                 </div> | |||
|               </div> | |||
|               <div v-if="scope.row.name == '是否戴镜'"> | |||
|                 <div class="width-100 center"> | |||
|                   <el-input v-model="scope.row.mirrorHabit" placeholder="" /> | |||
|                 </div> | |||
|               </div> | |||
|             </template> | |||
|           </el-table-column> | |||
|           <el-table-column label="" width="" :resizable="false"> | |||
|             <template slot-scope="scope"> | |||
|               <div v-if="scope.row.name == '姓名'"> | |||
|                 <div class="width-100 center"> | |||
|                   出生日期 | |||
|                 </div> | |||
|               </div> | |||
|               <div v-if="scope.row.name == '身高'"> | |||
|                 <div class="width-100 center"> | |||
|                   何时发现视力下降 | |||
|                 </div> | |||
|               </div> | |||
|             </template> | |||
|           </el-table-column> | |||
|           <el-table-column label="" width="" :resizable="false"> | |||
|             <template slot-scope="scope"> | |||
|               <div v-if="scope.row.name == '姓名'"> | |||
|                 <div class="width-100 center"> | |||
|                   <el-input v-model="scope.row.birthday" placeholder="" /> | |||
|                 </div> | |||
|               </div> | |||
|               <div v-if="scope.row.name == '身高'"> | |||
|                 <div class="width-100 center"> | |||
|                   <el-input v-model="scope.row.time" placeholder="" /> | |||
|                 </div> | |||
|               </div> | |||
|             </template> | |||
|           </el-table-column> | |||
|         </el-table> | |||
|         <el-table :data="tableData" :span-method="objectSpanMethod" border style="width: 820px"> | |||
|           <el-table-column label="" width="" align="center" :resizable="false"> | |||
|             <template slot-scope="scope"> | |||
|               <span>{{ scope.row.name }}</span> | |||
|             </template> | |||
|           </el-table-column> | |||
|           <el-table-column label="" width="" :resizable="false" prop="type"> | |||
|             <template slot-scope="scope"> | |||
|               <div v-if="scope.row.name == '戴镜类型'"> | |||
|                 <div class="width-180 center"> | |||
|                   <el-checkbox-group v-model="scope.row.mirrorType"> | |||
|                     <el-checkbox label="框架" /> | |||
|                     <el-checkbox label="OK镜" /> | |||
|                     <el-checkbox label="RGP" /> | |||
|                     <el-checkbox label="软镜" /> | |||
|                   </el-checkbox-group> | |||
|                 </div> | |||
|               </div> | |||
|               <div v-if="scope.row.name == '旧镜参数'"> | |||
|                 <div class="width-120 center"> | |||
|                   OD:<el-input v-model="scope.row.od" placeholder="" /> | |||
|                 </div> | |||
|               </div> | |||
|               <div v-if="scope.row.name == '父母是否近视'"> | |||
|                 <div class="width-180 center"> | |||
|                   <el-checkbox-group v-model="scope.row.shortsighte"> | |||
|                     <el-checkbox label="父亲" /> | |||
|                     <el-checkbox label="母亲" /> | |||
|                     <el-checkbox label="父亲和母亲" /> | |||
|                     <el-checkbox label="均无" /> | |||
|                   </el-checkbox-group> | |||
|                 </div> | |||
|               </div> | |||
|               <div v-if="scope.row.name == '户外活动时间'"> | |||
|                 <div class="width-180 center"> | |||
|                   <el-checkbox-group v-model="scope.row.outTime"> | |||
|                     <el-checkbox label="<1h" /> | |||
|                     <el-checkbox label="1h-2h" /> | |||
|                     <el-checkbox label=">2h" /> | |||
|                   </el-checkbox-group> | |||
|                 </div> | |||
|               </div> | |||
|               <div v-if="scope.row.name == '备注'"> | |||
|                 <div class="width-180 center"> | |||
|                   <el-input v-model="scope.row.note" placeholder="" /> | |||
|                 </div> | |||
|               </div> | |||
|               <div v-if="scope.row.name == '项目'"> | |||
|                 <div class="width-180 center"> | |||
|                   OD | |||
|                 </div> | |||
|               </div> | |||
|               <div v-if="scope.row.name == '裸眼/旧镜视力'"> | |||
|                 <div class="width-180 center"> | |||
|                   <el-input v-model="scope.row.od" placeholder="" /> | |||
|                 </div> | |||
|               </div> | |||
|               <div v-if="scope.row.name == '是否散瞳'"> | |||
|                 <div class="width-180 center"> | |||
|                   <el-checkbox-group v-model="scope.row.mydriasis"> | |||
|                     <el-checkbox label="未散瞳" /> | |||
|                     <el-checkbox label="美多丽" /> | |||
|                     <el-checkbox label="阿托品" /> | |||
|                     <el-checkbox label="其他" /> | |||
|                   </el-checkbox-group> | |||
|                 </div> | |||
|               </div> | |||
|               <div v-if="scope.row.name == '主觉验光'"> | |||
|                 <div class="width-180 center"> | |||
|                   <el-input v-model="scope.row.od" placeholder="" style="width: 100px" /> | |||
|                 </div> | |||
|               </div> | |||
|               <div v-if="scope.row.name == '眼位'"> | |||
|                 <div class="width-180 center"> | |||
|                   <el-input v-model="scope.row.od" placeholder="" /> | |||
|                 </div> | |||
|               </div> | |||
|               <div v-if="scope.row.name == '眼压/mmHg'"> | |||
|                 <div class="width-180 center"> | |||
|                   <el-input v-model="scope.row.od" placeholder="" /> | |||
|                 </div> | |||
|               </div> | |||
|               <div v-if="scope.row.name == '角膜曲率/D'"> | |||
|                 <div class="width-180 center"> | |||
|                   <el-input v-model="scope.row.od" placeholder="" /> | |||
|                 </div> | |||
|               </div> | |||
|               <div v-if="scope.row.name == '角膜厚度/μm'"> | |||
|                 <div class="width-180 center"> | |||
|                   <el-input v-model="scope.row.od" placeholder="" /> | |||
|                 </div> | |||
|               </div> | |||
|               <div v-if="scope.row.name == '处方'"> | |||
|                 <div class="width-180 center"> | |||
|                   <el-input v-model="scope.row.od" placeholder="" /> | |||
|                 </div> | |||
|               </div> | |||
|               <div v-if="scope.row.name == '建议'"> | |||
|                 <div class="width-180 center"> | |||
|                   <el-checkbox-group v-model="scope.row.suggest"> | |||
|                     <el-checkbox label="框架" /> | |||
|                     <el-checkbox label="OK镜" /> | |||
|                     <el-checkbox label="RGP" /> | |||
|                     <el-checkbox label="软镜" /> | |||
|                     <el-checkbox label="其他" /> | |||
|                   </el-checkbox-group> | |||
|                 </div> | |||
|               </div> | |||
|               <div v-if="scope.row.name == '眼轴/眼底照/地形图'"> | |||
|                 <div class="width-180 center"> | |||
|                   <el-input v-model="scope.row.type" placeholder="" /> | |||
|                 </div> | |||
|               </div> | |||
|             </template> | |||
|           </el-table-column> | |||
|           <el-table-column label="" width="" :resizable="false"> | |||
|             <template slot-scope="scope"> | |||
|               <div v-if="scope.row.name == '旧镜参数'"> | |||
|                 <div class="width-120 center"> | |||
|                   OS:<el-input v-model="scope.row.os" placeholder="" /> | |||
|                 </div> | |||
|               </div> | |||
|               <div v-if="scope.row.name == '项目'"> | |||
|                 <div class="width-180 center"> | |||
|                   OS | |||
|                 </div> | |||
|               </div> | |||
|               <div v-if="scope.row.name == '裸眼/旧镜视力'"> | |||
|                 <div class="width-180 center"> | |||
|                   <el-input v-model="scope.row.os" placeholder="" /> | |||
|                 </div> | |||
|               </div> | |||
|               <div v-if="scope.row.name == '主觉验光'"> | |||
|                 <div class="width-180 center"> | |||
|                   <el-input v-model="scope.row.os" placeholder="" style="width: 100px" /> | |||
|                 </div> | |||
|               </div> | |||
|               <div v-if="scope.row.name == '眼位'"> | |||
|                 <div class="width-180 center"> | |||
|                   <el-input v-model="scope.row.os" placeholder="" /> | |||
|                 </div> | |||
|               </div> | |||
|               <div v-if="scope.row.name == '眼压/mmHg'"> | |||
|                 <div class="width-180 center"> | |||
|                   <el-input v-model="scope.row.os" placeholder="" /> | |||
|                 </div> | |||
|               </div> | |||
|               <div v-if="scope.row.name == '角膜曲率/D'"> | |||
|                 <div class="width-180 center"> | |||
|                   <el-input v-model="scope.row.os" placeholder="" /> | |||
|                 </div> | |||
|               </div> | |||
|               <div v-if="scope.row.name == '角膜厚度/μm'"> | |||
|                 <div class="width-180 center"> | |||
|                   <el-input v-model="scope.row.os" placeholder="" /> | |||
|                 </div> | |||
|               </div> | |||
|               <div v-if="scope.row.name == '处方'"> | |||
|                 <div class="width-180 center"> | |||
|                   <el-input v-model="scope.row.os" placeholder="" /> | |||
|                 </div> | |||
|               </div> | |||
|             </template> | |||
|           </el-table-column> | |||
|         </el-table> | |||
|       </div> | |||
|     </div> | |||
|   </div> | |||
| </template> | |||
| <script> | |||
| export default { | |||
|   props: { | |||
|     archiveCaseCRFItem: { | |||
|       type: Object, | |||
|       default: () => { } | |||
|     }, | |||
|     formContent: { | |||
|       type: Object, | |||
|       default: () => { } | |||
|     } | |||
|   }, | |||
|   data() { | |||
|     return { | |||
|       dataForm: { | |||
|         yghcValue: '', | |||
|         operationListValueOD: [] | |||
|       }, | |||
|       headData: [ | |||
|         { | |||
|           name: '个人基础信息', | |||
|           type: '' | |||
|         }, | |||
|         { | |||
|           name: '姓名', | |||
|           patientName: '', | |||
|           sex: '', | |||
|           birthday: '', | |||
|           type: '' | |||
|         }, { | |||
|           name: '身高', | |||
|           height: '', | |||
|           weight: '', | |||
|           time: '' | |||
|         }, { | |||
|           name: '是否戴镜', | |||
|           isMirror: '', | |||
|           mirrorHabit: '', | |||
|           type: '' | |||
|         }], | |||
|       tableData: [ | |||
|         { | |||
|           name: '戴镜类型', | |||
|           mirrorType: [] | |||
|         }, | |||
|         { | |||
|           name: '旧镜参数', | |||
|           od: '', | |||
|           os: '', | |||
|           type: '' | |||
|         }, { | |||
|           name: '父母是否近视', | |||
|           shortsighte: [] | |||
|         }, { | |||
|           name: '户外活动时间', | |||
|           outTime: [], | |||
|           type: '' | |||
|         }, { | |||
|           name: '备注', | |||
|           note: '' | |||
|         }, { | |||
|           name: '综合检查信息', | |||
|           type: '1' | |||
|         }, { | |||
|           name: '项目' | |||
|         }, { | |||
|           name: '裸眼/旧镜视力', | |||
|           od: '', | |||
|           os: '' | |||
|         }, { | |||
|           name: '是否散瞳', | |||
|           mydriasis: [] | |||
|         }, { | |||
|           name: '主觉验光', | |||
|           od: '', | |||
|           os: '', | |||
|           vaod: '', | |||
|           vaos: '', | |||
|           type: '2' | |||
|         }, { | |||
|           name: '眼位', | |||
|           od: '', | |||
|           os: '', | |||
|           type: '' | |||
|         }, { | |||
|           name: '眼压/mmHg', | |||
|           od: '', | |||
|           os: '' | |||
|         }, { | |||
|           name: '角膜曲率/D', | |||
|           od: '', | |||
|           os: '' | |||
|         }, { | |||
|           name: '角膜厚度/μm', | |||
|           od: '', | |||
|           os: '' | |||
|         }, { | |||
|           name: '处方', | |||
|           od: '', | |||
|           os: '' | |||
|         }, { | |||
|           name: '建议', | |||
|           suggest: [] | |||
|         }, { | |||
|           name: '眼轴/眼底照/地形图', | |||
|           type: '' | |||
|         }] | |||
|     } | |||
|   }, | |||
|   computed: { | |||
|     operationRecord: { | |||
|       get() { | |||
|         return this.$store.getters.operationRecord | |||
|       } | |||
|     } | |||
|   }, | |||
|   watch: { | |||
|     operationRecord: { | |||
|       handler(value) { | |||
|         console.log(value) | |||
|       }, | |||
|       deep: true, | |||
|       immediate: true | |||
|     } | |||
|   }, | |||
|   created() { | |||
|     // this.printPage('threeFunc') | |||
|   }, | |||
|   methods: { | |||
|     setData() { | |||
|       this.headData = this.formContent.a | |||
|       this.tableData = this.formContent.b | |||
|     }, | |||
|     //   签名 | |||
|     singHandle(text) { | |||
|       const value = { | |||
|         text: text, | |||
|         pageName: 'operationRecord' | |||
|       } | |||
|       this.$store.commit('beginSign', value) | |||
|     }, | |||
|     objectSpanMethod({ row, column, rowIndex, columnIndex }) { | |||
|       if (columnIndex === 0) { | |||
|         if (rowIndex === 5) { | |||
|           return { | |||
|             rowspan: 1, | |||
|             colspan: 3 | |||
|           } | |||
|         } | |||
|       } else if (columnIndex === 1) { | |||
|         if (rowIndex === 0 || rowIndex === 2 || rowIndex === 3 || rowIndex === 4 || rowIndex === 8 || rowIndex === 15 || rowIndex === 16) { | |||
|           return { | |||
|             rowspan: 1, | |||
|             colspan: 2 | |||
|           } | |||
|         } else if (rowIndex === 5) { | |||
|           return { | |||
|             rowspan: 0, | |||
|             colspan: 0 | |||
|           } | |||
|         } | |||
|       } else if (columnIndex === 2) { | |||
|         if (rowIndex === 0 || rowIndex === 2 || rowIndex === 3 || rowIndex === 4 || rowIndex === 5 || rowIndex === 8 || rowIndex === 15 || rowIndex === 16) { | |||
|           return { | |||
|             rowspan: 0, | |||
|             colspan: 0 | |||
|           } | |||
|         } | |||
|       } | |||
|     }, | |||
|     headSpanMethod({ row, column, rowIndex, columnIndex }) { | |||
|       if (columnIndex === 0) { | |||
|         if (rowIndex === 0) { | |||
|           return { | |||
|             rowspan: 1, | |||
|             colspan: 6 | |||
|           } | |||
|         } | |||
|       } else if (columnIndex === 1 || columnIndex === 3) { | |||
|         if (rowIndex === 3) { | |||
|           return { | |||
|             rowspan: 1, | |||
|             colspan: 2 | |||
|           } | |||
|         } | |||
|       } else if (columnIndex === 1 || columnIndex === 2 || columnIndex === 3 || columnIndex === 4 || columnIndex === 5) { | |||
|         if (rowIndex === 0) { | |||
|           return { | |||
|             rowspan: 0, | |||
|             colspan: 0 | |||
|           } | |||
|         } | |||
|       } | |||
|     }, | |||
|     handlePrint() { | |||
|       this.printPage('threeFunc') | |||
|     }, | |||
|     handleSaveTable() { | |||
|       const data = { | |||
|         a: this.headData, | |||
|         b: this.tableData | |||
|       } | |||
|       this.$emit('save', data) | |||
|     } | |||
|   } | |||
| } | |||
| </script> | |||
| 
 | |||
| <style lang="scss"> | |||
| 
 | |||
| #operation-record { | |||
|   //height: 93%; | |||
|   // overflow: auto; | |||
|   .btnBox{ | |||
|     display: flex; | |||
|     justify-content: flex-end; | |||
|   } | |||
|   .el-table--border{ | |||
|     border-right: 1px solid #EBEEF5; | |||
|   } | |||
|   .operation-record-table { | |||
|     //width: 100%; | |||
|     width: 840px !important; | |||
|     padding-right: 8px; | |||
|     .operation-text { | |||
|       font-weight: 700; | |||
|     } | |||
|     .text { | |||
|       font-weight: 700; | |||
|     } | |||
|     .sign { | |||
|       cursor: pointer; | |||
|       color: #46a1ff; | |||
|       font-weight: 400; | |||
|     } | |||
|   } | |||
|   .center { | |||
|     text-align: center; | |||
|   } | |||
|   .left { | |||
|     text-align: left; | |||
|   } | |||
| 
 | |||
|   .width-50 { | |||
|     .el-input { | |||
|       width: 50px; | |||
|     } | |||
|   } | |||
|   .width-70 { | |||
|     .el-input { | |||
|       width: 70px; | |||
|     } | |||
|   } | |||
| 
 | |||
|   .width-100 { | |||
|     .el-input { | |||
|       width: 100px; | |||
|     } | |||
|   } | |||
|   .width-120 { | |||
|     .el-input { | |||
|       width: 120px; | |||
|     } | |||
|   } | |||
|   .width-180 { | |||
|     .el-input { | |||
|       width: 180px; | |||
|     } | |||
|   } | |||
|   .el-input__inner { | |||
|     border: none; | |||
|     height: 26px !important; | |||
|     line-height: 26px !important; | |||
|     text-align: center; | |||
|   } | |||
| 
 | |||
|   .el-input__inner { | |||
|     border-bottom: 1px solid #ccc; | |||
|     border-radius: 0; | |||
|     padding: 0; | |||
|   } | |||
|   .el-input__prefix { | |||
|     display: none; | |||
|   } | |||
|   //.el-date-editor.el-input, | |||
|   //.el-date-editor.el-input__inner { | |||
|   //  width: 140px; | |||
|   //} | |||
|   //.el-input__suffix { | |||
|   //  top: -7px; | |||
|   //} | |||
|   //.el-checkbox__input.is-checked + .el-checkbox__label { | |||
|   //  color: #606266; | |||
|   //} | |||
|   //.el-checkbox__input.is-checked .el-checkbox__inner, | |||
|   //.el-checkbox__input.is-indeterminate .el-checkbox__inner { | |||
|   //  background: #767676; | |||
|   //  border-color: #767676; | |||
|   //} | |||
|   //.el-checkbox__inner:hover, | |||
|   //.el-checkbox__inner { | |||
|   //  border-color: #767676; | |||
|   //} | |||
|   //.el-radio__input.is-checked + .el-radio__label { | |||
|   //  color: #606266; | |||
|   //} | |||
|   //.el-radio__input.is-checked .el-radio__inner { | |||
|   //  background: #767676; | |||
|   //  border-color: #767676; | |||
|   //} | |||
|   //.el-radio { | |||
|   //  margin-right: 8px; | |||
|   //  display: block; | |||
|   //} | |||
|   //.el-radio__inner { | |||
|   //  border: 1px solid #767676 !important; | |||
|   //} | |||
|   //.el-radio__inner:hover { | |||
|   //  border-color: #767676; | |||
|   //} | |||
|   .el-table--enable-row-hover .el-table__body tr:hover>td.el-table__cell { | |||
|     background: none !important; | |||
|   } | |||
|   .has-gutter { | |||
|     display: none; | |||
|     .cell { | |||
|       font-weight: 700; | |||
|     } | |||
|     .el-table__cell { | |||
|       background: #ced4d9; | |||
|     } | |||
|   } | |||
|   .el-table__header-wrapper{ | |||
|     display: none; | |||
|   } | |||
| } | |||
| </style> | |||
| @ -0,0 +1,253 @@ | |||
| <template> | |||
|   <div id="operation-record" style=" background: #fff; padding: 10px 20px 50px 20px;page-break-after:always"> | |||
|     <div class="btnBox"> | |||
|       <el-button v-print="'#threeFunc'" size="small">打印</el-button> | |||
|       <el-button type="primary" size="small" @click="handleSaveTable">保存</el-button> | |||
|     </div> | |||
|     <div id="threeFunc" style="width: 840px;padding-right: 8px"> | |||
|       <p style="color:#000000;font-size:32px;margin:0 0 30px 0;text-align:center;"> | |||
|         眼科激光手术患者知情同意书 | |||
|       </p> | |||
|       <!--患者信息--> | |||
|       <div> | |||
|         <div class="flex"> | |||
|           <div class="flex a-c item">姓名:<el-input v-model="patient.patientName" style="flex: 1" /></div> | |||
|           <div class="flex a-c item">年龄:<el-input v-model="patient.age" style="flex: 1" />岁</div> | |||
|           <div class="flex a-c item">性别:<el-input v-model="patient.sex" style="flex: 1" /></div> | |||
|           <div class="flex a-c item">病例号:<el-input v-model="patient.caseNo" style="flex: 1" /></div> | |||
|         </div> | |||
|         <div class="flex"> | |||
|           <div class="flex a-c">联系电话:<el-input v-model="patient.phone" style="flex: 1" /></div> | |||
|           <div class="flex a-c item">家庭住址:<el-input v-model="patient.address" style="flex: 1" /></div> | |||
|         </div> | |||
|         <div class="flex a-c item">诊断:<el-input v-model="patient.diagnose" style="flex: 1" /></div> | |||
|       </div> | |||
|       <!--      治疗前--> | |||
|       <div class="subTitle">治疗前</div> | |||
|       <table class="treatAction"> | |||
|         <thead> | |||
|           <tr> | |||
|             <th colspan="2">OD</th> | |||
|             <th colspan="2">OS</th> | |||
|           </tr> | |||
|         </thead> | |||
|         <tbody> | |||
|           <tr> | |||
|             <td> | |||
|               <div class="flex a-c">{{ beforeTreat.OD.eye.name }}:<el-input v-model="beforeTreat.OD.eye.level" style="flex: 1" /></div> | |||
|               <div class="flex a-c">{{ beforeTreat.OD.illness.name }}:<el-input v-model="beforeTreat.OD.illness.desc" style="flex: 1" /></div> | |||
|             </td> | |||
|             <td> | |||
|               <div class="descImg">示意图</div> | |||
|             </td> | |||
|             <td> | |||
|               <div class="flex a-c">{{ beforeTreat.OS.eye.name }}:<el-input v-model="beforeTreat.OS.eye.level" style="flex: 1" /></div> | |||
|               <div class="flex a-c">{{ beforeTreat.OS.illness.name }}:<el-input v-model="beforeTreat.OS.illness.desc" style="flex: 1" /></div> | |||
|             </td> | |||
|             <td> | |||
|               <div class="descImg">示意图</div> | |||
|             </td> | |||
|           </tr> | |||
|         </tbody> | |||
|       </table> | |||
|       <!--      激光治疗--> | |||
|       <div class="subTitle">激光治疗</div> | |||
|       <table class="treatAction"> | |||
|         <thead> | |||
|           <tr> | |||
|             <th colspan="2">OD</th> | |||
|             <th colspan="2">OS</th> | |||
|           </tr> | |||
|         </thead> | |||
|         <tbody> | |||
|           <tr v-for="(item,index) in treatData" :key="index"> | |||
|             <td> | |||
|               <div class="flex a-c">日期:<el-input v-model="item.OD.data" style="flex: 1" /></div> | |||
|               <div class="flex a-c">次数:<el-input v-model="item.OD.order" style="flex: 1" /></div> | |||
|               <div class="flex a-c">视力:<el-input v-model="item.OD.vision" style="flex: 1" /></div> | |||
|               <div class="flex a-c">光斑大小:<el-input v-model="item.OD.flareSize" style="flex: 1" /></div> | |||
|               <div class="flex a-c">功率:<el-input v-model="item.OD.power" style="flex: 1" /></div> | |||
|               <div class="flex a-c">点数:<el-input v-model="item.OD.count" style="flex: 1" /></div> | |||
|             </td> | |||
|             <td> | |||
|               <div class="descImg">示意图</div> | |||
|             </td> | |||
|             <td> | |||
|               <div class="flex a-c">日期:<el-input v-model="item.OS.data" style="flex: 1" /></div> | |||
|               <div class="flex a-c">次数:<el-input v-model="item.OS.order" style="flex: 1" /></div> | |||
|               <div class="flex a-c">视力:<el-input v-model="item.OS.vision" style="flex: 1" /></div> | |||
|               <div class="flex a-c">光斑大小:<el-input v-model="item.OS.flareSize" style="flex: 1" /></div> | |||
|               <div class="flex a-c">功率:<el-input v-model="item.OS.power" style="flex: 1" /></div> | |||
|               <div class="flex a-c">点数:<el-input v-model="item.OS.count" style="flex: 1" /></div> | |||
|             </td> | |||
|             <td> | |||
|               <div class="descImg">示意图</div> | |||
|             </td> | |||
|           </tr> | |||
|         </tbody> | |||
|       </table> | |||
|     </div> | |||
|   </div> | |||
| </template> | |||
| 
 | |||
| <script> | |||
| export default { | |||
|   name: 'LaserSurgery', | |||
|   data() { | |||
|     return { | |||
|       // 患者信息 | |||
|       patient: { | |||
|         patientName: '', | |||
|         age: '', | |||
|         sex: '', | |||
|         caseNo: '', | |||
|         phone: '', | |||
|         address: '', | |||
|         diagnose: '' | |||
|       }, | |||
|       beforeTreat: { | |||
|         OD: { | |||
|           eye: { | |||
|             name: '视力1', | |||
|             level: '' | |||
|           }, | |||
|           illness: { | |||
|             name: '疾病分期', | |||
|             desc: '' | |||
|           } | |||
|         }, | |||
|         OS: { | |||
|           eye: { | |||
|             name: '视力2', | |||
|             level: '' | |||
|           }, | |||
|           illness: { | |||
|             name: '疾病分期', | |||
|             desc: '' | |||
|           } | |||
|         } | |||
|       }, | |||
|       treatData: [ | |||
|         { | |||
|           OD: { | |||
|             date: '', | |||
|             order: '', | |||
|             vision: '', | |||
|             flareSize: '', | |||
|             power: '', | |||
|             count: '' | |||
|           }, | |||
|           OS: { | |||
|             date: '', | |||
|             order: '', | |||
|             vision: '', | |||
|             flareSize: '', | |||
|             power: '', | |||
|             count: '' | |||
|           } | |||
|         }, | |||
|         { | |||
|           OD: { | |||
|             date: '', | |||
|             order: '', | |||
|             vision: '', | |||
|             flareSize: '', | |||
|             power: '', | |||
|             count: '' | |||
|           }, | |||
|           OS: { | |||
|             date: '', | |||
|             order: '', | |||
|             vision: '', | |||
|             flareSize: '', | |||
|             power: '', | |||
|             count: '' | |||
|           } | |||
|         }, | |||
|         { | |||
|           OD: { | |||
|             date: '', | |||
|             order: '', | |||
|             vision: '', | |||
|             flareSize: '', | |||
|             power: '', | |||
|             count: '' | |||
|           }, | |||
|           OS: { | |||
|             date: '', | |||
|             order: '', | |||
|             vision: '', | |||
|             flareSize: '', | |||
|             power: '', | |||
|             count: '' | |||
|           } | |||
|         } | |||
|       ] | |||
|     } | |||
|   }, | |||
|   methods: { | |||
|     handleSaveTable() { | |||
|       const data = { | |||
|         treat: this.treatData, | |||
|         beforeTreat: this.beforeTreat | |||
|       } | |||
|       // console.log(data) | |||
|       this.$emit('save', data) | |||
|     } | |||
|   } | |||
| } | |||
| </script> | |||
| 
 | |||
| <style lang="scss" scoped> | |||
| .flex{ | |||
|   display: flex; | |||
| } | |||
| .a-c{ | |||
|   align-items: center; | |||
| } | |||
| .item{ | |||
|   flex: 1; | |||
|   &:not(:last-child){ | |||
|     margin-right: 15px; | |||
|   } | |||
| } | |||
| .subTitle{ | |||
|   text-align: center; | |||
|   font-size: 16px; | |||
|   font-weight: 500; | |||
|   margin-top: 30px; | |||
| } | |||
| .descImg{ | |||
|   font-size: 12px; | |||
|   height: 140px; | |||
| } | |||
| .treatAction{ | |||
|   width: 100%; | |||
|   tr td,tr th{ | |||
|     border: 1px solid #ccc; | |||
|     padding: 5px; | |||
|   } | |||
|   td{ | |||
|     width: 25%; | |||
|   } | |||
| } | |||
| .btnBox{ | |||
|   display: flex; | |||
|   justify-content: flex-end; | |||
| } | |||
| ::v-deep .el-input__inner { | |||
|   border: none; | |||
|   height: 26px !important; | |||
|   line-height: 26px !important; | |||
|   text-align: center; | |||
| } | |||
| 
 | |||
| ::v-deep .el-input__inner { | |||
|   border-bottom: 1px solid #ccc; | |||
|   border-radius: 0; | |||
|   padding: 0; | |||
| } | |||
| ::v-deep .el-input__prefix { | |||
|   display: none; | |||
| } | |||
| </style> | |||
					Loading…
					
					
				
		Reference in new issue