diff --git a/AES-front/src/api/user.js b/AES-front/src/api/user.js
index ccb2a3d..3ba73cf 100644
--- a/AES-front/src/api/user.js
+++ b/AES-front/src/api/user.js
@@ -51,4 +51,13 @@ export default {
url: `/downloadFile/downloadFile/${fileName}`,
method: 'get',
}), // ÎļþÏÂÔØ
+
+ //±£´æÎļþÃûµ½Êý¾ݿâ
+ saveInfoToProps: (data) => request.post('/problem/saveInfoToProps', data),
+
+ submitInfoToProps: (data) => request.post('/problem/submitInfoToProps', data),
+
+ withdrawInfoToProps: (data) => request.post('/problem/withdrawInfoToProps', data),
+
+
}
diff --git a/AES-front/src/views/user/report-submit/components/leftparts.vue b/AES-front/src/views/user/report-submit/components/leftparts.vue
index 18fae11..66621ed 100644
--- a/AES-front/src/views/user/report-submit/components/leftparts.vue
+++ b/AES-front/src/views/user/report-submit/components/leftparts.vue
@@ -12,10 +12,18 @@
+
上传附件
-
已上传文件:
+
已上传文件(保存过的文件将被覆盖保存):
-
{{ file.name }}
@@ -35,6 +43,8 @@
v-model:file-list="fileList"
drag
accept=".txt,.doc,.docx,.pdf"
+ :limit="1"
+ :on-exceed="handleExceed"
>
将文件拖到此处,或点击上传
@@ -44,7 +54,15 @@
确定
-
+
@@ -59,11 +77,15 @@ import ReportActions from "@/views/user/report-submit/components/report-actions.
const route = useRoute();
const ProblemId = route.params.examId;
+const examId = route.params.examId;
const description = ref(""); // 实验描述
+const adminuserId = ref(""); //布置实验的教师id
const reportText = ref(""); // 实验报告文本
const uploadDialogVisible = ref(false); // 控制上传弹窗的显示
const fileList = ref([]); // 上传的文件列表
const fileUrls = ref([]); // 文件的URL列表
+const attachment = ref(null);//已保存的文件信息
+const isReportActionsDisabled = ref(false); // 控制ReportActions组件的禁用状态
const uploadComponent = ref(null); // 用于引用el-upload组件
const getProblemInfo = async () => {
@@ -71,6 +93,7 @@ const getProblemInfo = async () => {
try {
const res = await api.findProblemById1({ params: { ProblemId } });
description.value = res.data.description; // 更新作业名称
+ adminuserId.value = res.data.adminuserId.toString(); // 更新教师id
} catch (error) {
console.error("Failed to fetch problem info:", error);
}
@@ -78,6 +101,10 @@ const getProblemInfo = async () => {
// 显示上传弹窗
const showUploadDialog = () => {
+ if (fileUrls.value.length > 0) {
+ ElMessage.warning('您已经上传了文件,不能再次上传。');
+ return;
+ }
uploadDialogVisible.value = true;
};
@@ -89,11 +116,11 @@ const handleFileChange = (file, fileList) => {
// 处理文件上传成功
const handleUploadSuccess = (response, file, fileList) => {
if (response.success) {
- ElMessage.success('文件上传成功');
// 更新文件URL列表
fileUrls.value.push({ url: response.urls, name: response.data });
uploadDialogVisible.value = false;
fileList.value = [];
+ ElMessage.success('文件上传成功');
} else {
ElMessage.error('文件上传失败');
}
@@ -105,6 +132,11 @@ const handleUploadError = (err, file, fileList) => {
ElMessage.error('文件上传失败');
};
+// 处理文件数量超出限制
+const handleExceed = (files, fileList) => {
+ ElMessage.error('只能上传一个附件');
+};
+
// 上传文件
const uploadFile = async () => {
if (fileList.value.length === 0) {
@@ -119,38 +151,53 @@ const uploadFile = async () => {
try {
const response = await api.uploadFiles(formData); // 调用上传文件的方法
console.log('Response from server:', response); // 打印响应内容
- if (response.code === 0) {
ElMessage.success('文件上传成功');
// 更新文件URL列表
fileUrls.value.push({ url: response.urls, name: response.data });
uploadDialogVisible.value = false;
fileList.value = [];
- } else {
- ElMessage.error('文件上传失败1');
- }
- } catch (error) {
+
+ }catch (error) {
console.error("Failed to upload files:", error);
ElMessage.error('文件上传失败2');
}
};
-// 下载文件
-const downloadFile = (url) => {
- const link = document.createElement('a');
- link.href = url;
- link.target = '_blank';
- link.download = url.split('/').pop(); // 提取文件名
- document.body.appendChild(link);
- link.click();
- document.body.removeChild(link);
+
+const getSubmitReportInfo = async () => {
+ // 查询已保存的文件信息
+ try {
+ const res = await api.getSubmitReport({ params: { examId } });
+ if (res.data.attachment) {
+ attachment.value = res.data.attachment; // 更新附件信息
+ } else {
+ attachment.value = null;
+ }
+ if (res.data.score !== null && res.data.score !== undefined) {
+ isReportActionsDisabled.value = true; // 禁用ReportActions组件
+ } else {
+ isReportActionsDisabled.value = false; // 启用ReportActions组件
+ }
+ } catch (error) {
+
+ }
+};
+
+const refreshAttachmentInfo = async () => {
+ //更新已上传的文件信息
+ await getSubmitReportInfo();
};
// 生命周期钩子
onMounted(() => {
getProblemInfo(); // 挂载时查询作业信息
+ getSubmitReportInfo();//查询已保存的文件信息
+
});
+
+