import DraggableDialog from "@/components/DraggableDialog"; import ImportExcel from "@/components/ImportExcel"; import InitForm from "@/components/InitForm"; import PremButton from "@/components/PremButton"; import ShopProductLoadingCard from "@/components/ProductCard/loading"; import ShopProductCard from "@/components/ProductCard/sxcard"; 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 } from "antd"; import { useMemo, useState } from "react"; import "./index.less"; function Lessons() { const [dialogprops, setdialogprops] = useState({ open: false, }); const [params, setparams] = useState({ trainName: "", status: null, typeList: ["1", "2", "3", "4", "5"], }); 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: "/busTrain/list", params }); return res?.data?.dataList; }, { debounceWait: 400, refreshDeps: [params], } ); const edit = (row) => { setdialogprops({ open: true, defaultFormValue: { ...row }, title: "编辑", }); }; const authorized = (row, ifs) => { doFetch({ url: "/trainStudent/queryRelationStudent", params: { trainId: row?.id }, }).then((res) => { if (res.code === "0000") { setdialogprops({ open: true, maxWidth: "xl", defaultFormValue: { ...row }, studentIdList: res?.data?.dataList, title: "授权", disabled: !ifs, }); } }); }; const tauthorized = (row, ifs) => { doFetch({ url: "/busTrainTeacher/queryRelationTeacher", params: { trainId: row?.id }, }).then((res) => { if (res.code === "0000") { setdialogprops({ open: true, maxWidth: "xl", defaultFormValue: { ...row }, teacherIdList: res?.data?.dataList, title: "协作教师", disabled: !ifs, }); } }); }; const remove = (row) => { runAsync({ url: "/busTrain/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: "/busTrain/updateType", params: { id: row.id, ...extra }, }); }; const columns = useMemo( () => [ { title: "课程", dataIndex: "courseId", key: "courseId", valueType: "select", options: { path: "/sysCourse/getLoginTeacherCourseSection", params: {}, }, colProps: { span: 24, }, }, { title: "实训名称", dataIndex: "trainName", key: "trainName" }, { title: "截止日期", dataIndex: "deadline", key: "deadline", valueType: "date", }, { title: "实训封面", dataIndex: "pic", key: "pic", valueType: "uploadImage", fieldProps: { limit: 1, }, colProps: { span: 24, }, }, ], [] ); return ( {dialogprops?.title === "编辑" || dialogprops?.title === "新增实训" ? ( { if (Object.keys(changedValues)[0] === "courseId") { let id = Object.values(changedValues)?.[0] ?? null; let res = await doFetch({ url: "/sysCourse/detail", params: { id }, }); let pic = res?.data?.data?.pic ?? []; formRef?.current?.setFieldsValue({ pic, }); } }} onFinish={(val, extra) => { let postdata = { ...val }, url = "/busTrain/saveOrUpdate"; switch (dialogprops?.title) { case "编辑": postdata = { ...val, id: dialogprops?.defaultFormValue?.id, }; break; default: break; } runAsync({ url, params: postdata, }); }} > ) : dialogprops?.title === "协作教师" ? ( { const teacherIdList = val?.teacherIdList?.map((it) => it?.id); runAsync({ url: "/busTrainTeacher/relationTrainTeacher", params: { teacherIdList, trainId: dialogprops?.defaultFormValue?.id, }, }); }} /> ) : ( { const studentIdList = val?.studentIdList?.map((it) => it?.id); runAsync({ url: "/trainStudent/relationTrainStudent", params: { studentIdList, trainId: dialogprops?.defaultFormValue?.id, }, }); }} /> )} 实训管理 0 && params?.typeList?.length < 5 } /> } label="全部" onChange={(e) => { setparams((s) => { let news = []; if (e.target.checked) { news = ["1", "2", "3", "4", "5"]; } return { ...s, typeList: news, }; }); }} /> { let val = e.target.value; setparams((s) => { let news = [...s?.typeList]; if (news.includes(val)) { news = news.filter((it) => it !== val); } else { news = [...news, val]; } return { ...s, typeList: news, }; }); }} > } label="待发布" value={1} /> } label="已发布" value={2} /> } label="已发布(暂停)" value={3} /> } label="已结束" value={4} /> } label="已关闭" value={5} /> { setparams((s) => ({ ...s, trainName: 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;