/** 资质考试 */ //import { AlignLeftOutlined, PlusOutlined } from '@ant-design/icons'; import { Switch, Button, Card, Col, List, Menu, Progress, Row, Typography, Space, Divider, Radio, Checkbox, Tag, Dropdown, Upload } from 'antd'; import { PageContainer } from '@ant-design/pro-layout'; //import { useRequest } from 'umi'; //import { queryFakeList } from './service'; //import type { CardListItemDataType } from './data'; import styles from './style.less'; //import SubMenu from 'antd/lib/menu/SubMenu'; //import ProCard from '@ant-design/pro-card'; import ProList from '@ant-design/pro-list'; import { ReactText, useEffect, useState } from 'react'; import { PlusOutlined, DeleteOutlined, DownloadOutlined, UploadOutlined, EditOutlined, EyeOutlined, EyeInvisibleOutlined, DownOutlined } from '@ant-design/icons'; import { exportQuestionTemplate, queryQuestionById, queryQuestionList, queryQuestionType } from './service'; import { useRequest } from 'umi'; import { queryCourseView } from '@/pages/course/option/service'; //const { Paragraph } = Typography; const parsingMap = new Map() console.log('first'); const QuestionBank = () => { console.log('second'); const [questionType, setQuestionType] = useState([]); const [parsing, setParsing] = useState(); const [selectedRowsState, setSelectedRows] = useState([]); const [expandedDescRowKeys, setExpandedDescRowKeys] = useState([]); // 展开解析设置 const [addType, setAddType] = useState(0); const labels = ['A','B','C','D','E'] /** 获取题型 */ const { data } = useRequest(() => { return queryQuestionType(); },{ formatResult: (result) => { return result.list; } }); /* const { data: template } = useRequest(() => { return exportQuestionTemplate(); }); */ useEffect(() => { setQuestionType(data || []); return ()=>{ /** 退出当前页面清空Map */ parsingMap.clear(); } }, [data]); return ( itemLayout="vertical" rowClassName='questionbank-list-item' pagination={{ defaultPageSize: 10, showSizeChanger: false, }} toolBarRender={() => { const menuItems = []; console.log('toolBarRender', questionType); if(questionType?.length > 0){ console.log('push'); questionType.forEach((item: {code: number, name: string})=>{ menuItems.push({item?.name}) }) } const menu = ( setAddType(value)}> {menuItems} ); return [ , , , , ]; }} onRow={(record: any) => { /* return { onMouseEnter: () => { console.log(record); }, onClick: () => { console.log(record); }, };*/ }} rowKey="id" headerTitle={false} tooltip={false} request={async (value) => { console.log('value', value) /* const { create_time } = value; if (create_time) { value.begin_time = create_time[0] value.end_time = create_time[1] }*/ const questions = await queryQuestionList({ ...value, type: 0, page_number: value?.current || 1, page_size: value?.pageSize, }); // 课程名称及课程标签 console.log('data',questions); const data = [] for(let i=0; i { setSelectedRows(selectedRows); }, }} // grid={{ gutter: 16, column: 1 }} showActions="always" showExtra="always" metas={{ title: { dataIndex: 'question_stem', render: (text: React.ReactNode, record: T, index: number) => `1. ${text}`, }, avatar: { dataIndex: 'question_type', valueType: 'text', render: (text: React.ReactNode, record: T, index: number) => { const type = questionType?.filter((item, idx, self)=>{ console.log('FFFF', item, idx, self); return item?.code === record.question_type }); console.log('type', type?.name); console.log('type', type?.name); console.log('questionType::::',questionType); return `[${type[0]?.name}]` }, }, description: { dataIndex: 'answers', valueType: 'checkbox', render: (text: React.ReactNode, record: T, index: number) => { console.log('description answers', record) return ( { console.log('item', item); return ( {`${(record?.question_type === 2) ? ['T','F'][key] : labels[key]}. ${item?.answer}`} ) }} /> ); }, }, subTitle: { }, content: { render: (text: React.ReactNode, record: T, index: number) => { let answer = ''; const answertrue = record?.answertrue?.split(','); console.log('answertrue', answertrue) /** 题型 */ switch(record?.question_type){ case 0: // 单选 case 1: // 多选 answer = labels?.filter((x, idx, self)=>answertrue[idx] === `${idx}`).toString() break; case 2: // 判断 answer = ['T', 'F']?.filter((x, idx, self)=>answertrue[idx] === `${idx}`).toString() break; } console.log('expandedDescRowKeys', expandedDescRowKeys) if(expandedDescRowKeys?.indexOf(record.id) > -1){ return ( 正确答案: {answer} 解析:{parsing.get(record.id)} ); }else{ return ( 正确答案: {answer} ) } }, }, actions: { cardActionProps: 'extra', render: (text: React.ReactNode, record: T, _index: number) => { let eye if(expandedDescRowKeys?.indexOf(record.id) > -1){ eye = <> 隐藏解析 }else{ eye = <> 查看解析 } return( 创建时间:{record?.create_time} 标签:{record?.tag_name} 所属课程:{record?.course_name} 编辑 删除 { if(expandedDescRowKeys?.indexOf(record.id) > -1){ const descRowKeys = expandedDescRowKeys?.filter((item, idx, self)=>{ console.log('FFFF', item, idx, self); return item !== record.id }); setExpandedDescRowKeys([...descRowKeys]); }else{ const { bean } = await queryQuestionById({id: record.id}) parsingMap.set(bean.id, bean.parsing) setParsing(parsingMap); console.log('parsing', parsing); setExpandedDescRowKeys([...expandedDescRowKeys, record.id]); } console.log('record id:', record.id); console.log('expandedDescRowKeys......', expandedDescRowKeys) }} > {eye} ) } }, }} /> ); }; export default QuestionBank;