@cloudbase/lowcode-builder 1.8.45 → 1.8.48

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cloudbase/lowcode-builder",
3
- "version": "1.8.45",
3
+ "version": "1.8.48",
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",
@@ -33,7 +33,8 @@
33
33
  "dev:web:serve": "rm -rf dist && node ./webpack/scripts/web.pre.js && cross-env NODE_ENV=development webpack-dev-server --config ./webpack/web.config.js",
34
34
  "dev:web": "rm -rf dist && node ./webpack/scripts/web.pre.js && cross-env NODE_ENV=development webpack --config ./webpack/web.config.js && node ./webpack/scripts/web.post.js",
35
35
  "build:web": "rm -rf dist && node ./webpack/scripts/web.pre.js && cross-env NODE_ENV=production webpack --config ./webpack/web.config.js && node ./webpack/scripts/web.post.js",
36
- "build:template": "./scripts/buildTemplate.sh"
36
+ "build:template": "./scripts/buildTemplate.sh",
37
+ "publish:web": "node ./scripts/publish.ide.js"
37
38
  },
38
39
  "bugs": {
39
40
  "url": "https://github.com/TencentCloudBase/cloudbase-framework/issues"
@@ -41,8 +42,8 @@
41
42
  "dependencies": {
42
43
  "@babel/core": "7.21.4",
43
44
  "@babel/preset-env": "7.21.4",
44
- "@cloudbase/cals": "^1.0.29",
45
- "@cloudbase/lowcode-generator": "^1.8.14",
45
+ "@cloudbase/cals": "workspace:^",
46
+ "@cloudbase/lowcode-generator": "workspace:^",
46
47
  "axios": "^0.21.0",
47
48
  "browserfs": "^1.4.3",
48
49
  "browserify-zlib": "^0.2.0",
@@ -514,11 +514,11 @@
514
514
  crossorigin="anonymous"
515
515
  src="<%=
516
516
  cdnEndpoints.cdngo
517
- %>/lcap/lcap-resource-cdngo/-/release/_npm/@cloudbase/weda-cloud-sdk@1.0.45/dist/h5.browser.js"
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
521
- src="<%= cdnEndpoints.cdngo %>/lcap/lcap-resource-cdngo/-/release/_npm/acorn@8.0.4/dist/acorn.js"
521
+ src="<%= cdnEndpoints.cdngo %>/lcap/lcap-resource-cdngo/-/release/_npm/acorn@8.10.0/dist/acorn.js"
522
522
  ></script>
523
523
  <script>
524
524
  // zxing polifill
@@ -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.2d2239ac89ba2c135587.bundle.js"
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, findLoginPage } from '../util';
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.setData({
36
- toLogin: findLoginPage()
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 id="loading" class="weda-loading-container" wx:if="{{visible}}">
2
- <view class="logo">
3
- <image
4
- style="width:50px;height:50px"
5
- wx:if="{{type !== 'loading'}}"
6
- src="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PG1hc2sgaWQ9ImEiIHN0eWxlPSJtYXNrLXR5cGU6YWxwaGEiIG1hc2tVbml0cz0idXNlclNwYWNlT25Vc2UiIHg9IjAiIHk9IjIiIHdpZHRoPSIxMCIgaGVpZ2h0PSIxNiI+PHBhdGggZD0iTS42MiAyLjE0M2g5LjMxNFYxNy44MkguNjJWMi4xNDN6IiBmaWxsPSIjZmZmIi8+PC9tYXNrPjxnIG1hc2s9InVybCgjYSkiPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNOS45MzMgMTBsLTQuMzIgNy40ODRhLjY3Mi42NzIgMCAwMS0uOTE4LjI0NmwtMy40MDMtMS45NjRBMS4zNDQgMS4zNDQgMCAwMS42MiAxNC42VjUuNGMwLS40OC4yNTYtLjkyNC42NzItMS4xNjRsMy4zMTItMS45MTJjLjQxNS0uMjQuOTI4LS4yNCAxLjM0NCAwbDMuOTg1IDIuM0wxLjY0MSA5LjQyYS42NzIuNjcyIDAgMDAwIDEuMTYzTDQuNjA3IDEyLjNjLjQxNi4yNDIuOTMuMjQyIDEuMzQ2LjAwMWwzLjk4LTIuM3oiIGZpbGw9IiMwMEE4NzAiLz48L2c+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik05LjkzNCAxMGw0LjMyLTcuNDg0YS42NzIuNjcyIDAgMDEuOTE4LS4yNDZsMy40MDMgMS45NjRjLjQxNi4yNC42NzIuNjg0LjY3MiAxLjE2NVYxNC42YzAgLjQ4LS4yNTYuOTI0LS42NzIgMS4xNjRsLTMuMzEyIDEuOTEyYy0uNDE1LjI0LS45MjguMjQtMS4zNDQgMGwtMy45ODUtMi4zIDguMjkyLTQuNzk2YS42NzIuNjcyIDAgMDAwLTEuMTYzTDE1LjI2IDcuN2ExLjM0NCAxLjM0NCAwIDAwLTEuMzQ2IDBMOS45MzQgMTB6IiBmaWxsPSIjNDc4N0YwIi8+PC9zdmc+"
7
- />
8
- <view wx:if="{{type === 'loading'}}" class="sp sp-circle"></view>
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
- .weda-loading-container {
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: 0 20px;
11
+ padding: 40rpx;
12
12
  }
13
- .weda-loading-container .logo {
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-top: -200rpx;
19
- margin-bottom: 50rpx;
18
+ margin-bottom: 10px;
20
19
  }
21
20
 
22
- .weda-loading-container .text {
23
- font-size: 14px;
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
- .weda-loading-container .sp{
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
- .weda-loading-container .sp-circle {
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.showModal({
519
- title: '页面鉴权失败',
520
- content: formatErrorMsg(e),
521
- showCancel: false,
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
  }
@@ -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",
10
- "@cloudbase/weda-cloud-sdk": "1.0.45",
9
+ "@cloudbase/weda-client": "1.0.12",
10
+ "@cloudbase/weda-cloud-sdk": "1.0.46",
11
11
  "mobx": "^5.15.4",
12
12
  "lodash.get": "^4.4.2",
13
13
  "lodash.set": "^4.3.2",