<script>
	import store from '@/store'
	import storage from '@/utils/storage'
	import {
		ACCESS_TOKEN,
		USER_ID,
		USER_INFO
	} from '@/store/mutation-types'
	import {
		getSceneData
	} from './core/app'
	import {
		apiUrl,
		tenantId,
		appId,
		appSecret,
		fileUrl,
		accessKey,
		userId
	} from '@/config.js';
	import * as RedisApi from '@/api/redis-util.js'
	import http from './api'

	export default {
		/**
		 * 全局变量
		 */
		globalData: {

		},

		/**
		 * 初始化完成时触发
		 */
		async onLaunch({
			path,
			query,
			scene
		}) {
			await this.init(path, query)
		},
		onShow() {},
		methods: {
			// 程序初始化
			async init(path, query) {
				console.log("程序初始化:>>>> ");
				const app = this
				// 1. 登录获取token
				const token = storage.get(ACCESS_TOKEN)
				// 2. 连接聊天服务器
				if (token) {
					store.dispatch('GetUserInfo')
					// store.dispatch('ConnectSocket', {
					// 	userId: store.getters.userId,
					// 	token
					// })
				}
				// 3. 获取配置信息
				RedisApi.getConfig().then(res => {
					console.log("res: ",res);
				})
				console.log("初始化结束:>>>> ");
			},
			// app启动参数
			onStartupQuery(query) {
				console.log("query=========: ",query);
				// 获取二维码场景值
				const scene = getSceneData(query)
				// 记录推荐人ID
				const refereeId = query.refereeId ? query.refereeId : scene.uid
				refereeId > 0 && (this.saveRefereeId(refereeId))
			},

			// 记录推荐人ID
			saveRefereeId(refereeId) {
				store.dispatch('SaveRefereeId', refereeId)
			},

			// 小程序主动更新
			updateManager() {
				const updateManager = uni.getUpdateManager()
				updateManager.onCheckForUpdate(res => {
					// 请求完新版本信息的回调
					// console.log(res.hasUpdate)
				})
				updateManager.onUpdateReady(() => {
					uni.showModal({
						title: '更新提示',
						content: '新版本已经准备好，即将重启应用',
						showCancel: false,
						success(res) {
							if (res.confirm) {
								// 新的版本已经下载好，调用 applyUpdate 应用新版本并重启
								updateManager.applyUpdate()
							}
						}
					})
				})
				updateManager.onUpdateFailed(() => {
					// 新的版本下载失败
					uni.showModal({
						title: '更新提示',
						content: '新版本下载失败',
						showCancel: false
					})
				})
			}

		}

	}
</script>

<style lang="scss">
	/* 注意要写在第一行，同时给style标签加入lang="scss"属性 */
	@import "@/uni_modules/uview-ui/index.scss";
	/* iconfont图标库 */
	@import "/utils/iconfont.scss";
	/* 项目基础样式 */
	@import "./app.scss";
</style>
