1.在data中定义一个属性that,把this存储到that中

  data() {
    return {
      //过滤器拿到this对象
      that: this,
    }
  }

 

  2.在调用filters中的方法sum的时候将that传进去即可

<el-table-column label="原属产品" align="center" prop="originProjectId" ><!--:formatter="projectFormatter"-->
        <template slot-scope="scope">
          <el-popover trigger="hover" placement="top">
            <p>产品ID: {{ scope.row.projectId }}</p>
            <p>产品名: {{scope.row.originProjectId | projectIdFilter(that)}}</p>
            <div slot="reference" class="name-wrapper">
              <el-tag size="medium">{{scope.row.originProjectId | projectIdFilter(that)}}</el-tag><!--projectIdFilter默认传入前面的scope.row.originProjectId 作为第一个参数,想要第二个参数可以直接通过参数传入
-->
 </div> </el-popover> </template> </el-table-column>

 

  3.使用的时候再接收参数

 

  filters: {
    projectIdFilter(projectId,that) {
      if (projectId==null||projectId==-1)return '无'
      return that.options.find(item => {
        return item.id === projectId
      })?.name
    }
  }

 

posted on 2022-09-26 11:28  upupup-999  阅读(1100)  评论(0)    收藏  举报