From 02433a87b3733f46cba29a803b9b4892dd0ab125 Mon Sep 17 00:00:00 2001 From: colin Date: Mon, 6 Jul 2026 13:08:45 +0800 Subject: [PATCH] feat: Optimize the configuration of oxlint --- .../apps/app-antd/.vite/deps/_metadata.json | 2 +- apps/vben5/apps/app-antd/index.html | 3 +- .../public/resource/tinymce/langs/en.js | 192 +-- .../public/resource/tinymce/langs/zh-CN.js | 700 ++++---- .../app-antd/src/adapter/component/index.ts | 9 +- .../app-antd/src/adapter/request/index.ts | 4 +- apps/vben5/apps/app-antd/src/layouts/auth.vue | 3 +- .../vben5/apps/app-antd/src/layouts/basic.vue | 21 +- apps/vben5/apps/app-antd/src/preferences.ts | 5 +- apps/vben5/apps/app-antd/src/store/auth.ts | 9 +- .../views/_core/authentication/code-login.vue | 3 +- .../_core/authentication/forget-password.vue | 3 +- .../src/views/_core/authentication/login.vue | 3 +- .../_core/authentication/qrcode-login.vue | 3 +- .../views/_core/authentication/register.vue | 3 +- .../_core/authentication/two-factor-login.vue | 24 +- .../src/views/account/my-settings/index.vue | 3 +- .../analytics/analytics-visits-sales.vue | 2 +- .../app-antd/src/views/demos/antd/index.vue | 3 +- apps/vben5/apps/web-antd/index.html | 3 +- apps/vben5/apps/web-antd/src/layouts/auth.vue | 3 +- .../vben5/apps/web-antd/src/layouts/basic.vue | 9 +- .../views/_core/authentication/code-login.vue | 3 +- .../_core/authentication/forget-password.vue | 3 +- .../src/views/_core/authentication/login.vue | 3 +- .../views/_core/authentication/register.vue | 3 +- .../src/views/_core/profile/index.vue | 3 +- .../views/_core/profile/password-setting.vue | 3 +- .../src/views/dashboard/workspace/index.vue | 6 +- .../web-antd/src/views/demos/antd/index.vue | 3 +- apps/vben5/apps/web-antdv-next/index.html | 3 +- .../apps/web-antdv-next/src/layouts/auth.vue | 3 +- .../apps/web-antdv-next/src/layouts/basic.vue | 9 +- .../apps/web-antdv-next/src/preferences.ts | 5 +- .../views/_core/authentication/code-login.vue | 3 +- .../_core/authentication/forget-password.vue | 3 +- .../src/views/_core/authentication/login.vue | 3 +- .../views/_core/authentication/register.vue | 3 +- .../src/views/_core/profile/index.vue | 3 +- .../views/_core/profile/password-setting.vue | 3 +- .../src/views/dashboard/workspace/index.vue | 6 +- .../src/views/demos/antd/index.vue | 3 +- apps/vben5/apps/web-ele/index.html | 3 +- apps/vben5/apps/web-ele/src/layouts/auth.vue | 3 +- apps/vben5/apps/web-ele/src/layouts/basic.vue | 9 +- apps/vben5/apps/web-ele/src/preferences.ts | 5 +- .../views/_core/authentication/code-login.vue | 3 +- .../_core/authentication/forget-password.vue | 3 +- .../src/views/_core/authentication/login.vue | 3 +- .../views/_core/authentication/register.vue | 3 +- .../web-ele/src/views/_core/profile/index.vue | 3 +- .../views/_core/profile/password-setting.vue | 3 +- .../src/views/dashboard/workspace/index.vue | 6 +- .../web-ele/src/views/demos/element/index.vue | 6 +- .../web-ele/src/views/demos/form/basic.vue | 3 +- apps/vben5/apps/web-naive/index.html | 3 +- apps/vben5/apps/web-naive/src/app.vue | 3 +- .../vben5/apps/web-naive/src/layouts/auth.vue | 3 +- .../apps/web-naive/src/layouts/basic.vue | 9 +- apps/vben5/apps/web-naive/src/preferences.ts | 5 +- .../views/_core/authentication/code-login.vue | 3 +- .../_core/authentication/forget-password.vue | 3 +- .../src/views/_core/authentication/login.vue | 3 +- .../views/_core/authentication/register.vue | 3 +- .../src/views/_core/profile/index.vue | 3 +- .../views/_core/profile/password-setting.vue | 3 +- .../src/views/dashboard/workspace/index.vue | 6 +- .../web-naive/src/views/demos/form/basic.vue | 3 +- .../views/demos/naive/array-form/index.vue | 3 +- .../web-naive/src/views/demos/table/index.vue | 3 +- apps/vben5/apps/web-tdesign/index.html | 3 +- .../apps/web-tdesign/src/layouts/auth.vue | 3 +- .../apps/web-tdesign/src/layouts/basic.vue | 9 +- .../vben5/apps/web-tdesign/src/preferences.ts | 5 +- .../views/_core/authentication/code-login.vue | 3 +- .../_core/authentication/forget-password.vue | 3 +- .../src/views/_core/authentication/login.vue | 3 +- .../views/_core/authentication/register.vue | 3 +- .../src/views/_core/profile/index.vue | 3 +- .../views/_core/profile/password-setting.vue | 3 +- .../src/views/dashboard/workspace/index.vue | 6 +- .../src/views/demos/tdesign/index.vue | 3 +- apps/vben5/cspell.json | 2 + .../.vitepress/components/demo-preview.vue | 3 +- .../.vitepress/components/preview-group.vue | 21 +- .../theme/components/vben-contributors.vue | 3 +- .../common-ui/vben-api-component.md | 3 +- .../src/components/common-ui/vben-cropper.md | 3 +- .../components/common-ui/vben-table-action.md | 6 +- .../vben-api-component/cascader/index.vue | 3 +- .../vben-count-to-animator/custom/index.vue | 3 +- .../demos/vben-cropper/aspect-ratio/index.vue | 12 +- .../src/demos/vben-cropper/basic/index.vue | 6 +- .../demos/vben-descriptions/size/index.vue | 9 +- .../demos/vben-drawer/auto-height/drawer.vue | 3 +- .../demos/vben-modal/auto-height/modal.vue | 3 +- .../vben-table-action/dropdown/index.vue | 3 +- .../vben-table-action/permission/index.vue | 3 +- .../demos/vben-tiptap/image-upload/index.vue | 3 +- .../common-ui/vben-api-component.md | 3 +- .../en/components/common-ui/vben-cropper.md | 3 +- .../components/common-ui/vben-table-action.md | 6 +- .../docs/src/en/guide/essentials/route.md | 7 + .../vben5/docs/src/en/guide/in-depth/login.md | 3 +- apps/vben5/docs/src/guide/essentials/route.md | 8 + apps/vben5/docs/src/guide/in-depth/login.md | 6 +- apps/vben5/eslint.config.mjs | 14 +- .../eslint-config/src/configs/javascript.ts | 4 + .../oxlint-config/src/configs/javascript.ts | 10 +- .../oxlint-config/src/configs/vue.ts | 1 + apps/vben5/internal/node-utils/src/git.ts | 8 +- .../vite-config/src/plugins/importmap.ts | 2 +- apps/vben5/oxfmt.config.ts | 3 +- apps/vben5/oxlint.config.ts | 13 +- apps/vben5/package.json | 1 + .../@abp/account/src/components/MyProfile.vue | 36 +- .../@abp/account/src/components/MySetting.vue | 18 +- .../account/src/components/QrCodeLogin.vue | 3 +- .../account/src/components/UserLinkModal.vue | 6 +- .../components/AuthenticatorSettings.vue | 6 +- .../components/AuthenticatorSteps.vue | 18 +- .../components/components/BasicSettings.vue | 21 +- .../components/components/BindSettings.vue | 3 +- .../src/components/components/LoginTitle.vue | 3 +- .../components/components/NoticeSettings.vue | 6 +- .../components/SecuritySettings.vue | 15 +- .../src/components/conversations/index.vue | 15 +- .../tools/AIToolDefinitionModal.vue | 39 +- .../tools/AIToolDefinitionTable.vue | 9 +- .../src/components/tools/AIToolProperty.vue | 18 +- .../workspaces/WorkspaceDefinitionModal.vue | 82 +- .../workspaces/WorkspaceDefinitionTable.vue | 9 +- .../components/audit-logs/AuditLogDrawer.vue | 36 +- .../components/audit-logs/AuditLogTable.vue | 15 +- .../entity-changes/EntityChangeDrawer.vue | 4 +- .../entity-changes/EntityChangeTable.vue | 6 +- .../src/components/loggings/LoggingDrawer.vue | 15 +- .../src/components/loggings/LoggingTable.vue | 3 +- .../components/blobs/BlobFilePreviewModal.vue | 17 +- .../blobs/BlobFilePreviewModal1.vue | 7 +- .../src/components/blobs/BlobFileTable.vue | 12 +- .../components/blobs/BlobFileUploadModal.vue | 24 +- .../src/components/blobs/BlobFolderTree.vue | 9 +- .../src/components/blobs/BlobViewPage.vue | 3 +- .../containers/BlobContainerTable.vue | 3 +- .../src/components/CacheEditModal.vue | 3 +- .../src/components/CacheKeyTable.vue | 12 +- .../src/components/CacheRefreshModal.vue | 3 +- .../components/src/codeeditor/CodeEditor.vue | 6 +- .../components/src/codemirror/CodeMirror.vue | 2 +- .../components/src/codemirror/codemirror.css | 4 +- .../@abp/components/src/cropper/Cropper.vue | 12 +- .../components/src/cropper/CropperAvatar.vue | 12 +- .../components/src/cropper/CropperModal.vue | 30 +- .../@abp/components/src/tinymce/Editor.vue | 8 +- .../@abp/components/src/vditor/Editor.vue | 3 +- .../@abp/components/src/vditor/Viewer.vue | 4 +- ...eRequireAuthenticatedSimpleStateChecker.ts | 12 +- .../useRequireFeaturesSimpleStateChecker.ts | 20 +- ...RequireGlobalFeaturesSimpleStateChecker.ts | 20 +- ...useRequirePermissionsSimpleStateChecker.ts | 23 +- .../@abp/core/src/hooks/useAuthorization.ts | 2 +- .../@abp/core/src/hooks/useFeatures.ts | 2 +- .../@abp/core/src/hooks/useGlobalFeatures.ts | 2 +- .../@abp/core/src/hooks/useLocalization.ts | 4 +- .../src/hooks/useLocalizationSerializer.ts | 2 +- .../@abp/core/src/hooks/useValidation.ts | 2 +- .../@abp/core/src/hooks/useWindowSizeFn.ts | 4 +- .../vben5/packages/@abp/core/src/store/abp.ts | 13 +- .../vben5/packages/@abp/core/src/types/dto.ts | 8 +- .../@abp/core/src/types/localization.ts | 4 +- .../packages/@abp/core/src/types/rules.ts | 2 +- .../packages/@abp/core/src/utils/file.ts | 1 - .../packages/@abp/core/src/utils/mitt.ts | 9 +- .../entity-rules/EntityRuleModal.vue | 5 +- .../demo/src/components/books/BookTable.vue | 9 +- .../features/FeatureDefinitionModal.vue | 82 +- .../features/FeatureDefinitionTable.vue | 21 +- .../groups/FeatureGroupDefinitionModal.vue | 22 +- .../groups/FeatureGroupDefinitionTable.vue | 12 +- .../src/components/features/FeatureGroup.vue | 3 +- .../src/components/features/FeatureInput.vue | 15 +- .../src/components/features/FeatureModal.vue | 28 +- .../components/features/FeatureTreeNode.vue | 6 +- .../components/features/FeaturesModal2.vue | 10 +- .../src/components/features/useFeatureTree.ts | 1 - .../state-check/FeatureStateCheck.vue | 6 +- .../state-check/GlobalFeatureStateCheck.vue | 6 +- .../@abp/features/src/types/features.ts | 4 +- .../@abp/gdpr/src/components/GdprCard.vue | 3 +- .../@abp/gdpr/src/components/GdprTable.vue | 6 +- .../components/claim-types/ClaimTypeModal.vue | 18 +- .../components/claim-types/ClaimTypeTable.vue | 12 +- .../src/components/claims/ClaimTable.vue | 12 +- .../OrganizationUnitRoleTable.vue | 6 +- .../OrganizationUnitTable.vue | 3 +- .../OrganizationUnitTree.vue | 3 +- .../OrganizationUnitUserTable.vue | 6 +- .../organization-units/SelectRoleModal.vue | 4 +- .../src/components/roles/RoleClaimModal.vue | 3 +- .../src/components/roles/RoleModal.vue | 12 +- .../src/components/roles/RoleRuleDrawer.vue | 66 +- .../src/components/roles/RoleTable.vue | 21 +- .../security-logs/SecurityLogDrawer.vue | 3 +- .../security-logs/SecurityLogTable.vue | 9 +- .../src/components/sessions/SessionTable.vue | 6 +- .../components/sessions/UserSessionTable.vue | 9 +- .../src/components/users/UserClaimModal.vue | 3 +- .../src/components/users/UserModal.vue | 39 +- .../src/components/users/UserTable.vue | 36 +- .../@abp/identity/src/types/claim-types.ts | 6 +- .../identity/src/types/organization-units.ts | 3 +- .../languages/LocalizationLanguageModal.vue | 16 +- .../languages/LocalizationLanguageTable.vue | 27 +- .../resources/LocalizationResourceModal.vue | 19 +- .../resources/LocalizationResourceTable.vue | 23 +- .../texts/LocalizationTextModal.vue | 27 +- .../texts/LocalizationTextTable.vue | 42 +- .../NotificationGroupDefinitionModal.vue | 35 +- .../NotificationGroupDefinitionTable.vue | 12 +- .../NotificationDefinitionModal.vue | 75 +- .../NotificationDefinitionTable.vue | 15 +- .../notifications/NotificationSendModal.vue | 21 +- .../my-notifilers/MyNotificationModal.vue | 3 +- .../my-notifilers/MyNotificationTable.vue | 18 +- .../NotificationSendRecordTable.vue | 3 +- .../@abp/notifications/src/types/groups.ts | 6 +- .../notifications/src/types/notifications.ts | 2 +- .../applications/ApplicationModal.vue | 113 +- .../applications/ApplicationTable.vue | 18 +- .../authorizations/AuthorizationModal.vue | 3 +- .../authorizations/AuthorizationTable.vue | 9 +- .../display-names/DisplayNameTable.vue | 9 +- .../components/properties/PropertyTable.vue | 9 +- .../src/components/scopes/ScopeModal.vue | 24 +- .../src/components/scopes/ScopeTable.vue | 12 +- .../src/components/tokens/TokenTable.vue | 9 +- .../src/components/uris/UriTable.vue | 6 +- .../@abp/openiddict/src/types/applications.ts | 3 +- .../openiddict/src/types/authorizations.ts | 6 +- .../components/containers/ContainerTable.vue | 3 +- .../oss/src/components/objects/FileList.vue | 9 +- .../components/objects/FileUploadModal.vue | 24 +- .../oss/src/components/objects/FolderTree.vue | 9 +- .../oss/src/components/objects/ObjectPage.vue | 3 +- .../groups/PermissionGroupDefinitionModal.vue | 23 +- .../groups/PermissionGroupDefinitionTable.vue | 12 +- .../permissions/PermissionDefinitionModal.vue | 62 +- .../permissions/PermissionDefinitionTable.vue | 12 +- .../permissions/PermissionGrantedModal.vue | 15 +- .../permissions/PermissionModal.vue | 20 +- .../state-check/PermissionStateCheck.vue | 6 +- .../@abp/permissions/src/types/definitions.ts | 3 +- .../@abp/permissions/src/types/groups.ts | 6 +- .../DataDictionaryItemDrawer.vue | 6 +- .../DataDictionaryItemModal.vue | 4 +- .../data-dictionaries/DataDictionaryTable.vue | 18 +- .../src/components/layouts/LayoutTable.vue | 9 +- .../src/components/menus/MenuDrawer.vue | 8 +- .../src/components/menus/MenuTable.vue | 12 +- .../messages/email/EmailMessageModal.vue | 3 +- .../messages/email/EmailMessageTable.vue | 9 +- .../messages/sms/SmsMessageTable.vue | 6 +- .../workbench/components/WorkbenchHeader.vue | 3 +- .../components/WorkbenchQuickNav.vue | 19 +- .../components/WorkbenchQuickNavModal.vue | 3 +- .../workbench/components/WorkbenchTodo.vue | 6 +- .../workbench/components/WorkbenchTrends.vue | 9 +- .../src/components/workbench/index.vue | 12 +- .../platform/src/hooks/useMenuTransform.ts | 8 +- .../@abp/platform/src/types/favorites.ts | 3 +- .../src/components/editions/EditionTable.vue | 15 +- .../tenants/ConnectionStringModal.vue | 9 +- .../tenants/ConnectionStringTable.vue | 9 +- .../tenants/ConnectionStringsModal.vue | 3 +- .../src/components/tenants/TenantModal.vue | 45 +- .../src/components/tenants/TenantSelect.vue | 3 +- .../src/components/tenants/TenantTable.vue | 24 +- .../packages/@abp/saas/src/types/editions.ts | 6 +- .../packages/@abp/saas/src/types/tenants.ts | 6 +- .../definitions/SettingDefinitionModal.vue | 58 +- .../definitions/SettingDefinitionTable.vue | 9 +- .../src/components/settings/SettingForm.vue | 39 +- .../src/components/settings/SystemSetting.vue | 9 +- .../@abp/settings/src/types/definitions.ts | 6 +- .../@abp/signalr/src/hooks/useSignalR.ts | 1 - .../job-infos/JobInfoDetailDrawer.vue | 49 +- .../components/job-infos/JobInfoDrawer.vue | 93 +- .../src/components/job-infos/JobInfoTable.vue | 36 +- .../TemplateContentCurtuleModal.vue | 2 +- .../definitions/TemplateContentModal.vue | 3 +- .../definitions/TemplateDefinitionModal.vue | 52 +- .../definitions/TemplateDefinitionTable.vue | 9 +- .../text-templating/src/types/definitions.ts | 9 +- .../packages/@abp/ui/src/about/about.vue | 6 +- .../packages/@abp/ui/src/adapter/vxe-table.ts | 440 ++--- .../localizable-input/LocalizableInput.vue | 29 +- .../components/properties/PropertyTable.vue | 25 +- .../SimpleStateChecking.vue | 12 +- .../simple-state-checking/interface.ts | 3 +- .../StringValueTypeInput.vue | 97 +- .../components/string-value-type/validator.ts | 10 +- .../components/string-value-type/valueType.ts | 8 +- .../ui/src/components/vxe-table/extends.ts | 6 +- .../@abp/ui/src/components/vxe-table/init.ts | 1 - .../components/vxe-table/use-viewed-row.ts | 1 - .../src/components/vxe-table/use-vxe-grid.vue | 21 +- .../groups/WebhookGroupDefinitionModal.vue | 22 +- .../groups/WebhookGroupDefinitionTable.vue | 9 +- .../webhooks/WebhookDefinitionModal.vue | 46 +- .../webhooks/WebhookDefinitionTable.vue | 12 +- .../WebhookSendAttemptDrawer.vue | 54 +- .../send-attempts/WebhookSendAttemptTable.vue | 15 +- .../WebhookSubscriptionModal.vue | 74 +- .../WebhookSubscriptionTable.vue | 3 +- .../@abp/webhooks/src/types/definitions.ts | 6 +- .../@abp/webhooks/src/types/groups.ts | 6 +- .../wechat/src/components/bind-user/index.vue | 3 +- .../@core/base/shared/src/utils/dom.ts | 2 +- .../@core/base/shared/src/utils/tree.ts | 12 +- .../src/__tests__/use-sortable.test.ts | 2 +- .../composables/src/use-priority-value.ts | 4 +- .../packages/@core/preferences/src/config.ts | 2 + .../packages/@core/preferences/src/index.ts | 1 - .../packages/@core/preferences/src/types.ts | 6 + .../form-ui/src/components/form-actions.vue | 12 +- .../src/components/form-field-array.vue | 21 +- .../@core/ui-kit/form-ui/src/config.ts | 2 +- .../@core/ui-kit/form-ui/src/form-api.ts | 2 +- .../form-ui/src/form-render/form-field.vue | 36 +- .../ui-kit/form-ui/src/form-render/form.vue | 3 +- .../@core/ui-kit/form-ui/src/types.ts | 4 +- .../ui-kit/form-ui/src/use-form-context.ts | 4 +- .../@core/ui-kit/form-ui/src/vben-form.vue | 9 +- .../ui-kit/form-ui/src/vben-use-form.vue | 9 +- .../src/components/layout-footer.vue | 3 +- .../src/components/layout-header.vue | 19 +- .../src/components/layout-sidebar.vue | 44 +- .../src/components/layout-tabbar.vue | 3 +- .../widgets/sidebar-collapse-button.vue | 3 +- .../widgets/sidebar-fixed-button.vue | 3 +- .../@core/ui-kit/layout-ui/src/vben-layout.ts | 8 + .../ui-kit/layout-ui/src/vben-layout.vue | 44 +- .../menu-ui/src/components/menu-badge-dot.vue | 6 +- .../menu-ui/src/components/menu-badge.vue | 3 +- .../menu-ui/src/components/menu-item.vue | 12 +- .../ui-kit/menu-ui/src/components/menu.vue | 3 +- .../components/normal-menu/normal-menu.vue | 6 +- .../src/components/sub-menu-content.vue | 9 +- .../menu-ui/src/components/sub-menu.vue | 21 +- .../@core/ui-kit/menu-ui/src/sub-menu.vue | 9 +- .../@core/ui-kit/popup-ui/src/alert/alert.vue | 15 +- .../ui-kit/popup-ui/src/drawer/drawer.vue | 30 +- .../@core/ui-kit/popup-ui/src/modal/modal.vue | 26 +- .../src/components/avatar/avatar.vue | 6 +- .../src/components/back-top/back-top.vue | 3 +- .../breadcrumb/breadcrumb-background.vue | 9 +- .../components/breadcrumb/breadcrumb-view.vue | 6 +- .../src/components/breadcrumb/breadcrumb.vue | 18 +- .../src/components/button/button-group.vue | 3 +- .../src/components/button/button.vue | 6 +- .../components/button/check-button-group.vue | 12 +- .../src/components/button/icon-button.vue | 9 +- .../collapsible/collapsible-params-item.vue | 18 +- .../collapsible/collapsible-params.vue | 45 +- .../components/collapsible/collapsible.vue | 17 +- .../components/context-menu/context-menu.vue | 9 +- .../descriptions/descriptions-cell.vue | 3 +- .../descriptions/descriptions-row.vue | 15 +- .../components/descriptions/descriptions.vue | 3 +- .../dropdown-menu/dropdown-menu.vue | 3 +- .../dropdown-menu/dropdown-radio-menu.vue | 6 +- .../expandable-arrow/expandable-arrow.vue | 8 +- .../components/full-screen/full-screen.vue | 3 +- .../src/components/hover-card/hover-card.vue | 3 +- .../input-password/input-password.vue | 6 +- .../input-password/password-strength.vue | 6 +- .../shadcn-ui/src/components/logo/logo.vue | 70 +- .../src/components/pin-input/input.vue | 9 +- .../src/components/popover/popover.vue | 3 +- .../src/components/scrollbar/scrollbar.vue | 12 +- .../src/components/segmented/segmented.vue | 16 +- .../components/segmented/tabs-indicator.vue | 8 +- .../src/components/select/select.vue | 3 +- .../src/components/spinner/loading.vue | 6 +- .../src/components/spinner/spinner.vue | 6 +- .../table-action/action-dropdown-item.vue | 12 +- .../components/table-action/action-item.vue | 9 +- .../components/table-action/table-action.vue | 30 +- .../src/components/tooltip/help-tooltip.vue | 3 +- .../src/components/tooltip/tooltip.vue | 3 +- .../src/ui/accordion/AccordionContent.vue | 3 +- .../src/ui/accordion/AccordionItem.vue | 3 +- .../src/ui/accordion/AccordionTrigger.vue | 6 +- .../src/ui/alert-dialog/AlertDialog.vue | 3 +- .../ui/alert-dialog/AlertDialogContent.vue | 6 +- .../alert-dialog/AlertDialogDescription.vue | 3 +- .../src/ui/alert-dialog/AlertDialogFooter.vue | 3 +- .../src/ui/alert-dialog/AlertDialogHeader.vue | 3 +- .../ui/alert-dialog/AlertDialogOverlay.vue | 3 +- .../src/ui/alert-dialog/AlertDialogTitle.vue | 3 +- .../ui-kit/shadcn-ui/src/ui/avatar/Avatar.vue | 3 +- .../src/ui/avatar/AvatarFallback.vue | 3 +- .../shadcn-ui/src/ui/avatar/AvatarImage.vue | 3 +- .../ui-kit/shadcn-ui/src/ui/badge/Badge.vue | 3 +- .../src/ui/breadcrumb/BreadcrumbEllipsis.vue | 3 +- .../src/ui/breadcrumb/BreadcrumbItem.vue | 3 +- .../src/ui/breadcrumb/BreadcrumbLink.vue | 3 +- .../src/ui/breadcrumb/BreadcrumbList.vue | 3 +- .../src/ui/breadcrumb/BreadcrumbPage.vue | 3 +- .../src/ui/breadcrumb/BreadcrumbSeparator.vue | 3 +- .../ui-kit/shadcn-ui/src/ui/button/Button.vue | 3 +- .../ui-kit/shadcn-ui/src/ui/card/Card.vue | 3 +- .../shadcn-ui/src/ui/card/CardAction.vue | 3 +- .../shadcn-ui/src/ui/card/CardDescription.vue | 3 +- .../shadcn-ui/src/ui/card/CardFooter.vue | 3 +- .../shadcn-ui/src/ui/card/CardHeader.vue | 3 +- .../shadcn-ui/src/ui/card/CardTitle.vue | 3 +- .../shadcn-ui/src/ui/checkbox/Checkbox.vue | 6 +- .../context-menu/ContextMenuCheckboxItem.vue | 6 +- .../ui/context-menu/ContextMenuContent.vue | 3 +- .../src/ui/context-menu/ContextMenuItem.vue | 3 +- .../src/ui/context-menu/ContextMenuLabel.vue | 3 +- .../ui/context-menu/ContextMenuRadioGroup.vue | 3 +- .../ui/context-menu/ContextMenuRadioItem.vue | 6 +- .../ui/context-menu/ContextMenuSeparator.vue | 3 +- .../ui/context-menu/ContextMenuShortcut.vue | 3 +- .../ui/context-menu/ContextMenuSubContent.vue | 3 +- .../ui/context-menu/ContextMenuSubTrigger.vue | 3 +- .../shadcn-ui/src/ui/dialog/DialogContent.vue | 9 +- .../src/ui/dialog/DialogDescription.vue | 3 +- .../shadcn-ui/src/ui/dialog/DialogFooter.vue | 3 +- .../shadcn-ui/src/ui/dialog/DialogHeader.vue | 3 +- .../shadcn-ui/src/ui/dialog/DialogOverlay.vue | 3 +- .../src/ui/dialog/DialogScrollContent.vue | 9 +- .../shadcn-ui/src/ui/dialog/DialogTitle.vue | 3 +- .../src/ui/dropdown-menu/DropdownMenu.vue | 3 +- .../DropdownMenuCheckboxItem.vue | 6 +- .../ui/dropdown-menu/DropdownMenuContent.vue | 3 +- .../src/ui/dropdown-menu/DropdownMenuItem.vue | 3 +- .../ui/dropdown-menu/DropdownMenuLabel.vue | 3 +- .../dropdown-menu/DropdownMenuRadioGroup.vue | 3 +- .../dropdown-menu/DropdownMenuRadioItem.vue | 6 +- .../dropdown-menu/DropdownMenuSeparator.vue | 3 +- .../ui/dropdown-menu/DropdownMenuShortcut.vue | 3 +- .../src/ui/dropdown-menu/DropdownMenuSub.vue | 3 +- .../dropdown-menu/DropdownMenuSubContent.vue | 3 +- .../dropdown-menu/DropdownMenuSubTrigger.vue | 3 +- .../ui/dropdown-menu/DropdownMenuTrigger.vue | 3 +- .../shadcn-ui/src/ui/form/FormControl.vue | 3 +- .../shadcn-ui/src/ui/form/FormDescription.vue | 3 +- .../shadcn-ui/src/ui/form/FormLabel.vue | 3 +- .../shadcn-ui/src/ui/form/FormMessage.vue | 3 +- .../src/ui/hover-card/HoverCardContent.vue | 3 +- .../ui-kit/shadcn-ui/src/ui/input/Input.vue | 3 +- .../ui-kit/shadcn-ui/src/ui/label/Label.vue | 3 +- .../src/ui/number-field/NumberField.vue | 3 +- .../ui/number-field/NumberFieldContent.vue | 3 +- .../ui/number-field/NumberFieldDecrement.vue | 3 +- .../ui/number-field/NumberFieldIncrement.vue | 3 +- .../src/ui/number-field/NumberFieldInput.vue | 3 +- .../src/ui/pagination/Pagination.vue | 3 +- .../src/ui/pagination/PaginationContent.vue | 3 +- .../src/ui/pagination/PaginationEllipsis.vue | 3 +- .../src/ui/pagination/PaginationFirst.vue | 3 +- .../src/ui/pagination/PaginationItem.vue | 3 +- .../src/ui/pagination/PaginationLast.vue | 3 +- .../src/ui/pagination/PaginationNext.vue | 3 +- .../src/ui/pagination/PaginationPrevious.vue | 3 +- .../shadcn-ui/src/ui/pin-input/PinInput.vue | 3 +- .../src/ui/pin-input/PinInputGroup.vue | 3 +- .../src/ui/pin-input/PinInputSlot.vue | 3 +- .../src/ui/popover/PopoverContent.vue | 3 +- .../src/ui/radio-group/RadioGroup.vue | 3 +- .../src/ui/radio-group/RadioGroupItem.vue | 9 +- .../src/ui/resizable/ResizableHandle.vue | 6 +- .../src/ui/resizable/ResizablePanel.vue | 3 +- .../src/ui/resizable/ResizablePanelGroup.vue | 3 +- .../src/ui/scroll-area/ScrollArea.vue | 6 +- .../src/ui/scroll-area/ScrollBar.vue | 6 +- .../shadcn-ui/src/ui/select/SelectContent.vue | 6 +- .../shadcn-ui/src/ui/select/SelectItem.vue | 3 +- .../shadcn-ui/src/ui/select/SelectLabel.vue | 3 +- .../src/ui/select/SelectScrollDownButton.vue | 3 +- .../src/ui/select/SelectScrollUpButton.vue | 3 +- .../src/ui/select/SelectSeparator.vue | 3 +- .../shadcn-ui/src/ui/select/SelectTrigger.vue | 3 +- .../shadcn-ui/src/ui/separator/Separator.vue | 3 +- .../shadcn-ui/src/ui/sheet/SheetContent.vue | 6 +- .../src/ui/sheet/SheetDescription.vue | 3 +- .../shadcn-ui/src/ui/sheet/SheetFooter.vue | 3 +- .../shadcn-ui/src/ui/sheet/SheetHeader.vue | 3 +- .../shadcn-ui/src/ui/sheet/SheetTitle.vue | 3 +- .../ui-kit/shadcn-ui/src/ui/switch/Switch.vue | 6 +- .../ui-kit/shadcn-ui/src/ui/tabs/Tabs.vue | 3 +- .../shadcn-ui/src/ui/tabs/TabsContent.vue | 3 +- .../ui-kit/shadcn-ui/src/ui/tabs/TabsList.vue | 5 +- .../shadcn-ui/src/ui/tabs/TabsTrigger.vue | 3 +- .../shadcn-ui/src/ui/textarea/Textarea.vue | 3 +- .../src/ui/toggle-group/ToggleGroup.vue | 3 +- .../src/ui/toggle-group/ToggleGroupItem.vue | 3 +- .../ui-kit/shadcn-ui/src/ui/toggle/Toggle.vue | 3 +- .../src/ui/tooltip/TooltipContent.vue | 13 +- .../ui-kit/shadcn-ui/src/ui/tree/tree.vue | 36 +- .../src/components/tabs-chrome/tabs.vue | 39 +- .../tabs-ui/src/components/tabs/tabs.vue | 24 +- .../src/components/widgets/tool-more.vue | 3 +- .../src/components/widgets/tool-refresh.vue | 3 +- .../src/components/widgets/tool-screen.vue | 3 +- .../@core/ui-kit/tabs-ui/src/tabs-view.vue | 15 +- .../packages/effects/access/src/accessible.ts | 19 +- .../api-component/api-component.vue | 3 +- .../captcha/point-selection-captcha/index.vue | 18 +- .../point-selection-captcha-card.vue | 6 +- .../captcha/slider-captcha/index.vue | 12 +- .../slider-captcha/slider-captcha-action.vue | 3 +- .../slider-captcha/slider-captcha-bar.vue | 3 +- .../slider-captcha/slider-captcha-content.vue | 3 +- .../captcha/slider-rotate-captcha/index.vue | 15 +- .../slider-translate-captcha/index.vue | 24 +- .../src/components/col-page/col-page.vue | 15 +- .../src/components/count-to/count-to.vue | 9 +- .../src/components/cropper/cropper.vue | 48 +- .../ellipsis-text/ellipsis-text.vue | 10 +- .../components/icon-picker/icon-picker.vue | 48 +- .../src/components/json-viewer/index.vue | 3 +- .../src/components/loading/loading.vue | 3 +- .../src/components/loading/spinner.vue | 3 +- .../common-ui/src/components/page/page.vue | 9 +- .../src/components/resize/resize.vue | 6 +- .../common-ui/src/components/tree/tree.vue | 3 +- .../src/ui/authentication/auth-title.vue | 3 +- .../src/ui/authentication/code-login.vue | 6 +- .../src/ui/authentication/dingding-login.vue | 3 +- .../src/ui/authentication/forget-password.vue | 3 +- .../ui/authentication/login-expired-modal.vue | 6 +- .../common-ui/src/ui/authentication/login.vue | 24 +- .../src/ui/authentication/qrcode-login.vue | 3 +- .../src/ui/authentication/register.vue | 3 +- .../ui/authentication/third-party-login.vue | 15 +- .../dashboard/analysis/analysis-overview.vue | 6 +- .../dashboard/workbench/workbench-header.vue | 3 +- .../dashboard/workbench/workbench-project.vue | 6 +- .../workbench/workbench-quick-nav.vue | 6 +- .../ui/dashboard/workbench/workbench-todo.vue | 6 +- .../dashboard/workbench/workbench-trends.vue | 9 +- .../common-ui/src/ui/fallback/fallback.vue | 9 +- .../src/ui/fallback/icons/icon-403.vue | 93 +- .../src/ui/fallback/icons/icon-404.vue | 84 +- .../src/ui/fallback/icons/icon-500.vue | 90 +- .../ui/fallback/icons/icon-coming-soon.vue | 150 +- .../src/ui/fallback/icons/icon-offline.vue | 66 +- .../src/ui/profile/notification-setting.vue | 6 +- .../common-ui/src/ui/profile/profile.vue | 6 +- .../src/ui/profile/security-setting.vue | 6 +- .../src/authentication/authentication.vue | 39 +- .../layouts/src/authentication/form.vue | 9 +- .../src/authentication/icons/slogan.vue | 1413 ++++++----------- .../layouts/src/authentication/toolbar.vue | 3 +- .../layouts/src/basic/content/content.vue | 24 +- .../layouts/src/basic/copyright/copyright.vue | 6 +- .../layouts/src/basic/header/header.vue | 15 +- .../effects/layouts/src/basic/layout.vue | 55 +- .../layouts/src/basic/menu/extra-menu.vue | 3 +- .../effects/layouts/src/basic/menu/menu.vue | 3 +- .../layouts/src/basic/menu/mixed-menu.vue | 3 +- .../layouts/src/basic/tabbar/tabbar.vue | 9 +- .../layouts/src/basic/tabbar/use-tabbar.ts | 2 +- .../layouts/src/iframe/iframe-router-view.vue | 6 +- .../src/route-cached/route-cached-view.vue | 9 +- .../layouts/src/widgets/breadcrumb.vue | 3 +- .../widgets/check-updates/check-updates.vue | 3 +- .../layouts/src/widgets/color-toggle.vue | 15 +- .../widgets/global-search/global-search.vue | 18 +- .../widgets/global-search/search-panel.vue | 15 +- .../layouts/src/widgets/language-toggle.vue | 3 +- .../layouts/src/widgets/layout-toggle.vue | 3 +- .../widgets/lock-screen/lock-screen-modal.vue | 9 +- .../src/widgets/lock-screen/lock-screen.vue | 27 +- .../src/widgets/notification/notification.vue | 33 +- .../preferences/blocks/checkbox-item.vue | 6 +- .../preferences/blocks/custom/custom.vue | 12 +- .../preferences/blocks/general/animation.vue | 9 +- .../preferences/blocks/general/general.vue | 6 +- .../widgets/preferences/blocks/input-item.vue | 9 +- .../preferences/blocks/layout/breadcrumb.vue | 6 +- .../preferences/blocks/layout/content.vue | 3 +- .../preferences/blocks/layout/header.vue | 6 +- .../preferences/blocks/layout/layout.vue | 6 +- .../preferences/blocks/layout/navigation.vue | 6 +- .../preferences/blocks/layout/sidebar.vue | 19 +- .../preferences/blocks/layout/tabbar.vue | 9 +- .../preferences/blocks/number-field-item.vue | 3 +- .../preferences/blocks/select-item.vue | 3 +- .../blocks/shortcut-keys/global.vue | 3 +- .../preferences/blocks/switch-item.vue | 5 +- .../preferences/blocks/theme/builtin.vue | 12 +- .../preferences/blocks/theme/font-size.vue | 3 +- .../preferences/blocks/theme/radius.vue | 6 +- .../preferences/blocks/theme/theme.vue | 12 +- .../preferences/blocks/toggle-item.vue | 9 +- .../preferences/icons/content-compact.vue | 36 +- .../preferences/icons/full-content.vue | 15 +- .../preferences/icons/header-mixed-nav.vue | 60 +- .../widgets/preferences/icons/header-nav.vue | 36 +- .../preferences/icons/header-sidebar-nav.vue | 57 +- .../widgets/preferences/icons/mixed-nav.vue | 51 +- .../src/widgets/preferences/icons/setting.vue | 6 +- .../preferences/icons/sidebar-mixed-nav.vue | 51 +- .../widgets/preferences/icons/sidebar-nav.vue | 48 +- .../preferences/preferences-button.vue | 6 +- .../preferences/preferences-drawer.vue | 74 +- .../src/widgets/preferences/preferences.vue | 6 +- .../src/widgets/theme-toggle/theme-button.vue | 6 +- .../src/widgets/theme-toggle/theme-toggle.vue | 9 +- .../src/widgets/timezone/timezone-button.vue | 6 +- .../widgets/user-dropdown/user-dropdown.vue | 30 +- .../plugins/src/echarts/use-echarts.ts | 4 +- .../effects/plugins/src/tiptap/preview.vue | 3 +- .../effects/plugins/src/tiptap/tiptap.vue | 56 +- .../effects/plugins/src/vxe-table/extends.ts | 6 +- .../plugins/src/vxe-table/use-viewed-row.ts | 1 - .../plugins/src/vxe-table/use-vxe-grid.vue | 21 +- .../request/src/request-client/modules/sse.ts | 6 +- .../src/request-client/modules/uploader.ts | 8 +- .../request/src/request-client/types.ts | 4 +- .../packages/icons/src/icons/empty-icon.vue | 12 +- apps/vben5/packages/preferences/src/index.ts | 6 +- apps/vben5/playground/index.html | 3 +- .../playground/src/api/examples/download.ts | 2 +- apps/vben5/playground/src/layouts/auth.vue | 3 +- apps/vben5/playground/src/layouts/basic.vue | 12 +- .../views/_core/authentication/code-login.vue | 3 +- .../_core/authentication/forget-password.vue | 3 +- .../src/views/_core/authentication/login.vue | 3 +- .../views/_core/authentication/register.vue | 3 +- .../src/views/_core/profile/index.vue | 3 +- .../views/_core/profile/password-setting.vue | 3 +- .../src/views/dashboard/workspace/index.vue | 6 +- .../src/views/demos/access/admin-visible.vue | 3 +- .../src/views/demos/access/button-control.vue | 9 +- .../src/views/demos/access/index.vue | 6 +- .../views/demos/access/menu-visible-403.vue | 3 +- .../src/views/demos/access/super-visible.vue | 3 +- .../src/views/demos/access/user-visible.vue | 3 +- .../src/views/demos/active-icon/index.vue | 3 +- .../src/views/demos/badge/index.vue | 12 +- .../views/demos/breadcrumb/lateral-detail.vue | 3 +- .../src/views/demos/breadcrumb/lateral.vue | 3 +- .../views/demos/breadcrumb/level-detail.vue | 3 +- .../demos/features/file-download/index.vue | 12 +- .../demos/features/full-screen/index.vue | 3 +- .../features/hide-menu-children/children.vue | 3 +- .../features/hide-menu-children/parent.vue | 3 +- .../src/views/demos/features/icons/index.vue | 9 +- .../demos/features/json-bigint/index.vue | 3 +- .../views/demos/features/menu-query/index.vue | 3 +- .../views/demos/features/new-window/index.vue | 3 +- .../features/preferences-extension/index.vue | 9 +- .../request-params-serializer/index.vue | 3 +- .../src/views/demos/features/tabs/index.vue | 3 +- .../views/demos/features/vue-query/index.vue | 3 +- .../features/vue-query/infinite-queries.vue | 3 +- .../views/demos/features/watermark/index.vue | 9 +- .../src/views/examples/button-group/index.vue | 21 +- .../captcha/point-selection-captcha.vue | 36 +- .../views/examples/captcha/slider-captcha.vue | 9 +- .../captcha/slider-translate-captcha.vue | 6 +- .../src/views/examples/count-to/index.vue | 12 +- .../src/views/examples/cropper/index.vue | 15 +- .../examples/drawer/auto-height-demo.vue | 3 +- .../views/examples/drawer/in-content-demo.vue | 3 +- .../src/views/examples/drawer/index.vue | 15 +- .../src/views/examples/ellipsis/index.vue | 3 +- .../src/views/examples/form/basic.vue | 3 +- .../src/views/examples/form/collapsible.vue | 6 +- .../src/views/examples/form/custom-layout.vue | 3 +- .../src/views/examples/form/dynamic.vue | 3 +- .../src/views/examples/form/merge.vue | 6 +- .../examples/form/modules/two-fields.vue | 6 +- .../src/views/examples/form/query.vue | 3 +- .../examples/form/scroll-to-error-test.vue | 6 +- .../src/views/examples/form/value-format.vue | 3 +- .../src/views/examples/json-viewer/index.vue | 9 +- .../src/views/examples/layout/col-page.vue | 12 +- .../src/views/examples/loading/index.vue | 15 +- .../views/examples/modal/auto-height-demo.vue | 3 +- .../views/examples/modal/in-content-demo.vue | 3 +- .../src/views/examples/modal/index.vue | 3 +- .../src/views/examples/motion/index.vue | 18 +- .../src/views/examples/resize/basic.vue | 6 +- .../src/views/examples/tippy/index.vue | 12 +- .../src/views/examples/tiptap/index.vue | 3 +- .../src/views/examples/vxe-table/basic.vue | 3 +- .../src/views/examples/vxe-table/viewed.vue | 3 +- .../playground/src/views/system/menu/list.vue | 9 +- .../src/views/system/role/modules/form.vue | 3 +- .../playground/src/views/system/user/list.vue | 9 +- .../src/views/system/user/modules/form.vue | 3 +- apps/vben5/vben-admin.code-workspace | 52 +- 700 files changed, 3910 insertions(+), 6239 deletions(-) diff --git a/apps/vben5/apps/app-antd/.vite/deps/_metadata.json b/apps/vben5/apps/app-antd/.vite/deps/_metadata.json index 5f0b346a8..cca964d5e 100644 --- a/apps/vben5/apps/app-antd/.vite/deps/_metadata.json +++ b/apps/vben5/apps/app-antd/.vite/deps/_metadata.json @@ -5,4 +5,4 @@ "browserHash": "cfcea6c4", "optimized": {}, "chunks": {} -} \ No newline at end of file +} diff --git a/apps/vben5/apps/app-antd/index.html b/apps/vben5/apps/app-antd/index.html index 33d34a9e2..39be77767 100644 --- a/apps/vben5/apps/app-antd/index.html +++ b/apps/vben5/apps/app-antd/index.html @@ -9,8 +9,7 @@ + content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=0" /> <%= VITE_APP_TITLE %> diff --git a/apps/vben5/apps/app-antd/public/resource/tinymce/langs/en.js b/apps/vben5/apps/app-antd/public/resource/tinymce/langs/en.js index 27337c394..6389318fd 100644 --- a/apps/vben5/apps/app-antd/public/resource/tinymce/langs/en.js +++ b/apps/vben5/apps/app-antd/public/resource/tinymce/langs/en.js @@ -13,20 +13,20 @@ tinymce.addI18n('es', { Italic: 'Cursiva', Underline: 'Subrayado', Strikethrough: 'Tachado', - Superscript: 'Super\u00edndice', - Subscript: 'Sub\u00edndice', + Superscript: 'Super\u00EDndice', + Subscript: 'Sub\u00EDndice', 'Clear formatting': 'Limpiar formato', 'Align left': 'Alinear a la izquierda', 'Align center': 'Alinear al centro', 'Align right': 'Alinear a la derecha', Justify: 'Justificar', - 'Bullet list': 'Lista de vi\u00f1etas', + 'Bullet list': 'Lista de vi\u00F1etas', 'Numbered list': 'Lista numerada', - 'Decrease indent': 'Disminuir sangr\u00eda', - 'Increase indent': 'Incrementar sangr\u00eda', + 'Decrease indent': 'Disminuir sangr\u00EDa', + 'Increase indent': 'Incrementar sangr\u00EDa', Close: 'Cerrar', Formats: 'Formatos', - "Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": 'Su navegador no es compatible con el acceso directo al portapapeles. Use las teclas Crtl+X\/C\/V de su teclado.', + "Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X/C/V keyboard shortcuts instead.": 'Su navegador no es compatible con el acceso directo al portapapeles. Use las teclas Crtl+X/C/V de su teclado.', Headers: 'Encabezados', 'Header 1': 'Encabezado 1', 'Header 2': 'Encabezado 2', @@ -44,23 +44,23 @@ tinymce.addI18n('es', { Preformatted: 'Con formato previo', Div: 'Div', Pre: 'Pre', - Code: 'C\u00f3digo', - Paragraph: 'P\u00e1rrafo', + Code: 'C\u00F3digo', + Paragraph: 'P\u00E1rrafo', Blockquote: 'Blockquote', Inline: 'Alineado', Blocks: 'Bloques', - 'Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.': 'Pegar est\u00e1 ahora en modo de texto plano. El contenido se pegar\u00e1 como texto plano hasta que desactive esta opci\u00f3n.', + 'Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.': 'Pegar est\u00E1 ahora en modo de texto plano. El contenido se pegar\u00E1 como texto plano hasta que desactive esta opci\u00F3n.', Fonts: 'Fuentes', - 'Font Sizes': 'Tama\u00f1os de fuente', + 'Font Sizes': 'Tama\u00F1os de fuente', Class: 'Clase', 'Browse for an image': 'Buscar una imagen', OR: 'OR', - 'Drop an image here': 'Arrastre una imagen aqu\u00ed', + 'Drop an image here': 'Arrastre una imagen aqu\u00ED', Upload: 'Cargar', Block: 'Bloque', Align: 'Alinear', Default: 'Por defecto', - Circle: 'C\u00edrculo', + Circle: 'C\u00EDrculo', Disc: 'Disco', Square: 'Cuadrado', 'Lower Alpha': 'Inferior Alfa', @@ -71,14 +71,14 @@ tinymce.addI18n('es', { 'Anchor...': 'Anclaje...', Name: 'Nombre', Id: 'Id', - 'Id should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores.': 'Deber\u00eda comenzar por una letra, seguida solo de letras, n\u00fameros, guiones, puntos, dos puntos o guiones bajos.', - 'You have unsaved changes are you sure you want to navigate away?': 'Tiene cambios sin guardar. \u00bfEst\u00e1 seguro de que quiere salir?', - 'Restore last draft': 'Restaurar el \u00faltimo borrador', - 'Special character...': 'Car\u00e1cter especial...', - 'Source code': 'C\u00f3digo fuente', - 'Insert\/Edit code sample': 'Insertar\/editar c\u00f3digo de prueba', + 'Id should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores.': 'Deber\u00EDa comenzar por una letra, seguida solo de letras, n\u00FAmeros, guiones, puntos, dos puntos o guiones bajos.', + 'You have unsaved changes are you sure you want to navigate away?': 'Tiene cambios sin guardar. \u00BFEst\u00E1 seguro de que quiere salir?', + 'Restore last draft': 'Restaurar el \u00FAltimo borrador', + 'Special character...': 'Car\u00E1cter especial...', + 'Source code': 'C\u00F3digo fuente', + 'Insert/Edit code sample': 'Insertar/editar c\u00F3digo de prueba', Language: 'Idioma', - 'Code sample...': 'Ejemplo de c\u00f3digo...', + 'Code sample...': 'Ejemplo de c\u00F3digo...', 'Color Picker': 'Selector de colores', R: 'R', G: 'V', @@ -87,33 +87,33 @@ tinymce.addI18n('es', { 'Right to left': 'De derecha a izquierda', 'Emoticons...': 'Emoticones...', 'Metadata and Document Properties': 'Metadatos y propiedades del documento', - Title: 'T\u00edtulo', + Title: 'T\u00EDtulo', Keywords: 'Palabras clave', - Description: 'Descripci\u00f3n', + Description: 'Descripci\u00F3n', Robots: 'Robots', Author: 'Autor', - Encoding: 'Codificaci\u00f3n', + Encoding: 'Codificaci\u00F3n', Fullscreen: 'Pantalla completa', - Action: 'Acci\u00f3n', + Action: 'Acci\u00F3n', Shortcut: 'Atajo', Help: 'Ayuda', - Address: 'Direcci\u00f3n', - 'Focus to menubar': 'Enfocar la barra del men\u00fa', + Address: 'Direcci\u00F3n', + 'Focus to menubar': 'Enfocar la barra del men\u00FA', 'Focus to toolbar': 'Enfocar la barra de herramientas', 'Focus to element path': 'Enfocar la ruta del elemento', 'Focus to contextual toolbar': 'Enfocar la barra de herramientas contextual', - 'Insert link (if link plugin activated)': 'Insertar enlace (si el complemento de enlace est\u00e1 activado)', - 'Save (if save plugin activated)': 'Guardar (si el componente de salvar est\u00e1 activado)', - 'Find (if searchreplace plugin activated)': 'Buscar (si el complemento buscar-remplazar est\u00e1 activado)', + 'Insert link (if link plugin activated)': 'Insertar enlace (si el complemento de enlace est\u00E1 activado)', + 'Save (if save plugin activated)': 'Guardar (si el componente de salvar est\u00E1 activado)', + 'Find (if searchreplace plugin activated)': 'Buscar (si el complemento buscar-remplazar est\u00E1 activado)', 'Plugins installed ({0}):': 'Plugins instalados ({0}):', 'Premium plugins:': 'Complementos premium:', - 'Learn more...': 'Aprende m\u00e1s...', + 'Learn more...': 'Aprende m\u00E1s...', 'You are using {0}': 'Estas usando {0}', Plugins: 'Complementos', 'Handy Shortcuts': 'Accesos directos', - 'Horizontal line': 'L\u00ednea horizontal', - 'Insert\/edit image': 'Insertar\/editar imagen', - 'Image description': 'Descripci\u00f3n de la imagen', + 'Horizontal line': 'L\u00EDnea horizontal', + 'Insert/edit image': 'Insertar/editar imagen', + 'Image description': 'Descripci\u00F3n de la imagen', Source: 'Enlace', Dimensions: 'Dimensiones', 'Constrain proportions': 'Restringir proporciones', @@ -125,7 +125,7 @@ tinymce.addI18n('es', { Border: 'Borde', 'Insert image': 'Insertar imagen', 'Image...': 'Imagen...', - 'Image list': 'Lista de im\u00e1genes', + 'Image list': 'Lista de im\u00E1genes', 'Rotate counterclockwise': 'Girar a la izquierda', 'Rotate clockwise': 'Girar a la derecha', 'Flip vertically': 'Invertir verticalmente', @@ -136,7 +136,7 @@ tinymce.addI18n('es', { 'Zoom out': 'Alejar', Crop: 'Recortar', Resize: 'Redimensionar', - Orientation: 'Orientaci\u00f3n', + Orientation: 'Orientaci\u00F3n', Brightness: 'Brillo', Sharpen: 'Forma', Contrast: 'Contraste', @@ -144,11 +144,11 @@ tinymce.addI18n('es', { Gamma: 'Gamma', Invert: 'Invertir', Apply: 'Aplicar', - Back: 'Atr\u00e1s', - 'Insert date\/time': 'Insertar fecha\/hora', - 'Date\/time': 'Fecha\/hora', - 'Insert\/Edit Link': 'Insertar\/editar enlace', - 'Insert\/edit link': 'Insertar\/editar enlace', + Back: 'Atr\u00E1s', + 'Insert date/time': 'Insertar fecha/hora', + 'Date/time': 'Fecha/hora', + 'Insert/Edit Link': 'Insertar/editar enlace', + 'Insert/edit link': 'Insertar/editar enlace', 'Text to display': 'Texto para mostrar', Url: 'URL', 'Open link in...': 'Abrir enlace en...', @@ -159,20 +159,20 @@ tinymce.addI18n('es', { Anchors: 'Anclas', 'Link...': 'Enlace...', 'Paste or type a link': 'Pega o introduce un enlace', - 'The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?': 'El enlace que has introducido no parece ser una direcci\u00f3n de correo electr\u00f3nico. Quieres a\u00f1adir el prefijo necesario mailto: ?', - 'The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?': 'El enlace que has introducido no parece ser una enlace externo. Quieres a\u00f1adir el prefijo necesario http:\/\/ ?', + 'The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?': 'El enlace que has introducido no parece ser una direcci\u00F3n de correo electr\u00F3nico. Quieres a\u00F1adir el prefijo necesario mailto: ?', + 'The URL you entered seems to be an external link. Do you want to add the required http:// prefix?': 'El enlace que has introducido no parece ser una enlace externo. Quieres a\u00F1adir el prefijo necesario http:// ?', 'Link list': 'Lista de enlaces', 'Insert video': 'Insertar video', - 'Insert\/edit video': 'Insertar\/editar video', - 'Insert\/edit media': 'Insertar\/editar medio', + 'Insert/edit video': 'Insertar/editar video', + 'Insert/edit media': 'Insertar/editar medio', 'Alternative source': 'Enlace alternativo', 'Alternative source URL': 'Origen de URL alternativo', - 'Media poster (Image URL)': 'P\u00f3ster de medio (URL de imagen)', - 'Paste your embed code below:': 'Pega tu c\u00f3digo embebido debajo', + 'Media poster (Image URL)': 'P\u00F3ster de medio (URL de imagen)', + 'Paste your embed code below:': 'Pega tu c\u00F3digo embebido debajo', Embed: 'Incrustado', 'Media...': 'Medios...', 'Nonbreaking space': 'Espacio fijo', - 'Page break': 'Salto de p\u00e1gina', + 'Page break': 'Salto de p\u00E1gina', 'Paste as text': 'Pegar como texto', Preview: 'Previsualizar', 'Print...': 'Imprimir...', @@ -187,11 +187,11 @@ tinymce.addI18n('es', { 'Could not find the specified string.': 'No se encuentra la cadena de texto especificada', 'Match case': 'Coincidencia exacta', 'Find whole words only': 'Solo palabras completas', - 'Spell check': 'Revisar ortograf\u00eda', + 'Spell check': 'Revisar ortograf\u00EDa', Ignore: 'Ignorar', 'Ignore all': 'Ignorar todos', Finish: 'Finalizar', - 'Add to Dictionary': 'A\u00f1adir al Diccionario', + 'Add to Dictionary': 'A\u00F1adir al Diccionario', 'Insert table': 'Insertar tabla', 'Table properties': 'Propiedades de la tabla', 'Delete table': 'Eliminar tabla', @@ -202,15 +202,15 @@ tinymce.addI18n('es', { 'Merge cells': 'Combinar celdas', 'Split cell': 'Dividir celdas', 'Insert row before': 'Insertar fila antes', - 'Insert row after': 'Insertar fila despu\u00e9s ', + 'Insert row after': 'Insertar fila despu\u00E9s ', 'Delete row': 'Eliminar fila', 'Row properties': 'Propiedades de la fila', 'Cut row': 'Cortar fila', 'Copy row': 'Copiar fila', 'Paste row before': 'Pegar la fila antes', - 'Paste row after': 'Pegar la fila despu\u00e9s', + 'Paste row after': 'Pegar la fila despu\u00E9s', 'Insert column before': 'Insertar columna antes', - 'Insert column after': 'Insertar columna despu\u00e9s', + 'Insert column after': 'Insertar columna despu\u00E9s', 'Delete column': 'Eliminar columna', Cols: 'Columnas', Rows: 'Filas', @@ -218,13 +218,13 @@ tinymce.addI18n('es', { Height: 'Alto', 'Cell spacing': 'Espacio entre celdas', 'Cell padding': 'Relleno de celda', - 'Show caption': 'Mostrar t\u00edtulo', + 'Show caption': 'Mostrar t\u00EDtulo', Left: 'Izquierda', Center: 'Centrado', Right: 'Derecha', 'Cell type': 'Tipo de celda', - Scope: '\u00c1mbito', - Alignment: 'Alineaci\u00f3n', + Scope: '\u00C1mbito', + Alignment: 'Alineaci\u00F3n', 'H Align': 'Alineamiento Horizontal', 'V Align': 'Alineamiento Vertical', Top: 'Arriba', @@ -236,7 +236,7 @@ tinymce.addI18n('es', { 'Row type': 'Tipo de fila', Header: 'Cabecera', Body: 'Cuerpo', - Footer: 'Pie de p\u00e1gina', + Footer: 'Pie de p\u00E1gina', 'Border color': 'Color del borde', 'Insert template...': 'Insertar plantilla...', Templates: 'Plantillas', @@ -253,7 +253,7 @@ tinymce.addI18n('es', { 'Word count': 'Contar palabras', Count: 'Recuento', Document: 'Documento', - Selection: 'Selecci\u00f3n', + Selection: 'Selecci\u00F3n', Words: 'Palabras', 'Words: {0}': 'Palabras: {0}', '{0} words': '{0} palabras', @@ -265,15 +265,15 @@ tinymce.addI18n('es', { Table: 'Tabla', Tools: 'Herramientas', 'Powered by {0}': 'Desarrollado por {0}', - 'Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help': '\u00c1rea de texto enriquecido. Pulse ALT-F9 para el menu. Pulse ALT-F10 para la barra de herramientas. Pulse ALT-0 para ayuda', + 'Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help': '\u00C1rea de texto enriquecido. Pulse ALT-F9 para el menu. Pulse ALT-F10 para la barra de herramientas. Pulse ALT-0 para ayuda', 'Image title': 'Titulo de imagen', 'Border width': 'Ancho de borde', 'Border style': 'Estilo de borde', Error: 'Error', Warn: 'Advertencia', - Valid: 'V\u00e1lido', - 'To open the popup, press Shift+Enter': 'Para abrir el elemento emergente, pulse May\u00fas+Intro', - 'Rich Text Area. Press ALT-0 for help.': '\u00c1rea de texto enriquecido. Pulse ALT-0 para abrir la ayuda.', + Valid: 'V\u00E1lido', + 'To open the popup, press Shift+Enter': 'Para abrir el elemento emergente, pulse May\u00FAs+Intro', + 'Rich Text Area. Press ALT-0 for help.': '\u00C1rea de texto enriquecido. Pulse ALT-0 para abrir la ayuda.', 'System Font': 'Fuente de sistema', 'Failed to upload image: {0}': 'Fallo al cargar imagen: {0}', 'Failed to load plugin: {0} from url {1}': 'Fallo al cargar complemento: {0} desde URL {1}', @@ -285,31 +285,31 @@ tinymce.addI18n('es', { Currency: 'Divisa', Text: 'Texto', Quotations: 'Comillas', - Mathematical: 'S\u00edmbolo matem\u00e1tico', + Mathematical: 'S\u00EDmbolo matem\u00E1tico', 'Extended Latin': 'Latino extendido A', - Symbols: 'S\u00edmbolos', + Symbols: 'S\u00EDmbolos', Arrows: 'Flechas', 'User Defined': 'Definido por el usuario', - 'dollar sign': 'signo de d\u00f3lar', + 'dollar sign': 'signo de d\u00F3lar', 'currency sign': 'signo de divisa', 'euro-currency sign': 'signo de euro', 'colon sign': 'signo de dos puntos', 'cruzeiro sign': 'signo de cruceiro', - 'french franc sign': 'signo de franco franc\u00e9s', + 'french franc sign': 'signo de franco franc\u00E9s', 'lira sign': 'signo de lira', 'mill sign': 'signo de mill', 'naira sign': 'signo de naira', 'peseta sign': 'signo de peseta', 'rupee sign': 'signo de rupia', 'won sign': 'signo de won', - 'new sheqel sign': 'signo de nuevo s\u00e9quel', + 'new sheqel sign': 'signo de nuevo s\u00E9quel', 'dong sign': 'signo de dong', 'kip sign': 'signo de kip', 'tugrik sign': 'signo de tugrik', 'drachma sign': 'signo de dracma', - 'german penny symbol': 'signo de penique alem\u00e1n', + 'german penny symbol': 'signo de penique alem\u00E1n', 'peso sign': 'signo de peso', - 'guarani sign': 'signo de guaran\u00ed', + 'guarani sign': 'signo de guaran\u00ED', 'austral sign': 'signo de austral', 'hryvnia sign': 'signo de grivna', 'cedi sign': 'signo de cedi', @@ -318,13 +318,13 @@ tinymce.addI18n('es', { 'tenge sign': 'signo de tenge', 'indian rupee sign': 'signo de rupia india', 'turkish lira sign': 'signo de lira turca', - 'nordic mark sign': 'signo de marco n\u00f3rdico', + 'nordic mark sign': 'signo de marco n\u00F3rdico', 'manat sign': 'signo de manat', 'ruble sign': 'signo de rublo', - 'yen character': 'car\u00e1cter de yen', - 'yuan character': 'car\u00e1cter de yuan', - 'yuan character, in hong kong and taiwan': 'car\u00e1cter de yuan en Hong Kong y Taiw\u00e1n', - 'yen\/yuan character variant one': 'Variante uno de car\u00e1cter de yen\/yuan', + 'yen character': 'car\u00E1cter de yen', + 'yuan character': 'car\u00E1cter de yuan', + 'yuan character, in hong kong and taiwan': 'car\u00E1cter de yuan en Hong Kong y Taiw\u00E1n', + 'yen/yuan character variant one': 'Variante uno de car\u00E1cter de yen/yuan', 'Loading emoticons...': 'Cargando emoticonos...', 'Could not load emoticons': 'No se han podido cargar los emoticonos', People: 'Personas', @@ -337,19 +337,19 @@ tinymce.addI18n('es', { Characters: 'Caracteres', 'Characters (no spaces)': 'Caracteres (sin espacios)', '{0} characters': '{0} caracteres', - 'Error: Form submit field collision.': 'Error: Colisi\u00f3n de campo al enviar formulario.', - 'Error: No form element found.': 'Error: No se encuentra ning\u00fan elemento de formulario.', + 'Error: Form submit field collision.': 'Error: Colisi\u00F3n de campo al enviar formulario.', + 'Error: No form element found.': 'Error: No se encuentra ning\u00FAn elemento de formulario.', Update: 'Actualizar', 'Color swatch': 'Muestrario de colores', Turquoise: 'Turquesa', Green: 'Verde', Blue: 'Azul', - Purple: 'P\u00farpura', + Purple: 'P\u00FArpura', 'Navy Blue': 'Azul marino', 'Dark Turquoise': 'Turquesa oscuro', 'Dark Green': 'Verde oscuro', 'Medium Blue': 'Azul medio', - 'Medium Purple': 'P\u00farpura medio', + 'Medium Purple': 'P\u00FArpura medio', 'Midnight Blue': 'Azul medio', Yellow: 'Amarillo', Orange: 'Naranja', @@ -371,35 +371,35 @@ tinymce.addI18n('es', { Black: 'Negro', White: 'Blanco', 'Switch to or from fullscreen mode': 'Activar o desactivar modo pantalla completa', - 'Open help dialog': 'Abrir di\u00e1logo de ayuda', + 'Open help dialog': 'Abrir di\u00E1logo de ayuda', history: 'historial', styles: 'estilos', formatting: 'formato', - alignment: 'alineaci\u00f3n', - indentation: 'sangr\u00eda', - 'permanent pen': 'bol\u00edgrafo permanente', + alignment: 'alineaci\u00F3n', + indentation: 'sangr\u00EDa', + 'permanent pen': 'bol\u00EDgrafo permanente', comments: 'comentarios', 'Format Painter': 'Copiar formato', - 'Insert\/edit iframe': 'Insertar\/editar iframe', - Capitalization: 'Uso de may\u00fasculas', - lowercase: 'min\u00fasculas', - UPPERCASE: 'MAY\u00daSCULAS', - 'Title Case': 'Tipo T\u00edtulo', - 'Permanent Pen Properties': 'Propiedades del bol\u00edgrafo permanente', - 'Permanent pen properties...': 'Propiedades del bol\u00edgrafo permanente...', + 'Insert/edit iframe': 'Insertar/editar iframe', + Capitalization: 'Uso de may\u00FAsculas', + lowercase: 'min\u00FAsculas', + UPPERCASE: 'MAY\u00DASCULAS', + 'Title Case': 'Tipo T\u00EDtulo', + 'Permanent Pen Properties': 'Propiedades del bol\u00EDgrafo permanente', + 'Permanent pen properties...': 'Propiedades del bol\u00EDgrafo permanente...', Font: 'Fuente', - Size: 'Tama\u00f1o', - 'More...': 'M\u00e1s...', + Size: 'Tama\u00F1o', + 'More...': 'M\u00E1s...', 'Spellcheck Language': 'Corrector', 'Select...': 'Seleccionar...', Preferences: 'Preferencias', - Yes: 'S\u00ed', + Yes: 'S\u00ED', No: 'No', - 'Keyboard Navigation': 'Navegaci\u00f3n con el teclado', - Version: 'Versi\u00f3n', + 'Keyboard Navigation': 'Navegaci\u00F3n con el teclado', + Version: 'Versi\u00F3n', Anchor: 'Ancla', - 'Special character': 'Car\u00e1cter especial', - 'Code sample': 'Ejemplo de c\u00f3digo', + 'Special character': 'Car\u00E1cter especial', + 'Code sample': 'Ejemplo de c\u00F3digo', Color: 'Color', Emoticons: 'Emoticonos', 'Document properties': 'Propiedades del documento', @@ -413,7 +413,7 @@ tinymce.addI18n('es', { Prev: 'Anterior', 'Find and replace': 'Buscar y reemplazar', 'Whole words': 'Palabras completas', - Spellcheck: 'Corrector ortogr\u00e1fico', - Caption: 'Subt\u00edtulo', + Spellcheck: 'Corrector ortogr\u00E1fico', + Caption: 'Subt\u00EDtulo', 'Insert template': 'Insertar plantilla' }) diff --git a/apps/vben5/apps/app-antd/public/resource/tinymce/langs/zh-CN.js b/apps/vben5/apps/app-antd/public/resource/tinymce/langs/zh-CN.js index f9d8b5cfd..452395aa5 100644 --- a/apps/vben5/apps/app-antd/public/resource/tinymce/langs/zh-CN.js +++ b/apps/vben5/apps/app-antd/public/resource/tinymce/langs/zh-CN.js @@ -1,32 +1,32 @@ tinymce.addI18n('zh_CN',{ -"Redo": "\u91cd\u505a", -"Undo": "\u64a4\u9500", -"Cut": "\u526a\u5207", -"Copy": "\u590d\u5236", -"Paste": "\u7c98\u8d34", +"Redo": "\u91CD\u505A", +"Undo": "\u64A4\u9500", +"Cut": "\u526A\u5207", +"Copy": "\u590D\u5236", +"Paste": "\u7C98\u8D34", "Select all": "\u5168\u9009", -"New document": "\u65b0\u6587\u4ef6", -"Ok": "\u786e\u5b9a", -"Cancel": "\u53d6\u6d88", -"Visual aids": "\u7f51\u683c\u7ebf", -"Bold": "\u7c97\u4f53", -"Italic": "\u659c\u4f53", -"Underline": "\u4e0b\u5212\u7ebf", -"Strikethrough": "\u5220\u9664\u7ebf", -"Superscript": "\u4e0a\u6807", -"Subscript": "\u4e0b\u6807", -"Clear formatting": "\u6e05\u9664\u683c\u5f0f", -"Align left": "\u5de6\u8fb9\u5bf9\u9f50", -"Align center": "\u4e2d\u95f4\u5bf9\u9f50", -"Align right": "\u53f3\u8fb9\u5bf9\u9f50", -"Justify": "\u4e24\u7aef\u5bf9\u9f50", -"Bullet list": "\u9879\u76ee\u7b26\u53f7", -"Numbered list": "\u7f16\u53f7\u5217\u8868", -"Decrease indent": "\u51cf\u5c11\u7f29\u8fdb", -"Increase indent": "\u589e\u52a0\u7f29\u8fdb", -"Close": "\u5173\u95ed", -"Formats": "\u683c\u5f0f", -"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "\u4f60\u7684\u6d4f\u89c8\u5668\u4e0d\u652f\u6301\u6253\u5f00\u526a\u8d34\u677f\uff0c\u8bf7\u4f7f\u7528Ctrl+X\/C\/V\u7b49\u5feb\u6377\u952e\u3002", +"New document": "\u65B0\u6587\u4EF6", +"Ok": "\u786E\u5B9A", +"Cancel": "\u53D6\u6D88", +"Visual aids": "\u7F51\u683C\u7EBF", +"Bold": "\u7C97\u4F53", +"Italic": "\u659C\u4F53", +"Underline": "\u4E0B\u5212\u7EBF", +"Strikethrough": "\u5220\u9664\u7EBF", +"Superscript": "\u4E0A\u6807", +"Subscript": "\u4E0B\u6807", +"Clear formatting": "\u6E05\u9664\u683C\u5F0F", +"Align left": "\u5DE6\u8FB9\u5BF9\u9F50", +"Align center": "\u4E2D\u95F4\u5BF9\u9F50", +"Align right": "\u53F3\u8FB9\u5BF9\u9F50", +"Justify": "\u4E24\u7AEF\u5BF9\u9F50", +"Bullet list": "\u9879\u76EE\u7B26\u53F7", +"Numbered list": "\u7F16\u53F7\u5217\u8868", +"Decrease indent": "\u51CF\u5C11\u7F29\u8FDB", +"Increase indent": "\u589E\u52A0\u7F29\u8FDB", +"Close": "\u5173\u95ED", +"Formats": "\u683C\u5F0F", +"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X/C/V keyboard shortcuts instead.": "\u4F60\u7684\u6D4F\u89C8\u5668\u4E0D\u652F\u6301\u6253\u5F00\u526A\u8D34\u677F\uFF0C\u8BF7\u4F7F\u7528Ctrl+X/C/V\u7B49\u5FEB\u6377\u952E\u3002", "Headers": "\u6807\u9898", "Header 1": "\u6807\u98981", "Header 2": "\u6807\u98982", @@ -41,349 +41,349 @@ tinymce.addI18n('zh_CN',{ "Heading 4": "\u6807\u98984", "Heading 5": "\u6807\u98985", "Heading 6": "\u6807\u98986", -"Preformatted": "\u9884\u5148\u683c\u5f0f\u5316\u7684", +"Preformatted": "\u9884\u5148\u683C\u5F0F\u5316\u7684", "Div": "Div", "Pre": "Pre", -"Code": "\u4ee3\u7801", -"Paragraph": "\u6bb5\u843d", -"Blockquote": "\u5f15\u6587\u533a\u5757", -"Inline": "\u6587\u672c", -"Blocks": "\u57fa\u5757", -"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "\u5f53\u524d\u4e3a\u7eaf\u6587\u672c\u7c98\u8d34\u6a21\u5f0f\uff0c\u518d\u6b21\u70b9\u51fb\u53ef\u4ee5\u56de\u5230\u666e\u901a\u7c98\u8d34\u6a21\u5f0f\u3002", -"Fonts": "\u5b57\u4f53", -"Font Sizes": "\u5b57\u53f7", -"Class": "\u7c7b\u578b", -"Browse for an image": "\u6d4f\u89c8\u56fe\u50cf", +"Code": "\u4EE3\u7801", +"Paragraph": "\u6BB5\u843D", +"Blockquote": "\u5F15\u6587\u533A\u5757", +"Inline": "\u6587\u672C", +"Blocks": "\u57FA\u5757", +"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "\u5F53\u524D\u4E3A\u7EAF\u6587\u672C\u7C98\u8D34\u6A21\u5F0F\uFF0C\u518D\u6B21\u70B9\u51FB\u53EF\u4EE5\u56DE\u5230\u666E\u901A\u7C98\u8D34\u6A21\u5F0F\u3002", +"Fonts": "\u5B57\u4F53", +"Font Sizes": "\u5B57\u53F7", +"Class": "\u7C7B\u578B", +"Browse for an image": "\u6D4F\u89C8\u56FE\u50CF", "OR": "\u6216", -"Drop an image here": "\u62d6\u653e\u4e00\u5f20\u56fe\u50cf\u81f3\u6b64", -"Upload": "\u4e0a\u4f20", +"Drop an image here": "\u62D6\u653E\u4E00\u5F20\u56FE\u50CF\u81F3\u6B64", +"Upload": "\u4E0A\u4F20", "Block": "\u5757", -"Align": "\u5bf9\u9f50", -"Default": "\u9ed8\u8ba4", -"Circle": "\u7a7a\u5fc3\u5706", -"Disc": "\u5b9e\u5fc3\u5706", -"Square": "\u65b9\u5757", -"Lower Alpha": "\u5c0f\u5199\u82f1\u6587\u5b57\u6bcd", -"Lower Greek": "\u5c0f\u5199\u5e0c\u814a\u5b57\u6bcd", -"Lower Roman": "\u5c0f\u5199\u7f57\u9a6c\u5b57\u6bcd", -"Upper Alpha": "\u5927\u5199\u82f1\u6587\u5b57\u6bcd", -"Upper Roman": "\u5927\u5199\u7f57\u9a6c\u5b57\u6bcd", -"Anchor...": "\u951a\u70b9...", -"Name": "\u540d\u79f0", -"Id": "\u6807\u8bc6\u7b26", -"Id should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores.": "\u6807\u8bc6\u7b26\u5e94\u8be5\u4ee5\u5b57\u6bcd\u5f00\u5934\uff0c\u540e\u8ddf\u5b57\u6bcd\u3001\u6570\u5b57\u3001\u7834\u6298\u53f7\u3001\u70b9\u3001\u5192\u53f7\u6216\u4e0b\u5212\u7ebf\u3002", -"You have unsaved changes are you sure you want to navigate away?": "\u4f60\u8fd8\u6709\u6587\u6863\u5c1a\u672a\u4fdd\u5b58\uff0c\u786e\u5b9a\u8981\u79bb\u5f00\uff1f", -"Restore last draft": "\u6062\u590d\u4e0a\u6b21\u7684\u8349\u7a3f", -"Special characters...": "\u7279\u6b8a\u5b57\u7b26...", -"Source code": "\u6e90\u4ee3\u7801", -"Insert\/Edit code sample": "\u63d2\u5165\/\u7f16\u8f91\u4ee3\u7801\u793a\u4f8b", -"Language": "\u8bed\u8a00", -"Code sample...": "\u793a\u4f8b\u4ee3\u7801...", +"Align": "\u5BF9\u9F50", +"Default": "\u9ED8\u8BA4", +"Circle": "\u7A7A\u5FC3\u5706", +"Disc": "\u5B9E\u5FC3\u5706", +"Square": "\u65B9\u5757", +"Lower Alpha": "\u5C0F\u5199\u82F1\u6587\u5B57\u6BCD", +"Lower Greek": "\u5C0F\u5199\u5E0C\u814A\u5B57\u6BCD", +"Lower Roman": "\u5C0F\u5199\u7F57\u9A6C\u5B57\u6BCD", +"Upper Alpha": "\u5927\u5199\u82F1\u6587\u5B57\u6BCD", +"Upper Roman": "\u5927\u5199\u7F57\u9A6C\u5B57\u6BCD", +"Anchor...": "\u951A\u70B9...", +"Name": "\u540D\u79F0", +"Id": "\u6807\u8BC6\u7B26", +"Id should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores.": "\u6807\u8BC6\u7B26\u5E94\u8BE5\u4EE5\u5B57\u6BCD\u5F00\u5934\uFF0C\u540E\u8DDF\u5B57\u6BCD\u3001\u6570\u5B57\u3001\u7834\u6298\u53F7\u3001\u70B9\u3001\u5192\u53F7\u6216\u4E0B\u5212\u7EBF\u3002", +"You have unsaved changes are you sure you want to navigate away?": "\u4F60\u8FD8\u6709\u6587\u6863\u5C1A\u672A\u4FDD\u5B58\uFF0C\u786E\u5B9A\u8981\u79BB\u5F00\uFF1F", +"Restore last draft": "\u6062\u590D\u4E0A\u6B21\u7684\u8349\u7A3F", +"Special characters...": "\u7279\u6B8A\u5B57\u7B26...", +"Source code": "\u6E90\u4EE3\u7801", +"Insert/Edit code sample": "\u63D2\u5165/\u7F16\u8F91\u4EE3\u7801\u793A\u4F8B", +"Language": "\u8BED\u8A00", +"Code sample...": "\u793A\u4F8B\u4EE3\u7801...", "Color Picker": "\u9009\u8272\u5668", "R": "R", "G": "G", "B": "B", -"Left to right": "\u4ece\u5de6\u5230\u53f3", -"Right to left": "\u4ece\u53f3\u5230\u5de6", -"Emoticons...": "\u8868\u60c5\u7b26\u53f7...", -"Metadata and Document Properties": "\u5143\u6570\u636e\u548c\u6587\u6863\u5c5e\u6027", +"Left to right": "\u4ECE\u5DE6\u5230\u53F3", +"Right to left": "\u4ECE\u53F3\u5230\u5DE6", +"Emoticons...": "\u8868\u60C5\u7B26\u53F7...", +"Metadata and Document Properties": "\u5143\u6570\u636E\u548C\u6587\u6863\u5C5E\u6027", "Title": "\u6807\u9898", -"Keywords": "\u5173\u952e\u8bcd", -"Description": "\u63cf\u8ff0", -"Robots": "\u673a\u5668\u4eba", -"Author": "\u4f5c\u8005", -"Encoding": "\u7f16\u7801", -"Fullscreen": "\u5168\u5c4f", -"Action": "\u64cd\u4f5c", -"Shortcut": "\u5feb\u6377\u952e", -"Help": "\u5e2e\u52a9", +"Keywords": "\u5173\u952E\u8BCD", +"Description": "\u63CF\u8FF0", +"Robots": "\u673A\u5668\u4EBA", +"Author": "\u4F5C\u8005", +"Encoding": "\u7F16\u7801", +"Fullscreen": "\u5168\u5C4F", +"Action": "\u64CD\u4F5C", +"Shortcut": "\u5FEB\u6377\u952E", +"Help": "\u5E2E\u52A9", "Address": "\u5730\u5740", -"Focus to menubar": "\u79fb\u52a8\u7126\u70b9\u5230\u83dc\u5355\u680f", -"Focus to toolbar": "\u79fb\u52a8\u7126\u70b9\u5230\u5de5\u5177\u680f", -"Focus to element path": "\u79fb\u52a8\u7126\u70b9\u5230\u5143\u7d20\u8def\u5f84", -"Focus to contextual toolbar": "\u79fb\u52a8\u7126\u70b9\u5230\u4e0a\u4e0b\u6587\u83dc\u5355", -"Insert link (if link plugin activated)": "\u63d2\u5165\u94fe\u63a5 (\u5982\u679c\u94fe\u63a5\u63d2\u4ef6\u5df2\u6fc0\u6d3b)", -"Save (if save plugin activated)": "\u4fdd\u5b58(\u5982\u679c\u4fdd\u5b58\u63d2\u4ef6\u5df2\u6fc0\u6d3b)", -"Find (if searchreplace plugin activated)": "\u67e5\u627e(\u5982\u679c\u67e5\u627e\u66ff\u6362\u63d2\u4ef6\u5df2\u6fc0\u6d3b)", -"Plugins installed ({0}):": "\u5df2\u5b89\u88c5\u63d2\u4ef6 ({0}):", -"Premium plugins:": "\u4f18\u79c0\u63d2\u4ef6\uff1a", -"Learn more...": "\u4e86\u89e3\u66f4\u591a...", -"You are using {0}": "\u4f60\u6b63\u5728\u4f7f\u7528 {0}", -"Plugins": "\u63d2\u4ef6", -"Handy Shortcuts": "\u5feb\u6377\u952e", -"Horizontal line": "\u6c34\u5e73\u5206\u5272\u7ebf", -"Insert\/edit image": "\u63d2\u5165\/\u7f16\u8f91\u56fe\u7247", -"Image description": "\u56fe\u7247\u63cf\u8ff0", +"Focus to menubar": "\u79FB\u52A8\u7126\u70B9\u5230\u83DC\u5355\u680F", +"Focus to toolbar": "\u79FB\u52A8\u7126\u70B9\u5230\u5DE5\u5177\u680F", +"Focus to element path": "\u79FB\u52A8\u7126\u70B9\u5230\u5143\u7D20\u8DEF\u5F84", +"Focus to contextual toolbar": "\u79FB\u52A8\u7126\u70B9\u5230\u4E0A\u4E0B\u6587\u83DC\u5355", +"Insert link (if link plugin activated)": "\u63D2\u5165\u94FE\u63A5 (\u5982\u679C\u94FE\u63A5\u63D2\u4EF6\u5DF2\u6FC0\u6D3B)", +"Save (if save plugin activated)": "\u4FDD\u5B58(\u5982\u679C\u4FDD\u5B58\u63D2\u4EF6\u5DF2\u6FC0\u6D3B)", +"Find (if searchreplace plugin activated)": "\u67E5\u627E(\u5982\u679C\u67E5\u627E\u66FF\u6362\u63D2\u4EF6\u5DF2\u6FC0\u6D3B)", +"Plugins installed ({0}):": "\u5DF2\u5B89\u88C5\u63D2\u4EF6 ({0}):", +"Premium plugins:": "\u4F18\u79C0\u63D2\u4EF6\uFF1A", +"Learn more...": "\u4E86\u89E3\u66F4\u591A...", +"You are using {0}": "\u4F60\u6B63\u5728\u4F7F\u7528 {0}", +"Plugins": "\u63D2\u4EF6", +"Handy Shortcuts": "\u5FEB\u6377\u952E", +"Horizontal line": "\u6C34\u5E73\u5206\u5272\u7EBF", +"Insert/edit image": "\u63D2\u5165/\u7F16\u8F91\u56FE\u7247", +"Image description": "\u56FE\u7247\u63CF\u8FF0", "Source": "\u5730\u5740", -"Dimensions": "\u5927\u5c0f", -"Constrain proportions": "\u4fdd\u6301\u7eb5\u6a2a\u6bd4", -"General": "\u666e\u901a", -"Advanced": "\u9ad8\u7ea7", -"Style": "\u6837\u5f0f", -"Vertical space": "\u5782\u76f4\u8fb9\u8ddd", -"Horizontal space": "\u6c34\u5e73\u8fb9\u8ddd", -"Border": "\u8fb9\u6846", -"Insert image": "\u63d2\u5165\u56fe\u7247", -"Image...": "\u56fe\u7247...", -"Image list": "\u56fe\u7247\u5217\u8868", -"Rotate counterclockwise": "\u9006\u65f6\u9488\u65cb\u8f6c", -"Rotate clockwise": "\u987a\u65f6\u9488\u65cb\u8f6c", -"Flip vertically": "\u5782\u76f4\u7ffb\u8f6c", -"Flip horizontally": "\u6c34\u5e73\u7ffb\u8f6c", -"Edit image": "\u7f16\u8f91\u56fe\u7247", -"Image options": "\u56fe\u7247\u9009\u9879", -"Zoom in": "\u653e\u5927", -"Zoom out": "\u7f29\u5c0f", -"Crop": "\u88c1\u526a", -"Resize": "\u8c03\u6574\u5927\u5c0f", -"Orientation": "\u65b9\u5411", -"Brightness": "\u4eae\u5ea6", +"Dimensions": "\u5927\u5C0F", +"Constrain proportions": "\u4FDD\u6301\u7EB5\u6A2A\u6BD4", +"General": "\u666E\u901A", +"Advanced": "\u9AD8\u7EA7", +"Style": "\u6837\u5F0F", +"Vertical space": "\u5782\u76F4\u8FB9\u8DDD", +"Horizontal space": "\u6C34\u5E73\u8FB9\u8DDD", +"Border": "\u8FB9\u6846", +"Insert image": "\u63D2\u5165\u56FE\u7247", +"Image...": "\u56FE\u7247...", +"Image list": "\u56FE\u7247\u5217\u8868", +"Rotate counterclockwise": "\u9006\u65F6\u9488\u65CB\u8F6C", +"Rotate clockwise": "\u987A\u65F6\u9488\u65CB\u8F6C", +"Flip vertically": "\u5782\u76F4\u7FFB\u8F6C", +"Flip horizontally": "\u6C34\u5E73\u7FFB\u8F6C", +"Edit image": "\u7F16\u8F91\u56FE\u7247", +"Image options": "\u56FE\u7247\u9009\u9879", +"Zoom in": "\u653E\u5927", +"Zoom out": "\u7F29\u5C0F", +"Crop": "\u88C1\u526A", +"Resize": "\u8C03\u6574\u5927\u5C0F", +"Orientation": "\u65B9\u5411", +"Brightness": "\u4EAE\u5EA6", "Sharpen": "\u9510\u5316", -"Contrast": "\u5bf9\u6bd4\u5ea6", -"Color levels": "\u989c\u8272\u5c42\u6b21", -"Gamma": "\u4f3d\u9a6c\u503c", -"Invert": "\u53cd\u8f6c", -"Apply": "\u5e94\u7528", -"Back": "\u540e\u9000", -"Insert date\/time": "\u63d2\u5165\u65e5\u671f\/\u65f6\u95f4", -"Date\/time": "\u65e5\u671f\/\u65f6\u95f4", -"Insert\/Edit Link": "\u63d2\u5165\/\u7f16\u8f91\u94fe\u63a5", -"Insert\/edit link": "\u63d2\u5165\/\u7f16\u8f91\u94fe\u63a5", -"Text to display": "\u663e\u793a\u6587\u5b57", +"Contrast": "\u5BF9\u6BD4\u5EA6", +"Color levels": "\u989C\u8272\u5C42\u6B21", +"Gamma": "\u4F3D\u9A6C\u503C", +"Invert": "\u53CD\u8F6C", +"Apply": "\u5E94\u7528", +"Back": "\u540E\u9000", +"Insert date/time": "\u63D2\u5165\u65E5\u671F/\u65F6\u95F4", +"Date/time": "\u65E5\u671F/\u65F6\u95F4", +"Insert/Edit Link": "\u63D2\u5165/\u7F16\u8F91\u94FE\u63A5", +"Insert/edit link": "\u63D2\u5165/\u7F16\u8F91\u94FE\u63A5", +"Text to display": "\u663E\u793A\u6587\u5B57", "Url": "\u5730\u5740", -"Open link in...": "\u94fe\u63a5\u6253\u5f00\u4f4d\u7f6e...", -"Current window": "\u5f53\u524d\u7a97\u53e3", -"None": "\u65e0", -"New window": "\u5728\u65b0\u7a97\u53e3\u6253\u5f00", -"Remove link": "\u5220\u9664\u94fe\u63a5", -"Anchors": "\u951a\u70b9", -"Link...": "\u94fe\u63a5...", -"Paste or type a link": "\u7c98\u8d34\u6216\u8f93\u5165\u94fe\u63a5", -"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "\u4f60\u6240\u586b\u5199\u7684URL\u5730\u5740\u4e3a\u90ae\u4ef6\u5730\u5740\uff0c\u9700\u8981\u52a0\u4e0amailto:\u524d\u7f00\u5417\uff1f", -"The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "\u4f60\u6240\u586b\u5199\u7684URL\u5730\u5740\u5c5e\u4e8e\u5916\u90e8\u94fe\u63a5\uff0c\u9700\u8981\u52a0\u4e0ahttp:\/\/:\u524d\u7f00\u5417\uff1f", -"Link list": "\u94fe\u63a5\u5217\u8868", -"Insert video": "\u63d2\u5165\u89c6\u9891", -"Insert\/edit video": "\u63d2\u5165\/\u7f16\u8f91\u89c6\u9891", -"Insert\/edit media": "\u63d2\u5165\/\u7f16\u8f91\u5a92\u4f53", -"Alternative source": "\u955c\u50cf", -"Alternative source URL": "\u66ff\u4ee3\u6765\u6e90\u7f51\u5740", -"Media poster (Image URL)": "\u5c01\u9762(\u56fe\u7247\u5730\u5740)", -"Paste your embed code below:": "\u5c06\u5185\u5d4c\u4ee3\u7801\u7c98\u8d34\u5728\u4e0b\u9762:", -"Embed": "\u5185\u5d4c", -"Media...": "\u591a\u5a92\u4f53...", -"Nonbreaking space": "\u4e0d\u95f4\u65ad\u7a7a\u683c", -"Page break": "\u5206\u9875\u7b26", -"Paste as text": "\u7c98\u8d34\u4e3a\u6587\u672c", -"Preview": "\u9884\u89c8", +"Open link in...": "\u94FE\u63A5\u6253\u5F00\u4F4D\u7F6E...", +"Current window": "\u5F53\u524D\u7A97\u53E3", +"None": "\u65E0", +"New window": "\u5728\u65B0\u7A97\u53E3\u6253\u5F00", +"Remove link": "\u5220\u9664\u94FE\u63A5", +"Anchors": "\u951A\u70B9", +"Link...": "\u94FE\u63A5...", +"Paste or type a link": "\u7C98\u8D34\u6216\u8F93\u5165\u94FE\u63A5", +"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "\u4F60\u6240\u586B\u5199\u7684URL\u5730\u5740\u4E3A\u90AE\u4EF6\u5730\u5740\uFF0C\u9700\u8981\u52A0\u4E0Amailto:\u524D\u7F00\u5417\uFF1F", +"The URL you entered seems to be an external link. Do you want to add the required http:// prefix?": "\u4F60\u6240\u586B\u5199\u7684URL\u5730\u5740\u5C5E\u4E8E\u5916\u90E8\u94FE\u63A5\uFF0C\u9700\u8981\u52A0\u4E0Ahttp://:\u524D\u7F00\u5417\uFF1F", +"Link list": "\u94FE\u63A5\u5217\u8868", +"Insert video": "\u63D2\u5165\u89C6\u9891", +"Insert/edit video": "\u63D2\u5165/\u7F16\u8F91\u89C6\u9891", +"Insert/edit media": "\u63D2\u5165/\u7F16\u8F91\u5A92\u4F53", +"Alternative source": "\u955C\u50CF", +"Alternative source URL": "\u66FF\u4EE3\u6765\u6E90\u7F51\u5740", +"Media poster (Image URL)": "\u5C01\u9762(\u56FE\u7247\u5730\u5740)", +"Paste your embed code below:": "\u5C06\u5185\u5D4C\u4EE3\u7801\u7C98\u8D34\u5728\u4E0B\u9762:", +"Embed": "\u5185\u5D4C", +"Media...": "\u591A\u5A92\u4F53...", +"Nonbreaking space": "\u4E0D\u95F4\u65AD\u7A7A\u683C", +"Page break": "\u5206\u9875\u7B26", +"Paste as text": "\u7C98\u8D34\u4E3A\u6587\u672C", +"Preview": "\u9884\u89C8", "Print...": "\u6253\u5370...", -"Save": "\u4fdd\u5b58", -"Find": "\u67e5\u627e", -"Replace with": "\u66ff\u6362\u4e3a", -"Replace": "\u66ff\u6362", -"Replace all": "\u5168\u90e8\u66ff\u6362", -"Previous": "\u4e0a\u4e00\u4e2a", -"Next": "\u4e0b\u4e00\u4e2a", -"Find and replace...": "\u67e5\u627e\u5e76\u66ff\u6362...", -"Could not find the specified string.": "\u672a\u627e\u5230\u641c\u7d22\u5185\u5bb9.", -"Match case": "\u533a\u5206\u5927\u5c0f\u5199", -"Find whole words only": "\u5168\u5b57\u5339\u914d", -"Spell check": "\u62fc\u5199\u68c0\u67e5", -"Ignore": "\u5ffd\u7565", -"Ignore all": "\u5168\u90e8\u5ffd\u7565", -"Finish": "\u5b8c\u6210", -"Add to Dictionary": "\u6dfb\u52a0\u5230\u5b57\u5178", -"Insert table": "\u63d2\u5165\u8868\u683c", -"Table properties": "\u8868\u683c\u5c5e\u6027", -"Delete table": "\u5220\u9664\u8868\u683c", -"Cell": "\u5355\u5143\u683c", -"Row": "\u884c", +"Save": "\u4FDD\u5B58", +"Find": "\u67E5\u627E", +"Replace with": "\u66FF\u6362\u4E3A", +"Replace": "\u66FF\u6362", +"Replace all": "\u5168\u90E8\u66FF\u6362", +"Previous": "\u4E0A\u4E00\u4E2A", +"Next": "\u4E0B\u4E00\u4E2A", +"Find and replace...": "\u67E5\u627E\u5E76\u66FF\u6362...", +"Could not find the specified string.": "\u672A\u627E\u5230\u641C\u7D22\u5185\u5BB9.", +"Match case": "\u533A\u5206\u5927\u5C0F\u5199", +"Find whole words only": "\u5168\u5B57\u5339\u914D", +"Spell check": "\u62FC\u5199\u68C0\u67E5", +"Ignore": "\u5FFD\u7565", +"Ignore all": "\u5168\u90E8\u5FFD\u7565", +"Finish": "\u5B8C\u6210", +"Add to Dictionary": "\u6DFB\u52A0\u5230\u5B57\u5178", +"Insert table": "\u63D2\u5165\u8868\u683C", +"Table properties": "\u8868\u683C\u5C5E\u6027", +"Delete table": "\u5220\u9664\u8868\u683C", +"Cell": "\u5355\u5143\u683C", +"Row": "\u884C", "Column": "\u5217", -"Cell properties": "\u5355\u5143\u683c\u5c5e\u6027", -"Merge cells": "\u5408\u5e76\u5355\u5143\u683c", -"Split cell": "\u62c6\u5206\u5355\u5143\u683c", -"Insert row before": "\u5728\u4e0a\u65b9\u63d2\u5165", -"Insert row after": "\u5728\u4e0b\u65b9\u63d2\u5165", -"Delete row": "\u5220\u9664\u884c", -"Row properties": "\u884c\u5c5e\u6027", -"Cut row": "\u526a\u5207\u884c", -"Copy row": "\u590d\u5236\u884c", -"Paste row before": "\u7c98\u8d34\u5230\u4e0a\u65b9", -"Paste row after": "\u7c98\u8d34\u5230\u4e0b\u65b9", -"Insert column before": "\u5728\u5de6\u4fa7\u63d2\u5165", -"Insert column after": "\u5728\u53f3\u4fa7\u63d2\u5165", +"Cell properties": "\u5355\u5143\u683C\u5C5E\u6027", +"Merge cells": "\u5408\u5E76\u5355\u5143\u683C", +"Split cell": "\u62C6\u5206\u5355\u5143\u683C", +"Insert row before": "\u5728\u4E0A\u65B9\u63D2\u5165", +"Insert row after": "\u5728\u4E0B\u65B9\u63D2\u5165", +"Delete row": "\u5220\u9664\u884C", +"Row properties": "\u884C\u5C5E\u6027", +"Cut row": "\u526A\u5207\u884C", +"Copy row": "\u590D\u5236\u884C", +"Paste row before": "\u7C98\u8D34\u5230\u4E0A\u65B9", +"Paste row after": "\u7C98\u8D34\u5230\u4E0B\u65B9", +"Insert column before": "\u5728\u5DE6\u4FA7\u63D2\u5165", +"Insert column after": "\u5728\u53F3\u4FA7\u63D2\u5165", "Delete column": "\u5220\u9664\u5217", "Cols": "\u5217", -"Rows": "\u884c", -"Width": "\u5bbd", -"Height": "\u9ad8", -"Cell spacing": "\u5355\u5143\u683c\u5916\u95f4\u8ddd", -"Cell padding": "\u5355\u5143\u683c\u5185\u8fb9\u8ddd", -"Show caption": "\u663e\u793a\u6807\u9898", -"Left": "\u5de6\u5bf9\u9f50", -"Center": "\u5c45\u4e2d", -"Right": "\u53f3\u5bf9\u9f50", -"Cell type": "\u5355\u5143\u683c\u7c7b\u578b", -"Scope": "\u8303\u56f4", -"Alignment": "\u5bf9\u9f50\u65b9\u5f0f", -"H Align": "\u6c34\u5e73\u5bf9\u9f50", -"V Align": "\u5782\u76f4\u5bf9\u9f50", -"Top": "\u9876\u90e8\u5bf9\u9f50", -"Middle": "\u5782\u76f4\u5c45\u4e2d", -"Bottom": "\u5e95\u90e8\u5bf9\u9f50", -"Header cell": "\u8868\u5934\u5355\u5143\u683c", -"Row group": "\u884c\u7ec4", -"Column group": "\u5217\u7ec4", -"Row type": "\u884c\u7c7b\u578b", +"Rows": "\u884C", +"Width": "\u5BBD", +"Height": "\u9AD8", +"Cell spacing": "\u5355\u5143\u683C\u5916\u95F4\u8DDD", +"Cell padding": "\u5355\u5143\u683C\u5185\u8FB9\u8DDD", +"Show caption": "\u663E\u793A\u6807\u9898", +"Left": "\u5DE6\u5BF9\u9F50", +"Center": "\u5C45\u4E2D", +"Right": "\u53F3\u5BF9\u9F50", +"Cell type": "\u5355\u5143\u683C\u7C7B\u578B", +"Scope": "\u8303\u56F4", +"Alignment": "\u5BF9\u9F50\u65B9\u5F0F", +"H Align": "\u6C34\u5E73\u5BF9\u9F50", +"V Align": "\u5782\u76F4\u5BF9\u9F50", +"Top": "\u9876\u90E8\u5BF9\u9F50", +"Middle": "\u5782\u76F4\u5C45\u4E2D", +"Bottom": "\u5E95\u90E8\u5BF9\u9F50", +"Header cell": "\u8868\u5934\u5355\u5143\u683C", +"Row group": "\u884C\u7EC4", +"Column group": "\u5217\u7EC4", +"Row type": "\u884C\u7C7B\u578B", "Header": "\u8868\u5934", -"Body": "\u8868\u4f53", -"Footer": "\u8868\u5c3e", -"Border color": "\u8fb9\u6846\u989c\u8272", -"Insert template...": "\u63d2\u5165\u6a21\u677f...", -"Templates": "\u6a21\u677f", -"Template": "\u6a21\u677f", -"Text color": "\u6587\u5b57\u989c\u8272", -"Background color": "\u80cc\u666f\u8272", -"Custom...": "\u81ea\u5b9a\u4e49...", -"Custom color": "\u81ea\u5b9a\u4e49\u989c\u8272", -"No color": "\u65e0", -"Remove color": "\u79fb\u9664\u989c\u8272", -"Table of Contents": "\u5185\u5bb9\u5217\u8868", -"Show blocks": "\u663e\u793a\u533a\u5757\u8fb9\u6846", -"Show invisible characters": "\u663e\u793a\u4e0d\u53ef\u89c1\u5b57\u7b26", -"Word count": "\u5b57\u6570", -"Words: {0}": "\u5b57\u6570\uff1a{0}", -"{0} words": "{0} \u5b57", -"File": "\u6587\u4ef6", -"Edit": "\u7f16\u8f91", -"Insert": "\u63d2\u5165", -"View": "\u89c6\u56fe", -"Format": "\u683c\u5f0f", -"Table": "\u8868\u683c", -"Tools": "\u5de5\u5177", -"Powered by {0}": "\u7531{0}\u9a71\u52a8", -"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "\u5728\u7f16\u8f91\u533a\u6309ALT-F9\u6253\u5f00\u83dc\u5355\uff0c\u6309ALT-F10\u6253\u5f00\u5de5\u5177\u680f\uff0c\u6309ALT-0\u67e5\u770b\u5e2e\u52a9", -"Image title": "\u56fe\u7247\u6807\u9898", -"Border width": "\u8fb9\u6846\u5bbd\u5ea6", -"Border style": "\u8fb9\u6846\u6837\u5f0f", -"Error": "\u9519\u8bef", -"Warn": "\u8b66\u544a", +"Body": "\u8868\u4F53", +"Footer": "\u8868\u5C3E", +"Border color": "\u8FB9\u6846\u989C\u8272", +"Insert template...": "\u63D2\u5165\u6A21\u677F...", +"Templates": "\u6A21\u677F", +"Template": "\u6A21\u677F", +"Text color": "\u6587\u5B57\u989C\u8272", +"Background color": "\u80CC\u666F\u8272", +"Custom...": "\u81EA\u5B9A\u4E49...", +"Custom color": "\u81EA\u5B9A\u4E49\u989C\u8272", +"No color": "\u65E0", +"Remove color": "\u79FB\u9664\u989C\u8272", +"Table of Contents": "\u5185\u5BB9\u5217\u8868", +"Show blocks": "\u663E\u793A\u533A\u5757\u8FB9\u6846", +"Show invisible characters": "\u663E\u793A\u4E0D\u53EF\u89C1\u5B57\u7B26", +"Word count": "\u5B57\u6570", +"Words: {0}": "\u5B57\u6570\uFF1A{0}", +"{0} words": "{0} \u5B57", +"File": "\u6587\u4EF6", +"Edit": "\u7F16\u8F91", +"Insert": "\u63D2\u5165", +"View": "\u89C6\u56FE", +"Format": "\u683C\u5F0F", +"Table": "\u8868\u683C", +"Tools": "\u5DE5\u5177", +"Powered by {0}": "\u7531{0}\u9A71\u52A8", +"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "\u5728\u7F16\u8F91\u533A\u6309ALT-F9\u6253\u5F00\u83DC\u5355\uFF0C\u6309ALT-F10\u6253\u5F00\u5DE5\u5177\u680F\uFF0C\u6309ALT-0\u67E5\u770B\u5E2E\u52A9", +"Image title": "\u56FE\u7247\u6807\u9898", +"Border width": "\u8FB9\u6846\u5BBD\u5EA6", +"Border style": "\u8FB9\u6846\u6837\u5F0F", +"Error": "\u9519\u8BEF", +"Warn": "\u8B66\u544A", "Valid": "\u6709\u6548", -"To open the popup, press Shift+Enter": "\u6309Shitf+Enter\u952e\u6253\u5f00\u5bf9\u8bdd\u6846", -"Rich Text Area. Press ALT-0 for help.": "\u7f16\u8f91\u533a\u3002\u6309Alt+0\u952e\u6253\u5f00\u5e2e\u52a9\u3002", -"System Font": "\u7cfb\u7edf\u5b57\u4f53", -"Failed to upload image: {0}": "\u56fe\u7247\u4e0a\u4f20\u5931\u8d25: {0}", -"Failed to load plugin: {0} from url {1}": "\u63d2\u4ef6\u52a0\u8f7d\u5931\u8d25: {0} \u6765\u81ea\u94fe\u63a5 {1}", -"Failed to load plugin url: {0}": "\u63d2\u4ef6\u52a0\u8f7d\u5931\u8d25 \u94fe\u63a5: {0}", -"Failed to initialize plugin: {0}": "\u63d2\u4ef6\u521d\u59cb\u5316\u5931\u8d25: {0}", -"example": "\u793a\u4f8b", -"Search": "\u641c\u7d22", -"All": "\u5168\u90e8", -"Currency": "\u8d27\u5e01", -"Text": "\u6587\u5b57", -"Quotations": "\u5f15\u7528", -"Mathematical": "\u6570\u5b66", -"Extended Latin": "\u62c9\u4e01\u8bed\u6269\u5145", -"Symbols": "\u7b26\u53f7", -"Arrows": "\u7bad\u5934", -"User Defined": "\u81ea\u5b9a\u4e49", -"dollar sign": "\u7f8e\u5143\u7b26\u53f7", -"currency sign": "\u8d27\u5e01\u7b26\u53f7", -"euro-currency sign": "\u6b27\u5143\u7b26\u53f7", -"colon sign": "\u5192\u53f7", -"cruzeiro sign": "\u514b\u9c81\u8d5b\u7f57\u5e01\u7b26\u53f7", -"french franc sign": "\u6cd5\u90ce\u7b26\u53f7", -"lira sign": "\u91cc\u62c9\u7b26\u53f7", -"mill sign": "\u5bc6\u5c14\u7b26\u53f7", -"naira sign": "\u5948\u62c9\u7b26\u53f7", -"peseta sign": "\u6bd4\u585e\u5854\u7b26\u53f7", -"rupee sign": "\u5362\u6bd4\u7b26\u53f7", -"won sign": "\u97e9\u5143\u7b26\u53f7", -"new sheqel sign": "\u65b0\u8c22\u514b\u5c14\u7b26\u53f7", -"dong sign": "\u8d8a\u5357\u76fe\u7b26\u53f7", -"kip sign": "\u8001\u631d\u57fa\u666e\u7b26\u53f7", -"tugrik sign": "\u56fe\u683c\u91cc\u514b\u7b26\u53f7", -"drachma sign": "\u5fb7\u62c9\u514b\u9a6c\u7b26\u53f7", -"german penny symbol": "\u5fb7\u56fd\u4fbf\u58eb\u7b26\u53f7", -"peso sign": "\u6bd4\u7d22\u7b26\u53f7", -"guarani sign": "\u74dc\u62c9\u5c3c\u7b26\u53f7", -"austral sign": "\u6fb3\u5143\u7b26\u53f7", -"hryvnia sign": "\u683c\u91cc\u592b\u5c3c\u4e9a\u7b26\u53f7", -"cedi sign": "\u585e\u5730\u7b26\u53f7", -"livre tournois sign": "\u91cc\u5f17\u5f17\u5c14\u7b26\u53f7", -"spesmilo sign": "spesmilo\u7b26\u53f7", -"tenge sign": "\u575a\u6208\u7b26\u53f7", -"indian rupee sign": "\u5370\u5ea6\u5362\u6bd4", -"turkish lira sign": "\u571f\u8033\u5176\u91cc\u62c9", -"nordic mark sign": "\u5317\u6b27\u9a6c\u514b", -"manat sign": "\u9a6c\u7eb3\u7279\u7b26\u53f7", -"ruble sign": "\u5362\u5e03\u7b26\u53f7", -"yen character": "\u65e5\u5143\u5b57\u6837", -"yuan character": "\u4eba\u6c11\u5e01\u5143\u5b57\u6837", -"yuan character, in hong kong and taiwan": "\u5143\u5b57\u6837\uff08\u6e2f\u53f0\u5730\u533a\uff09", -"yen\/yuan character variant one": "\u5143\u5b57\u6837\uff08\u5927\u5199\uff09", -"Loading emoticons...": "\u52a0\u8f7d\u8868\u60c5\u7b26\u53f7...", -"Could not load emoticons": "\u4e0d\u80fd\u52a0\u8f7d\u8868\u60c5\u7b26\u53f7", -"People": "\u4eba\u7c7b", -"Animals and Nature": "\u52a8\u7269\u548c\u81ea\u7136", -"Food and Drink": "\u98df\u7269\u548c\u996e\u54c1", -"Activity": "\u6d3b\u52a8", -"Travel and Places": "\u65c5\u6e38\u548c\u5730\u70b9", -"Objects": "\u7269\u4ef6", -"Flags": "\u65d7\u5e1c", -"Characters": "\u5b57\u7b26", -"Characters (no spaces)": "\u5b57\u7b26(\u65e0\u7a7a\u683c)", -"Error: Form submit field collision.": "\u9519\u8bef: \u8868\u5355\u63d0\u4ea4\u5b57\u6bb5\u51b2\u7a81\u3002", -"Error: No form element found.": "\u9519\u8bef: \u6ca1\u6709\u8868\u5355\u63a7\u4ef6\u3002", -"Update": "\u66f4\u65b0", -"Color swatch": "\u989c\u8272\u6837\u672c", -"Turquoise": "\u9752\u7eff\u8272", -"Green": "\u7eff\u8272", -"Blue": "\u84dd\u8272", -"Purple": "\u7d2b\u8272", -"Navy Blue": "\u6d77\u519b\u84dd", -"Dark Turquoise": "\u6df1\u84dd\u7eff\u8272", -"Dark Green": "\u6df1\u7eff\u8272", -"Medium Blue": "\u4e2d\u84dd\u8272", -"Medium Purple": "\u4e2d\u7d2b\u8272", -"Midnight Blue": "\u6df1\u84dd\u8272", -"Yellow": "\u9ec4\u8272", -"Orange": "\u6a59\u8272", -"Red": "\u7ea2\u8272", -"Light Gray": "\u6d45\u7070\u8272", +"To open the popup, press Shift+Enter": "\u6309Shitf+Enter\u952E\u6253\u5F00\u5BF9\u8BDD\u6846", +"Rich Text Area. Press ALT-0 for help.": "\u7F16\u8F91\u533A\u3002\u6309Alt+0\u952E\u6253\u5F00\u5E2E\u52A9\u3002", +"System Font": "\u7CFB\u7EDF\u5B57\u4F53", +"Failed to upload image: {0}": "\u56FE\u7247\u4E0A\u4F20\u5931\u8D25: {0}", +"Failed to load plugin: {0} from url {1}": "\u63D2\u4EF6\u52A0\u8F7D\u5931\u8D25: {0} \u6765\u81EA\u94FE\u63A5 {1}", +"Failed to load plugin url: {0}": "\u63D2\u4EF6\u52A0\u8F7D\u5931\u8D25 \u94FE\u63A5: {0}", +"Failed to initialize plugin: {0}": "\u63D2\u4EF6\u521D\u59CB\u5316\u5931\u8D25: {0}", +"example": "\u793A\u4F8B", +"Search": "\u641C\u7D22", +"All": "\u5168\u90E8", +"Currency": "\u8D27\u5E01", +"Text": "\u6587\u5B57", +"Quotations": "\u5F15\u7528", +"Mathematical": "\u6570\u5B66", +"Extended Latin": "\u62C9\u4E01\u8BED\u6269\u5145", +"Symbols": "\u7B26\u53F7", +"Arrows": "\u7BAD\u5934", +"User Defined": "\u81EA\u5B9A\u4E49", +"dollar sign": "\u7F8E\u5143\u7B26\u53F7", +"currency sign": "\u8D27\u5E01\u7B26\u53F7", +"euro-currency sign": "\u6B27\u5143\u7B26\u53F7", +"colon sign": "\u5192\u53F7", +"cruzeiro sign": "\u514B\u9C81\u8D5B\u7F57\u5E01\u7B26\u53F7", +"french franc sign": "\u6CD5\u90CE\u7B26\u53F7", +"lira sign": "\u91CC\u62C9\u7B26\u53F7", +"mill sign": "\u5BC6\u5C14\u7B26\u53F7", +"naira sign": "\u5948\u62C9\u7B26\u53F7", +"peseta sign": "\u6BD4\u585E\u5854\u7B26\u53F7", +"rupee sign": "\u5362\u6BD4\u7B26\u53F7", +"won sign": "\u97E9\u5143\u7B26\u53F7", +"new sheqel sign": "\u65B0\u8C22\u514B\u5C14\u7B26\u53F7", +"dong sign": "\u8D8A\u5357\u76FE\u7B26\u53F7", +"kip sign": "\u8001\u631D\u57FA\u666E\u7B26\u53F7", +"tugrik sign": "\u56FE\u683C\u91CC\u514B\u7B26\u53F7", +"drachma sign": "\u5FB7\u62C9\u514B\u9A6C\u7B26\u53F7", +"german penny symbol": "\u5FB7\u56FD\u4FBF\u58EB\u7B26\u53F7", +"peso sign": "\u6BD4\u7D22\u7B26\u53F7", +"guarani sign": "\u74DC\u62C9\u5C3C\u7B26\u53F7", +"austral sign": "\u6FB3\u5143\u7B26\u53F7", +"hryvnia sign": "\u683C\u91CC\u592B\u5C3C\u4E9A\u7B26\u53F7", +"cedi sign": "\u585E\u5730\u7B26\u53F7", +"livre tournois sign": "\u91CC\u5F17\u5F17\u5C14\u7B26\u53F7", +"spesmilo sign": "spesmilo\u7B26\u53F7", +"tenge sign": "\u575A\u6208\u7B26\u53F7", +"indian rupee sign": "\u5370\u5EA6\u5362\u6BD4", +"turkish lira sign": "\u571F\u8033\u5176\u91CC\u62C9", +"nordic mark sign": "\u5317\u6B27\u9A6C\u514B", +"manat sign": "\u9A6C\u7EB3\u7279\u7B26\u53F7", +"ruble sign": "\u5362\u5E03\u7B26\u53F7", +"yen character": "\u65E5\u5143\u5B57\u6837", +"yuan character": "\u4EBA\u6C11\u5E01\u5143\u5B57\u6837", +"yuan character, in hong kong and taiwan": "\u5143\u5B57\u6837\uFF08\u6E2F\u53F0\u5730\u533A\uFF09", +"yen/yuan character variant one": "\u5143\u5B57\u6837\uFF08\u5927\u5199\uFF09", +"Loading emoticons...": "\u52A0\u8F7D\u8868\u60C5\u7B26\u53F7...", +"Could not load emoticons": "\u4E0D\u80FD\u52A0\u8F7D\u8868\u60C5\u7B26\u53F7", +"People": "\u4EBA\u7C7B", +"Animals and Nature": "\u52A8\u7269\u548C\u81EA\u7136", +"Food and Drink": "\u98DF\u7269\u548C\u996E\u54C1", +"Activity": "\u6D3B\u52A8", +"Travel and Places": "\u65C5\u6E38\u548C\u5730\u70B9", +"Objects": "\u7269\u4EF6", +"Flags": "\u65D7\u5E1C", +"Characters": "\u5B57\u7B26", +"Characters (no spaces)": "\u5B57\u7B26(\u65E0\u7A7A\u683C)", +"Error: Form submit field collision.": "\u9519\u8BEF: \u8868\u5355\u63D0\u4EA4\u5B57\u6BB5\u51B2\u7A81\u3002", +"Error: No form element found.": "\u9519\u8BEF: \u6CA1\u6709\u8868\u5355\u63A7\u4EF6\u3002", +"Update": "\u66F4\u65B0", +"Color swatch": "\u989C\u8272\u6837\u672C", +"Turquoise": "\u9752\u7EFF\u8272", +"Green": "\u7EFF\u8272", +"Blue": "\u84DD\u8272", +"Purple": "\u7D2B\u8272", +"Navy Blue": "\u6D77\u519B\u84DD", +"Dark Turquoise": "\u6DF1\u84DD\u7EFF\u8272", +"Dark Green": "\u6DF1\u7EFF\u8272", +"Medium Blue": "\u4E2D\u84DD\u8272", +"Medium Purple": "\u4E2D\u7D2B\u8272", +"Midnight Blue": "\u6DF1\u84DD\u8272", +"Yellow": "\u9EC4\u8272", +"Orange": "\u6A59\u8272", +"Red": "\u7EA2\u8272", +"Light Gray": "\u6D45\u7070\u8272", "Gray": "\u7070\u8272", -"Dark Yellow": "\u6697\u9ec4\u8272", -"Dark Orange": "\u6df1\u6a59\u8272", -"Dark Red": "\u6df1\u7ea2\u8272", -"Medium Gray": "\u4e2d\u7070\u8272", -"Dark Gray": "\u6df1\u7070\u8272", -"Black": "\u9ed1\u8272", -"White": "\u767d\u8272", -"Switch to or from fullscreen mode": "\u5207\u6362\u5168\u5c4f\u6a21\u5f0f", -"Open help dialog": "\u6253\u5f00\u5e2e\u52a9\u5bf9\u8bdd\u6846", -"history": "\u5386\u53f2", -"styles": "\u6837\u5f0f", -"formatting": "\u683c\u5f0f\u5316", -"alignment": "\u5bf9\u9f50", -"indentation": "\u7f29\u8fdb", -"permanent pen": "\u8bb0\u53f7\u7b14", -"comments": "\u5907\u6ce8", -"Anchor": "\u951a\u70b9", -"Special character": "\u7279\u6b8a\u7b26\u53f7", -"Code sample": "\u4ee3\u7801\u793a\u4f8b", -"Color": "\u989c\u8272", -"Emoticons": "\u8868\u60c5", -"Document properties": "\u6587\u6863\u5c5e\u6027", -"Image": "\u56fe\u7247", -"Insert link": "\u63d2\u5165\u94fe\u63a5", -"Target": "\u6253\u5f00\u65b9\u5f0f", -"Link": "\u94fe\u63a5", -"Poster": "\u5c01\u9762", -"Media": "\u5a92\u4f53", +"Dark Yellow": "\u6697\u9EC4\u8272", +"Dark Orange": "\u6DF1\u6A59\u8272", +"Dark Red": "\u6DF1\u7EA2\u8272", +"Medium Gray": "\u4E2D\u7070\u8272", +"Dark Gray": "\u6DF1\u7070\u8272", +"Black": "\u9ED1\u8272", +"White": "\u767D\u8272", +"Switch to or from fullscreen mode": "\u5207\u6362\u5168\u5C4F\u6A21\u5F0F", +"Open help dialog": "\u6253\u5F00\u5E2E\u52A9\u5BF9\u8BDD\u6846", +"history": "\u5386\u53F2", +"styles": "\u6837\u5F0F", +"formatting": "\u683C\u5F0F\u5316", +"alignment": "\u5BF9\u9F50", +"indentation": "\u7F29\u8FDB", +"permanent pen": "\u8BB0\u53F7\u7B14", +"comments": "\u5907\u6CE8", +"Anchor": "\u951A\u70B9", +"Special character": "\u7279\u6B8A\u7B26\u53F7", +"Code sample": "\u4EE3\u7801\u793A\u4F8B", +"Color": "\u989C\u8272", +"Emoticons": "\u8868\u60C5", +"Document properties": "\u6587\u6863\u5C5E\u6027", +"Image": "\u56FE\u7247", +"Insert link": "\u63D2\u5165\u94FE\u63A5", +"Target": "\u6253\u5F00\u65B9\u5F0F", +"Link": "\u94FE\u63A5", +"Poster": "\u5C01\u9762", +"Media": "\u5A92\u4F53", "Print": "\u6253\u5370", -"Prev": "\u4e0a\u4e00\u4e2a", -"Find and replace": "\u67e5\u627e\u548c\u66ff\u6362", -"Whole words": "\u5168\u5b57\u5339\u914d", -"Spellcheck": "\u62fc\u5199\u68c0\u67e5", +"Prev": "\u4E0A\u4E00\u4E2A", +"Find and replace": "\u67E5\u627E\u548C\u66FF\u6362", +"Whole words": "\u5168\u5B57\u5339\u914D", +"Spellcheck": "\u62FC\u5199\u68C0\u67E5", "Caption": "\u6807\u9898", -"Insert template": "\u63d2\u5165\u6a21\u677f" +"Insert template": "\u63D2\u5165\u6A21\u677F" }); \ No newline at end of file diff --git a/apps/vben5/apps/app-antd/src/adapter/component/index.ts b/apps/vben5/apps/app-antd/src/adapter/component/index.ts index 902b77237..b3bb2375f 100644 --- a/apps/vben5/apps/app-antd/src/adapter/component/index.ts +++ b/apps/vben5/apps/app-antd/src/adapter/component/index.ts @@ -69,7 +69,14 @@ import { isEmpty } from '@vben/utils'; import { FeatureStateCheck, GlobalFeatureStateCheck } from '@abp/features'; import { PermissionStateCheck } from '@abp/permissions'; import { TenantSelect } from '@abp/saas'; -import { Empty, InputSearch, message, Modal, notification, Tree } from 'ant-design-vue'; +import { + Empty, + InputSearch, + message, + Modal, + notification, + Tree, +} from 'ant-design-vue'; const ColorPicker = defineAsyncComponent(() => import('vue3-colorpicker').then((res) => { diff --git a/apps/vben5/apps/app-antd/src/adapter/request/index.ts b/apps/vben5/apps/app-antd/src/adapter/request/index.ts index 072e67d12..8db1a7434 100644 --- a/apps/vben5/apps/app-antd/src/adapter/request/index.ts +++ b/apps/vben5/apps/app-antd/src/adapter/request/index.ts @@ -56,7 +56,7 @@ export function initRequestClient() { const timezoneStore = useTimezoneStore(); if (accessStore.accessToken) { - config.headers.Authorization = `${accessStore.accessToken}`; + config.headers.Authorization = accessStore.accessToken; } config.headers['Accept-Language'] = preferences.app.locale; config.headers['X-Request-From'] = 'vben'; @@ -76,7 +76,7 @@ export function initRequestClient() { }); // response数据解构 - requestClient.addResponseInterceptor({ + requestClient.addResponseInterceptor({ fulfilled: (response) => { const { data, status } = response; const { hasWrapResult, getData } = useWrapperResult(response); diff --git a/apps/vben5/apps/app-antd/src/layouts/auth.vue b/apps/vben5/apps/app-antd/src/layouts/auth.vue index 18d415bc7..525e2112f 100644 --- a/apps/vben5/apps/app-antd/src/layouts/auth.vue +++ b/apps/vben5/apps/app-antd/src/layouts/auth.vue @@ -15,8 +15,7 @@ const logo = computed(() => preferences.logo.source); :app-name="appName" :logo="logo" :page-description="$t('authentication.pageDesc')" - :page-title="$t('authentication.pageTitle')" - > + :page-title="$t('authentication.pageTitle')"> diff --git a/apps/vben5/apps/app-antd/src/layouts/basic.vue b/apps/vben5/apps/app-antd/src/layouts/basic.vue index 507ee63d8..f3565effb 100644 --- a/apps/vben5/apps/app-antd/src/layouts/basic.vue +++ b/apps/vben5/apps/app-antd/src/layouts/basic.vue @@ -108,13 +108,17 @@ function handleMakeAll() { } async function handleLinkUser(token: string) { - const { currentUser, currentTenant } = abpStore.application!; const extraQueryParams: Record = { - LinkUserId: currentUser.id!, LinkToken: token, }; - if (currentTenant.id) { - extraQueryParams.LinkTenantId = currentTenant.id; + if (abpStore.application) { + const { currentUser, currentTenant } = abpStore.application; + if (currentUser.id) { + extraQueryParams.LinkUserId = currentUser.id; + } + if (currentTenant.id) { + extraQueryParams.LinkTenantId = currentTenant.id; + } } // 跳转登录页,交由后端处理 await authStore.oidcLogin({ @@ -173,8 +177,7 @@ watch( :menus :tag-text="userInfo?.email" :text="userInfo?.realName" - @logout="handleLogout" - /> + @logout="handleLogout" /> {{ description }} @@ -186,14 +189,12 @@ watch( :dot="showDot" :notifications="notifications" @clear="handleNoticeClear" - @make-all="handleMakeAll" - /> + @make-all="handleMakeAll" /> diff --git a/apps/vben5/apps/app-antd/src/preferences.ts b/apps/vben5/apps/app-antd/src/preferences.ts index 54d2511cf..9b9f94727 100644 --- a/apps/vben5/apps/app-antd/src/preferences.ts +++ b/apps/vben5/apps/app-antd/src/preferences.ts @@ -1,4 +1,7 @@ -import { appCopyrightPreferences, defineOverridesPreferences } from '@vben/preferences'; +import { + appCopyrightPreferences, + defineOverridesPreferences, +} from '@vben/preferences'; /** * @description 项目配置文件 diff --git a/apps/vben5/apps/app-antd/src/store/auth.ts b/apps/vben5/apps/app-antd/src/store/auth.ts index 06791a955..6ac164de0 100644 --- a/apps/vben5/apps/app-antd/src/store/auth.ts +++ b/apps/vben5/apps/app-antd/src/store/auth.ts @@ -58,7 +58,6 @@ export const useAuthStore = defineStore('auth', () => { accessToken: user.access_token, tokenType: user.token_type, refreshToken: user.refresh_token ?? '', - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion expiresIn: user.expires_in!, }); } catch (error: any) { @@ -81,7 +80,6 @@ export const useAuthStore = defineStore('auth', () => { accessToken: user.access_token, tokenType: user.token_type, refreshToken: user.refresh_token ?? '', - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion expiresIn: user.expires_in!, }, onSuccess, @@ -104,7 +102,6 @@ export const useAuthStore = defineStore('auth', () => { accessToken: user.access_token, tokenType: user.token_type, refreshToken: user.refresh_token ?? '', - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion expiresIn: user.expires_in!, }, onSuccess, @@ -132,7 +129,6 @@ export const useAuthStore = defineStore('auth', () => { accessToken: user.access_token, tokenType: user.token_type, refreshToken: user.refresh_token ?? '', - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion expiresIn: user.expires_in!, }, onSuccess, @@ -163,7 +159,6 @@ export const useAuthStore = defineStore('auth', () => { accessToken: user.access_token, tokenType: user.token_type, refreshToken: user.refresh_token ?? '', - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion expiresIn: user.expires_in!, }, onSuccess, @@ -190,7 +185,6 @@ export const useAuthStore = defineStore('auth', () => { accessToken: user.access_token, tokenType: user.token_type, refreshToken: user.refresh_token ?? '', - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion expiresIn: user.expires_in!, }, onSuccess, @@ -228,7 +222,6 @@ export const useAuthStore = defineStore('auth', () => { } async function fetchUserInfo() { - let userInfo: null | (UserInfo & { [key: string]: any }) = null; let userInfoRes: { [key: string]: any } = {}; const user = await oAuthService.getUser(); if (user) { @@ -237,7 +230,7 @@ export const useAuthStore = defineStore('auth', () => { const abpConfig = await getConfigApi({ includeLocalizationResources: false, }); - userInfo = { + const userInfo = { userId: userInfoRes.sub ?? abpConfig.currentUser.id, username: userInfoRes.uniqueName ?? abpConfig.currentUser.userName, realName: diff --git a/apps/vben5/apps/app-antd/src/views/_core/authentication/code-login.vue b/apps/vben5/apps/app-antd/src/views/_core/authentication/code-login.vue index 8238ed31d..12ec951d2 100644 --- a/apps/vben5/apps/app-antd/src/views/_core/authentication/code-login.vue +++ b/apps/vben5/apps/app-antd/src/views/_core/authentication/code-login.vue @@ -86,6 +86,5 @@ async function handleLogin(values: Recordable) { ref="codeLogin" :form-schema="formSchema" :loading="loading" - @submit="handleLogin" - /> + @submit="handleLogin" /> diff --git a/apps/vben5/apps/app-antd/src/views/_core/authentication/forget-password.vue b/apps/vben5/apps/app-antd/src/views/_core/authentication/forget-password.vue index 3e676213e..5676a503b 100644 --- a/apps/vben5/apps/app-antd/src/views/_core/authentication/forget-password.vue +++ b/apps/vben5/apps/app-antd/src/views/_core/authentication/forget-password.vue @@ -160,6 +160,5 @@ async function handleSubmit(values: Recordable) { :form-schema="formSchema" :submit-button-text="$t('AbpAccount.ResetPassword')" :loading="loading" - @submit="handleSubmit" - /> + @submit="handleSubmit" /> diff --git a/apps/vben5/apps/app-antd/src/views/_core/authentication/login.vue b/apps/vben5/apps/app-antd/src/views/_core/authentication/login.vue index c414aad1d..de31f751b 100644 --- a/apps/vben5/apps/app-antd/src/views/_core/authentication/login.vue +++ b/apps/vben5/apps/app-antd/src/views/_core/authentication/login.vue @@ -162,8 +162,7 @@ onMounted(onInit); :form-schema="formSchema" :loading="authStore.loginLoading" :show-register="isTrue('Abp.Account.IsSelfRegistrationEnabled')" - @submit="onLogin" - > + @submit="onLogin"> diff --git a/apps/vben5/apps/app-antd/src/views/_core/authentication/register.vue b/apps/vben5/apps/app-antd/src/views/_core/authentication/register.vue index b1a5de726..5c3dc93ff 100644 --- a/apps/vben5/apps/app-antd/src/views/_core/authentication/register.vue +++ b/apps/vben5/apps/app-antd/src/views/_core/authentication/register.vue @@ -91,6 +91,5 @@ function handleSubmit(value: Recordable) { + @submit="handleSubmit" /> diff --git a/apps/vben5/apps/app-antd/src/views/_core/authentication/two-factor-login.vue b/apps/vben5/apps/app-antd/src/views/_core/authentication/two-factor-login.vue index cf9270deb..0736dbb24 100644 --- a/apps/vben5/apps/app-antd/src/views/_core/authentication/two-factor-login.vue +++ b/apps/vben5/apps/app-antd/src/views/_core/authentication/two-factor-login.vue @@ -130,33 +130,28 @@ async function onSendCode(api: () => Promise) { ref="formRef" :label-col="{ span: 6 }" :model="formModel" - :wrapper-col="{ span: 18 }" - > + :wrapper-col="{ span: 18 }"> + required> @@ -65,20 +64,17 @@ onBeforeUnmount(() => { :img="imageUrl" :width="500" :height="300" - :aspect-ratio="aspectRatio" - /> + :aspect-ratio="aspectRatio" />
diff --git a/apps/vben5/docs/src/demos/vben-cropper/basic/index.vue b/apps/vben5/docs/src/demos/vben-cropper/basic/index.vue index 332a1c358..c9a65ee48 100644 --- a/apps/vben5/docs/src/demos/vben-cropper/basic/index.vue +++ b/apps/vben5/docs/src/demos/vben-cropper/basic/index.vue @@ -43,14 +43,12 @@ onBeforeUnmount(() => {
diff --git a/apps/vben5/docs/src/demos/vben-descriptions/size/index.vue b/apps/vben5/docs/src/demos/vben-descriptions/size/index.vue index d75a7e6b2..bc0db2e2a 100644 --- a/apps/vben5/docs/src/demos/vben-descriptions/size/index.vue +++ b/apps/vben5/docs/src/demos/vben-descriptions/size/index.vue @@ -15,21 +15,18 @@ const items = [ bordered title="Small" :column="2" - :items="items" - /> + :items="items" /> + :items="items" /> + :items="items" /> diff --git a/apps/vben5/docs/src/demos/vben-drawer/auto-height/drawer.vue b/apps/vben5/docs/src/demos/vben-drawer/auto-height/drawer.vue index 41cb3c46b..36ab221f1 100644 --- a/apps/vben5/docs/src/demos/vben-drawer/auto-height/drawer.vue +++ b/apps/vben5/docs/src/demos/vben-drawer/auto-height/drawer.vue @@ -32,8 +32,7 @@ function handleUpdate(len: number) {
+ class="flex-center h-55 w-full bg-muted even:bg-heavy"> {{ item }}
``` diff --git a/apps/vben5/docs/src/en/components/common-ui/vben-cropper.md b/apps/vben5/docs/src/en/components/common-ui/vben-cropper.md index ebddda318..5d1450d70 100644 --- a/apps/vben5/docs/src/en/components/common-ui/vben-cropper.md +++ b/apps/vben5/docs/src/en/components/common-ui/vben-cropper.md @@ -150,8 +150,7 @@ const handleCropWithSize = async () => { :img="imageUrl" :width="500" :height="400" - aspect-ratio="1:1" - /> + aspect-ratio="1:1" /> diff --git a/apps/vben5/docs/src/en/components/common-ui/vben-table-action.md b/apps/vben5/docs/src/en/components/common-ui/vben-table-action.md index 7c1e76553..f04f55bb9 100644 --- a/apps/vben5/docs/src/en/components/common-ui/vben-table-action.md +++ b/apps/vben5/docs/src/en/components/common-ui/vben-table-action.md @@ -92,8 +92,7 @@ import { VbenTableAction } from '#/adapter/vxe-table'; auth: ['AC_100100'], }, ]" - align="center" - /> + align="center" /> @@ -118,8 +117,7 @@ function hasPermission(auth?: string | string[]) { + align="center" /> ``` diff --git a/apps/vben5/docs/src/en/guide/essentials/route.md b/apps/vben5/docs/src/en/guide/essentials/route.md index 8fb0a6d1c..b637f2299 100644 --- a/apps/vben5/docs/src/en/guide/essentials/route.md +++ b/apps/vben5/docs/src/en/guide/essentials/route.md @@ -61,6 +61,13 @@ The configuration method of static routes and dynamic routes is the same. Below ### Secondary Routes +::: tip + +- Only top-level routes should start their `path` with `/`; routes inside `children` should use relative segments such as `about` or `menu1`. +- When a parent route does not define `redirect`, the framework automatically fills it with the first child route. This only works when child paths stay relative. + +::: + ::: details Secondary Route Example Code ```ts diff --git a/apps/vben5/docs/src/en/guide/in-depth/login.md b/apps/vben5/docs/src/en/guide/in-depth/login.md index 7fdac2c6f..6cd0609bb 100644 --- a/apps/vben5/docs/src/en/guide/in-depth/login.md +++ b/apps/vben5/docs/src/en/guide/in-depth/login.md @@ -37,8 +37,7 @@ If you want to adjust the content of the login form, you can configure the `Auth ```vue + @submit="authStore.authLogin" /> ``` ::: details AuthenticationLogin Component Props diff --git a/apps/vben5/docs/src/guide/essentials/route.md b/apps/vben5/docs/src/guide/essentials/route.md index 8383e7620..91d544692 100644 --- a/apps/vben5/docs/src/guide/essentials/route.md +++ b/apps/vben5/docs/src/guide/essentials/route.md @@ -55,6 +55,13 @@ const externalRoutes: RouteRecordRaw[] = mergeRouteModules(externalRouteFiles); ### 二级路由 +::: tip + +- 只有顶级路由的 `path` 需要以 `/` 开头;写在 `children` 中的子路由请使用相对路径片段,例如 `about`、`menu1`。 +- 当父级路由未显式配置 `redirect` 时,框架会自动补全到第一个子路由的重定向;这依赖子路由使用相对路径。 + +::: + ::: details 二级路由示例代码 ```ts @@ -101,6 +108,7 @@ export default routes; ::: tip +- 多级路由同样遵循“顶级绝对路径、子级相对路径”的组织方式,避免在 `children` 中重复写完整路径。 - 如果没有特殊情况,父级路由的 `redirect` 属性,不需要指定,默认会指向第一个子路由。 ::: diff --git a/apps/vben5/docs/src/guide/in-depth/login.md b/apps/vben5/docs/src/guide/in-depth/login.md index adb89b75d..df09f6785 100644 --- a/apps/vben5/docs/src/guide/in-depth/login.md +++ b/apps/vben5/docs/src/guide/in-depth/login.md @@ -22,8 +22,7 @@ outline: deep :app-name="appName" :logo="logo" :page-description="$t('authentication.pageDesc')" - :page-title="$t('authentication.pageTitle')" -> + :page-title="$t('authentication.pageTitle')"> ``` @@ -34,8 +33,7 @@ outline: deep ```vue + @submit="authStore.authLogin" /> ``` ::: details AuthenticationLogin 组件参数 diff --git a/apps/vben5/eslint.config.mjs b/apps/vben5/eslint.config.mjs index 63bd9adc3..39b7d71dc 100644 --- a/apps/vben5/eslint.config.mjs +++ b/apps/vben5/eslint.config.mjs @@ -1,3 +1,15 @@ import { defineConfig } from '@vben/eslint-config'; -export default defineConfig(); +export default defineConfig({ + "vue/html-closing-bracket-newline": [ + "error", + { + "singleline": "never", + "multiline": "always", + "selfClosingTag": { + "singleline": "never", + "multiline": "never" + } + } + ] +}); diff --git a/apps/vben5/internal/lint-configs/eslint-config/src/configs/javascript.ts b/apps/vben5/internal/lint-configs/eslint-config/src/configs/javascript.ts index bd9bd852b..27e14371e 100644 --- a/apps/vben5/internal/lint-configs/eslint-config/src/configs/javascript.ts +++ b/apps/vben5/internal/lint-configs/eslint-config/src/configs/javascript.ts @@ -16,6 +16,7 @@ const rulesCoveredByOxlint = new Set([ 'no-const-assign', 'no-constant-binary-expression', 'no-constant-condition', + 'no-control-regex', 'no-debugger', 'no-delete-var', 'no-dupe-args', @@ -48,6 +49,8 @@ const rulesCoveredByOxlint = new Set([ 'no-shadow-restricted-names', 'no-sparse-arrays', 'no-this-before-super', + 'no-unassigned-vars', + 'no-unexpected-multiline', 'no-unreachable', 'no-unsafe-finally', 'no-unsafe-negation', @@ -59,6 +62,7 @@ const rulesCoveredByOxlint = new Set([ 'no-useless-catch', 'no-useless-escape', 'no-with', + 'preserve-caught-error', 'require-yield', 'use-isnan', 'valid-typeof', diff --git a/apps/vben5/internal/lint-configs/oxlint-config/src/configs/javascript.ts b/apps/vben5/internal/lint-configs/oxlint-config/src/configs/javascript.ts index 4352c8017..89784dc36 100644 --- a/apps/vben5/internal/lint-configs/oxlint-config/src/configs/javascript.ts +++ b/apps/vben5/internal/lint-configs/oxlint-config/src/configs/javascript.ts @@ -41,7 +41,7 @@ const javascript: OxlintConfig = { 'no-caller': 'error', 'no-case-declarations': 'error', 'no-console': ['error', { allow: ['warn', 'error'] }], - 'no-control-regex': 'off', + 'no-control-regex': 'error', 'no-debugger': 'error', 'no-empty': ['error', { allowEmptyCatch: true }], 'no-fallthrough': 'error', @@ -68,6 +68,8 @@ const javascript: OxlintConfig = { ], 'no-template-curly-in-string': 'error', 'no-throw-literal': 'error', + 'no-unassigned-vars': 'error', + 'no-unexpected-multiline': 'error', 'no-unused-expressions': [ 'error', { @@ -108,6 +110,12 @@ const javascript: OxlintConfig = { 'prefer-rest-params': 'error', 'prefer-spread': 'error', 'prefer-template': 'error', + 'preserve-caught-error': [ + 'error', + { + requireCatchParameter: false, + }, + ], 'symbol-description': 'error', 'unicode-bom': ['error', 'never'], 'use-isnan': [ diff --git a/apps/vben5/internal/lint-configs/oxlint-config/src/configs/vue.ts b/apps/vben5/internal/lint-configs/oxlint-config/src/configs/vue.ts index 172507d69..6e140b85d 100644 --- a/apps/vben5/internal/lint-configs/oxlint-config/src/configs/vue.ts +++ b/apps/vben5/internal/lint-configs/oxlint-config/src/configs/vue.ts @@ -2,6 +2,7 @@ import type { OxlintConfig } from 'oxlint'; const vue: OxlintConfig = { rules: { + 'vue/no-reserved-component-names': 'off', 'vue/prefer-import-from-vue': 'error', }, }; diff --git a/apps/vben5/internal/node-utils/src/git.ts b/apps/vben5/internal/node-utils/src/git.ts index 88f159cc5..da6dc74cc 100644 --- a/apps/vben5/internal/node-utils/src/git.ts +++ b/apps/vben5/internal/node-utils/src/git.ts @@ -20,7 +20,13 @@ async function getStagedFiles(): Promise { '-z', ]); - let changedList = stdout ? stdout.replace(/\0$/, '').split('\0') : []; + const nullSeparator = '\u0000'; + const normalizedStdout = stdout.endsWith(nullSeparator) + ? stdout.slice(0, -1) + : stdout; + let changedList = normalizedStdout + ? normalizedStdout.split(nullSeparator) + : []; changedList = changedList.map((item) => path.resolve(process.cwd(), item)); const changedSet = new Set(changedList); changedSet.delete(''); diff --git a/apps/vben5/internal/vite-config/src/plugins/importmap.ts b/apps/vben5/internal/vite-config/src/plugins/importmap.ts index 0ccda99f8..1cf3cb84f 100644 --- a/apps/vben5/internal/vite-config/src/plugins/importmap.ts +++ b/apps/vben5/internal/vite-config/src/plugins/importmap.ts @@ -180,7 +180,7 @@ async function viteImportMapPlugin( }, injectTo: 'head-prepend', tag: 'script', - children: `${JSON.stringify(importmapJson)}`, + children: JSON.stringify(importmapJson), }, ], }; diff --git a/apps/vben5/oxfmt.config.ts b/apps/vben5/oxfmt.config.ts index 9ad7fe1bf..4db35686d 100644 --- a/apps/vben5/oxfmt.config.ts +++ b/apps/vben5/oxfmt.config.ts @@ -1,6 +1,7 @@ import { defineConfig } from '@vben/oxfmt-config'; export default defineConfig({ + bracketSameLine: true, ignorePatterns: [ 'dist', 'dev-dist', @@ -18,7 +19,7 @@ export default defineConfig({ '.output', '**/*.svg', '**/*.sh', - 'public', + 'public/', '.npmrc', '*-lock.yaml', 'skills-lock.json', diff --git a/apps/vben5/oxlint.config.ts b/apps/vben5/oxlint.config.ts index 230ddd98b..21bf2ac5c 100644 --- a/apps/vben5/oxlint.config.ts +++ b/apps/vben5/oxlint.config.ts @@ -2,4 +2,15 @@ import { oxlintConfig } from '@vben/oxlint-config'; import { defineConfig } from 'oxlint'; -export default defineConfig(oxlintConfig); +export default defineConfig({ + ...oxlintConfig, + rules: { + 'no-unused-expressions': 'warn', + 'no-unused-vars': 'warn', + 'typescript/no-dynamic-delete': 'warn', + 'typescript/no-non-null-assertion': 'warn', + 'unicorn/no-useless-spread': 'warn', + 'vitest/hoisted-apis-on-top': 'warn', + 'vitest/require-mock-type-parameters': 'warn', + }, +}); diff --git a/apps/vben5/package.json b/apps/vben5/package.json index dbe278a44..10b2fcdea 100644 --- a/apps/vben5/package.json +++ b/apps/vben5/package.json @@ -55,6 +55,7 @@ "dev:play": "pnpm -F @vben/playground run dev", "format": "vsh lint --format", "lint": "vsh lint", + "lint:check": "oxlint --quiet", "postinstall": "pnpm -r run --if-present stub", "preinstall": "npx only-allow pnpm", "prepare": "is-ci || pnpm exec lefthook install", diff --git a/apps/vben5/packages/@abp/account/src/components/MyProfile.vue b/apps/vben5/packages/@abp/account/src/components/MyProfile.vue index a17f9b5eb..e7eda10ed 100644 --- a/apps/vben5/packages/@abp/account/src/components/MyProfile.vue +++ b/apps/vben5/packages/@abp/account/src/components/MyProfile.vue @@ -78,63 +78,53 @@ onMounted(onGet); + mode="inline" />
+ :title="$t('abp.account.settings.basicSettings')">
+ :wrapper-col="{ span: 18 }"> + required> + " /> + required> + type="email" /> + name="phoneNumber"> + name="surname"> + name="name"> @@ -142,8 +132,7 @@ onMounted(onGet);
@@ -162,8 +151,7 @@ onMounted(onGet); :before-upload="onBeforeUpload" :file-list="[]" name="file" - @change="onAvatarChange" - > + @change="onAvatarChange">
+ @picture-change="onGetProfile" /> + @on-init="emits('onBindInit')" /> + @change-phone-number="onChangePhoneNumber" /> + v-else-if="selectedMenuKeys[0] === 'authenticator'" /> + v-else-if="selectedMenuKeys[0] === 'personal-data'" />
diff --git a/apps/vben5/packages/@abp/account/src/components/QrCodeLogin.vue b/apps/vben5/packages/@abp/account/src/components/QrCodeLogin.vue index 192f28e54..db031e88a 100644 --- a/apps/vben5/packages/@abp/account/src/components/QrCodeLogin.vue +++ b/apps/vben5/packages/@abp/account/src/components/QrCodeLogin.vue @@ -165,8 +165,7 @@ onUnmounted(() => { qrcode + class="w-1/2" /> diff --git a/apps/vben5/packages/@abp/account/src/components/UserLinkModal.vue b/apps/vben5/packages/@abp/account/src/components/UserLinkModal.vue index 0b16737c7..a04afe698 100644 --- a/apps/vben5/packages/@abp/account/src/components/UserLinkModal.vue +++ b/apps/vben5/packages/@abp/account/src/components/UserLinkModal.vue @@ -176,8 +176,7 @@ async function onDeleteLink(record: LinkUserDto) { :icon="h(LoginOutlined)" block type="link" - @click="onLoginByLink(row)" - > + @click="onLoginByLink(row)"> {{ $t('AbpAccount.LinkUser:Login') }} diff --git a/apps/vben5/packages/@abp/account/src/components/components/AuthenticatorSettings.vue b/apps/vben5/packages/@abp/account/src/components/components/AuthenticatorSettings.vue index ec5d9b247..032873e08 100644 --- a/apps/vben5/packages/@abp/account/src/components/components/AuthenticatorSettings.vue +++ b/apps/vben5/packages/@abp/account/src/components/components/AuthenticatorSettings.vue @@ -41,8 +41,7 @@ onMounted(onGet); + @done="onGet" /> + :title="$t('AbpAccount.ResetAuthenticator')" /> diff --git a/apps/vben5/packages/@abp/account/src/components/components/AuthenticatorSteps.vue b/apps/vben5/packages/@abp/account/src/components/components/AuthenticatorSteps.vue index a3323804e..6863295e3 100644 --- a/apps/vben5/packages/@abp/account/src/components/components/AuthenticatorSteps.vue +++ b/apps/vben5/packages/@abp/account/src/components/components/AuthenticatorSteps.vue @@ -97,8 +97,7 @@ async function onValidCode() { + type="inner">
@@ -108,16 +107,14 @@ async function onValidCode() { + type="inner">
+ class="flex items-center justify-center rounded-lg bg-[#dac6c6]">
{{ authenticator?.sharedKey }}
@@ -144,8 +141,7 @@ async function onValidCode() { + required> @@ -175,8 +171,7 @@ async function onValidCode() {
+ class="flex flex-col items-center justify-center rounded-lg bg-[#dac6c6]">
{{ recoveryCodes.slice(0, 5).join('\r\n') }}
@@ -195,8 +190,7 @@ async function onValidCode() { v-if="currentStep < 2" :disabled="currentStep === 1 && !codeValidated" type="primary" - @click="onNextStep" - > + @click="onNextStep"> {{ $t('AbpAccount.Steps:NextStep') }}
diff --git a/apps/vben5/packages/@abp/account/src/components/components/BindSettings.vue b/apps/vben5/packages/@abp/account/src/components/components/BindSettings.vue index 6ead87a99..4854c1129 100644 --- a/apps/vben5/packages/@abp/account/src/components/components/BindSettings.vue +++ b/apps/vben5/packages/@abp/account/src/components/components/BindSettings.vue @@ -31,8 +31,7 @@ onMounted(() => { v-for="button in item.buttons" :type="button.type" @click="button.click" - :key="button.title" - > + :key="button.title"> {{ button.title }} diff --git a/apps/vben5/packages/@abp/account/src/components/components/LoginTitle.vue b/apps/vben5/packages/@abp/account/src/components/components/LoginTitle.vue index 3ed9a6bef..f69581fff 100644 --- a/apps/vben5/packages/@abp/account/src/components/components/LoginTitle.vue +++ b/apps/vben5/packages/@abp/account/src/components/components/LoginTitle.vue @@ -1,8 +1,7 @@ + :title="$t('AbpAccount.TwoFactor')" />
diff --git a/apps/vben5/packages/@abp/ai-management/src/components/conversations/index.vue b/apps/vben5/packages/@abp/ai-management/src/components/conversations/index.vue index 8437ef17e..8d20bdcd1 100644 --- a/apps/vben5/packages/@abp/ai-management/src/components/conversations/index.vue +++ b/apps/vben5/packages/@abp/ai-management/src/components/conversations/index.vue @@ -553,8 +553,7 @@ onMounted(onInit); :src="preferences.logo.source" draggable="false" alt="logo" - :style="styles['logo-img']" - /> + :style="styles['logo-img']" /> {{ preferences.app.name }} @@ -564,8 +563,7 @@ onMounted(onInit); type="link" :style="styles.addBtn" @click="onAddConversation" - :loading="conversationRequestLoading" - > + :loading="conversationRequestLoading"> {{ $t('AIManagement.Conversations:New') }} @@ -577,8 +575,7 @@ onMounted(onInit); :items="conversationsItems" :style="styles.conversations" :active-key="activeConversation?.id" - @active-change="onConversationClick" - /> + @active-change="onConversationClick" />
@@ -587,8 +584,7 @@ onMounted(onInit); ref="bubbleRef" :items="bubbleItems" :roles="bubbleRoles" - :style="styles.messages" - /> + :style="styles.messages" /> + @change="(value) => (content = value)"> + :description="$t('BlobManagement.BlobCanNotPreviewMessage')"> @@ -276,16 +275,14 @@ watch(blobData, (newVal, oldVal) => { + @error="onError" />
+ @error="onError" />
@@ -297,15 +294,13 @@ watch(blobData, (newVal, oldVal) => { + class="max-h-[80vh] max-w-full object-contain" />
+ class="whitespace-pre-wrap rounded bg-gray-50 p-4 font-mono text-sm dark:bg-gray-800"> {{ blobText }}
diff --git a/apps/vben5/packages/@abp/blob-management/src/components/blobs/BlobFilePreviewModal1.vue b/apps/vben5/packages/@abp/blob-management/src/components/blobs/BlobFilePreviewModal1.vue index aac734a60..2bbe8348e 100644 --- a/apps/vben5/packages/@abp/blob-management/src/components/blobs/BlobFilePreviewModal1.vue +++ b/apps/vben5/packages/@abp/blob-management/src/components/blobs/BlobFilePreviewModal1.vue @@ -32,7 +32,9 @@ const [Modal, modalApi] = useVbenModal({ fullscreen: true, fullscreenButton: false, onOpenChange: async (isOpen) => { - isOpen && onInit(); + if (isOpen) { + await onInit(); + } }, onClosed() { previewUrl.value = undefined; @@ -71,8 +73,7 @@ function onError(error: Error) { v-if="previewUrl" :url="previewUrl" :name="fileName" - @error="onError" - /> + @error="onError" />
diff --git a/apps/vben5/packages/@abp/blob-management/src/components/blobs/BlobFileTable.vue b/apps/vben5/packages/@abp/blob-management/src/components/blobs/BlobFileTable.vue index 2d8cdd2ad..f774eba0e 100644 --- a/apps/vben5/packages/@abp/blob-management/src/components/blobs/BlobFileTable.vue +++ b/apps/vben5/packages/@abp/blob-management/src/components/blobs/BlobFileTable.vue @@ -257,8 +257,7 @@ watch( v-if="props.containerId" :icon="h(UploadOutlined)" type="primary" - @click="onUpload" - > + @click="onUpload"> {{ $t('BlobManagement.Blobs:UploadFile') }} @@ -269,8 +268,7 @@ watch( :icon="h(EyeOutlined)" block type="link" - @click="onPreview(row)" - > + @click="onPreview(row)"> {{ $t('BlobManagement.Blobs:Preview') }}
diff --git a/apps/vben5/packages/@abp/blob-management/src/components/blobs/BlobFileUploadModal.vue b/apps/vben5/packages/@abp/blob-management/src/components/blobs/BlobFileUploadModal.vue index f884b24ca..8e071dab4 100644 --- a/apps/vben5/packages/@abp/blob-management/src/components/blobs/BlobFileUploadModal.vue +++ b/apps/vben5/packages/@abp/blob-management/src/components/blobs/BlobFileUploadModal.vue @@ -248,8 +248,7 @@ watch( @file-error="onUploadError" @file-progress="onUploadProgress" @file-success="onUploadSuccess" - @files-submitted="onFileSubmitted" - > + @files-submitted="onFileSubmitted">
@@ -265,13 +264,11 @@ watch( + :title="$t('BlobManagement.DisplayName:Name')" /> + width="100"> @@ -279,8 +276,7 @@ watch( + width="180"> @@ -261,8 +260,7 @@ onMounted(onGet); :icon="h(EditOutlined)" type="link" v-access:code="[CachingManagementPermissions.ManageValue]" - @click="onUpdate(row)" - > + @click="onUpdate(row)"> {{ $t('AbpUi.Edit') }} diff --git a/apps/vben5/packages/@abp/cache-management/src/components/CacheRefreshModal.vue b/apps/vben5/packages/@abp/cache-management/src/components/CacheRefreshModal.vue index 22be96ce4..e4e0f54e5 100644 --- a/apps/vben5/packages/@abp/cache-management/src/components/CacheRefreshModal.vue +++ b/apps/vben5/packages/@abp/cache-management/src/components/CacheRefreshModal.vue @@ -111,8 +111,7 @@ async function onSubmit(input: Record) { closable show-icon type="warning" - :message="$t('CachingManagement.EditCacheValueAlertMessage')" - /> + :message="$t('CachingManagement.EditCacheValueAlertMessage')" />
diff --git a/apps/vben5/packages/@abp/components/src/codeeditor/CodeEditor.vue b/apps/vben5/packages/@abp/components/src/codeeditor/CodeEditor.vue index ccf6e0607..ab09e2c8e 100644 --- a/apps/vben5/packages/@abp/components/src/codeeditor/CodeEditor.vue +++ b/apps/vben5/packages/@abp/components/src/codeeditor/CodeEditor.vue @@ -23,9 +23,8 @@ const props = defineProps({ }); const emit = defineEmits<{ - (event: 'change', value: string): void; + (event: 'change' | 'update:value', value: string): void; (event: 'formatError', error: string): void; - (event: 'update:value', value: string): void; }>(); const getValue = computed(() => { @@ -56,7 +55,6 @@ function handleValueChange(v: string) { :mode="mode" :readonly="readonly" :value="getValue" - @change="handleValueChange" - /> + @change="handleValueChange" /> diff --git a/apps/vben5/packages/@abp/components/src/codemirror/CodeMirror.vue b/apps/vben5/packages/@abp/components/src/codemirror/CodeMirror.vue index 2eea2947f..1c94894f3 100644 --- a/apps/vben5/packages/@abp/components/src/codemirror/CodeMirror.vue +++ b/apps/vben5/packages/@abp/components/src/codemirror/CodeMirror.vue @@ -123,7 +123,7 @@ async function init() { onMounted(async () => { await nextTick(); init(); - useWindowSizeFn(debounceRefresh); + useWindowSizeFn(debounceRefresh); }); onUnmounted(() => { diff --git a/apps/vben5/packages/@abp/components/src/codemirror/codemirror.css b/apps/vben5/packages/@abp/components/src/codemirror/codemirror.css index 495e383d2..55becb289 100644 --- a/apps/vben5/packages/@abp/components/src/codemirror/codemirror.css +++ b/apps/vben5/packages/@abp/components/src/codemirror/codemirror.css @@ -408,7 +408,7 @@ div.CodeMirror span.CodeMirror-nonmatchingbracket { font-variant-ligatures: contextual; line-height: inherit; color: inherit; - word-wrap: normal; + overflow-wrap: normal; white-space: pre; background: transparent; border-width: 0; @@ -420,7 +420,7 @@ div.CodeMirror span.CodeMirror-nonmatchingbracket { .CodeMirror-wrap pre { word-break: normal; - word-wrap: break-word; + overflow-wrap: break-word; white-space: pre-wrap; } diff --git a/apps/vben5/packages/@abp/components/src/cropper/Cropper.vue b/apps/vben5/packages/@abp/components/src/cropper/Cropper.vue index 66e4727c8..e240681fe 100644 --- a/apps/vben5/packages/@abp/components/src/cropper/Cropper.vue +++ b/apps/vben5/packages/@abp/components/src/cropper/Cropper.vue @@ -136,16 +136,15 @@ function croppered() { } const fileReader: FileReader = new FileReader(); fileReader.readAsDataURL(blob); - fileReader.onloadend = (e) => { + fileReader.addEventListener('loadend', (e) => { emits('cropend', { imgBase64: e.target?.result ?? '', imgInfo, }); - }; - // eslint-disable-next-line unicorn/prefer-add-event-listener - fileReader.onerror = () => { + }); + fileReader.addEventListener('error', () => { emits('cropendError'); - }; + }); }, 'image/png'); } @@ -182,8 +181,7 @@ function getRoundedCanvas() { :src="src" :alt="alt" :crossorigin="crossorigin" - :style="getImageStyle" - /> + :style="getImageStyle" /> diff --git a/apps/vben5/packages/@abp/notifications/src/components/definitions/groups/NotificationGroupDefinitionModal.vue b/apps/vben5/packages/@abp/notifications/src/components/definitions/groups/NotificationGroupDefinitionModal.vue index 40929c16c..adb96b2ff 100644 --- a/apps/vben5/packages/@abp/notifications/src/components/definitions/groups/NotificationGroupDefinitionModal.vue +++ b/apps/vben5/packages/@abp/notifications/src/components/definitions/groups/NotificationGroupDefinitionModal.vue @@ -74,7 +74,9 @@ const [Modal, modalApi] = useVbenModal({ try { modalApi.setState({ loading: true }); const { name } = modalApi.getData(); - name && (await onGet(name)); + if (name) { + await onGet(name); + } } finally { modalApi.setState({ loading: false }); } @@ -97,6 +99,7 @@ function onPropChange(prop: PropertyInfo) { } function onPropDelete(prop: PropertyInfo) { formModel.value.extraProperties ??= {}; + // oxlint-disable-next-line typescript/no-dynamic-delete delete formModel.value.extraProperties[prop.key]; } @@ -107,50 +110,41 @@ function onPropDelete(prop: PropertyInfo) { ref="form" :label-col="{ span: 6 }" :model="formModel" - :wrapper-col="{ span: 18 }" - > + :wrapper-col="{ span: 18 }"> + required> + autocomplete="off" /> + required> + :disabled="formModel.isStatic" /> + name="description"> + :disabled="formModel.isStatic" /> + :extra="$t('Notifications.Description:AllowSubscriptionToClients')"> + v-model:checked="formModel.allowSubscriptionToClients"> {{ $t('Notifications.DisplayName:AllowSubscriptionToClients') }} @@ -161,8 +155,7 @@ function onPropDelete(prop: PropertyInfo) { :data="formModel.extraProperties" :disabled="formModel.isStatic" @change="onPropChange" - @delete="onPropDelete" - /> + @delete="onPropDelete" /> diff --git a/apps/vben5/packages/@abp/notifications/src/components/definitions/groups/NotificationGroupDefinitionTable.vue b/apps/vben5/packages/@abp/notifications/src/components/definitions/groups/NotificationGroupDefinitionTable.vue index b16553a2e..7246a21df 100644 --- a/apps/vben5/packages/@abp/notifications/src/components/definitions/groups/NotificationGroupDefinitionTable.vue +++ b/apps/vben5/packages/@abp/notifications/src/components/definitions/groups/NotificationGroupDefinitionTable.vue @@ -213,8 +213,7 @@ onMounted(onGet); :icon="h(PlusOutlined)" type="primary" v-access:code="[GroupDefinitionsPermissions.Create]" - @click="onCreate" - > + @click="onCreate"> {{ $t('Notifications.GroupDefinitions:AddNew') }} @@ -225,8 +224,7 @@ onMounted(onGet); block type="link" v-access:code="[GroupDefinitionsPermissions.Update]" - @click="onUpdate(row)" - > + @click="onUpdate(row)"> {{ $t('AbpUi.Edit') }} @@ -248,8 +245,7 @@ onMounted(onGet); hasAccessByCodes([NotificationDefinitionsPermissions.Create]) " key="definitions" - :icon="h(DefinitionIcon)" - > + :icon="h(DefinitionIcon)"> {{ $t('Notifications.NotificationDefinitions:AddNew') }}
diff --git a/apps/vben5/packages/@abp/notifications/src/components/definitions/notifications/NotificationDefinitionModal.vue b/apps/vben5/packages/@abp/notifications/src/components/definitions/notifications/NotificationDefinitionModal.vue index 0f3411654..3a8f8df1e 100644 --- a/apps/vben5/packages/@abp/notifications/src/components/definitions/notifications/NotificationDefinitionModal.vue +++ b/apps/vben5/packages/@abp/notifications/src/components/definitions/notifications/NotificationDefinitionModal.vue @@ -115,7 +115,9 @@ const [Modal, modalApi] = useVbenModal({ const { groupName, name } = modalApi.getData(); await onInit(groupName); - name && (await onGet(name)); + if (name) { + await onGet(name); + } } finally { modalApi.setState({ loading: false }); } @@ -149,8 +151,8 @@ async function onInit(groupName?: string) { displayName: Lr(displayName.resourceName, displayName.name), }; }); - if (getGroupsRes.items.length === 1) { - formModel.value.groupName = getGroupsRes.items[0]!.name; + if (getGroupsRes.items.length === 1 && getGroupsRes.items[0]) { + formModel.value.groupName = getGroupsRes.items[0].name; } } function onPropChange(prop: PropertyInfo) { @@ -159,6 +161,7 @@ function onPropChange(prop: PropertyInfo) { } function onPropDelete(prop: PropertyInfo) { formModel.value.extraProperties ??= {}; + // oxlint-disable-next-line typescript/no-dynamic-delete delete formModel.value.extraProperties[prop.key]; } @@ -169,129 +172,108 @@ function onPropDelete(prop: PropertyInfo) { ref="form" :label-col="{ span: 6 }" :model="formModel" - :wrapper-col="{ span: 18 }" - > + :wrapper-col="{ span: 18 }"> + required> + autocomplete="off" /> + required> + :disabled="formModel.isStatic" /> + :label="$t('Notifications.DisplayName:Description')"> + v-model:value="formModel.description" /> + :extra="$t('Notifications.Description:AllowSubscriptionToClients')"> + v-model:checked="formModel.allowSubscriptionToClients"> {{ $t('Notifications.DisplayName:AllowSubscriptionToClients') }} + :extra="$t('Notifications.Description:NotificationType')"> + :options="notificationLifetimeOptions" /> + :extra="$t('Notifications.Description:ContentType')"> + :field-names="{ label: 'name', value: 'name' }" /> + :extra="$t('Notifications.Description:Template')"> + "> diff --git a/apps/vben5/packages/@core/ui-kit/shadcn-ui/src/ui/toggle-group/ToggleGroup.vue b/apps/vben5/packages/@core/ui-kit/shadcn-ui/src/ui/toggle-group/ToggleGroup.vue index 405f21120..7f08ccbcc 100644 --- a/apps/vben5/packages/@core/ui-kit/shadcn-ui/src/ui/toggle-group/ToggleGroup.vue +++ b/apps/vben5/packages/@core/ui-kit/shadcn-ui/src/ui/toggle-group/ToggleGroup.vue @@ -57,8 +57,7 @@ const forwarded = useForwardPropsEmits(delegatedProps, emits); 'group/toggle-group flex w-fit items-center gap-[--spacing(var(--gap))] rounded-md data-[spacing=default]:data-[variant=outline]:shadow-xs', props.class, ) - " - > + "> diff --git a/apps/vben5/packages/@core/ui-kit/shadcn-ui/src/ui/toggle-group/ToggleGroupItem.vue b/apps/vben5/packages/@core/ui-kit/shadcn-ui/src/ui/toggle-group/ToggleGroupItem.vue index 11e4a6c34..7b719d025 100644 --- a/apps/vben5/packages/@core/ui-kit/shadcn-ui/src/ui/toggle-group/ToggleGroupItem.vue +++ b/apps/vben5/packages/@core/ui-kit/shadcn-ui/src/ui/toggle-group/ToggleGroupItem.vue @@ -49,8 +49,7 @@ const forwardedProps = useForwardProps(delegatedProps); 'data-[spacing=0]:rounded-none data-[spacing=0]:shadow-none data-[spacing=0]:first:rounded-l-md data-[spacing=0]:last:rounded-r-md data-[variant=outline]:[&:not(:first-child)]:-ml-px data-[spacing=0]:data-[variant=outline]:first:border-l', props.class, ) - " - > + "> diff --git a/apps/vben5/packages/@core/ui-kit/shadcn-ui/src/ui/toggle/Toggle.vue b/apps/vben5/packages/@core/ui-kit/shadcn-ui/src/ui/toggle/Toggle.vue index e89ece72e..c417fbc91 100644 --- a/apps/vben5/packages/@core/ui-kit/shadcn-ui/src/ui/toggle/Toggle.vue +++ b/apps/vben5/packages/@core/ui-kit/shadcn-ui/src/ui/toggle/Toggle.vue @@ -38,8 +38,7 @@ const forwarded = useForwardPropsEmits(delegatedProps, emits); v-slot="slotProps" data-slot="toggle" v-bind="forwarded" - :class="cn(toggleVariants({ variant, size }), props.class)" - > + :class="cn(toggleVariants({ variant, size }), props.class)"> diff --git a/apps/vben5/packages/@core/ui-kit/shadcn-ui/src/ui/tooltip/TooltipContent.vue b/apps/vben5/packages/@core/ui-kit/shadcn-ui/src/ui/tooltip/TooltipContent.vue index 124b5ef5a..5992a84b1 100644 --- a/apps/vben5/packages/@core/ui-kit/shadcn-ui/src/ui/tooltip/TooltipContent.vue +++ b/apps/vben5/packages/@core/ui-kit/shadcn-ui/src/ui/tooltip/TooltipContent.vue @@ -5,7 +5,12 @@ import { computed } from 'vue'; import { cn } from '@vben-core/shared/utils'; -import { TooltipContent, TooltipPortal, useForwardPropsEmits } from 'reka-ui'; +import { + TooltipArrow, + TooltipContent, + TooltipPortal, + useForwardPropsEmits, +} from 'reka-ui'; defineOptions({ inheritAttrs: false, @@ -38,12 +43,12 @@ const forwarded = useForwardPropsEmits(delegatedProps, emits); data-slot="tooltip-content" :class=" cn( - 'bg-primary text-primary-foreground animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-popup w-fit origin-(--reka-tooltip-content-transform-origin) rounded-md px-3 py-1.5 text-xs text-balance', + 'bg-primary text-primary-foreground animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-popup w-fit origin-(--reka-tooltip-content-transform-origin) rounded-md px-3 py-1.5 text-xs text-balance border border-border', props.class, ) - " - > + "> + diff --git a/apps/vben5/packages/@core/ui-kit/shadcn-ui/src/ui/tree/tree.vue b/apps/vben5/packages/@core/ui-kit/shadcn-ui/src/ui/tree/tree.vue index 0a6e8806d..5c9f0a8eb 100644 --- a/apps/vben5/packages/@core/ui-kit/shadcn-ui/src/ui/tree/tree.vue +++ b/apps/vben5/packages/@core/ui-kit/shadcn-ui/src/ui/tree/tree.vue @@ -319,38 +319,32 @@ defineExpose({ $attrs.class as unknown as ClassType, bordered ? 'border' : '', ) - " - > + ">
+ v-if="$slots.header">
+ v-if="treeData.length > 0">
+ @click="() => (expanded?.length > 0 ? collapseAll() : expandAll())"> + class="text-foreground/80 hover:text-foreground size-4 cursor-pointer transition" />
+ @update:model-value="onSelectAllChange" /> {{ selectAllLabel }}
@@ -400,8 +394,7 @@ defineExpose({ !isNodeDisabled(item) && onToggle(item); } " - class="tree-node focus:ring-grass8 my-0.5 flex items-center rounded p-1 outline-hidden" - > + class="tree-node focus:ring-grass8 my-0.5 flex items-center rounded p-1 outline-hidden"> + " />
+ " />
+ "> + :icon="get(item.value, iconField)" /> {{ get(item.value, labelField) }}
@@ -467,8 +456,7 @@ defineExpose({ :class=" cn('my-0.5 flex w-full items-center p-1', bordered ? 'border-t' : '') " - v-if="$slots.footer" - > + v-if="$slots.footer">
diff --git a/apps/vben5/packages/@core/ui-kit/tabs-ui/src/components/tabs-chrome/tabs.vue b/apps/vben5/packages/@core/ui-kit/tabs-ui/src/components/tabs-chrome/tabs.vue index afec30a7f..14803ea2c 100644 --- a/apps/vben5/packages/@core/ui-kit/tabs-ui/src/components/tabs-chrome/tabs.vue +++ b/apps/vben5/packages/@core/ui-kit/tabs-ui/src/components/tabs-chrome/tabs.vue @@ -78,8 +78,7 @@ function onMouseDown(e: MouseEvent, tab: TabConfig) { ref="contentRef" :class="contentClass" :style="style" - class="tabs-chrome flex! h-full w-max overflow-y-hidden pr-6" - > + class="tabs-chrome flex! h-full w-max overflow-y-hidden pr-6">
+ @mousedown="onMouseDown($event, tab)"> + item-class="pr-6">
+ class="tabs-chrome__divider absolute top-1/2 left-(--gap) z-0 h-4 w-px translate-y-[-50%] bg-border transition-all">
+ class="tabs-chrome__background absolute z-[-1] size-full px-[calc(var(--gap)-1px)] py-0 transition-opacity duration-150">
+ class="tabs-chrome__background-content h-full rounded-tl-(--gap) rounded-tr-(--gap) duration-150 group-[.is-active]:bg-primary/15 group-[.is-active]:dark:bg-accent">
+ width="7"> + width="7">
+ class="tabs-chrome__extra absolute top-1/2 right-(--gap) z-3 size-4 translate-y-[-50%]"> + @click.stop="() => emit('close', tab.key)" /> + @click.stop="() => emit('unpin', tab)" />
+ class="tabs-chrome__item-main z-2 mx-[calc(var(--gap)*2)] my-0 flex h-full items-center overflow-hidden rounded-tl-[5px] rounded-tr-[5px] pr-4 pl-2 text-accent-foreground duration-150 group-[.is-active]:text-primary group-[.is-active]:dark:text-accent-foreground"> + class="mr-1 flex size-4 items-center overflow-hidden group-hover:animate-[shrink_0.3s_ease-in-out]" /> {{ tab.title }} diff --git a/apps/vben5/packages/@core/ui-kit/tabs-ui/src/components/tabs/tabs.vue b/apps/vben5/packages/@core/ui-kit/tabs-ui/src/components/tabs/tabs.vue index 1c9218979..70ec5e142 100644 --- a/apps/vben5/packages/@core/ui-kit/tabs-ui/src/components/tabs/tabs.vue +++ b/apps/vben5/packages/@core/ui-kit/tabs-ui/src/components/tabs/tabs.vue @@ -81,8 +81,7 @@ function onMouseDown(e: MouseEvent, tab: TabConfig) { diff --git a/apps/vben5/packages/effects/common-ui/src/ui/dashboard/workbench/workbench-todo.vue b/apps/vben5/packages/effects/common-ui/src/ui/dashboard/workbench/workbench-todo.vue index aaa83e9af..257bb9144 100644 --- a/apps/vben5/packages/effects/common-ui/src/ui/dashboard/workbench/workbench-todo.vue +++ b/apps/vben5/packages/effects/common-ui/src/ui/dashboard/workbench/workbench-todo.vue @@ -36,8 +36,7 @@ withDefaults(defineProps(), { :class="{ 'line-through opacity-60 select-none': item.completed, }" - class="flex cursor-pointer justify-between gap-x-6 py-5" - > + class="flex cursor-pointer justify-between gap-x-6 py-5">
@@ -47,8 +46,7 @@ withDefaults(defineProps(), {

+ v-html="item.content">

diff --git a/apps/vben5/packages/effects/layouts/src/widgets/preferences/blocks/layout/breadcrumb.vue b/apps/vben5/packages/effects/layouts/src/widgets/preferences/blocks/layout/breadcrumb.vue index 51f1a4078..d9fc4336e 100644 --- a/apps/vben5/packages/effects/layouts/src/widgets/preferences/blocks/layout/breadcrumb.vue +++ b/apps/vben5/packages/effects/layouts/src/widgets/preferences/blocks/layout/breadcrumb.vue @@ -42,15 +42,13 @@ const disableItem = computed(() => { + :disabled="disableItem || !breadcrumbShowIcon"> {{ $t('preferences.breadcrumb.home') }} + :items="typeItems"> {{ $t('preferences.breadcrumb.style') }} diff --git a/apps/vben5/packages/effects/layouts/src/widgets/preferences/blocks/layout/content.vue b/apps/vben5/packages/effects/layouts/src/widgets/preferences/blocks/layout/content.vue index aa5428b79..8ea1e9347 100644 --- a/apps/vben5/packages/effects/layouts/src/widgets/preferences/blocks/layout/content.vue +++ b/apps/vben5/packages/effects/layouts/src/widgets/preferences/blocks/layout/content.vue @@ -39,8 +39,7 @@ function activeClass(theme: string): string[] { diff --git a/apps/vben5/packages/effects/layouts/src/widgets/preferences/blocks/layout/layout.vue b/apps/vben5/packages/effects/layouts/src/widgets/preferences/blocks/layout/layout.vue index 4b435302d..4d32f6b26 100644 --- a/apps/vben5/packages/effects/layouts/src/widgets/preferences/blocks/layout/layout.vue +++ b/apps/vben5/packages/effects/layouts/src/widgets/preferences/blocks/layout/layout.vue @@ -90,14 +90,12 @@ function activeClass(theme: string): string[] { diff --git a/apps/vben5/packages/effects/layouts/src/widgets/preferences/icons/mixed-nav.vue b/apps/vben5/packages/effects/layouts/src/widgets/preferences/icons/mixed-nav.vue index d194383f0..3575b8dd7 100644 --- a/apps/vben5/packages/effects/layouts/src/widgets/preferences/icons/mixed-nav.vue +++ b/apps/vben5/packages/effects/layouts/src/widgets/preferences/icons/mixed-nav.vue @@ -4,8 +4,7 @@ fill="none" height="66" width="104" - xmlns="http://www.w3.org/2000/svg" - > + xmlns="http://www.w3.org/2000/svg"> + y="0.13514" /> + y="-0.05773" /> + y="3.20832" /> + stroke="null" /> + y="13.45652" /> + stroke="null" /> + y="39.34689" /> + y="3.07319" /> + y="3.20832" /> + y="3.07319" /> + y="0.881" /> + y="9.03113" /> + stroke="null" /> + stroke="null" /> + stroke="null" /> + stroke="null" /> diff --git a/apps/vben5/packages/effects/layouts/src/widgets/preferences/icons/setting.vue b/apps/vben5/packages/effects/layouts/src/widgets/preferences/icons/setting.vue index d824e11f4..3a717c828 100644 --- a/apps/vben5/packages/effects/layouts/src/widgets/preferences/icons/setting.vue +++ b/apps/vben5/packages/effects/layouts/src/widgets/preferences/icons/setting.vue @@ -3,10 +3,8 @@ height="1em" viewBox="0 0 24 24" width="1em" - xmlns="http://www.w3.org/2000/svg" - > + xmlns="http://www.w3.org/2000/svg"> + d="M19.9 12.66a1 1 0 0 1 0-1.32l1.28-1.44a1 1 0 0 0 .12-1.17l-2-3.46a1 1 0 0 0-1.07-.48l-1.88.38a1 1 0 0 1-1.15-.66l-.61-1.83a1 1 0 0 0-.95-.68h-4a1 1 0 0 0-1 .68l-.56 1.83a1 1 0 0 1-1.15.66L5 4.79a1 1 0 0 0-1 .48L2 8.73a1 1 0 0 0 .1 1.17l1.27 1.44a1 1 0 0 1 0 1.32L2.1 14.1a1 1 0 0 0-.1 1.17l2 3.46a1 1 0 0 0 1.07.48l1.88-.38a1 1 0 0 1 1.15.66l.61 1.83a1 1 0 0 0 1 .68h4a1 1 0 0 0 .95-.68l.61-1.83a1 1 0 0 1 1.15-.66l1.88.38a1 1 0 0 0 1.07-.48l2-3.46a1 1 0 0 0-.12-1.17ZM18.41 14l.8.9l-1.28 2.22l-1.18-.24a3 3 0 0 0-3.45 2L12.92 20h-2.56L10 18.86a3 3 0 0 0-3.45-2l-1.18.24l-1.3-2.21l.8-.9a3 3 0 0 0 0-4l-.8-.9l1.28-2.2l1.18.24a3 3 0 0 0 3.45-2L10.36 4h2.56l.38 1.14a3 3 0 0 0 3.45 2l1.18-.24l1.28 2.22l-.8.9a3 3 0 0 0 0 3.98m-6.77-6a4 4 0 1 0 4 4a4 4 0 0 0-4-4m0 6a2 2 0 1 1 2-2a2 2 0 0 1-2 2" /> diff --git a/apps/vben5/packages/effects/layouts/src/widgets/preferences/icons/sidebar-mixed-nav.vue b/apps/vben5/packages/effects/layouts/src/widgets/preferences/icons/sidebar-mixed-nav.vue index 8fc0ba406..bff0805a7 100644 --- a/apps/vben5/packages/effects/layouts/src/widgets/preferences/icons/sidebar-mixed-nav.vue +++ b/apps/vben5/packages/effects/layouts/src/widgets/preferences/icons/sidebar-mixed-nav.vue @@ -4,8 +4,7 @@ fill="none" height="66" width="104" - xmlns="http://www.w3.org/2000/svg" - > + xmlns="http://www.w3.org/2000/svg"> + y="0.13514" /> + stroke="null" /> + y="15.46086" /> + y="1.42154" /> + y="1.42876" /> + y="3.69284" /> + y="3.62876" /> + y="3.69981" /> + y="3.62876" /> + y="14.613" /> + y="14.613" /> + y="39.68822" /> + y="28.39462" /> + y="41.80156" /> + y="55.36623" /> + y="-0.02618" /> diff --git a/apps/vben5/packages/effects/layouts/src/widgets/preferences/icons/sidebar-nav.vue b/apps/vben5/packages/effects/layouts/src/widgets/preferences/icons/sidebar-nav.vue index 83ff3998d..0f54f9979 100644 --- a/apps/vben5/packages/effects/layouts/src/widgets/preferences/icons/sidebar-nav.vue +++ b/apps/vben5/packages/effects/layouts/src/widgets/preferences/icons/sidebar-nav.vue @@ -4,8 +4,7 @@ fill="none" height="66" width="104" - xmlns="http://www.w3.org/2000/svg" - > + xmlns="http://www.w3.org/2000/svg"> + width="104" /> + stroke="null" /> + y="23.884" /> + y="5.881" /> + opacity="undefined" /> + y="44.992" /> + y="55.546" /> + y="1.42876" /> + y="3.89903" /> + y="3.62876" /> + y="3.49362" /> + y="3.62876" /> + y="14.613" /> + y="14.613" /> + y="39.48203" /> diff --git a/apps/vben5/packages/effects/layouts/src/widgets/preferences/preferences-button.vue b/apps/vben5/packages/effects/layouts/src/widgets/preferences/preferences-button.vue index d3703b84f..5c22ff9f2 100644 --- a/apps/vben5/packages/effects/layouts/src/widgets/preferences/preferences-button.vue +++ b/apps/vben5/packages/effects/layouts/src/widgets/preferences/preferences-button.vue @@ -19,12 +19,10 @@ const preferencesRef = ref | null>(null); diff --git a/apps/vben5/packages/effects/layouts/src/widgets/preferences/preferences.vue b/apps/vben5/packages/effects/layouts/src/widgets/preferences/preferences.vue index ef2e41cfe..50586e134 100644 --- a/apps/vben5/packages/effects/layouts/src/widgets/preferences/preferences.vue +++ b/apps/vben5/packages/effects/layouts/src/widgets/preferences/preferences.vue @@ -75,8 +75,7 @@ const listen = computed(() => { + @clear-preferences-and-logout="emit('clearPreferencesAndLogout')" /> @@ -84,8 +83,7 @@ const listen = computed(() => { v-if="props.showButton" :title="$t('preferences.title')" class="flex-col-center size-10 cursor-pointer rounded-l-lg rounded-r-none border-none bg-primary" - @click="() => drawerApi.open()" - > + @click="() => drawerApi.open()"> diff --git a/apps/vben5/packages/effects/layouts/src/widgets/theme-toggle/theme-button.vue b/apps/vben5/packages/effects/layouts/src/widgets/theme-toggle/theme-button.vue index 178f97765..9278ab66e 100644 --- a/apps/vben5/packages/effects/layouts/src/widgets/theme-toggle/theme-button.vue +++ b/apps/vben5/packages/effects/layouts/src/widgets/theme-toggle/theme-button.vue @@ -89,8 +89,7 @@ function toggleTheme(event: MouseEvent) { aria-live="polite" class="theme-toggle cursor-pointer border-none bg-none hover:animate-[shrink_0.3s_ease-in-out]" v-bind="bindProps" - @click.stop="toggleTheme" - > + @click.stop="toggleTheme">
+ :key="`container${item.value}`">