zhengpengju 3 years ago
parent d14173ddd8
commit da9bef00de

@ -70,6 +70,7 @@ const AvatarDropdown: React.FC<GlobalHeaderRightProps> = ({ menu }) => {
const menuHeaderDropdown = ( const menuHeaderDropdown = (
<Menu className={styles.menu} selectedKeys={[]} onClick={onMenuClick}> <Menu className={styles.menu} selectedKeys={[]} onClick={onMenuClick}>
{/*
{menu && ( {menu && (
<Menu.Item key="center"> <Menu.Item key="center">
<UserOutlined /> <UserOutlined />
@ -83,7 +84,7 @@ const AvatarDropdown: React.FC<GlobalHeaderRightProps> = ({ menu }) => {
</Menu.Item> </Menu.Item>
)} )}
{menu && <Menu.Divider />} {menu && <Menu.Divider />}
*/}
<Menu.Item key="logout"> <Menu.Item key="logout">
<LogoutOutlined /> <LogoutOutlined />
退 退

@ -1,5 +1,5 @@
import { DingdingOutlined, UploadOutlined } from '@ant-design/icons'; import { DingdingOutlined, UploadOutlined } from '@ant-design/icons';
import { Button, Card, Steps, Result, Descriptions, Modal, Input, Upload, Popconfirm, Menu } from 'antd'; import { Button, Card, Steps, Result, Descriptions, Modal, Input, Upload, Popconfirm, Menu, Radio } from 'antd';
import { Fragment, useEffect, useRef, useState } from 'react'; import { Fragment, useEffect, useRef, useState } from 'react';
import { GridContent } from '@ant-design/pro-layout'; import { GridContent } from '@ant-design/pro-layout';
import { Line } from '@ant-design/charts'; import { Line } from '@ant-design/charts';
@ -117,6 +117,8 @@ export default () => {
const [modalVisible, handleModalVisible] = useState<boolean>(false); const [modalVisible, handleModalVisible] = useState<boolean>(false);
const saveInputRef = useRef(); const saveInputRef = useRef();
const radioRef = useRef();
//const currentRow = {course_name:'课程0001'}; //const currentRow = {course_name:'课程0001'};
const currentRow = {course_name1:'课程0001'}; const currentRow = {course_name1:'课程0001'};
const columns = [ const columns = [
@ -162,11 +164,6 @@ export default () => {
{menuItems} {menuItems}
</Menu> </Menu>
); );
}, [listData, selectedCourse]); }, [listData, selectedCourse]);
const config = { const config = {
@ -254,6 +251,16 @@ export default () => {
</Popconfirm> </Popconfirm>
<DualAxes {...config} /> <DualAxes {...config} />
<Radio.Group onChange={()=>{
}}>
<Radio value={1}>A</Radio>
<Radio value={2}>B</Radio>
<Radio value={3}>C</Radio>
<Radio value={4} defaultChecked>D</Radio>
</Radio.Group>
<a onClick={()=>{}}>rrrrr</a>
</> </>
) )
}; };

@ -44,6 +44,9 @@ const AutoSelector = (props: any, ref: any) => {
const [questionCount, setQuestionCount] = useState([0,0]) // 题库抽取数量 const [questionCount, setQuestionCount] = useState([0,0]) // 题库抽取数量
const [questionTypeCount, setQuestionTypeCount] = useState(questionType.map(()=>(0))) // 题型抽取数量 const [questionTypeCount, setQuestionTypeCount] = useState(questionType.map(()=>(0))) // 题型抽取数量
const [normalQuestionSum, setNormalQuestionSum] = useState(0) // 常规题库试题数量
const [attestationQuestionSum, setAttestationQuestionSum] = useState(0) // 资质考试题库试题数量
const match = useRouteMatch(); const match = useRouteMatch();
console.log('match', match); console.log('match', match);
@ -52,7 +55,28 @@ const AutoSelector = (props: any, ref: any) => {
//const [selectedRowsState, setSelectedRows] = useState<API.RuleListItem[]>([]); //const [selectedRowsState, setSelectedRows] = useState<API.RuleListItem[]>([]);
//const [addType, setAddType] = useState({name: '', value: 0}); //const [addType, setAddType] = useState({name: '', value: 0});
/** 获取常规题库试题数量 */
const { data: normalSum } = useRequest(()=>{
return queryQuestionList({page_number: 1, page_size: 1, type: 0})
},{
formatResult: (result) => {
return result.totalRow;
}
});
/** 获取资质考试题库试题数量 */
const { data: attestationSum } = useRequest(()=>{
return queryQuestionList({page_number: 1, page_size: 1, type: 1})
},{
formatResult: (result) => {
return result.totalRow;
}
});
useEffect(() => {
setNormalQuestionSum(normalSum);
setAttestationQuestionSum(attestationSum);
}, [ normalSum, attestationSum]);
// 暴露组件的方法 接受外部获取的ref // 暴露组件的方法 接受外部获取的ref
useImperativeHandle(ref, () => ({ useImperativeHandle(ref, () => ({
@ -61,18 +85,19 @@ const AutoSelector = (props: any, ref: any) => {
return {questionCount, questionTypeCount}; return {questionCount, questionTypeCount};
}, },
})); }));
return ( return (
<> <>
<Row><Col style={{padding:10}}></Col></Row> <Row><Col style={{padding:10}}></Col></Row>
<Row style={{padding:5}}> <Row style={{padding:5}}>
<Col offset={1} span={5}>{`常规题库 ( ${0} 道题)`}</Col> <Col offset={1} span={5}>{`常规题库 ( ${normalQuestionSum} 道题)`}</Col>
<Col offset={1} span={10}>: <InputNumber defaultValue={0} style={{textAlign:'center'}} onChange={(value)=>{ <Col offset={1} span={10}>: <InputNumber defaultValue={50} style={{textAlign:'center'}} onChange={(value)=>{
setQuestionCount([value,questionCount[1]]) setQuestionCount([value, questionCount[1]])
}} /> %</Col> }} /> %</Col>
</Row> </Row>
<Row style={{padding:5}}> <Row style={{padding:5}}>
<Col offset={1} span={5}>{`资质考试题库 ( ${0} 道题)`}</Col> <Col offset={1} span={5}>{`资质考试题库 ( ${attestationQuestionSum} 道题)`}</Col>
<Col offset={1} span={10}>: <InputNumber defaultValue={0} style={{textAlign:'center'}} onChange={(value)=>{ <Col offset={1} span={10}>: <InputNumber defaultValue={50} style={{textAlign:'center'}} onChange={(value)=>{
setQuestionCount([questionCount[0], value]) setQuestionCount([questionCount[0], value])
}} /> %</Col> }} /> %</Col>
</Row> </Row>

@ -2,163 +2,159 @@ import React, { useEffect, useRef, useState } from 'react';
import { history, useParams, useRequest } from 'umi'; import { history, useParams, useRequest } from 'umi';
import { ModalForm, ProFormInstance } from '@ant-design/pro-form'; import { ModalForm, ProFormInstance } from '@ant-design/pro-form';
import { ProFormRadio } from '@ant-design/pro-form'; import { ProFormRadio } from '@ant-design/pro-form';
import ProForm, { import ProForm, {StepsForm, ProFormText, ProFormSelect, ProFormDateRangePicker } from '@ant-design/pro-form';
StepsForm,
ProFormText,
ProFormDatePicker,
ProFormSelect,
ProFormTextArea,
ProFormCheckbox,
ProFormDateRangePicker,
} from '@ant-design/pro-form';
import ProCard from '@ant-design/pro-card'; import ProCard from '@ant-design/pro-card';
import { Button, Checkbox, Col, Divider, Input, List, Menu, message, Radio, Row, Space, Typography } from 'antd'; import { Button, Checkbox, Col, Divider, Input, List, Menu, message, Radio, Row, Space } from 'antd';
import { PageContainer } from '@ant-design/pro-layout'; import { PageContainer } from '@ant-design/pro-layout';
import ProDescriptions from '@ant-design/pro-descriptions'; import ProDescriptions from '@ant-design/pro-descriptions';
import styles from './index.less' import styles from './index.less'
import { saveRules, querySubjectList, queryRulesView, queryRulesList, queryRulesPaper, saveQuestionTypeScore, autoPaperOfficial } from '../../service'; import { saveRules, querySubjectList, queryRulesView, queryRulesList, queryRulesPaper, saveQuestionTypeScore, autoPaperOfficial } from '../../service';
import { queryQuestionType } from '@/pages/questionbank/service'; import { queryQuestionType } from '@/pages/questionbank/service';
import ProTable, { ActionType, EditableProTable, ProColumns } from '@ant-design/pro-table'; import ProTable, { ActionType, EditableProTable, ProColumns } from '@ant-design/pro-table';
import { TableListPagination } from '@/pages/ListTableList2/data'; //import { TableListPagination } from '@/pages/ListTableList2/data';
import { DiffOutlined, PlusOutlined } from '@ant-design/icons'; import { DiffOutlined, PlusOutlined } from '@ant-design/icons';
import { TableListItem } from '../../components/QuestionSelector'; //import { TableListItem } from '../../components/QuestionSelector';
import ScoreSetter from '../../components/ScoreSetter'; import ScoreSetter from '../../components/ScoreSetter';
import AutoSelector from '../components/AutoSelector'; import AutoSelector from '../components/AutoSelector';
import QuestionSelector from '../../components/QuestionSelector';
/** 题型序号 */ /** 题型序号 */
const numberType = ['一','二','三','四','五','六','七','八','九','十']; const numberType = ['一','二','三','四','五','六','七','八','九','十'];
const questions = []
export default () => {
const params = useParams();
const waitTime = (time: number = 100) => { const formRef = useRef<ProFormInstance>();
return new Promise((resolve) => { const actionRef = useRef<ActionType>();
setTimeout(() => { const setterRef = useRef();
resolve(true); const autoRef = useRef();
}, time);
}); const [questionTypeValues, setQuestionTypeValues] = useState([]); // 题型数据[{count:0, score:0, score_harf:0}]
};
const numbers = []; /** 自动组卷窗口 */
for (let i = 0; i < 50; i++) { const [autoModalVisible, handleAutoModalVisible] = useState<boolean>(false);
numbers.push({ id: `${i}` }) /** 分值窗口 */
} const [scoreModalVisible, handleScoreModalVisible] = useState<boolean>(false);
/** 试卷详情窗口 */
const [paperModalVisible, handlePaperModalVisible] = useState<boolean>(false);
export default () => {
/** 列表项定义 */ /** 列表项定义 */
const columns: ProColumns<TableListItem>[] = [ const columns: ProColumns[] = [
{ {
title: '序号', title: '序号',
key: 'index', key: 'index',
valueType: 'indexBorder', valueType: 'indexBorder',
width: 48, width: 48,
}, },
{ {
title: '考试名称', title: '考试名称',
dataIndex: 'rules_name', dataIndex: 'rules_name',
valueType: 'text', valueType: 'text',
hideInTable: false, hideInTable: false,
hideInForm: false, hideInForm: false,
hideInSearch: true, hideInSearch: true,
}, },
{ {
title: '试卷', title: '试卷',
dataIndex: 'examination_time', dataIndex: 'examination_time',
valueType: 'text', valueType: 'text',
sorter: false, sorter: false,
hideInTable: true, hideInTable: true,
hideInForm: true, hideInForm: true,
hideInSearch: true, hideInSearch: true,
renderText: (val: string) => `${val}`, renderText: (val: string) => `${val}`,
}, },
{ {
title: '关联主题', title: '关联主题',
dataIndex: 'subject_name', dataIndex: 'subject_name',
valueType: 'text', valueType: 'text',
hideInTable: true, hideInTable: true,
hideInForm: true, hideInForm: true,
hideInSearch: true, hideInSearch: true,
}, },
{ {
title: '题型设置', title: '题型设置',
dataIndex: 'question_type_count', dataIndex: 'question_type_count',
valueType: 'text', valueType: 'text',
hideInTable: true, hideInTable: true,
hideInForm: false, hideInForm: false,
hideInSearch: false, hideInSearch: false,
request: async () => { request: async () => {
/* /*
const { data: Items } = await querySubjectList({}); const { data: Items } = await querySubjectList({});
// console.log(Items, ')))'); // console.log(Items, ')))');
const sinfo = [] const sinfo = []
for (let i = 0; i < Items.list.length; i++) { for (let i = 0; i < Items.list.length; i++) {
// console.log(Items.list[i], ">>>") // console.log(Items.list[i], ">>>")
sinfo.push({ label: Items.list[i].subject_name, value: Items.list[i].subject_id }) sinfo.push({ label: Items.list[i].subject_name, value: Items.list[i].subject_id })
} }
console.log(sinfo, 'sinfo'); console.log(sinfo, 'sinfo');
*/ */
return []; return [];
}, },
}, },
{ {
title: '总分', title: '总分',
dataIndex: 'sum_score', dataIndex: 'sum_score',
sorter: false, sorter: false,
valueType: 'text', valueType: 'text',
hideInSearch: true, hideInSearch: true,
hideInForm: false, hideInForm: false,
renderText: (val: string) => `${val || 0}`, renderText: (val: string) => `${val || 0}`,
}, },
{ {
title: '通过线', title: '通过线',
dataIndex: 'pass_score', dataIndex: 'pass_score',
sorter: false, sorter: false,
valueType: 'text', valueType: 'text',
hideInSearch: true, hideInSearch: true,
hideInForm: false, hideInForm: false,
renderText: (val: string) => `${val || '-'}`, renderText: (val: string) => `${val || '-'}`,
}, },
{ {
title: '操作', title: '操作',
dataIndex: 'option', dataIndex: 'option',
valueType: 'option', valueType: 'option',
width: 200, width: 200,
render: (_dom: any, record: React.SetStateAction<TableListItem | undefined>) => { render: (_dom: any, record: React.SetStateAction) => {
console.log(record, 'record') console.log(record, 'record')
return [ return [
<a <a
key="detail" key="detail"
onClick={() => { onClick={() => {
//console.log('entity', entity); //console.log('entity', entity);
//setCurrentRow(record); //setCurrentRow(record);
//handleDetailModalVisible(true); handlePaperModalVisible(true); // 试卷详情
}} }}
> >
</a>, </a>,
<a <a
key="create" key="create"
onClick={() => { onClick={async () => {
//history.push(`/examination/option/registration/${record.examination_id}`); //history.push(`/examination/option/registration/${record.examination_id}`);
//setCurrentRow(record); //setCurrentRow(record);
}} const _type_count: any[] = [];
> record?.question_type_count.forEach((item: { count: any; })=>{
_type_count.push(item?.count || 0)
</a>, })
] const { success } = await autoPaperOfficial(
}, {
paper_id: record?.paper_id,
rules_id: Number(params?.id),
question_count: '50,50', // 当前数据库没保存,只能采用默认
question_type_count: _type_count?.toString()
}
)
}}
>
</a>,
]
},
}, },
]; ];
const params = useParams();
const formRef = useRef<ProFormInstance>();
const actionRef = useRef<ActionType>();
const setterRef = useRef();
const autoRef = useRef();
/** 自动组卷窗口 */
const [autoModalVisible, handleAutoModalVisible] = useState<boolean>(false);
/** 分值窗口 */
const [scoreModalVisible, handleScoreModalVisible] = useState<boolean>(false);
console.log(params, 'params'); console.log(params, 'params');
let ruleData = {} let ruleData = {}
if (params?.id) { if (params?.id) {
@ -198,7 +194,6 @@ export default () => {
}> }>
formRef={formRef} formRef={formRef}
onFinish={async () => { onFinish={async () => {
await waitTime(1000);
message.success('提交成功'); message.success('提交成功');
}} }}
formProps={{ formProps={{
@ -231,8 +226,6 @@ export default () => {
start_time: fileds.dateRange[0], start_time: fileds.dateRange[0],
end_time: fileds.dateRange[1] end_time: fileds.dateRange[1]
}); });
// await waitTime(2000);
return true; return true;
}} }}
@ -305,7 +298,8 @@ export default () => {
}} }}
> >
<div style={{ margin: '0' }}> <div style={{ margin: '0' }}>
<ProTable<TableListItem, TableListPagination> {`试卷`}
<ProTable
page page
headerTitle={false} headerTitle={false}
actionRef={actionRef} actionRef={actionRef}
@ -336,6 +330,7 @@ export default () => {
)} )}
request={async (value) => { request={async (value) => {
console.log('queryRulesPaper::') console.log('queryRulesPaper::')
/** 获取试卷 */
const _data = await queryRulesPaper( const _data = await queryRulesPaper(
{ {
rules_id: params?.id, rules_id: params?.id,
@ -343,6 +338,28 @@ export default () => {
page_size: value.pageSize page_size: value.pageSize
} }
); );
const _questionTypeCountData = [];
_data.question_list[0]?.question_type_count.forEach((item)=>{
_questionTypeCountData.push(item.count)
})
console.log('_questionTypeCountData', _questionTypeCountData)
const _questionType = [];
console.log('_data.question_type_score', _data.question_type_score)
if(_data?.question_type_score.length > 0){
_data.question_type_score?.forEach((item, index)=>{
_questionType.push({count: _questionTypeCountData[index], score: item.score, score_harf: item.score_harf})
})
}else{
_questionTypeCountData?.forEach((item, index)=>{
_questionType.push({count: _questionTypeCountData[index], score:0, score_harf: 0})
})
}
console.log('_questionType', _questionType)
setQuestionTypeValues(_questionType)
return { return {
current: _data?.pageNumber, current: _data?.pageNumber,
data: _data?.question_list, data: _data?.question_list,
@ -437,7 +454,32 @@ export default () => {
return true; return true;
}} }}
> >
<ScoreSetter ref={setterRef} /> <ScoreSetter ref={setterRef} questionTypeValues={questionTypeValues} />
</ModalForm>
<ModalForm
title={`试卷详情`}
//
width="80%"
visible={paperModalVisible}
onVisibleChange={handlePaperModalVisible}
footer={null}
onFinish={async () => {
const values = setterRef.current?.getData()
console.log('试卷详情::::', values);
//const {code, data: paper, msg} = await saveQuestionTypeScore({rules_id:Number(params?.id), type_score: JSON.stringify(values)})
console.log('paper', paper)
// setUuidPaper(paper?.paper_uuid)
// message.success('提交成功');
handleScoreModalVisible(false)
return true;
}}
>
{questions && questions?.map((item)=>{
return <>
</>
})}
</ModalForm> </ModalForm>
</PageContainer> </PageContainer>

@ -34,6 +34,9 @@ export type TableListItem = {
// React.forwardRef 接受渲染函数作为参数。React 将使用 props 和 ref 作为参数来调用此函数。此函数应返回 React 节点。 // React.forwardRef 接受渲染函数作为参数。React 将使用 props 和 ref 作为参数来调用此函数。此函数应返回 React 节点。
const ScoreSetter = (props: any, ref: any) => { const ScoreSetter = (props: any, ref: any) => {
const {questionTypeValues} = props
console.log('questionTypeValues', questionTypeValues)
const match = useRouteMatch(); const match = useRouteMatch();
console.log('match', match); console.log('match', match);
@ -45,11 +48,9 @@ const ScoreSetter = (props: any, ref: any) => {
const [sumScore, setSumScore] = useState(0); // 总分 const [sumScore, setSumScore] = useState(0); // 总分
const formRef = useRef(); const formRef = useRef();
//const actionRef = useRef<ActionType>();
//const actionRef = useRef<ActionType>();
/** 列表项定义 */ /** 列表项定义 */
const columns: any = [ const columns: any = [
@ -67,7 +68,7 @@ const ScoreSetter = (props: any, ref: any) => {
render: (text, record, index) => render: (text, record, index) =>
<Space direction='horizontal'> <Space direction='horizontal'>
<span></span> <span></span>
<Form.Item style={{margin:0}} name={`score[${index}]`}><InputNumber type="number" placeholder="请输入" size="small" onChange={(value)=>{ <Form.Item style={{margin:0}} name={`score[${index}]`}><InputNumber type="number" defaultValue={questionTypeValues[index]?.score} placeholder="请输入" size="small" onChange={(value)=>{
console.log('row', index) console.log('row', index)
console.log('v1',value) console.log('v1',value)
const _data = []; const _data = [];
@ -81,7 +82,7 @@ const ScoreSetter = (props: any, ref: any) => {
{ (record?.code === 1) && { (record?.code === 1) &&
<> <>
<span>:: </span> <span>:: </span>
<Form.Item style={{margin:0}} name={`score_harf`}><InputNumber type="number" placeholder="请输入" size="small" name='score_harf' onChange={(value)=>{ <Form.Item style={{margin:0}} name={`score_harf`}><InputNumber type="number" defaultValue={questionTypeValues[index]?.score_harf} placeholder="请输入" size="small" name='score_harf' onChange={(value)=>{
// //
const _data = []; const _data = [];
console.log('typeScore',typeScore) console.log('typeScore',typeScore)
@ -99,7 +100,7 @@ const ScoreSetter = (props: any, ref: any) => {
title: '题目数量', title: '题目数量',
dataIndex: 'count', dataIndex: 'count',
width: 80, width: 80,
//render: text => <a>{text}</a>, render: (text, _, index) => <>{questionTypeValues[index].count}</>,
/* /*
editable: (text, record, index) => { editable: (text, record, index) => {
return true; return true;
@ -160,7 +161,9 @@ const ScoreSetter = (props: any, ref: any) => {
ref={formRef} ref={formRef}
> >
<EditableProTable <EditableProTable
title={()=>{return <Space> 0 , {sumScore} 线 title={()=>{
questionTypeValues
return <Space> 0 , {sumScore} 线
<Form.Item style={{margin:0}} name='win' initialValue={0}><InputNumber /></Form.Item> <Form.Item style={{margin:0}} name='win' initialValue={0}><InputNumber /></Form.Item>
</Space>}} </Space>}}
//formMapRef={formMapRef} //formMapRef={formMapRef}

@ -194,7 +194,7 @@ export default () => {
b_use: 0, b_use: 0,
rules_type: 0, rules_type: 0,
}); });
run({paper_uuid:1}); // 获取当前选题列表 //run({paper_uuid:1}); // 获取当前选题列表
// console.log('模拟考试基本信息', fileds) // console.log('模拟考试基本信息', fileds)
setSubjectId(fileds?.subject_id) // 设置当前关联主题 setSubjectId(fileds?.subject_id) // 设置当前关联主题
setRulesName(fileds?.rules_name) // 设置模拟考试规则名称 setRulesName(fileds?.rules_name) // 设置模拟考试规则名称
@ -278,7 +278,7 @@ export default () => {
<Row> <Row>
<Col span={18} style={{ background: '#ffffff', padding: 0 }}> <Col span={18} style={{ background: '#ffffff', padding: 0 }}>
<ProCard <ProCard
title="一. 单选题 共50分每题1分" title="一. 单选题 共50分每题1分111"
extra={false} extra={false}
split='vertical' split='vertical'
bordered bordered
@ -286,6 +286,21 @@ export default () => {
> >
<Space direction="vertical" style={{ width: '100%', padding: '24px 48px' }}> <Space direction="vertical" style={{ width: '100%', padding: '24px 48px' }}>
{ questions && questions.map(
<>
<Typography style={{ marginBottom: 16, fontSize: 18 }}>
0.
</Typography>
<Radio.Group onChange={() => { return true }} value={0} size="large">
<Space direction="vertical" style={{ fontSize: 16 }}>
<Radio value={1} style={{ padding: 5, fontSize: 16 }}>A. 退</Radio>
<Radio value={2} style={{ padding: 5, fontSize: 16 }}>B. </Radio>
<Radio value={3} style={{ padding: 5, fontSize: 16 }}>C. </Radio>
<Radio value={4} style={{ padding: 5, fontSize: 16 }}>D. </Radio>
</Space>
</Radio.Group>
</>
)}
<Typography style={{ marginBottom: 16, fontSize: 18 }}> <Typography style={{ marginBottom: 16, fontSize: 18 }}>
4. 4.
</Typography> </Typography>
@ -416,14 +431,14 @@ export default () => {
visible={selectorModalVisible} visible={selectorModalVisible}
onVisibleChange={handleSelectorModalVisible} onVisibleChange={handleSelectorModalVisible}
footer={null} footer={null}
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?.getSelectedRows()
console.log('rows::::', rows); console.log('rows::::', rows);
const {code, data: paper, msg} = await handleAppend(Number(params?.id), rows) const {code, data: paper, msg} = await handleAppend(Number(params?.id), rows)
console.log('paper', paper) console.log('paper', paper)
setUuidPaper(paper?.paper_uuid) setUuidPaper(paper?.paper_uuid)
run({paper_uuid: paper?.paper_uuid}); // 获取当前选题列表
// message.success('提交成功'); // message.success('提交成功');
handleSelectorModalVisible(false) handleSelectorModalVisible(false)
return true; return true;

@ -209,4 +209,4 @@ export async function autoPaperOfficial(data: Record<string, any>, options?: Rec
requestType: "form", requestType: "form",
...(options || {}), ...(options || {}),
}); });
} }

Loading…
Cancel
Save