Browse Source

feat: 在多语言配置使用tree的接口调用和缓存

huangqizheng/feature-20251213090502-现金退款多语言
zhangrenyuan 1 month ago
parent
commit
8624adae7d
  1. 2
      src/views/consume/gold/addCoinConsume.vue
  2. 57
      src/views/language/languageTranslate.vue

2
src/views/consume/gold/addCoinConsume.vue

@ -577,7 +577,7 @@ onMounted(async function () {
<p style="margin-right: 20px">&nbsp;&nbsp;{{ $t('common.个') }}</p>
</el-form-item>
<el-form-item prop="remark" label="备注">
<el-form-item prop="remark" :label="t('common_add.remark')">
<el-input v-model="addConsume.remark" style="width: 250px" :rows="4" maxlength="100" show-word-limit
type="textarea" />
</el-form-item>

57
src/views/language/languageTranslate.vue

@ -29,7 +29,7 @@
</template>
</el-table-column>
<el-table-column prop="chineseSimplified" label="原文(中文)" width="180px" >
<el-table-column prop="chineseSimplified" label="原文(中文)" width="180px">
<template #default="scope">
<el-tooltip :content="scope.row.chineseSimplified" placement="top"
v-if="scope.row.chineseSimplified && scope.row.chineseSimplified.length > 20">
@ -49,7 +49,8 @@
</el-tooltip>
<span v-else>{{ scope.row.english }}</span>
</div>
<el-tag :type="scope.row.english ? 'success' : 'info'" size="small" style="margin-left: 8px;">
<el-tag :type="scope.row.english ? 'success' : 'info'" size="small"
style="margin-left: 8px;">
{{ scope.row.english ? '已翻译' : '未翻译' }}
</el-tag>
</div>
@ -83,7 +84,8 @@
</el-tooltip>
<span v-else>{{ scope.row.chineseTraditional }}</span>
</div>
<el-tag :type="scope.row.chineseTraditional ? 'success' : 'info'" size="small" style="margin-left: 8px;">
<el-tag :type="scope.row.chineseTraditional ? 'success' : 'info'" size="small"
style="margin-left: 8px;">
{{ scope.row.chineseTraditional ? '已翻译' : '未翻译' }}
</el-tag>
</div>
@ -117,7 +119,8 @@
</el-tooltip>
<span v-else>{{ scope.row.vietnamese }}</span>
</div>
<el-tag :type="scope.row.vietnamese ? 'success' : 'info'" size="small" style="margin-left: 8px;">
<el-tag :type="scope.row.vietnamese ? 'success' : 'info'" size="small"
style="margin-left: 8px;">
{{ scope.row.vietnamese ? '已翻译' : '未翻译' }}
</el-tag>
</div>
@ -151,13 +154,8 @@
</el-card>
<!-- 确认删除对话框 -->
<ConfirmDialog
v-model="showDeleteDialog"
message="删除该翻译记录!"
@confirm="handleDeleteConfirm"
@cancel="handleDeleteCancel"
@close="handleDeleteClose"
/>
<ConfirmDialog v-model="showDeleteDialog" message="删除该翻译记录!" @confirm="handleDeleteConfirm"
@cancel="handleDeleteCancel" @close="handleDeleteClose" />
<!-- 编辑对话框 -->
<el-dialog v-model="showEditDialog" :title="editForm.id ? '编辑翻译' : '新增翻译'" width="30vw" draggable>
@ -175,8 +173,7 @@
</el-form-item>
<el-form-item label="繁体中文:">
<el-input v-model="editForm.chineseTraditional" placeholder="请输入繁体中文翻译"
show-word-limit />
<el-input v-model="editForm.chineseTraditional" placeholder="请输入繁体中文翻译" show-word-limit />
</el-form-item>
<el-form-item label="马来语:">
@ -222,6 +219,11 @@ import API from "@/util/http.js"
import moment from 'moment'
import { UploadFilled } from '@element-plus/icons-vue'
import ConfirmDialog from '@/components/dialogs/ConfirmDialog.vue'
// AdminStore
import { useAdminStore } from '@/store/index.js';
import { storeToRefs } from "pinia";
const adminStore = useAdminStore();
const { adminData } = storeToRefs(adminStore);
//
const tableData = ref([])
@ -334,6 +336,30 @@ const handleAdd = () => {
showEditDialog.value = true
}
const getMenuTree = async function () {
//
try {
const result = await request({
url: '/menu/tree',
data: {
id: adminData.value.roleId,
}
})
if (result.code === 200) {
adminStore.setMenuTree(result.data)
}
return result.data //
} catch (error) {
console.error('菜单数据请求失败:', error)
// return { code: 500, msg: '' }
ElMessage.error('网络异常')
adminStore.clearState()
}
}
//
const handleSave = async () => {
//
@ -373,6 +399,8 @@ const handleSave = async () => {
console.error('保存失败:', error)
ElMessage.error('保存失败')
}
//
await getMenuTree()
}
// -
@ -400,6 +428,8 @@ const handleDeleteConfirm = async () => {
showDeleteDialog.value = false
currentDeleteRow.value = null
}
//
await getMenuTree()
}
//
@ -512,6 +542,7 @@ onMounted(() => {
align-items: center;
gap: 4px;
margin-bottom: 1vh;
.add-item-export {
background-color: #5870FF;
color: white;

Loading…
Cancel
Save