zoukankan      html  css  js  c++  java
  • Vue + Springboot 开发的简单的用户管理系统

    后台接口如下:

    页面如下:

    1. 主页,显示所有的用户信息

    2. 点击详情,看到某个id的用户的详细信息

    3. 点击编辑按钮,跳转到的详细的编辑(更新)页面

    4. 添加用户页面

    对应的vue代码如下

    1. 查看所有用户的信息

    <template>
      <div class="customers container">
        <Alert v-if="alert"  v-bind:message="alert"></Alert>
        <h1 class="page-header">用户管理系统</h1>
      
        <input type="text" class="form-control" placeholder="搜索" v-model="filterInput">
        <br>
        <table class="table table-striped">
          <thead>
            <tr>
              <th>姓名</th>
              <th>电话</th>
              <th>邮箱</th>
              <th></th>
            </tr>
          </thead>
    
          <tbody>
            <tr v-for="customer in filterBy(customers,filterInput)" :key="customer.name">
              <td>{{customer.name}}</td>
              <td>{{customer.phone}}</td>
              <td>{{customer.email}}</td>
              <td><router-link class="btn btn-default" v-bind:to="'/customer/'+customer.id">详情</router-link></td>
            </tr>
          </tbody>
    
        </table>
      </div>
    </template>
    
    <script>
    import Alert from './Alert'
    export default {
      name: 'customers',
      data () {
        return {
          customers:[],
          alert:"",
          filterInput:""
        }
      },
      methods:{
        fetchCustomers(){
          this.$http.get("http://10.201.11.128:8085/showall")
              .then((response) => {
                console.log(response);
                this.customers = response.data;
              })
        },
        filterBy(customers,value){
          return customers.filter(function(customer){
             return customer.name.match(value);
          })
        }
      },
      created(){
        if (this.$route.query.alert) {
          this.alert = this.$route.query.alert;
        }
        this.fetchCustomers();
      },
      updated(){
        this.fetchCustomers();
      },
      components:{
        Alert
      }
    }
    </script>
    

      

    2. 某个id的用户的详细信息,页面中有编辑和删除按钮

    <template>
      <div class="details container">
      	<router-link to="/" class="btn btn-default">返回</router-link>
        <h1 class="page-header">
        	{{customer.name}}
    
        	<span class="pull-right">
        		<router-link class="btn btn-primary" v-bind:to="'/edit/'+customer.id">
        			编辑
        		</router-link>
        		<button class="btn btn-danger" @click="deleteCustomer(customer.id)">删除</button>
        	</span>
        </h1>
        <ul class="list-group">
        	<li class="list-group-item">
        		<span class="glyphicon glyphicon-asterisk"> 
        			{{customer.phone}}
        		</span>
        	</li>
        	<li class="list-group-item">
        		<span class="glyphicon glyphicon-plus"> 
        			{{customer.email}}
        		</span>
        	</li>
        </ul>
    
        <ul class="list-group">
        	<li class="list-group-item">
        		<span class="glyphicon glyphicon-asterisk">
        			{{customer.education}}
        		</span>
        	</li>
        	<li class="list-group-item">
        		<span class="glyphicon glyphicon-plus"> 
        			{{customer.graduationschool}}
        		</span>
        	</li>
    
    		<li class="list-group-item">
    			<span class="glyphicon glyphicon-asterisk"> 
    				{{customer.profession}}
    			</span>
    		</li>
    		<li class="list-group-item">
    			<span class="glyphicon glyphicon-plus"> 
    				{{customer.profile}}
    			</span>
    		</li>
        </ul>
      </div>
    </template>
    
    <script>
    export default {
      name: 'cumstomerdetails',
      data () {
        return {
          customer:""
        }
      },
      methods:{
      	fetchCustomers(id){
          this.$http.get("http://10.201.11.128:8085/users/"+id)
              .then((response) => {
                console.log(response);
                this.customer = response.data;
              })
        },
        deleteCustomer(id){
        	console.log(id);
        	this.$http.delete("http://10.201.11.128:8085/users/"+id)
        		.then((response) => {
        			this.$router.push({path:"/",query:{alert:"用户删除成功!"}});
        		})
        }
      },
      created(){
      	this.fetchCustomers(this.$route.params.id);
      }
    }
    </script>
    

      3. 更新页面

    <template>
      <div class="edit container">
        <Alert v-if="alert" v-bind:message="alert"></Alert>
        <h1 class="page-header">编辑用户</h1>
        <form v-on:submit="updateCustomer">
        	<div class="well">
        		<h4>用户信息</h4>
        		<div class="form-group">
        			<label>姓名</label>
        			<input type="text" class="form-control" placeholder="name" v-model="customer.name">
        		</div>
        		<div class="form-group">
        			<label>电话</label>
        			<input type="text" class="form-control" placeholder="phone" v-model="customer.phone">
        		</div>
        		<div class="form-group">
        			<label>邮箱</label>
        			<input type="text" class="form-control" placeholder="email" v-model="customer.email">
        		</div>
        		<div class="form-group">
        			<label>学历</label>
        			<input type="text" class="form-control" placeholder="education" v-model="customer.education">
        		</div>
        		<div class="form-group">
        			<label>毕业学校</label>
        			<input type="text" class="form-control" placeholder="graduationschool" v-model="customer.graduationschool">
        		</div>
        		<div class="form-group">
        			<label>职业</label>
        			<input type="text" class="form-control" placeholder="profession" v-model="customer.profession">
        		</div>
        		<div class="form-group">
        			<label>个人简介</label>
        			<!-- <input type="text" class="form-control" placeholder="profile" v-model="customer.profile"> -->
        			<textarea class="form-control" rows="10" v-model="customer.profile"></textarea>
        		</div>
        		<button type="submit" class="btn btn-primary">确认</button>
        	</div>
        </form>
      </div>
    </template>
    
    <script>
    import Alert from './Alert'
    export default {
      name: 'add',
      data () {
        return {
          customer:{},
          alert:""
        }
      },
      methods:{
        fetchCustomer(id){
            this.$http.get("http://10.201.11.128:8085/users/"+id)
                .then((response) => {
                  console.log(response);
                  this.customer = response.data;
                })
        },
      	updateCustomer(e){
      		// console.log(123);
      		if (!this.customer.name || !this.customer.phone || !this.customer.email) {
            // console.log("请添加对应的信息!");
      			this.alert = "请添加对应的信息!";
      		}else{
      			let updateCustomer = {
      				name:this.customer.name,
      				phone:this.customer.phone,
      				email:this.customer.email,
      				education:this.customer.education,
      				graduationschool:this.customer.graduationschool,
      				profession:this.customer.profession,
      				profile:this.customer.profile
      			}
      			this.$http.put("http://10.201.11.128:8085/edit/"+this.$route.params.id,updateCustomer)
      				.then((response) => {
      					console.log(response);
      					this.$router.push({path:"/",query:{alert:"用户信息更新成功!"}});
      				})
      			e.preventDefault();
      		}
      		e.preventDefault();
      	}
      },
      created(){
        this.fetchCustomer(this.$route.params.id);
      },
      components:{
        Alert
      }
    }
    </script>
    

      4. 注册页面

    <template>
      <div class="add container">
      	<Alert v-if="alert" v-bind:message="alert"></Alert>
        <h1 class="page-header">添加用户</h1>
        <form v-on:submit="addCustomer">
        	<div class="well">
        		<h4>用户信息</h4>
        		<div class="form-group">
        			<label>姓名</label>
        			<input type="text" class="form-control" placeholder="name" v-model="customer.name">
        		</div>
        		<div class="form-group">
        			<label>电话</label>
        			<input type="text" class="form-control" placeholder="phone" v-model="customer.phone">
        		</div>
        		<div class="form-group">
        			<label>邮箱</label>
        			<input type="text" class="form-control" placeholder="email" v-model="customer.email">
        		</div>
        		<div class="form-group">
        			<label>学历</label>
        			<input type="text" class="form-control" placeholder="education" v-model="customer.education">
        		</div>
        		<div class="form-group">
        			<label>毕业学校</label>
        			<input type="text" class="form-control" placeholder="graduationschool" v-model="customer.graduationschool">
        		</div>
        		<div class="form-group">
        			<label>职业</label>
        			<input type="text" class="form-control" placeholder="profession" v-model="customer.profession">
        		</div>
        		<div class="form-group">
        			<label>个人简介</label>
        			<!-- <input type="text" class="form-control" placeholder="profile" v-model="customer.profile"> -->
        			<textarea class="form-control" rows="10" v-model="customer.profile"></textarea>
        		</div>
        		<button type="submit" class="btn btn-primary">添加</button>
        	</div>
        </form>
      </div>
    </template>
    
    <script>
    import Alert from './Alert'
    export default {
      name: 'add',
      data () {
        return {
          customer:{},
          alert:""
        }
      },
      methods:{
      	addCustomer(e){
      		// console.log(123);
      		if (!this.customer.name || !this.customer.phone || !this.customer.email) {
      			// console.log("请添加对应的信息!");
      			this.alert = "请添加对应的信息!";
      		}else{
      			let newCustomer = {
      				name:this.customer.name,
      				phone:this.customer.phone,
      				email:this.customer.email,
      				education:this.customer.education,
      				graduationschool:this.customer.graduationschool,
      				profession:this.customer.profession,
      				profile:this.customer.profile
      			}
    
      			this.$http.post("http://10.201.11.128:8085/users",newCustomer)
      				.then((response) => {
      					console.log(response);
      					this.$router.push({path:"/",query:{alert:"用户信息添加成功!"}});
      				})
      			e.preventDefault();
      		}
      		e.preventDefault();
      	}
      },
      components:{
      	Alert
      }
    }
    </script>
    

      所有页面中带有一个alert组件

    <template>
      <div class="alert alert-warning alert-dismissible" role="alert">
      <button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">×</span></button>
      {{message}}
    </div>
    </template>
    
    <script>
    export default {
      name: 'alert',
      props:["message"],
      data () {
        return {
          
        }
      }
    }
    </script>
    

      

  • 相关阅读:
    如何实现分页功能
    学习Python的心路历程
    Python基础---协程
    Python基础---线程
    Python基础---python中的进程操作
    Python基础---进程相关基础
    Python基础---并发编程(操作系统的发展史)
    Python基础---网络编程3
    Python基础---网络编程2
    Python基础---面向对象3
  • 原文地址:https://www.cnblogs.com/qianjinyan/p/10997001.html
Copyright © 2011-2022 走看看