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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "n20-common-lib",
3
- "version": "2.9.37",
3
+ "version": "2.9.38",
4
4
  "private": false,
5
5
  "scripts": {
6
6
  "serve": "vue-cli-service serve",
@@ -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
- <svg class="icon" aria-hidden="true">
25
- <use xlink:href="#n20-icon-caidan" />
26
- </svg>
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 && this.langMap.lang && this.langMap.lang.length > 0) {
513
- window.localStorage.setItem('pageLang', this.jsonData?.lang[0])
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
+ }
@@ -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
- reject('没有获取到签名参数DN!')
106
+ Message.error('没有获取到签名参数DN!')
107
+ reject()
107
108
  }
108
109
  if (!dnList) {
109
- reject('没有获取到证书列表!')
110
+ Message.error('没有获取到证书列表!')
111
+ reject()
110
112
  }
111
113
  if (dnList.length === 0) {
112
- reject('获取到的证书列表为空!')
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
- let ssRelaNos = getItem('relaNos') // JSON.parse(sessionStorage.getItem('relaNos'))
24
- let ssCltrelaNos = getItem('cltrelaNos') // JSON.parse(sessionStorage.getItem('cltrelaNos'))
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.setItem('relaNos', JSON.stringify(ssRelaNos))
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')