牛股项目流程(三)

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

相关文章

Security OAuth2 单点登录流程

单点登录(英语:Single sign-on,缩写为 SSO),又译为单一签入,一种对于许多相互关连,但是又是各自独立的软件系统,提供访问控制的属性。当拥有这项属性时,当用户登录时,就可以获取所有系统的访问权限,不用对每个单一系统都逐一登录。这项功能通常是以轻型目录访问协议(LDAP)来实现,在服务器上会将用户信息存储到LDAP数据库中。相同的,单一注销(single sign-off)就是指

Spring Security基于数据库验证流程详解

Spring Security 校验流程图 相关解释说明(认真看哦) AbstractAuthenticationProcessingFilter 抽象类 /*** 调用 #requiresAuthentication(HttpServletRequest, HttpServletResponse) 决定是否需要进行验证操作。* 如果需要验证,则会调用 #attemptAuthentica

这15个Vue指令,让你的项目开发爽到爆

1. V-Hotkey 仓库地址: github.com/Dafrok/v-ho… Demo: 戳这里 https://dafrok.github.io/v-hotkey 安装: npm install --save v-hotkey 这个指令可以给组件绑定一个或多个快捷键。你想要通过按下 Escape 键后隐藏某个组件,按住 Control 和回车键再显示它吗?小菜一碟: <template

如何用Docker运行Django项目

本章教程,介绍如何用Docker创建一个Django,并运行能够访问。 一、拉取镜像 这里我们使用python3.11版本的docker镜像 docker pull python:3.11 二、运行容器 这里我们将容器内部的8080端口,映射到宿主机的80端口上。 docker run -itd --name python311 -p

在cscode中通过maven创建java项目

在cscode中创建java项目 可以通过博客完成maven的导入 建立maven项目 使用快捷键 Ctrl + Shift + P 建立一个 Maven 项目 1 Ctrl + Shift + P 打开输入框2 输入 "> java create"3 选择 maven4 选择 No Archetype5 输入 域名6 输入项目名称7 建立一个文件目录存放项目,文件名一般为项目名8 确定

Vue3项目开发——新闻发布管理系统(六)

文章目录 八、首页设计开发1、页面设计2、登录访问拦截实现3、用户基本信息显示①封装用户基本信息获取接口②用户基本信息存储③用户基本信息调用④用户基本信息动态渲染 4、退出功能实现①注册点击事件②添加退出功能③数据清理 5、代码下载 八、首页设计开发 登录成功后,系统就进入了首页。接下来,也就进行首页的开发了。 1、页面设计 系统页面主要分为三部分,左侧为系统的菜单栏,右侧

SpringBoot项目是如何启动

启动步骤 概念 运行main方法,初始化SpringApplication 从spring.factories读取listener ApplicationContentInitializer运行run方法读取环境变量,配置信息创建SpringApplication上下文预初始化上下文,将启动类作为配置类进行读取调用 refresh 加载 IOC容器,加载所有的自动配置类,创建容器在这个过程

Maven创建项目中的groupId, artifactId, 和 version的意思

文章目录 groupIdartifactIdversionname groupId 定义:groupId 是 Maven 项目坐标的第一个部分,它通常表示项目的组织或公司的域名反转写法。例如,如果你为公司 example.com 开发软件,groupId 可能是 com.example。作用:groupId 被用来组织和分组相关的 Maven artifacts,这样可以避免

2. 下载rknn-toolkit2项目

官网链接: https://github.com/airockchip/rknn-toolkit2 安装好git:[[1. Git的安装]] 下载项目: git clone https://github.com/airockchip/rknn-toolkit2.git 或者直接去github下载压缩文件,解压即可。

9.8javaweb项目总结

1.主界面用户信息显示 登录成功后,将用户信息存储在记录在 localStorage中,然后进入界面之前通过js来渲染主界面 存储用户信息 将用户信息渲染在主界面上,并且头像设置跳转,到个人资料界面 这里数据库中还没有设置相关信息 2.模糊查找 检测输入框是否有变更,有的话调用方法,进行查找 发送检测请求,然后接收的时候设置最多显示四个类似的搜索结果