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;