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
shenshaokai
jinfa-platform
Commits
8e2b9501
Commit
8e2b9501
authored
Apr 01, 2022
by
前端-彭佳文
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'v2-0418-xxx' into 'v2-220418'
请购单新曾 See merge request linkseeks-design/pro-platform!113
parents
07056c1a
26470cad
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
343 additions
and
52 deletions
+343
-52
index.tsx
...ges/transaction/purchaseRequisition/billPreview/index.tsx
+3
-1
index.less
...on/purchaseRequisition/components/bilEnclosure/index.less
+15
-0
index.tsx
...ion/purchaseRequisition/components/bilEnclosure/index.tsx
+60
-0
index.less
...on/purchaseRequisition/components/billDelivery/index.less
+77
-0
index.tsx
...ion/purchaseRequisition/components/billDelivery/index.tsx
+79
-0
index.tsx
...urchaseRequisition/components/billDetailSection/index.tsx
+17
-7
index.tsx
...saction/purchaseRequisition/increaseRequisition/index.tsx
+69
-20
index.ts
...n/purchaseRequisition/increaseRequisition/schema/index.ts
+23
-24
No files found.
src/pages/transaction/purchaseRequisition/billPreview/index.tsx
View file @
8e2b9501
...
...
@@ -8,13 +8,15 @@ import BillDetailSection from '../components/billDetailSection';
import
{
useIntl
}
from
'umi'
;
const
OrderPreview
:
React
.
FC
=
()
=>
{
const
{
formContext
}
=
useBillDetail
({
type
:
'requestBill'
})
const
{
formContext
}
=
useBillDetail
({
type
:
'requestBill'
})
const
intl
=
useIntl
()
const
anchorTitleList
=
[
{
title
:
intl
.
formatMessage
({
id
:
'purchaseRequisition.liuzhuanjindu'
,
defaultMessage
:
'流转进度'
}),
id
:
'transferProcess'
,
componentName
:
"TransferProcess"
},
{
title
:
intl
.
formatMessage
({
id
:
'purchaseRequisition.jibenxinxi'
,
defaultMessage
:
'基本信息'
}),
id
:
'baseicInfo'
,
type
:
"basicInfo"
},
{
title
:
'送货/交期信息'
,
id
:
'BillDelivery'
,
type
:
"BillDelivery"
,
componentName
:
"BillDelivery"
},
{
title
:
intl
.
formatMessage
({
id
:
'purchaseRequisition.qinggouwuliao'
,
defaultMessage
:
'请购物料'
}),
id
:
'billMaterial'
,
componentName
:
"BillMaterial"
},
{
title
:
intl
.
formatMessage
({
id
:
'purchaseRequisition.liuzhuanjilu'
,
defaultMessage
:
'流转记录'
}),
id
:
'transferRecord'
,
componentName
:
"TransformRecord"
},
{
title
:
"附件"
,
id
:
'BilEnclosure'
,
componentName
:
"BilEnclosure"
},
]
return
(
...
...
src/pages/transaction/purchaseRequisition/components/bilEnclosure/index.less
0 → 100644
View file @
8e2b9501
.cardWrap {
:global {
.ant-radio-button-wrapper:hover {
color: #606266;
}
.ant-radio-group-solid .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled) {
color: #fff;
background: #6B778C;
border-color: #6B778C;
}
.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled)::before {
background-color: #6B778C;
}
}
}
src/pages/transaction/purchaseRequisition/components/bilEnclosure/index.tsx
0 → 100644
View file @
8e2b9501
import
React
,
{
useContext
,
useEffect
,
useState
}
from
'react'
import
{
Table
,
Radio
}
from
'antd'
import
{
formatTimeString
}
from
'@/utils'
import
MellowCard
from
'@/components/MellowCard'
import
{
TransferEnum
}
from
'../transferProcess'
;
import
style
from
'./index.less'
import
{
BillDetailContext
}
from
'@/pages/transaction/_public/bill/effects/context'
;
import
{
useIntl
}
from
'umi'
;
/**
* 附件
*/
export
interface
BidTransformRecordProps
{
cardTitle
?:
string
;
}
const
BilEnclosure
:
React
.
FC
<
BidTransformRecordProps
>
=
({
cardTitle
})
=>
{
const
{
data
}
=
useContext
(
BillDetailContext
)
const
intl
=
useIntl
()
const
{
attachments
=
[]
}
=
data
console
.
log
(
attachments
)
const
outReocrdCols
:
any
[]
=
[
{
title
:
"文件"
,
dataIndex
:
'name'
,
align
:
'left'
,
key
:
'name'
,
},
{
title
:
"关联物料"
,
dataIndex
:
'goodsName'
,
align
:
'left'
,
key
:
'goodsName'
,
},
]
return
(
<
MellowCard
title=
{
cardTitle
}
style=
{
{
marginTop
:
24
}
}
bordered=
{
false
}
className=
{
style
.
cardWrap
}
>
<
Table
columns=
{
outReocrdCols
}
dataSource=
{
attachments
}
pagination=
{
{
size
:
"small"
}
}
rowKey=
"id"
/>
</
MellowCard
>
)
}
BilEnclosure
.
defaultProps
=
{}
export
default
BilEnclosure
src/pages/transaction/purchaseRequisition/components/billDelivery/index.less
0 → 100644
View file @
8e2b9501
.card-list {
font-size: 12px;
line-height: 20px;
margin-top: 24px;
}
.card-list_title {
font-size: 12px;
color: #909399;
}
.resultFail {
font-size: 16px;
font-weight: 500;
color: #303133;
}
.resultFailSubtitle {
font-size: 12px;
font-weight: 400;
color: #303133;
padding-left: 32px;
}
.thankModal{
:global{
.ant-modal-header {
display: none;
}
.ant-modal-content {
height: 440px;
background: url("/static/imgs/thankLetterBg.png") center center no-repeat;
// background: url('../../../../assets/imgs/thankLetterBg.png') center center no-repeat;
}
.ant-modal-footer {
display: none;
}
}
}
.thankLetter {
// width: 660px;
// height: 440px;
h2 {
text-align: center;
font-size: 24px;
font-weight: 500;
color: #303133;
// height: 36px;
// line-height: 36px;
padding-top: 20px;
}
h4 {
text-align: center;
font-size: 16px;
font-weight: 500;
color: #C0C4CC;
line-height: 16px;
padding: 0 24px;
}
p {
font-size: 14px;
font-weight: 400;
color: #303133;
line-height: 24px;
padding: 0 24px;
}
.name {
font-weight: 500;
text-align: left;
padding: 0 24px;
}
.company {
text-align: right;
padding: 0 24px;
margin-top: 100px;
}
.time {
text-align: right;
padding: 0 24px;
}
}
src/pages/transaction/purchaseRequisition/components/billDelivery/index.tsx
0 → 100644
View file @
8e2b9501
import
React
,
{
useContext
}
from
'react'
import
{
Row
,
Col
}
from
'antd'
import
MellowCard
from
'@/components/MellowCard'
import
style
from
'./index.less'
import
{
BillDetailContext
}
from
'@/pages/transaction/_public/bill/effects/context'
;
import
{
useIntl
}
from
'umi'
;
/**
* 描述信息列表
*/
export
interface
BasicInfoProps
{
/**
* title标题
*/
cardTitle
?:
string
;
/** 显示信息类型
* 'BillDelivery' 送货时间
*/
type
?:
'BillDelivery'
;
styles
?:
React
.
CSSProperties
,
}
const
BillDelivery
:
React
.
FC
<
BasicInfoProps
>
=
({
cardTitle
,
type
,
styles
})
=>
{
const
bidDetailContext
=
useContext
(
BillDetailContext
)
const
{
data
:
_data
}
=
bidDetailContext
console
.
log
(
_data
,
'typetypetypetype'
)
const
intl
=
useIntl
()
// 送货时间
const
basicColumnList
=
[
{
span
:
8
,
fieldList
:
[
{
title
:
"预交日期:"
,
name
:
'deliverTime'
},
{
title
:
"送货地址:"
,
name
:
'deliveryAddressId'
},
]
},
{
span
:
8
,
fieldList
:
[
{
title
:
"配送方式:"
,
name
:
'deliveryMethodName'
},
]
}
]
/** 类型数据映射 */
const
Type_Data_Map
=
{
'BillDelivery'
:
basicColumnList
,
}
const
RenderBasicInfoColumns
=
({
infoList
=
[],
dataSource
})
=>
<
Row
>
{
infoList
.
map
(({
span
,
fieldList
=
[]
},
index
)
=>
(<
Col
key=
{
index
}
span=
{
span
}
>
{
fieldList
.
length
?
fieldList
.
map
((
_v
,
_i
)
=>
<
Row
key=
{
_v
.
name
}
className=
{
style
[
'card-list'
]
}
style=
{
_v
.
rowStyle
}
>
{
_v
?.
noTitle
?
null
:
<
Col
span=
{
6
}
className=
{
style
[
'card-list_title'
]
}
>
{
_v
.
title
}
</
Col
>
}
<
Col
><
p
style=
{
{
paddingRight
:
20
}
}
>
{
_v
.
render
?
_v
.
render
(
dataSource
[
_v
.
name
],
dataSource
)
:
dataSource
[
_v
.
name
]
}
</
p
></
Col
>
</
Row
>)
:
null
}
</
Col
>))
}
</
Row
>
return
(
<
MellowCard
title=
{
cardTitle
}
style=
{
{
marginTop
:
24
,
...
styles
}
}
bordered=
{
false
}
fullHeight
>
<
RenderBasicInfoColumns
infoList=
{
Type_Data_Map
[
type
]
}
dataSource=
{
_data
}
/>
</
MellowCard
>)
}
BillDelivery
.
defaultProps
=
{}
export
default
BillDelivery
src/pages/transaction/purchaseRequisition/components/billDetailSection/index.tsx
View file @
8e2b9501
...
...
@@ -4,7 +4,9 @@ import DescriptionsInfo from '../descriptionsInfo'
import
BillMaterial
from
'../billMaterial'
import
TransferProcess
from
'../transferProcess'
import
TransformRecord
from
'../transferRecord'
import
BillDelivery
from
'../billDelivery'
import
AuditProcess
from
'@/components/AuditProcess'
import
BilEnclosure
from
'../bilEnclosure'
export
interface
anchorItemProps
{
title
:
string
,
...
...
@@ -19,7 +21,7 @@ export interface BillDetailSectionProps {
anchorList
?:
anchorItemProps
[],
}
const
BillDetailSection
:
React
.
FC
<
BillDetailSectionProps
>
=
({
const
BillDetailSection
:
React
.
FC
<
BillDetailSectionProps
>
=
({
formContext
,
anchorList
=
[],
})
=>
{
...
...
@@ -30,6 +32,8 @@ const BillDetailSection:React.FC<BillDetailSectionProps> = ({
"TransferProcess"
:
TransferProcess
,
// 信息 基本信息组件
"DescriptionsInfo"
:
DescriptionsInfo
,
// 送货时间
'BillDelivery'
:
BillDelivery
,
// 请购物料组件
"BillMaterial"
:
BillMaterial
,
// 流转记录组件
...
...
@@ -37,9 +41,9 @@ const BillDetailSection:React.FC<BillDetailSectionProps> = ({
}
const
RenderDetailSection
=
({
componentList
})
=>
{
if
(
componentList
&&
componentList
.
length
>
0
)
{
if
(
componentList
&&
componentList
.
length
>
0
)
{
return
componentList
.
map
((
item
,
index
)
=>
(
<
div
key=
{
index
}
id=
{
item
[
'id'
]
}
>
{
RenderCertainContent
(
item
)
}
</
div
>
<
div
key=
{
index
}
id=
{
item
[
'id'
]
}
>
{
RenderCertainContent
(
item
)
}
</
div
>
))
}
else
{
return
null
...
...
@@ -48,7 +52,7 @@ const BillDetailSection:React.FC<BillDetailSectionProps> = ({
const
RenderCertainContent
=
({
title
,
type
=
null
,
componentName
=
null
,
styles
})
=>
{
let
RcDom
:
any
=
null
;
switch
(
componentName
)
{
switch
(
componentName
)
{
case
'TransferProcess'
:
RcDom
=
(<
AuditProcess
customTitleKey=
'stepName'
...
...
@@ -80,6 +84,12 @@ const BillDetailSection:React.FC<BillDetailSectionProps> = ({
case
"TransformRecord"
:
RcDom
=
(<
TransformRecord
cardTitle=
{
title
}
/>)
break
;
case
"BillDelivery"
:
RcDom
=
(<
BillDelivery
cardTitle=
{
title
}
type=
{
type
}
/>)
break
;
case
"BilEnclosure"
:
RcDom
=
(<
BilEnclosure
cardTitle=
{
title
}
/>)
break
;
default
:
RcDom
=
(<
DescriptionsInfo
cardTitle=
{
title
}
type=
{
type
}
styles=
{
styles
}
/>)
}
...
...
@@ -88,9 +98,9 @@ const BillDetailSection:React.FC<BillDetailSectionProps> = ({
return
(
formContext
.
data
&&
<
div
className=
{
[
style
.
anchorContentWrap
,
"anchorContent"
].
join
(
' '
)
}
>
<
RenderDetailSection
componentList=
{
anchorList
}
/>
</
div
>
<
div
className=
{
[
style
.
anchorContentWrap
,
"anchorContent"
].
join
(
' '
)
}
>
<
RenderDetailSection
componentList=
{
anchorList
}
/>
</
div
>
)
}
...
...
src/pages/transaction/purchaseRequisition/increaseRequisition/index.tsx
View file @
8e2b9501
...
...
@@ -119,6 +119,9 @@ const IncreaseRequisition: React.FC<{}> = () => {
const
_params
=
procurementProcessField
(
params
)
console
.
log
(
_params
)
if
(
_params
.
deliveryAddressId
)
{
_params
.
deliveryAddressId
=
_params
.
deliveryAddressId
.
id
;
}
if
(
id
)
{
fnResult
=
await
postPurchaseRequisitionUpdate
({
...
_params
,
id
})
}
else
{
...
...
@@ -163,9 +166,9 @@ const IncreaseRequisition: React.FC<{}> = () => {
formContext
,
}
const
[
dataSource
,
setdataSource
]
=
useState
<
any
>
([]);
// 上传附件表格
const
enclosureColumns
=
[
const
[
enclosureColumns
,
setenclosureColumns
]
=
useState
<
any
>
(
[
{
title
:
'文件'
,
key
:
'name'
,
...
...
@@ -175,35 +178,82 @@ const IncreaseRequisition: React.FC<{}> = () => {
title
:
'关联物料'
,
key
:
'goodsName'
,
dataIndex
:
'goodsName'
,
render
:
(
text
,
record
)
=>
{
return
(
<
Select
defaultValue=
"全部"
style=
{
{
width
:
230
}
}
>
<
Option
value=
"0"
>
全部
</
Option
>
<
Option
value=
"1"
>
图片
</
Option
>
<
Option
value=
"2"
>
视频
</
Option
>
<
Option
value=
"3"
>
文件
</
Option
>
</
Select
>
)
}
},
{
title
:
'操作'
,
}
]
]);
// 删除关联物流
const
del
=
(
record
)
=>
{
const
newData
=
[...
addSchemaAction
.
getFieldValue
(
'attachments'
)]
// 删除formvalue
const
colIndex
=
newData
.
findIndex
(
v
=>
v
.
id
===
record
.
id
)
newData
.
splice
(
colIndex
,
1
)
addSchemaAction
.
setFieldValue
(
'attachments'
,
newData
)
}
const
handleFirstChange
=
(
value
:
number
,
index
:
number
)
=>
{
const
newData
=
[...
addSchemaAction
.
getFieldValue
(
'attachments'
)]
newData
[
index
].
goodsName
=
value
;
addSchemaAction
.
setFieldValue
(
'attachments'
,
newData
)
console
.
log
(
value
,
index
);
}
// 上传
const
handleFrontUrl
=
async
({
fileList
})
=>
{
if
(
fileList
[
0
].
response
)
{
if
(
fileList
[
0
].
response
.
code
===
1000
)
{
const
data
=
[...
dataSource
];
d
ata
.
push
({
const
newData
=
[...
addSchemaAction
.
getFieldValue
(
'attachments'
)]
newD
ata
.
push
({
name
:
fileList
[
0
].
name
,
url
:
fileList
[
0
].
url
,
index
:
dataSource
.
length
+
1
url
:
fileList
[
0
].
response
.
data
,
index
:
newData
.
length
+
1
})
addSchemaAction
.
setFieldValue
(
'attachments'
,
newData
)
const
list
=
addSchemaAction
.
getFieldValue
(
'products'
);
const
arr
=
list
.
map
((
item
:
any
)
=>
{
return
{
label
:
item
.
name
,
value
:
item
.
id
}
})
setdataSource
(
data
);
addSchemaAction
.
setFieldValue
(
'productsList'
,
data
)
const
Colist
=
[
{
title
:
'文件'
,
key
:
'name'
,
dataIndex
:
'name'
,
},
{
title
:
'关联物料'
,
key
:
'goodsName'
,
dataIndex
:
'goodsName'
,
render
:
(
text
,
record
,
index
)
=>
{
return
(
<
Select
style=
{
{
width
:
230
}
}
onChange=
{
(
value
)
=>
handleFirstChange
(
value
,
index
)
}
>
{
arr
.
map
((
item
:
any
)
=>
{
return
(
<
Option
value=
{
item
.
label
}
key=
{
item
.
value
}
>
{
item
.
label
}
</
Option
>
)
})
}
</
Select
>
)
}
},
{
title
:
'操作'
,
render
:
(
text
,
record
)
=>
{
return
(
<
Button
type=
'link'
onClick=
{
()
=>
del
(
record
)
}
>
{
intl
.
formatMessage
({
id
:
'purchaseRequisition.shanchu'
,
defaultMessage
:
'删除'
})
}
</
Button
>
)
}
}
]
console
.
log
(
Colist
)
setenclosureColumns
([...
Colist
])
}
}
}
const
fetchOptions
=
(
service
)
=>
{
console
.
log
(
service
,
'service'
)
return
async
function
()
{
...
...
@@ -233,7 +283,6 @@ const IncreaseRequisition: React.FC<{}> = () => {
beforeUpload=
{
beforeDocUpload
}
onChange=
{
handleFrontUrl
}
accept=
'.doc,.docx,.pdf'
maxCount=
{
1
}
style=
{
{
width
:
'100%'
}
}
>
<
Button
style=
{
{
width
:
'100%'
}
}
>
...
...
src/pages/transaction/purchaseRequisition/increaseRequisition/schema/index.ts
View file @
8e2b9501
...
...
@@ -153,7 +153,8 @@ const delivery: ISchema = {
columns
:
2
,
},
properties
:
{
deliverTime
:
{
// deliverTime
advanceDeliveryDate
:
{
type
:
'string'
,
"x-component"
:
'date'
,
title
:
getIntl
().
formatMessage
({
id
:
'purchaseRequisition.yujiaoriqi'
,
defaultMessage
:
'预交日期'
}),
...
...
@@ -172,16 +173,16 @@ const delivery: ISchema = {
type
:
'string'
,
title
:
"配送方式"
,
enum
:
[],
"x-rules"
:
[
{
required
:
true
,
message
:
getIntl
().
formatMessage
({
id
:
'purchaseRequisition.qingshuruqinggou'
,
defaultMessage
:
'请输入配送方式'
})
},
{
limitByte
:
true
,
maxByte
:
100
}
],
//
"x-rules": [
//
{
//
required: true,
//
message: getIntl().formatMessage({ id: 'purchaseRequisition.qingshuruqinggou', defaultMessage: '请输入配送方式' })
//
},
//
{
//
limitByte: true,
//
maxByte: 100
//
}
//
],
"x-mega-props"
:
{
span
:
1
}
...
...
@@ -191,7 +192,6 @@ const delivery: ISchema = {
visible
:
false
,
type
:
'string'
,
title
:
'送货地址'
,
required
:
true
,
'x-component'
:
'CustomAddressSelect'
,
'x-component-props'
:
{
isDefaultAddress
:
true
,
...
...
@@ -204,16 +204,16 @@ const delivery: ISchema = {
// visible:false,
type
:
'string'
,
title
:
"送货地址"
,
"x-rules"
:
[
{
required
:
true
,
message
:
"请输入送货地址"
},
{
limitByte
:
true
,
maxByte
:
100
}
],
//
"x-rules": [
//
{
//
required: true,
//
message:"请输入送货地址"
//
},
//
{
//
limitByte: true,
//
maxByte: 100
//
}
//
],
"x-mega-props"
:
{
span
:
1
}
...
...
@@ -262,10 +262,9 @@ const enclosure: ISchema = {
id
:
'enclosure'
,
},
properties
:
{
productsList
:
{
attachments
:
{
type
:
'array'
,
"x-component"
:
'MultTable'
,
required
:
true
,
"x-component-props"
:
{
rowKey
:
'id'
,
columns
:
"{{enclosureColumns}}"
,
...
...
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