From 2dc16f204d29aeba962ff459efaba5a8f1d05a18 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期二, 13 二月 2024 14:50:39 +0800
Subject: [PATCH] #

---
 zy-asrs-flow/src/App.jsx                                     |    2 
 zy-asrs-flow/src/pages/system/host/components/UpdateForm.jsx |  194 +++++++++++++++++++
 zy-asrs-flow/src/pages/system/host/index.jsx                 |  176 ++++++++++++++++-
 zy-asrs-wcs/src/main/resources/application.yml               |    5 
 zy-asrs-flow/tsconfig.json                                   |    2 
 zy-asrs-flow/src/pages/system/user/index.jsx                 |  174 +++++++++++++++++
 6 files changed, 535 insertions(+), 18 deletions(-)

diff --git a/zy-asrs-flow/src/App.jsx b/zy-asrs-flow/src/App.jsx
index 6f56084..b1a2c96 100644
--- a/zy-asrs-flow/src/App.jsx
+++ b/zy-asrs-flow/src/App.jsx
@@ -105,7 +105,7 @@
       },
     },
     waterMarkProps: {
-      content: initialState?.currentUser?.nickname,
+      // content: initialState?.currentUser?.nickname,
     },
     footerRender: () => <Footer />,
     onPageChange: () => {
diff --git a/zy-asrs-flow/src/pages/system/host/components/UpdateForm.jsx b/zy-asrs-flow/src/pages/system/host/components/UpdateForm.jsx
new file mode 100644
index 0000000..9ad2d41
--- /dev/null
+++ b/zy-asrs-flow/src/pages/system/host/components/UpdateForm.jsx
@@ -0,0 +1,194 @@
+import {
+  ProFormDateTimePicker,
+  ProFormRadio,
+  ProFormSelect,
+  ProFormText,
+  ProFormTextArea,
+  StepsForm,
+} from '@ant-design/pro-components';
+import { FormattedMessage, useIntl } from '@umijs/max';
+import { Modal } from 'antd';
+import React from 'react';
+
+const UpdateForm = (props) => {
+  const intl = useIntl();
+  return (
+    <StepsForm
+      stepsProps={{
+        size: 'small',
+      }}
+      stepsFormRender={(dom, submitter) => {
+        return (
+          <Modal
+            width={640}
+            bodyStyle={{ padding: '32px 40px 48px' }}
+            destroyOnClose
+            title={intl.formatMessage({
+              id: 'pages.searchTable.updateForm.ruleConfig',
+              defaultMessage: '瑙勫垯閰嶇疆',
+            })}
+            open={props.updateModalOpen}
+            footer={submitter}
+            onCancel={() => {
+              props.onCancel();
+            }}
+          >
+            {dom}
+          </Modal>
+        );
+      }}
+      onFinish={props.onSubmit}
+    >
+      <StepsForm.StepForm
+        initialValues={{
+          name: props.values.name,
+          desc: props.values.desc,
+        }}
+        title={intl.formatMessage({
+          id: 'pages.searchTable.updateForm.basicConfig',
+          defaultMessage: '鍩烘湰淇℃伅',
+        })}
+      >
+        <ProFormText
+          name="name"
+          label={intl.formatMessage({
+            id: 'pages.searchTable.updateForm.ruleName.nameLabel',
+            defaultMessage: '瑙勫垯鍚嶇О',
+          })}
+          width="md"
+          rules={[
+            {
+              required: true,
+              message: (
+                <FormattedMessage
+                  id="pages.searchTable.updateForm.ruleName.nameRules"
+                  defaultMessage="璇疯緭鍏ヨ鍒欏悕绉帮紒"
+                />
+              ),
+            },
+          ]}
+        />
+        <ProFormTextArea
+          name="desc"
+          width="md"
+          label={intl.formatMessage({
+            id: 'pages.searchTable.updateForm.ruleDesc.descLabel',
+            defaultMessage: '瑙勫垯鎻忚堪',
+          })}
+          placeholder={intl.formatMessage({
+            id: 'pages.searchTable.updateForm.ruleDesc.descPlaceholder',
+            defaultMessage: '璇疯緭鍏ヨ嚦灏戜簲涓瓧绗�',
+          })}
+          rules={[
+            {
+              required: true,
+              message: (
+                <FormattedMessage
+                  id="pages.searchTable.updateForm.ruleDesc.descRules"
+                  defaultMessage="璇疯緭鍏ヨ嚦灏戜簲涓瓧绗︾殑瑙勫垯鎻忚堪锛�"
+                />
+              ),
+              min: 5,
+            },
+          ]}
+        />
+      </StepsForm.StepForm>
+      <StepsForm.StepForm
+        initialValues={{
+          target: '0',
+          template: '0',
+        }}
+        title={intl.formatMessage({
+          id: 'pages.searchTable.updateForm.ruleProps.title',
+          defaultMessage: '閰嶇疆瑙勫垯灞炴��',
+        })}
+      >
+        <ProFormSelect
+          name="target"
+          width="md"
+          label={intl.formatMessage({
+            id: 'pages.searchTable.updateForm.object',
+            defaultMessage: '鐩戞帶瀵硅薄',
+          })}
+          valueEnum={{
+            0: '琛ㄤ竴',
+            1: '琛ㄤ簩',
+          }}
+        />
+        <ProFormSelect
+          name="template"
+          width="md"
+          label={intl.formatMessage({
+            id: 'pages.searchTable.updateForm.ruleProps.templateLabel',
+            defaultMessage: '瑙勫垯妯℃澘',
+          })}
+          valueEnum={{
+            0: '瑙勫垯妯℃澘涓�',
+            1: '瑙勫垯妯℃澘浜�',
+          }}
+        />
+        <ProFormRadio.Group
+          name="type"
+          label={intl.formatMessage({
+            id: 'pages.searchTable.updateForm.ruleProps.typeLabel',
+            defaultMessage: '瑙勫垯绫诲瀷',
+          })}
+          options={[
+            {
+              value: '0',
+              label: '寮�',
+            },
+            {
+              value: '1',
+              label: '寮�',
+            },
+          ]}
+        />
+      </StepsForm.StepForm>
+      <StepsForm.StepForm
+        initialValues={{
+          type: '1',
+          frequency: 'month',
+        }}
+        title={intl.formatMessage({
+          id: 'pages.searchTable.updateForm.schedulingPeriod.title',
+          defaultMessage: '璁惧畾璋冨害鍛ㄦ湡',
+        })}
+      >
+        <ProFormDateTimePicker
+          name="time"
+          width="md"
+          label={intl.formatMessage({
+            id: 'pages.searchTable.updateForm.schedulingPeriod.timeLabel',
+            defaultMessage: '寮�濮嬫椂闂�',
+          })}
+          rules={[
+            {
+              required: true,
+              message: (
+                <FormattedMessage
+                  id="pages.searchTable.updateForm.schedulingPeriod.timeRules"
+                  defaultMessage="璇烽�夋嫨寮�濮嬫椂闂达紒"
+                />
+              ),
+            },
+          ]}
+        />
+        <ProFormSelect
+          name="frequency"
+          label={intl.formatMessage({
+            id: 'pages.searchTable.updateForm.object',
+            defaultMessage: '鐩戞帶瀵硅薄',
+          })}
+          width="md"
+          valueEnum={{
+            month: '鏈�',
+            week: '鍛�',
+          }}
+        />
+      </StepsForm.StepForm>
+    </StepsForm>
+  );
+};
+
+export default UpdateForm;
diff --git a/zy-asrs-flow/src/pages/system/host/index.jsx b/zy-asrs-flow/src/pages/system/host/index.jsx
index 5081bb7..bf04e23 100644
--- a/zy-asrs-flow/src/pages/system/host/index.jsx
+++ b/zy-asrs-flow/src/pages/system/host/index.jsx
@@ -1,16 +1,166 @@
-import React from 'react';
-import {
-    PageContainer,
-} from '@ant-design/pro-components';
+import { EllipsisOutlined, SearchOutlined } from '@ant-design/icons';
+import { ProTable, TableDropdown } from '@ant-design/pro-components';
+import { Button, Dropdown, Input } from 'antd';
 
-const User = () => {
-    return (
-        <>
-            <PageContainer>
-                <h1>Hello world</h1>
-            </PageContainer>
-        </>
-    )
+const valueEnum = {
+  0: 'close',
+  1: 'running',
+  2: 'online',
+  3: 'error',
+};
+
+const tableListDataSource = [];
+
+const creators = ['浠樺皬灏�', '鏇蹭附涓�', '鏋椾笢涓�', '闄堝竻甯�', '鍏兼煇鏌�'];
+
+for (let i = 0; i < 5; i += 1) {
+  tableListDataSource.push({
+    key: i,
+    name: 'AppName',
+    containers: Math.floor(Math.random() * 20),
+    creator: creators[Math.floor(Math.random() * creators.length)],
+    status: valueEnum[((Math.floor(Math.random() * 10) % 4) + '')],
+    createdAt: Date.now() - Math.floor(Math.random() * 2000),
+    money: Math.floor(Math.random() * 2000) * i,
+    progress: Math.ceil(Math.random() * 100) + 1,
+    memo:
+      i % 2 === 1
+        ? '寰堥暱寰堥暱寰堥暱寰堥暱寰堥暱寰堥暱寰堥暱鐨勬枃瀛楄灞曠ず浣嗘槸瑕佺暀涓嬪熬宸�'
+        : '绠�鐭娉ㄦ枃妗�',
+  });
 }
 
-export default User;
+const columns = [
+  {
+    title: '鎺掑簭',
+    dataIndex: 'index',
+    valueType: 'indexBorder',
+    width: 48,
+  },
+  {
+    title: '搴旂敤鍚嶇О',
+    dataIndex: 'name',
+    render: (_) => <a>{_}</a>,
+    // 鑷畾涔夌瓫閫夐」鍔熻兘鍏蜂綋瀹炵幇璇峰弬鑰� https://ant.design/components/table-cn/#components-table-demo-custom-filter-panel
+    filterDropdown: () => (
+      <div style={{ padding: 8 }}>
+        <Input style={{ width: 188, marginBlockEnd: 8, display: 'block' }} />
+      </div>
+    ),
+    filterIcon: (filtered) => (
+      <SearchOutlined style={{ color: filtered ? '#1890ff' : undefined }} />
+    ),
+  },
+  {
+    title: '鍒涘缓鑰�',
+    dataIndex: 'creator',
+    valueEnum: {
+      all: { text: '鍏ㄩ儴' },
+      浠樺皬灏�: { text: '浠樺皬灏�' },
+      鏇蹭附涓�: { text: '鏇蹭附涓�' },
+      鏋椾笢涓�: { text: '鏋椾笢涓�' },
+      闄堝竻甯�: { text: '闄堝竻甯�' },
+      鍏兼煇鏌�: { text: '鍏兼煇鏌�' },
+    },
+  },
+  {
+    title: '鐘舵��',
+    dataIndex: 'status',
+    initialValue: 'all',
+    filters: true,
+    onFilter: true,
+    valueEnum: {
+      all: { text: '鍏ㄩ儴', status: 'Default' },
+      close: { text: '鍏抽棴', status: 'Default' },
+      running: { text: '杩愯涓�', status: 'Processing' },
+      online: { text: '宸蹭笂绾�', status: 'Success' },
+      error: { text: '寮傚父', status: 'Error' },
+    },
+  },
+  {
+    title: '澶囨敞',
+    dataIndex: 'memo',
+    ellipsis: true,
+    copyable: true,
+  },
+  {
+    title: '鎿嶄綔',
+    width: 180,
+    key: 'option',
+    valueType: 'option',
+    render: () => [
+      <a key="link">閾捐矾</a>,
+      <a key="link2">鎶ヨ</a>,
+      <a key="link3">鐩戞帶</a>,
+      <TableDropdown
+        key="actionGroup"
+        menus={[
+          { key: 'copy', name: '澶嶅埗' },
+          { key: 'delete', name: '鍒犻櫎' },
+        ]}
+      />,
+    ],
+  },
+];
+
+export default () => {
+  return (
+    <ProTable
+      columns={columns}
+      request={(params, sorter, filter) => {
+        // 琛ㄥ崟鎼滅储椤逛細浠� params 浼犲叆锛屼紶閫掔粰鍚庣鎺ュ彛銆�
+        console.log(params, sorter, filter);
+        return Promise.resolve({
+          data: tableListDataSource,
+          success: true,
+        });
+      }}
+      rowKey="key"
+      pagination={{
+        showQuickJumper: true,
+      }}
+      search={{
+        layout: 'vertical',
+        defaultCollapsed: false,
+      }}
+      dateFormatter="string"
+      toolbar={{
+        title: '楂樼骇琛ㄦ牸',
+        tooltip: '杩欐槸涓�涓爣棰樻彁绀�',
+      }}
+      toolBarRender={() => [
+        <Button key="danger" danger>
+          鍗遍櫓鎸夐挳
+        </Button>,
+        <Button key="show">鏌ョ湅鏃ュ織</Button>,
+        <Button type="primary" key="primary">
+          鍒涘缓搴旂敤
+        </Button>,
+
+        <Dropdown
+          key="menu"
+          menu={{
+            items: [
+              {
+                label: '1st item',
+                key: '1',
+              },
+              {
+                label: '2nd item',
+                key: '2',
+              },
+              {
+                label: '3rd item',
+                key: '3',
+              },
+            ],
+          }}
+        >
+          <Button>
+            <EllipsisOutlined />
+          </Button>
+        </Dropdown>,
+      ]}
+    />
+  );
+};
\ No newline at end of file
diff --git a/zy-asrs-flow/src/pages/system/user/index.jsx b/zy-asrs-flow/src/pages/system/user/index.jsx
index 0cb63f3..096a38a 100644
--- a/zy-asrs-flow/src/pages/system/user/index.jsx
+++ b/zy-asrs-flow/src/pages/system/user/index.jsx
@@ -1,7 +1,177 @@
-import React from 'react';
+import React, { useState } from 'react';
 import {
     PageContainer,
 } from '@ant-design/pro-components';
+import { EllipsisOutlined, SearchOutlined } from '@ant-design/icons';
+import { ProTable, TableDropdown } from '@ant-design/pro-components';
+import { Button, Dropdown, Input } from 'antd';
+
+const valueEnum = {
+    0: 'close',
+    1: 'running',
+    2: 'online',
+    3: 'error',
+};
+
+const tableListDataSource = [];
+
+const creators = ['浠樺皬灏�', '鏇蹭附涓�', '鏋椾笢涓�', '闄堝竻甯�', '鍏兼煇鏌�'];
+
+for (let i = 0; i < 25; i += 1) {
+    tableListDataSource.push({
+        key: i,
+        name: 'AppName',
+        containers: Math.floor(Math.random() * 20),
+        creator: creators[Math.floor(Math.random() * creators.length)],
+        status: valueEnum[((Math.floor(Math.random() * 10) % 4) + '')],
+        createdAt: Date.now() - Math.floor(Math.random() * 2000),
+        money: Math.floor(Math.random() * 2000) * i,
+        progress: Math.ceil(Math.random() * 100) + 1,
+        memo:
+            i % 2 === 1
+                ? '寰堥暱寰堥暱寰堥暱寰堥暱寰堥暱寰堥暱寰堥暱鐨勬枃瀛楄灞曠ず浣嗘槸瑕佺暀涓嬪熬宸�'
+                : '绠�鐭娉ㄦ枃妗�',
+    });
+}
+
+const columns = [
+    {
+        title: '鎺掑簭',
+        dataIndex: 'index',
+        valueType: 'indexBorder',
+        width: 48,
+    },
+    {
+        title: '搴旂敤鍚嶇О',
+        dataIndex: 'name',
+        render: (_) => <a>{_}</a>,
+        // 鑷畾涔夌瓫閫夐」鍔熻兘鍏蜂綋瀹炵幇璇峰弬鑰� https://ant.design/components/table-cn/#components-table-demo-custom-filter-panel
+        filterDropdown: () => (
+            <div style={{ padding: 8 }}>
+                <Input style={{ width: 188, marginBlockEnd: 8, display: 'block' }} />
+            </div>
+        ),
+        filterIcon: (filtered) => (
+            <SearchOutlined style={{ color: filtered ? '#1890ff' : undefined }} />
+        ),
+    },
+    {
+        title: '鍒涘缓鑰�',
+        dataIndex: 'creator',
+        valueEnum: {
+            all: { text: '鍏ㄩ儴' },
+            浠樺皬灏�: { text: '浠樺皬灏�' },
+            鏇蹭附涓�: { text: '鏇蹭附涓�' },
+            鏋椾笢涓�: { text: '鏋椾笢涓�' },
+            闄堝竻甯�: { text: '闄堝竻甯�' },
+            鍏兼煇鏌�: { text: '鍏兼煇鏌�' },
+        },
+    },
+    {
+        title: '鐘舵��',
+        dataIndex: 'status',
+        initialValue: 'all',
+        filters: true,
+        onFilter: true,
+        valueEnum: {
+            all: { text: '鍏ㄩ儴', status: 'Default' },
+            close: { text: '鍏抽棴', status: 'Default' },
+            running: { text: '杩愯涓�', status: 'Processing' },
+            online: { text: '宸蹭笂绾�', status: 'Success' },
+            error: { text: '寮傚父', status: 'Error' },
+        },
+    },
+    {
+        title: '澶囨敞',
+        dataIndex: 'memo',
+        ellipsis: true,
+        copyable: true,
+    },
+    {
+        title: '鎿嶄綔',
+        width: 180,
+        key: 'option',
+        valueType: 'option',
+        render: () => [
+            <a key="link">閾捐矾</a>,
+            <a key="link2">鎶ヨ</a>,
+            <a key="link3">鐩戞帶</a>,
+            <TableDropdown
+                key="actionGroup"
+                menus={[
+                    { key: 'copy', name: '澶嶅埗' },
+                    { key: 'delete', name: '鍒犻櫎' },
+                ]}
+            />,
+        ],
+    },
+];
+
+const App = () => {
+    return (
+        <>
+            <PageContainer>
+                <ProTable
+                    columns={columns}
+                    request={(params, sorter, filter) => {
+                        // 琛ㄥ崟鎼滅储椤逛細浠� params 浼犲叆锛屼紶閫掔粰鍚庣鎺ュ彛銆�
+                        console.log(params, sorter, filter);
+                        return Promise.resolve({
+                            data: tableListDataSource,
+                            success: true,
+                        });
+                    }}
+                    rowKey="key"
+                    pagination={{
+                        showQuickJumper: true,
+                    }}
+                    search={{
+                        layout: 'vertical',
+                        defaultCollapsed: false,
+                    }}
+                    dateFormatter="string"
+                    toolbar={{
+                        title: '楂樼骇琛ㄦ牸',
+                        tooltip: '杩欐槸涓�涓爣棰樻彁绀�',
+                    }}
+                    toolBarRender={() => [
+                        <Button key="danger" danger>
+                            鍗遍櫓鎸夐挳
+                        </Button>,
+                        <Button key="show">鏌ョ湅鏃ュ織</Button>,
+                        <Button type="primary" key="primary">
+                            鍒涘缓搴旂敤
+                        </Button>,
+
+                        <Dropdown
+                            key="menu"
+                            menu={{
+                                items: [
+                                    {
+                                        label: '1st item',
+                                        key: '1',
+                                    },
+                                    {
+                                        label: '2nd item',
+                                        key: '2',
+                                    },
+                                    {
+                                        label: '3rd item',
+                                        key: '3',
+                                    },
+                                ],
+                            }}
+                        >
+                            <Button>
+                                <EllipsisOutlined />
+                            </Button>
+                        </Dropdown>,
+                    ]}
+                />
+            </PageContainer>
+        </>
+    );
+};
 
 const User = () => {
     return (
@@ -13,4 +183,4 @@
     )
 }
 
-export default User;
+export default App;
diff --git a/zy-asrs-flow/tsconfig.json b/zy-asrs-flow/tsconfig.json
index a3c2def..fa986e1 100644
--- a/zy-asrs-flow/tsconfig.json
+++ b/zy-asrs-flow/tsconfig.json
@@ -19,5 +19,5 @@
       "@@test/*": ["./src/.umi-test/*"]
     }
   },
-  "include": ["./**/*.d.ts", "./**/*.ts", "./**/*.tsx", "src/app.tsx", "src/utils/icon-util.js", "src/pages/User/Login/index1.jsx", "src/components/Footer/index.jsx", "src/components/HeaderDropdown/index.jsx"]
+  "include": ["./**/*.d.ts", "./**/*.ts", "./**/*.tsx", "src/app.tsx", "src/utils/icon-util.js", "src/pages/User/Login/index1.jsx", "src/components/Footer/index.jsx", "src/components/HeaderDropdown/index.jsx", "src/pages/system/host/components/UpdateForm.jsx", "src/pages/system/host/index.jsx"]
 }
diff --git a/zy-asrs-wcs/src/main/resources/application.yml b/zy-asrs-wcs/src/main/resources/application.yml
index 9c8b120..2ad95fa 100644
--- a/zy-asrs-wcs/src/main/resources/application.yml
+++ b/zy-asrs-wcs/src/main/resources/application.yml
@@ -9,8 +9,11 @@
   jmx:
     enabled: false
   datasource:
+    hikari:
+      validation-timeout: 3000
+      connection-test-query: select 1
     driver-class-name: com.mysql.cj.jdbc.Driver
-    url: jdbc:mysql://47.96.1.146:3306/asrs?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai
+    url: jdbc:mysql://127.0.0.1:3306/asrs?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai
     username: root
     password: xltys1995
 #    driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver

--
Gitblit v1.9.1