import DraggableDialog from "@/components/DraggableDialog"; import InitForm from "@/components/InitForm"; import PremButton from "@/components/PremButton"; import ShopProductCard from "@/components/ProductCard"; import ShopProductLoadingCard from "@/components/ProductCard/loading"; import { doFetch } from "@/utils/doFetch"; import PRODUCTS from "@/_mock/products"; import { Box, Container, Grid, Stack, Typography } from "@mui/material"; import Checkbox from "@mui/material/Checkbox"; import FormControlLabel from "@mui/material/FormControlLabel"; import FormGroup from "@mui/material/FormGroup"; import { useRequest } from "ahooks"; import { Empty, Input, message,Tabs } from "antd"; import { useMemo, useState } from "react"; import "./index.less"; function Lessons() { const [dialogprops, setdialogprops] = useState({ open: false, }); const [params, setparams] = useState({ courseName: "", status: null, typeList: ["1", "2", "3"], }); const handleClose = () => { setdialogprops((s) => ({ ...s, open: false, })); }; const { runAsync, loading } = useRequest(doFetch, { manual: true, onSuccess: (res, parames) => { if (res?.code == "0000") { handleClose(); message.success("操作成功"); datalist?.refresh(); } }, }); const datalist = useRequest( async () => { let res = await doFetch({ url: "/sysCourse/list", params }); return res?.data?.dataList; }, { debounceWait: 400, refreshDeps: [params], } ); const edit = (row) => { setdialogprops({ open: true, defaultFormValue: { ...row }, title: "编辑", }); }; const copy = (row) => { setdialogprops({ open: true, defaultFormValue: { ...row }, title: "复制创建", }); }; const authorized = (row) => { doFetch({ url: "/sysCourseTeacher/queryRelationTeacher", params: { courseId: row?.id }, }).then((res) => { if (res.code === "0000") { setdialogprops({ open: true, maxWidth: "xl", defaultFormValue: { ...row }, teacherIdList: res?.data?.dataList, title: "授权", }); } }); }; const remove = (row) => { runAsync({ url: "/sysCourse/delete", params: { id: row.id }, }); }; const publish = (row, params) => { const type = row?.type === 1 ? 2 : row?.type === 2 ? 1 : null; const extra = params ?? { type }; runAsync({ url: "/sysCourse/pubOrNotPub", params: { id: row.id, ...extra }, }); }; const columns = useMemo( () => [ { title: "课程封面", dataIndex: "pic", key: "pic", valueType: "uploadImage", fieldProps: { limit: 1, }, }, { title: "课程名称", dataIndex: "courseName", key: "courseName", formItemProps: { rules: [{ required: true, message: "此项为必填项" }], }, colProps: { span: 24, }, }, { title: "课程时间", dataIndex: "courseTime", key: "courseTimeList", valueType: "dateRange", colProps: { span: 24, }, }, ], [] ); return ( {dialogprops?.title === "编辑" || dialogprops?.title === "新增课程" || dialogprops?.title === "复制创建" ? ( { let postdata = { ...val }, url = "/sysCourse/saveOrUpdate"; switch (dialogprops?.title) { case "编辑": postdata = { ...val, id: dialogprops?.defaultFormValue?.id, }; break; case "复制创建": url = "/sysCourse/copy"; postdata = { ...val, id: dialogprops?.defaultFormValue?.id, }; break; default: break; } runAsync({ url, params: postdata, }); }} > ) : ( { const teacherIdList = val?.teacherIdList?.map((it) => it?.id); runAsync({ url: "/sysCourseTeacher/relationCourseTeacher", params: { teacherIdList, courseId: dialogprops?.defaultFormValue?.id, }, }); }} /> )} 课程管理 { setparams((s) => ({ ...s, type: val, })); }} > { setparams((s) => ({ ...s, courseName: e.target.value, })); }} > { e.stopPropagation(); setdialogprops({ open: true, defaultFormValue: {}, title: "新增课程", }); }, }} > 新增课程 {datalist?.loading && !datalist?.data ? ( PRODUCTS?.map((product, i) => { return ( ); }) ) : datalist?.data?.length === 0 ? ( ) : ( datalist?.data?.map?.((product) => ( )) )} ); } export default Lessons;