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