import React, { useEffect, useState } from 'react' import Helmet from 'react-helmet' import Container, { ContainerBody } from 'components/Container' import Box from 'components/Box' import { Button, Col, Divider, Icon, message, Popconfirm, Row, Table, Tooltip } from 'antd' import { ColumnProps } from 'antd/lib/table' import { compose } from 'redux' import request from 'utils/request' import api from 'utils/api' import DictDatasModal from 'containers/DataManagerDictionary/components/DictDatasModal' import { IDictType } from 'containers/DataManagerDictionary/types' import DictTypeFormModal from 'containers/DataManagerDictionary/components/DictTypeFormModal' function DataDictionary() { const [tableLoading, setTableLoading] = useState(false) const [dictTypes, setDictTypes] = useState([]) const [visible, setVisible] = useState(false) const [dictType, setDictType] = useState(null) const [dictTypeFormVisible, setDictTypeFormVisible] = useState(false) const [dictTypeFormLoading, setDictTypeFormLoading] = useState(false) const [dictTypeForm, setDictTypeForm] = useState(null) const tableColumns: Array> = [ { title: '字典主键', dataIndex: 'dictId' }, { title: '字典名称', dataIndex: 'dictName' }, { title: '字典类型', dataIndex: 'dictType' }, { title: '状态', dataIndex: 'status', render: (text) => ( <> {text === 0 && ( 正常 )} {text === 1 && ( 停用 )} ) }, { title: '备注', dataIndex: 'remark' }, { title: '创建时间' // dataIndex: 'isDefault' }, { title: '操作', render: (_, data) => ( <> { setDictTypeFormVisible(true) setDictTypeForm(data) }} > 编辑 { setDictType(data.dictType) setVisible(true) }} > 列表 handleDeleteDictType(data.dictId)} > 删除 ) } ] const queryDictTypes = async () => { try { setTableLoading(true) const data = await request(api.dictTypes, { method: 'GET' }) // @ts-ignore setDictTypes(data?.payload ?? []) } finally { setTableLoading(false) } } const handleDeleteDictType = async (dictId) => { try { setTableLoading(true) await request(`${api.deleteDictType}/${dictId}`, { method: 'delete' }) queryDictTypes() } finally { setTableLoading(false) } } const handleSaveDictType = async (dt: IDictType) => { // // 0=正常,1=停用 try { setDictTypeFormLoading(true) const url = dictTypeForm?.dictId ? `${api.updateDictType}/${dictTypeForm.dictId}` : api.createDictType const result = await request(url, { method: dictTypeForm?.dictId ? 'PUT' : 'POST', data: { ...(dictTypeForm ?? {}), ...dt, status: dt.status ? 0 : 1 } }) // @ts-ignore if (result.header.code === 200) { setDictTypeFormVisible(false) queryDictTypes() } else { // @ts-ignore // tslint:disable-next-line:no-unused-expression result.header.msg && message.error({ content: result.header.msg }) } } finally { setDictTypeFormLoading(false) } } useEffect(() => { queryDictTypes() }, []) return ( 数据字典列表