| | |
| | | NumberField, |
| | | DateField, |
| | | ReferenceField, |
| | | useRecordContext |
| | | } from 'react-admin'; |
| | | import { Tooltip } from '@mui/material'; |
| | | import { get } from 'lodash'; |
| | | import request from '@/utils/request'; |
| | | |
| | | const TruncatedTextField = ({ source, maxLength = 20, ...props }) => { |
| | | const record = useRecordContext(props); |
| | | const value = get(record, source); |
| | | |
| | | if (!value) return null; |
| | | |
| | | if (value.length <= maxLength) { |
| | | return <span>{value}</span>; |
| | | } |
| | | |
| | | return ( |
| | | <Tooltip title={value}> |
| | | <span>{value.substring(0, maxLength)}...</span> |
| | | </Tooltip> |
| | | ); |
| | | }; |
| | | |
| | | export const getInOrderItemFullBaseColumns = () => [ |
| | | <TextField source="poCode" label="table.field.asnOrder.poCode" key="poCode" />, |
| | | <TextField source="wkType$" label="table.field.asnOrder.wkType" key="wkType$" /> |
| | | ]; |
| | | |
| | | /** |
| | | * 获取出库订单明细的基础列配置 |
| | |
| | | */ |
| | | export const getOutOrderItemBaseColumns = () => [ |
| | | <NumberField source="id" key="id" />, // id |
| | | <TextField source="orderCode" label="table.field.asnOrderItem.orderCode" key="orderCode" />, // 订单号 |
| | | <TextField source="platWorkCode" label="table.field.asnOrderItem.platWorkCode" key="platWorkCode" />, //计划跟踪号 |
| | | <TextField source="splrCode" label="table.field.asnOrderItem.splrCode" key="splrCode" />, //供应商编码 |
| | | <TextField source="splrName" label="table.field.asnOrderItem.splrName" key="splrName" />, //供应商名称 |
| | | <TextField source="platItemId" label="table.field.asnOrderItem.platItemId" key="platItemId" />, //行号 |
| | | <TextField source="matnrCode" label="table.field.asnOrderItem.matnrCode" key="matnrCode" />, //物料编码 |
| | | <TextField source="maktx" label="table.field.asnOrderItem.maktx" key="maktx" />, //物料名称 |
| | | <TextField source="splrBatch" label="table.field.asnOrderItem.splrBatch" key="splrBatch" />, //批次 |
| | | <TextField source="spec" label="table.field.asnOrderItem.spec" key="spec" />, //规格 |
| | | <TextField source="stockUnit" label="table.field.asnOrderItem.stockUnit" key="stockUnit" />, //单位 |
| | | <NumberField source="anfme" label="table.field.asnOrderItem.anfme" key="anfme" />, //应收数量 |
| | | <NumberField source="qty" label="table.field.asnOrderItem.qty" key="qty" />, //实收数量 |
| | | <TextField source="sourceWareHouseId" label="table.field.asnOrderItem.sourceWareHouseId" key="sourceWareHouseId" />, //调出仓 |
| | | <TextField source="orderCode" label="table.field.outStockItem.orderCode" key="orderCode" />, // 订单号 |
| | | <TextField source="platWorkCode" label="table.field.outStockItem.platWorkCode" key="platWorkCode" />, //计划跟踪号 |
| | | <TextField source="splrCode" label="table.field.outStockItem.splrCode" key="splrCode" />, //供应商编码 |
| | | <TextField source="splrName" label="table.field.outStockItem.splrName" key="splrName" />, //供应商名称 |
| | | <TextField source="platItemId" label="table.field.outStockItem.platItemId" key="platItemId" />, //行号 |
| | | <TextField source="matnrCode" label="table.field.outStockItem.matnrCode" key="matnrCode" />, //物料编码 |
| | | <TruncatedTextField source="maktx" label="table.field.outStockItem.maktx" key="maktx" maxLength={20} />, //物料名称 |
| | | <TextField source="splrBatch" label="table.field.outStockItem.splrBatch" key="splrBatch" />, //批次 |
| | | <TextField source="spec" label="table.field.outStockItem.spec" key="spec" />, //规格 |
| | | <TextField source="purUnit" label="table.field.outStockItem.purUnit" key="purUnit" />, //单位 |
| | | <NumberField source="anfme" label="table.field.outStockItem.anfme" key="anfme" />, //应收数量 |
| | | <NumberField source="qty" label="table.field.outStockItem.qty" key="qty" />, //实收数量 |
| | | <TextField source="sourceWarehouseId" label="table.field.outStockItem.sourceWarehouseId" key="sourceWarehouseId" />, //调出仓 |
| | | ]; |
| | | |
| | | /** |
| | |
| | | <TextField source="splrName" label="table.field.asnOrderItem.splrName" key="splrName" />, //供应商名称 |
| | | <TextField source="platItemId" label="table.field.asnOrderItem.platItemId" key="platItemId" />, //行号 |
| | | <TextField source="matnrCode" label="table.field.asnOrderItem.matnrCode" key="matnrCode" />, //物料编码 |
| | | <TextField source="maktx" label="table.field.asnOrderItem.maktx" key="maktx" />, //物料名称 |
| | | <TruncatedTextField source="maktx" label="table.field.asnOrderItem.maktx" key="maktx" maxLength={20} />, //物料名称 |
| | | <TextField source="splrBatch" label="table.field.asnOrderItem.splrBatch" key="splrBatch" />, //批次 |
| | | <TextField source="spec" label="table.field.asnOrderItem.spec" key="spec" />, //规格 |
| | | <TextField source="stockUnit" label="table.field.asnOrderItem.stockUnit" key="stockUnit" />, //单位 |
| | | <TextField source="purUnit" label="table.field.asnOrderItem.unit" key="purUnit" />, //单位 |
| | | <NumberField source="anfme" label="table.field.asnOrderItem.anfme" key="anfme" />, //应收数量 |
| | | <NumberField source="qty" label="table.field.asnOrderItem.qty" key="qty" />, //实收数量 |
| | | <TextField source="targetWarehouseId" label="table.field.asnOrderItem.targetWarehouseId" key="targetWarehouseId" />, //建议目标仓 |
| | | ]; |
| | | |
| | | /** |
| | | * 获取动态扩展字段列 |
| | | * @param {Array} fieldsData - 动态字段数据 |
| | | * @returns {Array} 动态字段列数组 |
| | | */ |
| | | export const getExtendFieldColumns = (fieldsData) => { |
| | | return fieldsData.map(el => ( |
| | | <TextField |
| | | key={el.fields} |
| | | source={`extendFields.[${el.fields}]`} |
| | | label={el.fieldsAlise} |
| | | sortable={false} |
| | | /> |
| | | )); |
| | | }; |
| | | |
| | | |
| | | /** |
| | | * 获取订单明细的尾部列配置(时间和操作人信息) |
| | | * @returns {Array} 尾部列数组 |
| | | */ |
| | | export const getLastColumns = () => [ |
| | | <ReferenceField source="updateBy" label="common.field.updateBy" reference="user" link={false} sortable={false} key="updateBy"> |
| | | <ReferenceField source="updateBy" label="common.field.updateBy" reference="user" link={false} sortable={false} key="updateBy"> |
| | | <TextField source="nickname" /> |
| | | </ReferenceField>, |
| | | <DateField source="updateTime" label="common.field.updateTime" showTime key="updateTime" />, |
| | | <DateField source="updateTime" label="common.field.updateTime" showTime key="updateTime" />, |
| | | <ReferenceField source="createBy" label="common.field.createBy" reference="user" link={false} sortable={false} key="createBy"> |
| | | <TextField source="nickname" /> |
| | | </ReferenceField>, |
| | |
| | | |
| | | /** |
| | | * 组合入库订单明细所有列配置 |
| | | * @param {Array} extendFieldsData - 动态扩展字段数据 |
| | | * @returns {Array} 完整的列配置数组 |
| | | */ |
| | | export const buildInOrderItemColumns = (extendFieldsData = []) => { |
| | | export const buildInOrderItemColumns = () => { |
| | | return [ |
| | | ...getInOrderItemBaseColumns(), |
| | | ...getExtendFieldColumns(extendFieldsData), |
| | | ...getLastColumns() |
| | | ]; |
| | | }; |
| | | |
| | | export const buildInOrderItemFullColumns = () => { |
| | | return [ |
| | | ...getInOrderItemFullBaseColumns(), |
| | | ...getInOrderItemBaseColumns(), |
| | | ...getLastColumns() |
| | | ]; |
| | | }; |
| | | |
| | | /** |
| | | * 组合出库订单明细所有列配置 |
| | | * @param {Array} extendFieldsData - 动态扩展字段数据 |
| | | * @returns {Array} 完整的列配置数组 |
| | | */ |
| | | export const buildOutOrderItemColumns = (extendFieldsData = []) => { |
| | | export const buildOutOrderItemColumns = () => { |
| | | return [ |
| | | ...getOutOrderItemBaseColumns(), |
| | | ...getExtendFieldColumns(extendFieldsData), |
| | | ...getLastColumns() |
| | | ]; |
| | | }; |
| | |
| | | */ |
| | | export const fetchInOrderItemColumns = async () => { |
| | | try { |
| | | const { data: { code, data, msg } } = await request.get("/fields/enable/list"); |
| | | if (code == 200) { |
| | | return { success: true, columns: buildInOrderItemColumns(data) }; |
| | | } else { |
| | | return { success: false, msg }; |
| | | } |
| | | return { success: true, columns: buildInOrderItemColumns() }; |
| | | } catch (error) { |
| | | return { success: false, msg: error.message }; |
| | | } |
| | |
| | | */ |
| | | export const fetchOutOrderItemColumns = async () => { |
| | | try { |
| | | const { data: { code, data, msg } } = await request.get("/fields/enable/list"); |
| | | if (code == 200) { |
| | | return { success: true, columns: buildOutOrderItemColumns(data) }; |
| | | } else { |
| | | return { success: false, msg }; |
| | | } |
| | | return { success: true, columns: buildOutOrderItemColumns() }; |
| | | } catch (error) { |
| | | return { success: false, msg: error.message }; |
| | | } |
| | | }; |
| | | |
| | | export const fetchInOrderItemFullColumns = async () => { |
| | | try { |
| | | return { success: true, columns: buildInOrderItemFullColumns() }; |
| | | } catch (error) { |
| | | return { success: false, msg: error.message }; |
| | | } |