Commit 91fb54e1 authored by 罗成兵's avatar 罗成兵

配置文件

parent 25e0aeb7
......@@ -4,7 +4,8 @@ import VueRouter from 'vue-router'
Vue.use(VueRouter)
const routes = [
{path: '/',name: 'provideUnit',component: () => import('../views/provideUnit/provideUnit.vue'),meta: { keepAlive: true,}},
{path: '/',name: 'index',component: () => import('../views/index/index.vue'),meta: { keepAlive: true,}},
{path: '/provideUnit',name: 'provideUnit',component: () => import('../views/provideUnit/provideUnit.vue'),meta: { keepAlive: true,}},
{path: '/receiveApply',name: 'receiveApply',component: () => import('../views/receiveApply/receiveApply.vue'),meta: { keepAlive: true, isBack: false,}},
{path: '/informedConsentForm',name: 'informedConsentForm',component: () => import('../views/informedConsentForm/informedConsentForm.vue'),},
{path: '/applyRecord',name: 'applyRecord',component: () => import('../views/applyRecord/applyRecord.vue'),meta: { keepAlive: true, isBack: false}},
......
<template>
<div>
<div v-if="msg">
<br><br><br><br><br>
<van-empty image="error" :description="msg"/>
<van-button style="margin-left: 10%;width: 80%" round type="danger" color="#EC808D" @click="handleBack()">
返回
</van-button>
</div>
</div>
</template>
<script>
import {callMobile, isIOSWebKit} from '@/utils/common';
import {Dialog} from 'vant';
export default {
components: {},
data() {
return {
msg: null,
scrollPosition: 0,
}
},
created() {
let vm = this;
window['init'] = (result) => {
vm.initUserInfo(result);
vm.showMsg();
};
window['qrcodeContent'] = (result) => {
vm.scanQRCallBack(result);
};
},
mounted() {
if (process.env.NODE_ENV == "dev") {
let userInfo = {
account: '18487125843',
token: '7de354fd8be1484cacbc41e96fe88d7e',
userId: '11133351501171512',
};
window.sessionStorage.setItem('userInfo', JSON.stringify(userInfo));
this.showMsg();
} else {
let query = this.$route.query;
let userInfo = {
account: query.account,
token: query.token,
userId: query.userId,
};
if (!userInfo.userId && !userInfo.account) {
this.msg = "用户信息获取失败!"
callMobile('init', {});
} else {
if (!userInfo.userId || !userInfo.account) {
this.msg = "用户信息获取失败!"
return;
}
window.sessionStorage.setItem('userInfo', JSON.stringify(userInfo));
this.showMsg();
}
}
},
activated() {
window.scrollTo(0, this.scrollPosition);
},
methods: {
handleBack() {
callMobile('goIndex', {});
},
initUserInfo(val) {
let ios = isIOSWebKit();
if (ios) {
window.sessionStorage.setItem('userInfo', val);
} else {
window.sessionStorage.setItem('userInfo', JSON.stringify(val));
}
},
showMsg(){
Dialog.alert({
title: '温馨提示',
message: '备孕妇女从孕前3个月,坚持每天服用0.4mg叶酸或含叶酸的复合维生素至少到怀孕满3个月,可预防胎儿神经管缺陷的发生,还能减少唇腭裂、先心病、早产等风险。特殊情况妇女如肥胖、糖尿病等要加量。',
confirmButtonText: "好的,知道了"
}).then(() => {
this.$router.push('provideUnit');
});
}
},
beforeRouteLeave(to, from, next) {
this.scrollPosition = document.documentElement.scrollTop || document.body.scrollTop;
next();
},
}
</script>
<style lang="less" scoped>
</style>
\ No newline at end of file
<template>
<div class="provideUnit">
<!-- 头部 -->
<van-nav-bar fixed title="选择叶酸发放单位">
<template #left>
<img src="../../assets/images/back.png" alt="" @click="handleBack"/>
</template>
<template #right>
<div @click="handleRecord">申请记录</div>
</template>
</van-nav-bar>
<!-- 搜索框 -->
<van-search @blur="handleInput" style="width: 88%;display: inline-block" @clear="handleCancel"
v-model="seachInfo.unitName" placeholder="请输入搜索关键词"/>
<van-icon size="33" style="float: right;margin-right: 8px;" name="scan" @click="openQrCode"/>
<!-- 申请部分 -->
<template v-if="unitList.length != 0">
<div class="flex_block" v-for="item in unitList" :key="item.id" @click="handleClick(item)">
<div class="flex_block_title">
<span class="top">{{ item.unitName }}</span>
<span class="bottom">地址:{{
(item.areaFullName ? item.areaFullName : "") + (item.unitAddress ? item.unitAddress : "")
}}</span>
</div>
<div class="flex_block_btn">申请</div>
</div>
</template>
<van-empty v-else description="暂无发放单位"/>
</div>
<div class="provideUnit">
<!-- 头部 -->
<van-nav-bar fixed title="选择叶酸发放单位">
<template #left>
<img src="../../assets/images/back.png" alt="" @click="handleBack"/>
</template>
<template #right>
<div @click="handleRecord">申请记录</div>
</template>
</van-nav-bar>
<!-- 搜索框 -->
<van-search @blur="handleInput" style="width: 88%;display: inline-block" @clear="handleCancel"
v-model="seachInfo.unitName" placeholder="请输入搜索关键词"/>
<van-icon size="33" style="float: right;margin-right: 8px;" name="scan" @click="openQrCode"/>
<!-- 申请部分 -->
<template v-if="unitList.length != 0">
<div class="flex_block" v-for="item in unitList" :key="item.id" @click="handleClick(item)">
<div class="flex_block_title">
<span class="top">{{ item.unitName }}</span>
<span class="bottom">地址:{{
(item.areaFullName ? item.areaFullName : "") + (item.unitAddress ? item.unitAddress : "")
}}</span>
</div>
<div class="flex_block_btn">申请</div>
</div>
</template>
<van-empty v-else description="暂无发放单位"/>
</div>
</template>
<script>
import {getProvideUnit, getProvideUnitById} from '@/axios/api';
......@@ -34,178 +34,162 @@ import {callMobile, isIOSWebKit, isEmpty} from '@/utils/common';
import {Dialog} from 'vant';
export default {
components: {},
data() {
return {
seachInfo: {
unitName: '云南省',
},
unitList: [],
scrollPosition: 0,
}
components: {},
data() {
return {
seachInfo: {
unitName: '云南省',
},
unitList: [],
scrollPosition: 0,
}
},
created() {
let vm = this;
// window['init'] = (result) => {
// vm.initUserInfo(result);
// };
window['qrcodeContent'] = (result) => {
vm.scanQRCallBack(result);
};
},
mounted() {
this.getProvideUnitList();
},
activated() {
window.scrollTo(0, this.scrollPosition);
},
methods: {
handleInput(val) {
this.getProvideUnitList();
},
created() {
Dialog.alert({
title: '温馨提示',
message: '备孕妇女从孕前3个月,坚持每天服用0.4mg叶酸或含叶酸的复合维生素至少到怀孕满3个月,可预防胎儿神经管缺陷的发生,还能减少唇腭裂、先心病、早产等风险。特殊情况妇女如肥胖、糖尿病等要加量。',
confirmButtonText: "好的,知道了"
}).then(() => {
});
let vm = this;
window['init'] = (result) => {
vm.initUserInfo(result);
};
window['qrcodeContent'] = (result) => {
vm.scanQRCallBack(result);
};
handleCancel() {
this.getProvideUnitList();
},
mounted() {
if (process.env.NODE_ENV == "dev") {
let userInfo = {
account: '18487125843',
token: '7de354fd8be1484cacbc41e96fe88d7e',
userId: '11133351501171512',
};
window.sessionStorage.setItem('userInfo', JSON.stringify(userInfo));
} else {
callMobile('init', {});
openQrCode() {
callMobile("qrcode", {});
},
getProvideUnitList() {
this.$toast.open();
let unitName = this.seachInfo.unitName;
if (isEmpty(unitName)) {
unitName = undefined;
}
getProvideUnit(unitName).then(res => {
if (res.code === 'SUCCESS') {
if (res.data) {
this.unitList = res.data;
} else {
this.unitList = [];
}
}
this.getProvideUnitList();
}).finally(() => {
this.$toast.close();
});
},
// 申请
handleClick(val) {
let areaFullName = val.areaFullName ? val.areaFullName : "";
let address = val.unitAddress ? val.unitAddress : "";
let unitAddress = areaFullName + address;
let applyUnitInfo = {
unitId: val.id,
unitName: val.unitName,
unitAddress: unitAddress,
};
window.sessionStorage.setItem('applyUnitInfo', JSON.stringify(applyUnitInfo));
this.$router.push('questionAnswer');
},
activated() {
window.scrollTo(0, this.scrollPosition);
// 申请记录
handleRecord() {
this.$router.push('applyRecord');
},
methods: {
handleInput(val) {
this.getProvideUnitList();
},
handleCancel() {
this.getProvideUnitList();
},
openQrCode() {
callMobile("qrcode", {});
},
getProvideUnitList() {
this.$toast.open();
let unitName = this.seachInfo.unitName;
if (isEmpty(unitName)) {
unitName = undefined;
}
getProvideUnit(unitName).then(res => {
if (res.code === 'SUCCESS') {
if (res.data) {
this.unitList = res.data;
} else {
this.unitList = [];
}
}
}).finally(() => {
this.$toast.close();
});
},
// 申请
handleClick(val) {
let areaFullName = val.areaFullName ? val.areaFullName : "";
let address = val.unitAddress ? val.unitAddress : "";
let unitAddress = areaFullName + address;
handleBack() {
callMobile('goIndex', {});
},
scanQRCallBack(qrContent) {
if (!qrContent) {
this.$toast.success('无效的二维码');
return;
}
let qrContentArr = qrContent.split("?");
if (qrContentArr.length < 2) {
this.$toast.success('无效的二维码');
return;
}
getProvideUnitById(qrContentArr[1]).then(res => {
if (res.code === 'SUCCESS') {
if (res.data) {
let areaFullName = res.data.areaFullName ? res.data.areaFullName : "";
let unitAddress = res.data.unitAddress ? res.data.unitAddress : "";
let applyUnitInfo = {
unitId: val.id,
unitName: val.unitName,
unitAddress: unitAddress,
unitId: res.data.id,
unitName: res.data.unitName,
unitAddress: areaFullName + unitAddress,
};
window.sessionStorage.setItem('applyUnitInfo', JSON.stringify(applyUnitInfo));
this.$router.push('questionAnswer');
},
// 申请记录
handleRecord() {
this.$router.push('applyRecord');
},
handleBack() {
callMobile('goIndex', {});
},
scanQRCallBack(qrContent) {
if (!qrContent) {
this.$toast.success('无效的二维码');
return;
}
let qrContentArr = qrContent.split("?");
if (qrContentArr.length < 2) {
this.$toast.success('无效的二维码');
return;
}
getProvideUnitById(qrContentArr[1]).then(res => {
if (res.code === 'SUCCESS') {
if (res.data) {
let areaFullName = res.data.areaFullName ? res.data.areaFullName : "";
let unitAddress = res.data.unitAddress ? res.data.unitAddress : "";
let applyUnitInfo = {
unitId: res.data.id,
unitName: res.data.unitName,
unitAddress: areaFullName + unitAddress,
};
window.sessionStorage.setItem('applyUnitInfo', JSON.stringify(applyUnitInfo));
this.$router.push('questionAnswer');
} else {
this.$toast.success('无效的二维码');
}
}
})
},
initUserInfo(val) {
let ios = isIOSWebKit();
if (ios) {
window.sessionStorage.setItem('userInfo', val);
} else {
window.sessionStorage.setItem('userInfo', JSON.stringify(val));
}
},
} else {
this.$toast.success('无效的二维码');
}
}
})
},
beforeRouteLeave(to, from, next) {
this.scrollPosition = document.documentElement.scrollTop || document.body.scrollTop;
next();
initUserInfo(val) {
let ios = isIOSWebKit();
if (ios) {
window.sessionStorage.setItem('userInfo', val);
} else {
window.sessionStorage.setItem('userInfo', JSON.stringify(val));
}
},
},
beforeRouteLeave(to, from, next) {
this.scrollPosition = document.documentElement.scrollTop || document.body.scrollTop;
next();
},
}
</script>
<style lang="less" scoped>
.provideUnit {
padding-top: 52px;
padding-top: 52px;
.flex_block {
display: flex;
justify-content: space-between;
align-items: center;
margin: 24px 24px 24px 16px;
.flex_block {
display: flex;
justify-content: space-between;
align-items: center;
margin: 24px 24px 24px 16px;
.flex_block_title {
display: flex;
flex-direction: column;
width: 90%;
.flex_block_title {
display: flex;
flex-direction: column;
width: 90%;
.top {
color: #262626;
font-size: 14px;
}
.top {
color: #262626;
font-size: 14px;
}
.bottom {
color: #595959;
font-size: 12px;
margin-top: 7px;
}
}
.bottom {
color: #595959;
font-size: 12px;
margin-top: 7px;
}
}
.flex_block_btn {
width: 48px;
height: 25px;
border: 1px solid #F5222D;
border-radius: 24px;
font-size: 12px;
color: #F5222D;
display: flex;
align-items: center;
justify-content: center;
margin-left: 8px;
}
.flex_block_btn {
width: 48px;
height: 25px;
border: 1px solid #F5222D;
border-radius: 24px;
font-size: 12px;
color: #F5222D;
display: flex;
align-items: center;
justify-content: center;
margin-left: 8px;
}
}
}
</style>
\ No newline at end of file
<template>
<div>
<!-- 头部 -->
<van-nav-bar fixed title="问卷">
<template #left>
<img src="../../assets/images/back.png" alt="" @click="goBack"/>
</template>
<template #right>
<div></div>
</template>
</van-nav-bar>
<br><br><br>
<div class="content">
<div>
根据您的实际情况进行选择(可多选):
</div>
<van-checkbox-group v-model="checkedList" checked-color="#F5222D">
<br>
<span v-for="(item,index) in questionList">
<div>
<!-- 头部 -->
<van-nav-bar fixed title="问卷">
<template #left>
<img src="../../assets/images/back.png" alt="" @click="goBack"/>
</template>
<template #right>
<div></div>
</template>
</van-nav-bar>
<br><br><br>
<div class="content">
<div>
根据您的实际情况进行选择(可多选):
</div>
<van-checkbox-group v-model="checkedList" checked-color="#F5222D">
<br>
<span v-for="(item,index) in questionList">
<van-checkbox shape="square" :name="item.value">{{ item.name }}</van-checkbox>
<van-divider/>
</span>
</van-checkbox-group>
<p style="margin-left: 15%;color:#F5222D ">建议服用:{{ formData.recommendEat }}</p>
<br>
<div style="text-align: center">
<van-row>
<van-col span="12">
<van-button style="width: 150px" round color="#EC808D" plain @click="onSubmit(1)">忽略
</van-button>
</van-col>
<van-col span="12">
<van-button style="width: 150px" round type="danger" color="#EC808D" @click="onSubmit(2)">
提交问卷
</van-button>
</van-col>
</van-row>
</div>
</div>
</van-checkbox-group>
<p style="margin-left: 15%;color:#F5222D ">建议服用:{{ formData.recommendEat }}</p>
<br>
<div style="text-align: center">
<van-row>
<van-col span="12">
<van-button style="width: 150px" round color="#EC808D" plain @click="onSubmit(1)">忽略
</van-button>
</van-col>
<van-col span="12">
<van-button style="width: 150px" round type="danger" color="#EC808D" @click="onSubmit(2)">
提交问卷
</van-button>
</van-col>
</van-row>
</div>
</div>
</div>
</template>
<script>
import {getUserInfoLast} from '@/axios/api'
import { Notify } from 'vant';
export default {
name: "questionAnswer",
data() {
return {
checkedList: [],
questionList: [{value: "1", name: "1、您是否患糖尿病?"}, {value: "2", name: "2、您是否患有癫痫?"},
{value: "3", name: "3、您或丈夫是否患有神经管缺陷或曾有神经管缺陷生育史?"},
{value: "4", name: "4、您是否患有同型半胱氨酸血症?"},
{value: "5", name: "5、您是否患有先天性脑积水、先天性心脏病、唇腭裂、肢体缺陷、泌尿系统缺陷?"},
{value: "6", name: "6、您的一二级直系女性亲属是否有神经管缺陷生育史?"},
{
value: "7",
name: "7、您是否正在服用以下药物:卡马西平、丙戊酸、苯妥英钠、二甲双胍、扑米酮、苯巴比妥、甲氨蝶呤、柳氮磺胺吡啶、甲氧咔啶、氨苯蝶啶、考来烯胺?"
},
{value: "8", name: "8、你是否患有胃肠道吸收不良?"}],
formData: {recommendEat: "2颗/天(0.8mg/天)"},
name: "questionAnswer",
data() {
return {
checkedList: [],
questionList: [{value: "1", name: "1、您是否患糖尿病?"}, {value: "2", name: "2、您是否患有癫痫?"},
{value: "3", name: "3、您或丈夫是否患有神经管缺陷或曾有神经管缺陷生育史?"},
{value: "4", name: "4、您是否患有同型半胱氨酸血症?"},
{value: "5", name: "5、您是否患有先天性脑积水、先天性心脏病、唇腭裂、肢体缺陷、泌尿系统缺陷?"},
{value: "6", name: "6、您的一二级直系女性亲属是否有神经管缺陷生育史?"},
{
value: "7",
name: "7、您是否正在服用以下药物:卡马西平、丙戊酸、苯妥英钠、二甲双胍、扑米酮、苯巴比妥、甲氨蝶呤、柳氮磺胺吡啶、甲氧咔啶、氨苯蝶啶、考来烯胺?"
},
{value: "8", name: "8、你是否患有胃肠道吸收不良?"}],
formData: {recommendEat: "2颗/天(0.8mg/天)"},
}
},
watch: {
checkedList(checkedList) {
this.formData.recommendEat = '2颗/天(0.8mg/天)';
checkedList.forEach(x => {
if (x == '3') {
this.formData.recommendEat = "10颗/天(4mg/天)";
}
},
watch: {
checkedList(checkedList) {
this.formData.recommendEat = '2颗/天(0.8mg/天)';
checkedList.forEach(x => {
if (x == '3') {
this.formData.recommendEat = "10颗/天(4mg/天)";
}
if (x == '4') {
this.formData.recommendEat = "13颗/天(5.2mg/天)";
}
})
if (x == '4') {
this.formData.recommendEat = "13颗/天(5.2mg/天)";
}
})
}
},
mounted() {
this.getLastRecord();
},
methods: {
// 返回
goBack() {
this.$router.push('provideUnit');
},
mounted() {
this.getLastRecord();
},
methods: {
// 返回
goBack() {
this.$router.push('provideUnit');
},
getLastRecord() {
this.$toast.open();
let userInfo = JSON.parse(sessionStorage.getItem('userInfo'));
getUserInfoLast(userInfo.userId).then(res => {
if (res.code === 'SUCCESS') {
if (res.data) {
this.formData = res.data;
let {presentCode} = res.data;
this.formData.presentCode = presentCode;
if (this.formData.question) {
this.checkedList = this.formData.question.split(",");
}
if (!this.formData.recommendEat) {
this.formData.recommendEat = "2颗/天(0.8mg/天)";
}
}
}
}).finally(() => {
this.$toast.close();
});
},
onSubmit(type) {
if (type == 1) {
this.formData.question = null;
sessionStorage.setItem("lastRecord", JSON.stringify(this.formData));
this.$router.push('receiveApply');
return;
getLastRecord() {
let userInfo = JSON.parse(sessionStorage.getItem('userInfo'))
if (!userInfo){
Notify({ type: 'warning', message: '用户信息获取失败!' });
return
}
this.$toast.open();
getUserInfoLast(userInfo.userId).then(res => {
if (res.code === 'SUCCESS') {
if (res.data) {
this.formData = res.data;
let {presentCode} = res.data;
this.formData.presentCode = presentCode;
if (this.formData.question) {
this.checkedList = this.formData.question.split(",");
}
if (this.checkedList.length == 0) {
this.$toast.tips('请您选择答题后提交');
return;
if (!this.formData.recommendEat) {
this.formData.recommendEat = "2颗/天(0.8mg/天)";
}
let question = "";
this.checkedList.forEach(x => {
question += x + ",";
});
this.formData.question = question.substring(0, question.length - 1);
sessionStorage.setItem("lastRecord", JSON.stringify(this.formData));
this.$router.push({path: 'receiveApply'});
}
}
}).finally(() => {
this.$toast.close();
});
},
onSubmit(type) {
if (type == 1) {
this.formData.question = null;
sessionStorage.setItem("lastRecord", JSON.stringify(this.formData));
this.$router.push('receiveApply');
return;
}
if (this.checkedList.length == 0) {
this.$toast.tips('请您选择答题后提交');
return;
}
let question = "";
this.checkedList.forEach(x => {
question += x + ",";
});
this.formData.question = question.substring(0, question.length - 1);
sessionStorage.setItem("lastRecord", JSON.stringify(this.formData));
this.$router.push({path: 'receiveApply'});
}
}
}
</script>
<style scoped>
.content {
margin-left: 15px;
margin-left: 15px;
}
/deep/ .content .van-checkbox__label {
font-size: 14px;
font-size: 14px;
}
</style>
\ No newline at end of file
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