From 7c2bffa1a495cc4a3a263f654c08c231009c5c4e Mon Sep 17 00:00:00 2001
From: zhou zhou <3272660260@qq.com>
Date: 星期四, 02 四月 2026 10:59:45 +0800
Subject: [PATCH] #i18n
---
rsf-design/src/views/system/role/modules/role-permission-dialog.vue | 35 +++++++++++++++++++++--------------
1 files changed, 21 insertions(+), 14 deletions(-)
diff --git a/rsf-design/src/views/system/role/modules/role-permission-dialog.vue b/rsf-design/src/views/system/role/modules/role-permission-dialog.vue
index ccc6c63..8d8909a 100644
--- a/rsf-design/src/views/system/role/modules/role-permission-dialog.vue
+++ b/rsf-design/src/views/system/role/modules/role-permission-dialog.vue
@@ -1,14 +1,14 @@
<template>
<ElDrawer
:model-value="visible"
- title="瑙掕壊鏉冮檺"
+ :title="t('pages.system.role.permission.title')"
size="860px"
destroy-on-close
@update:model-value="handleVisibleChange"
@closed="handleClosed"
>
<div class="mb-4 text-sm text-[var(--art-text-secondary)]">
- 褰撳墠瑙掕壊锛歿{ roleLabel }}
+ {{ t('pages.system.role.permission.currentRole') }}{{ roleLabel }}
</div>
<ElTabs v-model="activeScopeType" class="role-scope-tabs">
@@ -24,21 +24,21 @@
<div v-else class="space-y-3">
<div class="flex items-center justify-between gap-3">
<ElSpace wrap>
- <ElButton @click="handleSelectAll(config.scopeType)">鍏ㄩ��</ElButton>
- <ElButton @click="handleClear(config.scopeType)">娓呯┖</ElButton>
+ <ElButton @click="handleSelectAll(config.scopeType)">{{ t('pages.system.role.permission.selectAll') }}</ElButton>
+ <ElButton @click="handleClear(config.scopeType)">{{ t('pages.system.role.permission.clear') }}</ElButton>
</ElSpace>
- <ElButton type="primary" @click="handleSave(config.scopeType)">淇濆瓨褰撳墠鏉冮檺</ElButton>
+ <ElButton type="primary" @click="handleSave(config.scopeType)">{{ t('pages.system.role.permission.saveCurrent') }}</ElButton>
</div>
<div class="flex items-center gap-3">
<ElInput
v-model.trim="scopeState[config.scopeType].condition"
clearable
- placeholder="鎼滅储鏉冮檺鏍�"
+ :placeholder="t('pages.system.role.permission.searchPlaceholder')"
@clear="handleSearch(config.scopeType)"
@keyup.enter="handleSearch(config.scopeType)"
/>
- <ElButton @click="handleSearch(config.scopeType)">鎼滅储</ElButton>
+ <ElButton @click="handleSearch(config.scopeType)">{{ t('common.actions.search') }}</ElButton>
</div>
<ElScrollbar height="56vh">
@@ -56,7 +56,7 @@
<div class="flex items-center gap-2">
<span>{{ resolveScopeNodeLabel(data) }}</span>
<ElTag v-if="data.isAuthButton" type="info" effect="plain" size="small">
- 鎸夐挳
+ {{ t('pages.system.role.permission.authButton') }}
</ElTag>
</div>
</template>
@@ -78,8 +78,10 @@
} from '../rolePage.helpers'
import { fetchGetRoleScopeList, fetchGetRoleScopeTree, fetchUpdateRoleScope } from '@/api/system-manage'
import { resolveBackendMenuTitle } from '@/utils/backend-menu-title'
+ import { formatMenuTitle } from '@/utils/router'
import { guardRequestWithMessage } from '@/utils/sys/requestGuard'
import { ElMessage } from 'element-plus'
+ import { useI18n } from 'vue-i18n'
const props = defineProps({
visible: { required: false, default: false },
@@ -88,6 +90,7 @@
})
const emit = defineEmits(['update:visible', 'success'])
+ const { t } = useI18n()
const scopeConfigs = ['menu', 'pda', 'matnr', 'warehouse'].map((scopeType) => getRoleScopeConfig(scopeType))
const activeScopeType = ref(props.scopeType || 'menu')
@@ -103,7 +106,7 @@
set: (value) => emit('update:visible', value)
})
- const roleLabel = computed(() => props.roleData?.name || props.roleData?.code || '鏈�夋嫨瑙掕壊')
+ const roleLabel = computed(() => props.roleData?.name || props.roleData?.code || t('pages.system.role.permission.unselected'))
function createScopeTabState() {
return {
@@ -138,7 +141,7 @@
Promise.all([selectionRequest, treeRequest]),
null,
{
- timeoutMessage: `${config.title}鍔犺浇瓒呮椂锛屽凡鍋滄绛夊緟`
+ timeoutMessage: t('pages.system.role.permission.scopeLoadTimeout', { title: config.title })
}
)
if (!guardedResult) {
@@ -154,7 +157,7 @@
state.halfCheckedKeys = []
state.loaded = true
} catch (error) {
- ElMessage.error(error?.message || `鍔犺浇${config.title}澶辫触`)
+ ElMessage.error(error?.message || t('pages.system.role.permission.scopeLoadFailed', { title: config.title }))
} finally {
state.loading = false
nextTick(() => {
@@ -215,11 +218,11 @@
scopeState[scopeType].halfCheckedKeys
)
)
- ElMessage.success('鏉冮檺淇濆瓨鎴愬姛')
+ ElMessage.success(t('pages.system.role.permission.saveSuccess'))
emit('success')
visible.value = false
} catch (error) {
- ElMessage.error(error?.message || '鏉冮檺淇濆瓨澶辫触')
+ ElMessage.error(error?.message || t('pages.system.role.permission.saveFailed'))
}
}
@@ -236,7 +239,11 @@
if (!rawLabel) {
return ''
}
- return resolveBackendMenuTitle(rawLabel)
+ if (activeScopeType.value === 'menu') {
+ const resolvedTitle = resolveBackendMenuTitle(rawLabel, data?.component || '')
+ return resolvedTitle ? formatMenuTitle(resolvedTitle) : ''
+ }
+ return rawLabel
}
const handleClosed = () => {
--
Gitblit v1.9.1