mm_os 4.3.6 → 5.0.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.
Files changed (234) hide show
  1. package/README.md +101 -504
  2. package/index.js +26 -19
  3. package/lib/loader.js +787 -0
  4. package/lib/os.js +369 -0
  5. package/package.json +55 -80
  6. package/LICENSE +0 -21
  7. package/README_EN.md +0 -505
  8. package/adapter/adapter.js +0 -484
  9. package/adapter/custom_persistence.js +0 -661
  10. package/adapter/mqtt.js +0 -254
  11. package/adapter/socket.js +0 -244
  12. package/adapter/web.js +0 -92
  13. package/adapter/websocket.js +0 -43
  14. package/ai.js +0 -130
  15. package/com/api/README.md +0 -3
  16. package/com/api/com.json +0 -5
  17. package/com/api/config.tpl.json +0 -41
  18. package/com/api/drive.js +0 -732
  19. package/com/api/index.js +0 -201
  20. package/com/api/oauth.js +0 -200
  21. package/com/api/script.tpl.js +0 -32
  22. package/com/cmd/README.md +0 -11
  23. package/com/cmd/com.json +0 -5
  24. package/com/cmd/config.tpl.json +0 -48
  25. package/com/cmd/drive.js +0 -176
  26. package/com/cmd/index.js +0 -287
  27. package/com/cmd/job/config.json +0 -66
  28. package/com/cmd/job/index.js +0 -241
  29. package/com/cmd/job/test.js +0 -188
  30. package/com/cmd/msg.json +0 -48
  31. package/com/cmd/script.tpl.js +0 -12
  32. package/com/db/README.md +0 -3
  33. package/com/db/com.json +0 -5
  34. package/com/db/drive.js +0 -2206
  35. package/com/db/index.js +0 -241
  36. package/com/event/README.md +0 -4
  37. package/com/event/com.json +0 -5
  38. package/com/event/config.tpl.json +0 -20
  39. package/com/event/drive.js +0 -61
  40. package/com/event/index.js +0 -438
  41. package/com/event/script.tpl.js +0 -23
  42. package/com/mqtt/README.md +0 -47
  43. package/com/mqtt/com.json +0 -5
  44. package/com/mqtt/config.tpl.json +0 -42
  45. package/com/mqtt/drive.js +0 -696
  46. package/com/mqtt/index.js +0 -1017
  47. package/com/mqtt/index.test.js +0 -503
  48. package/com/mqtt/mm_mqtt.js +0 -446
  49. package/com/mqtt/script.tpl.js +0 -719
  50. package/com/nav/README.md +0 -2
  51. package/com/nav/com.json +0 -5
  52. package/com/nav/config.tpl.json +0 -84
  53. package/com/nav/drive.js +0 -702
  54. package/com/nav/index.js +0 -228
  55. package/com/nav/tpl/admin_pc/page_channel.vue +0 -305
  56. package/com/nav/tpl/admin_pc/page_config.vue +0 -280
  57. package/com/nav/tpl/admin_pc/page_config_form.vue +0 -194
  58. package/com/nav/tpl/admin_pc/page_default.vue +0 -247
  59. package/com/nav/tpl/admin_pc/page_form.vue +0 -180
  60. package/com/nav/tpl/admin_pc/page_lang.vue +0 -264
  61. package/com/nav/tpl/admin_pc/page_nav.vue +0 -321
  62. package/com/nav/tpl/admin_pc/page_table.vue +0 -296
  63. package/com/nav/tpl/admin_pc/page_type.vue +0 -321
  64. package/com/nav/tpl/admin_pc/page_view.vue +0 -124
  65. package/com/nav/tpl/dev_pc/page_channel.vue +0 -253
  66. package/com/nav/tpl/dev_pc/page_config.vue +0 -253
  67. package/com/nav/tpl/dev_pc/page_default.vue +0 -247
  68. package/com/nav/tpl/dev_pc/page_form.vue +0 -162
  69. package/com/nav/tpl/dev_pc/page_nav.vue +0 -253
  70. package/com/nav/tpl/dev_pc/page_table.vue +0 -247
  71. package/com/nav/tpl/dev_pc/page_type.vue +0 -313
  72. package/com/nav/tpl/home_pc/page_channel.vue +0 -234
  73. package/com/nav/tpl/home_pc/page_default.vue +0 -234
  74. package/com/nav/tpl/home_pc/page_form.vue +0 -137
  75. package/com/nav/tpl/home_pc/page_list.vue +0 -234
  76. package/com/nav/tpl/home_pc/page_nav.vue +0 -221
  77. package/com/nav/tpl/home_pc/page_type.vue +0 -234
  78. package/com/nav/tpl/home_pc/page_view.vue +0 -125
  79. package/com/nav/tpl/home_phone/page_channel.vue +0 -234
  80. package/com/nav/tpl/home_phone/page_default.vue +0 -234
  81. package/com/nav/tpl/home_phone/page_form.vue +0 -137
  82. package/com/nav/tpl/home_phone/page_list.vue +0 -234
  83. package/com/nav/tpl/home_phone/page_nav.vue +0 -237
  84. package/com/nav/tpl/home_phone/page_type.vue +0 -234
  85. package/com/nav/tpl/home_phone/page_view.vue +0 -125
  86. package/com/nav/viewmodel.js +0 -446
  87. package/com/param/README.md +0 -2
  88. package/com/param/com.json +0 -5
  89. package/com/param/config.tpl.json +0 -136
  90. package/com/param/drive.js +0 -502
  91. package/com/param/index.js +0 -158
  92. package/com/param/script.tpl.js +0 -12
  93. package/com/pendant/README.md +0 -3
  94. package/com/pendant/com.json +0 -5
  95. package/com/pendant/config.tpl.json +0 -32
  96. package/com/pendant/drive.js +0 -204
  97. package/com/pendant/index.js +0 -467
  98. package/com/pendant/pendant.html +0 -16
  99. package/com/pendant/script.tpl.js +0 -18
  100. package/com/socket/README.md +0 -47
  101. package/com/socket/com.json +0 -5
  102. package/com/socket/config.tpl.json +0 -12
  103. package/com/socket/drive.js +0 -679
  104. package/com/socket/index.js +0 -402
  105. package/com/socket/script.tpl.js +0 -41
  106. package/com/sql/README.md +0 -3
  107. package/com/sql/com.json +0 -5
  108. package/com/sql/config.tpl.json +0 -74
  109. package/com/sql/drive.js +0 -1283
  110. package/com/sql/index.js +0 -152
  111. package/com/sql/script.tpl.js +0 -47
  112. package/com/static/README.md +0 -2
  113. package/com/static/com.json +0 -5
  114. package/com/static/config.tpl.json +0 -24
  115. package/com/static/drive.js +0 -194
  116. package/com/static/index.js +0 -237
  117. package/com/static/script.tpl.js +0 -28
  118. package/com/task/README.md +0 -3
  119. package/com/task/com.json +0 -5
  120. package/com/task/config.tpl.json +0 -24
  121. package/com/task/drive.js +0 -428
  122. package/com/task/index.js +0 -159
  123. package/com/task/script.tpl.js +0 -40
  124. package/com/template/com.json +0 -5
  125. package/com/template/config.tpl.json +0 -16
  126. package/com/template/drive.js +0 -81
  127. package/com/template/index.js +0 -141
  128. package/com.js +0 -237
  129. package/common/README.md +0 -2
  130. package/common/middleware/web_after/index.js +0 -26
  131. package/common/middleware/web_after/middleware.json +0 -9
  132. package/common/middleware/web_base/index.js +0 -113
  133. package/common/middleware/web_base/middleware.json +0 -19
  134. package/common/middleware/web_before/index.js +0 -33
  135. package/common/middleware/web_before/middleware.json +0 -9
  136. package/common/middleware/web_cors/index.js +0 -87
  137. package/common/middleware/web_cors/middleware.json +0 -24
  138. package/common/middleware/web_error/index.js +0 -131
  139. package/common/middleware/web_error/middleware.json +0 -19
  140. package/common/middleware/web_ip/index.js +0 -15
  141. package/common/middleware/web_ip/middleware.json +0 -14
  142. package/common/middleware/web_logger/index.js +0 -156
  143. package/common/middleware/web_logger/middleware.json +0 -14
  144. package/common/middleware/web_main/index.js +0 -26
  145. package/common/middleware/web_main/middleware.json +0 -9
  146. package/common/middleware/web_static/index.js +0 -73
  147. package/common/middleware/web_static/middleware.json +0 -54
  148. package/common/middleware/web_waf/index.js +0 -385
  149. package/common/middleware/web_waf/middleware.json +0 -13
  150. package/core/app/config.tpl.json +0 -67
  151. package/core/app/index.js +0 -710
  152. package/core/app/script.tpl.js +0 -52
  153. package/core/channel/index.js +0 -899
  154. package/core/channel/matcher.js +0 -585
  155. package/core/com/config.tpl.json +0 -16
  156. package/core/com/index.js +0 -77
  157. package/core/com/script.tpl.js +0 -5
  158. package/core/component/component.js +0 -42
  159. package/core/component/config.tpl.json +0 -63
  160. package/core/component/index.js +0 -273
  161. package/core/component/script.tpl.js +0 -19
  162. package/core/controller/config.tpl.json +0 -14
  163. package/core/controller/index.js +0 -371
  164. package/core/controller/script.tpl.js +0 -27
  165. package/core/factory/config.tpl.json +0 -14
  166. package/core/factory/entity.js +0 -275
  167. package/core/factory/index.js +0 -241
  168. package/core/factory/script.tpl.js +0 -16
  169. package/core/game/bat/index.js +0 -137
  170. package/core/game/bat/world.js +0 -622
  171. package/core/game/config.tpl.json +0 -16
  172. package/core/game/entity_admin.js +0 -230
  173. package/core/game/index.js +0 -186
  174. package/core/handler/config.tpl.json +0 -22
  175. package/core/handler/index.js +0 -181
  176. package/core/handler/script.tpl.js +0 -23
  177. package/core/logic/config.tpl.json +0 -14
  178. package/core/logic/index.js +0 -59
  179. package/core/logic/script.tpl.js +0 -19
  180. package/core/middleware/config.tpl.json +0 -16
  181. package/core/middleware/index.js +0 -117
  182. package/core/middleware/script.tpl.js +0 -37
  183. package/core/mod/config.tpl.json +0 -22
  184. package/core/mod/index.js +0 -136
  185. package/core/mod/script.tpl.js +0 -34
  186. package/core/model/config.tpl.json +0 -219
  187. package/core/model/index.js +0 -272
  188. package/core/model/model.js +0 -27
  189. package/core/model/script.tpl.js +0 -20
  190. package/core/notifier/config.tpl.json +0 -14
  191. package/core/notifier/index.js +0 -77
  192. package/core/notifier/script.tpl.js +0 -20
  193. package/core/plugin/config.tpl.json +0 -36
  194. package/core/plugin/index.js +0 -297
  195. package/core/plugin/script.tpl.js +0 -51
  196. package/core/pusher/config.tpl.json +0 -14
  197. package/core/pusher/index.js +0 -158
  198. package/core/pusher/script.tpl.js +0 -20
  199. package/core/room/bat/index.js +0 -170
  200. package/core/room/bat/room.js +0 -524
  201. package/core/room/config.tpl.json +0 -20
  202. package/core/room/index.js +0 -249
  203. package/core/room/room.js +0 -61
  204. package/core/scene/config.tpl.json +0 -14
  205. package/core/scene/index.js +0 -467
  206. package/core/scene/loop.js +0 -1306
  207. package/core/scene/map.js +0 -28
  208. package/core/scene/script.tpl.js +0 -22
  209. package/core/sender/config.tpl.json +0 -14
  210. package/core/sender/index.js +0 -79
  211. package/core/sender/script.tpl.js +0 -20
  212. package/core/service/config.tpl.json +0 -14
  213. package/core/service/index.js +0 -100
  214. package/core/service/script.tpl.js +0 -25
  215. package/core/store/config.tpl.json +0 -26
  216. package/core/store/index.js +0 -1794
  217. package/core/store/script.tpl.js +0 -22
  218. package/core/store/sql.js +0 -1488
  219. package/core/system/config.tpl.json +0 -18
  220. package/core/system/index.js +0 -312
  221. package/core/system/script.tpl.js +0 -77
  222. package/core/view/config.tpl.json +0 -14
  223. package/core/view/index.js +0 -91
  224. package/core/view/script.tpl.js +0 -20
  225. package/core/zone/bat/index.js +0 -744
  226. package/core/zone/config.tpl.json +0 -54
  227. package/core/zone/index.js +0 -655
  228. package/core/zone/script.tpl.js +0 -10
  229. package/core/zone/zone_bat.js +0 -136
  230. package/core//345/237/272/347/261/273/346/250/241/345/235/227/346/270/205/345/215/225.md +0 -24
  231. package/os.js +0 -53
  232. package/server.js +0 -595
  233. package/ulits/id_gen.js +0 -134
  234. package/ulits/word.js +0 -206
@@ -1,446 +0,0 @@
1
- /**
2
- * 视图模型
3
- * @class
4
- */
5
- class Model {
6
- /**
7
- * 配置参数
8
- * @param {object} config 配置参数
9
- */
10
- constructor(config) {
11
-
12
- }
13
- }
14
-
15
- /**
16
- * 获取显示类型
17
- * @param {string} key 键值
18
- * @param {boolean} f 是否带格式
19
- * @returns {string} 返回显示类型
20
- */
21
- Model.prototype.getType = function(key, f) {
22
- var typeMap = {
23
- 'search': f ? 'select' : '',
24
- 'view': 'text',
25
- 'table': f ? 'select' : 'text',
26
- 'edit': f ? 'select' : 'input',
27
- 'list': 'text',
28
- 'details': 'text',
29
- 'batch': f ? 'select' : '',
30
- 'filter': f ? 'select' : ''
31
- };
32
- return typeMap[key] !== undefined ? typeMap[key] : (f ? 'select' : '');
33
- };
34
-
35
- /**
36
- * 查询显示方式
37
- * @param {Array} arr 显示类型数组
38
- * @param {string} key 键值
39
- * @param {boolean} f 是否带格式
40
- * @returns {string} 返回显示方式
41
- */
42
- Model.prototype.getShow = function(arr, key, f) {
43
- var bl = false;
44
- var show = '';
45
- for (var i = 0; i < arr.length; i++) {
46
- var str = arr[i];
47
- if (str.indexOf(key + '_no') !== -1) {
48
- bl = true;
49
- break;
50
- } else if (str.indexOf(key + '_input') !== -1) {
51
- show = 'input';
52
- break;
53
- } else if (str.indexOf(key + '_select') !== -1) {
54
- show = 'select';
55
- break;
56
- } else if (str.indexOf(key + '_text') !== -1) {
57
- show = 'text';
58
- break;
59
- }
60
- }
61
- if (!show && !bl) {
62
- show = this.getType(key, f);
63
- }
64
- return show;
65
- };
66
-
67
- /**
68
- * 获取表格所需键值对
69
- * @param {object} model 模型
70
- * @returns {object} 返回视图所用模型
71
- */
72
- Model.prototype.field = async function(model) {
73
- var list = model.param.list;
74
- if (!list) {
75
- model.param.list = [];
76
- return [];
77
- }
78
-
79
- var field = this._getFieldByFileType(model);
80
- var requireds = this._getRequiredFields(model);
81
- var field_names = field.replace(/`/g, '').split(',');
82
-
83
- return this._processFieldList(list, field_names, requireds, model);
84
- };
85
-
86
- /**
87
- * 根据文件类型获取字段
88
- * @param {object} model 模型
89
- * @returns {string} 字段字符串
90
- * @private
91
- */
92
- Model.prototype._getFieldByFileType = function(model) {
93
- if (model.file.indexOf('_form') !== -1 || model.file.indexOf('_view') !== -1) {
94
- return model.sql.field_obj || '';
95
- }
96
- return model.sql.field_default || '';
97
- };
98
-
99
- /**
100
- * 获取必填字段
101
- * @param {object} model 模型
102
- * @returns {Array} 必填字段数组
103
- * @private
104
- */
105
- Model.prototype._getRequiredFields = function(model) {
106
- var add = model.param.add;
107
- return add ? add.body_required : [];
108
- };
109
-
110
- /**
111
- * 处理字段列表
112
- * @param {Array} list 字段列表
113
- * @param {Array} field_names 字段名数组
114
- * @param {Array} requireds 必填字段数组
115
- * @param {object} model 模型
116
- * @returns {Array} 处理后的字段列表
117
- * @private
118
- */
119
- Model.prototype._processFieldList = function(list, field_names, requireds, model) {
120
- var pm = [];
121
- for (var i = 0; i < list.length; i++) {
122
- var o = list[i];
123
- var name = o.name;
124
- if (field_names.indexOf(name) !== -1) {
125
- var obj = this._processField(o, requireds, model);
126
- pm.push(obj);
127
- }
128
- }
129
- return pm;
130
- };
131
-
132
- /**
133
- * 处理单个字段
134
- * @param {object} field 字段对象
135
- * @param {Array} requireds 必填字段数组
136
- * @param {object} model 模型
137
- * @returns {object} 处理后的字段对象
138
- * @private
139
- */
140
- Model.prototype._processField = function(field, requireds, model) {
141
- var obj = { ...field};
142
- var format_info = this._getFieldFormat(obj.name, model);
143
-
144
- if (format_info.format) {
145
- obj.title = format_info.format.title;
146
- obj.format = format_info.format;
147
- }
148
-
149
- if (requireds.indexOf(obj.name) !== -1) {
150
- obj.required = true;
151
- }
152
-
153
- obj.show = this._getFieldShow(obj.description, format_info.has_format);
154
- return obj;
155
- };
156
-
157
- /**
158
- * 获取字段格式
159
- * @param {string} fieldName 字段名
160
- * @param {object} model 模型
161
- * @returns {object} 格式信息
162
- * @private
163
- */
164
- Model.prototype._getFieldFormat = function(fieldName, model) {
165
- var format = model.sql.format.getObj({ key: fieldName });
166
- return {
167
- format: format,
168
- has_format: !!format
169
- };
170
- };
171
-
172
- /**
173
- * 获取字段显示配置
174
- * @param {string} description 字段描述
175
- * @param {boolean} has_format 是否有格式
176
- * @returns {object} 显示配置
177
- * @private
178
- */
179
- Model.prototype._getFieldShow = function(description, has_format) {
180
- if (description.indexOf('##') === -1) {
181
- return this._getDefaultShowConfig(has_format);
182
- }
183
- return this._getCustomShowConfig(description, has_format);
184
- };
185
-
186
- /**
187
- * 获取默认显示配置
188
- * @param {boolean} has_format 是否有格式
189
- * @returns {object} 默认显示配置
190
- * @private
191
- */
192
- Model.prototype._getDefaultShowConfig = function(has_format) {
193
- return {
194
- form: has_format ? 'select' : 'input',
195
- view: 'text',
196
- search: has_format ? 'select' : '',
197
- table: has_format ? 'select' : 'text',
198
- list: 'text',
199
- edit: has_format ? 'select' : 'input',
200
- details: 'text',
201
- batch: has_format ? 'select' : '',
202
- filter: has_format ? 'select' : ''
203
- };
204
- };
205
-
206
- /**
207
- * 获取自定义显示配置
208
- * @param {string} description 字段描述
209
- * @param {boolean} has_format 是否有格式
210
- * @returns {object} 自定义显示配置
211
- * @private
212
- */
213
- Model.prototype._getCustomShowConfig = function(description, has_format) {
214
- var desc = description.between('##', '##');
215
- var ar = desc.trim().split(' ');
216
-
217
- if (desc.indexOf('none') !== -1) {
218
- return this._getEmptyShowConfig();
219
- }
220
-
221
- return this._buildShowConfig(ar, has_format);
222
- };
223
-
224
- /**
225
- * 获取空显示配置
226
- * @returns {object} 空显示配置
227
- * @private
228
- */
229
- Model.prototype._getEmptyShowConfig = function() {
230
- return {
231
- form: '',
232
- view: '',
233
- search: '',
234
- table: '',
235
- list: '',
236
- edit: '',
237
- details: '',
238
- batch: '',
239
- filter: ''
240
- };
241
- };
242
-
243
- /**
244
- * 构建显示配置
245
- * @param {Array} configArray 配置数组
246
- * @param {boolean} has_format 是否有格式
247
- * @returns {object} 显示配置
248
- * @private
249
- */
250
- Model.prototype._buildShowConfig = function(configArray, has_format) {
251
- return {
252
- search: this.getShow(configArray, 'search', has_format),
253
- table: this.getShow(configArray, 'table', has_format),
254
- form: this.getShow(configArray, 'form', has_format),
255
- view: this.getShow(configArray, 'view', has_format),
256
- batch: this.getShow(configArray, 'batch', has_format),
257
- list: this.getShow(configArray, 'list', has_format),
258
- details: this.getShow(configArray, 'details', has_format),
259
- filter: this.getShow(configArray, 'filter', has_format),
260
- edit: this.getShow(configArray, 'edit', has_format)
261
- };
262
- };
263
-
264
- /**
265
- * 运算视图模型(css)
266
- * @param {object} model 模型
267
- * @returns {object} 返回视图所用模型
268
- */
269
- Model.prototype.css = async function(model) {
270
- var css = {};
271
- return css;
272
- };
273
-
274
- /**
275
- * 运算视图模型(html)
276
- * @param {object} model 模型
277
- * @returns {object} 返回视图所用模型
278
- */
279
- Model.prototype.html = async function(model) {
280
- var html = {};
281
- if (!model.sql) {
282
- return html;
283
- }
284
- return html;
285
- };
286
-
287
- /**
288
- * 运算视图模型(js)
289
- * @param {object} model 模型
290
- * @returns {object} 返回视图所用模型
291
- */
292
- Model.prototype.js = async function(model) {
293
- var js = {
294
- data: [],
295
- query: []
296
- };
297
-
298
- var field = model.field;
299
- var path_start = model.file.indexOf('admin') !== -1 ? '/apis/' : '/api/';
300
-
301
- this._processField(js, field, path_start);
302
- this._processQuery(js, model.param);
303
-
304
- return js;
305
- };
306
-
307
- /**
308
- * 处理字段
309
- * @param {object} js js对象
310
- * @param {Array} field 字段列表
311
- * @param {string} path_start 路径前缀
312
- * @private
313
- */
314
- Model.prototype._processField = function(js, field, path_start) {
315
- for (var i = 0; i < field.length; i++) {
316
- var o = field[i];
317
- var format = o.format;
318
- if (format) {
319
- var obj = this._createFormatObj(o, format, path_start);
320
- if (obj) {
321
- js.data.push(obj);
322
- }
323
- }
324
- }
325
- };
326
-
327
- /**
328
- * 创建格式对象
329
- * @param {object} field 字段对象
330
- * @param {object} format 格式对象
331
- * @param {string} path_start 路径前缀
332
- * @returns {object} 格式对象
333
- * @private
334
- */
335
- Model.prototype._createFormatObj = function(field, format, path_start) {
336
- if (format.table) {
337
- return this._createTableFormatObj(field, format, path_start);
338
- } else {
339
- return this._createListFormatObj(field, format);
340
- }
341
- };
342
-
343
- /**
344
- * 创建表格格式对象
345
- * @param {object} field 字段对象
346
- * @param {object} format 格式对象
347
- * @param {string} path_start 路径前缀
348
- * @returns {object} 表格格式对象
349
- * @private
350
- */
351
- Model.prototype._createTableFormatObj = function(field, format, path_start) {
352
- var basename = format.table.split('_').splice(1).join('_');
353
- var name = 'list_' + basename;
354
- var id = format.nav_id || format.key;
355
- var path = path_start + format.table.replace('_', '/') + '?size=0';
356
-
357
- var obj = {
358
- basename,
359
- title: format.title,
360
- id,
361
- name,
362
- field: format.name,
363
- value: [],
364
- path
365
- };
366
-
367
- return this._addSpecialFields(obj, field.name, name);
368
- };
369
-
370
- /**
371
- * 添加特殊字段
372
- * @param {object} obj 对象
373
- * @param {string} field_name 字段名
374
- * @param {string} label 标签
375
- * @returns {object} 新对象
376
- * @private
377
- */
378
- Model.prototype._addSpecialFields = function(obj, field_name, label) {
379
- var new_obj = { ...obj };
380
-
381
- if (field_name === 'father_id' || field_name === 'fid') {
382
- new_obj.father_id = field_name;
383
- }
384
- if (field_name === 'title') {
385
- new_obj.title_name = 'title';
386
- }
387
-
388
- return new_obj;
389
- };
390
-
391
- /**
392
- * 创建列表格式对象
393
- * @param {object} field 字段对象
394
- * @param {object} format 格式对象
395
- * @returns {object} 列表格式对象
396
- * @private
397
- */
398
- Model.prototype._createListFormatObj = function(field, format) {
399
- var basename = format.key;
400
- var name = 'arr_' + basename;
401
-
402
- return {
403
- title: format.title,
404
- name,
405
- value: format.list
406
- };
407
- };
408
-
409
- /**
410
- * 处理查询
411
- * @param {object} js js对象
412
- * @param {object} param 参数对象
413
- * @private
414
- */
415
- Model.prototype._processQuery = function(js, param) {
416
- if (param && param.get) {
417
- var arr = param.get.query_required.concat(param.get.query);
418
- var lt = param.list;
419
- for (var i = 0; i < arr.length; i++) {
420
- var o = lt.getObj({ name: arr[i] });
421
- if (o) {
422
- js.query.push({
423
- title: o.title,
424
- name: o.name,
425
- type: o.type,
426
- select: o.description ? (o.description.indexOf('(') !== -1) : false
427
- });
428
- }
429
- }
430
- }
431
- };
432
-
433
- /**
434
- * 运算视图模型
435
- * @param {object} model 模型
436
- * @returns {object} 返回视图所用模型
437
- */
438
- Model.prototype.run = async function(model) {
439
- model.field = await this.field(model);
440
- model.js = await this.js(model);
441
- model.html = await this.html(model);
442
- model.css = await this.css(model);
443
- return model;
444
- };
445
-
446
- module.exports = Model;
@@ -1,2 +0,0 @@
1
- ## 参数校验框架
2
- 用于校验前端所传参数,校验其格式、长度、数据类型、确保所传参数符合规则,避免传参错误导致的BUG
@@ -1,5 +0,0 @@
1
- {
2
- "name": "Param",
3
- "title": "参数管理器",
4
- "state": 1
5
- }
@@ -1,136 +0,0 @@
1
- {
2
- // 参数配置名
3
- "name": "${name}",
4
- // 参数标题
5
- "title": "${title || '参数配置'}",
6
- // 参数描述
7
- "description": "${description || '描述参数配置使用方法'}",
8
- // 是否启用过滤, 启用过滤后, 不符合的参数会被过滤掉
9
- "filter": true,
10
- // 校验脚本文件, 可以使用脚本的方式加一步进行校验, 让传参更加安全
11
- "main": "",
12
- // get请求
13
- "get": {
14
- // 查询参数校验项
15
- "query": ["uid", "name", "username", "phone", "email"],
16
- // 查询必填参数
17
- "query_required": []
18
- },
19
- // post请求
20
- "post": {
21
- // 查询参数校验项
22
- "query": ["uid", "name", "username", "phone", "email"],
23
- // 查询必填参数
24
- "query_required": [],
25
- // 正文参数校验项
26
- "body": ["age", "headImg", "birthday", "password", "confirm_password", "pay_password"],
27
- // 正文必填参数
28
- "body_required": []
29
- },
30
- // 校验列表
31
- "list": [{
32
- // 参数key名
33
- "name": "uid",
34
- // 参数中文名
35
- "title": "用户ID",
36
- // 数据类型
37
- "type": "number",
38
- // 数字类型时设置
39
- "number": {
40
- // 最小数值
41
- "min": 1
42
- },
43
- // 分隔参数,允许传多个值,为空则限制1个值
44
- "splitter": "|"
45
- }, {
46
- "name": "name",
47
- "title": "姓名",
48
- "type": "string",
49
- // 字符串类型时设置
50
- "string": {
51
- // 格式
52
- "format": "ch",
53
- // 传值范围,字符串时为限制字符长度
54
- "range": [2, 6]
55
- },
56
- "splitter": "|"
57
- },
58
- {
59
- "name": "age",
60
- "title": "年龄",
61
- "type": "number",
62
- "number": {
63
- // 传值范围,数字时为最小值和最大值
64
- "range": [1, 150]
65
- }
66
- },
67
- {
68
- "name": "headImg",
69
- "title": "头像",
70
- "type": "string",
71
- "string": {
72
- // 拓展名,用于传媒体(图片、音频、视频)时
73
- "extension": "png|gif|jpg|jpeg|bmp"
74
- }
75
- },
76
- {
77
- "name": "birthday",
78
- "title": "生日",
79
- "type": "string",
80
- "string": {
81
- "format": "dateISO"
82
- }
83
- },
84
- {
85
- "name": "username",
86
- "title": "用户名",
87
- "type": "string",
88
- "string": {
89
- "format": "username"
90
- }
91
- },
92
- {
93
- "name": "password",
94
- "title": "密码",
95
- "type": "string",
96
- "string": {
97
- "format": "password",
98
- "different": "username"
99
- }
100
- },
101
- {
102
- "name": "phone",
103
- "title": "手机",
104
- "type": "string",
105
- "string": {
106
- "format": "phone"
107
- }
108
- },
109
- {
110
- "name": "email",
111
- "title": "邮箱",
112
- "type": "string",
113
- "string": {
114
- "format": "email"
115
- }
116
- },
117
- {
118
- "name": "pay_password",
119
- "title": "支付密码",
120
- "type": "string",
121
- "string": {
122
- "format": "num",
123
- "different": "password"
124
- }
125
- },
126
- {
127
- "name": "confirm_password",
128
- "title": "确认密码",
129
- "type": "string",
130
- "string": {
131
- "format": "password",
132
- "identical": "password"
133
- }
134
- }
135
- ]
136
- }