@liujitcn/kratos-uni-app-core 0.0.81 → 0.0.83

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/README.md CHANGED
@@ -43,6 +43,8 @@ packages/core
43
43
 
44
44
  ## 公开入口
45
45
 
46
+ 登录页返回会清理本次回跳并替换到首页;直接打开登录页清理旧 `lastRoute`,登录成功默认进入首页。主动登录、路由守卫和会话过期重登通过 `redirect=1` 标记保留本次业务目标及查询参数,成功跳转后才清理目标。登录页每次显示都会检查有效登录态,已登录则替换回首页,避免浏览器回退重新停留在登录页。H5 与微信小程序统一使用 `reLaunch` 替换登录入口并重置应用页面栈。
47
+
46
48
  - `@liujitcn/kratos-uni-app-core`:运行时、导航、store 和组件。
47
49
  - `@liujitcn/kratos-uni-app-core/module`:模块协议和 core 模块。
48
50
  - `@liujitcn/kratos-uni-app-core/vite`:Vite 配置、页面装配插件和构建错误文案格式化器。
package/dist/module.mjs CHANGED
@@ -3,7 +3,6 @@ var corePages = {
3
3
  "pages/index/index": {
4
4
  style: {
5
5
  navigationStyle: "custom",
6
- navigationBarTextStyle: "white",
7
6
  navigationBarTitleText: ""
8
7
  }
9
8
  },
@@ -27,6 +26,7 @@ var corePages = {
27
26
 
28
27
  // src/locales/zh-CN.json
29
28
  var zh_CN_default = {
29
+ "common.action.back": "\u8FD4\u56DE",
30
30
  "common.action.cancel": "\u53D6\u6D88",
31
31
  "common.action.confirm": "\u786E\u5B9A",
32
32
  "common.action.delete": "\u5220\u9664",
@@ -37,16 +37,11 @@ var zh_CN_default = {
37
37
  "common.action.save": "\u4FDD\u5B58",
38
38
  "common.action.view": "\u67E5\u770B",
39
39
  "common.field.language": "\u8BED\u8A00",
40
- "common.language.en-US": "English",
41
- "common.language.zh-CN": "\u7B80\u4F53\u4E2D\u6587",
42
- "common.language.zh-TW": "\u7E41\u4F53\u4E2D\u6587",
43
- "common.language.ja-JP": "\u65E5\u8BED",
44
40
  "common.message.loading": "\u6B63\u5728\u52A0\u8F7D",
45
41
  "common.message.network_error": "\u7F51\u7EDC\u9519\u8BEF\uFF0C\u6362\u4E2A\u7F51\u7EDC\u8BD5\u8BD5",
46
42
  "common.message.request_error": "\u8BF7\u6C42\u9519\u8BEF",
47
43
  "common.message.unknown": "\u6682\u65F6\u65E0\u6CD5\u5904\u7406\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5",
48
44
  "common.title.notice": "\u63D0\u793A",
49
- "core.auth.login_again": "\u91CD\u65B0\u767B\u5F55",
50
45
  "core.auth.session_expired": "\u5F53\u524D\u9875\u9762\u5DF2\u5931\u6548\uFF0C\u8BF7\u91CD\u65B0\u767B\u5F55",
51
46
  "core.config.missing": "\u79FB\u52A8\u7AEF\u914D\u7F6E\u7F3A\u5931\uFF1A{names}",
52
47
  "core.crypto.base64_decode_unsupported": "\u5F53\u524D\u73AF\u5883\u4E0D\u652F\u6301 Base64 \u89E3\u7801",
@@ -61,18 +56,20 @@ var zh_CN_default = {
61
56
  "core.password.verify_label": "\u5F53\u524D\u5BC6\u7801",
62
57
  "core.file.upload_failed": "\u4E0A\u4F20\u5931\u8D25",
63
58
  "core.home.account_capability": "\u8D26\u6237\u80FD\u529B",
64
- "core.home.account_capability_description": "\u4E2A\u4EBA\u8D44\u6599\u3001\u5E94\u7528\u8BBE\u7F6E\u4E0E\u667A\u80FD\u52A9\u624B\u5165\u53E3\u5DF2\u4FDD\u7559",
59
+ "core.home.account_capability_description": "\u767B\u5F55\u3001\u4E2A\u4EBA\u8D44\u6599\u3001\u591A\u56E0\u7D20\u8BA4\u8BC1\u4E0E\u5E94\u7528\u8BBE\u7F6E\u5F00\u7BB1\u5373\u7528",
65
60
  "core.home.cross_platform": "\u8DE8\u7AEF\u9875\u9762",
66
61
  "core.home.cross_platform_description": "\u540C\u4E00\u5957\u9875\u9762\u4EE3\u7801\u9002\u914D H5 \u548C\u5FAE\u4FE1\u5C0F\u7A0B\u5E8F",
67
62
  "core.home.demo_scope": "\u529F\u80FD\u6982\u89C8",
63
+ "core.home.dynamic_config": "\u52A8\u6001\u914D\u7F6E",
64
+ "core.home.dynamic_config_description": "\u9996\u9875 Logo \u4E0E\u6807\u8BED\u652F\u6301\u540E\u53F0\u8FDC\u7A0B\u914D\u7F6E",
68
65
  "core.home.framework": "\u5E94\u7528\u6846\u67B6",
69
66
  "core.home.language": "\u5F00\u53D1\u8BED\u8A00",
70
67
  "core.home.main_title": "\u5E94\u7528\u9996\u9875",
68
+ "core.home.message_center": "\u6D88\u606F\u4E2D\u5FC3",
69
+ "core.home.message_center_description": "\u672A\u8BFB\u6D88\u606F\u7EDF\u4E00\u6536\u7EB3\uFF0C\u7EA2\u70B9\u63D0\u9192\u4E0D\u9519\u8FC7",
71
70
  "core.home.state_management": "\u72B6\u6001\u7BA1\u7406",
72
- "core.home.static_home": "\u9759\u6001\u9996\u9875",
73
- "core.home.static_home_description": "\u5F53\u524D\u9996\u9875\u7528\u4E8E\u5C55\u793A\u6846\u67B6\u4FE1\u606F\uFF0C\u4E0D\u4F9D\u8D56\u4E1A\u52A1\u63A5\u53E3",
74
71
  "core.home.style_solution": "\u6837\u5F0F\u65B9\u6848",
75
- "core.home.sub_title": "\u4FDD\u7559\u901A\u7528\u5BFC\u822A\u4E0E\u4E2A\u4EBA\u4E2D\u5FC3\u4F53\u9A8C",
72
+ "core.home.sub_title": "\u8D26\u53F7\u3001\u6D88\u606F\u4E0E\u667A\u80FD\u52A9\u624B\uFF0C\u4E00\u7AD9\u89E6\u8FBE",
76
73
  "core.home.tech_stack": "\u5F53\u524D\u6280\u672F\u6808",
77
74
  "core.login.agree_prefix": "\u6211\u5DF2\u9605\u8BFB\u5E76\u540C\u610F",
78
75
  "core.login.agree_separator": "\u548C",
@@ -95,7 +92,6 @@ var zh_CN_default = {
95
92
  "core.login.mfa_recovery_code": "\u6062\u590D\u7801\uFF08\u53EF\u9009\uFF09",
96
93
  "core.login.mfa_setup_title": "\u7ED1\u5B9A\u591A\u56E0\u7D20\u8BA4\u8BC1",
97
94
  "core.login.mfa_copy_uri": "\u590D\u5236\u7ED1\u5B9A\u5730\u5740",
98
- "core.login.mfa_copy_success": "\u7ED1\u5B9A\u5730\u5740\u5DF2\u590D\u5236",
99
95
  "core.login.mfa_recovery_codes_copied": "\u6062\u590D\u7801\u5DF2\u590D\u5236",
100
96
  "core.login.mfa_recovery_codes_title": "\u4FDD\u5B58 MFA \u6062\u590D\u7801",
101
97
  "core.login.mfa_recovery_codes_warning": "\u6BCF\u4E2A\u6062\u590D\u7801\u53EA\u80FD\u4F7F\u7528\u4E00\u6B21\uFF0C\u6B64\u5F39\u7A97\u5173\u95ED\u540E\u4E0D\u4F1A\u518D\u6B21\u663E\u793A\u3002",
@@ -168,14 +164,7 @@ var zh_CN_default = {
168
164
  "core.webview.embed_blocked": "\u5F53\u524D H5 \u9875\u9762\u53EF\u80FD\u88AB\u76EE\u6807\u7AD9\u70B9\u9650\u5236\u5D4C\u5165",
169
165
  "core.webview.invalid_url": "\u7F3A\u5C11\u6709\u6548\u94FE\u63A5\u5730\u5740",
170
166
  "core.webview.open_failed": "\u94FE\u63A5\u65E0\u6CD5\u6253\u5F00",
171
- "common.value.top_level": "\u9876\u7EA7\u8282\u70B9",
172
- "common.resource.default": "{resource}",
173
- "common.action.delete_resource": "\u5220\u9664{resource}",
174
- "common.action.set_field_status": "\u8BBE\u7F6E{field}",
175
167
  "common.action.load_more": "\u52A0\u8F7D\u66F4\u591A",
176
- "common.status.loading": "\u52A0\u8F7D\u4E2D\u2026",
177
- "core.navigation.analytics": "\u5206\u6790",
178
- "core.navigation.report": "\u62A5\u8868",
179
168
  "core.settings.theme": "\u4E3B\u9898\u5916\u89C2",
180
169
  "core.theme.auto": "\u8DDF\u968F\u7CFB\u7EDF",
181
170
  "core.theme.dark": "\u6697\u9ED1",
@@ -184,6 +173,7 @@ var zh_CN_default = {
184
173
 
185
174
  // src/locales/en-US.json
186
175
  var en_US_default = {
176
+ "common.action.back": "Back",
187
177
  "common.action.cancel": "Cancel",
188
178
  "common.action.confirm": "Confirm",
189
179
  "common.action.delete": "Delete",
@@ -194,16 +184,11 @@ var en_US_default = {
194
184
  "common.action.save": "Save",
195
185
  "common.action.view": "View",
196
186
  "common.field.language": "Language",
197
- "common.language.en-US": "English",
198
- "common.language.zh-CN": "\u7B80\u4F53\u4E2D\u6587",
199
- "common.language.zh-TW": "Traditional Chinese",
200
- "common.language.ja-JP": "Japanese",
201
187
  "common.message.loading": "Loading",
202
188
  "common.message.network_error": "Network error. Check your connection and try again.",
203
189
  "common.message.request_error": "Request failed",
204
190
  "common.message.unknown": "Unable to process this request. Try again later.",
205
191
  "common.title.notice": "Notice",
206
- "core.auth.login_again": "Log in again",
207
192
  "core.auth.session_expired": "Your session has expired. Please log in again.",
208
193
  "core.config.missing": "Missing app configuration: {names}",
209
194
  "core.crypto.base64_decode_unsupported": "Base64 decoding is not supported in this environment",
@@ -218,18 +203,20 @@ var en_US_default = {
218
203
  "core.password.verify_label": "Current password",
219
204
  "core.file.upload_failed": "Upload failed",
220
205
  "core.home.account_capability": "Account features",
221
- "core.home.account_capability_description": "Profile, app settings, and AI assistant access are included",
206
+ "core.home.account_capability_description": "Sign-in, profile, multi-factor authentication, and app settings out of the box",
222
207
  "core.home.cross_platform": "Cross-platform pages",
223
208
  "core.home.cross_platform_description": "One codebase for H5 and WeChat Mini Program",
224
209
  "core.home.demo_scope": "Overview",
210
+ "core.home.dynamic_config": "Dynamic config",
211
+ "core.home.dynamic_config_description": "Home logo and tagline configurable from the admin console",
225
212
  "core.home.framework": "App framework",
226
213
  "core.home.language": "Language",
227
214
  "core.home.main_title": "Application Home",
215
+ "core.home.message_center": "Message center",
216
+ "core.home.message_center_description": "Unread messages in one inbox with badge reminders",
228
217
  "core.home.state_management": "State management",
229
- "core.home.static_home": "Static home",
230
- "core.home.static_home_description": "This page presents framework details without business APIs",
231
218
  "core.home.style_solution": "Styling",
232
- "core.home.sub_title": "Shared navigation and account experience",
219
+ "core.home.sub_title": "Accounts, messages, and AI assistant in one place",
233
220
  "core.home.tech_stack": "Technology stack",
234
221
  "core.login.agree_prefix": "I have read and agree to the",
235
222
  "core.login.agree_separator": "and",
@@ -252,7 +239,6 @@ var en_US_default = {
252
239
  "core.login.mfa_recovery_code": "Recovery code (optional)",
253
240
  "core.login.mfa_setup_title": "Bind multi-factor authentication",
254
241
  "core.login.mfa_copy_uri": "Copy binding address",
255
- "core.login.mfa_copy_success": "Binding address copied",
256
242
  "core.login.mfa_recovery_codes_copied": "Recovery codes copied",
257
243
  "core.login.mfa_recovery_codes_title": "Save MFA recovery codes",
258
244
  "core.login.mfa_recovery_codes_warning": "Each code works once and will not be shown again after this dialog closes.",
@@ -325,14 +311,7 @@ var en_US_default = {
325
311
  "core.webview.embed_blocked": "The destination may block embedding on H5",
326
312
  "core.webview.invalid_url": "No valid link was provided",
327
313
  "core.webview.open_failed": "Unable to open link",
328
- "common.value.top_level": "Top level",
329
- "common.resource.default": "{resource}",
330
- "common.action.delete_resource": "Delete {resource}",
331
- "common.action.set_field_status": "Set {field}",
332
314
  "common.action.load_more": "Load more",
333
- "common.status.loading": "Loading\u2026",
334
- "core.navigation.analytics": "Analytics",
335
- "core.navigation.report": "Reports",
336
315
  "core.settings.theme": "Theme Appearance",
337
316
  "core.theme.auto": "Follow System",
338
317
  "core.theme.dark": "Dark",
@@ -341,6 +320,7 @@ var en_US_default = {
341
320
 
342
321
  // src/locales/ja-JP.json
343
322
  var ja_JP_default = {
323
+ "common.action.back": "\u623B\u308B",
344
324
  "common.action.cancel": "\u30AD\u30E3\u30F3\u30BB\u30EB",
345
325
  "common.action.confirm": "OK",
346
326
  "common.action.delete": "\u524A\u9664",
@@ -351,16 +331,11 @@ var ja_JP_default = {
351
331
  "common.action.save": "\u4FDD\u5B58",
352
332
  "common.action.view": "\u8868\u793A",
353
333
  "common.field.language": "\u8A00\u8A9E",
354
- "common.language.en-US": "\u82F1\u8A9E",
355
- "common.language.zh-CN": "\u7C21\u4F53\u5B57\u4E2D\u56FD\u8A9E",
356
- "common.language.zh-TW": "\u7E41\u4F53\u5B57\u4E2D\u56FD\u8A9E",
357
- "common.language.ja-JP": "\u65E5\u672C\u8A9E",
358
334
  "common.message.loading": "\u3092\u30ED\u30FC\u30C9\u4E2D\u3067\u3059",
359
335
  "common.message.network_error": "\u30CD\u30C3\u30C8\u30EF\u30FC\u30AF \u30A8\u30E9\u30FC\u3002\u5225\u306E\u30CD\u30C3\u30C8\u30EF\u30FC\u30AF\u3092\u8A66\u3057\u3066\u304F\u3060\u3055\u3044",
360
336
  "common.message.request_error": "\u30EA\u30AF\u30A8\u30B9\u30C8\u30A8\u30E9\u30FC",
361
337
  "common.message.unknown": "\u73FE\u5728\u51E6\u7406\u3067\u304D\u307E\u305B\u3093\u3002\u5F8C\u3067\u3082\u3046\u4E00\u5EA6\u304A\u8A66\u3057\u304F\u3060\u3055\u3044\u3002",
362
338
  "common.title.notice": "\u30D2\u30F3\u30C8",
363
- "core.auth.login_again": "\u518D\u5EA6\u30ED\u30B0\u30A4\u30F3\u3057\u3066\u304F\u3060\u3055\u3044",
364
339
  "core.auth.session_expired": "\u73FE\u5728\u306E\u30DA\u30FC\u30B8\u306F\u7121\u52B9\u3067\u3059\u3002\u518D\u5EA6\u30ED\u30B0\u30A4\u30F3\u3057\u3066\u304F\u3060\u3055\u3044\u3002",
365
340
  "core.config.missing": "\u30E2\u30D0\u30A4\u30EB\u7AEF\u672B\u306E\u8A2D\u5B9A\u304C\u3042\u308A\u307E\u305B\u3093: {names}",
366
341
  "core.crypto.base64_decode_unsupported": "\u73FE\u5728\u306E\u74B0\u5883\u306F Base64 \u30C7\u30B3\u30FC\u30C9\u3092\u30B5\u30DD\u30FC\u30C8\u3057\u3066\u3044\u307E\u305B\u3093",
@@ -375,18 +350,20 @@ var ja_JP_default = {
375
350
  "core.password.verify_label": "\u73FE\u5728\u306E\u30D1\u30B9\u30EF\u30FC\u30C9",
376
351
  "core.file.upload_failed": "\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9\u306B\u5931\u6557\u3057\u307E\u3057\u305F",
377
352
  "core.home.account_capability": "\u30A2\u30AB\u30A6\u30F3\u30C8\u306E\u6A5F\u80FD",
378
- "core.home.account_capability_description": "\u500B\u4EBA\u60C5\u5831\u3001\u30A2\u30D7\u30EA\u30B1\u30FC\u30B7\u30E7\u30F3\u8A2D\u5B9A\u3001\u30B9\u30DE\u30FC\u30C8\u30A2\u30B7\u30B9\u30BF\u30F3\u30C8\u5165\u53E3\u304C\u4E88\u7D04\u3055\u308C\u3066\u3044\u307E\u3059",
353
+ "core.home.account_capability_description": "\u30ED\u30B0\u30A4\u30F3\u3001\u30D7\u30ED\u30D5\u30A3\u30FC\u30EB\u3001\u591A\u8981\u7D20\u8A8D\u8A3C\u3001\u30A2\u30D7\u30EA\u8A2D\u5B9A\u3092\u540C\u68B1",
379
354
  "core.home.cross_platform": "\u30AF\u30ED\u30B9\u30A8\u30F3\u30C9 \u30DA\u30FC\u30B8",
380
355
  "core.home.cross_platform_description": "\u540C\u3058\u30DA\u30FC\u30B8 \u30B3\u30FC\u30C9 \u30BB\u30C3\u30C8\u304C H5 \u304A\u3088\u3073 WeChat \u30DF\u30CB \u30D7\u30ED\u30B0\u30E9\u30E0\u306B\u9069\u5FDC\u3057\u307E\u3059",
381
356
  "core.home.demo_scope": "\u6A5F\u80FD\u6982\u8981",
357
+ "core.home.dynamic_config": "\u52D5\u7684\u8A2D\u5B9A",
358
+ "core.home.dynamic_config_description": "\u30DB\u30FC\u30E0\u306E\u30ED\u30B4\u3068\u30AD\u30E3\u30C3\u30C1\u30B3\u30D4\u30FC\u306F\u7BA1\u7406\u753B\u9762\u304B\u3089\u5909\u66F4\u53EF\u80FD",
382
359
  "core.home.framework": "\u30A2\u30D7\u30EA\u30B1\u30FC\u30B7\u30E7\u30F3 \u30D5\u30EC\u30FC\u30E0\u30EF\u30FC\u30AF",
383
360
  "core.home.language": "\u958B\u767A\u8A00\u8A9E",
384
361
  "core.home.main_title": "\u30A2\u30D7\u30EA\u30B1\u30FC\u30B7\u30E7\u30F3\u30DB\u30FC\u30E0",
362
+ "core.home.message_center": "\u30E1\u30C3\u30BB\u30FC\u30B8\u30BB\u30F3\u30BF\u30FC",
363
+ "core.home.message_center_description": "\u672A\u8AAD\u30E1\u30C3\u30BB\u30FC\u30B8\u3092\u4E00\u62EC\u7BA1\u7406\u3057\u3001\u30D0\u30C3\u30B8\u3067\u304A\u77E5\u3089\u305B",
385
364
  "core.home.state_management": "\u30B9\u30C6\u30FC\u30BF\u30B9\u7BA1\u7406",
386
- "core.home.static_home": "\u9759\u7684\u30DB\u30FC\u30E0\u30DA\u30FC\u30B8",
387
- "core.home.static_home_description": "\u73FE\u5728\u306E\u30DB\u30FC\u30E0\u30DA\u30FC\u30B8\u306F\u30D5\u30EC\u30FC\u30E0\u60C5\u5831\u3092\u8868\u793A\u3059\u308B\u305F\u3081\u306B\u4F7F\u7528\u3055\u308C\u3066\u304A\u308A\u3001\u30D3\u30B8\u30CD\u30B9 \u30A4\u30F3\u30BF\u30FC\u30D5\u30A7\u30A4\u30B9\u306B\u306F\u4F9D\u5B58\u3057\u3066\u3044\u307E\u305B\u3093",
388
365
  "core.home.style_solution": "\u30B9\u30BF\u30A4\u30EB \u30B9\u30AD\u30FC\u30E0",
389
- "core.home.sub_title": "\u30E6\u30CB\u30D0\u30FC\u30B5\u30EB \u30CA\u30D3\u30B2\u30FC\u30B7\u30E7\u30F3\u3068\u30D1\u30FC\u30BD\u30CA\u30EB \u30BB\u30F3\u30BF\u30FC\u306E\u30A8\u30AF\u30B9\u30DA\u30EA\u30A8\u30F3\u30B9\u3092\u7DAD\u6301\u3057\u307E\u3059",
366
+ "core.home.sub_title": "\u30A2\u30AB\u30A6\u30F3\u30C8\u30FB\u30E1\u30C3\u30BB\u30FC\u30B8\u30FB\u30B9\u30DE\u30FC\u30C8\u30A2\u30B7\u30B9\u30BF\u30F3\u30C8\u3092\u3072\u3068\u3064\u306B",
390
367
  "core.home.tech_stack": "\u73FE\u5728\u306E\u30C6\u30AF\u30CE\u30ED\u30B8\u30FC\u30B9\u30BF\u30C3\u30AF",
391
368
  "core.login.agree_prefix": "\u8AAD\u3093\u3067\u540C\u610F\u3057\u307E\u3059",
392
369
  "core.login.agree_separator": "\u304A\u3088\u3073",
@@ -409,7 +386,6 @@ var ja_JP_default = {
409
386
  "core.login.mfa_recovery_code": "\u30EA\u30AB\u30D0\u30EA\u30FC\u30B3\u30FC\u30C9\uFF08\u4EFB\u610F\uFF09",
410
387
  "core.login.mfa_setup_title": "\u591A\u8981\u7D20\u8A8D\u8A3C\u3092\u8A2D\u5B9A",
411
388
  "core.login.mfa_copy_uri": "\u767B\u9332\u30A2\u30C9\u30EC\u30B9\u3092\u30B3\u30D4\u30FC",
412
- "core.login.mfa_copy_success": "\u767B\u9332\u30A2\u30C9\u30EC\u30B9\u3092\u30B3\u30D4\u30FC\u3057\u307E\u3057\u305F",
413
389
  "core.login.mfa_recovery_codes_copied": "\u30EA\u30AB\u30D0\u30EA\u30FC\u30B3\u30FC\u30C9\u3092\u30B3\u30D4\u30FC\u3057\u307E\u3057\u305F",
414
390
  "core.login.mfa_recovery_codes_title": "MFA \u30EA\u30AB\u30D0\u30EA\u30FC\u30B3\u30FC\u30C9\u3092\u4FDD\u5B58",
415
391
  "core.login.mfa_recovery_codes_warning": "\u5404\u30B3\u30FC\u30C9\u306F\u4E00\u5EA6\u3060\u3051\u4F7F\u7528\u3067\u304D\u3001\u30C0\u30A4\u30A2\u30ED\u30B0\u3092\u9589\u3058\u308B\u3068\u518D\u8868\u793A\u3055\u308C\u307E\u305B\u3093\u3002",
@@ -482,14 +458,7 @@ var ja_JP_default = {
482
458
  "core.webview.embed_blocked": "\u73FE\u5728\u306E H5 \u30DA\u30FC\u30B8\u306F\u3001\u30BF\u30FC\u30B2\u30C3\u30C8 \u30B5\u30A4\u30C8\u306B\u3088\u3063\u3066\u57CB\u3081\u8FBC\u307F\u304C\u5236\u9650\u3055\u308C\u3066\u3044\u308B\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059",
483
459
  "core.webview.invalid_url": "\u6709\u52B9\u306A\u30EA\u30F3\u30AF \u30A2\u30C9\u30EC\u30B9\u304C\u3042\u308A\u307E\u305B\u3093",
484
460
  "core.webview.open_failed": "\u30EA\u30F3\u30AF\u3092\u958B\u3051\u307E\u305B\u3093",
485
- "common.value.top_level": "\u30C8\u30C3\u30D7\u30EC\u30D9\u30EB",
486
- "common.resource.default": "{resource}",
487
- "common.action.delete_resource": "{resource}\u3092\u524A\u9664",
488
- "common.action.set_field_status": "{field}\u3092\u8A2D\u5B9A",
489
461
  "common.action.load_more": "\u3055\u3089\u306B\u8AAD\u307F\u8FBC\u3080",
490
- "common.status.loading": "\u8AAD\u307F\u8FBC\u307F\u4E2D\u2026",
491
- "core.navigation.analytics": "\u5206\u6790",
492
- "core.navigation.report": "\u30EC\u30DD\u30FC\u30C8",
493
462
  "core.settings.theme": "\u30C6\u30FC\u30DE\u5916\u89B3",
494
463
  "core.theme.auto": "\u30B7\u30B9\u30C6\u30E0\u306B\u5F93\u3046",
495
464
  "core.theme.dark": "\u30C0\u30FC\u30AF",
@@ -498,6 +467,7 @@ var ja_JP_default = {
498
467
 
499
468
  // src/locales/zh-TW.json
500
469
  var zh_TW_default = {
470
+ "common.action.back": "\u8FD4\u56DE",
501
471
  "common.action.cancel": "\u53D6\u6D88",
502
472
  "common.action.confirm": "\u78BA\u5B9A",
503
473
  "common.action.delete": "\u522A\u9664",
@@ -508,16 +478,11 @@ var zh_TW_default = {
508
478
  "common.action.save": "\u5132\u5B58",
509
479
  "common.action.view": "\u6AA2\u8996",
510
480
  "common.field.language": "\u8A9E\u8A00",
511
- "common.language.en-US": "English",
512
- "common.language.zh-CN": "\u7C21\u9AD4\u4E2D\u6587",
513
- "common.language.zh-TW": "\u7E41\u9AD4\u4E2D\u6587",
514
- "common.language.ja-JP": "\u65E5\u8A9E",
515
481
  "common.message.loading": "\u6B63\u5728\u8F09\u5165",
516
482
  "common.message.network_error": "\u7DB2\u8DEF\u932F\u8AA4\uFF0C\u63DB\u500B\u7DB2\u8DEF\u8A66\u8A66",
517
483
  "common.message.request_error": "\u8ACB\u6C42\u932F\u8AA4",
518
484
  "common.message.unknown": "\u66AB\u6642\u7121\u6CD5\u8655\u7406\uFF0C\u8ACB\u7A0D\u5F8C\u91CD\u8A66",
519
485
  "common.title.notice": "\u63D0\u793A",
520
- "core.auth.login_again": "\u91CD\u65B0\u767B\u5165",
521
486
  "core.auth.session_expired": "\u7576\u524D\u9801\u9762\u5DF2\u5931\u6548\uFF0C\u8ACB\u91CD\u65B0\u767B\u5165",
522
487
  "core.config.missing": "\u79FB\u52D5\u7AEF\u914D\u7F6E\u7F3A\u5931\uFF1A{names}",
523
488
  "core.crypto.base64_decode_unsupported": "\u7576\u524D\u74B0\u5883\u4E0D\u652F\u63F4 Base64 \u89E3\u78BC",
@@ -532,18 +497,20 @@ var zh_TW_default = {
532
497
  "core.password.verify_label": "\u7576\u524D\u5BC6\u78BC",
533
498
  "core.file.upload_failed": "\u4E0A\u50B3\u5931\u6557",
534
499
  "core.home.account_capability": "\u8CEC\u6236\u80FD\u529B",
535
- "core.home.account_capability_description": "\u500B\u4EBA\u8CC7\u6599\u3001\u61C9\u7528\u8A2D\u5B9A\u8207\u667A\u6167\u52A9\u624B\u5165\u53E3\u5DF2\u4FDD\u7559",
500
+ "core.home.account_capability_description": "\u767B\u5165\u3001\u500B\u4EBA\u8CC7\u6599\u3001\u591A\u56E0\u7D20\u8A8D\u8B49\u8207\u61C9\u7528\u8A2D\u5B9A\u958B\u7BB1\u5373\u7528",
536
501
  "core.home.cross_platform": "\u8DE8\u7AEF\u9801\u9762",
537
502
  "core.home.cross_platform_description": "\u540C\u4E00\u5957\u9801\u9762\u7A0B\u5F0F\u78BC\u9069\u914D H5 \u548C\u5FAE\u4FE1\u5C0F\u7A0B\u5F0F",
538
503
  "core.home.demo_scope": "\u529F\u80FD\u6982\u89BD",
504
+ "core.home.dynamic_config": "\u52D5\u614B\u8A2D\u5B9A",
505
+ "core.home.dynamic_config_description": "\u9996\u9801 Logo \u8207\u6A19\u8A9E\u652F\u63F4\u5F8C\u53F0\u9060\u7AEF\u8A2D\u5B9A",
539
506
  "core.home.framework": "\u61C9\u7528\u6846\u67B6",
540
507
  "core.home.language": "\u958B\u767C\u8A9E\u8A00",
541
508
  "core.home.main_title": "\u61C9\u7528\u9996\u9801",
509
+ "core.home.message_center": "\u8A0A\u606F\u4E2D\u5FC3",
510
+ "core.home.message_center_description": "\u672A\u8B80\u8A0A\u606F\u7D71\u4E00\u67E5\u770B\uFF0C\u7D05\u9EDE\u63D0\u9192\u4E0D\u932F\u904E",
542
511
  "core.home.state_management": "\u72C0\u614B\u7BA1\u7406",
543
- "core.home.static_home": "\u975C\u614B\u9996\u9801",
544
- "core.home.static_home_description": "\u7576\u524D\u9996\u9801\u7528\u65BC\u5C55\u793A\u6846\u67B6\u8CC7\u8A0A\uFF0C\u4E0D\u4F9D\u8CF4\u696D\u52D9\u4ECB\u9762",
545
512
  "core.home.style_solution": "\u6A23\u5F0F\u65B9\u6848",
546
- "core.home.sub_title": "\u4FDD\u7559\u901A\u7528\u5C0E\u822A\u8207\u500B\u4EBA\u4E2D\u5FC3\u9AD4\u9A57",
513
+ "core.home.sub_title": "\u5E33\u865F\u3001\u8A0A\u606F\u8207\u667A\u6167\u52A9\u624B\uFF0C\u4E00\u7AD9\u89F8\u9054",
547
514
  "core.home.tech_stack": "\u7576\u524D\u6280\u8853\u68E7",
548
515
  "core.login.agree_prefix": "\u6211\u5DF2\u95B1\u8B80\u4E26\u540C\u610F",
549
516
  "core.login.agree_separator": "\u548C",
@@ -566,7 +533,6 @@ var zh_TW_default = {
566
533
  "core.login.mfa_recovery_code": "\u6062\u5FA9\u78BC\uFF08\u53EF\u9078\uFF09",
567
534
  "core.login.mfa_setup_title": "\u7D81\u5B9A\u591A\u56E0\u7D20\u8A8D\u8B49",
568
535
  "core.login.mfa_copy_uri": "\u8907\u88FD\u7D81\u5B9A\u5730\u5740",
569
- "core.login.mfa_copy_success": "\u7D81\u5B9A\u5730\u5740\u5DF2\u8907\u88FD",
570
536
  "core.login.mfa_recovery_codes_copied": "\u6062\u5FA9\u78BC\u5DF2\u8907\u88FD",
571
537
  "core.login.mfa_recovery_codes_title": "\u5132\u5B58 MFA \u6062\u5FA9\u78BC",
572
538
  "core.login.mfa_recovery_codes_warning": "\u6BCF\u500B\u6062\u5FA9\u78BC\u53EA\u80FD\u4F7F\u7528\u4E00\u6B21\uFF0C\u95DC\u9589\u6B64\u8996\u7A97\u5F8C\u4E0D\u6703\u518D\u6B21\u986F\u793A\u3002",
@@ -639,14 +605,7 @@ var zh_TW_default = {
639
605
  "core.webview.embed_blocked": "\u7576\u524D H5 \u9801\u9762\u53EF\u80FD\u88AB\u76EE\u6A19\u7AD9\u9EDE\u9650\u5236\u5D4C\u5165",
640
606
  "core.webview.invalid_url": "\u7F3A\u5C11\u6709\u6548\u9023\u7D50\u5730\u5740",
641
607
  "core.webview.open_failed": "\u9023\u7D50\u7121\u6CD5\u958B\u555F",
642
- "common.value.top_level": "\u9802\u7D1A\u7BC0\u9EDE",
643
- "common.resource.default": "{resource}",
644
- "common.action.delete_resource": "\u522A\u9664{resource}",
645
- "common.action.set_field_status": "\u8A2D\u5B9A{field}",
646
608
  "common.action.load_more": "\u8F09\u5165\u66F4\u591A",
647
- "common.status.loading": "\u8F09\u5165\u4E2D\u2026",
648
- "core.navigation.analytics": "\u5206\u6790",
649
- "core.navigation.report": "\u5831\u8868",
650
609
  "core.settings.theme": "\u4E3B\u984C\u5916\u89C0",
651
610
  "core.theme.auto": "\u8DDF\u96A8\u7CFB\u7D71",
652
611
  "core.theme.dark": "\u6697\u9ED1",
package/package.json CHANGED
@@ -7,7 +7,7 @@
7
7
  "type": "git",
8
8
  "url": "git@github.com:liujitcn/kratos-admin.git"
9
9
  },
10
- "version": "0.0.81",
10
+ "version": "0.0.83",
11
11
  "type": "module",
12
12
  "files": [
13
13
  "dist",
@@ -0,0 +1,35 @@
1
+ <script setup lang="ts">
2
+ defineOptions({ name: 'KratosEmpty' })
3
+
4
+ withDefaults(
5
+ defineProps<{
6
+ /** 图标名称(uni-icons),不传则不渲染图标位。 */
7
+ icon?: string
8
+ /** 主文案。 */
9
+ title?: string
10
+ /** 次级提示文案。 */
11
+ description?: string
12
+ }>(),
13
+ {
14
+ icon: '',
15
+ title: '',
16
+ description: '',
17
+ },
18
+ )
19
+
20
+ defineSlots<{
21
+ /** 操作区插槽:渲染引导按钮等自定义内容。 */
22
+ default?: () => unknown
23
+ }>()
24
+ </script>
25
+
26
+ <template>
27
+ <view class="k-empty">
28
+ <view v-if="icon" class="k-empty__icon">
29
+ <uni-icons :type="icon" size="26" color="var(--kratos-color-primary)" aria-hidden="true" />
30
+ </view>
31
+ <text v-if="title" class="k-empty__title">{{ title }}</text>
32
+ <text v-if="description" class="k-empty__desc">{{ description }}</text>
33
+ <slot />
34
+ </view>
35
+ </template>
@@ -1,5 +1,5 @@
1
1
  <script setup lang="ts">
2
- import { computed, onMounted } from 'vue'
2
+ import { computed, onBeforeMount, onMounted } from 'vue'
3
3
  import { resolveModuleIcon, resolveStaticView } from '../module'
4
4
  import { APP_MENU_ROOT_ID, useAppMenuBadge, useAppNavigation } from '../navigation'
5
5
  import { useThemeStore } from '../stores'
@@ -43,9 +43,12 @@ const visible = computed(() => Boolean(activeMenu.value && tabBar.value.length))
43
43
  const messageBadge = useAppMenuBadge('MESSAGE_INBOX')
44
44
  // #ifdef H5
45
45
  // H5 端 tabBar.custom 不隐藏内置 tabbar,需手动隐藏,否则其边线从自定义栏上方露出形成双线。
46
- onMounted(() => {
46
+ const hideNativeTabBar = () => {
47
47
  uni.hideTabBar({ fail: () => {} })
48
- })
48
+ }
49
+ onBeforeMount(hideNativeTabBar)
50
+ // H5 runtime 可能在页面挂载时重新同步内置 tabbar 状态,挂载后幂等重试避免首次切换露出一帧。
51
+ onMounted(hideNativeTabBar)
49
52
  // #endif
50
53
  </script>
51
54
 
@@ -105,7 +108,7 @@ onMounted(() => {
105
108
  display: flex;
106
109
  height: 104rpx;
107
110
  padding: 0 8rpx;
108
- border: 1rpx solid var(--kratos-color-border-accent, rgba(120, 230, 215, 0.16));
111
+ border: 1px solid var(--kratos-color-border-accent, rgba(120, 230, 215, 0.16));
109
112
  border-radius: 30rpx;
110
113
  background: var(--kratos-dock-bg, rgba(10, 18, 30, 0.72));
111
114
  box-shadow: 0 24rpx 64rpx rgba(0, 0, 0, 0.45);
@@ -123,20 +126,8 @@ onMounted(() => {
123
126
  line-height: 12px;
124
127
  }
125
128
 
126
- /* 设计稿:激活项顶部霓虹发光条 */
127
- .kratos-tab-bar__item--active::before {
128
- position: absolute;
129
- top: 0;
130
- left: 50%;
131
- width: 26px;
132
- height: 3px;
133
- border-radius: 3px;
134
- background: var(--kratos-tab-bar-active-color);
135
- box-shadow: 0 0 12px var(--kratos-tab-bar-active-color);
136
- content: '';
137
- transform: translateX(-50%);
138
- }
139
129
  .kratos-tab-bar__icon {
130
+ flex-shrink: 0;
140
131
  width: 28px;
141
132
  height: 28px;
142
133
  margin-bottom: 4px;
package/src/index.ts CHANGED
@@ -5,6 +5,8 @@ export * from './navigation'
5
5
  /** KratosSettingsPage 可通过顶部插槽扩展业务内容的公共设置页。 */
6
6
  export { default as KratosSettingsPage } from './components/KratosSettingsPage.vue'
7
7
  export { default as KratosTabBar } from './components/KratosTabBar.vue'
8
+ /** KratosEmpty 标准空态组件,支持自定义图标、主文案与提示文案。 */
9
+ export { default as KratosEmpty } from './components/KratosEmpty.vue'
8
10
  export { default as pinia } from './stores'
9
11
  export * from './stores'
10
12
  export * from './utils/secretCrypto'
@@ -9,4 +9,4 @@
9
9
  | `en-US.json` | 英文 Core 语言包。 | uni-app 切换为英文时使用。 |
10
10
  | `ja-JP.json` | 日文 Core 语言包。 | uni-app 切换为日文时使用。 |
11
11
 
12
- 语言包是标准 JSON,不能在文件内直接写注释;公共键使用 `common.` 或 `core.` 命名空间。新增语言后执行仓库根目录的 `make i18n`。语言切换选项固定显示后端 `base_language.native_name`,接口不可用时使用代码内置的原生名称;`common.language.*` 仅用于普通文案和语言迁移初始数据。新增语言的完整文件清单见[国际化设计与语言扩展](../../../../../../docs/国际化设计与语言扩展.md)。
12
+ 语言包是标准 JSON,不能在文件内直接写注释;公共键使用 `common.` 或 `core.` 命名空间。新增语言后执行仓库根目录的 `make i18n`。语言切换选项固定显示后端 `base_language.native_name`,接口不可用时使用代码内置的原生名称;语言迁移初始名称来自管理端 Core 的 `common.language.*`。新增语言的完整文件清单见[国际化设计与语言扩展](../../../../../../docs/国际化设计与语言扩展.md)。
@@ -1,4 +1,5 @@
1
1
  {
2
+ "common.action.back": "Back",
2
3
  "common.action.cancel": "Cancel",
3
4
  "common.action.confirm": "Confirm",
4
5
  "common.action.delete": "Delete",
@@ -9,16 +10,11 @@
9
10
  "common.action.save": "Save",
10
11
  "common.action.view": "View",
11
12
  "common.field.language": "Language",
12
- "common.language.en-US": "English",
13
- "common.language.zh-CN": "简体中文",
14
- "common.language.zh-TW": "Traditional Chinese",
15
- "common.language.ja-JP": "Japanese",
16
13
  "common.message.loading": "Loading",
17
14
  "common.message.network_error": "Network error. Check your connection and try again.",
18
15
  "common.message.request_error": "Request failed",
19
16
  "common.message.unknown": "Unable to process this request. Try again later.",
20
17
  "common.title.notice": "Notice",
21
- "core.auth.login_again": "Log in again",
22
18
  "core.auth.session_expired": "Your session has expired. Please log in again.",
23
19
  "core.config.missing": "Missing app configuration: {names}",
24
20
  "core.crypto.base64_decode_unsupported": "Base64 decoding is not supported in this environment",
@@ -33,18 +29,20 @@
33
29
  "core.password.verify_label": "Current password",
34
30
  "core.file.upload_failed": "Upload failed",
35
31
  "core.home.account_capability": "Account features",
36
- "core.home.account_capability_description": "Profile, app settings, and AI assistant access are included",
32
+ "core.home.account_capability_description": "Sign-in, profile, multi-factor authentication, and app settings out of the box",
37
33
  "core.home.cross_platform": "Cross-platform pages",
38
34
  "core.home.cross_platform_description": "One codebase for H5 and WeChat Mini Program",
39
35
  "core.home.demo_scope": "Overview",
36
+ "core.home.dynamic_config": "Dynamic config",
37
+ "core.home.dynamic_config_description": "Home logo and tagline configurable from the admin console",
40
38
  "core.home.framework": "App framework",
41
39
  "core.home.language": "Language",
42
40
  "core.home.main_title": "Application Home",
41
+ "core.home.message_center": "Message center",
42
+ "core.home.message_center_description": "Unread messages in one inbox with badge reminders",
43
43
  "core.home.state_management": "State management",
44
- "core.home.static_home": "Static home",
45
- "core.home.static_home_description": "This page presents framework details without business APIs",
46
44
  "core.home.style_solution": "Styling",
47
- "core.home.sub_title": "Shared navigation and account experience",
45
+ "core.home.sub_title": "Accounts, messages, and AI assistant in one place",
48
46
  "core.home.tech_stack": "Technology stack",
49
47
  "core.login.agree_prefix": "I have read and agree to the",
50
48
  "core.login.agree_separator": "and",
@@ -67,7 +65,6 @@
67
65
  "core.login.mfa_recovery_code": "Recovery code (optional)",
68
66
  "core.login.mfa_setup_title": "Bind multi-factor authentication",
69
67
  "core.login.mfa_copy_uri": "Copy binding address",
70
- "core.login.mfa_copy_success": "Binding address copied",
71
68
  "core.login.mfa_recovery_codes_copied": "Recovery codes copied",
72
69
  "core.login.mfa_recovery_codes_title": "Save MFA recovery codes",
73
70
  "core.login.mfa_recovery_codes_warning": "Each code works once and will not be shown again after this dialog closes.",
@@ -140,14 +137,7 @@
140
137
  "core.webview.embed_blocked": "The destination may block embedding on H5",
141
138
  "core.webview.invalid_url": "No valid link was provided",
142
139
  "core.webview.open_failed": "Unable to open link",
143
- "common.value.top_level": "Top level",
144
- "common.resource.default": "{resource}",
145
- "common.action.delete_resource": "Delete {resource}",
146
- "common.action.set_field_status": "Set {field}",
147
140
  "common.action.load_more": "Load more",
148
- "common.status.loading": "Loading…",
149
- "core.navigation.analytics": "Analytics",
150
- "core.navigation.report": "Reports",
151
141
  "core.settings.theme": "Theme Appearance",
152
142
  "core.theme.auto": "Follow System",
153
143
  "core.theme.dark": "Dark",
@@ -1,4 +1,5 @@
1
1
  {
2
+ "common.action.back": "戻る",
2
3
  "common.action.cancel": "キャンセル",
3
4
  "common.action.confirm": "OK",
4
5
  "common.action.delete": "削除",
@@ -9,16 +10,11 @@
9
10
  "common.action.save": "保存",
10
11
  "common.action.view": "表示",
11
12
  "common.field.language": "言語",
12
- "common.language.en-US": "英語",
13
- "common.language.zh-CN": "簡体字中国語",
14
- "common.language.zh-TW": "繁体字中国語",
15
- "common.language.ja-JP": "日本語",
16
13
  "common.message.loading": "をロード中です",
17
14
  "common.message.network_error": "ネットワーク エラー。別のネットワークを試してください",
18
15
  "common.message.request_error": "リクエストエラー",
19
16
  "common.message.unknown": "現在処理できません。後でもう一度お試しください。",
20
17
  "common.title.notice": "ヒント",
21
- "core.auth.login_again": "再度ログインしてください",
22
18
  "core.auth.session_expired": "現在のページは無効です。再度ログインしてください。",
23
19
  "core.config.missing": "モバイル端末の設定がありません: {names}",
24
20
  "core.crypto.base64_decode_unsupported": "現在の環境は Base64 デコードをサポートしていません",
@@ -33,18 +29,20 @@
33
29
  "core.password.verify_label": "現在のパスワード",
34
30
  "core.file.upload_failed": "アップロードに失敗しました",
35
31
  "core.home.account_capability": "アカウントの機能",
36
- "core.home.account_capability_description": "個人情報、アプリケーション設定、スマートアシスタント入口が予約されています",
32
+ "core.home.account_capability_description": "ログイン、プロフィール、多要素認証、アプリ設定を同梱",
37
33
  "core.home.cross_platform": "クロスエンド ページ",
38
34
  "core.home.cross_platform_description": "同じページ コード セットが H5 および WeChat ミニ プログラムに適応します",
39
35
  "core.home.demo_scope": "機能概要",
36
+ "core.home.dynamic_config": "動的設定",
37
+ "core.home.dynamic_config_description": "ホームのロゴとキャッチコピーは管理画面から変更可能",
40
38
  "core.home.framework": "アプリケーション フレームワーク",
41
39
  "core.home.language": "開発言語",
42
40
  "core.home.main_title": "アプリケーションホーム",
41
+ "core.home.message_center": "メッセージセンター",
42
+ "core.home.message_center_description": "未読メッセージを一括管理し、バッジでお知らせ",
43
43
  "core.home.state_management": "ステータス管理",
44
- "core.home.static_home": "静的ホームページ",
45
- "core.home.static_home_description": "現在のホームページはフレーム情報を表示するために使用されており、ビジネス インターフェイスには依存していません",
46
44
  "core.home.style_solution": "スタイル スキーム",
47
- "core.home.sub_title": "ユニバーサル ナビゲーションとパーソナル センターのエクスペリエンスを維持します",
45
+ "core.home.sub_title": "アカウント・メッセージ・スマートアシスタントをひとつに",
48
46
  "core.home.tech_stack": "現在のテクノロジースタック",
49
47
  "core.login.agree_prefix": "読んで同意します",
50
48
  "core.login.agree_separator": "および",
@@ -67,7 +65,6 @@
67
65
  "core.login.mfa_recovery_code": "リカバリーコード(任意)",
68
66
  "core.login.mfa_setup_title": "多要素認証を設定",
69
67
  "core.login.mfa_copy_uri": "登録アドレスをコピー",
70
- "core.login.mfa_copy_success": "登録アドレスをコピーしました",
71
68
  "core.login.mfa_recovery_codes_copied": "リカバリーコードをコピーしました",
72
69
  "core.login.mfa_recovery_codes_title": "MFA リカバリーコードを保存",
73
70
  "core.login.mfa_recovery_codes_warning": "各コードは一度だけ使用でき、ダイアログを閉じると再表示されません。",
@@ -140,14 +137,7 @@
140
137
  "core.webview.embed_blocked": "現在の H5 ページは、ターゲット サイトによって埋め込みが制限されている可能性があります",
141
138
  "core.webview.invalid_url": "有効なリンク アドレスがありません",
142
139
  "core.webview.open_failed": "リンクを開けません",
143
- "common.value.top_level": "トップレベル",
144
- "common.resource.default": "{resource}",
145
- "common.action.delete_resource": "{resource}を削除",
146
- "common.action.set_field_status": "{field}を設定",
147
140
  "common.action.load_more": "さらに読み込む",
148
- "common.status.loading": "読み込み中…",
149
- "core.navigation.analytics": "分析",
150
- "core.navigation.report": "レポート",
151
141
  "core.settings.theme": "テーマ外観",
152
142
  "core.theme.auto": "システムに従う",
153
143
  "core.theme.dark": "ダーク",