переименования папок
This commit is contained in:
81
src/type/template.ts
Normal file
81
src/type/template.ts
Normal file
@@ -0,0 +1,81 @@
|
||||
// Типы элементов интерфейса
|
||||
export type ElementType =
|
||||
| 'text'
|
||||
| 'select'
|
||||
| 'radio'
|
||||
| 'checkbox'
|
||||
| 'number'
|
||||
| 'textarea'
|
||||
| 'date'
|
||||
| 'standards'
|
||||
| 'calibration-conditions'
|
||||
| 'button-group'
|
||||
|
||||
export interface ElementOption {
|
||||
value: string
|
||||
label: string
|
||||
}
|
||||
|
||||
// Расширенный тип для ячейки с указанием листа
|
||||
export interface CellTarget {
|
||||
sheet: string // название листа, например "L" или "R"
|
||||
cell: string // адрес ячейки, например "A2" или "B4"
|
||||
displayName?: string // отображаемое имя для пользователя
|
||||
}
|
||||
|
||||
// Позиция и размеры элемента в визуальном редакторе
|
||||
export interface ElementLayout {
|
||||
x: number // позиция по X в пикселях
|
||||
y: number // позиция по Y в пикселях
|
||||
width: number // ширина в пикселях
|
||||
height: number // высота в пикселях
|
||||
zIndex?: number // Z-index для наложения элементов
|
||||
}
|
||||
|
||||
// Настройки отображения элементов в форме
|
||||
export interface FormLayoutSettings {
|
||||
gridSize: number // размер сетки для привязки (в пикселях)
|
||||
showGrid: boolean // показывать сетку
|
||||
}
|
||||
|
||||
export interface TemplateElement {
|
||||
id: string
|
||||
type: ElementType
|
||||
name: string
|
||||
label: string
|
||||
targetCells: CellTarget[] // множественные ячейки вместо одной targetCell
|
||||
options?: ElementOption[] // для select и radio
|
||||
required?: boolean
|
||||
defaultValue?: string
|
||||
placeholder?: string
|
||||
order?: number // порядок отображения в форме
|
||||
layout?: ElementLayout // позиция и размеры в визуальном редакторе
|
||||
}
|
||||
|
||||
// Информация об объединенных ячейках
|
||||
export interface MergedCell {
|
||||
from: string // начальная ячейка (например, "A1")
|
||||
to: string // конечная ячейка (например, "C3")
|
||||
value: any // значение объединенной ячейки
|
||||
}
|
||||
|
||||
// Типы шаблонов
|
||||
export interface Template {
|
||||
id: string
|
||||
name: string
|
||||
description?: string
|
||||
excelFile?: File
|
||||
excelData?: Record<string, any> // данные из Excel
|
||||
mergedCells?: MergedCell[] // информация об объединенных ячейках
|
||||
elements: TemplateElement[]
|
||||
layoutSettings?: FormLayoutSettings // настройки отображения формы
|
||||
createdAt: Date
|
||||
updatedAt: Date
|
||||
}
|
||||
|
||||
// Типы для работы с данными
|
||||
export interface TemplateData {
|
||||
templateId: string
|
||||
values: Record<string, any> // elementId -> value
|
||||
calculatedCells?: Record<string, any> // cellName -> value
|
||||
}
|
||||
Reference in New Issue
Block a user