<template>
	<view>
		<u-subsection :list="list" :current="current" @change="sectionChange" mode="subsection"
			fontSize="1.5rem"></u-subsection>
		<view v-if="current == 0" :key="0">
			<view>
				<u-row>
					<u-col span="6">
						<u-button @click="timeshow = true">选择日期</u-button>
						<u-datetime-picker :show="timeshow" v-model="queryParams.workerorder_time" mode="date"
							@confirm="confirm" @cancel="timeshow = false"></u-datetime-picker>
					</u-col>
					<u-col span="6">
						<view style="font-size: 1.2rem">{{ queryParams.workerorder_time | formatDate }}</view>
					</u-col>
				</u-row>
				<u-gap height="10" bgColor="#bbb"></u-gap>
				<u-row>
					<u-col span="2">任务编号</u-col>
					<u-col span="2">任务站点</u-col>
					<u-col span="3">任务详情</u-col>
					<u-col span="2" offset="2">操作</u-col>
				</u-row>
				<view class="area">
					<u-list>
						<u-list-item v-for="(item, index) in taskList" :key="index">
							<view class="cartoon-list-item">
								<u-row>
									<u-col span="2">{{ item.id }}</u-col>
<<<<<<< HEAD
									<u-col span="1"><u-tag :text="item.agvPosition" size="mini"
											type="primary"></u-tag></u-col>
									<u-col span="3" offset="1"><u-icon name="arrow-right-double" color="#2979ff"
											size="50" @click="detail_item(item.taskId)"></u-icon></u-col>
									<u-col span="2"><u-button type="success" text="开始" size="mini"
											@click="confirm_startpoint(item.agvPosition)"></u-button></u-col>
									<u-col span="2"><u-button type="error" text="结束" size="mini"></u-button></u-col>
=======
									<u-col span="1"><u-tag :text="item.agvPosition" size="mini" type="primary"></u-tag></u-col>
									<u-col span="3" offset="1"><u-icon name="arrow-right-double" color="#2979ff" size="50" @click="detail_item(item.taskId)"></u-icon></u-col>
									<u-col span="2"><u-button type="success" text="开始" size="mini" @click="confirm_startpoint(item.agvPosition)"></u-button></u-col>
									<u-col span="2"><u-button type="error" text="结束" size="mini" @click="final_task(item.taskId)"></u-button></u-col>
>>>>>>> 9c7f6d2 (配料任务)
								</u-row>
							</view>
						</u-list-item>
					</u-list>
				</view>

				<u-loading-page :loading="loading"></u-loading-page>

				<u-modal :show="show_popup" :title="title" @confirm="show_popup = false">
					<view style="width: 100%; height: 150px; overflow: hidden; overflow-y: scroll">
						<u-row>
							<u-col span="4">工单号</u-col>
							<u-col span="4">零件号</u-col>
							<u-col span="2">计划数</u-col>
							<u-col span="2">已配数</u-col>
						</u-row>
						<u-list>
							<u-list-item v-for="(item, index) in taskList_son" :key="index">
								<view class="cartoon-list-item">
									<u-row>
										<u-col span="4">{{ item.workorder }}</u-col>
										<u-col span="4">{{ item.partnumber }}</u-col>
										<u-col span="2">{{ item.previousNumber }}</u-col>
										<u-col span="2">{{ item.previousNumbered }}</u-col>
									</u-row>
								</view>
							</u-list-item>
						</u-list>
					</view>
				</u-modal>
				<view class="tip-box">
					<u-row>
						<u-col span="2">起点</u-col>
						<u-col span="2">
							<u--input border="surround" v-model="start_point" @change="get_fab_go_points"></u--input>
						</u-col>
						<u-col span="2" offset="2">终点</u-col>
						<u-col span="4">
							<uni-data-select v-model="end_point" :localdata="fab_go_points"></uni-data-select>
						</u-col>
					</u-row>

					<u-row>
						<u-col span="3" offset="2">
							<view class="tip-icon" @click="start_agv"><span>启动</span></view>
						</u-col>
						<u-col span="3" offset="3">
							<view class="tip-icon2" @click="stop_agv"><span style="font-size: 0.5rem">紧急终止</span></view>
						</u-col>
					</u-row>
				</view>
			</view>
		</view>
		<view v-if="current == 1" :key="1">
			<view class="tip-box">
				<u-row :gutter="20">
					<u-col span="2">
						<u-text text="起点" size="48"></u-text>
					</u-col>
					<u-col span="4">
						 <u-input v-model="start_point" placeholder="请输入起点" clearable></u-input>
					</u-col>
					<u-col span="2">
						<u-text text="终点" size="48"></u-text>
					</u-col>
					<u-col span="4">
						 <u-input v-model="end_point" placeholder="请输入终点" clearable></u-input>
					</u-col>
				</u-row>
				<u-gap height="20"></u-gap>
				<u-row>
					<u-col span="6" align="center">
						<view class="tip-icon" @click="start_agv"><span>启动</span></view>
					</u-col>
					<u-col span="6" align="center">
						<view class="tip-icon2" @click="stop_agv"><span style="font-size: 0.5rem">紧急终止</span></view>
					</u-col>
				</u-row>
			</view>
		</view>
		<u-toast ref="uToast"></u-toast>
	</view>
</template>

<script>

import { getIngredientTask, getIngredientTask_son, getfabgopoints, go_workshop, emergency_stop_agv, FinisBatchingTask } from '@/api/materialManagement/MaterialRequsition.js';
export default {
	data() {
		return {
			list: ['车间叫料', '空车返程'],
			current: 0,
			queryParams: {
				workerorder_time: Number(new Date()),
				pageNum: 1,
				pageSize: 10,
				sort: undefined,
				sortType: undefined,
				totalNum: 0
			},
			timeshow: false,
			taskList: [],
			show_popup: false,
			title: '',
			taskList_son: [],
			loading: false,
			start_point: '',
			end_point: '',
			fab_go_points: [],
			reqCode: ''
		};
	},
	watch: {},
	filters: {
		formatDate: function (value) {
			// 创建一个 Date 对象，并使用时间戳初始化
			const date = new Date(value);

			// 提取年、月、日信息
			const year = date.getFullYear();
			const month = date.getMonth() + 1; // 月份从 0 开始，所以要加 1
			const day = date.getDate();

			return `${year}-${month < 10 ? '0' + month : month}-${day < 10 ? '0' + day : day}`;
		}
	},
	mounted() {
		this.getInitList();
	},
	
	methods: {
		// todo 分页查询
		getInitList() {
			// 使用时间戳创建一个日期对象
			let date = new Date(this.queryParams.workerorder_time);
	
			// 获取上海时区的时间偏移量（以分钟为单位）
			let offset = 8 * 60; // 上海时区为 UTC+8
	
			// 计算上海时区的时间
			let shanghaiTime = new Date(date.getTime() + offset * 60 * 1000);
	
			let queryTask = {
				...this.queryParams
			};
			queryTask.datetimespan = shanghaiTime;
			delete queryTask.workerorder_time;
			getIngredientTask(queryTask).then((res) => {
				if (res.code == 200) {
					res.data.forEach((item, index) => {
						item.id = index;
					});
					this.taskList = res.data;
				}
			});
		},
		sectionChange(index) {
			this.current = index;
		},
		// scrolltolower() {
		// 	this.loadmore();
		// },
		// loadmore() {
		// 	for (let i = 0; i < 30; i++) {
		// 		this.indexList.push({
		// 			url: this.urls[uni.$u.random(0, this.urls.length - 1)]
		// 		});
		// 	}
		// },
		//todo  选择时间
		confirm() {
			this.timeshow = false;
			this.$nextTick(() => {
				this.getInitList();
			});
		},
		//todo 查看详细信息
		detail_item(taskId) {
			const query = {
				taskId: taskId
			};
			this.loading = true;
			getIngredientTask_son(query).then((res) => {
				if (res.code == 200) {
					this.loading = false;
					this.taskList_son = res.data;
					this.show_popup = true;
					this.title = '任务号：' + taskId;
				}
			});
		},
		//todo 确认起点
		confirm_startpoint(point) {
			this.start_point = point;
		},
		//todo获取车间点
		get_fab_go_points() {
			getfabgopoints().then((res) => {
				if (res.code == 200) {
					let array = [];
					res.data.forEach((item) => {
						array.push({
							value: item,
							text: item
						});
					});
					this.fab_go_points = array;
				}
			});
		},
		//todo 开始agv
		start_agv() {
			if (this.start_point == '' || this.end_point == '') {
				this.$refs.uToast.show({
					type: 'error',
					message: '起点或者终点不能为空'
				});
			},
			sectionChange(index) {
				this.current = index;
				this.start_point = '';
				this.end_point = '';
			},
			// scrolltolower() {
			// 	this.loadmore();
			// },
			// loadmore() {
			// 	for (let i = 0; i < 30; i++) {
			// 		this.indexList.push({
			// 			url: this.urls[uni.$u.random(0, this.urls.length - 1)]
			// 		});
			// 	}
			// },
			//todo  选择时间
			confirm() {
				this.timeshow = false;
				this.$nextTick(() => {
					this.getInitList();
				});
			},
			//todo 查看详细信息
			detail_item(taskId) {
				const query = {
					taskId: taskId
				};
				this.loading = true;
				getIngredientTask_son(query).then((res) => {
					if (res.code == 200) {
						this.loading = false;
						this.taskList_son = res.data;
						this.show_popup = true;
						this.title = '任务号：' + taskId;
					}
				});
			},
			//todo 确认起点
			confirm_startpoint(point) {
				this.start_point = point;
			},
			//todo获取车间点
			get_fab_go_points() {
				getfabgopoints().then((res) => {
					if (res.code == 200) {
						let array = [];
						res.data.forEach((item) => {
							array.push({
								value: item,
								text: item
							});
						});
						this.fab_go_points = array;
					}
				});
			},
			//todo 开始agv
			start_agv() {
				if (this.start_point == '' || this.end_point == '') {
					this.$refs.uToast.show({
						type: 'error',
						message: 'agv起动成功' + res.data
					});
				}
			});
		},
		//todo  紧急终止agv
		stop_agv() {
			if (this.reqCode == '') {
				this.$refs.uToast.show({
					type: 'error',
					message: '无任务编号'
				});
				return;
			}
	
			const query = {
				reqCode: this.reqCode
			};
	
			emergency_stop_agv().then((res) => {
				if (res.code == 200) {
					this.$refs.uToast.show({
						type: 'success',
						message: '成功取消' + res.data
					});
				}
			});
		}

	},
	//todo  完成任务
	final_task(taskId) {
		if (this.start_point == '' || this.end_point == '' || taskId == '') {
			return;
		}
		const query = {
			start_point: this.start_point,
			end_point: this.end_point,
			taskId: taskId
		};
		FinisBatchingTask(query).then((res) => {
			if (res.code == 200) {
				this.$refs.uToast.show({
					type: 'success',
					message: '完成成功' + res.data
				});
				this.getInitList();
			}
		});
	
	}
		
		
	};
</script>

<style scoped>
	.area {
		height: 350px;
		background-color: white;

		overflow: hidden;
		/* 隐藏超出部分 */
		overflow-y: scroll;
		/* 添加垂直滚动条 */
	}

	.cartoon-list-item {
		background-color: #c8d3db;
		/* 设置蓝色背景 */
		padding: 10px;
		/* 设置内边距 */
		border-radius: 10px;
		/* 设置圆角边框 */
		box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
		/* 添加阴影效果 */
		margin-bottom: 10px;
		/* 设置底部外边距 */
		font-family: 'Comic Sans MS', cursive;
		/* 设置卡通化字体 */
		color: white;
		/* 设置文字颜色为白色 */
	}

	.cartoon-list-item:hover {
		transform: scale(1.05);
		/* 鼠标悬停时放大 */
	}

	.tip-box {
		width: 100%;
		margin-top: 20px;
		background-color: #fff;
		/* 白色背景 */
		padding: 20px;
		border-radius: 10px;
		box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
		/* 添加阴影 */
	}

	.tip-icon {
		margin-top: 5px;
		width: 50px;
		height: 50px;
		background-color: #00ff00;
		border-radius: 50%;
		display: flex;
		justify-content: center;
		align-items: center;
		font-size: 24px;
		color: #fff;
		box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
		/* 添加阴影 */
	}

	.tip-icon2 {
		margin-top: 5px;
		width: 50px;
		height: 50px;
		background-color: red;
		border-radius: 50%;
		display: flex;
		justify-content: center;
		align-items: center;
		font-size: 24px;
		color: #fff;
		box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
		/* 添加阴影 */
	}

	.tip-text {
		margin-top: 10px;
		font-size: 16px;
		color: #333;
	}
</style>