<template>
<div>
<div class="el-card box-card table_container">
<div class="el-card__header">
<div class="header clearfix">
<span>{{ title }}</span>
<el-button size="small" type="primary" @click="onEdit" class="btn_right" v-if="!isShow">编辑
</el-button>
<el-button size="small" type="primary" @click="onComplete" class="btn_right" v-if="isFinish">完成
</el-button>
</div>
</div>
<div class="el-card__body">
<table class="gridtable" border>
<thead>
<tr>
<th>序号</th>
<th>项目</th>
<th>分类</th>
<th>分项</th>
<th class="w">现场管理</th>
<th class="w">重大隐患</th>
<th class="w">汇总</th>
<th class="w">备注</th>
</tr>
</thead>
<tbody>
<tr v-for="item in tableData" :key="item.id">
<td :rowspan="item.idspan" :class="{hidden: item.iddis}">{{ item.id }}</td>
<td :rowspan="item.projectspan" :class="{hidden: item.projectdis}">{{ item.project }}</td>
<td :rowspan="item.typespan" :class="{hidden: item.typedis}">{{ item.type }}</td>
<td>{{ item.subentry }}</td>
<td class="w">
<el-input v-model="item.nowManage" v-if="isShow"></el-input>
<span v-else>{{ item.nowManage }}</span>
</td>
<td class="w">
<el-input v-model="item.Hidden" v-if="isShow"></el-input>
<span v-else>{{ item.Hidden }}</span>
</td>
<td class="w">
<el-input v-model="item.Total" v-if="isShow"></el-input>
<span v-else>{{ item.Total }}</span>
</td>
<td class="w">
<el-input v-model="item.remark" v-if="isShow"></el-input>
<span v-else>{{ item.remark }}</span>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</template>
<script>
export default {
data() {
return {
title:'风险评估',
isShow:false,
isFinish:false,
tableData: [
{
id:,
project: '企业性质分类',
type: '针对企业类别',
subentry: '生产(危险化学品生产企业)Ⅰ类A、B、C、级',
nowManage: '3.2',
Hidden: '是',
Total:'',
remark:'备注备注'
},
{
id:,
project: '企业性质分类',
type: '针对企业类别',
subentry: '使用(兰炭及配套企业)Ⅱ类A、B、C、级',
nowManage: '3.2',
Hidden: '是',
Total:'',
remark:''
},
{
id:,
project: '企业性质分类',
type: '针对企业类别',
subentry: '储存、经营(加油站)Ⅲ类A、B、C、级C、级',
nowManage: '3.2',
Hidden: '是',
Total:'',
remark:''
},
{
id:,
project: '三同时执行情况',
type: '针对改扩',
subentry: '改扩建未执行',
nowManage: '3.2',
Hidden: '是',
Total:'',
remark:''
}
]
}
},
created() {
this.getData(this.tableData);
},
methods: {
onEdit(){
this.isShow = true
this.isFinish=true
},
onComplete(){
this.isShow = false
this.isFinish=false
},
getData(list){
//console.log(list[0]);
for ( let field in list[]) {
var k = ;
while (k < list.length) {
list[k][field + 'span'] = ;
list[k][field + 'dis'] = false;
for (var i = k + ; i <= list.length - ; i++) {
if (list[k][field] == list[i][field] && list[k][field] != '') {
list[k][field + 'span']++;
list[k][field + 'dis'] = false;
list[i][field + 'span'] = ;
list[i][field + 'dis'] = true;
} else {
break;
}
}
k = i;
}
}
return list;
}
}
}
</script> <style lang="less" scoped>
.mybtn{
margin:10px 0px 0px 10px
}
.btn_right{
float:right
}
.gridtable{
border-collapse:collapse;
width: %;
thead>tr{
background:#eef1f6;
height: 40px;
line-height: 40px
}
th,td {
border: 1px solid #dfe6ec;
font-size: 14px;
font-weight: normal;
}
.w{
width:120px
}
tbody>tr{
height: 50px;
line-height: 50px;
&:hover{
background:#eef1f6;
}
td{
padding: 10px;
} } }
.hidden{
display: none
}
</style>

vue原生table合并单元格并可编辑的更多相关文章

  1. Vue中table合并单元格用法

    <table> <tr> <th>地名</th> <th>结果</th> <th>人名</th> < ...

  2. css table 合并单元格

    1. css table 合并单元格 colspan:合并列, rowspan:合并行, 合并行的时候,比如rowspan="2",它的下一行tr会少一列: 合并列的时候,比如co ...

  3. table中tr间距的设定table合并单元格 colspan(跨列)和rowspan(跨行)

    table中的tr的默认display:table-row,虽然可以修改为display:block但是就失去了tr特有的显示效果,如(td自动对齐): 并且在tr中对起设定padding是有用的,可 ...

  4. table合并单元格

    table合并单元格 新建一张表格.要求表格有四行四列,当中第一行的四列合并,第二行.第三行和第四行的第一列合并 <!DOCTYPE html PUBLIC "-//W3C//DTD ...

  5. ant design Table合并单元格合并单元格怎么用?

    1.ant design table合并单元格怎么用?

  6. BootStrap Table 合并单元格

    为了更直观展示表格的一大堆乱七八糟的数据,合并单元格就派上用场: 效果: 贴上JSON数据(后台查询数据一定要对合并字段排序): [ { "city": "广州市&quo ...

  7. 一种HTML table合并单元格的思路

    /** * 合并单元格 * @param table1 表格的ID * @param startRow 起始行 * @param col 合并的列号,对第几列进行合并(从0开始).如果传下来为0就是从 ...

  8. table合并单元格colspan和rowspan .

    colspan和rowspan这两个属性用于创建特殊的表格. colspan是“column span(跨列)”的缩写.colspan属性用在td标签中,用来指定单元格横向跨越的列数: 在浏览器中将显 ...

  9. JQuery Table 合并单元格-解决Bug版本

    网络中提供的方法是: <script type="text/javascript"> function _w_table_rowspan(_w_table_id, _w ...

随机推荐

  1. 开发工具IntelliJ IDEA的安装与操作

    开发工具IntelliJ IDEA的安装与操作 1.1 开发工具概述 IDEA是一个专门针对Java的集成开发工具(IDE),它可以极大地提升我们的开发效率.可以自动编译,检查错误.在公司中,使用的就 ...

  2. java——类、对象、方法

    一.类 1.Java语言把一组对象中相同属性和方法抽象到一个Java源文件就形成了类. 一个java文件可以有多个类,但是每一个类都会生成一个class字节码文件. 如果class 前加public ...

  3. PLL详解

    PLL  时钟是时序逻辑的灵魂. 在实际应用中,时钟信号在频率或者相位上通常并不满足直接使用的需求,而内部时序逻辑又只能对时钟信号进行整数倍的分频,并且不能保证产生新时钟信号的相位稳定性,所以需要用到 ...

  4. ImitateUCM项目启动Tomcat的过程

    启动各种报错:什么source not found ....然而解决后发现都不是问题关键 下面我讲下我的理解(也许这也不是关键,但是通过该这些,我的问题解决了) (1)重新部署Tomcat时,要同步更 ...

  5. .NET MVC+angular导入导出

    cshtml: <form class="form-horizontal" id="form1" role="form" ng-sub ...

  6. 第十四周翻译-《Pro SQL Server Internals, 2nd edition》

    <Pro SQL Server Internals, 2nd edition> 作者:Dmitri Korotkevitch 翻译:赖慧芳 译文: 设计和优化索引 定义一种应用于所有地方的 ...

  7. python之django母板页面

    其实就是利用{% block xxx %}   {% endblock %}的方式定义一个块,相当于占位.存放在某个html中,比如base.html 然后在需要实现这些块的文件中,使用继承{% ex ...

  8. linux 命令启动Oracle数据库

    首先使用oracle用户登录Linux,然后在shell命令行中执行下面的命令: 第一步:打开Oracle监听lsnrctl start 第二步:进入sqlplussqlplus /nologSQL& ...

  9. 写入一个html文件时的编码要求

    with open("ip.html",'w',encoding='utf-8') as fp: fp.write(response)

  10. input.nextLine()的注意事项

    若在input.nextInt()和input.nextDouble()后使用input.nextLine(),要先加一个input.nextLine()进行换行