<template>
	<view class="patientInformationInfo" v-if="Object.keys(infoDATA).length > 0">
		<view class="page_head">
			<view class="title">{{ infoDATA.patientName }}</view>
			<view class="patientCode">{{ infoDATA.residenceNo }}</view>
			<view class="info">
				<view class="bedNum">
					<text class="info_h">床号</text>
					<text class="info_b">{{ infoDATA.bedNum || "-" }}</text>
				</view>
				<view :class="infoDATA.careLevel?'bedNum':'waitingCount'">
					<text class="info_h">待检查数</text>
					<text class="info_b">{{ infoDATA.watingCount }}</text>
				</view>
				<view class="bedNum" v-if="infoDATA.careLevel">
					<text class="info_h">护理等级</text>
					<text class="info_b">{{ infoDATA.careLevel.name }}</text>
				</view>
				<view class="waitingCount" v-if="infoDATA.illnessState">
					<text class="info_h">病情级别</text>
					<text class="info_b">{{ infoDATA.illnessState.name }}</text>
				</view>
			</view>
		</view>
		<view class="page_item" v-for="item in infoDATA.inspects" :key="item.id">
			<view class="page_item_info">
				<view class="page_item_info_title">检查项目:<text>{{ item.inspectName || "-" }}</text></view>
				<view class="page_item_info_title">检查科室:<text>{{
            item.execDept ? item.execDept.dept : "-"
          }}</text></view>
				<view class="page_item_info_title btn">预约时间:<text>{{ item.yyTime || "-" }}</text><button
						@click="changeYyTime(item)" v-if="item.inspectState.value == 1 || item.inspectState.value == 30">修改</button></view>
				<view class="page_item_info_title">预约叫号:<text>{{ item.reservationNumber || "-" }}</text></view>
				<view class="page_item_info_title">是否紧急:<text
						:class="{red:item.priority===1||item.priority==='1'}">{{ (item.priority===1||item.priority==='1')?'是':'否' }}</text>
				</view>
			</view>
		</view>
		<view v-if="!infoDATA.inspects || infoDATA.inspects.length == 0" class="zwsj">
			<image class="zwsj-img" mode="widthFix" src="../../static/img/zanwushuju.png"></image>
			<view class="zwsj-txt">暂无检查信息</view>
		</view>
		<!-- 弹窗 -->
		<inspectRemoveModel :title="models1.title" :icon="models1.icon" :disjunctor="models1.disjunctor" :content="models1.content" @know="know1" :operate="models1.operate" @ok="ok1" @cancel="cancel1"></inspectRemoveModel>
	</view>
</template>
<script>
	import {
		get,
		post,
		SM,
		webHandle
	} from "../../http/http.js";
	export default {
		data() {
			return {
				options: {},
				infoDATA: {},
				// 弹窗model1
				models1: {
				  disjunctor: false,
				},
			};
		},
		methods: {
			// 修改预约时间->知道了
			know1() {
			  this.models1.disjunctor = false;
			},
			// 修改预约时间->确定
			ok1(data) {
				console.log(data);
				const { yyTime} = data;//暂时这样
				if (!yyTime) {
				  //没有填写预约时间
				  uni.showModal({
				    title: "提示",
				    content: "请填写预约时间!",
				    showCancel: false,
				    success: function(res) {
				      if (res.confirm) {
				        console.log("用户点击确定");
				      } else if (res.cancel) {
				        console.log("用户点击取消");
				      }
				    },
				  });
				  return;
				}
			  this.models1.disjunctor = false;
			  let postData = {
			    inspectCode: this.currentInspect.inspectCode,
			  	yyTime
			  };
			  uni.showLoading({
			    title: '加载中',
			    mask: true,
			  })
			  post('/workerOrder/updateInspectYytime', postData).then(res => {
			    uni.hideLoading();
			    if (res.status == 200) {
						this.getInfo(this.options.patientCode);
			    } else {
			      uni.showToast({
			        icon: "none",
			        title: "修改失败",
			      });
			    }
			  })
			},
			// 修改预约时间->取消
			cancel1() {
			  this.models1.disjunctor = false;
			},
			// 修改预约时间
			changeYyTime(item) {
			  this.currentInspect = item;
			  this.models1 = {
			    disjunctor: true,
			    content: `您要修改[${item.inspectName||''}]的预约时间`,
			    icon: "warn",
			    operate: {
			      ok: "确定",
			      cancel: "取消",
			    },
			  };
			},
			// 请求详细页面的数据
			getInfo(patientCode) {
				uni.showLoading({
					title: "加载中",
					mask: true,
				});
				post("/nurse/workOrder/getPatientInspectInfo", {
					patientCode,
				}).then((res) => {
					uni.hideLoading();
					if (res.status == 200) {
						if (res.data.inspects && Array.isArray(res.data.inspects)) {
							res.data.inspects = res.data.inspects.map(v => {
								if (v.yyTime) {
									let [date, time] = v.yyTime.split(" ");
									v.yyTime = new Date(date).Format('yyyy-MM-dd') + " " + time.slice(0, -
										3);
								}
								return v;
							})
						}
						this.infoDATA = res.data;
					} else {
						uni.showToast({
							icon: "none",
							title: res.msg || "接口获取数据失败!",
						});
					}
				});
			},
		},
		onLoad(options) {
			this.options = options;
			this.getInfo(this.options.patientCode);
			// #ifdef APP-PLUS
			webHandle("no", "app");
			// #endif
			// #ifdef H5
			webHandle("no", "wx");
			// #endif
		},
	};
</script>
<style lang="less">
	.patientInformationInfo {
		padding: 0 20rpx;

		.zwsj {
			text-align: center;

			.zwsj-img {
				width: 560rpx;
			}

			.zwsj-txt {
				font-size: 36rpx;
				font-weight: 700;
				margin-top: 20rpx;
				text-align: center;
			}
		}

		.page_head {
			background-color: #49b856;
			color: #fff;

			.title {
				font-size: 48rpx;
				padding-top: 24rpx;
				text-align: center;
			}

			.patientCode {
				padding-bottom: 12rpx;
				font-size: 28rpx;
				text-align: center;
			}

			.info {
				padding-bottom: 24rpx;
				margin: 8rpx 0;
				height: 80rpx;
				display: flex;
				justify-content: center;
				align-items: center;

				.bedNum,
				.waitingCount {
					width: 300rpx;
					height: 100%;
					display: flex;
					flex-direction: column;
					justify-content: center;
					align-items: center;

					.info_h {
						font-size: 30rpx;
					}

					.info_b {
						font-size: 26rpx;
					}
				}

				.bedNum {
					position: relative;

					&:after {
						content: "";
						position: absolute;
						width: 4rpx;
						height: 50rpx;
						right: -2rpx;
						top: 15rpx;
						background-color: #fff;
					}
				}
			}
		}

		.page_item {
			margin-top: 16rpx;
			margin-bottom: 16rpx;
			background: #fff;
			border-radius: 8rpx;
			overflow: hidden;
			padding: 0 16rpx;
			border: 2rpx solid #e5e9ed;

			.page_item_info {
				padding: 20rpx 16rpx;
				text-align: left;
				line-height: 60rpx;
				font-size: 30rpx;

				.page_item_info_title {
					font-weight: 700;

					&.btn {
						display: flex;
						button {
							font-size: 28rpx;
							color: #49b856;
							height: 50rpx;
							line-height: 50rpx;
							margin: 0;
						}
					}

					text {
						font-weight: normal;

						&.red {
							color: red;
						}
					}
				}
			}
		}
	}
</style>