后台新增获取游戏连接按钮

This commit is contained in:
2026-04-28 11:06:56 +08:00
parent a7b2f2cd91
commit 63db23df2d
7 changed files with 134 additions and 4 deletions

View File

@@ -64,7 +64,14 @@
</template>
<!-- 操作 -->
<template #operation="{ row }">
<div class="flex gap-2">
<div class="flex items-center justify-center gap-1">
<SaButton
v-permission="'dice:player:index:getGameUrl'"
type="success"
icon="ri:links-line"
:tool-tip="$t('page.table.getGameLink')"
@click="handleGetGameUrl(row)"
/>
<SaButton
v-permission="'dice:player:index:update'"
type="secondary"
@@ -98,6 +105,8 @@
</template>
<script setup lang="ts">
import { ElMessage } from 'element-plus'
import { useClipboard } from '@vueuse/core'
import { useI18n } from 'vue-i18n'
import { useTable } from '@/hooks/core/useTable'
import { useSaiAdmin } from '@/composables/useSaiAdmin'
@@ -107,6 +116,7 @@
import WalletOperateDialog from './modules/WalletOperateDialog.vue'
const { t } = useI18n()
const { copy } = useClipboard()
// 搜索表单
const searchForm = ref({
@@ -221,7 +231,7 @@
{
prop: 'operation',
label: 'table.actions.operation',
width: 100,
width: 132,
align: 'center',
fixed: 'right',
useSlot: true
@@ -268,4 +278,21 @@
}
walletDialogVisible.value = true
}
async function handleGetGameUrl(row: Record<string, any>) {
try {
const res = await api.getGameUrl({ id: row.id })
const url =
typeof res?.url === 'string' ? res.url : typeof res?.data?.url === 'string' ? res.data.url : ''
if (!url) {
ElMessage.warning(t('page.table.getGameLinkFail'))
return
}
await copy(url)
ElMessage.success(t('page.table.getGameLinkSuccess'))
} catch (e: any) {
const msg = typeof e?.message === 'string' && e.message !== '' ? e.message : t('page.table.getGameLinkFail')
ElMessage.warning(msg)
}
}
</script>