|
|
@ -1,12 +1,15 @@ |
|
|
|
<template> |
|
|
|
<template> |
|
|
|
<div class="ptint-revserve"> |
|
|
|
<div class="ptint-reserve"> |
|
|
|
<nav-header></nav-header> |
|
|
|
<select-patient-date :show-code="false" |
|
|
|
|
|
|
|
:days="0" |
|
|
|
|
|
|
|
:show-navbar="false" |
|
|
|
|
|
|
|
:show-date="false"></select-patient-date> |
|
|
|
<div style="margin: 5px;"> |
|
|
|
<div style="margin: 5px;"> |
|
|
|
<van-form ref="formRef" |
|
|
|
<van-form ref="formRef" |
|
|
|
error-message-align="right"> |
|
|
|
error-message-align="right"> |
|
|
|
<van-cell-group title="" |
|
|
|
<van-cell-group title="" |
|
|
|
insert> |
|
|
|
insert> |
|
|
|
<van-field v-model="form.ispID" |
|
|
|
<van-field v-model="form.ipsID" |
|
|
|
label="住院号" |
|
|
|
label="住院号" |
|
|
|
is-link |
|
|
|
is-link |
|
|
|
readonly |
|
|
|
readonly |
|
|
@ -26,11 +29,11 @@ |
|
|
|
placeholder="选择住院记录"></van-field> |
|
|
|
placeholder="选择住院记录"></van-field> |
|
|
|
<van-field v-model="form.deptName" |
|
|
|
<van-field v-model="form.deptName" |
|
|
|
label="出院科室" |
|
|
|
label="出院科室" |
|
|
|
readonly |
|
|
|
|
|
|
|
required |
|
|
|
required |
|
|
|
placeholder="选择住院记录"></van-field> |
|
|
|
placeholder="选择住院记录"></van-field> |
|
|
|
<van-field v-model="form.ptIdcID" |
|
|
|
<van-field v-model="form.showCardNo" |
|
|
|
required |
|
|
|
required |
|
|
|
|
|
|
|
readonly |
|
|
|
label="身份证" |
|
|
|
label="身份证" |
|
|
|
placeholder="身份证号" |
|
|
|
placeholder="身份证号" |
|
|
|
:rules="[{required: true, message: '请输入身份证号', trigger: 'onSubmit'}]"></van-field> |
|
|
|
:rules="[{required: true, message: '请输入身份证号', trigger: 'onSubmit'}]"></van-field> |
|
|
@ -66,17 +69,27 @@ |
|
|
|
placeholder="邮寄地址" |
|
|
|
placeholder="邮寄地址" |
|
|
|
:rules="[{required: true, message: '请输入邮寄地址', trigger: 'onSubmit'}]"></van-field> |
|
|
|
:rules="[{required: true, message: '请输入邮寄地址', trigger: 'onSubmit'}]"></van-field> |
|
|
|
<van-field v-model="form.useWay" |
|
|
|
<van-field v-model="form.useWay" |
|
|
|
label="模板"></van-field> |
|
|
|
readonly |
|
|
|
|
|
|
|
required |
|
|
|
|
|
|
|
is-link |
|
|
|
|
|
|
|
label="用途" |
|
|
|
|
|
|
|
placeholder="点击选择翻拍用途" |
|
|
|
|
|
|
|
@click="state.templateShow = true"></van-field> |
|
|
|
</van-cell-group> |
|
|
|
</van-cell-group> |
|
|
|
<van-cell-group title="" |
|
|
|
<van-cell-group title="" |
|
|
|
insert |
|
|
|
insert |
|
|
|
style="margin-top: 5px;"> |
|
|
|
style="margin-top: 5px;"> |
|
|
|
<div class="img_item"> |
|
|
|
<div class="img_item"> |
|
|
|
<div class="img_item_label"><span style="color: red;">*</span>本人身份证正面照片</div> |
|
|
|
<div class="img_item_label"> |
|
|
|
|
|
|
|
<section> |
|
|
|
|
|
|
|
<span style="color: red;">*</span>本人身份证正面照片 |
|
|
|
|
|
|
|
</section> |
|
|
|
|
|
|
|
</div> |
|
|
|
<div class="img_item_upload"> |
|
|
|
<div class="img_item_upload"> |
|
|
|
<van-uploader v-model="form.ptImg1" |
|
|
|
<van-uploader v-model="state.img.ptImg1" |
|
|
|
style="width: 100%;height: 100%;" |
|
|
|
style="width: 100%;height: 100%;" |
|
|
|
:max-count="1"> |
|
|
|
:max-count="1" |
|
|
|
|
|
|
|
:after-read="(file) => afterRead(file, 'ptImg1')"> |
|
|
|
<div style="height: 100%;display: flex;flex-direction: column;align-items: center;justify-content: center;"> |
|
|
|
<div style="height: 100%;display: flex;flex-direction: column;align-items: center;justify-content: center;"> |
|
|
|
<svg t="1685244688694" |
|
|
|
<svg t="1685244688694" |
|
|
|
class="icon" |
|
|
|
class="icon" |
|
|
@ -99,11 +112,16 @@ |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
|
|
|
|
|
|
|
|
<div class="img_item"> |
|
|
|
<div class="img_item"> |
|
|
|
<div class="img_item_label"><span style="color: red;">*</span>本人身份证背面照片</div> |
|
|
|
<div class="img_item_label"> |
|
|
|
|
|
|
|
<section> |
|
|
|
|
|
|
|
<span style="color: red;">*</span>本人身份证背面照片 |
|
|
|
|
|
|
|
</section> |
|
|
|
|
|
|
|
</div> |
|
|
|
<div class="img_item_upload"> |
|
|
|
<div class="img_item_upload"> |
|
|
|
<van-uploader v-model="form.ptImg2" |
|
|
|
<van-uploader v-model="state.img.ptImg2" |
|
|
|
style="width: 100%;height: 100%;" |
|
|
|
style="width: 100%;height: 100%;" |
|
|
|
:max-count="1"> |
|
|
|
:max-count="1" |
|
|
|
|
|
|
|
:after-read="(file) => afterRead(file, 'ptImg2')"> |
|
|
|
<div style="height: 100%;display: flex;flex-direction: column;align-items: center;justify-content: center;"> |
|
|
|
<div style="height: 100%;display: flex;flex-direction: column;align-items: center;justify-content: center;"> |
|
|
|
<svg t="1685244916978" |
|
|
|
<svg t="1685244916978" |
|
|
|
class="icon" |
|
|
|
class="icon" |
|
|
@ -124,13 +142,14 @@ |
|
|
|
<div v-if="state.imgBlankError.ptImg2" |
|
|
|
<div v-if="state.imgBlankError.ptImg2" |
|
|
|
class="img__blank_error">请上传本人身份证背面照片</div> |
|
|
|
class="img__blank_error">请上传本人身份证背面照片</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<!-- |
|
|
|
|
|
|
|
<div class="img_item"> |
|
|
|
<!-- <div class="img_item"> |
|
|
|
<div class="img_item_label"><span style="color: red;">*</span>申请人身份证正面照片</div> |
|
|
|
<div class="img_item_label"><span style="color: red;">*</span>申请人身份证正面照片</div> |
|
|
|
<div class="img_item_upload"> |
|
|
|
<div class="img_item_upload"> |
|
|
|
<van-uploader v-model="form.applicantIdcImg1" |
|
|
|
<van-uploader v-model="state.img.applicantIdcImg1" |
|
|
|
style="width: 100%;height: 100%;" |
|
|
|
style="width: 100%;height: 100%;" |
|
|
|
:max-count="1"> |
|
|
|
:max-count="1" |
|
|
|
|
|
|
|
:after-read="(file) => afterRead(file, 'applicantIdcImg1')"> |
|
|
|
<div style="height: 100%;display: flex;flex-direction: column;align-items: center;justify-content: center;"> |
|
|
|
<div style="height: 100%;display: flex;flex-direction: column;align-items: center;justify-content: center;"> |
|
|
|
<svg t="1685244688694" |
|
|
|
<svg t="1685244688694" |
|
|
|
class="icon" |
|
|
|
class="icon" |
|
|
@ -155,9 +174,10 @@ |
|
|
|
<div class="img_item"> |
|
|
|
<div class="img_item"> |
|
|
|
<div class="img_item_label"><span style="color: red;">*</span>申请人身份证背面照片</div> |
|
|
|
<div class="img_item_label"><span style="color: red;">*</span>申请人身份证背面照片</div> |
|
|
|
<div class="img_item_upload"> |
|
|
|
<div class="img_item_upload"> |
|
|
|
<van-uploader v-model="form.applicantIdcImg2" |
|
|
|
<van-uploader v-model="state.img.applicantIdcImg2" |
|
|
|
style="width: 100%;height: 100%;" |
|
|
|
style="width: 100%;height: 100%;" |
|
|
|
:max-count="1"> |
|
|
|
:max-count="1" |
|
|
|
|
|
|
|
:after-read="(file) => afterRead(file, 'applicantIdcImg2')"> |
|
|
|
<div style="height: 100%; display: flex;flex-direction: column;align-items: center;justify-content: center;"> |
|
|
|
<div style="height: 100%; display: flex;flex-direction: column;align-items: center;justify-content: center;"> |
|
|
|
<svg t="1685244916978" |
|
|
|
<svg t="1685244916978" |
|
|
|
class="icon" |
|
|
|
class="icon" |
|
|
@ -180,11 +200,56 @@ |
|
|
|
</div> --> |
|
|
|
</div> --> |
|
|
|
|
|
|
|
|
|
|
|
<div class="img_item"> |
|
|
|
<div class="img_item"> |
|
|
|
<div class="img_item_label"><span style="color: red;">*</span>申请书照片</div> |
|
|
|
<div class="img_item_label"> |
|
|
|
|
|
|
|
<section style="width: 60px;"> |
|
|
|
|
|
|
|
<span style="color: red;">*</span>住院证 |
|
|
|
|
|
|
|
</section> |
|
|
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
<div class="img_item_upload"> |
|
|
|
|
|
|
|
<van-uploader v-model="state.img.applyImg" |
|
|
|
|
|
|
|
style="width: 100%;height: 100%;" |
|
|
|
|
|
|
|
:max-count="1" |
|
|
|
|
|
|
|
:after-read="(file) => afterRead(file, 'applyImg')"> |
|
|
|
|
|
|
|
<div style="height: 100%; display: flex;flex-direction: column;align-items: center;justify-content: center;"> |
|
|
|
|
|
|
|
<svg t="1686896283841" |
|
|
|
|
|
|
|
class="icon" |
|
|
|
|
|
|
|
viewBox="0 0 1024 1024" |
|
|
|
|
|
|
|
version="1.1" |
|
|
|
|
|
|
|
xmlns="http://www.w3.org/2000/svg" |
|
|
|
|
|
|
|
p-id="4962" |
|
|
|
|
|
|
|
width="64" |
|
|
|
|
|
|
|
height="64"> |
|
|
|
|
|
|
|
<path d="M230.4 364.8z m38.4-32c22.4 0 41.6-19.2 41.6-41.6V179.2c0-22.4-19.2-41.6-41.6-41.6-22.4 0-41.6 19.2-41.6 41.6v112c3.2 22.4 19.2 41.6 41.6 41.6zM928 265.6c-3.2-57.6-48-48-48-48h-32v96s-6.4 48-48 48h-80c-41.6 0-48-48-48-48v-96h-310.4v96s-6.4 48-48 48H230.4c-41.6 0-48-48-48-48v-96h-32s-44.8-9.6-48 48v560c0 57.6 57.6 57.6 57.6 57.6h713.6s57.6 0 57.6-57.6V268.8s-3.2 0-3.2-3.2zM515.2 764.8c0 44.8-83.2 54.4-160 54.4S192 809.6 192 764.8v-12.8c0-32 57.6-64 105.6-83.2 3.2 0 19.2-9.6 9.6-35.2-25.6-25.6-41.6-64-41.6-105.6 0-60.8 38.4-92.8 86.4-92.8s86.4 32 86.4 92.8c0 38.4-19.2 80-41.6 105.6-9.6 28.8 6.4 35.2 6.4 35.2 51.2 16 108.8 48 108.8 83.2 3.2 3.2 3.2 12.8 3.2 12.8z m291.2-12.8h-163.2c-22.4 0-41.6-19.2-41.6-41.6 0-22.4 19.2-41.6 41.6-41.6h163.2c22.4 0 41.6 19.2 41.6 41.6 0 25.6-19.2 41.6-41.6 41.6z m0-160h-163.2c-22.4 0-41.6-19.2-41.6-41.6 0-22.4 19.2-41.6 41.6-41.6h163.2c22.4 0 41.6 19.2 41.6 41.6s-19.2 41.6-41.6 41.6z m-6.4-227.2z m-41.6-32c22.4 0 41.6-19.2 41.6-41.6V179.2c0-22.4-19.2-41.6-41.6-41.6-22.4 0-41.6 19.2-41.6 41.6v112c0 22.4 19.2 41.6 41.6 41.6z" |
|
|
|
|
|
|
|
fill="#dbdbdb" |
|
|
|
|
|
|
|
p-id="4963"></path> |
|
|
|
|
|
|
|
</svg> |
|
|
|
|
|
|
|
<span>点击选择照片或拍照</span> |
|
|
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
</van-uploader> |
|
|
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
<div v-if="state.imgBlankError.applyImg" |
|
|
|
|
|
|
|
class="img__blank_error">请上传住院证照片</div> |
|
|
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<!-- <div class="img_item"> |
|
|
|
|
|
|
|
<div class="img_item_label"> |
|
|
|
|
|
|
|
<section> |
|
|
|
|
|
|
|
<span style="color: red;">*</span>申请书照片 |
|
|
|
|
|
|
|
</section> |
|
|
|
|
|
|
|
<div style="width: calc(100% - 80px);display: flex;flex-direction: row;justify-content: flex-end;flex-wrap: nowrap;font-size: 13px;"> |
|
|
|
|
|
|
|
<div style="margin-right: 10px;"> |
|
|
|
|
|
|
|
<a href="" |
|
|
|
|
|
|
|
style="color: var(--color-primary);border-bottom: 1px solid var(--color-primary);">下载模板</a> |
|
|
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
<div style="background-color: var(--color-primary);width: 45px;line-height: 24px;text-align: center;border-radius: 4px;color: #fff;" |
|
|
|
|
|
|
|
@click.stop="onExample">示例</div> |
|
|
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
</div> |
|
|
|
<div class="img_item_upload"> |
|
|
|
<div class="img_item_upload"> |
|
|
|
<van-uploader v-model="form.agreementLetterImg" |
|
|
|
<van-uploader v-model="state.img.agreementLetterImg" |
|
|
|
style="width: 100%;height: 100%;" |
|
|
|
style="width: 100%;height: 100%;" |
|
|
|
:max-count="1"> |
|
|
|
:max-count="1" |
|
|
|
|
|
|
|
:after-read="(file) => afterRead(file, 'agreementLetterImg')"> |
|
|
|
<div style="height: 100%; display: flex;flex-direction: column;align-items: center;justify-content: center;"> |
|
|
|
<div style="height: 100%; display: flex;flex-direction: column;align-items: center;justify-content: center;"> |
|
|
|
<svg t="1685250803648" |
|
|
|
<svg t="1685250803648" |
|
|
|
class="icon" |
|
|
|
class="icon" |
|
|
@ -210,7 +275,7 @@ |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<div v-if="state.imgBlankError.agreementLetterImg" |
|
|
|
<div v-if="state.imgBlankError.agreementLetterImg" |
|
|
|
class="img__blank_error">请上传申请书照片</div> |
|
|
|
class="img__blank_error">请上传申请书照片</div> |
|
|
|
</div> |
|
|
|
</div> --> |
|
|
|
</van-cell-group> |
|
|
|
</van-cell-group> |
|
|
|
<div class="footer"> |
|
|
|
<div class="footer"> |
|
|
|
<van-button type="primary" |
|
|
|
<van-button type="primary" |
|
|
@ -248,19 +313,16 @@ |
|
|
|
<div class="treat_cont"> |
|
|
|
<div class="treat_cont"> |
|
|
|
<template v-if="state.treatRecord.length > 0"> |
|
|
|
<template v-if="state.treatRecord.length > 0"> |
|
|
|
<section v-for="item in state.treatRecord" |
|
|
|
<section v-for="item in state.treatRecord" |
|
|
|
:key="item.mzNum"> |
|
|
|
:key="item.ipsId"> |
|
|
|
<div class="cont_item" |
|
|
|
<div class="cont_item" |
|
|
|
:class="[treat.mzNum === item.mzNum ? 'border_click' : 'border_default']" |
|
|
|
:class="[state.currTreat.ipsId === item.ipsId ? 'border_click' : 'border_default']" |
|
|
|
@click="onClickTreat(item)"> |
|
|
|
@click="state.currTreat = item"> |
|
|
|
<div><span>时  间:</span><span>{{ item.registerDate }}</span></div> |
|
|
|
<div><span>患者姓名:</span><span>{{ item.ptName }}  {{ item.ptId }}</span></div> |
|
|
|
<div><span>患者姓名:</span><span>{{ item.patientName }}  {{ item.patientId }}</span></div> |
|
|
|
<div><span>住院编号:</span><span>{{ item.ipsId }}</span></div> |
|
|
|
<div><span>住院编号:</span><span>{{ item.mzNum }}</span></div> |
|
|
|
<div><span>出院科室:</span><span>{{ item.deptName }}</span></div> |
|
|
|
<div><span>主  诉:</span><span>{{ item.complaint }}</span></div> |
|
|
|
<div><span>诊  断:</span><span>{{ item.dx }}</span></div> |
|
|
|
<div><span>医生姓名:</span><span>{{ item.doctName }}</span></div> |
|
|
|
|
|
|
|
<div><span>西医诊断:</span><span>{{ item.diagnose }}</span></div> |
|
|
|
|
|
|
|
<div><span>中医诊断:</span><span>{{ item.diagnoseZY }}</span></div> |
|
|
|
|
|
|
|
<div class="item_checked" |
|
|
|
<div class="item_checked" |
|
|
|
v-if="treat.mzNum === item.mzNum"> |
|
|
|
v-if="state.currTreat.ipsId === item.ipsId"> |
|
|
|
<van-icon name="passed" |
|
|
|
<van-icon name="passed" |
|
|
|
color="var(--color-primary)" |
|
|
|
color="var(--color-primary)" |
|
|
|
size="20" /> |
|
|
|
size="20" /> |
|
|
@ -274,17 +336,38 @@ |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</van-popup> |
|
|
|
</van-popup> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<!-- 模板 --> |
|
|
|
|
|
|
|
<van-popup v-model:show="state.templateShow" |
|
|
|
|
|
|
|
round |
|
|
|
|
|
|
|
lock-scroll |
|
|
|
|
|
|
|
position="bottom"> |
|
|
|
|
|
|
|
<!-- :columns-field-names="{text: 'templatename'}" --> |
|
|
|
|
|
|
|
<van-picker title="用 途" |
|
|
|
|
|
|
|
:columns="state.templateList" |
|
|
|
|
|
|
|
value-key="templateno" |
|
|
|
|
|
|
|
@confirm="onTemplateConfirm" |
|
|
|
|
|
|
|
@cancel="state.templateShow = false"> |
|
|
|
|
|
|
|
<template #option="option"> |
|
|
|
|
|
|
|
<div style="margin: 5px 0;overflow: hidden"> |
|
|
|
|
|
|
|
<div style="text-align: center;padding:8px 0 0;">{{ option.Borrow_UseTo_Name }}</div> |
|
|
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
</template> |
|
|
|
|
|
|
|
</van-picker> |
|
|
|
|
|
|
|
</van-popup> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</template> |
|
|
|
</template> |
|
|
|
|
|
|
|
|
|
|
|
<script> |
|
|
|
<script> |
|
|
|
import { reactive, ref } from 'vue'; |
|
|
|
import { reactive, ref, watch } from 'vue'; |
|
|
|
import { useRoute, useRouter } from 'vue-router'; |
|
|
|
import { useRoute, useRouter } from 'vue-router'; |
|
|
|
import { axios } from 'axios' |
|
|
|
import { axios } from 'axios' |
|
|
|
|
|
|
|
import { store } from 'vue-helper' |
|
|
|
|
|
|
|
import ImageUtil from '@/utils/image-util.mjs' |
|
|
|
export default { |
|
|
|
export default { |
|
|
|
name: 'ptint-revserve', |
|
|
|
name: 'ptint-reserve', |
|
|
|
component: { |
|
|
|
components: { |
|
|
|
'nav-header': VueConfig.vueLoader('@/components/tab-router.vue') |
|
|
|
'select-patient-date': VueConfig.vueLoader('@/components/patient/select-patient-date.vue') |
|
|
|
}, |
|
|
|
}, |
|
|
|
setup(props, context) { |
|
|
|
setup(props, context) { |
|
|
|
const route = useRoute(); |
|
|
|
const route = useRoute(); |
|
|
@ -299,9 +382,6 @@ export default { |
|
|
|
}, { |
|
|
|
}, { |
|
|
|
code: '1', |
|
|
|
code: '1', |
|
|
|
label: '邮寄' |
|
|
|
label: '邮寄' |
|
|
|
}, { |
|
|
|
|
|
|
|
code: '2', |
|
|
|
|
|
|
|
label: '电子版' |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
], |
|
|
|
], |
|
|
|
getWayColumnFieldName: { // 获取方式列明 |
|
|
|
getWayColumnFieldName: { // 获取方式列明 |
|
|
@ -309,16 +389,29 @@ export default { |
|
|
|
}, |
|
|
|
}, |
|
|
|
ispShow: false, // 住院记录弹框 |
|
|
|
ispShow: false, // 住院记录弹框 |
|
|
|
treatRecord: [], // 住院记录 |
|
|
|
treatRecord: [], // 住院记录 |
|
|
|
|
|
|
|
currTreat: '', // 当前选中的住院记录 |
|
|
|
imgBlankError: { // 照片 |
|
|
|
imgBlankError: { // 照片 |
|
|
|
ptImg1: false, |
|
|
|
ptImg1: false, |
|
|
|
ptImg2: false, |
|
|
|
ptImg2: false, |
|
|
|
applicantIdcImg1: false, |
|
|
|
// applicantIdcImg1: false, |
|
|
|
applicantIdcImg2: false, |
|
|
|
// applicantIdcImg2: false, |
|
|
|
agreementLetterImg: false |
|
|
|
// agreementLetterImg: false |
|
|
|
} |
|
|
|
applyImg: false |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
img: { |
|
|
|
|
|
|
|
ptImg1: [], // 本人身份证正面照片 |
|
|
|
|
|
|
|
ptImg2: [], // 本人身份证背面照片 |
|
|
|
|
|
|
|
applicantIdcImg1: [], // 申请人身份证正面照片 |
|
|
|
|
|
|
|
applicantIdcImg2: [], // 申请人身份证背面照片 |
|
|
|
|
|
|
|
agreementLetterImg: [], // 申请书照片 |
|
|
|
|
|
|
|
applyImg: [], // 住院证明照片 |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
templateShow: false, // 模板弹框 |
|
|
|
|
|
|
|
templateList: [], // 模板列表 |
|
|
|
}) |
|
|
|
}) |
|
|
|
const form = reactive({ |
|
|
|
|
|
|
|
ispID: '', // 住院号 |
|
|
|
const creatForm = () => ({ |
|
|
|
|
|
|
|
ipsID: '', // 住院号 |
|
|
|
dx: '', // 诊断名称 |
|
|
|
dx: '', // 诊断名称 |
|
|
|
ptId: '', // 病人ID |
|
|
|
ptId: '', // 病人ID |
|
|
|
ptName: '', // 病人姓名 |
|
|
|
ptName: '', // 病人姓名 |
|
|
@ -329,37 +422,34 @@ export default { |
|
|
|
applicantName: '', // 委托代理人姓名 |
|
|
|
applicantName: '', // 委托代理人姓名 |
|
|
|
applicantRel: '', // 申请人与病人关系 |
|
|
|
applicantRel: '', // 申请人与病人关系 |
|
|
|
applicantRelId: '', // 申请人与病人关系代码 |
|
|
|
applicantRelId: '', // 申请人与病人关系代码 |
|
|
|
ptImg1: [], // 本人身份证正面照片 |
|
|
|
ptImg1: '', // 本人身份证正面照片 |
|
|
|
ptImg2: [], // 本人身份证背面照片 |
|
|
|
ptImg2: '', // 本人身份证背面照片 |
|
|
|
applicantIdcImg1: [], // 申请人身份证正面照片 |
|
|
|
applicantIdcImg1: '', // 申请人身份证正面照片 |
|
|
|
applicantIdcImg2: [], // 申请人身份证背面照片 |
|
|
|
applicantIdcImg2: '', // 申请人身份证背面照片 |
|
|
|
agreementLetterImg: [], // 申请书照片 |
|
|
|
agreementLetterImg: '', // 申请书照片 |
|
|
|
useWay: '', // 模板 (templateName) |
|
|
|
useWay: '', // 模板 (templateName) |
|
|
|
useWayId: '', // 模板id (templateNo) |
|
|
|
useWayId: '', // 模板id (templateNo) |
|
|
|
getWay: '', // 获取方式:0.自提 1.邮寄 2.电子版 |
|
|
|
getWay: '', // 获取方式:0.自提 1.邮寄 2.电子版 |
|
|
|
address: '' // 邮寄的地址 |
|
|
|
address: '', // 邮寄的地址 |
|
|
|
|
|
|
|
applyImg: '', // 住院证明照片 |
|
|
|
|
|
|
|
showCardNo: '', // 加密身份证号码 |
|
|
|
}) |
|
|
|
}) |
|
|
|
|
|
|
|
const form = reactive(creatForm()) |
|
|
|
|
|
|
|
|
|
|
|
const formLabel = reactive({ |
|
|
|
const formLabel = reactive({ |
|
|
|
getWayLabel: '' |
|
|
|
getWayLabel: '' |
|
|
|
}) |
|
|
|
}) |
|
|
|
|
|
|
|
|
|
|
|
function getMedicalRecordList(){ |
|
|
|
|
|
|
|
axios.post('/wx/xbd/getMedicalRecordList',{patientId: patientId}).then((resp) => { |
|
|
|
|
|
|
|
console.log(resp) |
|
|
|
|
|
|
|
}) |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
/** |
|
|
|
* 判断照片是否上传 |
|
|
|
* 判断照片是否上传 |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
function isImgBlank() { |
|
|
|
function isImgBlank() { |
|
|
|
let checked = 0 |
|
|
|
let checked = 0 |
|
|
|
Object.keys(state.imgBlankError).forEach(key => { |
|
|
|
Object.keys(state.imgBlankError).forEach(key => { |
|
|
|
if (form[key].length === 0) { |
|
|
|
if (form[key] === '') { |
|
|
|
checked++ |
|
|
|
checked++ |
|
|
|
state.imgBlankError[key] = true |
|
|
|
state.imgBlankError[key] = true |
|
|
|
} else if (form[key].length > 0 && state.imgBlankError[key]) { |
|
|
|
} else if (form[key] !== '' && state.imgBlankError[key]) { |
|
|
|
state.imgBlankError[key] = false |
|
|
|
state.imgBlankError[key] = false |
|
|
|
} |
|
|
|
} |
|
|
|
}) |
|
|
|
}) |
|
|
@ -370,6 +460,8 @@ export default { |
|
|
|
* 提交预约 |
|
|
|
* 提交预约 |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
function onSubmit() { |
|
|
|
function onSubmit() { |
|
|
|
|
|
|
|
patient.value = store.getters.getPatient |
|
|
|
|
|
|
|
if (!patient.value || (patient.value && !patient.value.patientId)) return vant.Toast.fail('参数缺失,无法查询住院记录!') |
|
|
|
formRef.value.validate().then(() => { |
|
|
|
formRef.value.validate().then(() => { |
|
|
|
if (isImgBlank()) { |
|
|
|
if (isImgBlank()) { |
|
|
|
return vant.Toast.fail('提交内容出现错误,请检查!') |
|
|
|
return vant.Toast.fail('提交内容出现错误,请检查!') |
|
|
@ -378,8 +470,21 @@ export default { |
|
|
|
title: '提示', |
|
|
|
title: '提示', |
|
|
|
message: '确定提交打印预约申请?' |
|
|
|
message: '确定提交打印预约申请?' |
|
|
|
}).then(() => { |
|
|
|
}).then(() => { |
|
|
|
// /wx/xbd/addMRReserve |
|
|
|
const params = { |
|
|
|
axios.post('/wx/xbd/addMRReserve', JSON.stringify(form)).then(response => { |
|
|
|
openId: patient.value.openid, |
|
|
|
|
|
|
|
patientId: patient.value.patientId, |
|
|
|
|
|
|
|
zyNum: form.ipsID, |
|
|
|
|
|
|
|
applyName: form.ptName, |
|
|
|
|
|
|
|
useToNo: form.useWayId, |
|
|
|
|
|
|
|
useToName: form.useWay, |
|
|
|
|
|
|
|
getWay: form.getWay, |
|
|
|
|
|
|
|
address: form.address, |
|
|
|
|
|
|
|
phone: form.phone, |
|
|
|
|
|
|
|
ptImg1: form.ptImg1, |
|
|
|
|
|
|
|
ptImg2: form.ptImg2, |
|
|
|
|
|
|
|
applyImg: form.applyImg |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
axios.post('/wx/xbd/addMRReserve', params).then(response => { |
|
|
|
if (response.code === 200) { |
|
|
|
if (response.code === 200) { |
|
|
|
vant.Toast.success('预约成功') |
|
|
|
vant.Toast.success('预约成功') |
|
|
|
} |
|
|
|
} |
|
|
@ -397,7 +502,6 @@ export default { |
|
|
|
* @param {Object} value 获取方式 |
|
|
|
* @param {Object} value 获取方式 |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
function onGetWayConfirm(value) { |
|
|
|
function onGetWayConfirm(value) { |
|
|
|
console.log(value) |
|
|
|
|
|
|
|
form.getWay = value.code |
|
|
|
form.getWay = value.code |
|
|
|
formLabel.getWayLabel = value.label |
|
|
|
formLabel.getWayLabel = value.label |
|
|
|
state.getWayShow = false |
|
|
|
state.getWayShow = false |
|
|
@ -407,8 +511,84 @@ export default { |
|
|
|
* 选择住院记录 |
|
|
|
* 选择住院记录 |
|
|
|
* @param {Object} value 住院记录 |
|
|
|
* @param {Object} value 住院记录 |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
function onIspConfirm(value) { |
|
|
|
function onIspConfirm() { |
|
|
|
|
|
|
|
state.ispShow = false |
|
|
|
|
|
|
|
if (state.currTreat) { |
|
|
|
|
|
|
|
form.ipsID = state.currTreat.ipsId |
|
|
|
|
|
|
|
form.ipsID = state.currTreat.ipsId |
|
|
|
|
|
|
|
form.dx = state.currTreat.dx |
|
|
|
|
|
|
|
form.ptId = state.currTreat.ptId |
|
|
|
|
|
|
|
form.ptName = state.currTreat.ptName |
|
|
|
|
|
|
|
form.deptID = state.currTreat.deptId |
|
|
|
|
|
|
|
form.deptName = state.currTreat.deptName |
|
|
|
|
|
|
|
form.ptIdcID = patient.value.idCardNo |
|
|
|
|
|
|
|
form.showCardNo = patient.value.showCardNo |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const patient = ref(null) |
|
|
|
|
|
|
|
/** |
|
|
|
|
|
|
|
* 获取住院记录 |
|
|
|
|
|
|
|
*/ |
|
|
|
|
|
|
|
function getMedicalRecordList() { |
|
|
|
|
|
|
|
patient.value = store.getters.getPatient |
|
|
|
|
|
|
|
const idCard = patient.value.idCardNo |
|
|
|
|
|
|
|
patient.value.showCardNo = idCard.length === 18 ? idCard.substring(0, 3) + '********' + idCard.substring(idCard.length - 4) : idCard |
|
|
|
|
|
|
|
if (!patient.value || (patient.value && !patient.value.patientId)) return vant.Toast.fail('患者参数缺失,无法查询住院记录!') |
|
|
|
|
|
|
|
axios.RGet('wx/xbd/getMedicalRecordList', { |
|
|
|
|
|
|
|
patientId: patient.value.patientId |
|
|
|
|
|
|
|
}).then(response => { |
|
|
|
|
|
|
|
if (response.code === 200) { |
|
|
|
|
|
|
|
state.treatRecord = response.data |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
}) |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
getMedicalRecordList() |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
|
|
|
* 图片压缩、赋值 |
|
|
|
|
|
|
|
* @param {File} file 图片 |
|
|
|
|
|
|
|
* @param {*} state 参数名 |
|
|
|
|
|
|
|
*/ |
|
|
|
|
|
|
|
function afterRead(file, state) { |
|
|
|
|
|
|
|
ImageUtil.compressBySize(file.file, { isQuality: true }).then(res => { |
|
|
|
|
|
|
|
form[state] = res.base64.includes(',') ? res.base64.split(',')[1] : '' |
|
|
|
|
|
|
|
}).catch(error => { |
|
|
|
|
|
|
|
console.log('error', error) |
|
|
|
|
|
|
|
}) |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
watch(() => state.ispShow, (newVal) => { |
|
|
|
|
|
|
|
if (newVal && !form.ipsID) { |
|
|
|
|
|
|
|
state.currTreat = '' |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
}) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
watch(() => store.getters.getPatient, () => { |
|
|
|
|
|
|
|
getMedicalRecordList() |
|
|
|
|
|
|
|
Object.assign(form, creatForm()) |
|
|
|
|
|
|
|
}) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
|
|
|
* 获取模板 |
|
|
|
|
|
|
|
*/ |
|
|
|
|
|
|
|
function getTemplates() { |
|
|
|
|
|
|
|
axios.RGet('wx/xbd/getMRTemplateList').then(response => { |
|
|
|
|
|
|
|
if (response.code === 200) { |
|
|
|
|
|
|
|
state.templateList = response.data |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
}) |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
getTemplates() |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function onTemplateConfirm(value) { |
|
|
|
|
|
|
|
state.templateShow = false |
|
|
|
|
|
|
|
form.useWayId = value.Borrow_UseTo_No |
|
|
|
|
|
|
|
form.useWay = value.Borrow_UseTo_Name |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function onExample() { |
|
|
|
|
|
|
|
console.log('look example') |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
return { |
|
|
|
return { |
|
|
@ -419,13 +599,15 @@ export default { |
|
|
|
onSubmit, |
|
|
|
onSubmit, |
|
|
|
onGetWayConfirm, |
|
|
|
onGetWayConfirm, |
|
|
|
onIspConfirm, |
|
|
|
onIspConfirm, |
|
|
|
getMedicalRecordList |
|
|
|
afterRead, |
|
|
|
|
|
|
|
onTemplateConfirm, |
|
|
|
|
|
|
|
onExample |
|
|
|
} |
|
|
|
} |
|
|
|
}, |
|
|
|
}, |
|
|
|
} |
|
|
|
} |
|
|
|
</script> |
|
|
|
</script> |
|
|
|
<style scoped> |
|
|
|
<style scoped> |
|
|
|
.ptint-revserve { |
|
|
|
.ptint-reserve { |
|
|
|
} |
|
|
|
} |
|
|
|
.img_item { |
|
|
|
.img_item { |
|
|
|
border-bottom: 1px solid var(--border-c); |
|
|
|
border-bottom: 1px solid var(--border-c); |
|
|
@ -434,6 +616,10 @@ export default { |
|
|
|
line-height: 25px; |
|
|
|
line-height: 25px; |
|
|
|
padding: 5px 16px; |
|
|
|
padding: 5px 16px; |
|
|
|
color: #646566; |
|
|
|
color: #646566; |
|
|
|
|
|
|
|
display: flex; |
|
|
|
|
|
|
|
flex-direction: row; |
|
|
|
|
|
|
|
justify-content: space-between; |
|
|
|
|
|
|
|
align-items: center; |
|
|
|
} |
|
|
|
} |
|
|
|
.img_item_upload { |
|
|
|
.img_item_upload { |
|
|
|
height: 150px; |
|
|
|
height: 150px; |
|
|
@ -466,7 +652,7 @@ export default { |
|
|
|
text-align: right; |
|
|
|
text-align: right; |
|
|
|
padding: 0px 10px 5px; |
|
|
|
padding: 0px 10px 5px; |
|
|
|
} |
|
|
|
} |
|
|
|
.ptint-revserve >>> .van-field__control { |
|
|
|
.ptint-reserve >>> .van-field__control { |
|
|
|
text-align: right; |
|
|
|
text-align: right; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
@ -520,8 +706,11 @@ export default { |
|
|
|
overflow: hidden; |
|
|
|
overflow: hidden; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.cont_item div { |
|
|
|
|
|
|
|
padding: 3px 0px; |
|
|
|
|
|
|
|
} |
|
|
|
.cont_item div span:nth-child(1) { |
|
|
|
.cont_item div span:nth-child(1) { |
|
|
|
color: var(--text-b); |
|
|
|
color: var(--text-c); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.cont_item div span:nth-child(2) { |
|
|
|
.cont_item div span:nth-child(2) { |
|
|
@ -547,4 +736,8 @@ export default { |
|
|
|
.treat_filed >>> .van-field__control { |
|
|
|
.treat_filed >>> .van-field__control { |
|
|
|
text-align: right; |
|
|
|
text-align: right; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.ptint-reserve >>> .van-popup .van-picker .van-picker-column__item { |
|
|
|
|
|
|
|
/* height: 50px !important; */ |
|
|
|
|
|
|
|
} |
|
|
|
</style> |
|
|
|
</style> |