<route lang="json5" type="page">
	{
	layout: 'default',
	style: {
	navigationStyle: 'custom',
	navigationBarTitleText: '健康填报',
	},
	}
</route>
<template>
	<PageLayout navTitle="健康填报">
		<view class="form-container">
			<wd-form ref="form" :model="model">
				<!-- 血压数据卡片 -->
				<view class="card" >
					<wd-cell-group title="血压数据" border>
						<wd-input type="number" label="高压值(mmHg)" prop="gyz" v-model="model.gyz" label-width="200px"
							:rules="[{ required: true, message: '请输入高压值' }]" />
						<wd-input type="number" label="低压值(mmHg)" prop="dyz" v-model="model.dyz" label-width="200px"
							:rules="[{ required: true, message: '请输入低压值' }]" />
					</wd-cell-group>
				</view>
				<!-- 健康指标卡片 -->
				<view class="card">
					<wd-cell-group title="健康指标" border>
						<wd-input type="number" label="心率(次/分)" prop="xl" v-model="model.xl" label-width="200px"
							:rules="[{ required: true, message: '请输入心率' }]" />
						<wd-input type="number" label="血糖值(mmol/L)" prop="xtz" v-model="model.xtz" label-width="200px"
							:rules="[{ required: true, message: '请输入血糖值' }]" />
						<wd-input type="number" label="体重(kg)" prop="tz" v-model="model.tz" label-width="200px"
							:rules="[{ required: true, message: '请输入体重' }]" />
					</wd-cell-group>
				</view>
				<!-- 其他信息卡片 -->
				<view class="card">
					<wd-cell-group title="其他信息" border>
						<wd-input label="当前位置" prop="wzzb" v-model="model.wzzb" label-width="200px" />
						<wd-cell title="附件" prop="path" title-width="200px">
							<wd-upload :accept="accept" v-model:file-list="model.path" :action="uploadUrl"
								multiple></wd-upload>
						</wd-cell>
					</wd-cell-group>
				</view>
				<!-- 提交按钮 -->
				<view class="footer">
					<wd-button type="primary" size="large" @click="handleSubmit" block>
						提交健康数据
					</wd-button>
				</view>
			</wd-form>
		</view>
	</PageLayout>
</template>

<script setup>
	import {
		useMessage,
		useToast
	} from 'wot-design-uni'
	import {
		useAppStore
	} from '@/store';
	import {
		useUserStore
	} from '@/store/user';
	import {
		addApi,
		queryIf3rdGxyApi
	} from '@/api/politics/health'
	import {
		getEnvBaseUrl
	} from '@/utils/index'

	const message = useMessage()
	const toast = useToast()
	const appStore = useAppStore();
	const userStore = useUserStore(); //登录人信息
	const form = ref()
	const model = reactive({
		gyz: '', // 高压值
		dyz: '', // 低压值
		xl: '', // 心率
		xtz: '', // 血糖值
		tz: '', // 体重
		wzzb: appStore.location, // 位置坐标
		path: [] // 附件
	})
	const accept = ref('image')
	const uploadUrl = ref(getEnvBaseUrl() + '/sys/common/upload?appPath=健康填报/' + userStore.userInfo.department + '/' +
		userStore.userInfo.realname)

	const handleSubmit = () => {
		form.value.validate().then(({
			valid,
			errors
		}) => {
			if (valid) {
				const submitData = {
					...model,
					path: model.path.map(item => {
						const response = JSON.parse(item.response);
						return response.message;
					}).join(',')
				}
				message
					.confirm({
						msg: '确认提交健康数据？',
						title: '提示',
					})
					.then(() => {
						addApi(submitData).then(res => {
							if (res.success) {
								toast.success(res.message)
							} else {
								toast.warning(res.message)
							}
						})
					})
					.catch(() => {})
			}
		})
	}

	const if3rdGxy = () => {
		/**获取当前用户是否是三级高血压，是需要上传视频，否可以上传图片*/
		queryIf3rdGxyApi(userStore.userInfo.workNo).then(res => {
			if (res) {
				accept.value = 'video';
			} else {
				accept.value = 'image';
			}
		})
	}

	onLoad(() => {
		if3rdGxy()
	})
</script>

<style lang="scss" scoped>
	.form-container {
		padding: 20rpx;
		background-color: #f5f7fa;
		min-height: 100vh;
	}

	.card {
		background: #ffffff;
		border-radius: 16rpx;
		box-shadow: 0 4rpx 12rpx rgba(0, 0, 0, 0.05);
		margin-bottom: 30rpx;
		overflow: hidden;
	}

	.footer {
		padding: 40rpx 0;
	}
</style>