diff --git a/src/pages/device/devicepush/components/PushFrom.jsx b/src/pages/device/devicepush/components/PushFrom.jsx
new file mode 100644
index 0000000..d189f35
--- /dev/null
+++ b/src/pages/device/devicepush/components/PushFrom.jsx
@@ -0,0 +1,22 @@
+import React from 'react';
+import { Modal, Form, Input, Button, Select,InputNumber,TreeSelect } from 'antd';
+
+const PushFrom = (props) => {
+ const { Option, OptGroup } = Select;
+ return (
+ {
+ props.onCancel();
+ }}
+ destroyOnClose
+ >
+
+ );
+};
+
+export default PushFrom;
diff --git a/src/pages/device/devicepush/index.jsx b/src/pages/device/devicepush/index.jsx
index e69de29..2ccb476 100644
--- a/src/pages/device/devicepush/index.jsx
+++ b/src/pages/device/devicepush/index.jsx
@@ -0,0 +1,254 @@
+import { PlusOutlined } from '@ant-design/icons';
+import { Button, message, Input, Drawer, Popconfirm } from 'antd';
+import React, { useState, useRef, useEffect } from 'react';
+import { PageContainer, FooterToolbar } from '@ant-design/pro-layout';
+import ProTable from '@ant-design/pro-table';
+import ProDescriptions from '@ant-design/pro-descriptions';
+import PushFrom from './components/PushFrom';
+
+import {
+ GetDevicePushRecodePage,
+ DevicePushRecodeDelete
+} from './service';
+
+
+
+const DevicePush = () => {
+ /** 新建/更新窗口的弹窗 */
+ const [createModalVisible, handleModalVisible] = useState(false);
+ /** 分布更新窗口的弹窗 */
+ const [showDetail, setShowDetail] = useState(false);
+ const actionRef = useRef();
+ const [currentRow, setCurrentRow] = useState();
+ const [selectedRowsState, setSelectedRows] = useState([]);
+ /** 国际化修改 */
+ useEffect(() => {
+
+
+ }, []);
+
+ /**
+ * 批量删除
+ *
+ * @param selectedRows
+ */
+
+ const handleRemove = async (selectedRows) => {
+ const hide = message.loading('正在删除');
+ if (!selectedRows) return true;
+ await DevicePushRecodeDelete(selectedRows.map((row) => row.id)).then((r) => {
+ if (r.succeeded) {
+ message.success('删除成功');
+ actionRef.current.reload();
+ } else {
+ message.error(r.errors);
+ }
+ });
+ hide();
+ return true;
+ };
+ const columns = [
+ {
+ title: '主键',
+ dataIndex: 'id',
+ hideInSearch: true,
+ hideInTable: true,
+ tip: '规则名称是唯一的 key',
+ render: (dom, entity) => {
+ return (
+ {
+ setCurrentRow(entity);
+ setShowDetail(true);
+ }}
+ >
+ {dom}
+
+ );
+ },
+ },
+ {
+ title: '下发设备',
+ dataIndex: 'deviceName',
+ valueType: 'textarea',
+ ellipsis: true,
+ },
+
+ {
+ title: '下发数据',
+ dataIndex: 'type',
+ ellipsis: true,
+ valueEnum: {
+ 1: {
+ text: '商品',
+ },
+ 2: {
+ text: '物料',
+ },
+ 3: {
+ text: '工艺',
+ },
+ 4: {
+ text: '配方',
+ },
+ },
+ },
+ {
+ title: '下发时间',
+ dataIndex: 'ceateAt',
+ hideInSearch: true,
+ },
+ {
+ title: '操作',
+ dataIndex: 'option',
+ valueType: 'option',
+ render: (_, record) => [
+ {
+ handleModalVisible(true);
+ setCurrentRow(record);
+ }}
+ >
+ 下发详情
+ ,
+ {
+ await DeleteGoodsType(record.id).then((r) => {
+ if (r.succeeded) {
+ message.success('删除成功');
+ actionRef.current.reload();
+ } else {
+ message.error(r.errors);
+ }
+ });
+ }}
+ onCancel={() => {}}
+ >
+ 删除
+ ,
+ ],
+ },
+ ];
+
+ return (
+
+ [
+ ,
+ ]}
+ request={async (params) => {
+ var goodsData = [];
+ var total = 0;
+ await GetDevicePushRecodePage(params).then((r) => {
+ goodsData = r.data.data;
+ total = r.data.total;
+ });
+ return {
+ data: goodsData,
+ success: true,
+ total: total,
+ };
+ }}
+ columns={columns}
+ rowSelection={{
+ onChange: (_, selectedRows) => {
+ setSelectedRows(selectedRows);
+ },
+ }}
+ />
+ {selectedRowsState?.length > 0 && (
+
+ 已选择{' '}
+
+ {selectedRowsState.length}
+ {' '}
+ 项
+ {/*
+ 服务调用次数总计 {selectedRowsState.reduce((pre, item) => pre + item.id, 0)} 万
+ */}
+
+ }
+ >
+
+ {/* */}
+
+ )}
+
+ {
+
+ }}
+ onCancel={() => {
+ handleModalVisible(false);
+ setCurrentRow(undefined);
+ }}
+ createModalVisible={createModalVisible}
+ values={currentRow || {}}
+ />
+
+ {
+ setCurrentRow(undefined);
+ setShowDetail(false);
+ }}
+ closable={false}
+ >
+ {currentRow?.name && (
+ ({
+ data: currentRow || {},
+ })}
+ params={{
+ id: currentRow?.name,
+ }}
+ columns={columns}
+ />
+ )}
+
+
+ );
+};
+
+export default DevicePush;
diff --git a/src/pages/device/devicepush/services.js b/src/pages/device/devicepush/services.js
index e69de29..a7a5151 100644
--- a/src/pages/device/devicepush/services.js
+++ b/src/pages/device/devicepush/services.js
@@ -0,0 +1,25 @@
+import { request } from 'umi';
+export async function GetDevicePushRecodePage(data) {
+ return request(`/saasstore/api/devicepushrecode/page`, {
+ method: 'POST',
+ data: data,
+ });
+ }
+ export async function DevicePushRecodeAdd(data) {
+ return request(`/saasstore/api/devicepushrecode/add`, {
+ method: 'POST',
+ data: data,
+ });
+ }
+ export async function DevicePushRecodeUpdate(data) {
+ return request(`/saasstore/api/devicepushrecode/update`, {
+ method: 'POST',
+ data: data,
+ });
+ }
+ export async function DevicePushRecodeDelete(data) {
+ return request(`/saasstore/api/devicepushrecode/delete`, {
+ method: 'POST',
+ data: data,
+ });
+ }