瀏覽代碼

数据权限

wyq 3 年之前
父節點
當前提交
0a976a8b73

+ 7 - 1
src/api/request.js

@@ -34,8 +34,14 @@ const request = {
 
     //数据权限相关接口
     getDataAuthPage: '/security-center/dataAuthManage/getDataAuthPage',//数据权限列表
-    addAuth: '/security-center/dataAuthManage/addAuth',//禁用
+    addAuth: '/security-center/dataAuthManage/addAuth',//新增数据权限
     getDoctorPage: '/security-center/dataAuthManage/getDoctorPage',//医生列表
+    getDataAuthById: '/security-center/dataAuthManage/getDataAuthById',//查看数据权限
+    disableAuth: '/security-center/dataAuthManage/disableAuth',//禁用启用
+    deleteAuth: '/security-center/dataAuthManage/deleteAuth',//删除
+    updateAuth: '/security-center/dataAuthManage/updateAuth',//修改
+
+
 
     //病区管理
     getDeptList: '/security-center/regionManage/getDeptList',//关联科室

+ 4 - 1
src/common/common.less

@@ -23,7 +23,10 @@ body{
 .ant-form-item-label > label{
   color: #000;
 }
-
+.ant-table-wrapper{
+  height: calc(100vh - 240px);
+  overflow-y: auto;
+}
 .wrapper{
   min-width: 1214px;
   padding: 15px 30px;

+ 169 - 171
src/components/DataManager/AddData.js

@@ -11,35 +11,37 @@ import DoctorList from "./doctorList"
 import Item from 'antd/lib/list/Item';
 const { post, api, xPost } = apiObj;
 const { SHOW_PARENT } = TreeSelect;
-const { unique, organizationData } = utils;
+const { organizationData } = utils;
 const { Step } = Steps;
 const { TabPane } = Tabs;
 function AddData(props) {
+  const { save, formData, type, val, tag } = useContext(DataContext);
   useEffect(() => {
     getCreateRoles()
     getHospitalTree()
     getOrgList()
+    setValue(val)
+
   }, []);
-  const { back } = props;
+  const { back, } = props;
   const [form] = Form.useForm();
   const [value, setValue] = useState([]);
   const [key, setKey] = useState();
   const [index, setIndex] = useState('0');
   const [treeRloe, setTreeRloe] = useState([]);
-  const [tags, setTags] = useState([[]]);
+  const [tags, setTags] = useState(tag);
   const [treeData, setTreeData] = useState([]);
   const [selectedKeys, setSelectedKeys] = useState([]);
   const [orgList, setOrgList] = useState([]);
   const [selectedRowKeys, setSelectedRowKeys] = useState([]);
   const [autoExpandParent, setAutoExpandParent] = useState(true);
-  const { save, detail } = useContext(DataContext);
+
   const staticInfo = useSelector(state => {
     return state.staticInfo;
   });
+
   const { dataList } = staticInfo;
-  const initialValues = detail || {
-    status: '1',
-  };
+  const initialValues = formData
   const validateMessages = {
     required: '${label}不能为空',
   };
@@ -69,11 +71,11 @@ function AddData(props) {
   //数据转换为树形结构所需字段
   function structureTreeData(arr) {
     arr.forEach(item => {
-      item.key = item.hospitalId + '-' + item.hospitalName 
+      item.key = item.hospitalId + '-' + item.hospitalName
       item.title = item.hospitalName
       if (!item.children && item.depts) {
         item.depts.forEach(it => {
-          it.key = item.parentId + '-' + it.deptId + '-' + it.deptName
+          it.key = item.hospitalId + '-' + it.deptId + '-' + it.deptName
         })
         item.children = JSON.parse(JSON.stringify(item.depts).replaceAll(/deptName/g, 'title').replaceAll(/deptId/g, 'key'))
         return
@@ -107,10 +109,16 @@ function AddData(props) {
         const { software } = data;
         setOrgList(software);
         setKey(software[0].id)
-        software.forEach((it, index) => {
-          tags[index] = []
-          setTags([...tags])
-        })
+        if (type == 3) {
+          setTags([...tag])
+        } else {
+          software.forEach((it, index) => {
+            tags[index] = []
+            setTags([...tags])
+          })
+        }
+
+
       } else {
         message.warning(res.data.msg || '获取医院列表失败');
       }
@@ -123,16 +131,24 @@ function AddData(props) {
     let val = value
     const formData = form.getFieldsValue();
     let arr = formData.softwareVOS;
-    arr[i].id = key
+    arr[index].id = key
+    arr[index].softwareMenuIds = []
+    arr[index].dataAuthDetails = []
+    arr[index].selectedRowKeys = []
+    if (e.target.value != 7) {
+      arr[index].dataAuthDetails = [{
+        dataType: e.target.value
+      }]
+    }
     tags[index] = []
-    setTags([...tags])
+    val[i] = e.target.value
     selectedRowKeys[index] = []
-    setSelectedRowKeys([...selectedRowKeys])
     form.setFieldsValue({
       softwareVOS: arr
     });
-    val[i] = e.target.value
+    setTags([...tags])
     setValue([...val])
+    setSelectedRowKeys([...selectedRowKeys])
   };
   // 删除选择标签
   function delTag(type, id, i) {
@@ -145,13 +161,13 @@ function AddData(props) {
       })
     } else if (type == 1) {
       formData.softwareVOS[index].softwareMenuIds.forEach((item, inx) => {
-        if (item.split('-')[1] == id) {
+        if (item.split('-')[0] == id) {
           formData.softwareVOS[index].softwareMenuIds.splice(inx)
         }
       })
     } else if (type == 2) {
       formData.softwareVOS[index].softwareMenuIds.forEach((item, inx) => {
-        if (item.split('-')[2] == id) {
+        if (item.split('-')[1] == id) {
           formData.softwareVOS[index].softwareMenuIds.splice(inx)
         }
       })
@@ -161,18 +177,39 @@ function AddData(props) {
     });
     tags[index].splice(i)
     setTags([...tags])
+    console.log(form.getFieldsValue())
   }
   function callback(key) {
     setKey(key.split('-')[0])
     setIndex(key.split('-')[1])
   }
-  function callbacks(keys) {
+  function treeChange(value) {
+    const formData = form.getFieldsValue();
+    let arr = formData.softwareVOS;
+    arr[index].roles = value
+    form.setFieldsValue({
+      softwareVOS: arr
+    });
+    console.log(form.getFieldsValue())
+  }
+  // 去重
+  function unique(arr) {
+    let result = {};
+    let finalResult = [];
+    for (let i = 0; i < arr.length; i++) {
+      result[arr[i].detailId] = arr[i];
+    }
 
+    for (let item in result) {
+      finalResult.push(result[item]);
+    }
+    return finalResult;
   }
   //医生选中
   function checkDoctEvent(selectedRowKeys) {
+    console.log(tags)
     const formData = form.getFieldsValue();
-    let arr = []
+    let arr = formData.softwareVOS[index].dataAuthDetails ? formData.softwareVOS[index].dataAuthDetails : []
     selectedRowKeys.forEach(it => {
       arr.push({
         dataType: 7,
@@ -180,34 +217,37 @@ function AddData(props) {
         detailType: 3
       })
     });
-    formData.softwareVOS[index].dataAuthDetails = arr
+
+    formData.softwareVOS[index].dataAuthDetails = unique(arr)
     formData.softwareVOS[index].selectedRowKeys = selectedRowKeys
     form.setFieldsValue({
       softwareVOS: formData.softwareVOS
     });
     getTags()
+    console.log(form.getFieldsValue())
   }
   //树形结构选中事件
   function checkTreeEvent(idsArr) {
     const formData = form.getFieldsValue();
-    let arr = []
+    let arr = formData.softwareVOS[index].dataAuthDetails ? formData.softwareVOS[index].dataAuthDetails : []
     let result = idsArr.find(ele => ele.split('-').length == 2)
     if (result) {
       arr.push({
         dataType: 7,
-        detailId: result.split('1')[0],
+        detailId: result.split('-')[0],
         detailType: 1
       })
     } else {
       idsArr.forEach(it => {
+        console.log(it)
         arr.push({
           dataType: 7,
-          detailId: it.split('1')[2],
+          detailId: it.split('-')[1],
           detailType: 2
         })
       })
     }
-    formData.softwareVOS[index].dataAuthDetails = arr
+    formData.softwareVOS[index].dataAuthDetails = unique(arr)
     formData.softwareVOS[index].softwareMenuIds = idsArr
     form.setFieldsValue({
       softwareVOS: formData.softwareVOS
@@ -258,180 +298,138 @@ function AddData(props) {
     <>
       <Breadcrumb separator="">
         <Breadcrumb.Item><img className='back-icon' src={backIcon} onClick={back} alt="返回上一页" /></Breadcrumb.Item>
-        <Breadcrumb.Item>组织管理</Breadcrumb.Item>
+        <Breadcrumb.Item>数据权限</Breadcrumb.Item>
         <Breadcrumb.Separator />
-        <Breadcrumb.Item>新增子组织</Breadcrumb.Item>
+        <Breadcrumb.Item>{type == 3 ? '修改' : '新增'}数据权限</Breadcrumb.Item>
       </Breadcrumb>
-      <Form labelCol={{ span: 4 }} wrapperCol={{ span: 18 }} form={form} name="nest-messages" onFinish={onFinish} initialValues={initialValues} validateMessages={validateMessages}>
-        <Form.Item name="name" label="数据权限名称" rules={[{ required: true }]}>
-          <Input placeholder="请填写数据权限名称" />
-        </Form.Item>
-        <Form.Item label="权限范围" required >
-          <Tabs type="card" onChange={callback} >
-            {
-              orgList.map((it, i) => {
-                return (
-                  <TabPane tab={it.name} key={it.id + "-" + i}>
-                    <Form.Item
-                      key={i}
-                      name={['softwareVOS', i, 'datatype']} noStyle>
-                      <Radio.Group onChange={e => { onChange(e, i) }} className="radio">
-                        <Space direction="vertical">
-                          {dataList.map((Item) => {
-                            return (
-                              <Radio key={i} value={Item.name}>{Item.val}</Radio>
-                            )
-                          })
-                          }
-                        </Space>
-                      </Radio.Group>
-                    </Form.Item>
-                    <Form.Item key={i + "a"} hidden={true} name={['softwareVOS', i, 'id']} noStyle>
-                      <Input />
-                    </Form.Item>
-                    <Form.Item key={i + "b"} hidden={true} name={['softwareVOS', i, 'dataAuthDetails']} noStyle>
-                      <Input />
-                    </Form.Item>
-                    <Form.Item key={i + "c"} style={{ display: value[index] == 7 && it.id == key ? 'block' : 'none' }}>
-                      <Card title="已选中" extra={<a href="#">More</a>} >
-                        {tags[index].map((tag, i) => {
-                          return (
-                            <Tag key={i} closable onClose={e => delTag(tag.type, tag.id, i)}>{tag.name}</Tag>
-                          );
-                        })}
-                      </Card>
-                    </Form.Item>
-                    <Form.Item key={i + "d"} style={{ display: value[index] == 7 && it.id == key ? 'block' : 'none' }}>
-                      <Tabs defaultActiveKey="0" onChange={callbacks} >
-                        <TabPane tab="可看医生" key="0">
-                          <Form.Item
-                            key={i}
-                            name={['softwareVOS', i, 'selectedRowKeys']}
-                          >
-                            <DoctorList checkeds={form.getFieldValue().softwareVOS ? form.getFieldValue().softwareVOS[i] : []} checkDoct={(selectedRowKeys) => checkDoctEvent(selectedRowKeys)} />
-                          </Form.Item>
-                        </TabPane>
-                        <TabPane tab="可看科室" key="1">
-                          <Form.Item
-                            key={i}
-                            name={['softwareVOS', i, 'softwareMenuIds']}
-                          >
-                            <MenuTree data={treeData} checkeds={form.getFieldValue().softwareVOS ? form.getFieldValue().softwareVOS[i] : []} checkEv={(checkedKeys, sourceIds) => checkTreeEvent(checkedKeys, sourceIds)} />
-                          </Form.Item>
-                        </TabPane>
-                      </Tabs>
-                    </Form.Item>
-                  </TabPane>
-                )
-              })
-            }
-          </Tabs>
-        </Form.Item>
+      <div className='form-center'>
 
-        {/* {value[index] == 7 ?
-          <Form.Item wrapperCol={{ offset: 3, span: 20 }} >
-            {
-              orgList.map((it, i) => {
-                return (
-                  <Form.Item
-                    key={i}
-                  >
-                    {
-                      it.id == key ?
+
+        <Form labelCol={{ span: 4 }} wrapperCol={{ span: 18 }} form={form} name="nest-messages" onFinish={onFinish} initialValues={initialValues} validateMessages={validateMessages}>
+          <Form.Item name="name" label="数据权限名称" rules={[{ required: true }]}>
+            <Input placeholder="请填写数据权限名称" />
+          </Form.Item>
+          <Form.Item label="权限范围" rules={[{ required: true }]} >
+            <Tabs type="card" onChange={callback}>
+              {
+                orgList.map((it, i) => {
+                  return (
+                    <TabPane tab={it.name} key={it.id + "-" + i}>
+                      <Form.Item
+                        key={i}
+                        name={['softwareVOS', i, 'datatype']} noStyle>
+                        <Radio.Group onChange={e => { onChange(e, i) }} className="radio">
+                          <Space direction="vertical">
+                            {dataList.map((Item) => {
+                              return (
+                                <Radio key={i} value={Item.name}>{Item.val}</Radio>
+                              )
+                            })
+                            }
+                          </Space>
+                        </Radio.Group>
+                      </Form.Item>
+                      <Form.Item key={i + "a"} hidden={true} name={['softwareVOS', i, 'id']} noStyle>
+                        <Input />
+                      </Form.Item>
+                      <Form.Item key={i + "b"} hidden={true} name={['softwareVOS', i, 'dataAuthDetails']} noStyle>
+                        <Input />
+                      </Form.Item>
+                      <Form.Item key={i + "c"} style={{ display: value[index] == 7 && it.id == key ? 'block' : 'none' }}>
                         <Card title="已选中" extra={<a href="#">More</a>} >
                           {tags[index].map((tag, i) => {
                             return (
-                              <Tag key={i} closable onClose={e => delTag(i)}>{tag}</Tag>
+                              <Tag key={i} closable onClose={e => delTag(tag.type, tag.id, i)}>{tag.name}</Tag>
                             );
                           })}
                         </Card>
-                        :
-                        null
-                    }
-                  </Form.Item>
-                )
-              })
-            }
-          </Form.Item>
-          :
-          null}
-
-        {value[index] == 7 ?
-          <Form.Item
-            wrapperCol={{ offset: 3, span: 20 }}
-          >
-            {
-              orgList.map((it, i) => {
-                return (
-                  <Form.Item
-                    key={i}
-                  >
-                    {
-                      it.id == key ?
-                        <Tabs defaultActiveKey="0" onChange={callbacks} >
+                      </Form.Item>
+                      <Form.Item key={i + "d"} style={{ display: value[index] == 7 && it.id == key ? 'block' : 'none' }}>
+                        <Tabs defaultActiveKey="0">
                           <TabPane tab="可看医生" key="0">
                             <Form.Item
                               key={i}
                               name={['softwareVOS', i, 'selectedRowKeys']}
                             >
-                            <DataContext.Provider value={{ data: selectedRowKey[index] }}>
-                              <DoctorList checkDoct={(selectedRowKeys) => checkDoctEvent(selectedRowKeys)} />
-                            </DataContext.Provider>
+                              <DoctorList checkeds={form.getFieldValue().softwareVOS ? form.getFieldValue().softwareVOS[i] : []} checkDoct={(selectedRowKeys) => checkDoctEvent(selectedRowKeys)} />
                             </Form.Item>
                           </TabPane>
                           <TabPane tab="可看科室" key="1">
                             <Form.Item
                               key={i}
                               name={['softwareVOS', i, 'softwareMenuIds']}
-                              valuePropName='checked'
-                              getValueFromEvent={(checked) => {
-                                console.log(321, checked)
-                                return [];
-                              }} noStyle>
-                              <MenuTree data={treeData} checkeds={form.getFieldValue().softwareVOS ? form.getFieldValue().softwareVOS[i] : []} checkEv={(checkedKeys, sourceIds) => checkTreeEvent(checkedKeys, sourceIds)} />
+                            >
+                              <MenuTree data={treeData} checkeds={form.getFieldValue().softwareVOS ? form.getFieldValue().softwareVOS[i] : []} checkEv={(checkedKeys) => checkTreeEvent(checkedKeys)} />
                             </Form.Item>
                           </TabPane>
                         </Tabs>
-                        :
-                        null
-                    }
+                      </Form.Item>
+                    </TabPane>
+                  )
+                })
+              }
+            </Tabs>
+          </Form.Item>
+          <Form.Item label="所属角色" required >
+            {
+              orgList.map((it, i) => {
+                return (
+                  <Form.Item
+                    style={{ display: i == index ? 'block' : 'none' }}
+                    key={i}
+                  >
+                    <Form.Item style={{ display: i == index ? 'block' : 'none' }} key={i + "b"} hidden={true} name={['softwareVOS', i, 'roles']} rules={[
+                      {
+                        required: true,
+                        message: '请选择所属角色',
+                      },
+                    ]}>
+                      <TreeSelect
+                        showSearch={false}
+                        treeData={treeRloe}
+                        onChange={treeChange}
+                        maxTagCount={1}
+                        treeCheckable
+                        showCheckedStrategy={SHOW_PARENT}
+                        placeholder="请选择角色"
+                        style={{ width: '100%' }}
+                      />
+                    </Form.Item>
+                    <Form.Item key={i + "a"} hidden={true} name={['softwareVOS', i, 'datatype']} noStyle>
+                      <Input />
+                    </Form.Item>
+                    <Form.Item key={i + "c"} hidden={true} name={['softwareVOS', i, 'id']} noStyle>
+                      <Input />
+                    </Form.Item>
+                    <Form.Item key={i + "d"} hidden={true} name={['softwareVOS', i, 'dataAuthDetails']} noStyle>
+                      <Input />
+                    </Form.Item>
+                    <Form.Item key={i + "e"} hidden={true} name={['softwareVOS', i, 'selectedRowKeys']} noStyle>
+                      <Input />
+                    </Form.Item>
+                    <Form.Item key={i + "f"} hidden={true} name={['softwareVOS', i, 'softwareMenuIds']} noStyle>
+                      <Input />
+                    </Form.Item>
                   </Form.Item>
                 )
               })
             }
-
           </Form.Item>
-          :
-          null} */}
-
-        <Form.Item
-          name="roles"
-          label="所属角色"
-          rules={[{ required: true }]}
-        >
-          <TreeSelect
-            showSearch={false}
-            treeData={treeRloe}
-            treeCheckable
-            showCheckedStrategy={SHOW_PARENT}
-            placeholder="请选择角色"
-            style={{ width: '100%' }}
-          />
-        </Form.Item>
-        <Form.Item
-          name="status"
-          valuePropName="checked"
-          label="当前状态"
-          rules={[{ required: true, message: '请选择状态' }]}
-        >
-          <Switch onChange={swichChange} />
-        </Form.Item>
-        <Form.Item wrapperCol={{ span: 20, offset: 8 }}>
-          <Button type="primary" htmlType="submit">
-            Submit
+          <Form.Item
+            name="status"
+            valuePropName="checked"
+            label="当前状态"
+            rules={[{ required: true, message: '请选择状态' }]}
+          >
+            <Switch onChange={swichChange} />
+          </Form.Item>
+          <Form.Item wrapperCol={{ span: 20, offset: 8 }}>
+            <Button type="primary" htmlType="submit">
+              Submit
         </Button>
-        </Form.Item>
-      </Form>
+          </Form.Item>
+        </Form>
+      </div>
     </>
   )
 }

+ 1 - 1
src/components/DataManager/MenuTree.js

@@ -7,7 +7,6 @@ function MenuTree(props) {
 
 
   function onCheck(checkedKeys, e) {
-    console.log(e)
     checkEv(checkedKeys)
   }
   function onSelect() {
@@ -15,6 +14,7 @@ function MenuTree(props) {
   }
   const treeData = data ? data : null;
   const defaultCheckedKeys = checkeds.softwareMenuIds ? checkeds.softwareMenuIds.slice() : []
+  console.log(defaultCheckedKeys)
   return (
     <Tree
       checkable

+ 162 - 45
src/components/DataManager/index.js

@@ -6,41 +6,55 @@ import '@common/common.less';
 import apiObj from '@api/index';
 import DataContext from './data-context';
 import AddData from './AddData';
-
-const { post, api, xPost } = apiObj;
+const { post, api, xPost, get } = apiObj;
 const { Option } = Select;
 function DataManager() {
   useEffect(() => {
     getDataAuthPage();
   }, []);
   const [userList, setUserList] = useState([]);
-  const [title, setTitle] = useState("");
   const [id, setId] = useState("");
-  const [visible, setVisible] = useState(false);
   const [modalType, setModalType] = useState("");
   const [msvisible, setMsvisible] = useState(false);
   const [type, setType] = useState("");
   const [addVisible, setaddVisible] = useState(false);
   const [dataDetail, setDataDetail] = useState(null);
+  const [formData, setFormData] = useState(null);
+  const [total, setTotal] = useState(0);
+  const [tag, setTag] = useState([[]]);
+  const [val, setVal] = useState([]);
   const [form] = Form.useForm();
   const tipText = {
     1: '确定要删除该数据权限?',
-    2: '禁用后该用户将无法登录,确定要禁用该用户?',
+    2: '确定要禁用该数据权限?',
   };
-  console.log(addVisible);
-
-  const showModal = (name, type, flag) => {
+  let params = {
+    pages: 1,
+    current: 1,
+    size: 15
+  }
+  const showModal = (flag, id) => {
     setaddVisible(true)
-    // setVisible(type);
-    // setTitle(name);
-    // setType(flag)
+    setType(flag)
+    setId(id)
+    if (flag == 1) {
+      setFormData({
+        status: '1'
+      })
+      setVal([])
+    }
+    if (flag == 3) {
+      getDataAuthById(id)
+    }
   }
-  function getDataAuthPage(param = {}) {
+  //表格数据
+  function getDataAuthPage() {
     //const param = filterData;
-    post(api.getDataAuthPage, param).then((res) => {
+    post(api.getDataAuthPage, params).then((res) => {
       if (res.data.code === 200) {
         const data = res.data.data;
         setUserList(data.records);
+        setTotal(data.total)
       }
     })
   }
@@ -60,25 +74,111 @@ function DataManager() {
       }
     })
   };
+  //删除
+  const deleteAuth = (id) => {
+    let params = {
+      id: id,
+    }
+    xPost(api.deleteAuth, params).then((res) => {
+      if (res.data.code === 200) {
+        getDataAuthPage();
+        setMsvisible(false);
+        message.success("删除成功");
+      } else {
+        message.warning(res.data.msg || '操作失败');
+      }
+    })
+  };
+  //查看
+  function getDataAuthById(id) {
+    xPost(api.getDataAuthById, { id: id }).then((res) => {
+      if (res.data.code === 200) {
+        const data = res.data.data;
+        let roles = []
+        let dataAuthDetails = []
+        let selectedRowKeys = []
+        let softwareMenuIds = []
+        let arr = JSON.parse(JSON.stringify(data).replaceAll(/softwares/g, 'softwareVOS').replaceAll(/dataAuthDetail/g, 'dataAuthDetails'))
+        arr.softwareVOS.map((it, i) => {
+          roles[i] = []
+          dataAuthDetails[i] = []
+          selectedRowKeys[i] = []
+          softwareMenuIds[i] = []
+          tag[i] = []
+          arr.softwareVOS[i].roles.forEach(item => {
+            roles[i].push(item.id)
+          })
+          arr.softwareVOS[i].dataAuthDetails && arr.softwareVOS[i].dataAuthDetails.depts && arr.softwareVOS[i].dataAuthDetails.depts.forEach(item => {
+            dataAuthDetails[i].push({
+              dataType: 7,
+              detailId: item.hospitalId,
+              detailType: item.detailType
+            })
+            tag[i].push({
+              id: item.id,
+              name: item.name,
+              type: item.detailType
+            })
+            softwareMenuIds[i].push(item.hospitalId + '-' + item.id + '-' + item.name)
+          })
+          arr.softwareVOS[i].dataAuthDetails && arr.softwareVOS[i].dataAuthDetails.doctors && arr.softwareVOS[i].dataAuthDetails.doctors.forEach(item => {
+            dataAuthDetails[i].push({
+              dataType: 7,
+              detailId: item.id,
+              detailType: item.detailType
+            })
+            tag[i].push({
+              id: item.id,
+              name: item.name,
+              type: item.detailType
+            })
+            selectedRowKeys[i].push(item.id + '-' + item.name)
+          })
+          arr.softwareVOS[i].dataAuthDetails && arr.softwareVOS[i].dataAuthDetails.hospitals && arr.softwareVOS[i].dataAuthDetails.hospitals.forEach(item => {
+            dataAuthDetails[i].push({
+              dataType: 7,
+              detailId: item.id,
+              detailType: item.detailType
+            })
+            tag[i].push({
+              id: item.id,
+              name: item.name,
+              type: item.detailType
+            })
+            softwareMenuIds[i].push(item.id + '-' + item.name)
+          })
+          arr.softwareVOS[i].roles = roles[i]
+          arr.softwareVOS[i].dataAuthDetails = dataAuthDetails[i]
+          arr.softwareVOS[i].selectedRowKeys = selectedRowKeys[i]
+          arr.softwareVOS[i].softwareMenuIds = softwareMenuIds[i]
+          if (arr.softwareVOS[i].dataAuthDetails && arr.softwareVOS[i].dataAuthDetails.length > 0) {
+            arr.softwareVOS[i].datatype = JSON.stringify(arr.softwareVOS[i].dataAuthDetails[0].dataType)
+            val[i] = arr.softwareVOS[i].dataAuthDetails[0].dataType
+          } else {
+            arr.softwareVOS[i].datatype = JSON.stringify(arr.softwareVOS[i].dataType)
+            val[i] = arr.softwareVOS[i].dataType
+          }
+        });
+        setVal(val)
+        setFormData(arr)
+        setTag(tag)
+        setType(2)
+      }
+    })
+  }
   //保存
   function addData(formData) {
     let url = api.addAuth;
-    console.log(formData)
-    // const arr = formData.softwares.filter((it) => {
-    //   if (Object.keys(it).length && it.softwareMenuIds && it.softwareMenuIds.length) {
-    //     return it;
-    //   }
-    // });
-    // if (roleDetail) {     //修改角色
-    //   formData.id = roleDetail.id;
-    //   url = api.updateRole;
-    // }
     let roles = formData.roles
     delete formData.roles
     let param = {
       addDataAuthVO: formData,
       roles: roles
     }
+    if (type == 3) {
+      url = api.updateAuth
+      param.id = id
+    }
     post(url, param).then((res) => {
       if (res.data.code === 200) {
         getDataAuthPage();
@@ -120,9 +220,9 @@ function DataManager() {
     {
       title: '操作', dataIndex: 'key', render: (text, record) => (
         <Space size="middle">
-          <a onClick={e => showModal('查看用户', true, 3)}>修改</a>
+          <a onClick={e => showModal(3, record.id)}>修改</a>
           {record.status === '1' ? (<a onClick={() => messageBox(2, record.id)}>禁用</a>) : (<a onClick={() => disableAuth(record.id, 1)}>启用</a>)}
-          <a onClick={e => showModal('修改用户', true, 1)} >删除</a>
+          <a onClick={() => messageBox(1, record.id)} >删除</a>
         </Space>
       )
     }
@@ -133,8 +233,8 @@ function DataManager() {
 
   //提示框确认事件
   function handleOk() {
-    if (modalType == 2) {
-      disableAuth(id, 0)
+    if (modalType == 1) {
+      deleteAuth(id, 0)
     } else if (modalType == 2) {
       disableAuth(id, 0)
     }
@@ -145,10 +245,17 @@ function DataManager() {
   }
   function goBack() {
     setaddVisible(false)
+    setFormData(null)
+    getDataAuthPage()
   }
-  if (addVisible) {
+  function changePage(page, pageSize) {
+    params.current = page
+    params.size = pageSize
+    getDataAuthPage()
+  }
+  if (addVisible && formData) {
     return (
-      <DataContext.Provider value={{ save: addData, detail: dataDetail }}>
+      <DataContext.Provider value={{ save: addData, formData: formData, type, val, tag }}>
         <AddData back={goBack} />
       </DataContext.Provider>
     )
@@ -159,6 +266,7 @@ function DataManager() {
         <Form
           form={form}
           name="normal_login"
+
           onFinish={onFinish}
           initialValues={{ status: '' }}
         >
@@ -186,14 +294,12 @@ function DataManager() {
             </Col>
             <Col span={6} key={3}>
               <Form.Item>
-                <Space size="middle">
-                  <Button onClick={onReset}>
-                    重置
-            </Button>
-                  <Button type="primary" htmlType="submit">
-                    查询
-            </Button>
-                </Space>
+                <Button type="primary" htmlType="submit">
+                  查询
+                </Button>
+                <Button onClick={onReset}>
+                  重置
+                </Button>
               </Form.Item>
             </Col>
           </Row>
@@ -201,8 +307,8 @@ function DataManager() {
       </div>
       <div className="table">
         <div className="table-header">
-          <h2 className="table-title">组织管理</h2>
-          <Button type="primary" icon={<PlusOutlined />} onClick={e => showModal('新增用户', true)}>新增数据权限</Button>
+          <h2 className="table-title">数据权限</h2>
+          <Button type="primary" icon={<PlusOutlined />} onClick={e => showModal(1)}>新增数据权限</Button>
         </div>
 
         <Table
@@ -210,15 +316,26 @@ function DataManager() {
           dataSource={userList}
           rowKey={record => record.id}
           pagination={{
-            showTotal: (total, range) => `第${range[0]}-${range[1]} 条/共 ${total} 条数据`,
+            pageNo: 1,
+            pageSize: 15,
             pageSizeOptions: ['15', '30', '60', '120'],
-            pageSize: 5,
+            showTotal: (total, range) => `第${range[0]}-${range[1]} 条/共 ${total} 条数据`,
+            onShowSizeChange: (current, pageSize) => this.pageSize = pageSize, // 改变每页数量时更新显示
+            onChange: (page, pageSize) => changePage(page, pageSize),//点击页码事件
+            total: total
           }} />
       </div>
-      {/* <div>
-        <NormalPlayer changeData={ChildrenChange} title={title} visible={visible}></NormalPlayer>
-      </div> */}
-
+      <Modal
+        title="提示"
+        okText='确定'
+        cancelText='取消'
+        width={400}
+        visible={msvisible}
+        onOk={handleOk}
+        onCancel={handleCancel}
+      >
+        <p>{tipText[modalType]}</p>
+      </Modal>
     </div >
   )
 }

+ 4 - 0
src/components/DataManager/index.less

@@ -21,3 +21,7 @@
   max-height: 500px;
   overflow-y: auto;
 }
+.form-center{
+  height: calc(100vh - 180px);
+  overflow-y: auto;
+}

+ 1 - 0
src/components/UserManager/addUser.js

@@ -29,6 +29,7 @@ function AddUser(props) {
   });
   const { titleList } = staticInfo;
   const initialValues = formData;
+  console.log(form.getFieldsValue())
   let addHospitalTreeVOs = {
     depts: [],
     hospitals: [],

+ 25 - 6
src/components/UserManager/index.js

@@ -22,6 +22,7 @@ function UserManager() {
   const [formData, setFormData] = useState(null);
   const [username, setUsername] = useState(null);
   const [roleList, setRoleList] = useState([]);
+  const [total, setTotal] = useState(0);
   const [form] = Form.useForm();
   const tipText = {
     1: '确定要删除该用户?',
@@ -32,6 +33,11 @@ function UserManager() {
     return state.staticInfo;
   });
   let list = []
+  let params = {
+    pages: 1,
+    current: 1,
+    size: 15
+  }
   const { statusList } = staticInfo;
   //新增弹窗
   const showModal = (name, type, flag, userId) => {
@@ -49,11 +55,12 @@ function UserManager() {
     }
   }
   //表格数据
-  function getUserPage(param = {}) {
-    post(api.getUserPage, param).then((res) => {
+  function getUserPage() {
+    post(api.getUserPage, params).then((res) => {
       if (res.data.code === 200) {
         const data = res.data.data;
         setUserList(data.records);
+        setTotal(data.total)
       }
     })
   }
@@ -152,9 +159,17 @@ function UserManager() {
       message.error("接口出错");
     });
   }
-
+  function changePage(page, pageSize) {
+    params.current = page
+    params.size = pageSize
+    getUserPage()
+  }
   const onFinish = (value) => {
-    getUserPage(value);
+    params = {
+      ...params,
+      ...value
+    }
+    getUserPage();
   };
   const onReset = () => {
     form.resetFields();
@@ -294,9 +309,13 @@ function UserManager() {
           dataSource={userList}
           rowKey={record => record.userId}
           pagination={{
-            showTotal: (total, range) => `第${range[0]}-${range[1]} 条/共 ${total} 条数据`,
+            pageNo: 1,
+            pageSize: 15,
             pageSizeOptions: ['15', '30', '60', '120'],
-            pageSize: 5,
+            showTotal: (total, range) => `第${range[0]}-${range[1]} 条/共 ${total} 条数据`,
+            onShowSizeChange: (current, pageSize) => this.pageSize = pageSize, // 改变每页数量时更新显示
+            onChange: (page, pageSize) => changePage(page, pageSize),//点击页码事件
+            total: total
           }} />
       </div>
       {visible && formData ?