表格支持
This commit is contained in:
26
src/utils.ts
26
src/utils.ts
@@ -400,11 +400,11 @@ export const DEFAULT_PAPER_CONFIG: PaperConfig = {
|
||||
|
||||
/** 补全模板默认排版字段,剥离已废弃的数据源字段 */
|
||||
export function normalizeTemplate(tmpl: LabelTemplate): LabelTemplate {
|
||||
const { dataSource, dataSourceMeta, showPdfCutLines, exportRange: _exportRange, ...rest } = tmpl;
|
||||
const { ...rest } = tmpl;
|
||||
const cutLine: CutLineConfig = {
|
||||
...DEFAULT_CUT_LINE_CONFIG,
|
||||
...rest.cutLine,
|
||||
enabled: rest.cutLine?.enabled ?? showPdfCutLines !== false,
|
||||
enabled: rest.cutLine?.enabled ?? true,
|
||||
width:
|
||||
typeof rest.cutLine?.width === 'number' && rest.cutLine.width > 0
|
||||
? rest.cutLine.width
|
||||
@@ -495,6 +495,24 @@ export function resolveElementBackgroundFill(
|
||||
return color;
|
||||
}
|
||||
|
||||
/** 从元素内容(含表格单元格)提取变量名 */
|
||||
export function extractVariablesFromElement(elem: TemplateElement): string[] {
|
||||
const vars = new Set<string>();
|
||||
for (const v of extractVariablesFromContent(elem.content)) {
|
||||
vars.add(v);
|
||||
}
|
||||
if (elem.type === 'table' && elem.tableCells) {
|
||||
for (const cell of Object.values(elem.tableCells)) {
|
||||
if (cell.content) {
|
||||
for (const v of extractVariablesFromContent(cell.content)) {
|
||||
vars.add(v);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return Array.from(vars);
|
||||
}
|
||||
|
||||
/** 从模板汇总全部变量(声明列表 + 内容 + 显示控制) */
|
||||
export function extractTemplateVariables(template: {
|
||||
variableList?: string[];
|
||||
@@ -502,7 +520,7 @@ export function extractTemplateVariables(template: {
|
||||
}): string[] {
|
||||
const vars = new Set<string>(template.variableList ?? []);
|
||||
for (const elem of template.elements) {
|
||||
for (const v of extractVariablesFromContent(elem.content)) {
|
||||
for (const v of extractVariablesFromElement(elem)) {
|
||||
vars.add(v);
|
||||
}
|
||||
for (const rule of resolveVisibilityRules(elem)) {
|
||||
@@ -517,7 +535,7 @@ export function extractTemplateVariables(template: {
|
||||
export function getUsedTemplateVariables(template: { elements: TemplateElement[] }): string[] {
|
||||
const vars = new Set<string>();
|
||||
for (const elem of template.elements) {
|
||||
for (const v of extractVariablesFromContent(elem.content)) {
|
||||
for (const v of extractVariablesFromElement(elem)) {
|
||||
vars.add(v);
|
||||
}
|
||||
for (const rule of resolveVisibilityRules(elem)) {
|
||||
|
||||
Reference in New Issue
Block a user