Quellcode durchsuchen

添加设备管理页面

Renxy vor 1 Jahr
Ursprung
Commit
cbb36d72fe

+ 10 - 0
.umirc.ts

@@ -74,6 +74,16 @@ export default defineConfig({
       path: '/task-manage/:projectId',
       component: './TaskManage',
     },
+    {
+      name: '消息中心',
+      path: '/message/:projectId',
+      component: './MessageCenter',
+    },
+    {
+      name: '消息中心',
+      path: '/device/:projectId',
+      component: './DeviceManager',
+    },
     // {
     //   name: '权限演示',
     //   path: '/access',

BIN
src/assets/deviceManager/device01.png


+ 143 - 0
src/pages/DeviceManager/index.js

@@ -0,0 +1,143 @@
+import ContentPage from '@/components/ContentPage';
+import { queryDevice } from '@/services/device';
+import { useParams, useRequest } from '@umijs/max';
+import { Button, Collapse, Space, Tabs } from 'antd';
+const img = require('@/assets/deviceManager/device01.png');
+const DeviceManager = () => {
+  const { projectId } = useParams();
+  const { data, run, loading } = useRequest((data) => queryDevice(data), {
+    defaultParams: [{ ProjectId: projectId, IsNew: 1 }],
+  });
+  console.log(data);
+
+  const onChange = () => {};
+  return (
+    <ContentPage style={{ backgroundColor: 'gray' }}>
+      {/* <CloseOutlined /> */}
+      <Tabs
+        defaultActiveKey="1"
+        onChange={onChange}
+        items={[
+          {
+            label: `设备管理`,
+            key: '1',
+            children: <Device />,
+          },
+          {
+            label: `备品管理`,
+            key: '2',
+            children: `Content of Tab Pane 2`,
+          },
+        ]}
+      />
+    </ContentPage>
+  );
+};
+const Device = () => {
+  const text = `
+  A dog is a type of domesticated animal.
+  Known for its loyalty and faithfulness,
+  it can be found as a welcome guest in many households across the world.
+`;
+  const items = [
+    {
+      key: '1',
+      label: 'This is panel header with arrow icon',
+      children: <p>{text}</p>,
+    },
+    {
+      key: '2',
+      label: 'This is panel header with no arrow icon',
+      children: <p>{text}</p>,
+      showArrow: false,
+    },
+  ];
+  const onChange = (key) => {
+    console.log(key);
+  };
+  return (
+    <div style={{ width: '100%' }}>
+      <div
+        style={{
+          display: 'flex',
+          borderRadius: '10px',
+          backgroundColor: 'white',
+          justifyContent: 'space-around',
+        }}
+      >
+        <img style={{ width: '30%' }} src={img} />
+        <div>
+          <div>410</div>
+          <div>设备总数</div>
+        </div>
+        <div>
+          <div
+            style={{
+              display: 'flex',
+            }}
+          >
+            <div
+              style={{
+                width: '20px',
+                height: '20px',
+                backgroundColor: 'green',
+                borderRadius: '10px',
+              }}
+            />
+            <div>运行</div>
+            <div>137</div>
+          </div>
+          <div
+            style={{
+              display: 'flex',
+            }}
+          >
+            <div
+              style={{
+                width: '20px',
+                height: '20px',
+                backgroundColor: 'green',
+                borderRadius: '10px',
+              }}
+            />
+            <div>运行</div>
+            <div>137</div>
+          </div>
+          <div
+            style={{
+              display: 'flex',
+            }}
+          >
+            <div
+              style={{
+                width: '20px',
+                height: '20px',
+                backgroundColor: 'green',
+                borderRadius: '10px',
+              }}
+            />
+            <div>运行</div>
+            <div>137</div>
+          </div>
+        </div>
+      </div>
+      <Space>
+        <Button shape="round">全部</Button>
+        <Button shape="round">维修</Button>
+        <Button shape="round">保养</Button>
+      </Space>
+      <Collapse
+        defaultActiveKey={['1']}
+        bordered={false}
+        onChange={onChange}
+        items={items}
+      />
+    </div>
+  );
+};
+const SparePart = () => {
+  
+  return <div></div>
+};
+
+export default DeviceManager;

+ 4 - 0
src/pages/DeviceManager/index.less

@@ -0,0 +1,4 @@
+.close {
+  position: absolute;
+  right: 0;
+}

+ 4 - 0
src/pages/MessageCenter/index.js

@@ -0,0 +1,4 @@
+const MessageCenter = () => {
+  return <div>1111</div>;
+};
+export default MessageCenter;

+ 0 - 0
src/pages/MessageCenter/index.less


+ 18 - 0
src/pages/index.less

@@ -0,0 +1,18 @@
+body {
+  :global {
+    .ant-tabs-nav .ant-tabs-tab {
+      padding: 0 32px;
+      margin-right: 0px;
+      border-right: 1px solid #d7e4e8;
+      // vertical-align: middle;
+
+      &:last-child {
+        border-right: none;
+      }
+
+      &::before {
+        display: none;
+      }
+    }
+  }
+}

+ 212 - 0
src/services/StorageManagement.js

@@ -0,0 +1,212 @@
+import { stringify } from 'qs';
+import { request } from 'umi';
+
+/**
+ * 请求列表 入库、出库、报废、盘点记录
+ * @param {*} data
+ * @param {*} data.project_id
+ * @param {*} data.start_time
+ * @param {*} data.end_time
+ * @param {*} data.category_id   //0 全部
+ * @param {*} data.name
+ * @param {*} data.check_result // 0 全部  1正常 2 盘盈 3 盘亏
+ * @param {*} data.type     //0 入库 1 出库 2报废 3 盘点
+ * @param {*} data.page_size
+ * @param {*} data.page
+ * @returns
+ */
+export async function queryStoreList(data) {
+  var res = await request(`/api/store/v1/store/list`, {
+    method: 'POST',
+    body: data,
+  });
+  return res?.data?.data || [];
+}
+
+/**
+ * 请求列表 基础库存、库存报警、库存盘点
+ * @param {*} data
+ * @param {*} data.project_id
+ * @param {*} data.category_id   //0 全部
+ * @param {*} data.name
+ * @param {*} data.warning_state //0 全部 1正常 2报警
+ * @param {*} data.page_size
+ * @param {*} data.page
+ * @returns
+ */
+export async function queryInventoryList(data) {
+  var res = await request(`/api/store/v1/inventory/list`, {
+    method: 'POST',
+    body: data,
+  });
+  return res?.data?.list || [];
+}
+
+/**
+ * 仓储类型
+ */
+export async function queryCategoryList(data) {
+  var res = await request(`/api/store/v1/category/list`, {
+    method: 'POST',
+    body: data,
+  });
+  return res?.data?.list || [];
+}
+
+/**
+ *创建记录
+ * @param {*} data
+ * @param {*} data.project_id
+ * @param {*} data.category_id //仓储类型
+ * @param {*} data.name
+ * @param {*} data.model_number   //0 全部
+ * @param {*} data.unit
+ * @param {*} data.amount //数量
+ * @param {*} data.check_amount    //盘点数量
+ * @param {*} data.recipient_user_name   //领用人
+ * @param {*} data.desc
+ * @param {*} data.check_result
+ * @param {*} data.types   //0 入库 1 出库 2报废 3 盘点
+ * @returns
+ */
+export async function queryStoreCreateItem(data) {
+  var res = await request(`/api/store/v1/create/item`, {
+    method: 'POST',
+    body: data,
+  });
+  return res?.data || [];
+}
+/**
+ *  修改记录
+ *  @param {*} data
+ *  @param {*} data.project_id
+ *  @param {*} data.id
+ */
+export async function queryUpdateItem(data) {
+  var res = await request(`/api/store/v1/update/item`, {
+    method: 'POST',
+    body: data,
+  });
+  return res?.data || [];
+}
+/**
+ *  删除记录
+ *  @param {*} data
+ *  @param {*} data.project_id
+ *  @param {*} data.id
+ */
+export async function queryStorageDel(data) {
+  var res = await request(`/api/store/v1/storage/del`, {
+    method: 'POST',
+    body: data,
+  });
+  return res?.data || [];
+}
+/**
+ *  设置阈值
+ *  @param {*} data
+ *  @param {*} data.project_id
+ *  @param {*} data.id
+ *  @param {*} data.amount
+ */
+export async function querySetThreshold(data) {
+  var res = await request(`/api/store/v1/set/threshold`, {
+    method: 'POST',
+    body: data,
+  });
+  return res?.data || [];
+}
+
+/**
+ *  入库、出库、报废图表接口
+ *  @param {*} data
+ *  @param {*} data.project_id
+ *  @param {*} data.year
+ *  @param {*} data.month  // 0本年度全部  1-12对应月
+ *  @param {*} data.types   //0 入库 1 出库 2报废 3 盘点
+ */
+export async function queryChartList(data) {
+  var res = await request(`/api/store/v1/chart/list`, {
+    method: 'POST',
+    body: data,
+  });
+  return res?.data || [];
+}
+
+/**
+ *  库存折线图
+ *  @param {*} data
+ *  @param {*} data.project_id
+ *  @param {*} data.year
+ *  @param {*} data.month  // 0本年度全部  1-12对应月
+ */
+export async function queryInventoryChartList(data) {
+  var res = await request(`/api/store/v1/inventory-chart/list`, {
+    method: 'POST',
+    body: data,
+  });
+  return res?.data || [];
+}
+
+/**
+ *  总览接口
+ *  @param {*} data
+ *  @param {*} data.project_id
+ *  @param {*} data.year
+ *  @param {*} data.month  // 0本年度全部  1-12对应月
+ */
+export async function queryMainChartList(data) {
+  var res = await request(`/api/store/v1/main-chart/list`, {
+    method: 'POST',
+    body: data,
+  });
+  return res?.data || [];
+}
+
+/**
+ *  名称筛选
+ *  @param {*} data
+ *  @param {*} data.project_id
+ *  @param {*} data.category_id
+ *  @param  data.name
+ *  @param  data.model_number
+ */
+export async function queryStorageSelList(data) {
+  var res = await request(`/api/store/v1/storage-sel/list`, {
+    method: 'POST',
+    body: data,
+  });
+  return res?.data?.list || [];
+}
+
+/**
+ *  出入库报废 导入excel
+ *  @param {*} data
+ *  @param {*} data.project_id
+ *  @param {*} data.types
+ *  @param {*} data.file
+ *  @param {*} data.user_name
+ */
+export async function queryStoreImport(data) {
+  var res = await request(`/api/store/v1/store/import`, {
+    method: 'POST',
+    body: data,
+  });
+  return res;
+}
+
+/**
+ *  出入库报废 导出excel
+ *  @param {*} data
+ *  @param {*} data.project_id
+ *  @param  data.start_time
+ *  @param  data.end_time
+ *  @param {*} data.category_id
+ *  @param {*} data.name
+ *  @param {*} data.type
+ *  @param {*} data.warning_state
+ */
+export async function queryStoreExport(data) {
+  return request(`/api/store/v1/store/export?${stringify(data)}`);
+  return res;
+}

+ 8 - 0
src/services/device.js

@@ -0,0 +1,8 @@
+import { stringify } from 'qs';
+import { request } from 'umi';
+export async function queryDevice(params = {}) {
+  params.DepId = localStorage.depId;
+  return request(
+    `/api/v1/device/list/${params.ProjectId}?${stringify(params)}`,
+  );
+}