efront 4.21.3 → 4.22.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.
- package/#/345/233/275/351/231/205/345/214/226.yml +117 -66
- package/apps/blank/index.html +1 -1
- package/apps/index.jsp +76 -27
- package/apps/pay/alipay-query.jsp +1 -1
- package/apps/pay/alipay.jsp +1 -1
- package/apps/pivot/auth/login.js +2 -2
- package/apps/pivot/cert/main.xht +18 -5
- package/apps/pivot/db/act.xht +53 -0
- package/apps/pivot/db/config.xht +56 -16
- package/apps/pivot/home/welcome.html +12 -13
- package/apps/pivot/home/welcome.js +6 -6
- package/apps/pivot/home/welcome.less +12 -3
- package/apps/pivot/link/room.js +1 -1
- package/apps/pivot/main.js +3 -2
- package/apps/pivot/task/invoke.js +3 -3
- package/apps/pivot/task/rsync.js +2 -2
- package/apps/pivot/wow/root.js +8 -8
- package/coms/basic/#loader.js +9 -8
- package/coms/basic/Item.js +2 -2
- package/coms/basic/Tree.js +14 -2
- package/coms/basic/crc.js +5 -1
- package/coms/basic/cross_.js +2 -2
- package/coms/basic/decode62S.js +44 -0
- package/coms/basic/encode62S.js +40 -0
- package/coms/basic/encode62S_test.js +18 -0
- package/coms/basic/enrich.js +6 -1
- package/coms/basic/parseNumber.js +12 -7
- package/coms/basic/percent.js +28 -0
- package/coms/basic/refilm.js +24 -5
- package/coms/basic/refilm_decode.js +46 -22
- package/coms/basic/refilm_decode_test.js +5 -0
- package/coms/basic/valid.js +4 -0
- package/coms/basic_/&Array.js +64 -49
- package/coms/basic_/&extends.js +9 -2
- package/coms/compile/Html_test.js +5 -0
- package/coms/compile/Javascript.js +13 -3
- package/coms/compile/Javascript_test.js +3 -0
- package/coms/compile/Program.js +119 -43
- package/coms/compile/audit.js +23 -1
- package/coms/compile/cloneNode.js +3 -1
- package/coms/compile/common.js +7 -1
- package/coms/compile/downLevel.js +21 -11
- package/coms/compile/downLevel_test.js +52 -14
- package/coms/compile/rescan.js +8 -2
- package/coms/compile/scanner2.js +53 -7
- package/coms/compile/translate.js +1 -1
- package/coms/compile/unstruct.js +9 -9
- package/coms/crypt/encode62.js +36 -6
- package/coms/crypt/encode62_test.js +8 -48
- package/coms/explorer/main.less +1 -5
- package/coms/frame/chat.js +2 -2
- package/coms/frame/left.html +5 -4
- package/coms/frame/left.js +1 -0
- package/coms/frame/left.less +5 -3
- package/coms/frame/payment.js +2 -2
- package/coms/pivot/acme2.js +7 -4
- package/coms/pivot/left-footer.xht +25 -0
- package/coms/pivot/pedit.js +3 -3
- package/coms/pivot/plist.js +2 -2
- package/coms/pivot/qrcode.xht +3 -0
- package/coms/zimoli/XMLHttpRequest.js +16 -13
- package/coms/zimoli/container.js +34 -34
- package/coms/zimoli/design.html +6 -13
- package/coms/zimoli/design.js +49 -13
- package/coms/zimoli/design.less +62 -25
- package/coms/zimoli/drag.js +8 -3
- package/coms/zimoli/encode62.js +40 -12
- package/coms/zimoli/lattice.js +0 -1
- package/coms/zimoli/list.js +0 -8
- package/coms/zimoli/menu.js +29 -5
- package/coms/zimoli/model.js +150 -195
- package/coms/zimoli/model.less +4 -8
- package/coms/zimoli/on.js +14 -12
- package/coms/zimoli/padding.less +1 -0
- package/coms/zimoli/progbar.xht +9 -8
- package/coms/zimoli/prompt.less +0 -3
- package/coms/zimoli/render.js +210 -125
- package/coms/zimoli/select.js +9 -4
- package/coms/zimoli/select.less +3 -14
- package/coms/zimoli/selectList.js +5 -1
- package/coms/zimoli/selectList.less +3 -0
- package/coms/zimoli/table.html +7 -7
- package/coms/zimoli/table.js +12 -9
- package/coms/zimoli/table.less +5 -0
- package/coms/zimoli/user.js +2 -2
- package/coms/zimoli/view.js +3 -4
- package/coms/zimoli/watch.js +3 -1
- package/coms/zimoli/zimoli.js +6 -2
- package/coms//350/214/250/350/217/260/tab.js +26 -2
- package/coms//350/214/250/350/217/260//346/240/207/347/255/276/345/214/226.js +1 -1
- package/coms//350/214/250/350/217/260//347/274/226/350/276/221/346/241/206.xht +183 -20
- package/docs//345/267/245/345/205/267//345/233/275/351/231/205/345/214/226.xht +5 -0
- package/package.json +1 -1
- package/public/efront.js +1 -1
- package/readme-en.md +3 -5
- package/readme.md +3 -4
|
@@ -1,3 +1,54 @@
|
|
|
1
|
+
- zh-CN: 退出登录
|
|
2
|
+
en: Log Out
|
|
3
|
+
|
|
4
|
+
- zh-CN: 选择类型
|
|
5
|
+
en: Select type
|
|
6
|
+
|
|
7
|
+
- zh-CN: 已存在$1为$2的项
|
|
8
|
+
en: An item with a value of $1 to $2 already exists
|
|
9
|
+
|
|
10
|
+
- zh-CN: 展示时机
|
|
11
|
+
en: Display timing
|
|
12
|
+
|
|
13
|
+
- zh-CN: 数据配置
|
|
14
|
+
en: data configuration
|
|
15
|
+
|
|
16
|
+
- zh-CN: 权限管理
|
|
17
|
+
en: Rights Management
|
|
18
|
+
|
|
19
|
+
- zh-CN: 字段管理
|
|
20
|
+
en: Field management
|
|
21
|
+
|
|
22
|
+
- zh-CN: 动作管理
|
|
23
|
+
en: Action Management
|
|
24
|
+
|
|
25
|
+
- zh-CN: 正在联网验证,请耐心等待..
|
|
26
|
+
en: "Network verification in progress, please be patient"
|
|
27
|
+
|
|
28
|
+
- zh-CN: 验证失败!
|
|
29
|
+
en: Verification failed!
|
|
30
|
+
|
|
31
|
+
- zh-CN: 已为您添加/更新以下权限
|
|
32
|
+
en: We have added/updated the following permissions for you
|
|
33
|
+
|
|
34
|
+
- zh-CN: 发现异常属性:$1
|
|
35
|
+
en: "Abnormal attribute found: $1"
|
|
36
|
+
|
|
37
|
+
- zh-CN: 标记不匹配
|
|
38
|
+
en: Tag mismatch
|
|
39
|
+
|
|
40
|
+
- zh-CN: 文件位置
|
|
41
|
+
en: File location
|
|
42
|
+
|
|
43
|
+
- zh-CN: 摘要
|
|
44
|
+
en: Summary
|
|
45
|
+
|
|
46
|
+
- zh-CN: "类型不支持: $1"
|
|
47
|
+
en: "Type not supported: $1"
|
|
48
|
+
|
|
49
|
+
- zh-CN: 原始数据大小为$1,目标文件大小为$2,压缩率为$3
|
|
50
|
+
en: "The original data size is $1, the target file size is $2, and the compression ratio is $3"
|
|
51
|
+
|
|
1
52
|
- zh-CN: 路径$1未找到入口文件
|
|
2
53
|
en: Path $1 entry file not found
|
|
3
54
|
|
|
@@ -292,11 +343,11 @@
|
|
|
292
343
|
- zh-CN: 当前环境无法启用证书更新服务,nodeJs版本为$1
|
|
293
344
|
en: "The current environment cannot enable certificate update service, nodeJs version is $1"
|
|
294
345
|
|
|
295
|
-
- zh-CN:
|
|
296
|
-
en: "In $1, $2 references the following $3 paths
|
|
346
|
+
- zh-CN: $1中,由$2引用了如下$3个路径
|
|
347
|
+
en: "In $1, $2 references the following $3 paths"
|
|
297
348
|
|
|
298
|
-
- zh-CN:
|
|
299
|
-
en: "Error reading, path
|
|
349
|
+
- zh-CN: 读取出错了,路径
|
|
350
|
+
en: "Error reading, path"
|
|
300
351
|
|
|
301
352
|
- zh-CN: 创建账户
|
|
302
353
|
en: Create account
|
|
@@ -382,8 +433,8 @@
|
|
|
382
433
|
- zh-CN: 已取消
|
|
383
434
|
en: Canceled
|
|
384
435
|
|
|
385
|
-
- zh-CN:
|
|
386
|
-
en:
|
|
436
|
+
- zh-CN: 输入原密码
|
|
437
|
+
en: Enter the original password
|
|
387
438
|
|
|
388
439
|
- zh-CN: 数据过载..
|
|
389
440
|
en: Data overload..
|
|
@@ -463,8 +514,8 @@
|
|
|
463
514
|
- zh-CN: 加载共享路径出错
|
|
464
515
|
en: Error loading shared path
|
|
465
516
|
|
|
466
|
-
- zh-CN:
|
|
467
|
-
en:
|
|
517
|
+
- zh-CN: 内容格式不支持
|
|
518
|
+
en: Content format not supported
|
|
468
519
|
|
|
469
520
|
- zh-CN: 无法存储
|
|
470
521
|
en: Unable to store
|
|
@@ -484,14 +535,14 @@
|
|
|
484
535
|
- zh-CN: 已跳过
|
|
485
536
|
en: Skipped
|
|
486
537
|
|
|
487
|
-
- zh-CN:
|
|
488
|
-
en:
|
|
538
|
+
- zh-CN: 在异步过程中发现未处理的异常
|
|
539
|
+
en: Unhandled exception found during asynchronous process
|
|
489
540
|
|
|
490
541
|
- zh-CN: 颜色数据不正确:$1
|
|
491
542
|
en: "Color data incorrect: $1"
|
|
492
543
|
|
|
493
|
-
- zh-CN:
|
|
494
|
-
en:
|
|
544
|
+
- zh-CN: 请使用https访问如下路径
|
|
545
|
+
en: Please use HTTPS to access the following path
|
|
495
546
|
|
|
496
547
|
- zh-CN: 对象过大,$1未能完成比对
|
|
497
548
|
en: "Object too large, $1 failed to complete comparison"
|
|
@@ -646,8 +697,8 @@
|
|
|
646
697
|
- zh-CN: 父作用域链的长度必须相等着
|
|
647
698
|
en: The length of the parent scope chain must be equal
|
|
648
699
|
|
|
649
|
-
- zh-CN:
|
|
650
|
-
en:
|
|
700
|
+
- zh-CN: 同一个id不能使用两次
|
|
701
|
+
en: The same ID cannot be used twice
|
|
651
702
|
|
|
652
703
|
- zh-CN: 暂不支持在同一元素上使用多次if结构!
|
|
653
704
|
en: We currently do not support using the if structure multiple times on the same element!
|
|
@@ -667,8 +718,8 @@
|
|
|
667
718
|
- zh-CN: 加载$1失败!
|
|
668
719
|
en: Loading $1 failed!
|
|
669
720
|
|
|
670
|
-
- zh-CN:
|
|
671
|
-
en:
|
|
721
|
+
- zh-CN: 编译错误
|
|
722
|
+
en: Compilation error
|
|
672
723
|
|
|
673
724
|
- zh-CN: 请不要重复添加
|
|
674
725
|
en: Please do not add again
|
|
@@ -694,11 +745,11 @@
|
|
|
694
745
|
- zh-CN: 密码不正确!
|
|
695
746
|
en: The password is incorrect!
|
|
696
747
|
|
|
697
|
-
- zh-CN:
|
|
698
|
-
en:
|
|
748
|
+
- zh-CN: 输入新密码
|
|
749
|
+
en: Enter new password
|
|
699
750
|
|
|
700
|
-
- zh-CN:
|
|
701
|
-
en:
|
|
751
|
+
- zh-CN: 确认密码
|
|
752
|
+
en: Confirm password
|
|
702
753
|
|
|
703
754
|
- zh-CN: 两次输入密码不一致
|
|
704
755
|
en: The passwords entered twice are inconsistent
|
|
@@ -730,8 +781,8 @@
|
|
|
730
781
|
- zh-CN: "重复定义: $1"
|
|
731
782
|
en: "Duplicate definition: $1"
|
|
732
783
|
|
|
733
|
-
- zh-CN:
|
|
734
|
-
en:
|
|
784
|
+
- zh-CN: 路径不存在
|
|
785
|
+
en: Path does not exist
|
|
735
786
|
|
|
736
787
|
- zh-CN: 指定的任务 $1 不存在!
|
|
737
788
|
en: The specified task $1 does not exist!
|
|
@@ -751,8 +802,8 @@
|
|
|
751
802
|
- zh-CN: 余集变量不能有默认值
|
|
752
803
|
en: Residual variables cannot have default values
|
|
753
804
|
|
|
754
|
-
- zh-CN:
|
|
755
|
-
en:
|
|
805
|
+
- zh-CN: 辅助级别异常
|
|
806
|
+
en: Auxiliary level exception
|
|
756
807
|
|
|
757
808
|
- zh-CN: 自
|
|
758
809
|
en: since
|
|
@@ -1009,8 +1060,8 @@
|
|
|
1009
1060
|
- zh-CN: 有$1个文件上传失败!
|
|
1010
1061
|
en: $1 file failed to upload!
|
|
1011
1062
|
|
|
1012
|
-
- zh-CN:
|
|
1013
|
-
en:
|
|
1063
|
+
- zh-CN: 读取文件$1出错
|
|
1064
|
+
en: Error reading file $1
|
|
1014
1065
|
|
|
1015
1066
|
- zh-CN: 文件不存在
|
|
1016
1067
|
en: file does not exist
|
|
@@ -1075,8 +1126,8 @@
|
|
|
1075
1126
|
- zh-CN: 不能移入子文件夹
|
|
1076
1127
|
en: Unable to move into sub folder
|
|
1077
1128
|
|
|
1078
|
-
- zh-CN:
|
|
1079
|
-
en:
|
|
1129
|
+
- zh-CN: 请输入新的$1名
|
|
1130
|
+
en: Please enter a new $1 name
|
|
1080
1131
|
|
|
1081
1132
|
- zh-CN: 文件夹
|
|
1082
1133
|
en: Folder
|
|
@@ -1186,8 +1237,8 @@
|
|
|
1186
1237
|
- zh-CN: 更新连接
|
|
1187
1238
|
en: Update Connection
|
|
1188
1239
|
|
|
1189
|
-
- zh-CN: $1
|
|
1190
|
-
en:
|
|
1240
|
+
- zh-CN: $1首次引用点如下
|
|
1241
|
+
en: the first position $1 occurs is
|
|
1191
1242
|
|
|
1192
1243
|
- zh-CN: 与$1相关的项
|
|
1193
1244
|
en: item related to $1
|
|
@@ -1285,8 +1336,8 @@
|
|
|
1285
1336
|
- zh-CN: 正在查找
|
|
1286
1337
|
en: Finding
|
|
1287
1338
|
|
|
1288
|
-
- zh-CN:
|
|
1289
|
-
en:
|
|
1339
|
+
- zh-CN: 路径不正在
|
|
1340
|
+
en: Path not in progress
|
|
1290
1341
|
|
|
1291
1342
|
- zh-CN: "处理完成:$1\r\n => $2"
|
|
1292
1343
|
en: "Processing completed: $1\r\n => $2"
|
|
@@ -1300,8 +1351,8 @@
|
|
|
1300
1351
|
- zh-CN: 无法确定文件名
|
|
1301
1352
|
en: Unable to determine file name
|
|
1302
1353
|
|
|
1303
|
-
- zh-CN:
|
|
1304
|
-
en:
|
|
1354
|
+
- zh-CN: 完成
|
|
1355
|
+
en: Complete
|
|
1305
1356
|
|
|
1306
1357
|
- zh-CN: 服务器忙,请稍后再试!
|
|
1307
1358
|
en: "The server is busy, please try again later!"
|
|
@@ -1369,8 +1420,8 @@
|
|
|
1369
1420
|
- zh-CN: 参数异常!
|
|
1370
1421
|
en: Parameter exception!
|
|
1371
1422
|
|
|
1372
|
-
- zh-CN:
|
|
1373
|
-
en:
|
|
1423
|
+
- zh-CN: range参数错误
|
|
1424
|
+
en: Range parameter error
|
|
1374
1425
|
|
|
1375
1426
|
- zh-CN: each参数异常!
|
|
1376
1427
|
en: Abnormal each parameter!
|
|
@@ -1405,11 +1456,11 @@
|
|
|
1405
1456
|
- zh-CN: 正在合成
|
|
1406
1457
|
en: Synthesizing
|
|
1407
1458
|
|
|
1408
|
-
- zh-CN: 在 $1
|
|
1409
|
-
en:
|
|
1459
|
+
- zh-CN: 在 $1 中检测到可能不存在的外部变量
|
|
1460
|
+
en: Detected external variables that may not exist in $1
|
|
1410
1461
|
|
|
1411
|
-
- zh-CN:
|
|
1412
|
-
en:
|
|
1462
|
+
- zh-CN: 压缩($1/$2)
|
|
1463
|
+
en: Compress ($1/$2)
|
|
1413
1464
|
|
|
1414
1465
|
- zh-CN: 存在环形引用:$1
|
|
1415
1466
|
en: "There is a circular reference: $1"
|
|
@@ -1417,11 +1468,11 @@
|
|
|
1417
1468
|
- zh-CN: 没有可导出的文件!
|
|
1418
1469
|
en: There are no files to export!
|
|
1419
1470
|
|
|
1420
|
-
- zh-CN:
|
|
1421
|
-
en:
|
|
1471
|
+
- zh-CN: 缺少变量
|
|
1472
|
+
en: Missing variable
|
|
1422
1473
|
|
|
1423
|
-
- zh-CN:
|
|
1424
|
-
en:
|
|
1474
|
+
- zh-CN: 缺少常量
|
|
1475
|
+
en: Missing constant
|
|
1425
1476
|
|
|
1426
1477
|
- zh-CN: watch功能在当前操作系统可能无法使用!
|
|
1427
1478
|
en: The watch function may not be available on the current operating system!
|
|
@@ -1555,14 +1606,14 @@
|
|
|
1555
1606
|
- zh-CN: 有测试代码
|
|
1556
1607
|
en: With test code
|
|
1557
1608
|
|
|
1558
|
-
- zh-CN:
|
|
1559
|
-
en:
|
|
1609
|
+
- zh-CN: 环境依赖项
|
|
1610
|
+
en: Environmental dependencies
|
|
1560
1611
|
|
|
1561
1612
|
- zh-CN: 无环境依赖项
|
|
1562
1613
|
en: No environmental dependencies
|
|
1563
1614
|
|
|
1564
|
-
- zh-CN:
|
|
1565
|
-
en:
|
|
1615
|
+
- zh-CN: 导入项
|
|
1616
|
+
en: Import items
|
|
1566
1617
|
|
|
1567
1618
|
- zh-CN: 无导入项
|
|
1568
1619
|
en: No import items
|
|
@@ -1621,8 +1672,8 @@
|
|
|
1621
1672
|
- zh-CN: 序号
|
|
1622
1673
|
en: Number
|
|
1623
1674
|
|
|
1624
|
-
- zh-CN:
|
|
1625
|
-
en:
|
|
1675
|
+
- zh-CN: 翻译结果仅做为参考,未必完美替换,语法参考
|
|
1676
|
+
en: The translation results are only for reference and may not be a perfect replacement. Grammar reference
|
|
1626
1677
|
|
|
1627
1678
|
- zh-CN: 国际化工具仅在浏览器支持 showDirectoryPicker 时可用
|
|
1628
1679
|
en: International chemical tools are only available when the browser supports showDirectoryPicker
|
|
@@ -1633,11 +1684,11 @@
|
|
|
1633
1684
|
- zh-CN: 导出到文件
|
|
1634
1685
|
en: Export to file
|
|
1635
1686
|
|
|
1636
|
-
- zh-CN:
|
|
1637
|
-
en:
|
|
1687
|
+
- zh-CN: 翻译缺失
|
|
1688
|
+
en: Lack of translation
|
|
1638
1689
|
|
|
1639
|
-
- zh-CN:
|
|
1640
|
-
en:
|
|
1690
|
+
- zh-CN: 翻译
|
|
1691
|
+
en: Translation
|
|
1641
1692
|
|
|
1642
1693
|
- zh-CN: "跳过了缺少参数的请求:$1 $2 $3\r\n缺少参数:$4"
|
|
1643
1694
|
en: "Skipped request $1 $2 $3 \r\n Missing parameters $4"
|
|
@@ -1801,8 +1852,8 @@
|
|
|
1801
1852
|
- zh-CN: 帮助
|
|
1802
1853
|
en: HELP
|
|
1803
1854
|
|
|
1804
|
-
- zh-CN: $1
|
|
1805
|
-
en:
|
|
1855
|
+
- zh-CN: $1可以使用的命令语法有
|
|
1856
|
+
en: The command syntax that can be used for $1 is
|
|
1806
1857
|
|
|
1807
1858
|
- zh-CN: 其中
|
|
1808
1859
|
en: among them
|
|
@@ -1819,8 +1870,8 @@
|
|
|
1819
1870
|
- zh-CN: 连接到
|
|
1820
1871
|
en: connection to
|
|
1821
1872
|
|
|
1822
|
-
- zh-CN:
|
|
1823
|
-
en:
|
|
1873
|
+
- zh-CN: 可以使用的命令有
|
|
1874
|
+
en: The commands that can be used are
|
|
1824
1875
|
|
|
1825
1876
|
- zh-CN: 如要显示更具体的信息,请使用:$1
|
|
1826
1877
|
en: "To show more messages, use $1"
|
|
@@ -1864,20 +1915,20 @@
|
|
|
1864
1915
|
- zh-CN: 没有自定义的环境变量
|
|
1865
1916
|
en: No custom environment variables
|
|
1866
1917
|
|
|
1867
|
-
- zh-CN: 已设置如下 $1
|
|
1868
|
-
en:
|
|
1918
|
+
- zh-CN: 已设置如下 $1 个环境变量
|
|
1919
|
+
en: The following $1 environment variables have been set
|
|
1869
1920
|
|
|
1870
|
-
- zh-CN:
|
|
1871
|
-
en:
|
|
1921
|
+
- zh-CN: 未修改过的默认变量如下
|
|
1922
|
+
en: The unmodified default variables are as follows
|
|
1872
1923
|
|
|
1873
|
-
- zh-CN:
|
|
1874
|
-
en:
|
|
1924
|
+
- zh-CN: 其他环境变量如下
|
|
1925
|
+
en: Other environmental variables are as follows
|
|
1875
1926
|
|
|
1876
1927
|
- zh-CN: 不支持该命令<red2> $1 </red2>
|
|
1877
1928
|
en: The command <red2>$1</red2> is not supported
|
|
1878
1929
|
|
|
1879
|
-
- zh-CN:
|
|
1880
|
-
en:
|
|
1930
|
+
- zh-CN: 如下命令与您输入的命令相似
|
|
1931
|
+
en: The following command is similar to the one you entered
|
|
1881
1932
|
|
|
1882
1933
|
- zh-CN: 异常退出
|
|
1883
1934
|
en: Abnormal exit
|
package/apps/blank/index.html
CHANGED
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
|
11
11
|
<link rel="Shortcut Icon" href="http://efront.cc/favicon.ico" type="image/x-icon" />
|
|
12
12
|
<meta name="viewport" content="initial-scale=1,maximum-scale=1,width=device-width" />
|
|
13
|
-
<title>
|
|
13
|
+
<title>efront 空项目</title>
|
|
14
14
|
<script deleteoncompile efrontloader>
|
|
15
15
|
// 若要在开发环境使用内置组件,请保留此script标签中的代码,在编译发布时,这里的代码会自动删除
|
|
16
16
|
</script>
|
package/apps/index.jsp
CHANGED
|
@@ -1,17 +1,28 @@
|
|
|
1
1
|
<script serverside>
|
|
2
2
|
var fs = require("fs");
|
|
3
3
|
var path = require("path");
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
}
|
|
4
|
+
var fsp = fs.promises;
|
|
5
|
+
if (!fsp) throw new Error('当前服务器nodejs版本过低,无法使用!');
|
|
6
|
+
var names = await fsp.readdir(__dirname, { withFileTypes: true });
|
|
7
|
+
names = names.filter(a => a.isDirectory()).map(a => a.name);
|
|
8
|
+
var indexList = context.indexList = [];
|
|
9
|
+
for (var n of names) {
|
|
10
|
+
if (fs.existsSync(path.join(__dirname, n, '主页.html'))) indexList.push([n, '主页.html']);
|
|
11
|
+
else if (fs.existsSync(path.join(__dirname, n, '主页.jsp'))) indexList.push([n, '主页.jsp']);
|
|
12
|
+
else if (fs.existsSync(path.join(__dirname, n, 'index.html'))) indexList.push([n, 'index.html']);
|
|
13
|
+
else if (fs.existsSync(path.join(__dirname, n, 'index.jsp'))) indexList.push([n, 'index.jsp']);
|
|
14
|
+
};
|
|
15
|
+
for (var o of indexList) {
|
|
16
|
+
var [p, n] = o;
|
|
17
|
+
var p = path.join(__dirname, p, n);
|
|
18
|
+
var stats = await fsp.stat(p);
|
|
19
|
+
if (!stats.isFile()) continue;
|
|
20
|
+
o.push(stats);
|
|
21
|
+
var data = await fsp.readFile(p);
|
|
22
|
+
var title = /<title>([\s\S]*?)<\/title>/i.exec(String(data));
|
|
23
|
+
if (title) o.push(title[1]);
|
|
24
|
+
}
|
|
25
|
+
// throw new Error;
|
|
15
26
|
</script>
|
|
16
27
|
<!DOCTYPE html>
|
|
17
28
|
<!--
|
|
@@ -69,58 +80,96 @@
|
|
|
69
80
|
|
|
70
81
|
a {
|
|
71
82
|
display: inline-block;
|
|
72
|
-
width:
|
|
83
|
+
width: 180px;
|
|
84
|
+
height: 60px;
|
|
85
|
+
vertical-align: top;
|
|
73
86
|
text-decoration: none;
|
|
74
87
|
line-height: 1.2;
|
|
75
88
|
margin: 0 12px 12px 0;
|
|
76
89
|
padding: 4px 6px;
|
|
77
|
-
border: 1px solid #
|
|
90
|
+
border: 1px solid #0003;
|
|
78
91
|
background: #fff9;
|
|
92
|
+
border-radius: 4px;
|
|
93
|
+
color: #16c;
|
|
94
|
+
position: relative;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
a:visited {
|
|
98
|
+
color: #36a;
|
|
79
99
|
}
|
|
80
100
|
|
|
101
|
+
|
|
81
102
|
a:hover {
|
|
82
|
-
|
|
103
|
+
color: #39c;
|
|
104
|
+
border-color: #39c;
|
|
83
105
|
}
|
|
84
106
|
|
|
107
|
+
a:active {
|
|
108
|
+
color: #c24;
|
|
109
|
+
border-color: #c24;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
|
|
85
113
|
a>[name] {
|
|
86
|
-
|
|
114
|
+
padding: 3px;
|
|
115
|
+
color: #333;
|
|
116
|
+
font-size: 14px;
|
|
117
|
+
font-family: 楷体, sans-serif;
|
|
87
118
|
}
|
|
88
119
|
|
|
89
120
|
a>[time] {
|
|
90
|
-
font-size:
|
|
121
|
+
font-size: 8px;
|
|
122
|
+
position: absolute;
|
|
123
|
+
right: 6px;
|
|
124
|
+
bottom: 4px;
|
|
91
125
|
color: #999;
|
|
92
126
|
}
|
|
93
127
|
|
|
94
|
-
a
|
|
128
|
+
a>b {
|
|
129
|
+
font-family: 'Times New Roman', Times, sans-serif;
|
|
130
|
+
font-style: italic;
|
|
131
|
+
font-size: 12px;
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
a:hover>b {
|
|
95
135
|
text-decoration: underline;
|
|
96
136
|
}
|
|
97
137
|
|
|
138
|
+
[npm] {
|
|
139
|
+
color: #fba;
|
|
140
|
+
text-shadow: 1px -1px 0 #c24;
|
|
141
|
+
}
|
|
142
|
+
|
|
98
143
|
[name] {
|
|
144
|
+
white-space: nowrap;
|
|
145
|
+
overflow: hidden;
|
|
146
|
+
text-overflow: ellipsis;
|
|
99
147
|
display: block;
|
|
100
148
|
}
|
|
149
|
+
|
|
150
|
+
[note] {
|
|
151
|
+
font-size: 14px;
|
|
152
|
+
font-family: 仿宋, sans-serif;
|
|
153
|
+
padding: 10px 16px 0 16px;
|
|
154
|
+
}
|
|
101
155
|
</style>
|
|
102
156
|
</head>
|
|
103
157
|
|
|
104
158
|
<body scroll=no max-render=1440>
|
|
159
|
+
<div note>选择任意项目查看,开发环境加载有些慢.. </div>
|
|
105
160
|
<div content>
|
|
106
161
|
<script serverside>
|
|
107
162
|
var rows = [];
|
|
108
163
|
var fs = require("fs");
|
|
109
164
|
var path = require("path");
|
|
110
|
-
for (var n of context.
|
|
111
|
-
|
|
112
|
-
fs.stat(path.join(__dirname, n), function (error, stats) {
|
|
113
|
-
if (error) return oh(error);
|
|
114
|
-
ok(stats);
|
|
115
|
-
})
|
|
116
|
-
});
|
|
117
|
-
|
|
118
|
-
rows.push(`<a href="${n}?${stats.mtime.toLocaleDateString()}" ><b name>${n}</b><span time>${stats.mtime.toLocaleDateString()}</span></a>`);
|
|
165
|
+
for (var [p, n, stats, t = p] of context.indexList) {
|
|
166
|
+
rows.push(`<a href="${p}" target=_blank><b >${p}</b><span name>${t}</span><span time>${stats.mtime.toLocaleDateString()}</span></a>`);
|
|
119
167
|
}
|
|
120
168
|
return rows.join('')
|
|
121
169
|
</script>
|
|
122
170
|
<a href="https://www.npmjs.com/package/efront" target="_blank">
|
|
123
|
-
<b
|
|
171
|
+
<b npm>npm</b>
|
|
172
|
+
<span name>efront</span>
|
|
124
173
|
<span time> </span>
|
|
125
174
|
</a>
|
|
126
175
|
</div>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<script serverside>
|
|
2
2
|
var time = +new Date;
|
|
3
|
-
var out_trade_no = encode62.
|
|
3
|
+
var out_trade_no = encode62.packdecode(request.id);
|
|
4
4
|
var payed = /^(TRADE_FINISHED|TRADE_SUCCESS)$/i;
|
|
5
5
|
for (var cx = 0, dx = 10; cx < dx; cx++) {
|
|
6
6
|
if (+new Date - time > 30000) return;
|
package/apps/pay/alipay.jsp
CHANGED
|
@@ -51,7 +51,7 @@ ACQ.MERCHANT_PERM_RECEIPT_DAY_LIMIT 超过单日累计收款额度 联系支付
|
|
|
51
51
|
return a;
|
|
52
52
|
}
|
|
53
53
|
var amount = request.id;
|
|
54
|
-
if (!/^(\d+)(\.\d+)?$/.test(amount)) amount = encode62.
|
|
54
|
+
if (!/^(\d+)(\.\d+)?$/.test(amount)) amount = encode62.packdecode(request.id);
|
|
55
55
|
var [amount, subject = '网页扫码支付'] = amount.split(',');
|
|
56
56
|
var trade_no = createId();
|
|
57
57
|
if (!+amount) return forbidden("参数异常");
|
package/apps/pivot/auth/login.js
CHANGED
|
@@ -28,9 +28,9 @@ function main(host) {
|
|
|
28
28
|
var api = Object.assign({}, await data.getApi("login"));
|
|
29
29
|
api.base = base;
|
|
30
30
|
var info = await data.from(api, {
|
|
31
|
-
a: encode62.
|
|
31
|
+
a: encode62.packencode(encode62.geta(password))
|
|
32
32
|
}).loading_promise;
|
|
33
|
-
info = encode62.
|
|
33
|
+
info = encode62.packupdate(info);
|
|
34
34
|
data.setSource(base, info);
|
|
35
35
|
if (host) {
|
|
36
36
|
cast(page, 'login', info);
|
package/apps/pivot/cert/main.xht
CHANGED
|
@@ -100,9 +100,7 @@
|
|
|
100
100
|
var finished = false;
|
|
101
101
|
var publicKey, privateKey;
|
|
102
102
|
loadUnique().then(render.digest).then(lazy(async function () {
|
|
103
|
-
|
|
104
|
-
bar.reshape();
|
|
105
|
-
var certlist = await plist.load('cert');
|
|
103
|
+
var certlist = await plist.load('cert', 'hostname');
|
|
106
104
|
acme2.domain = formdata.domain = certlist.map(c => c.hostname).join("\r\n");
|
|
107
105
|
}));
|
|
108
106
|
var a = button;
|
|
@@ -131,13 +129,20 @@
|
|
|
131
129
|
fields: refilm`
|
|
132
130
|
$公钥/public_key/单击生成 ${function (elem) {
|
|
133
131
|
var { data, field } = elem;
|
|
134
|
-
elem.innerHTML = `<a @click="gen()" -if="!data[field.key]">单击生成</a><span -else -bind="data[field.key]"></span>`;
|
|
132
|
+
elem.innerHTML = `<a @click=ipt()>手动输入</a>  <a @click="gen()" -if="!data[field.key]">单击生成</a><span -else -bind="data[field.key]"></span>`;
|
|
135
133
|
render(elem, {
|
|
136
134
|
data, field, async gen() {
|
|
137
135
|
await acme2.initUnique();
|
|
138
136
|
formdata.public_key = acme2.public_key;
|
|
139
137
|
await saveUnique();
|
|
140
|
-
}
|
|
138
|
+
},
|
|
139
|
+
async ipt() {
|
|
140
|
+
var data = await prompt('请输入完整密钥对,以英文逗号分割', {
|
|
141
|
+
value: acme2.pickUnique()
|
|
142
|
+
});
|
|
143
|
+
acme2.makeUnique(data);
|
|
144
|
+
console.log(data);
|
|
145
|
+
},
|
|
141
146
|
})
|
|
142
147
|
}}
|
|
143
148
|
*邮箱/email email
|
|
@@ -151,6 +156,14 @@
|
|
|
151
156
|
get message() {
|
|
152
157
|
return formdata.kid ? i18n`已创建账户` : '';
|
|
153
158
|
},
|
|
159
|
+
options: {
|
|
160
|
+
async 检查账户(actived) {
|
|
161
|
+
var params = submit(actived.fields, formdata);
|
|
162
|
+
await saveUnique(params);
|
|
163
|
+
formdata.kid = await acme2.getAccount(params);
|
|
164
|
+
await saveUnique();
|
|
165
|
+
},
|
|
166
|
+
},
|
|
154
167
|
actions: {
|
|
155
168
|
async 创建账户(actived) {
|
|
156
169
|
if (formdata.kid) {
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
<style>
|
|
2
|
+
[field=method] {
|
|
3
|
+
jscode {
|
|
4
|
+
height: 160px;
|
|
5
|
+
}
|
|
6
|
+
}
|
|
7
|
+
</style>
|
|
8
|
+
<div head>编辑动作</div>
|
|
9
|
+
<div body>
|
|
10
|
+
<field -repeat="f in fields" -src="[f,o]"></field>
|
|
11
|
+
</div>
|
|
12
|
+
<div foot>
|
|
13
|
+
<button @click="cancel" .white>取消</button>
|
|
14
|
+
<button @click="save">确定</button>
|
|
15
|
+
</div>
|
|
16
|
+
<script>
|
|
17
|
+
var [db, a] = arguments[0];
|
|
18
|
+
var o = Object.assign({}, a);
|
|
19
|
+
view(this);
|
|
20
|
+
var code = function (elem) {
|
|
21
|
+
var elem = document.createElement('jscode');
|
|
22
|
+
elem.type = 'js';
|
|
23
|
+
elem.contentEditable = true;
|
|
24
|
+
茨菰$编辑框(elem);
|
|
25
|
+
return elem;
|
|
26
|
+
};
|
|
27
|
+
var actionsExist = db.actions?.filter(o => o !== a) || [];
|
|
28
|
+
actionsExist.push.apply(actionsExist, db.fields);
|
|
29
|
+
var fields = refilm`
|
|
30
|
+
*键名/key input ^${actionsExist}
|
|
31
|
+
显示名/name input ^${actionsExist}
|
|
32
|
+
展示时机/when ${code}
|
|
33
|
+
动作/method ${code}
|
|
34
|
+
备注/disc text
|
|
35
|
+
`;
|
|
36
|
+
|
|
37
|
+
var box = this;
|
|
38
|
+
var save = function () {
|
|
39
|
+
var b = submit(fields, o);
|
|
40
|
+
var actions = db.actions;
|
|
41
|
+
if (!actions) actions = db.actions = [];
|
|
42
|
+
if (!a) actions.push(b);
|
|
43
|
+
else Object.assign(a, b);
|
|
44
|
+
remove(box);
|
|
45
|
+
};
|
|
46
|
+
resize.on(this);
|
|
47
|
+
var cancel = function () {
|
|
48
|
+
remove(box);
|
|
49
|
+
}
|
|
50
|
+
once('mounted')(this, function () {
|
|
51
|
+
drag.on(this, this.children[0]);
|
|
52
|
+
});
|
|
53
|
+
</script>
|