vue 自定指令生成uuid滚动监听达到tab表格吸顶效果的代码

 utils/index,.js


/**
* 生成UUID
* @param withSeparator 是否有分割符
* @returns {string}
*/
export function generateUUID(withSeparator = true) {
let d = new Date().getTime()
if (window.performance && typeof window.performance.now === 'function') {
d += performance.now()
}
const tpl = withSeparator ? 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx' : 'xxxxxxxxxxxx4xxxyxxxxxxxxxxxxxxx'
return tpl.replace(/[xy]/g, function(c) {
const r = (d + Math.random() * 16) % 16 | 0
d = Math.floor(d / 16)
return (c === 'x' ? r : (r & 0x3 | 0x8)).toString(16)
})
}

创建一个generate-uuid/index.js自定义指令文件


import { generateUUID } from '@/utils'
const generateUuid = {
inserted(el, binding) {
const { value } = binding
if (!value) {
const hasUUID = generateUUID(value)
el.setAttribute('data-uuid', hasUUID)
if (!hasUUID) {
el.parentNode && el.parentNode.removeChild(el)
}
}
}
}
generateUuid.install = function(Vue) {
Vue.directive('generate-uuid', generateUuid)
}

export default generateUuid

main.js引入


import GenerateUUID from '@/directive/generate-uuid'
Vue.use(GenerateUUID)

页面使用


<el-table
v-generate-uuid="false"
>

使用uuid元素方法


const topRow = this.$refs.multipleTable
const hash = topRow.$el.dataset.uuid
const tableHeader = document.querySelector(`.el-table[data-uuid="${hash}"] .el-table__header-wrapper`)
if (tableHeader) {
tableHeader.style.width = topRow.$el.getBoundingClientRect().width + 'px'
}

总结

到此这篇关于vue 自定指令生成uuid滚动监听达到tab表格吸顶效果的代码的文章就介绍到这了,更多相关vue滚动监听tab表格吸顶内容请搜索软件开发网以前的文章或继续浏览下面的相关文章希望大家以后多多支持软件开发网!

相关推荐

小程序实现点击tab切换左右滑动

解决Antd Table表头加Icon和气泡提示的坑

python request 模块详细介绍

Vue+Spring Boot简单用户登录(附Demo)