n20-common-lib 2.9.37 → 2.9.38
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
CHANGED
|
@@ -51,7 +51,7 @@
|
|
|
51
51
|
<div
|
|
52
52
|
v-if="item.result !== 0 && item.appOrPc !== null && item.appOrPc !== '' && item.appOrPc !== undefined"
|
|
53
53
|
>
|
|
54
|
-
{{ item.appOrPc === '1' ? 'PC端审批' : 'App端审批' }}
|
|
54
|
+
{{ item.appOrPc === '1' ? 'PC端审批' : 'App端审批' | $lc }}
|
|
55
55
|
</div>
|
|
56
56
|
<div v-if="item.showConnect === '1'" class="m-l-s">
|
|
57
57
|
<span class="pointer color-ccc f-s-s" @click="seeDetail(item)"
|
|
@@ -21,13 +21,9 @@
|
|
|
21
21
|
<div class="m-l-m"></div>
|
|
22
22
|
<h3 :class="['header-title ', showNavigation ? 'm-r-s' : 'm-r-auto']">{{ headerTitle | $l }}</h3>
|
|
23
23
|
<div v-if="showNavigation" class="m-r-auto p-a-ss pointer header_change_system_box" @click="handleChangeSystem">
|
|
24
|
-
<
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
<span class="m-l-ss f-s-b color-primary">{{ $lc('导航') }}</span>
|
|
28
|
-
<svg class="icon m-l-ss f-s-s" aria-hidden="true">
|
|
29
|
-
<use xlink:href="#n20-icon-lujing" />
|
|
30
|
-
</svg>
|
|
24
|
+
<i class="n20-icon-caidan color-primary"></i>
|
|
25
|
+
<span class="m-l-ss f-s-b color-primary">{{ $l('导航') }}</span>
|
|
26
|
+
<i class="n20-icon-xiangxia1 color-primary" style="font-size: 14px"></i>
|
|
31
27
|
</div>
|
|
32
28
|
|
|
33
29
|
<span v-if="byLabel && !inBack" class="header-uif-by">{{ byLabel }}</span>
|
|
@@ -504,13 +500,19 @@ export default {
|
|
|
504
500
|
this.headerBgColor = _layoutData.headerBgColor
|
|
505
501
|
this.hideHelpDoc = _layoutData.hideHelpDoc
|
|
506
502
|
this.hideLang = (_layoutData.hideLang || langConf.hideLang) ?? false
|
|
507
|
-
this.langMap = _layoutData.lang
|
|
503
|
+
this.langMap = _layoutData.lang || langConf.lang || ['zh-cn', 'zh-hk', 'en']
|
|
508
504
|
this.hideDowApp = _layoutData.hideDowApp
|
|
509
505
|
this.hideTheme = _layoutData.hideTheme
|
|
510
506
|
this.showNavigation = _layoutData.showNavigation
|
|
511
507
|
this.systemChange = _layoutData.systemChange
|
|
512
|
-
if (this.langMap
|
|
513
|
-
window.localStorage.
|
|
508
|
+
if (this.langMap?.lang?.length > 0) {
|
|
509
|
+
let pageLang = window.localStorage.getItem('pageLang')
|
|
510
|
+
if (!pageLang) {
|
|
511
|
+
window.localStorage.setItem('pageLang', this.jsonData?.lang[0])
|
|
512
|
+
Cookies.set('language', ['zh-cn', 'zh-hk'].includes(this.jsonData?.lang[0]) ? 'zh' : this.jsonData?.lang[0], {
|
|
513
|
+
expires: 365
|
|
514
|
+
})
|
|
515
|
+
}
|
|
514
516
|
}
|
|
515
517
|
if (_loginSetting !== 'JSON') {
|
|
516
518
|
this.headerTitle = sessionStorage.getItem('headerTitle') || this.headerTitle
|
package/src/i18n.json
CHANGED
|
@@ -3439,5 +3439,15 @@
|
|
|
3439
3439
|
"en": "within (up to) characters",
|
|
3440
3440
|
"th": "ใน (ไม่เกิน) ตัวอักษร",
|
|
3441
3441
|
"vi": "trong (tối đa) ký tự"
|
|
3442
|
+
},
|
|
3443
|
+
"PC端审批": {
|
|
3444
|
+
"en": "PC approval",
|
|
3445
|
+
"th": "การอนุมัติบน PC",
|
|
3446
|
+
"vi": "Phe duyệt bằng PC"
|
|
3447
|
+
},
|
|
3448
|
+
"App端审批": {
|
|
3449
|
+
"en": "App approval",
|
|
3450
|
+
"th": "การอนุมัติบน App",
|
|
3451
|
+
"vi": "Phe duyệt bằng App"
|
|
3442
3452
|
}
|
|
3443
|
-
}
|
|
3453
|
+
}
|
package/src/plugins/Sign/sign.js
CHANGED
|
@@ -103,13 +103,16 @@ export function getCertInfo(dn) {
|
|
|
103
103
|
let certInfo
|
|
104
104
|
IWSAGetAllCertsListInfoByCertDN('', 'Sign', parseCA(dn), 0, (dnList) => {
|
|
105
105
|
if (!dn) {
|
|
106
|
-
|
|
106
|
+
Message.error('没有获取到签名参数DN!')
|
|
107
|
+
reject()
|
|
107
108
|
}
|
|
108
109
|
if (!dnList) {
|
|
109
|
-
|
|
110
|
+
Message.error('没有获取到证书列表!')
|
|
111
|
+
reject()
|
|
110
112
|
}
|
|
111
113
|
if (dnList.length === 0) {
|
|
112
|
-
|
|
114
|
+
Message.error('获取到的证书列表为空!')
|
|
115
|
+
reject()
|
|
113
116
|
}
|
|
114
117
|
|
|
115
118
|
certInfo = verifyDn(dnList, dn)
|
|
@@ -1,15 +1,29 @@
|
|
|
1
1
|
import axios from './axios'
|
|
2
2
|
import { getItem, setItem } from './storageEdit'
|
|
3
|
-
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* @description: 按需/按模块 加载权限
|
|
6
|
+
* @param {string} appNo 模块标识
|
|
7
|
+
* @param {string|string[]} rns 权限编码
|
|
8
|
+
* @return {Promise<void>}
|
|
9
|
+
*/
|
|
4
10
|
async function asyncGetRelaNos(appNo, rns) {
|
|
11
|
+
// 获取当前用户的 userNo
|
|
5
12
|
let uno = sessionStorage.getItem('userNo')
|
|
6
|
-
// if (['system1', 'audit1'].includes(uno)) return
|
|
7
13
|
|
|
14
|
+
// 获取已经加载过的模块
|
|
8
15
|
let RLFM = JSON.parse(sessionStorage.getItem('relanosLoadModiles')) || []
|
|
16
|
+
|
|
17
|
+
// 如果已经加载过当前模块,则直接返回
|
|
9
18
|
if (RLFM.includes(appNo)) return
|
|
19
|
+
|
|
20
|
+
// 如果没有加载过当前模块,则将当前模块加入到已经加载过的模块中
|
|
10
21
|
RLFM.push(appNo)
|
|
22
|
+
|
|
23
|
+
// 将已经加载过的模块写回到 sessionStorage 中
|
|
11
24
|
sessionStorage.setItem('relanosLoadModiles', JSON.stringify(RLFM))
|
|
12
25
|
|
|
26
|
+
// 获取当前模块的权限列表
|
|
13
27
|
let { data } = await axios.post(
|
|
14
28
|
'/bems/prod_1.0/user/api/userController/qryBusyInfoNo?r=' + Math.random(),
|
|
15
29
|
{
|
|
@@ -20,14 +34,19 @@ async function asyncGetRelaNos(appNo, rns) {
|
|
|
20
34
|
{ loading: false, noMsg: true }
|
|
21
35
|
)
|
|
22
36
|
|
|
23
|
-
|
|
24
|
-
let
|
|
37
|
+
// 获取当前模块的权限列表
|
|
38
|
+
let ssRelaNos = getItem('relaNos')
|
|
39
|
+
let ssCltrelaNos = getItem('cltrelaNos')
|
|
25
40
|
|
|
41
|
+
// 如果当前模块的权限列表没有找到,则创建一个新的权限列表
|
|
26
42
|
let rnObj = ssRelaNos.find((el) => el.appNo === appNo)
|
|
43
|
+
|
|
27
44
|
if (!rnObj) {
|
|
28
45
|
rnObj = { appNo: appNo || 'null', relaNos: [] }
|
|
29
46
|
ssRelaNos.push(rnObj)
|
|
30
47
|
}
|
|
48
|
+
|
|
49
|
+
// 遍历 data,并将每个元素的 relaNos push 到 oRelaNos 中
|
|
31
50
|
let oRelaNos = []
|
|
32
51
|
data?.forEach((el) => {
|
|
33
52
|
if (ssCltrelaNos[el.cltNo]) {
|
|
@@ -37,9 +56,12 @@ async function asyncGetRelaNos(appNo, rns) {
|
|
|
37
56
|
}
|
|
38
57
|
oRelaNos.push(...el.relaNos)
|
|
39
58
|
})
|
|
59
|
+
// 将 oRelaNos 重新赋值成一个不重复的数组
|
|
40
60
|
oRelaNos = [...new Set(oRelaNos)]
|
|
61
|
+
// 将 oRelaNos 赋值给 rnObj.relaNos
|
|
41
62
|
rnObj.relaNos = oRelaNos
|
|
42
63
|
|
|
64
|
+
// 获取window._keep_syncStorageAppNos,并判断是否需要同步
|
|
43
65
|
let syncArr = window._keep_syncStorageAppNos
|
|
44
66
|
let isSync = false
|
|
45
67
|
if (syncArr) {
|
|
@@ -50,9 +72,11 @@ async function asyncGetRelaNos(appNo, rns) {
|
|
|
50
72
|
}
|
|
51
73
|
}
|
|
52
74
|
|
|
53
|
-
// sessionStorage
|
|
75
|
+
// 将 rnObj 重新赋值给 ssRelaNos ,并将 ssRelaNos 重新写回到 sessionStorage 中
|
|
76
|
+
// 将 ssCltrelaNos 重新赋值给 ssCltrelaNos ,并将 ssCltrelaNos 重新写回到 sessionStorage 中
|
|
77
|
+
// 将 oRelaNos 重新赋值给 ssRelaNosG ,并将 ssRelaNosG 重新写回到 sessionStorage 中
|
|
78
|
+
// 如果需要同步,则将 isSync 写回到 sessionStorage 中
|
|
54
79
|
setItem('relaNos', ssRelaNos, isSync)
|
|
55
|
-
// sessionStorage.setItem('cltrelaNos', JSON.stringify(ssCltrelaNos))
|
|
56
80
|
setItem('cltrelaNos', ssCltrelaNos, isSync)
|
|
57
81
|
|
|
58
82
|
let ssRelaNosG = getItem('relaNosGlobal')
|