mm_os 4.2.4 → 4.2.7

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 (77) hide show
  1. package/README.md +1 -1
  2. package/README_EN.md +2 -2
  3. package/adapter/adapter.js +105 -52
  4. package/adapter/custom_persistence.js +32 -31
  5. package/adapter/mqtt.js +59 -79
  6. package/adapter/socket.js +188 -58
  7. package/adapter/web.js +92 -68
  8. package/adapter/websocket.js +43 -146
  9. package/com/api/drive.js +732 -708
  10. package/com/api/index.js +196 -198
  11. package/com/api/script.tpl.js +24 -24
  12. package/com/cmd/config.tpl.json +48 -122
  13. package/com/cmd/drive.js +176 -1548
  14. package/com/cmd/index.js +287 -1066
  15. package/com/cmd/job/config.json +66 -0
  16. package/com/cmd/job/index.js +241 -0
  17. package/com/cmd/job/test.js +188 -0
  18. package/com/cmd/script.tpl.js +12 -33
  19. package/com/db/drive.js +2206 -2019
  20. package/com/db/index.js +241 -242
  21. package/com/event/config.tpl.json +3 -1
  22. package/com/event/drive.js +3 -1
  23. package/com/event/index.js +73 -46
  24. package/com/event/script.tpl.js +22 -22
  25. package/com/mqtt/config.tpl.json +16 -8
  26. package/com/mqtt/drive.js +696 -676
  27. package/com/mqtt/index.js +1012 -822
  28. package/com/mqtt/index.test.js +503 -0
  29. package/com/mqtt/mm_mqtt.js +446 -420
  30. package/com/mqtt/script.tpl.js +3 -7
  31. package/com/nav/drive.js +7 -7
  32. package/com/nav/index.js +228 -231
  33. package/com/param/index.js +19 -17
  34. package/com/pendant/index.js +467 -441
  35. package/com/socket/drive.js +679 -651
  36. package/com/socket/index.js +94 -48
  37. package/com/sql/drive.js +1283 -1259
  38. package/com/sql/index.js +152 -150
  39. package/com/static/drive.js +1 -1
  40. package/com/static/index.js +232 -226
  41. package/com/static/script.tpl.js +25 -25
  42. package/com/task/drive.js +428 -405
  43. package/com/task/index.js +154 -148
  44. package/com/task/script.tpl.js +37 -34
  45. package/com/template/drive.js +1 -1
  46. package/com/template/index.js +141 -138
  47. package/com.js +87 -6
  48. package/common/middleware/web_after/index.js +5 -11
  49. package/common/middleware/web_base/index.js +1 -1
  50. package/common/middleware/web_cors/index.js +1 -1
  51. package/common/middleware/web_error/index.js +131 -119
  52. package/common/middleware/web_error/middleware.json +2 -1
  53. package/common/middleware/web_logger/index.js +1 -1
  54. package/common/middleware/web_main/index.js +2 -0
  55. package/common/middleware/web_static/index.js +2 -2
  56. package/common/middleware/web_waf/index.js +1 -1
  57. package/core/app/config.tpl.json +4 -4
  58. package/core/app/index.js +710 -534
  59. package/core/middleware/index.js +1 -9
  60. package/core/mod/config.tpl.json +1 -1
  61. package/core/model/config.tpl.json +1 -1
  62. package/core/plugin/config.tpl.json +15 -3
  63. package/core/plugin/index.js +31 -0
  64. package/core/pusher/index.js +158 -161
  65. package/core/scene/loop.js +1306 -1255
  66. package/core/store/index.js +1794 -1755
  67. package/core/store/sql.js +1488 -1464
  68. package/core/zone/bat/index.js +744 -728
  69. package/core/zone/config.tpl.json +3 -3
  70. package/core/zone/index.js +655 -616
  71. package/os.js +0 -4
  72. package/package.json +16 -16
  73. package/server.js +583 -427
  74. package/com/cmd/nlp.js +0 -525
  75. package/core/app/index copy.js +0 -611
  76. package/software.js +0 -194
  77. package/tcp.js +0 -279
@@ -435,7 +435,7 @@ exports._parseBatch = function(res) {
435
435
  */
436
436
  exports.updateMemberBatch = async function(clientid, list, longtime = 180) {
437
437
  var res = await this.pushS(clientid, {
438
- 'messageId': this.getMsgid('EditPersonsNew'),
438
+ 'messageId': this.getMsgId('EditPersonsNew'),
439
439
  'DataBegin': 'BeginFlag',
440
440
  'DataEnd': 'EndFlag',
441
441
  'operator': 'EditPersonsNew',
@@ -457,7 +457,7 @@ exports.updateMemberBatch = async function(clientid, list, longtime = 180) {
457
457
  */
458
458
  exports.updateMember = function(clientid, user, longtime = 0) {
459
459
  return this.pushS(clientid, {
460
- 'messageId': this.getMsgid('EditPerson'),
460
+ 'messageId': this.getMsgId('EditPerson'),
461
461
  'DataBegin': 'BeginFlag',
462
462
  'DataEnd': 'EndFlag',
463
463
  'method': 'EditPerson',
@@ -489,7 +489,6 @@ var _regBasicMethods = function(m, self) {
489
489
  }
490
490
  self.drives[clientid].online = 1;
491
491
  self.drives[clientid].time_last = new Date().getTime();
492
- // console.log("心跳", clientid, self.drives[clientid]);
493
492
  };
494
493
 
495
494
  /**
@@ -499,7 +498,6 @@ var _regBasicMethods = function(m, self) {
499
498
  */
500
499
  m['Offline'] = async function(clientid, params) {
501
500
  self.updateOnline(clientid, 0);
502
- // console.log("离线", clientid, self.drives[clientid]);
503
501
  };
504
502
 
505
503
  /**
@@ -549,7 +547,6 @@ var _regDeviceMethods = function(m, self) {
549
547
  // GPS纵坐标,保留生命体脱下设备时的最后位置
550
548
  gps_y: 0
551
549
  });
552
- // console.log("离线", clientid, _this.drives[clientid]);
553
550
  };
554
551
 
555
552
  /**
@@ -590,7 +587,6 @@ var _regDeviceMethods = function(m, self) {
590
587
  // GPS纵坐标
591
588
  gps_y: 0
592
589
  });
593
- // console.log("离线", clientid, _this.drives[clientid]);
594
590
  };
595
591
  };
596
592
 
@@ -618,7 +614,7 @@ var _getRecordType = function(otype) {
618
614
  */
619
615
  var _sendAck = function(clientid, record_id, self) {
620
616
  self.send(`mqtt/face/${clientid}`, {
621
- 'messageId': self.getMsgid('PushAck'),
617
+ 'messageId': self.getMsgId('PushAck'),
622
618
  'operator': 'PushAck',
623
619
  'info': {
624
620
  'PushAckType': '2',
package/com/nav/drive.js CHANGED
@@ -157,13 +157,13 @@ Drive.prototype.exec = function (type) {
157
157
  */
158
158
  Drive.prototype.sort = async function () {
159
159
  var cg = this.config;
160
- cg.top.sortBy('asc', 'display');
161
- cg.left.sortBy('asc', 'display');
162
- cg.bottom.sortBy('asc', 'display');
163
- cg.right.sortBy('asc', 'display');
164
- cg.desktop.sortBy('asc', 'display');
165
- cg.quick.sortBy('asc', 'display');
166
- cg.main.sortBy('asc', 'display');
160
+ if (cg.top_nav) cg.top_nav.sortBy('asc', 'display');
161
+ if (cg.left_nav) cg.left_nav.sortBy('asc', 'display');
162
+ if (cg.bottom_nav) cg.bottom_nav.sortBy('asc', 'display');
163
+ if (cg.right_nav) cg.right_nav.sortBy('asc', 'display');
164
+ if (cg.desktop_nav) cg.desktop_nav.sortBy('asc', 'display');
165
+ if (cg.quick_nav) cg.quick_nav.sortBy('asc', 'display');
166
+ if (cg.main_nav) cg.main_nav.sortBy('asc', 'display');
167
167
  };
168
168
 
169
169
  /**
package/com/nav/index.js CHANGED
@@ -1,231 +1,228 @@
1
- const Manager = require('mm_machine').Manager;
2
- const Drive = require('./drive');
3
-
4
- /**
5
- * Nav导航类
6
- * @augments {Manager}
7
- * @class
8
- */
9
- class Nav extends Manager {
10
- /**
11
- * 配置参数
12
- * @type {object}
13
- */
14
- static config = {
15
- /**
16
- * 名称
17
- * @type {string}
18
- */
19
- name: '',
20
- /**
21
- * 标题
22
- * @type {string}
23
- */
24
- title: '导航管理',
25
- /**
26
- * 描述
27
- * @type {string}
28
- */
29
- description: '这是导航管理器',
30
- /**
31
- * 检索文件名
32
- * @type {string}
33
- */
34
- filename: 'nav.json',
35
- /**
36
- * 模板目录
37
- * @type {string}
38
- */
39
- tpl_dir: __dirname,
40
- /**
41
- * 基础目录
42
- * @type {string}
43
- */
44
- base_dir: '../common/nav'.fullname(__dirname),
45
- /**
46
- * 自定义目录,加载项目自定义资源
47
- * @type {string}
48
- */
49
- dir: './app'.fullname(),
50
- /**
51
- * 搜索模式 dir按目录搜索 | file按文件名搜索
52
- * @type {string}
53
- */
54
- search_way: 'file',
55
- /**
56
- * 是否懒加载
57
- * @type {boolean}
58
- */
59
- lazy_load: true,
60
- /**
61
- * 模式
62
- * 1.生产模式,改变文件不会重新加载
63
- * 2.热更新模式,改变配置文件会重新加载配置,不重新加载脚本
64
- * 3.热重载模式,改变配置文件都会加载配置和脚本
65
- * 4.重载模式,执行完后重新加载脚本,避免变量污染
66
- * 5.热更新+重载模式,改变配置文件重新加载配置和脚本,执行完后重新加载脚本
67
- * @type {number}
68
- */
69
- mode: 3
70
- };
71
-
72
- /**
73
- * 构造函数
74
- * @param {object} config 配置参数
75
- * @param {object} parent 父级模块
76
- */
77
- constructor(config, parent) {
78
- super({ ...Nav.config, ...config }, parent);
79
- }
80
- }
81
-
82
- /**
83
- * 导航驱动类
84
- * @type {Drive}
85
- */
86
- Nav.prototype.Drive = Drive;
87
-
88
- /**
89
- * 执行导航
90
- * @param {string} name 导航名称
91
- * @param {string} type 导航类型
92
- * @returns {object | string} 导航配置
93
- */
94
- Nav.prototype.run = async function (name, type) {
95
- var obj = new this.Drive();
96
- if (name) {
97
- let mod = this.getMod(name);
98
- if (mod) {
99
- obj.merge(mod.config);
100
- }
101
- } else {
102
- var infos = this.getInfos();
103
- for (var i = 0, info; info = infos[i++];) {
104
- let mod = this.getMod(info.name);
105
- if (mod) {
106
- obj.merge(mod.config);
107
- }
108
- }
109
- }
110
-
111
- obj.sort();
112
- var cg = obj.config;
113
- if (cg.name) {
114
- if (type) {
115
- return cg[type];
116
- } else {
117
- return cg;
118
- }
119
- }
120
- return null;
121
- };
122
-
123
- /**
124
- * 执行导航
125
- */
126
- Nav.prototype.sort = async function () {
127
- var lt = this.getInfos();
128
- for (var i = 0, o; o = lt[i++];) {
129
- o.sort();
130
- }
131
- lt.sort((o1, o2) => {
132
- var p1 = o1.sort || 100;
133
- var p2 = o2.sort || 100;
134
- return p2 - p1;
135
- });
136
- };
137
-
138
- /**
139
- * 加载
140
- * @param {string} path 加载的路径
141
- */
142
- Nav.prototype.load = function (path) {
143
- var ph = path || './app/';
144
- // 获取所有配置文件
145
- var list_file = $.file.getAll(ph, '*' + this.scope + '.' + this.config.fillname);
146
- this.loadList(list_file);
147
- };
148
-
149
- /**
150
- * 更新路由vue文件
151
- * @param {object} param 参数
152
- * @property {string} param.name 要更新的配置名
153
- * @property {boolean} param.cover 是否覆盖文件
154
- * @property {string} param.route_name 路由名称
155
- * @property {string} param.path 路由路径
156
- * @returns {string} 更新成功返回null, 失败返回错误提示
157
- */
158
- Nav.prototype.updateVue = async function (param) {
159
- var {
160
- name,
161
- cover,
162
- route_name,
163
- path
164
- } = param;
165
-
166
- if (name) {
167
- var mod = this.getMod(name);
168
- if (mod) {
169
- await mod.updateVue(path, cover);
170
- } else {
171
- return '该配置不存在';
172
- }
173
- } else if (route_name) {
174
- let infos = this.getInfos();
175
- for (var i = 0; i < infos.length; i++) {
176
- var info = infos[i];
177
- if (info.name === route_name) {
178
- let mod = this.getMod(info.name);
179
- if (mod) {
180
- await mod.updateVue(path, cover);
181
- }
182
- }
183
- }
184
- } else {
185
- let infos = this.getInfos();
186
- for (var i = 0; i < infos.length; i++) {
187
- var info = infos[i];
188
- let mod = this.getMod(info.name);
189
- if (mod) {
190
- await mod.updateVue(path, cover);
191
- }
192
- }
193
- }
194
- return null;
195
- };
196
-
197
- exports.Nav = Nav;
198
-
199
-
200
- /**
201
- * 创建全局管理器
202
- */
203
- if (!$.pool.nav) {
204
- $.pool.nav = {};
205
- }
206
-
207
- /**
208
- * nav管理器,用于创建缓存
209
- * @param {string} scope 作用域
210
- * @param {string} title 标题
211
- * @returns {object} 返回一个缓存类
212
- */
213
- function navAdmin(scope, title) {
214
- var sc = scope || $.val.scope + '';
215
- var obj = $.pool.nav[sc];
216
- if (!obj) {
217
- $.pool.nav[sc] = new Nav({
218
- name: sc,
219
- title: title
220
- });
221
- obj = $.pool.nav[sc];
222
- }
223
- return obj;
224
- }
225
-
226
- /**
227
- * @module 导出nav管理器
228
- */
229
- if ($.admin) {
230
- $.admin.nav = navAdmin;
231
- }
1
+ const Manager = require("mm_machine").Manager;
2
+ const Drive = require("./drive");
3
+
4
+ /**
5
+ * Nav导航类
6
+ * @augments {Manager}
7
+ * @class
8
+ */
9
+ class Nav extends Manager {
10
+ /**
11
+ * 配置参数
12
+ * @type {object}
13
+ */
14
+ static config = {
15
+ /**
16
+ * 名称
17
+ * @type {string}
18
+ */
19
+ name: "",
20
+ /**
21
+ * 标题
22
+ * @type {string}
23
+ */
24
+ title: "导航管理",
25
+ /**
26
+ * 描述
27
+ * @type {string}
28
+ */
29
+ description: "这是导航管理器",
30
+ /**
31
+ * 检索文件名
32
+ * @type {string}
33
+ */
34
+ filename: "nav.json",
35
+ /**
36
+ * 模板目录
37
+ * @type {string}
38
+ */
39
+ tpl_dir: __dirname,
40
+ /**
41
+ * 基础目录
42
+ * @type {string}
43
+ */
44
+ base_dir: "../common/nav".fullname(__dirname),
45
+ /**
46
+ * 自定义目录,加载项目自定义资源
47
+ * @type {string}
48
+ */
49
+ dir: "./app".fullname(),
50
+ /**
51
+ * 搜索模式 dir按目录搜索 | file按文件名搜索
52
+ * @type {string}
53
+ */
54
+ search_way: "file",
55
+ /**
56
+ * 是否懒加载
57
+ * @type {boolean}
58
+ */
59
+ lazy_load: true,
60
+ /**
61
+ * 模式
62
+ * 1.生产模式,改变文件不会重新加载
63
+ * 2.热更新模式,改变配置文件会重新加载配置,不重新加载脚本
64
+ * 3.热重载模式,改变配置文件都会加载配置和脚本
65
+ * 4.重载模式,执行完后重新加载脚本,避免变量污染
66
+ * 5.热更新+重载模式,改变配置文件重新加载配置和脚本,执行完后重新加载脚本
67
+ * @type {number}
68
+ */
69
+ mode: process.env.NODE_ENV === "production" ? 1 : 3,
70
+ };
71
+
72
+ /**
73
+ * 构造函数
74
+ * @param {object} config 配置参数
75
+ * @param {object} parent 父级模块
76
+ */
77
+ constructor(config, parent) {
78
+ super({ ...Nav.config, ...config }, parent);
79
+ }
80
+ }
81
+
82
+ /**
83
+ * 导航驱动类
84
+ * @type {Drive}
85
+ */
86
+ Nav.prototype.Drive = Drive;
87
+
88
+ /**
89
+ * 执行导航
90
+ * @param {string} name 导航名称
91
+ * @param {string} type 导航类型
92
+ * @returns {object | string} 导航配置
93
+ */
94
+ Nav.prototype.run = async function (name, type) {
95
+ var obj = new this.Drive();
96
+ if (name) {
97
+ let mod = this.getMod(name);
98
+ if (mod) {
99
+ obj.merge(mod.config);
100
+ }
101
+ } else {
102
+ var infos = this.getInfos();
103
+ for (var i = 0, info; (info = infos[i++]);) {
104
+ let mod = this.getMod(info.name);
105
+ if (mod) {
106
+ obj.merge(mod.config);
107
+ }
108
+ }
109
+ }
110
+
111
+ obj.sort();
112
+ var cg = obj.config;
113
+ if (cg.name) {
114
+ if (type) {
115
+ return cg[type];
116
+ } else {
117
+ return cg;
118
+ }
119
+ }
120
+ return null;
121
+ };
122
+
123
+ /**
124
+ * 执行导航
125
+ */
126
+ Nav.prototype._sort = async function () {
127
+ var lt = this.getInfos();
128
+ for (var i = 0, o; (o = lt[i++]);) {
129
+ o.sort();
130
+ }
131
+ lt.sort((o1, o2) => {
132
+ var p1 = o1.sort || 100;
133
+ var p2 = o2.sort || 100;
134
+ return p2 - p1;
135
+ });
136
+ };
137
+
138
+ /**
139
+ * 加载
140
+ * @param {string} path 加载的路径
141
+ */
142
+ Nav.prototype.load = function (path) {
143
+ var ph = path || "./app/";
144
+ // 获取所有配置文件
145
+ var list_file = $.file.getAll(
146
+ ph,
147
+ "*" + this.scope + "." + this.config.fillname,
148
+ );
149
+ this.loadList(list_file);
150
+ };
151
+
152
+ /**
153
+ * 更新路由vue文件
154
+ * @param {object} param 参数
155
+ * @property {string} param.name 要更新的配置名
156
+ * @property {boolean} param.cover 是否覆盖文件
157
+ * @property {string} param.route_name 路由名称
158
+ * @property {string} param.path 路由路径
159
+ * @returns {string} 更新成功返回null, 失败返回错误提示
160
+ */
161
+ Nav.prototype.updateVue = async function (param) {
162
+ var { name, cover, route_name, path } = param;
163
+
164
+ if (name) {
165
+ var mod = this.getMod(name);
166
+ if (mod) {
167
+ await mod.updateVue(path, cover);
168
+ } else {
169
+ return "该配置不存在";
170
+ }
171
+ } else if (route_name) {
172
+ let infos = this.getInfos();
173
+ for (var i = 0; i < infos.length; i++) {
174
+ var info = infos[i];
175
+ if (info.name === route_name) {
176
+ let mod = this.getMod(info.name);
177
+ if (mod) {
178
+ await mod.updateVue(path, cover);
179
+ }
180
+ }
181
+ }
182
+ } else {
183
+ let infos = this.getInfos();
184
+ for (var i = 0; i < infos.length; i++) {
185
+ var info = infos[i];
186
+ let mod = this.getMod(info.name);
187
+ if (mod) {
188
+ await mod.updateVue(path, cover);
189
+ }
190
+ }
191
+ }
192
+ return null;
193
+ };
194
+
195
+ exports.Nav = Nav;
196
+
197
+ /**
198
+ * 创建全局管理器
199
+ */
200
+ if (!$.pool.nav) {
201
+ $.pool.nav = {};
202
+ }
203
+
204
+ /**
205
+ * nav管理器,用于创建缓存
206
+ * @param {string} scope 作用域
207
+ * @param {string} title 标题
208
+ * @returns {object} 返回一个缓存类
209
+ */
210
+ function navAdmin(scope, title) {
211
+ var sc = scope || $.val.scope + "";
212
+ var obj = $.pool.nav[sc];
213
+ if (!obj) {
214
+ $.pool.nav[sc] = new Nav({
215
+ name: sc,
216
+ title: title,
217
+ });
218
+ obj = $.pool.nav[sc];
219
+ }
220
+ return obj;
221
+ }
222
+
223
+ /**
224
+ * @module 导出nav管理器
225
+ */
226
+ if ($.admin) {
227
+ $.admin.nav = navAdmin;
228
+ }
@@ -1,5 +1,5 @@
1
- const Manager = require('mm_machine').Manager;
2
- const Drive = require('./drive');
1
+ const Manager = require("mm_machine").Manager;
2
+ const Drive = require("./drive");
3
3
 
4
4
  /**
5
5
  * 参数类
@@ -16,22 +16,22 @@ class Param extends Manager {
16
16
  * 名称
17
17
  * @type {string}
18
18
  */
19
- name: '',
19
+ name: "",
20
20
  /**
21
21
  * 标题
22
22
  * @type {string}
23
23
  */
24
- title: '参数管理',
24
+ title: "参数管理",
25
25
  /**
26
26
  * 描述
27
27
  * @type {string}
28
28
  */
29
- description: '这是参数管理器',
29
+ description: "这是参数管理器",
30
30
  /**
31
31
  * 检索文件名
32
32
  * @type {string}
33
33
  */
34
- filename: 'param.json',
34
+ filename: "param.json",
35
35
  /**
36
36
  * 模板目录
37
37
  * @type {string}
@@ -41,17 +41,17 @@ class Param extends Manager {
41
41
  * 基础目录
42
42
  * @type {string}
43
43
  */
44
- base_dir: '../common/param'.fullname(__dirname),
44
+ base_dir: "../common/param".fullname(__dirname),
45
45
  /**
46
46
  * 自定义目录,加载项目自定义资源
47
47
  * @type {string}
48
48
  */
49
- dir: './app'.fullname(),
49
+ dir: "./app".fullname(),
50
50
  /**
51
51
  * 搜索模式 dir按目录搜索 | file按文件名搜索
52
52
  * @type {string}
53
53
  */
54
- search_way: 'file',
54
+ search_way: "file",
55
55
  /**
56
56
  * 是否懒加载
57
57
  * @type {boolean}
@@ -66,7 +66,7 @@ class Param extends Manager {
66
66
  * 5.热更新+重载模式,改变配置文件重新加载配置和脚本,执行完后重新加载脚本
67
67
  * @type {number}
68
68
  */
69
- mode: 3
69
+ mode: process.env.NODE_ENV === "production" ? 1 : 3,
70
70
  };
71
71
 
72
72
  /**
@@ -88,9 +88,9 @@ Param.prototype.Drive = Drive;
88
88
  /**
89
89
  * 排序
90
90
  */
91
- Param.prototype.sort = function() {
91
+ Param.prototype.sort = function () {
92
92
  let infos = this.getInfos();
93
- infos.sortBy('asc', 'name');
93
+ infos.sortBy("asc", "name");
94
94
  };
95
95
 
96
96
  /**
@@ -101,7 +101,7 @@ Param.prototype.sort = function() {
101
101
  * @param {object} body 正文参数
102
102
  * @returns {object} 验证失败返回错误信息,成功返回null
103
103
  */
104
- Param.prototype.run = async function(db, name, query, body) {
104
+ Param.prototype.run = async function (db, name, query, body) {
105
105
  var obj = this.getMod(name);
106
106
  if (obj) {
107
107
  // 检查参数状态,状态为0时跳过执行
@@ -109,9 +109,12 @@ Param.prototype.run = async function(db, name, query, body) {
109
109
  return null;
110
110
  }
111
111
  try {
112
+ if (!obj.isLoaded()) {
113
+ await obj.do("load");
114
+ }
112
115
  return await obj.run(db, query, body);
113
116
  } catch (error) {
114
- this.log('error', 'Param验证异常:', error);
117
+ this.log("error", "Param验证异常:", error);
115
118
  // 参数验证异常时返回null
116
119
  return null;
117
120
  }
@@ -121,7 +124,6 @@ Param.prototype.run = async function(db, name, query, body) {
121
124
 
122
125
  exports.Param = Param;
123
126
 
124
-
125
127
  /**
126
128
  * Param参数池
127
129
  */
@@ -136,12 +138,12 @@ if (!$.pool.param) {
136
138
  * @returns {object} 返回一个缓存类
137
139
  */
138
140
  function paramAdmin(scope, title) {
139
- var sc = scope || $.val.scope + '';
141
+ var sc = scope || $.val.scope + "";
140
142
  var obj = $.pool.param[sc];
141
143
  if (!obj) {
142
144
  $.pool.param[sc] = new Param({
143
145
  name: sc,
144
- title: title
146
+ title: title,
145
147
  });
146
148
  obj = $.pool.param[sc];
147
149
  }