<template>
	<div></div>
</template>

<script>
export default {
	data() {
		return {
			tabVisible: {
				admin:   [true,  true,  true,  false, true,  true],
				canteen: [false, false, false, true,  false, true],
				worker:  [false, true,  true,  false, true,  true]
			},
			hasJumped: false, // 防止重复跳转的标记
		}
	},
	onShow() {
		// 已跳转过则不再执行逻辑
		if (this.hasJumped) return;

		// 检查用户角色
		this.$store.dispatch('GetInfo')
			.then(res => {
				// 验证返回数据格式
				if (!res || !res.data || !Array.isArray(res.data.roles)) {
					throw new Error('用户角色信息格式错误');
				}
				
				console.log('用户角色信息', res.data.roles)

				const roles = res.data.roles;
				
				if (roles.includes('admin')) {
					for (let i = 0; i < this.tabVisible.admin.length; i++) {
						const v = this.tabVisible.admin[i]
						uni.setTabBarItem({
							index: i,
							visible: v
						});
					} 
					// 管理员角色跳转
					uni.switchTab({
						url: '/pages/line/line',
						success: () => {
							this.hasJumped = true; // 标记已跳转
						},
						fail: (err) => {
							console.error('管理员页面跳转失败:', err);
							uni.showToast({
								title: '跳转产线页面失败',
								icon: 'none',
								duration: 2000
							});
						}
					});
				} else if (roles.includes('canteen')) {
					for (let i = 0; i < this.tabVisible.canteen.length; i++) {
						const v = this.tabVisible.canteen[i]
						uni.setTabBarItem({
							index: i,
							visible: v
						});
					} 
					// 食堂角色跳转
					uni.switchTab({
						url: '/pages/meal/meal',
						success: () => {
							this.hasJumped = true; // 标记已跳转
						},
						fail: (err) => {
							console.error('管理员页面跳转失败:', err);
							uni.showToast({
								title: '跳转产线页面失败',
								icon: 'none',
								duration: 2000
							});
						}
					});
				} else if (roles.includes('worker')) {
					// 工人角色跳转
					// 设置tab内容
					// 设置产线和复杂扫码不可见
					for (let i = 0; i < this.tabVisible.worker.length; i++) {
						const v = this.tabVisible.worker[i]
						uni.setTabBarItem({
							index: i,
							visible: v
						});
					} 
					uni.switchTab({
						url: '/pages/easycode/easycode',
						success: () => {
							this.hasJumped = true; // 标记已跳转
						},
						fail: (err) => {
							console.error('工人页面跳转失败:', err);
							uni.showToast({
								title: '跳转扫码页面失败',
								icon: 'none',
								duration: 2000
							});
						}
					});
				} else {
					for (let i = 0; i < this.tabVisible.worker.length; i++) {
						const v = this.tabVisible.worker[i]
						uni.setTabBarItem({
							index: i,
							visible: v
						});
					} 
					// 延迟跳转，确保提示被用户看到
					setTimeout(() => {
						uni.switchTab({
							url: '/pages/easycode/easycode',
							success: () => {
								this.hasJumped = true;
							},
							fail: (err) => {
								console.error('默认角色页面跳转失败:', err);
								uni.showToast({
									title: '跳转默认页面失败',
									icon: 'none',
									duration: 2000
								});
							}
						});
					}, 2000);
				}
			})
			.catch(err => {
				uni.reLaunch({
					url: '/pages/login'
				})
			});
	}
}
</script>

<style scoped lang="scss">
/* 样式保持不变 */
.production-page {
	min-height: 100vh;
	background: #f6f6f6;
}

.page-header {
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 40rpx 30rpx 20rpx;
	background: #fff;
	border-bottom: 1rpx solid #e8e8e8;
	
	.header-title {
		font-size: 28rpx;
		font-weight: 500;
		color: #333;
		letter-spacing: 2rpx;
		padding: 0 30rpx;
	}
	
	.header-line {
		height: 2rpx;
		background: linear-gradient(90deg, transparent, #ddd, transparent);
		flex: 1;
		max-width: 100rpx;
		
		&.line-left {
			background: linear-gradient(90deg, transparent, #ddd);
		}
		
		&.line-right {
			background: linear-gradient(90deg, #ddd, transparent);
		}
	}
}

.line-header {
	background: #fff;
}

.content-wrapper {
	padding: 0;
}
</style>