vue 实现el-table组件 点击某一行出现输入框可以编辑

1. 页面部分

imput主要部分

<el-input type="text" class="ellipsis"

:disabled="scope.row.checked" v-model="scope.row.feedingPolicyTitle"/>

按钮主要部分:

<el-button type="primary" plain size="mini" 
                    v-if="scope.row.checked == true"
                    :disabled="disabledBtn" @click="feedingStrategyOpen(scope.row)">
                  <i class="el-icon-edit"></i>&nbsp;编辑
               </el-button>
               <el-button type="primary" plain size="mini" 
                    v-if="scope.row.checked == false"
                     @click="feedingStrategyEditOpen(scope.$index, scope.row)"
                     class="refresh-button">
                   <i class="el-icon-refresh"></i>&nbsp;更新
               </el-button>

<div style="margin-top: 10px">
    <el-table
       :row-class-name="tableRowClassName"
       border class="disabled-table"
       :cell-style="{padding: '0'}"
       :row-style="{height: '55px'}"
       :data="tableDataFeedingStrategy"
       style="width: 100%;margin: 0 auto;">

      <el-table-column  property="feedingPolicyTitle" label="饲喂名称" width="168">
            <template slot-scope="scope">
               <el-input type="text" class="ellipsis"
                   :disabled="scope.row.checked"
                   v-model="scope.row.feedingPolicyTitle"/>
            </template>
       </el-table-column>
                        
      <el-table-column label="操作" width="260">
           <template slot-scope="scope">
               <el-button type="primary" plain size="mini" 
                    v-if="scope.row.checked == true"
                    :disabled="disabledBtn" @click="feedingStrategyOpen(scope.row)">
                  <i class="el-icon-edit"></i>&nbsp;编辑
               </el-button>
               <el-button type="primary" plain size="mini" 
                    v-if="scope.row.checked == false"
                     @click="feedingStrategyEditOpen(scope.$index, scope.row)"
                     class="refresh-button">
                   <i class="el-icon-refresh"></i>&nbsp;更新
               </el-button>
               <el-button type="info" 
                     v-if="scope.row.checked == false" @click="getParams"
                                           size="mini">
                    <i class="el-icon-close"></i>&nbsp;取消
                </el-button>
             </template>
       </el-table-column>
   </el-table>
</div>

 

2. data部分

data() {
    return {
        disabledBtn: false,
},

3.事件部分

//从后台获取的全部数据
getParams() {
     allFeedingStrategy('get', {
                        
     }).then(res => {
         if (res.code == 200) {
             this.tableDataFeedingStrategy = res.data.records;
             this.tableDataFeedingStrategy.forEach(ele => {
                 ele.checked = true
             })
                            
         } else {
            this.$message.error(res.desc)
      } 
},

//表格事件   <el-table :row-class-name="tableRowClassName"
tableRowClassName({row}) {
      if (row.checked == false) {
           return 'strategy-row';
      }
},

//编辑操作事件
feedingStrategyOpen(row) {
     row.checked = false;
     this.disabledBtn = true;
     this.tableRowClassName({row})
},

//策略更新数据
feedingStrategyEditOpen(index, row) {
    this.disabledBtn = false;
    console.log(row)
    
    allFeedingStrategy('get', { //这里执行更新请求发送后台
                        
     }).then(res => {
         if (res.code == 200) {
                      
         } else {
            this.$message.error(res.desc)
      } 
     
},

4.例   点击编辑后,只编辑当前行数据,其他行编辑按钮禁用了

  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Vue是一种流的JavaScript框架,而el-tableVue框架的一个组件,它可以方便地创建表格,并支持各种功能和事件。如果想要用Vueel-table制作岗位排班表,可以按照以下步骤进操作。 首先,需要在Vue项目引入element-ui库,它是一个基于Vue组件库,包含了el-table组件以及许多其他强大的组件。 然后,可以开始构建岗位排班表的界面。可以使用el-table组件创建一个表格,并定义表格的列和数据。根据岗位排班的需求,可以根据不同的班次和日期来定义表格和列。可以使用el-table-column组件定义每一列的标题、属性和渲染方式。 接下来,需要从后端获取岗位排班表的数据。可以使用Vue的生命周期钩子函数,在组件创建的时候调用后端的API接口获取数据,并将数据存储在组件的data属性。 然后,将获取到的数据绑定到el-table组件的data属性上,这样就可以动态地渲染岗位排班表的内容。 此外,还可以添加一些其他的功能,例如增删改查,可以使用element-ui提供的组件和方法来实现。也可以使用el-table的事件来监听用户的操作,例如用户对表格了排序或筛选等。 最后,可以对表格样式的美化,可以使用element-ui提供的样式类或自定义样式来装饰表格。 总结来说,使用Vueel-table组件可以方便地制作岗位排班表。通过定义表格的列和数据,绑定后端获取到的数据,以及添加其他的功能和样式,我们可以创建一个功能强大且美观的岗位排班表。 ### 回答2: 要使用Vueel-table组件制作岗位排班表,首先需要安装Vueelement-ui,并在项目引入相关的组件和样式。 接下来,在Vue的模板创建一个el-table组件,并设置表格的列和数据源。每一列代表一个岗位,每一行代表一个时间段。可以使用一个二维数组来存储岗位排班信息,数组的每一行表示一个时间段,数组的每一列表示一个岗位,数组元素表示该时间段该岗位的排班情况。 在el-table的列,可以使用slot来自定义每个单元格的内容,根据数组的元素将单元格渲染为不同的状态,例如上班、休息、请假等。 可以使用computed属性来计算岗位排班表的数据,将二维数组转换为el-table组件可以接受的格式,并绑定到el-table的data属性上。 在el-table的其他配置,可以设置分页、排序、过滤等功能,以便在排班表数据量较大时进操作和查找。 除了el-table组件,还可以使用其他element-ui的组件来给排班表添加更多的功能,例如日期选择器来选择排班时间范围、表单输入框来添加排班信息等。 最后,通过样式调整,可以美化岗位排班表的外观,使其更加直观和易于使用。 总结:使用Vueel-table组件可以方便地制作岗位排班表。需要先安装Vueelement-ui,然后创建el-table组件并设置表格的列和数据源。通过自定义单元格的内容和设置其他功能和样式,可以实现一个功能齐全且美观的岗位排班表。 ### 回答3: Vueel-table组件是一个非常强大的表格工具,可以帮助我们实现各种复杂的数据展示和处理需求,包括制作岗位排班表。 首先,我们需要准备好岗位排班表所需的数据。可以考虑使用一个二维数组来表示表格数据,每一行代表一个岗位,每一列代表一个日期。另外,可以再添加一行用于显示日期标签,一列用于显示岗位标签。这样,二维数组的第一行和第一列就是标签和标签列,剩下的部分就是我们需要填充的岗位排班表数据。 接下来,我们可以在Vue组件使用el-table组件来展示和处理岗位排班表数据。首先,创建一个包含el-table组件的父组件,设置好表格的基本样式和配置参数,如高、列宽、边框等。然后,在表格的slot添加具体的表格内容。在这个示例,我们可以使用v-for指令来循环渲染表格的每一行和每一列。同时,可以使用v-model指令来双向绑定表格的数据,这样可以方便地对表格数据进增删改查。 在填充表格数据时,可以通过计算属性来获取实际需要展示的岗位排班表数据。这个计算属性可以根据具体的排班规则和数据来源来计算得到。例如,可以根据员工信息和排班规则,计算每个岗位在每天的排班情况,然后将这些数据填充到岗位排班表对应的位置。 最后,我们可以在表格添加一些交互功能以增强用户体验。例如,可以添加一个事件监听函数,来处理用户对表格内容的操作,如添加、删除、修改岗位排班表的数据。同时,可以设置表格的样式和样式类,以便根据不同的数据类型和状态来显示不同的样式,提供更直观的数据展示效果。 总之,使用Vueel-table组件,我们可以很方便地制作出一个功能齐全、交互友好的岗位排班表。通过灵活运用Vue框架的各种特性和功能,我们可以实现表格数据的快速绑定和处理,提高开发效率,满足不同的业务需求。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值