|
@@ -1,4 +1,4 @@
|
|
|
-import React, { useState, useEffect } from 'react'
|
|
|
+import React, { useState, useEffect, useRef } from 'react'
|
|
|
import ShowTitleMenu from './components/ShowTitleMenu'
|
|
|
import { useRequest } from 'umi'
|
|
|
import { Plus, Delete } from '@icon-park/react'
|
|
@@ -7,29 +7,34 @@ import {
|
|
|
fetchAttendanceList,
|
|
|
unlinkAttendance,
|
|
|
deleteAttendance,
|
|
|
+ fetchParametersDetail,
|
|
|
updateParameters
|
|
|
} from '@/services/user/system'
|
|
|
import ConnectModal from '@/pages/role/System/components/ConnectModal'
|
|
|
import ProForm, { ProFormText } from '@ant-design/pro-form'
|
|
|
|
|
|
const titleOptions = [
|
|
|
- { label: '加班申请人', value: '0' },
|
|
|
- { label: '销假参数', value: '1' }
|
|
|
+ { label: '加班申请人', value: 0 },
|
|
|
+ { label: '销假参数', value: 1 }
|
|
|
]
|
|
|
export enum modalType {
|
|
|
addobjectModal = 0,
|
|
|
linkAttendance = 1
|
|
|
}
|
|
|
const Attendance: React.FC = () => {
|
|
|
+ const formRef = useRef<FormInstance>(null)
|
|
|
const [state, setState] = useState({
|
|
|
id: '0',
|
|
|
+ menuId: 0,
|
|
|
attendanceList: [],
|
|
|
+ contentValue: '',
|
|
|
+ parametersType: 1,
|
|
|
visible: false,
|
|
|
type: modalType.addobjectModal
|
|
|
})
|
|
|
|
|
|
- const onSelect = (id: string) => {
|
|
|
- setState({ ...state, id })
|
|
|
+ const onSelect = (menuId: string) => {
|
|
|
+ setState({ ...state, menuId })
|
|
|
}
|
|
|
|
|
|
const { run: tryGetRoleStaffList } = useRequest(fetchAttendanceList, {
|
|
@@ -39,6 +44,18 @@ const Attendance: React.FC = () => {
|
|
|
}
|
|
|
})
|
|
|
|
|
|
+ const { run: tryGetParametersDetail } = useRequest(
|
|
|
+ (params: API.ParametersDetail) => {
|
|
|
+ return fetchParametersDetail(params)
|
|
|
+ },
|
|
|
+ {
|
|
|
+ manual: true,
|
|
|
+ onSuccess: result => {
|
|
|
+ setState({ ...state, contentVlue: result })
|
|
|
+ }
|
|
|
+ }
|
|
|
+ )
|
|
|
+
|
|
|
const { run: tryunlinkAttendance } = useRequest(
|
|
|
(params: API.LinkAttendance) => {
|
|
|
return unlinkAttendance(params)
|
|
@@ -78,8 +95,12 @@ const Attendance: React.FC = () => {
|
|
|
useEffect(() => {
|
|
|
if (state.id) {
|
|
|
tryGetRoleStaffList(state.id)
|
|
|
+ tryGetParametersDetail(state.parametersType)
|
|
|
+ }
|
|
|
+ if (state.menuId === 1) {
|
|
|
+ formRef.current?.setFieldsValue(...state.contentValue)
|
|
|
}
|
|
|
- }, [state.id])
|
|
|
+ }, [state.id, state.menuId])
|
|
|
|
|
|
const columns: ColumnsType<API.AttendanceItem> = [
|
|
|
{
|
|
@@ -143,10 +164,10 @@ const Attendance: React.FC = () => {
|
|
|
|
|
|
return (
|
|
|
<div className="h-full w-full flex flex-row">
|
|
|
- <ShowTitleMenu onSelect={onSelect} options={titleOptions} defaultValue="0" />
|
|
|
+ <ShowTitleMenu onSelect={onSelect} options={titleOptions} defaultValue={0} />
|
|
|
<div className="w-max-3/4">
|
|
|
<div className="ml-8 bg-white p-4 shadow-md shadow-hex-3e2c5a relative">
|
|
|
- {state.id === '0' ? (
|
|
|
+ {state.menuId === 0 ? (
|
|
|
<>
|
|
|
<div className="absolute right-7 top-7 z-100">
|
|
|
<Button
|
|
@@ -178,10 +199,11 @@ const Attendance: React.FC = () => {
|
|
|
/>
|
|
|
</>
|
|
|
) : null}
|
|
|
- {state.id === '1' ? (
|
|
|
+ {state.menuId === 1 ? (
|
|
|
<>
|
|
|
<div>
|
|
|
<ProForm
|
|
|
+ formRef={formRef}
|
|
|
onFinish={async values => {
|
|
|
await tryUpdateParameters(values)
|
|
|
message.success('更新成功')
|