考试规则维护

master
xialiang 4 years ago
parent a284b05ab9
commit 88b59d4868

@ -176,6 +176,13 @@ export default defineConfig({
component: './examinationrules/attestation/step', component: './examinationrules/attestation/step',
hideInMenu: true, hideInMenu: true,
}, },
{
name: '修改资质考试规则维护',
icon: 'smile',
path: '/examinationrules/attestation/step/:id',
component: './examinationrules/attestation/step',
hideInMenu: true,
},
], ],
}, },
{ {

@ -10,8 +10,7 @@ import { BetaSchemaForm, ModalForm, ProFormText, ProFormTextArea } from '@ant-de
import type { ProDescriptionsItemProps } from '@ant-design/pro-descriptions'; import type { ProDescriptionsItemProps } from '@ant-design/pro-descriptions';
import ProDescriptions from '@ant-design/pro-descriptions'; import ProDescriptions from '@ant-design/pro-descriptions';
import type { FormValueType } from './components/UpdateForm'; import type { FormValueType } from './components/UpdateForm';
import UpdateForm from './components/UpdateForm'; import { querySubjectList, saveExamination, removeExamination, queryRulesList } from '../service';
import { queryTagList, saveExamination, removeExamination, queryRulesList } from '../service';
import type { TableListItem, TableListPagination } from './data'; import type { TableListItem, TableListPagination } from './data';
import type { DataItem } from '@antv/data-set/lib/transform/tag-cloud'; import type { DataItem } from '@antv/data-set/lib/transform/tag-cloud';
@ -116,7 +115,7 @@ const ExaminationRules: React.FC = () => {
valueType: 'text', valueType: 'text',
hideInTable: false, hideInTable: false,
hideInForm: false, hideInForm: false,
hideInSearch: false, hideInSearch: true,
}, },
{ {
title: '考试时长', title: '考试时长',
@ -135,16 +134,40 @@ const ExaminationRules: React.FC = () => {
hideInTable: false, hideInTable: false,
hideInForm: false, hideInForm: false,
hideInSearch: true, hideInSearch: true,
},
{
title: '关联主题',
dataIndex: 'subject_id',
valueType: 'text',
hideInTable: true,
hideInForm: false,
hideInSearch: false,
request: async () => {
const { data: Items } = await querySubjectList({});
// console.log(Items, ')))');
const sinfo = []
for (let i = 0; i < Items.list.length; i++) {
// console.log(Items.list[i], ">>>")
sinfo.push({ label: Items.list[i].subject_name, value: Items.list[i].subject_id })
}
console.log(sinfo, 'sinfo');
return sinfo;
},
}, },
{ {
title: '创建日期', title: '创建日期',
dataIndex: 'create_time', dataIndex: 'create_time',
valueType: 'text', valueType: 'dateRange',
sorter: false, sorter: false,
hideInTable: false, hideInTable: false,
hideInForm: false, hideInForm: false,
hideInSearch: false, hideInSearch: false,
// renderText: (val: string) => `${val}`, render: (dom, entity) => {
return entity.create_time
},
}, },
{ {
@ -185,8 +208,7 @@ const ExaminationRules: React.FC = () => {
<a <a
key="update" key="update"
onClick={() => { onClick={() => {
handleUpdateModalVisible(true); history.push('/examinationrules/attestation/step/' + record.id)
setCurrentRow(record);
}} }}
> >
@ -226,10 +248,15 @@ const ExaminationRules: React.FC = () => {
history.push('/examinationrules/attestation/step') history.push('/examinationrules/attestation/step')
}} }}
> >
<PlusOutlined /> <PlusOutlined />
</Button>, </Button>,
]} ]}
request={async (value) => { request={async (value) => {
const { create_time } = value;
if (create_time) {
value.start_time = create_time[0]
value.end_time = create_time[1]
}
const _data = await queryRulesList( const _data = await queryRulesList(
{ {
...value, ...value,

@ -1,5 +1,5 @@
import React, { useRef } from 'react'; import React, { useRef } from 'react';
import { history, useParams } from 'umi'; import { history, useParams, useRequest } from 'umi';
import type { ProFormInstance } from '@ant-design/pro-form'; import type { ProFormInstance } from '@ant-design/pro-form';
import { ProFormRadio } from '@ant-design/pro-form'; import { ProFormRadio } from '@ant-design/pro-form';
import ProForm, { import ProForm, {
@ -16,7 +16,7 @@ import { Button, Checkbox, Col, Divider, List, Menu, message, Radio, Row, Space,
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 { queryProvince, querySubjectList } from '../service'; import { saveRules, querySubjectList, queryRulesView } from '../../service';
const waitTime = (time: number = 100) => { const waitTime = (time: number = 100) => {
@ -34,6 +34,18 @@ export default () => {
const formRef = useRef<ProFormInstance>(); const formRef = useRef<ProFormInstance>();
const params = useParams(); const params = useParams();
console.log(params, 'params'); console.log(params, 'params');
let ruleData = {}
if (params.id) {
console.log(JSON.stringify(params), "878");
const { data } = useRequest(async () => {
const { bean } = await queryRulesView(params);
return { data: bean }
});
ruleData = data
}
console.log(ruleData, 'ruleData');
return ( return (
<PageContainer content={''} extraContent={''}> <PageContainer content={''} extraContent={''}>
@ -63,18 +75,34 @@ export default () => {
stepProps={{ stepProps={{
description: false, description: false,
}} }}
onFinish={async () => { onFinish={async (fileds) => {
console.log(formRef.current?.getFieldsValue()); if (params.id) {
await waitTime(2000); fileds = { ...fileds, id: params.id }
}
console.log(fileds, 'fileds', params);
// return false
await saveRules({
...fileds,
b_use: 0,
rules_type: 1,
start_time: fileds.dateRange[0],
end_time: fileds.dateRange[1]
});
// await waitTime(2000);
return true; return true;
}} }}
> >
<Row gutter={24}> <Row gutter={24}>
<Col lg={24} md={24} sm={24}> <Col lg={24} md={24} sm={24}>
{ruleData && (
<>
<ProFormText <ProFormText
name="name" name="rules_name"
label="考试名称" label="考试名称"
width="md" width="md"
initialValue={ruleData.rules_name}
// tooltip="最长为 6 位汉字,需要与考生身份证一致" // tooltip="最长为 6 位汉字,需要与考生身份证一致"
placeholder="请输入名称" placeholder="请输入名称"
rules={[{ required: true, message: '请输入考试名称' }]} rules={[{ required: true, message: '请输入考试名称' }]}
@ -84,10 +112,10 @@ export default () => {
<ProFormSelect <ProFormSelect
width="md" width="md"
initialValue={ruleData.subject_id}
request={async () => { request={async () => {
return querySubjectList().then(({ data }) => { return querySubjectList().then(({ data }) => {
console.log(data) console.log(data, 'querySubjectList')
return data.list.map((item) => { return data.list.map((item) => {
return { return {
label: item.subject_name, label: item.subject_name,
@ -97,13 +125,24 @@ export default () => {
}); });
}} }}
rules={[{ required: true, message: '请选择主题' }]} rules={[{ required: true, message: '请选择主题' }]}
name="unusedMode" name="subject_id"
label="关联主题" label="关联主题"
/> />
<ProFormText name="time" label="考试时长" <ProFormText name="examination_time" label="考试时长"
initialValue={ruleData.examination_time}
rules={[{ required: true, message: '请输入考试时长' }]} rules={[{ required: true, message: '请输入考试时长' }]}
tooltip="限制考试时长的情况下,用户考试中离开,倒计时不会停止。" /> // tooltip="限制考试时长的情况下,用户考试中离开,倒计时不会停止。"
/>
<ProFormText name="paper_count" label="试卷数量"
initialValue={ruleData.paper_count}
rules={[{ required: true, message: '请输入数量' }]}
// tooltip="限制考试时长的情况下,用户考试中离开,倒计时不会停止。"
/>
<ProFormDateRangePicker name="dateRange" label="试卷有效期" initialValue={[ruleData.start_time, ruleData.end_time]} />
</>
)}
</Col> </Col>
</Row> </Row>

@ -11,7 +11,7 @@ import type { ProDescriptionsItemProps } from '@ant-design/pro-descriptions';
import ProDescriptions from '@ant-design/pro-descriptions'; import ProDescriptions from '@ant-design/pro-descriptions';
import type { FormValueType } from './components/UpdateForm'; import type { FormValueType } from './components/UpdateForm';
import UpdateForm from './components/UpdateForm'; import UpdateForm from './components/UpdateForm';
import { queryTagList, saveExamination, removeExamination, queryRulesList } from '../service'; import { querySubjectList, saveExamination, removeExamination, queryRulesList } from '../service';
import type { TableListItem, TableListPagination } from './data'; import type { TableListItem, TableListPagination } from './data';
import type { DataItem } from '@antv/data-set/lib/transform/tag-cloud'; import type { DataItem } from '@antv/data-set/lib/transform/tag-cloud';
@ -116,7 +116,7 @@ const ExaminationRules: React.FC = () => {
valueType: 'text', valueType: 'text',
hideInTable: false, hideInTable: false,
hideInForm: false, hideInForm: false,
hideInSearch: false, hideInSearch: true,
}, },
{ {
title: '考试时长', title: '考试时长',
@ -135,6 +135,28 @@ const ExaminationRules: React.FC = () => {
hideInTable: false, hideInTable: false,
hideInForm: false, hideInForm: false,
hideInSearch: true, hideInSearch: true,
},
{
title: '关联主题',
dataIndex: 'subject_id',
valueType: 'text',
hideInTable: true,
hideInForm: false,
hideInSearch: false,
request: async () => {
const { data: Items } = await querySubjectList({});
// console.log(Items, ')))');
const sinfo = []
for (let i = 0; i < Items.list.length; i++) {
// console.log(Items.list[i], ">>>")
sinfo.push({ label: Items.list[i].subject_name, value: Items.list[i].subject_id })
}
console.log(sinfo, 'sinfo');
return sinfo;
},
}, },
{ {
title: '创建日期', title: '创建日期',
@ -144,7 +166,9 @@ const ExaminationRules: React.FC = () => {
hideInTable: false, hideInTable: false,
hideInForm: false, hideInForm: false,
hideInSearch: false, hideInSearch: false,
renderText: (val: string) => `${val}`, render: (dom, entity) => {
return entity.create_time
},
}, },
{ {
@ -170,7 +194,6 @@ const ExaminationRules: React.FC = () => {
dataIndex: 'option', dataIndex: 'option',
valueType: 'option', valueType: 'option',
render: (_dom: any, record: React.SetStateAction<TableListItem | undefined>) => { render: (_dom: any, record: React.SetStateAction<TableListItem | undefined>) => {
console.log(record, 'record')
return [ return [
// <a // <a
// key="detail" // key="detail"
@ -230,10 +253,17 @@ const ExaminationRules: React.FC = () => {
</Button>, </Button>,
]} ]}
request={async (value) => { request={async (value) => {
console.log(value, 'form value')
const { create_time } = value;
if (create_time) {
value.start_time = create_time[0]
value.end_time = create_time[1]
}
const _data = await queryRulesList( const _data = await queryRulesList(
{ {
...value, ...value,
rules_type: 0, rules_type: 0,
page_number: value.current, page_number: value.current,
page_size: value.pageSize page_size: value.pageSize
} }

Loading…
Cancel
Save