<template>
	<view class="box">
		<view class="lanBox">
			<view class="headbox">
				<view class="touxiang">
					<image v-if="headimg" :src="headimg" class="headimage" />
					<icon v-else class="iconfont icon-user-filling headimage" @click="handleUpImg"></icon>
				</view>
			</view>
			<view class="lan border-bottom">
				<view class="left">姓名</view>
				<view class="right">
					<input name="name" type="text" v-model="memInfo.nickname" placeholder="请输入姓名" />
				</view>
			</view>
			<view class="lan border-bottom">
				<view class="left">性别</view>
				<view class="right">
					<picker mode="selector" :range="sexItem" @change="onsexArr">
						<view class="uni-input">{{memInfo.gender==0?'请选择':memInfo.gender==1?'男':'女'}}</view>
						<icon class="iconfont icon-arrow-down-bold"></icon>
					</picker>
				</view>
			</view>
			<view class="lan border-bottom">
				<view class="left">出生日期</view>
				<view class="right">
					<picker class="picker" mode="date" :end="startDate" :value="memInfo.birthday"
						@change="bindDateChange">
						<view class="uni-input">{{memInfo.birthday?memInfo.birthday:"请选择"}}</view>
						<icon class="iconfont icon-arrow-down-bold"></icon>
					</picker>
				</view>
			</view>
			<view class="lan border-bottom">
				<view class="left">所在年级</view>
				<view class="right">
					<picker mode="selector" :range="gradeList" :value="index" range-key="name" @change="changegType">
						<view class="uni-input">{{gradeList[index]?gradeList[index].name:"请选择"}}</view>
						<icon class="iconfont icon-arrow-down-bold"></icon>
					</picker>
				</view>
			</view>
		</view>
		<view class="btn" @click="confirmInfo">提交</view>
	</view>
</template>
<script>
	import {
		mapState
	} from "vuex";
	export default {
		data() {
			return {
				isEdit: false,
				sexItem: [
					"男",
					"女"
				],
				memInfo: {
					birthday: "",
					gender: 0,
					nickname: "",
					grade: ""
				},
				headimg: "",
				index: 0,
				gradeList: []
			};
		},
		computed: {
			...mapState(["user", "familayList"]),
			userInfo() {
				return this.user
			},
			startDate() {
				return this.$tools.getDate('start');
			}
		},
		onLoad(options) {
			var agedata = []
			for (var i = 3; i <= 80; i++) {
				agedata.push(i);
			}
			if (options.info) {
				this.memInfo = JSON.parse(options.info)
				this.isEdit = true
			}
			this.handleGradeList()
		},
		methods: {
			handleGradeList() {
				let that = this
				that.$model.getGradeList({}).then(res => {
					console.log("年级列表", res)
					if (res.code != 0) {
						that.$tools.msg(res.msg)
						return
					}
					that.gradeList = res.data
				}).catch(err => {})
			},
			// 提交
			confirmInfo() {
				let that = this
				if (!that.memInfo.nickname) {
					that.$tools.msg("请输入姓名")
					return;
				}
				if (!that.memInfo.gender) {
					that.$tools.msg("请选择性别")
					return;
				}
				if (!that.memInfo.birthday) {
					that.$tools.msg("请选择出生日期")
					return;
				}
				if (!that.memInfo.grade) {
					that.$tools.msg("请选择所在年级")
					return;
				}
				let https = that.isEdit ? that.$model.getEditUser(that.memInfo) : that.$model.getAddUser(that.memInfo)
				return https.then(res => {
					console.log("成功", res)
					if (res.code == 0) {
						that.$tools.msg("提交成功");
						that.$store.dispatch("getFamilyList", {
							type: 2
						})
						// 编辑的当前用户
						if (that.memInfo.id = uni.getStorageSync('userid')) {
							that.$store.dispatch("getUserInfo", {
								aud_id: uni.getStorageSync('userid')
							})
						}
						uni.navigateBack({
							delta: 1
						});
					} else {
						that.$tools.msg(res.msg);
					}
				});
			},
			//确定年龄
			bindDateChange(e) {
				this.memInfo.birthday = e.target.value
			},
			//确定性别
			onsexArr(e) {
				this.memInfo.gender = this.sexItem[e.target.value] == "男" ? 1 : 2
			},
			// 年级
			changegType(e) {
				this.index = e.detail.value
				this.memInfo.grade = this.gradeList[e.target.value].id
			},
			handleUpImg() {
				let that = this
				uni.chooseImage({
					count: 1, //默认9
					sourceType: ['album', 'camera'], //从相册选择
					success: function(res) {
						uni.showLoading({
							title: '识别中...'
						})
						uni.uploadFile({
							header: {
								'Authorization': "Bearer " + uni.getStorageSync('token'),
								'X-Authorization': "Bearer " + uni.getStorageSync('refreshtoken'),
							},
							url: that.$http.baseUrl + '/api/app/wxopen/uploadimg',
							filePath: res.tempFilePaths[0],
							name: 'file',
							success: (res) => {
								let attr = JSON.parse(res.data)
								uni.hideLoading()
								if (attr.code == 0) {
									that.headimg = attr.data.url
								} else {
									that.$tools.msg("不支持该图像")
								}
							}
						})
					}
				})
			},
		},

	};
</script>

<style scoped="scoped" lang="scss">
	.box {
		height: 100vh;
		background-color: #fff;
	}

	input {
		border: none;
		background: inherit;
	}

	.headbox {
		height: 85px;
		padding-top: 15px;
		border-radius: 0 0 5px 5px;
		background: $maincolor;
	}

	.headimage {
		display: block;
		padding-top: 10px;
		width: 70px;
		height: 70px;
		border-radius: 50%;
		font-size: 70px;
		margin: auto;
		color: #fff;
	}

	.lan {
		display: flex;
		align-items: center;
		font-size: 14px;
		padding: 5px 0;
		margin: 5px 15px;
		border-bottom: 1px solid #f7f7f7;
	}

	.lan .left {
		width: 24%;
		text-align: left;
	}

	.lan .right {
		display: flex;
		align-items: center;
		justify-content: flex-end;
		width: 72%;
		min-height: 38px;
		box-sizing: border-box;
		line-height: 36px;
		position: relative;
		text-align: right;

		picker {
			width: 100%;
			text-align: right;
			border: none;
			margin-right: 8px;
		}

		.iconfont {
			color: #333333;
			font-size: 16px;
			position: absolute;
			right: -10px;
			top: 0;
		}
	}

	.btn {
		width: auto;
		margin: 40px 15px 0;
		background: $btncolor !important;
	}
</style>