import AutoTable from "@/components/AutoTable";
import DraggableDialog from "@/components/DraggableDialog";
import InitForm from "@/components/InitForm";
import PremButton from "@/components/PremButton";
import SplitDesc from "@/components/SplitDesc";
import { doFetch } from "@/utils/doFetch";
import { ProDescriptions } from "@ant-design/pro-components";
import { Box, Container, Stack, Typography } from "@mui/material";
import { useRequest } from "ahooks";
import { Divider, message, Tabs } from "antd";
import { useMemo, useRef, useState } from "react";
import "./index.less";
function Checkhomework() {
const actionRef = useRef(),
formRef = useRef(),
actionRefs = useRef(),
formRefs = useRef(),
formRefc = useRef();
const [dialogprops, setdialogprops] = useState({
open: false,
});
const [active, setactive] = useState("2");
const [params, setparams] = useState();
const handleClose = () => {
setdialogprops((s) => ({
...s,
open: false,
}));
};
const { runAsync, loading } = useRequest(doFetch, {
manual: true,
onSuccess: (res, parames) => {
if (parames?.url === "/studentExperiment/giveScore") return;
if (res?.code == "0000") {
message.success("操作成功");
if (active === "1") {
actionRef?.current?.reload();
} else {
actionRefs?.current?.reload();
}
}
},
});
const audit = (text, row, _, action) => {
return row.reviewType == 1 ? (
{
setdialogprops({
open: true,
defaultFormValue: { ...row },
title: "批阅",
});
},
}}
>
批阅
) : (
{
setdialogprops({
open: true,
defaultFormValue: { ...row },
title: "详情",
maxWidth: "md",
footer: false,
});
},
}}
>
详情
);
};
const remove = (text, row, _) => {
return (
{
await runAsync({
url: "/studentExperiment/remake",
params: { id: row?.id },
});
},
}}
btn={{
disabled: row?.reviewType !== 1,
size: "small",
color: "error",
}}
>
退回
);
};
const columns = useMemo(
() => [
{ title: "学生姓名", dataIndex: "studentName", key: "studentName" },
{ title: "学生账号", dataIndex: "studentAccount", key: "studentAccount" },
{ title: "课程名称", dataIndex: "courseName", key: "courseName" },
{ title: "实训名称", dataIndex: "trainName", key: "trainName" },
{ title: "实验名称", dataIndex: "experimentName", key: "experimentName" },
{ title: "分数", dataIndex: "score", key: "score", hideInSearch: true },
{ title: "权重", dataIndex: "weight", key: "weight", hideInSearch: true },
{
title: "分数(权重)",
dataIndex: "scoreWeight",
key: "scoreWeight",
hideInSearch: true,
},
{
title: "提交时间",
dataIndex: "finishTime",
key: "finishTimeRange",
valueType: "dateTimeRange",
},
{
title: "批阅时间",
dataIndex: "reviewTime",
key: "reviewTimeRange",
valueType: "dateTimeRange",
},
{
title: "批阅状态",
dataIndex: "reviewTypeName",
key: "reviewType",
valueType: "select",
mode: "radio",
options: [
{ label: "待批阅", value: "1" },
{ label: "已批阅", value: "2" },
],
},
],
[]
);
const detailcolumns = [
{ title: "学生姓名", dataIndex: "studentName", key: "studentName" },
{ title: "学生账号", dataIndex: "studentAccount", key: "studentAccount" },
{ title: "课程名称", dataIndex: "courseName", key: "courseName" },
{ title: "实训名称", dataIndex: "trainName", key: "trainName" },
{ title: "实验名称", dataIndex: "experimentName", key: "experimentName" },
{ title: "分数", dataIndex: "score", key: "score", hideInSearch: true },
{ title: "权重", dataIndex: "weight", key: "weight", hideInSearch: true },
{ title: "分数", dataIndex: "scoreWeight", key: "scoreWeight" },
{
title: "提交时间",
dataIndex: "finishTime",
key: "finishTimeRange",
},
{
title: "批阅时间",
dataIndex: "reviewTime",
key: "reviewTimeRange",
},
];
const columes = useMemo(() => {
return [
{ title: "学生姓名", dataIndex: "studentName", key: "studentName" },
{ title: "学生账号", dataIndex: "studentAccount", key: "studentAccount" },
{ title: "课程名称", dataIndex: "courseName", key: "courseName" },
{ title: "实训名称", dataIndex: "trainName", key: "trainName" },
{ title: "实验名称", dataIndex: "experimentName", key: "experimentName" },
{ title: "分数", dataIndex: "score", key: "score", hideInSearch: true },
{ title: "权重", dataIndex: "weight", key: "weight", hideInSearch: true },
{
title: "分数(权重)",
dataIndex: "scoreWeight",
key: "scoreWeight",
hideInSearch: true,
},
{
title: "提交时间",
dataIndex: "finishTime",
key: "finishTimeRange",
valueType: "dateTimeRange",
},
{
title: "批阅时间",
dataIndex: "reviewTime",
key: "reviewTimeRange",
valueType: "dateTimeRange",
},
{
title: "批阅状态",
dataIndex: "reviewTypeName",
key: "reviewType",
valueType: "select",
mode: "radio",
options: [
{ label: "待批阅", value: "1" },
{ label: "已批阅", value: "2" },
],
},
];
}, []);
const [datas, setdatas] = useState({
tabs: [],
});
let blid = useRequest(
async () => {
let res = await doFetch({
url: "/studentExperiment/queryAllByLoginTeacher",
params: {},
});
return res?.data?.dataList;
},
{
refreshDeps: [],
onSuccess: (data, params) => {
setdatas((s) => ({
...s,
tabs: data?.map((it) => ({
...it,
label: it?.studentName,
key: it?.id,
})),
}));
if (dialogprops?.open) {
setdialogprops({
open: true,
defaultFormValue: { ...data[0] },
title: "批阅",
});
}
formRefc?.current?.resetFields();
},
}
);
//全部数量
let totaldata = useRequest(async () => {
let res = await doFetch({
url: "/studentExperiment/queryCountByLoginTeacher",
params: {},
});
return res?.data?.data;
});
const items = useMemo(() => {
return [
{
key: "2",
label: `已提交 ${params?.already ?? totaldata?.data?.submitNum ?? 0}`,
children: (
[
audit(text, row, _, action),
remove(text, row, _, action),
],
},
]}
path="/studentExperiment/queryPageByLoginTeacher"
rerendered={false}
extraparams={{ type: "2" }}
setparams={(val) => {
setparams((s) => ({
...s,
already: val,
}));
}}
>
),
},
{
key: "1",
label: `待提交 ${
params?.unalready ?? totaldata?.data?.notSubmitNum ?? 0
}`,
children: (
{
setparams((s) => ({
...s,
unalready: val,
}));
}}
>
),
},
];
}, [totaldata]);
return (
{
handleClose();
actionRef?.current?.reload();
}}
loading={loading}
formRef={formRefc}
dialogprops={dialogprops}
maxWidth={dialogprops?.maxWidth ?? "sm"}
formdom={
dialogprops?.title === "批阅" && (
{
let postdata = {
...val,
id: dialogprops?.defaultFormValue?.id,
};
await runAsync({
url: "/studentExperiment/giveScore",
params: postdata,
});
await blid?.runAsync();
}}
>
)
}
>
{dialogprops?.title === "批阅" ? (
<>
{
let currow = datas?.tabs?.filter((it) => it?.id == key)[0];
setdialogprops({
open: true,
defaultFormValue: { ...currow },
title: "批阅",
});
}}
>
>
) : dialogprops?.title === "详情" ? (
) : (
{
let postdata = { ...val, type: "3" };
switch (dialogprops?.title) {
case "编辑":
postdata = {
...val,
id: dialogprops?.defaultFormValue?.id,
};
break;
default:
break;
}
runAsync({
url: "/user/saveOrUpdate",
params: postdata,
});
}}
>
)}
作业批阅
{
e.stopPropagation();
if (active === "1") {
let formval = formRef?.current.getFieldsValue();
const params = {
...formval,
type: active,
};
await doFetch({
url: "/studentExperiment/exportByLoginTeacher",
params,
});
} else {
let formval = formRefs?.current.getFieldsValue();
const params = {
...formval,
type: active,
};
await doFetch({
url: "/studentExperiment/exportByLoginTeacher",
params,
});
}
},
}}
>
导出
{
setactive(value);
}}
items={items}
tabPosition="top"
animated={true}
/>
);
}
export default Checkhomework;