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
d28ff0b5
Commit
d28ff0b5
authored
Mar 25, 2021
by
前端-黄佳鑫
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
采购询价搜索修改
parent
cd175d3d
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
28 changed files
with
761 additions
and
102 deletions
+761
-102
confirmOffer.ts
config/routes/procurementRoute/confirmOffer.ts
+8
-0
index.tsx
src/components/EyePreview/index.tsx
+3
-4
global.less
src/global/styles/global.less
+6
-0
index.tsx
...saction/purchaseAbility/components/detailDrawer/index.tsx
+19
-2
index.tsx
...es/transaction/purchaseAbility/components/table/index.tsx
+8
-0
index.tsx
...on/purchaseAbility/confirmOffer/auditResultsOne/index.tsx
+19
-4
index.tsx
...on/purchaseAbility/confirmOffer/auditResultsTwo/index.tsx
+19
-4
index.tsx
...ion/purchaseAbility/confirmOffer/confirmResults/index.tsx
+19
-4
index.less
...ransaction/purchaseAbility/confirmOffer/detail/index.less
+76
-0
index.tsx
...transaction/purchaseAbility/confirmOffer/detail/index.tsx
+0
-0
index.tsx
...ction/purchaseAbility/confirmOffer/offerInquire/index.tsx
+20
-4
index.tsx
...on/purchaseAbility/confirmOffer/toComparePrices/index.tsx
+25
-5
columns.tsx
src/pages/transaction/purchaseAbility/constants/columns.tsx
+98
-0
index.ts
src/pages/transaction/purchaseAbility/constants/index.ts
+20
-5
index.tsx
...pages/transaction/purchaseAbility/offter/detail/index.tsx
+1
-1
add.tsx
...action/purchaseAbility/purchaseInquiry/addInquiry/add.tsx
+2
-1
basic.tsx
...seAbility/purchaseInquiry/addInquiry/components/basic.tsx
+8
-12
demand.tsx
...eAbility/purchaseInquiry/addInquiry/components/demand.tsx
+40
-5
material.tsx
...bility/purchaseInquiry/addInquiry/components/material.tsx
+3
-2
index.tsx
...tion/purchaseAbility/purchaseInquiry/addInquiry/index.tsx
+11
-7
drawerWrite.tsx
...eAbility/purchaseInquiry/addInquiry/modal/drawerWrite.tsx
+36
-1
import.tsx
...rchaseAbility/purchaseInquiry/addInquiry/modal/import.tsx
+3
-1
index.tsx
...purchaseAbility/purchaseInquiry/auditInquiryOne/index.tsx
+4
-6
index.tsx
...purchaseAbility/purchaseInquiry/auditInquiryTwo/index.tsx
+4
-4
index.tsx
...nsaction/purchaseAbility/purchaseInquiry/detail/index.tsx
+125
-18
index.tsx
...saction/purchaseAbility/purchaseInquiry/inquiry/index.tsx
+4
-6
index.tsx
...n/purchaseAbility/purchaseInquiry/submitInquiry/index.tsx
+4
-6
index.ts
src/pages/transaction/purchaseAbility/schema/index.ts
+176
-0
No files found.
config/routes/procurementRoute/confirmOffer.ts
View file @
d28ff0b5
...
...
@@ -23,6 +23,14 @@ export const confirmOfferRoute = [
component
:
'@/pages/transaction/purchaseAbility/confirmOffer/toComparePrices'
},
{
/** 比价 */
path
:
'/memberCenter/procurementAbility/confirmOffer/detail'
,
name
:
'待比价'
,
component
:
'@/pages/transaction/purchaseAbility/confirmOffer/detail'
,
hideInMenu
:
true
,
noMargin
:
true
,
},
{
/** 待审核授标结果(一级) */
path
:
'/memberCenter/procurementAbility/confirmOffer/auditResultsOne'
,
name
:
'待审核授标结果(一级)'
,
...
...
src/components/EyePreview/index.tsx
View file @
d28ff0b5
...
...
@@ -15,16 +15,16 @@ const EyePreview:React.FC<EyePreviewProps> = (props) => {
<
Link
to=
{
props
.
url
||
''
}
>
{
props
.
children
}
<
EyeOutlined
/>
</
Link
>
:
:
<
Button
onClick=
{
props
.
handleClick
}
type=
'link'
>
{
props
.
children
}
<
EyeOutlined
/>
</
Button
>
)
}
EyePreview
.
defaultProps
=
{
type
:
'link'
}
export
default
EyePreview
\ No newline at end of file
export
default
EyePreview
src/global/styles/global.less
View file @
d28ff0b5
...
...
@@ -375,3 +375,9 @@ a {
// width: 100%;
// z-index: 8;
// }
.rate_style {
.ant-rate-star {
margin-right: 0px !important;
}
}
src/pages/transaction/purchaseAbility/components/detailDrawer/index.tsx
View file @
d28ff0b5
import
React
from
'react'
;
import
{
Drawer
,
Anchor
,
Row
,
Col
,
Divider
}
from
'antd'
;
import
{
Drawer
,
Anchor
,
Row
,
Col
,
Divider
,
Typography
}
from
'antd'
;
import
style
from
'./index.less'
;
import
{
LinkOutlined
}
from
'@ant-design/icons'
;
const
{
Link
}
=
Anchor
;
...
...
@@ -49,7 +50,23 @@ const DetailDrawer: React.FC<IProps> = (props: any) => {
{
item
.
linkContent
.
map
((
items
,
keys
)
=>
(
<
div
key=
{
`content${keys + 1}`
}
className=
{
style
.
list
}
>
<
h5
className=
{
style
.
listLable
}
style=
{
{
flex
:
'0 0 100px'
}
}
>
{
items
.
label
}
:
</
h5
>
<
h5
className=
{
style
.
listContent
}
>
{
items
.
content
}
</
h5
>
{
!
items
.
file
&&
<
h5
className=
{
style
.
listContent
}
>
{
items
.
content
}
</
h5
>
}
{
items
.
file
&&
(
<
div
className=
{
style
.
upload_data
}
>
{
items
.
content
.
length
>
0
&&
items
.
content
.
map
((
v
,
index
)
=>
(
<
div
key=
{
index
}
className=
{
style
.
upload_item
}
>
<
div
className=
{
style
.
upload_left
}
>
<
Typography
.
Link
href=
{
v
.
url
}
target=
"_blank"
>
<
LinkOutlined
/>
{
v
.
name
}
</
Typography
.
Link
>
</
div
>
</
div
>
))
}
</
div
>
)
}
</
div
>
))
}
</
div
>
...
...
src/pages/transaction/purchaseAbility/components/table/index.tsx
View file @
d28ff0b5
...
...
@@ -11,6 +11,8 @@ import { searchSelectGetSelectCategoryOptionEffect } from '@/pages/transaction/e
import
{
PurchaseDemandSchema
,
PurchaseDemandPublicSchema
,
INQUIRYDEMANDORDER_SCHEMA
,
INQUIRYWAITORDER_SCHEMA
,
CONFIRMOFFERSERAH_SCHEMA
,
CONFIRMOFFERSUBMITAPRICE_SCHEMA
,
CONFIRMOFFERAUDIT_SCHEMA
,
...
...
@@ -23,6 +25,8 @@ interface Iprops {
schemaType
?:
'PurchaseDemand'
|
'PurchaseDemandPublic'
|
'INQUIRYDEMANDORDER_SCHEMA'
|
'INQUIRYWAITORDER_SCHEMA'
|
'CONFIRMOFFERSERAH_SCHEMA'
|
'CONFIRMOFFERSUBMITAPRICE_SCHEMA'
|
'CONFIRMOFFERAUDIT_SCHEMA'
,
...
...
@@ -51,6 +55,10 @@ const Table: React.FC<Iprops> = (props:any) => {
return
PurchaseDemandSchema
case
'PurchaseDemandPublic'
:
return
PurchaseDemandPublicSchema
case
'INQUIRYDEMANDORDER_SCHEMA'
:
return
INQUIRYDEMANDORDER_SCHEMA
;
case
'INQUIRYWAITORDER_SCHEMA'
:
return
INQUIRYWAITORDER_SCHEMA
;
case
'CONFIRMOFFERSERAH_SCHEMA'
:
return
CONFIRMOFFERSERAH_SCHEMA
;
case
'CONFIRMOFFERSUBMITAPRICE_SCHEMA'
:
...
...
src/pages/transaction/purchaseAbility/confirmOffer/auditResultsOne/index.tsx
View file @
d28ff0b5
...
...
@@ -4,7 +4,7 @@ import { ColumnType } from 'antd/lib/table/interface';
import
EyePreview
from
'@/components/EyePreview'
;
import
moment
from
'moment'
;
import
{
PublicApi
}
from
'@/services/api'
;
import
{
Row
,
Col
,
Button
,
Badge
,
Tag
,
Space
,
Typography
}
from
'antd'
;
import
{
Row
,
Col
,
Button
,
Tag
,
Space
,
Typography
,
Rate
}
from
'antd'
;
import
{
OFFTER_EXTERNALSTATE
,
OFFTER_EXTERNALSTATE_COLOR
,
...
...
@@ -25,8 +25,7 @@ const AuditResultsOne = () => {
dataIndex
:
'purchaseInquiryNo'
,
render
:
(
text
:
any
,
record
:
any
)
=>
(
<
Space
direction=
'vertical'
>
<
EyePreview
url=
{
`/memberCenter/procurementAbility/offter/inquiry/preview?id=${record.id}&number=${record.purchaseInquiryNo}`
}
>
{
text
}
</
EyePreview
>
<
EyePreview
>
{
text
}
</
EyePreview
>
<
Text
type=
'secondary'
>
{
record
.
details
}
</
Text
>
</
Space
>
)
...
...
@@ -49,7 +48,23 @@ const AuditResultsOne = () => {
title
:
'报价轮次'
,
key
:
'turn'
,
dataIndex
:
'turn'
,
render
:
(
text
:
any
,
record
:
any
)
=>
<
Text
strong
>
第
{
CHNUM_TYPE
[
text
]
}
轮
</
Text
>
render
:
(
text
:
any
,
record
:
any
)
=>
(
<>
<
Rate
count=
{
3
}
character=
'▌'
disabled
className=
'rate_style'
style=
{
{
fontSize
:
'12px'
,
color
:
'#00B37A'
,
}
}
value=
{
text
}
allowHalf
/>
<
Text
>
第
{
CHNUM_TYPE
[
text
]
}
轮
</
Text
>
</>
)
},
{
title
:
'有效报价数'
,
key
:
'count'
,
...
...
src/pages/transaction/purchaseAbility/confirmOffer/auditResultsTwo/index.tsx
View file @
d28ff0b5
...
...
@@ -4,7 +4,7 @@ import { ColumnType } from 'antd/lib/table/interface';
import
EyePreview
from
'@/components/EyePreview'
;
import
moment
from
'moment'
;
import
{
PublicApi
}
from
'@/services/api'
;
import
{
Row
,
Col
,
Button
,
Badge
,
Tag
,
Space
,
Typography
}
from
'antd'
;
import
{
Row
,
Col
,
Button
,
Tag
,
Space
,
Typography
,
Rate
}
from
'antd'
;
import
{
OFFTER_EXTERNALSTATE
,
OFFTER_EXTERNALSTATE_COLOR
,
...
...
@@ -25,8 +25,7 @@ const AuditResultsTwo = () => {
dataIndex
:
'purchaseInquiryNo'
,
render
:
(
text
:
any
,
record
:
any
)
=>
(
<
Space
direction=
'vertical'
>
<
EyePreview
url=
{
`/memberCenter/procurementAbility/offter/inquiry/preview?id=${record.id}&number=${record.purchaseInquiryNo}`
}
>
{
text
}
</
EyePreview
>
<
EyePreview
>
{
text
}
</
EyePreview
>
<
Text
type=
'secondary'
>
{
record
.
details
}
</
Text
>
</
Space
>
)
...
...
@@ -49,7 +48,23 @@ const AuditResultsTwo = () => {
title
:
'报价轮次'
,
key
:
'turn'
,
dataIndex
:
'turn'
,
render
:
(
text
:
any
,
record
:
any
)
=>
<
Text
strong
>
第
{
CHNUM_TYPE
[
text
]
}
轮
</
Text
>
render
:
(
text
:
any
,
record
:
any
)
=>
(
<>
<
Rate
count=
{
3
}
character=
'▌'
disabled
className=
'rate_style'
style=
{
{
fontSize
:
'12px'
,
color
:
'#00B37A'
,
}
}
value=
{
text
}
allowHalf
/>
<
Text
>
第
{
CHNUM_TYPE
[
text
]
}
轮
</
Text
>
</>
)
},
{
title
:
'有效报价数'
,
key
:
'count'
,
...
...
src/pages/transaction/purchaseAbility/confirmOffer/confirmResults/index.tsx
View file @
d28ff0b5
import
React
from
'react'
;
import
Table
from
'../../components/table'
;
import
{
history
}
from
'umi'
;
import
{
Button
,
Space
,
Typography
,
Tag
}
from
'antd'
;
import
{
Button
,
Space
,
Typography
,
Tag
,
Rate
}
from
'antd'
;
import
{
ColumnType
}
from
'antd/lib/table/interface'
;
import
EyePreview
from
'@/components/EyePreview'
;
import
moment
from
'moment'
;
...
...
@@ -26,8 +26,7 @@ const ConfirmResults = () => {
dataIndex
:
'purchaseInquiryNo'
,
render
:
(
text
:
any
,
record
:
any
)
=>
(
<
Space
direction=
'vertical'
>
<
EyePreview
url=
{
`/memberCenter/procurementAbility/offter/inquiry/preview?id=${record.id}&number=${record.purchaseInquiryNo}`
}
>
{
text
}
</
EyePreview
>
<
EyePreview
>
{
text
}
</
EyePreview
>
<
Text
type=
'secondary'
>
{
record
.
details
}
</
Text
>
</
Space
>
)
...
...
@@ -50,7 +49,23 @@ const ConfirmResults = () => {
title
:
'报价轮次'
,
key
:
'turn'
,
dataIndex
:
'turn'
,
render
:
(
text
:
any
,
record
:
any
)
=>
<
Text
strong
>
第
{
CHNUM_TYPE
[
text
]
}
轮
</
Text
>
render
:
(
text
:
any
,
record
:
any
)
=>
(
<>
<
Rate
count=
{
3
}
character=
'▌'
disabled
className=
'rate_style'
style=
{
{
fontSize
:
'12px'
,
color
:
'#00B37A'
,
}
}
value=
{
text
}
allowHalf
/>
<
Text
>
第
{
CHNUM_TYPE
[
text
]
}
轮
</
Text
>
</>
)
},
{
title
:
'有效报价数'
,
key
:
'count'
,
...
...
src/pages/transaction/purchaseAbility/confirmOffer/detail/index.less
0 → 100644
View file @
d28ff0b5
.anchorWrap {
:global {
.ant-anchor {
display: flex;
.ant-anchor-ink {
display: none;
}
.ant-anchor-link {
padding: 14px 0 !important;
margin: 0 16px;
.ant-anchor-link-title {
font-size: 14px;
color: #909399;
}
}
.ant-anchor-link-active {
position: relative;
border-bottom: 2px solid #00B37A;
box-sizing: border-box;
.ant-anchor-link-title {
font-weight: 500;
color: #303133;
}
}
}
}
.titleBox {
padding: 8px 16px;
}
.anchorBox {
display: flex;
padding: 0 16px;
}
}
/** 卡片样式 */
.card {
margin: 24px;
:global {
.ant-card {
margin-bottom: 24px;
.ant-card-head {
> .ant-card-head-wrapper {
padding: 12px 0;
}
}
.ant-card-extra {
padding: 0 0;
.ant-radio-button-wrapper {
height: 24px;
line-height: 23px;
}
.ant-radio-button-wrapper:hover {
color: #606266;
}
.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled) {
color: #fff;
background: #6B778C;
border-color: #6B778C;
}
}
}
.god-table-control {
margin-bottom: 0;
}
}
.list {
display: flex;
h5 {
margin-bottom: 2em;
}
.listLable {
flex: 0 0 25%;
color: #909399;
}
}
}
src/pages/transaction/purchaseAbility/confirmOffer/detail/index.tsx
0 → 100644
View file @
d28ff0b5
This diff is collapsed.
Click to expand it.
src/pages/transaction/purchaseAbility/confirmOffer/offerInquire/index.tsx
View file @
d28ff0b5
import
React
,
{
useRef
,
useState
}
from
'react'
;
import
Table
from
'../../components/table'
;
import
{
history
}
from
'umi'
;
import
{
Button
,
Typography
,
Tag
}
from
'antd'
;
import
{
Button
,
Typography
,
Tag
,
Rate
}
from
'antd'
;
import
{
ColumnType
}
from
'antd/lib/table/interface'
;
import
EyePreview
from
'@/components/EyePreview'
;
import
moment
from
'moment'
;
...
...
@@ -18,6 +18,7 @@ import ModalOperate from '../../components/modalOperate';
const
{
Text
}
=
Typography
const
OfferInquire
=
()
=>
{
const
ref
=
useRef
<
any
>
({});
const
[
id
,
setId
]
=
useState
<
number
>
();
...
...
@@ -30,8 +31,7 @@ const OfferInquire = () => {
key
:
'purchaseInquiryNo'
,
dataIndex
:
'purchaseInquiryNo'
,
render
:
(
text
:
any
,
record
:
any
)
=>
(
<
EyePreview
url=
{
`/memberCenter/procurementAbility/offter/inquiry/preview?id=${record.id}&number=${record.purchaseInquiryNo}`
}
>
{
text
}
</
EyePreview
>
<
EyePreview
>
{
text
}
</
EyePreview
>
)
},
{
title
:
'需求摘要'
,
...
...
@@ -56,7 +56,23 @@ const OfferInquire = () => {
title
:
'报价轮次'
,
key
:
'turn'
,
dataIndex
:
'turn'
,
render
:
(
text
:
any
,
record
:
any
)
=>
<
Text
strong
>
第
{
CHNUM_TYPE
[
text
]
}
轮
</
Text
>
render
:
(
text
:
any
,
record
:
any
)
=>
(
<>
<
Rate
count=
{
3
}
character=
'▌'
disabled
className=
'rate_style'
style=
{
{
fontSize
:
'12px'
,
color
:
'#00B37A'
,
}
}
value=
{
text
}
allowHalf
/>
<
Text
>
第
{
CHNUM_TYPE
[
text
]
}
轮
</
Text
>
</>
)
},
{
title
:
'有效报价数'
,
key
:
'count'
,
...
...
src/pages/transaction/purchaseAbility/confirmOffer/toComparePrices/index.tsx
View file @
d28ff0b5
import
React
from
'react'
;
import
Table
from
'../../components/table'
;
import
{
history
}
from
'umi'
;
import
{
Button
,
Space
,
Typography
,
Tag
}
from
'antd'
;
import
{
Button
,
Space
,
Typography
,
Tag
,
Rate
}
from
'antd'
;
import
{
ColumnType
}
from
'antd/lib/table/interface'
;
import
EyePreview
from
'@/components/EyePreview'
;
import
moment
from
'moment'
;
...
...
@@ -26,8 +26,7 @@ const ToComparePrices = () => {
dataIndex
:
'purchaseInquiryNo'
,
render
:
(
text
:
any
,
record
:
any
)
=>
(
<
Space
direction=
'vertical'
>
<
EyePreview
url=
{
`/memberCenter/procurementAbility/offter/inquiry/preview?id=${record.id}&number=${record.purchaseInquiryNo}`
}
>
{
text
}
</
EyePreview
>
<
EyePreview
>
{
text
}
</
EyePreview
>
<
Text
type=
'secondary'
>
{
record
.
details
}
</
Text
>
</
Space
>
)
...
...
@@ -50,7 +49,23 @@ const ToComparePrices = () => {
title
:
'报价轮次'
,
key
:
'turn'
,
dataIndex
:
'turn'
,
render
:
(
text
:
any
,
record
:
any
)
=>
<
Text
strong
>
第
{
CHNUM_TYPE
[
text
]
}
轮
</
Text
>
render
:
(
text
:
any
,
record
:
any
)
=>
(
<>
<
Rate
count=
{
3
}
character=
'▌'
disabled
className=
'rate_style'
style=
{
{
fontSize
:
'12px'
,
color
:
'#00B37A'
,
}
}
value=
{
text
}
allowHalf
/>
<
Text
>
第
{
CHNUM_TYPE
[
text
]
}
轮
</
Text
>
</>
)
},
{
title
:
'有效报价数'
,
key
:
'count'
,
...
...
@@ -71,7 +86,12 @@ const ToComparePrices = () => {
dataIndex
:
'operate'
,
render
:
(
text
:
any
,
record
:
any
)
=>
<>
<
Button
type=
'link'
>
比价
</
Button
>
<
Button
type=
'link'
onClick=
{
()
=>
history
.
push
(
`/memberCenter/procurementAbility/confirmOffer/detail?id=${record.id}&turn=${record.turn}`
)
}
>
比价
</
Button
>
<
Button
type=
'link'
>
修改授标结果
</
Button
>
</>
...
...
src/pages/transaction/purchaseAbility/constants/columns.tsx
0 → 100644
View file @
d28ff0b5
import
React
from
'react'
;
import
{
ColumnType
}
from
'antd/lib/table/interface'
;
import
{
Typography
,
Tag
}
from
'antd'
;
import
moment
from
'moment'
;
import
{
OFFTER_EXTERNALSTATE
,
OFFTER_EXTERNALSTATE_COLOR
,
OFFTER_INTERNALSTATE
,
OFFTER_INTERNALSTATE_COLOR
,
}
from
'../constants'
;
const
format
=
(
text
)
=>
{
return
<>
{
moment
(
text
).
format
(
"YYYY-MM-DD HH:mm"
)
}
</>
}
const
{
Text
}
=
Typography
;
/** 外部流转记录 */
export
const
EXTERNALLOGS
:
ColumnType
<
any
>
[]
=
[
{
title
:
'流转顺序号'
,
key
:
'index'
,
dataIndex
:
'index'
,
render
:
(
_text
:
any
,
_record
:
any
,
index
:
number
)
=>
<
Text
>
{
index
+
1
}
</
Text
>
},
{
title
:
'操作角色'
,
key
:
'roleName'
,
dataIndex
:
'roleName'
,
},
{
title
:
'状态'
,
key
:
'state'
,
dataIndex
:
'state'
,
render
:
(
_text
:
any
,
_record
:
any
)
=>
<
Tag
color=
{
OFFTER_EXTERNALSTATE_COLOR
[
_text
]
}
>
{
OFFTER_EXTERNALSTATE
[
_text
]
}
</
Tag
>
},
{
title
:
'操作'
,
key
:
'operation'
,
dataIndex
:
'operation'
,
},
{
title
:
'操作时间'
,
key
:
'createTime'
,
dataIndex
:
'createTime'
,
render
:
(
_text
:
any
,
_record
:
any
)
=>
<
Text
>
{
format
(
_text
)
}
</
Text
>
},
{
title
:
'审核意见'
,
key
:
'auditOpinion'
,
dataIndex
:
'auditOpinion'
,
},
]
/** 内部流转记录 */
export
const
INTERNALLOGS
:
ColumnType
<
any
>
[]
=
[
{
title
:
'流转顺序号'
,
key
:
'index'
,
dataIndex
:
'index'
,
render
:
(
_text
:
any
,
_record
:
any
,
index
:
number
)
=>
<
Text
>
{
index
+
1
}
</
Text
>
},
{
title
:
'操作人'
,
key
:
'roleName'
,
dataIndex
:
'roleName'
,
},
{
title
:
'部门'
,
key
:
'department'
,
dataIndex
:
'department'
,
},
{
title
:
'职位'
,
key
:
'position'
,
dataIndex
:
'position'
,
},
{
title
:
'状态'
,
key
:
'state'
,
dataIndex
:
'state'
,
render
:
(
_text
:
any
,
_record
:
any
)
=>
<
Tag
color=
{
OFFTER_INTERNALSTATE_COLOR
[
_text
]
}
>
{
OFFTER_INTERNALSTATE
[
_text
]
}
</
Tag
>
},
{
title
:
'操作'
,
key
:
'operation'
,
dataIndex
:
'operation'
,
},
{
title
:
'操作时间'
,
key
:
'createTime'
,
dataIndex
:
'createTime'
,
render
:
(
_text
:
any
,
_record
:
any
)
=>
<
Text
>
{
format
(
_text
)
}
</
Text
>
},
{
title
:
'审核意见'
,
key
:
'auditOpinion'
,
dataIndex
:
'auditOpinion'
,
},
]
src/pages/transaction/purchaseAbility/constants/index.ts
View file @
d28ff0b5
...
...
@@ -14,7 +14,9 @@ export const INQUIRY_EXTERNALSTATE_COLOR = {
1
:
'default'
,
2
:
'warning'
,
3
:
'warning'
,
4
:
'warning'
4
:
'warning'
,
5
:
'error'
,
6
:
'warning'
,
}
/** 询价内部状态 */
export
const
INQUIRY_INTERNALSTATE
=
{
...
...
@@ -31,6 +33,7 @@ export const INQUIRY_INTERNALSTATE = {
}
/** 询价内部状态颜色 */
export
const
INQUIRY_INTERNALSTATE_COLOR
=
{
'-1'
:
'error'
,
99
:
'success'
,
1
:
'default'
,
2
:
'warning'
,
...
...
@@ -50,7 +53,9 @@ export const OFFTER_EXTERNALSTATE = {
1
:
'待提交需求单'
,
2
:
'待审核需求单'
,
3
:
'待提交报价单'
,
4
:
'待确认授标结果'
4
:
'待确认授标结果'
,
5
:
'审核不通过需求单'
,
6
:
'发下轮报价'
,
}
/** 报价外部状态颜色 */
export
const
OFFTER_EXTERNALSTATE_COLOR
=
{
...
...
@@ -59,12 +64,14 @@ export const OFFTER_EXTERNALSTATE_COLOR = {
1
:
'default'
,
2
:
'warning'
,
3
:
'warning'
,
4
:
'warning'
4
:
'warning'
,
5
:
'error'
,
6
:
'warning'
,
}
/** 报价内部状态 */
export
const
OFFTER_INTERNALSTATE
=
{
'-1'
:
'作废'
,
99
:
'已
完成
'
,
99
:
'已
提交审核采购需求单
'
,
1
:
'待提交审核'
,
2
:
'待审核(一级)'
,
3
:
'待审核(二级)'
,
...
...
@@ -101,6 +108,10 @@ export enum OFFTER_EXTERNALSTATE_TYPE {
WAITSUBMIOFFER_TYPE
,
/** 待确认授标结果 */
WAITCONFIRMRESULTS_TYPE
,
/** 审核不通过需求单 */
WAITNOPASSINQUIRY_TYPE
,
/** 发下轮报价 */
NEXTOFFER_TYPE
,
/** 已完成 */
SUCCESS_TYPE
=
99
,
}
...
...
@@ -161,6 +172,9 @@ export const FILTEREXTERNALSTATE = [
label
:
'待确认授标结果'
,
value
:
4
},
{
label
:
'审核不通过需求单'
,
value
:
5
},
{
label
:
'已完成'
,
value
:
99
},
]
...
...
@@ -195,6 +209,7 @@ export const FILTERINTERNALSTATE = [
label
:
'审核不通过(二级)'
,
value
:
9
},
{
label
:
'已
完成
'
,
value
:
99
label
:
'已
提交审核采购需求单
'
,
value
:
99
},
]
src/pages/transaction/purchaseAbility/offter/detail/index.tsx
View file @
d28ff0b5
...
...
@@ -285,7 +285,7 @@ const Detail = () => {
marginLeft
:
'8px'
,
}
}
>
进口头层黄牛皮荔枝纹 | SPTY12
{
data
.
quotedDetails
}
|
{
data
.
quotedPriceNo
}
</
span
>
</
div
>
{
path
===
'detail'
...
...
src/pages/transaction/purchaseAbility/purchaseInquiry/addInquiry/add.tsx
View file @
d28ff0b5
...
...
@@ -56,6 +56,7 @@ const AddForm = () => {
memberRoleId
,
memberName
:
name
,
details
:
basicRef
.
data
.
details
,
areas
:
basicRef
.
data
.
requisitionFormAddress
,
priceContrast
:
basicRef
.
data
.
priceContrast
,
purchaseType
:
basicRef
.
data
.
purchaseType
,
...
materialRef
.
data
,
...
...
@@ -116,7 +117,7 @@ const AddForm = () => {
basicInfo
.
externalState
=
params
.
externalState
basicInfo
.
interiorState
=
params
.
interiorState
;
setBasic
(
basicInfo
);
materialInfo
.
addMaterielMode
=
params
.
addM
aterielMode
;
materialInfo
.
materielMode
=
params
.
m
aterielMode
;
materialInfo
.
materiels
=
params
.
materiels
;
setMaterial
(
materialInfo
);
conditionInfo
.
deliveryTime
=
params
.
deliveryTime
;
...
...
src/pages/transaction/purchaseAbility/purchaseInquiry/addInquiry/components/basic.tsx
View file @
d28ff0b5
...
...
@@ -206,18 +206,14 @@ const BasicInfo: React.FC<Iprops> = (props: any) => {
citydata
:
res
.
data
}
city
[
index
]
=
{
...
citydata
}
Promise
.
resolve
().
then
(()
=>
{
setTimeout
(()
=>
{
setcity
([...
city
])
setcode
([...
code
,
item
.
cityCode
])
form
.
setFieldsValue
({
details
:
fetchdata
.
details
,
purchaseType
:
fetchdata
.
purchaseType
,
priceContrast
:
fetchdata
.
priceContrast
,
[
'province_'
+
index
]:
item
.
provinceCode
,
[
'city_'
+
index
]:
item
.
cityCode
,
});
},
550
);
setcity
([...
city
])
setcode
([...
code
,
item
.
cityCode
])
form
.
setFieldsValue
({
details
:
fetchdata
.
details
,
purchaseType
:
fetchdata
.
purchaseType
,
priceContrast
:
fetchdata
.
priceContrast
,
[
'province_'
+
index
]:
item
.
provinceCode
,
[
'city_'
+
index
]:
item
.
cityCode
,
});
}
})
...
...
src/pages/transaction/purchaseAbility/purchaseInquiry/addInquiry/components/demand.tsx
View file @
d28ff0b5
import
React
,
{
useEffect
,
useState
}
from
'react'
;
import
{
Form
,
Radio
,
Tooltip
,
Row
,
Col
,
Image
,
Table
,
Button
}
from
'antd'
;
import
{
Form
,
Radio
,
Tooltip
,
Row
,
Col
,
Image
,
Table
,
Button
,
Switch
,
Typography
}
from
'antd'
;
import
{
GlobalConfig
}
from
'@/global/config'
import
{
PlusOutlined
,
QuestionCircleOutlined
}
from
'@ant-design/icons'
;
import
{
ColumnType
}
from
'antd/lib/table/interface'
;
...
...
@@ -35,7 +35,9 @@ interface Iprops {
onBadge
?:
Function
,
}
const
Demand
:
React
.
FC
<
Iprops
>
=
(
props
:
any
)
=>
{
const
{
Link
}
=
Typography
const
Demand
:
React
.
FC
<
Iprops
>
=
(
props
:
any
)
=>
{
const
[
form
]
=
Form
.
useForm
();
const
{
currentRef
,
...
...
@@ -47,7 +49,7 @@ const Demand: React.FC<Iprops> = (props:any) => {
const
[
shopIds
,
setShopIds
]
=
useState
<
Array
<
number
>>
([]);
const
[
storeList
,
setStoreList
]
=
useState
<
Array
<
any
>>
([]);
const
[
visible
,
setVisible
]
=
useState
<
boolean
>
(
false
);
const
[
menberVisible
,
setMenberVidible
]
=
useState
<
boolean
>
(
false
);
const
[
menberVisible
,
setMenberVidible
]
=
useState
<
boolean
>
(
false
);
const
[
rowCtl
,
setRowCtl
]
=
useState
<
any
>
([])
/** 表头 */
const
columns
:
ColumnType
<
any
>
[]
=
[
...
...
@@ -80,11 +82,30 @@ const Demand: React.FC<Iprops> = (props:any) => {
title
:
'是否归属会员'
,
key
:
'membershipOrNot'
,
dataIndex
:
'membershipOrNot'
,
render
:
(
_text
:
any
,
_record
:
any
)
=>
<
span
>
是
</
span
>
},
{
title
:
'状态'
,
key
:
'state'
,
dataIndex
:
'state'
,
render
:
(
_text
:
any
,
_record
:
any
)
=>
(
<
Form
.
Item
style=
{
{
marginBottom
:
0
}
}
initialValue=
{
_text
}
>
<
Switch
/>
</
Form
.
Item
>
)
},
{
title
:
'操作'
,
key
:
'operate'
,
dataIndex
:
'operate'
,
render
:
(
_text
:
any
,
_record
:
any
)
=>
(
<
Link
href=
{
`/shop?shopId=${btoa(JSON.stringify({ shopId: _record.id, memberId: _record.memberId }))}`
}
target=
"_blank"
>
进入店铺
</
Link
>
)
},
]
/** 切换需求模式 */
...
...
@@ -115,11 +136,24 @@ const Demand: React.FC<Iprops> = (props:any) => {
})
}
/** 获取会员列表 */
const
handleMenberList
=
(
e
:
any
)
=>
{
const
handleMenberList
=
(
e
:
any
)
=>
{
const
RowCtl
=
e
.
selectRow
;
if
(
RowCtl
.
length
>
0
)
{
setMenberVidible
(
false
)
setRowCtl
(
RowCtl
);
const
data
:
any
=
[]
RowCtl
.
forEach
(
item
=>
{
data
.
push
({
memberId
:
item
.
memberId
,
memberName
:
item
.
name
,
memberTypeName
:
item
.
memberTypeName
,
roleId
:
item
.
roleId
,
roleName
:
item
.
roleName
,
levelTag
:
item
.
levelTag
,
state
:
false
,
type
:
2
,
})
})
setRowCtl
(
data
);
}
}
...
...
@@ -236,6 +270,7 @@ const Demand: React.FC<Iprops> = (props:any) => {
</
Button
>
<
Table
columns=
{
columns
}
dataSource=
{
rowCtl
}
/>
</
Form
.
Item
>
)
}
...
...
src/pages/transaction/purchaseAbility/purchaseInquiry/addInquiry/components/material.tsx
View file @
d28ff0b5
...
...
@@ -243,9 +243,9 @@ const Material: React.FC<Iprops> = (props: any) => {
console
.
log
(
fetchdata
,
10086
)
if
(
fetchdata
)
{
form
.
setFieldsValue
({
materielMode
:
fetchdata
.
addM
aterielMode
materielMode
:
fetchdata
.
m
aterielMode
})
setMaterielMode
(
fetchdata
.
addM
aterielMode
)
setMaterielMode
(
fetchdata
.
m
aterielMode
)
setDataSource
(
fetchdata
.
materiels
)
}
},
[
fetchdata
])
...
...
@@ -299,6 +299,7 @@ const Material: React.FC<Iprops> = (props: any) => {
&&
(
<
Import
flag=
{
flag
}
onClose=
{
()
=>
setFlag
(
false
)
}
/>
)
}
</
Form
>
...
...
src/pages/transaction/purchaseAbility/purchaseInquiry/addInquiry/index.tsx
View file @
d28ff0b5
...
...
@@ -8,10 +8,9 @@ import { PublicApi } from '@/services/api';
import
{
Row
,
Col
,
Space
,
Button
,
Dropdown
,
Menu
,
Tag
,
Badge
,
Popconfirm
,
Typography
}
from
'antd'
;
import
{
DeleteOutlined
,
DownOutlined
,
PlusOutlined
}
from
'@ant-design/icons'
;
import
{
INQUIRY_EXTERNALSTATE
,
INQUIRY_EXTERNALSTATE_COLOR
,
INQUIRY_INTERNALSTATE
,
INQUIRY_INTERNALSTATE_COLOR
,
OFFTER_EXTERNALSTATE_TYPE
,
OFFTER_INTERNALSTATE_TYPE
}
from
'../../constants'
;
const
{
Text
}
=
Typography
;
...
...
@@ -50,19 +49,24 @@ const AddInquiry = () => {
title
:
'外部状态'
,
key
:
'externalState'
,
dataIndex
:
'externalState'
,
render
:
(
text
:
any
,
record
:
any
)
=>
<
Tag
color=
{
INQUIRY_EXTERNALSTATE_COLOR
[
text
]
}
>
{
INQUIRY_EXTERNALSTATE
[
text
]
}
</
Tag
>
render
:
(
text
:
any
,
record
:
any
)
=>
<
Tag
color=
{
INQUIRY_EXTERNALSTATE_COLOR
[
text
]
}
>
{
record
.
externalStateName
}
</
Tag
>
},
{
title
:
'内部状态'
,
key
:
'interiorState'
,
dataIndex
:
'interiorState'
,
render
:
(
text
:
any
,
record
:
any
)
=>
<
Badge
status=
{
INQUIRY_INTERNALSTATE_COLOR
[
text
]
}
text=
{
INQUIRY_INTERNALSTATE
[
text
]
}
/>
render
:
(
text
:
any
,
record
:
any
)
=>
<
Badge
status=
{
INQUIRY_INTERNALSTATE_COLOR
[
text
]
}
text=
{
record
.
interiorStateName
}
/>
},
{
title
:
'操作'
,
key
:
'operate'
,
dataIndex
:
'operate'
,
render
:
(
text
:
any
,
record
:
any
)
=>
(
<>
<
Button
type=
'link'
onClick=
{
()
=>
history
.
push
(
`/memberCenter/procurementAbility/purchaseInquiry/addInquiry/detail?id=${record.id}&number=${record.purchaseInquiryNo}`
)
}
>
提交审核
</
Button
>
{
(
record
.
externalState
!==
OFFTER_EXTERNALSTATE_TYPE
.
WAITNOPASSINQUIRY_TYPE
&&
(
record
.
interiorState
!==
OFFTER_INTERNALSTATE_TYPE
.
AUDITNOPASS1_TYPE
&&
record
.
interiorState
!==
OFFTER_INTERNALSTATE_TYPE
.
AUDITNOPASS2_TYPE
))
&&
(
<
Button
type=
'link'
onClick=
{
()
=>
history
.
push
(
`/memberCenter/procurementAbility/purchaseInquiry/addInquiry/detail?id=${record.id}&number=${record.purchaseInquiryNo}`
)
}
>
提交审核
</
Button
>
)
}
<
Button
type=
'link'
onClick=
{
()
=>
history
.
push
(
`/memberCenter/procurementAbility/purchaseInquiry/edit?id=${record.id}&number=${record.purchaseInquiryNo}`
)
}
>
修改
</
Button
>
{
record
.
interiorState
===
OFFTER_INTERNALSTATE_TYPE
.
WAITSUBMITAUDIT_TYPE
&&
(
...
...
@@ -105,9 +109,9 @@ const AddInquiry = () => {
<
Table
selectedRow
reload=
{
ref
}
schemaType=
"
PurchaseDemandPublic
"
schemaType=
"
INQUIRYWAITORDER_SCHEMA
"
columns=
{
columns
}
effects=
"
requisitionForm
No"
effects=
"
purchaseInquiry
No"
fetch=
{
PublicApi
.
getPurchasePurchaseInquiryAddList
}
fetchRowkeys=
{
(
e
)
=>
setRowKeys
(
e
)
}
controllerBtns=
{
...
...
src/pages/transaction/purchaseAbility/purchaseInquiry/addInquiry/modal/drawerWrite.tsx
View file @
d28ff0b5
...
...
@@ -103,7 +103,8 @@ const DrawerWrite: React.FC<Iprops> = (props: any) => {
brand
:
res
.
brand
,
model
:
res
.
model
,
purchaseCount
:
res
.
purchaseCount
,
unit
:
res
.
unit
unit
:
res
.
unit
,
urls
:
files
}
onConfirm
(
data
)
form
.
resetFields
();
...
...
@@ -116,6 +117,38 @@ const DrawerWrite: React.FC<Iprops> = (props: any) => {
form
.
resetFields
();
onClose
()
}
/**判断文件类型和大小 */
const
beforeDocUpload
=
(
file
:
any
)
=>
{
const
isLt20M
=
file
.
size
/
1024
/
1024
<
20
;
if
(
!
isLt20M
)
{
message
.
error
(
'上传文件大小不超过 20M!'
);
}
return
isLt20M
;
}
// 上传回调
const
handleChange
=
({
file
})
=>
{
const
arr
:
any
=
files
;
setloading
(
true
);
if
(
file
.
response
)
{
if
(
file
.
response
.
code
===
1000
)
{
arr
.
push
({
name
:
file
.
name
,
url
:
file
.
response
.
data
})
setloading
(
false
);
}
}
setFiles
([...
arr
])
}
// 删除附件
const
removeFiles
=
(
index
:
any
)
=>
{
const
arr
=
[...
files
];
arr
.
splice
(
index
,
1
);
setFiles
(
arr
);
}
useEffect
(()
=>
{
searchCategoryTree
(
'0'
);
},
[])
...
...
@@ -323,6 +356,8 @@ const DrawerWrite: React.FC<Iprops> = (props: any) => {
data=
{
{
fileType
:
UPLOAD_TYPE
}
}
showUploadList=
{
false
}
accept=
'.doc,.docx,.pdf,.ppt,.pptx,.xls,.xlsx'
beforeUpload=
{
beforeDocUpload
}
onChange=
{
handleChange
}
>
<
Button
loading=
{
loading
}
icon=
{
<
UploadOutlined
/>
}
>
上传文件
</
Button
>
<
div
style=
{
{
marginTop
:
'8px'
}
}
>
一次上传一个文件,每个附件大小不能超过 20M
</
div
>
...
...
src/pages/transaction/purchaseAbility/purchaseInquiry/addInquiry/modal/import.tsx
View file @
d28ff0b5
...
...
@@ -12,15 +12,17 @@ import excelIcon from '@/assets/imgs/excel.png'
interface
Iprops
{
flag
:
boolean
,
onClose
:
()
=>
void
,
}
const
Import
:
React
.
FC
<
Iprops
>
=
(
props
:
any
)
=>
{
const
{
flag
}
=
props
;
const
{
flag
,
onClose
}
=
props
;
return
(
<
Modal
width=
{
400
}
title=
'导入'
visible=
{
flag
}
onCancel=
{
onClose
}
footer=
{
<
Button
type=
'primary'
>
导入
</
Button
>
}
...
...
src/pages/transaction/purchaseAbility/purchaseInquiry/auditInquiryOne/index.tsx
View file @
d28ff0b5
...
...
@@ -7,9 +7,7 @@ import moment from 'moment';
import
{
PublicApi
}
from
'@/services/api'
;
import
{
Row
,
Col
,
Button
,
Tag
,
Badge
,
Typography
,
Space
}
from
'antd'
;
import
{
INQUIRY_EXTERNALSTATE
,
INQUIRY_EXTERNALSTATE_COLOR
,
INQUIRY_INTERNALSTATE
,
INQUIRY_INTERNALSTATE_COLOR
}
from
'../../constants'
;
const
{
Text
}
=
Typography
;
...
...
@@ -56,12 +54,12 @@ const AuditInquiryOne = () => {
title
:
'外部状态'
,
key
:
'externalState'
,
dataIndex
:
'externalState'
,
render
:
(
text
:
any
,
record
:
any
)
=>
<
Tag
color=
{
INQUIRY_EXTERNALSTATE_COLOR
[
text
]
}
>
{
INQUIRY_EXTERNALSTATE
[
text
]
}
</
Tag
>
render
:
(
text
:
any
,
record
:
any
)
=>
<
Tag
color=
{
INQUIRY_EXTERNALSTATE_COLOR
[
text
]
}
>
{
record
.
externalStateName
}
</
Tag
>
},
{
title
:
'内部状态'
,
key
:
'interiorState'
,
dataIndex
:
'interiorState'
,
render
:
(
text
:
any
,
record
:
any
)
=>
<
Badge
status=
{
INQUIRY_INTERNALSTATE_COLOR
[
text
]
}
text=
{
INQUIRY_INTERNALSTATE
[
text
]
}
/>
render
:
(
text
:
any
,
record
:
any
)
=>
<
Badge
status=
{
INQUIRY_INTERNALSTATE_COLOR
[
text
]
}
text=
{
record
.
interiorStateName
}
/>
},
{
title
:
'操作'
,
key
:
'operate'
,
...
...
@@ -81,9 +79,9 @@ const AuditInquiryOne = () => {
<
Table
selectedRow
reload=
{
ref
}
schemaType=
"
PurchaseDemandPublic
"
schemaType=
"
INQUIRYWAITORDER_SCHEMA
"
columns=
{
columns
}
effects=
"
requisitionForm
No"
effects=
"
purchaseInquiry
No"
fetch=
{
PublicApi
.
getPurchasePurchaseInquiryStayExamineList1
}
fetchRowkeys=
{
(
e
)
=>
setRowKeys
(
e
)
}
controllerBtns=
{
...
...
src/pages/transaction/purchaseAbility/purchaseInquiry/auditInquiryTwo/index.tsx
View file @
d28ff0b5
...
...
@@ -56,12 +56,12 @@ const AuditInquiryTwo = () => {
title
:
'外部状态'
,
key
:
'externalState'
,
dataIndex
:
'externalState'
,
render
:
(
text
:
any
,
record
:
any
)
=>
<
Tag
color=
{
INQUIRY_EXTERNALSTATE_COLOR
[
text
]
}
>
{
INQUIRY_EXTERNALSTATE
[
text
]
}
</
Tag
>
render
:
(
text
:
any
,
record
:
any
)
=>
<
Tag
color=
{
INQUIRY_EXTERNALSTATE_COLOR
[
text
]
}
>
{
record
.
externalStateName
}
</
Tag
>
},
{
title
:
'内部状态'
,
key
:
'interiorState'
,
dataIndex
:
'interiorState'
,
render
:
(
text
:
any
,
record
:
any
)
=>
<
Badge
status=
{
INQUIRY_INTERNALSTATE_COLOR
[
text
]
}
text=
{
INQUIRY_INTERNALSTATE
[
text
]
}
/>
render
:
(
text
:
any
,
record
:
any
)
=>
<
Badge
status=
{
INQUIRY_INTERNALSTATE_COLOR
[
text
]
}
text=
{
record
.
interiorStateName
}
/>
},
{
title
:
'操作'
,
key
:
'operate'
,
...
...
@@ -81,9 +81,9 @@ const AuditInquiryTwo = () => {
<
Table
selectedRow
reload=
{
ref
}
schemaType=
"
PurchaseDemandPublic
"
schemaType=
"
INQUIRYWAITORDER_SCHEMA
"
columns=
{
columns
}
effects=
"
requisitionForm
No"
effects=
"
purchaseInquiry
No"
fetch=
{
PublicApi
.
getPurchasePurchaseInquiryStayExamineList2
}
fetchRowkeys=
{
(
e
)
=>
setRowKeys
(
e
)
}
controllerBtns=
{
...
...
src/pages/transaction/purchaseAbility/purchaseInquiry/detail/index.tsx
View file @
d28ff0b5
import
React
,
{
useEffect
,
useState
,
useRef
}
from
'react'
;
import
{
Anchor
,
Radio
,
Steps
,
Row
,
Col
,
Table
,
Tooltip
,
Switch
,
Button
}
from
'antd'
;
import
{
Anchor
,
Radio
,
Steps
,
Row
,
Col
,
Table
,
Tooltip
,
Switch
,
Button
,
Tag
,
Badge
,
Image
}
from
'antd'
;
import
{
history
}
from
'umi'
;
import
{
GlobalConfig
}
from
'@/global/config'
import
style
from
'./index.less'
;
import
{
ArrowLeftOutlined
,
CheckCircleOutlined
,
QuestionCircleOutlined
}
from
'@ant-design/icons'
;
import
{
StandardTable
}
from
'god'
;
...
...
@@ -9,6 +23,17 @@ import { PublicApi } from '@/services/api';
import
DetailDrawer
from
'../../components/detailDrawer'
;
import
EyePreview
from
'@/components/EyePreview'
;
import
ModalOperate
from
'../../components/modalOperate'
;
import
{
OFFTER_EXTERNALSTATE
,
OFFTER_EXTERNALSTATE_COLOR
,
OFFTER_INTERNALSTATE
,
OFFTER_INTERNALSTATE_COLOR
}
from
'../../constants'
;
import
{
EXTERNALLOGS
,
INTERNALLOGS
,
}
from
'../../constants/columns'
;
const
{
Link
}
=
Anchor
;
const
{
Step
}
=
Steps
;
...
...
@@ -26,8 +51,28 @@ const LogStatesType = {
}
const
TYPE
=
{
1
:
'系统匹配'
,
2
:
'指定会员'
,
1
:
'发布至平台'
,
2
:
'系统匹配'
,
3
:
'指定会员'
,
}
const
ColStyle
=
{
display
:
'flex'
,
alignItems
:
'center'
,
border
:
'1px solid #1fbf87'
,
paddingTop
:
' 6px'
,
paddingBottom
:
'6px'
,
margin
:
'5px'
,
borderRadius
:
'4px'
,
}
const
TextStyle
=
{
color
:
'#1fbf87'
,
marginLeft
:
'10px'
,
}
const
iconStyle
:
any
=
{
color
:
'#C0C4CC'
,
fontSize
:
'14px'
,
marginLeft
:
'5px'
}
const
Detail
:
React
.
FC
<
{}
>
=
()
=>
{
...
...
@@ -51,9 +96,15 @@ const Detail: React.FC<{}> = () => {
const
[
logStatesStatus
,
setLogStatesStatus
]
=
useState
<
number
>
(
LogStatesType
.
externalLogStates
);
const
[
logStatus
,
setLogStatus
]
=
useState
<
number
>
(
LogType
.
externalLogs
);
const
[
visible
,
setVisible
]
=
useState
<
boolean
>
(
false
);
const
[
dataSource
,
setDataSource
]
=
useState
<
any
>
([])
const
[
dataSource
,
setDataSource
]
=
useState
<
any
>
([]);
const
[
areas
,
setAreas
]
=
useState
<
any
>
([])
const
[
storeList
,
setStoreList
]
=
useState
<
Array
<
any
>>
([]);
useEffect
(()
=>
{
setTargetOffset
(
window
.
innerHeight
/
8
);
let
shopList
=
GlobalConfig
.
web
.
shopInfo
.
filter
(
v
=>
v
.
type
==
1
).
map
(
v
=>
v
)
const
parmas
=
{
id
,
number
,
...
...
@@ -63,8 +114,19 @@ const Detail: React.FC<{}> = () => {
PublicApi
.
getPurchasePurchaseInquiryDetails
(
parmas
).
then
(
res
=>
{
if
(
res
.
code
===
1000
)
{
setData
(
res
.
data
)
const
area
:
string
[]
=
[];
if
(
res
.
data
.
areas
)
{
res
.
data
.
areas
.
forEach
(
item
=>
{
area
.
push
(
`
${
item
.
province
}
/
${
item
.
city
}
`
)
})
setAreas
(
area
)
}
const
ids
=
res
.
data
.
shopIds
;
const
filterStore
=
shopList
.
filter
(
item
=>
ids
.
indexOf
(
item
.
id
)
!==
-
1
);
setStoreList
([...
filterStore
]);
}
})
},
[]);
const
handleAnchorClick
=
(
e
)
=>
{
e
.
preventDefault
()
...
...
@@ -122,6 +184,7 @@ const Detail: React.FC<{}> = () => {
linkContent
:
[
{
label
:
'附件'
,
file
:
item
.
urls
?
true
:
false
,
content
:
item
.
urls
},
]
...
...
@@ -181,18 +244,41 @@ const Detail: React.FC<{}> = () => {
const
basicInfo
=
{
col1
:
[
{
label
:
'需求单号'
,
extra
:
data
.
purchaseInquiryNo
},
{
label
:
'外部状态'
,
extra
:
data
.
externalState
},
{
label
:
'内部状态'
,
extra
:
data
.
interiorState
},
{
label
:
'外部状态'
,
extra
:
<
Tag
color=
{
OFFTER_EXTERNALSTATE_COLOR
[
data
.
externalState
]
}
>
{
OFFTER_EXTERNALSTATE
[
data
.
externalState
]
}
</
Tag
>
},
{
label
:
'内部状态'
,
extra
:
<
Badge
status=
{
OFFTER_INTERNALSTATE_COLOR
[
data
.
interiorState
]
}
text=
{
OFFTER_INTERNALSTATE
[
data
.
interiorState
]
}
/>
},
{
label
:
'单据时间'
,
extra
:
data
.
createTime
},
],
col2
:
[
{
label
:
'需求摘要'
,
extra
:
data
.
details
},
{
label
:
'招标采购类型'
,
extra
:
data
.
purchaseType
},
{
label
:
'比价方式'
,
extra
:
data
.
priceContrast
},
{
label
:
'采购类型'
,
extra
:
(
<
Tooltip
placement=
"top"
title=
'有固定采购金额:采购金额固定,合同期内不可超过采购金额,无固定采购金额:采购金额不固定,可在合同期内按需采购'
>
{
data
.
purchaseType
===
1
?
'有固定采购金额'
:
'无固定采购金额'
}
<
QuestionCircleOutlined
style=
{
iconStyle
}
/>
</
Tooltip
>
)
},
{
label
:
'比价方式'
,
extra
:
(
<
Tooltip
placement=
"top"
title=
'密封比价:只能看到供应商是否有报价,不能看到供应商的报价明细,只能解封后才能看到报价明细,非密封比价:可以在供应商报完价后立即看到报价明细,无须解封'
>
{
data
.
priceContrast
===
1
?
'密封比价'
:
'非密封比价'
}
<
QuestionCircleOutlined
style=
{
iconStyle
}
/>
</
Tooltip
>
)
},
{
label
:
'会员名称'
,
extra
:
data
.
memberName
},
],
col3
:
[
{
label
:
'适用地市'
,
extra
:
'进口头层黄牛皮荔枝纹'
},
{
label
:
'适用地市'
,
extra
:
(
<
div
>
{
areas
.
map
((
item
:
any
,
index
:
number
)
=>
(
<
p
key=
{
`areas${index + 1}`
}
>
{
item
}
</
p
>
))
}
</
div
>
)
},
],
};
/** 交易条件 */
...
...
@@ -525,7 +611,7 @@ const Detail: React.FC<{}> = () => {
</
Row
>
</
div
>
</
div
>
{
/*
交易条件
*/
}
{
/*
需求对接
*/
}
<
div
id=
'docking'
className=
'ant-card ant-card-bordered'
>
<
div
className=
'ant-card-head'
>
<
div
className=
'ant-card-head-wrapper'
>
...
...
@@ -539,11 +625,29 @@ const Detail: React.FC<{}> = () => {
<
h5
className=
{
style
.
listLable
}
style=
{
{
flex
:
'0 0 100px'
}
}
>
发布方式:
</
h5
>
<
h5
className=
{
style
.
listContent
}
>
{
TYPE
[
data
.
type
]
}
</
h5
>
</
div
>
<
Table
dataSource=
{
data
.
demandMembers
}
columns=
{
demandColums
}
rowKey=
'id'
/>
{
data
.
type
===
1
&&
(
<
Row
gutter=
{
[
16
,
16
]
}
>
{
storeList
.
map
(
item
=>
(
<
Col
span=
{
6
}
key=
{
item
.
id
}
style=
{
ColStyle
}
>
<
Image
width=
{
32
}
height=
{
32
}
src=
{
item
.
logoUrl
}
/>
<
span
style=
{
TextStyle
}
>
{
item
.
name
}
</
span
>
</
Col
>
))
}
</
Row
>
)
}
{
data
.
type
!==
1
&&
(
<
Table
dataSource=
{
data
.
demandMembers
}
columns=
{
demandColums
}
rowKey=
'id'
/>
)
}
</
div
>
</
div
>
{
/* 流转记录 */
}
...
...
@@ -557,21 +661,24 @@ const Detail: React.FC<{}> = () => {
<
Radio
.
Group
onChange=
{
(
e
)
=>
setLogStatus
(
e
.
target
.
value
)
}
defaultValue=
{
LogType
.
externalLogs
}
>
<
Radio
.
Button
value=
{
LogType
.
externalLogs
}
>
外部流转
</
Radio
.
Button
>
<
Radio
.
Button
value=
{
LogType
.
interiorLogs
}
>
内部流转
</
Radio
.
Button
>
{
data
.
externalLogs
&&
<
Radio
.
Button
value=
{
LogType
.
externalLogs
}
>
外部流转
</
Radio
.
Button
>
}
{
data
.
interiorLogs
&&
<
Radio
.
Button
value=
{
LogType
.
interiorLogs
}
>
内部流转
</
Radio
.
Button
>
}
</
Radio
.
Group
>
</
div
>
</
div
>
</
div
>
<
div
className=
'ant-card-body'
>
<
Table
columns=
{
log
Colums
}
columns=
{
log
Status
===
LogType
.
externalLogs
?
EXTERNALLOGS
:
INTERNALLOGS
}
dataSource=
{
logStatus
===
LogType
.
externalLogs
?
data
.
externalLogs
:
data
.
interiorLogs
}
rowKey=
{
(
record
)
=>
record
.
id
}
pagination=
{
{
hideOnSinglePage
:
true
}
}
/>
</
div
>
</
div
>
...
...
src/pages/transaction/purchaseAbility/purchaseInquiry/inquiry/index.tsx
View file @
d28ff0b5
...
...
@@ -6,9 +6,7 @@ import EyePreview from '@/components/EyePreview';
import
moment
from
'moment'
;
import
{
PublicApi
}
from
'@/services/api'
;
import
{
INQUIRY_EXTERNALSTATE
,
INQUIRY_EXTERNALSTATE_COLOR
,
INQUIRY_INTERNALSTATE
,
INQUIRY_INTERNALSTATE_COLOR
}
from
'../../constants'
;
import
ModalOperate
from
'../../components/modalOperate'
;
...
...
@@ -52,12 +50,12 @@ const Inquiry = () => {
title
:
'外部状态'
,
key
:
'externalState'
,
dataIndex
:
'externalState'
,
render
:
(
text
:
any
,
record
:
any
)
=>
<
Tag
color=
{
INQUIRY_EXTERNALSTATE_COLOR
[
text
]
}
>
{
INQUIRY_EXTERNALSTATE
[
text
]
}
</
Tag
>
render
:
(
text
:
any
,
record
:
any
)
=>
<
Tag
color=
{
INQUIRY_EXTERNALSTATE_COLOR
[
text
]
}
>
{
record
.
externalStateName
}
</
Tag
>
},
{
title
:
'内部状态'
,
key
:
'interiorState'
,
dataIndex
:
'interiorState'
,
render
:
(
text
:
any
,
record
:
any
)
=>
<
Badge
status=
{
INQUIRY_INTERNALSTATE_COLOR
[
text
]
}
text=
{
INQUIRY_INTERNALSTATE
[
text
]
}
/>
render
:
(
text
:
any
,
record
:
any
)
=>
<
Badge
status=
{
INQUIRY_INTERNALSTATE_COLOR
[
text
]
}
text=
{
record
.
interiorStateName
}
/>
},
{
title
:
'操作'
,
key
:
'operate'
,
...
...
@@ -86,9 +84,9 @@ const Inquiry = () => {
return
(
<>
<
Table
schemaType=
"
PurchaseDemand
"
schemaType=
"
INQUIRYDEMANDORDER_SCHEMA
"
columns=
{
columns
}
effects=
"
requisitionForm
No"
effects=
"
purchaseInquiry
No"
fetch=
{
PublicApi
.
getPurchasePurchaseInquiryList
}
reload=
{
ref
}
/>
...
...
src/pages/transaction/purchaseAbility/purchaseInquiry/submitInquiry/index.tsx
View file @
d28ff0b5
...
...
@@ -7,9 +7,7 @@ import moment from 'moment';
import
{
PublicApi
}
from
'@/services/api'
;
import
{
Row
,
Col
,
Button
,
Tag
,
Badge
,
Typography
,
Space
}
from
'antd'
;
import
{
INQUIRY_EXTERNALSTATE
,
INQUIRY_EXTERNALSTATE_COLOR
,
INQUIRY_INTERNALSTATE
,
INQUIRY_INTERNALSTATE_COLOR
}
from
'../../constants'
;
const
{
Text
}
=
Typography
;
...
...
@@ -56,12 +54,12 @@ const SubmitInquiry = () => {
title
:
'外部状态'
,
key
:
'externalState'
,
dataIndex
:
'externalState'
,
render
:
(
text
:
any
,
record
:
any
)
=>
<
Tag
color=
{
INQUIRY_EXTERNALSTATE_COLOR
[
text
]
}
>
{
INQUIRY_EXTERNALSTATE
[
text
]
}
</
Tag
>
render
:
(
text
:
any
,
record
:
any
)
=>
<
Tag
color=
{
INQUIRY_EXTERNALSTATE_COLOR
[
text
]
}
>
{
record
.
externalStateName
}
</
Tag
>
},
{
title
:
'内部状态'
,
key
:
'interiorState'
,
dataIndex
:
'interiorState'
,
render
:
(
text
:
any
,
record
:
any
)
=>
<
Badge
status=
{
INQUIRY_INTERNALSTATE_COLOR
[
text
]
}
text=
{
INQUIRY_INTERNALSTATE
[
text
]
}
/>
render
:
(
text
:
any
,
record
:
any
)
=>
<
Badge
status=
{
INQUIRY_INTERNALSTATE_COLOR
[
text
]
}
text=
{
record
.
interiorStateName
}
/>
},
{
title
:
'操作'
,
key
:
'operate'
,
...
...
@@ -81,9 +79,9 @@ const SubmitInquiry = () => {
<
Table
selectedRow
reload=
{
ref
}
schemaType=
"
PurchaseDemandPublic
"
schemaType=
"
INQUIRYWAITORDER_SCHEMA
"
columns=
{
columns
}
effects=
"
requisitionForm
No"
effects=
"
purchaseInquiry
No"
fetch=
{
PublicApi
.
getPurchasePurchaseInquiryStayCommitList
}
fetchRowkeys=
{
(
e
)
=>
setRowKeys
(
e
)
}
controllerBtns=
{
...
...
src/pages/transaction/purchaseAbility/schema/index.ts
View file @
d28ff0b5
...
...
@@ -3,6 +3,181 @@ import { FORM_FILTER_PATH } from '@/formSchema/const'
import
{
PublicApi
}
from
'@/services/api'
import
{
FILTEREXTERNALSTATE
,
FILTERINTERNALSTATE
}
from
'../constants'
/** 采购询价 - 需求单查询 */
export
const
INQUIRYDEMANDORDER_SCHEMA
:
ISchema
=
{
type
:
'object'
,
properties
:
{
megalayout
:
{
type
:
'object'
,
"x-component"
:
'mega-layout'
,
properties
:
{
purchaseInquiryNo
:
{
type
:
'string'
,
"x-component"
:
"Search"
,
"x-mega-props"
:
{
},
"x-component-props"
:
{
placeholder
:
'需求单号'
,
align
:
'flex-left'
,
}
}
}
},
[
FORM_FILTER_PATH
]:
{
type
:
'object'
,
"x-component"
:
"flex-layout"
,
"x-component-props"
:
{
rowStyle
:
{
justifyContent
:
'flex-start'
,
flexWrap
:
'nowrap'
},
colStyle
:
{
//改变间隔
marginRight
:
20
}
},
properties
:
{
PRO_LAYOUT
:
{
type
:
'object'
,
"x-component"
:
'mega-layout'
,
"x-mega-props"
:
{
span
:
5
},
"x-component-props"
:
{
inline
:
true
},
properties
:
{
details
:
{
type
:
'string'
,
"x-component-props"
:
{
placeholder
:
'需求摘要'
,
}
},
"[startTime,endTime]"
:
{
type
:
'string'
,
"x-component"
:
"dateSelect"
,
"x-component-props"
:
{
placeholder
:
'单据时间(全部)'
,
}
},
externalState
:
{
type
:
'string'
,
"x-component-props"
:
{
placeholder
:
'外部状态'
,
style
:
{
width
:
160
}
},
enum
:
FILTEREXTERNALSTATE
},
interiorState
:
{
type
:
'string'
,
"x-component-props"
:
{
placeholder
:
'内部状态'
,
style
:
{
width
:
160
}
},
enum
:
FILTERINTERNALSTATE
},
}
},
sumbit
:
{
"x-component"
:
'Submit'
,
"x-mega-props"
:
{
span
:
1
},
"x-component-props"
:
{
children
:
'查询'
}
}
}
}
}
}
/** 采购询价 - 待新建需求单&待审核需求单一级&待审核需求单二级&待提交需求单 */
export
const
INQUIRYWAITORDER_SCHEMA
:
ISchema
=
{
type
:
'object'
,
properties
:
{
megalayout
:
{
type
:
'object'
,
"x-component"
:
'mega-layout'
,
"x-component-props"
:
{
grid
:
true
},
properties
:
{
ctl
:
{
type
:
'object'
,
"x-component"
:
"Children"
,
"x-component-props"
:
{
children
:
"{{controllerBtns}}"
}
},
purchaseInquiryNo
:
{
type
:
'string'
,
"x-component"
:
"Search"
,
"x-mega-props"
:
{
},
"x-component-props"
:
{
placeholder
:
'需求单号'
}
}
}
},
[
FORM_FILTER_PATH
]:
{
type
:
'object'
,
"x-component"
:
"flex-layout"
,
"x-component-props"
:
{
rowStyle
:
{
flexWrap
:
'nowrap'
},
colStyle
:
{
marginLeft
:
20
}
},
properties
:
{
PRO_LAYOUT
:
{
type
:
'object'
,
"x-component"
:
'mega-layout'
,
"x-mega-props"
:
{
span
:
5
},
"x-component-props"
:
{
inline
:
true
},
properties
:
{
details
:
{
type
:
'string'
,
"x-component-props"
:
{
placeholder
:
'需求摘要'
}
},
"[startTime,endTime]"
:
{
type
:
'string'
,
"x-component"
:
"dateSelect"
,
"x-component-props"
:
{
placeholder
:
'单据时间(全部)'
,
}
},
}
},
sumbit
:
{
"x-component"
:
'Submit'
,
"x-mega-props"
:
{
span
:
1
},
"x-component-props"
:
{
children
:
'查询'
}
}
}
}
}
}
/** 采购需求单查询 */
export
const
PurchaseDemandSchema
:
ISchema
=
{
type
:
'object'
,
...
...
@@ -613,3 +788,4 @@ export const CONFIRMOFFERAUDIT_SCHEMA: ISchema = {
}
}
}
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