Compare commits

...

5 Commits

10 changed files with 135 additions and 17 deletions

View File

@ -43,7 +43,7 @@ export const updateUserExtend = (params: UserExtendSaveReqVO) => {
* @returns * @returns
*/ */
export const getUserAuthInfo = () => { export const getUserAuthInfo = () => {
return useFetchRequest.get<IResponse<UserAuthInfoRespVO>>('/prod-api/app-api/member/user-auth-info/get', {}) return useDollarFetchRequest.get<IResponse<UserAuthInfoRespVO>>('/prod-api/app-api/member/user-auth-info/get', {})
} }
/** /**
* 创建用户信息 * 创建用户信息

View File

@ -15,7 +15,7 @@
</div> </div>
</nuxt-link> </nuxt-link>
<nuxt-link to="/personal-Center/personal-profile" class="flex items-center justify-between py-[14px]"> <!-- <nuxt-link to="/personal-Center/personal-profile" class="flex items-center justify-between py-[14px]">
<div class="flex items-center pl-[20px]"> <div class="flex items-center pl-[20px]">
<img v-if="!route.path.startsWith('/personal-Center/personal-profile')" src="~/assets/images/user_zl.png" alt="" srcset="" class="h-[16px]" /> <img v-if="!route.path.startsWith('/personal-Center/personal-profile')" src="~/assets/images/user_zl.png" alt="" srcset="" class="h-[16px]" />
<img v-else src="~/assets/images/个人资料 (1).png" alt="" srcset="" class="h-[16px]" /> <img v-else src="~/assets/images/个人资料 (1).png" alt="" srcset="" class="h-[16px]" />
@ -34,6 +34,16 @@
<div class="pr-[20px]"> <div class="pr-[20px]">
<el-icon><ArrowRight /></el-icon> <el-icon><ArrowRight /></el-icon>
</div> </div>
</nuxt-link> -->
<nuxt-link to="/personal-Center/account-management" class="flex items-center justify-between py-[14px]">
<div class="flex items-center pl-[20px]">
<img v-if="!route.path.startsWith('/personal-Center/account-management')" src="~/assets/images/account.png" alt="" srcset="" class="h-[20px]" />
<img v-else src="~/assets/images/账户安全.png" alt="" srcset="" class="h-[20px]" />
<span class="ml-[14px]">账户管理</span>
</div>
<div class="pr-[20px]">
<el-icon><ArrowRight /></el-icon>
</div>
</nuxt-link> </nuxt-link>
<nuxt-link to="/personal-Center/resource-center" class="flex items-center justify-between py-[14px]"> <nuxt-link to="/personal-Center/resource-center" class="flex items-center justify-between py-[14px]">
<div class="flex items-center pl-[20px]"> <div class="flex items-center pl-[20px]">

View File

@ -0,0 +1,26 @@
<template>
<div class="box-border w-auto border border-[#EEEEEE] rounded-6px border-solid bg-[#FFFFFF] px-30px py-21px mt-10px">
<div class="flex flex-col justify-center text-[14px] text-[#333333] font-normal">
<div class="mt-[6px] flex items-center">
<img src="~/assets/images/qq-v2.png" alt="" srcset="" class="h-[35px] w-[34px]" />
<div class="ml-[19px] w-50px">手机号</div>
<div class="ml-[100px] flex items-center"><div class="w-[90px]">手机号码</div><div class="w-[180px]">xxx</div></div>
<div class="btn">绑定</div>
</div>
<div class="mt-[30px] flex items-center">
<img src="~/assets/images/qq-v2.png" alt="" srcset="" class="h-[35px] w-[34px]" />
<div class="ml-[19px] w-50px">QQ</div>
<div class="ml-[100px] flex items-center"><div class="w-[90px]">QQ昵称</div><div class="w-[180px]">xxx</div></div>
<div class="btn">绑定</div>
</div>
<div class="mt-[30px] flex items-center">
<img src="~/assets/images/weixin-v2.png" alt="" srcset="" class="h-[35px] w-[34px]" />
<div class="ml-[19px] w-50px">微信</div>
<div class="ml-[95px] flex items-center"><div class="w-[90px]">微信昵称</div><div class="w-[180px]">xxx</div></div>
<div class="btn">绑定</div>
</div>
</div>
</div>
</template>
<script setup lang="ts"></script>

View File

@ -0,0 +1,18 @@
<template>
<div class="box-border w-auto border border-[#EEEEEE] rounded-6px border-solid bg-[#FFFFFF] px-30px py-21px mt-10px">
<el-button type="danger" @click="handleClick">注销账号</el-button>
</div>
</template>
<script setup lang="ts">
const handleClick = () => {
console.log('注销账号')
ElMessageBox.confirm('确定注销账号吗?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
}).then(() => {
console.log('注销账号')
})
}
</script>

View File

@ -0,0 +1,18 @@
<template>
<div class="box-border w-913px border border-[#EEEEEE] rounded-6px border-solid bg-[#FFFFFF] px-30px py-21px">
<el-tabs v-model="activeName" class="demo-tabs">
<el-tab-pane label="个人资料" name="个人资料">
<PersonalProfile />
</el-tab-pane>
<el-tab-pane label="账户安全" name="账户安全">
<AccountSecurityV2 />
</el-tab-pane>
</el-tabs>
</div>
</template>
<script lang="ts" setup>
import AccountSecurityV2 from './account-security-v2.vue'
import PersonalProfile from './personal-profile.vue'
const activeName = ref('个人资料')
</script>

View File

@ -0,0 +1,37 @@
<template>
<KlTabBar v-model="type" :data="tabBar" />
<div v-if="type === '修改密码'">
<AccountSecurity />
</div>
<div v-else-if="type === '账号绑定'">
<AccountBind />
</div>
<div v-else-if="type === '账号注销'">
<AccountLogout />
</div>
</template>
<script lang="ts" setup>
import KlTabBar from '~/components/kl-tab-bar/v2/index.vue'
import AccountSecurity from './account-security.vue'
import AccountBind from './account-bind.vue'
import AccountLogout from './account-logout.vue'
const tabBar = ref([
{
label: '修改密码',
value: '修改密码',
},
{
label: '账号绑定',
value: '账号绑定',
},
{
label: '账号注销',
value: '账号注销',
},
])
const type = ref('修改密码')
</script>
<style lang="scss" scoped></style>

View File

@ -1,7 +1,7 @@
<template> <template>
<div class="box-border w-913px border border-[#EEEEEE] rounded-6px border-solid bg-[#FFFFFF] px-30px py-21px"> <div class="box-border w-auto border border-[#EEEEEE] rounded-6px border-solid bg-[#FFFFFF] px-30px py-21px mt-10px">
<el-tabs v-model="activeName" class="demo-tabs"> <!-- <el-tabs v-model="activeName" class="demo-tabs"> -->
<el-tab-pane label="修改密码" name="修改密码"> <!-- <el-tab-pane label="修改密码" name="修改密码"> -->
<el-form ref="formRef" :model="form" label-width="120px" class="profile-form" autocomplete="off"> <el-form ref="formRef" :model="form" label-width="120px" class="profile-form" autocomplete="off">
<el-form-item <el-form-item
label="手机号" label="手机号"
@ -19,7 +19,7 @@
<el-input v-model="form.phone" type="text" placeholder="请输入手机号" class="h-37px" /> <el-input v-model="form.phone" type="text" placeholder="请输入手机号" class="h-37px" />
</el-form-item> </el-form-item>
<el-form-item label="验证码" prop="code" class="mt-15px!" :rules="{ required: true, message: '请输入验证码', trigger: ['blur', 'change'] }"> <el-form-item label="验证码" prop="code" class="mt-15px!" :rules="{ required: true, message: '请输入验证码', trigger: ['blur', 'change'] }">
<div class="flex items-center gap10"> <div class="flex items-center gap-10px">
<el-input v-model="form.code" type="text" placeholder="请输入验证码" class="h-37px" /> <el-input v-model="form.code" type="text" placeholder="请输入验证码" class="h-37px" />
<el-button <el-button
type="primary" type="primary"
@ -46,9 +46,9 @@
<el-button type="primary" class="h-37px w-121px line-height-37px" @click="handleSave">保存</el-button> <el-button type="primary" class="h-37px w-121px line-height-37px" @click="handleSave">保存</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
</el-tab-pane> <!-- </el-tab-pane> -->
<!-- <el-tab-pane label="登录设备管理" name="登录设备管理"> </el-tab-pane> --> <!-- <el-tab-pane label="登录设备管理" name="登录设备管理"> </el-tab-pane> -->
</el-tabs> <!-- </el-tabs> -->
</div> </div>
</template> </template>

View File

@ -7,7 +7,10 @@
<el-image :src="scope.row.iconUrl" fit="cover" alt="" srcset="" class="h-91px w-181px rd-4px" /> <el-image :src="scope.row.iconUrl" fit="cover" alt="" srcset="" class="h-91px w-181px rd-4px" />
<div class="ml-17px"> <div class="ml-17px">
<div class="text-16px text-[#333333] font-normal">{{ scope.row.title }}</div> <div class="text-16px text-[#333333] font-normal">{{ scope.row.title }}</div>
<div class="text-14px text-[#333333] font-normal my-10px!">{{ dayjs(scope.row.createTime).format('YYYY-MM-DD HH:mm:ss') }}</div> <div class="text-14px text-[#333333] font-normal my-10px!">
{{ dayjs(scope.row.createTime).format('YYYY-MM-DD HH:mm:ss') }}
<span class="ml-10px">{{ scope.row.sizecountry }}</span>
</div>
<div class="flex items-center"> <div class="flex items-center">
<div class="flex items-center"> <div class="flex items-center">
<img src="~/assets/images/look.png" alt="" srcset="" class="h-17px" /> <img src="~/assets/images/look.png" alt="" srcset="" class="h-17px" />
@ -78,6 +81,10 @@
label: '文本', label: '文本',
value: 2, value: 2,
}, },
{
label: '工具箱',
value: 4,
},
]) ])
const handleStatus = (status: number) => { const handleStatus = (status: number) => {

View File

@ -1,12 +1,14 @@
<template> <template>
<div class="box-border w-[913px] border border-[#EEEEEE] rounded-[6px] border-solid bg-[#FFFFFF] px-[30px] py-[18px]"> <div class="box-border w-[913px] border border-[#EEEEEE] rounded-[6px] border-solid bg-[#FFFFFF] px-[30px] py-[18px]">
<div class="flex items-center"> <div class="flex items-center">
<div class="relative">
<img :src="userStore.userInfoRes.avatar" alt="" srcset="" class="h-[105px] w-[105px] rounded-full" /> <img :src="userStore.userInfoRes.avatar" alt="" srcset="" class="h-[105px] w-[105px] rounded-full" />
<img v-if="userStore.userInfoRes.vipLevel === 1" src="~/assets/svg/vip.svg" alt="" class="absolute bottom-[0px] right-[4px]" />
<img v-if="userStore.userInfoRes.vipLevel === 2" src="~/assets/svg/svip.svg" alt="" class="absolute bottom-[0px] right-[5px]" />
</div>
<div class="ml-[29px]"> <div class="ml-[29px]">
<div class="flex items-center"> <div class="flex items-center">
<span class="text-[20px] text-[#333333] font-normal">Hi{{ userStore.userInfoRes.nickname }}</span> <span class="text-[20px] text-[#333333] font-normal">Hi{{ userStore.userInfoRes.nickname }}</span>
<img v-if="userStore.userInfoRes.vipLevel === 1" src="~/assets/svg/vip.svg" alt="" class="relative top-[2px] ml-[5px]" />
<img v-if="userStore.userInfoRes.vipLevel === 2" src="~/assets/svg/svip.svg" alt="" class="relative top-[2px] ml-[5px]" />
<div <div
class="ml-[18px] h-[30px] w-[80px] cursor-pointer border border-[#1A65FF] rounded-[15px] border-solid text-center text-[14px] text-[#1A65FF] font-normal line-height-[30px]" class="ml-[18px] h-[30px] w-[80px] cursor-pointer border border-[#1A65FF] rounded-[15px] border-solid text-center text-[14px] text-[#1A65FF] font-normal line-height-[30px]"
@click="handleClick" @click="handleClick"
@ -16,7 +18,7 @@
<div class="mt-[20px] flex items-center text-[14px] text-[#333333] font-normal"> <div class="mt-[20px] flex items-center text-[14px] text-[#333333] font-normal">
<div class="flex items-center"> <div class="flex items-center">
<img src="~/assets/images/cad_0 (1).png" alt="" srcset="" /> <img src="~/assets/images/cad_0 (1).png" alt="" srcset="" />
<span class="ml-[4px]">我的积分: {{ userStaticInfo?.pointCount || 0 }}</span> <span class="ml-[4px]">我的金币: {{ userStaticInfo?.pointCount || 0 }}</span>
</div> </div>
<div class="ml-[37px] flex items-center"> <div class="ml-[37px] flex items-center">
<img src="~/assets/images/cad_0 (2).png" alt="" srcset="" /> <img src="~/assets/images/cad_0 (2).png" alt="" srcset="" />

View File

@ -1,12 +1,12 @@
<template> <template>
<div class="box-border h-[782px] w-[913px] border border-[#EEEEEE] rounded-[6px] border-solid bg-[#FFFFFF] px-[30px] py-[21px]"> <div class="box-border h-[682px] w-[913px] border border-[#EEEEEE] rounded-[6px] border-solid bg-[#FFFFFF] px-[30px] py-[21px]">
<div class="flex items-center justify-between border-b-[1px] border-b-[#eeeeee] border-b-solid pb-[18px]"> <!-- <div class="flex items-center justify-between border-b-[1px] border-b-[#eeeeee] border-b-solid pb-[18px]">
<div class="text-[16px] text-[#333333] font-normal">个人资料</div> <div class="text-[16px] text-[#333333] font-normal">个人资料</div>
<div class="flex items-center"> <div class="flex items-center">
<!-- <img src="~/assets/images/fans.png" alt="" srcset="" /> --> <img src="~/assets/images/fans.png" alt="" srcset="" />
<span class="ml-[8px] text-[14px] text-[#333333] font-normal"></span> <span class="ml-[8px] text-[14px] text-[#333333] font-normal"></span>
</div> </div>
</div> </div> -->
<div class="user-profile-container"> <div class="user-profile-container">
<div class="avatar-section"> <div class="avatar-section">
<el-upload class="avatar-uploader" action="#" :show-file-list="false" :auto-upload="false" :on-change="handleAvatarChange"> <el-upload class="avatar-uploader" action="#" :show-file-list="false" :auto-upload="false" :on-change="handleAvatarChange">