Files
crawler-plugin/admin-frontend-vue/src/components/modal-model.ts
T

31 lines
1.2 KiB
TypeScript

/**
* 模态/抽屉布局模型(module 13 task 248):统一两种承载容器的尺寸与关闭语义,
* 对齐 admin.html —— 居中 modal width min(920px,100vw-48)、radius14;右侧 drawer
* width min(460px,100%);遮罩点击与 Esc 均关闭。页面接入统一尺寸与头/脚槽。
*/
export const ADMIN_MODAL_WIDTH = 'min(920px, 100vw - 48px)'
export const ADMIN_DRAWER_WIDTH = 'min(460px, 100%)'
export const ADMIN_MODAL_RADIUS = 14
export interface AdminContainerSpec {
width: string
radius?: number
maskClosable: boolean
escClosable: boolean
}
export function modalLayoutSpec(): AdminContainerSpec {
return { width: ADMIN_MODAL_WIDTH, radius: ADMIN_MODAL_RADIUS, maskClosable: true, escClosable: true }
}
export function drawerLayoutSpec(): AdminContainerSpec {
return { width: ADMIN_DRAWER_WIDTH, maskClosable: true, escClosable: true }
}
/** 页面头标题归一:空/空白标题兜底「操作」,副标题去空白后无则省略。 */
export function dialogTitleOf(opts: { title?: string; subtitle?: string }): { title: string; subtitle?: string } {
const title = opts.title?.trim()
const subtitle = opts.subtitle?.trim()
return { title: title || '操作', ...(subtitle ? { subtitle } : {}) }
}