jmash-core-mp 0.1.21 → 0.1.22

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.
Files changed (150) hide show
  1. package/.editorconfig +9 -9
  2. package/README.md +60 -60
  3. package/babel.config.json +34 -34
  4. package/eslint.config.mjs +7 -7
  5. package/lib/api/auth/index.d.ts +21 -21
  6. package/lib/api/auth/index.js +199 -199
  7. package/lib/api/auth/types.d.ts +86 -86
  8. package/lib/api/auth/types.js +9 -9
  9. package/lib/api/cms/index.d.ts +20 -20
  10. package/lib/api/cms/index.js +161 -161
  11. package/lib/api/cms/types.d.ts +200 -200
  12. package/lib/api/cms/types.js +1 -1
  13. package/lib/api/constant.d.ts +5 -5
  14. package/lib/api/constant.js +6 -6
  15. package/lib/api/dict/index.d.ts +18 -18
  16. package/lib/api/dict/index.js +34 -34
  17. package/lib/api/dict/types.d.ts +28 -28
  18. package/lib/api/dict/types.js +1 -1
  19. package/lib/api/dicts.d.ts +18 -18
  20. package/lib/api/dicts.js +67 -67
  21. package/lib/api/files/index.d.ts +25 -25
  22. package/lib/api/files/index.js +135 -135
  23. package/lib/api/files/types.d.ts +38 -38
  24. package/lib/api/files/types.js +1 -1
  25. package/lib/api/index.d.ts +4 -4
  26. package/lib/api/index.js +6 -6
  27. package/lib/api/myorgan/types.d.ts +22 -22
  28. package/lib/api/myorgan/types.js +1 -1
  29. package/lib/api/region/index.d.ts +7 -7
  30. package/lib/api/region/index.js +19 -19
  31. package/lib/api/region/types.d.ts +19 -19
  32. package/lib/api/region/types.js +1 -1
  33. package/lib/api/storage/index.d.ts +10 -10
  34. package/lib/api/storage/index.js +43 -43
  35. package/lib/api/storage/types.d.ts +28 -28
  36. package/lib/api/storage/types.js +1 -1
  37. package/lib/api/types.d.ts +42 -42
  38. package/lib/api/types.js +1 -1
  39. package/lib/app.mpx.d.ts +1 -1
  40. package/lib/components/auth-user/jmash-update-user.mpx.d.ts +1 -1
  41. package/lib/components/auth-user/jmash-user.mpx.d.ts +1 -1
  42. package/lib/components/cms/jmash-cms-acticle-list.mpx.d.ts +1 -1
  43. package/lib/components/cms/jmash-cms-article-item.mpx.d.ts +1 -1
  44. package/lib/components/cms/jmash-cms-article-view.mpx.d.ts +1 -0
  45. package/lib/components/cms/jmash-cms-article.mpx.d.ts +1 -1
  46. package/lib/components/cms/jmash-cms-like.mpx.d.ts +1 -1
  47. package/lib/components/common/jmash-upload-picture.mpx.d.ts +1 -0
  48. package/lib/components/core/jmash-login.mpx.d.ts +1 -0
  49. package/lib/index.d.ts +21 -21
  50. package/lib/index.js +14 -14
  51. package/lib/packages/pages/cms/cms-article-list.mpx.d.ts +1 -1
  52. package/lib/pages/index.mpx.d.ts +1 -0
  53. package/lib/store/user.d.ts +31 -31
  54. package/lib/store/user.js +227 -227
  55. package/lib/utils/common.d.ts +35 -35
  56. package/lib/utils/common.js +166 -166
  57. package/lib/utils/config.d.ts +5 -5
  58. package/lib/utils/config.js +29 -29
  59. package/lib/utils/db.d.ts +21 -21
  60. package/lib/utils/db.js +84 -84
  61. package/lib/utils/grpc.d.ts +5 -5
  62. package/lib/utils/grpc.js +20 -20
  63. package/lib/utils/net.d.ts +7 -7
  64. package/lib/utils/net.js +15 -15
  65. package/lib/utils/request.d.ts +2 -2
  66. package/lib/utils/request.js +123 -123
  67. package/mpx.config.js +27 -27
  68. package/package.json +1 -1
  69. package/postcss.config.js +11 -11
  70. package/project.config.json +24 -24
  71. package/project.private.config.json +13 -13
  72. package/public/index.html +15 -15
  73. package/src/api/auth/index.ts +227 -227
  74. package/src/api/auth/types.ts +166 -166
  75. package/src/api/cms/index.ts +218 -218
  76. package/src/api/cms/types.ts +379 -379
  77. package/src/api/constant.ts +6 -6
  78. package/src/api/dict/index.ts +44 -44
  79. package/src/api/dict/types.ts +49 -49
  80. package/src/api/dicts.ts +72 -72
  81. package/src/api/files/index.ts +163 -163
  82. package/src/api/files/types.ts +67 -67
  83. package/src/api/index.ts +11 -11
  84. package/src/api/myorgan/types.ts +42 -42
  85. package/src/api/region/index.ts +23 -23
  86. package/src/api/region/types.ts +36 -36
  87. package/src/api/storage/index.ts +62 -62
  88. package/src/api/storage/types.ts +54 -54
  89. package/src/api/types.ts +72 -72
  90. package/src/app.mpx +71 -71
  91. package/src/components/auth-user/jmash-logout.mpx +91 -91
  92. package/src/components/auth-user/jmash-update-user.mpx +386 -386
  93. package/src/components/auth-user/jmash-update-user.web.mpx +366 -366
  94. package/src/components/auth-user/jmash-user.mpx +359 -359
  95. package/src/components/cms/jmash-cms-acticle-list.mpx +182 -182
  96. package/src/components/cms/jmash-cms-article-item.mpx +241 -241
  97. package/src/components/cms/jmash-cms-article-view.mpx +131 -131
  98. package/src/components/cms/jmash-cms-article.mpx +68 -68
  99. package/src/components/cms/jmash-cms-like.mpx +151 -151
  100. package/src/components/common/jmash-avatar-edit.mpx +153 -153
  101. package/src/components/common/jmash-cascader-region.mpx +112 -112
  102. package/src/components/common/jmash-menu.mpx +129 -129
  103. package/src/components/common/jmash-none-data.mpx +82 -82
  104. package/src/components/common/jmash-pic-swiper.mpx +71 -71
  105. package/src/components/common/jmash-popup.mpx +137 -137
  106. package/src/components/common/jmash-search.mpx +126 -126
  107. package/src/components/common/jmash-single-btn.mpx +53 -53
  108. package/src/components/common/jmash-stepper.mpx +214 -214
  109. package/src/components/common/jmash-tab-bar.mpx +50 -50
  110. package/src/components/common/jmash-textarea.mpx +88 -88
  111. package/src/components/common/jmash-top-navigation.mpx +203 -203
  112. package/src/components/common/jmash-upload-picture.mpx +129 -126
  113. package/src/components/core/jmash-cms-protocol.mpx +66 -66
  114. package/src/components/core/jmash-login.ali.mpx +284 -284
  115. package/src/components/core/jmash-login.mpx +348 -348
  116. package/src/components/core/jmash-login.web.mpx +421 -421
  117. package/src/components/core/jmash-popup-login.ali.mpx +311 -311
  118. package/src/components/core/jmash-popup-login.mpx +415 -415
  119. package/src/components/core/jmash-popup-login.web.mpx +389 -389
  120. package/src/custom-tab-bar/index.mpx +10 -10
  121. package/src/global.d.ts +11 -11
  122. package/src/index.ts +71 -71
  123. package/src/packages/index.mpx +10 -10
  124. package/src/packages/pages/auth/cms-protocol.mpx +31 -31
  125. package/src/packages/pages/auth/login.mpx +59 -59
  126. package/src/packages/pages/auth/update-user.mpx +17 -17
  127. package/src/packages/pages/cms/cms-article-list.mpx +164 -164
  128. package/src/packages/pages/cms/cms-article.mpx +32 -32
  129. package/src/pages/basic-component.mpx +30 -30
  130. package/src/pages/half-home.mpx +58 -58
  131. package/src/pages/home.mpx +52 -52
  132. package/src/pages/home2.mpx +47 -47
  133. package/src/pages/index.mpx +13 -3
  134. package/src/pages/tabbar/home.mpx +77 -77
  135. package/src/pages/tabbar/my.mpx +80 -80
  136. package/src/store/user.ts +270 -270
  137. package/src/styles/index.scss +20 -20
  138. package/src/styles/vars.scss +27 -27
  139. package/src/utils/common.ts +179 -179
  140. package/src/utils/config.ts +35 -35
  141. package/src/utils/db.ts +100 -100
  142. package/src/utils/grpc.ts +21 -21
  143. package/src/utils/net.ts +18 -18
  144. package/src/utils/request.ts +134 -134
  145. package/static/ali/mini.project.json +4 -4
  146. package/static/dd/project.config.json +15 -15
  147. package/static/swan/project.swan.json +14 -14
  148. package/static/tt/project.config.json +11 -11
  149. package/static/wx/project.config.json +40 -40
  150. package/uno.config.js +9 -9
@@ -1,284 +1,284 @@
1
- <template>
2
- <slot name="before"></slot>
3
- <view class="login_box">
4
- <!-- 手机号授权按钮 -->
5
- <button open-type="getAuthorize" scope="phoneNumber" style="{{ loginStyle }}" onGetAuthorize="onPhoneAuthSuccess"
6
- onError="onPhoneAuthFail" a:if="{{ agreeStatus }}">手机号授权登录</button>
7
- <button onTap="onLoginCheck" style="{{ loginStyle }}" a:else>授权登录</button>
8
-
9
- <checkbox-group onChange="agreeChange" class="protocol_agree" a:if="{{ showPrivacyPolicy }}">
10
- <label>
11
- <checkbox value="{{ agreeStatus+'' }}" checked="{{ agreeStatus }}" color="{{ checkedColor }}" />
12
- 已阅读
13
- <text id="user" style="{{ agreementStyle }}" onTap="goPolicyInfo">《用户使用协议》</text>
14
- <text id="privacy" style="{{ agreementStyle }}" onTap="goPolicyInfo">《隐私权政策》</text>
15
- </label>
16
- </checkbox-group>
17
- <slot name="after"></slot>
18
- </view>
19
- </template>
20
-
21
- <script lang="ts">
22
- import { useUserStore } from '../../store/user'
23
- import mpx, { createComponent, ref } from '@mpxjs/core'
24
-
25
- createComponent({
26
- options: {
27
- multipleSlots: true,
28
- },
29
- properties: {
30
- // 登录按钮样式
31
- loginStyle: {
32
- type: String,
33
- value:
34
- "width: 100%;background-color: #2563EB;color: #fff;font-size: 15px;",
35
- },
36
- // 单选框选中的颜色
37
- checkedColor: {
38
- type: String,
39
- value: "#0551ff",
40
- },
41
-
42
- // 协议样式
43
- agreementStyle: {
44
- type: String,
45
- value: "color: #0551ff",
46
- },
47
-
48
- //登录后跳转页面
49
- backurl: {
50
- type: String,
51
- value: "/pages/home",
52
- },
53
- // 登录后跳转方式 "redirectTo switchTab reLaunch navigateTo"
54
- linkType: {
55
- type: String,
56
- value: "redirectTo",
57
- },
58
- //遮罩层效果
59
- isShowModel: {
60
- type: Boolean,
61
- value: false,
62
- },
63
- // 是否显示隐私协议和政策
64
- showPrivacyPolicy: {
65
- type: Boolean,
66
- value: true
67
- }
68
- },
69
- setup(props) {
70
- let agreeStatus = ref(false);
71
- let userStore = useUserStore();
72
- return {
73
- agreeStatus,
74
- userStore
75
- };
76
- },
77
- methods: {
78
- // 协议勾选事件
79
- agreeChange() {
80
- this.agreeStatus = !this.agreeStatus;
81
- },
82
- // 跳转隐私协议
83
- goPolicyInfo(e: any) {
84
- const id = e.currentTarget.id
85
- this.triggerEvent("policy", id);
86
- mpx.navigateTo({
87
- url: '/jmash/pages/auth/cms-protocol?channelAlias=' + id
88
- });
89
- },
90
- // 登录前检查
91
- onLoginCheck() {
92
- console.log("登录前检查");
93
- if (!this.agreeStatus && this.showPrivacyPolicy) {
94
- mpx.showModal({
95
- title: "提示",
96
- content: "您是否已阅读《用户使用协议》《隐私权政策》?",
97
- success: (res) => {
98
- if (res.confirm) {
99
- this.agreeStatus = true;
100
- }
101
- },
102
- });
103
- }
104
- },
105
- // 手机号授权成功回调
106
- onPhoneAuthSuccess() {
107
- mpx.showLoading({
108
- title: '登录中...',
109
- mask: true
110
- });
111
- console.log("手机号授权成功");
112
- // 支付宝小程序获取手机号
113
- my.getPhoneNumber({
114
- success: (res: any) => {
115
- console.log("手机号授权", res);
116
- const { response } = res;
117
- this.userStore.mpRegister(response, this.nameValue, this.avatarUrl).then((resp) => {
118
- mpx.hideLoading();
119
- if (resp.status === false) {
120
- mpx.showToast({
121
- title: resp.message ? resp.message : "登录失败联系管理员",
122
- icon: "none",
123
- duration: 2000,
124
- });
125
- return;
126
- }
127
- const backurl = decodeURIComponent(this.backurl);
128
- if (this.linkType === "switchTab") {
129
- mpx.switchTab({ url: backurl });
130
- } else if (this.linkType === "navigateTo") {
131
- mpx.navigateTo({ url: backurl });
132
- } else if (this.linkType === "redirectTo") {
133
- mpx.redirectTo({ url: backurl });
134
- } else {
135
- mpx.reLaunch({ url: backurl });
136
- }
137
- }).catch(() => {
138
- mpx.hideLoading();
139
- });
140
- },
141
- fail: () => {
142
- mpx.hideLoading();
143
- mpx.showToast({
144
- title: "您已取消授权",
145
- icon: "none",
146
- duration: 2000,
147
- });
148
- }
149
- });
150
- },
151
- // 手机号授权失败回调
152
- onPhoneAuthFail() {
153
- mpx.showToast({
154
- title: "手机号授权失败",
155
- icon: "none",
156
- duration: 2000,
157
- });
158
- }
159
- }
160
- })
161
- </script>
162
-
163
- <style lang="scss">
164
- @use "../../styles/index.scss" as *;
165
-
166
- $primary: #07c160;
167
- $primary-dark: #06ad56;
168
- $text-1: #111111;
169
- $text-2: #555555;
170
- $text-3: #888888;
171
- $border: #d0d0d0;
172
- $bg-page: #f2f2f2;
173
- $bg-card: #ffffff;
174
-
175
- .login_box {
176
- padding: 13% 3% 4%;
177
- display: flex;
178
- flex-direction: column;
179
- align-items: center;
180
-
181
- .login_btn {
182
- background-color: $blue-color;
183
- color: $white-color;
184
- padding: 16px 0;
185
- width: $width;
186
- font-size: $font-size;
187
- }
188
-
189
- .protocol_agree {
190
- color: $font-color-grey-opacity;
191
- font-size: $font-size;
192
- margin-top: 20px;
193
-
194
- text {
195
- color: $blue-color;
196
- }
197
- }
198
-
199
- .user-info-section {
200
- display: flex;
201
- flex-direction: column;
202
- align-items: center;
203
- margin-bottom: 48rpx;
204
- padding: 40rpx;
205
- background: $bg-card;
206
- border-radius: 24rpx;
207
- width: 100%;
208
-
209
- .user-avatar {
210
- width: 160rpx;
211
- height: 160rpx;
212
- border-radius: 50%;
213
- border: 4rpx solid $primary;
214
- margin-bottom: 24rpx;
215
- }
216
-
217
- .user-name {
218
- font-size: 36rpx;
219
- font-weight: 600;
220
- color: $text-1;
221
- margin-bottom: 12rpx;
222
- }
223
-
224
- .info-tip {
225
- font-size: 24rpx;
226
- color: $primary;
227
- }
228
- }
229
-
230
- .auth-section {
231
- width: 100%;
232
- margin-bottom: 48rpx;
233
-
234
- .auth-user-btn {
235
- display: flex;
236
- align-items: center;
237
- background: $bg-card;
238
- border-radius: 24rpx;
239
- padding: 32rpx;
240
- width: 100%;
241
- border: 2rpx dashed $border;
242
- transition: all 0.3s;
243
-
244
- .auth-avatar {
245
- width: 100rpx;
246
- height: 100rpx;
247
- border-radius: 50%;
248
- margin-right: 28rpx;
249
- flex-shrink: 0;
250
- }
251
-
252
- .auth-content {
253
- flex: 1;
254
- display: flex;
255
- flex-direction: column;
256
-
257
- .auth-title {
258
- font-size: 32rpx;
259
- font-weight: 600;
260
- color: $text-1;
261
- margin-bottom: 8rpx;
262
- }
263
-
264
- .auth-desc {
265
- font-size: 24rpx;
266
- color: $text-3;
267
- }
268
- }
269
- }
270
-
271
- .auth-user-btn:active {
272
- background: $bg-page;
273
- border-color: $primary;
274
- }
275
- }
276
- }
277
- </style>
278
-
279
- <script type="application/json">
280
- {
281
- "component": true,
282
- "usingComponents": {}
283
- }
284
- </script>
1
+ <template>
2
+ <slot name="before"></slot>
3
+ <view class="login_box">
4
+ <!-- 手机号授权按钮 -->
5
+ <button open-type="getAuthorize" scope="phoneNumber" style="{{ loginStyle }}" onGetAuthorize="onPhoneAuthSuccess"
6
+ onError="onPhoneAuthFail" a:if="{{ agreeStatus }}">手机号授权登录</button>
7
+ <button onTap="onLoginCheck" style="{{ loginStyle }}" a:else>授权登录</button>
8
+
9
+ <checkbox-group onChange="agreeChange" class="protocol_agree" a:if="{{ showPrivacyPolicy }}">
10
+ <label>
11
+ <checkbox value="{{ agreeStatus+'' }}" checked="{{ agreeStatus }}" color="{{ checkedColor }}" />
12
+ 已阅读
13
+ <text id="user" style="{{ agreementStyle }}" onTap="goPolicyInfo">《用户使用协议》</text>
14
+ <text id="privacy" style="{{ agreementStyle }}" onTap="goPolicyInfo">《隐私权政策》</text>
15
+ </label>
16
+ </checkbox-group>
17
+ <slot name="after"></slot>
18
+ </view>
19
+ </template>
20
+
21
+ <script lang="ts">
22
+ import { useUserStore } from '../../store/user'
23
+ import mpx, { createComponent, ref } from '@mpxjs/core'
24
+
25
+ createComponent({
26
+ options: {
27
+ multipleSlots: true,
28
+ },
29
+ properties: {
30
+ // 登录按钮样式
31
+ loginStyle: {
32
+ type: String,
33
+ value:
34
+ "width: 100%;background-color: #2563EB;color: #fff;font-size: 15px;",
35
+ },
36
+ // 单选框选中的颜色
37
+ checkedColor: {
38
+ type: String,
39
+ value: "#0551ff",
40
+ },
41
+
42
+ // 协议样式
43
+ agreementStyle: {
44
+ type: String,
45
+ value: "color: #0551ff",
46
+ },
47
+
48
+ //登录后跳转页面
49
+ backurl: {
50
+ type: String,
51
+ value: "/pages/home",
52
+ },
53
+ // 登录后跳转方式 "redirectTo switchTab reLaunch navigateTo"
54
+ linkType: {
55
+ type: String,
56
+ value: "redirectTo",
57
+ },
58
+ //遮罩层效果
59
+ isShowModel: {
60
+ type: Boolean,
61
+ value: false,
62
+ },
63
+ // 是否显示隐私协议和政策
64
+ showPrivacyPolicy: {
65
+ type: Boolean,
66
+ value: true
67
+ }
68
+ },
69
+ setup(props) {
70
+ let agreeStatus = ref(false);
71
+ let userStore = useUserStore();
72
+ return {
73
+ agreeStatus,
74
+ userStore
75
+ };
76
+ },
77
+ methods: {
78
+ // 协议勾选事件
79
+ agreeChange() {
80
+ this.agreeStatus = !this.agreeStatus;
81
+ },
82
+ // 跳转隐私协议
83
+ goPolicyInfo(e: any) {
84
+ const id = e.currentTarget.id
85
+ this.triggerEvent("policy", id);
86
+ mpx.navigateTo({
87
+ url: '/jmash/pages/auth/cms-protocol?channelAlias=' + id
88
+ });
89
+ },
90
+ // 登录前检查
91
+ onLoginCheck() {
92
+ console.log("登录前检查");
93
+ if (!this.agreeStatus && this.showPrivacyPolicy) {
94
+ mpx.showModal({
95
+ title: "提示",
96
+ content: "您是否已阅读《用户使用协议》《隐私权政策》?",
97
+ success: (res) => {
98
+ if (res.confirm) {
99
+ this.agreeStatus = true;
100
+ }
101
+ },
102
+ });
103
+ }
104
+ },
105
+ // 手机号授权成功回调
106
+ onPhoneAuthSuccess() {
107
+ mpx.showLoading({
108
+ title: '登录中...',
109
+ mask: true
110
+ });
111
+ console.log("手机号授权成功");
112
+ // 支付宝小程序获取手机号
113
+ my.getPhoneNumber({
114
+ success: (res: any) => {
115
+ console.log("手机号授权", res);
116
+ const { response } = res;
117
+ this.userStore.mpRegister(response, this.nameValue, this.avatarUrl).then((resp) => {
118
+ mpx.hideLoading();
119
+ if (resp.status === false) {
120
+ mpx.showToast({
121
+ title: resp.message ? resp.message : "登录失败联系管理员",
122
+ icon: "none",
123
+ duration: 2000,
124
+ });
125
+ return;
126
+ }
127
+ const backurl = decodeURIComponent(this.backurl);
128
+ if (this.linkType === "switchTab") {
129
+ mpx.switchTab({ url: backurl });
130
+ } else if (this.linkType === "navigateTo") {
131
+ mpx.navigateTo({ url: backurl });
132
+ } else if (this.linkType === "redirectTo") {
133
+ mpx.redirectTo({ url: backurl });
134
+ } else {
135
+ mpx.reLaunch({ url: backurl });
136
+ }
137
+ }).catch(() => {
138
+ mpx.hideLoading();
139
+ });
140
+ },
141
+ fail: () => {
142
+ mpx.hideLoading();
143
+ mpx.showToast({
144
+ title: "您已取消授权",
145
+ icon: "none",
146
+ duration: 2000,
147
+ });
148
+ }
149
+ });
150
+ },
151
+ // 手机号授权失败回调
152
+ onPhoneAuthFail() {
153
+ mpx.showToast({
154
+ title: "手机号授权失败",
155
+ icon: "none",
156
+ duration: 2000,
157
+ });
158
+ }
159
+ }
160
+ })
161
+ </script>
162
+
163
+ <style lang="scss">
164
+ @use "../../styles/index.scss" as *;
165
+
166
+ $primary: #07c160;
167
+ $primary-dark: #06ad56;
168
+ $text-1: #111111;
169
+ $text-2: #555555;
170
+ $text-3: #888888;
171
+ $border: #d0d0d0;
172
+ $bg-page: #f2f2f2;
173
+ $bg-card: #ffffff;
174
+
175
+ .login_box {
176
+ padding: 13% 3% 4%;
177
+ display: flex;
178
+ flex-direction: column;
179
+ align-items: center;
180
+
181
+ .login_btn {
182
+ background-color: $blue-color;
183
+ color: $white-color;
184
+ padding: 16px 0;
185
+ width: $width;
186
+ font-size: $font-size;
187
+ }
188
+
189
+ .protocol_agree {
190
+ color: $font-color-grey-opacity;
191
+ font-size: $font-size;
192
+ margin-top: 20px;
193
+
194
+ text {
195
+ color: $blue-color;
196
+ }
197
+ }
198
+
199
+ .user-info-section {
200
+ display: flex;
201
+ flex-direction: column;
202
+ align-items: center;
203
+ margin-bottom: 48rpx;
204
+ padding: 40rpx;
205
+ background: $bg-card;
206
+ border-radius: 24rpx;
207
+ width: 100%;
208
+
209
+ .user-avatar {
210
+ width: 160rpx;
211
+ height: 160rpx;
212
+ border-radius: 50%;
213
+ border: 4rpx solid $primary;
214
+ margin-bottom: 24rpx;
215
+ }
216
+
217
+ .user-name {
218
+ font-size: 36rpx;
219
+ font-weight: 600;
220
+ color: $text-1;
221
+ margin-bottom: 12rpx;
222
+ }
223
+
224
+ .info-tip {
225
+ font-size: 24rpx;
226
+ color: $primary;
227
+ }
228
+ }
229
+
230
+ .auth-section {
231
+ width: 100%;
232
+ margin-bottom: 48rpx;
233
+
234
+ .auth-user-btn {
235
+ display: flex;
236
+ align-items: center;
237
+ background: $bg-card;
238
+ border-radius: 24rpx;
239
+ padding: 32rpx;
240
+ width: 100%;
241
+ border: 2rpx dashed $border;
242
+ transition: all 0.3s;
243
+
244
+ .auth-avatar {
245
+ width: 100rpx;
246
+ height: 100rpx;
247
+ border-radius: 50%;
248
+ margin-right: 28rpx;
249
+ flex-shrink: 0;
250
+ }
251
+
252
+ .auth-content {
253
+ flex: 1;
254
+ display: flex;
255
+ flex-direction: column;
256
+
257
+ .auth-title {
258
+ font-size: 32rpx;
259
+ font-weight: 600;
260
+ color: $text-1;
261
+ margin-bottom: 8rpx;
262
+ }
263
+
264
+ .auth-desc {
265
+ font-size: 24rpx;
266
+ color: $text-3;
267
+ }
268
+ }
269
+ }
270
+
271
+ .auth-user-btn:active {
272
+ background: $bg-page;
273
+ border-color: $primary;
274
+ }
275
+ }
276
+ }
277
+ </style>
278
+
279
+ <script type="application/json">
280
+ {
281
+ "component": true,
282
+ "usingComponents": {}
283
+ }
284
+ </script>