Merge pull request #187 from InfinityPacer/dev

This commit is contained in:
jxxghp
2024-09-16 21:53:27 +08:00
committed by GitHub
3 changed files with 15 additions and 33 deletions

View File

@@ -101,7 +101,7 @@ onMounted(() => {
<VCard> <VCard>
<VCardText class="text-center pt-10 pb-3"> <VCardText class="text-center pt-10 pb-3">
<VAvatar variant="flat" size="100" rounded> <VAvatar variant="flat" size="100" rounded>
<VImg :src="user.avatar ?? avatar1" alt="avatar" /> <VImg :src="user.avatar || avatar1" alt="avatar" />
</VAvatar> </VAvatar>
<h5 class="text-h5 mt-3">{{ user.name }}</h5> <h5 class="text-h5 mt-3">{{ user.name }}</h5>
<VChip size="small" class="mt-3" :class="{ 'text-error': user.is_superuser }"> <VChip size="small" class="mt-3" :class="{ 'text-error': user.is_superuser }">

View File

@@ -80,6 +80,9 @@ const statusItems = [
async function fetchUserInfo() { async function fetchUserInfo() {
try { try {
userForm.value = await api.get(`user/${props.username}`) userForm.value = await api.get(`user/${props.username}`)
if (userForm.value) {
userForm.value.avatar = userForm.value.avatar || avatar1
}
} catch (error) { } catch (error) {
console.error(error) console.error(error)
} }
@@ -148,8 +151,7 @@ const canControl = computed(() => {
// 新增用户时,有权限 // 新增用户时,有权限
if (props.oper === 'add') { if (props.oper === 'add') {
return true return true
} } else {
else {
// 编辑显示的用户与当前用户不一致时,有权限 // 编辑显示的用户与当前用户不一致时,有权限
if (props.username !== currentUser) { if (props.username !== currentUser) {
return true return true
@@ -202,17 +204,10 @@ onMounted(() => {
</VDivider> </VDivider>
<VRow> <VRow>
<VCol md="6" cols="12" v-if="props.oper === 'add'"> <VCol md="6" cols="12" v-if="props.oper === 'add'">
<VTextField v-model="userForm.name" <VTextField v-model="userForm.name" density="comfortable" label="用户名" />
density="comfortable"
label="用户名"
/>
</VCol> </VCol>
<VCol cols="12" md="6"> <VCol cols="12" md="6">
<VTextField v-model="userForm.email" <VTextField v-model="userForm.email" density="comfortable" label="邮箱" type="email" />
density="comfortable"
label="邮箱"
type="email"
/>
</VCol> </VCol>
<VCol cols="12" md="6"> <VCol cols="12" md="6">
<VTextField <VTextField
@@ -236,7 +231,7 @@ onMounted(() => {
@click:append-inner="isConfirmPasswordVisible = !isConfirmPasswordVisible" @click:append-inner="isConfirmPasswordVisible = !isConfirmPasswordVisible"
/> />
</VCol> </VCol>
<VCol cols="12" md="6" v-if="canControl" > <VCol cols="12" md="6" v-if="canControl">
<VSelect <VSelect
v-model="userStatus" v-model="userStatus"
:items="statusItems" :items="statusItems"
@@ -252,29 +247,16 @@ onMounted(() => {
</VDivider> </VDivider>
<VRow> <VRow>
<VCol cols="12" md="6"> <VCol cols="12" md="6">
<VTextField v-model="userForm.settings.wechat_userid" <VTextField v-model="userForm.settings.wechat_userid" density="comfortable" label="微信用户" />
density="comfortable"
label="微信用户"
/>
</VCol> </VCol>
<VCol cols="12" md="6"> <VCol cols="12" md="6">
<VTextField v-model="userForm.settings.telegram_userid" <VTextField v-model="userForm.settings.telegram_userid" density="comfortable" label="Telegram用户" />
density="comfortable"
label="Telegram用户"
/>
</VCol> </VCol>
<VCol cols="12" md="6"> <VCol cols="12" md="6">
<VTextField v-model="userForm.settings.slack_userid" <VTextField v-model="userForm.settings.slack_userid" density="comfortable" label="Slack用户" />
density="comfortable"
label="Slack用户"
/>
</VCol> </VCol>
<VCol cols="12" md="6"> <VCol cols="12" md="6">
<VTextField <VTextField v-model="userForm.settings.vocechat_userid" density="comfortable" label="VoceChat用户" />
v-model="userForm.settings.vocechat_userid"
density="comfortable"
label="VoceChat用户"
/>
</VCol> </VCol>
<VCol cols="12" md="6"> <VCol cols="12" md="6">
<VTextField <VTextField

View File

@@ -65,7 +65,7 @@ const isCompactMode = ref(localStorage.getItem('MP_APPMODE') != '0')
// 从Vuex Store中获取信息 // 从Vuex Store中获取信息
const superUser = store.state.auth.superUser const superUser = store.state.auth.superUser
const userName = store.state.auth.userName const userName = store.state.auth.userName
const avatar = store.state.auth.avatar const avatar = computed(() => store.state.auth.avatar || avatar1)
// 监听精简模式切换 // 监听精简模式切换
watch(isCompactMode, value => { watch(isCompactMode, value => {
@@ -77,7 +77,7 @@ watch(isCompactMode, value => {
<template> <template>
<VAvatar class="cursor-pointer ms-3" color="primary" variant="tonal"> <VAvatar class="cursor-pointer ms-3" color="primary" variant="tonal">
<VImg :src="avatar ?? avatar1" /> <VImg :src="avatar" />
<VMenu activator="parent" width="230" location="bottom end" offset="14px"> <VMenu activator="parent" width="230" location="bottom end" offset="14px">
<VList> <VList>
@@ -86,7 +86,7 @@ watch(isCompactMode, value => {
<template #prepend> <template #prepend>
<VListItemAction start> <VListItemAction start>
<VAvatar color="primary" variant="tonal"> <VAvatar color="primary" variant="tonal">
<VImg :src="avatar ?? avatar1" /> <VImg :src="avatar" />
</VAvatar> </VAvatar>
</VListItemAction> </VListItemAction>
</template> </template>