46 changed files with 1314 additions and 10428 deletions
@ -1,7 +1,9 @@ |
|||
NODE_ENV=development |
|||
# VUE_APP_NODE_ENV=dev |
|||
VUE_APP_LOGIN_URL='http://47.110.224.240:8022' |
|||
|
|||
|
|||
# 公司内网环境 |
|||
# VUE_APP_LOGIN_URL='http://192.168.0.35:8001' |
|||
# 孟工本地:http://192.168.0.121:8028 |
|||
# VUE_APP_LOGIN_URL='http://192.168.0.35:8028' |
|||
# 温州的 |
|||
VUE_APP_LOGIN_URL='http://47.110.224.240:8022' |
|||
|
|||
@ -1,21 +1,14 @@ |
|||
NODE_ENV=production |
|||
VUE_APP_NODE_ENV=prod |
|||
# 温州正式环境 |
|||
VUE_APP_LOGIN_URL='http://192.168.2.32:8022' |
|||
# VUE_APP_LOGIN_URL='http://192.168.2.32:8022' |
|||
|
|||
# 温州测试环境 |
|||
# VUE_APP_LOGIN_URL='http://192.168.4.109:83' |
|||
|
|||
|
|||
|
|||
# VUE_APP_LOGIN_URL='https://quguang.huimu.cloud/api/' |
|||
# VUE_APP_LOGIN_URL='http://47.110.224.240:8022' |
|||
|
|||
# 公司内网环境 |
|||
# VUE_APP_LOGIN_URL='http://192.168.0.35:8001' |
|||
VUE_APP_LOGIN_URL='http://192.168.0.35:8028' |
|||
|
|||
# 后缀 -- 公司内部环境打开 |
|||
# VUE_APP_BASE_HOUZHUI='/wz_qg' |
|||
VUE_APP_BASE_HOUZHUI='/hz_qg' |
|||
|
|||
# 信创 |
|||
# VUE_APP_LOGIN_URL='http://192.168.0.36:8022' |
|||
|
|||
File diff suppressed because it is too large
File diff suppressed because it is too large
@ -1,168 +0,0 @@ |
|||
<template> |
|||
<el-dialog class="dzblLook" :visible.sync="visible" fullscreen @close="closeDialog"> |
|||
<h5formButton ref="h5formButtonRef" :bl-print-show="true" :form-print-show="false" :bm-printer-show="false" /> |
|||
<div v-if="xdList.length>0" class="dzblContent left"> |
|||
<div class="left-content"> |
|||
<div class="title-bt">修订记录</div> |
|||
<div class="left-content-ul"> |
|||
<div |
|||
v-for="(item,index) in xdList" |
|||
:key="index" |
|||
class="li" |
|||
:class="currentIndex===index ? 'currentLi' : ''" |
|||
@click="leftListClick(item,index)" |
|||
> |
|||
<span class="padding-right-10">{{ item.createName }}</span> |
|||
<span>于{{ item.createDate }}编辑了病历</span> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<jmjl-dzbl-book-fun |
|||
v-if="jmjlDzblBookShow" |
|||
ref="jmjlDzblBookFunRef" |
|||
:current-url="currentUrl" |
|||
:archive-case-c-r-f-item="archiveCaseCRFItem" |
|||
/> |
|||
</div> |
|||
<div v-else class="nodata-father"> |
|||
<img src="@/assets/img/nodata.png" alt="" class="nodata"> |
|||
</div> |
|||
</el-dialog> |
|||
</template> |
|||
|
|||
<script> |
|||
import h5formButton from '@/components/H5formOhter/h5formButton' |
|||
import jmjlDzblBookFun from '@/components/H5form/jmjlDzblBookFun' |
|||
export default { |
|||
components: { |
|||
h5formButton, |
|||
jmjlDzblBookFun |
|||
}, |
|||
props: { |
|||
archiveCaseCRFItem: { |
|||
type: Object, |
|||
default: () => { } |
|||
}, |
|||
currentUrl: { |
|||
type: String, |
|||
default: '' |
|||
} |
|||
}, |
|||
data() { |
|||
return { |
|||
visible: false, |
|||
jmjlDzblBookShow: true, |
|||
xdList: [], |
|||
currentIndex: 0 |
|||
} |
|||
}, |
|||
computed: { |
|||
dataRule() { |
|||
return { |
|||
} |
|||
} |
|||
}, |
|||
methods: { |
|||
init() { |
|||
this.visible = true |
|||
this.$nextTick(() => { |
|||
this.getInfo() |
|||
}) |
|||
}, |
|||
// 获取左侧列表 |
|||
async getInfo() { |
|||
const { data: res } = await this.$http.get('/quguang/jmjl/getJmjlRecordList', { |
|||
params: { |
|||
formId: this.archiveCaseCRFItem.id |
|||
} |
|||
}) |
|||
if (res.code === 0) { |
|||
this.xdList = res.data |
|||
this.$nextTick(() => { |
|||
res.data.length > 0 ? this.$refs.jmjlDzblBookFunRef.getQgEmrRecordInfo(res.data[0].id) : '' |
|||
}) |
|||
} else { |
|||
this.$message.error(res.msg) |
|||
} |
|||
}, |
|||
// 点击左侧列表 |
|||
leftListClick(formItem, index) { |
|||
this.currentIndex = index |
|||
this.jmjlDzblBookShow = false |
|||
this.$nextTick(() => { |
|||
this.jmjlDzblBookShow = true |
|||
setTimeout(() => { |
|||
this.$refs.jmjlDzblBookFunRef.getQgEmrRecordInfo(formItem.id) |
|||
}, 10) |
|||
}) |
|||
}, |
|||
// 关闭表单 |
|||
closeDialog() { |
|||
this.$emit('closeDialog') |
|||
} |
|||
} |
|||
} |
|||
</script> |
|||
<style lang="scss"> |
|||
.dzblLook { |
|||
.nodata-father { |
|||
display: flex; |
|||
justify-content: center; |
|||
align-items: center; |
|||
} |
|||
.nodata { |
|||
width: 400px; |
|||
margin-top: 130px; |
|||
} |
|||
|
|||
.dzblContent { |
|||
display: flex; |
|||
justify-content: space-between; |
|||
font-size: 16px; |
|||
|
|||
.left-content { |
|||
min-width: 350px; |
|||
margin-right: 20px; |
|||
border-right: 1px solid #6f6f6f; |
|||
} |
|||
.left-content-ul { |
|||
height: 85vh; |
|||
overflow-y: auto; |
|||
} |
|||
.title-bt { |
|||
margin-bottom: 20px; |
|||
font-weight: 700; |
|||
font-size: 20px; |
|||
} |
|||
.li { |
|||
padding: 12px 0; |
|||
text-align: center; |
|||
cursor: pointer; |
|||
border-bottom: 1px solid #ccc; |
|||
} |
|||
.currentLi { |
|||
background: #1890ff; |
|||
color: #fff; |
|||
padding: 12px 0; |
|||
text-align: center; |
|||
} |
|||
} |
|||
} |
|||
</style> |
|||
<style lang="scss"> |
|||
.dzblLook { |
|||
.checkDate-picker { |
|||
width: 100%; |
|||
} |
|||
.el-dialog__body { |
|||
padding-left:10px; |
|||
padding-right: 10px; |
|||
} |
|||
.formItemOne .el-form-item__content { |
|||
display: flex; |
|||
} |
|||
.el-dialog__header { |
|||
padding-top: 0; |
|||
} |
|||
} |
|||
</style> |
|||
File diff suppressed because it is too large
@ -1,44 +0,0 @@ |
|||
<template> |
|||
<div id="pdfDom" class="left pdfBlobContent"> |
|||
<jmjl-dzbl-book-fun |
|||
ref="jmjlDzblBookFunRef" |
|||
:current-url="currentUrl" |
|||
:archive-case-c-r-f-item="archiveCaseCRFItem" |
|||
:save-pdf="true" |
|||
/> |
|||
</div> |
|||
</template> |
|||
|
|||
<script> |
|||
import jmjlDzblBookFun from '@/components/H5form/jmjlDzblBookFun' |
|||
export default { |
|||
components: { |
|||
jmjlDzblBookFun |
|||
}, |
|||
props: { |
|||
archiveCaseCRFItem: { |
|||
type: Object, |
|||
default: () => { } |
|||
}, |
|||
currentUrl: { |
|||
type: String, |
|||
default: '' |
|||
} |
|||
}, |
|||
data() { |
|||
return { |
|||
} |
|||
}, |
|||
computed: { |
|||
dataRule() { |
|||
return { |
|||
} |
|||
} |
|||
}, |
|||
methods: { |
|||
init(id, formFlag) { |
|||
this.$refs.jmjlDzblBookFunRef.init(id, formFlag) |
|||
} |
|||
} |
|||
} |
|||
</script> |
|||
@ -1,172 +0,0 @@ |
|||
<template> |
|||
<el-dialog class="dzblLook" :visible.sync="visible" fullscreen @close="closeDialog"> |
|||
<h5formButton ref="h5formButtonRef" :bl-print-show="true" :form-print-show="false" :bm-printer-show="false" /> |
|||
<div v-if="xdList.length>0" class="dzblContent left"> |
|||
<div class="left-content"> |
|||
<div class="title-bt">修订记录</div> |
|||
<div class="left-content-ul"> |
|||
<div |
|||
v-for="(item,index) in xdList" |
|||
:key="index" |
|||
class="li" |
|||
:class="currentIndex===index ? 'currentLi' : ''" |
|||
@click="leftListClick(item,index)" |
|||
> |
|||
<span class="padding-right-10">{{ item.createName }}</span> |
|||
<span>于{{ item.createDate }}编辑了病历</span> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<jmjlOperaCheckLookPdfFun |
|||
v-if="jmjlOperaCheckLookShow" |
|||
ref="jmjlOperaCheckLookPdfFunRef" |
|||
:current-url="currentUrl" |
|||
:archive-case-c-r-f-item="archiveCaseCRFItem" |
|||
/> |
|||
</div> |
|||
<div v-else class="nodata-father"> |
|||
<img src="@/assets/img/nodata.png" alt="" class="nodata"> |
|||
</div> |
|||
</el-dialog> |
|||
</template> |
|||
|
|||
<script> |
|||
import h5formButton from '@/components/H5formOhter/h5formButton' |
|||
import jmjlOperaCheckLookPdfFun from '@/components/H5form/jmjlOperaCheckLookPdfFun' |
|||
export default { |
|||
components: { |
|||
h5formButton, |
|||
jmjlOperaCheckLookPdfFun |
|||
}, |
|||
props: { |
|||
archiveCaseCRFItem: { |
|||
type: Object, |
|||
default: () => { } |
|||
}, |
|||
currentUrl: { |
|||
type: String, |
|||
default: '' |
|||
}, |
|||
patientInfoObj: { |
|||
type: Object, |
|||
default: () => { } |
|||
} |
|||
}, |
|||
data() { |
|||
return { |
|||
visible: false, |
|||
jmjlOperaCheckLookShow: true, |
|||
xdList: [], |
|||
currentIndex: 0 |
|||
} |
|||
}, |
|||
computed: { |
|||
dataRule() { |
|||
return { |
|||
} |
|||
} |
|||
}, |
|||
methods: { |
|||
init() { |
|||
this.visible = true |
|||
this.$nextTick(() => { |
|||
this.getInfo() |
|||
}) |
|||
}, |
|||
// 获取左侧列表 |
|||
async getInfo() { |
|||
const { data: res } = await this.$http.get('/quguang/jmjl/shjc/getJmjlShjcRecordList', { |
|||
params: { |
|||
formId: this.archiveCaseCRFItem.id |
|||
} |
|||
}) |
|||
if (res.code === 0) { |
|||
this.xdList = res.data |
|||
this.$nextTick(() => { |
|||
res.data.length > 0 ? this.$refs.jmjlOperaCheckLookPdfFunRef.getQgEmrRecordInfo(res.data[0].id) : '' |
|||
}) |
|||
} else { |
|||
this.$message.error(res.msg) |
|||
} |
|||
}, |
|||
// 点击左侧列表 |
|||
leftListClick(formItem, index) { |
|||
this.currentIndex = index |
|||
this.jmjlOperaCheckLookShow = false |
|||
this.$nextTick(() => { |
|||
this.jmjlOperaCheckLookShow = true |
|||
setTimeout(() => { |
|||
this.$refs.jmjlOperaCheckLookPdfFunRef.getQgEmrRecordInfo(formItem.id) |
|||
}, 10) |
|||
}) |
|||
}, |
|||
// 关闭表单 |
|||
closeDialog() { |
|||
this.$emit('closeDialog') |
|||
} |
|||
} |
|||
} |
|||
</script> |
|||
<style lang="scss"> |
|||
.dzblLook { |
|||
.nodata-father { |
|||
display: flex; |
|||
justify-content: center; |
|||
align-items: center; |
|||
} |
|||
.nodata { |
|||
width: 400px; |
|||
margin-top: 130px; |
|||
} |
|||
|
|||
.dzblContent { |
|||
display: flex; |
|||
justify-content: space-between; |
|||
font-size: 16px; |
|||
|
|||
.left-content { |
|||
min-width: 350px; |
|||
margin-right: 20px; |
|||
border-right: 1px solid #6f6f6f; |
|||
} |
|||
.left-content-ul { |
|||
height: 85vh; |
|||
overflow-y: auto; |
|||
} |
|||
.title-bt { |
|||
margin-bottom: 20px; |
|||
font-weight: 700; |
|||
font-size: 20px; |
|||
} |
|||
.li { |
|||
padding: 12px 0; |
|||
text-align: center; |
|||
cursor: pointer; |
|||
border-bottom: 1px solid #ccc; |
|||
} |
|||
.currentLi { |
|||
background: #1890ff; |
|||
color: #fff; |
|||
padding: 12px 0; |
|||
text-align: center; |
|||
} |
|||
} |
|||
} |
|||
</style> |
|||
<style lang="scss"> |
|||
.dzblLook { |
|||
.checkDate-picker { |
|||
width: 100%; |
|||
} |
|||
.el-dialog__body { |
|||
padding-left:10px; |
|||
padding-right: 10px; |
|||
} |
|||
.formItemOne .el-form-item__content { |
|||
display: flex; |
|||
} |
|||
.el-dialog__header { |
|||
padding-top: 0; |
|||
} |
|||
} |
|||
</style> |
|||
@ -1,42 +0,0 @@ |
|||
<template> |
|||
<div id="pdfDom" class="pdfBlobContent left"> |
|||
<jmjlOperaCheckLookPdfFun |
|||
ref="jmjlOperaCheckLookPdfFunRef" |
|||
:current-url="currentUrl" |
|||
:archive-case-c-r-f-item="archiveCaseCRFItem" |
|||
:save-pdf="true" |
|||
/> |
|||
</div> |
|||
</template> |
|||
|
|||
<script> |
|||
import jmjlOperaCheckLookPdfFun from '@/components/H5form/jmjlOperaCheckLookPdfFun' |
|||
export default { |
|||
components: { |
|||
jmjlOperaCheckLookPdfFun |
|||
}, |
|||
props: { |
|||
archiveCaseCRFItem: { |
|||
type: Object, |
|||
default: () => { } |
|||
}, |
|||
currentUrl: { |
|||
type: String, |
|||
default: '' |
|||
}, |
|||
patientInfoObj: { |
|||
type: Object, |
|||
default: () => { } |
|||
} |
|||
}, |
|||
data() { |
|||
return { |
|||
} |
|||
}, |
|||
methods: { |
|||
init(id, formFlag) { |
|||
this.$refs.jmjlOperaCheckLookPdfFunRef.init(id, formFlag) |
|||
} |
|||
} |
|||
} |
|||
</script> |
|||
@ -1,561 +0,0 @@ |
|||
<template> |
|||
<div v-if="flag===1" style="flex:1"> |
|||
<div |
|||
id="printButtonA5" |
|||
:style="savePdf ? 'position: relative;width: 210mm;font-family:msyh;transform: scale(0.95);transform-origin: left top;' : ''" |
|||
> |
|||
<div |
|||
ref="htmlContent" |
|||
:style="savePdf ? 'max-width: 100%;margin: 0 auto;' : ''" |
|||
> |
|||
<!-- v-if="currentUrl.includes('192')" --> |
|||
<div |
|||
style=" |
|||
font-size: 30px; |
|||
font-weight: 700; |
|||
text-align: center; |
|||
font-family:MicrosoftYaHeiBold; |
|||
" |
|||
>温州医科大学附属眼视光医院</div> |
|||
<div |
|||
style=" |
|||
font-size: 30px; |
|||
font-weight: 700; |
|||
text-align: center; |
|||
margin-bottom: 10px; |
|||
font-family:MicrosoftYaHeiBold; |
|||
" |
|||
>术后角膜交联复查门诊病历</div> |
|||
<div |
|||
style=" |
|||
display: flex; |
|||
justify-content: center; |
|||
border-bottom: 2px solid #6f6f6f; |
|||
padding-bottom: 12px; |
|||
margin-bottom: 12px; |
|||
" |
|||
> |
|||
<span style="padding-right: 30px">姓名:{{ formListValue.patientName }}</span> |
|||
<span style="padding-right: 30px">性别:{{ formListValue.patientSex }}</span> |
|||
<span style="padding-right: 30px">年龄:{{ formListValue.patientAge }}岁</span> |
|||
<span style="padding-right: 30px">PID:{{ formListValue.patientId }}</span> |
|||
<span>日期:{{ formListValue.createDate }}</span> |
|||
</div> |
|||
</div> |
|||
<div |
|||
id="printA5" |
|||
style=" |
|||
flex: 1; |
|||
font-size: 16px; |
|||
text-align: justify; |
|||
line-height: 22px; |
|||
" |
|||
:style="savePdf ? 'max-width: 100%;margin: 0 auto;' : ''" |
|||
> |
|||
<div> |
|||
<div style="margin-bottom: 8px; break-inside: avoid"> |
|||
<span style="font-weight: 700;font-family:MicrosoftYaHeiBold;">主诉及病史:</span> |
|||
<span> |
|||
<span> |
|||
<span |
|||
v-if="formListValue.ssOuOperaBieM" |
|||
>双眼{{ formListValue.ssOuOperaBieM }}术后{{ formListValue.zsOperaDayOd ? formListValue.zsOperaDayOd : '-' }}{{ formListValue.zsOperaUnitOd }}</span> |
|||
<span |
|||
v-if="formListValue.ssOdOperaBieM" |
|||
>右眼{{ formListValue.ssOdOperaBieM }}术后{{ formListValue.zsOperaDayOd ? formListValue.zsOperaDayOd : '-' }}{{ formListValue.zsOperaUnitOd }}</span> |
|||
<span |
|||
v-if="formListValue.ssOsOperaBieM" |
|||
>左眼{{ formListValue.ssOsOperaBieM }}术后{{ formListValue.zsOperaDayOs ? formListValue.zsOperaDayOs : '-' }}{{ formListValue.zsOperaUnitOs }}</span> |
|||
</span> |
|||
<template v-show="!formListValue.ssOuOperaBieM || !formListValue.ssOuOperaName"> |
|||
<span v-show="zsTextOd!==zsTextOs"> |
|||
<span v-show="zsTextOd"> |
|||
,右眼{{ zsTextOd }} |
|||
</span> |
|||
<span v-show="zsTextOs"> |
|||
,左眼{{ zsTextOs }} |
|||
</span> |
|||
</span> |
|||
<span v-show=" zsTextOd && zsTextOs && zsTextOd===zsTextOs"> |
|||
,双眼{{ zsTextOd }} |
|||
</span> |
|||
<span>,来我院复查</span> |
|||
</template> |
|||
<template v-show="formListValue.ssOuOperaBieM || formListValue.ssOuOperaName"> |
|||
<!-- 双眼{{formListValue.}} --> |
|||
</template> |
|||
</span> |
|||
</div> |
|||
<div style="margin-bottom: 8px; break-inside: avoid"> |
|||
<span style="font-weight: 700;font-family:MicrosoftYaHeiBold;">专科检查:</span> |
|||
<span> |
|||
<span> |
|||
<b style="font-family:MicrosoftYaHeiBold;">裸眼视力:</b> |
|||
<span v-show="formListValue.slMingDate">{{ formListValue.slMingDate }}:</span> |
|||
右: |
|||
<span |
|||
style="padding-right: 10px;" |
|||
>明:{{ formListValue.slLyYuanMingOd ? formListValue.slLyYuanMingOd : '-' }}</span>、 |
|||
<span>暗:{{ formListValue.slLyYuanAnOd ? formListValue.slLyYuanAnOd : '-' }}</span> |
|||
; |
|||
左: |
|||
<span |
|||
style="padding-right: 10px;" |
|||
>明:{{ formListValue.slLyYuanMingOs ? formListValue.slLyYuanMingOs: '-' }}</span>、 |
|||
<span>暗:{{ formListValue.slLyYuanAnOs ? formListValue.slLyYuanAnOs: '-' }}</span> |
|||
; |
|||
</span> |
|||
<span> |
|||
<b style="font-family:MicrosoftYaHeiBold;">眼压:</b> |
|||
<span v-show="formListValue.yyDate">{{ formListValue.yyDate }}:</span> |
|||
右:{{ formListValue.yyOd1 ? formListValue.yyOd1 : '-' }}/{{ formListValue.yyOd2 ? formListValue.yyOd2 : '-' }}mmHg、 |
|||
左:{{ formListValue.yyOs1 ? formListValue.yyOs1 : '-' }}/{{ formListValue.yyOs2 ? formListValue.yyOs2 : '-' }}mmHg; |
|||
</span> |
|||
<span> |
|||
<span style="margin-top: 10px;"><b style="font-family:MicrosoftYaHeiBold;">眼科检查:</b></span> |
|||
右眼: |
|||
<span |
|||
v-if="formListValue.ykjcJiemOd.length <=0 && formListValue.ykjcJiaomOd.length<=0 |
|||
&& formListValue.ykjcQianfOd.length<=0 && formListValue.ykjcJintOd.length<=0 " |
|||
>-</span> |
|||
<span v-if="formListValue.ykjcYanjOd.length>0"> |
|||
眼睑: |
|||
<span |
|||
v-for="(item,index) in formListValue.ykjcYanjOd" |
|||
:key="index" |
|||
>{{ item }} |
|||
<span v-if="formListValue.ykjcYanjOd.length-1 >index"> | </span> |
|||
</span> |
|||
<span |
|||
v-show=" |
|||
formListValue.ykjcJiemOd.length>0 || |
|||
formListValue.ykjcJiaomOd.length>0 || |
|||
formListValue.ykjcQianfOd.length>0 || |
|||
formListValue.ykjcJintOd.length>0" |
|||
>、</span> |
|||
</span> |
|||
<span v-if="formListValue.ykjcJiemOd.length>0"> |
|||
结膜: |
|||
<span |
|||
v-for="(item,index) in formListValue.ykjcJiemOd" |
|||
:key="index" |
|||
>{{ item }} |
|||
<span v-if="formListValue.ykjcJiemOd.length-1 >index"> | </span> |
|||
</span> |
|||
<span |
|||
v-show=" |
|||
formListValue.ykjcJiaomOd.length>0 || |
|||
formListValue.ykjcQianfOd.length>0 || |
|||
formListValue.ykjcJintOd.length>0" |
|||
>、</span> |
|||
</span> |
|||
<span v-if="formListValue.ykjcJiaomOd.length>0"> |
|||
角膜: |
|||
<span |
|||
v-for="(item,index) in formListValue.ykjcJiaomOd" |
|||
:key="index" |
|||
>{{ item }} |
|||
<span v-if="formListValue.ykjcJiaomOd.length-1 >index"> | </span> |
|||
</span> |
|||
<span |
|||
v-show=" |
|||
formListValue.ykjcQianfOd.length>0 || |
|||
formListValue.ykjcJintOd.length>0" |
|||
>、</span> |
|||
</span> |
|||
<span v-if="formListValue.ykjcQianfOd.length>0"> |
|||
前房: |
|||
<span |
|||
v-for="(item,index) in formListValue.ykjcQianfOd" |
|||
:key="index" |
|||
>{{ item }} |
|||
<span v-if="formListValue.ykjcQianfOd.length-1 >index"> | </span> |
|||
</span> |
|||
<span |
|||
v-show=" |
|||
formListValue.ykjcJintOd.length>0" |
|||
>、</span> |
|||
</span> |
|||
<span v-if="formListValue.ykjcJintOd.length>0"> |
|||
晶体: |
|||
<span |
|||
v-for="(item,index) in formListValue.ykjcJintOd" |
|||
:key="index" |
|||
>{{ item }} |
|||
<span v-if="formListValue.ykjcJintOd.length-1 >index"> | </span> |
|||
</span> |
|||
</span> |
|||
</span> |
|||
<span>;</span> |
|||
<span> |
|||
左眼: |
|||
<span |
|||
v-if="formListValue.ykjcJiemOs.length <=0 && formListValue.ykjcJiaomOs.length<=0 |
|||
&& formListValue.ykjcQianfOs.length<=0 && formListValue.ykjcJintOs.length<=0 " |
|||
>-</span> |
|||
<span v-if="formListValue.ykjcYanjOs.length>0"> |
|||
眼睑: |
|||
<span |
|||
v-for="(item,index) in formListValue.ykjcYanjOs" |
|||
:key="index" |
|||
>{{ item }} |
|||
<span v-if="formListValue.ykjcYanjOs.length-1 >index"> | </span> |
|||
</span> |
|||
<span |
|||
v-show=" |
|||
formListValue.ykjcJiemOs.length>0 || |
|||
formListValue.ykjcJiaomOs.length>0 || |
|||
formListValue.ykjcQianfOs.length>0 || |
|||
formListValue.ykjcJintOs.length>0" |
|||
>、</span> |
|||
</span> |
|||
<span v-if="formListValue.ykjcJiemOs.length>0"> |
|||
结膜: |
|||
<span |
|||
v-for="(item,index) in formListValue.ykjcJiemOs" |
|||
:key="index" |
|||
>{{ item }} |
|||
<span v-if="formListValue.ykjcJiemOs.length-1 >index"> | </span> |
|||
</span> |
|||
<span |
|||
v-show=" |
|||
formListValue.ykjcJiaomOs.length>0 || |
|||
formListValue.ykjcQianfOs.length>0 || |
|||
formListValue.ykjcJintOs.length>0" |
|||
>、</span> |
|||
</span> |
|||
<span v-if="formListValue.ykjcJiaomOs.length>0"> |
|||
角膜: |
|||
<span |
|||
v-for="(item,index) in formListValue.ykjcJiaomOs" |
|||
:key="index" |
|||
>{{ item }} |
|||
<span v-if="formListValue.ykjcJiaomOs.length-1 >index"> | </span> |
|||
</span> |
|||
<span |
|||
v-show=" |
|||
formListValue.ykjcQianfOs.length>0 || |
|||
formListValue.ykjcJintOs.length>0" |
|||
>、</span> |
|||
</span> |
|||
<span v-if="formListValue.ykjcQianfOs.length>0"> |
|||
前房: |
|||
<span |
|||
v-for="(item,index) in formListValue.ykjcQianfOs" |
|||
:key="index" |
|||
>{{ item }} |
|||
<span v-if="formListValue.ykjcQianfOs.length-1 >index"> | </span> |
|||
</span> |
|||
<span v-show="formListValue.ykjcJintOs.length>0">、</span> |
|||
</span> |
|||
<span v-if="formListValue.ykjcJintOs.length>0"> |
|||
晶体: |
|||
<span |
|||
v-for="(item,index) in formListValue.ykjcJintOs" |
|||
:key="index" |
|||
>{{ item }} |
|||
<span v-if="formListValue.ykjcJintOs.length-1 >index"> | </span> |
|||
</span> |
|||
</span> |
|||
</span> |
|||
</span> |
|||
</div> |
|||
<div style="margin-bottom: 8px; break-inside: avoid"> |
|||
<span style="font-weight: 700;font-family:MicrosoftYaHeiBold;">辅助检查:</span> |
|||
<span> |
|||
<span> |
|||
<b style="font-family:MicrosoftYaHeiBold;">主觉验光小瞳:</b> |
|||
<span v-show="formListValue.zjygXtDate">{{ formListValue.zjygXtDate }}:</span> |
|||
右眼: |
|||
{{ formListValue.zjygXtOd1 ? formListValue.zjygXtOd1 : '-' }} |
|||
/ |
|||
{{ formListValue.zjygXtOd2 ? formListValue.zjygXtOd2 : '-' }} |
|||
X |
|||
{{ formListValue.zjygXtOd3 ? formListValue.zjygXtOd3 : '-' }} |
|||
= |
|||
{{ formListValue.zjygXtOd4 ? formListValue.zjygXtOd4 : '-' }}、 |
|||
</span> |
|||
<span> |
|||
左眼: |
|||
{{ formListValue.zjygXtOs1 ? formListValue.zjygXtOs1 : '-' }} |
|||
/ |
|||
{{ formListValue.zjygXtOs2 ? formListValue.zjygXtOs2 : '-' }} |
|||
X |
|||
{{ formListValue.zjygXtOs3 ? formListValue.zjygXtOs3 : '-' }} |
|||
= |
|||
{{ formListValue.zjygXtOs4 ? formListValue.zjygXtOs4 : '-' }} |
|||
</span> |
|||
</span> |
|||
<span>;</span> |
|||
<span> |
|||
<span> |
|||
<b style="font-family:MicrosoftYaHeiBold;">主觉验光散瞳:</b> |
|||
<span v-show="formListValue.zjygStDate">{{ formListValue.zjygStDate }}:</span> |
|||
右眼: |
|||
{{ formListValue.zjygStOd1 ? formListValue.zjygStOd1 : '-' }} |
|||
/ |
|||
{{ formListValue.zjygStOd2 ? formListValue.zjygStOd2 : '-' }} |
|||
X |
|||
{{ formListValue.zjygStOd3 ? formListValue.zjygStOd3 : '-' }} |
|||
= |
|||
{{ formListValue.zjygStOd4 ? formListValue.zjygStOd4 : '-' }}、 |
|||
</span> |
|||
<span> |
|||
左眼: |
|||
{{ formListValue.zjygStOs1 ? formListValue.zjygStOs1 : '-' }} |
|||
/ |
|||
{{ formListValue.zjygStOs2 ? formListValue.zjygStOs2 : '-' }} |
|||
X |
|||
{{ formListValue.zjygStOs3 ? formListValue.zjygStOs3 : '-' }} |
|||
= |
|||
{{ formListValue.zjygStOs4 ? formListValue.zjygStOs4 : '-' }} |
|||
</span> |
|||
</span> |
|||
</div> |
|||
<div style="margin-bottom: 8px; break-inside: avoid"> |
|||
<span style="font-weight: 700;font-family:MicrosoftYaHeiBold;">初步诊断:</span> |
|||
<span>{{ formListValue.zd ? formListValue.zd : '无' }}</span> |
|||
</div> |
|||
<div style="margin-bottom: 8px; break-inside: avoid"> |
|||
<span style="font-weight: 700;font-family:MicrosoftYaHeiBold;">处理意见:</span> |
|||
<span>{{ formListValue.clyj ? formListValue.clyj : '-' }}</span> |
|||
</div> |
|||
</div> |
|||
<!-- v-if="base64Flag" --> |
|||
<div |
|||
style=" |
|||
display: flex; |
|||
align-items: center; |
|||
justify-content: flex-end; |
|||
break-inside: avoid; |
|||
margin-right: 35px; |
|||
" |
|||
> |
|||
医生签字: |
|||
<span> |
|||
<span v-if="!formListValue.createSign" style="padding-left:12px;">{{ formListValue.createName ? formListValue.createName : '-' }}</span> |
|||
<img |
|||
v-else |
|||
:src="formListValue.createSign" |
|||
alt="" |
|||
width="120px" |
|||
style="display: block;break-inside: avoid" |
|||
> |
|||
</span> |
|||
<!-- <img :src="savePdf ? '' : formListValue.createSign" alt="" width="120px"> --> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<div v-if="formListValue.isConfirm===1" style="color:green;font-size:40px;text-align: center;margin-top: 60px;font-weight: 700;">已CA签字</div> |
|||
<div v-if="formListValue.isConfirm!==1" style="color:red;font-size:40px;text-align: center;margin-top: 60px;font-weight: 700;">未CA签字</div> |
|||
</div> |
|||
|
|||
</template> |
|||
|
|||
<script> |
|||
import htmlToPdfToBlob from '@/mixins/htmlToPdfToBlob' |
|||
const Base64 = require('js-base64').Base64 |
|||
export default { |
|||
mixins: [htmlToPdfToBlob], |
|||
props: { |
|||
archiveCaseCRFItem: { |
|||
type: Object, |
|||
default: () => { } |
|||
}, |
|||
currentUrl: { |
|||
type: String, |
|||
default: '' |
|||
}, |
|||
patientInfoObj: { |
|||
type: Object, |
|||
default: () => { } |
|||
}, |
|||
savePdf: { |
|||
type: Boolean, |
|||
default: false |
|||
} |
|||
}, |
|||
data() { |
|||
return { |
|||
formListValue: { |
|||
}, |
|||
flag: 0, |
|||
zsOdcheckArr: [], |
|||
zsOscheckArr: [], |
|||
zsTextOd: '', |
|||
zsTextOs: '', |
|||
recordId: '', |
|||
formFlag: '' |
|||
} |
|||
}, |
|||
methods: { |
|||
// CA启动逻辑判断 |
|||
init(id, formFlag) { |
|||
this.recordId = id |
|||
this.formFlag = formFlag |
|||
const parentFormlistValue = this.$parent.$parent.formListValue |
|||
const parentFZsTextOd = this.$parent.$parent.zsTextOd |
|||
const parentFZsTextOs = this.$parent.$parent.zsTextOs |
|||
// console.log('parentFormlistValue', parentFormlistValue) |
|||
// console.log('parentFZsTextOd', parentFZsTextOd) |
|||
// console.log('parentFZsTextOs', parentFZsTextOs) |
|||
if ((parentFormlistValue.ssOuOperaBieM || parentFormlistValue.ssOdOperaBieM || parentFormlistValue.ssOsOperaBieM) && |
|||
(parentFormlistValue.zsOperaDayOd || parentFormlistValue.zsOperaDayOs) && parentFormlistValue.zd && parentFormlistValue.clyj || |
|||
(parentFZsTextOd.zsTextOd || parentFZsTextOs.zsTextOs)) { |
|||
this.getSendCaStatus(id) |
|||
} |
|||
}, |
|||
// 是否开启了CA认证表单状态 |
|||
async getSendCaStatus(id) { |
|||
const { data: res } = await this.$http.get('/quguang/caSign/getSendCaStatus', { |
|||
params: { |
|||
name: this.archiveCaseCRFItem.formName |
|||
} |
|||
}) |
|||
if (res.code === 0) { |
|||
res.data === 1 ? this.getQgEmrRecordInfo(id, 'savePdf') : '' |
|||
} else { |
|||
this.$message.error(res.msg) |
|||
} |
|||
}, |
|||
// 获取信息 |
|||
async getQgEmrRecordInfo(id, savePdf) { |
|||
// savePdf ? this.loading = this.$loading({ |
|||
// lock: true, |
|||
// text: '转存PDF中请稍等...', |
|||
// spinner: 'el-icon-loading', |
|||
// background: 'rgba(255, 255, 255, 0.7)' |
|||
// }) : '' |
|||
// this.base64Flag = false |
|||
this.flag = 0 |
|||
const { data: res } = await this.$http.get('/quguang/jmjl/shjc/getJmjlShjcRecordInfo', { |
|||
params: { |
|||
id: id |
|||
} |
|||
}) |
|||
if (res.code === 0) { |
|||
// 获取主诉勾选项 |
|||
const zsOdcheck = ['zsYwg、异物感', 'zsYgss、眼干酸涩', 'zsWg、畏光', 'zsXg、眩光', 'zsYz、眼胀', 'zsYt、眼痛', 'zsSpl、视疲劳', 'zsMh、模糊', 'zsYy、眼痒', 'zsCy、重影', 'zsQt、其它'] |
|||
const zsOscheck = ['zsYwg、异物感', 'zsYgss、眼干酸涩', 'zsWg、畏光', 'zsXg、眩光', 'zsYz、眼胀', 'zsYt、眼痛', 'zsSpl、视疲劳', 'zsMh、模糊', 'zsYy、眼痒', 'zsCy、重影', 'zsQt、其它'] |
|||
this.zsOdcheckArr = [] |
|||
this.zsOscheckArr = [] |
|||
zsOdcheck.forEach(item => { |
|||
// res.data[item] ? (JSON.parse(res.data[item]) ? this.zsOdcheckArr.push(JSON.parse(res.data[item])) : '') : '' |
|||
res.data[item.split('、')[0] + 'CheckOd'] ? (JSON.parse(res.data[item.split('、')[0] + 'CheckOd']) ? this.zsOdcheckArr.push(item) : '') : '' |
|||
}) |
|||
zsOscheck.forEach(item => { |
|||
res.data[item.split('、')[0] + 'CheckOs'] ? (JSON.parse(res.data[item.split('、')[0] + 'CheckOs']) ? this.zsOscheckArr.push(item) : '') : '' |
|||
}) |
|||
Object.keys(res.data).forEach((item, index) => { |
|||
// 如果不为空就赋值上去 |
|||
if ((res.data[item] && res.data[item] !== 'false' && res.data[item] !== 'true') || typeof res.data[item] === 'number') { |
|||
// 目前转为使用jsPDF不需要转换图片为base64了,如果使用html2pdf需要转,如果不转图片生成不出来 |
|||
// if (item === 'createSign') { |
|||
// // console.log(item); |
|||
// this.convertImageToBase64(res.data.createSign, 'createSign') |
|||
// } else { |
|||
// this.formListValue[item] = res.data[item] |
|||
// } |
|||
this.formListValue[item] = res.data[item] |
|||
} |
|||
if (res.data[item] && typeof res.data[item] !== 'number') { |
|||
res.data[item].includes('[') || res.data[item] === 'false' || res.data[item] === 'true' ? this.formListValue[item] = JSON.parse(res.data[item]) : '' |
|||
if (res.data[item].includes('<0.3')) { |
|||
const dataValue = JSON.parse(res.data[item]) |
|||
dataValue.splice(dataValue.indexOf('<0.3'), 1, '<0.3') |
|||
this.formListValue[item] = dataValue |
|||
} |
|||
} |
|||
if (Object.keys(res.data).length - 1 === index) { |
|||
const dataObj = JSON.parse(JSON.stringify(res.data)) |
|||
// 右眼拼接 |
|||
const zscheckTextOd = [] |
|||
this.zsOdcheckArr.forEach(item => { |
|||
zscheckTextOd.push((item.split('、')[1] === '其它' ? '' : item.split('、')[1]) + (dataObj[item.split('、')[0] + 'RemarkOd'] ? dataObj[item.split('、')[0] + 'RemarkOd'] : '')) |
|||
}) |
|||
console.log(zscheckTextOd) |
|||
this.zsTextOd = (dataObj.zsBsbcOd ? dataObj.zsBsbcOd : '') + (dataObj.zsWbsCheckOd === 'true' ? ',目前无不适' : zscheckTextOd.join('、')) |
|||
|
|||
// 左眼拼接 |
|||
const zscheckTextOs = [] |
|||
this.zsOscheckArr.forEach(item => { |
|||
zscheckTextOs.push((item.split('、')[1] === '其它' ? '' : item.split('、')[1]) + (dataObj[item.split('、')[0] + 'RemarkOs'] ? dataObj[item.split('、')[0] + 'RemarkOs'] : '')) |
|||
}) |
|||
this.zsTextOs = (dataObj.zsBsbcOs ? dataObj.zsBsbcOs : '') + (dataObj.zsWbsCheckOs === 'true' ? ',目前无不适' : zscheckTextOs.join('、')) |
|||
this.flag = 1 |
|||
if (savePdf) { |
|||
window.localStorage.getItem('qg-userData') ? this.userData = JSON.parse(window.localStorage.getItem('qg-userData')) : '' |
|||
const caParams = { |
|||
// 文件名称 |
|||
fileName: this.archiveCaseCRFItem.formName, |
|||
// 表单标志位,1:屈光电子病历/屈光电子病历(复诊) 2:术后检查记录表,3:角膜交联病历/角膜交联病历(复诊),4:角膜交联术后检查记录单,5:复诊病历,6:手术计划 |
|||
formFlag: 4, |
|||
patientIdNumber: this.archiveCaseCRFItem.patientIdNumber, |
|||
patientCentreId: this.userData.centreId, |
|||
patientName: this.archiveCaseCRFItem.patientName, |
|||
patientId: this.archiveCaseCRFItem.patientId, |
|||
// 表单id |
|||
formId: this.archiveCaseCRFItem.id, |
|||
// 表单记录id |
|||
recordId: this.recordId, |
|||
signUser: { |
|||
// 签署位置集合 |
|||
position: [ |
|||
{ |
|||
// 坐标签署X轴(数值为0-1之间的小数,以左下角为原点0,右角顶点为1) * 签署位置类型为:2必填 |
|||
coX: '', |
|||
// 坐标签署Y轴(数值为0-1之间的小数,以左下角为原点0,右角顶点为1) * 签署位置类型为:2必填 |
|||
coY: '', |
|||
// 关键字 签署位置类型为:1必填 |
|||
keyword: '医生签字:', |
|||
// 关键字偏移(左右),单位像素 签署位置类型为:1必填 |
|||
offsetX: '0.1', |
|||
// 关键字偏移(上下),单位像素 签署位置类型为:1必填 |
|||
offsetY: '0', |
|||
// 签署位置类型为:2必填 * 坐标签署页码,格式“A-B",A为起始页,B为结束页,如“1-5"表示从第1到第5页。“0-0"表示签所有页 |
|||
pageNo: '', |
|||
// 签名图片和时间戳分开时必填 * 1:签字位置(默认); * 6: 签署时间 |
|||
signatureType: '', |
|||
// 是否附加签名时间,签名时间显示于签字/印章图片的下方,内层外层需要同时填入才可生效 * 1:附加;0:不附加 (默认) |
|||
timestamp: '1', |
|||
// 签署位置类型(1:关键字;2:坐标;3:签名域) |
|||
type: '1', |
|||
// 签字/盖章宽度 |
|||
width: '75', |
|||
// 签字/盖章高度 |
|||
height: '30' |
|||
} |
|||
], |
|||
// 是否必填:是 医护人员编号,用户需要在系统中已导入、实名认证和采集了签字 |
|||
userId: this.userData.employeeId |
|||
} |
|||
} |
|||
setTimeout(() => { |
|||
this.exportPDF({ |
|||
customMargin: [15, 15], |
|||
customElementId: 'printButtonA5', |
|||
caParams: caParams, |
|||
isJavaTransformPdf: true, |
|||
marginStyle: Base64.encode('<style>@page{margin: 8mm 5mm 5mm 5mm;}</style>'), |
|||
htmlBase: Base64.encode(document.getElementById('printButtonA5').innerHTML) |
|||
|
|||
}) |
|||
}, 5) |
|||
} |
|||
} |
|||
}) |
|||
} else { |
|||
this.loading.close() |
|||
this.$message.error(res.msg) |
|||
} |
|||
}, |
|||
// 刷新页面 |
|||
caRefresh() { |
|||
this.$parent.$parent.getInfo() |
|||
} |
|||
} |
|||
} |
|||
</script> |
|||
<style lang="scss"> |
|||
|
|||
</style> |
|||
@ -0,0 +1,194 @@ |
|||
export default { |
|||
data() { |
|||
return { |
|||
// ca开启状态
|
|||
caOpenStatus: false, |
|||
patientCaUploadParams: {}, |
|||
signUsers: null |
|||
} |
|||
}, |
|||
methods: { |
|||
// 是否开启了CA认证表单状态
|
|||
async getSendCaStatus(toParams, callback, operaTextFlag) { |
|||
const { data: res } = await this.$http.get('/quguang/caSign/getSendCaStatus', { |
|||
params: { |
|||
name: this.archiveCaseCRFItem.formName ? this.archiveCaseCRFItem.formName : this.formListValue.formName |
|||
} |
|||
}) |
|||
if (res.code === 0) { |
|||
this.caOpenStatus = res.data !== 0 |
|||
console.log('caOpenStatus', this.caOpenStatus); |
|||
} else { |
|||
this.$message.error(res.msg) |
|||
} |
|||
}, |
|||
|
|||
// --------------------文件签----------------------
|
|||
// CA医生签名接口调取-单医生/quguang/caSign-多医生/quguang/caSign/multiCaSign
|
|||
async caSign(base64, customParams, caBack) { |
|||
uni.postMessage({ |
|||
data: { |
|||
text: '开始CA签' |
|||
} |
|||
}) |
|||
console.log('customParams', customParams) |
|||
console.log('CA医生签名接口调取base64', base64) |
|||
// console.log('customParams.caParams.signUrl', customParams.caParams.signUrl)
|
|||
const url = caBack ? (caBack.signUrl ? caBack.signUrl : '/quguang/caSign') : (customParams.caParams.signUrl ? customParams.caParams.signUrl : 'quguang/caSign') |
|||
const { data: res } = await this.$http.post(url, caBack || { |
|||
// 待签名文件(Base64/string)
|
|||
fileData: base64 || '', |
|||
htmlBase: customParams.htmlBase ? customParams.htmlBase : '', |
|||
marginStyle: customParams.marginStyle || '', |
|||
// 类型名称,类型值包括:PDF、HTML,除PDF外的其他格式,系统自动转换成PDF格式然后电子签名
|
|||
fileType: 'PDF', |
|||
...customParams.caParams, |
|||
// 是否附加签名时间,签名时间显示于签字/印章图片的下方,内层外层需要同时填入才可生效. 1:附加;0:不附加 (默认);
|
|||
timestamp: '1' |
|||
}) |
|||
if (res.code === 0) { |
|||
// 成功
|
|||
// console.log('成功', customParams.isPadPatientSign)
|
|||
// return
|
|||
customParams.isPadPatientSign ? this.padPatientSign(base64, customParams) : '' |
|||
this.caRefresh ? this.caRefresh() : '' |
|||
customParams.isCurrentPageLoad ? this.loading.close() : this.$emit('load') |
|||
uni.postMessage({ |
|||
data: { |
|||
text: 'CA保存成功' |
|||
} |
|||
}) |
|||
} else { |
|||
// this.$message.error(res.msg)
|
|||
// console.log(JSON.parse(res.msg))
|
|||
const resParse = res.msg.includes('[') ? JSON.parse(res.msg) : null |
|||
console.log('resParse', resParse) |
|||
const text = resParse ? `${resParse[0].patientName}-${resParse[0].patientId}-${resParse[0].fileName}-CA签失败,${resParse[1]},请您重新提交此患者CA!` : res.msg |
|||
uni.postMessage({ |
|||
data: { |
|||
text: 'CA保存失败', |
|||
msg: text |
|||
} |
|||
}) |
|||
this.$confirmFun(text, '您已取消').then(() => { |
|||
// this.caSign('', '', resParse[0])
|
|||
}) |
|||
customParams.isCurrentPageLoad ? this.loading.close() : this.$emit('load') |
|||
} |
|||
}, |
|||
// 患者CA平板无线签-上传代签名的文件接口给CA
|
|||
async padPatientSign(base64, customParams) { |
|||
const { data: res } = await this.$http.post('/quguang/caSign/uploadCaSignBase', { |
|||
fileData: customParams.isHaveDoctorSign ? '' : base64, // 待签名文件(Base64/string) 有医生签:后端生成有签名的pdf,没有医生签:需传base64文件
|
|||
fileName: customParams.caParams.fileName, // 文件名称
|
|||
formFlag: customParams.caParams.formFlag, // 标志位,8:告知书,9:基因检测同意书,10:联合手术同意书 13:告知书/授权书
|
|||
formId: customParams.caParams.formId, // 表单ID
|
|||
userId: this.userData.employeeId |
|||
}) |
|||
if (res.code === 0) { |
|||
this.patientCaUploadParams = res.data |
|||
// 成功
|
|||
customParams.manyPatientSign ? this.setPatientParamsInfo(customParams) : this.signFileByPad(customParams) |
|||
customParams.isCurrentPageLoad ? this.loading.close() : this.$emit('load') |
|||
} else { |
|||
this.$message.error(res.msg) |
|||
customParams.isCurrentPageLoad ? this.loading.close() : this.$emit('load') |
|||
} |
|||
}, |
|||
// 患者CA平板无线签-调取成功后可发送PDF文件到PAD
|
|||
async signFileByPad(customParams) { |
|||
const url = process.env.NODE_ENV === 'development' ? '/customProxyCa/patient/api/v3.0/sign/signFileByPad' |
|||
: 'http://192.168.2.32:83/ca-server/patient/api/v3.0/sign/signFileByPad' |
|||
const signUsers = [{ |
|||
signerType: '3', // 签名类型 3:患者; 4:家属; 5:见证人
|
|||
patientName: this.formListValue.patientName, // 患者姓名
|
|||
patientIdcard: this.formListValue.patientIdNumber, // 患者身份证号
|
|||
description: '患者', |
|||
signFiles: [{ |
|||
fileCode: this.patientCaUploadParams.fileCode, |
|||
// 签署位置集合
|
|||
positions: customParams.patientSignPositionsParams |
|||
}] |
|||
}] |
|||
const { data: res } = await this.$http.post(`${url}?accessToken=${this.patientCaUploadParams.accessToken}`, { |
|||
transactionId: this.patientCaUploadParams.transactionId, |
|||
orderName: customParams.caParams.fileName, // 表单名称
|
|||
signMethod: 6, // 签署方法:6:智能指纹签名屏 一般都是6 8:普通平板电脑(非指纹屏)
|
|||
createUserId: this.userData.employeeId, // 创建表单工号
|
|||
isVoiceRecord: 0, |
|||
callbackURL: 'http://192.168.2.32:83/quguang/caSign/patientCaSignCallBack', |
|||
redirectURL: '', |
|||
isCallbackSignatureImg: '', |
|||
imageFormat: 'JPG', |
|||
signUsers: customParams.manyPatientSign ? this.signUsers : signUsers, |
|||
// 是否附加签名时间,签名时间显示于签字/印章图片的下方,内层外层需要同时填入才可生效. 1:附加;0:不附加 (默认);
|
|||
timestamp: '1' |
|||
}) |
|||
if (res.status === '0') { |
|||
this.callbackUpdataeOrderCode(customParams, res.data) |
|||
} else { |
|||
this.$message.error(res.msg) |
|||
} |
|||
}, |
|||
// 把返回的code传给后端
|
|||
async callbackUpdataeOrderCode(customParams, resData) { |
|||
const { data: res } = await this.$http.post('/quguang/caSign/updateOrderCode', { |
|||
formId: customParams.caParams.formId, |
|||
orderCode: resData.orderCode |
|||
}) |
|||
}, |
|||
|
|||
// --------------------数据签-----------------------
|
|||
// CA门诊批量数据签
|
|||
async batchDataCa(params, callback) { |
|||
const { data: res } = await this.$http.post('/quguang/caSign/batchDataCa', params) |
|||
if (res.code === 0) { |
|||
this.$message({ |
|||
message: '此表单已CA成功', |
|||
type: 'success' |
|||
}) |
|||
callback ? callback() : '' |
|||
} else { |
|||
this.$message.error(res.msg) |
|||
} |
|||
}, |
|||
// CA其他表单批量数据签
|
|||
async operaFormDataCaSign(params, callback) { |
|||
const { data: res } = await this.$http.post('/quguang/caSign/operaFormDataCaSign', params) |
|||
if (res.code === 0) { |
|||
// this.$message({
|
|||
// message: '此表单已CA成功',
|
|||
// type: 'success'
|
|||
// })
|
|||
callback ? callback() : '' |
|||
} else { |
|||
this.$message.error(res.msg) |
|||
} |
|||
}, |
|||
// 取消ca
|
|||
async cancelCa() { |
|||
console.log('取消ca'); |
|||
const userData = window.localStorage.getItem('qg-userData') ? JSON.parse(window.localStorage.getItem('qg-userData')) : '' |
|||
if (userData.realName !== this.formListValue.createName) { |
|||
return this.$message({ |
|||
message: `此病历是${this.formListValue.createName}医生创建的,您不能操作其他医生的患者病历哦!`, |
|||
type: 'warning' |
|||
}) |
|||
} |
|||
const { data: res } = await this.$http.post('/quguang/caSign/cancelCa', { |
|||
formFlag: this.formFlag, |
|||
formId: this.archiveCaseCRFItem.id |
|||
}) |
|||
if (res.code === 0) { |
|||
this.$message({ |
|||
message: '取消提交成功', |
|||
type: 'success' |
|||
}) |
|||
} else { |
|||
this.$message.error(res.msg) |
|||
} |
|||
this.formListValue.isConfirm = 0 |
|||
this.saveEidtTitle = '编辑' |
|||
}, |
|||
} |
|||
} |
|||
@ -1,661 +0,0 @@ |
|||
<template> |
|||
<!-- 手术列表 --> |
|||
<div class="scheduled-patient"> |
|||
<div class="scheduled-patient-head"> |
|||
<el-form :inline="true" :model="dataForm" class="demo-form-inline"> |
|||
<el-form-item label="PID:"> |
|||
<el-input |
|||
v-model="dataForm.patientId" |
|||
size="small" |
|||
clearable |
|||
placeholder="PID" |
|||
@clear="getDataListInitial()" |
|||
@keyup.enter.native="getDataListInitial('patientId')" |
|||
/> |
|||
</el-form-item> |
|||
<el-form-item prop="dateRange" label="手术日期" class="form-item-date"> |
|||
<el-date-picker |
|||
v-model="dataForm.searchDate" |
|||
type="date" |
|||
size="small" |
|||
value-format="yyyy-MM-dd" |
|||
placeholder="选择日期" |
|||
@change="getDataListInitial()" |
|||
@clear="getDataListInitial()" |
|||
/> |
|||
</el-form-item> |
|||
<el-form-item label="手术状态:" label-width="110px"> |
|||
<el-select |
|||
v-model="dataForm.status" |
|||
placeholder="手术状态" |
|||
size="small" |
|||
clearable |
|||
@clear="getDataListInitial()" |
|||
@change="operaStatusChange(dataForm.status)" |
|||
> |
|||
<el-option v-for="(item,index) in statusList" :key="index" :label="item.name" :value="item.status" /> |
|||
</el-select> |
|||
</el-form-item> |
|||
<el-form-item label="主刀医生:" label-width="110px"> |
|||
<el-select |
|||
v-model="doctorNamePy" |
|||
placeholder="请选择" |
|||
size="small" |
|||
clearable |
|||
filterable |
|||
:filter-method="pinyingMatch" |
|||
@clear="doctorClear" |
|||
@change="doctorChange" |
|||
> |
|||
<el-option |
|||
v-for="(item,index) in doctorList" |
|||
:key="index" |
|||
:label="item.doctorName" |
|||
:value="item.doctorCode" |
|||
/> |
|||
</el-select> |
|||
</el-form-item> |
|||
<el-form-item class="caFormDisplay"> |
|||
<el-select |
|||
v-model="dataForm.formType" |
|||
placeholder="表单" |
|||
clearable |
|||
size="small" |
|||
@clear="getDataListInitial()" |
|||
@change="getDataListInitial()" |
|||
> |
|||
<el-option v-for="(item,index) in formList" :key="index" :label="item" :value="item" /> |
|||
</el-select> |
|||
<el-select |
|||
v-model="dataForm.caStatus" |
|||
placeholder="CA签状态" |
|||
clearable |
|||
size="small" |
|||
@clear="getDataListInitial()" |
|||
@change="getDataListInitial()" |
|||
> |
|||
<el-option v-for="(item,index) in caStatusList" :key="index" :label="item.name" :value="item.value" /> |
|||
</el-select> |
|||
</el-form-item> |
|||
<el-form-item style="flex:1"> |
|||
<el-button type="primary" icon="el-icon-search" size="small" @click="getDataListInitial()">查询</el-button> |
|||
</el-form-item> |
|||
</el-form> |
|||
</div> |
|||
<div class="scheduled-patient-content"> |
|||
<el-table |
|||
ref="multipleTable" |
|||
:height="tableHeight" |
|||
:data="dataList" |
|||
tooltip-effect="dark" |
|||
style="width: 100%" |
|||
@sort-change="sortChange" |
|||
@row-dblclick="dbclick" |
|||
> |
|||
<el-table-column label="PID" header-align="center" align="center" class="boldColumn"> |
|||
<template slot-scope="scope"> |
|||
<span class="boldColumn">{{ scope.row.patientId }}</span> |
|||
</template> |
|||
</el-table-column> |
|||
<el-table-column label="患者姓名" header-align="center" align="center"> |
|||
<template slot-scope="scope"> |
|||
<span class="boldColumn">{{ scope.row.patientName }}</span> |
|||
</template> |
|||
</el-table-column> |
|||
<el-table-column |
|||
sortable="OS.MAIN_DOCTOR_NAME" |
|||
label="主刀医生" |
|||
header-align="center" |
|||
align="center" |
|||
> |
|||
<template slot-scope="scope"> |
|||
<span class="boldColumn">{{ scope.row.mainDoctorName }}</span> |
|||
</template> |
|||
</el-table-column> |
|||
<el-table-column |
|||
label="手术日期" |
|||
sortable="OS.OPERA_DATE" |
|||
prop="operaDate" |
|||
header-align="center" |
|||
align="center" |
|||
/> |
|||
<el-table-column |
|||
label="手术间" |
|||
sortable="OS.OPERA_ROOM" |
|||
header-align="center" |
|||
align="center" |
|||
> |
|||
<template slot-scope="scope"> |
|||
<span class="boldColumn">{{ scope.row.operaRoom }}</span> |
|||
</template> |
|||
</el-table-column> |
|||
<el-table-column label="拟施手术" prop="operaNameList" header-align="center" align="center" width="300px"> |
|||
<template slot-scope="scope"> |
|||
<div v-for="(item,index) in scope.row.operaTypeList" :key="index" class="boldColumn"> |
|||
<span>{{ item.eyeType }} : </span> |
|||
<span v-for="(itex,i) in item.operaEntityList" :key="i"> |
|||
{{ itex.operationName }} |
|||
</span> |
|||
</div> |
|||
</template> |
|||
</el-table-column> |
|||
<!-- 缴费状态 0:未缴费,1:已缴费 --> |
|||
<!-- <el-table-column label="缴费状态" sortable="OS.PAY_STATUS" prop="payStatus" header-align="center" align="center"> |
|||
<template slot-scope="scope"> |
|||
<span>{{ scope.row.payStatus===0 ? '未缴费' : '已缴费' }}</span> |
|||
</template> |
|||
</el-table-column> --> |
|||
<el-table-column |
|||
label="手术状态" |
|||
sortable="OS.STATUS" |
|||
prop="status" |
|||
header-align="center" |
|||
align="center" |
|||
> |
|||
<template slot-scope="scope"> |
|||
<!-- 0:等待呼叫,1:呼叫中,2:术前准备,3:手术中,4、手术完成 --> |
|||
<div v-show="scope.row.status == 0"> |
|||
<span class="circle-status circle-blue" /> |
|||
<span>等待呼叫</span> |
|||
</div> |
|||
<div v-show="scope.row.status == 1"> |
|||
<span class="circle-status circle-red" /> |
|||
<span>呼叫中</span> |
|||
</div> |
|||
<div v-show="scope.row.status == 2"> |
|||
<span class="circle-status circle-blue" /> |
|||
<span>术前准备</span> |
|||
</div> |
|||
<div v-show="scope.row.status == 3"> |
|||
<span class="circle-status circle-yellow" /> |
|||
<span>手术中</span> |
|||
</div> |
|||
<div v-show="scope.row.status == 4"> |
|||
<span class="circle-status circle-grey" /> |
|||
<span>手术完成</span> |
|||
</div> |
|||
</template> |
|||
</el-table-column> |
|||
<el-table-column prop="operation" label="操作" header-align="center" align="center" width="180px"> |
|||
<template slot-scope="scope"> |
|||
<span class="call" @click="browseClick(scope.row)">档案</span> |
|||
<!-- syncStatus=1叫号 =0不叫号 --> |
|||
<span |
|||
v-show="(scope.row.status===0 || scope.row.status===1) && scope.row.syncStatus===1 && today === $options.filters.dateFilterTwo( scope.row.operaDate )" |
|||
class="call" |
|||
@click="callHandle(scope.row)" |
|||
>呼叫</span> |
|||
<!-- <span v-if="userData.employeeId==='liucancan'" class="call" @click="ceshi(scope.row)">测试</span> --> |
|||
<el-dropdown trigger="click" @command="dropdownClick(scope.row,$event)"> |
|||
<span class="el-dropdown-link"> |
|||
表单<i class="el-icon-arrow-down el-icon--right" /> |
|||
</span> |
|||
<el-dropdown-menu slot="dropdown"> |
|||
<el-dropdown-item command="屈光手术安全核查表">屈光手术安全核查表</el-dropdown-item> |
|||
<el-dropdown-item command="屈光手术护理记录单">屈光手术护理记录单</el-dropdown-item> |
|||
<el-dropdown-item command="手术记录">手术记录</el-dropdown-item> |
|||
<el-dropdown-item command="生命体征录入">生命体征录入</el-dropdown-item> |
|||
</el-dropdown-menu> |
|||
</el-dropdown> |
|||
<el-dropdown trigger="click" class="margin-left-6" @command="dropdown2Click(scope.row,$event)"> |
|||
<span class="el-dropdown-link"> |
|||
更多<i class="el-icon-arrow-down el-icon--right" /> |
|||
</span> |
|||
<el-dropdown-menu slot="dropdown"> |
|||
<el-dropdown-item command="取消手术">取消手术</el-dropdown-item> |
|||
<el-dropdown-item command="状态回滚">状态回滚</el-dropdown-item> |
|||
<el-dropdown-item command="打印">条码</el-dropdown-item> |
|||
</el-dropdown-menu> |
|||
</el-dropdown> |
|||
</template> |
|||
</el-table-column> |
|||
</el-table> |
|||
<el-pagination |
|||
background |
|||
layout="total,prev, pager, next" |
|||
:total="total" |
|||
:current-page.sync="page" |
|||
@current-change="pageCurrentChangeHandle" |
|||
/> |
|||
</div> |
|||
<dialogForm |
|||
v-if="dialogFormVisible" |
|||
ref="dialogFormRef" |
|||
title="手术列表" |
|||
:current-info="currentPatientInfo" |
|||
:patient-id="currentPatientInfo.patientId" |
|||
:opera-id="currentPatientInfo.id" |
|||
:dialog-form-vlisble-title="dialogFormVlisbleTitle" |
|||
@closeformDialog="closeformDialog" |
|||
/> |
|||
<el-dialog |
|||
title="生命体征录入" |
|||
:visible.sync="lifeDialogVlisble" |
|||
width="40%" |
|||
class="life-dialog" |
|||
@close="closelifeDialog" |
|||
> |
|||
<life v-if="dialogFormVlisbleTitle==='生命体征录入'" ref="lifeRef" :current-patient-info="currentPatientInfo" /> |
|||
<span slot="footer" class="dialog-footer"> |
|||
<el-button @click="lifeDialogVlisble = false">取 消</el-button> |
|||
<el-button type="primary" @click="saveLifeClick">确 定</el-button> |
|||
</span> |
|||
</el-dialog> |
|||
<!-- <printCode id="printPID" /> --> |
|||
<el-dialog title="取消理由" :visible.sync="orderCancleVisible"> |
|||
<el-input v-model="remark" autocomplete="off" /> |
|||
<div slot="footer" class="dialog-footer"> |
|||
<el-button @click="orderCancleVisible = false">取 消</el-button> |
|||
<el-button type="primary" @click="sureCancleHandle">确 定</el-button> |
|||
</div> |
|||
</el-dialog> |
|||
<hotPrint |
|||
v-if="hotPrintVisible" |
|||
ref="hotPrintRef" |
|||
:patient-info-obj="currentPatientInfo" |
|||
@closeDialog="hotPrintVisible = false" |
|||
/> |
|||
</div> |
|||
</template> |
|||
<script> |
|||
import mixinViewModule from '@/mixins/view-module' |
|||
import websocket from '@/mixins/websocket' |
|||
import tableAutoHeight from '@/mixins/tableAutoHeight' |
|||
import life from '@/components/H5form/life.vue' |
|||
import printCode from './printCode.vue' |
|||
import dialogForm from '@/components/H5form/dialog-form.vue' |
|||
import hotPrint from '@/components/H5formOhter/hotPrint' |
|||
import htmlToPdfToBlob from '@/mixins/htmlToPdfToBlob' |
|||
export default { |
|||
components: { |
|||
life, |
|||
printCode, |
|||
dialogForm, |
|||
hotPrint |
|||
}, |
|||
mixins: [mixinViewModule,websocket,tableAutoHeight, htmlToPdfToBlob], |
|||
data() { |
|||
return { |
|||
mixinViewModuleOptions: { |
|||
getDataListURL: '/quguang/his/opera/schedule/getOperaList', |
|||
getDataListIsPage: true, |
|||
createdIsNeed: false |
|||
}, |
|||
dialogFormVisible: false, |
|||
// orderType: 'asc', |
|||
// orderColumn: 'OS.STATUS', |
|||
nextVisitTime: [], |
|||
dataForm: { |
|||
patientId: '', |
|||
searchDate: '', |
|||
creator: '', |
|||
doctorCode: '', |
|||
formType: '', |
|||
caStatus: '' // 护理记录单ca签状态,0:未签,1:成功,2:失败 |
|||
}, |
|||
formList: ['手术护理记录单'], |
|||
caStatusList: [{ |
|||
name: '未签', |
|||
value: 0 |
|||
}, { |
|||
name: '成功', |
|||
value: 1 |
|||
}, { |
|||
name: '失败', |
|||
value: 2 |
|||
}], |
|||
doctorList: [], |
|||
copyDoctorList: [], |
|||
// 0:等待呼叫,1:呼叫中,2:术前准备,3:手术中,4、手术完成 |
|||
statusList: [{ |
|||
status: 0, |
|||
name: '等待呼叫' |
|||
}, { |
|||
status: 1, |
|||
name: '呼叫中' |
|||
}, { |
|||
status: 2, |
|||
name: '术前准备' |
|||
}, { |
|||
status: 3, |
|||
name: '手术中' |
|||
}, { |
|||
status: 4, |
|||
name: '手术完成' |
|||
}], |
|||
today: '', |
|||
formDialogVlisble: false, |
|||
dialogFormVlisbleTitle: '', |
|||
lifeDialogVlisble: false, |
|||
printVlisble: false, |
|||
currentPatientInfo: {}, |
|||
userData: {}, |
|||
doctorNamePy: '', |
|||
remark: '', |
|||
orderCancleVisible: false, |
|||
hotPrintVisible: false, |
|||
operaStatus: '' |
|||
} |
|||
}, |
|||
created() { |
|||
console.log(11111111111) |
|||
console.log(this.$route.params) |
|||
this.today = this.$moment().format('YYYY-MM-DD') |
|||
this.dataForm.searchDate = this.$moment().format('YYYY-MM-DD') |
|||
this.userData = JSON.parse(window.localStorage.getItem('qg-userData')) |
|||
if (this.$route.params.patientId) { |
|||
this.dataForm.patientId = this.$route.params.patientId |
|||
this.getDataList() |
|||
} else { |
|||
this.getDataList() |
|||
} |
|||
this.getDoctorList() |
|||
}, |
|||
destroyed() { |
|||
document.title = '' |
|||
}, |
|||
methods: { |
|||
// 日期改变时 |
|||
dateChange(e) { |
|||
this.dataForm.startTime = e ? e[0] : '' |
|||
this.dataForm.endTime = e ? e[1] : '' |
|||
this.getDataListInitial() |
|||
}, |
|||
// 获取手术医生列表 |
|||
async getDoctorList() { |
|||
// type 1: 主刀医生,2:检查医生 |
|||
const { data: res } = await this.$http.get('/quguang/opera/reservation/getDoctorList', { |
|||
params: { |
|||
type: 1 |
|||
} |
|||
}) |
|||
if (res.code === 0) { |
|||
this.copyDoctorList = this.doctorList = res.data |
|||
} else { |
|||
this.$message.error(res.msg) |
|||
} |
|||
}, |
|||
// 浏览 |
|||
browseClick(scopeRow) { |
|||
console.log(scopeRow) |
|||
this.$router.push({ |
|||
path: '/seeDoctor', |
|||
query: { |
|||
info: this.$Base64.encode(JSON.stringify({ |
|||
patientIdNumber: scopeRow.patientIdNumber, |
|||
patientCentreId: scopeRow.patientCentreId |
|||
})) |
|||
} |
|||
}) |
|||
}, |
|||
// 状态下拉框改变时 |
|||
operaStatusChange(status) { |
|||
this.operaStatus = status |
|||
document.title = status === 2 ? '术前准备' : ( |
|||
status === 3 ? '手术中' : ( |
|||
status === 4 ? '手术完成' : '' |
|||
) |
|||
) |
|||
this.getDataListInitial() |
|||
}, |
|||
// 排序 |
|||
sortChange(e) { |
|||
console.log(e) |
|||
this.orderType = e.order === 'descending' ? 'desc' : 'asc' |
|||
this.orderColumn = e.column.sortable |
|||
this.getDataList() |
|||
}, |
|||
// 双击列表 |
|||
dbclick(row, column) { |
|||
console.log(row) |
|||
|
|||
this.dialogFormVlisbleTitle = '手术安全核查表' |
|||
this.currentPatientInfo = row |
|||
this.dialogFormVisible = true |
|||
this.$nextTick(() => { |
|||
this.$refs.dialogFormRef.init('safetyChecklistRef') |
|||
}) |
|||
}, |
|||
// 点击表单更多下拉菜单 |
|||
dropdownClick(scopeRow, e) { |
|||
console.log(scopeRow, e) |
|||
this.dialogFormVlisbleTitle = e |
|||
this.currentPatientInfo = scopeRow |
|||
if (e === '生命体征录入') { |
|||
this.lifeDialogVlisble = true |
|||
} else { |
|||
this.dialogFormVisible = true |
|||
this.$nextTick(() => { |
|||
if (e.includes('手术安全核查表')) { |
|||
this.$refs.dialogFormRef.init('safetyChecklistRef') |
|||
} else if (e.includes('手术护理记录单')) { |
|||
this.$refs.dialogFormRef.init('operationNursingRecordRef') |
|||
} else if (e === '手术记录') { |
|||
this.$refs.dialogFormRef.init('operationRecordRef') |
|||
} |
|||
}) |
|||
// sign.js初始化 |
|||
this.$store.commit('initPlugin') |
|||
} |
|||
}, |
|||
// 点击更多下拉菜单 |
|||
dropdown2Click(scopeRow, e) { |
|||
console.log('dropdown2Click', scopeRow, e) |
|||
this.currentPatientInfo = scopeRow |
|||
if (e === '取消手术') { |
|||
this.remark = '' |
|||
this.orderCancleVisible = true |
|||
} else if (e === '状态回滚') { |
|||
console.log('状态回滚'); |
|||
this.backOperaStatus(scopeRow) |
|||
} else if (e === '打印') { |
|||
this.hotPrintVisible = true |
|||
this.$nextTick(() => { |
|||
this.$refs.hotPrintRef.bmPrinter() |
|||
}) |
|||
} |
|||
}, |
|||
// 状态回滚--一级一级回滚 |
|||
async backOperaStatus(scopeRow) { |
|||
const {data:res} = await this.$http.post('/quguang/pda/backOperaStatus',{ |
|||
operaId:scopeRow.id |
|||
}) |
|||
if (res.code === 0) { |
|||
this.$message({ |
|||
message: '状态回滚成功', |
|||
type: 'success' |
|||
}) |
|||
} else { |
|||
this.$message.error(res.msg) |
|||
} |
|||
}, |
|||
// dialog确定取消预约 |
|||
async sureCancleHandle() { |
|||
if (!this.remark) { |
|||
return this.$message.error('请填写取消理由后再执行下一步操作') |
|||
} |
|||
const { data: res } = await this.$http.delete('/quguang/opera/reservation/delete', { |
|||
params: { |
|||
operaPatientId: this.currentPatientInfo.id, |
|||
remark: this.remark |
|||
} |
|||
}) |
|||
if (res.code === 0) { |
|||
this.$message({ |
|||
message: '取消预约成功', |
|||
type: 'success' |
|||
}) |
|||
this.orderCancleVisible = false |
|||
this.getDataList() |
|||
} else { |
|||
this.$message.error(res.msg) |
|||
} |
|||
}, |
|||
// 拼音检索 |
|||
pinyingMatch(val) { |
|||
this.doctorNamePy = val |
|||
const arr = [] |
|||
if (val) { |
|||
this.doctorList.forEach(item => { |
|||
const A = this.$PinYinMatch.match(item.doctorName, val) |
|||
A ? arr.push(item) : '' |
|||
}) |
|||
this.doctorList = arr |
|||
} else { |
|||
this.doctorList = this.copyDoctorList |
|||
} |
|||
}, |
|||
doctorChange(e) { |
|||
this.dataForm.doctorCode = e |
|||
this.getDataListInitial() |
|||
}, |
|||
doctorClear() { |
|||
this.dataForm.doctorCode = '' |
|||
this.doctorList = this.copyDoctorList |
|||
this.getDataListInitial() |
|||
}, |
|||
|
|||
// 保存生命体征 |
|||
saveLifeClick() { |
|||
const lifeRef = this.$refs.lifeRef.$refs |
|||
// 0:等待呼叫,1:呼叫中,2:术前准备,3:手术中,4、手术完成 |
|||
if (this.$refs.lifeRef.tab === '1') { |
|||
const params1 = lifeRef.lifeTabOneRef.formListValue |
|||
params1.createName ? '' : params1.createName = this.userData.realName |
|||
params1.createCode ? '' : params1.createCode = this.userData.employeeId |
|||
this.funsaveLife(params1) |
|||
} else if (this.$refs.lifeRef.tab === '2') { |
|||
const params2 = lifeRef.lifeTabTwoRef.formListValue |
|||
params2.createName ? '' : params2.createName = this.userData.realName |
|||
params2.createCode ? '' : params2.createCode = this.userData.employeeId |
|||
this.funsaveLife(params2) |
|||
} |
|||
}, |
|||
// 保存生命体征封装 |
|||
async funsaveLife(parmas) { |
|||
const { data: res } = await this.$http.post('/quguang/pda/saveOrUpdate', parmas) |
|||
if (res.code === 0) { |
|||
this.$message({ |
|||
message: '您已保存成功', |
|||
type: 'success' |
|||
}) |
|||
this.lifeDialogVlisble = false |
|||
} else { |
|||
this.$message.error(res.msg) |
|||
} |
|||
}, |
|||
// 叫号 |
|||
async callHandle(scopeRow) { |
|||
const { data: res } = await this.$http.get(`/quguang/his/opera/schedule/callPatient/${scopeRow.id}`) |
|||
if (res.code === 0) { |
|||
this.$message({ |
|||
message: '呼叫成功', |
|||
type: 'success', |
|||
onClose: () => { |
|||
} |
|||
}) |
|||
this.shenzhouCall(scopeRow) |
|||
} else { |
|||
this.$message.error(res.msg) |
|||
} |
|||
}, |
|||
async shenzhouCall(scopeRow) { |
|||
const { data: res } = await this.$http.post('/quguang/his/opera/schedule/shenZhouCallPatient', { |
|||
hisUserName: this.userData.realName, |
|||
hisUserCode: this.userData.employeeId, |
|||
msg: `屈光手术室、${scopeRow.patientName}`, |
|||
mac: '38-3A-21-68-89-6F' |
|||
}) |
|||
if (res.code !== 0) { |
|||
this.$message.error(res.msg) |
|||
} |
|||
}, |
|||
// 关闭表单弹框 |
|||
closeformDialog(flag, currentInfo) { |
|||
console.log('124443', flag) |
|||
document.title = this.operaStatus === 2 ? '术前准备' : ( |
|||
this.operaStatus === 3 ? '手术中' : ( |
|||
this.operaStatus === 4 ? '手术完成' : '' |
|||
) |
|||
) |
|||
this.dialogFormVisible = false |
|||
this.dialogFormVlisbleTitle = '' |
|||
// flag 1保存 2保存后进入手术记录 3直接跳转手术记录 |
|||
flag === 2 || flag === 3 ? this.dropdownClick(currentInfo, '手术记录') : '' |
|||
}, |
|||
// 关闭生命体征弹框 |
|||
closelifeDialog() { |
|||
this.lifeDialogVlisble = false |
|||
this.dialogFormVlisbleTitle = '' |
|||
} |
|||
} |
|||
} |
|||
</script> |
|||
<style lang="scss" scoped> |
|||
.scheduled-patient { |
|||
background: #fff; |
|||
.scheduled-patient-content { |
|||
padding: 16px; |
|||
margin-bottom: 45px; |
|||
} |
|||
.scheduled-patient-head { |
|||
padding: 10px 16px 0 16px; |
|||
} |
|||
.call { |
|||
cursor: pointer; |
|||
color: #1890ff; |
|||
padding-right: 8px; |
|||
} |
|||
} |
|||
</style> |
|||
<style lang="scss"> |
|||
.scheduled-patient { |
|||
.boldColumn { |
|||
font-weight: 700; |
|||
color: #000; |
|||
|
|||
} |
|||
.scheduled-patient-head { |
|||
.el-form { |
|||
display: flex; |
|||
justify-content: space-between; |
|||
} |
|||
.el-form-item { |
|||
display: flex; |
|||
} |
|||
.el-form-item__label { |
|||
min-width: 90px; |
|||
} |
|||
.el-form-item { |
|||
margin-bottom: 0; |
|||
// width: 35%; |
|||
} |
|||
.el-form-item__content, |
|||
.el-select, |
|||
.el-range-editor--small.el-input__inner { |
|||
width: 100%; |
|||
} |
|||
.form-item-date { |
|||
.el-input__inner ,.el-form-item__content{ |
|||
width: 160px !important; |
|||
} |
|||
.el-date-editor--date { |
|||
width: 160px !important; |
|||
} |
|||
} |
|||
} |
|||
.el-select { |
|||
width: 100%; |
|||
} |
|||
.el-dropdown-link { |
|||
cursor: pointer; |
|||
color: #409eff; |
|||
} |
|||
.el-icon--right { |
|||
margin-left: 0; |
|||
} |
|||
.caFormDisplay .el-form-item__content { |
|||
display: flex; |
|||
} |
|||
} |
|||
</style> |
|||
@ -1,186 +0,0 @@ |
|||
<template> |
|||
<!-- 已预约 --> |
|||
<div class="scheduled-tab"> |
|||
<div class="scheduled-patient-head"> |
|||
<el-form :inline="true" :model="dataForm" class="demo-form-inline" @keyup.enter.native="getDataListInitial()"> |
|||
<el-form-item prop="dateRange" label="" class="form-item-date"> |
|||
<el-date-picker |
|||
v-model="nextVisitTime" |
|||
size="small" |
|||
type="daterange" |
|||
range-separator="-" |
|||
start-placeholder="开始日期" |
|||
end-placeholder="结束日期" |
|||
value-format="yyyy-MM-dd" |
|||
@change="dateChange" |
|||
/> |
|||
</el-form-item> |
|||
<el-form-item label="手术状态:"> |
|||
<el-select v-model="dataForm.status" placeholder="手术状态" size="small" clearable @clear="getDataListInitial()" @change="getDataListInitial()"> |
|||
<el-option v-for="(item,index) in statusList" :key="index" :label="item.name" :value="item.status" /> |
|||
</el-select> |
|||
</el-form-item> |
|||
<el-form-item> |
|||
<el-button type="primary" icon="el-icon-search" size="small" @click="getDataListInitial()">查询</el-button> |
|||
</el-form-item> |
|||
</el-form> |
|||
</div> |
|||
<div class="scheduled-patient-content"> |
|||
<el-table |
|||
ref="multipleTable" |
|||
:data="dataList" |
|||
tooltip-effect="dark" |
|||
style="width: 100%" |
|||
> |
|||
<el-table-column type="index" width="80px" label="PID" /> |
|||
<el-table-column prop="patientName" label="患者姓名" header-align="center" align="center" /> |
|||
<el-table-column prop="doctorName" label="主刀医生" header-align="center" align="center" /> |
|||
<el-table-column label="手术日期" prop="operaTime" header-align="center" align="center" /> |
|||
<el-table-column label="手术间" prop="operaRoom" header-align="center" align="center" /> |
|||
<el-table-column label="拟施手术" prop="" header-align="center" align="center" /> |
|||
<el-table-column prop="operation" label="操作" header-align="center" align="center"> |
|||
<template slot-scope="scope"> |
|||
<span class="call" @click="browseClick(scope.row)">档案</span> |
|||
<span v-show="scope.row.status===0 || scope.row.status===1" class="call" @click="callHandle(scope.row.id)">叫号</span> |
|||
</template> |
|||
</el-table-column> |
|||
</el-table> |
|||
<el-pagination background layout="total,prev, pager, next" :total="total" :current-page.sync="page" @current-change="pageCurrentChangeHandle" /> |
|||
</div> |
|||
</div> |
|||
</template> |
|||
<script> |
|||
import headTemplate from '@/components/head' |
|||
import mixinViewModule from '@/mixins/view-module' |
|||
export default { |
|||
components: { |
|||
headTemplate |
|||
}, |
|||
mixins: [mixinViewModule], |
|||
data() { |
|||
return { |
|||
mixinViewModuleOptions: { |
|||
getDataListURL: '/quguang/opera/patient/page', |
|||
// deleteURL: '/quguang/patient/manage', |
|||
getDataListIsPage: true |
|||
}, |
|||
nextVisitTime: [], |
|||
dataForm: { |
|||
flag: 0, |
|||
operationId: '', |
|||
patientId: '', |
|||
patientName: '', |
|||
patientPhone: '' |
|||
}, |
|||
// 0:等待呼叫,1:呼叫中,2:术前,3:术中,4:术后,5离开 |
|||
statusList: [{ |
|||
status: 0, |
|||
name: '等待呼叫' |
|||
}, { |
|||
status: 1, |
|||
name: '呼叫中' |
|||
}, { |
|||
status: 2, |
|||
name: '术前' |
|||
}, { |
|||
status: 3, |
|||
name: '术中' |
|||
}, { |
|||
status: 4, |
|||
name: '术后' |
|||
}] |
|||
} |
|||
}, |
|||
created() { |
|||
}, |
|||
methods: { |
|||
// 日期改变时 |
|||
dateChange(e) { |
|||
this.dataForm.startTime = e ? e[0] : '' |
|||
this.dataForm.endTime = e ? e[1] : '' |
|||
this.getDataListInitial() |
|||
}, |
|||
// 浏览 |
|||
browseClick(scopeRow) { |
|||
console.log(scopeRow) |
|||
this.$router.push({ |
|||
path: '/seeDoctor', |
|||
query: { |
|||
info: this.$Base64.encode(JSON.stringify({ |
|||
patientIdNumber: scopeRow.patientIdNumber, |
|||
patientCentreId: scopeRow.patientCentreId |
|||
})) |
|||
} |
|||
}) |
|||
} |
|||
// 叫号 |
|||
// async callHandle(id) { |
|||
// const { data: res } = await this.$http.get(`/quguang/opera/scheduled/callPatient/${id}`) |
|||
// if (res.code === 0) { |
|||
// this.$message({ |
|||
// message: this.$t('prompt.success'), |
|||
// type: 'success', |
|||
// onClose: () => { |
|||
// this.getDataListInitial() |
|||
// } |
|||
// }) |
|||
// } else { |
|||
// this.$message.error(res.msg) |
|||
// } |
|||
// } |
|||
} |
|||
} |
|||
</script> |
|||
<style lang="scss" scoped> |
|||
.scheduled-tab { |
|||
background: #fff; |
|||
.scheduled-patient-content { |
|||
padding-top: 6px; |
|||
margin-bottom: 45px; |
|||
} |
|||
.scheduled-patient-head { |
|||
padding: 10px 16px 0 16px; |
|||
position: fixed; |
|||
top: 69px; |
|||
right: 0; |
|||
} |
|||
.call { |
|||
cursor: pointer; |
|||
color: #1890ff; |
|||
padding-right: 8px; |
|||
} |
|||
} |
|||
</style> |
|||
<style lang="scss"> |
|||
.scheduled-tab { |
|||
.scheduled-patient-head { |
|||
.el-form { |
|||
display: flex; |
|||
justify-content: flex-end; |
|||
} |
|||
.el-form-item { |
|||
display: flex; |
|||
} |
|||
.el-form-item__label { |
|||
min-width: 75px; |
|||
} |
|||
.el-form-item { |
|||
margin-bottom: 0; |
|||
} |
|||
.el-form-item__content, |
|||
.el-select, |
|||
.el-range-editor--small.el-input__inner { |
|||
width: 100%; |
|||
} |
|||
.form-item-date .el-form-item__content { |
|||
max-width: 280px; |
|||
} |
|||
.el-input__inner { |
|||
width: 130px; |
|||
} |
|||
} |
|||
.el-select { |
|||
width: 100%; |
|||
} |
|||
} |
|||
</style> |
|||
@ -1,495 +0,0 @@ |
|||
<template> |
|||
<div class="form-set"> |
|||
<el-tabs tab-position="left"> |
|||
<el-tab-pane label="手术记录"> |
|||
<div class="margin-bottom-10"> |
|||
手术方式: |
|||
<el-select v-model="operaValue" placeholder="请选择手术方式"> |
|||
<el-option |
|||
v-for="(item,index) in operaList" |
|||
:key="index" |
|||
:label="item.bieMing" |
|||
:value="item.bieMing" |
|||
@click.native="selectClick(item)" |
|||
/> |
|||
</el-select> |
|||
</div> |
|||
<div class="form-set-right-content"> |
|||
<div v-if="mrzOperaNameList.length>0" class="formList"> |
|||
<div v-for="(item,index) in mrzOperaNameList" :key="index" class="formList-li" @dblclick="yinruMrzClick(item)"> |
|||
<p class="title-w">{{ item.title }}</p> |
|||
<div class="flex"> |
|||
<div class="li-content"> |
|||
<div v-show="item.sslxOd" class="margin-bottom-10 width-160 left"> |
|||
<span>手术类型:</span> |
|||
<span>{{ item.sslxOd }}</span> |
|||
</div> |
|||
<div v-show="item.msOd" class="margin-bottom-10 width-160 left"> |
|||
<span>模式:</span> |
|||
<span>{{ item.msOd }}</span> |
|||
</div> |
|||
<!-- 光学/治疗区直径 --> |
|||
<div v-show="item.gxOd || item.zlqzjOd" class="margin-bottom-10 width-90 left"> |
|||
<span>光学/治疗区直径:</span> |
|||
{{ item.gxOd ? item.gxOd : '-' }} / {{ item.zlqzjOd ? item.zlqzjOd : '-' }} mm |
|||
</div> |
|||
<!--帽厚度 --> |
|||
<div v-show="item.mhdOd" class="margin-bottom-10 width-160 left"> |
|||
<span>帽厚度:</span> |
|||
<span>{{ item.mhdOd }}</span> μm |
|||
</div> |
|||
<!-- 吸引环参数 --> |
|||
<div |
|||
v-show="item.xyhOd" |
|||
class="margin-bottom-10 width-160 left" |
|||
> |
|||
<span>吸引环参数:</span> |
|||
<span>{{ item.xyhOd }}</span> mm |
|||
</div> |
|||
<!--瓣厚度 --> |
|||
<div |
|||
v-show="item.bhdOd" |
|||
class="margin-bottom-10 width-160 left" |
|||
> |
|||
<span>瓣厚度:</span> |
|||
<span>{{ item.bhdOd }}</span> μm |
|||
</div> |
|||
<!-- 切削深度 --> |
|||
<div v-show="item.xqsdOd" class="margin-bottom-10 width-120 left"> |
|||
<span>切削深度:</span> |
|||
<span>{{ item.xqsdOd }}</span> μm |
|||
</div> |
|||
<!-- 剩余基质厚度 --> |
|||
<div v-show="item.syjzhdOd" class="margin-bottom-10 width-120 left"> |
|||
<span>剩余基质厚度:</span> |
|||
<span>{{ item.syjzhdOd }}</span> μm |
|||
</div> |
|||
<!-- 上皮中央/周边厚度 --> |
|||
<div v-show="item.spzyOd || item.zbhdOd" class="margin-bottom-10 width-100 left"> |
|||
<span>上皮中央/周边厚度:</span> |
|||
<span>{{ item.spzyOd ? item.spzyOd : '-' }} / {{ item.zbhdOd ? item.zbhdOd : '-' }}</span> μm |
|||
</div> |
|||
<!-- 总切削深度 --> |
|||
<div v-show="item.xqsdOd" class="margin-bottom-10 width-120 left"> |
|||
<span>总切削深度:</span> |
|||
<span>{{ item.xqsdOd }}</span> μm |
|||
</div> |
|||
<!-- 移心量 --> |
|||
<div v-show="mrzFormValue.yxlOd1 || item.yxlOd2" class="margin-bottom-10 width-100 left"> |
|||
<span>移心量:</span> |
|||
r <span>{{ mrzFormValue.yxlOd1 ? mrzFormValue.yxlOd1 : '-' }}</span> mm/Angle |
|||
<span>{{ item.yxlOd2 ? item.yxlOd2 : '-' }}</span> ° |
|||
</div> |
|||
<!-- SCC --> |
|||
<div v-show="item.sccOd" class="margin-bottom-10 width-160 left"> |
|||
<span>SCC:</span> |
|||
<span>{{ item.sccOd }}</span> ° |
|||
</div> |
|||
<!-- MCC --> |
|||
<div |
|||
v-show="item.mmcOd" |
|||
class="margin-bottom-10 width-160 left" |
|||
> |
|||
<span>MMC:</span> |
|||
<span>{{ item.mmcOd }}</span> s |
|||
</div> |
|||
<!-- Tr --> |
|||
<div |
|||
v-show="item.trOd" |
|||
class="margin-bottom-10 width-160 left" |
|||
> |
|||
<span>Tr:</span> |
|||
<span>{{ item.trOd }}</span> J/cm2 |
|||
</div> |
|||
<!-- Ts --> |
|||
<div |
|||
v-show="item.tsOd" |
|||
class="margin-bottom-10 width-160 left" |
|||
> |
|||
<span>Ts:</span> |
|||
<span>{{ item.tsOd }}</span> s |
|||
</div> |
|||
<!-- ADD --> |
|||
<div v-show="item.addOd" class="margin-bottom-10 width-160 left"> |
|||
<span>ADD:</span> |
|||
<span>{{ item.addOd }}</span> D |
|||
</div> |
|||
<!-- 核黄素类型 --> |
|||
<div v-show="item.hhslxOd" class="margin-bottom-10 width-120 left"> |
|||
<span>核黄素类型:</span> |
|||
<span>{{ item.hhslxOd }}</span> |
|||
</div> |
|||
<!-- 渗透时间 --> |
|||
<div v-show="item.stsjOd" class="margin-bottom-10 width-120 left"> |
|||
<span>渗透时间:</span> |
|||
<span>{{ item.stsjOd }}</span> min |
|||
</div> |
|||
<!-- 渗透评估 --> |
|||
<div v-show="item.stpgOd" class="margin-bottom-10 width-120 left"> |
|||
<span>渗透评估:</span> |
|||
<span>{{ item.stpgOd }}</span> 级 |
|||
</div> |
|||
<!-- 角膜厚度 --> |
|||
<div v-show="item.jmhdOd1 || item.jmhdOd2 || item.jmhdOd3 || item.jmhdOd4" class="margin-bottom-10 width-60 left"> |
|||
<span>角膜厚度:</span> |
|||
<span>{{ item.jmhdOd1 ? item.jmhdOd1 : '-' }}</span> / |
|||
<span>{{ item.jmhdOd2 ? item.jmhdOd2 : '-' }}</span> / |
|||
<span>{{ item.jmhdOd3 ? item.jmhdOd3 : '-' }}</span> / |
|||
<span>{{ item.jmhdOd4 ? item.jmhdOd4 : '-' }}</span> μm |
|||
</div> |
|||
<!-- 角膜厚度照射后 --> |
|||
<div v-show="item.jmhdzshOd" class="margin-bottom-10 width-160 left"> |
|||
<span>角膜厚度(照射后):</span> |
|||
<span>{{ item.jmhdzshOd }}</span> μm |
|||
</div> |
|||
<!-- 照射模式 --> |
|||
<div v-show="item.zsmsOd" class="margin-bottom-10 width-160 left"> |
|||
<span>照射模式:</span> |
|||
<span>{{ item.zsmsOd }}</span> |
|||
</div> |
|||
<!-- 照射直径 --> |
|||
<div v-show="item.zszjOd " class="margin-bottom-10 width-160 left"> |
|||
<span>照射直径:</span> |
|||
<span>{{ item.zszjOd }}</span> mm |
|||
</div> |
|||
<!-- 辐照度 --> |
|||
<div v-show="item.fzdOd" class="margin-bottom-10 width-160 left"> |
|||
<span>辐照度:</span> |
|||
<span>{{ item.fzdOd }}</span> mW/cm |
|||
</div> |
|||
<!-- 照射时间 --> |
|||
<div v-show="item.zssjOd1 || item.zssjOd2" class="margin-bottom-10 width-120 left"> |
|||
<span>照射时间:</span> |
|||
<span>{{ item.zssjOd1 ? item.zssjOd1 : '-' }}</span> min |
|||
<span>{{ item.zssjOd2 ? item.zssjOd2 : '-' }}</span> s |
|||
</div> |
|||
<!-- 总能量 --> |
|||
<div v-show="item.znlOd" class="margin-bottom-10 width-160 left"> |
|||
<span>总能量:</span> |
|||
<span>{{ item.znlOd }}</span> J/cm |
|||
</div> |
|||
<!-- 术中情况 --> |
|||
<div v-show="item.szqkOd" class="margin-bottom-10 width-240 left"> |
|||
<span>术中情况:</span> |
|||
<span>{{ item.szqkOd }}</span> |
|||
</div> |
|||
<!-- 手术仪器 --> |
|||
<div v-show="item.ssyqOd" class="margin-bottom-10 left flex-2 width-160"> |
|||
<span>手术仪器:</span> |
|||
<span>{{ item.ssyqOd }}</span> |
|||
</div> |
|||
</div> |
|||
<span v-if="pageTitle=='表单设置'" class="buttonli"> |
|||
<span style="color: #1890ff; padding-right: 8px" class="cursor" @click="editAddHandle(item)">编辑</span> |
|||
<span style="color: #ff4d4f;" class="cursor" @click="deleteFormSet(item)">删除</span> |
|||
</span> |
|||
<span v-else class="buttonli"> |
|||
<span style="color: #1890ff; padding-right: 8px" class="cursor" @click="yinruMrzClick(item)">引入</span> |
|||
</span> |
|||
</div> |
|||
|
|||
</div> |
|||
</div> |
|||
<img v-if="mrzOperaNameList.length <=0" src="@/assets/img/nodata.png" alt="" class="nodata" width="500px"> |
|||
<!-- <el-button type="primary" class="form-set-save" @click="saveMrzHandle">保存</el-button> --> |
|||
<el-button v-if="pageTitle=='表单设置'" type="primary" class="form-set-save" icon="el-icon-plus" circle @click="editAddHandle()" /> |
|||
</div> |
|||
</el-tab-pane> |
|||
<el-tab-pane label="医疗收费知情同意书"> |
|||
<head-template head-left="收费管理"> |
|||
<el-button type="primary" size="small" icon="el-icon-plus" @click="addPay">新增</el-button> |
|||
</head-template> |
|||
<el-table |
|||
:data="payProjectList" |
|||
style="width: 100%" |
|||
> |
|||
<el-table-column |
|||
prop="name" |
|||
label="收费项目" |
|||
/> |
|||
<el-table-column |
|||
prop="sl" |
|||
label="单价" |
|||
/> |
|||
<el-table-column |
|||
prop="dj" |
|||
label="数量" |
|||
/> |
|||
<el-table-column |
|||
prop="je" |
|||
label="金额" |
|||
/> |
|||
</el-table> |
|||
</el-tab-pane> |
|||
</el-tabs> |
|||
<el-dialog |
|||
v-if="addFormSetVisible" |
|||
:title="currentList.bieMing + '默认值设置'" |
|||
:visible.sync="addFormSetVisible" |
|||
width="80%" |
|||
@close="closeDialog" |
|||
> |
|||
<el-form ref="dataForm" :model="dataForm" :rules="dataRule" label-width="auto"> |
|||
<el-form-item prop="title" label="默认值名称"> |
|||
<el-input v-model="dataForm.title" placeholder="默认值名称" size="small" /> |
|||
</el-form-item> |
|||
</el-form> |
|||
<operation-record ref="operationRecordRef" page-title="表单设置" /> |
|||
<span slot="footer" class="dialog-footer"> |
|||
<el-button @click="addFormSetVisible = false">取 消</el-button> |
|||
<el-button type="primary" @click="saveFormSetHandle">保 存</el-button> |
|||
</span> |
|||
</el-dialog> |
|||
</div> |
|||
</template> |
|||
<script> |
|||
import operationRecord from '@/components/H5form/operation-record' |
|||
import headTemplate from '@/components/head' |
|||
export default { |
|||
name: '', |
|||
components: { |
|||
headTemplate, |
|||
operationRecord |
|||
}, |
|||
props: { |
|||
pageTitle: { |
|||
type: String, |
|||
default: '表单设置' |
|||
} |
|||
}, |
|||
data() { |
|||
return { |
|||
formList: ['手术记录'], |
|||
addFormSetVisible: false, |
|||
currentList: {}, |
|||
dataForm: { |
|||
title: '' |
|||
}, |
|||
defaultActive: 'SMILE', |
|||
mrzFormValue: {}, |
|||
operaList: [], |
|||
mrzOperaNameList: [], |
|||
eyeYrFlag: 0, |
|||
operaValue: '', |
|||
payProjectList: [{ |
|||
name: '', |
|||
sl: '', |
|||
dj: '', |
|||
je: '' |
|||
}] |
|||
} |
|||
}, |
|||
computed: { |
|||
dataRule() { |
|||
return { |
|||
title: [ |
|||
{ title: true, message: '请输入内容', trigger: 'blur' } |
|||
] |
|||
} |
|||
} |
|||
}, |
|||
created() { |
|||
this.getOperaList() |
|||
}, |
|||
mounted() { |
|||
}, |
|||
methods: { |
|||
init(currentOpera) { |
|||
this.eyeYrFlag = 1 |
|||
this.defaultActive = currentOpera.bieMing |
|||
this.currentList = currentOpera |
|||
this.getFormList() |
|||
}, |
|||
handleClick(tab, event) { |
|||
console.log(tab, event) |
|||
}, |
|||
// 获取术士项目列表 |
|||
async getOperaList() { |
|||
const { data: res } = await this.$http.get('/quguang/opera/patient/getOperaList') |
|||
if (res.code === 0) { |
|||
this.operaList = res.data |
|||
if (this.eyeYrFlag === 0) { |
|||
this.currentList = res.data[0] |
|||
this.operaValue = res.data[0].bieMing |
|||
this.getFormList() |
|||
} |
|||
} else { |
|||
this.$message.error(res.msg) |
|||
} |
|||
}, |
|||
// 获取表单列表 |
|||
async getFormList() { |
|||
const { data: res } = await this.$http.get('/quguang/opera/record/temp/getListByName', { |
|||
params: { |
|||
operaName: this.currentList.operaName |
|||
} |
|||
}) |
|||
if (res.code === 0) { |
|||
this.mrzOperaNameList = res.data |
|||
} else { |
|||
this.$message.error(res.msg) |
|||
} |
|||
}, |
|||
// 新增默认值 |
|||
editAddHandle(item) { |
|||
this.addFormSetVisible = true |
|||
this.$nextTick(() => { |
|||
this.$refs.operationRecordRef.init() |
|||
this.$refs.operationRecordRef.setSaveEidtTitle('保存') |
|||
this.$refs.operationRecordRef.selectOperaChange('ssfsOd', this.currentList.operaName) |
|||
item ? this.editFormSet(item) : '' |
|||
}) |
|||
}, |
|||
async editFormSet(item) { |
|||
const { data: res } = await this.$http.get('/quguang/opera/record/temp/getInfo', { |
|||
params: { |
|||
id: item.id |
|||
} |
|||
}) |
|||
if (res.code === 0) { |
|||
this.dataForm.title = res.data.title |
|||
this.$refs.operationRecordRef.editFormSet(res.data) |
|||
} else { |
|||
this.$message.error(res.msg) |
|||
} |
|||
}, |
|||
// 切换手术方式时 |
|||
selectClick(item) { |
|||
console.log(item) |
|||
this.currentList = item |
|||
this.getFormList() |
|||
}, |
|||
|
|||
// 引入默认值 |
|||
yinruMrzClick(item) { |
|||
this.$emit('yinruMrzClick', item) |
|||
}, |
|||
async addPay() { |
|||
const { data: res } = await this.$http.post('') |
|||
}, |
|||
// 保存 |
|||
async saveFormSetHandle() { |
|||
const formListValue = this.$refs.operationRecordRef.formListValue |
|||
console.log('formListValue', formListValue) |
|||
const osArr = JSON.parse(JSON.stringify(formListValue).replace(/Od/g, 'Os')) |
|||
this.mrzFormValue = { ...formListValue, ...osArr } |
|||
console.log(this.mrzFormValue) |
|||
const { data: res } = await this.$http.post('/quguang/opera/record/temp/saveOrUpdate', { |
|||
...this.mrzFormValue, ...this.dataForm |
|||
}) |
|||
if (res.code === 0) { |
|||
this.$message({ |
|||
message: '您已保存成功', |
|||
type: 'success' |
|||
}) |
|||
this.addFormSetVisible = false |
|||
this.getFormList() |
|||
} else { |
|||
this.$message.error(res.msg) |
|||
} |
|||
}, |
|||
// 删除 |
|||
deleteFormSet(item) { |
|||
this.$confirmFun('您确定要删除此默认值设置吗', '您已取消删除').then(async() => { |
|||
const { data: res } = await this.$http.delete('/quguang/opera/record/temp', { |
|||
params: { |
|||
id: item.id |
|||
} |
|||
}) |
|||
if (res.code === 0) { |
|||
this.$message({ |
|||
message: '您已删除成功', |
|||
type: 'success' |
|||
}) |
|||
this.getFormList() |
|||
} else { |
|||
this.$message.error(res.msg) |
|||
} |
|||
}) |
|||
}, |
|||
closeDialog() { |
|||
console.log(123) |
|||
this.addFormSetVisible = false |
|||
} |
|||
} |
|||
} |
|||
</script> |
|||
<style lang="scss" scoped> |
|||
.form-set { |
|||
height: calc(100vh - 50px - 20px); |
|||
overflow: hidden; |
|||
width: 100%; |
|||
background: #fff; |
|||
display: flex; |
|||
.form-set-left { |
|||
width: 300px; |
|||
height: calc(100vh - 50px - 50px); |
|||
min-width: 180px; |
|||
padding: 10px 0; |
|||
} |
|||
.form-set-left-content { |
|||
height: 100%; |
|||
overflow-x: auto; |
|||
} |
|||
.form-set-right-content { |
|||
border-left: 1px solid #ccc; |
|||
flex: 1; |
|||
height: calc(100vh - 130px); |
|||
position: relative; |
|||
overflow-x: auto; |
|||
.formList-li { |
|||
padding: 10px; |
|||
border-bottom: 1px solid #ccc; |
|||
} |
|||
.li-content { |
|||
padding-left: 10px; |
|||
padding-top: 10px; |
|||
} |
|||
} |
|||
.formList-li:hover { |
|||
background: #f5f7fa; |
|||
} |
|||
.left-title { |
|||
padding-left: 10px; |
|||
font-size: 18px; |
|||
font-weight: 700; |
|||
} |
|||
.title-w { |
|||
font-weight: 700; |
|||
font-size: 18px; |
|||
} |
|||
|
|||
.form-set-save { |
|||
position: fixed; |
|||
right: 30px; |
|||
bottom: 30px; |
|||
} |
|||
|
|||
.nodata { |
|||
} |
|||
.addproject { |
|||
display: flex; |
|||
justify-content: flex-end; |
|||
} |
|||
} |
|||
</style> |
|||
<style lang="scss"> |
|||
.form-set { |
|||
.el-tabs { |
|||
width: 100%; |
|||
} |
|||
.el-tabs--left, .el-tabs--right { |
|||
display: flex; |
|||
} |
|||
.el-tabs--left .el-tabs__header.is-left { |
|||
width: 120px; |
|||
} |
|||
.el-tabs__content { |
|||
flex: 1; |
|||
} |
|||
.el-tabs__content { |
|||
padding: 10px; |
|||
} |
|||
} |
|||
|
|||
</style> |
|||
Loading…
Reference in new issue