wyq 3 vuotta sitten
vanhempi
commit
092be7371b

+ 33 - 42
src/components/DataManager/AddData.js

@@ -21,12 +21,6 @@ function AddData(props) {
     getOrgList()
     if (type == 3) {
       setValue(val)
-      setTags(tag)
-    } else {
-      orgList.forEach((it, index) => {
-        tags[index] = []
-        setTags([...tags])
-      })
     }
   }, []);
   const { back, } = props;
@@ -50,7 +44,7 @@ function AddData(props) {
   const validateMessages = {
     required: '${label}不能为空',
   };
-  
+
   //获取当前用于所属角色
   function getCreateRoles() {
     const params = {
@@ -115,6 +109,15 @@ function AddData(props) {
         const { software } = data;
         setOrgList(software);
         setKey(software[0].id)
+        if (type == 3) {
+          setTags(tag)
+        } else {
+          software.forEach((it, index) => {
+            tags[index] = []
+            setTags([...tags])
+          })
+        }
+
       } else {
         message.warning(res.data.msg || '获取医院列表失败');
       }
@@ -309,7 +312,7 @@ function AddData(props) {
               {
                 orgList.map((it, i) => {
                   return (
-                    <TabPane tab={it.name} key={it.id + "-" + i}>
+                    <TabPane tab={it.name} key={it.id + "-" + i} forceRender={type == 3 ? true : false}>
                       <Form.Item
                         key={i}
                         name={['softwareVOS', i, 'datatype']} noStyle>
@@ -368,44 +371,32 @@ function AddData(props) {
           <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>
+                    {index == i ?
+                      <Form.Item key={i + "b"}
+                        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>
+                      : null}
+
                   </Form.Item>
                 )
               })

+ 1 - 0
src/components/DataManager/index.js

@@ -165,6 +165,7 @@ function DataManager() {
         setTag(tag)
         setVal(val)
         setFormData(arr)
+  
       }
     })
   }

+ 1 - 1
src/components/OrgManager/AddSubOrg.js

@@ -304,7 +304,7 @@ function StepContent(props) {
                         {
                             tabDatas.map((it, i) => {
                                 return (
-                                    <TabPane tab={it.title} key={it.title + '-' + it.key}>
+                                    <TabPane tab={it.title} key={it.title + '-' + it.key} forceRender={type==2?true:false}>
                                         <Form.Item key={i} name={['softwares', i, 'softwareMenuIds']} noStyle>
                                             <MenuTree data={it} checkeds={form.getFieldValue().softwares ? form.getFieldValue().softwares[i] : []} checkEv={(checkedKeys, sourceIds) => checkTreeEvent(i, checkedKeys, sourceIds)} />
                                         </Form.Item>

+ 0 - 1
src/components/OrgManager/index.js

@@ -255,7 +255,6 @@ function OrgManager() {
                 pagination={false}
                 className="components-table-demo-nested"
                 rowKey={record => record.hospitalId}
-                expandable={{ defaultExpandAllRows: true }}
                 columns={columns}
                 dataSource={dataSource}
             />

+ 30 - 14
src/components/RoleManager/AddRole.js

@@ -22,7 +22,7 @@ function AddRole(props){
                 <Breadcrumb.Item>新增角色</Breadcrumb.Item>
             </Breadcrumb>
             <div className="add-container">
-                <ContentForm></ContentForm>
+                <ContentForm back={back}></ContentForm>
             </div>
         </>
     )
@@ -35,6 +35,7 @@ function ContentForm(props){
     const [activeTab, setActiveTab] = useState('');
     const { save,detail }  = useContext(RoleContext);
     const [sysCheckeds, setSysCheckeds] = useState();
+    const { back } = props;
     const initialValues=detail||{
         status:'1'
     };
@@ -54,21 +55,21 @@ function ContentForm(props){
                 const data = res.data.data;
                 const treeDatas = structureTreeData(data);
                 setTreeDatas(treeDatas);
-                console.log(43,detail)
                 //默认选中第一个tab
                 setTabDatas([treeDatas[0]]);
                 setActiveTab(treeDatas[0].key);
                 setSysCheckeds(treeDatas[0]?[treeDatas[0].key]:[]);
+
+                
             }
 
         })
     }
     //数据转换为树形结构所需字段
     function structureTreeData(data){
-        console.log(data);
         const arr = [];
         let obj={};
-        data.map((it,i)=>{
+        data.relation ==1 || data.map((it,i)=>{
             obj =JSON.stringify(it.children).replace(/softwareMenuId/g,"key").replace(/menuName/g,'title');
             arr[i]={
                 title:it.softwareName,
@@ -76,24 +77,40 @@ function ContentForm(props){
                 children:JSON.parse(obj)
             }
         });
-        //form.setFieldsValue({softwares:[{id:arr[0]?[arr[0].key]:''}]});   //默认选中第一个
+        return arr;
+    }
+    //数据转换为树形结构所需字段
+    function structureTreeData2(data) {
+        const arr = [];
+        let obj = {};
+        data.map((it, i) => {
+            if (it.relation == 1){
+                obj = JSON.stringify(it.children).replace(/softwareMenuId/g, "key").replace(/menuName/g, 'title');
+                arr[i] = {
+                    title: it.softwareName,
+                    key: it.softwareId,
+                    children: JSON.parse(obj)
+                }
+            }
+            
+        });
         return arr;
     }
     useEffect(()=>{
         if(detail){
         //编辑时权限树从详情中获取,tab数据也是
+            const treeDatas2 = structureTreeData2(detail.loginUserMenuResourceTree);
             const treeDatas = structureTreeData(detail.loginUserMenuResourceTree);
             setTreeDatas(treeDatas);
             setSysCheckeds(detail.sids);
-            setTabDatas(treeDatas);
+            setTabDatas(treeDatas2);
+            console.log(detail);
+            console.log(form.getFieldsValue());
         }else{
             getTreeData();
         }
 
     },[]);
-    function handleCancel(){
-
-    }
     function handleSave(){
         form.validateFields(['name']).then((res)=>{
             save(form.getFieldsValue())
@@ -113,8 +130,8 @@ function ContentForm(props){
             softwares:arr
         });
     }
-    function onTabChange(activeTab){
-        setActiveTab(activeTab)
+    function onTabChange(activeTab){ 
+        setActiveTab(activeTab.split('-')[0])
     }
     //开放系统勾选事件
     function softwareChange(checkedValue){
@@ -186,13 +203,12 @@ function ContentForm(props){
                     {
                         tabDatas.map((it,i)=>{
                             return (
-                                <TabPane tab={it.title} key={i}>
+                                <TabPane tab={it.title} key={it.key + "-" + i} forceRender={detail ? true : false}>
                                     <Form.Item
                                         key={i}
                                         name={['softwares', i, 'softwareMenuIds']}
                                         valuePropName='checked'
                                         getValueFromEvent={(checked)=>{
-                                            console.log(321,checked)
                                             return [];
                                         }} noStyle>
                                         <MenuTree data={it} checkeds={form.getFieldValue().softwares?form.getFieldValue().softwares[i]:[]} checkEv={(checkedKeys,sourceIds)=>checkTreeEvent(i,checkedKeys,sourceIds)}/>
@@ -226,7 +242,7 @@ function ContentForm(props){
             </Form.Item>
         </Form>
         <div className="button-box">
-            <Button onClick={handleCancel}>取消</Button>
+                <Button onClick={back}>取消</Button>
             <Button onClick={handleSave} type='primary'>保存</Button>
         </div>
         </>

+ 34 - 6
src/components/RoleManager/index.js

@@ -25,7 +25,7 @@ function RoleManager(){
     //弹窗类型:1删除 2有用户删除 3禁用 4有用户禁用
     const [modalType,setModalType] = useState(1);
     const [operId,setOperId] = useState('');    //当前操作的角色id
-
+    const [total, setTotal] = useState(0);
     //从state中取出状态、类型列表
     const staticInfo =useSelector(state => {
         return state.staticInfo;
@@ -37,13 +37,18 @@ function RoleManager(){
         3:'确定要禁用该角色?',
         4:'当前角色存在用户,禁用后用户将一并被禁用',
     };
-
+    let params = {
+        pages: 1,
+        current: 1,
+        size: 15
+    }
     //获取表格数据
-    function getTableData(param={}){
-        post(api.getRolePage,param).then((res)=>{
+    function getTableData(){
+        post(api.getRolePage, params).then((res)=>{
             if(res.data.code===200){
                 const data = res.data.data;
                 setDataSource(data.records);
+                setTotal(data.total)
             }
 
         })
@@ -111,11 +116,17 @@ function RoleManager(){
         if(detail.code===200){
             const content= detail.data;
             const menuData = content.loginUserMenuResourceTree;
+            const loginSoftwares = content.loginSoftwares;
             let softwares=[],sids=[];
             for(let i=0;i<menuData.length;i++){
                 const obj = pickCheckedTreeIds(menuData[i]);
                 softwares.push(obj);
-                sids.push(obj.id);
+            }
+            for (let j = 0; j < loginSoftwares.length; j++) {
+                const obj = loginSoftwares[j];
+                if (obj.relation == '1') {
+                    sids.push(obj.id);
+                }
             }
             const fData = Object.assign({},content,{sids,softwares});
             setRoleDetail(fData);
@@ -125,6 +136,8 @@ function RoleManager(){
 
     //保存
     function addRole(formData){
+        console.log(formData);
+        
         let url = api.addRole;
         const arr = formData.softwares.filter((it)=>{
             if(Object.keys(it).length&&it.softwareMenuIds&&it.softwareMenuIds.length){
@@ -140,6 +153,7 @@ function RoleManager(){
             if(res.data.code===200){
                 getTableData();
                 setAddVisible(false);
+                setRoleDetail(null)
                 message.success("添加成功");
             }else{
                 message.warning(res.data.msg||'操作失败');
@@ -150,6 +164,12 @@ function RoleManager(){
     }
     function goBack(){
         setAddVisible(false);
+        setRoleDetail(null)
+    } 
+    function changePage(page, pageSize) {
+        params.current = page
+        params.size = pageSize
+        getTableData()
     }
     //表格渲染
     function RenderTable(){
@@ -177,6 +197,15 @@ function RoleManager(){
                 rowKey={record => record.id}
                 columns={columns}
                 dataSource={dataSource}
+                pagination={{
+                    pageNo: 1,
+                    pageSize: 15,
+                    pageSizeOptions: ['15', '30', '60', '120'],
+                    showTotal: (total, range) => `第${range[0]}-${range[1]} 条/共 ${total} 条数据`,
+                    onShowSizeChange: (current, pageSize) => this.pageSize = pageSize, // 改变每页数量时更新显示
+                    onChange: (page, pageSize) => changePage(page, pageSize),//点击页码事件
+                    total: total
+                }}
             />
         )
     }
@@ -184,7 +213,6 @@ function RoleManager(){
     const [form] = Form.useForm();
     const onFinish = (values) => {
         getTableData(values);
-        console.log('筛选项:',values);
     };
     const onReset = () => {
         form.resetFields();