效果如图:

前提是搭好vue前端框架,npm install mockjs引入mock.js

当前页全部代码如下,其他有关element-ui的引入未提到,仅作参考用

<!-- 用户管理 -->
<template>
    <div class="c-main auth userControl">
        <!-- 头部信息 Start -->
        <div class="c-search">
            <!--<button class="c-btn c-primary" @click="handleShowDialog(1)">添加操作员1</button>-->
            <table>
                <thead>
                <tr>
                    <td><nobr>设备名称</nobr></td>
                    <td><el-input size="mini"></el-input></td>
                    <td><nobr>所属线别</nobr></td>
                    <td><el-input size="mini"></el-input></td>
                    <td><nobr>所属车间</nobr></td>
                    <td><el-input size="mini"></el-input></td>
                    <td>
                        <nobr>
                            <a @click="showSeach()">
                                {{ setShowMsg }}
                                <i v-bind:class="{
                                'el-icon-arrow-down el-icon--right': styleArrow ,
                                'el-icon-arrow-up el-icon--right': setShow}"
                                ></i>
                            </a>
                            <span></span>
                            <el-button type="primary" size="small">&nbsp;查询&nbsp;</el-button>
                        </nobr>
                    </td>
                </tr>
                </thead>
                <tbody v-show="setShow">
                <tr>
                    <td><nobr>设备厂家</nobr></td>
                    <td><el-input size="mini"></el-input></td>
                    <td></td>
                    <td></td>
                    <td></td>
                    <td></td>
                    <td></td>
                </tr>
                </tbody>
            </table>
        </div>
        <!-- 头部信息 End -->
        <!-- 列表 Start -->
        <div class="c-title">
            <span>设备信息表</span>
            <p class="fr">
                <a @click="handleShowEditDialog"><i class="el-icon-plus el-icon--left"></i>新增</a>
                <a><i class="el-icon-download el-icon--left"></i>导入</a>
                <a @click="showExport"><i class="el-icon-upload2 el-icon--left"></i>导出</a>
            </p>
        </div>
        <div class="c-search-table">
            <!-- 分页 Start -->
            <el-table :data="list.slice((currentPage-1)*pagesize,currentPage*pagesize)">
                <el-table-column type="index" label="序号"></el-table-column>
                <el-table-column prop="name" label="设备名称"></el-table-column>
                <el-table-column prop="net" label="设备名称"></el-table-column>
                <el-table-column prop="system" label="设备名称"></el-table-column>
                <el-table-column prop="title" label="设备名称"></el-table-column>
                <el-table-column prop="vender" label="设备名称"></el-table-column>
                <el-table-column prop="type" label="设备名称"></el-table-column>
                <el-table-column prop="line" label="设备名称"></el-table-column>
                <el-table-column prop="shop" label="设备名称"></el-table-column>
                <el-table-column label="查看">
                    <template slot-scope="scope">
                        <div>
                            <a class="show-underline" href="#">查看</a>
                            <a class="show-underline" href="#" @click="handleShowEditDialog">编辑</a>
                            <a class="show-underline" href="#" @click="handleShowTips">删除</a>
                        </div>
                    </template>
                </el-table-column>
            </el-table>
            <div class="t-center mt-15">
                <el-pagination
                    background
                    @size-change="handleSizeChange"
                    @current-change="handleCurrentChange"
                    :current-page="currentPage"
                    :page-sizes="[5, 10, 20, 50]"
                    :page-size="pagesize"
                    layout="total, sizes, prev, pager, next, jumper"
                    prev-text="上一页"
                    next-text="下一页"
                    :total="list.length">
                </el-pagination>
            </div>
            <!-- 分页 End -->
        </div>
        <!-- 列表 End -->
    </div>
</template>
<script>
    let Mock = require('mockjs'); // 测试数据
    export default {
        data () {
            return {
                currentPage: 1,
                pagesize: 5,
                list: [],
                setShow: false,
                setShowMsg: '更多查询条件',
                styleArrow: true,
                setContent: '',
                setTitle: ''
            };
        },
        computed: {
        },
        methods: {
            getlist () {
                let data = {
                    'list|15': [
                        {
                            'id': '@guid',
                            'name': '@cword(3)',
                            'net': '@cword(3)',
                            'system': '@cword(6)',
                            'title': '@cword(5)',
                            'vender': '@city()' + '@cword(2)' + '有限公司',
                            'type': /[A-Z]{2,5}-\d{5,7}/,
                            'line': '@cword(2,3)' + '线',
                            'shop': '@cword(3,5)' + '通信车间'
                        }
                    ]
                };
                let result = Mock.mock(data);
                this.list = result.list;
            },
            handleSizeChange(size) {
                this.pagesize = size;
                console.log(`每页 ${size} 条`);
            },
            handleCurrentChange(currentPage) {
                this.currentPage = currentPage;
                console.log(`当前页: ${currentPage}`);
            },
            handleShowEditDialog () { // 编辑
                this.$router.push({
                    path: '/edit'
                });
            },
            handleShowTips () { // 删除
                this.setContent = '删除后数据将无法恢复, 是否继续?';
                this.setTitle = '删除';
                this.$confirm(this.setContent, this.setTitle, {
                    confirmButtonText: '确定',
                    cancelButtonText: '取消',
                    type: 'warning'
                }).then(() => {
                    this.$message({
                        type: 'success',
                        showClose: true,
                        message: '恭喜您,' + this.setTitle + '成功!'
                    });
                }).catch(() => {
                    this.$message({
                        type: 'info',
                        message: '已取消'
                    });
                });
            },
            showSeach () { // 更多查询条件切换
                const msg = this.setShowMsg;
                if (msg === '更多查询条件') {
                    this.setShow = true;
                    this.setShowMsg = '收起';
                } else {
                    this.setShow = false;
                    this.setShowMsg = '更多查询条件';
                }
            },
            showExport () { // 导出
                this.$router.push({
                    path: '/'
                });
            }
        },
        mounted (){
            this.getlist();
        }
    };
</script>
<style lang="less" scoped>
    @import "./deviceInfo.less";
</style>

搞定收工!

vue+mock.js+element-ui模拟数据搞定分页的更多相关文章

  1. 关于vue.js element ui 表单验证 this.$refs[formName].validate()的问题

        方法使用前需了解: 来自”和“小编的小提示: 首先打印一下this.$refs[formName],检查是否拿到了正确的需要验证的form. 其次在拿到了正确的form后,检查该form上添加 ...

  2. 【Mock.js】前端模拟假数据,不用在手拼了

    [Mock.js]前端模拟假数据,不用在手拼了:https://www.jianshu.com/p/8579b703a4c1

  3. 微信小程序 + mock.js 实现后台模拟及调试

    一.创建小程序项目 mock.js 从 https://github.com/nuysoft/Mock/blob/refactoring/dist/mock.js 下载 api.js:配置模拟数据和后 ...

  4. Vue+Mock.js模拟登录和表格的增删改查

    有三类人不适合此篇文章: "喜欢站在道德制高点的圣母婊" -- 适合去教堂 "无理取闹的键盘侠" -- 国际新闻版块欢迎你去 "有一定基础但又喜欢逼逼 ...

  5. vue.js+element ui Table+spring boot增删改查

    小白初学,不懂的还是太多了,找了好多资料才做出来的先记录一下 1.先用Spring boot创建一个包含了增删改查的项目 2.创建vue.js项目 3.安装Element UI (1)进入项目文件夹下 ...

  6. vue项目使用element ui的Checkbox

    最近使用到element ui的下拉多选框Checkbox Checkbox用法可参考与于 http://element.eleme.io/#/zh-CN/component/checkbox Che ...

  7. vue项目用nodejs实现模拟数据方法

    1)在项目根目录(如demo)中创建一个文件夹,如base,将项目中所有的前端文件全部放到base文件夹中,此时项目demo下只有一个文件夹base 2)通过cmd进入命令窗口,直接执行npm ins ...

  8. 来,我们手写一个简易版的mock.js吧(模拟fetch && Ajax请求)

    预期的mock的使用方式 首先我们从使用的角度出发,思考编码过程 M1. 通过配置文件配置url和response M2. 自动检测环境为开发环境时启动Mock.js M3. mock代码能直接覆盖g ...

  9. json-server 和mock.js生成大量json数据

    JSON-server和mock.jsmock文件夹下 db.json db.jsjson-sever使用 安装:npm install json-server -g/mock 目录下执行json-s ...

随机推荐

  1. Spark Programming Guide《翻译》

    转载必须注明出处:梁杰帆 在这里要先感谢原作者们!如果各位在这里发现了错误之处,请大家提出 1.Initializing Spark     Spark程序必须做的第一件事就是创建一个SparkCon ...

  2. 解决CentOS查询不到ip

    问题:登陆操作系统,输入ip addr 也可以输入ifconfig查看ip,发现ens33目录中没有inet属性 解答:查看ens33的网卡配置: vi /etc/sysconfig/network- ...

  3. flex弹性布局,好用

    一直不太喜欢自己布局前端页面,都是扒别人的页面 ,最近在练习小程序,页面无处可扒,只有自己布局 发现flex弹性布局真好用,布局起来很简单,实现的效果也很好,赞 以后可以自己写一点前端了,哈哈

  4. apache的URL重写

    apache的url重写 第一步:修改apache\conf目录下的的httpd.conf文件 1.加载apache的url重写模块 大概122行:LoadModule rewrite_module ...

  5. 极限编程(xp),iso国际标准化组织

    极限编程(xp):eXtreme Programming 极限编程-XP 四个价值:沟通 communication.简化 similicity.反馈 feedback.勇气 courage http ...

  6. CentOS7下php安装mcrypt扩展

    https://blog.csdn.net/skykingf/article/details/40185405 以下步骤均为本人实际操作,可能与你的安装方法有所区别,但我会尽量排除疑惑) 大致步骤(1 ...

  7. 什么是javascript的中间件?

    第一次写博客,有点想在博客园试水的感觉,也分享下觉得有用的东西(源码自己写的) 什么是javascript中间件呢?函数middle就是用来构建中间件的,我用例子说明下 下面我定义了一个函数use,在 ...

  8. 获取各站点的ID

    using (var serverManager = new ServerManager()) { foreach(var site in serverManager.Sites) { Console ...

  9. 解决运行vue项目的报错This relative module was not found:

    运行vue项目出现这样的报错. This relative module was not found: * ../../assets/img/spot.png !./src/components/on ...

  10. 设计模式学习总结(十)责任链模式(Chain Of Responsibility)

    责任链主要指通过一连串的操作来实现某项功能或者在处理相关的业务时,对于自己的业务则进行处理,反之,对于不属于自己的业务,则进行下发!   一.示例展示: 以下例子主要通过对煤矿对井下警告信息的处理来进 ...