Pārlūkot izejas kodu

feat: 调整plugin-model使用请求调用的方式

lanjianrong 4 gadi atpakaļ
vecāks
revīzija
ea5ec43e86
3 mainītis faili ar 15 papildinājumiem un 8 dzēšanām
  1. 4 0
      src/app.tsx
  2. 4 6
      src/models/department.ts
  3. 7 2
      src/pages/Business/Contact/index.tsx

+ 4 - 0
src/app.tsx

@@ -55,6 +55,10 @@ export async function getInitialState(): Promise<{
 
 const authHeaderInterceptor = (url: string, options: RequestOptionsInit) => {
   const token = window.localStorage.getItem('TOKEN_ID')
+  // 如果是登录页面,不执行
+  if (!token && history.location.pathname !== loginPath) {
+    return history.push(loginPath)
+  }
   const authHeader = { Authorization: `Bearer ${JSON.parse(token)}` }
   return {
     url: `${url}`,

+ 4 - 6
src/models/department.ts

@@ -1,16 +1,14 @@
 import { getDepartmenList } from '@/services/user/api'
-import { useEffect } from 'react'
-import { useCallback } from 'react'
-import { useState } from 'react'
+import { useState, useCallback } from 'react'
 
+// 部门模块
 export default () => {
   const [department, setDepartment] = useState<API.DepartmentItem[]>([])
+
+  /** 获取部门列表 */
   const fetchDepartment = useCallback(async () => {
     const { data = [] } = await getDepartmenList()
     setDepartment(data)
   }, [])
-  useEffect(() => {
-    fetchDepartment()
-  }, [])
   return { department, fetchDepartment }
 }

+ 7 - 2
src/pages/Business/Contact/index.tsx

@@ -1,4 +1,4 @@
-import React, { useState } from 'react'
+import React, { useState, useEffect } from 'react'
 import { Button, message, TreeSelect, Table, Popconfirm } from 'antd'
 import type { FormInstance } from 'antd'
 import ProForm, { ModalForm, ProFormText } from '@ant-design/pro-form'
@@ -55,7 +55,12 @@ const defaultData = [
 ]
 
 const Contact: React.FC = () => {
-  const { department } = useModel('department')
+  const { department, fetchDepartment } = useModel('department')
+  useEffect(() => {
+    if (!department.length) {
+      fetchDepartment()
+    }
+  }, [])
   const formRef = useRef<FormInstance>(null)
 
   const [editableKeys, setEditableRowKeys] = useState<React.Key[]>()