vue3.0 el-table 行内点击图标 修改该条数据某个值

需求:点击el-table 中的单个状态旁边小图标可以进行修改该条数据的状态:原型图如下

点击编辑图标,可以进行如下图操作:

实现逻辑:

获取表格数据时,我们可以给其一个标志位,以此来展示改初始时为不可编辑状态,只有点击按钮才能显示选择框以及取消保存按钮,我们可以通过该条数据的 index row 的改变来达到我们的目的,修改该条数据。

代码如下:

//初始时赋值标志位显示不可编辑状态

res.data.rows.forEach(function(val, index) {

val.index = index;

val.edit = true;

});

<el-table-column

property="状态"

label="状态"

min-width="180px"

align="center"

>

<template #default="scope">

<span v-if="scope.row.edit === false">

<el-row>

<el-col :span="14" style="padding-left:0px;padding-right:0px">

<el-select

v-model="scope.row.auditStatus"

placeholder="请选择..."

>

<el-option

v-for="item in options"

:key="item.value"

:label="item.label"

:value="item.value"

/>

</el-select>

</el-col>

<el-col

:span="6"

style="padding-left:0px;padding-right:0px;margin-top:2px;"

>

<span

style="color:blue ;cursor:pointer;margin-top:2px;"

@click="changeSave(scope.row.index, scope.row)"

>

<CircleCheck

style="color:#4F8AFF ;width:16px;height:16px;cursor:pointer;margin-

bottom: -3px;"

/>

</span>

<span

style="color:blue ;cursor:pointer;margin-top:2px;"

@click="changeOff(scope.row.index, scope.row)"

>

<CircleClose

style="color:#4F8AFF ;width:16px;height:16px;cursor:pointer;margin-

bottom: -3px;margin-left: 5px;"

/>

</span>

</el-col>

</el-row>

</span>

<span

class="spanan"

v-if="scope.row.edit === true"

@click="changeOn(scope.row.index)"

>

{{ scope.row.auditStatus }}

<Edit

style="marginleft:10px;color:#4F8AFF;width:16px;height:16px;cursor:pointer;margin-bottom:

-3px;"

/>

</span>

</template>

</el-table-column>

// 取消

const changeOff = (index, row) => {

data.tableDataindex.edit = true;

ElMessage({

showClose: true,

type: 'info',

message: '取消操作 !',

});

};

// 打开

const changeShow = i => {

//该步是为了让我们每次只能打开一项

data.tableData.forEach(item => {

item.edit = true;

});

data.tableDatai.edit = false;

};

//保存

const changeSave = async (index, row) => {

data.tableDataindex.edit = true;

}

相关推荐
To_OC1 小时前
别再串行写 await 了,Promise.all 才是并行请求的正确打开方式
前端·javascript·promise
To_OC1 小时前
LC 17 电话号码的字母组合:我的回溯算法,就是从这道题开窍的
javascript·算法·leetcode
vipbic1 小时前
中后台越做越乱后,我用插件化把它救回来了
前端·vue.js
Hyyy1 小时前
Computer Use 适合做什么,不适合做什么——一次真实使用后的思考
前端
小和尚同志2 小时前
前端 AI 单元测试思考与落地
前端·人工智能·aigc
invicinble3 小时前
c端系统,其实更像一个信息展示平台
前端
你怎么知道我是队长3 小时前
JavaScript的变量和数据类型介绍
开发语言·javascript·ecmascript
李姆斯4 小时前
管理是否可以被完全量化
前端·产品经理·团队管理
名字还没想好☜4 小时前
Next.js 中间件实战:鉴权、重定向与 A/B 分流
开发语言·前端·javascript·中间件·react·next.js
广州灵眸科技有限公司5 小时前
瑞芯微RV1126B开发板(EASY-EAI-PI2) INI文件操作
java·前端·javascript·网络·人工智能