Merge pull request 'feature/screen-management' (#296) from feature/screen-management into main
Reviewed-on: http://39.117.244.52:3000/kjs/ERP-node/pulls/296
This commit is contained in:
commit
44f5265105
|
|
@ -767,11 +767,12 @@ export async function getTableData(
|
|||
|
||||
const tableManagementService = new TableManagementService();
|
||||
|
||||
// 🆕 현재 사용자 필터 적용
|
||||
// 🆕 현재 사용자 필터 적용 (autoFilter가 없거나 enabled가 명시적으로 false가 아니면 기본 적용)
|
||||
let enhancedSearch = { ...search };
|
||||
if (autoFilter?.enabled && req.user) {
|
||||
const filterColumn = autoFilter.filterColumn || "company_code";
|
||||
const userField = autoFilter.userField || "companyCode";
|
||||
const shouldApplyAutoFilter = autoFilter?.enabled !== false; // 기본값: true
|
||||
if (shouldApplyAutoFilter && req.user) {
|
||||
const filterColumn = autoFilter?.filterColumn || "company_code";
|
||||
const userField = autoFilter?.userField || "companyCode";
|
||||
const userValue = (req.user as any)[userField];
|
||||
|
||||
if (userValue) {
|
||||
|
|
|
|||
|
|
@ -2201,12 +2201,12 @@ export const InteractiveDataTable: React.FC<InteractiveDataTableProps> = ({
|
|||
const mapping = categoryMappings[column.columnName];
|
||||
const categoryData = mapping?.[String(value)];
|
||||
|
||||
// 매핑 데이터가 있으면 라벨과 색상 사용, 없으면 코드값과 기본색상
|
||||
// 매핑 데이터가 있으면 라벨과 색상 사용, 없으면 코드값만 텍스트로 표시
|
||||
const displayLabel = categoryData?.label || String(value);
|
||||
const displayColor = categoryData?.color || "#64748b"; // 기본 slate 색상
|
||||
const displayColor = categoryData?.color;
|
||||
|
||||
// 배지 없음 옵션: color가 "none"이면 텍스트만 표시
|
||||
if (displayColor === "none") {
|
||||
// 배지 없음 옵션: color가 없거나, "none"이거나, 매핑 데이터가 없으면 텍스트만 표시
|
||||
if (!displayColor || displayColor === "none" || !categoryData) {
|
||||
return <span className="text-sm">{displayLabel}</span>;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -418,7 +418,7 @@ export const RepeaterInput: React.FC<RepeaterInputProps> = ({
|
|||
const valueStr = String(value); // 값을 문자열로 변환
|
||||
const categoryData = mapping?.[valueStr];
|
||||
const displayLabel = categoryData?.label || valueStr;
|
||||
const displayColor = categoryData?.color || "#64748b"; // 기본 색상 (slate)
|
||||
const displayColor = categoryData?.color;
|
||||
|
||||
console.log(`🏷️ [RepeaterInput] 카테고리 배지 렌더링:`, {
|
||||
fieldName: field.name,
|
||||
|
|
@ -429,8 +429,8 @@ export const RepeaterInput: React.FC<RepeaterInputProps> = ({
|
|||
displayColor,
|
||||
});
|
||||
|
||||
// 색상이 "none"이면 일반 텍스트로 표시
|
||||
if (displayColor === "none") {
|
||||
// 배지 없음 옵션: color가 없거나, "none"이거나, 매핑 데이터가 없으면 텍스트만 표시
|
||||
if (!displayColor || displayColor === "none" || !categoryData) {
|
||||
return <span className="text-sm">{displayLabel}</span>;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -426,12 +426,29 @@ export class DynamicFormApi {
|
|||
sortBy?: string;
|
||||
sortOrder?: "asc" | "desc";
|
||||
filters?: Record<string, any>;
|
||||
autoFilter?: {
|
||||
enabled: boolean;
|
||||
filterColumn?: string;
|
||||
userField?: string;
|
||||
};
|
||||
},
|
||||
): Promise<ApiResponse<any[]>> {
|
||||
try {
|
||||
console.log("📊 테이블 데이터 조회 요청:", { tableName, params });
|
||||
|
||||
const response = await apiClient.post(`/table-management/tables/${tableName}/data`, params || {});
|
||||
// autoFilter가 없으면 기본값으로 멀티테넌시 필터 적용
|
||||
// pageSize를 size로 변환 (백엔드 파라미터명 호환)
|
||||
const requestParams = {
|
||||
...params,
|
||||
size: params?.pageSize || params?.size || 100, // 기본값 100
|
||||
autoFilter: params?.autoFilter ?? {
|
||||
enabled: true,
|
||||
filterColumn: "company_code",
|
||||
userField: "companyCode",
|
||||
},
|
||||
};
|
||||
|
||||
const response = await apiClient.post(`/table-management/tables/${tableName}/data`, requestParams);
|
||||
|
||||
console.log("✅ 테이블 데이터 조회 성공 (원본):", response.data);
|
||||
console.log("🔍 response.data 상세:", {
|
||||
|
|
|
|||
|
|
@ -4233,9 +4233,10 @@ export const TableListComponent: React.FC<TableListComponentProps> = ({
|
|||
if (values.length === 1) {
|
||||
const categoryData = mapping?.[values[0]];
|
||||
const displayLabel = categoryData?.label || values[0];
|
||||
const displayColor = categoryData?.color || "#64748b";
|
||||
const displayColor = categoryData?.color;
|
||||
|
||||
if (displayColor === "none") {
|
||||
// 배지 없음 옵션: color가 없거나, "none"이거나, 매핑 데이터가 없으면 텍스트만 표시
|
||||
if (!displayColor || displayColor === "none" || !categoryData) {
|
||||
return <span className="text-sm">{displayLabel}</span>;
|
||||
}
|
||||
|
||||
|
|
@ -4258,9 +4259,10 @@ export const TableListComponent: React.FC<TableListComponentProps> = ({
|
|||
{values.map((val, idx) => {
|
||||
const categoryData = mapping?.[val];
|
||||
const displayLabel = categoryData?.label || val;
|
||||
const displayColor = categoryData?.color || "#64748b";
|
||||
const displayColor = categoryData?.color;
|
||||
|
||||
if (displayColor === "none") {
|
||||
// 배지 없음 옵션: color가 없거나, "none"이거나, 매핑 데이터가 없으면 텍스트만 표시
|
||||
if (!displayColor || displayColor === "none" || !categoryData) {
|
||||
return (
|
||||
<span key={idx} className="text-sm">
|
||||
{displayLabel}
|
||||
|
|
|
|||
Loading…
Reference in New Issue