|
|
@@ -1,4 +1,209 @@
|
|
|
+import { PermissionButton } from '@/components';
|
|
|
+import SearchComponent from '@/components/SearchComponent';
|
|
|
+import useDomFullHeight from '@/hooks/document/useDomFullHeight';
|
|
|
+import { getMenuPathByParams, MENUS_CODE } from '@/utils/menu';
|
|
|
+import { onlyMessage } from '@/utils/util';
|
|
|
+import {
|
|
|
+ DeleteOutlined,
|
|
|
+ EditOutlined,
|
|
|
+ PlayCircleOutlined,
|
|
|
+ PlusOutlined,
|
|
|
+ StopOutlined,
|
|
|
+} from '@ant-design/icons';
|
|
|
+import { PageContainer } from '@ant-design/pro-layout';
|
|
|
+import ProTable, { ActionType, ProColumns } from '@jetlinks/pro-table';
|
|
|
+import { Badge } from 'antd';
|
|
|
+import { useRef, useState } from 'react';
|
|
|
+import Service from './service';
|
|
|
+import { useHistory } from '@/hooks';
|
|
|
+
|
|
|
+export const service = new Service('network/card/platfrom');
|
|
|
+
|
|
|
const Platform = () => {
|
|
|
- return <>平台对接</>;
|
|
|
+ const { minHeight } = useDomFullHeight(`.record`, 24);
|
|
|
+ const actionRef = useRef<ActionType>();
|
|
|
+ const [param, setParam] = useState({});
|
|
|
+ const history = useHistory();
|
|
|
+
|
|
|
+ const statusUpdate = async (data: any) => {
|
|
|
+ const res = await service.update(data);
|
|
|
+ if (res.status === 200) {
|
|
|
+ onlyMessage('操作成功');
|
|
|
+ actionRef.current?.reload();
|
|
|
+ }
|
|
|
+ };
|
|
|
+
|
|
|
+ const columns: ProColumns<any>[] = [
|
|
|
+ {
|
|
|
+ title: '名称',
|
|
|
+ dataIndex: 'name',
|
|
|
+ ellipsis: true,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: '平台类型',
|
|
|
+ dataIndex: 'operatorName',
|
|
|
+ ellipsis: true,
|
|
|
+ valueType: 'select',
|
|
|
+ valueEnum: {
|
|
|
+ onelink: {
|
|
|
+ text: '移动OneLink',
|
|
|
+ status: 'onelink',
|
|
|
+ },
|
|
|
+ ctwing: {
|
|
|
+ text: '电信Ctwing',
|
|
|
+ status: 'ctwing',
|
|
|
+ },
|
|
|
+ unicom: {
|
|
|
+ text: '联通Unicom',
|
|
|
+ status: 'unicom',
|
|
|
+ },
|
|
|
+ },
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: '状态',
|
|
|
+ dataIndex: 'state',
|
|
|
+ ellipsis: true,
|
|
|
+ valueType: 'select',
|
|
|
+ valueEnum: {
|
|
|
+ enabled: {
|
|
|
+ text: '启用',
|
|
|
+ status: 'enabled',
|
|
|
+ },
|
|
|
+ disabled: {
|
|
|
+ text: '禁用',
|
|
|
+ status: 'disabled',
|
|
|
+ },
|
|
|
+ },
|
|
|
+ render: (_, record: any) => (
|
|
|
+ <Badge
|
|
|
+ status={record.state?.value === 'disabled' ? 'error' : 'success'}
|
|
|
+ text={record.state?.text}
|
|
|
+ />
|
|
|
+ ),
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: '说明',
|
|
|
+ dataIndex: 'explain',
|
|
|
+ ellipsis: true,
|
|
|
+ hideInSearch: true,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: '操作',
|
|
|
+ valueType: 'option',
|
|
|
+ fixed: 'right',
|
|
|
+ render: (text, record) => [
|
|
|
+ <PermissionButton
|
|
|
+ isPermission={true}
|
|
|
+ key="edit"
|
|
|
+ onClick={() => {}}
|
|
|
+ type={'link'}
|
|
|
+ style={{ padding: 0 }}
|
|
|
+ tooltip={{
|
|
|
+ title: '编辑',
|
|
|
+ }}
|
|
|
+ >
|
|
|
+ <EditOutlined />
|
|
|
+ </PermissionButton>,
|
|
|
+ <PermissionButton
|
|
|
+ isPermission={true}
|
|
|
+ key="action"
|
|
|
+ type={'link'}
|
|
|
+ style={{ padding: 0 }}
|
|
|
+ tooltip={{
|
|
|
+ title: record.state.value === 'enabled' ? '禁用' : '启用',
|
|
|
+ }}
|
|
|
+ popConfirm={{
|
|
|
+ title: `确认${record.state.value === 'enabled' ? '禁用' : '启用'}`,
|
|
|
+ onConfirm: () => {
|
|
|
+ if (record.state.value === 'enabled') {
|
|
|
+ statusUpdate({
|
|
|
+ id: record.id,
|
|
|
+ config: { ...record.config },
|
|
|
+ state: 'disabled',
|
|
|
+ operatorName: record.operatorName,
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ statusUpdate({
|
|
|
+ id: record.id,
|
|
|
+ config: { ...record.config },
|
|
|
+ state: 'enabled',
|
|
|
+ operatorName: record.operatorName,
|
|
|
+ });
|
|
|
+ }
|
|
|
+ },
|
|
|
+ }}
|
|
|
+ >
|
|
|
+ {record.state === 'enabled' ? <StopOutlined /> : <PlayCircleOutlined />}
|
|
|
+ </PermissionButton>,
|
|
|
+ <PermissionButton
|
|
|
+ isPermission={true}
|
|
|
+ tooltip={{
|
|
|
+ title: record.state.value !== 'enabled' ? '删除' : '请先禁用该协议,再删除',
|
|
|
+ }}
|
|
|
+ style={{ padding: 0 }}
|
|
|
+ disabled={record.state.value === 'enabled'}
|
|
|
+ popConfirm={{
|
|
|
+ title: '确认删除',
|
|
|
+ disabled: record.state.value === 'enabled',
|
|
|
+ onConfirm: async () => {
|
|
|
+ const res: any = await service.remove(record.id);
|
|
|
+ if (res.status === 200) {
|
|
|
+ onlyMessage('操作成功');
|
|
|
+ actionRef.current?.reload();
|
|
|
+ }
|
|
|
+ },
|
|
|
+ }}
|
|
|
+ key="delete"
|
|
|
+ type="link"
|
|
|
+ >
|
|
|
+ <DeleteOutlined />
|
|
|
+ </PermissionButton>,
|
|
|
+ ],
|
|
|
+ },
|
|
|
+ ];
|
|
|
+
|
|
|
+ return (
|
|
|
+ <PageContainer>
|
|
|
+ <SearchComponent
|
|
|
+ field={columns}
|
|
|
+ target="record"
|
|
|
+ onSearch={(data) => {
|
|
|
+ // 重置分页数据
|
|
|
+ actionRef.current?.reset?.();
|
|
|
+ setParam(data);
|
|
|
+ }}
|
|
|
+ />
|
|
|
+ <ProTable
|
|
|
+ actionRef={actionRef}
|
|
|
+ params={param}
|
|
|
+ columns={columns}
|
|
|
+ search={false}
|
|
|
+ rowKey="id"
|
|
|
+ tableClassName={'record'}
|
|
|
+ columnEmptyText={''}
|
|
|
+ tableStyle={{ minHeight }}
|
|
|
+ headerTitle={
|
|
|
+ <>
|
|
|
+ <PermissionButton
|
|
|
+ onClick={() => {
|
|
|
+ const url = `${getMenuPathByParams(MENUS_CODE['iot-card/Platform/Detail'])}`;
|
|
|
+ history.push(url);
|
|
|
+ }}
|
|
|
+ style={{ marginRight: 12 }}
|
|
|
+ isPermission={true}
|
|
|
+ key="button"
|
|
|
+ icon={<PlusOutlined />}
|
|
|
+ type="primary"
|
|
|
+ >
|
|
|
+ 新增
|
|
|
+ </PermissionButton>
|
|
|
+ </>
|
|
|
+ }
|
|
|
+ request={async (params) =>
|
|
|
+ service.getList({ ...params, sorts: [{ name: 'createTime', order: 'desc' }] })
|
|
|
+ }
|
|
|
+ />
|
|
|
+ </PageContainer>
|
|
|
+ );
|
|
|
};
|
|
|
export default Platform;
|