<template>
	<view class="container">
		<view class="card">
			<!-- 隐患详情查看 -->
			<app-hidden-view
				:hidden-id="hiddenId"
				@throw-basic-info="form = { ...form, ...$event.pd }"
			/>
			<!-- 隐患确认 -->
			<view class="card">
				<u-form
					ref="formRef"
					label-position="left"
					:model="form"
					:rules="rules"
					label-width="auto"
				>
					<u-divider text-position="left" text="隐患确认"></u-divider>
					<app-hidden-level
						:id="form.HIDDENLEVEL"
						:name="form.HIDDENLEVELNAME"
						:is-show-more="false"
						:is-show-major="false"
						prop="HIDDENLEVELNAME"
						label="隐患级别"
					/>
					<block v-if="form.RECTIFICATIONTYPE === '1'">
						<up-form-item label="是否整改完成" prop="isTrue" required>
							<up-radio-group v-model="form.isTrue" direction="horizontal">
								<up-radio name="1" label="是" />
								<up-radio name="2" label="否" />
							</up-radio-group>
						</up-form-item>
						<up-line />
					</block>
					<block
						v-if="
							(form.RECTIFICATIONTYPE === '2' &&
								form.HIDDENLEVEL !== 'hiddenLevel1001') ||
							form.isTrue === '2'
						"
					>
						<app-department
							:id="form.RECTIFICATIONDEPT"
							:name="form.RECTIFICATIONDEPTNAME"
							:form="form"
							clear-key="RECTIFICATIONORNAME,RECTIFICATIONOR"
							prop="RECTIFICATIONDEPTNAME"
							label="整改负责人部门"
						/>
						<app-personnel
							:id="form.RECTIFICATIONOR"
							:name="form.RECTIFICATIONORNAME"
							:department-id="form.RECTIFICATIONDEPT"
							prop="RECTIFICATIONORNAME"
							label="整改负责人"
						/>
						<app-time
							:model-value="form.RECTIFICATIONDEADLINE"
							label="整改期限"
							prop="RECTIFICATIONDEADLINE"
							mode="date"
							@fn-confirm-emit="fnConfirmEmit"
						/>
					</block>
					<view class="mt-10 flex-between">
						<view
							v-if="form.SOURCE !== '4' && form.SOURCE !== '5'"
							style="flex: 1; margin-right: 2%"
						>
							<u-button
								type="error"
								shape="circle"
								text="打回"
								@click="
									route({
										url: '/application/pages/hidden_confirm/reject',
										params: {
											HIDDEN_ID: hiddenId,
										},
									})
								"
							/>
						</view>
						<view style="flex: 1">
							<u-button
								type="primary"
								shape="circle"
								text="保存"
								:throttle-time="1000"
								@click="fnSubmit"
							/>
						</view>
					</view>
				</u-form>
			</view>
		</view>
	</view>
</template>

<script>
import AppHiddenView from "@/components/hiddenView/index.vue";
import AppHiddenLevel from "@/components/hidden_level/hidden_level.vue";
import AppDepartment from "@/components/department/index.vue";
import AppPersonnel from "@/components/personnel/index.vue";
import AppTime from "@/components/time/index.vue";
import dayjs from "dayjs";
import useFormValidate from "@/utils/useFormValidate";
import { setHiddenConfirmSubmit } from "@/hiddenManageSubPackages/api";

export default {
	components: {
		AppHiddenView,
		AppHiddenLevel,
		AppDepartment,
		AppPersonnel,
		AppTime,
	},
	data() {
		return {
			store: this.$store,
			hiddenId: "",
			form: {
				isTrue: "1",
				HIDDENLEVEL: "",
				HIDDENLEVELNAME: "",
				RECTIFICATIONDEPT: "",
				RECTIFICATIONDEPTNAME: "",
				RECTIFICATIONOR: "",
				RECTIFICATIONORNAME: "",
				RECTIFICATIONDEADLINE: "",
			},
			// 表单校验规则
			rules: {
				HIDDENLEVELNAME: {
					type: "string",
					required: true,
					message: "请选择隐患级别",
					trigger: ["blur", "change"],
				},
				isTrue: {
					type: "string",
					required: true,
					message: "请选择是否整改完成",
					trigger: ["blur", "change"],
				},
				RECTIFICATIONDEPTNAME: {
					type: "string",
					required: true,
					message: "请选择整改负责人部门",
					trigger: ["blur", "change"],
				},
				RECTIFICATIONORNAME: {
					type: "string",
					required: true,
					message: "请选择整改负责人",
					trigger: ["blur", "change"],
				},
				RECTIFICATIONDEADLINE: {
					type: "string",
					required: true,
					message: "请选择整改期限",
					trigger: ["blur", "change"],
				},
			},
		};
	},
	onLoad(query) {
		this.hiddenId = query.HIDDEN_ID;
	},
	mounted() {},
	methods: {
		async fnSubmit() {
			await useFormValidate(this.$refs.formRef);
			await setHiddenConfirmSubmit({
				USERNAME: this.store.state.userInfo.NAME,
				HIDDEN_ID: this.hiddenId,
				HIDDENLEVEL: this.form.value.HIDDENLEVEL,
				RECTIFICATIONDEPT: this.form.value.RECTIFICATIONDEPT,
				RECTIFICATIONDEADLINE: this.form.value.RECTIFICATIONDEADLINE,
				RECTIFICATIONOR: this.form.value.RECTIFICATIONOR,
				isTrue: this.form.value.isTrue,
			});
			uni.showToast({
				icon: "none",
				title: "提交成功",
			});
			setTimeout(() => {
				uni.navigateBack();
			}, 1000);
		},
		fnConfirmEmit({ mode, value }) {
			if (mode === "datetime") {
				this.form = {
					...this.form,
					RECTIFICATIONDEADLINE: dayjs(value).format("YYYY-MM-DD HH:mm"),
				};
			} else if (mode === "date") {
				this.form = {
					...this.form,
					RECTIFICATIONDEADLINE: dayjs(value).format("YYYY-MM-DD"),
				};
			} else if (mode === "year-month") {
				this.form = {
					...this.form,
					RECTIFICATIONDEADLINE: dayjs(value).format("YYYY-MM"),
				};
			}
		},
	},
};
</script>

<style scoped lang="scss"></style>
