Преглед изворни кода

feat: 应用BasicTable至其他栏目

lanjianrong пре 5 година
родитељ
комит
3ce65d8f57

+ 10 - 8
src/access.ts

@@ -1,29 +1,31 @@
 // eslint-disable-next-line func-names
 export default function (initialState) {
   const { roles = [], currentUser = {}, permData = {} } = initialState || {}
-  const authRouteFilter = route => {
+
+  const authPermDataFilter = route => {
     if (currentUser.isAdmin) {
       return true
     }
-    if (roles.filter(r => r.endsWith('_access')).includes(`${route.name}_access`)) {
-      if (route.validatePerm) {
-        return authPermDataFilter(route)
-      }
+    const name = route.path?.match(/\/(\w*)\//)[1]
+    if (name && permData[name] && permData[name]?.length) {
       return true
     }
     return false
   }
 
-  const authPermDataFilter = route => {
+  const authRouteFilter = route => {
     if (currentUser.isAdmin) {
       return true
     }
-    const name = route.path?.match(/\/(\w*)\//)[1]
-    if (name && permData[name] && permData[name]?.length) {
+    if (roles.filter(r => r.endsWith('_access')).includes(`${route.name}_access`)) {
+      if (route.validatePerm) {
+        return authPermDataFilter(route)
+      }
       return true
     }
     return false
   }
+
   return {
     authRouteFilter,
     authPermDataFilter

+ 3 - 3
src/components/Table/src/BasicTable.tsx

@@ -147,6 +147,8 @@ const BasicTable: {
   }
 
   const rowSelectionOptions = useMemo(() => {
+    console.log('rowSelection', rowSelection)
+
     if (isNullOrUnDef(rowSelection)) return false
     if (Reflect.has(rowSelection, 'onChange')) {
       const { onChange: rowOnChange } = rowSelection
@@ -209,9 +211,7 @@ const BasicTable: {
         bordered={isNullOrUnDef(bordered) ? bordered : true}
         onLoad={dataSource => setState({ ...state, dataSource })}
         onSizeChange={handleOnSizeChange}
-        rowSelection={{
-          ...rowSelectionOptions
-        }}
+        rowSelection={rowSelectionOptions}
       />
     </div>
   )

+ 5 - 8
src/pages/Hr/Employee/index.jsx

@@ -1,18 +1,16 @@
 import React, { useState } from 'react'
 import consts from '@/consts'
-import ProTable from '@ant-design/pro-table'
 import { Button, Popconfirm, message } from 'antd'
 import { useModal } from '@/components/Modal'
 import RoleMenu from '@/pages/Hr/Employee/components/RoleMenu'
 import { queryStaff } from '@/services/staff'
-import { useTableScroll } from '@/hooks/useAutoTable'
 import EmployeeDetail from '@/pages/Hr/Employee/components/EmployeeDetail'
 import { delDepartment } from '@/services/department'
 import { connect } from 'dva'
+import BasicTable from '@/components/Table'
 
 const Employee = props => {
   const { dispatch } = props
-  const [selectKeys] = useState([])
   const [state, setState] = useState({
     params: { id: '0' }
   })
@@ -98,7 +96,6 @@ const Employee = props => {
       width: 50
     }
   ]
-  const { getScrollRef } = useTableScroll(columns, selectKeys)
   const onSelect = id => {
     setState({ ...state, params: { id } })
   }
@@ -131,8 +128,9 @@ const Employee = props => {
             )}
           </div>
           {state.params.id && (
-            <ProTable
-              bordered
+            <BasicTable
+              mainMenuType="hr"
+              columnStateType="EMPLOYEE"
               params={{ departmentId: state.params.id }}
               rowKey={record => record.id}
               columns={columns}
@@ -145,8 +143,7 @@ const Employee = props => {
                   total
                 }
               }}
-              scroll={getScrollRef}
-              search={{ filterType: 'light' }}
+              search={false}
             />
           )}
         </div>

+ 8 - 26
src/pages/Product/Lock/Lockstore/index.jsx

@@ -1,6 +1,5 @@
 import React, { useEffect, useState, useRef } from 'react'
 import { Tag, Select, Tooltip, Input, DatePicker, Button } from 'antd'
-import ProTable from '@ant-design/pro-table'
 import consts from '@/consts'
 import { useModel, connect } from 'umi'
 import { queryLock } from '@/services/lock'
@@ -8,13 +7,12 @@ import LocksDetail from '@/pages/Product/Lock/LockStore/components/LocksDetail'
 import ContactDetail from '@/pages/Customer/Client/components/ClientDetail'
 import SoftwareDetail from '@/pages/Product/Lock/LockStore/components/SoftwareDetail'
 import { useModal } from '@/components/Modal'
-import { useTableScroll } from '@/hooks/useAutoTable'
 import CompanyDetail from '@/pages/Customer/Company/components/CompanyDetail'
 import { refactorSortField } from '@/utils/utils'
 import ReceiveLock from './components/ReceiveLock'
 import ReceiveNewLock from './components/ReceiveNewLock'
-import PermSelect from '@/pages/Customer/Company/components/PermSelect'
 import { PermDataTypeEunm } from '@/pages/Customer/Company/components/PermSelect'
+import BasicTable from '@/components/Table'
 
 // 渲染产品标签
 export const ProductLabel = ({ data }) => {
@@ -82,15 +80,13 @@ const longlePreserveStatusNum = {
   3: { text: '收回' }
 }
 
-// 刷新
-const refreshData = () => {
-  tRef.current.reload()
-}
-
 const LockStore = ({ prodList = [], dispatch, shouldUpdate }) => {
   const tRef = useRef()
-  const [selectKeys] = useState([])
   const { toggleDrawer, setDrawerProps, toggleModal, setModalProps } = useModal()
+  // 刷新
+  const refreshData = () => {
+    tRef.current?.reload()
+  }
   const showReceiveLockModal = () => {
     setModalProps({
       width: '60vw',
@@ -351,28 +347,15 @@ const LockStore = ({ prodList = [], dispatch, shouldUpdate }) => {
     }
   })
 
-  const { getScrollRef, redoHeight } = useTableScroll(columns, selectKeys)
-
-  // 处理权限Select下拉组件OnChange事件
-  const handlePermChange = ({ staffIds = [], dataPermission }) => {
-    if (staffIds?.length) {
-      setState({ ...state, params: { ...state.params, staffIds, dataPermission: null } })
-      return
-    }
-    setState({ ...state, params: { ...state.params, staffIds: null, dataPermission } })
-  }
-
   return (
-    <ProTable
+    <BasicTable
       rowKey={record => record.id}
+      mainMenuType="product"
+      columnStateType="LOCKSTORE"
       search={false}
-      bordered
       actionRef={tRef}
       params={state.params}
       columns={columns}
-      onLoadingChange={loadingStatus => {
-        loadingStatus && redoHeight()
-      }}
       request={async (params, sort, filter) => {
         const srotOrder = refactorSortField(sort)
         const {
@@ -396,7 +379,6 @@ const LockStore = ({ prodList = [], dispatch, shouldUpdate }) => {
       onColumnsStateChange={map => setColumnsStateMap(map)}
       headerTitle={
         <>
-          <PermSelect onConfirm={handlePermChange} dataType={PermDataTypeEunm.PRODUCT} />
           {state.totalOld ? (
             <Button type="primary" className="ml-4" onClick={() => showReceiveLockModal()}>
               待接收锁 ({state.totalOld})