refactor: switch to free-trial/private-deploy/buyout pricing, fix feature gaps, add SEO landing + deploy config
This commit is contained in:
@@ -29,8 +29,11 @@ export function searchUsers(query) { return http.post('/admin/users/search', { q
|
||||
export function listUsers(page = 1, size = 20) { return http.get('/admin/users', { params: { page, size } }) }
|
||||
export function getUserDetail(id) { return http.get(`/admin/users/${id}`) }
|
||||
export function updateUser(id, data) { return http.put(`/admin/users/${id}`, data) }
|
||||
export function updateUserTier(id, tier) { return http.patch(`/admin/users/${id}/tier`, { tier }) }
|
||||
export function toggleUserActive(id) { return http.post(`/admin/users/${id}/toggle-active`) }
|
||||
export function updateUserRole(id, role) { return http.patch(`/admin/users/${id}/role`, { role }) }
|
||||
|
||||
export function getUsageStats() { return http.get('/admin/stats/usage') }
|
||||
export function getUsageStats() { return http.get('/admin/usage-stats') }
|
||||
|
||||
export function listLogs(params) { return http.get('/admin/logs', { params }) }
|
||||
|
||||
|
||||
@@ -65,7 +65,7 @@
|
||||
<script setup>
|
||||
import { ref, onMounted } from 'vue'
|
||||
import { ElMessage } from 'element-plus'
|
||||
import { listUsers, searchUsers, updateUser } from '@/api'
|
||||
import { listUsers, searchUsers, updateUserTier, toggleUserActive, updateUserRole } from '@/api'
|
||||
|
||||
const loading = ref(false)
|
||||
const searching = ref(false)
|
||||
@@ -97,16 +97,16 @@ async function doSearch() {
|
||||
}
|
||||
|
||||
async function changeTier(row, tier) {
|
||||
try { await updateUser(row.id, { tier }); row.tier = tier; ElMessage.success('已更新') }
|
||||
try { await updateUserTier(row.id, tier); row.tier = tier; ElMessage.success('已更新') }
|
||||
catch (e) { ElMessage.error(e?.detail || '操作失败') }
|
||||
}
|
||||
async function toggleActive(row) {
|
||||
try { await updateUser(row.id, { is_active: !row.is_active }); row.is_active = !row.is_active; ElMessage.success('已更新') }
|
||||
try { await toggleUserActive(row.id); row.is_active = !row.is_active; ElMessage.success('已更新') }
|
||||
catch (e) { ElMessage.error(e?.detail || '操作失败') }
|
||||
}
|
||||
async function toggleRole(row) {
|
||||
const role = row.role === 'admin' ? 'user' : 'admin'
|
||||
try { await updateUser(row.id, { role }); row.role = role; ElMessage.success('已更新') }
|
||||
try { await updateUserRole(row.id, role); row.role = role; ElMessage.success('已更新') }
|
||||
catch (e) { ElMessage.error(e?.detail || '操作失败') }
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user