import CONFIG from "@/config"; import { iunitprice } from "@/utils/expression"; export default function useColumns() { const TableColumns = [ { item: { key: "puOrgName", title: "采购组织", required: true, width: 150 }, attr: { is: "el-popover-select-v2", valueKey: "name", referName: "ORG_PARAM", dataMapping: { puOrg: "code", puOrgName: "name", }, }, }, { item: { key: "code", title: "合同编码", width: 150 }, attr: { is: "el-input" }, }, { item: { key: "lastPuMoney", title: "年度采购额", width: 100 ,required: true,}, attr: { is: "el-input-number", }, }, { item: { key: "buyerName", title: "采购员", width: 100 }, attr: { is: "el-popover-select-v2", valueKey: "name", referName: "CONTACTS_PARAM", dataMapping: { buyer: "code", buyerName: "name", puDept: "deptId", puDeptName: "deptName", }, }, }, { item: { key: "isPartya", title: "采购是否甲方", required: true, width: 100, }, attr: { is: "el-select", dictName: "sys_yes_no", }, }, { item: { key: "contractType", title: "合同类型", required: true, width: 100, }, attr: { is: "el-select", dictName: "puarchase_contract_contract_type" }, }, { item: { key: "puMoneyYear", title: "合同总金额", width: 100 ,required: true,}, attr: { is: "el-input-number", }, }, { item: { key: "puDeptName", title: "采购部门", width: 100, }, attr: { is: "el-popover-select-v2", valueKey: "name", referName: "DEPT_PARAM", dataMapping: { puDept: "code", puDeptName: "name", }, }, }, { item: { key: "supplierName", title: "供应商", required: true, width: 100, }, attr: { is: "el-popover-select-v2", valueKey: "name", referName: "SUPPLIER_PARAM", dataMapping: { supplier: "code", supplierName: "name", }, }, }, { item: { key: "contractName", title: "合同名称", required: true, width: 100, }, attr: { is: "el-input" }, }, { item: { key: "grossRateAverage", title: "平均毛利率 (%)", required: true, width: 100, }, attr: { is: "el-input-number", precision: 2, }, }, { item: { key: "approveFlow", title: "审批流程", required: true, width: 100, }, attr: { is: "el-select", dictName: "puarchase_contract_approve_flow" }, }, { item: { key: "supplierTier", title: "供应商层级", required: true, width: 100, }, attr: { is: "el-select", dictName: "puarchase_contract_supplier_tier" }, }, { item: { key: "effectiveDate", title: "合同生效日期", required: true, width: 100, }, attr: { is: "el-date-picker", valueFormat: "yyyy-MM-dd", }, }, { item: { key: "brandGrossRate", title: "同类品牌及毛利率 (%)", required: true, }, // attr: { // is: "el-input-number", // precision: 2, // }, attr: { is: "el-input", }, }, { item: { key: "contractFormat", title: "合同格式", required: true, width: 100, }, attr: { is: "el-select", dictName: "puarchase_contract_contract_format", }, }, { item: { key: "consumableClass", title: "耗材类别", required: true, width: 100, }, attr: { is: "el-select", dictName: "puarchase_contract_consumable_class", }, }, { item: { key: "endDate", title: "合同终止日期", required: true, width: 100, }, attr: { is: "el-date-picker", valueFormat: "yyyy-MM-dd", disabled: (prop) => !prop.effectiveDate, }, }, { item: { key: "invoiceTax", title: "发票税率 (%)", required: true, width: 100, }, attr: { is: "el-popover-select-v2", valueKey: "ntaxrate", referName: "TAX_RATE_PARAM", dataMapping: { invoiceTax: "ntaxrate", }, }, }, { item: { key: "emergencyDegree", title: "紧急程度", required: true, width: 100, }, attr: { is: "el-select", dictName: "puarchase_contract_emergency_degree", }, }, { item: { key: "productName", title: "产品类别&名称", required: true, width: 100, }, attr: { is: "el-input" }, }, { item: { key: "signDate", title: "合同签订日期", width: 100 ,required: true,}, attr: { is: "el-date-picker", valueFormat: "yyyy-MM-dd" }, }, { item: { key: "deliveryType", title: "交货方式", required: true, width: 100, }, attr: { is: "el-select", dictName: "puarchase_contract_delivery_type" }, }, { item: { key: "source", title: "合同来源", width: 100 }, attr: { is: "el-input", value: "自制", disabled: true }, }, { item: { key: "principalManufacturers", title: "主要厂家", width: 100, required: true, }, attr: { is: "el-input", }, }, { item: { key: "guaranteePeriodEnd", title: "质保期限", required: true, width: 100, }, // attr: { is: "el-input-number", precision: 2 }, attr: { is: "el-input", }, }, { item: { key: "freightMethods", title: "运费承担方式", width: 100 ,required: true, }, attr: { is: "el-select", dictName: "puarchase_contract_freight_methods", }, }, { item: { key: "createTime", title: "合同创建时间", width: 100 }, attr: { is: "el-date-picker", valueFormat: "yyyy-MM-dd",disabled:true,}, }, { item: { key: "project", title: "项目医院", required: true, width: 100 }, attr: { is: "el-input" }, }, { item: { key: "contractPartycName", title: "合同丙方", width: 100 }, attr: { is: "el-popover-select-v2", valueKey: "name", referName: "SUPPLIER_PARAM", dataMapping: { contractPartyc: "code", contractPartycName: "name", }, }, }, { item: { key: "exemptionPostageCondtion", title: "包邮条件", span: 12, width: 100, }, attr: { is: "el-input", placeholder: "当运费承担方式为供应商有条件承担时,该字段必填,填写要求,写明什么条件下供应商承担全部,什么条件下我方承担,什么条件下分别承担", }, }, { item: { key: "isTarget", title: "是否有指标", required: true, width: 100, }, attr: { is: "el-select", dictName: "sys_yes_no" }, }, { item: { key: "contractTarget", title: "合同指标", width: 100, required: (prop) => prop.isTarget === "Y", }, attr: { is: "el-input", placeholder: '当【是否有指标】="有"时,必填' }, }, // { // item: { key: "", title: "交易类型", required: true, span: 12,}, // attr: { is: "el-input" }, // }, { item: { key: "rollbackPolicy", title: "退换货政策", required: true, span: 12, }, attr: { is: "el-input" }, }, { item: { key: "isRebate", title: "是否有返利", required: true, width: 100, }, attr: { is: "el-select", dictName: "sys_yes_no" }, }, { item: { key: "rebatePolicy", title: "返利政策", span: 18, width: 100, required: (prop) => prop.isRebate === "Y", }, attr: { is: "el-input", placeholder: '当【是否有返利】="有"时,必填', }, }, { item: { key: "contractContent", title: "合同主要内容", required: true, span: 24, width: 100, }, attr: { is: "el-input", type: "textarea",rows:3, }, }, { item: { key: "enquiryCode", title: "询价单号", width: 100 }, attr: { is: "el-input" }, }, { item: { key: "electronicContract", title: "电子合同", span: 6, width: 100 }, attr: { is: "el-input" }, }, { item: { key: "refusalReasons", title: "拒绝理由", span: 6, width: 100 }, attr: { is: "el-input" }, }, { item: { key: "status", title: "状态" }, attr: { is: "el-select", dictName: "documents_status", disabled: true, value: "0", }, }, { item: { key: "externalFile", title: "附件", span: 12, width: 100 }, attr: { is: "el-file-upload", fileType: ["pdf","doc","docx","png","jpg","xls","xlsx"] }, }, { item: { key: "puFile", title: "盖章合同附件", span: 12, width: 100, }, attr: { is: "el-file-upload", fileType: ["pdf"] }, }, // { // item: { // key: "supplierFile", // title: "供应商盖章合同附件", // span:12, // width: 100, // }, // attr: { is: "el-file-upload", fileType: ["pdf"] }, // }, // { // item: { // key: "", // title: "电子合同供应商附件", // span: 12, // width: 100, // }, // attr: { is: "el-file-upload", fileType: ["pdf"] }, // }, { item: { key: "paymentAgreement", title: "付款协议", required: true, width: 100, }, attr: { is: "el-popover-select-v2", valueKey: "name", referName: "PAYAGREEMENT_PARAM", dataMapping: { paymentAgreement: "code", paymentAgreementName: "name", }, }, }, { item: { key: "taxPrice", title: "价税合计", width: 100 }, attr: { is: "el-input-number", }, }, { item: { key: "currencyName", title: "币种", required: true, width: 100 }, attr: { is: "el-popover-select-v2", valueKey: "name", referName: "CURRENCY_PARAM", dataMapping: { currency: "code", currencyName: "name", }, }, }, { item: { key: "guaranteePeriod", title: "质保期", width: 100 }, attr: { is: "el-input-number", }, }, // { // item: { key: "externalContract", title: "外部合同号", width: 100 }, // attr: { is: "el-input" }, // }, // { // item: { key: "projectCode", title: "项目编号", width: 100 }, // attr: { is: "el-input" }, // }, // { // item: { key: "projectName", title: "项目名称", width: 100 }, // attr: { is: "el-input" }, // }, // { item: { key: "area", title: "区域" }, attr: { is: "el-input" } }, // { // item: { key: "consigneePhone", title: "收货人联系方式", width: 100 }, // attr: { is: "el-input" }, // }, ].map(({ item, attr }) => ({ attr, item: { ...item, hidden: true, span: item.span || 6 }, })); const TabColumns = [ { item: { title: "物料基本信息", key: "contractItemList" }, attr: { value: [] }, TableColumns: [ { item: { title: "物料名称", key: "materialName", require: true, }, attr: { is: "el-popover-select-v2", valueKey: "name", referName: "MATERIAL_PARAM", dataMapping: { material: "code", materialName: "name", puUnit: "unitIdName", registration: "registrationNo", specification: "specification", manufacturer: "manufacturerIdName", rateCode: "materialRateName", }, }, }, { item: { title: "物料编码", key: "material", }, attr: {}, }, { item: { title: "规格", key: "specification", }, attr: {}, }, { item: { title: "生产厂家", key: "manufacturer", }, attr: { is: "el-input", }, }, { item: { title: "采购单位", key: "puUnit" }, attr: { is: "el-popover-select-v2", valueKey: "name", referName: "UNIT_PARAM", dataMapping: { puUnit: "name", }, }, }, { item: { title: "税率%", key: "tax", require: true }, attr: { is: "el-popover-select-v2", valueKey: "ntaxrate", referName: "TAX_RATE_PARAM", dataMapping: { tax: "ntaxrate", }, }, }, { item: { title: "采购数量", key: "qty" }, attr: { is: "el-input-number", }, }, { item: { title: "含税单价", key: "taxPrice", require: true }, attr: { is: "el-input-number", }, }, { item: { title: "含税金额合计", key: "taxMoney" }, attr: { formatter: (prop) => { const { qty = 0, taxPrice = 0 } = prop; prop.taxMoney = qty * taxPrice * 1; return prop.taxMoney; }, }, }, { item: { title: "无税单价", key: "taxFreePrice", require: true }, attr: { formatter: (prop) => { const { tax = 0, taxPrice = 0 } = prop; return (prop.taxFreePrice = iunitprice(tax, taxPrice)); }, }, }, { item: { title: "无税金额合计", key: "taxFreeMoney" }, attr: { formatter: (prop) => { const { qty = 0, tax = 0, taxPrice = 0 } = prop; return (prop.taxFreeMoney = qty * iunitprice(tax, taxPrice)); }, }, }, { item: { title: "注册证号及备案凭证号", key: "registration" }, attr: { is: "el-input", }, }, { item: { title: "收货客户", key: "customerName" }, attr: { is: "el-popover-select-v2", valueKey: "name", referName: "CUSTOMER_PARAM", dataMapping: { customer: "code", customerName: "name", }, }, }, ], }, { item: { title: "合同条款", key: "contractClauseList" }, attr: { value: [], }, TableColumns: [ { item: { title: "条款编码", key: "code", width: "auto" }, attr: { is: "el-input" }, }, { item: { title: "条款名称", key: "name", width: "auto" }, attr: { is: "el-input" }, }, { item: { title: "条款内容", key: "content", width: "auto" }, attr: { is: "el-input" }, }, { item: { title: "变量序号", key: "variableRowno", width: "auto" }, attr: { is: "el-input" }, }, { item: { title: "变量内容", key: "variableContent", width: "auto" }, attr: { is: "el-input" }, }, ], }, { item: { title: "合同费用", key: "contractExpenseList" }, attr: { value: [], }, TableColumns: [ { item: { title: "费用编码", key: "code", width: "auto" }, attr: { is: "el-input" }, }, { item: { title: "费用名称", key: "name", width: "auto" }, attr: { is: "el-input" }, }, { item: { title: "费用金额", key: "money", width: "auto" }, attr: { is: "el-input-number" }, }, ], }, { item: { title: "付款协议信息", key: "contractAgreementList" }, attr: { value: [], }, TableColumns: [ { item: { title: "付款阶段", key: "satge" }, attr: { is: "el-input-number" }, }, { item: { title: "付款起点", key: "origin", require: true, }, attr: { is: "el-select", dictName: "puarchase_contract_origin", }, }, { item: { title: "账期天数", key: "paymetDays", require: true }, attr: { is: "el-input-number", precision: 2, }, }, { item: { title: "付款比例%", key: "ratio", require: true }, attr: { is: "el-input-number", }, }, { item: { title: "付款金额", key: "money" }, attr: { is: "el-input-number", }, }, { item: { title: "是否预付款", key: "isAdvance", }, attr: { is: "el-select", dictName: "sys_yes_no", }, }, { item: { title: "是否质保金", key: "isQuality", }, attr: { is: "el-select", dictName: "sys_yes_no", }, }, { item: { title: "结算方式", key: "paymentMeans", require: true, }, attr: { is: "el-popover-select-v2", valueKey: "name", referName: "BALATYPE_PARAM", dataMapping: { paymentMeans: "name", }, }, }, { item: { title: "需进度确认", key: "schedule", }, attr: { is: "el-select", dictName: "sys_yes_no", }, }, ], }, { item: { title: "合同执行组织范围", key: "contractApplyOrgList" }, attr: { value: [] }, TableColumns: [ { item: { title: "组织名称", key: "orgName", width: "auto", }, attr: { is: "el-popover-select-v2", valueKey: "name", referName: "ORG_PARAM", dataMapping: { org: "code", orgName: "name", }, }, }, { item: { title: "组织编码", key: "org", width: "auto" }, attr: {} }, ], }, ].map(({ item, attr, TableColumns }) => ({ attr, item, TableColumns: TableColumns.map(({ item, attr }) => ({ attr, item: { ...item, hidden: true }, })), })); return { TableColumns, TabColumns }; }