c3a0992d by joe

191217修改意见

1 parent 852824d7
......@@ -10,6 +10,8 @@
<script>
import Vue from 'vue'
import { mapGetters, mapActions, mapState } from "vuex";
import { getCookie } from "@utils/utils.js";
import VHeader from "@components/home/header/header.vue";
......@@ -18,6 +20,7 @@ import VFooter from "@components/home/footer/footer.vue";
import api from "@/api/api";
import { httpGet, httpPost } from "@/api/fetch-api.js";
window.eventBus = new Vue();
var UA = require("ua-device");
export default {
......
......@@ -58,7 +58,7 @@ module.exports = {
},
navList: [{
name: "Products",
path: "/empty",
path: "/product/introduction",
list: [{
name: "VHIS",
path: "",
......@@ -120,30 +120,30 @@ module.exports = {
},
{
name: "Company Events",
path: "/empty"
path: "/company/events"
}, {
name: "News Center",
path: "/news/list"
},
{
name: "Corporate Social Responsibility",
path: "/empty"
path: "/responsibility"
},
{
name: "Awards",
path: "/empty"
path: "/awards"
}]
},
{
name: "Join Us",
path: "/empty",
path: "/join/us",
list: [{
name: "Corporate Culture",
path: "/empty"
path: "/corporate/culture"
},
{
name: "Career Opportunities",
path: "/empty"
path: "/career/opportunities"
},
]
}]
......@@ -772,8 +772,8 @@ module.exports = {
},
tips: "Login with your One Connect account in order to enjoy full online service.",
or: "or",
login: " login",
register: " register",
login: " Login",
register: " Register",
baseInfoTip: "To verify account information, please ",
infoBtn: "provide",
baseInfoTail: "customer information same as your insured information."
......@@ -785,11 +785,13 @@ module.exports = {
}
},
pagination: {
firstPage: "first",
firstPage: "last",
nextPage: "next",
goto: "Go to",
per: "page",
page: ""
page: "",
total : "total",
unit : "news"
},
newsDetail: {
back: "Back",
......
......@@ -59,7 +59,7 @@ module.exports = {
navList: [
{
name: "產品介紹",
path: "/empty",
path: "/product/introduction",
list: [{
name: "自願醫保計劃",
path: "",
......@@ -121,30 +121,30 @@ module.exports = {
},
{
name: "公司活動",
path: "/empty"
path: "/company/events"
}, {
name: "新聞中心",
path: "/news/list"
},
{
name: "企業社會責任",
path: "/empty"
path: "/responsibility"
},
{
name: "獎項殊榮",
path: "/empty"
path: "/awards"
}]
},
{
name: "加入我們",
path: "/empty",
path: "/join/us",
list: [{
name: "企業文化",
path: "/empty"
path: "/corporate/culture"
},
{
name: "事業發展機會",
path: "/empty"
path: "/career/opportunities"
},
]
}
......@@ -784,11 +784,13 @@ module.exports = {
}
},
pagination: {
firstPage: "一頁",
firstPage: "一頁",
nextPage: "下一頁",
goto: "跳轉",
per: "第",
page: "頁"
page: "頁",
total : "共",
unit : "條"
},
newsDetail: {
back: "回到列表頁",
......
module.exports = {
message: {
login: '登',
login: '登',
Username: '用户名',
Password: '密码',
Captcha: '验证码',
......@@ -9,7 +9,7 @@ module.exports = {
en: '英文'
},
glbalTips: {
sessionLost: "为了更好的体验,需要您登后再进行此操作"
sessionLost: "为了更好的体验,需要您登后再进行此操作"
},
form: {
datePicker: {
......@@ -23,7 +23,7 @@ module.exports = {
},
nav: {
loginData: {
name: "登",
name: "登",
path: "/login",
list: [{
name: "注册",
......@@ -31,7 +31,7 @@ module.exports = {
type: "noAuth",
value: ""
}, {
name: "登",
name: "登",
path: "",
type: "noAuth",
value: "login"
......@@ -58,9 +58,9 @@ module.exports = {
},
navList: [{
name: "产品介绍",
path: "/empty",
path: "/product/introduction",
list: [{
name: "自愿医保基本计划",
name: "自愿医保计划",
path: "",
value: "gotoVHIS"
},
......@@ -119,31 +119,31 @@ module.exports = {
},
{
name: "公司活动",
path: "/empty"
path: "/company/events"
}, {
name: "新闻中心",
path: "/news/list"
},
{
name: "企业社会责任",
path: "/empty"
path: "/responsibility"
},
{
name: "奖项殊荣",
path: "/empty"
path: "/awards"
}
]
},
{
name: "加入我们",
path: "/empty",
path: "/join/us",
list: [{
name: "企业文化",
path: "/empty"
path: "/corporate/culture"
},
{
name: "事业发展机会",
path: "/empty"
path: "/career/opportunities"
},
]
}
......@@ -169,12 +169,12 @@ module.exports = {
},
login: {
title: "平安一账通",
loginType1: "账密登",
loginType2: "动态密码登",
loginType1: "账密登",
loginType2: "动态密码登",
account: "账号",
accountPlaceholder: "请输入证件号/一账通用户名/手机号",
password: "密码",
passwordPlaceholder: "输入登密码",
passwordPlaceholder: "输入登密码",
verifyPlaceholder: "请输入验证码",
agree: "同意",
protocol: "《平安一账通会员服务协议》",
......@@ -200,7 +200,7 @@ module.exports = {
}
},
session: {
sidExpire: "长时间未操作,为了您的账户安全,请登后再操作",
sidExpire: "长时间未操作,为了您的账户安全,请登后再操作",
},
register: {
mobileOptions: [{
......@@ -233,7 +233,7 @@ module.exports = {
e2: "请同意《平安一账通会员服务协议》",
e3: "短信验证码不正确",
e4: "请先获取短信验证码",
e5: "手机号已经被注册,请使用其他手机号注册或直接登",
e5: "手机号已经被注册,请使用其他手机号注册或直接登",
e6: "请输入图片验证码",
e7: "密码长度不能少于8位",
e8: "密码必须同时包含数字、字母、特殊字符",
......@@ -772,7 +772,7 @@ module.exports = {
tips: "如您有平安一账通账户,可帮助我们更好地为您提供服务",
or: "或",
login: "登",
login: "登",
register: "注册",
baseInfoTip: "您尚未验证客户资料,请",
infoBtn: "填写",
......@@ -789,7 +789,9 @@ module.exports = {
nextPage: "下一页",
goto: "跳转",
per: "第",
page: "页"
page: "页",
total : "共",
unit : "条"
},
newsDetail: {
back: "回到列表页",
......
......@@ -96,6 +96,7 @@ export default {
// }
let item = curData;
let path = item && item.path || "";
eventBus.$emit(item.path);
if (path) {
this.$router.push({
path: path
......@@ -119,6 +120,7 @@ export default {
}
},
onLoginHandler() {
eventBus.$emit("login");
if (this.$route.name == "login") {
return;
} else if (this.$route.name == "register" || this.$route.name == "passwordFind") {
......
......@@ -24,19 +24,19 @@
<div @click="toPage('profile')" class="n-item">{{$t('footer.aboutUs')}}</div>
<div @click="toPage('profile')" class="n-item">{{$t('footer.companyIntroduction')}}</div>
<div @click="toPage('newsList')" class="n-item">{{$t('footer.news')}}</div>
<div @click="toPage('empty')" class="n-item">{{$t('footer.joinUs')}}</div>
<div @click="toPage('joinUs')" class="n-item">{{$t('footer.joinUs')}}</div>
</div>
<div class="nav-v">
<div @click="toPage('empty')" class="n-item">{{$t('footer.helpCenter')}}</div>
<div @click="toPage('help')" class="n-item">{{$t('footer.helpCenter')}}</div>
<div @click="toPage('privacy')" class="n-item">{{$t('footer.privacy')}}</div>
<div @click="toPage('terms')" class="n-item">{{$t('footer.terms')}}</div>
<div @click="toPage('personalDataCollection')" class="n-item">{{$t('footer.protocol')}}</div>
</div>
<div class="nav-v">
<div @click="toPath('/custom/service?q=m1')" class="n-item">{{$t('footer.contactUs')}}</div>
<div @click="toPage('empty')" class="n-item">{{$t('footer.contactInformation')}}</div>
<div @click="toPage('empty')" class="n-item">{{$t('footer.service')}}</div>
<div @click="toPage('empty')" class="n-item">{{$t('footer.map')}}</div>
<div @click="toPage('contactMethod')" class="n-item">{{$t('footer.contactInformation')}}</div>
<div @click="toPage('serviceNet')" class="n-item">{{$t('footer.service')}}</div>
<div @click="toPage('map')" class="n-item">{{$t('footer.map')}}</div>
</div>
</div>
......
......@@ -2,7 +2,7 @@
<template>
<div class="comp">
<div class="pagination gird-g">
<div><span class="t1">{{totalItem}}</span></div>
<div>{{$t('pagination.total')}}<span class="t1">{{totalItem}}</span>{{$t('pagination.unit')}}</div>
<div class="pagination-item">
<span class="pointer" :class="{'pagination-disabled' : cur == 1}">
<a @click="prevPage()">{{$t('pagination.firstPage')}}</a>
......
<template>
<div class="content">
</div>
</template>
<style lang="scss" scoped>
.content {
height: 500px;
}
</style>
<script>
export default {};
</script>
\ No newline at end of file
<template>
<div class="content">
</div>
</template>
<style lang="scss" scoped>
.content {
height: 500px;
}
</style>
<script>
export default {};
</script>
\ No newline at end of file
<template>
<div class="content">
</div>
</template>
<style lang="scss" scoped>
.content {
height: 500px;
}
</style>
<script>
export default {};
</script>
\ No newline at end of file
<template>
<div class="content">
</div>
</template>
<style lang="scss" scoped>
.content {
height: 500px;
}
</style>
<script>
export default {};
</script>
\ No newline at end of file
......@@ -85,6 +85,6 @@ export default {
Auth,
PolicyHeadList
},
mounted() {
mounted: {
},
}
......
......@@ -5,6 +5,7 @@ import {
} from '@/api/fetch-api.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';
......@@ -181,6 +182,14 @@ export default {
},
userLogin(data) {
this.showForm = true;
},
initTitle() {
try {
let title = this.i18n.customService.menu42;
setTitle(title);
} catch (e) {
console.error(e);
}
}
},
watch: {
......@@ -195,5 +204,6 @@ export default {
}
},
mounted() {
this.initTitle();
}
}
......
import api from '@/api/api'
import {
httpGet,
httpPost
} from '@/api/fetch-api.js'
import { setTitle } from '@/utils/utils.js';
import PolicyHeadList from "./policy-head-list.vue";
import Auth from '@components/auth/auth.vue';
......@@ -49,8 +46,18 @@ export default {
},
userLogin(data) {
this.showForm = true;
}
},
initTitle() {
try {
let title = this.i18n.customService.menu41;
setTitle(title);
} catch (e) {
}
}
},
mounted() {
this.initTitle();
},
mounted() {},
created() {}
}
......
......@@ -4,6 +4,9 @@ import {
httpPost
} from '@/api/fetch-api.js'
import { getNationsList, getMarryList, getPolicyIdTypeList } from '@/utils/biz.js';
import { setTitle } from '@/utils/utils.js';
import Auth from '@components/auth/auth.vue';
import PolicyHeadList from "./policy-head-list.vue";
import DatePicker from '@/components/date-picker/date-picker.vue'
......@@ -36,6 +39,7 @@ export default {
targetPath: "",
modalIcon: "succ",
modalContent: "",
showIdNumber: false,
}
},
components: {
......@@ -60,9 +64,18 @@ export default {
let i18n = this.$i18n.messages[this.$i18n.locale];
return i18n.infomationImprove.candidates.idType;
},
nationList() {
return getNationsList();
},
marryList() {
return getMarryList();
},
policyIdTypeList() {
return getPolicyIdTypeList();
}
},
methods: {
showModal(content, icon) {
icon = !icon || typeof icon === "undefined" ? "succ" : icon;
this.modalIcon = icon;
......@@ -94,6 +107,10 @@ export default {
this.loading = false;
if (res) {
this.policy = res;
this.policy.clientBirthday = this.policy.clientBirthday ? this.policy.clientBirthday.split(" ")[0] : "";
this.policy.insuredBirthday = this.policy.insuredBirthday ? this.policy.insuredBirthday.split(" ")[0] : "";
let clientName = res.clientNameCn ? res.clientNameCn : res.clientNameEn;
let insuredName = res.insuredNameCn ? res.insuredNameCn : res.insuredNameEn;
this.policy.clientName = clientName;
......@@ -261,10 +278,19 @@ export default {
},
userLogin(data) {
this.showForm = true;
},
initTitle() {
try {
let title = this.i18n.customService.menu43;
setTitle(title);
} catch (e) {
}
}
},
mounted() {
this.isOwner = this.$route.query.u == 2 ? false : true;
this.initTitle();
},
created() { }
}
......
......@@ -81,9 +81,7 @@
<div class="ipt-wrap">
<div class="down-arrow"></div>
<select class="ipt" v-model="data.idType">
<template v-if="idTypeCandidates">
<option v-for="(item,index) in idTypeCandidates" :key="index" :value="item.value">{{item.name}}</option>
</template>
<option v-for="(item,index) in policyIdTypeList" :key="index" :value="item.v">{{item.n}}</option>
</select>
</div>
</div>
......@@ -94,7 +92,7 @@
<div class="icon"><img src="@/assets/images/policy-change-information/icon-pci-card.png"></div> {{$t('policyChangeInformation.NO')}}
</div>
<div class="ipt-wrap">
<div class="eye"></div>
<!-- <div class="eye"></div> -->
<!-- -->
<!-- <div class="eye eye-act"></div> -->
<input class="ipt" type="text" v-model="data.idNumber">
......@@ -107,7 +105,8 @@
<div class="icon"><img src="@/assets/images/policy-change-information/icon-pci-card.png"></div> {{$t('policyChangeInformation.validityPeriod')}}
</div>
<div class="ipt-wrap">
<date-picker class="date" v-model="data.idExpireAt" :filtModel="['history', 'today']"></date-picker>
<!-- <date-picker class="date" v-model="data.idExpireAt" :filtModel="['history', 'today']"></date-picker> -->
<input disabled class="ipt disable" type="text" value="-">
</div>
</div>
......@@ -117,7 +116,12 @@
<div class="icon"><img src="@/assets/images/policy-change-information/icon-pci-earth.png"></div> {{$t('policyChangeInformation.nationality')}}
</div>
<div class="ipt-wrap">
<input class="ipt" type="text" v-model="data.nature">
<!-- <input class="ipt" type="text" v-model="data.nature"> -->
<div class="down-arrow"></div>
<select class="ipt" v-model="data.nature">
<option v-for="(item,index) in nationList" :key="index" :value="item.v">{{item.n}}</option>
</select>
</div>
</div>
......@@ -137,7 +141,12 @@
<div class="icon"><img src="@/assets/images/policy-change-information/icon-pci-love.png"></div> {{$t('policyChangeInformation.maritalStatus')}}
</div>
<div class="ipt-wrap">
<input class="ipt" type="text" v-model="data.marriage">
<div class="down-arrow"></div>
<!-- <input class="ipt" type="text" v-model="data.marriage"> -->
<select class="ipt" v-model="data.marriage">
<option v-for="(item,index) in marryList" :key="index" :value="item.v">{{item.n}}</option>
</select>
</div>
</div>
......
<template>
<div class="content">
</div>
</template>
<style lang="scss" scoped>
.content {
height: 500px;
}
</style>
<script>
export default {};
</script>
\ No newline at end of file
......@@ -176,12 +176,11 @@ export default {
if (key == "zh") {
key = "cn";
}
let newList = [];
let bannerList = [];
this.bannerCandidateList.forEach(element => {
newList.push(element[key]);
bannerList.push(element[key]);
});
console.log(newList);
this.$set(this, 'bannerList', newList);
this.$set(this, 'bannerList', bannerList);
},
btnNavigateTo(type, link) {
location.href = link;
......
<template>
<div class="content">
</div>
</template>
<style lang="scss" scoped>
.content {
height: 500px;
}
</style>
<script>
export default {};
</script>
\ No newline at end of file
......@@ -30,7 +30,7 @@ export default {
return {
loading: false,
key: 'value',
type: 1, // 1:帐密登陆 2:OTP登陆,
type: 1, // 1:帐密登陆 2:OTP登陆 3:OTP注册密码,
values: {
// 返回的token,串连整个流程,后台安全校验使用
token: "",
......@@ -48,14 +48,14 @@ export default {
tip: "" // 显示的文字
},
loginForm: {
userId: "",
password: "",
// userId: "18334783910",
// password: "qweqwe123",
// userId: "18145729463",
// password: "ccc123!@#",
// userId: "15927024254",
// password: "a1234567@",
userId: "",
password: "",
imageValue: "",
mobileNo: "",
......@@ -571,8 +571,13 @@ export default {
},
mounted() {
this.initData();
// console.log("PK === ", this.PK)
// console.log("E === ", this.E)
},
created() { }
created() {
eventBus.$on("login", () => {
this.type = 1;
});
}
}
......
......@@ -38,6 +38,16 @@
@extend .box-shadow;
background-color: #ffffff;
&-tit2 {
color: $cOrange;
text-align: center;
font-size: $fontSizeTitle;
font-weight: bold;
letter-spacing: .2rem;
text-shadow: 3px 5.2px 9px rgba(236, 100, 41, 0.27);
margin-top: 2rem;
}
&-tit {
color: $cOrange;
text-align: center;
......@@ -244,6 +254,17 @@
padding: 2rem 1rem 3.5rem;
border-bottom: none;
&-tit2 {
color: $cOrange;
text-align: center;
font-size: $fontSizeTitle;
font-weight: bold;
letter-spacing: .2rem;
text-shadow: 3px 5.2px 9px rgba(236, 100, 41, 0.27);
margin-top: 2rem;
}
&-nav {
margin: 1.75rem auto 1rem;
}
......
......@@ -138,11 +138,13 @@
<!---->
<div v-if="type == 3" class="login">
<div class="login-tit">
<!-- <div class="login-tit">
<img v-if="locale == 'zh'" src="@/assets/images/login/login-tit-zh.png">
<img v-if="locale == 'tc'" src="@/assets/images/login/login-tit-tc.png">
<img v-if="locale == 'en'" class="img-en" src="@/assets/images/login/login-tit-en.png">
</div>
</div> -->
<div class="login-tit2">{{$t('register.title2')}}</div>
<div class="gird-g form">
<div class="pure-u-1 form-item">
<div class="label">
......
<template>
<div class="content">
</div>
</template>
<style lang="scss" scoped>
.content {
height: 500px;
}
</style>
<script>
export default {};
</script>
\ No newline at end of file
......@@ -20,7 +20,9 @@ export default {
page: 1,
size: 10
},
total: 0,
totalPage: 0,
totalItem : 0,
news: []
}
},
......@@ -53,15 +55,15 @@ export default {
this.queryForm.page = page;
this.$nextTick(()=>{
this.$refs.pagination.selPage(page);
});
});
httpGet({ url: api.newsList, data: this.queryForm }).then(res => {
let newsList = res.list;
newsList.forEach(element => {
element.dateFormat = getDateYMD(element.createAt);
});
this.$set(this, 'news', newsList);
this.total = Math.ceil(res.total / this.queryForm.size);
this.totalPage = Math.ceil(res.total / this.queryForm.size);
this.totalItem = res.total;
});
}
},
......
......@@ -15,7 +15,7 @@
<div class="news-item-date">{{item.dateFormat}}</div>
</div>
</div>
<pagination ref="pagination" @selpage="selPage" :total="total" class="pagination"></pagination>
<pagination ref="pagination" @selpage="selPage" :total="totalPage" :totalItem="totalItem" class="pagination"></pagination>
</div>
</div>
</div>
......
......@@ -274,7 +274,7 @@ export default {
case "COMMON_ERROR_E2":
// 身份过期了,请重新登录
this.values.cid = "";
this.showModal(this.i18n().passwordReset.cidExpire, "info");
// this.showModal(this.i18n().passwordReset.cidExpire, "info");
this.step2.idNo = "";
this.step3.otp = "";
this.step3.error = "";
......
<template>
<div class="content">
</div>
</template>
<style lang="scss" scoped>
.content {
height: 500px;
}
</style>
<script>
export default {};
</script>
\ No newline at end of file
......@@ -335,6 +335,9 @@ export default {
_showCheckOTPErrTip(msg) {
// this.showModal(msg, "info");
// let message = this.i18n.register.tips.e5;
if (msg == "非法操作") {
this._showOTPTip();
}
this.errorTips.p2 = msg;
// alert(msg);
......@@ -514,5 +517,8 @@ export default {
},
created() {
this.initData();
eventBus.$on("/register", () => {
this.type = 1;
});
}
}
......
<template>
<div class="content">
</div>
</template>
<style lang="scss" scoped>
.content {
height: 500px;
}
</style>
<script>
export default {};
</script>
\ No newline at end of file
<template>
<div class="content">
</div>
</template>
<style lang="scss" scoped>
.content {
height: 500px;
}
</style>
<script>
export default {};
</script>
\ No newline at end of file
......@@ -132,6 +132,15 @@ const routes = [
},
{
path: '/product/introduction',
name: 'productIntroduction',
component: () => import('./pages/product-introduction/product-introduction.vue'),
meta: {
title: '平安人寿香港'
}
},
{
path: '/product',
name: 'product',
component: () => import('./pages/product/product.vue'),
......@@ -173,6 +182,86 @@ const routes = [
}
},
{
path: '/company/events',
name: 'companyEvents',
component: () => import('./pages/company-events/company-events.vue'),
meta: {
title: '平安人寿香港'
}
},
{
path: '/responsibility',
name: 'responsibility',
component: () => import('./pages/responsibility/responsibility.vue'),
meta: {
title: '平安人寿香港'
}
},
{
path: '/awards',
name: 'awards',
component: () => import('./pages/awards/awards.vue'),
meta: {
title: '平安人寿香港'
}
},
{
path: '/join/us',
name: 'joinUs',
component: () => import('./pages/join-us/join-us.vue'),
meta: {
title: '平安人寿香港'
}
},
{
path: '/corporate/culture',
name: 'corporateCulture',
component: () => import('./pages/corporate-culture/corporate-culture.vue'),
meta: {
title: '平安人寿香港'
}
},
{
path: '/career/opportunities',
name: 'careerOpportunities',
component: () => import('./pages/career-opportunities/career-opportunities.vue'),
meta: {
title: '平安人寿香港'
}
},
{
path: '/help',
name: 'help',
component: () => import('./pages/help/help.vue'),
meta: {
title: '帮助中心'
}
},
{
path: '/contact/method',
name: 'contactMethod',
component: () => import('./pages/contact-method/contact-method.vue'),
meta: {
title: '联系方式'
}
},
{
path: '/service/net',
name: 'serviceNet',
component: () => import('./pages/service-net/service-net.vue'),
meta: {
title: '服务网络'
}
},
{
path: '/map',
name: 'map',
component: () => import('./pages/map/map.vue'),
meta: {
title: '网站地图'
}
},
{
path: '/empty',
name: 'empty',
component: () => import('./pages/empty/empty.vue'),
......@@ -223,16 +312,14 @@ router.beforeEach((to, from, next) => {
// lang对象为当前语言配置 见 en.js,tc.js,zh.js
let title = "";
lang.nav.navList.forEach(e1 => {
if (e1.list && e1.list.length > 0) {
if (e1.path == to.fullPath) {
title = e1.name;
} else if (e1.list && e1.list.length > 0) {
e1.list.forEach(e2 => {
if(e2.path == to.fullPath){
if (e2.path == to.fullPath) {
title = e2.name;
}
});
} else {
if(e1.path == to.fullPath){
title = e1.name;
}
}
});
// to参数可以获取要前往页面的信息,包括参数
......