Преглед на файлове

feat: 服务记录编辑删除限时功能对接接口+考勤的代码优化

outaozhen преди 3 години
родител
ревизия
634700055e
променени са 4 файла, в които са добавени 64 реда и са изтрити 39 реда
  1. 9 12
      src/pages/Business/Attendance/index.tsx
  2. 39 26
      src/pages/Business/CommonSetting/index.tsx
  3. 8 0
      src/services/user/system.ts
  4. 8 1
      src/services/user/typings.d.ts

+ 9 - 12
src/pages/Business/Attendance/index.tsx

@@ -26,10 +26,9 @@ export enum modalType {
 const Attendance: React.FC = () => {
   const formRef = useRef<FormInstance>(null)
   const [state, setState] = useState({
-    id: '0',
+    id: '',
     menuId: 0,
     attendanceList: [],
-    contentValue: '',
     parametersType: 1,
     visible: false,
     type: modalType.addobjectModal
@@ -53,7 +52,6 @@ const Attendance: React.FC = () => {
     {
       manual: true,
       onSuccess: (result: API.ParametersDetailResult) => {
-        setState({ ...state, contentVlue: result.content })
         formRef.current?.setFieldsValue({ content: result.content })
       }
     }
@@ -66,7 +64,7 @@ const Attendance: React.FC = () => {
     {
       manual: true,
       onSuccess: () => {
-        tryGetRoleStaffList(state.id)
+        tryGetRoleStaffList()
       }
     }
   )
@@ -78,7 +76,7 @@ const Attendance: React.FC = () => {
     {
       manual: true,
       onSuccess: () => {
-        tryGetRoleStaffList(state.id)
+        tryGetRoleStaffList()
       }
     }
   )
@@ -90,20 +88,19 @@ const Attendance: React.FC = () => {
     {
       manual: true,
       onSuccess: () => {
-        tryGetRoleStaffList(state.id)
+        tryGetRoleStaffList()
       }
     }
   )
 
   useEffect(() => {
-    if (state.id) {
-      tryGetRoleStaffList(state.id)
-      tryGetParametersDetail(state.parametersType)
+    if (state.menuId === 0) {
+      tryGetRoleStaffList()
     }
     if (state.menuId === 1) {
-      formRef.current?.setFieldsValue(...state.contentValue)
+      tryGetParametersDetail(state.parametersType)
     }
-  }, [state.id, state.menuId])
+  }, [state.menuId])
 
   const columns: ColumnsType<API.AttendanceItem> = [
     {
@@ -182,7 +179,7 @@ const Attendance: React.FC = () => {
                     dataId={state.id}
                     show={state.visible}
                     onShowChange={(visible: boolean) => setState({ ...state, visible })}
-                    onReload={() => tryGetRoleStaffList(state.id)}
+                    onReload={() => tryGetRoleStaffList()}
                     postUrl={
                       state.type === modalType.addobjectModal
                         ? '/attendance/add'

+ 39 - 26
src/pages/Business/CommonSetting/index.tsx

@@ -5,21 +5,39 @@ import ShowTitleMenu from '../Attendance/components/ShowTitleMenu'
 import type { FormInstance } from 'antd'
 import { message } from 'antd'
 import ProForm, { ProFormDigit } from '@ant-design/pro-form'
+import { fetchParametersDetail, updateParametersTime } from '@/services/user/system'
 
 const titleOptions = [{ label: '通用设置', value: 0 }]
 
 const CommonSetting: React.FC = () => {
   const formRef = useRef<FormInstance>(null)
   const [state, setState] = useState({
-    menuId: 0,
-    contentValue: ''
+    parametersType: 2,
+    menuId: 0
   })
+
   const onSelect = (menuId: string) => {
     setState({ ...state, menuId })
   }
-  const { run: tryUpdateCommonSetting } = useRequest(
-    (params: API.UpdateCommonSetting) => {
-      return updateCommonSetting(params)
+  const { run: tryGetParametersDetail } = useRequest(
+    () => {
+      return fetchParametersDetail({ parametersType: 2 })
+    },
+    {
+      manual: true,
+      onSuccess: (result: API.ParametersDetailResult) => {
+        const contentObject = JSON.parse(result.content)
+        formRef.current?.setFieldsValue({
+          clientTimeList: contentObject.clientTimeList,
+          unitTimeList: contentObject.unitTimeList,
+          softTimeList: contentObject.softTimeList
+        })
+      }
+    }
+  )
+  const { run: tryUpdateParametersTime } = useRequest(
+    (params: API.UpdateParametersTime) => {
+      return updateParametersTime(params)
     },
     {
       manual: true,
@@ -29,10 +47,8 @@ const CommonSetting: React.FC = () => {
     }
   )
   useEffect(() => {
-    if (state.menuId === 0) {
-      formRef.current?.setFieldsValue(...state.contentValue)
-    }
-  }, [state.menuId])
+    tryGetParametersDetail(state.parametersType)
+  }, [])
   return (
     <PageContainer title={false} breadcrumb={false}>
       <div className="h-full w-full flex flex-row">
@@ -44,23 +60,20 @@ const CommonSetting: React.FC = () => {
               <div className="my-4 text-gray-500 text-opacity-50">
                 用户新建记录和备注后,可在设置的时间(小时)内进行[编辑]和[删除]操作。
               </div>
-              {state.menuId === 0 ? (
-                <ProForm
-                  formRef={formRef}
-                  layout="horizontal"
-                  onFinish={async values => {
-                    await tryUpdateCommonSetting(values)
-                    message.success('更新成功')
-                    return true
-                  }}
-                  initialValues={{ parametersType: 1 }}>
-                  <ProForm.Group>
-                    <ProFormDigit label="客户服务记录:" width="xs" name="client" />
-                    <ProFormDigit label="单位服务记录:" width="xs" name="company" />
-                    <ProFormDigit label="软件锁备注:" width="xs" name="lock" />
-                  </ProForm.Group>
-                </ProForm>
-              ) : null}
+              <ProForm
+                formRef={formRef}
+                layout="horizontal"
+                onFinish={async values => {
+                  await tryUpdateParametersTime(values)
+                  return true
+                }}
+                initialValues={{ parametersType: 1 }}>
+                <ProForm.Group>
+                  <ProFormDigit label="客户服务记录:" width="xs" name="clientTimeList" />
+                  <ProFormDigit label="单位服务记录:" width="xs" name="unitTimeList" />
+                  <ProFormDigit label="软件锁备注:" width="xs" name="softTimeList" />
+                </ProForm.Group>
+              </ProForm>
             </div>
           </div>
         </div>

+ 8 - 0
src/services/user/system.ts

@@ -57,6 +57,14 @@ export async function updateParameters(params: API.UpdateParameters) {
   })
 }
 
+/** 更新编辑时限 */
+export async function updateParametersTime(params: API.UpdateParametersTime) {
+  return request('/parameters/time/limit/save', {
+    method: 'POST',
+    data: params
+  })
+}
+
 /** 获取发票内容列表 */
 export async function fetchInvoiceList(params: { rate: string }) {
   return request<API.InvoiceList[]>('/invoice/item/list', {

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

@@ -199,7 +199,7 @@ declare namespace API {
   }
 
   type Addattendance = {
-    applicantStaffId: string
+    staffId: string
   }
 
   type DeleteAttendance = {
@@ -253,6 +253,13 @@ declare namespace API {
     content: string
   }
 
+  type UpdateParametersTime = {
+    parametersType: string
+    clientTimeList: string
+    unitTimeList: string
+    softTimeList: string
+  }
+
   type QueryNoticeListParams = PageParams & {
     msgType: 1 | 2
   }