import AutoTable from "@/components/AutoTable"; import DraggableDialog from "@/components/DraggableDialog"; import InitForm from "@/components/InitForm"; import PremButton from "@/components/PremButton"; import TreeRender from "@/components/TreeRender/sxtree"; import { doFetch } from "@/utils/doFetch"; import editorIsNull from "@/utils/editorIsNull"; import { Box, Container, Grid, Link, Stack, Typography } from "@mui/material"; import { useParams } from "@umijs/max"; import { useRequest } from "ahooks"; import { Badge, message, Tabs } from "antd"; import { useEffect, useMemo, useRef, useState } from "react"; import { history } from "umi"; import "./index.less"; function Dolessons() { const params = useParams(); const formRef = useRef(), cksyactionRef = useRef(), cjwtactionRef = useRef(); const [lessonDetail, setlessonDetail] = useState(null), [courseContent, setCourseContent] = useState({}), [drawer, setDrawer] = useState({ open: false, }), [active, setactive] = useState("1"); const { runAsync, loading } = useRequest(doFetch, { manual: true, onSuccess: (res, parames) => { if (res?.code == "0000") { handleClose(); message.success("操作成功"); if (active === "2") { cksyactionRef?.current?.reload(); } else if (active === "3") { cjwtactionRef?.current?.reload(); } } }, }); useEffect(() => { doFetch({ url: "/busTrain/detail", params: { id: params?.id } }).then( (res) => { if (res.code === "0000") { setlessonDetail(res?.data?.data); } } ); }, []); const ifs = useMemo(() => { let { type } = lessonDetail ?? {}; return !(type === 1 || type === 3); }, [lessonDetail]); const checkCourse = (val) => { if (val.length) { doFetch({ url: "/busTrainCatalogue/getCatalogueContent", params: { id: val[0] }, }).then((res) => { setCourseContent(res?.data?.data); formRef.current.setFieldValue( "trainContent", res?.data?.data?.trainContent ); }); } }; const edit = (text, row, _, action) => { return ( { setDrawer((v) => ({ open: true, defaultFormValue: { ...row }, title: "编辑", })); }, }} > 编辑 ); }; const remove = (text, row, _, action) => { return ( { await runAsync({ url: "/busTrainExperiment/remove", params: { id: row?.id }, }); }, }} btn={{ disabled: ifs, size: "small", color: "error", }} > 删除 ); }; const removeq = (text, row, _, action) => { return ( { await runAsync({ url: "/busTrainQuestion/delete", params: { id: row?.id }, }); }, }} btn={{ size: "small", color: "error", disabled: ifs, }} > 删除 ); }; const questionColumns = useMemo(() => { let col = [ { title: "问题内容", dataIndex: "question", key: "question", width: 400, formItemProps: { rules: [{ required: true, message: "此项为必填项" }] }, }, { title: "参考答案", dataIndex: "answer", key: "answer", formItemProps: { rules: [{ required: true, message: "此项为必填项" }] }, }, ]; return col; }, []); const experimentColumns = useMemo(() => { let col = [ { title: "实验名称", dataIndex: "experimentName", key: "experimentName", formItemProps: { rules: [{ required: true, message: "此项为必填项" }] }, render: (_, row) => { return ( {row?.experimentName} ); }, search: false, }, { title: "考试时间(分钟)", search: false, dataIndex: "testTime", key: "testTime", formItemProps: { rules: [{ required: true, message: "此项为必填项" }] }, }, { title: "权重(%)", search: false, dataIndex: "weight", key: "weight", formItemProps: { rules: [{ required: true, message: "此项为必填项" }] }, }, { search: false, title: "创建人", dataIndex: "updateUserName", key: "updateUserName", formItemProps: { rules: [{ required: true, message: "此项为必填项" }] }, }, { title: "创建时间", dataIndex: "updateTime", search: false, key: "updateTime", formItemProps: { rules: [{ required: true, message: "此项为必填项" }] }, }, { title: "截止时间", dataIndex: "deadline", search: false, key: "deadline", formItemProps: { rules: [{ required: true, message: "此项为必填项" }] }, }, { title: "实验完成率", dataIndex: "finishPer", search: false, key: "finishPer", formItemProps: { rules: [{ required: true, message: "此项为必填项" }] }, }, ]; return col; }, []); const items = [ { key: "1", label: `课程目录`, children: ( { const data = { ...val }; if (editorIsNull(data?.trainContent)) { return message.warning("备课内容不能为空!", 2); } doFetch({ url: "/busTrainCatalogue/saveCatalogueContent", params: { id: courseContent?.id, trainContent: data?.trainContent, }, }).then((res) => { if (res.code === "0000") { message.success("操作成功!"); } }); }} disabled={ifs} /> ), }, { key: "2", label: ( 查看实验 ), children: ( [ edit(text, row, _, action), remove(text, row, _, action), ], }, ]} path="/busTrainExperiment/page" extraparams={{ trainId: params?.id, }} /> ), }, { key: "3", label: "常见问题", children: ( [ edit(text, row, _, action), removeq(text, row, _, action), ], }, ]} path="/busTrainQuestion/page" extraparams={{ trainId: params?.id, }} /> ), }, ]; const addHandel = (val) => { if (active === "1") { // 预览 } else if (active === "2") { // 添加实验 setDrawer({ open: true, title: "添加实验" }); } else { // 添加问题 setDrawer({ open: true, title: "添加问题" }); } }; const handleClose = () => { setDrawer((s) => ({ ...s, open: false, })); }; return ( {active === "2" ? ( { let postdata; switch (drawer?.title) { case "添加实验": postdata = { ...val, trainId: params?.id, }; break; case "编辑": postdata = { ...val, id: drawer?.defaultFormValue?.id, trainId: params?.id, }; default: break; } runAsync({ url: "/busTrainExperiment/update", params: postdata, }); }} onValuesChange={(curval, vals, formRef) => { if (Object.keys(curval)[0] === "id") { doFetch({ url: "/busTrainExperiment/detail", params: { id: Object.values(curval)[0] }, }).then((res) => { formRef?.current?.setFieldsValue({ weight: res?.data?.data?.weight, }); }); } }} > ) : ( { let postdata; switch (drawer?.title) { case "添加问题": postdata = { ...val, trainId: params?.id, }; break; case "编辑": postdata = { ...val, id: drawer?.defaultFormValue?.id, trainId: params?.id, }; default: break; } runAsync({ url: "/busTrainQuestion/saveOrUpdate", params: postdata, }); }} > )} {lessonDetail?.trainName ?? "暂无名称"} { e.stopPropagation(); history.back(); }, }} > 返回 {active === "1" ? "预览" : active === "2" ? "添加实验" : "添加问题"} ); } export default Dolessons;