<template>
	<view>
		<view class="view-bg">
			<view>
				<view class="uni-list-cell">
					<view class="uni-list-cell-left">
						工程类型
					</view>
					<view class="uni-list-cell-db">
						<view v-if="this.isEmpty(this.projectValue.dictValue)" style="margin-top: 10;"
							@click="pickerShow('gcType')">
							<span style="color: darkgray;">请选择工程类型</span>
						</view>
						<view v-else style="margin-top: 10;" @click="pickerShow('gcType')">
							<span style="color: black;">{{projectValue.dictLabel}}</span>
						</view>
					</view>
				</view>
				<view class="uni-common-mt" style="width: 100%;">
					<text class="uni-title uni-common-pl">建设单位</text>
					<view style="width: 100%;padding-right: 20rpx;box-sizing: border-box;">
						<textarea class="textarea" placeholder="请输入建设单位" maxlength="100"
							placeholder-style="padding: 10rpx;"
							style="width: 100%;height: 100%;border: 1rpx solid #cccccc; border-radius: 15rpx;padding: 10rpx;line-height:normal;"
							auto-height v-model="buildUnit"></textarea>
					</view>
				</view>

				<view class="uni-common-mt" style="width: 100%;">
					<text class="uni-title uni-common-pl">项目负责人</text>
					<view style="width: 100%;padding-right: 20rpx;box-sizing: border-box;">
						<textarea class="textarea" placeholder="请输入项目负责人" maxlength="16"
							placeholder-style="padding: 10rpx;"
							style="width: 100%;height: 100%;border: 1rpx solid #cccccc; border-radius: 15rpx;padding: 10rpx;line-height:normal;"
							auto-height v-model="projectLeader"></textarea>
					</view>
				</view>

				<view class="uni-common-mt" style="width: 100%;">
					<text class="uni-title uni-common-pl">现场负责人</text>
					<view style="width: 100%;padding-right: 20rpx;box-sizing: border-box;">
						<textarea class="textarea" placeholder="请输入现场负责人" maxlength="16"
							placeholder-style="padding: 10rpx;"
							style="width: 100%;height: 100%;border: 1rpx solid #cccccc; border-radius: 15rpx;padding: 10rpx;line-height:normal;"
							auto-height v-model="sceneLeader"></textarea>
					</view>
				</view>

				<view class="uni-common-mt" style="width: 100%;">
					<text class="uni-title uni-common-pl">设计单位</text>
					<view style="width: 100%;padding-right: 20rpx;box-sizing: border-box;">
						<textarea class="textarea" placeholder="请输入设计单位" maxlength="100"
							placeholder-style="padding: 10rpx;"
							style="width: 100%;height: 100%;border: 1rpx solid #cccccc; border-radius: 15rpx;padding: 10rpx;line-height:normal;"
							auto-height v-model="designUnit"></textarea>
					</view>
				</view>
				<view class="uni-common-mt" style="width: 100%;">
					<text class="uni-title uni-common-pl">设计负责人</text>
					<view style="width: 100%;padding-right: 20rpx;box-sizing: border-box;">
						<textarea class="textarea" placeholder="请输入设计负责人" maxlength="16"
							placeholder-style="padding: 10rpx;"
							style="width: 100%;height: 100%;border: 1rpx solid #cccccc; border-radius: 15rpx;padding: 10rpx;line-height:normal;"
							auto-height v-model="designLeader"></textarea>
					</view>
				</view>
				<view class="uni-common-mt" style="width: 100%;">
					<text class="uni-title uni-common-pl">设计联系电话</text>
					<view style="width: 100%;padding-right: 20rpx;box-sizing: border-box;">
						<textarea class="textarea" placeholder="请输入设计联系电话" maxlength="11" type="number"
							placeholder-style="padding: 10rpx;"
							style="width: 100%;height: 100%;border: 1rpx solid #cccccc; border-radius: 15rpx;padding: 10rpx;line-height:normal;"
							auto-height v-model="designLeaderPhone"></textarea>
					</view>
				</view>
				<view class="uni-common-mt" style="width: 100%;">
					<text class="uni-title uni-common-pl">监理单位</text>
					<view style="width: 100%;padding-right: 20rpx;box-sizing: border-box;">
						<textarea class="textarea" placeholder="请输入监理单位" maxlength="100"
							placeholder-style="padding: 10rpx;"
							style="width: 100%;height: 100%;border: 1rpx solid #cccccc; border-radius: 15rpx;padding: 10rpx;line-height:normal;"
							auto-height v-model="controlUnit"></textarea>
					</view>
				</view>
				<view class="uni-common-mt" style="width: 100%;">
					<text class="uni-title uni-common-pl">监理负责人</text>
					<view style="width: 100%;padding-right: 20rpx;box-sizing: border-box;">
						<textarea class="textarea" placeholder="请输入监理负责人" maxlength="16"
							placeholder-style="padding: 10rpx;"
							style="width: 100%;height: 100%;border: 1rpx solid #cccccc; border-radius: 15rpx;padding: 10rpx;line-height:normal;"
							auto-height v-model="controlLeader"></textarea>
					</view>
				</view>
				<view class="uni-common-mt" style="width: 100%;">
					<text class="uni-title uni-common-pl">监理联系电话</text>
					<view style="width: 100%;padding-right: 20rpx;box-sizing: border-box;">
						<textarea class="textarea" placeholder="请输入监理联系电话" maxlength="11" type="number"
							placeholder-style="padding: 10rpx;"
							style="width: 100%;height: 100%;border: 1rpx solid #cccccc; border-radius: 15rpx;padding: 10rpx;line-height:normal;"
							auto-height v-model="controlLeaderPhone"></textarea>
					</view>
				</view>
				<view class="align-items" style="margin-top: 20px;margin-bottom: 20px;">
					<view class="container" style="color: gainsboro;">*请上传照片</view>
					<view class="" style="display: flex; flex-wrap: wrap;margin-top: 10px; margin-left: 10px;">
						<image src="/static/images/chooseimg.png" mode=""
							style="width: 100rpx; height: 100rpx; margin: 0 12rpx;; " @click="choose()"></image>
						<view v-for="(item,index) in imgArr" :key="index" style="position: relative;">
							<view
								v-if="item.substring(item.length - 3) == 'png' || item.substring(item.length - 3) == 'jpg' ">
								<image :src="item" mode="" style="width: 100rpx; height: 100rpx; margin: 0 12rpx;"
									@click="showPhoto(index)">
								</image>
							</view>
							<view v-else>
								<video :src="item" style="width: 100rpx; height: 100rpx; margin: 0 12rpx;"></video>
							</view>
							<view @click="remove(index)"
								style="position: absolute; top: 0; right: 14rpx; border-radius: 50%;">
								<uni-icons type="close" color="darkgray" size="18"></uni-icons>
							</view>
						</view>
					</view>
				</view>

			</view>
		</view>

		<view class="action-btn">
			<button @click="onsubmit" class="btn cu-btn block bg-blue lg round">提交</button>
		</view>
		<SelectPicker :list="dictOptions" @change="changeSelectDict" v-if="openDict" @close="closeDict"
			titleKey="dictLabel" subtitleKey="dictValue" v-model="dictLabel"></SelectPicker>
	</view>
</template>

<script>
	import SelectPicker from '../../components/selectPicker/select_picker.vue'
	import bottomSheet from '../../components/bottomSheet/bottomSheet.vue'
	import uniIcons from '../../uni_modules/uni-icons/components/uni-icons/uni-icons.vue'
	
	import {
		getDicts
	} from "@/api/system/dict/data";
	import {
		getToken
	} from '../../utils/auth';
	import {
		getUserProfile
	} from "@/api/system/user"
	import {
		submitMunicipalData
	} from '@/api/common'
	export default {
		components: {
			SelectPicker,
			uniIcons
		},
		data() {
			return {
				headers: {
					Authorization: "Bearer " + getToken()
				},
				user: {
					nickName: "",
					phonenumber: "",
					email: "",
					sex: ""
				},
				projectValue: {},
				dictOptions: [],
				openDict: false,

				buildUnit: "",
				projectLeader: "",
				sceneLeader: "",
				designUnit: "",
				designLeader: "",
				designLeaderPhone: "",
				controlUnit: "",
				controlLeader: "",
				controlLeaderPhone: "",
				//图片相关
				imgArr: [],
				progress: 0, //上传图片进度百分比
				loading: false,
			}
		},
		methods: {
			isEmpty(str) {
				return (!str || 0 === str.length);
			},
			pickerShow(e) {
				this.type = e; //赋值类型
				this.openDict = true;
				if (e == 'gcType') {
					getDicts("industry_engin_type").then(response => { //工程类型 市政 工业
						this.dictOptions = response.data;

					});
				}
			},
			//关闭弹窗
			closeDict(e) {
				this.openDict = false
			},
			changeSelectDict(item, index) {
				this.openDict = false;
				if (this.type == 'gcType') {
					this.projectValue = item
				}
			},
			onsubmit() {
				let param = {
					file:[],// 附件
					pics:[], // 附件返回
					type:2,//市政：2，工业：1
					enginName:this.buildUnit,// 工程名称
					enginType:"",// 工程类型
					constructUnit:"", // 建筑单位
					projectHead:"", // 项目负责人
					sceneHead:"", // 现场负责人
					designUnit:"", // 设计单位
					designHead:"", // 设计负责人
					designPhone:"", // 设计联系电话
					supervisionUnit:"", // 监理单位
					supervisionHead:"",// 监理负责人
					supervisionPhone:"", // 监理联系电话
					enginClassification:"",// 工程分类
					zEngineeringNodeBo:{ // 工程节点
						type:"", // 节点类型
						zEngineeringInfoBo:{// 施工信息
							constructUser:"",// 施工人
							constructTime:"",// 施工时间
							zEngiineeringPhotoBoList:[],
							zEngineeringMaterialBo:[{// 图片列表
								materialQuality:"", // 用料对象
								specifications:"", // 用料规格
								number:""  // 用料数量
							}]
						}
					},
					enginType:"",
					
					
				};
				submitMunicipalData(param).then(res => {
					if (res.code == '200') {
						uni.showToast({
							title: res.msg,
							icon: 'none',
							//显示持续时间为 3秒
							duration: 2000
						});
						setTimeout(function() {
							uni.navigateBack();
						}, 1000)

					}

					this.$modal.closeLoading()
				})
			},
			showPhoto(index) {
				uni.previewImage({
					current: index,
					urls: this.imgArr,
				})

			},
			remove(index) {
				uni.showModal({
					title: '提示',
					content: '是否删除该图片或视频？',
					success: (res) => {
						if (res.confirm) {
							this.imgArr.splice(index, 1)
							console.log('this.imgarr', this.imgArr)
							if (this.imgArr.length <= 0) {
								this.photo = true;
							}
						}
					}
				})
			},
			choose() {
				let _this = this;
				uni.showActionSheet({
					title: '上传',
					itemList: ['图片', '视频'],
					success: (res) => {
						console.log(res)
						if (res.tapIndex == 0) {
							this.chooseimage()
						} else {
							this.choosevideo()
						}
					}
				})
			},
			chooseimage() {

				let _this = this;
				console.log('图片', _this.headers)
				uni.chooseImage({
					sizeType: ['album', 'camera'],
					success(resp) {
						resp.tempFiles.forEach((item, index) => {
							const task = uni.uploadFile({
								url: _this.$HTTP + `/obs`,
								filePath: item.path,
								name: 'file',
								formData: {},
								header: _this.headers,

								success: res => {
									// 判断是否json字符串，将其转为json格式
									console.log("结果", res)
									// let data = _this.$u.test.jsonString(res
									// 	.data) ? JSON.parse(res.data) : res.data;
									let data = JSON.parse(res.data);
									if (![200].includes(data.code)) {
										// this.uploadError(index, data);
										_this.$modal.msg(data.msg)
									} else {
										if (_this.progress === 100) {
											console.log('_this.progress', _this.progress)
											//console.log('data----', data)data
											console.log('res--', res)
											_this.imgArr.push(data.data.url)
											console.log('imgArr', _this.imgArr)
											_this.$modal.msg('上传成功！')
											_this.photo = false;
										}
									}
								},
								fail: e => {
									console.log(e)
									_this.$modal.msg('上传失败！')
									//_this.uploadError(index, e);
								},
								complete: res => {
									uni.hideLoading();
									_this.uploading = false;

								}
							});
							task.onProgressUpdate(res => {
								_this.progress = res.progress;
								console.log('onProgressUpdate', res)
								console.log('task.onProgressUpdate', _this.progress)
								uni.showLoading({
									title: '上传中'
								})
								if (_this.progress != 100) {
									_this.loading = false
									console.log('_this.loading false', _this.loading)
								} else {
									_this.loading = true
									console.log('_this.loading true', _this.loading)
								}
							});

						})

					},
				})
			},

			choosevideo() {
				let _this = this;
				console.log('视频')
				uni.chooseVideo({
					sourceType: ['album', 'camera'],
					maxDuration: 30,
					success(resp) {
						const task = uni.uploadFile({
							url: _this.$HTTP + `/obs`,
							filePath: resp.tempFilePath,
							name: 'file',
							formData: {},
							header: _this.headers,
							success: res => {
								// 判断是否json字符串，将其转为json格式
								let data = JSON.parse(res.data);
								if (![200].includes(res.statusCode)) {
									this.uploadError(index, data);
								} else {
									//上传成功
									if (_this.progress === 100) {
										console.log('_this.progress', _this.progress)
										_this.imgArr.push(data.data.url)
										console.log('imgArr', _this.imgArr)
										_this.$modal.msg('上传成功！')
										_this.photo = false;
									}
								}
							},
							fail: e => {
								_this.$modal.msg('上传失败！')
								this.uploadError(index, e);
							},
							complete: res => {
								uni.hideLoading();
								_this.uploading = false;
							}
						});
						task.onProgressUpdate(res => {
							_this.progress = res.progress;
							console.log('onProgressUpdate', res)
							uni.showLoading({
								title: '上传中'
							})
							if (_this.progress != 100) {
								_this.loading = false
								console.log('_this.loading false', _this.loading)
							} else {
								_this.loading = true
								console.log('_this.loading true', _this.loading)
							}
						});

					},
				})
			},
		}
	}
</script>

<style>
	.container {
		display: flex;
		margin-left: 10px;
		margin-top: 10px;
		margin-right: 10px;
		align-items: flex-start;
		justify-content: space-between;
	}

	.text {
		font-size: 16px;
		color: #333;
	}

	.background {
		border: 15px solid hsla(0, 0%, 100%, .5);
		background: white;
		background-clip: padding-box;
		/*从padding开始往外面裁剪背景*/

	}

	.btn {
		margin-top: 40px;
		margin-right: 20px;
		margin-bottom: 120px;
		margin-left: 20px;
		height: 45px;
	}

	.number {
		display: flex;
		/* 水平居中显示子元素 */
		align-items: flex-start;
		/* 垂直居中显示子元素 */
		justify-content: space-between;
		/* 左右间距等于间距大小 */
		padding: 10px;
		/* 设置padding以提高视觉效果 */
	}

	.textarea {
		margin-top: 10upx;
		width: 100%;
		border: 1rpx solid red;
		min-height: 100upx;
		line-height: 20px;
	}

	.uni-list-cell-db,
	.uni-list-cell {
		position: relative;
		display: flex;
		flex-direction: row;
		justify-content: space-between;
		align-items: center;
	}

	.uni-list-cell-left {
		white-space: nowrap;
		font-size: 28rpx;
	}


	.view-bg {
		margin-left: 8px;
		margin-right: 8px;
		margin-top: 8px;
		padding: 10px;
		background-color: #fff;
		border-radius: 5px;
	}
</style>