export default {
	data() {
		return {
			// 页面样式，动态设置主色调
			themeColor: '', //''--base-color:#fa5d14;--base-help-color:#ff7e00;'
			tabBarHeight: '0px'
		}
	},
	onLoad() {},
	onShow() {
		// 刷新多语言
		this.$langConfig.refresh();
		let time = setInterval(() => {
			let theme = uni.getStorageSync('theme_style');
			if (theme.main_color) {
				this.themeColorSet()
				clearInterval(time);
			}
		}, 50);
		if (this.themeColor) this.getTabbarHeight();
	},
	computed: {
		themeStyle() {
			return uni.getStorageSync('theme_style');
		},
		//插件是否存在
		addonIsExist() {
			return uni.getStorageSync('addon_is_exist');
		},
		tabBarList() {
			// return uni.getStorageSync('bottomNav');
			return this.$store.state.tabBarList;
		},
		siteInfo() {
			return uni.getStorageSync('siteInfo');
			// return this.$store.state.siteInfo;
		},
		storeToken() {
			return this.$store.state.token;
		},
		bottomNavHidden() {
			return this.$store.state.bottomNavHidden;
			// return uni.getStorageSync('bottomNavHidden');
		}
	},
	methods: {
		themeColorSet() {
			let theme = uni.getStorageSync('theme_style');
			this.themeColor =
				`--base-color:${theme.main_color};--base-help-color:${theme.aux_color};--tab-bar-height:${this.tabBarHeight};`;
			Object.keys(theme).forEach(key => {
				let data = theme[key];
				if (typeof(data) == "object") {
					Object.keys(data).forEach(k => {
						this.themeColor += '--' + k.replace(/_/g, "-") + ':' + data[k] + ';';
					});
				} else if (typeof(key) == "string" && key) {
					this.themeColor += '--' + key.replace(/_/g, "-") + ':' + data + ';';
				}
			});
			for (let i = 9; i >= 5; i--) {
				let color = this.$util.colourBlend(theme.main_color, '#ffffff', (i / 10));
				this.themeColor += `--base-color-light-${i}:${color};`;
			}
		},
		// 颜色变浅（>0）、变深函数（<0）
		lightenDarkenColor(color, amount) {

			var usePound = false;

			if (color[0] == "#") {
				color = color.slice(1);
				usePound = true;
			}

			var num = parseInt(color, 16);

			var r = (num >> 16) + amount;

			if (r > 255) r = 255;
			else if (r < 0) r = 0;

			var b = ((num >> 8) & 0x00FF) + amount;

			if (b > 255) b = 255;
			else if (b < 0) b = 0;

			var g = (num & 0x0000FF) + amount;

			if (g > 255) g = 255;
			else if (g < 0) g = 0;

			return (usePound ? "#" : "") + (g | (b << 8) | (r << 16)).toString(16);

		},
		/**
		 * 获取tabbar高度
		 */
		getTabbarHeight() {
			try {
				const query = uni.createSelectorQuery().in(this);
				query.select('#tab-bar').boundingClientRect(data => {
					if (data) {
						this.tabBarHeight = data.height + 'px'
						this.themeColorSet();
					}
				}).exec();
			} catch (e) {}
		}
	},
	filters: {
		/**
		 * 金额格式化输出
		 * @param {Object} money
		 */
		moneyFormat(money) {
			if (isNaN(parseFloat(money))) return money;
			return parseFloat(money).toFixed(2);
		}
	},
	onReady() {
		let num = 0;
		let timer = setInterval(() => {
			this.getTabbarHeight()
			num += 1;
			if (this.tabBarHeight != '0px' || num == 10) clearInterval(timer)
		}, 100)
	}
}
