export const Columns = [
  {
    key: "puOrgName",
    title: "采购组织",
    inputType: "PopoverSelect",
    referName: "ORG_PARAM",
    dataMapping: {
      puOrg: "code",
      puOrgName: "name",
    },
    require: true,
  },
  { key: "code", title: "合同编码", inputType: "Input" },
  {
    key: "lastPuMoney",
    title: "上年度采购额",
    inputType: "Input",
    require: true,
  },
  {
    key: "buyerName",
    title: "采购员",
    inputType: "PopoverSelect",
    referName: "CONTACTS_PARAM",
    dataMapping: {
      buyer: "code",
      buyerName: "name",
      puDept: "deptId",
      puDeptName: "deptName",
    },
    require: true,
  },
  {
    key: "supplierName",
    title: "供应商",
    inputType: "PopoverSelect",
    referName: "SUPPLIER_PARAM",
    dataMapping: {
      supplier: "code",
      supplierName: "name",
    },
    require: true,
  },
  {
    key: "contractType",
    title: "合同类型",
    inputType: "Select",
    require: true,
    referName: "puarchase_contract_contract_type",
  },
  {
    key: "puMoneyYear",
    title: "本年度采购额",
    inputType: "InputNumber",
    require: true,
  },
  {
    key: "puDeptName",
    title: "采购部门",
    inputType: "PopoverSelect",
    referName: "DEPT_PARAM",
    dataMapping: {
      puDept: "code",
      puDeptName: "name",
    },
    require: true,
  },
  {
    key: "supplierTier",
    title: "供应商层级",
    inputType: "Select",
    require: true,
    referName: "puarchase_contract_supplier_tier",
  },
  { key: "contractName", title: "合同名称", inputType: "Input", require: true },
  {
    key: "grossRateAverage",
    title: "平均毛利率",
    inputType: "Input",
    require: true,
  },
  {
    key: "approveFlow",
    title: "审批流程",
    inputType: "Select",
    require: true,
    referName: "puarchase_contract_approve_flow",
  },
  {
    key: "consumableClass",
    title: "耗材类别",
    inputType: "Select",
    require: true,
    referName: "puarchase_contract_consumable_class",
  },
  {
    key: "effectiveDate",
    title: "合同生效日期",
    inputType: "DatePicker",
    require: true,
  },
  {
    key: "brandGrossRate",
    title: "同类品牌及毛利率",
    inputType: "Input",
    require: true,
  },
  {
    key: "contractFormat",
    title: "合同格式",
    inputType: "Select",
    require: true,
    referName: "puarchase_contract_contract_format",
  },
  {
    key: "productName",
    title: "产品类别&名称",
    inputType: "Input",
    require: true,
  },
  {
    key: "endDate",
    title: "合同终止日期",
    inputType: "DatePicker",
    require: true,
  },
  {
    key: "invoiceTax",
    title: "发票税率",
    inputType: "PopoverSelect",
    referName: "TAX_RATE_PARAM",
    dataMapping: {
      invoiceTax: "ntaxrate",
    },
    require: true,
  },
  {
    key: "emergencyDegree",
    title: "紧急程度",
    inputType: "Select",
    require: true,
    referName: "puarchase_contract_emergency_degree",
  },
  { key: "project", title: "项目医院", inputType: "Input", require: true },
  {
    key: "signDate",
    title: "合同签订日期",
    inputType: "DatePicker",
    require: true,
  },
  {
    key: "deliveryType",
    title: "交货方式",
    inputType: "Select",
    referName: "puarchase_contract_delivery_type",
  },
  {
    key: "source",
    title: "合同来源",
    inputType: "Input",
    value: "自制",
    disabled: true,
  },
  {
    key: "contractPartycName",
    title: "合同丙方",
    inputType: "PopoverSelect",
    referName: "SUPPLIER_PARAM",
    dataMapping: {
      contractPartyc: "code",
      contractPartycName: "name",
    },
  },
  {
    key: "guaranteePeriodEnd",
    title: "质保期限",
    inputType: "Input",
    require: true,
  },
  {
    key: "freightMethods",
    title: "运费承担方式",
    inputType: "Select",
    referName: "puarchase_contract_freight_methods",
  },
  {
    key: "signDate",
    title: "合同创建时间",
    inputType: "DatePicker",
    disabled: true,
  },
  {
    key: "isTarget",
    title: "是否有指标",
    inputType: "Select",
    require: true,
    referName: "sys_yes_no",
  },
  {
    key: "contractTarget",
    title: "合同指标",
    inputType: "Input",
    require: true,
    placeholder: '当【是否有指标】="有"时，必填',
  },
  {
    key: "exemptionPostageCondtion",
    title: "包邮条件",
    inputType: "Input",
    placeholder:
      "当运费承担方式为供应商有条件承担时，该字段必填，填写要求，写明什么条件下供应商承担全部，什么条件下我方承担，什么条件下分别承担",
    span: 12,
  },
  {
    key: "isRebate",
    title: "是否有返利",
    inputType: "Select",
    require: true,
    referName: "sys_yes_no",
  },
  {
    key: "rebatePolicy",
    title: "返利政策",
    inputType: "Input",
    placeholder: '当【是否有返利】="有"时，必填',
    span: 18,
  },
  { key: "externalContract", title: "外部合同号", inputType: "Input" },
  {
    key: "rollbackPolicy",
    title: "退换货政策",
    inputType: "Input",
    require: true,
  },
  { key: "enquiryCode", title: "询价单号", inputType: "Input" },
  {
    key: "contractContent",
    title: "合同主要内容",
    inputType: "Textarea",
    require: true,
    span: 24,
  },
  { key: "refusalReasons", title: "拒绝理由", inputType: "Input", span: 24 },

  {
    key: "externalFile",
    title: "对外附件",
    inputType: "Upload",
    span: 24,
    fileType: ["pdf"],
  },
  {
    key: "puFile",
    title: "采购商盖章合同附件",
    inputType: "Upload",
    span: 24,
    fileType: ["pdf"],
  },
  {
    key: "supplierFile",
    title: "供应商盖章合同附件",
    inputType: "Upload",
    span: 24,
    fileType: ["pdf"],
  },
  { key: "projectCode", title: "项目编号", inputType: "Input" },
  { key: "projectName", title: "项目名称", inputType: "Input" },
  { key: "area", title: "区域", inputType: "Input" },
  { key: "consigneePhone", title: "收货人联系方式", inputType: "Input" },
  {
    key: "paymentAgreement",
    title: "付款协议",
    inputType: "PopoverSelect",
    referName: "PAYAGREEMENT_PARAM",
    dataMapping: {
      paymentAgreement: "code",
      paymentAgreementName: "name",
    },
    require: true,
  },
  {
    key: "taxPrice",
    title: "价税合计",
    inputType: "InputNumber",
  },
  {
    key: "currencyName",
    title: "币种",
    inputType: "PopoverSelect",
    referName: "CURRENCY_PARAM",
    dataMapping: {
      currency: "code",
      currencyName: "name",
    },
    require: true,
  },
  { key: "guaranteePeriod", title: "质保期", inputType: "Input" },
];

export const SearchColumns = [
  { key: "contractName", title: "合同名称", search: true, inputType: "Input" },
];

export const TabColumns = [
  {
    title: "物料基本信息",
    key: "contractItemList",
    tableColumns: [
      {
        title: "物料名称",
        key: "materialName",
        inputType: "PopoverSelect",
        width: 200,
        referName: "MATERIAL_PARAM",
        dataMapping: {
          material: "code",
          materialName: "name",
          puUnit: "unitIdName",
          registration: "registrationNo",
          specification: "specification",
          manufacturer: "manufacturerIdName",
        },
      },
      { title: "物料编码", key: "material", width: 200 },
      {
        title: "规格",
        key: "specification",
        width: 200,
      },
      // {
      //   title: "品牌",
      //   key: "brand",
      //   inputType: "PopoverSelect",
      //   width: 200,
      //   referName: "MATERIAL_PARAM",
      //   dataMapping: {
      //     material: "code",
      //     materialName: "name",
      //   },
      // },
      {
        title: "生产厂家",
        key: "manufacturer",
        inputType: "Input",
        width: 200,
      },
      {
        title: "采购单位",
        key: "puUnit",
        inputType: "PopoverSelect",
        width: 200,
        referName: "UNIT_PARAM",
        dataMapping: {
          puUnit: "name",
        },
      },
      {
        title: "税率%",
        key: "tax",
        inputType: "PopoverSelect",
        referName: "TAX_RATE_PARAM",
        dataMapping: {
          tax: "ntaxrate",
        },
        width: 200,
      },
      {
        title: "采购数量",
        key: "qty",
        inputType: "InputNumber",
        width: 200,
      },
      {
        title: "含税单价",
        key: "taxPrice",
        inputType: "InputNumber",
        width: 200,
      },
      {
        title: "含税金额合计",
        key: "taxMoney",
        inputType: "ComputedInput",
        width: 200,
        computed: (prop) => {
          const { qty, taxPrice } = prop;
          const taxMoney = (qty * taxPrice).toFixed(8);
          return taxMoney === "NaN" ? null : taxMoney;
        },
      },
      {
        title: "无税单价",
        key: "taxFreePrice",
        inputType: "ComputedInput",
        width: 200,
        computed: (prop) => {
          const { tax, taxPrice } = prop;
          const newTax = Number(tax) / 100;
          const taxFreePrice = (taxPrice / (1 + newTax)).toFixed(8);
          return taxFreePrice === "NaN" ? null : taxFreePrice;
        },
      },
      {
        title: "无税金额合计",
        key: "taxFreeMoney",
        inputType: "ComputedInput",
        width: 200,
        computed: (prop) => {
          const { qty, taxFreePrice } = prop;
          const taxFreeMoney = (qty * taxFreePrice).toFixed(8);
          return taxFreeMoney === "NaN" ? null : taxFreeMoney;
        },
      },
      {
        title: "注册证号及备案凭证号",
        key: "registration",
        inputType: "Input",
        width: 200,
      },
      {
        title: "收货客户",
        key: "customerName",
        inputType: "PopoverSelect",
        width: 200,
        referName: "CUSTOMER_PARAM",
        dataMapping: {
          customer: "code",
          customerName: "name",
        },
      },
      { title: "备注", key: "remark", inputType: "Input", width: 200 },
    ],
  },
  {
    title: "合同条款",
    key: "contractClauseList",
    tableColumns: [
      { title: "条款编码", key: "code", inputType: "Input" },
      { title: "条款名称", key: "name", inputType: "Input" },
      { title: "条款内容", key: "content", inputType: "Input" },
      { title: "变量序号", key: "variableRowno" },
      { title: "变量内容", key: "variableContent", inputType: "Input" },
      { title: "备注", key: "remark", inputType: "Input" },
    ],
  },
  {
    title: "合同费用",
    key: "contractExpenseList",
    tableColumns: [
      { title: "费用编码", key: "code", inputType: "Input" },
      { title: "费用名称", key: "name", inputType: "Input" },
      {
        title: "费用金额",
        key: "money",
        inputType: "InputNumber",
        width: 200,
      },
      { title: "备注", key: "remark", inputType: "Input" },
    ],
  },
  {
    title: "付款协议信息",
    key: "contractAgreementList",
    tableColumns: [
      {
        title: "付款阶段",
        key: "satge",
        inputType: "InputNumber",
        width: 200,
      },
      {
        title: "付款起点",
        key: "origin",
        width: 200,
        inputType: "Select",
        referName: "puarchase_contract_origin",
      },
      { title: "账期天数", key: "paymetDays", inputType: "Input", width: 200 },
      { title: "付款比例%", key: "ratio", inputType: "Input", width: 200 },
      { title: "付款金额", key: "money", inputType: "Input", width: 200 },
      {
        title: "是否预付款",
        key: "isAdvance",
        width: 200,
        inputType: "Select",
        referName: "sys_yes_no",
      },
      {
        title: "是否质保金",
        key: "isQuality",
        width: 200,
        inputType: "Select",
        referName: "sys_yes_no",
      },
      {
        title: "结算方式",
        key: "paymentMeans",
        inputType: "PopoverSelect",
        width: 200,
        referName: "BALATYPE_PARAM",
        dataMapping: {
          paymentMeans: "name",
        },
      },
      { title: "备注", key: "remark", inputType: "Input", width: 200 },
      {
        title: "需进度确认",
        key: "schedule",
        inputType: "Select",
        referName: "sys_yes_no",
        width: 200,
      },
    ],
  },
  {
    title: "合同执行组织范围",
    key: "contractApplyOrgList",
    tableColumns: [
      {
        title: "组织名称",
        key: "orgName",
        inputType: "PopoverSelect",
        referName: "ORG_PARAM",
        dataMapping: {
          org: "code",
          orgName: "name",
        },
      },
      { title: "组织编码", key: "org" },
    ],
  },
];
