<template>
	<view class="operation-body">
		<uni-nav-bar @clickLeft="goBack()" class="nav-bar" height="110rpx" leftWidth="200rpx" leftText="作业信息"
			leftIcon="left" border backgroundColor="#2cade8" color="#fff" fixed statusBar shadow></uni-nav-bar>

		<view class="form-info">
			<view class="form-left-text">
				<text class="star">*</text>
				<text>作业简介</text>
			</view>
			<textarea class="apply-reason-text" v-model="formData.name" maxlength="250" placeholder="请输入" />
		</view>
		<view class="form-info">
			<view class="form-content ">
				<view class="form-item border-bottom">
					<view class="form-left">
						<text class="star">*</text>
						<text class="form-left-text">具体地点</text>
					</view>
					<view class="form-right">
						<input type="text" v-model="formData.place" maxlength="50" placeholder="请输入" />
					</view>
				</view>
				<view class="form-item border-bottom">
					<view class="form-left">
						<text class="star">*</text>
						<text class="form-left-text">开始时间</text>
					</view>
					<view class="form-right form-date">
						<uni-datetime-picker v-model="formData.start_time" :border="false" />
					</view>
				</view>
				<view class="form-item border-bottom">
					<view class="form-left">
						<text class="star">*</text>
						<text class="form-left-text">结束时间</text>
					</view>
					<view class="form-right form-date">
						<uni-datetime-picker v-model="formData.end_time" :border="false" />
					</view>
				</view>
				<view class="form-item border-bottom">
					<view class="form-left">
						<text class="star">*</text>
						<text class="form-left-text">生产状态</text>
					</view>
					<view class="form-right">
						<uni-data-select v-model="formData.state_work" :localdata="stateRange">
						</uni-data-select>
					</view>
				</view>

				<view class="form-item border-bottom">
					<view class="form-left">
						<text class="star">*</text>
						<text class="form-left-text">作业区域</text>
					</view>
					<view class="form-right">
						<uni-data-select v-model="formData.area" :localdata="range">
						</uni-data-select>
					</view>
				</view>
				<view class="form-item border-bottom">
					<view class="form-left">
						<text class="star">*</text>
						<text class="form-left-text">业务部门</text>
					</view>
					<view class="form-right">
						<uni-data-picker placeholder="请选择业务部门" popup-title="请选择业务部门" :localdata="depRange"
							v-model="formData.dept_bus" >
						</uni-data-picker>
					</view>
				</view>

				<view class="form-item border-bottom">
					<view class="form-left">
						<text class="star">*</text>
						<text class="form-left-text">部门协调员</text>
					</view>
					<view class="form-right">
						<uni-data-select v-model="formData.coordinator" :localdata="userRange">
						</uni-data-select>
					</view>
				</view>

				<view class="form-item border-bottom">
					<view class="form-left">
						<text class="star">*</text>
						<text class="form-left-text">属地部门</text>
					</view>
					<view class="form-right">
						<uni-data-picker placeholder="请选择属地部门" popup-title="请选择属地部门" :localdata="depRange"
							v-model="formData.dept_ter" @change="onchange" @nodeclick="onnodeclick"
							@popupopened="onpopupopened" @popupclosed="onpopupclosed">
						</uni-data-picker>
					</view>
				</view>
				<view class="btn" v-if="showBtns">
					<button type="primary" class="save-btn" @click="saveSubmit">下一步</button>
				</view>
			</view>
		</view>
	</view>
</template>

<script>
	var that;
	import nonNullCheck from '../../../utils/nonNullCheck.js';
	export default {
		name: "operation",
		data() {
			return {
			
				formData: {
					name: '', //作业简述
					// state: '', //作业状态
					place: '', //具体地点
					start_time: '', //作业开始时间
					end_time: '', //作业结束时间
					state_work: '', //生产状态
					belong_dept: '', //所属部门
					area: '', //作业区域
					dept_ter: '', //属地部门
					dept_bus: '', //业务部门
					coordinator: '', //业务部门协调员
				},
				userRange: [],
				//作业区域
				range: [],
				//生产状态
				stateRange: [{
						value: '0',
						text: "运行"
					},
					{
						value: '1',
						text: "停机"
					},
					{
						value: '2',
						text: "检修"
					},
				],
				//部门
				depRange: [],
			}
		},
		onLoad(params) {
			if(params.operationId){
				this.operationId = params.operationId;
				this.type = params.type;
				this.getOperation();
				if(params.type==='edit'){
					this.showBtns = true;
				}else{
					this.showBtns = false;
				}
			}else{
				this.showBtns = true;
			}
		},
		onShow() {
			this.getdept();
			this.getRange();
			this.getUserRange();
			this.range = [];
		},
		methods: {
			//获取工作operation
			getOperation() {
				
				let that = this;
				that.$u.api.operationItem(that.operationId).then((res) => {
					that.formData.id = res.id; //
					that.formData.name = res.name; //
					that.formData.place = res.place; //
					that.formData.state_work = res.state_work; //
					that.formData.area = res.area; //
					that.formData.dept_bus = res.dept_bus; //
					that.formData.coordinator = res.coordinator; //
					that.formData.dept_ter = res.dept_ter; //
					that.formData.start_time = res.start_time; //作业开始时间
					that.formData.end_time = res.end_time; //作业结束时间
					that.operationName = res.name; //作业
					console.log(res);
					debugger;
				});
			},
			saveSubmit() {
				let that = this;
				if (!that.paramsCheck()) {
					return;
				} else {
					console.log(this.formData)
					if(this.formData.id){
						this.$u.api.operationUpdate(this.formData.id,this.formData).then(res => {
							let  params = `?operationId=${res.id}`;
							uni.navigateTo({
								url: '/pages/workSpace/operation/oplCate'+params
							})
						})
					}else{
						this.$u.api.operationCreat(this.formData).then(res => {
							let  params = `?operationId=${res.id}`;
							uni.navigateTo({
								url: '/pages/workSpace/operation/oplCate'+params
							})
						})
					}
					
				}
			},
			//获取dept
			getdept() {
				let that = this;
				that.$u.api.deptList({page: 0}).then(res => {
					that.depRange = that.redata(res);
				
					console.log(that.depRange)
				})
			},
			//获取作业区域
			getRange() {
				this.$u.api.areaLists({page: 0}).then(res => {
					let range = [];
					let obj = {};
					res.forEach(item => {
						obj = {value: null,text: ''};
						obj.value = item.id;
						obj.text = item.name;
						range.push(obj);
					})
					this.range = range
				})
			},
			//获取用户
			getUserRange() {
				this.$u.api.userList({page: 0}).then(res => {
					let user = [];
					let obj = {};
					res.forEach(item => {
						obj = {value: null,text: ''};
						obj.value = item.id;
						obj.text = item.name;
						user.push(obj);
					})
					this.userRange = user
				})
			},
			

			redata(postList) {
				let posts = [];
				postList.forEach((item) => {
					let obj = new Object();
					obj = {
						...item
					};
					obj.value = item.id;
					obj.text = item.name;
					obj.parentId = item.parent;
					posts.push(obj);
				});
				let obj = posts.reduce((res, v) => ((res[v.id] = v), res), {}); //Object
				let arr = [];
				for (let item of posts) {
					if (item.parentId == null) {
						arr.push(item);
						continue;
					}
					let parent = obj[item.parentId];
					parent.children = parent.children ? parent.children : [];
					parent.children.push(item);
				}
				console.log(arr);
				return arr;
			},
			
			/* 参数验证 */
			paramsCheck() {
				if (!nonNullCheck(this.formData.name)) {
					uni.showToast({
						title: '请填写作业简介',
						icon: "none"
					})
					return false;
				}
				if (!nonNullCheck(this.formData.start_time)) {
					uni.showToast({
						title: '请选择开始时间',
						icon: "none"
					})
					return false;
				}

				if (!nonNullCheck(this.formData.end_time)) {
					uni.showToast({
						title: '请选择结束时间',
						icon: "none"
					})
					return false;
				}

				if (!nonNullCheck(this.formData.state_work)) {
					uni.showToast({
						title: '请选择生产状态',
						icon: "none"
					})
					return false;
				}
				if (!nonNullCheck(this.formData.area)) {
					uni.showToast({
						title: '请选择作业区域',
						icon: "none"
					})
					return false;
				}
				if (!nonNullCheck(this.formData.dept_bus)) {
					uni.showToast({
						title: '请选择业务部门',
						icon: "none"
					})
					return false;
				}
				if (!nonNullCheck(this.formData.coordinator)) {
					uni.showToast({
						title: '请选择部门协调员',
						icon: "none"
					})
					return false;
				}
				if (!nonNullCheck(this.formData.dept_ter)) {
					uni.showToast({
						title: '请选择属地部门',
						icon: "none"
					})
					return false;
				}
				/* if (phoneRegular.test(this.formData.contactNumber) === false) {
					uni.showToast({
						title: '联系电话格式不对，请重新填写',
						icon: "none"
					})
					return false;
				} */
				return true;
			},
			goBack() {
				uni.navigateBack({
					delta: 1
				})
			},

			onnodeclick(e) {
				console.log(e);
			},
			onpopupopened(e) {
				console.log('popupopened');
			},
			onpopupclosed(e) {
				console.log('popupclosed');
			},
			onchange(e) {
				console.log('onchange:', e);
			},
		}
	}
</script>

<style scoped>
	/* 主体 */
	>>>.uni-navbar__header,
	>>>.uni-status-bar {
		background-image: linear-gradient(90deg, #164cc3 0%, #2c6fd9 100%), linear-gradient(#e60012, #e60012) !important;
	}
	.operation-body {
		background-color: #f3fbff;
		padding-bottom: 20rpx;
	}
	.operation-body>>>uni-input {
		/* height: 100%; */
		font-size: 30rpx;
	}

	>>>.uni-navbar-btn-text text {
		font-size: 32rpx !important;
	}

	.form-info {
		width: 710rpx;
		margin: 0 auto;
		background-color: #FFFFFF;
		border-radius: 10rpx;
		padding: 25rpx 32rpx;
		box-sizing: border-box;
		margin-top: 24rpx;
	}

	.border-bottom {
		border-bottom: 1rpx solid #eeeeee;
	}

	.star {
		color: red;
	}

	.top-title-text {
		padding-left: 24rpx;
		position: relative;
		font-family: PingFang-SC-Medium;
		font-size: 34rpx;
		line-height: 72rpx;
		color: #383838;
	}

	.top-title-text::before {
		content: "";
		width: 6rpx;
		height: 29rpx;
		background-image: linear-gradient(90deg, #164cc3 0%, #2c6fd9 100%);
		border-radius: 3rpx;
		display: block;
		position: absolute;
		left: -4rpx;
		top: 22rpx;
	}

	.form-item {
		font-family: PingFang-SC-Medium;
		font-size: 30rpx;
		height: 200rpx;
		display: flex;
		flex-wrap: wrap;
		align-items: center;
	}

	.form-left-text {
		color: #212121;
		margin-bottom: 33rpx;
	}

	.form-left {
		width: 100%;
	}

	.form-right {
		margin-left: 20rpx;
		flex: 1;
		color: #414141;
	}

	.form-right input {
		font-size: 30rpx;
	}

	.form-date>>>.uni-date__x-input {
		height: 97rpx;
		font-size: 30rpx;
	}

	.form-date>>>.uni-icons {
		display: none;
	}


	.apply-reason-text {
		width: 653rpx;
		height: 179rpx;
		background-color: #f6f8fc;
		border: solid 1rpx #e5e5e5;
		margin-top: 21rpx;
		padding: 14rpx 24rpx;
		font-size: 26rpx;
		box-sizing: border-box;
	}

	.apply_require {
		margin-top: 0rpx !important;
	}

	.form-right {
		flex: 1;
		color: #414141;
	}

	/*部门*/
	uni-data-picker {
		width: 100%;
		border: none !important;
	}


	.title {
		font-size: 14px;
		font-weight: bold;
		margin: 20px 0 5px 0;
	}

	.data-pickerview {
		height: 400px;
		border: 1px #e5e5e5 solid;
	}

	.popper__arrow {
		top: -6px;
		left: 50%;
		margin-right: 3px;
		border-top-width: 0;
		border-bottom-color: #EBEEF5;
	}

	.popper__arrow {
		top: -6px;
		left: 50%;
		margin-right: 3px;
		border-top-width: 0;
		border-bottom-color: #EBEEF5;
	}
</style>
