import { TagProps } from "@arco-design/web-vue/es/tag/interface"

export enum Client {
  LOGIN = 'api/client/login', // 登录
  GET_PERMISSIONS = 'api/client/get_permissions', // 获取所有用户有权限调用的api集合
  GET_SELF_INFO = 'api/client/get_self_info', // 获取当前登录个人信息
  SET_SELF_INFO = 'api/client/set_self_info', // 设置当前登录个人信息
  GET_IMAGE_VODE = 'api/client/get_vcode', // 获取图片验证码
  INFO_DOMAIN_TREE = 'api/client/get_self_domains'
}

export enum Application {
  SYSTEM_APPLICATION_ADD = 'api/acs.application.add', // 添加应用
  SYSTEM_APPLICATION_MODIFY = 'api/acs.application.modify', // 修改应用
  SYSTEM_APPLICATION_LIST = 'api/acs.application.get_list', // 获取应用列表
  SYSTEM_APPLICATION_REMOVE = 'api/acs.application.remove', // 删除应用
  SYSTEM_APPLICATION_DETAIL = 'api/acs.application.detail' // 获取应用详情
}

export enum Domain {
  SYSTEM_DOMAIN_ADD = 'api/acs.domain.add', // 添加功能模块
  SYSTEM_DOMAIN_MODIFY = 'api/acs.domain.modify', // 修改功能模块
  SYSTEM_DOMAIN_REMOVE = 'api/acs.domain.remove', // 删除功能模块
  SYSTEM_DOMAIN_TREE = 'api/acs.domain.get_tree' // 获取功能模块树
}

export enum Function {
  SYSTEM_FUNC_ADD = 'api/acs.function.add', // 添加功能项
  SYSTEM_FUNC_MODIFY = 'api/acs.function.modify', // 修改功能项
  SYSTEM_FUNC_REMOVE = 'api/acs.function.remove', // 删除功能项
  SYSTEM_FUNC_LIST = 'api/acs.function.get_list' // 获取功能项列表
}

export enum Module {
  SYSTEM_MODULE_ADD = 'api/acs.module.add', // 添加功能模块
  SYSTEM_MODULE_MODIFY = 'api/acs.module.modify', // 修改功能模块
  SYSTEM_MODULE_REMOVE = 'api/acs.module.remove', // 删除功能模块
  SYSTEM_MODULE_TREE = 'api/acs.module.get_tree' // 获取功能模块树
}

export enum Role {
  SYSTEM_ROLE_ADD = 'api/acs.role.add', // 添加角色
  SYSTEM_ROLE_MODIFY = 'api/acs.role.modify', // 修改角色
  SYSTEM_ROLE_LIST = 'api/acs.role.get_list', // 获取角色列表
  SYSTEM_ROLE_REMOVE = 'api/acs.role.remove', // 删除角色
  SYSTEM_ROLE_SET_F = 'api/acs.role.set_funcs', // 未角色设置功能项
  SYSTEM_ROLE_GET_F = 'api/acs.role.get_funcs', // 获取角色已有功能项
  SYSTEM_ROLE_GET_GROUP_TREE = 'api/acs.role.get_func_group_tree' // 获取功能项分组树
}

export enum User {
  SYSTEM_USER_ADD = 'api/acs.user.add', // 添加用户
  SYSTEM_USER_MODIFY = 'api/acs.user.modify', // 修改用户
  SYSTEM_USER_REMOVE = 'api/acs.user.remove', // 删除用户
  SYSTEM_USER_LIST = 'api/acs.user.get_list', // 获取用户列表
  SYSTEM_USER_GET_ROLES = 'api/acs.user.get_roles', // 获取用户可设置角色
  SYSTEM_USER_SET_ROLES = 'api/acs.user.set_roles', // 设置用户角色
  SYSTEM_USER_GET_DOMAINS = 'api/acs.user.get_domains', // 获取账号的分组列表
  SYSTEM_USER_SET_DOMAINS = 'api/acs.user.set_domains' // 设置账号所能访问的分组
}


// 项目接口
export enum Project {
  PROJECT_INFO_LIST = 'api/prj.info.get_list', // 获取项目列表
  PROJECT_INFO_ADD = 'api/prj.info.add', // 创建项目
  PROJECT_INFO_REMOVE = 'api/prj.info.remove', // 删除项目
  PROJECT_INFO_MODIFY = 'api/prj.info.modify', // 修改项目
  PROJECT_INFO_OVERVIEW = 'api/prj.info.overview', // 项目预览
  PROJECT_INFO_LOGS = 'api/prj.info.get_logs', // 获取项目动态列表
  PROJECT_FLOW_APPLY = 'api/prj.flow.apply', // 申请立项
  PROJECT_FLOW_CHECK_START = 'api/prj.flow.check_start', // 审核立项
  PROJECT_MEMBER_LIST = 'api/prj.member.get_list', // 获取项目组成员列表
  PROJECT_MEMBER_ADD = 'api/prj.member.add', // 创建项目组成员
  PROJECT_MEMBER_REMOVE = 'api/prj.member.remove', // 删除项目组成员
  PROJECT_MEMBER_MODIFY = 'api/prj.member.modify', // 修改项目组成员
  PROJECT_MEMBER_APPLY_ADD = 'api/prj.member.apply_add', // 删除项目中的项目组成员。立项申请后，项目组成员不允许删除，如需要删除，需撤回申请后删除，或在审核通过后再使用申请删除项目组成员接口。
  PROJECT_MEMBER_APPLY_REMOVE = 'api/prj.member.apply_remove', // 立项后，需要移除项目组成员时，使用此接口申请，在审核通过后生效。
  PROJECT_MEMBER_CHECK = 'api/prj.member.check', // 申请添加或移除项目组成员后，审核是否通过。
  PROJECT_PLAN_TASK_LIST = 'api/prj.plan.get_tasks', // 获取项目计划，计划中的任务为两级树状结构。计划有正本和副本之分，新建和正在执行的任务计划均为正本，对于审核通过后正在执行的计划，如需要变更，则在副本中修改，副本中的任何修改不影响正本的内容。当副本提高变更申请，并审核通过后，副本的内容将同步到正本中去。
  PROJECT_PLAN_TASK_ADD = 'api/prj.plan.add_task', // 添加项目计划任务项，包括一级任务和二级子任务。仅在任务计划处于新建状态时才允许直接添加，否则需要在副本中添加后，提交审核并通过后才生效
  PROJECT_PLAN_TASK_REMOVE = 'api/prj.plan.remove_task', // 删除任务项，仅在任务计划处于新建状态时才允许直接删除。否则需要在草稿中删除，并且仅允许删除状态为未开始的任务，提交审核并通过后才正式生效。
  PROJECT_PLAN_TASK_MODIFY = 'api/prj.plan.modify_task', // 修改任务项，仅在任务计划处于新建状态时才允许直接修改。否则需要在副本中修改，提交审核并通过后才正式生效，如果任务项已执行完成，不允许修改。
  PROJECT_PLAN_DETAIL = 'api/prj.plan.detail', // 获取项目任务计划完整信息。与任务计划清单不同的是，清单中只包含任务项的信息，而完整信息包括了任务项的交付物以及交付物的审核流程。
  PROJECT_PLAN_TASK_DETAIL = 'api/prj.plan.task_detail', // 获取指定任务项详情
  PROJECT_PLAN_TASK_SORT = 'api/prj.plan.sort_task', // 调整任务项的顺序，仅在任务计划处于新建状态时才允许直接调整。否则需要在副本中修改，提交审核并通过后才正式生效。
  PROJECT_PLAN_TASK_CANCEL = 'api/prj.plan.cancel_task', // 项目在新建状态时，可直接删除不需要的任务。已完成的任务项不允许删除。计划通过审核开始执行后，不管任务是否已开始执行，都不允许删除，不再执行的任务，需要申请中止任务，经审核通过后，可中止。中止任务项的申请直接在正本中进行。
  PROJECT_PLAN_TASK_LOGS = 'api/prj.plan.task_logs', // 获取项目计划中某个任务的执行动态，即日志。
  PROJECT_PLAN_SET_PROGRESS = 'api/prj.plan.set_progress',
  PROJECT_CONTRACT_LIST = 'api/prj.contract.get_list', // 获取所有项目的合同列表，可条件筛选。
  PROJECT_CONTRACT_ADD = 'api/prj.contract.add', // 新录入合同记录，新建合同可以在合同集中管理界面中新建，也可以在项目工作台的合同管理中新建。
  PROJECT_CONTRACT_REMOVE = 'api/prj.contract.remove', // 删除合同
  PROJECT_CONTRACT_MODIFY = 'api/prj.contract.modify', // 修改合同内容
  PROJECT_CONTRACT_DETAIL = 'api/prj.contract.detail', // 获取合同详情。
  PROJECT_CONTRACT_UPLOAD_DOC = 'api/prj.contract.upload_doc', // 获取上传合同附件的url。
  PROJECT_CONTRACT_DOWNLOAD_DOC = 'api/prj.contract.download_doc', // 获取下载合同附件的url。
  PROJECT_CONTRACT_REMOVE_DOC = 'api/prj.contract.remove_doc', // 用于删除已上传的合同附件。已归档的附件不允许修改
  PROJECT_WEEK_REPORT_LIST = 'api/prj.week_report.get_list', // 获取项目周报列表
  PROJECT_WEEK_REPORT_ADD = 'api/prj.week_report.add', // 创建项目周报
  PROJECT_WEEK_REPORT_REMOVE = 'api/prj.week_report.remove', // 删除项目周报
  PROJECT_WEEK_REPORT_MODIFY = 'api/prj.week_report.modify', // 修改项目周报
  PROJECT_WEEK_REPORT_DETAIL = 'api/prj.week_report.detail', // 查看项目周报详情
  PROJECT_WEEK_REPORT_COMMIT = 'api/prj.week_report.commit', // 提交项目周报
  PROJECT_WEEK_REPORT_REMOVE_FILE = 'api/prj.week_report.remove_file', // 提交项目周报

  PROJECT_WEEK_REPORT_WITHDRAW = 'api/prj.week_report.withdraw', // 撤回提交项目周报
  PROJECT_WEEK_REPORT_UPLOAD_FILE = 'api/prj.week_report.upload_file', // 获取上传周报附件的url。
  PROJECT_WEEK_REPORT_DOWNLOAD_FILE = 'api/prj.week_report.download_file', // 获取下载周报附件的url。
  PROJECT_OUTCOME_LIST = 'api/prj.outcome.get_list', // 获取项目计划中某一任务的交付物清单。与任务一样，也有正副本之分。交付物清单以预期交付时间作正向排序。
  PROJECT_OUTCOME_DETAIL = 'api/prj.outcome.detail', // 获取指定任务项中指定交付的详情。
  PROJECT_OUTCOME_ADD = 'api/prj.outcome.add', //  添加任务项中的交付物。仅在任务计划处于新建状态时才允许直接添加，否则需要在草稿中添加后，提交审核并通过后才生效。
  PROJECT_OUTCOME_MODIFY = 'api/prj.outcome.modify', // 修改任务项交付物。仅在任务计划处于新建状态时才允许直接修改。否则需要在草稿中修改，提交审核并通过后才正式生效。
  PROJECT_OUTCOME_REMOVE = 'api/prj.outcome.remove', // 删除任务项交付物，仅在任务计划处于新建状态时才允许直接删除。否则需要在草稿中删除，并且仅允许删除状态为未交付的交付物，提交审核并通过后才正式生效。
  PROJECT_OUTCOME_UPLOAD = 'api/prj.outcome.upload', // 获取上传交付物的url。上传成功后，如果该交付物需要审核，后台会将该交付物提交给相关审核人，否则上传成功后状态将置为已交付。
  PROJECT_OUTCOME_DOWNLOAD = 'api/prj.outcome.download', // 获取上传交付物的url。上传成功后，如果该交付物需要审核，后台会将该交付物提交给相关审核人，否则上传成功后状态将置为已交付。
  PROJECT_OUTCOME_REMOVE_FILE = 'api/prj.outcome.remove_file',
  PROJECT_APPLY_START = 'api/prj.apply.start', // 用户在创建项目后，申请立项
  PROJECT_APPLY_NEW_PLAN = 'api/prj.apply.new_plan', // 立项后，项目负责人编写任务计划，由审核人审核。 
  PROJECT_APPLY_MODIFY_PLAN = 'api/prj.apply.modify_plan', // 审核通过的任务计划，需要在副本中变更，并提交审核通过后方能同步到正本中执行。 
  PROJECT_APPLY_CANCEL = 'api/prj.apply.cancel', // 任务计划的正本或副本在提交审核后，在未审核时，可撤回申请继续修改
  PROJECT_DOC_LIST = 'api/prj.doc.get_list', // 获取项目中的文档列表
  PROJECT_DOC_UPLOAD = 'api/prj.doc.upload', // 上传项目文档
  PROJECT_DOC_DOWNLOAD = 'api/prj.doc.download', // 下载项目文档
  PROJECT_DOC_REOMOVE = 'api/prj.doc.remove', // 删除项目文档
  PROJECT_DOC_ARCHIVE = 'api/prj.doc.archive',
  PROJECT_DOC_COPY = 'api/prj.doc.copy',
  PROJECT_DOC_RENAME ='api/prj.doc.rename',
  PROJECT_KANBAN_MILESTONE = 'api/prj.kanban.milestone', // 获取项目里程碑及进度
  PROJECT_INFO_GET_CHECKERS = 'api/prj.info.get_checkers', // 获取项目审核人列表
  PROJECT_INFO_SET_CHECKERS = 'api/prj.info.set_checkers', // 设置项目审核人列表
  PROJECT_WORK_LIST = 'api/prj.work.get_list', // 获取我的任务列表
  PROJECT_WORK_DETAIL = 'api/prj.work.detail', // 获取任务详情
  PROJECT_WORK_SUBMIT = 'api/prj.work.submit', // 提交任务
  PROJECT_WORK_UPLOAD_FILE = 'api/prj.work.upload_file', // 上传工作项附件
  PROJECT_WORK_DOWNLOAD_FILE = 'api/prj.work.download_file', // 上传工作项附件
  PROJECT_WORK_UNDONE_COUNT = 'api/prj.work.undone_count',
  PROJECT_WORK_GET_CHAIN = 'api/prj.work.get_chain', // 获取工作项链
  
  PROJECT_PLAN_GET_CHECK_FLOW = 'api/prj.plan.get_check_flow', // 获取审核流程
  PROJECT_PLAN_SET_CHECK_FLOW = 'api/prj.plan.set_check_flow', // 设置审核流程
  PROJECT_INFO_STAT = "api/prj.info.stat", // 获取项目统计信息
  PROJECT_WORK_STAT = 'api/prj.work.stat', // 获取工作统计信息
  PROJECT_WORK_DONE_STAT = 'api/prj.work.done_stat', // 获取已工作统计信息
  PROJECT_WORK_UNDONE_STAT = 'api/prj.work.undone_stat', // 获取未工作统计信息
  PROJECT_CONTRACT_STAT = 'api/prj.contract.stat', // 获取合同统计信息
  PROJECT_PLAN_LOGS = 'api/prj.plan.get_logs', // 获取项目计划任务动态
  PROJECT_CREW_TASKS = 'api/prj.crew.get_tasks', // 
  PROJECT_CREW_LIST = 'api/prj.crew.get_crews'
}

// 审核
export enum Review {
  REVIEW_TICKET_LIST = 'api/review.ticket.get_list', // 审核人获取自己针对某个审核申请的整改工单列表。
  REVIEW_TICKET_ADD = 'api/review.ticket.add', // 针对某个审核申请内容，创建一条新的整改工单。
  REVIEW_TICKET_MODIFY = 'api/review.ticket.modify', // 修改整改工单内容。审核完成后，工单内容不允许修改，但可作废。
  REVIEW_TICKET_REMOVE = 'api/review.ticket.remove', // 未完成审核前，可删除整改工单。
  REVIEW_TICKET_TRANSFER = 'api/review.ticket.transfer', // 1. 某些工单在审核人分配的时候，会分配给主责人，需要由主责人再分配给具体负责人。 2. 在分配具体负责人时不准确，此时可以由当前负责人再次将工作单移交给其它项目组成员。 3. 审核人提交的整改意见本身有问题，负责人打回给审核人，审核人可重新编写说明后流转给负责人，也可以作废工单。
  REVIEW_TICKET_CANCEL = 'api/review.ticket.cancel', // 审核完成后，审核人可废除整改工单，但不能删除。
  REVIEW_TICKET_CONFIRM = 'api/prj.flow_start.review' // 最终确定审核是否通过。
}

// 审核
export enum Dashboard {
  REPORT_PRJOJECT_CAT_STAT = 'api/report.prj.cat_stat', // 获取项目分类统计
  REPORT_PRJOJECT_PLAN_STAT = 'api/report.prj.task_stat', // 获取项目计划统计
  REPORT_PRJOJECT_COUNT_STAT = 'api/report.prj.count', // 获取项目计划统计
  REPORT_PRJOJECT_MULTI_STAT = 'api/report.prj.multi_stat'
}



//客户
export enum Customer {
  BIZ_CUSTOMER_LIST = 'api/biz.customer.get_list',
  BIZ_CUSTOMER_ADD = 'api/biz.customer.add',
  BIZ_CUSTOMER_MODIFY = 'api/biz.customer.modify',
  BIZ_CUSTOMER_REMOVE = 'api/biz.customer.remove',
  BIZ_CUSTOMER_DETAIL = 'api/biz.customer.detail',
  BIZ_CUSTOMER_STAT = 'api/biz.customer.stat' // 获取客户统计信息
}


export enum Base {
  CFG_PRJ_TYPE_TREE = 'api/cfg.prj_type.get_tree',
  CFG_INDUSTRY_TYPE_LIST = 'api/cfg.industry_type.get_list',
  CFG_CUSTOMER_LEVEL_LIST = 'api/cfg.customer_level.get_list',
  CFG_PRJ_PHASE_GET_LIST = 'api/cfg.prj_phase.get_list',
  CFG_PRJ_ROLE_GET_LIST = 'api/cfg.prj_role.get_list',
  CFG_STAFF_LIST = 'api/cfg.staff.get_list',
  CFG_STAFF_ADD = 'api/cfg.staff.add',
  CFG_STAFF_ROLES = 'api/cfg.staff.get_roles',
  CFG_STAFF_MODIFY = 'api/cfg.staff.modify',
  CFG_STAFF_REMOVE = 'api/cfg.staff.remove',
  CFG_DOC_TYPE_LIST = 'api/cfg.doc_type.get_list',
  CFG_REGION_TREE ='api/cfg.region.get_tree',
  CFG_REGION_ADD ='api/cfg.region.add',
  CFG_REGION_MODIFY ='api/cfg.region.modify',
  CFG_REGION_REMOVE = 'api/cfg.region.remove',
  CFG_ORG_TREE = 'api/cfg.org.get_tree',
  CFG_ORG_ADD = 'api/cfg.org.add',
  CFG_ORG_MODIFY = 'api/cfg.org.modify',
  CFG_ORG_REMOVE = 'api/cfg.org.remove',
}



// 登录/注册page
export enum PageEnum {
  LOGIN_PATH = '/passport/login', // 登录路径
  REGISTER_PATH = '/passport/register' // 注册路径
}

// 项目阶段
export enum PhaseItem {
  NEW = 'new',
  APPLY_CREATE = 'apply_create',
  CREATED = 'created',
  REJECT_CREATE = 'reject_create',
  OVERVIEW_CREATE = 'overview_create',
  APPLY_PLAN = 'apply_plan',
  OVERVIEW_PLAN = 'overview_plan',
  APPLY_PLAN_ALT = 'apply_plan_alt',
  REJECT_PLAN = 'reject_plan',
  REJECT_PLAN_ALT = 'reject_plan_alt',
  DOING = 'doing',
  CHECKING = 'checking',
  DONE = 'done',
  DEPRECATED = 'deprecated'
}

// 项目阶段
export enum PhaseTitle {
  NEW = '新建',
  APPLY_CREATE = '申请立项中',
  OVERVIEW_CREATE = '立项审核中',
  CREATED = '已立项',
  REJECT_CREATE = '立项被驳回',
  APPLY_PLAN = '计划已提交',
  OVERVIEW_PLAN = '计划审核中',
  APPLY_PLAN_ALT = '计划变更已提交',
  REJECT_PLAN = '计划被驳回',
  REJECT_PLAN_ALT = '计划变更被驳回',
  DOING = '执行中',
  CHECKING = '验收中',
  DONE = '已完成',
  DEPRECATED = '已作废'
}


export const PhaseList: { id: PhaseItem, name: PhaseTitle, color: string }[] = [
  {
    id: PhaseItem.NEW,
    name: PhaseTitle.NEW,
    color: 'pinkpurple'
  },
  {
    id: PhaseItem.APPLY_CREATE,
    name: PhaseTitle.APPLY_CREATE,
    color: 'gold'
  },
  {
    id: PhaseItem.CREATED,
    name: PhaseTitle.CREATED,
    color: 'cyan'
  },
  {
    id: PhaseItem.REJECT_CREATE,
    name: PhaseTitle.REJECT_CREATE,
    color: 'red'
  },
  {
    id: PhaseItem.APPLY_PLAN,
    name: PhaseTitle.APPLY_PLAN,
    color: 'green'
  },
  {
    id: PhaseItem.OVERVIEW_PLAN,
    name: PhaseTitle.OVERVIEW_PLAN,
    color: 'arcoblue'
  },
  {
    id: PhaseItem.APPLY_PLAN_ALT,
    name: PhaseTitle.APPLY_PLAN_ALT,
    color: 'green'
  },
  {
    id: PhaseItem.REJECT_PLAN,
    name: PhaseTitle.REJECT_PLAN,
    color: 'orange'
  },
  {
    id: PhaseItem.REJECT_PLAN_ALT,
    name: PhaseTitle.REJECT_PLAN_ALT,
    color: 'red'
  },
  {
    id: PhaseItem.DOING,
    name: PhaseTitle.DOING,
    color: 'arcoblue'
  },
  {
    id: PhaseItem.DEPRECATED,
    name: PhaseTitle.DEPRECATED,
    color: 'gray'
  }
]



// 项目工作台tab数组
export enum ProjectDetailTabTitle {
  OVERVIEW = '项目概览',
  TASK = '项目计划',
  PROGRESSING = '进度看板',
  CONTRACT = '项目合同',
  REPORT = '项目周报',
  DOCUMENT = '项目文档'
}

export enum ProjectDetailTabPath {
  OVERVIEW = 'overview',
  TASK = 'plan-task',
  PROGRESSING = 'progressing',
  CONTRACT = 'contract',
  REPORT = 'report',
  DOCUMENT = 'document'
}

export const ProjectDetailTabTitleList: { title: ProjectDetailTabTitle, path: ProjectDetailTabPath, api: string[], redirectId?: string[], routerName: string }[] = [
  {
    title: ProjectDetailTabTitle.OVERVIEW,
    path: ProjectDetailTabPath.OVERVIEW,
    api: [Project.PROJECT_INFO_OVERVIEW],
    redirectId: ['project-detail'],
    routerName: 'ProjectDetail'
  },
  {
    title: ProjectDetailTabTitle.TASK,
    path: ProjectDetailTabPath.TASK,
    api: [Project.PROJECT_PLAN_TASK_LIST],
    redirectId: ['project-plan', 'project-plan-draft', 'project-outcome'],
    routerName: 'ProjectPlan'
  },
  {
    title: ProjectDetailTabTitle.PROGRESSING,
    path: ProjectDetailTabPath.PROGRESSING,
    api: [Project.PROJECT_PLAN_TASK_LIST],
    routerName: 'ProjectProgressing'
  },
  {
    title: ProjectDetailTabTitle.CONTRACT,
    path: ProjectDetailTabPath.CONTRACT,
    api: [Project.PROJECT_CONTRACT_LIST],
    routerName: 'ProjectContract'
  },
  {
    title: ProjectDetailTabTitle.REPORT,
    path: ProjectDetailTabPath.REPORT,
    api: [Project.PROJECT_WEEK_REPORT_LIST],
    redirectId: ['project-week-report'],
    routerName: 'ProjectWeekReport'
  },
  {
    title: ProjectDetailTabTitle.DOCUMENT,
    path: ProjectDetailTabPath.DOCUMENT,
    api: [Project.PROJECT_DOC_LIST],
    routerName: 'ProjectDocument'
  }
]

export enum OperateTypeItem {
  UNDEFINED = 'undefined',
  R = 'r',
  W = 'w',
  RW = 'rw'
}


// 客户级别项
export enum CustomerLevel {
  VIP = 'VIP',
  A = 'A',
  B = 'B',
  C = 'C'
}

// 客户级别列表
export const CustomerLevelList = [
  {
    name: 'VIP',
    id: CustomerLevel.VIP,
  },
  {
    name: 'A级',
    id: CustomerLevel.A,
  },
  {
    name: 'B级',
    id: CustomerLevel.B,
  }, {
    name: 'C级',
    id: CustomerLevel.C
  }
]

// 周报状态项
export enum ReportStatusItem {
  DRAFTING = 10,
  SUMITTING = 20,
  WITHDRAWING = 30,
  REJECTING = 40,
  REVIEWED = 100
}
// 合同文档类型
export enum ContractTypeItem {
  DOC = 10, // 打印件
  PDF = 20 // 扫描件
}

// 周报状态列表
export const ReportStatusList: { label: string, value: number, tagProps: TagProps }[] = [
  {
    value: ReportStatusItem.DRAFTING,
    label: '起草',
    tagProps: {
      color: undefined
    }
  },
  {
    value: ReportStatusItem.SUMITTING,
    label: '提交',
    tagProps: {
      color: 'arcoblue'
    }
  },
  {
    value: ReportStatusItem.WITHDRAWING,
    label: '撤回',
    tagProps: {
      color: 'orange'
    }
  },
  {
    value: ReportStatusItem.REJECTING,
    label: '驳回',
    tagProps: {
      color: 'red'
    }
  },
  {
    value: ReportStatusItem.REVIEWED,
    label: '已审阅',
    tagProps: {
      color: 'green'
    }
  }
]


export const ChangeMarkerList: { label: string, value: number, class?: string, subClass?: string }[] = [
  {
    value: 1,
    label: '已修改',
    class: 'ribbon-modify',
    subClass: 'ribbon-sub-modify',
  },
  {
    value: 2,
    label: '新增',
    class: 'ribbon-add',
    subClass: 'ribbon-sub-add',
  },
  {
    value: 3,
    label: '已删除',
    class: 'ribbon-remove',
    subClass: 'ribbon-sub-remove',
  }
]


// 操作项
export enum OperateItem {
  ADD = 0, // 添加
  MODIFY = 1, // 修改
  DETAIL = 2, //  详情
  REMOVE = 3, // 删除
  LIST = 4 // 列表
}

export enum FlowNode {
  DRAFTING = '起草',
  A = '抄送',
  B = '审批',
  C = '结束',
}

export enum ComponentsType {
  STRINGINPUT = 0, // 默认string input 组件
  NUMBERINPUT = 1, // 默认number input 组件
  SELECT = 2, // 下拉列表
  CASCADER = 3, // 级联
  DATEPICKER = 4, // 日期
  TEXTAREA = 5 // 文本域
}

export enum ApiCustomeCode {
  SUCCESS = 10000
}


export const filterDateList: { title: string, value: number, key: string }[] = [
  {
    title: '不限',
    value: 0,
    key: 'no-limit'
  },
  {
    title: '近一周',
    value: 1,
    key: 'one-week'
  },
  {
    title: '近一个月',
    value: 2,
    key: 'one-month'
  },
  {
    title: '近三个月',
    value: 3,
    key: 'three-month'
  },
  {
    title: '近半年',
    value: 4,
    key: 'six-month'
  },
  {
    title: '近一年',
    value: 5,
    key: 'one-year'
  },
]

// 计划任务状态
export enum TaskStatus {
  DEFAULT = 0,
  DOING = 10,
  TIMEOUT = 20,
  REJECTING = 30,
  APPLY_CREATE = 40,
  APPLYING = 50,
  DELAY_DONE = 80,
  CANCEL = 90,
  COMPLETE = 100
}

// 计划任务状态列表
export const TaskStatusList: { label: string, value: number, 'tag-props': TagProps }[] = [
  {
    label: '未开始',
    value: TaskStatus.DEFAULT,
    'tag-props': {
      color: undefined
    }
  },
  {
    label: '进行中',
    value: TaskStatus.DOING,
    'tag-props': {
      color: 'arcoblue'
    }
  }, {
    label: '已超时',
    value: TaskStatus.TIMEOUT,
    'tag-props': {
      color: 'orange'
    }
  }, {
    label: '审核未通过',
    value: TaskStatus.REJECTING,
    'tag-props': {
      color: 'red'
    }
  }, {
    label: '申请审核',
    value: TaskStatus.APPLY_CREATE,
    'tag-props': {
      color: 'blue'
    }
  },
  {
    label: '审核中',
    value: TaskStatus.APPLYING,
    'tag-props': {
      color: 'blue'
    }
  },
  {
    label: '延期完成',
    value: TaskStatus.DELAY_DONE,
    'tag-props': {
      color: 'cyan'
    }
  }, {
    label: '已完成',
    value: TaskStatus.COMPLETE,
    'tag-props': {
      color: 'green'
    }
  },
]

export const MilestoneStatusList: { label: string, theme?: "normal" | "success" | "warning" | "danger" | undefined, color: string, status: TaskStatus, icon: string, iconSize?: number }[] = [
  {
    label: '未开始',
    theme: undefined,
    color: 'rgb(var(--gray-5))',
    status: TaskStatus.DEFAULT,
    icon: 'my-clock',
    iconSize: 26
  },
  {
    label: '进行中',
    color: 'rgb(var(--primary-4))',
    theme: 'normal',
    status: TaskStatus.DOING,
    icon: 'my-rocket'
  },
  {
    label: '已超时',
    color: 'rgb(var(--warning-4))',
    theme: 'warning',
    status: TaskStatus.TIMEOUT,
    icon: 'my-timeout'
  },
  {
    label: '延期完成',
    color: 'rgb(var(--success-4))',
    theme: 'success',
    status: TaskStatus.DELAY_DONE,
    icon: 'my-delay',
    iconSize: 26
  },
  {
    label: '按时完成',
    color: 'rgb(var(--success-4))',
    theme: 'success',
    status: TaskStatus.COMPLETE,
    icon: 'my-check'
  }
]


export const OutcomeStatusList: { label: string, color: string, status: number }[] = [
  {
    label: '未交付',
    color: 'gray',
    status: 0
  },
  {
    label: '已上传',
    color: 'cyan',
    status: 5
  },
  {
    label: '申请审核中',
    color: 'orange',
    status: 10
  },
  {
    label: '审核中',
    color: 'arcoblue',
    status: 20
  },
  {
    label: '审核未通过',
    color: 'red',
    status: 30
  },
  {
    label: '已完成交付',
    color: 'green',
    status: 100
  }
]

// 字体图标库
export enum IconFontUrl {
  URL = '//at.alicdn.com/t/c/font_4466254_6lqohmgf9l6.js'
}

// minio
export enum MinioUrl {
  URL = 'https://pmr.surkw.com:19000/', // minio 地址
  CustomMeta = 'custom-meta' // 自定义图元路径
}

