index.js 3.65 KB
/**
 * 页面描述:官网首页
 */

import api from "@/api/api";
import { httpGet, httpPost } from "@/api/fetch-api.js";

import DatePicker from "@/components/date-picker/date-picker.vue";
import { ddMMyyyy2yyyyMMdd } from "@utils/utils.js";

export default {
	data() {
		return {
			key: "value",
			// swiper
			swiperOption: {
				navigation: {
					nextEl: ".swiper-button-next",
					prevEl: ".swiper-button-prev"
				},
				pagination: {
					el: ".swiper-pagination",
					clickable: true
				},
				autoplay: {
					delay: 5000,
					stopOnLastSlide: false,
					disableOnInteraction: false
				},
				speed: 1000
			},
			bannerList: [],
			bannerCandidateList: [],

			// 导航菜单
			tabList: [
				{
					name: "平安“好e時”<br>自願醫保標準計劃",
					url: "",
					index: 0
				},
				{
					name: "「平安 ‧ 傳家福<br>分紅終身壽險計劃",
					url: "",
					index: 1
				},
				{
					name: "Ping An 'Pro Easy'<br>VHIS Standard Plan",
					url: "",
					index: 2
				},
				{
					name: "Ping An GenRich<br>Insurance Plan",
					url: "",
					index: 3
				},
				{
					name: "Ping An 'Pro Easy'<br>VHIS Standard Plan",
					url: "",
					index: 4
				}
			],
			curTab: {},

			// 投保
			quoteData: {
				gender: 1
			},
			// 投保背景图
			quoteBgUrl:"https://kdcdn.oss-cn-shenzhen.aliyuncs.com/temp/pingan-life/index-quote-bg-temp.png",

			// 表单
			formData: {
				gender: "",
				birthDate: ""
			},
			// 性别列表
			genderList: [
				{
					n: "先生",
					v: "M"
				},
				{
					n: "女士",
					v: "F"
				}
			],
			// 错误提示
			errTips:""
		};
	},
	components: {
		DatePicker
	},
	computed: {
		locale() {
			return this.$i18n.locale || "tc";
		},
		i18n() {
			return this.$i18n.messages && this.$i18n.locale
				? this.$i18n.messages[this.$i18n.locale]
				: {};
		}
	},
	methods: {
		initData() {
			this.curTab = this.tabList[0];
			this.fetchBanner().then(res => {
				this.bannerCandidateList = res;
				this.refreshBanner();
			});
		},
		fetchBanner() {
			return new Promise((resolve, reject) => {
				httpPost({
					url: api.banner
				}).then(res => {
					resolve(res);
				});
			});
		},
		refreshBanner() {
			let key = this.locale;
			if (key == "zh") {
				key = "cn";
			}
			let bannerList = [];
			this.bannerCandidateList.forEach(element => {
				bannerList.push(element[key]);
			});
			this.$set(this, "bannerList", bannerList);
		},
		btnNavigateTo(type, link) {
			switch (type) {
				case "none":
					break;
				case "news":
					this.$router.push({
						path: "/news/detail",
						query: {
							c: link
						}
					});
					break;
				case "product":
					break;
				case "vhis":
					this.$router.push({
						path: "/vhis",
						query: {
							p: link
						}
					});
					break;
				default:
					location.href = link;
					break;
			}
		},
		// 选择标签
		onTabHandler(item) {
			this.curTab = item;
		},
		// 投保组件性别选择
		onQuoteSexHandler(gender) {
			this.quoteData.gender = gender;
		},
		onPrevTabHandler() {
			if (this.tabList.length <= 0) return;
			let index = this.curTab.index;
			index--;
			if (index < 0) {
				index = this.tabList.length - 1;
			}
			this.curTab = this.tabList[index];
		},
		onNextTabHandler() {
			if (this.tabList.length <= 0) return;
			let index = this.curTab.index;
			index++;
			if (index >= this.tabList.length) {
				index = 0;
			}
			this.curTab = this.tabList[index];
		},
		toContactUs() {
			this.$router.push({
				path: "/custom/service?q=m1"
			});
		}
	},
	beforeDestroy() {},
	mounted() {
		this.initData();
	},
	created() {
		this.$root.eventBus.$on("langChange", () => {
			try {
				this.refreshBanner();
			} catch (e) {}
		});
	}
};