import { IFieldType } from '@/common/types'; import Api from './Api'; import { IImportOrExportRecord } from './Issue'; export declare enum PageConfigIssueType { feature = "feature", bug = "bug", subTask = "subTask", story = "story", task = "task", epic = "issue_epic", demand = "demand", null = "" } interface ISyncDefaultPostData { defaultValue?: any; extraConfig?: boolean; fieldOptions?: Array; custom: boolean; fieldType?: IFieldType; issueTypeIds: string[]; } export interface IFieldOption { id: string; fieldId: string; code: string; value: string; tempKey?: string; } export declare type IFieldOptionProps = IFieldOption; interface IFiled { created: boolean; defaultValue: any; edited: boolean; fieldId: string; fieldCode: string; fieldName: string; fieldType: string; defaultValueObj: any; defaultValueObjs?: Array; fieldOptions: Array | null; id: string; issueType: PageConfigIssueType; objectVersionNumber: number; rank: string; required: boolean; source: string; pageConfigFieldEdited: any; } interface IFiledListItem { code: string; context: 'feature' | 'bug' | 'sub_task' | 'issue_epic' | 'task' | 'story' | 'backlog'; contextName: string; defaultValue: any; defaultValueObj: Array | null; fieldOptions: any; description: string; fieldType: string; fieldTypeName: string; id: string; name: string; objectVersionNumber: number; organizationId: string; projectId: string | null; requiredScope: 'ALL' | 'PART' | 'NONE'; system: boolean; } export declare type IFiledListItemProps = IFiledListItem; export declare type IFiledProps = IFiled; interface IssueTypeFieldVO { id: string; template: string; objectVersionNumber: number; } interface PageIssueType { fields: IFiled[]; issueTypeFieldVO?: IssueTypeFieldVO; } declare type FiledUpdate = Required>; export interface UIssueTypeConfig { issueTypeId: string; fields: Array; issueTypeFieldVO?: Partial; deleteIds?: string[]; addIds?: Array<{ fieldId: string; rank: string; }>; createdFields?: Array; } export interface ICascadeRule { issueTypeId: string; fieldId: string; fieldOptionId: string; cascadeFieldId: string; defaultValue?: any; hidden?: boolean; required?: boolean; fieldCascadeRuleOptionList?: { cascadeOptionId: string; defaultOption?: boolean; }[]; _status: 'create' | 'update' | 'delete'; objectVersionNumber?: number; id?: number; } declare type IPageFieldCreatePermissionScope = 'read' | 'write'; export interface IPageFieldCreatePermissionItem { scope: IPageFieldCreatePermissionScope; userIds?: string[]; roleIds?: string[]; } export interface IPageFieldCreatePermissionRoleItem { scope: IPageFieldCreatePermissionScope; roleIds: string[]; } interface IPageFieldCreatePermission { fields: Array<{ id: string; code: string; }>; permissions: Array; issueTypeIds: string[]; } export interface IPageFieldPermissionItem { roleIds: string[]; roleList: null; scope: IPageFieldCreatePermissionScope; userList: null; userIds: string[]; } declare class PageConfigApi extends Api { get prefix(): string; get prefixOrgOrPro(): string; /** * 加载字段列表 * @param schemeCode */ load(schemeCode?: string): any; /** * 通过字段id加载字段详情 * @param fieldId */ loadById(fieldId: string): any; /** * 根据工作项类型id查询字段 * @param issueTypeId */ loadFieldsByType(issueTypeId: string): any; /** * 根据工作项类型code查询默认模板 * @param issueType */ loadTemplateByType(issueType: string, projectId?: string): any; /** * 查询当前项目或组织下可配置的工作项类型 * */ loadAvailableIssueType(): Promise<{ id: string; name: string; typeCode: string; }[]>; /** * 根据工作项类型加载页面配置 * @param issueTypeId */ loadByIssueType(issueTypeId: string): Promise; /** * 根据工作项类型加载页面模板 * @param issueTypeId */ loadTemplateByIssueType(issueTypeId: string): Promise; updateField(fieldId: string, data: any): any; /** * 更新页面配置 * @param data */ updateConfig(data: UIssueTypeConfig): any; /** * 更新字段是否必选 * @param fieldId * @param required */ updateRequired(fieldId: string, required: boolean): any; /** * 同步主默认值到 issueType 类型 * @param fieldId * @param issueTypeStr */ syncDefaultValue(fieldId: string, data: ISyncDefaultPostData): any; /** * 删除字段 * @param fieldId */ delete(fieldId: string): any; /** * 查询当前类型未选择的字段列表 * @param issueType */ loadUnSelected(issueTypeId: string): Promise; /** * 查询字段的rank */ loadRankValue(data: { previousRank: string | null; nextRank: string | null; }): any; /** * 下载导入模板 */ downloadTemplate(): any; import(data: any): any; importCancel(data: { id: string; objectVersionNumber: number; }): any; /** * 查询最近导入记录 */ loadLastImportRecord(action?: string): Promise; /** * 创建级联规则 */ createCascadeRule(data: ICascadeRule[]): any; getCascadeRuleList(issueTypeId: string, fieldId?: string): any; getCascadeFields(issueTypeId: string, fieldId: string): any; getCascadeRelOptionList(ruleId: string): any; /** * 创建权限 * @param data * @returns */ createPermission(data: IPageFieldCreatePermission): any; /** * 批量创建权限 * @param data * @returns */ batchCreatePermission(data: IPageFieldCreatePermission): any; /** * 根据字段id查询权限 * @param data * @returns */ loadFieldPermission(field: string, issueTypeId: string): Promise; /** * 查询必填字段是否有查看的权限 * @param data @default pageCode 默认为 agile_issue_create 非创建时需置为空 * @param issueId * @returns */ loadRequiredPermission(data: { issueTypeId: string; pageCode?: string; }, issueId?: string): any; } declare const pageConfigApi: PageConfigApi; declare const pageConfigApiConfig: PageConfigApi; export { pageConfigApi, pageConfigApiConfig };