/// 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; }