|
@@ -22,21 +22,21 @@ const oneObj: A6QListType = {
|
|
|
};
|
|
|
|
|
|
type Props = {
|
|
|
- moId: number;
|
|
|
+ moInfo: { id: number; num: number };
|
|
|
closeFu: () => void;
|
|
|
- tableLen: number;
|
|
|
+ tableLen: number; //当前已经有的题目数量(表格)
|
|
|
};
|
|
|
|
|
|
-function QTadd({ moId, closeFu, tableLen }: Props) {
|
|
|
+function QTadd({ moInfo, closeFu, tableLen }: Props) {
|
|
|
const getInfoFu = useCallback(async (id: number) => {}, []);
|
|
|
|
|
|
useEffect(() => {
|
|
|
- if (moId > 0) getInfoFu(moId);
|
|
|
+ if (moInfo.id > 0) getInfoFu(moInfo.id);
|
|
|
else {
|
|
|
// 新增
|
|
|
setList([oneObj]);
|
|
|
}
|
|
|
- }, [getInfoFu, moId]);
|
|
|
+ }, [getInfoFu, moInfo.id]);
|
|
|
|
|
|
// 是否 已经点击过确定
|
|
|
const [fileCheck, setFileCheck] = useState(false);
|
|
@@ -98,7 +98,7 @@ function QTadd({ moId, closeFu, tableLen }: Props) {
|
|
|
[list]
|
|
|
);
|
|
|
|
|
|
- // 信息的改变(去掉跳题)
|
|
|
+ // 信息的改变(不包含 选择跳题 题目的下拉框)
|
|
|
const dataChangeFu = useCallback(
|
|
|
(
|
|
|
e: string | boolean,
|
|
@@ -141,7 +141,7 @@ function QTadd({ moId, closeFu, tableLen }: Props) {
|
|
|
[list]
|
|
|
);
|
|
|
|
|
|
- // 跳题的改变
|
|
|
+ // 选择跳题 题目的下拉框
|
|
|
const skipChangeFu = useCallback(
|
|
|
(e: number, id: number, len: 1 | 2) => {
|
|
|
if (len === 1) {
|
|
@@ -179,11 +179,16 @@ function QTadd({ moId, closeFu, tableLen }: Props) {
|
|
|
const oneFlag = useCallback((info: A6QListType) => {
|
|
|
let flag = false;
|
|
|
|
|
|
+ // 题目和选项是否填写
|
|
|
if (!info.name) flag = true;
|
|
|
else if (info.type !== "填空") {
|
|
|
flag = info.sList.some((v) => !v.txt);
|
|
|
}
|
|
|
|
|
|
+ // 下拉框勾选了选项跳题,但是子选项一个跳题都没有勾选
|
|
|
+ if (info.skip === "选项跳题" && info.sList.every((v) => !v.skip2))
|
|
|
+ flag = true;
|
|
|
+
|
|
|
return flag;
|
|
|
}, []);
|
|
|
|
|
@@ -191,12 +196,11 @@ function QTadd({ moId, closeFu, tableLen }: Props) {
|
|
|
const btnOkFu = useCallback(() => {
|
|
|
setFileCheck(true);
|
|
|
|
|
|
- // 待完善
|
|
|
- if (!fileCheck) return MessageFu.warning("请规范填写题目信息!");
|
|
|
-
|
|
|
- const dom = document.querySelector(".A6Qlist2SonErr");
|
|
|
+ const dom = document.querySelector(".A6Qlist2SonErrBox");
|
|
|
if (dom) return MessageFu.warning("请规范填写题目信息!");
|
|
|
- }, [fileCheck]);
|
|
|
+
|
|
|
+ console.log("------验证通过----");
|
|
|
+ }, []);
|
|
|
|
|
|
return (
|
|
|
<Modal
|
|
@@ -204,11 +208,9 @@ function QTadd({ moId, closeFu, tableLen }: Props) {
|
|
|
open={true}
|
|
|
title={
|
|
|
<div className="QTatitle">
|
|
|
- <div>{moId > 0 ? "编辑" : "新增"}题目</div>
|
|
|
+ <div>{moInfo.id > 0 ? "编辑" : "新增"}题目</div>
|
|
|
<div>
|
|
|
- <span className="QTatitleS">
|
|
|
- 最多支持50题,还能新增{50 - tableLen - list.length}题
|
|
|
- </span>
|
|
|
+ <span className="QTatitleS">最多支持50题</span>
|
|
|
 
|
|
|
<Button
|
|
|
type="primary"
|
|
@@ -231,7 +233,8 @@ function QTadd({ moId, closeFu, tableLen }: Props) {
|
|
|
<div
|
|
|
className={classNames(
|
|
|
"A6Qlist2Son",
|
|
|
- oneFlag(v) && fileCheck ? "A6Qlist2SonErr" : ""
|
|
|
+ oneFlag(v) && fileCheck ? "A6Qlist2SonErr" : "",
|
|
|
+ oneFlag(v) ? "A6Qlist2SonErrBox" : ""
|
|
|
)}
|
|
|
key={v.id}
|
|
|
>
|
|
@@ -251,7 +254,8 @@ function QTadd({ moId, closeFu, tableLen }: Props) {
|
|
|
{/* 题目 */}
|
|
|
<div className="A6Q2_1">
|
|
|
<div>
|
|
|
- <span>*</span> 题目 {i + 1}
|
|
|
+ <span>*</span> 题目{" "}
|
|
|
+ {moInfo.id > 0 ? moInfo.num : tableLen + i + 1}
|
|
|
</div>
|
|
|
<div>
|
|
|
<TextArea
|