最简方式 表格编辑 基于 el-table

共下面5点

1.新增一个显示和隐藏的参数

2.在显示那边新增一个input框,用v-model绑定数据,用v-if来显示和隐藏

3.给之前的显示的span标签添加v-else 和上面形成if else

4.编辑和保存按钮同理,然后编辑按钮触发的任务将所有输入打开。即seen置为true

5.保存按钮同理,保存按钮触发的任务将所有输入关闭。即seen置为false,并触发提交post数据 -->

效果图

代码

<template>
    <div>
        <h2>新闻页面</h2>
        <hr>
        <div class="tablebefordiv">
    <el-table
    :data="list"
    style="width: 100%">
    <el-table-column
      label="标题"
      width="180">
      <template slot-scope="scope">
        <i class="el-icon-s-ticket"></i>
        <el-input v-model="scope.row.title" v-if="scope.row.seen"></el-input>
        <span style="margin-left: 10px" v-else>{{ scope.row.title }}</span>
      </template>
    </el-table-column>
    <el-table-column
      label="姓名"
      width="180">
      <template slot-scope="scope">
        <!-- <el-popover trigger="hover" placement="top">
          <p>作者: {{ scope.row.username }}</p>
          <p>住址: {{ scope.row.pic }}</p> -->
          <div slot="reference" class="name-wrapper">
              <i class="el-icon-s-home"></i>
              <!-- 1.新增一个显示和隐藏的参数
              2.在显示那边新增一个input框,用v-model绑定数据,用v-if来显示和隐藏
              3.给之前的显示的span标签添加v-else 和上面形成if else
              4.编辑和保存按钮同理,然后编辑按钮触发的任务将所有输入打开。即seen置为true
              5.保存按钮同理,保存按钮触发的任务将所有输入关闭。即seen置为false,并触发提交post数据 -->
              <!-- #2  #3 -->
              <el-input v-model="scope.row.username" v-if="scope.row.seen"></el-input>
            <el-tag size="medium" v-else>{{ scope.row.username }}</el-tag>
          </div>
        <!-- </el-popover> -->
      </template>
    </el-table-column>
    <el-table-column
      label="时间"
      width="180">
      <template slot-scope="scope">
        <i class="el-icon-time"></i>
        <el-input v-model="scope.row.dateline" v-if="scope.row.seen"></el-input>
        <span style="margin-left: 10px" v-else>{{ scope.row.dateline }}</span>
      </template>
    </el-table-column>
    <el-table-column label="操作">
      <template slot-scope="scope">
          <!-- #4 #5 -->
          <el-button
          size="mini"
          type="danger"
          @click="handleSave(scope.$index, scope.row)" v-if="scope.row.seen">保存</el-button>
        <el-button
          size="mini"
          @click="handleEdit(scope.$index, scope.row)" v-else>编辑</el-button>

      </template>
    </el-table-column>
  </el-table>
        </div>
        <!-- <ul class="list">
            <li v-for="(item,index) in list ">
                <router-link :to="‘/content/‘+item.aid">{{index}}.{{item.title}}</router-link>
            </li>
            </ul> -->
            <!-- <ul class="list"
  v-infinite-scroll="loadMore"
  infinite-scroll-disabled="loading"
  infinite-scroll-distance="10">
  <li v-for="item in list"><router-link :to="‘/content/‘+item.aid">{{item.title}}</router-link></li>
</ul> -->
    </div>
</template>

<script>
import storage from ‘../model/storage.js‘
export default {
    data(){
        return{

            list:[],
            newlist:[],
            loading:false,
            page:1
        }
    },
    mounted() {
        console.log(‘mounted!!‘);
        var page=storage.get(‘News_page‘);
        var list=storage.get(‘News_list‘);
        if(page){this.page=page};
        if(list){this.list=list};
        this.getNewJsonData();
        this.listtonewlist();
    },updated() {
        console.log(‘updated!!‘);
    storage.set(‘News_list‘,this.list);
    storage.set(‘News_page‘,this.page);
    },

    methods:{
        //#1 新增参数
        listtonewlist(){
            this.newlist = this.list.map(item => {
                item.seen=false;
                return item;
            })
        console.log(this.newlist)
        },
        //#4 #5
        handleEdit(index, row) {
            row.seen=true;
        console.log(index, row);
      },
      handleSave(index, row) {
          console.log(row);
          row.seen=false;
        console.log(index, row);
        // **1 提交 获取row的值传给post函数
        this.postEditData(row);
      },

        //1.请求数据
        loadMore() {
            console.log(this.page);
            console.log(this.list);
            this.getNewJsonData();
        },
        postEditData(row){
            // **2 拼凑连接,格式上传的值
            const api="http://www.phonegap100.com/xxxx/"+row.aid;
            const data = {username: row.username,
                    title: row.title,
                    dateline: row.username
                };
                console.log(api,data,row)
             //   **3上传
            // this.$http.post(api,data).then((response) => {},(error) => {})
        },
        getNewJsonData(){
        this.loading=true;
        var api="http://www.phonegap100.com/appapi.php?a=getPortalList&catid=20&page="+this.page;
        this.$http.jsonp(api).then((response)=>{
            console.log(this.list)
            if (response.body.result.length<20){
                this.loading=true;
            }else{
                this.list=this.list.concat(response.body.result);
            ++this.page;
            this.loading=false;
            }
            console.log(response);
        },
        (error)=>{
            console.log(error);
        })
        },

    },
    beforeUpdate() {        console.log(‘beforeUpdate!!‘);    },

    beforeDestroy() {        console.log(‘beforeDestroy!!‘);    },
    destroyed() {        console.log(‘destroyed!!‘);    },
    beforeCreate() {        console.log(‘beforeCreate!!‘);    },
    created() {        console.log(‘created!!‘);    },
    beforeMount() {        console.log(‘beforeMount!!‘);    },

}
</script>
<style lang="scss" scoped>
.list{
    li{
        height: 3.4rem;

        line-height: 3.4rem;

        border-bottom: 1px solid #eee;

        font-size: 1.6rem;
        a{
            color:#666;
        }
    }
    .tabledefodiv{
        margin: 0 auto;
        width: 1400px;
    }
}
</style>

  

原文地址:https://www.cnblogs.com/a10086/p/11355627.html

时间: 2024-10-15 05:19:30

最简方式 表格编辑 基于 el-table的相关文章

[个人网站搭建]&#183;极简方式统计个人网页访问量(基于百度统计)

[个人网站搭建]·极简方式统计个人网页访问量(基于百度统计) 个人主页--> https://xiaosongshine.github.io/ 个人网站搭建github地址:https://github.com/xiaosongshine/djangoWebs 建好了网站,我们可以利用百度统计,可以很简单的看到自己网页的被访问次数. 使用方式也特别简单,只需要注册百度统计账户,然后把一段代码拷贝到你的网页里,十分简单方便. 实践演示照片: ? 1.注册百度统计站长版 百度搜索"百度统计&q

JS表格组件神器bootstrap table详解(基础版)

这篇文章主要介绍了JS表格组件神器bootstrap table,bootstrap table界面采用扁平化的风格,用户体验比较好,更好兼容各种客户端,需要了解更多bootstrap table的朋友可以参考下 一.Bootstrap Table的引入 关于Bootstrap Table的引入,一般来说还是两种方法: 1.直接下载源码,添加到项目里面来.由于Bootstrap Table是Bootstrap的一个组件,所以它是依赖Bootstrap的,我们首先需要添加Bootstrap的引用.

三.jquery.datatables.js表格编辑与删除

1.为了使用如图效果(即将按钮放入行内http://www.datatables.net/examples/ajax/null_data_source.html) 采用了另一个数据格式 2.后台php,取表格数据变为: public function initable(){ $db = M('yanfa_project')->select(); // 取$db的长度 // $len =count($db); $item=array(); // 循环将$db二维数组每一项的value取出放一个数组

项目一:第十二天 1、常见权限控制方式 2、基于shiro提供url拦截方式验证权限 3、在realm中授权 5、总结验证权限方式(四种) 6、用户注销7、基于treegrid实现菜单展示

1 课程计划 1. 常见权限控制方式 2. 基于shiro提供url拦截方式验证权限 3. 在realm中授权 4. 基于shiro提供注解方式验证权限 5. 总结验证权限方式(四种) 6. 用户注销 7. 基于treegrid实现菜单展示 2 常见的权限控制方式 2.1 url拦截实现权限控制 shiro基于过滤器实现的   2.2 注解方式实现权限控制 底层:代理技术     3 基于shiro的url拦截方式验权   <!-- 配置过滤器工厂 --> <bean id="

Java导出数据行写入到Excel表格:基于Apache POI

Java导出数据行写入到Excel表格:基于Apache POI import java.io.File; import java.io.FileOutputStream; import org.apache.poi.hssf.usermodel.HSSFRow; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; public class Excel

新的表格展示利器 Bootstrap Table Ⅱ

    上一篇文章介绍了Bootstrap Table的基本知识点和应用,本文针对上一篇文章中未解决的文件导出问题进行分析,同时介绍BootStrap Table的扩展功能,当行表格数据修改. 1.Bootstrap Bable 全部数据导出分析 在表格导出数据中,发现设置了分页参数,导出的数据仅为表格加载的分页参数数据,于是,针对这样的情况,通过设置分页参数的值,使表格可以加载更多的数据,可达到导出所有数据的功能需求.然而,在实际的实验中,发现此方案存在以下问题: 表格一次加载一千条数据时,网

基于display:table的CSS布局

当IE8发布时,它将支持很多新的CSS display属性值,包括与表格相关的属性值:table.table-row和table-cell,它也是最后一款支持这些属性值的主流浏览器.它标志着复杂CSS布局技术的结束,同时也给了HTML表格布局致命一击.最终,使用CSS布局来制作出类似于table布局的栅格将会变得十分迅速和简单.网页元素应用上那些与表格相关的display属性值后,能够模仿出与表格相同的特性.我将会在该文中给大家演示这种方法给CSS布局带来的巨大影响. 使用CSS表格 CSS表格

表格布局----基于bootstrap样式 布局

在实际开发中,我们通过菜鸟教程复制的表格往往不能满足我们的开发需求,样式很难看,而且不能自适应,尤其是需要到处Excel的样式,感觉非常糟糕,这次我就写了一个表单,不足之处,希望大神们多多指教: 代码如下: 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <title>查询详情</title> 5 <meta name="keywords" content=""/>

EasyUi DataGrid中数据编辑方式及编辑后数据获取,校验处理

EasyUi中的DataGrid提供前台编辑的相关函数. 实现客户选中DataGrid中一列后,对选中列中的一个字段进行编辑,并对数据进行实时校验后,传递至后台保存的需求, 主要涉及到DataGrid中设置编辑单元格,获取编辑单元格,编辑单元格的onchange事件处理,通过当前光标所在编辑单元格获取所在行. 1. 设置编辑单元格 在列定义中增加editor属性,参数为type,options eg: {title:'上级分配额度',field:'assigned_amount_temp',wi