From ac4341ea6b66ae02427d39d35f41d42d78b2eb2e Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期五, 14 二月 2025 10:08:32 +0800
Subject: [PATCH] #

---
 zy-asrs-flow/src/pages/system/userLogin/index.jsx |  214 ++++++++++++++---------------------------------------
 1 files changed, 57 insertions(+), 157 deletions(-)

diff --git a/zy-asrs-flow/src/pages/system/userLogin/index.jsx b/zy-asrs-flow/src/pages/system/userLogin/index.jsx
index 39266d0..15e1931 100644
--- a/zy-asrs-flow/src/pages/system/userLogin/index.jsx
+++ b/zy-asrs-flow/src/pages/system/userLogin/index.jsx
@@ -1,85 +1,50 @@
 
 import React, { useState, useRef, useEffect } from 'react';
-import { Button, message, Modal } from 'antd';
+import { Button, message, Modal, Tag } from 'antd';
 import {
     FooterToolbar,
     PageContainer,
     ProTable,
     LightFilter,
 } from '@ant-design/pro-components';
+import { FormattedMessage, useIntl } from '@umijs/max';
 import { PlusOutlined, ExportOutlined } from '@ant-design/icons';
 import Http from '@/utils/http';
 import Edit from './components/edit'
 import { TextFilter, SelectFilter, DatetimeRangeFilter, LinkFilter } from '@/components/TableSearch'
+import { repairBug } from '@/utils/common-util';
 
-const handleSave = async (val) => {
-    const hide = message.loading('姝e湪娣诲姞');
-    try {
-        const resp = await Http.doPost('api/userLogin/save', val);
-        if (resp.code === 200) {
-            message.success('娣诲姞鎴愬姛');
-            return true;
-        } else {
-            message.error(resp.msg);
-            return false;
-        }
-    } catch (error) {
-        message.error('娣诲姞澶辫触璇烽噸璇曪紒');
-        return false;
-    } finally {
-        hide();
-    }
+const TABLE_KEY = "pro-table-userLogin";
+
+const typeMap = {
+    0: {
+        color: '#87d068',
+        text: '鐧诲綍鎴愬姛',
+    },
+    1: {
+        color: '#f50',
+        text: '鐧诲綍澶辫触',
+    },
+    2: {
+        color: '',
+        text: '閫�鍑虹櫥褰�',
+    },
+    3: {
+        color: '#3b5999',
+        text: '缁token',
+    },
 };
 
-const handleUpdate = async (val) => {
-    const hide = message.loading('姝e湪鏇存柊');
-    try {
-        const resp = await Http.doPost('api/userLogin/update', val);
-        if (resp.code === 200) {
-            message.success('鏇存柊鎴愬姛');
-            return true;
-        } else {
-            message.error(resp.msg);
-            return false;
-        }
-    } catch (error) {
-        message.error('閰嶇疆澶辫触璇烽噸璇曪紒');
-        return false;
-    } finally {
-        hide();
-    }
-};
-
-const handleRemove = async (rows) => {
-    if (!rows) return true;
-    const hide = message.loading('姝e湪鍒犻櫎');
-    try {
-        const resp = await Http.doPost('api/userLogin/remove/' + rows.map((row) => row.id).join(','));
-        if (resp.code === 200) {
-            message.success('鍒犻櫎鎴愬姛');
-            return true;
-        } else {
-            message.error(resp.msg);
-            return false;
-        }
-    } catch (error) {
-        message.error('鍒犻櫎澶辫触锛岃閲嶈瘯');
-        return false;
-    } finally {
-        hide();
-    }
-};
-
-const handleExport = async () => {
-    const hide = message.loading('姝e湪瀵煎嚭');
+const handleExport = async (intl) => {
+    const hide = message.loading(intl.formatMessage({ id: 'page.exporting', defaultMessage: '姝e湪瀵煎嚭' }));
     try {
         const resp = await Http.doPostBlob('api/userLogin/export');
         const blob = new Blob([resp], { type: 'application/vnd.ms-excel' });
         window.location.href = window.URL.createObjectURL(blob);
-        message.success('瀵煎嚭鎴愬姛');
+        message.success(intl.formatMessage({ id: 'page.export.success', defaultMessage: '瀵煎嚭鎴愬姛' }));
         return true;
     } catch (error) {
-        message.error('瀵煎嚭澶辫触锛岃閲嶈瘯');
+        message.error(intl.formatMessage({ id: 'page.export.fail', defaultMessage: '瀵煎嚭澶辫触锛岃閲嶈瘯' }));
         return false;
     } finally {
         hide();
@@ -88,6 +53,7 @@
 
 
 const Main = () => {
+    const intl = useIntl();
     const formTableRef = useRef();
     const actionRef = useRef();
     const [selectedRows, setSelectedRows] = useState([]);
@@ -101,7 +67,10 @@
 
     const columns = [
         {
-            title: 'No',
+            title: intl.formatMessage({
+                id: 'page.table.no',
+                defaultMessage: 'No'
+            }),
             dataIndex: 'index',
             valueType: 'indexBorder',
             width: 48,
@@ -125,6 +94,7 @@
             dataIndex: 'token',
             valueType: 'text',
             hidden: false,
+            ellipsis: true,
             width: 140,
             copyable: true,
             filterDropdown: (props) => <TextFilter
@@ -153,12 +123,22 @@
             valueType: 'text',
             hidden: false,
             width: 140,
-            filterDropdown: (props) => <TextFilter
+            filterDropdown: (props) => <SelectFilter
                 name='type'
                 {...props}
                 actionRef={actionRef}
                 setSearchParam={setSearchParam}
+                data={[
+                    { label: '鐧诲綍鎴愬姛', value: 0 },
+                    { label: '鐧诲綍澶辫触', value: 1 },
+                    { label: '閫�鍑虹櫥褰�', value: 2 },
+                    { label: '缁token', value: 3 },
+                ]}
             />,
+            render: (_, record) => {
+                const type = typeMap[record.type]
+                return <Tag color={type.color}>{type.text}</Tag>
+            },
         },
         {
             title: '娣诲姞鏃堕棿',
@@ -204,39 +184,9 @@
             title: '鎿嶄綔',
             dataIndex: 'option',
             width: 140,
+            hidden: true,
             valueType: 'option',
             render: (_, record) => [
-                <Button
-                    type="link"
-                    key="edit"
-                    onClick={() => {
-                        setModalVisible(true);
-                        setCurrentRow(record);
-                    }}
-                >
-                    缂栬緫
-                </Button>,
-                <Button
-                    type="link"
-                    danger
-                    key="batchRemove"
-                    onClick={async () => {
-                        Modal.confirm({
-                            title: '鍒犻櫎',
-                            content: '纭畾鍒犻櫎璇ラ」鍚楋紵',
-                            onOk: async () => {
-                                const success = await handleRemove([record]);
-                                if (success) {
-                                    if (actionRef.current) {
-                                        actionRef.current.reload();
-                                    }
-                                }
-                            },
-                        });
-                    }}
-                >
-                    鍒犻櫎
-                </Button>,
             ],
         },
     ];
@@ -257,8 +207,11 @@
                     cardBordered
                     scroll={{ x: 1300 }}
                     dateFormatter="string"
-                    pagination={{ pageSize: 20 }}
+                    pagination={{ pageSize: 16 }}
                     search={false}
+                    style={{
+                        marginBottom: '20px'
+                    }}
                     toolbar={{
                         search: {
                             onSearch: (value) => {
@@ -278,23 +231,13 @@
                         ),
                         actions: [
                             <Button
-                                type="primary"
-                                key="save"
-                                onClick={async () => {
-                                    setModalVisible(true)
-                                }}
-                            >
-                                <PlusOutlined />
-                                娣诲姞
-                            </Button>,
-                            <Button
                                 key="export"
                                 onClick={async () => {
-                                    handleExport();
+                                    handleExport(intl);
                                 }}
                             >
                                 <ExportOutlined />
-                                瀵煎嚭
+                                <FormattedMessage id='page.export' defaultMessage='瀵煎嚭' />
                             </Button>,
                         ],
                     }}
@@ -307,15 +250,12 @@
                             }
                         })
                     }
-                    rowSelection={{
-                        onChange: (ids, rows) => {
-                            setSelectedRows(rows);
-                        }
-                    }}
+                    rowSelection={undefined}
                     columnsState={{
-                        persistenceKey: 'pro-table-userLogin',
+                        persistenceKey: TABLE_KEY,
                         persistenceType: 'localStorage',
                         defaultValue: {
+                            system: { show: repairBug(TABLE_KEY, 'system', false) },
                             option: { fixed: 'right', disable: true },
                         },
                         onChange(value) {
@@ -323,38 +263,6 @@
                     }}
                 />
             </div>
-
-            {selectedRows?.length > 0 && (
-                <FooterToolbar
-                    extra={
-                        <div>
-                            宸查�夋嫨
-                            <a style={{ fontWeight: 600 }}>{selectedRows.length}</a>
-                            椤�
-                        </div>
-                    }
-                >
-                    <Button
-                        key="remove"
-                        danger
-                        onClick={async () => {
-                            Modal.confirm({
-                                title: '鍒犻櫎',
-                                content: '纭畾鍒犻櫎璇ラ」鍚楋紵',
-                                onOk: async () => {
-                                    const success = await handleRemove(selectedRows);
-                                    if (success) {
-                                        setSelectedRows([]);
-                                        actionRef.current?.reloadAndRest?.();
-                                    }
-                                },
-                            });
-                        }}
-                    >
-                        鎵归噺鍒犻櫎
-                    </Button>
-                </FooterToolbar>
-            )}
 
             <Edit
                 open={modalVisible}
@@ -366,18 +274,10 @@
                     }
                 }
                 onSubmit={async (values) => {
-                    let ok = false;
-                    if (values.id) {
-                        ok = await handleUpdate({ ...values })
-                    } else {
-                        ok = await handleSave({ ...values })
-                    }
-                    if (ok) {
-                        setModalVisible(false);
-                        setCurrentRow(undefined);
-                        if (actionRef.current) {
-                            actionRef.current.reload();
-                        }
+                    setModalVisible(false);
+                    setCurrentRow(undefined);
+                    if (actionRef.current) {
+                        actionRef.current.reload();
                     }
                 }
                 }

--
Gitblit v1.9.1