1. 程式人生 > >vue+element增刪改查

vue+element增刪改查

新專案使用的是vue.js 後來發現餓了嗎前端編寫的一套框架Element (http://element.eleme.io/#/zh-CN)來配合vue.js進行樣式填充 
之前用過angularjs 用到後來 發現越來越難學 於是就決定用vue.js 
下面就介紹一下vue.js應用在表格裡的增刪改查 
首先安裝相關js以及css

import 'element-ui/lib/theme-default/index.css'

import Vue from 'vue'
import $ from 'jquery'
import vueResource from 'vue-resource'
import ElementUI from 'element-ui' window.$ = $; Vue.use(ElementUI); Vue.use(vueResource);
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

下面先說一下html檔案

<div id="user">
    <!-- 操作 -->
    <ul class="btn-edit fr">
        <li >
            <el-button type="primary" @click="dialogCreateVisible = true">新增使用者</el-button
>
<el-button type="primary" icon="delete" :disabled="selected.length==0" @click="removeUsers()" >刪除</el-button> <el-button type="primary" icon="edit" :disabled="selected.length==0" >停用</el-button> <el-button type="primary" icon="edit" :disabled
="selected.length==0" >
啟用</el-button> </li> </ul> <!-- 使用者列表--> <el-table :data="users" stripe v-loading="loading" element-loading-text="拼命載入中..." style="width: 100%" height="443" @sort-change="tableSortChange" @selection-change="tableSelectionChange"> <el-table-column type="selection" width="60"> </el-table-column> <el-table-column sortable="custom" prop="username" label="使用者名稱" width="120"> </el-table-column> <el-table-column prop="name" label="姓名" width="120"> </el-table-column> <el-table-column prop="phone" label="手機" > </el-table-column> <el-table-column prop="email" label="郵箱"> </el-table-column> <el-table-column prop="create_time" sortable="custom" inline-template label="註冊日期" width="260"> <div>
{{ row.create_time | moment('YYYYMMDDHH:mm:ss')}}</div> </el-table-column> <el-table-column inline-template label="操作" width="250"> <span> <el-button type="primary" size="mini" @click="removeUser(row)">刪除</el-button> <el-button type="primary" size="mini" @click="setCurrent(row)">編輯</el-button> </span> </el-table-column> </el-table> <!--分頁begin--> <el-pagination class="tc mg" :current-page="filter.page" :page-sizes="[10, 20, 50, 100]" :page-size="filter.per_page" layout="total, sizes, prev, pager, next, jumper" :total="total_rows" @size-change="pageSizeChange" @current-change="pageCurrentChange"> </el-pagination> <!--分頁end--> </div>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63

這一段是element的表單以及編輯還有分頁樣式 可以直接複製進來 其中添加了一些click操作 後面需要用到 
然後我們就開始引入js

瞭解過vuejs的應該知道這樣的結構 data裡面填寫我們獲取的資料 一些規則 定義一些變數 
在methods進行我們的操作

    vm = new Vue({
        el: '#user',
            data:{},
            methods:{}
    })
  • 1
  • 2
  • 3
  • 4
  • 5

首先 我們先從讀取資料開始 
放入你的url 
users是表格繫結的陣列 也是存放從後臺獲取的資料 
將需要顯示的資料放在filter中

vm = new Vue({
   el: '#user',
    // 資料模型
    data: function() {
        return {
            url: 'url',
            users: [],
            filter: {
                per_page: 10, // 頁大小
                page: 1, // 當前頁
                name:'',
                username:'',
                phone:'',
                is_active:'',
                sorts:''
            },
            total_rows: 0,
            loading: true,
        };
    },
    methods:{}
})
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22

接下來我們新增methods 
pageSizeChange() 以及 pageCurrentChange()是用於分頁的函式 
在query() 是用於搜尋的專案 
getUsers() 就是用於獲取資料

 methods: {
        pageSizeChange(val) {
            this.filter.per_page = val;
            this.getUsers();
        },
        pageCurrentChange(val) {
            this.filter.page = val;
            this.getUsers();
        },
        query(){
            this.filter.name='';
            this.filter.username='';
            this.filter.phone='';
            this.filter[this.select]=this.keywords;
            this.getUsers();
        },
        // 獲取使用者列表
        getUsers() {
            this.loading = true;

            var resource = this.$resource(this.url);
            resource.query(this.filter)
                .then((response) => {
                    this.users = response.data.datas;
                    this.total_rows = response.data.total_rows;
                    this.loading = false;
                })
                .catch((response)=> {
                    this.$message.error('錯了哦,這是一條錯誤訊息');
                    this.loading = false;
                });

        },
    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34

讀取完資料之後 我們可以看見資料是按照每頁十條顯示 是上面我們預設設定的 
下面進行刪除操作 刪除我設定的是單條刪除以及多條刪除 
因為刪除需要選中 所以我們需要加入選中的變數

vm = new Vue({
   el: '#user',
    // 資料模型
    data: function() {

        return {
            url: 'http://172.10.0.201/api/v1/accounts',
            users: [
            ],
            filter: {
                per_page: 10, // 頁大小
                page: 1, // 當前頁
                name:'',
                username:'',
                phone:'',
                is_active:'',
                sorts:''
            },
            total_rows: 0,
            loading: true,
            selected: [], //已選擇項
        };
    },
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23

然後在methods也要加入選中的函式

    tableSelectionChange(val) {
            console.log(val);
            this.selected = val;
        },
  • 1
  • 2
  • 3
  • 4

// 刪除單個使用者

 removeUser(user) {
     this.$confirm('此操作將永久刪除使用者 ' + user.username + ', 是否繼續?', '提示', { type: 'warning' }) 
         .then(() => { // 向請求服務端刪除 
             var resource = this.$resource(this.url + "{/id}"); 
             resource.delete({ id: user.id }) 
                 .then((response) => { 
                    this.$message.success('成功刪除了使用者' + user.username + '!');    this.getUsers(); }) 
                 .catch((response) => { 
                     this.$message.error('刪除失敗!'); 
            }); 
        }) .catch(() => { 
            this.$message.info('已取消操作!');
     }); 
}, 
//刪除多個使用者 
removeUsers() { 
    this.$confirm('此操作將永久刪除 ' + this.selected.length + ' 個使用者, 是否繼續?', '提示', { type: 'warning' }) 
        .then(() => { 
            console.log(this.selected); 
            var ids = []; //提取選中項的id 
            $.each(this.selected,(i, user)=> { ids.push(user.id); }); // 向請求服務端刪除var resource = this.$resource(this.url);
             resource.remove({ids: ids.join(",") 
            }) .then((response) => { 
            .catch((response) => { 
                this.$message.error('刪除失敗!'); 
            }); 
        }) 
        .catch(() => { 
    }); 
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30

接下來就進行到編輯和新增 
由於刪除和編輯需要加入表單

<!-- 建立使用者 begin-->
    <el-dialog title="建立使用者" v-model="dialogCreateVisible" :close-on-click-modal="false" :close-on-press-escape=
            
           

相關推薦

vue+element刪改

新專案使用的是vue.js 後來發現餓了嗎前端編寫的一套框架Element (http://element.eleme.io/#/zh-CN)來配合vue.js進行樣式填充  之前用過angularjs 用到後來 發現越來越難學 於是就決定用vue.js  下面就

vue.js+Element 刪改

新專案使用的是vue.js 後來發現餓了嗎前端編寫的一套框架Element (http://element.eleme.io/#/zh-CN)來配合vue.js進行樣式填充 之前用過angularjs 用到後來 發現越來越難學 於是就決定用vue.js

webpack4+express+mongodb+vue 實現刪改

在講解之前,我們先來看看效果如下所示: 1)整個頁面的效果如下: 2) 新增資料效果如下: 3) 新增成功如下: 4) 編輯資料效果如下:   5) 編輯成功效果如下:   6) 刪除資料效果如下:   7) 刪除成功效果如下:

VUE應用------刪改

一.增加資料:      1.首先一定要匯入vue.js,因為我是vue.js放在JS資料夾下,所以引用他的路徑即可,我一般引用路徑放在頭部; <script src="JS/Vue.js"></script>      2.原理: <in

關於vue刪改操作

delet 行數據 pie mar 分享 div pro efault alt 利用vue也可以實現數據的增刪改查,只是未涉及到數據庫,只是在瀏覽器頁面中進行操作。 將datas數組中的數據循環輸出: 再增加一行,用於保存新數據,編輯數據後保存: 此時

vue刪改

src 刪除 修改 device upd utf resp jquer width <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8">

vue實現對表格數據的刪改

bsp bin targe blank umeng com ref tps bing http://www.cnblogs.com/xumengxuan/p/7144580.html 原文地址: https://www.xiabingbao.com/vue/2017/0

vue日誌demo,刪改的練習

日誌組 sum 必須 創建 pre 方法 prev 文件夾 edit # 安裝### 1. 確定電腦已裝node和npm``` node -v ``` ``` npm -v```出現版本號則說明電腦已經安裝好node和npm### 2. 創建一個基於webpack的項目 `

vue實現數據的刪改

rip 裏的 dex email 過濾 urn push item 相對 在管理員的一些後臺頁面裏,個人中心裏的數據列表裏,都會有對這些數據進行增刪改查的操作。比如在管理員後臺的用戶列表裏,我們可以錄入新用戶的信息,也可以對既有的用戶信息進行修改。在vue中,我們更應該專註

Nodejs加Vue.js的簡單刪改

用的node做的後臺,資料庫為mysql,資料互動和頁面渲染用的vue,專案目錄圖: 話不多說,首先來看node專案的配置檔案app.js,註釋我會寫在程式碼裡 //引用模組 var express = require('express'); var path = require('p

Vue.js 使用Vue.js和Jquery做刪改

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <link href="boo

nodejs+mysql+Express+vue+layui+html實現的刪改

學習nodejs已經有一段時間了由於一些事情一直沒有寫 1.首先使用idea新建一個專案     2、建立的專案目錄如下圖所示     3.開啟app.js,找到模版引擎設定並進行修改  修改為如下程

手把手教你ExtJS從入門到放棄——篇二十三(示例20:Ext.dom.Element類中常用刪改方法詳解)

方法多多,就講部分常用的 查詢系: onReady就不寫了,上核心程式碼 contains:引數可以傳id或者元素 、 child:返回該元素的子元素 down(選擇器):根據選擇器獲取該元素下層內層元素(常用) first:獲取第一個子元素

Vue+MySQL實現購物車的刪改

1,建立簡單資料庫資料表 2,建立Mapper檔案 <!--查詢商品--> <select id="selectcommodity" resultType="Commodity"> select * from commodit

vue-cli與後臺資料互動刪改

1. 安裝vue-resource  npm install vue-resource --save 2.訪問後臺地址,在vue中會出現跨域的問題,以下為解決方案   在config下的index.js 中配置proxyTable代理設定 proxyTable: {

Vue 30分鐘搞定前端刪改

閱讀目錄 一、MVVM大比拼 二、Vue常用網址 三、Vue基礎入門 1、MVVM圖例 2、第一個Vue例項 3、雙向繫結 四、常用指令 1、v-text、v-html指令 2、v-model指令

vue+bootstrap 實現資料的刪改

需要自己吧vue這個檔案引入,可以從bootcdn中匯入 還需要把bootstrap這個檔案的css匯入 <html lang="en"> <head> <meta charset="UTF-8"> <meta name="vie

vue 刪改

5.1 -s label top del tony 方法 val urn <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>

JS元件系列——又一款MVVM元件:Vue(一:30分鐘搞定前端刪改

正文 前言:關於Vue框架,好幾個月之前就聽說過,瞭解一項新技術之後,總是處於觀望狀態,一直在猶豫要不要系統學習下。正好最近有點空,就去官網瞭解了下,看上去還不錯的一個元件,就抽空研究了下。最近園子裡vue也確實挺火,各種入門博文眼花繚亂,博主也不敢說寫

vue todolist實現刪改

new Vue({ el: "#todo", data: { newTask: "", tasks: [], editingTask: {}