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表格吸顶内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!

以上是 vue 自定指令生成uuid滚动监听达到tab表格吸顶效果的代码 的全部内容, 来源链接: utcz.com/p/217954.html

回到顶部