Browse Source

perf: 合并关联组件

outaozhen 4 years ago
parent
commit
8ee390a05c

+ 10 - 5
src/pages/Business/Attendance/components/ConnectModal/index.tsx

@@ -6,18 +6,20 @@ import { fetchStaffList } from '@/services/user/api'
 import { linkAttendance, addAttendance } from '@/services/user/system'
 import '@/pages/Role/System/components/ConnectModal/index.less'
 import { LoadingOutlined, MoreOutlined } from '@ant-design/icons'
-import { modalType } from '../..'
+import { modalType } from '@/pages/Business/Attendance/index.tsx'
 
 interface ConnectModalProps extends PropsWithChildren {
   dataId: string
   visible: boolean
   onCancel: () => void
+  onRefresh: () => void
 }
 const ConnectModal: React.FC<ConnectModalProps> = ({
   type,
   dataId,
   visible,
   onCancel,
+  onRefresh,
   children
 }) => {
   const containerRef = useRef<HTMLDivElement>(null)
@@ -44,13 +46,15 @@ const ConnectModal: React.FC<ConnectModalProps> = ({
       refreshDeps: [searchVal]
     }
   )
+
   const { run: tryLinkAttendance } = useRequest(
     (params: API.LinkAttendance) => linkAttendance(params),
     {
       manual: true,
       onSuccess: () => {
-        message.success('关联成功')
+        message.success('添加申请对象成功')
         onCancel()
+        onRefresh()
       },
       onError: e => {
         message.error(e.message)
@@ -62,8 +66,9 @@ const ConnectModal: React.FC<ConnectModalProps> = ({
     {
       manual: true,
       onSuccess: () => {
-        message.success('关联成功')
+        message.success('添加申请人成功')
         onCancel()
+        onRefresh()
       },
       onError: e => {
         message.error(e.message)
@@ -73,9 +78,9 @@ const ConnectModal: React.FC<ConnectModalProps> = ({
 
   const connectHandler = (staffId: string) => {
     if (type === modalType.addobjectModal) {
-      tryLinkAttendance({ id: dataId, staffId })
-    } else {
       tryAddAttendance({ applicantStaffId: staffId })
+    } else {
+      tryLinkAttendance({ id: dataId, staffId })
     }
   }
   const handleSearch = (value: string) => {

+ 6 - 4
src/pages/Business/Attendance/index.tsx

@@ -2,7 +2,6 @@ import React, { useState, useEffect } from 'react'
 import AttendanceMenu from './components/AttendanceMenu/attendanceMenu'
 import { useRequest } from 'umi'
 import Icon from '@/components/IconPark'
-// import AddObjectModal from './components/AddObjectModal'
 import ConnectModal from './components/ConnectModal'
 import { Table, Tag, Popconfirm, Popover, Button } from 'antd'
 import { fetchAttendanceList, unlinkAttendance, deleteAttendance } from '@/services/user/system'
@@ -89,7 +88,7 @@ const Attendance = () => {
                 ...state,
                 modalId: record.id,
                 visible: true,
-                type: modalType.addobjectModal
+                type: modalType.linkAttendance
               })
             }>
             <Icon type="plus" />
@@ -127,14 +126,17 @@ const Attendance = () => {
           <div className="absolute right-7 top-7 z-100">
             <Button
               type="primary"
-              onClick={() => setState({ ...state, visible: true, type: modalType.linkAttendance })}>
+              onClick={() => setState({ ...state, visible: true, type: modalType.addobjectModal })}>
               添加新申请人
             </Button>
             <ConnectModal
-              type={modalType}
+              type={state.type}
               dataId={state.modalId}
               visible={state.visible}
               onCancel={() => setState({ ...state, visible: false })}
+              onRefresh={() => {
+                tryGetRoleStaffList(state.id)
+              }}
             />
           </div>
           <Table