添加头像上传功能,优化滚动条样式,调整Gallery页面下载按钮样式,新增自动登录API
This commit is contained in:
@ -32,7 +32,7 @@
|
||||
</n-dropdown>
|
||||
<div v-else class="flex items-center" @click="toLogin">
|
||||
<n-avatar round class="cursor-pointer"></n-avatar>
|
||||
<div class="cursor-pointer ml-2 text-gray text-sm" >登录</div>
|
||||
<div class="cursor-pointer ml-2 text-gray text-sm">登录</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- 登录弹窗 -->
|
||||
@ -56,6 +56,25 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 修改头像弹窗 -->
|
||||
<masked v-if="usrLog.isLogin" :visible="editModal" :setVisible="handdleItemCancel">
|
||||
<div class="w-[500px] bg-white p-8 rounded-md">
|
||||
<div class="text-center text-lg mb-8">修改头像</div>
|
||||
<n-upload class="flex justify-center items-center" action="https://www.hxyouzi.com/api/user/avaupload"
|
||||
:headers="{ Authorization: `Bearer ${token}` }" @finish="handleUpload" @before-upload="beforeUpload"
|
||||
:show-file-list="false" accept="image/*">
|
||||
<div class="flex flex-col justify-center items-center">
|
||||
<n-avatar :size="80" :src="userinfo.ava_url" round class="cursor-pointer" alt="用户的头" />
|
||||
<em class="cursor-pointer mt-4 text-gray text-sm">点击头像上传不超过3m的图片</em>
|
||||
</div>
|
||||
</n-upload>
|
||||
|
||||
<div class="mt-8 flex justify-between">
|
||||
<n-button class="w-[98%]" secondary @click="handdleItemCancel">取消</n-button>
|
||||
</div>
|
||||
</div>
|
||||
</masked>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
@ -69,7 +88,7 @@ import picSvg from '@/icon/menu/pic.svg';
|
||||
import settingSvg from '@/icon/menu/setting.svg';
|
||||
import loginModal from '@/components/Login.vue'
|
||||
import masked from '@/components/mask.vue'
|
||||
|
||||
import type { UploadFileInfo } from 'naive-ui'
|
||||
|
||||
import { onMounted, ref, watch } from 'vue';
|
||||
import { useRoute, useRouter, RouterLink } from 'vue-router';
|
||||
@ -131,11 +150,58 @@ const oprOp = ref([
|
||||
label: '控制台',
|
||||
},
|
||||
{
|
||||
key: 'setting',
|
||||
label: '设置',
|
||||
key: 'avatar',
|
||||
label: '更换头像',
|
||||
}
|
||||
])
|
||||
|
||||
const editModal = ref<boolean>(false)
|
||||
const token = ref<string>("")
|
||||
|
||||
|
||||
function beforeUpload(data: { file: UploadFileInfo }) {
|
||||
console.log('>>> --> beforeUpload --> data:', data.file.file?.size)
|
||||
const size = data.file.file?.size || 4 * 1024 * 1024
|
||||
if (size > 3 * 1024 * 1024) {
|
||||
$msg.error('上传的图片大小不能超过3M')
|
||||
return false
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
function handleUpload(f: any) {
|
||||
console.log('上传完成', JSON.parse(f.event.target.response));
|
||||
const res = JSON.parse(f.event.target.response)
|
||||
if (res.code === 200) {
|
||||
// $msg.success(res.msg);
|
||||
autoLogin()
|
||||
} else {
|
||||
$msg.error(res.msg);
|
||||
}
|
||||
editModal.value = false
|
||||
}
|
||||
|
||||
async function autoLogin() {
|
||||
const res = await $http.user.autologin()
|
||||
if (res?.code !== 200) {
|
||||
$msg.error('登录失败')
|
||||
usrLog.setIsLogin(false)
|
||||
$cookies.remove('token')
|
||||
$cookies.remove('userinfo')
|
||||
return
|
||||
}
|
||||
$cookies.set('token', res.data.token, '1d')
|
||||
$cookies.set('userinfo', res.data.userinfo, '1d')
|
||||
$msg.success(res.msg)
|
||||
usrLog.setIsLogin(true)
|
||||
userinfo.value = res.data.userinfo
|
||||
}
|
||||
|
||||
function handdleItemCancel() {
|
||||
editModal.value = false
|
||||
}
|
||||
|
||||
|
||||
function setVisible(v: any) {
|
||||
visible.value = v
|
||||
}
|
||||
@ -150,6 +216,10 @@ function handleSelect(key: string) {
|
||||
gotoConsole()
|
||||
return
|
||||
}
|
||||
if (key == 'avatar') {
|
||||
editModal.value = true
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
// 获取地理位置
|
||||
@ -271,7 +341,7 @@ onMounted(() => {
|
||||
|
||||
const h: number = nav.value.clientHeight
|
||||
if (h > 0) navx.setNavH(h)
|
||||
|
||||
token.value = $cookies.get('token')
|
||||
|
||||
|
||||
});
|
||||
@ -296,6 +366,4 @@ onBeforeUpdate(() => {
|
||||
width: 16px !important;
|
||||
height: 16px !important;
|
||||
}
|
||||
|
||||
|
||||
</style>
|
||||
Reference in New Issue
Block a user