Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
M
mongo-ui
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
ui
mongo-ui
Commits
39bb04a9
Commit
39bb04a9
authored
Sep 27, 2020
by
郝聪敏
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
teature: 添加详情弹窗
parent
e742c6fd
Changes
6
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
206 additions
and
4 deletions
+206
-4
goodsList.mock.js
src/api/goodsList.mock.js
+5
-0
settings.js
src/api/settings.js
+1
-0
instruction@2x.png
src/assets/images/goods/detail/instruction@2x.png
+0
-0
index.vue
src/views/Goods/Detail/index.vue
+19
-2
InstructionModal.vue
src/views/Goods/Detail/modules/InstructionModal.vue
+176
-0
index.vue
src/views/Goods/index.vue
+5
-2
No files found.
src/api/goodsList.mock.js
View file @
39bb04a9
...
@@ -31,6 +31,7 @@ export default [
...
@@ -31,6 +31,7 @@ export default [
guarantee_title
:
"
医疗保障
"
,
guarantee_title
:
"
医疗保障
"
,
guarantee_sub
:
"
看病报销医药费,最高600万
"
,
guarantee_sub
:
"
看病报销医药费,最高600万
"
,
company
:
"
泰康在线
"
,
company
:
"
泰康在线
"
,
company_name
:
"
泰康在线财产保险股份有限公司
"
,
payType
:
[
payType
:
[
{
label
:
"
月缴
"
,
value
:
1
},
{
label
:
"
月缴
"
,
value
:
1
},
{
label
:
"
一次交清
"
,
value
:
2
}
{
label
:
"
一次交清
"
,
value
:
2
}
...
@@ -57,6 +58,7 @@ export default [
...
@@ -57,6 +58,7 @@ export default [
guarantee_title
:
"
重疾保障
"
,
guarantee_title
:
"
重疾保障
"
,
guarantee_sub
:
"
100种重疾+40种轻症确诊即赔
"
,
guarantee_sub
:
"
100种重疾+40种轻症确诊即赔
"
,
company
:
"
华泰财险
"
,
company
:
"
华泰财险
"
,
company_name
:
"
华泰财产保险有限公司
"
,
payType
:
[
payType
:
[
{
label
:
"
月缴
"
,
value
:
1
},
{
label
:
"
月缴
"
,
value
:
1
},
{
label
:
"
一次交清
"
,
value
:
2
}
{
label
:
"
一次交清
"
,
value
:
2
}
...
@@ -83,6 +85,7 @@ export default [
...
@@ -83,6 +85,7 @@ export default [
guarantee_title
:
"
意外保障
"
,
guarantee_title
:
"
意外保障
"
,
guarantee_sub
:
"
意外风险覆盖全,保额最高100万
"
,
guarantee_sub
:
"
意外风险覆盖全,保额最高100万
"
,
company
:
"
众安保险
"
,
company
:
"
众安保险
"
,
company_name
:
"
众安在线财产保险股份有限公司
"
,
payType
:
[],
payType
:
[],
policyPeriod
:
[],
policyPeriod
:
[],
paymentInstruction
:
paymentInstruction
:
...
@@ -107,6 +110,7 @@ export default [
...
@@ -107,6 +110,7 @@ export default [
guarantee_title
:
"
重疾保障
"
,
guarantee_title
:
"
重疾保障
"
,
guarantee_sub
:
"
终身保障155种重疾,最多赔付6次
"
,
guarantee_sub
:
"
终身保障155种重疾,最多赔付6次
"
,
company
:
"
百年人寿
"
,
company
:
"
百年人寿
"
,
company_name
:
""
,
payType
:
[{
label
:
"
年缴
"
,
value
:
1
}],
payType
:
[{
label
:
"
年缴
"
,
value
:
1
}],
policyPeriod
:
[
policyPeriod
:
[
{
label
:
"
保至70周岁
"
,
value
:
1
},
{
label
:
"
保至70周岁
"
,
value
:
1
},
...
@@ -133,6 +137,7 @@ export default [
...
@@ -133,6 +137,7 @@ export default [
guarantee_title
:
"
人寿保障
"
,
guarantee_title
:
"
人寿保障
"
,
guarantee_sub
:
"
最高350万保额,顶梁柱必备
"
,
guarantee_sub
:
"
最高350万保额,顶梁柱必备
"
,
company
:
"
华贵人寿
"
,
company
:
"
华贵人寿
"
,
company_name
:
"
华贵人寿保险股份有限公司
"
,
payType
:
[{
label
:
"
年缴
"
,
value
:
1
}],
payType
:
[{
label
:
"
年缴
"
,
value
:
1
}],
policyPeriod
:
[
policyPeriod
:
[
{
label
:
"
10年
"
,
value
:
1
},
{
label
:
"
10年
"
,
value
:
1
},
...
...
src/api/settings.js
View file @
39bb04a9
...
@@ -9,6 +9,7 @@ export default {
...
@@ -9,6 +9,7 @@ export default {
title
:
"
自动续保协议
"
,
title
:
"
自动续保协议
"
,
url
:
"
https://mangguo-contract.qthbx.com/zi-dong-xu-bao-fu-wu-xie-yi-v1/
"
url
:
"
https://mangguo-contract.qthbx.com/zi-dong-xu-bao-fu-wu-xie-yi-v1/
"
},
},
customerNotificationUrl
:
"
https://mangguo-contract.qthbx.com/ke-hu-gao-zhi-shu-v1/
"
,
consultant
:
{
consultant
:
{
name
:
"
赵玉龙
"
,
name
:
"
赵玉龙
"
,
role
:
"
金牌保险顾问
"
,
role
:
"
金牌保险顾问
"
,
...
...
src/assets/images/goods/detail/instruction@2x.png
0 → 100644
View file @
39bb04a9
6.03 KB
src/views/Goods/Detail/index.vue
View file @
39bb04a9
...
@@ -5,6 +5,7 @@
...
@@ -5,6 +5,7 @@
<ai-detail
v-if=
"detailType === 'ai'"
/>
<ai-detail
v-if=
"detailType === 'ai'"
/>
<li-detail
v-if=
"detailType === 'li'"
/>
<li-detail
v-if=
"detailType === 'li'"
/>
<advisor-rec-dialog
:value=
"showRec"
@
close=
"pageBack"
/>
<advisor-rec-dialog
:value=
"showRec"
@
close=
"pageBack"
/>
<instruction-modal
v-model=
"showInstruction"
:items=
"items"
/>
</div>
</div>
</
template
>
</
template
>
...
@@ -18,6 +19,14 @@ import { getCulOrder } from "@/api/consultant";
...
@@ -18,6 +19,14 @@ import { getCulOrder } from "@/api/consultant";
import
localStorage
from
"
@/service/localStorage
"
;
import
localStorage
from
"
@/service/localStorage
"
;
import
{
isXyqb
}
from
"
@/service/validation
"
;
import
{
isXyqb
}
from
"
@/service/validation
"
;
import
{
mapActions
,
mapState
}
from
"
vuex
"
;
import
{
mapActions
,
mapState
}
from
"
vuex
"
;
import
InstructionModal
from
"
./modules/InstructionModal
"
;
import
goodsList
from
"
@/api/goodsList.mock
"
;
const
items
=
[
{
title
:
"
投保操作记录
"
,
content
:
"
方便回溯管理让用户更放心
"
},
{
title
:
"
保险条款阅读
"
,
content
:
"
请仔细阅读保险条款与
"
},
{
title
:
"
合作公司披露
"
,
content
:
""
}
];
export
default
{
export
default
{
name
:
"
GoodsDetail
"
,
name
:
"
GoodsDetail
"
,
...
@@ -26,7 +35,8 @@ export default {
...
@@ -26,7 +35,8 @@ export default {
miDetail
,
miDetail
,
aiDetail
,
aiDetail
,
liDetail
,
liDetail
,
AdvisorRecDialog
AdvisorRecDialog
,
InstructionModal
},
},
data
()
{
data
()
{
return
{
return
{
...
@@ -34,14 +44,21 @@ export default {
...
@@ -34,14 +44,21 @@ export default {
showRec
:
false
,
showRec
:
false
,
noOrder
:
true
,
noOrder
:
true
,
userClickState
:
false
,
userClickState
:
false
,
userBackState
:
false
userBackState
:
false
,
showInstruction
:
true
,
items
};
};
},
},
created
()
{
this
.
items
[
2
].
content
=
goodsList
.
find
(
goods
=>
goods
.
id
===
this
.
$route
.
query
.
id
)?.
company_name
||
""
;
},
computed
:
{
computed
:
{
...
mapState
([
"
showAuthXyqb
"
])
...
mapState
([
"
showAuthXyqb
"
])
},
},
beforeRouteLeave
(
to
,
from
,
next
)
{
beforeRouteLeave
(
to
,
from
,
next
)
{
const
blackList
=
[
"
Goods
"
,
"
Home
"
,
"
Detail
"
,
"
ConsultantPlan
"
,
"
User
"
];
const
blackList
=
[
"
Goods
"
,
"
Home
"
,
"
Detail
"
,
"
ConsultantPlan
"
,
"
User
"
];
this
.
showInstruction
=
false
;
if
(
isXyqb
&&
this
.
showAuthXyqb
==
2
)
{
if
(
isXyqb
&&
this
.
showAuthXyqb
==
2
)
{
next
(
false
);
next
(
false
);
return
;
return
;
...
...
src/views/Goods/Detail/modules/InstructionModal.vue
0 → 100644
View file @
39bb04a9
<
template
>
<div>
<cr-popup
v-model=
"value"
get-container=
"body"
@
close=
"onClose"
class=
"intro-popup"
>
<div
class=
"intro-popup-container"
>
<div
class=
"intro-popup-title"
>
<cr-image
class=
"Ip-title-image"
round
width=
""
height=
""
src=
"@/assets/images/goods/detail/instruction@2x.png"
/>
</div>
<div
class=
"intro-popup-desc"
>
提示您即将进入投保流程,为确保流程顺利,请了解以下信息:
</div>
<div
class=
"intro-popup-box"
>
<div
class=
"Ip-box-item"
v-for=
"(item, index) in items"
:key=
"index"
>
<div
class=
"Ipb-item-left"
>
{{
index
+
1
}}
</div>
<div
class=
"Ipb-item-right"
>
<p
class=
"Ipbi-right-title"
>
{{
item
.
title
}}
</p>
<p
class=
"Ipbi-right-content"
>
{{
item
.
content
}}
<a
v-if=
"index === 1"
href=
"javascript:;"
@
click=
"popupShow = !popupShow"
>
客户告知书
</a
>
</p>
</div>
</div>
</div>
<div
class=
"intro-popup-save"
>
<cr-button
class=
"Ip-save-button"
@
click=
"close()"
>
确认
</cr-button>
</div>
<p
class=
"intro-popup-tips"
>
由全天候保险代理股份有限公司提供保险中介服务
</p>
</div>
</cr-popup>
<popup-with-iframe
v-model=
"popupShow"
title=
"客户告知书"
:url=
"customerNotificationUrl"
/>
</div>
</
template
>
<
script
>
import
settings
from
"
@/api/settings
"
;
import
PopupWithIframe
from
"
@/components/PopupWithIframe
"
;
export
default
{
name
:
"
InstructionModal
"
,
components
:
{
PopupWithIframe
},
props
:
{
value
:
{
type
:
Boolean
,
default
:
false
},
items
:
{
type
:
Object
,
default
:
()
=>
({})
}
},
data
()
{
return
{
popupShow
:
false
,
customerNotificationUrl
:
settings
.
customerNotificationUrl
};
},
watch
:
{},
methods
:
{
close
()
{
this
.
$emit
(
"
input
"
,
false
);
}
}
};
</
script
>
<
style
lang=
"less"
scoped
>
@import "../../../../style/index.less";
.intro-popup {
box-sizing: border-box;
padding: 27px 20px;
width: 300px;
height: 453px;
background: linear-gradient(180deg, #ffc842 0%, #ffffff 20%);
border-radius: 14px;
&-title {
display: flex;
justify-content: center;
.Ip-title-image {
width: 156px;
height: 39px;
}
}
&-desc {
margin: 15px auto 17px;
width: 260px;
height: 48px;
font-size: 14px;
font-weight: 400;
color: #666666;
line-height: 24px;
}
&-box {
box-sizing: border-box;
margin: 0 auto;
padding: 16px;
width: 260px;
height: 182px;
background: #f6f7fa;
border-radius: 8px;
.Ip-box-item {
display: flex;
align-items: center;
&:not(:first-child) {
margin-top: 12px;
}
.Ipb-item-left {
margin-right: 12px;
width: 19px;
height: 19px;
background: #ffc842;
border-radius: 50%;
box-shadow: 0px 6px 25px 0px rgba(255, 200, 66, 0.2);
font-size: 12px;
font-weight: 600;
color: #242629;
display: flex;
justify-content: center;
align-items: center;
}
.Ipb-item-right {
.Ipbi-right-title {
width: 88px;
height: 24px;
font-size: 14px;
font-weight: 600;
color: #333333;
line-height: 24px;
}
.Ipbi-right-content {
height: 18px;
font-size: 12px;
font-weight: 400;
color: #666666;
line-height: 18px;
}
}
}
}
&-save {
display: flex;
justify-content: center;
margin: 16px;
.Ip-save-button {
width: 260px;
height: 52px;
background: #ffc842 !important;
border-radius: 14px !important;
font-size: 16px;
font-weight: 600;
color: #333333;
line-height: 22px;
}
}
&-tips {
width: 100%;
text-align: center;
height: 13px;
font-size: 11px;
font-weight: 400;
color: #999999;
line-height: 13px;
}
}
</
style
>
src/views/Goods/index.vue
View file @
39bb04a9
...
@@ -24,6 +24,7 @@ import AiTestTip from "./modules/AiTestTip";
...
@@ -24,6 +24,7 @@ import AiTestTip from "./modules/AiTestTip";
import
GoodList
from
"
@/components/GoodList/index
"
;
import
GoodList
from
"
@/components/GoodList/index
"
;
import
Tabbar
from
"
@/components/Tabbar
"
;
import
Tabbar
from
"
@/components/Tabbar
"
;
import
copyright
from
"
@/components/Copyright
"
;
import
copyright
from
"
@/components/Copyright
"
;
import
InstructionModal
from
"
./Detail/modules/InstructionModal
"
;
const
categoryList
=
[
const
categoryList
=
[
{
{
...
@@ -54,7 +55,8 @@ export default {
...
@@ -54,7 +55,8 @@ export default {
AiTestTip
,
AiTestTip
,
GoodList
,
GoodList
,
Tabbar
,
Tabbar
,
copyright
copyright
,
InstructionModal
,
},
},
data
()
{
data
()
{
return
{
return
{
...
@@ -62,7 +64,8 @@ export default {
...
@@ -62,7 +64,8 @@ export default {
showLayer
:
false
,
showLayer
:
false
,
goodsList
:
[],
goodsList
:
[],
mongoToken
:
localStorage
.
get
(
"
mongoToken
"
),
mongoToken
:
localStorage
.
get
(
"
mongoToken
"
),
goodsLink
:
""
goodsLink
:
""
,
showInstruction
:
true
};
};
},
},
watch
:
{
watch
:
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment