diff --git a/mobile/src/pages/xskh/khsq/form.vue b/mobile/src/pages/xskh/khsq/form.vue
new file mode 100644
index 00000000..f50711df
--- /dev/null
+++ b/mobile/src/pages/xskh/khsq/form.vue
@@ -0,0 +1,1630 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 基础信息
+
+
+ 考核计划名称:
+ {{ form.scheduleName || '暂无' }}
+
+
+ 开始时间:
+ {{ form.startTime || '暂无' }}
+
+
+ 结束时间:
+ {{ form.endTime || '暂无' }}
+
+
+ 学号:
+ {{ form.studentNo || '暂无' }}
+
+
+ 学生姓名:
+ {{ form.studentName || '暂无' }}
+
+
+ 学院名称:
+ {{ form.collegeName || '暂无' }}
+
+
+ 专业名称:
+ {{ form.majorName || '暂无' }}
+
+
+ 班级名称:
+ {{ form.className || '暂无' }}
+
+
+
+
+
+
+ 指标模块
+
+
+
+
+
+
+ {{ item.indicatorDescription || '暂无说明' }}
+
+
+
+
+ 最高分值:
+ {{ item.planMaxScore || 0 }}
+
+
+ 自评得分:
+
+ {{ item.selfScore || '-' }}
+
+
+
+
+ 班主任评分:
+ {{ item.teacherScore || '-' }}
+
+
+
+
+
+
+
+
+
+
+
+ 附加分模块
+
+ 添加附加分
+
+
+
+
+
+
+
+ 项目名称:
+
+ {{ item.bonusName || '暂无' }}
+
+
+
+
+ 附加分值:
+
+ {{ item.bonusScore || '-' }}
+
+
+
+
+ 附加分内容:
+
+ {{ item.bonusContent || '暂无内容' }}
+
+
+
+
+
+
+ 附件:
+
+
+
+ 图片附件
+
+
+
+
+
+
+
+
+
+
+ {{ image.progress || 0 }}%
+
+
+
+
+
+ 上传失败
+
+
+
+
+
+
+
+
+
+
+ 下载
+
+
+ 重试
+
+
+ 删除
+
+
+
+
+
+ {{ getShortFileName(image.name) }}
+
+
+
+
+
+
+
+ 文档附件
+
+
+
+
+
+
+
+
+
+
+ 下载
+
+
+ 重试
+
+
+ 删除
+
+
+
+
+
+ {{ getShortFileName(file.name) }}
+
+
+
+
+
+
+
+
+ 选择图片
+
+
+ 选择文件
+
+
+
+
+
+
+ 支持图片、视频、PDF、Word文档等格式,单个文件大小不超过10MB,最多上传15个文件。
+
+
+
+
+
+
+ 审核状态:
+
+
+
+ 审核得分:
+ {{ item.approvalScore || '-' }}
+
+
+ 审核备注:
+
+ {{ item.approvalRemark || '暂无备注' }}
+
+
+
+
+
+
+
+
+
+ 得分统计
+
+
+
+ 自评总得分:
+ {{ form.selfScore || '0' }}
+
+
+ 班主任评分:
+ {{ form.teacherScore || '-' }}
+
+
+ 总得分:
+ {{ form.totalScore || '-' }}
+
+
+ 申请状态:
+
+
+
+
+ 自评备注:
+
+ {{ form.selfRemark || '暂无备注' }}
+
+
+
+
+
+ 班主任审核备注:
+
+ {{ form.teacherApprovalRemark || '暂无审核备注' }}
+
+
+
+
+
+
+
+
+ 保存
+ 提交
+ 删除
+
+
+
+
+
+
+
diff --git a/mobile/src/pages/xskh/khsq/indicatorDataDialog.vue b/mobile/src/pages/xskh/khsq/indicatorDataDialog.vue
new file mode 100644
index 00000000..7e27de08
--- /dev/null
+++ b/mobile/src/pages/xskh/khsq/indicatorDataDialog.vue
@@ -0,0 +1,434 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 违纪日期:
+
+ {{ formatDate(item.disciplineDate) }}
+
+
+
+ 违纪原因:
+
+ {{ item.disciplineReason || '暂无' }}
+
+
+
+ 违纪内容:
+
+ {{ item.disciplineContent || '暂无' }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 奖励日期:
+ {{ formatDate(item.rewardDate) }}
+
+
+ 奖励内容:
+
+ {{ item.rewardContent || '暂无' }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/mobile/src/pages/xskh/khsq/khsq.vue b/mobile/src/pages/xskh/khsq/khsq.vue
index b332f808..2db9d475 100644
--- a/mobile/src/pages/xskh/khsq/khsq.vue
+++ b/mobile/src/pages/xskh/khsq/khsq.vue
@@ -33,13 +33,15 @@
{{ item.academicYear || '暂无' }}
{{ getSemesterText(item.semester) }}
-
+
+
+
@@ -58,6 +60,14 @@
结束时间:
{{ formatTime(item.endTime) }}
+
+ 数据统计开始时间:
+ {{ formatTime(item.dataStartTime) }}
+
+
+ 数据统计结束时间:
+ {{ formatTime(item.dataEndTime) }}
+
考核方案: {{ item.planName || '暂无' }}
@@ -91,6 +101,103 @@
+
+
+
+
+
@@ -118,6 +225,10 @@ export default {
// 字典数据
assessmentScheduleStatus: [],
studentSemester: [],
+
+ // 弹窗相关
+ showScheduleDetail: false,
+ selectedSchedule: {},
};
},
async onLoad(options) {
@@ -226,12 +337,16 @@ export default {
// 查看考核计划信息
handleViewSchedule(row) {
- const message = `考核计划:${row.scheduleName}\n说明:${row.description}\n时间:${row.startTime} 至 ${row.endTime}`;
- uni.showModal({
- title: '考核计划信息',
- content: message,
- showCancel: false,
- });
+ console.log('点击查看计划按钮', row);
+ this.selectedSchedule = row;
+ this.showScheduleDetail = true;
+ console.log('弹窗状态已设置为true:', this.showScheduleDetail);
+ },
+
+ // 关闭计划详情弹窗
+ closeScheduleDetail() {
+ this.showScheduleDetail = false;
+ this.selectedSchedule = {};
},
// 判断是否可以提交申请
@@ -351,8 +466,11 @@ export default {
const year = date.getFullYear();
const month = String(date.getMonth() + 1).padStart(2, '0');
const day = String(date.getDate()).padStart(2, '0');
+ const hours = String(date.getHours()).padStart(2, '0');
+ const minutes = String(date.getMinutes()).padStart(2, '0');
+ const seconds = String(date.getSeconds()).padStart(2, '0');
- return `${year}-${month}-${day}`;
+ return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
} catch (error) {
console.error('时间格式化失败:', error);
return timeStr;
@@ -437,6 +555,11 @@ export default {
gap: 16rpx;
}
+.status-info {
+ display: flex;
+ align-items: center;
+}
+
.academic-info {
font-size: 26rpx;
color: #606266;
@@ -533,4 +656,75 @@ export default {
.load-more {
padding: 20rpx 0;
}
+
+/* 弹窗样式 */
+.schedule-detail-popup {
+ background-color: #fff;
+ border-radius: 20rpx;
+ overflow: hidden;
+}
+
+.popup-header {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ padding: 30rpx 30rpx 20rpx;
+ border-bottom: 1px solid #f0f0f0;
+}
+
+.popup-title {
+ font-size: 32rpx;
+ font-weight: bold;
+ color: #303133;
+}
+
+.popup-content {
+ padding: 30rpx;
+ max-height: 60vh;
+ overflow-y: auto;
+}
+
+.detail-item {
+ display: flex;
+ align-items: flex-start;
+ margin-bottom: 24rpx;
+ text-align: left;
+
+ &:last-child {
+ margin-bottom: 0;
+ }
+}
+
+.detail-label {
+ font-size: 28rpx;
+ color: #606266;
+ min-width: 200rpx;
+ flex-shrink: 0;
+ text-align: left;
+}
+
+.detail-value {
+ font-size: 28rpx;
+ color: #303133;
+ flex: 1;
+ text-align: right;
+ word-break: break-all;
+ display: flex;
+ justify-content: flex-end;
+ align-items: center;
+
+ &.description {
+ line-height: 1.6;
+ text-align: left;
+ display: block;
+ justify-content: initial;
+ }
+}
+
+.popup-footer {
+ padding: 20rpx 30rpx 30rpx;
+ border-top: 1px solid #f0f0f0;
+ display: flex;
+ justify-content: center;
+}