vue-elementui制作表格(二)

用vue制作表格效果图如下:
在这里插入图片描述
代码块:

在这里插入代码片<template>
  <div class="contents">
    <div>
      <el-dialog title="档案转出通知单" :close-on-click-modal="false" :visible.sync="dialogFormVisible" width="60%">
        <div id="printTest2">
          <table border= "0" v-for="(item,index) in listinfo" :key="index"   width="70%"  style="margin: auto!important;">
            <thead>
            <tr>
              <th colspan="10">档案转出通知单</th>
            </tr>
            </thead>
            <tbody>
            <tr style="height:100px">
              <td colspan="10" style="border: 1px solid black;text-align:left;padding: 15px!important;">
                <div class="company1"><span class="company" >{{item.corporateName}}:</span></div>
                <div class="content"><span class="n_title">{{item.employeeName}}</span><span class="n_title" style="width: 80px!important;"></span>同志的档案材料转去,请按档案内所列目录清点查收,并将回执退回。</div>
                <div class="jizhi">发布机关 <span class="n_keji">{{item.corporateName}}</span>   <span class="zd">转递单位(盖章)</span></div>
                <div class="number">{{item.transoutNumber}}</div>
              </td>
            </tr>
            <tr style="height:40px">
              <td rowspan="2" style="text-align:center;border:1px solid black;">姓名</td>
              <td rowspan="2" style="text-align:center;border:1px solid black;">单位及职务</td>
              <td rowspan="2" style="text-align:center;border:1px solid black;">转递原因</td>
              <td colspan="2" style="text-align:center;border:1px solid black;">档案正副本卷数</td>
            </tr>
            <tr>
              <td colspan="1" style="text-align:center;border:1px solid black;">正本</td>
              <td  colspan="1" style="text-align:center;border:1px solid black;">副本</td>
            </tr>
            <tr style="height:30px">
              <td style="text-align:center;border:1px solid black;">{{item.employeeName}}</td>
              <td style="text-align:center;border:1px solid black;">{{item.unitAndRankName}}</td>
              <td style="text-align:center;border:1px solid black;">{{item.transferReason}}</td>
              <td style="text-align:center;border:1px solid black;">1</td>
              <td style="text-align:center;border:1px solid black;">1</td>
            </tr>
            <tr style="height:30px">
              <td></td>
              <td></td>
              <td></td>
              <td></td>
              <td></td>
            </tr>
            <tr style="height:30px">
              <td></td>
              <td></td>
              <td></td>
              <td></td>
              <td></td>
            </tr>
            <tr style="height:30px">
              <td></td>
              <td></td>
              <td ></td>
              <td></td>
              <td></td>
            </tr>
            <tr style="height:30px">
              <td></td>
              <td></td>
              <td></td>
              <td></td>
              <td></td>
            </tr>
            <tr style="height:30px">
              <td></td>
              <td></td>
              <td></td>
              <td></td>
              <td></td>
            </tr>
            </tbody>
          </table>
        </div>
        <span slot="footer" class="dialog-footer">
              <el-button  type="primary" @click="confirm" size="mini">打印</el-button>
              <el-button  @click="cancel" size="mini">取消</el-button>
        </span>
      </el-dialog>
    </div>
  </div>
</template>
<script>
import { request } from "@/utiles/request.js";
export default {
  name:"SubmissionForm",
  props: {
    dialogFormVisible: {
      type: Boolean,
      default: false
    },
  },
  watch: {
    dialogFormVisible() {
      this.chushi();
      if (this.dialogFormVisible == false) {
        this.$emit('dialog');
      }
    }
  },
  data(){
    return{
      listinfo:[],
      sids:'', //需要传数组id
    }
  },
  created() {
    this.chushi();
  },

  methods:{
    init(sids){
      this.sids=sids;
    },
    chushi(){
      request({
        url:'/fileTransferOut/print',
        method:'post',
        headers: {'Content-Type': 'application/json'},
        params:{
          ids:this.sids+''
        }
      }).then(res=>{
        if(res.data.code==200 && res.data.data!=null) {
          this.listinfo=res.data.data
          // this.listinfo.push(res.data.data)
        }
      })
    },
    closeDialog(){
      this.listinfo=[];
    },
    //打印
    confirm(){

    },
    cancel(){
      this.$emit('dialog');

    },
  }
}
</script>
<style scoped lang="less" >
#printTest2{
  width: 70%;
  margin: auto;
  border: 2px solid black;
  padding-bottom: 30px!important;
}
#printTest2 .n_title{
  text-align: center;
}

#printTest2 .content{
  text-align: left;
  margin-left: 30px!important;
  line-height: 28px!important;
  padding-bottom: 30px!important;
}
#printTest2 .company1{
  width: 500px!important;
  float: left;
  text-align: left;
  padding-bottom: 15px!important;
}
#printTest2 .zd{
  text-align: right;
  float: right;
  margin-right: 50px!important;
  display: inline-block;
}
#printTest2 .jizhi{
  text-align: left;
  margin-left: 30px!important;
}
#printTest2 .number{
  text-align: right;
  padding-bottom: 15px!important;
  padding-top: 15px!important;
  margin-right: 70px!important;
}
#printTest2 .jizhi .n_keji{
  margin-left: 20px!important;
}
#printTest2 .company,
#printTest2 .n_title
{
  display: block;
  display: inline-block;
  border-bottom: 1px solid black;
  padding-bottom: 5px!important;
  width:200px!important;
}
#printTest2 table thead th{
  font-size: 20px;
  padding:10px;
}
#printTest2 table tbody tr{
  height:30px;
  font-size:14px;
}

#printTest2 table{
  border-collapse:collapse;
}
#printTest2 table tbody td{
  border: 1px solid black;
  text-align: center!important;
}
.contents /deep/ .el-dialog__title{
  font-size: 15px!important;
}
.contents  /deep/  .el-form{
  margin: auto!important;
}
.contents  /deep/  .el-dialog__body{
  padding: 20px 10px!important;
}
.contents .ml{
  margin-bottom: 15px!important;
  border-left: 3px solid #447FC1;
  padding-left: 10px!important;
  font-size: 18px!important;
  font-weight: 500;
  font-size: 15px!important;
  margin-left: 15px!important;
}
.style /deep/ .el-input__inner{
  margin-bottom: 15px!important;
}
</style>
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue-ElementUI中实现表格搜索的方法有多种。根据引用中的内容,你可以使用自定义的computed属性来实现表格搜索功能。具体步骤如下: 1. 首先,你需要在你的Vue组件中添加一个搜索框用于输入关键字。 2. 然后,你可以在computed属性中创建一个新的属性,例如"tables",用于存储过滤后的数据。 3. 在"tables"属性的定义中,你可以使用filter()方法对"tableData"进行过滤,只保留那些包含搜索关键字的数据。 4. 在filter()方法中,你可以使用Object.keys()方法获取对象数组的所有枚举属性,然后使用some()方法进行匹配判断,只要有一个属性匹配成功,就返回整个对象。 5. 在匹配时,你可以将对象属性的值转换成小写,并使用indexOf()方法来判断是否包含搜索关键字。 6. 最后,根据搜索框中是否有值,来返回过滤后的数据或者全部数据。 下面是一个示例代码供你参考: ```javascript computed: { tables() { let search = this.search.toLowerCase(); if (search) { return this.tableData.filter(data => { return Object.keys(data).some(key => { if (data[key !== null) { return data[key].toString().toLowerCase().indexOf(search) > -1; } }); }); } else { return this.tableData; } } } ``` 通过以上步骤,你就可以在Vue-ElementUI表格中实现搜索功能了。注意,其中的"tableData"是你需要展示在表格中的数据,"search"是搜索框中输入的关键字。你可以根据自己的实际情况进行调整。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [vue+element-ui的表格组件实现简单的搜索框功能](https://blog.csdn.net/kurodasense/article/details/122782200)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [vue-elementui-tree-table.rar](https://download.csdn.net/download/qq_32442967/12015371)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值