3 changed files with 347 additions and 2 deletions
			
			
		| @ -0,0 +1,324 @@ | |||
| <template> | |||
|   <div class="punctureBox"> | |||
|     <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 v-if="creator" style="margin: 10px 0;text-align: left;color: #409EFF"> | |||
|         <div> | |||
|           操作者:{{ creator.doctorName }} | |||
|         </div> | |||
|         <div> | |||
|           工号:{{ creator.doctorCode }} | |||
|         </div> | |||
|       </div> | |||
|     </div> | |||
|     <div id="punctureOperation" style="width: 100%;padding-right: 8px"> | |||
|       <div v-if="!isDev" class="flex j-c"> | |||
|         <img width="650" src="@/assets/img/xianganlogo2.jpg"> | |||
|       </div> | |||
|       <hr v-if="!isDev"> | |||
|       <p style="color:#000000;font-size:28px;margin:0 0 15px 0;text-align:center;"> | |||
|         眼科门诊手术同意书 | |||
|       </p> | |||
|       <div class="flex a-c j-b"> | |||
|         <div> | |||
|           姓名:<el-input v-model="confirmData.patientName" style="width: 100px" /> | |||
|         </div> | |||
|         <div> | |||
|           性别:<el-input v-model="confirmData.patientGender" style="width: 100px" /> | |||
|         </div> | |||
|         <div> | |||
|           年龄:<el-input v-model="confirmData.patientAge" style="width: 100px" /> | |||
|         </div> | |||
|         <div> | |||
|           登记号:<el-input v-model="confirmData.patientId" style="width: 100px" /> | |||
|         </div> | |||
|       </div> | |||
|       <div class="form_content"> | |||
|         <div class="flex a-c" style="margin-top: 5px"> | |||
|           诊断: | |||
|           <el-input v-model="confirmData.zd" :autosize="{ minRows: 1, maxRows: 3}" type="textarea" style="flex: 1" /> | |||
|         </div> | |||
|         <div class="flex a-c" v-for="(item,index) in content" :key="index" style="margin: 5px 0"> | |||
|           {{ item }} | |||
|           <el-input v-if="index === 0" style="width: 160px" v-model="confirmData.zlfa"></el-input> | |||
|           <el-input v-if="index === 5" style="width: 300px" v-model="confirmData.remark"></el-input> | |||
|           <el-input v-if="index === 6" style="width: 220px" v-model="confirmData.yj"></el-input> | |||
|         </div> | |||
|       </div> | |||
|       <div style="margin-top: 15px"> | |||
|         <div class="flex a-c"> | |||
|           <div style="margin-right: 15px;"> | |||
|             <span style="word-break: keep-all">本人签名:</span> | |||
|             <span style="margin-left:10px" @click="signClick('puncturePatientSign')"> | |||
|               <span v-if="!formListValue.puncturePatientSign"> | |||
|                 <img v-if="printHidden" :src="require('@/assets/img/signature.png')" alt="" style="margin-right: 12px"> | |||
|                 <el-input v-else style="width: 80px" /> | |||
|               </span> | |||
|               <img v-else style="width: 160px;height: 80px;" :src="formListValue.puncturePatientSign"> | |||
|             </span> | |||
|           </div> | |||
|           <div> | |||
|             <span style="word-break: keep-all">或家属签名:</span> | |||
|             <span style="margin-left:10px" @click="signClick('punctureKinSign')"> | |||
|               <span v-if="!formListValue.punctureKinSign"> | |||
|                 <img v-if="printHidden" :src="require('@/assets/img/signature.png')" alt="" style="margin-right: 12px"> | |||
|                 <el-input v-else style="width: 80px" /> | |||
|               </span> | |||
|               <img v-else style="width: 160px;height: 80px;" :src="formListValue.punctureKinSign"> | |||
|             </span> | |||
|           </div> | |||
|         </div> | |||
|       </div> | |||
|       <div class="flex a-c"> | |||
|         <div style="margin-right: 296px;"> | |||
|           <span style="word-break: keep-all">操作者:</span> | |||
|           <span style="margin-left:10px"> | |||
|             <img style="width: 80px;height: 40px;" :src="confirmData.czzSign"> | |||
|           </span> | |||
|         </div> | |||
|         <div> | |||
|           签名日期:<el-date-picker | |||
|             v-model="confirmData.bdDate" | |||
|             type="date" | |||
|             format="yyyy年MM月dd日" | |||
|             value-format="yyyy-MM-dd" | |||
|         /> | |||
|         </div> | |||
|       </div> | |||
|     </div> | |||
|   </div> | |||
| </template> | |||
| 
 | |||
| <script> | |||
| import emptySign from '@static/js/emptySign' | |||
| import styeFormSign from '@/mixins/styeFormSign' | |||
| 
 | |||
| export default { | |||
|   name: 'OutEyeForm', | |||
|   mixins: [styeFormSign], | |||
|   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 { | |||
|       content: [ | |||
|         '一、治疗方案:', | |||
|         '二、治疗中可能发生的风险:', | |||
|         '1、麻醉风险       2、周围组织损伤     3、其他', | |||
|         '三、治疗后可能发生的并发症:', | |||
|         '1、伤口出血、感染、愈合不良   2、皮肤瘢痕形成,严重者导致睑外翻   3、肉芽组织增生 4、外伤可能导致眶骨骨折、肌肉损伤、眼球运动异常等并发症。5、损伤眼球内结构,需进一步诊疗。', | |||
|         '6、备注:', | |||
|         '病员或家属意见:', | |||
|         '我们了解该治疗的各种问题及可能发生的风险,同意接受治疗。' | |||
|       ], | |||
|       print: { | |||
|         id: 'punctureOperation', | |||
|         closeCallback: () => { | |||
|           this.printHidden = true | |||
|         } | |||
|       }, | |||
|       printHidden: true, | |||
|       formId: '', | |||
|       sourceData: {}, | |||
|       confirmData: { | |||
|         zd: '', | |||
|         jzNumber: '', | |||
|         patientName: '', | |||
|         patientAge: '', | |||
|         patientId: '', | |||
|         patientGender: '', | |||
|         patientSign: '', | |||
|         patientJsSign: '', | |||
|         czzSign: '', | |||
|         bdDate: '', | |||
|         yj: '', | |||
|         zlfa: '', | |||
|         remark: '' | |||
|       }, | |||
|       formListValue: { | |||
|         puncturePatientSign: '', | |||
|         punctureKinSign: '' | |||
|       } | |||
|     } | |||
|   }, | |||
|   watch: { | |||
|     caseId(val) { | |||
|       if (val) { | |||
|         this.getformList() | |||
|       } | |||
|     } | |||
|   }, | |||
|   created() { | |||
|     this.sourceData = JSON.parse(JSON.stringify(this.confirmData)) | |||
|     this.confirmData.jzNumber = window.sessionStorage.getItem('jzNumber') | |||
|     this.getformList() | |||
|   }, | |||
|   methods: { | |||
|     signClick(text) { | |||
|       this.initPlugin(text) | |||
|     }, | |||
|     setData() { | |||
|       const date = this.$moment().format('YYYY-MM-DD') | |||
|       this.confirmData.bdDate = date | |||
|       const userData = JSON.parse(window.sessionStorage.getItem('qg-userData')) | |||
|       this.confirmData.czzSign = 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 | |||
|     }, | |||
|     async getformList() { | |||
|       const { data: res } = await this.$http.get('/mzbl/getMzblsstys', { | |||
|         params: { | |||
|           caseId: this.caseId, | |||
|           patientId: this.patientDetail.patientId | |||
|         } | |||
|       }) | |||
|       if (res.code === 0) { | |||
|         this.confirmData = res.data | |||
|         if (res.data.caseId) { | |||
|           this.formListValue.punctureKinSign = this.confirmData.patientJsSign | |||
|           this.formListValue.puncturePatientSign = this.confirmData.patientSign | |||
|         } else { | |||
|           this.formListValue.punctureKinSign = '' | |||
|           this.formListValue.puncturePatientSign = '' | |||
|           this.setData() | |||
|         } | |||
|       } else { | |||
|         this.$message.error(res.msg) | |||
|       } | |||
|     }, | |||
|     handlePrint() { | |||
|       this.printHidden = false | |||
|       if (!this.isCreator) { | |||
|         return | |||
|       } | |||
|       this.handleSaveTable() | |||
|     }, | |||
|     // 保存 | |||
|     async handleSaveTable() { | |||
|       if (this.formListValue.puncturePatientSign === emptySign || this.formListValue.punctureKinSign === emptySign) { | |||
|         this.$message.error('签字未成功请重新签字后再保存') | |||
|         return | |||
|       } | |||
|       this.confirmData.patientSign = this.formListValue.puncturePatientSign | |||
|       this.confirmData.patientJsSign = this.formListValue.punctureKinSign | |||
|       const params = { | |||
|         caseId: this.caseId, | |||
|         ...this.confirmData | |||
|       } | |||
|       const { data: res } = await this.$http.post('/mzbl/saveMzblsstys', params) | |||
|       if (res.code === 0) { | |||
|         this.$message.success('保存成功') | |||
|         await this.getformList() | |||
|       } else { | |||
|         this.$message.error(res.msg) | |||
|       } | |||
|     }, | |||
|     // 删除 | |||
|     formDelete() { | |||
|       this.$confirmFun('确定删除吗?').then(() => { | |||
|         this.$http.post('/mzbl/delMzblsstys', { | |||
|           id: this.caseId | |||
|         }).then(() => { | |||
|           this.$message.success('删除成功') | |||
|           this.$emit('formDelete', 'del') | |||
|         }) | |||
|       }) | |||
|     } | |||
|   } | |||
| } | |||
| </script> | |||
| 
 | |||
| <style lang="scss" scoped> | |||
| .flex1{ | |||
|   flex: 1; | |||
| } | |||
| .flex{ | |||
|   display: flex; | |||
| } | |||
| .a-c{ | |||
|   align-items: center; | |||
| } | |||
| .j-c{ | |||
|   justify-content: center; | |||
| } | |||
| .j-b{ | |||
|   justify-content: space-between; | |||
| } | |||
| .punctureBox{ | |||
|   background: #fff; | |||
|   padding: 10px 20px 50px 20px; | |||
|   page-break-after:always; | |||
|   height: 100%; | |||
|   overflow: auto; | |||
| } | |||
| .btnBox_top{ | |||
|   position: fixed; | |||
|   z-index: 999; | |||
|   right: 90px; | |||
| } | |||
| .form_top{ | |||
|   margin-bottom: 15px; | |||
| } | |||
| .form_content{ | |||
|   text-align: left; | |||
|   line-height: 28px; | |||
| } | |||
| .form_detail{ | |||
|   text-indent: 2rem; | |||
|   margin: 3px 0; | |||
| } | |||
| .checkBox{ | |||
|   cursor: pointer; | |||
| } | |||
| ::v-deep .el-input__inner{ | |||
|   border: none; | |||
|   border-bottom: 1px solid #cccccc; | |||
|   border-radius: 0; | |||
|   font-size: 16px; | |||
|   height: 26px; | |||
|   text-align: center; | |||
| } | |||
| ::v-deep .el-textarea__inner{ | |||
|   border: none; | |||
|   border-radius: 0; | |||
|   border-bottom: 1px solid #8e8c8c; | |||
|   font-size: 16px | |||
| } | |||
| ::v-deep .el-input__prefix{ | |||
|   display: none; | |||
| } | |||
| </style> | |||
| 
 | |||
					Loading…
					
					
				
		Reference in new issue