1
This commit is contained in:
parent
cd569f2881
commit
71bdaaeb4c
@ -217,6 +217,13 @@
|
||||
"style": {
|
||||
"navigationBarTitleText": "推荐列表"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/user/change-password",
|
||||
"type": "page",
|
||||
"style": {
|
||||
"navigationBarTitleText": "修改密码"
|
||||
}
|
||||
}
|
||||
],
|
||||
"subPackages": []
|
||||
|
||||
@ -197,7 +197,7 @@ const closeUserMenu = () => {
|
||||
const handleModifyPassword = () => {
|
||||
showUserMenu.value = false
|
||||
uni.navigateTo({
|
||||
url: '/pages/user/modify-password',
|
||||
url: '/pages/user/change-password',
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
@ -64,12 +64,16 @@ const handleLogin = async () => {
|
||||
}
|
||||
try {
|
||||
const res = await loginAPI({ username: account.value, password: password.value })
|
||||
uni.setStorageSync('loginData', res.data)
|
||||
uni.setStorageSync('x-token', res.data.token)
|
||||
useStore.setUserInfo()
|
||||
uni.reLaunch({ url: '/pages/index/index' })
|
||||
} catch (error) {
|
||||
uni.showToast({ title: '登录失败', icon: 'none' })
|
||||
if (res.code === 0) {
|
||||
uni.setStorageSync('loginData', res.data)
|
||||
uni.setStorageSync('x-token', res.data.token)
|
||||
useStore.setUserInfo()
|
||||
uni.reLaunch({ url: '/pages/index/index' })
|
||||
} else {
|
||||
uni.showModal({ title: '登录失败', content: res.msg || '登录失败', showCancel: false })
|
||||
}
|
||||
} catch (error: any) {
|
||||
uni.showModal({ title: '登录失败', content: error?.msg || '登录失败', showCancel: false })
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
74
src/pages/user/change-password.vue
Normal file
74
src/pages/user/change-password.vue
Normal file
@ -0,0 +1,74 @@
|
||||
<!-- 使用 type="home" 属性设置首页,其他页面不需要设置,默认为page;推荐使用json5,更强大,且允许注释 -->
|
||||
<route lang="json5">
|
||||
{
|
||||
style: {
|
||||
navigationBarTitleText: '修改密码',
|
||||
},
|
||||
}
|
||||
</route>
|
||||
<template>
|
||||
<view class="min-h-screen flex items-center justify-center bg-gray-200 px-4">
|
||||
<view
|
||||
class="w-full max-w-md mx-auto bg-white rounded-2xl shadow-lg p-8 border border-gray-100 box-border mx-4"
|
||||
>
|
||||
<view class="mb-6 text-center">
|
||||
<text class="text-2xl font-bold text-gray-800">修改密码</text>
|
||||
</view>
|
||||
<view class="mb-4">
|
||||
<input
|
||||
v-model="oldPassword"
|
||||
type="password"
|
||||
placeholder="请输入旧密码"
|
||||
class="w-full h-12 px-4 border-2 border-gray-300 rounded-lg focus:border-pink-400 outline-none bg-gray-50 text-base transition-all duration-200 box-border"
|
||||
/>
|
||||
</view>
|
||||
<view class="mb-6">
|
||||
<input
|
||||
v-model="newPassword"
|
||||
type="password"
|
||||
placeholder="请输入新密码"
|
||||
class="w-full h-12 px-4 border-2 border-gray-300 rounded-lg focus:border-pink-400 outline-none bg-gray-50 text-base transition-all duration-200 box-border"
|
||||
/>
|
||||
</view>
|
||||
<button
|
||||
class="w-full h-12 bg-black text-white rounded-lg text-base font-semibold flex items-center justify-center"
|
||||
@click="handleChangePassword"
|
||||
>
|
||||
<span class="w-full text-center">确定</span>
|
||||
</button>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
import { ref } from 'vue'
|
||||
import { changePasswordAPI } from '@/service/user'
|
||||
|
||||
const oldPassword = ref('')
|
||||
const newPassword = ref('')
|
||||
|
||||
const handleChangePassword = async () => {
|
||||
if (!oldPassword.value || !newPassword.value) {
|
||||
uni.showToast({ title: '请填写完整', icon: 'none' })
|
||||
return
|
||||
}
|
||||
try {
|
||||
const res = await changePasswordAPI({
|
||||
oldPassword: oldPassword.value,
|
||||
newPassword: newPassword.value,
|
||||
})
|
||||
console.log(111111111111111111111111)
|
||||
console.log(res)
|
||||
if (res.code === 0) {
|
||||
uni.showToast({ title: '修改成功', icon: 'success' })
|
||||
setTimeout(() => {
|
||||
uni.navigateBack()
|
||||
}, 1000)
|
||||
} else {
|
||||
uni.showModal({ title: '修改失败', content: res.msg || '修改失败', showCancel: false })
|
||||
}
|
||||
} catch (e: any) {
|
||||
uni.showModal({ title: '修改失败', content: e?.msg || '修改失败', showCancel: false })
|
||||
}
|
||||
}
|
||||
</script>
|
||||
5
src/service/user/index.ts
Normal file
5
src/service/user/index.ts
Normal file
@ -0,0 +1,5 @@
|
||||
import { request } from '@/utils/request'
|
||||
import type { BaseResponse } from '../login/type'
|
||||
|
||||
export const changePasswordAPI = (data: { oldPassword: string; newPassword: string }) =>
|
||||
request.post<BaseResponse<any>>('/user/updatePassword', data)
|
||||
3
src/types/uni-pages.d.ts
vendored
3
src/types/uni-pages.d.ts
vendored
@ -28,7 +28,8 @@ interface NavigateToOptions {
|
||||
"/pages/my/spend" |
|
||||
"/pages/my/subordinate" |
|
||||
"/pages/my/user-info" |
|
||||
"/pages/recommend/index";
|
||||
"/pages/recommend/index" |
|
||||
"/pages/user/change-password";
|
||||
}
|
||||
interface RedirectToOptions extends NavigateToOptions {}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user