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 @@ + + + + + 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 @@ + + + + + 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 @@ + + + + + + 考核计划信息 + + + + + + 考核计划: + + {{ selectedSchedule.scheduleName || '暂无' }} + + + + + 学年学期: + + {{ + (selectedSchedule.academicYear || '暂无') + + ' ' + + getSemesterText(selectedSchedule.semester) + }} + + + + + 考核方案: + {{ selectedSchedule.planName || '暂无' }} + + + + 状态: + + + + + + + 说明: + + {{ selectedSchedule.description || '暂无说明' }} + + + + + 开始时间: + + {{ formatTime(selectedSchedule.startTime) }} + + + + + 结束时间: + {{ formatTime(selectedSchedule.endTime) }} + + + + 数据统计开始时间: + + {{ formatTime(selectedSchedule.dataStartTime) }} + + + + + 数据统计结束时间: + + {{ formatTime(selectedSchedule.dataEndTime) }} + + + + + + + 确定 + + + + @@ -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; +}