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

Merge branch 'feature/zl' into 'release'

Feature/zl

See merge request !184
#!/bin/bash
hasGit=`which git` # 判断是否存在git
msg=${1:-'auto commit'} # 获取终端输入的第一个参数,若为空则为auto commit
if [ ! $hasGit ];then
echo 'Please download git first!';
exit 1;
else
current_id=`git log -n 15 develop --pretty=format:"%H"`
current_id2=`git log -n 15 origin/develop --pretty=format:"%H"`
echo "local: $current_id "+"----"+" $current_id2"
fi
#!/bin/bash #!/bin/bash
hasGit=`which git` # 判断是否存在git hasGit=`which git` # 判断是否存在git
msg=${1:-'auto commit'} # 获取终端输入的第一个参数,若为空则为auto commit msg=${1:-'auto commit'} # 获取终端输入的第一个参数,若为空则为auto commit
originBranch='origin/develop'
if [ ! $hasGit ];then if [ ! $hasGit ];then
echo 'Please download git first!'; echo 'Please download git first!';
exit 1; exit 1;
else else
git remote update
git fetch --all git fetch --all
result=`git symbolic-ref --short -q HEAD` # 获取分支名 result=`git symbolic-ref --short -q HEAD` # 获取分支名
current_id=`git log -n 1 origin/release --pretty=format:"%H"` diff=`git diff $result $originBranch | grep -i ">>>>>>"`
git reset --soft $current_id empty=""
git add . if test $diff -eq $empty
git commit -m "$msg" then
echo "curBranch $result" current_id=`git log -n 1 $originBranch --pretty=format:"%H"`
git push -f origin $result # 提交代码到github(修改了远程项目名) echo "没有冲突,继续"
fi echo "远程目标分支: $originBranch "
echo "远程目标分支最新commit: $current_id"
git reset --soft $current_id
git add .
git commit -m "$msg"
git push origin --force-with-lease $result # 提交代码到github(修改了远程项目名)
else
git add .
git commit -m "auto commit"
git push origin $result
echo "本地分支和origin/release存在冲突"
echo "result: $result $diff"
fi
fi
\ No newline at end of file
...@@ -65,3 +65,13 @@ export const getCheckInUserInfo = async(data) => { ...@@ -65,3 +65,13 @@ export const getCheckInUserInfo = async(data) => {
withCredentials: true, withCredentials: true,
}); });
}; };
// /tis/insurance / save / order / detection / result
export const saveOrder = async(data) => {
return request({
method: 'post',
data,
url: '/tis/insurance/save/order/detection/result',
withCredentials: true,
});
};
...@@ -42,6 +42,14 @@ export const getTypeCodeList = () => { ...@@ -42,6 +42,14 @@ export const getTypeCodeList = () => {
withCredentials: true, withCredentials: true,
}); });
}; };
export const getTypeCodeListDemo = () => {
return request({
url: 'basic-data/constants/app?typeCodeList=P332',
method: 'get',
withCredentials: true,
});
};
// 跟进报告提交 // 跟进报告提交
// /trade/detection/record/operation/submit // /trade/detection/record/operation/submit
......
...@@ -112,9 +112,11 @@ export default { ...@@ -112,9 +112,11 @@ export default {
// 获取机构列表 // 获取机构列表
getScheduling() { getScheduling() {
const {projectEquityNo, hospitalId} = this; const {projectEquityNo, hospitalId} = this;
getScheduling({ projectEquityNo, hospitalId }).then(res => { if(projectEquityNo && hospitalId) {
this.timsArray = res.data; getScheduling({ projectEquityNo, hospitalId }).then(res => {
}); this.timsArray = res.data;
});
}
}, },
selectItem() { selectItem() {
if (this.selectTimes === '') { if (this.selectTimes === '') {
......
import Vue from 'vue'; import Vue from 'vue';
import picaGuideApp from '@pica-kit/pica-ui-component/lib/pica-guide-app'; import picaGuideApp from '@pica-kit/pica-ui-component/lib/pica-guide-app';
import PageModel from '@pica-kit/page-model'; import PageModel from '@pica-kit/page-model';
import { Dialog, Field, Overlay, Button, Popup, Icon} from 'vant'; import { Dialog, Field, Overlay, Button, Popup, Icon, RadioGroup, Radio} from 'vant';
import Loading from '@/components/loading/loading'; import Loading from '@/components/loading/loading';
...@@ -14,3 +14,5 @@ Vue.use(Overlay); ...@@ -14,3 +14,5 @@ Vue.use(Overlay);
Vue.use(Button); Vue.use(Button);
Vue.use(Popup); Vue.use(Popup);
Vue.use(Icon); Vue.use(Icon);
Vue.use(RadioGroup);
Vue.use(Radio);
...@@ -37,6 +37,14 @@ const routerConfig = [ ...@@ -37,6 +37,14 @@ const routerConfig = [
title: '快检详情', title: '快检详情',
}, },
}, },
{
path: '/insuranceDetectionDetailDemo',
name: 'insuranceQuickDetectionDetailDemo',
component: () => import('@/views/insurance-Detection-detail-demo/index'),
meta: {
title: '检测详情',
},
},
{ {
path: '/insuranceQuestionResult', path: '/insuranceQuestionResult',
name: 'insuranceQuestionResult', name: 'insuranceQuestionResult',
...@@ -45,6 +53,14 @@ const routerConfig = [ ...@@ -45,6 +53,14 @@ const routerConfig = [
title: '问卷结果页面', title: '问卷结果页面',
}, },
}, },
{
path: '/insuranceQuestionResultPay',
name: 'insuranceQuestionResultPay',
component: () => import('@/views/insurance-question-result-pay/insuranceQuestionResult.vue'),
meta: {
title: '问卷结果页面',
},
},
{ {
path: '/insuranceQuestionBack', path: '/insuranceQuestionBack',
name: 'insuranceQuestionBack', name: 'insuranceQuestionBack',
...@@ -58,6 +74,14 @@ const routerConfig = [ ...@@ -58,6 +74,14 @@ const routerConfig = [
title: '预约', title: '预约',
}, },
}, },
{
path: '/appoint-demo',
name: 'appointDemo',
component: () => import('@/views/appoint-demo/index.vue'),
meta: {
title: '癌症早筛检测预约',
},
},
{ {
path: '/home', path: '/home',
name: 'home', name: 'home',
...@@ -92,6 +116,11 @@ const routerConfig = [ ...@@ -92,6 +116,11 @@ const routerConfig = [
name: 'insuranceregistersuccess', name: 'insuranceregistersuccess',
component: () => import('@/views/insurance-register/register-success.vue'), component: () => import('@/views/insurance-register/register-success.vue'),
}, },
{
path: '/sz-home',
name: 'sz-home',
component: () => import('@/views/sz-home/index.vue'),
},
]; ];
// // 无问卷-0001 有问卷未填写-0101 已填写问卷未出结果-0102 已出结果无需领用-0401 已出结果未预约-0201 已预约未采样-0301 已预约已采样-0302 // // 无问卷-0001 有问卷未填写-0101 已填写问卷未出结果-0102 已出结果无需领用-0401 已出结果未预约-0201 已预约未采样-0301 已预约已采样-0302
// const routerMap = { // const routerMap = {
......
import Cookies from 'js-cookie';
const VUE_APP_ENV = process.env.VUE_APP_ENV;
const VUE_APP_DOMAIN = process.env.VUE_APP_DOMAIN;
const localDomain = VUE_APP_ENV === 'development' ? window.location.hostname : VUE_APP_DOMAIN;
export const setCookie = (
cname,
cvalue,
params = {
path: '/',
expires: 7,
domain: localDomain,
},
) => {
delCookie(cname);
Cookies.set(cname, cvalue, params);
};
export const getCookie = (
cname,
params = { path: '/', domain: localDomain },
) => {
const data = Cookies.get(cname, params);
return data;
};
export const delCookie = (cname) => {
Cookies.remove(cname, {
path: '/',
domain: localDomain,
});
Cookies.remove(cname, {
path: '/',
domain: '.yunqueyi.com',
});
Cookies.remove(cname, {
path: '/',
});
};
import * as cookieFun from './cookieFun';
export const setCookie = cookieFun.setCookie;
export const getCookie = cookieFun.getCookie;
export const delCookie = cookieFun.delCookie;
export const formatDate = (datetime) => { export const formatDate = (datetime) => {
var date = new Date(datetime); // 时间戳为10位需*1000,时间戳为13位的话不需乘1000 var date = new Date(datetime); // 时间戳为10位需*1000,时间戳为13位的话不需乘1000
var year = date.getFullYear(), var year = date.getFullYear(),
......
<template>
<div class="insurance-detection-appoint-demo">
<page-model
v-if="picaWechat != 'wechat'"
ref="PageModel"
:header-info="headerInfo"
/>
<div class="bg-img">
<div class="title-1">
检测预约
</div>
<div class="title-2">
及时接受检测结果检测报告
</div>
<img
src="@/assets/images/demo-bg.png"
alt=""
>
</div>
<div class="wrap">
<div class="choose-section">
<van-form
ref="dectionForm"
validate-first
>
<van-field
name="checkboxGroup"
label="检测项目"
class="hidden-border"
required
>
<template #input />
</van-field>
<van-field
name="radio"
label=""
>
<template #input>
<van-radio-group
v-model="currentProject"
direction="horizontal"
>
<van-radio
v-for="(item) in orgData"
:key="item.no"
checked-color="#00bda5"
class="item-radio"
:name="item.no"
>
{{ item.value }}
</van-radio>
</van-radio-group>
</template>
</van-field>
<van-field
label="检测地点"
required
disabled
class="appoint-form-title"
/>
<van-field
v-model="dectionForm.location"
class="appoint-form-items"
label="省市区"
disabled
right-icon="arrow"
placeholder="请选择省市区"
/>
<van-field
v-model="dectionForm.hospitalName"
class="appoint-form-items"
label="检测地点"
disabled
right-icon="arrow"
placeholder="请选择检测机构"
:rules="[{ required: true, message: '请选择检测机构' }]"
>
<template #input>
<div
v-if="!dectionForm.hospitalName"
class="appoint-form-placeholder"
>
请选择检测机构
</div>
<div
v-else
class="appoint-form-value"
>
{{ dectionForm.hospitalName }}
</div>
</template>
</van-field>
<van-field
name="checkboxGroup"
label="预约时间"
required
right-icon="arrow"
@click="showPopup('showSelectTime')"
>
<template #input>
<div
v-if="!dectionForm.appointmentTime"
class="appoint-form-placeholder"
>
请选择预约时间
</div>
<div
v-else
class="appoint-form-value"
>
{{ appointmentTimeShadow }}
</div>
</template>
</van-field>
</van-form>
</div>
<van-button
round
block
type="info"
:disabled="!canSubmit"
class="appoint-form-submit "
:class="canSubmit ? 'appoint-form-submit-active':''"
@click="appointment"
>
提交
</van-button>
</div>
<SelectTime
:hospital-id="hospitalId"
:project-equity-no="projectEquityNo"
:show="showSelectTime"
@change="selectTimes"
@close="closePopup"
/>
</div>
</template>
<script>
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,
},
data() {
return {
picaWechat:window._picaWechat,
headerInfo: {
title: '癌症早筛检测预约',
isBlack: true,
backMethod: 'web',
style: 'backgroundColor:#ffffff;zIndex:100;',
background: '',
},
dectionData:{},
dectionForm: {
detectName: '',
beneficiaryName: '',
appointmentTime: '',
currentDate: '',
timeBucket: '',
hospitalName:'人民医院和平社区健康服务中心',
location: '深圳市坪山区',
},
showAreaLabel:'',
showArea:false,
reportShow: false,
placeList: [],
popType: '',
timsArray: [],
timeBucket: {
am: '上午',
pm: '下午',
},
searchPlace: '',
selectPicker: {
value: [],
label: '',
},
showSelectTime:false,
locationAreaCode: [],
hospitalId: '139136',
projectEquityNo: '',
isDisabled: false,
buttonText: '',
appointmentTimeShadow: '',
currentProject: null,
orgData: []
};
},
computed: {
canSubmit() {
return (
this.dectionForm.appointmentTime &&
this.dectionForm.hospitalName &&
this.hospitalId &&
this.currentProject
);
},
},
mounted() {
this.$loading.show();
const { projectEquityNo } = this.$route.query;
this.projectEquityNo = projectEquityNo;
this.getDetectionName();
},
methods: {
// 目前是配置一个检测信息,可能会拓展,所以返回的是一个list
getDetectionName() {
getTypeCodeListDemo().then(res => {
if (res.code == '000000' && res.data) {
console.log('--res', res);
this.orgData = res.data;
}
});
},
selectTimes(times) {
console.log(times);
const {value, currentItemChoosed} = times;
this.dectionForm.appointmentTime = value;
this.closePopup('showSelectTime');
// appointmentTimeShadow
const m = (Number(dayjs(currentItemChoosed.appointmentDate).month()) + 1) + '月' + (Number(dayjs(currentItemChoosed.appointmentDate).date())) + '日';
this.appointmentTimeShadow = m + ' ' + currentItemChoosed[currentItemChoosed.timeBucket + 'TimeContent'];
},
getTimes() {
this.timsArray = [];
const current = new Date().getTime();
const ss = 24 * 60 * 60 * 1000;
for (let i = 5; i < 35; i++) {
var addTime = i * ss + current;
var myDate = new Date(addTime);
var year = myDate.getFullYear();
var month = myDate.getMonth() + 1;
var date = myDate.getDate();
var timeStr =
year + '-' + this.plusZero(month) + '-' + this.plusZero(date);
this.timsArray.push(timeStr);
}
},
plusZero(num) {
return num > 9 ? num + '' : '0' + num;
},
showPopup(name) {
this[name] = true;
},
closePopup(name) {
this[name] = false;
},
appointment() {
this.$refs.dectionForm.validate().then(async result => {
console.log('this.dectionForm', result);
const order = await this.createOrder();
console.log('--', order);
if(order) {
const item = JSON.parse(localStorage.getItem('chooseInfo'));
console.log('item', item);
const data = {
appointmentTime: this.dectionForm.appointmentTime,
hospitalId: this.hospitalId,
hospitalName: this.dectionForm.hospitalName,
yunOrderNo:order.yunOrderNo,
patientIdNo: item.id_number,
patientMobile: item.mobile,
patientName: item.name
};
appointment(data).then(res => {
if (res.code === '000000') {
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);
});
},
companySelect(i) {
console.log('9', i);
},
createOrder() {
return new Promise((resolve, reject) => {
const { projectEquityNo, externalOrderNo} = this.$route.query;
const item = JSON.parse(localStorage.getItem('chooseInfo'));
const data = {
projectEquityNo: projectEquityNo,
externalOrderNo: externalOrderNo,
insuranceMerchantProjectDetectionId: this.currentProject,
idCard: item.id_number,
mobilePhone: item.mobile,
patientName: item.name,
idType: 1
};
createOrder(data).then(res => {
if (res.code == '000000') {
resolve(res.data);
}
}).catch(err => {
reject(err);
});
});
},
},
};
</script>
<style lang="scss" scoped>
.insurance-detection-appoint-demo {
width: 100%;
height: 100vh;
overflow: auto;
box-sizing: border-box;
color: #ffffff;
padding-bottom: 50px;
.bg-img {
width: 100%;
height: 281px;
position: absolute;
}
.wrap {
padding: 0 12px;
margin-top: 90px;
}
.title-1 {
font-size: 20px;
margin-top: 23px;
font-style: oblique;
font-weight: 600;
position: absolute;
margin-left: 12px;
}
.title-2 {
margin-top: 60px;
font-size: 12px;
position: absolute;
margin-left: 12px;
}
.appoint-form-title{
font-size: 14px;
font-family: PingFang SC;
font-weight: 400;
color: #212121;
padding-top:22px ;
padding-bottom: 0;
line-height: 20px
}
.choose-section {
background: #ffffff;
border-radius: 11px;
margin-top: 15px;
/deep/ .van-field__label{
color: #212121;
}
/deep/ .van-field__control:disabled{
color: #323233;
-webkit-text-fill-color: #323233;
}
.item {
color: #212121;
font-size: 14px;
display: flex;
height: 60px;
align-items: center;
position: relative;
.input-key {
font-weight: 300;
margin-left: 10px;
}
.input-value {
margin-left: 18px;
font-weight: 500;
overflow: visible;
}
.right {
position: absolute;
right: 10px;
top: 25px;
}
}
.height60 {
height: 30px;
}
.required {
position: relative;
}
.required::after {
position: absolute;
content: '*';
display: block;
left: -10px;
top: 0;
text-align: center;
color: rgba(255, 56, 56, 1);
}
}
.appoint-form-items{
// font-weight: 600;
/deep/ .van-field__label{
color: #999999;
}
/deep/ .van-field__control{
font-weight: 600;
}
/deep/ .van-field__control::placeholder{
font-weight: 450;
}
.appoint-form-placeholder{
font-weight: 450;
}
}
.appoint-form-value{
font-weight: 600;
}
.appoint-form-placeholder{
color: #999999;
}
.appoint-form-title::after{
display: none;
}
.content {
color: #02120f;
height: 350px;
overflow: hidden;
.title-wrap {
font-size: 18px;
font-weight: 500;
text-align: center;
padding-top: 18px;
position: fixed;
width: 100%;
left: 0;
background: #ffffff;
z-index: 1;
margin: 0 auto;
.search {
display: flex;
align-items: center;
justify-content: space-evenly;
}
.search-input {
width: 303px;
height: 35px;
background: #f5f6f8;
border-radius: 13px;
text-align: left;
padding-left: 20px;
}
.title {
font-size: 18px;
font-weight: 500;
}
}
}
.pop-wrap {
width: calc(100% - 32px);
padding: 0 16px;
.tab-list {
position: relative;
border-bottom: 0.5px solid #e7e8e9;
height: 64px;
.hospitalActive-icon {
position: absolute;
width: 17px;
height: 17px;
top: 14px;
right: 0;
}
.list-1 {
font-weight: 500;
color: #212121;
font-size: 15px;
margin-top: 14px;
}
.list-2 {
font-size: 12px;
font-weight: 400;
color: #999999;
margin-top: 2px;
}
}
.hospitalActive {
}
}
.date-wrap {
height: 100%;
padding-top: 58px;
display: flex;
.left {
min-height: 100vh;
overflow: scroll;
width: 130px;
padding-bottom: 50px;
background: #f5f6f8;
.date-item {
height: 38px;
background: #f5f6f8;
line-height: 38px;
font-size: 16px;
font-weight: 500;
color: #02120f;
text-align: center;
}
.date-item-active {
color: #00bda5;
background: #ffffff;
}
}
.right {
position: absolute;
top: 58px;
left: 130px;
width: calc(100% - 130px);
.right-item {
padding-left: 22px;
width: 100%;
height: 41px;
font-size: 16px;
font-weight: 400;
color: #666666;
line-height: 41px;
}
.right-item-active {
color: #00bda5;
}
}
.date-item {
height: 38px;
}
}
.disabled {
background: #d9d9d9 !important;
}
// /deep/ .van-field__control::placeholder{
// color: #999999;
// }
.appoint-form-submit{
margin-top: 30px;
height: 40px;
font-weight: 600;
background: #D9D9D9;
border-radius: 20px;
border: 1px solid #D9D9D9;
}
.appoint-form-submit-active{
background: #00BDA5;
border: 1px solid #00BDA5;
}
.appoint-tel{
margin-top: 25px;
font-size: 14px;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #666666;
line-height: 22px;
text-align: center;
.serve-time{
display: flex;
align-items: center;
justify-content: center;
height: 18px;
font-size: 13px;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #999999;
line-height: 18px;
span{
width: 1px;
height: 12px;
margin: 0 12px;
background: #BBBBBB;
}
}
}
.item-radio{
padding: 15px 0px;
}
.hidden-border::after{
border: none;
}
.hidden-border{
padding-bottom: 0px;
}
}
::v-deep {
.address-wrap {
height: 590px;
#province {
height: 500px;
}
#city {
height: 500px;
}
#county {
height: 500px;
}
#town {
height: 500px;
}
.tip-header h3 {
font-weight: 700;
color: #212121;
}
.tip-header .submit-btn {
color: #00bda5 !important;
}
.address-select .show-address-header .item.active:after {
background-color: #00bda5;
}
.address-select .address-content ul li.active {
color: #00bda5;
}
}
}
</style>
...@@ -57,9 +57,9 @@ export default { ...@@ -57,9 +57,9 @@ export default {
web_data:{projectEquityNo: projectEquityNo, externalOrderNo: n}, web_data:{projectEquityNo: projectEquityNo, externalOrderNo: n},
}); });
this.initMap(data); this.initMap(data);
} }
if (this.query.referer) { if (this.query.referer) {
this.$loading.show();
const url = this.query.referer; const url = this.query.referer;
const yunOrderNo = url.split('@@')[1]; const yunOrderNo = url.split('@@')[1];
console.log('this.query.referer', yunOrderNo); console.log('this.query.referer', yunOrderNo);
...@@ -73,7 +73,11 @@ export default { ...@@ -73,7 +73,11 @@ export default {
component_tag: '7802854#0#0#中转页', component_tag: '7802854#0#0#中转页',
web_data:{yunOrderNo: yunOrderNo}, web_data:{yunOrderNo: yunOrderNo},
}); });
this.initMap(data); const that = this;
setTimeout(function () {
that.initMap(data);
}, 2000);
} }
}, },
...@@ -151,7 +155,11 @@ export default { ...@@ -151,7 +155,11 @@ export default {
if (this.hasQuestionnaire) { if (this.hasQuestionnaire) {
this.query.needDetect = 1; this.query.needDetect = 1;
console.log('this.query.needDetect', this.query); 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 { } else {
this.turnToPage('/appoint', this.query); this.turnToPage('/appoint', this.query);
} }
......
.insurance-quickDetection-detail-demo {
background-color: #f5f6f8;
padding-top: 10px;
min-height: 100vh;
width: 100%;
position: relative;
.title {
position: absolute;
top: 0;
left: 0;
right: 0;
height: 260px;
background: linear-gradient(180deg, #00bda5 0%, #20c5b0 52%, #f5f6f8 100%);
}
.detail-box {
padding: 0 12px;
height: auto;
padding-bottom: 10px;
position: relative;
z-index: 1;
.status {
padding: 16px 0;
display: flex;
align-items: center;
img {
width: 27px;
}
div {
padding-left: 9px;
width: 120px;
height: 20px;
font-size: 20px;
font-weight: 500;
color: #ffffff;
line-height: 20px;
}
}
.content {
height: auto;
.info {
width: 100%;
height: auto;
background: #ffffff;
border-radius: 10px;
margin-bottom: 10px;
padding-top: 20px;
.list {
padding: 0px 15px 12px 15px;
display: flex;
justify-content: flex-start;
align-items: center;
.l-left {
width: 72px;
height: 14px;
font-size: 14px;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #999999;
line-height: 14px;
}
.l-right {
padding-left: 2px;
width: auto;
height: auto;
font-size: 14px;
font-weight: 600;
color: #212121;
flex: 1;
line-height: 20px;
text-align: right;
span {
display: inline-block;
padding-left: 15px;
}
}
}
.list-bottom {
.l-b-code {
.l-b-list {
display: flex;
justify-content: flex-start;
align-items: center;
padding-bottom: 13px;
.l-left {
width: auto;
height: 15px;
font-size: 15px;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #212121;
line-height: 15px;
}
.l-right {
padding-left: 6px;
height: 15px;
font-size: 15px;
font-family: PingFangSC-Medium, PingFang SC;
font-weight: 500;
color: #00bda5;
line-height: 15px;
}
}
}
}
}
.flow {
padding: 20px;
height: auto;
background: #ffffff;
border-radius: 10px;
.express-step {
display: flex;
padding-bottom: 24px;
position: relative;
justify-content: flex-start;
.express-step-icon {
width: 18px;
height: 18px;
margin-right: 7px;
display: flex;
align-items: center;
justify-content: center;
position: relative;
z-index: 2;
.step-pg {
margin-left: -11px;
display: block;
width: 18px;
height: auto;
}
.oval-pg {
display: block;
width: 6px;
height: 6px;
}
}
.express-step-msg {
width: 100%;
display: flex;
align-items: center;
justify-content: space-between;
.step-title {
height: 18px;
font-size: 14px;
font-weight: 700;
color: #999999;
line-height: 18px;
}
.step-time {
margin-top: 5px;
font-size: 12px;
font-weight: 400;
color: #999999;
line-height: 12px;
}
}
.noButton {
margin-left: 22px;
}
&::before {
content: '';
position: absolute;
top: 0;
left: -5px;
display: block;
width: 15px;
height: 15px;
border-radius: 50%;
border:1px solid #e7e7e7;
background-color: #ffffff;
z-index: 1;
}
&::after {
content: '';
position: absolute;
top: 11px;
bottom: 0;
height: calc(100% - 5px);
left: 3px;
display: block;
width: 1px;
background: #e7e7e7;
}
&.first {
&::before {
display: none;
}
}
&.last {
padding-bottom: 0;
&::after {
display: none;
}
}
}
.isComplate {
&::after {
background: #00bda5;
}
&::before {
background: #00bda5;
}
.express-step-msg {
.step-title {
color: #212121;
}
}
}
.hideCircle {
&::before {
width: 0;
display: none;
}
.express-step-msg {
.step-title {
color: #212121;
}
}
}
}
.tips{
color: #FF4B33;
font-size: 12px;
font-weight: lighter;
margin-top: 10px;
margin-left: 20px;
}
}
.flex-wrap{
display: flex;
font-size: 16px;
align-items: center;
height: 21px;
}
.fc-blue{
color: #00BDA5;
}
.p30{
padding: 15px;
background-color: #ffffff;
border-radius: 10px;
margin-bottom: 10px;
}
.l-copy {
text-align: center;
border-radius: 10px;
font-size: 12px;
font-weight: 500;
color: #1677FE;
line-height: 22px;
margin-left: 6px;
margin-top: -2px;
display: inline-block;
}
}
.pb60{
padding-bottom: 60px;
}
.submit-container {
box-sizing: border-box;
position: fixed;
bottom: 0;
left: 0;
width: 100%;
z-index: 99;
padding: 5px 12px;
padding-bottom: calc(5px + env(safe-area-inset-bottom) / 2);
background: #ffffff;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
.submit-button {
position: relative;
width: 350px;
height: 40px;
border-radius: 20px;
font-weight: 700;
color: #ffffff;
font-size: 16px;
display: flex;
align-items: center;
background: #00bda5;
justify-content: center;
}
.submit-button-empty{
background: #ffffff;
border: 1px solid #00bda5;
color: #00bda5;
}
}
.multi-sub-wrap{
flex-direction: row;
justify-content: space-evenly;
.submit-button{
width: 45%;
}
}
}
.choose-result{
padding: 20px 15px;
background: #ffffff;
border-radius: 11px;
.result-title{
height: 18px;
font-size: 18px;
font-family: PingFangSC-Medium, PingFang SC;
font-weight: 600;
color: #212121;
line-height: 18px;
margin-bottom: 14px;
}
.result-tips{
display: flex;
justify-content: space-between;
align-items: center;
width: 300px;
height: 32px;
padding: 0 10px;
background: #FFFBE7;
border-radius: 2px;
font-size:13px;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #FF720C;
line-height: 32px;
margin-bottom: 20px;
.tips-right{
width: 73px;
height: 21px;
border-radius: 11px;
border: 1px solid #FF720C;
line-height: 21px;
text-align: center;
}
}
.result-radio{
margin-bottom: 20px;
}
.radio-name{
height: 14px;
font-size: 14px;
font-family: PingFangSC-Medium, PingFang SC;
font-weight: 600;
color: #212121;
line-height: 14px;
}
.result-list-img{
display: flex;
.img-item{
width: 75px;
height: 75px;
border-radius: 4px;
margin-right: 7px;
/deep/.van-image__img{
border-radius: 4px;
}
}
.list-img-item{
position: relative;
}
.close-btn{
position: absolute;
z-index: 2;
right: 0;
top: 0;
width: 15px;
transform: translate(-3px,-3px);
height: 15px;
background: url('~@/assets/images/close.png') 0 0 / 100%
}
}
}
.result-list-tips{
.list-tips-item{
font-size: 13px;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #999999;
line-height: 18px;
margin-bottom:9px ;
span{
color: #1677FE;
margin-left: 4px;
}
}
}
/deep/ .van-radio__icon--checked .van-icon{
background: #00bda5;
border-color: #00bda5;
}
<template>
<div class="insurance-quickDetection-detail-demo">
<page-model
v-if="picaWechat != 'wechat'"
ref="PageModel"
:header-info="headerInfo"
/>
<div class="title" />
<div class="detail-box">
<!-- <div class="status">-->
<!-- <img-->
<!-- v-if="dataDetail.status == 5"-->
<!-- src="https://files.yunqueyi.com/image/png/common/20220817141150961.png"-->
<!-- alt="success"-->
<!-- >-->
<!-- <img-->
<!-- v-else-->
<!-- src="https://files.yunqueyi.com/image/png/common/20220816135250298.png"-->
<!-- alt="success"-->
<!-- >-->
<!-- <div>{{ dataDetail.status | statusFilter }}</div>-->
<!-- </div>-->
<div
class="content"
>
<div class="flow">
<div class="f-list">
<div
v-for="(item, index) in dataList"
:key="index"
class="express-step"
:class="{
hideCircle: item.completed,
last: index == dataList.length - 1,
}"
>
<div
v-if="item.completed"
class="express-step-icon"
>
<img
class="step-pg"
:src="item.status == 5 ? 'https://files.yunqueyi.com/image/png/common/20220817141140460.png' : 'https://files.yunqueyi.com/image/png/common/2022081612011851.png'"
>
</div>
<div
v-else
class="express-step-icon"
/>
<div
class="express-step-msg"
>
<div class="step-title">
<p>
{{ item.nodeName }}
</p>
</div>
<div
class="step-time"
>
{{ item.nodeTime ? item.nodeTime : item.completed ? '暂无数据' : '未开始' }}
</div>
</div>
</div>
</div>
<p
v-if="dataDetail.status == 5"
class="tips"
>
温馨提示:可联系医生重新采样
</p>
</div>
</div>
</div>
<div class="detail-box pb60">
<div class="content">
<div class="info">
<div class="list">
<p class="l-left">
受检人:
</p>
<p class="l-right">
<span>{{ dataDetail.patientName || '--' }}</span><span>{{ dataDetail.sex | sexFilter }}</span><span class="font">{{
dataDetail.ageMonth
? dataDetail.ageMonth + '月'
: dataDetail.patientAge + '岁'
}}</span>
</p>
</div>
<div class="list">
<p class="l-left">
检测项目:
</p>
<p class="l-right">
{{ dataDetail.checkName || '--' }}
</p>
</div>
<div class="list">
<p class="l-left">
检测编号:
</p>
<p class="l-right">
{{ dataDetail.recordNo || '--' }}
</p>
</div>
<div class="list">
<div class="l-left">
条形码:
</div>
<div class="l-right">
{{ dataDetail.sampleCode || '--' }}
<div
class="l-copy"
@click="copyText(dataDetail.sampleCode)"
>
复制
</div>
</div>
</div>
</div>
</div>
<div class="choose-result">
<div class="result-title">
请选择您的检测结果
</div>
<div class="result-tips">
<div class="tips-left">
根据结果示例图判断您的检测结果
</div>
<div
class="tips-right"
@click="showSample(1)"
>
结果示例图
</div>
</div>
<div class="result-radio">
<van-radio-group
v-model="result"
direction="horizontal"
>
<van-radio name="1">
<div class="radio-name">
阳性
</div>
</van-radio>
<van-radio name="2">
<div class="radio-name">
阴性
</div>
</van-radio>
</van-radio-group>
</div>
<div
v-if="result=='1'"
class="result-list-img"
>
<div
v-for="(item,index) in images"
:key="item"
class="list-img-item"
@click="changeImg(index)"
>
<div
class="close-btn"
@click="remove(item)"
/>
<van-image
class="img-item"
:src="item"
/>
</div>
</div>
<div
v-if="result=='1'"
class="result-list-tips"
>
<div class="list-tips-item">
1.请将带有阳性检测结果的试剂盒和包装盒上的条码一起拍照上传,确保两个元素在同一张照片里.
</div>
<div
class="list-tips-item"
style="margin-bottom:0"
>
2.请保留好此阳性试剂盒,领取甲基化检测时需要回收
</div>
</div>
</div>
</div>
<div
class="submit-container"
>
<div
class="submit-button"
@click="getJumpToWebapp"
>
{{ openWebAppBtnName }}
</div>
</div>
<van-image-preview
v-model="showImg"
:images="imageslist"
@change="changePreview"
>
<template v-slot:index>
{{ index }}
</template>
</van-image-preview>
</div>
</template>
<script>
import { getQuickDetectionDetailProces, detectionRecordInfo } from '@/api/detection';
import { saveOrder } from '@/api/appoint';
import {createOrder} from '@/api/question';
// 0待完善信息、1待采样、2已采样、21已送检、22快递已签收、 25实验室已收样、 27已上机、 3已完成、5样本失效、 6待支付
export default {
filters: {
sexFilter(val) {
const str = val == 2 ? '女' : '男';
return str;
},
statusFilter(type) {
const obj = {
0: '待完善信息',
1: '待采样',
2: '已领取',
21: '已送检',
25: '已接收',
27: '已上机',
22: '已签收',
3: '已完成',
5: '样本异常',
6: '待支付',
};
return obj[type];
},
},
data() {
return {
showImg: false,
images: ['https://files.yunqueyi.com/image/png/common/20230506114106786.png'],
resultImages: ['https://files.yunqueyi.com/image/png/common/20230506114106786.png'],
sampleImages: [
'https://files.yunqueyi.com/image/png/common/20230506114106786.png'],
index: 1,
result:null,
picaWechat:window._picaWechat,
status: '',
headerInfo: {
title: '检测详情',
isBlack: true,
backMethod: 'web',
style: 'backgroundColor:#ffffff;zIndex:100;',
background: '',
},
detectionRecordId: '',
dataDetail: {},
dataList: [],
openWebAppBtnName: '提交检测结果',
yunOrderNo: '',
imageslist: [],
projectEquityNo:''
};
},
created() {
const {detectionRecordId, yunOrderNo} = this.$route.query;
this.detectionRecordId = detectionRecordId;
this.yunOrderNo = yunOrderNo;
this.init();
},
mounted() {
this.$sendBuriedData({
action: 'ACTION_WEB_AFTER',
component_tag: '7802849#0#0#快检成功页面',
web_data:{yunOrderNo: this.yunOrderNo},
});
},
methods: {
init() {
const that = this;
const o = {
detectionRecordId: this.detectionRecordId,
detectionKind: 1
};
console.log('----detectionRecordInfo', o);
detectionRecordInfo(o).then((res) => {
if (res.code === '000000') {
this.dataDetail = res.data;
this.getDetailProces();
} else {
that.$toast(res.message);
}
});
},
copyText(val) {
const input = document.createElement('input');
input.value = val;
document.body.appendChild(input);
input.select();
input.setSelectionRange(0, input.value.length);
document.execCommand('Copy');
document.body.removeChild(input);
this.$toast('已复制');
console.log('已复制的内容:', val);
},
// 检测详情
getDetailProces() {
getQuickDetectionDetailProces({id:this.detectionRecordId, channel: 4} ).then((res) => {
if (res.code === '000000') {
this.dataList = res.data || [];
} else {
this.$toast(res.message);
}
});
},
getJumpToWebapp() {
if(this.result == 2) {
this.$toast('参照选择的结果,您可暂不进行防癌早筛检测');
return false;
}
this.saveOrder();
},
saveOrder() {
const { yunOrderNo} = this.$route.query;
const data = {};
if (this.result) {
data.yunOrderNo = yunOrderNo;
data.resultFlag = this.result;
} else {
this.$toast('请选择结果');
}
saveOrder(data).then(res => {
console.log(res);
this.projectEquityNo = res.data.projectEquityNo;
const item = JSON.parse(localStorage.getItem('chooseInfo'));
console.log('item', item);
const data = {
hospitalId: 139136,
idType:1,
hospitalName:'人民医院和平社区健康服务中心',
yunOrderNoOne:yunOrderNo,
idCard: item.id_number,
externalOrderNo: 'SZ' + Math.floor(new Date().getTime() / 1000),
projectEquityNo:this.projectEquityNo,
mobilePhone: item.mobile,
patientName: item.name,
};
createOrder(data).then(res => {
console.log(res);
if (res.code === '000000' && res.data.questionnaireUrl) {
window.location.href = res.data.questionnaireUrl;
}
});
});
},
showSample(index) {
this.showImg = true;
this.index = 1;
if (index === 1) {
this.imageslist = this.resultImages;
} else {
this.imageslist = this.sampleImages;
}
},
changePreview(index) {
this.index = index;
},
changeImg(index) {
console.log(index);
this.imageslist = this.images;
this.showImg = true;
this.index = index + 1;
},
remove(item) {
this.images = this.images.filter(ele => ele == item);
},
mapStatus(inquiryStatus) {
console.log('--mapStatus', inquiryStatus);
const s = String(inquiryStatus);
let m = '报告解读';
if(s == '0') {
m = '报告解读';
}else if(['4', '6'].includes(s)) {
m = '查看专家建议';
}else{
m = '已预约待咨询';
}
console.log('--mapStatus', m);
return m;
}
},
};
</script>
<style lang="scss" scoped>
@import './index.scss';
</style>
...@@ -428,21 +428,33 @@ export default { ...@@ -428,21 +428,33 @@ export default {
if (res.code !== '000000') { if (res.code !== '000000') {
return this.$toast(res.message); return this.$toast(res.message);
} else { } else {
this.$router.push( const { projectEquityNo } = this.insuranceInfo;
{ if(projectEquityNo == 'SZ202305031000597601') {
path: '/insuranceBindCodeSuccess', this.$router.push(
query: { {
yunOrderNo: this.yunOrderNo, path: '/insuranceDetectionDetailDemo',
detectionRecordId: this.detectionRecordId query: {
}, yunOrderNo: this.yunOrderNo,
} detectionRecordId: this.detectionRecordId
); },
}
);
}else {
this.$router.push(
{
path: '/insuranceBindCodeSuccess',
query: {
yunOrderNo: this.yunOrderNo,
detectionRecordId: this.detectionRecordId
},
}
);
}
this.$toast('提交成功'); this.$toast('提交成功');
} }
}); });
}, },
earlyBindingCode(obj) { earlyBindingCode(obj) {
// quickBindingCode userId
const o = {...obj, detectionKind: 0}; const o = {...obj, detectionKind: 0};
bindingSampleCode(o).then(res => { bindingSampleCode(o).then(res => {
if (res.code !== '000000') { if (res.code !== '000000') {
......
...@@ -154,13 +154,15 @@ export default { ...@@ -154,13 +154,15 @@ export default {
component_tag: '7802847#0#0#查看我的检测', component_tag: '7802847#0#0#查看我的检测',
web_data:{yunOrderNo: this.yunOrderNo}, web_data:{yunOrderNo: this.yunOrderNo},
}); });
this.$router.push({ const u = window.location.origin + '/pica-insurance' + url + `?detectionRecordId=${this.detectionRecordId}&yunOrderNo=${this.yunOrderNo}`;
path: url, window.location.href = u;
query: { // this.$router.push({
detectionRecordId: this.detectionRecordId, // path: url,
yunOrderNo: this.yunOrderNo // query: {
}, // detectionRecordId: this.detectionRecordId,
}); // yunOrderNo: this.yunOrderNo
// },
// });
}, },
copyText(item) { copyText(item) {
const input = document.createElement('input'); const input = document.createElement('input');
......
...@@ -283,9 +283,9 @@ ...@@ -283,9 +283,9 @@
justify-content: center; justify-content: center;
} }
.submit-button-empty{ .submit-button-empty{
background: #ffffff; //background: #ffffff;
border: 1px solid #00bda5; border: 1px solid #00bda5;
color: #00bda5; color: #ffffff;
position: relative; position: relative;
} }
} }
...@@ -294,6 +294,7 @@ ...@@ -294,6 +294,7 @@
justify-content: space-evenly; justify-content: space-evenly;
.submit-button{ .submit-button{
padding: 0px 20px; padding: 0px 20px;
min-width: 60px;
} }
.btn-label{ .btn-label{
width: 62px; width: 62px;
......
...@@ -170,6 +170,7 @@ ...@@ -170,6 +170,7 @@
:username="openWebAppConfig.username" :username="openWebAppConfig.username"
:path="openWebAppConfig.path" :path="openWebAppConfig.path"
:extra-data="openWebAppConfig.extraData" :extra-data="openWebAppConfig.extraData"
:env-version="envVersion"
> >
<script type="text/wxtag-template"> <script type="text/wxtag-template">
<style>.btn {position:absolute; top: 0; color: #ffffff;text-align: center;line-height: 40px; left: 0; width:100%; height: 100%;}</style> <div class="btn">{{ openWebAppBtnName }}</div> <style>.btn {position:absolute; top: 0; color: #ffffff;text-align: center;line-height: 40px; left: 0; width:100%; height: 100%;}</style> <div class="btn">{{ openWebAppBtnName }}</div>
...@@ -198,9 +199,10 @@ ...@@ -198,9 +199,10 @@
style="position: absolute; top: 0; left: 0; width: 100%; height: 100%" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%"
:username="openWebAppConfigPositive.username" :username="openWebAppConfigPositive.username"
:path="openWebAppConfigPositive.path" :path="openWebAppConfigPositive.path"
:env-version="envVersion"
> >
<script type="text/wxtag-template"> <script type="text/wxtag-template">
<style>.btn {position:absolute; top: 0; color: #ffffff;text-align: center;line-height: 40px; left: 0; width:100%; height: 100%;}</style> <div class="btn">{{ openWebAppBtnName }}</div> <style>.btn {position:absolute; top: 0; color: #ffffff;text-align: center;line-height: 40px; left: 0; width:100%; height: 100%;}</style> <div class="btn">阳性报销</div>
</script> </script>
</wx-open-launch-weapp> </wx-open-launch-weapp>
</div> </div>
...@@ -222,6 +224,7 @@ ...@@ -222,6 +224,7 @@
</template> </template>
<script> <script>
import { getDetectionDetailProces, getJumpToWebapp, detectionRecordInfo } from '@/api/detection'; import { getDetectionDetailProces, getJumpToWebapp, detectionRecordInfo } from '@/api/detection';
const { VUE_APP_ENV } = process.env;
// 0待完善信息、1待采样、2已采样、21已送检、22快递已签收、 25实验室已收样、 27已上机、 3已完成、5样本失效、 6待支付 // 0待完善信息、1待采样、2已采样、21已送检、22快递已签收、 25实验室已收样、 27已上机、 3已完成、5样本失效、 6待支付
export default { export default {
filters: { filters: {
...@@ -255,6 +258,7 @@ export default { ...@@ -255,6 +258,7 @@ export default {
}, },
data() { data() {
return { return {
envVersion: VUE_APP_ENV == 'production' ? 'release' : 'trial',
picaWechat:window._picaWechat, picaWechat:window._picaWechat,
status: '', status: '',
headerInfo: { headerInfo: {
...@@ -289,6 +293,7 @@ export default { ...@@ -289,6 +293,7 @@ export default {
this.init(); this.init();
}, },
mounted() { mounted() {
console.log('--VUE_APP_ENV', VUE_APP_ENV);
this.$sendBuriedData({ this.$sendBuriedData({
action: 'ACTION_WEB_AFTER', action: 'ACTION_WEB_AFTER',
component_tag: '7802848#0#0#检测详情页面', component_tag: '7802848#0#0#检测详情页面',
...@@ -316,7 +321,6 @@ export default { ...@@ -316,7 +321,6 @@ export default {
const {inquiryStatus} = res.data; const {inquiryStatus} = res.data;
let n = ''; let n = '';
if(inquiryStatus == 0) { if(inquiryStatus == 0) {
// ed.targetPath = '/pages/consultation-info/consultation/index';
this.action_code = 'bottomBtnFun2'; this.action_code = 'bottomBtnFun2';
jump_path = jump_path + '&action_code=bottomBtnFun2'; jump_path = jump_path + '&action_code=bottomBtnFun2';
n = '报告解读'; n = '报告解读';
...@@ -334,7 +338,8 @@ export default { ...@@ -334,7 +338,8 @@ export default {
that.openWebAppConfig.extraData = JSON.stringify(ed); that.openWebAppConfig.extraData = JSON.stringify(ed);
that.openWebAppBtnName = n; that.openWebAppBtnName = n;
that.openWebAppConfig.path = jump_path; that.openWebAppConfig.path = jump_path;
this.openWebAppConfigPositive = `pagesInsurance/all-entrance/index?detectionKind=${this.dataDetail.id}&tradeDetectionServiceRecordId=${this.dataDetail.detectType}`; this.openWebAppConfigPositive.path = `pagesInsurance/all-entrance/index?detectionKind=0&tradeDetectionServiceRecordId=${this.dataDetail.detectionRecordId}`;
console.log('-that.openWebAppConfig.', that.openWebAppConfig, that.openWebAppConfigPositive, that.openWebAppBtnName);
} else { } else {
that.$toast(res.message); that.$toast(res.message);
} }
...@@ -410,7 +415,7 @@ export default { ...@@ -410,7 +415,7 @@ export default {
if(this.picaWechat == 'wechat') { if(this.picaWechat == 'wechat') {
return false; return false;
} }
const query = `detectionKind=${this.dataDetail.id}&tradeDetectionServiceRecordId=${this.dataDetail.detectType}`; const query = `detectionKind=0&tradeDetectionServiceRecordId=${this.dataDetail.detectionRecordId}`;
const p = {params:{path:'pagesInsurance/all-entrance/index', query:query}, type: 2}; const p = {params:{path:'pagesInsurance/all-entrance/index', query:query}, type: 2};
getJumpToWebapp(p).then(res => { getJumpToWebapp(p).then(res => {
console.log('--res', res); console.log('--res', res);
......
<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>
...@@ -125,14 +125,14 @@ ...@@ -125,14 +125,14 @@
class="submit-container multi-sub-wrap" class="submit-container multi-sub-wrap"
> >
<div <div
v-if="false" v-if="picaWechat == 'wechat'"
class="submit-button" class="submit-button"
> >
<wx-open-launch-weapp <wx-open-launch-weapp
style="position: absolute; top: 0; left: 0; width: 100%; height: 100%" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%"
:username="openWebAppConfig.username" :username="openWebAppConfig.username"
:path="openWebAppConfig.path" :path="openWebAppConfig.path"
env-version="trial" :env-version="envVersion"
:extra-data="openWebAppConfig.extraData" :extra-data="openWebAppConfig.extraData"
> >
<script type="text/wxtag-template"> <script type="text/wxtag-template">
...@@ -151,6 +151,7 @@ ...@@ -151,6 +151,7 @@
</div> </div>
</template> </template>
<script> <script>
const { VUE_APP_ENV } = process.env;
import { getQuickDetectionDetailProces, getJumpToWebapp, detectionRecordInfo } from '@/api/detection'; import { getQuickDetectionDetailProces, getJumpToWebapp, detectionRecordInfo } from '@/api/detection';
// 0待完善信息、1待采样、2已采样、21已送检、22快递已签收、 25实验室已收样、 27已上机、 3已完成、5样本失效、 6待支付 // 0待完善信息、1待采样、2已采样、21已送检、22快递已签收、 25实验室已收样、 27已上机、 3已完成、5样本失效、 6待支付
export default { export default {
...@@ -177,6 +178,7 @@ export default { ...@@ -177,6 +178,7 @@ export default {
}, },
data() { data() {
return { return {
envVersion: VUE_APP_ENV == 'production' ? 'release' : 'trial',
picaWechat:window._picaWechat, picaWechat:window._picaWechat,
status: '', status: '',
headerInfo: { headerInfo: {
......
<template>
<div class="insurance-sz">
<div class="text">
<img
src="https://files.yunqueyi.com/image/jpeg/common/20230506144713814.jpg"
alt=""
>
</div>
<div class="bottom">
<div
class="bottom-text"
@click="() =>show=true"
>
<div class="bottom-text-left">
选择被保险人
</div>
<div class="bottom-text-right">
<span v-if="person">{{ person }}</span>
<span v-else>请选择</span><van-icon name="arrow" />
</div>
</div>
<div class="bottom-btn">
<van-button
class="btn"
:disabled="!person"
@click="toPage"
>
领取权益
</van-button>
</div>
</div>
<van-popup
v-model="show"
closeable
round
position="bottom"
:style="{ height: '500px' ,overflow:'hidden'}"
>
<div class="popup-title">
选择被保险人
</div>
<div class="popup-list">
<van-radio-group v-model="person">
<van-cell-group>
<van-cell
v-for="(item) in userinfo"
:key="item.id"
clickable
@click="person = item.name"
>
<div class="popup-list-item">
<div class="name">
{{ item.name }}
</div>
<div class="info">
<div class="phoneNum">
<span>手机号码:</span>
<span>{{ item.mobile }}</span>
</div>
<div class="idCard">
<span>身份证号:</span>
<span>{{ item.id_number }}</span>
</div>
</div>
</div>
<template #right-icon>
<van-radio :name="item.name" />
</template>
</van-cell>
</van-cell-group>
</van-radio-group>
</div>
<div class="popup-btn-box">
<van-button
class="popup-btn"
:disabled="!person"
@click="show=false
"
>
确定
</van-button>
</div>
</van-popup>
</div>
</template>
<script>
import axios from 'axios';
export default {
data() {
return {
show: false,
person: null,
env:'test',
userinfo: [
]
};
},
mounted() {
const { env } = this.$route.query;
this.env = env ? env : 'prod';
this.getlist();
},
methods: {
getlist() {
const that = this;
axios.get(`https://project.picahealth.com/batch_get_person_info?num=10&env=${this.env}`).then(function ({data}) {
console.log(data);
if (data.code === '000000') {
that.userinfo = data.data;
}
});
},
toPage() {
const externalOrderNo = Math.floor(new Date().getTime() / 1000);
const projectEquityNo = 'SZ202305031000597601';
console.log(externalOrderNo);
const item = this.userinfo.filter(ele => ele.name === this.person)[0];
localStorage.setItem('chooseInfo', JSON.stringify(item));
this.$router.push({
path: '/appoint-demo',
query: {
externalOrderNo:'SZ' + externalOrderNo,
projectEquityNo
}
});
}
}
};
</script>
<style lang="scss" scoped>
.insurance-sz{
height: 1772px;
display: flex;
justify-content: center;
align-items: center;
padding-bottom: 120px;
.text{
}
.bottom{
position: fixed;
bottom: 0;
width: 100vw;
background: #fff;
padding-bottom: 27px;
.bottom-text{
padding: 10px 21px 10px 15px;
display: flex;
justify-content: space-between;
.bottom-text-left{
height: 18px;
font-size: 13px;
font-family: PingFangSC-Medium, PingFang SC;
font-weight: 600;
color: #000000;
line-height: 18px;
span{
margin-right: 6px;
}
}
.bottom-text-right{
height: 18px;
font-size: 13px;
font-weight: 600;
line-height: 18px;
font-family: PingFangSC-Regular, PingFang SC;
color: #999999;
}
}
.bottom-btn{
background: #FFFFFF;
box-shadow: inset 0px 1px 0px 0px #E9E9E9;
overflow: hidden;
text-align: center;
.btn{
width: 351px;
height: 40px;
background: #00BDA5;
border-radius: 20px;
margin: 4px auto;
font-size: 16px;
font-family: PingFangSC-Semibold, PingFang SC;
font-weight: 600;
color: #FFFFFF;
line-height: 40px;
text-align: center;
}
}
}
}
.van-popup--bottom{
width: 100%;
}
.popup-title{
width: 100%;
position: absolute;
top: 0;
height: 25px;
font-size: 18px;
font-family: PingFangSC-Medium, PingFang SC;
font-weight: 600;
color: #02120F;
line-height: 25px;
text-align: center;
padding: 17px 0;
}
/deep/ .van-cell{
padding-top:0 ;
padding-bottom: 0;
}
.popup-list{
position: absolute;
width: 100%;
top: 50px;
height: calc(100% - 135px);
overflow: auto;
padding-bottom: 130px;
}
.popup-list-item{
display: flex;
align-items: center;
padding: 23px 0;
.name{
width: 45px;
font-size: 15px;
font-family: PingFangSC-Semibold, PingFang SC;
font-weight: 600;
color: #212121;
text-align: center;
margin-right: 12px;
}
.info{
.phoneNum{
height: 14px;
font-size:14px;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #666666;
line-height: 14px;
margin-bottom: 6px;
}
.idCard{
height: 14px;
font-size:14px;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #666666;
line-height: 14px;
}
}
}
.popup-btn-box{
position: fixed;
z-index: 2;
width: 100%;
bottom: 0;
padding: 20px 0;
background: #FFFFFF;
border: 1px solid #ebedf0;
}
.popup-btn{
margin: 0 auto;
width: 351px;
height: 40px;
background: #00BDA5;
border-radius: 20px;
font-size: 16px;
text-align: center;
font-weight: 600;
color: #FFFFFF;
line-height: 40px;
display: block;
}
/deep/ .van-radio__icon--checked .van-icon{
background: #00bda5;
border-color: #00bda5;
}
</style>
...@@ -35,7 +35,7 @@ module.exports = { ...@@ -35,7 +35,7 @@ module.exports = {
port: 8083, port: 8083,
proxy: { proxy: {
'/proxy': { '/proxy': {
target: 'https://dev-sc.yunqueyi.com/', target: 'https://test1-sc.yunqueyi.com/',
// target: 'https://test1-sc.yunqueyi.com/', // target: 'https://test1-sc.yunqueyi.com/',
// target: 'https://uat-sc.yunqueyi.com/', // target: 'https://uat-sc.yunqueyi.com/',
// http://10.241.65.90:3000/mock/1071/cs/route/removeUser // http://10.241.65.90:3000/mock/1071/cs/route/removeUser
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册