Procházet zdrojové kódy

藏品登记-开始

shaogen1995 před 20 hodinami
rodič
revize
4792e442a2

+ 4 - 20
src/pages/Isystem/I6role/I6edit.tsx

@@ -6,7 +6,7 @@ import MyPopconfirm from '@/components/MyPopconfirm'
 import classNmaes from 'classnames'
 import { MessageFu } from '@/utils/message'
 import { I6_APIgetAddTreeList, I6_APIgetInfo, I6_APIsave } from '@/store/action/Isystem/I6role'
-import { TypeI6Role } from './data'
+import { I6processChildren, TypeI6Role } from './data'
 
 type Props = {
   sId: number
@@ -40,24 +40,8 @@ function I6edit({ sId, closeFu, addTableFu, editTableFu }: Props) {
   const [scopeStorageIds, setScopeStorageIds] = useState<number[]>([])
 
   const otherIdsFu = useCallback((data: TypeI6Role[]) => {
-    let goodIdsTemp: TypeI6Role[] = []
-    let zhangIdsTemp: TypeI6Role[] = []
-
-    data.forEach(v1 => {
-      if (v1.children) {
-        v1.children.forEach(v2 => {
-          if (v2.children) {
-            v2.children.forEach(v3 => {
-              if (v2.id === 310 && v2.name === '藏品总账') zhangIdsTemp.push(v3)
-              else if (v2.id === 330 && v2.name === '藏品信息') goodIdsTemp.push(v3)
-            })
-          }
-        })
-      }
-    })
-
-    setGoodIds(goodIdsTemp)
-    setZhangIds(zhangIdsTemp)
+    setGoodIds(I6processChildren(data, 330, '藏品信息'))
+    setZhangIds(I6processChildren(data, 310, '藏品总账'))
   }, [])
 
   // 编辑进来获取详情
@@ -139,7 +123,7 @@ function I6edit({ sId, closeFu, addTableFu, editTableFu }: Props) {
       })
     })
     // 过滤角色
-    return arr.filter(v => v !== 750)
+    return arr
   }, [roleArr])
 
   // 没有通过校验

+ 7 - 0
src/pages/Isystem/I6role/data.ts

@@ -19,3 +19,10 @@ export type TypeI6Role = {
   name: string
   resourceType: string
 }
+export const I6processChildren = (data: TypeI6Role[], targetId: number, targetName: string) =>
+  data.flatMap(
+    v1 =>
+      v1.children
+        ?.filter(v2 => v2.id === targetId && v2.name === targetName)
+        .flatMap(v2 => v2.children || []) || []
+  )

+ 3 - 0
src/pages/Layout/index.module.scss

@@ -36,6 +36,9 @@
 
         .layoutLRowBox {
           margin-bottom: 20px;
+          &:last-child {
+            margin-bottom: 50px;
+          }
           .layoutLRowBoxTxt {
             padding-left: 60px;
             cursor: pointer;

+ 24 - 22
src/pages/Layout/index.tsx

@@ -47,28 +47,30 @@ function Layout() {
   const sroolTimeRef = useRef(-1)
 
   useEffect(() => {
-    const arr = location.pathname.split('/')
-    let pathTemp = '/'
-    if (arr[1]) pathTemp = '/' + arr[1]
-
-    // 滚动到中间
-    clearTimeout(sroolTimeRef.current)
-    if (pathTemp !== '/goodsLook') {
-      sroolTimeRef.current = window.setTimeout(() => {
-        if (sroolRef.current) {
-          const dom = document.querySelector('.layoutLeftMain') as HTMLDivElement
-          if (dom) {
-            dom.scrollTo({
-              top: sroolRef.current.offsetTop - 350,
-              behavior: 'smooth'
-            })
+    if (loding) {
+      const arr = location.pathname.split('/')
+      let pathTemp = '/'
+      if (arr[1]) pathTemp = '/' + arr[1]
+
+      // 滚动到中间
+      clearTimeout(sroolTimeRef.current)
+      if (pathTemp !== '/goodsLook') {
+        sroolTimeRef.current = window.setTimeout(() => {
+          if (sroolRef.current) {
+            const dom = document.querySelector('.layoutLeftMain') as HTMLDivElement
+            if (dom) {
+              dom.scrollTo({
+                top: sroolRef.current.offsetTop - 350,
+                behavior: 'smooth'
+              })
+            }
           }
-        }
-      }, 200)
-    }
+        }, 200)
+      }
 
-    setPath(pathTemp)
-  }, [location])
+      setPath(pathTemp)
+    }
+  }, [location, loding])
 
   const [routerSonRes, setRouterSonRes] = useState<RouterTypeRow[]>([])
 
@@ -79,7 +81,7 @@ function Layout() {
     const res = await I6_APIgetInfo(userInfo.roleId)
 
     if (res.code === 0) {
-      const isOkIdArr: number[] = [9901]
+      let isOkIdArr: number[] = [9901]
 
       const roleArr: TypeI6Role[] = res.data.permission
 
@@ -104,7 +106,7 @@ function Layout() {
         ;[750].forEach(v => {
           isOkIdArr.push(v)
         })
-      }
+      } else if (isOkIdArr.includes(750)) isOkIdArr = isOkIdArr.filter(v => v !== 750)
 
       // 页面权限id,存到仓库
       store.dispatch({ type: 'layout/authorityIds', payload: isOkIdArr })