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