<template>
	<view class="student-management">
		<view class="form-item">
			<label>{{label01}}</label>
			<view class="bottom">
				<input @blur="onLimitInput($event,'classScoring',10)" v-model="classScoring" type="number"
					placeholder="请输入分值" placeholder-class="input-placeholder" />
				<text @tap="uploadClassMeetingMaterial">
					{{commitStatus==1?"查看材料":"上传材料"}}
				</text>
			</view>
		</view>
		<view class="form-item" v-if="!isGraduate">
			<label>{{label02}}</label>
			<view class="bottom">
				<input @blur="onLimitInput($event,'visitDormitoryScoring',10)" v-model="visitDormitoryScoring" type="number" placeholder="请输入分值"
					placeholder-class="input-placeholder" />
				<text @tap="uploadSleepCheckMaterial">
					{{commitStatus==1?"查看材料":"上传材料"}}
				</text>
			</view>
		</view>
		<view class="form-item">
			<label>{{label03}}</label>
			<view class="bottom">
				<input @blur="onLimitInput($event,'stuTalkScoring',10)" v-model="stuTalkScoring" type="number" placeholder="请输入分值"
					placeholder-class="input-placeholder" />
				<text @tap="uploadInterviewMaterial">
					{{commitStatus==1?"查看材料":"上传材料"}}
				</text>
			</view>
		</view>
		<view class="form-item" v-if="!isGraduate">
			<label>{{label04}}</label>
			<view class="bottom">
				<input @blur="onLimitInput($event,'cadreScoring',5)" v-model="cadreScoring" type="number" placeholder="请输入分值" placeholder-class="input-placeholder" />
				<text @tap="uploadLeagueMeetingMaterial">
					{{commitStatus==1?"查看材料":"上传材料"}}
				</text>
			</view>
		</view>
		<view class="form-item" v-if="!isGraduate">
			<label>{{label05}}</label>
			<view class="bottom">
				<input @blur="onLimitInput($event,'stuActivityScoring',5)" v-model="stuActivityScoring" type="number" placeholder="请输入分值"
					placeholder-class="input-placeholder" />
				<text @tap="uploadStuActivityMaterials">
					{{commitStatus==1?"查看材料":"上传材料"}}
				</text>
			</view>
		</view>
		<view class="form-item" v-if="!isGraduate">
			<label>{{label06}}</label>
			<view class="bottom">
				<input @blur="onLimitInput($event,'edgScoring',5)" v-model="edgScoring" type="number" placeholder="请输入分值"
					placeholder-class="input-placeholder" />
			</view>
		</view>
		<view class="form-item" v-if="!isGraduate">
			<label>{{label07}}</label>
			<view class="bottom">
				<input @blur="onLimitInput($event,'noticeScoring',5)" v-model="noticeScoring" type="number" placeholder="请输入分值"
					placeholder-class="input-placeholder" />
			</view>
		</view>
	</view>
</template>

<script>
	import {
		teacherKpiFillingMgtDetail
	} from "@/api/instructor/superintendent.js"
	import {
		limitInput
	} from "@/utils/limitInput.js"
	export default {
		props: {
			queryDetailParams: Object,
			commitStatus: [String, Number],
			classType: {
				type: String,
				default: 'ungraduate'
			}
		},
		computed: {
			isGraduate() {
				return this.classType === 'graduate';
			},
			label01() {
				return this.isGraduate
					? "01 每月通过线上线下方式定期召开班会开展教育（10分）"
					: "01 每周日及节假日收假当天组织开展班会（10分）";
			},
			label02() {
				if (this.isGraduate) return "";
				return "02 每周深入学生宿舍至少2次（10分）";
			},
			label03() {
				return this.classType === 'graduate'
					? "03 月度谈心谈话总量≥10人次，覆盖重点关注学生（困难救助、就业预警、心理危机、违纪待处理等）（10分）"
					: "03 月度谈心谈话总量≥10人次，覆盖重点关注学生（困难救助、学业指导、心理危机、违纪待处理等）（10分）";
			},
			label04() {
				if (this.isGraduate) return "";
				return "04 每月开展班团干部培训、专题工作会议，频次均不少于1次（5分）";
			},
			label05() {
				if (this.isGraduate) return "";
				return "05 每月组织或参与学生社区育人活动、思政教育活动及文化艺术体育活动，频次不少于2次（5分）";
			},
			label06() {
				if (this.isGraduate) return "";
				return "06 根据学校就业育人工作部署，第一学期需指导并组织所带班级学生参与职业测评，整体完成率需≥90%；第二学期每月需开展1次就业育人相关活动。（5分）";
			},
			label07() {
				if (this.isGraduate) return "";
				return "07 按时按质完成学校及相关职能部门发布的与学生相关的各项工作通知、任务（5分）";
			}
		},
		data() {
			return {
				classScoring: "", //班会材料分数
				visitDormitoryScoring: "", //每周深入学生宿舍材料分数
				stuTalkScoring: "", //	学生谈话分数
				cadreScoring: "", //班团干部会议材料分数
				stuActivityScoring: "", //学生开展活动材料分数
				edgScoring: "", //职业测评分数
				noticeScoring: "", //其他任务分数
				id: "", //学生开展活动材料分数
				queryParams:null
			}
		},
		created() {
			console.log('===== student-management created =====');
			console.log('queryDetailParams:', this.queryDetailParams);
			console.log('classType:', this.classType);
		},
		mounted() {
			// 初始化查询参数
			this.initQueryParams();
			// 等待 classType 准备好后再查询
			if (this.classType) {
				this.loadData();
			}
		},
		methods: {
			loadData() {
				// 查询时带上 classType
				const queryParams = {
					...this.queryDetailParams,
					classType: this.classType
				};
				console.log('最终查询参数:', queryParams);
				
				teacherKpiFillingMgtDetail(queryParams).then(res => {
				console.log('===== API 返回数据 =====');
				console.log(res);
				if (res.data) {
					// 毕业班只填充需要的字段
					if (this.isGraduate) {
						this.classScoring = res.data.classScoring;
						this.stuTalkScoring = res.data.stuTalkScoring;
						this.id = res.data.id;
					} else {
						this.classScoring = res.data.classScoring;
						this.visitDormitoryScoring = res.data.visitDormitoryScoring;
						this.stuTalkScoring = res.data.stuTalkScoring;
						this.cadreScoring = res.data.cadreScoring;
						this.stuActivityScoring = res.data.stuActivityScoring;
						this.edgScoring = res.data.edgScoring;
						this.noticeScoring = res.data.noticeScoring;
						this.id = res.data.id;
					}
				}
			})
		},
		initQueryParams() {
			this.queryParams = new URLSearchParams({
				year: this.queryDetailParams.fillingYear,
				month: this.queryDetailParams.fillingMonth,
				commitStatus:this.commitStatus
			});
		},
		onLimitInput(event,name,max) {
			let result = limitInput(event.detail.value,max);
			this[name] = result;
		},
			initQueryParams() {
				this.queryParams = new URLSearchParams({
					year: this.queryDetailParams.fillingYear,
					month: this.queryDetailParams.fillingMonth,
					commitStatus:this.commitStatus
				});
			},
			onLimitInput(event,name,max) {
				let result = limitInput(event.detail.value,max);
				this[name] = result;
			},
			uploadClassMeetingMaterial() {
				
				uni.navigateTo({
					url: `/pages/instructor/performance-appraisal/performance-evaluation/class-meeting-evidence/list?${this.queryParams.toString()}`
				})
			},
			uploadSleepCheckMaterial() {
				uni.navigateTo({
					url: `/pages/instructor/performance-appraisal/performance-evaluation/sleep-check-evidence/list?${this.queryParams.toString()}`
				})
			},
			uploadInterviewMaterial() {
				uni.navigateTo({
					url: `/pages/instructor/performance-appraisal/performance-evaluation/interview/list?${this.queryParams.toString()}`
				})
			},
			uploadLeagueMeetingMaterial() {
				uni.navigateTo({
					url: `/pages/instructor/performance-appraisal/performance-evaluation/league-meeting/list?${this.queryParams.toString()}`
				})
			},
			uploadStuActivityMaterials() {
				uni.navigateTo({
					url: `/pages/instructor/performance-appraisal/performance-evaluation/student-activity/list?${this.queryParams.toString()}`
				})
			},
			getFormData() {
				const data = {
					classScoring: this.classScoring,
					stuTalkScoring: this.stuTalkScoring,
					id: this.id
				};
				// 非毕业班才包含这些字段
				if (!this.isGraduate) {
					data.visitDormitoryScoring = this.visitDormitoryScoring;
					data.cadreScoring = this.cadreScoring;
					data.stuActivityScoring = this.stuActivityScoring;
					data.edgScoring = this.edgScoring;
					data.noticeScoring = this.noticeScoring;
				}
				return data;
			}
		}
	}
</script>

<style scoped lang="scss">
	.student-management {
		.form-item {
			padding: 22rpx 40rpx 40rpx 40rpx;
			background-color: white;
			margin-bottom: 40rpx;
			border-radius: 16rpx;

			label {
				margin-bottom: 20rpx;
				display: inline-block;
				font-size: 26rpx;
			}

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

				input {
					flex: 1;
					border: 1px solid #E1E1E1;
					border-radius: 10rpx;
					height: 60rpx;
					padding-left: 30rpx;

					.input-placeholder {
						color: #b6b6b6;
					}
				}

				text {
					color: #1890FF;
					border-bottom: 2px solid #1890FF;
					margin-left: 40rpx;
					font-weight: bold;
					font-size: 26rpx;
				}
			}
		}
	}
</style>