拖拽-可设置最小宽度
This commit is contained in:
@@ -5,9 +5,10 @@ const events = {
|
||||
move: 'mousemove',
|
||||
stop: 'mouseup'
|
||||
}
|
||||
let tableAll = []
|
||||
let tableAll = [] // 单个页面存放多个表格的columns
|
||||
var columnsAll = []
|
||||
var columnsKey = ''
|
||||
let minColumn = [] // 存放设置最小宽的列及宽度
|
||||
const DragHandler = {
|
||||
name: 'nio-drag-handler',
|
||||
//获取混入的方法(重新设置表头宽度)
|
||||
@@ -86,9 +87,10 @@ const DragHandler = {
|
||||
return h('div', { class: 'nio-drag-handler', on: { mousedown: this.handleMouseDown } }, [line])
|
||||
}
|
||||
}
|
||||
const ResizeHeaderOne = function(val, name) {
|
||||
const ResizeHeaderOne = function(val, name ,minWidths) {
|
||||
columnsAll = val
|
||||
columnsKey = name
|
||||
minColumn = minWidths
|
||||
if(tableAll.indexOf(val) === -1){
|
||||
tableAll.push(val)
|
||||
}
|
||||
@@ -96,16 +98,44 @@ const ResizeHeaderOne = function(val, name) {
|
||||
const { key, column, ...restProps } = props
|
||||
let col = {}
|
||||
// 处理多级表头
|
||||
col = getRenderCoL(key, val)
|
||||
// col = getRenderCoL(key, val)
|
||||
col = getRenderCoL(key, columnsAll)
|
||||
let content = [].concat(children)
|
||||
console.log(col)
|
||||
if (col) {
|
||||
const handlerVNode = h(DragHandler, {
|
||||
props: {
|
||||
width: col.width,
|
||||
minWidth: Math.min(col.width, 100),
|
||||
column: col
|
||||
let handlerVNode;
|
||||
if(minColumn && minColumn.length>0){
|
||||
// 存放所有需要手动设置最小宽度的列的dataIndex
|
||||
let colsdataIndex = []
|
||||
minColumn.forEach((item)=>{
|
||||
colsdataIndex.push(item[0].dataIndex)
|
||||
handlerVNode = h(DragHandler, {
|
||||
props: {
|
||||
width: col.width,
|
||||
minWidth: Math.min(item[1]),
|
||||
column: JSON.parse(JSON.stringify(item[0]))
|
||||
}
|
||||
}, [])
|
||||
})
|
||||
// 不需要手动设置最小宽度的列
|
||||
if(colsdataIndex.indexOf(col.dataIndex) === -1){
|
||||
handlerVNode = h(DragHandler, {
|
||||
props: {
|
||||
width: col.width,
|
||||
minWidth: Math.min(col.width, 100),
|
||||
column: col
|
||||
}
|
||||
}, [])
|
||||
}
|
||||
}, [])
|
||||
}else{
|
||||
handlerVNode = h(DragHandler, {
|
||||
props: {
|
||||
width: col.width,
|
||||
minWidth: Math.min(col.width, 100),
|
||||
column: col
|
||||
}
|
||||
}, [])
|
||||
}
|
||||
content = content.concat(
|
||||
handlerVNode
|
||||
)
|
||||
@@ -119,10 +149,11 @@ const ResizeHeaderOne = function(val, name) {
|
||||
}
|
||||
export const ResizeHeader = {
|
||||
methods: {
|
||||
drag(columns, name) {
|
||||
drag(columns, name ,minWidths) {
|
||||
return {
|
||||
header: {
|
||||
cell: ResizeHeaderOne(columns, name)
|
||||
// minWidths : 最小宽度 => [[需要设置的列,最小宽],[需要设置的列,最小宽],...]
|
||||
cell: ResizeHeaderOne(columns, name,minWidths)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user