Browse Source

feat: 加班申请删除申请人

outaozhen 4 năm trước cách đây
mục cha
commit
00ee875b79

+ 29 - 8
src/pages/Business/Attendance/index.tsx

@@ -4,8 +4,8 @@ import { useRequest } from 'umi'
 import Icon from '@/components/IconPark'
 import AddObjectModal from './components/AddObjectModal'
 import ApplicantModal from './components/ApplicantModal'
-import { Table, Tag } from 'antd'
-import { fetchAttendanceList, deleteAttendance } from '@/services/user/system'
+import { Table, Tag, Popconfirm, Popover } from 'antd'
+import { fetchAttendanceList, unlinkAttendance, deleteAttendance } from '@/services/user/system'
 
 const Attendance = () => {
   const [state, setState] = useState({
@@ -19,7 +19,19 @@ const Attendance = () => {
     }
   })
 
-  const { run: trydeleteAttendance } = useRequest(
+  const { run: tryunlinkAttendance } = useRequest(
+    (params: API.LinkAttendance) => {
+      return unlinkAttendance(params)
+    },
+    {
+      manual: true,
+      onSuccess: () => {
+        tryGetRoleStaffList(state.id)
+      }
+    }
+  )
+
+  const { run: tryDeleteAttendance } = useRequest(
     (params: API.DeleteAttendance) => {
       return deleteAttendance(params)
     },
@@ -58,7 +70,7 @@ const Attendance = () => {
             <span key={item.staffId} className="zh-mg-bottom-5 zh-block">
               <Tag
                 closable={true}
-                onClose={() => trydeleteAttendance({ staffId: item.staffId, id: record.id })}>
+                onClose={() => tryunlinkAttendance({ staffId: item.staffId, id: record.id })}>
                 {item.staffName}
               </Tag>
             </span>
@@ -71,10 +83,19 @@ const Attendance = () => {
       title: '操作',
       dataIndex: 'opreate',
       width: '10%',
-      render: () => (
-        <span className="hover:text-hex-e7026e cursor-pointer">
-          <Icon type="delete" fill="#fd3995" />
-        </span>
+      render: (_, record) => (
+        // console.log(record.id)
+        <Popover>
+          <Popconfirm
+            title="确认删除吗?"
+            okText="确认"
+            cancelText="取消"
+            onConfirm={() => tryDeleteAttendance({ id: record.id })}>
+            <span className="hover:text-hex-e7026e cursor-pointer">
+              <Icon type="delete" fill="#fd3995" />
+            </span>
+          </Popconfirm>
+        </Popover>
       )
     }
   ]

+ 9 - 1
src/services/user/system.ts

@@ -11,7 +11,7 @@ export async function fetchAttendanceList() {
 }
 
 /** 删除关联加班人 */
-export async function deleteAttendance(params: API.DeleteAttendance) {
+export async function unlinkAttendance(params: API.UnlinkAttendance) {
   return request('/attendance/unlinkStaff', {
     method: 'POST',
     data: params
@@ -33,3 +33,11 @@ export async function addAttendance(params: API.Addattendance) {
     data: params
   })
 }
+
+/** 删除申请人 */
+export async function deleteAttendance(params: API.DeleteAttendance) {
+  return request('/attendance/delete', {
+    method: 'POST',
+    data: params
+  })
+}

+ 5 - 1
src/services/user/typings.d.ts

@@ -188,7 +188,7 @@ declare namespace API {
     staff: { id: string; staff: string }[]
   }
 
-  type DeleteAttendance = {
+  type UnlinkAttendance = {
     id: string
     staffId: string
   }
@@ -201,4 +201,8 @@ declare namespace API {
   type Addattendance = {
     applicantStaffId: string
   }
+
+  type DeleteAttendance = {
+    id: string
+  }
 }