elementui表格自定义指令控制显示哪些列可以拖动

javascript 复制代码
Vue.directive('tableBorder', function (el, {value}) {
  // value允许传字符串数字和数组
  el.classList.add('z_table_hasBorder')
  
  let hasStyle = el.querySelector('style')
  if(hasStyle){
    hasStyle.remove()
  }

  let style = document.createElement('style')
  let str = `
    .z_table_hasBorder  .el-table__cell{
      border-width: 0px;
    }
  `

  let reg = /^[0-9]*$/
  if(typeof value === 'string' || typeof value === 'number'){
    let test = reg.test(value)
    value  = test ? [Number(value)] : []
  }else if(!Array.isArray(value)){
    value = []
  }

  let html =value.reduce((prev,item)=>{
    let test = reg.test(item)
    return prev += test ? `
      .z_table_hasBorder tr .el-table__cell:nth-of-type(${item}){
        border-width: 1px;
      }
    ` : ''
  },str)

  style.innerText = html

  el.appendChild(style)
})

用法

javascript 复制代码
<el-table
    :data="tableData"
    border
    v-tableBorder="[2,4]"
    style="width: 100%">
    <el-table-column
      prop="date"
      label="日期"
      width="180">
    </el-table-column>
    <el-table-column
      prop="name"
      label="姓名"
      width="180">
    </el-table-column>
    <el-table-column
      prop="name"
      label="姓名"
      width="180">
    </el-table-column>
    <el-table-column
      prop="name"
      label="姓名"
      width="180">
    </el-table-column>
    <el-table-column
      prop="name"
      label="姓名"
      width="180">
    </el-table-column>
    <el-table-column
      prop="address"
      label="地址">
    </el-table-column>

效果

相关推荐
GISer_Jing3 分钟前
两种AI交互方式深度解析——浏览器书签&插件
前端·人工智能·ai·prompt
哈__9 分钟前
ReactNative项目OpenHarmony三方库集成实战:react-native-device-info
javascript·react native·react.js
前端布鲁伊13 分钟前
零代码上线一个图片处理网站,我是如何使唤AI干活的?
前端·ai编程
庄小焱13 分钟前
React——React基础语法(2)
前端·javascript·react.js
终端鹿16 分钟前
Vue3 核心 API 深度解析:ref / reactive / computed / watch
前端·javascript·vue.js
console.log('npc')23 分钟前
partial在react接口定义中是什么意思
前端·javascript·typescript
SuperEugene24 分钟前
前端 utils 工具函数规范:拆分 / 命名 / 复用全指南,避开全局污染等高频坑|编码语法规范篇
开发语言·前端·javascript
C澒27 分钟前
微前端容器标准化 —— 公共能力篇:通用请求
前端·架构
llxxyy卢36 分钟前
web部分中等题目
android·前端
若惜1 小时前
selenium自动化测试web自动化测试 框架封装Pom
前端·python·selenium