zhengpengju 3 years ago
parent 61ca75728b
commit 5b92f8a8c2

@ -9,7 +9,7 @@ import { Button, message } from 'antd';
//import SubMenu from 'antd/lib/menu/SubMenu'; //import SubMenu from 'antd/lib/menu/SubMenu';
//import ProCard from '@ant-design/pro-card'; //import ProCard from '@ant-design/pro-card';
//import ProList from '@ant-design/pro-list'; //import ProList from '@ant-design/pro-list';
import { forwardRef, ReactText, useEffect, useImperativeHandle, useRef, useState } from 'react'; import { forwardRef, Key, ReactText, useEffect, useImperativeHandle, useRef, useState } from 'react';
//import { PlusOutlined, DeleteOutlined, DownloadOutlined, UploadOutlined, EditOutlined, EyeOutlined, EyeInvisibleOutlined, DownOutlined } from '@ant-design/icons'; //import { PlusOutlined, DeleteOutlined, DownloadOutlined, UploadOutlined, EditOutlined, EyeOutlined, EyeInvisibleOutlined, DownOutlined } from '@ant-design/icons';
import { useParams, useRequest, history, useRouteMatch } from 'umi'; import { useParams, useRequest, history, useRouteMatch } from 'umi';
import { queryCourseListByTag, queryCourseView, queryTagList } from '@/pages/course/option/service'; import { queryCourseListByTag, queryCourseView, queryTagList } from '@/pages/course/option/service';
@ -17,6 +17,8 @@ import { queryQuestionList, queryQuestionType } from '@/pages/questionbank/servi
//import ProForm, { ProFormSelect } from '@ant-design/pro-form'; //import ProForm, { ProFormSelect } from '@ant-design/pro-form';
import type { ActionType, ProColumns } from '@ant-design/pro-table'; import type { ActionType, ProColumns } from '@ant-design/pro-table';
import ProTable from '@ant-design/pro-table'; import ProTable from '@ant-design/pro-table';
import { FooterToolbar } from '@ant-design/pro-layout';
import { constant } from 'lodash';
export type TableListItem = { export type TableListItem = {
id: string; id: string;
@ -120,10 +122,12 @@ const QuestionSelector = (props: any, ref: any) => {
const type = history.location.pathname === '/questionbank/attestation' ? 1 : 0 ; // 题库类型 const type = history.location.pathname === '/questionbank/attestation' ? 1 : 0 ; // 题库类型
const [questionType, setQuestionType] = useState([]); const [questionType, setQuestionType] = useState([]);
const [selectedRowsState, setSelectedRows] = useState<API.RuleListItem[]>([]); const [selectedRowsState, setSelectedRows] = useState([]);
const [addType, setAddType] = useState({name: '', value: 0}); const [selectedRowKeys, setSelectedRowKeys] = useState([]);
//const [addType, setAddType] = useState({name: '', value: 0});
const labels = ['A','B','C','D','E','F','G','H','I'] //const labels = ['A','B','C','D','E','F','G','H','I']
/** 获取题型 */ /** 获取题型 */
const { data } = useRequest(() => { const { data } = useRequest(() => {
@ -143,6 +147,9 @@ const QuestionSelector = (props: any, ref: any) => {
// 暴露组件的方法 接受外部获取的ref // 暴露组件的方法 接受外部获取的ref
useImperativeHandle(ref, () => ({ useImperativeHandle(ref, () => ({
// 构造ref的获取数据方法 // 构造ref的获取数据方法
getSelectedRowKeys: () => {
return selectedRowKeys;
},
getSelectedRows: () => { getSelectedRows: () => {
return selectedRowsState; return selectedRowsState;
}, },
@ -151,6 +158,7 @@ const QuestionSelector = (props: any, ref: any) => {
return ( return (
<> <>
<ProTable <ProTable
pagination={{ pagination={{
defaultPageSize: 10, defaultPageSize: 10,
@ -185,7 +193,7 @@ const QuestionSelector = (props: any, ref: any) => {
page_number: value?.current || 1, page_number: value?.current || 1,
page_size: value?.pageSize, page_size: value?.pageSize,
}); });
// 课程名称及课程标签 //
const data = [] const data = []
for(let i=0; i<questions?.table_List.length; i++){ for(let i=0; i<questions?.table_List.length; i++){
const { data: course } = await queryCourseView({ const { data: course } = await queryCourseView({
@ -202,8 +210,20 @@ const QuestionSelector = (props: any, ref: any) => {
}; };
}} }}
rowSelection={{ rowSelection={{
onChange: (_, selectedRows) => { selectedRowKeys: selectedRowKeys,
setSelectedRows(selectedRows); onChange: (selectedKeys, _) => {
const res = selectedRowsState?.filter(item=>(item.page === actionRef.current?.pageInfo?.current)).length
let rows = [];
rows = selectedRowsState?.map(item=>(item?.page === actionRef.current?.pageInfo?.current ? {page: actionRef.current?.pageInfo?.current, selected: selectedKeys} : item))
if(res === 0){
rows.push({page: actionRef.current?.pageInfo?.current, selected: selectedKeys})
}
const _data: any = []
rows?.forEach((item)=>{
_data.push(...item?.selected)
})
setSelectedRowKeys(_data)
setSelectedRows(rows); // selectedRowsState
}, },
}} }}
columns={columns} columns={columns}

@ -34,8 +34,8 @@ const handleAppend = async (rules_id: number, rows: any[]) => {
const hide = message.loading('正在添加'); const hide = message.loading('正在添加');
try { try {
const questions: { question_id: any; }[] = []; const questions: { question_id: any; }[] = [];
rows?.forEach((item) => { rows?.forEach((key) => {
questions.push({ question_id: item?.id }) questions.push({ question_id: key })
}) })
const _data = await manualPaper({ const _data = await manualPaper({
question_count: questions?.length || 0, question_count: questions?.length || 0,
@ -655,7 +655,7 @@ export default () => {
onVisibleChange={handleSelectorModalVisible} onVisibleChange={handleSelectorModalVisible}
onFinish={async (values) => { onFinish={async (values) => {
console.log('v::::', values.name); console.log('v::::', values.name);
const rows = selectorRef?.current?.getSelectedRows() const rows = selectorRef?.current?.getSelectedRowKeys()
console.log('rows::::', rows); console.log('rows::::', rows);
const { code, data: paper, msg } = await handleAppend(Number(params?.id || rulesId), rows) const { code, data: paper, msg } = await handleAppend(Number(params?.id || rulesId), rows)
console.log('paper', paper) console.log('paper', paper)

Loading…
Cancel
Save