mirror of
https://gitee.com/dromara/go-view.git
synced 2025-04-22 13:36:23 +08:00
65 lines
1.4 KiB
TypeScript
65 lines
1.4 KiB
TypeScript
import { PickCreateComponentType } from '@/packages/index.d'
|
|
|
|
type AttrType = PickCreateComponentType<'attr'>
|
|
|
|
export const useComponentStyle = (attr: AttrType, index: number) => {
|
|
const componentStyle = {
|
|
zIndex: index + 1,
|
|
left: `${attr.x}px`,
|
|
top: `${attr.y}px`
|
|
}
|
|
return componentStyle
|
|
}
|
|
|
|
export const useSizeStyle = (attr: AttrType, scale?: number) => {
|
|
const sizeStyle = {
|
|
width: `${scale ? scale * attr.w : attr.w}px`,
|
|
height: `${scale ? scale * attr.h : attr.h}px`
|
|
}
|
|
return sizeStyle
|
|
}
|
|
|
|
// 锚点位置
|
|
export const usePointStyle = (
|
|
point: string,
|
|
index: number,
|
|
attr: PickCreateComponentType<'attr'>,
|
|
cursorResize: string[]
|
|
) => {
|
|
const { w: width, h: height } = attr
|
|
|
|
const isTop = /t/.test(point)
|
|
const isBottom = /b/.test(point)
|
|
const isLeft = /l/.test(point)
|
|
const isRight = /r/.test(point)
|
|
|
|
let newLeft = 0
|
|
let newTop = 0
|
|
|
|
// 四个角的点
|
|
if (point.length === 2) {
|
|
newLeft = isLeft ? 0 : width
|
|
newTop = isTop ? 0 : height
|
|
} else {
|
|
// 上下两点的点,宽度居中
|
|
if (isTop || isBottom) {
|
|
newLeft = width / 2
|
|
newTop = isTop ? 0 : height
|
|
}
|
|
|
|
// 左右两边的点,高度居中
|
|
if (isLeft || isRight) {
|
|
newLeft = isLeft ? 0 : width
|
|
newTop = Math.floor(height / 2)
|
|
}
|
|
}
|
|
|
|
const style = {
|
|
left: `${newLeft}px`,
|
|
top: `${newTop}px`,
|
|
cursor: cursorResize[index] + '-resize'
|
|
}
|
|
|
|
return style
|
|
}
|