Selaa lähdekoodia

修复角色绑定bug

code4eat 11 kuukautta sitten
vanhempi
commit
cbd3abadee

+ 10 - 2
config/config.ts

@@ -1,7 +1,7 @@
 /*
  * @Author: your name
  * @Date: 2022-01-07 10:04:20
- * @LastEditTime: 2024-08-21 17:43:03
+ * @LastEditTime: 2024-09-06 14:36:23
  * @LastEditors: code4eat awesomedema@gmail.com
  * @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
  * @FilePath: /KC-MiddlePlatform/config/config.ts
@@ -76,7 +76,7 @@ export default defineConfig({
           path: '/budgetManaSystem',
           microApp: 'budgetManaSystem',
           microAppProps: {
-            autoSetLoading: true,
+            // autoSetLoading: true,
             autoCaptureError: true,
           },
         },
@@ -96,6 +96,14 @@ export default defineConfig({
             //loader: (loading:boolean) => <div>loading</div>,
           },
         },
+        {
+          path: '/MedicalWisdomCheckSys',
+          microApp: 'MedicalWisdomCheckSys',
+          microAppProps: {
+            autoCaptureError: true,
+            //loader: (loading:boolean) => <div>loading</div>,
+          },
+        },
         {
           path: '/devServer',
           microApp: 'devServer',

+ 7 - 2
src/app.tsx

@@ -358,14 +358,19 @@ export const qiankun = async () => {
         },
         {
           name: 'pfmBackMana', // 唯一 id
-          //entry: '//localhost:8001'
-          entry: '//120.27.235.181:5000/pfmManager/', // 开发
+          entry: '//localhost:8001'
+          //entry: '//120.27.235.181:5000/pfmManager/', // 开发
         },
         {
           name: 'CostAccountingSys', // 唯一 id
           entry: '//localhost:8001',
           //entry: '//120.27.235.181:5000/costAccount/', // 开发
         },
+        {
+          name: 'MedicalWisdomCheckSys', // 唯一 id
+          //entry: '//localhost:8804',
+          entry: '//120.27.235.181:5000/pfmview/', // 开发
+        },
         // {
         //   name: 'personnelManaSystem', // 唯一 id
         //   entry: '//192.168.0.118:8005'

+ 24 - 62
src/pages/platform/components/usersEditer/index.tsx

@@ -1,57 +1,43 @@
 /*
- * @Author: your name
- * @Date: 2022-01-19 14:53:37
- * @LastEditTime: 2024-01-19 14:45:27
+ * @Author: code4eat awesomedema@gmail.com
+ * @Date: 2024-04-09 18:07:35
  * @LastEditors: code4eat awesomedema@gmail.com
- * @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
+ * @LastEditTime: 2024-09-04 16:57:33
  * @FilePath: /KC-MiddlePlatform/src/pages/platform/components/usersEditer/index.tsx
+ * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
  */
-
 import React, { useEffect, useState } from 'react';
-import KCTable from '@/components/kcTable';
 import { Input, Transfer } from 'antd';
-import { getUsers } from '@/service/user';
 import type { EditUsersDataType } from '@/service/user';
-import { ProColumns } from '@ant-design/pro-table';
-import { TableRequestParamsType } from '@/typings';
-import './style.less';
-
 import type { TransferDirection } from 'antd/es/transfer';
 
 export interface UserEditerType {
-  value?: React.Key[] | React.Key[];
-  onChange?: (selectedRowKeys: React.Key[]) => {};
+  value?: React.Key[];  // 修复类型声明
+  onChange?: (selectedRowKeys: React.Key[]) => void;  // 修复类型声明
   noAction?: boolean;
-  total?: [];
+  total?: EditUsersDataType[];  // 修复类型声明
 }
 
 const UserEditer: React.FC<UserEditerType> = ({ value = [], onChange, noAction = false, total = [] }) => {
-  const [selectedKeys, setSelectedKeys] = useState<React.Key[]>([]);
+  const [selectedKeys, setSelectedKeys] = useState<React.Key[]>(value);  // 初始状态为 value
   const [keyword, setKeyword] = useState('');
+  const [data, setData] = useState<EditUsersDataType[]>(total);  // 初始状态为 total
+  const [targetKeys, setTargetKeys] = useState<React.Key[]>(value);  // 初始状态为 value
 
-  const [data, setData] = useState<EditUsersDataType[]>([]);
-  const [targetKeys, setTargetKeys] = useState<React.Key[]>([]);
-
-  //record: T, selected: boolean, selectedRows: T[], nativeEvent: Event
-  const onSelectHandle = (record: EditUsersDataType, selected: boolean, selectedRows: EditUsersDataType[], nativeEvent: Event) => {
-    // console.log({record,selected,selectedRows,nativeEvent});
+  const onSelectHandle = (record: EditUsersDataType, selected: boolean) => {
     if (selected) {
-      //保证每次选择能够保留之前选中的
       setSelectedKeys([...selectedKeys, record.id]);
     } else {
-      const _selectedKeys = selectedKeys.filter((t) => t != record.id);
-      setSelectedKeys([..._selectedKeys]);
+      setSelectedKeys(selectedKeys.filter((t) => t !== record.id));
     }
   };
 
-  const onChangeHandle = (selectedRowKeys: React.Key[], selectedRows: any[]) => {
-    if (selectedRows.length == 0) {
-      //取消选择时
-      setSelectedKeys([]);
-    }
+  const onChangeHandle = (selectedRowKeys: React.Key[]) => {
+    setSelectedKeys(selectedRowKeys);
+    if (onChange) onChange(selectedRowKeys);
   };
 
-  const onSearchHandle = (e: React.ChangeEvent & { target: { value: string } }) => {
+  const onSearchHandle = (e: React.ChangeEvent<HTMLInputElement>) => {
     setKeyword(e.target.value);
   };
 
@@ -59,19 +45,19 @@ const UserEditer: React.FC<UserEditerType> = ({ value = [], onChange, noAction =
 
   const handleChange = (newTargetKeys: string[]) => {
     setTargetKeys(newTargetKeys);
-    onChange && onChange(newTargetKeys);
+    if (onChange) onChange(newTargetKeys);
   };
 
-  const handleSearch = (dir: TransferDirection, value: string) => {};
-
-  useEffect(() => {
-    onChange && onChange(selectedKeys);
-  }, [selectedKeys]);
+  const handleSearch = (dir: TransferDirection, value: string) => {
+    
+  };
 
+  // 同步外部 value 到组件内部状态
   useEffect(() => {
     setTargetKeys(value);
-    setData(total);
-  }, []);
+    setSelectedKeys(value);
+    setData(total);  // 这里是关键,确保数据也同步
+  }, [value, total]);  // 依赖于 value 和 total 的变化
 
   return (
     <div className="UserEditer">
@@ -87,30 +73,6 @@ const UserEditer: React.FC<UserEditerType> = ({ value = [], onChange, noAction =
         onSearch={handleSearch}
         render={(item) => (item.name ? `${item.name}(${item.account})` : '')}
       />
-
-      {/* <div className="search">
-        <span className="label">搜索人员:</span>
-        <Input
-          className="valueArea"
-          onChange={onSearchHandle}
-          allowClear={true}
-          placeholder="请输入姓名、工号"
-        />
-      </div>
-      <KCTable
-        rowKey="id"
-        columns={columns.filter((t) => (noAction ? t.title != '操作' : t))}
-        request={getData}
-        params={{ keyword: keyword }}
-        options={false}
-        search={false}
-        rowSelection={{
-          checkStrictly: false,
-          selectedRowKeys: selectedKeys,
-          onChange: onChangeHandle,
-          onSelect: onSelectHandle,
-        }}
-      /> */}
     </div>
   );
 };

+ 32 - 34
src/pages/platform/setting/roleManage/modals/modal.tsx

@@ -1,12 +1,3 @@
-/*
- * @Author: your name
- * @Date: 2022-01-12 17:11:11
- * @LastEditTime: 2024-07-25 16:39:22
- * @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
- */
-
 import React from 'react';
 import KCModal from '@/components/KCModal';
 import KCProSelect from '@/components/KCProSelect';
@@ -26,8 +17,22 @@ interface ActModalProps extends roleManageModelState {
 }
 
 const ActModal: React.FC<ActModalProps> = ({ dispatch, isShowModal, tableAct, currentEdit, hospId }) => {
+
+  const setInitialValues = () => {
+    if (tableAct === TableActType.EDIT) {
+      return { ...currentEdit };
+    }
+    if (tableAct === TableActType.ADD) {
+      return { hospId: hospId };
+    }
+    if (tableAct === TableActType.EDITMENU || tableAct === TableActType.EDITRELAUSER) {
+      return { ...currentEdit };
+    }
+  };
+
+  const initialValues = setInitialValues(); // 在表单渲染之前设置初始值
+
   const onVisibleChangeHandle = (bool: boolean) => {
-    // console.log({bool});
     if (!bool) {
       dispatch &&
         dispatch({
@@ -37,19 +42,22 @@ const ActModal: React.FC<ActModalProps> = ({ dispatch, isShowModal, tableAct, cu
   };
 
   const onFinishHandle = (data: any & AddUsersDataType) => {
-    if (tableAct == TableActType.ADD) {
+    console.log({initialValues});
+    
+
+    if (tableAct === TableActType.ADD) {
       dispatch &&
         dispatch({
           type: 'roleManageModel/postAddData',
-          payload: data,
+          payload: data,  // 使用合并后的数据
         });
     }
 
-    if (tableAct == TableActType.EDIT || tableAct == TableActType.EDITMENU || tableAct == TableActType.EDITRELAUSER) {
+    if (tableAct === TableActType.EDIT || tableAct === TableActType.EDITMENU || tableAct === TableActType.EDITRELAUSER) {
       dispatch &&
         dispatch({
           type: 'roleManageModel/postEditData',
-          payload: data,
+          payload: data,  // 使用合并后的数据
         });
     }
 
@@ -57,31 +65,21 @@ const ActModal: React.FC<ActModalProps> = ({ dispatch, isShowModal, tableAct, cu
   };
 
   const setModalTitle = () => {
-    if (tableAct == TableActType.EDIT) {
+    if (tableAct === TableActType.EDIT) {
       return '编辑角色';
     }
-    if (tableAct == TableActType.ADD) {
+    if (tableAct === TableActType.ADD) {
       return '新增角色';
     }
-    if (tableAct == TableActType.EDITMENU) {
+    if (tableAct === TableActType.EDITMENU) {
       return '绑定菜单';
     }
-    if (tableAct == TableActType.EDITRELAUSER) {
+    if (tableAct === TableActType.EDITRELAUSER) {
       return '绑定人员';
     }
   };
 
-  const setInitialValues = () => {
-    if (tableAct == TableActType.EDIT) {
-      return { ...currentEdit };
-    }
-    if (tableAct == TableActType.ADD) {
-      return { hospId: hospId };
-    }
-    if (tableAct == TableActType.EDITMENU || tableAct == TableActType.EDITRELAUSER) {
-      return { ...currentEdit };
-    }
-  };
+  
 
   return (
     <KCModal
@@ -89,26 +87,26 @@ const ActModal: React.FC<ActModalProps> = ({ dispatch, isShowModal, tableAct, cu
       onVisibleChange={onVisibleChangeHandle}
       layout="horizontal"
       width={500}
-      initialValues={setInitialValues()}
+      initialValues={initialValues}
       title={setModalTitle()}
       labelCol={{
         span: 5,
       }}
-      onFinish={async (data) => onFinishHandle(data)}
+      onFinish={async (data) => onFinishHandle({...data})}
     >
-      {tableAct == TableActType.EDITMENU && (
+      {tableAct === TableActType.EDITMENU && (
         <Form.Item name="bindMenuIds">
           <MenuEditer noAction={true} hospId={currentEdit?.hospId} />
         </Form.Item>
       )}
 
-      {tableAct == TableActType.EDITRELAUSER && (
+      {tableAct === TableActType.EDITRELAUSER && (
         <Form.Item name="bindUserIds">
           <UserEditer total={currentEdit ? currentEdit.allUsers : []} noAction={true} />
         </Form.Item>
       )}
 
-      {(tableAct == TableActType.ADD || tableAct == TableActType.EDIT) && (
+      {(tableAct === TableActType.ADD || tableAct === TableActType.EDIT) && (
         <>
           <KCProSelect
             label="选择院区"