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


import api from '@/api/api';
import {
	httpGet,
	httpPost
} from '@/api/fetch-api.js';
import {
	mapGetters,
	mapActions,
	mapState
} from "vuex";
var UA = require("ua-device");

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: "",
				id: 0,
			}, {
				name: "「平安 ‧ 傳家福<br>分紅終身壽險計劃",
				url: "",
				id: 1,
			}, {
				name: "Ping An 'Pro Easy'<br>VHIS Standard Plan",
				url: "",
				id: 2,
			}, {
				name: "Ping An GenRich<br>Insurance Plan",
				url: "",
				id: 3,
			}, {
				name: "Ping An 'Pro Easy'<br>VHIS Standard Plan",
				url: "",
				id: 4,
			}],
			curTab: {}
		}
	},
	components: {},
	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;
		}
	},
	beforeDestroy() {},
	mounted() {
		this.initData();
	},
	created() {
		this.$root.eventBus.$on("langChange", () => {
			try {
				this.refreshBanner();
			} catch (e) {}
		});
	}

}