From 5e187d248fe3b328ca054f35199a3074a3678f6f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A6=BA=E7=8B=A8?= <18119604035@163.com> Date: Mon, 20 Mar 2023 16:02:23 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BA=BF=E4=B8=8A=E8=AF=BE=E5=8A=A0=E5=85=A5?= =?UTF-8?q?=E9=80=89=E4=BF=AE=E5=BF=85=E4=BF=AE=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/course.ts | 4 + src/pages/course/compenents/create.tsx | 12 ++ src/pages/course/compenents/update.tsx | 26 ++- src/pages/course/create.module.less | 0 src/pages/course/create.tsx | 193 ------------------ src/pages/course/index.tsx | 7 + src/pages/course/update.module.less | 0 src/pages/course/update.tsx | 267 ------------------------- src/pages/index.ts | 2 - src/router/routes.tsx | 11 - 10 files changed, 44 insertions(+), 478 deletions(-) delete mode 100644 src/pages/course/create.module.less delete mode 100644 src/pages/course/create.tsx delete mode 100644 src/pages/course/update.module.less delete mode 100644 src/pages/course/update.tsx diff --git a/src/api/course.ts b/src/api/course.ts index 14acab1..862a3f9 100644 --- a/src/api/course.ts +++ b/src/api/course.ts @@ -30,6 +30,7 @@ export function storeCourse( title: string, thumb: string, isShow: number, + isRequired: number, depIds: number[], categoryIds: number[], chapters: number[], @@ -39,6 +40,7 @@ export function storeCourse( title: title, thumb: thumb, is_show: isShow, + is_required: isRequired, dep_ids: depIds, category_ids: categoryIds, chapters: chapters, @@ -55,6 +57,7 @@ export function updateCourse( title: string, thumb: string, isShow: number, + isRequired: number, depIds: number[], categoryIds: number[], chapters: number[], @@ -64,6 +67,7 @@ export function updateCourse( title: title, thumb: thumb, is_show: isShow, + is_required: isRequired, dep_ids: depIds, category_ids: categoryIds, chapters: chapters, diff --git a/src/pages/course/compenents/create.tsx b/src/pages/course/compenents/create.tsx index 41a6f88..977e1f0 100644 --- a/src/pages/course/compenents/create.tsx +++ b/src/pages/course/compenents/create.tsx @@ -61,6 +61,7 @@ export const CourseCreate: React.FC = ({ open, onCancel }) => { dep_ids: [], category_ids: [], type: "open", + isRequired: 1, desc: "", hasChapter: 0, }); @@ -129,6 +130,7 @@ export const CourseCreate: React.FC = ({ open, onCancel }) => { values.title, values.thumb, 1, + values.isRequired, dep_ids, category_ids, chapters, @@ -359,6 +361,16 @@ export const CourseCreate: React.FC = ({ open, onCancel }) => { placeholder="请选择课程分类" /> + + + 必修课 + 选修课 + + = ({ thumb: res.data.course.thumb, dep_ids: depIds, category_ids: categoryIds, + isRequired: res.data.course.isRequired, type: type, desc: "", hasChapter: chapterType, @@ -164,10 +164,15 @@ export const CourseUpdate: React.FC = ({ setChapters([]); setChapterHours([]); let hours = res.data.hours; - const arr: any = resetHours(hours[0]).arr; - const keys: any = resetHours(hours[0]).keys; - setTreeData(arr); - setHours(keys); + if (JSON.stringify(hours) !== "{}") { + const arr: any = resetHours(hours[0]).arr; + const keys: any = resetHours(hours[0]).keys; + setTreeData(arr); + setHours(keys); + } else { + setTreeData([]); + setHours([]); + } } }); }; @@ -238,6 +243,7 @@ export const CourseUpdate: React.FC = ({ values.title, values.thumb, 1, + values.isRequired, dep_ids, category_ids, chapters, @@ -468,6 +474,16 @@ export const CourseUpdate: React.FC = ({ placeholder="请选择课程分类" /> + + + 必修课 + 选修课 + + { - const navigate = useNavigate(); - const [form] = Form.useForm(); - const [loading, setLoading] = useState(true); - const [departments, setDepartments] = useState([]); - const [categories, setCategories] = useState([]); - const [thumb, setThumb] = useState(""); - - useEffect(() => { - getParams(); - getCategory(); - }, []); - - 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); - } - }); - }; - - const getCategory = () => { - course.createCourse().then((res: any) => { - const categories = res.data.categories; - if (JSON.stringify(categories) !== "{}") { - const new_arr: Option[] = checkArr(categories, 0); - setCategories(new_arr); - } - form.setFieldsValue({ isShow: 1 }); - }); - }; - - const checkArr = (departments: any[], id: number) => { - const arr = []; - for (let i = 0; i < departments[id].length; i++) { - if (!departments[departments[id][i].id]) { - arr.push({ - label: 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, - value: departments[id][i].id, - children: new_arr, - }); - } - } - return arr; - }; - - const onFinish = (values: any) => { - console.log("Success:", values); - let dep_ids: any[] = []; - for (let i = 0; i < values.dep_ids.length; i++) { - dep_ids.push(values.dep_ids[i][values.dep_ids[i].length - 1]); - } - let category_ids: any[] = []; - for (let j = 0; j < values.category_ids.length; j++) { - category_ids.push( - values.category_ids[j][values.category_ids[j].length - 1] - ); - } - course - .storeCourse( - values.title, - values.thumb, - values.isShow, - dep_ids, - category_ids, - [], - [] - ) - .then((res: any) => { - message.success("保存成功!"); - navigate(-1); - }); - }; - - const onFinishFailed = (errorInfo: any) => { - console.log("Failed:", errorInfo); - }; - const onChange = (checked: boolean) => { - if (checked) { - form.setFieldsValue({ isShow: 1 }); - } else { - form.setFieldsValue({ isShow: 0 }); - } - }; - - return ( - <> - - -
- -
-
-
- - - - -
-
- { - setThumb(url); - form.setFieldsValue({ thumb: url }); - }} - > -
- {thumb && ( - - )} -
-
- - - - - - - - - - - - - -
-
- -
- - ); -}; diff --git a/src/pages/course/index.tsx b/src/pages/course/index.tsx index 2be7eb5..f95db41 100644 --- a/src/pages/course/index.tsx +++ b/src/pages/course/index.tsx @@ -107,6 +107,13 @@ export const CoursePage = () => { ), }, + { + title: "类别", + dataIndex: "isRequired", + render: (isRequired: number) => ( + {isRequired === 1 ? "必修课" : "选修课"} + ), + }, { title: "是否显示", dataIndex: "is_show", diff --git a/src/pages/course/update.module.less b/src/pages/course/update.module.less deleted file mode 100644 index e69de29..0000000 diff --git a/src/pages/course/update.tsx b/src/pages/course/update.tsx deleted file mode 100644 index 270f755..0000000 --- a/src/pages/course/update.tsx +++ /dev/null @@ -1,267 +0,0 @@ -import React, { useState, useEffect } from "react"; -import { Row, Col, Form, Input, Cascader, Switch, Button, message } from "antd"; -import styles from "./create.module.less"; -import { course, department } from "../../api/index"; -import { useParams, useNavigate } from "react-router-dom"; -import { UploadImageButton, BackBartment } from "../../compenents"; - -interface Option { - value: string | number; - label: string; - children?: Option[]; -} - -export const CourseUpdatePage: React.FC = () => { - const navigate = useNavigate(); - const params = useParams(); - const [form] = Form.useForm(); - const [loading, setLoading] = useState(true); - const [departments, setDepartments] = useState([]); - const [categories, setCategories] = useState([]); - const [thumb, setThumb] = useState(""); - - useEffect(() => { - getCategory(); - }, [params.cid]); - - const getCategory = () => { - course.createCourse().then((res: any) => { - const categories = res.data.categories; - if (JSON.stringify(categories) !== "{}") { - const new_arr: Option[] = checkArr(categories, 0); - setCategories(new_arr); - } - form.setFieldsValue({ isShow: 1 }); - getParams(categories); - }); - }; - - const getParams = (cats: any) => { - 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) => { - course.course(Number(params.cid)).then((res: any) => { - let data = res.data.course; - let box = res.data.dep_ids; - let depIds: any[] = []; - if (box.length > 1) { - 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 box2 = res.data.category_ids; - let categoryIds: any[] = []; - if (box2.length > 1) { - for (let i = 0; i < box2.length; i++) { - let item = checkChild(cats, box2[i]); - let arr: any[] = []; - if (item === undefined) { - arr.push(box2[i]); - } else if (item.parent_chain === "") { - arr.push(box2[i]); - } else { - let new_arr = item.parent_chain.split(","); - new_arr.map((num: any) => { - arr.push(Number(num)); - }); - arr.push(box2[i]); - } - categoryIds.push(arr); - } - } else { - categoryIds = res.data.category_ids; - } - - form.setFieldsValue({ - title: data.title, - thumb: data.thumb, - isShow: data.is_show, - dep_ids: depIds, - category_ids: categoryIds, - }); - setThumb(data.thumb); - }); - }; - - 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 checkArr = (departments: any[], id: number) => { - const arr = []; - for (let i = 0; i < departments[id].length; i++) { - if (!departments[departments[id][i].id]) { - arr.push({ - label: 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, - value: departments[id][i].id, - children: new_arr, - }); - } - } - return arr; - }; - - const onFinish = (values: any) => { - console.log("Success:", values); - let id = Number(params.cid); - let dep_ids: any[] = []; - for (let i = 0; i < values.dep_ids.length; i++) { - dep_ids.push(values.dep_ids[i][values.dep_ids[i].length - 1]); - } - let category_ids: any[] = []; - for (let j = 0; j < values.category_ids.length; j++) { - category_ids.push( - values.category_ids[j][values.category_ids[j].length - 1] - ); - } - course - .updateCourse( - id, - values.title, - values.thumb, - values.isShow, - dep_ids, - category_ids, - [], - [] - ) - .then((res: any) => { - message.success("保存成功!"); - navigate(-1); - }); - }; - - const onFinishFailed = (errorInfo: any) => { - console.log("Failed:", errorInfo); - }; - - const onChange = (checked: boolean) => { - if (checked) { - form.setFieldsValue({ isShow: 1 }); - } else { - form.setFieldsValue({ isShow: 0 }); - } - }; - - return ( - <> - - -
- -
-
-
- - - - -
-
- { - setThumb(url); - form.setFieldsValue({ thumb: url }); - }} - > -
- {thumb && ( - - )} -
-
- - - - - - - - - - - - - -
-
- -
- - ); -}; diff --git a/src/pages/index.ts b/src/pages/index.ts index 86bcafe..5b527cd 100644 --- a/src/pages/index.ts +++ b/src/pages/index.ts @@ -4,8 +4,6 @@ export * from "./dashboard"; export * from "./error"; export * from "./test"; export * from "./course/index"; -export * from "./course/create"; -export * from "./course/update"; export * from "./member/index"; export * from "./member/import"; export * from "./system/index"; diff --git a/src/router/routes.tsx b/src/router/routes.tsx index 9323dcb..6c471e5 100644 --- a/src/router/routes.tsx +++ b/src/router/routes.tsx @@ -5,8 +5,6 @@ import { Dashboard, ErrorPage, CoursePage, - CourseCreatePage, - CourseUpdatePage, TestPage, MemberPage, MemberImportPage, @@ -49,15 +47,6 @@ const routes: RouteObject[] = [ path: "/course", element: , }, - { - path: "/course/create", - element: , - }, - { - path: "/course/update/:cid", - element: , - }, - { path: "/member", element: ,