فهرست منبع

fix(user): edit passwrod

Lind 4 سال پیش
والد
کامیت
ee69c58a79
1فایلهای تغییر یافته به همراه23 افزوده شده و 4 حذف شده
  1. 23 4
      src/pages/system/User/index.tsx

+ 23 - 4
src/pages/system/User/index.tsx

@@ -1,5 +1,5 @@
 import { PageContainer } from '@ant-design/pro-layout';
-import React, { useRef } from 'react';
+import { useEffect, useRef, useState } from 'react';
 import {
   EditOutlined,
   KeyOutlined,
@@ -12,6 +12,9 @@ import { useIntl } from '@@/plugin-locale/localeExports';
 import BaseCrud from '@/components/BaseCrud';
 import { CurdModel } from '@/components/BaseCrud/model';
 import BaseService from '@/utils/BaseService';
+import { observer } from '@formily/react';
+import { Store } from 'jetlinks-store';
+import SystemConst from '@/utils/const';
 
 const menu = (
   <Menu>
@@ -22,10 +25,17 @@ const menu = (
 );
 
 export const service = new BaseService<UserItem>('user');
-const User: React.FC = () => {
+const User = observer(() => {
   const intl = useIntl();
   const actionRef = useRef<ActionType>();
 
+  const [model, setModel] = useState(CurdModel.model);
+
+  useEffect(() => {
+    const modelSubscription = Store.subscribe(SystemConst.BASE_CURD_MODEL, setModel);
+    return () => modelSubscription.unsubscribe();
+  }, [CurdModel.model]);
+
   const columns: ProColumns<UserItem>[] = [
     {
       dataIndex: 'index',
@@ -109,7 +119,14 @@ const User: React.FC = () => {
       align: 'center',
       width: 200,
       render: (text, record) => [
-        <a key="editable" onClick={() => CurdModel.update(record)}>
+        <a
+          key="editable"
+          onClick={() => {
+            CurdModel.update(record);
+            CurdModel.model = 'edit';
+            setModel('edit');
+          }}
+        >
           <Tooltip
             title={intl.formatMessage({
               id: 'pages.data.option.edit',
@@ -207,6 +224,7 @@ const User: React.FC = () => {
         'x-component-props': {
           checkStrength: true,
         },
+        'x-hidden': model === 'edit',
         'x-reactions': [
           {
             dependencies: ['.confirmPassword'],
@@ -232,6 +250,7 @@ const User: React.FC = () => {
         }),
         'x-decorator': 'FormItem',
         'x-component': 'Password',
+        'x-hidden': model === 'edit',
         'x-component-props': {
           checkStrength: true,
         },
@@ -271,6 +290,6 @@ const User: React.FC = () => {
       />
     </PageContainer>
   );
-};
+});
 
 export default User;