From 025c4c6e32a1c06ea604a9f2b67c4b8cbc29ce2c Mon Sep 17 00:00:00 2001
From: 13404089107 <puwei@sinata.cn>
Date: 星期二, 20 五月 2025 21:33:05 +0800
Subject: [PATCH] 新增迭代

---
 management/src/pages/setting/user/index.jsx |  181 +++++++++++++++++++++++++-------------------
 1 files changed, 103 insertions(+), 78 deletions(-)

diff --git a/management/src/pages/setting/user/index.jsx b/management/src/pages/setting/user/index.jsx
index d159be5..c0ab038 100644
--- a/management/src/pages/setting/user/index.jsx
+++ b/management/src/pages/setting/user/index.jsx
@@ -1,7 +1,7 @@
 import { buildProTableDataSource, sendRequest, showDelConfirm, showConfirm } from '@/utils/antdUtils';
 import { DeleteOutlined, EditOutlined, PlusOutlined } from '@ant-design/icons';
-import { PageContainer, ProFormText, ProTable, QueryFilter } from '@ant-design/pro-components';
-import { Button, Cascader, Col, Menu, Row, Select, Space } from 'antd';
+import { PageContainer, ProFormText, ProTable, QueryFilter, ProFormSelect } from '@ant-design/pro-components';
+import { Button, Cascader, Col, Menu, Row, Select, Space, Form } from 'antd';
 import { useEffect, useRef, useState } from 'react';
 import { Access, useAccess } from 'umi';
 import AddAndEdit from './components/addAndEdit';
@@ -21,6 +21,7 @@
 } from './service';
 
 const Role = () => {
+  const [form] = Form.useForm();
   const actionRef = useRef();
   const addViewRef = useRef();
   const addViewRef1 = useRef();
@@ -48,7 +49,7 @@
         }}
       >
         <span>{item.name}</span>
-        <div>
+        {/* <div>
           {item.tier < 4 && (
             <Access accessible={access['/system_setting/unit_management/add']}>
               <PlusOutlined
@@ -82,31 +83,40 @@
               }}
             />
           </Access>
-        </div>
+        </div> */}
       </div >
     );
   };
-  const renderMenuItems = (items) => {
+  const renderMenuItems = (items, level = 0) => {
     return items.map((item) => {
       if (item.children && item.children.length > 0) {
         return (
           <SubMenu
             key={item.key}
             title={node(item)}
-            onTitleClick={(item) => {
-              setUnitId(item.key);
-              actionRef.current.reload();
+            onTitleClick={(e) => {
+              if (e && e.domEvent) {
+                e.domEvent.stopPropagation();
+              }
+              setUnitId(item.id);
+              const values = form.getFieldsValue();
+              actionRef.current.reload(values);
             }}
           >
-            {renderMenuItems(item.children)}
+            {renderMenuItems(item.children, level + 1)}
           </SubMenu>
         );
       }
       return (
         <Menu.Item
-          onClick={(item) => {
-            setUnitId(item.key);
-            actionRef.current.reload();
+          onClick={(e) => {
+            if (e && e.domEvent) {
+              e.domEvent.stopPropagation();
+            }
+            const itemId = item.id || item.key;
+            setUnitId(itemId);
+            const values = form.getFieldsValue();
+            actionRef.current.reload(values);
           }}
           key={item.key}
         >
@@ -120,6 +130,8 @@
       if (res.code == 200 && res.data) {
         const traverseItems = (items) => {
           return items.map((item) => {
+            if (!item.id) {
+            }
             item.key = item.id;
             item.title = '1';
             if (item.child && item.child.length > 0) {
@@ -128,7 +140,8 @@
             return item;
           });
         };
-        setItems(traverseItems(res.data));
+        const processedItems = traverseItems(res.data);
+        setItems(processedItems);
       }
     });
   };
@@ -141,50 +154,50 @@
       title: '联系方式',
       dataIndex: 'phone',
     },
-    {
-      title: '所在单位',
-      dataIndex: 'departmentName',
-      hideInSearch: true,
-      renderFormItem: () => {
-        return (
-          <Cascader
-            options={items}
-            fieldNames={{ value: 'key', label: 'name' }}
-            placeholder="请选择"
-            displayRender={(label) => label[label.length - 1]}
-            changeOnSelect={true}
-          />
-        );
-      },
-    },
-    {
-      hideInTable: true,
-      title: '所在单位',
-      dataIndex: 'departmentId',
-      renderFormItem: () => {
-        return (
-          <Cascader
-            options={items}
-            fieldNames={{ value: 'key', label: 'name' }}
-            placeholder="请选择"
-            displayRender={(label) => label[label.length - 1]}
-            changeOnSelect={true}
-          />
-        );
-      },
-    },
+    // {
+    //   title: '所在单位',
+    //   dataIndex: 'departmentName',
+    //   hideInSearch: true,
+    //   renderFormItem: () => {
+    //     return (
+    //       <Cascader
+    //         options={items}
+    //         fieldNames={{ value: 'key', label: 'name' }}
+    //         placeholder="请选择"
+    //         displayRender={(label) => label[label.length - 1]}
+    //         changeOnSelect={true}
+    //       />
+    //     );
+    //   },
+    // },
+    // {
+    //   hideInTable: true,
+    //   title: '所属权限',
+    //   dataIndex: 'departmentId',
+    //   renderFormItem: () => {
+    //     return (
+    //       <Cascader
+    //         options={items}
+    //         fieldNames={{ value: 'key', label: 'name' }}
+    //         placeholder="请选择"
+    //         displayRender={(label) => label[label.length - 1]}
+    //         changeOnSelect={true}
+    //       />
+    //     );
+    //   },
+    // },
     {
       title: '所属职位',
       dataIndex: 'systemPostName',
       hideInSearch: true,
     },
     {
-      title: '所属角色',
+      title: '后台权限',
       dataIndex: 'systemRoleName',
       hideInSearch: true,
     },
     {
-      title: '所属角色',
+      title: '所属权限',
       dataIndex: 'systemRoleId',
       hideInTable: true,
       renderFormItem: () => {
@@ -201,31 +214,24 @@
       },
     },
     {
-      title: '账号层级',
+      title: '账号所属层级',
       dataIndex: 'accountLevel',
       // (1=市级账号,2=区县账号,3=街道账号,4=社区账号)
       render: (text, record) => {
-        let role = '';
-        switch (record.accountLevel) {
-          case 1:
-            role = '市';
-            break;
-          case 2:
-            role = '区县';
-            break;
-          case 3:
-            role = '街道';
-            break;
-          case 4:
-            role = '社区';
-            break;
-          case 5:
-            role = '党员';
-            break;
-          default:
-            role = '';
-        }
-        return role;
+        record.list.length>0&&record.list.map(item=>{
+          item.str = ''
+          if(item.level==1){
+           item.str = '市'
+          }else if(item.level==2){
+           item.str = '区县' + '/' + item.districts
+          }else if(item.level==3){
+            item.str = '街道' + '/' + item.districts + '/' + item.street
+          }else{
+            item.str = '社区' + '/' + item.districts + '/' + item.street + '/' + item.community
+          }
+          return item.str;
+        })
+        return record.list.map(item=>item.str).join('、');
       },
       valueEnum: {
         1: '市',
@@ -265,7 +271,7 @@
               <Access accessible={access['/system_setting/people_management/edit']}>
                 <a
                   onClick={() => {
-                    addViewRef.current.refreshData({ ...record, type: 'edit' },items);
+                    addViewRef.current.refreshData({ ...record, type: 'edit' }, items);
                     handleModalVisibles(true);
                   }}
                 >
@@ -292,7 +298,7 @@
             <Access accessible={access['/system_setting/people_management/detail']}>
               <a
                 onClick={() => {
-                  addViewRef.current.refreshData({ ...record, type: 'detail' },items);
+                  addViewRef.current.refreshData({ ...record, type: 'detail' }, items);
                   handleModalVisibles(true);
                 }}
               >
@@ -302,7 +308,7 @@
             <Access accessible={access['/system_setting/people_management/freeze']}>
               <a
                 onClick={() => {
-                  showConfirm(`确认${record.status === 1 ? '冻结' : '解冻'}该人员吗?`,'', async () => {
+                  showConfirm(`确认${record.status === 1 ? '冻结' : '解冻'}该人员吗?`, '', async () => {
                     let status = await sendRequest(
                       record.status === 1 ? freezeApi : unfreezeApi,
                       record.id,
@@ -331,6 +337,8 @@
     >
       <div style={{ background: '#fff' }}>
         <QueryFilter
+          form={form}
+          labelWidth={100}
           onReset={(values) => {
             fetchUnit(values);
             setUnitId('');
@@ -342,14 +350,21 @@
             actionRef.current.reload();
           }}
         >
-          <ProFormText name="name" label="单位名称" />
+          <ProFormText name="name" label="组织结构名称" />
+          <ProFormSelect name="type" label="筛选维度" options={[{
+            label: '当前组织结构',
+            value: 1,
+          }, {
+            label: '当前及下级组织结构',
+            value: 2,
+          }]} />
         </QueryFilter>
       </div>
       <Row style={{ marginTop: 20, background: '#fff' }}>
         <Col span={4}>
           <Space style={{ margin: '10px 0' }}>
-            <span style={{ margin: '0 27px' }}>单位管理</span>
-            <Button
+            <span style={{ margin: '0 27px' }}>组织结构</span>
+            {/* <Button
               type="primary"
               onClick={() => {
                 addViewRef1.current.refreshData({});
@@ -357,10 +372,17 @@
               }}
             >
               添加
-            </Button>
+            </Button> */}
           </Space>
 
-          <Menu mode="inline">{renderMenuItems(items)}</Menu>
+          <Menu 
+            mode="inline"
+            onClick={({ key, domEvent }) => {
+              domEvent.stopPropagation();
+            }}
+          >
+            {renderMenuItems(items)}
+          </Menu>
         </Col>
         <Col span={20} style={{ minHeight: 650 }}>
           <ProTable
@@ -385,6 +407,9 @@
               if (params.departmentId) {
                 obj.departmentId = params.departmentId[params.departmentId.length - 1];
               }
+              if (form.getFieldValue('type')) {
+                obj.type = form.getFieldValue('type');
+              }
               return buildProTableDataSource(getList, obj);
             }}
             toolBarRender={(action, selectRows) => [
@@ -393,7 +418,7 @@
                   <Button
                     type="primary"
                     onClick={() => {
-                      addViewRef.current.refreshData({ type: 'add', unitId : unitId  },items);
+                      addViewRef.current.refreshData({ type: 'add', unitId: unitId }, items);
                       handleModalVisibles(true);
                     }}
                   >

--
Gitblit v1.7.1