yxuse 3.0.10 → 3.0.11

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/README.md CHANGED
@@ -1,9 +1,51 @@
1
1
  # yxuse
2
2
 
3
- - 起步
3
+ ## 更新日志
4
+
5
+ - 2024 3-18 (Vue2.x--> 2.0.3 Vue3.x--->3.0.10)
6
+
7
+ - theme
8
+
9
+ - 主题初始化 install 方法新增配置,主要有当前开发的环境,在开发环境下无 token 会进行弹窗提示,进行自动登录,生产环境登录失效自动跳转至 loginUrl 地址(已内置)
10
+
11
+ ```js
12
+ export interface YxuseOptions {
13
+ /** 是否渲染悬浮球*/
14
+ isRenderToolbar?: boolean;
15
+ /** 是否加载工单*/
16
+ isRenderIssue?: boolean;
17
+ /** 是否加载语言切换*/
18
+ isRenderLang?: boolean;
19
+ /** 登录页地址,非运管系统项目使用*/
20
+ loginUrl?: string;
21
+ /** 自定义登录api,非运管系统项目使用*/
22
+ loginApiUrl?: string;
23
+ /** 翻译Api地址,非运管系统项目使用*/
24
+ translateApiUrl?: string;
25
+ /** 主题列表接口,非运管系统项目使用*/
26
+ themeApiUrl: string;
27
+ /** 首页地址,非运管系统项目使用*/
28
+ homeUrl?: string;
29
+ /** 系统语言*/
30
+ lang?: string;
31
+ /** 当前环境*/
32
+ environment: "development" | "production";
33
+ }
34
+ ```
35
+
36
+ - 新增判断当前色值是否在当前主题中的方法 findColorByTheme(key: string, color: string)
37
+
38
+ - auth
39
+
40
+ - 新增获取系统配置的方法 getSystemConfig(key: string)
41
+
42
+ - utils
43
+ - 新增判断该色值是否是深色的方法 isDarkColor(color: string)
44
+
45
+ ## 起步
4
46
 
5
47
  ```javascript
6
- 低版本适配为1.0.57
48
+ 低版本适配为1.0.100
7
49
  //npm
8
50
  npm install yxuse@latest
9
51
  //pnpm
@@ -12,9 +54,9 @@ pnpm install yxuse@latest
12
54
  //最新淘宝镜像地址为 https://registry.npmmirror.com
13
55
 
14
56
  //速度慢或者版本更新不及时 请使用npm源镜像下载
15
- npm set registry https://registry.npmjs.org
16
- //或
17
- pnpm set registry https://registry.npmjs.org
57
+ // npm set registry https://registry.npmjs.org
58
+ // //或
59
+ // pnpm set registry https://registry.npmjs.org
18
60
 
19
61
  npm publish
20
62
  ```
@@ -105,85 +147,85 @@ import { auth } from "yxuse/api";
105
147
  //Vue3.0+Vite+Ts+pinia
106
148
  // router/index.ts
107
149
  router.beforeEach(async (to, from, next) => {
108
- const globalStore = GlobalStore();
109
- NProgress.start();
110
- // await getBaseConfig();
111
- //权限校验
112
- // 2.动态设置标题
113
- const title = import.meta.env.VITE_GLOB_APP_TITLE;
114
- document.title = to.meta.title ? `${to.meta.title} - ${title}` : title;
115
- // 3.判断是访问登陆页,有 Token 就在当前页面,没有 Token 重置路由并放行到登陆页
116
- const URL = [LOGIN_URL];
117
- if (URL.includes(to.path.toLocaleLowerCase())) {
118
- if (globalStore.token) return next(from.fullPath);
119
- return next();
120
- }
121
- // 4.判断访问页面是否在路由白名单地址中,如果存在直接放行
122
- if (ROUTER_WHITE_LIST.includes(to.path)) return next();
123
- // 5.判断是否有 Token,没有重定向到 login
150
+ const globalStore = GlobalStore();
151
+ NProgress.start();
152
+ // await getBaseConfig();
153
+ //权限校验
154
+ // 2.动态设置标题
155
+ const title = import.meta.env.VITE_GLOB_APP_TITLE;
156
+ document.title = to.meta.title ? `${to.meta.title} - ${title}` : title;
157
+ // 3.判断是访问登陆页,有 Token 就在当前页面,没有 Token 重置路由并放行到登陆页
158
+ const URL = [LOGIN_URL];
159
+ if (URL.includes(to.path.toLocaleLowerCase())) {
160
+ if (globalStore.token) return next(from.fullPath);
161
+ return next();
162
+ }
163
+ // 4.判断访问页面是否在路由白名单地址中,如果存在直接放行
164
+ if (ROUTER_WHITE_LIST.includes(to.path)) return next();
165
+ // 5.判断是否有 Token,没有重定向到 login
124
166
 
125
- if (!globalStore.token) return next({ path: LOGIN_URL, replace: true });
167
+ if (!globalStore.token) return next({ path: LOGIN_URL, replace: true });
126
168
 
127
- // 6.如果没有菜单列表,或者系统列表,就重新请求菜单列表并添加动态路由
128
- const authStore = AuthStore();
129
- authStore.setRouteName(to.name as string);
169
+ // 6.如果没有菜单列表,或者系统列表,就重新请求菜单列表并添加动态路由
170
+ const authStore = AuthStore();
171
+ authStore.setRouteName(to.name as string);
130
172
 
131
- if (!authStore.authMenuList.length) {
132
- //监测是当前用户是否有权限
133
- const isEmptyPower = await initDynamicRouter(to.path);
134
- if (!isEmptyPower) return next({ ...to, replace: true });
135
- }
136
- next();
173
+ if (!authStore.authMenuList.length) {
174
+ //监测是当前用户是否有权限
175
+ const isEmptyPower = await initDynamicRouter(to.path);
176
+ if (!isEmptyPower) return next({ ...to, replace: true });
177
+ }
178
+ next();
137
179
  });
138
180
  //router/modules/dynamicRouter.ts
139
181
  export const initDynamicRouter = async path => {
140
- const authStore = AuthStore();
141
- const globalStore = GlobalStore();
142
- const configStore = ConfigStore();
143
- const baseConfig = configStore.baseConfigMapGet;
144
- if (Object.keys(baseConfig).length === 0) {
145
- await configStore.getBaseConfig();
146
- }
147
- try {
148
- // 1.获取菜单列表 && 按钮权限(可合并到一个接口获取,根据后端不同可自行改造)
149
- await authStore.getUserRouteListApi();
150
- //2.判断当前用户有没有系统权限
151
- if (!authStore.authMenuListGet.length) {
152
- //用户无权限且当前路由不在系统入口页面 默认跳转至系统入口
153
- if (path !== SYSTEM_ENTRY) {
154
- router.replace(SYSTEM_ENTRY);
155
- } else {
156
- ElNotification({
157
- title: "无权限访问",
158
- message: "当前账号无任何系统权限,请联系系统管理员!",
159
- type: "warning",
160
- duration: 3000
161
- });
162
- }
163
- return true;
164
- }
165
- // 3.添加动态路由
166
- //页面文件
167
- const modules = import.meta.glob("@/views/**/*.vue");
168
- //页面配置项
169
- const viewConfig = import.meta.glob("@/views/**/config.ts", {
170
- import: "viewConfig",
171
- eager: true
172
- });
173
- const userRouterList = auth.getUserRouter(authStore.authMenuList, modules, viewConfig);
174
- console.log(authStore.authMenuList);
175
-
176
- userRouterList.forEach(route => {
177
- router.addRoute("layout", route);
178
- });
179
- authStore.setLayoutMenuList(userRouterList);
180
- return false;
181
- } catch (error) {
182
- // 💢 当按钮 || 菜单请求出错时,重定向到登陆页
183
- // globalStore.setToken("");
184
- // router.replace(LOGIN_URL);
185
- return Promise.reject(error);
186
- }
182
+ const authStore = AuthStore();
183
+ const globalStore = GlobalStore();
184
+ const configStore = ConfigStore();
185
+ const baseConfig = configStore.baseConfigMapGet;
186
+ if (Object.keys(baseConfig).length === 0) {
187
+ await configStore.getBaseConfig();
188
+ }
189
+ try {
190
+ // 1.获取菜单列表 && 按钮权限(可合并到一个接口获取,根据后端不同可自行改造)
191
+ await authStore.getUserRouteListApi();
192
+ //2.判断当前用户有没有系统权限
193
+ if (!authStore.authMenuListGet.length) {
194
+ //用户无权限且当前路由不在系统入口页面 默认跳转至系统入口
195
+ if (path !== SYSTEM_ENTRY) {
196
+ router.replace(SYSTEM_ENTRY);
197
+ } else {
198
+ ElNotification({
199
+ title: "无权限访问",
200
+ message: "当前账号无任何系统权限,请联系系统管理员!",
201
+ type: "warning",
202
+ duration: 3000
203
+ });
204
+ }
205
+ return true;
206
+ }
207
+ // 3.添加动态路由
208
+ //页面文件
209
+ const modules = import.meta.glob("@/views/**/*.vue");
210
+ //页面配置项
211
+ const viewConfig = import.meta.glob("@/views/**/config.ts", {
212
+ import: "viewConfig",
213
+ eager: true
214
+ });
215
+ const userRouterList = auth.getUserRouter(authStore.authMenuList, modules, viewConfig);
216
+ console.log(authStore.authMenuList);
217
+
218
+ userRouterList.forEach(route => {
219
+ router.addRoute("layout", route);
220
+ });
221
+ authStore.setLayoutMenuList(userRouterList);
222
+ return false;
223
+ } catch (error) {
224
+ // 💢 当按钮 || 菜单请求出错时,重定向到登陆页
225
+ // globalStore.setToken("");
226
+ // router.replace(LOGIN_URL);
227
+ return Promise.reject(error);
228
+ }
187
229
  };
188
230
 
189
231
  ```
@@ -302,8 +344,8 @@ import { auth } from "yxuse/api";
302
344
  ```javascript
303
345
  //静态路由下添加
304
346
  {
305
- path: "/:pathMatch(.*)*",
306
- component: () => import("@/components/ErrorMessage/404.vue")
347
+ path: "/:pathMatch(.*)*",
348
+ component: () => import("@/components/ErrorMessage/404.vue")
307
349
  }
308
350
  ```
309
351
 
package/lib/api.cjs.js CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("./index.cjs6.js"),e=require("./index.cjs5.js");require("element-plus");exports.auth=t.index;exports.getCommentUntreatedCount=e.getCommentUntreatedCount;exports.getUserSelectAnteList=e.getUserSelectAnteList;exports.getUserSelectSatelliteList=e.getUserSelectSatelliteList;exports.getUserThemeList=e.getUserThemeList;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("./index.cjs6.js"),e=require("./index.cjs5.js");require("./vue.runtime.esm-bundler.cjs.js");exports.auth=t.index;exports.getCommentUntreatedCount=e.getCommentUntreatedCount;exports.getUserSelectAnteList=e.getUserSelectAnteList;exports.getUserSelectSatelliteList=e.getUserSelectSatelliteList;exports.getUserThemeList=e.getUserThemeList;
package/lib/api.es.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { i as a } from "./index.es6.js";
2
2
  import { g as o, d as i, c as m, a as g } from "./index.es5.js";
3
- import "element-plus";
3
+ import "./vue.runtime.esm-bundler.es.js";
4
4
  export {
5
5
  a as auth,
6
6
  o as getCommentUntreatedCount,
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./index.cjs2.js");require("./index.cjs3.js");require("./index.cjs6.js");require("element-plus");require("./index.cjs4.js");require("vue");require("./index.cjs5.js");require("./index.cjs7.js");exports.Toolbar=e.Toolbar;exports.Update=e.Update;exports.YxDialog=e._sfc_main;exports.YxForm=e.form;exports.YxSearchForm=e.index;exports.YxTable=e._sfc_main$1;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./index.cjs2.js");require("./index.cjs3.js");require("./index.cjs6.js");require("./vue.runtime.esm-bundler.cjs.js");require("./index.cjs4.js");require("./index.cjs5.js");require("./index.cjs7.js");exports.Toolbar=e.Toolbar;exports.Update=e.Update;exports.YxDialog=e._sfc_main;exports.YxForm=e.form;exports.YxSearchForm=e.index;exports.YxTable=e._sfc_main$1;
@@ -1,16 +1,15 @@
1
- import { T as e, U as Y, _ as l, f as T, i as b, a as f } from "./index.es2.js";
1
+ import { T as x, U as e, _ as Y, f as l, i as T, a as b } from "./index.es2.js";
2
2
  import "./index.es3.js";
3
3
  import "./index.es6.js";
4
- import "element-plus";
4
+ import "./vue.runtime.esm-bundler.es.js";
5
5
  import "./index.es4.js";
6
- import "vue";
7
6
  import "./index.es5.js";
8
7
  import "./index.es7.js";
9
8
  export {
10
- e as Toolbar,
11
- Y as Update,
12
- l as YxDialog,
13
- T as YxForm,
14
- b as YxSearchForm,
15
- f as YxTable
9
+ x as Toolbar,
10
+ e as Update,
11
+ Y as YxDialog,
12
+ l as YxForm,
13
+ T as YxSearchForm,
14
+ b as YxTable
16
15
  };
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("./index.cjs7.js");require("./index.cjs6.js");require("element-plus");exports.default=e.directives$1;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("./index.cjs7.js");require("./index.cjs6.js");require("./vue.runtime.esm-bundler.cjs.js");exports.default=e.directives$1;
@@ -1,6 +1,6 @@
1
1
  import { a as m } from "./index.es7.js";
2
2
  import "./index.es6.js";
3
- import "element-plus";
3
+ import "./vue.runtime.esm-bundler.es.js";
4
4
  export {
5
5
  m as default
6
6
  };
package/lib/icons.cjs.js CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./index.cjs4.js");require("vue");exports.telemetryTitle=e.telemetryTitle;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./index.cjs4.js");require("./vue.runtime.esm-bundler.cjs.js");exports.telemetryTitle=e.telemetryTitle;
package/lib/icons.es.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { t as m } from "./index.es4.js";
2
- import "vue";
2
+ import "./vue.runtime.esm-bundler.es.js";
3
3
  export {
4
4
  m as telemetryTitle
5
5
  };
package/lib/index.cjs.js CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const i=require("./index.cjs3.js"),r=require("./index.cjs4.js"),t=require("./index.cjs5.js"),e=require("./index.cjs2.js");require("./index.cjs7.js");require("./index.cjs6.js");require("element-plus");require("vue");exports.utils=i.utils2;exports.icons=r.icons2;exports.api=t.api2;exports.BC=e.BC;exports.components=e.components2;exports.default=e.index$1;exports.theme=e.theme2;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const i=require("./index.cjs3.js"),t=require("./index.cjs4.js"),r=require("./index.cjs5.js"),e=require("./index.cjs2.js");require("./index.cjs7.js");require("./index.cjs6.js");require("./vue.runtime.esm-bundler.cjs.js");exports.utils=i.utils2;exports.icons=t.icons2;exports.api=r.api2;exports.BC=e.BC;exports.components=e.components2;exports.default=e.index$1;exports.theme=e.theme2;