mirror of
https://github.com/pure-admin/vue-pure-admin.git
synced 2025-06-04 07:27:41 +08:00
refactor: i18n
* refactor: i18n
This commit is contained in:
parent
8b3f642cf2
commit
494ce8f41b
1
.vscode/extensions.json
vendored
1
.vscode/extensions.json
vendored
@ -1,6 +1,5 @@
|
||||
{
|
||||
"recommendations": [
|
||||
"johnsoncodehk.vscode-typescript-vue-plugin",
|
||||
"voorjaar.windicss-intellisense",
|
||||
"vscode-icons-team.vscode-icons",
|
||||
"davidanson.vscode-markdownlint",
|
||||
|
12
.vscode/settings.json
vendored
12
.vscode/settings.json
vendored
@ -1,13 +1,9 @@
|
||||
{
|
||||
"editor.formatOnType": true,
|
||||
"editor.formatOnSave": true,
|
||||
"javascript.updateImportsOnFileMove.enabled": "always",
|
||||
"[vue]": {
|
||||
"editor.defaultFormatter": "esbenp.prettier-vscode"
|
||||
},
|
||||
"[javascript]": {
|
||||
"editor.defaultFormatter": "vscode.typescript-language-features"
|
||||
},
|
||||
"editor.tabSize": 2,
|
||||
"editor.formatOnPaste": true,
|
||||
"files.autoSave": "afterDelay",
|
||||
@ -30,14 +26,12 @@
|
||||
"editor.codeActionsOnSave": {
|
||||
"source.fixAll.eslint": true
|
||||
},
|
||||
"typescript.tsdk": "node_modules/typescript/lib",
|
||||
"i18n-ally.localesPaths": ["src/plugins/i18n"],
|
||||
"i18n-ally.localesPaths": "locales",
|
||||
"i18n-ally.keystyle": "nested",
|
||||
"i18n-ally.sortKeys": true,
|
||||
"i18n-ally.namespace": true,
|
||||
"i18n-ally.pathMatcher": "{locale}/{namespaces}.{ext}",
|
||||
"i18n-ally.enabledParsers": ["ts"],
|
||||
"i18n-ally.enabledParsers": ["yaml", "js"],
|
||||
"i18n-ally.sourceLanguage": "en",
|
||||
"i18n-ally.displayLanguage": "zh-CN",
|
||||
"i18n-ally.enabledFrameworks": ["vue", "react"]
|
||||
"i18n-ally.enabledFrameworks": ["vue"]
|
||||
}
|
||||
|
@ -1,3 +1,4 @@
|
||||
import { resolve } from "path";
|
||||
import vue from "@vitejs/plugin-vue";
|
||||
import { viteBuildInfo } from "./info";
|
||||
import svgLoader from "vite-svg-loader";
|
||||
@ -7,6 +8,7 @@ import WindiCSS from "vite-plugin-windicss";
|
||||
import { viteMockServe } from "vite-plugin-mock";
|
||||
import liveReload from "vite-plugin-live-reload";
|
||||
import styleImport from "vite-plugin-style-import";
|
||||
import VueI18n from "@intlify/vite-plugin-vue-i18n";
|
||||
import ElementPlus from "unplugin-element-plus/vite";
|
||||
import { visualizer } from "rollup-plugin-visualizer";
|
||||
import removeConsole from "vite-plugin-remove-console";
|
||||
@ -17,6 +19,12 @@ export function getPluginsList(command, VITE_LEGACY) {
|
||||
const lifecycle = process.env.npm_lifecycle_event;
|
||||
return [
|
||||
vue(),
|
||||
// https://github.com/intlify/bundle-tools/tree/main/packages/vite-plugin-vue-i18n
|
||||
VueI18n({
|
||||
runtimeOnly: true,
|
||||
compositionOnly: true,
|
||||
include: [resolve("locales/**")]
|
||||
}),
|
||||
// jsx、tsx语法支持
|
||||
vueJsx(),
|
||||
WindiCSS(),
|
||||
|
74
locales/en.yaml
Normal file
74
locales/en.yaml
Normal file
@ -0,0 +1,74 @@
|
||||
buttons:
|
||||
hsLoginOut: LoginOut
|
||||
hsfullscreen: FullScreen
|
||||
hsexitfullscreen: ExitFullscreen
|
||||
hsrefreshRoute: RefreshRoute
|
||||
hslogin: Login
|
||||
hsadd: Add
|
||||
hsmark: Mark/Cancel
|
||||
hssave: Save
|
||||
hssearch: Search
|
||||
hsexpendAll: Expand All
|
||||
hscollapseAll: Collapse All
|
||||
hssystemSet: Open ProjectConfig
|
||||
hsdelete: Delete
|
||||
hsreload: Reload
|
||||
hscloseCurrentTab: Close CurrentTab
|
||||
hscloseLeftTabs: Close LeftTabs
|
||||
hscloseRightTabs: Close RightTabs
|
||||
hscloseOtherTabs: Close OtherTabs
|
||||
hscloseAllTabs: Close AllTabs
|
||||
menus:
|
||||
hshome: Home
|
||||
hslogin: Login
|
||||
hssysManagement: System Manage
|
||||
hsBaseinfo: Base Info
|
||||
hsDict: Dict Manage
|
||||
hseditor: Editor
|
||||
hserror: Error Page
|
||||
hsfourZeroFour: "404"
|
||||
hsfourZeroOne: "403"
|
||||
hsFive: "500"
|
||||
hscomponents: Components
|
||||
hsvideo: Video Components
|
||||
hsmap: Map Components
|
||||
hsdraggable: Draggable Components
|
||||
hssplitPane: Split Pane
|
||||
hsbutton: Button Components
|
||||
hscropping: Picture Cropping
|
||||
hscountTo: Digital Animation
|
||||
hsselector: Selector Components
|
||||
hsflowChart: Flow Chart
|
||||
hsseamless: Seamless Scroll
|
||||
hscontextmenu: Context Menu
|
||||
hsmenus: MultiLevel Menu
|
||||
hsmenu1: Menu1
|
||||
hsmenu1-1: Menu1-1
|
||||
hsmenu1-2: Menu1-2
|
||||
hsmenu1-2-1: Menu1-2-1
|
||||
hsmenu1-2-2: Menu1-2-2
|
||||
hsmenu1-3: Menu1-3
|
||||
hsmenu2: Menu2
|
||||
permission: Permission Manage
|
||||
permissionPage: Page Permission
|
||||
permissionButton: Button Permission
|
||||
hstabs: Tabs Operate
|
||||
hsguide: Guide
|
||||
hsAble: Able
|
||||
hsMenuTree: Menu Tree
|
||||
hsWatermark: Water Mark
|
||||
hsPrint: Print
|
||||
hsExternalPage: External Page
|
||||
hsPureDocument: Pure Doc(Embedded)
|
||||
externalLink: Pure Doc(External)
|
||||
hsEpDocument: Element Plus Doc(Embedded)
|
||||
hsAbout: About
|
||||
hsResult: Result Page
|
||||
hsSuccess: Success Page
|
||||
hsFail: Fail Page
|
||||
hsIconSelect: Icon Select
|
||||
hsTimeline: Time Line
|
||||
hsLineTree: LineTree
|
||||
hsAntTabs: Imitate Antdv Tabs
|
||||
hsAntAnchor: Imitate Antdv Anchor
|
||||
hsAntTreeSelect: Imitate Antdv TreeSelector
|
74
locales/zh-CN.yaml
Normal file
74
locales/zh-CN.yaml
Normal file
@ -0,0 +1,74 @@
|
||||
buttons:
|
||||
hsLoginOut: 退出系统
|
||||
hsfullscreen: 全屏
|
||||
hsexitfullscreen: 退出全屏
|
||||
hsrefreshRoute: 刷新路由
|
||||
hslogin: 登陆
|
||||
hsadd: 新增
|
||||
hsmark: 标记/取消
|
||||
hssave: 保存
|
||||
hssearch: 搜索
|
||||
hsexpendAll: 全部展开
|
||||
hscollapseAll: 全部折叠
|
||||
hssystemSet: 打开项目配置
|
||||
hsdelete: 删除
|
||||
hsreload: 重新加载
|
||||
hscloseCurrentTab: 关闭当前标签页
|
||||
hscloseLeftTabs: 关闭左侧标签页
|
||||
hscloseRightTabs: 关闭右侧标签页
|
||||
hscloseOtherTabs: 关闭其他标签页
|
||||
hscloseAllTabs: 关闭全部标签页
|
||||
menus:
|
||||
hshome: 首页
|
||||
hslogin: 登陆
|
||||
hssysManagement: 系统管理
|
||||
hsBaseinfo: 基础信息
|
||||
hsDict: 字典管理
|
||||
hseditor: 编辑器
|
||||
hserror: 错误页面
|
||||
hsfourZeroFour: "404"
|
||||
hsfourZeroOne: "403"
|
||||
hsFive: "500"
|
||||
hscomponents: 组件
|
||||
hsvideo: 视频组件
|
||||
hsmap: 地图组件
|
||||
hsdraggable: 拖拽组件
|
||||
hssplitPane: 切割面板
|
||||
hsbutton: 按钮组件
|
||||
hscropping: 图片裁剪
|
||||
hscountTo: 数字动画
|
||||
hsselector: 选择器组件
|
||||
hsflowChart: 流程图
|
||||
hsseamless: 无缝滚动
|
||||
hscontextmenu: 右键菜单
|
||||
hsmenus: 多级菜单
|
||||
hsmenu1: 菜单1
|
||||
hsmenu1-1: 菜单1-1
|
||||
hsmenu1-2: 菜单1-2
|
||||
hsmenu1-2-1: 菜单1-2-1
|
||||
hsmenu1-2-2: 菜单1-2-2
|
||||
hsmenu1-3: 菜单1-3
|
||||
hsmenu2: 菜单2
|
||||
permission: 权限管理
|
||||
permissionPage: 页面权限
|
||||
permissionButton: 按钮权限
|
||||
hstabs: 标签页操作
|
||||
hsguide: 引导页
|
||||
hsAble: 功能
|
||||
hsMenuTree: 菜单树结构
|
||||
hsWatermark: 水印
|
||||
hsPrint: 打印
|
||||
hsExternalPage: 外部页面
|
||||
hsPureDocument: 平台文档(内嵌)
|
||||
externalLink: 平台文档(外链)
|
||||
hsEpDocument: Element Plus文档(内嵌)
|
||||
hsAbout: 关于
|
||||
hsResult: 结果页面
|
||||
hsSuccess: 成功页面
|
||||
hsFail: 失败页面
|
||||
hsIconSelect: 图标选择器
|
||||
hsTimeline: 时间线
|
||||
hsLineTree: 树形连接线
|
||||
hsAntTabs: 仿antdv标签页
|
||||
hsAntAnchor: 仿antdv锚点
|
||||
hsAntTreeSelect: 仿antdv树型选择器
|
17
package.json
17
package.json
@ -31,11 +31,11 @@
|
||||
"@logicflow/core": "0.7.1",
|
||||
"@logicflow/extension": "0.7.1",
|
||||
"@pureadmin/components": "^1.0.0",
|
||||
"@vueuse/core": "^7.7.0",
|
||||
"@vueuse/core": "^8.0.0",
|
||||
"@vueuse/motion": "^2.0.0-beta.9",
|
||||
"@vueuse/shared": "^7.7.0",
|
||||
"@vueuse/shared": "^8.0.0",
|
||||
"animate.css": "^4.1.1",
|
||||
"axios": "^0.26.0",
|
||||
"axios": "^0.26.1",
|
||||
"cropperjs": "^1.5.12",
|
||||
"css-color-function": "^1.3.3",
|
||||
"dayjs": "^1.10.7",
|
||||
@ -57,9 +57,9 @@
|
||||
"rgb-hex": "^4.0.0",
|
||||
"v-contextmenu": "3.0.0",
|
||||
"vue": "^3.2.31",
|
||||
"vue-i18n": "^9.2.0-beta.30",
|
||||
"vue-i18n": "^9.2.0-beta.32",
|
||||
"vue-json-pretty": "^2.0.2",
|
||||
"vue-router": "^4.0.13",
|
||||
"vue-router": "^4.0.14",
|
||||
"vue-types": "^4.1.1",
|
||||
"vuedraggable": "4.1.0",
|
||||
"vxe-table": "^4.2.0",
|
||||
@ -74,7 +74,8 @@
|
||||
"@iconify-icons/fa": "^1.1.1",
|
||||
"@iconify-icons/fa-solid": "^1.1.2",
|
||||
"@iconify-icons/ri": "^1.1.1",
|
||||
"@iconify/vue": "^3.1.3",
|
||||
"@iconify/vue": "^3.1.4",
|
||||
"@intlify/vite-plugin-vue-i18n": "^3.3.1",
|
||||
"@types/element-resize-detector": "1.1.3",
|
||||
"@types/js-cookie": "^3.0.1",
|
||||
"@types/lodash-es": "^4.17.6",
|
||||
@ -115,14 +116,14 @@
|
||||
"stylelint-config-recommended": "^6.0.0",
|
||||
"stylelint-config-standard": "^24.0.0",
|
||||
"stylelint-order": "^5.0.0",
|
||||
"typescript": "^4.5.5",
|
||||
"typescript": "^4.6.2",
|
||||
"unplugin-element-plus": "^0.3.1",
|
||||
"vite": "2.7.13",
|
||||
"vite-plugin-live-reload": "^2.1.0",
|
||||
"vite-plugin-mock": "^2.9.6",
|
||||
"vite-plugin-remove-console": "^0.0.6",
|
||||
"vite-plugin-style-import": "1.4.1",
|
||||
"vite-plugin-windicss": "^1.8.2",
|
||||
"vite-plugin-windicss": "^1.8.3",
|
||||
"vite-svg-loader": "2.2.0",
|
||||
"vue-eslint-parser": "^8.2.0",
|
||||
"windicss": "^3.5.1"
|
||||
|
437
pnpm-lock.yaml
generated
437
pnpm-lock.yaml
generated
@ -9,7 +9,8 @@ specifiers:
|
||||
"@iconify-icons/fa": ^1.1.1
|
||||
"@iconify-icons/fa-solid": ^1.1.2
|
||||
"@iconify-icons/ri": ^1.1.1
|
||||
"@iconify/vue": ^3.1.3
|
||||
"@iconify/vue": ^3.1.4
|
||||
"@intlify/vite-plugin-vue-i18n": ^3.3.1
|
||||
"@logicflow/core": 0.7.1
|
||||
"@logicflow/extension": 0.7.1
|
||||
"@pureadmin/components": ^1.0.0
|
||||
@ -27,13 +28,13 @@ specifiers:
|
||||
"@vitejs/plugin-vue-jsx": ^1.3.8
|
||||
"@vue/eslint-config-prettier": ^7.0.0
|
||||
"@vue/eslint-config-typescript": ^10.0.0
|
||||
"@vueuse/core": ^7.7.0
|
||||
"@vueuse/core": ^8.0.0
|
||||
"@vueuse/motion": ^2.0.0-beta.9
|
||||
"@vueuse/shared": ^7.7.0
|
||||
"@vueuse/shared": ^8.0.0
|
||||
"@zougt/vite-plugin-theme-preprocessor": ^1.4.4
|
||||
animate.css: ^4.1.1
|
||||
autoprefixer: ^10.4.2
|
||||
axios: ^0.26.0
|
||||
axios: ^0.26.1
|
||||
cropperjs: ^1.5.12
|
||||
cross-env: 7.0.3
|
||||
css-color-function: ^1.3.3
|
||||
@ -77,7 +78,7 @@ specifiers:
|
||||
stylelint-config-recommended: ^6.0.0
|
||||
stylelint-config-standard: ^24.0.0
|
||||
stylelint-order: ^5.0.0
|
||||
typescript: ^4.5.5
|
||||
typescript: ^4.6.2
|
||||
unplugin-element-plus: ^0.3.1
|
||||
v-contextmenu: 3.0.0
|
||||
vite: 2.7.13
|
||||
@ -85,13 +86,13 @@ specifiers:
|
||||
vite-plugin-mock: ^2.9.6
|
||||
vite-plugin-remove-console: ^0.0.6
|
||||
vite-plugin-style-import: 1.4.1
|
||||
vite-plugin-windicss: ^1.8.2
|
||||
vite-plugin-windicss: ^1.8.3
|
||||
vite-svg-loader: 2.2.0
|
||||
vue: ^3.2.31
|
||||
vue-eslint-parser: ^8.2.0
|
||||
vue-i18n: ^9.2.0-beta.30
|
||||
vue-i18n: ^9.2.0-beta.32
|
||||
vue-json-pretty: ^2.0.2
|
||||
vue-router: ^4.0.13
|
||||
vue-router: ^4.0.14
|
||||
vue-types: ^4.1.1
|
||||
vuedraggable: 4.1.0
|
||||
vxe-table: ^4.2.0
|
||||
@ -106,11 +107,11 @@ dependencies:
|
||||
"@logicflow/core": 0.7.1
|
||||
"@logicflow/extension": 0.7.1
|
||||
"@pureadmin/components": 1.0.0_vue@3.2.31
|
||||
"@vueuse/core": 7.7.0_vue@3.2.31
|
||||
"@vueuse/core": 8.0.0_vue@3.2.31
|
||||
"@vueuse/motion": 2.0.0-beta.9_vue@3.2.31
|
||||
"@vueuse/shared": 7.7.0_vue@3.2.31
|
||||
"@vueuse/shared": 8.0.0_vue@3.2.31
|
||||
animate.css: 4.1.1
|
||||
axios: 0.26.0
|
||||
axios: 0.26.1
|
||||
cropperjs: 1.5.12
|
||||
css-color-function: 1.3.3
|
||||
dayjs: 1.10.7
|
||||
@ -125,16 +126,16 @@ dependencies:
|
||||
mockjs: 1.1.0
|
||||
nprogress: 0.2.0
|
||||
path: 0.12.7
|
||||
pinia: 2.0.11_typescript@4.5.5+vue@3.2.31
|
||||
pinia: 2.0.11_typescript@4.6.2+vue@3.2.31
|
||||
qs: 6.10.3
|
||||
resize-observer-polyfill: 1.5.1
|
||||
responsive-storage: 1.0.11_vue@3.2.31
|
||||
rgb-hex: 4.0.0
|
||||
v-contextmenu: 3.0.0_vue@3.2.31
|
||||
vue: 3.2.31
|
||||
vue-i18n: 9.2.0-beta.30_vue@3.2.31
|
||||
vue-i18n: 9.2.0-beta.32_vue@3.2.31
|
||||
vue-json-pretty: 2.0.6_vue@3.2.31
|
||||
vue-router: 4.0.13_vue@3.2.31
|
||||
vue-router: 4.0.14_vue@3.2.31
|
||||
vue-types: 4.1.1_vue@3.2.31
|
||||
vuedraggable: 4.1.0_vue@3.2.31
|
||||
vxe-table: 4.2.0_vue@3.2.31+xe-utils@3.5.4
|
||||
@ -149,7 +150,8 @@ devDependencies:
|
||||
"@iconify-icons/fa": 1.2.0
|
||||
"@iconify-icons/fa-solid": 1.2.0
|
||||
"@iconify-icons/ri": 1.2.0
|
||||
"@iconify/vue": 3.1.3_vue@3.2.31
|
||||
"@iconify/vue": 3.1.4_vue@3.2.31
|
||||
"@intlify/vite-plugin-vue-i18n": 3.3.1_927a0a946d0d434f1ee9f376a300ea94
|
||||
"@types/element-resize-detector": 1.1.3
|
||||
"@types/js-cookie": 3.0.1
|
||||
"@types/lodash-es": 4.17.6
|
||||
@ -157,13 +159,13 @@ devDependencies:
|
||||
"@types/node": 14.14.14
|
||||
"@types/nprogress": 0.2.0
|
||||
"@types/qs": 6.9.7
|
||||
"@typescript-eslint/eslint-plugin": 5.11.0_15a231715447500ed5c06da64c8aef1c
|
||||
"@typescript-eslint/parser": 5.11.0_eslint@8.9.0+typescript@4.5.5
|
||||
"@typescript-eslint/eslint-plugin": 5.11.0_e5aa81e2725d014cc10493a9f0356cdc
|
||||
"@typescript-eslint/parser": 5.11.0_eslint@8.9.0+typescript@4.6.2
|
||||
"@vitejs/plugin-legacy": 1.7.1_vite@2.7.13
|
||||
"@vitejs/plugin-vue": 2.2.4_vite@2.7.13+vue@3.2.31
|
||||
"@vitejs/plugin-vue-jsx": 1.3.8
|
||||
"@vue/eslint-config-prettier": 7.0.0_eslint@8.9.0+prettier@2.5.1
|
||||
"@vue/eslint-config-typescript": 10.0.0_cd100ca74b8c3cfb64acbb3ff997764b
|
||||
"@vue/eslint-config-typescript": 10.0.0_e9ae806e724e1e93b0f13f024669b2db
|
||||
"@zougt/vite-plugin-theme-preprocessor": 1.4.4_sass@1.49.9
|
||||
autoprefixer: 10.4.2_postcss@8.4.6
|
||||
cross-env: 7.0.3
|
||||
@ -190,14 +192,14 @@ devDependencies:
|
||||
stylelint-config-recommended: 6.0.0_stylelint@14.5.0
|
||||
stylelint-config-standard: 24.0.0_stylelint@14.5.0
|
||||
stylelint-order: 5.0.0_stylelint@14.5.0
|
||||
typescript: 4.5.5
|
||||
typescript: 4.6.2
|
||||
unplugin-element-plus: 0.3.1_vite@2.7.13+vue@3.2.31
|
||||
vite: 2.7.13_sass@1.49.9
|
||||
vite-plugin-live-reload: 2.1.0
|
||||
vite-plugin-mock: 2.9.6_mockjs@1.1.0+vite@2.7.13
|
||||
vite-plugin-remove-console: 0.0.6
|
||||
vite-plugin-style-import: 1.4.1_vite@2.7.13
|
||||
vite-plugin-windicss: 1.8.2_vite@2.7.13
|
||||
vite-plugin-windicss: 1.8.3_vite@2.7.13
|
||||
vite-svg-loader: 2.2.0
|
||||
vue-eslint-parser: 8.2.0_eslint@8.9.0
|
||||
windicss: 3.5.1
|
||||
@ -776,12 +778,12 @@ packages:
|
||||
"@commitlint/execute-rule": 13.2.0
|
||||
"@commitlint/resolve-extends": 13.2.0
|
||||
"@commitlint/types": 13.2.0
|
||||
"@endemolshinegroup/cosmiconfig-typescript-loader": 3.0.2_e1c3b685f8b7686dcc885a02fd14c5f0
|
||||
"@endemolshinegroup/cosmiconfig-typescript-loader": 3.0.2_c84a270c92bf6e8d30a9786dab5936e4
|
||||
chalk: 4.1.2
|
||||
cosmiconfig: 7.0.1
|
||||
lodash: 4.17.21
|
||||
resolve-from: 5.0.0
|
||||
typescript: 4.5.5
|
||||
typescript: 4.6.2
|
||||
dev: true
|
||||
|
||||
/@commitlint/message/13.2.0:
|
||||
@ -891,7 +893,7 @@ packages:
|
||||
vue: 3.2.31
|
||||
dev: false
|
||||
|
||||
/@endemolshinegroup/cosmiconfig-typescript-loader/3.0.2_e1c3b685f8b7686dcc885a02fd14c5f0:
|
||||
/@endemolshinegroup/cosmiconfig-typescript-loader/3.0.2_c84a270c92bf6e8d30a9786dab5936e4:
|
||||
resolution:
|
||||
{
|
||||
integrity: sha512-QRVtqJuS1mcT56oHpVegkKBlgtWjXw/gHNWO3eL9oyB5Sc7HBoc2OLG/nYpVfT/Jejvo3NUrD0Udk7XgoyDKkA==
|
||||
@ -903,7 +905,7 @@ packages:
|
||||
cosmiconfig: 7.0.1
|
||||
lodash.get: 4.4.2
|
||||
make-error: 1.3.6
|
||||
ts-node: 9.1.1_typescript@4.5.5
|
||||
ts-node: 9.1.1_typescript@4.6.2
|
||||
tslib: 2.3.1
|
||||
transitivePeerDependencies:
|
||||
- typescript
|
||||
@ -993,71 +995,117 @@ packages:
|
||||
}
|
||||
dev: true
|
||||
|
||||
/@iconify/vue/3.1.3_vue@3.2.31:
|
||||
/@iconify/vue/3.1.4_vue@3.2.31:
|
||||
resolution:
|
||||
{
|
||||
integrity: sha512-tZ7+mh2HDy8pj7dajByn4bE72XIZM3l+F490VIAAYifwpqGnjqv9O60n1MPsV5dM7Q+FN6yVXZMdXT68l//WTw==
|
||||
integrity: sha512-oJm0VPl1fhlsbBX9tBeAbtmZ5iHCxCkVQdCi81lxdA3cqc9yqBlCloqObX93/YWNM5N8j/j0Efk6iSwsihOoNA==
|
||||
}
|
||||
peerDependencies:
|
||||
vue: 3.x
|
||||
dependencies:
|
||||
cross-fetch: 3.1.5
|
||||
vue: 3.2.31
|
||||
transitivePeerDependencies:
|
||||
- encoding
|
||||
dev: true
|
||||
|
||||
/@intlify/core-base/9.2.0-beta.30:
|
||||
/@intlify/bundle-utils/2.2.0_vue-i18n@9.2.0-beta.32:
|
||||
resolution:
|
||||
{
|
||||
integrity: sha512-tnOuI8gs4S7vv4WjG8oFL7vbZ4PM7Is/Ld3lRHQlBO7UjpnCVcQ94AgP/4F0cUPFn9JSPMQRN0aOOahW1BXvSA==
|
||||
integrity: sha512-qVuN7+c84UB6rlLHSued2J9R86LG1rHg6ZibCghGMyPXnW0nOuIfkUFf1F7tXIqfMXjIPeJzlbpmzjWTI2z9Kw==
|
||||
}
|
||||
engines: { node: ">= 12" }
|
||||
peerDependencies:
|
||||
petite-vue-i18n: "*"
|
||||
vue-i18n: "*"
|
||||
peerDependenciesMeta:
|
||||
petite-vue-i18n:
|
||||
optional: true
|
||||
vue-i18n:
|
||||
optional: true
|
||||
dependencies:
|
||||
"@intlify/devtools-if": 9.2.0-beta.30
|
||||
"@intlify/message-compiler": 9.2.0-beta.30
|
||||
"@intlify/shared": 9.2.0-beta.30
|
||||
"@intlify/vue-devtools": 9.2.0-beta.30
|
||||
dev: false
|
||||
|
||||
/@intlify/devtools-if/9.2.0-beta.30:
|
||||
resolution:
|
||||
{
|
||||
integrity: sha512-3OxGFi6ooya9DFqX/JsxFjrj9nGYcDoo4CRGYSDqnC+xv4bnsyB5ekmaYBiVZtagCdZdSUMxbTFphl1WbtgNLQ==
|
||||
}
|
||||
engines: { node: ">= 12" }
|
||||
dependencies:
|
||||
"@intlify/shared": 9.2.0-beta.30
|
||||
dev: false
|
||||
|
||||
/@intlify/message-compiler/9.2.0-beta.30:
|
||||
resolution:
|
||||
{
|
||||
integrity: sha512-2kj/0nLIFrgiO86f9VifcUUcV8LdzXt4YYPIujx/LkTEQOuSFUo/bNiMaG1hyfiU/8mfq6tsaWKjoOZjeao1eQ==
|
||||
}
|
||||
engines: { node: ">= 12" }
|
||||
dependencies:
|
||||
"@intlify/shared": 9.2.0-beta.30
|
||||
"@intlify/message-compiler": 9.2.0-beta.32
|
||||
"@intlify/shared": 9.2.0-beta.32
|
||||
jsonc-eslint-parser: 1.4.1
|
||||
source-map: 0.6.1
|
||||
dev: false
|
||||
vue-i18n: 9.2.0-beta.32_vue@3.2.31
|
||||
yaml-eslint-parser: 0.3.2
|
||||
dev: true
|
||||
|
||||
/@intlify/shared/9.2.0-beta.30:
|
||||
/@intlify/core-base/9.2.0-beta.32:
|
||||
resolution:
|
||||
{
|
||||
integrity: sha512-E1WHRTIlUEse3d/6t1pAagSXRxmeVeNIhx5kT80dfpYxw8lOnCWV9wLve2bq9Fkv+3TD2I5j+CdN7jvSl3LdsA==
|
||||
}
|
||||
engines: { node: ">= 12" }
|
||||
dev: false
|
||||
|
||||
/@intlify/vue-devtools/9.2.0-beta.30:
|
||||
resolution:
|
||||
{
|
||||
integrity: sha512-hcqDfwP/oXVmVCaJ0RA+uv1WSCcd42/Y13S0bySmWZv2KamLcxiD7wYxp/MaECG/D4KZcSLkq/wDHTG7lhYf5Q==
|
||||
integrity: sha512-t9IB9Z65cx0fcpd9/oD8MrsMvGy1FOColOe5oodjo9E//Qm7P8kvSHnKymWjsAcJs0wR2Y6J9X8FRFmO6LNLNQ==
|
||||
}
|
||||
engines: { node: ">= 12" }
|
||||
dependencies:
|
||||
"@intlify/core-base": 9.2.0-beta.30
|
||||
"@intlify/shared": 9.2.0-beta.30
|
||||
"@intlify/devtools-if": 9.2.0-beta.32
|
||||
"@intlify/message-compiler": 9.2.0-beta.32
|
||||
"@intlify/shared": 9.2.0-beta.32
|
||||
"@intlify/vue-devtools": 9.2.0-beta.32
|
||||
dev: false
|
||||
|
||||
/@intlify/devtools-if/9.2.0-beta.32:
|
||||
resolution:
|
||||
{
|
||||
integrity: sha512-MvcxHrP7urM17wcna2vyqt8D8Pc5lyD3ps2BcmAr60UYifNKBQU7LmHfjTG7BZO4t0LyUWrWFJmm7fRVlju40g==
|
||||
}
|
||||
engines: { node: ">= 12" }
|
||||
dependencies:
|
||||
"@intlify/shared": 9.2.0-beta.32
|
||||
dev: false
|
||||
|
||||
/@intlify/message-compiler/9.2.0-beta.32:
|
||||
resolution:
|
||||
{
|
||||
integrity: sha512-7OOHIhOmOM4nqe3KfEuE65xLwawwBGg/pCFByzayf0jARoHkeaA7v/eKsUJVJMEakeF2pNstx06AvfecijgPzg==
|
||||
}
|
||||
engines: { node: ">= 12" }
|
||||
dependencies:
|
||||
"@intlify/shared": 9.2.0-beta.32
|
||||
source-map: 0.6.1
|
||||
|
||||
/@intlify/shared/9.2.0-beta.32:
|
||||
resolution:
|
||||
{
|
||||
integrity: sha512-lVaHnKFNg16eWlfDLzDFLapurrf0WK7xLWEkz8DMYNIXJshRQOZCkH7sQaqtONPoOT0LqjyPo1+sV0Wq85/HRQ==
|
||||
}
|
||||
engines: { node: ">= 12" }
|
||||
|
||||
/@intlify/vite-plugin-vue-i18n/3.3.1_927a0a946d0d434f1ee9f376a300ea94:
|
||||
resolution:
|
||||
{
|
||||
integrity: sha512-b9HIUANzL4/LmrA5RqeiPabZl2/RiWNAJ90TVZ8kSi3APRZ4BbmwUAclKe8ip+1jCDhqaGO/qfAI7SbQ0Y76Uw==
|
||||
}
|
||||
engines: { node: ">= 12" }
|
||||
peerDependencies:
|
||||
petite-vue-i18n: ^9.0.0
|
||||
vite: ^2.0.0
|
||||
vue-i18n: ^9.0.0
|
||||
peerDependenciesMeta:
|
||||
petite-vue-i18n:
|
||||
optional: true
|
||||
vue-i18n:
|
||||
optional: true
|
||||
dependencies:
|
||||
"@intlify/bundle-utils": 2.2.0_vue-i18n@9.2.0-beta.32
|
||||
"@intlify/shared": 9.2.0-beta.32
|
||||
"@rollup/pluginutils": 4.1.2
|
||||
debug: 4.3.3
|
||||
fast-glob: 3.2.11
|
||||
source-map: 0.6.1
|
||||
vite: 2.7.13_sass@1.49.9
|
||||
vue-i18n: 9.2.0-beta.32_vue@3.2.31
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: true
|
||||
|
||||
/@intlify/vue-devtools/9.2.0-beta.32:
|
||||
resolution:
|
||||
{
|
||||
integrity: sha512-LZ+E8S+PBeKzV5zDrh/6kbPdEMu+oO6W7B9EmNhzBOKcF94oiJRTkFLymV6U2YefWu+JYEl2LGe7giXXt2jcwg==
|
||||
}
|
||||
engines: { node: ">= 12" }
|
||||
dependencies:
|
||||
"@intlify/core-base": 9.2.0-beta.32
|
||||
"@intlify/shared": 9.2.0-beta.32
|
||||
dev: false
|
||||
|
||||
/@jridgewell/resolve-uri/3.0.5:
|
||||
@ -1328,7 +1376,7 @@ packages:
|
||||
"@types/node": 14.14.14
|
||||
dev: true
|
||||
|
||||
/@typescript-eslint/eslint-plugin/5.11.0_15a231715447500ed5c06da64c8aef1c:
|
||||
/@typescript-eslint/eslint-plugin/5.11.0_e5aa81e2725d014cc10493a9f0356cdc:
|
||||
resolution:
|
||||
{
|
||||
integrity: sha512-HJh33bgzXe6jGRocOj4FmefD7hRY4itgjzOrSs3JPrTNXsX7j5+nQPciAUj/1nZtwo2kAc3C75jZO+T23gzSGw==
|
||||
@ -1342,23 +1390,23 @@ packages:
|
||||
typescript:
|
||||
optional: true
|
||||
dependencies:
|
||||
"@typescript-eslint/parser": 5.11.0_eslint@8.9.0+typescript@4.5.5
|
||||
"@typescript-eslint/parser": 5.11.0_eslint@8.9.0+typescript@4.6.2
|
||||
"@typescript-eslint/scope-manager": 5.11.0
|
||||
"@typescript-eslint/type-utils": 5.11.0_eslint@8.9.0+typescript@4.5.5
|
||||
"@typescript-eslint/utils": 5.11.0_eslint@8.9.0+typescript@4.5.5
|
||||
"@typescript-eslint/type-utils": 5.11.0_eslint@8.9.0+typescript@4.6.2
|
||||
"@typescript-eslint/utils": 5.11.0_eslint@8.9.0+typescript@4.6.2
|
||||
debug: 4.3.3
|
||||
eslint: 8.9.0
|
||||
functional-red-black-tree: 1.0.1
|
||||
ignore: 5.2.0
|
||||
regexpp: 3.2.0
|
||||
semver: 7.3.5
|
||||
tsutils: 3.21.0_typescript@4.5.5
|
||||
typescript: 4.5.5
|
||||
tsutils: 3.21.0_typescript@4.6.2
|
||||
typescript: 4.6.2
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: true
|
||||
|
||||
/@typescript-eslint/parser/5.11.0_eslint@8.9.0+typescript@4.5.5:
|
||||
/@typescript-eslint/parser/5.11.0_eslint@8.9.0+typescript@4.6.2:
|
||||
resolution:
|
||||
{
|
||||
integrity: sha512-x0DCjetHZYBRovJdr3U0zG9OOdNXUaFLJ82ehr1AlkArljJuwEsgnud+Q7umlGDFLFrs8tU8ybQDFocp/eX8mQ==
|
||||
@ -1373,10 +1421,10 @@ packages:
|
||||
dependencies:
|
||||
"@typescript-eslint/scope-manager": 5.11.0
|
||||
"@typescript-eslint/types": 5.11.0
|
||||
"@typescript-eslint/typescript-estree": 5.11.0_typescript@4.5.5
|
||||
"@typescript-eslint/typescript-estree": 5.11.0_typescript@4.6.2
|
||||
debug: 4.3.3
|
||||
eslint: 8.9.0
|
||||
typescript: 4.5.5
|
||||
typescript: 4.6.2
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: true
|
||||
@ -1392,7 +1440,7 @@ packages:
|
||||
"@typescript-eslint/visitor-keys": 5.11.0
|
||||
dev: true
|
||||
|
||||
/@typescript-eslint/type-utils/5.11.0_eslint@8.9.0+typescript@4.5.5:
|
||||
/@typescript-eslint/type-utils/5.11.0_eslint@8.9.0+typescript@4.6.2:
|
||||
resolution:
|
||||
{
|
||||
integrity: sha512-wDqdsYO6ofLaD4DsGZ0jGwxp4HrzD2YKulpEZXmgN3xo4BHJwf7kq49JTRpV0Gx6bxkSUmc9s0EIK1xPbFFpIA==
|
||||
@ -1405,11 +1453,11 @@ packages:
|
||||
typescript:
|
||||
optional: true
|
||||
dependencies:
|
||||
"@typescript-eslint/utils": 5.11.0_eslint@8.9.0+typescript@4.5.5
|
||||
"@typescript-eslint/utils": 5.11.0_eslint@8.9.0+typescript@4.6.2
|
||||
debug: 4.3.3
|
||||
eslint: 8.9.0
|
||||
tsutils: 3.21.0_typescript@4.5.5
|
||||
typescript: 4.5.5
|
||||
tsutils: 3.21.0_typescript@4.6.2
|
||||
typescript: 4.6.2
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: true
|
||||
@ -1422,7 +1470,7 @@ packages:
|
||||
engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 }
|
||||
dev: true
|
||||
|
||||
/@typescript-eslint/typescript-estree/5.11.0_typescript@4.5.5:
|
||||
/@typescript-eslint/typescript-estree/5.11.0_typescript@4.6.2:
|
||||
resolution:
|
||||
{
|
||||
integrity: sha512-yVH9hKIv3ZN3lw8m/Jy5I4oXO4ZBMqijcXCdA4mY8ull6TPTAoQnKKrcZ0HDXg7Bsl0Unwwx7jcXMuNZc0m4lg==
|
||||
@ -1440,13 +1488,13 @@ packages:
|
||||
globby: 11.1.0
|
||||
is-glob: 4.0.3
|
||||
semver: 7.3.5
|
||||
tsutils: 3.21.0_typescript@4.5.5
|
||||
typescript: 4.5.5
|
||||
tsutils: 3.21.0_typescript@4.6.2
|
||||
typescript: 4.6.2
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: true
|
||||
|
||||
/@typescript-eslint/utils/5.11.0_eslint@8.9.0+typescript@4.5.5:
|
||||
/@typescript-eslint/utils/5.11.0_eslint@8.9.0+typescript@4.6.2:
|
||||
resolution:
|
||||
{
|
||||
integrity: sha512-g2I480tFE1iYRDyMhxPAtLQ9HAn0jjBtipgTCZmd9I9s11OV8CTsG+YfFciuNDcHqm4csbAgC2aVZCHzLxMSUw==
|
||||
@ -1458,7 +1506,7 @@ packages:
|
||||
"@types/json-schema": 7.0.9
|
||||
"@typescript-eslint/scope-manager": 5.11.0
|
||||
"@typescript-eslint/types": 5.11.0
|
||||
"@typescript-eslint/typescript-estree": 5.11.0_typescript@4.5.5
|
||||
"@typescript-eslint/typescript-estree": 5.11.0_typescript@4.6.2
|
||||
eslint: 8.9.0
|
||||
eslint-scope: 5.1.1
|
||||
eslint-utils: 3.0.0_eslint@8.9.0
|
||||
@ -1621,7 +1669,7 @@ packages:
|
||||
prettier: 2.5.1
|
||||
dev: true
|
||||
|
||||
/@vue/eslint-config-typescript/10.0.0_cd100ca74b8c3cfb64acbb3ff997764b:
|
||||
/@vue/eslint-config-typescript/10.0.0_e9ae806e724e1e93b0f13f024669b2db:
|
||||
resolution:
|
||||
{
|
||||
integrity: sha512-F94cL8ug3FaYXlCfU5/wiGjk1qeadmoBpRGAOBq+qre3Smdupa59dd6ZJrsfRODpsMPyTG7330juMDsUvpZ3Rw==
|
||||
@ -1631,8 +1679,8 @@ packages:
|
||||
eslint: ^6.2.0 || ^7.0.0 || ^8.0.0
|
||||
eslint-plugin-vue: ^8.0.1
|
||||
dependencies:
|
||||
"@typescript-eslint/eslint-plugin": 5.11.0_15a231715447500ed5c06da64c8aef1c
|
||||
"@typescript-eslint/parser": 5.11.0_eslint@8.9.0+typescript@4.5.5
|
||||
"@typescript-eslint/eslint-plugin": 5.11.0_e5aa81e2725d014cc10493a9f0356cdc
|
||||
"@typescript-eslint/parser": 5.11.0_eslint@8.9.0+typescript@4.6.2
|
||||
eslint: 8.9.0
|
||||
eslint-plugin-vue: 8.4.1_eslint@8.9.0
|
||||
vue-eslint-parser: 8.2.0_eslint@8.9.0
|
||||
@ -1721,6 +1769,33 @@ packages:
|
||||
vue-demi: 0.12.1_vue@3.2.31
|
||||
dev: false
|
||||
|
||||
/@vueuse/core/8.0.0_vue@3.2.31:
|
||||
resolution:
|
||||
{
|
||||
integrity: sha512-CU8oQhTaAQ4+9IlEHnaGk88qQ2fSvALHixWZhfyA2j18G42XeyJz3V0FmnBMWZUwd7VRSHJZFbGziZ6o5npNow==
|
||||
}
|
||||
peerDependencies:
|
||||
"@vue/composition-api": ^1.1.0
|
||||
vue: ^2.6.0 || ^3.2.0
|
||||
peerDependenciesMeta:
|
||||
"@vue/composition-api":
|
||||
optional: true
|
||||
vue:
|
||||
optional: true
|
||||
dependencies:
|
||||
"@vueuse/metadata": 8.0.0
|
||||
"@vueuse/shared": 8.0.0_vue@3.2.31
|
||||
vue: 3.2.31
|
||||
vue-demi: 0.12.1_vue@3.2.31
|
||||
dev: false
|
||||
|
||||
/@vueuse/metadata/8.0.0:
|
||||
resolution:
|
||||
{
|
||||
integrity: sha512-23R9pqgfJnfmUnGCOtaDkwaNYEAO7N6whvaAFAs5D5xHXgqAj+z/tLhwQzSJw/ZzJGUb8W5L+VgP9S7SL35riw==
|
||||
}
|
||||
dev: false
|
||||
|
||||
/@vueuse/motion/2.0.0-beta.9_vue@3.2.31:
|
||||
resolution:
|
||||
{
|
||||
@ -1757,10 +1832,28 @@ packages:
|
||||
vue-demi: 0.12.1_vue@3.2.31
|
||||
dev: false
|
||||
|
||||
/@windicss/config/1.8.2:
|
||||
/@vueuse/shared/8.0.0_vue@3.2.31:
|
||||
resolution:
|
||||
{
|
||||
integrity: sha512-dGXkzcH1Bnm9716/pE63YSewLQIZXGWerHEotUKf2EMlz/JqsI9Z3yBy/lXVL9HsEoTNpyvMPLk75oquH0vXGg==
|
||||
integrity: sha512-HUIFZ5Vc3aGvIzDQJJhg2+Ok5xvNuwxoz5HrOr/M765wlj357WiMYzhU2XGljL6IcmK29SP/1Jb4Fra7A4PBCw==
|
||||
}
|
||||
peerDependencies:
|
||||
"@vue/composition-api": ^1.1.0
|
||||
vue: ^2.6.0 || ^3.2.0
|
||||
peerDependenciesMeta:
|
||||
"@vue/composition-api":
|
||||
optional: true
|
||||
vue:
|
||||
optional: true
|
||||
dependencies:
|
||||
vue: 3.2.31
|
||||
vue-demi: 0.12.1_vue@3.2.31
|
||||
dev: false
|
||||
|
||||
/@windicss/config/1.8.3:
|
||||
resolution:
|
||||
{
|
||||
integrity: sha512-1fvfZhRD7WfV/Xh6uIAYKIdbQWrwEgSdkFlHiLPzMDS44KjwNZILDzLAz9Y2W5H2K4MLGgGMnzGS89ECyjc0Ww==
|
||||
}
|
||||
dependencies:
|
||||
debug: 4.3.3
|
||||
@ -1770,14 +1863,14 @@ packages:
|
||||
- supports-color
|
||||
dev: true
|
||||
|
||||
/@windicss/plugin-utils/1.8.2:
|
||||
/@windicss/plugin-utils/1.8.3:
|
||||
resolution:
|
||||
{
|
||||
integrity: sha512-UlinWxojyGxWV18AyQ1ISeGvtpbw4ITQpcRe0v4PyuJZHwnrrHmxp8o/pg10oEcDKnsTIbjGeZfW5DC+mkjYYQ==
|
||||
integrity: sha512-emlMeDt73uNV1ZofLTDogcxqL9aZ5uIRYkjeHlrWiaDozFbX6Jc+a6eRo9Ieaar3JUryl6AnecTPHAiFDl4IXg==
|
||||
}
|
||||
dependencies:
|
||||
"@antfu/utils": 0.5.0
|
||||
"@windicss/config": 1.8.2
|
||||
"@windicss/config": 1.8.3
|
||||
debug: 4.3.3
|
||||
fast-glob: 3.2.11
|
||||
magic-string: 0.25.7
|
||||
@ -1837,6 +1930,17 @@ packages:
|
||||
through: 2.3.8
|
||||
dev: true
|
||||
|
||||
/acorn-jsx/5.3.2_acorn@7.4.1:
|
||||
resolution:
|
||||
{
|
||||
integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==
|
||||
}
|
||||
peerDependencies:
|
||||
acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
|
||||
dependencies:
|
||||
acorn: 7.4.1
|
||||
dev: true
|
||||
|
||||
/acorn-jsx/5.3.2_acorn@8.7.0:
|
||||
resolution:
|
||||
{
|
||||
@ -1848,6 +1952,15 @@ packages:
|
||||
acorn: 8.7.0
|
||||
dev: true
|
||||
|
||||
/acorn/7.4.1:
|
||||
resolution:
|
||||
{
|
||||
integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==
|
||||
}
|
||||
engines: { node: ">=0.4.0" }
|
||||
hasBin: true
|
||||
dev: true
|
||||
|
||||
/acorn/8.7.0:
|
||||
resolution:
|
||||
{
|
||||
@ -2041,10 +2154,10 @@ packages:
|
||||
postcss-value-parser: 4.2.0
|
||||
dev: true
|
||||
|
||||
/axios/0.26.0:
|
||||
/axios/0.26.1:
|
||||
resolution:
|
||||
{
|
||||
integrity: sha512-lKoGLMYtHvFrPVt3r+RBMp9nh34N0M8zEfCWqdWZx6phynIEhQqAdydpyBAAG211zlhX9Rgu08cOamy6XjE5Og==
|
||||
integrity: sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA==
|
||||
}
|
||||
dependencies:
|
||||
follow-redirects: 1.14.9
|
||||
@ -2604,17 +2717,6 @@ packages:
|
||||
cross-spawn: 7.0.3
|
||||
dev: true
|
||||
|
||||
/cross-fetch/3.1.5:
|
||||
resolution:
|
||||
{
|
||||
integrity: sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==
|
||||
}
|
||||
dependencies:
|
||||
node-fetch: 2.6.7
|
||||
transitivePeerDependencies:
|
||||
- encoding
|
||||
dev: true
|
||||
|
||||
/cross-spawn/7.0.3:
|
||||
resolution:
|
||||
{
|
||||
@ -3494,6 +3596,16 @@ packages:
|
||||
estraverse: 5.3.0
|
||||
dev: true
|
||||
|
||||
/eslint-utils/2.1.0:
|
||||
resolution:
|
||||
{
|
||||
integrity: sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==
|
||||
}
|
||||
engines: { node: ">=6" }
|
||||
dependencies:
|
||||
eslint-visitor-keys: 1.3.0
|
||||
dev: true
|
||||
|
||||
/eslint-utils/3.0.0_eslint@8.9.0:
|
||||
resolution:
|
||||
{
|
||||
@ -3507,6 +3619,14 @@ packages:
|
||||
eslint-visitor-keys: 2.1.0
|
||||
dev: true
|
||||
|
||||
/eslint-visitor-keys/1.3.0:
|
||||
resolution:
|
||||
{
|
||||
integrity: sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==
|
||||
}
|
||||
engines: { node: ">=4" }
|
||||
dev: true
|
||||
|
||||
/eslint-visitor-keys/2.1.0:
|
||||
resolution:
|
||||
{
|
||||
@ -3570,6 +3690,18 @@ packages:
|
||||
- supports-color
|
||||
dev: true
|
||||
|
||||
/espree/6.2.1:
|
||||
resolution:
|
||||
{
|
||||
integrity: sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==
|
||||
}
|
||||
engines: { node: ">=6.0.0" }
|
||||
dependencies:
|
||||
acorn: 7.4.1
|
||||
acorn-jsx: 5.3.2_acorn@7.4.1
|
||||
eslint-visitor-keys: 1.3.0
|
||||
dev: true
|
||||
|
||||
/espree/9.3.1:
|
||||
resolution:
|
||||
{
|
||||
@ -4566,6 +4698,20 @@ packages:
|
||||
minimist: 1.2.5
|
||||
dev: true
|
||||
|
||||
/jsonc-eslint-parser/1.4.1:
|
||||
resolution:
|
||||
{
|
||||
integrity: sha512-hXBrvsR1rdjmB2kQmUjf1rEIa+TqHBGMge8pwi++C+Si1ad7EjZrJcpgwym+QGK/pqTx+K7keFAtLlVNdLRJOg==
|
||||
}
|
||||
engines: { node: ">=8.10.0" }
|
||||
dependencies:
|
||||
acorn: 7.4.1
|
||||
eslint-utils: 2.1.0
|
||||
eslint-visitor-keys: 1.3.0
|
||||
espree: 6.2.1
|
||||
semver: 6.3.0
|
||||
dev: true
|
||||
|
||||
/jsonfile/4.0.0:
|
||||
resolution: { integrity: sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss= }
|
||||
optionalDependencies:
|
||||
@ -5077,21 +5223,6 @@ packages:
|
||||
tslib: 2.3.1
|
||||
dev: true
|
||||
|
||||
/node-fetch/2.6.7:
|
||||
resolution:
|
||||
{
|
||||
integrity: sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==
|
||||
}
|
||||
engines: { node: 4.x || >=6.0.0 }
|
||||
peerDependencies:
|
||||
encoding: ^0.1.0
|
||||
peerDependenciesMeta:
|
||||
encoding:
|
||||
optional: true
|
||||
dependencies:
|
||||
whatwg-url: 5.0.0
|
||||
dev: true
|
||||
|
||||
/node-releases/2.0.2:
|
||||
resolution:
|
||||
{
|
||||
@ -5424,7 +5555,7 @@ packages:
|
||||
engines: { node: ">=0.10.0" }
|
||||
dev: true
|
||||
|
||||
/pinia/2.0.11_typescript@4.5.5+vue@3.2.31:
|
||||
/pinia/2.0.11_typescript@4.6.2+vue@3.2.31:
|
||||
resolution:
|
||||
{
|
||||
integrity: sha512-JzcmnMqu28PNWOjDgEDK6fTrIzX8eQZKPPKvu/fpHdpXARUj1xeVdFi3YFIMOWswqaBd589cpmAMdSSTryI9iw==
|
||||
@ -5440,7 +5571,7 @@ packages:
|
||||
optional: true
|
||||
dependencies:
|
||||
"@vue/devtools-api": 6.0.10
|
||||
typescript: 4.5.5
|
||||
typescript: 4.6.2
|
||||
vue: 3.2.31
|
||||
vue-demi: 0.12.1_vue@3.2.31
|
||||
dev: false
|
||||
@ -6923,10 +7054,6 @@ packages:
|
||||
is-number: 7.0.0
|
||||
dev: true
|
||||
|
||||
/tr46/0.0.3:
|
||||
resolution: { integrity: sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o= }
|
||||
dev: true
|
||||
|
||||
/trim-newlines/3.0.1:
|
||||
resolution:
|
||||
{
|
||||
@ -6935,7 +7062,7 @@ packages:
|
||||
engines: { node: ">=8" }
|
||||
dev: true
|
||||
|
||||
/ts-node/9.1.1_typescript@4.5.5:
|
||||
/ts-node/9.1.1_typescript@4.6.2:
|
||||
resolution:
|
||||
{
|
||||
integrity: sha512-hPlt7ZACERQGf03M253ytLY3dHbGNGrAq9qIHWUY9XHYl1z7wYngSr3OQ5xmui8o2AaxsONxIzjafLUiWBo1Fg==
|
||||
@ -6950,7 +7077,7 @@ packages:
|
||||
diff: 4.0.2
|
||||
make-error: 1.3.6
|
||||
source-map-support: 0.5.21
|
||||
typescript: 4.5.5
|
||||
typescript: 4.6.2
|
||||
yn: 3.1.1
|
||||
dev: true
|
||||
|
||||
@ -6974,7 +7101,7 @@ packages:
|
||||
integrity: sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==
|
||||
}
|
||||
|
||||
/tsutils/3.21.0_typescript@4.5.5:
|
||||
/tsutils/3.21.0_typescript@4.6.2:
|
||||
resolution:
|
||||
{
|
||||
integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==
|
||||
@ -6984,7 +7111,7 @@ packages:
|
||||
typescript: ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta"
|
||||
dependencies:
|
||||
tslib: 1.14.1
|
||||
typescript: 4.5.5
|
||||
typescript: 4.6.2
|
||||
dev: true
|
||||
|
||||
/type-check/0.4.0:
|
||||
@ -7051,10 +7178,10 @@ packages:
|
||||
}
|
||||
dev: false
|
||||
|
||||
/typescript/4.5.5:
|
||||
/typescript/4.6.2:
|
||||
resolution:
|
||||
{
|
||||
integrity: sha512-TCTIul70LyWe6IJWT8QSYeA54WQe8EjQFU4wY52Fasj5UKx88LNYKCgBEHcOMOrFF1rKGbD8v/xcNWVUq9SymA==
|
||||
integrity: sha512-HM/hFigTBHZhLXshn9sN37H085+hQGeJHJ/X7LpBWLID/fbc2acUMfU+lGD98X81sKP+pFa9f0DZmCwB9GnbAg==
|
||||
}
|
||||
engines: { node: ">=4.2.0" }
|
||||
hasBin: true
|
||||
@ -7288,15 +7415,15 @@ packages:
|
||||
- supports-color
|
||||
dev: true
|
||||
|
||||
/vite-plugin-windicss/1.8.2_vite@2.7.13:
|
||||
/vite-plugin-windicss/1.8.3_vite@2.7.13:
|
||||
resolution:
|
||||
{
|
||||
integrity: sha512-tO9bCoqIW945ehwMr9D41YPods8b7HXtVtYVPx62dxadxlbcoD7PQ/8wSvLEiIkMMfuDG5WQ6LZaUdmfALC/vQ==
|
||||
integrity: sha512-RIw2GD6H6cKNE8wZXVOBs4L1uTicVS0FaAkeqXvy1oyuXLC4SXmvnzEuoK0+qFuWJjW0ECNwE8eU+ZZhzNQKUg==
|
||||
}
|
||||
peerDependencies:
|
||||
vite: ^2.0.1
|
||||
dependencies:
|
||||
"@windicss/plugin-utils": 1.8.2
|
||||
"@windicss/plugin-utils": 1.8.3
|
||||
debug: 4.3.3
|
||||
kolorist: 1.5.1
|
||||
vite: 2.7.13_sass@1.49.9
|
||||
@ -7382,18 +7509,18 @@ packages:
|
||||
- supports-color
|
||||
dev: true
|
||||
|
||||
/vue-i18n/9.2.0-beta.30_vue@3.2.31:
|
||||
/vue-i18n/9.2.0-beta.32_vue@3.2.31:
|
||||
resolution:
|
||||
{
|
||||
integrity: sha512-5DqrgG9ffgC7j3RRAfViC0WUcdz0C3Ix1qq1AyQItpF7UkSB6iSJGEjBG6KdspbRQq/8t1YzDx4JRXbL05l6ow==
|
||||
integrity: sha512-heUy1Aa/4DT2+ukoZkXMtDeU0o4pB5K6XxCypsmpoQ1QURAx1zyHqHB4mdjnLj3DDjllT921cV9cuKEWflQYGQ==
|
||||
}
|
||||
engines: { node: ">= 12" }
|
||||
peerDependencies:
|
||||
vue: ^3.0.0
|
||||
dependencies:
|
||||
"@intlify/core-base": 9.2.0-beta.30
|
||||
"@intlify/shared": 9.2.0-beta.30
|
||||
"@intlify/vue-devtools": 9.2.0-beta.30
|
||||
"@intlify/core-base": 9.2.0-beta.32
|
||||
"@intlify/shared": 9.2.0-beta.32
|
||||
"@intlify/vue-devtools": 9.2.0-beta.32
|
||||
"@vue/devtools-api": 6.0.10
|
||||
vue: 3.2.31
|
||||
dev: false
|
||||
@ -7410,10 +7537,10 @@ packages:
|
||||
vue: 3.2.31
|
||||
dev: false
|
||||
|
||||
/vue-router/4.0.13_vue@3.2.31:
|
||||
/vue-router/4.0.14_vue@3.2.31:
|
||||
resolution:
|
||||
{
|
||||
integrity: sha512-LmXrC+BkDRLak+d5xTMgUYraT3Nj0H/vCbP+7usGvIl9Viqd1UP6AsP0i69pSbn9O0dXK/xCdp4yPw21HqV9Jw==
|
||||
integrity: sha512-wAO6zF9zxA3u+7AkMPqw9LjoUCjSxfFvINQj3E/DceTt6uEz1XZLraDhdg2EYmvVwTBSGlLYsUw8bDmx0754Mw==
|
||||
}
|
||||
peerDependencies:
|
||||
vue: ^3.2.0
|
||||
@ -7484,10 +7611,6 @@ packages:
|
||||
tslib: 2.3.1
|
||||
dev: false
|
||||
|
||||
/webidl-conversions/3.0.1:
|
||||
resolution: { integrity: sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE= }
|
||||
dev: true
|
||||
|
||||
/webpack-virtual-modules/0.4.3:
|
||||
resolution:
|
||||
{
|
||||
@ -7495,13 +7618,6 @@ packages:
|
||||
}
|
||||
dev: true
|
||||
|
||||
/whatwg-url/5.0.0:
|
||||
resolution: { integrity: sha1-lmRU6HZUYuN2RNNib2dCzotwll0= }
|
||||
dependencies:
|
||||
tr46: 0.0.3
|
||||
webidl-conversions: 3.0.1
|
||||
dev: true
|
||||
|
||||
/which/1.3.1:
|
||||
resolution:
|
||||
{
|
||||
@ -7628,6 +7744,17 @@ packages:
|
||||
}
|
||||
dev: true
|
||||
|
||||
/yaml-eslint-parser/0.3.2:
|
||||
resolution:
|
||||
{
|
||||
integrity: sha512-32kYO6kJUuZzqte82t4M/gB6/+11WAuHiEnK7FreMo20xsCKPeFH5tDBU7iWxR7zeJpNnMXfJyXwne48D0hGrg==
|
||||
}
|
||||
dependencies:
|
||||
eslint-visitor-keys: 1.3.0
|
||||
lodash: 4.17.21
|
||||
yaml: 1.10.2
|
||||
dev: true
|
||||
|
||||
/yaml/1.10.2:
|
||||
resolution:
|
||||
{
|
||||
|
@ -14,7 +14,7 @@ import screenfull from "../components/screenfull/index.vue";
|
||||
import globalization from "/@/assets/svg/globalization.svg?component";
|
||||
|
||||
const route = useRoute();
|
||||
const { locale } = useI18n();
|
||||
const { locale, t } = useI18n();
|
||||
const instance =
|
||||
getCurrentInstance().appContext.config.globalProperties.$storage;
|
||||
const {
|
||||
@ -101,14 +101,14 @@ function translationEn() {
|
||||
<IconifyIconOffline
|
||||
icon="logout-circle-r-line"
|
||||
style="margin: 5px"
|
||||
/>{{ $t("buttons.hsLoginOut") }}</el-dropdown-item
|
||||
/>{{ t("buttons.hsLoginOut") }}</el-dropdown-item
|
||||
>
|
||||
</el-dropdown-menu>
|
||||
</template>
|
||||
</el-dropdown>
|
||||
<el-icon
|
||||
class="el-icon-setting"
|
||||
:title="$t('buttons.hssystemSet')"
|
||||
:title="t('buttons.hssystemSet')"
|
||||
@click="onPanel"
|
||||
>
|
||||
<IconifyIconOffline icon="setting" />
|
||||
|
@ -1,5 +1,8 @@
|
||||
<script setup lang="ts">
|
||||
import { useFullscreen } from "@vueuse/core";
|
||||
import { useI18n } from "vue-i18n";
|
||||
|
||||
const { t } = useI18n();
|
||||
const { isFullscreen, toggle } = useFullscreen();
|
||||
</script>
|
||||
|
||||
@ -7,9 +10,7 @@ const { isFullscreen, toggle } = useFullscreen();
|
||||
<div class="screen-full" @click="toggle">
|
||||
<FontIcon
|
||||
:title="
|
||||
isFullscreen
|
||||
? $t('buttons.hsexitfullscreen')
|
||||
: $t('buttons.hsfullscreen')
|
||||
isFullscreen ? t('buttons.hsexitfullscreen') : t('buttons.hsfullscreen')
|
||||
"
|
||||
:icon="isFullscreen ? 'team-iconexit-fullscreen' : 'team-iconfullscreen'"
|
||||
/>
|
||||
|
@ -14,7 +14,7 @@
|
||||
<component
|
||||
:is="useRenderIcon(item.meta?.icon ?? 'bookmark-2-line')"
|
||||
></component>
|
||||
<span class="result-item-title">{{ $t(item.meta?.title) }}</span>
|
||||
<span class="result-item-title">{{ t(item.meta?.title) }}</span>
|
||||
<enterOutlined />
|
||||
</div>
|
||||
</template>
|
||||
@ -23,10 +23,13 @@
|
||||
|
||||
<script lang="ts" setup>
|
||||
import { computed } from "vue";
|
||||
import { useI18n } from "vue-i18n";
|
||||
import { useEpThemeStoreHook } from "/@/store/modules/epTheme";
|
||||
import { useRenderIcon } from "/@/components/ReIcon/src/hooks";
|
||||
import enterOutlined from "/@/assets/svg/enter_outlined.svg?component";
|
||||
|
||||
const { t } = useI18n();
|
||||
|
||||
interface optionsItem {
|
||||
path: string;
|
||||
meta?: {
|
||||
|
@ -14,7 +14,7 @@ import { usePermissionStoreHook } from "/@/store/modules/permission";
|
||||
import globalization from "/@/assets/svg/globalization.svg?component";
|
||||
|
||||
const route = useRoute();
|
||||
const { locale } = useI18n();
|
||||
const { locale, t } = useI18n();
|
||||
const routers = useRouter().options.routes;
|
||||
const menuRef = templateRef<ElRef | null>("menu", null);
|
||||
const instance =
|
||||
@ -133,14 +133,14 @@ function translationEn() {
|
||||
icon="logout-circle-r-line"
|
||||
style="margin: 5px"
|
||||
/>
|
||||
{{ $t("buttons.hsLoginOut") }}</el-dropdown-item
|
||||
{{ t("buttons.hsLoginOut") }}</el-dropdown-item
|
||||
>
|
||||
</el-dropdown-menu>
|
||||
</template>
|
||||
</el-dropdown>
|
||||
<el-icon
|
||||
class="el-icon-setting"
|
||||
:title="$t('buttons.hssystemSet')"
|
||||
:title="t('buttons.hssystemSet')"
|
||||
@click="onPanel"
|
||||
>
|
||||
<IconifyIconOffline icon="setting" />
|
||||
|
@ -17,7 +17,7 @@ import globalization from "/@/assets/svg/globalization.svg?component";
|
||||
import { ref, watch, nextTick, onMounted, getCurrentInstance } from "vue";
|
||||
|
||||
const route = useRoute();
|
||||
const { locale } = useI18n();
|
||||
const { locale, t } = useI18n();
|
||||
const routers = useRouter().options.routes;
|
||||
const menuRef = templateRef<ElRef | null>("menu", null);
|
||||
const instance =
|
||||
@ -178,14 +178,14 @@ function translationEn() {
|
||||
icon="logout-circle-r-line"
|
||||
style="margin: 5px"
|
||||
/>
|
||||
{{ $t("buttons.hsLoginOut") }}</el-dropdown-item
|
||||
{{ t("buttons.hsLoginOut") }}</el-dropdown-item
|
||||
>
|
||||
</el-dropdown-menu>
|
||||
</template>
|
||||
</el-dropdown>
|
||||
<el-icon
|
||||
class="el-icon-setting"
|
||||
:title="$t('buttons.hssystemSet')"
|
||||
:title="t('buttons.hssystemSet')"
|
||||
@click="onPanel"
|
||||
>
|
||||
<IconifyIconOffline icon="setting" />
|
||||
|
@ -19,12 +19,12 @@ import closeLeft from "/@/assets/svg/close_left.svg?component";
|
||||
import closeOther from "/@/assets/svg/close_other.svg?component";
|
||||
import closeRight from "/@/assets/svg/close_right.svg?component";
|
||||
|
||||
import { useI18n } from "vue-i18n";
|
||||
import { emitter } from "/@/utils/mitt";
|
||||
import { $t as t } from "/@/plugins/i18n";
|
||||
import { transformI18n } from "/@/plugins/i18n";
|
||||
import { storageLocal } from "/@/utils/storage";
|
||||
import { useRoute, useRouter } from "vue-router";
|
||||
import { isEqual, isEmpty } from "lodash-unified";
|
||||
import { transformI18n, $t } from "/@/plugins/i18n";
|
||||
import { RouteConfigs, tagsViewsType } from "../../types";
|
||||
import { useSettingStoreHook } from "/@/store/modules/settings";
|
||||
import { handleAliveRoute, delAliveRoutes } from "/@/router/utils";
|
||||
@ -33,6 +33,7 @@ import { usePermissionStoreHook } from "/@/store/modules/permission";
|
||||
import { toggleClass, removeClass, hasClass } from "/@/utils/operate";
|
||||
import { templateRef, useResizeObserver, useDebounceFn } from "@vueuse/core";
|
||||
|
||||
const { t } = useI18n();
|
||||
const route = useRoute();
|
||||
const router = useRouter();
|
||||
const translateX = ref<number>(0);
|
||||
@ -193,42 +194,42 @@ const handleScroll = (offset: number): void => {
|
||||
const tagsViews = reactive<Array<tagsViewsType>>([
|
||||
{
|
||||
icon: refresh,
|
||||
text: t("buttons.hsreload"),
|
||||
text: $t("buttons.hsreload"),
|
||||
divided: false,
|
||||
disabled: false,
|
||||
show: true
|
||||
},
|
||||
{
|
||||
icon: close,
|
||||
text: t("buttons.hscloseCurrentTab"),
|
||||
text: $t("buttons.hscloseCurrentTab"),
|
||||
divided: false,
|
||||
disabled: multiTags.value.length > 1 ? false : true,
|
||||
show: true
|
||||
},
|
||||
{
|
||||
icon: closeLeft,
|
||||
text: t("buttons.hscloseLeftTabs"),
|
||||
text: $t("buttons.hscloseLeftTabs"),
|
||||
divided: true,
|
||||
disabled: multiTags.value.length > 1 ? false : true,
|
||||
show: true
|
||||
},
|
||||
{
|
||||
icon: closeRight,
|
||||
text: t("buttons.hscloseRightTabs"),
|
||||
text: $t("buttons.hscloseRightTabs"),
|
||||
divided: false,
|
||||
disabled: multiTags.value.length > 1 ? false : true,
|
||||
show: true
|
||||
},
|
||||
{
|
||||
icon: closeOther,
|
||||
text: t("buttons.hscloseOtherTabs"),
|
||||
text: $t("buttons.hscloseOtherTabs"),
|
||||
divided: true,
|
||||
disabled: multiTags.value.length > 2 ? false : true,
|
||||
show: true
|
||||
},
|
||||
{
|
||||
icon: closeAll,
|
||||
text: t("buttons.hscloseAllTabs"),
|
||||
text: $t("buttons.hscloseAllTabs"),
|
||||
divided: false,
|
||||
disabled: multiTags.value.length > 1 ? false : true,
|
||||
show: true
|
||||
@ -701,7 +702,7 @@ const getContextMenuStyle = computed((): CSSProperties => {
|
||||
>
|
||||
<li v-if="item.show" @click="selectTag(key, item)">
|
||||
<component :is="item.icon" :key="key" />
|
||||
{{ $t(item.text) }}
|
||||
{{ t(item.text) }}
|
||||
</li>
|
||||
</div>
|
||||
</ul>
|
||||
@ -710,7 +711,7 @@ const getContextMenuStyle = computed((): CSSProperties => {
|
||||
<ul class="right-button">
|
||||
<li>
|
||||
<el-icon
|
||||
:title="$t('buttons.hsrefreshRoute')"
|
||||
:title="t('buttons.hsrefreshRoute')"
|
||||
class="el-icon-refresh-right rotate"
|
||||
@click="onFresh"
|
||||
>
|
||||
@ -740,7 +741,7 @@ const getContextMenuStyle = computed((): CSSProperties => {
|
||||
:key="key"
|
||||
style="margin-right: 6px"
|
||||
/>
|
||||
{{ $t(item.text) }}
|
||||
{{ t(item.text) }}
|
||||
</el-dropdown-item>
|
||||
</el-dropdown-menu>
|
||||
</template>
|
||||
|
78
src/plugins/i18n.ts
Normal file
78
src/plugins/i18n.ts
Normal file
@ -0,0 +1,78 @@
|
||||
// 多组件库的国际化和本地项目国际化兼容
|
||||
import { App, WritableComputedRef } from "vue";
|
||||
import { storageLocal } from "/@/utils/storage";
|
||||
import { type I18n, createI18n } from "vue-i18n";
|
||||
|
||||
// vxe-table组件国际化
|
||||
import zhVxeTable from "vxe-table/lib/locale/lang/zh-CN";
|
||||
import enVxeTable from "vxe-table/lib/locale/lang/en-US";
|
||||
// element-plus国际化
|
||||
import enLocale from "element-plus/lib/locale/lang/en";
|
||||
import zhLocale from "element-plus/lib/locale/lang/zh-cn";
|
||||
|
||||
function siphonI18n(prefix = "zh-CN") {
|
||||
return Object.fromEntries(
|
||||
Object.entries(import.meta.globEager("../../locales/*.y(a)?ml")).map(
|
||||
([key, value]) => {
|
||||
const matched = key.match(/([A-Za-z0-9-_]+)\./i)[1];
|
||||
return [matched, value.default];
|
||||
}
|
||||
)
|
||||
)[prefix];
|
||||
}
|
||||
|
||||
export const localesConfigs = {
|
||||
zh: {
|
||||
...siphonI18n("zh-CN"),
|
||||
...zhVxeTable,
|
||||
...zhLocale
|
||||
},
|
||||
en: {
|
||||
...siphonI18n("en"),
|
||||
...enVxeTable,
|
||||
...enLocale
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* 国际化转换工具函数
|
||||
* @param message message
|
||||
* @param isI18n 如果true,获取对应的消息,否则返回本身
|
||||
* @returns message
|
||||
*/
|
||||
export function transformI18n(
|
||||
message: string | unknown | object = "",
|
||||
isI18n: boolean | unknown = false
|
||||
) {
|
||||
if (!message) {
|
||||
return "";
|
||||
}
|
||||
|
||||
// 处理存储动态路由的title,格式 {zh:"",en:""}
|
||||
if (typeof message === "object") {
|
||||
debugger;
|
||||
const locale: string | WritableComputedRef<string> | any =
|
||||
i18n.global.locale;
|
||||
return message[locale];
|
||||
}
|
||||
|
||||
if (isI18n) {
|
||||
return i18n.global.t.call(i18n.global.locale, message);
|
||||
} else {
|
||||
return message;
|
||||
}
|
||||
}
|
||||
|
||||
// 此函数只是配合i18n Ally插件来进行国际化智能提示,并无实际意义(只对提示起作用),如果不需要国际化可删除
|
||||
export const $t = (key: string) => key;
|
||||
|
||||
export const i18n: I18n = createI18n({
|
||||
legacy: false,
|
||||
locale: storageLocal.getItem("responsive-locale")?.locale ?? "zh",
|
||||
fallbackLocale: "en",
|
||||
messages: localesConfigs
|
||||
});
|
||||
|
||||
export function usI18n(app: App) {
|
||||
app.use(i18n);
|
||||
}
|
@ -1,25 +0,0 @@
|
||||
import { siphonI18n } from "./index";
|
||||
// vxe-table组件国际化
|
||||
import zhVxeTable from "vxe-table/lib/locale/lang/zh-CN";
|
||||
import enVxeTable from "vxe-table/lib/locale/lang/en-US";
|
||||
|
||||
// element-plus国际化
|
||||
import enLocale from "element-plus/lib/locale/lang/en";
|
||||
import zhLocale from "element-plus/lib/locale/lang/zh-cn";
|
||||
|
||||
// 项目内自定义国际化
|
||||
const zhModules = import.meta.globEager("./zh-CN/**/*.ts");
|
||||
const enModules = import.meta.globEager("./en/**/*.ts");
|
||||
|
||||
export const localesConfigs = {
|
||||
zh: {
|
||||
...siphonI18n(zhModules, "zh-CN"),
|
||||
...zhVxeTable,
|
||||
...zhLocale
|
||||
},
|
||||
en: {
|
||||
...siphonI18n(enModules, "en"),
|
||||
...enVxeTable,
|
||||
...enLocale
|
||||
}
|
||||
};
|
@ -1,21 +0,0 @@
|
||||
export default {
|
||||
hsLoginOut: "LoginOut",
|
||||
hsfullscreen: "FullScreen",
|
||||
hsexitfullscreen: "ExitFullscreen",
|
||||
hsrefreshRoute: "RefreshRoute",
|
||||
hslogin: "Login",
|
||||
hsadd: "Add",
|
||||
hsmark: "Mark/Cancel",
|
||||
hssave: "Save",
|
||||
hssearch: "Search",
|
||||
hsexpendAll: "Expand All",
|
||||
hscollapseAll: "Collapse All",
|
||||
hssystemSet: "Open ProjectConfig",
|
||||
hsdelete: "Delete",
|
||||
hsreload: "Reload",
|
||||
hscloseCurrentTab: "Close CurrentTab",
|
||||
hscloseLeftTabs: "Close LeftTabs",
|
||||
hscloseRightTabs: "Close RightTabs",
|
||||
hscloseOtherTabs: "Close OtherTabs",
|
||||
hscloseAllTabs: "Close AllTabs"
|
||||
};
|
@ -1,55 +0,0 @@
|
||||
export default {
|
||||
hshome: "Home",
|
||||
hslogin: "Login",
|
||||
hssysManagement: "System Manage",
|
||||
hsBaseinfo: "Base Info",
|
||||
hsDict: "Dict Manage",
|
||||
hseditor: "Editor",
|
||||
hserror: "Error Page",
|
||||
hsfourZeroFour: "404",
|
||||
hsfourZeroOne: "403",
|
||||
hsFive: "500",
|
||||
hscomponents: "Components",
|
||||
hsvideo: "Video Components",
|
||||
hsmap: "Map Components",
|
||||
hsdraggable: "Draggable Components",
|
||||
hssplitPane: "Split Pane",
|
||||
hsbutton: "Button Components",
|
||||
hscropping: "Picture Cropping",
|
||||
hscountTo: "Digital Animation",
|
||||
hsselector: "Selector Components",
|
||||
hsflowChart: "Flow Chart",
|
||||
hsseamless: "Seamless Scroll",
|
||||
hscontextmenu: "Context Menu",
|
||||
hsmenus: "MultiLevel Menu",
|
||||
hsmenu1: "Menu1",
|
||||
"hsmenu1-1": "Menu1-1",
|
||||
"hsmenu1-2": "Menu1-2",
|
||||
"hsmenu1-2-1": "Menu1-2-1",
|
||||
"hsmenu1-2-2": "Menu1-2-2",
|
||||
"hsmenu1-3": "Menu1-3",
|
||||
hsmenu2: "Menu2",
|
||||
permission: "Permission Manage",
|
||||
permissionPage: "Page Permission",
|
||||
permissionButton: "Button Permission",
|
||||
hstabs: "Tabs Operate",
|
||||
hsguide: "Guide",
|
||||
hsAble: "Able",
|
||||
hsMenuTree: "Menu Tree",
|
||||
hsWatermark: "Water Mark",
|
||||
hsPrint: "Print",
|
||||
hsExternalPage: "External Page",
|
||||
hsPureDocument: "Pure Doc(Embedded)",
|
||||
externalLink: "Pure Doc(External)",
|
||||
hsEpDocument: "Element Plus Doc(Embedded)",
|
||||
hsAbout: "About",
|
||||
hsResult: "Result Page",
|
||||
hsSuccess: "Success Page",
|
||||
hsFail: "Fail Page",
|
||||
hsIconSelect: "Icon Select",
|
||||
hsTimeline: "Time Line",
|
||||
hsLineTree: "LineTree",
|
||||
hsAntTabs: "Imitate Antdv Tabs",
|
||||
hsAntAnchor: "Imitate Antdv Anchor",
|
||||
hsAntTreeSelect: "Imitate Antdv TreeSelector"
|
||||
};
|
@ -1,77 +0,0 @@
|
||||
// 多组件库的国际化和本地项目国际化兼容
|
||||
import { App } from "vue";
|
||||
import { set } from "lodash-unified";
|
||||
import { createI18n } from "vue-i18n";
|
||||
import { localesConfigs } from "./config";
|
||||
import { storageLocal } from "/@/utils/storage";
|
||||
|
||||
/**
|
||||
* 国际化转换工具函数
|
||||
* @param message message
|
||||
* @param isI18n 如果true,获取对应的消息,否则返回本身
|
||||
* @returns message
|
||||
*/
|
||||
export function transformI18n(
|
||||
message: string | unknown | object = "",
|
||||
isI18n: boolean | unknown = false
|
||||
) {
|
||||
if (!message) {
|
||||
return "";
|
||||
}
|
||||
|
||||
// 处理存储动态路由的title,格式 {zh:"",en:""}
|
||||
if (typeof message === "object") {
|
||||
return message[i18n.global?.locale];
|
||||
}
|
||||
|
||||
if (isI18n) {
|
||||
//@ts-ignore
|
||||
return i18n.global.tc.call(i18n.global, message);
|
||||
} else {
|
||||
return message;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 从模块中抽取国际化
|
||||
* @param langs 存放国际化模块
|
||||
* @param prefix 语言 默认 zh-CN
|
||||
* @returns obj 格式:{模块名.**}
|
||||
*/
|
||||
export function siphonI18n(
|
||||
langs: Record<string, Record<string, any>>,
|
||||
prefix = "zh-CN"
|
||||
) {
|
||||
const langsObj: Recordable = {};
|
||||
Object.keys(langs).forEach((key: string) => {
|
||||
let fileName = key.replace(`./${prefix}/`, "").replace(/^\.\//, "");
|
||||
fileName = fileName.substring(0, fileName.lastIndexOf("."));
|
||||
const keyList = fileName.split("/");
|
||||
const moduleName = keyList.shift();
|
||||
const objKey = keyList.join(".");
|
||||
const langFileModule = langs[key].default;
|
||||
|
||||
if (moduleName) {
|
||||
if (objKey) {
|
||||
set(langsObj, moduleName, langsObj[moduleName] || {});
|
||||
set(langsObj[moduleName], objKey, langFileModule);
|
||||
} else {
|
||||
set(langsObj, moduleName, langFileModule || {});
|
||||
}
|
||||
}
|
||||
});
|
||||
return langsObj;
|
||||
}
|
||||
|
||||
// 此函数只是配合i18n Ally插件来进行国际化智能提示,并无实际意义(只对提示起作用),如果不需要国际化可删除
|
||||
export const $t = (key: string) => key;
|
||||
|
||||
export const i18n = createI18n({
|
||||
locale: storageLocal.getItem("responsive-locale")?.locale ?? "zh",
|
||||
fallbackLocale: "en",
|
||||
messages: localesConfigs
|
||||
});
|
||||
|
||||
export function usI18n(app: App) {
|
||||
app.use(i18n);
|
||||
}
|
@ -1,21 +0,0 @@
|
||||
export default {
|
||||
hsLoginOut: "退出系统",
|
||||
hsfullscreen: "全屏",
|
||||
hsexitfullscreen: "退出全屏",
|
||||
hsrefreshRoute: "刷新路由",
|
||||
hslogin: "登陆",
|
||||
hsadd: "新增",
|
||||
hsmark: "标记/取消",
|
||||
hssave: "保存",
|
||||
hssearch: "搜索",
|
||||
hsexpendAll: "全部展开",
|
||||
hscollapseAll: "全部折叠",
|
||||
hssystemSet: "打开项目配置",
|
||||
hsdelete: "删除",
|
||||
hsreload: "重新加载",
|
||||
hscloseCurrentTab: "关闭当前标签页",
|
||||
hscloseLeftTabs: "关闭左侧标签页",
|
||||
hscloseRightTabs: "关闭右侧标签页",
|
||||
hscloseOtherTabs: "关闭其他标签页",
|
||||
hscloseAllTabs: "关闭全部标签页"
|
||||
};
|
@ -1,55 +0,0 @@
|
||||
export default {
|
||||
hshome: "首页",
|
||||
hslogin: "登陆",
|
||||
hssysManagement: "系统管理",
|
||||
hsBaseinfo: "基础信息",
|
||||
hsDict: "字典管理",
|
||||
hseditor: "编辑器",
|
||||
hserror: "错误页面",
|
||||
hsfourZeroFour: "404",
|
||||
hsfourZeroOne: "403",
|
||||
hsFive: "500",
|
||||
hscomponents: "组件",
|
||||
hsvideo: "视频组件",
|
||||
hsmap: "地图组件",
|
||||
hsdraggable: "拖拽组件",
|
||||
hssplitPane: "切割面板",
|
||||
hsbutton: "按钮组件",
|
||||
hscropping: "图片裁剪",
|
||||
hscountTo: "数字动画",
|
||||
hsselector: "选择器组件",
|
||||
hsflowChart: "流程图",
|
||||
hsseamless: "无缝滚动",
|
||||
hscontextmenu: "右键菜单",
|
||||
hsmenus: "多级菜单",
|
||||
hsmenu1: "菜单1",
|
||||
"hsmenu1-1": "菜单1-1",
|
||||
"hsmenu1-2": "菜单1-2",
|
||||
"hsmenu1-2-1": "菜单1-2-1",
|
||||
"hsmenu1-2-2": "菜单1-2-2",
|
||||
"hsmenu1-3": "菜单1-3",
|
||||
hsmenu2: "菜单2",
|
||||
permission: "权限管理",
|
||||
permissionPage: "页面权限",
|
||||
permissionButton: "按钮权限",
|
||||
hstabs: "标签页操作",
|
||||
hsguide: "引导页",
|
||||
hsAble: "功能",
|
||||
hsMenuTree: "菜单树结构",
|
||||
hsWatermark: "水印",
|
||||
hsPrint: "打印",
|
||||
hsExternalPage: "外部页面",
|
||||
hsPureDocument: "平台文档(内嵌)",
|
||||
externalLink: "平台文档(外链)",
|
||||
hsEpDocument: "Element Plus文档(内嵌)",
|
||||
hsAbout: "关于",
|
||||
hsResult: "结果页面",
|
||||
hsSuccess: "成功页面",
|
||||
hsFail: "失败页面",
|
||||
hsIconSelect: "图标选择器",
|
||||
hsTimeline: "时间线",
|
||||
hsLineTree: "树形连接线",
|
||||
hsAntTabs: "仿antdv标签页",
|
||||
hsAntAnchor: "仿antdv锚点",
|
||||
hsAntTreeSelect: "仿antdv树型选择器"
|
||||
};
|
@ -1,6 +1,6 @@
|
||||
import "xe-utils";
|
||||
import { App } from "vue";
|
||||
import { i18n } from "../i18n/index";
|
||||
import { i18n } from "/@/plugins/i18n";
|
||||
import "font-awesome/css/font-awesome.min.css";
|
||||
import {
|
||||
// 核心
|
||||
|
@ -1,8 +1,10 @@
|
||||
<script setup lang="ts">
|
||||
import { computed } from "vue";
|
||||
import { useI18n } from "vue-i18n";
|
||||
import ElTreeLine from "/@/components/ReTreeLine";
|
||||
import { extractPathList, deleteChildren } from "/@/utils/tree";
|
||||
import { usePermissionStoreHook } from "/@/store/modules/permission";
|
||||
const { t } = useI18n();
|
||||
|
||||
let menusData = computed(() => {
|
||||
return deleteChildren(usePermissionStoreHook().menusTree);
|
||||
@ -43,7 +45,7 @@ let dataProps = {
|
||||
><template v-slot:default="{ node }">
|
||||
<el-tree-line :node="node" :showLabelLine="true">
|
||||
<template v-slot:node-label>
|
||||
<span class="text-sm">{{ $t(node.data.meta.title) }}</span>
|
||||
<span class="text-sm">{{ t(node.data.meta.title) }}</span>
|
||||
</template>
|
||||
</el-tree-line>
|
||||
</template>
|
||||
@ -75,7 +77,7 @@ let dataProps = {
|
||||
:indent="30"
|
||||
>
|
||||
<template v-slot:node-label>
|
||||
<span class="text-sm">{{ $t(node.data.meta.title) }}</span>
|
||||
<span class="text-sm">{{ t(node.data.meta.title) }}</span>
|
||||
</template>
|
||||
</el-tree-line>
|
||||
</template>
|
||||
|
@ -5,6 +5,7 @@ export default {
|
||||
</script>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { useI18n } from "vue-i18n";
|
||||
import { ref, computed } from "vue";
|
||||
import type { ElTreeV2 } from "element-plus";
|
||||
import { transformI18n } from "/@/plugins/i18n";
|
||||
@ -12,6 +13,7 @@ import { useRenderIcon } from "/@/components/ReIcon/src/hooks";
|
||||
import { extractPathList, deleteChildren } from "/@/utils/tree";
|
||||
import { usePermissionStoreHook } from "/@/store/modules/permission";
|
||||
import type { TreeNode } from "element-plus/es/components/tree-v2/src/types";
|
||||
const { t } = useI18n();
|
||||
|
||||
interface treeNode extends TreeNode {
|
||||
meta: {
|
||||
@ -76,7 +78,7 @@ const filterMethod = (query: string, node: treeNode) => {
|
||||
:default-expanded-keys="expandedKeys"
|
||||
>
|
||||
<template #default="{ data }">
|
||||
<span>{{ $t(data.meta.title) }}</span>
|
||||
<span>{{ t(data.meta.title) }}</span>
|
||||
</template>
|
||||
</el-tree-v2>
|
||||
</el-card>
|
||||
|
@ -1,18 +1,21 @@
|
||||
<template>
|
||||
<div>
|
||||
<p>{{ $t("menus.hsmenu1") }}</p>
|
||||
<p style="text-indent: 2em">{{ $t("menus.hsmenu1-1") }}</p>
|
||||
<p>{{ t("menus.hsmenu1") }}</p>
|
||||
<p style="text-indent: 2em">{{ t("menus.hsmenu1-1") }}</p>
|
||||
<el-input v-model="input" />
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script lang="ts">
|
||||
import { useI18n } from "vue-i18n";
|
||||
import { defineComponent, ref } from "vue";
|
||||
export default defineComponent({
|
||||
name: "Menu1-1",
|
||||
setup() {
|
||||
const { t } = useI18n();
|
||||
return {
|
||||
input: ref("")
|
||||
input: ref(""),
|
||||
t
|
||||
};
|
||||
}
|
||||
});
|
||||
|
@ -1,19 +1,22 @@
|
||||
<template>
|
||||
<div>
|
||||
<p>{{ $t("menus.hsmenu1") }}</p>
|
||||
<p style="text-indent: 2em">{{ $t("menus.hsmenu1-2") }}</p>
|
||||
<p style="text-indent: 4em">{{ $t("menus.hsmenu1-2-1") }}</p>
|
||||
<p>{{ t("menus.hsmenu1") }}</p>
|
||||
<p style="text-indent: 2em">{{ t("menus.hsmenu1-2") }}</p>
|
||||
<p style="text-indent: 4em">{{ t("menus.hsmenu1-2-1") }}</p>
|
||||
<el-input v-model="input" />
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script lang="ts">
|
||||
import { useI18n } from "vue-i18n";
|
||||
import { defineComponent, ref } from "vue";
|
||||
export default defineComponent({
|
||||
name: "Menu1-2-1",
|
||||
setup() {
|
||||
const { t } = useI18n();
|
||||
return {
|
||||
input: ref("")
|
||||
input: ref(""),
|
||||
t
|
||||
};
|
||||
}
|
||||
});
|
||||
|
@ -1,19 +1,22 @@
|
||||
<template>
|
||||
<div>
|
||||
<p>{{ $t("menus.hsmenu1") }}</p>
|
||||
<p style="text-indent: 2em">{{ $t("menus.hsmenu1-2") }}</p>
|
||||
<p style="text-indent: 4em">{{ $t("menus.hsmenu1-2-2") }}</p>
|
||||
<p>{{ t("menus.hsmenu1") }}</p>
|
||||
<p style="text-indent: 2em">{{ t("menus.hsmenu1-2") }}</p>
|
||||
<p style="text-indent: 4em">{{ t("menus.hsmenu1-2-2") }}</p>
|
||||
<el-input v-model="input" />
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script lang="ts">
|
||||
import { useI18n } from "vue-i18n";
|
||||
import { defineComponent, ref } from "vue";
|
||||
export default defineComponent({
|
||||
name: "Menu1-2-2",
|
||||
setup() {
|
||||
const { t } = useI18n();
|
||||
return {
|
||||
input: ref("")
|
||||
input: ref(""),
|
||||
t
|
||||
};
|
||||
}
|
||||
});
|
||||
|
@ -1,18 +1,21 @@
|
||||
<template>
|
||||
<div>
|
||||
<p>{{ $t("menus.hsmenu1") }}</p>
|
||||
<p style="text-indent: 2em">{{ $t("menus.hsmenu1-3") }}</p>
|
||||
<p>{{ t("menus.hsmenu1") }}</p>
|
||||
<p style="text-indent: 2em">{{ t("menus.hsmenu1-3") }}</p>
|
||||
<el-input v-model="input" />
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script lang="ts">
|
||||
import { useI18n } from "vue-i18n";
|
||||
import { defineComponent, ref } from "vue";
|
||||
export default defineComponent({
|
||||
name: "Menu1-3",
|
||||
setup() {
|
||||
const { t } = useI18n();
|
||||
return {
|
||||
input: ref("")
|
||||
input: ref(""),
|
||||
t
|
||||
};
|
||||
}
|
||||
});
|
||||
|
@ -1,17 +1,20 @@
|
||||
<template>
|
||||
<div>
|
||||
<p>{{ $t("menus.hsmenu2") }}</p>
|
||||
<p>{{ t("menus.hsmenu2") }}</p>
|
||||
<el-input v-model="input" />
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script lang="ts">
|
||||
import { useI18n } from "vue-i18n";
|
||||
import { defineComponent, ref } from "vue";
|
||||
export default defineComponent({
|
||||
name: "Menu2",
|
||||
setup() {
|
||||
const { t } = useI18n();
|
||||
return {
|
||||
input: ref("")
|
||||
input: ref(""),
|
||||
t
|
||||
};
|
||||
}
|
||||
});
|
||||
|
@ -1,5 +1,6 @@
|
||||
<script setup lang="ts">
|
||||
import { reactive } from "vue";
|
||||
import { useI18n } from "vue-i18n";
|
||||
import { VxeTableEvents } from "vxe-table";
|
||||
import { templateRef } from "@vueuse/core";
|
||||
|
||||
@ -19,6 +20,8 @@ const emit = defineEmits<{
|
||||
(e: "handleClose"): void;
|
||||
}>();
|
||||
|
||||
const { t } = useI18n();
|
||||
|
||||
const xTable = templateRef<any>("xTable", null);
|
||||
|
||||
const configData = reactive({
|
||||
@ -140,7 +143,7 @@ const checkboxChangeEvent: VxeTableEvents.CheckboxChange = ({ records }) => {
|
||||
<span class="select-count"
|
||||
>已选中{{ configData.selectRecords.length }}条</span
|
||||
>
|
||||
<vxe-button size="small">{{ $t("buttons.hsdelete") }}</vxe-button>
|
||||
<vxe-button size="small">{{ t("buttons.hsdelete") }}</vxe-button>
|
||||
</span>
|
||||
</template>
|
||||
</vxe-pager>
|
||||
|
@ -7,6 +7,7 @@ export default {
|
||||
<script setup lang="ts">
|
||||
import XEUtils from "xe-utils";
|
||||
import Config from "./config.vue";
|
||||
import { useI18n } from "vue-i18n";
|
||||
import { cloneDeep } from "lodash-unified";
|
||||
import { templateRef } from "@vueuse/core";
|
||||
import { reactive, ref, unref, nextTick } from "vue";
|
||||
@ -22,6 +23,8 @@ type onEditNRow = {
|
||||
model: string;
|
||||
};
|
||||
|
||||
const { t } = useI18n();
|
||||
|
||||
const dictData = reactive({
|
||||
submitLoading: false,
|
||||
showEdit: false,
|
||||
@ -209,7 +212,7 @@ function handleClose() {
|
||||
<template #buttons>
|
||||
<vxe-input
|
||||
v-model="dictData.filterName"
|
||||
:placeholder="$t('buttons.hssearch')"
|
||||
:placeholder="t('buttons.hssearch')"
|
||||
@keyup="searchEvent"
|
||||
></vxe-input>
|
||||
</template>
|
||||
@ -218,19 +221,19 @@ function handleClose() {
|
||||
icon="fa fa-plus-square-o"
|
||||
status="primary"
|
||||
@click="onAdd"
|
||||
>{{ $t("buttons.hsadd") }}</vxe-button
|
||||
>{{ t("buttons.hsadd") }}</vxe-button
|
||||
>
|
||||
<vxe-button
|
||||
icon="fa fa-folder-open-o"
|
||||
status="primary"
|
||||
@click="$refs.xTree.setAllTreeExpand(true)"
|
||||
>{{ $t("buttons.hsexpendAll") }}</vxe-button
|
||||
>{{ t("buttons.hsexpendAll") }}</vxe-button
|
||||
>
|
||||
<vxe-button
|
||||
icon="fa fa-folder-o"
|
||||
status="primary"
|
||||
@click="$refs.xTree.clearTreeExpand()"
|
||||
>{{ $t("buttons.hscollapseAll") }}</vxe-button
|
||||
>{{ t("buttons.hscollapseAll") }}</vxe-button
|
||||
>
|
||||
</template>
|
||||
</vxe-toolbar>
|
||||
|
@ -16,9 +16,7 @@ const pathResolve = (dir: string): string => {
|
||||
// 设置别名
|
||||
const alias: Record<string, string> = {
|
||||
"/@": pathResolve("src"),
|
||||
"@build": pathResolve("build"),
|
||||
//解决开发环境下的警告
|
||||
"vue-i18n": "vue-i18n/dist/vue-i18n.cjs.js"
|
||||
"@build": pathResolve("build")
|
||||
};
|
||||
|
||||
const { dependencies, devDependencies, name, version } = pkg;
|
||||
|
Loading…
x
Reference in New Issue
Block a user