code4eat před 2 roky
rodič
revize
2da170a8ca

+ 2 - 2
src/app.tsx

@@ -251,8 +251,8 @@ export const qiankun = fetch('/config').then(() => ({
     },
     {
       name: 'budgetManaSystem', // 唯一 id
-      entry: '//localhost:8001'
-      //entry: '//112.124.59.133:5000/perform/', // 开发
+      //entry: '//localhost:8001'
+      entry: '//112.124.59.133:5000/perform/', // 开发
     },
     {
       name: 'PFMBackC', // 唯一 id

+ 42 - 18
src/pages/platform/setting/hospManage/index.tsx

@@ -1,7 +1,7 @@
 /*
  * @Author: your name
  * @Date: 2022-01-13 15:22:48
- * @LastEditTime: 2023-03-22 14:00:06
+ * @LastEditTime: 2023-03-23 15:55:50
  * @LastEditors: code4eat awesomedema@gmail.com
  * @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
  * @FilePath: /KC-MiddlePlatform/src/pages/platform/setting/hospManage/index.tsx
@@ -22,7 +22,7 @@ import { KCInput } from '@/components/KCInput';
 import { createFromIconfontCN, DownOutlined } from '@ant-design/icons';
 import { DrawerForm } from '@ant-design/pro-form';
 import { DataNode } from 'antd/es/tree';
-
+import { getTreeData, getTreeDataRespType } from '../systemNavMana/service';
 
 import expandedIcon from '../../../../../public/images/treenode_open.png';
 import closeIcon from '../../../../../public/images/treenode_collapse.png';
@@ -170,7 +170,9 @@ const HospManage: FC<PageProps> = ({ hospManageModel: state, dispatch }) => {
     const [autoExpandParent, setAutoExpandParent] = useState(true);
     const [drawerTableDataFilterParams, set_drawerTableDataFilterParams] = useState<any | undefined>();
 
-    const [checkBoxCodes, set_checkBoxCodes] = useState<any[]>([]);
+    const [checkBoxCodes, set_checkBoxCodes] = useState<any[]>([]); //勾选的菜单
+
+    const [needCancelCheckedMenus, set_needCancelCheckedMenus] = useState<any[]>([]);
 
 
     const [drawerTableDataSearchKeywords, set_drawerTableDataSearchKeywords] = useState<string>('');
@@ -397,10 +399,24 @@ const HospManage: FC<PageProps> = ({ hospManageModel: state, dispatch }) => {
     }
 
     const saveResult = async () => {
-      const result = checkBoxCodes.map((item: any) => ({ ...item, hospId: record.id }))
-      const resp = await saveHospMenuApiPerm(result);
+
+      const needCancelMenus = needCancelCheckedMenus.map(a => ({ hospId: record.id, systemId: currentSelectedTreeNode.code, function: [], menuId: a }))
+      const result = checkBoxCodes.map((item: any) => ({ ...item, hospId: record.id,systemId: currentSelectedTreeNode.code }));
+
+      const data = [...result, ...needCancelMenus];
+      
+      function uniqueFunc(arr:any[], uniId:string){
+        const res = new Map();
+        return arr.filter((item) => !res.has(item[uniId]) && res.set(item[uniId], 1));
+      }
+
+      const resp = await saveHospMenuApiPerm(result.length == 0 ? [{ hospId: record.id, systemId: currentSelectedTreeNode.code }] :uniqueFunc(data,'menuId') );
+
       if (resp) {
         set_drawerTablereload(true);
+        set_checkBoxCodes([]);
+        set_checkedTableMenuIds([]);
+        set_needCancelCheckedMenus([]);
       }
 
     }
@@ -419,17 +435,17 @@ const HospManage: FC<PageProps> = ({ hospManageModel: state, dispatch }) => {
     }
 
 
-    const oneKeySetReadOnly = (bool:boolean)=>{
-       
-        if(bool){
-          const _temp = checkBoxCodes.map((item:any)=>{
-                const needed = item.function.filter((a:any)=>a.code == 'search');
-                return {...item,function:needed}
-          })
-          set_checkBoxCodes([..._temp]);
-        }
+    // const oneKeySetReadOnly = (bool: boolean) => {
 
-    }
+    //   if (bool) {
+    //     const _temp = checkBoxCodes.map((item: any) => {
+    //       const needed = item.function.filter((a: any) => a.code == 'search');
+    //       return { ...item, function: needed }
+    //     })
+    //     set_checkBoxCodes([..._temp]);
+    //   }
+
+    // }
 
 
     useEffect(() => {
@@ -440,6 +456,7 @@ const HospManage: FC<PageProps> = ({ hospManageModel: state, dispatch }) => {
       //切换系统清空数据
       set_checkBoxCodes([]);
       set_checkedTableMenuIds([]);
+      set_needCancelCheckedMenus([]);
 
     }, [currentSelectedTreeNode]);
 
@@ -580,7 +597,7 @@ const HospManage: FC<PageProps> = ({ hospManageModel: state, dispatch }) => {
                 </div>
 
                 <div className={'btnGroup'}>
-                     {/* <a style={{color: '#17181A'}}><Switch style={{position:'relative',marginRight:4}} size='small'  onChange={(bool)=>oneKeySetReadOnly(bool)} />只读</a> */}
+                  {/* <a style={{color: '#17181A'}}><Switch style={{position:'relative',marginRight:4}} size='small'  onChange={(bool)=>oneKeySetReadOnly(bool)} />只读</a> */}
                   {/* <UpDataActBtn key={'act'} record={undefined} type='ADD' /> */}
                 </div>
 
@@ -604,6 +621,7 @@ const HospManage: FC<PageProps> = ({ hospManageModel: state, dispatch }) => {
                   onSelect: (record, selected, selectedRows, nativeEvent) => {
                     //console.log({ record, selected, selectedRows, nativeEvent });
                     let checkedData = checkBoxCodes;
+                    let needCancel = needCancelCheckedMenus;
                     if (selected) {
                       //选中
                       selectedRows.forEach(a => {
@@ -611,8 +629,9 @@ const HospManage: FC<PageProps> = ({ hospManageModel: state, dispatch }) => {
                           checkedData.push({
                             menuId: a.menuId,
                             function: a.functionList
-                          })
+                          });
                         }
+                        needCancel.splice(needCancel.findIndex(id => id == a.menuId), 1);
                       });
                       //更新表格row选中状态
                       if (record.type == 0) {
@@ -626,11 +645,13 @@ const HospManage: FC<PageProps> = ({ hospManageModel: state, dispatch }) => {
 
                       }
                     } else {
+                      let needCancelCheckedRow = [];   //需要取消勾选的表格行
                       if (record.type == 0) {
                         //目录
                         if (record.children) {
                           record.children.forEach((element: any) => {
                             const index = checkedData.findIndex((item) => item.menuId == record.menuId);
+                            needCancelCheckedRow.push(record.menuId);
                             checkedData.splice(index, 1);
                           });
                         }
@@ -641,17 +662,20 @@ const HospManage: FC<PageProps> = ({ hospManageModel: state, dispatch }) => {
 
                       } else if (record.type == 1) {
                         //菜单
+                        needCancelCheckedRow.push(record.menuId);
                         const temp = checkedTableMenuIds;
                         const index = checkedData.findIndex((item) => item.menuId == record.menuId);
                         const menuIdIndex = checkedTableMenuIds.findIndex((item) => item == record.menuId);
                         checkedData.splice(index, 1);
                         temp.splice(menuIdIndex, 1);
                         set_checkedTableMenuIds([...temp]);
+
+                        set_needCancelCheckedMenus([...needCancelCheckedMenus, ...needCancelCheckedRow]);
+
                       }
                     }
 
                     //console.log({ checkedData });
-
                     set_checkBoxCodes([...checkedData]);
                   }
                 }}

+ 2 - 2
src/pages/platform/setting/hospManage/modals/modal.tsx

@@ -1,7 +1,7 @@
 /*
  * @Author: your name
  * @Date: 2022-01-12 17:11:11
- * @LastEditTime: 2023-03-10 15:12:25
+ * @LastEditTime: 2023-03-23 11:29:24
  * @LastEditors: code4eat awesomedema@gmail.com
  * @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
  * @FilePath: /KC-MiddlePlatform/src/pages/platform/setting/userManage/modal.tsx
@@ -215,7 +215,7 @@ const ActModal: React.FC<ActModalProps> = ({ dispatch, isShowModal, tableAct, cu
       visible={isShowModal}
       onVisibleChange={onVisibleChangeHandle}
       layout="horizontal"
-      width={tableAct == TableActType.EDITMENU?800:352}
+      width={tableAct == TableActType.EDITMENU?800:800}
       initialValues={setInitialValues()}
       title={setModalTitle()}
       labelCol={{

+ 4 - 4
src/pages/platform/setting/notificationTemplate/index.tsx

@@ -2,7 +2,7 @@
  * @Author: code4eat awesomedema@gmail.com
  * @Date: 2023-03-03 11:30:33
  * @LastEditors: code4eat awesomedema@gmail.com
- * @LastEditTime: 2023-03-22 17:40:53
+ * @LastEditTime: 2023-03-23 14:12:13
  * @FilePath: /KC-MiddlePlatform/src/pages/platform/setting/pubDicTypeMana/index.tsx
  * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
  */
@@ -229,7 +229,7 @@ export default function PubDicTypeMana() {
 
                             return [{
                                   label:'所有院区',
-                                  value:0
+                                  value:'0'
                             },...data];
                         }
                         return []
@@ -265,10 +265,10 @@ export default function PubDicTypeMana() {
                     placeholder="请选择"
                     rules={[{ required: true, message: '请选择!' }]}
                 />
-                <ProFormSelect
+                <ProFormText
                     name="receiveTarget"
                     label="接收对象:"
-                    options={setSelectorData('RECEIVE_TARGET').list}
+                    // options={setSelectorData('RECEIVE_TARGET').list}
                     placeholder="请选择"
                     rules={[{ required: true, message: '请选择!' }]}
                 />

+ 33 - 5
src/pages/platform/setting/roleManage/index.tsx

@@ -1,7 +1,7 @@
 /*
  * @Author: your name
  * @Date: 2022-01-13 15:22:48
- * @LastEditTime: 2023-03-22 14:03:03
+ * @LastEditTime: 2023-03-23 15:48:17
  * @LastEditors: code4eat awesomedema@gmail.com
  * @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
  * @FilePath: /KC-MiddlePlatform/src/pages/platform/setting/hospManage/index.tsx
@@ -12,7 +12,7 @@ import { roleManageModelState, ConnectProps, Loading, connect } from 'umi';
 import {Checkbox, Divider, Dropdown, Input, Popconfirm, Table, TreeProps } from 'antd';
 import KCTable from '@/components/kcTable';
 import type { ProColumns } from '@ant-design/pro-table';
-import { getAllRoles, getRoleHasBindMenus, getRoleHasBindUsers, getRolePermRelaMenu, initRoleFunc, saveRoleRelaApiPerm } from '@/service/role';
+import { getAllRoles, getRoleHasBindMenus, getRoleHasBindUsers, getRolePermRelaMenu, initRoleFunc, initRoleReadOnlyFunc, saveRoleRelaApiPerm } from '@/service/role';
 import { TableRequestParamsType } from '@/typings';
 import ActModal from './modals/modal';
 import './style.less';
@@ -117,7 +117,7 @@ const RoleManage: FC<PageProps> = ({ roleManageModel: state, dispatch }) => {
             { key:'0',label: <a key="link3" onClick={() => editMenuBind(record)}>菜单</a>},
             { key: '5', label: <DrawerActBtn key="link7" record={record} /> },
             { key: '2', label: <a key="link4" onClick={() => initRoleData('func',record)} >初始化功能</a> },
-            //{ key: '6', label: <a key="link6" onClick={() => initRoleData('read',record)}>初始化只读</a> },
+            { key: '6', label: <a key="link6" onClick={() => initRoleData('read',record)}>初始化只读</a> },
           ]
         }}>
           <a>
@@ -142,6 +142,8 @@ const RoleManage: FC<PageProps> = ({ roleManageModel: state, dispatch }) => {
 
     const [checkBoxCodes, set_checkBoxCodes] = useState<any[]>([]);
 
+    const [needCancelCheckedMenus,set_needCancelCheckedMenus] = useState<any[]>([]);
+
 
     const [drawerTableDataSearchKeywords, set_drawerTableDataSearchKeywords] = useState<string>('');
 
@@ -364,8 +366,17 @@ const RoleManage: FC<PageProps> = ({ roleManageModel: state, dispatch }) => {
     }
 
     const saveResult = async () => {
-      const result = checkBoxCodes.map((item: any) => ({ ...item, hospId: record.hospId,roleId:record.roleId }))
-      const resp = await saveRoleRelaApiPerm(result);
+      const needCancelMenus = needCancelCheckedMenus.map(a=>({hospId: record.id ,systemId: currentSelectedTreeNode.code,function:[],menuId:a}));
+      const result = checkBoxCodes.map((item: any) => ({ ...item, hospId: record.hospId,roleId:record.roleId,systemId: currentSelectedTreeNode.code }));
+
+      const data = [...result, ...needCancelMenus];
+      
+      function uniqueFunc(arr:any[], uniId:string){
+        const res = new Map();
+        return arr.filter((item) => !res.has(item[uniId]) && res.set(item[uniId], 1));
+      }
+
+      const resp = await saveRoleRelaApiPerm(result.length == 0?[{hospId: record.hospId,roleId:record.roleId,systemId: currentSelectedTreeNode.code}]:uniqueFunc(data,'menuId'));
       if (resp) {
         set_drawerTablereload(true);
       }
@@ -407,6 +418,7 @@ const RoleManage: FC<PageProps> = ({ roleManageModel: state, dispatch }) => {
       //切换系统清空数据
       set_checkBoxCodes([]);
       set_checkedTableMenuIds([]);
+      set_needCancelCheckedMenus([]);
 
     }, [currentSelectedTreeNode]);
 
@@ -571,6 +583,7 @@ const RoleManage: FC<PageProps> = ({ roleManageModel: state, dispatch }) => {
                   onSelect: (record, selected, selectedRows, nativeEvent) => {
                     //console.log({ record, selected, selectedRows, nativeEvent });
                     let checkedData = checkBoxCodes;
+                    let needCancel = needCancelCheckedMenus;
                     if (selected) {
                       //选中
                       selectedRows.forEach(a => {
@@ -580,6 +593,7 @@ const RoleManage: FC<PageProps> = ({ roleManageModel: state, dispatch }) => {
                             function: a.functionList
                           })
                         }
+                        needCancel.splice(needCancel.findIndex(id=>id == a.menuId),1);
                       });
                       //更新表格row选中状态
                       if (record.type == 0) {
@@ -593,11 +607,15 @@ const RoleManage: FC<PageProps> = ({ roleManageModel: state, dispatch }) => {
 
                       }
                     } else {
+
+                      let needCancelCheckedRow = [];   //需要取消勾选的表格行
+
                       if (record.type == 0) {
                         //目录
                         if (record.children) {
                           record.children.forEach((element: any) => {
                             const index = checkedData.findIndex((item) => item.menuId == record.menuId);
+                            needCancelCheckedRow.push(record.menuId);  
                             checkedData.splice(index, 1);
                           });
                         }
@@ -609,6 +627,7 @@ const RoleManage: FC<PageProps> = ({ roleManageModel: state, dispatch }) => {
                       } else if (record.type == 1) {
                         //菜单
                         const temp = checkedTableMenuIds;
+                        needCancelCheckedRow.push(record.menuId);  
                         const index = checkedData.findIndex((item) => item.menuId == record.menuId);
                         const menuIdIndex = checkedTableMenuIds.findIndex((item) => item == record.menuId);
                         checkedData.splice(index, 1);
@@ -734,6 +753,15 @@ const RoleManage: FC<PageProps> = ({ roleManageModel: state, dispatch }) => {
                 });
               }
         }
+        if(type == 'read'){
+          const resp = await initRoleReadOnlyFunc({roleId:record.roleId,hospId:record.hospId});
+          if(resp){
+            dispatch &&
+            dispatch({
+              type: 'roleManageModel/reloadTable',
+            });
+          }
+    }
   }
   
 

+ 66 - 19
src/pages/platform/setting/userManage/index.tsx

@@ -1,18 +1,18 @@
 /*
  * @Author: your name
  * @Date: 2022-01-11 09:43:18
- * @LastEditTime: 2023-03-23 09:50:38
+ * @LastEditTime: 2023-03-23 15:05:03
  * @LastEditors: code4eat awesomedema@gmail.com
  * @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
  * @FilePath: /KC-MiddlePlatform/src/pages/platform/userManage/index.tsx
  */
 
-import { FC, useState } from 'react';
+import { FC, useEffect, useState } from 'react';
 import { userManageModelState, ConnectProps, Loading, connect } from 'umi';
 import { Button, Divider, Popconfirm } from 'antd';
 import KCTable from '@/components/kcTable';
 import type { ProColumns } from '@ant-design/pro-table';
-import { getUsers } from '@/service/user';
+import { getUserRelaSeletData, getUsers, UserRelaSeletDataListType, UserRelaSeletDataType } from '@/service/user';
 import { TableRequestParamsType } from '@/typings';
 import ActModal from './modal';
 import './style.less';
@@ -41,6 +41,8 @@ const UserManage: FC<PageProps> = ({ userManageModel: state, dispatch }) => {
   const [tableDataFilterParams, set_tableDataFilterParams] = useState<any | undefined>();
   const [tableDataSearchKeywords, set_tableDataSearchKeywords] = useState<string>('');
 
+  const [dirData,set_dirData] = useState<UserRelaSeletDataType[]>([]);
+
 
   const columns: ProColumns<TableListItem>[] = [
     {
@@ -182,6 +184,14 @@ const UserManage: FC<PageProps> = ({ userManageModel: state, dispatch }) => {
     }
   };
 
+  const getDirecData = async (key?: string) => {
+
+    const data = await getUserRelaSeletData(key);
+    if (data) {
+      set_dirData(data);
+    }
+  }
+
   const tableDataSearchHandle = (paramName: string) => {
 
 
@@ -223,6 +233,39 @@ const UserManage: FC<PageProps> = ({ userManageModel: state, dispatch }) => {
   }
 
 
+  const setSelectorData = (key: string) => {
+    let result = dirData.filter((t: any) => (t.code == key));
+
+    if (result.length > 0) {
+
+      let dataArr = result[0].dataVoList;
+
+      let defaultValue = dataArr.filter(t => t.defaultValue == 1);
+
+      dataArr.sort((prev: UserRelaSeletDataListType, next: UserRelaSeletDataListType) => {
+        return prev.sort - next.sort;
+      });
+
+      return {
+        defaultvalue: defaultValue[0] ? defaultValue[0].value : '',
+        list: dataArr.map(t =>{
+             return ({ label: t.value, value: t.code })
+        })
+      }
+    }
+
+    return {
+      defaultvalue: '',
+      list: []
+    };
+  }
+
+
+  useEffect(()=>{
+    getDirecData();
+  },[])
+
+
   //  console.log({state});
 
   return (
@@ -231,20 +274,23 @@ const UserManage: FC<PageProps> = ({ userManageModel: state, dispatch }) => {
 
       <div className='toolBar'>
         <div className='filter'>
-          <div className='filterItem' style={{ marginRight: 16 }}>
+          <div className='filterItem' style={{ marginRight: 16}}>
             <span className='label'>科室:</span>
-            <KCInput placeholder={'请输入'} style={{ width: 160 }} search allowClear
-              onChange={(e) => {
-                set_tableDataSearchKeywords(e.target.value);
-                if (e.target.value.length == 0) {
-                  set_tableDataFilterParams({
-                    ...tableDataFilterParams,
-                    account: ''
-                  });
-                }
-              }}
-              onSearch={() => tableDataSearchHandle('account')}
-
+            <ProFormSelect
+                    name="name"
+                    noStyle
+                    style={{width:160}}
+                    options={setSelectorData('PRACTICE_DEPARTMENT_TYPE').list}
+                    placeholder="请选择"
+                    fieldProps={{
+                      onChange:(val) => {
+                        console.log({val});
+                        set_tableDataFilterParams({
+                          ...tableDataFilterParams,
+                          name:val
+                        });
+                      }
+                    }}
             />
           </div>
           <div className='filterItem'>
@@ -255,11 +301,11 @@ const UserManage: FC<PageProps> = ({ userManageModel: state, dispatch }) => {
                 if (e.target.value.length == 0) {
                   set_tableDataFilterParams({
                     ...tableDataFilterParams,
-                    name: ''
+                    account: ''
                   });
                 }
               }}
-              onSearch={() => tableDataSearchHandle('name')}
+              onSearch={() => tableDataSearchHandle('account')}
 
             />
           </div>
@@ -275,11 +321,12 @@ const UserManage: FC<PageProps> = ({ userManageModel: state, dispatch }) => {
         headerTitle="查询表格"
         columns={columns}
         reload={reloadTable}
+        params={tableDataFilterParams}
         newVer
         expandable={{
           expandedRowRender: record => (
             <div className='userExpandInfo'>
-              <span>进院时间:</span>
+              <span>进院时间:{record.entryTime}</span>
               <span>手机号:{record.phoneNumber}</span>
               <span>所学专业:{record.major}</span>
               <span>资格证号:{record.qualificationCertificateNo}</span>

+ 21 - 10
src/pages/platform/setting/userManage/modal.tsx

@@ -1,7 +1,7 @@
 /*
  * @Author: your name
  * @Date: 2022-01-12 17:11:11
- * @LastEditTime: 2023-03-23 09:46:23
+ * @LastEditTime: 2023-03-23 16:28:54
  * @LastEditors: code4eat awesomedema@gmail.com
  * @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
  * @FilePath: /KC-MiddlePlatform/src/pages/platform/setting/userManage/modal.tsx
@@ -141,7 +141,7 @@ const ActModal: React.FC<ActModalProps> = ({
   const uploadButton = (
     <div>
       {loadAvatar ? <LoadingOutlined /> : <PlusOutlined />}
-      <div style={{ marginTop: 8 }}>Upload</div>
+      <div style={{ marginTop: 8 }}>上传头像</div>
     </div>
   );
 
@@ -315,6 +315,10 @@ const ActModal: React.FC<ActModalProps> = ({
                   )}
                 </ProFormDependency>
 
+                <div className='formItem'>
+                  <ProFormText name="graduateSchool" label="毕业院校:" placeholder="请输入" rules={[{ required: true, message: '请输入院校!' }]} />
+                </div>
+
                 <div className='formItem'>
                   <ProFormSelect
                     name="degree"
@@ -325,6 +329,10 @@ const ActModal: React.FC<ActModalProps> = ({
                   />
                 </div>
 
+                <div className='formItem'>
+                  <ProFormText name="major" label="所学专业:" placeholder="请输入" rules={[{ required: true, message: '请输入专业!' }]} />
+                </div>
+
                 <div className='formItem' >
                   <ProFormSelect
                     name="practiceCate"
@@ -338,18 +346,13 @@ const ActModal: React.FC<ActModalProps> = ({
                   <ProFormText name="phoneNumber" label="手机号:" placeholder="请输入" />
                 </div>
 
-                <ProFormDependency name={['userCate']}>
-                  {({ userCate }) => (userCate == 6 || userCate == 5) && (
-                    <div className='formItem'>
+                <div className='formItem' style={{position:'relative',left:-175}}>
                       <ProFormText name="idCardNum" label="身份证号:" placeholder="请输入" rules={[{ required: true, message: '请选择!' }]} />
-                    </div>
-                  )}
-                </ProFormDependency>
-
+                </div>
 
                 <ProFormDependency name={['userCate']}>
                   {({ userCate }) => (userCate == 6 || userCate == 5) && (
-                    <div className='formItem'>
+                    <div className='formItem' style={{position:'relative',left:-175}}>
                       <ProFormSelect
                         name="practiceSubject"
                         label="执业科目:"
@@ -386,6 +389,14 @@ const ActModal: React.FC<ActModalProps> = ({
                 <ProFormDependency name={['userCate']}>
                   {({ userCate }) => (userCate == 6 || userCate == 5) && (
                     <div className='formItem' style={{position:'relative',left:-175}}>
+                      <ProFormText name="qualificationCertificateNo" label="资格证号:" placeholder="请输入" rules={[{ required: true, message: '请输入!' }]} />
+                    </div>
+                  )}
+                </ProFormDependency>
+
+                <ProFormDependency name={['userCate']}>
+                  {({ userCate }) => (userCate == 6 || userCate == 5) && (
+                    <div className='formItem' style={{position:'relative',top:-62}}>
                       <ProFormSelect
                         name="doctorLevel"
                         label="医师:"

+ 10 - 1
src/service/role.ts

@@ -1,7 +1,7 @@
 /*
  * @Author: your name
  * @Date: 2022-01-18 14:56:29
- * @LastEditTime: 2023-03-21 11:18:57
+ * @LastEditTime: 2023-03-23 14:07:59
  * @LastEditors: code4eat awesomedema@gmail.com
  * @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
  * @FilePath: /KC-MiddlePlatform/src/service/role.ts
@@ -147,6 +147,15 @@ export const initRoleFunc = async (params:{hospId:number;roleId:number}) => {
   });
 };
 
+//初始化角色只读
+export const initRoleReadOnlyFunc = async (params:{hospId:number;roleId:number}) => {
+  return request('/centerSys/role/initRoleReadOnly', {
+    method: 'POST',
+    params,
+  });
+};
+
+