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,359 +1,359 @@
1
- <template>
2
- <view class="auth-user-box">
3
- <block wx:if="{{ isLogin }}">
4
- <view class="auth-user-l" bind:tap="handleUpdateUser">
5
- <!-- 头像 -->
6
- <view class="avatar-wrapper">
7
- <image src="{{ baseUrl+'/v1/file/image/clip/200/200/' + userInfo.avatar }}" class="avatar-img"
8
- wx:if="{{ userInfo.avatar }}" mode="aspectFill"></image>
9
- <image src="{{ defaultAvatar }}" class="avatar-img" wx:elif="{{ defaultAvatar }}" mode="aspectFill"></image>
10
- <image src="{{ resourceUrl }}/images/mall/tswk.png" class="avatar-img" wx:else mode="aspectFill"></image>
11
- <!-- <view class="avatar-badge">
12
- <text class="badge-icon">✎</text>
13
- </view> -->
14
- </view>
15
-
16
- <!-- 用户信息 -->
17
- <view class="auth-user-r">
18
- <view class="user-edit">
19
- <text class="user-name" style="color: {{ userNameColor }}">{{ userInfo.realName || '微信用户' }}</text>
20
- <view class="edit-icon-bg">
21
- <text class="edit-icon">✎</text>
22
- </view>
23
- </view>
24
- <text class="user-mobile" style="color: {{ userMobileColor }}">{{ userInfo.mobilePhoneIns || '未绑定手机号'
25
- }}</text>
26
- </view>
27
-
28
- <!-- 右侧箭头 -->
29
- <!-- <view class="right-arrow" bind:tap="handleUpdateUser">
30
- <text class="arrow-icon">›</text>
31
- </view> -->
32
- </view>
33
- </block>
34
-
35
- <!-- 未登录状态 -->
36
- <view class="auth-user-l not-logged-in" wx:else>
37
- <view class="not-logged-wrapper">
38
- <view class="avatar-wrapper" bind:tap="handleLogin">
39
- <!-- <image src="{{ resourceUrl }}/images/mall/tswk.png" class="avatar-img not-logged" mode="aspectFill"></image> -->
40
- <image src="{{ defaultAvatar }}" class="avatar-img not-logged" wx:if="{{ defaultAvatar }}" mode="aspectFill">
41
- </image>
42
- <image src="{{ resourceUrl }}/images/mall/tswk.png" class="avatar-img not-logged" wx:else mode="aspectFill">
43
- </image>
44
- <view class="avatar-plus">
45
- <text class="plus-icon">+</text>
46
- </view>
47
- </view>
48
- <view class="auth-user-r">
49
- <text class="login-hint-text">登录后解锁更多功能</text>
50
- <view class="login-btn" bind:tap="handleLogin">
51
- <text class="login-text">立即登录</text>
52
- <text class="login-arrow">›</text>
53
- </view>
54
- </view>
55
- </view>
56
- </view>
57
- </view>
58
- </template>
59
-
60
- <script lang="ts">
61
- import mpx, { createComponent, ref, onShow, computed } from '@mpxjs/core'
62
- import { useUserStore } from '../../store/user'
63
- import { UserInfo } from "../../api/auth/types";
64
-
65
- createComponent({
66
- properties: {
67
- defaultAvatar: {
68
- type: String,
69
- value: ''
70
- },
71
- backurl: {
72
- type: String,
73
- value: '/pages/home'
74
- },
75
- tabbar: {
76
- type: String,
77
- value: 'false'
78
- },
79
- userNameColor: {
80
- type: String,
81
- value: '#111111'
82
- },
83
- userMobileColor: {
84
- type: String,
85
- value: '#999999'
86
- }
87
- },
88
- setup(props, context) {
89
- let config = getApp().globalData.config;
90
- let resourceUrl = ref(config.resourceUrl);
91
- let baseUrl = ref(config.baseUrl);
92
- let userInfo = ref({} as UserInfo);
93
- let userStore = useUserStore();
94
- let refreshFunc = () => {
95
- // 检查登录是否有效?
96
- if (userStore.checkLogin()) {
97
- userStore.getUserInfo().then((resp) => {
98
- userInfo.value = resp;
99
- });
100
- }
101
- };
102
- onShow(refreshFunc);
103
- //console.log(resourceUrl);
104
- const isLogin = computed(() => userStore.accessToken !== '');
105
- return { resourceUrl, baseUrl, userInfo, userStore, refreshFunc, isLogin };
106
- },
107
- methods: {
108
- handleLogin() {
109
- console.log("handleLogin");
110
- //检查登录并跳转登录
111
- this.userStore.loginOnlyAC().then(() => {
112
- //登录成功,加载业务
113
- console.log("静默登录成功");
114
- this.refreshFunc();
115
- }).catch(() => {
116
- console.log("登录失败1!", this.backurl);
117
- mpx.navigateTo({
118
- url: '/jmash/pages/auth/login' + "?backurl=" + encodeURIComponent(this.backurl) + "&tabbar=" + this.tabbar
119
- })
120
- });
121
- },
122
- handleUpdateUser() {
123
- mpx.navigateTo({
124
- url: '/jmash/pages/auth/update-user'
125
- })
126
- },
127
- }
128
-
129
- })
130
- </script>
131
-
132
- <style lang="scss">
133
- @use "../../styles/index.scss" as *;
134
-
135
- // 颜色变量
136
- $primary: #07c160;
137
- $text-1: #111111;
138
- $text-2: #666666;
139
- $text-3: #999999;
140
- $border: #e8e8e8;
141
- $bg-page: #f5f5f5;
142
- $bg-card: #ffffff;
143
-
144
- // 修改背景色从白色变到透明
145
- .auth-user-box {
146
- display: flex;
147
- align-items: center;
148
- padding: 32rpx 24rpx 32rpx 0;
149
- // background: linear-gradient(135deg, #ffffff 0%, #fafafa 100%);
150
- border-radius: 20rpx;
151
- margin: 16rpx 16rpx 24rpx 0;
152
- // box-shadow: 0 2rpx 12rpx rgba(0, 0, 0, 0.04);
153
- transition: all 0.3s;
154
- background: transparent;
155
-
156
- &:active {
157
- transform: translateY(1rpx);
158
- box-shadow: 0 1rpx 6rpx rgba(0, 0, 0, 0.06);
159
- }
160
-
161
- .auth-user-l {
162
- display: flex;
163
- align-items: center;
164
- flex: 1;
165
- width: 100%;
166
-
167
- .avatar-wrapper {
168
- position: relative;
169
- margin-right: 30rpx;
170
- flex-shrink: 0;
171
- cursor: pointer;
172
-
173
- .avatar-img {
174
- width: 130rpx;
175
- height: 130rpx;
176
- border-radius: 50%;
177
- // background-color: $bg-page;
178
- display: block;
179
- transition: all 0.3s;
180
- // border: 3rpx solid rgba(7, 193, 96, 0.1);
181
- // box-shadow: 0 4rpx 12rpx rgba(7, 193, 96, 0.1);
182
-
183
- &:active {
184
- transform: scale(1.05);
185
- }
186
-
187
- &.not-logged {
188
- opacity: 0.4;
189
- filter: grayscale(100%);
190
- box-shadow: none;
191
- }
192
- }
193
-
194
- .avatar-badge {
195
- position: absolute;
196
- right: -2rpx;
197
- bottom: -2rpx;
198
- width: 36rpx;
199
- height: 36rpx;
200
- background: $primary;
201
- border-radius: 50%;
202
- border: 2rpx solid $bg-card;
203
- display: flex;
204
- align-items: center;
205
- justify-content: center;
206
- box-shadow: 0 2rpx 6rpx rgba(7, 193, 96, 0.3);
207
-
208
- .badge-icon {
209
- font-size: 16rpx;
210
- color: #fff;
211
- }
212
- }
213
- }
214
- }
215
-
216
- .auth-user-r {
217
- flex: 1;
218
- min-width: 0;
219
-
220
- .user-edit {
221
- display: flex;
222
- align-items: center;
223
- margin-bottom: 10rpx;
224
- cursor: pointer;
225
-
226
- .user-name {
227
- font-size: 32rpx;
228
- font-weight: 600;
229
- color: $text-1;
230
- line-height: 1.2;
231
- }
232
-
233
- .edit-icon-bg {
234
- width: 36rpx;
235
- height: 36rpx;
236
- background: $primary;
237
- border-radius: 50%;
238
- display: flex;
239
- align-items: center;
240
- justify-content: center;
241
- margin-left: 8rpx;
242
-
243
- .edit-icon {
244
- font-size: 16rpx;
245
- color: #fff;
246
- }
247
- }
248
- }
249
-
250
- .user-mobile {
251
- font-size: 24rpx;
252
- color: $text-3;
253
- line-height: 1.4;
254
- }
255
- }
256
-
257
- .right-arrow {
258
- flex-shrink: 0;
259
- width: 32rpx;
260
- height: 32rpx;
261
- display: flex;
262
- align-items: center;
263
- justify-content: center;
264
-
265
- .arrow-icon {
266
- font-size: 66rpx;
267
- color: $text-3;
268
- font-weight: 300;
269
- line-height: 1;
270
- }
271
- }
272
-
273
- // 未登录状态
274
- .not-logged-in {
275
- .not-logged-wrapper {
276
- display: flex;
277
- align-items: center;
278
- width: 100%;
279
- }
280
-
281
- .avatar-wrapper {
282
- .avatar-plus {
283
- position: absolute;
284
- right: -4rpx;
285
- bottom: -4rpx;
286
- width: 40rpx;
287
- height: 40rpx;
288
- background: $primary;
289
- border-radius: 50%;
290
- border: 3rpx solid $bg-card;
291
- display: flex;
292
- align-items: center;
293
- justify-content: center;
294
- box-shadow: 0 4rpx 12rpx rgba(7, 193, 96, 0.3);
295
-
296
- .plus-icon {
297
- font-size: 36rpx;
298
- color: #fff;
299
- line-height: 1;
300
- font-weight: 300;
301
- }
302
- }
303
- }
304
-
305
- .auth-user-r {
306
- display: flex;
307
- flex-direction: column;
308
- flex: 1;
309
- min-width: 0;
310
- margin-left: 8rpx;
311
-
312
- .login-hint-text {
313
- font-size: 24rpx;
314
- color: $text-3;
315
- margin-bottom: 12rpx;
316
- line-height: 1.4;
317
- }
318
-
319
- .login-btn {
320
- display: inline-flex;
321
- align-items: center;
322
- padding: 12rpx 24rpx;
323
- background: linear-gradient(135deg, #07c160 0%, #05a050 100%);
324
- border-radius: 40rpx;
325
- cursor: pointer;
326
- box-shadow: 0 4rpx 12rpx rgba(7, 193, 96, 0.25);
327
- transition: all 0.3s;
328
- width: fit-content;
329
-
330
- &:active {
331
- transform: scale(0.98);
332
- box-shadow: 0 2rpx 6rpx rgba(7, 193, 96, 0.2);
333
- }
334
-
335
- .login-text {
336
- font-size: 26rpx;
337
- font-weight: 600;
338
- color: #fff;
339
- }
340
-
341
- .login-arrow {
342
- font-size: 30rpx;
343
- color: #fff;
344
- margin-left: 4rpx;
345
- line-height: 1;
346
- font-weight: 300;
347
- }
348
- }
349
- }
350
- }
351
- }
352
- </style>
353
-
354
- <script type="application/json">
355
- {
356
- "component": true,
357
- "usingComponents": {}
358
- }
359
- </script>
1
+ <template>
2
+ <view class="auth-user-box">
3
+ <block wx:if="{{ isLogin }}">
4
+ <view class="auth-user-l" bind:tap="handleUpdateUser">
5
+ <!-- 头像 -->
6
+ <view class="avatar-wrapper">
7
+ <image src="{{ baseUrl+'/v1/file/image/clip/200/200/' + userInfo.avatar }}" class="avatar-img"
8
+ wx:if="{{ userInfo.avatar }}" mode="aspectFill"></image>
9
+ <image src="{{ defaultAvatar }}" class="avatar-img" wx:elif="{{ defaultAvatar }}" mode="aspectFill"></image>
10
+ <image src="{{ resourceUrl }}/images/mall/tswk.png" class="avatar-img" wx:else mode="aspectFill"></image>
11
+ <!-- <view class="avatar-badge">
12
+ <text class="badge-icon">✎</text>
13
+ </view> -->
14
+ </view>
15
+
16
+ <!-- 用户信息 -->
17
+ <view class="auth-user-r">
18
+ <view class="user-edit">
19
+ <text class="user-name" style="color: {{ userNameColor }}">{{ userInfo.realName || '微信用户' }}</text>
20
+ <view class="edit-icon-bg">
21
+ <text class="edit-icon">✎</text>
22
+ </view>
23
+ </view>
24
+ <text class="user-mobile" style="color: {{ userMobileColor }}">{{ userInfo.mobilePhoneIns || '未绑定手机号'
25
+ }}</text>
26
+ </view>
27
+
28
+ <!-- 右侧箭头 -->
29
+ <!-- <view class="right-arrow" bind:tap="handleUpdateUser">
30
+ <text class="arrow-icon">›</text>
31
+ </view> -->
32
+ </view>
33
+ </block>
34
+
35
+ <!-- 未登录状态 -->
36
+ <view class="auth-user-l not-logged-in" wx:else>
37
+ <view class="not-logged-wrapper">
38
+ <view class="avatar-wrapper" bind:tap="handleLogin">
39
+ <!-- <image src="{{ resourceUrl }}/images/mall/tswk.png" class="avatar-img not-logged" mode="aspectFill"></image> -->
40
+ <image src="{{ defaultAvatar }}" class="avatar-img not-logged" wx:if="{{ defaultAvatar }}" mode="aspectFill">
41
+ </image>
42
+ <image src="{{ resourceUrl }}/images/mall/tswk.png" class="avatar-img not-logged" wx:else mode="aspectFill">
43
+ </image>
44
+ <view class="avatar-plus">
45
+ <text class="plus-icon">+</text>
46
+ </view>
47
+ </view>
48
+ <view class="auth-user-r">
49
+ <text class="login-hint-text">登录后解锁更多功能</text>
50
+ <view class="login-btn" bind:tap="handleLogin">
51
+ <text class="login-text">立即登录</text>
52
+ <text class="login-arrow">›</text>
53
+ </view>
54
+ </view>
55
+ </view>
56
+ </view>
57
+ </view>
58
+ </template>
59
+
60
+ <script lang="ts">
61
+ import mpx, { createComponent, ref, onShow, computed } from '@mpxjs/core'
62
+ import { useUserStore } from '../../store/user'
63
+ import { UserInfo } from "../../api/auth/types";
64
+
65
+ createComponent({
66
+ properties: {
67
+ defaultAvatar: {
68
+ type: String,
69
+ value: ''
70
+ },
71
+ backurl: {
72
+ type: String,
73
+ value: '/pages/home'
74
+ },
75
+ tabbar: {
76
+ type: String,
77
+ value: 'false'
78
+ },
79
+ userNameColor: {
80
+ type: String,
81
+ value: '#111111'
82
+ },
83
+ userMobileColor: {
84
+ type: String,
85
+ value: '#999999'
86
+ }
87
+ },
88
+ setup(props, context) {
89
+ let config = getApp().globalData.config;
90
+ let resourceUrl = ref(config.resourceUrl);
91
+ let baseUrl = ref(config.baseUrl);
92
+ let userInfo = ref({} as UserInfo);
93
+ let userStore = useUserStore();
94
+ let refreshFunc = () => {
95
+ // 检查登录是否有效?
96
+ if (userStore.checkLogin()) {
97
+ userStore.getUserInfo().then((resp) => {
98
+ userInfo.value = resp;
99
+ });
100
+ }
101
+ };
102
+ onShow(refreshFunc);
103
+ //console.log(resourceUrl);
104
+ const isLogin = computed(() => userStore.accessToken !== '');
105
+ return { resourceUrl, baseUrl, userInfo, userStore, refreshFunc, isLogin };
106
+ },
107
+ methods: {
108
+ handleLogin() {
109
+ console.log("handleLogin");
110
+ //检查登录并跳转登录
111
+ this.userStore.loginOnlyAC().then(() => {
112
+ //登录成功,加载业务
113
+ console.log("静默登录成功");
114
+ this.refreshFunc();
115
+ }).catch(() => {
116
+ console.log("登录失败1!", this.backurl);
117
+ mpx.navigateTo({
118
+ url: '/jmash/pages/auth/login' + "?backurl=" + encodeURIComponent(this.backurl) + "&tabbar=" + this.tabbar
119
+ })
120
+ });
121
+ },
122
+ handleUpdateUser() {
123
+ mpx.navigateTo({
124
+ url: '/jmash/pages/auth/update-user'
125
+ })
126
+ },
127
+ }
128
+
129
+ })
130
+ </script>
131
+
132
+ <style lang="scss">
133
+ @use "../../styles/index.scss" as *;
134
+
135
+ // 颜色变量
136
+ $primary: #07c160;
137
+ $text-1: #111111;
138
+ $text-2: #666666;
139
+ $text-3: #999999;
140
+ $border: #e8e8e8;
141
+ $bg-page: #f5f5f5;
142
+ $bg-card: #ffffff;
143
+
144
+ // 修改背景色从白色变到透明
145
+ .auth-user-box {
146
+ display: flex;
147
+ align-items: center;
148
+ padding: 32rpx 24rpx 32rpx 0;
149
+ // background: linear-gradient(135deg, #ffffff 0%, #fafafa 100%);
150
+ border-radius: 20rpx;
151
+ margin: 16rpx 16rpx 24rpx 0;
152
+ // box-shadow: 0 2rpx 12rpx rgba(0, 0, 0, 0.04);
153
+ transition: all 0.3s;
154
+ background: transparent;
155
+
156
+ &:active {
157
+ transform: translateY(1rpx);
158
+ box-shadow: 0 1rpx 6rpx rgba(0, 0, 0, 0.06);
159
+ }
160
+
161
+ .auth-user-l {
162
+ display: flex;
163
+ align-items: center;
164
+ flex: 1;
165
+ width: 100%;
166
+
167
+ .avatar-wrapper {
168
+ position: relative;
169
+ margin-right: 30rpx;
170
+ flex-shrink: 0;
171
+ cursor: pointer;
172
+
173
+ .avatar-img {
174
+ width: 130rpx;
175
+ height: 130rpx;
176
+ border-radius: 50%;
177
+ // background-color: $bg-page;
178
+ display: block;
179
+ transition: all 0.3s;
180
+ // border: 3rpx solid rgba(7, 193, 96, 0.1);
181
+ // box-shadow: 0 4rpx 12rpx rgba(7, 193, 96, 0.1);
182
+
183
+ &:active {
184
+ transform: scale(1.05);
185
+ }
186
+
187
+ &.not-logged {
188
+ opacity: 0.4;
189
+ filter: grayscale(100%);
190
+ box-shadow: none;
191
+ }
192
+ }
193
+
194
+ .avatar-badge {
195
+ position: absolute;
196
+ right: -2rpx;
197
+ bottom: -2rpx;
198
+ width: 36rpx;
199
+ height: 36rpx;
200
+ background: $primary;
201
+ border-radius: 50%;
202
+ border: 2rpx solid $bg-card;
203
+ display: flex;
204
+ align-items: center;
205
+ justify-content: center;
206
+ box-shadow: 0 2rpx 6rpx rgba(7, 193, 96, 0.3);
207
+
208
+ .badge-icon {
209
+ font-size: 16rpx;
210
+ color: #fff;
211
+ }
212
+ }
213
+ }
214
+ }
215
+
216
+ .auth-user-r {
217
+ flex: 1;
218
+ min-width: 0;
219
+
220
+ .user-edit {
221
+ display: flex;
222
+ align-items: center;
223
+ margin-bottom: 10rpx;
224
+ cursor: pointer;
225
+
226
+ .user-name {
227
+ font-size: 32rpx;
228
+ font-weight: 600;
229
+ color: $text-1;
230
+ line-height: 1.2;
231
+ }
232
+
233
+ .edit-icon-bg {
234
+ width: 36rpx;
235
+ height: 36rpx;
236
+ background: $primary;
237
+ border-radius: 50%;
238
+ display: flex;
239
+ align-items: center;
240
+ justify-content: center;
241
+ margin-left: 8rpx;
242
+
243
+ .edit-icon {
244
+ font-size: 16rpx;
245
+ color: #fff;
246
+ }
247
+ }
248
+ }
249
+
250
+ .user-mobile {
251
+ font-size: 24rpx;
252
+ color: $text-3;
253
+ line-height: 1.4;
254
+ }
255
+ }
256
+
257
+ .right-arrow {
258
+ flex-shrink: 0;
259
+ width: 32rpx;
260
+ height: 32rpx;
261
+ display: flex;
262
+ align-items: center;
263
+ justify-content: center;
264
+
265
+ .arrow-icon {
266
+ font-size: 66rpx;
267
+ color: $text-3;
268
+ font-weight: 300;
269
+ line-height: 1;
270
+ }
271
+ }
272
+
273
+ // 未登录状态
274
+ .not-logged-in {
275
+ .not-logged-wrapper {
276
+ display: flex;
277
+ align-items: center;
278
+ width: 100%;
279
+ }
280
+
281
+ .avatar-wrapper {
282
+ .avatar-plus {
283
+ position: absolute;
284
+ right: -4rpx;
285
+ bottom: -4rpx;
286
+ width: 40rpx;
287
+ height: 40rpx;
288
+ background: $primary;
289
+ border-radius: 50%;
290
+ border: 3rpx solid $bg-card;
291
+ display: flex;
292
+ align-items: center;
293
+ justify-content: center;
294
+ box-shadow: 0 4rpx 12rpx rgba(7, 193, 96, 0.3);
295
+
296
+ .plus-icon {
297
+ font-size: 36rpx;
298
+ color: #fff;
299
+ line-height: 1;
300
+ font-weight: 300;
301
+ }
302
+ }
303
+ }
304
+
305
+ .auth-user-r {
306
+ display: flex;
307
+ flex-direction: column;
308
+ flex: 1;
309
+ min-width: 0;
310
+ margin-left: 8rpx;
311
+
312
+ .login-hint-text {
313
+ font-size: 24rpx;
314
+ color: $text-3;
315
+ margin-bottom: 12rpx;
316
+ line-height: 1.4;
317
+ }
318
+
319
+ .login-btn {
320
+ display: inline-flex;
321
+ align-items: center;
322
+ padding: 12rpx 24rpx;
323
+ background: linear-gradient(135deg, #07c160 0%, #05a050 100%);
324
+ border-radius: 40rpx;
325
+ cursor: pointer;
326
+ box-shadow: 0 4rpx 12rpx rgba(7, 193, 96, 0.25);
327
+ transition: all 0.3s;
328
+ width: fit-content;
329
+
330
+ &:active {
331
+ transform: scale(0.98);
332
+ box-shadow: 0 2rpx 6rpx rgba(7, 193, 96, 0.2);
333
+ }
334
+
335
+ .login-text {
336
+ font-size: 26rpx;
337
+ font-weight: 600;
338
+ color: #fff;
339
+ }
340
+
341
+ .login-arrow {
342
+ font-size: 30rpx;
343
+ color: #fff;
344
+ margin-left: 4rpx;
345
+ line-height: 1;
346
+ font-weight: 300;
347
+ }
348
+ }
349
+ }
350
+ }
351
+ }
352
+ </style>
353
+
354
+ <script type="application/json">
355
+ {
356
+ "component": true,
357
+ "usingComponents": {}
358
+ }
359
+ </script>