|
|
|
@ -1,7 +1,7 @@
|
|
|
|
|
/** 考试维护 */
|
|
|
|
|
import React, { useState, useRef } from 'react';
|
|
|
|
|
import { useRequest, history } from 'umi';
|
|
|
|
|
import { PlusOutlined, TagsOutlined, UploadOutlined } from '@ant-design/icons';
|
|
|
|
|
import { ConsoleSqlOutlined, PlusOutlined, TagsOutlined, UploadOutlined } from '@ant-design/icons';
|
|
|
|
|
import { Button, message, Input, Drawer, Modal, Col, Row, Space, Upload, Form, Popconfirm, Typography } from 'antd';
|
|
|
|
|
import { PageContainer, FooterToolbar } from '@ant-design/pro-layout';
|
|
|
|
|
import type { ActionType } from '@ant-design/pro-table';
|
|
|
|
@ -17,6 +17,7 @@ import { querySubjectList, updateExamination, removeExamination, queryExaminatio
|
|
|
|
|
import type { TableListItem, TableListPagination } from './data';
|
|
|
|
|
import type { DataItem } from '@antv/data-set/lib/transform/tag-cloud';
|
|
|
|
|
import { ConsoleMessage } from 'puppeteer-core';
|
|
|
|
|
import ExaminationRules from '../../examinationrules/normal/index';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -124,6 +125,24 @@ const ExaminationList: React.FC = () => {
|
|
|
|
|
required: true,
|
|
|
|
|
message: '请选择报名时间',
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
validator: (rule, value) => {
|
|
|
|
|
console.log("报名时间:", rule, value)
|
|
|
|
|
// console.log(value[0] > value[1]);
|
|
|
|
|
const examinationTime = schemaForm.getFieldValue('examination_time')
|
|
|
|
|
|
|
|
|
|
if (examinationTime) {
|
|
|
|
|
if (value[0] > new Date(examinationTime[0])) {
|
|
|
|
|
return Promise.reject('报名开始时间不能晚于考试开始时间')
|
|
|
|
|
}
|
|
|
|
|
if (value[1] > new Date(examinationTime[0])) {
|
|
|
|
|
return Promise.reject('报名结束时间不能晚于考试开始时间')
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return Promise.resolve()
|
|
|
|
|
// callback("时间不对");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
render: (dom, entity) => {
|
|
|
|
@ -141,6 +160,33 @@ const ExaminationList: React.FC = () => {
|
|
|
|
|
required: true,
|
|
|
|
|
message: '请选择考试时间',
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
validator: (rule, value) => {
|
|
|
|
|
// console.log(value[0] > value[1]);
|
|
|
|
|
const applyTime = schemaForm.getFieldValue('apply_time')
|
|
|
|
|
const courseTime = schemaForm.getFieldValue('course_time')
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (applyTime) {
|
|
|
|
|
if (value[0] < new Date(applyTime[0])) {
|
|
|
|
|
return Promise.reject('考试开始时间不能晚于报名开始时间')
|
|
|
|
|
}
|
|
|
|
|
if (value[0] < new Date(applyTime[1])) {
|
|
|
|
|
return Promise.reject('考试开始时间不能晚于报名结束时间')
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (courseTime) {
|
|
|
|
|
if (value[0] < new Date(courseTime[0])) {
|
|
|
|
|
return Promise.reject('考试开始时间不能晚于课程主题开放开始时间')
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return Promise.resolve()
|
|
|
|
|
// callback("时间不对");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
@ -152,7 +198,7 @@ const ExaminationList: React.FC = () => {
|
|
|
|
|
{
|
|
|
|
|
title: '创建时间',
|
|
|
|
|
dataIndex: 'create_time',
|
|
|
|
|
valueType: 'dateTimeRange',
|
|
|
|
|
valueType: 'dateRange',
|
|
|
|
|
hideInTable: false,
|
|
|
|
|
hideInForm: true,
|
|
|
|
|
hideInSearch: false,
|
|
|
|
@ -169,6 +215,8 @@ const ExaminationList: React.FC = () => {
|
|
|
|
|
const { data: Items } = await querySubjectList({ page_size: 1000 });
|
|
|
|
|
// console.log(Items, ')))');
|
|
|
|
|
|
|
|
|
|
schemaForm.setFieldsValue({ rules_id: "" });
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const sinfo = []
|
|
|
|
|
for (let i = 0; i < Items.list.length; i++) {
|
|
|
|
@ -203,7 +251,6 @@ const ExaminationList: React.FC = () => {
|
|
|
|
|
for (let i = 0; i < Items.length; i++) {
|
|
|
|
|
rules.push({ label: Items[i].rules_name, value: Items[i].id })
|
|
|
|
|
}
|
|
|
|
|
schemaForm.setFieldsValue({ rules_id: "" });
|
|
|
|
|
return rules;
|
|
|
|
|
},
|
|
|
|
|
formItemProps: {
|
|
|
|
@ -256,6 +303,25 @@ const ExaminationList: React.FC = () => {
|
|
|
|
|
{
|
|
|
|
|
required: true,
|
|
|
|
|
message: '请选择主题开放时间',
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
validator: (rule, value) => {
|
|
|
|
|
console.log("表单", value, schemaForm.getFieldsValue())
|
|
|
|
|
console.log("表单AA", currentRow);
|
|
|
|
|
|
|
|
|
|
// console.log(value[0] > value[1]);
|
|
|
|
|
const examinationTime = schemaForm.getFieldValue('examination_time')
|
|
|
|
|
// console.log("处理时间", examinationTime[0], new Date(examinationTime[0]));
|
|
|
|
|
|
|
|
|
|
if (examinationTime) {
|
|
|
|
|
if (value[0] > new Date(examinationTime[0])) {
|
|
|
|
|
return Promise.reject('课程主题开放开始不能晚于考试开始时间')
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return Promise.resolve()
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
@ -388,7 +454,9 @@ const ExaminationList: React.FC = () => {
|
|
|
|
|
type="primary"
|
|
|
|
|
key="primary"
|
|
|
|
|
onClick={() => {
|
|
|
|
|
schemaForm.resetFields()
|
|
|
|
|
handleCreateModalVisible(true);
|
|
|
|
|
|
|
|
|
|
}}
|
|
|
|
|
>
|
|
|
|
|
<PlusOutlined /> 新建考试
|
|
|
|
@ -579,9 +647,11 @@ const ExaminationList: React.FC = () => {
|
|
|
|
|
<Modal
|
|
|
|
|
title="编辑"
|
|
|
|
|
width="60%"
|
|
|
|
|
|
|
|
|
|
visible={updateModalVisible}
|
|
|
|
|
destroyOnClose
|
|
|
|
|
onCancel={() => {
|
|
|
|
|
schemaForm.resetFields()
|
|
|
|
|
handleUpdateModalVisible(false);
|
|
|
|
|
}}
|
|
|
|
|
footer={null}
|
|
|
|
@ -590,10 +660,12 @@ const ExaminationList: React.FC = () => {
|
|
|
|
|
<BetaSchemaForm<DataItem>
|
|
|
|
|
layout="horizontal"
|
|
|
|
|
layoutType="Form"
|
|
|
|
|
form={schemaForm}
|
|
|
|
|
labelCol={{ span: 8 }}
|
|
|
|
|
wrapperCol={{ span: 12 }}
|
|
|
|
|
onFinish={async (values) => {
|
|
|
|
|
console.log('values', values);
|
|
|
|
|
schemaForm.validateFields()
|
|
|
|
|
//const url = values?.upload[0]?.url?.replace('/dsideal_yy/html/','') || values?.upload[0]?.response?.url;
|
|
|
|
|
//console.log('url', url)
|
|
|
|
|
const params = {
|
|
|
|
@ -615,6 +687,7 @@ const ExaminationList: React.FC = () => {
|
|
|
|
|
});
|
|
|
|
|
handleUpdateModalVisible(false); // 隐藏编辑窗口
|
|
|
|
|
actionRef.current?.reloadAndRest?.();
|
|
|
|
|
schemaForm.resetFields()
|
|
|
|
|
console.log(values);
|
|
|
|
|
}}
|
|
|
|
|
submitter={{
|
|
|
|
|