13404089107
2 天以前 025c4c6e32a1c06ea604a9f2b67c4b8cbc29ce2c
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);
                    }}
                  >