8 changed files with 549 additions and 135 deletions
@ -0,0 +1,29 @@ |
|||||
|
<template> |
||||
|
<div> |
||||
|
<div v-if="!isDev" class="flex j-c"> |
||||
|
<img :width="width" :src="logoUrl"> |
||||
|
</div> |
||||
|
<hr v-if="!isDev"> |
||||
|
</div> |
||||
|
</template> |
||||
|
|
||||
|
<script> |
||||
|
export default { |
||||
|
name: 'FormHeader', |
||||
|
props: ['isDev', 'width'], |
||||
|
data() { |
||||
|
return { |
||||
|
logoUrl: require('@/assets/img/xianganlogo2.jpg') |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
</script> |
||||
|
|
||||
|
<style scoped lang="scss"> |
||||
|
.flex{ |
||||
|
display: flex; |
||||
|
} |
||||
|
.j-c{ |
||||
|
justify-content: center; |
||||
|
} |
||||
|
</style> |
@ -0,0 +1,337 @@ |
|||||
|
<template> |
||||
|
<div class="cornealBox"> |
||||
|
<div class="btnBox"> |
||||
|
<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="treatNotice" style="width: 840px;padding-right: 8px"> |
||||
|
<form-header :is-dev="isDev" :width="650" /> |
||||
|
<p style="color:#000000;font-size:32px;margin:0 0 30px 0;text-align:center;"> |
||||
|
眼科门诊治疗须知 |
||||
|
</p> |
||||
|
<!--患者信息--> |
||||
|
<div> |
||||
|
<div class="flex m-b"> |
||||
|
<div class="flex a-c item"> |
||||
|
<div class="label_width">姓名:</div> |
||||
|
<el-input v-model="confirmData.patientName" style="flex: 1" /></div> |
||||
|
<div class="flex a-c item">性别:<el-input v-model="confirmData.patientGender" style="flex: 1" /></div> |
||||
|
<div class="flex a-c item">年龄:<el-input v-model="confirmData.patientAge" style="flex: 1" /></div> |
||||
|
<div class="flex a-c item">科室:<el-input v-model="confirmData.ks" style="flex: 1" /></div> |
||||
|
<div class="flex a-c item">登记号:<el-input v-model="confirmData.patientId" style="flex: 1" /></div> |
||||
|
</div> |
||||
|
<div class="flex a-c m-b"> |
||||
|
<div class="label_width">诊断:</div> |
||||
|
<el-input v-model="confirmData.zd" :autosize="{ minRows: 1, maxRows: 3}" type="textarea" style="flex: 1" /> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="flex" style="text-align: left"> |
||||
|
<div style="word-break: keep-all;margin-right: 10px">治疗项目:</div> |
||||
|
<div> |
||||
|
<el-checkbox-group v-model="projectList"> |
||||
|
<el-checkbox v-for="(item,index) in checkList" :key="index" :label="item" /> |
||||
|
<el-checkbox label="其他"> |
||||
|
其他:<el-input v-model="confirmData.other" /> |
||||
|
</el-checkbox> |
||||
|
</el-checkbox-group> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="flex a-c"> |
||||
|
<span>1.过敏史:</span> |
||||
|
<el-input v-model="confirmData.gms" style="flex: 1" type="textarea" :autosize="{ minRows: 1, maxRows: 3}" /> |
||||
|
</div> |
||||
|
<div style="text-align: left"> |
||||
|
(操作中会根据情况使用药物:盐酸丙美卡因滴眼液、左氧氟沙星滴眼液、妥布霉素地塞米松眼膏等)。 |
||||
|
</div> |
||||
|
<div v-for="(item,idx) in contentList" :key="idx" class="contentItem"> |
||||
|
<div> |
||||
|
{{ idx+2 }}. |
||||
|
<span style="margin-left: 5px;font-weight: bold">{{ item.bold }}</span> |
||||
|
{{ item.text }} |
||||
|
</div> |
||||
|
<el-input v-if="idx===contentList.length-1" v-model="confirmData.zlxmOther" style="flex: 1;text-align: left" /> |
||||
|
</div> |
||||
|
<div style="text-align: left"> |
||||
|
<div class="flex a-c j-b"> |
||||
|
<div> |
||||
|
<span style="word-break: keep-all">患者签字:</span> |
||||
|
<span style="margin-left:10px" @click="signClick('patientSign')"> |
||||
|
<span v-if="!formListValue.patientSign"> |
||||
|
<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: 120px;height: 60px;" :src="formListValue.patientSign"> |
||||
|
</span> |
||||
|
</div> |
||||
|
<div class="flex"> |
||||
|
患者家属签字: |
||||
|
<span style="margin-left:10px" @click="signClick('patientJsSign')"> |
||||
|
<span v-if="!formListValue.patientJsSign"> |
||||
|
<img v-if="printHidden" :src="require('@/assets/img/signature.png')" alt=""> |
||||
|
<el-input v-else style="width: 80px" /> |
||||
|
</span> |
||||
|
<img v-else style="width: 120px;height: 60px;" :src="formListValue.patientJsSign"> |
||||
|
</span> |
||||
|
<span style="margin-left: 15px">与患者关系<el-input v-model="confirmData.gx" style="width: 150px" /></span> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div> |
||||
|
<span style="word-break: keep-all">操作者签字:</span> |
||||
|
<span style="margin-left:10px"> |
||||
|
<img style="width: 80px;height: 40px;" :src="confirmData.czzSign"> |
||||
|
</span> |
||||
|
</div> |
||||
|
<div style="text-align: right">日期: |
||||
|
<el-date-picker |
||||
|
v-model="confirmData.bdDate" |
||||
|
style="width: 150px" |
||||
|
type="date" |
||||
|
value-format="yyyy-MM-dd" |
||||
|
/> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</template> |
||||
|
|
||||
|
<script> |
||||
|
import FormHeader from '@/page-subspecialty/views/modules/formList/FormHeader.vue' |
||||
|
import styeFormSign from '@/mixins/styeFormSign' |
||||
|
|
||||
|
export default { |
||||
|
name: 'TreatNotice', |
||||
|
components: { FormHeader }, |
||||
|
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 { |
||||
|
projectList: [], |
||||
|
checkList: ['拔倒睫', '泪道冲洗', '结膜囊冲洗', '耳尖放血', '眼部颞侧皮下注射', '结膜结石剔除', '角结膜拆线', '皮肤拆线', |
||||
|
'睑板腺熏蒸按摩+睑缘清洁'], |
||||
|
contentList: [ |
||||
|
{ |
||||
|
bold: '', |
||||
|
text: '若您有冠心病、糖尿病等病史或情绪过于紧张,在治疗过程中可能会因此出现突发意外情况。' |
||||
|
}, { |
||||
|
bold: '拔倒睫:', |
||||
|
text: '若您配合不当,可能会碰伤角膜等风险。拔掉的倒睫毛一段时间后还会重新生长,大部分患者需要反复拔倒睫。' |
||||
|
|
||||
|
}, { |
||||
|
bold: '泪道冲洗:', |
||||
|
text: '可能存在假道、组织损伤、呛咳等并发症。部分患者需要根据情况增加冲洗次数。' |
||||
|
}, { |
||||
|
bold: '眼部颞侧皮下注射:', |
||||
|
text: '注射完毕后,请轻压5-10分钟。反复注射后该处部位可能会有硬结及淤青,一定时间后会自然吸收。' |
||||
|
}, { |
||||
|
bold: '结膜结石剔除:', |
||||
|
text: '结石剔除过程中或短时间内结膜会少量出血,属于正常现象;结石量多及比较大者可能不能一次性完成,操作人员会根据情况增加剔除次数。' |
||||
|
}, { |
||||
|
bold: '角结膜拆线:', |
||||
|
text: '操作过程中需您全程配合,不适请举手,不可晃动头部。可能存在角膜穿孔等并发症。' |
||||
|
}, { |
||||
|
bold: '睑板腺熏蒸按摩+睑缘清洁:', |
||||
|
text: '请您在熏蒸时应保持适当距离,避免烫伤;按摩结束后勿揉擦眼睛;24小时内眼睛勿进水。' |
||||
|
}, { |
||||
|
bold: '', |
||||
|
text: '其他:' |
||||
|
} |
||||
|
], |
||||
|
print: { |
||||
|
id: 'treatNotice', |
||||
|
closeCallback: () => { |
||||
|
this.printHidden = true |
||||
|
} |
||||
|
}, |
||||
|
printHidden: true, |
||||
|
formListValue: { |
||||
|
patientSign: '', |
||||
|
patientJsSign: '' |
||||
|
}, |
||||
|
confirmData: { |
||||
|
patientName: '', |
||||
|
patientGender: '', |
||||
|
patientAge: '', |
||||
|
ks: '', |
||||
|
patientId: '', |
||||
|
zd: '', |
||||
|
czzSign: '', |
||||
|
other: '', |
||||
|
gms: '', |
||||
|
zlxmOther: '', |
||||
|
bdDate: '', |
||||
|
patientJsSign: '', |
||||
|
patientSign: '', |
||||
|
zlxm: '', // 治疗项目 |
||||
|
gx: '' // 关系 |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
watch: { |
||||
|
caseId(val) { |
||||
|
if (val) { |
||||
|
this.getConfirmDetail() |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
created() { |
||||
|
this.getConfirmDetail() |
||||
|
}, |
||||
|
methods: { |
||||
|
signClick(index) { |
||||
|
this.initPlugin(index) |
||||
|
}, |
||||
|
handlePrint() { |
||||
|
if (!this.isCreator) { |
||||
|
return |
||||
|
} |
||||
|
this.handleSaveTable() |
||||
|
}, |
||||
|
getConfirmDetail() { |
||||
|
this.$http.get('/mzbl/getMzblykmzxz', { params: { |
||||
|
caseId: this.caseId |
||||
|
}}).then(data => { |
||||
|
const detail = data.data.data |
||||
|
this.confirmData = { ...detail } |
||||
|
this.projectList = this.confirmData.zlxm ? this.confirmData.zlxm.split('/') : [] |
||||
|
this.formListValue.patientSign = detail.patientSign |
||||
|
this.formListValue.patientJsSign = detail.patientJsSign |
||||
|
if (!detail.jzNumber) { |
||||
|
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 |
||||
|
this.confirmData.ks = this.patientDetail.department |
||||
|
this.confirmData.bdDate = this.$moment().format('YYYY-MM-DD') |
||||
|
} |
||||
|
}) |
||||
|
}, |
||||
|
// 保存 |
||||
|
handleSaveTable() { |
||||
|
this.confirmData.zlxm = this.projectList.join('/') |
||||
|
this.confirmData.patientSign = this.formListValue.patientSign |
||||
|
this.confirmData.patientJsSign = this.formListValue.patientJsSign |
||||
|
this.confirmData.jzNumber = window.sessionStorage.getItem('jzNumber') |
||||
|
this.$http.post('/mzbl/saveMzblykmzxz', { |
||||
|
...this.confirmData, |
||||
|
caseId: this.caseId |
||||
|
}).then(() => { |
||||
|
this.$emit('handleSaveTable') |
||||
|
}) |
||||
|
}, |
||||
|
// 删除 |
||||
|
formDelete() { |
||||
|
this.$confirmFun('确定删除吗?').then(() => { |
||||
|
this.$http.post('/mzbl/delMzblykmzxz', { |
||||
|
id: this.caseId |
||||
|
}).then(() => { |
||||
|
this.$message.success('删除成功') |
||||
|
this.$emit('formDelete', 'del') |
||||
|
}) |
||||
|
}) |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
</script> |
||||
|
|
||||
|
<style scoped lang="scss"> |
||||
|
.flex{ |
||||
|
display: flex; |
||||
|
} |
||||
|
.a-c{ |
||||
|
align-items: center; |
||||
|
} |
||||
|
.j-b{ |
||||
|
justify-content: space-between; |
||||
|
} |
||||
|
.j-c{ |
||||
|
justify-content: center; |
||||
|
} |
||||
|
#treatNotice{ |
||||
|
font-size: 16px; |
||||
|
} |
||||
|
.cornealBox{ |
||||
|
background: #fff; |
||||
|
padding: 10px 20px 50px 20px; |
||||
|
page-break-after:always; |
||||
|
height: 100%; |
||||
|
overflow: auto; |
||||
|
} |
||||
|
.btnBox{ |
||||
|
position: fixed; |
||||
|
z-index: 999; |
||||
|
right: 90px; |
||||
|
} |
||||
|
.contentItem{ |
||||
|
text-align: left; |
||||
|
margin-bottom: 10px; |
||||
|
display: flex; |
||||
|
} |
||||
|
::v-deep .el-checkbox__label{ |
||||
|
font-size: 16px !important; |
||||
|
color: #000; |
||||
|
} |
||||
|
::v-deep .el-input__inner { |
||||
|
border: none; |
||||
|
height: 26px !important; |
||||
|
line-height: 26px !important; |
||||
|
text-align: center; |
||||
|
font-size: 16px; |
||||
|
border-bottom: 1px solid #8e8c8c; |
||||
|
border-radius: 0; |
||||
|
padding: 0; |
||||
|
} |
||||
|
::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; |
||||
|
} |
||||
|
.m-b{ |
||||
|
margin-bottom: 10px; |
||||
|
} |
||||
|
</style> |
Loading…
Reference in new issue