vue 组件化开发(二) 带有复杂表头以及可编辑表格的开发

本文介绍了使用Vue进行组件化开发,重点探讨如何实现带有复杂表头和可编辑功能的表格。通过拆分成主组件及三个子组件——drop-title、AutoTtips和headerCheck,实现了灵活的表格展示和交互效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

类似效果看图

可展开,可编辑基数,自动计算单位及个人缴费情况

主组件:
<template>
  <div class="edit-table">
    <drop-title
      :unitPaymentNum="unitPaymentNum"
      :personPaymentNum="personPaymentNum"
      :readOnly="readOnly"
      :titleName="titleName"
      :showTable="showTable"
      @setTableVisible="handleShowTable"
      @setBase="setBaseNumber"
    ></drop-title>
    <transition name="el-fade-in-linear">
      <el-row v-if="showTable">
        <el-col>
          <el-table class="el-my-table" :data="tableData" style="width: 100%" stripe>
            <el-table-column prop="have" align="center" v-if="!readOnly" width="100" :render-header="renderHeader">
              <template slot-scope="scope">
                <el-checkbox v-model="scope.row.have"></el-checkbox>
              </template>
            </el-table-column>
            <el-table-column prop="name" label="险种" width="150"></el-table-column>
            <el-table-column prop="unitBase" label="单位缴费">
              <el-table-column label="基数">
                <template slot-scope="scope">
                  <i
                    v-if="!readOnly"
                    class="el-icon-caret-top"
                    @mouseenter="handleMouseenter($event, scope, 'unit')"
                    @mouseout="handleMouseleave"
                  ></i>
                  <el-input required :disabled="readOnly" size="small" v-model="scope.row.unitBase"></el-input>
                </template>
              </el-table-column>
              <el-table-column prop="unitRatio" label="比列"></el-table-column>
              <el-table-column prop="unitMoney" label="金额"></el-table-column>
            </el-table-column>
            <el-table-column label="个人缴费">
              <el-table-column prop="personalBase" label="基数">
                <template slot-scope="scope">
                  <i
                    v-if="!readOnly"
                    class="el-icon-caret-top"
                    @mouseenter="handleMouseenter($event, scope, 'person')"
                    @mouseout="handleMouseleave"
                  ></i>
                  <el-input :disabled="readOnly" size="small" v-model="scope.row.personalBase"></el-input>
                </template>
              </el-table-column>
              <el-table-column prop="personalRatio" label="比列"> </el-table-column>
              <el-table-column prop="personalMoney" label="金额"> </el-table-column>
            </el-table-column>
            <el-table-column prop="insuredUnitName" label="参保单位" width="200">
              <template slot-scope="scope">
                <el-select :disabled="readOnly" v-model="scope.row.insuredUnitName" size="small">
                  <el-option
                    v-for="day in monthdaysCode"
                    :key="day.code"
                    :label="day.name"
                    :value="day.code"
                  ></el-option>
                </el-
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值