@cloudbase/lowcode-builder 1.8.18 → 1.8.19
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/dist/builder.web.js +13 -21
- package/lib/builder/config/index.d.ts +2 -2
- package/lib/builder/config/index.js +2 -2
- package/lib/builder/h5/index.d.ts +1 -1
- package/lib/builder/h5/index.js +42 -4
- package/lib/builder/mp/index.js +17 -7
- package/lib/builder/mp/util.js +11 -8
- package/lib/builder/util/process.js +12 -15
- package/lib/builder.web.js +13 -21
- package/lib/utils/transform.d.ts +3 -0
- package/lib/utils/transform.js +35 -0
- package/lib/weapp-page.d.ts +17 -0
- package/lib/weapp-page.js +301 -0
- package/package.json +7 -4
- package/template/.DS_Store +0 -0
- package/template/html/index.html.ejs +2 -2
- package/template/mp/.DS_Store +0 -0
- package/template/mp/common/.DS_Store +0 -0
- package/template/mp/common/util.js +12 -4
- package/template/mp/common/weapp-page.js +87 -78
- package/template/mp/package.json +2 -2
- package/template/mp/page/index.js +2 -1
- package/template/mp/common/url.js +0 -21
|
@@ -1,6 +1,13 @@
|
|
|
1
1
|
import { observable } from 'mobx';
|
|
2
|
-
import {
|
|
3
|
-
|
|
2
|
+
import {
|
|
3
|
+
createComputed,
|
|
4
|
+
createEventHandlers,
|
|
5
|
+
checkAuth,
|
|
6
|
+
getMpEventHandlerName,
|
|
7
|
+
generateDatasetQuery,
|
|
8
|
+
generateEventFlows,
|
|
9
|
+
} from './util';
|
|
10
|
+
import { createWidgets, createInitData, disposeWidget, getWidget } from './widget';
|
|
4
11
|
import mergeRenderer from './merge-renderer';
|
|
5
12
|
import {
|
|
6
13
|
createDataset,
|
|
@@ -10,10 +17,62 @@ import {
|
|
|
10
17
|
setConfig,
|
|
11
18
|
} from '../datasources/index';
|
|
12
19
|
import { runWatchers } from './watch';
|
|
13
|
-
import { $w as baseAPI } from '../app/weapps-api'
|
|
14
|
-
import { Event } from './event-emitter'
|
|
20
|
+
import { $w as baseAPI } from '../app/weapps-api';
|
|
21
|
+
import { Event } from './event-emitter';
|
|
22
|
+
import { generatePageUrl } from '@cloudbase/weda-client';
|
|
23
|
+
|
|
24
|
+
const wxApp = getApp();
|
|
15
25
|
|
|
16
|
-
|
|
26
|
+
function extractLifecycles(ctx, lifecycle, appShareMessage, resetShare = true) {
|
|
27
|
+
const result = {};
|
|
28
|
+
Object.keys(lifecycle).map((name) => {
|
|
29
|
+
result[name] = function () {
|
|
30
|
+
return lifecycle[name].apply(this._getInstance(), arguments);
|
|
31
|
+
};
|
|
32
|
+
});
|
|
33
|
+
|
|
34
|
+
if (resetShare) {
|
|
35
|
+
result['onShareAppMessage'] = (res) => {
|
|
36
|
+
if (res?.from === 'button' && res?.target?.dataset?.weda_share_info) {
|
|
37
|
+
return res?.target?.dataset?.weda_share_info;
|
|
38
|
+
} else if (res?.from === 'menu' && appShareMessage?.enable) {
|
|
39
|
+
let { pageId, params, imageUrl, title, packageName } = appShareMessage || {};
|
|
40
|
+
return {
|
|
41
|
+
path: generatePageUrl({
|
|
42
|
+
pageId,
|
|
43
|
+
packageName,
|
|
44
|
+
params,
|
|
45
|
+
}),
|
|
46
|
+
imageUrl: ctx.app?.__internal__?.resolveStaticResourceUrl?.(imageUrl) || imageUrl,
|
|
47
|
+
title,
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
try {
|
|
51
|
+
return lifecycle?.['onShareAppMessage']?.() || {};
|
|
52
|
+
} catch (error) {
|
|
53
|
+
console.log(error);
|
|
54
|
+
return {};
|
|
55
|
+
}
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
// 更新设备信息 窗口信息
|
|
60
|
+
result['onResize'] = (res) => {
|
|
61
|
+
let device = baseAPI.device;
|
|
62
|
+
if (!device) {
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
const width = res?.size?.windowWidth;
|
|
66
|
+
const height = res?.size?.windowHeight;
|
|
67
|
+
if (width !== device?.viewport?.width || height !== device?.viewport?.height) {
|
|
68
|
+
device.viewport = {
|
|
69
|
+
width,
|
|
70
|
+
height,
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
};
|
|
74
|
+
return result;
|
|
75
|
+
}
|
|
17
76
|
|
|
18
77
|
export function createPage({
|
|
19
78
|
app,
|
|
@@ -30,70 +89,20 @@ export function createPage({
|
|
|
30
89
|
eventFlows = [],
|
|
31
90
|
pageContext = {},
|
|
32
91
|
pageAttributes = {},
|
|
92
|
+
resetShare = true,
|
|
33
93
|
}) {
|
|
34
94
|
const evtHandlers = createEventHandlers(evtListeners);
|
|
35
95
|
|
|
36
|
-
function extractLifecycles() {
|
|
37
|
-
const result = {};
|
|
38
|
-
Object.keys(lifecycle).map((name) => {
|
|
39
|
-
result[name] = function () {
|
|
40
|
-
return lifecycle[name].apply(this._getInstance(), arguments);
|
|
41
|
-
};
|
|
42
|
-
});
|
|
43
|
-
|
|
44
|
-
result['onShareAppMessage'] = (res) => {
|
|
45
|
-
if (res?.from === 'button' && res?.target?.dataset?.weda_share_info) {
|
|
46
|
-
return res?.target?.dataset?.weda_share_info;
|
|
47
|
-
} else if (res?.from === 'menu' && pageAttributes?.appShareMessage) {
|
|
48
|
-
let { enable, pageId, params, imageUrl, title } = pageAttributes.appShareMessage;
|
|
49
|
-
if (enable) {
|
|
50
|
-
pageId = pageId ? pageId.replace(/^(\.)?\//, '') : pageId;
|
|
51
|
-
let realPath =
|
|
52
|
-
`/pages/${pageId}/index` +
|
|
53
|
-
(params ? '?' + params.map((pair) => pair.key + '=' + pair.value).join('&') : '');
|
|
54
|
-
return {
|
|
55
|
-
path: realPath,
|
|
56
|
-
imageUrl: app?.__internal__?.resolveStaticResourceUrl?.(imageUrl) || imageUrl,
|
|
57
|
-
title,
|
|
58
|
-
};
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
try {
|
|
62
|
-
return lifecycle?.['onShareAppMessage']?.() || {};
|
|
63
|
-
} catch (error) {
|
|
64
|
-
console.log(error);
|
|
65
|
-
return {};
|
|
66
|
-
}
|
|
67
|
-
};
|
|
68
|
-
|
|
69
|
-
// 更新设备信息 窗口信息
|
|
70
|
-
result['onResize'] = (res) => {
|
|
71
|
-
let device = baseAPI.device;
|
|
72
|
-
if (!device) {
|
|
73
|
-
return
|
|
74
|
-
}
|
|
75
|
-
const width = res?.size?.windowWidth;
|
|
76
|
-
const height = res?.size?.windowHeight;
|
|
77
|
-
if (width !== device?.viewport?.width || height !== device?.viewport?.height) {
|
|
78
|
-
device.viewport = {
|
|
79
|
-
width,
|
|
80
|
-
height
|
|
81
|
-
};
|
|
82
|
-
}
|
|
83
|
-
};
|
|
84
|
-
return result;
|
|
85
|
-
}
|
|
86
|
-
|
|
87
96
|
return Component({
|
|
88
97
|
_componentType: 'page',
|
|
89
98
|
data: {
|
|
90
99
|
...createInitData(widgetProps, dataBinds),
|
|
91
100
|
_isCheckingAtuh: false,
|
|
92
|
-
weDaHasLogin: false
|
|
101
|
+
weDaHasLogin: false,
|
|
93
102
|
},
|
|
94
103
|
lifetimes: {
|
|
95
104
|
attached() {
|
|
96
|
-
this._disposers = []
|
|
105
|
+
this._disposers = [];
|
|
97
106
|
const $page = this._getInstance();
|
|
98
107
|
this._pageActive = true;
|
|
99
108
|
/**
|
|
@@ -125,8 +134,8 @@ export function createPage({
|
|
|
125
134
|
},
|
|
126
135
|
pageLifetimes: {
|
|
127
136
|
// 组件所在页面的生命周期函数,定义下给运营平台上报用
|
|
128
|
-
show: function () {
|
|
129
|
-
hide: function () {
|
|
137
|
+
show: function () {},
|
|
138
|
+
hide: function () {},
|
|
130
139
|
},
|
|
131
140
|
methods: {
|
|
132
141
|
_pageActive: true,
|
|
@@ -135,28 +144,28 @@ export function createPage({
|
|
|
135
144
|
_disposers: [],
|
|
136
145
|
|
|
137
146
|
/** page lifecycles **/
|
|
138
|
-
...extractLifecycles(),
|
|
147
|
+
...extractLifecycles({ app }, lifecycle, pageAttributes?.appShareMessage, resetShare),
|
|
139
148
|
...evtHandlers,
|
|
140
149
|
...mergeRenderer,
|
|
141
150
|
async beforePageCustomLaunch(query) {
|
|
142
151
|
if (!this._beforePageCustomLaunchPromise) {
|
|
143
152
|
this._beforePageCustomLaunchPromise = new Promise(async (resolve) => {
|
|
144
|
-
await wxApp.globaldata?._beforePageCustomLaunchPromise
|
|
153
|
+
await wxApp.globaldata?._beforePageCustomLaunchPromise;
|
|
145
154
|
const $page = this._getInstance();
|
|
146
155
|
if (query) {
|
|
147
156
|
EXTRA_API.setParams($page.uuid, query);
|
|
148
157
|
}
|
|
149
158
|
try {
|
|
150
|
-
this.setData({ _isCheckingAtuh: true })
|
|
159
|
+
this.setData({ _isCheckingAtuh: true });
|
|
151
160
|
const auth = await checkAuth(app, app.id, $page);
|
|
152
|
-
if(auth) {
|
|
161
|
+
if (auth) {
|
|
153
162
|
this.setData({
|
|
154
163
|
weDaHasLogin: true,
|
|
155
164
|
});
|
|
156
165
|
createStateDataSourceVar($page.uuid, generateParamsParser({ app, $page, $w: $page.__internal__?.$w }));
|
|
157
166
|
}
|
|
158
167
|
} finally {
|
|
159
|
-
this.setData({ _isCheckingAtuh: false })
|
|
168
|
+
this.setData({ _isCheckingAtuh: false });
|
|
160
169
|
}
|
|
161
170
|
|
|
162
171
|
// eslint-disable-next-line no-restricted-syntax
|
|
@@ -164,16 +173,16 @@ export function createPage({
|
|
|
164
173
|
if ($page.dataset.query[queryId]?._schema?.trigger === 'auto') {
|
|
165
174
|
try {
|
|
166
175
|
$page.dataset.query[queryId].trigger();
|
|
167
|
-
this._disposers.push(() => $page.dataset.query[queryId].destroy())
|
|
176
|
+
this._disposers.push(() => $page.dataset.query[queryId].destroy());
|
|
168
177
|
} catch (e) {
|
|
169
178
|
console.error(`query ${queryId} 初始化失败:`, e);
|
|
170
179
|
}
|
|
171
180
|
}
|
|
172
181
|
}
|
|
173
|
-
resolve()
|
|
174
|
-
})
|
|
182
|
+
resolve();
|
|
183
|
+
});
|
|
175
184
|
}
|
|
176
|
-
return this._beforePageCustomLaunchPromise
|
|
185
|
+
return this._beforePageCustomLaunchPromise;
|
|
177
186
|
},
|
|
178
187
|
async onLoad(options) {
|
|
179
188
|
const $page = this._getInstance();
|
|
@@ -184,7 +193,7 @@ export function createPage({
|
|
|
184
193
|
|
|
185
194
|
this._query = decodePageQuery(options || {});
|
|
186
195
|
|
|
187
|
-
await this.beforePageCustomLaunch?.(this._query)
|
|
196
|
+
await this.beforePageCustomLaunch?.(this._query);
|
|
188
197
|
|
|
189
198
|
const hook = lifecycle.onLoad || lifecycle.onPageLoad;
|
|
190
199
|
await hook?.call?.($page, this._query);
|
|
@@ -215,7 +224,7 @@ export function createPage({
|
|
|
215
224
|
$page.__internal__.active = this._pageActive;
|
|
216
225
|
app.__internal__.activePage = $page;
|
|
217
226
|
|
|
218
|
-
await this.beforePageCustomLaunch?.(this._query)
|
|
227
|
+
await this.beforePageCustomLaunch?.(this._query);
|
|
219
228
|
|
|
220
229
|
const hook = lifecycle.onShow || lifecycle.onPageShow;
|
|
221
230
|
await hook?.call?.($page);
|
|
@@ -235,9 +244,9 @@ export function createPage({
|
|
|
235
244
|
const keyName = getMpEventHandlerName(id, triggerName);
|
|
236
245
|
const event = new Event({
|
|
237
246
|
type: triggerName,
|
|
238
|
-
detail: params
|
|
239
|
-
})
|
|
240
|
-
return this[keyName]?.call?.(this, event)
|
|
247
|
+
detail: params,
|
|
248
|
+
});
|
|
249
|
+
return this[keyName]?.call?.(this, event);
|
|
241
250
|
},
|
|
242
251
|
_getInstance() {
|
|
243
252
|
let $page = this.$WEAPPS_PAGE;
|
|
@@ -255,8 +264,8 @@ export function createPage({
|
|
|
255
264
|
$page.handler = Object.keys(handlers).reduce((result, key) => {
|
|
256
265
|
try {
|
|
257
266
|
result[key] = handlers[key].bind($page);
|
|
258
|
-
} catch(e) {
|
|
259
|
-
console.error('添加页面handler失败', e)
|
|
267
|
+
} catch (e) {
|
|
268
|
+
console.error('添加页面handler失败', e);
|
|
260
269
|
}
|
|
261
270
|
return result;
|
|
262
271
|
}, {});
|
|
@@ -266,7 +275,7 @@ export function createPage({
|
|
|
266
275
|
$w: $page.__internal__.$w,
|
|
267
276
|
$app: app,
|
|
268
277
|
$page,
|
|
269
|
-
})
|
|
278
|
+
});
|
|
270
279
|
$page.dataset = dataset;
|
|
271
280
|
$page.state.dataset = dataset;
|
|
272
281
|
$page.setState = (userSetState) => {
|
|
@@ -276,7 +285,7 @@ export function createPage({
|
|
|
276
285
|
};
|
|
277
286
|
|
|
278
287
|
const { widgets, rootWidget } = createWidgets(widgetProps, dataBinds, this, $page.widgets);
|
|
279
|
-
$page.widgets = widgets
|
|
288
|
+
$page.widgets = widgets;
|
|
280
289
|
$page._rootWidget = rootWidget;
|
|
281
290
|
|
|
282
291
|
$page.invokeComponentMethod = ({ component, method, params }) => {
|
package/template/mp/package.json
CHANGED
|
@@ -6,8 +6,8 @@
|
|
|
6
6
|
"@cloudbase/js-sdk": "2.5.6-beta.1",<%
|
|
7
7
|
} %>
|
|
8
8
|
"@cloudbase/oauth": "0.1.1-alpha.5",
|
|
9
|
-
"@cloudbase/weda-client": "1.0.
|
|
10
|
-
"@cloudbase/weda-cloud-sdk": "1.0.
|
|
9
|
+
"@cloudbase/weda-client": "1.0.6",
|
|
10
|
+
"@cloudbase/weda-cloud-sdk": "1.0.42",
|
|
11
11
|
"mobx": "^5.15.4",
|
|
12
12
|
"lodash.get": "^4.4.2",
|
|
13
13
|
"lodash.set": "^4.3.2",
|
|
@@ -86,5 +86,6 @@ createPage({
|
|
|
86
86
|
handlers,
|
|
87
87
|
query,
|
|
88
88
|
eventFlows,
|
|
89
|
-
pageAttributes: <%= pageAttributes? stringifyObj(pageAttributes, {depth: null}):'{}'
|
|
89
|
+
pageAttributes: <%= pageAttributes? stringifyObj(pageAttributes, {depth: null}):'{}' %>,
|
|
90
|
+
resetShare: <%= resetShare %>
|
|
90
91
|
})
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
// 处理url链接,加入params参数
|
|
2
|
-
export function urlJoinParams(url, params) {
|
|
3
|
-
if (!url || !params || typeof params !== 'object') {
|
|
4
|
-
return url
|
|
5
|
-
}
|
|
6
|
-
const separate = url.indexOf('?') === -1 ? '?' : '&'
|
|
7
|
-
const tempStr = Object.keys(params)
|
|
8
|
-
.map(key => {
|
|
9
|
-
let value = params[key]
|
|
10
|
-
if (typeof value === 'object') {
|
|
11
|
-
value = JSON.stringify(value)
|
|
12
|
-
}
|
|
13
|
-
if (value != undefined) {
|
|
14
|
-
return `${key}=${encodeURIComponent(value)}`
|
|
15
|
-
}
|
|
16
|
-
return ''
|
|
17
|
-
})
|
|
18
|
-
.filter(value => value)
|
|
19
|
-
.join('&')
|
|
20
|
-
return `${url}${separate}${tempStr}`
|
|
21
|
-
}
|