diff --git a/web/src/components/ChannelsTable.js b/web/src/components/ChannelsTable.js index 0d2ed57..ebfcf4d 100644 --- a/web/src/components/ChannelsTable.js +++ b/web/src/components/ChannelsTable.js @@ -254,6 +254,19 @@ const ChannelsTable = () => { > 编辑 + { + copySelectedChannel(record.id); + }} + > + + ), }, @@ -340,6 +353,31 @@ const ChannelsTable = () => { setLoading(false); }; + const copySelectedChannel = async (id) => { + const channelToCopy = channels.find(channel => String(channel.id) === String(id)); + console.log(channelToCopy) + channelToCopy.name += '_复制'; + channelToCopy.created_time = null; + channelToCopy.balance = 0; + channelToCopy.used_quota = 0; + if (!channelToCopy) { + showError("渠道未找到,请刷新页面后重试。"); + return; + } + try { + const newChannel = {...channelToCopy, id: undefined}; + const response = await API.post('/api/channel/', newChannel); + if (response.data.success) { + showSuccess("渠道复制成功"); + await refresh(); + } else { + showError(response.data.message); + } + } catch (error) { + showError("渠道复制失败: " + error.message); + } + }; + const refresh = async () => { await loadChannels(activePage - 1, pageSize, idSort); };