<template>
	<view class="page">
		<view class="back"></view>
		<view class="wrap">
			<view class="tpcon">
				<view class="tpcell" v-for="(item, index) in menus" v-if="item.ifshow" :key="index" @click="gotoMenu(item)" >
					<image class="img" :src="item.src" mode="aspectFill"></image>
					<view class="name">{{item.name}}</view>
					<view class="tip">{{item.remark}}</view>
				</view>
			</view>
			
			<!-- <view class="info-section">
				<view class="section-header">
					<text class="section-title">托盘统计</text>
				</view>
				<view class="stats-container">
					<view class="stat-item">
						<text class="stat-number">49</text>
						<text class="stat-label">舾装公司</text>
					</view>
					<view class="stat-item">
						<text class="stat-number">1</text>
						<text class="stat-label">二工场</text>
					</view>
					<view class="stat-item">
						<text class="stat-number">83</text>
						<text class="stat-label">已到达</text>
					</view>
				</view>
			</view> -->
			
		</view>
		<u-toast ref="uToast" />
	</view>
</template>

<script>
	//#ifdef APP-PLUS
	import checkupdate from "@/uni_modules/uni-upgrade-center-app/utils/check-update.js";
	//#endif
	
	export default {
		data() {
			return { 
				// ps:配送;zy:转运;js:接收;xp:卸盘;xq:详情查询;fb:托盘分布
				menus:[ 
					// {
					// 	name:"托盘装车",
					// 	key:"zc",
					// 	src:"../../static/image/zc.png",
					// 	remark:"录入车牌号，添加托盘",
					// 	url:"",
					// 	opentype:"1",
					//  ifshow: false
					// },
					{
						name:"配送接收",
						src:"../../static/image/ps.png",
						key:"ps",
						remark:"扫码配送单二维码接收",
						url:"/pages/pallet/ps",
						opentype:"1",
						ifshow: false
					},
					{
						name:"托盘卸盘",
						key:"xp",
						src:"../../static/image/xp.png",
						remark:"填写存放位置完成卸盘",
						url:"/pages/pallet/xp",
						opentype:"1",
						ifshow: false
					},
					{
						name:"托盘转运",
						key:"zy",
						src:"../../static/image/yz.png",
						remark:"填写转运信息完成转运",
						url:"/pages/pallet/yz",
						opentype:"1",
						ifshow: false
					},
					{
						name:"托盘接收",
						key:"js",
						src:"../../static/image/js.png",
						remark:"扫码工装托盘二维码接收",
						url:"/pages/pallet/js",
						opentype:"1",
						ifshow: false
					},
					
					// {
					// 	name:"托盘回收",
					// 	src:"../../static/image/hs.png",
					// 	key:"hs",
					// 	remark:"批量扫码回收",
					// 	url:"",
					// 	opentype:"1",
					// ifshow: false
					// },
					{
						name:"扫码查询",
						src:"../../static/image/sm1.png",
						key:"xq",
						remark:"扫码查询工装托盘详情",
						url:"",
						opentype:"1",
						ifshow: false
					},
					{
						name:"托盘分布",
						key:"fb",
						src:"../../static/image/fb.png",
						remark:"查看工装托盘实时信息",
						url:"/pages/pallet/fb",
						opentype:"1",
						ifshow: false
					},
					{
						name:"托盘表查询",
						key:"xq",
						src:"../../static/image/cx.png",
						remark:"查看安装托盘表详情信息",
						url:"/pages/pallet/lbcx",
						opentype:"1",
						ifshow: false
					},
				],
				menu:[]
			}
		},
		onLoad(options) {
			// var user= JSON.parse(uni.getStorageSync("user"));
			var btn=uni.getStorageSync("menu");
			if(btn){
				this.menu=JSON.parse(btn);
			}
			// this.menu=['js']
			this.initMenu();
		},
		onShow() {
			// if (!uni.getStorageSync("token")) {
			// 	uni.showToast({
			// 		title: '登录已失效！请您重新登录！',
			// 		duration: 2000,
			// 		icon: "none"
			// 	});
			// 	setTimeout(function() {
			// 		uni.redirectTo({
			// 			url: '/pages/login/index'
			// 		});
			// 	}, 2000);
			//
			// }
			 
			 
			//#ifdef APP-PLUS
			// 版本更新
			checkupdate();
			//#endif
			 
			// yhdm	用户代码	常用于系统内数据关联
			// lxdh	联系电话	默认中间4位掩码
			// yhms	用户姓名	
			// dept	当前所在部门	存放的是部门编码
			// workshop	默认所在工场	存放的是工场
			// location	默认所在区域	存放的是位置编码
			// address	默认所在地址	
			// btns	首页按钮	list 字符串 存放首页可操作按钮
			// ps:配送;zy:转运;js:接收;xp:卸盘;xq:详情查询;fb:托盘分布
		},
		onReady() {},
		methods: {
			initMenu(){
				// 判断是否有菜单权限
				this.menus.forEach((item,index)=>{
					this.menu.forEach(cell=>{
						if(cell==item.key){
							this.menus[index].ifshow=true;
							this.$forceUpdate();
						}
					});
				});
				
				this.menus.push({
						name:"我的地址",
						key:"my",
						src:"../../static/image/my.png",
						remark:"管理常用地址信息",
						url:"/pages/me/index",
						opentype:"1",
						ifshow: true
					}
				);
			},
			// 获取菜单权限
			gotoMenu(item){
        const token= uni.getStorageSync("token");
        if(!token){
          if (window.plus) { // 确保在App环境中运行
            const main = plus.android.runtimeMainActivity(); // Android方式调用退出
            main.finish(); // Android方式调用退出
            // 或者使用iOS方式的调用方式...
          } else {
            console.log('Not in App environment.'); // 非App环境提示信息
            setTimeout(function() {
              uni.redirectTo({
                url: '/pages/login/index'
              });
            }, 2000);
          }
          return false;
        }

				if(item.name=="扫码查询"){
					
					var _that=this,rmbm="";
					// #ifdef H5
					// 扫码识别托盘明细查询
					rmbm="" //"XZG0001";
					uni.navigateTo({
						url:  `/pages/pallet/ck?rmbm=${rmbm}`
					});
					// #endif
					
					// #ifdef APP-PLUS
					// 允许从相机和相册扫码
					//qrCode,barCode
					// uni.scanCode({
					// 	scanType: ['qrCode', 'barCode'],
					// 	success: function(res) {
					// 		console.log('条码类型：' + res.scanType);
					// 		console.log('条码内容：' + res.result);
					// 		// 扫码接收添加
					// 		rmbm=res.result;
					// 		console.log(rmbm);
					// 		if(rmbm){
					// 			uni.navigateTo({
					// 				url:  `/pages/pallet/ck?rmbm=${rmbm}`
					// 			});
					// 		}
					// 		else{
					// 			_that.$refs.uToast.show({
					// 			  title: "扫码失败，请重试！",
					// 			  type: "warning",
					// 			  duration: 2000,
					// 			});
					// 		}
					// 	}
					// });
					var mpaasScanModule = uni.requireNativePlugin("Mpaas-Scan-Module");
					mpaasScanModule.mpaasScan({
					    // 扫码识别类型，参数可多选，qrCode、barCode，不设置，默认识别所有
					    'scanType':  ['qrCode','barCode'],
					    // 是否隐藏相册，默认false不隐藏
					    'hideAlbum': false,
					    //ios需要设置这个参数，只支持中英文 zh-Hans、en，默认中文                       
					    'language' : 'en',
					    //相册选择照片识别错误提示(ios)
					    'failedMsg': '未识别到二维码，请重试',
					    //Android支持全屏需要设置此参数
					    'screenType': 'full' ,
					    'timeoutInterval':'10', //设置超时时间
					    'timeoutText':'未识别到二维码？' //超时提醒文本             
					},(ret) => {
						if(ret.resp_code==1000){
							// 扫码成功
							rmbm=ret.resp_result;
							if(rmbm){
								uni.navigateTo({
									url:  `/pages/pallet/ck?rmbm=${rmbm}`
								});
							}
							else{
								_that.$refs.uToast.show({
								  title: "扫码失败，请重试！",
								  type: "warning",
								  duration: 2000,
								});
							}
						}
					})
					// #endif
					
					return false;
				}
				
				if(item.name=="我的地址"){
					uni.navigateTo({
						url: item.url
					});
				}
				
				var ifopen=false;
				// 判断是否有菜单权限
				this.menu.forEach(cell=>{
					if(cell==item.key){
						ifopen=true;
					}
				});
				
				if(!ifopen){
					this.$refs.uToast.show({
						title: '暂无菜单权限..',
						type: 'warning',
						duration: 1000
					});
					return false;
				}
				
				if(item.url){
					// :"1" // 1 navigateTo 2 redirectTo 3 switchTab
					if(item.opentype&&item.opentype=='1'){
						console.log(item.url)
						uni.navigateTo({
							url: item.url
						});
					}
					else if(item.opentype&&item.opentype=='2'){
						uni.redirectTo({
							url: item.url
						});
					}
					else if(item.opentype&&item.opentype=='3'){
						uni.switchTab({
							url: item.url
						});
					}
				}
				else{
					// console.log("暂无跳转")
					this.$refs.uToast.show({
						title: '功能开发中..',
						type: 'warning',
						duration: 1000
					});
				}
			}
			
		}
	}
</script>

<style lang="scss" scoped> 
	.tpcon{
		display: flex;
		flex-wrap: wrap;
		padding: 36rpx 30rpx;
		display: grid;
		grid-template-columns: repeat(2, 1fr);
		gap: 30rpx;
		margin-bottom: 40rpx;
	}
	.tpcell{
		flex: 0 0 50%; /* 每个项目占据25%的宽度，即一行显示4个 */
		box-sizing: border-box; /* 确保padding和border不会影响总宽度 */
		background-color: #fff;
		display: flex;
		align-items: center;
		justify-content: center;
		border-radius: 16rpx;
		padding: 30rpx 20rpx;
		box-shadow: 0 4rpx 12rpx rgba(0, 0, 0, 0.08);
		transition: transform 0.2s ease;
		flex-direction: column;
		.img{
			width: 80rpx;
			height: 80rpx;
			margin-bottom: 16rpx;
		}
		.name{
			font-size: 30rpx;
			color: #333;
			margin-bottom: 8rpx;
		}
		.tip{
			font-size: 26rpx;
			color: #999;
			text-align: center;
		}
	}
	 
	.info-section {
	background: #ffffff;
	border-radius: 16rpx;
	padding: 30rpx;
	margin: 30rpx;
	box-shadow: 0 4rpx 12rpx rgba(0, 0, 0, 0.05);
	}
	.section-header {
	margin-bottom: 25rpx;
	}
	.section-title {
	font-size: 30rpx;
	font-weight: bold;
	color: #303133;
	}
	.stats-container {
	display: flex;
	justify-content: space-around;
	}
	.stat-item {
	text-align: center;
	}
	.stat-number {
	display: block;
	font-size: 36rpx;
	font-weight: bold;
	color: #409EFF;
	margin-bottom: 8rpx;
	}
	.stat-label {
	font-size: 24rpx;
	color: #909399;
	}

	
	.u-tab-item {
		height: 150rpx;
		background: #f5f5f5;
		box-sizing: border-box;
		display: flex;
		align-items: center;
		justify-content: center;
		flex-direction: column;
		font-size: 28rpx;
		color: #000;
		font-weight: 400;
		line-height: 1;
		border-radius: 25rpx;
		box-shadow: 0 6rpx 10rpx rgba(0,0,0,0.2);
		margin-bottom: 10rpx;
	}
	.muimg{
		width: 66rpx;
		height: 66rpx;
		border-radius: 10rpx;
	}
	.mutxt{
		margin-top: 10rpx;
	}
	.u-tab-item-active {
		position: relative;
		color: #ff5a5b;
		font-size: 28rpx;
		font-weight: 600;
		background: #fff;
		border-radius: 25rpx;
	}
	
	.u-tab-item-active::before {
		content: "";
		position: absolute;
		border-left: 4px solid $u-type-primary;
		height: 32rpx;
		left: 0;
		top: 60rpx;
	}
	.page-view {
		padding: 0;
	}
	 
	.mcon{
		position: relative;
		display: flex;
		flex-direction: column;
		background-color: #FFFFFF;
		margin: 0 0 40rpx 20rpx;
		padding: 20rpx;
		border-radius: 20rpx 20rpx 20rpx 20rpx;
		box-shadow: 0 12rpx 20rpx rgba(0,0,0,0.2);
		.mheadcon{
			display: flex;
			flex-direction: row;
			width: 100%;
			.mhtitle{
				display: flex;
				flex: 1;
				font-size: 28rpx;
				font-weight: 500;
				color: #333;
				margin-left: 20rpx;
				margin-top: 10rpx;
			}
			.mhicon{
				font-weight: 400;
			}
		}
		.mlist{
			padding: 30rpx 0 0;
			background-color: #fff;
			// 设置父元素成为弹性盒
			display: flex;
			// 让弹性盒元素在必要的时候拆行
			flex-wrap: wrap;
			.mcell{
				min-height: 150rpx;
				// 每个元素都要设置右边距margin-right（每个元素的左右间隙）
				// 同时设置下边距margin-bottom（每个元素的上下间隙）
				margin: 10rpx 20rpx 20rpx 0;
				width: calc((100% - 40rpx) / 3);   
				// 这里一行显示4个，所以是/4，一行显示几个就除以几 
				// 这里的60rpx = (分布个数4-1)*间隙20rpx, 可以根据实际的分布个数和间隙区调整
				min-width: calc((100% - 40rpx) / 3);
				max-width: calc((100% - 40rpx) / 3);
				// 每行最右侧的那个不设置右外边距
				&:nth-child(3n + 3) {
					margin-right: 0;
				}
				display: flex;
				flex-direction: column;
				align-items: center;
				.mimg{
					width: 90rpx;
					height: 90rpx;
					position: relative;
					.icon{
						width: 100%;
						height: 100%;
						border-radius: 16rpx;
					}
					.topnum{
						position: absolute;
						top:-6rpx;
						right:-6rpx;
						padding: 0 7rpx;
						height: 30rpx;
						line-height: 30rpx;
						border-radius: 30rpx;
						color: #fff;
						font-size: 22rpx;
						background-color: #de0000;
					}
				}
				.mname{
					margin-top: 20rpx;
					font-size: 26rpx;
					font-weight: 500;
				}
			}
		}
	}
	.shead{
		position: relative;
		display: flex;
		flex-direction: column;
		background-color: #3690ff;
		height: 250rpx;
		width: 100%;
		margin: 0;
		padding: 40rpx 0 0 0;
		border-radius: 0 0 80rpx 80rpx;
		.stitle{
			display: flex;
			flex-direction: row;
			height: 100rpx;
			align-items: center;
			padding: 60rpx 40rpx;
			.tlogo{
				width: 70rpx;
				height: 50rpx;
				 background-color: white;
				border-radius: 6rpx;
				.tlimg{
					width: 100%;
					height: 100%;
				}
			}
			.stxt{
				margin-left: 20rpx;
				display: flex;
				flex: 1;
				font-size: 32rpx;
				font-weight: 600;
				color:#FFFFFF;
			}
		}
		.bcon{
			padding: 0 40rpx 50rpx 40rpx;
			.bimg{
				width: 100%;
				height: 200rpx;
				border-radius: 20rpx;
			}
			
		}
	}

</style>
