From 12b1c0ff3d9eceb9c67149e51e99e60866fe380f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A6=BA=E7=8B=A8?= <18119604035@163.com> Date: Tue, 28 Mar 2023 16:08:56 +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=E9=83=A8=E9=97=A8=E3=80=81=E5=88=86?= =?UTF-8?q?=E7=B1=BB=E9=80=89=E6=8B=A9=E5=99=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/course/compenents/create.tsx | 26 +++++------ src/pages/course/compenents/update.tsx | 65 +++++++++----------------- 2 files changed, 33 insertions(+), 58 deletions(-) diff --git a/src/pages/course/compenents/create.tsx b/src/pages/course/compenents/create.tsx index 64a8fae..440018e 100644 --- a/src/pages/course/compenents/create.tsx +++ b/src/pages/course/compenents/create.tsx @@ -5,12 +5,12 @@ import { Button, Drawer, Form, - Cascader, Input, Modal, message, Image, Tooltip, + TreeSelect, } from "antd"; import styles from "./create.module.less"; import { course, department } from "../../../api/index"; @@ -30,7 +30,7 @@ interface PropInterface { interface Option { value: string | number; - label: string; + title: string; children?: Option[]; } @@ -163,13 +163,13 @@ export const CourseCreate: React.FC = ({ for (let i = 0; i < departments[id].length; i++) { if (!departments[departments[id][i].id]) { arr.push({ - label: departments[id][i].name, + title: departments[id][i].name, value: departments[id][i].id, }); } else { const new_arr: Option[] = checkArr(departments, departments[id][i].id); arr.push({ - label: departments[id][i].name, + title: departments[id][i].name, value: departments[id][i].id, children: new_arr, }); @@ -181,9 +181,7 @@ export const CourseCreate: React.FC = ({ const onFinish = (values: any) => { let dep_ids: any[] = []; if (type === "elective") { - for (let i = 0; i < values.dep_ids.length; i++) { - dep_ids.push(values.dep_ids[i][values.dep_ids[i].length - 1]); - } + dep_ids = values.dep_ids; } course .storeCourse( @@ -409,11 +407,11 @@ export const CourseCreate: React.FC = ({ name="category_ids" rules={[{ required: true, message: "请选择课程分类!" }]} > - @@ -469,11 +467,11 @@ export const CourseCreate: React.FC = ({ }, ]} > - diff --git a/src/pages/course/compenents/update.tsx b/src/pages/course/compenents/update.tsx index 69bef62..a276e20 100644 --- a/src/pages/course/compenents/update.tsx +++ b/src/pages/course/compenents/update.tsx @@ -5,7 +5,7 @@ import { Button, Drawer, Form, - Cascader, + TreeSelect, Input, Modal, message, @@ -27,7 +27,7 @@ interface PropInterface { interface Option { value: string | number; - label: string; + title: string; children?: Option[]; } @@ -46,11 +46,16 @@ export const CourseUpdate: React.FC = ({ const [thumb, setThumb] = useState(""); const [type, setType] = useState("open"); + useEffect(() => { + getCategory(); + getParams(); + }, [form, open]); + useEffect(() => { if (id === 0) { return; } - getCategory(); + getDetail(); }, [id, open]); const getCategory = () => { @@ -60,52 +65,27 @@ export const CourseUpdate: React.FC = ({ const new_arr: Option[] = checkArr(categories, 0); setCategories(new_arr); } - - getParams(categories); }); }; - const getParams = (cats: any) => { + const getParams = () => { department.departmentList().then((res: any) => { const departments = res.data.departments; if (JSON.stringify(departments) !== "{}") { const new_arr: Option[] = checkArr(departments, 0); setDepartments(new_arr); } - getDetail(departments, cats); }); }; - const getDetail = (deps: any, cats: any) => { + const getDetail = () => { course.course(id).then((res: any) => { - let box = res.data.dep_ids; - let depIds: any[] = []; let type = res.data.dep_ids.length > 0 ? "elective" : "open"; - if (box.length > 0) { - for (let i = 0; i < box.length; i++) { - let item = checkChild(deps, box[i]); - let arr: any[] = []; - if (item === undefined) { - arr.push(box[i]); - } else if (item.parent_chain === "") { - arr.push(box[i]); - } else { - let new_arr = item.parent_chain.split(","); - new_arr.map((num: any) => { - arr.push(Number(num)); - }); - arr.push(box[i]); - } - depIds.push(arr); - } - } else { - depIds = res.data.dep_ids; - } let chapterType = res.data.chapters.length > 0 ? 1 : 0; form.setFieldsValue({ title: res.data.course.title, thumb: res.data.course.thumb, - dep_ids: depIds, + dep_ids: res.data.dep_ids, category_ids: res.data.category_ids, isRequired: res.data.course.is_required, type: type, @@ -132,13 +112,13 @@ export const CourseUpdate: React.FC = ({ for (let i = 0; i < departments[id].length; i++) { if (!departments[departments[id][i].id]) { arr.push({ - label: departments[id][i].name, + title: departments[id][i].name, value: departments[id][i].id, }); } else { const new_arr: Option[] = checkArr(departments, departments[id][i].id); arr.push({ - label: departments[id][i].name, + title: departments[id][i].name, value: departments[id][i].id, children: new_arr, }); @@ -150,11 +130,8 @@ export const CourseUpdate: React.FC = ({ const onFinish = (values: any) => { let dep_ids: any[] = []; if (type === "elective") { - for (let i = 0; i < values.dep_ids.length; i++) { - dep_ids.push(values.dep_ids[i][values.dep_ids[i].length - 1]); - } + dep_ids = values.dep_ids; } - course .updateCourse( id, @@ -215,11 +192,11 @@ export const CourseUpdate: React.FC = ({ name="category_ids" rules={[{ required: true, message: "请选择课程分类!" }]} > - @@ -275,11 +252,11 @@ export const CourseUpdate: React.FC = ({ }, ]} > -