<template>
	<view class="page">
		<pyh-nv ref="nv" :config="nvConfig"></pyh-nv>
		<view class="listBox" :style="{'padding-top':(pageTop+'px')}">
			<view class="content">
				<view class="message-list">
					<view v-for="(item,index) in textlist" :key="index">
						<view class="info-box" v-if="item.type == '7'">
							<view class="info-box-list">
								<view class="serve">
									<view class="serve-title">{{item.name}}<span v-if="item.isbx"
											style="color: red;margin-left: 6rpx;">*</span></view>
									<view class="serve-right">
										<picker range-key="name" mode="multiSelector" @columnchange="columnChange"
											@change="e=> bindPickerChange2(e,index)" :range="array1" :value="idx">
											<view :class="item.cent?'uni-input1':'uni-input2'">
												{{item.cent?item.cent:'请选择'}}
											</view>
										</picker>
										<image src="../../static/down3.png"></image>
									</view>
								</view>
							</view>
						</view>
						<view class="info-box" v-else-if="item.type == '1'">
							<view class="info-box-list">
								<view class="serve">
									<view class="serve-title">{{item.name}}<span v-if="item.isbx"
											style="color: red;margin-left: 6rpx;">*</span></view>
									<view>
										<u-input placeholder="请输入" border="none" v-model="item.cent" inputAlign="right"
											fontSize="13px" color="#3d3d3d"
											placeholderStyle="color: #909090;font-size: 26rpx;"></u-input>
									</view>
								</view>
							</view>
						</view>
						<view class="info-box" v-else-if="item.type == '2'">
							<view class="info-box-list">
								<view class="serve">
									<view class="serve-title">{{item.name}}<span v-if="item.isbx"
											style="color: red;margin-left: 6rpx;">*</span></view>
									<view class="serve-right">
										<picker @change="e=> bindPickerChange1(e,index,'array3')" :range="array3">
											<view :class="item.cent?'uni-input1':'uni-input2'">
												{{item.cent?item.cent:'请选择'}}
											</view>
										</picker>
										<image src="../../static/down3.png"></image>
									</view>
								</view>
							</view>
						</view>
						<view v-else-if="item.type == '3'">
							<view class="info-box">
								<view class="info-box-list">
									<view class="serve">
										<view class="serve-title">{{item.name}}<span v-if="item.isbx"
												style="color: red;margin-left: 6rpx;">*</span></view>
										<view class="serve-right" @tap="openaddress(index)">
											<view :class="item.cent?'uni-input1':'uni-input2'">
												{{item.cent?item.cent:'请选择'}}
											</view>
											<image src="../../static/down3.png"></image>
										</view>
									</view>
								</view>
							</view>
							<view class="info-box" v-if="item.latitude">
								<view class="info-box-list">
									<view class="serve">
										<view class="serve-title">纬度<span v-if="item.isbx"
												style="color: red;margin-left: 6rpx;">*</span></view>
										<view class="serve-right" @tap="openaddress(index)">
											<view :class="item.latitude?'uni-input1':'uni-input2'">
												{{item.latitude?item.latitude:'请选择'}}
											</view>
											<image src="../../static/down3.png"></image>
										</view>
									</view>
								</view>
							</view>
							<view class="info-box" v-if="item.longitude">
								<view class="info-box-list">
									<view class="serve">
										<view class="serve-title">经度<span v-if="item.isbx"
												style="color: red;margin-left: 6rpx;">*</span></view>
										<view class="serve-right" @tap="openaddress(index)">
											<view :class="item.longitude?'uni-input1':'uni-input2'">
												{{item.longitude?item.longitude:'请选择'}}
											</view>
											<image src="../../static/down3.png"></image>
										</view>
									</view>
								</view>
							</view>
						</view>

						<view class="info-box" v-else-if="item.type == '4'">
							<view class="info-box-list">
								<view class="serve">
									<view class="serve-title">{{item.name}}<span v-if="item.isbx"
											style="color: red;margin-left: 6rpx;">*</span></view>
									<view class="serve-right" @tap="opentime(index)">
										<view :class="item.cent?'uni-input1':'uni-input2'">{{item.cent?item.cent:'请选择'}}
										</view>
										<image src="../../static/down3.png"></image>
									</view>
								</view>
							</view>
						</view>
						<view class="info-box" v-else-if="item.type == '5'">
							<view class="info-box-list">
								<view class="info-box-width" style="width: 100%;">
									<view class="info-box-small">{{item.name}}<span v-if="item.isbx"
											style="color: red;margin-left: 6rpx;">*</span></view>
									<view style="margin-top: 20rpx;">
										<textarea
											style="border: solid 1px #eee;border-radius: 18rpx;padding: 20rpx;font-weight: 500;font-size: 26rpx;"
											placeholder-style="color: #909090;font-size: 26rpx;font-weight: 100;"
											placeholder="请输入" :class="item.cent?'uni-input1':'uni-input2'"
											v-model="item.cent"></textarea>
										<!-- <u-textarea count :value="item.cent" placeholder="请输入" placeholderStyle="color: #909090;font-size: 26rpx;font-weight: 500;"></u-textarea> -->
									</view>
								</view>
							</view>
						</view>
						<view class="info-box" v-else-if="item.type == '6'">
							<view class="info-box-list">
								<view class="serve">
									<view class="serve-title">{{item.name}}<span v-if="item.isbx"
											style="color: red;margin-left: 6rpx;">*</span></view>
									<view class="serve-right">
										<picker @change="e=> bindPickerChange1(e,index,'markerTypelist2')" :range="markerTypelist2">
											<view :class="item.cent?'uni-input1':'uni-input2'">
												{{item.cent?item.cent:'请选择'}}
											</view>
										</picker>
										<image src="../../static/down3.png"></image>
									</view>
								</view>
							</view>
						</view>
						<view class="info-box" v-else-if="item.type == '8'">
							<view class="info-box-list">
								<view class="serve">
									<view class="serve-title">{{item.name}}<span v-if="item.isbx"
											style="color: red;margin-left: 6rpx;">*</span></view>
									<view class="serve-right">
										<picker @change="e=> bindPickerChange1(e,index,'markerTypelist1')"
											:range="markerTypelist1">
											<view :class="item.cent?'uni-input1':'uni-input2'">
												{{item.cent?item.cent:'请选择'}}
											</view>
										</picker>
										<image src="../../static/down3.png"></image>
									</view>
								</view>
							</view>
						</view>
					</view>
				</view>
				<view class="message-list">
					<view class="info-box">
						<view class="info-box-list">
							<view class="info-box-width" style="width: 100%;">
								<view class="info-box-small">图片</view>
								<view style="margin-top: 20rpx;width: 100%;">
									<u-upload name="1" multiple :fileList="fileList" @delete="deletePic"
										@afterRead="afterRead" :previewFullImage="true" :maxCount="1"></u-upload>
								</view>
							</view>
						</view>
					</view>
				</view>
				<!-- 				<view class="message-list">
					<view class="info-box">
						<view class="info-box-list">
							<view class="info-box-width" style="width: 100%;">
								<view class="info-box-small">多媒体信息</view>
								<view style="margin-top: 20rpx;width: 100%;">
									<sczl :imagelist="mtbox.imgcent"  :wjlist="mtbox.filecent" @onchangfileJsonimg="e=>{onchangfileJsonimg(e)}" @onchangfileJsonfile="e=>{onchangfileJsonfile(e)}"></sczl>
									
				
								</view>
							</view>
						</view>
					</view>
				</view> -->
				<view class="page-footer">
					<view class="footer-buy">
						<view class="cart-add" @click="mapdoorplatesuccess">
							<image src="../../static/btn5.png"></image>
							<text>保存</text>
						</view>
					</view>
				</view>

			</view>
		</view>
		<uni-calendar ref="calendar" :insert="false" @confirm="confirm" />
	</view>
</template>

<script>
	import service from '@/service/service.js'
	import BASE_URL from "@/common/config.js"
	import sczl from "@/components/sczl.vue"
	export default {
		data() {
			return {
				fileList: [],
				markerTypelist1: ['石材','钢材'],
				markerTypelist2: ['小型', '中型', '大型'],
				mtbox: {
					imgcent: [],
					filecent: [],
				},
				idx: [0, 0, 0, 0],
				array1: [],
				array2: ['可公开', '不宜公开', '大洋怪重', '不属于地名'],
				array4: ['现今地名', '历史地名', '本地名删除'],
				time: null,
				array3: getApp().globalData.list1,
				BASE_URL,
				nvConfig: {
					title: "修改界桩",
					bgColor: "#ffffff",
					color: "#000000",
					fixedAssist: {
						hide: true,
					},
				},
				lbbox: [],
				textlist: [{
						name: '界线名称',
						type: '1',
						isbx: false,
						cent: '',
						from: 'boundaryName'
					},
					{
						name: '界桩编号',
						type: '1',
						isbx: false,
						cent: '',
						from: 'markerNumber'
					},
					{
						name: '界桩规格',
						type: '6',
						isbx: false,
						cent: '',
						from: 'markerSpecification'
					},
					{
						name: '界桩材质',
						type: '8',
						isbx: false,
						cent: '',
						from: 'unit'
					},
					{
						name: '高程',
						type: '1',
						isbx: false,
						cent: '',
						from: 'elevation'
					},
					{
						name: '所在地',
						type: '3',
						isbx: false,
						cent: '',
						from: 'location'
					},
					{
						name: '录入时间',
						type: '4',
						isbx: false,
						cent: '',
						from: 'enteredTime'
					},
					{
						name: '录入人姓名',
						type: '1',
						isbx: false,
						cent: '',
						from: 'enteredUser'
					},
				]
			};
		},
		components: {
			sczl
		},
		computed: {
			pageTop() {
				return parseInt(88 * uni.getSystemInfoSync().windowWidth / 750) + uni.getSystemInfoSync().statusBarHeight
			}
		},
		onLoad(params) {
			let from = params.cent?JSON.parse(params.cent):''
			console.log(from)
			this.from = params.cent?JSON.parse(params.cent):''
			if(from) {
				for (let i = 0; i < this.textlist.length; i++) {
					if(this.textlist[i].from == 'location') {
						this.textlist[i].cent =from[this.textlist[i].from] 
						 this.textlist[i].longitude = from.longitude 
						this.textlist[i].latitude = from.latitude 
					} else {
						this.textlist[i].cent = from[this.textlist[i].from]
					}
				}
				this.fileList.push({
					name: from.imageInfo,
					fileId: from.imageInfo,
					url: this.BASE_URL + from.imageInfo
				})
			}
		},
		methods: {
			async afterRead(event) {
				for (let i = 0; i < event.file.length; i++) {
					var res = await this.uploadImg(event.file[i].url)
					// console.log(res)
					res = JSON.parse(res.data)
					this.fileList.push({
						name: res.fileName,
						fileId: res.newFileName,
						url: this.BASE_URL + res.fileName
					})
				}
			},
			uploadImg(url) {
				return new Promise((r, e) => {
					uni.uploadFile({
						url: this.BASE_URL + "/common/upload",
						filePath: url,
						name: "file",
						success: (d) => r(d)
					})
				})
			},
			deletePic(event) {
				this.fileList.splice(event.index, 1)
			},
			gopath(e) {
				uni.navigateTo({
					url: e
				})
			},
			onchangfileJsonimg(e, ) {
				console.log(e);
				this.mtbox.imgcent = e
			},
			onchangfileJsonfile(e) {
				console.log(e);
				this.mtbox.filecent = e
			},
			confirm(e) {
				this.textlist[this.time].cent = e.fulldate
			},
			opentime(e) {
				this.$refs.calendar.open();
				this.time = e
			},
			mapdoorplatesuccess() {
				console.log(this.from)
				for (let i = 0; i < this.textlist.length; i++) {
					if(this.textlist[i].from == 'location') {
						this.from[this.textlist[i].from] = this.textlist[i].cent
						this.from.longitude = this.textlist[i].longitude
						this.from.latitude = this.textlist[i].latitude
					} else {
						this.from[this.textlist[i].from] = this.textlist[i].cent
					}
				}
				if(this.fileList.length>0) {
					this.from.imageInfo = this.fileList[0].name
				}
				console.log(this.from)
				// return
				this.API.removeplie(this.from).then(res => {
					console.log(res);
					if (res.code == 200) {
						uni.showToast({
							icon: 'success',
							title: "修改成功",
						})
						setTimeout(() => {
							uni.navigateTo({
								url: '/pages/mapstakelinedetail/mapstakelinedetail?cent=' + JSON.stringify(this.from)
							})
							// uni.navigateBack({
							// 	delta: 2
							// });
						}, 800)

					}
				})
			},
			bindPickerChange2: function(e, e1) {
				console.log('picker发送选择改变，携带值为', e, e1, this.array1)
				let box1 = this.array1[0]
				let box2 = this.array1[1]
				let box3 = this.array1[2]
				let box4 = this.array1[3]
				this.textlist[e1].cent = box4[e.detail.value[3]] ? box4[e.detail.value[3]].name : box3[e.detail.value[
						2]] ? box3[e.detail.value[2]].name : box2[e.detail.value[1]] ? box2[e.detail.value[1]].name :
					box1[e.detail.value[0]].name
			},
			bindPickerChange1: function(e, e1, e2) {
				console.log('picker发送选择改变，携带值为', e, e1, e2)
				this.textlist[e1].cent = this[e2][e.detail.value]
			},
			openaddress(e) {
				let that = this
				// 用户已经同意小程序使用录音功能，后续调用 wx.startRecord 接口不会弹窗询问
				wx.chooseLocation({
					success: function(res) {
						that.textlist[e].cent = res.address
						that.textlist[e].latitude = res.latitude
						that.textlist[e].longitude = res.longitude
						console.log(res)
					},
					fail(err) {
						console.log(err)
					}
				});
			},
			// picker的列发生变化时
			columnChange(e) {
				// column列索引（0-第一列）  value是列中数组索引
				this.updatelist(parseInt(e.target.column), parseInt(e.target.value))
			},
			updatelist(col, idx) {
				console.log(col, idx)
				let data = this.lbbox
				let list = this.array1 // 视图渲染
				list[0] = data[0] // picker的第一列数据
				// 当第一列变化时
				if (col == 0) {
					// 更新第二列的数据
					list[1] = list[0][idx] ? data[1].filter(ele => ele.pid == list[0][idx].id) : []
					// 更新第三列的数据
					list[2] = list[1][0] ? data[2].filter(ele => ele.pid == list[1][0].id) : []
					list[3] = list[2][0] ? data[3].filter(ele => ele.pid == list[2][0].id) : []
					this.idx = [idx, 0, 0, 0]
				}
				// 当第二列变化时
				if (col == 1) {
					// 只用更新第三列数据
					list[2] = list[1][idx] ? data[2].filter(ele => ele.pid == list[1][idx].id) : []
					list[3] = list[2][0] ? data[3].filter(ele => ele.pid == list[2][0].id) : []
					this.idx = [this.idx[0], idx, 0, 0]
				}
				// 当第三列变化时
				if (col == 2) {
					// 只用更新第三列数据
					list[3] = list[2][idx] ? data[3].filter(ele => ele.pid == list[2][idx].id) : []
					this.idx = [this.idx[0], this.idx[1], idx, 0]
				}
				// 更新list，更新picker视图
				this.array1 = list
			}
		}
	}
</script>

<style scoped lang="scss">
	.uni-input1 {
		color: #3d3d3d;
		// font-weight: bold;

	}

	.uni-input2 {
		color: #909090;

	}

	.listBox {
		position: relative;
		z-index: 1;
	}

	.content {
		width: 100%;
		padding-bottom: 120rpx;
	}

	.titleall-left {
		font-size: 28rpx;
		font-weight: bold;
		display: flex;
		align-items: center;
		margin: 30rpx;

		.titleall-left-line {
			width: 10rpx;
			height: 25rpx;
			border-radius: 18rpx;
			background-color: #547DFF;
			margin-right: 20rpx;
			box-shadow: inset 0rpx 4rpx 9rpx 0rpx rgba(255, 255, 255, 0.34), 5rpx 7rpx 9rpx 0rpx rgba(80, 161, 255, 0.33);
		}
	}

	.top-box {
		display: flex;
		justify-content: space-between;
		margin: 30rpx;
		font-size: 28rpx;
		font-weight: bold;
		background-color: #fff;
		border-radius: 21rpx;
		padding: 30rpx;

		.top-box-img {
			image {
				width: 40rpx;
				height: 40rpx;
			}
		}
	}

	.titleall-box {
		display: flex;
		justify-content: space-between;
		padding: 40rpx 20rpx 20rpx 0;

		.titleall-left {
			font-size: 32rpx;
			font-weight: bold;
			display: flex;
			align-items: center;

			.titleall-left-line {
				width: 14rpx;
				height: 36rpx;
				border-radius: 0 10rpx 10rpx 0;
				background-color: #667FFF;
				box-shadow: 0 0 10rpx 5rpx #d1d9ff;
				margin-right: 20rpx;
			}

			text {
				font-size: 28rpx;
				color: #999999;
			}
		}
	}

	.message-list {
		// background-color: #FFFFFF;
		// border-radius: 20rpx;
		font-size: 25rpx;
		margin: 25rpx;

		.info-box {
			padding: 0 40rpx;
			background: #FFFFFF;
			border-radius: 21rpx;
			margin-bottom: 15rpx;

			.info-box-list {
				display: flex;
				align-items: center;
				border-bottom: 2rpx solid #ececec;
				padding-top: 20rpx;
				padding-bottom: 20rpx;

				.width100 {
					width: 100% !important;
				}

				.info-box-width {
					width: 50%;
					font-size: 30rpx;
					font-weight: bold;

					.info-box-small {
						font-size: 26rpx;
						color: #a8a8a8;
						font-weight: 500;
						margin-top: 10rpx;
					}

					.info-box-list-img {
						margin-top: 30rpx;

						image {
							width: 180rpx;
							height: 180rpx;
							border-radius: 20rpx;
						}
					}

					.input-text {
						font-size: 30rpx;
					}

					.inputtext {
						color: #3d3d3d;
					}

					.textarea {
						background-color: #F7F7F7;
						border-radius: 20rpx;
						width: 100%;
						margin-top: 20rpx;
						padding: 20rpx;
						font-size: 28rpx;
						font-weight: normal;
						min-height: 80rpx;
					}
				}

				.serve {
					display: flex;
					justify-content: space-between;
					align-items: center;
					width: 100%;

					.serve-title {
						font-size: 26rpx;
						color: #909090;
					}

					.serve-right {
						font-size: 26rpx;
						// font-weight: bold;
						display: flex;
						align-items: center;
						justify-content: flex-end;

						text {
							color: #FC4444;
						}

						image {
							width: 20rpx;
							height: 20rpx;
							margin-left: 10rpx;
						}
					}
				}
			}

			.info-box-list:last-child {
				border-bottom: 0;
			}
		}
	}

	/* 底部 */
	.page-footer {
		margin: 30rpx;
		display: flex;
		height: 100rpx;

		.footer-buy {
			height: 100%;
			width: 100%;

			.cart-add {
				display: flex;
				align-items: center;
				justify-content: center;
				margin-top: 60rpx;

				image {
					position: absolute;
					z-index: 0;
					width: 95%;
					height: 83rpx;
					box-shadow: 5rpx 10rpx 20rpx 0 #b7c8ff;
					border-radius: 100rpx;
				}

				text {
					font-size: 30rpx;
					font-weight: bold;
					color: #fff;
					position: absolute;
					z-index: 1;
				}
			}
		}
	}
</style>