coding
This commit is contained in:
parent
69eceeadbf
commit
002466d844
|
@ -1,56 +0,0 @@
|
|||
const calcColumnsStyle = (columns, columnGap) => {
|
||||
if (!(columns instanceof Array) || columns.length === 0) return ''
|
||||
const total = columns.reduce((cur, c, i) => (typeof c === 'number' ? cur + c : cur), 0)
|
||||
const baseColumn = columns.reduce(
|
||||
(cur, c, i) => (typeof c === 'string' ? cur + ` - ${c}` : cur),
|
||||
`100% - ${columnGap} * ${columns.length - 1}`
|
||||
)
|
||||
return columns
|
||||
.map((c) => {
|
||||
return typeof c === 'number' ? `calc((${baseColumn}) * ${c} / ${total})` : c
|
||||
})
|
||||
.join(' ')
|
||||
}
|
||||
|
||||
const calcRowsStyle = (rows, rowGap) => {
|
||||
if (!(rows instanceof Array) || rows.length === 0) return ''
|
||||
const total = rows.reduce((cur, c, i) => (typeof c === 'number' ? cur + c : cur), 0)
|
||||
const baseRow = rows.reduce(
|
||||
(cur, c, i) => (typeof c === 'string' ? cur + ` - ${c}` : cur),
|
||||
`100% - ${rowGap} * ${rows.length - 1}`
|
||||
)
|
||||
return rows
|
||||
.map((c) => {
|
||||
return typeof c === 'number' ? `calc((${baseRow}) * ${c} / ${total})` : c
|
||||
})
|
||||
.join(' ')
|
||||
}
|
||||
|
||||
export default {
|
||||
bind(el, binding, vnode, oldVnode) {
|
||||
// console.log('----bind----', el, binding, vnode, oldVnode)
|
||||
const { columns = [1], rows = [1], gap = '20px' } = binding.value
|
||||
const [columnGap, rowGap = columnGap] = gap.split(' ')
|
||||
el.style.display = 'grid'
|
||||
el.style.gridTemplateColumns = calcColumnsStyle(columns, columnGap)
|
||||
el.style.gridTemplateRows = calcRowsStyle(rows, rowGap)
|
||||
el.style.gridGap = `${columnGap} ${rowGap}`
|
||||
},
|
||||
inserted(el, binding, vnode, oldVnode) {
|
||||
// console.log('----inserted----', el, binding, vnode, oldVnode)
|
||||
},
|
||||
update(el, binding, vnode, oldVnode) {
|
||||
// console.log('----update----', el, binding, vnode, oldVnode)
|
||||
const { columns = [1], rows = [1], gap = '20px' } = binding.value
|
||||
const [columnGap, rowGap = columnGap] = gap.split(' ')
|
||||
el.style.gridTemplateColumns = calcColumnsStyle(columns, columnGap)
|
||||
el.style.gridTemplateRows = calcRowsStyle(rows, rowGap)
|
||||
el.style.gridGap = `${columnGap} ${rowGap}`
|
||||
},
|
||||
componentUpdated(el, binding, vnode, oldVnode) {
|
||||
// console.log('----componentUpdated----', el, binding, vnode, oldVnode)
|
||||
},
|
||||
unbind(el, binding, vnode, oldVnode) {
|
||||
// console.log('----unbind----', el, binding, vnode, oldVnode)
|
||||
},
|
||||
}
|
Loading…
Reference in New Issue
Block a user