VueJS實(shí)現(xiàn)用戶管理系統(tǒng)
本文實(shí)例為大家分享了VueJS實(shí)現(xiàn)用戶管理系統(tǒng)的具體代碼,供大家參考,具體內(nèi)容如下
源代碼
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no,
initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>用戶管理系統(tǒng)</title>
<script src="js/jquery.js"></script>
<script src="js/bootstrap.js"></script>
<script src="js/vue.js"></script>
<link rel="stylesheet" href="css/bootstrap.css" type="text/css">
<script>
$(function () {
let vm = new Vue({
el: '#app',
data: {
user: {},
users: [
{name: 'Switch', age: 25, email: 'switchvov@163.com'},
{name: 'Kitty', age: 25, email: 'kitty@163.com'},
],
nowIndex: -1, // 當(dāng)前要?jiǎng)h除項(xiàng)的索引
delIndexes: [], // 刪除項(xiàng)索引列表
selectAll: false, // 刪除所有
disableDelSelect: true, // 關(guān)閉刪除選項(xiàng)
modalTarget: '',
modalToggle: ''
},
methods: {
addUser: function () {
this.users.push(this.user);
this.user = {};
},
deleteUser: function () {
if (this.delIndexes.length > 0) {
// 從大到小排序,不排序則會(huì)出現(xiàn)刪除錯(cuò)亂
this.delIndexes.sort(function (a, b) {
return b - a;
});
for (let i = 0; i < this.delIndexes.length; i++) {
this.users.splice(this.delIndexes[i], 1);
}
this.delIndexes = [];
this.selectAll = false;
return;
}
if (this.nowIndex === -1) {
this.users = [];
return;
}
this.users.splice(this.nowIndex, 1);
},
toggleAll: function () {
if (this.selectAll) {
let length = this.users.length;
this.delIndexes = [];
for (let i = 0; i < length; i++) {
this.delIndexes.push(i);
}
return;
}
this.delIndexes = [];
}
},
watch: {
delIndexes: function () {
if (this.delIndexes.length > 0) {
this.disableDelSelect = false;
this.modalTarget = '#del';
this.modalToggle = 'modal';
return;
}
this.disableDelSelect = true;
}
}
});
});
</script>
</head>
<body>
<div id="app" class="container">
<h2 class="text-center">添加用戶</h2>
<form class="form-horizontal">
<div class="form-group">
<label for="name" class="control-label col-sm-2 col-sm-offset-2">姓 名:</label>
<div class="col-sm-6">
<input type="text" class="form-control" id="name" v-model="user.name" placeholder="請(qǐng)輸入姓名">
</div>
</div>
<div class="form-group">
<label for="age" class="control-label col-sm-2 col-sm-offset-2">年 齡:</label>
<div class="col-sm-6">
<input type="text" class="form-control" id="age" v-model="user.age" placeholder="請(qǐng)輸入年齡">
</div>
</div>
<div class="form-group">
<label for="email" class="control-label col-sm-2 col-sm-offset-2">郵 箱:</label>
<div class="col-sm-6">
<input type="text" class="form-control" id="email" v-model="user.email" placeholder="請(qǐng)輸入郵箱">
</div>
</div>
<div class="form-group text-center">
<input type="button" value="添 加" class="btn btn-primary" @click="addUser">
<input type="reset" value="重 置" class="btn btn-primary">
</div>
</form>
<br/>
<table class="table table-bordered table-hover">
<caption class="h3 text-center text-info">用戶列表</caption>
<thead>
<tr>
<th class="text-center">
<input type="checkbox" @click="toggleAll" v-model="selectAll">
</th>
<th class="text-center">序號(hào)</th>
<th class="text-center">姓名</th>
<th class="text-center">年齡</th>
<th class="text-center">郵箱</th>
<th class="text-center">操作</th>
</tr>
</thead>
<tbody>
<tr v-for="(user, index) in users" class="text-center">
<td>
<input type="checkbox" :value="index" :id="index" v-model="delIndexes" @click="selectAll = false">
</td>
<td>{{ index+1 }}</td>
<td>{{ user.name }}</td>
<td>{{ user.age }}</td>
<td>{{ user.email }}</td>
<td>
<button class="btn btn-danger" data-toggle="modal" data-target="#del" @click="nowIndex = index;delIndexes=[]">
刪除
</button>
</td>
</tr>
<tr>
<td colspan="6" class="text-right">
<button class="btn btn-danger" data-toggle="modal" data-target="#del" @click="nowIndex = -1;delIndexes=[]">
刪除所有
</button>
<button class="btn btn-danger" :data-toggle="modalToggle" :data-target="modalTarget"
:class="{disabled:disableDelSelect}">
刪除選中
</button>
</td>
</tr>
</tbody>
</table>
<!-- 彈出框 -->
<div class="modal" id="del">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button class="close" data-dismiss="modal">
<span>×</span>
</button>
<h4 class="modal-title" v-show="delIndexes.length > 0">
確認(rèn)要?jiǎng)h除用戶
<span v-for="(value, index) in delIndexes">
{{ users[value].name }}
<span v-if="index < delIndexes.length - 1">、</span>
</span>
嗎?
</h4>
<h4 class="modal-title" v-show="delIndexes.length === 0 && nowIndex !== -1">
確認(rèn)要?jiǎng)h除用戶{{ users[nowIndex] ? users[nowIndex].name : '' }}嗎?
</h4>
<h4 class="modal-title" v-show="delIndexes.length === 0 && nowIndex === -1">
確認(rèn)要?jiǎng)h除所有用戶嗎?
</h4>
</div>
<div class="modal-body text-center">
<button class="btn btn-primary" data-dismiss="modal">取消</button>
<button class="btn btn-primary" data-dismiss="modal" @click="deleteUser">確認(rèn)</button>
</div>
</div>
</div>
</div>
</div>
</body>
</html>
GitHub:vue-user-manager
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
遇到vue前端npm?i報(bào)錯(cuò)多個(gè)版本不一致問(wèn)題及解決
這篇文章主要介紹了遇到vue前端npm?i報(bào)錯(cuò)多個(gè)版本不一致問(wèn)題及解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-03-03
vuex數(shù)據(jù)狀態(tài)持久化問(wèn)題
這篇文章主要介紹了vuex數(shù)據(jù)狀態(tài)持久化問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-10-10
vue引入elementUi后打開(kāi)頁(yè)面報(bào)錯(cuò)Uncaught?TypeError的解決方式
這篇文章主要給大家介紹了關(guān)于vue引入elementUi后打開(kāi)頁(yè)面報(bào)錯(cuò)Uncaught?TypeError:?Cannot?read?properties?of?undefined(reading?‘prototype‘)的解決方式,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下2022-08-08
Vue 使用計(jì)時(shí)器實(shí)現(xiàn)跑馬燈效果的實(shí)例代碼
這篇文章主要介紹了Vue 使用計(jì)時(shí)器實(shí)現(xiàn)跑馬燈效果,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值 ,需要的朋友可以參考下2019-07-07
vue實(shí)現(xiàn)點(diǎn)擊翻轉(zhuǎn)效果
這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)點(diǎn)擊翻轉(zhuǎn)效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-07-07
vue項(xiàng)目部署跨域問(wèn)題的詳細(xì)解決過(guò)程
一般我們的前端Vue項(xiàng)目中都會(huì)涉及到跨域的問(wèn)題,下面這篇文章主要給大家介紹了關(guān)于vue項(xiàng)目部署跨域問(wèn)題的詳細(xì)解決過(guò)程,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-05-05
詳解如何使用vue和electron開(kāi)發(fā)一個(gè)桌面應(yīng)用
這篇文章主要為大家介紹了詳解如何使用vue和electron開(kāi)發(fā)一個(gè)桌面應(yīng)用,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-03-03
vuedraggable+element ui實(shí)現(xiàn)頁(yè)面控件拖拽排序效果
這篇文章主要為大家詳細(xì)介紹了vuedraggable+element ui實(shí)現(xiàn)頁(yè)面控件拖拽排序效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-12-12

