From cd449f43d82f05ede774515c5cc8877b622f9cd6 Mon Sep 17 00:00:00 2001 From: ditiqi Date: Wed, 26 Feb 2025 10:53:06 +0800 Subject: [PATCH 1/6] add --- .../detail/CourseSyllabus/LectureItem.tsx | 7 ++++++- .../editor/context/CourseEditorContext.tsx | 21 ++++++++++--------- .../CourseContentForm/SortableSection.tsx | 3 +++ .../editor/layout/CourseEditorHeader.tsx | 10 ++++++++- 4 files changed, 29 insertions(+), 12 deletions(-) diff --git a/apps/web/src/components/models/course/detail/CourseSyllabus/LectureItem.tsx b/apps/web/src/components/models/course/detail/CourseSyllabus/LectureItem.tsx index f4276bf..ffc0a49 100755 --- a/apps/web/src/components/models/course/detail/CourseSyllabus/LectureItem.tsx +++ b/apps/web/src/components/models/course/detail/CourseSyllabus/LectureItem.tsx @@ -24,7 +24,12 @@ export const LectureItem: React.FC = ({ }, [lectureId, lecture]); return (
onClick(lecture.id)}> {lecture?.meta?.type === LectureType.VIDEO && (
diff --git a/apps/web/src/components/models/course/editor/context/CourseEditorContext.tsx b/apps/web/src/components/models/course/editor/context/CourseEditorContext.tsx index 6b61854..0c8becc 100755 --- a/apps/web/src/components/models/course/editor/context/CourseEditorContext.tsx +++ b/apps/web/src/components/models/course/editor/context/CourseEditorContext.tsx @@ -1,6 +1,7 @@ import { createContext, useContext, ReactNode, useEffect } from "react"; import { Form, FormInstance, message } from "antd"; import { + courseDetailSelect, CourseDto, CourseMeta, CourseStatus, @@ -48,9 +49,7 @@ export function CourseFormProvider({ const { data: course }: { data: CourseDto } = api.post.findFirst.useQuery( { where: { id: editId }, - include: { - terms: true, - }, + select: courseDetailSelect, }, { enabled: Boolean(editId) } ); @@ -65,10 +64,12 @@ export function CourseFormProvider({ useEffect(() => { if (course) { + const deptIds = (course?.depts || [])?.map((dept) => dept.id); const formData = { title: course.title, subTitle: course.subTitle, content: course.content, + deptIds: deptIds, meta: { thumbnail: course?.meta?.thumbnail, }, @@ -91,7 +92,10 @@ export function CourseFormProvider({ const formattedValues = { ...values, meta: { - thumbnail: values?.meta?.thumbnail, + ...((course?.meta as CourseMeta) || {}), + ...(values?.meta?.thumbnail !== undefined && { + thumbnail: values?.meta?.thumbnail, + }), }, terms: { connect: termIds.map((id) => ({ id })), // 转换成 connect 格式 @@ -106,12 +110,9 @@ export function CourseFormProvider({ }); delete formattedValues.sections; delete formattedValues.deptIds; - if (course) { - formattedValues.meta = { - ...(course?.meta as CourseMeta), - thumbnail: values?.meta?.thumbnail, - }; - } + + console.log(course.meta); + console.log(formattedValues?.meta); try { if (editId) { const result = await update.mutateAsync({ diff --git a/apps/web/src/components/models/course/editor/form/CourseContentForm/SortableSection.tsx b/apps/web/src/components/models/course/editor/form/CourseContentForm/SortableSection.tsx index aea9b29..bf6af5b 100755 --- a/apps/web/src/components/models/course/editor/form/CourseContentForm/SortableSection.tsx +++ b/apps/web/src/components/models/course/editor/form/CourseContentForm/SortableSection.tsx @@ -69,6 +69,9 @@ export const SortableSection: React.FC = ({ }); } else { result = await update.mutateAsync({ + where: { + id: field?.id, + }, data: { title: values?.title, }, diff --git a/apps/web/src/components/models/course/editor/layout/CourseEditorHeader.tsx b/apps/web/src/components/models/course/editor/layout/CourseEditorHeader.tsx index 8c23fa7..7ee7866 100755 --- a/apps/web/src/components/models/course/editor/layout/CourseEditorHeader.tsx +++ b/apps/web/src/components/models/course/editor/layout/CourseEditorHeader.tsx @@ -4,6 +4,7 @@ import { useEffect } from "react"; import { useNavigate } from "react-router-dom"; import { CourseStatus, CourseStatusLabel } from "@nice/common"; import { useCourseEditor } from "../context/CourseEditorContext"; +import { useAuth } from "@web/src/providers/auth-provider"; const { Title } = Typography; @@ -16,6 +17,7 @@ const courseStatusVariant: Record = { export default function CourseEditorHeader() { const navigate = useNavigate(); + const {} = useAuth(); const { onSubmit, course, form } = useCourseEditor(); const handleSave = () => { @@ -34,7 +36,13 @@ export default function CourseEditorHeader() {