Files
tk-mini-program/pages/Setting/Setting.vue
pengxiaolong 7116e57fc3 优化
2025-07-21 22:10:59 +08:00

153 lines
3.6 KiB
Vue

<template>
<view class="container">
<button class="login-btn" open-type="chooseAvatar" @chooseavatar="Userinfo">
<image class="avatar" :src="userinfo"></image>
</button>
<input
type="nickname"
class="weui-input"
placeholder="请输入昵称"
@blur="inputName"
v-model="name"
/>
<button class="weui-btn" @click="wxLogin">修改</button>
<button class="weui-btn" @click="cancel">取消</button>
</view>
</template>
<script>
import request from "../../components/request.js";
import postFile from "../../components/postFile.js";
import generateFileName from "../../components/generateFileName.js";
import { goEasylogin,goEasylogout } from "../../components/goEasyTool/tool.js";
export default {
inject: ["$global"],
data() {
return {
userinfo: "",
name: "",
id: "",
info: {},
userSig: "",
};
},
onLoad(option) {
uni.getStorage({
key: "userinfo",
success: (res) => {
this.id = res.data.id;
this.name = res.data.nickName;
this.userinfo = res.data.headerIcon;
},
});
uni.getStorage({
key: "userSig",
success: (res) => {
this.userSig = res.data;
},
});
},
methods: {
cancel() {
uni.navigateBack({
delta: 1,
});
},
// 输入昵称
inputName(e) {
this.name = e.detail.value;
},
// 选择头像
async Userinfo(e) {
const { avatarUrl } = e.detail;
this.userinfo = avatarUrl;
},
// 微信登录
wxLogin(e) {
goEasylogout(this.$goeasy);
uni.showLoading({
title: "修改中...",
mask: true,
});
postFile({
path: this.userinfo,
name: generateFileName(),
})
.then((res) => {
request({
url: "user/updateUserInfo",
method: "POST",
data: {
id: this.id,
headerIcon: res.split("/").pop(),
nickName: this.name,
usersig: this.userSig.userSig,
},
userInfo: true,
}).then((ress) => {
if (ress.code === 200) {
uni.showToast({
title: "修改成功",
icon: "success",
});
uni.setStorageSync("userinfo", ress.data.info);
goEasylogin(this.$goeasy,String(ress.data.info.id),ress.data.info.headerIcon,ress.data.info.nickName);
uni.hideLoading();
//```````````````````````````````````````````````````````````````````````登录成功后跳转回原页面 或 首页
uni.navigateBack({
delta: 1,
});
//````````````````````````````````````````````````````````````````````
} else {
uni.showToast({
title: "修改失败",
icon: "none",
});
}
});
})
.catch((err) => {
console.log(err);
});
},
},
};
</script>
<style scoped>
.container {
width: 100%;
height: 100%;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
background: linear-gradient(to bottom, #11cb2a6e, #2574fc6d);
}
.login-btn {
width: 200rpx;
height: 200rpx;
border-radius: 50%;
padding: 0px;
margin-bottom: 60rpx;
}
.avatar {
width: 100%;
height: 100%;
border-radius: 50%;
}
.weui-input {
width: 80%;
text-align: center;
margin-bottom: 40rpx;
}
.weui-btn {
width: 40%;
margin-top: 20rpx;
background-color: #11cb2a00;
color: #fff;
}
</style>