<template>
	<view class="form_warp">
		<view class="form_intro">
			<view>如有填报问题，请咨询公共服务中心</view>
			<view>中心值班电话：<text @click="call(mobile)" class="tel">{{mobile}}</text></view>
		</view>
		<view class="form_item_box">
			<view class="form_item_title">基本信息</view>
			<view class="form_item">
				<view class="form_item_label">车站名称：</view>
				<view class="form_item_input picker">
					<picker v-if="pageType == 'add' && stationList.length > 1" :value="railwayNameIndex" :range="stationList" @change="changeRailway">
						<text class="picker_select"
							:style="form.carName?'color:#333;':''">{{form.carName?form.carName:'请选择'}}</text>
						<uni-icons type="right" size="16" color="#D4D4D4"></uni-icons>
					</picker>
					<text v-else>{{form.carName}}</text>
				</view>
			</view>
			<view class="form_item">
				<view class="form_item_label">统计日期：</view>
				<view class="form_item_input picker">
					<picker mode="date" :value="form.statDate" @change="bindDateChange">
						<text class="picker_select"
							:style="form.statDate?'color:#333;':''">{{form.statDate?form.statDate:'请选择'}}</text>
						<uni-icons type="right" size="16" color="#D4D4D4"></uni-icons>
					</picker>
				</view>
			</view>
			<view class="form_item">
				<view class="form_item_label">统计时段：</view>
				<view class="form_item_input picker">
					<picker :value="index" :range="array" range-key="dictLabel" @change="changeStatPeriod">
						<text class="picker_select"
							:style="index>-1?'color:#333;':''">{{index>-1?array[index].dictLabel:'请选择'}}</text>
						<uni-icons type="right" size="16" color="#D4D4D4"></uni-icons>
					</picker>
				</view>
			</view>
		</view>
		<view class="form_item_box" style="margin-top: 30rpx;">
			<!-- 运行情况 -->
			<view class="form_item_li" v-for="(item,index) in form.listCondition" :key="index">
				<view class="form_item_remark">
					<view class="form_item"
						style="display:flex; justify-content: space-between;font-size: 30rpx;color:#333;font-weight: bold;margin-top: 30rpx;">
						运行情况-{{index+1}}
						<uni-icons type="trash" color="red" @click="delRow(index)" size="18"></uni-icons>
					</view>
				</view>
				<view class="form_item_remark">
					<view class="form_item_label">运行情况详细：</view>
					<view class="form_item_input form_input">
						<uni-easyinput type="textarea" v-model="item.dataDetails"
							placeholderStyle="color: #D4D4D4;font-size:28rpx;" placeholder="请输入包含内容:始发终到、延误时长、客流挤压情况、延误原因、相关处置措施、备注" maxlength="200">
						</uni-easyinput>
					</view>
					<view class="line" v-if="index < (form.listCondition.length - 1)" style="margin-top: 30rpx;"></view>
				</view>
			</view>
			<view class="add_btn" @click="addRow()">增行</view>

		</view>
		<!-- 底部按钮 -->
		<view class="foot_btn">
			<!-- <view class="act_btn" @click="doCancel">取消</view> -->
			<view class="act_btn blue" @click="doSubmit">{{btnText}}</view>
		</view>
	</view>
</template>
<script>
	import {
		getDateStr,
		checkNotEmpty
	} from "../../../common/util.js"
	export default {
		data() {
			return {
				form: {
					"listCondition": [{
						"dataDetails": ""
					}],
					"carName": "",
					"statDate": "",
					"statPeriod": ""
				}, //登录form
				stationList: [], //车站列表
				railwayNameIndex: '',
				array: [], //时段选择列表
				index: 2, //时段选择,默认0-24
				userInfo: {},
				pageType: '',
				btnText: '保存',
				mobile: getApp().globalData.mobile
			}
		},
		onLoad(options) {
			this.userInfo = uni.getStorageSync('userInfo');
			if (options.type == 'add') {
				this.pageType = 'add';
				let now = new Date();
				this.form.statDate = getDateStr(now, -1); //默认前一天
				this.queryTime(); //统计时段
				this.queryStation(); //车展名称列表
			} if (options.id) {
				this.btnText = '修改并保存';
				this.$request(getApp().globalData.baseUrl+'/api/biz/railwayRunSituation/find//'+options.id,{},"GET").then(res => {
					this.form = res.data;
					this.queryTime(); //统计时段
					this.queryStation(); //车展名称列表
				});
			}
		},
		methods: {
			call(tel) {
				uni.makePhoneCall({
					phoneNumber: tel
				});
			},
			//增行
			addRow() {
				this.form.listCondition.push({
					dataDetails: ""
				});
			},
			//删行
			delRow(index) {
				this.form.listCondition.splice(index, 1);
			},
			//车站权限列表
			queryStation() {
				this.$request(getApp().globalData.baseUrl + '/api/biz/railwayRunData/getCurrentSite?_t=' + Date.parse(
					new Date()), {}, 'GET').then(res => {
					this.stationList = res.data;
					if (this.pageType == 'add') {
						this.form.carName = res.data[0];
						this.railwayNameIndex = 0;
					}
				})
			},
			//车站选择
			changeRailway(e) {
				this.railwayNameIndex = e.detail.value;
				this.form.railwayName = this.stationList[e.detail.value];
			},
			//统计时段切换选择
			changeStatPeriod(e) {
				this.index = e.detail.value;
				this.form.statPeriod = this.array[e.detail.value].dictValue;
				console.log('change 时段', this.form);
			},
			//取消
			doCancel() {
				uni.navigateBack();
			},
			//选择统计日期
			bindDateChange(e) {
				this.form.statDate = e.detail.value;
			},
			//时段
			queryTime() {
				this.$request(getApp().globalData.baseUrl + '/api/dict/dictList?dictType=airport_time' + '&_t=' + Date
					.parse(
						new Date()), {}, 'GET').then(res => {
					this.array = res.data;
					if(this.pageType == 'add') {
						let now = new Date();
						//11:00-13:30 默认选择0-12
						let dateStr = getDateStr(now, 0).replaceAll('-','/');
						if(new Date(dateStr + ' 11:00').getTime() < new Date().getTime() && new Date().getTime() < new Date(dateStr + ' 13:30').getTime()) {
							this.form.statPeriod = '0012';
							let idx = this.array.findIndex(item => item.dictValue == '0012');
							this.index = idx > -1 ? idx : idx;
						}else{
							this.form.statPeriod = '03'; //默认0-24
							let idx = this.array.findIndex(item => item.dictValue == '03');
							this.index = idx > -1 ? idx : idx;
						}
					}else{
						let idx = this.array.findIndex(item => item.dictValue == this.form.statPeriod);
						this.index = idx > -1 ? idx : idx;
					}
				})
			},
			//确认提交
			doSubmit() {
				if (!checkNotEmpty(this.form.carName)) {
					uni.showToast({
						title: '车站名称不能为空',
						icon: 'none'
					})
					return;
				}
				if (!checkNotEmpty(this.form.statDate) || !checkNotEmpty(this.form.statPeriod)) {
					uni.showToast({
						title: '报送日期和时段不能为空',
						icon: 'none'
					})
					return;
				}
				let checkList = true;
				if (this.form.listCondition.length > 0) {
					checkList = this.form.listCondition.every(item => {
						return typeof(item.dataDetails) !== 'undefined' && item.dataDetails !== null && item.dataDetails !== '';
					})
				}
				console.log(checkList,this.form)
				if (!checkList) {
					uni.showToast({
						title: '运行情况不能为空',
						icon: 'none'
					})
					return;
				}
				this.form.listCondition.map((item,index) => {
					item.seq = index;
				})
				uni.showModal({
					title: '提示',
					content: this.form.id == undefined ? '您确认提交该条报送数据?' : '您确认将该条数据进行修改?',
					success: (res) => {
						if (res.confirm) {
							this.submitForm();
						}
					}
				})
			},
			submitForm() {
				uni.showLoading({
					title: '提交中...',
					mask: true
				})
				this.$request(getApp().globalData.baseUrl + '/api/biz/railwayRunSituation/saveOrUpdate', this.form,
					'POST').then(res => {
					uni.hideLoading();
					if (res.code == 200) {
						uni.showToast({
							title: '报送提交成功',
							icon: 'none',
							success: () => {
								if(this.form.id == undefined) {
									setTimeout(() => {
										uni.redirectTo({
											url: '/pages/railway/runStatus/list'
										})
									}, 300)
								}
								else {
									uni.navigateBack();
								}
							}
						})
					}
				}).catch(() => {
					uni.hideLoading();
				})
			},
		}
	}
</script>

<style lang="scss" scoped>
	.form_warp {
		padding: 30rpx 30rpx 195rpx;

		.form_intro {
			color: #666;
			font-size: 26rpx;
			font-family: PingFang SC-Bold, PingFang SC;
			line-height: 48rpx;
			text-align: center;
			margin-bottom: 20rpx;

			.tel {
				color: #2D8CF0;
				font-weight: bold;
			}
		}

		.form_item_box {
			padding: 30rpx 20rpx 30rpx 30rpx;
			background-color: #fff;
			border-radius: 30rpx;

			//环比同比
			.form_item_rate {
				background: #F6F6F6;
				border: 1px solid #F6F6F6;
				padding: 30rpx;
				margin-bottom: 30rpx;
				border-radius: 30rpx;

				.line {
					height: 1px;
					background-color: #dfdfdf;
					margin: 30rpx 0;
				}

				.rate_item {
					display: flex;
					justify-content: space-between;
					font-size: 24rpx;
					font-family: PingFang SC-Regular, PingFang SC;
					font-weight: 400;

					.rate_item_label {
						color: #666;
						font-size: 24rpx;
					}

					.rate_item_input {
						color: #333;
						font-size: 28rpx;
					}
				}

				&.danger {
					background-color: #FEF6F3;
					border-color: #F0622D;
				}
			}

			.form_item_title {
				color: #333;
				line-height: 42rpx;
				font-size: 30rpx;
				font-family: PingFang SC-Bold, PingFang SC;
				font-weight: bold;
				margin-bottom: 30rpx;
			}

			.form_item_remark {
				margin-bottom: 30rpx;

				.form_item_label {
					color: #666;
					line-height: 35rpx;
					font-size: 26rpx;
					font-family: Microsoft YaHei-Regular, Microsoft YaHei;
					margin-bottom: 30rpx;
				}
				/deep/ .is-input-border{
					border-radius: 20rpx !important;
					border: 1px solid #c1c1c1 !important;
				}
			}

			.form_item {
				display: flex;
				align-items: center;
				justify-content: space-between;
				line-height: 37rpx;
				font-family: PingFang SC-Regular, PingFang SC;
				font-weight: 400;
				margin-bottom: 30rpx;

				.form_item_label {
					width: 260rpx;
					color: #666666;
					font-size: 26rpx;
					word-break: break-all;
				}

				.form_item_input {
					color: #333;
					text-align: right;
					word-break: break-all;

					&.picker {
						flex: 1;
						// display: flex;
						// justify-content: space-between;

						// /deep/ picker {
						// 	flex: 1;
						// }

						.picker_select {
							color: #D4D4D4;
							font-size: 28rpx;
							font-family: PingFang SC-Regular, PingFang SC;
							font-weight: 400;
							text-align: right;
						}
					}

					//纯展示
					&.text {
						color: #333333;
						line-height: 40rpx;
						font-size: 28rpx;
						font-family: PingFang SC-Regular, PingFang SC;
						font-weight: 400;
					}

					//输入框
					&.form_input {
						/deep/ .is-input-border {
							border: 0 !important;

							.uni-easyinput__content-input {
								height: 35rpx !important;
								text-align: right;
							}
						}

						/deep/ .uni-date-x--border {
							border: 0 !important;

							.uni-date__x-input {
								// height: 35rpx !important;
								text-align: right;
							}
						}
					}
				}
			}
		}
	}

	//收费站
	.station_box {
		display: flex;
		flex-wrap: wrap;
		margin-top: 40rpx;

		.station_item {
			height: 60rpx;
			color: #666666;
			line-height: 60rpx;
			font-size: 26rpx;
			font-family: PingFang SC-Regular, PingFang SC;
			font-weight: 400;
			border-radius: 20rpx;
			border: 1rpx solid #C1C1C1;
			padding: 0 20rpx;
			margin-bottom: 40rpx;
			margin-right: 20rpx;

			&.active {
				position: relative;
				color: #1ECE5F;
				border-color: #1ECE5F;
				background: #EBFAF2;

				.tag {
					position: absolute;
					top: 0;
					right: 0;
					width: 34rpx;
					height: 23rpx;
					background: #1ECE5F;
					border-radius: 0rpx 20rpx 0rpx 5rpx;
					text-align: center;
				}
			}
		}
	}

	.foot_btn {
		position: fixed;
		left: 0;
		right: 0;
		bottom: 0;
		display: flex;
		justify-content: space-between;
		padding: 40rpx 30rpx;
		background-color: #f5f5f5;
		z-index: 11;

		.act_btn {
			width: 690rpx;
			height: 90rpx;
			color: #666666;
			font-size: 28rpx;
			line-height: 90rpx;
			font-family: PingFang SC-Regular, PingFang SC;
			font-weight: 400;
			text-align: center;
			background: #F6F6F6;
			border-radius: 100rpx;
			border: 1rpx solid #C1C1C1;

			&.blue {
				color: #fff;
				background: #2D8CF0;
				border-color: #2D8CF0;
			}
		}
	}

	//增行
	.line {
		height: 1px;
		background-color: #E1E1E1;
	}

	.add_btn {
		height: 90rpx;
		line-height: 90rpx;
		color: #2D8CF0;
		font-size: 28rpx;
		font-family: PingFang SC-Regular, PingFang SC;
		font-weight: 400;
		text-align: center;
		background: #ECF5FF;
		border-radius: 30rpx;
		border: 1px dashed #2D8CF0;
		margin-top: 30rpx;
	}

	.tab_box {
		display: flex;
		justify-content: space-around;

		.tab_nav {
			color: #999999;
			line-height: 42rpx;
			font-size: 30rpx;
			font-family: PingFang SC-Regular, PingFang SC;
			font-weight: 400;
			padding-bottom: 25rpx;

			&.active {
				position: relative;
				color: #2D8CF0;
				font-weight: bold;

				&::after {
					position: absolute;
					content: '';
					left: 50%;
					bottom: 0;
					width: 74rpx;
					height: 6rpx;
					background: #2D8CF0;
					border-radius: 100rpx;
					margin-left: -37rpx;
				}
			}
		}
	}

	button {
		background-color: #007aff;
		color: #ffffff;
	}
</style>
