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,161 @@
1
+ const fs = require("fs");
2
+ var tpl = new $.Tpl();
3
+
4
+ //
5
+ tpl.config.root = "";
6
+
7
+ var filter_dir = ["page", "diy"];
8
+
9
+ /**
10
+ * 渲染模板模型
11
+ * @param {Object} vm 数据模型
12
+ * @param {String} _from 复制来源
13
+ * @param {String} _to 粘贴位置
14
+ */
15
+ function tpl_dir(vm, _from, _to) {
16
+ if (!isExist(_to)) {
17
+ // 创建目录
18
+ fs.mkdirSync(_to);
19
+ }
20
+ try {
21
+ var paths = fs.readdirSync(_from);
22
+ paths.forEach((path) => {
23
+ // 过滤刷出内容
24
+ if (filter_dir.indexOf(path) === -1) {
25
+ var src = `${_from}/${path}`;
26
+ var dist = `${_to}/${path}`;
27
+ var stat = fs.statSync(src);
28
+ try {
29
+ if (stat.isFile()) {
30
+ tpl_file(vm, src, dist);
31
+ } else if (stat.isDirectory()) {
32
+ tpl_dir(vm, src, dist);
33
+ }
34
+ } catch (err) {
35
+ // 子级类型错误
36
+ console.error(err);
37
+ }
38
+ }
39
+ });
40
+ } catch (err) {
41
+ // 识别子级错误
42
+ console.error(err);
43
+ }
44
+ }
45
+
46
+ /**
47
+ * @description 渲染模板
48
+ * @param {Object} model 数据模型
49
+ * @param {String} _from 模板路径
50
+ * @param {String} _to 存储路径
51
+ */
52
+ function tpl_file(model, _from, _to) {
53
+ try{
54
+ var ret = "";
55
+
56
+ // 渲染模板路径
57
+ _from = _from.fullname();
58
+
59
+ // 保存文件路径
60
+ _to = _to.fullname();
61
+
62
+ // 渲染模型
63
+ var html = tpl.view(_from, model);
64
+
65
+ // 结果判断
66
+ if (!html) {
67
+ console.error("模板渲染错误", _to, tpl.error);
68
+ return null;
69
+ }
70
+
71
+ // 生成文件目录
72
+ _to.addDir();
73
+
74
+ // 生成页面
75
+ _to.saveText(html);
76
+
77
+ return _to;
78
+ }catch(err){
79
+ console.error(err);
80
+ }
81
+ return null;
82
+ }
83
+
84
+ /**
85
+ * 判断是否存在
86
+ * @param {String} file
87
+ * @return {Promise}
88
+ */
89
+ function isExist(path) {
90
+ var bl = false;
91
+ try {
92
+ fs.accessSync(path, fs.constants.R_OK | fs.constants.W_OK);
93
+ bl = true;
94
+ } catch (err) {
95
+ console.error(`${path} 不存在`);
96
+ }
97
+ return bl;
98
+ }
99
+
100
+
101
+ /**
102
+ * @description 获取需要渲染的部分
103
+ * @param {Array} fields 字段集
104
+ */
105
+ function get_vm(fields) {
106
+ var vm = {};
107
+ // 循环 表 过滤 非 图片列表页内容 以及 存放到对应属性
108
+ for (var i = 0; i < fields.length; i++) {
109
+ var field = fields[i];
110
+ if (field) {
111
+ var type = field.type;
112
+ var name = field.name;
113
+ var title = field.title;
114
+
115
+ // 判断是否属性齐全
116
+ if (vm.img && vm.title && vm.name && vm.text && vm.price && vm.num) {
117
+ break;
118
+ }
119
+
120
+ // 判断是否未存放 图片 并且是 图片 属性
121
+ else if (!vm.img && type === "图片") {
122
+ // console.log("有获取");
123
+ vm.img = name;
124
+ }
125
+
126
+ // 判断是否未存放 标题 并且是 文本 属性 同时还是具有 `标题`或`名称` 关键词
127
+ else if (!vm.title && type === "文本" && (title.indexOf("标题") !== -1 || title.indexOf("名称") !== -1)) {
128
+ vm.title = name;
129
+ }
130
+
131
+ // 判断是否未存放 姓名 并且是 文本 属性 同时还是具有 `姓名` 关键词
132
+ else if (!vm.name && type === "文本" && title.indexOf("姓名") !== -1) {
133
+ vm.name = name;
134
+ }
135
+
136
+ // 判断是否未存放 文本 并且是 文本 属性 注:这是用于存放无法辨识文本
137
+ else if (!vm.text && type === "文本") {
138
+ vm.text = name;
139
+ }
140
+
141
+ // 判断是否未存放 价格 并且是 数字 属性 同时还是具有 `价格` 关键词
142
+ else if (!vm.price && type === "数字" && (title.indexOf("价格") !== -1 || title.indexOf("单价") !== -1 || title
143
+ .indexOf("现价") !== -1)) {
144
+ vm.price = name;
145
+ }
146
+
147
+ // 判断是否未存放 数字 并且是 数字 属性 注:这是用于存放无法辨识数字
148
+ else if (!vm.num && type === "数字") {
149
+ vm.num = name;
150
+ }
151
+ }
152
+ }
153
+ return vm;
154
+ }
155
+
156
+ module.exports = {
157
+ tpl_dir,
158
+ tpl_file,
159
+ isExist,
160
+ get_vm
161
+ };
@@ -0,0 +1,102 @@
1
+ var tpl = new $.Tpl();
2
+
3
+ //
4
+ tpl.config.root = "";
5
+
6
+ /**
7
+ * @description 创建koa_art模板
8
+ * @param {Objact} model 模型
9
+ */
10
+ async function koa_art_server(model) {
11
+ $.log.info("**** 开始刷Koa_art服务端 ****");
12
+
13
+ // 从 模型 中取出 订单 表集
14
+ var {
15
+ order,
16
+ tables
17
+ } = model;
18
+
19
+ // 取出订单号 注:用于保存
20
+ var order_number = order.order_number;
21
+
22
+ // 项目存放路径
23
+ var dir_save = "../project/" + order_number + "/";
24
+
25
+ // 服务器存放路径
26
+ var dir_server = "../template/koa_art/server/";
27
+
28
+ // 服务与控制器路径
29
+ var dir_controller = dir_server + "controllers/controller.js";
30
+ var dir_service = dir_server + "services/service.js";
31
+
32
+ // 循环表
33
+ for (var i = 0; i < tables.length; i++) {
34
+ // 取出表
35
+ var table = tables[i];
36
+
37
+ // 取出表名和表标题
38
+ var name = table.name;
39
+ var title = table.title;
40
+
41
+ // 判断是否存在
42
+ if(name && title){
43
+ // 服务名
44
+ var cs = name.charAt(0).toUpperCase() + name.slice(1);
45
+
46
+ // 模型
47
+ var vm = {
48
+ table,
49
+ title,
50
+ name,
51
+ cs
52
+ };
53
+
54
+ // 渲染控制器
55
+ tpl_file(vm, dir_controller, dir_save + "controllers/" + name + ".js");
56
+
57
+ // 渲染服务
58
+ tpl_file(vm, dir_service, dir_save + "services/" + name + ".js");
59
+ }
60
+ }
61
+
62
+ // 渲染数据库绑定
63
+ tpl_file({
64
+ order_number
65
+ }, dir_server + "config.js", dir_save + "/config.js")
66
+
67
+ $.log.info("**** 结束刷Koa_art服务端 ****");
68
+ }
69
+
70
+ /**
71
+ * @description 渲染模板
72
+ * @param {Object} model 数据模型
73
+ * @param {String} _from 模板路径
74
+ * @param {String} _to 存储路径
75
+ */
76
+ function tpl_file(model, _from, _to) {
77
+ var ret = "";
78
+ // 渲染模板路径
79
+ _from = _from.fullname();
80
+
81
+ // 保存文件路径
82
+ _to = _to.fullname();
83
+
84
+ // 渲染模型
85
+ var html = tpl.view(_from, model);
86
+
87
+ // 结果判断
88
+ if (!html) {
89
+ console.error("模板渲染错误", _to, tpl.error);
90
+ return ret;
91
+ }
92
+
93
+ // 生成文件目录
94
+ _to.addDir();
95
+
96
+ // 生成页面
97
+ _to.saveText(html);
98
+
99
+ return _to;
100
+ }
101
+
102
+ module.exports = koa_art_server;
@@ -0,0 +1,415 @@
1
+ var tpl = new $.Tpl();
2
+
3
+ //
4
+ tpl.config.root = "";
5
+
6
+ /**
7
+ * @description 创建mini_app模板
8
+ * @param {Objact} model 模型
9
+ */
10
+ function mini_app_home(model) {
11
+ $.log.info("**** 开始刷Mini_app客户端前台 ****");
12
+
13
+ // 获取过滤
14
+ var filter = add_filter(model);
15
+
16
+ // 从 模型 中取出 订单 表集
17
+ var {
18
+ order,
19
+ tables
20
+ } = model;
21
+
22
+ // 从 订单 取 框架 模板
23
+ var {
24
+ tpl_home,
25
+ order_number
26
+ } = order;
27
+
28
+ // 判断是否选择前台模板
29
+ if (tpl_home) {
30
+ // 模板存放路径
31
+ var _from = "../template/mini_app/home/" + tpl_home + "/tpl/src/";
32
+
33
+ // 项目存放路径
34
+ var _to = "../project/" + order_number + "/client_home/src/";
35
+
36
+ // 建立模型
37
+ var vm = Object.assign({}, {
38
+ filter
39
+ }, model);
40
+
41
+ // 渲染页面集
42
+ if (tables && tables.length > 0) {
43
+ tpl_pages(vm, _from, _to);
44
+ }
45
+
46
+ // 渲染模板模型
47
+ tpl_dir(vm, _from, _to);
48
+
49
+ } else {
50
+ console.error("不能没有前台模板");
51
+ }
52
+
53
+ $.log.info("**** 结束刷Mini_app客户端前台 ****");
54
+ }
55
+
56
+ /**
57
+ * @description 渲染模板
58
+ * @param {Object} model 数据模型
59
+ * @param {String} _from 模板路径
60
+ * @param {String} _to 存储路径
61
+ */
62
+ function tpl_file(model, _from, _to) {
63
+ var ret = "";
64
+ // 渲染模板路径
65
+ _from = _from.fullname();
66
+
67
+ // 保存文件路径
68
+ _to = _to.fullname();
69
+
70
+ // 渲染模型
71
+ var html = tpl.view(_from, model);
72
+
73
+ // 结果判断
74
+ if (!html) {
75
+ console.error("模板渲染错误", _to, tpl.error);
76
+ return ret;
77
+ }
78
+
79
+ // 生成文件目录
80
+ _to.addDir();
81
+
82
+ // 生成页面
83
+ _to.saveText(html);
84
+
85
+ return _to;
86
+ }
87
+
88
+ /**
89
+ * 渲染页集
90
+ * @param {Object} model 数据模型
91
+ * @param {String} _from 来源目录
92
+ * @param {String} _to 保存目录
93
+ */
94
+ function tpl_pages(model, _from, _to) {
95
+
96
+ // 从 模型 中取出 订单 表集
97
+ var {
98
+ tables,
99
+ filter
100
+ } = model;
101
+
102
+ try {
103
+
104
+ for (var i = 0; i < tables.length; i++) {
105
+
106
+ // 取出表
107
+ var table = tables[i];
108
+
109
+ // 提取各渲染判断
110
+ var {
111
+ list_page,
112
+ details_page,
113
+ add_page,
114
+ cart_page
115
+ } = table.config;
116
+
117
+ // 建立模型
118
+ var vm = Object.assign({}, {
119
+ table,
120
+ filter
121
+ });
122
+
123
+ // 获取表名
124
+ var name = table.name;
125
+
126
+ // 渲染组件列表页
127
+ tpl_file(vm, _from + "components/diy/list.vue", _to + "components/diy/list_" + name + ".vue");
128
+
129
+ // 渲染组件详情页
130
+ tpl_file(vm, _from + "components/diy/details.vue", _to + "components/diy/div_" + name + ".vue");
131
+
132
+ // 渲染添加页
133
+ switch (add_page) {
134
+ case "有添加":
135
+ tpl_file(vm, _from + "pages/page/edit.vue", _to + "pages/" + name + "/edit.vue");
136
+ break;
137
+ }
138
+
139
+ // 判断列表页
140
+ switch (list_page) {
141
+ case "带图列":
142
+ var fields = table.fields;
143
+ fields = get_vm(fields);
144
+ table.fields = fields;
145
+ // 刷新数据模型
146
+ vm = Object.assign({}, vm, {
147
+ table
148
+ });
149
+ tpl_file(vm, _from + "pages/page/list.vue", _to + "pages/" + name + "/list.vue");
150
+ break;
151
+ case "前列表":
152
+ tpl_file(vm, _from + "pages/page/list.vue", _to + "pages/" + name + "/list.vue");
153
+ break;
154
+ }
155
+
156
+ // 判断详情页
157
+ switch (details_page) {
158
+ case "前详情":
159
+ // 渲染详情页
160
+ tpl_file(vm, _from + "pages/page/details.vue", _to + "pages/" + name + "/details.vue");
161
+ break;
162
+ }
163
+ }
164
+
165
+ } catch (err) {
166
+ console.error(err);
167
+ }
168
+
169
+ }
170
+
171
+ /**
172
+ * 渲染模板模型
173
+ * @param {Object} vm 数据模型
174
+ * @param {String} _from 复制来源
175
+ * @param {String} _to 粘贴位置
176
+ */
177
+ function tpl_dir(vm, _from, _to) {
178
+ if (!isExist(_to)) {
179
+ // 创建目录
180
+ fs.mkdirSync(_to);
181
+ }
182
+ try {
183
+ var paths = fs.readdirSync(_from);
184
+ paths.forEach((path) => {
185
+ // 过滤刷出内容
186
+ if (filter_dir.indexOf(path) === -1) {
187
+ var src = `${_from}/${path}`;
188
+ var dist = `${_to}/${path}`;
189
+ var stat = fs.statSync(src);
190
+ try {
191
+ if (stat.isFile()) {
192
+ tpl_file(vm, src, dist);
193
+ } else if (stat.isDirectory()) {
194
+ tpl_dir(vm, src, dist);
195
+ }
196
+ } catch (err) {
197
+ // 子级类型错误
198
+ console.error(err);
199
+ }
200
+ }
201
+ });
202
+ } catch (err) {
203
+ // 识别子级错误
204
+ console.error(err);
205
+ }
206
+ }
207
+
208
+ /**
209
+ * @description 渲染模板
210
+ * @param {Object} model 数据模型
211
+ * @param {String} _from 模板路径
212
+ * @param {String} _to 存储路径
213
+ */
214
+ function tpl_file(model, _from, _to) {
215
+ var ret = "";
216
+ // 渲染模板路径
217
+ _from = _from.fullname();
218
+
219
+ // 保存文件路径
220
+ _to = _to.fullname();
221
+
222
+ // 渲染模型
223
+ var html = tpl.view(_from, model);
224
+
225
+ // 结果判断
226
+ if (!html) {
227
+ console.error("模板渲染错误", _to, tpl.error);
228
+ return ret;
229
+ }
230
+
231
+ // 生成文件目录
232
+ _to.addDir();
233
+
234
+ // 生成页面
235
+ ret = _to.saveText(html);
236
+
237
+ return _to;
238
+ }
239
+
240
+ /**
241
+ * 判断是否存在
242
+ * @param {String} file
243
+ * @return {Promise}
244
+ */
245
+ function isExist(path) {
246
+ var bl = false;
247
+ try {
248
+ fs.accessSync(path, fs.constants.R_OK | fs.constants.W_OK);
249
+ bl = true;
250
+ } catch (err) {
251
+ console.error(`${path} 不存在`);
252
+ }
253
+ return bl;
254
+ }
255
+
256
+ /**
257
+ * @description 添加过滤条件
258
+ * @param {Object} model 模型
259
+ */
260
+ function add_filter(model) {
261
+
262
+ var filter = {};
263
+
264
+ // 获取模型 订单 和 表
265
+ var {
266
+ order,
267
+ tables
268
+ } = model;
269
+
270
+ if (!order) {
271
+ return false;
272
+ }
273
+
274
+ //
275
+ var config = JSON.parse(order.config);
276
+
277
+ // 获取订单 配置
278
+ var {
279
+ bbs_name,
280
+ cms,
281
+ mall,
282
+ training
283
+ } = config;
284
+
285
+ // 判断是否有论坛
286
+ filter.forum = bbs_name;
287
+
288
+ // 内容管理
289
+ filter.cms = cms;
290
+
291
+ // 商城
292
+ filter.mall = mall;
293
+
294
+ // 培训教育
295
+ filter.training = training;
296
+
297
+ // 获取其他模块
298
+ var other = config.order;
299
+
300
+ if (other) {
301
+ // 公告
302
+ filter.notice = other.indexOf("公告") != -1;
303
+
304
+ // 留言板
305
+ filter.message = other.indexOf("留言板") != -1;
306
+
307
+ // 客服聊天
308
+ filter.chat = other.indexOf("客服聊天") != -1;
309
+ }
310
+
311
+ // 表内容过滤
312
+ var has_cart = false;
313
+ var has_comment = false;
314
+ var has_collect = false;
315
+ var has_praise = false;
316
+
317
+ for (var i = 0; i < tables.length; i++) {
318
+ if (has_cart && has_comment && has_collect && has_praise) {
319
+ break;
320
+ }
321
+
322
+ var config = tables[i].config;
323
+
324
+ // 是否带购物车
325
+ if (config.cart_page != "无") {
326
+ has_cart = true;
327
+ }
328
+
329
+ // 是否带评论页
330
+ if (config.comment) {
331
+ has_comment = true;
332
+ }
333
+
334
+ // 是否带收藏
335
+ if (config.collect) {
336
+ has_collect = true;
337
+ }
338
+
339
+ // 是否带点赞
340
+ if (config.praise) {
341
+ has_praise = true;
342
+ }
343
+ }
344
+
345
+ // 过滤购物车
346
+ filter.cart = has_cart;
347
+
348
+ // 过滤评论
349
+ filter.comment = has_comment;
350
+
351
+ // 过滤收藏
352
+ filter.collect = has_collect;
353
+
354
+ // 过滤点赞
355
+ filter.praise = has_praise;
356
+
357
+ return filter;
358
+ }
359
+
360
+ /**
361
+ * @description 获取需要渲染的部分
362
+ * @param {Array} fields 字段集
363
+ */
364
+ function get_vm(fields) {
365
+ var vm = {};
366
+ // 循环 表 过滤 非 图片列表页内容 以及 存放到对应属性
367
+ for (var i = 0; i < fields.length; i++) {
368
+ var field = fields[i];
369
+ if (field) {
370
+ var type = field.type;
371
+ var name = field.name;
372
+ var title = field.title;
373
+
374
+ // 判断是否属性齐全
375
+ if (vm.img && vm.title && vm.name && vm.text && vm.price && vm.num) {
376
+ break;
377
+ }
378
+
379
+ // 判断是否未存放 图片 并且是 图片 属性
380
+ else if (!vm.img && type === "图片") {
381
+ // console.log("有获取");
382
+ vm.img = name;
383
+ }
384
+
385
+ // 判断是否未存放 标题 并且是 文本 属性 同时还是具有 `标题`或`名称` 关键词
386
+ else if (!vm.title && type === "文本" && (title.indexOf("标题") !== -1 || title.indexOf("名称") !== -1)) {
387
+ vm.title = name;
388
+ }
389
+
390
+ // 判断是否未存放 姓名 并且是 文本 属性 同时还是具有 `姓名` 关键词
391
+ else if (!vm.name && type === "文本" && title.indexOf("姓名") !== -1) {
392
+ vm.name = name;
393
+ }
394
+
395
+ // 判断是否未存放 文本 并且是 文本 属性 注:这是用于存放无法辨识文本
396
+ else if (!vm.text && type === "文本") {
397
+ vm.text = name;
398
+ }
399
+
400
+ // 判断是否未存放 价格 并且是 数字 属性 同时还是具有 `价格` 关键词
401
+ else if (!vm.price && type === "数字" && (title.indexOf("价格") !== -1 || title.indexOf("单价") !== -1 || title
402
+ .indexOf("现价") !== -1)) {
403
+ vm.price = name;
404
+ }
405
+
406
+ // 判断是否未存放 数字 并且是 数字 属性 注:这是用于存放无法辨识数字
407
+ else if (!vm.num && type === "数字") {
408
+ vm.num = name;
409
+ }
410
+ }
411
+ }
412
+ return vm;
413
+ }
414
+
415
+ module.exports = mini_app_home;