///
import type { FormInstance } from "antd";
import { SYMBOL } from "./constant";
export declare type ShowHeaderObjType = {
title: string;
dataIndex: string;
show?: boolean;
width?: number;
};
export declare type DataType = "string" | "number" | "array" | "dateArray" | "date" | "tradeId";
export declare type ALignType = "left" | "right" | "center";
export declare type QuerySymbol = keyof typeof SYMBOL | Record;
export declare type Record = {
[props in string]: any;
};
export declare enum PlatForm {
TB = "tb",
FXG = "fxg",
KS = "ks",
PDD = "pdd",
JD = "jd",
XIAOZHI = "xiaozhi",
WEB = "web",
PC = "pc"
}
export declare type FilterConfigType = {
searchDefaultConditions: QuerySymbol;
type: string;
id: string;
name: string;
filterComponentType: FilterComponentType;
props?: Record;
rules?: Array;
filterFn?: (p: any) => (r: Record) => unknown;
formatFilterValue?: (p: any) => any;
};
export declare type FilterComponentType = "MultipleSelect" | "TagsSelect" | "Input" | "Date" | "Cascader" | "ShopList" | "Rate" | "SelectInput" | "AsyncSelect";
export interface ComponentInterface {
transformValue?: (val: any, record?: any, parentName?: string, parent?: any) => any;
id: string;
sortField: string;
sortChildField?: {
name: string;
key: string;
dataType: string;
[key: string]: any;
}[];
name: string;
columnHeader?: string | JSX.Element;
type: string;
isCombinationComponent: boolean;
formField: string;
canSort: boolean;
children: ComponentInterface[];
rules?: any[];
width?: number;
align?: ALignType;
dataType: "string" | "number" | "boolean" | "array" | "range" | "object" | "weakenArray" | "arrayObject";
standardDateType?: "String" | "Number" | "Boolean" | "Array" | "Object";
format?: "dateTime" | "date" | "time" | "cascader" | "shopInput" | "staffGroup" | "object";
options?: Array;
optionsMap?: Record;
templateId?: string;
flowTemplateKey?: string;
workOrderUniqueKey?: string;
platform?: PlatForm;
parentName?: string;
parent?: any;
exampleValue?: any;
compoundConfig?: Array<{
id: string;
standardDateType?: "String" | "Number" | "Boolean" | "Array" | "Object";
name: string;
exampleValue?: any;
}>;
/**
* @description 组件下标
* @deprecated 已弃用字段,后续版本不在使用
*/
formItemIndex?: number;
componentConfig?: {
/**
* @description 商品类组件选择商品来源配置
*/
goodsSource?: {
source?: "workOrder" | "erp";
sourceSettings?: {
filterMode?: "some" | "every";
filterRules?: {
leftValue: string;
compareSymbol: any;
rightValue?: any;
}[];
dataFilterConfig: {
[cpId: string]: {
isFilter?: boolean;
isShow?: boolean;
index?: number;
};
};
keyMap: {
[key: string]: string;
};
workOrder: {
flowTemplateKey: string;
nodeId: string;
};
};
};
/**
* @description 特殊自定义组件有的值
*/
webUniqueKey?: string;
/**
* @description 组件描述信息
*/
tooltip?: string;
/**
* @description 是否开启组件描述信息
*/
showTooltip?: boolean;
/**
* @description 是否拆列头-针对收寄信息组件
*/
splitColumns?: boolean;
/**
* @description 必填
*/
required?: boolean;
/**
* @description 去重复提醒
*/
replaceWarn?: boolean;
/**
* @description 是否只显示一个
*/
isSingle?: boolean;
/**
* @description 显示字段名称
*/
showField?: "EXPRESS_COMPANY" | "EXPRESS_WAYBILL_CODE" | "EXPRESS_SNAPSHOT" | "all" | "bs" | "workOrder" | "logisticsCompany" | "logisticsCode" | string;
/**
* @description 是否选择SKU
*/
changeSku?: boolean;
/**
* @description 最大选择个数
*/
maxLength?: number;
/**
* @description 备注初始值
*/
remark?: string;
/**
* @description 旗帜初始值
*/
flag?: string;
/**
* @description 备注状态
*/
associatedType?: "APPEND";
isAssociated?: boolean;
isShowFlag?: boolean;
/**
* 是否水平排列
*/
horizontal?: boolean;
/**
* 是否显示其他
*/
showOther?: boolean;
options?: any[];
selectOptions?: any[];
/**
* @description 输入框初始值
*/
input?: string;
/**
* @description 输入框是否是数字类型
*/
isNumber?: boolean;
/**
* @description 输入框是否是邮箱
*/
isMail?: boolean;
/**
* @description 输入框是否是手机号
*/
isPhone?: boolean;
/**
* @description 多行文本初始值
*/
textarea?: string;
/**
* @description 多选框默认值
*/
checkbox?: any[];
checkboxOther?: string;
/**
* @description 时间初始值
*/
dateTime?: string;
dateType?: "DATE" | "DATE_TIME" | "DATE_RANGE" | "DATE_TIME_RANGE";
maxSize?: number;
basicGrade?: number;
range?: number;
basicMultSelect?: any[];
rate?: any[];
zhiFubaoRequired?: boolean;
extendList?: any;
enableItemId?: boolean;
enableSupplierName?: boolean;
radio?: string;
radioOther?: string;
/**
* @description 针对JD单店铺,需要使用企业工单的上传能力,这里增加了一个配置
*/
isSingleShop?: boolean;
/**
* @description 针对ERP的订单组件需要特殊展示,此处增加一个特殊标识
*/
erpFlag?: boolean;
reissueFlag?: boolean;
showHeader?: (ShowHeaderObjType | string)[];
reasonList?: any[];
disabled?: boolean;
config?: any;
rulesOptions?: Array;
selectRules?: Array;
logistics?: string;
subConfig?: {
correlationList?: any;
flowStatus?: string[];
flowTemplateKey?: any;
nodeId?: string;
workOrderTemplateId?: string;
};
needFilterShopByPermission?: boolean;
tableHeader?: any;
belongType?: string;
repeatConfig?: {
repeatRange: string;
repeatComponents: any[];
};
sortColumns?: string;
};
effects?: {
queryWorkOrderDetail?: (r: Record) => void;
handleOpenRepeatList?: (r: Record) => void;
handleChangeSingleWorkOrderMark?: (t: string, r: Record, id?: string) => void;
templateList?: any[];
templateDetail?: any[];
workOrderDetail?: Record;
isEditing?: boolean;
form?: FormInstance;
shopList?: any[];
shopId?: string;
userList?: {
label: string;
value: string;
}[];
groupList?: {
label: string;
value: string;
[key: string]: any;
}[];
tbAppKey?: string;
companyKey?: string;
env?: PlatForm;
};
/**
* 日志渲染
* @param value
* @param r
* @returns
*/
renderLog: (r: Record) => JSX.Element | null | JSX.Element[] | string;
/**
* 客户端卡片字段渲染,record的格式为下面这种,可以直接使用
* {
* xxxx: "",
* xxxx: {
* value: "",other: ""
* }
* }
* @param record
* @returns
*/
renderClient: (record: Record, p?: any) => JSX.Element | null;
/**
* PC端渲染,主要依赖与第二个参数record
* @param value
* @param record
* @returns
*/
renderPc: (value: unknown, record: Record) => JSX.Element | null | JSX.Element[] | string;
/**
* PC端渲染表格浮层,存在则根据renderPcTooltip渲染,不存在则根据renderPc渲染,主要依赖与第二个参数record
* @param value
* @param record
* @returns
*/
renderPcTooltip?: (value: unknown, record: Record) => JSX.Element | null | JSX.Element[] | string;
/**
* 导出时渲染
* @param p
* @returns
*/
renderExport: (value: any, record: Record) => (string | number | undefined | null) | Promise;
/**
* 编辑渲染
*/
editRender: (p?: {
formItemIndex?: number;
onBlur?: (p1: any, p2: any) => void;
hidden?: false;
}) => JSX.Element | null;
/**
* 过滤条件配置组件(废弃)
*/
filterConfig: (p: ColumnConfig) => FilterConfigType | FilterConfigType[];
/**
* 获取组件值 cUztapBEyd_input
*/
getComponentValue: (r: Record) => any;
formDataTransform?: (r: any) => any;
}
export declare type PickOption = Pick;
export declare type ColumnConfig = {
id: string;
name: string;
type: string;
subKey?: string;
mode?: "multiple";
config?: ComponentInterface["componentConfig"];
templateConfig?: ComponentInterface["componentConfig"];
};
export interface ColumnsConfigI {
show: boolean;
delete: boolean;
width: number;
name: string;
id: string;
type: string;
config?: any;
}