master
zhengpengju 3 years ago
parent 577403e081
commit 39ca84e2f6

@ -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: '操作',

@ -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;
}}
>
<ScoreSetter ref={setterRef} questionTypeValues={questionTypeValues} />
<ScoreSetter ref={setterRef} questionTypeValues={questionTypeValues || false} />
</ModalForm>
<ModalForm
title={`试卷详情`}

@ -163,7 +163,7 @@ const QuestionPaper = (props: any, ref: any) => {
parsingMap.clear();
}
}, [data]);
//saveQuestion
return (
<PageContainer content={false} extraContent={false} className={styles.questionbank}>
@ -315,7 +315,7 @@ const QuestionPaper = (props: any, ref: any) => {
console.log('item', item);
return (
<List.Item>
<Typography.Text mark={false}>{`${(record?.question_type === 2) ? ['T','F'][key] : labels[key]}. ${item?.answer}`}</Typography.Text>
<Typography.Text mark={false}>{`${(record?.question_type === 2) ? ['A','B'][key] : labels[key]}. ${item?.answer}`}</Typography.Text>
</List.Item>)
}}
/>
@ -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)

@ -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<API.RuleListItem[]>([]);
//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) => {
<EditableProTable
title={()=>{
return <Space> {sumQuestion} , {sumScore} 线
<Form.Item style={{margin:0}} name='win' initialValue={0}><InputNumber min={0} /></Form.Item>
<Form.Item style={{margin:0}} name='pass_socre' initialValue={0}><InputNumber min={0} onChange={(value)=>{
setPassScore(value)
}} /></Form.Item>
</Space>}}
//formMapRef={formMapRef}
//rowKey={'code'}

@ -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 <Form.Item style={{margin:0}} ><InputNumber defaultValue={1}
return <Form.Item style={{margin:0}} ><InputNumber min={0} defaultValue={1}
onChange={(value)=>{
//
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,
}}
*/
*/
/>
</>
);

@ -315,7 +315,7 @@ const QuestionPaper = (props: any, ref: any) => {
console.log('item', item);
return (
<List.Item>
<Typography.Text mark={false}>{`${(record?.question_type === 2) ? ['T','F'][key] : labels[key]}. ${item?.answer}`}</Typography.Text>
<Typography.Text mark={false}>{`${(record?.question_type === 2) ? ['A','B'][key] : labels[key]}. ${item?.answer}`}</Typography.Text>
</List.Item>)
}}
/>
@ -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)

@ -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: '操作',

@ -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<number>(1); // 组卷类型
const [rulesName, setRulesName] = useState<string>(''); // 组卷类型
const [sumScore, setSumScore] = useState<number>(0); // 总分
const [passSocre, setPassSocre] = useState<number>(0); // 通过分数线
const [passScore, setPassScore] = useState<number>(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="单位(分钟)" />
</>
)}
</Col>
@ -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)
}}></Button>
@ -468,14 +481,11 @@ export default () => {
<ProDescriptions.Item dataIndex="grade" label="试卷信息" valueType="text" render={()=>{
{/** 需要从试卷 或 临时试卷 中读取 */}
return <Space direction="vertical">
<span> 0 , 100 </span>
<span> 0 , {paperInfo?.sum_score} </span>
<span>: 0 : 0 : 0 </span>
<span>线 {0} </span>
</Space>
<span>线 {paperInfo?.pass_score} </span>
</Space>
}} />
</ProDescriptions>
}
</Col>
@ -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)

@ -430,7 +430,7 @@ const QuestionBank = () => {
console.log('item', item);
return (
<List.Item>
<Typography.Text mark={false}>{`${(record?.question_type === 2) ? ['T','F'][key] : labels[key]}. ${item?.answer}`}</Typography.Text>
<Typography.Text mark={false}>{`${(record?.question_type === 2) ? ['A','B'][key] : labels[key]}. ${item?.answer}`}</Typography.Text>
</List.Item>)
}}
/>
@ -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)

Loading…
Cancel
Save