From cf5eb97553fb72a4c4b0f4f6f2acdd3eed777d98 Mon Sep 17 00:00:00 2001
From: wuzhen <52326163@qq.com>
Date: Thu, 21 Aug 2025 08:42:05 +0800
Subject: [PATCH 01/14] wuzhen update 1.0
---
backend/pom.xml | 1 +
backend/ruoyi-admin/pom.xml | 1 +
.../api/bzrkh/assessmentIndicator/index.ts | 16 +-
.../api/bzrkh/assessmentIndicator/types.ts | 2 +-
.../bzrkh/assessmentIndicatorType/index.ts | 2 +-
.../bzrkh/assessmentIndicatorType/types.ts | 2 +-
web/src/api/bzrkh/assessmentPlan/index.ts | 2 +-
web/src/api/bzrkh/assessmentPlan/types.ts | 2 +-
web/src/api/bzrkh/assessmentScheme/index.ts | 2 +-
web/src/api/bzrkh/assessmentScheme/types.ts | 2 +-
.../bzrkh/assessmentSchemeIndicator/index.ts | 16 +-
.../bzrkh/assessmentSchemeIndicator/types.ts | 2 +-
.../dormHygieneCheck/types.ts | 14 +-
.../dormHygieneStudentScore/types.ts | 14 +-
.../xgss/dormViolation/dormViolation/types.ts | 14 +-
.../xg/xgss/holidayStay/holidayStay/index.ts | 4 +-
.../xg/xgss/holidayStay/holidayStay/types.ts | 14 +-
.../disciplineRecord/types.ts | 9 +-
.../disciplineType/disciplineType/types.ts | 14 +-
.../api/xskh/rewardType/rewardType/types.ts | 14 +-
.../xsDisciplineRecord/types.ts | 9 +-
web/src/api/zsjy/internshipMonthly.ts | 27 +-
web/src/api/zsjy/qrcode.ts | 26 +-
web/src/utils/request.ts | 17 +-
.../views/bzrkh/assessmentIndicator/index.vue | 64 +--
.../bzrkh/assessmentIndicatorType/index.vue | 30 +-
web/src/views/bzrkh/assessmentPlan/index.vue | 36 +-
.../assessmentScheme/IndicatorManagement.vue | 112 +++---
.../views/bzrkh/assessmentScheme/index.vue | 40 +-
web/src/views/rs/overseasApproval/index.vue | 8 +-
.../views/zsjy/internship/pmonthly/detail.vue | 91 ++---
.../views/zsjy/internship/pmonthly/form.vue | 185 ++++-----
.../views/zsjy/internship/pmonthly/index.vue | 226 +++++------
.../views/zsjy/internship/pmonthly/review.vue | 375 ++++++++----------
.../components/BatchReviewForm.vue | 184 ++++-----
.../pmonthreview/components/ReviewDetail.vue | 101 ++---
.../pmonthreview/components/ReviewForm.vue | 110 +++--
.../zsjy/internship/pmonthreview/index.vue | 226 +++++------
web/src/views/zsjy/internship/visit/index.vue | 133 +++----
web/src/views/zsjy/qrcode/index.vue | 140 +++----
40 files changed, 1011 insertions(+), 1276 deletions(-)
diff --git a/backend/pom.xml b/backend/pom.xml
index 66e4440d..c5e7d7cf 100644
--- a/backend/pom.xml
+++ b/backend/pom.xml
@@ -414,6 +414,7 @@
${revision}
+
-
-
+
+
未找到匹配"{{ searchParams.indicatorName }}"的指标
清除搜索条件
@@ -71,19 +54,14 @@
指标名称:
-
-
+
@@ -153,13 +131,13 @@ const filteredIndicatorList = computed(() => {
// 没有搜索条件时,显示所有指标
return indicatorList.value;
}
-
+
// 有搜索条件时,只显示匹配的指标
- return indicatorList.value.filter(item => {
+ return indicatorList.value.filter((item) => {
// 根据indicatorId查找对应的指标名称
- const indicator = availableIndicators.value.find(ind => ind.id == item.indicatorId);
+ const indicator = availableIndicators.value.find((ind) => ind.id == item.indicatorId);
const indicatorName = indicator?.indicatorName || '';
-
+
// 检查指标名称是否包含搜索关键词(不区分大小写)
return indicatorName.toLowerCase().includes(keyword.toLowerCase());
});
@@ -167,10 +145,11 @@ const filteredIndicatorList = computed(() => {
// 获取指标在原始列表中的索引
const getOriginalIndex = (item: BmzrAssessmentSchemeIndicatorForm) => {
- return indicatorList.value.findIndex(originalItem =>
- originalItem === item ||
- (originalItem.id && originalItem.id === item.id) ||
- (originalItem.indicatorId && originalItem.indicatorId === item.indicatorId && originalItem.sortOrder === item.sortOrder)
+ return indicatorList.value.findIndex(
+ (originalItem) =>
+ originalItem === item ||
+ (originalItem.id && originalItem.id === item.id) ||
+ (originalItem.indicatorId && originalItem.indicatorId === item.indicatorId && originalItem.sortOrder === item.sortOrder)
);
};
@@ -178,10 +157,10 @@ const getOriginalIndex = (item: BmzrAssessmentSchemeIndicatorForm) => {
const open = async (id: string | number) => {
schemeId.value = id;
dialogVisible.value = true;
-
+
// 加载可选指标
await loadAvailableIndicators();
-
+
// 加载当前方案的指标
await loadSchemeIndicators();
};
@@ -194,24 +173,24 @@ const loadAvailableIndicators = async () => {
pageNum: 1,
pageSize: 1000 // 加载所有指标
};
-
+
// 如果有搜索条件,添加到查询参数中
const hasSearchCondition = !!(searchParams.value.indicatorName && searchParams.value.indicatorName.trim());
if (hasSearchCondition) {
queryParams.indicatorName = searchParams.value.indicatorName.trim();
}
-
+
const res = await listBmzrAssessmentIndicator(queryParams);
availableIndicators.value = res.rows || [];
-
+
// 调试日志
console.log('loadAvailableIndicators完成:', {
queryParams,
hasSearchCondition,
resultCount: availableIndicators.value.length,
- indicatorNames: availableIndicators.value.map(i => i.indicatorName)
+ indicatorNames: availableIndicators.value.map((i) => i.indicatorName)
});
-
+
// 更新搜索结果信息
updateSearchResultInfo(hasSearchCondition, availableIndicators.value.length);
} catch (error) {
@@ -225,15 +204,16 @@ const loadAvailableIndicators = async () => {
const loadSchemeIndicators = async () => {
try {
const res = await listBySchemeId(schemeId.value);
- indicatorList.value = res.data?.map((item: any) => ({
- id: item.id,
- schemeId: item.schemeId,
- indicatorId: item.indicatorId,
- // 优先使用score字段,如果为空则使用customMaxScore字段(兜底方案)
- score: item.score || item.customMaxScore,
- remark: item.remark || getIndicatorRemark(item.indicatorId),
- sortOrder: item.sortOrder
- })) || [];
+ indicatorList.value =
+ res.data?.map((item: any) => ({
+ id: item.id,
+ schemeId: item.schemeId,
+ indicatorId: item.indicatorId,
+ // 优先使用score字段,如果为空则使用customMaxScore字段(兜底方案)
+ score: item.score || item.customMaxScore,
+ remark: item.remark || getIndicatorRemark(item.indicatorId),
+ sortOrder: item.sortOrder
+ })) || [];
} catch (error) {
console.error('加载方案指标失败:', error);
proxy?.$modal.msgError('加载方案指标失败');
@@ -242,7 +222,7 @@ const loadSchemeIndicators = async () => {
// 根据指标ID获取指标描述
const getIndicatorRemark = (indicatorId: string | number) => {
- const indicator = availableIndicators.value.find(item => item.id == indicatorId);
+ const indicator = availableIndicators.value.find((item) => item.id == indicatorId);
return indicator?.remark || '';
};
@@ -261,23 +241,23 @@ const updateSearchResultInfo = (hasSearchCondition: boolean, resultCount: number
const getAvailableIndicators = (currentIndex: number) => {
// 搜索功能:直接返回后端搜索结果,允许重复选择同一指标
// 这样用户可以在不同位置选择相同的指标
-
+
// 调试日志
console.log('getAvailableIndicators调用:', {
currentIndex,
totalAvailable: availableIndicators.value.length,
searchKeyword: searchParams.value.indicatorName,
- availableIndicatorIds: availableIndicators.value.map(i => i.id),
- availableIndicatorNames: availableIndicators.value.map(i => i.indicatorName),
+ availableIndicatorIds: availableIndicators.value.map((i) => i.id),
+ availableIndicatorNames: availableIndicators.value.map((i) => i.indicatorName),
currentSelectedIndicatorId: indicatorList.value[currentIndex]?.indicatorId
});
-
+
return availableIndicators.value;
};
// 指标选择变化
const handleIndicatorChange = (item: BmzrAssessmentSchemeIndicatorForm, index: number) => {
- const selectedIndicator = availableIndicators.value.find(indicator => indicator.id == item.indicatorId);
+ const selectedIndicator = availableIndicators.value.find((indicator) => indicator.id == item.indicatorId);
if (selectedIndicator) {
item.score = selectedIndicator.score;
item.remark = selectedIndicator.remark;
@@ -311,7 +291,7 @@ const handleSearchIndicators = async () => {
proxy?.$modal.msgWarning('请输入搜索关键词');
return;
}
-
+
try {
await loadAvailableIndicators();
proxy?.$modal.msgSuccess('搜索完成');
@@ -337,7 +317,7 @@ const resetSearch = async () => {
// 保存
const handleSave = async () => {
// 验证必填项
- const invalidItems = indicatorList.value.filter(item => !item.indicatorId);
+ const invalidItems = indicatorList.value.filter((item) => !item.indicatorId);
if (invalidItems.length > 0) {
proxy?.$modal.msgError('请选择所有指标名称');
return;
@@ -469,10 +449,10 @@ defineExpose({
align-items: flex-start;
gap: 12px;
}
-
+
.row-item {
width: 100%;
justify-content: space-between;
}
}
-
\ No newline at end of file
+
diff --git a/web/src/views/bzrkh/assessmentScheme/index.vue b/web/src/views/bzrkh/assessmentScheme/index.vue
index 099264aa..23e35b98 100644
--- a/web/src/views/bzrkh/assessmentScheme/index.vue
+++ b/web/src/views/bzrkh/assessmentScheme/index.vue
@@ -112,14 +112,26 @@
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
+
@@ -238,25 +228,16 @@
diff --git a/web/src/views/xskh/assessmentApplication/index.vue b/web/src/views/xskh/assessmentApplication/index.vue
new file mode 100644
index 00000000..cba90b6c
--- /dev/null
+++ b/web/src/views/xskh/assessmentApplication/index.vue
@@ -0,0 +1,314 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/web/src/views/xskh/assessmentApproval/AssessmentApprovalDialog.vue b/web/src/views/xskh/assessmentApproval/AssessmentApprovalDialog.vue
new file mode 100644
index 00000000..7407317c
--- /dev/null
+++ b/web/src/views/xskh/assessmentApproval/AssessmentApprovalDialog.vue
@@ -0,0 +1,196 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/web/src/views/xskh/assessmentApproval/AssessmentApprovalForm.vue b/web/src/views/xskh/assessmentApproval/AssessmentApprovalForm.vue
new file mode 100644
index 00000000..a8960c4e
--- /dev/null
+++ b/web/src/views/xskh/assessmentApproval/AssessmentApprovalForm.vue
@@ -0,0 +1,1390 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ form.scheduleName || '暂无' }}
+
+
+
+
+ {{ form.studentNo || '暂无' }}
+
+
+
+
+ {{ form.studentName || '暂无' }}
+
+
+
+
+ {{ form.collegeName || '暂无' }}
+
+
+
+
+ {{ form.majorName || '暂无' }}
+
+
+
+
+ {{ form.className || '暂无' }}
+
+
+
+
+ {{ form.startTime || '暂无' }}
+
+
+
+
+ {{ form.endTime || '暂无' }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ scope.row.selfScore || '0' }}
+
+
+
+
+
+
+
+
+
+
+
+ {{ scope.row.teacherScore || '0' }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ item.bonusName || '暂无' }}
+
+
+
+
+ {{ item.bonusScore || '0' }}
+
+
+
+
+
+
+
+
+
+
+
+
+ 支持图片、视频、PDF、Word文档等格式,单个文件大小不超过10MB,最多上传15个文件。
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ getFileExt(file.name) }}
+
+
+
+
+ 上传中...
+
+
+
+
+
+ {{ getShortFileName(file.name) }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ getBonusStatusText(item.status) }}
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ item.approvalScore || '0' }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ form.selfScore || '0' }}
+
+
+
+
+
+
+ {{ form.teacherScore || '0' }}
+
+
+
+
+
+
+ {{ form.totalScore || '0' }}
+
+
+
+
+
+
+ {{ getStatusText(form.status) }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/web/src/views/xskh/assessmentApproval/index.vue b/web/src/views/xskh/assessmentApproval/index.vue
new file mode 100644
index 00000000..fd507c3c
--- /dev/null
+++ b/web/src/views/xskh/assessmentApproval/index.vue
@@ -0,0 +1,222 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/web/src/views/xskh/assessmentIndicator/AssessmentIndicatorForm.vue b/web/src/views/xskh/assessmentIndicator/AssessmentIndicatorForm.vue
new file mode 100644
index 00000000..eec2da4f
--- /dev/null
+++ b/web/src/views/xskh/assessmentIndicator/AssessmentIndicatorForm.vue
@@ -0,0 +1,364 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ dict.label }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
已选择的违纪处分类型:
+
{{ type.typeCode }} - {{ type.typeName }}
+
+
+
+
+
+
+
+
+
+
+
已选择的奖励类型:
+
{{ type.typeCode }} - {{ type.typeName }}
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/web/src/views/xskh/assessmentIndicator/index.vue b/web/src/views/xskh/assessmentIndicator/index.vue
new file mode 100644
index 00000000..080cad46
--- /dev/null
+++ b/web/src/views/xskh/assessmentIndicator/index.vue
@@ -0,0 +1,245 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+
+
+
+
+
+
+
+ 新增
+
+
+ 修改
+
+
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ scope.row.maxScore ? parseFloat(scope.row.maxScore).toFixed(2) : '0.00' }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/web/src/views/xskh/assessmentIndicatorType/AssessmentIndicatorTypeForm.vue b/web/src/views/xskh/assessmentIndicatorType/AssessmentIndicatorTypeForm.vue
new file mode 100644
index 00000000..375ae4e5
--- /dev/null
+++ b/web/src/views/xskh/assessmentIndicatorType/AssessmentIndicatorTypeForm.vue
@@ -0,0 +1,156 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ dict.label }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/web/src/views/xskh/assessmentIndicatorType/index.vue b/web/src/views/xskh/assessmentIndicatorType/index.vue
new file mode 100644
index 00000000..60951ee0
--- /dev/null
+++ b/web/src/views/xskh/assessmentIndicatorType/index.vue
@@ -0,0 +1,243 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+
+
+
+
+
+
+
+ 新增
+
+
+ 修改
+
+
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/web/src/views/xskh/assessmentIndicatorType/types.ts b/web/src/views/xskh/assessmentIndicatorType/types.ts
new file mode 100644
index 00000000..a759a543
--- /dev/null
+++ b/web/src/views/xskh/assessmentIndicatorType/types.ts
@@ -0,0 +1,7 @@
+// 重新导出API类型
+export type {
+ XskhAssessmentIndicatorTypeVo,
+ XskhAssessmentIndicatorTypeBo,
+ XskhAssessmentIndicatorTypeQuery,
+ XskhAssessmentIndicatorTypeForm
+} from '@/api/xskh/assessmentIndicatorType/types';
\ No newline at end of file
diff --git a/web/src/views/xskh/assessmentPlan/AssessmentPlanForm.vue b/web/src/views/xskh/assessmentPlan/AssessmentPlanForm.vue
new file mode 100644
index 00000000..a4ed1fe5
--- /dev/null
+++ b/web/src/views/xskh/assessmentPlan/AssessmentPlanForm.vue
@@ -0,0 +1,367 @@
+
+
+
+
+
+
方案信息
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ dict.label }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/web/src/views/xskh/assessmentPlan/index.vue b/web/src/views/xskh/assessmentPlan/index.vue
new file mode 100644
index 00000000..98132836
--- /dev/null
+++ b/web/src/views/xskh/assessmentPlan/index.vue
@@ -0,0 +1,229 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+
+
+
+
+
+
+
+ 新增
+
+
+ 修改
+
+
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/web/src/views/xskh/assessmentSchedule/AssessmentScheduleForm.vue b/web/src/views/xskh/assessmentSchedule/AssessmentScheduleForm.vue
new file mode 100644
index 00000000..0a81ec21
--- /dev/null
+++ b/web/src/views/xskh/assessmentSchedule/AssessmentScheduleForm.vue
@@ -0,0 +1,270 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ plan.planName }}
+ {{ plan.planCode }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/web/src/views/xskh/assessmentSchedule/index.vue b/web/src/views/xskh/assessmentSchedule/index.vue
new file mode 100644
index 00000000..2dc01874
--- /dev/null
+++ b/web/src/views/xskh/assessmentSchedule/index.vue
@@ -0,0 +1,309 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+
+
+
+
+
+
+
+ 新增
+
+
+ 修改
+
+
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
From 3aa593bfa11abd0af6c464e4a8554ced077d65f4 Mon Sep 17 00:00:00 2001
From: zlwu <704541015@qq.com>
Date: Thu, 21 Aug 2025 16:59:15 +0800
Subject: [PATCH 05/14] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BB=A3=E7=A0=81?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../AssessmentApplicationForm.vue | 57 ++++++++++++++++---
.../AssessmentApprovalForm.vue | 4 +-
2 files changed, 50 insertions(+), 11 deletions(-)
diff --git a/web/src/views/xskh/assessmentApplication/AssessmentApplicationForm.vue b/web/src/views/xskh/assessmentApplication/AssessmentApplicationForm.vue
index 9c52c6c1..8a0a2140 100644
--- a/web/src/views/xskh/assessmentApplication/AssessmentApplicationForm.vue
+++ b/web/src/views/xskh/assessmentApplication/AssessmentApplicationForm.vue
@@ -1000,7 +1000,7 @@ const openDialog = async (id?: string | number, title?: string, schedule?: Asses
dialog.title = title || '提交考核申请';
// 重置表单
- Object.assign(form.value, initFormData);
+ resetFormData();
if (schedule) {
data.currentSchedule = schedule;
@@ -1123,6 +1123,25 @@ const openDialog = async (id?: string | number, title?: string, schedule?: Asses
pageLoading.value = false;
return; // 直接返回,不再加载指标数据
+ } else {
+ // 用户没有申请记录,确保清空所有数据
+ console.log('用户没有申请记录,清空所有数据');
+ // 重新重置表单,确保附加分模块数据被清空
+ resetFormData();
+ // 重新设置考核计划信息
+ if (schedule) {
+ data.currentSchedule = schedule;
+ form.value.scheduleId = schedule.id;
+ form.value.scheduleName = schedule.scheduleName;
+ form.value.startTime = schedule.startTime;
+ form.value.endTime = schedule.endTime;
+ // 重新获取学生信息
+ await getCurrentUserStudentInfo();
+ }
+ // 确保附加分模块数据被清空
+ form.value.bonusApprovalList = [];
+ // 确保自评得分列表也被清空,等待重新加载
+ form.value.selfScoreList = [];
}
}
} catch (error) {
@@ -1142,6 +1161,18 @@ const openDialog = async (id?: string | number, title?: string, schedule?: Asses
}
};
+/** 重置表单数据 */
+const resetFormData = () => {
+ // 重置表单数据
+ Object.assign(form.value, initFormData);
+ // 重置当前考核计划
+ data.currentSchedule = null;
+ // 重置表单验证状态
+ assessmentApplicationFormRef.value?.resetFields();
+ // 重置页面加载状态
+ pageLoading.value = false;
+};
+
/** 安全转换ID字段,保持精度 */
const safeConvertId = (id: string | number | undefined): string | undefined => {
if (id === undefined || id === null) return undefined;
@@ -1191,6 +1222,8 @@ const handleSave = async () => {
ElMessage.success('保存成功');
}
dialog.visible = false;
+ // 重置表单数据,确保下次打开时没有残留数据
+ resetFormData();
emit('success');
} catch (error) {
console.error('保存失败:', error);
@@ -1251,6 +1284,8 @@ const handleSubmit = async () => {
}
}
dialog.visible = false;
+ // 重置表单数据,确保下次打开时没有残留数据
+ resetFormData();
emit('success');
} catch (error) {
console.error('提交失败:', error);
@@ -1274,6 +1309,8 @@ const handleDelete = async () => {
await deleteAssessmentApplication(safeConvertId(form.value.id));
ElMessage.success('删除成功');
dialog.visible = false;
+ // 重置表单数据,确保下次打开时没有残留数据
+ resetFormData();
emit('success');
} catch (error) {
if (error !== 'cancel') {
@@ -1285,6 +1322,8 @@ const handleDelete = async () => {
/** 取消按钮 */
const cancel = () => {
dialog.visible = false;
+ // 重置表单数据,确保下次打开时没有残留数据
+ resetFormData();
};
/** 根据状态获取标签类型 */
@@ -1772,14 +1811,14 @@ defineExpose({
cursor: pointer !important;
z-index: 10 !important;
position: relative !important;
- background-color: #67c23a !important;
- border-color: #67c23a !important;
- color: #ffffff !important;
+ /* background-color: #67c23a !important; */
+ /* border-color: #67c23a !important; */
+ /* color: #ffffff !important; */
}
.view-mode .download-btn:hover {
- background-color: #85ce61 !important;
- border-color: #85ce61 !important;
+ /* background-color: #85ce61 !important; */
+ /* border-color: #85ce61 !important; */
}
/* 查看模式下禁用按钮的样式覆盖 */
@@ -1787,9 +1826,9 @@ defineExpose({
pointer-events: auto !important;
opacity: 1 !important;
cursor: pointer !important;
- background-color: #67c23a !important;
- border-color: #67c23a !important;
- color: #ffffff !important;
+ /* background-color: #67c23a !important; */
+ /* border-color: #67c23a !important; */
+ /* color: #ffffff !important; */
}
/* 查看模式下禁用按钮的悬停样式 */
diff --git a/web/src/views/xskh/assessmentApproval/AssessmentApprovalForm.vue b/web/src/views/xskh/assessmentApproval/AssessmentApprovalForm.vue
index a8960c4e..e25beb2d 100644
--- a/web/src/views/xskh/assessmentApproval/AssessmentApprovalForm.vue
+++ b/web/src/views/xskh/assessmentApproval/AssessmentApprovalForm.vue
@@ -220,7 +220,7 @@
>
-
+
@@ -1249,7 +1249,7 @@ defineExpose({
background: #fafafa;
border-top: 1px solid #f0f0f0;
transition: all 0.3s;
- height: 28px;
+ height: 34px;
}
.upload-file-card-actions .el-button-group {
From 62c953ab7291089db96e791027dc88493096646a Mon Sep 17 00:00:00 2001
From: zlwu <704541015@qq.com>
Date: Thu, 21 Aug 2025 19:31:58 +0800
Subject: [PATCH 06/14] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BB=A3=E7=A0=81?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../XskhDisciplineRecordController.java | 23 ++
.../XskhRewardRecordController.java | 13 +
.../XskhAssessmentApplicationApprovalVo.java | 24 ++
.../mapper/XskhDisciplineRecordMapper.java | 23 ++
.../xskh/mapper/XskhRewardRecordMapper.java | 14 +
.../service/IXskhDisciplineRecordService.java | 21 ++
.../service/IXskhRewardRecordService.java | 16 +-
...essmentApplicationApprovalServiceImpl.java | 10 +-
.../impl/XskhDisciplineRecordServiceImpl.java | 34 +++
.../impl/XskhRewardRecordServiceImpl.java | 26 ++
.../mapper/XskhDisciplineRecordMapper.xml | 40 ++-
.../mapper/xskh/XskhRewardRecordMapper.xml | 20 ++
.../api/xskh/assessmentApplication/types.ts | 12 +
.../disciplineRecord/types.ts | 62 +---
.../xsDisciplineRecord/types.ts | 62 +---
.../AssessmentApplicationForm.vue | 146 +++++++++-
.../IndicatorDataDialog.vue | 269 ++++++++++++++++++
17 files changed, 674 insertions(+), 141 deletions(-)
create mode 100644 web/src/views/xskh/assessmentApplication/IndicatorDataDialog.vue
diff --git a/backend/ruoyi-modules/ruoyi-xskh/src/main/java/org/dromara/xskh/controller/XskhDisciplineRecordController.java b/backend/ruoyi-modules/ruoyi-xskh/src/main/java/org/dromara/xskh/controller/XskhDisciplineRecordController.java
index adc60050..58daab72 100644
--- a/backend/ruoyi-modules/ruoyi-xskh/src/main/java/org/dromara/xskh/controller/XskhDisciplineRecordController.java
+++ b/backend/ruoyi-modules/ruoyi-xskh/src/main/java/org/dromara/xskh/controller/XskhDisciplineRecordController.java
@@ -1,6 +1,7 @@
package org.dromara.xskh.controller;
import java.util.List;
+import java.util.Map;
import lombok.RequiredArgsConstructor;
import jakarta.servlet.http.HttpServletResponse;
@@ -130,4 +131,26 @@ public class XskhDisciplineRecordController extends BaseController {
PageQuery pageQuery) {
return xskhDisciplineRecordService.queryClassTeacherPageList(bo, pageQuery);
}
+
+ /**
+ * 获取指标关联的违纪处分类型和奖励类型
+ */
+ @SaCheckPermission("disciplineRecord:disciplineRecord:query")
+ @GetMapping("/getIndicatorTypes/{indicatorId}")
+ public R
+
+
+