mm_os 2.9.1 → 2.9.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 (241) hide show
  1. package/cache/route/main/config.json +1 -0
  2. package/cache/sys/app_admin/config.json +1 -0
  3. package/cache/sys/mqtt_engine/config.json +1 -0
  4. package/cache/sys/user/config.json +1 -0
  5. package/core/com/api/drive.js +9 -89
  6. package/core/com/api/index.js +3 -31
  7. package/core/com/cmd/drive.js +10 -1
  8. package/core/com/cmd/index.js +15 -1
  9. package/core/com/component/drive.js +1 -1
  10. package/core/com/component/index.js +16 -12
  11. package/core/com/db/drive.js +1 -1
  12. package/core/com/db/index.js +15 -17
  13. package/core/com/event/drive.js +3 -1
  14. package/core/com/event/index.js +74 -61
  15. package/core/com/eventer/com.js +2 -2
  16. package/core/com/middleware/com.js +41 -16
  17. package/core/com/mqtt/drive.js +4 -3
  18. package/core/com/mqtt/index.js +10 -8
  19. package/core/com/nav/drive.js +1 -19
  20. package/core/com/nav/index.js +1 -1
  21. package/core/com/param/drive.js +1 -1
  22. package/core/com/param/index.js +1 -27
  23. package/core/com/plugin/drive.js +18 -19
  24. package/core/com/plugin/index.js +16 -21
  25. package/core/com/plugin/script.js +109 -58
  26. package/core/com/rpc/com.json +4 -0
  27. package/core/com/rpc/drive.js +160 -0
  28. package/core/com/rpc/index.js +87 -0
  29. package/core/com/socket/drive.js +0 -1
  30. package/core/com/socket/index.js +5 -15
  31. package/core/com/sql/drive.js +1 -1
  32. package/core/com/sql/index.js +4 -31
  33. package/core/com/static/drive.js +13 -54
  34. package/core/com/static/index.js +14 -6
  35. package/core/com/task/drive.js +7 -2
  36. package/core/com/task/index.js +16 -36
  37. package/core/com/tpl/com.js +2 -2
  38. package/demo/app/dev/event_api/manage/event.json +19 -0
  39. package/demo/app/dev/event_api/manage/main.js +26 -0
  40. package/demo/app/dev/plugin/doc/static/api_list.html +144 -0
  41. package/demo/app/dev/plugin/doc/static/api_view.html +692 -0
  42. package/demo/app/dev/plugin/doc/static/index.html +138 -0
  43. package/demo/app/dev/plugin/doc/static/request_test.html +311 -0
  44. package/demo/app/dev/plugin/doc/static/static.js +28 -0
  45. package/demo/app/dev/plugin/doc/static/static.json +20 -0
  46. package/demo/app/dev/plugin/main/api_dev_client/app/api.json +13 -0
  47. package/demo/app/dev/plugin/main/api_dev_client/app/index.js +13 -0
  48. package/demo/app/dev/plugin/main/api_dev_client/app/param.json +147 -0
  49. package/demo/app/dev/plugin/main/api_dev_client/app/sql.json +28 -0
  50. package/demo/app/dev/plugin/main/api_dev_client/auto/api.json +37 -0
  51. package/demo/app/dev/plugin/main/api_dev_client/auto/auto_db.js +70 -0
  52. package/demo/app/dev/plugin/main/api_dev_client/auto/auto_file.js +32 -0
  53. package/demo/app/dev/plugin/main/api_dev_client/auto/index.js +51 -0
  54. package/demo/app/dev/plugin/main/api_dev_client/auto/param.json +51 -0
  55. package/demo/app/dev/plugin/main/api_dev_client/db/api.json +10 -0
  56. package/demo/app/dev/plugin/main/api_dev_client/db/index.js +69 -0
  57. package/demo/app/dev/plugin/main/api_dev_client/db/param.json +31 -0
  58. package/demo/app/dev/plugin/main/api_dev_client/dict/api.json +10 -0
  59. package/demo/app/dev/plugin/main/api_dev_client/dict/index.js +49 -0
  60. package/demo/app/dev/plugin/main/api_dev_client/dict/param.json +29 -0
  61. package/demo/app/dev/plugin/main/api_dev_client/help/api.json +10 -0
  62. package/demo/app/dev/plugin/main/api_dev_client/help/index.js +14 -0
  63. package/demo/app/dev/plugin/main/api_dev_client/help/param.json +31 -0
  64. package/demo/app/dev/plugin/main/api_dev_client/nav/api.json +10 -0
  65. package/demo/app/dev/plugin/main/api_dev_client/nav/index.js +36 -0
  66. package/demo/app/dev/plugin/main/api_dev_client/nav/param.json +36 -0
  67. package/demo/app/dev/plugin/main/api_dev_client/plugin/api.json +10 -0
  68. package/demo/app/dev/plugin/main/api_dev_client/plugin/index.js +13 -0
  69. package/demo/app/dev/plugin/main/api_dev_client/plugin/param.json +31 -0
  70. package/demo/app/dev/plugin/main/api_dev_client/source/api.json +10 -0
  71. package/demo/app/dev/plugin/main/api_dev_client/source/index.js +14 -0
  72. package/demo/app/dev/plugin/main/api_dev_client/source/param.json +31 -0
  73. package/demo/app/dev/plugin/main/api_dev_client/sql/api.json +10 -0
  74. package/demo/app/dev/plugin/main/api_dev_client/sql/index.js +13 -0
  75. package/demo/app/dev/plugin/main/api_dev_client/sql/param.json +31 -0
  76. package/demo/app/dev/plugin/main/api_dev_client/task/api.json +16 -0
  77. package/demo/app/dev/plugin/main/api_dev_client/task/index.js +13 -0
  78. package/demo/app/dev/plugin/main/api_dev_client/task/param.json +31 -0
  79. package/demo/app/dev/plugin/main/api_dev_client/translate/api.json +39 -0
  80. package/demo/app/dev/plugin/main/api_dev_client/translate/index.js +43 -0
  81. package/demo/app/dev/plugin/main/api_dev_client/translate/param.json +130 -0
  82. package/demo/app/dev/plugin/main/api_dev_client/translate/sql.json +62 -0
  83. package/demo/app/dev/plugin/main/api_dev_client/ui/api.json +10 -0
  84. package/demo/app/dev/plugin/main/api_dev_client/ui/index.js +146 -0
  85. package/demo/app/dev/plugin/main/api_dev_client/ui/param.json +31 -0
  86. package/demo/app/dev/plugin/main/api_dev_client/view/api.json +10 -0
  87. package/demo/app/dev/plugin/main/api_dev_client/view/index.js +100 -0
  88. package/demo/app/dev/plugin/main/api_dev_client/view/param.json +29 -0
  89. package/demo/app/dev/plugin/main/api_dev_client/view/tpl/block/nav.vue +12 -0
  90. package/demo/app/dev/plugin/main/api_dev_client/view/tpl/block/obj.vue +12 -0
  91. package/demo/app/dev/plugin/main/api_dev_client/view/tpl/block/post.vue +12 -0
  92. package/demo/app/dev/plugin/main/api_dev_client/view/tpl/block/query.vue +12 -0
  93. package/demo/app/dev/plugin/main/api_dev_client/view/tpl/page/edit.vue +39 -0
  94. package/demo/app/dev/plugin/main/api_dev_client/view/tpl/page/list.vue +12 -0
  95. package/demo/app/dev/plugin/main/api_dev_client/view/tpl/page/search.vue +12 -0
  96. package/demo/app/dev/plugin/main/api_dev_client/view/tpl/page/table.vue +12 -0
  97. package/demo/app/dev/plugin/main/api_dev_client/view/tpl/page/type.vue +12 -0
  98. package/demo/app/dev/plugin/main/api_dev_client/view/tpl/page/view.vue +56 -0
  99. package/demo/app/dev/plugin/main/api_dev_client/view/tpl/view.json +48 -0
  100. package/demo/app/dev/plugin/main/api_dev_manage/auto_subject/api.json +37 -0
  101. package/demo/app/dev/plugin/main/api_dev_manage/auto_subject/auto_db.js +120 -0
  102. package/demo/app/dev/plugin/main/api_dev_manage/auto_subject/copy/copy.js +101 -0
  103. package/demo/app/dev/plugin/main/api_dev_manage/auto_subject/copy/copy_framework.js +118 -0
  104. package/demo/app/dev/plugin/main/api_dev_manage/auto_subject/copy/copy_template.js +78 -0
  105. package/demo/app/dev/plugin/main/api_dev_manage/auto_subject/copy_file.js +97 -0
  106. package/demo/app/dev/plugin/main/api_dev_manage/auto_subject/create/common.js +198 -0
  107. package/demo/app/dev/plugin/main/api_dev_manage/auto_subject/create/django_server.js +104 -0
  108. package/demo/app/dev/plugin/main/api_dev_manage/auto_subject/create/helper.js +161 -0
  109. package/demo/app/dev/plugin/main/api_dev_manage/auto_subject/create/koa_art_server.js +102 -0
  110. package/demo/app/dev/plugin/main/api_dev_manage/auto_subject/create/mini_app_home.js +415 -0
  111. package/demo/app/dev/plugin/main/api_dev_manage/auto_subject/create/razor.js +0 -0
  112. package/demo/app/dev/plugin/main/api_dev_manage/auto_subject/create/springboot.js +0 -0
  113. package/demo/app/dev/plugin/main/api_dev_manage/auto_subject/create/thinkphp.js +0 -0
  114. package/demo/app/dev/plugin/main/api_dev_manage/auto_subject/create/uni_app_home.js +418 -0
  115. package/demo/app/dev/plugin/main/api_dev_manage/auto_subject/create/vue_cli_admin.js +78 -0
  116. package/demo/app/dev/plugin/main/api_dev_manage/auto_subject/create/vue_cli_home.js +112 -0
  117. package/demo/app/dev/plugin/main/api_dev_manage/auto_subject/create_file.js +97 -0
  118. package/demo/app/dev/plugin/main/api_dev_manage/auto_subject/db/add_data.js +221 -0
  119. package/demo/app/dev/plugin/main/api_dev_manage/auto_subject/db/create_table.js +162 -0
  120. package/demo/app/dev/plugin/main/api_dev_manage/auto_subject/db/set_auth_table.js +86 -0
  121. package/demo/app/dev/plugin/main/api_dev_manage/auto_subject/index.js +524 -0
  122. package/demo/app/dev/plugin/main/api_dev_manage/auto_subject/param.json +37 -0
  123. package/demo/app/route/app.js +131 -0
  124. package/demo/app/route/app.json +11 -0
  125. package/demo/app/route/event_api/client/event.json +10 -0
  126. package/demo/app/route/event_api/client/main.js +19 -0
  127. package/demo/app/route/event_api/manage/event.json +18 -0
  128. package/demo/app/route/event_api/manage/main.js +70 -0
  129. package/demo/app/route/plugin/main/api_route_client/pass/api.json +37 -0
  130. package/demo/app/route/plugin/main/api_route_client/pass/index.js +33 -0
  131. package/demo/app/route/plugin/main/api_route_client/pass/param.json +50 -0
  132. package/demo/app/route/plugin/main/index.js +144 -0
  133. package/demo/app/route/plugin/main/plugin.json +20 -0
  134. package/demo/app/sys/event_api/api/event.json +1 -1
  135. package/demo/app/sys/event_api/doc/event.json +18 -0
  136. package/demo/app/sys/event_api/doc/main.js +67 -0
  137. package/demo/app/sys/event_api/img/event.json +11 -0
  138. package/demo/app/sys/event_api/img/main.js +90 -0
  139. package/demo/app/sys/event_api/web/event.json +4 -4
  140. package/demo/app/sys/plugin/app_admin/index.js +127 -0
  141. package/demo/app/sys/plugin/app_admin/plugin.json +20 -0
  142. package/demo/app/sys/plugin/main/api_client/config/sql.json +70 -0
  143. package/demo/app/sys/plugin/main/api_client/lang/api.json +37 -0
  144. package/demo/app/sys/plugin/main/api_client/lang/index.js +27 -0
  145. package/demo/app/sys/plugin/main/api_client/lang/param.json +22 -0
  146. package/demo/app/sys/plugin/main/api_client/translate/api.json +39 -0
  147. package/demo/app/sys/plugin/main/api_client/translate/index.js +21 -0
  148. package/demo/app/sys/plugin/main/api_client/translate/param.json +130 -0
  149. package/demo/app/sys/plugin/main/api_client/translate/sql.json +62 -0
  150. package/demo/app/sys/plugin/main/static/static.json +1 -1
  151. package/demo/app/sys/plugin/main/task/task_demo/index.js +37 -0
  152. package/demo/app/sys/plugin/main/task/task_demo/task.json +24 -0
  153. package/demo/app/sys/plugin/mqtt_engine/LICENSE +201 -0
  154. package/demo/app/sys/plugin/mqtt_engine/api_sys_client/scheme/api.json +33 -0
  155. package/demo/app/sys/plugin/mqtt_engine/api_sys_client/scheme/index.js +31 -0
  156. package/demo/app/sys/plugin/mqtt_engine/api_sys_client/scheme/param.json +130 -0
  157. package/demo/app/sys/plugin/mqtt_engine/index.js +51 -0
  158. package/demo/app/sys/plugin/mqtt_engine/mqtt/df/index.js +509 -0
  159. package/demo/app/sys/plugin/mqtt_engine/mqtt/df/mqtt.json +24 -0
  160. package/demo/app/sys/plugin/mqtt_engine/mqtt/zs/index.js +622 -0
  161. package/demo/app/sys/plugin/mqtt_engine/mqtt/zs/mqtt.json +36 -0
  162. package/demo/app/sys/plugin/mqtt_engine/plugin.json +21 -0
  163. package/demo/app/sys/plugin/mqtt_engine/static/img/logo.png +0 -0
  164. package/demo/app/sys/plugin/mqtt_engine/static/img/logo1.png +0 -0
  165. package/demo/app/sys/plugin/mqtt_engine/static/static.json +18 -0
  166. package/demo/app/sys/plugin/user/index.js +127 -0
  167. package/demo/app/sys/plugin/user/plugin.json +20 -0
  168. package/demo/app/sys/plugin/user/static/img/logo.png +0 -0
  169. package/demo/app/sys/plugin/user/static/static.js +28 -0
  170. package/demo/app/sys/plugin/user/static/static.json +20 -0
  171. package/demo/app/sys/static/img/avatar_1674484608066.png +0 -0
  172. package/demo/app/sys/static/img/avatar_1674633778171.jpeg +0 -0
  173. package/demo/app/sys/static/img/avatar_1674962702334.jpeg +0 -0
  174. package/demo/app/sys/static/img/avatar_1675075431736.jpeg +0 -0
  175. package/demo/app/sys/static/img/avatar_1675497065533.jpeg +0 -0
  176. package/demo/app/sys/static/img/avatar_1685352550990.jpeg +0 -0
  177. package/demo/app/sys/static/img/avatar_1685353685992.jpeg +0 -0
  178. package/demo/app/sys/static/img/avatar_1685353956587.jpeg +0 -0
  179. package/demo/app/sys/static/img/avatar_1685353971148.jpeg +0 -0
  180. package/demo/app/sys/static/img/avatar_1685353983723.jpeg +0 -0
  181. package/demo/app/sys/static/img/avatar_1685354014745.jpeg +0 -0
  182. package/demo/app/sys/static/img/avatar_1685354122355.jpeg +0 -0
  183. package/demo/app/sys/static/img/avatar_1685357983520.jpeg +0 -0
  184. package/demo/app/sys/static/img/avatar_1685358453383.jpeg +0 -0
  185. package/demo/app/sys/static/img/avatar_1685416570438.jpeg +0 -0
  186. package/demo/app/sys/static/img/avatar_1685512675830.png +0 -0
  187. package/demo/app/sys/static/img/avatar_1685939425608.jpeg +0 -0
  188. package/demo/app/sys/static/img/avatar_1685939886560.jpeg +0 -0
  189. package/demo/app/sys/static/img/avatar_1686106313194.png +0 -0
  190. package/demo/app/sys/static/img/avatar_1686371876175.png +0 -0
  191. package/demo/app/sys/static/img/avatar_1686372033596.png +0 -0
  192. package/demo/app/sys/static/img/avatar_1688215220669.png +0 -0
  193. package/demo/app/sys/static/img/avatar_1688531184690.png +0 -0
  194. package/demo/app/sys/static/img/avatar_1688531233080.png +0 -0
  195. package/demo/app/sys/static/img/avatar_1688548526909.png +0 -0
  196. package/demo/app/sys/static/img/avatar_1688549213411.png +0 -0
  197. package/demo/app/sys/static/img/avatar_1688549511977.png +0 -0
  198. package/demo/app/sys/static/img/avatar_1688549685464.png +0 -0
  199. package/demo/app/sys/static/img/avatar_1688608623049.png +0 -0
  200. package/demo/app/sys/static/img/avatar_1688638500476.png +0 -0
  201. package/demo/app/sys/static/img/avatar_1688638515195.png +0 -0
  202. package/demo/app/sys/static/img/avatar_1688638539928.png +0 -0
  203. package/demo/app/sys/static/img/avatar_1688638557960.png +0 -0
  204. package/demo/app/sys/static/img/avatar_1688638761798.png +0 -0
  205. package/demo/app/sys/static/img/avatar_1688638943140.png +0 -0
  206. package/demo/app/sys/static/img/avatar_1688639068330.png +0 -0
  207. package/demo/app/sys/static/img/image_1685357101273.jpeg +0 -0
  208. package/demo/app/sys/static/img/logo.png +0 -0
  209. package/demo/app/sys/static/static.js +28 -0
  210. package/demo/app/sys/static/static.json +20 -0
  211. package/demo/app/user/plugin/main/api_user_client/core/api.json +20 -0
  212. package/demo/app/user/plugin/main/api_user_client/core/forgot.js +14 -0
  213. package/demo/app/user/plugin/main/api_user_client/core/password.js +14 -0
  214. package/demo/app/user/plugin/main/api_user_client/core/sign_out.js +26 -0
  215. package/demo/app/user/plugin/main/api_user_client/core/state.js +21 -0
  216. package/demo/app/user/plugin/main/api_user_client/forgot/index - /345/211/257/346/234/254.jsbat" +41 -0
  217. package/demo/app/user/plugin/main/api_user_client/phone_code/index.js_ +230 -0
  218. package/demo/app/user/plugin/main/api_user_manage/account_base/api.json +37 -0
  219. package/demo/app/user/plugin/main/api_user_manage/account_base/index.js +40 -0
  220. package/demo/app/user/plugin/main/api_user_manage/account_base/param.json +130 -0
  221. package/demo/app/user/plugin/main/api_user_manage/invitation_code/api.json +37 -0
  222. package/demo/app/user/plugin/main/api_user_manage/invitation_code/index.js +106 -0
  223. package/demo/app/user/plugin/main/api_user_manage/invitation_code/param.json +130 -0
  224. package/demo/app/user/plugin/main/api_user_manage/update_team/api.json +35 -0
  225. package/demo/app/user/plugin/main/api_user_manage/update_team/index.js +218 -0
  226. package/demo/app/user/plugin/main/api_user_manage/update_team/param.json +130 -0
  227. package/demo/app/user/static/img/logo.png +0 -0
  228. package/demo/app/user/static/static.js +28 -0
  229. package/demo/app/user/static/static.json +20 -0
  230. package/demo/app/ws/app.js +122 -0
  231. package/demo/app/ws/app.json +11 -0
  232. package/demo/app/ws/event_api/client/event.json +10 -0
  233. package/demo/app/ws/event_api/client/main.js +17 -0
  234. package/demo/app/ws/socket/ws/index.js +43 -0
  235. package/demo/app/ws/socket/ws/socket.json +14 -0
  236. package/demo/config/face.sql +3824 -0
  237. package/demo/config/local.json +2 -2
  238. package/demo/config/test.json +2 -2
  239. package/index.js +2 -2
  240. package/package.json +2 -2
  241. /package/core/com/{api → rpc}/rpc.js +0 -0
@@ -0,0 +1,692 @@
1
+ <!DOCTYPE html>
2
+ <html lang="zh">
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
6
+ <meta http-equiv="X-UA-Compatible" content="IE=edge">
7
+ <meta http-equiv="x-dns-prefetch-control" content="on">
8
+ <meta name="viewport"
9
+ content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no,viewport-fit=cover">
10
+ <meta name="format-detection" content="telephone=no">
11
+ <meta name="apple-mobile-web-app-capable" content="yes">
12
+ <meta name="apple-mobile-web-app-status-bar-style" content="black">
13
+ <meta name="description" content="这是web API文档">
14
+ <meta name="keywords" content="开发文档">
15
+ <meta name="author" content="邱文武">
16
+
17
+ <!-- 加载CSS样式 -->
18
+ <link rel="stylesheet" href="/css/font-awesome.min.css" async />
19
+ <link rel="stylesheet" href="/css/mm_base.css" async />
20
+ <link rel="stylesheet" href="/css/mm_layout.css" async />
21
+ <link rel="stylesheet" href="/css/mm_common.css" async />
22
+ <link rel="stylesheet" href="/css/mm_component.css" async />
23
+ <link rel="stylesheet" href="/css/mm_theme.css" async />
24
+ <link rel="stylesheet" href="/css/mm_expand.css" async />
25
+
26
+ <!-- 加载JS脚本 -->
27
+ <script src="/js/jquery.min.js"></script>
28
+ <script src="/js/clipboard.min.js" async></script>
29
+ <script src="/js/vue.js"></script>
30
+ <script src="/js/mm_sdk.js"></script>
31
+ <script src="/js/mm_ui_expand.js"></script>
32
+ <title>接口明细</title>
33
+ <style>
34
+ body {
35
+ background: #fff;
36
+ }
37
+
38
+ main {
39
+ padding: 2rem;
40
+ }
41
+
42
+ #app h4 {
43
+ padding-bottom: 0.5rem;
44
+ border-bottom: 1px solid rgba(125, 125, 125, 0.25);
45
+ margin-bottom: 1rem;
46
+ }
47
+
48
+ #app h5 {
49
+ font-size: 1.5rem;
50
+ }
51
+
52
+ .scope_list {
53
+ padding-left: 2rem;
54
+ }
55
+
56
+ .desc {
57
+ margin-bottom: 2rem;
58
+ }
59
+
60
+ dt {
61
+ float: left;
62
+ min-width: 6rem;
63
+ }
64
+
65
+ .mm_collapse {
66
+ border: 1px solid #26d2ff;
67
+ margin-bottom: 1rem;
68
+ border-radius: .5rem;
69
+ overflow: hidden;
70
+ }
71
+
72
+ .mm_collapse_info {
73
+ border-color: #26d2ff;
74
+ }
75
+
76
+ .mm_collapse_info .mm_head {
77
+ color: #fff;
78
+ background-color: #26d2ff;
79
+ }
80
+
81
+ .mm_collapse_default {
82
+ border-color: #999;
83
+ }
84
+
85
+ .mm_collapse_default .mm_head {
86
+ color: #fff;
87
+ background-color: #999;
88
+ }
89
+
90
+ .mm_collapse_primary {
91
+ border-color: #38f;
92
+ }
93
+
94
+ .mm_collapse_primary .mm_head {
95
+ color: #fff;
96
+ background-color: #38f;
97
+ }
98
+
99
+ .mm_collapse_info .mm_head {
100
+ color: #fff;
101
+ background-color: #26d2ff;
102
+ }
103
+
104
+ .mm_collapse .mm_head {
105
+ padding: 0.25rem 1rem;
106
+ }
107
+
108
+ .mm_collapse .mm_head span {
109
+ font-size: 75%;
110
+ }
111
+
112
+ .mm_collapse .mm_body {
113
+ padding: 1rem;
114
+ }
115
+
116
+ .mm_tabs {
117
+ margin-top: 2rem;
118
+ margin-bottom: 2rem;
119
+ border: 1px solid rgba(125, 125, 125, 0.25);
120
+ }
121
+
122
+ .mm_tabs a,
123
+ .mm_tabs span {
124
+ display: inline-block;
125
+ padding: 0.25rem 0.5rem;
126
+ border-right: 1px solid rgba(125, 125, 125, 0.25);
127
+ }
128
+
129
+ .mm_tabs a:hover {
130
+ color: #26d2ff;
131
+ }
132
+
133
+ .mm_tabs .fr {
134
+ color: #999;
135
+ }
136
+
137
+ .mm_tabs .active {
138
+ color: #26d2ff;
139
+ }
140
+
141
+ .mm_table th,
142
+ .mm_table td {
143
+ text-align: center;
144
+ }
145
+
146
+ .mm_table p {
147
+ color: #999;
148
+ font-size: 0.875rem;
149
+ }
150
+
151
+ h4 a {
152
+ font-size: 0.875rem;
153
+ padding-top: 0.5rem;
154
+ }
155
+
156
+ .mm_head a {
157
+ float: right;
158
+ color: #fff;
159
+ border: 1px solid #fff;
160
+ padding: 0 0.75rem;
161
+ border-radius: 0.25rem;
162
+ font-size: 0.875rem;
163
+ }
164
+
165
+ .btn_copy {
166
+ margin-left: 1rem;
167
+ font-size: 0.625rem;
168
+ border: 1px solid #DBDBDB;
169
+ padding: .125rem .5rem;
170
+ }
171
+ .btn_copy:active {
172
+ background: #DBDBDB;
173
+ }
174
+ </style>
175
+ </head>
176
+ <body>
177
+ <div id="app">
178
+ <div class="mm_page">
179
+ <main>
180
+ <div class="mm_warp" id="info">
181
+ <h4>API接口文档 —— <span>明细</span> <a class="fr"
182
+ :href="'./api_list.html?scope=' + query.scope">回到列表</a></h4>
183
+ <!-- <p class="desc" v-if="error.code === 0">该接口使用明细请看下方:</p> -->
184
+ <p class="desc">{{ error.message }}</p>
185
+ <div class="mm_view" v-if="config.name">
186
+ <h5 style="border: none;">{{ config.title ? config.title : config.name }} <span
187
+ class="mm_badge" v-if="oauth">{{ oauth }}</span></h5>
188
+ <p class="desc" style="border: none;">{{ config.description }}</p>
189
+ <dl>
190
+ <dt>调用地址:</dt>
191
+ <dd><a :href="config.path + query_str">{{ config.path }}{{ query_str }}</a><a class="btn_copy"
192
+ href="javascript:void(0)" @click="copy_url()">复制</a></dd>
193
+ </dl>
194
+ <dl>
195
+ <dt>请求方式:</dt>
196
+ <dd>{{ toMethod(config.method) }}</dd>
197
+ </dl>
198
+ <dl>
199
+ <dt>返回类型:</dt>
200
+ <dd>{{ contentType }}</dd>
201
+ </dl>
202
+
203
+ <div class="mm_tabs" v-if="config.type !== 'web'">
204
+ <span class="bg_grey">支持方法</span>
205
+ <a href="javascript:void(0)" v-for="(o, i) in tabs" :key="i"
206
+ :class="{'active': i === index}" @click="index = i">
207
+ {{ o }}
208
+ </a>
209
+ <a href="javascript:void(0)" class="fr" @click="copyModel()">复制验证模型</a>
210
+ </div>
211
+ <div class="mm_collapse mm_collapse_default" v-if="list_headers.length > 0">
212
+ <div class="mm_head">
213
+ 协议头参数<span>(Headers)</span>
214
+ </div>
215
+ <div class="mm_body">
216
+ <table class="mm_table table-sm table-hover">
217
+ <thead>
218
+ <tr>
219
+ <th width="150">参数</th>
220
+ <th width="100">类型</th>
221
+ <th width="70">必填</th>
222
+ <th width="200">标题</th>
223
+ <th>说明</th>
224
+ </tr>
225
+ </thead>
226
+ <tbody>
227
+ <tr v-for="(o, k) in list_headers" :key="k">
228
+ <td><strong>{{ o.name }}</strong></td>
229
+ <td>{{ o.type }}</td>
230
+ <td>{{ o.required ? '是' : '否' }}</td>
231
+ <td>{{ o.title }}</td>
232
+ <td>{{ o.description }}</td>
233
+ </tr>
234
+ </tbody>
235
+ </table>
236
+ </div>
237
+ </div>
238
+
239
+ <div class="mm_collapse mm_collapse_info" v-if="list_query.length > 0">
240
+ <div class="mm_head">
241
+ URL请求参数<span>(Query)</span> <a href="javascript:void(0)"
242
+ @click="copy('query')">复制</a>
243
+ </div>
244
+ <div class="mm_body">
245
+ <table class="mm_table table-sm table-hover">
246
+ <thead>
247
+ <tr>
248
+ <th width="150">参数</th>
249
+ <th width="100">类型</th>
250
+ <th width="70">必填</th>
251
+ <th width="200">标题</th>
252
+ <th>说明</th>
253
+ </tr>
254
+ </thead>
255
+ <tbody>
256
+ <tr v-for="(o, k) in list_query" :key="k">
257
+ <td><strong>{{ o.name }}</strong></td>
258
+ <td>{{ o.type }}</td>
259
+ <td>{{ o.required ? '是' : '否' }}</td>
260
+ <td>{{ o.title }}</td>
261
+ <td>{{ o.description }}</td>
262
+ </tr>
263
+ </tbody>
264
+ </table>
265
+ </div>
266
+ </div>
267
+
268
+ <div class="mm_collapse mm_collapse_primary" v-if="list_body.length > 0">
269
+ <div class="mm_head">
270
+ 正文请求参数<span>(Body)</span> <a href="javascript:void(0)" @click="copy('body')">复制</a>
271
+ </div>
272
+ <div class="mm_body">
273
+ <table class="mm_table table-sm table-hover">
274
+ <thead>
275
+ <tr>
276
+ <th width="150">参数</th>
277
+ <th width="100">类型</th>
278
+ <th width="70">必填</th>
279
+ <th width="200">标题</th>
280
+ <th>说明</th>
281
+ </tr>
282
+ </thead>
283
+ <tbody>
284
+ <tr v-for="(o, k) in list_body" :key="k">
285
+ <td><strong>{{ o.name }}</strong></td>
286
+ <td>{{ o.type }}</td>
287
+ <td>{{ o.required ? '是' : '否' }}</td>
288
+ <td>{{ o.title }}</td>
289
+ <td>{{ o.description }}</td>
290
+ </tr>
291
+ </tbody>
292
+ </table>
293
+ </div>
294
+ </div>
295
+
296
+ <div class="desc center"
297
+ v-if="list_query.length === 0 && list_body.length === 0 && config.type !== 'web'">无需传参
298
+ </div>
299
+ </div>
300
+ </div>
301
+
302
+ <!-- 测试请求 -->
303
+ <div class="mm_warp" id="test_request">
304
+ <div class="mm_card pa ma-0">
305
+ <div class="card_head">
306
+ <div class="title">测试{{ tabs[index] }}请求</div>
307
+ </div>
308
+ <div class="card_body">
309
+ <dl>
310
+ <dt>URL地址</dt>
311
+ <dd style="width: 100%;"><input type="text" v-model="form.url" style="width: 100%;">
312
+ </dd>
313
+ <dt>正文参数</dt>
314
+ <dd style="width: 100%;"><textarea type="text" v-model="form.body"
315
+ style="width: 100%;"></textarea></dd>
316
+ </dl>
317
+ <button class="mm_btn btn_primary" @click="submit()"
318
+ style="width: 10rem; display: block;margin: auto;">发送</button>
319
+ </div>
320
+ </div>
321
+ </div>
322
+ </main>
323
+ <iframe class="bn" id="html" style="width: 100%;"></iframe>
324
+ </div>
325
+ </div>
326
+ <script>
327
+ var vue = new Vue({
328
+ el: '#app',
329
+ data() {
330
+ return {
331
+ url: "/api/dev_api?",
332
+ query: {
333
+ scope: "client",
334
+ name: ""
335
+ },
336
+ form: {
337
+ url: "",
338
+ body: ""
339
+ },
340
+ config: {
341
+ cache: 0,
342
+ check_param: true,
343
+ client_cache: true,
344
+ description: "用户获取api接口",
345
+ method: "",
346
+ name: "",
347
+ oauth: {
348
+ signIn: false,
349
+ gm: 0,
350
+ mc: 0,
351
+ vip: 0,
352
+ user_group: [],
353
+ user_admin: []
354
+ },
355
+ param_path: "",
356
+ path: "",
357
+ type: "",
358
+ sql_path: "",
359
+ title: "测试获取API接口"
360
+ },
361
+ param: {
362
+ add: {
363
+ body: [],
364
+ body_required: []
365
+ },
366
+ del: {
367
+ query: [],
368
+ query_required: []
369
+ },
370
+ set: {
371
+ query: [],
372
+ query_required: [],
373
+ body: [],
374
+ body_required: []
375
+ },
376
+ get: {
377
+ query: [],
378
+ query_required: []
379
+ },
380
+ post: {
381
+ query: [],
382
+ query_required: [],
383
+ body: [],
384
+ body_required: []
385
+ },
386
+ get_obj: {
387
+ query: [],
388
+ query_required: []
389
+ },
390
+ list: []
391
+ },
392
+ error: {
393
+ code: 0,
394
+ message: ""
395
+ },
396
+ tabs: [],
397
+ index: 0
398
+ }
399
+ },
400
+ methods: {
401
+ getModel(body) {
402
+ if (!body) {
403
+ body = this.list_body;
404
+ }
405
+ // this.param.list;
406
+ var lt = [];
407
+ var arr = body;
408
+ if (arr.length > 0) {
409
+ lt = this.arr;
410
+ } else {
411
+ lt = this.list_query;
412
+ }
413
+
414
+ var list = [];
415
+ var len = lt.length;
416
+ for (var i = 0; i < len; i++) {
417
+ var o = $.copy(lt[i]);
418
+ delete o.description;
419
+ delete o.dataType;
420
+ const p = o.type;
421
+ if (p === 'number') {
422
+ delete o.string;
423
+ for (var k in o.number) {
424
+ if (!o.number[k]) {
425
+ delete o.number[k]
426
+ }
427
+ }
428
+ } else if (p === 'string') {
429
+ delete o.number;
430
+ for (var k in o.string) {
431
+ if (!o.string[k]) {
432
+ delete o.string[k]
433
+ }
434
+ }
435
+ } else {
436
+ delete o.string;
437
+ delete o.number;
438
+ }
439
+ list.push(o);
440
+ }
441
+ return list;
442
+ },
443
+ copyModel() {
444
+ var list = this.getModel();
445
+ var code = JSON.stringify(list, null, 4);
446
+ $.copyText(code);
447
+ $.toast('复制成功');
448
+ },
449
+ copy(type, noCopy) {
450
+ var text = '';
451
+ var arr = this['list_' + type];
452
+ if (arr && arr.length) {
453
+ var code = "{";
454
+ var len = arr.length;
455
+ for (var i = 0; i < len; i++) {
456
+ var o = arr[i];
457
+ var val = '';
458
+ var p = o.type;
459
+ if (p === "number") {
460
+ val = 0;
461
+ } else if (p === 'date') {
462
+ val = '"1970-01-01"'
463
+ } else if (p === 'datetime') {
464
+ val = '"1970-01-01 00:00:00"'
465
+ } else if (p === 'ime') {
466
+ val = '"00:00:00"'
467
+ } else {
468
+ val = '""'
469
+ }
470
+ code += '\r\n // ' + o.title;
471
+ code += '\r\n "' + o.name + '":' + val + ","
472
+ }
473
+ if (code !== "{") {
474
+ code = code.substring(0, code.length - 1);
475
+ }
476
+ text = code + '\r\n}';
477
+ if (!noCopy) {
478
+ $.copyText(text);
479
+ $.toast('复制成功');
480
+ }
481
+ } else {
482
+ if (!noCopy) {
483
+ $.toast('复制失败');
484
+ }
485
+ }
486
+ return text;
487
+ },
488
+ toMethod(method) {
489
+ var m = method.toLocaleUpperCase()
490
+ if (m === 'ALL') {
491
+ return 'GET / POST'
492
+ }
493
+ return m;
494
+ },
495
+ get_obj() {
496
+ var _this = this;
497
+ $.http.get(this.url + $.toUrl(this.query), function(json, status) {
498
+ _this.get_obj_after(json);
499
+ });
500
+ },
501
+ get_obj_after(json) {
502
+ if (json.result) {
503
+ $.clear(this.config);
504
+ $.push(this.config, json.result.config);
505
+ var cg = {};
506
+ if (json.result.param) {
507
+ cg = json.result.param.config;
508
+ $.clear(this.param);
509
+ $.push(this.param, cg);
510
+ }
511
+
512
+ var m = "";
513
+ var sql = json.result.sql;
514
+ if (sql) {
515
+ m = sql.config.method;
516
+ }
517
+ if (!m) {
518
+ var config = this.config;
519
+ m = config.method ? config.method.toLowerCase() : 'get';
520
+ if (m === 'all') {
521
+ m = "get post"
522
+ }
523
+ }
524
+ var list = this.tabs;
525
+ list.clear();
526
+ list.addList(m.split(' '));
527
+ var len = list.length;
528
+ for (var i = 0; i < len; i++) {
529
+ if (list[i] === 'get') {
530
+ this.index = i;
531
+ break;
532
+ }
533
+ }
534
+ } else if (json.error) {
535
+ $.push(this.error, json.error);
536
+ }
537
+ },
538
+ set_list(list, arr, required) {
539
+ if (arr) {
540
+ var params = this.param.list;
541
+ var len = arr.length;
542
+ for (var i = 0; i < len; i++) {
543
+ var k = arr[i];
544
+ var o = params.getObj({
545
+ name: k
546
+ });
547
+ if (o) {
548
+ o.required = required;
549
+ list.push(o);
550
+ }
551
+ }
552
+ };
553
+ },
554
+ submit() {
555
+ if (this.tabs[this.index] == "post") {
556
+ if (!this.form.body) {
557
+ body = {};
558
+ } else {
559
+ body = JSON.parse(this.form.body);
560
+ }
561
+ try {
562
+ $.http.post(this.form.url, body, (res) => {
563
+ var html = typeof(res) === "object" ? $.toJson(res, true) : res;
564
+ $(document.getElementById('html').contentWindow.document.body).html(
565
+ `<div contenteditable>${html}</div>`);
566
+ });
567
+ } catch (err) {
568
+ console.error(err);
569
+ }
570
+ } else {
571
+ $.http.get(this.form.url, (res) => {
572
+ var html = typeof(res) === "object" ? $.toJson(res, true) : res;
573
+ $(document.getElementById('html').contentWindow.document.body).html(
574
+ `<div contenteditable>${html}</div>`);
575
+ });
576
+ }
577
+ },
578
+ set_url() {
579
+ var url = this.config.path + this.query_str;
580
+ this.list_query.map((o) => {
581
+ url += "&" + o.name + "="
582
+ });
583
+ if (url.indexOf('?') === -1) {
584
+ url = url.replace('&', '?')
585
+ }
586
+ this.form.url = url;
587
+ },
588
+ set_body() {
589
+ this.form.body = this.copy('body', true);
590
+ },
591
+ copy_url() {
592
+ $.copyText("~" + this.config.path + (this.query_str || "?"));
593
+ $.toast("复制成功!");
594
+ }
595
+ },
596
+ computed: {
597
+ contentType() {
598
+ var type = "";
599
+ var cg = this.config;
600
+ if (cg.contentType) {
601
+ type = cg.contentType;
602
+ } else if (cg.type === "web") {
603
+ type = "HTML"
604
+ } else {
605
+ type = 'JSON';
606
+ }
607
+ return type
608
+ },
609
+ oauth() {
610
+ var badge = '';
611
+ var o = this.config.oauth;
612
+ if (o.signIn) {
613
+ if (o.vip || o.gm || o.mc || o.user_group.length || o.user_admin.length) {
614
+ badge = "需要权限"
615
+ } else {
616
+ badge = "需要登录"
617
+ }
618
+ }
619
+ return badge;
620
+ },
621
+ list_headers() {
622
+ var list = [];
623
+ var cg = this.config.oauth;
624
+ if (cg) {
625
+ if (cg.signIn) {
626
+ list.push({
627
+ name: "x-oauth-token",
628
+ type: "string",
629
+ required: false,
630
+ title: "临时访问牌"
631
+ });
632
+ };
633
+ }
634
+ return list;
635
+ },
636
+ list_body() {
637
+ var list = [];
638
+ var method = this.tabs[this.index];
639
+ var obj = this.param[method];
640
+ if (obj) {
641
+ if (obj.body_required) {
642
+ this.set_list(list, obj.body_required, true)
643
+ };
644
+ if (obj.body) {
645
+ this.set_list(list, obj.body)
646
+ };
647
+ }
648
+ return list;
649
+ },
650
+ list_query() {
651
+ var list = [];
652
+ var method = this.tabs[this.index];
653
+ var obj = this.param[method];
654
+ if (obj) {
655
+ if (obj.query_required) {
656
+ this.set_list(list, obj.query_required, true)
657
+ };
658
+ if (obj.query) {
659
+ this.set_list(list, obj.query)
660
+ };
661
+ }
662
+ return list;
663
+ },
664
+ query_str() {
665
+ var method = this.tabs[this.index];
666
+ if (method === "get" || method === "post") {
667
+ return "";
668
+ }
669
+ return "?method=" + method;
670
+ }
671
+ },
672
+ created() {
673
+ var arr = location.search.replace('?', '').split("&");
674
+ var len = arr.length;
675
+ for (var i = 0; i < len; i++) {
676
+ var ar = arr[i].split("=");
677
+ if (ar.length > 1) {
678
+ this.query[ar[0]] = ar[1];
679
+ }
680
+ }
681
+ this.get_obj();
682
+ },
683
+ watch: {
684
+ index() {
685
+ this.set_url();
686
+ this.set_body();
687
+ }
688
+ }
689
+ });
690
+ </script>
691
+ </body>
692
+ </html>