n20-common-lib 2.4.5 → 2.4.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/README.md +1 -1
- package/nstc-g6/components/Calendar/index.js +5 -5
- package/nstc-g6/components/Calendar/src/basic/month-table.vue +12 -20
- package/nstc-g6/components/Calendar/src/basic/year-table.vue +18 -22
- package/nstc-g6/components/Calendar/src/main.vue +1 -5
- package/nstc-g6/components/DialogForm/index.js +5 -5
- package/nstc-g6/components/DialogForm/src/demo/index.vue +18 -27
- package/nstc-g6/components/DialogForm/src/main.vue +15 -21
- package/nstc-g6/components/Form/A_DEMO/component/originalForm.vue +35 -50
- package/nstc-g6/components/Form/A_DEMO/config/config_3.js +1115 -1110
- package/nstc-g6/components/Form/A_DEMO/index.vue +7 -29
- package/nstc-g6/components/Form/AutocompleteCustom/index.vue +3 -5
- package/nstc-g6/components/Form/BusinessSpecific/InputMultiple.vue +60 -62
- package/nstc-g6/components/Form/BusinessSpecific/InputWithUnit.vue +12 -35
- package/nstc-g6/components/Form/BusinessSpecific/SelectTreeDialog.vue +77 -77
- package/nstc-g6/components/Form/CascaderCustom/index.vue +4 -4
- package/nstc-g6/components/Form/CheckboxCustom/index.vue +5 -11
- package/nstc-g6/components/Form/Component.vue +56 -78
- package/nstc-g6/components/Form/ComponentSecond.vue +55 -77
- package/nstc-g6/components/Form/InputAndDialog/index.js +5 -5
- package/nstc-g6/components/Form/InputAndDialog/src/main.vue +130 -153
- package/nstc-g6/components/Form/InputCustom/demo/index.vue +4 -12
- package/nstc-g6/components/Form/InputCustom/index.vue +51 -54
- package/nstc-g6/components/Form/IntervalinputCustom/demo/index.vue +1 -3
- package/nstc-g6/components/Form/IntervalinputCustom/index.vue +19 -41
- package/nstc-g6/components/Form/Item.vue +15 -30
- package/nstc-g6/components/Form/ItemSecond.vue +7 -22
- package/nstc-g6/components/Form/List.vue +12 -28
- package/nstc-g6/components/Form/ListSecond.vue +11 -27
- package/nstc-g6/components/Form/RadioCustom/index.vue +5 -23
- package/nstc-g6/components/Form/SelectAccount/index.js +5 -5
- package/nstc-g6/components/Form/SelectAccount/src/demo/index.vue +34 -28
- package/nstc-g6/components/Form/SelectAccount/src/main.vue +112 -83
- package/nstc-g6/components/Form/SelectAndDialog/index.js +5 -5
- package/nstc-g6/components/Form/SelectAndDialog/src/main.vue +126 -149
- package/nstc-g6/components/Form/SelectCashFlow/index.js +5 -5
- package/nstc-g6/components/Form/SelectCashFlow/src/demo/index.vue +18 -19
- package/nstc-g6/components/Form/SelectCashFlow/src/main.vue +52 -41
- package/nstc-g6/components/Form/SelectCustom/demo/index.vue +14 -16
- package/nstc-g6/components/Form/SelectCustom/index.vue +129 -139
- package/nstc-g6/components/Form/SelectSubject/index.js +5 -5
- package/nstc-g6/components/Form/SelectSubject/src/demo/index.vue +42 -48
- package/nstc-g6/components/Form/SelectSubject/src/main.vue +83 -86
- package/nstc-g6/components/Form/SelectindialogCustom/demo/index.vue +34 -35
- package/nstc-g6/components/Form/SelectindialogCustom/index.vue +133 -148
- package/nstc-g6/components/Form/SelectindialogCustom/install.js +3 -3
- package/nstc-g6/components/Form/TableRadioCustom/demo/index.vue +1 -7
- package/nstc-g6/components/Form/TableRadioCustom/index.vue +17 -26
- package/nstc-g6/components/Form/TextCustom/index.vue +2 -2
- package/nstc-g6/components/Form/UploadCustom/demo/index.vue +1 -3
- package/nstc-g6/components/Form/UploadCustom/index.vue +143 -173
- package/nstc-g6/components/Form/configs.js +3 -14
- package/nstc-g6/components/Form/configsSecond.js +3 -16
- package/nstc-g6/components/Form/index.js +1 -1
- package/nstc-g6/components/Form/payeePersonSelect/index.js +5 -5
- package/nstc-g6/components/Form/payeePersonSelect/src/demo/index.vue +50 -44
- package/nstc-g6/components/Form/payeePersonSelect/src/main.vue +73 -82
- package/nstc-g6/components/FormGroup/index.js +5 -5
- package/nstc-g6/components/FormGroup/src/demo/config.js +18 -19
- package/nstc-g6/components/FormGroup/src/demo/index.vue +14 -22
- package/nstc-g6/components/FormGroup/src/main.vue +122 -141
- package/nstc-g6/components/FormGroup/src/validate.js +11 -13
- package/nstc-g6/components/InputTag/InputTag.vue +78 -111
- package/nstc-g6/components/NstcBackToTop/NstcBackToTop.vue +24 -24
- package/nstc-g6/components/NstcBranchLazyLoad/NstcBranchLazyLoad.vue +4 -13
- package/nstc-g6/components/NstcCharts/NstcCharts.vue +9 -18
- package/nstc-g6/components/NstcCharts/define.js +1 -6
- package/nstc-g6/components/NstcConfirm/NstcConfirm.vue +6 -21
- package/nstc-g6/components/NstcConfirm/index.js +21 -19
- package/nstc-g6/components/NstcDialog/NstcDialog.vue +34 -38
- package/nstc-g6/components/NstcDialogForm/NstcDialogForm.vue +17 -21
- package/nstc-g6/components/NstcDialogTable/NstcDialogTable.vue +4 -17
- package/nstc-g6/components/NstcDropdown/NstcDropdown.vue +2 -12
- package/nstc-g6/components/NstcDropdownTree/NstcDropdownTree.vue +3 -13
- package/nstc-g6/components/NstcElectronicFile/NstcElectronicFile.vue +18 -78
- package/nstc-g6/components/NstcExcelCustomImport/NstcExcelCustomImport.vue +121 -147
- package/nstc-g6/components/NstcExcelImport/NstcExcelImport.vue +9 -31
- package/nstc-g6/components/NstcExcelImportN/NstcExcelImportN.vue +10 -33
- package/nstc-g6/components/NstcExpandCollapse/NstcExpandCollapse.vue +12 -16
- package/nstc-g6/components/NstcFileUpload/NstcFileUpload.vue +19 -75
- package/nstc-g6/components/NstcForm/A_DEMO/component/originalForm.vue +35 -50
- package/nstc-g6/components/NstcForm/A_DEMO/config/config_3.js +1115 -1110
- package/nstc-g6/components/NstcForm/A_DEMO/index.vue +340 -354
- package/nstc-g6/components/NstcForm/AutocompleteCustom/index.vue +2 -2
- package/nstc-g6/components/NstcForm/BusinessSpecific/InputWithUnit.vue +11 -34
- package/nstc-g6/components/NstcForm/BusinessSpecific/SelectTreeDialog.vue +77 -77
- package/nstc-g6/components/NstcForm/CheckboxCustom/index.vue +5 -11
- package/nstc-g6/components/NstcForm/Component.vue +17 -62
- package/nstc-g6/components/NstcForm/ComponentSecond.vue +55 -77
- package/nstc-g6/components/NstcForm/InputAndDialog/NstcInputAndDialog.vue +6 -24
- package/nstc-g6/components/NstcForm/InputCustom/index.vue +2 -8
- package/nstc-g6/components/NstcForm/IntervalInputCustom/index.vue +4 -21
- package/nstc-g6/components/NstcForm/Item.vue +3 -15
- package/nstc-g6/components/NstcForm/ItemSecond.vue +7 -22
- package/nstc-g6/components/NstcForm/List.vue +12 -28
- package/nstc-g6/components/NstcForm/ListSecond.vue +11 -27
- package/nstc-g6/components/NstcForm/RadioCustom/index.vue +5 -23
- package/nstc-g6/components/NstcForm/SelectAccount/NstcSelectAccount.vue +4 -24
- package/nstc-g6/components/NstcForm/SelectAndDialog/NstcSelectAndDialog.vue +7 -30
- package/nstc-g6/components/NstcForm/SelectCashFlow/NstcSelectCashFlow.vue +50 -38
- package/nstc-g6/components/NstcForm/SelectCustom/index.vue +6 -16
- package/nstc-g6/components/NstcForm/SelectSubject/NstcSelectSubject.vue +72 -82
- package/nstc-g6/components/NstcForm/SelectindialogCustom/index.vue +6 -20
- package/nstc-g6/components/NstcForm/TableRadioCustom/index.vue +17 -26
- package/nstc-g6/components/NstcForm/TextCustom/index.vue +2 -2
- package/nstc-g6/components/NstcForm/UploadCustom/index.vue +13 -60
- package/nstc-g6/components/NstcForm/configs.js +3 -14
- package/nstc-g6/components/NstcForm/configsSecond.js +3 -16
- package/nstc-g6/components/NstcForm/index.js +1 -1
- package/nstc-g6/components/NstcForm/payeePersonSelect/NstcPayeePerson.vue +57 -73
- package/nstc-g6/components/NstcPagination/NstcPagination.vue +2 -12
- package/nstc-g6/components/NstcScreenFull/NstcScreenFull.vue +2 -3
- package/nstc-g6/components/NstcSelectTree/NstcSelectTree.vue +4 -15
- package/nstc-g6/components/NstcSelectTreeList/NstcSelectTreeList.vue +5 -20
- package/nstc-g6/components/NstcSticky/NstcSticky.vue +10 -4
- package/nstc-g6/components/NstcSvgIcon/NstcSvgIcon.vue +1 -7
- package/nstc-g6/components/NstcTab/NstcTab.vue +8 -20
- package/nstc-g6/components/NstcTabWithBadge/NstcTabWithBadge.vue +7 -7
- package/nstc-g6/components/NstcTable/ElTableColumnCustom/index.vue +88 -126
- package/nstc-g6/components/NstcTable/NstcTable.vue +4 -17
- package/nstc-g6/components/NstcTableSet/NstcTableSet.vue +27 -72
- package/nstc-g6/components/NstcThemePicker/NstcThemePicker.vue +13 -14
- package/nstc-g6/components/NstcUploadCustomExcel/NstcUploadCustomExcel.vue +3 -13
- package/nstc-g6/components/NstcUploadExcel/NstcUploadExcel.vue +21 -22
- package/nstc-g6/components/NstcWorkBench/NstcWorkBench.vue +4 -17
- package/nstc-g6/components/Search/NstcSearch.vue +12 -47
- package/nstc-g6/components/Search/src/demo/index copy.vue +28 -28
- package/nstc-g6/components/Search/src/demo/index.vue +36 -36
- package/nstc-g6/components/Search/src/main copy.vue +169 -204
- package/nstc-g6/components/approvelTwo/main.vue +2 -6
- package/nstc-g6/components/approvelTwo/progress.vue +7 -29
- package/nstc-g6/directives/VCopy/index.js +52 -54
- package/nstc-g6/directives/VNstcNumber/index.js +1 -1
- package/nstc-g6/directives/VNstcNumber/temp.js +357 -362
- package/nstc-g6/utils/mapper_aims.js +774 -775
- package/nstc-g6/utils/parseTime.js +38 -36
- package/nstc-g6/utils/validate/index.js +2 -2
- package/nstc-g6/utils/vendor/Export2Excel.js +110 -111
- package/nstc-g6/utils/vendor/Export2Zip.js +12 -7
- package/nstc-g6/utils/vue-bus.js +1 -1
- package/package.json +1 -1
- package/src/assets/iconFont/demo_index.html +1 -1
- package/src/assets/iconFont/iconfont.js +66 -1
- package/src/assets/iconFont2/demo_index.html +277 -286
- package/src/assets/iconFont2/iconfont.js +66 -1
- package/src/components/Button/button-group.vue +1 -1
- package/src/components/Layout/HeaderWrap/indexN.vue +1 -1
- package/src/components/Layout/indexN.vue +1 -2
- package/src/components/LoginTemporary/indexN.vue +12 -2
- package/src/components/TableOperateColumn/index.vue +1 -1
- package/src/plugins/Print/print-js/README.md +5 -5
- package/src/plugins/Print/print-js/package.json +2 -2
- package/src/plugins/Print/print-js/src/index.d.ts +36 -36
- package/src/plugins/Print/print-js/src/js/browser.js +3 -1
- package/src/plugins/Print/print-js/src/js/functions.js +16 -10
- package/src/plugins/Print/print-js/src/js/html.js +2 -2
- package/src/plugins/Print/print-js/src/js/image.js +1 -1
- package/src/plugins/Print/print-js/src/js/init.js +15 -7
- package/src/plugins/Print/print-js/src/js/json.js +14 -4
- package/src/plugins/Print/print-js/src/js/modal.js +16 -15
- package/src/plugins/Print/print-js/src/js/pdf.js +1 -1
- package/src/plugins/Print/print-js/src/js/print.js +6 -6
- package/src/plugins/Sign/NetSM3/InfosecNetSignCNGAgent.min.js +1825 -1592
- package/src/plugins/Sign/cfca/index.js +525 -520
- package/src/plugins/Sign/sign.js +128 -128
- package/style/index.css +1 -1
- package/style/index.css.map +1 -1
- package/theme/blue.css +1 -1
- package/theme/cctcRed.css +1 -1
- package/theme/green.css +1 -1
- package/theme/lightBlue.css +1 -1
- package/theme/orange.css +1 -1
- package/theme/purple.css +1 -1
- package/theme/red.css +1 -1
- package/theme/yellow.css +1 -1
package/src/plugins/Sign/sign.js
CHANGED
|
@@ -1,128 +1,128 @@
|
|
|
1
|
-
// Attached方式签名
|
|
2
|
-
import { IWSAgent } from './InfosecNetSignCNGAgent.min.js'
|
|
3
|
-
import { Message, Notification } from 'element-ui'
|
|
4
|
-
const {
|
|
5
|
-
IWSASetTimeOut,
|
|
6
|
-
IWSAAttachedSign,
|
|
7
|
-
IWSAAttachedVerify,
|
|
8
|
-
IWSASendAvailable,
|
|
9
|
-
IWSAGetAvailable,
|
|
10
|
-
IWSAGetAllCertsListInfoByCertDN
|
|
11
|
-
} = new IWSAgent()
|
|
12
|
-
IWSASetTimeOut(6000)
|
|
13
|
-
|
|
14
|
-
function getDN() {
|
|
15
|
-
let dn
|
|
16
|
-
let userInfo = JSON.parse(sessionStorage.getItem('userInfo'))
|
|
17
|
-
if (userInfo && userInfo.dn) {
|
|
18
|
-
dn = userInfo.dn
|
|
19
|
-
}
|
|
20
|
-
return dn
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
/* 检测本地签名端口是否可用 */
|
|
24
|
-
export function availableSign(fn, url) {
|
|
25
|
-
url || (url = '/portal/NetSignCNG-v2.1.152.2.exe')
|
|
26
|
-
// 查找已经打开的签名端口
|
|
27
|
-
let available = IWSAGetAvailable()
|
|
28
|
-
if (available) {
|
|
29
|
-
fn && fn(available)
|
|
30
|
-
} else {
|
|
31
|
-
// 如果没有,再刺探一遍 (异步请求,需等待)
|
|
32
|
-
IWSASendAvailable()
|
|
33
|
-
setTimeout(() => {
|
|
34
|
-
available = IWSAGetAvailable()
|
|
35
|
-
fn && fn(available)
|
|
36
|
-
|
|
37
|
-
if (!available) {
|
|
38
|
-
Notification({
|
|
39
|
-
title: '提示',
|
|
40
|
-
dangerouslyUseHTMLString: true,
|
|
41
|
-
message: `<div>检测到您的电脑中没有安装签名助手,为了不影响使用请使用管理员权限<a class="color-primary" href="${url}" download>下载安装</a>NetSignCNG签名助手</div>`,
|
|
42
|
-
duration: 5000
|
|
43
|
-
})
|
|
44
|
-
}
|
|
45
|
-
}, 300)
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
/* 签名解签 */
|
|
50
|
-
export function verifySign(signedMsg) {
|
|
51
|
-
let plainText
|
|
52
|
-
IWSAAttachedVerify('1', signedMsg, (errorCode, PlainText, SigncertDN) => {
|
|
53
|
-
if (errorCode === 0 || errorCode === '0') {
|
|
54
|
-
plainText = PlainText
|
|
55
|
-
} else {
|
|
56
|
-
Message.error('签名解签失败!')
|
|
57
|
-
}
|
|
58
|
-
})
|
|
59
|
-
return plainText
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
/* 给对象或字符串签名 */
|
|
63
|
-
export function getSign(plain, dn) {
|
|
64
|
-
if (dn === undefined) {
|
|
65
|
-
dn = getDN()
|
|
66
|
-
}
|
|
67
|
-
if (!dn) {
|
|
68
|
-
Message.error('签名参数DN错误!')
|
|
69
|
-
return false
|
|
70
|
-
}
|
|
71
|
-
let plainText = ''
|
|
72
|
-
if (typeof plain === 'object') {
|
|
73
|
-
plainText = JSON.stringify(plain)
|
|
74
|
-
} else {
|
|
75
|
-
plainText = plain
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
let index
|
|
79
|
-
IWSAGetAllCertsListInfoByCertDN('', 'Sign', parseCA(dn), 0, (dnList) => {
|
|
80
|
-
index = verifyDn(dnList, dn)
|
|
81
|
-
})
|
|
82
|
-
if(index
|
|
83
|
-
Message.warning('没有匹配到证书!')
|
|
84
|
-
return ''
|
|
85
|
-
}
|
|
86
|
-
let answer = undefined
|
|
87
|
-
IWSAAttachedSign('1', plainText, index, 'SHA1', (errorCode, signedData) => {
|
|
88
|
-
if (errorCode === 0 || errorCode === '0') {
|
|
89
|
-
answer = signedData
|
|
90
|
-
} else {
|
|
91
|
-
Message.error('签名失败!')
|
|
92
|
-
}
|
|
93
|
-
})
|
|
94
|
-
return answer
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
function parseCA(dn) {
|
|
98
|
-
const mark = /^CN=/
|
|
99
|
-
let cn = ''
|
|
100
|
-
if (dn == null) return cn
|
|
101
|
-
|
|
102
|
-
let booked = dn.split(',')
|
|
103
|
-
let dnC = booked.find((b) => mark.test(b))
|
|
104
|
-
dnC && (cn = dnC.replace(mark, ''))
|
|
105
|
-
return cn
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
function verifyDn(dnList, dn) {
|
|
109
|
-
if (dnList.length === 0) return 'dnListEmpty'
|
|
110
|
-
if (!dnList) return 'Empty'
|
|
111
|
-
if (!dn) return 'dnIsEmpty'
|
|
112
|
-
|
|
113
|
-
let userDnAttrsArr = dn.split(',').map((c) => c.trim())
|
|
114
|
-
|
|
115
|
-
let isIn = false
|
|
116
|
-
let index=0
|
|
117
|
-
dnList.find((C,i) => {
|
|
118
|
-
let dnAttrsArr = C.certDN.split(',').map((c) => c.trim())
|
|
119
|
-
if (dnAttrsArr.every((dnAttr) => userDnAttrsArr.includes(dnAttr))) {
|
|
120
|
-
index = i
|
|
121
|
-
return (isIn = true)
|
|
122
|
-
}
|
|
123
|
-
})
|
|
124
|
-
if (!isIn) {
|
|
125
|
-
index = -1
|
|
126
|
-
}
|
|
127
|
-
return index
|
|
128
|
-
}
|
|
1
|
+
// Attached方式签名
|
|
2
|
+
import { IWSAgent } from './InfosecNetSignCNGAgent.min.js'
|
|
3
|
+
import { Message, Notification } from 'element-ui'
|
|
4
|
+
const {
|
|
5
|
+
IWSASetTimeOut,
|
|
6
|
+
IWSAAttachedSign,
|
|
7
|
+
IWSAAttachedVerify,
|
|
8
|
+
IWSASendAvailable,
|
|
9
|
+
IWSAGetAvailable,
|
|
10
|
+
IWSAGetAllCertsListInfoByCertDN
|
|
11
|
+
} = new IWSAgent()
|
|
12
|
+
IWSASetTimeOut(6000)
|
|
13
|
+
|
|
14
|
+
function getDN() {
|
|
15
|
+
let dn
|
|
16
|
+
let userInfo = JSON.parse(sessionStorage.getItem('userInfo'))
|
|
17
|
+
if (userInfo && userInfo.dn) {
|
|
18
|
+
dn = userInfo.dn
|
|
19
|
+
}
|
|
20
|
+
return dn
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
/* 检测本地签名端口是否可用 */
|
|
24
|
+
export function availableSign(fn, url) {
|
|
25
|
+
url || (url = '/portal/NetSignCNG-v2.1.152.2.exe')
|
|
26
|
+
// 查找已经打开的签名端口
|
|
27
|
+
let available = IWSAGetAvailable()
|
|
28
|
+
if (available) {
|
|
29
|
+
fn && fn(available)
|
|
30
|
+
} else {
|
|
31
|
+
// 如果没有,再刺探一遍 (异步请求,需等待)
|
|
32
|
+
IWSASendAvailable()
|
|
33
|
+
setTimeout(() => {
|
|
34
|
+
available = IWSAGetAvailable()
|
|
35
|
+
fn && fn(available)
|
|
36
|
+
|
|
37
|
+
if (!available) {
|
|
38
|
+
Notification({
|
|
39
|
+
title: '提示',
|
|
40
|
+
dangerouslyUseHTMLString: true,
|
|
41
|
+
message: `<div>检测到您的电脑中没有安装签名助手,为了不影响使用请使用管理员权限<a class="color-primary" href="${url}" download>下载安装</a>NetSignCNG签名助手</div>`,
|
|
42
|
+
duration: 5000
|
|
43
|
+
})
|
|
44
|
+
}
|
|
45
|
+
}, 300)
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
/* 签名解签 */
|
|
50
|
+
export function verifySign(signedMsg) {
|
|
51
|
+
let plainText
|
|
52
|
+
IWSAAttachedVerify('1', signedMsg, (errorCode, PlainText, SigncertDN) => {
|
|
53
|
+
if (errorCode === 0 || errorCode === '0') {
|
|
54
|
+
plainText = PlainText
|
|
55
|
+
} else {
|
|
56
|
+
Message.error('签名解签失败!')
|
|
57
|
+
}
|
|
58
|
+
})
|
|
59
|
+
return plainText
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
/* 给对象或字符串签名 */
|
|
63
|
+
export function getSign(plain, dn) {
|
|
64
|
+
if (dn === undefined) {
|
|
65
|
+
dn = getDN()
|
|
66
|
+
}
|
|
67
|
+
if (!dn) {
|
|
68
|
+
Message.error('签名参数DN错误!')
|
|
69
|
+
return false
|
|
70
|
+
}
|
|
71
|
+
let plainText = ''
|
|
72
|
+
if (typeof plain === 'object') {
|
|
73
|
+
plainText = JSON.stringify(plain)
|
|
74
|
+
} else {
|
|
75
|
+
plainText = plain
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
let index
|
|
79
|
+
IWSAGetAllCertsListInfoByCertDN('', 'Sign', parseCA(dn), 0, (dnList) => {
|
|
80
|
+
index = verifyDn(dnList, dn)
|
|
81
|
+
})
|
|
82
|
+
if (index == -1) {
|
|
83
|
+
Message.warning('没有匹配到证书!')
|
|
84
|
+
return ''
|
|
85
|
+
}
|
|
86
|
+
let answer = undefined
|
|
87
|
+
IWSAAttachedSign('1', plainText, index, 'SHA1', (errorCode, signedData) => {
|
|
88
|
+
if (errorCode === 0 || errorCode === '0') {
|
|
89
|
+
answer = signedData
|
|
90
|
+
} else {
|
|
91
|
+
Message.error('签名失败!')
|
|
92
|
+
}
|
|
93
|
+
})
|
|
94
|
+
return answer
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
function parseCA(dn) {
|
|
98
|
+
const mark = /^CN=/
|
|
99
|
+
let cn = ''
|
|
100
|
+
if (dn == null) return cn
|
|
101
|
+
|
|
102
|
+
let booked = dn.split(',')
|
|
103
|
+
let dnC = booked.find((b) => mark.test(b))
|
|
104
|
+
dnC && (cn = dnC.replace(mark, ''))
|
|
105
|
+
return cn
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
function verifyDn(dnList, dn) {
|
|
109
|
+
if (dnList.length === 0) return 'dnListEmpty'
|
|
110
|
+
if (!dnList) return 'Empty'
|
|
111
|
+
if (!dn) return 'dnIsEmpty'
|
|
112
|
+
|
|
113
|
+
let userDnAttrsArr = dn.split(',').map((c) => c.trim())
|
|
114
|
+
|
|
115
|
+
let isIn = false
|
|
116
|
+
let index = 0
|
|
117
|
+
dnList.find((C, i) => {
|
|
118
|
+
let dnAttrsArr = C.certDN.split(',').map((c) => c.trim())
|
|
119
|
+
if (dnAttrsArr.every((dnAttr) => userDnAttrsArr.includes(dnAttr))) {
|
|
120
|
+
index = i
|
|
121
|
+
return (isIn = true)
|
|
122
|
+
}
|
|
123
|
+
})
|
|
124
|
+
if (!isIn) {
|
|
125
|
+
index = -1
|
|
126
|
+
}
|
|
127
|
+
return index
|
|
128
|
+
}
|