牛股项目流程(三)

2023-11-01 00:50
文章标签 流程 项目 牛股

本文主要是介绍牛股项目流程(三),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

牛股项目流程(三)

    • 用户名修改页面的建立
      • 页面布局设计
      • script逻辑方面
      • 效果图
      • 用户名修改页面的后端部分
        • 后端Controller层中的修改用户名的方法
        • Service层中的修改用户名的方法
        • Dao层中修改用户名的方法
      • 用户名修改页面的前后端测试
    • 密码修改页面的建立
      • 页面布局设计
      • script逻辑部分
      • 效果图
      • 更新问题

在完成分时图的设计后,下一步的负责部分是用户的用户名修改页面和密码修改页面的设计。

用户名修改页面的建立

在vue项目的src文件夹里,在components文件夹里创建一个vue文件,命名为changeuser.vue。

页面布局设计

用户名修改的页面布局比较简洁,因为前端向后端发送请求时要发送两个参数:用户的id(在这里面为邮箱),用户需要输入修改的昵称内容。由于在用户登录的时候,在vue的store文件夹里(vue仓库)自动存入了登录的用户id,所以用户的id可以通过调用store来提取,在前端页面中只需要拿到用户想要修改的昵称内容即可。所以只需要一个输入框以及一个修改按钮。

//template部分
<template>
<div style="left: 500px;position: absolute;top: 200px;width: 600px;height:300px;background: #ffffff;border-radius: 10px"><el-form label-width="0px" style="margin: 0;padding: 0"><div class="login-title" >scow修改用户名</div><!--div style="margin-top:5px"></div--><div class="input" ><el-form-item  prop="newuser"><el-input class="textarea" v-model="newuser"  placeholder="请输入新用户名"></el-input></el-form-item></div><div class="button-my"><el-form-item><el-button  class="el-button–primary" type="success" @click="confirm"  style="width:500px;position: absolute;left: 45px;top: 50px" >确定</el-button></el-form-item></div>
</el-form>
</div>
</template>
//style部分
<style scoped>.input{}.button-my{margin: 0 0px 40px 5px;}.el-button–primary{color: #ffffff;font-size: 20px;font-weight: bold;font-family: “Microsoft YaHei”;}.textarea>>>.el-input__inner{border-left-color: #ffffff;border-right-color: #ffffff;border-top-color: #ffffff;border-bottom-color: #DDDDDD;border-bottom-width: 2px;border-radius: 0;width: 500px;height: 60px;left: 50px;position: absolute;top: 0;font-family: Microsoft YaHei;}.login-title {margin: 0 0px 40px 90px;color: #000000;font-size: 32px;text-align: center;font-weight: normal;margin: 0 0 18px 0;margin-top: 0px;margin-right: 0px;margin-bottom: 18px;margin-left: 0px;color:#666666;font-family: Microsoft YaHei;}
</style>

script逻辑方面

如果用户没有输入内容就点击了修改按钮,则会返回一个警告提醒用户输入的内容不能为空;如果用户输入了新昵称并修改成功会返回一个提示来提醒用户修改成功;最后用户点击修改按钮后前端会将数据传递给后端并对数据库进行修改。

<script>
import axios from 'axios'
export default {data() {return{username: '',newuser: ''}},methods:{usernull() {this.$message.error('用户名不能为空');},sucessuser() {this.$message({message: '用户名修改成功',type: 'success'});},confirm(){//数据传输const newusername = this.newuser.toString()if(newusername==''){this.usernull()}else{axios.get('api/user/ChangeNickname', {params: {userid: this.$store.state.accout,name: this.newuser}}).then(res=>{console.log(res.data)if(res.data.code === '200'){this.$store.commit("logname",newusername);this.sucessuser()}this.newuser=''
//        console.log(res.data)}).catch(err=>{console.log(err)})}}}
}
</script>

效果图

在这里插入图片描述

用户名修改页面的后端部分

后端Controller层中的修改用户名的方法
	@RequestMapping(value = "/ChangeNickname",method = RequestMethod.GET )@ResponseBodypublic CommonResult ChangeNickname(@NotNull(message = "userid 不允许为空") String userid,String name){return  umsAdminService.ChangeNickname(userid,name);}
Service层中的修改用户名的方法
	@Overridepublic CommonResult ChangeNickname(String userid, String nemNickname) {userDao.upDataForNicknameById(userid,nemNickname);return CommonResult.success(userid);}
Dao层中修改用户名的方法
<update id="upDataForNicknameById" parameterType="java.util.Map">UPDATE users SET nickname = #{nickname,jdbcType=VARCHAR} where userid=#{userid}
</update>

用户名修改页面的前后端测试

在修改用户的昵称之前,先在数据库里查看用户id为2的用户的昵称:
在这里插入图片描述
可以看到此时用户id为2的用户昵称为777。

在浏览器中输入后端对应的接口地址:http://localhost:9000/user/ChangeNickname?userid=2&name=555,然后得到的返回信息如下:
在这里插入图片描述
可以得到的修改成功的返回数据有三个,我们以code的内容为标准,如果返回的code的值为200,则修改用户名成功。此时数据库中用户id为2的昵称为:
在这里插入图片描述
可以看到修改成功了。

随后我们再从前端开始测试,我们选择将用户id为2的用户昵称从777改为888:
在这里插入图片描述

可以看到修改成功的返回提示:
在这里插入图片描述
再从数据库中查看id为2的用户的昵称是否改变:
在这里插入图片描述

可以看到id为2的用户的昵称从555变为了888,测试成功!

密码修改页面的建立

与用户名修改页面的建立相同,在vue项目的src文件夹里,在components文件夹里创建一个vue文件,命名为changepass.vue。

页面布局设计

密码修改页面初步设定的内容是两个输入框,分别是输入原密码和输入要修改的密码。另外在vue的store文件夹中拿到当前登录的用户的id,所以一共向后端传三个参数。

//template部分
<template>
<div style="left: 500px;position: absolute;top: 200px;width: 600px;height: 320px;background: #ffffff;border-radius: 10px"><el-form  label-width="0px" style="margin: 0;padding: 0"><div class="login-title" >scow修改密码</div><!--div style="margin-top:5px"></div--><div class="input" >
<el-form-item  prop="password" style="border: none"><el-input class="textarea"  v-model="pass" placeholder="请输入原密码" ></el-input></el-form-item><el-form-item  prop="Password"><el-input class="textarea" v-model="newpass"  placeholder="请输入新密码"  ></el-input></el-form-item></div><div class="button-my"><el-form-item><el-button  class="el-button–primary" type="success" @click="confirm"  style="width:500px;position: absolute;left: 40px;top: 70px" >确定</el-button></el-form-item></div>
</el-form>
</div>
</template>
//style部分
<style scoped>.input{}.button-my{margin: 0 0px 40px 5px;}.el-button–primary{color: #ffffff;font-size: 20px;font-weight: bold;font-family: “Microsoft YaHei”;}.textarea>>>.el-input__inner{border-left-color: #ffffff;border-right-color: #ffffff;border-top-color: #ffffff;border-bottom-color: #DDDDDD;border-bottom-width: 2px;border-radius: 0;width: 500px;height: 60px;font-family: Microsoft YaHei;position: absolute;left: 40px;}.login-title {margin: 0 0px 40px 90px;color: #000000;font-size: 32px;text-align: center;font-weight: normal;margin: 0 0 18px 0;margin-top: 0px;margin-right: 0px;margin-bottom: 18px;margin-left: 0px;color:#666666;font-family: Microsoft YaHei;}
</style>

script逻辑部分

与用户名修改页面一样,密码修改页面对输入框也有判空的警告提示以及修改成功的消息提示,但是密码修改还多了一个要求就是输入的原密码内容要与此时用户的密码相同,如果不同的话还是会判定成密码修改失败。这个功能的实现放在后端,在后端提取用户数据库当前的密码与输入的原密码进行相等的判断,如果不相等则返回false,相等则进行修改,然后返回true。

<script>
import axios from 'axios'
export default {data() {return{pass: '',newpass: ''}},methods:{passnull() {this.$message.error('原始密码不能为空');},newpassnull() {this.$message.error('新密码不能为空');},sucesspass() {this.$message({message: '密码修改成功',type: 'success'});},confirm(){//数据传输const password = this.pass.toString()const newpassword = this.newpass.toString()if (password == ''){this.passnull()}else if(newpassword == ''){this.newpassnull()}else{axios.get('api/changepass', {params: {account: this.$store.state.accout,password: this.pass,newpassword: this.newpass}}).then(res=>{if(res.data === true){this.$alert('修改成功', '提示', {confirmButtonText: '确定'});}else if(res.data === false){this.sucesspass()}}).catch(err=>{console.log(err)})}}}
}
</script>

效果图

在这里插入图片描述

更新问题

在项目后期对后端进行了大整改,最后决定在密码修改部分加入邮箱验证码,密码修改页面的前端修改及测试就交给了组长来处理。

这篇关于牛股项目流程(三)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/319308

相关文章

Nginx分布式部署流程分析

《Nginx分布式部署流程分析》文章介绍Nginx在分布式部署中的反向代理和负载均衡作用,用于分发请求、减轻服务器压力及解决session共享问题,涵盖配置方法、策略及Java项目应用,并提及分布式事... 目录分布式部署NginxJava中的代理代理分为正向代理和反向代理正向代理反向代理Nginx应用场景

vite搭建vue3项目的搭建步骤

《vite搭建vue3项目的搭建步骤》本文主要介绍了vite搭建vue3项目的搭建步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学... 目录1.确保Nodejs环境2.使用vite-cli工具3.进入项目安装依赖1.确保Nodejs环境

idea+spring boot创建项目的搭建全过程

《idea+springboot创建项目的搭建全过程》SpringBoot是Spring社区发布的一个开源项目,旨在帮助开发者快速并且更简单的构建项目,:本文主要介绍idea+springb... 目录一.idea四种搭建方式1.Javaidea命名规范2JavaWebTomcat的安装一.明确tomcat

pycharm跑python项目易出错的问题总结

《pycharm跑python项目易出错的问题总结》:本文主要介绍pycharm跑python项目易出错问题的相关资料,当你在PyCharm中运行Python程序时遇到报错,可以按照以下步骤进行排... 1. 一定不要在pycharm终端里面创建环境安装别人的项目子模块等,有可能出现的问题就是你不报错都安装

Spring Boot分层架构详解之从Controller到Service再到Mapper的完整流程(用户管理系统为例)

《SpringBoot分层架构详解之从Controller到Service再到Mapper的完整流程(用户管理系统为例)》本文将以一个实际案例(用户管理系统)为例,详细解析SpringBoot中Co... 目录引言:为什么学习Spring Boot分层架构?第一部分:Spring Boot的整体架构1.1

nodejs打包作为公共包使用的完整流程

《nodejs打包作为公共包使用的完整流程》在Node.js项目中,打包和部署是发布应用的关键步骤,:本文主要介绍nodejs打包作为公共包使用的相关资料,文中通过代码介绍的非常详细,需要的朋友可... 目录前言一、前置准备二、创建与编码三、一键构建四、本地“白嫖”测试(可选)五、发布公共包六、常见踩坑提醒

uni-app小程序项目中实现前端图片压缩实现方式(附详细代码)

《uni-app小程序项目中实现前端图片压缩实现方式(附详细代码)》在uni-app开发中,文件上传和图片处理是很常见的需求,但也经常会遇到各种问题,下面:本文主要介绍uni-app小程序项目中实... 目录方式一:使用<canvas>实现图片压缩(推荐,兼容性好)示例代码(小程序平台):方式二:使用uni

Ubuntu向多台主机批量传输文件的流程步骤

《Ubuntu向多台主机批量传输文件的流程步骤》:本文主要介绍在Ubuntu中批量传输文件到多台主机的方法,需确保主机互通、用户名密码统一及端口开放,通过安装sshpass工具,准备包含目标主机信... 目录Ubuntu 向多台主机批量传输文件1.安装 sshpass2.准备主机列表文件3.创建一个批处理脚

MyCat分库分表的项目实践

《MyCat分库分表的项目实践》分库分表解决大数据量和高并发性能瓶颈,MyCat作为中间件支持分片、读写分离与事务处理,本文就来介绍一下MyCat分库分表的实践,感兴趣的可以了解一下... 目录一、为什么要分库分表?二、分库分表的常见方案三、MyCat简介四、MyCat分库分表深度解析1. 架构原理2. 分

一个Java的main方法在JVM中的执行流程示例详解

《一个Java的main方法在JVM中的执行流程示例详解》main方法是Java程序的入口点,程序从这里开始执行,:本文主要介绍一个Java的main方法在JVM中执行流程的相关资料,文中通过代码... 目录第一阶段:加载 (Loading)第二阶段:链接 (Linking)第三阶段:初始化 (Initia