vue3?elementPlus?table實(shí)現(xiàn)列寬可拖拽功能
el-table 里邊的border屬性,設(shè)置之后表格即可直接拖拽,下文內(nèi)容是相關(guān)擴(kuò)展功能的實(shí)現(xiàn)
最近公司項(xiàng)目里邊需求要讓表格的寬度可拖動(dòng),我們的公司的項(xiàng)目有vue2的也有vue3的,表格分別使用了element UI和element Plus,前者的社區(qū)比較豐富,我們使用了mizuka-wu/el-table-draggable
但是對于后者,我查到社區(qū)相關(guān)的插件并不多,但也找到了guolaopi/element-plus-table-dragable-demo
把demo下載下來之后,我發(fā)現(xiàn)其中引用了這個(gè)包,并在App.vue文件里邊找到了所使用的demo
"element-plus-table-dragable": "^1.0.0"
不過,問題是我在引入的時(shí)候卻發(fā)現(xiàn)是有問題的,首先我們的table是封裝到公共組件里邊了,引入完成之后,會(huì)報(bào)兩個(gè)錯(cuò)誤,一個(gè)是引入報(bào)錯(cuò),這個(gè)我直接添加了注釋@ts-ignore把問題解決了

第二個(gè)問題就是引入之后控制臺(tái)直接報(bào)directive的問題,也就是指令的問題,因?yàn)閠able里邊使用了“v-dragable”這個(gè)指令,但是我直接在當(dāng)前頁面引入之后,這個(gè)指令并沒有被注冊,沒辦法,只能手動(dòng)添加指令了
首先在自定義指令文件中添加這樣的文件
import type { Directive, App } from 'vue';
// @ts-ignore
import { vDragable } from "element-plus-table-dragable";
const dragableDirective: Directive = {
mounted(el, binding) {
},
updated(el, binding) {
},
unmounted(el) {
},
};
export function setupDragableDirective(app: App) {
app.directive('dragable', vDragable);
}
export default vDragable;在index頁面進(jìn)行引入
import type { App } from 'vue';
import { setupDragableDirective } from './dragable';
export function setupGlobDirectives(app: App) {
setupDragableDirective(app)
}
在main.js中初始化
import App from "./App.vue";
import { createApp } from "vue";
import { setupGlobDirectives } from '@/directives';
function init(){
const app = createApp(App);
setupGlobDirectives(app);
app.mount("#app");
}
init()
其他的部分了話,就可以直接寫在相應(yīng)的table組件中了。至此,可拖拽功能實(shí)現(xiàn)
但是在這些實(shí)現(xiàn)完成之后,我發(fā)使用官方的配置的情況下表格是可以行列拖拽的,這點(diǎn)是不太符合需求的,我們只希望列寬可以拖拽,于是我將官方的配置進(jìn)行了修改,將里邊的“thead”、“tbody”替換成了“colgroup”
const dragOptions = [{
selector: "colgroup",
option: {}
}]
至此,需求實(shí)現(xiàn)
到此這篇關(guān)于vue3 elementPlus table實(shí)現(xiàn)列寬可拖拽功能的文章就介紹到這了,更多相關(guān)vue3 elementPlus table拖拽內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
vue使用vue-video-player無法播放本地視頻的問題及解決
這篇文章主要介紹了vue使用vue-video-player無法播放本地視頻的問題及解決方案,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-08-08
windows下vue-cli導(dǎo)入bootstrap樣式
這篇文章主要介紹了windows下vue-cli導(dǎo)入bootstrap樣式,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-04-04
vue實(shí)現(xiàn)簡易選項(xiàng)卡功能
這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)簡易選項(xiàng)卡功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-06-06
Vue路由的模塊自動(dòng)化與統(tǒng)一加載實(shí)現(xiàn)
這篇文章主要介紹了Vue路由的模塊自動(dòng)化與統(tǒng)一加載實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06
利用vuex-persistedstate將vuex本地存儲(chǔ)實(shí)現(xiàn)
這篇文章主要介紹了利用vuex-persistedstate將vuex本地存儲(chǔ)的實(shí)現(xiàn),具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-04-04
Vue中Axios從遠(yuǎn)程/后臺(tái)讀取數(shù)據(jù)
今天小編就為大家分享一篇關(guān)于Vue中Axios從遠(yuǎn)程/后臺(tái)讀取數(shù)據(jù),小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2019-01-01

