@cloudbase/lowcode-builder 1.8.47 → 1.8.49
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/lib/builder/core/index.js +4 -2
- package/lib/builder/mp/BuildContext.d.ts +8 -0
- package/lib/builder/mp/index.js +15 -7
- package/lib/builder/mp/mp_config.js +1 -3
- package/lib/builder/mp/wxml.d.ts +1 -1
- package/lib/builder/mp/wxml.js +101 -79
- package/package.json +1 -1
- package/template/html/index.html.ejs +2 -2
- package/template/mp/common/info/index.js +52 -8
- package/template/mp/common/info/index.wxml +29 -12
- package/template/mp/common/info/index.wxss +27 -10
- package/template/mp/common/util.js +18 -5
- package/template/mp/common/weapp-page.js +19 -1
- package/template/mp/package.json +1 -1
|
@@ -61,7 +61,7 @@ async function buildWedaApp({ cals, subAppCalsList = [], dependencies = [], appK
|
|
|
61
61
|
isComposite: false,
|
|
62
62
|
compProps: {},
|
|
63
63
|
}, resourceAppId = undefined, domain = '', output, isBrowserMpBuilder = false, cdnEndpoints, isPrivateMode = false, endpointType = undefined, enableExpiredTag = false, }, cb) {
|
|
64
|
-
var _a, _b, _c;
|
|
64
|
+
var _a, _b, _c, _d, _e;
|
|
65
65
|
if (!cals) {
|
|
66
66
|
console.error('无效的应用配置');
|
|
67
67
|
return;
|
|
@@ -91,6 +91,8 @@ async function buildWedaApp({ cals, subAppCalsList = [], dependencies = [], appK
|
|
|
91
91
|
isPrivateMode,
|
|
92
92
|
endpointType,
|
|
93
93
|
enableExpiredTag,
|
|
94
|
+
disabled: (_c = cals.extra) === null || _c === void 0 ? void 0 : _c.disabled,
|
|
95
|
+
statusPageId: (_d = cals.extra) === null || _d === void 0 ? void 0 : _d.statusPageId,
|
|
94
96
|
};
|
|
95
97
|
console.log('domain', domain);
|
|
96
98
|
console.log('应用名', appKey);
|
|
@@ -150,7 +152,7 @@ async function buildWedaApp({ cals, subAppCalsList = [], dependencies = [], appK
|
|
|
150
152
|
? 'px'
|
|
151
153
|
: 'rpx'),
|
|
152
154
|
enablePageRoot,
|
|
153
|
-
enableLoading: (
|
|
155
|
+
enableLoading: (_e = cals === null || cals === void 0 ? void 0 : cals.extra) === null || _e === void 0 ? void 0 : _e.enableLoading,
|
|
154
156
|
};
|
|
155
157
|
const result = await (0, index_1.generateWxMp)({
|
|
156
158
|
weapps: apps,
|
package/lib/builder/mp/index.js
CHANGED
|
@@ -345,7 +345,7 @@ async function generatePkg(ctx, weapp, appRoot, pageConfigs) {
|
|
|
345
345
|
},
|
|
346
346
|
],
|
|
347
347
|
});
|
|
348
|
-
const wxml = (0, wxml_1.generateWxml)({ ...ctx, rootPath,
|
|
348
|
+
const wxml = (0, wxml_1.generateWxml)({ ...ctx, rootPath, pageUUID: rootPath ? `${rootPath}/${page.id}` : page.id }, componentInstances, `Page ${rootPath ? path_1.default.join('packages', rootPath, 'pages') : ''}/${page.id}`, wxmlDataPrefix, usingComponents, componentGenerics);
|
|
349
349
|
const importor = (0, util_3.generateLowcodeImportor)(page.lowCodes);
|
|
350
350
|
const pageFileName = (0, lodash_1.get)(pageConfigs, `${page.id}.pageFileName`, 'index');
|
|
351
351
|
const subLevelPath = rootPath ? `${path_1.default.posix.relative(`packages/${rootPath}`, '')}/` : '';
|
|
@@ -456,10 +456,17 @@ async function generateFramework(ctx, appData, outDir, options) {
|
|
|
456
456
|
envVersion: (ctx === null || ctx === void 0 ? void 0 : ctx.isProduction) ? 'production' : 'preview',
|
|
457
457
|
pages: appData.pageInstanceList
|
|
458
458
|
.sort((item) => (item.isHome ? -1 : 1))
|
|
459
|
-
.map((item) =>
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
459
|
+
.map((item) => {
|
|
460
|
+
var _a;
|
|
461
|
+
return ({
|
|
462
|
+
id: item.id,
|
|
463
|
+
type: item.data.isCustomLoginPage
|
|
464
|
+
? 'login'
|
|
465
|
+
: ((_a = appData.extra) === null || _a === void 0 ? void 0 : _a.statusPageId) === item.id
|
|
466
|
+
? 'status'
|
|
467
|
+
: '',
|
|
468
|
+
});
|
|
469
|
+
}),
|
|
463
470
|
}),
|
|
464
471
|
appQuery: (0, util_2.createTemplateQuery)(ctx, (_b = appData.dataset) === null || _b === void 0 ? void 0 : _b.query),
|
|
465
472
|
stringifyObj: util_1.inspect,
|
|
@@ -500,8 +507,9 @@ async function writeLowCodeFiles(ctx, appData, outDir) {
|
|
|
500
507
|
}
|
|
501
508
|
exports.writeLowCodeFiles = writeLowCodeFiles;
|
|
502
509
|
// {a: 1} -> , "a": 1
|
|
503
|
-
function getAppendableJson(json) {
|
|
504
|
-
const
|
|
510
|
+
function getAppendableJson(json = {}) {
|
|
511
|
+
const { namespace, appShareMessage, ...restJson } = json;
|
|
512
|
+
const obj = { ...restJson };
|
|
505
513
|
if (obj.reachBottomDistance) {
|
|
506
514
|
obj.onReachBottomDistance = parseInt(obj.reachBottomDistance, 10) || 0;
|
|
507
515
|
delete obj.reachBottomDistance;
|
|
@@ -135,7 +135,6 @@ function extractPages(weapps, pageConfigs) {
|
|
|
135
135
|
const pages = [];
|
|
136
136
|
const subpackages = [];
|
|
137
137
|
let homePage = '';
|
|
138
|
-
let homePageId = '';
|
|
139
138
|
weapps.forEach((weapp, index) => {
|
|
140
139
|
const { rootPath } = weapp;
|
|
141
140
|
const subPackage = { root: rootPath ? `packages/${rootPath}` : '', pages: [] };
|
|
@@ -153,14 +152,13 @@ function extractPages(weapps, pageConfigs) {
|
|
|
153
152
|
}
|
|
154
153
|
else {
|
|
155
154
|
homePage = `pages/${page.id}/${pageFileName}`;
|
|
156
|
-
homePageId = page.id;
|
|
157
155
|
}
|
|
158
156
|
});
|
|
159
157
|
});
|
|
160
158
|
if (homePage) {
|
|
161
159
|
pages.unshift(homePage);
|
|
162
160
|
}
|
|
163
|
-
return { pages, subpackages
|
|
161
|
+
return { pages, subpackages };
|
|
164
162
|
}
|
|
165
163
|
function getAppPagesConfig(pages) {
|
|
166
164
|
const pagesConfig = {};
|
package/lib/builder/mp/wxml.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { IWeAppComponentInstance, IEventModifiers } from '@cloudbase/lowcode-generator/lib/weapps-core';
|
|
2
2
|
import { IBuildContext } from './BuildContext';
|
|
3
3
|
export declare function generateWxml(ctx: IBuildContext & {
|
|
4
|
-
|
|
4
|
+
pageUUID?: string;
|
|
5
5
|
}, widgets: {
|
|
6
6
|
[key: string]: IWeAppComponentInstance;
|
|
7
7
|
}, docTag: string, wxmlDataPrefix: any, usingComponents: any, componentGenerics: any, nodeTransform?: (cmp: IWeAppComponentInstance, node: any) => void): string;
|
package/lib/builder/mp/wxml.js
CHANGED
|
@@ -19,91 +19,113 @@ function generateWxml(ctx, widgets, docTag, wxmlDataPrefix, usingComponents, com
|
|
|
19
19
|
const xmlJson = {
|
|
20
20
|
elements: createXml(widgets),
|
|
21
21
|
};
|
|
22
|
-
if (ctx.
|
|
23
|
-
const { enablePageRoot } = ctx;
|
|
22
|
+
if (ctx.pageUUID) {
|
|
23
|
+
const { enablePageRoot, disabled } = ctx;
|
|
24
24
|
const originElements = xmlJson.elements;
|
|
25
25
|
// usingComponents['wd-privacy'] = '/common/privacyModal/index';
|
|
26
26
|
usingComponents['wd-info'] = '/common/info/index';
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
id: 'wd-page-root',
|
|
42
|
-
['wx:if']: '{{weDaHasLogin && !_expiredMessage}}',
|
|
43
|
-
['data-weui-theme']: 'light',
|
|
44
|
-
},
|
|
45
|
-
elements: [
|
|
46
|
-
...originElements,
|
|
47
|
-
/**
|
|
48
|
-
* 可能需要依赖添加逻辑节点的方式
|
|
49
|
-
* 来触发 page 的 ready
|
|
50
|
-
* 目的是为了让 page 的 ready 在组件的 ready 之后
|
|
51
|
-
*/
|
|
52
|
-
// {
|
|
53
|
-
// type: 'element',
|
|
54
|
-
// name: 'readyPlaceHoler',
|
|
55
|
-
// attributes: {
|
|
56
|
-
// ['bind:ready']: '_onReady',
|
|
57
|
-
// },
|
|
58
|
-
// elements: originElements,
|
|
59
|
-
// _order: Infinity,
|
|
60
|
-
// _parent: null,
|
|
61
|
-
// },
|
|
62
|
-
],
|
|
63
|
-
_order: -1,
|
|
64
|
-
_parent: null,
|
|
65
|
-
},
|
|
66
|
-
{
|
|
67
|
-
type: 'element',
|
|
68
|
-
name: 'wd-info',
|
|
69
|
-
attributes: {
|
|
70
|
-
['wx:if']: '{{weDaHasLogin === false && !_expiredMessage}}',
|
|
71
|
-
message: '无权限访问',
|
|
72
|
-
type: 'auth',
|
|
73
|
-
},
|
|
74
|
-
elements: [],
|
|
75
|
-
_order: Infinity,
|
|
76
|
-
_parent: null,
|
|
77
|
-
},
|
|
78
|
-
];
|
|
79
|
-
if (ctx.enableExpiredTag) {
|
|
80
|
-
usingComponents['wd-info'] = '/common/info/index';
|
|
81
|
-
xmlJson.elements.push({
|
|
82
|
-
type: 'element',
|
|
83
|
-
name: 'wd-info',
|
|
84
|
-
attributes: {
|
|
85
|
-
['wx:if']: '{{_expiredMessage}}',
|
|
86
|
-
message: '{{_expiredMessage}}',
|
|
87
|
-
type: 'info',
|
|
27
|
+
if (disabled && ctx.pageUUID !== ctx.statusPageId) {
|
|
28
|
+
xmlJson.elements = [
|
|
29
|
+
{
|
|
30
|
+
type: 'element',
|
|
31
|
+
name: 'wd-info',
|
|
32
|
+
attributes: {
|
|
33
|
+
message: '当前页面无法访问',
|
|
34
|
+
type: 'notfound',
|
|
35
|
+
enableCustom: true,
|
|
36
|
+
pageUUID: ctx.pageUUID,
|
|
37
|
+
},
|
|
38
|
+
elements: [],
|
|
39
|
+
_order: Infinity,
|
|
40
|
+
_parent: null,
|
|
88
41
|
},
|
|
89
|
-
|
|
90
|
-
_order: Infinity,
|
|
91
|
-
_parent: null,
|
|
92
|
-
});
|
|
42
|
+
];
|
|
93
43
|
}
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
xmlJson.elements
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
44
|
+
else {
|
|
45
|
+
// 登录校验: 向其最外层包裹一层block
|
|
46
|
+
xmlJson.elements = [
|
|
47
|
+
// {
|
|
48
|
+
// type: 'element',
|
|
49
|
+
// name: 'wd-privacy',
|
|
50
|
+
// attributes: {},
|
|
51
|
+
// elements: [],
|
|
52
|
+
// _order: -Infinity,
|
|
53
|
+
// _parent: null,
|
|
54
|
+
// },
|
|
55
|
+
{
|
|
56
|
+
type: 'element',
|
|
57
|
+
name: enablePageRoot ? 'view' : 'block',
|
|
58
|
+
attributes: {
|
|
59
|
+
id: 'wd-page-root',
|
|
60
|
+
['wx:if']: '{{weDaHasLogin && !_expiredMessage}}',
|
|
61
|
+
['data-weui-theme']: 'light',
|
|
62
|
+
},
|
|
63
|
+
elements: [
|
|
64
|
+
...originElements,
|
|
65
|
+
/**
|
|
66
|
+
* 可能需要依赖添加逻辑节点的方式
|
|
67
|
+
* 来触发 page 的 ready
|
|
68
|
+
* 目的是为了让 page 的 ready 在组件的 ready 之后
|
|
69
|
+
*/
|
|
70
|
+
// {
|
|
71
|
+
// type: 'element',
|
|
72
|
+
// name: 'readyPlaceHoler',
|
|
73
|
+
// attributes: {
|
|
74
|
+
// ['bind:ready']: '_onReady',
|
|
75
|
+
// },
|
|
76
|
+
// elements: originElements,
|
|
77
|
+
// _order: Infinity,
|
|
78
|
+
// _parent: null,
|
|
79
|
+
// },
|
|
80
|
+
],
|
|
81
|
+
_order: -1,
|
|
82
|
+
_parent: null,
|
|
102
83
|
},
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
84
|
+
{
|
|
85
|
+
type: 'element',
|
|
86
|
+
name: 'wd-info',
|
|
87
|
+
attributes: {
|
|
88
|
+
['wx:if']: '{{weDaHasLogin === false && !_expiredMessage}}',
|
|
89
|
+
message: '无权限访问',
|
|
90
|
+
type: 'auth',
|
|
91
|
+
enableCustom: true,
|
|
92
|
+
pageUUID: ctx.pageUUID,
|
|
93
|
+
error: '{{loginError}}',
|
|
94
|
+
},
|
|
95
|
+
elements: [],
|
|
96
|
+
_order: Infinity,
|
|
97
|
+
_parent: null,
|
|
98
|
+
},
|
|
99
|
+
];
|
|
100
|
+
if (ctx.enableExpiredTag) {
|
|
101
|
+
usingComponents['wd-info'] = '/common/info/index';
|
|
102
|
+
xmlJson.elements.push({
|
|
103
|
+
type: 'element',
|
|
104
|
+
name: 'wd-info',
|
|
105
|
+
attributes: {
|
|
106
|
+
['wx:if']: '{{_expiredMessage}}',
|
|
107
|
+
message: '{{_expiredMessage}}',
|
|
108
|
+
type: 'info',
|
|
109
|
+
},
|
|
110
|
+
elements: [],
|
|
111
|
+
_order: Infinity,
|
|
112
|
+
_parent: null,
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
if (ctx.enableLoading) {
|
|
116
|
+
usingComponents['wd-info'] = '/common/info/index';
|
|
117
|
+
xmlJson.elements.push({
|
|
118
|
+
type: 'element',
|
|
119
|
+
name: 'wd-info',
|
|
120
|
+
attributes: {
|
|
121
|
+
['wx:if']: '{{_isCheckingAtuh && !_expiredMessage}}',
|
|
122
|
+
type: 'loading',
|
|
123
|
+
},
|
|
124
|
+
elements: [],
|
|
125
|
+
_order: Infinity,
|
|
126
|
+
_parent: null,
|
|
127
|
+
});
|
|
128
|
+
}
|
|
107
129
|
}
|
|
108
130
|
}
|
|
109
131
|
function createXml(widgets, parent = null, parentForNodes = []) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cloudbase/lowcode-builder",
|
|
3
|
-
"version": "1.8.
|
|
3
|
+
"version": "1.8.49",
|
|
4
4
|
"description": "云开发 Tencent CloudBase Framework Low Code Plugin,将低码配置生成完整项目并一键部署云开发资源。",
|
|
5
5
|
"author": "yhsunshining@gmail.com",
|
|
6
6
|
"homepage": "https://github.com/TencentCloudBase/cloudbase-framework#readme",
|
|
@@ -514,7 +514,7 @@
|
|
|
514
514
|
crossorigin="anonymous"
|
|
515
515
|
src="<%=
|
|
516
516
|
cdnEndpoints.cdngo
|
|
517
|
-
%>/lcap/lcap-resource-cdngo/-/release/_npm/@cloudbase/weda-cloud-sdk@1.0.
|
|
517
|
+
%>/lcap/lcap-resource-cdngo/-/release/_npm/@cloudbase/weda-cloud-sdk@1.0.47/dist/h5.browser.js"
|
|
518
518
|
></script>
|
|
519
519
|
<script
|
|
520
520
|
crossorigin
|
|
@@ -540,7 +540,7 @@
|
|
|
540
540
|
crossorigin
|
|
541
541
|
src="<%=
|
|
542
542
|
cdnEndpoints.cdngo
|
|
543
|
-
%>/lcap/lcap-resource-cdngo/-/0.1.4/_files/static/weda-render/main.
|
|
543
|
+
%>/lcap/lcap-resource-cdngo/-/0.1.4/_files/static/weda-render/main.8d5af6de1f01bbd759cc.bundle.js"
|
|
544
544
|
></script>
|
|
545
545
|
</body>
|
|
546
546
|
</html>
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { redirectToLogin,
|
|
1
|
+
import { redirectToLogin, findStatusPage } from '../util';
|
|
2
2
|
|
|
3
3
|
Component({
|
|
4
4
|
/**
|
|
@@ -7,7 +7,17 @@ Component({
|
|
|
7
7
|
properties: {
|
|
8
8
|
type: String,
|
|
9
9
|
message: String,
|
|
10
|
-
toLogin: Boolean
|
|
10
|
+
toLogin: Boolean,
|
|
11
|
+
enableCustom: {
|
|
12
|
+
type: Boolean,
|
|
13
|
+
value: false
|
|
14
|
+
},
|
|
15
|
+
pageCodeContext: Object,
|
|
16
|
+
pageUUID: String,
|
|
17
|
+
error: {
|
|
18
|
+
type: Object,
|
|
19
|
+
value: null
|
|
20
|
+
}
|
|
11
21
|
},
|
|
12
22
|
|
|
13
23
|
/**
|
|
@@ -15,7 +25,7 @@ Component({
|
|
|
15
25
|
*/
|
|
16
26
|
data: {
|
|
17
27
|
message: '',
|
|
18
|
-
visible: false
|
|
28
|
+
visible: false,
|
|
19
29
|
},
|
|
20
30
|
|
|
21
31
|
/**
|
|
@@ -23,7 +33,7 @@ Component({
|
|
|
23
33
|
*/
|
|
24
34
|
methods: {
|
|
25
35
|
login() {
|
|
26
|
-
if(this.data.toLogin) {
|
|
36
|
+
if (this.data.toLogin) {
|
|
27
37
|
redirectToLogin()
|
|
28
38
|
} else {
|
|
29
39
|
getApp()?.app?.relaunchHome()
|
|
@@ -32,14 +42,48 @@ Component({
|
|
|
32
42
|
},
|
|
33
43
|
lifetimes: {
|
|
34
44
|
attached() {
|
|
35
|
-
this.
|
|
36
|
-
|
|
37
|
-
|
|
45
|
+
if (this.data.enableCustom) {
|
|
46
|
+
const status = findStatusPage();
|
|
47
|
+
const $page = this.data.pageCodeContext || getApp()?.app?.utils.getCurrentPage();
|
|
48
|
+
const uuid = this.data.pageUUID || $page.uuid;
|
|
49
|
+
if (status && status.id !== uuid) {
|
|
50
|
+
switch (this.data.type) {
|
|
51
|
+
case 'auth': {
|
|
52
|
+
getApp().app?.redirectTo({
|
|
53
|
+
pageId: status.id,
|
|
54
|
+
params: {
|
|
55
|
+
statusCode: "403",
|
|
56
|
+
sourcePageId: $page?.id,
|
|
57
|
+
sourcePageParams: $page?.dataset?.params,
|
|
58
|
+
}
|
|
59
|
+
})
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
case 'notfound': {
|
|
63
|
+
getApp().app?.redirectTo({
|
|
64
|
+
pageId: status.id,
|
|
65
|
+
params: {
|
|
66
|
+
statusCode: "404",
|
|
67
|
+
// path,
|
|
68
|
+
// sourcePageParams: query,
|
|
69
|
+
}
|
|
70
|
+
})
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* 暂不启用 redirto login
|
|
78
|
+
*/
|
|
79
|
+
// this.setData({
|
|
80
|
+
// toLogin: findLoginPage()
|
|
81
|
+
// })
|
|
38
82
|
setTimeout(() => {
|
|
39
83
|
const data = {
|
|
40
84
|
visible: true
|
|
41
85
|
}
|
|
42
|
-
if(this.data.type === 'loading') {
|
|
86
|
+
if (this.data.type === 'loading') {
|
|
43
87
|
data.message = '登录鉴权中...'
|
|
44
88
|
}
|
|
45
89
|
this.setData(data)
|
|
@@ -1,14 +1,31 @@
|
|
|
1
|
-
<view
|
|
2
|
-
<view
|
|
3
|
-
<
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
1
|
+
<view class="wd-status" wx:if="{{visible}}">
|
|
2
|
+
<view style="transform: translateY(-20px);">
|
|
3
|
+
<view class="wd-status__img {{type === 'notfound'?'wd-status--notfound':''}}">
|
|
4
|
+
<view
|
|
5
|
+
class="icon"
|
|
6
|
+
wx:if="{{type !== 'loading'}}"
|
|
7
|
+
/>
|
|
8
|
+
<view wx:if="{{type === 'loading'}}" class="sp sp-circle"></view>
|
|
9
|
+
</view>
|
|
10
|
+
<view class="wd-status__content">
|
|
11
|
+
<view class="wd-status__title" style="text-align: center; margin-bottom: 5px; font-size: 28rpx; font-weight: 600;">
|
|
12
|
+
{{message}}
|
|
13
|
+
</view>
|
|
14
|
+
<view class="tea-status__detail" wx:if="{{error}}">
|
|
15
|
+
<view class="stack">
|
|
16
|
+
<view>
|
|
17
|
+
<text style="font-weight: 600; font-size:14px;">错误信息:</text>
|
|
18
|
+
<text user-select="true">{{error.message}}</text>
|
|
19
|
+
</view>
|
|
20
|
+
<!-- <view wx:if="{{error.stack}}">
|
|
21
|
+
<text style="font-weight: 600;">错误堆栈:</text>
|
|
22
|
+
<text>{{error.stack}}</text>
|
|
23
|
+
</view> -->
|
|
24
|
+
</view>
|
|
25
|
+
</view>
|
|
26
|
+
</view>
|
|
27
|
+
<view wx:if="{{type == 'auth'}}" class="wd-status__operate" style="display: flex;">
|
|
28
|
+
<button style="margin-top: 10px; width: 200rpx; border: 1px solid #DCDCDC; border-radius: 3px;" variant="outline" type="default" size="mini" plain="true" bind:tap="login">{{toLogin?'登录':'返回首页'}}</button>
|
|
29
|
+
</view>
|
|
9
30
|
</view>
|
|
10
|
-
<view class="text" id="message">
|
|
11
|
-
{{message}}
|
|
12
|
-
</view>
|
|
13
|
-
<button wx:if="{{type == 'auth' && toLogin}}" style="margin-top: 10px; width: 200rpx;" variant="outline" type="default" size="mini" plain="true" bind:tap="login">{{toLogin?'登录':'刷新'}}</button>
|
|
14
31
|
</view>
|
|
@@ -1,34 +1,39 @@
|
|
|
1
|
-
.
|
|
1
|
+
.wd-status {
|
|
2
2
|
position: fixed;
|
|
3
3
|
left:0;
|
|
4
|
-
top:0;
|
|
4
|
+
top: 0;
|
|
5
5
|
width: 100%;
|
|
6
6
|
display: flex;
|
|
7
7
|
justify-content: center;
|
|
8
8
|
align-items: center;
|
|
9
9
|
flex-direction: column;
|
|
10
10
|
height:100%;
|
|
11
|
-
padding:
|
|
11
|
+
padding: 40rpx;
|
|
12
12
|
}
|
|
13
|
-
.
|
|
13
|
+
.wd-status .wd-status__img {
|
|
14
14
|
width: 100%;
|
|
15
15
|
display: flex;
|
|
16
16
|
justify-content: center;
|
|
17
17
|
text-align: center;
|
|
18
|
-
margin-
|
|
19
|
-
margin-bottom: 50rpx;
|
|
18
|
+
margin-bottom: 10px;
|
|
20
19
|
}
|
|
21
20
|
|
|
22
|
-
.
|
|
23
|
-
|
|
21
|
+
.wd-status .wd-status__img > view.icon {
|
|
22
|
+
width: 120px;
|
|
23
|
+
height: 80px;
|
|
24
|
+
background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIwIiBoZWlnaHQ9IjgwIiB2aWV3Qm94PSIwIDAgMTIwIDgwIiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8cGF0aCBkPSJNMTkgOEg5OVYyM0gxMTNWMjVIMTA2VjI3VjMzVjQySDk5VjU4SDI1VjI1SDMzVjIzSDE5VjhaIiBmaWxsPSIjRUVFRUVFIi8+CjxnIGZpbHRlcj0idXJsKCNmaWx0ZXIwX2JfNTQ2Ml84MjkyMikiPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTU2LjE2MTcgNDQuNzI3Nkw1OS4wMDE0IDM0LjEyOTRINTQuMDA5NFYzMy4xMjk0SDU5LjI2OTRINjAuMDA5NEg2MC4zMDQ3TDU3LjEyNzYgNDQuOTg2NEw1Ni4xNjE3IDQ0LjcyNzZaTTYwLjU3MjYgMzIuMTI5NEg1OS41MzczTDYwLjkxMTggMjdMNjEuODc3NyAyNy4yNTg4TDYwLjU3MjYgMzIuMTI5NFpNNzAuMzEyNSAzNS45OTI5TDY3LjQ0OSAzMy4xMjk0SDY4LjUwOTRINjguODYzMkg3Ny4wMDk0VjM0LjEyOTRINjkuODYzMkw3MS43MjY3IDM1Ljk5MjlMNjYuNDMyIDQxLjI4NzdMNjUuNzI0OSA0MC41ODA1TDcwLjMxMjUgMzUuOTkyOVpNNjYuNDQ5IDMyLjEyOTRINjcuODYzMkw2Ni40MzIgMzAuNjk4Mkw2NS43MjQ5IDMxLjQwNTNMNjYuNDQ5IDMyLjEyOTRaTTUyLjMxNDMgMzEuNDA1M0w1MS42MDcyIDMwLjY5ODJMNDYuMzEyNSAzNS45OTI5TDQ4LjQ0OSAzOC4xMjk0SDQ5Ljg2MzJMNDcuNzI2NyAzNS45OTI5TDUyLjMxNDMgMzEuNDA1M1pNNTIuMzE0MyA0MC41ODA1TDUwLjg2MzIgMzkuMTI5NEg0OS40NDlMNTEuNjA3MiA0MS4yODc3TDUyLjMxNDMgNDAuNTgwNVoiIGZpbGw9ImJsYWNrIiBmaWxsLW9wYWNpdHk9IjAuOSIvPgo8L2c+CjxnIGZpbHRlcj0idXJsKCNmaWx0ZXIxX2JfNTQ2Ml84MjkyMikiPgo8cGF0aCBkPSJNMTkgOEg5OVYxNEgxOVY4WiIgZmlsbD0iYmxhY2siIGZpbGwtb3BhY2l0eT0iMC45Ii8+CjwvZz4KPHBhdGggZD0iTTI0IDExSDIzIiBzdHJva2U9IndoaXRlIi8+CjxwYXRoIGQ9Ik0yOCAxMUgyNyIgc3Ryb2tlPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNMzIgMTFIMzEiIHN0cm9rZT0id2hpdGUiLz4KPGcgZmlsdGVyPSJ1cmwoI2ZpbHRlcjJfYl81NDYyXzgyOTIyKSI+CjxjaXJjbGUgY3g9Ijk5IiBjeT0iNTQiIHI9IjE1IiBmaWxsPSJ1cmwoI3BhaW50MF9saW5lYXJfNTQ2Ml84MjkyMikiIGZpbGwtb3BhY2l0eT0iMC45Ii8+CjwvZz4KPHBhdGggZD0iTTk5IDQ3LjVWNTciIHN0cm9rZT0iYmxhY2siIHN0cm9rZS1vcGFjaXR5PSIwLjkiLz4KPHBhdGggZD0iTTk5IDU5VjYwLjUiIHN0cm9rZT0iYmxhY2siIHN0cm9rZS1vcGFjaXR5PSIwLjkiIHN0cm9rZS13aWR0aD0iMS41Ii8+CjxnIGZpbHRlcj0idXJsKCNmaWx0ZXIzX2JfNTQ2Ml84MjkyMikiPgo8ZyBmaWx0ZXI9InVybCgjZmlsdGVyNF9iXzU0NjJfODI5MjIpIj4KPHBhdGggZD0iTTM3LjcxMDIgNjhMNDAuMjgxMiA1NC4yODU3TDAuMDAxNDgzOTIgMzhMMzcuNzEwMiA2OFoiIGZpbGw9IiNDNUM1QzUiLz4KPC9nPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTM1LjE0NzcgNTcuNzE0M0wzNy43MTg4IDY4TDI4LjYzOTkgNjAuNzc3MUwzNS4xNDY3IDU3LjcxNDdMMC4wMTQxMDY4IDM4LjAwMzJMMC4wMTIwNzM1IDM4LjAwMTZMMC4wMTUxMjUzIDM4LjAwMjlMMzUuMTQ3NyA1Ny43MTQzWk0wLjAxMjA2MjEgMzguMDAxMUwwLjAxMTE5NjEgMzguMDAwOUwwLjAxMDAzNjUgMzhMMC4wMTIwNjIxIDM4LjAwMTFaIiBmaWxsPSIjRUVFRUVFIi8+CjxnIGZpbHRlcj0idXJsKCNmaWx0ZXI1X2JfNTQ2Ml84MjkyMikiPgo8cGF0aCBkPSJNMC4wMDk0NDUxOSAzOEwyMC41Nzc4IDY0LjU3MTRMMzUuMTQ3MSA1Ny43MTQzTDAuMDA5NDQ1MTkgMzhMNDAuMjg5MiA1NC4yODU3TDQ4Ljg1OTQgNTBMMC4wMDk0NDUxOSAzOFoiIGZpbGw9IiNEQ0RDREMiLz4KPC9nPgo8L2c+CjxkZWZzPgo8ZmlsdGVyIGlkPSJmaWx0ZXIwX2JfNTQ2Ml84MjkyMiIgeD0iNDIuMzEyNSIgeT0iMjMiIHdpZHRoPSIzOC42OTUzIiBoZWlnaHQ9IjI1Ljk4NjUiIGZpbHRlclVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzPSJzUkdCIj4KPGZlRmxvb2QgZmxvb2Qtb3BhY2l0eT0iMCIgcmVzdWx0PSJCYWNrZ3JvdW5kSW1hZ2VGaXgiLz4KPGZlR2F1c3NpYW5CbHVyIGluPSJCYWNrZ3JvdW5kSW1hZ2VGaXgiIHN0ZERldmlhdGlvbj0iMiIvPgo8ZmVDb21wb3NpdGUgaW4yPSJTb3VyY2VBbHBoYSIgb3BlcmF0b3I9ImluIiByZXN1bHQ9ImVmZmVjdDFfYmFja2dyb3VuZEJsdXJfNTQ2Ml84MjkyMiIvPgo8ZmVCbGVuZCBtb2RlPSJub3JtYWwiIGluPSJTb3VyY2VHcmFwaGljIiBpbjI9ImVmZmVjdDFfYmFja2dyb3VuZEJsdXJfNTQ2Ml84MjkyMiIgcmVzdWx0PSJzaGFwZSIvPgo8L2ZpbHRlcj4KPGZpbHRlciBpZD0iZmlsdGVyMV9iXzU0NjJfODI5MjIiIHg9IjE1IiB5PSI0IiB3aWR0aD0iODgiIGhlaWdodD0iMTQiIGZpbHRlclVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzPSJzUkdCIj4KPGZlRmxvb2QgZmxvb2Qtb3BhY2l0eT0iMCIgcmVzdWx0PSJCYWNrZ3JvdW5kSW1hZ2VGaXgiLz4KPGZlR2F1c3NpYW5CbHVyIGluPSJCYWNrZ3JvdW5kSW1hZ2VGaXgiIHN0ZERldmlhdGlvbj0iMiIvPgo8ZmVDb21wb3NpdGUgaW4yPSJTb3VyY2VBbHBoYSIgb3BlcmF0b3I9ImluIiByZXN1bHQ9ImVmZmVjdDFfYmFja2dyb3VuZEJsdXJfNTQ2Ml84MjkyMiIvPgo8ZmVCbGVuZCBtb2RlPSJub3JtYWwiIGluPSJTb3VyY2VHcmFwaGljIiBpbjI9ImVmZmVjdDFfYmFja2dyb3VuZEJsdXJfNTQ2Ml84MjkyMiIgcmVzdWx0PSJzaGFwZSIvPgo8L2ZpbHRlcj4KPGZpbHRlciBpZD0iZmlsdGVyMl9iXzU0NjJfODI5MjIiIHg9Ijc4LjY2NjciIHk9IjMzLjY2NjciIHdpZHRoPSI0MC42NjY3IiBoZWlnaHQ9IjQwLjY2NjciIGZpbHRlclVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzPSJzUkdCIj4KPGZlRmxvb2QgZmxvb2Qtb3BhY2l0eT0iMCIgcmVzdWx0PSJCYWNrZ3JvdW5kSW1hZ2VGaXgiLz4KPGZlR2F1c3NpYW5CbHVyIGluPSJCYWNrZ3JvdW5kSW1hZ2VGaXgiIHN0ZERldmlhdGlvbj0iMi42NjY2NyIvPgo8ZmVDb21wb3NpdGUgaW4yPSJTb3VyY2VBbHBoYSIgb3BlcmF0b3I9ImluIiByZXN1bHQ9ImVmZmVjdDFfYmFja2dyb3VuZEJsdXJfNTQ2Ml84MjkyMiIvPgo8ZmVCbGVuZCBtb2RlPSJub3JtYWwiIGluPSJTb3VyY2VHcmFwaGljIiBpbjI9ImVmZmVjdDFfYmFja2dyb3VuZEJsdXJfNTQ2Ml84MjkyMiIgcmVzdWx0PSJzaGFwZSIvPgo8L2ZpbHRlcj4KPGZpbHRlciBpZD0iZmlsdGVyM19iXzU0NjJfODI5MjIiIHg9Ii0yLjMyMzYzIiB5PSIzNS42NzY0IiB3aWR0aD0iNTMuNTA2NiIgaGVpZ2h0PSIzNC42NDczIiBmaWx0ZXJVbml0cz0idXNlclNwYWNlT25Vc2UiIGNvbG9yLWludGVycG9sYXRpb24tZmlsdGVycz0ic1JHQiI+CjxmZUZsb29kIGZsb29kLW9wYWNpdHk9IjAiIHJlc3VsdD0iQmFja2dyb3VuZEltYWdlRml4Ii8+CjxmZUdhdXNzaWFuQmx1ciBpbj0iQmFja2dyb3VuZEltYWdlRml4IiBzdGREZXZpYXRpb249IjEuMTYxODIiLz4KPGZlQ29tcG9zaXRlIGluMj0iU291cmNlQWxwaGEiIG9wZXJhdG9yPSJpbiIgcmVzdWx0PSJlZmZlY3QxX2JhY2tncm91bmRCbHVyXzU0NjJfODI5MjIiLz4KPGZlQmxlbmQgbW9kZT0ibm9ybWFsIiBpbj0iU291cmNlR3JhcGhpYyIgaW4yPSJlZmZlY3QxX2JhY2tncm91bmRCbHVyXzU0NjJfODI5MjIiIHJlc3VsdD0ic2hhcGUiLz4KPC9maWx0ZXI+CjxmaWx0ZXIgaWQ9ImZpbHRlcjRfYl81NDYyXzgyOTIyIiB4PSItMi4zMjM2MyIgeT0iMzUuNjc2NCIgd2lkdGg9IjQ0LjkyODUiIGhlaWdodD0iMzQuNjQ3MyIgZmlsdGVyVW5pdHM9InVzZXJTcGFjZU9uVXNlIiBjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnM9InNSR0IiPgo8ZmVGbG9vZCBmbG9vZC1vcGFjaXR5PSIwIiByZXN1bHQ9IkJhY2tncm91bmRJbWFnZUZpeCIvPgo8ZmVHYXVzc2lhbkJsdXIgaW49IkJhY2tncm91bmRJbWFnZUZpeCIgc3RkRGV2aWF0aW9uPSIxLjE2MTgyIi8+CjxmZUNvbXBvc2l0ZSBpbjI9IlNvdXJjZUFscGhhIiBvcGVyYXRvcj0iaW4iIHJlc3VsdD0iZWZmZWN0MV9iYWNrZ3JvdW5kQmx1cl81NDYyXzgyOTIyIi8+CjxmZUJsZW5kIG1vZGU9Im5vcm1hbCIgaW49IlNvdXJjZUdyYXBoaWMiIGluMj0iZWZmZWN0MV9iYWNrZ3JvdW5kQmx1cl81NDYyXzgyOTIyIiByZXN1bHQ9InNoYXBlIi8+CjwvZmlsdGVyPgo8ZmlsdGVyIGlkPSJmaWx0ZXI1X2JfNTQ2Ml84MjkyMiIgeD0iLTYuNjU4MzkiIHk9IjMxLjMzMzgiIHdpZHRoPSI2Mi4xODQiIGhlaWdodD0iMzkuOTAzOCIgZmlsdGVyVW5pdHM9InVzZXJTcGFjZU9uVXNlIiBjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnM9InNSR0IiPgo8ZmVGbG9vZCBmbG9vZC1vcGFjaXR5PSIwIiByZXN1bHQ9IkJhY2tncm91bmRJbWFnZUZpeCIvPgo8ZmVHYXVzc2lhbkJsdXIgaW49IkJhY2tncm91bmRJbWFnZUZpeCIgc3RkRGV2aWF0aW9uPSIzLjMzMzEiLz4KPGZlQ29tcG9zaXRlIGluMj0iU291cmNlQWxwaGEiIG9wZXJhdG9yPSJpbiIgcmVzdWx0PSJlZmZlY3QxX2JhY2tncm91bmRCbHVyXzU0NjJfODI5MjIiLz4KPGZlQmxlbmQgbW9kZT0ibm9ybWFsIiBpbj0iU291cmNlR3JhcGhpYyIgaW4yPSJlZmZlY3QxX2JhY2tncm91bmRCbHVyXzU0NjJfODI5MjIiIHJlc3VsdD0ic2hhcGUiLz4KPC9maWx0ZXI+CjxsaW5lYXJHcmFkaWVudCBpZD0icGFpbnQwX2xpbmVhcl81NDYyXzgyOTIyIiB4MT0iOTcuNTQ4NCIgeTE9IjQyLjkxMyIgeDI9Ijk3LjU0ODQiIHkyPSI2Ny43NTc4IiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+CjxzdG9wIHN0b3AtY29sb3I9IiNDNUM1QzUiIHN0b3Atb3BhY2l0eT0iMC43Ii8+CjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iI0U3RTdFNyIvPgo8L2xpbmVhckdyYWRpZW50Pgo8L2RlZnM+Cjwvc3ZnPgo=")
|
|
24
25
|
}
|
|
25
26
|
|
|
26
|
-
.
|
|
27
|
+
.wd-status .wd-status__img.wd-status--notfound > view.icon {
|
|
28
|
+
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHgAAABQCAMAAADlRUG7AAAA21BMVEUAAAARFhsTGB0SFhwTFhwRGBvHx8cSFxvExMTFxcUYGyARFhvFxcXFxcXFxcUTGBwUFhzFxcXFxcXFxcURFxy/v78SFh3GxsbDw8PGxsbPz8/GxsbFxcUSFh0SFh4RGhrKysru7u4YGBj////i4uLQ0NBZWVnf39/4+PjMzMzJyck8PDweHh7T09QAAADp6enx8fH7+/vb29vm5uZ3d3fFxcXBwcG3uLmysrKUlJTt7e0tLS3X19eLi4tKTFD19fWgoKEvMTVydXcQEhWpq6yBgoRYWl2GhoZoaGjBHIikAAAAIXRSTlMA3yCgYDAgv+9gEIKAv0BAz6CQcHAQ79+AUBDvz69QUDCqAbKDAAAC3ElEQVRo3uzTsQpCMQwFUH8lQpKhIVMoLUUQHPT/v8hG6ur0XlBfLjTDXU5pySmTyfxlzhvnN+DL+xwGPtYfw8ZJOOGEDwR/yTXCYdhJTDjhT3CtPrlfeRWthsBdy5woQwTBc1eKgFmKw2Vio3iBQ0Lgh9H0WK+AqjwL6iUCRgGHm1YYNgd0gRBY+oKxF9QGKBgCG8GCm6DDRBACK5kNMa5aDKo29kKG7Q7TjAgxq/hiMXtxE9oZXvhrnQby8jZ66mf7dbbcJgyFARgDYTF4ydJsXW3QaEk0IJiUqcdjx87y/o9UBCoUTwVFSXzFfyHB1Yd0BBK3P1zf92/SDhjcPz3dgfeDpxMHEJwQgAmNFq35CRZ90sHSlCGMgogGKMFSWk2UxydREAQJzBsaBwEKSXgU+BSgIA/mbZrwyxjDI8BngBUY5S0jAQ/C8MPhc8wKK4RFB7ZFt8XRB8OWg4Ii61XRJWl5mwJ1Mtu/bjavpt5e4JAz9VBTKO5pqMpudi/PWfZsLI0W2iJIQA9lt1qL+1hxyL/uH8VU68ZILruJcBCuehGiVOWXHa1rfCGXJyvBxFTA5A+cJAou5a6AuWzLYIdVcDXlIhFVgO8em6vaNv/tfqrGt1rXsHqRs92iCc9s2doKRdZAXDyEIpD0h/f7A1i71I8Cb7JD+Ov3jqmOkrapVocN8xiLSw7LX6ctKHtWv06u1iMyxp5JtghYfUCqBxDBVn/4wtCa0Zdj2fvEqiluTnk00fpnPDpwTKNzk8CouUlgV1OI5zUHLP9mWp8l2+IXBZYPuVHluddyEADs76GCuCy507/CYoy1NbaXJ/979EGkdPGNAirk+axkvUvvZNQuI44RVn1HYuJq6jHnI9sw8iZ/gHb5Gke5Bvkyw3mlGbyaam+K/s00Z3x9d8nWFY5QcaDH/FR9dqu9T7plbXrKf2Egodi5tpQAuWx3/T65vn/uWtqQIUOGDGnkN1enWD6JI9eiAAAAAElFTkSuQmCC")
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
.wd-status .sp{
|
|
27
32
|
width: 48px;
|
|
28
33
|
height:48px;
|
|
29
34
|
}
|
|
30
35
|
|
|
31
|
-
.
|
|
36
|
+
.wd-status .sp-circle {
|
|
32
37
|
border: 6px rgba(0,82,217,0.25) solid;
|
|
33
38
|
border-top: 6px rgba(0,82,217,1) solid;
|
|
34
39
|
border-radius: 50%;
|
|
@@ -43,3 +48,15 @@
|
|
|
43
48
|
from { transform: rotate(0deg); }
|
|
44
49
|
to { transform: rotate(359deg); }
|
|
45
50
|
}
|
|
51
|
+
|
|
52
|
+
.stack {
|
|
53
|
+
display: block;
|
|
54
|
+
padding: 12px;
|
|
55
|
+
width: 100%;
|
|
56
|
+
white-space: pre-line;
|
|
57
|
+
word-break: break-all;
|
|
58
|
+
border-radius: 6px;
|
|
59
|
+
border: 1px solid #dcdcdc;
|
|
60
|
+
max-height: 350px;
|
|
61
|
+
overflow: scroll;
|
|
62
|
+
}
|
|
@@ -387,6 +387,12 @@ export function findLoginPage() {
|
|
|
387
387
|
return pages.find((item) => item.type === 'login');
|
|
388
388
|
}
|
|
389
389
|
|
|
390
|
+
export function findStatusPage() {
|
|
391
|
+
const { app } = getApp();
|
|
392
|
+
const { pages = [] } = app.__internal__.getConfig();
|
|
393
|
+
return pages.find((item) => item.type === 'status');
|
|
394
|
+
}
|
|
395
|
+
|
|
390
396
|
let _AUTH_CONFIG_CACHE = null;
|
|
391
397
|
|
|
392
398
|
export async function getAuthConfig() {
|
|
@@ -481,6 +487,10 @@ export async function checkAuth(app, appId, $page) {
|
|
|
481
487
|
if (loginPage?.id === $page.id) {
|
|
482
488
|
return true;
|
|
483
489
|
}
|
|
490
|
+
const status = findStatusPage(app);
|
|
491
|
+
if (status?.id === $page.id) {
|
|
492
|
+
return true;
|
|
493
|
+
}
|
|
484
494
|
wx.showNavigationBarLoading();
|
|
485
495
|
const requestList = [getAccessPermission(app, appId, $page.id)];
|
|
486
496
|
// 暂时先认为有登录页则自定义登录功能开启且生效
|
|
@@ -515,11 +525,14 @@ export async function checkAuth(app, appId, $page) {
|
|
|
515
525
|
}
|
|
516
526
|
return accessData?.isAccess;
|
|
517
527
|
} catch (e) {
|
|
518
|
-
app.
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
528
|
+
if(app.__internal__?.activePage?.id === $page.id) {
|
|
529
|
+
throw new Error(formatErrorMsg(e))
|
|
530
|
+
app.showModal({
|
|
531
|
+
title: '页面鉴权失败',
|
|
532
|
+
content: formatErrorMsg(e),
|
|
533
|
+
showCancel: false,
|
|
534
|
+
});
|
|
535
|
+
}
|
|
523
536
|
return false;
|
|
524
537
|
} finally {
|
|
525
538
|
wx.hideNavigationBarLoading();
|
|
@@ -101,11 +101,20 @@ export function createPage({
|
|
|
101
101
|
_isCheckingAtuh: false,
|
|
102
102
|
_expiredMessage: '',
|
|
103
103
|
weDaHasLogin: null,
|
|
104
|
+
loginError: null
|
|
104
105
|
},
|
|
105
106
|
lifetimes: {
|
|
106
107
|
attached() {
|
|
107
108
|
this._disposers = [];
|
|
108
109
|
const $page = this._getInstance();
|
|
110
|
+
const instance = $page.__internal__.mpInstance?.()
|
|
111
|
+
if( instance !== this ){
|
|
112
|
+
const currentMpInstance = this
|
|
113
|
+
$page.__internal__.mpInstance = () => {
|
|
114
|
+
console.warn('debug 获取当前 mp page 实例,禁止在生产环境使用');
|
|
115
|
+
return currentMpInstance
|
|
116
|
+
}
|
|
117
|
+
}
|
|
109
118
|
this._pageActive = true;
|
|
110
119
|
/**
|
|
111
120
|
* @deprecated
|
|
@@ -134,6 +143,10 @@ export function createPage({
|
|
|
134
143
|
},
|
|
135
144
|
detached() {
|
|
136
145
|
const $page = this._getInstance();
|
|
146
|
+
const instance = $page.__internal__.mpInstance?.()
|
|
147
|
+
if( instance === this ){
|
|
148
|
+
$page.__internal__.mpInstance = () => null
|
|
149
|
+
}
|
|
137
150
|
this._pageActive = false;
|
|
138
151
|
$page.__internal__.active = this._pageActive;
|
|
139
152
|
|
|
@@ -172,11 +185,16 @@ export function createPage({
|
|
|
172
185
|
weDaHasLogin: true,
|
|
173
186
|
});
|
|
174
187
|
createStateDataSourceVar($page.uuid, generateParamsParser({ app, $page, $w: $page.__internal__?.$w }));
|
|
175
|
-
}else {
|
|
188
|
+
} else {
|
|
176
189
|
this.setData({
|
|
177
190
|
weDaHasLogin: false,
|
|
178
191
|
});
|
|
179
192
|
}
|
|
193
|
+
} catch(e) {
|
|
194
|
+
this.setData({
|
|
195
|
+
weDaHasLogin: false,
|
|
196
|
+
loginError: { message: e.message }
|
|
197
|
+
});
|
|
180
198
|
} finally {
|
|
181
199
|
this.setData({ _isCheckingAtuh: false });
|
|
182
200
|
}
|
package/template/mp/package.json
CHANGED