diff --git a/d/gold_vue/gold-vue/src/views/language/languageTranslate.vue b/d/gold_vue/gold-vue/src/views/language/languageTranslate.vue new file mode 100644 index 0000000..e69de29 diff --git a/src/views/language/languageTranslate.vue b/src/views/language/languageTranslate.vue index 924993d..e3af635 100644 --- a/src/views/language/languageTranslate.vue +++ b/src/views/language/languageTranslate.vue @@ -18,7 +18,8 @@
添加 - 批量导入 + +
@@ -188,7 +189,9 @@ @@ -246,6 +249,9 @@ const showImportDialog = ref(false) const showDeleteDialog = ref(false) const currentDeleteRow = ref(null) // 当前要删除的行数据 +// 添加保存按钮加载状态 +const saveLoading = ref(false) + const editForm = ref({ id: '', chineseSimplified: '', @@ -357,17 +363,15 @@ const getMenuTree = async function () { // 保存翻译 const handleSave = async () => { - // 原文必填校验 - if (!editForm.value.chineseSimplified || editForm.value.chineseSimplified.trim() === '') { - ElMessage.error('原文为必填项') - return - } + // 设置保存按钮为加载状态 + saveLoading.value = true // 纯文本校验 const fields = ['english', 'thai', 'chineseTraditional', 'malay', 'vietnamese'] for (const field of fields) { if (editForm.value[field] && /<[^>]*>/.test(editForm.value[field])) { ElMessage.error('译文仅支持纯文本,不支持HTML标签') + saveLoading.value = false // 校验失败,恢复按钮状态 return } } @@ -379,10 +383,18 @@ const handleSave = async () => { data: editForm.value }) + // 点击保存后,刷新菜单树 + await getMenuTree() + if (res.code === 200) { ElMessage.success(editForm.value.id ? '编辑成功' : '添加成功') showEditDialog.value = false - getTranslationList() + // getTranslationList() + + // 触发页面刷新以重新加载数据 + setTimeout(() => { + window.location.reload() + }, 500) } else if (res.code === 0) { // 处理后端返回的错误信息 ElMessage.error(res.msg || '操作失败') @@ -393,9 +405,10 @@ const handleSave = async () => { } catch (error) { console.error('保存失败:', error) ElMessage.error('保存失败') + } finally { + // 无论成功还是失败,都恢复按钮状态 + saveLoading.value = false } - // 点击保存后,刷新菜单树 - await getMenuTree() } // 删除翻译 - 打开确认对话框 @@ -412,9 +425,15 @@ const handleDeleteConfirm = async () => { data: { id: currentDeleteRow.value.id } }) + // 点击删除后,刷新菜单树 + await getMenuTree() if (res.code === 200) { ElMessage.success('删除成功') - getTranslationList() + // getTranslationList() + // 触发页面刷新以重新加载数据 + setTimeout(() => { + window.location.reload() + }, 500) } } catch (error) { console.error('删除失败:', error) diff --git a/src/views/refund/gold/addCoinRefund.vue b/src/views/refund/gold/addCoinRefund.vue index b50c922..8382f67 100644 --- a/src/views/refund/gold/addCoinRefund.vue +++ b/src/views/refund/gold/addCoinRefund.vue @@ -73,7 +73,7 @@ const getRefund = async function () { addRefund.value.freeGold = '' addRefund.value.taskGold = '' let type = null - if (addRefund.value.refundType === t('refund.refundTypeOptions.商品退款')) { + if (addRefund.value.refundType === '商品退款') { type = 1 } else { type = 0 @@ -121,7 +121,7 @@ const add = async function () { return } try { - if (addRefund.value.refundType === t('refund.refundTypeOptions.商品退款')) { + if (addRefund.value.refundType === '商品退款') { addRefund.value.type = 1 } else { addRefund.value.type = 0 @@ -296,7 +296,7 @@ const handleOrderChange = (orderCode) => { const order = tableData.value.find(item => item.orderCode === orderCode) if (order) { addRefund.value.goodsName = order.goodsName - if (addRefund.value.refundType === t('refund.refundTypeOptions.金币退款')) { + if (addRefund.value.refundType === '金币退款') { selectedGoodsGold.value = { permanentGold: Number(order.permanentGold) || 0, freeGold: Number(order.freeGold) || 0, @@ -395,7 +395,7 @@ const handleGoldInput = (type, value) => { // 修正为最大值并设置回输入框 const correctedValue = maxValue.toFixed(2); addRefund.value[type] = correctedValue; - ElMessage.warning(t('elmessage.limitBalance')); + // ElMessage.warning(t('elmessage.limitBalance')); } if (inputValue < 0) { @@ -464,8 +464,8 @@ onMounted(() =>{ - {{ $t('common_add.refundModelAll') }} - {{ $t('common_add.refundModelPart') }} + {{ $t('refund.refundMethods.allRefund') }} + {{ $t('refund.refundMethods.partialRefund') }}