@steedos/standard-object-database 2.5.0-beta.1 → 2.5.0-beta.3

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.
@@ -433,7 +433,7 @@ fields:
433
433
  is_wide: true
434
434
  depend_on:
435
435
  - summary_object
436
- visible_on: "{{formData.type === 'summary' ? true: false}}"
436
+ visible_on: "{{formData.type === 'summary' && global.mode !='read' ? true: false}}"
437
437
  sort_no: 330
438
438
  summary_filters.$:
439
439
  label: Filter Criteria
@@ -600,7 +600,7 @@ list_views:
600
600
  columns:
601
601
  - label
602
602
  - name
603
- - column_name
603
+ - group
604
604
  - type
605
605
  - object
606
606
  - sort_no
@@ -12,7 +12,7 @@ amis_schema: |-
12
12
  "actions": [
13
13
  {
14
14
  "actionType": "custom",
15
- "script": "const appId = null;\nconst page = Steedos.Page.getPage('form', appId, null, null, \"object_layouts\");\nif (page && page.schema) {\n const pageSchema = JSON.parse(page.schema);\n let formSchema = pageSchema.body[0];\n // 设置form的canAccessSuperData属性防止弹出窗口从父级取字段默认值\n formSchema.canAccessSuperData = false;\n // 设置form的wrapWithPanel属性隐藏其底部保存取消按钮\n formSchema.wrapWithPanel = false;\n formSchema.className = \"steedos-amis-form\";\n const title = \"编辑 页面布局\";\n doAction({\n \"actionType\": \"dialog\",\n \"dialog\": {\n \"type\": \"dialog\",\n \"title\": title,\n \"body\": [{\n \"type\": \"service\",\n \"body\": [formSchema],\n \"data\": {\n \"objectName\": \"${object_name}\",\n \"recordId\": \"${record_id}\"\n }\n }],\n \"size\": \"lg\"\n }\n });\n}"
15
+ "script": "const appId = null;\nconst page = Steedos.Page.getPage('form', appId, null, null, \"object_layouts\");\nif (page && page.schema) {\n const pageSchema = JSON.parse(page.schema);\n let formSchema = pageSchema.body[0];\n // 设置form的canAccessSuperData属性防止弹出窗口从父级取字段默认值\n formSchema.canAccessSuperData = false;\n // 设置form的wrapWithPanel属性隐藏其底部保存取消按钮\n formSchema.wrapWithPanel = false;\n formSchema.className = \"steedos-amis-form\";\n const title = \"编辑 页面布局\";\n doAction({\n \"actionType\": \"dialog\",\n \"dialog\": {\n \"type\": \"dialog\",\n \"title\": title,\n \"body\": [formSchema],\n \"size\": \"lg\"\n }\n });\n}"
16
16
  }
17
17
  ],
18
18
  "weight": 0
@@ -13,7 +13,6 @@ fields:
13
13
  type: text
14
14
  searchable: true
15
15
  index: true
16
- required: true
17
16
  inlineHelpText: Can only contain lowercase letters and numbers, must start with a letter, cannot end with an underscore character or contain two consecutive underscore characters
18
17
  object_name:
19
18
  label: Object
@@ -78,18 +77,8 @@ fields:
78
77
  required: true
79
78
  depend_on:
80
79
  - object_name
81
- optionsFunction: !<tag:yaml.org,2002:js/function> |-
82
- function (values) {
83
- if (!(values != null ? values.object_name : void 0)) {
84
- values.object_name = Session.get("object_name");
85
- }
86
-
87
- if(values.object_name && !_.isString(values.object_name)){
88
- values.object_name = values.object_name.name
89
- }
90
-
91
- return Creator.getObjectFieldOptions(values != null ? values.object_name : void 0, true);
92
- }
80
+ reference_to: object_fields
81
+ reference_to_field: name
93
82
  columns.$.width:
94
83
  label: Width
95
84
  type: text
@@ -104,16 +93,8 @@ fields:
104
93
  is_wide: true
105
94
  depend_on:
106
95
  - object_name
107
- optionsFunction: !<tag:yaml.org,2002:js/function> |-
108
- function (values) {
109
- if (!(values != null ? values.object_name : void 0)) {
110
- values.object_name = Session.get("object_name");
111
- }
112
- if(values.object_name && !_.isString(values.object_name)){
113
- values.object_name = values.object_name.name
114
- }
115
- return Creator.getObjectFieldOptions(values != null ? values.object_name : void 0);
116
- }
96
+ reference_to: object_fields
97
+ reference_to_field: name
117
98
  sort:
118
99
  label: Default Sort Order
119
100
  type: grid
@@ -127,32 +108,8 @@ fields:
127
108
  sort.$.field_name:
128
109
  label: Field Name
129
110
  type: lookup
130
- optionsFunction: !<tag:yaml.org,2002:js/function> |-
131
- function (values) {
132
- var _object, _options, fields, icon;
133
- if(values.object_name && !_.isString(values.object_name)){
134
- values.object_name = values.object_name.name
135
- }
136
- _options = [];
137
- _object = Creator.getObject(values != null ? values.object_name : void 0);
138
- fields = Creator.getFields(values != null ? values.object_name : void 0);
139
- icon = _object.icon;
140
-
141
- _.forEach(fields, function (f) {
142
- var label;
143
-
144
- if (!_object.fields[f].hidden) {
145
- label = _object.fields[f].label;
146
- return _options.push({
147
- label: label || f,
148
- value: f,
149
- icon: icon
150
- });
151
- }
152
- });
153
-
154
- return _options;
155
- }
111
+ reference_to: object_fields
112
+ reference_to_field: name
156
113
  sort.$.order:
157
114
  label: Sort Order
158
115
  type: select
@@ -167,7 +124,7 @@ fields:
167
124
  type: code
168
125
  is_wide: true
169
126
  hidden: false
170
- readonly: true
127
+ readonly: false
171
128
  visible_on: "{{global.mode ==='read' ? true : false}}"
172
129
  depend_on:
173
130
  - object_name
@@ -240,18 +197,8 @@ fields:
240
197
  type: lookup
241
198
  multiple: false
242
199
  is_wide: false
243
- optionsFunction: !<tag:yaml.org,2002:js/function> |-
244
- function (values) {
245
- if (!(values != null ? values.object_name : void 0)) {
246
- values.object_name = Session.get("object_name");
247
- }
248
-
249
- if(values.object_name && !_.isString(values.object_name)){
250
- values.object_name = values.object_name.name
251
- }
252
-
253
- return Creator.getObjectFieldOptions(values != null ? values.object_name : void 0, true);
254
- }
200
+ reference_to: object_fields
201
+ reference_to_field: name
255
202
  searchable_fields:
256
203
  label: Searchable Fields
257
204
  type: grid
@@ -267,18 +214,8 @@ fields:
267
214
  type: lookup
268
215
  multiple: false
269
216
  is_wide: false
270
- optionsFunction: !<tag:yaml.org,2002:js/function> |-
271
- function (values) {
272
- if (!(values != null ? values.object_name : void 0)) {
273
- values.object_name = Session.get("object_name");
274
- }
275
-
276
- if(values.object_name && !_.isString(values.object_name)){
277
- values.object_name = values.object_name.name
278
- }
279
-
280
- return Creator.getObjectFieldOptions(values != null ? values.object_name : void 0, true);
281
- }
217
+ reference_to: object_fields
218
+ reference_to_field: name
282
219
  sort_no:
283
220
  label: Sort no
284
221
  type: number
@@ -29,7 +29,7 @@ amis_schema: |-
29
29
  "showCloseButton": true,
30
30
  "data": {
31
31
  "&": "$$",
32
- "record": "${record}"
32
+ "recordId": "${recordId}"
33
33
  },
34
34
  "onEvent": {
35
35
  "confirm": {
@@ -43,9 +43,9 @@ amis_schema: |-
43
43
  "method": "post",
44
44
  "data": {
45
45
  "&": "$$",
46
- "record": "${record}"
46
+ "recordId": "${recordId}"
47
47
  },
48
- "requestAdaptor": "console.log(`api`, api);const record = api.body.record; \napi.data = {\n query: `\n mutation{\n objects__delete(id: \"${record._id}\")\n }\n `\n}",
48
+ "requestAdaptor": "const recordId = api.data.recordId; \napi.data = {\n query: `\n mutation{\n objects__delete(id: \"${recordId}\")\n }\n `\n}",
49
49
  "headers": {
50
50
  "Authorization": "Bearer ${context.tenantId},${context.authToken}"
51
51
  }
@@ -55,12 +55,15 @@ amis_schema: |-
55
55
  "actionType": "ajax"
56
56
  },
57
57
  {
58
- "componentId": "",
58
+ "actionType": "broadcast",
59
59
  "args": {
60
- "url": "/app/admin/objects/grid/all"
60
+ "eventName": "@data.changed.objects"
61
61
  },
62
- "actionType": "link"
62
+ "data": {
63
+ "objectName": "objects",
64
+ "__deletedRecord": true
63
65
  }
66
+ }
64
67
  ]
65
68
  }
66
69
  }
@@ -225,22 +225,24 @@ function loadObject(doc, oldDoc) {
225
225
  objectql.loadObjectLazyListenners(doc.name);
226
226
  objectql.loadObjectLazyButtons(doc.name);
227
227
  //获取到继承后的对象
228
- const _doc = objectql.getObjectConfig(doc.name);
228
+ // const _doc = objectql.getObjectConfig(doc.name);
229
+ // console.log(`loadObject===>`, doc.name)
229
230
  objectql.getSteedosSchema().metadataRegister.addObjectConfig(DB_OBJECT_SERVICE_NAME, originalObject).then(function(res){
230
231
  if(res){
231
- datasource.setObject(doc.name, _doc);
232
- try {
233
- if (!datasourceName || datasourceName == defaultDatasourceName) {
234
- Creator.Objects[doc.name] = _doc;
235
- Creator.loadObjects(_doc, _doc.name);
236
- }
237
- } catch (error) {
238
- console.log('error', error);
239
- }
240
- if (!oldDoc || (oldDoc && oldDoc.is_enable === false && doc.is_enable)) {
241
- loadObjectTriggers(doc);
242
- loadObjectPermission(doc);
243
- }
232
+ // datasource.setObject(doc.name, _doc);
233
+ // try {
234
+ // if (!datasourceName || datasourceName == defaultDatasourceName) {
235
+ // Creator.Objects[doc.name] = _doc;
236
+ // Creator.loadObjects(_doc, _doc.name);
237
+ // }
238
+ // } catch (error) {
239
+ // console.log('error', error);
240
+ // }
241
+ // if (!oldDoc || (oldDoc && oldDoc.is_enable === false && doc.is_enable)) {
242
+ // loadObjectTriggers(doc);
243
+ // loadObjectPermission(doc);
244
+ // }
245
+
244
246
  objectql.getSteedosSchema().broker.broadcast("$packages.statisticsActivatedPackages", {});
245
247
  }
246
248
  })
@@ -342,7 +344,7 @@ function reloadObject(changeLog){
342
344
  return
343
345
  }
344
346
  //获取到最新的对象
345
- const object = objectql.getObjectConfig(objectName);
347
+ const object = objectql.getOriginalObjectConfig(objectName);
346
348
 
347
349
  let _mf = _.max(_.values(object.fields), function (field) { return field.sort_no; });
348
350
  if(_mf && object.name){
@@ -355,18 +357,18 @@ function reloadObject(changeLog){
355
357
  if(deleted.actions.length == 0){
356
358
  deleted.actions = null;
357
359
  }
358
-
360
+ // console.log(`reloadObject===>`, object.name)
359
361
  objectql.getSteedosSchema().metadataRegister.addObjectConfig(DB_OBJECT_SERVICE_NAME, Object.assign({}, object, {isMain:false, __deleted: deleted})).then(function(res){
360
362
  if(res){
361
- datasource.setObject(object.name, object);
362
- try {
363
- if(!objectDataSourceName || objectDataSourceName == defaultDatasourceName){
364
- Creator.Objects[object.name] = object;
365
- Creator.loadObjects(object, object.name);
366
- }
367
- } catch (error) {
368
- console.log('error', error);
369
- }
363
+ // datasource.setObject(object.name, object);
364
+ // try {
365
+ // if(!objectDataSourceName || objectDataSourceName == defaultDatasourceName){
366
+ // Creator.Objects[object.name] = object;
367
+ // Creator.loadObjects(object, object.name);
368
+ // }
369
+ // } catch (error) {
370
+ // console.log('error', error);
371
+ // }
370
372
  objectql.getSteedosSchema().broker.broadcast("$packages.statisticsActivatedPackages", {});
371
373
  }
372
374
  })
@@ -2,187 +2,183 @@
2
2
  "type": "page",
3
3
  "body": [
4
4
  {
5
- "type": "steedos-record-detail-header",
6
- "label": "标题面板",
7
- "objectApiName": "${objectName}",
8
- "recordId": "${recordId}",
9
- "onEvent": {
10
- "recordLoaded": {
11
- "actions": [
12
- {
13
- "actionType": "setValue",
14
- "args": {
15
- "value": {
16
- "recordLoaded": true
17
- }
18
- }
19
- },
20
- {
21
- "actionType": "reload",
22
- "data": {
23
- "name": "${record.label}",
24
- "record": "${record}",
25
- "recordLoaded": true
26
- }
27
- }
28
- ]
29
- }
30
- },
31
- "id": "u:bc56cf9d43bc"
32
- },
33
- {
34
- "type": "tabs",
35
- "tabs": [
5
+ "type": "steedos-record-detail",
6
+ "body": [
36
7
  {
37
- "title": "详情",
38
- "body": [
39
- {
40
- "type": "steedos-object-form",
41
- "label": "对象表单",
42
- "mode": "read",
43
- "objectApiName": "${objectName}",
44
- "recordId": "${recordId}",
45
- "labelAlign": "left",
46
- "id": "u:4eb5fa6f6fad"
47
- }
48
- ],
49
- "id": "u:b2fbc13aabb8"
8
+ "type": "steedos-record-detail-header",
9
+ "label": "标题面板",
10
+ "id": "u:bc56cf9d43bc",
11
+ "objectApiName": "${objectName}",
12
+ "recordId": "${recordId}"
50
13
  },
51
14
  {
52
- "title": "对象字段",
53
- "body": [
15
+ "type": "tabs",
16
+ "tabs": [
54
17
  {
55
- "type": "steedos-object-related-listview",
56
- "objectApiName": "objects",
57
- "recordId": "${recordId}",
58
- "relatedObjectApiName": "object_fields",
59
- "id": "u:6bef459155bd",
60
- "top": 2000
61
- }
62
- ],
63
- "id": "u:f1a52545b642"
64
- },
65
- {
66
- "title": "列表视图",
67
- "body": [
18
+ "title": "详情",
19
+ "body": [
20
+ {
21
+ "type": "steedos-object-form",
22
+ "label": "对象表单",
23
+ "mode": "read",
24
+ "objectApiName": "${objectName}",
25
+ "labelAlign": "left",
26
+ "id": "u:4eb5fa6f6fad",
27
+ "recordId": "${recordId}"
28
+ }
29
+ ],
30
+ "id": "u:b2fbc13aabb8"
31
+ },
68
32
  {
69
- "type": "steedos-object-related-listview",
70
- "objectApiName": "objects",
71
- "recordId": "${recordId}",
72
- "relatedObjectApiName": "object_listviews",
73
- "id": "u:c415f75c5557",
74
- "perPage": 20
75
- }
76
- ],
77
- "id": "u:df900c5f2119"
78
- },
79
- {
80
- "title": "操作按钮",
81
- "body": [
33
+ "title": "对象字段",
34
+ "body": [
35
+ {
36
+ "type": "steedos-object-related-listview",
37
+ "objectApiName": "objects",
38
+ "relatedObjectApiName": "object_fields",
39
+ "id": "u:6bef459155bd",
40
+ "top": 2000,
41
+ "recordId": "${recordId}"
42
+ }
43
+ ],
44
+ "id": "u:f1a52545b642"
45
+ },
82
46
  {
83
- "type": "steedos-object-related-listview",
84
- "objectApiName": "objects",
85
- "recordId": "${recordId}",
86
- "relatedObjectApiName": "object_actions",
87
- "perPage": 20,
88
- "id": "u:e1a8b77a140c"
89
- }
90
- ],
91
- "id": "u:d75b105f6d02"
92
- },
93
- {
94
- "title": "页面布局",
95
- "body": [
47
+ "title": "列表视图",
48
+ "body": [
49
+ {
50
+ "type": "steedos-object-related-listview",
51
+ "objectApiName": "objects",
52
+ "relatedObjectApiName": "object_listviews",
53
+ "id": "u:c415f75c5557",
54
+ "perPage": 20,
55
+ "recordId": "${recordId}"
56
+ }
57
+ ],
58
+ "id": "u:df900c5f2119"
59
+ },
96
60
  {
97
- "type": "steedos-object-related-listview",
98
- "objectApiName": "objects",
99
- "recordId": "${recordId}",
100
- "relatedObjectApiName": "object_layouts",
101
- "id": "u:ed9559f8aa86",
102
- "perPage": 20
103
- }
104
- ],
105
- "id": "u:ee4ab13a92e6"
106
- },
107
- {
108
- "title": "对象权限",
109
- "body": [
61
+ "title": "操作按钮",
62
+ "body": [
63
+ {
64
+ "type": "steedos-object-related-listview",
65
+ "objectApiName": "objects",
66
+ "relatedObjectApiName": "object_actions",
67
+ "perPage": 20,
68
+ "id": "u:e1a8b77a140c",
69
+ "recordId": "${recordId}"
70
+ }
71
+ ],
72
+ "id": "u:d75b105f6d02"
73
+ },
110
74
  {
111
- "type": "steedos-object-related-listview",
112
- "objectApiName": "objects",
113
- "recordId": "${recordId}",
114
- "relatedObjectApiName": "permission_objects",
115
- "relatedKey": "object_name",
116
- "perPage": 20
117
- }
118
- ]
119
- },
120
- {
121
- "title": "流程映射",
122
- "body": [
75
+ "title": "页面布局",
76
+ "body": [
77
+ {
78
+ "type": "steedos-object-related-listview",
79
+ "objectApiName": "objects",
80
+ "relatedObjectApiName": "object_layouts",
81
+ "id": "u:ed9559f8aa86",
82
+ "perPage": 20,
83
+ "recordId": "${recordId}"
84
+ }
85
+ ],
86
+ "id": "u:ee4ab13a92e6"
87
+ },
123
88
  {
124
- "type": "steedos-object-related-listview",
125
- "objectApiName": "objects",
126
- "recordId": "${recordId}",
127
- "relatedObjectApiName": "object_workflows",
128
- "perPage": 20,
129
- "id": "u:e14df76cfa51"
130
- }
131
- ],
132
- "id": "u:cbc13e1a7033"
133
- },
134
- {
135
- "title": "验证规则",
136
- "body": [
89
+ "title": "对象权限",
90
+ "body": [
91
+ {
92
+ "type": "steedos-object-related-listview",
93
+ "objectApiName": "objects",
94
+ "recordId": "${recordId}",
95
+ "relatedObjectApiName": "permission_objects",
96
+ "relatedKey": "object_name",
97
+ "perPage": 20
98
+ }
99
+ ]
100
+ },
137
101
  {
138
- "type": "steedos-object-related-listview",
139
- "objectApiName": "objects",
140
- "recordId": "${recordId}",
141
- "relatedObjectApiName": "object_validation_rules",
142
- "perPage": 20
143
- }
144
- ]
145
- },
146
- {
147
- "title": "限制规则",
148
- "body": [
102
+ "title": "流程映射",
103
+ "body": [
104
+ {
105
+ "type": "steedos-object-related-listview",
106
+ "objectApiName": "objects",
107
+ "recordId": "${recordId}",
108
+ "relatedObjectApiName": "object_workflows",
109
+ "perPage": 20,
110
+ "id": "u:e14df76cfa51"
111
+ }
112
+ ],
113
+ "id": "u:cbc13e1a7033"
114
+ },
149
115
  {
150
- "type": "steedos-object-related-listview",
151
- "objectApiName": "objects",
152
- "recordId": "${recordId}",
153
- "relatedObjectApiName": "restriction_rules",
154
- "relatedKey": "object_name",
155
- "perPage": 20
156
- }
157
- ]
158
- },
159
- {
160
- "title": "共享规则",
161
- "body": [
116
+ "title": "验证规则",
117
+ "body": [
118
+ {
119
+ "type": "steedos-object-related-listview",
120
+ "objectApiName": "objects",
121
+ "recordId": "${recordId}",
122
+ "relatedObjectApiName": "object_validation_rules",
123
+ "perPage": 20
124
+ }
125
+ ]
126
+ },
162
127
  {
163
- "type": "steedos-object-related-listview",
164
- "objectApiName": "objects",
165
- "recordId": "${recordId}",
166
- "relatedObjectApiName": "share_rules",
167
- "relatedKey": "object_name",
168
- "perPage": 20
128
+ "title": "限制规则",
129
+ "body": [
130
+ {
131
+ "type": "steedos-object-related-listview",
132
+ "objectApiName": "objects",
133
+ "recordId": "${recordId}",
134
+ "relatedObjectApiName": "restriction_rules",
135
+ "relatedKey": "object_name",
136
+ "perPage": 20
137
+ }
138
+ ]
139
+ },
140
+ {
141
+ "title": "共享规则",
142
+ "body": [
143
+ {
144
+ "type": "steedos-object-related-listview",
145
+ "objectApiName": "objects",
146
+ "recordId": "${recordId}",
147
+ "relatedObjectApiName": "share_rules",
148
+ "relatedKey": "object_name",
149
+ "perPage": 20
150
+ }
151
+ ]
169
152
  }
170
- ]
153
+ ],
154
+ "id": "u:6a3b45d7adcf",
155
+ "tabsMode": "vertical",
156
+ "className": "object-detail-tabs mt-3 bg-white border-b sm:shadow sm:rounded sm:border border-slate-300",
157
+ "toolbarClassName": "",
158
+ "linksClassName": "",
159
+ "contentClassName": "bg-white"
171
160
  }
172
161
  ],
173
- "id": "u:6a3b45d7adcf",
174
- "tabsMode": "vertical",
175
- "className": "object-detail-tabs mt-3 bg-white border-b sm:shadow sm:rounded sm:border border-slate-300",
176
- "toolbarClassName": "",
177
- "linksClassName": "",
178
- "contentClassName": "bg-white"
162
+ "label": "记录详细",
163
+ "objectApiName": "${objectName}",
164
+ "id": "u:68bf18277387"
179
165
  }
180
166
  ],
181
167
  "regions": [
182
168
  "body"
183
169
  ],
170
+ "data": {
171
+ "objectName": "objects",
172
+ "recordId": "contract_bidding_information",
173
+ "context": {
174
+ "rootUrl": "http://127.0.0.1:5800",
175
+ "tenantId": "hKdnwE55WcnWveYxS",
176
+ "userId": "62ede4f62161e377e35de58c",
177
+ "authToken": "b6475c5536a26d23d3db84e96536e08e82e1e726380cdd5cb09fc977e1d6e57c08fb23d7a1090006189d3d"
178
+ }
179
+ },
184
180
  "id": "page_objects_record_detail",
185
181
  "name": "page_objects_record_detail",
186
182
  "bodyClassName": "",
187
183
  "className": "object-detail-page"
188
- }
184
+ }
@@ -127,6 +127,7 @@
127
127
  delete schema.data.context.tenantId;
128
128
  delete schema.data.context.authToken;
129
129
  delete schema.data.context.user;
130
+ delete schema.data.context.rootUrl;
130
131
  }
131
132
  return await axios.post(
132
133
  `${rootUrl}/graphql`,
@@ -2,7 +2,7 @@
2
2
  * @Author: baozhoutao@steedos.com
3
3
  * @Date: 2022-06-02 17:45:15
4
4
  * @LastEditors: baozhoutao@steedos.com
5
- * @LastEditTime: 2022-11-14 16:06:17
5
+ * @LastEditTime: 2023-04-09 12:15:18
6
6
  * @Description:
7
7
  -->
8
8
  <html>
@@ -37,9 +37,6 @@
37
37
  const initialContent = {
38
38
  type: "service",
39
39
  bodyClassName: 'p-0',
40
- regions: [
41
- "body"
42
- ]
43
40
  };
44
41
 
45
42
  if (id) {
@@ -69,7 +66,10 @@
69
66
  let schema = button?.amis_schema ;
70
67
  if(!schema){
71
68
  schema = Object.assign({}, initialContent, {body: [
72
-
69
+ {
70
+ "type": "steedos-object-table",
71
+ "objectApiName": "${objectName}"
72
+ }
73
73
  ]});
74
74
  }
75
75
 
@@ -88,7 +88,7 @@
88
88
 
89
89
  schema.data.app_id = '';
90
90
  schema.data.tab_id = '';
91
- schema.data.object_name = '';
91
+ schema.data.objectName = '<%=object_name%>';
92
92
  schema.data.dataComponentId = '';
93
93
  schema.data.record_id = '';
94
94
  schema.data.record = {};
@@ -122,6 +122,7 @@
122
122
  delete schema.data.context.tenantId;
123
123
  delete schema.data.context.authToken;
124
124
  delete schema.data.context.user;
125
+ delete schema.data.context.rootUrl;
125
126
  }
126
127
  return await axios.post(
127
128
  `${rootUrl}/graphql`,
@@ -151,6 +152,7 @@
151
152
  if (data) {
152
153
  if (data.type === 'builder.loadContent') {
153
154
  loadPage().then((content)=>{
155
+ console.log("loadPage====", content)
154
156
  comp.messageFrame('builder.contentChanged', { AmisSchema : content } )
155
157
  })
156
158
  }
@@ -10,6 +10,7 @@ const ejs = require('ejs');
10
10
  const fs = require('fs');
11
11
  const _ = require('lodash');
12
12
  const path = require('path');
13
+ const objectql = require('@steedos/objectql');
13
14
 
14
15
  router.get('/api/amisListviewDesign', core.requireAuthentication, async function (req, res) {
15
16
  try {
@@ -27,7 +28,7 @@ router.get('/api/amisListviewDesign', core.requireAuthentication, async function
27
28
  const retUrl = __meteor_runtime_config__.ROOT_URL + `/app/admin/object_listviews/view/${req.query.id}`
28
29
  const steedosBuilderUrl = process.env.STEEDOS_BUILDER_URL || 'https://builder.steedos.cn';
29
30
  const builderHost = `${steedosBuilderUrl}/amis?${assetUrl}retUrl=${retUrl}`;
30
-
31
+ const record = await objectql.getObject('object_listviews').findOne(req.query.id);
31
32
  // let data = fs.readFileSync(__dirname+'/design.html', 'utf8');
32
33
  // res.send(data.replace('SteedosBuilderHost',steedosBuilderHost).replace('DataContext', JSON.stringify(dataContext)));
33
34
 
@@ -40,6 +41,7 @@ router.get('/api/amisListviewDesign', core.requireAuthentication, async function
40
41
  userId: userSession.userId,
41
42
  authToken: userSession.authToken,
42
43
  id: req.query.id,
44
+ object_name: record?.object_name
43
45
  }
44
46
  const options = {}
45
47
  ejs.renderFile(filename, data, options, function(err, str){
@@ -1,8 +1,8 @@
1
1
  /*
2
2
  * @Author: baozhoutao@steedos.com
3
3
  * @Date: 2022-08-05 14:20:24
4
- * @LastEditors: sunhaolin@hotoa.com
5
- * @LastEditTime: 2023-03-27 17:08:55
4
+ * @LastEditors: 殷亮辉 yinlianghui@hotoa.com
5
+ * @LastEditTime: 2023-03-29 23:32:35
6
6
  * @Description:
7
7
  */
8
8
  const express = require('express');
@@ -25,36 +25,4 @@ router.post('/api/listview/filters', core.requireAuthentication, async function
25
25
  res.status(200).send(record);
26
26
  });
27
27
 
28
- router.post('/api/listview/:id/amis-schema/clear', core.requireAuthentication, async function (req, res) {
29
- const { id } = req.params;
30
- const record = await objectql.getObject('object_listviews').directUpdate(id, { amis_schema: "" });
31
- res.status(200).send(record);
32
- });
33
-
34
- router.post('/api/listview/:id/amis-schema/reset', core.requireAuthentication, async function (req, res) {
35
- try {
36
- const userSession = req.user;
37
- const { id } = req.params;
38
- const listviews = await objectql.getObject('object_listviews').directFind({filters: [['_id', '=', id]],fields: ["object_name", "name"]});
39
- let listview;
40
- if(listviews && listviews.length > 0){
41
- listview = listviews[0];
42
- }
43
- else{
44
- res.status(500).send(`The listview for id "${id}" Not found`);
45
- }
46
- const AmisLib = require('@steedos-widgets/amis-lib');
47
- AmisLib.setUISchemaFunction(async function(objectName, force){
48
- return await getUISchema(objectName, userSession);
49
- });
50
- let schema = await AmisLib.getListviewInitSchema(listview.object_name, listview.name);
51
- const record = await objectql.getObject('object_listviews').directUpdate(id, { amis_schema: JSON.stringify(schema, null, 4) });
52
- res.status(200).send(record);
53
-
54
- } catch (error) {
55
- res.status(500).send(error.message);
56
- console.error(error);
57
- }
58
- });
59
-
60
28
  exports.default = router;
@@ -222,7 +222,7 @@ module.exports = {
222
222
  objectName = filters._id.split('.')[0];
223
223
  }
224
224
  if(objectName){
225
- let fields = await InternalData.getObjectFields(objectName, this.userId);
225
+ let fields = await InternalData.getObjectFields(objectName, this.userId, filters.name ? true : false);
226
226
  if(fields){
227
227
  _.each(fields, (field)=>{
228
228
  this.data.values.push(Object.assign({_id: `${objectName}.${field.name}`}, field))
@@ -254,7 +254,7 @@ module.exports = {
254
254
  objectName = filters._id.split('.')[0];
255
255
  }
256
256
  if(objectName){
257
- let fields = await InternalData.getObjectFields(objectName, this.userId);
257
+ let fields = await InternalData.getObjectFields(objectName, this.userId, true);
258
258
  if(fields){
259
259
  _.each(fields, (field)=>{
260
260
  this.data.values.push(Object.assign({_id: `${objectName}.${field.name}`}, field))
@@ -21,12 +21,19 @@ const getInternalListviews = async function(sourceListviews, filters, is_system)
21
21
 
22
22
  module.exports = {
23
23
  beforeInsert: async function () {
24
+ if (!this.doc.name) {
25
+ this.doc.name = 'listview_' + this.doc._id.toLowerCase();
26
+ }
24
27
  await util.checkAPIName(this.object_name, 'name', this.doc.name, undefined, [['is_system','!=', true], ['object_name','=', this.doc.object_name]]);
25
-
26
28
  },
27
29
  beforeUpdate: async function () {
28
30
  const oldDoc = await objectql.getObject(this.object_name).findOne(this.id)
29
31
  let name = oldDoc.name,object_name = oldDoc.object_name;
32
+
33
+ if (!this.doc.name) {
34
+ this.doc.name = 'listview_' + this.id.toLowerCase();
35
+ }
36
+
30
37
  if(_.has(this.doc, 'name')){
31
38
  name = this.doc.name
32
39
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@steedos/standard-object-database",
3
- "version": "2.5.0-beta.1",
3
+ "version": "2.5.0-beta.3",
4
4
  "main": "package.service.js",
5
5
  "private": false,
6
6
  "publishConfig": {
@@ -15,5 +15,5 @@
15
15
  },
16
16
  "repository": {},
17
17
  "license": "MIT",
18
- "gitHead": "5da093d78baa6f2d7011348060c30671354cc7f0"
18
+ "gitHead": "48546b91b2a44dd6f6673af7f5ab707faff6e07c"
19
19
  }
@@ -1,53 +0,0 @@
1
- name: amis_buttons
2
- amis_schema: |-
3
- {
4
- "type": "service",
5
- "body": [
6
- {
7
- "type": "button",
8
- "label": "重置",
9
- "id": "u:76144dacd93c",
10
- "onEvent": {
11
- "click": {
12
- "actions": [
13
- {
14
- "args": {
15
- "api": {
16
- "url": "${context.rootUrl}/api/listview/${record_id}/amis-schema/reset",
17
- "method": "post",
18
- "headers": {
19
- "Authorization": "Bearer ${context.tenantId},${context.authToken}"
20
- }
21
- },
22
- "messages": {
23
- "success": "Amis Schema重置成功!",
24
- "failed": "Amis Schema重置失败!"
25
- }
26
- },
27
- "actionType": "ajax"
28
- }
29
- ]
30
- }
31
- },
32
- "tooltip": "重置列表视图Amis Schema",
33
- "tooltipPlacement": "top",
34
- "className": ""
35
- }
36
- ],
37
- "regions": [
38
- "body"
39
- ],
40
- "data": {
41
- "context": "${context}"
42
- },
43
- "id": "u:9a37e91e4b8d",
44
- "bodyClassName": "p-0"
45
- }
46
- is_enable: true
47
- label: AmisSchema
48
- 'on': record_only
49
- type: amis_button
50
- visible: !!js/function |
51
- function (object_name, record_id, record_permissions, record) {
52
- return Creator.baseObject.actions.standard_edit.visible() && !record.is_system && record.enable_amis_schema;
53
- }