认证Token
-
-
已设置
-
未设置
+
+ {{ tokenVisible ? (serviceInfo.Token || serviceInfo.token) : '••••••••••••' }}
+
+
+
+
+
+
+
+
+ 未设置
@@ -134,7 +142,7 @@
import { ref, reactive, computed, provide, onMounted, onActivated, watch } from 'vue'
import { useRoute, useRouter } from 'vue-router'
import { ElMessage, ElMessageBox } from 'element-plus'
-import { ArrowLeft, Refresh, Edit, Delete, Monitor } from '@element-plus/icons-vue'
+import { ArrowLeft, Refresh, Edit, Delete, Monitor, View, Hide, CopyDocument } from '@element-plus/icons-vue'
import {
getKvmServiceDetail, updateKvmService, deleteKvmService
} from '@/api/admin/kvmService'
@@ -241,6 +249,29 @@ const goBack = () => {
router.push('/virtualization/kvm-service')
}
+// Token 显示/复制
+const tokenVisible = ref(false)
+const copyToken = () => {
+ const token = serviceInfo.value.Token || serviceInfo.value.token
+ if (!token) return
+ const textarea = document.createElement('textarea')
+ textarea.value = token
+ textarea.style.position = 'fixed'
+ textarea.style.opacity = '0'
+ document.body.appendChild(textarea)
+ textarea.select()
+ try {
+ document.execCommand('copy')
+ ElMessage.success('Token 已复制到剪贴板')
+ } catch {
+ ElMessage.error('复制失败')
+ } finally {
+ document.body.removeChild(textarea)
+ }
+}
+
+
+
// 编辑服务
const editDialogVisible = ref(false)
const formRef = ref(null)
@@ -482,6 +513,23 @@ onMounted(() => {
color: #303133;
}
+.token-text {
+ font-family: monospace;
+ font-size: 12px;
+ color: #606266;
+ background: #f5f7fa;
+ padding: 2px 8px;
+ border-radius: 4px;
+ user-select: all;
+ word-break: break-all;
+ max-width: 180px;
+ display: inline-block;
+ vertical-align: middle;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+}
+
.note-value {
font-weight: 400;
font-size: 13px;
diff --git a/src/views/virtualization/NetworkManage.vue b/src/views/virtualization/NetworkManage.vue
index 570867d..bb15a14 100644
--- a/src/views/virtualization/NetworkManage.vue
+++ b/src/views/virtualization/NetworkManage.vue
@@ -10,11 +10,13 @@