cloudcc-ccdk 0.3.2 → 0.3.3

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 (4) hide show
  1. package/README.md +217 -207
  2. package/lib/ccdk.js +598 -575
  3. package/lib/ccdk.min.js +1 -1
  4. package/package.json +29 -29
package/lib/ccdk.js CHANGED
@@ -5,69 +5,69 @@ import axios from 'axios';
5
5
  import { Message, MessageBox, Notification } from 'cloudcc-ui';
6
6
  import Cookies from 'js-cookie';
7
7
 
8
- /**
9
- * 加密
10
- * @param {String} data 数据
11
- * @param {String} key 密钥
12
- * @param {String} iv 偏移量
13
- * @returns
14
- */
15
- function getAesString(data, key, iv) {
16
- key = UTF8.parse(key);
17
- iv = UTF8.parse(iv);
18
- let encrypted = CryptoJS.encrypt(data, key, {
19
- iv: iv,
20
- padding: PAD,
21
- });
22
- return encrypted.toString(); //返回的是base64格式的密文
23
- }
24
-
25
- /**
26
- * 解密
27
- * @param {String} encrypted 密文
28
- * @param {String} key 密钥
29
- * @param {String} iv 偏移量
30
- * @returns
31
- */
32
- function getDAesString(encrypted, key, iv) {
33
- key = UTF8.parse(key);
34
- iv = UTF8.parse(iv);
35
- let decrypted = CryptoJS.decrypt(encrypted, key, {
36
- iv: iv,
37
- padding: PAD,
38
- });
39
- return decrypted.toString(UTF8);
40
- }
41
-
42
- /**
43
- * CryptoJS加密
44
- * @param {String} data 数据
45
- * @param {String} key 密钥
46
- * @param {String} iv 偏移量
47
- * @returns 加密的数据
48
- */
49
- function encrypt(data, key = "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", iv = 1) {
50
- data = JSON.stringify(data);
51
- var encrypted = getAesString(data, key, iv); //密文
52
- return encrypted;
53
- }
54
-
55
- /**
56
- * CryptoJS解密
57
- * @param {String} data 加密的数据
58
- * @param {String} key 密钥
59
- * @param {String} iv 偏移量
60
- * @returns 解密的数据
61
- */
62
- function decrypt(data, key = "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", iv = 1) {
63
- try {
64
- var decryptedStr = getDAesString(data, key, iv);
65
- if (!decryptedStr) return null
66
- return JSON.parse(decryptedStr);
67
- } catch (error) {
68
- console.trace("解密密码错误", error);
69
- return null;
70
- }
8
+ /**
9
+ * 加密
10
+ * @param {String} data 数据
11
+ * @param {String} key 密钥
12
+ * @param {String} iv 偏移量
13
+ * @returns
14
+ */
15
+ function getAesString(data, key, iv) {
16
+ key = UTF8.parse(key);
17
+ iv = UTF8.parse(iv);
18
+ let encrypted = CryptoJS.encrypt(data, key, {
19
+ iv: iv,
20
+ padding: PAD,
21
+ });
22
+ return encrypted.toString(); //返回的是base64格式的密文
23
+ }
24
+
25
+ /**
26
+ * 解密
27
+ * @param {String} encrypted 密文
28
+ * @param {String} key 密钥
29
+ * @param {String} iv 偏移量
30
+ * @returns
31
+ */
32
+ function getDAesString(encrypted, key, iv) {
33
+ key = UTF8.parse(key);
34
+ iv = UTF8.parse(iv);
35
+ let decrypted = CryptoJS.decrypt(encrypted, key, {
36
+ iv: iv,
37
+ padding: PAD,
38
+ });
39
+ return decrypted.toString(UTF8);
40
+ }
41
+
42
+ /**
43
+ * CryptoJS加密
44
+ * @param {String} data 数据
45
+ * @param {String} key 密钥
46
+ * @param {String} iv 偏移量
47
+ * @returns 加密的数据
48
+ */
49
+ function encrypt(data, key = "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", iv = 1) {
50
+ data = JSON.stringify(data);
51
+ var encrypted = getAesString(data, key, iv); //密文
52
+ return encrypted;
53
+ }
54
+
55
+ /**
56
+ * CryptoJS解密
57
+ * @param {String} data 加密的数据
58
+ * @param {String} key 密钥
59
+ * @param {String} iv 偏移量
60
+ * @returns 解密的数据
61
+ */
62
+ function decrypt(data, key = "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", iv = 1) {
63
+ try {
64
+ var decryptedStr = getDAesString(data, key, iv);
65
+ if (!decryptedStr) return null
66
+ return JSON.parse(decryptedStr);
67
+ } catch (error) {
68
+ console.trace("解密密码错误", error);
69
+ return null;
70
+ }
71
71
  }
72
72
 
73
73
  var Crypto = /*#__PURE__*/Object.freeze({
@@ -76,27 +76,27 @@ var Crypto = /*#__PURE__*/Object.freeze({
76
76
  decrypt: decrypt
77
77
  });
78
78
 
79
- // 当前应用存储标识
80
- const APPLICATION_DETAIL = 'applicaton_current';
81
- /**
82
- * 获得当前访问的应用对象
83
- */
84
- function getApplicaton() {
85
- let detail = localStorage.getItem(Crypto.encrypt(APPLICATION_DETAIL));
86
- if (detail) {
87
- return JSON.parse(detail)
88
- }
89
- return ''
90
- }
91
-
92
- /**
93
- * 设置应用对象信息
94
- * @param {object} detail 应用对象
95
- */
96
- function setApplication(detail = '') {
97
- if (detail) {
98
- localStorage.setItem(Crypto.encrypt(APPLICATION_DETAIL), JSON.stringify(detail));
99
- }
79
+ // 当前应用存储标识
80
+ const APPLICATION_DETAIL = 'applicaton_current';
81
+ /**
82
+ * 获得当前访问的应用对象
83
+ */
84
+ function getApplicaton() {
85
+ let detail = localStorage.getItem(Crypto.encrypt(APPLICATION_DETAIL));
86
+ if (detail) {
87
+ return JSON.parse(detail)
88
+ }
89
+ return ''
90
+ }
91
+
92
+ /**
93
+ * 设置应用对象信息
94
+ * @param {object} detail 应用对象
95
+ */
96
+ function setApplication(detail = '') {
97
+ if (detail) {
98
+ localStorage.setItem(Crypto.encrypt(APPLICATION_DETAIL), JSON.stringify(detail));
99
+ }
100
100
  }
101
101
 
102
102
  var CCApplication = /*#__PURE__*/Object.freeze({
@@ -105,28 +105,28 @@ var CCApplication = /*#__PURE__*/Object.freeze({
105
105
  setApplication: setApplication
106
106
  });
107
107
 
108
- /**
109
- * 发布信息
110
- * @param {string} event 事件名称
111
- * @param {...any} args 参数列表
112
- */
113
- function $emit(event, ...args) {
114
- window.ccBus.$emit(event, ...args);
115
- }
116
- /**
117
- * 订阅消息
118
- * @param {string} event 事件名称
119
- * @param {function} callback 回调方法
120
- */
121
- function $on(event, callback) {
122
- window.ccBus.$on(event, callback);
123
- }
124
- /**
125
- * 取消订阅
126
- * @param {string} event 事件名称
127
- */
128
- function $off(event) {
129
- window.ccBus.$off(event);
108
+ /**
109
+ * 发布信息
110
+ * @param {string} event 事件名称
111
+ * @param {...any} args 参数列表
112
+ */
113
+ function $emit(event, ...args) {
114
+ window.ccBus.$emit(event, ...args);
115
+ }
116
+ /**
117
+ * 订阅消息
118
+ * @param {string} event 事件名称
119
+ * @param {function} callback 回调方法
120
+ */
121
+ function $on(event, callback) {
122
+ window.ccBus.$on(event, callback);
123
+ }
124
+ /**
125
+ * 取消订阅
126
+ * @param {string} event 事件名称
127
+ */
128
+ function $off(event) {
129
+ window.ccBus.$off(event);
130
130
  }
131
131
 
132
132
  var CCBus = /*#__PURE__*/Object.freeze({
@@ -136,57 +136,57 @@ var CCBus = /*#__PURE__*/Object.freeze({
136
136
  $off: $off
137
137
  });
138
138
 
139
- // 电话对象
140
- let ccCall = new Map();
141
- // 电话服务商当前对象
142
- let currentCall;
143
- /**
144
- * 初始化电话条
145
- * @param {string} id 电话服务商唯一标识
146
- * @param {object} callClient 电话对象
147
- */
148
- function init(id, callClient) {
149
- if (id && callClient) {
150
- ccCall.set(id, callClient);
151
- currentCall = callClient;
152
- return currentCall
153
- }
154
- }
155
-
156
-
157
- /**
158
- * 拨打电话
159
- * @param {string} id 电话服务商唯一标识
160
- * @param {object} options 配置信息
161
- */
162
- function call(id, options) {
163
- let call;
164
- if (id) {
165
- call = ccCall.get(id);
166
- } else {
167
- call = currentCall;
168
- }
169
- if (call) {
170
- call.call(options);
171
- }
172
- return call
173
- }
174
- /**
175
- * 打开通话面板
176
- * @param {string} id 电话服务商唯一标识
177
- * @param {object} options 配置信息
178
- */
179
- function openCallPanel(id, options) {
180
- let call;
181
- if (id) {
182
- call = ccCall.get(id);
183
- } else {
184
- call = currentCall;
185
- }
186
- if (call) {
187
- call.openCallPanel(options);
188
- }
189
- return call
139
+ // 电话对象
140
+ let ccCall = new Map();
141
+ // 电话服务商当前对象
142
+ let currentCall;
143
+ /**
144
+ * 初始化电话条
145
+ * @param {string} id 电话服务商唯一标识
146
+ * @param {object} callClient 电话对象
147
+ */
148
+ function init(id, callClient) {
149
+ if (id && callClient) {
150
+ ccCall.set(id, callClient);
151
+ currentCall = callClient;
152
+ return currentCall
153
+ }
154
+ }
155
+
156
+
157
+ /**
158
+ * 拨打电话
159
+ * @param {string} id 电话服务商唯一标识
160
+ * @param {object} options 配置信息
161
+ */
162
+ function call(id, options) {
163
+ let call;
164
+ if (id) {
165
+ call = ccCall.get(id);
166
+ } else {
167
+ call = currentCall;
168
+ }
169
+ if (call) {
170
+ call.call(options);
171
+ }
172
+ return call
173
+ }
174
+ /**
175
+ * 打开通话面板
176
+ * @param {string} id 电话服务商唯一标识
177
+ * @param {object} options 配置信息
178
+ */
179
+ function openCallPanel(id, options) {
180
+ let call;
181
+ if (id) {
182
+ call = ccCall.get(id);
183
+ } else {
184
+ call = currentCall;
185
+ }
186
+ if (call) {
187
+ call.openCallPanel(options);
188
+ }
189
+ return call
190
190
  }
191
191
 
192
192
  var CCCall = /*#__PURE__*/Object.freeze({
@@ -196,26 +196,26 @@ var CCCall = /*#__PURE__*/Object.freeze({
196
196
  openCallPanel: openCallPanel
197
197
  });
198
198
 
199
- /**
200
- * 获取基础url
201
- * @returns 基础地址
202
- */
203
- function getBaseUrl() {
204
- return window.gw.BASE_URL
205
- }
206
- /**
207
- * 获取网关对象
208
- * @returns 网关对象
209
- */
210
- function getGw() {
211
- return window.gw;
212
- }
213
- /**
214
- * 获取服务对象
215
- * @returns 服务对象
216
- */
217
- function getSvc() {
218
- return window.Glod;
199
+ /**
200
+ * 获取基础url
201
+ * @returns 基础地址
202
+ */
203
+ function getBaseUrl() {
204
+ return window.gw.BASE_URL
205
+ }
206
+ /**
207
+ * 获取网关对象
208
+ * @returns 网关对象
209
+ */
210
+ function getGw() {
211
+ return window.gw;
212
+ }
213
+ /**
214
+ * 获取服务对象
215
+ * @returns 服务对象
216
+ */
217
+ function getSvc() {
218
+ return window.Glod;
219
219
  }
220
220
 
221
221
  var CCConfig = /*#__PURE__*/Object.freeze({
@@ -225,76 +225,76 @@ var CCConfig = /*#__PURE__*/Object.freeze({
225
225
  getSvc: getSvc
226
226
  });
227
227
 
228
- const service = axios.create({
229
- timeout: 60000,
230
- headers: {
231
- 'Content-Type': 'application/json; charset=utf-8',
232
- },
233
- });
234
-
235
- service.interceptors.request.use(
236
- config => {
237
- config.headers['accessToken'] = $CCDK.CCToken.getToken();
238
- return config
239
- },
240
- error => {
241
- Promise.reject(error);
242
- }
243
- );
244
-
245
- service.interceptors.response.use(
246
- response => {
247
- const code = response.data.code || 200;
248
- if (code !== 200) {
249
- return Promise.reject(null == response.data.msg ? "未知异常" : response.data.msg)
250
- } else {
251
- return response.data
252
- }
253
- },
254
- error => {
255
- return Promise.reject(error)
256
- }
257
- );
258
- function get(url, data = {}, responseType = '') {
259
- return service({
260
- url: url,
261
- method: 'get',
262
- params: data,
263
- responseType: responseType
264
- })
265
- }
266
-
267
- function post(url, data = {}, responseType = '') {
268
- return service({
269
- url: url,
270
- method: 'post',
271
- data: data,
272
- responseType: responseType
273
- })
274
- }
275
-
276
- function put(url, data = {}) {
277
- return service({
278
- url: url,
279
- method: 'put',
280
- data: data
281
- })
282
- }
283
-
284
- function postParams(url, data = {}) {
285
- return service({
286
- url: url,
287
- method: 'post',
288
- params: data
289
- })
290
- }
291
-
292
- function patch(url, data = {}) {
293
- return service({
294
- url: url,
295
- method: 'patch',
296
- data: data
297
- })
228
+ const service = axios.create({
229
+ timeout: 60000,
230
+ headers: {
231
+ 'Content-Type': 'application/json; charset=utf-8',
232
+ },
233
+ });
234
+
235
+ service.interceptors.request.use(
236
+ config => {
237
+ config.headers['accessToken'] = $CCDK.CCToken.getToken();
238
+ return config
239
+ },
240
+ error => {
241
+ Promise.reject(error);
242
+ }
243
+ );
244
+
245
+ service.interceptors.response.use(
246
+ response => {
247
+ const code = response.data.code || 200;
248
+ if (code !== 200) {
249
+ return Promise.reject(null == response.data.msg ? "未知异常" : response.data.msg)
250
+ } else {
251
+ return response.data
252
+ }
253
+ },
254
+ error => {
255
+ return Promise.reject(error)
256
+ }
257
+ );
258
+ function get(url, data = {}, responseType = '') {
259
+ return service({
260
+ url: url,
261
+ method: 'get',
262
+ params: data,
263
+ responseType: responseType
264
+ })
265
+ }
266
+
267
+ function post(url, data = {}, responseType = '') {
268
+ return service({
269
+ url: url,
270
+ method: 'post',
271
+ data: data,
272
+ responseType: responseType
273
+ })
274
+ }
275
+
276
+ function put(url, data = {}) {
277
+ return service({
278
+ url: url,
279
+ method: 'put',
280
+ data: data
281
+ })
282
+ }
283
+
284
+ function postParams(url, data = {}) {
285
+ return service({
286
+ url: url,
287
+ method: 'post',
288
+ params: data
289
+ })
290
+ }
291
+
292
+ function patch(url, data = {}) {
293
+ return service({
294
+ url: url,
295
+ method: 'patch',
296
+ data: data
297
+ })
298
298
  }
299
299
 
300
300
  var CCHttp = /*#__PURE__*/Object.freeze({
@@ -306,47 +306,47 @@ var CCHttp = /*#__PURE__*/Object.freeze({
306
306
  postParams: postParams
307
307
  });
308
308
 
309
- /**
310
- * 添加一个一级菜单
311
- * @param {object} options 菜单配置
312
- */
313
- function addMenu1(options) {
314
- $CCDK.CCBus.$emit('addMenu1', options);
315
- }
316
- /**
317
- * 添加一个二级菜单
318
- * @param {object} options 菜单配置
319
- */
320
- function addMenu2(options) {
321
- $CCDK.CCBus.$emit('addMenu2', options);
322
- }
323
- /**
324
- * 删除一个一级菜单
325
- * @param {object} options 菜单配置
326
- */
327
- function deleteMenu1(options) {
328
- $CCDK.CCBus.$emit('deleteMenu1', options);
329
- }
330
- /**
331
- * 删除一个二级菜单
332
- * @param {object} options 菜单配置
333
- */
334
- function deleteMenu2(options) {
335
- $CCDK.CCBus.$emit('deleteMenu2', options);
336
- }
337
- /**
338
- * 刷新一个一级菜单
339
- * @param {object} options 菜单配置
340
- */
341
- function refreshMenu1(options) {
342
- $CCDK.CCBus.$emit('refreshMenu1', options);
343
- }
344
- /**
345
- * 刷新一个二级菜单
346
- * @param {object} options 菜单配置
347
- */
348
- function refreshMenu2(options) {
349
- $CCDK.CCBus.$emit('refreshMenu2', options);
309
+ /**
310
+ * 添加一个一级菜单
311
+ * @param {object} options 菜单配置
312
+ */
313
+ function addMenu1(options) {
314
+ $CCDK.CCBus.$emit('addMenu1', options);
315
+ }
316
+ /**
317
+ * 添加一个二级菜单
318
+ * @param {object} options 菜单配置
319
+ */
320
+ function addMenu2(options) {
321
+ $CCDK.CCBus.$emit('addMenu2', options);
322
+ }
323
+ /**
324
+ * 删除一个一级菜单
325
+ * @param {object} options 菜单配置
326
+ */
327
+ function deleteMenu1(options) {
328
+ $CCDK.CCBus.$emit('deleteMenu1', options);
329
+ }
330
+ /**
331
+ * 删除一个二级菜单
332
+ * @param {object} options 菜单配置
333
+ */
334
+ function deleteMenu2(options) {
335
+ $CCDK.CCBus.$emit('deleteMenu2', options);
336
+ }
337
+ /**
338
+ * 刷新一个一级菜单
339
+ * @param {object} options 菜单配置
340
+ */
341
+ function refreshMenu1(options) {
342
+ $CCDK.CCBus.$emit('refreshMenu1', options);
343
+ }
344
+ /**
345
+ * 刷新一个二级菜单
346
+ * @param {object} options 菜单配置
347
+ */
348
+ function refreshMenu2(options) {
349
+ $CCDK.CCBus.$emit('refreshMenu2', options);
350
350
  }
351
351
 
352
352
  var CCMenu = /*#__PURE__*/Object.freeze({
@@ -359,43 +359,43 @@ var CCMenu = /*#__PURE__*/Object.freeze({
359
359
  refreshMenu2: refreshMenu2
360
360
  });
361
361
 
362
- /**
363
- * 消息提示框
364
- * @param {string} text 提示文字,支持vhtml渲染
365
- * @param {string} type 消息类别
366
- * @param {number} duration 持续时间
367
- * @param {boolean} showClose 是否显示消息关闭按钮
368
- * @param {boolean} center 文字是否剧中
369
- */
370
- function showMessage(text, type = 'info', duration = 3000, showClose = false, center = false) {
371
- Message({
372
- message: text,
373
- type,
374
- duration,
375
- showClose,
376
- center
377
- });
378
- }
379
- /**
380
- * 提示确认框
381
- * @param {string} text 提示信息
382
- * @param {string} title 标题
383
- * @param {object} options 配置信息
384
- */
385
- function showConfirm(text, title, options = {}, confirm = () => { }, reject = () => { }) {
386
- MessageBox.confirm(text, title, options).then(() => {
387
- confirm();
388
- }).catch(() => {
389
- reject();
390
- });
391
- }
392
-
393
- /**
394
- * 提示消息框
395
- * @param {object} options 配置信息
396
- */
397
- function showNotification(options = {}) {
398
- Notification(options);
362
+ /**
363
+ * 消息提示框
364
+ * @param {string} text 提示文字,支持vhtml渲染
365
+ * @param {string} type 消息类别
366
+ * @param {number} duration 持续时间
367
+ * @param {boolean} showClose 是否显示消息关闭按钮
368
+ * @param {boolean} center 文字是否剧中
369
+ */
370
+ function showMessage(text, type = 'info', duration = 3000, showClose = false, center = false) {
371
+ Message({
372
+ message: text,
373
+ type,
374
+ duration,
375
+ showClose,
376
+ center
377
+ });
378
+ }
379
+ /**
380
+ * 提示确认框
381
+ * @param {string} text 提示信息
382
+ * @param {string} title 标题
383
+ * @param {object} options 配置信息
384
+ */
385
+ function showConfirm(text, title, options = {}, confirm = () => { }, reject = () => { }) {
386
+ MessageBox.confirm(text, title, options).then(() => {
387
+ confirm();
388
+ }).catch(() => {
389
+ reject();
390
+ });
391
+ }
392
+
393
+ /**
394
+ * 提示消息框
395
+ * @param {object} options 配置信息
396
+ */
397
+ function showNotification(options = {}) {
398
+ Notification(options);
399
399
  }
400
400
 
401
401
  var CCMessage = /*#__PURE__*/Object.freeze({
@@ -405,78 +405,78 @@ var CCMessage = /*#__PURE__*/Object.freeze({
405
405
  showNotification: showNotification
406
406
  });
407
407
 
408
- // 对象详情存储标识
409
- const OBJECT_DETAIL = 'cc_object_detail';
410
- // 对象存储标识
411
- const OBJECT = 'cc_object';
412
-
413
- /**
414
- * 获得当前标准对象信息
415
- */
416
- function getObject( ) {
417
- let detail = localStorage.getItem(Crypto.encrypt(OBJECT));
418
- if (detail) {
419
- return JSON.parse(detail)
420
- }
421
- return ''
422
- }
423
-
424
- /**
425
- * 设置当前标准对象信息
426
- * @param {object} detail 对象数据
427
- */
428
- function setObject(detail = '') {
429
- if (detail) {
430
- localStorage.setItem(Crypto.encrypt(OBJECT), JSON.stringify(detail));
431
- }
432
- }
433
-
434
- /**
435
- * 获得当前标准对象的详细信息
436
- * @param {String} apiname: 查找字段的apiname
437
- */
438
- function getObjectDetail(apiname) {
439
- let detail = localStorage.getItem(Crypto.encrypt(OBJECT_DETAIL));
440
- if (detail) {
441
- if(apiname){
442
- let detail = JSON.parse(detail).detail;
443
- let targetField = undefined;
444
- if(Array.isArray(detail)){
445
- targetField = detail.find(item=>item.apiname===apiname);
446
- }
447
- return targetField
448
- }else {
449
- return JSON.parse(detail)
450
- }
451
- }
452
- return ''
453
- }
454
-
455
- /**
456
- * 设置当前标准对象的详细信息,默认两个小时有效期
457
- * @param {object} detail 对象详细数据
458
- */
459
- function setObjectDetail(detail = '') {
460
- if (detail) {
461
- // 减少detail.detail层级
462
- if(Array.isArray(detail.detail)){
463
- let data = [];
464
- detail.detail.forEach(item=>{
465
- if(item && Array.isArray(item.data)){
466
- item.data.forEach(itemData=>{
467
- if(itemData.left && !Array.isArray(itemData.left)){
468
- data.push(itemData.left);
469
- }
470
- if(itemData.right && !Array.isArray(itemData.right)){
471
- data.push(itemData.right);
472
- }
473
- });
474
- }
475
- });
476
- if(data.length > 0){detail.detail = data;}
477
- }
478
- localStorage.setItem(Crypto.encrypt(OBJECT_DETAIL), JSON.stringify(detail));
479
- }
408
+ // 对象详情存储标识
409
+ const OBJECT_DETAIL = 'cc_object_detail';
410
+ // 对象存储标识
411
+ const OBJECT = 'cc_object';
412
+
413
+ /**
414
+ * 获得当前标准对象信息
415
+ */
416
+ function getObject( ) {
417
+ let detail = localStorage.getItem(Crypto.encrypt(OBJECT));
418
+ if (detail) {
419
+ return JSON.parse(detail)
420
+ }
421
+ return ''
422
+ }
423
+
424
+ /**
425
+ * 设置当前标准对象信息
426
+ * @param {object} detail 对象数据
427
+ */
428
+ function setObject(detail = '') {
429
+ if (detail) {
430
+ localStorage.setItem(Crypto.encrypt(OBJECT), JSON.stringify(detail));
431
+ }
432
+ }
433
+
434
+ /**
435
+ * 获得当前标准对象的详细信息
436
+ * @param {String} apiname: 查找字段的apiname
437
+ */
438
+ function getObjectDetail(apiname) {
439
+ let detail = localStorage.getItem(Crypto.encrypt(OBJECT_DETAIL));
440
+ if (detail) {
441
+ if(apiname){
442
+ let detail = JSON.parse(detail).detail;
443
+ let targetField = undefined;
444
+ if(Array.isArray(detail)){
445
+ targetField = detail.find(item=>item.apiname===apiname);
446
+ }
447
+ return targetField
448
+ }else {
449
+ return JSON.parse(detail)
450
+ }
451
+ }
452
+ return ''
453
+ }
454
+
455
+ /**
456
+ * 设置当前标准对象的详细信息,默认两个小时有效期
457
+ * @param {object} detail 对象详细数据
458
+ */
459
+ function setObjectDetail(detail = '') {
460
+ if (detail) {
461
+ // 减少detail.detail层级
462
+ if(Array.isArray(detail.detail)){
463
+ let data = [];
464
+ detail.detail.forEach(item=>{
465
+ if(item && Array.isArray(item.data)){
466
+ item.data.forEach(itemData=>{
467
+ if(itemData.left && !Array.isArray(itemData.left)){
468
+ data.push(itemData.left);
469
+ }
470
+ if(itemData.right && !Array.isArray(itemData.right)){
471
+ data.push(itemData.right);
472
+ }
473
+ });
474
+ }
475
+ });
476
+ if(data.length > 0){detail.detail = data;}
477
+ }
478
+ localStorage.setItem(Crypto.encrypt(OBJECT_DETAIL), JSON.stringify(detail));
479
+ }
480
480
  }
481
481
 
482
482
  var CCObject = /*#__PURE__*/Object.freeze({
@@ -487,103 +487,125 @@ var CCObject = /*#__PURE__*/Object.freeze({
487
487
  setObjectDetail: setObjectDetail
488
488
  });
489
489
 
490
- /**
491
- * 用于保存打开的页面集合
492
- */
493
- let pageList = new Map();
494
- /**
495
- * 打开对象视图页面
496
- * @param {object} obj 对象信息
497
- * @param {object} options 配置信息
498
- */
499
- function openListPage(obj, options = {}) {
500
- let pageId = Math.random().toString(16).slice(2);
501
- $CCDK.CCBus.$emit('openListPage', pageId, obj, options);
502
- return pageId;
503
- }
504
-
505
- /**
506
- * 打开数据详情页
507
- * @param {object} obj 对象体
508
- * @param {string} id 数据id
509
- * @param {object} options 配置信息
510
- */
511
- function openDetailPage(obj, id, options = {}) {
512
- let pageId = Math.random().toString(16).slice(2);
513
- $CCDK.CCBus.$emit('openDetailPage', pageId, obj, id, options);
514
- return pageId;
515
- }
516
-
517
- /**
518
- * 打开创建页面
519
- * @param {object} obj 对象体
520
- * @param {object} options 配置信息
521
- */
522
- function openCreatePage(obj, options = {}) {
523
- let pageId = Math.random().toString(16).slice(2);
524
- $CCDK.CCBus.$emit('openCreatePage', pageId, obj, options);
525
- return pageId;
526
- }
527
-
528
- /**
529
- * 打开修改页面
530
- * @param {object} obj 对象体
531
- * @param {string} id 数据id
532
- * @param {object} options 配置信息
533
- */
534
- function openEditPage(obj, id, options = {}) {
535
- let pageId = Math.random().toString(16).slice(2);
536
- $CCDK.CCBus.$emit('openEditPage', pageId, obj, id, options);
537
- return pageId;
538
- }
539
- /**
540
- * 打开自定义页面
541
- * @param {object} obj 自定义页面参数
542
- * @param {object} options 配置信息
543
- */
544
- function openCustomPage(obj, options = {}) {
545
- let pageId = Math.random().toString(16).slice(2);
546
- $CCDK.CCBus.$emit('openCustomPage', pageId, obj, options);
547
- return pageId;
548
- }
549
-
550
- /**
551
- * 将打开的页面添加到集合中
552
- * @param {string} id 唯一ID
553
- * @param {object} page 页面对象
554
- */
555
- function addPage(id, page) {
556
- if (id && page) {
557
- pageList.set(id, page);
558
- }
559
- }
560
-
561
-
562
- /**
563
- * 关闭页面,如果pageId为null,那么关闭当前页面
564
- * @param {string} pageId 页面id
565
- */
566
- function close(pageId = '') {
567
- let page;
568
- if (pageId) {
569
- page = pageList.get(pageId);
570
- }
571
- if (page) {
572
- page.close();
573
- }
574
- }
575
- /**
576
- * 刷新页面
577
- * @param {string} pageId 页面id
578
- */
579
- function refresh(pageId = '') {
580
- let page;
581
- if (pageId) {
582
- page = pageList.get(pageId);
583
- }
584
- if (page) {
585
- page.refresh();
586
- }
490
+ /**
491
+ * 用于保存打开的页面集合
492
+ */
493
+ let pageList = new Map();
494
+ /**
495
+ * 打开对象视图页面
496
+ * @param {object} obj 对象信息
497
+ * @param {object} options 配置信息
498
+ */
499
+ function openListPage(obj, options = {}) {
500
+ let pageId = Math.random().toString(16).slice(2);
501
+ $CCDK.CCBus.$emit('openListPage', pageId, obj, options);
502
+ return pageId;
503
+ }
504
+
505
+ /**
506
+ * 打开数据详情页
507
+ * @param {object} obj 对象体
508
+ * @param {string} id 数据id
509
+ * @param {object} options 配置信息
510
+ */
511
+ function openDetailPage(obj, id, options = {}) {
512
+ let pageId = Math.random().toString(16).slice(2);
513
+ $CCDK.CCBus.$emit('openDetailPage', pageId, obj, id, options);
514
+ return pageId;
515
+ }
516
+
517
+ /**
518
+ * 打开创建页面
519
+ * @param {object} obj 对象体
520
+ * @param {object} options 配置信息
521
+ */
522
+ function openCreatePage(obj, options = {}) {
523
+ let pageId = Math.random().toString(16).slice(2);
524
+ $CCDK.CCBus.$emit('openCreatePage', pageId, obj, options);
525
+ return pageId;
526
+ }
527
+
528
+ /**
529
+ * 打开修改页面
530
+ * @param {object} obj 对象体
531
+ * @param {string} id 数据id
532
+ * @param {object} options 配置信息
533
+ */
534
+ function openEditPage(obj, id, options = {}) {
535
+ let pageId = Math.random().toString(16).slice(2);
536
+ $CCDK.CCBus.$emit('openEditPage', pageId, obj, id, options);
537
+ return pageId;
538
+ }
539
+ /**
540
+ * 打开自定义页面
541
+ * @param {object} obj 自定义页面参数
542
+ * @param {object} options 配置信息
543
+ */
544
+ function openCustomPage(obj, options = {}) {
545
+ let pageId = Math.random().toString(16).slice(2);
546
+ $CCDK.CCBus.$emit('openCustomPage', pageId, obj, options);
547
+ return pageId;
548
+ }
549
+
550
+ /**
551
+ * 通过页面id,重新打开某个页面
552
+ * @param {string} pageId 页面id
553
+ * @param {object} options 配置信息
554
+ */
555
+ function reOpenPage(pageId, options) {
556
+ let page;
557
+ if (pageId) {
558
+ page = pageList.get(pageId);
559
+ }
560
+ if (page) {
561
+ page.reOpenPage();
562
+ if (options.refresh) {
563
+ page.refresh();
564
+ }
565
+ }
566
+ }
567
+
568
+ /**
569
+ * 将打开的页面添加到集合中
570
+ * @param {string} id 唯一ID
571
+ * @param {object} page 页面对象
572
+ */
573
+ function addPage(id, page) {
574
+ if (id && page) {
575
+ pageList.set(id, page);
576
+ }
577
+ }
578
+
579
+
580
+ /**
581
+ * 关闭页面,如果pageId为null,那么关闭当前页面
582
+ * @param {string} pageId 页面id
583
+ */
584
+ function close(pageId = '') {
585
+ let page;
586
+ if (pageId) {
587
+ page = pageList.get(pageId);
588
+ } else {
589
+ if (pageList.size > 0) {
590
+ page = [...pageList.values()][pageList.size - 1];
591
+ }
592
+ }
593
+ if (page) {
594
+ page.close();
595
+ }
596
+ }
597
+ /**
598
+ * 刷新页面
599
+ * @param {string} pageId 页面id
600
+ */
601
+ function refresh(pageId = '') {
602
+ let page;
603
+ if (pageId) {
604
+ page = pageList.get(pageId);
605
+ }
606
+ if (page) {
607
+ page.refresh();
608
+ }
587
609
  }
588
610
 
589
611
  var CCPage = /*#__PURE__*/Object.freeze({
@@ -593,24 +615,25 @@ var CCPage = /*#__PURE__*/Object.freeze({
593
615
  openCreatePage: openCreatePage,
594
616
  openEditPage: openEditPage,
595
617
  openCustomPage: openCustomPage,
618
+ reOpenPage: reOpenPage,
596
619
  addPage: addPage,
597
620
  close: close,
598
621
  refresh: refresh
599
622
  });
600
623
 
601
- /**
602
- * 获得一级域名
603
- * 比如:xx.com、xx.cn、xx.com.cn、xx.net.cn、xx.org.cn
604
- */
605
- function getDomain() {
606
- // 倒数第二位域名
607
- let lastTow = document.domain.split('.').slice(-2, -1)[0];
608
- // 如果倒数第二位是这些关键字,那么需要取倒数三位域名
609
- if (lastTow == 'com' || lastTow == 'org' || lastTow == 'net') {
610
- return "." + document.domain.split('.').slice(-3).join('.')
611
- } else {
612
- return "." + document.domain.split('.').slice(-2).join('.')
613
- }
624
+ /**
625
+ * 获得一级域名
626
+ * 比如:xx.com、xx.cn、xx.com.cn、xx.net.cn、xx.org.cn
627
+ */
628
+ function getDomain() {
629
+ // 倒数第二位域名
630
+ let lastTow = document.domain.split('.').slice(-2, -1)[0];
631
+ // 如果倒数第二位是这些关键字,那么需要取倒数三位域名
632
+ if (lastTow == 'com' || lastTow == 'org' || lastTow == 'net') {
633
+ return "." + document.domain.split('.').slice(-3).join('.')
634
+ } else {
635
+ return "." + document.domain.split('.').slice(-2).join('.')
636
+ }
614
637
  }
615
638
 
616
639
  var CCUtils = /*#__PURE__*/Object.freeze({
@@ -618,49 +641,49 @@ var CCUtils = /*#__PURE__*/Object.freeze({
618
641
  getDomain: getDomain
619
642
  });
620
643
 
621
- // cookie存储标识
622
- const TOKEN = "cc_token";
623
- /**
624
- * 获取URL中参数的数据
625
- * @param {name} 参数名
626
- */
627
- function getUrlQuery(name) {
628
- var reg = new RegExp(name + "=([^&]*)(&|$)");
629
- var r = window.location.href.match(reg);
630
- let res = null;
631
- if (r != null) res = r[1].trim();
632
- return res;
633
- }
634
- /**
635
- * 获取token:优先级-url最高,cc_token-cookies第二,binding-cookies第三
636
- * @param {String} urlName 获取token的url名称
637
- * @returns
638
- */
639
- function getToken(urlName = "binding") {
640
- let token = getUrlQuery(urlName) || Cookies.get(Crypto.encrypt(TOKEN)) || Cookies.get(urlName);
641
- // 如果存在token,那么存储到cookies中,刷新有效期
642
- if (token) {
643
- setToken(token);
644
- }
645
- return token
646
- }
647
- /**
648
- * 存储token
649
- * @param {String} token token
650
- * @param {String} domain 域名
651
- */
652
- function setToken(token, domain = getDomain()) {
653
- Cookies.set(Crypto.encrypt(TOKEN), token, { domain: domain, expires: 1 / 12 });
654
- Cookies.set(Crypto.encrypt(TOKEN), token, { expires: 1 / 12 });
655
- }
656
-
657
- /**
658
- * 清除Token数据
659
- * @param {String} domain 域名
660
- */
661
- function clearToken(domain = getDomain()) {
662
- Cookies.remove(Crypto.encrypt(TOKEN), { domain: domain });
663
- Cookies.remove(Crypto.encrypt(TOKEN));
644
+ // cookie存储标识
645
+ const TOKEN = "cc_token";
646
+ /**
647
+ * 获取URL中参数的数据
648
+ * @param {name} 参数名
649
+ */
650
+ function getUrlQuery(name) {
651
+ var reg = new RegExp(name + "=([^&]*)(&|$)");
652
+ var r = window.location.href.match(reg);
653
+ let res = null;
654
+ if (r != null) res = r[1].trim();
655
+ return res;
656
+ }
657
+ /**
658
+ * 获取token:优先级-url最高,cc_token-cookies第二,binding-cookies第三
659
+ * @param {String} urlName 获取token的url名称
660
+ * @returns
661
+ */
662
+ function getToken(urlName = "binding") {
663
+ let token = getUrlQuery(urlName) || Cookies.get(Crypto.encrypt(TOKEN)) || Cookies.get(urlName);
664
+ // 如果存在token,那么存储到cookies中,刷新有效期
665
+ if (token) {
666
+ setToken(token);
667
+ }
668
+ return token
669
+ }
670
+ /**
671
+ * 存储token
672
+ * @param {String} token token
673
+ * @param {String} domain 域名
674
+ */
675
+ function setToken(token, domain = getDomain()) {
676
+ Cookies.set(Crypto.encrypt(TOKEN), token, { domain: domain, expires: 1 / 12 });
677
+ Cookies.set(Crypto.encrypt(TOKEN), token, { expires: 1 / 12 });
678
+ }
679
+
680
+ /**
681
+ * 清除Token数据
682
+ * @param {String} domain 域名
683
+ */
684
+ function clearToken(domain = getDomain()) {
685
+ Cookies.remove(Crypto.encrypt(TOKEN), { domain: domain });
686
+ Cookies.remove(Crypto.encrypt(TOKEN));
664
687
  }
665
688
 
666
689
  var CCToken = /*#__PURE__*/Object.freeze({
@@ -670,31 +693,31 @@ var CCToken = /*#__PURE__*/Object.freeze({
670
693
  clearToken: clearToken
671
694
  });
672
695
 
673
- // cookie存储标识
674
- const USER_INFO = "cc_user_info";
675
-
676
- /**
677
- * 存储用户信息
678
- * @param {String} userInfo 用户信息
679
- * @param {String} domain 域名
680
- */
681
- function setUserInfo(userInfo, domain = getDomain()) {
682
- Cookies.set(Crypto.encrypt(USER_INFO), Crypto.encrypt(userInfo), { domain: domain, expires: 1 / 12 });
683
- Cookies.set(Crypto.encrypt(USER_INFO), Crypto.encrypt(userInfo), { expires: 1 / 12 });
684
- }
685
-
686
- /**
687
- * 获取用户信息
688
- * @returns {String} 用户信息
689
- */
690
- function getUserInfo() {
691
- // 加密的用户信息
692
- let encryptUserInfo = Cookies.get(Crypto.encrypt(USER_INFO));
693
- if (encryptUserInfo) {
694
- return Crypto.decrypt(encryptUserInfo)
695
- } else {
696
- return ""
697
- }
696
+ // cookie存储标识
697
+ const USER_INFO = "cc_user_info";
698
+
699
+ /**
700
+ * 存储用户信息
701
+ * @param {String} userInfo 用户信息
702
+ * @param {String} domain 域名
703
+ */
704
+ function setUserInfo(userInfo, domain = getDomain()) {
705
+ Cookies.set(Crypto.encrypt(USER_INFO), Crypto.encrypt(userInfo), { domain: domain, expires: 1 / 12 });
706
+ Cookies.set(Crypto.encrypt(USER_INFO), Crypto.encrypt(userInfo), { expires: 1 / 12 });
707
+ }
708
+
709
+ /**
710
+ * 获取用户信息
711
+ * @returns {String} 用户信息
712
+ */
713
+ function getUserInfo() {
714
+ // 加密的用户信息
715
+ let encryptUserInfo = Cookies.get(Crypto.encrypt(USER_INFO));
716
+ if (encryptUserInfo) {
717
+ return Crypto.decrypt(encryptUserInfo)
718
+ } else {
719
+ return ""
720
+ }
698
721
  }
699
722
 
700
723
  var CCUser = /*#__PURE__*/Object.freeze({