Browse Source

修改ca数据签

master
刘灿 10 months ago
parent
commit
e3dc61ead4
  1. 6
      .env.development
  2. 13
      .env.production
  3. 29
      src/components/H5form/consent-book-jmjl.vue
  4. 28
      src/components/H5form/consent-book-zfz-jgzl.vue
  5. 3
      src/components/H5form/consent-book.vue
  6. 582
      src/components/H5form/dzblLookFun.vue
  7. 4
      src/components/H5form/dzblLookPdf.vue
  8. 130
      src/components/H5form/fzbl.vue
  9. 4
      src/components/H5form/fzblLookPdf.vue
  10. 165
      src/components/H5form/fzblLookPdfFun.vue
  11. 3020
      src/components/H5form/jmjl-dzbl.vue
  12. 2128
      src/components/H5form/jmjl-opera-check-record.vue
  13. 168
      src/components/H5form/jmjlDzblBook.vue
  14. 1085
      src/components/H5form/jmjlDzblBookFun.vue
  15. 44
      src/components/H5form/jmjlDzblBookPdf.vue
  16. 172
      src/components/H5form/jmjlOperaCheckLook.vue
  17. 42
      src/components/H5form/jmjlOperaCheckLookPdf.vue
  18. 561
      src/components/H5form/jmjlOperaCheckLookPdfFun.vue
  19. 5
      src/components/H5form/lhopera-consent-book.vue
  20. 4
      src/components/H5form/operaCheckLookPdf.vue
  21. 292
      src/components/H5form/operaCheckLookPdfFun.vue
  22. 246
      src/components/H5form/operation-nursing-record.vue
  23. 150
      src/components/H5form/operation-plan.vue
  24. 319
      src/components/H5form/operation-record.vue
  25. 246
      src/components/H5form/operationed-check-record.vue
  26. 7
      src/components/H5form/payDemandNote.vue
  27. 43
      src/components/H5form/qg-dzbl.vue
  28. 3
      src/components/H5form/shouquanBook.vue
  29. 21
      src/components/H5form/talk-record.vue
  30. 24
      src/components/hm-crf/index.vue
  31. 4
      src/components/item-select/display.vue
  32. 6
      src/components/item-select/index.vue
  33. 4
      src/components/kpi-select/display.vue
  34. 214
      src/mixins/htmlToPdfToBlob.js
  35. 12
      src/mixins/operationPlan.js
  36. 39
      src/mixins/publicFile.js
  37. 36
      src/mixins/signGet.js
  38. 194
      src/mixins/yiXinQianSign.js
  39. 8
      src/page-subspecialty/router/index.js
  40. 100
      src/page-subspecialty/views/modules/seeDoctor/archives/index.vue
  41. 661
      src/page-subspecialty/views/modules/surgicalManagement/operationList/index copy.vue
  42. 233
      src/page-subspecialty/views/modules/surgicalManagement/operationList/index.vue
  43. 186
      src/page-subspecialty/views/modules/surgicalManagement/operationOrder/scheduled-tab-1.vue
  44. 495
      src/page-subspecialty/views/modules/systemManagement/formSet/index copy.vue
  45. 4
      src/page-subspecialty/views/modules/systemManagement/formSet/index.vue
  46. 2
      vue.config.js

6
.env.development

@ -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'

13
.env.production

@ -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'

29
src/components/H5form/consent-book-jmjl.vue

@ -75,19 +75,19 @@
<div class="flex-2 left printPagebreak" style="margin-top:10px">
<span style="width: 80px">术前诊断</span>
<span class="width-80 padding-right-10">
<el-select v-if="saveEidtTitle==='保存'" v-model="formListValue.sqzdEyeValue" placeholder="" clearable
<el-select v-if="saveEidtTitle==='保存'" v-model="formListValue.zdQgInput" placeholder="" clearable
class="margin-right-6">
<el-option v-for="(item, index) in odosList" :key="index" :label="item" :value="item" />
</el-select>
<span v-else
style="border-bottom:1px solid #ccc;padding:0 16px;">{{ formListValue.sqzdEyeValue ? formListValue.sqzdEyeValue : '-' }}</span>
style="border-bottom:1px solid #ccc;padding:0 16px;">{{ formListValue.zdQgInput ? formListValue.zdQgInput : '-' }}</span>
</span>
<el-checkbox v-model="formListValue.sqzdCheck1" style="padding-right:10px;">圆锥角膜</el-checkbox>
<el-checkbox v-model="formListValue.sqzdQtCheck">其他
<el-checkbox v-model="formListValue.zdCheck1" style="padding-right:10px;">圆锥角膜</el-checkbox>
<el-checkbox v-model="formListValue.zdQtCheck">其他
<span class="width-280">
<el-input v-if="saveEidtTitle==='保存'" v-model="formListValue.sqzdQtInput" placeholder="" />
<el-input v-if="saveEidtTitle==='保存'" v-model="formListValue.zdQtInput" placeholder="" />
<span v-else
style="border-bottom:1px solid #ccc;padding:0 16px;">{{ formListValue.sqzdQtInput ? formListValue.sqzdQtInput : '-' }}</span>
style="border-bottom:1px solid #ccc;padding:0 16px;">{{ formListValue.zdQtInput ? formListValue.zdQtInput : '-' }}</span>
</span>
</el-checkbox>
</div>
@ -142,11 +142,11 @@
<div class="left zdfa margin-top-10 printPagebreak">
<span>拟施麻醉方式:</span>
<span>
<el-select v-if="saveEidtTitle==='保存'" v-model="formListValue.nsMzfs" placeholder="请选择" size="small">
<el-select v-if="saveEidtTitle==='保存'" v-model="formListValue.zlfaMz" placeholder="请选择" size="small">
<el-option v-for="(item,index) in narcosisList" :key="index" :label="item.name" :value="item.name" />
</el-select>
<span v-else
style="border-bottom:1px solid #ccc;padding:0 16px;">{{ formListValue.nsMzfs ? formListValue.nsMzfs : '-' }}</span>
style="border-bottom:1px solid #ccc;padding:0 16px;">{{ formListValue.zlfaMz ? formListValue.zlfaMz : '-' }}</span>
</span>
</div>
<div class="left tdfa margin-top-10 printPagebreak">
@ -432,19 +432,19 @@ export default {
//
zk: '',
//
sqzdEyeValue: '',
zdQgInput: '',
//
sqzdCheck1: '',
zdCheck1: '',
//
sqzdQtCheck: '',
zdQtCheck: '',
//
sqzdQtInput: '',
zdQtInput: '',
//
ssfsOd: '',
ssfsOs: '',
ssfsOu: '',
//
nsMzfs: '表面麻醉',
zlfaMz: '表面麻醉',
//
dtzlfaValue: '除手术外患者可以选择佩戴框架眼镜或硬性隐形眼镜作为替代方案,但由于患者手术意愿强烈,故患者及家属慎重考虑后要求选择本次手术治疗方案。',
//
@ -555,12 +555,11 @@ export default {
}
},
destroyed() {
console.log('激光手术同意书destroyed')
console.log('角膜交联术治疗同意书destroyed')
// this.$store.commit('clearSignDate', 'lhOperaRecord')
// this.$parent.deleteErmUpdating(this.archiveCaseCRFItem.id)
},
mounted() {
this.formListValue.content = `
<p style="text-align: left;">扩张性角膜病变包括原发性圆锥角膜继发于屈光手术(如LASIK)的角膜扩张透明性边缘性角膜变性等角膜发生扩张膨隆并不断进展的一类疾病其中以圆锥角膜为典型代表常造成高度不规则近视散光和不同程度的视力损害严重的圆锥角膜病变需要角膜移植角膜交联术是针对扩张性角膜病变发病机制和改变角膜胶原内在生物力学特性的治疗方法已成为目前惟一可以阻止扩张性角膜病变病情进展的治疗方法它通过加固角膜基质延缓或阻止角膜膨隆的进展从而维持患者有效视力延迟甚至避免接受角膜移植</p>
<p style="text-align: left;">提醒所有患者:术前一定要明确自己的手术目的和术中术后可能出现的不良后果</p>

28
src/components/H5form/consent-book-zfz-jgzl.vue

@ -75,19 +75,19 @@
<div class="flex-2 left printPagebreak" style="margin-top:10px">
<span style="width: 80px">术前诊断</span>
<span class="width-80 padding-right-10">
<el-select v-if="saveEidtTitle==='保存'" v-model="formListValue.sqzdEyeValue" placeholder="" clearable
<el-select v-if="saveEidtTitle==='保存'" v-model="formListValue.zdQgInput" placeholder="" clearable
class="margin-right-6">
<el-option v-for="(item, index) in odosList" :key="index" :label="item" :value="item" />
</el-select>
<span v-else
style="border-bottom:1px solid #ccc;padding:0 16px;">{{ formListValue.sqzdEyeValue ? formListValue.sqzdEyeValue : '-' }}</span>
style="border-bottom:1px solid #ccc;padding:0 16px;">{{ formListValue.zdQgInput ? formListValue.zdQgInput : '-' }}</span>
</span>
<el-checkbox v-model="formListValue.sqzdCheck1" style="padding-right:10px;">复发性角膜上皮糜烂</el-checkbox>
<el-checkbox v-model="formListValue.sqzdQtCheck">其他
<el-checkbox v-model="formListValue.zdCheck1" style="padding-right:10px;">复发性角膜上皮糜烂</el-checkbox>
<el-checkbox v-model="formListValue.zdQtCheck">其他
<span class="width-280">
<el-input v-if="saveEidtTitle==='保存'" v-model="formListValue.sqzdQtInput" placeholder="" />
<el-input v-if="saveEidtTitle==='保存'" v-model="formListValue.zdQtInput" placeholder="" />
<span v-else
style="border-bottom:1px solid #ccc;padding:0 16px;">{{ formListValue.sqzdQtInput ? formListValue.sqzdQtInput : '-' }}</span>
style="border-bottom:1px solid #ccc;padding:0 16px;">{{ formListValue.zdQtInput ? formListValue.zdQtInput : '-' }}</span>
</span>
</el-checkbox>
</div>
@ -154,11 +154,11 @@
<div class="left zdfa margin-top-10 printPagebreak">
<span>拟施麻醉方式:</span>
<span>
<el-select v-if="saveEidtTitle==='保存'" v-model="formListValue.nsMzfs" placeholder="请选择" size="small">
<el-select v-if="saveEidtTitle==='保存'" v-model="formListValue.zlfaMz" placeholder="请选择" size="small">
<el-option v-for="(item,index) in narcosisList" :key="index" :label="item.name" :value="item.name" />
</el-select>
<span v-else
style="border-bottom:1px solid #ccc;padding:0 16px;">{{ formListValue.nsMzfs ? formListValue.nsMzfs : '-' }}</span>
style="border-bottom:1px solid #ccc;padding:0 16px;">{{ formListValue.zlfaMz ? formListValue.zlfaMz : '-' }}</span>
</span>
</div>
<div class="left tdfa margin-top-10 printPagebreak">
@ -444,19 +444,19 @@ export default {
//
zk: '',
//
sqzdEyeValue: '',
zdQgInput: '',
//
sqzdCheck1: '',
zdCheck1: '',
//
sqzdQtCheck: '',
zdQtCheck: '',
//
sqzdQtInput: '',
zdQtInput: '',
//
ssfsOd: '',
ssfsOs: '',
ssfsOu: '',
//
nsMzfs: '表面麻醉',
zlfaMz: '表面麻醉',
//
dtzlfaValue: '除手术外患者可以选择佩戴软性或硬性隐形眼镜、角膜热烧灼、机械性刮除角膜上皮等方法作为替代方案,但由于患者要求尝试激光手术意愿强烈,故患者及家属慎重考虑后要求选择本次手术治疗方案。',
//
@ -567,7 +567,7 @@ export default {
}
},
destroyed() {
console.log('激光手术同意书destroyed')
console.log('准分子激光治疗性角膜切削术同意书destroyed')
// this.$store.commit('clearSignDate', 'lhOperaRecord')
// this.$parent.deleteErmUpdating(this.archiveCaseCRFItem.id)
},

3
src/components/H5form/consent-book.vue

@ -162,11 +162,12 @@ import h5formButton from '@/components/H5formOhter/h5formButton'
import signNSV from '@/mixins/sign-NSV'
import { isIDNumber, isHuzhao } from '@/utils/validate'
import htmlToPdfToBlob from '@/mixins/htmlToPdfToBlob'
import yiXinQianSign from '@/mixins/yiXinQianSign.js'
export default {
components: {
h5formButton
},
mixins: [signGet, publicFile, signNSV, htmlToPdfToBlob],
mixins: [signGet, publicFile, signNSV, htmlToPdfToBlob, yiXinQianSign],
props: {
archiveCaseCRFItem: {
type: Object,

582
src/components/H5form/dzblLookFun.vue

@ -1,132 +1,88 @@
<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;' : ''"
>
<div
style="
<div v-if="isShow === 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;' : ''">
<div style="
font-size: 32px;
font-weight: 700;
text-align: center;
font-family:MicrosoftYaHeiBold;
"
>
">
温州医科大学附属眼视光医院
</div>
<div
style="
<div style="
font-size: 30px;
font-weight: 700;
text-align: center;
margin-bottom: 10px;
font-family:MicrosoftYaHeiBold;
"
>
">
{{
archiveCaseCRFItem.formName.includes("复诊")
? "术前复诊门诊病历"
: "初诊门诊病历"
}}
</div>
<div
style="
<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 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="
<div id="printA5" style="
flex: 1;
font-size: 16px;
text-align: justify;
line-height: 22px;
"
:style="savePdf ? 'max-width: 100%;margin: 0 auto;' : ''"
>
" :style="savePdf ? 'max-width: 100%;margin: 0 auto;' : ''">
<div style="text-align: justify;line-height: 22px;">
<div style="margin-bottom: 2px; break-inside: avoid">
<span
v-if="archiveCaseCRFItem.formName.includes('复诊')"
style="display: flex; align-items: center"
>
<span v-if="archiveCaseCRFItem.formName.includes('复诊')" style="display: flex; align-items: center">
<div style="font-weight: 700">主诉及病史</div>
{{ formListValue.zsandBs }}
</span>
<span v-else style="display: flex; align-items: center">
<span style="font-weight: 700;font-family:MicrosoftYaHeiBold;">主诉</span>
<span>{{ formListValue.jsEyetypeRadio }}视力减退{{
<span>{{ formListValue.jsEyetypeRadio }}视力逐渐减退{{
formListValue.jsTimeInput ? formListValue.jsTimeInput : "-"
}}</span>
</span>
</div>
<div
v-if="!archiveCaseCRFItem.formName.includes('复诊')"
style="margin-bottom: 2px; break-inside: avoid"
>
<div v-if="!archiveCaseCRFItem.formName.includes('复诊')" style="margin-bottom: 2px; break-inside: avoid">
<span style="font-weight: 700;font-family:MicrosoftYaHeiBold;">现病史</span>
<span>
{{
formListValue.jsTimeInput ? formListValue.jsTimeInput : "-"
}}年无明显诱因下{{ formListValue.jsEyetypeRadio }}视力减退
}}年无明显诱因下{{ formListValue.jsEyetypeRadio }}视力逐渐减退
<span v-if="formListValue.yjbsCheckbox.length > 0">
<!-- 视觉症状不包含无 -->
<span v-if="!formListValue.yjbsCheckbox.includes('无')">
<span
v-for="(item, index) in formListValue.yjbsCheckbox"
:key="index"
>
<span v-for="(item, index) in formListValue.yjbsCheckbox" :key="index">
{{ item }}
<span
v-show="index < formListValue.yjbsCheckbox.length - 1"
></span>
<span v-show="index < formListValue.yjbsCheckbox.length - 1"></span>
</span>
<template v-if="yjbsNoCheckbox.length > 0">
<span
v-for="(item, index) in yjbsNoCheckbox"
:key="'noyjbs' + index"
>
<span v-for="(item, index) in yjbsNoCheckbox" :key="'noyjbs' + index">
{{ item }}
<span
v-show="index < yjbsNoCheckbox.length - 1"
></span> </span>等不适
<span v-show="index < yjbsNoCheckbox.length - 1"></span> </span>等不适
</template>
</span>
<!-- 视觉症状包含无 -->
<span v-if="formListValue.yjbsCheckbox.includes('无')">
<span
v-for="(item, index) in yjbsAllCheckbox"
:key="'yjbs' + index"
>
<span v-for="(item, index) in yjbsAllCheckbox" :key="'yjbs' + index">
{{ item }}
<span
v-show="index < yjbsAllCheckbox.length - 1"
></span> </span>等不适
<span v-show="index < yjbsAllCheckbox.length - 1"></span> </span>等不适
</span>
</span>
<span>
@ -136,24 +92,18 @@
<span>已戴{{ formListValue.yxyjOkInput
}}{{ formListValue.yxyjOkUnit }}</span>
<span
v-show="
<span v-show="
formListValue.yxyjOkInput && formListValue.yxyjOkPlRadio
"
></span>
"></span>
<span>{{ formListValue.yxyjOkPlRadio }}</span>
<span
v-show="
<span v-show="
formListValue.yxyjOkPlRadio &&
formListValue.yxyjOkTdTimeInput
"
></span>
"></span>
<span
v-if="formListValue.yxyjOkTdTimeInput"
>脱镜时间{{ formListValue.yxyjOkTdTimeInput
<span v-if="formListValue.yxyjOkTdTimeInput">脱镜时间{{ formListValue.yxyjOkTdTimeInput
}}{{ formListValue.yxyjOkTdTimeUnit }}</span>
</span>
<span v-if="formListValue.yxyjRgpCheck">
@ -161,24 +111,18 @@
<span>已戴{{ formListValue.yxyjRgpInput
}}{{ formListValue.yxyjRgpUnit }}</span>
<span
v-show="
<span v-show="
formListValue.yxyjRgpInput && formListValue.yxyjRgpPlRadio
"
></span>
"></span>
<span>{{ formListValue.yxyjRgpPlRadio }}</span>
<span
v-show="
<span v-show="
formListValue.yxyjRgpPlRadio &&
formListValue.yxyjRgpTdTimeInput
"
></span>
"></span>
<span
v-if="formListValue.yxyjRgpTdTimeInput"
>脱镜时间{{ formListValue.yxyjRgpTdTimeInput
<span v-if="formListValue.yxyjRgpTdTimeInput">脱镜时间{{ formListValue.yxyjRgpTdTimeInput
}}{{ formListValue.yxyjRgpTdTimeUnit }}</span>
</span>
<span v-if="formListValue.yxyjRjCheck">
@ -186,24 +130,18 @@
<span>已戴{{ formListValue.yxyjRjInput
}}{{ formListValue.yxyjRjUnit }}</span>
<span
v-show="
<span v-show="
formListValue.yxyjRjInput && formListValue.yxyjRjPlRadio
"
></span>
"></span>
<span>{{ formListValue.yxyjRjPlRadio }}</span>
<span
v-show="
<span v-show="
formListValue.yxyjRjPlRadio &&
formListValue.yxyjRjTdTimeInput
"
></span>
"></span>
<span
v-if="formListValue.yxyjRjTdTimeInput"
>脱镜时间{{ formListValue.yxyjRjTdTimeInput
<span v-if="formListValue.yxyjRjTdTimeInput">脱镜时间{{ formListValue.yxyjRjTdTimeInput
}}{{ formListValue.yxyjRjTdTimeUnit }}</span>
</span>
</span>
@ -225,45 +163,28 @@
</span>
<span v-show="formListValue.yqssCheckbox.length">
现为
<span
v-for="(item, index) in formListValue.yqssCheckbox"
:key="index"
>
<span v-for="(item, index) in formListValue.yqssCheckbox" :key="index">
{{ item }}
<span
v-show="
<span v-show="
index < formListValue.yqssCheckbox.length - 1 &&
item !== '体检'
"
></span>
"></span>
<span v-if="item === '体检'">
<span
v-for="(iten, i) in formListValue.tijianCheckbox"
:key="i"
>
<span v-for="(iten, i) in formListValue.tijianCheckbox" :key="i">
{{ iten }}
<span
v-show="i < formListValue.tijianCheckbox.length - 1"
></span>
<span v-show="i < formListValue.tijianCheckbox.length - 1"></span>
</span>
<span
v-show="
<span v-show="
formListValue.yqssCheckbox.includes('体检') &&
formListValue.yqssCheckbox.length > 1
"
></span>
"></span>
</span>
</span>
<span
v-if="formListValue.yqssCheckbox.includes('其它')"
>{{ formListValue.ssqtInput }}</span>
<span v-if="formListValue.yqssCheckbox.includes('其它')">{{ formListValue.ssqtInput }}</span>
要求手术
</span>
</div>
<div
v-if="!archiveCaseCRFItem.formName.includes('复诊')"
style="margin-bottom: 2px; break-inside: avoid"
>
<div v-if="!archiveCaseCRFItem.formName.includes('复诊')" style="margin-bottom: 2px; break-inside: avoid">
<span style="font-weight: 700;font-family:MicrosoftYaHeiBold;">既往史/家族史</span>
<span>
外伤/手术史
@ -295,14 +216,9 @@
<span>
其它全身病史
<span v-if="formListValue.qtbsRadio === '有'">
<span
v-for="(item, index) in formListValue.qtbsCheck"
:key="index"
>
<span v-for="(item, index) in formListValue.qtbsCheck" :key="index">
<span v-show="item !== '其它'">{{ item }}</span>
<span
v-show="index < formListValue.qtbsCheck.length - 1"
></span>
<span v-show="index < formListValue.qtbsCheck.length - 1"></span>
</span>
<span v-if="formListValue.qtbsCheck.includes('其它')">
{{ formListValue.qtbsInput }}
@ -314,14 +230,9 @@
<span>
近期服药史
<span v-if="formListValue.fysRadio === '有'">
<span
v-for="(item, index) in formListValue.fysCheck"
:key="index"
>
<span v-for="(item, index) in formListValue.fysCheck" :key="index">
<span v-show="item !== '其它'">{{ item }}</span>
<span
v-show="index < formListValue.fysCheck.length - 1"
></span>
<span v-show="index < formListValue.fysCheck.length - 1"></span>
</span>
<span v-if="formListValue.fysCheck.includes('其它')">
{{ formListValue.fysInput }}
@ -362,9 +273,7 @@
<span>
<span>
<b style="font-family:MicrosoftYaHeiBold;">裸眼视力</b>
<span
v-show="formListValue.slMingDate"
>{{ formListValue.slMingDate }}</span>
<span v-show="formListValue.slMingDate">{{ formListValue.slMingDate }}</span>
{{
formListValue.slLyYuanMingOd
@ -384,9 +293,7 @@
}}/{{ formListValue.slDjMingOs ? formListValue.slDjMingOs : "-" }}
/
<b style="font-family:MicrosoftYaHeiBold;">矫正视力</b>
<span
v-show="formListValue.zjygXtDate"
>{{ formListValue.zjygXtDate }}</span>
<span v-show="formListValue.zjygXtDate">{{ formListValue.zjygXtDate }}</span>
{{ formListValue.zjygXtOd4 ? formListValue.zjygXtOd4 : "-" }}
@ -394,9 +301,7 @@
</span>
<span>
<b style="font-family:MicrosoftYaHeiBold;">眼压</b>
<span
v-show="formListValue.yyDate"
>{{ formListValue.yyDate }}</span>
<span v-show="formListValue.yyDate">{{ formListValue.yyDate }}</span>
{{ formListValue.yyOd1 ? formListValue.yyOd1 : "-" }}/{{
formListValue.yyOd2 ? formListValue.yyOd2 : "-"
}}mmHg {{
@ -406,192 +311,134 @@
}}mmHg </span>
<span>
<span style="margin-top: 10px"><b style="font-family:MicrosoftYaHeiBold;">裂隙灯检查</b></span>
<span
v-show="formListValue.lxdjcDate"
>{{ formListValue.lxdjcDate }}</span>
<span v-show="formListValue.lxdjcDate">{{ formListValue.lxdjcDate }}</span>
右眼
<span
v-if="
<span v-if="
formListValue.lxdjcYanjOd.length <= 0 &&
formListValue.lxdjcJiemOd.length <= 0 &&
formListValue.lxdjcJiaomOd.length <= 0 &&
formListValue.lxdjcQianfOd.length <= 0 &&
formListValue.lxdjcTonkOd.length <= 0 &&
formListValue.lxdjcJintOd.length <= 0
"
>-</span>
">-</span>
<span v-if="formListValue.lxdjcYanjOd.length > 0">
眼睑
<span
v-for="(item, index) in formListValue.lxdjcYanjOd"
:key="index"
>{{ item }}
<span v-for="(item, index) in formListValue.lxdjcYanjOd" :key="index">{{ item }}
<span v-if="formListValue.lxdjcYanjOd.length-1 >index"> | </span>
</span>
<span
v-show="
<span v-show="
formListValue.lxdjcJiemOd.length > 0 ||
formListValue.lxdjcJiaomOd.length > 0 ||
formListValue.lxdjcQianfOd.length > 0 ||
formListValue.lxdjcTonkOd.length > 0 ||
formListValue.lxdjcJintOd.length > 0"
></span>
formListValue.lxdjcJintOd.length > 0"></span>
</span>
<span v-if="formListValue.lxdjcJiemOd.length > 0">
结膜:
<span
v-for="(item, index) in formListValue.lxdjcJiemOd"
:key="index"
>{{ item }}
<span v-for="(item, index) in formListValue.lxdjcJiemOd" :key="index">{{ item }}
<span v-if="formListValue.lxdjcJiemOd.length-1 >index"> | </span>
</span>
<span
v-show="
<span v-show="
formListValue.lxdjcJiaomOd.length > 0 ||
formListValue.lxdjcQianfOd.length > 0 ||
formListValue.lxdjcTonkOd.length > 0 ||
formListValue.lxdjcJintOd.length > 0"
></span>
formListValue.lxdjcJintOd.length > 0"></span>
</span>
<span v-if="formListValue.lxdjcJiaomOd.length > 0">
角膜
<span
v-for="(item, index) in formListValue.lxdjcJiaomOd"
:key="index"
>{{ item }}
<span v-for="(item, index) in formListValue.lxdjcJiaomOd" :key="index">{{ item }}
<span v-if="formListValue.lxdjcJiaomOd.length-1 >index"> | </span>
</span>
<span
v-show="
<span v-show="
formListValue.lxdjcQianfOd.length > 0 ||
formListValue.lxdjcTonkOd.length > 0 ||
formListValue.lxdjcJintOd.length > 0"
></span>
formListValue.lxdjcJintOd.length > 0"></span>
</span>
<span v-if="formListValue.lxdjcQianfOd.length > 0">
前房
<span
v-for="(item, index) in formListValue.lxdjcQianfOd"
:key="index"
>{{ item }}
<span v-for="(item, index) in formListValue.lxdjcQianfOd" :key="index">{{ item }}
<span v-if="formListValue.lxdjcQianfOd.length-1 >index"> | </span>
</span>
<span
v-show="
<span v-show="
formListValue.lxdjcTonkOd.length > 0 ||
formListValue.lxdjcJintOd.length > 0"
></span>
formListValue.lxdjcJintOd.length > 0"></span>
</span>
<span v-if="formListValue.lxdjcTonkOd.length > 0">
瞳孔
<span
v-for="(item, index) in formListValue.lxdjcTonkOd"
:key="index"
>{{ item }}
<span v-for="(item, index) in formListValue.lxdjcTonkOd" :key="index">{{ item }}
<span v-if="formListValue.lxdjcTonkOd.length-1 >index"> | </span>
</span>
<span v-show="formListValue.lxdjcJintOd.length > 0"></span>
</span>
<span v-if="formListValue.lxdjcJintOd.length > 0">
晶体
<span
v-for="(item, index) in formListValue.lxdjcJintOd"
:key="index"
>{{ item }}
<span v-for="(item, index) in formListValue.lxdjcJintOd" :key="index">{{ item }}
<span v-if="formListValue.lxdjcJintOd.length-1 >index"> | </span>
</span>
</span>
</span>
<span>
左眼
<span
v-if="
<span v-if="
formListValue.lxdjcYanjOs.length <= 0 &&
formListValue.lxdjcJiemOs.length <= 0 &&
formListValue.lxdjcJiaomOs.length <= 0 &&
formListValue.lxdjcQianfOs.length <= 0 &&
formListValue.lxdjcTonkOs.length <= 0 &&
formListValue.lxdjcJintOs.length <= 0
"
>-</span>
">-</span>
<span v-if="formListValue.lxdjcYanjOs.length > 0">
眼睑
<span
v-for="(item, index) in formListValue.lxdjcYanjOs"
:key="index"
>{{ item }}
<span v-for="(item, index) in formListValue.lxdjcYanjOs" :key="index">{{ item }}
<span v-if="formListValue.lxdjcYanjOs.length-1 >index"> | </span>
</span>
<span
v-show="
<span v-show="
formListValue.lxdjcJiemOs.length > 0 ||
formListValue.lxdjcJiaomOs.length > 0 ||
formListValue.lxdjcQianfOs.length > 0 ||
formListValue.lxdjcTonkOs.length > 0 ||
formListValue.lxdjcJintOs.length > 0"
></span>
formListValue.lxdjcJintOs.length > 0"></span>
</span>
<span v-if="formListValue.lxdjcJiemOs.length > 0">
结膜
<span
v-for="(item, index) in formListValue.lxdjcJiemOs"
:key="index"
>{{ item }}
<span v-for="(item, index) in formListValue.lxdjcJiemOs" :key="index">{{ item }}
<span v-if="formListValue.lxdjcJiemOs.length-1 >index"> | </span>
</span>
<span
v-show="
<span v-show="
formListValue.lxdjcJiaomOs.length > 0 ||
formListValue.lxdjcQianfOs.length > 0 ||
formListValue.lxdjcTonkOs.length > 0 ||
formListValue.lxdjcJintOs.length > 0"
></span>
formListValue.lxdjcJintOs.length > 0"></span>
</span>
<span v-if="formListValue.lxdjcJiaomOs.length > 0">
角膜
<span
v-for="(item, index) in formListValue.lxdjcJiaomOs"
:key="index"
>{{ item }}
<span v-for="(item, index) in formListValue.lxdjcJiaomOs" :key="index">{{ item }}
<span v-if="formListValue.lxdjcJiaomOs.length-1 >index"> | </span>
</span>
<span
v-show="
<span v-show="
formListValue.lxdjcQianfOs.length > 0 ||
formListValue.lxdjcTonkOs.length > 0 ||
formListValue.lxdjcJintOs.length > 0"
></span>
formListValue.lxdjcJintOs.length > 0"></span>
</span>
<span v-if="formListValue.lxdjcQianfOs.length > 0">
前房
<span
v-for="(item, index) in formListValue.lxdjcQianfOs"
:key="index"
>{{ item }}
<span v-for="(item, index) in formListValue.lxdjcQianfOs" :key="index">{{ item }}
<span v-if="formListValue.lxdjcQianfOs.length-1 >index"> | </span>
</span>
<span
v-show="
<span v-show="
formListValue.lxdjcTonkOs.length > 0 ||
formListValue.lxdjcJintOs.length > 0"
></span>
formListValue.lxdjcJintOs.length > 0"></span>
</span>
<span v-if="formListValue.lxdjcTonkOs.length > 0">
瞳孔
<span
v-for="(item, index) in formListValue.lxdjcTonkOs"
:key="index"
>{{ item }}
<span v-for="(item, index) in formListValue.lxdjcTonkOs" :key="index">{{ item }}
<span v-if="formListValue.lxdjcTonkOs.length-1 >index"> | </span>
</span>
<span v-show="formListValue.lxdjcJintOs.length > 0"></span>
</span>
<span v-if="formListValue.lxdjcJintOs.length > 0">
晶体
<span
v-for="(item, index) in formListValue.lxdjcJintOs"
:key="index"
>{{ item }}
<span v-for="(item, index) in formListValue.lxdjcJintOs" :key="index">{{ item }}
<span v-if="formListValue.lxdjcJintOs.length-1 >index"> | </span>
</span>
</span>
@ -599,80 +446,55 @@
<span></span>
<span>
<span style="margin-top: 10px"><b style="font-family:MicrosoftYaHeiBold;">散瞳眼底检查</b></span>
<span
v-show="formListValue.stydjcDate"
>{{ formListValue.stydjcDate }}</span>
<span v-show="formListValue.stydjcDate">{{ formListValue.stydjcDate }}</span>
右眼
<span
v-if="
<span v-if="
formListValue.stydjcShipOd.length <= 0 &&
formListValue.stydjcCdOd.length <= 0 &&
formListValue.stydjcHuangbOd.length <= 0 &&
formListValue.stydjcXuegOd.length <= 0 &&
formListValue.stydjcShiwmOd.length <= 0
"
>-</span>
">-</span>
<span v-if="formListValue.stydjcShipOd.length > 0">
视盘
<span
v-for="(item, index) in formListValue.stydjcShipOd"
:key="index"
>{{ item }}
<span v-for="(item, index) in formListValue.stydjcShipOd" :key="index">{{ item }}
<span v-if="formListValue.stydjcShipOd.length-1 >index"> | </span>
</span>
<span
v-show="
<span v-show="
formListValue.stydjcCdOd.length > 0 ||
formListValue.stydjcHuangbOd.length > 0 ||
formListValue.stydjcXuegOd.length > 0 ||
formListValue.stydjcShiwmOd.length > 0"
></span>
formListValue.stydjcShiwmOd.length > 0"></span>
</span>
<span v-if="formListValue.stydjcCdOd.length > 0">
C/D
<span
v-for="(item, index) in formListValue.stydjcCdOd"
:key="index"
>{{ item }}
<span v-for="(item, index) in formListValue.stydjcCdOd" :key="index">{{ item }}
<span v-if="formListValue.stydjcCdOd.length-1 >index"> | </span>
</span>
<span
v-show="
<span v-show="
formListValue.stydjcHuangbOd.length > 0 ||
formListValue.stydjcXuegOd.length > 0 ||
formListValue.stydjcShiwmOd.length > 0"
></span>
formListValue.stydjcShiwmOd.length > 0"></span>
</span>
<span v-if="formListValue.stydjcHuangbOd.length > 0">
黄斑
<span
v-for="(item, index) in formListValue.stydjcHuangbOd"
:key="index"
>{{ item }}
<span v-for="(item, index) in formListValue.stydjcHuangbOd" :key="index">{{ item }}
<span v-if="formListValue.stydjcHuangbOd.length-1 >index"> | </span>
</span>
<span
v-show="
<span v-show="
formListValue.stydjcXuegOd.length > 0 ||
formListValue.stydjcShiwmOd.length > 0"
></span>
formListValue.stydjcShiwmOd.length > 0"></span>
</span>
<span v-if="formListValue.stydjcXuegOd.length > 0">
血管
<span
v-for="(item, index) in formListValue.stydjcXuegOd"
:key="index"
>{{ item }}
<span v-for="(item, index) in formListValue.stydjcXuegOd" :key="index">{{ item }}
<span v-if="formListValue.stydjcXuegOd.length-1 >index"> | </span>
</span>
<span v-show="formListValue.stydjcShiwmOd.length > 0"></span>
</span>
<span v-if="formListValue.stydjcShiwmOd.length > 0">
视网膜
<span
v-for="(item, index) in formListValue.stydjcShiwmOd"
:key="index"
>{{ item }}
<span v-for="(item, index) in formListValue.stydjcShiwmOd" :key="index">{{ item }}
<span v-if="formListValue.stydjcShiwmOd.length-1 >index"> | </span>
</span>
</span>
@ -680,75 +502,52 @@
<span></span>
<span>
左眼
<span
v-if="
<span v-if="
formListValue.stydjcShipOs.length <= 0 &&
formListValue.stydjcCdOs.length <= 0 &&
formListValue.stydjcHuangbOs.length <= 0 &&
formListValue.stydjcXuegOs.length <= 0 &&
formListValue.stydjcShiwmOs.length <= 0
"
>-</span>
">-</span>
<span v-if="formListValue.stydjcShipOs.length > 0">
视盘
<span
v-for="(item, index) in formListValue.stydjcShipOs"
:key="index"
>{{ item }}
<span v-for="(item, index) in formListValue.stydjcShipOs" :key="index">{{ item }}
<span v-if="formListValue.stydjcShipOs.length-1 >index"> | </span>
</span>
<span
v-show="
<span v-show="
formListValue.stydjcCdOs.length > 0 ||
formListValue.stydjcHuangbOs.length > 0 ||
formListValue.stydjcXuegOs.length > 0 ||
formListValue.stydjcShiwmOs.length > 0"
></span>
formListValue.stydjcShiwmOs.length > 0"></span>
</span>
<span v-if="formListValue.stydjcCdOs.length > 0">
C/D
<span
v-for="(item, index) in formListValue.stydjcCdOs"
:key="index"
>{{ item }}
<span v-for="(item, index) in formListValue.stydjcCdOs" :key="index">{{ item }}
<span v-if="formListValue.stydjcCdOs.length-1 >index"> | </span>
</span>
<span
v-show="formListValue.stydjcHuangbOs.length > 0 ||
<span v-show="formListValue.stydjcHuangbOs.length > 0 ||
formListValue.stydjcXuegOs.length > 0 ||
formListValue.stydjcShiwmOs.length > 0"
></span>
formListValue.stydjcShiwmOs.length > 0"></span>
</span>
<span v-if="formListValue.stydjcHuangbOs.length > 0">
黄斑
<span
v-for="(item, index) in formListValue.stydjcHuangbOs"
:key="index"
>{{ item }}
<span v-for="(item, index) in formListValue.stydjcHuangbOs" :key="index">{{ item }}
<span v-if="formListValue.stydjcHuangbOs.length-1 >index"> | </span>
</span>
<span
v-show="
<span v-show="
formListValue.stydjcXuegOs.length > 0 ||
formListValue.stydjcShiwmOs.length > 0"
></span>
formListValue.stydjcShiwmOs.length > 0"></span>
</span>
<span v-if="formListValue.stydjcXuegOs.length > 0">
血管
<span
v-for="(item, index) in formListValue.stydjcXuegOs"
:key="index"
>{{ item }}
<span v-for="(item, index) in formListValue.stydjcXuegOs" :key="index">{{ item }}
<span v-if="formListValue.stydjcXuegOs.length-1 >index"> | </span>
</span>
<span v-show="formListValue.stydjcShiwmOs.length > 0"></span>
</span>
<span v-if="formListValue.stydjcShiwmOs.length > 0">
视网膜
<span
v-for="(item, index) in formListValue.stydjcShiwmOs"
:key="index"
>{{ item }}
<span v-for="(item, index) in formListValue.stydjcShiwmOs" :key="index">{{ item }}
<span v-if="formListValue.stydjcShiwmOs.length-1 >index"> | </span>
</span>
</span>
@ -760,9 +559,7 @@
<span>
<span>
<b style="font-family:MicrosoftYaHeiBold;">主觉验光小瞳</b>
<span
v-show="formListValue.zjygXtDate"
>{{ formListValue.zjygXtDate }}</span>
<span v-show="formListValue.zjygXtDate">{{ formListValue.zjygXtDate }}</span>
右眼
{{ formListValue.zjygXtOd1 ? formListValue.zjygXtOd1 : "-" }}
/
@ -783,7 +580,7 @@
{{ formListValue.zjygXtOs4 ? formListValue.zjygXtOs4 : "-" }}
</span>
</span>
<!-- <span>
<!-- <span>
<span>
<b style="font-family:MicrosoftYaHeiBold;">主觉验光散瞳</b>
<span v-show="formListValue.zjygStDate">{{ formListValue.zjygStDate }}</span>
@ -818,25 +615,18 @@
</div>
</div>
<!-- v-if="base64Flag" -->
<div
style="
<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 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"
@ -847,21 +637,24 @@
</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 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'
import signGet from '@/mixins/signGet.js'
const Base64 = require('js-base64').Base64
export default {
mixins: [htmlToPdfToBlob],
mixins: [htmlToPdfToBlob, signGet],
props: {
archiveCaseCRFItem: {
type: Object,
default: () => {}
default: () => { }
},
currentUrl: {
type: String,
@ -875,7 +668,7 @@ export default {
data() {
return {
formListValue: {},
flag: 0,
isShow: 0,
yjbsAllCheckbox: [
'视疲劳',
'眩光',
@ -889,7 +682,6 @@ export default {
],
yjbsNoCheckbox: [],
recordId: '',
formFlag: '',
userData: {}
}
},
@ -900,45 +692,22 @@ export default {
},
methods: {
// CA
init(id, formFlag) {
init(id, flag) {
console.log('!!!!!!!!!!!');
this.recordId = id
this.formFlag = formFlag
// console.log('this.$parent', this.$parent.$parent.formListValue)
const parentFormlistValue = this.$parent.$parent.formListValue
if ((this.archiveCaseCRFItem.formName.includes('复诊') && parentFormlistValue.zsandBs && parentFormlistValue.zd && parentFormlistValue.clyj) ||
!this.archiveCaseCRFItem.formName.includes('复诊') && (parentFormlistValue.jsEyetypeRadio || parentFormlistValue.jsTimeInput) && parentFormlistValue.zd && parentFormlistValue.clyj) {
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)
}
this.getQgEmrRecordInfo(id, flag)
},
//
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
async getQgEmrRecordInfo(id, flag) {
this.isShow = 0
const { data: res } = await this.$http.get('/quguang/qg/emr/getQgEmrRecordInfo', {
params: {
id: id
}
})
if (res.code === 0) {
console.log('!!!!!!!----------');
Object.keys(res.data).forEach((item, index) => {
//
if (
@ -957,8 +726,8 @@ export default {
}
if (res.data[item] && typeof res.data[item] !== 'number') {
res.data[item].includes('[') ||
res.data[item] === 'false' ||
res.data[item] === 'true'
res.data[item] === 'false' ||
res.data[item] === 'true'
? (this.formListValue[item] = JSON.parse(res.data[item]))
: ''
if (res.data[item].includes('&lt;0.3')) {
@ -974,69 +743,18 @@ export default {
}
}
if (Object.keys(res.data).length - 1 === index) {
this.flag = 1
console.log('savePdf', savePdf)
if (savePdf) {
this.formListValue.createSign = ''
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: 1,
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: [
{
// X0-10,1 * :2
coX: '',
// Y0-10,1 * :2
coY: '',
// :1
keyword: '医生签字:',
// :1
offsetX: '0.1',
// :1
offsetY: '0',
// :2 * A-B"AB1-5"150-0"
pageNo: '',
// * 1(); * 6:
signatureType: '',
// /, * 10 ()
timestamp: '1',
// 123
type: '1',
// /
width: '75',
// /
height: '30'
}
],
//
userId: this.userData.employeeId
}
}
// this.$message('CA')
this.isShow = 1
console.log('flag', flag);
if (flag === 'savepdf') {
setTimeout(() => {
// console.log('!!!!!!!!!!!!!!!!!!!!!!!', document.getElementById('printButtonA5').innerHTML)
this.exportPDF({
customMargin: [15, 15], // [30, 40]
customElementId: 'printButtonA5',
caParams: caParams,
isJavaTransformPdf: true,
console.log(document.getElementById('printButtonA5'));
this.html2Pdf({
marginStyle: Base64.encode('<style>@page{margin: 8mm 5mm 5mm 5mm;}</style>'),
htmlBase: Base64.encode(document.getElementById('printButtonA5').innerHTML)
htmlBase: Base64.encode(document.getElementById('printButtonA5').innerHTML),
pageSize: 'A5'
})
}, 5)
}, 100);
}
}
})

4
src/components/H5form/dzblLookPdf.vue

@ -32,9 +32,9 @@ export default {
}
},
methods: {
init(id, formFlag) {
init(id, flag) {
// console.log('111111111111111')
this.$refs.dzblLookFunRef.init(id, formFlag)
this.$refs.dzblLookFunRef.init(id, flag)
}
}
}

130
src/components/H5form/fzbl.vue

@ -1,21 +1,14 @@
<template>
<div class="fzbl-father">
<h5formButton
ref="h5formButtonRef"
:archive-case-c-r-f-item="archiveCaseCRFItem"
:get-save-eidt-title="saveEidtTitle"
:bl-button-show="true"
<h5formButton ref="h5formButtonRef" :archive-case-c-r-f-item="archiveCaseCRFItem"
:get-save-eidt-title="saveEidtTitle" :bl-button-show="true"
:edit-save-button-show="positionName.join().includes('医生') && formListValue.isConfirm !== 1 ? true : false"
mzbl-title="复诊门诊病历"
:cancel-ca-button-show="formListValue.isConfirm === 1 && saveEidtTitle!=='保存' ? true : false"
:sure-ca-button-show="saveEidtTitle === '编辑' && formListValue.isConfirm === 0 && caOpenStatus? true :false"
/>
mzbl-title="复诊门诊病历" :cancel-ca-button-show="formListValue.isConfirm === 1 && saveEidtTitle!=='保存' ? true : false"
:sure-ca-button-show="saveEidtTitle === '编辑' && formListValue.isConfirm === 0 && caOpenStatus? true :false" />
<span v-show="!formListValue.createName && isGetFormValue" class="title-ts">(提示:此表单尚未保存)</span>
<!-- v-if="currentUrl.includes('192')" -->
<div id="printH5" class="fzbl form-setclass printSet1" style="width:900px">
<p
style="color:#000000;font-size:32px;margin:0 0 20px 0;text-align:center;"
>
<p style="color:#000000;font-size:32px;margin:0 0 20px 0;text-align:center;">
温州医科大学附属眼视光医院杭州院区</p>
<p style="color:#000000;font-size:32px;margin-bottom:30px;text-align:center;">
门诊病历</p>
@ -40,51 +33,28 @@
</span>
<span style="padding-right:10px;" class="width-80">
<span>日期</span>
<el-date-picker
v-model="formListValue.jzDate"
value-format="yyyy-MM-dd"
class="margin-right-6"
type="date"
placeholder="选择日期"
/>
<el-date-picker v-model="formListValue.jzDate" value-format="yyyy-MM-dd" class="margin-right-6"
type="date" placeholder="选择日期" />
</span>
</div>
</div>
<div class="fzbl-content" :class="saveEidtTitle==='保存' ? '' : 'el-textarea-resize'">
<div class="flex-3" @dblclick="saveEidtTitle==='保存' && templateLook('zsAndBs')">
<span class="cursor" style="min-width:100px"><b style="font-family:MicrosoftYaHeiBold;">主诉及病史</b></span>
<el-input
v-model="formListValue.zsAndBs"
class="zkjcInput flex1"
type="textarea"
:autosize="{ minRows: 1}"
placeholder=""
@focus="focusHandle('zsAndBs')"
/>
<el-input v-model="formListValue.zsAndBs" class="zkjcInput flex1" type="textarea" :autosize="{ minRows: 1}"
placeholder="" @focus="focusHandle('zsAndBs')" />
</div>
<div class="flex-3 margin-top-10" @dblclick="saveEidtTitle==='保存' && templateLook('zkjc')">
<span class="cursor" style="min-width:80px"><b style="font-family:MicrosoftYaHeiBold;">专科检查</b></span>
<i v-show="saveEidtTitle==='保存'" class="el-icon-refresh" @click="getZkjcAndFzjc(1,'zkjc')" />
<el-input
v-model="formListValue.zkjc"
class="zkjcInput flex1"
type="textarea"
:autosize="{ minRows: 2}"
placeholder=""
@focus="focusHandle('zkjc')"
/>
<el-input v-model="formListValue.zkjc" class="zkjcInput flex1" type="textarea" :autosize="{ minRows: 2}"
placeholder="" @focus="focusHandle('zkjc')" />
</div>
<div class="flex-3 margin-top-10" @dblclick="saveEidtTitle==='保存' && templateLook('fzjc')">
<span class="cursor" style="min-width:80px"><b style="font-family:MicrosoftYaHeiBold;">辅助检查</b></span>
<i v-show="saveEidtTitle==='保存'" class="el-icon-refresh" @click="getZkjcAndFzjc(2,'fzjc')" />
<el-input
v-model="formListValue.fzjc"
class="zkjcInput flex1"
type="textarea"
:autosize="{ minRows: 1}"
placeholder=""
@focus="focusHandle('fzjc')"
/>
<el-input v-model="formListValue.fzjc" class="zkjcInput flex1" type="textarea" :autosize="{ minRows: 1}"
placeholder="" @focus="focusHandle('fzjc')" />
</div>
<div class="flex-3 margin-top-10" @dblclick="saveEidtTitle==='保存' && templateLook('cbzd')">
<span class="cursor" style="min-width:80px"><b style="font-family:MicrosoftYaHeiBold;">初步诊断</b></span>
@ -101,14 +71,8 @@
</div>
<div class="flex-3 margin-top-10" @dblclick="saveEidtTitle==='保存' && templateLook('clyj')">
<span class="cursor" style="min-width:80px"> <b style="font-family:MicrosoftYaHeiBold;">处理意见</b></span>
<el-input
v-model="formListValue.clyj"
class="zkjcInput flex1"
type="textarea"
:autosize="{ minRows: 1}"
placeholder=""
@focus="focusHandle('clyj')"
/>
<el-input v-model="formListValue.clyj" class="zkjcInput flex1" type="textarea" :autosize="{ minRows: 1}"
placeholder="" @focus="focusHandle('clyj')" />
</div>
</div>
</el-form>
@ -117,14 +81,10 @@
<div class="flex-7 margin-top-20">
医生签字
<span>
<span v-if="!formListValue.createSign">{{ formListValue.createName ? formListValue.createName : '-' }}</span>
<img
v-else
:src="formListValue.createSign"
alt=""
width="120px"
style="display: block;break-inside: avoid"
>
<span
v-if="!formListValue.createSign">{{ formListValue.createName ? formListValue.createName : '-' }}</span>
<img v-else :src="formListValue.createSign" alt="" width="120px"
style="display: block;break-inside: avoid">
</span>
<!-- <div>
<span
@ -160,29 +120,15 @@
<span>保存时间{{ formListValue.createDate ? formListValue.createDate : '-' }}</span>
</div>
<!-- 模板引入 -->
<intoTemplate
v-if="intoTemplateVisible"
ref="intoTemplateRef"
:patient-id="patientId"
:archive-case-c-r-f-item="archiveCaseCRFItem"
@yinruTemplateClick="yinruTemplateClick"
@closeDialog="historyDataVisible = false"
/>
<intoTemplate v-if="intoTemplateVisible" ref="intoTemplateRef" :patient-id="patientId"
:archive-case-c-r-f-item="archiveCaseCRFItem" @yinruTemplateClick="yinruTemplateClick"
@closeDialog="historyDataVisible = false" />
<!-- 复诊病历留痕查看 -->
<fzblLook
v-if="blLookVisible"
ref="blLookRef"
:current-url="currentUrl"
:archive-case-c-r-f-item="archiveCaseCRFItem"
@closeDialog="blLookVisible=false"
/>
<fzblLook v-if="blLookVisible" ref="blLookRef" :current-url="currentUrl"
:archive-case-c-r-f-item="archiveCaseCRFItem" @closeDialog="blLookVisible=false" />
<!-- 复诊病历处理成pdf格式上传 -->
<fzblLookPdf
ref="fzblLookPdf"
:current-url="currentUrl"
:archive-case-c-r-f-item="archiveCaseCRFItem"
class="patientBlPosition"
/>
<fzblLookPdf ref="fzblLookPdf" :current-url="currentUrl" :archive-case-c-r-f-item="archiveCaseCRFItem"
class="patientBlPosition" />
</div>
</template>
<script>
@ -195,6 +141,8 @@ import h5formButton from '@/components/H5formOhter/h5formButton'
import intoTemplate from '@/components/H5form/intoTemplate'
import fzblLook from '@/components/H5form/fzblLook'
import fzblLookPdf from '@/components/H5form/fzblLookPdf'
import htmlToPdfToBlob from '@/mixins/htmlToPdfToBlob'
import yiXinQianSign from '@/mixins/yiXinQianSign.js'
export default {
components: {
h5formButton,
@ -202,7 +150,7 @@ export default {
fzblLook,
fzblLookPdf
},
mixins: [IntelligentFill, signGet, refreshDate, fzbl, publicFile],
mixins: [IntelligentFill, signGet, refreshDate, fzbl, publicFile, htmlToPdfToBlob, yiXinQianSign],
props: {
archiveCaseCRFItem: {
type: Object,
@ -341,6 +289,11 @@ export default {
// publicFile.js--
this.getUpSaveTime('/quguang/fuzhen/emr/getInfo', flag)
},
//
saveAllForm(flag) {
// publicFile.js--
this.getUpSaveTime('/quguang/fuzhen/emr/getInfo', flag)
},
async saveForm(flag) {
this.formListValue.createName = this.userData.realName
const formvalue = JSON.parse(JSON.stringify(this.formListValue))
@ -358,6 +311,8 @@ export default {
type: 'success'
})
this.getInfo()
// res.dataId
this.$refs.fzblLookPdf.init(res.data, 'savepdf')
if (this.pageTitle === '手术列表') {
// flag 1 2
this.$emit('closeDialog', flag)
@ -378,7 +333,18 @@ export default {
if (this.formListValue.zsAndBs && this.formListValue.cbzd && this.formListValue.clyj) {
this.$confirmFun('CA确认将会把最新一次标准病历文书发送至ca签名,您是否确认继续此操作?', '您已取消CA确认').then(() => {
// formFlag: 1:/() 2:3:/()4:,5:
this.$refs.fzblLookPdf.init(this.formListValue.recordId, '5')
// this.$refs.fzblLookPdf.init(this.formListValue.recordId, '5')
// caOpenStatus true CA
if (this.caOpenStatus) {
this.batchDataCa({
doctorCode: userData.employeeId,
ids: [this.formListValue.formId], // formId
}, () => {
this.getInfo()
})
}
})
} else {
this.$message.error('标准病历文书内容不完善,请补全后再进行CA确认吧!')

4
src/components/H5form/fzblLookPdf.vue

@ -36,8 +36,8 @@ export default {
}
},
methods: {
init(id, formFlag) {
this.$refs.fzblLookPdfFunRef.init(id, formFlag)
init(id, flag) {
this.$refs.fzblLookPdfFunRef.init(id, flag)
}
}
}

165
src/components/H5form/fzblLookPdfFun.vue

@ -1,40 +1,29 @@
<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;' : ''"
>
<div v-if="isShow===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="
<div style="
font-size: 32px;
font-weight: 700;
text-align: center;
font-family:MicrosoftYaHeiBold;
"
>温州医科大学附属眼视光医院</div>
<div
style="
">温州医科大学附属眼视光医院</div>
<div style="
font-size: 32px;
font-weight: 700;
text-align: center;
margin-bottom: 10px;
font-family:MicrosoftYaHeiBold;
"
>门诊病历</div>
<div
style="
">门诊病历</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>
@ -42,14 +31,10 @@
<span>日期{{ formListValue.createDate }}</span>
</div>
</div>
<div
id="printA5"
style="
<div id="printA5" style="
flex: 1;
font-size: 16px;
"
:style="savePdf ? 'max-width: 100%;margin: 0 auto;' : ''"
>
" :style="savePdf ? 'max-width: 100%;margin: 0 auto;' : ''">
<div style="margin-bottom: 2px; break-inside: avoid">
<span style="display: flex; align-items: center">
<span style="font-weight: 700;font-family:MicrosoftYaHeiBold;">主诉及病史</span>
@ -73,32 +58,27 @@
<span>{{ formListValue.clyj ? formListValue.clyj : '无' }}</span>
</div>
<!-- v-if="base64Flag" -->
<div
style="
<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 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="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 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>
@ -126,45 +106,19 @@ export default {
return {
formListValue: {
},
flag: 0,
isShow: 0,
recordId: '',
formFlag: ''
}
},
methods: {
// CA
init(id, formFlag) {
init(id, flag) {
this.recordId = id
this.formFlag = formFlag
// console.log('this.$parent', this.$parent.$parent.formListValue)
const parentFormlistValue = this.$parent.$parent.formListValue
if (parentFormlistValue.zsAndBs && parentFormlistValue.cbzd && parentFormlistValue.clyj) {
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)
}
this.getQgEmrRecordInfo(id, flag)
},
//
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
async getQgEmrRecordInfo(id, flag) {
this.isShow = 0
const { data: res } = await this.$http.get('/quguang/fuzhen/emr/getFuZhenRecordInfo', {
params: {
id: id
@ -172,7 +126,7 @@ export default {
})
if (res.code === 0) {
Object.keys(res.data).forEach((item, index) => {
//
//
if ((res.data[item] && res.data[item] !== 'false' && res.data[item] !== 'true') || typeof res.data[item] === 'number') {
// 使jsPDFbase64使html2pdf
// if (item === 'createSign') {
@ -187,66 +141,16 @@ export default {
res.data[item].includes('[') || res.data[item] === 'false' || res.data[item] === 'true' ? this.formListValue[item] = JSON.parse(res.data[item]) : ''
}
if (Object.keys(res.data).length - 1 === index) {
this.flag = 1
if (savePdf) {
this.formListValue.createSign = ''
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: 5,
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: [
{
// X0-10,1 * :2
coX: '',
// Y0-10,1 * :2
coY: '',
// :1
keyword: '医生签名:',
// :1
offsetX: '0.1',
// :1
offsetY: '0',
// :2 * A-B"AB1-5"150-0"
pageNo: '',
// * 1(); * 6:
signatureType: '',
// /, * 10 ()
timestamp: '1',
// 123
type: '1',
// /
width: '75',
// /
height: '30'
}
],
//
userId: this.userData.employeeId
}
}
this.isShow = 1
if (flag === 'savepdf') {
setTimeout(() => {
this.exportPDF({
customMargin: [15, 15],
customElementId: 'printButtonA5',
caParams: caParams,
isJavaTransformPdf: true,
console.log(document.getElementById('printButtonA5'));
this.html2Pdf({
marginStyle: Base64.encode('<style>@page{margin: 8mm 5mm 5mm 5mm;}</style>'),
htmlBase: Base64.encode(document.getElementById('printButtonA5').innerHTML)
htmlBase: Base64.encode(document.getElementById('printButtonA5').innerHTML),
pageSize: 'A5'
})
}, 5)
}, 100);
}
}
})
@ -263,5 +167,4 @@ export default {
}
</script>
<style lang="scss">
</style>

3020
src/components/H5form/jmjl-dzbl.vue

File diff suppressed because it is too large

2128
src/components/H5form/jmjl-opera-check-record.vue

File diff suppressed because it is too large

168
src/components/H5form/jmjlDzblBook.vue

@ -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>

1085
src/components/H5form/jmjlDzblBookFun.vue

File diff suppressed because it is too large

44
src/components/H5form/jmjlDzblBookPdf.vue

@ -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>

172
src/components/H5form/jmjlOperaCheckLook.vue

@ -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>

42
src/components/H5form/jmjlOperaCheckLookPdf.vue

@ -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>

561
src/components/H5form/jmjlOperaCheckLookPdfFun.vue

@ -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') {
// 使jsPDFbase64使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('&lt;0.3')) {
const dataValue = JSON.parse(res.data[item])
dataValue.splice(dataValue.indexOf('&lt;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: [
{
// X0-10,1 * :2
coX: '',
// Y0-10,1 * :2
coY: '',
// :1
keyword: '医生签字:',
// :1
offsetX: '0.1',
// :1
offsetY: '0',
// :2 * A-B"AB1-5"150-0"
pageNo: '',
// * 1(); * 6:
signatureType: '',
// /, * 10 ()
timestamp: '1',
// 123
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>

5
src/components/H5form/lhopera-consent-book.vue

@ -421,6 +421,7 @@ import publicFile from '@/mixins/publicFile'
import h5formButton from '@/components/H5formOhter/h5formButton'
// import recordFile from '@/page-subspecialty/views/modules/seeDoctor/archives/record-file'
import htmlToPdfToBlob from '@/mixins/htmlToPdfToBlob'
import yiXinQianSign from '@/mixins/yiXinQianSign.js'
import { isIDNumber, isHuzhao } from '@/utils/validate'
import { Base64 } from 'js-base64'
export default {
@ -429,7 +430,7 @@ export default {
crfEditor
// recordFile
},
mixins: [signGet, publicFile, htmlToPdfToBlob],
mixins: [signGet, publicFile, htmlToPdfToBlob, yiXinQianSign],
props: {
archiveCaseCRFItem: {
type: Object,
@ -476,7 +477,7 @@ export default {
// id
formId: '',
//
formName: '激光手术同意书',
formName: '联合手术同意书',
//
formDate: '',
//

4
src/components/H5form/operaCheckLookPdf.vue

@ -34,8 +34,8 @@ export default {
}
},
methods: {
init(id, formFlag) {
this.$refs.operaCheckLookPdfFunRef.init(id, formFlag)
init(id, flag) {
this.$refs.operaCheckLookPdfFunRef.init(id, flag)
}
}
}

292
src/components/H5form/operaCheckLookPdfFun.vue

@ -1,41 +1,29 @@
<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;' : ''"
>
<div v-if="isShow===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="
<div style="
font-size: 30px;
font-weight: 700;
text-align: center;
font-family:MicrosoftYaHeiBold;
"
>温州医科大学附属眼视光医院</div>
<div
style="
">温州医科大学附属眼视光医院</div>
<div style="
font-size: 30px;
font-weight: 700;
text-align: center;
margin-bottom: 10px;
font-family:MicrosoftYaHeiBold;
"
>术后复查门诊病历</div>
<div
style="
">术后复查门诊病历</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>
@ -43,29 +31,22 @@
<span>日期{{ formListValue.createDate }}</span>
</div>
</div>
<div
id="printA5"
style="
<div id="printA5" style="
flex: 1;
font-size: 16px;
text-align: justify;
line-height: 22px;
"
:style="savePdf ? 'max-width: 100%;margin: 0 auto;' : ''"
>
" :style="savePdf ? 'max-width: 100%;margin: 0 auto;' : ''">
<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.ssOuOperaName"
>双眼{{formListValue.ssOuOperaBieM || getContentInParentheses(formListValue.ssOuOperaName)}}术后{{ formListValue.zsOperaDayOd ? formListValue.zsOperaDayOd : '-' }}{{ formListValue.zsOperaUnitOd }}</span>
v-if="formListValue.ssOuOperaBieM || formListValue.ssOuOperaName">双眼{{formListValue.ssOuOperaBieM || getContentInParentheses(formListValue.ssOuOperaName)}}术后{{ formListValue.zsOperaDayOd ? formListValue.zsOperaDayOd : '-' }}{{ formListValue.zsOperaUnitOd }}</span>
<span
v-if="formListValue.ssOdOperaBieM || formListValue.ssOdOperaName"
>右眼{{ formListValue.ssOdOperaBieM || getContentInParentheses(formListValue.ssOdOperaName)}}术后{{ formListValue.zsOperaDayOd ? formListValue.zsOperaDayOd : '-' }}{{ formListValue.zsOperaUnitOd }}</span>
v-if="formListValue.ssOdOperaBieM || formListValue.ssOdOperaName">右眼{{ formListValue.ssOdOperaBieM || getContentInParentheses(formListValue.ssOdOperaName)}}术后{{ formListValue.zsOperaDayOd ? formListValue.zsOperaDayOd : '-' }}{{ formListValue.zsOperaUnitOd }}</span>
<span
v-if="formListValue.ssOsOperaBieM || formListValue.ssOsOperaName"
>左眼{{ formListValue.ssOsOperaBieM || getContentInParentheses(formListValue.ssOsOperaName)}}术后{{ formListValue.zsOperaDayOs ? formListValue.zsOperaDayOs : '-' }}{{ formListValue.zsOperaUnitOs }}</span>
v-if="formListValue.ssOsOperaBieM || formListValue.ssOsOperaName">左眼{{ formListValue.ssOsOperaBieM || getContentInParentheses(formListValue.ssOsOperaName)}}术后{{ formListValue.zsOperaDayOs ? formListValue.zsOperaDayOs : '-' }}{{ formListValue.zsOperaUnitOs }}</span>
</span>
<template v-show="!formListValue.ssOuOperaBieM || !formListValue.ssOuOperaName">
<span v-show="zsTextOd!==zsTextOs">
@ -82,7 +63,7 @@
<span>来我院复查</span>
</template>
<template v-show="formListValue.ssOuOperaBieM || formListValue.ssOuOperaName">
<!-- 双眼{{formListValue.}} -->
<!-- 双眼{{formListValue.}} -->
</template>
</span>
</div>
@ -94,14 +75,12 @@
<span v-show="formListValue.slMingDate">{{ formListValue.slMingDate }}</span>
<span
style="padding-right: 10px;"
>{{ formListValue.slLyYuanMingOd ? formListValue.slLyYuanMingOd : '-' }}</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>
style="padding-right: 10px;">{{ formListValue.slLyYuanMingOs ? formListValue.slLyYuanMingOs: '-' }}</span>
<span>{{ formListValue.slLyYuanAnOs ? formListValue.slLyYuanAnOs: '-' }}</span>
</span>
@ -114,74 +93,49 @@
<span>
<span style="margin-top: 10px;"><b style="font-family:MicrosoftYaHeiBold;">眼科检查</b></span>
右眼
<span
v-if="formListValue.ykjcYanjOd.length>0 && formListValue.ykjcJiemOd.length <=0 && formListValue.ykjcJiaomOd.length<=0
&& formListValue.ykjcQianfOd.length<=0 && formListValue.ykjcJintOd.length<=0 "
>-</span>
<span v-if="formListValue.ykjcYanjOd.length>0 && 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-for="(item,index) in formListValue.ykjcYanjOd" :key="index">{{ item }}
<span v-if="formListValue.ykjcYanjOd.length-1 >index"> | </span>
</span>
<span
v-show="
<span v-show="
formListValue.ykjcJiemOd.length>0 ||
formListValue.ykjcJiaomOd.length>0 ||
formListValue.ykjcQianfOd.length>0 ||
formListValue.ykjcJintOd.length>0"
></span>
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-for="(item,index) in formListValue.ykjcJiemOd" :key="index">{{ item }}
<span v-if="formListValue.ykjcJiemOd.length-1 >index"> | </span>
</span>
<span
v-show="
<span v-show="
formListValue.ykjcJiaomOd.length>0 ||
formListValue.ykjcQianfOd.length>0 ||
formListValue.ykjcJintOd.length>0"
></span>
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-for="(item,index) in formListValue.ykjcJiaomOd" :key="index">{{ item }}
<span v-if="formListValue.ykjcJiaomOd.length-1 >index"> | </span>
</span>
<span
v-show="
<span v-show="
formListValue.ykjcQianfOd.length>0 ||
formListValue.ykjcJintOd.length>0"
></span>
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-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 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-for="(item,index) in formListValue.ykjcJintOd" :key="index">{{ item }}
<span v-if="formListValue.ykjcJintOd.length-1 >index"> | </span>
</span>
</span>
@ -189,71 +143,48 @@
<span></span>
<span>
左眼
<span
v-if="formListValue.ykjcYanjOs.length>0 && formListValue.ykjcJiemOs.length <=0 && formListValue.ykjcJiaomOs.length<=0
&& formListValue.ykjcQianfOs.length<=0 && formListValue.ykjcJintOs.length<=0 "
>-</span>
<span v-if="formListValue.ykjcYanjOs.length>0 && 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-for="(item,index) in formListValue.ykjcYanjOs" :key="index">{{ item }}
<span v-if="formListValue.ykjcYanjOs.length-1 >index"> | </span>
</span>
<span
v-show="
<span v-show="
formListValue.ykjcJiemOs.length>0 ||
formListValue.ykjcJiaomOs.length>0 ||
formListValue.ykjcQianfOs.length>0 ||
formListValue.ykjcJintOs.length>0"
></span>
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-for="(item,index) in formListValue.ykjcJiemOs" :key="index">{{ item }}
<span v-if="formListValue.ykjcJiemOs.length-1 >index"> | </span>
</span>
<span
v-show="
<span v-show="
formListValue.ykjcJiaomOs.length>0 ||
formListValue.ykjcQianfOs.length>0 ||
formListValue.ykjcJintOs.length>0"
></span>
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-for="(item,index) in formListValue.ykjcJiaomOs" :key="index">{{ item }}
<span v-if="formListValue.ykjcJiaomOs.length-1 >index"> | </span>
</span>
<span
v-show="
<span v-show="
formListValue.ykjcQianfOs.length>0 ||
formListValue.ykjcJintOs.length>0"
></span>
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-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-for="(item,index) in formListValue.ykjcJintOs" :key="index">{{ item }}
<span v-if="formListValue.ykjcJintOs.length-1 >index"> | </span>
</span>
</span>
@ -321,32 +252,27 @@
<span>{{ formListValue.clyj ? formListValue.clyj : '-' }}</span>
</div>
<!-- v-if="base64Flag" -->
<div
style="
<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 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 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>
@ -378,61 +304,29 @@ export default {
return {
formListValue: {
},
flag: 0,
isShow: 0,
zsOdcheckArr: [],
zsOscheckArr: [],
zsTextOd: '',
zsTextOs: '',
recordId: '',
formFlag: ''
}
},
methods: {
// CA
init(id, formFlag) {
init(id, flag) {
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.ssOuOperaName || parentFormlistValue.ssOdOperaName || parentFormlistValue.ssOsOperaName) &&
(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)
}
this.getQgEmrRecordInfo(id, flag)
},
//
getContentInParentheses(str) {
console.log('str',str);
console.log('str', str);
const matches = str.match(/\((.*?)\)/);
return matches ? matches[1] : null;
},
//
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
async getQgEmrRecordInfo(id, flag) {
this.isShow = 0
const { data: res } = await this.$http.get('/quguang/opera/after/getOperaAfterInfoRecord', {
params: {
id: id
@ -486,66 +380,16 @@ export default {
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) {
this.formListValue.createSign = ''
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: 2,
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: [
{
// X0-10,1 * :2
coX: '',
// Y0-10,1 * :2
coY: '',
// :1
keyword: '医生签字:',
// :1
offsetX: '0.1',
// :1
offsetY: '0',
// :2 * A-B"AB1-5"150-0"
pageNo: '',
// * 1(); * 6:
signatureType: '',
// /, * 10 ()
timestamp: '1',
// 123
type: '1',
// /
width: '75',
// /
height: '30'
}
],
//
userId: this.userData.employeeId
}
}
this.isShow = 1
if (flag === 'savepdf') {
setTimeout(() => {
this.exportPDF({
customMargin: [15, 15],
customElementId: 'printButtonA5',
caParams: caParams,
isJavaTransformPdf: true,
console.log(document.getElementById('printButtonA5'));
this.html2Pdf({
marginStyle: Base64.encode('<style>@page{margin: 8mm 5mm 5mm 5mm;}</style>'),
htmlBase: Base64.encode(document.getElementById('printButtonA5').innerHTML)
htmlBase: Base64.encode(document.getElementById('printButtonA5').innerHTML),
pageSize: 'A5'
})
}, 5)
}, 100);
}
}
})

246
src/components/H5form/operation-nursing-record.vue

@ -38,29 +38,34 @@
<span class="width-90">
PID:
<el-input v-if="!isSaveSeccess" v-model="formListValue.patientId" placeholder="PID" clearable />
<span v-else style="border-bottom:1px solid #ccc;padding:0 10px;display:inline-block;margin-right:10px;">{{formListValue.patientId}}</span>
<span v-else
style="border-bottom:1px solid #ccc;padding:0 10px;display:inline-block;margin-right:10px;">{{formListValue.patientId}}</span>
</span>
<span class="width-90">
姓名:
<el-input v-if="!isSaveSeccess" v-model="formListValue.patientName" placeholder="姓名" clearable />
<span v-else style="border-bottom:1px solid #ccc;padding:0 10px;display:inline-block;margin-right:10px;">{{formListValue.patientName}}</span>
<span v-else
style="border-bottom:1px solid #ccc;padding:0 10px;display:inline-block;margin-right:10px;">{{formListValue.patientName}}</span>
</span>
<span class="width-50">
性别:
<el-input v-if="!isSaveSeccess" v-model="formListValue.patientSex" placeholder="性别" clearable />
<span v-else style="border-bottom:1px solid #ccc;padding:0 10px;display:inline-block;margin-right:10px;">{{formListValue.patientSex}}</span>
<span v-else
style="border-bottom:1px solid #ccc;padding:0 10px;display:inline-block;margin-right:10px;">{{formListValue.patientSex}}</span>
</span>
<span class="width-90">
出生日期:
<el-date-picker v-if="!isSaveSeccess" v-model="formListValue.patientBirthday" type="date"
placeholder="选择日期" value-format="yyyy-MM-dd" />
<span v-else style="border-bottom:1px solid #ccc;padding:0 10px;display:inline-block;margin-right:10px;">{{formListValue.patientBirthday}}</span>
<span v-else
style="border-bottom:1px solid #ccc;padding:0 10px;display:inline-block;margin-right:10px;">{{formListValue.patientBirthday}}</span>
</span>
<span class="width-90">
手术日期
<el-date-picker v-if="!isSaveSeccess" v-model="formListValue.operaDate" type="date" placeholder="选择日期"
value-format="yyyy-MM-dd" />
<span v-else style="border-bottom:1px solid #ccc;padding:0 10px;display:inline-block;margin-right:10px;">{{formListValue.operaDate}}</span>
<span v-else
style="border-bottom:1px solid #ccc;padding:0 10px;display:inline-block;margin-right:10px;">{{formListValue.operaDate}}</span>
</span>
</div>
<div style="text-align: left;margin-top:20px;margin-bottom:12px;">
@ -185,7 +190,8 @@
<el-radio v-for="(item, index) in radioList" :key="index" :label="item.name">{{ item.name }}
</el-radio>
</el-radio-group>
<span v-else style="border-bottom:1px solid #ccc;padding:0 16px;display:inline-block;margin-right:10px;">{{formListValue.beforeSf}}</span>
<span v-else
style="border-bottom:1px solid #ccc;padding:0 16px;display:inline-block;margin-right:10px;">{{formListValue.beforeSf}}</span>
</span>
</div>
<div style="text-align: left;display: flex;align-items: center;">
@ -195,7 +201,8 @@
<el-radio v-for="(item, index) in radioList" :key="index" :label="item.name">{{ item.name }}
</el-radio>
</el-radio-group>
<span v-else style="border-bottom:1px solid #ccc;padding:0 16px;display:inline-block;margin-right:10px;">{{formListValue.beforeBw}}</span>
<span v-else
style="border-bottom:1px solid #ccc;padding:0 16px;display:inline-block;margin-right:10px;">{{formListValue.beforeBw}}</span>
</span>
</div>
<div style="text-align: left;display: flex;align-items: center;">
@ -205,7 +212,8 @@
<el-radio v-for="(item, index) in radioList" :key="index" :label="item.name">{{ item.name }}
</el-radio>
</el-radio-group>
<span v-else style="border-bottom:1px solid #ccc;padding:0 16px;display:inline-block;margin-right:10px;">{{formListValue.beforeBs}}</span>
<span v-else
style="border-bottom:1px solid #ccc;padding:0 16px;display:inline-block;margin-right:10px;">{{formListValue.beforeBs}}</span>
</span>
</div>
</div>
@ -364,8 +372,7 @@
</el-checkbox>
<div v-show="formListValue.centerQxSmile" style="margin-left:24px;">
<div style="margin-top:10px;margin-bottom:10px;">
开睑器 * 1有齿镊 * 1 掀瓣针 * 1透镜取出镊 * 1 无齿镊 *
1
开睑器 * 1有齿镊 * 1 掀瓣针 * 2透镜取出镊 * 1
</div>
<div style="display: flex;align-items: center;">
<el-checkbox-group v-model="formListValue.centerQxSmileCheck">
@ -493,15 +500,14 @@
</div>
</div>
</div>
<!-- KXL手术器械 -->
<!-- KXL手术器械 -->
<div style="padding: 5px 0;">
<div v-if="!isSaveSeccess">
<el-checkbox v-model="formListValue.centerQxKxl" @change="checkboxChange('centerQxKxl')">
<span>
<span>KXL手术器械</span>
<span class="width-100">
<el-input v-model="formListValue.centerQxKxlTs"
@input="inputHandle('centerQxKxlTs', $event)" />
<el-input v-model="formListValue.centerQxKxlTs" @input="inputHandle('centerQxKxlTs', $event)" />
</span>
<span></span>
</span>
@ -712,13 +718,21 @@
</div>
</el-form>
</div>
<div style="text-align: center;">
<span style="padding-right:10px;">保存人{{
<div style="text-align: center;;margin-top:20px;">
<div style="margin: 0 auto;font-size:36px;color:green;font-weight:700;margin-bottom:10px;"
v-show="formListValue.fileCode">已CA签
</div>
<div style="margin: 0 auto;font-size:36px;color:red;font-weight:700;margin-bottom:10px;"
v-show="!formListValue.fileCode">未CA签
</div>
<div>
<span style="padding-right:10px;">保存人{{
formListValue.createName ? formListValue.createName : "-"
}}</span>
<span>保存时间{{
<span>保存时间{{
formListValue.createDate ? formListValue.createDate : "-"
}}</span>
</div>
</div>
</div>
</template>
@ -728,11 +742,12 @@ import signGet from '@/mixins/signGet'
import publicFile from '@/mixins/publicFile'
import h5formButton from '@/components/H5formOhter/h5formButton'
import htmlToPdfToBlob from '@/mixins/htmlToPdfToBlob'
import yiXinQianSign from '@/mixins/yiXinQianSign.js'
export default {
components: {
h5formButton
},
mixins: [signGet, publicFile, htmlToPdfToBlob],
mixins: [signGet, publicFile, htmlToPdfToBlob, yiXinQianSign],
props: {
archiveCaseCRFItem: {
type: Object,
@ -936,7 +951,7 @@ export default {
}
],
//
qxOtherList: ['掀瓣针', '开睑器', '1大圈', '其它'],
qxOtherList: ['其它'],
//
healthEducationList: [
{
@ -993,13 +1008,10 @@ export default {
},
methods: {
init() {
this.getSendCaStatus()
this.getInfo()
this.getOperaList()
},
//
getSign() {
this.getSystomSign('backNurseSign', '', 'backNurseCode', 'backNurseName')
},
//
singHandle(text) {
const value = {
@ -1066,10 +1078,8 @@ export default {
})
console.log(this.formListValue)
}
window.localStorage.getItem('qg-userData') ? this.userData = JSON.parse(window.localStorage.getItem('qg-userData')) : ''
res.data.backNurseCode ? '' : this.formListValue.backNurseCode = this.userData.employeeId
res.data.backNurseName ? '' : this.formListValue.backNurseName = this.userData.realName
res.data.backNurseSign ? '' : this.getSign()
res.data.centerDoctorSign ? '' : this.getZdDoctorSign('centerDoctorSign', '', 'centerDoctorCode', 'centerDoctorName')
res.data.backNurseSign ? '' : this.getSystomSign('backNurseSign', '', 'backNurseCode', 'backNurseName')
} else {
this.$message.error(res.msg)
}
@ -1204,140 +1214,64 @@ export default {
message: '您已保存成功',
type: 'success'
})
this.getSendCaStatus(res.data)
// this.$emit('closeDialog')
} else {
this.$message.error(res.msg)
}
},
// CA
async getSendCaStatus(resData) {
const { data: res } = await this.$http.get('/quguang/caSign/getSendCaStatus', {
params: {
name: '屈光手术护理记录单'
}
})
if (res.code === 0) {
console.log('是否开启了CA认证表单状态')
res.data === 1 ? this.sendCaSign(resData) : this.$emit('closeDialog')
setTimeout(() => {
// pdfca
// caOpenStatus true CA
if (this.caOpenStatus) {
this.operaFormDataCaSign({
caSignData: JSON.stringify(this.formListValue),
doctorCode: this.formListValue.centerDoctorCode,
formFlag: '12',
formId: res.data,
formName: '屈光手术护理记录单',
patientId: this.archiveCaseCRFItem.patientId,
patientName: this.archiveCaseCRFItem.patientName,
}, () => {
this.getInfo()
})
this.operaFormDataCaSign({
caSignData: JSON.stringify(this.formListValue),
doctorCode: this.formListValue.backNurseCode,
formFlag: '7',
formId: res.data,
formName: '屈光手术护理记录单',
patientId: this.archiveCaseCRFItem.patientId,
patientName: this.archiveCaseCRFItem.patientName,
}, () => {
this.getInfo()
})
this.$emit('closeDialog')
}
// -
// capdf--> ca-->
// jspdfpdf
// const caParams = {
// //
// fileName: '',
// //
// formFlag: '',
// // id
// formId: this.archiveCaseCRFItem.id,
// }
// this.exportPDF({
// paperSize: 'A4', //
// customOrientation: 'portrait', //
// header: '100', //
// customMargin: [25, 20, 0, 20], //
// customElementId: 'printH5',
// isTransform: 'scale(0.83)', //
// isCurrentPageLoad: false, // CA使loading
// isJavaTransformPdf: false, // javapdf
// caParams: caParams,
// isDataSign: true,
// })
}, 100)
} else {
this.$message.error(res.msg)
}
},
// async ceshipdf() {
// const dom = document.getElementById('printH5').innerHTML
// console.log(dom)
// const { data: res } = await this.$http.post('/quguang/survey/htmlToPdf', {
// html: Base64.encode(document.getElementById('printH5').innerHTML)
// })
// },
// CA
sendCaSign(resData) {
console.log('触发CA封装')
this.pageTitle === '手术列表' ? this.$emit('closeDialog') : ''
// this.formListValue.centerDoctorName
if (this.formListValue.backNurseName) {
// this.formListValue.centerDoctorSign = ''
// this.formListValue.backNurseSign = ''
// this.loading = this.$loading({
// lock: true,
// text: 'PDF...',
// spinner: 'el-icon-loading',
// background: 'rgba(255, 255, 255, 0.7)'
// })
const caParams = {
// url
signUrl: '/quguang/caSign/multiCaSign',
//
fileName: '屈光手术护理记录单',
formFlag: 12, // 12-
patientIdNumber: this.archiveCaseCRFItem.patientIdNumber,
patientCentreId: this.userData.centreId,
patientName: this.archiveCaseCRFItem.patientName,
patientId: this.archiveCaseCRFItem.patientId,
operaPatientId: this.archiveCaseCRFItem.id,
// id
formId: resData,
zdSign: {
//
position: [
{
// X0-10,1 * :2
coX: '', // 0.642
// Y0-10,1 * :2
coY: '', // 0.179
// :1
keyword: '医生签字:',
// :1
offsetX: '0.1',
// :1
offsetY: '0',
// :2 * A-B"AB1-5"150-0"
pageNo: '', // 1-1
// * 1(); * 6:
signatureType: '',
// /, * 10 ()
timestamp: '1',
// 123
type: '1',
// /
width: '75',
// /
height: '30'
}
],
//
userId: this.formListValue.centerDoctorCode
},
jsSign: {
//
position: [
{
// X0-10,1 * :2
coX: '', // 0.154
// Y0-10,1 * :2
coY: '', // 0.179
// :1
keyword: '巡回护士签字:',
// :1
offsetX: '0.1',
// :1
offsetY: '0',
// :2 * A-B"AB1-5"150-0"
pageNo: '', // 1-1
// * 1(); * 6:
signatureType: '1',
// /, * 10 ()
timestamp: '1',
// 123
type: '1',
// /
width: '75',
// /
height: '30'
}
],
//
userId: this.formListValue.backNurseCode
}
}
console.log('this.exportPDF')
this.exportPDF({
// jsPDF
paperSize: 'A4', //
customOrientation: 'portrait',
customMargin: [25, 0, 0, 15], //
isTransform: 'scale(0.85)', //
customElementId: 'printH5',
isCurrentPageLoad: false, // CA使loading
caParams: caParams,
isHaveDoctorSign: true, //
isJavaTransformPdf: true,
htmlBase: Base64.encode(document.getElementById('printH5').innerHTML)
})
}
// console.log(Base64.decode(Base64.encode(document.getElementById('printH5').innerHTML)))
}
}
}
</script>

150
src/components/H5form/operation-plan.vue

@ -117,7 +117,7 @@
</div>
<div v-if="scope.row.YQJZDS.length>0" class="center">
预期矫正度数
<el-checkbox v-model="formListValue.isShowPatientorDlrSign" @change="checkSd">试戴</el-checkbox>
<el-checkbox v-model="formListValue.isShowPatientOrDlrSign" @change="checkSd">试戴</el-checkbox>
</div>
<div v-if="scope.row.operationList.length>0" class="center">
手术方式
@ -303,11 +303,11 @@
format="yyyy-MM-dd HH:mm" value-format="yyyy-MM-dd HH:mm" placeholder="日期" />
</div>
</div>
<div class="sign-right-father" style="margin-top:20px;" v-if="formListValue.isShowPatientorDlrSign">
<div class="sign-right-father" style="margin-top:20px;" v-if="formListValue.isShowPatientOrDlrSign">
<div class="left huanfang">
<div class="margin-bottom-20">
<span>患者(代理人)签字</span>
<img :src="formListValue.patientorDlrSign" alt="" width="90px">
<img :src="formListValue.patientOrDlrSign" alt="" width="90px">
<!-- <span v-if="!formListValue.sign2 && saveEidtTitle==='保存'" class="sign" @click="singHandle('sign2')">点击签字</span> -->
</div>
<div class="flex-2 margin-bottom-20">
@ -348,11 +348,11 @@
</div>
<div class="width-inner-200">
<span> </span>
<el-date-picker v-if="saveEidtTitle==='保存'" v-model="formListValue.patientorDlrSignTime"
<el-date-picker v-if="saveEidtTitle==='保存'" v-model="formListValue.patientOrDlrSignTime"
class="margin-right-6" type="datetime" format="yyyy-MM-dd HH:mm" value-format="yyyy-MM-dd HH:mm"
placeholder="日期" />
<span v-else
style="border-bottom:1px solid #ccc;font-size:15px;width: 100px;padding:0 16px;">{{ formListValue.patientorDlrSignTime ? formListValue.patientorDlrSignTime : '-' }}</span>
style="border-bottom:1px solid #ccc;font-size:15px;width: 100px;padding:0 16px;">{{ formListValue.patientOrDlrSignTime ? formListValue.patientOrDlrSignTime : '-' }}</span>
</div>
</div>
</div>
@ -363,9 +363,17 @@
</div>
</div>
<div class="saveInfo">
<span class="padding-right-10">保存人{{ formListValue.createName ? formListValue.createName : '-' }}</span>
<span>保存时间{{ formListValue.createDate ? formListValue.createDate : '-' }}</span>
<div>
<div style="margin: 0 auto;font-size:36px;color:green;font-weight:700;margin-top:20px;margin-bottom:10px;"
v-show="formListValue.fileCode">已CA签
</div>
<div style="margin: 0 auto;font-size:36px;color:red;font-weight:700;margin-top:20px;margin-bottom:10px;"
v-show="!formListValue.fileCode">未CA签
</div>
<div>
<span style="padding-right:10px;">保存人{{ formListValue.createName ? formListValue.createName : '-' }}</span>
<span>保存时间{{ formListValue.createDate ? formListValue.createDate : '-' }}</span>
</div>
</div>
<!-- 检查数据查看 -->
<historyData v-if="historyDataVisible" ref="historyDataRef" :patient-id="patientId"
@ -387,14 +395,16 @@ import operationPlan from '@/mixins/operationPlan'
import historyData from '@/components/H5form/historyData'
import h5formButton from '@/components/H5formOhter/h5formButton'
import intoTemplate from '@/components/H5form/intoTemplate'
import { isIDNumber, isHuzhao } from '@/utils/validate'
import htmlToPdfToBlob from '@/mixins/htmlToPdfToBlob'
import yiXinQianSign from '@/mixins/yiXinQianSign.js'
export default {
components: {
historyData,
h5formButton,
intoTemplate
},
mixins: [signGet, operationPlan, publicFile, refreshDate, htmlToPdfToBlob],
mixins: [signGet, operationPlan, publicFile, refreshDate, htmlToPdfToBlob, htmlToPdfToBlob, yiXinQianSign],
props: {
archiveCaseCRFItem: {
type: Object,
@ -477,7 +487,7 @@ export default {
yqjzdsOs2: '',
yqjzdsOs3: '',
// ---
isShowPatientorDlrSign: '',
isShowPatientOrDlrSign: '',
//
ssfsOd: '',
ssfsOs: '',
@ -496,8 +506,8 @@ export default {
patientGxCheck: '本人',
patientGxInput: '',
//
patientorDlrSign: '',
patientorDlrSignTime: ''
patientOrDlrSign: '',
patientOrDlrSignTime: ''
},
operaList: [],
hzgx: ['本人', '家属', '见证人'],
@ -553,6 +563,7 @@ export default {
}
},
created() {
this.getSendCaStatus()
this.getOperaList()
// this.$parent.deleteErmUpdating(this.archiveCaseCRFItem.id)
},
@ -565,11 +576,6 @@ export default {
this.getInfo()
// this.$parent.deleteErmUpdating(this.archiveCaseCRFItem.id)
},
//
getSign() {
this.getSystomSign('doctorSign', 'doctorSignTime', 'createCode', 'createName')
this.formListValue.patientorDlrSignTime ? '' : this.formListValue.patientorDlrSignTime = this.$moment().add(5, 'minutes').format('YYYY-MM-DD HH:mm')
},
dataRuleFun(value, callback, text) {
if (this.formListValue[text] === '身份证号') {
if (value && !isIDNumber(value)) {
@ -585,6 +591,11 @@ export default {
}
}
},
//
getSign() {
this.getSystomSign('doctorSign', 'doctorSignTime', 'createCode', 'createName')
this.formListValue.patientOrDlrSignTime ? '' : this.formListValue.patientOrDlrSignTime = this.$moment().add(5, 'minutes').format('YYYY-MM-DD HH:mm')
},
//
singHandle(text) {
const value = {
@ -610,7 +621,7 @@ export default {
}
)
if (res.code === 0) {
res.data.isShowPatientorDlrSign ? this.rowShowPatientorDlrSign(JSON.parse(res.data.isShowPatientorDlrSign)) : this.rowShowPatientorDlrSign()
res.data.isShowPatientOrDlrSign ? this.rowShowPatientorDlrSign(JSON.parse(res.data.isShowPatientOrDlrSign)) : this.rowShowPatientorDlrSign()
this.$emit('load')
if (this.archiveCaseCRFItem.id === res.data.formId) {
Object.keys(res.data).forEach((item) => {
@ -648,13 +659,17 @@ export default {
})
}
this.isGetFormValue = true
this.formListValue.patientGxCheck === '本人' && !this.formListValue.patientOrDlrZjh ? this.formListValue.patientOrDlrZjh = this.formListValue.patientIdNumber : ''
this.formListValue.zjSelect ? '' : this.formListValue.zjSelect = isIDNumber(this.formListValue.patientOrDlrZjh) ? '身份证号' : (
isHuzhao(this.formListValue.patientOrDlrZjh) ? '护照号' : ''
)
} else {
this.$message.error(res.msg)
}
},
// --
checkSd() {
this.rowShowPatientorDlrSign(this.formListValue.isShowPatientorDlrSign)
this.rowShowPatientorDlrSign(this.formListValue.isShowPatientOrDlrSign)
},
//
rowShowPatientorDlrSign(flag) {
@ -662,7 +677,7 @@ export default {
if (flag) {
this.tableDataNew = this.tableData
} else {
this.tableDataNew = tableData.filter(item => item.name !== 'patientorDlrSign')
this.tableDataNew = tableData.filter(item => item.name !== 'patientOrDlrSign')
}
},
//
@ -711,18 +726,36 @@ export default {
flag ? this.autoFixed2(yghc) : ''
this.formListValue[jzds] = this.formListValue[yghc]
},
//
hzgxSelectChange(e) {
console.log('this.formListValue.patientIdNumber', this.formListValue.patientIdNumber);
console.log(e)
e === '本人' ? this.formListValue.patientOrDlrZjh = this.formListValue.patientIdNumber : this.formListValue.patientOrDlrZjh = ''
},
// -4:-3:/-2:-1:
async statusHandle() {
const { data: res } = await this.$http.post('/quguang/pda/updateOperaStatus', {
operaId: this.formListValue.operaId,
status: -1
})
if (res.code === 0) {
} else {
this.$message.error(res.msg)
}
},
//
async saveAllForm(text) {
this.saveLoading = this.$loading({
lock: true,
text: '保存中请稍等...',
spinner: 'el-icon-loading',
background: 'rgba(255, 255, 255, 0.7)'
})
// this.saveLoading = this.$loading({
// lock: true,
// text: '...',
// spinner: 'el-icon-loading',
// background: 'rgba(255, 255, 255, 0.7)'
// })
// publicFile.js--
this.getUpSaveTime('/quguang/opera/plan/getOperaPlanInfo', text)
},
async saveForm(text) {
const userData = window.localStorage.getItem('qg-userData') ? JSON.parse(window.localStorage.getItem('qg-userData')) : ''
// this.formListValue.doctorSign = '' 使
const formvalue = JSON.parse(JSON.stringify(this.formListValue))
Object.keys(formvalue).forEach((item) => {
@ -735,30 +768,37 @@ export default {
formvalue
)
if (res.code === 0) {
this.$message({
message: '您已保存成功',
type: 'success'
})
this.saveEidtTitle = '编辑'
this.getSendCaStatus()
} else {
this.saveLoading.close()
this.$message.error(res.msg)
}
},
//
hzgxSelectChange(e) {
console.log(e)
e === '本人' ? this.formListValue.patientOrDlrZjh = this.formListValue.patientIdNumber : this.formListValue.patientOrDlrZjh = ''
},
// CA
async getSendCaStatus() {
const { data: res } = await this.$http.get('/quguang/caSign/getSendCaStatus', {
params: {
name: this.archiveCaseCRFItem.formName
}
})
if (res.code === 0) {
this.saveLoading.close()
res.data === 1 ? this.sendCaSign() : this.getInfo()
this.statusHandle()
setTimeout(() => {
if (this.formListValue.isShowPatientOrDlrSign && this.caOpenStatus) {
this.sendCaSign()
} else if (!this.formListValue.isShowPatientOrDlrSign && this.caOpenStatus) {
// pdfca
// caOpenStatus true CA
this.operaFormDataCaSign({
caSignData: JSON.stringify(this.formListValue),
doctorCode: userData.employeeId,
formFlag: '6',
formId: this.archiveCaseCRFItem.id,
formName: this.archiveCaseCRFItem.formName,
patientId: this.archiveCaseCRFItem.patientId,
patientName: this.archiveCaseCRFItem.patientName,
}, () => {
this.getInfo()
})
} else {
this.getInfo()
}
}, 100);
} else {
this.saveLoading.close()
// this.saveLoading.close()
this.$message.error(res.msg)
}
},
@ -766,7 +806,7 @@ export default {
sendCaSign() {
if (this.formListValue.doctorSign) {
this.formListValue.doctorSign = ''
this.formListValue.patientorDlrSign = ''
this.formListValue.patientOrDlrSign = ''
this.loading = this.$loading({
lock: true,
text: '发送CA签中请稍等...',
@ -883,17 +923,17 @@ export default {
positions: patientSignObj1
}]
}, {
signerType: this.formListValue.dlrHzGx === '家属' ? '4' : (this.formListValue.dlrHzGx === '见证人' ? '5' : ''), // 3; 4:; 5:
patientName: this.formListValue.patientName + this.formListValue.dlrHzGx, //
signerType: this.formListValue.patientGxCheck === '家属' ? '4' : (this.formListValue.patientGxCheck === '见证人' ? '5' : ''), // 3; 4:; 5:
patientName: this.formListValue.patientName + this.formListValue.patientGxCheck, //
patientIdcard: this.formListValue.patientOrDlrZjh, //
description: this.formListValue.dlrHzGx,
description: this.formListValue.patientGxCheck,
signFiles: [{
fileCode: this.patientCaUploadParams.fileCode,
//
positions: patientSignObj1
}]
}]
this.signUsers = this.formListValue.dlrHzGx === '本人' ? signUsers1 : signUsers2
this.signUsers = this.formListValue.patientGxCheck === '本人' ? signUsers1 : signUsers2
this.signFileByPad(customParams)
},
//
@ -910,7 +950,7 @@ export default {
},
objectSpanMethod({ row, column, rowIndex, columnIndex }) {
if (
(row.nameClass === 'doctorSign' || row.nameClass === 'patientorDlrSign' || row.nameClass === 'bz') &&
(row.nameClass === 'doctorSign' || row.nameClass === 'patientOrDlrSign' || row.nameClass === 'bz') &&
columnIndex === 1
) {
return {
@ -918,7 +958,7 @@ export default {
colspan: 2
}
} else if (
(row.nameClass === 'doctorSign' || row.nameClass === 'patientorDlrSign' || row.nameClass === 'bz') &&
(row.nameClass === 'doctorSign' || row.nameClass === 'patientOrDlrSign' || row.nameClass === 'bz') &&
columnIndex > 1
) {
// 0

319
src/components/H5form/operation-record.vue

@ -370,15 +370,6 @@
</span>
°
</div>
<!-- SCC -->
<div v-show="operaOdType !== 1 && operaOdType !== 0" class="margin-bottom-8 width-160 left">
<span>SCC</span>
<span>
<el-input v-if="!isSaveSeccess" v-model="formListValue.sccOd" placeholder="" />
<span v-else style="border-bottom:1px solid #ccc;padding:0 16px;">{{formListValue.sccOd}}</span>
</span>
°
</div>
<!-- MCC -->
<div v-show="
operaOdType === 3 ||
@ -622,7 +613,8 @@
</span>
</div>
<!-- 矫正度数 -->
<div v-show="operaOsType !==0" class="width-80" style="margin-bottom:8px;text-align: left;">
<div v-show="pageTitle !== '表单设置' && operaOsType !== 0" class="width-80"
style="margin-bottom:8px;text-align: left;">
<span>矫正度数</span>
<span>
<el-input v-if="!isSaveSeccess" v-model="formListValue.jzdsOs1" placeholder=""
@ -661,8 +653,8 @@
mm
</div>
<!--帽厚度 -->
<div v-show="operaOsType === 1 || operaOsType === 9" class="width-120"
style="margin-bottom:8px;text-align: left;">
<div v-show="operaOsType === 1 || operaOsType === 9 || operaOsType === 10 || operaOsType === 99 "
class="width-120" style="margin-bottom:8px;text-align: left;">
<span>帽厚度</span>
<span>
<el-select v-if="!isSaveSeccess" v-model="formListValue.mhdOs" allow-create default-first-option
@ -681,7 +673,9 @@
operaOsType === 4 ||
operaOsType === 6 ||
operaOsType === 7 ||
operaOsType === 9
operaOsType === 9 ||
operaOsType === 10 ||
operaOsType === 99
" class="width-120" style="margin-bottom:8px;text-align: left;">
<span>吸引环参数</span>
<span>
@ -701,7 +695,9 @@
operaOsType === 4 ||
operaOsType === 6 ||
operaOsType === 7 ||
operaOsType === 9
operaOsType === 9 ||
operaOsType === 10 ||
operaOsType === 99
" class="width-120" style="margin-bottom:8px;text-align: left;">
<span>瓣厚度</span>
<span>
@ -775,23 +771,14 @@
</span>
°
</div>
<!-- SCC -->
<div v-show="operaOsType !== 1 && operaOsType !==0" class="width-160"
style="margin-bottom:8px;text-align: left;">
<span>SCC</span>
<span>
<el-input v-if="!isSaveSeccess" v-model="formListValue.sccOs" placeholder="" />
<span v-else style="border-bottom:1px solid #ccc;padding:0 16px;">{{formListValue.sccOs}}</span>
</span>
°
</div>
<!-- MCC -->
<div v-show="
operaOsType === 3 ||
operaOsType === 5 ||
operaOsType === 6 ||
operaOsType === 7 ||
operaOsType === 9
operaOsType === 10 ||
operaOsType === 99
" class="width-160" style="margin-bottom:8px;text-align: left;">
<span>MMC</span>
<span>
@ -804,7 +791,8 @@
<div v-show="
operaOsType === 4 ||
operaOsType === 5 ||
operaOsType === 9
operaOsType === 10 ||
operaOsType === 99
" class="width-160" style="margin-bottom:8px;text-align: left;">
<span>Tr</span>
<span>
@ -821,7 +809,8 @@
<div v-show="
operaOsType === 4 ||
operaOsType === 5 ||
operaOsType === 9
operaOsType === 10 ||
operaOsType === 99
" class="width-160" style="margin-bottom:8px;text-align: left;">
<span>Ts</span>
<span>
@ -835,7 +824,7 @@
s
</div>
<!-- ADD -->
<div v-show="operaOsType === 6 || operaOsType === 9" class="width-160"
<div v-show="operaOsType === 6 || operaOsType === 10 || operaOsType === 99" class="width-160"
style="margin-bottom:8px;text-align: left;">
<span>ADD</span>
<span>
@ -845,7 +834,8 @@
D
</div>
<!-- 核黄素类型 -->
<div v-show="operaOsType === 8" class="width-120" style="margin-bottom:8px;text-align: left;">
<div v-show="operaOsType === 8 || operaOsType === 9" class="width-120"
style="margin-bottom:8px;text-align: left;">
<span>核黄素类型</span>
<span>
<el-input v-if="!isSaveSeccess" v-model="formListValue.hhslxOs" placeholder="" />
@ -853,7 +843,8 @@
</span>
</div>
<!-- 渗透时间 -->
<div v-show="operaOsType === 8" class="width-120" style="margin-bottom:8px;text-align: left;">
<div v-show="operaOsType === 8 || operaOsType === 9" class="width-120"
style="margin-bottom:8px;text-align: left;">
<span>渗透时间</span>
<span>
<el-input v-if="!isSaveSeccess" v-model="formListValue.stsjOs" placeholder="" />
@ -862,7 +853,8 @@
min
</div>
<!-- 渗透评估 -->
<div v-show="operaOsType === 8" class="width-120" style="margin-bottom:8px;text-align: left;">
<div v-show="operaOsType === 8 || operaOsType === 9" class="width-120"
style="margin-bottom:8px;text-align: left;">
<span>渗透评估</span>
<span>
<el-input v-if="!isSaveSeccess" v-model="formListValue.stpgOs" placeholder="" />
@ -871,7 +863,8 @@
</div>
<!-- 角膜厚度 -->
<div v-show="operaOdType === 8" class="width-60" style="margin-bottom:8px;text-align: left;">
<div v-show="operaOsType === 8 || operaOsType === 9" class="width-60"
style="margin-bottom:8px;text-align: left;">
<span>角膜厚度</span>
<span>
<el-input v-if="!isSaveSeccess" v-model="formListValue.jmhdOs1" placeholder="" />
@ -895,7 +888,8 @@
μm
</div>
<!-- 角膜厚度照射后 -->
<div v-show="operaOsType === 8" class="width-160" style="margin-bottom:8px;text-align: left;">
<div v-show="operaOsType === 8 || operaOsType === 9" class="width-160"
style="margin-bottom:8px;text-align: left;">
<span>角膜厚度照射后</span>
<span>
<el-input v-if="!isSaveSeccess" v-model="formListValue.jmhdzshOs" placeholder="" />
@ -905,7 +899,8 @@
μm
</div>
<!-- 照射模式 -->
<div v-show="operaOsType === 8" class="width-160" style="margin-bottom:8px;text-align: left;">
<div v-show="operaOsType === 8 || operaOsType === 9" class="width-160"
style="margin-bottom:8px;text-align: left;">
<span>照射模式</span>
<span>
<el-input v-if="!isSaveSeccess" v-model="formListValue.zsmsOs" placeholder="" />
@ -913,7 +908,8 @@
</span>
</div>
<!-- 照射直径 -->
<div v-show="operaOsType === 8" class="width-160" style="margin-bottom:8px;text-align: left;">
<div v-show="operaOsType === 8 || operaOsType === 9" class="width-160"
style="margin-bottom:8px;text-align: left;">
<span>照射直径</span>
<span>
<el-input v-if="!isSaveSeccess" v-model="formListValue.zszjOs" placeholder="" />
@ -922,7 +918,8 @@
mm
</div>
<!-- 辐照度 -->
<div v-show="operaOsType === 8" class="width-160" style="margin-bottom:8px;text-align: left;">
<div v-show="operaOsType === 8 || operaOsType === 9" class="width-160"
style="margin-bottom:8px;text-align: left;">
<span>辐照度</span>
<span>
<el-input v-if="!isSaveSeccess" v-model="formListValue.fzdOs" placeholder="" />
@ -931,7 +928,8 @@
mW/cm
</div>
<!-- 照射时间 -->
<div v-show="operaOsType === 8" class="width-120" style="margin-bottom:8px;text-align: left;">
<div v-show="operaOsType === 8 || operaOsType === 9" class="width-120"
style="margin-bottom:8px;text-align: left;">
<span>照射时间</span>
<span>
<el-input v-if="!isSaveSeccess" v-model="formListValue.zssjOs1" placeholder="" />
@ -945,12 +943,12 @@
s
</div>
<!-- 总能量 -->
<div v-show="operaOsType === 8" class="width-160" style="margin-bottom:8px;text-align: left;">
<div v-show="operaOsType === 8 || operaOsType === 9" class="width-160"
style="margin-bottom:8px;text-align: left;">
<span>总能量</span>
<span>
<el-input v-if="!isSaveSeccess" v-model="formListValue.znlOs" placeholder="" />
<span v-else
style="border-bottom:1px solid #ccc;padding:0 16px;">{{formListValue.znlOs}}</span>
<span v-else style="border-bottom:1px solid #ccc;padding:0 16px;">{{formListValue.znlOs}}</span>
</span>
J/cm
</div>
@ -1044,7 +1042,8 @@
<span style="display: flex;align-items: center;justify-content: space-between;">
<span>
技师签字
<span v-if="!formListValue.jsSign && !isSaveSeccess">{{ formListValue.jsName ? formListValue.jsName : '-' }}</span>
<span
v-if="!formListValue.jsSign && !isSaveSeccess">{{ formListValue.jsName ? formListValue.jsName : '-' }}</span>
<img v-else :src="formListValue.jsSign" alt="" width="90px">
</span>
<span style="padding-left:35px;">日期{{
@ -1122,7 +1121,8 @@
</span> -->
<span>
主刀签字
<span v-if="!formListValue.zdSign && !isSaveSeccess">{{ formListValue.zdName ? formListValue.zdName : '-' }}</span>
<span
v-if="!formListValue.zdSign && !isSaveSeccess">{{ formListValue.zdName ? formListValue.zdName : '-' }}</span>
<img v-else :src="formListValue.zdSign" alt="" width="90px">
</span>
<div style="padding-left:35px;">
@ -1174,13 +1174,21 @@
</div>
</div>
<div v-if="pageTitle !== '表单设置'" id="m1" style="text-align: center;">
<span style="padding-right:10px;">保存人{{
<div v-if="pageTitle !== '表单设置'" id="m1" style="margin-top:20px;text-align:center;">
<div style="margin: 0 auto;font-size:36px;color:green;font-weight:700;margin-bottom:10px;"
v-show="formListValue.fileCode">已CA签
</div>
<div style="margin: 0 auto;font-size:36px;color:red;font-weight:700;margin-bottom:10px;"
v-show="!formListValue.fileCode">未CA签
</div>
<div>
<span class="padding-right-10">保存人{{
formListValue.createName ? formListValue.createName : "-"
}}</span>
<span>保存时间{{
<span>保存时间{{
formListValue.createDate ? formListValue.createDate : "-"
}}</span>
</div>
</div>
<el-drawer title="我是标题" :visible.sync="drawer" :with-header="false" :modal="false">
<span>屈光电子病历检查信息</span>
@ -1206,6 +1214,7 @@ import intoTemplate from '@/components/H5form/intoTemplate'
import intoMrz from '@/components/H5form/intoMrz'
import blDataInfo from '@/components/H5form/blDataInfo'
import htmlToPdfToBlob from '@/mixins/htmlToPdfToBlob'
import yiXinQianSign from '@/mixins/yiXinQianSign.js'
import { pinyin } from 'pinyin-pro'
export default {
@ -1215,7 +1224,7 @@ export default {
intoMrz,
blDataInfo
},
mixins: [signGet, publicFile, operationRecord, htmlToPdfToBlob],
mixins: [signGet, publicFile, operationRecord, htmlToPdfToBlob, yiXinQianSign],
props: {
archiveCaseCRFItem: {
type: Object,
@ -1315,9 +1324,6 @@ export default {
yxlOd2: '',
yxlOs1: '',
yxlOs2: '',
// scc
sccOd: '',
sccOs: '',
// mmc
mmcOd: '',
mmcOs: '',
@ -1454,6 +1460,7 @@ export default {
},
methods: {
init() {
this.getSendCaStatus()
if (this.pageTitle === '表单设置') {
this.setTableData()
this.formListValue = this.formSetValue
@ -1465,13 +1472,6 @@ export default {
document.title = `手术记录(${this.archiveCaseCRFItem.patientName}`
}
},
//
getSign() {
console.log('技师签字')
this.getSystomSign('', 'jsSignDate', 'jsCode', 'jsName')
// this.getSystomSign('jsSignOd', 'jsSignDateOd')
// this.getSystomSign('jsSignOs', 'jsSignDateOs')
},
//
singHandle(text) {
const value = {
@ -1576,9 +1576,8 @@ export default {
}
})
}
res.data.jsName || res.data.jsSignDate ? '' : this.getSign()
res.data.zdName || res.data.zdSignDate ? '' : this.getZdDoctorSign('', 'zdSignDate', 'zdCode', 'zdName')
res.data.jsSign ? '' : this.getSystomSign('jsSign', 'jsSignDate', 'jsCode', 'jsName')
res.data.zdSign ? '' : this.getZdDoctorSign('zdSign', 'zdSignDate', 'zdCode', 'zdName')
console.log(this.formListValue)
} else {
this.$message.error(res.msg)
@ -1707,14 +1706,13 @@ export default {
},
//
async saveAllForm() {
this.saveLoading = this.$loading({
lock: true,
text: '保存中请稍等...',
spinner: 'el-icon-loading',
background: 'rgba(255, 255, 255, 0.7)'
})
this.formListValue.jsSign = ''
this.formListValue.zdSign = ''
const userData = window.localStorage.getItem('qg-userData') ? JSON.parse(window.localStorage.getItem('qg-userData')) : ''
// this.saveLoading = this.$loading({
// lock: true,
// text: '...',
// spinner: 'el-icon-loading',
// background: 'rgba(255, 255, 255, 0.7)'
// })
const formvalue = JSON.parse(JSON.stringify(this.formListValue))
Object.keys(formvalue).forEach((item) => {
if (Array.isArray(formvalue[item])) {
@ -1728,135 +1726,72 @@ export default {
if (res.code === 0) {
this.saveEidtTitle = '编辑'
this.isSaveSeccess = true
// this.$message({
// message: '',
// type: 'success'
// })
this.getSendCaStatus(res.data)
} else {
this.saveLoading.close()
this.$message.error(res.msg)
}
},
// CA
async getSendCaStatus(resData) {
const { data: res } = await this.$http.get('/quguang/caSign/getSendCaStatus', {
params: {
name: '手术记录'
}
})
if (res.code === 0) {
console.log('CA认证表单状态', res.data)
this.saveLoading.close()
res.data === 1 ? this.sendCaSign(resData) : this.$emit('closeDialog')
} else {
this.saveLoading.close()
this.$message.error(res.msg)
}
},
sendCaSign(resData) {
this.pageTitle === '手术列表' ? this.$emit('closeDialog') : ''
if (this.formListValue.jsName && this.formListValue.zdName) {
this.loading = this.$loading({
lock: true,
text: '发送CA签中请稍等...',
spinner: 'el-icon-loading',
background: 'rgba(255, 255, 255, 0.7)'
this.$message({
message: '您已保存成功',
type: 'success'
})
this.formListValue.jsSign = ''
this.formListValue.zdSign = ''
const caParams = {
// url
signUrl: '/quguang/caSign/multiCaSign',
//
fileName: '手术记录',
// 1:/() 2:3:/()4:,5:,6:7:
formFlag: 7,
patientIdNumber: this.archiveCaseCRFItem.patientIdNumber,
patientCentreId: this.userData.centreId,
patientName: this.archiveCaseCRFItem.patientName,
patientId: this.archiveCaseCRFItem.patientId,
// id
formId: resData,
jsSign: {
//
position: [
{
// X0-10,1 * :2
coX: '', // 0.154
// Y0-10,1 * :2
coY: '', // 0.179
// :1
keyword: '技师签字:',
// :1
offsetX: '0.1',
// :1
offsetY: '0',
// :2 * A-B"AB1-5"150-0"
pageNo: '', // 1-1
// * 1(); * 6:
signatureType: '1',
// /, * 10 ()
timestamp: '1',
// 123
type: '1',
// /
width: '75',
// /
height: '30'
}
],
//
userId: this.formListValue.jsCode
},
zdSign: {
//
position: [
{
// X0-10,1 * :2
coX: '', // 0.642
// Y0-10,1 * :2
coY: '', // 0.179
// :1
keyword: '主刀签字:',
// :1
offsetX: '0.1',
// :1
offsetY: '0',
// :2 * A-B"AB1-5"150-0"
pageNo: '', // 1-1
// * 1(); * 6:
signatureType: '',
// /, * 10 ()
timestamp: '1',
// 123
type: '1',
// /
width: '75',
// /
height: '30'
}
],
//
userId: this.formListValue.zdCode
setTimeout(() => {
// pdfca
// caOpenStatus true CA
if (this.caOpenStatus) {
// pdfca
this.operaFormDataCaSign({
caSignData: JSON.stringify(this.formListValue),
doctorCode: this.formListValue.jsCode,
formFlag: '7',
formId: res.data,
formName: '手术记录',
patientId: this.archiveCaseCRFItem.patientId,
patientName: this.archiveCaseCRFItem.patientName,
}, () => {
this.getInfo()
})
this.operaFormDataCaSign({
caSignData: JSON.stringify(this.formListValue),
doctorCode: this.formListValue.zdCode,
formFlag: '7',
formId: res.data,
formName: '手术记录',
patientId: this.archiveCaseCRFItem.patientId,
patientName: this.archiveCaseCRFItem.patientName,
}, () => {
this.getInfo()
})
this.$emit('closeDialog')
}
}
this.exportPDF({
paperSize: 'A4', //
customOrientation: 'portrait', //
header: '100', //
customMargin: [25, 0, 0, 15], //
customElementId: 'printH5',
isTransform: 'scale(0.85)', //
// isHtml2canvas: true,
isCurrentPageLoad: false, // CA使loading
isPdfLoad: true,
caParams: caParams,
isJavaTransformPdf: false,
isHaveDoctorSign: true //
})
// -
// capdf--> ca-->
// jspdfpdf
// const caParams = {
// //
// fileName: '',
// //
// formFlag: '',
// // id
// formId: this.archiveCaseCRFItem.id,
// }
// this.exportPDF({
// paperSize: 'A4', //
// customOrientation: 'portrait', //
// header: '100', //
// customMargin: [25, 20, 0, 20], //
// customElementId: 'printH5',
// isTransform: 'scale(0.83)', //
// isCurrentPageLoad: false, // CA使loading
// isJavaTransformPdf: false, // javapdf
// caParams: caParams,
// isDataSign: true,
// })
}, 100)
} else {
// this.saveLoading.close()
this.$message.error(res.msg)
}
},
// table
returnName(obj) {
// console.log(obj)

246
src/components/H5form/operationed-check-record.vue

@ -350,11 +350,11 @@
<div v-if="scope.row.JMDXT.length>0" class="left">
<div class="width-60">
K2
<el-input v-model="formListValue.jmdxtK2Od" placeholder="" />
<el-input v-model="formListValue.jmdxtOd1" placeholder="" />
/
K1
<el-input v-model="formListValue.jmdxtK1Od1" placeholder="" />@
<el-input v-model="formListValue.jmdxtK1Od2" placeholder="" />
<el-input v-model="formListValue.jmdxtOd2" placeholder="" />@
<el-input v-model="formListValue.jmdxtOd3" placeholder="" />
</div>
</div>
<!-- 眼轴 -->
@ -386,6 +386,84 @@
<el-input v-model="formListValue.ampAdd" placeholder="" />D
</span>
</div>
<!-- 是否显示对比敏感度 -->
<div v-if="scope.row.isShowdbmgd.length>0"></div>
<!-- 对比敏感度暗 -->
<div v-if="scope.row.dbmgdAn.length>0" class="width-80 center">
<div>
<span class="padding-right-10">3c/d:
<el-input v-model="formListValue.dbmgdAn3cOd" placeholder="" />
</span>
<span class="padding-right-10">6c/d:
<el-input v-model="formListValue.dbmgdAn6cOd" placeholder="" />
</span>
</div>
<div>
<span class="padding-right-10">12c/d:
<el-input v-model="formListValue.dbmgdAn12cOd" placeholder="" />
</span>
<span class="padding-right-10">18c/d:
<el-input v-model="formListValue.dbmgdAn18cOd" placeholder="" />
</span>
</div>
</div>
<!-- 对比敏感度低眩 -->
<div v-if="scope.row.dbmgdDi.length>0" class="width-80 center">
<div>
<span class="padding-right-10">3c/d:
<el-input v-model="formListValue.dbmgdDi3cOd" placeholder="" />
</span>
<span class="padding-right-10">6c/d:
<el-input v-model="formListValue.dbmgdDi6cOd" placeholder="" />
</span>
</div>
<div>
<span class="padding-right-10">12c/d:
<el-input v-model="formListValue.dbmgdDi12cOd" placeholder="" />
</span>
<span class="padding-right-10">18c/d:
<el-input v-model="formListValue.dbmgdDi18cOd" placeholder="" />
</span>
</div>
</div>
<!-- 对比敏感度高眩 -->
<div v-if="scope.row.dbmgdGao.length>0" class="width-80 center">
<div>
<span class="padding-right-10">3c/d:
<el-input v-model="formListValue.dbmgdGao3cOd" placeholder="" />
</span>
<span class="padding-right-10">6c/d:
<el-input v-model="formListValue.dbmgdGao6cOd" placeholder="" />
</span>
</div>
<div>
<span class="padding-right-10">12c/d:
<el-input v-model="formListValue.dbmgdGao12cOd" placeholder="" />
</span>
<span class="padding-right-10">18c/d:
<el-input v-model="formListValue.dbmgdGao18cOd" placeholder="" />
</span>
</div>
</div>
<!-- 对比敏感度亮 -->
<div v-if="scope.row.dbmgdLiang.length>0" class="width-80 center">
<div>
<span class="padding-right-10">3c/d:
<el-input v-model="formListValue.dbmgdLiang3cOd" placeholder="" />
</span>
<span class="padding-right-10">6c/d:
<el-input v-model="formListValue.dbmgdLiang6cOd" placeholder="" />
</span>
</div>
<div>
<span class="padding-right-10">12c/d:
<el-input v-model="formListValue.dbmgdLiang12cOd" placeholder="" />
</span>
<span class="padding-right-10">18c/d:
<el-input v-model="formListValue.dbmgdLiang18cOd" placeholder="" />
</span>
</div>
</div>
<!-- UCVA -->
<div v-if="scope.row.UCVA.length>0" class="width-90 left">
<div>
@ -681,11 +759,11 @@
<div v-if="scope.row.JMDXT.length>0" class="left">
<div class="width-60">
K2
<el-input v-model="formListValue.jmdxtK2Os" placeholder="" />
<el-input v-model="formListValue.jmdxtOs1" placeholder="" />
/
K1
<el-input v-model="formListValue.jmdxtK1Os1" placeholder="" />@
<el-input v-model="formListValue.jmdxtK1Os2" placeholder="" />
<el-input v-model="formListValue.jmdxtOs2" placeholder="" />@
<el-input v-model="formListValue.jmdxtOs3" placeholder="" />
</div>
</div>
<!-- 眼轴 -->
@ -704,6 +782,82 @@
</div>
<!-- AMP -->
<div v-if="scope.row.amp.length>0" class="center" />
<!-- 对比敏感度暗 -->
<div v-if="scope.row.dbmgdAn.length>0" class="width-80 center">
<div>
<span class="padding-right-10">3c/d:
<el-input v-model="formListValue.dbmgdAn3cOs" placeholder="" />
</span>
<span class="padding-right-10">6c/d:
<el-input v-model="formListValue.dbmgdAn6cOs" placeholder="" />
</span>
</div>
<div>
<span class="padding-right-10">12c/d:
<el-input v-model="formListValue.dbmgdAn12cOs" placeholder="" />
</span>
<span class="padding-right-10">18c/d:
<el-input v-model="formListValue.dbmgdAn18cOs" placeholder="" />
</span>
</div>
</div>
<!-- 对比敏感度低眩 -->
<div v-if="scope.row.dbmgdDi.length>0" class="width-80 center">
<div>
<span class="padding-right-10">3c/d:
<el-input v-model="formListValue.dbmgdDi3cOs" placeholder="" />
</span>
<span class="padding-right-10">6c/d:
<el-input v-model="formListValue.dbmgdDi6cOs" placeholder="" />
</span>
</div>
<div>
<span class="padding-right-10">12c/d:
<el-input v-model="formListValue.dbmgdDi12cOs" placeholder="" />
</span>
<span class="padding-right-10">18c/d:
<el-input v-model="formListValue.dbmgdDi18cOs" placeholder="" />
</span>
</div>
</div>
<!-- 对比敏感度高眩 -->
<div v-if="scope.row.dbmgdGao.length>0" class="width-80 center">
<div>
<span class="padding-right-10">3c/d:
<el-input v-model="formListValue.dbmgdGao3cOs" placeholder="" />
</span>
<span class="padding-right-10">6c/d:
<el-input v-model="formListValue.dbmgdGao6cOs" placeholder="" />
</span>
</div>
<div>
<span class="padding-right-10">12c/d:
<el-input v-model="formListValue.dbmgdGao12cOs" placeholder="" />
</span>
<span class="padding-right-10">18c/d:
<el-input v-model="formListValue.dbmgdGao18cOs" placeholder="" />
</span>
</div>
</div>
<!-- 对比敏感度亮 -->
<div v-if="scope.row.dbmgdLiang.length>0" class="width-80 center">
<div>
<span class="padding-right-10">3c/d:
<el-input v-model="formListValue.dbmgdLiang3cOs" placeholder="" />
</span>
<span class="padding-right-10">6c/d:
<el-input v-model="formListValue.dbmgdLiang6cOs" placeholder="" />
</span>
</div>
<div>
<span class="padding-right-10">12c/d:
<el-input v-model="formListValue.dbmgdLiang12cOs" placeholder="" />
</span>
<span class="padding-right-10">18c/d:
<el-input v-model="formListValue.dbmgdLiang18cOs" placeholder="" />
</span>
</div>
</div>
<!-- 眼科检查 -->
<div v-if="scope.row.YKJC.length>0" class="YKJC"
:class="saveEidtTitle==='保存' ? 'el-select__input-edit' : 'el-select__input-save'">
@ -828,6 +982,8 @@ import h5formButton from '@/components/H5formOhter/h5formButton'
import operaCheckLook from '@/components/H5form/operaCheckLook'
import intoTemplate from '@/components/H5form/intoTemplate'
import operaCheckLookPdf from '@/components/H5form/operaCheckLookPdf'
import htmlToPdfToBlob from '@/mixins/htmlToPdfToBlob'
import yiXinQianSign from '@/mixins/yiXinQianSign.js'
export default {
components: {
imgEditor,
@ -837,7 +993,7 @@ export default {
intoTemplate,
operaCheckLookPdf
},
mixins: [operationedCheckRecordJS, base64Img, signGet, publicFile, refreshDate],
mixins: [operationedCheckRecordJS, base64Img, signGet, publicFile, refreshDate, htmlToPdfToBlob, yiXinQianSign],
props: {
archiveCaseCRFItem: {
type: Object,
@ -1005,12 +1161,12 @@ export default {
yyOs1: '',
yyOs2: '',
//
jmdxtK2Od: '',
jmdxtK1Od1: '',
jmdxtK1Od2: '',
jmdxtK2Os: '',
jmdxtK1Os1: '',
jmdxtK1Os2: '',
jmdxtOd1: '',
jmdxtOd2: '',
jmdxtOd3: '',
jmdxtOs1: '',
jmdxtOs2: '',
jmdxtOs3: '',
jmdxtDeviceName: '',
//
yzOd: '',
@ -1268,7 +1424,7 @@ export default {
})
if (res.code === 0) {
this.pinJieOperaName = res.data.ssOuOperaName + '、' + res.data.ssOuOperaBieM + '、' + res.data.ssOdOperaName + '、' + res.data.ssOdOperaBieM + '、' + res.data.ssOsOperaName + '、' + res.data.ssOsOperaBieM
this.rowShow()
this.rowShow(res.data)
this.$emit('load')
if (this.archiveCaseCRFItem.id === res.data.formId) {
res.data.ssOuOperaName ? this.setyyssfsList('ouList', res.data.ssOuOperaName) : ''
@ -1298,20 +1454,21 @@ export default {
this.rowShow()
},
//
rowShow() {
rowShow(resdata) {
let isShowdbmgd = resdata ? JSON.parse(resdata.isShowdbmgd) : this.formListValue.isShowdbmgd
let tableData = JSON.parse(JSON.stringify(this.tableData))
if (this.pinJieOperaName) {
if ((this.pinJieOperaName.includes('Presby MAX') || this.pinJieOperaName.includes('FS-LASIK+老视') || this.pinJieOperaName.includes('Smart+老视')) && this.formListValue.isShowdbmgd) {
if ((this.pinJieOperaName.includes('Presby MAX') || this.pinJieOperaName.includes('FS-LASIK+老视') || this.pinJieOperaName.includes('Smart+老视')) && isShowdbmgd) {
this.tableDataNew = this.tableData
} else if ((this.pinJieOperaName.includes('Presby MAX') || this.pinJieOperaName.includes('FS-LASIK+老视') || this.pinJieOperaName.includes('Smart+老视')) && !this.formListValue.isShowdbmgd) {
} else if ((this.pinJieOperaName.includes('Presby MAX') || this.pinJieOperaName.includes('FS-LASIK+老视') || this.pinJieOperaName.includes('Smart+老视')) && !isShowdbmgd) {
this.tableDataNew = tableData.filter(item => item.name !== 'dbmgdAn' && item.name !== 'dbmgdDi' && item.name !== 'dbmgdGao' && item.name !== 'dbmgdLiang')
} else if ((!this.pinJieOperaName.includes('Presby MAX') && !this.pinJieOperaName.includes('FS-LASIK+老视') && !this.pinJieOperaName.includes('Smart+老视')) && this.formListValue.isShowdbmgd) {
} else if ((!this.pinJieOperaName.includes('Presby MAX') && !this.pinJieOperaName.includes('FS-LASIK+老视') && !this.pinJieOperaName.includes('Smart+老视')) && isShowdbmgd) {
this.tableDataNew = tableData.filter(item => item.name !== 'UCVA' && item.name !== 'BSCVA')
} else {
this.tableDataNew = tableData.filter(item => item.name !== 'UCVA' && item.name !== 'BSCVA' && item.name !== 'dbmgdAn' && item.name !== 'dbmgdDi' && item.name !== 'dbmgdGao' && item.name !== 'dbmgdLiang')
}
} else {
if (this.formListValue.isShowdbmgd) {
if (isShowdbmgd) {
this.tableDataNew = tableData.filter(item => item.name !== 'UCVA' && item.name !== 'BSCVA')
} else {
this.tableDataNew = tableData.filter(item => item.name !== 'UCVA' && item.name !== 'BSCVA' && item.name !== 'dbmgdAn' && item.name !== 'dbmgdDi' && item.name !== 'dbmgdGao' && item.name !== 'dbmgdLiang')
@ -1454,12 +1611,45 @@ export default {
type: 'success'
})
this.getInfo()
// res.dataId
this.$refs.operaCheckLookPdf.init(res.data, 'savepdf')
} else {
this.$message.error(res.msg)
}
}
})
},
// ca
sureCa() {
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'
})
}
if ((this.formListValue.ssOuOperaBieM || this.formListValue.ssOdOperaBieM || this.formListValue.ssOsOperaBieM || this.formListValue.ssOuOperaName || this.formListValue.ssOdOperaName || this.formListValue.ssOsOperaName) &&
(this.formListValue.zsOperaDayOd || this.formListValue.zsOperaDayOs) && this.formListValue.zd && this.formListValue.clyj ||
(this.formListValue.zsTextOd || this.formListValue.zsTextOs)) {
// formFlag: 1:/() 2:3:/()4:,5:
// this.$refs.operaCheckLookPdf.init(this.formListValue.recordId, '2')
this.$confirmFun('CA确认将会把最新一次标准病历文书发送至ca签名,您是否确认继续此操作?', '您已取消CA确认').then(() => {
// this.$refs.blLookRefPdf.init(this.formListValue.recordId, 'sureCa')
if (this.caOpenStatus) {
this.batchDataCa({
doctorCode: userData.employeeId,
ids: [this.formListValue.formId], // formId
}, () => {
this.getInfo()
})
}
})
} else {
this.$message.error('标准病历文书内容不完善,请补全后再进行CA确认吧!')
}
},
// CA便
zsSplit(index) {
//
@ -1492,24 +1682,6 @@ export default {
this.zsTextOs = (dataObj.zsBsbcOs ? dataObj.zsBsbcOs : '') + (dataObj.zsWbsCheckOs === 'true' ? ',目前无不适' : zscheckTextOs.join('、'))
}
},
// ca
sureCa() {
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'
})
}
if ((this.formListValue.ssOuOperaBieM || this.formListValue.ssOdOperaBieM || this.formListValue.ssOsOperaBieM || this.formListValue.ssOuOperaName || this.formListValue.ssOdOperaName || this.formListValue.ssOsOperaName) &&
(this.formListValue.zsOperaDayOd || this.formListValue.zsOperaDayOs) && this.formListValue.zd && this.formListValue.clyj ||
(this.formListValue.zsTextOd || this.formListValue.zsTextOs)) {
// formFlag: 1:/() 2:3:/()4:,5:
this.$refs.operaCheckLookPdf.init(this.formListValue.recordId, '2')
} else {
this.$message.error('标准病历文书内容不完善,请补全后再进行CA确认吧!')
}
},
returnName(obj) {
// console.log(obj)
// rowIndex

7
src/components/H5form/payDemandNote.vue

@ -221,12 +221,13 @@ import signGet from '@/mixins/signGet'
import publicFile from '@/mixins/publicFile'
import h5formButton from '@/components/H5formOhter/h5formButton'
import htmlToPdfToBlob from '@/mixins/htmlToPdfToBlob'
import yiXinQianSign from '@/mixins/yiXinQianSign.js'
import { isIDNumber, isHuzhao } from '@/utils/validate'
export default {
components: {
h5formButton
},
mixins: [signGet, publicFile, htmlToPdfToBlob],
mixins: [signGet, publicFile, htmlToPdfToBlob, yiXinQianSign],
props: {
archiveCaseCRFItem: {
type: Object,
@ -261,7 +262,7 @@ export default {
return {
saveEidtTitle: '编辑',
formListValue: {
formName: '医疗收费知情同意书',
formName: '特需医疗服务患者知情同意书',
patientName: '',
patientId: '',
patientSex: '',
@ -520,7 +521,7 @@ export default {
const caParams = {
//
fileName: this.archiveCaseCRFItem.formName,
// 11
// 11
formFlag: 11,
// id
formId: this.archiveCaseCRFItem.id,

43
src/components/H5form/qg-dzbl.vue

@ -842,11 +842,11 @@
<div v-if="scope.row.jmdxt.length>0" class="left">
<div class="width-60">
K2
<el-input v-model="formListValue.jmdxtK2Od" placeholder="" />
<el-input v-model="formListValue.jmdxtOd1" placeholder="" />
/
K1
<el-input v-model="formListValue.jmdxtK1Od1" placeholder="" />@
<el-input v-model="formListValue.jmdxtK1Od2" placeholder="" />
<el-input v-model="formListValue.jmdxtOd2" placeholder="" />@
<el-input v-model="formListValue.jmdxtOd3" placeholder="" />
</div>
<div class="width-80">
ACD
@ -1287,11 +1287,11 @@
<div v-if="scope.row.jmdxt.length>0" class="left">
<div class="width-60">
K2
<el-input v-model="formListValue.jmdxtK2Os" placeholder="" />
<el-input v-model="formListValue.jmdxtOs1" placeholder="" />
/
K1
<el-input v-model="formListValue.jmdxtK1Os1" placeholder="" />@
<el-input v-model="formListValue.jmdxtK1Os2" placeholder="" />
<el-input v-model="formListValue.jmdxtOs2" placeholder="" />@
<el-input v-model="formListValue.jmdxtOs3" placeholder="" />
</div>
<div class="width-80">
ACD
@ -1976,6 +1976,8 @@ import dzblLook from '@/components/H5form/dzblLook'
import dzblLookPdf from '@/components/H5form/dzblLookPdf'
import intoTemplate from '@/components/H5form/intoTemplate'
import bldb from '@/components/H5formOhter/bldb'
import htmlToPdfToBlob from '@/mixins/htmlToPdfToBlob'
import yiXinQianSign from '@/mixins/yiXinQianSign.js'
export default {
components: {
imgEditor,
@ -1986,7 +1988,7 @@ export default {
bldb,
intoTemplate
},
mixins: [qgdzbl, base64Img, signGet, publicFile, refreshDate, clearContent],
mixins: [qgdzbl, base64Img, signGet, publicFile, refreshDate, clearContent, htmlToPdfToBlob, yiXinQianSign],
props: {
archiveCaseCRFItem: {
type: Object,
@ -2510,7 +2512,7 @@ export default {
},
created() {
// ca CA
this.getSendCaStatus(this.archiveCaseCRFItem.formName)
this.getSendCaStatus()
this.getOperaList()
},
mounted() {
@ -2557,7 +2559,7 @@ export default {
}
})
if (res.code === 0) {
this.rowShow()
this.rowShow(res.data)
this.$emit('load')
if (this.archiveCaseCRFItem.id === res.data.formId) {
Object.keys(res.data).forEach((item) => {
@ -2689,14 +2691,16 @@ export default {
//
checkDbmgd() {
console.log(this.formListValue.isShowdbmgd);
this.rowShow()
this.rowShow(this.formListValue)
},
//
rowShow(data) {
let tableData = JSON.parse(JSON.stringify(this.tableData))
if (this.formListValue.isShowdbmgd) {
if (data.isShowdbmgd) {
this.tableDataNew = this.tableData
console.log('行显示隐藏1');
} else {
console.log('行显示隐藏2');
this.tableDataNew = tableData.filter(item => item.name !== 'dbmgdAn' && item.name !== 'dbmgdDi' && item.name !== 'dbmgdGao' && item.name !== 'dbmgdLiang')
}
},
@ -2881,10 +2885,12 @@ export default {
// res.dataId
this.blRecordid = res.data
this.$message({
message: '表单已保存',
message: '您已保存成功',
type: 'success'
})
this.getInfo()
// res.dataId
this.$refs.blLookRefPdf.init(res.data, 'savepdf')
} else {
this.$message.error(res.msg)
}
@ -2901,7 +2907,18 @@ export default {
if ((this.archiveCaseCRFItem.formName.includes('复诊') && this.formListValue.zsandBs && this.formListValue.zd && this.formListValue.clyj) ||
!this.archiveCaseCRFItem.formName.includes('复诊') && (this.formListValue.jsEyetypeRadio || this.formListValue.jsTimeInput) && this.formListValue.zd && this.formListValue.clyj) {
this.$confirmFun('CA确认将会把最新一次标准病历文书发送至ca签名,您是否确认继续此操作?', '您已取消CA确认').then(() => {
this.$refs.blLookRefPdf.init(this.formListValue.recordId, '1')
// this.$refs.blLookRefPdf.init(this.formListValue.recordId, 'sureCa')
// caOpenStatus true CA
if (this.caOpenStatus) {
this.batchDataCa({
doctorCode: userData.employeeId,
ids: [this.formListValue.formId], // formId
}, () => {
this.getInfo()
})
}
})
} else {
this.$message.error('标准病历文书内容不完善,请补全后再进行CA确认吧!')

3
src/components/H5form/shouquanBook.vue

@ -385,13 +385,14 @@ import publicFile from '@/mixins/publicFile'
import h5formButton from '@/components/H5formOhter/h5formButton'
import { isIDNumber, isHuzhao } from '@/utils/validate'
import htmlToPdfToBlob from '@/mixins/htmlToPdfToBlob'
import yiXinQianSign from '@/mixins/yiXinQianSign.js'
import visitFile from '@/components/H5formOhter/visitFile'
export default {
components: {
h5formButton,
visitFile
},
mixins: [signGet, publicFile, htmlToPdfToBlob],
mixins: [signGet, publicFile, htmlToPdfToBlob, yiXinQianSign],
props: {
archiveCaseCRFItem: {
type: Object,

21
src/components/H5form/talk-record.vue

@ -28,7 +28,7 @@
margin: 0 0 30px 0;
text-align: center;
">
激光手术同意书
激光角膜屈光手术同意书
</p>
<el-form ref="formListValue" :model="formListValue" :disabled="saveEidtTitle === '编辑' ? true : false"
:rules="dataRule">
@ -453,6 +453,7 @@ import publicFile from '@/mixins/publicFile'
import h5formButton from '@/components/H5formOhter/h5formButton'
// import recordFile from '@/page-subspecialty/views/modules/seeDoctor/archives/record-file'
import htmlToPdfToBlob from '@/mixins/htmlToPdfToBlob'
import yiXinQianSign from '@/mixins/yiXinQianSign.js'
import { isIDNumber, isHuzhao } from '@/utils/validate'
import { Base64 } from 'js-base64'
export default {
@ -461,7 +462,7 @@ export default {
crfEditor
// recordFile
},
mixins: [signGet, publicFile, htmlToPdfToBlob],
mixins: [signGet, publicFile, htmlToPdfToBlob,yiXinQianSign],
props: {
archiveCaseCRFItem: {
type: Object,
@ -508,7 +509,7 @@ export default {
// id
formId: '',
//
formName: '激光手术同意书',
formName: '激光角膜屈光手术同意书',
//
formDate: '',
//
@ -655,7 +656,7 @@ export default {
}
},
destroyed() {
console.log('激光手术同意书destroyed')
console.log('激光角膜屈光手术同意书destroyed')
// this.$store.commit('clearSignDate', 'lhOperaRecord')
// this.$parent.deleteErmUpdating(this.archiveCaseCRFItem.id)
},
@ -885,12 +886,24 @@ export default {
message: '您已保存成功',
type: 'success'
})
this.statusHandle()
this.getSendCaStatus()
// this.$store.commit('clearSignDate', 'lhOperaRecord')
} else {
this.$message.error(res.msg)
}
},
// -4:-3:/-2:-1:
async statusHandle() {
const { data: res } = await this.$http.post('/quguang/pda/updateOperaStatus', {
operaId: this.formListValue.operaId,
status: -2
})
if (res.code === 0) {
} else {
this.$message.error(res.msg)
}
},
// CA
async getSendCaStatus() {
const { data: res } = await this.$http.get('/quguang/caSign/getSendCaStatus', {

24
src/components/hm-crf/index.vue

@ -177,19 +177,19 @@ export default {
},
mounted() {
// Cookies.set('qg-token', '9def6f4db676363e9f01990d56e62929')
this.$http.get(`/quguang/sys/table/dict/getList`, {
params: {
isCrf: 1
}
}).then(({ data: res }) => {
if (res.code === 0) {
const data = res.data
window.localStorage.setItem('dictField', JSON.stringify(data))
}
})
// this.$http.get(`/quguang/sys/table/dict/getList`, {
// params: {
// isCrf: 1
// }
// }).then(({ data: res }) => {
// if (res.code === 0) {
// const data = res.data
// window.localStorage.setItem('dictField', JSON.stringify(data))
// }
// })
this.$nextTick(() => {
})
// this.$nextTick(() => {
// })
},
methods: {
// => https://github.com/tinymce/tinymce-vue => All available events

4
src/components/item-select/display.vue

@ -124,8 +124,8 @@ export default {
this.options_kpi = window.SITE_CONFIG['dict_colSearch']
} else {
//
const { data: res } = await this.$http.get('/quguang/sys/table/dict/getList', { params: { type: 1 }})
this.options_kpi = res.data
// const { data: res } = await this.$http.get('/quguang/sys/table/dict/getList', { params: { type: 1 }})
// this.options_kpi = res.data
}
}
}

6
src/components/item-select/index.vue

@ -237,9 +237,9 @@ export default {
this.options_kpi = window.SITE_CONFIG['dict_colSearch']
} else {
//
this.$http.get('/quguang/sys/table/dict/getList', { params: { type: 1 }}).then(({ data: res }) => {
this.options_kpi = res.data
})
// this.$http.get('/quguang/sys/table/dict/getList', { params: { type: 1 }}).then(({ data: res }) => {
// this.options_kpi = res.data
// })
}
}
}

4
src/components/kpi-select/display.vue

@ -57,8 +57,8 @@ export default {
} else if (this.type === 2 && window.SITE_CONFIG.dict_colChart) {
this.options_kpi = window.SITE_CONFIG.dict_colChart
} else {
const { data: res } = await this.$http.get('/quguang/sys/table/dict/getList', { params: { type: this.type }})
this.options_kpi = res.data
// const { data: res } = await this.$http.get('/quguang/sys/table/dict/getList', { params: { type: this.type }})
// this.options_kpi = res.data
}
}
}

214
src/mixins/htmlToPdfToBlob.js

@ -2,7 +2,6 @@ import('@/assets/fonts/SimHei-normal')
import('@/assets/fonts/MicrosoftYaHeiBold-normal')
// import('@/assets/fonts/MicrosoftYaHei-normal')
import('@/assets/fonts/msyh-normal')
// import html2pdf from 'html2pdf.js'
// import jsPDF from 'jspdf'
// import html2canvas from 'html2canvas'
@ -13,10 +12,21 @@ export default {
base64Flag: false,
baseImg: '',
loading: null,
patientCaUploadParams: {},
signUsers: null
}
},
mounted() {
setTimeout(() => {
if (this.$el.querySelectorAll) {
// 查找所有 el-input 和 el-select 组件的 input 标签
const inputElements = this.$el.querySelectorAll('.el-input input, .el-select input, .el-checkbox .el-input .el-input__inner, .el-date-picker input, textarea');
// console.log('inputElements', inputElements);
// 批量设置样式
inputElements.forEach(input => {
input.style.fontFamily = 'msyh';
});
}
}, 1000);
},
methods: {
// url转base64可用图片
convertImageToBase64(url, text) {
@ -56,6 +66,7 @@ export default {
isHaveDoctorSign: true, // 是否有医生签名 有医生签字走医生签字接口,没有医生签字走调取患者平板签名接口
manyPatientSign: false, // 患者是否为多人签名
isJavaTransformPdf: true, // 是否java转换pdf
isDataSign: false, // 是否数据签
htmlBase: null, // 前端获取的HTML传给后端
marginStyle: '',
...customParam
@ -64,18 +75,14 @@ export default {
const elementName = customParams.customElementId ? customParams.customElementId : 'printA5'
// console.log('elementName', elementName)
const element = document.getElementById(elementName)
console.log('element', element)
console.log('ELEMENT', element.innerHTML);
customParams.isPdfLoad ? this.loading.close() : this.$emit('load')
console.log('customParam.isJavaTransformPdf',customParam.isJavaTransformPdf);
if (customParam.isJavaTransformPdf) {
this.$message('您提交的病历CA已异步处理,无需继续等待。')
console.log('后端转');
this.caSign('', customParam)
} else {
console.log('前端转',this.isJavaTransformPdf);
customParam.isHtml2canvas ? this.convertHtmlToImage(customParams, element) : this.jspdfFun(customParams, element)
}
// const styles = window.getComputedStyle(element)
},
// 转为可选的pdf
@ -113,7 +120,12 @@ export default {
const pdfBase64Split = pdfBase64.split(',')
console.log(pdfBase64Split)
// substring(6)
customParams.isHaveDoctorSign ? this.caSign(pdfBase64Split[1], customParams) : this.padPatientSign(pdfBase64Split[1], customParams)
if (customParams.isDataSign) {
// 如果是数据签的其他表单走前端转pdf并上传
this.uploadFormPdf(pdfBase64Split[1])
} else {
customParams.isHaveDoctorSign ? this.caSign(pdfBase64Split[1], customParams) : this.padPatientSign(pdfBase64Split[1], customParams)
}
// pdf.save(123 + '.pdf')
},
margin: [15, 15],
@ -209,164 +221,6 @@ export default {
}
})
},
// 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])
})
// // 自定义按钮
// const h = this.$createElement
// const confirmButtonText = '定位患者'
// const cancelButtonText = '取消'
// const customButtonText = '重新提交'
// this.$confirm('这是一条消息', '提示', {
// confirmButtonText,
// cancelButtonText,
// // 使用message属性来自定义MessageBox的内容
// message: h('p', null, [
// h('span', null, `${resParse[0].patientName}患者CA签失败,${resParse[1]},您是否重新提交此患者CA签?`),
// h('el-button', {
// props: {
// size: 'small',
// type: 'warning'
// },
// on: {
// click: () => {
// // 点击“重新提交”按钮的逻辑
// this.caSign('', '', resParse[0])
// }
// }
// }, customButtonText)
// ])
// }).then((res) => {
// console.log(res)
// if (res === 'confirm') {
// console.log(444444444444)
// const currentPathName = this.$router.currentRoute.name
// console.log('currentPathName', currentPathName === 'surgicalManagement-operationList')
// if (currentPathName === 'surgicalManagement-operationList') {
// // this.dataForm.patientId = resParse[0].patientId
// } else {
// // this.$router.push({
// // name: 'surgicalManagement-operationList',
// // params: {
// // patientId: resParse[0].patientId,
// // patientIdNumber: resParse[0].patientIdNumber
// // }
// // })
// }
// }
// }).catch(() => {
// })
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
})
},
// formFlag: 1:屈光电子病历/屈光电子病历(复诊) 2:术后检查记录表,3:角膜交联病历/角膜交联病历(复诊),4:角膜交联术后检查记录单,5:复诊病历
uploadPdf(formData) {
console.log('-----------')
@ -387,6 +241,30 @@ export default {
this.$message.error(res.msg)
}
})
}
},
// html转pdf 后端接口
async html2Pdf(customParams, callback) {
const { data: res } = await this.$http.post('/quguang/caSign/html2Pdf', {
htmlBase: customParams.htmlBase ? customParams.htmlBase : '',
marginStyle: customParams.marginStyle || '',
pageSize: customParams.paperSize ? customParams.paperSize : 'A5', // 页面大小:A4
})
if (res.code === 0) {
callback ? callback() : ''
} else {
this.$message.error(res.msg)
}
},
// 前端转pdf后传给后端
async uploadFormPdf(pdfBase) {
const { data: res } = await this.$http.post('/quguang/caSign/uploadFormPdf', {
pdfBase: pdfBase,
})
if (res.code === 0) {
} else {
this.$message.error(res.msg)
}
},
}
}

12
src/mixins/operationPlan.js

@ -20,7 +20,7 @@ export default {
// 医生签字
doctorSign: '',
// 患者签字
patientorDlrSign:'',
patientOrDlrSign:'',
}, {
name: '预留屈光度',
nameClass: 'ylqgd',
@ -39,7 +39,7 @@ export default {
// 医生签字
doctorSign: '',
// 患者签字
patientorDlrSign:'',
patientOrDlrSign:'',
}, {
name: '预期矫正度数',
nameClass: 'yqjzds',
@ -58,7 +58,7 @@ export default {
// 医生签字
doctorSign: '',
// 患者签字
patientorDlrSign:'',
patientOrDlrSign:'',
}, {
name: '手术方式',
nameClass: 'ssfs',
@ -77,7 +77,7 @@ export default {
// 医生签字
doctorSign: '',
// 患者签字
patientorDlrSign:'',
patientOrDlrSign:'',
}, {
name: '其他',
nameClass: 'qt',
@ -96,7 +96,7 @@ export default {
// 医生签字
doctorSign: '',
// 患者签字
patientorDlrSign:'',
patientOrDlrSign:'',
}, {
name: '备注',
nameClass: 'bz',
@ -115,7 +115,7 @@ export default {
// 医生签字
doctorSign: '',
// 患者签字
patientorDlrSign:'',
patientOrDlrSign:'',
}],
otherList: [{
name: 'Visumax'

39
src/mixins/publicFile.js

@ -13,8 +13,6 @@ export default {
mrzYrEye: '',
signText: '',
dateText: '',
// ca开启状态
caOpenStatus: false
}
},
methods: {
@ -248,43 +246,6 @@ export default {
closeblInfoDrawer() {
this.blDataVisible = false
},
// 是否开启了CA认证表单状态
async getSendCaStatus() {
const { data: res } = await this.$http.get('/quguang/caSign/getSendCaStatus', {
params: {
name: this.archiveCaseCRFItem.formName
}
})
if (res.code === 0) {
this.caOpenStatus = res.data !== 0
} else {
this.$message.error(res.msg)
}
},
// 取消ca
async cancelCa() {
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 = '编辑'
},
// 获取上次保存时间--防止同时编辑表单导致的表单覆盖情况
async getUpSaveTime(url, params) {
const { data: res } = await this.$http.get(url, {

36
src/mixins/signGet.js

@ -4,27 +4,26 @@ export default {
}
},
methods: {
// 获取授权签字-通过当前登录人的token判断当前人有没有被授权
async getZdDoctorSign(zdSign, date, zdCode, zdName) {
async getZdDoctorSign(sign, date, code, name) {
const loading = this.$loading({
lock: true,
text: '获取中请稍等',
spinner: 'el-icon-loading',
background: 'rgba(255, 255, 255, 0.7)'
})
console.log('this.operaId',this.operaId);
console.log('this.archiveCaseCRFItem.operaId',this.archiveCaseCRFItem.operaId);
console.log('this.operaId', this.operaId);
console.log('this.archiveCaseCRFItem.operaId', this.archiveCaseCRFItem.operaId);
const { data: res } = await this.$http.get('/quguang/sys/doctor/empower/getMainDoctorSign', {
params: {
operaPatientId: this.operaId ? this.operaId : this.archiveCaseCRFItem.operaId
}
})
if (res.code === 0) {
console.log('获取授权签字ca已开启');
loading.close()
date ? this.formListValue[date] = this.$moment().format('YYYY-MM-DD') : ''
this.formListValue[zdSign] = res.data.signImgBase
this.formListValue[zdCode] = res.data.employeeId
this.formListValue[zdName] = res.data.realName
this.getCaUserSignImg(sign, date, code, name, res.data)
} else {
this.$message.error(res.msg)
loading.close()
@ -34,11 +33,24 @@ export default {
getSystomSign(sign, date, code, name) {
console.log(date)
const userData = JSON.parse(window.localStorage.getItem('qg-userData'))
sign ? this.formListValue[sign] = userData.signImgBase : ''
name ? this.formListValue[name] = userData.realName : ''
code ? this.formListValue[code] = userData.employeeId : '' // 工号
date ? this.formListValue[date] = this.$moment().format('YYYY-MM-DD HH:mm') : ''
this.getCaUserSignImg(sign, date, code, name, userData)
},
// 获取ca签名图片
async getCaUserSignImg(sign, date, code, name, resData) {
console.log('8888888888');
const { data: res } = await this.$http.get('/quguang/caSign/getCaUserSignImg', {
params: {
userId: resData.employeeId
}
})
if (res.code === 0) {
date ? this.formListValue[date] = this.$moment().format('YYYY-MM-DD') : ''
sign ? this.formListValue[sign] = res.data.signImgBase : ''
code ? this.formListValue[code] = res.data.employeeId : ''
name ? this.formListValue[name] = res.data.realName : ''
} else {
this.$message.error(res.msg)
}
},
// 手术记录获取系统签字--技师
getSystomSign1(beforeJsSign, beforeJsCode, beforeJsName, centerJsSign, centerJsCode, centerJsName, backJsSign, backJsCode, backJsName) {

194
src/mixins/yiXinQianSign.js

@ -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 = '编辑'
},
}
}

8
src/page-subspecialty/router/index.js

@ -157,7 +157,7 @@ export function addDynamicRoute(routeParams, router) {
const createRouter = () => new Router({
mode: 'history',
// base: process.env.NODE_ENV === 'production' ? process.env.VUE_APP_BASE_HOUZHUI : '/', // 公司内部环境打开--浏览器基础路径
base: process.env.NODE_ENV === 'production' ? process.env.VUE_APP_BASE_HOUZHUI : '/', // 公司内部环境打开--浏览器基础路径
scrollBehavior: () => ({ y: 0 }),
routes: pageRoutes.concat(moduleRoutes)
})
@ -228,9 +228,9 @@ router.beforeEach((to, from, next) => {
return next({ name: 'login' })
})
// 获取【字段字典表】, 添加并全局变量保存
http.get('/quguang/sys/table/dict/getList', { params: { type: 1 }}).then(({ data: res }) => {
window.SITE_CONFIG['dict_colSearch'] = res.data
})
// http.get('/quguang/sys/table/dict/getList', { params: { type: 1 }}).then(({ data: res }) => {
// window.SITE_CONFIG['dict_colSearch'] = res.data
// })
}
})

100
src/page-subspecialty/views/modules/seeDoctor/archives/index.vue

@ -114,7 +114,7 @@
</div>
<div class="content-right-CRF">
<div class="printFather">
<!-- :style="{width:archiveCaseCRFItem.formName==='激光手术同意书' ? '900px' : '900px'}" -->
<!-- :style="{width:archiveCaseCRFItem.formName==='激光角膜屈光手术同意书' ? '900px' : '900px'}" -->
<div v-if="archiveCaseCRFItem.formName">
<!-- 屈光手术心理评估表 -->
<before-operation-question
@ -172,21 +172,6 @@
:current-url="currentUrl"
@load="loading=false"
/>
<jmjl-dzbl
v-if="(archiveCaseCRFItem.formName.includes('角膜交联病历')) && formFlag===0"
ref="jmjlDzblRef"
:patient-inifo-h5="patientInifoH5"
page-title="档案"
:save-eidt-title="saveEidtTitle"
:patient-id="patientId"
:archive-case-c-r-f-item="archiveCaseCRFItem"
:patient-info-obj="patientInfoObj"
:user-data="userData"
:role-list="roleList"
:position-name="positionName"
:current-url="currentUrl"
@load="loading=false"
/>
<fzbl
v-if="archiveCaseCRFItem.formName==='门诊病历' && formFlag===0"
ref="fzblRef"
@ -275,22 +260,8 @@
:current-url="currentUrl"
@load="loading=false"
/>
<jmjlOperaCheckRecord
v-if="archiveCaseCRFItem.formName==='角膜交联术后检查记录单'&& formFlag===0"
ref="jmjlOperaCheckRecordRef"
page-title="档案"
:save-eidt-title="saveEidtTitle"
:patient-id="patientId"
:archive-case-c-r-f-item="archiveCaseCRFItem"
:patient-info-obj="patientInfoObj"
:user-data="userData"
:role-list="roleList"
:position-name="positionName"
:current-url="currentUrl"
@load="loading=false"
/>
<talkRecord
v-if="archiveCaseCRFItem.formName==='激光手术同意书'&& formFlag===0"
v-if="archiveCaseCRFItem.formName==='激光角膜屈光手术同意书'&& formFlag===0"
ref="talkRecordRef"
:patient-inifo-h5="patientInifoH5"
page-title="档案"
@ -334,51 +305,6 @@
:current-url="currentUrl"
@load="loading=false"
/>
<lhoperaConsentBook
v-if="archiveCaseCRFItem.formName==='联合手术同意书'&& formFlag===0"
ref="lhoperaConsentBookRef"
:patient-inifo-h5="patientInifoH5"
page-title="档案"
:save-eidt-title="saveEidtTitle"
:patient-id="patientId"
:archive-case-c-r-f-item="archiveCaseCRFItem"
:patient-info-obj="patientInfoObj"
:user-data="userData"
:role-list="roleList"
:position-name="positionName"
:current-url="currentUrl"
@load="loading=false"
/>
<noticeBook
v-if="archiveCaseCRFItem.formName==='告知书'&& formFlag===0"
ref="noticeBookRef"
:patient-inifo-h5="patientInifoH5"
page-title="档案"
:save-eidt-title="saveEidtTitle"
:patient-id="patientId"
:archive-case-c-r-f-item="archiveCaseCRFItem"
:patient-info-obj="patientInfoObj"
:user-data="userData"
:role-list="roleList"
:position-name="positionName"
:current-url="currentUrl"
@load="loading=false"
/>
<consentBook
v-if="archiveCaseCRFItem.formName==='基因检测同意书'&& formFlag===0"
ref="consentBookRef"
:patient-inifo-h5="patientInifoH5"
page-title="档案"
:save-eidt-title="saveEidtTitle"
:patient-id="patientId"
:archive-case-c-r-f-item="archiveCaseCRFItem"
:patient-info-obj="patientInfoObj"
:user-data="userData"
:role-list="roleList"
:position-name="positionName"
:current-url="currentUrl"
@load="loading=false"
/>
<shouquanBook
v-if="archiveCaseCRFItem.formName==='告知书/授权书'&& formFlag===0"
ref="shouquanBookRef"
@ -458,17 +384,12 @@ import safetyChecklist from '@/components/H5form/safety-checklist.vue'
import operationNursingRecord from '@/components/H5form/operation-nursing-record'
import operationPlan from '@/components/H5form/operation-plan'
import operationedCheckRecord from '@/components/H5form/operationed-check-record'
import jmjlOperaCheckRecord from '@/components/H5form/jmjl-opera-check-record'
import qgDzbl from '@/components/H5form/qg-dzbl'
import jmjlDzbl from '@/components/H5form/jmjl-dzbl'
import fzbl from '@/components/H5form/fzbl'
import operationRecord from '@/components/H5form/operation-record'
import talkRecord from '@/components/H5form/talk-record'
import consenBookZfzJgzl from '@/components/H5form/consent-book-zfz-jgzl.vue'
import consentBookJmjl from '@/components/H5form/consent-book-jmjl.vue'
import lhoperaConsentBook from '@/components/H5form/lhopera-consent-book'
import noticeBook from '@/components/H5form/notice-book'
import consentBook from '@/components/H5form/consent-book'
import shouquanBook from '@/components/H5form/shouquanBook'
import payDemandNote from '@/components/H5form/payDemandNote'
import signNSV from '@/mixins/sign-NSV'
@ -479,20 +400,15 @@ export default {
qgyj,
beforeOperationQuestion,
qgDzbl,
jmjlDzbl,
safetyChecklist,
operationNursingRecord,
operationPlan,
operationedCheckRecord,
jmjlOperaCheckRecord,
operationRecord,
fzbl,
talkRecord,
consenBookZfzJgzl,
consentBookJmjl,
lhoperaConsentBook,
noticeBook,
consentBook,
shouquanBook,
payDemandNote
},
@ -665,8 +581,6 @@ export default {
console.log(this.dataForm.formName)
if (this.dataForm.formName.includes('屈光电子病历')) {
this.$refs.qgdzbldRef.init()
} else if (this.dataForm.formName.includes('角膜交联病历')) {
this.$refs.jmjlDzblRef.init()
} else if (this.dataForm.formName === '门诊病历') {
console.log(this.$refs.fzblRef)
this.$refs.fzblRef.init()
@ -678,24 +592,16 @@ export default {
this.$refs.operationRecordRef.init()
} else if (this.dataForm.formName === '术后检查记录表') {
this.$refs.operationedCheckRecordRef.init()
} else if (this.dataForm.formName === '角膜交联术后检查记录单') {
this.$refs.jmjlOperaCheckRecordRef.init()
} else if (this.dataForm.formName.includes('手术安全核查表')) {
this.$refs.safetyChecklistRef.init()
} else if (this.dataForm.formName.includes('手术护理记录单')) {
this.$refs.operationNursingRecordRef.init()
} else if (this.dataForm.formName === '激光手术同意书') {
} else if (this.dataForm.formName === '激光角膜屈光手术同意书') {
this.$refs.talkRecordRef.init()
} else if (this.dataForm.formName === '准分子激光治疗性角膜切削术同意书') {
this.$refs.consenBookZfzJgzlRef.init()
} else if (this.dataForm.formName === '角膜交联术治疗同意书') {
this.$refs.consentBookJmjlRef.init()
} else if (this.dataForm.formName === '联合手术同意书') {
this.$refs.lhoperaConsentBookRef.init()
} else if (this.dataForm.formName === '告知书') {
this.$refs.noticeBookRef.init()
} else if (this.dataForm.formName === '基因检测同意书') {
this.$refs.consentBookRef.init()
} else if (this.dataForm.formName === '告知书/授权书') {
this.$refs.shouquanBookRef.init()
} else if (this.dataForm.formName === '特需医疗服务患者知情同意书') {

661
src/page-subspecialty/views/modules/surgicalManagement/operationList/index copy.vue

@ -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:12
},
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>

233
src/page-subspecialty/views/modules/surgicalManagement/operationList/index.vue

@ -4,76 +4,33 @@
<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-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-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-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 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-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-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>
@ -83,15 +40,8 @@
</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 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>
@ -102,29 +52,13 @@
<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"
>
<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"
>
<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>
@ -140,20 +74,30 @@
</template>
</el-table-column>
<!-- 缴费状态 0:未缴费1:已缴费 -->
<el-table-column label="缴费状态" prop="operaMoney" header-align="center" align="center">
<el-table-column label="缴费金额" prop="operaMoney" header-align="center" align="center">
<template slot-scope="scope">
<span>{{ scope.row.operaMoney}}</span>
</template>
</el-table-column>
<el-table-column
label="手术状态"
sortable="OS.STATUS"
prop="status"
header-align="center"
align="center"
>
<el-table-column label="手术状态" sortable="OS.STATUS" prop="status" header-align="center" align="center">
<template slot-scope="scope">
<!-- 0:等待呼叫1:呼叫中2:术前准备3:手术中4手术完成 -->
<!-- // 4:-3:/-2:-1:0:1:2:3:4 -->
<div v-show="scope.row.status == -4">
<span class="circle-status circle-blue" />
<span>等待签到</span>
</div>
<div v-show="scope.row.status == -3">
<span class="circle-status circle-blue" />
<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 == -1">
<span class="circle-status circle-blue" />
<span>等待谈话</span>
</div>
<div v-show="scope.row.status == 0">
<span class="circle-status circle-blue" />
<span>等待呼叫</span>
@ -176,15 +120,17 @@
</div>
</template>
</el-table-column>
<el-table-column prop="operation" label="操作" header-align="center" align="center" width="180px">
<el-table-column prop="operation" label="操作" header-align="center" align="center" width="220px">
<template slot-scope="scope">
<!-- -4:等待签到-3:等待验光/等待谈话-2:等待验光-1:等待谈话 -->
<span
v-show="scope.row.status===-4 && scope.row.syncStatus===1 && today === $options.filters.dateFilterTwo( scope.row.operaDate )"
class="call" @click="signHandle(scope.row)">签到</span>
<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>
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">
@ -210,31 +156,14 @@
</template>
</el-table-column>
</el-table>
<el-pagination
background
layout="total,prev, pager, next"
:total="total"
:current-page.sync="page"
@current-change="pageCurrentChangeHandle"
/>
<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"
>
<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>
@ -249,12 +178,8 @@
<el-button type="primary" @click="sureCancleHandle"> </el-button>
</div>
</el-dialog>
<hotPrint
v-if="hotPrintVisible"
ref="hotPrintRef"
:patient-info-obj="currentPatientInfo"
@closeDialog="hotPrintVisible = false"
/>
<hotPrint v-if="hotPrintVisible" ref="hotPrintRef" :patient-info-obj="currentPatientInfo"
@closeDialog="hotPrintVisible = false" />
</div>
</template>
<script>
@ -273,7 +198,7 @@ export default {
dialogForm,
hotPrint
},
mixins: [mixinViewModule,websocket,tableAutoHeight, htmlToPdfToBlob],
mixins: [mixinViewModule, websocket, tableAutoHeight, htmlToPdfToBlob],
data() {
return {
mixinViewModuleOptions: {
@ -306,8 +231,20 @@ export default {
}],
doctorList: [],
copyDoctorList: [],
// 0:1:2:3:4
// -4:-3:/-2:-1:0:1:2:3:4
statusList: [{
status: -4,
name: '等待签到'
},{
status: -3,
name: '等待验光/等待谈话'
},{
status: -2,
name: '等待验光'
}, {
status: -1,
name: '等待谈话'
}, {
status: 0,
name: '等待呼叫'
}, {
@ -337,10 +274,10 @@ export default {
operaStatus: ''
}
},
watch: {
watch: {
$route(val) {
//
console.log('routerVal',val);
console.log('routerVal', val);
}
},
created() {
@ -470,8 +407,8 @@ export default {
},
// --
async backOperaStatus(scopeRow) {
const {data:res} = await this.$http.post('/quguang/pda/backOperaStatus',{
operaId:scopeRow.id
const { data: res } = await this.$http.post('/quguang/pda/backOperaStatus', {
operaId: scopeRow.id
})
if (res.code === 0) {
this.$message({
@ -557,6 +494,26 @@ export default {
this.$message.error(res.msg)
}
},
//
// -4:-3:/-2:-1:
async signHandle(scopeRow) {
let newStatus = scopeRow.status + 1
console.log('newstatus',newStatus);
const { data: res } = await this.$http.post('/quguang/pda/updateOperaStatus', {
operaId: scopeRow.id,
status: newStatus
})
if(res.code === 0) {
this.$message({
message: '签到成功',
type: 'success',
onClose: () => {
}
})
} else {
this.$message.error(res.msg)
}
},
//
async callHandle(scopeRow) {
const { data: res } = await this.$http.get(`/quguang/his/opera/schedule/callPatient/${scopeRow.id}`)
@ -625,8 +582,7 @@ export default {
.scheduled-patient {
.boldColumn {
font-weight: 700;
color: #000;
color: #000;
}
.scheduled-patient-head {
.el-form {
@ -649,8 +605,9 @@ export default {
width: 100%;
}
.form-item-date {
.el-input__inner ,.el-form-item__content{
width: 160px !important;
.el-input__inner,
.el-form-item__content {
width: 160px !important;
}
.el-date-editor--date {
width: 160px !important;

186
src/page-subspecialty/views/modules/surgicalManagement/operationOrder/scheduled-tab-1.vue

@ -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>

495
src/page-subspecialty/views/modules/systemManagement/formSet/index copy.vue

@ -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>

4
src/page-subspecialty/views/modules/systemManagement/formSet/index.vue

@ -4,7 +4,7 @@
<el-tab-pane label="手术记录" name="手术记录">
<operaRecordSet ref="operaRecordSetRef" :page-title="pageTitle" @yinruMrzClick="yinruMrzClick" />
</el-tab-pane>
<el-tab-pane v-if="pageTitle==='表单设置'" label="医疗收费知情同意书" name="医疗收费知情同意书">
<el-tab-pane v-if="pageTitle==='表单设置'" label="特需医疗服务患者知情同意书" name="特需医疗服务患者知情同意书">
<payDemandNoteSet />
</el-tab-pane>
</el-tabs>
@ -72,7 +72,7 @@ export default {
display: flex;
}
.el-tabs--left .el-tabs__header.is-left {
width: 175px !important;
width: 240px !important;
}
.el-tabs--left .el-tabs__item.is-left {
text-align: left;

2
vue.config.js

@ -14,7 +14,7 @@ function resolve(dir) {
module.exports = {
parallel: false,
publicPath: '/', // 其他正式环境
// publicPath: process.env.NODE_ENV === 'production' ? process.env.VUE_APP_BASE_HOUZHUI : '/', //公司内部环境
publicPath: process.env.NODE_ENV === 'production' ? process.env.VUE_APP_BASE_HOUZHUI : '/', //公司内部环境
assetsDir: 'static',
chainWebpack: config => {
const svgRule = config.module.rule('svg')

Loading…
Cancel
Save