Pārlūkot izejas kodu

fix: codeReview

lanjianrong 3 gadi atpakaļ
vecāks
revīzija
5a7720f8d9

+ 10 - 17
src/pages/Permission/Role/components/SetPermission/index.tsx

@@ -6,11 +6,9 @@ import { useRequest } from 'umi'
 const { TabPane } = Tabs
 
 const SetPermission = ({ ID, activeKey }) => {
-  const bottom = 10
   const [state, setState] = useState({
-    checked: true
+    frontPermission: [] // 前台权限
   })
-  const [selectdType, setSelectdType] = useState<any[]>([])
   const { run: trySetRolePermission } = useRequest(
     (params: API.SetRolePermissionParams) => setRolePermission(params),
     {
@@ -20,22 +18,15 @@ const SetPermission = ({ ID, activeKey }) => {
       }
     }
   )
-  const handleOnchange = (e, type) => {
-    setState({ ...state, checked: e.target.checked })
-    const types = [...selectdType]
-    const checked = e.target.checked
+  const handleOnchange = (checked: boolean, perm: string) => {
     if (checked) {
-      if (!selectdType.includes(type)) {
-        types.push(type)
-      } else {
-        types = types.filter(item => item !== type)
-      }
-      setSelectdType(types)
-      console.log(type)
+      setState({ ...state, frontPermission: [...state.frontPermission, perm] })
+    } else {
+      setState({ ...state, frontPermission: state.frontPermission.filter(item => item !== perm) })
     }
   }
   const handleSubmit = () => {
-    // trySetRolePermission({ ID, frontPermission: state.checkValue })
+    trySetRolePermission({ ID, frontPermission: state.frontPermission })
   }
   useEffect(() => {
     if (activeKey === '2') {
@@ -63,7 +54,9 @@ const SetPermission = ({ ID, activeKey }) => {
               <div>
                 <h4>我的项目</h4>
                 <div className="my-2">
-                  <Checkbox onChange={e => handleOnchange(e, 'access')} checked={state.checked}>
+                  <Checkbox
+                    onChange={e => handleOnchange(e.target.checked, 'access')}
+                    checked={state.frontPermission.includes('access')}>
                     查看项目
                   </Checkbox>
                   <Checkbox onChange={e => handleOnchange(e, 'add')} checked={state.checked}>
@@ -254,7 +247,7 @@ const SetPermission = ({ ID, activeKey }) => {
           </div>
         </TabPane>
       </Tabs>
-      <Affix offsetBottom={bottom}>
+      <Affix offsetBottom={10}>
         <Button type="primary" onClick={handleSubmit}>
           提交
         </Button>

+ 8 - 18
src/pages/Project/Management/List/components/ProjectModal.tsx

@@ -2,7 +2,7 @@ import { connect, useRequest } from 'umi'
 import { message } from 'antd'
 import { addProject, updateProject } from '@/services/api/project'
 import { BaseMenuEnum, SchemaEnum } from '@/pages/Schema/Base'
-import { createForm, onFieldMount } from '@formily/core'
+import { createForm } from '@formily/core'
 import {
   Form,
   FormButtonGroup,
@@ -24,12 +24,11 @@ import { createSchemaField } from '@formily/react'
 
 import type { SchemaBaseModelState } from '@/pages/Schema/Base/model'
 import type { ConnectProps } from 'umi'
-import type { ProjectModelState } from '../../../model'
 
 export enum ModalType {
-  ADD = 0,
-  UPDATE = 1,
-  PREVIEW = 2
+  ADD,
+  UPDATE,
+  PREVIEW
 }
 
 type ProjectModalProps = ConnectProps & {
@@ -46,17 +45,11 @@ const ProjectModal: React.FC<ProjectModalProps> = ({
   projectSchema,
   type,
   defaultFormData,
-  pTypeList,
   reload
 }) => {
   const formInstance = createForm({
     validateFirst: true,
-    initialValues: type === ModalType.UPDATE ? defaultFormData : null,
-    effects() {
-      onFieldMount('projectTypeID', field => {
-        field.dataSource = pTypeList
-      })
-    }
+    initialValues: type === ModalType.UPDATE ? defaultFormData : null
   })
 
   const SchemaField = createSchemaField({
@@ -119,9 +112,6 @@ const ProjectModal: React.FC<ProjectModalProps> = ({
   )
 }
 
-export default connect(
-  ({ project, schemaBase }: { project: ProjectModelState; schemaBase: SchemaBaseModelState }) => ({
-    pTypeList: project.projectTypeList.map(item => ({ label: item.name, value: item.ID })),
-    projectSchema: schemaBase.base[BaseMenuEnum.PROJECT]
-  })
-)(ProjectModal)
+export default connect(({ schemaBase }: { schemaBase: SchemaBaseModelState }) => ({
+  projectSchema: schemaBase.base[BaseMenuEnum.PROJECT]
+}))(ProjectModal)