Skip to content
Toggle navigation
Toggle navigation
This project
Loading...
Sign in
dev
/
pingan-life-index-pro
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Network
Create a new issue
Builds
Commits
Issue Boards
Files
Commits
Network
Compare
Branches
Tags
b55ff84b
authored
2019-11-15 12:53:00 +0800
by
joe
Browse Files
Options
Browse Files
Tag
Download
Email Patches
Plain Diff
投诉受理
1 parent
b7efbc15
Show whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
209 additions
and
42 deletions
src/common/lang/en.js
src/common/lang/tc.js
src/common/lang/zh.js
src/pages/custom-service/components/complaint-acceptance.js
src/pages/custom-service/components/complaint-acceptance.scss
src/pages/custom-service/components/complaint-acceptance.vue
src/pages/custom-service/components/reservation.js
src/pages/custom-service/components/reservation.vue
src/common/lang/en.js
View file @
b55ff84
...
...
@@ -329,6 +329,11 @@ module.exports = {
contactTime
:
"期望聯絡時間"
,
notice1
:
"本表格所收集的個人資料根據「平安人壽香港個人資料收集聲明」處理及只會被用作於聯絡 閣下之用。然而所收集的個人資料未經您明確授權將不會轉移至「平安人壽香港個人資料收集聲明」列明以外之第三者機構。您可選擇不向我們提供所需的個人資料,惟這樣可能導致我們不能聯絡您。您亦可根據「平安人壽香港個人資料收集聲明」之權利查閱及更正個人資料。"
,
notice2
:
"本人現確認明白並同意本人的個人資料根據中銀人壽個人資料收集聲明作以上述用途。"
,
contactTypes
:
[
'電話'
,
'電郵'
],
errorTips
:
{
e1
:
"請填寫該項內容"
,
e2
:
"請填寫正確的聯繫方式"
},
},
reservation
:
{
name
:
"姓名"
,
...
...
@@ -667,7 +672,7 @@ module.exports = {
},
reservation
:
{
submitBtn
:
'確認'
,
contact
Method
s
:
[
'電話'
],
contact
Type
s
:
[
'電話'
],
reservationTypes
:
[
'投保咨詢'
,
'代辦保單變更'
],
errorTips
:
{
e1
:
"請填寫該項內容"
,
...
...
src/common/lang/tc.js
View file @
b55ff84
...
...
@@ -327,6 +327,11 @@ module.exports = {
contactTime
:
"期望聯絡時間"
,
notice1
:
"本表格所收集的個人資料根據「平安人壽香港個人資料收集聲明」處理及只會被用作於聯絡 閣下之用。然而所收集的個人資料未經您明確授權將不會轉移至「平安人壽香港個人資料收集聲明」列明以外之第三者機構。您可選擇不向我們提供所需的個人資料,惟這樣可能導致我們不能聯絡您。您亦可根據「平安人壽香港個人資料收集聲明」之權利查閱及更正個人資料。"
,
notice2
:
"本人現確認明白並同意本人的個人資料根據中銀人壽個人資料收集聲明作以上述用途。"
,
contactTypes
:
[
'電話'
,
'電郵'
],
errorTips
:
{
e1
:
"請填寫該項內容"
,
e2
:
"請填寫正確的聯繫方式"
},
},
reservation
:
{
name
:
"姓名"
,
...
...
@@ -665,7 +670,7 @@ module.exports = {
},
reservation
:
{
submitBtn
:
'確認'
,
contact
Method
s
:
[
'電話'
],
contact
Type
s
:
[
'電話'
],
reservationTypes
:
[
'投保咨詢'
,
'代辦保單變更'
],
errorTips
:
{
e1
:
"請填寫該項內容"
,
...
...
src/common/lang/zh.js
View file @
b55ff84
...
...
@@ -8,8 +8,8 @@ module.exports = {
zh
:
'中文'
,
en
:
'英文'
},
glbalTips
:
{
sessionLost
:
"为了更好的体验,需要您登录后再进行此操作"
glbalTips
:
{
sessionLost
:
"为了更好的体验,需要您登录后再进行此操作"
},
nav
:
{
loginData
:
{
...
...
@@ -283,7 +283,7 @@ module.exports = {
value
:
"W"
}]
},
successMsg
:
"更新成功"
,
successMsg
:
"更新成功"
,
errorTips
:
{
e1
:
"请填写姓名信息"
,
e2
:
"请选择性别"
,
...
...
@@ -327,6 +327,11 @@ module.exports = {
contactTime
:
"期望联络时间"
,
notice1
:
"本表格所收集的个人资料根据「平安人寿香港个人资料收集声明」处理及只会被用作于联络 阁下之用。然而所收集的个人资料未经您明确授权将不会转移至「平安人寿香港个人资料收集声明」列明以外之第三者机构。您可选择不向我们提供所需的个人资料,惟这样可能导致我们不能联络您。您亦可根据「平安人寿香港个人资料收集声明」之权利查阅及更正个人资料。"
,
notice2
:
"本人现确认明白并同意本人的个人资料根据中银人寿个人资料收集声明作以上述用途。"
,
contactTypes
:
[
'电话'
,
'电邮'
],
errorTips
:
{
e1
:
"请填写该项内容"
,
e2
:
"请填写正确的联系方式"
},
},
reservation
:
{
name
:
"姓名"
,
...
...
@@ -554,10 +559,10 @@ module.exports = {
email
:
"E-Mail"
,
checkTips
:
"本人不同意接收宣传信息"
,
submit
:
"确认修改"
,
errorTips
:
{
e1
:
"請填寫正確的聯繫電話"
,
e2
:
"請填寫聯繫地址"
,
e3
:
"請填寫正確的E-Mail地址"
errorTips
:
{
e1
:
"請填寫正確的聯繫電話"
,
e2
:
"請填寫聯繫地址"
,
e3
:
"請填寫正確的E-Mail地址"
}
},
policyChangeInformation
:
{
...
...
@@ -666,11 +671,11 @@ module.exports = {
},
reservation
:
{
submitBtn
:
'确认'
,
contact
Methods
:
[
'電話'
],
reservationTypes
:
[
'投保咨询'
,
'代办保单变更'
],
errorTips
:
{
e1
:
"請填寫該項內容"
,
e2
:
"請填寫正確的聯繫方式"
contact
Types
:
[
'電話'
],
reservationTypes
:
[
'投保咨询'
,
'代办保单变更'
],
errorTips
:
{
e1
:
"請填寫該項內容"
,
e2
:
"請填寫正確的聯繫方式"
}
}
}
...
...
src/pages/custom-service/components/complaint-acceptance.js
View file @
b55ff84
...
...
@@ -8,8 +8,24 @@ export default {
data
()
{
return
{
key
:
'value'
,
isHkCus
:
true
,
checked
:
false
isHkCus
:
true
,
checked
:
false
,
data
:
{
name
:
""
,
contactType
:
""
,
contactMethod
:
""
,
complain
:
""
,
policyNumber
:
""
,
contactDate
:
""
},
errorTips
:
{
nameErr
:
""
,
contactTypeErr
:
""
,
contactMethodErr
:
""
,
complainErr
:
""
,
policyNumberErr
:
""
,
contactDateErr
:
""
}
}
},
components
:
{},
...
...
@@ -19,11 +35,113 @@ export default {
},
i18n
()
{
return
this
.
$i18n
.
messages
&&
this
.
$i18n
.
locale
?
this
.
$i18n
.
messages
[
this
.
$i18n
.
locale
]
:
{};
},
contactTypes
()
{
return
this
.
i18n
.
complaintAcceptance
.
contactTypes
;
}
},
methods
:
{
initData
()
{}
initData
()
{
this
.
data
.
contactType
=
this
.
contactTypes
[
0
];
},
submitHandler
()
{
if
(
!
this
.
checked
||
this
.
isSubmit
)
{
return
;
}
let
b1
=
this
.
checkName
();
let
b2
=
this
.
checkContactType
();
let
b3
=
this
.
checkContactMethod
();
let
b4
=
this
.
checkComplain
();
let
b5
=
this
.
checkPolicyNumber
();
let
b6
=
this
.
checkContactDate
();
let
b
=
b1
&
b2
&
b3
&
b4
&
b5
&
b6
;
if
(
b
)
{
this
.
isSubmit
=
true
;
httpPost
({
url
:
api
.
saveComplain
,
data
:
this
.
data
}).
then
(()
=>
{
this
.
showSubmitSuccess
();
this
.
isSubmit
=
false
;
}).
catch
(()
=>
{
this
.
isSubmit
=
false
;
})
}
},
showSubmitSuccess
()
{
alert
(
"提交成功"
);
this
.
data
.
name
=
""
;
this
.
data
.
contactMethod
=
""
;
this
.
data
.
complain
=
""
;
this
.
data
.
policyNumber
=
""
;
this
.
data
.
contactDate
=
""
;
},
checkName
()
{
if
(
!
this
.
data
.
name
)
{
this
.
errorTips
.
nameErr
=
this
.
i18n
.
complaintAcceptance
.
errorTips
.
e1
;
return
false
;
}
return
true
;
},
checkContactType
()
{
if
(
!
this
.
data
.
contactType
)
{
this
.
errorTips
.
contactTypeErr
=
this
.
i18n
.
complaintAcceptance
.
errorTips
.
e1
;
return
false
;
}
return
true
;
},
checkContactMethod
()
{
if
(
!
this
.
data
.
contactMethod
)
{
this
.
errorTips
.
contactMethodErr
=
this
.
i18n
.
complaintAcceptance
.
errorTips
.
e1
;
return
false
;
}
return
true
;
},
checkComplain
()
{
if
(
!
this
.
data
.
complain
)
{
this
.
errorTips
.
complainErr
=
this
.
i18n
.
complaintAcceptance
.
errorTips
.
e1
;
return
false
;
}
return
true
;
},
checkPolicyNumber
()
{
if
(
!
this
.
data
.
policyNumber
)
{
this
.
errorTips
.
policyNumberErr
=
this
.
i18n
.
complaintAcceptance
.
errorTips
.
e1
;
return
false
;
}
return
true
;
},
checkContactDate
()
{
if
(
!
this
.
data
.
contactDate
)
{
this
.
errorTips
.
contactDateErr
=
this
.
i18n
.
complaintAcceptance
.
errorTips
.
e1
;
return
false
;
}
return
true
;
}
},
watch
:
{
'data.name'
:
function
()
{
this
.
errorTips
.
nameErr
=
""
;
},
'data.contactType'
:
function
()
{
this
.
errorTips
.
contactTypeErr
=
""
;
},
'data.contactMethod'
:
function
()
{
this
.
errorTips
.
contactMethodErr
=
""
;
},
'data.complain'
:
function
()
{
this
.
errorTips
.
complainErr
=
""
;
},
'data.policyNumber'
:
function
()
{
this
.
errorTips
.
policyNumberErr
=
""
;
},
'data.contactDate'
:
function
()
{
this
.
errorTips
.
contactDateErr
=
""
;
}
},
mounted
()
{
this
.
initData
();
},
mounted
()
{},
created
()
{}
created
()
{
}
}
...
...
src/pages/custom-service/components/complaint-acceptance.scss
View file @
b55ff84
...
...
@@ -86,6 +86,20 @@
}
}
.validator
{
color
:
$cOrange
;
margin-top
:
0
.5rem
;
position
:
absolute
;
right
:
1rem
;
display
:
flex
;
align-items
:
center
;
// bottom: 0;
img
{
display
:
inline-block
;
margin-right
:
0
.4rem
;
}
}
}
// 不换行
...
...
@@ -129,7 +143,9 @@
display
:
flex
;
align-items
:
center
;
flex-wrap
:
wrap
;
.validator
{
margin-top
:
3rem
;
}
.label
{
// min-width: 8.833333rem;
}
...
...
@@ -222,3 +238,8 @@ input {
color
:
#333333
;
font-size
:
12px
;
}
.disabled
{
background-color
:
gray
!
important
;
background-image
:none
!
important
;
}
\ No newline at end of file
...
...
src/pages/custom-service/components/complaint-acceptance.vue
View file @
b55ff84
...
...
@@ -9,7 +9,10 @@
<div
class=
"icon"
><img
src=
"@/assets/images/reservation/icon-re-name.png"
></div>
{{
$t
(
'complaintAcceptance.name'
)
}}
</div>
<div
class=
"ipt-wrap"
>
<input
:placeholder=
"$t('complaintAcceptance.namePlaceholder')"
class=
"ipt name-ipt"
type=
"text"
>
<input
:placeholder=
"$t('complaintAcceptance.namePlaceholder')"
class=
"ipt name-ipt"
type=
"text"
:class=
"
{err : errorTips.nameErr.length > 0}" v-model="data.name">
</div>
<div
class=
"validator"
v-if=
"errorTips.nameErr.length > 0"
>
<img
src=
"@/assets/images/common/icon-notice.png"
alt=
""
>
{{
errorTips
.
nameErr
}}
</div>
</div>
...
...
@@ -19,23 +22,24 @@
</div>
<div
class=
"ipt-wrap"
>
<div
class=
"down-arrow"
></div>
<select
v-if=
"locale !='zh'"
class=
"ipt phone-ipt"
>
<option>
電話
</option>
<option>
電郵
</option>
</select>
<select
v-else
class=
"ipt phone-ipt"
>
<option>
电话
</option>
<option>
电邮
</option>
<select
class=
"ipt phone-ipt"
v-model=
"data.contactType"
>
<option
v-for=
"(item,index) in contactTypes"
:key=
"index"
:value=
"item"
>
{{
item
}}
</option>
</select>
</div>
<div
class=
"validator"
v-if=
"errorTips.contactTypeErr.length > 0"
>
<img
src=
"@/assets/images/common/icon-notice.png"
alt=
""
>
{{
errorTips
.
contactTypeErr
}}
</div>
</div>
<div
class=
"form-item flex1"
>
<div
class=
"label"
>
<div
class=
"icon"
><img
src=
"@/assets/images/complaint-acceptance/icon-ca-mail.png"
></div>
{{
$t
(
'complaintAcceptance.email'
)
}}
<div
class=
"icon"
><img
src=
"@/assets/images/complaint-acceptance/icon-ca-mail.png"
></div>
{{
data
.
contactType
}}
</div>
<div
class=
"ipt-wrap"
>
<input
class=
"ipt mail-ipt"
type=
"text"
>
<input
class=
"ipt mail-ipt"
type=
"text"
:class=
"
{err : errorTips.contactMethodErr.length > 0}" v-model="data.contactMethod">
</div>
<div
class=
"validator"
v-if=
"errorTips.contactMethodErr.length > 0"
>
<img
src=
"@/assets/images/common/icon-notice.png"
alt=
""
>
{{
errorTips
.
contactMethodErr
}}
</div>
</div>
...
...
@@ -48,7 +52,10 @@
<div
class=
"icon"
><img
src=
"@/assets/images/reservation/icon-re-arrow-reservation.png"
></div>
{{
$t
(
'complaintAcceptance.question'
)
}}
</div>
<div
class=
"ipt-wrap"
>
<textarea
:placeholder=
"$t('complaintAcceptance.questionPlaceHolder')"
class=
"ipt textarea"
></textarea>
<textarea
:placeholder=
"$t('complaintAcceptance.questionPlaceHolder')"
class=
"ipt textarea"
:class=
"
{err:errorTips.complainErr.length >0}" v-model="data.complain">
</textarea>
</div>
<div
class=
"validator"
v-if=
"errorTips.contactMethodErr.length > 0"
>
<img
src=
"@/assets/images/common/icon-notice.png"
alt=
""
>
{{
errorTips
.
contactMethodErr
}}
</div>
</div>
...
...
@@ -58,7 +65,10 @@
<div
class=
"icon"
><img
src=
"@/assets/images/complaint-acceptance/icon-ca-no.png"
></div>
{{
$t
(
'complaintAcceptance.orderNo'
)
}}
</div>
<div
class=
"ipt-wrap ipt-wrap2"
>
<input
:placeholder=
"$t('complaintAcceptance.orderNoPlaceHolder')"
class=
"ipt"
type=
"text"
>
<input
:placeholder=
"$t('complaintAcceptance.orderNoPlaceHolder')"
class=
"ipt"
type=
"text"
:class=
"
{err:errorTips.policyNumberErr.length>0}" v-model="data.policyNumber">
</div>
<div
class=
"validator"
v-if=
"errorTips.policyNumberErr.length > 0"
>
<img
src=
"@/assets/images/common/icon-notice.png"
alt=
""
>
{{
errorTips
.
policyNumberErr
}}
</div>
</div>
...
...
@@ -68,14 +78,17 @@
<div
class=
"icon"
><img
src=
"@/assets/images/reservation/icon-re-calendar.png"
></div>
{{
$t
(
'complaintAcceptance.contactTime'
)
}}
</div>
<div
class=
"ipt-wrap"
>
<input
value=
"2019/10/16"
class=
"ipt"
type=
"text"
>
<input
class=
"ipt"
type=
"date"
:class=
"
{err:errorTips.contactDateErr.length>0}" v-model="data.contactDate">
</div>
<div
class=
"validator"
v-if=
"errorTips.contactDateErr.length > 0"
>
<img
src=
"@/assets/images/common/icon-notice.png"
alt=
""
>
{{
errorTips
.
contactDateErr
}}
</div>
<div
class=
"mt8"
>
<div
class=
"label"
>
</div>
<div
class=
"calendar"
>
<
!--
<
div
class=
"calendar"
>
<img
src=
"@/assets/images/reservation/re-calendar.png"
>
</div>
</div>
-->
</div>
</div>
</div>
...
...
@@ -92,7 +105,7 @@
</div>
<!-- 提交按钮 -->
<div
class=
"submit-btn"
>
<div
class=
"submit-btn"
@
click=
"submitHandler"
:class=
"
{disabled:!checked}"
>
{{
$t
(
'customService.reservation.submitBtn'
)
}}
</div>
</div>
...
...
src/pages/custom-service/components/reservation.js
View file @
b55ff84
...
...
@@ -39,8 +39,8 @@ export default {
i18n
()
{
return
this
.
$i18n
.
messages
&&
this
.
$i18n
.
locale
?
this
.
$i18n
.
messages
[
this
.
$i18n
.
locale
]
:
{};
},
contact
Method
s
()
{
return
this
.
i18n
.
customService
.
reservation
.
contact
Method
s
;
contact
Type
s
()
{
return
this
.
i18n
.
customService
.
reservation
.
contact
Type
s
;
},
reservationTypes
()
{
return
this
.
i18n
.
customService
.
reservation
.
reservationTypes
;
...
...
@@ -48,11 +48,11 @@ export default {
},
methods
:
{
initData
()
{
this
.
data
.
contactType
=
this
.
contact
Method
s
[
0
];
this
.
data
.
contactType
=
this
.
contact
Type
s
[
0
];
this
.
data
.
reservationType
=
this
.
reservationTypes
[
0
];
},
submitHandler
()
{
if
(
this
.
isSubmit
)
{
if
(
!
this
.
checked
||
this
.
isSubmit
)
{
return
;
}
let
b1
=
this
.
checkName
();
...
...
@@ -75,7 +75,7 @@ export default {
})
}
},
showSubmitSuccess
(){
showSubmitSuccess
()
{
alert
(
"提交成功"
);
this
.
data
.
name
=
""
;
this
.
data
.
contactMethod
=
""
;
...
...
src/pages/custom-service/components/reservation.vue
View file @
b55ff84
...
...
@@ -22,7 +22,7 @@
<div
class=
"ipt-wrap"
>
<div
class=
"down-arrow"
></div>
<select
class=
"ipt"
v-model=
"data.contactType"
>
<option
v-for=
"(item,index) in contact
Method
s"
:key=
"index"
:value=
"item"
>
{{
item
}}
</option>
<option
v-for=
"(item,index) in contact
Type
s"
:key=
"index"
:value=
"item"
>
{{
item
}}
</option>
</select>
</div>
</div>
...
...
Please
register
or
sign in
to post a comment