<template>
	<view class="page">
		<u-navbar title="运营区域设置" :border-bottom="false" :background="bgc" title-color='#000' title-size='36' height='45'>
		</u-navbar>

		<!-- Tab切换 -->
		<u-tabs-swiper :list="tabList" :current="current" @change="tabChange" :is-scroll="false" active-color="#007AFF"
			bar-width="60" bar-height="6" item-width="250" :show-bar="true"></u-tabs-swiper>

		<!-- 列表内容 -->
		<view class="content">
			<!-- 新增按钮 -->
			<view class="add-btn" @tap="goAdd">
				<u-icon name="plus" color="#007AFF" size="28"></u-icon>
				<text>新增{{ currentTabName }}</text>
			</view>

			<!-- 列表 -->
			<view class="list">
				<u-swipe-action v-for="(item, index) in parkingList " :key="index" :show="item.show" :index="index"
					@click="handleSwipeClick" :options="swipeOptions">
					<view class="list-item">
						<view class="item-left">
							<view class="item-name">{{ item.name }}</view>
							<view class="item-info">
								<text>创建时间: {{ item.createTime }}</text>
								<text>误差距离: {{ item.error !== null ? item.error : 0 }}米</text>
							</view>
						</view>
						<view class="item-right">
							<view class="custom-switch" @click="handleStatusChange(item)">
								<view class="switch-track" :class="{ 'switch-active': item.status == 0 }">
									<view class="switch-thumb"></view>
								</view>
							</view>
							<u-button type="primary" size="mini" @click="goEdit(item)">修改</u-button>
						</view>
					</view>
				</u-swipe-action>
			</view>

			<!-- 空状态 -->
			<u-empty v-if="parkingList.length === 0" text="暂无数据" mode="list"></u-empty>
		</view>
	</view>
</template>

<script>
export default {
	data() {
		return {
			bgc: {
				backgroundColor: "#fff",
			},
			areaId: '',
			current: 0,
			tabList: [
				{ name: '停车区' },
				{ name: '禁停区' },
				{ name: '禁行区' },
				{ name: '景区' }
			],
			parkingList: [],
			swipeOptions: [{
				text: '删除',
				style: {
					backgroundColor: '#dd524d'
				}
			}]
		}
	},
	computed: {
		currentTabName() {
			return this.tabList[this.current]?.name || ''
		},
		currentType() {
			return String(this.current + 1)
		}
	},
	onLoad(e) {
		this.areaId = uni.getStorageSync('adminAreaid')
	},
	onShow() {
		setTimeout(()=>{
			this.getParking()
		},10)
	},
	methods: {
		// Tab切换
		tabChange(index) {
			this.current = index
			this.getParking()
		},

		// 获取类型名称
		getTypeName(type) {
			const typeMap = {
				'1': '停车区',
				'2': '禁停区',
				'3': '禁行区',
				'4': '景区'
			}
			return typeMap[type] || '未知'
		},

		// 获取列表数据
		getParking() {
			let data = {
				areaId: this.areaId,
				type: this.currentType
			}
			this.$u.get('/bst/areaSub/listByAreaId', data).then((res) => {
				if (res.code === 200) {
					this.parkingList = res.data || []
					console.log(this.parkingList[0])
				} else {
					uni.showToast({
						title: res.msg || '获取数据失败',
						icon: 'none'
					})
				}
			})
		},

		// 跳转新增页面
		goAdd() {
			uni.navigateTo({
				url: `/page_shanghu/gongzuotai/Parking_set?type=${this.currentType}`
			})
		},

		// 跳转编辑页面
		goEdit(item) {
			uni.navigateTo({
				url: `/page_shanghu/gongzuotai/Parking_set?type=${item.type}&parkingId=${item.id}`
			})
		},

		// 状态切换处理
		handleStatusChange(item) {
			const newStatus = item.status == 1 ? 0 : 1
			let data = {
				id: item.id,
				status: newStatus
			}

			this.$u.put('/bst/areaSub', data).then(res => {
				if (res.code === 200) {
					item.status = newStatus
					uni.showToast({
						title: '状态更新成功',
						icon: 'success'
					})
				} else {
					uni.showToast({
						title: res.msg || '状态更新失败',
						icon: 'none'
					})
				}
			})
		},

		// 处理滑动删除点击
		handleSwipeClick(e) {
			console.log(e,'e');
			// const { index } = e;
			const item = this.parkingList[e];
			
			console.log(item,'item');

			uni.showModal({
				title: '提示',
				content: '确定要删除该记录吗？',
				success: (res) => {
					if (res.confirm) {
						this.deleteParking(item.id);
					}
				}
			});
		},

		// 删除停车区域
		deleteParking(id) {
			this.$u.delete(`/bst/areaSub/${id}`).then(res => {
				if (res.code === 200) {
					uni.showToast({
						title: '删除成功',
						icon: 'success'
					});
					this.getParking(); // 重新获取列表数据
				} else {
					uni.showToast({
						title: res.msg || '删除失败',
						icon: 'none'
					});
				}
			});
		}
	}
}
</script>

<style lang="scss">
page {
	width: 100%;
	height: 100%;
	background-color: #f5f5f5;
}

.page {
	width: 100%;
	height: 100%;
}

.content {
	padding: 20rpx;
}

.add-btn {
	position: fixed;
	bottom: 100rpx;
	left: 60rpx;
	display: flex;
	width: 650rpx;
	align-items: center;
	justify-content: center;
	height: 80rpx;
	background-color: #fff;
	border-radius: 8rpx;
	margin-bottom: 20rpx;

	text {
		margin-left: 10rpx;
		color: #007AFF;
		font-size: 28rpx;
	}
}

.content {
	padding: 20rpx;
	background-color: #f5f5f5;
	height: 68vh;
	    overflow: scroll;
}

.list {
	.list-item {
		display: flex;
		justify-content: space-between;
		align-items: center;
		padding: 20rpx;
		background-color: #fff;
		border-radius: 8rpx;
		// margin-bottom: 20rpx;
		// 添加底部边框和背景色微调
		// border-bottom: 1px solid #f0f0f0;
		background-color: #fafafa;

		.item-left {
			flex: 1;

			.item-name {
				font-size: 32rpx;
				font-weight: bold;
				color: #333;
				margin-bottom: 10rpx;
			}

			.item-info {
				font-size: 24rpx;
				color: #999;
				display: flex;
				flex-direction: column;

				text {
					margin-bottom: 4rpx;
				}
			}
		}

		.item-right {
			display: flex;
			align-items: center;
			gap: 20rpx;
		}
	}
}

.custom-switch {
	display: inline-block;

	.switch-track {
		position: relative;
		width: 100rpx;
		height: 60rpx;
		background-color: #e0e0e0;
		border-radius: 30rpx;
		transition: all 0.3s;
		cursor: pointer;

		.switch-thumb {
			position: absolute;
			left: 4rpx;
			top: 4rpx;
			width: 52rpx;
			height: 52rpx;
			background-color: #fff;
			border-radius: 50%;
			transition: all 0.3s;
			box-shadow: 0 2rpx 4rpx rgba(0, 0, 0, 0.2);
		}

		&.switch-active {
			background-color: #007AFF;

			.switch-thumb {
				transform: translateX(40rpx);
			}
		}
	}
}
</style>