提交 67afd87c 编写于 作者: 张磊's avatar 张磊

demo dev

上级 4a5e5d1b
......@@ -42,6 +42,14 @@ export const getTypeCodeList = () => {
withCredentials: true,
});
};
export const getTypeCodeListDemo = () => {
return request({
url: 'basic-data/constants/app?typeCodeList=P332',
method: 'get',
withCredentials: true,
});
};
// 跟进报告提交
// /trade/detection/record/operation/submit
......
......@@ -53,6 +53,14 @@ const routerConfig = [
title: '问卷结果页面',
},
},
{
path: '/insuranceQuestionResultPay',
name: 'insuranceQuestionResultPay',
component: () => import('@/views/insurance-question-result-pay/insuranceQuestionResult.vue'),
meta: {
title: '问卷结果页面',
},
},
{
path: '/insuranceQuestionBack',
name: 'insuranceQuestionBack',
......
......@@ -140,9 +140,15 @@
</template>
<script>
import {getDetectionName, appointment} from '@/api/appoint';
import { appointment} from '@/api/appoint';
import { getTypeCodeListDemo } from '@/api/detection.js';
import SelectTime from '@/components/selectTime/index.vue';
import dayjs from 'dayjs';
import {createOrder} from '@/api/question';
// 1. 创建订单
// 2。 预约接口
// 3。 详情接口
export default {
components: {
SelectTime,
......@@ -185,51 +191,39 @@ export default {
},
showSelectTime:false,
locationAreaCode: [],
hospitalId: '',
hospitalId: '139136',
projectEquityNo: '',
yunOrderNo: '',
isDisabled: false,
buttonStatus: false,
buttonText: '',
appointmentTimeShadow: '',
currentProject: '1',
orgData: [
{value: '大便潜血检测(肠癌风险)', no:'1'},
{value: '幽门螺杆菌检测(胃癌风险)', no:'2'},
{value: '甲胎蛋白指尖血检测(肝癌风险)', no:'3'},
]
currentProject: null,
orgData: []
};
},
computed: {
canSubmit() {
// this.dectionForm.goodsId &&
return (
this.dectionForm.appointmentTime &&
this.dectionForm.goodsId &&
this.dectionForm.hospitalName &&
this.hospitalId &&
this.yunOrderNo &&
this.buttonStatus
this.currentProject
);
},
},
mounted() {
this.$loading.show();
const { yunOrderNo, projectEquityNo } = this.$route.query;
this.yunOrderNo = yunOrderNo;
const { projectEquityNo } = this.$route.query;
this.projectEquityNo = projectEquityNo;
console.log('yunOrderNo', yunOrderNo);
this.getDetectionName(yunOrderNo);
this.getDetectionName();
},
methods: {
// 目前是配置一个检测信息,可能会拓展,所以返回的是一个list
getDetectionName(yunOrderNo) {
getDetectionName(yunOrderNo).then(res => {
if (res.code === '000000' && res.data) {
const dectionData = res.data[0] || {};
console.log('getDetectionName', dectionData);
this.dectionData = dectionData;
this.dectionForm.detectName = dectionData.detectionName;
this.dectionForm.goodsId = dectionData.goodsId;
getDetectionName() {
getTypeCodeListDemo().then(res => {
if (res.code == '000000' && res.data) {
console.log('--res', res);
this.orgData = res.data;
}
});
},
......@@ -267,29 +261,32 @@ export default {
this[name] = false;
},
appointment() {
this.$refs.dectionForm.validate().then(result => {
this.$refs.dectionForm.validate().then(async result => {
console.log('this.dectionForm', result);
const order = await this.createOrder();
console.log('--', order);
if(order) {
const data = {
appointmentTime: this.dectionForm.appointmentTime,
goodsId: this.dectionForm.goodsId,
hospitalId: this.hospitalId,
hospitalName: this.dectionForm.hospitalName,
yunOrderNo:this.yunOrderNo,
yunOrderNo:order.yunOrderNo,
};
appointment(data).then(res => {
if (res.code === '000000') {
this.$router.push({
path: '/appoint-details',
query: {
yunOrderNo: this.yunOrderNo,
projectEquityNo:this.projectEquityNo
}
});
// this.$router.push({
// path: '/appoint-details',
// query: {
// yunOrderNo: order.yunOrderNo,
// projectEquityNo:this.projectEquityNo
// }
// });
} else {
res.message && this.$toast(res.message);
}
});
}
}).catch(err => {
console.log(err);
});
......@@ -297,6 +294,23 @@ export default {
companySelect(i) {
console.log('9', i);
},
createOrder() {
return new Promise((resolve, reject) => {
const { projectEquityNo, externalOrderNo} = this.$route.query;
const data = {
projectEquityNo: projectEquityNo,
externalOrderNo: externalOrderNo || '123123',
insuranceMerchantProjectDetectionId: this.currentProject
};
createOrder(data).then(res => {
if (res.code == '000000') {
resolve(res.data);
}
}).catch(err => {
reject(err);
});
});
},
},
};
</script>
......
......@@ -151,7 +151,11 @@ export default {
if (this.hasQuestionnaire) {
this.query.needDetect = 1;
console.log('this.query.needDetect', this.query);
this.turnToPage('/insuranceQuestionResult', this.query);
// 是否付费
// payFlag "付费免费标识 -1未出结果 0无推荐 1免费 2付费
const {payFlag} = res.data;
const path = (payFlag && payFlag == 2) ? '/insuranceQuestionResultPay' : '/insuranceQuestionResult';
this.turnToPage(path, this.query);
} else {
this.turnToPage('/appoint', this.query);
}
......
<template>
<div class="insuranceQuestionResult-box">
<page-model
v-if="picaWechat != 'wechat'"
ref="PageModel"
:header-info="headerInfo"
/>
<div class="insuranceQuestionResult">
<div class="insuranceQuestionResult-info">
<template v-if="!needDetect">
<div class="info-top">
<div class="info-top-title">
防癌专家提醒您尽快{{ insuranceInfo.detectionKind == 0 ? '进行' : '领取' }}
</div>
<div class="info-top-name">
{{ detectionName }}
</div>
<div
v-if="insuranceInfo && insuranceInfo.detectionKind == 0"
class="info-top-tips"
>
<div class="tips-item">
<div class="tips-item-dot" />
DNA甲基化检测技术,对比传统肿瘤标志物检查,早期癌变检出率高5-10倍
</div>
<div class="tips-item">
<div class="tips-item-dot" />
早期检出、早期干预、实现可逆
</div>
<div class="tips-item">
<div class="tips-item-dot" />
检测报告阳性,最高可报销300元复查费用
</div>
</div>
<div
v-if="insuranceInfo && insuranceInfo.detectionKind == 1"
class="info-top-tips"
>
<div class="tips-item">
<div class="tips-item-dot" />
居家快速自测、方便卫生、轻松操作
</div>
<div class="tips-item">
<div class="tips-item-dot" />
检测快速,30分钟内即可获得结果
</div>
</div>
</div>
<img
src="https://files.yunqueyi.com/image/png/common/20230504134949399.png"
class="info-btn"
@click="toAppoint"
>
<div class="info-tips">
{{ insuranceInfo && insuranceInfo.detectionKind == 0 ? '点击上方按钮预约,并前往预约的医疗机构采样' : '点击上方按钮预约,并前往预约的医疗机构领取产品' }}
</div>
</template>
<template v-else>
<div class="info-noNeed">
<div class="info-noNeed-title">
<div class="text-left" />
参照本次评估结果
<div class="text-right" />
</div>
<div class="info-noNeed-result">
您可暂不进行防癌早筛检测
</div>
<div class="info-noNeed-tips">
<div class="tips-item">
<div class="tips-item-dot" />
坚持良好生活方式;
</div>
<div class="tips-item">
<div class="tips-item-dot" />
定期接受体检,关注个人健康
</div>
</div>
</div>
</template>
</div>
<div
v-if="detectionName && detectionName.length > 0"
class="tips-fixed"
>
注:请填写人根据问卷评估结果自主选择后续检测
</div>
</div>
</div>
</template>
<script>
import {getDetectionName} from '@/api/appoint';
import { mapGetters } from 'vuex';
export default {
data() {
return {
picaWechat:window._picaWechat,
headerInfo: {
title: '检测服务',
isBlack: true,
backMethod: 'web',
style: 'backgroundColor:#ffffff;zIndex:100;',
background: '',
},
needDetect: false,
detectionName:'',
detailInfo: {},
isLoading: true,
projectEquityNo: '',
orderNo: '',
yunOrderNo:'',
status:null,
query: {},
};
},
computed: {
...mapGetters('home', ['insuranceInfo']),
},
mounted() {
const { query } = this.$route;
this.$loading.show();
this.query = query;
this.yunOrderNo = query.yunOrderNo;
this.getDetectionName(query.yunOrderNo);
this.$sendBuriedData({
action: 'ACTION_WEB_AFTER',
component_tag: '7802850#0#0#问卷结果页面',
web_data:{yunOrderNo: this.yunOrderNo},
});
this.$loading.hide();
},
methods: {
statusMap(status) {
const m = {
0: '付费预约检测',
4: '付费预约检测',
5: '付费预约检测',
1: '查看详情',
2: '查看详情',
3: '查看详情',
};
return m[status];
},
// 目前是配置一个检测信息,可能会拓展,所以返回的是一个list ces
getDetectionName(yunOrderNo) {
getDetectionName(yunOrderNo).then(res => {
if (res.code === '000000' && res.data) {
const dectionData = res.data[0] || {};
console.log('dectionData.detectionName', this.insuranceInfo, dectionData);
this.detectionName = dectionData.detectionName;
this.$store.dispatch('home/setInsuranceInfo', dectionData);
this.$loading.hide();
}
});
},
// 去预约
toAppoint() {
const { projectEquityNo, externalOrderNo, yunOrderNo } = this.query;
console.log('this.query', this.query);
this.$dialog.alert({
title: '版本提示',
confirmButtonText: '我知道了',
message: '当前版本为内部测试版本,正式版本会拉起微信支付并依据支付结果展示。',
confirmButtonColor:'#00bda5'
}).then(() => {
this.$router.push({
path: '/appoint',
query: {projectEquityNo, externalOrderNo, yunOrderNo},
});
});
},
},
};
</script>
<style lang="scss" scoped>
.insuranceQuestionResult-box{
min-height: 100vh;
background: #F3FCFF;
padding-bottom: 50px;
}
.insuranceQuestionResult {
width: 100%;
box-sizing: border-box;
color: #676869;
overflow: auto;
text-align: center;
background: url('https://files.yunqueyi.com/image/png/common/20230228101352132.png') no-repeat left top;
background-size: 100% 209px ;
}
.insuranceQuestionResult-info{
width: 348px;
background: linear-gradient(180deg, #FFFFFF 0%, #FFFFFF 100%);
box-shadow: 0px 9px 6px 0px #EBF9F8;
border-radius: 20px;
border: 1px solid rgba(0,189,165,0.33);
margin: 168px auto 54px;
.info-top{
width: 308px;
height: auto;
padding-bottom: 50px;
background: #FFFBF9;
border-radius: 11px;
margin: 10px auto 20px;
overflow: hidden;
.info-top-title{
margin-top: 25px;
height: 21px;
font-size: 15px;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #EF8337;
line-height: 21px;
}
.info-top-name{
margin-top: 8px;
height: 22px;
font-size: 20px;
font-family: PingFangSC-Semibold, PingFang SC;
font-weight: 600;
color: #EF8337;
line-height: 22px;
}
.info-top-tips{
margin-top: 25px;
.tips-item{
position: relative;
padding-left: 25px;
padding-right: 14px;
font-size: 14px;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #212121;
line-height: 20px;
text-align: left;
}
.tips-item-dot{
position: absolute;
width: 3px;
height: 3px;
background: #EF8337;
opacity: 0.8;
left: 15px;
top: 9px;
border-radius: 50%;
}
}
}
.info-btn{
position: relative;
width: 260px;
height: 80px;
font-size: 21px;
font-weight: 600;
color: #FFFFFF;
left: 50%;
transform: translateX(-50%);
line-height: 64px;
text-align: center;
margin-bottom: 20px;
}
.info-tips{
height: 18px;
font-size: 13px;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #666666;
line-height: 18px;
margin-bottom: 38px;
}
}
.tips{
height: 21px;
font-size: 13px;
font-family: PingFangSC-Light, PingFang SC;
font-weight: 300;
color: #999999;
line-height: 21px;
}
.info-noNeed{
width: 307px;
height: 154px;
background: #F9FAFB;
border-radius: 11px;
margin: 22px auto;
overflow: hidden;
.info-noNeed-title{
height: 21px;
font-size: 15px;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #00BDA5;
line-height: 21px;
margin-top: 20px;
display: flex;
justify-content: center;
align-items: center;
position: relative;
.text-left{
width: 20px;
height: 1px;
background: linear-gradient(270deg, #EEEEEE 0%, #D8D8D8 100%);
border-radius: 1px;
margin-right: 6px;
}
.text-right{
width: 20px;
height: 1px;
background: linear-gradient(270deg, #EEEEEE 0%, #D8D8D8 100%);
border-radius: 1px;
margin-left: 6px;
}
}
.info-noNeed-result{
margin-top: 4px;
height: 20px;
font-size: 18px;
font-family: PingFangSC-Medium, PingFang SC;
font-weight: 500;
color: #00BDA5;
line-height: 20px;
margin-bottom: 25px;
}
.info-noNeed-tips{
margin-bottom: 25px;
.tips-item{
position: relative;
font-size: 14px;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #666666;
line-height: 20px;
text-align: left;
padding-left:38px ;
.tips-item-dot{
position: absolute;
width: 3px;
height: 3px;
background: #179082;
opacity: 0.8;
left: 27px;
top: 9px;
border-radius: 50%;
}
}
}
}
.tips-fixed{
margin-top: 53px;
width: 100%;
bottom: 70px;
height: 21px;
font-size: 13px;
font-weight: 300;
color: #999999;
line-height: 21px;
}
</style>
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册