zhengpengju 3 years ago
parent 99ad492376
commit fbeff28e52

@ -40,9 +40,10 @@ export type TableListItem = {
// 资质考试自动组卷
// React.forwardRef 接受渲染函数作为参数。React 将使用 props 和 ref 作为参数来调用此函数。此函数应返回 React 节点。
const AutoSelector = (props: any, ref: any) => {
const { questionType, ruleData } = props;
const { questionType, rulesId, subjectId } = props;
console.log('props---', props)
// const actionRef = useRef<ActionType>();
const [paperCount, setPaperCount] = useState(1) // 题库抽取数量
const [questionCount, setQuestionCount] = useState([50,50]) // 题库抽取数量
const [questionTypeCount, setQuestionTypeCount] = useState(questionType.map(()=>(0))) // 题型抽取数量
@ -60,7 +61,7 @@ const AutoSelector = (props: any, ref: any) => {
/** 获取常规题库试题数量 */
const { data: normalSum } = useRequest(()=>{
return queryQuestionWithoutList({rules_id:ruleData?.id, subject_id: ruleData?.subject_id, page_number: 1, page_size: 1, type: 0})
return queryQuestionWithoutList({rules_id: rulesId, subject_id: subjectId, page_number: 1, page_size: 1, type: 0})
},{
formatResult: (result) => {
return result.totalRow;
@ -69,7 +70,7 @@ const AutoSelector = (props: any, ref: any) => {
/** 获取资质考试题库试题数量 */
const { data: attestationSum } = useRequest(()=>{
return queryQuestionWithoutList({rules_id:ruleData?.id, subject_id: ruleData?.subject_id, page_number: 1, page_size: 1, type: 1})
return queryQuestionWithoutList({rules_id: rulesId, subject_id: subjectId, page_number: 1, page_size: 1, type: 1})
},{
formatResult: (result) => {
return result.totalRow;
@ -85,13 +86,15 @@ const AutoSelector = (props: any, ref: any) => {
useImperativeHandle(ref, () => ({
// 构造ref的获取数据方法
getData: () => { // 组卷
return {questionCount, questionTypeCount};
return {paperCount, questionCount, questionTypeCount};
},
}));
return (
<>
<Row><Col style={{padding: '10px 0 10px 10px', lineHeight:'32px'}}></Col><Col style={{padding:10}}><Input name='paper_count' /></Col><Col style={{color:'#cccccc'}}><span style={{display: 'block', margin: '15px 0 0 10px'}}></span></Col></Row>
<Row><Col style={{padding: '10px 0 10px 10px', lineHeight:'32px'}}></Col><Col style={{padding:10}}><Input name='paper_count' defaultValue={1} onChange={(value)=>{
setPaperCount(value)
}} /></Col><Col style={{color:'#cccccc'}}><span style={{display: 'block', margin: '15px 0 0 10px'}}></span></Col></Row>
<Row><Col style={{padding:10}}></Col></Row>
<Row style={{padding:5}}>
<Col offset={1} span={5}><span style={{lineHeight:'32px'}}>{`常规题库 ( ${normalQuestionSum} 道题)`}</span></Col>

@ -44,6 +44,7 @@ export default () => {
const [questionType, setQuestionType] = useState([]); // 题型
const [rulesId, setRulesId] = useState(0); // 规则id, 保存新建的rules_id
const [subjectId, setSubjectId] = useState<number>(0); // 关联主题id
/** 自动组卷窗口 */
const [autoModalVisible, handleAutoModalVisible] = useState<boolean>(false);
@ -244,17 +245,17 @@ export default () => {
},
];
console.log(params, 'params');
let ruleData = {}
if (params?.id) {
console.log(JSON.stringify(params), "878");
//console.log(JSON.stringify(params), "878");
const { data } = useRequest(async () => {
const { bean } = await queryRulesView(params);
return { data: bean }
});
ruleData = data
}
console.log(ruleData, 'ruleData');
console.log('ruleData',ruleData);
/** 获取题型 */
const { data: questionTypeData } = useRequest(() => {
@ -314,6 +315,7 @@ export default () => {
end_time: fileds.dateRange[1]
});
setRulesId(data?.rules_id)
setSubjectId(fileds?.subject_id) // 设置当前关联主题
setCurrentStep(1)
return true;
@ -608,7 +610,7 @@ export default () => {
onFinish={async () => {
const values = autoRef.current?.getData();
console.log('系统组卷::::', values);
const { code, data: paper, msg } = await autoPaperOfficial({ rules_id: Number(params?.id || rulesId), question_count: values?.questionCount.toString(), question_type_count: values?.questionTypeCount.toString() })
const { code, data: paper, msg } = await autoPaperOfficial({ rules_id: Number(params?.id || rulesId), subject_id: subjectId, paper_count: values?.paperCount, question_count: values?.questionCount.toString(), question_type_count: values?.questionTypeCount.toString() })
console.log('paper', paper)
// setUuidPaper(paper?.paper_uuid)
// message.success('提交成功');
@ -617,7 +619,7 @@ export default () => {
return true;
}}
>
<AutoSelector ref={autoRef} questionType={questionType} ruleData = {ruleData} />
<AutoSelector ref={autoRef} questionType={questionType} rulesId={rulesId} subjectId={subjectId} />
</ModalForm>
<ModalForm
title={`批量设置分值`}

@ -198,7 +198,7 @@ const QuestionSelector = (props: any, ref: any) => {
}
const questions = await queryQuestionWithoutList(props?.data?.paper_uuid ? {..._data, paper_uuid: props?.data?.paper_uuid} : _data);
console.log('**', props?.data?.paper_uuid,{paper_uuid: props?.data?.paper_uuid})
//console.log('**', props?.data?.paper_uuid,{paper_uuid: props?.data?.paper_uuid})
//
const data = []
for(let i=0; i<questions?.table_List.length; i++){

@ -53,7 +53,7 @@ const AutoSelector = (props: any, ref: any) => {
const formRef = useRef()
/** 获取章节数据 */
// 获取主题id
console.log('props subject_id', props)
console.log('props ==', props)
const { subjectId, questionType } = props;
console.log('questionType', questionType)
const [rows, setRows] = useState([]) ; // 章节

@ -89,7 +89,7 @@ const handleUpdatePaper = async (rules_id: number, paper_uuid: number, paper_id:
*/
const handleRemoveTempQuestion = async (paper_uuid: number, question_ids: [{question_id: number}]) => {
const hide = message.loading('正在删除');
console.log('uuidPaper', paper_uuid)
//console.log('uuidPaper', paper_uuid)
if (!question_ids || !paper_uuid) return true;
try {
const {code, msg} = await delTempQuestion({
@ -139,6 +139,7 @@ const handleExchangeSortNum = async (paper_uuid: number, question_ids: string, r
};
const labels = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K']
// 模拟考试规则维护
export default () => {
@ -488,11 +489,12 @@ export default () => {
headerBordered
>
<Space direction="vertical" style={{ width: '100%', padding: '24px 48px' }}>
{console.log('questions:::', questionType)}
{questions && questions.map((item, idx) => (
item &&
<div style={{ border: 'none' }}>
<Typography style={{ marginBottom: 16, fontSize: 14, padding: '15px 15px 0 15px' }}>
{idx + 1}. {item?.question_stem}
{idx + 1}. ({questionType?.filter(t=>(Number(t?.code) === item?.question_type))[0]?.name}, {scoreData?.filter(val=>(val.question_type === Number(item?.question_type)))[0]?.score}) {item?.question_stem}
</Typography>
{(item?.question_type === 0) && // 单选题
<div style={{ padding: '0 15px 15px 15px' }}>
@ -581,7 +583,7 @@ export default () => {
<Divider style={{ margin: '6px 0', opacity: 0.5 }} />
<Space direction="vertical">
{questionType.map((item) => {
return <Typography>{item?.name} {typeQuestionCount[Number(item.code)]} {scoreData?.filter(val=>(val.question_type === Number(item?.code)))[0]?.score} </Typography>
return <Typography>{item?.name} {typeQuestionCount[Number(item.code)]} {typeQuestionCount[Number(item.code)] * scoreData?.filter(val=>(val.question_type === Number(item?.code)))[0]?.score} </Typography>
}
)}
</Space>
@ -742,6 +744,7 @@ export default () => {
//console.log('paper', paper)
// setUuidPaper(paper?.paper_uuid)
// message.success('提交成功');
runScore({rules_id: rulesId}) //
handleScoreModalVisible(false)
return true;
}}

Loading…
Cancel
Save