Commit b638693a authored by 吴春梅's avatar 吴春梅

feat: 物料管理添加新需求

parent cf766c73
......@@ -38,3 +38,7 @@ export enum RoleEnum {
Purchaser = 2
}
export const DELIVERY_TYPE_ENUM = [
{ label: '配送', value: 1 },
{ label: '自提', value: 2 },
];
......@@ -6,6 +6,8 @@ import { useMemo, useState } from 'react';
import FileItem from '../components/fileItem';
import { useIntl } from 'umi'
import { PENDING_SUBMIT_EXAM, PENDING_ADD_MATERIAL } from '@/constants/material';
import { RoleEnum } from '../common/constants';
import { getAuth } from '@/utils/auth';
type Options<T> = {
initialValue: T
......@@ -18,6 +20,7 @@ type Options<T> = {
function useGetDetailCommon<T extends GetProductGoodsGetGoodsProcessDetailResponse>(options: Options<T>) {
const { initialValue } = options;
const intl = useIntl()
const roleType = getAuth().memberRoleType
const anchorHeader = useMemo(() => [
(
......@@ -50,6 +53,12 @@ function useGetDetailCommon<T extends GetProductGoodsGetGoodsProcessDetailRespon
key: 'images',
name: intl.formatMessage({ id: 'material.images.title', defaultMessage: '物料图片' })
},
(roleType === RoleEnum.Purchaser ? (
{
key: 'otherInfo',
name: '规格型号'
}
) : null),
{
key: 'files',
name: intl.formatMessage({ id: 'material.enclosure.title', defaultMessage: '附件' })
......@@ -192,6 +201,49 @@ function useGetDetailCommon<T extends GetProductGoodsGetGoodsProcessDetailRespon
}, [initialValue])
/* 规格型号 */
const otherInfoList = useMemo(() => {
return [
{
title: '最小单位(包)',
value: initialValue?.miniUnit
},
{
title: '托盘类型(海关)',
value: initialValue?.trayType
},
{
title: '包装类型(海关)',
value: initialValue?.packageType
},
{
title: '托盘规格(海关)',
value: initialValue?.traySpec
},
{
title: '托规格(托)',
value: initialValue?.palmSpec
},
{
title: '柜/车规格(柜/车)',
value: initialValue?.cabinetSpec
},
{
title: '最小剩余货架寿命',
value: `${initialValue?.miniShelfLife?.length ? initialValue?.miniShelfLife : ''} ${initialValue?.sapSledTag}`
},
{
title: '毛 重',
value: initialValue?.grossWeight
},
{
title: '净 重',
value: initialValue?.netWeight
},
]
}, [initialValue])
/** 动态物料属性 */
const properties = useMemo(() => {
if (!initialValue?.materialAttributeList) {
......@@ -311,7 +363,7 @@ function useGetDetailCommon<T extends GetProductGoodsGetGoodsProcessDetailRespon
]
}, [])
return { anchorHeader: anchorHeader, auditProcess, basicInfoList,outputInfoList,unitInfoList,contactInfoList, tableColumn, recordColumn, properties }
return { anchorHeader: anchorHeader, auditProcess, basicInfoList,outputInfoList,unitInfoList,contactInfoList, tableColumn, recordColumn, properties, otherInfoList }
}
export default useGetDetailCommon
import React, { useEffect, useState } from 'react';
import React, { useEffect, useRef, useState } from 'react';
import AnchorPage from '@/components/AnchorPage';
import NiceForm from '@/components/NiceForm';
import { createFormActions, FormEffectHooks, FormPath, ISchema, Schema } from '@formily/antd';
......@@ -13,7 +13,7 @@ import FormilyUploadEnclosure from '../components/formilyUploadEnclosure';
import UploadFiles from '@/components/UploadFiles/UploadFiles';
import FileItem from '../components/fileItem';
import { fetchBrand, fetchCategoryData, fetchTreeData, fetchUnit, useAsyncCascader, fetchUserPage, fetchMemberUserGet, fetchMaterials } from '../common/useGetTableSearchData';
import { getProductCustomerGetCustomerCategoryById, getProductSelectGetSelectMaterials, postProductGoodsSaveOrUpdateGoods } from '@/services/ProductV2Api';
import { getProductCustomerGetCustomerCategoryById, getProductSelectGetSelectMaterials, postProductGoodsSaveOrUpdateGoods, getProductGoodsGetGoodsNo } from '@/services/ProductV2Api';
// import {getMemberUserPage} from '@/services/MemberV2Api';
import { useAsyncSelect } from '@/formSchema/effects/useAsyncSelect';
import { usePageStatus } from '@/hooks/usePageStatus';
......@@ -25,9 +25,10 @@ import { getAuth } from '@/utils/auth';
import { getManageAreaAll } from '@/services/ManageV2Api';
import { useLinkEnumEffect } from '@/components/NiceForm/linkages/linkEnum';
import { useLinkageUtils } from '@/utils/formEffectUtils';
import { RoleEnum } from '../common/constants';
import { RoleEnum, DELIVERY_TYPE_ENUM } from '../common/constants';
const {
onFormInit$,
onFormMount$,
onFormInputChange$,
} = FormEffectHooks;
......@@ -61,6 +62,8 @@ const MaterialAdd: React.FC<IProps> = (props) => {
const [hasProperties, setHasProperties] = useState(false);
const roleType = getAuth().memberRoleType
const [areaAll, setAreaAll] = useState<any[]>([])
const optionType = useRef<string[]>([])
const isInput = useRef<boolean>(true)
useEffect(() => {
if (query?.type === 'sourceData') {
......@@ -212,7 +215,7 @@ const MaterialAdd: React.FC<IProps> = (props) => {
materialsOrigin,
materialsDeliverPeriod,
materialsDeparture,
materialsDeliveryMethod,
materialsDeliveryType,
contactMemberPhone,
contactMemberName,
chargeUserId,
......@@ -220,9 +223,10 @@ const MaterialAdd: React.FC<IProps> = (props) => {
chargeName,
chargeRoleName,
unitConversions,
grossWeight,
netWeight,
...rest
} = value;
const formatGoodsPic = goodsPic?.map((_item) => _item.url);
const categoryId = { id: [...category].pop() };
const withId = isEdit
......@@ -294,6 +298,8 @@ const MaterialAdd: React.FC<IProps> = (props) => {
let __unitConversions = (JSON.stringify(value) !== '[undefined]') ? true : false;
return __unitConversions
}
/* 获取materialsDeliveryMethod */
const materialsDelivery = DELIVERY_TYPE_ENUM.find(item => materialsDeliveryType === item.value)
const postData = {
goodsPic: formatGoodsPic,
......@@ -316,7 +322,8 @@ const MaterialAdd: React.FC<IProps> = (props) => {
materialsOrigin,
materialsDeliverPeriod,
materialsDeparture,
materialsDeliveryMethod,
materialsDeliveryType,
materialsDeliveryMethod: materialsDelivery.label,
deliveryCycle,
deliveryMethod,
departure,
......@@ -349,6 +356,8 @@ const MaterialAdd: React.FC<IProps> = (props) => {
cabinetSpec: value.cabinetSpec,
miniShelfLife: value.miniShelfLife,
sapSledTag: value.sapSledTag,
grossWeight,
netWeight,
}
console.log(postData, 'unitConversions')
setSubmitLoading(true);
......@@ -518,7 +527,11 @@ const MaterialAdd: React.FC<IProps> = (props) => {
useAsyncSelect('unitId', fetchUnit, ["name", "id"])
useAsyncSelect('unitConversions', fetchUnit, ["name", "id"])
useAsyncSelect('chargeUserId', fetchUserPage, ["name", "userId"])
/* 获取物料编码 */
onFormInit$().subscribe(async () => {
const { data } = await getProductGoodsGetGoodsNo()
formActions.setFieldValue('code', data)
})
$('onFormMount').subscribe(() => {
formActions.setFieldState('sapSledTag', (state) => {
FormPath.setIn(state, 'value', '年');
......@@ -557,6 +570,21 @@ const MaterialAdd: React.FC<IProps> = (props) => {
})
$('onFieldValueChange', 'category').subscribe((fieldState) => {
if (!optionType.current.includes('category')) {
if (!optionType.current.includes('name')) {
optionType.current.push('category')
/* 若未填写物料信息,则物料名称=末级品类+品牌+牌号 */
if (fieldState.values?.length >= 2) {
const categoryNameList = fieldState.values[1]
const lastCategory = categoryNameList[categoryNameList.length - 1].title
/* 获取物料名称 */
const materialsName = formActions.getFieldValue('name')
isInput.current = false
formActions.setFieldValue('name', `${lastCategory}${materialsName ? `/${materialsName}` : ''}`)
}
}
}
if (!fieldState.value || fieldState.value.length === 0) {
setSchema(
getSchema(null)
......@@ -564,7 +592,7 @@ const MaterialAdd: React.FC<IProps> = (props) => {
setHasProperties(false);
return;
}
const categoryId = [...fieldState.value].pop();
getProductCustomerGetCustomerCategoryById({ id: categoryId })
......@@ -625,6 +653,59 @@ const MaterialAdd: React.FC<IProps> = (props) => {
})
})
/* 品牌 */
$('onFieldValueChange', 'brand').subscribe((fieldState) => {
if (!optionType.current.includes('brand')) {
if (!optionType.current.includes('name')) {
optionType.current.push('brand')
if (fieldState.values?.length >= 2) {
const brandName = fieldState.values[1].name
/* 获取物料名称 */
const materialsName = formActions.getFieldValue('name')
isInput.current = false
let nameData = ''
if (materialsName) {
const _materialsName = materialsName.split('/')
if (!optionType.current.includes('materialsTrademark')) {
_materialsName.push(brandName)
} else {
_materialsName.splice(1, 0, brandName)
}
nameData = _materialsName.join('/')
} else {
nameData = brandName
}
formActions.setFieldValue('name', nameData)
}
}
}
})
/* 物料名称 */
$('onFieldValueChange', 'name').subscribe((fieldState) => {
/* isInput.current标识自触发还是联动触发,true为自触发 */
if (isInput.current) {
optionType.current.push('name')
} else {
isInput.current = true
}
})
/* 牌名 */
$('onFieldValueChange', 'materialsTrademark').subscribe((fieldState) => {
if (!optionType.current.includes('name')) {
isInput.current = false
const trademarkName = fieldState.value
/* 获取物料名称 */
const materialsName = formActions.getFieldValue('name')
formActions.setFieldValue('name', materialsName ?
`${optionType.current.includes('materialsTrademark') ?
materialsName.substring(0, materialsName.lastIndexOf("/")) : materialsName}/${trademarkName}` : trademarkName)
if (!optionType.current.includes('materialsTrademark')) {
optionType.current.push('materialsTrademark')
}
}
})
onFormInputChange$().subscribe(() => {
if (!unsaved) {
......
......@@ -3,6 +3,7 @@ import { ISchema, Schema } from '@formily/antd'
import { message, Upload } from 'antd';
import { getIntl } from 'umi';
import { getBaseInfo, getContactPerson, getGoodInfo, getOtherInfo } from './roles';
import { DELIVERY_TYPE_ENUM } from '../../common/constants'
const intl = getIntl()
/**
......@@ -114,12 +115,15 @@ export const getSchema = (schema: ISchema | null): ISchema => {
type: 'string',
'x-rules': [
{
required: true, message: '到货周期不能为空'
},
{
limitByte: true,
maxByte: 40,
}
]
},
materialsDeliveryMethod: {
materialsDeliveryType: {
title: intl.formatMessage({ id: 'material.materialsDeliveryMethod', defaultMessage: '交货方式' }),
type: 'string',
'x-rules': [
......@@ -130,7 +134,8 @@ export const getSchema = (schema: ISchema | null): ISchema => {
limitByte: true,
maxByte: 40,
}
]
],
enum: DELIVERY_TYPE_ENUM
},
}
}
......@@ -253,7 +258,7 @@ export const getSchema = (schema: ISchema | null): ISchema => {
}
}
},
/* 规格型号 */
...getOtherInfo(),
...getGoodInfo(),
......
......@@ -44,7 +44,7 @@ export function getGoodInfo() {
},]
},
miniOrder: {
title: '起订量',
title: '起订量(桶)',
type: 'string',
'x-rules': [{
required: true,
......@@ -121,7 +121,7 @@ export function getGoodInfo() {
},
},
materialsStock: {
title: '库存数量',
title: '库存数量(桶)',
type: 'string',
'x-rules': [{
required: true,
......@@ -171,7 +171,7 @@ export function getGoodInfo() {
},]
},
miniOrder: {
title: '起订量',
title: '起订量(桶)',
type: 'string',
'x-rules': [{
required: true,
......@@ -246,7 +246,7 @@ export function getGoodInfo() {
},
},
materialsStock: {
title: '库存数量',
title: '库存数量(桶)',
type: 'string',
'x-rules': [{
required: true,
......@@ -291,10 +291,10 @@ const type = {
title: intl.formatMessage({ id: 'material.type', defaultMessage: '规格型号' }),
type: 'string',
'x-rules': [
{
required: true,
message: intl.formatMessage({ id: 'material.type.required', defaultMessage: '请填写规格型号' })
},
// {
// required: true,
// message: intl.formatMessage({ id: 'material.type.required', defaultMessage: '请填写规格型号' })
// },
{
limitByte: true,
maxByte: 24,
......@@ -408,6 +408,9 @@ const remark = {
// }]
}
/* 下拉框搜索 */
const filterOptionFunc = (input, option) => (option!.children as unknown as string).includes(input)
export function getBaseInfo() {
const map = new Map()
const roleType = getAuth()?.memberRoleType;
......@@ -426,11 +429,11 @@ export function getBaseInfo() {
title: '物料牌号',
type: 'string',
'x-component-props': {
placeholder: '请输入'
placeholder: '请输入TDS物料名称'
},
'x-rules': [
{
required: true, message: '物料牌号不能为空'
required: true, message: '请输入TDS物料名称'
},
validatorByteObject(40)
]
......@@ -469,16 +472,16 @@ export function getBaseInfo() {
properties: {
unitId,
costPrice,
productionBatch: {
title: '生产批次',
type: 'string',
'x-component-props': {
placeholder: '请输入'
},
'x-rules': [
validatorByteObject(40)
]
},
// productionBatch: {
// title: '生产批次',
// type: 'string',
// 'x-component-props': {
// placeholder: '请输入'
// },
// 'x-rules': [
// validatorByteObject(40)
// ]
// },
brand,
remark,
}
......@@ -499,11 +502,11 @@ export function getBaseInfo() {
title: '物料牌号',
type: 'string',
'x-component-props': {
placeholder: '请输入'
placeholder: '请输入TDS物料名称'
},
'x-rules': [
{
required: true, message: '物料牌号不能为空'
required: true, message: '请输入TDS物料名称'
},
validatorByteObject(40)
]
......@@ -542,16 +545,16 @@ export function getBaseInfo() {
properties: {
unitId,
costPrice,
productionBatch: {
title: '生产批次',
type: 'string',
'x-component-props': {
placeholder: '请输入'
},
'x-rules': [
validatorByteObject(40)
]
},
// productionBatch: {
// title: '生产批次',
// type: 'string',
// 'x-component-props': {
// placeholder: '请输入'
// },
// 'x-rules': [
// validatorByteObject(40)
// ]
// },
brand,
remark,
}
......@@ -678,16 +681,28 @@ export function getOtherInfo() {
title: '托盘类型(海关)',
type: 'string',
enum: [],
'x-component-props': {
showSearch: true,
filterOption: filterOptionFunc
}
},
packageType: {
title: '包装类型(海关)',
type: 'string',
enum: [],
'x-component-props': {
showSearch: true,
filterOption: filterOptionFunc
}
},
traySpec: {
title: '托盘规格(海关)',
type: 'string',
enum: [],
'x-component-props': {
showSearch: true,
filterOption: filterOptionFunc
}
},
palmSpec: {
title: '托规格(托)',
......@@ -748,7 +763,25 @@ export function getOtherInfo() {
},
},
},
}
},
grossWeight: {
title: '毛重',
type: 'number',
'x-component-props': {
placeholder: '请输入',
style: { width: '100%' },
precision: 5
},
},
netWeight: {
title: '净重',
type: 'number',
'x-component-props': {
placeholder: '请输入',
style: { width: '100%' },
precision: 5
},
},
}
},
}
......
......@@ -12,12 +12,15 @@ import { getProductGoodsGetGoodsProcessDetail, GetProductGoodsGetGoodsProcessDet
import ExamVerify, { SubmitDataTypes } from '@/components/ExamVerify';
import { useIntl } from 'umi';
import { BaseInfo } from '@/components/BaseInfo';
import { getAuth } from '@/utils/auth';
import { RoleEnum } from '../common/constants';
/**
* 详情
*/
const Detail = () => {
const intl = useIntl()
const roleType = getAuth()?.memberRoleType;
const { id } = usePageStatus();
const [visible, setVisible] = useState<boolean>(false);
const { initialValue, record } = useGetInitialValueDetail<GetProductGoodsGetGoodsProcessDetailResponse, GetProductGoodsGetMaterInnerLogListResponse>({
......@@ -34,7 +37,8 @@ const Detail = () => {
contactInfoList,
tableColumn,
recordColumn,
properties
properties,
otherInfoList
} = useGetDetailCommon<GetProductGoodsGetGoodsProcessDetailResponse | null>({ initialValue: initialValue })
const [submitLoading, setSubmitLoading] = useState<boolean>(false)
......@@ -131,7 +135,17 @@ const Detail = () => {
<ImageList imageUrls={initialValue?.goodsPic} />
</Card>
</div>
{roleType === RoleEnum.Purchaser &&
<Space>
<CustomizeColumn
id="otherInfo"
data={otherInfoList}
title='规格型号'
column={2}
style={{ marginBottom: '16px' }}
/>
</Space>
}
<BaseInfo title="商品信息" id='goodInfo'>
<BaseInfo.BaseInfoItem label='价格'>{initialValue?.materialsPrice}</BaseInfo.BaseInfoItem>
<BaseInfo.BaseInfoItem label='起订量'>{initialValue?.miniOrder}</BaseInfo.BaseInfoItem>
......
......@@ -12,12 +12,15 @@ import { getProductGoodsGetGoodsProcessDetail, GetProductGoodsGetGoodsProcessDet
import ExamVerify, { SubmitDataTypes } from '@/components/ExamVerify';
import { useIntl } from 'umi';
import { BaseInfo } from '@/components/BaseInfo';
import { getAuth } from '@/utils/auth';
import { RoleEnum } from '../common/constants';
/**
* 详情
*/
const Detail = () => {
const intl = useIntl()
const roleType = getAuth()?.memberRoleType;
const { id } = usePageStatus();
const [visible, setVisible] = useState<boolean>(false);
const { initialValue, record } = useGetInitialValueDetail<GetProductGoodsGetGoodsProcessDetailResponse, GetProductGoodsGetMaterInnerLogListResponse>({
......@@ -34,7 +37,8 @@ const Detail = () => {
contactInfoList,
tableColumn,
recordColumn,
properties
properties,
otherInfoList
} = useGetDetailCommon<GetProductGoodsGetGoodsProcessDetailResponse | null>({ initialValue: initialValue })
const [submitLoading, setSubmitLoading] = useState<boolean>(false)
......@@ -126,7 +130,17 @@ const Detail = () => {
<ImageList imageUrls={initialValue?.goodsPic} />
</Card>
</div>
{roleType === RoleEnum.Purchaser &&
<Space>
<CustomizeColumn
id="otherInfo"
data={otherInfoList}
title='规格型号'
column={2}
style={{ marginBottom: '16px' }}
/>
</Space>
}
<BaseInfo title="商品信息" id='goodInfo'>
<BaseInfo.BaseInfoItem label='价格'>{initialValue?.materialsPrice}</BaseInfo.BaseInfoItem>
<BaseInfo.BaseInfoItem label='起订量'>{initialValue?.miniOrder}</BaseInfo.BaseInfoItem>
......
......@@ -12,12 +12,15 @@ import { getProductGoodsGetGoodsProcessDetail, GetProductGoodsGetGoodsProcessDet
import ExamVerify, { SubmitDataTypes } from '@/components/ExamVerify';
import { useIntl } from 'umi';
import { BaseInfo } from '@/components/BaseInfo';
import { getAuth } from '@/utils/auth';
import { RoleEnum } from '../common/constants';
/**
* 详情
*/
const Detail = () => {
const intl = useIntl()
const roleType = getAuth()?.memberRoleType;
const { id } = usePageStatus();
const [visible, setVisible] = useState<boolean>(false);
const { initialValue, record } = useGetInitialValueDetail<GetProductGoodsGetGoodsProcessDetailResponse, GetProductGoodsGetMaterInnerLogListResponse>({
......@@ -34,7 +37,8 @@ const Detail = () => {
contactInfoList,
tableColumn,
recordColumn,
properties
properties,
otherInfoList
} = useGetDetailCommon<GetProductGoodsGetGoodsProcessDetailResponse | null>({ initialValue: initialValue })
console.log(auditProcess);
......@@ -128,7 +132,17 @@ const Detail = () => {
<ImageList imageUrls={initialValue?.goodsPic} />
</Card>
</div>
{roleType === RoleEnum.Purchaser &&
<Space>
<CustomizeColumn
id="otherInfo"
data={otherInfoList}
title='规格型号'
column={2}
style={{ marginBottom: '16px' }}
/>
</Space>
}
<BaseInfo title="商品信息" id='goodInfo'>
<BaseInfo.BaseInfoItem label='价格'>{initialValue?.materialsPrice}</BaseInfo.BaseInfoItem>
<BaseInfo.BaseInfoItem label='起订量'>{initialValue?.miniOrder}</BaseInfo.BaseInfoItem>
......
......@@ -18,12 +18,15 @@ import {
import ExamVerify, { SubmitDataTypes } from '@/components/ExamVerify';
import { useIntl } from 'umi';
import { BaseInfo } from '@/components/BaseInfo';
import { getAuth } from '@/utils/auth';
import { RoleEnum } from '../common/constants';
/**
* 详情
*/
const Detail = () => {
const intl = useIntl()
const roleType = getAuth()?.memberRoleType;
const { id } = usePageStatus();
const [visible, setVisible] = useState<boolean>(false);
const { initialValue, record } = useGetInitialValueDetail<GetProductGoodsGetGoodsProcessDetailResponse, GetProductGoodsGetMaterInnerLogListResponse>({
......@@ -40,7 +43,8 @@ const Detail = () => {
contactInfoList,
tableColumn,
recordColumn,
properties
properties,
otherInfoList
} = useGetDetailCommon<GetProductGoodsGetGoodsProcessDetailResponse | null>({ initialValue: initialValue })
const [submitLoading, setSubmitLoading] = useState<boolean>(false)
......@@ -137,7 +141,17 @@ const Detail = () => {
<ImageList imageUrls={initialValue?.goodsPic} />
</Card>
</div>
{roleType === RoleEnum.Purchaser &&
<Space>
<CustomizeColumn
id="otherInfo"
data={otherInfoList}
title='规格型号'
column={2}
style={{ marginBottom: '16px' }}
/>
</Space>
}
<BaseInfo title="商品信息" id='goodInfo'>
<BaseInfo.BaseInfoItem label='价格'>{initialValue?.materialsPrice}</BaseInfo.BaseInfoItem>
<BaseInfo.BaseInfoItem label='起订量'>{initialValue?.miniOrder}</BaseInfo.BaseInfoItem>
......
......@@ -25,7 +25,7 @@ const Detail = () => {
api: getProductGoodsGetGoodsProcessDetail,
logApi: getProductGoodsGetMaterInnerLogList
})
const { anchorHeader, auditProcess, basicInfoList, tableColumn, recordColumn, properties, outputInfoList, unitInfoList, contactInfoList } = useGetDetailCommon<GetProductGoodsGetGoodsResponse | null>({ initialValue: initialValue })
const { anchorHeader, auditProcess, basicInfoList, tableColumn, recordColumn, properties, outputInfoList, unitInfoList, contactInfoList, otherInfoList } = useGetDetailCommon<GetProductGoodsGetGoodsResponse | null>({ initialValue: initialValue })
const urls = useMemo(() => {
......@@ -92,35 +92,44 @@ const Detail = () => {
<ImageList imageUrls={initialValue?.goodsPic} />
</Card>
</div>
{roleType === RoleEnum.Purchaser && (
<div style={{ marginBottom: '16px' }} id="files">
<Card title={intl.formatMessage({ id: 'material.enclosure.productInfo', defaultMessage: '商品信息' })}>
<Row>
<Col span={12}>
最小单位(包):{initialValue?.miniUnit}
</Col>
<Col span={12}>
托盘类型(海关):{initialValue?.trayType}
</Col>
<Col span={12}>
包装类型(海关):{initialValue?.packageType}
</Col>
<Col span={12}>
托盘规格(海关):{initialValue?.traySpec}
</Col>
<Col span={12}>
托规格(托):{initialValue?.palmSpec}
</Col>
<Col span={12}>
柜/车规格(柜/车):{initialValue?.cabinetSpec}
</Col>
<Col span={12}>
最小剩余货架寿命:{initialValue?.miniShelfLife} {initialValue?.sapSledTag}
</Col>
</Row>
</Card>
</div>
)}
{roleType === RoleEnum.Purchaser &&
<CustomizeColumn
id="otherInfo"
data={otherInfoList}
title='规格型号'
column={2}
style={{ marginBottom: '16px' }}
/>
// (
// <div style={{ marginBottom: '16px' }} id="files">
// <Card title={intl.formatMessage({ id: 'material.enclosure.productInfo', defaultMessage: '商品信息' })}>
// <Row>
// <Col span={12}>
// 最小单位(包):{initialValue?.miniUnit}
// </Col>
// <Col span={12}>
// 托盘类型(海关):{initialValue?.trayType}
// </Col>
// <Col span={12}>
// 包装类型(海关):{initialValue?.packageType}
// </Col>
// <Col span={12}>
// 托盘规格(海关):{initialValue?.traySpec}
// </Col>
// <Col span={12}>
// 托规格(托):{initialValue?.palmSpec}
// </Col>
// <Col span={12}>
// 柜/车规格(柜/车):{initialValue?.cabinetSpec}
// </Col>
// <Col span={12}>
// 最小剩余货架寿命:{initialValue?.miniShelfLife} {initialValue?.sapSledTag}
// </Col>
// </Row>
// </Card>
// </div>
// )
}
<div style={{ marginBottom: '16px' }} id="files">
<Card title={intl.formatMessage({ id: 'material.enclosure.productInfo', defaultMessage: '商品信息' })}>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment