|
|
@@ -14,13 +14,16 @@
|
|
|
{{dataForm.courseName}}
|
|
|
</div>
|
|
|
<div class="item">
|
|
|
- 任课老师:{{dataForm.teacherNames?.join(",")}}
|
|
|
+ <span class="item-title">任课老师:</span>
|
|
|
+ {{dataForm.teacherNames?.join(",")}}
|
|
|
</div>
|
|
|
<div class="item">
|
|
|
- 目标学生:{{dataForm.targetGrade}}
|
|
|
+ <span class="item-title">目标学生:</span>
|
|
|
+ {{dataForm.targetGrade}}
|
|
|
</div>
|
|
|
<div class="item">
|
|
|
- 起止时间:{{new Date(Date.parse(dataForm.startTime)).toLocaleString()}} - {{new Date(Date.parse(dataForm.endTime)).toLocaleString()}}
|
|
|
+ <span class="item-title">起止时间:</span>
|
|
|
+ {{new Date(Date.parse(dataForm.startTime)).toLocaleString()}} - {{new Date(Date.parse(dataForm.endTime)).toLocaleString()}}
|
|
|
</div>
|
|
|
<div>
|
|
|
<template v-if="showCode && role == 'student'">
|
|
|
@@ -49,25 +52,22 @@
|
|
|
</div>
|
|
|
</div>
|
|
|
|
|
|
- <el-dialog v-model="visible" title="编辑课程">
|
|
|
- <el-form :model="newCourseInfo" label-width="auto">
|
|
|
+ <el-dialog v-model="visible" title="编辑课程" >
|
|
|
+ <el-form :model="newCourseInfo" label-width="auto" :rules="editCourseRules" ref="formRef">
|
|
|
<!-- <el-form-item label="课程图片">-->
|
|
|
- <el-form-item label="课程名称">
|
|
|
+ <el-form-item label="课程名称" prop="courseName">
|
|
|
<el-input v-model="newCourseInfo.courseName" placeholder="请输入名称"></el-input>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="面向年级">
|
|
|
+ <el-form-item label="面向年级" prop="courseName">
|
|
|
<el-input v-model="newCourseInfo.targetGrade" placeholder="请输入年级"></el-input>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="描述">
|
|
|
- <el-input v-model="newCourseInfo.description" placeholder="请输入描述"></el-input>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="开始时间">
|
|
|
+ <el-form-item label="开始时间" prop="startTime">
|
|
|
<el-date-picker v-model="newCourseInfo.startTime" type="datetime" placeholder="截止时间" style="width: 180px"/>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="截止时间">
|
|
|
+ <el-form-item label="截止时间" prop="endTime">
|
|
|
<el-date-picker v-model="newCourseInfo.endTime" type="datetime" placeholder="截止时间" style="width: 180px"/>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="选课码">
|
|
|
+ <el-form-item label="选课码" prop="enrollCode">
|
|
|
<el-input v-model="newCourseInfo.enrollCode" placeholder="请输入选课码"></el-input>
|
|
|
</el-form-item>
|
|
|
<!-- <el-form-item label="课程图片">-->
|
|
|
@@ -77,7 +77,7 @@
|
|
|
<el-upload
|
|
|
ref="uploadRef"
|
|
|
drag
|
|
|
- action= "http://127.0.0.1:8080/api/file"
|
|
|
+ action="http://139.196.252.184:8070/api/file"
|
|
|
multiple
|
|
|
v-model:file-list="fileList"
|
|
|
:limit="1"
|
|
|
@@ -100,11 +100,14 @@
|
|
|
</template>
|
|
|
</el-upload>
|
|
|
</el-form-item>
|
|
|
+ <el-form-item label="描述" prop="description">
|
|
|
+ <el-input v-model="newCourseInfo.description" placeholder="请输入描述" type="textarea" :rows="3"></el-input>
|
|
|
+ </el-form-item>
|
|
|
</el-form>
|
|
|
<template #footer>
|
|
|
<div class="dialog-footer">
|
|
|
<el-button @click="visible = false">取消</el-button>
|
|
|
- <el-button type="primary" @click="handleSubmit">确定</el-button>
|
|
|
+ <el-button type="primary" @click="submitForm(formRef)">确定</el-button>
|
|
|
</div>
|
|
|
</template>
|
|
|
</el-dialog>
|
|
|
@@ -120,7 +123,7 @@ import {
|
|
|
ElAvatar,
|
|
|
ElMessage,
|
|
|
ElNotification,
|
|
|
- type UploadFiles, type UploadFile
|
|
|
+ type UploadFiles, type UploadFile, type FormRules, type FormInstance
|
|
|
} from 'element-plus';
|
|
|
import './index.scss'
|
|
|
import type {CourseDetailVO, CourseVO, IAssignment, IAssignmentTableColumn, IAssignmentTableItem} from "@/types/vo";
|
|
|
@@ -181,6 +184,53 @@ let query = reactive<AssignmentQuery>({
|
|
|
status:null,
|
|
|
})
|
|
|
|
|
|
+const editCourseRules = reactive<FormRules>({
|
|
|
+ courseName: [
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ message: "课程名称不能为空",
|
|
|
+ trigger: 'blur'
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ targetGrade: [
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ message: "面向年级不能为空",
|
|
|
+ trigger: 'blur'
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ startTime: [
|
|
|
+ {
|
|
|
+ type: 'date',
|
|
|
+ required: true,
|
|
|
+ message: "开始时间不能为空",
|
|
|
+ trigger: 'blur'
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ endTime: [
|
|
|
+ {
|
|
|
+ type: 'date',
|
|
|
+ required: true,
|
|
|
+ message: "截止时间不能为空",
|
|
|
+ trigger: 'blur'
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ enrollCode: [
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ message: "选课码不能为空",
|
|
|
+ trigger: 'blur'
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ description: [
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ message: "描述不能为空",
|
|
|
+ trigger: 'blur'
|
|
|
+ }
|
|
|
+ ]
|
|
|
+})
|
|
|
+
|
|
|
const activeTab = ref('课程简介');
|
|
|
const items = ref([
|
|
|
{ label: '课程简介', key: '课程简介'},
|
|
|
@@ -215,10 +265,12 @@ let homeworkList = ref<IAssignmentTableItem[]>([]);
|
|
|
const fileList = ref<UploadUserFile[]>([])
|
|
|
|
|
|
const handleSuccess: UploadProps['onSuccess'] = (response: any, uploadFile: UploadFile, uploadFiles: UploadFiles) => {
|
|
|
+ console.log("上传成功", response.data)
|
|
|
newCourseInfo.courseImages[0] = response.data
|
|
|
}
|
|
|
|
|
|
const handleError: UploadProps['onError'] = (error: Error, uploadFile: UploadFile, uploadFiles: UploadFiles) => {
|
|
|
+ console.log("上传失败", error)
|
|
|
console.log(error, uploadFile, uploadFiles)
|
|
|
}
|
|
|
|
|
|
@@ -245,6 +297,13 @@ const handleChange = (file,fileList) => {
|
|
|
uploadRef.value.clearFiles() //清空上传文件
|
|
|
return false;
|
|
|
}
|
|
|
+ apis.uploadFile(file.raw)
|
|
|
+ .then((res) => {
|
|
|
+ newCourseInfo.courseImages[0] = res.data.data
|
|
|
+ })
|
|
|
+ .catch((err) => {
|
|
|
+ console.log(err)
|
|
|
+ })
|
|
|
}
|
|
|
|
|
|
|
|
|
@@ -271,6 +330,7 @@ const getCourse = () => {
|
|
|
Object.assign(dataForm, {...data})
|
|
|
processCourses()
|
|
|
getNewCourseInfo(dataForm)
|
|
|
+ console.log("课程信息",dataForm)
|
|
|
})
|
|
|
.catch((err: any) => {
|
|
|
console.error(err);
|
|
|
@@ -418,10 +478,23 @@ function formatDate(date:string) {
|
|
|
return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
|
|
|
}
|
|
|
|
|
|
+let formRef = ref<FormInstance>()
|
|
|
+const submitForm = async (formEl: FormInstance | undefined) => {
|
|
|
+ if (!formEl) return
|
|
|
+ await formEl.validate((valid, fields) => {
|
|
|
+ if (valid) {
|
|
|
+ console.log('submit!')
|
|
|
+ handleSubmit()
|
|
|
+ } else {
|
|
|
+ console.log('error submit!', fields)
|
|
|
+ }
|
|
|
+ })
|
|
|
+}
|
|
|
+
|
|
|
const handleSubmit = () => {
|
|
|
newCourseInfo.endTime = formatDate(newCourseInfo.endTime)
|
|
|
newCourseInfo.startTime = formatDate(newCourseInfo.startTime)
|
|
|
- console.log(uploadRef.value!.submit())
|
|
|
+ // uploadRef.value!.submit()
|
|
|
console.log(newCourseInfo)
|
|
|
// TODO: 更新图片需要更新两次,不知道为什么
|
|
|
apis.updateCourse(dataForm.courseId, newCourseInfo)
|
|
|
@@ -436,7 +509,7 @@ const handleSubmit = () => {
|
|
|
.then((res:any) => {
|
|
|
console.log(res.data.data.records[0])
|
|
|
})
|
|
|
- setTimeout(() => apis.updateCourse(dataForm.courseId, newCourseInfo), 500)
|
|
|
+ // setTimeout(() => apis.updateCourse(dataForm.courseId, newCourseInfo), 500)
|
|
|
}else {
|
|
|
ElNotification({
|
|
|
title: '修改失败',
|