diff --git a/src/components/cards/UserCard.vue b/src/components/cards/UserCard.vue index 2ef103bd..66a4a0b4 100644 --- a/src/components/cards/UserCard.vue +++ b/src/components/cards/UserCard.vue @@ -6,6 +6,7 @@ import avatar1 from '@images/avatars/avatar-1.png' import { useToast } from 'vue-toast-notification' import { useConfirm } from 'vuetify-use-dialog' import { hasPermission } from '@/@core/utils/permission' +import UserAddEditDialog from '@/components/dialog/UserAddEditDialog.vue' // 定义输入变量 const props = defineProps({ @@ -24,6 +25,9 @@ const emit = defineEmits(['remove']) // 确认框 const createConfirm = useConfirm() +// 用户信息弹窗 +const userEditDialog = ref(false) + // 提示框 const $toast = useToast() @@ -54,7 +58,7 @@ async function removeUser() { content: `删除用户 ${props.user?.name} 的所有数据,是否确认?`, }) if (!isConfirmed) return - const result: { [key: string]: any } = await api.delete(`user/${props.user.id}`) + const result: { [key: string]: any } = await api.delete(`user/${props.user.name}`) if (result.success) { $toast.success('用户删除成功') emit('remove') @@ -66,9 +70,14 @@ async function removeUser() { } } +// 编辑用户 +function editUser() { + userEditDialog.value = true +} + // 计算是否有用户编辑权限 const canEditUser = computed(() => { - if (props.user.is_superuser) return true + if (store.state.auth.superUser) return true return hasPermission('admin') || hasPermission('usermanage') }) @@ -78,6 +87,12 @@ const canManageUser = computed(() => { return canEditUser }) +// 用户重新完成时 +function onUserUpdate() { + userEditDialog.value = false + emit('save') +} + onMounted(() => { fetchSubscriptions() }) @@ -135,9 +150,17 @@ onMounted(() => { - 编辑 - 权限 + 编辑 删除 + + diff --git a/src/components/dialog/SiteAddEditDialog.vue b/src/components/dialog/SiteAddEditDialog.vue index 560461a2..8c870d46 100644 --- a/src/components/dialog/SiteAddEditDialog.vue +++ b/src/components/dialog/SiteAddEditDialog.vue @@ -54,11 +54,6 @@ const priorityItems = ref( })), ) -// 监控输入参数 -watchEffect(async () => { - if (props.siteid) fetchSiteInfo() -}) - // 查询站点信息 async function fetchSiteInfo() { try { @@ -124,6 +119,12 @@ async function updateSiteInfo() { } doneNProgress() } + +onMounted(() => { + if (props.oper !== 'add') { + fetchSiteInfo() + } +}) diff --git a/src/components/dialog/UserAddEditDialog.vue b/src/components/dialog/UserAddEditDialog.vue index 11645e02..2c0fbd95 100644 --- a/src/components/dialog/UserAddEditDialog.vue +++ b/src/components/dialog/UserAddEditDialog.vue @@ -1,2 +1,270 @@ - - + + + + + + + + + + + + + + + + + 上传头像 + + + + + + + 重置 + + + + 允许 JPG、GIF 或 PNG 格式, 最大尺寸 800K。 + + + + {}" class="mt-3"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 新增 + + + 保存 + + + + + diff --git a/src/views/user/UserListView.vue b/src/views/user/UserListView.vue index 6c9316f4..29b6766a 100644 --- a/src/views/user/UserListView.vue +++ b/src/views/user/UserListView.vue @@ -37,6 +37,12 @@ async function loadAllUsers() { } } +// 用户新增完成 +const onUserAdd = () => { + addUserDialog.value = false + loadAllUsers() +} + // 加载当前用户数据 onMounted(() => { loadAllUsers() @@ -53,7 +59,7 @@ onActivated(() => { - + { /> - +
允许 JPG、GIF 或 PNG 格式, 最大尺寸 800K。