index.tsx 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. import { PageContainer } from '@ant-design/pro-layout'
  2. import React, { useEffect, useRef, useState } from 'react'
  3. import { useRequest } from '@umijs/max'
  4. import ShowTitleMenu from '../Attendance/components/ShowTitleMenu'
  5. import type { FormInstance } from 'antd'
  6. import { message } from 'antd'
  7. import classNames from 'classnames'
  8. import ProForm, { ProFormDigit } from '@ant-design/pro-form'
  9. import { fetchParametersDetail, updateParametersTime } from '@/services/user/system'
  10. const titleOptions = [{ label: '通用设置', value: 0 }]
  11. const CommonSetting: React.FC = () => {
  12. const formRef = useRef<FormInstance>(null)
  13. const [state, setState] = useState({
  14. parametersType: 2,
  15. menuId: 0
  16. })
  17. const onSelect = (menuId: string) => {
  18. setState({ ...state, menuId })
  19. }
  20. const { run: tryGetParametersDetail } = useRequest(
  21. () => {
  22. return fetchParametersDetail({ parametersType: 2 })
  23. },
  24. {
  25. manual: true,
  26. onSuccess: (result: API.ParametersDetailResult) => {
  27. const contentObject = JSON.parse(result.content)
  28. formRef.current?.setFieldsValue({
  29. clientTimeList: contentObject.clientTimeList,
  30. unitTimeList: contentObject.unitTimeList,
  31. softTimeList: contentObject.softTimeList
  32. })
  33. }
  34. }
  35. )
  36. const { run: tryUpdateParametersTime } = useRequest(
  37. (params: API.UpdateParametersTime) => {
  38. return updateParametersTime(params)
  39. },
  40. {
  41. manual: true,
  42. onSuccess: () => {
  43. message.success('更新成功')
  44. }
  45. }
  46. )
  47. useEffect(() => {
  48. tryGetParametersDetail(state.parametersType)
  49. }, [])
  50. return (
  51. <PageContainer title={false} breadcrumb={false}>
  52. <div className="h-full w-full flex flex-row">
  53. <ShowTitleMenu onSelect={onSelect} options={titleOptions} defaultValue={0} />
  54. <div className={classNames('w-max-3/4 w-3/4')}>
  55. <div className="ml-8 bg-white p-4 shadow-md relative">
  56. <div>
  57. <div className="text-xl font-bold">服务记录编辑删除限时</div>
  58. <div className="my-4 text-gray-500 text-opacity-50">
  59. 用户新建记录和备注后,可在设置的时间(小时)内进行[编辑]和[删除]操作。
  60. </div>
  61. <ProForm
  62. formRef={formRef}
  63. layout="horizontal"
  64. onFinish={async values => {
  65. await tryUpdateParametersTime(values)
  66. return true
  67. }}
  68. initialValues={{ parametersType: 1 }}>
  69. <ProForm.Group>
  70. <ProFormDigit label="客户服务记录:" width="xs" name="clientTimeList" />
  71. <ProFormDigit label="单位服务记录:" width="xs" name="unitTimeList" />
  72. <ProFormDigit label="软件锁备注:" width="xs" name="softTimeList" />
  73. </ProForm.Group>
  74. </ProForm>
  75. </div>
  76. </div>
  77. </div>
  78. </div>
  79. </PageContainer>
  80. )
  81. }
  82. export default CommonSetting