9 changed files with 1037 additions and 13 deletions
			
			
		| After Width: | Height: | Size: 552 KiB | 
| After Width: | Height: | Size: 3.4 MiB | 
| After Width: | Height: | Size: 2.3 MiB | 
| @ -0,0 +1,514 @@ | |||
| <template> | |||
|   <div id="operation-record" style=" background: #fff; padding: 10px 20px 50px 20px;page-break-after:always"> | |||
|     <div class="btnBox_top"> | |||
|       <div v-if="!onlyRead && isPlatform"> | |||
|         <el-button v-print="print" size="small" @click="handlePrint">打印</el-button> | |||
|         <template v-if="isCreator"> | |||
|           <el-button type="primary" size="small" @click="handleSaveTable">保存</el-button> | |||
|           <el-button type="danger" size="small" @click="formDelete">删除</el-button> | |||
|         </template> | |||
|       </div> | |||
|       <div style="margin: 10px 0;text-align: left;color: #409EFF"> | |||
|         <div> | |||
|           操作者:{{ creator.doctorName }} | |||
|         </div> | |||
|         <div> | |||
|           工号:{{ creator.doctorCode }} | |||
|         </div> | |||
|       </div> | |||
|     </div> | |||
|     <div id="threeMirror" style="width: 840px;padding-right: 8px;text-align: left;line-height: 28px"> | |||
|       <div v-if="!isDev" class="flex j-c"> | |||
|         <img width="450" src="@/assets/img/xianganlogo.png"> | |||
|       </div> | |||
|       <hr v-if="!isDev"> | |||
|       <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="confirmData.patientName" style="flex: 1" placeholder="" /></div> | |||
|         <div class="flex a-c item">登记号:<el-input v-model="confirmData.patientId" style="flex: 1" placeholder="" /></div> | |||
|         <div class="flex a-c item">性别:<el-input v-model="confirmData.patientGender" style="flex: 1" placeholder="" /></div> | |||
|         <div class="flex a-c item">年龄:<el-input v-model="confirmData.patientAge" style="flex: 1" placeholder="" /></div> | |||
|       </div> | |||
|       <!--术前判断--> | |||
|       <div> | |||
|         <table> | |||
|           <tr> | |||
|             <td rowspan="5"> | |||
|               眼底情况 | |||
|             </td> | |||
|             <td>右眼</td> | |||
|             <td>左眼</td> | |||
|           </tr> | |||
|           <tr> | |||
|             <td>眼压: mmHg(NCT)</td> | |||
|             <td>眼压: mmHg(NCT)</td> | |||
|           </tr> | |||
|           <tr> | |||
|             <td> | |||
|               <div style="padding: 10px 0" @click="editImg('fjOD')"> | |||
|                 <img v-if="confirmData.qfjqkOd" class="img_show" :src="confirmData.qfjqkOd"> | |||
|               </div> | |||
|             </td> | |||
|             <td> | |||
|               <div style="padding: 10px 0" @click="editImg('fjOS')"> | |||
|                 <img v-if="confirmData.qfjqkOs" class="img_show" :src="confirmData.qfjqkOs"> | |||
|               </div> | |||
|             </td> | |||
|           </tr> | |||
|           <tr> | |||
|             <td> | |||
|               <div style="padding: 5px"> | |||
|                 <div class="flex" style="text-align: left"> | |||
|                   异常: | |||
|                   <el-checkbox-group v-model="checkListOd" style="flex:1"> | |||
|                     <el-checkbox label="无" /> | |||
|                     <el-checkbox label="新生血管" /> | |||
|                     <el-checkbox label="色素" /> | |||
|                     <el-checkbox label="硅油小滴" /> | |||
|                     <el-checkbox label="其他"> | |||
|                       其他: | |||
|                       <el-select v-model="confirmData.ycqtOd" style="width: 120px" placeholder="" clearable filterable allow-create> | |||
|                         <el-option | |||
|                           v-for="item in other" | |||
|                           :key="item.value" | |||
|                           :label="item.label" | |||
|                           :value="item.value" | |||
|                         /> | |||
|                       </el-select> | |||
|                     </el-checkbox> | |||
|                   </el-checkbox-group> | |||
|                 </div> | |||
|               </div> | |||
|             </td> | |||
|             <td> | |||
|               <div style="padding: 5px"> | |||
|                 <div class="flex" style="text-align: left"> | |||
|                   异常: | |||
|                   <el-checkbox-group v-model="checkListOs" style="flex:1"> | |||
|                     <el-checkbox label="无" /> | |||
|                     <el-checkbox label="新生血管" /> | |||
|                     <el-checkbox label="色素" /> | |||
|                     <el-checkbox label="硅油小滴" /> | |||
|                     <el-checkbox label="其他"> | |||
|                       其他: | |||
|                       <el-select v-model="confirmData.ycqtOs" style="width: 120px" placeholder="" clearable filterable allow-create> | |||
|                         <el-option | |||
|                           v-for="item in other" | |||
|                           :key="item.value" | |||
|                           :label="item.label" | |||
|                           :value="item.value" | |||
|                         /> | |||
|                       </el-select> | |||
|                     </el-checkbox> | |||
|                   </el-checkbox-group> | |||
|                 </div> | |||
|               </div> | |||
|             </td> | |||
|           </tr> | |||
|           <tr> | |||
|             <td> | |||
|               <div> | |||
|                 房角分类: | |||
|                 <el-select v-model="confirmData.fjflOd" style="width: 120px" placeholder="" clearable filterable allow-create> | |||
|                   <el-option | |||
|                     v-for="item in options" | |||
|                     :key="item.value" | |||
|                     :label="item.label" | |||
|                     :value="item.value" | |||
|                   /> | |||
|                 </el-select>( | |||
|                 <el-select v-model="confirmData.fjflOd2" style="width: 120px" placeholder="" clearable filterable allow-create> | |||
|                   <el-option | |||
|                     v-for="item in options2" | |||
|                     :key="item.value" | |||
|                     :label="item.label" | |||
|                     :value="item.value" | |||
|                   /> | |||
|                 </el-select>) | |||
|               </div> | |||
|             </td> | |||
|             <td> | |||
|               <div> | |||
|                 房角分类: | |||
|                 <el-select v-model="confirmData.fjflOs" style="width: 120px" placeholder="" clearable filterable allow-create> | |||
|                   <el-option | |||
|                     v-for="item in options" | |||
|                     :key="item.value" | |||
|                     :label="item.label" | |||
|                     :value="item.value" | |||
|                   /> | |||
|                 </el-select>( | |||
|                 <el-select v-model="confirmData.fjflOs2" style="width: 120px" placeholder="" clearable filterable allow-create> | |||
|                   <el-option | |||
|                     v-for="item in options2" | |||
|                     :key="item.value" | |||
|                     :label="item.label" | |||
|                     :value="item.value" | |||
|                   /> | |||
|                 </el-select>) | |||
|               </div> | |||
|             </td> | |||
|           </tr> | |||
|         </table> | |||
|       </div> | |||
|       <div class="flex j-c" style="margin: 30px 0"> | |||
|         Scheie房角静态分级参考 | |||
|       </div> | |||
|       <div class="flex j-c"> | |||
|         <img class="img2_show" src="@/assets/img/fundus.png"> | |||
|       </div> | |||
|       <div class="flex flex-end a-c" style="margin-top: 10px"> | |||
|         <span>操作者:</span> | |||
|         <img | |||
|           v-if="confirmData.checker" | |||
|           :src="confirmData.checker" | |||
|           alt="" | |||
|           style="width: 80px;height: 50px;border-style:none;" | |||
|         > | |||
|         <span style="margin-left: 80px">日期:</span> | |||
|         <el-date-picker | |||
|           v-model="confirmData.jlDate" | |||
|           style="width: 120px" | |||
|           type="date" | |||
|           value-format="yyyy-MM-dd" | |||
|         /> | |||
|       </div> | |||
|     </div> | |||
|     <img-editor v-if="editorShow" ref="imgEditorRef" :is-od-or-os="this.eyeType" @closeDialog="closeDialog" @fullImgBack="fullImgBack" /> | |||
|   </div> | |||
| </template> | |||
| 
 | |||
| <script> | |||
| import ImgEditor from '@/components/360View/img-editor.vue' | |||
| 
 | |||
| export default { | |||
|   name: 'Gonioscope', | |||
|   components: { ImgEditor }, | |||
|   props: { | |||
|     isDev: { | |||
|       type: Boolean | |||
|     }, | |||
|     onlyRead: { | |||
|       type: Boolean, | |||
|       default: false | |||
|     }, | |||
|     isPlatform: { | |||
|       type: Boolean, | |||
|       default: true | |||
|     }, | |||
|     patientDetail: { | |||
|       type: Object | |||
|     }, | |||
|     caseId: { | |||
|       type: String, | |||
|       default: '' | |||
|     }, | |||
|     isCreator: { | |||
|       type: Boolean, | |||
|       default: true | |||
|     }, | |||
|     // 操作者 | |||
|     creator: { | |||
|       type: Object | |||
|     } | |||
|   }, | |||
|   data() { | |||
|     return { | |||
|       printHidden: true, | |||
|       print: { | |||
|         id: 'threeMirror', | |||
|         closeCallback: () => { | |||
|           this.printHidden = true | |||
|         } | |||
|       }, | |||
|       other: [ | |||
|         { | |||
|           value: 'Schlemm管充血', | |||
|           label: 'Schlemm管充血' | |||
|         }, { | |||
|           value: '小梁网出血', | |||
|           label: '小梁网出血' | |||
|         }, { | |||
|           value: '房角后退', | |||
|           label: '房角后退' | |||
|         }, { | |||
|           value: '睫状体分离', | |||
|           label: '睫状体分离' | |||
|         }, { | |||
|           value: '梳状韧带', | |||
|           label: '梳状韧带' | |||
|         }, { | |||
|           value: '后胚胎环', | |||
|           label: '后胚胎环' | |||
|         }, { | |||
|           value: '虹膜附止高位', | |||
|           label: '虹膜附止高位' | |||
|         } | |||
|       ], | |||
|       options: [ | |||
|         { | |||
|           value: 'W', | |||
|           label: 'W' | |||
|         }, { | |||
|           value: 'N1', | |||
|           label: 'N1' | |||
|         }, { | |||
|           value: 'N2', | |||
|           label: 'N2' | |||
|         }, { | |||
|           value: 'N3', | |||
|           label: 'N3' | |||
|         }, { | |||
|           value: 'N4', | |||
|           label: 'N4' | |||
|         } | |||
|       ], | |||
|       options2: [ | |||
|         { | |||
|           value: '开放', | |||
|           label: '开放' | |||
|         }, { | |||
|           value: '不规则前粘连', | |||
|           label: '不规则前粘连' | |||
|         }, { | |||
|           value: '<1/2粘连', | |||
|           label: '<1/2粘连' | |||
|         }, { | |||
|           value: '>1/2粘连', | |||
|           label: '>1/2粘连' | |||
|         } | |||
|       ], | |||
|       eyeType: '', | |||
|       editorShow: false, | |||
|       confirmData: { | |||
|         patientAge: '', | |||
|         patientDate: '', | |||
|         patientGender: '', | |||
|         patientName: '', | |||
|         patientId: '', | |||
|         ycOd: '', // 异常 | |||
|         ycOs: '', | |||
|         ycqtOd: '', // 异常其他 | |||
|         ycqtOs: '', | |||
|         fjflOd: '', // 房角分类 | |||
|         fjflOd2: '', | |||
|         fjflOs: '', | |||
|         fjflOs2: '', | |||
|         checker: '', | |||
|         jlDate: '', | |||
|         qfjqkOd: '', // 前房角情况右眼图片 | |||
|         qfjqkOs: '' | |||
|       }, | |||
|       checkListOd: [], | |||
|       checkListOs: [], | |||
|       checkList2Od: [], | |||
|       checkList2Os: [], | |||
|       caseList: [ | |||
|         'A:圆形裂孔', | |||
|         'B:有盖的裂孔', | |||
|         'C:有瓣膜的裂孔(马蹄形裂孔)', | |||
|         'D:伴有向后卷边的瓣膜裂孔', | |||
|         'E:固定皱褶', | |||
|         'F:锯齿缘断离', | |||
|         'G:视网膜出血', | |||
|         'H:视网膜色素沉着', | |||
|         'I:分界线', | |||
|         'J:铺路石变性', | |||
|         'K:周边部囊状变性', | |||
|         'L:老年性视网膜劈裂', | |||
|         'M:视网膜动脉旁的渗出物', | |||
|         'N:被冷冻癜痕围绕的马蹄裂孔' | |||
|       ], | |||
|       caseRight: [ | |||
|         'O:玻璃体浑浊(需加文字说明)', | |||
|         'P:被电凝癜痕围绕的环形扣压瘠上的两个圆孔,其上方为视网膜再脱离', | |||
|         'Q:睫状体平坦部的无色素上皮脱离', | |||
|         'R:脉络膜肿块(需加文字说明)', | |||
|         'S:被电凝癜痕围绕的放射状巩膜扣压瘠上的马蹄形裂孔', | |||
|         'T:网格样变性', | |||
|         'U:伴有萎缩性圆形裂孔的网格样变性', | |||
|         'V:涡静脉壶腹', | |||
|         'W:放射状视网膜皱褶', | |||
|         'X:视网膜前出血', | |||
|         'Y:视网膜变薄区' | |||
|       ] | |||
|     } | |||
|   }, | |||
|   watch: { | |||
|     caseId(val) { | |||
|       if (val) { | |||
|         this.getInfoDetail() | |||
|       } | |||
|     } | |||
|   }, | |||
|   created() { | |||
|     this.getInfoDetail() | |||
|   }, | |||
|   methods: { | |||
|     editImg(eyeType) { | |||
|       this.eyeType = eyeType | |||
|       this.editorShow = true | |||
|       this.$nextTick(() => { | |||
|         this.$refs.imgEditorRef.init() | |||
|       }) | |||
|     }, | |||
|     closeDialog() { | |||
|       this.editorShow = false | |||
|     }, | |||
|     fullImgBack(val) { | |||
|       if (!val) return | |||
|       if (this.eyeType === 'fjOD') { | |||
|         this.confirmData.qfjqkOd = val | |||
|       } else { | |||
|         this.confirmData.qfjqkOs = val | |||
|       } | |||
|     }, | |||
|     getInfoDetail() { | |||
|       this.$http.get('/jcjg/getFjjjcjg', { params: { | |||
|         caseId: this.caseId, | |||
|         patientId: this.patientDetail.patientId | |||
|       }}).then(data => { | |||
|         const detail = data.data.data | |||
|         this.confirmData = detail | |||
|         this.handleCheck() | |||
|         if (!detail.jzNumber) { | |||
|           this.setData() | |||
|         } | |||
|       }) | |||
|     }, | |||
|     setData() { | |||
|       const date = this.$moment().format('YYYY-MM-DD') | |||
|       this.confirmData.jlDate = date | |||
|       const userData = JSON.parse(window.sessionStorage.getItem('qg-userData')) | |||
|       this.confirmData.checker = userData.signImgBase | |||
|       this.confirmData.patientName = this.patientDetail.patientName | |||
|       this.confirmData.patientAge = this.patientDetail.patientAge | |||
|       this.confirmData.patientGender = this.patientDetail.patientSex | |||
|       this.confirmData.patientId = this.patientDetail.patientId | |||
| 
 | |||
|       this.confirmData.qfjqkOd = require('@/assets/img/ill.png') | |||
|       this.confirmData.qfjqkOs = require('@/assets/img/ill.png') | |||
|     }, | |||
|     handlePrint() { | |||
|       this.printHidden = false | |||
|       if (!this.isCreator) { | |||
|         return | |||
|       } | |||
|       this.handleSaveTable() | |||
|     }, | |||
|     handleCheck() { | |||
|       this.checkListOd = this.confirmData.ycOd ? this.confirmData.ycOd.split('/') : [] | |||
|       this.checkListOs = this.confirmData.ycOs ? this.confirmData.ycOs.split('/') : [] | |||
|     }, | |||
|     hanldeSaveCheck() { | |||
|       this.confirmData.ycOd = this.checkListOd.join('/') | |||
|       this.confirmData.ycOs = this.checkListOs.join('/') | |||
|     }, | |||
|     // 保存 | |||
|     handleSaveTable() { | |||
|       this.hanldeSaveCheck() | |||
|       this.confirmData.jzNumber = window.sessionStorage.getItem('jzNumber') | |||
|       this.$http.post('/jcjg/saveFjjjcjg', { | |||
|         ...this.confirmData, | |||
|         caseId: this.caseId | |||
|       }).then(() => { | |||
|         this.$emit('handleSaveTable') | |||
|       }) | |||
|     }, | |||
|     // 删除 | |||
|     formDelete() { | |||
|       this.$confirmFun('确定删除吗?').then(() => { | |||
|         this.$http.post('/jcjg/delFjjjcjg', { | |||
|           id: this.caseId | |||
|         }).then(() => { | |||
|           this.$message.success('删除成功') | |||
|           this.$emit('formDelete', 'del') | |||
|         }) | |||
|       }) | |||
|     } | |||
|   } | |||
| } | |||
| </script> | |||
| 
 | |||
| <style lang="scss" scoped> | |||
| #operation-record{ | |||
|   height: 100%; | |||
|   overflow: auto; | |||
|   background: #fff; | |||
| } | |||
| ::v-deep .el-icon-arrow-up{ | |||
|   display: none; | |||
| } | |||
| .flex{ | |||
|   display: flex; | |||
| } | |||
| .a-c{ | |||
|   align-items: center; | |||
| } | |||
| .j-c{ | |||
|   justify-content: center; | |||
| } | |||
| .flex-end{ | |||
|   justify-content: flex-end; | |||
| } | |||
| .caseItem{ | |||
|   width: 200px; | |||
|   padding-right: 10px; | |||
| } | |||
| .caseDetail{ | |||
|   padding: 0 20px; | |||
|   display: flex; | |||
|   font-size: 14px; | |||
|   line-height: 24px; | |||
| } | |||
| .item{ | |||
|   &:not(:last-child){ | |||
|     margin-right: 15px; | |||
|   } | |||
| } | |||
| tr td{ | |||
|   border: 1px solid #000; | |||
|   text-align: center; | |||
| } | |||
| table{ | |||
|   width: 100%; | |||
| } | |||
| .img_show{ | |||
|   height: 240px; | |||
| } | |||
| .img2_show{ | |||
|   width: 450px; | |||
|   height: 300px; | |||
| } | |||
| .btnBox_top{ | |||
|   position: fixed; | |||
|   z-index: 999; | |||
|   right: 90px; | |||
| } | |||
| ::v-deep .el-input__inner { | |||
|   border: none; | |||
|   height: 26px !important; | |||
|   line-height: 26px !important; | |||
|   font-size: 16px; | |||
|   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; | |||
| } | |||
| ::v-deep .el-checkbox__label{ | |||
|   font-size: 16px; | |||
|   color: #000; | |||
| } | |||
| ::v-deep .el-checkbox{ | |||
|   margin-right: 15px; | |||
| } | |||
| </style> | |||
| @ -0,0 +1,438 @@ | |||
| <template> | |||
|   <div id="operation-record" style=" background: #fff; padding: 10px 20px 50px 20px;page-break-after:always"> | |||
|     <div class="btnBox_top"> | |||
|       <div v-if="!onlyRead && isPlatform"> | |||
|         <el-button v-print="print" size="small" @click="handlePrint">打印</el-button> | |||
|         <template v-if="isCreator"> | |||
|           <el-button type="primary" size="small" @click="handleSaveTable">保存</el-button> | |||
|           <el-button type="danger" size="small" @click="formDelete">删除</el-button> | |||
|         </template> | |||
|       </div> | |||
|       <div style="margin: 10px 0;text-align: left;color: #409EFF"> | |||
|         <div> | |||
|           操作者:{{ creator.doctorName }} | |||
|         </div> | |||
|         <div> | |||
|           工号:{{ creator.doctorCode }} | |||
|         </div> | |||
|       </div> | |||
|     </div> | |||
|     <div id="threeMirror" style="width: 840px;padding-right: 8px;text-align: left;line-height: 28px"> | |||
|       <div v-if="!isDev" class="flex j-c"> | |||
|         <img width="450" src="@/assets/img/xianganlogo.png"> | |||
|       </div> | |||
|       <hr v-if="!isDev"> | |||
|       <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="confirmData.patientName" style="flex: 1" placeholder="" /></div> | |||
|         <div class="flex a-c item">登记号:<el-input v-model="confirmData.patientId" style="flex: 1" placeholder="" /></div> | |||
|         <div class="flex a-c item">性别:<el-input v-model="confirmData.patientGender" style="flex: 1" placeholder="" /></div> | |||
|         <div class="flex a-c item">年龄:<el-input v-model="confirmData.patientAge" style="flex: 1" placeholder="" /></div> | |||
|       </div> | |||
|       <!--术前判断--> | |||
|       <div> | |||
|         <table> | |||
|           <tr> | |||
|             <td rowspan="3"> | |||
|               眼底情况 | |||
|             </td> | |||
|             <td>右眼</td> | |||
|             <td>左眼</td> | |||
|           </tr> | |||
|           <tr> | |||
|             <td> | |||
|               <div style="padding: 10px 0" @click="editImg('OD')"> | |||
|                 <img v-if="confirmData.ydqkOd" class="img_show" :src="confirmData.ydqkOd"> | |||
|               </div> | |||
|             </td> | |||
|             <td> | |||
|               <div style="padding: 10px 0" @click="editImg('OS')"> | |||
|                 <img v-if="confirmData.ydqkOs" class="img_show" :src="confirmData.ydqkOs"> | |||
|               </div> | |||
|             </td> | |||
|           </tr> | |||
|           <tr> | |||
|             <td> | |||
|               <div style="padding: 5px"> | |||
|                 <div class="flex" style="text-align: left"> | |||
|                   变性: | |||
|                   <el-checkbox-group v-model="checkListOd" style="flex:1"> | |||
|                     <el-checkbox label="非压迫白/黑" /> | |||
|                     <el-checkbox label="霜样" /> | |||
|                     <el-checkbox label="铺路石样" /> | |||
|                     <el-checkbox label="囊样" /> | |||
|                     <el-checkbox label="视网膜劈裂" /> | |||
|                     <el-checkbox label="格子样" /> | |||
|                     <el-checkbox label="蜗牛迹样" /> | |||
|                     <el-checkbox label="其它" /> | |||
|                   </el-checkbox-group> | |||
|                 </div> | |||
|                 <div class="flex" style="text-align: left"> | |||
|                   裂孔: | |||
|                   <el-checkbox-group v-model="checkList2Od" style="flex:1"> | |||
|                     <el-checkbox label="萎缩" /> | |||
|                     <el-checkbox label="伴牵拉" /> | |||
|                     <el-checkbox label="伴脱离" /> | |||
|                   </el-checkbox-group> | |||
|                 </div> | |||
|                 <div style="text-align: left"> | |||
|                   其它病灶及异常记录: | |||
|                   <div> | |||
|                     <el-input v-model="confirmData.qtbzjycjlOd" type="textarea" :autosize="{minRows: 3, maxRows: 3}" /> | |||
|                   </div> | |||
|                 </div> | |||
|               </div> | |||
|             </td> | |||
|             <td> | |||
|               <div style="padding: 5px"> | |||
|                 <div class="flex" style="text-align: left"> | |||
|                   变性: | |||
|                   <el-checkbox-group v-model="checkListOs" style="flex:1"> | |||
|                     <el-checkbox label="非压迫白/黑" /> | |||
|                     <el-checkbox label="霜样" /> | |||
|                     <el-checkbox label="铺路石样" /> | |||
|                     <el-checkbox label="囊样" /> | |||
|                     <el-checkbox label="视网膜劈裂" /> | |||
|                     <el-checkbox label="格子样" /> | |||
|                     <el-checkbox label="蜗牛迹样" /> | |||
|                     <el-checkbox label="其它" /> | |||
|                   </el-checkbox-group> | |||
|                 </div> | |||
|                 <div class="flex" style="text-align: left"> | |||
|                   裂孔: | |||
|                   <el-checkbox-group v-model="checkList2Os" style="flex:1"> | |||
|                     <el-checkbox label="萎缩" /> | |||
|                     <el-checkbox label="伴牵拉" /> | |||
|                     <el-checkbox label="伴脱离" /> | |||
|                   </el-checkbox-group> | |||
|                 </div> | |||
|                 <div style="text-align: left"> | |||
|                   其它病灶及异常记录: | |||
|                   <div> | |||
|                     <el-input v-model="confirmData.qtbzjycjlOs" type="textarea" :autosize="{minRows: 3, maxRows: 3}" /> | |||
|                   </div> | |||
|                 </div> | |||
|               </div> | |||
|             </td> | |||
|           </tr> | |||
|         </table> | |||
|       </div> | |||
|       <div class="flex j-c" style="margin: 10px 0"> | |||
|         眼底异常绘图参 | |||
|       </div> | |||
|       <div class="flex"> | |||
|         <img class="img2_show" src="@/assets/img/threeCheck.png"> | |||
|         <div class="caseDetail"> | |||
|           <div> | |||
|             <div v-for="(item,index) in caseList" :key="index" class="caseItem"> | |||
|               {{ item }} | |||
|             </div> | |||
|           </div> | |||
|           <div> | |||
|             <div v-for="(item,index) in caseRight" :key="`${index}_`" class="caseItem"> | |||
|               {{ item }} | |||
|             </div> | |||
|           </div> | |||
|         </div> | |||
|       </div> | |||
|       <div class="flex flex-end a-c" style="margin-top: 10px"> | |||
|         <span>操作者:</span> | |||
|         <img | |||
|           v-if="confirmData.checker" | |||
|           :src="confirmData.checker" | |||
|           alt="" | |||
|           style="width: 80px;height: 50px;border-style:none;" | |||
|         > | |||
|         <span style="margin-left: 80px">日期:</span> | |||
|         <el-date-picker | |||
|           v-model="confirmData.jlDate" | |||
|           style="width: 120px" | |||
|           type="date" | |||
|           value-format="yyyy-MM-dd" | |||
|         /> | |||
|       </div> | |||
|     </div> | |||
|     <img-editor v-if="editorShow" ref="imgEditorRef" :is-od-or-os="this.eyeType" @closeDialog="closeDialog" @fullImgBack="fullImgBack" /> | |||
|   </div> | |||
| </template> | |||
| 
 | |||
| <script> | |||
| import ImgEditor from '@/components/360View/img-editor.vue' | |||
| 
 | |||
| export default { | |||
|   name: 'ThreeMirror', | |||
|   components: { ImgEditor }, | |||
|   props: { | |||
|     isDev: { | |||
|       type: Boolean | |||
|     }, | |||
|     onlyRead: { | |||
|       type: Boolean, | |||
|       default: false | |||
|     }, | |||
|     isPlatform: { | |||
|       type: Boolean, | |||
|       default: true | |||
|     }, | |||
|     patientDetail: { | |||
|       type: Object | |||
|     }, | |||
|     caseId: { | |||
|       type: String, | |||
|       default: '' | |||
|     }, | |||
|     isCreator: { | |||
|       type: Boolean, | |||
|       default: true | |||
|     }, | |||
|     // 操作者 | |||
|     creator: { | |||
|       type: Object | |||
|     } | |||
|   }, | |||
|   data() { | |||
|     return { | |||
|       printHidden: true, | |||
|       print: { | |||
|         id: 'threeMirror', | |||
|         closeCallback: () => { | |||
|           this.printHidden = true | |||
|         } | |||
|       }, | |||
|       eyeType: '', | |||
|       editorShow: false, | |||
|       confirmData: { | |||
|         patientAge: '', | |||
|         patientDate: '', | |||
|         patientGender: '', | |||
|         patientName: '', | |||
|         patientId: '', | |||
|         bxOd: '', // 变性 | |||
|         bxOs: '', | |||
|         checker: '', | |||
|         jlDate: '', | |||
|         lkOd: '', // 裂孔 | |||
|         lkOs: '', | |||
|         qtbzjycjlOd: '', // 其他病灶及异常记录 | |||
|         qtbzjycjlOs: '', | |||
|         ydqkOd: '', // 眼底情况右眼照片 | |||
|         ydqkOs: '' | |||
|       }, | |||
|       checkListOd: [], | |||
|       checkListOs: [], | |||
|       checkList2Od: [], | |||
|       checkList2Os: [], | |||
|       caseList: [ | |||
|         'A:圆形裂孔', | |||
|         'B:有盖的裂孔', | |||
|         'C:有瓣膜的裂孔(马蹄形裂孔)', | |||
|         'D:伴有向后卷边的瓣膜裂孔', | |||
|         'E:固定皱褶', | |||
|         'F:锯齿缘断离', | |||
|         'G:视网膜出血', | |||
|         'H:视网膜色素沉着', | |||
|         'I:分界线', | |||
|         'J:铺路石变性', | |||
|         'K:周边部囊状变性', | |||
|         'L:老年性视网膜劈裂', | |||
|         'M:视网膜动脉旁的渗出物', | |||
|         'N:被冷冻癜痕围绕的马蹄裂孔' | |||
|       ], | |||
|       caseRight: [ | |||
|         'O:玻璃体浑浊(需加文字说明)', | |||
|         'P:被电凝癜痕围绕的环形扣压瘠上的两个圆孔,其上方为视网膜再脱离', | |||
|         'Q:睫状体平坦部的无色素上皮脱离', | |||
|         'R:脉络膜肿块(需加文字说明)', | |||
|         'S:被电凝癜痕围绕的放射状巩膜扣压瘠上的马蹄形裂孔', | |||
|         'T:网格样变性', | |||
|         'U:伴有萎缩性圆形裂孔的网格样变性', | |||
|         'V:涡静脉壶腹', | |||
|         'W:放射状视网膜皱褶', | |||
|         'X:视网膜前出血', | |||
|         'Y:视网膜变薄区' | |||
|       ] | |||
|     } | |||
|   }, | |||
|   watch: { | |||
|     caseId(val) { | |||
|       if (val) { | |||
|         this.getInfoDetail() | |||
|       } | |||
|     } | |||
|   }, | |||
|   created() { | |||
|     this.getInfoDetail() | |||
|   }, | |||
|   methods: { | |||
|     editImg(eyeType) { | |||
|       this.eyeType = eyeType | |||
|       this.editorShow = true | |||
|       this.$nextTick(() => { | |||
|         this.$refs.imgEditorRef.init() | |||
|       }) | |||
|     }, | |||
|     closeDialog() { | |||
|       this.editorShow = false | |||
|     }, | |||
|     fullImgBack(val) { | |||
|       if (!val) return | |||
|       if (this.eyeType === 'OD') { | |||
|         this.confirmData.ydqkOd = val | |||
|       } else { | |||
|         this.confirmData.ydqkOs = val | |||
|       } | |||
|     }, | |||
|     getInfoDetail() { | |||
|       this.$http.get('/jcjg/getSmjjcjg', { params: { | |||
|         caseId: this.caseId, | |||
|         patientId: this.patientDetail.patientId | |||
|       }}).then(data => { | |||
|         const detail = data.data.data | |||
|         this.confirmData = detail | |||
|         this.handleCheck() | |||
|         if (!detail.jzNumber) { | |||
|           this.setData() | |||
|         } | |||
|       }) | |||
|     }, | |||
|     setData() { | |||
|       const date = this.$moment().format('YYYY-MM-DD') | |||
|       this.confirmData.jlDate = date | |||
|       const userData = JSON.parse(window.sessionStorage.getItem('qg-userData')) | |||
|       this.confirmData.checker = userData.signImgBase | |||
|       this.confirmData.patientName = this.patientDetail.patientName | |||
|       this.confirmData.patientAge = this.patientDetail.patientAge | |||
|       this.confirmData.patientGender = this.patientDetail.patientSex | |||
|       this.confirmData.patientId = this.patientDetail.patientId | |||
| 
 | |||
|       this.confirmData.ydqkOd = require('@/assets/img/od.png') | |||
|       this.confirmData.ydqkOs = require('@/assets/img/os.png') | |||
|     }, | |||
|     handlePrint() { | |||
|       this.printHidden = false | |||
|       if (!this.isCreator) { | |||
|         return | |||
|       } | |||
|       this.handleSaveTable() | |||
|     }, | |||
|     handleCheck() { | |||
|       this.checkListOd = this.confirmData.bxOd ? this.confirmData.bxOd.split('/') : [] | |||
|       this.checkListOs = this.confirmData.bxOs ? this.confirmData.bxOs.split('/') : [] | |||
|       this.checkList2Od = this.confirmData.lkOd ? this.confirmData.lkOd.split('/') : [] | |||
|       this.checkList2Os = this.confirmData.lkOs ? this.confirmData.lkOs.split('/') : [] | |||
|     }, | |||
|     hanldeSaveCheck() { | |||
|       this.confirmData.bxOd = this.checkListOd.join('/') | |||
|       this.confirmData.bxOs = this.checkListOs.join('/') | |||
|       this.confirmData.lkOd = this.checkList2Od.join('/') | |||
|       this.confirmData.lkOs = this.checkList2Os.join('/') | |||
|     }, | |||
|     // 保存 | |||
|     handleSaveTable() { | |||
|       this.hanldeSaveCheck() | |||
|       this.confirmData.jzNumber = window.sessionStorage.getItem('jzNumber') | |||
|       this.$http.post('/jcjg/saveSmjjcjg', { | |||
|         ...this.confirmData, | |||
|         caseId: this.caseId | |||
|       }).then(() => { | |||
|         this.$emit('handleSaveTable') | |||
|       }) | |||
|     }, | |||
|     // 删除 | |||
|     formDelete() { | |||
|       this.$confirmFun('确定删除吗?').then(() => { | |||
|         this.$http.post('/jcjg/delSmjjcjg', { | |||
|           id: this.caseId | |||
|         }).then(() => { | |||
|           this.$message.success('删除成功') | |||
|           this.$emit('formDelete', 'del') | |||
|         }) | |||
|       }) | |||
|     } | |||
|   } | |||
| } | |||
| </script> | |||
| 
 | |||
| <style lang="scss" scoped> | |||
| #operation-record{ | |||
|   height: 100%; | |||
|   overflow: auto; | |||
|   background: #fff; | |||
| } | |||
| ::v-deep .el-icon-arrow-up{ | |||
|   display: none; | |||
| } | |||
| .flex{ | |||
|   display: flex; | |||
| } | |||
| .a-c{ | |||
|   align-items: center; | |||
| } | |||
| .j-c{ | |||
|   justify-content: center; | |||
| } | |||
| .flex-end{ | |||
|   justify-content: flex-end; | |||
| } | |||
| .caseItem{ | |||
|   width: 200px; | |||
|   padding-right: 10px; | |||
| } | |||
| .caseDetail{ | |||
|   padding: 0 20px; | |||
|   display: flex; | |||
|   font-size: 14px; | |||
|   line-height: 24px; | |||
| } | |||
| .item{ | |||
|   &:not(:last-child){ | |||
|     margin-right: 15px; | |||
|   } | |||
| } | |||
| tr td{ | |||
|   border: 1px solid #000; | |||
|   text-align: center; | |||
| } | |||
| table{ | |||
|   width: 100%; | |||
| } | |||
| .img_show{ | |||
|   height: 200px; | |||
| } | |||
| ::v-deep .el-checkbox{ | |||
|   margin-right: 15px; | |||
| } | |||
| .img2_show{ | |||
|   width: 400px; | |||
|   height: 380px; | |||
| } | |||
| .btnBox_top{ | |||
|   position: fixed; | |||
|   z-index: 999; | |||
|   right: 90px; | |||
| } | |||
| ::v-deep .el-input__inner { | |||
|   border: none; | |||
|   height: 26px !important; | |||
|   line-height: 26px !important; | |||
|   font-size: 16px; | |||
|   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; | |||
| } | |||
| ::v-deep .el-checkbox__label{ | |||
|   font-size: 16px; | |||
|   color: #000; | |||
| } | |||
| </style> | |||
| 
 | |||
					Loading…
					
					
				
		Reference in new issue