xframelib 0.7.0 → 0.7.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.
@@ -9,6 +9,7 @@ export interface IRoleRoute {
9
9
  index?: number;
10
10
  children?: IRoleRoute[];
11
11
  selected?: boolean;
12
+ isadmin?: boolean;
12
13
  }
13
14
  /**
14
15
  * Widget菜单控制
@@ -20,11 +21,16 @@ export interface IRoleWidgetMenu {
20
21
  type?: number;
21
22
  children?: Array<IRoleWidgetMenu>;
22
23
  selected?: boolean;
24
+ isadmin?: boolean;
23
25
  }
24
26
  /**
25
27
  * Widget组件权限控制
26
28
  */
27
29
  export interface IRoleWidget {
30
+ /**
31
+ * Layout标识名,以支撑多个布局使用
32
+ */
33
+ layoutID?: string;
28
34
  /**
29
35
  * 唯一ID,与组件名一致
30
36
  */
@@ -54,6 +60,7 @@ export interface IRoleWidget {
54
60
  */
55
61
  group?: string;
56
62
  selected?: boolean;
63
+ isadmin?: boolean;
57
64
  }
58
65
  /**
59
66
  * 功能点列表,用于功能点上报和权限过滤
@@ -63,6 +70,8 @@ export interface IRoleFunction {
63
70
  name: string;
64
71
  children?: Array<IRoleFunction>;
65
72
  selected?: boolean;
73
+ isback?: boolean;
74
+ isadmin?: boolean;
66
75
  }
67
76
  /**
68
77
  * 系统权限路由菜单-总对象
@@ -0,0 +1,8 @@
1
+ import * as SignalR from "@microsoft/signalr";
2
+ /**
3
+ * 获得SignalR连接对象
4
+ * (多个连接,自己缓存连接对象)
5
+ * @param signalrURL SignalR连接地址
6
+ * @returns 新的SignalR连接对象
7
+ */
8
+ export declare function GetSignalRClient(signalrURL?: string): SignalR.HubConnection;
@@ -0,0 +1,149 @@
1
+ /**
2
+ * 2020.11.29 lyt 整理
3
+ * 工具类集合,适用于平时开发
4
+ * 新增多行注释信息,鼠标放到方法名即可查看
5
+ */
6
+ /**
7
+ * 验证百分比(不可以小数)
8
+ * @param val 当前值字符串
9
+ * @returns 返回处理后的字符串
10
+ */
11
+ export declare function verifyNumberPercentage(val: string): string;
12
+ /**
13
+ * 验证百分比(可以小数)
14
+ * @param val 当前值字符串
15
+ * @returns 返回处理后的字符串
16
+ */
17
+ export declare function verifyNumberPercentageFloat(val: string): string;
18
+ /**
19
+ * 小数或整数(不可以负数)
20
+ * @param val 当前值字符串
21
+ * @returns 返回处理后的字符串
22
+ */
23
+ export declare function verifyNumberIntegerAndFloat(val: string): string;
24
+ /**
25
+ * 正整数验证
26
+ * @param val 当前值字符串
27
+ * @returns 返回处理后的字符串
28
+ */
29
+ export declare function verifiyNumberInteger(val: string): string;
30
+ /**
31
+ * 去掉中文及空格
32
+ * @param val 当前值字符串
33
+ * @returns 返回处理后的字符串
34
+ */
35
+ export declare function verifyCnAndSpace(val: string): string;
36
+ /**
37
+ * 去掉英文及空格
38
+ * @param val 当前值字符串
39
+ * @returns 返回处理后的字符串
40
+ */
41
+ export declare function verifyEnAndSpace(val: string): string;
42
+ /**
43
+ * 禁止输入空格
44
+ * @param val 当前值字符串
45
+ * @returns 返回处理后的字符串
46
+ */
47
+ export declare function verifyAndSpace(val: string): string;
48
+ /**
49
+ * 金额用 `,` 区分开
50
+ * @param val 当前值字符串
51
+ * @returns 返回处理后的字符串
52
+ */
53
+ export declare function verifyNumberComma(val: string): any;
54
+ /**
55
+ * 匹配文字变色(搜索时)
56
+ * @param val 当前值字符串
57
+ * @param text 要处理的字符串值
58
+ * @param color 搜索到时字体高亮颜色
59
+ * @returns 返回处理后的字符串
60
+ */
61
+ export declare function verifyTextColor(val: string, text?: string, color?: string): string;
62
+ /**
63
+ * 数字转中文大写
64
+ * @param val 当前值字符串
65
+ * @param unit 默认:仟佰拾亿仟佰拾万仟佰拾元角分
66
+ * @returns 返回处理后的字符串
67
+ */
68
+ export declare function verifyNumberCnUppercase(val: any, unit?: string, v?: string): string;
69
+ /**
70
+ * 手机号码
71
+ * @param val 当前值字符串
72
+ * @returns 返回 true: 手机号码正确
73
+ */
74
+ export declare function verifyPhone(val: string): boolean;
75
+ /**
76
+ * 国内电话号码
77
+ * @param val 当前值字符串
78
+ * @returns 返回 true: 国内电话号码正确
79
+ */
80
+ export declare function verifyTelPhone(val: string): boolean;
81
+ /**
82
+ * 登录账号 (字母开头,允许5-16字节,允许字母数字下划线)
83
+ * @param val 当前值字符串
84
+ * @returns 返回 true: 登录账号正确
85
+ */
86
+ export declare function verifyAccount(val: string): boolean;
87
+ /**
88
+ * 密码 (以字母开头,长度在6~16之间,只能包含字母、数字和下划线)
89
+ * @param val 当前值字符串
90
+ * @returns 返回 true: 密码正确
91
+ */
92
+ export declare function verifyPassword(val: string): boolean;
93
+ /**
94
+ * 强密码 (字母+数字+特殊字符,长度在6-16之间)
95
+ * @param val 当前值字符串
96
+ * @returns 返回 true: 强密码正确
97
+ */
98
+ export declare function verifyPasswordPowerful(val: string): boolean;
99
+ /**
100
+ * 密码强度
101
+ * @param val 当前值字符串
102
+ * @description 弱:纯数字,纯字母,纯特殊字符
103
+ * @description 中:字母+数字,字母+特殊字符,数字+特殊字符
104
+ * @description 强:字母+数字+特殊字符
105
+ * @returns 返回处理后的字符串:弱、中、强
106
+ */
107
+ export declare function verifyPasswordStrength(val: string): string;
108
+ /**
109
+ * IP地址
110
+ * @param val 当前值字符串
111
+ * @returns 返回 true: IP地址正确
112
+ */
113
+ export declare function verifyIPAddress(val: string): boolean;
114
+ /**
115
+ * 邮箱
116
+ * @param val 当前值字符串
117
+ * @returns 返回 true: 邮箱正确
118
+ */
119
+ export declare function verifyEmail(val: string): boolean;
120
+ /**
121
+ * 身份证
122
+ * @param val 当前值字符串
123
+ * @returns 返回 true: 身份证正确
124
+ */
125
+ export declare function verifyIdCard(val: string): boolean;
126
+ /**
127
+ * 姓名
128
+ * @param val 当前值字符串
129
+ * @returns 返回 true: 姓名正确
130
+ */
131
+ export declare function verifyFullName(val: string): boolean;
132
+ /**
133
+ * 邮政编码
134
+ * @param val 当前值字符串
135
+ * @returns 返回 true: 邮政编码正确
136
+ */
137
+ export declare function verifyPostalCode(val: string): boolean;
138
+ /**
139
+ * url 处理
140
+ * @param val 当前值字符串
141
+ * @returns 返回 true: url 正确
142
+ */
143
+ export declare function verifyUrl(val: string): boolean;
144
+ /**
145
+ * 车牌号
146
+ * @param val 当前值字符串
147
+ * @returns 返回 true:车牌号正确
148
+ */
149
+ export declare function verifyCarNum(val: string): boolean;
@@ -0,0 +1,10 @@
1
+ /**
2
+ * 页面添加水印效果
3
+ * @method set 设置水印
4
+ * @method del 删除水印
5
+ */
6
+ declare const watermark: {
7
+ set: (str: string) => void;
8
+ del: () => void;
9
+ };
10
+ export default watermark;
@@ -14,5 +14,8 @@ export * from './BigFileDownload';
14
14
  export * from './IsTool';
15
15
  export * from './URLTool';
16
16
  export * from './CodeHelper';
17
+ export * from './ValidateTool';
17
18
  import XXTEA from './XXTEA';
18
- export { XXTEA, H5Tool, StringUtils, StorageHelper as Storage, storage, uuid, newGuid };
19
+ import WaterMark from './WaterMark';
20
+ import { GetSignalRClient } from './SignalRClient';
21
+ export { GetSignalRClient, WaterMark, XXTEA, H5Tool, StringUtils, StorageHelper as Storage, storage, uuid, newGuid };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "xframelib",
3
- "version": "0.7.0",
3
+ "version": "0.7.3",
4
4
  "description": "积累的前端开发基础库",
5
5
  "main": "dist/index.js",
6
6
  "common": "dist/index.cjs",
@@ -26,36 +26,37 @@
26
26
  "@hprose/io": "^3.0.10",
27
27
  "@hprose/rpc-core": "^3.0.10",
28
28
  "@hprose/rpc-html5": "^3.0.10",
29
- "axios": "^1.2.1",
29
+ "@microsoft/signalr": "^7.0.3",
30
+ "axios": "^1.3.4",
30
31
  "localforage": "^1.10.0",
31
32
  "loglevel": "^1.8.1",
32
- "qs": "^6.11.0",
33
+ "qs": "^6.11.1",
33
34
  "spark-md5": "^3.0.2",
34
35
  "streamsaver": "^2.0.6",
35
36
  "xhr": "^2.6.0"
36
37
  },
37
38
  "devDependencies": {
38
- "@rollup/plugin-alias": "^4.0.2",
39
- "@rollup/plugin-commonjs": "^23.0.4",
40
- "@rollup/plugin-json": "^5.0.2",
41
- "@rollup/plugin-node-resolve": "^14.1.0",
42
- "@rollup/plugin-typescript": "^10.0.1",
39
+ "@rollup/plugin-alias": "^4.0.3",
40
+ "@rollup/plugin-commonjs": "^24.0.1",
41
+ "@rollup/plugin-json": "^6.0.0",
42
+ "@rollup/plugin-node-resolve": "^15.0.1",
43
+ "@rollup/plugin-typescript": "^11.0.0",
43
44
  "@types/streamsaver": "^2.0.1",
44
45
  "@vitejs/plugin-vue": "^4.0.0",
45
- "@vue/compiler-sfc": "^3.2.45",
46
- "esbuild": "^0.16.4",
47
- "rimraf": "^3.0.2",
46
+ "@vue/compiler-sfc": "^3.2.47",
47
+ "esbuild": "^0.17.11",
48
+ "rimraf": "^4.4.0",
48
49
  "rollup-plugin-copy": "^3.4.0",
49
50
  "rollup-plugin-esbuild": "^5.0.0",
50
51
  "rollup-plugin-scss": "^3.0.0",
51
52
  "rollup-plugin-terser": "^7.0.2",
52
53
  "rollup-plugin-typescript2": "^0.34.1",
53
54
  "rollup-plugin-vue": "^6.0.0",
54
- "sass": "^1.56.2",
55
- "typescript": "^4.9.4",
56
- "vite": "^4.0.1",
57
- "vue": "^3.2.45",
55
+ "sass": "^1.58.3",
56
+ "typescript": "^4.9.5",
57
+ "vite": "^4.1.4",
58
+ "vue": "^3.2.47",
58
59
  "vue-router": "^4.1.6",
59
- "vue-tsc": "^1.0.13"
60
+ "vue-tsc": "^1.2.0"
60
61
  }
61
62
  }
@@ -1,305 +0,0 @@
1
- .vcp__header {
2
- display: flex;
3
- padding: 12px;
4
- pointer-events: none;
5
- }
6
- .vcp--expandable .vcp__header {
7
- pointer-events: auto;
8
- cursor: pointer;
9
- }
10
- .vcp__header-title {
11
- display: flex;
12
- align-items: center;
13
- flex: 1;
14
- }
15
- .vcp__header-icon {
16
- display: flex;
17
- align-items: center;
18
- transition: transform 0.3s cubic-bezier(0.5, 0.25, 0, 1);
19
- }
20
- .vcp--expanded .vcp__header-icon {
21
- transform-origin: center;
22
- transform: rotate(180deg);
23
- }
24
- .vcp__header-icon > span {
25
- display: flex;
26
- height: 24px;
27
- width: 24px;
28
- }
29
- .vcp__header-icon ::v-deep(svg) {
30
- height: 100%;
31
- width: 100%;
32
- }
33
- .vcp__body {
34
- overflow: hidden;
35
- transition: all 0.3s cubic-bezier(0.5, 0.25, 0, 1);
36
- }
37
- .vcp__body-content {
38
- padding: 12px;
39
- }
40
-
41
- .slide-enter-from,
42
- .slide-leave-to {
43
- opacity: 0.25;
44
- }
45
-
46
- .splitpanes {
47
- display: flex;
48
- width: 100%;
49
- height: 100%;
50
- }
51
- .splitpanes--vertical {
52
- flex-direction: row;
53
- }
54
- .splitpanes--horizontal {
55
- flex-direction: column;
56
- }
57
- .splitpanes--dragging * {
58
- user-select: none;
59
- }
60
- .splitpanes__pane {
61
- width: 100%;
62
- height: 100%;
63
- overflow: hidden;
64
- }
65
- .splitpanes--vertical .splitpanes__pane {
66
- transition: width 0.2s ease-out;
67
- }
68
- .splitpanes--horizontal .splitpanes__pane {
69
- transition: height 0.2s ease-out;
70
- }
71
- .splitpanes--dragging .splitpanes__pane {
72
- transition: none;
73
- }
74
- .splitpanes__splitter {
75
- touch-action: none;
76
- }
77
- .splitpanes--vertical > .splitpanes__splitter {
78
- min-width: 1px;
79
- cursor: col-resize;
80
- }
81
- .splitpanes--horizontal > .splitpanes__splitter {
82
- min-height: 1px;
83
- cursor: row-resize;
84
- }
85
-
86
- .splitpanes.default-theme .splitpanes__pane {
87
- background-color: #f2f2f2;
88
- }
89
- .splitpanes.default-theme .splitpanes__splitter {
90
- background-color: #fff;
91
- box-sizing: border-box;
92
- position: relative;
93
- flex-shrink: 0;
94
- }
95
- .splitpanes.default-theme .splitpanes__splitter:before, .splitpanes.default-theme .splitpanes__splitter:after {
96
- content: "";
97
- position: absolute;
98
- top: 50%;
99
- left: 50%;
100
- background-color: rgba(0, 0, 0, 0.15);
101
- transition: background-color 0.3s;
102
- }
103
- .splitpanes.default-theme .splitpanes__splitter:hover:before, .splitpanes.default-theme .splitpanes__splitter:hover:after {
104
- background-color: rgba(0, 0, 0, 0.25);
105
- }
106
- .splitpanes.default-theme .splitpanes__splitter:first-child {
107
- cursor: auto;
108
- }
109
-
110
- .default-theme.splitpanes .splitpanes .splitpanes__splitter {
111
- z-index: 1;
112
- }
113
- .default-theme.splitpanes--vertical > .splitpanes__splitter,
114
- .default-theme .splitpanes--vertical > .splitpanes__splitter {
115
- width: 7px;
116
- border-left: 1px solid #eee;
117
- margin-left: -1px;
118
- }
119
- .default-theme.splitpanes--vertical > .splitpanes__splitter:before, .default-theme.splitpanes--vertical > .splitpanes__splitter:after,
120
- .default-theme .splitpanes--vertical > .splitpanes__splitter:before,
121
- .default-theme .splitpanes--vertical > .splitpanes__splitter:after {
122
- transform: translateY(-50%);
123
- width: 1px;
124
- height: 30px;
125
- }
126
- .default-theme.splitpanes--vertical > .splitpanes__splitter:before,
127
- .default-theme .splitpanes--vertical > .splitpanes__splitter:before {
128
- margin-left: -2px;
129
- }
130
- .default-theme.splitpanes--vertical > .splitpanes__splitter:after,
131
- .default-theme .splitpanes--vertical > .splitpanes__splitter:after {
132
- margin-left: 1px;
133
- }
134
- .default-theme.splitpanes--horizontal > .splitpanes__splitter,
135
- .default-theme .splitpanes--horizontal > .splitpanes__splitter {
136
- height: 7px;
137
- border-top: 1px solid #eee;
138
- margin-top: -1px;
139
- }
140
- .default-theme.splitpanes--horizontal > .splitpanes__splitter:before, .default-theme.splitpanes--horizontal > .splitpanes__splitter:after,
141
- .default-theme .splitpanes--horizontal > .splitpanes__splitter:before,
142
- .default-theme .splitpanes--horizontal > .splitpanes__splitter:after {
143
- transform: translateX(-50%);
144
- width: 30px;
145
- height: 1px;
146
- }
147
- .default-theme.splitpanes--horizontal > .splitpanes__splitter:before,
148
- .default-theme .splitpanes--horizontal > .splitpanes__splitter:before {
149
- margin-top: -2px;
150
- }
151
- .default-theme.splitpanes--horizontal > .splitpanes__splitter:after,
152
- .default-theme .splitpanes--horizontal > .splitpanes__splitter:after {
153
- margin-top: 1px;
154
- }
155
-
156
- .vcpg {
157
- border: 1px solid var(--border-color);
158
- border-radius: 4px;
159
- width: 100%;
160
- }
161
- .vcpg ::v-deep(.vcp) * {
162
- box-sizing: border-box;
163
- }
164
- .vcpg ::v-deep(.vcp) .vcp__header {
165
- background-color: var(--bg-color-header);
166
- height: 30px;
167
- border-bottom: 2px solid #c6bebd;
168
- transition: background-color 0.3s ease;
169
- }
170
- .vcpg ::v-deep(.vcp) .vcp__header .vcp__header:hover {
171
- background-color: var(--bg-color-header-hover);
172
- }
173
- .vcpg ::v-deep(.vcp) .vcp__header .vcp__header:active {
174
- background-color: var(--bg-color-header-active);
175
- }
176
- .vcpg ::v-deep(.vcp) .vcp:not(:first-of-type) .vcp__header {
177
- border-top: 2px solid var(--border-color);
178
- }
179
- .vcpg ::v-deep(.vcp) .vcp__header-title {
180
- font-weight: 500;
181
- }
182
- .vcpg ::v-deep(.vcp) .vcp__body {
183
- border-top: 1px solid var(--border-color);
184
- background-color: var(--bg-color-body);
185
- }
186
-
187
- .window {
188
- display: flex;
189
- flex-flow: column;
190
- position: absolute;
191
- border-radius: 4pt 4pt 0 0;
192
- }
193
-
194
- .titlebar {
195
- display: flex;
196
- flex-flow: row nowrap;
197
- border-radius: 4pt 4pt 0 0;
198
- font-family: sans-serif;
199
- padding: 0.5em;
200
- flex: 0 0 auto;
201
- }
202
-
203
- .title {
204
- flex-grow: 1;
205
- white-space: nowrap;
206
- overflow: hidden;
207
- text-overflow: ellipsis;
208
- }
209
-
210
- .content {
211
- flex-grow: 1;
212
- padding: 0.5em;
213
- }
214
-
215
- .draggable-handle {
216
- cursor: move;
217
- }
218
-
219
- .fade-enter,
220
- .fade-leave-to {
221
- opacity: 0;
222
- transform: scale(0.9);
223
- }
224
-
225
- .fade-enter-active,
226
- .fade-leave-active {
227
- transition: 0.2s;
228
- }
229
-
230
- .layoutContainer {
231
- width: 100%;
232
- height: 100%;
233
- padding: 0;
234
- margin: 0;
235
- --layout-top-height: 70px;
236
- --layout-left-width: 200px;
237
- --layout-right-width: 200px;
238
- --layout-bottom-height: 60px;
239
- --layout-centerback-backcolor: #020202;
240
- --layout-top-zindex: 100;
241
- --layout-bottom-zindex: 100;
242
- --layout-center-zindex: 90;
243
- --layout-left-zindex: 100;
244
- --layout-right-zindex: 100;
245
- }
246
-
247
- .topContainer {
248
- position: absolute;
249
- top: 0px;
250
- left: 0px;
251
- width: 100%;
252
- height: var(--layout-top-height);
253
- z-index: var(--layout-top-zindex);
254
- pointer-events: none;
255
- }
256
-
257
- .bottomContainer {
258
- position: absolute;
259
- bottom: 0px;
260
- left: 0px;
261
- width: 100%;
262
- height: var(--layout-bottom-height);
263
- z-index: var(--layout-bottom-zindex);
264
- pointer-events: none;
265
- }
266
-
267
- .leftContainer {
268
- position: absolute;
269
- top: 0px;
270
- left: 0px;
271
- width: var(--layout-left-width);
272
- z-index: var(--layout-left-zindex);
273
- height: 100%;
274
- pointer-events: none;
275
- }
276
-
277
- .rightContainer {
278
- position: absolute;
279
- top: 0px;
280
- right: 0px;
281
- width: var(--layout-right-width);
282
- z-index: var(--layout-right-zindex);
283
- height: 100%;
284
- pointer-events: none;
285
- }
286
-
287
- .centerdiv {
288
- position: absolute;
289
- top: 0px;
290
- left: 0px;
291
- bottom: 0px;
292
- width: 100%;
293
- background-color: transparent;
294
- overflow: hidden;
295
- pointer-events: none;
296
- }
297
-
298
- .btn {
299
- background-color: transparent;
300
- border: none;
301
- font-size: medium;
302
- margin: 0;
303
- padding: 0 0.25em;
304
- border-radius: 4pt;
305
- }