Commit b39b20a5 by nlp97

no message

parent e43de15e
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* @Author: ninglupeng * @Author: ninglupeng
* @Date: 2020-11-24 16:18:58 * @Date: 2020-11-24 16:18:58
* @LastEditors: ninglupeng * @LastEditors: ninglupeng
* @LastEditTime: 2022-10-31 15:05:09 * @LastEditTime: 2022-11-01 10:07:10
* @Description: * @Description:
--> -->
<template> <template>
...@@ -44,31 +44,36 @@ ...@@ -44,31 +44,36 @@
:placeholder="$t('agreementFloor')" :rules="[{ required: true, message: `请填写${$t('agreementFloor')}` }]" :placeholder="$t('agreementFloor')" :rules="[{ required: true, message: `请填写${$t('agreementFloor')}` }]"
@blur="setLocalStorge('agreementFloor')"></van-field> @blur="setLocalStorge('agreementFloor')"></van-field>
<van-field colon clearable v-model="bedNumber" name="bedNumber" label="床号" placeholder="床号" <van-field colon clearable v-model="bedNumber" name="bedNumber" :label="$t('bedNumber')"
@blur="setLocalStorge('bedNumber')" :rules="[{ required: true, message: '请填写床号' }]"></van-field> :placeholder="`${$t('bedNumber')}`" @blur="setLocalStorge('bedNumber')"
:rules="[{ required: true, message: `请填写${$t('bedNumber')}` }]"></van-field>
<van-field colon clearable v-model="agreementSign" name="agreementSign" label="患者签字" placeholder="患者签字" readonly <van-field colon clearable v-model="agreementSign" name="agreementSign" :label="$t('agreementSign')"
:rules="[{ required: true, message: '请患者签字' }]"> :placeholder="$t('agreementSign')" readonly
:rules="[{ required: true, message: `请{${$t('agreementSign')}}` }]">
<template #input> <template #input>
<img class="Signimg" v-show="agreementSign" :src="agreementSign" alt="" <img class="Signimg" v-show="agreementSign" :src="agreementSign" alt=""
:style="{ width: agreementSign ? '70%' : '' }" /> :style="{ width: agreementSign ? '70%' : '' }" />
<van-button size="small" @click="showSignHandleVue = true" block type="primary" native-type="button" <van-button size="small" @click="showSignHandleVue = true" block type="primary" native-type="button"
:style="{ width: !agreementSign ? '50%' : '30%' }">{{ agreementSign ? "重签" : "点击签字" }}</van-button> :style="{ width: !agreementSign ? '50%' : '30%' }">{{ agreementSign ? `${$t('countersign')}` :
`${$t('clickSign')}`
}}</van-button>
</template> </template>
</van-field> </van-field>
<van-field colon clearable readonly clickable name="agreementDate" :value="agreementDate" label="签字日期" <van-field colon clearable readonly clickable name="agreementDate" :value="agreementDate"
placeholder="点击选择签字日期" @click="showCalendar = true" :rules="[ :label="$t('agreementDate')" :placeholder="`点击选择${$t('agreementDate')}`" @click="showCalendar = true"
:rules="[
{ {
required: true, required: true,
message: '请选择签字日期', message: `请选择${$t('agreementDate')}`,
}, },
]" /> ]" />
<van-popup v-model="showCalendar" position="bottom"> <van-popup v-model="showCalendar" position="bottom">
<van-datetime-picker type="date" :min-date="minAgreementDate" :max-date="maxDate" @confirm="onAgreementDate" <van-datetime-picker type="date" :min-date="minAgreementDate" :max-date="maxDate" @confirm="onAgreementDate"
@cancel="showCalendar = false" :formatter="formatter" v-model="agreementDate1" /> @cancel="showCalendar = false" :formatter="formatter" v-model="agreementDate1" />
</van-popup> </van-popup>
<jlPopup title="签名" v-if="showSignHandleVue" @onCancel="onCancel"> <jlPopup :title="$t('autograph')" v-if="showSignHandleVue" @onCancel="onCancel">
</jlPopup> </jlPopup>
</div> </div>
</template> </template>
......
<!-- <!--
* @Author: ninglupeng * @Author: ninglupeng
* @Date: 2020-11-24 16:18:58 * @Date: 2020-11-24 16:18:58
* @LastEditors: wsq * @LastEditors: ninglupeng
* @LastEditTime: 2022-04-21 10:54:43 * @LastEditTime: 2022-11-01 10:26:03
* @Description: * @Description:
--> -->
<template> <template>
<div class="page4"> <div class="page4">
<van-field <van-field colon clearable v-model="patientName" name="patientName" :label="$t('patientName')"
colon :placeholder="$t('patientName')" :rules="[{ required: true, message: `请填写${$t('patientName')}` }]"
clearable @blur="setLocalStorge('patientName')">
v-model="patientName" </van-field>
name="patientName"
label="患者姓名" <van-field colon clearable name="orNotByEntry" :label="$t('orNotByEntry')">
placeholder="患者姓名" <template #input>
:rules="[{ required: true, message: '请填写患者姓名' }]" <van-radio-group @change="setLocalStorge('orNotByEntry')" v-model="orNotByEntry" direction="horizontal">
@blur="setLocalStorge('patientName')" <van-radio name="是"></van-radio>
></van-field> <van-radio name="否"></van-radio>
</van-radio-group>
<van-field colon clearable name="orNotByEntry" label="近期是否由国外入境"> </template>
<template #input> </van-field>
<van-radio-group
@change="setLocalStorge('orNotByEntry')" <van-field colon clearable name="nationality" :label="$t('nationality')" readonly :value="nationality"
v-model="orNotByEntry" @click="shownationality = true" :rules="[{ required: true, message: `请填写${$t('nationality')}` }]">
direction="horizontal" </van-field>
> <van-popup v-model="shownationality" position="bottom">
<van-radio name="是"></van-radio> <van-picker :title="$t('nationality')" show-toolbar :columns="nationalityList" @confirm="
<van-radio name="否"></van-radio> (value, index) => {
</van-radio-group> nationality = value;
</template> setLocalStorge('nationality');
</van-field> shownationality = false;
}
<van-field " @cancel="
colon () => {
clearable shownationality = false;
name="nationality" }
label="国籍" " />
readonly </van-popup>
:value="nationality" <van-field colon v-if="nationality != '中国'" clearable v-model="passportId" name="passportId"
@click="shownationality = true" :label="$t('passportId')" :placeholder="$t('passportId')" :rules="[
:rules="[{ required: true, message: '请填写国籍' }]" {
> required: nationality != '中国' ? true : false,
</van-field> message: `请填写${$t('passportId')}`,
<van-popup v-model="shownationality" position="bottom"> },
<van-picker ]"></van-field>
title="国籍"
show-toolbar <van-field colon clearable v-if="nationality == '中国'" v-model="idCard" name="idCard" :label="$t('idCard')"
:columns="nationalityList" :placeholder="$t('idCard')" @blur="getdate" :rules="[
@confirm=" { required: true, message: '请填写身份证号' },
(value, index) => { { validator, message: '身份证号码格式错误!' },
nationality = value; ]"></van-field>
setLocalStorge('nationality');
shownationality = false; <van-field colon clearable name="gender" :label="$t('gender')">
} <template #input>
" <van-radio-group @change="
@cancel=" () => {
() => { setLocalStorge('gender');
shownationality = false; if (gender == '男') {
} isConceive = '未孕';
" gestationalWeeks = '';
/> setValue('isConceive', '未孕');
</van-popup> setValue('gestationalWeeks', '');
<van-field }
colon }
v-if="nationality != '中国'" " v-model="gender" direction="horizontal">
clearable <van-radio name="男"></van-radio>
v-model="passportId" <van-radio name="女"></van-radio>
name="passportId" </van-radio-group>
label="护照号" </template>
placeholder="护照号" </van-field>
:rules="[
{ <van-field colon clearable readonly clickable name="birthday" :value="birthday" label="出生日期" placeholder="出生日期"
required: nationality != '中国' ? true : false, @click="showbirthday = true" :rules="[{ required: true, message: '请选择出生日期' }]" />
message: '请填写护照号',
}, <van-popup v-model="showbirthday" position="bottom">
]" <van-datetime-picker type="date" :min-date="minbirthday" :max-date="maxDate" @confirm="onbirthday"
></van-field> @cancel="showbirthday = false" :formatter="formatter" />
</van-popup>
<van-field
colon <van-field colon clearable v-model="age" name="age" label="年龄" placeholder="年龄" type="digit"
clearable @blur="setLocalStorge('age')" :rules="[{ required: true, message: '请填写年龄' }]"></van-field>
v-if="nationality == '中国'"
v-model="idCard" <van-field colon clearable v-model="height" name="height" label="身高" placeholder="身高" type="digit"
name="idCard" @blur="setLocalStorge('height')" :rules="[{ required: true, message: '请填写身高' }]">
label="身份证号" <template #extra>
placeholder="身份证号" CM
@blur="getdate" </template>
:rules="[ </van-field>
{ required: true, message: '请填写身份证号' },
{ validator, message: '身份证号码格式错误!' }, <van-field colon clearable v-model="weight" name="weight" label="体重" placeholder="体重" type="number"
]" @blur="setLocalStorge('weight')" :rules="[{ required: true, message: '请填写体重' }]">
></van-field> <template #extra>
KG
<van-field colon clearable name="gender" label="性别"> </template>
<template #input> </van-field>
<van-radio-group
@change=" <van-field colon clearable name="maritalStatus" label="婚姻状况">
() => { <template #input>
setLocalStorge('gender'); <van-radio-group @change="setLocalStorge('maritalStatus')" v-model="maritalStatus"
if (gender == '男') { direction="horizontal">
isConceive = '未孕'; <van-radio name="已婚">已婚</van-radio>
gestationalWeeks = ''; <van-radio name="未婚">未婚</van-radio>
setValue('isConceive', '未孕'); </van-radio-group>
setValue('gestationalWeeks', ''); </template>
} </van-field>
} <van-field colon clearable v-if="gender == '女'" name="isConceive" label="怀孕状况">
" <template #input>
v-model="gender" <van-radio-group @change="setLocalStorge('isConceive')" v-model="isConceive" direction="horizontal">
direction="horizontal" <van-radio name="未孕">未孕</van-radio>
> <van-radio name="已孕">已孕</van-radio>
<van-radio name="男"></van-radio> </van-radio-group>
<van-radio name="女"></van-radio> </template>
</van-radio-group> </van-field>
</template> <van-field colon clearable v-if="gender == '女' && isConceive == '已孕'" v-model="gestationalWeeks"
</van-field> name="gestationalWeeks" label="怀孕周期" placeholder="怀孕周期" type="number"
@blur="setLocalStorge('gestationalWeeks')" :rules="[
<van-field {
colon required: gender == '女' && isConceive == '已孕' ? true : false,
clearable message: '请填写怀孕周期',
readonly },
clickable ]">
name="birthday" <template #extra></template>
:value="birthday" </van-field>
label="出生日期"
placeholder="出生日期" <van-field colon clearable name="occupation" label="职业" readonly :value="occupation"
@click="showbirthday = true" @click="showoccupation = true" :rules="[{ required: true, message: '请填写职业' }]">
:rules="[{ required: true, message: '请选择出生日期' }]" </van-field>
/> <van-popup v-model="showoccupation" position="bottom">
<van-picker title="职业" show-toolbar :columns="occupationList" @confirm="
<van-popup v-model="showbirthday" position="bottom"> (value, index) => {
<van-datetime-picker occupation = value;
type="date" setLocalStorge('occupation');
:min-date="minbirthday" showoccupation = false;
:max-date="maxDate" }
@confirm="onbirthday" " @cancel="
@cancel="showbirthday = false" () => {
:formatter="formatter" showoccupation = false;
/> }
</van-popup> " />
</van-popup>
<van-field
colon
clearable
v-model="age"
name="age" <van-field colon v-show="occupation == '其他'" clearable autosize type="textarea" v-model="otherOccupation"
label="年龄" name="otherOccupation" label="其他职业" placeholder="其他职业" :rules="[
placeholder="年龄" {
type="digit" required: occupation == '其他' ? true : false,
@blur="setLocalStorge('age')" message: '请填写其他职业',
:rules="[{ required: true, message: '请填写年龄' }]" },
></van-field> ]" @blur="setLocalStorge('otherOccupation')"></van-field>
<van-field
colon
clearable <van-field colon clearable v-model="contactInformation" name="contactInformation" label="联系方式"
v-model="height" placeholder="联系方式" @blur="setLocalStorge('contactInformation')"
name="height" :rules="[{ required: true, message: '请填写联系方式' }]"></van-field>
label="身高" <van-field colon clearable v-model="FamilyMembersPhone" name="FamilyMembersPhone" label="家属联系方式"
placeholder="身高" placeholder="家属联系方式" @blur="setLocalStorge('FamilyMembersPhone')"
type="digit" :rules="[{ required: true, message: '请填写家属联系方式' }]"></van-field>
@blur="setLocalStorge('height')"
:rules="[{ required: true, message: '请填写身高' }]"
> <van-field colon clearable readonly clickable name="province" :value="province" label="户籍地(省)" v-show="false" />
<template #extra> <van-field colon clearable readonly clickable name="city" :value="city" label="户籍地(市)" v-show="false" />
CM
</template> <van-field colon clearable readonly clickable name="Registeredresidence" :value="Registeredresidence"
</van-field> label="户籍地" placeholder="点击选择户籍地" @click="showArea = true"
:rules="[{ required: true, message: '请点击选择户籍地' }]" />
<van-field <van-popup v-model="showArea" position="bottom">
colon <van-area :area-list="areaList" :columns-num="2" @confirm="onConfirm" @cancel="showArea = false" />
clearable </van-popup>
v-model="weight" <van-field colon clearable autosize type="textarea" v-model="address" name="address" label="现居住地"
name="weight" placeholder="现居住地" @blur="setLocalStorge('address')" :rules="[{ required: true, message: '请填写现居住地' }]">
label="体重" </van-field>
placeholder="体重"
type="number" <van-field colon clearable name="typeOfMedicalInsurance" label="医保类型" readonly :value="typeOfMedicalInsurance"
@blur="setLocalStorge('weight')" @click="showtypeOfMedicalInsurance = true" :rules="[{ required: true, message: '请填写医保类型' }]">
:rules="[{ required: true, message: '请填写体重' }]" </van-field>
> <van-popup v-model="showtypeOfMedicalInsurance" position="bottom">
<template #extra> <van-picker title="医保类型" show-toolbar :columns="typeOfMedicalInsuranceList" @confirm="
KG (value, index) => {
</template> typeOfMedicalInsurance = value;
</van-field> setLocalStorge('typeOfMedicalInsurance');
showtypeOfMedicalInsurance = false;
<van-field colon clearable name="maritalStatus" label="婚姻状况"> }
<template #input> " @cancel="
<van-radio-group () => {
@change="setLocalStorge('maritalStatus')" showtypeOfMedicalInsurance = false;
v-model="maritalStatus" }
direction="horizontal" " />
> </van-popup>
<van-radio name="已婚">已婚</van-radio>
<van-radio name="未婚">未婚</van-radio> <!-- 有无商业保险 -->
</van-radio-group> <van-field colon clearable name="insurance" label="商业保险">
</template> <template #input>
</van-field> <van-radio-group @change="setLocalStorge('insurance')" v-model="insurance" direction="horizontal">
<van-field <van-radio name="有"></van-radio>
colon <van-radio name="无"></van-radio>
clearable </van-radio-group>
v-if="gender == '女'" </template>
name="isConceive" </van-field>
label="怀孕状况" <van-field style="margin-left: -35px;" colon clearable name="HasSymptom" label-width="130px" label="是否有症状">
> <template #input>
<template #input> <van-radio-group @change="
<van-radio-group () => {
@change="setLocalStorge('isConceive')" if (HasSymptom == '否') {
v-model="isConceive" symptom = [];
direction="horizontal" otherSymptom = '';
>
<van-radio name="未孕">未孕</van-radio> setValue('symptom', '');
<van-radio name="已孕">已孕</van-radio> setValue('otherSymptom', '');
</van-radio-group> }
</template> setLocalStorge('HasSymptom');
</van-field> }
<van-field " v-model="HasSymptom" direction="horizontal">
colon <van-radio name="是"></van-radio>
clearable <van-radio name="否"></van-radio>
v-if="gender == '女' && isConceive == '已孕'" </van-radio-group>
v-model="gestationalWeeks" </template>
name="gestationalWeeks" </van-field>
label="怀孕周期"
placeholder="怀孕周期" <van-field style="margin-left: -35px;" v-if="HasSymptom == '是'" colon :rules="[
type="number" {
@blur="setLocalStorge('gestationalWeeks')" required: HasSymptom == '是' ? true : false,
:rules="[ message: '请选择症状',
{ },
required: gender == '女' && isConceive == '已孕' ? true : false, ]" clearable name="symptom" label="症状" label-width="130px">
message: '请填写怀孕周期', <template #input>
}, <van-checkbox-group @change="
]" () => {
> setLocalStorge('symptom');
<template #extra></template> }
</van-field> " v-model="symptom" direction="horizontal" class="symptom">
<van-field <template v-for="(item, index) in symptomList">
colon <van-checkbox :key="index" :name="item.element" shape="square">
clearable {{ item.element }}</van-checkbox>
name="occupation" </template>
label="职业"
readonly </van-checkbox-group>
:value="occupation" </template>
@click="showoccupation = true" </van-field>
:rules="[{ required: true, message: '请填写职业' }]"
> <van-field style="margin-left: 10px;" colon v-if="symptom.includes('其他') && HasSymptom == '是'" clearable
</van-field> autosize type="textarea" v-model="otherSymptom" name="otherSymptom" label="其他症状" placeholder="其他症状" :rules="[
<van-popup v-model="showoccupation" position="bottom"> {
<van-picker required: symptom.includes('其他') && HasSymptom == '是' ? true : false,
title="职业" message: '请填写其他症状',
show-toolbar },
:columns="occupationList" ]" @blur="setLocalStorge('otherSymptom')"></van-field>
@confirm="
(value, index) => {
occupation = value;
setLocalStorge('occupation'); </div>
showoccupation = false;
}
"
@cancel="
() => {
showoccupation = false;
}
"
/>
</van-popup>
<van-field
colon
v-show="occupation == '其他'"
clearable
autosize
type="textarea"
v-model="otherOccupation"
name="otherOccupation"
label="其他职业"
placeholder="其他职业"
:rules="[
{
required: occupation == '其他' ? true : false,
message: '请填写其他职业',
},
]"
@blur="setLocalStorge('otherOccupation')"
></van-field>
<van-field
colon
clearable
v-model="contactInformation"
name="contactInformation"
label="联系方式"
placeholder="联系方式"
@blur="setLocalStorge('contactInformation')"
:rules="[{ required: true, message: '请填写联系方式' }]"
></van-field>
<van-field
colon
clearable
v-model="FamilyMembersPhone"
name="FamilyMembersPhone"
label="家属联系方式"
placeholder="家属联系方式"
@blur="setLocalStorge('FamilyMembersPhone')"
:rules="[{ required: true, message: '请填写家属联系方式' }]"
></van-field>
<van-field
colon
clearable
readonly
clickable
name="province"
:value="province"
label="户籍地(省)"
v-show="false"
/>
<van-field
colon
clearable
readonly
clickable
name="city"
:value="city"
label="户籍地(市)"
v-show="false"
/>
<van-field
colon
clearable
readonly
clickable
name="Registeredresidence"
:value="Registeredresidence"
label="户籍地"
placeholder="点击选择户籍地"
@click="showArea = true"
:rules="[{ required: true, message: '请点击选择户籍地' }]"
/>
<van-popup v-model="showArea" position="bottom">
<van-area
:area-list="areaList"
:columns-num="2"
@confirm="onConfirm"
@cancel="showArea = false"
/>
</van-popup>
<van-field
colon
clearable
autosize
type="textarea"
v-model="address"
name="address"
label="现居住地"
placeholder="现居住地"
@blur="setLocalStorge('address')"
:rules="[{ required: true, message: '请填写现居住地' }]"
></van-field>
<van-field
colon
clearable
name="typeOfMedicalInsurance"
label="医保类型"
readonly
:value="typeOfMedicalInsurance"
@click="showtypeOfMedicalInsurance = true"
:rules="[{ required: true, message: '请填写医保类型' }]"
>
</van-field>
<van-popup v-model="showtypeOfMedicalInsurance" position="bottom">
<van-picker
title="医保类型"
show-toolbar
:columns="typeOfMedicalInsuranceList"
@confirm="
(value, index) => {
typeOfMedicalInsurance = value;
setLocalStorge('typeOfMedicalInsurance');
showtypeOfMedicalInsurance = false;
}
"
@cancel="
() => {
showtypeOfMedicalInsurance = false;
}
"
/>
</van-popup>
<!-- 有无商业保险 -->
<van-field colon clearable name="insurance" label="商业保险">
<template #input>
<van-radio-group
@change="setLocalStorge('insurance')"
v-model="insurance"
direction="horizontal"
>
<van-radio name="有"></van-radio>
<van-radio name="无"></van-radio>
</van-radio-group>
</template>
</van-field>
<van-field
style="margin-left: -35px;"
colon
clearable
name="HasSymptom"
label-width="130px"
label="是否有症状"
>
<template #input>
<van-radio-group
@change="
() => {
if (HasSymptom == '否') {
symptom = [];
otherSymptom = '';
setValue('symptom','');
setValue('otherSymptom', '');
}
setLocalStorge('HasSymptom');
}
"
v-model="HasSymptom"
direction="horizontal"
>
<van-radio name="是"></van-radio>
<van-radio name="否"></van-radio>
</van-radio-group>
</template>
</van-field>
<van-field
style="margin-left: -35px;"
v-if="HasSymptom == '是'"
colon
:rules="[
{
required: HasSymptom == '是' ? true : false,
message: '请选择症状',
},
]"
clearable
name="symptom"
label="症状"
label-width="130px"
>
<template #input>
<van-checkbox-group
@change="
() => {
setLocalStorge('symptom');
}
"
v-model="symptom"
direction="horizontal"
class="symptom"
>
<template v-for="(item, index) in symptomList">
<van-checkbox :key="index" :name="item.element" shape="square">
{{ item.element }}</van-checkbox
>
</template>
</van-checkbox-group>
</template>
</van-field>
<van-field
style="margin-left: 10px;"
colon
v-if="symptom.includes('其他') && HasSymptom == '是' "
clearable
autosize
type="textarea"
v-model="otherSymptom"
name="otherSymptom"
label="其他症状"
placeholder="其他症状"
:rules="[
{
required: symptom.includes('其他') && HasSymptom == '是' ? true : false,
message: '请填写其他症状',
},
]"
@blur="setLocalStorge('otherSymptom')"
></van-field>
</div>
</template> </template>
<script> <script>
...@@ -507,300 +261,300 @@ import { areaList } from "@vant/area-data"; ...@@ -507,300 +261,300 @@ import { areaList } from "@vant/area-data";
import { formatDate } from "../utils/common.js"; import { formatDate } from "../utils/common.js";
export default { export default {
name: "page4", name: "page4",
inject: ["setLoading"], inject: ["setLoading"],
data() { data() {
return { return {
patientName: "", //患者姓名 patientName: "", //患者姓名
orNotByEntry: "否", //近期是否由国外入境 orNotByEntry: "否", //近期是否由国外入境
nationality: "中国", //国籍 nationality: "中国", //国籍
passportId: "", //护照号 passportId: "", //护照号
age: "", //年龄 age: "", //年龄
height: "", //身高 height: "", //身高
weight: "", weight: "",
gender: "男", //性别 gender: "男", //性别
maritalStatus: "未婚", //婚姻状况 maritalStatus: "未婚", //婚姻状况
birthday: "", //出生日期 birthday: "", //出生日期
isConceive: "未孕", //怀孕状况 isConceive: "未孕", //怀孕状况
gestationalWeeks: "", //怀孕周期 gestationalWeeks: "", //怀孕周期
occupation: "", //职业 occupation: "", //职业
otherOccupation:"",//其他职业 otherOccupation: "",//其他职业
contactInformation: "", //联系方式 contactInformation: "", //联系方式
FamilyMembersPhone: "", //家属联系方式 FamilyMembersPhone: "", //家属联系方式
// workOrNotCovid: "否", // workOrNotCovid: "否",
Registeredresidence: "", //籍贯 (包括省市) Registeredresidence: "", //籍贯 (包括省市)
province: "", //籍贯 (省) province: "", //籍贯 (省)
city: "", //籍贯 (市) city: "", //籍贯 (市)
address: "", //地址 address: "", //地址
idCard: "", //身份证号 idCard: "", //身份证号
typeOfMedicalInsurance: "上海医保", //医保类型 typeOfMedicalInsurance: "上海医保", //医保类型
insurance: "无", //商业保险 insurance: "无", //商业保险
HasSymptom: "否", //有无症状 HasSymptom: "否", //有无症状
symptom: [], //患者症状 symptom: [], //患者症状
otherSymptom: "", //其他症状 otherSymptom: "", //其他症状
symptomList: [],//症状列表 symptomList: [],//症状列表
areaList, //地址数据选项列表 areaList, //地址数据选项列表
showArea: false, //控制地址弹窗 showArea: false, //控制地址弹窗
showbirthday: false, //出生时间弹窗 showbirthday: false, //出生时间弹窗
minbirthday: new Date(1920, 0, 1), minbirthday: new Date(1920, 0, 1),
occupationList: [], occupationList: [],
showoccupation: false, showoccupation: false,
nationalityList: [], //国籍列表 nationalityList: [], //国籍列表
typeOfMedicalInsuranceList: [], typeOfMedicalInsuranceList: [],
shownationality: false, shownationality: false,
showtypeOfMedicalInsurance: false, showtypeOfMedicalInsurance: false,
maxDate: new Date(), maxDate: new Date(),
}; };
},
mounted() {
this.getResource();
this.setLastValue();
},
methods: {
setLastValue() {
if (this.getLocalStorge("symptom")) {
this.symptom = this.getLocalStorge("symptom").split(",");
}
let arr = [
"patientName", //患者姓名
"nationality", //国籍
"passportId", //护照号
"HasSymptom",//是否有症状
"otherSymptom",//其他症状
"otherOccupation",//其他职业
"age", //年龄
"gender", //性别
"height", //身高
"weight", //体重
"maritalStatus", //婚姻状况
"birthday", //出生日期
"isConceive", //怀孕状况
"gestationalWeeks", //怀孕周期
"occupation", //职业
"contactInformation", //联系方式
"FamilyMembersPhone", //家属联系方式
"Registeredresidence", //籍贯 (包括省市)
"province", //籍贯 (省)
"city", //籍贯 (市)
"address", //地址
"idCard", //身份证号
"typeOfMedicalInsurance", //医保类型
"insurance", //商业保险
];
arr.map((item) => {
if (this.getLocalStorge(item)) {
this[`${item}`] = this.getLocalStorge(item);
}
});
}, },
mounted() {
getLocalStorge(key) { this.getResource();
return window.localStorage.getItem(key); this.setLastValue();
}, },
methods: {
setLastValue() {
if (this.getLocalStorge("symptom")) {
this.symptom = this.getLocalStorge("symptom").split(",");
}
let arr = [
"patientName", //患者姓名
"nationality", //国籍
"passportId", //护照号
"HasSymptom",//是否有症状
"otherSymptom",//其他症状
"otherOccupation",//其他职业
"age", //年龄
"gender", //性别
"height", //身高
"weight", //体重
"maritalStatus", //婚姻状况
"birthday", //出生日期
"isConceive", //怀孕状况
"gestationalWeeks", //怀孕周期
"occupation", //职业
"contactInformation", //联系方式
"FamilyMembersPhone", //家属联系方式
"Registeredresidence", //籍贯 (包括省市)
"province", //籍贯 (省)
"city", //籍贯 (市)
"address", //地址
"idCard", //身份证号
"typeOfMedicalInsurance", //医保类型
"insurance", //商业保险
];
arr.map((item) => {
if (this.getLocalStorge(item)) {
this[`${item}`] = this.getLocalStorge(item);
}
});
},
setLocalStorge(key) { getLocalStorge(key) {
window.localStorage.setItem(key, this[`${key}`]); return window.localStorage.getItem(key);
}, },
setValue(key, value) {
window.localStorage.setItem(key, value);
},
onConfirm(values) {
console.log(values);
this.Registeredresidence = values
.filter((item) => !!item)
.map((item) => item.name)
.join("/");
this.province = values[0].name; setLocalStorge(key) {
this.city = values[1].name; window.localStorage.setItem(key, this[`${key}`]);
},
setValue(key, value) {
window.localStorage.setItem(key, value);
},
onConfirm(values) {
console.log(values);
this.Registeredresidence = values
.filter((item) => !!item)
.map((item) => item.name)
.join("/");
this.setLocalStorge("Registeredresidence"); this.province = values[0].name;
this.setLocalStorge("province"); this.city = values[1].name;
this.setLocalStorge("city");
this.showArea = false; this.setLocalStorge("Registeredresidence");
}, this.setLocalStorge("province");
this.setLocalStorge("city");
validator(val) { this.showArea = false;
const card15 = /^[1-9]\d{5}\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{2}[0-9Xx]$/; },
const card18 = /^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/;
return card15.test(val) || card18.test(val);
},
getResource() { validator(val) {
this.setLoading(true); const card15 = /^[1-9]\d{5}\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{2}[0-9Xx]$/;
this.$http.get(`/Research/Resource`, {}).then((data) => { const card18 = /^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/;
let arr = data.filter((item) => { return card15.test(val) || card18.test(val);
return item.category == "国籍"; },
});
let arr1 = data.filter((item) => {
return item.category == "医保类型";
});
let arr2 = data.filter((item) => {
return item.category == "职业";
});
this.symptomList = data.filter((item) => {
return item.category == "症状";
});
this.nationalityList = arr.map((item) => {
return item.element;
});
this.typeOfMedicalInsuranceList = arr1.map((item) => {
return item.element;
});
this.occupationList = arr2.map((item) => {
return item.element;
});
this.setLoading(false);
});
},
getdate() { getResource() {
let obj = this.getInfo(this.idCard); this.setLoading(true);
this.$http.get(`/Research/Resource`, {}).then((data) => {
let arr = data.filter((item) => {
return item.category == "国籍";
});
let arr1 = data.filter((item) => {
return item.category == "医保类型";
});
let arr2 = data.filter((item) => {
return item.category == "职业";
});
this.symptomList = data.filter((item) => {
return item.category == "症状";
});
this.nationalityList = arr.map((item) => {
return item.element;
});
this.typeOfMedicalInsuranceList = arr1.map((item) => {
return item.element;
});
this.occupationList = arr2.map((item) => {
return item.element;
});
this.setLoading(false);
});
},
if (this.validator(this.idCard)) { getdate() {
this.age = obj.age; let obj = this.getInfo(this.idCard);
this.birthday = obj.birth;
this.gender = obj.sex == 1 ? "男" : "女";
this.setLocalStorge("idCard"); if (this.validator(this.idCard)) {
this.setLocalStorge("birthday"); this.age = obj.age;
this.setLocalStorge("age"); this.birthday = obj.birth;
this.setLocalStorge("gender"); this.gender = obj.sex == 1 ? "男" : "女";
}
},
//根据身份证号码获取出生年月 年龄 性别 this.setLocalStorge("idCard");
getInfo(idCard) { this.setLocalStorge("birthday");
let sex = null; this.setLocalStorge("age");
let birth = null; this.setLocalStorge("gender");
let myDate = new Date(); }
let month = myDate.getMonth() + 1; },
let day = myDate.getDate();
let age = 0;
if (idCard.length === 18) {
age = myDate.getFullYear() - idCard.substring(6, 10) - 1;
sex = idCard.substring(16, 17);
birth =
idCard.substring(6, 10) +
"-" +
idCard.substring(10, 12) +
"-" +
idCard.substring(12, 14);
if (
idCard.substring(10, 12) < month ||
(idCard.substring(10, 12) === month &&
idCard.substring(12, 14) <= day)
)
age++;
}
if (idCard.length === 15) {
age = myDate.getFullYear() - idCard.substring(6, 8) - 1901;
sex = idCard.substring(13, 14);
birth =
"19" +
idCard.substring(6, 8) +
"-" +
idCard.substring(8, 10) +
"-" +
idCard.substring(10, 12);
if (
idCard.substring(8, 10) < month ||
(idCard.substring(8, 10) === month && idCard.substring(10, 12) <= day)
)
age++;
}
if (sex % 2 === 0) sex = 0;
// 性别代码 1代表男,0代表女,暂时不涉及其他类型性别
else sex = 1;
return {
age,
sex,
birth,
};
},
onbirthday(date) { //根据身份证号码获取出生年月 年龄 性别
this.birthday = formatDate(date, "yyyy-MM-dd "); getInfo(idCard) {
console.log( let sex = null;
"🚀 ~ file: page4.vue ~ line 630 ~ onbirthday ~ this.birthday", let birth = null;
this.birthday let myDate = new Date();
); let month = myDate.getMonth() + 1;
let day = myDate.getDate();
this.setLocalStorge("birthday"); let age = 0;
// this.getdate();
this.age = this.ages(formatDate(date, "yyyy-MM-dd ")); if (idCard.length === 18) {
this.showbirthday = false; age = myDate.getFullYear() - idCard.substring(6, 10) - 1;
}, sex = idCard.substring(16, 17);
birth =
idCard.substring(6, 10) +
"-" +
idCard.substring(10, 12) +
"-" +
idCard.substring(12, 14);
if (
idCard.substring(10, 12) < month ||
(idCard.substring(10, 12) === month &&
idCard.substring(12, 14) <= day)
)
age++;
}
if (idCard.length === 15) {
age = myDate.getFullYear() - idCard.substring(6, 8) - 1901;
sex = idCard.substring(13, 14);
birth =
"19" +
idCard.substring(6, 8) +
"-" +
idCard.substring(8, 10) +
"-" +
idCard.substring(10, 12);
if (
idCard.substring(8, 10) < month ||
(idCard.substring(8, 10) === month && idCard.substring(10, 12) <= day)
)
age++;
}
ages(birth) { if (sex % 2 === 0) sex = 0;
birth = birth.replace(/-/g, "/"); //把格式中的"-"替换为"/" // 性别代码 1代表男,0代表女,暂时不涉及其他类型性别
birth = new Date(birth); //替换后转为Date类型 else sex = 1;
var now = new Date(); //获取当前日期 return {
var nowYear = now.getFullYear(); //当前日期的年份 age,
var nowMonth = now.getMonth(); sex,
var nowDay = now.getDay(); birth,
};
var birthYear = birth.getFullYear(); },
var birthMonth = birth.getMonth();
var birthDay = birth.getDay(); //出生日期的日数 onbirthday(date) {
var age; this.birthday = formatDate(date, "yyyy-MM-dd ");
console.log(
if (birth > now) { "🚀 ~ file: page4.vue ~ line 630 ~ onbirthday ~ this.birthday",
return false; this.birthday
} else if ( );
nowYear == birthYear ||
(nowYear > birthYear && nowMonth >= birthMonth && nowDay >= birthDay) this.setLocalStorge("birthday");
) { // this.getdate();
age = nowYear - birthYear; this.age = this.ages(formatDate(date, "yyyy-MM-dd "));
} else { this.showbirthday = false;
age = nowYear - birthYear - 1; //简而言之,没过生日岁数不能+1 },
}
return age;
},
formatter(type, val) { ages(birth) {
if (type === "year") { birth = birth.replace(/-/g, "/"); //把格式中的"-"替换为"/"
return `${val}年`; birth = new Date(birth); //替换后转为Date类型
} var now = new Date(); //获取当前日期
if (type === "month") { var nowYear = now.getFullYear(); //当前日期的年份
return `${val}月`; var nowMonth = now.getMonth();
} else if (type === "day") { var nowDay = now.getDay();
return `${val}日`;
} else if (type === "hour") { var birthYear = birth.getFullYear();
return `${val}时`; var birthMonth = birth.getMonth();
} else if (type === "minute") { var birthDay = birth.getDay(); //出生日期的日数
return `${val}分`; var age;
}
return val; if (birth > now) {
return false;
} else if (
nowYear == birthYear ||
(nowYear > birthYear && nowMonth >= birthMonth && nowDay >= birthDay)
) {
age = nowYear - birthYear;
} else {
age = nowYear - birthYear - 1; //简而言之,没过生日岁数不能+1
}
return age;
},
formatter(type, val) {
if (type === "year") {
return `${val}年`;
}
if (type === "month") {
return `${val}月`;
} else if (type === "day") {
return `${val}日`;
} else if (type === "hour") {
return `${val}时`;
} else if (type === "minute") {
return `${val}分`;
}
return val;
},
}, },
}, computed: {},
computed: {},
}; };
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.page4 { .page4 {
.symptom { .symptom {
.van-checkbox--horizontal { .van-checkbox--horizontal {
margin-right: 0.32rem; margin-right: 0.32rem;
min-width: 35%; min-width: 35%;
margin-bottom: 5%; margin-bottom: 5%;
}
} }
}
} }
</style> </style>
<!-- <!--
* @Author: ninglupeng * @Author: ninglupeng
* @Date: 2020-11-24 16:18:58 * @Date: 2020-11-24 16:18:58
* @LastEditors: wsq * @LastEditors: ninglupeng
* @LastEditTime: 2022-05-07 09:19:03 * @LastEditTime: 2022-11-03 13:17:45
* @Description: * @Description:
--> -->
<template> <template>
<div class="page5"> <div class="page5">
<van-field <van-field colon clearable name="HasOnlineClass" label-width="130px" label="是否上网课">
colon <template #input>
clearable <van-radio-group @change="setLocalStorge('HasOnlineClass')" v-model="HasOnlineClass"
name="HasOnlineClass" direction="horizontal">
label-width="130px" <van-radio name="是"></van-radio>
label="是否上网课" <van-radio name="否"></van-radio>
> </van-radio-group>
<template #input> </template>
<van-radio-group </van-field>
@change="setLocalStorge('HasOnlineClass')" <van-field colon clearable name="purpose" label="来沪目的" readonly :value="purpose" label-width="130px"
v-model="HasOnlineClass" @click="showPurpose = true">
direction="horizontal" </van-field>
> <van-popup v-model="showPurpose" position="bottom">
<van-radio name="是"></van-radio> <van-picker title="来沪目的" show-toolbar :columns="purposeList" @confirm="onpurpose" />
<van-radio name="否"></van-radio> </van-popup>
</van-radio-group>
</template> <van-field colon clearable name="workOrNotCovid" label="日常工作是否需要接触新冠病" style="margin-left: 40px;">
</van-field> <template #input>
<van-field <van-radio-group @change="setLocalStorge('workOrNotCovid')" v-model="workOrNotCovid"
colon direction="horizontal">
clearable <van-radio :name="$t('yes')">{{$t('yes')}}</van-radio>
name="purpose" <van-radio name="否"></van-radio>
label="来沪目的" </van-radio-group>
readonly </template>
:value="purpose" </van-field>
label-width="130px"
@click="showPurpose = true"
>
</van-field>
<van-popup v-model="showPurpose" position="bottom"> <van-field colon clearable name="thirtyDays" label="近两月是否离开过上海" label-width="130px"
<van-picker :rules="[{ required: true, message: '请选择近两月是否离开过上海' }]">
title="来沪目的" <template #input>
show-toolbar <van-radio-group @change="
:columns="purposeList" setLocalStorge('thirtyDays')
@confirm="onpurpose" " v-model="thirtyDays" direction="horizontal">
/> <van-radio name="是"></van-radio>
</van-popup> <van-radio name="否"></van-radio>
</van-radio-group>
<van-field </template>
colon </van-field>
clearable
name="workOrNotCovid"
label="日常工作是否需要接触新冠病" <van-field v-if="thirtyDays == '是'" colon clearable v-model="LeaveShangHai" name="LeaveShangHai" label="回上海天数"
style="margin-left: 40px;" label-width="130px" placeholder="回上海天数" type="digit" @blur="setLocalStorge('LeaveShangHai')" :rules="[
> {
<template #input> required: thirtyDays == '是' ? true : false,
<van-radio-group message: '请填写回上海天数',
@change="setLocalStorge('workOrNotCovid')" },
v-model="workOrNotCovid" { validator, message: '天数不能大于三十天' },
direction="horizontal" ]">
> <template #extra v-if="thirtyDays == '是'"></template>
<van-radio name="是"></van-radio> </van-field>
<van-radio name="否"></van-radio>
</van-radio-group> <van-field colon clearable readonly clickable name="normalDate" :value="normalDate" label-width="130px"
</template> label="未发生异常时间" placeholder="点击选择未发生异常时间" @click="showNormalDate = true"
</van-field> :rules="[{ required: true, message: '请选择未发生异常时间' }]" />
<van-popup v-model="showNormalDate" position="bottom">
<van-datetime-picker type="date" v-model="normalDate1" :min-date="minNormalDate" :max-date="maxDate"
@confirm="onNormalDate" @cancel="showNormalDate = false" :formatter="formatter" />
<van-field </van-popup>
colon
clearable <van-field colon clearable readonly clickable name="unusualDate" :value="unusualDate" label="核酸检测异常时间"
name="thirtyDays" label-width="130px" placeholder="点击选择核酸检测异常时间" @click="showUnusualDate = true"
label="近两月是否离开过上海" :rules="[{ required: true, message: '请选择核酸检测异常时间' }]" />
label-width="130px"
:rules="[{ required: true, message: '请选择近两月是否离开过上海' }]" <van-popup v-model="showUnusualDate" position="bottom">
> <van-datetime-picker type="date" v-model="unusualDate1" :min-date="minUnusualDate" :max-date="maxDate"
<template #input> @confirm="onUnusualDate" @cancel="showUnusualDate = false" :formatter="formatter" />
<van-radio-group </van-popup>
@change=" <van-field colon clearable readonly clickable label-width="130px" name="inHospitalDate" :value="inHospitalDate"
setLocalStorge('thirtyDays') label="120转运时间或者入院时间" placeholder="点击选择120转运时间或者入院时间" @click="showInHospitalDate = true"
" :rules="[{ required: true, message: '请选择120转运时间或者入院时间' }]" />
v-model="thirtyDays"
direction="horizontal" <van-popup v-model="showInHospitalDate" position="bottom">
> <van-datetime-picker type="date" v-model="inHospitalDate1" :min-date="minInHospitalDate" :max-date="maxDate"
<van-radio name="是"></van-radio> @confirm="onInHospitalDate" @cancel="showInHospitalDate = false" :formatter="formatter" />
<van-radio name="否"></van-radio> </van-popup>
</van-radio-group>
</template> <van-field colon clearable autosize label-width="130px" type="textarea" v-model="beforeIsolationPoint"
</van-field> name="beforeIsolationPoint" label="之前隔离点(无隔离点填救护车出发地址)" placeholder="请填写之前隔离点"
@blur="setLocalStorge('beforeIsolationPoint')" :rules="[{ required: true, message: '请填写之前隔离点' }]">
</van-field>
<van-field
v-if="thirtyDays == '是'"
colon <van-field v-if="hasCOVIDVaccine == '是' || hasCOVIDVaccine == '否'" colon clearable name="hasCOVIDVaccine"
clearable label-width="130px" label="是否接种过疫苗">
v-model="LeaveShangHai" <template #input>
name="LeaveShangHai" <van-radio-group @change="
label="回上海天数" () => {
label-width="130px" setLocalStorge('hasCOVIDVaccine');
placeholder="回上海天数"
type="digit" if (hasCOVIDVaccine == '否') {
@blur="setLocalStorge('LeaveShangHai')" covidVaccine = '';
:rules="[ vaccineType = [];
{ othervaccines = '';
required: thirtyDays == '是' ? true : false, setValue('covidVaccine', '');
message: '请填写回上海天数', setValue('vaccineType', '');
}, setValue('othervaccines', '');
{ validator, message: '天数不能大于三十天' }, }
]" }
> " v-model="hasCOVIDVaccine" direction="horizontal">
<template #extra v-if="thirtyDays == '是'"></template></van-field <van-radio name="是"></van-radio>
> <van-radio name="否"></van-radio>
</van-radio-group>
<van-field </template>
colon </van-field>
clearable
readonly <van-field v-if="hasCOVIDVaccine == '是'" colon clearable v-model="covidVaccine" name="covidVaccine" label="接种针数"
clickable placeholder="接种针数" label-width="130px" type="number" @blur="setLocalStorge('covidVaccine')"
name="normalDate" :rules="[{ required: true, message: '请填写接种针数' }]">
:value="normalDate" <template #extra v-if="hasCOVIDVaccine == '是'"></template>
label-width="130px" </van-field>
label="未发生异常时间"
placeholder="点击选择未发生异常时间" <van-field v-if="hasCOVIDVaccine == '是'" colon clearable label-width="130px" name="vaccineType" label="疫苗公司"
@click="showNormalDate = true" :rules="[
:rules="[{ required: true, message: '请选择未发生异常时间' }]" {
/> required: hasCOVIDVaccine == '是' ? true : false,
message: '请选择疫苗公司',
<van-popup v-model="showNormalDate" position="bottom"> },
<van-datetime-picker ]">
type="date" <template #input>
v-model="normalDate1" <van-checkbox-group v-model="vaccineType" direction="horizontal" class="vaccineType" @change="
:min-date="minNormalDate" () => {
:max-date="maxDate" setLocalStorge('vaccineType');
@confirm="onNormalDate" }
@cancel="showNormalDate = false" ">
:formatter="formatter" <template v-for="(item, index) in vaccineTypeList">
/> <van-checkbox :key="index" :name="item.element" shape="square">{{
</van-popup> item.element
}}</van-checkbox>
<van-field </template>
colon </van-checkbox-group>
clearable </template>
readonly </van-field>
clickable
name="unusualDate" <van-field colon v-if="vaccineType.includes('其他')" clearable autosize type="textarea" label-width="130px"
:value="unusualDate" v-model="othervaccines" name="othervaccines" label="其他疫苗" placeholder="其他疫苗" :rules="[
label="核酸检测异常时间" {
label-width="130px" required: vaccineType.includes('其他') ? true : false,
placeholder="点击选择核酸检测异常时间" message: '请填写其他疫苗',
@click="showUnusualDate = true" },
:rules="[{ required: true, message: '请选择核酸检测异常时间' }]" ]" @blur="setLocalStorge('othervaccines')"></van-field>
/>
<van-field v-if="hasCOVIDVaccine == '是'" colon clearable readonly clickable name="vaccineDate"
<van-popup v-model="showUnusualDate" position="bottom"> :value="vaccineDate" label="最后一次接种日期" label-width="130px" placeholder="点击选择最后一次接种日期"
<van-datetime-picker @click="showVaccineDate = true" :rules="[
type="date" {
v-model="unusualDate1" required: covidVaccine > 0 ? true : false,
:min-date="minUnusualDate" message: '请选择最后一次接种日期',
:max-date="maxDate" },
@confirm="onUnusualDate" ]" />
@cancel="showUnusualDate = false"
:formatter="formatter" <van-popup v-model="showVaccineDate" position="bottom">
/> <van-datetime-picker type="date" v-model="vaccineDate1" :min-date="minVaccineDate" :max-date="maxDate"
</van-popup> @confirm="onVaccineDate" @cancel="showVaccineDate = false" :formatter="formatter" />
<van-field </van-popup>
colon </div>
clearable
readonly
clickable
label-width="130px"
name="inHospitalDate"
:value="inHospitalDate"
label="120转运时间或者入院时间"
placeholder="点击选择120转运时间或者入院时间"
@click="showInHospitalDate = true"
:rules="[{ required: true, message: '请选择120转运时间或者入院时间' }]"
/>
<van-popup v-model="showInHospitalDate" position="bottom">
<van-datetime-picker
type="date"
v-model="inHospitalDate1"
:min-date="minInHospitalDate"
:max-date="maxDate"
@confirm="onInHospitalDate"
@cancel="showInHospitalDate = false"
:formatter="formatter"
/>
</van-popup>
<van-field
colon
clearable
autosize
label-width="130px"
type="textarea"
v-model="beforeIsolationPoint"
name="beforeIsolationPoint"
label="之前隔离点(无隔离点填救护车出发地址)"
placeholder="请填写之前隔离点"
@blur="setLocalStorge('beforeIsolationPoint')"
:rules="[{ required: true, message: '请填写之前隔离点' }]"
></van-field>
<van-field
v-if="hasCOVIDVaccine=='是' || hasCOVIDVaccine=='否'"
colon
clearable
name="hasCOVIDVaccine"
label-width="130px"
label="是否接种过疫苗"
>
<template #input>
<van-radio-group
@change="
() => {
setLocalStorge('hasCOVIDVaccine');
if (hasCOVIDVaccine == '否') {
covidVaccine = '';
vaccineType = [];
othervaccines = '';
setValue('covidVaccine', '');
setValue('vaccineType', '');
setValue('othervaccines', '');
}
}
"
v-model="hasCOVIDVaccine"
direction="horizontal"
>
<van-radio name="是"></van-radio>
<van-radio name="否"></van-radio>
</van-radio-group>
</template>
</van-field>
<van-field
v-if="hasCOVIDVaccine == '是'"
colon
clearable
v-model="covidVaccine"
name="covidVaccine"
label="接种针数"
placeholder="接种针数"
label-width="130px"
type="number"
@blur="setLocalStorge('covidVaccine')"
:rules="[{ required: true, message: '请填写接种针数' }]"
>
<template #extra v-if="hasCOVIDVaccine == '是'"></template></van-field
>
<van-field
v-if="hasCOVIDVaccine == '是'"
colon
clearable
label-width="130px"
name="vaccineType"
label="疫苗公司"
:rules="[
{
required: hasCOVIDVaccine == '是' ? true : false,
message: '请选择疫苗公司',
},
]"
>
<template #input>
<van-checkbox-group
v-model="vaccineType"
direction="horizontal"
class="vaccineType"
@change="
() => {
setLocalStorge('vaccineType');
}
"
>
<template v-for="(item, index) in vaccineTypeList">
<van-checkbox :key="index" :name="item.element" shape="square">{{
item.element
}}</van-checkbox>
</template>
</van-checkbox-group>
</template>
</van-field>
<van-field
colon
v-if="vaccineType.includes('其他')"
clearable
autosize
type="textarea"
label-width="130px"
v-model="othervaccines"
name="othervaccines"
label="其他疫苗"
placeholder="其他疫苗"
:rules="[
{
required: vaccineType.includes('其他') ? true : false,
message: '请填写其他疫苗',
},
]"
@blur="setLocalStorge('othervaccines')"
></van-field>
<van-field
v-if="hasCOVIDVaccine == '是'"
colon
clearable
readonly
clickable
name="vaccineDate"
:value="vaccineDate"
label="最后一次接种日期"
label-width="130px"
placeholder="点击选择最后一次接种日期"
@click="showVaccineDate = true"
:rules="[
{
required: covidVaccine > 0 ? true : false,
message: '请选择最后一次接种日期',
},
]"
/>
<van-popup v-model="showVaccineDate" position="bottom">
<van-datetime-picker
type="date"
v-model="vaccineDate1"
:min-date="minVaccineDate"
:max-date="maxDate"
@confirm="onVaccineDate"
@cancel="showVaccineDate = false"
:formatter="formatter"
/>
</van-popup>
</div>
</template> </template>
<script> <script>
...@@ -346,190 +172,190 @@ import { mapState, mapMutations } from "vuex"; ...@@ -346,190 +172,190 @@ import { mapState, mapMutations } from "vuex";
import { formatDate } from "../utils/common.js"; import { formatDate } from "../utils/common.js";
export default { export default {
inject: ["setLoading"], inject: ["setLoading"],
name: "page5", name: "page5",
data() { data() {
return { return {
workOrNotCovid: "否",//是否需要接触新冠 workOrNotCovid: "否",//是否需要接触新冠
HasOnlineClass: "否", //是否上网课 HasOnlineClass: "否", //是否上网课
purpose: "学习", // 来沪目的 purpose: "学习", // 来沪目的
thirtyDays: "是", //近三十天内无离开上海 thirtyDays: "是", //近三十天内无离开上海
LeaveShangHai: "", //回上海天数 LeaveShangHai: "", //回上海天数
unusualDate: "", //核酸检测异常时间 unusualDate: "", //核酸检测异常时间
normalDate: "", //未发生异常时间 normalDate: "", //未发生异常时间
beforeIsolationPoint: "", //之前隔离点 beforeIsolationPoint: "", //之前隔离点
inHospitalDate: "", //120转运时间 inHospitalDate: "", //120转运时间
// HasSymptom: "否", //有无症状 // HasSymptom: "否", //有无症状
// symptom: [], //患者症状 // symptom: [], //患者症状
// otherSymptom: "", //其他症状 // otherSymptom: "", //其他症状
//symptomList: [], //symptomList: [],
hasCOVIDVaccine: "是", hasCOVIDVaccine: "是",
covidVaccine: "", //接种针数 covidVaccine: "", //接种针数
vaccineType: [], //疫苗公司 vaccineType: [], //疫苗公司
othervaccines: "", //其他疫苗 othervaccines: "", //其他疫苗
vaccineDate: "", //最后一次接种日期 vaccineDate: "", //最后一次接种日期
vaccineTypeList: [], vaccineTypeList: [],
showNormalDate: false, //未发生异常时间弹窗 showNormalDate: false, //未发生异常时间弹窗
showUnusualDate: false, //核酸时间弹窗 showUnusualDate: false, //核酸时间弹窗
showInHospitalDate: false, //120时间弹窗 showInHospitalDate: false, //120时间弹窗
showVaccineDate: false, //120时间弹窗 showVaccineDate: false, //120时间弹窗
purposeList: ["学习", "工作", "旅游", "商务", "其他"], purposeList: ["学习", "工作", "旅游", "商务", "其他"],
minNormalDate: new Date(2021, 0, 1), minNormalDate: new Date(2021, 0, 1),
minUnusualDate: new Date(2021, 0, 1), minUnusualDate: new Date(2021, 0, 1),
minInHospitalDate: new Date(2021, 0, 1), minInHospitalDate: new Date(2021, 0, 1),
minVaccineDate: new Date(2020, 0, 1), minVaccineDate: new Date(2020, 0, 1),
maxDate: new Date(), maxDate: new Date(),
showPurpose: false, showPurpose: false,
/**时间弹窗默认时间 */ /**时间弹窗默认时间 */
unusualDate1: new Date(), //核酸检测异常时间 unusualDate1: new Date(), //核酸检测异常时间
normalDate1: new Date(), //未发生异常时间 normalDate1: new Date(), //未发生异常时间
inHospitalDate1: new Date(), //120转运时间 inHospitalDate1: new Date(), //120转运时间
vaccineDate1: new Date(), //最后一次接种日期 vaccineDate1: new Date(), //最后一次接种日期
}; };
},
mounted() {
this.getResource();
this.setDefDate();
this.setLastValue();
},
methods: {
setLastValue() {
if (this.getLocalStorge("symptom")) {
this.symptom = this.getLocalStorge("symptom").split(",");
}
let arr = [
"HasOnlineClass", //是否上网课
"purpose", // 来沪目的
"thirtyDays", //近三十天内无离开上海
"LeaveShangHai", //回上海天数
"unusualDate", //核酸检测异常时间
"normalDate", //未发生异常时间
"inHospitalDate", //120转运时间
"otherSymptom", //其他症状
"vaccineType",
"beforeIsolationPoint", //之前隔离点
"HasSymptom", //有无症状
"hasCOVIDVaccine",//是否接种过疫苗
"covidVaccine", //接种针数
"othervaccines", //其他疫苗
"vaccineDate", //最后一次接种日期
];
for (let i = 0; i < arr.length; i++) {
if (this.getLocalStorge(arr[i])) {
this[`${arr[i]}`] = this.getLocalStorge(arr[i]);
}
}
if (this.getLocalStorge("vaccineType")) {
this.vaccineType = this.getLocalStorge("vaccineType").split(",");
}
}, },
mounted() {
this.getResource();
this.setDefDate();
getLocalStorge(key) { this.setLastValue();
return window.localStorage.getItem(key);
}, },
methods: {
setLastValue() {
if (this.getLocalStorge("symptom")) {
this.symptom = this.getLocalStorge("symptom").split(",");
}
setLocalStorge(key) { let arr = [
window.localStorage.setItem(key, this[`${key}`]); "HasOnlineClass", //是否上网课
}, "purpose", // 来沪目的
"thirtyDays", //近三十天内无离开上海
"LeaveShangHai", //回上海天数
"unusualDate", //核酸检测异常时间
"normalDate", //未发生异常时间
"inHospitalDate", //120转运时间
"otherSymptom", //其他症状
"vaccineType",
"beforeIsolationPoint", //之前隔离点
"HasSymptom", //有无症状
"hasCOVIDVaccine",//是否接种过疫苗
"covidVaccine", //接种针数
"othervaccines", //其他疫苗
"vaccineDate", //最后一次接种日期
];
for (let i = 0; i < arr.length; i++) {
if (this.getLocalStorge(arr[i])) {
this[`${arr[i]}`] = this.getLocalStorge(arr[i]);
}
}
setValue(key, value) { if (this.getLocalStorge("vaccineType")) {
window.localStorage.setItem(key, value); this.vaccineType = this.getLocalStorge("vaccineType").split(",");
},
setDefDate() { }
// this.unusualDate = formatDate(new Date(), "yyyy-MM-dd"); //核酸检测异常时间 },
// this.normalDate = formatDate(new Date(), "yyyy-MM-dd"); //未发生异常时间
// this.inHospitalDate = formatDate(new Date(), "yyyy-MM-dd"); //120转运时间
// this.vaccineDate = formatDate(new Date(), "yyyy-MM-dd"); //最后一次接种日期
},
onpurpose(value, index) { getLocalStorge(key) {
this.purpose = value; return window.localStorage.getItem(key);
this.setLocalStorge("purpose"); },
this.showPurpose = false;
},
validator(val) { setLocalStorge(key) {
return val < 61 || val == 61; window.localStorage.setItem(key, this[`${key}`]);
}, },
getResource() { setValue(key, value) {
this.setLoading(true); window.localStorage.setItem(key, value);
this.$http.get(`/Research/Resource`, {}).then((data) => { },
this.symptomList = data.filter((item) => {
return item.category == "症状";
});
this.vaccineTypeList = data.filter((item) => { setDefDate() {
return item.category == "新冠疫苗种类"; // this.unusualDate = formatDate(new Date(), "yyyy-MM-dd"); //核酸检测异常时间
}); // this.normalDate = formatDate(new Date(), "yyyy-MM-dd"); //未发生异常时间
// this.inHospitalDate = formatDate(new Date(), "yyyy-MM-dd"); //120转运时间
// this.vaccineDate = formatDate(new Date(), "yyyy-MM-dd"); //最后一次接种日期
},
this.setLoading(false); onpurpose(value, index) {
}); this.purpose = value;
}, this.setLocalStorge("purpose");
this.showPurpose = false;
},
formatter(type, val) { validator(val) {
if (type === "year") { return val < 61 || val == 61;
return `${val}年`; },
}
if (type === "month") {
return `${val}月`;
} else if (type === "day") {
return `${val}日`;
} else if (type === "hour") {
return `${val}时`;
} else if (type === "minute") {
return `${val}分`;
}
return val;
},
onNormalDate(date) {
this.normalDate = formatDate(date, "yyyy-MM-dd ");
this.setLocalStorge("normalDate");
this.showNormalDate = false;
},
onUnusualDate(date) {
this.unusualDate = formatDate(date, "yyyy-MM-dd");
this.setLocalStorge("unusualDate");
this.showUnusualDate = false; getResource() {
}, this.setLoading(true);
this.$http.get(`/Research/Resource`, {}).then((data) => {
this.symptomList = data.filter((item) => {
return item.category == "症状";
});
onInHospitalDate(date) { this.vaccineTypeList = data.filter((item) => {
this.inHospitalDate = formatDate(date, "yyyy-MM-dd "); return item.category == "新冠疫苗种类";
this.setLocalStorge("inHospitalDate"); });
this.showInHospitalDate = false;
}, this.setLoading(false);
});
},
formatter(type, val) {
if (type === "year") {
return `${val}年`;
}
if (type === "month") {
return `${val}月`;
} else if (type === "day") {
return `${val}日`;
} else if (type === "hour") {
return `${val}时`;
} else if (type === "minute") {
return `${val}分`;
}
return val;
},
onNormalDate(date) {
this.normalDate = formatDate(date, "yyyy-MM-dd ");
this.setLocalStorge("normalDate");
this.showNormalDate = false;
},
onUnusualDate(date) {
this.unusualDate = formatDate(date, "yyyy-MM-dd");
this.setLocalStorge("unusualDate");
this.showUnusualDate = false;
},
onVaccineDate(date) { onInHospitalDate(date) {
this.vaccineDate = formatDate(date, "yyyy-MM-dd"); this.inHospitalDate = formatDate(date, "yyyy-MM-dd ");
this.setLocalStorge("vaccineDate"); this.setLocalStorge("inHospitalDate");
this.showVaccineDate = false; this.showInHospitalDate = false;
},
onVaccineDate(date) {
this.vaccineDate = formatDate(date, "yyyy-MM-dd");
this.setLocalStorge("vaccineDate");
this.showVaccineDate = false;
},
}, },
}, computed: {},
computed: {},
}; };
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.page5 { .page5 {
.vaccineType { .vaccineType {
.van-checkbox { .van-checkbox {
width: 43%; width: 43%;
margin-bottom: 5%; margin-bottom: 5%;
}
} }
}
} }
</style> </style>
...@@ -2,83 +2,80 @@ ...@@ -2,83 +2,80 @@
* @Author: ninglupeng * @Author: ninglupeng
* @Date: 2020-11-24 16:18:58 * @Date: 2020-11-24 16:18:58
* @LastEditors: ninglupeng * @LastEditors: ninglupeng
* @LastEditTime: 2022-03-29 11:31:31 * @LastEditTime: 2022-11-03 12:58:51
* @Description: * @Description:
--> -->
<template> <template>
<div class="page7"> <div class="page7">
<div class="page7_topbg"> <div class="page7_topbg">
<span class="page7_topbg_title"> <span class="page7_topbg_title">
您已完成本次填写内容 ,感谢您的帮助和支持。 {{ $t('concludingRemarks') }}
</span> </span>
</div> </div>
<div class="page7_bottom"> <div class="page7_bottom">
<van-button <van-button native-type="button" class="index_form_next" @click="goback" round type="info"> {{
native-type="button" $t('goBack')
class="index_form_next" }}</van-button>
@click="goback" </div>
round
type="info"
>返回</van-button
>
</div> </div>
</div>
</template> </template>
<script> <script>
import { mapState, mapMutations } from "vuex"; import { mapState, mapMutations } from "vuex";
export default { export default {
name: "page7", name: "page7",
data() { data() {
return {}; return {};
}, },
mounted() {}, mounted() { },
methods: { methods: {
goback() { goback() {
this.$store.dispatch("user/setpage", 1); this.$store.dispatch("user/setpage", 1);
},
}, },
}, computed: {},
computed: {},
}; };
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.page7 { .page7 {
width: 100%;
height: 100vh;
overflow: hidden;
background-color: #f2f2f2;
&_topbg {
background-image: url("../assets/img/page1bg.png");
width: 100%; width: 100%;
height: 390px; height: 100vh;
background-size: cover; overflow: hidden;
background-position: center center; background-color: #f2f2f2;
&_topbg {
background-image: url("../assets/img/page1bg.png");
width: 100%;
height: 390px;
background-size: cover;
background-position: center center;
@include flex_column; @include flex_column;
@include align_center; @include align_center;
justify-content: space-evenly; justify-content: space-evenly;
position: relative; position: relative;
&_title {
font-size: 24px;
font-family: Roboto-Bold, Roboto;
font-weight: bold;
color: #000000;
line-height: 28px;
text-align: center; &_title {
margin: 20px; font-size: 24px;
font-family: Roboto-Bold, Roboto;
font-weight: bold;
color: #000000;
line-height: 28px;
text-align: center;
margin: 20px;
}
} }
}
&_bottom { &_bottom {
width: 100%; width: 100%;
@include flex_column; @include flex_column;
@include align_center; @include align_center;
position: absolute; position: absolute;
bottom: 350px; bottom: 350px;
} }
} }
</style> </style>
...@@ -2,19 +2,18 @@ ...@@ -2,19 +2,18 @@
* @Author: ninglupeng * @Author: ninglupeng
* @Date: 2022-10-31 14:22:41 * @Date: 2022-10-31 14:22:41
* @LastEditors: ninglupeng * @LastEditors: ninglupeng
* @LastEditTime: 2022-10-31 14:57:57 * @LastEditTime: 2022-11-03 13:12:44
* @Description: * @Description:
*/ */
module.exports = { module.exports = {
//第一部分 //第一页、第二页
'project': '', 'project': '',
'paragraph1': ' ', 'paragraph1': ' ',
"paragraph2": ' ', "paragraph2": ' ',
"paragraph3": ' ', "paragraph3": ' ',
"isAgree": ' ', "isAgree": ' ',
//第二部分 //第三页
"AgreementMode": '',//本人决定选择以下方式 "AgreementMode": '',//本人决定选择以下方式
"Mode1": '', "Mode1": '',
"Mode2": '', "Mode2": '',
...@@ -23,7 +22,26 @@ module.exports = { ...@@ -23,7 +22,26 @@ module.exports = {
"agreementFloor": '', //楼层 "agreementFloor": '', //楼层
"bedNumber": '', //床号 "bedNumber": '', //床号
"agreementSign": '', // 患者签字 "agreementSign": '', // 患者签字
"agreementDate": ''// 签字日期 "agreementDate": '',// 签字日期
//第四页
//第五页
"HasOnlineClass": "", // 是否上网课
//第六页
//第七页
"concludingRemarks": 'سىز بۇ قېتىمقى تولدۇرۇش مەزمۇنىنى تاماملاپ بولدىڭىز، ياردىمىڭىز ۋە قوللىغىنىڭىزغا رەھمەت.',
"goBack": 'ئالدىغا قايتىش'
......
...@@ -2,18 +2,18 @@ ...@@ -2,18 +2,18 @@
* @Author: ninglupeng * @Author: ninglupeng
* @Date: 2022-10-31 14:22:35 * @Date: 2022-10-31 14:22:35
* @LastEditors: ninglupeng * @LastEditors: ninglupeng
* @LastEditTime: 2022-10-31 14:58:33 * @LastEditTime: 2022-11-03 13:17:25
* @Description: * @Description:
*/ */
module.exports = { module.exports = {
//第一部分 //第一页、第二页
'project': '入院信息采集', 'project': '入院信息采集',
'paragraph1': ' 为保障您在我院住院治疗期间享有充分的知情同意权,医务人员将向您告知您的病情、主要医疗措施、医疗风险等情況,解答您对疾病的咨询。未经您本人充分知情和签名同意,医务人员将不得进行手术等重大医疗行为。但由于各人心理承受能力不同,以及疾病发展具有不可预测性,为有利于治疗,请您现授权委托一位您充分信任的代理人,代为行使您的知情同意权。我院将依据您签名出具的授权委托书,视代理人的代理行为为您本人真实意思的表示。如您末满18周岁或没有民事行为能力和限制民事行为能力的,您的法定监护人为您的法定伐理人,代为行使知情同意权。 ', 'paragraph1': ' 为保障您在我院住院治疗期间享有充分的知情同意权,医务人员将向您告知您的病情、主要医疗措施、医疗风险等情況,解答您对疾病的咨询。未经您本人充分知情和签名同意,医务人员将不得进行手术等重大医疗行为。但由于各人心理承受能力不同,以及疾病发展具有不可预测性,为有利于治疗,请您现授权委托一位您充分信任的代理人,代为行使您的知情同意权。我院将依据您签名出具的授权委托书,视代理人的代理行为为您本人真实意思的表示。如您末满18周岁或没有民事行为能力和限制民事行为能力的,您的法定监护人为您的法定伐理人,代为行使知情同意权。 ',
"paragraph2": ' 为了让医生给您制定最佳的洽疗方案,请您务必客观,真实地向医生提供您的病情资料和相关情況。 ', "paragraph2": ' 为了让医生给您制定最佳的洽疗方案,请您务必客观,真实地向医生提供您的病情资料和相关情況。 ',
"paragraph3": ' 特此告知 ', "paragraph3": ' 特此告知 ',
"isAgree": ' 上述告知书内容本人己充分了解 ', "isAgree": ' 上述告知书内容本人己充分了解 ',
//第二部分 //第三页
"AgreementMode": '本人决定选择以下方式',//本人决定选择以下方式 "AgreementMode": '本人决定选择以下方式',//本人决定选择以下方式
"Mode1": '向贵院出具授权委托书指定代理人', "Mode1": '向贵院出具授权委托书指定代理人',
"Mode2": '向贵院出具户籍等相关证明,明确法定代理人', "Mode2": '向贵院出具户籍等相关证明,明确法定代理人',
...@@ -22,6 +22,67 @@ module.exports = { ...@@ -22,6 +22,67 @@ module.exports = {
"agreementFloor": '楼层', //楼层 "agreementFloor": '楼层', //楼层
"bedNumber": '床号', //床号 "bedNumber": '床号', //床号
"agreementSign": '患者签字', // 患者签字 "agreementSign": '患者签字', // 患者签字
"countersign": '重签',//重签
"clickSign": '点击签字',//点击签字
"agreementDate": '签字日期', //签字日期 "agreementDate": '签字日期', //签字日期
"autograph": '签名',//签名
// 第四页
"patientName": "患者姓名", //患者姓名
"orNotByEntry": "近期是否由国外入境",//近期是否由国外入境
"nationality": "国籍", //国籍
"passportId": "护照号", //护照号
"HasSymptom": "是否有症状",//是否有症状
"otherSymptom": "其他症状",//其他症状
"otherOccupation": "其他职业",//其他职业
"age": "年龄", //年龄
"gender": "性别", //性别
"height": "身高", //身高
"weight": "体重", //体重
"maritalStatus": "婚姻状况", //婚姻状况
"birthday": "出生日期", //出生日期
"isConceive": "怀孕状况", //怀孕状况
"gestationalWeeks": "怀孕周期", //怀孕周期
"occupation": "职业", //职业
"contactInformation": "联系方式", //联系方式
"FamilyMembersPhone": "家属联系方式", //家属联系方式
"Registeredresidence": "户籍地", //户籍地
// "province", //籍贯 (省)
// "city", //籍贯 (市)
"address": "现居住地", //现居住地
"idCard": "身份证号", //身份证号
"typeOfMedicalInsurance": "医保类型", //医保类型
"insurance": "商业保险", //商业保险
//第五页
"HasOnlineClass": "是否上网课", // 是否上网课
//第六页
//第七页
"concludingRemarks": '您已完成本次填写内容 ,感谢您的帮助和支持。',
"goBack": '返回',
"yes": '是',
"no": "否",
"have": "有",
"noHave": "没有"
} }
\ No newline at end of file
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* @Author: ninglupeng * @Author: ninglupeng
* @Date: 2022-03-17 15:06:50 * @Date: 2022-03-17 15:06:50
* @LastEditors: ninglupeng * @LastEditors: ninglupeng
* @LastEditTime: 2022-03-22 16:09:11 * @LastEditTime: 2022-11-01 10:27:25
* @Description: * @Description:
*/ */
import http from '@/http/index' import http from '@/http/index'
...@@ -13,7 +13,7 @@ const state = { ...@@ -13,7 +13,7 @@ const state = {
token: '', token: '',
name: '', name: '',
userInfo: {}, userInfo: {},
page: 1, page:6,
} }
const mutations = { const mutations = {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment