n20-common-lib 2.9.13 → 2.9.14

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.
Files changed (130) hide show
  1. package/nstc-g6/components/NstcCharts/NstcCharts.vue +16 -8
  2. package/package.json +8 -5
  3. package/src/assets/css/approve-card.scss +1 -1
  4. package/src/assets/css/date-quarter.scss +8 -0
  5. package/src/assets/css/expandable-pane.scss +7 -0
  6. package/src/assets/css/file-upload-table.scss +2 -3
  7. package/src/assets/css/font-icon.scss +3 -1
  8. package/src/assets/css/message.scss +6 -6
  9. package/src/assets/css/normalize.scss +4 -1
  10. package/src/assets/css/table.scss +16 -11
  11. package/src/assets/iconFont/SIMSUN.ttf +0 -0
  12. package/src/assets/iconFont/font.css +4 -0
  13. package/src/components/AIButton/index.vue +101 -0
  14. package/src/components/AdvancedFilter/formItemRender.vue +7 -4
  15. package/src/components/AdvancedFilter/index.vue +6 -7
  16. package/src/components/Anchor/index.vue +1 -0
  17. package/src/components/ApprovalButtons/index.vue +404 -82
  18. package/src/components/ApprovalButtons/indexApp.vue +1102 -0
  19. package/src/components/ApprovalButtons/selectSpr.vue +128 -0
  20. package/src/components/ApprovalButtons/setCarboncopyProp.vue +1 -1
  21. package/src/components/ApprovalButtons/setRejectToProp.vue +45 -5
  22. package/src/components/ApprovalButtons/showAppOpi.vue +265 -8
  23. package/src/components/ApprovalButtons/showOtherAttrNew.vue +161 -0
  24. package/src/components/ApprovalCard/index.vue +190 -44
  25. package/src/components/ApprovalCard/indexApp.vue +592 -0
  26. package/src/components/ApprovalRecord/approvalImgPro/child.vue +1 -1
  27. package/src/components/ApprovalRecord/approvalImgPro/index.vue +42 -5
  28. package/src/components/ApprovalRecord/index.vue +23 -6
  29. package/src/components/ApprovalRecord/indexApp.vue +79 -0
  30. package/src/components/AttachmentPass/index.vue +286 -0
  31. package/src/components/Button/button-group.vue +3 -1
  32. package/src/components/CascaderArea/index.vue +5 -6
  33. package/src/components/DatePicker/por.vue +31 -1
  34. package/src/components/DateSelect/quarterDatePicker.vue +23 -1
  35. package/src/components/Descriptions/index.vue +7 -3
  36. package/src/components/Dialog/index.vue +4 -0
  37. package/src/components/Diff/index.vue +4 -2
  38. package/src/components/DynamicField/DynamicField.vue +29 -6
  39. package/src/components/DynamicField/DynamicFieldMixin.js +13 -5
  40. package/src/components/DynamicField/DynamicFieldOptions.vue +135 -62
  41. package/src/components/DynamicField/DynamicTable.vue +11 -1
  42. package/src/components/DynamicField/contentPop.vue +110 -0
  43. package/src/components/DynamicField/tableList.vue +5 -1
  44. package/src/components/DynamicField/tableView.vue +143 -0
  45. package/src/components/ECharts/index.vue +15 -9
  46. package/src/components/Expandable/main.vue +17 -2
  47. package/src/components/FileImport/index.vue +4 -5
  48. package/src/components/FileUploadTable/FileUploadTableV3.vue +937 -0
  49. package/src/components/FileUploadTable/aiCheckDialog.vue +139 -0
  50. package/src/components/FileUploadTable/index.vue +251 -33
  51. package/src/components/FileUploadTable/jytg.svg +6 -0
  52. package/src/components/FileUploadTable/wsc.svg +3 -0
  53. package/src/components/FileUploadTable/ysc.svg +3 -0
  54. package/src/components/HandlingAdvice/index.vue +191 -0
  55. package/src/components/InputAccount/index.vue +105 -0
  56. package/src/components/InputNumber/index.vue +16 -4
  57. package/src/components/InputNumber/numberRange.vue +14 -0
  58. package/src/components/InputSearch/index.vue +8 -0
  59. package/src/components/Layout/HeaderWrap/changePwd.vue +50 -23
  60. package/src/components/Layout/HeaderWrap/index.vue +2 -2
  61. package/src/components/Layout/HeaderWrap/indexN.vue +296 -119
  62. package/src/components/Layout/SubContent/index.vue +45 -14
  63. package/src/components/Layout/indexN.vue +26 -5
  64. package/src/components/LoginTemporary/form.vue +126 -34
  65. package/src/components/LoginTemporary/index.vue +14 -3
  66. package/src/components/LoginTemporary/indexN.vue +35 -13
  67. package/src/components/Preview/index.vue +199 -0
  68. package/src/components/SelectDatePickerPro/customDatePicker.vue +7 -0
  69. package/src/components/SelectDatePickerPro/halfYearPicker.vue +165 -0
  70. package/src/components/SelectDatePickerPro/index.vue +44 -4
  71. package/src/components/SelectDatePickerPro/quarterDatePicker.vue +32 -10
  72. package/src/components/SelectTree/index.vue +10 -4
  73. package/src/components/SelectTree/pro.vue +3 -0
  74. package/src/components/ShowColumn/index copy 2.vue +545 -0
  75. package/src/components/ShowColumn/index copy.vue +566 -0
  76. package/src/components/ShowColumn/index.vue +11 -7
  77. package/src/components/Statis/statisItem.vue +8 -7
  78. package/src/components/Table/filters.js +13 -0
  79. package/src/components/Table/index.vue +4 -4
  80. package/src/components/TablePro/filterContent.vue +18 -8
  81. package/src/components/TablePro/index.js +41 -1
  82. package/src/components/TablePro/index.vue +117 -6
  83. package/src/components/TableProOperateColumn/OperateBtns.vue +11 -53
  84. package/src/components/TableProOperateColumn/OperateBtns_copy.vue +141 -0
  85. package/src/components/TableProOperateColumn/childrenOperateBtn.vue +108 -0
  86. package/src/components/TableProOperateColumn/index.vue +3 -6
  87. package/src/components/TableSetSize/index.vue +1 -1
  88. package/src/components/Tree/index.vue +21 -5
  89. package/src/components/Upload/index.vue +25 -10
  90. package/src/components/Upload/uploadMsg.vue +30 -25
  91. package/src/components/operatingStatus/index.vue +3 -4
  92. package/src/directives/VTitle/index.js +15 -5
  93. package/src/directives/watermark/index.js +140 -56
  94. package/src/i18n.json +146 -18
  95. package/src/index.js +31 -3
  96. package/src/plugins/Sign/CaMap.js +47 -8
  97. package/src/plugins/Sign/Itrus/index.js +1 -1
  98. package/src/plugins/Sign/Itrus/sign_3720.js +2 -1
  99. package/src/plugins/Sign/NetSM3/index.js +20 -11
  100. package/src/plugins/Sign/NetV3/index.js +163 -22
  101. package/src/plugins/Sign/SkfSign/index.js +55 -52
  102. package/src/plugins/Sign/bjca/index.js +229 -9
  103. package/src/plugins/Sign/hnca/index.js +5064 -0
  104. package/src/plugins/Sign/index.js +155 -103
  105. package/src/plugins/Sign/kySign/base64.js +160 -0
  106. package/src/plugins/Sign/kySign/hex.js +92 -0
  107. package/src/plugins/Sign/kySign/index.js +186 -0
  108. package/src/plugins/Sign/kySign/skf.js +937 -0
  109. package/src/plugins/Sign/kySign/test.html +463 -0
  110. package/src/plugins/Sign/sdca/index.js +73 -0
  111. package/src/plugins/Sign/sign.js +72 -52
  112. package/src/plugins/Sign/signV3/InfosecNetSignCNGAgent.min.js +1 -0
  113. package/src/plugins/Sign/signV3/sign.js +187 -0
  114. package/src/plugins/Sign/sign_back.js +172 -0
  115. package/src/utils/accountFormat.js +7 -0
  116. package/src/utils/asyncGetRelaNos.js +79 -46
  117. package/src/utils/axios.js +3 -5
  118. package/src/utils/i18n/index.js +1 -1
  119. package/src/utils/importGlobal.js +23 -12
  120. package/style/fonts/SIMSUN.5e0c362c.ttf +0 -0
  121. package/style/index.css +2 -2
  122. package/theme/blue.css +2 -2
  123. package/theme/cctcRed.css +2 -2
  124. package/theme/fonts/SIMSUN.5e0c362c.ttf +0 -0
  125. package/theme/green.css +2 -2
  126. package/theme/lightBlue.css +2 -2
  127. package/theme/orange.css +2 -2
  128. package/theme/purple.css +2 -2
  129. package/theme/red.css +2 -2
  130. package/theme/yellow.css +2 -2
@@ -0,0 +1,186 @@
1
+ import { Message, MessageBox, Notification } from 'element-ui'
2
+ import { hexToBase64 } from './base64'
3
+ import { stringToRawHex } from './hex'
4
+ import SKF from './skf'
5
+
6
+ /*
7
+ 获取证书列表接口:2.7.1 IWSASkfGetCertList (DllFilePath, SucceedFunction)
8
+ Attached签名接口:2.7.2 IWSASkfSignData (PlainText, CertIndex, UsbKeyPin, DigestArithmetic, SucceedFunction)
9
+ Attached 方式验签接口:2.7.4 IWSASkfVerifySignData (signedMsg ,SucceedFunction)
10
+ */
11
+ let {
12
+ SKF_EnumDev,
13
+ SKF_ConnectDev,
14
+ SKF_EnumApplication,
15
+ SKF_OpenApplication,
16
+ SKF_EnumContainer,
17
+ SKF_OpenContainer,
18
+ SKF_PKCS7SignData,
19
+ SKF_VerifyPIN,
20
+ SKF_ExportCertificate,
21
+ SKF_ParseCert
22
+ } = new SKF(location.port, 'http://127.0.0.1:2020/ssm/ukey/')
23
+
24
+ function IWSAGetAvailable() {
25
+ return true
26
+ }
27
+
28
+ function IWSASendAvailable() {
29
+ return true
30
+ }
31
+
32
+ function getDN() {
33
+ let dn
34
+ let userInfo = JSON.parse(sessionStorage.getItem('userInfo'))
35
+ if (userInfo && userInfo.dn) {
36
+ dn = userInfo.dn
37
+ }
38
+ return dn
39
+ }
40
+
41
+ /* 检测本地签名端口是否可用 */
42
+ export function availableSign(fn, url) {
43
+ let available = IWSAGetAvailable()
44
+ if (available) {
45
+ fn && fn(available)
46
+ } else {
47
+ IWSASendAvailable()
48
+ url || (url = '/portal/NetSignCNG-v2.1.152.2.exe')
49
+ let count = 0
50
+ checkAvailable(fn, url, count)
51
+ }
52
+ }
53
+
54
+ function checkAvailable() {
55
+ let name = window.NetSignDownloadName || '科友签名助手'
56
+ let url = '/portal/ukeyd_v2.0.17_386.exe'
57
+ Notification({
58
+ title: '提示',
59
+ dangerouslyUseHTMLString: true,
60
+ message: `<div>检测到您的电脑中没有安装签名助手,为了不影响使用请使用管理员权限<a class="color-primary" href="${url}" download>下载安装</a>${name}</div>`,
61
+ duration: 5000
62
+ })
63
+ }
64
+
65
+ // 签名
66
+ export async function getSign(plain, dn = getDN()) {
67
+ // 验证DN参数
68
+ if (!dn) {
69
+ Message.error('签名参数DN错误!')
70
+ return false
71
+ }
72
+ // 处理签名文本
73
+ const plainText =
74
+ typeof plain === 'object' ? hexToBase64(stringToRawHex(JSON.stringify(plain))) : hexToBase64(stringToRawHex(plain))
75
+ // 获取并验证证书信息
76
+ const checkRes = await getCertInfo(dn)
77
+ console.log('checkRes', checkRes)
78
+ if (checkRes === -1) {
79
+ return ''
80
+ }
81
+ // 获取PIN码并执行签名
82
+ try {
83
+ const { value: pin } = await MessageBox.prompt('请输入PIN码', '提示', {
84
+ confirmButtonText: '确定',
85
+ cancelButtonText: '取消',
86
+ closeOnClickModal: false,
87
+ inputType: 'password'
88
+ })
89
+
90
+ return await performSign(plainText, pin, checkRes)
91
+ } catch (error) {
92
+ return ''
93
+ }
94
+ }
95
+
96
+ /**
97
+ * 获取证书信息
98
+ * @param dn
99
+ * @returns {Promise<*>}
100
+ */
101
+ export async function getCertInfo(dn) {
102
+ return new Promise((resolve, reject) => {
103
+ let arg
104
+ if (
105
+ navigator.platform.toLowerCase().includes('linux') ||
106
+ navigator.userAgent.toLowerCase().includes('linux') ||
107
+ // 检查是否为银河麒麟特有的环境变量或特征
108
+ typeof window.KylinOS !== 'undefined' ||
109
+ document.documentElement.dataset.osType === 'kylin'
110
+ ) {
111
+ arg = window.VUE_APP_NetSign_ARG_Linux
112
+ } else {
113
+ arg = process.env.VUE_APP_NetSign_ARG || window.VUE_APP_NetSign_ARG || 'WTSKFInterface.dll'
114
+ }
115
+ // 获取证书列表
116
+ try {
117
+ var rv = SKF_EnumDev(1) // 1: 获取ukey列表
118
+ if (rv.DevList.length === 0) {
119
+ Message.error('没有检测到Ukey!')
120
+ resolve(-1)
121
+ return
122
+ }
123
+ } catch (error) {
124
+ checkAvailable()
125
+ resolve(-1)
126
+ return
127
+ }
128
+ const rvList = rv.DevList?.split(',')
129
+ let indexDn = -1
130
+ let Container = ''
131
+ let Application = ''
132
+ let DNList = []
133
+ rvList.forEach((item) => {
134
+ var rv1 = SKF_ConnectDev(item) // 连接设备
135
+ var rv2 = SKF_EnumApplication(rv1.DevHandle) // 获取容器
136
+ var rv3 = SKF_OpenApplication(rv1.DevHandle, rv2.ApplicationList)
137
+ var rv4 = SKF_EnumContainer(rv3.Application)
138
+ var rvList4 = rv4.ContainerList?.split(',')
139
+ rvList4.forEach((item2, index) => {
140
+ var rv5 = SKF_OpenContainer(rv3.Application, item2)
141
+ var rv6 = SKF_ExportCertificate(rv5.Container, true)
142
+ var rv7 = SKF_ParseCert(rv6.Cert)
143
+ DNList.push(rv7.Subject)
144
+ if (rv7.Subject === dn) {
145
+ indexDn = index
146
+ Container = rv5.Container
147
+ Application = rv3.Application
148
+ }
149
+ })
150
+ })
151
+ // 检测dn是否匹配
152
+ if (indexDn === -1) {
153
+ console.log(DNList)
154
+ // resolve(-1)
155
+ // Message.error('当前Ukey不匹配!')
156
+ resolve({ Container, Application })
157
+ } else {
158
+ resolve({ Container, Application })
159
+ }
160
+ })
161
+ }
162
+
163
+ /**
164
+ * 执行签名
165
+ * @param plainText
166
+ * @param value
167
+ * @returns {Promise<*>}
168
+ */
169
+ async function performSign(plainText, value, { Container, Application }) {
170
+ return new Promise((resolve, reject) => {
171
+ var rv5 = SKF_VerifyPIN(Application, 1, value)
172
+ console.log(rv5)
173
+ if (rv5.Status !== 0) {
174
+ Message.error('PIN码错误!')
175
+ reject()
176
+ return false
177
+ }
178
+ var rv7 = SKF_PKCS7SignData(Container, plainText)
179
+ if (rv7.Status === 0) {
180
+ resolve(rv7.Signature + '@@@' + Container)
181
+ } else {
182
+ Message.error('签名失败!')
183
+ reject()
184
+ }
185
+ })
186
+ }