mirror of
https://github.com/vbenjs/vue-vben-admin.git
synced 2025-08-27 04:39:12 +08:00
perf(i18n): merge common lang
This commit is contained in:
@@ -96,7 +96,7 @@
|
|||||||
"stylelint-order": "^4.1.0",
|
"stylelint-order": "^4.1.0",
|
||||||
"ts-node": "^9.1.0",
|
"ts-node": "^9.1.0",
|
||||||
"typescript": "^4.1.3",
|
"typescript": "^4.1.3",
|
||||||
"vite": "^2.0.0-beta.22",
|
"vite": "^2.0.0-beta.23",
|
||||||
"vite-plugin-html": "^2.0.0-beta.5",
|
"vite-plugin-html": "^2.0.0-beta.5",
|
||||||
"vite-plugin-mock": "^2.0.0-beta.3",
|
"vite-plugin-mock": "^2.0.0-beta.3",
|
||||||
"vite-plugin-purge-icons": "^0.5.0",
|
"vite-plugin-purge-icons": "^0.5.0",
|
||||||
|
@@ -1,7 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<div :class="prefixCls" v-if="getShowSearch" @click.stop="handleSearch">
|
<div :class="prefixCls" v-if="getShowSearch" @click.stop="handleSearch">
|
||||||
<Tooltip>
|
<Tooltip>
|
||||||
<template #title> {{ t('component.app.search') }} </template>
|
<template #title> {{ t('common.searchText') }} </template>
|
||||||
<SearchOutlined />
|
<SearchOutlined />
|
||||||
</Tooltip>
|
</Tooltip>
|
||||||
|
|
||||||
|
@@ -15,7 +15,7 @@
|
|||||||
<span :class="`${prefixCls}__item`">
|
<span :class="`${prefixCls}__item`">
|
||||||
<g-icon icon="mdi:keyboard-esc" />
|
<g-icon icon="mdi:keyboard-esc" />
|
||||||
</span>
|
</span>
|
||||||
<span>{{ t('component.app.toClose') }}</span>
|
<span>{{ t('common.closeText') }}</span>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
@@ -47,7 +47,7 @@
|
|||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
color: #666;
|
color: #666;
|
||||||
background: rgb(255 255 255);
|
background: rgb(255 255 255);
|
||||||
border-radius: 0 0 8px 8px;
|
border-radius: 0 0 16px 16px;
|
||||||
box-shadow: 0 -1px 0 0 #e0e3e8, 0 -3px 6px 0 rgba(69, 98, 155, 0.12);
|
box-shadow: 0 -1px 0 0 #e0e3e8, 0 -3px 6px 0 rgba(69, 98, 155, 0.12);
|
||||||
align-items: center;
|
align-items: center;
|
||||||
flex-shrink: 0;
|
flex-shrink: 0;
|
||||||
|
@@ -7,7 +7,7 @@
|
|||||||
<div :class="`${prefixCls}-input__wrapper`">
|
<div :class="`${prefixCls}-input__wrapper`">
|
||||||
<a-input
|
<a-input
|
||||||
:class="`${prefixCls}-input`"
|
:class="`${prefixCls}-input`"
|
||||||
:placeholder="t('component.app.search')"
|
:placeholder="t('common.searchText')"
|
||||||
allow-clear
|
allow-clear
|
||||||
@change="handleSearch"
|
@change="handleSearch"
|
||||||
>
|
>
|
||||||
@@ -16,7 +16,7 @@
|
|||||||
</template>
|
</template>
|
||||||
</a-input>
|
</a-input>
|
||||||
<span :class="`${prefixCls}-cancel`" @click="handleClose">{{
|
<span :class="`${prefixCls}-cancel`" @click="handleClose">{{
|
||||||
t('component.app.cancel')
|
t('common.cancelText')
|
||||||
}}</span>
|
}}</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -116,6 +116,7 @@
|
|||||||
scrollWrap,
|
scrollWrap,
|
||||||
handleMouseenter,
|
handleMouseenter,
|
||||||
handleClose: () => {
|
handleClose: () => {
|
||||||
|
searchResult.value = [];
|
||||||
emit('close');
|
emit('close');
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
@@ -135,7 +136,7 @@
|
|||||||
height: 100%;
|
height: 100%;
|
||||||
padding-top: 50px;
|
padding-top: 50px;
|
||||||
// background: #656c85cc;
|
// background: #656c85cc;
|
||||||
background: rgba(0, 0, 0, 0.8);
|
background: rgba(0, 0, 0, 0.25);
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
// backdrop-filter: blur(2px);
|
// backdrop-filter: blur(2px);
|
||||||
|
|
||||||
@@ -178,12 +179,13 @@
|
|||||||
|
|
||||||
&-content {
|
&-content {
|
||||||
position: relative;
|
position: relative;
|
||||||
width: 532px;
|
width: 632px;
|
||||||
// padding: 14px;
|
// padding: 14px;
|
||||||
margin: 0 auto auto auto;
|
margin: 0 auto auto auto;
|
||||||
background: #f5f6f7;
|
background: #f5f6f7;
|
||||||
border-radius: 6px;
|
border-radius: 16px;
|
||||||
box-shadow: inset 1px 1px 0 0 hsla(0, 0%, 100%, 0.5), 0 3px 8px 0 #555a64;
|
box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
|
||||||
|
// box-shadow: inset 1px 1px 0 0 hsla(0, 0%, 100%, 0.5), 0 3px 8px 0 #555a64;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -196,9 +198,10 @@
|
|||||||
|
|
||||||
&-input {
|
&-input {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 56px;
|
height: 48px;
|
||||||
font-size: 1.5em;
|
font-size: 1.5em;
|
||||||
color: #1c1e21;
|
color: #1c1e21;
|
||||||
|
border-radius: 6px;
|
||||||
|
|
||||||
span[role='img'] {
|
span[role='img'] {
|
||||||
color: #999;
|
color: #999;
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
import { cloneDeep } from 'lodash-es';
|
import { cloneDeep } from 'lodash-es';
|
||||||
import { ref, onBeforeMount, unref, Ref } from 'vue';
|
import { ref, onBeforeMount, unref, Ref, nextTick } from 'vue';
|
||||||
import { useI18n } from '/@/hooks/web/useI18n';
|
import { useI18n } from '/@/hooks/web/useI18n';
|
||||||
import { getMenus } from '/@/router/menus';
|
import { getMenus } from '/@/router/menus';
|
||||||
import type { Menu } from '/@/router/types';
|
import type { Menu } from '/@/router/types';
|
||||||
@@ -130,7 +130,7 @@ export function useMenuSearch(refs: Ref<HTMLElement[]>, scrollWrap: Ref<ElRef>,
|
|||||||
start();
|
start();
|
||||||
}
|
}
|
||||||
|
|
||||||
function handleEnter() {
|
async function handleEnter() {
|
||||||
if (!searchResult.value.length) return;
|
if (!searchResult.value.length) return;
|
||||||
const result = unref(searchResult);
|
const result = unref(searchResult);
|
||||||
const index = unref(activeIndex);
|
const index = unref(activeIndex);
|
||||||
@@ -139,10 +139,12 @@ export function useMenuSearch(refs: Ref<HTMLElement[]>, scrollWrap: Ref<ElRef>,
|
|||||||
}
|
}
|
||||||
const to = result[index];
|
const to = result[index];
|
||||||
handleClose();
|
handleClose();
|
||||||
|
await nextTick();
|
||||||
go(to.path);
|
go(to.path);
|
||||||
}
|
}
|
||||||
|
|
||||||
function handleClose() {
|
function handleClose() {
|
||||||
|
searchResult.value = [];
|
||||||
emit('close');
|
emit('close');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import { defineComponent, h, unref } from 'vue';
|
import { defineComponent, h, unref, computed } from 'vue';
|
||||||
|
|
||||||
import { Popconfirm } from 'ant-design-vue';
|
import { Popconfirm } from 'ant-design-vue';
|
||||||
import BasicButton from './BasicButton.vue';
|
import BasicButton from './BasicButton.vue';
|
||||||
@@ -7,7 +7,6 @@
|
|||||||
import { useI18n } from '/@/hooks/web/useI18n';
|
import { useI18n } from '/@/hooks/web/useI18n';
|
||||||
import { extendSlots } from '/@/utils/helper/tsxHelper';
|
import { extendSlots } from '/@/utils/helper/tsxHelper';
|
||||||
import { omit } from 'lodash-es';
|
import { omit } from 'lodash-es';
|
||||||
const { t } = useI18n();
|
|
||||||
|
|
||||||
export default defineComponent({
|
export default defineComponent({
|
||||||
name: 'PopButton',
|
name: 'PopButton',
|
||||||
@@ -15,19 +14,29 @@
|
|||||||
components: { Popconfirm, BasicButton },
|
components: { Popconfirm, BasicButton },
|
||||||
props: {
|
props: {
|
||||||
enable: propTypes.bool.def(true),
|
enable: propTypes.bool.def(true),
|
||||||
okText: propTypes.string.def(t('component.drawer.okText')),
|
okText: propTypes.string,
|
||||||
cancelText: propTypes.string.def(t('component.drawer.cancelText')),
|
cancelText: propTypes.string,
|
||||||
},
|
},
|
||||||
setup(props, { slots, attrs }) {
|
setup(props, { slots, attrs }) {
|
||||||
return () => {
|
const { t } = useI18n();
|
||||||
const popValues = { ...props, ...unref(attrs) };
|
|
||||||
|
|
||||||
|
const getBindValues = computed(() => {
|
||||||
|
const popValues = Object.assign(
|
||||||
|
{
|
||||||
|
okText: t('common.okText'),
|
||||||
|
cancelText: t('common.cancelText'),
|
||||||
|
},
|
||||||
|
{ ...props, ...unref(attrs) }
|
||||||
|
);
|
||||||
|
return popValues;
|
||||||
|
});
|
||||||
|
return () => {
|
||||||
const Button = h(BasicButton, omit(unref(attrs), 'icon'), extendSlots(slots));
|
const Button = h(BasicButton, omit(unref(attrs), 'icon'), extendSlots(slots));
|
||||||
if (!props.enable) {
|
if (!props.enable) {
|
||||||
return Button;
|
return Button;
|
||||||
}
|
}
|
||||||
|
|
||||||
return h(Popconfirm, omit(popValues, 'icon'), { default: () => Button });
|
return h(Popconfirm, omit(unref(getBindValues), 'icon'), { default: () => Button });
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
@@ -16,7 +16,7 @@
|
|||||||
<ScrollContainer
|
<ScrollContainer
|
||||||
:style="getScrollContentStyle"
|
:style="getScrollContentStyle"
|
||||||
v-loading="getLoading"
|
v-loading="getLoading"
|
||||||
:loading-tip="loadingText || t('component.drawer.loadingText')"
|
:loading-tip="loadingText || t('common.loadingText')"
|
||||||
>
|
>
|
||||||
<slot />
|
<slot />
|
||||||
</ScrollContainer>
|
</ScrollContainer>
|
||||||
|
@@ -11,13 +11,13 @@ export const footerProps = {
|
|||||||
*/
|
*/
|
||||||
showCancelBtn: propTypes.bool.def(true),
|
showCancelBtn: propTypes.bool.def(true),
|
||||||
cancelButtonProps: Object as PropType<Recordable>,
|
cancelButtonProps: Object as PropType<Recordable>,
|
||||||
cancelText: propTypes.string.def(t('component.drawer.cancelText')),
|
cancelText: propTypes.string.def(t('common.cancelText')),
|
||||||
/**
|
/**
|
||||||
* @description: Show confirmation button
|
* @description: Show confirmation button
|
||||||
*/
|
*/
|
||||||
showOkBtn: propTypes.bool.def(true),
|
showOkBtn: propTypes.bool.def(true),
|
||||||
okButtonProps: Object as PropType<Recordable>,
|
okButtonProps: Object as PropType<Recordable>,
|
||||||
okText: propTypes.string.def(t('component.drawer.okText')),
|
okText: propTypes.string.def(t('common.okText')),
|
||||||
okType: propTypes.string.def('primary'),
|
okType: propTypes.string.def('primary'),
|
||||||
showFooter: propTypes.bool,
|
showFooter: propTypes.bool,
|
||||||
footerHeight: {
|
footerHeight: {
|
||||||
|
@@ -101,7 +101,7 @@
|
|||||||
(): ButtonOptions => {
|
(): ButtonOptions => {
|
||||||
return Object.assign(
|
return Object.assign(
|
||||||
{
|
{
|
||||||
text: t('component.form.resetButton'),
|
text: t('common.resetText'),
|
||||||
},
|
},
|
||||||
props.resetButtonOptions
|
props.resetButtonOptions
|
||||||
);
|
);
|
||||||
@@ -111,7 +111,7 @@
|
|||||||
const getSubmitBtnOptions = computed(() => {
|
const getSubmitBtnOptions = computed(() => {
|
||||||
return Object.assign(
|
return Object.assign(
|
||||||
{
|
{
|
||||||
text: t('component.form.submitButton'),
|
text: t('common.queryText'),
|
||||||
},
|
},
|
||||||
props.submitButtonOptions
|
props.submitButtonOptions
|
||||||
);
|
);
|
||||||
|
@@ -10,10 +10,10 @@ const { t } = useI18n();
|
|||||||
*/
|
*/
|
||||||
export function createPlaceholderMessage(component: ComponentType) {
|
export function createPlaceholderMessage(component: ComponentType) {
|
||||||
if (component.includes('Input') || component.includes('Complete')) {
|
if (component.includes('Input') || component.includes('Complete')) {
|
||||||
return t('component.form.input');
|
return t('common.inputText');
|
||||||
}
|
}
|
||||||
if (component.includes('Picker')) {
|
if (component.includes('Picker')) {
|
||||||
return t('component.form.choose');
|
return t('common.chooseText');
|
||||||
}
|
}
|
||||||
if (
|
if (
|
||||||
component.includes('Select') ||
|
component.includes('Select') ||
|
||||||
@@ -23,7 +23,7 @@ export function createPlaceholderMessage(component: ComponentType) {
|
|||||||
component.includes('Switch')
|
component.includes('Switch')
|
||||||
) {
|
) {
|
||||||
// return `请选择${label}`;
|
// return `请选择${label}`;
|
||||||
return t('component.form.choose');
|
return t('common.chooseText');
|
||||||
}
|
}
|
||||||
return '';
|
return '';
|
||||||
}
|
}
|
||||||
|
1
src/components/MenuPlus/index.ts
Normal file
1
src/components/MenuPlus/index.ts
Normal file
@@ -0,0 +1 @@
|
|||||||
|
export { default as Menu } from './src/index.vue';
|
64
src/components/MenuPlus/src/index.vue
Normal file
64
src/components/MenuPlus/src/index.vue
Normal file
@@ -0,0 +1,64 @@
|
|||||||
|
<template>
|
||||||
|
<ul :class="getClass" :style="getStyle">
|
||||||
|
<slot></slot>
|
||||||
|
</ul>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script lang="ts">
|
||||||
|
import { defineComponent, ref, computed, CSSProperties, unref } from 'vue';
|
||||||
|
import { useDesign } from '/@/hooks/web/useDesign';
|
||||||
|
import { propTypes } from '/@/utils/propTypes';
|
||||||
|
export default defineComponent({
|
||||||
|
props: {
|
||||||
|
mode: propTypes.oneOf(['horizontal', 'vertical']).def('vertical'),
|
||||||
|
theme: propTypes.oneOf(['light', 'dark', 'primary']).def('light'),
|
||||||
|
activeName: propTypes.oneOfType([propTypes.string, propTypes.number]),
|
||||||
|
openNames: propTypes.array.def([]),
|
||||||
|
accordion: propTypes.bool,
|
||||||
|
width: propTypes.string.def('210px'),
|
||||||
|
},
|
||||||
|
setup(props) {
|
||||||
|
const currentActiveName = ref(props.activeName);
|
||||||
|
const openedNames = ref<string[]>();
|
||||||
|
|
||||||
|
const { prefixCls } = useDesign('menu');
|
||||||
|
|
||||||
|
const getClass = computed(() => {
|
||||||
|
const { theme, mode } = props;
|
||||||
|
let curTheme = theme;
|
||||||
|
if (mode === 'vertical' && theme === 'primary') {
|
||||||
|
curTheme = 'light';
|
||||||
|
}
|
||||||
|
return [
|
||||||
|
prefixCls,
|
||||||
|
`${prefixCls}-${curTheme}`,
|
||||||
|
{
|
||||||
|
[`${prefixCls}-${mode}`]: mode,
|
||||||
|
},
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|
||||||
|
const getStyle = computed(
|
||||||
|
(): CSSProperties => {
|
||||||
|
const { mode, width } = props;
|
||||||
|
if (mode === 'vertical') {
|
||||||
|
return {
|
||||||
|
width: width,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
return {};
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
function updateActiveName() {
|
||||||
|
if (unref(currentActiveName) === undefined) {
|
||||||
|
currentActiveName.value = -1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function updateOpened() {}
|
||||||
|
|
||||||
|
return { getClass, getStyle };
|
||||||
|
},
|
||||||
|
});
|
||||||
|
</script>
|
@@ -127,6 +127,7 @@
|
|||||||
|
|
||||||
watchEffect(() => {
|
watchEffect(() => {
|
||||||
visibleRef.value = !!props.visible;
|
visibleRef.value = !!props.visible;
|
||||||
|
fullScreenRef.value = !!props.defaultFullscreen;
|
||||||
});
|
});
|
||||||
|
|
||||||
watch(
|
watch(
|
||||||
|
@@ -13,13 +13,14 @@ export const modalProps = {
|
|||||||
// open drag
|
// open drag
|
||||||
draggable: propTypes.bool.def(true),
|
draggable: propTypes.bool.def(true),
|
||||||
centered: propTypes.bool,
|
centered: propTypes.bool,
|
||||||
cancelText: propTypes.string.def(t('component.modal.cancelText')),
|
cancelText: propTypes.string.def(t('common.cancelText')),
|
||||||
okText: propTypes.string.def(t('component.modal.okText')),
|
okText: propTypes.string.def(t('common.okText')),
|
||||||
|
|
||||||
closeFunc: Function as PropType<() => Promise<boolean>>,
|
closeFunc: Function as PropType<() => Promise<boolean>>,
|
||||||
};
|
};
|
||||||
|
|
||||||
export const basicProps = Object.assign({}, modalProps, {
|
export const basicProps = Object.assign({}, modalProps, {
|
||||||
|
defaultFullscreen: propTypes.bool,
|
||||||
// Can it be full screen
|
// Can it be full screen
|
||||||
canFullscreen: propTypes.bool.def(true),
|
canFullscreen: propTypes.bool.def(true),
|
||||||
// After enabling the wrapper, the bottom can be increased in height
|
// After enabling the wrapper, the bottom can be increased in height
|
||||||
|
@@ -21,9 +21,26 @@
|
|||||||
import { Image } from 'ant-design-vue';
|
import { Image } from 'ant-design-vue';
|
||||||
import { useDesign } from '/@/hooks/web/useDesign';
|
import { useDesign } from '/@/hooks/web/useDesign';
|
||||||
import { propTypes } from '/@/utils/propTypes';
|
import { propTypes } from '/@/utils/propTypes';
|
||||||
import { ImageItem } from './types';
|
|
||||||
import { isString } from '/@/utils/is';
|
import { isString } from '/@/utils/is';
|
||||||
|
|
||||||
|
interface ImageProps {
|
||||||
|
alt?: string;
|
||||||
|
fallback?: string;
|
||||||
|
src: string;
|
||||||
|
width: string | number;
|
||||||
|
height?: string | number;
|
||||||
|
placeholder?: string | boolean;
|
||||||
|
preview?:
|
||||||
|
| boolean
|
||||||
|
| {
|
||||||
|
visible?: boolean;
|
||||||
|
onVisibleChange?: (visible: boolean, prevVisible: boolean) => void;
|
||||||
|
getContainer: string | HTMLElement | (() => HTMLElement);
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
type ImageItem = string | ImageProps;
|
||||||
|
|
||||||
export default defineComponent({
|
export default defineComponent({
|
||||||
name: 'ImagePreview',
|
name: 'ImagePreview',
|
||||||
components: {
|
components: {
|
||||||
|
@@ -33,7 +33,7 @@
|
|||||||
</Checkbox>
|
</Checkbox>
|
||||||
|
|
||||||
<a-button size="small" type="link" @click="reset">
|
<a-button size="small" type="link" @click="reset">
|
||||||
{{ t('component.table.settingReset') }}
|
{{ t('common.resetText') }}
|
||||||
</a-button>
|
</a-button>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
@@ -1,7 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<Tooltip placement="top">
|
<Tooltip placement="top">
|
||||||
<template #title>
|
<template #title>
|
||||||
<span>{{ t('component.table.settingRedo') }}</span>
|
<span>{{ t('common.redo') }}</span>
|
||||||
</template>
|
</template>
|
||||||
<RedoOutlined @click="redo" />
|
<RedoOutlined @click="redo" />
|
||||||
</Tooltip>
|
</Tooltip>
|
||||||
|
@@ -7,7 +7,7 @@
|
|||||||
|
|
||||||
<a-button color="warning" block @click="handleResetSetting" class="my-3">
|
<a-button color="warning" block @click="handleResetSetting" class="my-3">
|
||||||
<RedoOutlined class="mr-2" />
|
<RedoOutlined class="mr-2" />
|
||||||
{{ t('layout.setting.resetBtn') }}
|
{{ t('common.resetText') }}
|
||||||
</a-button>
|
</a-button>
|
||||||
|
|
||||||
<a-button color="error" block @click="handleClearAndRedo">
|
<a-button color="error" block @click="handleClearAndRedo">
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
<template>
|
<template>
|
||||||
<Tooltip :title="t('layout.multipleTab.tooltipRedo')" placement="bottom" :mouseEnterDelay="0.5">
|
<Tooltip :title="t('common.redo')" placement="bottom" :mouseEnterDelay="0.5">
|
||||||
<span :class="`${prefixCls}__extra-redo`" @click="handleRedo">
|
<span :class="`${prefixCls}__extra-redo`" @click="handleRedo">
|
||||||
<RedoOutlined :spin="loading" />
|
<RedoOutlined :spin="loading" />
|
||||||
</span>
|
</span>
|
||||||
|
@@ -51,7 +51,7 @@ export function useTabDropdown(tabContentProps: TabContentProps) {
|
|||||||
{
|
{
|
||||||
icon: 'ion:reload-sharp',
|
icon: 'ion:reload-sharp',
|
||||||
event: MenuEventEnum.REFRESH_PAGE,
|
event: MenuEventEnum.REFRESH_PAGE,
|
||||||
text: t('layout.multipleTab.redo'),
|
text: t('layout.multipleTab.reload'),
|
||||||
disabled: refreshDisabled,
|
disabled: refreshDisabled,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
17
src/locales/lang/en/common.ts
Normal file
17
src/locales/lang/en/common.ts
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
export default {
|
||||||
|
okText: 'OK',
|
||||||
|
closeText: 'Close',
|
||||||
|
cancelText: 'Cancel',
|
||||||
|
loadingText: 'Loading...',
|
||||||
|
saveText: 'Save',
|
||||||
|
delText: 'Delete',
|
||||||
|
resetText: 'Reset',
|
||||||
|
searchText: 'Search',
|
||||||
|
queryText: 'Search',
|
||||||
|
|
||||||
|
inputText: 'Please enter',
|
||||||
|
chooseText: 'Please choose',
|
||||||
|
|
||||||
|
redo: 'Refresh',
|
||||||
|
back: 'Back',
|
||||||
|
};
|
@@ -1,11 +1,5 @@
|
|||||||
export default {
|
export default {
|
||||||
search: 'Search',
|
|
||||||
cancel: 'Cancel',
|
|
||||||
searchNotData: 'No search results yet',
|
searchNotData: 'No search results yet',
|
||||||
toSearch: 'to search',
|
toSearch: 'to search',
|
||||||
toNavigate: 'to navigate',
|
toNavigate: 'to navigate',
|
||||||
toClose: 'to close',
|
|
||||||
|
|
||||||
okText: 'Confirm',
|
|
||||||
cancelText: 'Cancel',
|
|
||||||
};
|
};
|
||||||
|
@@ -1,5 +0,0 @@
|
|||||||
export default {
|
|
||||||
loadingText: 'Loading...',
|
|
||||||
cancelText: 'Close',
|
|
||||||
okText: 'Confirm',
|
|
||||||
};
|
|
@@ -1,12 +1,7 @@
|
|||||||
export default {
|
export default {
|
||||||
resetButton: 'Reset',
|
|
||||||
submitButton: 'Search',
|
|
||||||
putAway: 'Put away',
|
putAway: 'Put away',
|
||||||
unfold: 'Unfold',
|
unfold: 'Unfold',
|
||||||
|
|
||||||
input: 'Please Input ',
|
|
||||||
choose: 'Please Choose ',
|
|
||||||
|
|
||||||
maxTip: 'The number of characters should be less than {0}',
|
maxTip: 'The number of characters should be less than {0}',
|
||||||
|
|
||||||
apiSelectNotFound: 'Wait for data loading to complete...',
|
apiSelectNotFound: 'Wait for data loading to complete...',
|
||||||
|
@@ -1,3 +0,0 @@
|
|||||||
export default {
|
|
||||||
search: 'Menu search',
|
|
||||||
};
|
|
@@ -1,4 +0,0 @@
|
|||||||
export default {
|
|
||||||
cancelText: 'Close',
|
|
||||||
okText: 'Confirm',
|
|
||||||
};
|
|
@@ -1,5 +1,4 @@
|
|||||||
export default {
|
export default {
|
||||||
settingRedo: 'Refresh',
|
|
||||||
settingDens: 'Density',
|
settingDens: 'Density',
|
||||||
settingDensDefault: 'Default',
|
settingDensDefault: 'Default',
|
||||||
settingDensMiddle: 'Middle',
|
settingDensMiddle: 'Middle',
|
||||||
@@ -8,7 +7,6 @@ export default {
|
|||||||
settingColumnShow: 'Column display',
|
settingColumnShow: 'Column display',
|
||||||
settingIndexColumnShow: 'Index Column',
|
settingIndexColumnShow: 'Index Column',
|
||||||
settingSelectColumnShow: 'Selection Column',
|
settingSelectColumnShow: 'Selection Column',
|
||||||
settingReset: 'Reset',
|
|
||||||
settingFixedLeft: 'Fixed Left',
|
settingFixedLeft: 'Fixed Left',
|
||||||
settingFixedRight: 'Fixed Right',
|
settingFixedRight: 'Fixed Right',
|
||||||
settingFullScreen: 'Full Screen',
|
settingFullScreen: 'Full Screen',
|
||||||
|
@@ -3,7 +3,6 @@ export default {
|
|||||||
dropdownItemDoc: 'Document',
|
dropdownItemDoc: 'Document',
|
||||||
dropdownItemLoginOut: 'Login Out',
|
dropdownItemLoginOut: 'Login Out',
|
||||||
|
|
||||||
search: 'Search',
|
|
||||||
tooltipErrorLog: 'Error log',
|
tooltipErrorLog: 'Error log',
|
||||||
tooltipLock: 'Lock screen',
|
tooltipLock: 'Lock screen',
|
||||||
tooltipNotify: 'Notification',
|
tooltipNotify: 'Notification',
|
||||||
|
@@ -5,5 +5,4 @@ export default {
|
|||||||
closeRight: 'Close Right',
|
closeRight: 'Close Right',
|
||||||
closeOther: 'Close Other',
|
closeOther: 'Close Other',
|
||||||
closeAll: 'Close All',
|
closeAll: 'Close All',
|
||||||
tooltipRedo: 'Refresh',
|
|
||||||
};
|
};
|
||||||
|
@@ -26,7 +26,6 @@ export default {
|
|||||||
resetSuccess: 'Successfully reset!',
|
resetSuccess: 'Successfully reset!',
|
||||||
|
|
||||||
copyBtn: 'Copy',
|
copyBtn: 'Copy',
|
||||||
resetBtn: 'Reset',
|
|
||||||
clearBtn: 'Clear cache and to the login page',
|
clearBtn: 'Clear cache and to the login page',
|
||||||
|
|
||||||
drawerTitle: 'Configuration',
|
drawerTitle: 'Configuration',
|
||||||
|
@@ -1,7 +1,6 @@
|
|||||||
export default {
|
export default {
|
||||||
backLogin: 'Back Login',
|
backLogin: 'Back Login',
|
||||||
backHome: 'Back Home',
|
backHome: 'Back Home',
|
||||||
redo: 'Refresh',
|
|
||||||
subTitle403: "Sorry, you don't have access to this page.",
|
subTitle403: "Sorry, you don't have access to this page.",
|
||||||
subTitle404: 'Sorry, the page you visited does not exist.',
|
subTitle404: 'Sorry, the page you visited does not exist.',
|
||||||
subTitle500: 'Sorry, the server is reporting an error.',
|
subTitle500: 'Sorry, the server is reporting an error.',
|
||||||
|
@@ -2,7 +2,6 @@ export default {
|
|||||||
unlock: 'Click to unlock',
|
unlock: 'Click to unlock',
|
||||||
alert: 'Lock screen password error',
|
alert: 'Lock screen password error',
|
||||||
backToLogin: 'Back to login',
|
backToLogin: 'Back to login',
|
||||||
back: 'Back',
|
|
||||||
entry: 'Enter the system',
|
entry: 'Enter the system',
|
||||||
placeholder: 'Please enter the lock screen password or user password',
|
placeholder: 'Please enter the lock screen password or user password',
|
||||||
};
|
};
|
||||||
|
17
src/locales/lang/zh_CN/common.ts
Normal file
17
src/locales/lang/zh_CN/common.ts
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
export default {
|
||||||
|
okText: '确认',
|
||||||
|
closeText: '关闭',
|
||||||
|
cancelText: '取消',
|
||||||
|
loadingText: '加载中...',
|
||||||
|
saveText: '保存',
|
||||||
|
delText: '删除',
|
||||||
|
resetText: '重置',
|
||||||
|
searchText: '搜索',
|
||||||
|
queryText: '查询',
|
||||||
|
|
||||||
|
inputText: '请输入',
|
||||||
|
chooseText: '请选择',
|
||||||
|
|
||||||
|
redo: '刷新',
|
||||||
|
back: '返回',
|
||||||
|
};
|
@@ -1,10 +1,5 @@
|
|||||||
export default {
|
export default {
|
||||||
search: '搜索',
|
|
||||||
cancel: '取消',
|
|
||||||
searchNotData: '暂无搜索结果',
|
searchNotData: '暂无搜索结果',
|
||||||
toSearch: '确认',
|
toSearch: '确认',
|
||||||
toNavigate: '切换',
|
toNavigate: '切换',
|
||||||
toClose: '关闭',
|
|
||||||
okText: '确认',
|
|
||||||
cancelText: '取消',
|
|
||||||
};
|
};
|
||||||
|
@@ -1,5 +0,0 @@
|
|||||||
export default {
|
|
||||||
loadingText: '加载中...',
|
|
||||||
cancelText: '关闭',
|
|
||||||
okText: '确认',
|
|
||||||
};
|
|
@@ -1,12 +1,7 @@
|
|||||||
export default {
|
export default {
|
||||||
resetButton: '重置',
|
|
||||||
submitButton: '查询',
|
|
||||||
putAway: '收起',
|
putAway: '收起',
|
||||||
unfold: '展开',
|
unfold: '展开',
|
||||||
|
|
||||||
input: '请输入',
|
|
||||||
choose: '请选择',
|
|
||||||
|
|
||||||
maxTip: '字符数应小于{0}位',
|
maxTip: '字符数应小于{0}位',
|
||||||
|
|
||||||
apiSelectNotFound: '请等待数据加载完成...',
|
apiSelectNotFound: '请等待数据加载完成...',
|
||||||
|
@@ -1,3 +0,0 @@
|
|||||||
export default {
|
|
||||||
search: '菜单搜索',
|
|
||||||
};
|
|
@@ -1,4 +0,0 @@
|
|||||||
export default {
|
|
||||||
cancelText: '关闭',
|
|
||||||
okText: '确认',
|
|
||||||
};
|
|
@@ -1,12 +1,10 @@
|
|||||||
export default {
|
export default {
|
||||||
settingRedo: '刷新',
|
|
||||||
settingDens: '密度',
|
settingDens: '密度',
|
||||||
settingDensDefault: '默认',
|
settingDensDefault: '默认',
|
||||||
settingDensMiddle: '中等',
|
settingDensMiddle: '中等',
|
||||||
settingDensSmall: '紧凑',
|
settingDensSmall: '紧凑',
|
||||||
settingColumn: '列设置',
|
settingColumn: '列设置',
|
||||||
settingColumnShow: '列展示',
|
settingColumnShow: '列展示',
|
||||||
settingReset: '重置',
|
|
||||||
settingIndexColumnShow: '序号列',
|
settingIndexColumnShow: '序号列',
|
||||||
settingSelectColumnShow: '勾选列',
|
settingSelectColumnShow: '勾选列',
|
||||||
settingFixedLeft: '固定到左侧',
|
settingFixedLeft: '固定到左侧',
|
||||||
|
@@ -4,7 +4,6 @@ export default {
|
|||||||
dropdownItemLoginOut: '退出系统',
|
dropdownItemLoginOut: '退出系统',
|
||||||
|
|
||||||
// tooltip
|
// tooltip
|
||||||
search: '搜索',
|
|
||||||
tooltipErrorLog: '错误日志',
|
tooltipErrorLog: '错误日志',
|
||||||
tooltipLock: '锁定屏幕',
|
tooltipLock: '锁定屏幕',
|
||||||
tooltipNotify: '消息通知',
|
tooltipNotify: '消息通知',
|
||||||
|
@@ -1,9 +1,8 @@
|
|||||||
export default {
|
export default {
|
||||||
redo: '重新加载',
|
reload: '重新加载',
|
||||||
close: '关闭标签页',
|
close: '关闭标签页',
|
||||||
closeLeft: '关闭左侧标签页',
|
closeLeft: '关闭左侧标签页',
|
||||||
closeRight: '关闭右侧标签页',
|
closeRight: '关闭右侧标签页',
|
||||||
closeOther: '关闭其它标签页',
|
closeOther: '关闭其它标签页',
|
||||||
closeAll: '关闭全部标签页',
|
closeAll: '关闭全部标签页',
|
||||||
tooltipRedo: '刷新',
|
|
||||||
};
|
};
|
||||||
|
@@ -25,7 +25,6 @@ export default {
|
|||||||
resetSuccess: '重置成功!',
|
resetSuccess: '重置成功!',
|
||||||
|
|
||||||
copyBtn: '拷贝',
|
copyBtn: '拷贝',
|
||||||
resetBtn: '重置',
|
|
||||||
clearBtn: '清空缓存并返回登录页',
|
clearBtn: '清空缓存并返回登录页',
|
||||||
|
|
||||||
drawerTitle: '项目配置',
|
drawerTitle: '项目配置',
|
||||||
|
@@ -1,7 +1,6 @@
|
|||||||
export default {
|
export default {
|
||||||
backLogin: '返回登录',
|
backLogin: '返回登录',
|
||||||
backHome: '返回首页',
|
backHome: '返回首页',
|
||||||
redo: '刷新',
|
|
||||||
subTitle403: '抱歉,您无权访问此页面。',
|
subTitle403: '抱歉,您无权访问此页面。',
|
||||||
subTitle404: '抱歉,您访问的页面不存在。',
|
subTitle404: '抱歉,您访问的页面不存在。',
|
||||||
subTitle500: '抱歉,服务器报告错误。',
|
subTitle500: '抱歉,服务器报告错误。',
|
||||||
|
@@ -1,7 +1,6 @@
|
|||||||
export default {
|
export default {
|
||||||
unlock: '点击解锁',
|
unlock: '点击解锁',
|
||||||
alert: '锁屏密码错误',
|
alert: '锁屏密码错误',
|
||||||
back: '返回',
|
|
||||||
backToLogin: '返回登录',
|
backToLogin: '返回登录',
|
||||||
entry: '进入系统',
|
entry: '进入系统',
|
||||||
placeholder: '请输入锁屏密码或者用户密码',
|
placeholder: '请输入锁屏密码或者用户密码',
|
||||||
|
@@ -97,7 +97,7 @@ export default defineComponent({
|
|||||||
unref(statusMapRef).set(ExceptionEnum.PAGE_NOT_DATA, {
|
unref(statusMapRef).set(ExceptionEnum.PAGE_NOT_DATA, {
|
||||||
title: t('sys.exception.noDataTitle'),
|
title: t('sys.exception.noDataTitle'),
|
||||||
subTitle: '',
|
subTitle: '',
|
||||||
btnText: t('sys.exception.redo'),
|
btnText: t('common.redo'),
|
||||||
handler: () => redo(),
|
handler: () => redo(),
|
||||||
icon: notDataImg,
|
icon: notDataImg,
|
||||||
});
|
});
|
||||||
|
@@ -31,7 +31,7 @@
|
|||||||
:disabled="loadingRef"
|
:disabled="loadingRef"
|
||||||
@click="handleShowForm(true)"
|
@click="handleShowForm(true)"
|
||||||
>
|
>
|
||||||
{{ t('sys.lock.back') }}
|
{{ t('common.back') }}
|
||||||
</a-button>
|
</a-button>
|
||||||
<a-button
|
<a-button
|
||||||
type="link"
|
type="link"
|
||||||
|
@@ -7835,10 +7835,10 @@ vite-plugin-pwa@^0.3.5:
|
|||||||
pretty-bytes "^5.5.0"
|
pretty-bytes "^5.5.0"
|
||||||
workbox-build "^6.0.2"
|
workbox-build "^6.0.2"
|
||||||
|
|
||||||
vite@^2.0.0-beta.22:
|
vite@^2.0.0-beta.23:
|
||||||
version "2.0.0-beta.22"
|
version "2.0.0-beta.23"
|
||||||
resolved "https://registry.npmjs.org/vite/-/vite-2.0.0-beta.22.tgz#c33a4689fe1659bfdc87a36b9e8527baea0e3119"
|
resolved "https://registry.npmjs.org/vite/-/vite-2.0.0-beta.23.tgz#9cbbfc85c5737f5bdee4784c7b838365852396f7"
|
||||||
integrity sha512-Mj9qTSYx0625htRTClQV4OLQhjhujgHCV/FStGNu8G9NcHp3MP56gc6+UoRgQzrAsK8HI9MKfcW+NFgljoJKyA==
|
integrity sha512-vrQ56VBUCSjNFgx6DapDXMo6fkW2s3S7zmxWCIEE2ZiAbxoTQCic+NveTiMRA4+JF29ZQf00tzsAri6BIzi9VA==
|
||||||
dependencies:
|
dependencies:
|
||||||
esbuild "^0.8.26"
|
esbuild "^0.8.26"
|
||||||
postcss "^8.2.1"
|
postcss "^8.2.1"
|
||||||
|
Reference in New Issue
Block a user