Kaynağa Gözat

chore[pc-components & backend-cli]: 修改 service 请求

chenlei 2 yıl önce
ebeveyn
işleme
e1087c4844
31 değiştirilmiş dosya ile 216 ekleme ve 309 silme
  1. 6 0
      packages/backend-cli/CHANGELOG.md
  2. 1 1
      packages/backend-cli/package.json
  3. 0 8
      packages/backend-cli/template/CHANGELOG.md
  4. 4 4
      packages/backend-cli/template/package.json
  5. 1 0
      packages/backend-cli/template/src/App.tsx
  6. 4 4
      packages/backend-cli/template/src/api/index.ts
  7. 2 2
      packages/backend-cli/template/src/api/log.ts
  8. 7 7
      packages/backend-cli/template/src/api/user.ts
  9. 39 0
      packages/backend-cli/template/src/configure.ts
  10. 0 5
      packages/backend-cli/template/src/index.tsx
  11. 1 1
      packages/backend-cli/template/src/pages/Log/index.tsx
  12. 1 1
      packages/backend-cli/template/src/pages/Login/index.tsx
  13. 8 10
      packages/backend-cli/template/src/pages/User/components/UserAdd/index.tsx
  14. 1 1
      packages/backend-cli/template/src/pages/User/index.tsx
  15. 6 0
      packages/backend-cli/template/src/types/index.ts
  16. 12 0
      packages/pc-components/CHANGELOG.md
  17. 2 3
      packages/pc-components/package.json
  18. 2 2
      packages/pc-components/src/components/DageMap/utils.ts
  19. 16 18
      packages/pc-components/src/components/DageUpload/index.tsx
  20. 5 5
      packages/pc-components/src/components/DageUpload/style.ts
  21. 76 71
      packages/pc-components/src/utils/encrypt.ts
  22. 0 14
      packages/pc-components/src/utils/eventBus.ts
  23. 0 2
      packages/pc-components/src/utils/index.ts
  24. 0 145
      packages/pc-components/src/utils/services.ts
  25. 8 0
      packages/service/CHANGELOG.md
  26. 1 1
      packages/service/package.json
  27. 9 0
      packages/utils/CHANGELOG.md
  28. 1 1
      packages/utils/package.json
  29. 1 1
      scripts/build.js
  30. 1 1
      scripts/install.js
  31. 1 1
      scripts/publish.js

+ 6 - 0
packages/backend-cli/CHANGELOG.md

@@ -1,5 +1,11 @@
 # @dage/backend-cli
 
+## 1.2.0
+
+### Minor Changes
+
+- 修改接口请求方式
+
 ## 1.1.0
 
 ### Minor Changes

+ 1 - 1
packages/backend-cli/package.json

@@ -1,6 +1,6 @@
 {
   "name": "@dage/backend-cli",
-  "version": "1.1.0",
+  "version": "1.2.0",
   "description": "创建后台模板",
   "main": "index.js",
   "files": [

+ 0 - 8
packages/backend-cli/template/CHANGELOG.md

@@ -1,8 +0,0 @@
-# @dage/backend-template
-
-## 1.0.2
-
-### Patch Changes
-
-- Updated dependencies
-  - @dage/pc-components@1.1.0

+ 4 - 4
packages/backend-cli/template/package.json

@@ -1,11 +1,12 @@
 {
   "name": "@dage/backend-template",
-  "version": "1.0.2",
+  "version": "1.0.0",
   "private": true,
   "dependencies": {
     "@ant-design/icons": "^5.1.4",
     "@babel/core": "^7.16.0",
     "@dage/pc-components": "workspace:^",
+    "@dage/service": "workspace:^",
     "@dage/utils": "workspace:^",
     "@pmmmwh/react-refresh-webpack-plugin": "^0.5.3",
     "@svgr/webpack": "^5.5.0",
@@ -17,7 +18,6 @@
     "@types/react": "^18.2.16",
     "@types/react-dom": "^18.2.6",
     "antd": "^5.8.2",
-    "axios": "^1.4.0",
     "babel-jest": "^27.4.2",
     "babel-loader": "^8.2.3",
     "babel-plugin-named-asset-import": "^0.3.8",
@@ -76,8 +76,8 @@
     "workbox-webpack-plugin": "^6.4.1"
   },
   "scripts": {
-    "start": "cross-env REACT_APP_BACKEND_URL=https://sit-shgybwg.4dage.com node scripts/start.js",
-    "build": "cross-env PUBLIC_URL=./ REACT_APP_BACKEND_URL=https://sit-shgybwg.4dage.com node scripts/build.js"
+    "start": "cross-env REACT_APP_API_URL=https://sit-shgybwg.4dage.com node scripts/start.js",
+    "build": "cross-env PUBLIC_URL=./ REACT_APP_API_URL=https://sit-shgybwg.4dage.com node scripts/build.js"
   },
   "eslintConfig": {
     "extends": [

+ 1 - 0
packages/backend-cli/template/src/App.tsx

@@ -5,6 +5,7 @@ import zhCN from "antd/lib/locale/zh_CN";
 import { MemoSpinLoding } from "./components";
 import theme from "./theme.scss";
 import "./App.scss";
+import "./configure";
 
 const Login = React.lazy(() => import("./pages/Login"));
 const Layout = React.lazy(() => import("./pages/Layout"));

+ 4 - 4
packages/backend-cli/template/src/api/index.ts

@@ -1,16 +1,16 @@
 import { LoginRequest, LoginResponse, UpdatePwdRequest } from "@/types";
-import { service } from "@dage/pc-components";
+import { requestByGet, requestByPost } from "@dage/service";
 
 export const login = (data: LoginRequest) => {
-  return service.post<LoginResponse>("/api/admin/login", data);
+  return requestByPost<LoginResponse>("/api/admin/login", data);
 };
 
 export const logoutApi = () => {
-  return service.get("/api/admin/logout");
+  return requestByGet("/api/admin/logout");
 };
 
 export const updatePwd = (data: UpdatePwdRequest) => {
-  return service.post("/api/sys/user/updatePwd", data);
+  return requestByPost("/api/sys/user/updatePwd", data);
 };
 
 export * from "./log";

+ 2 - 2
packages/backend-cli/template/src/api/log.ts

@@ -1,8 +1,8 @@
 import { GetLogListParams } from "@/types";
-import { service } from "@dage/pc-components";
+import { request } from "@dage/service";
 
 export const logApi = {
   getList(params: GetLogListParams) {
-    return service.post("/api/sys/log/list", params);
+    return request("/api/sys/log/list", params);
   },
 };

+ 7 - 7
packages/backend-cli/template/src/api/user.ts

@@ -1,23 +1,23 @@
 import { GetUserListParams, SaveUserType } from "@/types";
-import { service } from "@dage/pc-components";
+import { requestByGet, requestByPost } from "@dage/service";
 
 export const userApi = {
   getList(params: GetUserListParams) {
-    return service.post("/api/sys/user/list", params);
+    return requestByPost("/api/sys/user/list", params);
   },
   handleType(id: number, isEnabled: number) {
-    return service.get(`/api/sys/user/editStatus/${id}/${isEnabled}`);
+    return requestByGet(`/api/sys/user/editStatus/${id}/${isEnabled}`);
   },
   del(ids: number) {
-    return service.get(`/api/sys/user/removes/${ids}`);
+    return requestByGet(`/api/sys/user/removes/${ids}`);
   },
   resetPwd(id: number) {
-    return service.get(`/api/sys/user/resetPass/${id}`);
+    return requestByGet(`/api/sys/user/resetPass/${id}`);
   },
   getDetail(id: number) {
-    return service.get(`/api/sys/user/detail/${id}`);
+    return requestByGet(`/api/sys/user/detail/${id}`);
   },
   edit(params: SaveUserType) {
-    return service.post("/api/sys/user/save", params);
+    return requestByPost("/api/sys/user/save", params);
   },
 };

+ 39 - 0
packages/backend-cli/template/src/configure.ts

@@ -0,0 +1,39 @@
+import { compose, initial } from "@dage/service";
+import { getTokenInfo, removeTokenInfo } from "@dage/pc-components";
+import { message } from "antd";
+import { NoticeType } from "antd/es/message/interface";
+
+const showMessage = (msg: string, type: NoticeType = "error") => {
+  message.open({
+    type,
+    content: msg,
+    duration: 4,
+  });
+};
+
+initial({
+  fetch: window.fetch.bind(window),
+  baseURL: process.env.REACT_APP_API_URL as string,
+  interceptor: compose(
+    (request, next) => {
+      const { token } = getTokenInfo();
+      if (token) {
+        request.headers["token"] = token;
+      }
+      return next();
+    },
+    // 登陆失效
+    async (request, next) => {
+      const response = await next();
+
+      if ([5001, 5002].includes(response.code)) {
+        const msg = "登录失效!";
+        showMessage(msg);
+        removeTokenInfo();
+        globalThis.location.href = "#/login";
+      }
+
+      return response;
+    }
+  ),
+});

+ 0 - 5
packages/backend-cli/template/src/index.tsx

@@ -2,14 +2,9 @@ import React from "react";
 import ReactDOM from "react-dom/client";
 import { HashRouter } from "react-router-dom";
 import { Provider } from "react-redux";
-import { eventBus } from "@dage/pc-components";
 import store from "./store/index";
 import App from "./App";
 
-eventBus.on("Event.login.invalid", () => {
-  globalThis.location.href = "#/login";
-});
-
 const root = ReactDOM.createRoot(
   document.getElementById("root") as HTMLElement
 );

+ 1 - 1
packages/backend-cli/template/src/pages/Log/index.tsx

@@ -26,7 +26,7 @@ export default function IndustrialMeta() {
   const getList = useCallback(async () => {
     setLoading(true);
     try {
-      const { data } = await logApi.getList(params);
+      const data = await logApi.getList(params);
       setList(data.records);
       setTotal(data.total);
     } finally {

+ 1 - 1
packages/backend-cli/template/src/pages/Login/index.tsx

@@ -24,7 +24,7 @@ export default function Login() {
     };
 
     try {
-      const { data } = await login(obj);
+      const data = await login(obj);
       const list = data.user.isAdmin
         ? [...DEFAULT_MENU, ...DEFAULT_ADMIN_MENU]
         : [...DEFAULT_MENU];

+ 8 - 10
packages/backend-cli/template/src/pages/User/components/UserAdd/index.tsx

@@ -24,9 +24,9 @@ function UserAdd({ id, closePage, upTableList, addTableList }: Props) {
   const FormBoxRef = useRef<FormInstance>(null);
 
   const getInfoInAPIFu = useCallback(async (id: number) => {
-    const res = await userApi.getDetail(id);
-    FormBoxRef.current?.setFieldsValue(res.data);
-    console.log("是编辑,在这里发请求拿数据", res);
+    const data = await userApi.getDetail(id);
+    FormBoxRef.current?.setFieldsValue(data);
+    console.log("是编辑,在这里发请求拿数据", data);
   }, []);
 
   // 没有通过校验
@@ -49,15 +49,13 @@ function UserAdd({ id, closePage, upTableList, addTableList }: Props) {
         id: id ? id : null,
       };
 
-      const res: any = await userApi.edit(obj);
+      await userApi.edit(obj);
 
-      if (res.code === 0) {
-        message.success(id ? "编辑成功!" : "新增成功!");
-        if (id) upTableList();
-        else addTableList();
+      message.success(id ? "编辑成功!" : "新增成功!");
+      if (id) upTableList();
+      else addTableList();
 
-        closePage();
-      }
+      closePage();
       console.log("通过校验,点击确定");
     },
     [addTableList, closePage, id, upTableList]

+ 1 - 1
packages/backend-cli/template/src/pages/User/index.tsx

@@ -36,7 +36,7 @@ export default function IndustrialMeta() {
   const getList = useCallback(async () => {
     setLoading(true);
     try {
-      const { data } = await userApi.getList(params);
+      const data = await userApi.getList(params);
       setList(data.records);
       setTotal(data.total);
     } finally {

+ 6 - 0
packages/backend-cli/template/src/types/index.ts

@@ -20,5 +20,11 @@ export interface UpdatePwdRequest {
   oldPassword: string | string[];
 }
 
+export enum ResponseStatusCode {
+  SUCCESS = 0,
+  TOKEN_INVALID = 5001,
+  TOKEN_INVALID2 = 5002,
+}
+
 export * from "./log";
 export * from "./user";

+ 12 - 0
packages/pc-components/CHANGELOG.md

@@ -1,5 +1,17 @@
 # @dage/pc-components
 
+## 1.2.0
+
+### Minor Changes
+
+- 删除 pc-components 内置 service,将控制权交给应用
+
+### Patch Changes
+
+- Updated dependencies
+  - @dage/utils@1.0.2
+  - @dage/service@1.0.1
+
 ## 1.1.0
 
 ### Minor Changes

+ 2 - 3
packages/pc-components/package.json

@@ -1,6 +1,6 @@
 {
   "name": "@dage/pc-components",
-  "version": "1.1.0",
+  "version": "1.2.0",
   "description": "PC 端组件库",
   "module": "dist/index.js",
   "main": "dist/index.js",
@@ -21,7 +21,6 @@
   "peerDependencies": {
     "@ant-design/icons": "5.*",
     "antd": "5.*",
-    "axios": "^1.4.0",
     "lodash": "4.*",
     "react": ">=18",
     "react-dom": ">=18"
@@ -32,7 +31,6 @@
     "@babel/preset-typescript": "^7.22.5",
     "@types/lodash": "^4.14.197",
     "@types/react": "^18.2.20",
-    "axios": "^1.4.0",
     "babel-jest": "^29.6.2",
     "cpx": "^1.5.0",
     "jest": "^29.6.2"
@@ -40,6 +38,7 @@
   "license": "MIT",
   "dependencies": {
     "@amap/amap-react": "^0.1.5",
+    "@dage/service": "workspace:^",
     "@dage/utils": "workspace:^",
     "styled-components": "^6.0.7"
   }

+ 2 - 2
packages/pc-components/src/components/DageMap/utils.ts

@@ -1,7 +1,7 @@
 import { config as AmapReactConfig } from "@amap/amap-react";
 import { queryString } from "@dage/utils";
+import { requestByGet } from "@dage/service";
 import { AMapTipsResponse } from "./types";
-import { service } from "../../utils";
 
 AmapReactConfig.version = "2.0"; // 默认2.0,这里可以不修改
 AmapReactConfig.key = "8de83e1728d5368f8452eee95f35585d";
@@ -40,7 +40,7 @@ export const getAmapInputTips = async (
   city?: string | number,
   citylimit: "true" | "false" = "true"
 ) => {
-  const { data } = await service.get<AMapTipsResponse>(
+  const data = await requestByGet<AMapTipsResponse>(
     queryString.stringifyUrl({
       url: path,
       query: { keywords: value, city, citylimit },

+ 16 - 18
packages/pc-components/src/components/DageUpload/index.tsx

@@ -6,6 +6,7 @@ import {
   UploadOutlined,
 } from "@ant-design/icons";
 import { FC, useContext, useMemo, useState } from "react";
+import { requestByGet, requestByPost } from "@dage/service";
 import { RcFile, UploadFile, UploadProps } from "antd/es/upload";
 import {
   DageFileAPIResponseType,
@@ -20,7 +21,6 @@ import {
   UploadTips,
 } from "./style";
 import { DageUploadContext } from "./context";
-import { service } from "../../utils";
 import { DageUploadItemActions } from "./ItemActions";
 import { getImageSize } from "./utils";
 
@@ -126,21 +126,17 @@ export const DageUpload: FC<DageUploadProps> = ({
         formData.append(key, value as string | Blob);
       });
 
-    service
-      .post<DageFileAPIResponseType>(action, formData, {
-        withCredentials: option.withCredentials,
-        // @ts-ignore
-        headers: {
-          Accept: "*/*",
-          "Content-Type": "multipart/form-data",
-          ...headers,
-        },
-        onUploadProgress: ({ total, loaded }) => {
-          if (!total || !loaded) return;
-          option.onProgress?.({ percent: Math.round((loaded / total) * 100) });
-        },
-      })
-      .then(({ data }) => {
+    requestByPost<DageFileAPIResponseType>(action, formData, {
+      // @ts-ignore
+      withCredentials: option.withCredentials,
+      headers,
+      // @ts-ignore
+      onUploadProgress: ({ total, loaded }) => {
+        if (!total || !loaded) return;
+        option.onProgress?.({ percent: Math.round((loaded / total) * 100) });
+      },
+    })
+      .then((data) => {
         option.onSuccess?.(data);
       })
       .catch((err) => {
@@ -196,8 +192,10 @@ export const DageUpload: FC<DageUploadProps> = ({
   const handleDownload = async (file: UploadFile) => {
     if (!file.url) return;
 
-    const res: BlobPart = await service.get(file.url, {
-      responseType: "arraybuffer",
+    const res: BlobPart = await requestByGet(file.url, "", {
+      meta: {
+        responseType: "arrayBuffer",
+      },
     });
     const blob = new Blob([res]);
     const url = URL.createObjectURL(blob);

+ 5 - 5
packages/pc-components/src/components/DageUpload/style.ts

@@ -1,6 +1,6 @@
-import { Upload, UploadProps } from 'antd';
-import { FC } from 'react';
-import { css, styled } from 'styled-components';
+import { Upload, UploadProps } from "antd";
+import { FC } from "react";
+import { css, styled } from "styled-components";
 
 const { Dragger } = Upload;
 
@@ -10,7 +10,7 @@ export const UploadTips = styled.p`
 `;
 
 export const UploadContainer = styled.div.attrs({
-  className: 'dage-upload',
+  className: "dage-upload",
 })`
   display: inline-block;
   min-width: 320px;
@@ -88,7 +88,7 @@ export const UploadPictureItem = styled.div`
     background-color: rgba(0, 0, 0, 0.45);
     opacity: 0;
     transition: all 0.3s;
-    content: ' ';
+    content: " ";
   }
   .ant-upload-list-item::before {
     display: none;

+ 76 - 71
packages/pc-components/src/utils/encrypt.ts

@@ -1,69 +1,69 @@
 function randomWord(randomFlag: boolean, min: number, max: number = 15) {
-  let str = '';
+  let str = "";
   let range = min;
   const arr = [
-    '0',
-    '1',
-    '2',
-    '3',
-    '4',
-    '5',
-    '6',
-    '7',
-    '8',
-    '9',
-    'a',
-    'b',
-    'c',
-    'd',
-    'e',
-    'f',
-    'g',
-    'h',
-    'i',
-    'j',
-    'k',
-    'l',
-    'm',
-    'n',
-    'o',
-    'p',
-    'q',
-    'r',
-    's',
-    't',
-    'u',
-    'v',
-    'w',
-    'x',
-    'y',
-    'z',
-    'A',
-    'B',
-    'C',
-    'D',
-    'E',
-    'F',
-    'G',
-    'H',
-    'I',
-    'J',
-    'K',
-    'L',
-    'M',
-    'N',
-    'O',
-    'P',
-    'Q',
-    'R',
-    'S',
-    'T',
-    'U',
-    'V',
-    'W',
-    'X',
-    'Y',
-    'Z',
+    "0",
+    "1",
+    "2",
+    "3",
+    "4",
+    "5",
+    "6",
+    "7",
+    "8",
+    "9",
+    "a",
+    "b",
+    "c",
+    "d",
+    "e",
+    "f",
+    "g",
+    "h",
+    "i",
+    "j",
+    "k",
+    "l",
+    "m",
+    "n",
+    "o",
+    "p",
+    "q",
+    "r",
+    "s",
+    "t",
+    "u",
+    "v",
+    "w",
+    "x",
+    "y",
+    "z",
+    "A",
+    "B",
+    "C",
+    "D",
+    "E",
+    "F",
+    "G",
+    "H",
+    "I",
+    "J",
+    "K",
+    "L",
+    "M",
+    "N",
+    "O",
+    "P",
+    "Q",
+    "R",
+    "S",
+    "T",
+    "U",
+    "V",
+    "W",
+    "X",
+    "Y",
+    "Z",
   ];
   // 随机产生
   if (randomFlag) {
@@ -76,8 +76,9 @@ function randomWord(randomFlag: boolean, min: number, max: number = 15) {
   return str;
 }
 
-export const encodeStr = (str: string, strv = '') => {
-  const NUM = 2;
+const NUM = 2;
+
+export const encodeStr = (str: string) => {
   const front = randomWord(false, 8);
   const middle = randomWord(false, 8);
   const end = randomWord(false, 8);
@@ -85,11 +86,15 @@ export const encodeStr = (str: string, strv = '') => {
   const str1 = str.substring(0, NUM);
   const str2 = str.substring(NUM);
 
-  if (strv) {
-    const strv1 = strv.substring(0, NUM);
-    const strv2 = strv.substring(NUM);
-    return [front + str2 + middle + str1 + end, front + strv2 + middle + strv1 + end];
-  }
-
   return front + str2 + middle + str1 + end;
 };
+
+export const decodeStr = (str: string) => {
+  const str1 = str.substring(8);
+  const str2 = str1.substring(0, str1.length - 8);
+
+  const front = str2.slice(-NUM);
+  const end = str2.substring(0, str2.length - 8 - NUM);
+
+  return front + end;
+};

+ 0 - 14
packages/pc-components/src/utils/eventBus.ts

@@ -1,14 +0,0 @@
-import { EventBus } from "@dage/utils";
-import { DageResponse } from "./services";
-
-declare global {
-  /**
-   * 声明映射关系
-   */
-  interface EventMapper {
-    /** 登录失效 */
-    "Event.login.invalid": DageResponse;
-  }
-}
-
-export const eventBus = new EventBus();

+ 0 - 2
packages/pc-components/src/utils/index.ts

@@ -1,4 +1,2 @@
 export * from "./storage";
-export { default as service } from "./services";
-export * from "./eventBus";
 export * from "./encrypt";

+ 0 - 145
packages/pc-components/src/utils/services.ts

@@ -1,145 +0,0 @@
-import { message } from 'antd';
-import { NoticeType } from 'antd/es/message/interface';
-import axios, {
-  type AxiosInstance,
-  type InternalAxiosRequestConfig,
-  type AxiosResponse,
-} from 'axios';
-import isNumber from 'lodash/isNumber';
-import { getTokenInfo, removeTokenInfo } from './storage';
-import { eventBus } from './eventBus';
-
-export enum ResponseStatusCode {
-  SUCCESS = 0,
-  TOKEN_INVALID = 5001,
-  TOKEN_INVALID2 = 5002,
-}
-
-interface DageConfig<D = any> extends InternalAxiosRequestConfig<D> {
-  /**
-   * 隐藏错误提醒
-   */
-  hidden?: boolean;
-}
-
-export interface DageResponse<T = any, D = any> extends AxiosResponse<T, D> {
-  code: number;
-  msg: string;
-}
-
-interface Service extends AxiosInstance {
-  get<T = any, R = DageResponse<T>, D = any>(
-    url: string,
-    config?: Partial<DageConfig<D>>,
-  ): Promise<R>;
-  post<T = any, R = DageResponse<T>, D = any>(
-    url: string,
-    data?: D,
-    config?: DageConfig<D>,
-  ): Promise<R>;
-}
-
-const service: Service = axios.create({
-  baseURL: process.env.REACT_APP_BACKEND_URL,
-  timeout: 5 * 60 * 1000,
-  headers: {
-    'Cache-Control': 'no-cache',
-    'Content-Type': 'application/json;charset=UTF-8',
-    'X-Requested-With': 'XMLHttpRequest',
-  },
-});
-
-/**
- * 服务端接口empty字符串跟null返回的结果不同,过滤掉empty字符串
- * @param params
- * @param emptyString 是否过滤空字符串
- */
-function filterEmptyKey(params: any, emptyString = false) {
-  if (Array.isArray(params) || params == null) {
-    return params;
-  }
-
-  Object.keys(params).forEach((key) => {
-    if (params[key] === null || (emptyString && params[key] === '')) {
-      delete params[key];
-    }
-  });
-}
-
-const showMessage = (msg: string, type: NoticeType = 'error') => {
-  message.open({
-    type,
-    content: msg,
-    duration: 4,
-  });
-};
-
-service.interceptors.request.use((config: DageConfig) => {
-  const { token } = getTokenInfo();
-  if (token) config.headers.token = token;
-
-  if (config.method === 'post') {
-    if (!(config.data instanceof FormData)) {
-      const params = {
-        ...config.data,
-      };
-      filterEmptyKey(params); // 过滤空字符串
-      config.data = params;
-    }
-  } else if (config.method === 'get') {
-    config.params = {
-      _t: new Date().getTime() / 1000,
-      ...config.params,
-    };
-    filterEmptyKey(config.params, true);
-  }
-  return config;
-});
-
-service.interceptors.response.use(
-  (res) => {
-    const { data, config }: { config: DageConfig; data: DageResponse } = res;
-
-    // data 有可能直接返回数据
-    if (isNumber(data.code)) {
-      if (
-        [ResponseStatusCode.TOKEN_INVALID, ResponseStatusCode.TOKEN_INVALID2].includes(data.code)
-      ) {
-        const msg = '登录失效!';
-        showMessage(msg);
-        removeTokenInfo();
-        eventBus.emit('Event.login.invalid', data);
-
-        return Promise.reject({
-          code: data.code,
-          msg,
-        });
-      } else if (data.code !== ResponseStatusCode.SUCCESS) {
-        const msg = data.msg || '加载失败';
-        const code = data.code || -1000;
-
-        // 未手动配置 隐藏 消息提示时,公共提醒错误
-        if (!config.hidden) {
-          setTimeout(() => {
-            showMessage(msg);
-          }, 0);
-        }
-
-        return Promise.reject({
-          code,
-          msg,
-        });
-      }
-    }
-
-    return data || {};
-  },
-  (error) => {
-    showMessage(error.message);
-    return new Promise((res, rej) => {
-      rej(error);
-    });
-  },
-);
-
-export default service as Required<Service>;

+ 8 - 0
packages/service/CHANGELOG.md

@@ -0,0 +1,8 @@
+# @dage/service
+
+## 1.0.1
+
+### Patch Changes
+
+- Updated dependencies
+  - @dage/utils@1.0.2

+ 1 - 1
packages/service/package.json

@@ -1,6 +1,6 @@
 {
   "name": "@dage/service",
-  "version": "1.0.0",
+  "version": "1.0.1",
   "description": "接口请求工具",
   "module": "dist/index.js",
   "main": "dist/index.js",

+ 9 - 0
packages/utils/CHANGELOG.md

@@ -0,0 +1,9 @@
+# @dage/utils
+
+## 1.0.2
+
+### Patch Changes
+
+- 新增 addTrailingSlash 方法
+- 新增 removeHeadingString 方法
+- 新增 removeHeadingSlash 方法

+ 1 - 1
packages/utils/package.json

@@ -1,6 +1,6 @@
 {
   "name": "@dage/utils",
-  "version": "1.0.1",
+  "version": "1.0.2",
   "description": "工具类",
   "sideEffects": false,
   "module": "dist/index.js",

+ 1 - 1
scripts/build.js

@@ -1,6 +1,6 @@
 const ch = require("child_process");
 
-const packages = ["utils", "pc-components"];
+const packages = ["utils", "service", "pc-components"];
 
 packages.forEach((p) => {
   console.log(`********  build package: ${p} ************`);

+ 1 - 1
scripts/install.js

@@ -1,6 +1,6 @@
 const ch = require("child_process");
 
-const packages = ["utils", "pc-components", "backend-cli"];
+const packages = ["utils", "service", "pc-components", "backend-cli"];
 
 packages.forEach((p) => {
   console.log(`********  install package: ${p} ************`);

+ 1 - 1
scripts/publish.js

@@ -1,6 +1,6 @@
 const ch = require("child_process");
 
-const packages = ["backend-cli", "events", "pc-components", "utils"];
+const packages = ["backend-cli", "service", "events", "pc-components", "utils"];
 
 packages.forEach((name) => {
   if (!["backend-cli", "events"].includes(name)) {