import React, { useState, useRef } from 'react'; import { useRequest, useParams, Link } from 'umi'; import { PlusOutlined, TagsOutlined, UploadOutlined } from '@ant-design/icons'; import { Button, message, Input, Drawer, Modal, Col, Row, Space, Upload, Select, Breadcrumb } from 'antd'; import { PageContainer, FooterToolbar } from '@ant-design/pro-layout'; import type { ProColumns, ActionType } from '@ant-design/pro-table'; import ProTable from '@ant-design/pro-table'; import type { ProFormInstance } from '@ant-design/pro-form'; import { BetaSchemaForm, ModalForm, ProFormText, ProFormTextArea } from '@ant-design/pro-form'; 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 { saveCertificate, getExaminationPersonApplyList, getAsyncOrgTree } from '../service'; import type { TableListItem, TableListPagination } from '../data'; import type { DataItem } from '@antv/data-set/lib/transform/tag-cloud'; /** * 添加证书 * * @param fields */ const handleAdd = async (fields: TableListItem) => { const hide = message.loading('正在添加'); try { await saveCourse({ ...fields }); hide(); message.success('添加成功'); return true; } catch (error) { hide(); message.error('添加失败请重试!'); return false; } }; /** * 更新证书 * * @param fields */ const handleUpdate = async (fields: FormValueType, currentRow?: TableListItem) => { const hide = message.loading('正在配置'); try { await saveCourse({ ...currentRow, ...fields, }); hide(); message.success('配置成功'); return true; } catch (error) { hide(); message.error('配置失败请重试!'); return false; } }; /** * 删除证书 * * @param selectedRows */ const handleRemove = async (selectedRows: TableListItem[]) => { const hide = message.loading('正在删除'); if (!selectedRows) return true; try { await removeCourse({ key: selectedRows.map((row) => row.key), }); hide(); message.success('删除成功,即将刷新'); return true; } catch (error) { hide(); message.error('删除失败,请重试'); return false; } }; const CourseList: React.FC = () => { /** 更新窗口的弹窗 */ const [createModalVisible, handleCreateModalVisible] = useState(false); const [detailModalVisible, handleDetailModalVisible] = useState(false); const [updateModalVisible, handleUpdateModalVisible] = useState(false); const params = useParams(); const actionRef = useRef(); const formRef = useRef(); const [currentRow, setCurrentRow] = useState(); const [selectedRowsState, setSelectedRows] = useState([]); /** 列表项定义 */ const columns: ProColumns[] = [ { title: '序号', key: 'index', valueType: 'indexBorder', width: 48, }, { title: '姓名', dataIndex: 'person_name', valueType: 'text', hideInSearch: true, }, { title: '市', dataIndex: 'city_name', valueType: 'text', hideInSearch: true, }, { title: '区县', dataIndex: 'district_name', valueType: 'text', hideInSearch: true, }, { title: '学校', dataIndex: 'bureau_name', valueType: 'text', hideInSearch: true, }, { title: '证书类型', dataIndex: 'examination_name', valueType: 'text', hideInSearch: true, }, { title: '市', dataIndex: 'city_id', valueType: 'select', hideInTable: true, hideInForm: false, hideInSearch: false, request: async () => { const data = await getAsyncOrgTree({ org_id: 100025, org_type: 1, get_next: 1 }).then(); const option = [] data?.map((e, i) => { option.push({ label: e.name, value: e.id }) }) return option; }, }, { title: '区', dataIndex: 'district_id', valueType: 'select', hideInTable: true, hideInForm: false, hideInSearch: false, dependencies: ['city_id'], request: async (params) => { if (params.city_id) { console.log(params, 'params::::'); console.log(formRef, 'formRef::::'); console.log(formRef.current?.getFieldsValue(['district_id'])); const data = await getAsyncOrgTree({ org_id: params.city_id, org_type: 2, get_next: 1 }).then(); formRef.current?.setFieldsValue({ district_id: {} }) const option = [] data?.map((e, i) => { console.log(e, i); option.push({ label: e.name, value: e.id }) }) console.log('area:', data); // for (let i = 0; i < Items.length; i++) { // tags.push({ label: Items[i].tag_name, value: Items[i].tag_id }) // } return option; } }, }, { title: '制证状态', dataIndex: 'status_type', sorter: false, valueType: 'text', hideInForm: false, hideInSearch: false, render: (dom, entity) => { return params.accreditation_status == 1 ? "已制证" : "未制证"; }, }, ]; return ( { return 考试管理 制证管理 {decodeURIComponent(params?.name)} } }} > headerTitle={false} actionRef={actionRef} formRef={formRef} rowKey="course_id" options={false} search={{ labelWidth: 120, }} // toolBarRender={() => [ // , // ]} 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 getExaminationPersonApplyList({ ...value, examination_id: params.id, city_id: value.city_id ? value.city_id : 0, district_id: value.district_id ? value.district_id : 0, page_number: value.current, page_size: value.pageSize }); return { current: _data?.pageNumber, data: _data?.table_List, pageSize: _data?.pageSize, total: _data?.totalRow || 0, }; }} // dataSource={list} columns={columns} rowSelection={false} /> { setCurrentRow(undefined); // 设置当前行 handleDetailModalVisible(false); }} footer={null} centered >{console.log('currentRow', currentRow)} {currentRow?.name && ( column={2} /* title={currentRow?.name} */ dataSource={currentRow} /* request={async () => ({ data: currentRow || {}, })}*/ params={{ id: currentRow?.course_id, }} columns={ columns //columns.slice(0, columns.length - 1) as ProDescriptionsItemProps[] } /> )} { handleCreateModalVisible(false); }} footer={null} > layout="horizontal" // form={schemaForm} layoutType="Form" labelCol={{ span: 8 }} wrapperCol={{ span: 12 }} // onValuesChange={(values: any) => { // console.log('values:', values); // const { city_id } = values // if (city_id) { // schemaForm.setFieldsValue({ district_id: "" }) // } // }} onFinish={async (values: any) => { // 表单处理 console.log('columns:', columns); console.log('values:', values); }} submitter={{ render: (props, doms) => ( {doms} ), }} // action = '' title="新建" columns={columns} /> { handleUpdateModalVisible(false); }} footer={null} > {currentRow?.name && ( layout="horizontal" layoutType="Form" labelCol={{ span: 8 }} wrapperCol={{ span: 12 }} onFinish={async (values) => { console.log(values); }} submitter={{ render: (props, doms) => ( {doms} ), }} // action = '' title="编辑" columns={getInitialValues(columns, currentRow)} /> )} ); }; export default CourseList;