import { reactive } from 'vue';

export default function () {
  // 比较(操作)符
  const optTypes = reactive([
    { label: '等于', value: 'eq', code: '==' },
    { label: '不等于', value: 'ne', code: '!=' },
    { label: '大于', value: 'gt', code: '>' },
    { label: '大于等于', value: 'ge', code: '>=' },
    { label: '小于', value: 'lt', code: '<' },
    { label: '小于等于', value: 'le', code: '<=' },
    { label: '包含', value: 'contain', code: 'contain' }
  ]);

  // 运算符
  const operatorTypes = reactive([
    { label: '加', code: '+' },
    { label: '减', code: '-' },
    { label: '乘', code: '*' },
    { label: '除', code: '/' }
  ]);

  // 业务列表
  const businessList = reactive([
    { label: '选择机构', code: 'dept' },
    { label: '选择人员', code: 'user' },
    { label: '选择角色', code: 'role' },
    { label: '选择职位', code: 'position' }
  ]);

  // 审批类型列表
  const approveList = reactive([
    { name: '指定人', value: 10, id: '10' },
    { name: '角色', value: 20, id: '20' },
    { name: '岗位', value: 30, id: '30' },
    { name: '指定审批组类型', value: 40, id: '40' },
    { name: '表单内成员', value: 50, id: '50' },
    { name: '表单内部门', value: 60, id: '60' }
  ]);

  // 审批方式
  const approvalModes = reactive([
    {
      name: '单人审批(只能选一个人)',
      value: 10
    },
    {
      name: '多人会签(所有人都通过才到下一个环节)',
      value: 20
    },
    {
      name: '多人会签(通过只需一人,拒绝需全员)',
      value: 21
    },
    {
      name: '多人或签(一人通过或拒绝)',
      value: 30
    },
    {
      name: '依次审批(一人通过再到下一个人处理)',
      value: 40
    }
  ]);

  // 相邻审批节点为同一人时
  const adjacentApprovals = reactive([
    {
      name: '自动跳过',
      value: 10,
      popovers: [
        {
          title: '什么是自动跳过？',
          content: '如果相邻审批节点为同一人时，只需要审批一次即可'
        }
      ]
    },
    {
      name: '不自动跳过',
      value: 20,
      popovers: [
        {
          title: '不自动跳过？',
          content: '如果相邻审批节点为同一人时，每个节点都需要手动审批，需要审批多次'
        }
      ]
    }
  ]);

  // 审批人与发起人为同一人时
  const sameApprovals = reactive([
    {
      name: '不自动跳过',
      value: 5,
      popovers: []
    },
    {
      name: '自动跳过',
      value: 10,
      popovers: [
        {
          title: '什么是自动跳过？',
          content: '如果审批人与发起人为同一人时，直接跳过，无需审批'
        }
      ]
    },
    {
      name: '转交给发起人所属部门的负责人',
      value: 20,
      popovers: [
      ]
    }
  ]);

  // 审批人为空时
  const approvalWithNulls = reactive([
    {
      name: '自动跳过',
      value: 10,
      popovers: [
        {
          title: '什么是自动跳过？',
          content: '当该审批节点没有审批人的时候，审批单将自动跳过'
        }
      ]
    },
    {
      name: '指定人员审批',
      value: 20
    },
    {
      name: '找不到审批人时，由流程发起人代替审批',
      value: 30,
      popovers: [
        {
          title: '由流程发起人代替审批？',
          content: '流程发起人为当前流程实例的发起者'
        }
      ]
    },
    {
      name: '找不到审批人时，由发起人的部门负责人代审批',
      value: 40,
      popovers: [
      ]
    },
    {
      name: '转交给审批管理员',
      value: 50,
      popovers: [
        {
          title: '什么是转交给审批管理员？',
          content: '若审批人为空，则自动转交给该审批流程的管理员'
        },
        {
          content: '提示：可在“流程配置-流程管理员”中，查看和编辑该审批流程的管理员'
        }
      ]
    },
    {
      name: '给出异常提示，流程暂停运行',
      value: 60,
      popovers: [
        {
          title: '什么是给出异常提示，流程暂停运行？',
          content: '流程无法找到流程审批人，流程日志自动记录这条错误日志'
        }
      ]
    }
  ]);

  return {
    optTypes,
    operatorTypes,
    businessList,
    approveList,
    approvalModes,
    adjacentApprovals,
    sameApprovals,
    approvalWithNulls
  };
}
