Merge pull request '昵称、头像接口开发对接和数据库获取' (#67) from Brunch_DBK into main

pull/73/head
pikvyz67s 1 month ago
commit 465e56f787

@ -1,4 +1,7 @@
import http from '../common/http.js' import http from '../common/http.js'
import {
userStore
} from '../store/user.js'
//获取code //获取code
export const getCode = () => { export const getCode = () => {
const promise = new Promise((resolve, reject) => { const promise = new Promise((resolve, reject) => {
@ -24,6 +27,9 @@ export const getCode = () => {
}) })
return promise; return promise;
} }
export const getUserInfoApi = (parm) => {
return http.get("/wxapi/wxUser/getUserInfo", parm)
}
//小程序登录 //小程序登录
export const wxLoginApi = (code) => { export const wxLoginApi = (code) => {
return http.post('/wxapi/user/wxLogin', { return http.post('/wxapi/user/wxLogin', {
@ -32,6 +38,7 @@ export const wxLoginApi = (code) => {
} }
//封装登录 //封装登录
export const userLogin = async () => { export const userLogin = async () => {
const store = userStore()
//获取code //获取code
let res = await getCode() let res = await getCode()
//登录: 调用我们自己的后端接口 //登录: 调用我们自己的后端接口
@ -45,28 +52,40 @@ export const userLogin = async () => {
uni.setStorageSync('openid', data.openid) uni.setStorageSync('openid', data.openid)
uni.setStorageSync('sessionkey', data.sessionKey) uni.setStorageSync('sessionkey', data.sessionKey)
} }
let result = await getUserInfoApi({
openid: data.openid
})
console.log(result.data)
if (result.data && result.data.avatarUrl) {
store.avatarUrl = result.data.avatarUrl
uni.setStorageSync('avatarUrl', result.data.avatarUrl)
}
if (result.data && result.data.nickName) {
store.nickName = result.data.nickName
uni.setStorageSync('nickName', result.data.nickName)
}
} }
//新增地址 //新增地址
export const addAddressApi = (parm) => { export const addAddressApi = (parm) => {
console.log("新增地址成功")
return http.post("/wxapi/address", parm) return http.post("/wxapi/address", parm)
} }
//地址列表 //地址列表
export const addressListApi = (parm) => { export const addressListApi = (parm) => {
console.log("查询地址列表成功")
return http.get("/wxapi/address/list", parm) return http.get("/wxapi/address/list", parm)
} }
//编辑地址 //编辑地址
export const editAddressApi = (parm) => { export const editAddressApi = (parm) => {
console.log("编辑地址成功")
return http.put("/wxapi/address", parm) return http.put("/wxapi/address", parm)
} }
//默认地址查询 //默认地址查询
export const getAddressApi = (parm) => { export const getAddressApi = (parm) => {
console.log("查询默认地址成功")
return http.get("/wxapi/address/getAddress", parm) return http.get("/wxapi/address/getAddress", parm)
} }
//头像上传 //头像上传
export const uploadImageApi = (parm) => { export const uploadImageApi = (parm) => {
return http.upload(parm) return http.upload(parm)
} }
//头像昵称更新
export const saveOrUpdateApi = (parm) => {
return http.post("/wxapi/wxUser/saveOrUpdate", parm)
}

@ -58,5 +58,6 @@ export default {
get, get,
post, post,
put, put,
upload upload,
baseUrl
} }

@ -32,76 +32,92 @@
import { import {
ref, ref,
onMounted, onMounted,
getCurrentInstance getCurrentInstance,
computed
} from 'vue' } from 'vue'
import { import {
userLogin, userLogin,
uploadImageApi uploadImageApi,
saveOrUpdateApi
} from '../../api/user.js' } from '../../api/user.js'
import http from '../../common/http.js'
import {
userStore
} from '../../store/user.js';
const ustore = userStore()
// //
const instance = getCurrentInstance(); const instance = getCurrentInstance();
// //
const nickName = ref('微信用户') const nickName = computed(() => {
if (ustore.nickName) {
return ustore.nickName
} else {
return ''
}
})
// //
const avatarUrl = ref('/static/user.jpg') //const avatarUrl = ref('/static/user.jpg')
const avatarUrl = computed(() => {
if (ustore.avatarUrl) {
return http.baseUrl + ustore.avatarUrl
} else {
return '/static/user.jpg'
}
})
// //
onMounted(() => { onMounted(() => {
loadUserInfoFromStorage(); loadUserInfoFromStorage();
}) })
const loadUserInfoFromStorage = () => { const loadUserInfoFromStorage = () => {
const storedAvatar = uni.getStorageSync('avatarUrl') const storedAvatar = uni.getStorageSync('avatarUrl')
const storedNickName = uni.getStorageSync('nickName') const storedNickName = uni.getStorageSync('nickName')
if (storedAvatar && storedNickName) { if (storedAvatar && storedNickName) {
nickName.value = storedNickName nickName.value = storedNickName
avatarUrl.value = storedAvatar avatarUrl.value = storedAvatar
console.log('从缓存加载用户信息:', storedNickName, storedAvatar) console.log('从缓存加载用户信息:', storedNickName, storedAvatar)
}
} }
}
const onChooseAvatar = async (e) => { const onChooseAvatar = (e) => {
console.log('选择头像:', e) console.log(e)
avatarUrl.value = e.detail.avatarUrl avatarUrl.value = e.detail.avatarUrl
//
// uploadImageApi({
try { url: "/api/upload/uploadImage",
const res = await uploadImageApi({ filePath: e.detail.avatarUrl
url: "/api/upload/uploadImage", }).then((res) => {
filePath: e.detail.avatarUrl //
console.log(res)
let result = JSON.parse(res)
saveOrUpdateApi({
openid: uni.getStorageSync('openid'),
avatarUrl: result.data
}).then(res => {
console.log(res)
ustore.avatarUrl = result.data
}) })
console.log('头像上传成功:', res) })
// URL
uni.setStorageSync('avatarUrl', e.detail.avatarUrl);
} catch (err) {
console.error('头像上传失败:', err)
uni.showToast({
title: '头像上传失败',
icon: 'none'
})
}
} }
const onNickName = (e) => { const onNickName = (e) => {
console.log('昵称输入:', e) console.log(e)
uni.createSelectorQuery().in(instance) // in(this)
// 使 instance
uni.createSelectorQuery().in(instance)
.select("#nickname-input") .select("#nickname-input")
.fields({ .fields({
properties: ["value"], properties: ["value"],
}) })
.exec((res) => { .exec((res) => {
console.log('获取昵称结果:', res) console.log(res)
if (res && res[0] && res[0].value) { nickName.value = res?.[0]?.value
nickName.value = res[0].value console.log('昵称', nickName.value)
console.log('设置昵称:', nickName.value) saveOrUpdateApi({
openid: uni.getStorageSync('openid'),
// nickName: res?.[0]?.value
uni.setStorageSync('nickName', nickName.value); }).then(res => {
} console.log(res)
ustore.nickName = res?.[0]?.value
})
}) })
} }

@ -0,0 +1,19 @@
// 引入
import {
defineStore
} from 'pinia';
//通过defineStore定义一个store,
// defineStore 第一个参数是唯一的
export const userStore = defineStore('userStore', {
state: () => {
return {
nickName: '',
avatarUrl: ''
};
},
// 也可以这样定义
// state: () => ({ count: 0 })
actions: {
},
});
Loading…
Cancel
Save