<template>
	<view class="screenorder">
		<view class="user_info">
			<view class="basic">
				<view class="name">{{userInfo.patientName}}</view>
				<view style="margin-right: 30rpx; color: #333">年龄：{{userInfo.age}}</view>
				<view style="color: #333;">性别：{{userInfo.sex}}</view>
			</view>
			<view class="illness" v-if="formData.disease">
				<view v-show="formData.disease.includes(0)">
					<span>无</span>
				</view>
				<view v-show="formData.disease.includes(1)">
					<span>高血压</span>
				</view>
				<view v-show="formData.disease.includes(2) ">
					<span>高血糖</span>
				</view>
				<view v-show="formData.disease.includes(3)">
					<span>高血脂</span>
				</view>
			</view>
		</view>
		<view class="line"></view>
		<view class="title">
			<text>基本信息</text>
		</view>

		<u-form :model="formData" :rules="rules" ref="form1">
			<u-form-item label="预约机构" labelWidth="80">
				<lx-input class="input" v-model="formData.hospitalName" :list="DeptList" @clickItem="confirm"
					@clickMask="clickMask" @input="input" :hidden.sync="hidden"></lx-input>
				<!-- <uni-data-select v-model="formData.hospitalId" :localdata="DeptList" @change="changeDept"
						:clear="false">
					</uni-data-select> -->
			</u-form-item>
			<view class="">
				<u-form-item label="预约项目" labelWidth="80">
					<view class="" @click="appointitem" v-if="formData.hospitalId==''">
						<!-- 111 -->
						<uni-data-select v-model="formData.projectId" :localdata="ProList" @change="changePro"
							:clear="false" disabled>
						</uni-data-select>
					</view>
					<view class="" @click="appointitem" v-else>
						<uni-data-select v-model="formData.projectId" :localdata="ProList" @change="changePro"
							:clear="false">
						</uni-data-select>
						<!-- 111 -->
					</view>
				</u-form-item>
			</view>

			<u-form-item label="预约时间" labelWidth="80">
				<uni-datetime-picker v-model="datetimerange" type="datetimerange" rangeSeparator="至" />
			</u-form-item>
		</u-form>
		<!-- <view style="display: flex;justify-content: center;margin-top: 80rpx;"><uni-data-checkbox multiple v-model="test" :localdata="test1"></uni-data-checkbox></view> -->
		<view style="height: 180rpx;"></view>
		<view class="btn">
			<u-button type="success" text="提交预约信息" @click="process()">提交预约信息</u-button>
		</view>
		<u-action-sheet :show="showSex" :actions="actions" title="请选择性别" @close="showSex = false" @select="sexSelect">
		</u-action-sheet>
		<u-toast ref="uToast" />
	</view>
</template>

<script>
	import {
		screenOrder,
		getDeptList,
		getProlist
	} from '@/api/pagesB/screenOrder/index.js'
	import {
		getSex,
		getBirthday,
		getAgeFun
	} from '@/api/conversion.js'
	export default {
		data() {
			return {
				hidden: false,
				showSex: false,
				userInfo: {},
				datetimerange: [Date.now(), this.todayEndTime()],
				test: ['1'],
				formData: {
					patientName: '',
					identity: '',
					certType: '',
					sex: '',
					birthDate: '',
					phone: '',
					address: '',
					disease: '',
					height: '',
					weight: '',
					applyStartTime: '',
					applyEndTime: '',
					hospitalId: '',
					hospitalName: '',
					projectId: '',
					projectName: ''
				},
				actions: [{
						name: '男',
						disabled: true
					},
					{
						name: '女',
						disabled: true
					},
				],
				disease: [{
						text: '高血压',
						value: '1'
					},
					{
						text: '高血糖',
						value: '2'
					},
					{
						text: '高血脂',
						value: '3'
					},
					{
						text: '无',
						value: '0'
					}
				],
				DeptList: [],
				cardNo: null,
				ProList: [],
				hospitalId: '',
				test1: [{
					text: '同意《用户服务协议》及《隐私政策》',
					value: '1'
				}],
				rules: {
					patientName: [{
						required: true,
						message: '请填写姓名',
						trigger: ['blur', 'change']
					}],
					identity: [{
						required: true,
						message: '请填写身份证号',
						trigger: ['blur']
					}, {
						validator: (rule, value, callback) => {
							return uni.$u.test.idCard(value);
						},
						message: '请输入正确的身份证号',
						trigger: ['blur'],
					}],
					phone: [{
						required: true,
						message: '请填写联系电话',
						trigger: ['blur']
					}, {
						validator: (rule, value, callback) => {
							return uni.$u.test.mobile(value);
						},
						message: '手机号码不正确',
						trigger: ['blur'],
					}],
					address: [{
						required: true,
						message: '请填写家庭住址',
						trigger: ['blur', 'change']
					}],
					height: [{
						required: true,
						message: '请填写身高',
						trigger: ['blur', 'change']
					}, {
						validator: (rule, value, callback) => {
							return uni.$u.test.number(value);
						},
						message: '身高格式为数字（小数）',
						trigger: ['blur'],
					}],
					weight: [{
						required: true,
						message: '请填写体重',
						trigger: ['blur', 'change']
					}, {
						validator: (rule, value, callback) => {
							return uni.$u.test.number(value);
						},
						message: '体重格式为数字（小数）',
						trigger: ['blur'],
					}]
				}
			}
		},
		onReady() {
			this.$refs.form1.setRules(this.rules);
		},
		onLoad(e) {
			if (e) {
				this.userInfo = JSON.parse(e.userinfo)
				this.cardNo = this.userInfo.cardNo
				if (this.userInfo.sex == 'MALE') {
					this.userInfo.sex = '男'
				} else if (this.userInfo.sex == 'FEMALE') {
					this.userInfo.sex = '女'
				}
				this.userInfo.age = getAgeFun(this.userInfo.birthDate)
				if (this.userInfo.diseaseList.length > 0) {
					this.formData.disease = this.userInfo.diseaseList.join(',')
					console.log(this.formData.disease, '9999')

				}
			}
			this.getDeptAndPro()
		},
		watch: { //监听
			'formData.hospitalName'(e) {
				console.log(e, '858')
				this.getDeptAndPro()
			},
		},
		methods: {
			clickMask(e) {
				console.log(e, '478')
			},
			input(e) {

				if (e) {
					this.formData.hospitalName = e
					this.formData.hospitalNameId = ''

				}


			},

			confirm(e) {
				console.log(e, '89')
				this.formData.projectId = ''
				this.infolist()
				// this.formData.hospitalName = this.DeptList.find(item => item.value == e).text
				// console.log(this.formData.hospitalName, '89')
				this.formData.hospitalName = e.label
				this.formData.hospitalId = e.value
			},
			appointitem(e) {
				var that = this
				if (that.formData.hospitalId == '') {
					this.$refs.uToast.show({
						title: '请先选择预约机构',
						type: 'error',
					})
				}
			},
			getDeptAndPro() {
				getDeptList(this.formData.hospitalName, this.cardNo).then(res => {
					this.DeptList = []
					res.data.map((item) => {
						var obj = {
							label: item.hospitalName,
							value: item.id
						};
						this.DeptList.push(obj);
						console.log(obj)
					})
				})

			},
			infolist() {
				getProlist({
					projectType: 1,
					status: 0,
					hospitalId: this.formData.hospitalId
				}).then(res => {
					if (res.code == 200) {
						this.ProList = res.data.map(item => {
							return {
								text: item.projectName,
								value: item.projectId
							}
						})
					}
				})
			},
			changeDept(e) {
				console.log(e, '99')
				console.log(this.formData, '9')

			},
			changePro(e) {
				this.formData.projectName = this.ProList.find(item => item.value == e).text
			},
			todayEndTime() {
				let todayYear = (new Date()).getFullYear();
				let todayMonth = (new Date()).getMonth();
				let todayDay = (new Date()).getDate();
				let todayTime = (new Date(todayYear, todayMonth, todayDay, '23', '59', '59')).getTime();
				return todayTime
			},
			changeDisease() {
				if (this.formData.diseaseList.length != 0 && this.formData.diseaseList.find(item => item != '0')) {
					this.diseaseList[3].disable = true
				}
				if (this.formData.diseaseList.length != 0 && this.formData.diseaseList.find(item => item == '0')) {
					this.diseaseList[0].disable = true
					this.diseaseList[1].disable = true
					this.diseaseList[2].disable = true
					this.formData.diseaseList = ['0']
					this.diseaseList[3].disable = false
				}
				if (this.formData.diseaseList.length == 0) {
					for (let item in this.diseaseList) {
						this.diseaseList[item].disable = false
					}
				}
			},
			changeCheckbox(e) {
				if (e.detail.value.length != 0 && e.detail.value.find(item => item != '0')) {
					this.diseaseList[3].disable = true
				}
				if (e.detail.value.length != 0 && e.detail.value.find(item => item == '0')) {
					this.diseaseList[0].disable = true
					this.diseaseList[1].disable = true
					this.diseaseList[2].disable = true
				}
				if (e.detail.value.length == 0) {
					for (let item in this.diseaseList) {
						this.diseaseList[item].disable = false
					}
				}
			},
			process() {

				if (!this.formData.hospitalId) {
					uni.showModal({
						title: '提示',
						content: '请选择预约机构',
					})
					return
				}
				if (!this.formData.projectId) {
					uni.showModal({
						title: '提示',
						content: '请选择预约项目',
					})
					return
				}
				if (!this.datetimerange[0] || !this.datetimerange[1]) {
					uni.showModal({
						title: '提示',
						content: '预约时间请填写完整！',
					})
					return
				}

				const value = uni.getStorageSync('userinfo');
				this.formData.patientId = value.id
				this.formData.identity = this.userInfo.cardNo
				this.formData.diseaseList = this.userInfo.diseaseList.map(Number)
				this.formData.applyStartTime = this.datetimerange[0]
				this.formData.applyEndTime = this.datetimerange[1]
				if (this.formData.sex == '男') {
					this.formData.sex = 'MALE'
				} else {
					this.formData.sex = 'FEMALE'
				}
				screenOrder(this.formData).then(res => {
					// this.formData.diseaseList = this.formData.diseaseList.slice(',')
					if (this.formData.sex == 'MALE') {
						this.formData.sex = '男'
					} else {
						this.formData.sex = '女'
					}
					if (res.code == 200) {
						uni.showToast({
							title: '预约成功',
							duration: 1000
						});
						setTimeout(() => {
							// uni.navigateTo({
							// url: `../screensuccess/screensuccess?registerId=${res.data.data}`
							// url: `/pageB/orderlist/orderlist?patientId=${this.formData.patientId}`
							// url: '/pageB/orderlist/orderlist'/
							// })
							uni.navigateBack({
								delta: 1
							})
						}, 1000)
					} else if (res.code == 500) {
						this.$refs.uToast.show({
							title: res.msg,
							type: 'error'
						})

					}
				})
			},
			submit() {
				let that = this
				that.$refs.form1.validate(valid => {
					// console.log(111)
					if (valid) {



					}
				}).catch(errors => {
					return
				})

			},
			IdentityBlur(e) {
				this.formData.sex = getSex(e)
				this.formData.birthDate = getBirthday(e)
			}
		}
	}
</script>

<style lang="scss">
	// .uniDataSelectClass {
	// 	.uni-select__selector {
	// 		z-index: 99;
	// 	}
	// }
	::v-deep .uni-select {
		border: 2rpx solid #e5e5e5;
		height: 70rpx !important;
		line-height: 70rpx !important;
	}

	::v-deep .inputBox .focusBox .inputStyle.data-v-36ae0e32 {
		height: 70rpx !important;
		// color: #006DF7;
		width: 91%;
		padding-right: 60rpx;
		border: 1px solid #C4C5C6;
	}

	::v-deep .inputBox .focusBox .inputStyle.data-v-36ae0e32 {
		color: #000 !important;
	}

	::v-deep .srollViewBox .scrollView-item.data-v-36ae0e32 {
		padding-left: 0 !important;
		color: #000 !important;
		line-height: 45rpx !important;
	}

	::v-deep .srollViewBox .scrollView.data-v-36ae0e32 {
		height: 350rpx !important;
		overflow: scroll;
	}

	::v-deep.u-form-item--left__content__label.data-v-5e7216f1 {
		display: flex;
		flex-direction: row;
		align-items: center;
		flex: 1;
		margin-top: -16rpx;
	}

	::v-deep.u-btn--success.data-v-3bf2dba7 {
		color: #ffffff;
		border-color: #4AC4AB;
		background-color: #4AC4AB !important;
	}

	.user_info {
		border: 1px solid #4AC4AB;
		border-radius: 10rpx;
		padding: 40rpx 30rpx;
		background: #f6f6f6;
		margin-top: 50rpx;

		.basic {
			display: flex;
			align-items: center;

			.name {
				font-size: 42rpx;
				margin-right: 30rpx;
				font-weight: 900;
			}
		}

		.illness {
			display: flex;
			margin-top: 25rpx;

			view {
				width: 60px;
				font-size: 14px;
				background-color: #4AC4AB;
				text-align: center;
				color: #fff;
				padding: 8rpx 6rpx;
				border-radius: 20px;
				margin-right: 10px;
			}
		}
	}

	.line {
		height: 2rpx;
		border-bottom: 1px dashed #999;
		margin: 40rpx -40rpx;
	}

	.title {
		display: flex;
		font-size: 34rpx;
		margin-bottom: 20rpx;

		// color: #555;
		// background: #f6f6f6;
		// margin: 0 -40rpx 0 -40rpx;
		// padding: 20rpx 0;
		view {
			width: 10rpx;
			background: #4AC4AB;
			height: 40rpx;
			margin: 0 15rpx 0 0;
		}
	}

	.screenorder {
		padding: 0 40rpx;
	}

	/deep/.u-button--primary.data-v-2bf0e569 {
		background-color: #4AC4AB !important;
		border-color: #4AC4AB !important;
	}

	.btn {
		// display: flex;
		// flex-direction: column;
		// align-items: center;
		position: fixed;
		bottom: 50rpx;
		width: 90%;
		z-index: 2;

		/deep/.u-button {
			height: 90rpx !important;
		}
	}

	/deep/.u-button__text {
		font-size: 34rpx !important;
	}
</style>