index.js 5.29 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
			},
			dataList: [], // 首页请求数据
			bannerList: [],
			bannerCandidateList: [],

			// 导航菜单
			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] : {};
		},
		// 表格tab缩进计算
		tableTapIndentation() {
			let result = {};
			let mar = 0; // 两边缩进
			let ind = 0; // 缩进简介
			let wid = 240;
			let dataList = this.dataList;
			let len = dataList.length;
			switch (len) {
				case 1:
					mar = 100;
					ind = 0;
					wid = 1200;
					break;

				case 2:
					mar = 60;
					ind = 120;
					wid = 600;
					break;

				case 3:
					mar = 30;
					ind = 60;
					wid = 400;
					break;

				case 4:
					mar = 20;
					ind = 40;
					wid = 300;
					break;

				case 5:
					mar = 15;
					ind = 30;
					wid = 240;
					break;

				default:
					break;
			}
			result = {
				mar,
				ind,
				wid
			};
			return result;
		},
	},
	methods: {
		// 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;
		},
		// 上一个tab
		onPrevTabHandler() {
			if (this.dataList.length <= 0) return;
			let index = this.curTab.index;
			index--;
			if (index < 0) {
				index = this.dataList.length - 1;
			}
			this.curTab = this.dataList[index];
		},
		// 下一个tab
		onNextTabHandler() {
			if (this.dataList.length <= 0) return;
			let index = this.curTab.index;
			index++;
			if (index >= this.dataList.length) {
				index = 0;
			}
			this.curTab = this.dataList[index];
		},
		// 联系我们
		toContactUs() {
			this.$router.push({
				path: "/custom/service?q=m1"
			});

		},
		/**
		 * 点击我要报价
		 * 根据当前tab跳转到不同页面
		 * “好e时”tab的情况下,点击立即报价,跳到VHIS网销平台;传家福tab情况下调到传家福产品页
		 */
		onQuoteHandler() {
			// gotoVHIS();
		},
		// queryIndexManageListApi() {

		// },
		initData() {
			// this.fetchBanner().then(res => {
			// 	this.bannerCandidateList = res;
			// 	this.refreshBanner();
			// });

			// 可以埋数据在 localStorage
			httpPost({
				url: api.indexManageListApi,
				data: {},
				sid: true
			}).then((result) => {
				this.dataList = [];
				result.forEach(element => {
					let content = JSON.parse(element.content);
					let item = {}
					switch (this.locale) {
						case "en":
							item = content.confEn;
							break;
						case "zh":
							item = content.confCn;
							break;
						default:
							item = content.confTc;
							break;
					}
					this.dataList.push(item);
				});

				// 增加一个tap
				// this.dataList.push(JSON.parse(JSON.stringify(this.dataList[0])));
				// this.dataList.push(JSON.parse(JSON.stringify(this.dataList[0])));
				// this.dataList.push(JSON.parse(JSON.stringify(this.dataList[0])));

				this.dataList.forEach((element, idx) => {
					element.index = idx;
					element.describeList = element.describe.split("\n");
				});
				this.curTab = this.dataList[0];
				this.bannerList = this.dataList;
				console.log("this.dataList:", this.dataList);
			})

		},
	},
	beforeDestroy() {},
	mounted() {
		this.initData();
	},
	created() {

		this.$root.eventBus.$on("langChange", () => {
			try {
				// this.refreshBanner();
				this.initData();
			} catch (e) {}
		});
	}
};