/**
 * index:序号
 * txt:正常数据
 * img:图片
 * txtChange:判断显示不同字段
 * text:文字比较多的情况、获取使用其他标签（没有的需要自己配置）
 */
// export const A1tableCFu = (type: "video" | "poster") => {
//   return [
//     ["index", "序号"],
//     ["txt", "标题", "name"]
//     ["img", type === "video" ? "视频封面" : "海报", "thumb"],
//     ["txtChange", "自动播放", "display", { 0: "否", 1: "是" }],
//     ["text", "创建日期",'description', 50,A],
//   ];

import { selectObj } from './dataChange'
import dayjs from 'dayjs'

// 列表页面（大部分相同和复用的）
export const baseTableC = (val: string) => {
  return [
    ['dateRes', `${val}日期`, 'date'],
    ['txt', '申请编号', 'num'],
    ['txt', '发起部门', 'deptName'],
    ['txt', '发起人', 'creatorName'],
    ['txt', '发起日期', 'createTime'],
    ['select', '申请状态', 'status', selectObj['订单审批状态']]
  ]
}

// 藏品征集-订单页面的线索清单
export const SonClueListTableC = [
  ['img', '封面', 'thumb'],
  ['txt', '线索名称', 'name'],
  ['txt', '线索编号', 'num'],
  ['text', '线索简介', 'intro', 50],
  ['txt', '联系方式', 'phone'],
  ['txtCTag', '初步藏品标签', 'tagDictId', '藏品'],
  ['txtC', '初步藏品年代', 'ageDictId'],
  ['select', '完残程度', 'tornLevel', selectObj['完残程度']],
  ['text', '备注', 'remark', 50]
]

// 藏品登记-订单页面的藏品清单 、-----选择藏品-藏品
export const goodsSonTableC = (loc?: boolean) => {
  const arr: any = [
    ['txt', '藏品登记号', 'num'],
    ['img', '封面', 'thumb'],
    ['txtCTag', '藏品标签', 'tagDictId', '藏品'],
    ['txtCTag', '文创标签', 'artDictId', '文创'],
    ['txt', '藏品名称', 'name'],
    ['select', '级别', 'level', selectObj['藏品级别']],
    ['txtC', '年代', 'ageDictId'],
    ['txtC', '质地', 'textureDictId'],
    ['select', '完残程度', 'tornLevel', selectObj['完残程度']],
    ['ping', '数量', 'pcs', 'pcsUnitDictId']
  ]
  if (loc) arr.push(['connectTxt', '库房位置', 'storageName', 'siteLoc'])
  return arr
}

// -----选择藏品-线索
export const goodsSelectCuleC = [
  ['txt', '线索编号', 'num'],
  ['img', '封面', 'thumb'],
  ['txt', '线索名称', 'name'],
  ['txtCTag', '初步藏品标签', 'tagDictId', '藏品'],
  ['txtC', '初定年代', 'ageDictId'],
  ['select', '完残程度', 'tornLevel', selectObj['完残程度']]
]

export const I3tableC = [
  ['txt', '编号类型', 'name'],
  ['txt', '前缀', 'prefix'],
  ['txt', '日期方式', 'dateType'],
  ['txt', '起始流水编号', 'length']
]
export const I4tableC = [
  // ['txt', '流程类型', 'typeKey'],
  ['txt', '流程名称', 'name'],
  ['text', '流程说明', 'remark', 50],
  ['txtChange', '状态', 'enabled', { 0: '禁用', 1: '启用' }]
]

export const I4tableC2 = [
  ['index', '序号'],
  ['txt', '节点名称', 'name'],
  ['txt', '排序值', 'sort'],
  ['txtChange', '办理人', 'type', { user: '指定用户', role: '按角色' }]
]

export const I6tableC = [
  ['txt', '角色名称', 'roleName'],
  ['text', '角色说明', 'roleDesc', 50],
  ['txt', '排序值', 'sort']
]

export const I7tableC = [
  ['txt', '登录账号', 'userName'],
  ['txt', '所属部门', 'deptNameRes'],
  ['txt', '角色', 'roleName'],
  ['txt', '真实姓名', 'realName'],
  ['txt', '创建日期', 'createTime']
]

export const I8tableC = [
  ['index', '序号'],
  ['txt', '账号', 'userName'],
  ['txt', '操作日期', 'createTime'],
  ['txt', 'IP记录', 'ip'],
  ['txt', '操作模块', 'type'],
  ['txt', '操作事件', 'description']
]

// 故事管理
export const storyTableC = [
  ['txt', '故事标题', 'name'],
  ['txt', '关联藏品', 'goodName'],
  ['txt', '藏品标签', 'tagName', '藏品'],
  ['txt', '录入人', 'creatorName'],
  ['txt', '录入日期', 'createTime']
]
// 故事管理里面的添加藏品
export const storyAndGoodsTableC = [
  ['txt', '藏品登记号', 'num'],
  ['img', '封面', 'thumb'],
  ['txt', '藏品标签', 'tagName', '藏品'],
  ['txt', '藏品名称', 'name']
]

// 库房设置
export const storageSetTableC = [
  ['txt', '库房名称', 'storageName'],
  [
    'custom',
    '仓位编号（排-列-层-格）',
    (item: any) =>
      [item.layer1, item.layer2, item.layer3, item.layer4].filter(i => Boolean(i)).join('-')
  ]
]
export const warehouseSetTableC = [
  ['txt', '库房名称', 'name'],
  ['txt', '库房负责人', 'managerUser'],
  ['txt', '库房说明', 'description']
]

//藏品附件
export const goodsFileTableC = [
  ['select', '附件类型', 'type', selectObj['附件类型']],
  ['txt', '附件名称', 'fileName'],
  ['txt', '藏品登记号', 'joinNum'],
  ['txt', '藏品名称', 'joinName'],
  ['dateRes', '上传日期', 'createTime'],
  ['txt', '上传人', 'creatorName'],
  ['sizeNum', '文件大小(mb)', 'fileSize', 1024]
]

// 藏品入库
export const inStorageTableC = [
  ['txt', '入库日期', 'createTime'],
  ['txt', '入库库房', 'storageName'],
  ['txt', '申请编号', 'num'],
  ['txt', '发起部门', 'deptName'],
  ['txt', '发起人', 'creatorName'],
  ['txt', '发起日期', 'date'],
  ['select', '申请状态', 'status', selectObj['藏品入库申请状态']]
]

// 藏品出库
export const outStorageTableC = [
  ['txt', '出库日期', 'createTime'],
  ['txt', '出库库房', 'storageName'],
  ['txt', '申请编号', 'num'],
  ['txt', '发起部门', 'deptName'],
  ['txt', '发起人', 'creatorName'],
  ['txt', '发起日期', 'date'],
  ['select', '申请状态', 'status', selectObj['藏品入库申请状态']]
]

// 藏品详情----藏品附件
export const GI3tableC = [
  ['select', '附件类型', 'type', selectObj['附件类型']],
  ['txt', '附件名称', 'fileName'],
  ['dateRes', '上传日期', 'createTime'],
  ['txt', '上传人', 'creatorName'],
  ['sizeNum', '文件大小(mb)', 'fileSize', 1024]
]
// 藏品详情----藏品故事
export const GI4tableC = [
  ['txt', '故事名称', 'name'],
  ['text', '备注', 'remark', 50],
  ['txt', '编辑人', 'creatorName']
]

// 藏品详情----藏品日志 / 工作台
export const GI5tableC = (flag?: boolean) => {
  let arr = [
    ['dateRes', '业务发生日期', 'date'],
    ['txt', '申请编号', 'num'],
    ['txt', '发起部门', 'deptName'],
    ['txt', '发起人', 'creatorName'],
    ['txt', '发起日期', 'date'],
    ['select', '申请状态', 'status', selectObj['藏品入库申请状态']]
  ]
  if (flag) arr.shift()
  return arr
}

// 流程中心
export const flowCenterTableC = [
  ['txt', '申请编号', 'num'],
  ['txt', '发起部门', 'deptName'],
  ['txt', '发起人', 'creatorName'],
  ['txt', '发起日期', 'date'],
  ['select', '申请状态', 'status', selectObj['藏品入库申请状态']]
]

// 凭证中心
export const voucherCenterTableC = [
  ['txt', '凭证名称', 'fileName'],
  ['txt', '归档日期', 'createTime'],
  ['txt', '归档人', 'creatorName'],
  ['txt', '业务编号', 'joinNum']
]

// 藏品盘点
export const checkTableC = [
  ['txt', '盘点日期', 'createTime'],
  ['txt', '盘点库房', 'storageName'],
  ['txt', '申请编号', 'num'],
  ['txt', '发起部门', 'deptName'],
  ['txt', '发起人', 'creatorName'],
  ['txt', '发起日期', 'date'],
  ['select', '申请状态', 'status', selectObj['藏品入库申请状态']]
]

// 导入藏品数据/图片
export const importDataTableC = [
  ['txt', '文件名称', 'fileName'],
  ['txt', '导入数据', 'pcsTotal'],
  ['txt', '成功数据', 'pcsSuccess'],
  ['txt', '失败数据', 'pcsError'],
  ['dateRes', '导入日期', 'createTime'],
  ['txt', '导入用户', 'creatorName']
]

// 导入藏品数据校验
export const importDataTableCheckC = [
  ['txt', '藏品登记号', 'num'],
  ['txt', '藏品名称', 'name'],
  ['txtChange', '校验结果', 'importIsTrue', { 0: '失败', 1: '成功' }]
]
// 导入藏品图片校验
export const importZipDataTableCheckC = [
  ['txt', '图片名称', 'fileName'],
  ['txtChange', '校验结果', 'isTrue', { 0: '失败', 1: '成功' }]
]

// 资源使用
export const resourceTableC = [
  ['txt', '使用日期', 'createTime'],
  ['txt', '申请编号', 'num'],
  ['txt', '发起部门', 'deptName'],
  ['txt', '发起人', 'creatorName'],
  ['txt', '发起日期', 'date'],
  ['select', '申请状态', 'status', selectObj['藏品入库申请状态']]
]

// 藏品移库
export const moveStorageTableC = [
  ['txt', '移库日期', 'createTime'],
  ['txt', '移库库房', 'extraInfo'],
  ['txt', '申请编号', 'num'],
  ['txt', '发起部门', 'deptName'],
  ['txt', '发起人', 'creatorName'],
  ['txt', '发起日期', 'date'],
  ['select', '申请状态', 'status', selectObj['藏品入库申请状态']]
]

// 人员出入库
export const staffTableC = [
  ['txt', '出入日期', 'createTime'],
  ['txt', '相关库房', 'storageName'],
  ['txt', '申请编号', 'num'],
  ['txt', '发起部门', 'deptName'],
  ['txt', '发起人', 'creatorName'],
  ['txt', '发起日期', 'date'],
  ['select', '申请状态', 'status', selectObj['藏品入库申请状态']]
]

// 借展详情-展品清单
export const showGoodTableC = [
  ['txt', '藏品登记号', 'goodNum'],
  ['img', '封面', 'goodThumb'],
  ['txtCTag', '藏品标签', 'goodTag', '藏品'],
  ['txt', '藏品名称', 'goodName'],
  ['txt', '展区', 'region'],
  ['txt', '具体位置', 'address'],
  ['select', '展览状态', 'status', selectObj['展览状态']]
]

// 展品管理
export const loanTableC = [
  ['txt', '展览名称', 'name'],
  ['txt', '展览类型', 'type'],
  [
    'custom',
    '起止日期',
    (item: any) =>
      !item.dateOpen && !item.dateEnd
        ? '长期'
        : `${dayjs(item.dateOpen).format('YYYY年MM月DD日')} - ${dayjs(item.dateEnd).format('YYYY年MM月DD日')}`
  ],
  ['txt', '相关展区', 'region'],
  ['txt', '相关展品', 'creatorName']
]
