owl-cli 6.148.0 → 6.149.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 +305 -305
- 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 -88
- package/defaultTemplate/api/src/handlers/export.jsx +117 -117
- 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 +34 -34
- package/defaultTemplate/api/src/handlers/getSpec.jsx +40 -40
- package/defaultTemplate/api/src/handlers/include/checklogin.jsx +786 -786
- 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 +136 -135
- 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 -125
- 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 +55 -55
- package/defaultTemplate/api/src/init/indexConfigs/rebuildIndex.sh +27 -27
- package/defaultTemplate/api/src/init/indexConfigs/reindex.json +10 -10
- package/defaultTemplate/api/src/init/init.jsx +25 -25
- package/defaultTemplate/api/src/meta.json +10 -10
- package/defaultTemplate/api/src/services/dblayer.jsx +251 -251
- package/defaultTemplate/api/src/services/modelService.jsx +1239 -1239
- package/defaultTemplate/api/src/services/sqlstring.jsx +240 -240
- package/defaultTemplate/api/src/tasks/export.jsx +366 -366
- 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/exportZip.jsx +49 -49
- 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,128 +1,128 @@
|
|
|
1
|
-
//#import $@projectCode:services/modelService.jsx
|
|
2
|
-
//#import excel.js
|
|
3
|
-
//#import $owl_excel_templates:services/modelService.jsx
|
|
4
|
-
//#import $owl_task_info:services/modelService.jsx
|
|
5
|
-
//#import file.js
|
|
6
|
-
|
|
7
|
-
var formSpecs = @formSpecs;
|
|
8
|
-
|
|
9
|
-
function tranverseFields(formSpec, callback, ctx){
|
|
10
|
-
formSpec.fields.forEach( function(field){
|
|
11
|
-
if (field[ '_ft' ] == 'field') {
|
|
12
|
-
callback( field, ctx );
|
|
13
|
-
}
|
|
14
|
-
else if (field[ '_ft' ] == 'subform') {
|
|
15
|
-
var context = { parentField: field }
|
|
16
|
-
tranverseFields( field, callback, context );
|
|
17
|
-
}
|
|
18
|
-
else if (field[ '_ft' ] == 'array') {
|
|
19
|
-
var context = { parentField: field }
|
|
20
|
-
tranverseFields( field, callback, context )
|
|
21
|
-
}
|
|
22
|
-
} );
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
function normalizeValue(value,spec){
|
|
26
|
-
if(value == null){
|
|
27
|
-
return null;
|
|
28
|
-
}
|
|
29
|
-
switch (spec.fieldType){
|
|
30
|
-
case 'string':
|
|
31
|
-
return 's'+value;
|
|
32
|
-
case 'number':
|
|
33
|
-
return 'n' + value;
|
|
34
|
-
case 'date':
|
|
35
|
-
try{
|
|
36
|
-
var d = null;
|
|
37
|
-
if(isNaN(value)){
|
|
38
|
-
d = new Date(value).getTime();
|
|
39
|
-
}
|
|
40
|
-
else{
|
|
41
|
-
d = new Date(Number(value)).getTime();
|
|
42
|
-
}
|
|
43
|
-
return 'd'+ d;
|
|
44
|
-
}
|
|
45
|
-
catch(e){
|
|
46
|
-
return null;
|
|
47
|
-
}
|
|
48
|
-
case 'choice':
|
|
49
|
-
for(var i=0; i<spec.options.length; i++){
|
|
50
|
-
var option = spec.options[i];
|
|
51
|
-
if(option[0]==value){
|
|
52
|
-
return 's'+option[1];
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
return 's'+value;
|
|
56
|
-
default:
|
|
57
|
-
return "s"+value;
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
function getExportDoc(obj){
|
|
62
|
-
tranverseFields(formSpecs,function(f,ctx){
|
|
63
|
-
if (ctx.parentField && ctx.parentField._ft == 'array') {
|
|
64
|
-
var items = @projectCodeService.getValue( ctx.parentField.key, obj )
|
|
65
|
-
if(items){
|
|
66
|
-
for(var i=0; i<items.length; i++){
|
|
67
|
-
var item = items[i];
|
|
68
|
-
var value = item[f.origKey];
|
|
69
|
-
value = normalizeValue(value,f);
|
|
70
|
-
item[f.origKey] = value;
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
else{
|
|
75
|
-
var value = @projectCodeService.getValue( f.key, obj );
|
|
76
|
-
value = normalizeValue(value,f);
|
|
77
|
-
@projectCodeService.setValue(f.key,value,obj);
|
|
78
|
-
}
|
|
79
|
-
},{});
|
|
80
|
-
return obj;
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
(function(){
|
|
85
|
-
var template = owl_excel_templatesService.get(templateId);
|
|
86
|
-
if(!template || !template.template){
|
|
87
|
-
$.log("没有配置模版,templateId=" + templateId);
|
|
88
|
-
return null;
|
|
89
|
-
}
|
|
90
|
-
var taskInfo = owl_task_infoService.get(taskInfoId);
|
|
91
|
-
taskInfo.state = "running";
|
|
92
|
-
taskInfo.beginDate = new Date().getTime();
|
|
93
|
-
owl_task_infoService.update(taskInfo);
|
|
94
|
-
var doc = @projectCodeService.get(id);
|
|
95
|
-
var exportDoc = getExportDoc(doc);
|
|
96
|
-
// var templateExcelUrl = "@{@projectCode.xlsx}@";
|
|
97
|
-
var templateUrl = template.template[0].url;
|
|
98
|
-
var fileId = Excel.generateExcelFromTemplate( templateUrl, exportDoc );
|
|
99
|
-
if(template.toField){
|
|
100
|
-
var doc = @projectCodeService.get(id);
|
|
101
|
-
var url = FileService.getFullPath(fileId);
|
|
102
|
-
var docName = null;
|
|
103
|
-
if(typeof pname === 'undefined'){
|
|
104
|
-
docName = template.name + "_" +fileId;
|
|
105
|
-
}
|
|
106
|
-
else{
|
|
107
|
-
docName = pname;
|
|
108
|
-
}
|
|
109
|
-
doc[template.toField] = {
|
|
110
|
-
url: "" + url,
|
|
111
|
-
fileId: "" + fileId,
|
|
112
|
-
name:"" + docName
|
|
113
|
-
}
|
|
114
|
-
@projectCodeService.update(doc);
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
var taskInfo = owl_task_infoService.get(taskInfoId);
|
|
118
|
-
taskInfo.state = "success";
|
|
119
|
-
taskInfo.percent = 100;
|
|
120
|
-
taskInfo.fileId = fileId;
|
|
121
|
-
taskInfo.endDate = new Date().getTime();
|
|
122
|
-
taskInfo.state = "succeeded";
|
|
123
|
-
taskInfo.msg = "生成Excel文件成功";
|
|
124
|
-
taskInfo.fileId = fileId;
|
|
125
|
-
|
|
126
|
-
owl_task_infoService.update(taskInfo);
|
|
127
|
-
})();
|
|
128
|
-
|
|
1
|
+
//#import $@projectCode:services/modelService.jsx
|
|
2
|
+
//#import excel.js
|
|
3
|
+
//#import $owl_excel_templates:services/modelService.jsx
|
|
4
|
+
//#import $owl_task_info:services/modelService.jsx
|
|
5
|
+
//#import file.js
|
|
6
|
+
|
|
7
|
+
var formSpecs = @formSpecs;
|
|
8
|
+
|
|
9
|
+
function tranverseFields(formSpec, callback, ctx){
|
|
10
|
+
formSpec.fields.forEach( function(field){
|
|
11
|
+
if (field[ '_ft' ] == 'field') {
|
|
12
|
+
callback( field, ctx );
|
|
13
|
+
}
|
|
14
|
+
else if (field[ '_ft' ] == 'subform') {
|
|
15
|
+
var context = { parentField: field }
|
|
16
|
+
tranverseFields( field, callback, context );
|
|
17
|
+
}
|
|
18
|
+
else if (field[ '_ft' ] == 'array') {
|
|
19
|
+
var context = { parentField: field }
|
|
20
|
+
tranverseFields( field, callback, context )
|
|
21
|
+
}
|
|
22
|
+
} );
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
function normalizeValue(value,spec){
|
|
26
|
+
if(value == null){
|
|
27
|
+
return null;
|
|
28
|
+
}
|
|
29
|
+
switch (spec.fieldType){
|
|
30
|
+
case 'string':
|
|
31
|
+
return 's'+value;
|
|
32
|
+
case 'number':
|
|
33
|
+
return 'n' + value;
|
|
34
|
+
case 'date':
|
|
35
|
+
try{
|
|
36
|
+
var d = null;
|
|
37
|
+
if(isNaN(value)){
|
|
38
|
+
d = new Date(value).getTime();
|
|
39
|
+
}
|
|
40
|
+
else{
|
|
41
|
+
d = new Date(Number(value)).getTime();
|
|
42
|
+
}
|
|
43
|
+
return 'd'+ d;
|
|
44
|
+
}
|
|
45
|
+
catch(e){
|
|
46
|
+
return null;
|
|
47
|
+
}
|
|
48
|
+
case 'choice':
|
|
49
|
+
for(var i=0; i<spec.options.length; i++){
|
|
50
|
+
var option = spec.options[i];
|
|
51
|
+
if(option[0]==value){
|
|
52
|
+
return 's'+option[1];
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
return 's'+value;
|
|
56
|
+
default:
|
|
57
|
+
return "s"+value;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
function getExportDoc(obj){
|
|
62
|
+
tranverseFields(formSpecs,function(f,ctx){
|
|
63
|
+
if (ctx.parentField && ctx.parentField._ft == 'array') {
|
|
64
|
+
var items = @projectCodeService.getValue( ctx.parentField.key, obj )
|
|
65
|
+
if(items){
|
|
66
|
+
for(var i=0; i<items.length; i++){
|
|
67
|
+
var item = items[i];
|
|
68
|
+
var value = item[f.origKey];
|
|
69
|
+
value = normalizeValue(value,f);
|
|
70
|
+
item[f.origKey] = value;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
else{
|
|
75
|
+
var value = @projectCodeService.getValue( f.key, obj );
|
|
76
|
+
value = normalizeValue(value,f);
|
|
77
|
+
@projectCodeService.setValue(f.key,value,obj);
|
|
78
|
+
}
|
|
79
|
+
},{});
|
|
80
|
+
return obj;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
|
|
84
|
+
(function(){
|
|
85
|
+
var template = owl_excel_templatesService.get(templateId);
|
|
86
|
+
if(!template || !template.template){
|
|
87
|
+
$.log("没有配置模版,templateId=" + templateId);
|
|
88
|
+
return null;
|
|
89
|
+
}
|
|
90
|
+
var taskInfo = owl_task_infoService.get(taskInfoId);
|
|
91
|
+
taskInfo.state = "running";
|
|
92
|
+
taskInfo.beginDate = new Date().getTime();
|
|
93
|
+
owl_task_infoService.update(taskInfo);
|
|
94
|
+
var doc = @projectCodeService.get(id);
|
|
95
|
+
var exportDoc = getExportDoc(doc);
|
|
96
|
+
// var templateExcelUrl = "@{@projectCode.xlsx}@";
|
|
97
|
+
var templateUrl = template.template[0].url;
|
|
98
|
+
var fileId = Excel.generateExcelFromTemplate( templateUrl, exportDoc );
|
|
99
|
+
if(template.toField){
|
|
100
|
+
var doc = @projectCodeService.get(id);
|
|
101
|
+
var url = FileService.getFullPath(fileId);
|
|
102
|
+
var docName = null;
|
|
103
|
+
if(typeof pname === 'undefined'){
|
|
104
|
+
docName = template.name + "_" +fileId;
|
|
105
|
+
}
|
|
106
|
+
else{
|
|
107
|
+
docName = pname;
|
|
108
|
+
}
|
|
109
|
+
doc[template.toField] = {
|
|
110
|
+
url: "" + url,
|
|
111
|
+
fileId: "" + fileId,
|
|
112
|
+
name:"" + docName
|
|
113
|
+
}
|
|
114
|
+
@projectCodeService.update(doc);
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
var taskInfo = owl_task_infoService.get(taskInfoId);
|
|
118
|
+
taskInfo.state = "success";
|
|
119
|
+
taskInfo.percent = 100;
|
|
120
|
+
taskInfo.fileId = fileId;
|
|
121
|
+
taskInfo.endDate = new Date().getTime();
|
|
122
|
+
taskInfo.state = "succeeded";
|
|
123
|
+
taskInfo.msg = "生成Excel文件成功";
|
|
124
|
+
taskInfo.fileId = fileId;
|
|
125
|
+
|
|
126
|
+
owl_task_infoService.update(taskInfo);
|
|
127
|
+
})();
|
|
128
|
+
|
|
@@ -1,49 +1,49 @@
|
|
|
1
|
-
//#import $@projectCode:services/modelService.jsx
|
|
2
|
-
//#import Util.js
|
|
3
|
-
//#import file.js
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
var formSpecs = @formSpecs;
|
|
8
|
-
|
|
9
|
-
var taskInfo = @projectCodeService.getExportTaskInfo( taskInfoId );
|
|
10
|
-
taskInfo.total = @projectCodeService.getAllSize();
|
|
11
|
-
taskInfo.lastTime = new Date().getTime();
|
|
12
|
-
taskInfo.processState = "processing";
|
|
13
|
-
taskInfo.msg = "获取导出总数成功......";
|
|
14
|
-
taskInfo.percent = "1";
|
|
15
|
-
taskInfo.fileUrls = [];
|
|
16
|
-
|
|
17
|
-
var from = 0;
|
|
18
|
-
while(from < taskInfo.total){
|
|
19
|
-
var listObjs = @projectCodeService.getAllObjectsEx(from, 10000);
|
|
20
|
-
|
|
21
|
-
taskInfo.lastTime = new Date().getTime();
|
|
22
|
-
taskInfo.processState = "processing";
|
|
23
|
-
taskInfo.msg = "导出数据成功,生成zip......";
|
|
24
|
-
taskInfo.percent = (from + listObjs.length) * 100 / taskInfo.total;
|
|
25
|
-
|
|
26
|
-
var s = JSON.stringify(listObjs);
|
|
27
|
-
var fileId = "" + $.addAsZip(s);
|
|
28
|
-
|
|
29
|
-
taskInfo.fileId = fileId;
|
|
30
|
-
taskInfo.fileUrl = FileService.getFullPath(fileId);
|
|
31
|
-
taskInfo.fileUrls.push(taskInfo.fileUrl);
|
|
32
|
-
taskInfo.exportedRows = from + listObjs.length;
|
|
33
|
-
from = from + listObjs.length;
|
|
34
|
-
@projectCodeService.updateExportTaskInfo( taskInfoId, taskInfo );
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
taskInfo.processState = "success";
|
|
38
|
-
taskInfo.percent = 100;
|
|
39
|
-
taskInfo.msg = "导出文件成功";
|
|
40
|
-
@projectCodeService.updateExportTaskInfo( taskInfoId, taskInfo );
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
1
|
+
//#import $@projectCode:services/modelService.jsx
|
|
2
|
+
//#import Util.js
|
|
3
|
+
//#import file.js
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
var formSpecs = @formSpecs;
|
|
8
|
+
|
|
9
|
+
var taskInfo = @projectCodeService.getExportTaskInfo( taskInfoId );
|
|
10
|
+
taskInfo.total = @projectCodeService.getAllSize();
|
|
11
|
+
taskInfo.lastTime = new Date().getTime();
|
|
12
|
+
taskInfo.processState = "processing";
|
|
13
|
+
taskInfo.msg = "获取导出总数成功......";
|
|
14
|
+
taskInfo.percent = "1";
|
|
15
|
+
taskInfo.fileUrls = [];
|
|
16
|
+
|
|
17
|
+
var from = 0;
|
|
18
|
+
while(from < taskInfo.total){
|
|
19
|
+
var listObjs = @projectCodeService.getAllObjectsEx(from, 10000);
|
|
20
|
+
|
|
21
|
+
taskInfo.lastTime = new Date().getTime();
|
|
22
|
+
taskInfo.processState = "processing";
|
|
23
|
+
taskInfo.msg = "导出数据成功,生成zip......";
|
|
24
|
+
taskInfo.percent = (from + listObjs.length) * 100 / taskInfo.total;
|
|
25
|
+
|
|
26
|
+
var s = JSON.stringify(listObjs);
|
|
27
|
+
var fileId = "" + $.addAsZip(s);
|
|
28
|
+
|
|
29
|
+
taskInfo.fileId = fileId;
|
|
30
|
+
taskInfo.fileUrl = FileService.getFullPath(fileId);
|
|
31
|
+
taskInfo.fileUrls.push(taskInfo.fileUrl);
|
|
32
|
+
taskInfo.exportedRows = from + listObjs.length;
|
|
33
|
+
from = from + listObjs.length;
|
|
34
|
+
@projectCodeService.updateExportTaskInfo( taskInfoId, taskInfo );
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
taskInfo.processState = "success";
|
|
38
|
+
taskInfo.percent = 100;
|
|
39
|
+
taskInfo.msg = "导出文件成功";
|
|
40
|
+
@projectCodeService.updateExportTaskInfo( taskInfoId, taskInfo );
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
deployUrl=http://p12.local.com/appMarket/handler/deploy.jsp
|
|
2
|
-
deployPass=123456
|
|
1
|
+
deployUrl=http://p12.local.com/appMarket/handler/deploy.jsp
|
|
2
|
+
deployPass=123456
|
|
3
3
|
projectName=wushang
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
node_modules
|
|
1
|
+
node_modules
|
|
2
2
|
generatedApps
|
|
@@ -1,53 +1,53 @@
|
|
|
1
|
-
{
|
|
2
|
-
"id": "string(32),listSize:16,tab:a1,disabled:true,hidden:false;商品Id",
|
|
3
|
-
"name": "string(64),listSize:16,tab:a2;名称",
|
|
4
|
-
"skus": [{
|
|
5
|
-
"#meta": {
|
|
6
|
-
"fieldLabel": "子商品",
|
|
7
|
-
"tab": "f",
|
|
8
|
-
"addSingle":true,
|
|
9
|
-
"position": "card"
|
|
10
|
-
},
|
|
11
|
-
"spec": "string(32),listSize:14,help:规格尺码等,tab:f1;规格",
|
|
12
|
-
"buyUnit": "string(6),inputType:letterChina,required:true,listSize:8,tab:f2;采购单位",
|
|
13
|
-
"buyUnitCount": "number(4),listSize:8,help:每采购单位包含的单品数量,tab:f3;采购单位数量"
|
|
14
|
-
|
|
15
|
-
}],
|
|
16
|
-
"_t": "product",
|
|
17
|
-
"#meta": {
|
|
18
|
-
"rem": "商品",
|
|
19
|
-
"parent": [
|
|
20
|
-
"sku"
|
|
21
|
-
],
|
|
22
|
-
"projectName": "商品",
|
|
23
|
-
|
|
24
|
-
"visitType": [
|
|
25
|
-
"shop",
|
|
26
|
-
"warehouse",
|
|
27
|
-
"platform"
|
|
28
|
-
],
|
|
29
|
-
"pos": -1,
|
|
30
|
-
"group": {
|
|
31
|
-
"id": "mainData",
|
|
32
|
-
"name": "主数据",
|
|
33
|
-
"pos": 1
|
|
34
|
-
},
|
|
35
|
-
"project": "example",
|
|
36
|
-
"export":[
|
|
37
|
-
{
|
|
38
|
-
"label":"导出完整单据",
|
|
39
|
-
"mainTitleFormat":{"background":"#474747","color":"#cccccc"},
|
|
40
|
-
"subTitleFormat":{"background":"#777777","color":"#ffffff"},
|
|
41
|
-
"subRecordFormat":{"background":"#ffffff","color":"#000000"},
|
|
42
|
-
"mainRecordFormat":{"background":"#555555","color":"#FFFFFF"},
|
|
43
|
-
"key":"completeDoc",
|
|
44
|
-
"fields":["*"],
|
|
45
|
-
"items":{
|
|
46
|
-
"name":"items",
|
|
47
|
-
"itemFields":["*"]
|
|
48
|
-
},
|
|
49
|
-
"subTitleInterval":20
|
|
50
|
-
}
|
|
51
|
-
]
|
|
52
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"id": "string(32),listSize:16,tab:a1,disabled:true,hidden:false;商品Id",
|
|
3
|
+
"name": "string(64),listSize:16,tab:a2;名称",
|
|
4
|
+
"skus": [{
|
|
5
|
+
"#meta": {
|
|
6
|
+
"fieldLabel": "子商品",
|
|
7
|
+
"tab": "f",
|
|
8
|
+
"addSingle":true,
|
|
9
|
+
"position": "card"
|
|
10
|
+
},
|
|
11
|
+
"spec": "string(32),listSize:14,help:规格尺码等,tab:f1;规格",
|
|
12
|
+
"buyUnit": "string(6),inputType:letterChina,required:true,listSize:8,tab:f2;采购单位",
|
|
13
|
+
"buyUnitCount": "number(4),listSize:8,help:每采购单位包含的单品数量,tab:f3;采购单位数量"
|
|
14
|
+
|
|
15
|
+
}],
|
|
16
|
+
"_t": "product",
|
|
17
|
+
"#meta": {
|
|
18
|
+
"rem": "商品",
|
|
19
|
+
"parent": [
|
|
20
|
+
"sku"
|
|
21
|
+
],
|
|
22
|
+
"projectName": "商品",
|
|
23
|
+
|
|
24
|
+
"visitType": [
|
|
25
|
+
"shop",
|
|
26
|
+
"warehouse",
|
|
27
|
+
"platform"
|
|
28
|
+
],
|
|
29
|
+
"pos": -1,
|
|
30
|
+
"group": {
|
|
31
|
+
"id": "mainData",
|
|
32
|
+
"name": "主数据",
|
|
33
|
+
"pos": 1
|
|
34
|
+
},
|
|
35
|
+
"project": "example",
|
|
36
|
+
"export":[
|
|
37
|
+
{
|
|
38
|
+
"label":"导出完整单据",
|
|
39
|
+
"mainTitleFormat":{"background":"#474747","color":"#cccccc"},
|
|
40
|
+
"subTitleFormat":{"background":"#777777","color":"#ffffff"},
|
|
41
|
+
"subRecordFormat":{"background":"#ffffff","color":"#000000"},
|
|
42
|
+
"mainRecordFormat":{"background":"#555555","color":"#FFFFFF"},
|
|
43
|
+
"key":"completeDoc",
|
|
44
|
+
"fields":["*"],
|
|
45
|
+
"items":{
|
|
46
|
+
"name":"items",
|
|
47
|
+
"itemFields":["*"]
|
|
48
|
+
},
|
|
49
|
+
"subTitleInterval":20
|
|
50
|
+
}
|
|
51
|
+
]
|
|
52
|
+
}
|
|
53
53
|
}
|
|
@@ -1,72 +1,72 @@
|
|
|
1
|
-
{
|
|
2
|
-
"id":"string(32),tab:01,disabled:true;店铺Id",
|
|
3
|
-
"name":"string(16),tab:02,searchable:true;店铺名称;",
|
|
4
|
-
"mobile":"string(16),inputType:mobile,tab:03;手机",
|
|
5
|
-
"logo":"imgfileId,tab:04;店铺logo",
|
|
6
|
-
"ownerName":"string(16),tab:09,searchable:true;店主",
|
|
7
|
-
"ownerUserId":"string(16),tab:09,searchable:true;店主Id",
|
|
8
|
-
"area": "tree,tab:11,dataSource:/owlApi/region/getArea.jsx; 地区",
|
|
9
|
-
"address":"string(24),tab:10;详细地址",
|
|
10
|
-
"type":"choice,values:1_商品销售/2_工业生产/3_服务销售,listSize:14,tab:06,listTab:09;店铺类型",
|
|
11
|
-
"bankInfo":{
|
|
12
|
-
"#meta":{
|
|
13
|
-
"fieldLabel":"银行资料",
|
|
14
|
-
"tab":"11"
|
|
15
|
-
},
|
|
16
|
-
"account":"string(19),inputType:number,tab:1101;账号",
|
|
17
|
-
"bank":"string(10),tab:1102;开户行",
|
|
18
|
-
"branch":"string(10),tab:1103;支行"
|
|
19
|
-
},
|
|
20
|
-
"registrationInfo":{
|
|
21
|
-
"#meta":{
|
|
22
|
-
"fieldLabel":"工商资料",
|
|
23
|
-
"tab":"12"
|
|
24
|
-
},
|
|
25
|
-
"address":"string(32),inputType:numberLetter,tab:1201;注册地址",
|
|
26
|
-
"registrationNumber":"string(19),tab:1202;工商登记号",
|
|
27
|
-
"businessRange":"string(128),tab:1203;营业范围"
|
|
28
|
-
},
|
|
29
|
-
"admins": [
|
|
30
|
-
{
|
|
31
|
-
"#meta": {
|
|
32
|
-
"fieldLabel":"管理员",
|
|
33
|
-
"tab": "11",
|
|
34
|
-
"addMulti":{
|
|
35
|
-
"linkId":"userId",
|
|
36
|
-
"from":"id",
|
|
37
|
-
"label":"选择用户...",
|
|
38
|
-
"dataSource":"/owlApi/user/search.jsx",
|
|
39
|
-
"fields":["id","loginId","realName","nickName"],
|
|
40
|
-
"toFields":["userId","loginId","realName","nickName"],
|
|
41
|
-
"fieldLabels":["id","loginId","真实姓名","昵称"],
|
|
42
|
-
"fieldWidths":[100,120,120,120]
|
|
43
|
-
}
|
|
44
|
-
},
|
|
45
|
-
"userId": "linkId,dataSource:/owlApi/user/search.jsx,unique:true,fields:id/realName/nickName,toFields:userId/realName/nickName,displayField:id,fieldsWidth:100/120/120,tab:13;用户Id",
|
|
46
|
-
"loginId":"string(16),disabled:true,inputType:numberLetter,tab:14;loginId",
|
|
47
|
-
"realName":"string(16),disabled:true,tab:14;姓名",
|
|
48
|
-
"nickName":"string(16),tab:15;昵称"
|
|
49
|
-
}
|
|
50
|
-
],
|
|
51
|
-
"_t":"shop",
|
|
52
|
-
"#meta":{
|
|
53
|
-
"rem":"店铺",
|
|
54
|
-
"parent":["subplatform"],
|
|
55
|
-
"visitType": [
|
|
56
|
-
"platform"
|
|
57
|
-
],
|
|
58
|
-
"projectName":"店铺",
|
|
59
|
-
"project":"example",
|
|
60
|
-
"export":[
|
|
61
|
-
{
|
|
62
|
-
"label":"导出完整",
|
|
63
|
-
"mainTitleFormat":{"background":"#474747","color":"#cccccc"},
|
|
64
|
-
"subTitleFormat":{"background":"#777777","color":"#ffffff"},
|
|
65
|
-
"subRecordFormat":{"background":"#ffffff","color":"#000000"},
|
|
66
|
-
"mainRecordFormat":{"background":"#555555","color":"#FFFFFF"},
|
|
67
|
-
"key":"completeDoc",
|
|
68
|
-
"fields":["*"]
|
|
69
|
-
}
|
|
70
|
-
]
|
|
71
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"id":"string(32),tab:01,disabled:true;店铺Id",
|
|
3
|
+
"name":"string(16),tab:02,searchable:true;店铺名称;",
|
|
4
|
+
"mobile":"string(16),inputType:mobile,tab:03;手机",
|
|
5
|
+
"logo":"imgfileId,tab:04;店铺logo",
|
|
6
|
+
"ownerName":"string(16),tab:09,searchable:true;店主",
|
|
7
|
+
"ownerUserId":"string(16),tab:09,searchable:true;店主Id",
|
|
8
|
+
"area": "tree,tab:11,dataSource:/owlApi/region/getArea.jsx; 地区",
|
|
9
|
+
"address":"string(24),tab:10;详细地址",
|
|
10
|
+
"type":"choice,values:1_商品销售/2_工业生产/3_服务销售,listSize:14,tab:06,listTab:09;店铺类型",
|
|
11
|
+
"bankInfo":{
|
|
12
|
+
"#meta":{
|
|
13
|
+
"fieldLabel":"银行资料",
|
|
14
|
+
"tab":"11"
|
|
15
|
+
},
|
|
16
|
+
"account":"string(19),inputType:number,tab:1101;账号",
|
|
17
|
+
"bank":"string(10),tab:1102;开户行",
|
|
18
|
+
"branch":"string(10),tab:1103;支行"
|
|
19
|
+
},
|
|
20
|
+
"registrationInfo":{
|
|
21
|
+
"#meta":{
|
|
22
|
+
"fieldLabel":"工商资料",
|
|
23
|
+
"tab":"12"
|
|
24
|
+
},
|
|
25
|
+
"address":"string(32),inputType:numberLetter,tab:1201;注册地址",
|
|
26
|
+
"registrationNumber":"string(19),tab:1202;工商登记号",
|
|
27
|
+
"businessRange":"string(128),tab:1203;营业范围"
|
|
28
|
+
},
|
|
29
|
+
"admins": [
|
|
30
|
+
{
|
|
31
|
+
"#meta": {
|
|
32
|
+
"fieldLabel":"管理员",
|
|
33
|
+
"tab": "11",
|
|
34
|
+
"addMulti":{
|
|
35
|
+
"linkId":"userId",
|
|
36
|
+
"from":"id",
|
|
37
|
+
"label":"选择用户...",
|
|
38
|
+
"dataSource":"/owlApi/user/search.jsx",
|
|
39
|
+
"fields":["id","loginId","realName","nickName"],
|
|
40
|
+
"toFields":["userId","loginId","realName","nickName"],
|
|
41
|
+
"fieldLabels":["id","loginId","真实姓名","昵称"],
|
|
42
|
+
"fieldWidths":[100,120,120,120]
|
|
43
|
+
}
|
|
44
|
+
},
|
|
45
|
+
"userId": "linkId,dataSource:/owlApi/user/search.jsx,unique:true,fields:id/realName/nickName,toFields:userId/realName/nickName,displayField:id,fieldsWidth:100/120/120,tab:13;用户Id",
|
|
46
|
+
"loginId":"string(16),disabled:true,inputType:numberLetter,tab:14;loginId",
|
|
47
|
+
"realName":"string(16),disabled:true,tab:14;姓名",
|
|
48
|
+
"nickName":"string(16),tab:15;昵称"
|
|
49
|
+
}
|
|
50
|
+
],
|
|
51
|
+
"_t":"shop",
|
|
52
|
+
"#meta":{
|
|
53
|
+
"rem":"店铺",
|
|
54
|
+
"parent":["subplatform"],
|
|
55
|
+
"visitType": [
|
|
56
|
+
"platform"
|
|
57
|
+
],
|
|
58
|
+
"projectName":"店铺",
|
|
59
|
+
"project":"example",
|
|
60
|
+
"export":[
|
|
61
|
+
{
|
|
62
|
+
"label":"导出完整",
|
|
63
|
+
"mainTitleFormat":{"background":"#474747","color":"#cccccc"},
|
|
64
|
+
"subTitleFormat":{"background":"#777777","color":"#ffffff"},
|
|
65
|
+
"subRecordFormat":{"background":"#ffffff","color":"#000000"},
|
|
66
|
+
"mainRecordFormat":{"background":"#555555","color":"#FFFFFF"},
|
|
67
|
+
"key":"completeDoc",
|
|
68
|
+
"fields":["*"]
|
|
69
|
+
}
|
|
70
|
+
]
|
|
71
|
+
}
|
|
72
72
|
}
|