99c76e6f by simon

默认提交

1 parent 7357e118
......@@ -6,7 +6,7 @@ node_modules
.DS_Store
sync.sh
git.sh
# /sandbox
/sandbox
# local env files
.env.local
......
......@@ -46,48 +46,49 @@ module.exports = {
saveComplain: "/pingan_hklife_webapi/customService/complain/save",
// 身份认证
customerAuth :"/pingan_hklife_webapi/policy/auth",
customerAuth: "/pingan_hklife_webapi/policy/auth",
// 保单接口
policyList : "/pingan_hklife_webapi/policy/list",
policyList: "/pingan_hklife_webapi/policy/list",
// 保单接口
policyDetail : "/pingan_hklife_webapi/policy/detail",
policyDetail: "/pingan_hklife_webapi/policy/detail",
// 保单聯系方式變更
updatePolicyContanct : "/pingan_hklife_webapi/policy/updateContacts",
updatePolicyContanct: "/pingan_hklife_webapi/policy/updateContacts",
// 保单客戶資料變更
updatePolicyInfo : "/pingan_hklife_webapi/policy/updateInfo",
updatePolicyInfoV2 : "/pingan_hklife_webapi/policy/updatePolicyInfo",
updatePolicyInfo: "/pingan_hklife_webapi/policy/updateInfo",
updatePolicyInfoV2: "/pingan_hklife_webapi/policy/updatePolicyInfo",
// 证件上传
idPicUpload : "/pingan_hklife_webapi/policy/idPicUpload",
updateIdFileV2 : "/pingan_hklife_webapi/policy/updateIdFileV2",
idPicUpload: "/pingan_hklife_webapi/policy/idPicUpload",
updateIdFileV2: "/pingan_hklife_webapi/policy/updateIdFileV2",
// 回销回执
policyReceipt : "/pingan_hklife_webapi/policy/policyReceipt",
policyReceipt: "/pingan_hklife_webapi/policy/policyReceipt",
// 获取电子保单下载code
getDownloadPath : "/pingan_hklife_webapi/policy/getDownloadPath",
getDownloadPath: "/pingan_hklife_webapi/policy/getDownloadPath",
// 下载电子保单
downloadPolicy : "/pingan_hklife_webapi/policy/d",
downloadPolicy: "/pingan_hklife_webapi/policy/d",
// 上传电子文档
uploadClarmsImage : "/pingan_hklife_webapi/policy/clarmsUpload",
uploadClarmsImage: "/pingan_hklife_webapi/policy/clarmsUpload",
// 如果是登录用户,直接从库中获取cid
getCidByLogin : "/pingan_hklife_webapi/policy/getCidByLogin",
getCidByLogin: "/pingan_hklife_webapi/policy/getCidByLogin",
// 校验方式获取cid
getCidByVerify : "/pingan_hklife_webapi/policy/getCidByVerify",
getCidByVerify: "/pingan_hklife_webapi/policy/getCidByVerify",
// 客户信息
clarmsCustomerList : "/pingan_hklife_webapi/policy/clarmsCustomerList",
clarmsCustomerList: "/pingan_hklife_webapi/policy/clarmsCustomerList",
// 理赔报案
clarmsRegisterCase : "/pingan_hklife_webapi/policy/clarmsRegisterCase",
clarmsRegisterCase: "/pingan_hklife_webapi/policy/clarmsRegisterCase",
// cms相关
indexVideo : "/pingan_hklife_webapi/cms/indexVideo",
banner : "/pingan_hklife_webapi/cms/banner/list",
newsList : "/pingan_hklife_webapi/cms/news/list",
newsDetail : "/pingan_hklife_webapi/cms/news/get",
companyOutline : "/pingan_hklife_webapi/cms/company/outline",
productInfo : "/pingan_hklife_webapi/cms/product",
indexVideo: "/pingan_hklife_webapi/cms/indexVideo",
banner: "/pingan_hklife_webapi/cms/banner/list",
newsList: "/pingan_hklife_webapi/cms/news/list",
newsDetail: "/pingan_hklife_webapi/cms/news/get",
companyOutline: "/pingan_hklife_webapi/cms/company/outline",
productInfo: "/pingan_hklife_webapi/cms/product",
faq: "/pingan_hklife_webapi/cms/faq",
config : "/pingan_hklife_webapi/config",
config: "/pingan_hklife_webapi/config",
// 为了香港上线而增加的身份自行管理接口
doLoginV2 : "/pingan_hklife_webapi/user/loginv2",
doRegisterV2 : "/pingan_hklife_webapi/user/registerv2"
doLoginV2: "/pingan_hklife_webapi/user/loginv2",
doRegisterV2: "/pingan_hklife_webapi/user/registerv2"
}
......
......@@ -489,6 +489,8 @@ module.exports = {
menu6: "Reservation",
menu7: "Complaints",
menu8: "Useful Forms",
menu9: "eCorrespondence<br>Enquiry",
menu10: "FAQ",
},
commonForm: {
head1: "Type of Forms",
......@@ -733,12 +735,15 @@ module.exports = {
title: "Official WeChat Account"
}
},
FAQ: {
title: "FAQ",
},
eCorrespondenceEnquiry: {
PolicyNumber:"Policy Number",
TypeOfCorrespondence:"Type of Correspondence",
SentOutDate:"Sent Out Date",
DownloadLink:"Download link",
Status:"Status",
PolicyNumber: "Policy Number",
TypeOfCorrespondence: "Type of Correspondence",
SentOutDate: "Sent Out Date",
DownloadLink: "Download link",
Status: "Status",
},
customService: {
name: "Customer service",
......
......@@ -477,7 +477,7 @@ module.exports = {
iconProduct: "產品詳情"
},
customProduct: {
menu1: "聯我們",
menu1: "聯我們",
menu2: "繳付保費",
menu3: "保單查詢",
menu4: "更改保單資料",
......@@ -485,6 +485,8 @@ module.exports = {
menu6: "預約服務",
menu7: "投訴受理",
menu8: "常用表格",
menu9: "電子通知書查詢",
menu10: "常見問題",
},
commonForm: {
head1: "表格類型",
......@@ -734,9 +736,12 @@ module.exports = {
DownloadLink:"下載鏈接",
Status:"狀况",
},
FAQ:{
title:"常見問題",
},
customService: {
name: "客戶服務",
menu1: "聯我們",
menu1: "聯我們",
menu2: "繳付保費",
menu3: "保單查詢",
menu4: "更改保單資料",
......
......@@ -174,7 +174,7 @@ module.exports = {
terms: "使用条款",
protocol: "个人资料收集声明",
map: "网站地图",
contactUs: "联我们",
contactUs: "联我们",
contactInformation: "联系方式",
service: "服务网络",
qrcode: "社交媒体",
......@@ -387,7 +387,7 @@ module.exports = {
t1: "专业客服为你服务",
t2: "想了解更多,可致电",
t3: "95511",
t4: "联我们,或进入",
t4: "联我们,或进入",
}
},
},
......@@ -485,6 +485,8 @@ module.exports = {
menu6: "预约服务",
menu7: "投诉受理",
menu8: "常用表格",
menu9: "电子通知书查询",
menu10: "常见问题",
},
commonForm: {
head1: "表格类型",
......@@ -729,11 +731,14 @@ module.exports = {
}
},
eCorrespondenceEnquiry: {
PolicyNumber:"保單號碼",
TypeOfCorrespondence:"通知書類型",
SentOutDate:"發出時間",
DownloadLink:"下載鏈接",
Status:"狀况",
PolicyNumber: "保单号码",
TypeOfCorrespondence: "通知书类型",
SentOutDate: "发出时间",
DownloadLink: "下载链接",
Status: "状况",
},
FAQ: {
title: "常见问题",
},
customService: {
name: "客户服务",
......
/**
* 组件描述:过滤组件
* PC端样式为左图标右文案
* 主要用于错误提示
*/
export default {
props: {
// 是否显示组件
visible: {
type: Boolean,
default: true,
},
// 取消按钮回调方法
close: {
type: Function,
default: null
},
// 点击蒙层回调方法
overlay: {
type: Function,
default: null
},
// 传入数据
items: {
type: Array,
default: () => [
"复选框 A",
"复选框 B",
"复选框 C",
"复选框 D",
"复选框 E",
"复选框 F",
"复选框 G",
"复选框 H",
"复选框 I",
"复选框 J",
"复选框 K",
"复选框 L",
]
}
},
data() {
return {
key: 'value',
checkList: []
}
},
components: {},
computed: {
locale() {
return this.$i18n.locale || 'tc';
},
},
methods: {
// 点击关闭
onCloseHandler() {
if (this.close) {
this.close();
}
},
// 点击蒙层
onOverLayHandler() {
if (this.overlay) {
this.overlay();
}
},
toTarget() {
if (this.target) {
this.$emit("targetCallbak", this.target1);
}
},
initData() {}
},
mounted() {},
created() {},
}
@import '@/styles/_support.scss';
.comp {
position: fixed;
top: 0;
left: 0;
z-index: 5000;
width: 100%;
height: 100%;
@extend .fcc;
text-align: center;
font-size: 28px;
}
.hide {
display: none;
}
.overlay {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: rgba($color: #000000, $alpha: 0.7);
}
.border {
position: relative;
@include border-tans(20px);
}
.modal {
position: relative;
max-width: 900px;
margin: 0 auto;
&-content {
padding: 72px 60px;
max-height: 534px;
}
}
.close {
position: absolute;
right: -55px;
top: -15px;
cursor: pointer;
img {
position: relative;
width: 30px;
height: 30px;
}
}
@media (max-width: 1150px) {
.close {
right: -15px;
top: -55px;
}
}
@media (max-width: 1000px) {
.border {
width: 90%;
}
}
@media (max-width: 768px) {
.border {
width: 80%;
.modal {
.modal-content {
flex-wrap: wrap;
padding: 32px 16px;
.info-icon {
margin: 0 auto;
width: 32%;
min-width: auto;
}
.message {
margin: 16px auto 0;
font-size: 20px;
}
}
}
}
}
<template>
<div class="comp filter-comp" :class="{'hide' : !visible }">
<div @click="onOverLayHandler()" class="overlay"></div>
<div class="border">
<div class="close" @click="onCloseHandler()"><img src="@/assets/images/clarms/close.png"></div>
<div class="modal">
<div class="modal-content">
<el-checkbox-group v-model="checkList">
<el-checkbox v-for="item in items" :key="item.id" :label="item"></el-checkbox>
</el-checkbox-group>
</div>
</div>
</div>
</div>
</template>
<script src="./filter-comp.js"></script>
<style lang="scss" scoped>
@import "./filter-comp.scss";
</style>
......@@ -55,7 +55,7 @@
@media (max-width: 1200px) {
.content {
@include content-percent();
// @include content-percent();
padding-bottom: $marginMedium-M;
}
......
......@@ -30,8 +30,12 @@
</div>
<div class="t1">{{$t('customProduct.menu4')}}</div>
</div>
<div @click="toPage('/custom/service?q=m9')" class="product-item">
<div class="icon-wrap">
<img src="@/assets/images/custom-product/icon-cp-9.png">
</div>
<div v-html="$t('customProduct.menu9')" class="t1">{{$t('customProduct.menu9')}}</div>
</div>
<div class="box product">
<div @click="toPage('/custom/service?q=m5')" class="product-item">
<div class="icon-wrap">
<img src="@/assets/images/custom-product/icon-cp-5.png">
......@@ -56,6 +60,12 @@
</div>
<div class="t1">{{$t('customProduct.menu8')}}</div>
</div>
<div @click="toPage('/custom/service?q=m10')" class="product-item">
<div class="icon-wrap">
<img src="@/assets/images/custom-product/icon-cp-10.png">
</div>
<div class="t1">{{$t('customProduct.menu10')}}</div>
</div>
</div>
</div>
</div>
......
......@@ -18,7 +18,7 @@ import {
getPolicyName
} from "@/utils/biz.js";
import Modal2Comp from '@/components/modal2-comp/modal2-comp.vue';
import ModalComp from '@/components/modal-comp/modal-comp.vue';
import FilterComp from '@/components/filter-comp/filter-comp.vue';
export default {
props: {
......@@ -39,7 +39,9 @@ export default {
selectPolicyCode: "",
selectPolicyCodes: {},
hide: false,
showDownloadError: false
showDownloadError: false,
filterVisible: true,
checkList:[]
}
},
computed: {
......@@ -282,12 +284,12 @@ export default {
}
// 显示模态窗
this.showDownloadError = true;
this.filterVisible = true;
}
},
components: {
Modal2Comp,
ModalComp
FilterComp
},
mounted() {
this.queryList();
......
<template>
<div class="list-container">
<modal2-comp :visible="showDownloadError" :close="()=>{showDownloadError = false}" :content="$t('glbalTips.sysError')"></modal2-comp>
<!-- <modal-comp :visible="showDownloadError" :close="()=>{showDownloadError = false}" :content="$t('glbalTips.sysError')"></modal-comp> -->
<filter-comp v-model="checkList" :visible="filterVisible" :close="()=>{filterVisible = false}" ></filter-comp>
<div class="cell-group">
<div class="table-contaner">
<div class="table-header orange new">
......
......@@ -13,10 +13,7 @@ export default {
data() {
return {
key: 'value',
dataList: [{
q: "我可以更改平安•傳家福的身故賠償支付方式嗎?",
a: "答: 於第一保單週年日後,您可填妥<保單服務申請書>並遞交給我們申請更改身故賠償支付方式。這項表格可於我們的官網下載。",
}]
dataList: []
}
},
components: {},
......@@ -29,13 +26,58 @@ export default {
},
},
methods: {
downloadHandle(item) {
if (item.download) {
window.open(item.download);
// 折叠/收起
onMoreHandler(item) {
item.more = !item.more;
},
queryFaq() {
httpPost({
url: api.faq,
data: {
page: 1,
size: 999999
}
}).then((result) => {
console.log("result:", result);
let lang = this.$i18n.locale;
let dataList = [];
result.forEach(element => {
let item = {}
switch (lang) {
case "en":
item.q = element.questionEn;
item.a = element.answerEn;
break;
case "zh":
item.q = element.questionCn;
item.a = element.answerCn;
break;
default:
item.q = element.questionTc;
item.a = element.answerTc;
break;
}
item.more = false;
dataList.push(item)
});
this.dataList = dataList;
console.log("dataList:", dataList);
}).catch((err) => {});
},
initData() {}
initData() {
this.queryFaq();
}
},
mounted() {
this.initData();
},
mounted() {},
created() {}
created() {
this.$root.eventBus.$on("langChange", () => {
try {
this.initData();
} catch (e) {}
});
}
}
......
......@@ -21,16 +21,17 @@
@extend .bb;
padding: 40px 0 42px;
border-bottom: solid 2px #eaebeb;
cursor: pointer;
// 问题
.question {
font-weight: bold;
margin-bottom: 12px;
}
// 答案
.answer {
margin-top: 12px;
}
.answer {}
table {
width: 100%;
......
......@@ -3,118 +3,27 @@
<div class="container ">
<div class="top-space"></div>
<div class="title">
常见问题
{{$t('FAQ.title')}}
</div>
<div class="desc">
<!-- <div class="desc-item" v-for="item in dataList" :key="item.id">
<div class="question">{{ item.q }}</div>
<div class="answer">{{ item.a }}</div>
</div> -->
<div class="desc-item" v-for="item in 8" :key="item.id">
<div class="question">{{ dataList[0].q }}</div>
<div class="answer">{{ dataList[0].a }}</div>
<table >
<tr>
<th>保單周年日或保單日期</th>
<th>計算徵費率</th>
<th>徵費上限 (HKD)</th>
</tr>
<tr>
<td>2018年1月1日至2019年3月31日</td>
<td>$0.04%</td>
<td>40</td>
</tr>
<tr>
<td>2019年4月1日至2020年3月31日</td>
<td>0.06%</td>
<td>60</td>
</tr>
<tr>
<td>2020年4月1日至2021年3月31日</td>
<td>0.085%</td>
<td>80</td>
</tr>
<tr>
<td>2021年4月1日或之後</td>
<td>0.10%</td>
<td>100</td>
<div @click="onMoreHandler(items)" class="desc-item" v-for="(items) in dataList" :key="items.id">
<div class="question">{{ items.q }}</div>
<template v-if="items.more">
<template v-for="item in items.a">
<span v-if="item.type == 'text'" class="ql-editor answer" :key="item.id" v-html="item.content"></span>
<table v-if="item.type == 'table'" :key="item.id">
<tr v-for="(rows,rowIndex) in item.content" :key="rows.id">
<template v-if="rowIndex == 0">
<th v-for="gird in rows" :key="gird.id">{{gird}}</th>
</template>
<template v-else>
<td v-for="gird in rows" :key="gird.id">{{gird}}</td>
</template>
</tr>
</table>
</template>
</template>
<!-- <div class="table">
<div class="table-col">
<div class="table-col-item">
保單周年日或保單日期
</div>
<div class="table-col-item">
2018年1月1日至2019年3月31日
</div>
<div class="table-col-item">
2019年4月1日至2020年3月31日
</div>
<div class="table-col-item">
2020年4月1日至2021年3月31日
</div>
<div class="table-col-item">
2021年4月1日或之後
</div>
</div>
<div class="table-col">
<div class="table-col-item">
計算徵費率
</div>
<div class="table-col-item">
0.04%
</div>
<div class="table-col-item">
0.06%
</div>
<div class="table-col-item">
0.085
</div>
<div class="table-col-item">
0.10%
</div>
</div>
<div class="table-col">
<div class="table-col-item">
徵費上限 (HKD)
</div>
<div class="table-col-item">
40
</div>
<div class="table-col-item">
60
</div>
<div class="table-col-item">
80
</div>
<div class="table-col-item">
100
</div>
</div>
<div class="table-col">
<div class="table-col-item">
徵費上限 (HKD)
</div>
<div class="table-col-item">
40
</div>
<div class="table-col-item">
60
</div>
<div class="table-col-item">
80
</div>
<div class="table-col-item">
100
</div>
</div>
</div> -->
</div>
</div>
</div>
......
......@@ -5,3 +5,22 @@ $--color-primary: #f05a23;
$--font-path: '~element-ui/lib/theme-chalk/fonts';
@import "~element-ui/packages/theme-chalk/src/index";
@import '@/styles/_support.scss';
.filter-comp{
.el-checkbox-group {
display: flex;
flex-wrap: wrap;
.el-checkbox {
margin-bottom: 24px;
display: block;
}
.el-checkbox__label {
font-size: $fontSize-M2;
}
}
}
......