n20-common-lib 1.3.23 → 1.3.24
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/package.json +3 -3
- package/src/assets/css/cl-layout-tabs.scss +2 -2
- package/src/assets/css/cl-layout.scss +3 -3
- package/src/assets/css/cl-secondary-tab.scss +1 -1
- package/src/assets/css/element-variables.scss +1 -1
- package/src/components/LoginTemporary/form.vue +8 -10
- package/src/directives/VTitle/index.js +18 -16
- package/src/plugins/Sign/index.js +23 -59
- package/src/plugins/Sign/sign.js +64 -1
- package/src/utils/theme.js +1 -1
- package/style/index.css.map +1 -1
- package/{treme → theme}/blue.css +0 -0
- package/{treme → theme}/fonts/element-icons.535877f5.woff +0 -0
- package/{treme → theme}/fonts/element-icons.732389de.ttf +0 -0
- package/{treme → theme}/fonts/iconfont.022f36c4.woff2 +0 -0
- package/{treme → theme}/fonts/iconfont.4a1b2c93.woff +0 -0
- package/{treme → theme}/fonts/iconfont.a9febaa2.ttf +0 -0
- package/{treme → theme}/green.css +1 -1
- package/{treme → theme}/lightBlue.css +1 -1
- package/{treme → theme}/orange.css +1 -1
- package/{treme → theme}/purple.css +1 -1
- package/{treme → theme}/red.css +1 -1
- package/{treme → theme}/yellow.css +1 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "n20-common-lib",
|
|
3
|
-
"version": "1.3.
|
|
3
|
+
"version": "1.3.24",
|
|
4
4
|
"private": false,
|
|
5
5
|
"main": "src/index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -28,8 +28,8 @@
|
|
|
28
28
|
"style/*.css",
|
|
29
29
|
"style/*.css.map",
|
|
30
30
|
"style/fonts",
|
|
31
|
-
"
|
|
32
|
-
"
|
|
31
|
+
"theme/*.css",
|
|
32
|
+
"theme/fonts",
|
|
33
33
|
"g6.js",
|
|
34
34
|
"nstc-g6/index.js",
|
|
35
35
|
"nstc-g6/assets",
|
|
@@ -68,12 +68,12 @@ $--item-hover-padding: 12px;
|
|
|
68
68
|
height: $--tabsnav-height - 2 * $--layou-margin;
|
|
69
69
|
line-height: $--tabsnav-height - 2 * $--layou-margin;
|
|
70
70
|
border-radius: $--item-radius;
|
|
71
|
-
background:
|
|
71
|
+
background: $--color-white;
|
|
72
72
|
|
|
73
73
|
top: $--layou-margin;
|
|
74
74
|
z-index: 9;
|
|
75
75
|
&:hover {
|
|
76
|
-
background:
|
|
76
|
+
background: $--body-background;
|
|
77
77
|
}
|
|
78
78
|
}
|
|
79
79
|
}
|
|
@@ -7,7 +7,7 @@ $--tabsnav-height: 46px;
|
|
|
7
7
|
$--layou-margin: 10px;
|
|
8
8
|
|
|
9
9
|
body {
|
|
10
|
-
background:
|
|
10
|
+
background: $--body-background;
|
|
11
11
|
&.aside-nav--collapse {
|
|
12
12
|
.tabs-nav-wrap {
|
|
13
13
|
left: $--aside-collapse-width;
|
|
@@ -70,7 +70,7 @@ body {
|
|
|
70
70
|
width: auto;
|
|
71
71
|
height: $--tabsnav-height;
|
|
72
72
|
border-top: 1px solid $--background-color-base;
|
|
73
|
-
background:
|
|
73
|
+
background: $--body-background;
|
|
74
74
|
transition: left 0.3s ease-in;
|
|
75
75
|
|
|
76
76
|
overflow-y: hidden;
|
|
@@ -86,7 +86,7 @@ body {
|
|
|
86
86
|
bottom: 0;
|
|
87
87
|
width: auto;
|
|
88
88
|
height: auto;
|
|
89
|
-
background:
|
|
89
|
+
background: $--body-background;
|
|
90
90
|
|
|
91
91
|
overflow-y: auto;
|
|
92
92
|
overflow-y: overlay;
|
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
// Special comment for theme configurator
|
|
4
4
|
// type|skipAutoTranslation|Category|Order
|
|
5
5
|
// skipAutoTranslation 1
|
|
6
|
-
|
|
7
6
|
/* Transition
|
|
8
7
|
-------------------------- */
|
|
9
8
|
$--all-transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1) !default;
|
|
@@ -13,6 +12,7 @@ $--md-fade-transition: transform 300ms cubic-bezier(0.23, 1, 0.32, 1), opacity 3
|
|
|
13
12
|
$--border-transition-base: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1) !default;
|
|
14
13
|
$--color-transition-base: color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1) !default;
|
|
15
14
|
|
|
15
|
+
$--body-background: #f0f2f5 !default;
|
|
16
16
|
/* Color
|
|
17
17
|
-------------------------- */
|
|
18
18
|
/// color|1|Brand Color|0
|
|
@@ -394,18 +394,16 @@ export default {
|
|
|
394
394
|
let certDn = undefined
|
|
395
395
|
if (checkCert) {
|
|
396
396
|
if (supplier === 'bjca') {
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
certDn = userDn
|
|
397
|
+
// 北京CA
|
|
398
|
+
window.sessionStorage.setItem('signType', 'bjcaSign')
|
|
400
399
|
} else {
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
certDn = userDn
|
|
400
|
+
// 信安CA
|
|
401
|
+
window.sessionStorage.setItem('signType', 'inetSign')
|
|
404
402
|
}
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
403
|
+
|
|
404
|
+
let { getSign } = await import('../../plugins/Sign')
|
|
405
|
+
sign = await getSign(username, userDn)
|
|
406
|
+
certDn = userDn
|
|
409
407
|
}
|
|
410
408
|
|
|
411
409
|
await this.authorizationCode(username, password, code) // authorizationValue 使用一次后就失效了
|
|
@@ -7,7 +7,7 @@ function tipShow(el, tip) {
|
|
|
7
7
|
if (el.$tooltipTitle) {
|
|
8
8
|
let _el = _input || el
|
|
9
9
|
if (!el.$tooltipTitleOverflow || _el.clientWidth < _el.scrollWidth) {
|
|
10
|
-
|
|
10
|
+
document.querySelector('.' + popClass).innerText = el.$tooltipTitle
|
|
11
11
|
|
|
12
12
|
tip.$refs['title-pop'].referenceElm = el
|
|
13
13
|
tip.$refs['title-pop'].doDestroy()
|
|
@@ -33,27 +33,29 @@ TitleDirective.install = (Vue) => {
|
|
|
33
33
|
el: document.createElement('div'),
|
|
34
34
|
data() {
|
|
35
35
|
return {
|
|
36
|
-
title: '',
|
|
37
36
|
visible: false
|
|
38
37
|
}
|
|
39
38
|
},
|
|
40
39
|
render(_h) {
|
|
41
40
|
var _vm = this
|
|
42
|
-
return _h(
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
41
|
+
return _h(
|
|
42
|
+
'el-popover',
|
|
43
|
+
{
|
|
44
|
+
ref: 'title-pop',
|
|
45
|
+
attrs: {
|
|
46
|
+
value: _vm.visible,
|
|
47
|
+
trigger: 'manual',
|
|
48
|
+
'popper-class': 'n20-title-pop',
|
|
49
|
+
placement: 'top'
|
|
50
|
+
},
|
|
51
|
+
on: {
|
|
52
|
+
input(v) {
|
|
53
|
+
_vm.visible = v
|
|
54
|
+
}
|
|
54
55
|
}
|
|
55
|
-
}
|
|
56
|
-
|
|
56
|
+
},
|
|
57
|
+
[_h('span', { staticClass: popClass })]
|
|
58
|
+
)
|
|
57
59
|
}
|
|
58
60
|
})
|
|
59
61
|
document.querySelector('body').appendChild(tooltip.$el)
|
|
@@ -1,64 +1,28 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
let _dn
|
|
7
|
-
function getDN() {
|
|
8
|
-
if (!_dn) {
|
|
9
|
-
let userInfo = JSON.parse(sessionStorage.getItem('userInfo'))
|
|
10
|
-
if (userInfo?.dn) {
|
|
11
|
-
_dn = userInfo.dn
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
return _dn
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
/* 检测本地签名端口是否可用 */
|
|
18
|
-
export function availableSign(fn) {
|
|
19
|
-
IWSASendAvailable() // 异步请求,需等待
|
|
20
|
-
setTimeout(() => {
|
|
21
|
-
let available = IWSAGetAvailable()
|
|
22
|
-
fn && fn(available)
|
|
23
|
-
}, 300)
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
/* 签名解签 */
|
|
27
|
-
export function verifySign(signedMsg) {
|
|
28
|
-
let plainText
|
|
29
|
-
IWSAAttachedVerify('1', signedMsg, (errorCode, PlainText, SigncertDN) => {
|
|
30
|
-
if (errorCode === 0 || errorCode === '0') {
|
|
31
|
-
plainText = PlainText
|
|
32
|
-
} else {
|
|
33
|
-
alert('签名解签失败!')
|
|
34
|
-
}
|
|
35
|
-
})
|
|
36
|
-
return plainText
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
/* 给对象或字符串签名 */
|
|
40
|
-
export function getSign(plain, dn) {
|
|
41
|
-
if (dn === undefined) {
|
|
42
|
-
dn = getDN()
|
|
1
|
+
export async function getSign(p1, p2, p3) {
|
|
2
|
+
let signType = window.sessionStorage.getItem('signType')
|
|
3
|
+
let CaMap = {
|
|
4
|
+
inetSign: '信安CA',
|
|
5
|
+
bjcaSign: '北京CA'
|
|
43
6
|
}
|
|
44
|
-
if (!
|
|
45
|
-
|
|
46
|
-
|
|
7
|
+
if (!signType || !CaMap[signType]) {
|
|
8
|
+
console.error('请设置签名服务公司sessionStorage.signType,公司字段映射:', CaMap)
|
|
9
|
+
signType = 'inetSign'
|
|
47
10
|
}
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
alert('签名失败!')
|
|
11
|
+
const por = new Promise((resolve) => {
|
|
12
|
+
if (signType === 'inetSign' /* 信安CA */) {
|
|
13
|
+
import('./sign.js').then(({ getSign }) => {
|
|
14
|
+
const sign = getSign(p1, p2, p3)
|
|
15
|
+
resolve(sign)
|
|
16
|
+
})
|
|
17
|
+
} else if (signType === 'bjcaSign' /* 北京CA */) {
|
|
18
|
+
import('./bjca/index.js').then(({ getSign }) => {
|
|
19
|
+
getSign(p1, p2, p3).then((sign) => {
|
|
20
|
+
resolve(sign)
|
|
21
|
+
})
|
|
22
|
+
})
|
|
61
23
|
}
|
|
62
24
|
})
|
|
63
|
-
return
|
|
25
|
+
return por
|
|
64
26
|
}
|
|
27
|
+
|
|
28
|
+
export { availableSign, verifySign } from './sign.js'
|
package/src/plugins/Sign/sign.js
CHANGED
|
@@ -1 +1,64 @@
|
|
|
1
|
-
|
|
1
|
+
// Attached方式签名
|
|
2
|
+
import { IWSAgent } from './InfosecNetSignCNGAgent.min.js'
|
|
3
|
+
const { IWSASetTimeOut, IWSAAttachedSign, IWSAAttachedVerify, IWSASendAvailable, IWSAGetAvailable } = new IWSAgent()
|
|
4
|
+
IWSASetTimeOut(6000)
|
|
5
|
+
|
|
6
|
+
let _dn
|
|
7
|
+
function getDN() {
|
|
8
|
+
if (!_dn) {
|
|
9
|
+
let userInfo = JSON.parse(sessionStorage.getItem('userInfo'))
|
|
10
|
+
if (userInfo?.dn) {
|
|
11
|
+
_dn = userInfo.dn
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
return _dn
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
/* 检测本地签名端口是否可用 */
|
|
18
|
+
export function availableSign(fn) {
|
|
19
|
+
IWSASendAvailable() // 异步请求,需等待
|
|
20
|
+
setTimeout(() => {
|
|
21
|
+
let available = IWSAGetAvailable()
|
|
22
|
+
fn && fn(available)
|
|
23
|
+
}, 300)
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/* 签名解签 */
|
|
27
|
+
export function verifySign(signedMsg) {
|
|
28
|
+
let plainText
|
|
29
|
+
IWSAAttachedVerify('1', signedMsg, (errorCode, PlainText, SigncertDN) => {
|
|
30
|
+
if (errorCode === 0 || errorCode === '0') {
|
|
31
|
+
plainText = PlainText
|
|
32
|
+
} else {
|
|
33
|
+
alert('签名解签失败!')
|
|
34
|
+
}
|
|
35
|
+
})
|
|
36
|
+
return plainText
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
/* 给对象或字符串签名 */
|
|
40
|
+
export function getSign(plain, dn) {
|
|
41
|
+
if (dn === undefined) {
|
|
42
|
+
dn = getDN()
|
|
43
|
+
}
|
|
44
|
+
if (!dn) {
|
|
45
|
+
alert('签名参数DN错误!')
|
|
46
|
+
return false
|
|
47
|
+
}
|
|
48
|
+
let plainText = ''
|
|
49
|
+
if (typeof plain === 'object') {
|
|
50
|
+
plainText = JSON.stringify(plain)
|
|
51
|
+
} else {
|
|
52
|
+
plainText = plain
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
let answer = undefined
|
|
56
|
+
IWSAAttachedSign('1', plainText, '0', 'SHA1', (errorCode, signedData) => {
|
|
57
|
+
if (errorCode === 0 || errorCode === '0') {
|
|
58
|
+
answer = signedData
|
|
59
|
+
} else {
|
|
60
|
+
alert('签名失败!')
|
|
61
|
+
}
|
|
62
|
+
})
|
|
63
|
+
return answer
|
|
64
|
+
}
|
package/src/utils/theme.js
CHANGED
|
@@ -4,7 +4,7 @@ export function setTheme(val) {
|
|
|
4
4
|
var links = document.querySelectorAll('link[rel="stylesheet"]')
|
|
5
5
|
var link, newLink, nextEl, pEl
|
|
6
6
|
links.forEach(function (el) {
|
|
7
|
-
if (el.href && el.href.indexOf('/
|
|
7
|
+
if (el.href && el.href.indexOf('/theme/') !== -1) {
|
|
8
8
|
link = el
|
|
9
9
|
}
|
|
10
10
|
})
|