import { PageContainer } from '@ant-design/pro-layout'; import type { ActionType, ProColumns } from '@jetlinks/pro-table'; import ProTable from '@jetlinks/pro-table'; import { message, Popconfirm, Tooltip } from 'antd'; import { useRef, useState } from 'react'; import { useIntl } from '@@/plugin-locale/localeExports'; import { ControlOutlined, DeleteOutlined, EyeOutlined, PlusOutlined, StopOutlined, } from '@ant-design/icons'; import { useHistory, useLocation } from 'umi'; import { model } from '@formily/reactive'; import { observer } from '@formily/react'; import type { FirmwareItem } from '@/pages/device/Firmware/typings'; import Save from './Save'; import { onlyMessage } from '@/utils/util'; import { PermissionButton } from '@/components'; import useDomFullHeight from '@/hooks/document/useDomFullHeight'; import usePermissions from '@/hooks/permission'; import SearchComponent from '@/components/SearchComponent'; import { getMenuPathByParams, MENUS_CODE } from '@/utils/menu'; import { service } from '@/pages/device/Firmware'; const UpgradeBtn = (props: { data: any; actions: any }) => { const { data, actions } = props; return ( {data.waiting ? ( { const resp = await service.stopTask(data.id); if (resp.status === 200) { message.success('操作成功!'); actions?.reload(); } }} /> ) : ( { const resp = await service.startTask(data.id, ['canceled']); if (resp.status === 200) { message.success('操作成功!'); actions?.reload(); } }} /> )} ); }; export const state = model<{ current?: FirmwareItem; visible: boolean; }>({ visible: false, }); const Task = observer(() => { const actionRef = useRef(); const intl = useIntl(); const { minHeight } = useDomFullHeight(`.firmware-task`, 24); const { permission } = usePermissions('device/Firmware'); const [param, setParam] = useState({}); const history = useHistory>(); const location = useLocation<{ id: string }>(); const id = (location as any).query?.id || ''; const productId = (location as any).query?.productId || ''; const columns: ProColumns[] = [ { title: '任务名称', ellipsis: true, dataIndex: 'name', }, { title: '推送方式', ellipsis: true, dataIndex: 'mode', render: (text: any, record: any) => record?.mode?.text || '', valueType: 'select', valueEnum: { pull: { text: '设备拉取', status: 'pull', }, push: { text: '平台推送', status: 'push', }, }, }, { title: intl.formatMessage({ id: 'pages.table.description', defaultMessage: '说明', }), ellipsis: true, align: 'center', dataIndex: 'description', }, { title: '完成比例', ellipsis: true, // hideInSearch: true, dataIndex: 'progress', }, { title: intl.formatMessage({ id: 'pages.data.option', defaultMessage: '操作', }), valueType: 'option', align: 'center', width: 200, fixed: 'right', render: (text, record) => [ { const url = getMenuPathByParams(MENUS_CODE['device/Firmware/Task/Detail'], record?.id); history.push(url); }} key="link" > , , { await service.deleteTask(record.id); onlyMessage( intl.formatMessage({ id: 'pages.data.option.success', defaultMessage: '操作成功!', }), ); actionRef.current?.reload(); }} > , ], }, ]; return ( field={columns} target="firmware-task" onSearch={(data) => { // 重置分页数据 actionRef.current?.reset?.(); setParam(data); }} defaultParam={[{ column: 'firmwareId', value: id }]} /> scroll={{ x: 1366 }} tableClassName={'firmware-task'} tableStyle={{ minHeight }} search={false} params={param} rowKey="id" columnEmptyText={''} headerTitle={
{ state.visible = true; }} isPermission={permission.add} key="button" icon={} type="primary" > {intl.formatMessage({ id: 'pages.data.option.add', defaultMessage: '新增', })}
} request={async (params) => service.task({ ...params, sorts: [{ name: 'createTime', order: 'desc' }], }) } columns={columns} actionRef={actionRef} /> { state.visible = false; actionRef.current?.reload?.(); }} close={() => { state.visible = false; }} />
); }); export default Task;