Просмотр исходного кода

feat: 使用pnpm替换yarn进行包管理

lanjianrong 4 лет назад
Родитель
Сommit
789b8ca8a0

+ 1 - 0
package.json

@@ -67,6 +67,7 @@
     "lodash-es": "^4.17.21",
     "omit.js": "^2.0.2",
     "qs": "^6.9.4",
+    "rc-util": "^5.16.1",
     "react": "17.0.2",
     "react-copy-to-clipboard": "^5.0.4",
     "react-dom": "17.0.2",

Разница между файлами не показана из-за своего большого размера
+ 20600 - 0
pnpm-lock.yaml


+ 70 - 2
src/app.tsx

@@ -4,10 +4,11 @@ import RightContent from '@/components/RightContent'
 import { message } from 'antd'
 import logo from '../public/logo.svg'
 import BasicModal, { BasicDrawer } from '@/components/Modal'
-// import ws, { onMessage } from '@/utils/ws'
+import { getToken } from '@/utils/auth'
 import { tryChangeWorkStatus } from './components/RightContent/Book'
 import { getAuthCache, setAuthCache } from './utils/auth'
 import { LAYOUT_COLLAPSED_KEY } from './utils/cache/cacheEnum'
+import consts from './consts'
 
 const loginPath = '/user/login'
 
@@ -91,7 +92,7 @@ export const layout = ({ initialState, setInitialState }) => {
     onPageChange: async location => {
       // 如果没有登录,重定向到 login
       if (!initialState?.currentUser?.staffId && location.pathname !== loginPath) {
-        history.replcae('/user/login')
+        history.replace('/user/login')
       } else {
         location.pathname !== loginPath &&
           tryChangeWorkStatus(initialState?.currentUser?.staffId, location.pathname)
@@ -126,3 +127,70 @@ export const layout = ({ initialState, setInitialState }) => {
     onCollapse
   }
 }
+
+const errorHandler = error => {
+  const { response } = error
+
+  if (response && response.status) {
+    const errorText = codeMessage[response.status] || response.statusText
+    const { status, url } = response
+    notification.error({
+      message: `请求错误 ${status}: ${url}`,
+      description: errorText
+    })
+  } else if (!response) {
+    notification.error({
+      description: '您的网络发生异常,无法连接服务器',
+      message: '网络异常'
+    })
+  }
+
+  return response
+}
+
+const authHeaderInterceptor = (url, options) => {
+  const token = getToken()
+  if (token) {
+    // 在白名单里的请求放过
+    if (consts.TOKEN_WHITE_LIST.includes(url)) {
+      return { url, options }
+    }
+    // eslint-disable-next-line no-param-reassign
+    options.headers[consts.TOKEN_HEADER] = `bearer ${token}`
+    return { url, options }
+  }
+  return { url, options }
+}
+
+const refreshTokenIfNeed = async (response, config) => {
+  const res = await response.clone().json()
+  if (
+    res &&
+    res.code !== consts.RET_CODE.SUCCESS &&
+    !consts.TOKEN_INVALID_CODE.includes(res.code) &&
+    config.url !== '/api/login'
+  ) {
+    message.error((res && res.msg) || '请求错误')
+    // return Promise.reject(response)
+    return response
+  }
+  if (res && res.code && consts.TOKEN_INVALID_CODE.includes(res.code)) {
+    history.replace(consts.LOGIN_PATH)
+  }
+  return response
+}
+
+/**
+ * 配置request请求时的默认参数
+ */
+
+export const request: RequestConfig = {
+  errorHandler,
+  prefix: '/api',
+  // 默认错误处理
+  credentials: 'include', // 默认请求是否带上cookie
+  prefix: consts.PREFIX_URL,
+  cache: 'no-cache',
+  responseInterceptors: [(response, options) => refreshTokenIfNeed(response, options)],
+  requestInterceptors: [authHeaderInterceptor]
+}

+ 1 - 1
src/basic/utils/request.js

@@ -2,7 +2,7 @@
  * request 网络请求工具
  * 更详细的 api 文档: https://github.com/umijs/umi-request
  */
-import { extend } from 'umi-request'
+import { extend } from 'umi'
 import { message, notification } from 'antd'
 import { redirectToLogin } from './common'
 import consts from '@/consts'

+ 3 - 0
src/components/Table/src/index.less

@@ -5,4 +5,7 @@
   :global(.ant-table-thead th.ant-table-column-sort:hover) {
     background: #f9f0ff;
   }
+  :global(.ant-card-body) {
+    padding: 24px 24px 0 24px;
+  }
 }

+ 3 - 5
src/services/common.js

@@ -1,18 +1,16 @@
-import request from '@/basic/utils/request'
+import { request } from 'umi'
 
 /**
  * 编辑表单提交
  * @param {*} payload 载荷
  */
 export async function editFormApi(url, payload) {
-  const data = await request.post(url, { data: { ...payload } })
-  return data
+  return request(url, { method: 'POST', data: { ...payload } })
 }
 
 /** 获取级联数据 */
 export async function queryDistrict(payload) {
-  const data = await request('/district', {
+  return request('/district', {
     params: { ...payload }
   })
-  return data
 }

+ 36 - 24
src/services/customer.js

@@ -1,4 +1,4 @@
-import request from '@/basic/utils/request'
+import { request } from 'umi'
 
 /**
  * 获取单位列表
@@ -6,7 +6,8 @@ import request from '@/basic/utils/request'
  * @returns 结果集
  */
 export async function queryCustomers(payload) {
-  return request.post('/customer/list', {
+  return request('/customer/list', {
+    method: 'POST',
     data: payload
   })
 }
@@ -17,7 +18,8 @@ export async function queryCustomers(payload) {
  * @returns
  */
 export async function createCustomer(payload) {
-  return request.post('/customer/add', {
+  return request('/customer/add', {
+    method: 'POST',
     data: { ...payload }
   })
 }
@@ -41,7 +43,7 @@ export async function apiConnOrDelTag({ type, payload }) {
   if (type) {
     url = '/tag/link'
   }
-  return request.post(url, { data: payload })
+  return request(url, { method: 'POST', data: payload })
 }
 
 /**
@@ -50,7 +52,7 @@ export async function apiConnOrDelTag({ type, payload }) {
  * @returns
  */
 export async function apiUpdateTag(payload) {
-  return request.post('/tag/update', { data: payload })
+  return request('/tag/update', { method: 'POST', data: payload })
 }
 
 /**
@@ -59,7 +61,7 @@ export async function apiUpdateTag(payload) {
  * @returns
  */
 export async function apiBatchLink(payload) {
-  return request.post('/tag/batch/link', { data: payload })
+  return request('/tag/batch/link', { method: 'POST', data: payload })
 }
 
 /**
@@ -67,7 +69,8 @@ export async function apiBatchLink(payload) {
  * @param {*} payload 载荷
  */
 export async function queryClient(payload) {
-  return request.post('/client/list', {
+  return request('/client/list', {
+    method: 'POST',
     data: payload
   })
 }
@@ -77,7 +80,8 @@ export async function queryClient(payload) {
  * @param {*} payload 载荷
  */
 export async function queryClientWithTelephone(payload) {
-  return request.post('/client/telephone', {
+  return request('/client/telephone', {
+    method: 'POST',
     data: payload
   })
 }
@@ -86,7 +90,8 @@ export async function queryClientWithTelephone(payload) {
  * 修改客户信息
  */
 export async function updateClient(payload) {
-  return request.post('/client/update', {
+  return request('/client/update', {
+    method: 'POST',
     data: payload
   })
 }
@@ -105,7 +110,7 @@ export async function apiContactDetail(id) {
  * @param {*} payload 载荷
  */
 export async function apiAddClient(payload) {
-  return request.post('/client/add', { data: { ...payload } })
+  return request('/client/add', { method: 'POST', data: { ...payload } })
 }
 
 /**
@@ -113,7 +118,7 @@ export async function apiAddClient(payload) {
  * @param {*} payload 载荷
  */
 export async function apiAddService(payload) {
-  return request.post('/serviceLog/add', { data: { ...payload } })
+  return request('/serviceLog/add', { method: 'POST', data: { ...payload } })
 }
 
 /**
@@ -121,7 +126,7 @@ export async function apiAddService(payload) {
  * @param {*} payload 载荷
  */
 export async function apiAddBusiService(payload) {
-  return request.post('/business/service/add', { data: { ...payload } })
+  return request('/business/service/add', { method: 'POST', data: { ...payload } })
 }
 
 /**
@@ -130,7 +135,7 @@ export async function apiAddBusiService(payload) {
  * @returns
  */
 export async function apiChangeCustomer(preUrl, payload) {
-  return request.post(`/${preUrl}/change/customer`, { data: { ...payload } })
+  return request(`/${preUrl}/change/customer`, { method: 'POST', data: { ...payload } })
 }
 
 /**
@@ -139,7 +144,7 @@ export async function apiChangeCustomer(preUrl, payload) {
  * @returns
  */
 export async function apiDelCustomer(preUrl, payload) {
-  return request.post(`/${preUrl}/customer/delete`, { data: { ...payload } })
+  return request(`/${preUrl}/customer/delete`, { method: 'POST', data: { ...payload } })
 }
 
 /**
@@ -155,7 +160,8 @@ export async function queryNatures() {
  * @param {*} payload 载荷
  */
 export async function queryCompany(params) {
-  return request.post('/customer/list', {
+  return request('/customer/list', {
+    method: 'POST',
     data: { current: 1, ...params }
   })
 }
@@ -174,7 +180,7 @@ export async function apiCompanyDetail(id) {
  * @param {string} data
  */
 export async function apiAddCompany(payload) {
-  return request.post('/customer/add', { data: payload })
+  return request('/customer/add', { method: 'POST', data: payload })
 }
 
 /**
@@ -182,33 +188,36 @@ export async function apiAddCompany(payload) {
  * @param {*} payload 载荷
  */
 export async function apiAddCustomerService(payload) {
-  return request.post('/customer/service/add', { data: { ...payload } })
+  return request('/customer/service/add', { method: 'POST', data: { ...payload } })
 }
 
 /** 获取商机组列表 */
 export async function getBusinessGroupList(params) {
-  return request.post('/business/group/list', {
+  return request('/business/group/list', {
+    method: 'POST',
     data: params
   })
 }
 
 /** 获取商机列表 */
 export async function getBusinessList(params) {
-  return request.post('/business/list', {
+  return request('/business/list', {
+    method: 'POST',
     data: params
   })
 }
 
 /** 新增商机 */
 export async function addBusiness(params) {
-  return request.post('/business/add', {
+  return request('/business/add', {
+    method: 'POST',
     data: params
   })
 }
 
 /** 获取商机详情 */
 export async function getBusinessDetailById(params) {
-  return request.get('/business/detail', {
+  return request('/business/detail', {
     params
   })
 }
@@ -222,21 +231,24 @@ export async function apiChangeClient(preUrl, params) {
   if (preUrl === 'RoadPricing') {
     url = '/RoadPricing/link/client'
   }
-  return request.post(url, {
+  return request(url, {
+    method: 'POST',
     data: params
   })
 }
 
 /** 设置商机状态 */
 export async function changeGroupStatus(params) {
-  return request.post('/business/change/group/status', {
+  return request('/business/change/group/status', {
+    method: 'POST',
     data: params
   })
 }
 
 /** 同步单位信息到客户 */
 export async function syncToClient(params) {
-  return request.post('/customer/sync/client', {
+  return request('/customer/sync/client', {
+    method: 'POST',
     data: params
   })
 }

+ 8 - 5
src/services/dashboard.js

@@ -1,4 +1,4 @@
-import request from '@/basic/utils/request'
+import { request } from 'umi'
 
 /**
  * 获取仪表盘数据
@@ -6,14 +6,15 @@ import request from '@/basic/utils/request'
  * @returns 结果集
  */
 export async function queryDashboard(payload) {
-  return request.post('/dashboard/list', {
+  return request('/dashboard/list', {
+    method: 'POST',
     data: { ...payload }
   })
 }
 
 /** 获得提醒列表数据 */
 export async function queryReminderList(payload) {
-  const data = await request.get('/dashboard/reminder/list', {
+  const data = await request('/dashboard/reminder/list', {
     params: { ...payload }
   })
   return data
@@ -21,14 +22,16 @@ export async function queryReminderList(payload) {
 
 /** 获得环比数据列表 */
 export async function queryRatioPanelsList(params) {
-  return request.post('/dashboard/ratioPanels', {
+  return request('/dashboard/ratioPanels', {
+    method: 'POST',
     data: params
   })
 }
 
 /** 获得服务相关的环比数据列表 */
 export async function queryServiceRatioPanelsList(params) {
-  return request.post('/dashboard/ratioPanelsService', {
+  return request('/dashboard/ratioPanelsService', {
+    method: 'POST',
     data: params
   })
 }

+ 4 - 4
src/services/hr.js

@@ -1,4 +1,4 @@
-import request from '@/basic/utils/request'
+import { request } from 'umi'
 
 /**
  * @description 获取部门列表
@@ -13,17 +13,17 @@ export async function getDepartMentList(parentId) {
  * @description 新增部门
  */
 export async function apiaddDepartment(payload) {
-  return request.post('/department/add', { data: payload })
+  return request('/department/add', { method: 'POST', data: payload })
 }
 
 /**
  * @description 删除部门
  */
 export async function delDepartment(id) {
-  return request.post('/department/delete', { data: { id } })
+  return request('/department/delete', { method: 'POST', data: { id } })
 }
 
 /** 获取部门-员工列表 */
 export async function queryDepartmentStaffList() {
-  return request.get('/department/staff')
+  return request('/department/staff')
 }

+ 5 - 4
src/services/login.js

@@ -1,16 +1,16 @@
-import request from '@/basic/utils/request'
+import { request } from 'umi'
 
 /**
  * 请求登录
  * @param {*} params 登录所需参数
  */
 export async function apiLogin(params) {
-  return request.post('/login', { data: params })
+  return request('/login', { method: 'POST', data: params })
 }
 
 /** 未读新消息个数 */
 export async function queryUnreadNotice() {
-  return request.get('/message/read')
+  return request('/message/read')
 }
 
 /** 获取消息列表 */
@@ -20,7 +20,8 @@ export async function queryNoticeList(params) {
 
 /** 消息设置已读 */
 export async function updateNotice(params) {
-  return request.post('/message/update', {
+  return request('/message/update', {
+    method: 'POST',
     data: params
   })
 }

+ 20 - 13
src/services/product.js

@@ -1,8 +1,9 @@
-import request from '@/basic/utils/request'
+import { request } from 'umi'
 
 /** 请求单位列表 */
 export async function queryLock(params) {
-  return request.post('/software/list', {
+  return request('/software/list', {
+    method: 'POST',
     data: params
   })
 }
@@ -21,52 +22,56 @@ export async function apiSoftwareDetail(params) {
  */
 export async function apiSoftwareAddLonglelog(payload) {
   // console.log('payload', payload)
-  return request.post('/software/add/longlelog', { data: payload })
+  return request('/software/add/longlelog', { method: 'POST', data: payload })
 }
 
 /** 获取软件锁-产品 */
 export async function querySoftwareProducts(params) {
-  return request.get('/software/product', { params })
+  return request('/software/product', { params })
 }
 
 /** 获取旧锁列表 */
 export async function queryOldLockList(params) {
-  return request.get('/software/receiveListOld', {
+  return request('/software/receiveListOld', {
     params
   })
 }
 
 /** 接收旧锁 */
 export async function apiReceiveOldLock(params) {
-  return request.post('/software/receiveOld', {
+  return request('/software/receiveOld', {
+    method: 'POST',
     data: params
   })
 }
 
 /** 获取新软件锁列表 */
 export async function queryReceiveList(params) {
-  return request.get('/software/receiveList', {
+  return request('/software/receiveList', {
     params
   })
 }
 
 /** 接收新锁 */
 export async function apiReceiveLock(params) {
-  return request.post('/software/receive', {
+  return request('/software/receive', {
+    method: 'POST',
     data: params
   })
 }
 
 /** 删除软件锁日志 */
 export async function apiDelLonglelog(params) {
-  return request.post('/software/delete/longlelog', {
+  return request('/software/delete/longlelog', {
+    method: 'POST',
     data: params
   })
 }
 
 /** 云版产品列表 */
 export async function queryRoadpricingList(params) {
-  return request.post('/RoadPricing/list', {
+  return request('/RoadPricing/list', {
+    method: 'POST',
     data: params
   })
 }
@@ -91,19 +96,21 @@ export async function apiRoadpricingDetail(params) {
 
 /** 云版关联客户 */
 export async function apiRoadPricingLinkClient(params) {
-  return request.post('/RoadPricing/link/client', {
+  return request('/RoadPricing/link/client', {
+    method: 'POST',
     data: params
   })
 }
 
 /** 云版移除客户 */
 export async function apiRoadPricingUnLinkClient(params) {
-  return request.post('/RoadPricing/unlink/client', {
+  return request('/RoadPricing/unlink/client', {
+    method: 'POST',
     data: params
   })
 }
 
 /** 设云版置升级产品 */
 export async function apiRoadPricingUpgrade(payload) {
-  return request.post('/RoadPricing/upgrade', { data: payload })
+  return request('/RoadPricing/upgrade', { method: 'POST', data: payload })
 }

+ 9 - 5
src/services/staff.js

@@ -1,4 +1,4 @@
-import request from '@/basic/utils/request'
+import { request } from 'umi'
 
 /**
  * 获取员工列表
@@ -6,7 +6,7 @@ import request from '@/basic/utils/request'
  * @returns 结果集
  */
 export async function queryStaff(payload) {
-  const data = await request.get('/staff/list', {
+  const data = await request('/staff/list', {
     params: { ...payload }
   })
   return data
@@ -24,13 +24,16 @@ export async function apiStaffDetail(id) {
 
 /** 员工更换上司 */
 export async function apiChangeSupervisor(postUrl, payload) {
-  const data = await request.post(`/${postUrl}/change/supervisor`, { data: { ...payload } })
+  const data = await request(`/${postUrl}/change/supervisor`, {
+    method: 'POST',
+    data: { ...payload }
+  })
   return data
 }
 
 /** 信息中心列表 */
 export async function queryMessageList(payload) {
-  const data = await request.get('/message/all', {
+  const data = await request('/message/all', {
     params: { ...payload }
   })
   return data
@@ -38,7 +41,8 @@ export async function queryMessageList(payload) {
 
 /** 发送通知 */
 export async function sendMessage(params) {
-  return request.post('/message/send', {
+  return request('/message/send', {
+    method: 'POST',
     data: params
   })
 }

+ 3 - 2
src/services/statistic.js

@@ -1,4 +1,4 @@
-import request from '@/basic/utils/request'
+import { request } from 'umi'
 
 /** 获取软件锁统计选项部门/员工下的列表 */
 export async function queryUsageSelectOptions() {
@@ -7,7 +7,8 @@ export async function queryUsageSelectOptions() {
 
 /** 获取软件锁使用统计 */
 export async function querySoftwareUsageList(params) {
-  return request.post('/statistic/software/usage', {
+  return request('/statistic/software/usage', {
+    method: 'POST',
     data: params
   })
 }

+ 8 - 6
src/services/user.js

@@ -1,20 +1,20 @@
-import request from '@/basic/utils/request'
+import { request } from 'umi'
 
 /**
  * 获取当前用户信息
  */
 export async function queryCurrentUser() {
-  return request.get('/login/staff')
+  return request('/login/staff')
 }
 
 /** 获取用户权限 */
 export async function queryRoles() {
-  return request.get('/login/roles')
+  return request('/login/roles')
 }
 
 /** 获取数据权限下拉菜单 */
 export async function queryPermData(params) {
-  return request.get('/DataPermission/list', {
+  return request('/DataPermission/list', {
     params
   })
 }
@@ -26,14 +26,16 @@ export async function queryStaffOwner() {
 
 /** 更新员工基本信息 */
 export async function updateBaseStaff(params) {
-  return request.post('/staff/update/base', {
+  return request('/staff/update/base', {
+    method: 'POST',
     data: params
   })
 }
 
 /** 更新员工财务信息 */
 export async function updateFinanceStaff(params) {
-  return request.post('/staff/update/finance', {
+  return request('/staff/update/finance', {
+    method: 'POST',
     data: params
   })
 }