Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
J
jinfa-platform
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
黄庭坚
jinfa-platform
Commits
b638693a
Commit
b638693a
authored
Jul 22, 2022
by
吴春梅
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat: 物料管理添加新需求
parent
cf766c73
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
323 additions
and
83 deletions
+323
-83
constants.tsx
src/pages/commodity/material/common/constants.tsx
+4
-0
useGetDetailCommon.tsx
src/pages/commodity/material/common/useGetDetailCommon.tsx
+53
-1
add.tsx
src/pages/commodity/material/materialPendingAdd/add.tsx
+89
-8
add.tsx
...ages/commodity/material/materialPendingAdd/schema/add.tsx
+8
-3
roles.ts
...ges/commodity/material/materialPendingAdd/schema/roles.ts
+66
-33
detail.tsx
.../commodity/material/materialPendingExamChangeI/detail.tsx
+16
-2
detail.tsx
...commodity/material/materialPendingExamChangeII/detail.tsx
+16
-2
detail.tsx
src/pages/commodity/material/materialPendingExamI/detail.tsx
+16
-2
detail.tsx
...pages/commodity/material/materialPendingExamII/detail.tsx
+16
-2
detail.tsx
src/pages/commodity/material/materialQuery/detail.tsx
+39
-30
No files found.
src/pages/commodity/material/common/constants.tsx
View file @
b638693a
...
...
@@ -38,3 +38,7 @@ export enum RoleEnum {
Purchaser
=
2
}
export
const
DELIVERY_TYPE_ENUM
=
[
{
label
:
'配送'
,
value
:
1
},
{
label
:
'自提'
,
value
:
2
},
];
src/pages/commodity/material/common/useGetDetailCommon.tsx
View file @
b638693a
...
...
@@ -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
src/pages/commodity/material/materialPendingAdd/add.tsx
View file @
b638693a
import
React
,
{
useEffect
,
useState
}
from
'react'
;
import
React
,
{
useEffect
,
use
Ref
,
use
State
}
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,
materialsDelivery
Method
,
materialsDelivery
Type
,
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
)
{
...
...
src/pages/commodity/material/materialPendingAdd/schema/add.tsx
View file @
b638693a
...
...
@@ -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
,
}
]
},
materialsDelivery
Method
:
{
materialsDelivery
Type
:
{
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
(),
...
...
src/pages/commodity/material/materialPendingAdd/schema/roles.ts
View file @
b638693a
...
...
@@ -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
},
},
}
},
}
...
...
src/pages/commodity/material/materialPendingExamChangeI/detail.tsx
View file @
b638693a
...
...
@@ -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
>
...
...
src/pages/commodity/material/materialPendingExamChangeII/detail.tsx
View file @
b638693a
...
...
@@ -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
>
...
...
src/pages/commodity/material/materialPendingExamI/detail.tsx
View file @
b638693a
...
...
@@ -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
>
...
...
src/pages/commodity/material/materialPendingExamII/detail.tsx
View file @
b638693a
...
...
@@ -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
>
...
...
src/pages/commodity/material/materialQuery/detail.tsx
View file @
b638693a
...
...
@@ -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
:
'商品信息'
})
}
>
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment