Jelajahi Sumber

fix: 客户、商机调整按钮级别权限控制逻辑

lanjianrong 4 tahun lalu
induk
melakukan
e854b363ca

+ 10 - 8
src/pages/Customer/Business/index.jsx

@@ -1,5 +1,5 @@
 import React, { useState, useEffect, useRef, useMemo } from 'react'
 import React, { useState, useEffect, useRef, useMemo } from 'react'
-import { connect, useModel } from 'umi'
+import { connect, useAccess, useModel } from 'umi'
 import { getBusinessList } from '@/services/customer'
 import { getBusinessList } from '@/services/customer'
 import consts from '@/consts'
 import consts from '@/consts'
 import { Select, Tooltip, Input, Button } from 'antd'
 import { Select, Tooltip, Input, Button } from 'antd'
@@ -13,6 +13,7 @@ import { useModal } from '@/components/ModalStore'
 
 
 const Business = ({ dispatch, groupList, shouldUpdate, loading, refreshGroupList }) => {
 const Business = ({ dispatch, groupList, shouldUpdate, loading, refreshGroupList }) => {
   const [defaultPermAuthCache, defaultStaffIds] = getPermAuthCache(PermDataTypeEunm.CUSTOMER)
   const [defaultPermAuthCache, defaultStaffIds] = getPermAuthCache(PermDataTypeEunm.CUSTOMER)
+  const hasAddPerm = useAccess()?.validatePermByType('business_add')
   const dispatchModal = useModal()
   const dispatchModal = useModal()
   const tRef = useRef(null)
   const tRef = useRef(null)
   const defaultGroupId = getAuthCache(BUSINESS_GROUP_KEY) || null
   const defaultGroupId = getAuthCache(BUSINESS_GROUP_KEY) || null
@@ -20,10 +21,6 @@ const Business = ({ dispatch, groupList, shouldUpdate, loading, refreshGroupList
     orderIds: [],
     orderIds: [],
     params: { businessGroupId: defaultGroupId },
     params: { businessGroupId: defaultGroupId },
     groupParams: { staffIds: defaultStaffIds, dataPermission: defaultPermAuthCache }
     groupParams: { staffIds: defaultStaffIds, dataPermission: defaultPermAuthCache }
-    // funnelData: groupList
-    //   ?.find(item => item.value === defaultGroupId)
-    //   ?.items?.filter(item => !item.endProcess)
-    //   ?.map(item => ({ ...item, percentage: parseInt(item.percentage, 10) }))
   })
   })
 
 
   const funnelData = useMemo(() => {
   const funnelData = useMemo(() => {
@@ -82,7 +79,8 @@ const Business = ({ dispatch, groupList, shouldUpdate, loading, refreshGroupList
               group: groupList
               group: groupList
             })
             })
           }
           }
-          className="text-primary cursor-pointer hover:text-hex-967bbd">
+          className="text-primary cursor-pointer hover:text-hex-967bbd"
+        >
           {text}
           {text}
         </span>
         </span>
       )
       )
@@ -95,7 +93,8 @@ const Business = ({ dispatch, groupList, shouldUpdate, loading, refreshGroupList
         record.customerId && (
         record.customerId && (
           <span
           <span
             onClick={() => dispatchModal('D_COMPANY_DETAIL', { dataId: record.customerId })}
             onClick={() => dispatchModal('D_COMPANY_DETAIL', { dataId: record.customerId })}
-            className="text-primary cursor-pointer hover:text-hex-967bbd">
+            className="text-primary cursor-pointer hover:text-hex-967bbd"
+          >
             {text}
             {text}
           </span>
           </span>
         )
         )
@@ -223,13 +222,16 @@ const Business = ({ dispatch, groupList, shouldUpdate, loading, refreshGroupList
               actions: [
               actions: [
                 <Button
                 <Button
                   type="primary"
                   type="primary"
+                  key="add_business"
                   className="flex items-center"
                   className="flex items-center"
+                  disabled={!hasAddPerm}
                   onClick={() =>
                   onClick={() =>
                     dispatchModal('M_BUSINESS_ADD', {
                     dispatchModal('M_BUSINESS_ADD', {
                       groupList: state.groupList,
                       groupList: state.groupList,
                       reload: () => tRef.current?.reload()
                       reload: () => tRef.current?.reload()
                     })
                     })
-                  }>
+                  }
+                >
                   <Plus className="mr-1" />
                   <Plus className="mr-1" />
                   商机
                   商机
                 </Button>
                 </Button>

+ 3 - 2
src/pages/Customer/Client/index.jsx

@@ -1,5 +1,5 @@
 import { Input, Button, message, Tooltip } from 'antd'
 import { Input, Button, message, Tooltip } from 'antd'
-import { connect, useModel } from 'umi'
+import { connect, useAccess, useModel } from 'umi'
 import React, { useEffect, useState, useRef, useMemo } from 'react'
 import React, { useEffect, useState, useRef, useMemo } from 'react'
 import consts from '@/consts'
 import consts from '@/consts'
 import LazyCascader, { formatValues } from '@/components/LazyCascader'
 import LazyCascader, { formatValues } from '@/components/LazyCascader'
@@ -31,9 +31,9 @@ const Client = props => {
     loading,
     loading,
     sourceList
     sourceList
   } = props
   } = props
-  console.log(shouldUpdate)
 
 
   const { initialState: { permData } = { permData: {} } } = useModel('@@initialState')
   const { initialState: { permData } = { permData: {} } } = useModel('@@initialState')
+  const hasAddPerm = useAccess()?.validatePermByType('client_add') || false
   const tRef = useRef()
   const tRef = useRef()
   const [tagState, setTagState] = useState({
   const [tagState, setTagState] = useState({
     tagIds: [],
     tagIds: [],
@@ -593,6 +593,7 @@ const Client = props => {
             <Button
             <Button
               type="primary"
               type="primary"
               key="addClientBtn"
               key="addClientBtn"
+              disabled={!hasAddPerm}
               onClick={() =>
               onClick={() =>
                 dispatchModal('M_CLIENT_ADD', {
                 dispatchModal('M_CLIENT_ADD', {
                   onConfirm: handleAddClient,
                   onConfirm: handleAddClient,

+ 14 - 15
src/pages/Customer/Company/index.jsx

@@ -28,7 +28,6 @@ const Company = props => {
     loading
     loading
   } = props
   } = props
 
 
-  console.log(shouldUpdate)
   const { initialState: { permData } = { permData: {} } } = useModel('@@initialState')
   const { initialState: { permData } = { permData: {} } } = useModel('@@initialState')
 
 
   const hasAddPerm = useAccess()?.validatePermByType('company_add')
   const hasAddPerm = useAccess()?.validatePermByType('company_add')
@@ -507,20 +506,20 @@ const Company = props => {
               className="hover:bg-[rgba(0,0,0,0.1)]"
               className="hover:bg-[rgba(0,0,0,0.1)]"
               bordered={false}
               bordered={false}
             />,
             />,
-            hasAddPerm && (
-              <Button
-                type="primary"
-                onClick={() =>
-                  dispatchModal('M_COMPANY_ADD', {
-                    onConfirm: handleAddCompany,
-                    reload: () => tRef.current?.reload()
-                  })
-                }
-              >
-                <Plus className="mr-1" />
-                单位
-              </Button>
-            )
+            <Button
+              key="add_company"
+              disabled={!hasAddPerm}
+              type="primary"
+              onClick={() =>
+                dispatchModal('M_COMPANY_ADD', {
+                  onConfirm: handleAddCompany,
+                  reload: () => tRef.current?.reload()
+                })
+              }
+            >
+              <Plus className="mr-1" />
+              单位
+            </Button>
           ]
           ]
         }}
         }}
         rowSelection={{
         rowSelection={{

+ 1 - 1
src/services/hr.js

@@ -12,7 +12,7 @@ export async function getDepartMentList(parentId) {
 /**
 /**
  * @description 新增部门
  * @description 新增部门
  */
  */
-export async function apiaddDepartment(payload) {
+export async function addDepartment(payload) {
   return request('/department/add', { method: 'POST', data: payload })
   return request('/department/add', { method: 'POST', data: payload })
 }
 }