xframelib 0.5.7 → 0.6.0

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,68 +1,117 @@
1
- # xframelib
2
-
3
- 基于 VUE3+Hprose+Typescript 的前端框架
4
-
5
- - v0.5.7 修改 init 初始化增加 sysGroup 参数;增加 Global.SystemGroup 字段,Axios 和 Hprose 的 Http 请求头加入 sysgroup 系统分组名;解决 Global 变量的循环引用,增加 SysConfig 的 UI 下的 GrayMode 参数、部分 ServiceURL 下参数,修改一些小 BUG;
6
- - v0.5.6 修改 init 初始化方法增加 sysID 参数;增加 Global.SystemID 字段,Axios 和 Hprose 的 Http 请求头加入 sysid;
7
- - v0.5.5 截取捕捉后台返回的有用异常信息,重新抛出;异常警告输出统一模型增加 isExceptionInfo 字段;更新依赖库;
8
- - v0.5.4 解决 IRole 相关模型类型未导出;LayoutManager.d.ts 输出两遍问题;完善 axios http 请求异常警告输出统一模型,发送 SysEvents.AxiosRequestErrorEvent 系统事件;
9
- - v0.5.3 撤销的版本
10
- - v0.5.2 撤销的版本
11
- - v0.5.1 路由权限过滤只比较 path;修改返回权限结果判断错误问题
12
- - v0.5.0 增加用户权限管理组;增加 CodeHelper 来辅助生成部分代码的方法;解决大文件下载路径传递、全屏时不传对象报错等问题;引入 axios 对象外部化 axios 库
13
- - v0.4.9 解决 Global.User 对象赋值错误导致 0.4.8 无法登录的问题
14
- - v0.4.8 解决 UserToken 里没有 appkey 信息;刷新 token 时丢失 appkey 信息(弃用该版本)
15
- - v0.4.7 解决 Hprose 使用 ClientContext 进行公共传参问题,默认 headers 自带 token 值
16
- - v0.4.6 解决文件分片下载并发请求过多的超时问题;AxiosHelper 增加超时时间参数,请求出错不默认弹框
17
- - v0.4.5 解决大文件下载的问题(修复 0.4.4 版本问题);增加库依赖资源 public 文件夹
18
- - v0.4.4 修改单个文件(单片)下载报错问题;(废弃不要使用)
19
- - v0.4.3 修改组件卸载事件的错误;增加用于大屏的浅灰色窗体样式
20
- - v0.4.2 重要修改:修改打包方式;支持组件导出;新增布局组件及管理方法;requestFullScreen 不传要素窗体全屏
21
- - v0.4.1 解决补充遗漏的 BigFileDownload 类;
22
- - v0.4.0 增加 isTool 的相关函数,修改补充方法,增加导出 IUser;
23
- - v0.3.9 init 方法需要传入 axios 对象(不能将 axios 打包进去,因为存在错误);
24
- - v0.3.8 取消 init 方法传入 axios 对象(改为内部自带 Global.Axios);完善 AxiosHelper 工具类;增加大文件分片/断点续传下载类 BigFileDownload;
25
- - v0.3.7 增加 LockHelper 长时间操作退出登录,增加 SystemConfig.UI.LockTime 可选配置和接口 onLockListener、 unLockListener、getLockState;
26
- - v0.3.6 H5Tool 增加基于 SparkMD5 MD5 计算;解决 TokenHelper 与 Global 循环引用问题;增加模仿 JQuery 的 HTML 元素 Style 类名操作 hasClass、addClass、removeClass、toggleClass;完善 getProxyClient 支持 Map 缓存 HproseProxy 对象
27
- - v0.3.5 增加大文件切片上传 FileUpload;增加 newGuid 方法;
28
- 修改 requestPost 使用 FormData 方式提交数据,增加 requestPostBody 使用 JSON 方式提交;
29
- 移除 UserCookies JS-js-cookie 依赖;
30
- H5Tool 增加 getFileShortMD5 获取文件 MD5 值,增加 getObjectURL 获取 File 对象的路径;
31
- - v0.3.4 增加统一用户登录和 Token 支持;解决类循环引用问题;增加系统配置参数为具体接口
32
- - v0.3.3 解决 支持 Hprose 旧版本不支持 useServiceAsync 的问题
33
- - v0.3.2 解决 0.3.1 版本更新错误(导致 HproseClient 无法实例化的问题)
34
- - v0.3.1 修改系统 DefaultProxyClient 初始化弹框报错问题(DefaultHproseAPI 配置项可为空或不设置);增加 getProxyClient 和 initDefaultProxyClient 全局方法。
35
- - v0.3.0 修改 UserCookies 支持自定义 KEY;修改 H5Tool 增强全屏操作功能方法;升级依赖的基础库
36
- - v0.2.9 删除 uuid NPM 包,增加 uuid 工具类,解决类型问题
37
- - v0.2.8 删除对 axios 的依赖(因 axios 使用了 process 对象,vue 中报错)
38
- - v0.2.7 增加 VUE WINDOW,FileDownload 等,打包入 axios(出现问题)
39
- - v0.2.6 新建前端 xframelib,支持 VUE 组件打包基于 ESbuild
40
- - v0.2.5 减小发布包大小,外部依赖 hprose
41
- - v0.2.4 正式应用于项目中,提供.d.ts 声明文件。
42
-
43
- ## What Works:
44
-
45
- - HproseClient 服务调用封装
46
- - 消息事件总线
47
- - Global 全局对象
48
- - Message 提示信息
49
- - SplitSpanes 封装
50
- - collapsepanel 封装
51
- - vuewindow 封装
52
- - 增加 utils 里的 Color、FileDownload、StorageHelper
53
-
54
- ## Installation
55
-
56
- `yarn add xframelib`
57
-
58
- or
59
-
60
- `npm i -D xframelib`
61
-
62
- ## Usage
63
-
64
- 暂无
65
-
66
- ### Working with hprose
67
-
68
- 暂无
1
+ # xframelib
2
+
3
+ 基于 VUE3+Hprose+Typescript 的前端框架
4
+
5
+ - v0.6.0 解决requestPost支持FormData数组参数问题;IMapKeys支持地图Key配置为数组;ServiceURL配置增加IconServiceURL、UILoginURL等
6
+ - v0.5.9 重构用户模型和登录验证,对接用户权限管理系统;增加XXTEA加密算法;增加http network error错误捕捉
7
+ - v0.5.8 修改 VueWindow 报 fixPosition 错误;重构升级 widget 加载过程;升级依赖基础库版本
8
+ - v0.5.7 修改 init 初始化增加 sysGroup 参数;增加 Global.SystemGroup 字段,Axios Hprose Http 请求头加入 sysgroup 系统分组名;解决 Global 变量的循环引用,增加 SysConfig 的 UI 下的 GrayMode 参数、部分 ServiceURL 下参数,修改一些小 BUG;
9
+ - v0.5.6 修改 init 初始化方法增加 sysID 参数;增加 Global.SystemID 字段,Axios 和 Hprose 的 Http 请求头加入 sysid;
10
+ - v0.5.5 截取捕捉后台返回的有用异常信息,重新抛出;异常警告输出统一模型增加 isExceptionInfo 字段;更新依赖库;
11
+ - v0.5.4 解决 IRole 相关模型类型未导出;LayoutManager.d.ts 输出两遍问题;完善 axios http 请求异常警告输出统一模型,发送 SysEvents.AxiosRequestErrorEvent 系统事件;
12
+ - v0.5.3 撤销的版本
13
+ - v0.5.2 撤销的版本
14
+ - v0.5.1 路由权限过滤只比较 path;修改返回权限结果判断错误问题
15
+ - v0.5.0 增加用户权限管理组;增加 CodeHelper 来辅助生成部分代码的方法;解决大文件下载路径传递、全屏时不传对象报错等问题;引入 axios 对象外部化 axios
16
+ - v0.4.9 解决 Global.User 对象赋值错误导致 0.4.8 无法登录的问题
17
+ - v0.4.8 解决 UserToken 里没有 appkey 信息;刷新 token 时丢失 appkey 信息(弃用该版本)
18
+ - v0.4.7 解决 Hprose 使用 ClientContext 进行公共传参问题,默认 headers 自带 token 值
19
+ - v0.4.6 解决文件分片下载并发请求过多的超时问题;AxiosHelper 增加超时时间参数,请求出错不默认弹框
20
+ - v0.4.5 解决大文件下载的问题(修复 0.4.4 版本问题);增加库依赖资源 public 文件夹
21
+ - v0.4.4 修改单个文件(单片)下载报错问题;(废弃不要使用)
22
+ - v0.4.3 修改组件卸载事件的错误;增加用于大屏的浅灰色窗体样式
23
+ - v0.4.2 重要修改:修改打包方式;支持组件导出;新增布局组件及管理方法;requestFullScreen 不传要素窗体全屏
24
+ - v0.4.1 解决补充遗漏的 BigFileDownload 类;
25
+ - v0.4.0 增加 isTool 的相关函数,修改补充方法,增加导出 IUser;
26
+ - v0.3.9 init 方法需要传入 axios 对象(不能将 axios 打包进去,因为存在错误);
27
+ - v0.3.8 取消 init 方法传入 axios 对象(改为内部自带 Global.Axios);完善 AxiosHelper 工具类;增加大文件分片/断点续传下载类 BigFileDownload;
28
+ - v0.3.7 增加 LockHelper 长时间操作退出登录,增加 SystemConfig.UI.LockTime 可选配置和接口 onLockListener、 unLockListener、getLockState;
29
+ - v0.3.6 H5Tool 增加基于 SparkMD5 的 MD5 计算;解决 TokenHelper 与 Global 循环引用问题;增加模仿 JQuery 的 HTML 元素 Style 类名操作 hasClass、addClass、removeClass、toggleClass;完善 getProxyClient 支持 Map 缓存 HproseProxy 对象
30
+ - v0.3.5 增加大文件切片上传 FileUpload;增加 newGuid 方法;
31
+ 修改 requestPost 使用 FormData 方式提交数据,增加 requestPostBody 使用 JSON 方式提交;
32
+ 移除 UserCookies JS-js-cookie 依赖;
33
+ H5Tool 增加 getFileShortMD5 获取文件 MD5 值,增加 getObjectURL 获取 File 对象的路径;
34
+ - v0.3.4 增加统一用户登录和 Token 支持;解决类循环引用问题;增加系统配置参数为具体接口
35
+ - v0.3.3 解决 支持 Hprose 旧版本不支持 useServiceAsync 的问题
36
+ - v0.3.2 解决 0.3.1 版本更新错误(导致 HproseClient 无法实例化的问题)
37
+ - v0.3.1 修改系统 DefaultProxyClient 初始化弹框报错问题(DefaultHproseAPI 配置项可为空或不设置);增加 getProxyClient initDefaultProxyClient 全局方法。
38
+ - v0.3.0 修改 UserCookies 支持自定义 KEY;修改 H5Tool 增强全屏操作功能方法;升级依赖的基础库
39
+ - v0.2.9 删除 uuid NPM 包,增加 uuid 工具类,解决类型问题
40
+ - v0.2.8 删除对 axios 的依赖(因 axios 使用了 process 对象,vue 中报错)
41
+ - v0.2.7 增加 VUE WINDOW,FileDownload 等,打包入 axios(出现问题)
42
+ - v0.2.6 新建前端 xframelib,支持 VUE 组件打包基于 ESbuild
43
+ - v0.2.5 减小发布包大小,外部依赖 hprose
44
+ - v0.2.4 正式应用于项目中,提供.d.ts 声明文件。
45
+
46
+ ## What Works:
47
+
48
+ - HproseClient 服务调用封装
49
+ - 消息事件总线
50
+ - Global 全局对象
51
+ - Message 提示信息
52
+ - SplitSpanes 封装
53
+ - collapsepanel 封装
54
+ - vuewindow 封装
55
+ - 增加 utils 里的 Color、FileDownload、StorageHelper
56
+
57
+ ## Installation
58
+
59
+ `yarn add xframelib`
60
+
61
+ or
62
+
63
+ `npm i xframelib`
64
+
65
+ ## Usage
66
+
67
+ main.ts 文件
68
+ In Typescript:
69
+
70
+ ```js
71
+ import { createApp } from 'vue';
72
+ import App from './App.vue';
73
+ //模板添加的
74
+ import { setupRouter } from './router/index';
75
+ import { init } from 'xframelib';
76
+ import 'xframelib/dist/index.css';
77
+ import { message } from 'ant-design-vue';
78
+ import 'ant-design-vue/es/message/style/index.css';
79
+ import 'ant-design-vue/es/modal/style/index.css';
80
+ import { setupI18n } from '@/locales/setupI18n';
81
+ //dev阶段打开,build注销
82
+ import 'ant-design-vue/dist/antd.css';
83
+ import { getSystemPKG, getSystemID } from '@/utils/sysTool';
84
+ import { createPinia } from 'pinia';
85
+ message.config({
86
+ top: `100px`,
87
+ duration: 1,
88
+ maxCount: 3
89
+ });
90
+ //绑定消息和初始化xframe
91
+ //系统ID,唯一标识
92
+ const sysID = getSystemID();
93
+ //分组名,工程名
94
+ const sysGroup = getSystemPKG().name;
95
+ //初始化
96
+ init(message, sysID, sysGroup);
97
+ // 创建pinia 实例
98
+ const pinia = createPinia();
99
+ const app = createApp(App);
100
+ // 挂载到 Vue 根实例上
101
+ app.use(pinia);
102
+ //注册全局常用的ant-design-vue组件
103
+ if (import.meta.env.DEV) {
104
+ import('ant-design-vue/dist/antd.js').then(it => {
105
+ app.use(it.default);
106
+ });
107
+ }
108
+
109
+ setupI18n(app).then(() => {
110
+ setupRouter(app);
111
+ app.mount('#app');
112
+ });
113
+ ```
114
+
115
+ ### Working with hprose
116
+
117
+ 暂无
@@ -1,4 +1,4 @@
1
- import { ITokenInfo, IDoubleToken, ISystemUser } from '../model/Token';
1
+ import { ITokenInfo, IDoubleToken } from '../model/IUserModel';
2
2
  /**
3
3
  * 刷新Token
4
4
  */
@@ -13,8 +13,3 @@ export declare function checkDoRefreshToken(userToken: ITokenInfo): void;
13
13
  * @param userToken
14
14
  */
15
15
  export declare function setLocalToken(userToken: IDoubleToken): void;
16
- /**
17
- * 设置当前用户
18
- * @param userInfo
19
- */
20
- export declare function setUser(userInfo: ISystemUser): void;
@@ -1,8 +1,7 @@
1
- interface IUserInfo {
1
+ interface IChangPwdInfo {
2
2
  /**
3
3
  * 用户名
4
4
  */
5
- username: string;
6
5
  oldpwd: string;
7
6
  newpwd: string;
8
7
  }
@@ -25,13 +24,18 @@ export declare function login(data: IUser): Promise<any>;
25
24
  * @param data 用户对象
26
25
  * @returns
27
26
  */
28
- export declare function checkLogin(data: IUser): Promise<any>;
29
27
  /**
30
- * 修改密码
28
+ * 修改自己的密码
31
29
  * @param data 用户数据
32
30
  * @returns
33
31
  */
34
- export declare function changePWD(data: IUserInfo): Promise<any>;
32
+ export declare function changeMyPWD(data: IChangPwdInfo): Promise<any>;
33
+ /**
34
+ * 获取加密后的密码
35
+ * @param data
36
+ * @returns
37
+ */
38
+ export declare function getEncryptPWD(data: string): string;
35
39
  /**
36
40
  * 退出登录
37
41
  */
@@ -13,13 +13,19 @@ export interface ILayoutContainer {
13
13
  leftContainer?: HTMLElement;
14
14
  rightContainer?: HTMLElement;
15
15
  }
16
- declare class LayoutManager {
16
+ export declare class LayoutManager {
17
17
  private layoutState;
18
- private widgetCofig;
19
18
  private layoutMap;
20
19
  private preConditionMap;
21
20
  private widgetsLoadedSet;
22
- constructor(layoutState: ILayoutContainer, widgetCofig: Array<IWidgetConfig>);
21
+ private widgetConfig;
22
+ private _LayoutID;
23
+ constructor(layoutState: ILayoutContainer, allWidgetConfig: Array<IWidgetConfig>, layoutID?: string);
24
+ /**
25
+ * 所属的Layout布局对象ID
26
+ * @returns
27
+ */
28
+ getLayoutID(): string | undefined;
23
29
  /**
24
30
  * 获得widget配置参数
25
31
  * @returns
@@ -33,7 +39,7 @@ declare class LayoutManager {
33
39
  * 加载组件和子组件
34
40
  * @param widgetItem 组件对象
35
41
  */
36
- loadWidget(widgetItem: IWidgetConfig | string): void;
42
+ loadWidget(widgetItem: IWidgetConfig | string): Promise<void>;
37
43
  private loadOtherDependenceWidgets;
38
44
  private _loadWidget;
39
45
  /**
@@ -104,4 +110,3 @@ declare class LayoutManager {
104
110
  getContainerComponents(enumContainer: LayoutContainerEnum): Ref<Map<string, Object>>;
105
111
  addContainerComponent(enumContainer: LayoutContainerEnum, component: any): void;
106
112
  }
107
- export default LayoutManager;
@@ -1,3 +1,3 @@
1
1
  import LayoutContainer from './layout.vue';
2
- import LayoutManager from './LayoutManager';
2
+ import { LayoutManager } from './LayoutManager';
3
3
  export { LayoutContainer, LayoutManager };
@@ -6,16 +6,20 @@ declare const _default: import("vue").DefineComponent<{
6
6
  required: true;
7
7
  default: () => never[];
8
8
  };
9
+ layoutID: {
10
+ type: StringConstructor;
11
+ default: undefined;
12
+ };
9
13
  layoutStyle: {
10
14
  type: ObjectConstructor;
11
15
  };
12
16
  }, {
13
- topContainerComponents: import("vue").Ref<Map<string, Object>> | undefined;
14
- centerbackComponents: import("vue").Ref<Map<string, Object>> | undefined;
15
- centerfrontComponents: import("vue").Ref<Map<string, Object>> | undefined;
16
- leftContainerComponents: import("vue").Ref<Map<string, Object>> | undefined;
17
- rightContainerComponents: import("vue").Ref<Map<string, Object>> | undefined;
18
- bottomContainerComponents: import("vue").Ref<Map<string, Object>> | undefined;
17
+ topContainerComponents: import("vue").Ref<Map<string, Object>>;
18
+ centerbackComponents: import("vue").Ref<Map<string, Object>>;
19
+ centerfrontComponents: import("vue").Ref<Map<string, Object>>;
20
+ leftContainerComponents: import("vue").Ref<Map<string, Object>>;
21
+ rightContainerComponents: import("vue").Ref<Map<string, Object>>;
22
+ bottomContainerComponents: import("vue").Ref<Map<string, Object>>;
19
23
  containerStyle: import("vue").ComputedRef<Record<string, any> | undefined>;
20
24
  topContainer?: import("vue").Ref<HTMLElement | undefined> | undefined;
21
25
  centerBackContainer?: import("vue").Ref<HTMLElement | undefined> | undefined;
@@ -24,16 +28,23 @@ declare const _default: import("vue").DefineComponent<{
24
28
  bottomContainer?: import("vue").Ref<HTMLElement | undefined> | undefined;
25
29
  leftContainer?: import("vue").Ref<HTMLElement | undefined> | undefined;
26
30
  rightContainer?: import("vue").Ref<HTMLElement | undefined> | undefined;
27
- }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
31
+ }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "containerLoaded"[], "containerLoaded", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
28
32
  widgetConfig: {
29
33
  type: PropType<IWidgetConfig[]>;
30
34
  required: true;
31
35
  default: () => never[];
32
36
  };
37
+ layoutID: {
38
+ type: StringConstructor;
39
+ default: undefined;
40
+ };
33
41
  layoutStyle: {
34
42
  type: ObjectConstructor;
35
43
  };
36
- }>>, {
44
+ }>> & {
45
+ onContainerLoaded?: ((...args: any[]) => any) | undefined;
46
+ }, {
37
47
  widgetConfig: IWidgetConfig[];
48
+ layoutID: string;
38
49
  }>;
39
50
  export default _default;
@@ -100,6 +100,7 @@ declare const _default: import("vue").DefineComponent<{
100
100
  styleTitlebar: import("vue").ComputedRef<any>;
101
101
  styleContent: import("vue").ComputedRef<any>;
102
102
  closeButtonClick: () => void;
103
+ fixPosition: () => void;
103
104
  } | undefined, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
104
105
  windowStyle: {
105
106
  type: ObjectConstructor;
@@ -2,14 +2,9 @@ import MsgHelper from './MsgHelper';
2
2
  import { Emitter } from '../mitt';
3
3
  import ProxyClient from '../hprose/ProxyClient';
4
4
  import { ISystemConfig } from '../model/Config';
5
- import { ISystemUser } from '../model/Token';
6
5
  import { LayoutManager } from '../controls/layoutcontainer';
7
6
  import { AxiosStatic } from 'axios';
8
7
  export interface InnerObject {
9
- /**
10
- * 当前登录用户对象
11
- */
12
- User?: ISystemUser;
13
8
  /**
14
9
  * axios对象
15
10
  */