v3-utils-lib 1.0.2 → 1.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/Page.js ADDED
@@ -0,0 +1 @@
1
+ import"vue";
@@ -0,0 +1 @@
1
+ import"./request.js";
@@ -0,0 +1 @@
1
+ import"./v3-utils-lib.js";
File without changes
@@ -0,0 +1 @@
1
+ import e from"axios";var t=null,n=`/api`,r=1e4,i=null,a=e.create({baseURL:n,timeout:r}),o=!1,s=[];a.interceptors.request.use(e=>{let{needToken:t}=e;if(t){let t=sessionStorage.getItem(`loginInfo`);if(!t)return Promise.reject({response:{status:401,data:{message:`未登录,请先登录`}}});let n=JSON.parse(t).accessToken;n&&(e.headers.Authorization=n)}return e},e=>Promise.reject(e)),a.interceptors.response.use(e=>{let{code:t,msg:n}=e.data;return t!=200&&(i||console.error)(n||`请求失败`),e.data},async e=>{let n=e.config;if(e.response?.status===401&&!n._retry){if(o)return new Promise(e=>{s.push(t=>{n.headers.Authorization=t,e(a(n))})});n._retry=!0,o=!0;try{let e=JSON.parse(sessionStorage.getItem(`loginInfo`)),r=e?.refreshToken;if(!r)throw Error(`refreshToken 不存在`);if(!t)throw Error(`未配置 refreshTokenApi`);let i=(await t({refreshToken:r})).data.accessToken;return e.accessToken=i,sessionStorage.setItem(`loginInfo`,JSON.stringify(e)),s.forEach(e=>e(i)),s=[],n.headers.Authorization=i,a(n)}catch(e){return sessionStorage.clear(),window.location.href=`/login`,Promise.reject(e)}finally{o=!1}}let r=e?.response?.data?.msg||`请求失败`;return i&&i(r),Promise.reject(e)});export{a as default};
@@ -1,208 +1 @@
1
- import { reactive as e } from "vue";
2
- import t from "axios";
3
- //#region \0rolldown/runtime.js
4
- var n = Object.defineProperty, r = (e, t) => {
5
- let r = {};
6
- for (var i in e) n(r, i, {
7
- get: e[i],
8
- enumerable: !0
9
- });
10
- return t || n(r, Symbol.toStringTag, { value: "Module" }), r;
11
- }, i = null, a = 0;
12
- function o(e = "加载中...") {
13
- if (a++, i) {
14
- i.style.display = "flex", i.querySelector(".load-text").innerText = e;
15
- return;
16
- }
17
- let t = document.createElement("div");
18
- t.id = "global-loading-mask", t.innerHTML = `
19
- <div class="load-box">
20
- <div class="load-spinner"></div>
21
- <div class="load-text">${e}</div>
22
- </div>
23
- `, t.style.cssText = "\n position: fixed; top: 0; left: 0; right: 0; bottom: 0;\n background: rgba(0, 0, 0, 0.5);\n display: flex; align-items: center; justify-content: center;\n z-index: 99999; color: #fff;\n user-select: none;\n ";
24
- let n = t.querySelector(".load-box");
25
- n.style.cssText = "\n display: flex; flex-direction: column; align-items: center; gap: 12px;\n ";
26
- let r = t.querySelector(".load-spinner");
27
- r.style.cssText = "\n width: 36px; height: 36px;\n border: 3px solid rgba(255,255,255,.3);\n border-top: 3px solid #fff;\n border-radius: 50%;\n animation: spin 0.8s linear infinite;\n ";
28
- let o = t.querySelector(".load-text");
29
- o.style.cssText = "\n font-size: 14px; text-shadow: 0 1px 2px rgba(0,0,0,.2);\n ";
30
- let s = document.createElement("style");
31
- s.innerHTML = "@keyframes spin { to { transform: rotate(360deg); } }", document.head.appendChild(s), document.body.appendChild(t), i = t;
32
- }
33
- function s() {
34
- a--, a <= 0 && (a = 0, i && (i.style.display = "none"));
35
- }
36
- function c() {
37
- a = 0, i && (i.style.display = "none");
38
- }
39
- //#endregion
40
- //#region src/Page.js
41
- function l(t) {
42
- let n = e({
43
- pageNum: 1,
44
- pageSize: 10,
45
- total: 0
46
- });
47
- return {
48
- pageInfo: n,
49
- PageIndexChange: (e) => {
50
- if (e !== n.pageNum) return n.pageNum = e, t();
51
- },
52
- SizeChange: (e) => {
53
- if (e !== n.pageSize) return n.pageSize = e, t();
54
- },
55
- ResetPage: () => (n.pageNum = 1, t())
56
- };
57
- }
58
- //#endregion
59
- //#region src/generateRoutes.js
60
- var u = {};
61
- function d(e, t) {
62
- try {
63
- let n = (/* @__PURE__ */ Error()).stack.split("\n"), r = (n[3] || n[2]).match(/(\/src\/.*?\.js)/), i = r ? r[1] : "unknown";
64
- setTimeout(() => {
65
- u[i] = {
66
- options: e,
67
- meta: t
68
- };
69
- }, 0);
70
- } catch {}
71
- }
72
- function f(e) {
73
- let t = /* @__PURE__ */ Object.assign({ "/src/index.js": S }), n = [];
74
- for (let r in t) {
75
- if (!r.startsWith(e)) continue;
76
- let i = t[r].component, a = u[r] || {};
77
- if (!i) continue;
78
- let o = r.replace(e, "").replace("/index.js", "").replace(/\[(\w+)\]/g, ":$1");
79
- o === "" && (o = "/");
80
- let s = o.split("/").filter(Boolean).map((e) => e[0].toUpperCase() + e.slice(1)).join("");
81
- n.push({
82
- filePath: r,
83
- path: o,
84
- name: s,
85
- component: i,
86
- ...a.options,
87
- meta: a.meta || {},
88
- children: []
89
- });
90
- }
91
- function r(t, n = "") {
92
- return t.filter((t) => {
93
- if (!t.filePath) return !1;
94
- let r = t.filePath.replace("/index.js", ""), i = `${e}${n}`;
95
- return RegExp(`^${i}\\/[^\\/]+$`).test(r);
96
- }).map((e) => {
97
- let i = { ...e };
98
- if (n !== "") {
99
- let e = i.path.split("/");
100
- i.path = e[e.length - 1];
101
- } else i.path.startsWith("/") || (i.path = "/" + i.path);
102
- i.children = r(t, i.path), i.children?.length || delete i.children;
103
- let { filePath: a, ...o } = i;
104
- return o;
105
- });
106
- }
107
- return r(n);
108
- }
109
- //#endregion
110
- //#region src/request.js
111
- var p = null, m = "/api", h = 1e4, g = null;
112
- function _(e = {}) {
113
- e.refreshTokenApi && (p = e.refreshTokenApi), e.baseURL && (m = e.baseURL), e.timeout && (h = e.timeout), e.errorHandler && (g = e.errorHandler);
114
- }
115
- var v = t.create({
116
- baseURL: m,
117
- timeout: h
118
- }), y = !1, b = [];
119
- v.interceptors.request.use((e) => {
120
- let { needToken: t } = e;
121
- if (t) {
122
- let t = sessionStorage.getItem("loginInfo");
123
- if (!t) return Promise.reject({ response: {
124
- status: 401,
125
- data: { message: "未登录,请先登录" }
126
- } });
127
- let n = JSON.parse(t).accessToken;
128
- n && (e.headers.Authorization = n);
129
- }
130
- return e;
131
- }, (e) => Promise.reject(e)), v.interceptors.response.use((e) => {
132
- let { code: t, msg: n } = e.data;
133
- return t != 200 && (g || console.error)(n || "请求失败"), e.data;
134
- }, async (e) => {
135
- let t = e.config;
136
- if (e.response?.status === 401 && !t._retry) {
137
- if (y) return new Promise((e) => {
138
- b.push((n) => {
139
- t.headers.Authorization = n, e(v(t));
140
- });
141
- });
142
- t._retry = !0, y = !0;
143
- try {
144
- let e = JSON.parse(sessionStorage.getItem("loginInfo")), n = e?.refreshToken;
145
- if (!n) throw Error("refreshToken 不存在");
146
- if (!p) throw Error("未配置 refreshTokenApi");
147
- let r = (await p({ refreshToken: n })).data.accessToken;
148
- return e.accessToken = r, sessionStorage.setItem("loginInfo", JSON.stringify(e)), b.forEach((e) => e(r)), b = [], t.headers.Authorization = r, v(t);
149
- } catch (e) {
150
- return sessionStorage.clear(), window.location.href = "/login", Promise.reject(e);
151
- } finally {
152
- y = !1;
153
- }
154
- }
155
- let n = e?.response?.data?.msg || "请求失败";
156
- return g && g(n), Promise.reject(e);
157
- });
158
- //#endregion
159
- //#region src/SuccessAjax.js
160
- async function x(e, t = {}, n = {}) {
161
- let r = {
162
- method: "GET",
163
- fullscreen: !0,
164
- needToken: !0,
165
- loadingText: "加载中...",
166
- pageInfo: null,
167
- isFormData: !1,
168
- headers: {},
169
- ...n
170
- }, i = r.method.toUpperCase();
171
- r.fullscreen && o(r.loadingText);
172
- let a = {
173
- ...r.headers,
174
- needToken: String(r.needToken)
175
- }, c = t;
176
- r.pageInfo && (r.isFormData ? (c.append("pageNum", r.pageInfo.pageNum), c.append("pageSize", r.pageInfo.pageSize)) : c = {
177
- ...t,
178
- ...r.pageInfo
179
- }), r.isFormData && delete a["Content-Type"];
180
- let l = {
181
- url: e,
182
- method: i,
183
- headers: a,
184
- ...r
185
- };
186
- return i === "GET" || i === "DELETE" ? l.params = c : l.data = c, v(l).then((e) => {
187
- let t = e.data ?? e;
188
- return r.pageInfo && t.total && (r.pageInfo.total = t.total), t;
189
- }).catch((e) => Promise.reject(e)).finally(() => {
190
- r.fullscreen && s();
191
- });
192
- }
193
- //#endregion
194
- //#region src/index.js
195
- var S = /* @__PURE__ */ r({
196
- SuccessAjax: () => x,
197
- configRequest: () => _,
198
- forceHideLoadMask: () => c,
199
- generateRoutes: () => f,
200
- hideLoadMask: () => s,
201
- page: () => l,
202
- routeStore: () => u,
203
- routerUtils: () => d,
204
- service: () => v,
205
- showLoadMask: () => o
206
- });
207
- //#endregion
208
- export { x as SuccessAjax, _ as configRequest, c as forceHideLoadMask, f as generateRoutes, s as hideLoadMask, l as page, u as routeStore, d as routerUtils, v as service, o as showLoadMask };
1
+ import"./Page.js";import"./generateRoutes.js";import"./request.js";import"./SuccessAjax.js";
package/package.json CHANGED
@@ -1,18 +1,21 @@
1
1
  {
2
2
  "name": "v3-utils-lib",
3
- "version": "1.0.2",
3
+ "version": "1.0.3",
4
4
  "description": "前端工具函数库:路由生成、请求封装、分页、加载遮罩",
5
5
  "type": "module",
6
6
  "main": "./dist/v3-utils-lib.js",
7
7
  "module": "./dist/v3-utils-lib.js",
8
- "exports": {
9
- ".": {
10
- "import": "./dist/v3-utils-lib.js",
11
- "default": "./dist/v3-utils-lib.js"
12
- }
8
+ "exports": {
9
+ ".": "./dist/v3-utils-lib.js",
10
+ "./loadMask": "./dist/loadMask.js",
11
+ "./Page": "./dist/Page.js",
12
+ "./generateRoutes": "./dist/generateRoutes.js",
13
+ "./request": "./dist/request.js",
14
+ "./SuccessAjax": "./dist/SuccessAjax.js"
13
15
  },
14
16
  "files": [
15
- "dist"
17
+ "dist",
18
+ "README.md"
16
19
  ],
17
20
  "scripts": {
18
21
  "build": "vite build",