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.
Files changed (61) hide show
  1. package/.eslintrc.json +2 -2
  2. package/.vscode/launch.json +22 -22
  3. package/.vscode/settings.json +2 -2
  4. package/bin/createTables.js +94 -94
  5. package/bin/deploy.js +66 -66
  6. package/bin/dsl.js +223 -223
  7. package/bin/genEvents.js +188 -188
  8. package/bin/owl-init.js +50 -50
  9. package/bin/owl.js +305 -305
  10. package/bin/owlconfig.json +16 -16
  11. package/bin/table_mysql.js +189 -189
  12. package/bin/undeploy.js +56 -56
  13. package/defaultTemplate/api/build.xml +94 -94
  14. package/defaultTemplate/api/src/about.html +12 -12
  15. package/defaultTemplate/api/src/about.jsx +11 -11
  16. package/defaultTemplate/api/src/handlers/aggs.jsx +161 -161
  17. package/defaultTemplate/api/src/handlers/batchImport.jsx +78 -78
  18. package/defaultTemplate/api/src/handlers/delete.jsx +88 -88
  19. package/defaultTemplate/api/src/handlers/export.jsx +117 -117
  20. package/defaultTemplate/api/src/handlers/exportDoc.jsx +27 -27
  21. package/defaultTemplate/api/src/handlers/exportEx.jsx +77 -77
  22. package/defaultTemplate/api/src/handlers/exportWithTemplates.jsx +50 -50
  23. package/defaultTemplate/api/src/handlers/exportZip.jsx +26 -26
  24. package/defaultTemplate/api/src/handlers/get.jsx +50 -50
  25. package/defaultTemplate/api/src/handlers/getByIds.jsx +51 -51
  26. package/defaultTemplate/api/src/handlers/getChildren.jsx +96 -96
  27. package/defaultTemplate/api/src/handlers/getExportTaskInfo.jsx +34 -34
  28. package/defaultTemplate/api/src/handlers/getSpec.jsx +40 -40
  29. package/defaultTemplate/api/src/handlers/include/checklogin.jsx +786 -786
  30. package/defaultTemplate/api/src/handlers/include/diff.jsx +315 -315
  31. package/defaultTemplate/api/src/handlers/include/util.jsx +60 -60
  32. package/defaultTemplate/api/src/handlers/list.jsx +252 -252
  33. package/defaultTemplate/api/src/handlers/listEx.jsx +136 -135
  34. package/defaultTemplate/api/src/handlers/reIndex.jsx +63 -63
  35. package/defaultTemplate/api/src/handlers/recovery.jsx +53 -53
  36. package/defaultTemplate/api/src/handlers/save.jsx +125 -125
  37. package/defaultTemplate/api/src/handlers/upload.jsx +72 -72
  38. package/defaultTemplate/api/src/init/indexConfigs/changeMapping.json +14 -14
  39. package/defaultTemplate/api/src/init/indexConfigs/createAliase.json +10 -10
  40. package/defaultTemplate/api/src/init/indexConfigs/createIndex.json +55 -55
  41. package/defaultTemplate/api/src/init/indexConfigs/rebuildIndex.sh +27 -27
  42. package/defaultTemplate/api/src/init/indexConfigs/reindex.json +10 -10
  43. package/defaultTemplate/api/src/init/init.jsx +25 -25
  44. package/defaultTemplate/api/src/meta.json +10 -10
  45. package/defaultTemplate/api/src/services/dblayer.jsx +251 -251
  46. package/defaultTemplate/api/src/services/modelService.jsx +1239 -1239
  47. package/defaultTemplate/api/src/services/sqlstring.jsx +240 -240
  48. package/defaultTemplate/api/src/tasks/export.jsx +366 -366
  49. package/defaultTemplate/api/src/tasks/exportDoc.jsx +99 -99
  50. package/defaultTemplate/api/src/tasks/exportExTask.jsx +332 -332
  51. package/defaultTemplate/api/src/tasks/exportWithTemplateTask.jsx +128 -128
  52. package/defaultTemplate/api/src/tasks/exportZip.jsx +49 -49
  53. package/examples/buildProperties/build.properties +2 -2
  54. package/examples/gitignore/gitignore_example.txt +1 -1
  55. package/examples/models/product.json +52 -52
  56. package/examples/models/shop.json +71 -71
  57. package/examples/models/sku.json +254 -254
  58. package/examples/models/user.json +49 -49
  59. package/examples/owlconfig.json +13 -13
  60. package/package.json +33 -33
  61. 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
  }