owl-cli 6.195.0 → 6.197.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.
- package/.eslintrc.json +2 -2
- package/.vscode/launch.json +22 -22
- package/.vscode/settings.json +2 -2
- package/bin/createTables.js +94 -94
- package/bin/deploy.js +66 -66
- package/bin/dsl.js +223 -223
- package/bin/genEvents.js +188 -188
- package/bin/owl-init.js +50 -50
- package/bin/owl.js +322 -322
- package/bin/owlconfig.json +16 -16
- package/bin/table_mysql.js +189 -189
- package/bin/undeploy.js +56 -56
- package/defaultTemplate/api/build.xml +94 -94
- package/defaultTemplate/api/src/about.html +12 -12
- package/defaultTemplate/api/src/about.jsx +11 -11
- package/defaultTemplate/api/src/handlers/aggs.jsx +161 -161
- package/defaultTemplate/api/src/handlers/batchImport.jsx +78 -78
- package/defaultTemplate/api/src/handlers/delete.jsx +88 -91
- package/defaultTemplate/api/src/handlers/export.jsx +56 -56
- package/defaultTemplate/api/src/handlers/exportDoc.jsx +27 -27
- package/defaultTemplate/api/src/handlers/exportEx.jsx +77 -77
- package/defaultTemplate/api/src/handlers/exportWithTemplates.jsx +50 -50
- package/defaultTemplate/api/src/handlers/exportZip.jsx +26 -26
- package/defaultTemplate/api/src/handlers/get.jsx +50 -50
- package/defaultTemplate/api/src/handlers/getByIds.jsx +51 -51
- package/defaultTemplate/api/src/handlers/getChildren.jsx +96 -96
- package/defaultTemplate/api/src/handlers/getExportTaskInfo.jsx +36 -36
- package/defaultTemplate/api/src/handlers/getHistory.jsx +64 -64
- package/defaultTemplate/api/src/handlers/getSpec.jsx +40 -40
- package/defaultTemplate/api/src/handlers/include/checklogin.jsx +792 -792
- package/defaultTemplate/api/src/handlers/include/diff.jsx +315 -315
- package/defaultTemplate/api/src/handlers/include/util.jsx +60 -60
- package/defaultTemplate/api/src/handlers/list.jsx +252 -252
- package/defaultTemplate/api/src/handlers/listEx.jsx +142 -142
- package/defaultTemplate/api/src/handlers/reIndex.jsx +63 -63
- package/defaultTemplate/api/src/handlers/recovery.jsx +53 -53
- package/defaultTemplate/api/src/handlers/save.jsx +125 -127
- package/defaultTemplate/api/src/handlers/upload.jsx +72 -72
- package/defaultTemplate/api/src/init/indexConfigs/changeMapping.json +14 -14
- package/defaultTemplate/api/src/init/indexConfigs/createAliase.json +10 -10
- package/defaultTemplate/api/src/init/indexConfigs/createIndex.json +105 -105
- package/defaultTemplate/api/src/init/indexConfigs/rebuildIndex.sh +27 -27
- package/defaultTemplate/api/src/init/indexConfigs/reindex.json +9 -9
- package/defaultTemplate/api/src/init/init.jsx +34 -34
- package/defaultTemplate/api/src/meta.json +10 -10
- package/defaultTemplate/api/src/services/dblayer.jsx +251 -251
- package/defaultTemplate/api/src/services/modelService.jsx +1279 -1264
- package/defaultTemplate/api/src/services/sqlstring.jsx +240 -240
- package/defaultTemplate/api/src/tasks/doBatchImport.jsx +176 -176
- package/defaultTemplate/api/src/tasks/export.jsx +224 -224
- package/defaultTemplate/api/src/tasks/exportDoc.jsx +99 -99
- package/defaultTemplate/api/src/tasks/exportExTask.jsx +332 -332
- package/defaultTemplate/api/src/tasks/exportWithTemplateTask.jsx +128 -128
- package/defaultTemplate/api/src/tasks/exportZip1.jsx +53 -53
- package/examples/buildProperties/build.properties +2 -2
- package/examples/gitignore/gitignore_example.txt +1 -1
- package/examples/models/product.json +52 -52
- package/examples/models/shop.json +71 -71
- package/examples/models/sku.json +254 -254
- package/examples/models/user.json +49 -49
- package/examples/owlconfig.json +13 -13
- package/package.json +33 -33
- package/todo.txt +4 -4
|
@@ -1,224 +1,224 @@
|
|
|
1
|
-
//#import Util.js
|
|
2
|
-
//#import @handlers/include/checklogin.jsx
|
|
3
|
-
//#import $@projectCode:services/modelService.jsx
|
|
4
|
-
//#import excel.js
|
|
5
|
-
//#import DateUtil.js
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
var formSpecs = @formSpecs;
|
|
9
|
-
var spec = @spec;
|
|
10
|
-
|
|
11
|
-
main(@projectCodeService, spec);
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
function main(modelService,spec){
|
|
16
|
-
|
|
17
|
-
var ctx = JSON.parse(env);
|
|
18
|
-
var params = ctx.params;
|
|
19
|
-
var key = params.key;
|
|
20
|
-
|
|
21
|
-
/******************************/
|
|
22
|
-
var ret = getRows(modelService, spec);
|
|
23
|
-
var taskInfo = modelService.getExportTaskInfo(taskInfoId);
|
|
24
|
-
taskInfo.processState = "processing";
|
|
25
|
-
taskInfo.percent = 20;
|
|
26
|
-
taskInfo.lastTime = new Date().getTime();
|
|
27
|
-
taskInfo.total = ret.total;
|
|
28
|
-
taskInfo.msg = "获取数据记录完成, 数据条数:" + ret.total;
|
|
29
|
-
modelService.updateExportTaskInfo(taskInfoId, taskInfo);
|
|
30
|
-
/*****************************/
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
/****************************************/
|
|
34
|
-
var exportConfig = getExportConfig(spec,key);
|
|
35
|
-
var titleList = exportConfig.cols;
|
|
36
|
-
if(!titleList){
|
|
37
|
-
return;
|
|
38
|
-
}
|
|
39
|
-
titleList.forEach(function(title){
|
|
40
|
-
var fullKey = title.field;
|
|
41
|
-
var fullField = modelService.getField(fullKey);
|
|
42
|
-
title.fullField = fullField;
|
|
43
|
-
|
|
44
|
-
});
|
|
45
|
-
var recordList = ret.rows.map(function(row){
|
|
46
|
-
var record = {};
|
|
47
|
-
try{
|
|
48
|
-
titleList.forEach(function(title){
|
|
49
|
-
var field = title.fieldKey|| title.field
|
|
50
|
-
var value = modelService.getValue(title.field,row);
|
|
51
|
-
if(title.type==="date"){
|
|
52
|
-
if(value){
|
|
53
|
-
var ts = new Date(value).getTime();
|
|
54
|
-
value = ts /86400000+25569; //这是excel的特殊的格式,用小数点表示
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
}
|
|
58
|
-
if(title.fullField && title.fullField.options && title.fullField.fieldType==='choice'){
|
|
59
|
-
var options = title.fullField.options;
|
|
60
|
-
for(var i=0;i<options.length;i++){
|
|
61
|
-
var option = options[i];
|
|
62
|
-
if(option[0] === value){
|
|
63
|
-
value = option[1];
|
|
64
|
-
break;
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
}
|
|
69
|
-
if(title.type==="imgUrls"){
|
|
70
|
-
if(value && value.length>0){
|
|
71
|
-
var urls = value.map(function(imgObj){
|
|
72
|
-
return imgObj.url;
|
|
73
|
-
});
|
|
74
|
-
value = urls.join("\n");
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
if(title.type==="img"){
|
|
78
|
-
if(value && value.length>0){
|
|
79
|
-
var imgIdx = title.imgIdx || 0;
|
|
80
|
-
if(value.length>imgIdx && value[imgIdx] && value[imgIdx].url){
|
|
81
|
-
value = value[imgIdx].url;
|
|
82
|
-
if(title.spec && value.indexOf("?")===-1){
|
|
83
|
-
value = value + title.spec;
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
else{
|
|
87
|
-
value = "";
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
record[field] = value;
|
|
92
|
-
});
|
|
93
|
-
}
|
|
94
|
-
catch(e){
|
|
95
|
-
$.log(e.toString());
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
return record;
|
|
99
|
-
});
|
|
100
|
-
|
|
101
|
-
var taskInfo = modelService.getExportTaskInfo(taskInfoId);
|
|
102
|
-
taskInfo.processState = "processing";
|
|
103
|
-
taskInfo.percent = 40;
|
|
104
|
-
taskInfo.lastTime = new Date().getTime();
|
|
105
|
-
taskInfo.msg = "准备完数据,正在生成Excel文件......";
|
|
106
|
-
modelService.updateExportTaskInfo(taskInfoId, taskInfo);
|
|
107
|
-
/****************************************/
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
/****************************************/
|
|
111
|
-
var export_fileName = DateUtil.getLongDate(new Date().getTime());
|
|
112
|
-
|
|
113
|
-
var fileUrl = Excel.createExcelList(export_fileName, titleList, recordList);
|
|
114
|
-
|
|
115
|
-
var taskInfo = modelService.getExportTaskInfo(taskInfoId);
|
|
116
|
-
taskInfo.processState = "succeeded";
|
|
117
|
-
taskInfo.percent = 100;
|
|
118
|
-
taskInfo.lastTime = new Date().getTime();
|
|
119
|
-
taskInfo.msg = "导出文件成功,共导出" + ret.total + "条数据";
|
|
120
|
-
taskInfo.fileUrl = fileUrl;
|
|
121
|
-
modelService.updateExportTaskInfo(taskInfoId, taskInfo);
|
|
122
|
-
/********************************************/
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
function getExportConfig(spec, key) {
|
|
126
|
-
var meta = spec['#meta'];
|
|
127
|
-
var exportConfigs = meta.export;
|
|
128
|
-
var effectiveExportConfig = null;
|
|
129
|
-
exportConfigs.forEach(function(exportConfig){
|
|
130
|
-
if(exportConfig.key === key){
|
|
131
|
-
effectiveExportConfig = exportConfig;
|
|
132
|
-
}
|
|
133
|
-
});
|
|
134
|
-
return effectiveExportConfig;
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
function getRows(modelService, spec) {
|
|
138
|
-
|
|
139
|
-
var meta = spec['#meta'];
|
|
140
|
-
var maxRows = Number(meta.maxRows) || 10000;
|
|
141
|
-
var isPublic = meta && meta.isPublic;
|
|
142
|
-
var tableId = 'owl_' + spec._t;
|
|
143
|
-
var ctx = JSON.parse(env);
|
|
144
|
-
var params = ctx.params;
|
|
145
|
-
|
|
146
|
-
var loginId = ctx.loginId;
|
|
147
|
-
var roleId = params.rroleId || ctx.roleId;
|
|
148
|
-
var orgId = params.rorgId || ctx.orgId;
|
|
149
|
-
|
|
150
|
-
var searchArgs = params.searchArgs;
|
|
151
|
-
var templateId = params.templateId;
|
|
152
|
-
|
|
153
|
-
var sort = params.sort;
|
|
154
|
-
var exportRange = params.exportRange;
|
|
155
|
-
var outputTarget = params.outputTarget;
|
|
156
|
-
var ids = params.ids;
|
|
157
|
-
var key = params.key;
|
|
158
|
-
|
|
159
|
-
if (exportRange === "all") {
|
|
160
|
-
var keyword = searchArgs.keyword;
|
|
161
|
-
var mfilters = null;
|
|
162
|
-
delete searchArgs.keyword;
|
|
163
|
-
if (isPublic || orgId === '0') {
|
|
164
|
-
delete searchArgs["_orgIds"];
|
|
165
|
-
} else {
|
|
166
|
-
searchArgs["_orgIds"] = orgId;
|
|
167
|
-
var permissions = getPermissions(roleId,tableId);
|
|
168
|
-
mfilters = getListPermissionFilter(tableId, roleId, orgId, loginId, permissions);
|
|
169
|
-
}
|
|
170
|
-
|
|
171
|
-
delete searchArgs.recycleBin;
|
|
172
|
-
|
|
173
|
-
var pageSize = Number(maxRows);
|
|
174
|
-
var from = 0;
|
|
175
|
-
var sort = {
|
|
176
|
-
owl_modifyTime: {order: "desc"}
|
|
177
|
-
}
|
|
178
|
-
|
|
179
|
-
var sr = modelService.search(mfilters, searchArgs, keyword, from, pageSize, sort);
|
|
180
|
-
if(sr.state==='ok'){
|
|
181
|
-
return {
|
|
182
|
-
rows: sr.list,
|
|
183
|
-
total: sr.list.length
|
|
184
|
-
}
|
|
185
|
-
}
|
|
186
|
-
else{
|
|
187
|
-
return {
|
|
188
|
-
rows: [],
|
|
189
|
-
total: 0
|
|
190
|
-
}
|
|
191
|
-
}
|
|
192
|
-
|
|
193
|
-
}
|
|
194
|
-
else if(exportRange=== "checkedOnly") {
|
|
195
|
-
var ids = params.ids;
|
|
196
|
-
var rows = [];
|
|
197
|
-
ids.forEach(function(id){
|
|
198
|
-
var row = modelService.get(id);
|
|
199
|
-
if(row){
|
|
200
|
-
rows.push(row);
|
|
201
|
-
}
|
|
202
|
-
});
|
|
203
|
-
return {
|
|
204
|
-
rows: rows,
|
|
205
|
-
total: rows.length
|
|
206
|
-
}
|
|
207
|
-
}
|
|
208
|
-
return {
|
|
209
|
-
rows: [],
|
|
210
|
-
total: 0
|
|
211
|
-
};
|
|
212
|
-
|
|
213
|
-
}
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
1
|
+
//#import Util.js
|
|
2
|
+
//#import @handlers/include/checklogin.jsx
|
|
3
|
+
//#import $@projectCode:services/modelService.jsx
|
|
4
|
+
//#import excel.js
|
|
5
|
+
//#import DateUtil.js
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
var formSpecs = @formSpecs;
|
|
9
|
+
var spec = @spec;
|
|
10
|
+
|
|
11
|
+
main(@projectCodeService, spec);
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
function main(modelService,spec){
|
|
16
|
+
|
|
17
|
+
var ctx = JSON.parse(env);
|
|
18
|
+
var params = ctx.params;
|
|
19
|
+
var key = params.key;
|
|
20
|
+
|
|
21
|
+
/******************************/
|
|
22
|
+
var ret = getRows(modelService, spec);
|
|
23
|
+
var taskInfo = modelService.getExportTaskInfo(taskInfoId);
|
|
24
|
+
taskInfo.processState = "processing";
|
|
25
|
+
taskInfo.percent = 20;
|
|
26
|
+
taskInfo.lastTime = new Date().getTime();
|
|
27
|
+
taskInfo.total = ret.total;
|
|
28
|
+
taskInfo.msg = "获取数据记录完成, 数据条数:" + ret.total;
|
|
29
|
+
modelService.updateExportTaskInfo(taskInfoId, taskInfo);
|
|
30
|
+
/*****************************/
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
/****************************************/
|
|
34
|
+
var exportConfig = getExportConfig(spec,key);
|
|
35
|
+
var titleList = exportConfig.cols;
|
|
36
|
+
if(!titleList){
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
titleList.forEach(function(title){
|
|
40
|
+
var fullKey = title.field;
|
|
41
|
+
var fullField = modelService.getField(fullKey);
|
|
42
|
+
title.fullField = fullField;
|
|
43
|
+
|
|
44
|
+
});
|
|
45
|
+
var recordList = ret.rows.map(function(row){
|
|
46
|
+
var record = {};
|
|
47
|
+
try{
|
|
48
|
+
titleList.forEach(function(title){
|
|
49
|
+
var field = title.fieldKey|| title.field
|
|
50
|
+
var value = modelService.getValue(title.field,row);
|
|
51
|
+
if(title.type==="date"){
|
|
52
|
+
if(value){
|
|
53
|
+
var ts = new Date(value).getTime();
|
|
54
|
+
value = ts /86400000+25569; //这是excel的特殊的格式,用小数点表示
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
}
|
|
58
|
+
if(title.fullField && title.fullField.options && title.fullField.fieldType==='choice'){
|
|
59
|
+
var options = title.fullField.options;
|
|
60
|
+
for(var i=0;i<options.length;i++){
|
|
61
|
+
var option = options[i];
|
|
62
|
+
if(option[0] === value){
|
|
63
|
+
value = option[1];
|
|
64
|
+
break;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
}
|
|
69
|
+
if(title.type==="imgUrls"){
|
|
70
|
+
if(value && value.length>0){
|
|
71
|
+
var urls = value.map(function(imgObj){
|
|
72
|
+
return imgObj.url;
|
|
73
|
+
});
|
|
74
|
+
value = urls.join("\n");
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
if(title.type==="img"){
|
|
78
|
+
if(value && value.length>0){
|
|
79
|
+
var imgIdx = title.imgIdx || 0;
|
|
80
|
+
if(value.length>imgIdx && value[imgIdx] && value[imgIdx].url){
|
|
81
|
+
value = value[imgIdx].url;
|
|
82
|
+
if(title.spec && value.indexOf("?")===-1){
|
|
83
|
+
value = value + title.spec;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
else{
|
|
87
|
+
value = "";
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
record[field] = value;
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
catch(e){
|
|
95
|
+
$.log(e.toString());
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
return record;
|
|
99
|
+
});
|
|
100
|
+
|
|
101
|
+
var taskInfo = modelService.getExportTaskInfo(taskInfoId);
|
|
102
|
+
taskInfo.processState = "processing";
|
|
103
|
+
taskInfo.percent = 40;
|
|
104
|
+
taskInfo.lastTime = new Date().getTime();
|
|
105
|
+
taskInfo.msg = "准备完数据,正在生成Excel文件......";
|
|
106
|
+
modelService.updateExportTaskInfo(taskInfoId, taskInfo);
|
|
107
|
+
/****************************************/
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
/****************************************/
|
|
111
|
+
var export_fileName = DateUtil.getLongDate(new Date().getTime());
|
|
112
|
+
|
|
113
|
+
var fileUrl = Excel.createExcelList(export_fileName, titleList, recordList);
|
|
114
|
+
|
|
115
|
+
var taskInfo = modelService.getExportTaskInfo(taskInfoId);
|
|
116
|
+
taskInfo.processState = "succeeded";
|
|
117
|
+
taskInfo.percent = 100;
|
|
118
|
+
taskInfo.lastTime = new Date().getTime();
|
|
119
|
+
taskInfo.msg = "导出文件成功,共导出" + ret.total + "条数据";
|
|
120
|
+
taskInfo.fileUrl = fileUrl;
|
|
121
|
+
modelService.updateExportTaskInfo(taskInfoId, taskInfo);
|
|
122
|
+
/********************************************/
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
function getExportConfig(spec, key) {
|
|
126
|
+
var meta = spec['#meta'];
|
|
127
|
+
var exportConfigs = meta.export;
|
|
128
|
+
var effectiveExportConfig = null;
|
|
129
|
+
exportConfigs.forEach(function(exportConfig){
|
|
130
|
+
if(exportConfig.key === key){
|
|
131
|
+
effectiveExportConfig = exportConfig;
|
|
132
|
+
}
|
|
133
|
+
});
|
|
134
|
+
return effectiveExportConfig;
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
function getRows(modelService, spec) {
|
|
138
|
+
|
|
139
|
+
var meta = spec['#meta'];
|
|
140
|
+
var maxRows = Number(meta.maxRows) || 10000;
|
|
141
|
+
var isPublic = meta && meta.isPublic;
|
|
142
|
+
var tableId = 'owl_' + spec._t;
|
|
143
|
+
var ctx = JSON.parse(env);
|
|
144
|
+
var params = ctx.params;
|
|
145
|
+
|
|
146
|
+
var loginId = ctx.loginId;
|
|
147
|
+
var roleId = params.rroleId || ctx.roleId;
|
|
148
|
+
var orgId = params.rorgId || ctx.orgId;
|
|
149
|
+
|
|
150
|
+
var searchArgs = params.searchArgs;
|
|
151
|
+
var templateId = params.templateId;
|
|
152
|
+
|
|
153
|
+
var sort = params.sort;
|
|
154
|
+
var exportRange = params.exportRange;
|
|
155
|
+
var outputTarget = params.outputTarget;
|
|
156
|
+
var ids = params.ids;
|
|
157
|
+
var key = params.key;
|
|
158
|
+
|
|
159
|
+
if (exportRange === "all") {
|
|
160
|
+
var keyword = searchArgs.keyword;
|
|
161
|
+
var mfilters = null;
|
|
162
|
+
delete searchArgs.keyword;
|
|
163
|
+
if (isPublic || orgId === '0') {
|
|
164
|
+
delete searchArgs["_orgIds"];
|
|
165
|
+
} else {
|
|
166
|
+
searchArgs["_orgIds"] = orgId;
|
|
167
|
+
var permissions = getPermissions(roleId,tableId);
|
|
168
|
+
mfilters = getListPermissionFilter(tableId, roleId, orgId, loginId, permissions);
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
delete searchArgs.recycleBin;
|
|
172
|
+
|
|
173
|
+
var pageSize = Number(maxRows);
|
|
174
|
+
var from = 0;
|
|
175
|
+
var sort = {
|
|
176
|
+
owl_modifyTime: {order: "desc"}
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
var sr = modelService.search(mfilters, searchArgs, keyword, from, pageSize, sort);
|
|
180
|
+
if(sr.state==='ok'){
|
|
181
|
+
return {
|
|
182
|
+
rows: sr.list,
|
|
183
|
+
total: sr.list.length
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
else{
|
|
187
|
+
return {
|
|
188
|
+
rows: [],
|
|
189
|
+
total: 0
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
}
|
|
194
|
+
else if(exportRange=== "checkedOnly") {
|
|
195
|
+
var ids = params.ids;
|
|
196
|
+
var rows = [];
|
|
197
|
+
ids.forEach(function(id){
|
|
198
|
+
var row = modelService.get(id);
|
|
199
|
+
if(row){
|
|
200
|
+
rows.push(row);
|
|
201
|
+
}
|
|
202
|
+
});
|
|
203
|
+
return {
|
|
204
|
+
rows: rows,
|
|
205
|
+
total: rows.length
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
return {
|
|
209
|
+
rows: [],
|
|
210
|
+
total: 0
|
|
211
|
+
};
|
|
212
|
+
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
|
|
216
|
+
|
|
217
|
+
|
|
218
|
+
|
|
219
|
+
|
|
220
|
+
|
|
221
|
+
|
|
222
|
+
|
|
223
|
+
|
|
224
|
+
|
|
@@ -1,99 +1,99 @@
|
|
|
1
|
-
//#import $@projectCode:services/modelService.jsx
|
|
2
|
-
//#import excel.js
|
|
3
|
-
|
|
4
|
-
var formSpecs = @formSpecs;
|
|
5
|
-
|
|
6
|
-
function tranverseFields(formSpec, callback, ctx){
|
|
7
|
-
formSpec.fields.forEach( function(field){
|
|
8
|
-
if (field[ '_ft' ] == 'field') {
|
|
9
|
-
callback( field, ctx );
|
|
10
|
-
}
|
|
11
|
-
else if (field[ '_ft' ] == 'subform') {
|
|
12
|
-
var context = { parentField: field }
|
|
13
|
-
tranverseFields( field, callback, context );
|
|
14
|
-
}
|
|
15
|
-
else if (field[ '_ft' ] == 'array') {
|
|
16
|
-
var context = { parentField: field }
|
|
17
|
-
tranverseFields( field, callback, context )
|
|
18
|
-
}
|
|
19
|
-
} );
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
function normalizeValue(value,spec){
|
|
23
|
-
if(value == null){
|
|
24
|
-
return null;
|
|
25
|
-
}
|
|
26
|
-
switch (spec.fieldType){
|
|
27
|
-
case 'string':
|
|
28
|
-
return 's'+value;
|
|
29
|
-
case 'number':
|
|
30
|
-
return 'n' + value;
|
|
31
|
-
case 'date':
|
|
32
|
-
try{
|
|
33
|
-
var d = null;
|
|
34
|
-
if(isNaN(value)){
|
|
35
|
-
d = new Date(value).getTime();
|
|
36
|
-
}
|
|
37
|
-
else{
|
|
38
|
-
d = new Date(Number(value)).getTime();
|
|
39
|
-
}
|
|
40
|
-
return 'd'+ d;
|
|
41
|
-
}
|
|
42
|
-
catch(e){
|
|
43
|
-
return null;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
case 'choice':
|
|
47
|
-
for(var i=0; i<spec.options.length; i++){
|
|
48
|
-
var option = spec.options[i];
|
|
49
|
-
if(option[0]==value){
|
|
50
|
-
return 's'+option[1];
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
return 's'+value;
|
|
54
|
-
default:
|
|
55
|
-
return "s"+value;
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
function getExportDoc(obj){
|
|
60
|
-
tranverseFields(formSpecs,function(f,ctx){
|
|
61
|
-
if (ctx.parentField && ctx.parentField._ft == 'array') {
|
|
62
|
-
var items = @projectCodeService.getValue( ctx.parentField.key, obj )
|
|
63
|
-
if(items){
|
|
64
|
-
for(var i=0; i<items.length; i++){
|
|
65
|
-
var item = items[i];
|
|
66
|
-
var value = item[f.origKey];
|
|
67
|
-
value = normalizeValue(value,f);
|
|
68
|
-
item[f.origKey] = value;
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
else{
|
|
73
|
-
var value = @projectCodeService.getValue( f.key, obj );
|
|
74
|
-
value = normalizeValue(value,f);
|
|
75
|
-
@projectCodeService.setValue(f.key,value,obj);
|
|
76
|
-
}
|
|
77
|
-
},{});
|
|
78
|
-
return obj;
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
(function(){
|
|
83
|
-
var doc = @projectCodeService.get(id);
|
|
84
|
-
var exportDoc = getExportDoc(doc);
|
|
85
|
-
var templateExcelUrl = "@{@projectCode.xlsx}@";
|
|
86
|
-
var fileId = Excel.generateExcelFromTemplate( templateExcelUrl, exportDoc );
|
|
87
|
-
|
|
88
|
-
$.log("exportDoc Success, fileId=" + fileId + ",taskInfoId=" + taskInfoId);
|
|
89
|
-
var taskInfo = @projectCodeService.getExportTaskInfo( taskInfoId );
|
|
90
|
-
taskInfo.processState = "success";
|
|
91
|
-
taskInfo.percent = 100;
|
|
92
|
-
taskInfo.fileId = fileId;
|
|
93
|
-
taskInfo.total = 1;
|
|
94
|
-
taskInfo.lastTime = new Date().getTime();
|
|
95
|
-
taskInfo.msg = "生成Excel文件成功";
|
|
96
|
-
@projectCodeService.updateExportTaskInfo(taskInfoId, taskInfo );
|
|
97
|
-
$.log("update taskInfo Success, fileId=" + fileId + ",taskInfoId=" + taskInfoId);
|
|
98
|
-
})();
|
|
99
|
-
|
|
1
|
+
//#import $@projectCode:services/modelService.jsx
|
|
2
|
+
//#import excel.js
|
|
3
|
+
|
|
4
|
+
var formSpecs = @formSpecs;
|
|
5
|
+
|
|
6
|
+
function tranverseFields(formSpec, callback, ctx){
|
|
7
|
+
formSpec.fields.forEach( function(field){
|
|
8
|
+
if (field[ '_ft' ] == 'field') {
|
|
9
|
+
callback( field, ctx );
|
|
10
|
+
}
|
|
11
|
+
else if (field[ '_ft' ] == 'subform') {
|
|
12
|
+
var context = { parentField: field }
|
|
13
|
+
tranverseFields( field, callback, context );
|
|
14
|
+
}
|
|
15
|
+
else if (field[ '_ft' ] == 'array') {
|
|
16
|
+
var context = { parentField: field }
|
|
17
|
+
tranverseFields( field, callback, context )
|
|
18
|
+
}
|
|
19
|
+
} );
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
function normalizeValue(value,spec){
|
|
23
|
+
if(value == null){
|
|
24
|
+
return null;
|
|
25
|
+
}
|
|
26
|
+
switch (spec.fieldType){
|
|
27
|
+
case 'string':
|
|
28
|
+
return 's'+value;
|
|
29
|
+
case 'number':
|
|
30
|
+
return 'n' + value;
|
|
31
|
+
case 'date':
|
|
32
|
+
try{
|
|
33
|
+
var d = null;
|
|
34
|
+
if(isNaN(value)){
|
|
35
|
+
d = new Date(value).getTime();
|
|
36
|
+
}
|
|
37
|
+
else{
|
|
38
|
+
d = new Date(Number(value)).getTime();
|
|
39
|
+
}
|
|
40
|
+
return 'd'+ d;
|
|
41
|
+
}
|
|
42
|
+
catch(e){
|
|
43
|
+
return null;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
case 'choice':
|
|
47
|
+
for(var i=0; i<spec.options.length; i++){
|
|
48
|
+
var option = spec.options[i];
|
|
49
|
+
if(option[0]==value){
|
|
50
|
+
return 's'+option[1];
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
return 's'+value;
|
|
54
|
+
default:
|
|
55
|
+
return "s"+value;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
function getExportDoc(obj){
|
|
60
|
+
tranverseFields(formSpecs,function(f,ctx){
|
|
61
|
+
if (ctx.parentField && ctx.parentField._ft == 'array') {
|
|
62
|
+
var items = @projectCodeService.getValue( ctx.parentField.key, obj )
|
|
63
|
+
if(items){
|
|
64
|
+
for(var i=0; i<items.length; i++){
|
|
65
|
+
var item = items[i];
|
|
66
|
+
var value = item[f.origKey];
|
|
67
|
+
value = normalizeValue(value,f);
|
|
68
|
+
item[f.origKey] = value;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
else{
|
|
73
|
+
var value = @projectCodeService.getValue( f.key, obj );
|
|
74
|
+
value = normalizeValue(value,f);
|
|
75
|
+
@projectCodeService.setValue(f.key,value,obj);
|
|
76
|
+
}
|
|
77
|
+
},{});
|
|
78
|
+
return obj;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
(function(){
|
|
83
|
+
var doc = @projectCodeService.get(id);
|
|
84
|
+
var exportDoc = getExportDoc(doc);
|
|
85
|
+
var templateExcelUrl = "@{@projectCode.xlsx}@";
|
|
86
|
+
var fileId = Excel.generateExcelFromTemplate( templateExcelUrl, exportDoc );
|
|
87
|
+
|
|
88
|
+
$.log("exportDoc Success, fileId=" + fileId + ",taskInfoId=" + taskInfoId);
|
|
89
|
+
var taskInfo = @projectCodeService.getExportTaskInfo( taskInfoId );
|
|
90
|
+
taskInfo.processState = "success";
|
|
91
|
+
taskInfo.percent = 100;
|
|
92
|
+
taskInfo.fileId = fileId;
|
|
93
|
+
taskInfo.total = 1;
|
|
94
|
+
taskInfo.lastTime = new Date().getTime();
|
|
95
|
+
taskInfo.msg = "生成Excel文件成功";
|
|
96
|
+
@projectCodeService.updateExportTaskInfo(taskInfoId, taskInfo );
|
|
97
|
+
$.log("update taskInfo Success, fileId=" + fileId + ",taskInfoId=" + taskInfoId);
|
|
98
|
+
})();
|
|
99
|
+
|