tiny-vue_version0/examples/sites/demos/pc/app/grid/drag/multi-header-drag.vue

167 lines
6.8 KiB
Vue
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<tiny-grid
:data="tableData"
column-key
:drop-config="dropConfig"
@column-drag-start="columnDragStart"
@column-drop="columnDrop"
column-min-width="180"
:optimization="{ scrollX: { gt: 10, rSize: 15 } }"
show-header-overflow
>
<tiny-grid-column title="group">
<tiny-grid-column type="index" width="60" fixed="left"></tiny-grid-column>
<tiny-grid-column field="name" title="公司名称"></tiny-grid-column>
</tiny-grid-column>
<tiny-grid-column title="group1">
<tiny-grid-column field="employees" title="员工数1"></tiny-grid-column>
<tiny-grid-column field="created_date" title="创建日期1"></tiny-grid-column>
</tiny-grid-column>
<tiny-grid-column title="group2">
<tiny-grid-column field="employees" title="员工数2"></tiny-grid-column>
<tiny-grid-column field="created_date" title="创建日期2"></tiny-grid-column>
</tiny-grid-column>
<tiny-grid-column title="group3">
<tiny-grid-column field="employees" title="员工数3"></tiny-grid-column>
<tiny-grid-column field="created_date" title="创建日期3"></tiny-grid-column>
</tiny-grid-column>
<tiny-grid-column title="group4">
<tiny-grid-column field="employees" title="员工数4"></tiny-grid-column>
<tiny-grid-column field="created_date" title="创建日期4"></tiny-grid-column>
</tiny-grid-column>
<tiny-grid-column title="group5">
<tiny-grid-column field="employees" title="员工数5"></tiny-grid-column>
<tiny-grid-column field="created_date" title="创建日期5"></tiny-grid-column>
</tiny-grid-column>
<tiny-grid-column title="group6">
<tiny-grid-column field="employees" title="员工数6"></tiny-grid-column>
<tiny-grid-column field="created_date" title="创建日期6"></tiny-grid-column>
</tiny-grid-column>
<tiny-grid-column title="group7">
<tiny-grid-column field="employees" title="员工数7"></tiny-grid-column>
<tiny-grid-column field="created_date" title="创建日期7"></tiny-grid-column>
</tiny-grid-column>
<tiny-grid-column title="group8">
<tiny-grid-column field="employees" title="员工数8"></tiny-grid-column>
<tiny-grid-column field="created_date" title="创建日期8"></tiny-grid-column>
</tiny-grid-column>
<tiny-grid-column title="group9">
<tiny-grid-column field="employees" title="员工数9"></tiny-grid-column>
<tiny-grid-column field="created_date" title="创建日期9"></tiny-grid-column>
</tiny-grid-column>
<tiny-grid-column title="group10">
<tiny-grid-column field="employees" title="员工数10"></tiny-grid-column>
<tiny-grid-column field="created_date" title="创建日期10"></tiny-grid-column>
</tiny-grid-column>
<tiny-grid-column title="group11">
<tiny-grid-column field="employees" title="员工数11"></tiny-grid-column>
<tiny-grid-column field="created_date" title="创建日期11"></tiny-grid-column>
</tiny-grid-column>
<tiny-grid-column title="group12">
<tiny-grid-column field="employees" title="员工数12"></tiny-grid-column>
<tiny-grid-column field="created_date" title="创建日期12"></tiny-grid-column>
</tiny-grid-column>
<tiny-grid-column title="group13">
<tiny-grid-column field="employees" title="员工数13"></tiny-grid-column>
<tiny-grid-column field="created_date" title="创建日期13"></tiny-grid-column>
</tiny-grid-column>
<tiny-grid-column title="group14">
<tiny-grid-column field="employees" title="员工数14"></tiny-grid-column>
<tiny-grid-column field="created_date" title="创建日期14"></tiny-grid-column>
</tiny-grid-column>
<tiny-grid-column title="group15">
<tiny-grid-column field="employees" title="员工数15"></tiny-grid-column>
<tiny-grid-column field="created_date" title="创建日期15"></tiny-grid-column>
</tiny-grid-column>
<tiny-grid-column title="group16">
<tiny-grid-column field="employees" title="员工数16"></tiny-grid-column>
<tiny-grid-column field="created_date" title="创建日期16"></tiny-grid-column>
</tiny-grid-column>
<tiny-grid-column title="group17">
<tiny-grid-column field="employees" title="员工数17"></tiny-grid-column>
<tiny-grid-column field="created_date" title="创建日期17"></tiny-grid-column>
</tiny-grid-column>
<tiny-grid-column title="group18">
<tiny-grid-column field="employees" title="员工数18"></tiny-grid-column>
<tiny-grid-column field="created_date" title="创建日期18"></tiny-grid-column>
</tiny-grid-column>
<tiny-grid-column title="group19">
<tiny-grid-column field="employees" title="员工数19"></tiny-grid-column>
<tiny-grid-column field="created_date" title="创建日期19"></tiny-grid-column>
</tiny-grid-column>
<tiny-grid-column title="group20">
<tiny-grid-column field="employees" title="员工数20"></tiny-grid-column>
<tiny-grid-column field="created_date" title="创建日期20"></tiny-grid-column>
</tiny-grid-column>
<tiny-grid-column field="city" title="城市" fixed="right"></tiny-grid-column>
</tiny-grid>
</template>
<script>
import { Grid, GridColumn, Modal } from '@opentiny/vue'
export default {
components: {
TinyGrid: Grid,
TinyGridColumn: GridColumn
},
data() {
return {
dropConfig: {
// 在设置 scheme 标志位 v2 时,列拖拽使用新方案。不影响行拖拽使用 sortablejs
scheme: 'v2',
// 开启列拖拽
column: true,
// 可选值level同层级拖拽和 nested跨层级拖拽默认值 level
columnGroup: 'level',
// 拖拽前处理,返回 false 则阻止拖拽,其它返回值不阻止拖拽。支持异步。
columnBeforeDrop: ({ dragColumn, dropColumn }) => {
console.log('columnBeforeDrop', dragColumn, dropColumn)
return true
},
// 可放置列临时样式类
columnDropClass: 'in-drop'
},
tableData: [
{
id: '1',
name: 'GFD科技有限公司',
city: '福州',
employees: 800,
created_date: '2014-04-30 00:56:00'
},
{
id: '2',
name: 'WWW科技有限公司',
city: '深圳',
employees: 300,
created_date: '2016-07-08 12:36:22'
},
{
id: '3',
name: 'RFV有限责任公司',
city: '中山',
employees: 1300,
created_date: '2014-02-14 14:14:14'
}
]
}
},
methods: {
columnDragStart() {
Modal.message({ message: '列拖拽开始', status: 'info' })
},
columnDrop() {
Modal.message({ message: '列拖拽结束', status: 'info' })
}
}
}
</script>
<style>
.in-drop {
outline: 1px dashed rgba(170, 50, 220, 0.6);
outline-offset: -2px;
}
</style>