@steedos/service-pages 2.2.4 → 2.2.7
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//350/207/252/345/256/232/344/271/211form/347/273/204/344/273/266.md +39 -0
- package/main/default/client/builder.client.js +11 -10
- package/main/default/client/onWindowMessage.client.js +39 -0
- package/main/default/client/page.render.client.js +101 -58
- package/main/default/objects/page_assignments/fields/app.field.yml +2 -0
- package/main/default/objects/page_assignments/fields/desktop.field.yml +1 -1
- package/main/default/objects/page_assignments/fields/mobile.field.yml +1 -1
- package/main/default/objects/page_assignments/permissions/user.permission.yml +2 -2
- package/main/default/objects/page_versions/buttons/standard_delete.button.js +5 -0
- package/main/default/objects/page_versions/buttons/standard_delete.button.yml +4 -0
- package/main/default/objects/page_versions/buttons/standard_delete_many.button.js +5 -0
- package/main/default/objects/page_versions/buttons/standard_delete_many.button.yml +4 -0
- package/main/default/objects/page_versions/buttons/standard_new.button.js +5 -0
- package/main/default/objects/page_versions/buttons/standard_new.button.yml +5 -0
- package/main/default/objects/page_versions/fields/is_active.field.yml +4 -0
- package/main/default/objects/page_versions/fields/page.field.yml +2 -1
- package/main/default/objects/page_versions/fields/schema.field.yml +2 -2
- package/main/default/objects/page_versions/fields/version.field.yml +2 -1
- package/main/default/objects/page_versions/listviews/all.listview.yml +1 -1
- package/main/default/objects/page_versions/listviews/recent.listview.yml +1 -1
- package/main/default/objects/page_versions/permissions/admin.permission.yml +1 -1
- package/main/default/objects/page_versions/permissions/user.permission.yml +2 -2
- package/main/default/objects/pages/fields/is_active.field.yml +5 -0
- package/main/default/objects/pages/fields/is_archived.field.yml +2 -2
- package/main/default/objects/pages/fields/type.field.yml +2 -2
- package/main/default/objects/pages/listviews/all.listview.yml +1 -0
- package/main/default/objects/pages/listviews/recent.listview.yml +1 -0
- package/main/default/objects/pages/pages.object.yml +5 -2
- package/main/default/objects/pages/permissions/user.permission.yml +2 -2
- package/main/default/routes/design.html +10 -1
- package/main/default/routes/page_design.router.js +10 -1
- package/main/default/routes/page_schema.router.js +2 -1
- package/main/default/services/page.service.js +32 -15
- package/main/default/triggers/page_assignments_check.trigger.js +23 -0
- package/main/default/triggers/page_versions_check.trigger.js +21 -0
- package/main/default/triggers/pages_check.trigger.js +30 -0
- package/package.json +2 -2
- package/docs/amis.md +0 -53
- package/main/default/objects/page_versions/fields/is_archived.field.yml +0 -4
- package/public/builder.io/react/dist/builder-react.browser.js +0 -21
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
## 自定义Form组件(新增、编辑)
|
|
2
|
+
|
|
3
|
+
- Form 组件需要自带弹出层
|
|
4
|
+
- Form 组件内部处理数据接口问题
|
|
5
|
+
|
|
6
|
+
### 渲染Form组件时, 传入的data为
|
|
7
|
+
```
|
|
8
|
+
data: {
|
|
9
|
+
appId: appId,
|
|
10
|
+
objectName: objectName,
|
|
11
|
+
recordId: record._id // 新增时为null
|
|
12
|
+
title: title,
|
|
13
|
+
initialValues: initialValues,
|
|
14
|
+
|
|
15
|
+
context: {
|
|
16
|
+
rootUrl: ROOT URL,
|
|
17
|
+
tenantId: 魔方Id,
|
|
18
|
+
userId: 用户Id,
|
|
19
|
+
authToken: 用户认证authToken
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
### Form组件数据处理完后,需要发出消息:
|
|
25
|
+
|
|
26
|
+
- 新增记录事件
|
|
27
|
+
```
|
|
28
|
+
window.postMessage(Object.assign({type: "record.created"}, data, {record: record}), "*")
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
- 编辑记录事件
|
|
32
|
+
```
|
|
33
|
+
window.postMessage(Object.assign({type: "record.edited"}, data, {record: record}), "*")
|
|
34
|
+
```
|
|
35
|
+
### Platform 消费record.created、record.edited 消息
|
|
36
|
+
|
|
37
|
+
- record.created: 新建的对象名称等于当前对象名称, 则进入详细页面, 否则更新当前route
|
|
38
|
+
|
|
39
|
+
- record.edited: 更新当前页面
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
1
|
+
;(function() {
|
|
2
|
+
try {
|
|
3
|
+
var hm = document.createElement("script");
|
|
4
|
+
hm.src = "/requirejs/require.js";
|
|
5
|
+
var s = document.getElementsByTagName("script")[0];
|
|
6
|
+
s.parentNode.insertBefore(hm, s);
|
|
7
|
+
} catch (error) {
|
|
8
|
+
console.log(error);
|
|
9
|
+
}
|
|
10
|
+
})();
|
|
11
|
+
Builder.set({rootUrl: __meteor_runtime_config__.ROOT_URL})
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* @Author: steedos
|
|
3
|
+
* @Date: 2022-03-24 14:39:44
|
|
4
|
+
* @Description: 监听window message , 主要处理新增、编辑记录后的路由处理.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
const listenerMessageType = ['record.created', 'record.edited'];
|
|
8
|
+
|
|
9
|
+
window.addEventListener('message', function (event) {
|
|
10
|
+
const { data } = event;
|
|
11
|
+
if (data && listenerMessageType.includes(data.type)) {
|
|
12
|
+
const {objectName, record} = data;
|
|
13
|
+
const {app_id: appId, object_name: routeObjectName} = FlowRouter.current().params;
|
|
14
|
+
|
|
15
|
+
switch (data.type) {
|
|
16
|
+
case 'record.created':
|
|
17
|
+
if(objectName === routeObjectName){
|
|
18
|
+
var url = `/app/${appId}/${objectName}/view/${record._id}`
|
|
19
|
+
FlowRouter.go(url)
|
|
20
|
+
}else{
|
|
21
|
+
FlowRouter.current()
|
|
22
|
+
}
|
|
23
|
+
break;
|
|
24
|
+
case 'record.edited':
|
|
25
|
+
if (FlowRouter.current().route.path.endsWith("/:record_id")) {
|
|
26
|
+
FlowRouter.reload()
|
|
27
|
+
// ObjectForm有缓存,修改子表记录可能会有主表记录的汇总字段变更,需要刷新表单数据
|
|
28
|
+
SteedosUI.reloadRecord(objectName, record._id)
|
|
29
|
+
} else {
|
|
30
|
+
window.refreshDxSchedulerInstance()
|
|
31
|
+
window.refreshGrid();
|
|
32
|
+
}
|
|
33
|
+
break;
|
|
34
|
+
default:
|
|
35
|
+
break;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
}
|
|
39
|
+
});
|
|
@@ -1,36 +1,52 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* @Author: steedos
|
|
3
|
+
* @Date: 2022-03-22 19:13:57
|
|
4
|
+
* @Description: 提供自定义page渲染能力, 供内部使用, 内容会迭代调整, 不对用户开放.
|
|
5
|
+
*/
|
|
6
|
+
|
|
1
7
|
Steedos.Page = {
|
|
2
8
|
App: {},
|
|
3
9
|
Record: {},
|
|
4
10
|
Listview: {},
|
|
5
11
|
RelatedListview: {},
|
|
6
|
-
Form:{
|
|
12
|
+
Form: {
|
|
7
13
|
StandardNew: {},
|
|
8
14
|
StandardEdit: {}
|
|
9
15
|
}
|
|
10
16
|
};
|
|
11
17
|
|
|
12
18
|
function upperFirst(str) {
|
|
13
|
-
|
|
19
|
+
return str.toLowerCase().replace(/( |^)[a-z]/g, (L) => L.toUpperCase());
|
|
14
20
|
};
|
|
15
21
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
22
|
+
function getModalElement(name){
|
|
23
|
+
let modalRoot = document.getElementById(`steedos-page-modal-root-${name}`);
|
|
24
|
+
if (!modalRoot) {
|
|
25
|
+
modalRoot = document.createElement('div');
|
|
26
|
+
modalRoot.setAttribute('id', `steedos-page-modal-root-${name}`);
|
|
27
|
+
document.body.appendChild(modalRoot)
|
|
28
|
+
}
|
|
29
|
+
return modalRoot;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
Steedos.Page.getPage = function (type, appId, objectApiName, recordId, pageId) {
|
|
34
|
+
if (type != 'list' && objectApiName) {
|
|
35
|
+
const objectInfo = Creator.getObject(objectApiName);
|
|
36
|
+
if (objectInfo && objectInfo.version < 2) {
|
|
37
|
+
return;
|
|
21
38
|
}
|
|
22
39
|
}
|
|
23
40
|
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){
|
|
41
|
+
const page = Steedos.authRequest(`/api/pageSchema/${type}?app=${appId}&objectApiName=${objectApiName}&recordId=${recordId}&pageId=${pageId}&formFactor=${formFactor}`, { async: false });
|
|
42
|
+
if (page && page.schema) {
|
|
26
43
|
return page;
|
|
27
44
|
}
|
|
28
45
|
}
|
|
29
46
|
|
|
30
47
|
Steedos.Page.render = function (root, page, data) {
|
|
31
|
-
console.log(`render======>data`, data)
|
|
32
48
|
if (page.render_engine && page.render_engine != 'redash') {
|
|
33
|
-
|
|
49
|
+
const options = {
|
|
34
50
|
model: "page", content: {
|
|
35
51
|
"data": {
|
|
36
52
|
"blocks": [
|
|
@@ -42,10 +58,14 @@ Steedos.Page.render = function (root, page, data) {
|
|
|
42
58
|
"name": upperFirst(page.render_engine),
|
|
43
59
|
"options": {
|
|
44
60
|
"schema": typeof page.schema === 'string' ? JSON.parse(page.schema) : page.schema,
|
|
45
|
-
"data": Object.assign({}, data,{
|
|
61
|
+
"data": Object.assign({}, data, {
|
|
62
|
+
context: {
|
|
46
63
|
rootUrl: __meteor_runtime_config__.ROOT_URL,
|
|
47
|
-
|
|
48
|
-
|
|
64
|
+
tenantId: Creator.USER_CONTEXT.spaceId,
|
|
65
|
+
userId: Creator.USER_CONTEXT.userId,
|
|
66
|
+
authToken: Creator.USER_CONTEXT.user.authToken
|
|
67
|
+
}
|
|
68
|
+
})
|
|
49
69
|
}
|
|
50
70
|
},
|
|
51
71
|
}
|
|
@@ -54,13 +74,15 @@ Steedos.Page.render = function (root, page, data) {
|
|
|
54
74
|
]
|
|
55
75
|
}
|
|
56
76
|
}
|
|
57
|
-
}
|
|
77
|
+
};
|
|
78
|
+
console.debug('render data', options)
|
|
79
|
+
return SteedosUI.render(BuilderComponent, options, root);
|
|
58
80
|
}
|
|
59
81
|
};
|
|
60
82
|
|
|
61
83
|
Steedos.Page.App.render = function (template, pageName, app_id) {
|
|
62
|
-
if(!pageName){
|
|
63
|
-
return
|
|
84
|
+
if (!pageName) {
|
|
85
|
+
return;
|
|
64
86
|
}
|
|
65
87
|
var rootId = "steedosPageRoot";
|
|
66
88
|
var modalRoot = document.getElementById(rootId);
|
|
@@ -73,9 +95,9 @@ Steedos.Page.App.render = function (template, pageName, app_id) {
|
|
|
73
95
|
$(".page-template-root")[0].appendChild(modalRoot);
|
|
74
96
|
}
|
|
75
97
|
|
|
76
|
-
const page = Steedos.Page.getPage('app', app_id);
|
|
77
|
-
if(page){
|
|
78
|
-
if(page.render_engine && page.render_engine != 'redash'){
|
|
98
|
+
const page = Steedos.Page.getPage('app', app_id, null, null, pageName);
|
|
99
|
+
if (page) {
|
|
100
|
+
if (page.render_engine && page.render_engine != 'redash') {
|
|
79
101
|
return Steedos.Page.render($("#" + rootId)[0], page, {
|
|
80
102
|
appId: app_id
|
|
81
103
|
});
|
|
@@ -87,12 +109,12 @@ Steedos.Page.App.render = function (template, pageName, app_id) {
|
|
|
87
109
|
}, $("#" + rootId)[0]);
|
|
88
110
|
};
|
|
89
111
|
|
|
90
|
-
Steedos.Page.Listview.render = function(template, objectApiName){
|
|
112
|
+
Steedos.Page.Listview.render = function (template, objectApiName) {
|
|
91
113
|
try {
|
|
92
|
-
if(!template.data.regions || !objectApiName){
|
|
93
|
-
return
|
|
114
|
+
if (!template.data.regions || !objectApiName) {
|
|
115
|
+
return;
|
|
94
116
|
}
|
|
95
|
-
const page = template.data.regions()
|
|
117
|
+
const { page, ...data } = template.data.regions();
|
|
96
118
|
|
|
97
119
|
var rootId = "steedosPageRecordRoot";
|
|
98
120
|
var modalRoot = document.getElementById(rootId);
|
|
@@ -105,22 +127,20 @@ Steedos.Page.Listview.render = function(template, objectApiName){
|
|
|
105
127
|
$(".page-list-view-root")[0].appendChild(modalRoot);
|
|
106
128
|
}
|
|
107
129
|
|
|
108
|
-
if(page.render_engine && page.render_engine != 'redash'){
|
|
109
|
-
return Steedos.Page.render($("#" + rootId)[0], page,
|
|
130
|
+
if (page.render_engine && page.render_engine != 'redash') {
|
|
131
|
+
return Steedos.Page.render($("#" + rootId)[0], page, data);
|
|
110
132
|
}
|
|
111
133
|
} catch (error) {
|
|
112
|
-
|
|
134
|
+
|
|
113
135
|
}
|
|
114
136
|
};
|
|
115
137
|
|
|
116
|
-
Steedos.Page.Record.render = function(template, objectApiName, recordId){
|
|
138
|
+
Steedos.Page.Record.render = function (template, objectApiName, recordId) {
|
|
117
139
|
try {
|
|
118
|
-
if(!template.data.regions || !objectApiName || !recordId){
|
|
119
|
-
return
|
|
140
|
+
if (!template.data.regions || !objectApiName || !recordId) {
|
|
141
|
+
return;
|
|
120
142
|
}
|
|
121
|
-
|
|
122
|
-
const page = template.data.regions().page;
|
|
123
|
-
|
|
143
|
+
const { page, ...data } = template.data.regions();
|
|
124
144
|
var rootId = "steedosPageRecordRoot";
|
|
125
145
|
var modalRoot = document.getElementById(rootId);
|
|
126
146
|
// if(modalRoot){
|
|
@@ -132,20 +152,20 @@ Steedos.Page.Record.render = function(template, objectApiName, recordId){
|
|
|
132
152
|
$(".page-record-view-root")[0].appendChild(modalRoot);
|
|
133
153
|
}
|
|
134
154
|
|
|
135
|
-
if(page.render_engine && page.render_engine != 'redash'){
|
|
136
|
-
return Steedos.Page.render($("#" + rootId)[0], page,
|
|
155
|
+
if (page.render_engine && page.render_engine != 'redash') {
|
|
156
|
+
return Steedos.Page.render($("#" + rootId)[0], page, data);
|
|
137
157
|
}
|
|
138
158
|
} catch (error) {
|
|
139
|
-
|
|
159
|
+
|
|
140
160
|
}
|
|
141
161
|
};
|
|
142
162
|
|
|
143
|
-
Steedos.Page.RelatedListview.render = function(template, objectApiName){
|
|
163
|
+
Steedos.Page.RelatedListview.render = function (template, objectApiName) {
|
|
144
164
|
try {
|
|
145
|
-
if(!template.data.regions || !objectApiName){
|
|
146
|
-
return
|
|
165
|
+
if (!template.data.regions || !objectApiName) {
|
|
166
|
+
return;
|
|
147
167
|
}
|
|
148
|
-
const page = template.data.regions()
|
|
168
|
+
const { page, ...data } = template.data.regions();
|
|
149
169
|
|
|
150
170
|
var rootId = "steedosPageRecordRoot";
|
|
151
171
|
var modalRoot = document.getElementById(rootId);
|
|
@@ -158,54 +178,77 @@ Steedos.Page.RelatedListview.render = function(template, objectApiName){
|
|
|
158
178
|
$(".page-related-list-view-root")[0].appendChild(modalRoot);
|
|
159
179
|
}
|
|
160
180
|
|
|
161
|
-
if(page.render_engine && page.render_engine != 'redash'){
|
|
162
|
-
return Steedos.Page.render($("#" + rootId)[0], page,
|
|
181
|
+
if (page.render_engine && page.render_engine != 'redash') {
|
|
182
|
+
return Steedos.Page.render($("#" + rootId)[0], page, data);
|
|
163
183
|
}
|
|
164
184
|
} catch (error) {
|
|
165
|
-
|
|
185
|
+
|
|
166
186
|
}
|
|
167
187
|
};
|
|
168
188
|
|
|
169
|
-
Steedos.Page.Form.StandardNew.render = function(appId, objectApiName,
|
|
189
|
+
Steedos.Page.Form.StandardNew.render = function (appId, objectApiName, title, initialValues) {
|
|
190
|
+
const page = Steedos.Page.getPage('form', appId, objectApiName);
|
|
191
|
+
if (page && page.schema) {
|
|
192
|
+
const elementId = getModalElement(`${objectApiName}-standard_new`);
|
|
193
|
+
return Steedos.Page.render(elementId, page, {
|
|
194
|
+
appId: appId,
|
|
195
|
+
objectName: objectApiName,
|
|
196
|
+
title: title,
|
|
197
|
+
initialValues: initialValues
|
|
198
|
+
});
|
|
199
|
+
}
|
|
200
|
+
|
|
170
201
|
SteedosUI.showModal(stores.ComponentRegistry.components.ObjectForm, {
|
|
171
202
|
name: `${objectApiName}_standard_new_form`,
|
|
172
203
|
objectApiName: objectApiName,
|
|
173
|
-
title:
|
|
204
|
+
title: title,
|
|
174
205
|
initialValues: initialValues,
|
|
175
|
-
afterInsert: function(result){
|
|
176
|
-
if(result.length > 0){
|
|
206
|
+
afterInsert: function (result) {
|
|
207
|
+
if (result.length > 0) {
|
|
177
208
|
var record = result[0];
|
|
178
|
-
setTimeout(function(){
|
|
209
|
+
setTimeout(function () {
|
|
179
210
|
var url = `/app/${appId}/${objectApiName}/view/${record._id}`
|
|
180
211
|
FlowRouter.go(url)
|
|
181
212
|
}
|
|
182
|
-
|
|
213
|
+
, 1);
|
|
183
214
|
return true;
|
|
184
215
|
}
|
|
185
216
|
}
|
|
186
|
-
}, null, {iconPath: '/assets/icons'});
|
|
217
|
+
}, null, { iconPath: '/assets/icons' });
|
|
187
218
|
};
|
|
188
219
|
|
|
189
|
-
Steedos.Page.Form.StandardEdit.render = function(appId, objectApiName,
|
|
220
|
+
Steedos.Page.Form.StandardEdit.render = function (appId, objectApiName, title, recordId) {
|
|
221
|
+
|
|
222
|
+
const page = Steedos.Page.getPage('form', appId, objectApiName, recordId);
|
|
223
|
+
if (page && page.schema) {
|
|
224
|
+
const elementId = getModalElement(`${objectApiName}-standard_edit`);
|
|
225
|
+
return Steedos.Page.render(elementId, page, {
|
|
226
|
+
appId: appId,
|
|
227
|
+
objectName: objectApiName,
|
|
228
|
+
title: title,
|
|
229
|
+
recordId: recordId
|
|
230
|
+
});
|
|
231
|
+
}
|
|
232
|
+
|
|
190
233
|
return SteedosUI.showModal(stores.ComponentRegistry.components.ObjectForm, {
|
|
191
234
|
name: `${objectApiName}_standard_edit_form`,
|
|
192
235
|
objectApiName: objectApiName,
|
|
193
236
|
recordId: recordId,
|
|
194
|
-
title:
|
|
195
|
-
afterUpdate: function(){
|
|
196
|
-
setTimeout(function(){
|
|
197
|
-
if(FlowRouter.current().route.path.endsWith("/:record_id")){
|
|
237
|
+
title: title,
|
|
238
|
+
afterUpdate: function () {
|
|
239
|
+
setTimeout(function () {
|
|
240
|
+
if (FlowRouter.current().route.path.endsWith("/:record_id")) {
|
|
198
241
|
FlowRouter.reload()
|
|
199
242
|
// ObjectForm有缓存,修改子表记录可能会有主表记录的汇总字段变更,需要刷新表单数据
|
|
200
243
|
SteedosUI.reloadRecord(objectApiName, recordId)
|
|
201
|
-
}else{
|
|
244
|
+
} else {
|
|
202
245
|
window.refreshDxSchedulerInstance()
|
|
203
246
|
window.refreshGrid();
|
|
204
247
|
}
|
|
205
|
-
|
|
248
|
+
}, 1);
|
|
206
249
|
return true;
|
|
207
250
|
}
|
|
208
|
-
}, null, {iconPath: '/assets/icons'})
|
|
251
|
+
}, null, { iconPath: '/assets/icons' })
|
|
209
252
|
};
|
|
210
253
|
|
|
211
254
|
// Steedos.Page.Form.StandardDelete.render = function(){
|
|
@@ -21,8 +21,11 @@ version: 2
|
|
|
21
21
|
form:
|
|
22
22
|
afterView: !!js/function |
|
|
23
23
|
function(){
|
|
24
|
-
console.log(`afterView`, this.doc)
|
|
25
24
|
if(this.doc.name && (this.doc.render_engine === 'redash' || !this.doc.render_engine)){
|
|
26
|
-
SteedosUI.render(stores.ComponentRegistry.components.Page, { pageId: this.doc.name }, $(".slds-template__container")[0])
|
|
25
|
+
return SteedosUI.render(stores.ComponentRegistry.components.Page, { pageId: this.doc.name }, $(".slds-template__container")[0])
|
|
27
26
|
}
|
|
27
|
+
if(this.doc.type === 'app'){
|
|
28
|
+
$('[data-object-name="page_assignments"]').hide()
|
|
29
|
+
}
|
|
30
|
+
$('[data-object-name="page_versions"]').hide()
|
|
28
31
|
}
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
|
|
8
8
|
<body style="margin: 0;padding: 0;">
|
|
9
9
|
|
|
10
|
-
<builder-fiddle host="
|
|
10
|
+
<builder-fiddle host="SteedosBuilderHost"></builder-fiddle>
|
|
11
11
|
|
|
12
12
|
<script>
|
|
13
13
|
let comp = document.querySelector('builder-fiddle')
|
|
@@ -45,6 +45,15 @@
|
|
|
45
45
|
},
|
|
46
46
|
'*'
|
|
47
47
|
);
|
|
48
|
+
|
|
49
|
+
try {
|
|
50
|
+
//保存时, 刷新父页面
|
|
51
|
+
if(window.opener){
|
|
52
|
+
window.opener.postMessage(Object.assign({type: "record.edited"}, {objectName: 'pages'}, {record: {}}), "*")
|
|
53
|
+
}
|
|
54
|
+
} catch (error) {
|
|
55
|
+
console.error(error)
|
|
56
|
+
}
|
|
48
57
|
}).catch(function (error) {
|
|
49
58
|
// handle error
|
|
50
59
|
console.log(error);
|
|
@@ -1,9 +1,18 @@
|
|
|
1
1
|
const express = require("express");
|
|
2
2
|
const router = express.Router();
|
|
3
|
+
const core = require('@steedos/core');
|
|
4
|
+
const fs = require('fs');
|
|
3
5
|
|
|
4
|
-
router.get('/api/pageDesign', async function (req, res) {
|
|
6
|
+
router.get('/api/pageDesign', core.requireAuthentication, async function (req, res) {
|
|
5
7
|
try {
|
|
6
8
|
res.set('Content-Type', 'text/html');
|
|
9
|
+
const userSession = req.user;
|
|
10
|
+
const steedosBuilderHost = `https://builder.steedos.com/amis?assetUrl=https://unpkg.com/@steedos-ui/builder-widgets/dist/assets.js&rootUrl=${__meteor_runtime_config__.ROOT_URL}&authToken=${userSession.authToken}&userId=${userSession.userId}&tenantId=${userSession.spaceId}&__q=`;
|
|
11
|
+
|
|
12
|
+
let data = fs.readFileSync(__dirname+'/design.html', 'utf8');
|
|
13
|
+
res.send(data.replace('SteedosBuilderHost',steedosBuilderHost));
|
|
14
|
+
|
|
15
|
+
|
|
7
16
|
res.sendFile(__dirname+'/design.html')
|
|
8
17
|
} catch (error) {
|
|
9
18
|
res.status(500).send({ message: error.message });
|