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
f27b15a5
Commit
f27b15a5
authored
Aug 13, 2020
by
郭志伟
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat: 详情联调
parent
15f1cbf1
Changes
17
Hide whitespace changes
Inline
Side-by-side
Showing
17 changed files
with
238 additions
and
134 deletions
+238
-134
goodsList.mock.js
src/api/goodsList.mock.js
+20
-20
product.js
src/api/product.js
+3
-3
user.js
src/api/user.js
+3
-1
Modal.vue
src/components/Modal.vue
+1
-1
index.js
src/store/index.js
+1
-2
AIDetail.vue
src/views/Goods/Detail/AIDetail.vue
+10
-4
CIIDetail.vue
src/views/Goods/Detail/CIIDetail.vue
+8
-3
LIDetail.vue
src/views/Goods/Detail/LIDetail.vue
+7
-1
MIDetail.vue
src/views/Goods/Detail/MIDetail.vue
+8
-3
index.vue
src/views/Goods/Detail/index.vue
+41
-2
AdvisorRecDialog.vue
src/views/Goods/Detail/modules/AdvisorRecDialog.vue
+7
-1
InsurePersonForm.vue
src/views/Goods/Detail/modules/InsurePersonForm.vue
+119
-90
NavTab.vue
src/views/Goods/Detail/modules/NavTab.vue
+2
-0
detailPay.mixin.js
src/views/Goods/Detail/modules/detailPay.mixin.js
+1
-1
index.less
src/views/Home/index.less
+4
-0
index.vue
src/views/Home/index.vue
+3
-1
index.vue
src/views/Policy/Add/index.vue
+0
-1
No files found.
src/api/goodsList.mock.js
View file @
f27b15a5
...
@@ -58,6 +58,26 @@ export default [
...
@@ -58,6 +58,26 @@ export default [
],
],
policyPeriod
:
[]
policyPeriod
:
[]
},
},
{
id
:
"
ZAYWX001
"
,
itype
:
"
ai
"
,
scope
:
[
1
,
2
,
3
],
img
:
good03
,
title
:
"
万家保·综合意外险
"
,
sub
:
"
意外风险覆盖全,最高100万保额
"
,
glory
:
"
开车必备
"
,
price
:
"
145
"
,
unit
:
"
年起
"
,
allow
:
true
,
termType
:
"
short
"
,
icon_closed
:
casualty_closed
,
icon
:
casualty
,
guarantee_title
:
"
意外保障
"
,
guarantee_sub
:
"
意外风险覆盖全,最高100万保额
"
,
company
:
"
众安保险
"
,
payType
:
[],
policyPeriod
:
[]
},
{
{
id
:
"
BNZJX001
"
,
id
:
"
BNZJX001
"
,
itype
:
"
cii
"
,
itype
:
"
cii
"
,
...
@@ -82,26 +102,6 @@ export default [
...
@@ -82,26 +102,6 @@ export default [
{
label
:
"
保至终身
"
,
value
:
"
2
"
}
{
label
:
"
保至终身
"
,
value
:
"
2
"
}
]
]
},
},
{
id
:
"
ZAYWX001
"
,
itype
:
"
ai
"
,
scope
:
[
1
,
2
,
3
],
img
:
good03
,
title
:
"
万家保·综合意外险
"
,
sub
:
"
意外风险覆盖全,最高100万保额
"
,
glory
:
"
开车必备
"
,
price
:
"
145
"
,
unit
:
"
年起
"
,
allow
:
true
,
termType
:
"
short
"
,
icon_closed
:
casualty_closed
,
icon
:
casualty
,
guarantee_title
:
"
意外保障
"
,
guarantee_sub
:
"
意外风险覆盖全,最高100万保额
"
,
company
:
"
众安保险
"
,
payType
:
[],
policyPeriod
:
[]
},
{
{
id
:
"
HGSX001
"
,
id
:
"
HGSX001
"
,
itype
:
"
li
"
,
itype
:
"
li
"
,
...
...
src/api/product.js
View file @
f27b15a5
...
@@ -6,9 +6,9 @@ export const list = param => {
...
@@ -6,9 +6,9 @@ export const list = param => {
};
};
// 产品详情
// 产品详情
export
const
detail
=
param
=>
{
//
export const detail = param => {
return
req
.
get
(
"
product/detail
"
,
param
);
//
return req.get("product/detail", param);
};
//
};
// 产品算价
// 产品算价
export
const
trail
=
param
=>
{
export
const
trail
=
param
=>
{
...
...
src/api/user.js
View file @
f27b15a5
...
@@ -7,7 +7,9 @@ export const loginByPhone = param => {
...
@@ -7,7 +7,9 @@ export const loginByPhone = param => {
// 信用钱包用户自动登录
// 信用钱包用户自动登录
export
const
authByxyqb
=
param
=>
{
export
const
authByxyqb
=
param
=>
{
return
req
.
get
(
"
xyqb_user_info
"
,
param
);
return
req
.
get
(
"
user/info/xyqb
"
,
{
params
:
param
});
};
};
// 微信用户获取openid
// 微信用户获取openid
...
...
src/components/Modal.vue
View file @
f27b15a5
...
@@ -6,7 +6,7 @@
...
@@ -6,7 +6,7 @@
get-container="body"
get-container="body"
close-icon="close"
close-icon="close"
class="panel-wrap"
class="panel-wrap"
@close="onClose"
@close
d
="onClose"
>
>
<div
class=
"panel"
>
<div
class=
"panel"
>
<div
class=
"panel-head"
>
<div
class=
"panel-head"
>
...
...
src/store/index.js
View file @
f27b15a5
...
@@ -4,7 +4,6 @@ import user from "./modules/user";
...
@@ -4,7 +4,6 @@ import user from "./modules/user";
import
{
isXyqb
}
from
"
@/service/validation
"
;
import
{
isXyqb
}
from
"
@/service/validation
"
;
import
localStorage
from
"
@/service/localStorage
"
;
import
localStorage
from
"
@/service/localStorage
"
;
const
XYQB_AUTH_STATE
=
localStorage
.
get
(
"
xyqbAuthState
"
)
||
1
;
Vue
.
use
(
Vuex
);
Vue
.
use
(
Vuex
);
export
default
new
Vuex
.
Store
({
export
default
new
Vuex
.
Store
({
...
@@ -12,7 +11,7 @@ export default new Vuex.Store({
...
@@ -12,7 +11,7 @@ export default new Vuex.Store({
activeIdx
:
0
,
activeIdx
:
0
,
isLoading
:
false
,
isLoading
:
false
,
isShowLogin
:
false
,
isShowLogin
:
false
,
showAuthXyqb
:
isXyqb
?
XYQB_AUTH_STATE
:
-
1
// 1 已获取信息未授权,2 打开授权弹框, 3 拒绝授权,4 允许授权, -1 非信用钱包环境
showAuthXyqb
:
isXyqb
?
localStorage
.
get
(
"
xyqbAuthState
"
)
||
1
:
-
1
// 1 已获取信息未授权,2 打开授权弹框, 3 拒绝授权,4 允许授权, -1 非信用钱包环境
},
},
mutations
:
{
mutations
:
{
setActiveIdx
(
state
,
value
)
{
setActiveIdx
(
state
,
value
)
{
...
...
src/views/Goods/Detail/AIDetail.vue
View file @
f27b15a5
<
template
>
<
template
>
<cr-form
scroll-to-error
@
submit=
"onSubmit"
@
failed=
"onFailed"
class=
"container"
>
<cr-form
scroll-to-error
@
submit=
"onSubmit"
@
failed=
"onFailed"
class=
"container"
>
<nav-tab
:nav-list=
"navBarOptions"
/>
<nav-tab
:nav-list=
"navBarOptions"
@
show=
"e => (goodActionShow = e)"
/>
<detail-header
:det=
"headerInfo"
/>
<detail-header
:det=
"headerInfo"
/>
<div
class=
"det-body"
>
<div
class=
"det-body"
>
<card
title=
"保险计划"
:option=
"['查看详情']"
@
option-click=
"openIframePupop(4)"
>
<card
title=
"保险计划"
:option=
"['查看详情']"
@
option-click=
"openIframePupop(4)"
>
...
@@ -43,7 +43,11 @@
...
@@ -43,7 +43,11 @@
</div>
</div>
<detail-footer
:company-info=
"companyInfo"
/>
<detail-footer
:company-info=
"companyInfo"
/>
<copyright
/>
<copyright
/>
<good-action
@
leftClick=
"goInsureState = true"
:content=
"goodActionInfo"
/>
<good-action
@
leftClick=
"goInsureState = true"
:content=
"goodActionInfo"
v-show=
"goodActionShow"
/>
<popup-with-iframe
<popup-with-iframe
v-model=
"popupShow"
v-model=
"popupShow"
:title=
"pupopData.title"
:title=
"pupopData.title"
...
@@ -129,6 +133,7 @@ export default {
...
@@ -129,6 +133,7 @@ export default {
goodBuyModalInfo
:
[],
goodBuyModalInfo
:
[],
popupShow
:
false
,
popupShow
:
false
,
currentPupopIndex
:
null
,
currentPupopIndex
:
null
,
goodActionShow
:
false
,
calTimer
:
null
,
calTimer
:
null
,
formData
:
{
formData
:
{
name
:
""
,
name
:
""
,
...
@@ -276,13 +281,14 @@ export default {
...
@@ -276,13 +281,14 @@ export default {
},
},
async
calFee
()
{
async
calFee
()
{
let
{
price
}
=
this
.
headerInfo
;
let
{
price
}
=
this
.
headerInfo
;
const
{
idNo
,
amountInsured
}
=
this
.
formData
;
const
{
idNo
,
amountInsured
,
userInfoSecId
}
=
this
.
formData
;
if
(
!
idNo
||
!
amountInsured
)
return
;
if
(
!
idNo
||
!
amountInsured
)
return
;
const
_param
=
{
const
_param
=
{
productNo
:
this
.
goodId
,
productNo
:
this
.
goodId
,
productUserInfo
:
{
productUserInfo
:
{
userInfo
:
{
userInfo
:
{
idNo
idNo
,
userInfoSecId
:
userInfoSecId
?
userInfoSecId
:
undefined
},
},
productItem
:
{
productItem
:
{
amountInsured
amountInsured
...
...
src/views/Goods/Detail/CIIDetail.vue
View file @
f27b15a5
<
template
>
<
template
>
<cr-form
scroll-to-error
@
submit=
"onSubmit"
@
failed=
"onFailed"
class=
"container"
>
<cr-form
scroll-to-error
@
submit=
"onSubmit"
@
failed=
"onFailed"
class=
"container"
>
<nav-tab
:nav-list=
"navBarOptions"
/>
<nav-tab
:nav-list=
"navBarOptions"
@
show=
"e => (goodActionShow = e)"
/>
<detail-header
:det=
"headerInfo"
/>
<detail-header
:det=
"headerInfo"
/>
<div
class=
"det-body"
>
<div
class=
"det-body"
>
<card
title=
"保险计划"
:option=
"['查看详情']"
@
option-click=
"openIframePupop(4)"
>
<card
title=
"保险计划"
:option=
"['查看详情']"
@
option-click=
"openIframePupop(4)"
>
...
@@ -42,7 +42,11 @@
...
@@ -42,7 +42,11 @@
</div>
</div>
<detail-footer
:company-info=
"companyInfo"
/>
<detail-footer
:company-info=
"companyInfo"
/>
<copyright
/>
<copyright
/>
<good-action
@
leftClick=
"goInsureState = true"
:content=
"goodActionInfo"
/>
<good-action
@
leftClick=
"goInsureState = true"
:content=
"goodActionInfo"
v-show=
"goodActionShow"
/>
<popup-with-iframe
<popup-with-iframe
v-model=
"popupShow"
v-model=
"popupShow"
:title=
"pupopData.title"
:title=
"pupopData.title"
...
@@ -126,6 +130,7 @@ export default {
...
@@ -126,6 +130,7 @@ export default {
goodActionInfo
:
{},
goodActionInfo
:
{},
goodBuyModalInfo
:
[],
goodBuyModalInfo
:
[],
popupShow
:
false
,
popupShow
:
false
,
goodActionShow
:
false
,
currentPupopIndex
:
null
,
currentPupopIndex
:
null
,
formData
:
{
formData
:
{
name
:
""
,
name
:
""
,
...
@@ -256,7 +261,7 @@ export default {
...
@@ -256,7 +261,7 @@ export default {
userInfo
:
{
userInfo
:
{
idNo
,
idNo
,
socialSecurity
:
!!
Number
(
socialSecurity
),
socialSecurity
:
!!
Number
(
socialSecurity
),
userInfoSecId
:
userInfoSecId
?
?
null
userInfoSecId
:
userInfoSecId
?
userInfoSecId
:
undefined
},
},
productItem
:
{
productItem
:
{
payType
,
payType
,
...
...
src/views/Goods/Detail/LIDetail.vue
View file @
f27b15a5
<
template
>
<
template
>
<cr-form
scroll-to-error
@
submit=
"onSubmit"
@
failed=
"onFailed"
class=
"container"
>
<cr-form
scroll-to-error
@
submit=
"onSubmit"
@
failed=
"onFailed"
class=
"container"
>
<nav-tab
:nav-list=
"navBarOptions"
/>
<nav-tab
:nav-list=
"navBarOptions"
@
show=
"e => (goodActionShow = e)"
/>
<detail-header
:det=
"headerInfo"
>
<detail-header
:det=
"headerInfo"
>
<div
class=
"li-header"
>
<div
class=
"li-header"
>
<plan-tip
:tip-list=
"planTipOptions"
/>
<plan-tip
:tip-list=
"planTipOptions"
/>
...
@@ -71,6 +71,11 @@
...
@@ -71,6 +71,11 @@
</div>
</div>
<detail-footer
:company-info=
"companyInfo"
/>
<detail-footer
:company-info=
"companyInfo"
/>
<copyright
/>
<copyright
/>
<good-action
:content=
"goodActionInfo"
:class=
"
{ 'cal-fee': currentPupopIndex === 6 }"
v-show="goodActionShow"
/>
<good-action
:content=
"goodActionInfo"
:class=
"
{ 'cal-fee': currentPupopIndex === 6 }" />
<good-action
:content=
"goodActionInfo"
:class=
"
{ 'cal-fee': currentPupopIndex === 6 }" />
<popup-with-iframe
<popup-with-iframe
v-model=
"popupShow"
v-model=
"popupShow"
...
@@ -138,6 +143,7 @@ export default {
...
@@ -138,6 +143,7 @@ export default {
goodId
:
""
,
goodId
:
""
,
calTimer
:
null
,
calTimer
:
null
,
goodActionInfo
:
{},
goodActionInfo
:
{},
goodActionShow
:
false
,
popupShow
:
false
,
popupShow
:
false
,
currentPupopIndex
:
null
,
currentPupopIndex
:
null
,
formData
:
{},
formData
:
{},
...
...
src/views/Goods/Detail/MIDetail.vue
View file @
f27b15a5
<
template
>
<
template
>
<cr-form
scroll-to-error
@
submit=
"onSubmit"
@
failed=
"onFailed"
class=
"container"
>
<cr-form
scroll-to-error
@
submit=
"onSubmit"
@
failed=
"onFailed"
class=
"container"
>
<nav-tab
:nav-list=
"navBarOptions"
/>
<nav-tab
:nav-list=
"navBarOptions"
@
show=
"e => (goodActionShow = e)"
/>
<detail-header
:det=
"headerInfo"
/>
<detail-header
:det=
"headerInfo"
/>
<div
class=
"det-body"
>
<div
class=
"det-body"
>
<card
title=
"保险计划"
:option=
"['查看详情']"
@
option-click=
"openIframePupop(4)"
>
<card
title=
"保险计划"
:option=
"['查看详情']"
@
option-click=
"openIframePupop(4)"
>
...
@@ -41,7 +41,11 @@
...
@@ -41,7 +41,11 @@
</div>
</div>
<detail-footer
:company-info=
"companyInfo"
/>
<detail-footer
:company-info=
"companyInfo"
/>
<copyright
/>
<copyright
/>
<good-action
@
leftClick=
"goInsureState = true"
:content=
"goodActionInfo"
/>
<good-action
@
leftClick=
"goInsureState = true"
:content=
"goodActionInfo"
v-show=
"goodActionShow"
/>
<popup-with-iframe
<popup-with-iframe
v-model=
"popupShow"
v-model=
"popupShow"
:title=
"pupopData.title"
:title=
"pupopData.title"
...
@@ -139,6 +143,7 @@ export default {
...
@@ -139,6 +143,7 @@ export default {
autoRenewPolicy
:
false
,
autoRenewPolicy
:
false
,
read
:
true
read
:
true
},
},
goodActionShow
:
false
,
goInsureState
:
false
goInsureState
:
false
};
};
},
},
...
@@ -288,7 +293,7 @@ export default {
...
@@ -288,7 +293,7 @@ export default {
userInfo
:
{
userInfo
:
{
idNo
,
idNo
,
socialSecurity
:
!!
Number
(
socialSecurity
),
socialSecurity
:
!!
Number
(
socialSecurity
),
userInfoSecId
:
userInfoSecId
?
?
null
userInfoSecId
:
userInfoSecId
?
userInfoSecId
:
undefined
},
},
productItem
:
{
productItem
:
{
payType
payType
...
...
src/views/Goods/Detail/index.vue
View file @
f27b15a5
...
@@ -4,6 +4,7 @@
...
@@ -4,6 +4,7 @@
<mi-detail
v-if=
"detailType === 'mi'"
/>
<mi-detail
v-if=
"detailType === 'mi'"
/>
<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
v-model=
"showRec"
@
close=
"pageBack"
/>
</div>
</div>
</
template
>
</
template
>
...
@@ -12,22 +13,60 @@ import ciiDetail from "./CIIDetail";
...
@@ -12,22 +13,60 @@ import ciiDetail from "./CIIDetail";
import
miDetail
from
"
./MIDetail
"
;
import
miDetail
from
"
./MIDetail
"
;
import
liDetail
from
"
./LIDetail
"
;
import
liDetail
from
"
./LIDetail
"
;
import
aiDetail
from
"
./AIDetail
"
;
import
aiDetail
from
"
./AIDetail
"
;
import
AdvisorRecDialog
from
"
./modules/AdvisorRecDialog
"
;
import
localStorage
from
"
@/service/localStorage
"
;
import
{
getCulOrder
}
from
"
@/api/consultant
"
;
export
default
{
export
default
{
name
:
"
GoodsDetail
"
,
name
:
"
GoodsDetail
"
,
components
:
{
components
:
{
ciiDetail
,
ciiDetail
,
miDetail
,
miDetail
,
aiDetail
,
aiDetail
,
liDetail
liDetail
,
AdvisorRecDialog
},
},
data
()
{
data
()
{
return
{
return
{
detailType
:
""
,
detailType
:
""
,
show
:
true
showRecFlag
:
""
,
showRec
:
false
,
noOrder
:
false
,
isLogin
:
""
};
};
},
},
beforeRouteLeave
(
to
,
from
,
next
)
{
const
{
showRecFlag
,
noOrder
,
isLogin
}
=
this
;
if
(
showRecFlag
&&
!
noOrder
&&
isLogin
)
{
next
();
}
else
{
next
(
false
);
this
.
showRec
=
true
;
}
},
mounted
()
{
mounted
()
{
this
.
getOrderInfo
();
this
.
showRecFlag
=
localStorage
.
get
(
"
recFlag
"
);
this
.
detailType
=
this
.
$route
.
query
.
type
;
this
.
detailType
=
this
.
$route
.
query
.
type
;
},
methods
:
{
async
getOrderInfo
()
{
this
.
isLogin
=
localStorage
.
get
(
"
mongoToken
"
);
if
(
!
this
.
isLogin
)
{
return
;
}
const
res
=
await
getCulOrder
();
this
.
noOrder
=
res
[
0
].
state
&&
res
[
0
].
state
<=
2
;
},
pageBack
(
e
)
{
this
.
showRecFlag
=
e
;
localStorage
.
set
(
"
recFlag
"
,
e
);
if
(
e
===
1
)
{
this
.
$router
.
back
();
}
else
{
this
.
$router
.
push
({
path
:
"
/consultant
"
});
}
}
}
}
};
};
</
script
>
</
script
>
src/views/Goods/Detail/modules/AdvisorRecDialog.vue
View file @
f27b15a5
...
@@ -5,6 +5,7 @@
...
@@ -5,6 +5,7 @@
cancel-btn=
""
cancel-btn=
""
confirm-btn=
"0.99元聘请"
confirm-btn=
"0.99元聘请"
@
confirm=
"go"
@
confirm=
"go"
@
close=
"onClose"
class=
"rec"
class=
"rec"
>
>
<div
class=
"rec-title"
slot=
"title"
>
<div
class=
"rec-title"
slot=
"title"
>
...
@@ -32,6 +33,8 @@
...
@@ -32,6 +33,8 @@
<
script
>
<
script
>
import
Modal
from
"
@/components/Modal
"
;
import
Modal
from
"
@/components/Modal
"
;
const
DIALOG_CHANGE_EVENT
=
"
input
"
;
const
DIALOG_CHANGE_EVENT
=
"
input
"
;
const
DIALOG_CLOSE_EVENT
=
"
close
"
;
export
default
{
export
default
{
name
:
"
AdvisorRecDialog
"
,
name
:
"
AdvisorRecDialog
"
,
components
:
{
components
:
{
...
@@ -57,8 +60,11 @@ export default {
...
@@ -57,8 +60,11 @@ export default {
}
}
},
},
methods
:
{
methods
:
{
onClose
()
{
this
.
$emit
(
DIALOG_CLOSE_EVENT
,
1
);
},
go
()
{
go
()
{
this
.
$
router
.
push
(
"
/goods/inform
"
);
this
.
$
emit
(
DIALOG_CLOSE_EVENT
,
2
);
}
}
}
}
};
};
...
...
src/views/Goods/Detail/modules/InsurePersonForm.vue
View file @
f27b15a5
<
template
>
<
template
>
<card
title=
"请填写投保信息"
class=
"insure-card"
>
<div>
<h6
class=
"insure-form-title"
>
本人信息
</h6>
<card
title=
"请填写投保信息"
class=
"insure-card"
>
<cr-cell-group
class=
"insure-form"
>
<h6
class=
"insure-form-title"
>
本人信息
</h6>
<cr-field
<cr-cell-group
class=
"insure-form"
>
name=
"selfName"
<cr-field
v-model=
"formData.selfName"
name=
"selfName"
placeholder=
"请输入投保人姓名"
v-model=
"formData.selfName"
label=
"姓名"
placeholder=
"请输入投保人姓名"
:readonly=
"selfInfoReadonly"
label=
"姓名"
:rules=
"[
{ required: true, message: '请输入姓名' }]"
:readonly=
"selfInfoReadonly"
@click.native="inputClick"
:rules=
"[
{ required: true, message: '请输入姓名' }]"
/>
@click.native="inputClick"
<cr-field
/>
name=
"selfIdNo"
<cr-field
v-model=
"formData.selfIdNo"
name=
"selfIdNo"
placeholder=
"信息保密,仅用于投保"
v-model=
"formData.selfIdNo"
label=
"身份证号"
placeholder=
"信息保密,仅用于投保"
:readonly=
"selfInfoReadonly"
label=
"身份证号"
:rules=
"[
{ required: true, message: '请输入身份证号' }]"
:readonly=
"selfInfoReadonly"
@click.native="inputClick"
:rules=
"[
{ required: true, message: '请输入身份证号' }]"
/>
@click.native="inputClick"
<cr-field
/>
name=
"selfPhone"
<cr-field
v-model=
"formData.selfPhone"
name=
"selfPhone"
placeholder=
"请输入您的手机号码"
v-model=
"formData.selfPhone"
label=
"手机号码"
placeholder=
"请输入您的手机号码"
:readonly=
"selfInfoReadonly"
label=
"手机号码"
:rules=
"[
{ required: true, message: '请输入手机号码' }]"
:readonly=
"selfInfoReadonly"
@click.native="inputClick"
:rules=
"[
{ required: true, message: '请输入手机号码' }]"
/>
@click.native="inputClick"
<cr-field
/>
name=
"selfCode"
<cr-field
v-model=
"formData.selfCode"
name=
"selfCode"
v-if=
"(!!xyqbAuthState && xyqbAuthState !== 4) || !mongoToken"
v-model=
"formData.selfCode"
placeholder=
"请输入短信验证码"
v-if=
"(!!xyqbAuthState && xyqbAuthState !== 4) || !mongoToken"
label=
"验证码"
placeholder=
"请输入短信验证码"
:rules=
"[
{ required: true, message: '请输入验证码' }]"
label=
"验证码"
>
:rules=
"[
{ required: true, message: '请输入验证码' }]"
<template
v-slot:button
>
>
<a
href=
"javascript:;"
@
click=
"getCode"
v-if=
"!showCount"
>
获取验证码
</a>
<template
v-slot:button
>
<span
class=
"login-form-remain"
v-else
>
{{
count
}}
s
</span>
<a
href=
"javascript:;"
@
click=
"getCode"
v-if=
"!showCount"
>
获取验证码
</a>
</
template
>
<span
class=
"login-form-remain"
v-else
>
{{
count
}}
s
</span>
</cr-field>
</
template
>
</cr-cell-group>
</cr-field>
<h6
class=
"insure-form-title"
>
为谁投保
</h6>
</cr-cell-group>
<cr-radio-btn
<h6
class=
"insure-form-title"
>
为谁投保
</h6>
v-model=
"formData.relation"
<cr-radio-btn
@
input=
"relationChange"
v-model=
"formData.relation"
:radio-data=
"radioOptions.insuredOptions"
@
input=
"relationChange"
class=
"insured"
:radio-data=
"radioOptions.insuredOptions"
/>
class=
"insured"
<cr-cell-group
class=
"insure-form"
>
<cr-field
name=
"relativeName"
v-if=
"formData.relation !== '1'"
v-model=
"formData.name"
placeholder=
"请输入被保人姓名"
:readonly=
"infoReadonly"
label=
"姓名"
:rules=
"[{ required: true, message: '请输入姓名' }]"
/>
<cr-field
name=
"relativeIdNo"
v-if=
"formData.relation !== '1'"
v-model=
"formData.idNo"
placeholder=
"信息保密,仅用于投保"
:readonly=
"infoReadonly"
label=
"身份证号"
:rules=
"[{ required: true, message: '请输入身份证号' }]"
/>
/>
<cr-cell
class=
"insure-form-item_nobg"
v-if=
"radioOptions.medicalOptions"
>
<cr-cell-group
class=
"insure-form"
>
<
template
slot=
"title"
>
<cr-field
<span>
有无医保
</span>
name=
"relativeName"
<cr-icon
type=
"question-o"
color=
"#ccc"
/>
v-if=
"formData.relation !== '1'"
</
template
>
v-model=
"formData.name"
<cr-radio-btn
placeholder=
"请输入被保人姓名"
name=
"socialSecurity"
:readonly=
"infoReadonly"
v-model=
"formData.socialSecurity"
label=
"姓名"
:radio-data=
"radioOptions.medicalOptions"
:rules=
"[{ required: true, message: '请输入姓名' }]"
:readonly=
"socialSecurityReadonly"
/>
/>
</cr-cell>
<cr-field
<cr-cell
title=
"缴费方式"
class=
"insure-form-item_nobg"
v-if=
"radioOptions.paywayOptions"
>
name=
"relativeIdNo"
<cr-radio-btn
v-if=
"formData.relation !== '1'"
name=
"type"
v-model=
"formData.idNo"
v-model=
"formData.payType"
placeholder=
"信息保密,仅用于投保"
:radio-data=
"radioOptions.paywayOptions"
:readonly=
"infoReadonly"
label=
"身份证号"
:rules=
"[{ required: true, message: '请输入身份证号' }]"
/>
/>
</cr-cell>
<cr-cell
class=
"insure-form-item_nobg"
v-if=
"radioOptions.medicalOptions"
>
</cr-cell-group>
<
template
slot=
"title"
>
</card>
<span>
有无医保
</span>
<svg-icon
icon-class=
"doubt"
@
click.native=
"question = true"
class-name=
"Ffr-title-svg"
/>
</
template
>
<cr-radio-btn
name=
"socialSecurity"
v-model=
"formData.socialSecurity"
:radio-data=
"radioOptions.medicalOptions"
/>
</cr-cell>
<cr-cell
title=
"缴费方式"
class=
"insure-form-item_nobg"
v-if=
"radioOptions.paywayOptions"
>
<cr-radio-btn
name=
"type"
v-model=
"formData.payType"
:radio-data=
"radioOptions.paywayOptions"
/>
</cr-cell>
</cr-cell-group>
</card>
<Modal
class=
"insured-modal"
v-model=
"question"
:closeable=
"false"
@
confirm=
"question = false"
cancel-btn=
""
content=
"常见的社保包括农村合作医疗(新农合)、城镇居民社保、城镇职工医保、少儿医保等政府主导的基本医疗保障项目,满足最基本的医疗保障要求。"
title=
"我们常说的社保都包括哪些?"
confirm-btn=
"我知道了"
/>
</div>
</template>
</template>
<
script
>
<
script
>
import
Card
from
"
@/components/Card
"
;
import
Card
from
"
@/components/Card
"
;
import
Modal
from
"
@/components/Modal
"
;
import
{
mapState
,
mapActions
}
from
"
vuex
"
;
import
{
mapState
,
mapActions
}
from
"
vuex
"
;
import
{
getFamilyList
,
getCaptchaSms
}
from
"
@/api/user
"
;
import
{
getFamilyList
,
getCaptchaSms
}
from
"
@/api/user
"
;
import
{
isPhone
}
from
"
@/service/validation
"
;
import
{
isPhone
}
from
"
@/service/validation
"
;
...
@@ -104,7 +120,8 @@ export default {
...
@@ -104,7 +120,8 @@ export default {
name
:
"
InsurePersonForm
"
,
name
:
"
InsurePersonForm
"
,
components
:
{
components
:
{
CrRadioBtn
,
CrRadioBtn
,
Card
Card
,
Modal
},
},
props
:
{
props
:
{
value
:
{
value
:
{
...
@@ -130,7 +147,8 @@ export default {
...
@@ -130,7 +147,8 @@ export default {
mongoToken
:
localStorage
.
get
(
"
mongoToken
"
),
mongoToken
:
localStorage
.
get
(
"
mongoToken
"
),
xyqbAuthState
:
localStorage
.
get
(
"
xyqbAuthState
"
),
xyqbAuthState
:
localStorage
.
get
(
"
xyqbAuthState
"
),
selfInfoReadonly
:
false
,
selfInfoReadonly
:
false
,
infoReadonly
:
false
infoReadonly
:
false
,
question
:
false
};
};
},
},
watch
:
{
watch
:
{
...
@@ -328,4 +346,15 @@ export default {
...
@@ -328,4 +346,15 @@ export default {
.insured {
.insured {
margin-bottom: 20px;
margin-bottom: 20px;
}
}
.insured-modal {
@{deep} .panel-body {
font-size: 16px;
font-weight: 400;
color: #666666;
line-height: 28px;
}
}
.Ffr-title-svg {
margin-left: 5px;
}
</
style
>
</
style
>
src/views/Goods/Detail/modules/NavTab.vue
View file @
f27b15a5
...
@@ -10,6 +10,7 @@
...
@@ -10,6 +10,7 @@
<
script
>
<
script
>
const
SCROLL_ACHOR_CHANGE_EVENT
=
"
input
"
;
const
SCROLL_ACHOR_CHANGE_EVENT
=
"
input
"
;
const
SCROLL_SHOW_EVENT
=
"
show
"
;
export
default
{
export
default
{
name
:
"
NavTab
"
,
name
:
"
NavTab
"
,
props
:
{
props
:
{
...
@@ -71,6 +72,7 @@ export default {
...
@@ -71,6 +72,7 @@ export default {
}
}
this
.
active
=
navIndex
;
this
.
active
=
navIndex
;
this
.
showNavBar
=
scrollTop
>
300
;
this
.
showNavBar
=
scrollTop
>
300
;
this
.
$emit
(
SCROLL_SHOW_EVENT
,
this
.
showNavBar
);
},
},
// 跳转到指定索引的元素
// 跳转到指定索引的元素
scrollTo
(
index
)
{
scrollTo
(
index
)
{
...
...
src/views/Goods/Detail/modules/detailPay.mixin.js
View file @
f27b15a5
...
@@ -67,7 +67,7 @@ export default {
...
@@ -67,7 +67,7 @@ export default {
const
{
payOrderNo
,
orderNo
}
=
this
.
orderInfo
;
const
{
payOrderNo
,
orderNo
}
=
this
.
orderInfo
;
this
.
setIsLoading
(
true
);
this
.
setIsLoading
(
true
);
placeOrder
.
polling
({
payOrderNo
,
payOrderType
:
1
}).
then
(
payRes
=>
{
placeOrder
.
polling
({
payOrderNo
,
payOrderType
:
1
}).
then
(
payRes
=>
{
if
(
!
payRes
.
result
&&
(
payRes
.
payState
===
1
||
payRes
.
payState
===
2
)
)
{
if
(
!
payRes
.
result
&&
payRes
.
payState
===
2
)
{
this
.
payTimer
=
setTimeout
(()
=>
{
this
.
payTimer
=
setTimeout
(()
=>
{
this
.
getPayResult
();
this
.
getPayResult
();
},
3000
);
},
3000
);
...
...
src/views/Home/index.less
View file @
f27b15a5
...
@@ -251,6 +251,10 @@
...
@@ -251,6 +251,10 @@
font-size: 16px;
font-size: 16px;
color: #999999;
color: #999999;
line-height: 19px;
line-height: 19px;
a {
font-size: 16px;
color: #999999;
}
}
}
p:last-child {
p:last-child {
...
...
src/views/Home/index.vue
View file @
f27b15a5
...
@@ -87,7 +87,9 @@
...
@@ -87,7 +87,9 @@
</a>
</a>
</div>
</div>
<div
class=
"home-phone"
>
<div
class=
"home-phone"
>
<p>
客服电话:
{{
tel
}}
</p>
<p>
客服电话:
<a
:href=
"`tel:$
{tel}`">
{{
tel
}}
</a>
</p>
<p>
服务时间:
{{
serviceHours
}}
</p>
<p>
服务时间:
{{
serviceHours
}}
</p>
</div>
</div>
<copyright
:logo=
"true"
/>
<copyright
:logo=
"true"
/>
...
...
src/views/Policy/Add/index.vue
View file @
f27b15a5
...
@@ -140,7 +140,6 @@
...
@@ -140,7 +140,6 @@
<cr-radio-btn
<cr-radio-btn
v-model=
"formData.insuredUserInfo.socialSecurity"
v-model=
"formData.insuredUserInfo.socialSecurity"
:radio-data=
"socialSecOptions"
:radio-data=
"socialSecOptions"
:readonly=
"socialSecurityReadonly"
/>
/>
</
template
>
</
template
>
</cr-field>
</cr-field>
...
...
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