From 2b40133ed8ede166af6460a098ba1f9dc7d17f3a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A6=BA=E7=8B=A8?= <18119604035@163.com> Date: Wed, 22 Mar 2023 15:26:18 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BA=BF=E4=B8=8A=E8=AF=BE=E6=96=B0=E5=BB=BA?= =?UTF-8?q?=E3=80=81=E7=BC=96=E8=BE=91=E5=88=86=E7=B1=BB=E9=80=89=E6=8B=A9?= =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/course/compenents/create.tsx | 73 ++++++++++++++++++++++---- 1 file changed, 63 insertions(+), 10 deletions(-) diff --git a/src/pages/course/compenents/create.tsx b/src/pages/course/compenents/create.tsx index 10d1fee..0da3266 100644 --- a/src/pages/course/compenents/create.tsx +++ b/src/pages/course/compenents/create.tsx @@ -60,30 +60,22 @@ export const CourseCreate: React.FC = ({ useEffect(() => { getParams(); getCategory(); - }, []); + }, [open, cateIds, depIds]); useEffect(() => { - let type = "open"; - if (depIds.length !== 0 && depIds[0] !== 0) { - type = "elective"; - } form.setFieldsValue({ title: "", thumb: defaultThumb1, - dep_ids: depIds, - category_ids: cateIds, - type: type, isRequired: 1, short_desc: "", hasChapter: 0, }); setThumb(defaultThumb1); - setType(type); setChapterType(0); setChapters([]); setHours([]); setTreeData([]); - }, [form, open, cateIds, depIds]); + }, [form, open]); const getParams = () => { department.departmentList().then((res: any) => { @@ -92,9 +84,47 @@ export const CourseCreate: React.FC = ({ const new_arr: Option[] = checkArr(departments, 0); setDepartments(new_arr); } + let type = "open"; + if (depIds.length !== 0 && depIds[0] !== 0) { + type = "elective"; + let item = checkChild(res.data.departments, depIds[0]); + let arr: any[] = []; + if (item === undefined) { + arr.push(depIds[0]); + } else if (item.parent_chain === "") { + arr.push(depIds[0]); + } else { + let new_arr = item.parent_chain.split(","); + new_arr.map((num: any) => { + arr.push(Number(num)); + }); + arr.push(depIds[0]); + } + form.setFieldsValue({ + dep_ids: arr, + }); + } else { + form.setFieldsValue({ + dep_ids: depIds, + }); + } + form.setFieldsValue({ + type: type, + }); + setType(type); }); }; + const checkChild = (departments: any[], id: number) => { + for (let key in departments) { + for (let i = 0; i < departments[key].length; i++) { + if (departments[key][i].id === id) { + return departments[key][i]; + } + } + } + }; + const getCategory = () => { course.createCourse().then((res: any) => { const categories = res.data.categories; @@ -102,6 +132,29 @@ export const CourseCreate: React.FC = ({ const new_arr: Option[] = checkArr(categories, 0); setCategories(new_arr); } + + if (cateIds.length !== 0 && cateIds[0] !== 0) { + let item = checkChild(res.data.categories, cateIds[0]); + let arr: any[] = []; + if (item === undefined) { + arr.push(cateIds[0]); + } else if (item.parent_chain === "") { + arr.push(cateIds[0]); + } else { + let new_arr = item.parent_chain.split(","); + new_arr.map((num: any) => { + arr.push(Number(num)); + }); + arr.push(cateIds[0]); + } + form.setFieldsValue({ + category_ids: arr, + }); + } else { + form.setFieldsValue({ + category_ids: cateIds, + }); + } }); };