From 39ca84e2f66b6f0e2f6f7c368eb87b419c5b7100 Mon Sep 17 00:00:00 2001 From: zhengpengju Date: Thu, 3 Mar 2022 19:20:31 +0800 Subject: [PATCH] fix bug --- .../examinationrules/attestation/index.tsx | 4 +- .../attestation/step/index.tsx | 19 +++--- .../components/QuestionPaper.tsx | 6 +- .../components/ScoreSetter.tsx | 13 +++- .../normal/components/AutoSelector.tsx | 24 +++----- .../normal/components/QuestionPaper.tsx | 4 +- .../pages/examinationrules/normal/index.tsx | 4 +- .../examinationrules/normal/step/index.tsx | 59 +++++++++++-------- admin/src/pages/questionbank/index.tsx | 4 +- 9 files changed, 75 insertions(+), 62 deletions(-) diff --git a/admin/src/pages/examinationrules/attestation/index.tsx b/admin/src/pages/examinationrules/attestation/index.tsx index 27f10f2..48a58c0 100644 --- a/admin/src/pages/examinationrules/attestation/index.tsx +++ b/admin/src/pages/examinationrules/attestation/index.tsx @@ -177,7 +177,7 @@ const ExaminationRules: React.FC = () => { valueType: 'text', hideInSearch: true, hideInForm: false, - renderText: (val: string) => `${val}分`, + renderText: (val: string) => `${val || '-'}`, }, { title: '通过线', @@ -186,7 +186,7 @@ const ExaminationRules: React.FC = () => { valueType: 'text', hideInSearch: true, hideInForm: false, - renderText: (val: string) => `${val}`, + renderText: (val: string) => `${val || '-'}`, }, { title: '操作', diff --git a/admin/src/pages/examinationrules/attestation/step/index.tsx b/admin/src/pages/examinationrules/attestation/step/index.tsx index 65a4cb9..aedd7db 100644 --- a/admin/src/pages/examinationrules/attestation/step/index.tsx +++ b/admin/src/pages/examinationrules/attestation/step/index.tsx @@ -8,7 +8,7 @@ import { Button, Checkbox, Col, Divider, Input, List, Menu, message, Radio, Row, import { PageContainer } from '@ant-design/pro-layout'; import ProDescriptions from '@ant-design/pro-descriptions'; import styles from './index.less' -import { saveRules, querySubjectList, queryRulesView, queryRulesList, queryRulesPaper, saveQuestionTypeScore, autoPaperOfficial, queryPaperQuestionList } from '../../service'; +import { saveRules, querySubjectList, queryRulesView, queryRulesList, queryRulesPaper, saveQuestionTypeScore, autoPaperOfficial, queryPaperQuestionList, updateScore } from '../../service'; import { queryQuestionList, queryQuestionType } from '@/pages/questionbank/service'; import ProTable, { ActionType, EditableProTable, ProColumns } from '@ant-design/pro-table'; //import { TableListPagination } from '@/pages/ListTableList2/data'; @@ -120,7 +120,7 @@ export default () => { valueType: 'text', hideInSearch: true, hideInForm: false, - renderText: (val: string) => `${val || 0} 分`, + renderText: (val: string) => `${val || '-'}`, }, { title: '通过线', @@ -478,32 +478,31 @@ export default () => { width="60%" visible={scoreModalVisible} onVisibleChange={handleScoreModalVisible} - footer={null} onFinish={async () => { - const values = setterRef.current?.getData() + const values = setterRef.current?.getData() // 获取题型分值数据 + const passSocre = setterRef.current?.getValue() // 获取通过分数线 console.log('批量设置分值v::::', values); const {code, data: paper, msg} = await saveQuestionTypeScore({rules_id:Number(params?.id), type_score: JSON.stringify(values)}) console.log('paper', paper) // 总分及通过分 let _sumScore = 0; - values?.forEach((item)=>{ + values?.forEach((item: { score: number; })=>{ console.log('item--',item) _sumScore += item?.score }) console.log('_sumScore', _sumScore) - /* // 需要处理 console.log('passSocre',passSocre) - console.log('sumScore',sumScore) - const {success} = await updateScore({rules_id:Number(params?.id), pass_socre: passSocre, sum_score: _sumScore})*/ - setSumScore(_sumScore) + //console.log('sumScore',sumScore) + const {success} = await updateScore({rules_id:Number(params?.id), pass_socre: passSocre, sum_score: _sumScore}) + //setSumScore(_sumScore) // setUuidPaper(paper?.paper_uuid) // message.success('提交成功'); handleScoreModalVisible(false) return true; }} > - + { parsingMap.clear(); } }, [data]); - + //saveQuestion return ( @@ -315,7 +315,7 @@ const QuestionPaper = (props: any, ref: any) => { console.log('item', item); return ( - {`${(record?.question_type === 2) ? ['T','F'][key] : labels[key]}. ${item?.answer}`} + {`${(record?.question_type === 2) ? ['A','B'][key] : labels[key]}. ${item?.answer}`} ) }} /> @@ -335,7 +335,7 @@ const QuestionPaper = (props: any, ref: any) => { answer = labels?.filter((x, idx, self)=>answertrue[idx] === `${idx}`).toString() break; case 2: // 判断 - answer = ['T', 'F']?.filter((x, idx, self)=>answertrue[idx] === `${idx}`).toString() + answer = ['A', 'B']?.filter((x, idx, self)=>answertrue[idx] === `${idx}`).toString() break; } console.log('expandedDescRowKeys', expandedDescRowKeys) diff --git a/admin/src/pages/examinationrules/components/ScoreSetter.tsx b/admin/src/pages/examinationrules/components/ScoreSetter.tsx index e9e5311..006b2c6 100644 --- a/admin/src/pages/examinationrules/components/ScoreSetter.tsx +++ b/admin/src/pages/examinationrules/components/ScoreSetter.tsx @@ -35,8 +35,11 @@ export type TableListItem = { // React.forwardRef 接受渲染函数作为参数。React 将使用 props 和 ref 作为参数来调用此函数。此函数应返回 React 节点。 const ScoreSetter = (props: any, ref: any) => { - const {questionTypeValues} = props + const {questionTypeValues } = props + console.log('questionTypeValues:::', questionTypeValues) + //console.log('passScoreValue:::', passScoreValue) + const match = useRouteMatch(); console.log('match', match); @@ -48,6 +51,7 @@ const ScoreSetter = (props: any, ref: any) => { //const [selectedRowsState, setSelectedRows] = useState([]); //const [addType, setAddType] = useState({name: '', value: 0}); const [sumScore, setSumScore] = useState(0); + const [passScore, setPassScore] = useState(0); // 设置通过分数线 //let sumScore = 0 // 总分 @@ -187,6 +191,9 @@ const ScoreSetter = (props: any, ref: any) => { getData: () => { return typeScore; }, + getValue: () => { + return passScore; + }, })); return ( @@ -196,7 +203,9 @@ const ScoreSetter = (props: any, ref: any) => { { return 共计 {sumQuestion} 题, 总计 {sumScore} 分 通过分数线 - + { + setPassScore(value) + }} />}} //formMapRef={formMapRef} //rowKey={'code'} diff --git a/admin/src/pages/examinationrules/normal/components/AutoSelector.tsx b/admin/src/pages/examinationrules/normal/components/AutoSelector.tsx index f82dca2..d7d7a46 100644 --- a/admin/src/pages/examinationrules/normal/components/AutoSelector.tsx +++ b/admin/src/pages/examinationrules/normal/components/AutoSelector.tsx @@ -47,15 +47,7 @@ type DataSourceType = { children?: DataSourceType[]; }; -const defaultData: DataSourceType[] = new Array(10).fill(1).map((_, index) => { - return { - id: (Date.now() + index).toString(), - title: `章节${index}`, - decs: '这个活动真好玩', - state: 'open', - created_at: '2020-05-26T09:42:56Z', - }; -}); +// 需要处理 // React.forwardRef 接受渲染函数作为参数。React 将使用 props 和 ref 作为参数来调用此函数。此函数应返回 React 节点。 const AutoSelector = (props: any, ref: any) => { /** 获取章节数据 */ @@ -86,7 +78,7 @@ const AutoSelector = (props: any, ref: any) => { //key: 'code', dataIndex: `type${item?.code}`, render: ( item, { defaultRender, ...rest }, form) => { - return { // const _data = []; @@ -105,8 +97,8 @@ const AutoSelector = (props: any, ref: any) => { // 暴露组件的方法 接受外部获取的ref useImperativeHandle(ref, () => ({ // 构造ref的获取数据方法 - createPaper: () => { // 组卷 - //return selectedRowsState; + getData: () => { // 组卷数据 + return []; }, })); @@ -148,10 +140,10 @@ const AutoSelector = (props: any, ref: any) => { // setDataSource }} toolBarRender={false} - /* +/* editable={{ type: 'multiple', - editableKeys, + //editableKeys, actionRender: (row, config, defaultDoms) => { return [defaultDoms.delete]; }, @@ -159,9 +151,9 @@ const AutoSelector = (props: any, ref: any) => { console.log('rrrr',record, recordList) // setDataSource(recordList); }, - onChange: setEditableRowKeys, + //onChange: setEditableRowKeys, }} - */ +*/ /> ); diff --git a/admin/src/pages/examinationrules/normal/components/QuestionPaper.tsx b/admin/src/pages/examinationrules/normal/components/QuestionPaper.tsx index 18e6103..cd50805 100644 --- a/admin/src/pages/examinationrules/normal/components/QuestionPaper.tsx +++ b/admin/src/pages/examinationrules/normal/components/QuestionPaper.tsx @@ -315,7 +315,7 @@ const QuestionPaper = (props: any, ref: any) => { console.log('item', item); return ( - {`${(record?.question_type === 2) ? ['T','F'][key] : labels[key]}. ${item?.answer}`} + {`${(record?.question_type === 2) ? ['A','B'][key] : labels[key]}. ${item?.answer}`} ) }} /> @@ -335,7 +335,7 @@ const QuestionPaper = (props: any, ref: any) => { answer = labels?.filter((x, idx, self)=>answertrue[idx] === `${idx}`).toString() break; case 2: // 判断 - answer = ['T', 'F']?.filter((x, idx, self)=>answertrue[idx] === `${idx}`).toString() + answer = ['A', 'B']?.filter((x, idx, self)=>answertrue[idx] === `${idx}`).toString() break; } console.log('expandedDescRowKeys', expandedDescRowKeys) diff --git a/admin/src/pages/examinationrules/normal/index.tsx b/admin/src/pages/examinationrules/normal/index.tsx index 28fce60..aeaaec8 100644 --- a/admin/src/pages/examinationrules/normal/index.tsx +++ b/admin/src/pages/examinationrules/normal/index.tsx @@ -152,7 +152,7 @@ const ExaminationRules: React.FC = () => { valueType: 'text', hideInForm: false, hideInSearch: true, - renderText: (val: string) => `${val}分`, + renderText: (val: string) => `${val || '-'}`, }, { title: '通过线', @@ -161,7 +161,7 @@ const ExaminationRules: React.FC = () => { valueType: 'text', hideInForm: false, hideInSearch: true, - renderText: (val: string) => `${val}`, + renderText: (val: string) => `${val || '-'}`, }, { title: '操作', diff --git a/admin/src/pages/examinationrules/normal/step/index.tsx b/admin/src/pages/examinationrules/normal/step/index.tsx index 33c3379..d73f6f0 100644 --- a/admin/src/pages/examinationrules/normal/step/index.tsx +++ b/admin/src/pages/examinationrules/normal/step/index.tsx @@ -30,6 +30,7 @@ import ScoreSetter from '../../components/ScoreSetter'; import AutoSelector from '../components/AutoSelector'; import { ConsoleMessage } from 'puppeteer-core'; import { getSubjectInfo } from '@/pages/course/subject/service'; +import { forEach } from 'lodash'; /** * 保存选题 @@ -102,7 +103,7 @@ export default () => { const [createType, setCreateType] = useState(1); // 组卷类型 const [rulesName, setRulesName] = useState(''); // 组卷类型 const [sumScore, setSumScore] = useState(0); // 总分 - const [passSocre, setPassSocre] = useState(0); // 通过分数线 + const [passScore, setPassScore] = useState(0); // 通过分数线 const [typeQuestionCount, setTypeQuestionCount] = useState([0, 0, 0]); // 临时卷 各题型数量 @@ -118,6 +119,7 @@ export default () => { const [questionType, setQuestionType] = useState([]); // 题型 const [scoreValues, SetscoreValues] = useState([]); // 分值 [{"question_type": "0","score": "3","score_harf": "0"},] + const [paperInfo, setPaperInfo] = useState({}) /** 获取题型 */ const { data: questionTypeData } = useRequest(() => { @@ -169,14 +171,22 @@ export default () => { page_number: value.current, page_size: value.pageSize */ - return queryRulesPaper(params); },{ manual: true, formatResult: (result) => { - return result?.table_List; + return result?.question_list; }}); + useEffect(() => { + console.log('paperData2', paperData) + if(paperData?.length > 0){ + console.log('paperData[0]', paperData[0]) + setPaperInfo(paperData[0]) + } + console.log('PaperInfo', paperInfo) + }, [paperData]); + console.log(params, 'params'); let ruleData = {} @@ -285,7 +295,7 @@ export default () => { width="md" initialValue={ruleData?.examination_time} rules={[{ required: true, message: '请输入考试时长' }]} - tooltip="限制考试时长的情况下,用户考试中离开,倒计时不会停止。" /> + tooltip="单位(分钟)" /> )} @@ -412,9 +422,12 @@ export default () => { * 设置分值前需要题型数据 * [{count: 0, score: 0, score_harf: 0},{count: 0, score: 0, score_harf: 0},{count: 0, score: 0, score_harf: 0}] */ - //setQuestionTypeValues() - - + // + const _data = [] + typeQuestionCount?.forEach((item)=>{ + _data.push({count: item, score: 0, score_harf: 0}) + }) + setQuestionTypeValues(_data) console.log('typeQuestionCount', typeQuestionCount); handleScoreModalVisible(true) }}>批量设置分值 @@ -468,14 +481,11 @@ export default () => { { {/** 需要从试卷 或 临时试卷 中读取 */} return - 共 0 道题, 100 分 + 共 0 道题, {paperInfo?.sum_score} 分 单选: 0 道题 单选: 0 道题 单选: 0 道题 - 通过线 {0} 分 - - + 通过线 {paperInfo?.pass_score} 分 + }} /> - - } @@ -515,11 +525,13 @@ export default () => { width="60%" visible={autoModalVisible} onVisibleChange={ handleAutoModalVisible } - footer={null} - onFinish={async () => { - const values = autoRef?.current?.getData() - const {code, data: paper, msg} = await autoPaper({rules_id: Number(params?.id), auto_param: JSON.stringify(values)}) - console.log('paper', paper) + onFinish={async () => { + // 需要处理 + //console.log('111') + //const values = autoRef?.current?.getData() + //console.log('2222') + //const {code, data: paper, msg} = await autoPaper({rules_id: Number(params?.id), auto_param: JSON.stringify(values)}) + //console.log('paper', paper) //setUuidPaper(paper?.paper_uuid) // message.success('提交成功'); handleAutoModalVisible(false) @@ -534,10 +546,11 @@ export default () => { width="60%" visible={scoreModalVisible} onVisibleChange={handleScoreModalVisible} - footer={null} onFinish={async () => { console.log('typeQuestionCount', typeQuestionCount) - const values = setterRef.current?.getData() + const values = setterRef.current?.getData() // 获取题型分值数据 + const passSocre = setterRef.current?.getValue() // 获取通过分数线 + console.log('批量设置分值v::::2', values); // 题型分数 const {code, data: paper, msg} = await saveQuestionTypeScore({rules_id:Number(params?.id), type_score: JSON.stringify(values)}) @@ -547,10 +560,10 @@ export default () => { console.log('item--',item) _sumScore += item?.score }) - console.log('_sumScore', _sumScore) + //console.log('_sumScore', _sumScore) - console.log('passSocre',passSocre) - console.log('sumScore',sumScore) + //console.log('passScore',passScore) + console.log('sumScore',sumScore) const {success} = await updateScore({rules_id:Number(params?.id), pass_socre: passSocre, sum_score: _sumScore}) setSumScore(_sumScore) console.log('paper', paper) diff --git a/admin/src/pages/questionbank/index.tsx b/admin/src/pages/questionbank/index.tsx index fffe18a..5950ce0 100644 --- a/admin/src/pages/questionbank/index.tsx +++ b/admin/src/pages/questionbank/index.tsx @@ -430,7 +430,7 @@ const QuestionBank = () => { console.log('item', item); return ( - {`${(record?.question_type === 2) ? ['T','F'][key] : labels[key]}. ${item?.answer}`} + {`${(record?.question_type === 2) ? ['A','B'][key] : labels[key]}. ${item?.answer}`} ) }} /> @@ -450,7 +450,7 @@ const QuestionBank = () => { answer = labels?.filter((x, idx, self)=>`${answertrue[idx]}` === `1`).toString() break; case 2: // 判断 - answer = ['T', 'F']?.filter((x, idx, self)=>`${answertrue[idx]}` === `1`).toString() + answer = ['A', 'B']?.filter((x, idx, self)=>`${answertrue[idx]}` === `1`).toString() break; } console.log('expandedDescRowKeys', expandedDescRowKeys)