Uniapp WeChat-Applet-Abstimmungssystem, tatsächlicher Kampf (SpringBoot2+vue3.2+element plus) – Implementierung der Benutzerinformationsänderung

Das ursprüngliche WeChat-Miniprogramm-Abstimmungssystem von Feng Ge in Aktion:

uniapp WeChat Mini-Programm-Abstimmungssystem-Praxiskurs (SpringBoot2+vue3.2+element plus) (Hot Serial Updates sind in Bearbeitung...)_bilibili_bilibili uniapp WeChat Mini-Programm-Abstimmungssystem-Praxiskurs (SpringBoot2+vue3.2+element) plus ) ( Eine heiße Serie wird aktualisiert...) Insgesamt 21 Videos, darunter: uniapp WeChat Mini Program Voting System Practical Course (SpringBoot2+vue3.2+element plus) (Eine heiße Serie wird aktualisiert...), Vorlesung 2 Abstimmungsprojekt Back-End-Architekturkonstruktion, Vorlesung 3 Miniprogramm TabBar-Konstruktion usw. Für weitere spannende Videos von UP Master folgen Sie bitte dem UP-Konto. icon-default.png?t=N7T8https://www.bilibili.com/video/BV1ea4y137xf/Benutzer-Spitznamen im Backend ändern:

/**
 * 更新用户昵称
 * @param wxUserInfo
 * @param token
 * @return
 */
@RequestMapping("/updateNickName")
public R updateNickName(@RequestBody WxUserInfo wxUserInfo,@RequestHeader String token){
    if(StringUtil.isNotEmpty(wxUserInfo.getNickName())) {
        Claims claims = JwtUtils.validateJWT(token).getClaims();
        wxUserInfoService.update(new UpdateWrapper<WxUserInfo>().eq("openid", claims.getId()).set("nick_name", wxUserInfo.getNickName()));
    }
    return R.ok();
}

Ändern Sie den Benutzernamen im Frontend:

<input type="nickname"  placeholder="请输入昵称" v-model="userInfo.nickName" @blur="onChangeNickName"/>
onChangeNickName:async function(e){
				console.log(e.detail.value);
				let nickName=e.detail.value;
				if(!isEmpty(nickName)){
					const result=await requestUtil({url:"/user/updateNickName",data:{nickName:nickName},method:"post"});
				}
			}
export const isEmpty=(str)=>{
	if(str === '' || str.trim().length === 0 ){
		return true
	}else{
		return false;
	}
}

Avatar-Upload-Backend:

Upload-Pfad definieren:

userImagesFilePath: D://uniapp/userImgs/
@Value("${userImagesFilePath}")
private String userImagesFilePath;
/**
 * 上传用户头像图片
 * @param userImage
 * @return
 * @throws Exception
 */
@RequestMapping("/uploadUserImage")
public Map<String,Object> uploadUserImage(MultipartFile userImage, @RequestHeader String token)throws Exception{
    System.out.println("filename:"+userImage.getName());
    Map<String,Object> resultMap=new HashMap<>();
    if(!userImage.isEmpty()){
        // 获取文件名
        String originalFilename = userImage.getOriginalFilename();
        String suffixName=originalFilename.substring(originalFilename.lastIndexOf("."));
        String newFileName= DateUtil.getCurrentDateStr()+suffixName;
        FileUtils.copyInputStreamToFile(userImage.getInputStream(),new File(userImagesFilePath+newFileName));
        resultMap.put("code",0);
        resultMap.put("msg","上传成功");
        resultMap.put("userImageFileName",newFileName);
        // 更新到数据库
        UpdateWrapper<WxUserInfo> updateWrapper=new UpdateWrapper<>();
        Claims claims = JwtUtils.validateJWT(token).getClaims();
        updateWrapper
                .eq("openid",claims.getId())
                .set("avatar_url",newFileName);
        wxUserInfoService.update(new UpdateWrapper<WxUserInfo>().eq("openid",claims.getId()).set("avatar_url",newFileName));
    }

    return resultMap;
}

Front-End-Avatar-Implementierung:

open-type="chooseAvatar" zur Schaltfläche hinzufügen

		onChooseAvatar:function(e){
			console.log(e.detail.avatarUrl)
			uni.uploadFile({
				header:{token:uni.getStorageSync("token")},
				url:getBaseUrl()+"/user/uploadUserImage",
				filePath:e.detail.avatarUrl,
				name:"userImage",
				success: (res) => {
					let result=JSON.parse(res.data);
					if(result.code==0){
						this.userInfo.avatarUrl=result.userImageFileName;
					}
				}
			})
		},

Supongo que te gusta

Origin blog.csdn.net/caoli201314/article/details/135463098
Recomendado
Clasificación