for admin form page
This commit is contained in:
@@ -94,6 +94,23 @@ export const LOOKUP_COPY_SUPPORTED_TYPES = [
|
||||
FIELD_TYPES.RECORD_NUMBER,
|
||||
];
|
||||
|
||||
// DOM 类名常量定义(用于 admin 表单页面)
|
||||
export const DOM_CLASSES = {
|
||||
CANVAS_ELEMENT: 'fm-canvas-gaia',
|
||||
CONTENT_ELEMENT: 'fm-canvas-contentElement-gaia',
|
||||
INSERT_LABEL_ELEMENT: 'input-label-cybozu',
|
||||
INSERT_GROUP_LABEL_ELEMENT: 'group-label-gaia',
|
||||
INSERT_SPACER_LABEL_ELEMENT: 'fm-control-spacer-gaia',
|
||||
ROW_ELEMENT: 'fm-row-gaia',
|
||||
FIELD_ELEMENT: 'fm-control-gaia',
|
||||
SUBTABLE: 'fm-subtable-gaia',
|
||||
GROUP: 'fm-control-group-gaia',
|
||||
REFERENCE_TABLE: 'fm-control-reference_table-field-gaia',
|
||||
SPACER: 'fm-control-spacer-field-gaia',
|
||||
HR: 'fm-control-hr-field-gaia',
|
||||
LABEL: 'fm-control-label-field-gaia',
|
||||
};
|
||||
|
||||
// 页面类型常量定义
|
||||
export const PAGE_TYPES = {
|
||||
DETAIL: 'detail',
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
* 提供用于创建和管理 DOM 元素的辅助函数
|
||||
*/
|
||||
|
||||
import { FIELD_TYPES } from './constants.js';
|
||||
import { FIELD_TYPES, DOM_CLASSES } from './constants.js';
|
||||
|
||||
/**
|
||||
* 从表元素中提取列宽度信息
|
||||
@@ -68,3 +68,40 @@ export const safelyAppendLabel = (targetElement, labelElement) => {
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
||||
const isRowElement = (element) => element?.classList?.contains(DOM_CLASSES.ROW_ELEMENT);
|
||||
const isFieldElement = (element) => element?.classList?.contains(DOM_CLASSES.FIELD_ELEMENT);
|
||||
|
||||
/**
|
||||
* 基于 DOM 类名判断字段类型的工具对象
|
||||
* 用于 admin 表单页面通过 DOM 元素判断字段类型
|
||||
*/
|
||||
export const FieldTypeCheckerForAdminDom = {
|
||||
isRowElement,
|
||||
isFieldElement,
|
||||
|
||||
isSubtable: (element) => {
|
||||
return !isRowElement(element) && !isFieldElement(element) &&
|
||||
element?.classList?.contains(DOM_CLASSES.SUBTABLE);
|
||||
},
|
||||
isGroup: (element) => {
|
||||
return isRowElement(element) &&
|
||||
!!element?.querySelector(`.${DOM_CLASSES.GROUP}`);
|
||||
},
|
||||
isReferenceTable: (element) => {
|
||||
return isRowElement(element) &&
|
||||
!!element?.querySelector(`.${DOM_CLASSES.REFERENCE_TABLE}`);
|
||||
},
|
||||
isSpacer: (element) => {
|
||||
return isFieldElement(element) &&
|
||||
element?.classList?.contains(DOM_CLASSES.SPACER);
|
||||
},
|
||||
isLabel: (element) => {
|
||||
return isFieldElement(element) &&
|
||||
element?.classList?.contains(DOM_CLASSES.LABEL);
|
||||
},
|
||||
isHr: (element) => {
|
||||
return isFieldElement(element) &&
|
||||
element?.classList?.contains(DOM_CLASSES.HR);
|
||||
},
|
||||
};
|
||||
|
||||
@@ -34,7 +34,7 @@ const getAppIdFromUrl = () => {
|
||||
export const getAppId = () => {
|
||||
try {
|
||||
if (isInAdminPage()) {
|
||||
return getAppIdFromUrl() || null;
|
||||
return Number(cybozu?.data?.page?.APP_ID) || getAppIdFromUrl() || null;
|
||||
}
|
||||
|
||||
if (!isGlobalKintoneExist()) {
|
||||
|
||||
Reference in New Issue
Block a user