@toolspack/ttd-common 0.4.7 → 0.5.0

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.
@@ -0,0 +1,338 @@
1
+ /* eslint-disable */
2
+ export function nmCryptokit(browser) {
3
+ this.browser = browser;
4
+ };
5
+
6
+ nmCryptokit.chromeExtension = "ldpdnooafijfamkammjmhjnnfblekpno";
7
+ nmCryptokit.edgeExtension = "odpbakhphoggmefmfppocigpfppblick";
8
+ nmCryptokit.productID = "com.cfca.cryptokit.totodi";
9
+
10
+ nmCryptokit.extensionName = nmCryptokit.productID + ".extension";
11
+ nmCryptokit.reqEventName = nmCryptokit.productID + ".request";
12
+ nmCryptokit.respEventName = nmCryptokit.productID + ".response";
13
+
14
+ nmCryptokit.Browser = {
15
+ IE: "Internet Explorer",
16
+ Edge: "Edge",
17
+ Edg: "Edge(Chromium)",
18
+ Chrome: "Chrome",
19
+ Safari: "Safari",
20
+ Firefox: "Firefox",
21
+ };
22
+
23
+ export function GenerateRandomId() {
24
+ var charstring = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890';
25
+ var maxPos = charstring.length;
26
+ var randomId = '';
27
+ for (var i = 0; i < 10; i++) {
28
+ randomId += charstring.charAt(Math.floor(Math.random() * maxPos));
29
+ }
30
+ return randomId;
31
+ }
32
+
33
+ window.nmCryptokit = nmCryptokit
34
+ // Encapsulate Chrome sendMessage callback to Promise
35
+ nmCryptokit.SendMessageforChrome = function(request) {
36
+ return new Promise( function (resolve, reject) {
37
+ chrome.runtime.sendMessage(nmCryptokit.chromeExtension, request, function (response) {
38
+ if (response) {
39
+ if(0 == response.errorcode){
40
+ resolve(response);
41
+ }
42
+ else{
43
+ reject(response);
44
+ }
45
+ }
46
+ else {
47
+ var result = new Object();
48
+ result.errorcode = 1;
49
+ result.result = chrome.runtime.lastError.message;
50
+ reject(result);
51
+ }
52
+ });
53
+ });
54
+ }
55
+
56
+ // Encapsulate Chrome sendMessage callback to Promise
57
+ nmCryptokit.SendMessageforEdge = function(request) {
58
+ return new Promise( function (resolve, reject) {
59
+ chrome.runtime.sendMessage(nmCryptokit.edgeExtension, request, function (response) {
60
+ if (response) {
61
+ if(0 == response.errorcode){
62
+ resolve(response);
63
+ }
64
+ else{
65
+ reject(response);
66
+ }
67
+ }
68
+ else {
69
+ var result = new Object();
70
+ result.errorcode = 1;
71
+ result.result = chrome.runtime.lastError.message;
72
+ reject(result);
73
+ }
74
+ });
75
+ });
76
+ }
77
+
78
+
79
+ // Encapsulate Edge&Firefox event to Promise
80
+ nmCryptokit.SendMessagebyEvent = function(request) {
81
+ var event = new CustomEvent(nmCryptokit.reqEventName, { detail: request });
82
+ document.dispatchEvent(event);
83
+
84
+ return new Promise( function (resolve, reject) {
85
+
86
+ var responseEventName = nmCryptokit.respEventName;
87
+ if(request.funcInfo != undefined && request.funcInfo.randomId != undefined)
88
+ responseEventName += ("." + request.funcInfo.randomId);
89
+
90
+ document.addEventListener(responseEventName, function CallBack(e) {
91
+ document.removeEventListener(e.type, CallBack);
92
+ var eJson = JSON.parse(e.detail);
93
+ if (null != eJson && 0 == eJson.errorcode) {
94
+ resolve(eJson);
95
+ }
96
+ else {
97
+ reject(eJson);
98
+ }
99
+ }, false);
100
+ });
101
+ }
102
+
103
+
104
+ nmCryptokit.SendMessage = function(browser, requestJSON) {
105
+ if (nmCryptokit.Browser.Chrome == browser) {
106
+ return nmCryptokit.SendMessageforChrome(requestJSON);
107
+ }
108
+ else if(nmCryptokit.Browser.Edg == browser) {
109
+ return nmCryptokit.SendMessageforEdge(requestJSON);
110
+ }
111
+ else {
112
+ return nmCryptokit.SendMessagebyEvent(requestJSON);
113
+ }
114
+ }
115
+
116
+
117
+ nmCryptokit.checkExtension = function(browser) {
118
+ return new Promise(function (resolve, reject) {
119
+ var result = new Object();
120
+ console.log('444', browser)
121
+ if (nmCryptokit.Browser.Chrome == browser || nmCryptokit.Browser.Edg == browser) {
122
+ // chrome.runtime.sendMessage() could check extension existence.
123
+
124
+ console.log('555', chrome)
125
+ if(chrome.runtime) {
126
+ resolve(browser);
127
+ }
128
+ else{
129
+ result.errorcode = 2;
130
+ result.result = "Extension does not exist!";
131
+ reject(result);
132
+ }
133
+ }
134
+ else if (nmCryptokit.Browser.Edge == browser || nmCryptokit.Browser.Firefox == browser) {
135
+ if (document.getElementById(nmCryptokit.extensionName)) {
136
+ resolve(browser);
137
+ }
138
+ else {
139
+ result.errorcode = 2;
140
+ result.result = "Extension does not exist!";
141
+ reject(result);
142
+ }
143
+ }
144
+ else{
145
+ result.errorcode = 3;
146
+ result.result = "Only support Chrome/Edge/Firefox";
147
+ reject(result);
148
+ }
149
+ });
150
+ }
151
+
152
+ nmCryptokit.prototype.init = function () {
153
+
154
+ var browser = this.browser;
155
+ console.log('2223', browser)
156
+
157
+ return nmCryptokit.checkExtension(browser)
158
+ .then(function (browser) {
159
+ var request = new Object();
160
+ request.action = "connect";
161
+ request.host = nmCryptokit.productID;
162
+ return nmCryptokit.SendMessage(browser, request);
163
+ }).then(function () {
164
+ var request = new Object();
165
+ var funcInfo = new Object();
166
+ var randomId = GenerateRandomId();
167
+
168
+ funcInfo.function = "GetLastErrorDesc";
169
+ funcInfo.params = null;
170
+ funcInfo.randomId = randomId;
171
+
172
+ request.action = "invoke";
173
+ request.funcInfo = funcInfo;
174
+
175
+ return nmCryptokit.SendMessage(browser, request);
176
+ });
177
+ }
178
+
179
+
180
+ nmCryptokit.prototype.uninit = function () {
181
+
182
+ var request = new Object();
183
+ request.action = "disconnect";
184
+ request.host = nmCryptokit.productID;
185
+
186
+ return nmCryptokit.SendMessage(this.browser, request);
187
+ }
188
+
189
+
190
+ nmCryptokit.prototype.getExtensionVersion = function ( ) {
191
+
192
+ var request = new Object();
193
+ var funcInfo = new Object();
194
+
195
+ funcInfo.function = "getExtensionVersion";
196
+ funcInfo.params = null;
197
+ request.action = "getExtensionVersion";
198
+ request.funcInfo = funcInfo;
199
+
200
+ return nmCryptokit.SendMessage(this.browser, request);
201
+ }
202
+
203
+
204
+ nmCryptokit.prototype.getHostVersion = function () {
205
+
206
+ var request = new Object();
207
+ var funcInfo = new Object();
208
+ var randomId = GenerateRandomId();
209
+
210
+ funcInfo.function = "GetVersion";
211
+ funcInfo.params = null;
212
+ funcInfo.randomId = randomId;
213
+
214
+ request.action = "invoke";
215
+ request.funcInfo = funcInfo;
216
+
217
+ return nmCryptokit.SendMessage(this.browser, request);
218
+ }
219
+
220
+
221
+ nmCryptokit.prototype.SelectCertificate = function (bstrSubjectDNFilter, bstrIssuerDNFilter, bstrSerialNumFilter, bstrCSPNameList) {
222
+
223
+ var request = new Object();
224
+ var funcInfo = new Object();
225
+ var paramArr = new Array();
226
+ var randomId = GenerateRandomId();
227
+
228
+ paramArr.push(bstrSubjectDNFilter);
229
+ paramArr.push(bstrIssuerDNFilter);
230
+ paramArr.push(bstrSerialNumFilter);
231
+ paramArr.push(bstrCSPNameList);
232
+
233
+ funcInfo.function = "SelectCertificate";
234
+ funcInfo.params = paramArr;
235
+ funcInfo.randomId = randomId;
236
+
237
+ request.action = "invoke";
238
+ request.funcInfo = funcInfo;
239
+
240
+ return nmCryptokit.SendMessage(this.browser, request);
241
+ }
242
+
243
+
244
+ nmCryptokit.prototype.GetSignCertInfo = function (bstrInfoType) {
245
+
246
+ var request = new Object();
247
+ var funcInfo = new Object();
248
+ var paramArr = new Array();
249
+ var randomId = GenerateRandomId();
250
+
251
+ paramArr.push(bstrInfoType);
252
+
253
+ funcInfo.function = "getSignCertInfo";
254
+ funcInfo.params = paramArr;
255
+ funcInfo.randomId = randomId;
256
+
257
+ request.action = "invoke";
258
+ request.funcInfo = funcInfo;
259
+
260
+ return nmCryptokit.SendMessage(this.browser, request);
261
+ }
262
+
263
+
264
+ nmCryptokit.prototype.SignMsgPKCS7 = function (bstrSourceData, bstrHashAlg, bWithSourceData) {
265
+
266
+ var request = new Object();
267
+ var funcInfo = new Object();
268
+ var paramArr = new Array();
269
+ var randomId = GenerateRandomId();
270
+
271
+ paramArr.push(bstrSourceData);
272
+ paramArr.push(bstrHashAlg);
273
+ paramArr.push(bWithSourceData);
274
+
275
+ funcInfo.function = "SignMsgPKCS7";
276
+ funcInfo.params = paramArr;
277
+ funcInfo.randomId = randomId;
278
+
279
+ request.action = "invoke";
280
+ request.funcInfo = funcInfo;
281
+
282
+ return nmCryptokit.SendMessage(this.browser, request);
283
+ }
284
+
285
+
286
+ nmCryptokit.prototype.SignHashMsgPKCS7Detached = function (bstrSourceData, bstrHashAlg) {
287
+
288
+ var request = new Object();
289
+ var funcInfo = new Object();
290
+ var paramArr = new Array();
291
+ var randomId = GenerateRandomId();
292
+
293
+ paramArr.push(bstrSourceData);
294
+ paramArr.push(bstrHashAlg);
295
+
296
+ funcInfo.function = "SignHashMsgPKCS7Detached";
297
+ funcInfo.params = paramArr;
298
+ funcInfo.randomId = randomId;
299
+
300
+ request.action = "invoke";
301
+ request.funcInfo = funcInfo;
302
+
303
+ return nmCryptokit.SendMessage(this.browser, request);
304
+ }
305
+
306
+
307
+ nmCryptokit.prototype.GetVersion = function () {
308
+
309
+ var request = new Object();
310
+ var funcInfo = new Object();
311
+ var randomId = GenerateRandomId();
312
+
313
+ funcInfo.function = "GetVersion";
314
+ funcInfo.params = null;
315
+ funcInfo.randomId = randomId;
316
+
317
+ request.action = "invoke";
318
+ request.funcInfo = funcInfo;
319
+
320
+ return nmCryptokit.SendMessage(this.browser, request);
321
+ }
322
+
323
+
324
+ nmCryptokit.prototype.GetLastErrorDesc = function () {
325
+
326
+ var request = new Object();
327
+ var funcInfo = new Object();
328
+ var randomId = GenerateRandomId();
329
+
330
+ funcInfo.function = "GetLastErrorDesc";
331
+ funcInfo.params = null;
332
+ funcInfo.randomId = randomId;
333
+
334
+ request.action = "invoke";
335
+ request.funcInfo = funcInfo;
336
+
337
+ return nmCryptokit.SendMessage(this.browser, request);
338
+ }
@@ -1,14 +0,0 @@
1
- <template>
2
- <div>
3
- <div>这是一个基础模板</div>
4
- </div>
5
- </template>
6
- <script>
7
- export default {
8
- data() {
9
- return {}
10
- },
11
- created() {},
12
- methods: {},
13
- }
14
- </script>
@@ -1,178 +0,0 @@
1
- <template>
2
- <div class="main-wrapper flex">
3
- <div class="flex-item">
4
- <div class="page-title">
5
- <span class="back-btn" @click="$router.go(-1)">
6
- <i class="return"></i>
7
- </span>
8
- <span>标签配置</span>
9
- </div>
10
- <div class="page-content">
11
- <div class="content-main">
12
- <div class="border-line">
13
- <div class="body-con">
14
- <div class="contract-con">
15
- <div class="title-con" style="position: relative">
16
- <div style="text-align: center">
17
- <switch-page @page="page = $event" :numPages="numPages"></switch-page>
18
- </div>
19
- </div>
20
- <div class="pdf-box">
21
- <pdf-view
22
- :pdfurl="fileUrl.url"
23
- :showPages="false"
24
- :border="true"
25
- :scale="1.5"
26
- :page="page"
27
- @size="onSize"
28
- @numPages="numPages = $event"
29
- >
30
- <ttd-label-make
31
- :labelViewData="labelContent"
32
- :labelCurrent="itemObj"
33
- :page="page"
34
- @getLabelData="getLabelData"
35
- :labelView="labelView"
36
- >
37
- <el-form-item class="remark-wrapper" label="是否换222行" prop="isMultiline">
38
- <el-select v-model="formData.isMultiline">
39
- <el-option label="单行" :value="0"></el-option>
40
- <el-option label="多行" :value="1"></el-option>
41
- </el-select>
42
- </el-form-item>
43
- <el-form-item class="remark-wrapper" label="是否换33行" prop="isMultiline">
44
- <el-select v-model="formData.isMultiline">
45
- <el-option label="单行" :value="0"></el-option>
46
- <el-option label="多行" :value="1"></el-option>
47
- </el-select>
48
- </el-form-item>
49
- </ttd-label-make>
50
- </pdf-view>
51
- </div>
52
- </div>
53
- <div class="label-done">
54
- <ttd-label-operate
55
- :showSelectLabel="false"
56
- :operateConfig="operateConfig"
57
- :labelData="labelData"
58
- @getSignItem="getSignItem"
59
- >
60
- <search-label @emit-label="getSignItem" />
61
- </ttd-label-operate>
62
- </div>
63
- </div>
64
- </div>
65
- </div>
66
- </div>
67
- </div>
68
- <div class="page-bottom">
69
- <el-button @click="onCancel" style="width: 120px;">返 回</el-button>
70
- <el-button @click="onSubmit" type="primary" style="width: 120px;">提 交</el-button>
71
- </div>
72
- </div>
73
- </template>
74
-
75
- <script>
76
-
77
- import { labelsManager, labelsInvestor } from './labels';
78
-
79
- export default {
80
- data() {
81
- return {
82
- typeId: this.$route.query.id,
83
- modelInfo: {},
84
- fileUrl: {},
85
- itemObj: null,
86
- currentView: '',
87
- page: 1,
88
- numPages: 0,
89
- textLabelList: [],
90
- inputNameList: [],
91
- labelData: [], // 将要提交的所有标签数据
92
- labelView: 0,
93
- labelContent: [],
94
-
95
- sureBack: false,
96
- operateConfig: [],
97
- viewport: null,
98
- formData: {},
99
- };
100
- },
101
- created() {
102
- this.getModelDetail()
103
- },
104
- methods: {
105
- async onCancel() {
106
- await this.$confirm('您确定不保留本次配置结果?', '提示')
107
- this.$router.go(-1);
108
- },
109
- getLabelData(labelData) {
110
- this.labelData = labelData;
111
- this.itemObj = null
112
- },
113
-
114
- getSignItem(type) {
115
- console.log('getSignItem=', type)
116
- this.itemObj = type;
117
- },
118
- onSize(viewport, page) {
119
- this.viewport = viewport
120
- console.log('viewport', viewport)
121
- console.log('page', page)
122
- },
123
-
124
- getModelDetail() {
125
- this.fileUrl.url = 'https://wsp.totodi.com/visit/totodi-other/20210617-c71f4fc934ba4fb68d053e6960021c75-otocol.pdf?expireDataTime=1637835905131';
126
- this.operateConfig = [labelsManager, labelsInvestor]
127
- },
128
-
129
- onSubmit() {
130
- if (this.hasLabel()) {
131
- const labelDetails = [];
132
- const signDetails = [];
133
- this.labelData.forEach((element) => {
134
- const { xAxis, yAxis } = element
135
- // const xLocation = Math.round(xAxis / 1.5)
136
- // ttd-label-make 里计算的左边已经加了 标签高度
137
- // const yLocation = Math.round((this.viewport.height - yAxis) / 1.5)
138
- if (element.shape === 2 || element.shape === 4) {
139
- signDetails.push(
140
- {
141
- ...element,
142
- signLocationType: 3, // 签章定位方式:1:关键字定位 3:坐标 5:骑缝章
143
- locationPage: element.pageIndex, // 页码(签章定位方式。)
144
- xLocation: xAxis, // x坐标
145
- yLocation: yAxis, // y坐标
146
- stampType: element.sealTag || element.stampType,
147
- },
148
- )
149
- } else {
150
- // 合并标签的 是妥妥递做的,合章(待证书)是cfca做的,
151
- // cfca 是以左下角为原点
152
- labelDetails.push(
153
- {
154
- ...element,
155
- aliasName: element.labelAlias, // 标记域描述(对应文本标签的标签)
156
- labelType: 1, // 标记类型。1:text
157
- isMust: '1', // 0非必填,1必填
158
- labelContent: null, // 扩展内容。labelType为1,5可不填写
159
- isMultiline: 0, // 是否换行 1--是 0--否
160
- },
161
- )
162
- }
163
- });
164
- console.log(JSON.stringify(labelDetails), JSON.stringify(signDetails))
165
- } else {
166
- this.$alert(
167
- '根据模板配置的签约方,尚有未完成配置的印章或签名标签,请完成配置后提交',
168
- '提示',
169
- );
170
- }
171
- },
172
- },
173
- };
174
- </script>
175
-
176
- <style lang="less">
177
- @import "./MakelLabel.less";
178
- </style>
@@ -1,162 +0,0 @@
1
- .index {
2
- overflow: hidden;
3
- padding-bottom: 20px;
4
- }
5
-
6
- .input-list {
7
- float: left;
8
- margin-left: 40px;
9
- }
10
-
11
- .input-list>div {
12
- margin-bottom: 40px;
13
- }
14
-
15
- .title {
16
- height: 50px;
17
- line-height: 50px;
18
- border-bottom: 1px solid #ccc;
19
- }
20
-
21
- .title h4 {
22
- float: left;
23
- }
24
-
25
- .title i {
26
- float: right;
27
- }
28
-
29
- .border-line {
30
- margin-top: 16px;
31
- }
32
-
33
- .body-con {
34
- overflow: hidden;
35
- min-width: 1260px;
36
- display: table-row;
37
- }
38
-
39
- .title-con {
40
- padding: 0 20px;
41
- font-size: 14px;
42
- text-align: left;
43
- line-height: 50px;
44
- border-bottom: 1px solid #ccc;
45
- display: table-cell;
46
- vertical-align: top;
47
- }
48
-
49
- .contract-con {
50
- min-width: 800px;
51
- font-size: 16px;
52
- text-align: center;
53
- border: 1px solid #ccc;
54
- box-sizing: border-box;
55
- margin-right: 20px;
56
- }
57
-
58
- .label-done {
59
- margin-left: 16px;
60
- display: table-cell;
61
- vertical-align: top;
62
- }
63
-
64
- .label-list {
65
- margin: 10px auto;
66
- padding: 10px 0;
67
- text-align: center;
68
- width: 300px;
69
- border: 1px solid #ccc;
70
- }
71
-
72
- .label-list .label-item {
73
- margin-bottom: 20px;
74
- }
75
-
76
- .label-list .label-item .btn {
77
- width: 240px;
78
- }
79
-
80
- .input-width {
81
- width: 200px;
82
- }
83
-
84
- .label-write {
85
- padding: 20px 0px;
86
- border-top: 1px dashed #ccc;
87
- }
88
-
89
- .foot-submit {
90
- text-align: center;
91
- }
92
-
93
- .gongzhang {
94
- margin: auto;
95
- width: 150px;
96
- height: 150px;
97
- border-radius: 50%;
98
- overflow: hidden;
99
- }
100
-
101
- .gongzhang img {
102
- width: 100%;
103
- height: 100%;
104
- }
105
-
106
- .label-name {
107
- margin-top: 10px;
108
- color: #20a0ff;
109
- font-size: 14px;
110
- }
111
-
112
- .pdf-box {
113
- position: relative;
114
- display: inline-block;
115
- }
116
-
117
- .pdf-box .tag {
118
- position: absolute;
119
- z-index: 999;
120
- top: 0;
121
- display: none;
122
- }
123
-
124
- .allSign {
125
- margin-bottom: 20px;
126
- }
127
-
128
- .view-btn {
129
- width: 40px;
130
- height: 20px;
131
- background: none;
132
- font-size: 12px !important;
133
- border: 1px solid #3d82f7;
134
- text-align: center;
135
- line-height: 20px;
136
- font-size: 14px;
137
- border-radius: 2px;
138
- padding: 0;
139
- color: #3d82f7;
140
- float: right;
141
- cursor: pointer;
142
- outline: none;
143
- }
144
-
145
- /*.pdf-box:hover .tag {*/
146
- /*display: block !important;*/
147
- /*}*/
148
-
149
- .close {
150
- width: 20px;
151
- height: 20px;
152
- border-radius: 50%;
153
- position: absolute;
154
- top: -10px;
155
- right: -10px;
156
- background: coral;
157
- color: #fff;
158
- transform: rotateZ(45deg);
159
- text-align: center;
160
- line-height: 20px;
161
- cursor: pointer;
162
- }