export default function useColumns() {

  const FormColumns = [
    {
      item: { key: "code", title: "单据号", },
      attr: {
        is: "el-input",
        clearable: true,
        disabled: true,
      }
    },
    {
      item: { key: "billDate", title: "单据日期", required: true, },
      attr: {
        is: "el-date-picker",
        clearable: true,
        type: "date",
        valueFormat: "yyyy-MM-dd",
      }
    },
    {
      item: { key: "billType", title: "订单类型", required: true, },
      attr: {
        is: "el-select",
        dictName: "sys_allot_billtype",
        clearable: true,
      }
    },
    {
      item: { key: "allotType", title: "调拨方式",},
      attr: {
        is: "el-select",
        dictName: "sys_to_type",
        disabled: true,
      }
    },
    {
      item: { key: "status", title: "单据状态", },
      attr: {
        is: "el-select",
        dictName: "sys_status",
        disabled: true,
      }
    },
    {
      item: { key: "qty", title: "总数量", },
      attr: {
        is: "el-input-number",
        min: 0,
        disabled: true,
      }
    },
    {
      item: { key: "customerName", title: "客户", required: true, },
      attr: {
        is: "el-popover-select-v2",
        valueKey: "name",
        referName: "CUSTOMER_PARAM",
        dataMapping: {
          customer: 'id',
          customerName: 'name',
        },
      }
    },
    {
      item: { key: "remark", title: "备注", },
      attr: {
        is: "el-input",
        clearable: true,
      }
    },
    {
      item: { key: "deliveryInventoryOrgName", title: "调出库存组织", required: true, },
      attr: {
        is: "el-popover-select-v2",
        valueKey: "name",
        referName: "ORG_PARAM",
        dataMapping: {
          deliveryInventoryOrg: "id",
          deliveryInventoryOrgCode: "code",
        },
        clearable: true,
      }
    },
    {
      item: { key: "deliveryWarehouseName", title: "调出仓库", required: true, },
      attr: {
        is: "el-popover-select-v2",
        valueKey: "name",
        referName: "WAREHOUSE_PARAM",
        dataMapping: {
          deliveryWarehouse: "id",
          deliveryWarehouseCode: "code",
          dwCsFlag: "csFlag",
        },
        queryParams: (params) => ({
          pkOrg: params.deliveryInventoryOrg,
        }),
        clearable: true,
      }
    },
    {
      item: { key: "deliveryDeptName", title: "调出部门", required: true, },
      attr: {
        is: "el-popover-select-v2",
        valueKey: "name",
        referName: "DEPT_PARAM",
        dataMapping: {
          deliveryDept: "id",
          deliveryDeptCode: "code",
        },
        queryParams: (params) => ({
          // parame
          drpOrg: params.deliveryInventoryOrg,
        }),
        clearable: true,
      }
    },
    {
      item: { key: "businessPersonalName", title: "调出业务员", },
      attr: {
        is: "el-popover-select-v2",
        valueKey: "name",
        referName: "CONTACTS_PARAM",
        dataMapping: {
          businessPersonal: "code",
        },
        clearable: true,
      }
    },

    {
      item: { key: "storageInventoryOrgName", title: "调入库存组织", required: true, },
      attr: {
        is: "el-popover-select-v2",
        valueKey: "name",
        referName: "ORG_PARAM",
        dataMapping: {
          storageInventoryOrg: "id",
          storageInventoryOrgCode: "code",
        },
        clearable: true,
      }
    },
    {
      item: { key: "storageWarehouseName", title: "调入仓库", required: true, },
      attr: {
        is: "el-popover-select-v2",
        valueKey: "name",
        referName: "WAREHOUSE_PARAM",
        dataMapping: {
          storageWarehouse: "id",
          storageWarehouseCode: "code",
          swCsFlag: "csFlag",
        },
        queryParams: (params) => ({
          pkOrg: params.storageInventoryOrg,
        }),
        clearable: true,
      }
    },
    {
      item: { key: "deliveryCode", title: "调拨出库单号", },
      attr: {
        is: "el-input",
        disabled: true,
      }
    },
    {
      item: { key: "storageCode", title: "调拨入库单号", },
      attr: {
        is: "el-input",
        disabled: true,
      }
    },
    {
      item: { key: "ncCode", title: "NC单据号", },
      attr: {
        is: "el-input",
        disabled: true,
      }
    },
    {
      item: { key: "createByName", title: "制单人", },
      attr: {
        is: "el-input",
        disabled: true,
        clearable: true,
      }
    },
    {
      item: { key: "createTime", title: "制单日期", },
      attr: {
        is: "el-input",
        disabled: true,
        clearable: true,
      }
    },
    {
      item: { key: "createByName", title: "创建人", },
      attr: {
        is: "el-input",
        disabled: true,
        clearable: true,
      }
    },
    {
      item: { key: "createTime", title: "创建时间", },
      attr: {
        is: "el-input",
        disabled: true,
        clearable: true,
      }
    },
    {
      item: { key: "updateByName", title: "最后修改人", },
      attr: {
        is: "el-input",
        disabled: true,
        clearable: true,
      }
    },
    {
      item: { key: "updateTime", title: "最后修改时间", },
      attr: {
        is: "el-input",
        disabled: true,
        clearable: true,
      }
    },
    {
      item: { key: "sendNcRes", title: "同步NC结果", span: 12 },
      attr: {
        is: "el-input",
        type: "textarea",
        rows: 3,
        disabled: true,
        clearable: true,
      }
    },
  ].map(({ item, attr }) => ({
    attr,
    item: { ...item, span: item.span || 6 },
  }));

  const TabColumns = [
    // 物料信息
    {
      item: { key: "stAllotMaterialList", title: "物料信息" },
      attr: { value: [] },
      TableColumns: [
        {
          item: { key: "rowno", title: "行号", width: 80, },
          attr: {}
        },
        {
          item: { key: "materialCode", title: "物料编码", require: true, },
          attr: {
            is: "el-popover-select-v2",
            valueKey: "code",
            referName: "MATERIAL_PARAM",
            dataMapping: {
              material: "id",
              materialName: "name",
              specification: "specification",
              model: "model",
              unit: "unitId",
              unitName: "unitIdName",
              manufacturer: "manufacturerIdName",
              originPlace: "originPlace",
              originPlaceName: "originPlaceName",
            },
            clearable: true,
          }
        },
        {
          item: { key: "materialName", title: "物料名称", },
          attr: {}
        },
        {
          item: { key: "qty", title: "数量", require: true, },
          attr: {
            is: "el-input-number",
            min: 0,
            clearable: true,
          }
        },
        {
          item: { key: "unitName", title: "单位", },
          attr: {}
        },
        {
          item: { key: "specification", title: "规格", },
          attr: {}
        },
        {
          item: { key: "model", title: "型号", },
          attr: {}
        },
        {
          item: { key: "manufacturer", title: "生产厂家/代理人", },
          attr: {}
        },
        {
          item: { key: "originPlaceName", title: "产地", },
          attr: {}
        },
        {
          item: { key: "storageDeptName", title: "调入部门", require: true, },
          attr: {
            is: "el-popover-select-v2",
            valueKey: "name",
            referName: "DEPT_PARAM",
            dataMapping: {
              storageDept: "id",
              storageDeptCode: "code",
            },
            clearable: true,
          }
        },
        {
          item: { key: "producBatch", title: "产品批号", },
          attr: {
            is: "el-popover-select-v2",
            valueKey: "code",
            referName: "PATCHCODE_ZT",
            clearable: true,
            queryParams: (params) => ({
              code: params.materialCode,
            })
          }
        },
        {
          item: { key: "deliveryAllocationName", title: "调出货位", },
          attr: {
            is: "el-popover-select-v2",
            valueKey: "name",
            referName: "ALLOCATION_PARAM",
            dataMapping: {
              deliveryAllocation: "id",
              deliveryAllocationCode: "code",
            },
            clearable: true,
          }
        },
        {
          item: { key: "storageAllocationName", title: "调入货位", },
          attr: {
            is: "el-popover-select-v2",
            valueKey: "name",
            referName: "ALLOCATION_PARAM",
            dataMapping: {
              storageAllocation: "id",
              storageAllocationCode: "code",
            },
            clearable: true,
          }
        },
      ]
    },
    // 收发货信息
    {
      item: { key: "stAllotReceiveDeliverList", title: "收发货信息" },
      attr: { value: [] },
      TableColumns: [
        {
          item: { key: "rowno", title: "行号", width: 80, },
          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: {}
        },

      ]
    },
    // 价格费用
    {
      item: { key: "stAllotReceiveExecuteList", title: "价格费用" },
      attr: { value: [] },
      TableColumns: [
        {
          item: { key: "rowno", title: "行号", width: 80, },
          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: {}
        },

      ]
    },
    // 执行结果
    {
      item: { key: "stAllotReceiveExpenseList", title: "执行结果" },
      attr: { value: [] },
      TableColumns: [
        {
          item: { key: "rowno", title: "行号", width: 80, },
          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: {}
        },

      ]
    },

  ];

  return { FormColumns, TabColumns }
}