Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
提交反馈
为 GitLab 提交贡献
登录
切换导航
P
pica-insurance
项目
项目
详情
动态
版本
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
收起侧边栏
Close sidebar
动态
分支图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
com.pica.cloud.frontend
pica-insurance
提交
869fdb3e
提交
869fdb3e
编写于
5月 04, 2023
作者:
张磊
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'feature/zl' into 'develop'
demo dev See merge request
!160
上级
ac743b78
67afd87c
变更
5
隐藏空白字符变更
内嵌
并排
正在显示
5 个修改的文件
包含
446 行增加
和
48 行删除
+446
-48
detection.js
src/api/detection.js
+8
-0
index.js
src/router/index.js
+8
-0
index.vue
src/views/appoint-demo/index.vue
+61
-47
index.vue
src/views/home/index.vue
+5
-1
insuranceQuestionResult.vue
...insurance-question-result-pay/insuranceQuestionResult.vue
+364
-0
未找到文件。
src/api/detection.js
浏览文件 @
869fdb3e
...
...
@@ -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
...
...
src/router/index.js
浏览文件 @
869fdb3e
...
...
@@ -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'
,
...
...
src/views/appoint-demo/index.vue
浏览文件 @
869fdb3e
...
...
@@ -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
data
=
{
appointmentTime
:
this
.
dectionForm
.
appointmentTime
,
goodsId
:
this
.
dectionForm
.
goodsId
,
hospitalId
:
this
.
hospitalId
,
hospitalName
:
this
.
dectionForm
.
hospitalName
,
yunOrderNo
:
this
.
yunOrderNo
,
};
appointment
(
data
).
then
(
res
=>
{
if
(
res
.
code
===
'000000'
)
{
this
.
$router
.
push
({
path
:
'/appoint-details'
,
query
:
{
yunOrderNo
:
this
.
yunOrderNo
,
projectEquityNo
:
this
.
projectEquityNo
}
});
}
else
{
res
.
message
&&
this
.
$toast
(
res
.
message
);
}
});
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
:
order
.
yunOrderNo
,
};
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
);
});
...
...
@@ -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
>
...
...
src/views/home/index.vue
浏览文件 @
869fdb3e
...
...
@@ -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
);
}
...
...
src/views/insurance-question-result-pay/insuranceQuestionResult.vue
0 → 100644
浏览文件 @
869fdb3e
<
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
人
到此讨论。请谨慎行事。
先完成此消息的编辑!
取消
想要评论请
注册
或
登录