import CONFIG from "@/config"; import { iunitprice } from "@/utils/expression"; export default function useColumns() { const TableColumns = [ { item: { key: "priceCode", title: "价格编码" }, attr: { is: "el-input", disabled: true, readonly: true }, }, { item: { key: "supplierName", title: "供应商", require: true }, attr: { is: "el-popover-select-v2", valueKey: "name", referName: "SUPPLIER_PARAM", dataMapping: { supplier: "id", supplierCode: "code", supplierName: "name", }, }, }, { item: { key: "puOrgName", title: "采购组织", require: true }, attr: { is: "el-popover-select-v2", valueKey: "name", referName: "ORG_PARAM", dataMapping: { puOrg: "id", puOrgCode: "code", puOrgName: "name" }, }, }, { item: { key: "currencyName", title: "币种", require: true }, attr: { is: "el-popover-select-v2", valueKey: "name", referName: "CURRENCY_PARAM", dataMapping: { currency: "id", currencyCode: "code", currencyName: "name", }, }, }, { item: { key: "explainStr", title: "价格合理性说明", require: true }, attr: { is: "el-input" }, }, { item: { key: "buyerName", title: "采购员", require: true }, attr: { is: "el-popover-select-v2", valueKey: "name", referName: "CONTACTS_PARAM", dataMapping: { buyer: "code", buyerName: "name" }, }, }, { item: { key: "puDeptName", title: "采购部门", require: true }, attr: { is: "el-popover-select-v2", valueKey: "name", referName: "DEPT_PARAM", dataMapping: { puDept: "id", puDeptCode: "code", puDeptName: "name" }, }, }, { item: { key: "createByName", title: "创建人" }, attr: { is: "el-input", disabled: true, readonly: true }, }, { item: { key: "isEffective", title: "是否已推价格" }, attr: { is: "el-select", dictName: "is_effective", value: "N", disabled: true, }, }, { item: { key: "effectiveDate", title: "生效日期" }, attr: { is: "el-input", disabled: true, readonly: true }, }, { item: { key: "file", title: "附件", require: true, span: 24 }, attr: { is: "el-file-upload" }, }, { item: { key: "sourceType", title: "来源单据类型" }, attr: { is: "el-input", disabled: true, readonly: true }, }, { item: { key: "status", title: "单据状态" }, attr: { is: "el-select", dictName: "sys_status", disabled: true, readonly: true, value: "0", }, }, ].map(({ item, attr }) => ({ attr, item: { ...item, hidden: true, span: item.span || 6 }, })); const TabColumns = [ { item: { title: "物料信息表", key: "priceApplyItems", }, attr: { value: [], }, TableColumns: [ { item: { key: "materialName", title: "物料名称", require: true }, attr: { is: "el-popover-select-v2", checkbox: true, valueKey: "name", referName: "MATERIAL_PARAM", dataMapping: { model: "model", material: "id", materialCode: "code", materialName: "name", unitName: "unitIdName", puUnitName: "unitIdName", specification: "specification", manufacturer: "manufacturerId", manufacturerName: "manufacturerIdName", tax: "materialRateName", }, }, }, { item: { key: "materialCode", title: "物料编码", require: true }, attr: {}, }, { item: { key: "manufacturerName", title: "生产厂家" }, attr: {} }, { item: { key: "specification", title: "规格" }, attr: {} }, { item: { key: "model", title: "型号" }, attr: {} }, { item: { key: "unitName", title: "单位", hidden: false }, attr: { is: "el-popover-select-v2", valueKey: "name", referName: "UNIT_PARAM", dataMapping: { unit: "id", unitCode: "code", unitName: "name" }, }, }, { item: { key: "puUnitName", title: "采购单位", hidden: false }, attr: { is: "el-popover-select-v2", valueKey: "name", referName: "UNIT_PARAM", dataMapping: { puUnit: "id", puUnitCode: "code", puUnitName: "name", }, }, }, { item: { key: "conversionRate", title: "采购换算率", require: true }, attr: { is: "el-input-number", precision: CONFIG.precision, value: 1, disabled: true, }, }, { item: { key: "tax", title: "税率%", require: true }, attr: { is: "el-popover-select-v2", valueKey: "ntaxrate", referName: "TAX_RATE_PARAM", dataMapping: { tax: "ntaxrate" }, disabled: true, }, }, { item: { key: "taxPrice", title: "含税单价", require: true }, attr: { is: "el-input-number", precision: CONFIG.precision, }, }, { item: { key: "price", title: "无税单价", require: true }, attr: { formatter: (prop) => { const { tax = 0, taxPrice = 0 } = prop; return (prop.price = iunitprice(tax, taxPrice)); }, }, }, { item: { key: "currencyName", title: "币种" }, attr: { is: "el-popover-select-v2", valueKey: "name", referName: "CURRENCY_PARAM", dataMapping: { currency: "id", currencyCode: "code", currencyName: "name", }, }, }, { item: { key: "periodBegin", title: "价格有效期(起)", require: true, }, attr: { is: "el-date-picker", valueFormat: "yyyy-MM-dd", value: new Date(), }, }, { item: { key: "periodEnd", title: "价格有效期(止)", require: true }, attr: { is: "el-date-picker", valueFormat: "yyyy-MM-dd", pickerOptions: { disabledDate(time) { return time.getTime() < Date.now() + 3600 * 1000 * 24 * 365; }, }, value: new Date(new Date().getTime() + 3600 * 1000 * 24 * 366), }, }, { item: { key: "customerName", title: "客户" }, attr: { is: "el-popover-select-v2", valueKey: "name", referName: "CUSTOMER_PARAM", dataMapping: { customer: "id", customerCode: "code", customerName: "name", }, }, }, { item: { key: "recentlyPrice", title: "最近价格" }, attr: { is: "el-input-number", precision: CONFIG.precision, disabled: true, }, }, { item: { key: "isApprovalFirst", title: "首次报批" }, attr: { is: "el-select", dictName: "is_effective", disabled: true, }, }, { item: { key: "isPriceAdjustment", title: "价格调整" }, attr: { is: "el-select", dictName: "is_effective", disabled: true, }, }, { item: { key: "priceType", title: "价格类型", require: true }, attr: { is: "el-select", dictName: "sys_price_type", value: "order", }, }, { item: { key: "isDistributionPrice", title: "配送价", require: true }, attr: { is: "el-select", dictName: "is_effective", value: "N", }, }, { item: { width: 100, key: "isChannel", title: "是否渠道变更" }, attr: { is: "el-select", dictName: "is_effective", value: "N", }, }, { item: { width: 100, key: "brandReplacement", title: "是否品牌替换" }, attr: { is: "el-select", dictName: "is_effective", value: "N", }, }, { item: { width: 100, key: "priceDiffer", title: "单价差" }, attr: { formatter: (prop) => { const { taxPrice = 0, recentlyPrice = 0 } = prop; return (prop.priceDiffer = ( Number(taxPrice) - Number(recentlyPrice) )); }, }, }, { item: { width: 100, key: "increase", title: "涨幅(%)" }, attr: { formatter: (prop) => { const { priceDiffer = 0, recentlyPrice = 0 } = prop; return (prop.increase = recentlyPrice ? ((Number(priceDiffer) / Number(recentlyPrice)) * 100).toFixed( 2 ) : "0.00"); }, }, }, { item: { width: 100, key: "yPurchaseQuantity", title: "预计年采购量" }, attr: { is: "el-computed-input-v2", formatter: (prop) => { return prop == null ? 0 : (prop * 1); }, }, }, { item: { width: 100, key: "yAffectedAmount", title: "预计年影响金额" }, attr: { formatter: (prop) => { const { priceDiffer = 0, yPurchaseQuantity = 0 } = prop; return (prop.yAffectedAmount = ( Number(priceDiffer) * Number(yPurchaseQuantity) )); }, }, }, { item: { width: 150, key: "supplierName", title: "供应商名称" }, attr: { is: "el-input" }, }, { item: { width: 150, key: "bidPrice", title: "中标价" }, attr: { is: "el-input-number", precision: CONFIG.precision, }, }, { item: { width: 150, key: "unitPrice", title: "单价" }, attr: { is: "el-input-number", precision: CONFIG.precision, }, }, { item: { width: 150, key: "profit", title: "利润比" }, attr: { is: "el-input-number", precision: CONFIG.precision, }, }, { item: { width: 150, key: "supplierName1", title: "供应商名称1" }, attr: { is: "el-input" }, }, { item: { width: 150, key: "bidPrice1", title: "中标价1" }, attr: { is: "el-input-number", precision: CONFIG.precision, }, }, { item: { width: 150, key: "unitPrice1", title: "单价1" }, attr: { is: "el-input-number", precision: CONFIG.precision, }, }, { item: { width: 150, key: "profit1", title: "利润比1" }, attr: { is: "el-input-number", precision: CONFIG.precision, }, }, { item: { width: 150, key: "supplierName2", title: "供应商名称2" }, attr: { is: "el-input" }, }, { item: { width: 150, key: "bidPrice2", title: "中标价2" }, attr: { is: "el-input-number", precision: CONFIG.precision, }, }, { item: { width: 150, key: "unitPrice2", title: "单价2" }, attr: { is: "el-input-number", precision: CONFIG.precision, }, }, { item: { width: 150, key: "profit2", title: "利润比2" }, attr: { is: "el-input-number", precision: CONFIG.precision, }, }, { item: { key: "createByName", title: "创建人名称" }, attr: {} }, { item: { key: "updateByName", title: "更新人名称" }, attr: {} }, ], }, ]; return { TableColumns, TabColumns }; }