fhrons-mobile-next 2.0.0 → 2.0.2

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 (90) hide show
  1. package/.env.poc +8 -0
  2. package/assets/css/colors.js +6 -0
  3. package/assets/css/customVant.less +60 -0
  4. package/assets/css/extra.css +32 -0
  5. package/assets/css/global.css +1 -0
  6. package/assets/css/global.less +1637 -0
  7. package/assets/css/index.js +63 -0
  8. package/assets/css/static.less +607 -0
  9. package/assets/js/func.js +361 -0
  10. package/assets/js/globalData.js +18 -0
  11. package/assets/js/qywxapi.js +484 -0
  12. package/{packages → assets/js}/storage.js +1 -20
  13. package/assets/js/upload.js +269 -0
  14. package/assets/js/validate.js +48 -0
  15. package/assets/js/vant.js +39 -0
  16. package/assets/js/wxapi.js +297 -0
  17. package/assets/vantLang/index.js +172 -0
  18. package/assets/vantLang/lib/en-US.js +95 -0
  19. package/assets/vantLang/lib/es-ES.js +95 -0
  20. package/assets/vantLang/lib/pt-PT.js +96 -0
  21. package/assets/vantLang/lib/zh-CN.js +96 -0
  22. package/assets/vantLang/lib/zh-HK.js +96 -0
  23. package/assets/vantLang/locales/en_US.js +102 -0
  24. package/assets/vantLang/locales/es_ES.js +102 -0
  25. package/assets/vantLang/locales/index.js +12 -0
  26. package/assets/vantLang/locales/pt_PT.js +102 -0
  27. package/assets/vantLang/locales/zh_CN.js +102 -0
  28. package/assets/vantLang/locales/zh_T.js +102 -0
  29. package/babel.config.js +15 -0
  30. package/index.js +68 -33
  31. package/inject-env-plugin.js +29 -0
  32. package/package.json +46 -32
  33. package/packages/areaMobile/index.js +5 -0
  34. package/packages/areaMobile/index.vue +260 -0
  35. package/packages/autoGraph/VueEsign.vue +309 -0
  36. package/packages/autoGraph/index.js +5 -0
  37. package/packages/autoGraph/index.vue +472 -0
  38. package/packages/commonForm/CommonAsyncAreaPicker.vue +223 -0
  39. package/packages/commonForm/CommonDatePicker.vue +152 -0
  40. package/packages/commonForm/CommonForm.vue +786 -0
  41. package/packages/commonForm/CommonFullTimePicker.vue +137 -0
  42. package/packages/commonForm/CommonSinglePicker.vue +121 -0
  43. package/packages/commonForm/CommonYearMonthPicker.vue +127 -0
  44. package/packages/commonForm/index.js +33 -0
  45. package/packages/dialog/index.js +32 -0
  46. package/packages/dialog/index.vue +379 -0
  47. package/packages/index.js +7 -3
  48. package/packages/introduce/index.js +5 -0
  49. package/packages/introduce/index.vue +31 -0
  50. package/packages/loading/Loading.vue +70 -0
  51. package/packages/loading/index.js +43 -0
  52. package/packages/mindMap/index.js +5 -0
  53. package/packages/mindMap/index.vue +437 -0
  54. package/packages/pdfViewer/index.js +12 -0
  55. package/packages/pdfViewer/index.vue +131 -0
  56. package/packages/sharePanel/SheetPanel.vue +316 -0
  57. package/packages/sharePanel/index.js +5 -0
  58. package/packages/sharePanel/index.vue +476 -0
  59. package/packages/sharePanel/props.js +58 -0
  60. package/packages/sharePanel/utils/QyWxShareMixin.js +93 -0
  61. package/packages/sharePanel/utils/shareWay.js +81 -0
  62. package/packages/theme/index copy.js +89 -0
  63. package/packages/theme/index.js +38 -0
  64. package/packages/theme/theme.css +910 -0
  65. package/packages/theme/theme.less +26 -0
  66. package/packages/uploadFile/VanUploadFile.vue +80 -0
  67. package/packages/uploadFile/index.js +5 -0
  68. package/packages/uploadFile/index.vue +725 -0
  69. package/packages/uploadFile/vanUpload.js +5 -0
  70. package/packages/verify/Verify/VerifyPoints.vue +247 -0
  71. package/packages/verify/Verify/VerifySlide.vue +364 -0
  72. package/packages/verify/index.js +5 -0
  73. package/packages/verify/index.vue +416 -0
  74. package/packages/verify/utils/verify.js +53 -0
  75. package/packages/videoPage/index.js +5 -0
  76. package/packages/videoPage/index.vue +440 -0
  77. package/plugins/sensors/fhsensors.js +84 -0
  78. package/plugins/sensors/sensors.js +175 -0
  79. package/plugins/sensors/sensorsFun.js +1387 -0
  80. package/fhrons-mobile-next-2.0.0.tgz +0 -0
  81. package/packages/fhImage/index.js +0 -5
  82. package/packages/fhImage/index.vue +0 -57
  83. package/packages/fhPresetImage/index.js +0 -5
  84. package/packages/fhPresetImage/index.vue +0 -39
  85. package/packages/html2canvas/index.js +0 -29
  86. package/upload copy.js +0 -468
  87. package/utils/tools.js +0 -22
  88. /package/{dist → fhcommon/dist}/fhcommon.min.js +0 -0
  89. /package/{dist → fhcommon/dist}/fhcommon.min.js.LICENSE.txt +0 -0
  90. /package/{upload.js → fhcommon/upload.js} +0 -0
@@ -0,0 +1,484 @@
1
+ import i18n from '../vantLang';
2
+ 'use strict'
3
+ // import wx from 'weixin-js-sdk'
4
+ import { setStorage, getStorage } from './storage'
5
+ import { isIOS, isQYWeiXin, isWeiXin } from './validate'
6
+ import { loadJavaScript, getSystemName } from "./func";
7
+
8
+ if (!window["wx"]) {
9
+ loadJavaScript("https://dop-pro-1251973116.file.myqcloud.com/upload/jsfile/funzg/jweixin-1.6.0.js").then(() => {
10
+ console.log("weixin-js-sdk 加载成功", wx);
11
+ });
12
+ }
13
+
14
+ const qyWxApi = {
15
+ getQwSignature (param = {}) {
16
+ return new Promise((resolve, reject) => {
17
+ const { loginResponseDO = {} } = getStorage({ commonKey: 'userGlobalGist' }) || {};
18
+ this.agentId = param.agentId || (getStorage({ key: getSystemName() + 'agentId' }) || {}).content;
19
+ // isIOS && isQYWeiXin
20
+ if (!isWeiXin() && isIOS() && isQYWeiXin()) {
21
+ this.url = window.location.href
22
+ } else if (/mac/i.test(navigator.userAgent)) {
23
+ this.url = window.location.href
24
+ } else if (/iPhone|iPod|iPad/i.test(navigator.userAgent)) {
25
+ this.url = param.firUrl || (getStorage({ key: getSystemName() + 'firUrl' }) || {}).content;
26
+ } else {
27
+ this.url = window.location.href
28
+ }
29
+ const saasId = param.saasId || loginResponseDO.saasId || '000000'; // 000000 表示元租户
30
+ const corpId = param.corpId || saasId;
31
+ let jsapiticket_data = {
32
+ url: this.url,
33
+ corpId
34
+ }
35
+ axios.post('/funapi/funscrm/scrm/sidebarCheck/getCorpSignature', jsapiticket_data, { headers: { corpid: corpId } }).then(res => {
36
+ if (res.code == 1) {
37
+ jsapiticket_data.appId = res.data.appId
38
+ jsapiticket_data.timestamp = res.data.timestamp
39
+ jsapiticket_data.nonceStr = res.data.nonceStr
40
+ jsapiticket_data.signature = res.data.signature
41
+ let wxConfigData = jsapiticket_data
42
+ wx.config({
43
+ beta: true,
44
+ debug: false,
45
+ appId: wxConfigData.appId,
46
+ timestamp: wxConfigData.timestamp,
47
+ nonceStr: wxConfigData.nonceStr,
48
+ signature: wxConfigData.signature,
49
+ jsApiList: [
50
+ 'checkJsApi',
51
+ 'onMenuShareWechat',
52
+ 'onMenuShareAppMessage',
53
+ 'onMenuShareTimeline',
54
+ 'showMenuItems',
55
+ 'hideMenuItems',
56
+ 'hideOptionMenu',
57
+ // 音频
58
+ 'startRecord', // 开始录音
59
+ 'stopRecord', // 停止录音
60
+ 'onVoiceRecordEnd', // 监听录音自动停止接口
61
+ 'playVoice', // 播放语音接口
62
+ 'pauseVoice', // 暂停播放接口
63
+ 'stopVoice', // 停止播放接口
64
+ 'onVoicePlayEnd', //监听语音播放完毕接口
65
+ 'uploadVoice', // 上传语音接口
66
+ 'downloadVoice' // 下载语音接口
67
+ ],
68
+ success: function () {
69
+ },
70
+ fail: function (err) {
71
+ }
72
+ })
73
+ }
74
+ }).catch(() => { reject(false); })
75
+ wx.ready(() => {
76
+ let dataAgent = {
77
+ corpId,
78
+ agentid: this.agentId,
79
+ url: this.url
80
+ }
81
+ let dataAgentObj = {}
82
+ axios.post('/funapi/funscrm/scrm/sidebarCheck/getAgentSignature', dataAgent, { headers: { corpid: corpId } }).then(res => {
83
+ if (res.code === 1) {
84
+ dataAgentObj.appId = res.data.appId
85
+ dataAgentObj.timestamp = res.data.timestamp
86
+ dataAgentObj.nonceStr = res.data.nonceStr
87
+ dataAgentObj.signature = res.data.signature
88
+ setStorage({ name: 'dataAgentObj', content: dataAgentObj })
89
+
90
+ wx.agentConfig({
91
+ beta: true, //必须这么写,否则wx.invoke调用形式的jsapi会有问题
92
+ debug: false, //开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
93
+ corpid: dataAgentObj.appId,
94
+ agentid: this.agentId,
95
+ timestamp: dataAgentObj.timestamp, //必填,生成签名的时间戳
96
+ nonceStr: dataAgentObj.nonceStr, //必填,生成签名的随机串
97
+ signature: dataAgentObj.signature, //必填,签名,见附录-JS-SDK使用权限签名算法
98
+ jsApiList: [
99
+ 'checkJsApi',
100
+ 'getContext',
101
+ 'shareToExternalContact',
102
+ 'sendChatMessage',
103
+ 'getCurExternalChat',
104
+ 'getCurExternalContact',
105
+ 'launchMiniprogram',
106
+ // 音频
107
+ 'startRecord', // 开始录音
108
+ 'stopRecord', // 停止录音
109
+ 'onVoiceRecordEnd', // 监听录音自动停止接口
110
+ 'playVoice', // 播放语音接口
111
+ 'pauseVoice', // 暂停播放接口
112
+ 'stopVoice', // 停止播放接口
113
+ 'onVoicePlayEnd', //监听语音播放完毕接口
114
+ 'uploadVoice', // 上传语音接口
115
+ 'downloadVoice' // 下载语音接口
116
+ ], //必填,需要使用的JS接口列表,凡是要调用的接口都需要传进来
117
+ success: res => {
118
+ wx.invoke('getContext', {}, res => {
119
+ if (res.err_msg == 'getContext:ok') {
120
+ setStorage({ name: 'qwEntry', content: res.entry })
121
+ resolve(true);
122
+ } else {
123
+ //错误处理
124
+ }
125
+ })
126
+ },
127
+ fail: res => {
128
+ if (res.errMsg.indexOf('function not exist') > -1) {
129
+ // 版本过低请升级
130
+ alert(i18n.t('js.qywxapi.f0g5hv'))
131
+ }
132
+ }
133
+ })
134
+
135
+ }
136
+ }).catch(() => { reject(false); })
137
+ })
138
+ })
139
+ },
140
+ getContext () {
141
+ return new Promise(resolve => {
142
+ wx.invoke("getContext", {}, function (res) {
143
+ if (res.err_msg == "getContext:ok") {
144
+ setStorage({ name: 'qwEntry', content: res.entry })
145
+ setStorage({ name: 'qwEntry', content: res.entry, type: 'session' })
146
+ resolve(res.entry)
147
+ } else {
148
+ resolve(false)
149
+ }
150
+ })
151
+ })
152
+ },
153
+ /**
154
+ * [wxRegister 企微会话框发送]
155
+ * @param {Function} callback [ready回调函数]
156
+ */
157
+ qywxGroup (option) {
158
+ let attachments = [];
159
+ if (option.type === 'img' || option.type === 'image') {
160
+ attachments.push({
161
+ msgtype: 'image', // 消息类型,必填
162
+ image: {
163
+ imgUrl: option.link ? option.link : 'https://upload-10051630.cos.ap-shanghai.myqcloud.com/funzg/funlogo.png', // H5消息封面图片URL
164
+ }
165
+ })
166
+ } else {
167
+ attachments.push({
168
+ msgtype: 'link', // 消息类型,必填
169
+ link: {
170
+ title: option.title, // H5消息标题
171
+ imgUrl: option.imgUrl ? option.imgUrl : 'https://upload-10051630.cos.ap-shanghai.myqcloud.com/funzg/funlogo.png', // H5消息封面图片URL
172
+ desc: option.desc, // H5消息摘要
173
+ url: option.link // H5消息页面url 必填
174
+ }
175
+ })
176
+ }
177
+
178
+ wx.invoke(
179
+ 'shareToExternalContact',
180
+ {
181
+ text: {
182
+ content: option.text || '' // 文本内容
183
+ },
184
+ attachments
185
+ },
186
+ function (res) {
187
+ if (res.err_msg == 'shareToExternalContact:ok') {
188
+ }
189
+ }
190
+ )
191
+ },
192
+ wxRegister (option) {
193
+ //data是微信配置信息,option是分享的配置内容
194
+ /**------------------------------------- 新增--------------------------------------------- */
195
+ wx.invoke('sendChatMessage', option, function (res) {
196
+ })
197
+ },
198
+ //跳转小程序
199
+ launchMiniprogram (option) {
200
+ wx.invoke('launchMiniprogram', option, function (res) {
201
+ if (res.err_msg == 'launchMiniprogram:ok') {
202
+ } else {
203
+ // 错误处理
204
+ }
205
+ })
206
+ },
207
+ /**
208
+ * [qwShareToOther 企微工作台分享]
209
+ * @param {Function} callback [ready回调函数]
210
+ */
211
+ qwShareToOther (data) {
212
+ let msgData = data || {};
213
+ wx.ready(() => {
214
+ wx.checkJsApi({
215
+ jsApiList: ['showMenuItems', 'showOptionMenu', 'hideOptionMenu', 'onMenuShareWechat', 'updateAppMessageShareData', 'onMenuShareAppMessage', 'updateTimelineShareData', 'onMenuShareTimeline'],
216
+ success: function (res) {
217
+ wx.showMenuItems({
218
+ menuList: [
219
+ 'menuItem:share:appMessage',
220
+ 'menuItem:share:timeline',
221
+ 'menuItem:share:wechat',
222
+ 'menuItem:share:qq',
223
+ 'menuItem:share:weiboApp',
224
+ 'menuItem:share:facebook',
225
+ 'menuItem:share:QZone',
226
+ 'menuItem:copyUrl',
227
+ 'menuItem:openWithQQBrowser',
228
+ 'menuItem:openWithSafari',
229
+ 'menuItem:share:email',
230
+ 'menuItem:share:brand']
231
+ });
232
+ wx.onMenuShareWechat({
233
+ title: msgData.title,
234
+ link: msgData.link,
235
+ imgUrl: msgData.imgUrl,
236
+ desc: msgData.desc,
237
+ trigger: function (e) {
238
+ // 用户点击发送前会先执行的回调函数
239
+ },
240
+ success: function (e) {
241
+ // 用户确认分享成功后执行的回调函数
242
+ },
243
+ fail: function (e) {
244
+ },
245
+ complete: function (e) {
246
+ // 用户确认分享后执行的回调函数
247
+ },
248
+ cancel: function () {
249
+ // 用户取消分享后执行的回调函数
250
+ }
251
+ });
252
+ if (wx.updateAppMessageShareData) {
253
+ wx.updateAppMessageShareData({
254
+ title: msgData.title, // 分享标题
255
+ desc: msgData.desc, // 分享描述
256
+ link: msgData.link, // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
257
+ imgUrl: msgData.imgUrl, // 分享图标
258
+ success: function (res) {
259
+ // 设置成功
260
+ },
261
+ fail: function (err) {
262
+ // 设置失败
263
+ },
264
+ })
265
+ } else {
266
+ wx.onMenuShareAppMessage({
267
+ title: msgData.title, // 分享标题
268
+ desc: msgData.desc, // 分享描述
269
+ link: msgData.link, // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
270
+ imgUrl: msgData.imgUrl,// 分享图标
271
+ type: '', // 分享类型,music、video或link,不填默认为link
272
+ dataUrl: '', // 如果type是music或video,则要提供数据链接,默认为空
273
+ success: function (res) {
274
+ // 用户点击了分享后执行的回调函数
275
+ },
276
+ fail: function (err) {
277
+ // 设置失败
278
+ },
279
+ });
280
+ }
281
+ // 分享到朋友圈
282
+ if (wx.updateTimelineShareData) {
283
+ wx.updateTimelineShareData({
284
+ title: msgData.title, // 分享标题
285
+ link: msgData.link, // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
286
+ imgUrl: msgData.imgUrl, // 分享图标
287
+ desc: msgData.desc, // 分享描述
288
+ success: function () {
289
+ // 设置成功
290
+ }
291
+ })
292
+ } else {
293
+ wx.onMenuShareTimeline({
294
+ title: msgData.title, // 分享标题
295
+ link: msgData.link, // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
296
+ imgUrl: msgData.imgUrl, // 分享图标
297
+ desc: msgData.desc, // 分享描述
298
+ success: function () {
299
+ // 用户点击了分享后执行的回调函数
300
+ }
301
+ })
302
+ }
303
+ },
304
+ fail: function (err) {
305
+ },
306
+ })
307
+ })
308
+ },
309
+ wxHideMenu () { //data是微信配置信息,option是分享的配置内容
310
+ wx.ready(function () {
311
+ // 判断当前客户端版本是否支持指定JS接口
312
+ wx.checkJsApi({
313
+ jsApiList: ['hideMenuItems', 'hideOptionMenu'],
314
+ success: function (res) {
315
+ console.log(res, 'checkJsApi');
316
+ // 隐藏掉部分按钮
317
+ wx.hideMenuItems({
318
+ menuList: ['menuItem:share:appMessage',
319
+ 'menuItem:share:timeline',
320
+ 'menuItem:share:qq',
321
+ 'menuItem:share:weiboApp',
322
+ 'menuItem:share:facebook',
323
+ 'menuItem:share:QZone',
324
+ 'menuItem:copyUrl',
325
+ 'menuItem:openWithQQBrowser',
326
+ 'menuItem:openWithSafari',
327
+ 'menuItem:share:email',
328
+ 'menuItem:share:brand']
329
+ });
330
+ wx.hideOptionMenu();
331
+ },
332
+ fail: function (res) { console.log(res) }
333
+ })
334
+ })
335
+ },
336
+ /**------------------------------------- 结束 --------------------------------------------- */
337
+ /**
338
+ * 录音相关
339
+ */
340
+ // 开始录音
341
+ wxStart () {
342
+ wx.ready(function () {
343
+ // 判断当前客户端版本是否支持指定JS接口
344
+ wx.checkJsApi({
345
+ jsApiList: ['startRecord'],
346
+ success: function (res) {
347
+ wx.startRecord()
348
+ }
349
+ })
350
+ })
351
+ },
352
+ // 结束录音
353
+ wxStop (callback) {
354
+ wx.ready(function () {
355
+ // 判断当前客户端版本是否支持指定JS接口
356
+ wx.checkJsApi({
357
+ jsApiList: ['stopRecord'],
358
+ success: function (res) {
359
+ wx.stopRecord({
360
+ success: function (res) {
361
+ let localId = res.localId;
362
+ callback(localId)
363
+ }
364
+ });
365
+ }
366
+ })
367
+ })
368
+ },
369
+ // 自动结束录音
370
+ wxAutoEnd (callback) {
371
+ wx.ready(function () {
372
+ // 判断当前客户端版本是否支持指定JS接口
373
+ wx.checkJsApi({
374
+ jsApiList: ['onVoiceRecordEnd'],
375
+ success: function (res) {
376
+ wx.onVoiceRecordEnd({
377
+ // 录音时间超过一分钟没有停止的时候会执行 complete 回调
378
+ complete: function (res) {
379
+ let localId = res.localId;
380
+ callback(localId)
381
+ }
382
+ });
383
+ }
384
+ })
385
+ })
386
+ },
387
+ // 播放语音接口
388
+ wxPlayVoice (localId) {
389
+ wx.ready(function () {
390
+ // 判断当前客户端版本是否支持指定JS接口
391
+ wx.checkJsApi({
392
+ jsApiList: ['playVoice'],
393
+ success: function (res) {
394
+ wx.playVoice({
395
+ localId: localId
396
+ })
397
+ }
398
+ })
399
+ })
400
+ },
401
+ // 暂停播放接口
402
+ wxPauseVoice (localId) {
403
+ wx.ready(function () {
404
+ // 判断当前客户端版本是否支持指定JS接口
405
+ wx.checkJsApi({
406
+ jsApiList: ['pauseVoice'],
407
+ success: function (res) {
408
+ wx.pauseVoice({
409
+ localId: localId
410
+ })
411
+ }
412
+ })
413
+ })
414
+ },
415
+ // 停止播放接口
416
+ wxStopVoice (localId) {
417
+ wx.ready(function () {
418
+ // 判断当前客户端版本是否支持指定JS接口
419
+ wx.checkJsApi({
420
+ jsApiList: ['stopVoice'],
421
+ success: function (res) {
422
+ wx.stopVoice({
423
+ localId: localId
424
+ })
425
+ }
426
+ })
427
+ })
428
+ },
429
+ // 监听语音播放完毕接口
430
+ wxOnVoicePlayEnd (callback) {
431
+ wx.ready(function () {
432
+ // 判断当前客户端版本是否支持指定JS接口
433
+ wx.checkJsApi({
434
+ jsApiList: ['onVoicePlayEnd'],
435
+ success: function (res) {
436
+ wx.onVoicePlayEnd({
437
+ success: function (res) {
438
+ let localId = res.localId; // 返回音频的本地ID
439
+ }
440
+ });
441
+ }
442
+ })
443
+ })
444
+ },
445
+ // 上传语音
446
+ wxUploadVoice (localId, callback) {
447
+ wx.ready(function () {
448
+ // 判断当前客户端版本是否支持指定JS接口
449
+ wx.checkJsApi({
450
+ jsApiList: ['uploadVoice'],
451
+ success: function (res) {
452
+ wx.uploadVoice({
453
+ localId: localId, // 需要上传的音频的本地ID,由 stopRecord 接口获得
454
+ isShowProgressTips: 1, // 默认为1,显示进度提示
455
+ success: function (res) {
456
+ let serverId = res.serverId; // 返回音频的服务器端ID
457
+ callback(serverId)
458
+ }
459
+ });
460
+ }
461
+ })
462
+ })
463
+ },
464
+ // 下载语音接口
465
+ wxDownloadVoice (serverId, callback) {
466
+ wx.ready(function () {
467
+ // 判断当前客户端版本是否支持指定JS接口
468
+ wx.checkJsApi({
469
+ jsApiList: ['downloadVoice'],
470
+ success: function (res) {
471
+ wx.downloadVoice({
472
+ serverId: serverId, // 需要下载的音频的服务器端ID,由 uploadVoice 接口获得
473
+ isShowProgressTips: 1, // 默认为1,显示进度提示
474
+ success: function (res) {
475
+ let localId = res.localId; // 返回音频的本地ID
476
+ callback(localId)
477
+ }
478
+ });
479
+ }
480
+ })
481
+ })
482
+ }
483
+ }
484
+ export default qyWxApi
@@ -1,23 +1,4 @@
1
- /**
2
- * 判断是否为空
3
- */
4
- function validateNull (val) {
5
- if (typeof val === 'boolean') {
6
- return false;
7
- }
8
- if (typeof val === 'number') {
9
- return false;
10
- }
11
- if (val instanceof Array) {
12
- if (val.length === 0) return true;
13
- } else if (val instanceof Object) {
14
- if (JSON.stringify(val) === '{}') return true;
15
- } else {
16
- if (val === 'null' || val === null || val === 'undefined' || val === undefined || val === '') return true;
17
- return false;
18
- }
19
- return false;
20
- }
1
+ import { validateNull } from './func';
21
2
  const SESSION = 'session';
22
3
  const keyName = `Fun-${process.env.VUE_APP_NAME}-${process.env.VUE_APP_ENV_CONFIG}-`;
23
4
  const commonKeyName = `Fun-${process.env.VUE_APP_ENV_CONFIG}-`;