Vue3和element plus在el-table中使用el-tree-select遇到的change事件坑

1. 在el-tree-select中change事件使用

如果直接传递row, 拿到的不是最新的row的数据, 使用$index结合tableData来拿row

javascript 复制代码
  <el-table-column prop="directory" label="所属目录树">
            <template #default="scope">
              <el-tree-select v-model="scope.row.areaTreeNodeId" :data="dirTreeData" placeholder="请选择"
                popper-class="dircat-tree-select" @change="(val) => handleTreeChange(scope.$index, 'dir', val)"
                @node-click="(node) => handleDirNodeClick(scope.row, node)" />
            </template>
          </el-table-column>
javascript 复制代码
// 处理树的变化(目录树或分类树)
const handleTreeChange = async (index, treeType, value) => {
  console.log(index, treeType, value, 'rowhandleTreeChange目录树');
  let row = tableData.value[index]
  console.log(row, 'row>>>');
  if (!row) return ElMessage.error('无法获取表格行数据')
  if (value && row.dataId) {
    const treeData = {
      relatedId: row?.relatedId?.toString(), // 关联id
      sceneId: commonStore.sceneId, // 场景id
      areaTreeNodeId: treeType == 'dir' ? value : row.areaTreeNodeId, // 区域树节点id
      areaTreeNodeName: treeType == 'dir' ? row.dirNode?.label : row.areaTreeNodeName, // 区域树节点名称
      classifyTreeNodeId: treeType == 'cat' ? value : row.classifyTreeNodeId, // 分类树节点id
      classifyTreeNodeName: treeType == 'cat' ? row.catNode?.label : row.classifyTreeNodeName, // 分类树节点名称
      dataId: row.dataId // 数据dataId
    }
    try {
      const res = await batchAddSceneDataRelation([treeData])
      if (res.code == 200) {
        ElMessage.success(`${treeType === 'dir' ? '目录' : '分类'}树绑定成功`)
      } else {
        ElMessage.error(`${treeType === 'dir' ? '目录' : '分类'}树绑定失败`)
      }
    } catch (error) {
      ElMessage.error(`${treeType === 'dir' ? '目录' : '分类'}树绑定失败`)
    }
  }
  getDataList()
}
相关推荐
徐小夕2 小时前
下载量超 30 万的开源智能体 Prime Agent:它把自己从 TypeScript 重写成了 Rust
前端·vue.js·github
toooooop83 小时前
CRMEB 故障排查笔记:安全网关只放行 GET/POST 怎么办
前端·javascript·vue.js·thinkphp6·crmeb
软件技术NINI3 小时前
基于SpringBoot和Vue的项目评审系统
javascript·vue.js·spring boot·后端·spring·毕业设计·毕设
vipxieliang3 小时前
JavaScript 模板字符串与标签模板:不只是拼接
前端·javascript
Dream-Y.ocean13 小时前
鸿蒙PC平台宅匠 3D 室内设计适配实战:基于 Electron 壳方案的 Three.js 双渲染引擎与参数化户型编辑器开发
javascript·3d·harmonyos
Highcharts.js14 小时前
Highcharts Gantt使用符号的自定义数据标签开发甘特图示例
javascript·甘特图·highcharts·图表开发·实战代码·响应式图表
FRing0315 小时前
vue2干货总结3(computed计算属性、watch监听器)
开发语言·前端·vue.js·vue2
Java小卷16 小时前
JuanForm vs FormCreate!Vue3 表单引擎联动配置 PK!
vue.js·低代码
kyriewen17 小时前
Skills 榜前 10 我全装了:只有 3 个能直接用
前端·javascript·程序员
工控丫丫18 小时前
帆软看板中经常使用的公式函数及经常搭的组合
前端·javascript·数据库