考试规则维护

master
xialiang 4 years ago
parent a284b05ab9
commit 88b59d4868

@ -176,6 +176,13 @@ export default defineConfig({
component: './examinationrules/attestation/step',
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 ProDescriptions from '@ant-design/pro-descriptions';
import type { FormValueType } 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 { DataItem } from '@antv/data-set/lib/transform/tag-cloud';
@ -116,7 +115,7 @@ const ExaminationRules: React.FC = () => {
valueType: 'text',
hideInTable: false,
hideInForm: false,
hideInSearch: false,
hideInSearch: true,
},
{
title: '考试时长',
@ -135,16 +134,40 @@ const ExaminationRules: React.FC = () => {
hideInTable: false,
hideInForm: false,
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: '创建日期',
dataIndex: 'create_time',
valueType: 'text',
valueType: 'dateRange',
sorter: false,
hideInTable: false,
hideInForm: false,
hideInSearch: false,
// renderText: (val: string) => `${val}`,
render: (dom, entity) => {
return entity.create_time
},
},
{
@ -185,8 +208,7 @@ const ExaminationRules: React.FC = () => {
<a
key="update"
onClick={() => {
handleUpdateModalVisible(true);
setCurrentRow(record);
history.push('/examinationrules/attestation/step/' + record.id)
}}
>
@ -226,10 +248,15 @@ const ExaminationRules: React.FC = () => {
history.push('/examinationrules/attestation/step')
}}
>
<PlusOutlined />
<PlusOutlined />
</Button>,
]}
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(
{
...value,

@ -1,5 +1,5 @@
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 { ProFormRadio } from '@ant-design/pro-form';
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 ProDescriptions from '@ant-design/pro-descriptions';
import styles from './index.less'
import { queryProvince, querySubjectList } from '../service';
import { saveRules, querySubjectList, queryRulesView } from '../../service';
const waitTime = (time: number = 100) => {
@ -34,6 +34,18 @@ export default () => {
const formRef = useRef<ProFormInstance>();
const params = useParams();
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 (
<PageContainer content={''} extraContent={''}>
@ -63,47 +75,74 @@ export default () => {
stepProps={{
description: false,
}}
onFinish={async () => {
console.log(formRef.current?.getFieldsValue());
await waitTime(2000);
onFinish={async (fileds) => {
if (params.id) {
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;
}}
>
<Row gutter={24}>
<Col lg={24} md={24} sm={24}>
<ProFormText
name="name"
label="考试名称"
width="md"
// tooltip="最长为 6 位汉字,需要与考生身份证一致"
placeholder="请输入名称"
rules={[{ required: true, message: '请输入考试名称' }]}
// value="锦书"
// disabled
/>
<ProFormSelect
width="md"
{ruleData && (
<>
<ProFormText
name="rules_name"
label="考试名称"
width="md"
initialValue={ruleData.rules_name}
// tooltip="最长为 6 位汉字,需要与考生身份证一致"
placeholder="请输入名称"
rules={[{ required: true, message: '请输入考试名称' }]}
// value="锦书"
// disabled
/>
request={async () => {
return querySubjectList().then(({ data }) => {
console.log(data)
return data.list.map((item) => {
return {
label: item.subject_name,
value: item.subject_id,
};
});
});
}}
rules={[{ required: true, message: '请选择主题' }]}
name="unusedMode"
label="关联主题"
/>
<ProFormText name="time" label="考试时长"
rules={[{ required: true, message: '请输入考试时长' }]}
tooltip="限制考试时长的情况下,用户考试中离开,倒计时不会停止。" />
<ProFormSelect
width="md"
initialValue={ruleData.subject_id}
request={async () => {
return querySubjectList().then(({ data }) => {
console.log(data, 'querySubjectList')
return data.list.map((item) => {
return {
label: item.subject_name,
value: item.subject_id,
};
});
});
}}
rules={[{ required: true, message: '请选择主题' }]}
name="subject_id"
label="关联主题"
/>
<ProFormText name="examination_time" label="考试时长"
initialValue={ruleData.examination_time}
rules={[{ required: true, message: '请输入考试时长' }]}
// 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>
</Row>

@ -11,7 +11,7 @@ import type { ProDescriptionsItemProps } from '@ant-design/pro-descriptions';
import ProDescriptions from '@ant-design/pro-descriptions';
import type { FormValueType } 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 { DataItem } from '@antv/data-set/lib/transform/tag-cloud';
@ -116,7 +116,7 @@ const ExaminationRules: React.FC = () => {
valueType: 'text',
hideInTable: false,
hideInForm: false,
hideInSearch: false,
hideInSearch: true,
},
{
title: '考试时长',
@ -135,6 +135,28 @@ const ExaminationRules: React.FC = () => {
hideInTable: false,
hideInForm: false,
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: '创建日期',
@ -144,7 +166,9 @@ const ExaminationRules: React.FC = () => {
hideInTable: false,
hideInForm: false,
hideInSearch: false,
renderText: (val: string) => `${val}`,
render: (dom, entity) => {
return entity.create_time
},
},
{
@ -170,7 +194,6 @@ const ExaminationRules: React.FC = () => {
dataIndex: 'option',
valueType: 'option',
render: (_dom: any, record: React.SetStateAction<TableListItem | undefined>) => {
console.log(record, 'record')
return [
// <a
// key="detail"
@ -230,10 +253,17 @@ const ExaminationRules: React.FC = () => {
</Button>,
]}
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(
{
...value,
rules_type: 0,
page_number: value.current,
page_size: value.pageSize
}

Loading…
Cancel
Save