xx
This commit is contained in:
@@ -304,23 +304,37 @@
|
||||
</el-dialog>
|
||||
|
||||
<!-- Token 展示对话框 -->
|
||||
<el-dialog v-model="tokenDialogVisible" title="模拟登录 Token" width="600px" append-to-body>
|
||||
<el-dialog v-model="tokenDialogVisible" title="模拟登录" width="450px" append-to-body>
|
||||
<div class="token-container">
|
||||
<el-alert type="success" :closable="false" show-icon class="token-alert">
|
||||
<template #default>
|
||||
<span>Token 生成成功,请妥善保管。</span>
|
||||
</template>
|
||||
</el-alert>
|
||||
<div class="token-box">
|
||||
<el-input v-model="loginToken" type="textarea" :rows="4" readonly class="token-input" />
|
||||
<div class="token-actions">
|
||||
<el-button type="primary" link :icon="CopyDocument" @click="copyToken">复制</el-button>
|
||||
</div>
|
||||
</div>
|
||||
<el-form label-width="100px">
|
||||
<el-form-item label="选择环境">
|
||||
<el-select v-model="selectedEnvironment" placeholder="请选择登录环境" size="large" style="width: 100%">
|
||||
<el-option label="正式环境" value="production">
|
||||
<div class="env-option">
|
||||
<span>正式环境</span>
|
||||
<span class="env-url">www.007yjs.com</span>
|
||||
</div>
|
||||
</el-option>
|
||||
<el-option label="测试环境" value="test">
|
||||
<div class="env-option">
|
||||
<span>测试环境</span>
|
||||
<span class="env-url">apiserver.s1f.ren</span>
|
||||
</div>
|
||||
</el-option>
|
||||
<el-option label="本地环境" value="local">
|
||||
<div class="env-option">
|
||||
<span>本地环境</span>
|
||||
<span class="env-url">localhost:5173</span>
|
||||
</div>
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
<template #footer>
|
||||
<div class="dialog-footer">
|
||||
<el-button @click="tokenDialogVisible = false">关闭</el-button>
|
||||
<el-button @click="tokenDialogVisible = false">取消</el-button>
|
||||
<el-button type="primary" @click="confirmJump" :disabled="!selectedEnvironment">确认跳转</el-button>
|
||||
</div>
|
||||
</template>
|
||||
</el-dialog>
|
||||
@@ -364,7 +378,7 @@ import AvatarSelector from '@/components/admin/AvatarSelector.vue'
|
||||
import {
|
||||
ArrowLeft, Refresh, Edit as EditIcon, Delete, Wallet, Avatar, Lock,
|
||||
UserFilled, Document, Clock, List, Switch, User, Camera, Upload,
|
||||
UploadFilled, Key, CopyDocument
|
||||
UploadFilled, Key, Monitor, Setting
|
||||
} from '@element-plus/icons-vue'
|
||||
import { getUserGroupList } from '@/api/admin/user'
|
||||
import { getFileDetail, getFileList, getFile, uploadFile } from '@/api/admin/file'
|
||||
@@ -465,6 +479,15 @@ const realnameForm = reactive({
|
||||
// Token 展示相关
|
||||
const tokenDialogVisible = ref(false)
|
||||
const loginToken = ref('')
|
||||
const loginExpire = ref('')
|
||||
const selectedEnvironment = ref('')
|
||||
|
||||
// 环境配置
|
||||
const environments = {
|
||||
production: 'https://www.007yjs.com',
|
||||
test: 'https://apiserver.s1f.ren',
|
||||
local: 'http://localhost:5173'
|
||||
}
|
||||
|
||||
// 管理员权限管理相关
|
||||
const adminDialogVisible = ref(false)
|
||||
@@ -729,8 +752,10 @@ const handleSimulateLogin = async () => {
|
||||
const res = await mockUserLogin({ user_id: userInfo.value.UserId })
|
||||
if (res.data.code === 200) {
|
||||
loginToken.value = res.data.data.token || ''
|
||||
loginExpire.value = res.data.data.expire_time || ''
|
||||
selectedEnvironment.value = ''
|
||||
tokenDialogVisible.value = true
|
||||
ElMessage.success('模拟登录成功')
|
||||
//ElMessage.success('模拟登录成功')
|
||||
} else {
|
||||
ElMessage.error(res.data.message || '模拟登录失败')
|
||||
}
|
||||
@@ -739,14 +764,18 @@ const handleSimulateLogin = async () => {
|
||||
}
|
||||
}
|
||||
|
||||
// 复制 Token
|
||||
const copyToken = async () => {
|
||||
try {
|
||||
await navigator.clipboard.writeText(loginToken.value)
|
||||
ElMessage.success('Token 已复制到剪贴板')
|
||||
} catch (err) {
|
||||
ElMessage.error('复制失败,请手动复制')
|
||||
// 确认跳转
|
||||
const confirmJump = () => {
|
||||
if (!selectedEnvironment.value) {
|
||||
ElMessage.warning('请选择登录环境')
|
||||
return
|
||||
}
|
||||
const baseUrl = environments[selectedEnvironment.value]
|
||||
const url = `${baseUrl}/token-login?token=${loginToken.value}&expire=${loginExpire.value}`
|
||||
window.open(url, '_blank')
|
||||
const envName = selectedEnvironment.value === 'production' ? '正式' : selectedEnvironment.value === 'test' ? '测试' : '本地'
|
||||
ElMessage.success(`正在跳转到${envName}环境`)
|
||||
tokenDialogVisible.value = false
|
||||
}
|
||||
|
||||
// 获取实名状态文本
|
||||
@@ -1166,6 +1195,28 @@ onActivated(() => {
|
||||
font-size: 13px;
|
||||
}
|
||||
|
||||
/* Token Dialog */
|
||||
.token-container {
|
||||
padding: 20px 0;
|
||||
}
|
||||
|
||||
.env-option {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
padding: 4px 0;
|
||||
}
|
||||
|
||||
.env-option span:first-child {
|
||||
font-size: 14px;
|
||||
color: #303133;
|
||||
}
|
||||
|
||||
.env-url {
|
||||
font-size: 12px;
|
||||
color: #909399;
|
||||
}
|
||||
|
||||
/* Responsive */
|
||||
@media (max-width: 1024px) {
|
||||
.detail-grid {
|
||||
|
||||
Reference in New Issue
Block a user