mm_os 4.3.7 → 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 (232) 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 -84
  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 -704
  46. package/com/mqtt/index.js +0 -1052
  47. package/com/mqtt/index.test.js +0 -503
  48. package/com/mqtt/script.tpl.js +0 -719
  49. package/com/nav/README.md +0 -2
  50. package/com/nav/com.json +0 -5
  51. package/com/nav/config.tpl.json +0 -84
  52. package/com/nav/drive.js +0 -702
  53. package/com/nav/index.js +0 -228
  54. package/com/nav/tpl/admin_pc/page_channel.vue +0 -305
  55. package/com/nav/tpl/admin_pc/page_config.vue +0 -280
  56. package/com/nav/tpl/admin_pc/page_config_form.vue +0 -194
  57. package/com/nav/tpl/admin_pc/page_default.vue +0 -247
  58. package/com/nav/tpl/admin_pc/page_form.vue +0 -180
  59. package/com/nav/tpl/admin_pc/page_lang.vue +0 -264
  60. package/com/nav/tpl/admin_pc/page_nav.vue +0 -321
  61. package/com/nav/tpl/admin_pc/page_table.vue +0 -296
  62. package/com/nav/tpl/admin_pc/page_type.vue +0 -321
  63. package/com/nav/tpl/admin_pc/page_view.vue +0 -124
  64. package/com/nav/tpl/dev_pc/page_channel.vue +0 -253
  65. package/com/nav/tpl/dev_pc/page_config.vue +0 -253
  66. package/com/nav/tpl/dev_pc/page_default.vue +0 -247
  67. package/com/nav/tpl/dev_pc/page_form.vue +0 -162
  68. package/com/nav/tpl/dev_pc/page_nav.vue +0 -253
  69. package/com/nav/tpl/dev_pc/page_table.vue +0 -247
  70. package/com/nav/tpl/dev_pc/page_type.vue +0 -313
  71. package/com/nav/tpl/home_pc/page_channel.vue +0 -234
  72. package/com/nav/tpl/home_pc/page_default.vue +0 -234
  73. package/com/nav/tpl/home_pc/page_form.vue +0 -137
  74. package/com/nav/tpl/home_pc/page_list.vue +0 -234
  75. package/com/nav/tpl/home_pc/page_nav.vue +0 -221
  76. package/com/nav/tpl/home_pc/page_type.vue +0 -234
  77. package/com/nav/tpl/home_pc/page_view.vue +0 -125
  78. package/com/nav/tpl/home_phone/page_channel.vue +0 -234
  79. package/com/nav/tpl/home_phone/page_default.vue +0 -234
  80. package/com/nav/tpl/home_phone/page_form.vue +0 -137
  81. package/com/nav/tpl/home_phone/page_list.vue +0 -234
  82. package/com/nav/tpl/home_phone/page_nav.vue +0 -237
  83. package/com/nav/tpl/home_phone/page_type.vue +0 -234
  84. package/com/nav/tpl/home_phone/page_view.vue +0 -125
  85. package/com/nav/viewmodel.js +0 -446
  86. package/com/param/README.md +0 -2
  87. package/com/param/com.json +0 -5
  88. package/com/param/config.tpl.json +0 -136
  89. package/com/param/drive.js +0 -502
  90. package/com/param/index.js +0 -158
  91. package/com/param/script.tpl.js +0 -12
  92. package/com/pendant/README.md +0 -3
  93. package/com/pendant/com.json +0 -5
  94. package/com/pendant/config.tpl.json +0 -32
  95. package/com/pendant/drive.js +0 -204
  96. package/com/pendant/index.js +0 -467
  97. package/com/pendant/pendant.html +0 -16
  98. package/com/pendant/script.tpl.js +0 -18
  99. package/com/socket/README.md +0 -47
  100. package/com/socket/com.json +0 -5
  101. package/com/socket/config.tpl.json +0 -12
  102. package/com/socket/drive.js +0 -679
  103. package/com/socket/index.js +0 -402
  104. package/com/socket/script.tpl.js +0 -41
  105. package/com/sql/README.md +0 -3
  106. package/com/sql/com.json +0 -5
  107. package/com/sql/config.tpl.json +0 -74
  108. package/com/sql/drive.js +0 -1328
  109. package/com/sql/index.js +0 -152
  110. package/com/sql/script.tpl.js +0 -47
  111. package/com/static/README.md +0 -2
  112. package/com/static/com.json +0 -5
  113. package/com/static/config.tpl.json +0 -24
  114. package/com/static/drive.js +0 -194
  115. package/com/static/index.js +0 -237
  116. package/com/static/script.tpl.js +0 -28
  117. package/com/task/README.md +0 -3
  118. package/com/task/com.json +0 -5
  119. package/com/task/config.tpl.json +0 -24
  120. package/com/task/drive.js +0 -428
  121. package/com/task/index.js +0 -159
  122. package/com/task/script.tpl.js +0 -40
  123. package/com/template/com.json +0 -5
  124. package/com/template/config.tpl.json +0 -16
  125. package/com/template/drive.js +0 -81
  126. package/com/template/index.js +0 -141
  127. package/com.js +0 -237
  128. package/common/README.md +0 -2
  129. package/common/middleware/web_after/index.js +0 -26
  130. package/common/middleware/web_after/middleware.json +0 -9
  131. package/common/middleware/web_base/index.js +0 -113
  132. package/common/middleware/web_base/middleware.json +0 -19
  133. package/common/middleware/web_before/index.js +0 -33
  134. package/common/middleware/web_before/middleware.json +0 -9
  135. package/common/middleware/web_cors/index.js +0 -87
  136. package/common/middleware/web_cors/middleware.json +0 -24
  137. package/common/middleware/web_error/index.js +0 -131
  138. package/common/middleware/web_error/middleware.json +0 -19
  139. package/common/middleware/web_ip/index.js +0 -15
  140. package/common/middleware/web_ip/middleware.json +0 -14
  141. package/common/middleware/web_logger/index.js +0 -156
  142. package/common/middleware/web_logger/middleware.json +0 -14
  143. package/common/middleware/web_main/index.js +0 -26
  144. package/common/middleware/web_main/middleware.json +0 -9
  145. package/common/middleware/web_static/index.js +0 -73
  146. package/common/middleware/web_static/middleware.json +0 -54
  147. package/common/middleware/web_waf/index.js +0 -395
  148. package/common/middleware/web_waf/middleware.json +0 -13
  149. package/core/app/config.tpl.json +0 -67
  150. package/core/app/index.js +0 -711
  151. package/core/app/script.tpl.js +0 -52
  152. package/core/channel/index.js +0 -899
  153. package/core/channel/matcher.js +0 -585
  154. package/core/com/config.tpl.json +0 -16
  155. package/core/com/index.js +0 -77
  156. package/core/com/script.tpl.js +0 -5
  157. package/core/component/component.js +0 -42
  158. package/core/component/config.tpl.json +0 -63
  159. package/core/component/index.js +0 -273
  160. package/core/component/script.tpl.js +0 -19
  161. package/core/controller/config.tpl.json +0 -14
  162. package/core/controller/index.js +0 -371
  163. package/core/controller/script.tpl.js +0 -27
  164. package/core/factory/config.tpl.json +0 -14
  165. package/core/factory/entity.js +0 -275
  166. package/core/factory/index.js +0 -241
  167. package/core/factory/script.tpl.js +0 -16
  168. package/core/game/bat/index.js +0 -137
  169. package/core/game/bat/world.js +0 -622
  170. package/core/game/config.tpl.json +0 -16
  171. package/core/game/entity_admin.js +0 -230
  172. package/core/game/index.js +0 -186
  173. package/core/handler/config.tpl.json +0 -22
  174. package/core/handler/index.js +0 -181
  175. package/core/handler/script.tpl.js +0 -23
  176. package/core/logic/config.tpl.json +0 -14
  177. package/core/logic/index.js +0 -59
  178. package/core/logic/script.tpl.js +0 -19
  179. package/core/middleware/config.tpl.json +0 -16
  180. package/core/middleware/index.js +0 -117
  181. package/core/middleware/script.tpl.js +0 -37
  182. package/core/mod/config.tpl.json +0 -22
  183. package/core/mod/index.js +0 -136
  184. package/core/mod/script.tpl.js +0 -34
  185. package/core/model/config.tpl.json +0 -219
  186. package/core/model/index.js +0 -272
  187. package/core/model/model.js +0 -27
  188. package/core/model/script.tpl.js +0 -20
  189. package/core/notifier/config.tpl.json +0 -14
  190. package/core/notifier/index.js +0 -77
  191. package/core/notifier/script.tpl.js +0 -20
  192. package/core/plugin/config.tpl.json +0 -36
  193. package/core/plugin/index.js +0 -267
  194. package/core/plugin/script.tpl.js +0 -51
  195. package/core/pusher/config.tpl.json +0 -14
  196. package/core/pusher/index.js +0 -158
  197. package/core/pusher/script.tpl.js +0 -20
  198. package/core/room/bat/index.js +0 -170
  199. package/core/room/bat/room.js +0 -524
  200. package/core/room/config.tpl.json +0 -20
  201. package/core/room/index.js +0 -249
  202. package/core/room/room.js +0 -61
  203. package/core/scene/config.tpl.json +0 -14
  204. package/core/scene/index.js +0 -467
  205. package/core/scene/loop.js +0 -1306
  206. package/core/scene/map.js +0 -28
  207. package/core/scene/script.tpl.js +0 -22
  208. package/core/sender/config.tpl.json +0 -14
  209. package/core/sender/index.js +0 -79
  210. package/core/sender/script.tpl.js +0 -20
  211. package/core/service/config.tpl.json +0 -14
  212. package/core/service/index.js +0 -100
  213. package/core/service/script.tpl.js +0 -25
  214. package/core/store/config.tpl.json +0 -26
  215. package/core/store/index.js +0 -1794
  216. package/core/store/script.tpl.js +0 -22
  217. package/core/system/config.tpl.json +0 -18
  218. package/core/system/index.js +0 -312
  219. package/core/system/script.tpl.js +0 -77
  220. package/core/view/config.tpl.json +0 -14
  221. package/core/view/index.js +0 -91
  222. package/core/view/script.tpl.js +0 -20
  223. package/core/zone/bat/index.js +0 -744
  224. package/core/zone/config.tpl.json +0 -54
  225. package/core/zone/index.js +0 -655
  226. package/core/zone/script.tpl.js +0 -10
  227. package/core/zone/zone_bat.js +0 -136
  228. package/core//345/237/272/347/261/273/346/250/241/345/235/227/346/270/205/345/215/225.md +0 -24
  229. package/os.js +0 -53
  230. package/server.js +0 -602
  231. package/ulits/id_gen.js +0 -134
  232. 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
- }