8a698e31 by simon

更改联络方式交互样式,含三语和mock数据结构

1 parent ae2b9504

269 Bytes | W: | H:

477 Bytes | W: | H:

  • 2-up
  • Swipe
  • Onion skin

194 Bytes | W: | H:

264 Bytes | W: | H:

  • 2-up
  • Swipe
  • Onion skin

283 Bytes | W: | H:

500 Bytes | W: | H:

  • 2-up
  • Swipe
  • Onion skin
module.exports = {
common: {
Confirm:"Confirm",
Cancel:"Cancel",
Confirm: "Confirm",
Cancel: "Cancel",
Male: "Male",
Female: "Female",
Sex: "Sex",
Age: "Age",
},
message: {
login: 'Login',
......@@ -373,53 +377,35 @@ module.exports = {
customService: "contact customer service hotline",
},
index: {
// news: "新聞資訊",
// newMore: "查看更多",
// recommend: {
// t1: "Online Quotation",
// t2: "Customer Service",
// t3: "Products",
// t4: "Latest News",
// item1: {
// btn: "了解更多產品",
// t1: "為自己和家人尋找壹份保障",
// },
// item2: {
// btn: "立即預約",
// t1: "在線預約 專業服務",
// },
// item3: {
// btn: "客户服务",
// t1: "專業客服為妳服務",
// t2: "想了解更多,可致電",
// t3: "95511",
// t4: "聯絡我們,或進入",
// }
// },
recommend:{
title:"為何選擇平安人壽?",
contact:"Contact us",
item1:{
desc:"E-service at Finger Tips",
recommend: {
title: "Why choose us?",
contact: "Contact us",
item1: {
desc: "E-service at Finger Tips",
},
item2:{
desc:"Serving more than 200 million customers",
item2: {
desc: "Serving more than 200 million customers",
},
item3:{
desc:"International risk management standard",
item3: {
desc: "International risk management standard",
},
},
contact:{
t1:"Contact us for more product information.",
t2:"Leave your contact or call us at 2983 8866.",
form:{
Title:"Title",
Name:"Name",
PhoneNumber:"Phone number",
Email:"Email",
Time:"Preferred contact time slot",
Inquiry:"Inquiry",
Submit:"Submit",
quote: {
quote: "Quote now",
want: "",
service: "Contact customer service",
},
contact: {
t1: "Contact us for more product information.",
t2: "Leave your contact or call us at 2983 8866.",
form: {
Title: "Title",
Name: "Name",
PhoneNumber: "Phone number",
Email: "Email",
Time: "Preferred contact time slot",
Inquiry: "Inquiry",
Submit: "Submit",
}
}
......@@ -717,6 +703,14 @@ module.exports = {
e2: "請填寫聯繫地址",
e3: "Please enter the collect E-mail"
},
form:{
InternationalArea:"International area",
Mobile:"Mobile",
Nation:"Nation(Region)",
District:"District",
Address:"Address",
Mail:"Please enter",
},
success: "Success",
},
policyChangeInformation: {
......@@ -775,10 +769,10 @@ module.exports = {
SentOutDate: "Sent Out Date",
DownloadLink: "Download link",
Status: "Status",
letterName : "Notice of Policy Issuance and Cooling-off Period",
DownloadDoc : "Download document",
Read : "Read",
UnRead : "Unread"
letterName: "Notice of Policy Issuance and Cooling-off Period",
DownloadDoc: "Download document",
Read: "Read",
UnRead: "Unread"
},
customService: {
name: "Customer service",
......@@ -1149,7 +1143,7 @@ module.exports = {
num1: "(i)",
num2: "(ii)",
title: "Plan At-a-glance",
titleLt:"Basic Information",
titleLt: "Basic Information",
titleT1: "",
titleT2: "",
titleNum: "",
......@@ -1168,20 +1162,20 @@ module.exports = {
v5: "The higher of the following, less any indebtedness:",
v51: "110% of the sum of the Total Basic Premiums Paid;",
v52: "Guaranteed Cash Value plus the face value of accumulated Reversionary Bonus and face value of Terminal Bonus (if any).",
k6:"Additional accidental death benefit for the Insured Person",
v6:"Equivalent to the Basic Total Premiums Paid",
v61:"Maximum USD 125,000 for all Ping An GenRich Insurance Plans",
k7:"Accidental death benefit for the Policy Owner",
v7:"Equivalent to the future premiums payable for the remainder of the Premium Payment Term.",
v71:"Maximum USD 125,000 for all Ping An GenRich Insurance Plans",
v72:"Not applicable if the Policy Owner is also the Insured Person",
v73:"Not applicable if the Insured Person and the Policy Holder both died in the same accident.",
k8:"Surrender benefit",
v8:"The sum of guaranteed surrender value, accumulated cash value of reversionary bonus and cash value of terminal bonus (if any) less any indebtedness.",
k9:"Bonus withdrawal",
v9:"While this Policy is in effect, the Policy Holder may withdraw some or all of the cash value of accumulated Reversionary Bonus at any time, subject to our prevailing administrative rules regarding the minimum and maximum amount of each withdrawals. The cash value of the corresponding Terminal Bonus (on the withdrawn Reversionary Bonus), if any, will also be withdrawn.",
k10:"Policy loan",
v10:"The Policy Holder can apply for a policy loan for an amount not exceeding 80% of the sum of guaranteed surrender value and cash value of accumulated reversionary bonus of the policy. The policy may also be subject to an automatic policy loan if premium remains unpaid at the end of the Grace Period to cover the outstanding premium and levy payable (if any). Any policy loan and automatic policy loan will be charged with loan interest, where the loan interest rate is solely determined by the Company.",
k6: "Additional accidental death benefit for the Insured Person",
v6: "Equivalent to the Basic Total Premiums Paid",
v61: "Maximum USD 125,000 for all Ping An GenRich Insurance Plans",
k7: "Accidental death benefit for the Policy Owner",
v7: "Equivalent to the future premiums payable for the remainder of the Premium Payment Term.",
v71: "Maximum USD 125,000 for all Ping An GenRich Insurance Plans",
v72: "Not applicable if the Policy Owner is also the Insured Person",
v73: "Not applicable if the Insured Person and the Policy Holder both died in the same accident.",
k8: "Surrender benefit",
v8: "The sum of guaranteed surrender value, accumulated cash value of reversionary bonus and cash value of terminal bonus (if any) less any indebtedness.",
k9: "Bonus withdrawal",
v9: "While this Policy is in effect, the Policy Holder may withdraw some or all of the cash value of accumulated Reversionary Bonus at any time, subject to our prevailing administrative rules regarding the minimum and maximum amount of each withdrawals. The cash value of the corresponding Terminal Bonus (on the withdrawn Reversionary Bonus), if any, will also be withdrawn.",
k10: "Policy loan",
v10: "The Policy Holder can apply for a policy loan for an amount not exceeding 80% of the sum of guaranteed surrender value and cash value of accumulated reversionary bonus of the policy. The policy may also be subject to an automatic policy loan if premium remains unpaid at the end of the Grace Period to cover the outstanding premium and levy payable (if any). Any policy loan and automatic policy loan will be charged with loan interest, where the loan interest rate is solely determined by the Company.",
},
download: {
t1: "Download Product Brochure",
......
module.exports = {
common: {
Confirm:"確認",
Cancel:"取消",
Confirm: "確認",
Cancel: "取消",
Male: "男性",
Female: "女性",
Sex: "性別",
Age: "年齡",
},
message: {
login: "Login",
......@@ -33,8 +37,7 @@ module.exports = {
loginData: {
name: "登入",
path: "/login",
list: [
{
list: [{
name: "註冊",
path: "/register",
type: "noAuth",
......@@ -66,12 +69,10 @@ module.exports = {
}
]
},
navList: [
{
navList: [{
name: "產品介紹",
path: "/product/introduction",
list: [
{
list: [{
name: "自願醫保計劃",
path: "/vhis/detail"
},
......@@ -134,8 +135,7 @@ module.exports = {
{
name: "關於我們",
path: "/profile",
list: [
{
list: [{
name: "有關平安人壽香港",
path: "/profile"
},
......@@ -160,8 +160,7 @@ module.exports = {
{
name: "加入我們",
path: "/join/us",
list: [
{
list: [{
name: "企業文化",
path: "/corporate/culture"
},
......@@ -227,8 +226,7 @@ module.exports = {
}
},
register: {
mobileOptions: [
{
mobileOptions: [{
type: "hk",
name: "香港手機號",
placeHolder: "請輸入8位手機號碼",
......@@ -334,8 +332,7 @@ module.exports = {
submit: "確認",
cancel: "跳過",
candidates: {
sex: [
{
sex: [{
name: "男",
value: "M"
},
......@@ -344,8 +341,7 @@ module.exports = {
value: "F"
}
],
idType: [
{
idType: [{
name: "身份證",
value: "1"
},
......@@ -393,29 +389,6 @@ module.exports = {
customService: "聯繫客服"
},
index: {
// news: "新聞資訊",
// newMore: "查看更多",
// recommend: {
// t1: "在線報價",
// t2: "客戶服務",
// t3: "產品介紹",
// t4: "最新消息",
// item1: {
// btn: "了解更多產品",
// t1: "為自己和家人尋找壹份保障",
// },
// item2: {
// btn: "立即預約",
// t1: "在線預約 專業服務",
// },
// item3: {
// btn: "客戶服務",
// t1: "專業客服為妳服務",
// t2: "想了解更多,可致電",
// t3: "95511",
// t4: "聯絡我們,或進入",
// }
// },
recommend: {
title: "為何選擇平安人壽?",
contact: "聯絡我們",
......@@ -429,6 +402,12 @@ module.exports = {
desc: "國際級<br>風險管理"
}
},
quote: {
quote: "立即報價",
want: "我想",
service: "聯絡客服",
},
contact: {
t1: "如欲了解我們的產品,歡迎聯絡我們。",
t2: "想了解更多?致電2983 8866 聯絡我們。",
......@@ -453,12 +432,9 @@ module.exports = {
orderNo: "保單編號",
orderNoPlaceHolder: "如您為平安客戶,請提供保單編號",
contactTime: "期望聯絡時間",
notice1:
"本表格所收集的個人資料根據「平安人壽香港個人資料收集聲明」處理及只會被用作於聯絡 閣下之用。然而所收集的個人資料未經您明確授權將不會轉移至「平安人壽香港個人資料收集聲明」列明以外之第三者機構。您可選擇不向我們提供所需的個人資料,惟這樣可能導致我們不能聯絡您。您亦可根據「平安人壽香港個人資料收集聲明」之權利查閱及更正個人資料。",
notice2:
"本人現確認明白並同意本人的個人資料根據中銀人壽個人資料收集聲明作以上述用途。",
contactTypes: [
{
notice1: "本表格所收集的個人資料根據「平安人壽香港個人資料收集聲明」處理及只會被用作於聯絡 閣下之用。然而所收集的個人資料未經您明確授權將不會轉移至「平安人壽香港個人資料收集聲明」列明以外之第三者機構。您可選擇不向我們提供所需的個人資料,惟這樣可能導致我們不能聯絡您。您亦可根據「平安人壽香港個人資料收集聲明」之權利查閱及更正個人資料。",
notice2: "本人現確認明白並同意本人的個人資料根據中銀人壽個人資料收集聲明作以上述用途。",
contactTypes: [{
name: "電話",
value: 1,
show: "聯絡電話",
......@@ -486,17 +462,14 @@ module.exports = {
name: "姓名",
namePlaceholder: "姓名",
contactType: "聯絡方式",
contactTypeCadidates: [
{
contactTypeCadidates: [{
name: "電話",
value: 1
}
],
}],
contact: "聯絡電話",
contactPlaceholder: "香港號碼/內地號碼",
reservationType: "預約類型",
reservationCandidates: [
{
reservationCandidates: [{
name: "投保諮詢",
value: "投保諮詢"
},
......@@ -511,10 +484,8 @@ module.exports = {
yes: "是",
no: "否",
contactTime: "期望聯絡時間",
notice1:
"本表格所收集的個人資料根據「平安人壽香港個人資料收集聲明」處理及只會被用作於聯絡 閣下之用。然而所收集的個人資料未經您明確授權將不會轉移至「平安人壽香港個人資料收集聲明」列明以外之第三者機構。您可選擇不向我們提供所需的個人資料,惟這樣可能導致我們不能聯絡您。您亦可根據「平安人壽香港個人資料收集聲明」之權利查閱及更正個人資料。",
notice2:
"本人現確認明白並同意本人的個人資料根據中銀人壽個人資料收集聲明作以上述用途。",
notice1: "本表格所收集的個人資料根據「平安人壽香港個人資料收集聲明」處理及只會被用作於聯絡 閣下之用。然而所收集的個人資料未經您明確授權將不會轉移至「平安人壽香港個人資料收集聲明」列明以外之第三者機構。您可選擇不向我們提供所需的個人資料,惟這樣可能導致我們不能聯絡您。您亦可根據「平安人壽香港個人資料收集聲明」之權利查閱及更正個人資料。",
notice2: "本人現確認明白並同意本人的個人資料根據中銀人壽個人資料收集聲明作以上述用途。",
success: "提交成功",
submitBtn: "确认",
errorTips: {
......@@ -556,14 +527,11 @@ module.exports = {
head3: "使用說明",
head4: "附件",
download: "下載文檔",
form: [
{
form: [{
type: "繳費類",
list: [
{
list: [{
name: "「電子入賬服務」及銀行戶口<br>直接付款授權申請",
desc:
"申請設立「 電子入賬服務」 及銀行戶口<br>直接付款授權時須提供",
desc: "申請設立「 電子入賬服務」 及銀行戶口<br>直接付款授權時須提供",
download: "./doc/「電子入賬服務」及銀行戶口直接付款授權申請.pdf"
},
{
......@@ -575,8 +543,7 @@ module.exports = {
},
{
type: "保單變更類",
list: [
{
list: [{
name: "保險合同解除申請書",
desc: "退保、冷靜期退保業務適用",
download: "./doc/保險合同解除申請書.pdf"
......@@ -620,13 +587,11 @@ module.exports = {
},
{
type: "理賠類",
list: [
{
list: [{
name: "理賠申請書",
desc: "紙質申請的應備文件",
download: "./doc/理賠申請書.pdf"
}
]
}]
}
]
},
......@@ -640,15 +605,12 @@ module.exports = {
head4: "受理時間",
head5: "應備材料",
download: "下載文檔",
form: [
{
form: [{
project: "退保",
content:
"在冷靜期後解除合同,公司將退還保單現金價值或未滿期凈保費。(待產品精算確認)",
content: "在冷靜期後解除合同,公司將退還保單現金價值或未滿期凈保費。(待產品精算確認)",
applicant: "投保人",
receptionTime: "保單效力終止前",
materialList: [
{
materialList: [{
name: "保險單"
},
{
......@@ -668,8 +630,7 @@ module.exports = {
content: "在冷靜期內提出解除合同,公司會無息退還全部保費",
applicant: "投保人",
receptionTime: "冷靜期結束前",
materialList: [
{
materialList: [{
name: "保險單"
},
{
......@@ -697,8 +658,7 @@ module.exports = {
content: "投保人、受保人、受益人的個人信息變更",
applicant: "投保人",
receptionTime: "不限",
materialList: [
{
materialList: [{
name: "申請書",
type: 1
},
......@@ -717,8 +677,7 @@ module.exports = {
content: "地址、電話等信息的變更",
applicant: "投保人",
receptionTime: "不限",
materialList: [
{
materialList: [{
name: "申請書",
type: 1
},
......@@ -732,8 +691,7 @@ module.exports = {
content: "更改保單的續期交費方式或交費賬號",
applicant: "投保人",
receptionTime: "保單交費期滿前",
materialList: [
{
materialList: [{
name: "申請書",
type: 1
},
......@@ -745,8 +703,8 @@ module.exports = {
]
},
policyChangeContact: {
phone: "聯繫電話",
address: "聯繫地址",
phone: "聯絡電話",
address: "聯絡地址",
email: "電郵地址",
checkTips: "本人不同意接收宣傳信息",
submit: "確認修改",
......@@ -755,6 +713,14 @@ module.exports = {
e2: "請填寫聯繫地址",
e3: "請填寫正確的電郵地址"
},
form:{
InternationalArea:"國際號碼區號",
Mobile:"電話號碼",
Nation:"國家(地區)",
District:"市行政區",
Address:"詳細地址",
Mail:"請輸入",
},
success: "更新成功"
},
policyChangeInformation: {
......@@ -797,10 +763,8 @@ module.exports = {
},
pulbic: {
title: "微信公眾號",
m1:
"方法一:登入「微信」APP,按右上角的「+」按鈕並選擇「添加朋友」,選擇「公眾號」輸入並蒐索「平安人壽香港」",
m2:
"方法二:登入「微信」APP,按右上角的「+」按鈕並選擇「掃一掃」掃描下方二維碼(放置二維碼)"
m1: "方法一:登入「微信」APP,按右上角的「+」按鈕並選擇「添加朋友」,選擇「公眾號」輸入並蒐索「平安人壽香港」",
m2: "方法二:登入「微信」APP,按右上角的「+」按鈕並選擇「掃一掃」掃描下方二維碼(放置二維碼)"
},
qrcode: {
title: "官方公眾號"
......@@ -968,8 +932,7 @@ module.exports = {
tip5: "聯絡客服",
tip6: "保單已簽收,如需查詢保單資訊或下載電子保單可點擊",
tip7: "保單查詢",
notice:
"謹此確認本人/我們已收到中國平安人壽保險(香港)有限公司的保單,並已細閱保單細節內容(包括但不限於保單冷静期權益)。",
notice: "謹此確認本人/我們已收到中國平安人壽保險(香港)有限公司的保單,並已細閱保單細節內容(包括但不限於保單冷静期權益)。",
agreeTips: "請下載並细閱“保單繕發及冷靜期通知書”及“電子保單”"
},
clarms: {
......@@ -985,8 +948,7 @@ module.exports = {
label4: "證件號碼",
label5: "出生日期",
btn: "立即申請",
noPolicy:
"對不起,您輸入的資料與本公司的紀錄不符,請重新輸入。如需幫助可",
noPolicy: "對不起,您輸入的資料與本公司的紀錄不符,請重新輸入。如需幫助可",
customService: "聯繫客服"
},
step2: {
......@@ -1018,18 +980,13 @@ module.exports = {
uploadFile: "已上傳文件:",
contact: "聯絡客服",
contact2: "我想",
tip1:
"本人/我們謹此授權(1)任何雇主、注册西醫、醫院、診所、保險公司、銀行、政府機構、或其他機構、組織或人士、凡知道或持有任何有關保單持有人/受保人之紀錄者,均可將該等資料提供、發放及轉交給中國平安人壽保險(香港)有限公司;(2)貴公司或任何其指定之醫生或化驗所,可就此賠償申請替保單持有人/受保人進行所需之醫療評估及測試,作為稽核保單持有人/受保人之健康狀況。此授權對保單持有人/受保人之繼承人及授讓人具有約束力;即使保單持有人/受保人死亡或無行為能力時,此授權書仍具效力。",
tip2:
"本人/我們確認已閱讀及明白「中國平安人壽保險(香港)有限公司」的收集個人資料聲明(本聲明)。",
tip3:
"本人/我們特此確認並同意貴公司根據本聲明使用和移轉本人/我們的個人資料,包括為直接促銷之目的使用和提供本人/我們的個人資料。本人/我們確認並同意為本聲明中所述之目的將本人/我們的個人資料移轉至香港境外給本聲明所述的承轉人的類別。",
tip4:
"本人/我們謹此聲明上述一切陳述及資料,就本人/我們所知所信,均為事實之全部並確實無訛。",
tip1: "本人/我們謹此授權(1)任何雇主、注册西醫、醫院、診所、保險公司、銀行、政府機構、或其他機構、組織或人士、凡知道或持有任何有關保單持有人/受保人之紀錄者,均可將該等資料提供、發放及轉交給中國平安人壽保險(香港)有限公司;(2)貴公司或任何其指定之醫生或化驗所,可就此賠償申請替保單持有人/受保人進行所需之醫療評估及測試,作為稽核保單持有人/受保人之健康狀況。此授權對保單持有人/受保人之繼承人及授讓人具有約束力;即使保單持有人/受保人死亡或無行為能力時,此授權書仍具效力。",
tip2: "本人/我們確認已閱讀及明白「中國平安人壽保險(香港)有限公司」的收集個人資料聲明(本聲明)。",
tip3: "本人/我們特此確認並同意貴公司根據本聲明使用和移轉本人/我們的個人資料,包括為直接促銷之目的使用和提供本人/我們的個人資料。本人/我們確認並同意為本聲明中所述之目的將本人/我們的個人資料移轉至香港境外給本聲明所述的承轉人的類別。",
tip4: "本人/我們謹此聲明上述一切陳述及資料,就本人/我們所知所信,均為事實之全部並確實無訛。",
tip5: "您選擇的申請類型不在保險責任範圍內,請核實確認,如有疑問可",
tip6: "聯繫客服",
tip7:
"您的理賠申請已經受理,我們會儘快處理本次申請。我們會短信通知理賠進度,因審核需要,可能會通知您補充相關資料或者郵寄實物。如審批通過,理賠款將默認轉入投保繳費帳戶,如需變更,請上傳",
tip7: "您的理賠申請已經受理,我們會儘快處理本次申請。我們會短信通知理賠進度,因審核需要,可能會通知您補充相關資料或者郵寄實物。如審批通過,理賠款將默認轉入投保繳費帳戶,如需變更,請上傳",
tip8: "索償人帳戶資料。",
tip9: "您選擇的事故時間不在保單有效期範圍內,請核實確認,如有疑問可",
toast1: "醫療收據正本及帳單明細表",
......@@ -1052,8 +1009,7 @@ module.exports = {
},
title: {
t1: "平安“好e時”自願醫保標準計劃 ",
t2:
"平安「好e時」自願醫保標準計劃為政府自願醫保認可的標準計劃,涵蓋重點醫療保障,投保流程簡易,全程線上進行。",
t2: "平安「好e時」自願醫保標準計劃為政府自願醫保認可的標準計劃,涵蓋重點醫療保障,投保流程簡易,全程線上進行。",
t3: "",
t4: ""
},
......@@ -1139,8 +1095,7 @@ module.exports = {
k1: "身故恩恤賠償",
v1: "$10,000",
k2: "無索償折扣",
v2:
"在連續3個保單年度或以上不曾作出賠償,無索償折扣將適用於緊隨的保單年度之應繳保費。無索償折扣將相當於前一個保單年度所有到期及應繳保費(不包括任何折扣)的百分之十(10%)。"
v2: "在連續3個保單年度或以上不曾作出賠償,無索償折扣將適用於緊隨的保單年度之應繳保費。無索償折扣將相當於前一個保單年度所有到期及應繳保費(不包括任何折扣)的百分之十(10%)。"
},
download: {
t1: "下載產品簡介",
......@@ -1148,43 +1103,34 @@ module.exports = {
t3: "下載保單契約"
},
submitBtn: "立即投保",
productList: [
{
productList: [{
title: "政府認可 安心保障",
desc:
"本計劃為政府自願醫保認可的標準計劃,讓您在需要時候可透過住院保險而使用私營醫療服務,並可同時申請享有稅務扣減優惠。此計劃獲食物及衞生局認可,讓您倍感安心。如欲了解更多自願醫保詳情,可瀏覽www.vhis.gov.hk。",
desc: "本計劃為政府自願醫保認可的標準計劃,讓您在需要時候可透過住院保險而使用私營醫療服務,並可同時申請享有稅務扣減優惠。此計劃獲食物及衞生局認可,讓您倍感安心。如欲了解更多自願醫保詳情,可瀏覽www.vhis.gov.hk。",
tips: ""
},
{
title: "不設終身保障限額",
desc:
"本計劃不設終身保障限額,每年保障限額高達420,000 港元,並將每年重新設置至原先限額,讓您享有重點的醫療保障,減輕因醫療需求而造成的財務負擔。",
desc: "本計劃不設終身保障限額,每年保障限額高達420,000 港元,並將每年重新設置至原先限額,讓您享有重點的醫療保障,減輕因醫療需求而造成的財務負擔。",
tips: ""
},
{
title: "一家投保 盡享稅務扣減",
desc:
"本計劃的保費可用作申請稅務扣除,若保單持有人為納稅人,便可為自己及任何指明親屬*,即每一名合資格受保人,申請每名受保人每年8,000 港元的扣稅額,可申請稅務扣減的指明親屬 數目更不設上限。",
tips:
"*指明親屬包括納稅人配偶及子女、納稅人或其配偶的祖父母、外祖父母、父母和兄弟姐妹。"
desc: "本計劃的保費可用作申請稅務扣除,若保單持有人為納稅人,便可為自己及任何指明親屬*,即每一名合資格受保人,申請每名受保人每年8,000 港元的扣稅額,可申請稅務扣減的指明親屬 數目更不設上限。",
tips: "*指明親屬包括納稅人配偶及子女、納稅人或其配偶的祖父母、外祖父母、父母和兄弟姐妹。"
},
{
title: "承保投保前未知的已有疾病",
desc:
"現時一般醫療保險均不承保投保前的已有疾病,本計劃為您帶來多一份安心,承保您在投保時不察覺,及理應不察覺的已有病症。對上述有關病症,此計劃會在保單生效首3年的等候期間提供部份保障*,並由第4個保單年度起提供全面保障。",
tips:
"*保單生效日後提供部分賠償(第二年25%、第三年50%),其後提供全面賠償(100%) "
desc: "現時一般醫療保險均不承保投保前的已有疾病,本計劃為您帶來多一份安心,承保您在投保時不察覺,及理應不察覺的已有病症。對上述有關病症,此計劃會在保單生效首3年的等候期間提供部份保障*,並由第4個保單年度起提供全面保障。",
tips: "*保單生效日後提供部分賠償(第二年25%、第三年50%),其後提供全面賠償(100%) "
},
{
title: "保證續保至100歲",
desc:
"本計劃接受任何介乎出生後15天至80歲人士投保,您可以一直續保至100歲。計劃保證不會因您的索償記錄或身體狀況改變而調高續保保費,而您的續保保費將根據當時保單週年日之保費表釐定。",
desc: "本計劃接受任何介乎出生後15天至80歲人士投保,您可以一直續保至100歲。計劃保證不會因您的索償記錄或身體狀況改變而調高續保保費,而您的續保保費將根據當時保單週年日之保費表釐定。",
tips: ""
},
{
title: "無索償保費折扣",
desc:
"為鼓勵您保持健康生活,如您於本計劃的連續3個保單年度內,沒有任何索償記錄,我們會於下一保單年度退還上一個保單年度保費的百分之十(10%)作為無索償折扣。",
desc: "為鼓勵您保持健康生活,如您於本計劃的連續3個保單年度內,沒有任何索償記錄,我們會於下一保單年度退還上一個保單年度保費的百分之十(10%)作為無索償折扣。",
tips: ""
}
]
......@@ -1199,8 +1145,7 @@ module.exports = {
},
title: {
t1: "「平安·傳家福」分紅終身壽險計劃",
t2:
"美好重要的事物總是值得更好的守護,「平安·傳家福」分紅終身壽險計劃,提供長期儲蓄回報和終身人壽保障,幫助您持續滾存財富,保護您的收入和財富。「平安·傳家福」設計具有獨特的功能,並保證最低回報,為您及摯愛家庭的未來做好準備。",
t2: "美好重要的事物總是值得更好的守護,「平安·傳家福」分紅終身壽險計劃,提供長期儲蓄回報和終身人壽保障,幫助您持續滾存財富,保護您的收入和財富。「平安·傳家福」設計具有獨特的功能,並保證最低回報,為您及摯愛家庭的未來做好準備。",
t3: "",
t4: ""
},
......@@ -1232,46 +1177,37 @@ module.exports = {
v52: "保證現金價值加上累計復歸紅利的面值和終期分紅的面值(如有)。",
k6: "額外意外身故賠償",
v6: "相等於已支付基本保費總額",
v61:
"於本保單及所有其他「平安·傳家福」保險計劃(無論以任何貨幣計價),最高限額為125,000美元。",
v61: "於本保單及所有其他「平安·傳家福」保險計劃(無論以任何貨幣計價),最高限額為125,000美元。",
k7: "保單持有人意外身故賠償",
v7: "相等於保單餘下基本未繳保費之總額",
v71:
"於本保單及所有其他「平安·傳家福」保險計劃(無論以任何貨幣計價),最高限額為125,000美元。",
v71: "於本保單及所有其他「平安·傳家福」保險計劃(無論以任何貨幣計價),最高限額為125,000美元。",
v72: "不適用於保單持有人同時受保人",
v73: "",
k8: "退保金額",
v8:
"若您將本保單退保,我們將支付退保金額。退保金額等於退保日的保證退保價值,加上復歸紅利的現金價值及終期紅利的現金價值(如有);減去所有保單欠款(如有)。",
v8: "若您將本保單退保,我們將支付退保金額。退保金額等於退保日的保證退保價值,加上復歸紅利的現金價值及終期紅利的現金價值(如有);減去所有保單欠款(如有)。",
k9: "紅利提取安排",
v9:
"在保單有效期內,保單持有人可以隨時提取部分或全部累積復歸紅利的現金價值,但需符合我們有關每次提取的最小和最大金額的管理規定。每次提取時,如有任何相應終期分紅的現金價值(根據提取的復歸紅利)也將一併被提取。",
v9: "在保單有效期內,保單持有人可以隨時提取部分或全部累積復歸紅利的現金價值,但需符合我們有關每次提取的最小和最大金額的管理規定。每次提取時,如有任何相應終期分紅的現金價值(根據提取的復歸紅利)也將一併被提取。",
k10: "保單貸款 / 自動保費貸款",
v10:
"您可於保單有效期間,向我們申請保單貸款,但金額不得超過保證退保價值加上保單累計復歸紅利的現金價值的總額之80%。如有任何在寬限期結束時尚未繳付之保費,我們將可能為您的保單執行自動保單貸款,並自動以貸款方式繳付您應繳之保費及保單徵費(如有)。我們對任何保單貸款及自動保單貸款均須收取利息,利率由我們全權釐定。"
v10: "您可於保單有效期間,向我們申請保單貸款,但金額不得超過保證退保價值加上保單累計復歸紅利的現金價值的總額之80%。如有任何在寬限期結束時尚未繳付之保費,我們將可能為您的保單執行自動保單貸款,並自動以貸款方式繳付您應繳之保費及保單徵費(如有)。我們對任何保單貸款及自動保單貸款均須收取利息,利率由我們全權釐定。"
},
download: {
t1: "下載產品簡介",
t2: "下載產品優惠宣傳單張"
},
submitBtn: "立即聯絡理財顧問",
productList: [
{
productList: [{
title: "持續儲蓄增長 潛在長線資本增值",
desc:
"「平安.傳家福」是一份分紅保險計劃,計劃的保單價值由保證現金價值,復歸紅利及終期紅利(如有) 三個部份組成提供潛在的長線資本增值機會*。",
desc: "「平安.傳家福」是一份分紅保險計劃,計劃的保單價值由保證現金價值,復歸紅利及終期紅利(如有) 三個部份組成提供潛在的長線資本增值機會*。",
tips: "*分紅詳情請參閱產品簡介及保單條款"
},
{
title: "靈活運用保單價值 滿足您的財務需求",
desc:
"保單中的復歸紅利和相應的終期分紅價值之現金價值可隨時靈活提取,您也可以作部分退保來提取部分保證現金價值,以滿足您的不同現金需求。",
desc: "保單中的復歸紅利和相應的終期分紅價值之現金價值可隨時靈活提取,您也可以作部分退保來提取部分保證現金價值,以滿足您的不同現金需求。",
tips: ""
},
{
title: "創建家族財富 福祉代代相傳",
desc:
"「平安.傳家福」通過提供“受保人變更”選項來幫助您建立世代相傳的財富。在第一個保單週年日結束後,您可以更改此計劃的受保人(上限為四次),而不會影響計劃價值*。",
desc: "「平安.傳家福」通過提供“受保人變更”選項來幫助您建立世代相傳的財富。在第一個保單週年日結束後,您可以更改此計劃的受保人(上限為四次),而不會影響計劃價值*。",
tips: "*須乎合管理規則和公司最終批准的前提下"
},
{
......@@ -1281,26 +1217,22 @@ module.exports = {
},
{
title: "保單持有人意外身故賠償",
desc:
"倘若保單持有人於保費供款年期結束前不幸因意外身故,我們將支付一筆賠償,金額相等於「平安.傳家福」保單餘下未繳保費之總額。您的家人可考慮以此繳付未來保費,以維持保單生效。",
desc: "倘若保單持有人於保費供款年期結束前不幸因意外身故,我們將支付一筆賠償,金額相等於「平安.傳家福」保單餘下未繳保費之總額。您的家人可考慮以此繳付未來保費,以維持保單生效。",
tips: "*詳情請參閱產品簡介及保單條款"
},
{
title: "自選保費繳付期切合您的理財需要",
desc:
"您可以根據自己的財務狀況靈活選擇3年,5年,8年或10年的付款期限。保費金額在整個付款期限內都保證是固定的。",
desc: "您可以根據自己的財務狀況靈活選擇3年,5年,8年或10年的付款期限。保費金額在整個付款期限內都保證是固定的。",
tips: ""
},
{
title: "彈性賠償支付方式供您選擇",
desc:
"在符合我們現行的規則及規例的情況下,您可以選擇一筆過支付,分期支付或混合形式向受益人支付身故賠償和意外身故賠償。",
desc: "在符合我們現行的規則及規例的情況下,您可以選擇一筆過支付,分期支付或混合形式向受益人支付身故賠償和意外身故賠償。",
tips: ""
},
{
title: "豁免醫療核保 投保快捷方便",
desc:
"您「平安.傳家福」投保基本計劃的手續簡便,毋須驗身,讓您輕鬆累積財富。只要您於過去24個月內投保指定的保險產品而其年度總保費不超過4,000,000美元,即可免驗身輕鬆投保。",
desc: "您「平安.傳家福」投保基本計劃的手續簡便,毋須驗身,讓您輕鬆累積財富。只要您於過去24個月內投保指定的保險產品而其年度總保費不超過4,000,000美元,即可免驗身輕鬆投保。",
tips: ""
}
]
......
module.exports = {
common: {
Confirm: "确认",
Cancel: "取消"
Cancel: "取消",
Sex: "性别",
Age: "年龄",
Male: "男性",
Female: "女性",
},
message: {
login: "登入",
......@@ -33,8 +37,7 @@ module.exports = {
loginData: {
name: "登入",
path: "/login",
list: [
{
list: [{
name: "注册",
path: "/register",
type: "noAuth",
......@@ -66,12 +69,10 @@ module.exports = {
}
]
},
navList: [
{
navList: [{
name: "产品介绍",
path: "/product/introduction",
list: [
{
list: [{
name: "自愿医保计划",
path: "/vhis/detail"
},
......@@ -134,8 +135,7 @@ module.exports = {
{
name: "关于我们",
path: "/profile",
list: [
{
list: [{
name: "有关平安香港",
path: "/profile"
},
......@@ -160,8 +160,7 @@ module.exports = {
{
name: "加入我们",
path: "/join/us",
list: [
{
list: [{
name: "企业文化",
path: "/corporate/culture"
},
......@@ -230,8 +229,7 @@ module.exports = {
sidExpire: "长时间未操作,为了您的账户安全,请登入后再操作"
},
register: {
mobileOptions: [
{
mobileOptions: [{
type: "hk",
name: "香港手机号",
placeHolder: "请输入8位手机号码",
......@@ -334,8 +332,7 @@ module.exports = {
submit: "确认",
cancel: "跳过",
candidates: {
sex: [
{
sex: [{
name: "男",
value: "M"
},
......@@ -344,8 +341,7 @@ module.exports = {
value: "F"
}
],
idType: [
{
idType: [{
name: "身份证",
value: "1"
},
......@@ -393,31 +389,8 @@ module.exports = {
customService: "联系客服"
},
index: {
// news: "新闻资讯",
// newMore: "查看更多",
// recommend: {
// t1: "在线报价",
// t2: "客户服务",
// t3: "产品介绍",
// t4: "最新消息",
// item1: {
// btn: "了解更多产品",
// t1: "为自己和家人寻找一份保障",
// },
// item2: {
// btn: "立即预约",
// t1: "在线预约 专业服务",
// },
// item3: {
// btn: "客户服务",
// t1: "专业客服为你服务",
// t2: "想了解更多,可致电",
// t3: "95511",
// t4: "联系我们,或进入",
// }
// },
recommend: {
title: "為何選擇平安人壽?",
title: "为何选择平安人寿?",
contact: "联络我们",
item1: {
desc: "简单方便<br>线上客户服务系统"
......@@ -429,6 +402,12 @@ module.exports = {
desc: "国际级<br>风险管理"
}
},
quote: {
quote: "立即报价",
want: "我想",
service: "联络客服",
},
contact: {
t1: "如欲了解我们的产品,欢迎联络我们。",
t2: "想了解更多?致电2983 8866 联络我们。",
......@@ -453,12 +432,9 @@ module.exports = {
orderNo: "保单编号",
orderNoPlaceHolder: "如您为平安客户,请提供保单编号",
contactTime: "期望联络时间",
notice1:
"本表格所收集的个人资料根据「平安人寿香港个人资料收集声明」处理及只会被用作于联络 阁下之用。然而所收集的个人资料未经您明确授权将不会转移至「平安人寿香港个人资料收集声明」列明以外之第三者机构。您可选择不向我们提供所需的个人资料,惟这样可能导致我们不能联络您。您亦可根据「平安人寿香港个人资料收集声明」之权利查阅及更正个人资料。",
notice2:
"本人现确认明白并同意本人的个人资料根据中银人寿个人资料收集声明作以上述用途。",
contactTypes: [
{
notice1: "本表格所收集的个人资料根据「平安人寿香港个人资料收集声明」处理及只会被用作于联络 阁下之用。然而所收集的个人资料未经您明确授权将不会转移至「平安人寿香港个人资料收集声明」列明以外之第三者机构。您可选择不向我们提供所需的个人资料,惟这样可能导致我们不能联络您。您亦可根据「平安人寿香港个人资料收集声明」之权利查阅及更正个人资料。",
notice2: "本人现确认明白并同意本人的个人资料根据中银人寿个人资料收集声明作以上述用途。",
contactTypes: [{
name: "电话",
value: 1,
show: "联络电话",
......@@ -486,17 +462,14 @@ module.exports = {
name: "姓名",
namePlaceholder: "姓名",
contactType: "联络方式",
contactTypeCadidates: [
{
contactTypeCadidates: [{
name: "电话",
value: 1
}
],
}],
contact: "联络电话",
contactPlaceholder: "香港号码/内地号码",
reservationType: "预约类型",
reservationCandidates: [
{
reservationCandidates: [{
name: "投保咨询",
value: "投保咨询"
},
......@@ -511,10 +484,8 @@ module.exports = {
yes: "是",
no: "否",
contactTime: "期望联络时间",
notice1:
"本表格所收集的个人资料根据「平安人寿香港个人资料收集声明」处理及只会被用作于联络 阁下之用。然而所收集的个人资料未经您明确授权将不会转移至「平安人寿香港个人资料收集声明」列明以外之第三者机构。您可选择不向我们提供所需的个人资料,惟这样可能导致我们不能联络您。您亦可根据「平安人寿香港个人资料收集声明」之权利查阅及更正个人资料。",
notice2:
"本人现确认明白并同意本人的个人资料根据中银人寿个人资料收集声明作以上述用途。",
notice1: "本表格所收集的个人资料根据「平安人寿香港个人资料收集声明」处理及只会被用作于联络 阁下之用。然而所收集的个人资料未经您明确授权将不会转移至「平安人寿香港个人资料收集声明」列明以外之第三者机构。您可选择不向我们提供所需的个人资料,惟这样可能导致我们不能联络您。您亦可根据「平安人寿香港个人资料收集声明」之权利查阅及更正个人资料。",
notice2: "本人现确认明白并同意本人的个人资料根据中银人寿个人资料收集声明作以上述用途。",
success: "提交成功",
submitBtn: "确认",
errorTips: {
......@@ -556,11 +527,9 @@ module.exports = {
head3: "使用说明",
head4: "附件",
download: "下载文档",
form: [
{
form: [{
type: "缴费类",
list: [
{
list: [{
name: "「电子入账服务」及银行户口<br>直接付款授权申请",
desc: "申请设立「电子入账服务」及银行户口<br>直接付款授权时须提供",
download: "./doc/「電子入賬服務」及銀行戶口直接付款授權申請.pdf"
......@@ -574,8 +543,7 @@ module.exports = {
},
{
type: "保单变更类",
list: [
{
list: [{
name: "保险合同解除申请书",
desc: "退保、冷静期退保业务适用",
download: "./doc/保險合同解除申請書.pdf"
......@@ -619,13 +587,11 @@ module.exports = {
},
{
type: "理赔类",
list: [
{
list: [{
name: "理赔申请书",
desc: "纸质申请的应备文件",
download: "./doc/理賠申請書.pdf"
}
]
}]
}
]
},
......@@ -639,15 +605,12 @@ module.exports = {
head4: "受理时间",
head5: "应备材料",
download: "下载文档",
form: [
{
form: [{
project: "退保",
content:
"在冷静期后解除合同,公司将退还保单现金价值或未满期净保费。(待产品精算确认)",
content: "在冷静期后解除合同,公司将退还保单现金价值或未满期净保费。(待产品精算确认)",
applicant: "投保人",
receptionTime: "保单效力终止前",
materialList: [
{
materialList: [{
name: "保险单"
},
{
......@@ -667,8 +630,7 @@ module.exports = {
content: "在冷静期内提出解除合同,公司会无息退还全部保费",
applicant: "投保人",
receptionTime: "冷静期结束前",
materialList: [
{
materialList: [{
name: "保险单"
},
{
......@@ -696,8 +658,7 @@ module.exports = {
content: "投保人、受保人、受益人的个人信息变更",
applicant: "投保人",
receptionTime: "不限",
materialList: [
{
materialList: [{
name: "申请书",
type: 1
},
......@@ -716,8 +677,7 @@ module.exports = {
content: "地址、电话等信息的变更",
applicant: "投保人",
receptionTime: "不限",
materialList: [
{
materialList: [{
name: "申请书",
type: 1
},
......@@ -731,8 +691,7 @@ module.exports = {
content: "更改保单的续期交费方式或交费账号",
applicant: "投保人",
receptionTime: "保单交费期满前",
materialList: [
{
materialList: [{
name: "申请书",
type: 1
},
......@@ -744,8 +703,8 @@ module.exports = {
]
},
policyChangeContact: {
phone: "联系电话",
address: "联系地址",
phone: "联络电话",
address: "联络地址",
email: "电邮地址",
checkTips: "本人不同意接收宣传信息",
submit: "确认修改",
......@@ -754,6 +713,14 @@ module.exports = {
e2: "請填寫聯繫地址",
e3: "请填写正确的电邮地址"
},
form:{
InternationalArea:"国际号码区号",
Mobile:"电话号码",
Nation:"国家(地区)",
District:"市行政区",
Address:"详细地址",
Mail:"请输入",
},
success: "更新成功"
},
policyChangeInformation: {
......@@ -796,10 +763,8 @@ module.exports = {
},
pulbic: {
title: "微信公众号",
m1:
"方法一:登陆「微信」APP, 按右上角的「+」按钮并选择「添加朋友」,选择「公众号」 输入并搜索「平安人寿香港」",
m2:
"方法二:登陆「微信」APP, 按右上角的「+」按钮并选择「扫一扫」扫描下方二维码(放置二维码)"
m1: "方法一:登陆「微信」APP, 按右上角的「+」按钮并选择「添加朋友」,选择「公众号」 输入并搜索「平安人寿香港」",
m2: "方法二:登陆「微信」APP, 按右上角的「+」按钮并选择「扫一扫」扫描下方二维码(放置二维码)"
},
qrcode: {
title: "官方公众号"
......@@ -968,8 +933,7 @@ module.exports = {
tip5: "联络客服",
tip6: "保单已签收,如需查询保单信息或下载电子保单可点击",
tip7: "保单查询",
notice:
"谨此确认本人已收到中国平安人寿保险(香港)有限公司的保单,并已细阅保单细节内容(包括但不限于保单冷静期权益)",
notice: "谨此确认本人已收到中国平安人寿保险(香港)有限公司的保单,并已细阅保单细节内容(包括但不限于保单冷静期权益)",
agreeTips: "请下载并细阅“保单缮发及冷静期通知书”及“电子保单”"
},
clarms: {
......@@ -985,8 +949,7 @@ module.exports = {
label4: "证件号码",
label5: "出生日期",
btn: "立即申请",
noPolicy:
"对不起,您输入的数据与本公司的纪录不符,请重新输入。如需帮助可",
noPolicy: "对不起,您输入的数据与本公司的纪录不符,请重新输入。如需帮助可",
customService: "联系客服"
},
step2: {
......@@ -1018,18 +981,13 @@ module.exports = {
uploadFile: "已上传文件:",
contact: "联络客服",
contact2: "我想",
tip1:
"本人/我们谨此授权(1)任何雇主、注册西医、医院、诊所、保险公司、银行、政府机构、或其他机构、组织或人士、凡知道或持有任何有关保单持有人/受保人之纪录者,均可将该等数据提供、发放及转交给中国平安人寿保险(香港)有限公司;(2)贵公司或任何其指定之医生或化验所,可就此赔偿申请替保单持有人/受保人进行所需之医疗评价及测试,作为审核保单持有人/受保人之健康状况。此授权对保单持有人/受保人之继承人及授让人具有约束力;即使保单持有人/受保人死亡或无行为能力时,此授权书仍具效力。",
tip2:
"本人/我们确认已阅读及明白「中国平安人寿保险(香港)有限公司」的收集个人资料声明(本声明)。",
tip3:
"本人/我们特此确认并同意贵公司根据本声明使用和移转本人/我们的个人资料,包括为直接促销之目的使用和提供本人/我们的个人资料。本人/我们确认并同意为本声明中所述之目的将本人/我们的个人资料移转至香港境外给本声明所述的承转人的类别。",
tip4:
"本人/我们谨此声明上述一切陈述及数据,就本人/我们所知所信,均为事实之全部并确实无讹。",
tip1: "本人/我们谨此授权(1)任何雇主、注册西医、医院、诊所、保险公司、银行、政府机构、或其他机构、组织或人士、凡知道或持有任何有关保单持有人/受保人之纪录者,均可将该等数据提供、发放及转交给中国平安人寿保险(香港)有限公司;(2)贵公司或任何其指定之医生或化验所,可就此赔偿申请替保单持有人/受保人进行所需之医疗评价及测试,作为审核保单持有人/受保人之健康状况。此授权对保单持有人/受保人之继承人及授让人具有约束力;即使保单持有人/受保人死亡或无行为能力时,此授权书仍具效力。",
tip2: "本人/我们确认已阅读及明白「中国平安人寿保险(香港)有限公司」的收集个人资料声明(本声明)。",
tip3: "本人/我们特此确认并同意贵公司根据本声明使用和移转本人/我们的个人资料,包括为直接促销之目的使用和提供本人/我们的个人资料。本人/我们确认并同意为本声明中所述之目的将本人/我们的个人资料移转至香港境外给本声明所述的承转人的类别。",
tip4: "本人/我们谨此声明上述一切陈述及数据,就本人/我们所知所信,均为事实之全部并确实无讹。",
tip5: "您选择的申请类型不在保险责任范围内,请核实确认,如有疑问可",
tip6: "联系客服",
tip7:
"您的理赔申请已经受理,我们会尽快处理本次申请。我们会短信通知理赔进度,因审核需要,可能会通知您补充相关资料或者邮寄实物。如审批通过,理赔款将默认转入投保缴费账户,如需变更,请上传",
tip7: "您的理赔申请已经受理,我们会尽快处理本次申请。我们会短信通知理赔进度,因审核需要,可能会通知您补充相关资料或者邮寄实物。如审批通过,理赔款将默认转入投保缴费账户,如需变更,请上传",
tip8: "索偿人账户资料。",
tip9: "您选择的事故时间不在保单有效期范围内,请核实确认,如有疑问可",
toast1: "医疗收据正本及账单明细表",
......@@ -1052,8 +1010,7 @@ module.exports = {
},
title: {
t1: "平安 “好e时”自愿医保标准计划",
t2:
"平安「好e时」自愿医保标准计划为政府自愿医保认可的标准计划,涵盖重点医疗保障,投保流程简易,全程线上进行。",
t2: "平安「好e时」自愿医保标准计划为政府自愿医保认可的标准计划,涵盖重点医疗保障,投保流程简易,全程线上进行。",
t3: "",
t4: ""
},
......@@ -1139,8 +1096,7 @@ module.exports = {
k1: "身故恩恤赔偿",
v1: "$10,000",
k2: "无索偿折扣",
v2:
"在连续3个保单年度或以上不曾作出赔偿,无索偿折扣将适用于紧随的保单年度之应缴保费。无索偿折扣将相当于前一个保单年度所有到期及应缴保费(不包括任何折扣)的百分之十(10%)。"
v2: "在连续3个保单年度或以上不曾作出赔偿,无索偿折扣将适用于紧随的保单年度之应缴保费。无索偿折扣将相当于前一个保单年度所有到期及应缴保费(不包括任何折扣)的百分之十(10%)。"
},
download: {
......@@ -1149,43 +1105,34 @@ module.exports = {
t3: "下载保单契约"
},
submitBtn: "立即投保",
productList: [
{
productList: [{
title: "政府认可 安心保障",
desc:
"本计划为政府自愿医保认可的标准计划,让您在需要时候可透过住院保险而使用私营医疗服务,并可同时申请享有税务扣减优惠。此计划获食物及卫生局认可,让您倍感安心。如欲了解更多自愿医保详情,可浏览www.vhis.gov.hk。",
desc: "本计划为政府自愿医保认可的标准计划,让您在需要时候可透过住院保险而使用私营医疗服务,并可同时申请享有税务扣减优惠。此计划获食物及卫生局认可,让您倍感安心。如欲了解更多自愿医保详情,可浏览www.vhis.gov.hk。",
tips: ""
},
{
title: "不设终身保障限额",
desc:
"本计划不设终身保障限额,每年保障限额高达420,000 港元,并将每年重新设置至原先限额,让您享有重点的医疗保障,减轻因医疗需求而造成的财务负担。",
desc: "本计划不设终身保障限额,每年保障限额高达420,000 港元,并将每年重新设置至原先限额,让您享有重点的医疗保障,减轻因医疗需求而造成的财务负担。",
tips: ""
},
{
title: "一家投保 尽享税务扣减",
desc:
"本计划的保费可用作申请税务扣除,若保单持有人为纳税人,便可为自己及任何指明亲属*,即每一名合资格受保人,申请每名受保人每年8,000 港元的扣税额,可申请税务扣减的指明亲属 数目更不设上限。",
tips:
"*指明亲属包括纳税人配偶及子女、纳税人或其配偶的祖父母、外祖父母、父母和兄弟姐妹。"
desc: "本计划的保费可用作申请税务扣除,若保单持有人为纳税人,便可为自己及任何指明亲属*,即每一名合资格受保人,申请每名受保人每年8,000 港元的扣税额,可申请税务扣减的指明亲属 数目更不设上限。",
tips: "*指明亲属包括纳税人配偶及子女、纳税人或其配偶的祖父母、外祖父母、父母和兄弟姐妹。"
},
{
title: "承保投保前未知的已有疾病",
desc:
"现时一般医疗保险均不承保投保前的已有疾病,本计划为您带来多一份安心,承保您在投保时不察觉,及理应不察觉的已有病症。对上述有关病症,此计划会在保单生效首3年的等候期间提供部份保障*,并由第4个保单年度起提供全面保障。",
tips:
"*保单生效日后提供部分赔偿(第二年25%、第三年50%),其后提供全面赔偿(100%) "
desc: "现时一般医疗保险均不承保投保前的已有疾病,本计划为您带来多一份安心,承保您在投保时不察觉,及理应不察觉的已有病症。对上述有关病症,此计划会在保单生效首3年的等候期间提供部份保障*,并由第4个保单年度起提供全面保障。",
tips: "*保单生效日后提供部分赔偿(第二年25%、第三年50%),其后提供全面赔偿(100%) "
},
{
title: "保证续保至100岁",
desc:
"本计划接受任何介乎出生后15天至80岁人士投保,您可以一直续保至100岁。计划保证不会因您的索偿记录或身体状况改变而调高续保保费,而您的续保保费将根据当时保单周年日之保费表厘定。",
desc: "本计划接受任何介乎出生后15天至80岁人士投保,您可以一直续保至100岁。计划保证不会因您的索偿记录或身体状况改变而调高续保保费,而您的续保保费将根据当时保单周年日之保费表厘定。",
tips: ""
},
{
title: "无索偿保费折扣",
desc:
"为鼓励您保持健康生活,如您于本计划的连续3个保单年度内,没有任何索偿记录,我们会于下一保单年度退还上一个保单年度保费的百分之十(10%)作为无索偿折扣。",
desc: "为鼓励您保持健康生活,如您于本计划的连续3个保单年度内,没有任何索偿记录,我们会于下一保单年度退还上一个保单年度保费的百分之十(10%)作为无索偿折扣。",
tips: ""
}
]
......@@ -1201,8 +1148,7 @@ module.exports = {
},
title: {
t1: "「平安·传家福」分红终身寿险计划",
t2:
"美好重要的事物总是值得更好的守护,「平安·传家福」分红终身寿险计划,提供长期储蓄回报和终身人寿保障,帮助您持续滚存财富,保护您的收入和财富。「平安·传家福」设计具有独特的功能,并保证最低回报,为您及挚爱家庭的未来做好准备。",
t2: "美好重要的事物总是值得更好的守护,「平安·传家福」分红终身寿险计划,提供长期储蓄回报和终身人寿保障,帮助您持续滚存财富,保护您的收入和财富。「平安·传家福」设计具有独特的功能,并保证最低回报,为您及挚爱家庭的未来做好准备。",
t3: "",
t4: ""
},
......@@ -1234,46 +1180,37 @@ module.exports = {
v52: "保证现金价值加上累计复归红利的面值和终期分红的面值(如有)。",
k6: "额外意外身故赔偿",
v6: "相等于已支付基本保费总额",
v61:
"于本保单及所有其他「平安·传家福」保险计划(无论以任何货币计价),最高限额为125,000美元。",
v61: "于本保单及所有其他「平安·传家福」保险计划(无论以任何货币计价),最高限额为125,000美元。",
k7: "保单持有人意外身故赔偿",
v7: "相等于保单余下基本未缴保费之总额",
v71:
"于本保单及所有其他「平安·传家福」保险计划(无论以任何货币计价),最高限额为125,000美元。",
v71: "于本保单及所有其他「平安·传家福」保险计划(无论以任何货币计价),最高限额为125,000美元。",
v72: "不适用于保单持有人同时受保人",
v73: "",
k8: "退保金额",
v8:
"若您将本保单退保,我们将支付退保金额。退保金额等于退保日的保证退保价值,加上复归红利的现金价值及终期红利的现金价值(如有);减去所有保单欠款(如有)。",
v8: "若您将本保单退保,我们将支付退保金额。退保金额等于退保日的保证退保价值,加上复归红利的现金价值及终期红利的现金价值(如有);减去所有保单欠款(如有)。",
k9: "红利提取安排",
v9:
"在保单有效期内,保单持有人可以随时提取部分或全部累积复归红利的现金价值,但需符合我们有关每次提取的最小和最大金额的管理规定。每次提取时,如有任何相应终期分红的现金价值(根据提取的复归红利)也将一并被提取。",
v9: "在保单有效期内,保单持有人可以随时提取部分或全部累积复归红利的现金价值,但需符合我们有关每次提取的最小和最大金额的管理规定。每次提取时,如有任何相应终期分红的现金价值(根据提取的复归红利)也将一并被提取。",
k10: "保单贷款 / 自动保费贷款",
v10:
"您可于保单有效期间,向我们申请保单贷款,但金额不得超过保证退保价值加上保单累计复归红利的现金价值的总额之80%。如有任何在宽限期结束时尚未缴付之保费,我们将可能为您的保单执行自动保单贷款,并自动以贷款方式缴付您应缴之保费及保单征费(如有)。我们对任何保单贷款及自动保单贷款均须收取利息,利率由我们全权厘定。"
v10: "您可于保单有效期间,向我们申请保单贷款,但金额不得超过保证退保价值加上保单累计复归红利的现金价值的总额之80%。如有任何在宽限期结束时尚未缴付之保费,我们将可能为您的保单执行自动保单贷款,并自动以贷款方式缴付您应缴之保费及保单征费(如有)。我们对任何保单贷款及自动保单贷款均须收取利息,利率由我们全权厘定。"
},
download: {
t1: "下载产品简介",
t2: "下载产品优惠宣传单张"
},
submitBtn: "立即联络理财顾问",
productList: [
{
productList: [{
title: "持续储蓄增长 潜在长线资本增值",
desc:
"「平安.传家福」是一份分红保险计划,计划的保单价值由保证现金价值,复归红利及终期红利(如有) 三个部份组成提供潜在的长线资本增值机会*。",
desc: "「平安.传家福」是一份分红保险计划,计划的保单价值由保证现金价值,复归红利及终期红利(如有) 三个部份组成提供潜在的长线资本增值机会*。",
tips: "*分红详情请参阅产品简介及保单条款"
},
{
title: "灵活运用保单价值 满足您的财务需求",
desc:
"保单中的复归红利和相应的终期分红价值之现金价值可随时灵活提取,您也可以作部分退保来提取部分保证现金价值,以满足您的不同现金需求。",
desc: "保单中的复归红利和相应的终期分红价值之现金价值可随时灵活提取,您也可以作部分退保来提取部分保证现金价值,以满足您的不同现金需求。",
tips: ""
},
{
title: "创建家族财富 福祉代代相传",
desc:
"「平安.传家福」通过提供“受保人变更”选项来帮助您建立世代相传的财富。在第一个保单周年日结束后,您可以更改此计划的受保人(上限为四次),而不会影响计划价值*。",
desc: "「平安.传家福」通过提供“受保人变更”选项来帮助您建立世代相传的财富。在第一个保单周年日结束后,您可以更改此计划的受保人(上限为四次),而不会影响计划价值*。",
tips: "*须乎合管理规则和公司最终批准的前提下"
},
{
......@@ -1283,26 +1220,22 @@ module.exports = {
},
{
title: "保单持有人意外身故赔偿",
desc:
"倘若保单持有人于保费供款年期结束前不幸因意外身故,我们将支付一笔赔偿,金额相等于「平安.传家福」保单余下未缴保费之总额。您的家人可考虑以此缴付未来保费,以维持保单生效。",
desc: "倘若保单持有人于保费供款年期结束前不幸因意外身故,我们将支付一笔赔偿,金额相等于「平安.传家福」保单余下未缴保费之总额。您的家人可考虑以此缴付未来保费,以维持保单生效。",
tips: "*详情请参阅产品简介及保单条款"
},
{
title: "自选保费缴付期切合您的理财需要",
desc:
"您可以根据自己的财务状况灵活选择3年,5年,8年或10年的付款期限。保费金额在整个付款期限内都保证是固定的。",
desc: "您可以根据自己的财务状况灵活选择3年,5年,8年或10年的付款期限。保费金额在整个付款期限内都保证是固定的。",
tips: ""
},
{
title: "弹性赔偿支付方式供您选择",
desc:
"在符合我们现行的规则及规例的情况下,您可以选择一笔过支付,分期支付或混合形式向受益人支付身故赔偿和意外身故赔偿。",
desc: "在符合我们现行的规则及规例的情况下,您可以选择一笔过支付,分期支付或混合形式向受益人支付身故赔偿和意外身故赔偿。",
tips: ""
},
{
title: "豁免医疗核保 投保快捷方便",
desc:
"「平安.传家福」投保基本计划的手续简便,毋须验身,让您轻松累积财富。只要您于过去24个月内投保指定的保险产品而其年度总保费不超过4,000,000美元,即可免验身轻松投保。",
desc: "「平安.传家福」投保基本计划的手续简便,毋须验身,让您轻松累积财富。只要您于过去24个月内投保指定的保险产品而其年度总保费不超过4,000,000美元,即可免验身轻松投保。",
tips: ""
}
]
......
@import "@/styles/_support.scss";
.list-container {
overflow-x: auto;
margin-bottom: 24px;
......@@ -19,7 +18,6 @@
position: relative;
display: flex;
align-items: center;
&-tips {
display: none;
position: absolute;
......@@ -31,11 +29,10 @@
min-width: 88px;
padding: 4px;
}
.icon-download {
margin-right: 4px;
}
.desc{
.desc {
padding: 0;
}
}
......@@ -46,8 +43,7 @@
cursor: pointer;
width: 12px;
height: 8px;
background: url("~@/assets/images/insurance-query/triangle-down2.png")
no-repeat center center;
background: url("~@/assets/images/insurance-query/triangle-down2.png") no-repeat center center;
background-size: 100% 100%;
top: 16px;
right: 26px;
......@@ -60,29 +56,23 @@
.cell-group {
margin-bottom: 12px;
&:last-child {
margin-bottom: 0;
}
div {
color: #4c4948;
}
.td {
position: relative;
@extend .fcc;
text-align: center;
}
.w1 {
width: 180px;
}
.w2 {
width: 240px;
}
.w3 {
width: 140px;
}
......@@ -92,7 +82,6 @@
.w5 {
width: 100px;
}
.table-header {
height: 50px;
border-top-left-radius: 8px;
......@@ -100,7 +89,6 @@
background-color: #f2f2f2;
display: flex;
align-items: center;
.normal-header {
// width: 706px;
@extend .bb;
......@@ -110,32 +98,26 @@
display: flex;
justify-content: space-between;
align-items: center;
.title {
font-weight: bold;
color: #575453;
}
.guide {
transition: all 0.5s;
cursor: pointer;
width: 12px;
height: 8px;
background: url("~@/assets/images/insurance-query/triangle-down.png")
no-repeat center center;
background: url("~@/assets/images/insurance-query/triangle-down.png") no-repeat center center;
background-size: 100% 100%;
}
.rotate180 {
transform: rotate(180deg);
transition: all 0.5s;
}
}
}
.table-content {
// width: 770px;
height: auto;
max-height: 600px;
// display: inline-block;
......@@ -147,29 +129,25 @@
padding: 0 32px;
transition: max-height ease-out 0.3s !important;
overflow: auto;
.data-line {
// padding: 0 32px;
height: 50px;
height: 58px;
margin: auto;
display: flex;
justify-content: space-between;
align-items: center;
.td {
position: relative;
display: flex;
justify-content: center;
align-items: center;
}
.cell1 {
width: 98%;
display: flex;
justify-content: space-between;
margin: auto;
}
.separator-v {
height: 30px;
width: 2px;
......@@ -177,43 +155,35 @@
margin: 0 11px;
}
}
.label span {
color: $cOrange;
margin-left: 7px;
cursor: pointer;
text-decoration: underline;
}
.separator-h {
width: 100%;
height: 1px;
height: 2px;
background-color: #f2f2f2;
}
}
.orange {
background-color: $cOrange;
div {
color: #ffffff;
}
}
.new {
@include linear-bg;
}
.hide {
max-height: 0;
border-bottom: none;
}
.sp {
text-decoration: underline;
padding: 0 4.8px;
}
.ac {
color: $cOrange !important;
}
......@@ -234,7 +204,6 @@
.activity {
background-color: $cOrange !important;
opacity: 0.5;
div {
color: #ffffff !important;
}
......@@ -245,16 +214,13 @@
display: flex;
align-items: center;
justify-content: center;
.tips {
align-items: center;
display: flex;
.icon {
margin-right: 5px;
display: inline-block;
}
.btn {
color: $cOrange;
}
......
import api from '@/api/api'
import {
httpGet,
httpPost
} from '@/api/fetch-api.js'
import api from "@/api/api";
import { httpGet, httpPost } from "@/api/fetch-api.js";
import { contactMethodCheck } from '@utils/utils.js';
import { setTitle } from '@/utils/utils.js';
import { contactMethodCheck } from "@utils/utils.js";
import { setTitle } from "@/utils/utils.js";
import Auth from '@components/auth/auth.vue';
import modalComp from '@/components/modal-comp/modal-comp.vue';
import Auth from "@components/auth/auth.vue";
import modalComp from "@/components/modal-comp/modal-comp.vue";
import PolicyHeadList from "./policy-head-list.vue";
import Vue from 'vue';
import { Loading } from 'vant';
import Vue from "vue";
import { Loading } from "vant";
Vue.use(Loading);
export default {
......@@ -19,7 +16,7 @@ export default {
return {
loading: false,
showForm: false,
key: 'value',
key: "value",
checked1: false,
checked2: false,
checked3: false,
......@@ -30,6 +27,8 @@ export default {
mobile: "",
email: "",
address: "",
areaCode: ""
},
errorTips: {
e1: "",
......@@ -42,7 +41,30 @@ export default {
targetPath: "",
modalIcon: "succ",
modalContent: "",
}
// 新增
// 国际号码区号列表
areaCodeList: [
{
v: "abc",
n: "abc"
},
{
v: "efg",
n: "efg"
}
],
countryList:[
{
v: "cn",
n: "中国"
},
{
v: "en",
n: "美国"
}
]
};
},
components: {
Auth,
......@@ -51,10 +73,12 @@ export default {
},
computed: {
locale() {
return this.$i18n.locale || 'tc';
return this.$i18n.locale || "tc";
},
i18n() {
return this.$i18n.messages && this.$i18n.locale ? this.$i18n.messages[this.$i18n.locale] : {};
return this.$i18n.messages && this.$i18n.locale
? this.$i18n.messages[this.$i18n.locale]
: {};
},
submitBtnDisabled() {
let b1 = !this.selectedPolicies || this.selectedPolicies.length == 0;
......@@ -100,27 +124,29 @@ export default {
addressAcceptMsg: this.checked2 ? 1 : 0,
emailAcceptMsg: this.checked3 ? 1 : 0,
policies: policies
}
};
this.loading = true;
httpPost({
url: api.updatePolicyContanct,
data: data,
sid: true
}).then(() => {
})
.then(() => {
this.loading = false;
this.showSuccess();
}).catch(err => {
})
.catch(err => {
this.loading = false;
if (err.code == 404) {
this.$refs.auth.noAuth();
}
})
});
}
},
checkMobile() {
if (this.data.mobile) {
let hkMobile = contactMethodCheck('hkmobile', this.data.mobile);
let zhMobile = contactMethodCheck('mobile', this.data.mobile);
let hkMobile = contactMethodCheck("hkmobile", this.data.mobile);
let zhMobile = contactMethodCheck("mobile", this.data.mobile);
if (!hkMobile && !zhMobile) {
this.errorTips.e1 = this.i18n.policyChangeContact.errorTips.e1;
return false;
......@@ -132,7 +158,7 @@ export default {
return true;
},
checkEmail() {
if (this.data.email && !contactMethodCheck('email', this.data.email)) {
if (this.data.email && !contactMethodCheck("email", this.data.email)) {
this.errorTips.e3 = this.i18n.policyChangeContact.errorTips.e3;
return false;
}
......@@ -155,7 +181,8 @@ export default {
url: api.policyDetail,
data: param,
sid: true
}).then(response => {
})
.then(response => {
this.data = {};
if (response) {
this.loading = false;
......@@ -167,7 +194,8 @@ export default {
this.data.email = response.clientEmail;
this.checked3 = "1" == response.clientEmailAcceptMessage;
}
}).catch(res => {
})
.catch(res => {
if (res.code == "404") {
this.$refs.auth.noAuth();
}
......@@ -193,17 +221,17 @@ export default {
}
},
watch: {
'data.mobile': function () {
"data.mobile": function() {
this.errorTips.e1 = "";
},
'data.address': function () {
"data.address": function() {
this.errorTips.e2 = "";
},
'data.email': function () {
"data.email": function() {
this.errorTips.e3 = "";
}
},
mounted() {
this.initTitle();
}
}
};
......
@import '@/styles/_support.scss';
@import "@/styles/_support.scss";
.comp {
font-size: $fontSize-M2;
}
.container {
@extend .bb;
padding: 22px 36px 30px 26px;
padding: 24px 32px;
}
.border {
......@@ -15,29 +17,47 @@
.form {
display: flex;
flex-wrap: wrap;
&-item {
position: relative;
margin-bottom: 28px;
width: 100%;
&:last-child {
margin-bottom: 0;
}
.label {
color: #f05a23;
display: flex;
align-items: center;
margin-bottom: 8.4px;
.icon {
width: 26px;
display: flex;
margin-right: 14px;
}
img {
height: 12px;
}
}
.ipt-gird {
&-item {
margin: 0 auto 48px;
padding-left: 18px;
padding-right: 18px;
&:first-child {
margin-right: 0;
padding-left: 0;
}
&:last-child {
margin-right: 0;
padding-right: 0;
}
}
.w1 {
width: 210px;
}
.w2 {
width: 300px;
}
.w3 {
width: 360px;
}
}
......@@ -46,26 +66,18 @@
justify-content: space-between;
align-items: center;
position: relative;
// input和下拉
.ipt {
flex: 1;
}
.agree {
cursor: pointer;
}
.name-ipt {
width: 164px;
}
.phone-ipt {
width: 164px;
}
.mail-ipt {}
.mail-ipt {
}
// 长文本
.textarea {
min-height: 105px;
......@@ -73,62 +85,58 @@
@extend .bb;
padding: 9px;
}
.down-arrow {
position: absolute;
top: 26.4px;
right: 24px;
background-image: url('~@/assets/images/reservation/re-down-arrow.png');
background-image: url("~@/assets/images/reservation/re-down-arrow.png");
width: 12px;
height: 8px;
pointer-events: none;
cursor: default;
}
.check-icon {
display: inline-block;
margin-left: 26px;
margin-right: 8px;
}
}
.validator {
color: $cOrange;
color: $cOrange2;
margin-top: 6px;
position: absolute;
right: 192px;
// right: 0;
left: 0;
display: flex;
align-items: center;
// bottom: 0;
img {
display: inline-block;
margin-right: 4.8px;
}
}
}
}
.agree {
width: 100%;
display: flex;
align-items: center;
// margin-top: 48px;
font-size: $fontSizeSmall-M2;
.check-icon {
margin-right: 8px;
width: 18px;
height: 18px;
}
}
.submit-btn {
width: 163px;
height: 49px;
margin: 0 auto 0;
line-height: 49px;
box-shadow: 0px 10px 13px 0 rgba(236, 100, 41, 0.2);
background-blend-mode: soft-light, ;
background-image: linear-gradient(to top, #000000, #ffffff), linear-gradient(to bottom, #ec6429, #ec6429);
text-align: center;
font-size: 15.5px;
color: #ffffff;
border-radius: 42px;
cursor: pointer;
border: none;
color: #ffffff;
background-color: #f05a23;
box-shadow: 0px 10px 13px 0 rgba(236, 100, 41, 0.2);
background-blend-mode: soft-light, ;
background-image: linear-gradient(to top, #000000, #ffffff), linear-gradient(to bottom, #ec6429, #ec6429);
@include btc4(300px, 50px, 18px);
width: 300px;
height: 50px;
border-radius: 25px;
margin: 40px auto 0;
}
.submit-btn:lang(zh) {
......@@ -141,27 +149,23 @@
overflow-x: auto;
-webkit-overflow-scrolling: touch;
width: 92vw;
}
}
@media (max-width: 768px) {
.container {
padding: 24px 16px;
}
.form {
&-item {
.ipt-wrap {
display: block;
}
.agree {
margin-top: $marginSmall-M;
.check-icon {
margin-left: 0;
.ipt-gird {
&-item {
padding: 0;
}
}
}
}
}
......
<template>
<div>
<div class="policy-change-contact">
<!-- 该input用于防止chrome自动填充 -->
<input type="password" style="display: none;" />
<auth @onLogin="userLogin" @onLogout="userLogout" :checkProfile="true" ref="auth" :tipModel="'m2'"></auth>
<modal-comp :visible="modalVisiable" :show-confirm="false" :icon="modalIcon" :content="modalContent" :confirm="modalCallback" :overlay="modalCallback"></modal-comp>
<template v-if="showForm">
<policy-head-list :multiSelectable="true" @onSelect="handlePolicySelect"></policy-head-list>
<div class="container border" v-if="selectedPolicies.length > 0 && data">
<!-- 表单 -->
<div class="form">
<!-- 1 -->
<div class="form-item">
<div class="label">
<div class="icon"><img src="@/assets/images/policy-change-contact/icon-pcc-phone.png"></div>{{$t('policyChangeContact.phone')}}
</div>
<div class="ipt-wrap">
<input class="ipt mail-ipt" :class="{err : errorTips.e1.length > 0}" type="text" v-model="data.mobile">
<div class="agree" @click="checked1 = !checked1">
<img v-if="!checked1" class="check-icon pointer" src="@/assets/images/reservation/un-check.png">
<img v-else class="check-icon pointer" src="@/assets/images/reservation/check.png">
<span>{{$t("policyChangeContact.checkTips")}}</span>
<div class="gird-g ipt-gird">
<div class="pure-u-1 pure-u-md-6-24 ipt-gird-item">
<div class="ipt-wrap-linear">
<div class="down-arrow"></div>
<div class="cont">
<el-select class="ipt" v-model="data.areaCode" :placeholder="$t('policyChangeContact.form.InternationalArea')">
<el-option v-for="(item, index) in areaCodeList" :key="index" :label="item.n" :value="item.v"></el-option>
</el-select>
</div>
</div>
<div class="validator" v-if="errorTips.e1.length > 0">
<img src="@/assets/images/common/icon-notice.png" alt="">{{errorTips.e1}}
</div>
</div>
<div class="pure-u-1 pure-u-md-8-24 ipt-gird-item">
<div class="ipt-wrap-linear">
<input class="ipt mail-ipt" :class="{err : errorTips.e1.length > 0}" type="text" v-model="data.mobile" autocomplete="new-password" :placeholder="$t('policyChangeContact.form.Mobile')">
</div>
<div class="validator" v-if="errorTips.e1.length > 0">
<img src="@/assets/images/common/icon-notice.png" alt="">{{errorTips.e1}}
</div>
</div>
</div>
</div>
<!-- 2 -->
<div class="form-item">
<div class="label">
<div class="icon"><img src="@/assets/images/policy-change-contact/icon-pcc-location.png"></div>{{$t('policyChangeContact.address')}}
</div>
<div class="ipt-wrap">
<input class="ipt mail-ipt" type="text" :class="{err : errorTips.e2.length > 0}" v-model="data.address">
<div class="agree" @click="checked2 = !checked2">
<img v-if="!checked2" class="check-icon pointer" src="@/assets/images/reservation/un-check.png">
<img v-else class="check-icon pointer" src="@/assets/images/reservation/check.png">
<span>{{$t("policyChangeContact.checkTips")}}</span>
<div class="gird-g ipt-gird">
<div class="pure-u-1 pure-u-md-6-24 ipt-gird-item">
<div class="ipt-wrap-linear">
<div class="down-arrow"></div>
<div class="cont">
<el-select class="ipt" v-model="data.countryCode" :placeholder="$t('policyChangeContact.form.Nation')">
<el-option v-for="(item, index) in countryList" :key="index" :label="item.n" :value="item.v"></el-option>
</el-select>
</div>
</div>
<div class="validator" v-if="errorTips.e2.length > 0">
<img src="@/assets/images/common/icon-notice.png" alt="">{{errorTips.e2}}
</div>
</div>
<div class="pure-u-1 pure-u-md-6-24 ipt-gird-item">
<div class="ipt-wrap-linear">
<input class="ipt" type="text" :class="{err : errorTips.e2.length > 0}" v-model="data.address" autocomplete="new-password" :placeholder="$t('policyChangeContact.form.District')">
</div>
<div class="validator" v-if="errorTips.e2.length > 0">
<img src="@/assets/images/common/icon-notice.png" alt="">{{errorTips.e2}}
</div>
</div>
<div class="pure-u-1 pure-u-md-12-24 ipt-gird-item">
<div class="ipt-wrap-linear">
<input class="ipt" type="text" :class="{err : errorTips.e2.length > 0}" v-model="data.address" autocomplete="new-password" :placeholder="$t('policyChangeContact.form.Address')">
</div>
<div class="validator" v-if="errorTips.e2.length > 0">
<img src="@/assets/images/common/icon-notice.png" alt="">{{errorTips.e2}}
</div>
</div>
</div>
</div>
<!-- 3 -->
<div class="form-item">
<div class="label">
<div class="icon"><img src="@/assets/images/policy-change-contact/icon-pcc-mail.png"></div>{{$t('policyChangeContact.email')}}
</div>
<div class="ipt-wrap">
<input class="ipt mail-ipt" type="text" :class="{err : errorTips.e3.length > 0}" v-model="data.email">
<div class="agree" @click="checked3 = !checked3">
<img v-if="!checked3" class="check-icon pointer" src="@/assets/images/reservation/un-check.png">
<img v-else class="check-icon pointer" src="@/assets/images/reservation/check.png">
<span>{{$t("policyChangeContact.checkTips")}}</span>
</div>
<div class="gird-g ipt-gird">
<div class="pure-u-1 ipt-gird-item">
<div class="pure-u-1 pure-u-md-12-24 ipt-wrap-linear">
<input class="ipt" type="text" :class="{err : errorTips.e3.length > 0}" v-model="data.email" autocomplete="new-password" :placeholder="$t('policyChangeContact.form.Mail')">
</div>
<div class="validator" v-if="errorTips.e3.length > 0">
<img src="@/assets/images/common/icon-notice.png" alt="">{{errorTips.e3}}
</div>
</div>
<div class="submit-btn flex-center" @click="updateContactsHandler" :class="{disabled: submitBtnDisabled}">
</div>
</div>
<div class="agree" @click="checked1 = !checked1">
<img v-if="!checked1" class="check-icon pointer" src="@/assets/images/reservation/un-check.png">
<img v-else class="check-icon pointer" src="@/assets/images/reservation/check.png">
<span>{{$t("policyChangeContact.checkTips")}}</span>
</div>
<div class="submit-btn" @click="updateContactsHandler" :class="{disabled: submitBtnDisabled}">
<van-loading v-if="loading" />
<span>{{$t('policyChangeContact.submit')}}</span>
</div>
</div>
</div>
<!-- <div v-else style="height:400px"></div> -->
</template>
</div>
</template>
......
/**
* 组件描述:保单查询列表
*/
import api from '@/api/api';
import {
httpPost,
requestDomain
} from '@/api/fetch-api.js';
import {
mapState
} from 'vuex';
import {
formatMoney,
getInsuredPeriod,
getInsuredState,
getPolicyName
} from "@/utils/biz.js";
import Modal2Comp from '@/components/modal2-comp/modal2-comp.vue';
export default {
props: {
multiSelectable: {
type: Boolean,
default: false
},
model: {
type: String,
default: "download"
},
},
name: "PolicyHeadList",
data() {
return {
myPolicyList: [],
maxShow: 2,
selectPolicyCode: "",
selectPolicyCodes: {},
hide: false,
showDownloadError: false
}
},
computed: {
...mapState({
policyList: state => state.policyList
}),
lan() {
return this.$i18n.locale;
},
i18n() {
return this.$i18n.messages && this.$i18n.locale ? this.$i18n.messages[this.$i18n.locale] : {};
},
},
methods: {
onShowTipsOverHandler(event, item, index) {
let child = event.currentTarget.childNodes[0];
child.style.display = "block";
},
onShowTipsOutHandler(event, item, index) {
let child = event.currentTarget.childNodes[0];
child.style.display = "none";
},
toContactUs() {
this.$router.push({
path: "/custom/service",
query: {
q: "m1"
}
});
},
queryList() {
if (this.policyList && this.policyList.length > 0) {
this.myPolicyList = this.policyList;
this.myPolicyList.forEach(element => {
element.activity = false;
})
this.initSelected();
} else {
this.checkCustomer().then(() => {
httpPost({
url: api.policyList,
sid: true
}).then(res => {
if (!res || res.length == 0) {
this.myPolicyList = null;
} else {
res.forEach(element => {
element.activity = false;
// let len = element.policyCode.length;
// element.policyCodeStr = element.policyCode && len > 5 ?
// element.policyCode.substring(0, 2) + "**********"
// + element.policyCode.substring(len - 4, len) : element.policyCode;
});
this.$store.commit("CACHE_POLICY_LIST", res);
this.myPolicyList = res;
}
this.initSelected();
}).catch(e => {
this.myPolicyList = null;
switch (e.code) {
case "2002":
// 不是客户,没有购买保单
break;
}
});
});
}
},
initSelected() {
let selectPolicy = null;
try {
let data = sessionStorage.getItem("_hklife_policy");
if (data) {
sessionStorage.removeItem("_hklife_policy");
selectPolicy = JSON.parse(decodeURIComponent(data));
if (selectPolicy) {
if (this.multiSelectable) {
this.selectPolicyCodes[selectPolicy.code] = selectPolicy;
} else {
this.selectPolicyCode = selectPolicy.code;
}
this.$emit("onSelect", [selectPolicy]);
// 判断最大显示
let index = -1;
for (let i = 0; i < this.myPolicyList.length; i++) {
if (selectPolicy.code == this.myPolicyList[i].policyCode) {
this.myPolicyList[i].activity = true;
index = i;
}
}
this.$set(this, "myPolicyList", this.myPolicyList);
if (index > 2) {
this.maxShow = this.myPolicyList.length;
}
}
}
} catch (e) {
}
if (!selectPolicy) {
let firstPolicy = this.myPolicyList[0];
this.myPolicyList[0].activity = true;
selectPolicy = {
id: firstPolicy.policyId,
code: firstPolicy.policyCode
};
if (this.multiSelectable) {
this.selectPolicyCodes[selectPolicy.code] = selectPolicy;
} else {
this.selectPolicyCode = selectPolicy.code;
}
this.$emit("onSelect", [selectPolicy]);
}
},
handlePolicySelect(item, index) {
let code = item.policyCode;
if (this.multiSelectable) {
let c = this.selectPolicyCodes[code];
if (!c || typeof c == "undefined") {
item.activity = true;
this.selectPolicyCodes[code] = {
code: code,
id: item.policyId
};
} else {
item.activity = false;
delete this.selectPolicyCodes[code];
}
// this.$set(this, 'myPolicyList', this.myPolicyList);
let data = [];
for (let key in this.selectPolicyCodes) {
data.push(this.selectPolicyCodes[key]);
}
this.$emit("onSelect", data);
} else {
if (code != this.selectPolicyCode) {
this.selectPolicyCode = code;
this.$emit("onSelect", [{
code: code,
id: item.policyId
}]);
}
}
},
isPolicySelect(item, index) {
let code = item.policyCode;
if (this.multiSelectable) {
let c = this.selectPolicyCodes[code];
if (!c || typeof c == "undefined") {
return false;
} else {
return true;
}
}
return false;
},
checkCustomer() {
return new Promise(resolve => {
resolve();
// httpPost({ url: api.profile, sid: true }).then(res => {
// if (res.isCustomer == 1) {
// resolve();
// } else {
// this.gotoCustomerAuthPage();
// }
// }).catch(res => {
// });
});
},
gotoCustomerAuthPage() {
let c = this.$route.fullPath;
this.$router.push({
name: "customerAuth",
query: {
c: c
}
});
},
formatMoney(s, t) {
if (typeof t == "undefined") {
t = 1;
}
return formatMoney(s, t);
},
// 保障年限,保n年
formatInsuredPeriod(t, v) {
return getInsuredPeriod(this.$i18n.locale, t, v);
},
formatInsuredState(c) {
return getInsuredState(this.$i18n.locale, c);
},
formatPolicyName(c, n) {
return getPolicyName(this.$i18n.locale, c, n);
},
downloadPolicy(policy) {
if (policy) {
httpPost({
url: api.getDownloadPath,
sid: true,
data: {
policyCode: policy.policyCode
}
}).then(res => {
if (res) {
let url = requestDomain() + api.downloadPolicy + "/" + res;
window.open(url);
} else {
this.showDownloadError = true;
}
});
}
}
},
components: {
Modal2Comp
},
mounted() {
this.queryList();
},
}
@import '@/styles/_support.scss';
.list-container {
overflow-x: auto;
margin-bottom: 24px;
}
.hide {
max-height: 0;
border-bottom: none;
}
.table-contaner {
position: relative;
}
.download {
position: relative;
&-tips {
display: none;
position: absolute;
top: -3px;
left: 20px;
z-index: 11;
padding: 2px;
@include border-tans();
min-width: 80px;
}
}
.guide {
position: absolute;
transition: all 0.5s;
cursor: pointer;
width: 12px;
height: 8px;
background: url("~@/assets/images/insurance-query/triangle-down2.png") no-repeat center center;
background-size: 100% 100%;
top: 16px;
right: 26px;
}
.rotate180 {
transform: rotate(180deg);
transition: all 0.5s;
}
.cell-group {
margin-bottom: 12px;
&:last-child {
margin-bottom: 0;
}
div {
color: #4c4948;
}
.w1 {
// width: 120px;
width: 240px;
text-align: center;
}
.w2 {
// width: 75px;
width: 150px;
text-align: center;
}
.table-header {
// width: 770px;
height: 39px;
border-top-left-radius: 8px;
border-top-right-radius: 8px;
background-color: #f2f2f2;
display: flex;
align-items: center;
.normal-header {
// width: 706px;
@extend .bb;
padding: 0 32px;
width: 100%;
margin: auto;
display: flex;
justify-content: space-between;
align-items: center;
.title {
font-weight: bold;
color: #575453;
}
.guide {
transition: all 0.5s;
cursor: pointer;
width: 12px;
height: 8px;
background: url("~@/assets/images/insurance-query/triangle-down.png") no-repeat center center;
background-size: 100% 100%;
}
.rotate180 {
transform: rotate(180deg);
transition: all 0.5s;
}
}
}
.table-content {
// width: 770px;
height: auto;
max-height: 600px;
// display: inline-block;
border-bottom-left-radius: 8px;
border-bottom-right-radius: 8px;
border-left: solid 1px #f2f2f2;
border-right: solid 1px #f2f2f2;
border-bottom: solid 1px #f2f2f2;
padding: 0 32px;
transition: max-height ease-out 0.3s !important;
overflow: auto;
.data-line {
// padding: 0 32px;
height: 50px;
margin: auto;
display: flex;
justify-content: space-between;
align-items: center;
.td {
display: flex;
justify-content: center;
align-items: center;
}
.cell1 {
width: 98%;
display: flex;
justify-content: space-between;
margin: auto;
}
.separator-v {
height: 30px;
width: 2px;
background-color: #f2f2f2;
margin: 0 11px;
}
}
.label span {
color: $cOrange;
margin-left: 7px;
cursor: pointer;
text-decoration: underline;
}
.separator-h {
width: 100%;
height: 1px;
background-color: #f2f2f2;
}
}
.orange {
background-color: $cOrange;
div {
color: #ffffff;
}
}
.hide {
max-height: 0;
border-bottom: none;
}
.sp {
text-decoration: underline;
padding: 0 4.8px;
}
.ac {
color: $cOrange !important;
}
}
.show-more-btn {
width: 100%;
color: $cOrange !important;
text-decoration: underline;
cursor: pointer;
justify-content: center !important;
}
.pointer {
cursor: pointer;
}
.activity {
background-color: $cOrange !important;
opacity: .5;
div {
color: #FFFFFF !important;
}
}
.empty {
height: 500px;
display: flex;
align-items: center;
justify-content: center;
.tips {
align-items: center;
display: flex;
.icon {
margin-right: 5px;
display: inline-block;
}
.btn {
color: $cOrange;
}
}
}
<template>
<div class="list-container">
<modal2-comp :visible="showDownloadError" :close="()=>{showDownloadError = false}" :content="$t('glbalTips.sysError')"></modal2-comp>
<div class="cell-group">
<div class="table-contaner">
<div class="table-header orange" >
<div class="normal-header">
<div class="td w1">{{$t('customService.insuranceQuery.InsurantNumber')}}</div>
<div class="td w2">{{$t('customService.insuranceQuery.policyState')}}</div>
<div class="td w2">{{$t('customService.insuranceQuery.activeDate')}}</div>
<div class="td w2">{{$t('customService.insuranceQuery.Insurant')}}</div>
<div class="td w1">{{$t('customService.insuranceQuery.InsurantName')}}</div>
<div class="td w2">{{$t('customService.insuranceQuery.InsurantAmount')}}</div>
<div class="td w2">{{$t('customService.insuranceQuery.effectiveDate')}}</div>
<div class="td w2">{{$t('customService.insuranceQuery.period')}}</div>
</div>
</div>
<div class="guide" :class="{rotate180 : hide}" @click="hide = !hide"></div>
</div>
<div class="table-content" :class="{hide : hide}">
<template v-if="myPolicyList">
<div v-for="(item,index) in myPolicyList" :key="index">
<template v-if="index < maxShow">
<div class="data-line" @click="handlePolicySelect(item,index)">
<div class="td w1 pointer">
<template v-if="multiSelectable">
<img v-if="item.activity" class="icon-check pointer" src="@/assets/images/insurance-query/check.png">
<img v-else class="icon-check pointer" src="@/assets/images/insurance-query/un-check.png">
<span class="sp" :class="{ac: item.activity}">{{item.policyCode}}</span>
</template>
<template v-else>
<template v-if="model != 'download'">
<img v-if="selectPolicyCode == item.policyCode" class="icon-check pointer" src="@/assets/images/insurance-query/check.png">
<img v-else class="icon-check pointer" src="@/assets/images/insurance-query/un-check.png">
</template>
<span class="sp" :class="{ac: selectPolicyCode == item.policyCode}">{{item.policyCode}}</span>
<template v-if="model == 'download'">
<div class="download" @mouseover="onShowTipsOverHandler($event,item,index)" @mouseout="onShowTipsOutHandler($event,item,index)" @click="downloadPolicy(item)">
<div class="download-tips">
<div class="cont">{{$t('customService.insuranceQuery.downloadClick')}}</div>
</div>
<img class="icon-download" src="@/assets/images/insurance-query/icon-down-load.png" alt="">
</div>
</template>
</template>
</div>
<div class="td w2">{{formatInsuredState(item.policyState)}}</div>
<div class="td w2">{{item.activeDate?item.activeDate.split(" ")[0]:""}}</div>
<div class="td w2">{{lan == 'en' ? (item.insuredNameEn ? item.insuredNameEn : item.insuredNameCn) : (item.insuredNameCn ? item.insuredNameCn : item.insuredNameEn)}}</div>
<div class="td w1">{{formatPolicyName(item.productCode, item.productName)}}</div>
<div class="td w2">{{item.moneyCode}} {{formatMoney(item.amount,0)}}</div>
<div class="td w2">{{item.expireAt?item.expireAt.split(" ")[0]:""}}</div>
<!-- <div class="td w2">{{item.guaranteeAge?item.guaranteeAge.split(" ")[0]:""}}</div> -->
<div class="td w2">{{formatInsuredPeriod(item.insuredPeriodType,item.insuredPeriodValue)}}</div>
</div>
<div class="separator-h" v-if="index < myPolicyList.length - 1 && index < maxShow - 1"></div>
</template>
</div>
<template v-if="!policyList || maxShow < policyList.length">
<div class="separator-h"></div>
<div class="data-line show-more-btn" @click="maxShow = policyList.length">{{$t('customService.insuranceQuery.showMore')}}</div>
</template>
</template>
<template v-else>
<div class="empty">
<div class="tips">
<img class="icon" src="@/assets/images/common/icon-alert-i.png" alt="">
<div class="txt">
{{$t('customService.insuranceQuery.noPolicy')}}
<span class="pointer btn" @click="toContactUs">{{$t('customService.insuranceQuery.customService')}}</span>
</div>
</div>
</div>
</template>
</div>
</div>
</div>
</template>
<script src="./policy-head-list.js"></script>
<style lang="scss" scoped>
@import "./policy-head-list.scss";
</style>
@import '@/styles/_support.scss';
@import "@/styles/_support.scss";
.list-container {
overflow-x: auto;
margin-bottom: 24px;
font-size: $fontSize-M2;
}
.hide {
......@@ -16,7 +16,6 @@
.download {
position: relative;
&-tips {
display: none;
position: absolute;
......@@ -35,7 +34,8 @@
cursor: pointer;
width: 12px;
height: 8px;
background: url("~@/assets/images/insurance-query/triangle-down2.png") no-repeat center center;
background: url("~@/assets/images/insurance-query/triangle-down2.png")
no-repeat center center;
background-size: 100% 100%;
top: 16px;
right: 26px;
......@@ -48,36 +48,30 @@
.cell-group {
margin-bottom: 12px;
&:last-child {
margin-bottom: 0;
}
div {
color: #4c4948;
}
.w1 {
// width: 120px;
width: 240px;
text-align: center;
}
.w2 {
// width: 75px;
width: 150px;
text-align: center;
}
.table-header {
// width: 770px;
height: 39px;
height: 50px;
border-top-left-radius: 8px;
border-top-right-radius: 8px;
background-color: #f2f2f2;
display: flex;
align-items: center;
.normal-header {
// width: 706px;
@extend .bb;
......@@ -87,31 +81,27 @@
display: flex;
justify-content: space-between;
align-items: center;
.title {
font-weight: bold;
color: #575453;
}
.guide {
transition: all 0.5s;
cursor: pointer;
width: 12px;
height: 8px;
background: url("~@/assets/images/insurance-query/triangle-down.png") no-repeat center center;
background: url("~@/assets/images/insurance-query/triangle-down.png")
no-repeat center center;
background-size: 100% 100%;
}
.rotate180 {
transform: rotate(180deg);
transition: all 0.5s;
}
}
}
.table-content {
// width: 770px;
height: auto;
max-height: 600px;
// display: inline-block;
......@@ -123,30 +113,24 @@
padding: 0 32px;
transition: max-height ease-out 0.3s !important;
overflow: auto;
.data-line {
// padding: 0 32px;
height: 50px;
height: 58px;
margin: auto;
display: flex;
justify-content: space-between;
align-items: center;
.td {
display: flex;
justify-content: center;
align-items: center;
}
.cell1 {
width: 98%;
display: flex;
justify-content: space-between;
margin: auto;
}
.separator-v {
height: 30px;
width: 2px;
......@@ -154,39 +138,35 @@
margin: 0 11px;
}
}
.label span {
color: $cOrange;
margin-left: 7px;
cursor: pointer;
text-decoration: underline;
}
.separator-h {
width: 100%;
height: 1px;
height: 2px;
background-color: #f2f2f2;
}
}
.orange {
background-color: $cOrange;
div {
color: #ffffff;
}
}
.new {
@include linear-bg;
}
.hide {
max-height: 0;
border-bottom: none;
}
.sp {
text-decoration: underline;
padding: 0 4.8px;
}
.ac {
color: $cOrange !important;
}
......@@ -206,10 +186,9 @@
.activity {
background-color: $cOrange !important;
opacity: .5;
opacity: 0.5;
div {
color: #FFFFFF !important;
color: #ffffff !important;
}
}
......@@ -218,19 +197,24 @@
display: flex;
align-items: center;
justify-content: center;
.tips {
align-items: center;
display: flex;
.icon {
margin-right: 5px;
display: inline-block;
}
.btn {
color: $cOrange;
}
}
}
@media (max-width: 1200px) {
.list-container {
display: -webkit-box;
overflow-x: auto;
-webkit-overflow-scrolling: touch;
width: 92vw;
}
}
\ No newline at end of file
......
......@@ -3,11 +3,11 @@
<modal2-comp :visible="showDownloadError" :close="()=>{showDownloadError = false}" :content="$t('glbalTips.sysError')"></modal2-comp>
<div class="cell-group">
<div class="table-contaner">
<div class="table-header orange" >
<div class="table-header orange new" >
<div class="normal-header">
<div class="td w1">{{$t('customService.insuranceQuery.InsurantNumber')}}</div>
<div class="td w2">{{$t('customService.insuranceQuery.policyState')}}</div>
<div class="td w2">{{$t('customService.insuranceQuery.activeDate')}}</div>
<!-- <div class="td w2">{{$t('customService.insuranceQuery.policyState')}}</div>
<div class="td w2">{{$t('customService.insuranceQuery.activeDate')}}</div> -->
<div class="td w2">{{$t('customService.insuranceQuery.Insurant')}}</div>
<div class="td w1">{{$t('customService.insuranceQuery.InsurantName')}}</div>
<div class="td w2">{{$t('customService.insuranceQuery.InsurantAmount')}}</div>
......@@ -45,8 +45,8 @@
</template>
</div>
<div class="td w2">{{formatInsuredState(item.policyState)}}</div>
<div class="td w2">{{item.activeDate?item.activeDate.split(" ")[0]:""}}</div>
<!-- <div class="td w2">{{formatInsuredState(item.policyState)}}</div> -->
<!-- <div class="td w2">{{item.activeDate?item.activeDate.split(" ")[0]:""}}</div> -->
<div class="td w2">{{lan == 'en' ? (item.insuredNameEn ? item.insuredNameEn : item.insuredNameCn) : (item.insuredNameCn ? item.insuredNameCn : item.insuredNameEn)}}</div>
<div class="td w1">{{formatPolicyName(item.productCode, item.productName)}}</div>
<div class="td w2">{{item.moneyCode}} {{formatMoney(item.amount,0)}}</div>
......
<template>
<div class="page page-index">
<!-- 该input用于防止chrome自动填充 -->
<input type="password" style="display: none;" />
<div class="banner-contaner">
<!-- banner 轮播 -->
......@@ -9,14 +11,7 @@
<img class="banner-img" :src="item.pcBannerUrl" />
<div class="btn-wrap">
<div v-for="(btnItem, btnIndex) in item.btns" :key="btnIndex">
<div
class="banner-btn"
v-if="btnItem.n && btnItem.t && btnItem.c"
@click="btnNavigateTo(btnItem.t, btnItem.l)"
:style="{ backgroundColor: btnItem.c }"
>
{{ btnItem.n }}
</div>
<div class="banner-btn" v-if="btnItem.n && btnItem.t && btnItem.c" @click="btnNavigateTo(btnItem.t, btnItem.l)" :style="{ backgroundColor: btnItem.c }">{{ btnItem.n }}</div>
</div>
</div>
</swiper-slide>
......@@ -31,15 +26,7 @@
<swiper-slide v-for="(item, index) in bannerList" :key="index">
<img class="banner-img" :src="item.mobileBannerUrl" />
<div class="btn-wrap">
<div
class="banner-btn"
v-for="(btnItem, btnIndex) in item.btns"
:key="btnIndex"
@click="btnNavigateTo(btnItem.t, btnItem.l)"
:style="{ color: btnItem.c }"
>
{{ btnItem.n }}&nbsp;&gt;
</div>
<div class="banner-btn" v-for="(btnItem, btnIndex) in item.btns" :key="btnIndex" @click="btnNavigateTo(btnItem.t, btnItem.l)" :style="{ color: btnItem.c }">{{ btnItem.n }}&nbsp;&gt;</div>
</div>
</swiper-slide>
<div class="swiper-pagination" slot="pagination"></div>
......@@ -50,17 +37,7 @@
</div>
<!-- 导航菜单切换 -->
<div class="nav-tab">
<div
@click="onTabHandler(item)"
v-html="item.name"
v-for="item in tabList"
:key="item.id"
class="nav-tab-item"
:class="{ 'nav-tab-item-act': item.index == curTab.index }"
:style="'width: calc(100% / ' + tabList.length + ');'"
>
{{ item.name }}
</div>
<div @click="onTabHandler(item)" v-html="item.name" v-for="item in tabList" :key="item.id" class="nav-tab-item" :class="{ 'nav-tab-item-act': item.index == curTab.index }" :style="'width: calc(100% / ' + tabList.length + ');'">{{ item.name }}</div>
</div>
<!-- 推荐 为什么选择平安人寿 -->
<div class="content recommend">
......@@ -92,10 +69,7 @@
</div>
<!-- 线上报价 -->
<div
class="quote"
:style="'background: url(' + quoteBgUrl + ') center no-repeat;'"
>
<div class="quote" :style="'background: url(' + quoteBgUrl + ') center no-repeat;'">
<div class="space1"></div>
<div class="tit">線上報價 閃速投保</div>
<div class="tit2">
......@@ -106,32 +80,16 @@
<!-- tab表格 -->
<div class="table">
<div class="table-tab">
<div
@click="onTabHandler(item)"
v-html="item.name"
v-for="(item, index) in tabList"
:key="item.id"
class="table-tab-item"
:class="{ 'table-tab-item-act': item.index == curTab.index }"
:style="
<div @click="onTabHandler(item)" v-html="item.name" v-for="(item, index) in tabList" :key="item.id" class="table-tab-item" :class="{ 'table-tab-item-act': item.index == curTab.index }" :style="
'width: calc(100% / ' +
tabList.length +
');z-index:' +
(tabList.length - index) +
''
"
>
{{ item.name }}
</div>
</div>
<div
class="linear"
:style="'width: calc(100% - 29px *' + (tabList.length - 1) + ')'"
></div>
<div
class="table-cont"
:style="'width: calc(100% - 29px *' + (tabList.length - 1) + ')'"
>
">{{ item.name }}</div>
</div>
<div class="linear" :style="'width: calc(100% - 29px *' + (tabList.length - 1) + ')'"></div>
<div class="table-cont" :style="'width: calc(100% - 29px *' + (tabList.length - 1) + ')'">
<div @click="onPrevTabHandler()" class="arrow arrow-left"></div>
<div @click="onNextTabHandler()" class="arrow arrow-right"></div>
......@@ -149,53 +107,28 @@
<div class="panel panel-right">
<div class="func func1">
<div class="func1-item">
<div class="k">性別</div>
<div class="k"> {{$t('common.Sex')}}</div>
<div class="gender">
<div class="gender-item " @click="onQuoteSexHandler(1)">
男性
<img
v-if="quoteData.gender == 1"
src="@/assets/images/common/icon-male-act.png"
alt=""
/>
<img
v-else
src="@/assets/images/common/icon-male.png"
alt=""
/>
<div class="gender-item" @click="onQuoteSexHandler(1)">
{{$t('common.Male')}}
<img v-if="quoteData.gender == 1" src="@/assets/images/common/icon-male-act.png" alt />
<img v-else src="@/assets/images/common/icon-male.png" alt />
</div>
<div class="gender-item" @click="onQuoteSexHandler(2)">
女性
<img
v-if="quoteData.gender == 2"
src="@/assets/images/common/icon-female-act.png"
alt=""
/>
<img
v-else
src="@/assets/images/common/icon-female.png"
alt=""
/>
{{$t('common.Female')}}
<img v-if="quoteData.gender == 2" src="@/assets/images/common/icon-female-act.png" alt />
<img v-else src="@/assets/images/common/icon-female.png" alt />
</div>
</div>
</div>
<div class="func1-item">
<div class="k">年齡</div>
<div class="k">{{$t('common.Age')}}</div>
<div class="age">
<div class="ipt-wrap-linear">
<div class="down-arrow"></div>
<div class="cont">
<el-select
class="ipt"
v-model="formData.gender"
:placeholder="'年龄'"
>
<el-option
v-for="(item, index) in 100"
:key="index"
:label="item"
:value="item"
></el-option>
<el-select class="ipt" v-model="formData.gender" :placeholder="$t('common.Age')">
<el-option v-for="(item, index) in 100" :key="index" :label="item" :value="item"></el-option>
</el-select>
</div>
</div>
......@@ -205,9 +138,10 @@
</div>
</div>
</div>
<div class="quote-btn">立即報價</div>
<div class="quote-btn">{{$t('index.quote.quote')}}</div>
<div class="customer-service">
我想<span @click="toContactUs" class="udl pointer">聯絡客服</span>
{{$t('index.quote.want')}}
<span @click="toContactUs" class="udl pointer">{{$t('index.quote.service')}}</span>
</div>
</div>
......@@ -215,16 +149,9 @@
<div class="contact">
<div class="box-w panel">
<div class="panel-left">
<div class="t1">
如欲了解我們的產品,
<br />歡迎聯絡我們。
</div>
<div class="t2">想了解更多?致電2983 8866^聯絡我們。</div>
<img
class="pic-mobile"
src="@/assets/images/index/index-mobile.png"
alt
/>
<div v-html="$t('index.contact.t1')" class="t1"></div>
<div v-html="$t('index.contact.t2')" class="t2"></div>
<img class="pic-mobile" src="@/assets/images/index/index-mobile.png" alt />
</div>
<div class="panel-right">
<div class="form">
......@@ -233,28 +160,15 @@
<div class="ipt-wrap-linear dear">
<div class="down-arrow"></div>
<div class="cont">
<el-select
class="ipt"
v-model="formData.gender"
:placeholder="$t('index.contact.form.Title') + '*'"
>
<el-option
v-for="(item, index) in genderList"
:key="index"
:label="item.n"
:value="item.v"
></el-option>
<el-select class="ipt" v-model="formData.gender" :placeholder="$t('index.contact.form.Title') + '*'">
<el-option v-for="(item, index) in genderList" :key="index" :label="item.n" :value="item.v"></el-option>
</el-select>
</div>
</div>
<!-- 姓名 -->
<div class="ipt-wrap-linear name">
<div class="cont">
<input
class="ipt"
type="text"
:placeholder="$t('index.contact.form.Name') + '*'"
/>
<input autocomplete="new-password" class="ipt" type="text" :placeholder="$t('index.contact.form.Name') + '*'" />
</div>
</div>
</div>
......@@ -263,11 +177,7 @@
<!-- 联系电话 -->
<div class="ipt-wrap-linear">
<div class="cont">
<input
class="ipt"
type="text"
:placeholder="$t('index.contact.form.PhoneNumber') + '*'"
/>
<input autocomplete="new-password" class="ipt" type="text" :placeholder="$t('index.contact.form.PhoneNumber') + '*'" />
</div>
</div>
</div>
......@@ -276,11 +186,7 @@
<!-- 電郵 -->
<div class="ipt-wrap-linear">
<div class="cont">
<input
class="ipt"
type="text"
:placeholder="$t('index.contact.form.Email') + '*'"
/>
<input class="ipt" type="text" :placeholder="$t('index.contact.form.Email') + '*'" />
</div>
</div>
</div>
......@@ -290,20 +196,13 @@
<div class="ipt-wrap-linear">
<div class="down-arrow"></div>
<div class="cont">
<date-picker
class="ipt-date"
:formatter="'dd-MM-yyyy'"
:placeholder="$t('index.contact.form.Time') + '*'"
v-model="formData.birthDate"
:filtModel="['future']"
:cusStyle="{
<date-picker class="ipt-date" :formatter="'dd-MM-yyyy'" :placeholder="$t('index.contact.form.Time') + '*'" v-model="formData.birthDate" :filtModel="['future']" :cusStyle="{
border: 'none !important',
'background-color': 'transparent !important',
padding: '16px 24px',
color: '#606266',
'text-align': 'center'
}"
></date-picker>
}"></date-picker>
</div>
</div>
</div>
......@@ -312,21 +211,17 @@
<!-- 查詢事項 -->
<div class="ipt-wrap-linear">
<div class="cont">
<textarea
class="ipt textarea"
:placeholder="$t('index.contact.form.Inquiry')"
></textarea>
<textarea class="ipt textarea" :placeholder="$t('index.contact.form.Inquiry')"></textarea>
</div>
</div>
</div>
</div>
<!-- 错误提示 -->
<div class="err-tips">
<template v-if="errTips"
><img class="icon" src="@/assets/images/common/icon-alert-i.png" alt="" />{{
errTips
}}</template
>
<template v-if="errTips">
<img class="icon" src="@/assets/images/common/icon-alert-i.png" alt />
{{ errTips }}
</template>
</div>
<div class="submit-btn">{{ $t("index.contact.form.Submit") }}</div>
</div>
......
......@@ -87,20 +87,20 @@
.eye-act {
background-image: url("~@/assets/images/common/icon-eyes-on.png");
}
}
.ipt:focus {
.ipt:focus {
border-color: $cOrange !important;
}
}
.ipt.err {
.ipt.err {
border-color: $cOrange !important;
}
}
.err {
.err {
.ipt {
border-color: $cOrange !important;
}
}
}
// 输入框
......@@ -122,7 +122,7 @@
flex: 1;
display: flex;
align-items: center;
font-size: 22px;
font-size: 18px;
color: $cFontGray2;
&:lang(zh) {
......
......@@ -17,7 +17,7 @@
}
// 超过多少行自动省略 默认一行
@mixin ellipsis($line:1) {
@mixin ellipsis($line: 1) {
display: -webkit-box;
word-break: break-all;
-webkit-box-orient: vertical;
......@@ -50,13 +50,11 @@
// 清除浮动
@mixin clearfix() {
&:before,
&:after {
content: " "; // 1
display: table; // 2
}
&:after {
clear: both;
}
......@@ -101,9 +99,8 @@
border: 0;
}
// 橙色按钮
@mixin btc2($wid:63px, $hei:30px, $fontSize:12px) {
@mixin btc2($wid: 63px, $hei: 30px, $fontSize: 12px) {
width: $wid;
height: $hei;
line-height: $hei;
......@@ -119,11 +116,9 @@
background-blend-mode: soft-light;
background-image: linear-gradient(to bottom, #ec6429, #ec6429), linear-gradient(to top, #000000, #ffffff);
// background-image: linear-gradient(to top, #000000, #ffffff), linear-gradient(to bottom, #ec6429, #ec6429);
}
@mixin btc3($wid:63px, $hei:30px, $fontSize:12px) {
@mixin btc3($wid: 63px, $hei: 30px, $fontSize: 12px) {
width: $wid;
height: $hei;
line-height: $hei;
......@@ -134,7 +129,7 @@
border: solid 1px #006441;
}
@mixin btc4($wid:288px, $hei:60px, $fontSize:12px) {
@mixin btc4($wid: 288px, $hei: 60px, $fontSize: 18px) {
width: $wid;
height: $hei;
line-height: $hei;
......@@ -148,14 +143,12 @@
letter-spacing: 1.4px;
}
@mixin content-percent($percent:4%) {
@mixin content-percent($percent: 4%) {
box-sizing: border-box;
padding: 0 $percent;
}
@mixin border-tans($borderRadius:1px, $borderSize:2px) {
@mixin border-tans($borderRadius: 1px, $borderSize: 2px) {
border: $borderSize solid transparent;
background-clip: padding-box, border-box;
background-origin: padding-box, border-box;
......
......@@ -60,3 +60,8 @@ $--font-path: "~element-ui/lib/theme-chalk/fonts";
font-size: 22px;
font-weight: bold;
}
.policy-change-contact .el-input__inner {
font-size: 18px;
color: $cFontGray2;
}
......