代码如下:
参考 https://sortablejs.github.io/Vue.Draggable/#/functional
<template>
<draggable v-model="rows" tag="div" class="wrapper" handle=".group-mover">
<div class="columns-wrapper" v-for="(col, idxCol) in rows">
<div class="column-title-wrapper">
<span class="title group-mover">分组-{{ col.id }}</span>
<span class="num">1</span>
<span class="flex-1"></span>
<el-dropdown trigger="click">
<span class="el-dropdown-link">
<i class="el-icon-more more"></i>
</span>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item>黄金糕</el-dropdown-item>
<el-dropdown-item>狮子头</el-dropdown-item>
<el-dropdown-item>螺蛳粉</el-dropdown-item>
<el-dropdown-item disabled>双皮奶</el-dropdown-item>
<el-dropdown-item divided>蚵仔煎</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</div>
<draggable :list="col.items" tag="div" :group="{ name: 'col' }" class="column-item">
<div class="card" v-for="(card, idx) in col.items">{{ col.id }}————{{ card.title }}</div>
</draggable>
</div>
</draggable>
</template>
<script>
import draggable from "vuedraggable";
export default {
components: {
draggable,
},
data() {
return {
rows: [
{
id: "AAA",
index: 1,
items: [
{
id: "aaaa",
title: "item 1",
},
{
id: "bbbb",
title: "item 111",
},
{
id: "ccccc",
title: "item 11111",
},
],
},
{
id: "BBBB",
index: 2,
items: [
{
id: "dddd",
title: "item 2",
},
{
id: "eeeee",
title: "item 2222",
},
],
},
{
id: "CCCC",
index: 3,
items: [
{
id: "ffff",
title: "item 333333",
},
{
id: "gggg",
title: "item 333",
},
{
id: "hhhh",
title: "item 333333333333333",
},
],
},
],
};
},
};
</script>
<style lang="scss" scoped>
.group-mover {
cursor: move;
}
.wrapper {
background: #fff;
width: 100%;
border-top: 1px solid red;
display: flex;
overflow: auto;
.columns-wrapper {
width: 400px;
flex-shrink: 0;
padding: 10px;
.column-title-wrapper {
background: #f5d0d0;
margin-bottom: 10px;
display: flex;
align-items: center;
padding: 5px 10px;
border-radius: 4px;
.title {
font-weight: bold;
margin-right: 4px;
}
.num {
background-color: #f56c6c;
border-radius: 10px;
color: #fff;
display: inline-block;
font-size: 12px;
height: 18px;
line-height: 18px;
padding: 0 6px;
text-align: center;
white-space: nowrap;
border: 1px solid #fff;
}
}
.column-item {
box-sizing: border-box;
.card {
border: 1px solid blue;
height: 80px;
margin-bottom: 10px;
border-radius: 4px;
}
}
}
.columns-wrapper:not(:last-child) {
border-right: 1px solid red;
}
}
</style>
效果如下:
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。