<script>
	import useAccountStore from "@/store/account.js";
	import {
		globalTimChatManager
	} from "@/utils/tim-chat.js";

	export default {
		onLaunch: function() {
			const {
				account,
				login,
				initIMAfterLogin,
				getDoctorInfo
			} = useAccountStore();

			if (account && account.openid) {
				console.log("App Launch: 已有登录信息，初始化 IM");
				initIMAfterLogin().catch((err) => {
					console.error("IM初始化失败:", err);
				});
				getDoctorInfo();
			} else {
				console.log("App Launch: 无登录信息，开始登录");
				login().catch((err) => {
					console.error("自动登录失败:", err);
				});
			}
		},
		onShow: function() {
			console.log("App Show");
		},
		onHide: function() {
			console.log("App Hide");
			// 小程序退出时退出腾讯IM登录
			// try {
			//   if (globalTimChatManager && globalTimChatManager.tim) {
			//     console.log('小程序退出，开始退出腾讯IM');
			//     globalTimChatManager.destroy();
			//     console.log('腾讯IM退出成功');
			//   }
			// } catch (error) {
			//   console.error('退出腾讯IM失败:', error);
			// }
		},
	};
</script>

<style lang="scss">
	$primary-color: #0877f1;

	page {
		height: 100%;
		background: #f5f5f5;
	}

	/* 全局按钮样式 - 使用项目主题色 */
	button[type="primary"],
	.button-primary,
	uni-button[type="primary"] {
		background-color: $primary-color !important;
		border-color: $primary-color !important;
		color: #fff !important;
	}

	button[type="primary"]:not([disabled]):active,
	.button-primary:active,
	uni-button[type="primary"]:not([disabled]):active {
		background-color: darken($primary-color, 10%) !important;
		border-color: darken($primary-color, 10%) !important;
	}

	/* 微信小程序按钮样式覆盖 */
	.wx-button[type="primary"] {
		background-color: $primary-color !important;
		border-color: $primary-color !important;
		color: #fff !important;
	}

	.shadow-up {
		box-shadow: rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px,
			rgba(0, 0, 0, 0.1) 0px -10px 15px -3px, rgba(0, 0, 0, 0.1) 0px -4px 6px -4px;
	}

	.shadow-lg {
		box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
	}

	.relative {
		position: relative;
	}

	.absolute {
		position: absolute;
	}

	.inline-block {
		display: inline-block;
	}

	.flex {
		display: flex;
	}

	.flex-col {
		flex-direction: column;
	}

	.flex-wrap {
		flex-wrap: wrap;
	}

	.flex-grow {
		flex-grow: 1;
	}

	.flex-shrink-0 {
		flex-shrink: 0;
	}

	.items-center {
		align-items: center;
	}

	.justify-center {
		justify-content: center;
	}

	.justify-between {
		justify-content: space-between;
	}

	.justify-around {
		justify-content: space-around;
	}

	.justify-end {
		justify-content: flex-end;
	}

	.bg-gray {
		background: #f5f5f5;
	}

	.bg-primary {
		background: $primary-color;
	}

	.bg-success {
		background: green;
	}

	.bg-white {
		background: #fff;
	}

	.bg-warning {
		background: orange;
	}

	.bg-danger {
		background: rgb(248 113 113);
	}

	.bg-light-text-color {
		position: relative;
	}

	.bg-light-text-color::after {
		content: "";
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
		opacity: 0.2;
		background: currentColor;
	}

	.py-3 {
		padding-top: 6rpx;
		padding-bottom: 6rpx;
	}

	.py-5 {
		padding-top: 10rpx;
		padding-bottom: 10rpx;
	}

	.p-15 {
		padding: 30rpx;
	}

	.p-10 {
		padding: 20rpx;
	}

	.px-5 {
		padding-left: 10rpx;
		padding-right: 10rpx;
	}

	.px-10 {
		padding-left: 20rpx;
		padding-right: 20rpx;
	}

	.px-12 {
		padding-left: 24rpx;
		padding-right: 24rpx;
	}

	.px-15 {
		padding-left: 30rpx;
		padding-right: 30rpx;
	}

	.pt-5 {
		padding-top: 10rpx;
	}

	.pt-15 {
		padding-top: 30rpx;
	}

	.break-all {
		word-break: break-all;
	}

	.pb-5 {
		padding-bottom: 10rpx;
	}

	.pb-10 {
		padding-bottom: 20rpx;
	}

	.py-10 {
		padding-top: 20rpx;
		padding-bottom: 20rpx;
	}

	.py-12 {
		padding-top: 24rpx;
		padding-bottom: 24rpx;
	}

	.py-15 {
		padding-top: 30rpx;
		padding-bottom: 30rpx;
	}

	.mr-5 {
		margin-right: 10rpx;
	}

	.mr-10 {
		margin-right: 20rpx;
	}

	.ml-15 {
		margin-left: 30rpx;
	}

	.mb-5 {
		margin-bottom: 10rpx;
	}

	.mb-10 {
		margin-bottom: 20rpx;
	}

	.mt-10 {
		margin-top: 20rpx;
	}

	.mt-15 {
		margin-top: 30rpx;
	}

	.mt-12 {
		margin-top: 24rpx;
	}

	.mx-10 {
		margin-left: 20rpx;
		margin-right: 20rpx;
	}

	.mx-auto {
		margin-left: auto;
		margin-right: auto;
	}

	.rounded {
		border-radius: 16rpx;
	}

	.rounded-sm {
		border-radius: 8rpx;
	}

	.rounded-full {
		border-radius: 999px;
	}

	.text-center {
		text-align: center;
	}

	.text-right {
		text-align: right;
	}

	.text-gray {
		color: #999;
	}

	.text-black {
		color: #000;
	}

	.text-dark {
		color: #333;
	}

	.text-danger {
		color: #f56c6c;
	}

	.text-primary {
		color: $primary-color;
	}

	.text-success {
		color: #67c23a;
	}

	.text-white {
		color: #fff;
	}

	.text-warning {
		color: #f56c6c;
	}

	.text-sm {
		font-size: 26rpx;
	}

	.text-base {
		font-size: 30rpx;
	}

	.text-lg {
		font-size: 34rpx;
	}

	.text-xl {
		font-size: 38rpx;
	}

	.leading-normal {
		line-height: 1.5;
	}

	.border {
		border: 1px solid #eee;
	}

	.border-dashed {
		border: 1px dashed #eee;
	}

	.border-b {
		border-bottom: 1px solid #eee;
	}

	.border-auto {
		border: 1px solid;
	}

	.border-dashed-auto {
		border: 1px dashed;
	}

	.border-primary {
		border: 1px solid $primary-color;
	}

	.font-semibold {
		font-weight: bold;
	}

	.truncate {
		white-space: nowrap;
		overflow: hidden;
		text-overflow: ellipsis;
	}

	.w-0 {
		width: 0;
	}

	.w-full {
		width: 100%;
	}

	.overflow-hidden {
		overflow: hidden;
	}

	.border-box {
		box-sizing: border-box;
	}

	.line-clamp-2 {
		display: -webkit-box;
		-webkit-box-orient: vertical;
		-webkit-line-clamp: 2;
		overflow: hidden;
	}

	.h-full {
		height: 100%;
	}

	.safe-bottom-padding {
		height: env(safe-area-inset-bottom);
	}
</style>