crabatool 1.0.396 → 1.0.397
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.
- package/apis/data.js +155 -155
- package/apis/homeai.js +503 -503
- package/apis/init.js +71 -71
- package/apis/menu.js +69 -69
- package/index.js +173 -173
- package/lib/config.js +36 -36
- package/lib/cuid.js +129 -129
- package/lib/db/baseLib.js +479 -479
- package/lib/db/dbHelper.js +422 -422
- package/lib/db/mySqlLib.js +185 -185
- package/lib/handler.js +96 -96
- package/lib/jsoncrud.js +259 -259
- package/lib/pager.js +150 -150
- package/lib/server.js +269 -269
- package/lib/stringBuilder.js +80 -80
- package/lib/stringUtils.js +275 -275
- package/lib/utils.js +846 -846
- package/package.json +71 -71
- package/readme.md +25 -25
- package/run.js +2 -2
- package/tool/bizAndInit.js +262 -262
- package/tool/checkgspx.js +110 -110
- package/tool/checkiconfont.js +116 -116
- package/tool/checkjs.js +724 -724
- package/tool/client.js +33 -33
- package/tool/compress.js +178 -178
- package/tool/crabapublish.js +125 -125
- package/tool/exportgspx.js +116 -116
- package/tool/hash.js +89 -89
- package/tool/iconfont.js +129 -129
- package/tool/install.js +189 -189
- package/tool/merge/black_fun_list.txt +354 -354
- package/tool/merge/cmd_merge.js +24 -24
- package/tool/merge/cmd_mergeCss.js +23 -23
- package/tool/merge/mergeTool.js +254 -254
- package/tool/pageHash.js +41 -41
- package/tool/progressbar.js +47 -47
- package/tool/sockettool.js +63 -63
- package/tool/start.js +355 -355
- package/tool/upgrade.js +303 -303
package/apis/data.js
CHANGED
|
@@ -1,156 +1,156 @@
|
|
|
1
|
-
var path = require('path');
|
|
2
|
-
var crabatool = require('../index.js');
|
|
3
|
-
var utils = crabatool.utils;
|
|
4
|
-
var JSONCRUD = crabatool.JSONCRUD;
|
|
5
|
-
|
|
6
|
-
class data {
|
|
7
|
-
constructor() {
|
|
8
|
-
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
_init(req) {
|
|
12
|
-
if (req.app.jsoncrud) { // 每个server只创建1个实例
|
|
13
|
-
return;
|
|
14
|
-
}
|
|
15
|
-
req.app.jsoncrud = new JSONCRUD({ storagePath: path.join(req.app.webPath, '../data/data.json') });
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
_getDb(req) {
|
|
19
|
-
return req.app.jsoncrud;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
async get(req, res) {
|
|
23
|
-
var body = utils.getReqBody(req);
|
|
24
|
-
var that = this;
|
|
25
|
-
|
|
26
|
-
var queryParams = body.queryParams;
|
|
27
|
-
var filterParams = body.filter;
|
|
28
|
-
var items = null;
|
|
29
|
-
if (filterParams && filterParams.items && filterParams.items.length > 0) {
|
|
30
|
-
items = filterParams.items;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
if (queryParams) {
|
|
34
|
-
var keys = Object.keys(queryParams);
|
|
35
|
-
if (!items) {
|
|
36
|
-
items = [];
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
keys.forEach(function(key) {
|
|
40
|
-
if (that._isEmpty(queryParams[key])) {
|
|
41
|
-
return;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
var index = items.findIndex(function(item) {
|
|
45
|
-
return item.dataField == key;
|
|
46
|
-
});
|
|
47
|
-
if (index > -1) {
|
|
48
|
-
items.splice(index, 1); // 删除filter里面的字段,queryParams优先级大于filter
|
|
49
|
-
}
|
|
50
|
-
items.push({ dataField: key, type: 0, value: queryParams[key] });
|
|
51
|
-
});
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
var info = await this._getDb(req).find(body.name, {
|
|
55
|
-
page: body.pageIndex,
|
|
56
|
-
pageSize: body.pageSize,
|
|
57
|
-
filterFunc: function(item) {
|
|
58
|
-
if (items && items.length > 0) {
|
|
59
|
-
return that._locateRowToCache(item, items);
|
|
60
|
-
}
|
|
61
|
-
return true;
|
|
62
|
-
}
|
|
63
|
-
});
|
|
64
|
-
|
|
65
|
-
crabatool.utils.end(res, {
|
|
66
|
-
code: 200,
|
|
67
|
-
msg: '操作成功',
|
|
68
|
-
data: info.data,
|
|
69
|
-
count: info.pageData.count
|
|
70
|
-
});
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
async save(req, res) {
|
|
74
|
-
var body = utils.getReqBody(req);
|
|
75
|
-
|
|
76
|
-
var newData;
|
|
77
|
-
if (body.data.id) {
|
|
78
|
-
newData = await this._getDb(req).update(body.name, body.data.id, body.data);
|
|
79
|
-
} else {
|
|
80
|
-
newData = await this._getDb(req).create(body.name, body.data);
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
crabatool.utils.end(res, {
|
|
84
|
-
code: 200,
|
|
85
|
-
msg: '操作成功',
|
|
86
|
-
data: newData
|
|
87
|
-
});
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
async delete(req, res) {
|
|
91
|
-
var body = utils.getReqBody(req);
|
|
92
|
-
|
|
93
|
-
var result = await this._getDb(req).delete(body.name, body.data.id);
|
|
94
|
-
|
|
95
|
-
crabatool.utils.end(res, {
|
|
96
|
-
code: 200,
|
|
97
|
-
msg: '操作成功',
|
|
98
|
-
data: result
|
|
99
|
-
});
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
_locateRowToCache(record, items) {
|
|
103
|
-
var ok = false;
|
|
104
|
-
var like = true;
|
|
105
|
-
|
|
106
|
-
for (var j = 0, count2 = items.length; j < count2; j++) {
|
|
107
|
-
var item = items[j];
|
|
108
|
-
|
|
109
|
-
var propName = item.dataField;
|
|
110
|
-
var propValue = item.value;
|
|
111
|
-
var v = record[propName];
|
|
112
|
-
var useLike = like && item.type != 2;
|
|
113
|
-
|
|
114
|
-
if (item.type == 7) {
|
|
115
|
-
ok = item.value.includes(v);
|
|
116
|
-
if (ok == false) break;
|
|
117
|
-
} else if (item.type == 1) {
|
|
118
|
-
if (item.value1 instanceof Date && typeof v == 'string') {
|
|
119
|
-
v = Date.strToDateTime(v);
|
|
120
|
-
}
|
|
121
|
-
if (v >= item.value1 && v <= item.value2) {
|
|
122
|
-
ok = true;
|
|
123
|
-
} else if (v >= item.value1 && this._isUndefinedOrNull(item.value2) || v <= item.value2 && this._isUndefinedOrNull(item.value1)) {
|
|
124
|
-
ok = true;
|
|
125
|
-
} else {
|
|
126
|
-
ok = false;
|
|
127
|
-
break;
|
|
128
|
-
}
|
|
129
|
-
} else if (useLike) {
|
|
130
|
-
if (!this._isUndefinedOrNull(v) && v.toString().toLowerCase().indexOf(propValue.toString().toLowerCase()) > -1) {
|
|
131
|
-
ok = true;
|
|
132
|
-
} else {
|
|
133
|
-
ok = false;
|
|
134
|
-
break;
|
|
135
|
-
}
|
|
136
|
-
} else {
|
|
137
|
-
if (v == propValue) {
|
|
138
|
-
ok = true;
|
|
139
|
-
} else {
|
|
140
|
-
ok = false;
|
|
141
|
-
break;
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
return ok;
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
_isUndefinedOrNull(v) {
|
|
149
|
-
return v === null || v === undefined;
|
|
150
|
-
}
|
|
151
|
-
|
|
152
|
-
_isEmpty(v) {
|
|
153
|
-
return v === '' || this._isUndefinedOrNull(v);
|
|
154
|
-
}
|
|
155
|
-
}
|
|
1
|
+
var path = require('path');
|
|
2
|
+
var crabatool = require('../index.js');
|
|
3
|
+
var utils = crabatool.utils;
|
|
4
|
+
var JSONCRUD = crabatool.JSONCRUD;
|
|
5
|
+
|
|
6
|
+
class data {
|
|
7
|
+
constructor() {
|
|
8
|
+
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
_init(req) {
|
|
12
|
+
if (req.app.jsoncrud) { // 每个server只创建1个实例
|
|
13
|
+
return;
|
|
14
|
+
}
|
|
15
|
+
req.app.jsoncrud = new JSONCRUD({ storagePath: path.join(req.app.webPath, '../data/data.json') });
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
_getDb(req) {
|
|
19
|
+
return req.app.jsoncrud;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
async get(req, res) {
|
|
23
|
+
var body = utils.getReqBody(req);
|
|
24
|
+
var that = this;
|
|
25
|
+
|
|
26
|
+
var queryParams = body.queryParams;
|
|
27
|
+
var filterParams = body.filter;
|
|
28
|
+
var items = null;
|
|
29
|
+
if (filterParams && filterParams.items && filterParams.items.length > 0) {
|
|
30
|
+
items = filterParams.items;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
if (queryParams) {
|
|
34
|
+
var keys = Object.keys(queryParams);
|
|
35
|
+
if (!items) {
|
|
36
|
+
items = [];
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
keys.forEach(function(key) {
|
|
40
|
+
if (that._isEmpty(queryParams[key])) {
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
var index = items.findIndex(function(item) {
|
|
45
|
+
return item.dataField == key;
|
|
46
|
+
});
|
|
47
|
+
if (index > -1) {
|
|
48
|
+
items.splice(index, 1); // 删除filter里面的字段,queryParams优先级大于filter
|
|
49
|
+
}
|
|
50
|
+
items.push({ dataField: key, type: 0, value: queryParams[key] });
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
var info = await this._getDb(req).find(body.name, {
|
|
55
|
+
page: body.pageIndex,
|
|
56
|
+
pageSize: body.pageSize,
|
|
57
|
+
filterFunc: function(item) {
|
|
58
|
+
if (items && items.length > 0) {
|
|
59
|
+
return that._locateRowToCache(item, items);
|
|
60
|
+
}
|
|
61
|
+
return true;
|
|
62
|
+
}
|
|
63
|
+
});
|
|
64
|
+
|
|
65
|
+
crabatool.utils.end(res, {
|
|
66
|
+
code: 200,
|
|
67
|
+
msg: '操作成功',
|
|
68
|
+
data: info.data,
|
|
69
|
+
count: info.pageData.count
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
async save(req, res) {
|
|
74
|
+
var body = utils.getReqBody(req);
|
|
75
|
+
|
|
76
|
+
var newData;
|
|
77
|
+
if (body.data.id) {
|
|
78
|
+
newData = await this._getDb(req).update(body.name, body.data.id, body.data);
|
|
79
|
+
} else {
|
|
80
|
+
newData = await this._getDb(req).create(body.name, body.data);
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
crabatool.utils.end(res, {
|
|
84
|
+
code: 200,
|
|
85
|
+
msg: '操作成功',
|
|
86
|
+
data: newData
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
async delete(req, res) {
|
|
91
|
+
var body = utils.getReqBody(req);
|
|
92
|
+
|
|
93
|
+
var result = await this._getDb(req).delete(body.name, body.data.id);
|
|
94
|
+
|
|
95
|
+
crabatool.utils.end(res, {
|
|
96
|
+
code: 200,
|
|
97
|
+
msg: '操作成功',
|
|
98
|
+
data: result
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
_locateRowToCache(record, items) {
|
|
103
|
+
var ok = false;
|
|
104
|
+
var like = true;
|
|
105
|
+
|
|
106
|
+
for (var j = 0, count2 = items.length; j < count2; j++) {
|
|
107
|
+
var item = items[j];
|
|
108
|
+
|
|
109
|
+
var propName = item.dataField;
|
|
110
|
+
var propValue = item.value;
|
|
111
|
+
var v = record[propName];
|
|
112
|
+
var useLike = like && item.type != 2;
|
|
113
|
+
|
|
114
|
+
if (item.type == 7) {
|
|
115
|
+
ok = item.value.includes(v);
|
|
116
|
+
if (ok == false) break;
|
|
117
|
+
} else if (item.type == 1) {
|
|
118
|
+
if (item.value1 instanceof Date && typeof v == 'string') {
|
|
119
|
+
v = Date.strToDateTime(v);
|
|
120
|
+
}
|
|
121
|
+
if (v >= item.value1 && v <= item.value2) {
|
|
122
|
+
ok = true;
|
|
123
|
+
} else if (v >= item.value1 && this._isUndefinedOrNull(item.value2) || v <= item.value2 && this._isUndefinedOrNull(item.value1)) {
|
|
124
|
+
ok = true;
|
|
125
|
+
} else {
|
|
126
|
+
ok = false;
|
|
127
|
+
break;
|
|
128
|
+
}
|
|
129
|
+
} else if (useLike) {
|
|
130
|
+
if (!this._isUndefinedOrNull(v) && v.toString().toLowerCase().indexOf(propValue.toString().toLowerCase()) > -1) {
|
|
131
|
+
ok = true;
|
|
132
|
+
} else {
|
|
133
|
+
ok = false;
|
|
134
|
+
break;
|
|
135
|
+
}
|
|
136
|
+
} else {
|
|
137
|
+
if (v == propValue) {
|
|
138
|
+
ok = true;
|
|
139
|
+
} else {
|
|
140
|
+
ok = false;
|
|
141
|
+
break;
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
return ok;
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
_isUndefinedOrNull(v) {
|
|
149
|
+
return v === null || v === undefined;
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
_isEmpty(v) {
|
|
153
|
+
return v === '' || this._isUndefinedOrNull(v);
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
156
|
exports = module.exports = new data();
|