export default function useColumns() {

  const TableColumns = [
    {
      item: { key: "code", title: "单据号", },
      attr: {},
    },
    {
      item: { key: "status", title: "单据状态", width: 80 },
      attr: { is: "el-dict-tag", dictName: "sys_status", },
    },
    {
      item: { key: "billType", title: "订单类型", },
      attr: { is: "el-dict-tag", dictName: "sys_allot_billtype", },
    },
    {
      item: { key: "allotType", title: "调拨方式", width: 100 },
      attr: { is: "el-dict-tag", dictName: "sys_to_type", },
    },
    {
      item: { key: "deliveryInventoryOrgName", title: "调出库存组织", },
      attr: {},
    },
    {
      item: { key: "deliveryWarehouseName", title: "调出仓库", },
      attr: {},
    },
    {
      item: { key: "storageInventoryOrgName", title: "调拨入库组织", },
      attr: {},
    },
    {
      item: { key: "storageWarehouseName", title: "调入仓库", },
      attr: {},
    },
    {
      item: { key: "customerName", title: "客户", },
      attr: {},
    },
    {
      item: { key: "approveUser", title: "当前审批人", width: 100 },
      attr: {},
    },
    {
      item: { key: "createByName", title: "制单人", width: 100 },
      attr: {},
    },
    {
      item: { key: "createTime", title: "制单日期", width: 100 },
      attr: {},
    },
  ].map(({ item, attr }) => ({
    attr,
    item: {
      ...item,
      width: item.width || 160,
      sortabled: true,
      fixedabled: true,
      filterabled: true,
      hiddenabled: true,
    },
  }));

  const TabColumns = [
    // 物料信息
    {
      item: {
        key: "materialInfo",
        title: "物料信息"
      },
      attr: { value: [], },
      TableColumns: [
        {
          item: { key: "rowno", title: "行号", width: 80 },
          attr: {},
        },
        {
          item: { key: "materialCode", title: "物料编码", },
          attr: {},
        },
        {
          item: { key: "materialName", title: "物料名称", },
          attr: {},
        },
        {
          item: { key: "qty", title: "数量", width: 100 },
          attr: {},
        },
        {
          item: { key: "unitName", title: "单位", width: 60 },
          attr: {},
        },
        {
          item: { key: "specification", title: "规格", },
          attr: {},
        },
        {
          item: { key: "model", title: "型号", width: 100 },
          attr: {},
        },
        {
          item: { key: "manufacturer", title: "生产厂家/代理人", },
          attr: {},
        },
        {
          item: { key: "originPlace", title: "产地", },
          attr: {},
        },
        {
          item: { key: "storageDeptName", title: "调入部门", },
          attr: {},
        },
        {
          item: { key: "producBatch", title: "产品批号", },
          attr: {},
        },
        {
          item: { key: "manufactureDate", title: "生产日期", },
          attr: {},
        },
        {
          item: { key: "deliveryAllocationName", title: "调出货位", },
          attr: {},
        },
        {
          item: { key: "storageAllocationName", title: "调入货位", },
          attr: {},
        },
      ].map(({ item, attr }) => ({
        attr,
        item: { ...item, width: item.width || 150 },
      }))
    },
    // 收发货信息
    {
      item: {
        key: "receiveInfo",
        title: "收发货信息"
      },
      attr: { value: [], },
      TableColumns: [
        {
          item: { key: "rowno", title: "行号", },
          attr: {},
        },
        {
          item: { key: "deliveryCode", title: "调拨出库单号", },
          attr: {},
        },
        {
          item: { key: "storageCode", title: "调拨入库单号", },
          attr: {},
        },
        {
          item: { key: "manufacturer", title: "生产厂家/代理人", },
          attr: {},
        },
        {
          item: { key: "originPlace", title: "产地", },
          attr: {},
        },
        {
          item: { key: "classify", title: "类别", },
          attr: {},
        },
        {
          item: { key: "deliveryWarehouseName", title: "调出仓库", },
          attr: {},
        },
        {
          item: { key: "storageWarehouseName", title: "调入仓库", },
          attr: {},
        },
        {
          item: { key: "businessPersonalName", title: "调入业务员", },
          attr: {},
        },
        {
          item: { key: "productBatch", title: "产品批号", },
          attr: {},
        },
        {
          item: { key: "manufactureDate", title: "生产日期", },
          attr: {},
        },
        {
          item: { key: "periodEndDate", title: "有效期至/失效日期", },
          attr: {},
        },
        {
          item: { key: "ratifyCode", title: "批准文号", },
          attr: {},
        },
        {
          item: { key: "registration", title: "注册证号", },
          attr: {},
        },
        {
          item: { key: "productCode", title: "商品名", },
          attr: {},
        },
        {
          item: { key: "commonCode", title: "通用名", },
          attr: {},
        },
        {
          item: { key: "drug", title: "剂型", },
          attr: {},
        },
        {
          item: { key: "customerName", title: "收货客户", },
          attr: {},
        },
        {
          item: { key: "addressaddress", title: "收货地址", },
          attr: {},
        },
        {
          item: { key: "area", title: "收货地区", },
          attr: {},
        },
        {
          item: { key: "place", title: "收货地点", },
          attr: {},
        },
        {
          item: { key: "deliveryDate", title: "计划发货日期", },
          attr: {},
        },
        {
          item: { key: "strageDate", title: "计划到货日期", },
          attr: {},
        },
        {
          item: { key: "transportation", title: "运输方式", },
          attr: {},
        },
        {
          item: { key: "remark", title: "备注", },
          attr: {},
        },
        {
          item: { key: "customerLogistic", title: "客户物料编码", },
          attr: {},
        },
        {
          item: { key: "customerLogisticName", title: "客户物料名称", },
          attr: {},
        },
      ].map(({ item, attr }) => ({
        attr,
        item: { ...item, width: item.width || 150 },
      }))
    },
    // 费用价格
    {
      item: {
        key: "priceList",
        title: "价格费用"
      },
      attr: { value: [], },
      TableColumns: [
        {
          item: { key: "rowno", title: "行号", },
          attr: {},
        },
        {
          item: { key: "deliveryCode", title: "调拨出库单号", },
          attr: {},
        },
        {
          item: { key: "storageCode", title: "调拨入库单号", },
          attr: {},
        },
        {
          item: { key: "manufacturer", title: "生产厂家/代理人", },
          attr: {},
        },
        {
          item: { key: "originPlace", title: "产地", },
          attr: {},
        },
        {
          item: { key: "classify", title: "类别", },
          attr: {},
        },
        {
          item: { key: "productBatch", title: "产品批号", },
          attr: {},
        },
        {
          item: { key: "manufactureDate", title: "生产日期", },
          attr: {},
        },
        {
          item: { key: "periodEndDate", title: "有效期至/失效日期", },
          attr: {},
        },
        {
          item: { key: "ratifyCode", title: "批准文号", },
          attr: {},
        },
        {
          item: { key: "registration", title: "注册证号", },
          attr: {},
        },
        {
          item: { key: "productCode", title: "商品名", },
          attr: {},
        },
        {
          item: { key: "commonCode", title: "通用名", },
          attr: {},
        },
        {
          item: { key: "drug", title: "剂型", },
          attr: {},
        },
        {
          item: { key: "customerLogistic", title: "客户物料码", },
          attr: {},
        },
        {
          item: { key: "customerLogisticName", title: "客户物料名称", },
          attr: {},
        },
      ].map(({ item, attr }) => ({
        attr,
        item: { ...item, width: item.width || 150 },
      })),
    },
    // 执行结果
    {
      item: {
        key: "resultList",
        title: "执行结果"
      },
      attr: { value: [], },
      TableColumns: [
        {
          item: { key: "rowno", title: "行号", },
          attr: {},
        },
        {
          item: { key: "deliveryCode", title: "调拨出库单号", },
          attr: {},
        },
        {
          item: { key: "storageCode", title: "调拨入库单号", },
          attr: {},
        },
        {
          item: { key: "manufacturer", title: "生产厂家/代理人", },
          attr: {},
        },
        {
          item: { key: "originPlace", title: "产地", },
          attr: {},
        },
        {
          item: { key: "classify", title: "类别", },
          attr: {},
        },
        {
          item: { key: "productBatch", title: "产品批号", },
          attr: {},
        },
        {
          item: { key: "manufactureDate", title: "生产日期", },
          attr: {},
        },
        {
          item: { key: "periodEndDate", title: "有效期至/失效日期", },
          attr: {},
        },
        {
          item: { key: "ratifyCode", title: "批准文号", },
          attr: {},
        },
        {
          item: { key: "registration", title: "注册证号", },
          attr: {},
        },
        {
          item: { key: "productCode", title: "商品名", },
          attr: {},
        },
        {
          item: { key: "commonCode", title: "通用名", },
          attr: {},
        },
        {
          item: { key: "drug", title: "剂型", },
          attr: {},
        },
        {
          item: { key: "customerLogistic", title: "客户物料码", },
          attr: {},
        },
        {
          item: { key: "customerLogisticName", title: "客户物料名称", },
          attr: {},
        },

      ].map(({ item, attr }) => ({
        attr,
        item: { ...item, width: item.width || 150 },
      })),
    },
  ];

  const SearchColumns = [
    {
      item: { key: "deliveryInventoryOrgName", title: "调出库存组织" },
      attr: {
        is: "el-popover-select-v2",
        referName: "ORG_PARAM",
        valueKey: "name",
        dataMapping: {
          deliveryInventoryOrg: "id",
          deliveryInventoryOrgName: "name"
        },
      },
    },
    {
      item: { width: 100, key: "billDates", title: "单据日期", },
      attr: {
        clearable: true,
        is: "el-date-picker",
        type: "daterange",
        rangeSeparator: "-",
        startPlaceholder: "开始日期",
        endPlaceholder: "结束日期",
        valueFormat: "yyyy-MM-dd",
      },
    },
    {
      item: { key: "billType", title: "订单类型" },
      attr: {
        is: "el-select",
        dictName: "sys_allot_billtype",
        clearable: true,
      },
    },
    {
      item: { key: "storageInventoryOrgName", title: "调入库存组织" },
      attr: {
        is: "el-popover-select-v2",
        referName: "ORG_PARAM",
        valueKey: "name",
        dataMapping: {
          storageInventoryOrg: "id",
          storageInventoryOrgName: "name"
        },
      },
    },
    {
      item: { key: "code", title: "单据号" },
      attr: {
        is: "el-input",
        clearable: true,
      },
    },
    {
      item: { key: "createByName", title: "制单人" },
      attr: {
        is: "el-popover-select-v2",
        referName: "CONTACTS_PARAM",
        valueKey: "name",
        dataMapping: {
          createBy: "code",
          createByName: "name"
        },
      },
    },
  ];

  return { TableColumns, TabColumns, SearchColumns }
}
