byt-ui 0.0.5 → 0.0.7
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/lib/byt-ui.common.js +2071 -18
- package/lib/byt-ui.umd.js +2071 -18
- package/lib/byt-ui.umd.min.js +3 -3
- package/package.json +2 -1
- package/packages/common/index.js +12 -3
- package/packages/common/modules/store.js +125 -0
- package/packages/common/modules/validate.js +286 -0
- package/packages/common/modules/website.js +13 -0
- package/packages/index.js +11 -6
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "byt-ui",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.7",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "byt组件库",
|
|
6
6
|
"author": {
|
|
@@ -16,6 +16,7 @@
|
|
|
16
16
|
},
|
|
17
17
|
"main": "lib/byt-ui.umd.min.js",
|
|
18
18
|
"dependencies": {
|
|
19
|
+
"byt-ui": "^0.0.5",
|
|
19
20
|
"core-js": "^3.8.3",
|
|
20
21
|
"element-ui": "^2.15.10",
|
|
21
22
|
"moment": "^2.29.4",
|
package/packages/common/index.js
CHANGED
|
@@ -2,9 +2,18 @@
|
|
|
2
2
|
* @Description:
|
|
3
3
|
* @Author: 王国火
|
|
4
4
|
* @Date: 2022-09-19 10:17:14
|
|
5
|
-
* @LastEditTime: 2022-
|
|
5
|
+
* @LastEditTime: 2022-10-08 10:50:57
|
|
6
6
|
* @LastEditors: 王国火
|
|
7
7
|
*/
|
|
8
|
-
|
|
8
|
+
// 动态引入
|
|
9
|
+
let conmmon = {};
|
|
10
|
+
const requireContext = require.context('./modules', true, /.*\.js/)
|
|
11
|
+
requireContext.keys().map(key => {
|
|
12
|
+
const reg=/\w+/
|
|
13
|
+
const k=key.match(reg)[0]
|
|
14
|
+
conmmon[k]=requireContext(key).default||requireContext(key)
|
|
15
|
+
})
|
|
9
16
|
|
|
10
|
-
|
|
17
|
+
console.log(conmmon)
|
|
18
|
+
|
|
19
|
+
export default conmmon
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
import { validatenull } from './validate'
|
|
2
|
+
import website from './website'
|
|
3
|
+
//存储前缀 避免与同域的其它项目冲突
|
|
4
|
+
const keyName = website.key
|
|
5
|
+
/**
|
|
6
|
+
* 存储localStorage
|
|
7
|
+
*/
|
|
8
|
+
export const setStore = (params = {}) => {
|
|
9
|
+
let {
|
|
10
|
+
name
|
|
11
|
+
} = params
|
|
12
|
+
const {
|
|
13
|
+
content,
|
|
14
|
+
type
|
|
15
|
+
} = params
|
|
16
|
+
name = keyName + name
|
|
17
|
+
const obj = {
|
|
18
|
+
dataType: typeof (content),
|
|
19
|
+
content: content,
|
|
20
|
+
type: type,
|
|
21
|
+
datetime: new Date().getTime()
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
if (type) {
|
|
25
|
+
window.sessionStorage.setItem(name, JSON.stringify(obj))
|
|
26
|
+
} else {
|
|
27
|
+
window.localStorage.setItem(name, JSON.stringify(obj))
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* 获取localStorage
|
|
32
|
+
*/
|
|
33
|
+
|
|
34
|
+
export const getStore = (params = {}) => {
|
|
35
|
+
let {
|
|
36
|
+
name
|
|
37
|
+
} = params
|
|
38
|
+
const {
|
|
39
|
+
debug
|
|
40
|
+
} = params
|
|
41
|
+
name = keyName + name
|
|
42
|
+
let obj = {}
|
|
43
|
+
let content
|
|
44
|
+
obj = window.sessionStorage.getItem(name)
|
|
45
|
+
if (validatenull(obj)) obj = window.localStorage.getItem(name)
|
|
46
|
+
if (validatenull(obj)) return
|
|
47
|
+
try {
|
|
48
|
+
obj = JSON.parse(obj)
|
|
49
|
+
} catch (e) {
|
|
50
|
+
return obj
|
|
51
|
+
}
|
|
52
|
+
if (debug) {
|
|
53
|
+
return obj
|
|
54
|
+
}
|
|
55
|
+
if (obj.dataType === 'string') {
|
|
56
|
+
content = obj.content
|
|
57
|
+
} else if (obj.dataType === 'number') {
|
|
58
|
+
content = Number(obj.content)
|
|
59
|
+
} else if (obj.dataType === 'boolean') {
|
|
60
|
+
content = JSON.parse(obj.content)
|
|
61
|
+
} else if (obj.dataType === 'object') {
|
|
62
|
+
content = obj.content
|
|
63
|
+
}
|
|
64
|
+
return content
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* 删除localStorage
|
|
68
|
+
*/
|
|
69
|
+
export const removeStore = (params = {}) => {
|
|
70
|
+
let {
|
|
71
|
+
name
|
|
72
|
+
} = params
|
|
73
|
+
const {
|
|
74
|
+
type
|
|
75
|
+
} = params
|
|
76
|
+
name = keyName + name
|
|
77
|
+
if (type) {
|
|
78
|
+
window.sessionStorage.removeItem(name)
|
|
79
|
+
} else {
|
|
80
|
+
window.localStorage.removeItem(name)
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
/**
|
|
85
|
+
* 获取全部localStorage
|
|
86
|
+
*/
|
|
87
|
+
export const getAllStore = (params = {}) => {
|
|
88
|
+
const list = []
|
|
89
|
+
const {
|
|
90
|
+
type
|
|
91
|
+
} = params
|
|
92
|
+
if (type) {
|
|
93
|
+
for (let i = 0; i <= window.sessionStorage.length; i++) {
|
|
94
|
+
list.push({
|
|
95
|
+
name: window.sessionStorage.key(i),
|
|
96
|
+
content: getStore({
|
|
97
|
+
name: window.sessionStorage.key(i),
|
|
98
|
+
type: 'session'
|
|
99
|
+
})
|
|
100
|
+
})
|
|
101
|
+
}
|
|
102
|
+
} else {
|
|
103
|
+
for (let i = 0; i <= window.localStorage.length; i++) {
|
|
104
|
+
list.push({
|
|
105
|
+
name: window.localStorage.key(i),
|
|
106
|
+
content: getStore({
|
|
107
|
+
name: window.localStorage.key(i)
|
|
108
|
+
})
|
|
109
|
+
})
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
return list
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
/**
|
|
116
|
+
* 清空全部localStorage
|
|
117
|
+
*/
|
|
118
|
+
export const clearStore = (params = {}) => {
|
|
119
|
+
const { type } = params
|
|
120
|
+
if (type) {
|
|
121
|
+
window.sessionStorage.clear()
|
|
122
|
+
} else {
|
|
123
|
+
window.localStorage.clear()
|
|
124
|
+
}
|
|
125
|
+
}
|
|
@@ -0,0 +1,286 @@
|
|
|
1
|
+
export function isExternal(path) {
|
|
2
|
+
return /^(https?:|mailto:|tel:)/.test(path)
|
|
3
|
+
}
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* 邮箱
|
|
7
|
+
* @param {*} s
|
|
8
|
+
*/
|
|
9
|
+
export function isEmail(s) {
|
|
10
|
+
return /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+((.[a-zA-Z0-9_-]{2,3}){1,2})$/.test(s)
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* 手机号码
|
|
15
|
+
* @param {*} s
|
|
16
|
+
*/
|
|
17
|
+
export function isMobile(s) {
|
|
18
|
+
return /^1[0-9]{10}$/.test(s)
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* 电话号码
|
|
23
|
+
* @param {*} s
|
|
24
|
+
*/
|
|
25
|
+
export function isPhone(s) {
|
|
26
|
+
return /^([0-9]{3,4}-)?[0-9]{7,8}$/.test(s)
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* URL地址
|
|
31
|
+
* @param {*} s
|
|
32
|
+
*/
|
|
33
|
+
export function isURL(s) {
|
|
34
|
+
return /^http[s]?:\/\/.*/.test(s)
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
export function isvalidUsername(str) {
|
|
38
|
+
const valid_map = ['admin', 'editor']
|
|
39
|
+
return valid_map.indexOf(str.trim()) >= 0
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
/* 合法uri */
|
|
43
|
+
export function validateURL(textval) {
|
|
44
|
+
const urlregex = /^(https?|ftp):\/\/([a-zA-Z0-9.-]+(:[a-zA-Z0-9.&%$-]+)*@)*((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]?)(\.(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])){3}|([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+\.(com|edu|gov|int|mil|net|org|biz|arpa|info|name|pro|aero|coop|museum|[a-zA-Z]{2}))(:[0-9]+)*(\/($|[a-zA-Z0-9.,?'\\+&%$#=~_-]+))*$/
|
|
45
|
+
return urlregex.test(textval)
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
/* 小写字母 */
|
|
49
|
+
export function validateLowerCase(str) {
|
|
50
|
+
const reg = /^[a-z]+$/
|
|
51
|
+
return reg.test(str)
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
/* 大写字母 */
|
|
55
|
+
export function validateUpperCase(str) {
|
|
56
|
+
const reg = /^[A-Z]+$/
|
|
57
|
+
return reg.test(str)
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
/* 大小写字母 */
|
|
61
|
+
export function validatAlphabets(str) {
|
|
62
|
+
const reg = /^[A-Za-z]+$/
|
|
63
|
+
return reg.test(str)
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
/* 验证pad还是pc */
|
|
67
|
+
export const vaildatePc = function () {
|
|
68
|
+
const userAgentInfo = navigator.userAgent
|
|
69
|
+
const Agents = ['Android', 'iPhone',
|
|
70
|
+
'SymbianOS', 'Windows Phone',
|
|
71
|
+
'iPad', 'iPod'
|
|
72
|
+
]
|
|
73
|
+
let flag = true
|
|
74
|
+
for (var v = 0; v < Agents.length; v++) {
|
|
75
|
+
if (userAgentInfo.indexOf(Agents[v]) > 0) {
|
|
76
|
+
flag = false
|
|
77
|
+
break
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
return flag
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
/**
|
|
84
|
+
* validate email
|
|
85
|
+
* @param email
|
|
86
|
+
* @returns {boolean}
|
|
87
|
+
*/
|
|
88
|
+
export function validateEmail(email) {
|
|
89
|
+
const re = /^(([^<>()\\[\]\\.,;:\s@"]+(\.[^<>()\\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/
|
|
90
|
+
return re.test(email)
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
/**
|
|
94
|
+
* 判断身份证号码
|
|
95
|
+
*/
|
|
96
|
+
export function cardid(code) {
|
|
97
|
+
const list = []
|
|
98
|
+
let result = true
|
|
99
|
+
let msg = ''
|
|
100
|
+
var city = {
|
|
101
|
+
11: '北京',
|
|
102
|
+
12: '天津',
|
|
103
|
+
13: '河北',
|
|
104
|
+
14: '山西',
|
|
105
|
+
15: '内蒙古',
|
|
106
|
+
21: '辽宁',
|
|
107
|
+
22: '吉林',
|
|
108
|
+
23: '黑龙江 ',
|
|
109
|
+
31: '上海',
|
|
110
|
+
32: '江苏',
|
|
111
|
+
33: '浙江',
|
|
112
|
+
34: '安徽',
|
|
113
|
+
35: '福建',
|
|
114
|
+
36: '江西',
|
|
115
|
+
37: '山东',
|
|
116
|
+
41: '河南',
|
|
117
|
+
42: '湖北 ',
|
|
118
|
+
43: '湖南',
|
|
119
|
+
44: '广东',
|
|
120
|
+
45: '广西',
|
|
121
|
+
46: '海南',
|
|
122
|
+
50: '重庆',
|
|
123
|
+
51: '四川',
|
|
124
|
+
52: '贵州',
|
|
125
|
+
53: '云南',
|
|
126
|
+
54: '西藏 ',
|
|
127
|
+
61: '陕西',
|
|
128
|
+
62: '甘肃',
|
|
129
|
+
63: '青海',
|
|
130
|
+
64: '宁夏',
|
|
131
|
+
65: '新疆',
|
|
132
|
+
71: '台湾',
|
|
133
|
+
81: '香港',
|
|
134
|
+
82: '澳门',
|
|
135
|
+
91: '国外 '
|
|
136
|
+
}
|
|
137
|
+
if (!validatenull(code)) {
|
|
138
|
+
if (code.length === 18) {
|
|
139
|
+
if (!code || !/(^\d{18}$)|(^\d{17}(\d|X|x)$)/.test(code)) {
|
|
140
|
+
msg = '证件号码格式错误'
|
|
141
|
+
} else if (!city[code.substr(0, 2)]) {
|
|
142
|
+
msg = '地址编码错误'
|
|
143
|
+
} else {
|
|
144
|
+
// 18位身份证需要验证最后一位校验位
|
|
145
|
+
code = code.split('')
|
|
146
|
+
// ∑(ai×Wi)(mod 11)
|
|
147
|
+
// 加权因子
|
|
148
|
+
var factor = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2]
|
|
149
|
+
// 校验位
|
|
150
|
+
var parity = [1, 0, 'X', 9, 8, 7, 6, 5, 4, 3, 2, 'x']
|
|
151
|
+
var sum = 0
|
|
152
|
+
var ai = 0
|
|
153
|
+
var wi = 0
|
|
154
|
+
for (var i = 0; i < 17; i++) {
|
|
155
|
+
ai = code[i]
|
|
156
|
+
wi = factor[i]
|
|
157
|
+
sum += ai * wi
|
|
158
|
+
}
|
|
159
|
+
if (parity[sum % 11] !== code[17]) {
|
|
160
|
+
msg = '证件号码校验位错误'
|
|
161
|
+
} else {
|
|
162
|
+
result = false
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
} else {
|
|
166
|
+
msg = '证件号码长度不为18位'
|
|
167
|
+
}
|
|
168
|
+
} else {
|
|
169
|
+
msg = '证件号码不能为空'
|
|
170
|
+
}
|
|
171
|
+
list.push(result)
|
|
172
|
+
list.push(msg)
|
|
173
|
+
return list
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
/**
|
|
177
|
+
* 判断手机号码是否正确
|
|
178
|
+
*/
|
|
179
|
+
export function isvalidatemobile(phone) {
|
|
180
|
+
const list = []
|
|
181
|
+
let result = true
|
|
182
|
+
let msg = ''
|
|
183
|
+
var isPhone = /^0\d{2,3}-?\d{7,8}$/
|
|
184
|
+
// 增加134 减少|1349[0-9]{7},增加181,增加145,增加17[678]
|
|
185
|
+
if (!validatenull(phone)) {
|
|
186
|
+
if (phone.length === 11) {
|
|
187
|
+
if (isPhone.test(phone)) {
|
|
188
|
+
msg = '手机号码格式不正确'
|
|
189
|
+
} else {
|
|
190
|
+
result = false
|
|
191
|
+
}
|
|
192
|
+
} else {
|
|
193
|
+
msg = '手机号码长度不为11位'
|
|
194
|
+
}
|
|
195
|
+
} else {
|
|
196
|
+
msg = '手机号码不能为空'
|
|
197
|
+
}
|
|
198
|
+
list.push(result)
|
|
199
|
+
list.push(msg)
|
|
200
|
+
return list
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
/**
|
|
204
|
+
* 判断手机号码是否正确(可以为空)
|
|
205
|
+
*/
|
|
206
|
+
export function isValidateNoneMobile(phone) {
|
|
207
|
+
const list = []
|
|
208
|
+
let result = true
|
|
209
|
+
let msg = ''
|
|
210
|
+
var isPhone = /^0\d{2,3}-?\d{7,8}$/
|
|
211
|
+
// 增加134 减少|1349[0-9]{7},增加181,增加145,增加17[678]
|
|
212
|
+
if (!validatenull(phone)) {
|
|
213
|
+
if (phone.length === 11) {
|
|
214
|
+
if (isPhone.test(phone)) {
|
|
215
|
+
msg = '手机号码格式不正确'
|
|
216
|
+
} else {
|
|
217
|
+
result = false
|
|
218
|
+
}
|
|
219
|
+
} else {
|
|
220
|
+
msg = '手机号码长度不为11位'
|
|
221
|
+
}
|
|
222
|
+
} else {
|
|
223
|
+
result = false
|
|
224
|
+
}
|
|
225
|
+
list.push(result)
|
|
226
|
+
list.push(msg)
|
|
227
|
+
return list
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
/**
|
|
231
|
+
* 判断姓名是否正确
|
|
232
|
+
*/
|
|
233
|
+
export function validatename(name) {
|
|
234
|
+
var regName = /^[\u4e00-\u9fa5]{2,4}$/
|
|
235
|
+
if (!regName.test(name)) return false
|
|
236
|
+
return true
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
/**
|
|
240
|
+
* 判断是否为整数
|
|
241
|
+
*/
|
|
242
|
+
export function validatenum(num, type) {
|
|
243
|
+
let regName = /[^\d.]/g
|
|
244
|
+
if (type === 1) {
|
|
245
|
+
if (!regName.test(num)) return false
|
|
246
|
+
} else if (type === 2) {
|
|
247
|
+
regName = /[^\d]/g
|
|
248
|
+
if (!regName.test(num)) return false
|
|
249
|
+
}
|
|
250
|
+
return true
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
/**
|
|
254
|
+
* 判断是否为小数
|
|
255
|
+
*/
|
|
256
|
+
export function validatenumord(num, type) {
|
|
257
|
+
let regName = /[^\d.]/g
|
|
258
|
+
if (type === 1) {
|
|
259
|
+
if (!regName.test(num)) return false
|
|
260
|
+
} else if (type === 2) {
|
|
261
|
+
regName = /[^\d.]/g
|
|
262
|
+
if (!regName.test(num)) return false
|
|
263
|
+
}
|
|
264
|
+
return true
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
/**
|
|
268
|
+
* 判断是否为空
|
|
269
|
+
*/
|
|
270
|
+
export function validatenull(val) {
|
|
271
|
+
if (typeof val === 'boolean') {
|
|
272
|
+
return false
|
|
273
|
+
}
|
|
274
|
+
if (typeof val === 'number') {
|
|
275
|
+
return false
|
|
276
|
+
}
|
|
277
|
+
if (val instanceof Array) {
|
|
278
|
+
if (val.length === 0) return true
|
|
279
|
+
} else if (val instanceof Object) {
|
|
280
|
+
if (JSON.stringify(val) === '{}') return true
|
|
281
|
+
} else {
|
|
282
|
+
if (val === 'null' || val == null || val === 'undefined' || val === undefined || val === '') return true
|
|
283
|
+
return false
|
|
284
|
+
}
|
|
285
|
+
return false
|
|
286
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* @Description:
|
|
3
|
+
* @Author: 王国火
|
|
4
|
+
* @Date: 2022-07-13 12:31:34
|
|
5
|
+
* @LastEditTime: 2022-10-08 10:51:37
|
|
6
|
+
* @LastEditors: 王国火
|
|
7
|
+
*/
|
|
8
|
+
export default{
|
|
9
|
+
key: 'bonyear', // 配置主键,目前用于存储
|
|
10
|
+
formLoginClient: 'pig:pig', // 用户名密码登录的 client 信息
|
|
11
|
+
smsLoginClient: 'app:app', // 验证码登录的 client 信息
|
|
12
|
+
socialLoginClient: 'social:social', // 社交登录的 client 信息
|
|
13
|
+
}
|
package/packages/index.js
CHANGED
|
@@ -2,14 +2,14 @@
|
|
|
2
2
|
* @Description:
|
|
3
3
|
* @Author: 王国火
|
|
4
4
|
* @Date: 2022-09-15 17:02:55
|
|
5
|
-
* @LastEditTime: 2022-
|
|
5
|
+
* @LastEditTime: 2022-10-08 10:52:11
|
|
6
6
|
* @LastEditors: 王国火
|
|
7
7
|
*/
|
|
8
8
|
import Vue from 'vue'
|
|
9
9
|
//通用组件
|
|
10
10
|
import components from "./components.js"
|
|
11
11
|
//公用方法
|
|
12
|
-
import
|
|
12
|
+
import Common from "./common/index"
|
|
13
13
|
|
|
14
14
|
// 第三方依赖
|
|
15
15
|
import 'xe-utils'
|
|
@@ -29,10 +29,15 @@ const install = function (Vue) {
|
|
|
29
29
|
components.map(component => {
|
|
30
30
|
Vue.component(component.name, component);
|
|
31
31
|
})
|
|
32
|
-
Vue.prototype.$byt=
|
|
32
|
+
Vue.prototype.$byt=Common;
|
|
33
33
|
}
|
|
34
34
|
|
|
35
|
+
|
|
35
36
|
export default{
|
|
36
|
-
install
|
|
37
|
-
|
|
38
|
-
|
|
37
|
+
install
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
export const store=Common.store
|
|
41
|
+
export const validate=Common.validate
|
|
42
|
+
export const website=Common.website
|
|
43
|
+
|