<template>
	<view class="pages">
		<u-navbar title="添加班级"
				  :border-bottom="false"
				  :background="bgc"
				  title-color='#2E4975'
				  title-size='36'
				  height='36'></u-navbar>
		<view class="serchbox">
			<view class="serchimg">
				<image src="https://file.langsi.online/yasiimg/web/static/uVMACkynkipOxuTYDqm0">

				</image>
			</view>
			<input type="text"
				   v-model="searchKeyword"
				   placeholder="搜索相关内容..."
				   class="input"
				   placeholder-style="color:#C7CDD3"
				   @input="search()">
		</view>
		<view class="teacher_card_box"   >
			<view class="teacher_card"  v-for="(item, index) in classlist"  v-if="isloding == false"  :key="index"  @click="toggleSelection(item)"  :class="{ 'act1': item.isSelected }">
				<view class="class_card_left">
						<image src=" https://file.langsi.online/yasiimg/web/static/udWNTRG6GulmTtgPRQ49"></image>
					</view>
					<view class="class_card_right">
						<view class="class_card_right_top"  v-html="highlightSearch(item.name)">
							
						</view>
						<view class="class_card_right_bot">
							共{{item.totalMembers}}人
						</view>
					</view>
			</view>
			
		</view>
		<view class="zhanwei" style="width: 100%; height: 230rpx;">
			
		</view>
		<view class="botbtn" v-if="selectclass.length>0">
			<view class="btn" @click="addclassinfo()">
				确定添加（{{selectclass.length}}）
			</view>
		</view>
	</view>
</template>

<script>
export default {
	data() {
		return {
			bgc: {
				backgroundColor: "#transparent",
			},
			showpage:1,
			classlist:{},
			changeclasslist:{},
			isloding:true,
			 selectclass: [],
			 searchKeyword:''
			
		}
	},
	onLoad(option) {
		this.selectclass=JSON.parse(decodeURIComponent(option.classinfo))
	},
	onShow() {
		this.getclassList()
	},
	methods: {
		addclassinfo(){
			  uni.setStorageSync('selectedClassInfo', this.selectclass);
			
			  // Navigate back to the previous page
			  uni.navigateBack({
			    delta: 1, // Number of pages to go back
			    success(res) {
			      console.log(res);
			    },
			    fail(err) {
			      console.error(err);
			    }
			  });
		},
		toggleSelection(item) {
		  const selectedIndex = this.selectclass.findIndex(selectedItem => selectedItem.id === item.id);
		
		  if (selectedIndex === -1) {
		    // If not selected, add to the array and apply the 'act1' class
		    this.selectclass.push({ name: item.name, avatar: item.avatar, id: item.id });
			 item.isSelected = true;
		  } else {
			   item.isSelected = false;
		    // If already selected, remove from the array and remove the 'act1' class
		    this.selectclass.splice(selectedIndex, 1);
		  }
		  console.log(this.selectclass, 'this.selectclass');
		},
		isSelectedClass(item) {
		  return this.selectclass.some(selectedItem => selectedItem.id === item.id);
		},
		search() {
		 // 根据关键字过滤 this.classlist
		 if(this.searchKeyword!=''){
			const filteredList = JSON.parse(JSON.stringify(this.changeclasslist)).filter(item => item.name.includes(this.searchKeyword));
		  // 更新 this.classlist 为过滤后的列表
		  this.classlist = filteredList;
		  this.selectclass.forEach(selectedItem => {
		     const index = this.classlist.findIndex(item => item.id === selectedItem.id);
		     if (index !== -1) {
		       this.$set(this.classlist, index, { ...this.classlist[index], isSelected: true });
		     }
		   });
		 }else{
			this.fuwei()
		 }
		 
		},
		highlightSearch(name) {
		    // 使用正则表达式替换匹配到的 searchKeyword 为带有颜色的文字
		    if (this.searchKeyword) {
		      const regex = new RegExp(this.searchKeyword, 'gi');
		      return name.replace(regex, match => `<span style="color: #2D7CE6 ;">${match}</span>`);
		    }
		    return name;
		  },
		fuwei() {
			
			this.classlist = JSON.parse(JSON.stringify(this.changeclasslist));
			this.selectclass.forEach(selectedItem => {
			   const index = this.classlist.findIndex(item => item.id === selectedItem.id);
			   if (index !== -1) {
			     this.$set(this.classlist, index, { ...this.classlist[index], isSelected: true });
			   }
			 });
		},
		getclassList() {
			this.$u.get("https://api.admin-v2.langsi.online/admin-api/classroom/page").then(res => {
				
				if (res.code === 0) {
					this.classlist = res.data.list;
					this.changeclasslist = JSON.parse(JSON.stringify(this.classlist));
					this.isloding = false;
					 this.selectclass.forEach(selectedItem => {
					    const index = this.classlist.findIndex(item => item.id === selectedItem.id);
					    if (index !== -1) {
					      this.$set(this.classlist, index, { ...this.classlist[index], isSelected: true });
					    }
					  });
					
				}
			});
		},
	}
}
</script>

<style lang="scss">
page {
	background: linear-gradient(183deg, #F0F6FF 0%, #FAFAFA 100%);
}

.pages {
	padding: 0 32rpx;

	.serchbox {
		padding: 0 32rpx;
		display: flex;
		flex-wrap: nowrap;
		margin-top: 30rpx;
		align-items: center;
		width: 686rpx;
		height: 88rpx;
		background: #FFFFFF;
		border-radius: 20rpx 20rpx 20rpx 20rpx;

		.serchimg {
			width: 30.51rpx;
			height: 32rpx;
			margin-right: 24rpx;
		}

		.input {
			margin: 0 auto;
			width: 568rpx;
			height: 88rpx;
			border-radius: 30rpx;
			// background-color: #f5f8fc;
			// display: flex;
			// justify-content: center;
			// align-items: center;
			// text-align: center;
			font-size: 28rpx;
			font-family: Source Han Sans CN, Source Han Sans CN-Light;
			font-weight: 300;
			text-align: left;
			color: #a7b9cd;
			letter-spacing: 1.2rpx;
			line-height: 36rpx;
			// padding: 0 100rpx;
			// padding-right: 135rpx;
			box-sizing: border-box;

		}
	}
	.teacher_card_box{
		margin-top: 20rpx;
		.teacher_card{
			margin-bottom: 20rpx;
			padding: 24rpx;
			display: flex;
			flex-wrap: nowrap;
			width: 686rpx;
			height: 148rpx;
			background: #FFFFFF;
			border-radius: 20rpx 20rpx 20rpx 20rpx;
			border: 2rpx solid #FFFFFF;
			.class_card_left {
					width: 84rpx;
					height: 84rpx;
				}

				.class_card_right {
					margin-left: 20rpx;
					display: flex;
					flex-wrap: wrap;

					.class_card_right_top {
						width: 100%;
						font-size: 28rpx;
						font-family:'PingFang','PingFang';
						font-weight: bold;
						color: #072F5A;
					}

					.class_card_right_bot {
						margin-top: 8rpx;
						background: #EBF3FF;
						border-radius: 4rpx 4rpx 4rpx 4rpx;
						padding: 10rpx 20rpx;
						font-size: 20rpx;
						font-family:'PingFang','PingFang';
						font-weight: 500;
						color: #2D7CE6;
					}
				}
		}
		.student_card{
			margin-bottom: 20rpx;
			padding: 24rpx;
			display: flex;
			flex-wrap: nowrap;
			width: 686rpx;
			height: 124rpx;
			background: #FFFFFF;
			border-radius: 20rpx 20rpx 20rpx 20rpx;
			border: 2rpx solid #FFFFFF;
			
			.class_card_left {
					width: 76rpx;
					height: 76rpx;
				}

				.class_card_right {
					margin-left: 20rpx;
					display: flex;
					flex-wrap: wrap;

					.class_card_right_top {
						width: 100%;
						font-size: 28rpx;
						font-family:'PingFang','PingFang';
						font-weight: bold;
						color: #072F5A;
					}

					.class_card_right_bot {
						margin-top: 4rpx;
						font-size: 20rpx;
						font-family:'PingFang','PingFang';
						font-weight: 500;
						color: rgba(7,47,90,0.6);
					}
				}
		}
		.act1{
			border: 2rpx solid #2D7CE6;
		}
	}
	.botbtn{
		padding: 32rpx 32rpx 0 32rpx;
		margin-left: -32rpx;
		position: fixed;
		bottom: 0;
		width: 750rpx;
		height: 200rpx;
		background: #FFFFFF;
		box-shadow: 0rpx -10rpx 16rpx 0rpx rgba(202,202,202,0.25);
		border-radius: 40rpx 40rpx 0rpx 0rpx;
		.btn{
			display: flex;
			align-items: center;
			justify-content: center;
			font-size: 28rpx;
			font-family:'PingFang','PingFang';
			font-weight: 800;
			color: #FFFFFF;
			width: 686rpx;
			height: 80rpx;
			background: linear-gradient(180deg, #74AFFF 0%, #2D7CE6 100%);
			border-radius: 104rpx 104rpx 104rpx 104rpx;
		}
	}
}
</style>
