vue.js搭建使用者管理系統練手(七)----使用者詳情的修改和刪除
在CustomerDetails.vue的詳情頁面新增刪除和修改按鈕,刪除的邏輯比較簡單,直接通過按鈕的click事件來請求網路完成刪除,而編輯事件需要我們去新建一個Edit.vue元件來完成,Edit.vue和Add.vue很像,仿照來寫就好!
CustomerDetails.vue:
<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" v-on:click="deleteCustomer(customer.id)">刪除</button>
</span>
</h1>
<ul>
<li class="list-group-item"><span class="glyphicon glyphicon-star">{{customer.phone}}</span></li>
<li class="list-group-item"><span class="glyphicon glyphicon-star">{{customer.email}}</span></li>
<li class="list-group-item"><span class="glyphicon glyphicon-star">{{customer.education}}</span></li>
<li class="list-group-item"><span class="glyphicon glyphicon-star">{{customer.graduationschool}}</span></li>
<li class="list-group-item"><span class="glyphicon glyphicon-star">{{customer.profession}}</span></li>
<li class="list-group-item"><span class="glyphicon glyphicon-star">{{customer.profile}}</span></li>
</ul>
</div>
</template>
<script>
export default {
name: 'customerdetails',
data () {
return {
customer:""
}
},
methods:{
fetchCustomers(id){
this.$http.get("http://localhost:3000/users/"+id)
.then(function(response){
console.log(response);
this.customer = response.body;
})
},
deleteCustomer(id){
this.$http.delete("http://localhost:3000/users/"+id).
then(function(response){
this.$router.push({path:"/",query:{alert:"使用者刪除成功"}});
})
}
},
created(){
this.fetchCustomers(this.$route.params.id);
}
}
</script>
<!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped>
</style>
在components下新建Edit.vue:
<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://localhost:3000/users/"+id)
.then(function(response){
// console.log(response);
this.customer = response.body;
})
},
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://localhost:3000/users/"+this.$route.params.id,updateCustomer)
.then(function(response){
// console.log(response);
this.$router.push({path:"/",query:{alert:"使用者資訊更新成功!"}});
})
e.preventDefault();
}
e.preventDefault();
}
},
created(){
this.fetchCustomer(this.$route.params.id);
},
components:{
Alert
}
}
</script>
<!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped>
</style>
<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://localhost:3000/users/"+id)
.then(function(response){
// console.log(response);
this.customer = response.body;
})
},
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://localhost:3000/users/"+this.$route.params.id,updateCustomer)
.then(function(response){
// console.log(response);
this.$router.push({path:"/",query:{alert:"使用者資訊更新成功!"}});
})
e.preventDefault();
}
e.preventDefault();
}
},
created(){
this.fetchCustomer(this.$route.params.id);
},
components:{
Alert
}
}
</script>
<!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped>
</style>
這裡使用fetchCustomer方法是為了將老資料填到修改頁面,對使用者操作更加友好,通過
this.$http.put("http://localhost:3000/users/"+this.$route.params.id,updateCustomer)
.then(function(response){
// console.log(response);
this.$router.push({path:"/",query:{alert:"使用者資訊更新成功!"}});
})
來修改資料!
相關文章
- vue.js搭建使用者管理系統練手(六)----使用者詳情Vue.js
- vue.js搭建使用者管理系統練手(二)----頁面框架搭建Vue.js框架
- vue.js搭建使用者管理系統練手(五)----嵌入彈窗元件Vue.js元件
- vue.js搭建使用者管理系統練手(八)----實現搜尋功能Vue.js
- vue.js搭建使用者管理系統練手(一)----配置json-serverVue.jsJSONServer
- vue.js搭建使用者管理系統練手(三)----http請求列表資料Vue.jsHTTP
- vue.js搭建使用者管理系統練手(四)----http請求新增列表資料Vue.jsHTTP
- Linux 建立修改刪除使用者和組Linux
- Oracle使用者的建立和刪除Oracle
- Oracle使用者的新增、修改、刪除及授權Oracle
- MySQL新建使用者,授權,刪除使用者,修改密碼MySql密碼
- Linux作業系統的使用者和使用者組管理詳解(轉)Linux作業系統
- ubuntu 建立和刪除使用者Ubuntu
- Django搭建個人部落格:使用者的刪除Django
- 刪除使用者全部物件,不用刪除使用者(摘)物件
- Linux使用者的建立和刪除Linux
- linux建立使用者、設定密碼、修改使用者、刪除使用者Linux密碼
- php實現openfire使用者同步新增,刪除,修改PHP
- Linux系統中如何新增刪除使用者及使用者組?Linux
- Linux建立使用者、設定密碼、修改使用者、刪除使用者命令Linux密碼
- Win10怎樣刪除使用者配置檔案 win10系統刪除使用者配置的圖文教程Win10
- 【收藏】Linux新增/刪除使用者和使用者組Linux
- win10 刪除管理員使用者方法 win10如何刪除管理員Win10
- oracle 刪除使用者Oracle
- 系統使用者與使用者組的管理
- Linux下建立和刪除使用者Linux
- linux批量建立和刪除使用者Linux
- mysql使用者建立、修改、刪除及授權操作的總結MySql
- MySql中新增使用者,新建資料庫,使用者授權,刪除使用者,修改密碼MySql資料庫密碼
- mongodb使用者許可權管理最全攻略:使用者的建立、檢視、刪除與修改,mongodb入坑之旅MongoDB
- jumpserver 使用者,系統使用者和管理使用者 普通使用者和特權使用者 區別Server
- Linux下使用者的管理(使用者新增,刪除,查詢,切換等)Linux
- Oracle 禁止刪除使用者Oracle
- 刪除GoldenGate使用者Go
- Linux精講——增加和刪除使用者Linux
- mysql 資料插入和更新及刪除詳情FSSHMySql
- 建立檢視修改和刪除基於策略的管理策略
- 修改 Ubuntu 系統使用者名稱和登入名Ubuntu