<template>
	<view class="content">
		<view class="top">
			<image src="../../static/img/jiuzai.png" mode="widthFix" class="bgi"></image>
		</view>
		<view class="pop-box">公众参与</view>
		<view class="pop-list">
			<view class="list-box1" v-for="(item, index) in peoplelist" :key="index" v-if="index < 20">
				<view class="list-top">
					<image src="../../static/img/002.png" mode="" class="avatar-img"></image>
				</view>
				<view class="nickname">{{ item.name }}</view>
			</view>
		</view>
		<view class="red-box">救在身边报名</view>
		<!-- 	<view class="people">
			
		</view> -->
		<view class="list-box">
			<view class="list">
				<view class="list-left">姓名 <text>*</text></view>
				<input type="text" v-model="name" class="list-input" placeholder="请填写您的姓名" />
			</view>
			<view class="list">
				<view class="list-left">手机号码 <text>*</text></view>
				<input type="text" v-model="phone" class="list-input" placeholder="请填写您的联系方式" />
			</view>
			<view class="list" @click="getLocation">
				<view class="list-left">地址 <text>*</text></view>
				<!-- <picker-address class="box-right" @change="onCityClick">{{ address }}</picker-address> -->
				<input type="text" v-model="showaddress" class="list-input" placeholder="请选择常用地址" />
			</view>
			<view class="list">
				<view class="list-left">机构 <text>*</text></view>
				<picker @change="bindPickerChange" :range="chooseMechanismList" style="width: 100%;">
					<input type="text" v-model="mechanism" class="list-input" placeholder="请填写您的所在机构" disabled />
					<!-- <view class="list-input">{{'请填写您的所在机构'}}</view> -->
				</picker>
			</view>
			<view class="list">
				<view class="list-left">志愿者编号 / 证书编号</view>
				<input type="text" v-model="volunteer_id" class="list-input" placeholder="请填写您的志愿者编号 / 证书编号" />
			</view>
			<view class="upload-box">
				<view class="upload-left">证件 <text>*</text></view>
				<view class="upload-right">
					<image :src="certificates" mode="" class="upload-img" @click.stop="imgsub" v-if="certificates">
					</image>
					<image src="../../static/images/upload.png" class="upload-img" mode="" v-if="!certificates"
						@click.stop="imgsub"></image>
				</view>
			</view>
		</view>
		<view class="sub" :class="{ action: loding }" @click="!loding ? applyRescuer() : ''">提交申请</view>
	</view>
</template>

<script>
	import {
		mapState,
		mapMutations
	} from 'vuex';
	import {
		saveUrl,
		interceptor
	} from '@/utils/loginUtils.js';
	import {
		mechanism
	} from '@/api/ask.js';
	import {
		getNumber,
		getInstitution
	} from '@/api/index.js';
	import {
		upload,
		addrescuer
	} from '@/api/ask.js';
	import {
		getMechanismList,
		applyRescuer,
		getRescuerList,
		getApplyList
	} from '@/api/category.js'

	import pickerAddress from '@/components/wangding-pickerAddress/wangding-pickerAddress.vue';
	export default {
		components: {
			pickerAddress
		},
		data() {
			return {
				longitude4: '',
				latitude4: '',
				longitude: '',
				latitude: '',
				name: '',
				phone: '',
				mechanism: '',
				title: '选择机构',
				show: false,
				list: [],
				initSelected: [],
				searchVal: '',
				address: '',
				certificates: '',
				loding: false, //是否提交中
				showaddress: '', //显示用的地址
				count: 0,
				peoplelist: [],
				addressData: {
					name: '',
					mobile: '',
					latitude: 0, //纬度
					longitude: 0, //经度
					address: {
						province: '',
						city: '',
						district: '',
						detail: ''
					},
					area: '',
					default: false
				},
				chooseMechanismList: [], //供选择的机构列表
				mechanismList: [], //完整机构列表
				volunteer_id: '', //志愿者标号
				institution_id: '', //机构id
			};
		},
		onLoad() {
			let obj = this;
			obj.name = obj.userInfo.nickname || ''
			obj.phone = obj.userInfo.mobile
			console.log('开始加载事件');
		},
		computed: {
			...mapState('user', ['hasLogin', 'userInfo']),
		},
		onShow() {
			this.loadData();
			this.getApplyList()
			this.getMechanismList()
			if (this.hasLogin) {} else {
				saveUrl();
				uni.showModal({
					title: '登录',
					content: '您未登录，是否马上登陆?',
					success: e => {
						if (e.confirm) {
							interceptor();
						}
					},
					fail: e => {
						console.log(e);
					}
				});
			}
		},
		watch: {
			searchVal() {
				this.ListDate();
			}
		},
		methods: {
			getApplyList() {
				getApplyList().then(res => {
					console.log(res,'getApplyList')
				})
			},
			// 获取救援者列表
			getRescuerList(lat, lon) {
				getRescuerList({
					page: 1,
					limit: 20,
					latitude: lat,
					longitude: lon,
				}).then(res => {
					console.log(res, 'getRescuerList++++++++++')
					this.peoplelist = res.data
				})
			},
			// 获取机构
			getMechanismList() {
				getMechanismList().then(({
					data
				}) => {
					this.mechanismList = data
					if (data) {
						this.chooseMechanismList = data.map(item => {
							return item.name
						})
					}
				})
			},
			// 选择机构
			bindPickerChange(e) {
				this.mechanism = this.chooseMechanismList[e.detail.value]
				this.institution_id = this.mechanismList[e.detail.value].id
			},
			applyRescuer() {
				let obj = this
				if (obj.name == '') {
					obj.$api.msg('请输入您的姓名');
					return;
				}

				const reg = /^(\+?0?86-?)?1[\d]\d{9}$/;
				if (!reg.test(obj.phone)) {
					obj.$api.msg('请填写正确的手机号码');
					return;
				}
				if (obj.showaddress == '') {
					obj.$api.msg('请选择您的所在地区');
					return;
				}
				if (obj.mechanism == '') {
					obj.$api.msg('请选择机构');
					return;
				}
				if (obj.certificates == '') {
					obj.$api.msg('请上传救护员证书或身份证');
					return;
				}
				let data = {
					name: obj.name,
					phone: obj.phone,
					institution_id: obj.institution_id,
					volunteer_id: obj.volunteer_id,
					address: obj.showaddress,
					latitude: obj.addressData.latitude,
					longitude: obj.addressData.longitude,
					certificateimage: obj.certificates
				}
				applyRescuer(data).then(res => {
					console.log(res, '申请+++++++++')
					obj.loding = false;
					uni.navigateTo({
						url: '../joinSuc/joinNow'
					});
				})
			},
			async loadData() {
				let obj = this;
				// obj.getRescuerList()
				obj.getLocal()
			},
			// 选择当前位置
			getLocation() {
				console.log('选择当前位置');
				let obj = this;
				// let wxOjb = require('jweixin-module');
				uni.chooseLocation({
					success: function(res) {
						console.log(res)
						obj.addressData.area = res.name;
						console.log('位置名称：' + res.name);
						console.log('详细地址：' + res.address);
						console.log('纬度：' + res.latitude);
						console.log('经度：' + res.longitude);
						obj.addressData.latitude = res.latitude;
						obj.addressData.longitude = res.longitude;
						// let	dizhi = obj.addressData.latitude + ','+ obj.addressData.longitude;
						obj.showaddress = res.address;
					}
				});
				
			},
			onChange(val) {
				let obj = this;
				console.log(val, 'onChange');
			},
			onSearchInput(val) {
				this.searchVal = val.value;
			},
			// 上传图片
			imgsub() {
				console.log('imgsub');
				upload({
					filename: ''
				}).then(data => {
					this.certificates = data[0].fullurl;
				});
			},
			// 获取本地坐标
			getLocal() {
				let obj = this;
				let wxOjb = require('jweixin-module');
				wxOjb.ready(()=> {
					uni.getLocation({
						type: 'gcj02',
						success(e) {
							console.log(e)
							obj.latitude4 = Math.abs(e.latitude)
							obj.longitude4 =  Math.abs(e.longitude)
							obj.getRescuerList(obj.latitude4,obj.longitude4)
						},
						fail(err) {
							obj.getLocal()
						}
					})
				})
				
			}
		}
	};
</script>

<style lang="scss">
	page {
		// background-color: #FD3B34;
		background-image: url();
	}

	.content {
		line-height: 1;

		// background-color: #FD3B34;
		.top {
			width: 750rpx;
			margin: 0 0 -150rpx;
			.bgi {
				display: block;

				width: 750rpx;
				height: 609rpx;
				// margin: 53rpx auto;
				// position: relative;
				// top: -20rpx;
			}
		}

		.top-xtitle {
			font-size: 65rpx;
			font-family: Microsoft YaHei;
			font-weight: bold;
			color: #FFFFFF;
			line-height: 110rpx;
			// text-shadow: 0px 5px 8px rgba(96, 1, 0, 0.61);
			text-align: center;
		}

		.top-title {
			font-size: 85rpx;
			font-family: PingFang SC;
			font-weight: bold;
			color: #FD424B;
			font-family: Microsoft YaHei;
			font-weight: bold;
			color: #FFFFFF;
			line-height: 110rpx;
			// text-shadow: 0px 5px 8px rgba(96, 1, 0, 0.61);
			text-align: center;
			padding-bottom: 69rpx;
		}

		.pop-box {
			padding-top: 31rpx;
			margin: 0 auto;
			position: relative;
			z-index: 99;
			width: 156rpx;
			height: 36rpx;
			font-size: 38rpx;
			font-family: PingFang SC;
			font-weight: bold;
			color: #000;

			&::before {
				content: '';
				width: 220rpx;
				height: 17rpx;
				background: rgba(254, 166, 78, 1);
				opacity: 0.26;
				position: absolute;
				bottom: -35rpx;
				left: -40rpx;
			}
		}

		.red-box {
			padding-top: 31rpx;
			margin: 0 auto;
			position: relative;
			z-index: 99;
			width: 300rpx;
			text-align: center;
			height: 36rpx;
			font-size: 38rpx;
			font-family: PingFang SC;
			font-weight: bold;
			color: #000;

			&::after {
				content: '';
				width: 300rpx;
				height: 17rpx;
				background: rgba(254, 166, 78, 1);
				opacity: 0.26;
				position: absolute;
				bottom: -35rpx;
				left: 0rpx;
				right: 0;
				margin: auto;
			}
		}

		.red-box2 {
			position: relative;
			width: 405rpx;
			line-height: 66rpx;
			text-align: center;
			// background: linear-gradient(0deg, #c90f1b, #f14d33);
			border-radius: 10rpx;
			font-size: 30rpx;
			font-weight: 500;
			color: #ffffff;
			margin: -80rpx auto 0;
			position: relative;
			z-index: 1;
		}

		.pop-list {
			width: 686rpx;
			background: #ffffff;
			border-radius: 29rpx;
			position: relative;
			margin: -33rpx auto 78rpx;
			padding: 150rpx 0rpx 30rpx 30rpx;
			display: flex;
			flex-wrap: wrap;
			// box-shadow: 0px 10rpx 20rpx 0px rgba(254, 0, 8, 0.28);

			.list-box1 {
				text-align: center;
				margin-right: 30rpx;
				margin-bottom: 30rpx;

				.list-top {
					width: 100rpx;
					height: 100rpx;

					.avatar-img {
						width: 100rpx;
						height: 100rpx;
						border-radius: 50%;
					}
				}

				.nickname {
					margin-top: 12rpx;
				}
			}
		}

		.list-box {
			width: 686rpx;
			background: #ffffff;
			border-radius: 29rpx;
			position: relative;
			margin: -33rpx auto 0;
			padding: 100rpx 30rpx 0rpx 30rpx;
			display: flex;
			flex-wrap: wrap;
			// box-shadow: 0px 10rpx 20rpx 0px rgba(254, 0, 8, 0.28);

			.upload-box {
				width: 100%;
				height: 290rpx;
				background: #ffffff;
				// border: 1px solid #E63931;
				border-radius: 15rpx;
				display: flex;
				flex-direction: column;
				padding-top: 24rpx;
				margin: 0 auto 50rpx;

				.upload-left {
					font-weight: 400;
					color: #000;

					text {
						color: #FD424B;
						font-size: 30rpx;
					}
				}

				.upload-right {
					margin-top: 16rpx;
					width: 100%;
					height: 100%;
					border: 1px solid #888888;
					border-radius: 15rpx;
					flex: 1;
					display: flex;
					align-items: center;
					justify-content: center;

					.upload-img {
						width: 102rpx;
						height: 102rpx;
						// border: 1px solid #888888;
						// border-radius: 3rpx;
						// width: 133rpx;
						// height: 133rpx;
						// margin-top: 44rpx;
					}
				}
			}

			.list {
				display: flex;
				flex-direction: column;
				align-items: center;
				width: 100%;
				margin-top: 32rpx;
				// height: 133rpx;

				.list-left {
					width: 100%;
					text-align: left;
					color: #000;

					text {
						color: #FD424B;
						font-size: 30rpx;
					}
				}

				input {
					height: 66rpx;
					// line-height: 66rpx;
					margin-top: 32rpx;
					// height: 88rpx;
				}

				.list-input {
					padding-left: 24rpx;
					// margin: 12rpx 0 ;
					height: 66rpx;
					line-height: 66rpx;
					// display: flex;
					// align-items: center;
					width: 100%;
					font-size: 26rpx;
					// flex: 1;
					color: #000;
					border: 1rpx solid #929292;
					border-radius: 15rpx;
					text-align: left;

					.input-placeholder {
						// height: 70rpx;
						color: #929292;
						font-size: 26rpx;
					}
				}

				.box-right {
					display: flex;
					align-items: center;
					padding-left: 24rpx;
					height: 66rpx;
					line-height: 66rpx;
					border: 1rpx solid #f3afad;
					border-radius: 22rpx;
					margin: 32rpx 36rpx 0 36rpx;

					width: 96%;
					font-size: 36rpx;
					color: #ff9797;
					text-align: left;
					line-height: 1;
				}
			}
		}

		.sub {
			width: 690rpx;
			height: 83rpx;
			background: #f95349;
			border-radius: 42rpx;
			font-size: 32rpx;
			font-family: PingFang SC;
			font-weight: 500;
			color: #FFFFFF;
			line-height: 83rpx;
			text-align: center;
			margin: 53rpx auto 60rpx;

			&.action {
				background: #999999;
			}
		}
	}
</style>
