@steedos/service-pages 2.2.3 → 2.2.4
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/docs/amis.md +53 -0
- package/main/default/applications/app_charts.app.yml +1 -1
- package/main/default/client/builder.client.js +10 -5
- package/main/default/client/page.render.client.js +187 -26
- package/main/default/objects/page_assignments/fields/app.field.yml +6 -0
- package/main/default/objects/page_assignments/fields/desktop.field.yml +5 -0
- package/main/default/objects/page_assignments/fields/is_system.field.yml +6 -0
- package/main/default/objects/page_assignments/fields/mobile.field.yml +5 -0
- package/main/default/objects/page_assignments/fields/page.field.yml +5 -0
- package/main/default/objects/page_assignments/fields/profile.field.yml +8 -0
- package/main/default/objects/page_assignments/fields/record_type.field.yml +4 -0
- package/main/default/objects/page_assignments/listviews/all.listview.yml +15 -0
- package/main/default/objects/page_assignments/listviews/recent.listview.yml +15 -0
- package/main/default/objects/page_assignments/page_assignments.object.yml +20 -0
- package/main/default/objects/page_assignments/permissions/admin.permission.yml +10 -0
- package/main/default/objects/page_assignments/permissions/user.permission.yml +10 -0
- package/main/default/objects/page_versions/fields/is_archived.field.yml +4 -0
- package/main/default/objects/page_versions/fields/page.field.yml +4 -0
- package/main/default/objects/page_versions/fields/schema.field.yml +7 -0
- package/main/default/objects/page_versions/fields/version.field.yml +5 -0
- package/main/default/objects/page_versions/listviews/all.listview.yml +18 -0
- package/main/default/objects/page_versions/listviews/recent.listview.yml +15 -0
- package/main/default/objects/page_versions/page_versions.object.yml +20 -0
- package/main/default/objects/page_versions/permissions/admin.permission.yml +10 -0
- package/main/default/objects/page_versions/permissions/user.permission.yml +10 -0
- package/main/default/objects/pages/fields/is_archived.field.yml +2 -2
- package/main/default/objects/pages/fields/object_name.field.yml +2 -2
- package/main/default/objects/pages/fields/type.field.yml +4 -4
- package/main/default/objects/pages/pages.object.yml +1 -0
- package/main/default/routes/design.html +5 -5
- package/main/default/routes/page_schema.router.js +32 -0
- package/main/default/services/page.service.js +264 -0
- package/main/default/triggers/page_versions.enable.trigger.js +15 -0
- package/main/default/triggers/pages_metadata.trigger.js +12 -47
- package/package.json +2 -2
- package/package.service.js +18 -18
- package/main/default/client/amis.client.js +0 -47
- package/main/default/client/style.client.js +0 -12
- package/main/default/objects/pages/fields/is_default.field.yml +0 -5
- package/public/amis/amis.css +0 -29
- package/public/amis/sdk/sdk.css +0 -48783
- package/public/amis/sdk/sdk.js +0 -3467
package/docs/amis.md
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
## 集成 Amis
|
|
2
|
+
- 集成Amis 设计器
|
|
3
|
+
- 集成Amis 渲染器
|
|
4
|
+
|
|
5
|
+
## 新增对象
|
|
6
|
+
- 新增对象Pages,用于保存 amis schema
|
|
7
|
+
- 详细页面添加按钮:设计器,点击后打开Amis设计器
|
|
8
|
+
- 新增对象Page assignments, 用于记录page分配。
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
## 调整页面渲染引擎
|
|
12
|
+
|
|
13
|
+
- 自定义应用
|
|
14
|
+
|
|
15
|
+
- 列表页面
|
|
16
|
+
|
|
17
|
+
- 详细页面
|
|
18
|
+
|
|
19
|
+
- 表单页面
|
|
20
|
+
|
|
21
|
+
## 将 Steedos React 组件 整合到 Amis
|
|
22
|
+
- 列表组件:
|
|
23
|
+
- 没有react组件:切换列表视图
|
|
24
|
+
- 没有react组件:列表按钮
|
|
25
|
+
- 没有react组件:下载列表数据
|
|
26
|
+
- 没有react组件:自定义列表
|
|
27
|
+
- 没有react组件:过滤器
|
|
28
|
+
- 数据展示:
|
|
29
|
+
- Table
|
|
30
|
+
- Tree Table
|
|
31
|
+
- 记录详细
|
|
32
|
+
- 各种字段类型
|
|
33
|
+
- 相关表
|
|
34
|
+
- 是否显示总数
|
|
35
|
+
- 按钮
|
|
36
|
+
- 快速编辑
|
|
37
|
+
- 相关表快速链接
|
|
38
|
+
- 相关表名称
|
|
39
|
+
- 相关表记录总数
|
|
40
|
+
|
|
41
|
+
## 页面布局设计器(无法使用Amis 实现)
|
|
42
|
+
- 分组
|
|
43
|
+
- 选对象字段
|
|
44
|
+
- 根据对象的定义,将对象的字段转化为Amis的自定义组件,供用户使用。
|
|
45
|
+
- 选对象按钮
|
|
46
|
+
- 选子表
|
|
47
|
+
|
|
48
|
+
## 服务端
|
|
49
|
+
- amis service
|
|
50
|
+
- actions
|
|
51
|
+
- getDefaultSchema(type, app, objectApiName, recordId): 获取默认Schema
|
|
52
|
+
- API:getMeSchema(type, app, objectApiName, recordId): 获取分配的Schema
|
|
53
|
+
- amis的配套接口
|
|
@@ -1,5 +1,10 @@
|
|
|
1
|
-
;(function() {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
}
|
|
1
|
+
// ;(function() {
|
|
2
|
+
// Builder.registryChange.subscribe(function(registry){
|
|
3
|
+
// _.each(registry, function(value, key){
|
|
4
|
+
// _.each(value, function(item){
|
|
5
|
+
// const {component, ...options} = item
|
|
6
|
+
// Builder.registerComponent(component, options)
|
|
7
|
+
// })
|
|
8
|
+
// })
|
|
9
|
+
// })
|
|
10
|
+
// })();
|
|
@@ -1,10 +1,64 @@
|
|
|
1
|
-
Steedos.
|
|
1
|
+
Steedos.Page = {
|
|
2
|
+
App: {},
|
|
3
|
+
Record: {},
|
|
4
|
+
Listview: {},
|
|
5
|
+
RelatedListview: {},
|
|
6
|
+
Form:{
|
|
7
|
+
StandardNew: {},
|
|
8
|
+
StandardEdit: {}
|
|
9
|
+
}
|
|
10
|
+
};
|
|
2
11
|
|
|
3
12
|
function upperFirst(str) {
|
|
4
13
|
return str.toLowerCase().replace(/( |^)[a-z]/g, (L) => L.toUpperCase());
|
|
5
14
|
};
|
|
6
15
|
|
|
7
|
-
Steedos.
|
|
16
|
+
Steedos.Page.getPage = function(type, appId, objectApiName, recordId){
|
|
17
|
+
if(objectApiName){
|
|
18
|
+
const objectInfo = Creator.getObject(Session.get("object_name"));
|
|
19
|
+
if(objectInfo.version < 2){
|
|
20
|
+
return ;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
const formFactor = Steedos.isMobile() ? "SMALL" : "LARGE";
|
|
24
|
+
const page = Steedos.authRequest(`/api/pageSchema/${type}?app=${appId}&objectApiName=${objectApiName}&recordId=${recordId}&formFactor=${formFactor}`, {async:false});
|
|
25
|
+
if(page && page.schema){
|
|
26
|
+
return page;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
Steedos.Page.render = function (root, page, data) {
|
|
31
|
+
console.log(`render======>data`, data)
|
|
32
|
+
if (page.render_engine && page.render_engine != 'redash') {
|
|
33
|
+
return SteedosUI.render(BuilderComponent, {
|
|
34
|
+
model: "page", content: {
|
|
35
|
+
"data": {
|
|
36
|
+
"blocks": [
|
|
37
|
+
{
|
|
38
|
+
"@type": "@builder.io/sdk:Element",
|
|
39
|
+
"@version": 2,
|
|
40
|
+
"id": `builder-${page._id}`,
|
|
41
|
+
"component": {
|
|
42
|
+
"name": upperFirst(page.render_engine),
|
|
43
|
+
"options": {
|
|
44
|
+
"schema": typeof page.schema === 'string' ? JSON.parse(page.schema) : page.schema,
|
|
45
|
+
"data": Object.assign({}, data,{
|
|
46
|
+
rootUrl: __meteor_runtime_config__.ROOT_URL,
|
|
47
|
+
userSession: Creator.USER_CONTEXT.user
|
|
48
|
+
})
|
|
49
|
+
}
|
|
50
|
+
},
|
|
51
|
+
}
|
|
52
|
+
],
|
|
53
|
+
"inputs": [
|
|
54
|
+
]
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}, root);
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
Steedos.Page.App.render = function (template, pageName, app_id) {
|
|
8
62
|
if(!pageName){
|
|
9
63
|
return ;
|
|
10
64
|
}
|
|
@@ -19,34 +73,141 @@ Steedos.Pages.Render = function (pageName) {
|
|
|
19
73
|
$(".page-template-root")[0].appendChild(modalRoot);
|
|
20
74
|
}
|
|
21
75
|
|
|
22
|
-
const
|
|
23
|
-
if(
|
|
24
|
-
const page = pages[0];
|
|
76
|
+
const page = Steedos.Page.getPage('app', app_id);
|
|
77
|
+
if(page){
|
|
25
78
|
if(page.render_engine && page.render_engine != 'redash'){
|
|
26
|
-
return
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
{
|
|
30
|
-
"@type":"@builder.io/sdk:Element",
|
|
31
|
-
"@version":2,
|
|
32
|
-
"id":"builder-2b290abc4e4042498645863f53ee6815",
|
|
33
|
-
"component":{
|
|
34
|
-
"name": upperFirst(page.render_engine), //_.upperFirst
|
|
35
|
-
"options":{
|
|
36
|
-
"schema": typeof page.schema === 'string' ? JSON.parse(page.schema) : page.schema
|
|
37
|
-
}
|
|
38
|
-
},
|
|
39
|
-
}
|
|
40
|
-
],
|
|
41
|
-
"inputs":[
|
|
42
|
-
|
|
43
|
-
]
|
|
44
|
-
}
|
|
45
|
-
}}, $("#" + rootId)[0]);
|
|
79
|
+
return Steedos.Page.render($("#" + rootId)[0], page, {
|
|
80
|
+
appId: app_id
|
|
81
|
+
});
|
|
46
82
|
}
|
|
47
83
|
}
|
|
48
84
|
|
|
49
85
|
SteedosUI.render(stores.ComponentRegistry.components.PublicPage, {
|
|
50
86
|
token: pageName
|
|
51
87
|
}, $("#" + rootId)[0]);
|
|
52
|
-
};
|
|
88
|
+
};
|
|
89
|
+
|
|
90
|
+
Steedos.Page.Listview.render = function(template, objectApiName){
|
|
91
|
+
try {
|
|
92
|
+
if(!template.data.regions || !objectApiName){
|
|
93
|
+
return ;
|
|
94
|
+
}
|
|
95
|
+
const page = template.data.regions().page;
|
|
96
|
+
|
|
97
|
+
var rootId = "steedosPageRecordRoot";
|
|
98
|
+
var modalRoot = document.getElementById(rootId);
|
|
99
|
+
// if(modalRoot){
|
|
100
|
+
// modalRoot.remove();
|
|
101
|
+
// }
|
|
102
|
+
if (!modalRoot) {
|
|
103
|
+
modalRoot = document.createElement('div');
|
|
104
|
+
modalRoot.setAttribute('id', rootId);
|
|
105
|
+
$(".page-list-view-root")[0].appendChild(modalRoot);
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
if(page.render_engine && page.render_engine != 'redash'){
|
|
109
|
+
return Steedos.Page.render($("#" + rootId)[0], page, template.data.regions());
|
|
110
|
+
}
|
|
111
|
+
} catch (error) {
|
|
112
|
+
|
|
113
|
+
}
|
|
114
|
+
};
|
|
115
|
+
|
|
116
|
+
Steedos.Page.Record.render = function(template, objectApiName, recordId){
|
|
117
|
+
try {
|
|
118
|
+
if(!template.data.regions || !objectApiName || !recordId){
|
|
119
|
+
return ;
|
|
120
|
+
}
|
|
121
|
+
console.log(`Steedos.Page.Record.render...`, template.data.regions(), objectApiName, recordId);
|
|
122
|
+
const page = template.data.regions().page;
|
|
123
|
+
|
|
124
|
+
var rootId = "steedosPageRecordRoot";
|
|
125
|
+
var modalRoot = document.getElementById(rootId);
|
|
126
|
+
// if(modalRoot){
|
|
127
|
+
// modalRoot.remove();
|
|
128
|
+
// }
|
|
129
|
+
if (!modalRoot) {
|
|
130
|
+
modalRoot = document.createElement('div');
|
|
131
|
+
modalRoot.setAttribute('id', rootId);
|
|
132
|
+
$(".page-record-view-root")[0].appendChild(modalRoot);
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
if(page.render_engine && page.render_engine != 'redash'){
|
|
136
|
+
return Steedos.Page.render($("#" + rootId)[0], page, template.data.regions());
|
|
137
|
+
}
|
|
138
|
+
} catch (error) {
|
|
139
|
+
|
|
140
|
+
}
|
|
141
|
+
};
|
|
142
|
+
|
|
143
|
+
Steedos.Page.RelatedListview.render = function(template, objectApiName){
|
|
144
|
+
try {
|
|
145
|
+
if(!template.data.regions || !objectApiName){
|
|
146
|
+
return ;
|
|
147
|
+
}
|
|
148
|
+
const page = template.data.regions().page;
|
|
149
|
+
|
|
150
|
+
var rootId = "steedosPageRecordRoot";
|
|
151
|
+
var modalRoot = document.getElementById(rootId);
|
|
152
|
+
// if(modalRoot){
|
|
153
|
+
// modalRoot.remove();
|
|
154
|
+
// }
|
|
155
|
+
if (!modalRoot) {
|
|
156
|
+
modalRoot = document.createElement('div');
|
|
157
|
+
modalRoot.setAttribute('id', rootId);
|
|
158
|
+
$(".page-related-list-view-root")[0].appendChild(modalRoot);
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
if(page.render_engine && page.render_engine != 'redash'){
|
|
162
|
+
return Steedos.Page.render($("#" + rootId)[0], page, template.data.regions());
|
|
163
|
+
}
|
|
164
|
+
} catch (error) {
|
|
165
|
+
|
|
166
|
+
}
|
|
167
|
+
};
|
|
168
|
+
|
|
169
|
+
Steedos.Page.Form.StandardNew.render = function(appId, objectApiName, tilte, initialValues){
|
|
170
|
+
SteedosUI.showModal(stores.ComponentRegistry.components.ObjectForm, {
|
|
171
|
+
name: `${objectApiName}_standard_new_form`,
|
|
172
|
+
objectApiName: objectApiName,
|
|
173
|
+
title: tilte,
|
|
174
|
+
initialValues: initialValues,
|
|
175
|
+
afterInsert: function(result){
|
|
176
|
+
if(result.length > 0){
|
|
177
|
+
var record = result[0];
|
|
178
|
+
setTimeout(function(){
|
|
179
|
+
var url = `/app/${appId}/${objectApiName}/view/${record._id}`
|
|
180
|
+
FlowRouter.go(url)
|
|
181
|
+
}
|
|
182
|
+
, 1);
|
|
183
|
+
return true;
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
}, null, {iconPath: '/assets/icons'});
|
|
187
|
+
};
|
|
188
|
+
|
|
189
|
+
Steedos.Page.Form.StandardEdit.render = function(appId, objectApiName, tilte, recordId){
|
|
190
|
+
return SteedosUI.showModal(stores.ComponentRegistry.components.ObjectForm, {
|
|
191
|
+
name: `${objectApiName}_standard_edit_form`,
|
|
192
|
+
objectApiName: objectApiName,
|
|
193
|
+
recordId: recordId,
|
|
194
|
+
title: tilte,
|
|
195
|
+
afterUpdate: function(){
|
|
196
|
+
setTimeout(function(){
|
|
197
|
+
if(FlowRouter.current().route.path.endsWith("/:record_id")){
|
|
198
|
+
FlowRouter.reload()
|
|
199
|
+
// ObjectForm有缓存,修改子表记录可能会有主表记录的汇总字段变更,需要刷新表单数据
|
|
200
|
+
SteedosUI.reloadRecord(objectApiName, recordId)
|
|
201
|
+
}else{
|
|
202
|
+
window.refreshDxSchedulerInstance()
|
|
203
|
+
window.refreshGrid();
|
|
204
|
+
}
|
|
205
|
+
}, 1);
|
|
206
|
+
return true;
|
|
207
|
+
}
|
|
208
|
+
}, null, {iconPath: '/assets/icons'})
|
|
209
|
+
};
|
|
210
|
+
|
|
211
|
+
// Steedos.Page.Form.StandardDelete.render = function(){
|
|
212
|
+
|
|
213
|
+
// };
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
name: all
|
|
2
|
+
columns:
|
|
3
|
+
- field: app
|
|
4
|
+
- field: profile
|
|
5
|
+
- field: record_type
|
|
6
|
+
- field: mobile
|
|
7
|
+
- field: desktop
|
|
8
|
+
- field: is_system
|
|
9
|
+
filter_scope: space
|
|
10
|
+
filters: []
|
|
11
|
+
label: 所有
|
|
12
|
+
scrolling_mode: standard
|
|
13
|
+
shared: true
|
|
14
|
+
sort_no: 100
|
|
15
|
+
type: grid
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
name: recent
|
|
2
|
+
columns:
|
|
3
|
+
- field: app
|
|
4
|
+
- field: profile
|
|
5
|
+
- field: record_type
|
|
6
|
+
- field: mobile
|
|
7
|
+
- field: desktop
|
|
8
|
+
- field: is_system
|
|
9
|
+
filter_scope: space
|
|
10
|
+
filters: []
|
|
11
|
+
label: 最近查看
|
|
12
|
+
scrolling_mode: standard
|
|
13
|
+
shared: true
|
|
14
|
+
sort_no: 100
|
|
15
|
+
type: grid
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
name: page_assignments
|
|
2
|
+
label: 页面分配
|
|
3
|
+
custom: true
|
|
4
|
+
enable_api: true
|
|
5
|
+
enable_audit: false
|
|
6
|
+
enable_chatter: false
|
|
7
|
+
enable_enhanced_lookup: false
|
|
8
|
+
enable_events: false
|
|
9
|
+
enable_files: false
|
|
10
|
+
enable_inline_edit: true
|
|
11
|
+
enable_instances: false
|
|
12
|
+
enable_notes: false
|
|
13
|
+
enable_search: false
|
|
14
|
+
enable_share: false
|
|
15
|
+
enable_tasks: false
|
|
16
|
+
enable_workflow: false
|
|
17
|
+
hidden: true
|
|
18
|
+
icon: contract
|
|
19
|
+
is_enable: true
|
|
20
|
+
version: 2
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
name: all
|
|
2
|
+
columns:
|
|
3
|
+
- field: page
|
|
4
|
+
- field: version
|
|
5
|
+
- field: is_archived
|
|
6
|
+
- field: created
|
|
7
|
+
- field: modified
|
|
8
|
+
- field: is_system
|
|
9
|
+
filter_scope: space
|
|
10
|
+
filters: []
|
|
11
|
+
label: 所有
|
|
12
|
+
scrolling_mode: standard
|
|
13
|
+
shared: true
|
|
14
|
+
sort_no: 100
|
|
15
|
+
type: grid
|
|
16
|
+
sort:
|
|
17
|
+
- field_name: 'version'
|
|
18
|
+
order: desc
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
name: recent
|
|
2
|
+
columns:
|
|
3
|
+
- field: page
|
|
4
|
+
- field: version
|
|
5
|
+
- field: is_archived
|
|
6
|
+
- field: created
|
|
7
|
+
- field: modified
|
|
8
|
+
- field: is_system
|
|
9
|
+
filter_scope: space
|
|
10
|
+
filters: []
|
|
11
|
+
label: 最近查看
|
|
12
|
+
scrolling_mode: standard
|
|
13
|
+
shared: true
|
|
14
|
+
sort_no: 100
|
|
15
|
+
type: grid
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
name: page_versions
|
|
2
|
+
label: 页面版本
|
|
3
|
+
custom: true
|
|
4
|
+
enable_api: true
|
|
5
|
+
enable_audit: false
|
|
6
|
+
enable_chatter: false
|
|
7
|
+
enable_enhanced_lookup: false
|
|
8
|
+
enable_events: false
|
|
9
|
+
enable_files: false
|
|
10
|
+
enable_inline_edit: true
|
|
11
|
+
enable_instances: false
|
|
12
|
+
enable_notes: false
|
|
13
|
+
enable_search: false
|
|
14
|
+
enable_share: false
|
|
15
|
+
enable_tasks: false
|
|
16
|
+
enable_workflow: false
|
|
17
|
+
hidden: false
|
|
18
|
+
icon: contract
|
|
19
|
+
is_enable: true
|
|
20
|
+
version: 2
|
|
@@ -9,5 +9,5 @@ optionsFunction: !!js/function |
|
|
|
9
9
|
return Steedos.getObjectsOptions()
|
|
10
10
|
}
|
|
11
11
|
filterable: true
|
|
12
|
-
required: "{{'record' == formData.type
|
|
13
|
-
visible_on: "{{'record' == formData.type
|
|
12
|
+
required: "{{'record' == formData.type || 'list' == formData.type || 'form' == formData.type ? true: false}}"
|
|
13
|
+
visible_on: "{{'record' == formData.type || 'list' == formData.type || 'form' == formData.type ? true: false}}"
|
|
@@ -4,13 +4,13 @@ type: select
|
|
|
4
4
|
defaultValue: app
|
|
5
5
|
required: true
|
|
6
6
|
options:
|
|
7
|
-
- label:
|
|
7
|
+
- label: 自定义应用
|
|
8
8
|
value: app
|
|
9
|
-
- label:
|
|
9
|
+
- label: 详细页面
|
|
10
10
|
value: record
|
|
11
|
-
- label:
|
|
11
|
+
- label: 列表页面
|
|
12
12
|
value: list
|
|
13
|
-
- label:
|
|
13
|
+
- label: 表单
|
|
14
14
|
value: form
|
|
15
15
|
sort_no: 130
|
|
16
16
|
visible_on: "{{'redash' != formData.render_engine ? true: false}}"
|
|
@@ -21,6 +21,7 @@ version: 2
|
|
|
21
21
|
form:
|
|
22
22
|
afterView: !!js/function |
|
|
23
23
|
function(){
|
|
24
|
+
console.log(`afterView`, this.doc)
|
|
24
25
|
if(this.doc.name && (this.doc.render_engine === 'redash' || !this.doc.render_engine)){
|
|
25
26
|
SteedosUI.render(stores.ComponentRegistry.components.Page, { pageId: this.doc.name }, $(".slds-template__container")[0])
|
|
26
27
|
}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
<script src="https://builder.steedos.com/js/builder-fiddle/builder-fiddle.umd.js"></script>
|
|
6
6
|
</head>
|
|
7
7
|
|
|
8
|
-
<body>
|
|
8
|
+
<body style="margin: 0;padding: 0;">
|
|
9
9
|
|
|
10
10
|
<builder-fiddle host="https://builder.steedos.com/amis"></builder-fiddle>
|
|
11
11
|
|
|
@@ -13,7 +13,9 @@
|
|
|
13
13
|
let comp = document.querySelector('builder-fiddle')
|
|
14
14
|
var params = new URLSearchParams(location.search);
|
|
15
15
|
var pageId = params.get("pageId");
|
|
16
|
-
|
|
16
|
+
// /pageVersion/:pageId/latest
|
|
17
|
+
|
|
18
|
+
axios.get(`/service/api/page/pageVersion/${params.get("pageId")}/latest/`).then(function (response) {
|
|
17
19
|
let schema = response.data.schema;
|
|
18
20
|
if (typeof schema === "string") {
|
|
19
21
|
schema = JSON.parse(schema)
|
|
@@ -34,7 +36,7 @@
|
|
|
34
36
|
const { data } = event;
|
|
35
37
|
if (data) {
|
|
36
38
|
if (data.type === 'builder.saveContent') {
|
|
37
|
-
axios.put(
|
|
39
|
+
axios.put(`/service/api/page/pageVersion/${params.get("pageId")}`, {
|
|
38
40
|
schema: JSON.stringify(data.data.AmisSchema) //直接存储json格式会导致react form异常。
|
|
39
41
|
}).then(function (response) {
|
|
40
42
|
window.postMessage(
|
|
@@ -55,8 +57,6 @@
|
|
|
55
57
|
|
|
56
58
|
window.addEventListener('message', onWindowMessage);
|
|
57
59
|
|
|
58
|
-
|
|
59
|
-
|
|
60
60
|
</script>
|
|
61
61
|
</body>
|
|
62
62
|
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
const express = require("express");
|
|
2
|
+
const router = express.Router();
|
|
3
|
+
const objectql = require('@steedos/objectql');
|
|
4
|
+
const core = require('@steedos/core');
|
|
5
|
+
|
|
6
|
+
router.get('/api/pageSchema/:type', core.requireAuthentication, async function (req, res) {
|
|
7
|
+
try {
|
|
8
|
+
|
|
9
|
+
const userSession = req.user;
|
|
10
|
+
|
|
11
|
+
const { app, objectApiName, recordId, formFactor} = req.query;
|
|
12
|
+
const { type } = req.params;
|
|
13
|
+
|
|
14
|
+
const pageSchema = await objectql.getSteedosSchema().broker.call(`page.getMeSchema`, {
|
|
15
|
+
type,
|
|
16
|
+
app,
|
|
17
|
+
objectApiName,
|
|
18
|
+
recordId,
|
|
19
|
+
formFactor
|
|
20
|
+
}, {
|
|
21
|
+
meta: {
|
|
22
|
+
user: userSession
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
|
|
26
|
+
res.send(pageSchema || {});
|
|
27
|
+
} catch (error) {
|
|
28
|
+
res.status(500).send({ message: error.message });
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
});
|
|
32
|
+
exports.default = router;
|