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
linweijiong
jinfa-platform
Commits
5a5d1f3a
Commit
5a5d1f3a
authored
Apr 28, 2021
by
卢均锐
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat:采购竞价&z在线竞价,静态页面细节,部分逻辑,整理代码
parent
cb0cb515
Hide whitespace changes
Inline
Side-by-side
Showing
37 changed files
with
720 additions
and
483 deletions
+720
-483
onlineBid.ts
config/routes/procurementRoute/onlineBid.ts
+1
-1
index.tsx
...ty/components/detail/components/bidCommonLayout/index.tsx
+1
-1
index.less
...mponents/detail/components/quotationDeskLayout/index.less
+15
-0
index.tsx
...omponents/detail/components/quotationDeskLayout/index.tsx
+35
-46
index.tsx
...saction/purchaseAbility/components/modalOperate/index.tsx
+1
-1
index.less
...tion/purchaseAbility/onlineBid/readyBid/detail/index.less
+32
-21
index.tsx
...ction/purchaseAbility/onlineBid/readyBid/detail/index.tsx
+7
-2
index.tsx
.../transaction/purchaseAbility/onlineBid/readyBid/index.tsx
+1
-1
index.tsx
...ansaction/purchaseAbility/onlineBid/readySignUp/index.tsx
+1
-1
signUp.tsx
...nsaction/purchaseAbility/onlineBid/readySignUp/signUp.tsx
+2
-42
index.tsx
...es/transaction/purchaseAbility/onlineBid/search/index.tsx
+1
-1
index.tsx
...ty/purchaseBid/components/confirmBidResultModal/index.tsx
+91
-20
index.tsx
...y/purchaseBid/components/quotationDetailsDrawer/index.tsx
+3
-3
index.less
...ility/purchaseBid/components/submitResultModal/index.less
+75
-0
index.tsx
...bility/purchaseBid/components/submitResultModal/index.tsx
+60
-21
index.less
...ty/purchaseBid/components/uploadBidResultModal/index.less
+0
-0
bidRequirement.tsx
...bility/purchaseBid/readyAdd/components/bidRequirement.tsx
+5
-3
bidRules.tsx
...chaseAbility/purchaseBid/readyAdd/components/bidRules.tsx
+1
-9
condition.tsx
...haseAbility/purchaseBid/readyAdd/components/condition.tsx
+3
-1
file.tsx
.../purchaseAbility/purchaseBid/readyAdd/components/file.tsx
+2
-1
index.tsx
...ransaction/purchaseAbility/purchaseBid/readyAdd/index.tsx
+70
-62
index.tsx
...ransaction/purchaseAbility/purchaseBid/readyBid/index.tsx
+7
-12
index.tsx
...purchaseBid/readyBid/management/components/rank/index.tsx
+2
-2
index.tsx
...chaseBid/readyBid/management/components/rankRow/index.tsx
+2
-1
index.tsx
...aseBid/readyBid/management/components/statusBox/index.tsx
+1
-1
index.less
...urchaseAbility/purchaseBid/readyBid/management/index.less
+17
-7
index.tsx
...purchaseAbility/purchaseBid/readyBid/management/index.tsx
+12
-5
index.tsx
...action/purchaseAbility/purchaseBid/readyConfirm/index.tsx
+27
-18
index.tsx
...ion/purchaseAbility/purchaseBid/readyExamineOne/index.tsx
+44
-35
index.tsx
...rchaseAbility/purchaseBid/readyExamineResultOne/index.tsx
+41
-32
index.tsx
...rchaseAbility/purchaseBid/readyExamineResultTwo/index.tsx
+41
-32
index.tsx
.../purchaseAbility/purchaseBid/readyExamineSignUp/index.tsx
+26
-17
index.tsx
...ion/purchaseAbility/purchaseBid/readyExamineTwo/index.tsx
+43
-34
index.tsx
...saction/purchaseAbility/purchaseBid/readySubmit/index.tsx
+5
-14
index.tsx
...aseAbility/purchaseBid/readySubmitExamineResult/index.tsx
+38
-30
detail.tsx
...transaction/purchaseAbility/purchaseBid/search/detail.tsx
+6
-5
onlineBid.ts
src/pages/transaction/purchaseAbility/schema/onlineBid.ts
+1
-1
No files found.
config/routes/procurementRoute/onlineBid.ts
View file @
5a5d1f3a
...
...
@@ -8,7 +8,7 @@ export const onlineBidRoute = [
// 在线竞价
{
path
:
'/memberCenter/procurementAbility/onlineBid'
,
name
:
'
采购
竞价'
,
name
:
'
在线
竞价'
,
routes
:
[
// 采购竞价单查询
{
...
...
src/pages/transaction/purchaseAbility/components/detail/components/bidCommonLayout/index.tsx
View file @
5a5d1f3a
...
...
@@ -49,7 +49,7 @@ const BidCommonLayout: React.FC<BidCommonLayoutProps> = (props: any) => {
<
div
className=
{
selfStyles
.
baseItem
}
key=
{
key
}
>
<
h5
className=
{
selfStyles
.
label
}
>
{
child
.
tips
?
<
Tooltip
placement=
"top"
title=
{
child
.
tips
}
>
{
child
.
label
}
<
QuestionCircleOutlined
style=
{
ICON_STYLE
}
/>
{
child
.
label
}
:
<
QuestionCircleOutlined
style=
{
ICON_STYLE
}
/>
</
Tooltip
>
:
`${child.label}: `
}
</
h5
>
<
h5
className=
{
selfStyles
.
content
}
>
{
_returnItem
(
child
)
}
</
h5
>
...
...
src/pages/transaction/purchaseAbility/components/detail/components/quotationDeskLayout/index.less
View file @
5a5d1f3a
.colorLabel{
display: flex;
flex-direction: row;
align-items: center;
justify-content: center;
font-size: 12px;
color: #606266;
margin-right: 10px;
div {
height: 8px;
width: 8px;
margin-right: 8px;
}
}
\ No newline at end of file
src/pages/transaction/purchaseAbility/components/detail/components/quotationDeskLayout/index.tsx
View file @
5a5d1f3a
import
React
,
{
useState
,
useEffect
}
from
'react'
;
import
{
Chart
,
Tooltip
,
Axis
}
from
'bizcharts'
;
import
{
Radio
}
from
'antd'
;
import
{
Radio
,
Row
}
from
'antd'
;
import
Point
from
'bizcharts/lib/geometry/Point'
;
import
Line
from
'bizcharts/lib/geometry/Line'
;
import
Card
from
'../../../card'
;
import
styles
from
'../../index.less'
;
import
selfStyles
from
'./index.less'
;
interface
QuotationDeskProps
{
title
?:
string
,
...
...
@@ -14,98 +16,78 @@ interface QuotationDeskProps {
const
data
=
[
{
year
:
"1
99
1"
,
year
:
"1
0:12:2
1"
,
value
:
3
,
type
:
'min'
},
{
year
:
"1
992
"
,
year
:
"1
0:32:13
"
,
value
:
4
,
type
:
'min'
},
{
year
:
"1
99
3"
,
year
:
"1
0:39:5
3"
,
value
:
3.5
,
type
:
'min'
},
{
year
:
"1
994
"
,
year
:
"1
0:40:21
"
,
value
:
5
,
type
:
'min'
},
{
year
:
"1
995
"
,
year
:
"1
0:43:22
"
,
value
:
4.9
,
type
:
'min'
},
{
year
:
"1
99
6"
,
year
:
"1
0:45:2
6"
,
value
:
6
,
type
:
'min'
},
{
year
:
"1
997
"
,
year
:
"1
0:52:12
"
,
value
:
7
,
type
:
'min'
},
{
year
:
"1998"
,
value
:
9
,
type
:
'min'
},
{
year
:
"1999"
,
value
:
13
,
type
:
'min'
},
{
year
:
"1991"
,
year
:
"10:12:21"
,
value
:
4
,
type
:
'offer'
},
{
year
:
"1
992
"
,
value
:
3
,
year
:
"1
0:32:13
"
,
value
:
5
,
type
:
'offer'
},
{
year
:
"1
99
3"
,
year
:
"1
0:39:5
3"
,
value
:
4.5
,
type
:
'offer'
},
{
year
:
"1
994
"
,
year
:
"1
0:40:21
"
,
value
:
6
,
type
:
'offer'
},
{
year
:
"1
995
"
,
year
:
"1
0:43:22
"
,
value
:
5.9
,
type
:
'offer'
},
{
year
:
"1
99
6"
,
year
:
"1
0:45:2
6"
,
value
:
7
,
type
:
'offer'
},
{
year
:
"1
997
"
,
year
:
"1
0:52:12
"
,
value
:
8
,
type
:
'offer'
},
{
year
:
"1998"
,
value
:
10
,
type
:
'offer'
},
{
year
:
"1999"
,
value
:
14
,
type
:
'offer'
},
];
const
scale
=
{
...
...
@@ -129,17 +111,24 @@ const QuotationDesk: React.FC<QuotationDeskProps> = (props: any) => {
// })
return
(
<
div
className=
{
styles
.
wrap
}
>
<
div
className=
{
styles
.
layout
}
style=
{
{
margin
:
0
}
}
>
<
div
className=
{
styles
.
layout
}
style=
{
{
margin
:
0
}
}
>
<
Card
id=
{
'QuotationDesk'
}
title=
{
title
}
extra=
{
<
Radio
.
Group
defaultValue=
{
1
}
>
<
Radio
.
Button
value=
{
1
}
>
最近7次
</
Radio
.
Button
>
<
Radio
.
Button
value=
{
2
}
>
最近15次
</
Radio
.
Button
>
<
Radio
.
Button
value=
{
3
}
>
全部
</
Radio
.
Button
>
</
Radio
.
Group
>
extra=
{
<
Row
>
<
div
className=
{
selfStyles
.
colorLabel
}
>
<
div
style=
{
{
backgroundColor
:
'#5B8FF9'
}
}
></
div
>
最低价
</
div
>
<
Radio
.
Group
defaultValue=
{
1
}
>
<
Radio
.
Button
value=
{
1
}
>
最近7次
</
Radio
.
Button
>
<
Radio
.
Button
value=
{
2
}
>
最近15次
</
Radio
.
Button
>
<
Radio
.
Button
value=
{
3
}
>
全部
</
Radio
.
Button
>
</
Radio
.
Group
>
</
Row
>
}
>
<
Chart
...
...
@@ -156,8 +145,8 @@ const QuotationDesk: React.FC<QuotationDeskProps> = (props: any) => {
// line={{ style: { stroke: "#ff0000" } }}
tickLine=
{
{
style
:
{
lineWidth
:
1
},
length
:
5
}
}
/>
<
Line
position=
"year*value"
color=
{
[
'type'
,
[
'#5B8FF9'
,
'#00B37A'
]]
}
/>
<
Point
position=
"year*value"
color=
{
[
'type'
,
[
'#5B8FF9'
,
'#00B37A'
]]
}
shape=
'circle'
/>
<
Line
position=
"year*value"
color=
{
[
'type'
,
[
'#5B8FF9'
,
'#00B37A'
]]
}
/>
<
Point
position=
"year*value"
color=
{
[
'type'
,
[
'#5B8FF9'
,
'#00B37A'
]]
}
shape=
'circle'
/>
<
Tooltip
shared
showCrosshairs
/>
</
Chart
>
</
Card
>
...
...
src/pages/transaction/purchaseAbility/components/modalOperate/index.tsx
View file @
5a5d1f3a
...
...
@@ -165,7 +165,7 @@ const ModalOperate: React.FC<IProps> = (props: any) => {
}
fetch
({
id
,
...
params
}).
then
(
res
=>
{
if
(
res
.
code
===
1000
)
{
onOk
()
onOk
&&
onOk
()
}
})
}
...
...
src/pages/transaction/purchaseAbility/onlineBid/readyBid/detail/index.less
View file @
5a5d1f3a
.warp {
.header {
.header {
display: flex;
height: 48px;
font-size: 16px;
background-color: #FFFFFF;
color: #303133;
padding: 0 16px;
align-items: center;
.goBack {
font-size: 14px;
color: #909399;
}
.title {
display: flex;
height: 48px;
line-height: 48px;
font-size: 16px;
background-color: #FFFFFF;
color: #303133;
padding: 0 16px;
align-items: center;
margin-left: 6px;
line-height: 48px;
span{
span
{
color: #909399;
font-size: 14px;
margin: 0 10px 0 24px;
}
&::before {
content: " ";
width: 2px;
...
...
@@ -23,17 +33,19 @@
margin-right: 6px;
}
}
.layout {
margin: 24px;
}
:global {
.ant-card-head-wrapper{
padding: 12px 0;
.ant-card-head-wrapper{
padding: 0;
}
}
.layout {
margin: 24px;
}
:global {
.ant-card-head-wrapper {
padding: 12px 0;
.ant-card-head-wrapper {
padding: 0;
}
}
}
\ No newline at end of file
}
src/pages/transaction/purchaseAbility/onlineBid/readyBid/detail/index.tsx
View file @
5a5d1f3a
import
React
,
{
useEffect
,
useState
}
from
'react'
;
import
{
history
}
from
'umi'
;
import
{
Row
,
Col
,
Tooltip
,
Button
}
from
'antd'
;
import
{
ArrowLeftOutlined
}
from
'@ant-design/icons'
;
import
HistoryItem
from
'./history'
;
import
StatusBox
from
'../../../purchaseBid/readyBid/management/components/statusBox'
;
...
...
@@ -12,9 +14,12 @@ import styles from './index.less';
const
Detail
=
()
=>
{
return
(
<
div
className=
{
styles
.
warp
}
>
<
div
className=
{
styles
.
header
}
>
进口头层黄牛皮荔枝纹竞价
<
span
>
温州龙昌手袋有限公司
</
span
><
IMBtn
/></
div
>
<
div
className=
{
styles
.
header
}
>
<
ArrowLeftOutlined
className=
{
styles
.
goBack
}
onClick=
{
()
=>
history
.
goBack
()
}
/>
<
div
className=
{
styles
.
title
}
>
进口头层黄牛皮荔枝纹竞价
<
span
>
温州龙昌手袋有限公司
</
span
><
IMBtn
func=
{
()
=>
console
.
log
(
'ok'
)
}
/></
div
>
</
div
>
<
div
className=
{
styles
.
layout
}
>
<
Row
gutter=
{
[
8
,
8
]
}
>
<
Row
gutter=
{
[
8
,
8
]
}
>
<
Col
span=
{
6
}
>
<
HistoryItem
/>
</
Col
>
...
...
src/pages/transaction/purchaseAbility/onlineBid/readyBid/index.tsx
View file @
5a5d1f3a
...
...
@@ -103,7 +103,7 @@ const ReadyBid = () => {
schemaType=
"ONLINEBIDREADYBID_SCHEMA"
columns=
{
columns
}
effects=
"biddingNo"
fetch=
{
PublicApi
.
get
Purchase
BiddingList
}
fetch=
{
PublicApi
.
get
OnlineBiddingStay
BiddingList
}
reload=
{
ref
}
/>
<
ModalOperate
...
...
src/pages/transaction/purchaseAbility/onlineBid/readySignUp/index.tsx
View file @
5a5d1f3a
...
...
@@ -103,7 +103,7 @@ const ReadySignUp = () => {
schemaType=
"ONLINEBIDREADYSIGN_SCHEMA"
columns=
{
columns
}
effects=
"biddingNo"
fetch=
{
PublicApi
.
get
PurchaseBiddingList
}
fetch=
{
PublicApi
.
get
OnlineBiddingStayExamineBiddingSignup
}
reload=
{
ref
}
/>
<
ModalOperate
...
...
src/pages/transaction/purchaseAbility/onlineBid/readySignUp/signUp.tsx
View file @
5a5d1f3a
...
...
@@ -12,9 +12,6 @@ import { usePageStatus, PageStatus } from '@/hooks/usePageStatus'
import
NiceForm
from
'@/components/NiceForm'
import
ReutrnEle
from
'@/components/ReturnEle'
;
import
Basic
from
'./components/basic'
;
import
Requirement
from
'./components/requirement'
;
import
File
from
'./components/file'
;
import
{
formSchema
}
from
'./schema'
...
...
@@ -36,22 +33,6 @@ const TabFormErrors = (props) => {
const
SignUpForm
=
()
=>
{
const
{
number
}
=
history
.
location
.
query
;
const
{
memberId
,
memberRoleId
,
name
}
=
JSON
.
parse
(
localStorage
.
getItem
(
'auth'
));
/** 基本信息 */
const
[
basic
,
setBasic
]
=
useState
<
any
>
({});
/** 添加采购物料 */
const
[
material
,
setMaterial
]
=
useState
<
any
>
({});
/** 竞价规则 */
const
[
rules
,
setRules
]
=
useState
<
any
>
({});
/** 报名需求 */
const
[
requirement
,
setRequirement
]
=
useState
<
any
>
({});
/** 交易条件 */
const
[
condition
,
setCondition
]
=
useState
<
any
>
({});
/** 需求对接 */
const
[
demand
,
setDemand
]
=
useState
<
any
>
({});
/** 附件 */
const
[
file
,
setfile
]
=
useState
<
any
>
([]);
const
[
badge
,
setbadge
]
=
useState
<
any
>
([
0
,
0
,
0
,
0
,
0
,
0
]);
const
[
loading
,
setLoading
]
=
useState
<
boolean
>
(
false
);
const
{
id
,
...
...
@@ -63,24 +44,6 @@ const SignUpForm = () => {
const
[
btnLoading
,
setBtnLoading
]
=
useState
(
false
)
const
[
initFormValue
,
setInitFormValue
]
=
useState
<
any
>
({})
/** 拿表单数据的 */
const
currentBasic
=
useRef
<
any
>
({});
const
currentRules
=
useRef
<
any
>
({});
const
currentRequirement
=
useRef
<
any
>
({});
const
currentMaterial
=
useRef
<
any
>
({});
const
currentCondition
=
useRef
<
any
>
({});
const
currentDemand
=
useRef
<
any
>
({});
const
currentFile
=
useRef
<
any
>
({});
/**必填没填写出现角标 */
const
getError
=
(
num
:
number
,
idx
:
number
)
=>
{
const
data
=
[...
badge
];
data
[
idx
]
=
num
;
setbadge
(
data
);
if
(
num
!==
0
)
{
setLoading
(
false
);
}
}
const
getCountryCodeId
=
async
()
=>
{
const
res
=
await
PublicApi
.
getManageCountryAreaGetTelCode
()
...
...
@@ -123,7 +86,7 @@ const SignUpForm = () => {
onBack=
{
()
=>
history
.
goBack
()
}
backIcon=
{
<
ReutrnEle
description=
"返回"
/>
}
extra=
{
<
Button
loading=
{
loading
}
type=
"primary"
onClick=
{
()
=>
addSchemaAction
.
submit
()
}
loading=
{
btnLoading
}
icon=
{
<
SaveOutlined
/>
}
>
保存
</
Button
>
<
Button
type=
"primary"
onClick=
{
()
=>
addSchemaAction
.
submit
()
}
loading=
{
btnLoading
}
icon=
{
<
SaveOutlined
/>
}
>
保存
</
Button
>
}
>
<
Card
>
...
...
@@ -142,10 +105,7 @@ const SignUpForm = () => {
$
(
'onFormMount'
).
subscribe
(()
=>
{
})
useAsyncInitSelect
(
[
'phoneCode'
],
getCountryCodeId
,
);
useAsyncInitSelect
([
'phoneCode'
],
getCountryCodeId
,);
}
}
expressionScope=
{
{
beforeUpload
,
...
...
src/pages/transaction/purchaseAbility/onlineBid/search/index.tsx
View file @
5a5d1f3a
...
...
@@ -93,7 +93,7 @@ const Search = () => {
schemaType=
"ONLINEBIDORDER_SCHEMA"
columns=
{
columns
}
effects=
"biddingNo"
fetch=
{
PublicApi
.
get
Purchas
eBiddingList
}
fetch=
{
PublicApi
.
get
Onlin
eBiddingList
}
reload=
{
ref
}
/>
<
ModalOperate
...
...
src/pages/transaction/purchaseAbility/purchaseBid/components/confirmBidResultModal/index.tsx
View file @
5a5d1f3a
import
React
,
{
use
Effect
}
from
'react'
;
import
React
,
{
use
State
,
useEffect
,
useMemo
}
from
'react'
;
import
{
Modal
,
Tabs
,
Form
,
Checkbox
,
Input
}
from
'antd'
;
const
{
TabPane
}
=
Tabs
;
...
...
@@ -6,9 +6,69 @@ const { TextArea } = Input;
import
styles
from
'./index.less'
;
const
ConfirmBidResultModal
=
(
props
:
any
)
=>
{
interface
ConfirmBidResultModalProps
{
title
:
string
,
visible
:
boolean
,
onCancel
?:
Function
,
onOk
?:
Function
,
record
:
any
}
const
isForType
=
{
1
:
true
,
0
:
false
}
const
ConfirmBidResultModal
:
React
.
FC
<
ConfirmBidResultModalProps
>
=
(
props
:
any
)
=>
{
const
[
form
]
=
Form
.
useForm
();
const
{
title
,
visible
,
onCancel
}
=
props
;
const
{
title
,
visible
,
onCancel
,
onOk
,
record
}
=
props
;
// 是否发送中标公示
const
[
notice
,
setNotice
]
=
useState
<
boolean
>
(
record
&&
record
.
notice
?
isForType
[
record
.
notice
]
:
true
);
// 是否发送中标通知
const
[
prizeNotice
,
setPrizeNotice
]
=
useState
<
boolean
>
(
record
&&
record
.
prizeNotice
?
isForType
[
record
.
prizeNotice
]
:
true
);
// 是否发送感谢函
const
[
thank
,
setThank
]
=
useState
<
boolean
>
(
record
&&
record
.
thank
?
isForType
[
record
.
thank
]
:
true
);
// 控制tabkey
const
[
activeKey
,
setActiveKey
]
=
useState
<
string
>
(
'1'
);
const
handleOk
=
()
=>
{
form
.
validateFields
().
then
(
res
=>
{
console
.
log
(
res
);
onOk
&&
onOk
();
})
}
const
_returnDefaultAwardResults
=
useMemo
(()
=>
{
return
record
?
`
${
record
.
createMemberName
}
《
${
record
.
details
}
》竞价工作已经结束,中标人已经确定。现将中标结果公布如下:
中标供应商:
${
record
.
createMemberName
}
(中标总金额(含税):
${
record
.
sumAwardPrice
}
)。
中标理由:价格最低`
:
''
;
},
[
record
])
const
_returnDefaultContent
=
useMemo
(()
=>
{
return
record
?
`贵公司参与了我公司《
${
record
.
detail
}
》竞价。在我公司综合各竞价单位的报价情况,并进行充分技术交流后,经评标委员会综合评定,贵公司未能中标。我公司对贵公司的积极参与和支持深表感谢!希望下次合作成功。`
:
''
;
},
[
record
])
const
onCheckboxChange
=
(
e
:
{
target
:
{
checked
:
boolean
}
},
func
:
Function
,
name
:
string
)
=>
{
func
(
e
.
target
.
checked
);
form
.
setFieldsValue
({
[
`
${
name
}
`
]:
e
.
target
.
checked
})
};
useEffect
(()
=>
{
form
.
setFieldsValue
({
notice
:
record
&&
record
.
notice
?
isForType
[
record
.
notice
]
:
true
,
prizeNotice
:
record
&&
record
.
prizeNotice
?
isForType
[
record
.
prizeNotice
]
:
true
,
thank
:
record
&&
record
.
thank
?
isForType
[
record
.
thank
]
:
true
,
awardResults
:
_returnDefaultAwardResults
,
offer
:
''
,
content
:
_returnDefaultContent
})
setNotice
(
record
&&
record
.
notice
?
isForType
[
record
.
notice
]
:
true
),
setPrizeNotice
(
record
&&
record
.
prizeNotice
?
isForType
[
record
.
prizeNotice
]
:
true
),
setThank
(
record
&&
record
.
thank
?
isForType
[
record
.
thank
]
:
true
),
setActiveKey
(
'1'
)
},
[
visible
])
return
(
<
Modal
width=
{
600
}
...
...
@@ -16,35 +76,46 @@ const ConfirmBidResultModal = (props: any) => {
visible=
{
visible
}
onCancel=
{
onCancel
}
wrapClassName=
{
styles
.
wrap
}
// onOk={() => actions.submit()
}
// afterClose={() => actions.reset()
}
onOk=
{
()
=>
{
handleOk
()
}
}
afterClose=
{
()
=>
{
form
.
resetFields
()
}
}
>
<
Form
form=
{
form
}
>
<
Tabs
tabPosition=
'left'
>
<
TabPane
tab=
"中标公示"
key=
"1"
>
<
Form
.
Item
name=
"offer"
>
<
Checkbox
>
发送中标公示
</
Checkbox
>
<
Tabs
tabPosition=
'left'
activeKey=
{
activeKey
}
onChange=
{
(
key
)
=>
{
setActiveKey
(
key
)
}
}
>
<
TabPane
tab=
"中标公示"
key=
"1"
forceRender=
{
true
}
>
<
Form
.
Item
name=
"notice"
>
<
Checkbox
checked=
{
notice
}
onChange=
{
(
e
)
=>
{
onCheckboxChange
(
e
,
setNotice
,
'notice'
)
}
}
>
发送中标公示
</
Checkbox
>
</
Form
.
Item
>
<
Form
.
Item
name=
"offer"
>
<
TextArea
rows=
{
3
}
maxLength=
{
100
}
placeholder=
"最长100个字符,50个汉字"
/>
<
Form
.
Item
name=
"awardResults"
>
<
TextArea
rows=
{
6
}
placeholder=
"请输入中标公示"
/>
</
Form
.
Item
>
</
TabPane
>
<
TabPane
tab=
"中标通知"
key=
"2"
>
<
Form
.
Item
name=
"
offer
"
>
<
Checkbox
>
发送中标通知
</
Checkbox
>
<
TabPane
tab=
"中标通知"
key=
"2"
forceRender=
{
true
}
>
<
Form
.
Item
name=
"
prizeNotice
"
>
<
Checkbox
checked=
{
prizeNotice
}
onChange=
{
(
e
)
=>
{
onCheckboxChange
(
e
,
setPrizeNotice
,
'prizeNotice'
)
}
}
>
发送中标通知
</
Checkbox
>
</
Form
.
Item
>
<
Form
.
Item
name=
"offer"
>
<
TextArea
rows=
{
3
}
maxLength=
{
100
}
placeholder=
"最长100个字符,50个汉字"
/>
<
TextArea
rows=
{
6
}
placeholder=
"请输入中标通知"
/>
</
Form
.
Item
>
</
TabPane
>
<
TabPane
tab=
"感谢函"
key=
"3"
>
<
Form
.
Item
name=
"
offer
"
>
<
Checkbox
>
发送感谢函
</
Checkbox
>
<
TabPane
tab=
"感谢函"
key=
"3"
forceRender=
{
true
}
>
<
Form
.
Item
name=
"
thank
"
>
<
Checkbox
checked=
{
thank
}
onChange=
{
(
e
)
=>
{
onCheckboxChange
(
e
,
setThank
,
'thank'
)
}
}
>
发送感谢函
</
Checkbox
>
</
Form
.
Item
>
<
Form
.
Item
name=
"offer"
>
<
TextArea
rows=
{
3
}
maxLength=
{
100
}
placeholder=
"最长100个字符,50个汉字"
/>
<
Form
.
Item
name=
"content"
>
<
TextArea
rows=
{
6
}
placeholder=
"请输入感谢函"
/>
</
Form
.
Item
>
</
TabPane
>
</
Tabs
>
...
...
src/pages/transaction/purchaseAbility/purchaseBid/components/quotationDetailsDrawer/index.tsx
View file @
5a5d1f3a
import
React
,
{
useRef
,
useImperativeHandle
}
from
'react'
;
import
{
StandardTable
}
from
'god'
;
import
{
ColumnType
}
from
'antd/lib/table/interface'
;
import
NiceForm
from
'@/components/NiceForm'
;
import
{
createFormActions
,
FormEffectHooks
}
from
'@formily/antd'
;
import
{
FORM_FILTER_PATH
}
from
'@/formSchema/const
'
;
import
{
Row
,
Col
,
Space
,
Button
,
Typography
,
Popconfirm
,
Badge
,
Tag
,
Menu
,
Drawer
}
from
'antd
'
;
import
{
FORM_FILTER_PATH
}
from
'@/formSchema/const'
;
import
NiceForm
from
'@/components/NiceForm'
;
import
{
useStateFilterSearchLinkageEffect
}
from
'@/formSchema/effects/useFilterSearch'
;
import
{
searchSelectGetSelectCategoryOptionEffect
}
from
'@/pages/transaction/effect/index'
;
import
{
PublicApi
}
from
'@/services/api'
;
import
{
Row
,
Col
,
Space
,
Button
,
Typography
,
Popconfirm
,
Badge
,
Tag
,
Menu
,
Drawer
}
from
'antd'
;
...
...
src/pages/transaction/purchaseAbility/purchaseBid/components/submitResultModal/index.less
0 → 100644
View file @
5a5d1f3a
.revise_style {
:global {
.ant-form-item-label {
width: 174px;
label {
color:#6B778C
}
}
.ant-form-item-control {
width: 500px;
.ant-form-item-control-input-content {
position: relative;
.ant-btn-link {
position: absolute;
right: -120px;
}
.ant-picker {
width: 100%;
}
}
.ant-input-group-addon {
.ant-input-search-button {
background-color: #6B778C;
border-color: #6B778C;
}
}
}
.ant-radio-group-solid {
.ant-radio-button-wrapper-checked {
background: #6B778C;
border-color: #6B778C;
&:hover {
background: #6B778C;
border-color: #6B778C;
}
}
}
}
.upload_item {
padding: 5px 8px;
margin-bottom: 16px;
display: flex;
align-items: center;
justify-content: space-between;
background-color: #FAFBFC;
.upload_left {
display: flex;
align-items: center;
color: #303133;
:global {
.anticon-file-word {
color: #4279df;
font-size: 20px;
margin-right: 8px;
}
}
}
.upload_right {
color: #00B37A;
cursor: pointer;
:global {
.anticon-delete {
margin-left: 19px;
color: #C0C4CC;
}
}
}
}
}
\ No newline at end of file
src/pages/transaction/purchaseAbility/purchaseBid/components/
uploadBid
ResultModal/index.tsx
→
src/pages/transaction/purchaseAbility/purchaseBid/components/
submit
ResultModal/index.tsx
View file @
5a5d1f3a
import
React
,
{
useState
}
from
'react'
;
import
{
Modal
,
Tabs
,
Form
,
Button
,
Input
,
Upload
,
message
}
from
'antd'
;
import
{
Modal
,
Form
,
Input
,
Upload
,
Button
,
message
}
from
'antd'
;
import
{
UPLOAD_TYPE
}
from
'@/constants'
import
{
UploadOutlined
}
from
'@ant-design/icons'
;
const
{
TabPane
}
=
Tabs
;
const
{
TextArea
}
=
Input
;
import
{
UploadOutlined
,
DeleteOutlined
,
LinkOutlined
}
from
'@ant-design/icons'
;
import
styles
from
'./index.less'
;
const
UploadBidResultModal
=
(
props
:
any
)
=>
{
const
{
title
,
visible
,
onCancel
}
=
props
;
const
[
files
,
setFiles
]
=
useState
<
any
>
([]);
interface
SubmitResultModalProps
{
title
:
string
,
visible
:
boolean
,
onCancel
?:
Function
,
onOk
?:
Function
,
}
const
SubmitResultModal
:
React
.
FC
<
SubmitResultModalProps
>
=
(
props
:
any
)
=>
{
const
{
title
,
visible
,
onCancel
,
onOk
}
=
props
;
const
[
form
]
=
Form
.
useForm
();
const
[
files
,
setFiles
]
=
useState
([]);
const
[
loading
,
setloading
]
=
useState
(
false
);
/**判断文件类型和大小 */
const
beforeDocUpload
=
(
file
:
any
)
=>
{
...
...
@@ -36,29 +40,64 @@ const UploadBidResultModal = (props: any) => {
}
}
setFiles
([...
arr
])
form
.
setFieldsValue
({
upload
:
'ok'
})
}
// 删除附件
const
removeFiles
=
(
index
:
any
)
=>
{
const
arr
=
[...
files
];
arr
.
splice
(
index
,
1
);
setFiles
(
arr
);
arr
.
length
<=
0
&&
form
.
setFieldsValue
({
upload
:
''
})
}
const
formSubmit
=
()
=>
{
form
.
validateFields
().
then
(
res
=>
{
onOk
&&
onOk
();
onCancel
&&
onCancel
();
})
}
return
(
<
Modal
width=
{
600
}
title=
{
title
}
visible=
{
visible
}
onCancel=
{
onCancel
}
wrapClassName=
{
styles
.
wrap
}
// onOk={() => actions.submit()}
// afterClose={() => actions.reset()}
onOk=
{
()
=>
{
formSubmit
()
}
}
afterClose=
{
()
=>
{
form
.
resetFields
()
setFiles
([])
}
}
>
<
Form
form=
{
form
}
layout=
"vertical"
layout=
{
'vertical'
}
className=
{
styles
.
revise_style
}
>
<
Form
.
Item
name=
"offer"
label=
"授标意见"
rules=
{
[{
required
:
true
,
message
:
'请输入授标意见'
}]
}
>
<
TextArea
rows=
{
3
}
maxLength=
{
200
}
placeholder=
"最长200个字符,100个汉字"
/>
</
Form
.
Item
>
<
Form
.
Item
label=
"报名要求附件"
name=
"file"
rules=
{
[{
required
:
true
,
message
:
'请
选择报名要求附件
'
}]
}
label=
'授标意见'
name=
'opinion'
rules=
{
[{
required
:
true
,
message
:
'请
输入授标意见
'
}]
}
>
<
Input
.
TextArea
rows=
{
3
}
maxLength=
{
200
}
placeholder=
"最长200个字符,100个汉字"
/>
</
Form
.
Item
>
<
Form
.
Item
label=
'附件'
name=
'upload'
rules=
{
[{
required
:
true
,
message
:
'请上传附件'
}]
}
>
<
div
className=
{
styles
.
upload_data
}
>
{
files
.
length
>
0
&&
files
.
map
((
v
,
index
)
=>
(
<
div
key=
{
index
}
className=
{
styles
.
upload_item
}
>
<
div
className=
{
styles
.
upload_left
}
>
<
LinkOutlined
/>
<
span
>
{
v
.
name
}
</
span
>
</
div
>
<
div
className=
{
styles
.
upload_right
}
onClick=
{
()
=>
removeFiles
(
index
)
}
>
<
DeleteOutlined
/>
</
div
>
</
div
>
))
}
</
div
>
<
Upload
action=
"/api/file/file/upload"
data=
{
{
fileType
:
UPLOAD_TYPE
}
}
...
...
@@ -76,4 +115,4 @@ const UploadBidResultModal = (props: any) => {
)
}
export
default
UploadBidResultModal
\ No newline at end of file
export
default
SubmitResultModal
;
\ No newline at end of file
src/pages/transaction/purchaseAbility/purchaseBid/components/uploadBidResultModal/index.less
deleted
100644 → 0
View file @
cb0cb515
src/pages/transaction/purchaseAbility/purchaseBid/readyAdd/components/bidRequirement.tsx
View file @
5a5d1f3a
...
...
@@ -13,12 +13,14 @@ import {
Upload
,
Space
}
from
'antd'
;
import
styles
from
'./index.less'
;
import
{
UPLOAD_TYPE
}
from
'@/constants'
import
{
UploadOutlined
,
DeleteOutlined
,
LinkOutlined
}
from
'@ant-design/icons'
;
import
moment
from
'moment'
;
import
{
PublicApi
}
from
'@/services/api'
;
import
moment
from
'moment'
;
import
{
UPLOAD_TYPE
}
from
'@/constants'
import
styles
from
'./index.less'
;
const
{
TextArea
}
=
Input
;
const
layout
:
any
=
{
colon
:
false
,
...
...
src/pages/transaction/purchaseAbility/purchaseBid/readyAdd/components/bidRules.tsx
View file @
5a5d1f3a
...
...
@@ -16,12 +16,10 @@ import {
import
{
QuestionCircleOutlined
}
from
'@ant-design/icons'
;
import
moment
from
'moment'
;
import
{
PublicApi
}
from
'@/services/api'
;
import
styles
from
'./index.less'
;
const
layout
:
any
=
{
colon
:
false
,
labelCol
:
{
style
:
{
width
:
'174px'
}
},
...
...
@@ -93,13 +91,7 @@ const BidRules: React.FC<Iprops> = (props: any) => {
const
onCheckboxChange
=
(
e
:
{
target
:
{
checked
:
boolean
}
},
func
:
Function
,
name
?:
string
)
=>
{
func
(
e
.
target
.
checked
);
if
(
!
e
.
target
.
checked
&&
name
){
if
(
name
===
'startingPrice'
){
form
.
setFieldsValue
({
startingPrice
:
''
})
}
else
if
(
name
===
'targetPrice'
){
form
.
setFieldsValue
({
targetPrice
:
''
})
}
else
{
form
.
setFieldsValue
({
minPrice
:
''
})
}
form
.
setFieldsValue
({[
`
${
name
}
`
]
:
''
})
}
};
...
...
src/pages/transaction/purchaseAbility/purchaseBid/readyAdd/components/condition.tsx
View file @
5a5d1f3a
import
React
,
{
useState
,
useEffect
}
from
'react'
;
import
{
Form
,
Row
,
Col
,
Input
,
DatePicker
,
Select
}
from
'antd'
;
import
{
PublicApi
}
from
'@/services/api'
;
import
moment
from
'moment'
;
import
{
PublicApi
}
from
'@/services/api'
;
import
style
from
'./index.less'
;
const
{
TextArea
}
=
Input
;
...
...
src/pages/transaction/purchaseAbility/purchaseBid/readyAdd/components/file.tsx
View file @
5a5d1f3a
import
React
,
{
useState
,
useEffect
}
from
'react'
;
import
{
Form
,
Button
,
Upload
,
message
}
from
'antd'
;
import
{
UploadOutlined
,
DeleteOutlined
,
LinkOutlined
}
from
'@ant-design/icons'
;
import
{
UPLOAD_TYPE
}
from
'@/constants'
import
styles
from
'./index.less'
;
import
{
UploadOutlined
,
DeleteOutlined
,
LinkOutlined
}
from
'@ant-design/icons'
;
const
layout
:
any
=
{
colon
:
false
,
...
...
src/pages/transaction/purchaseAbility/purchaseBid/readyAdd/index.tsx
View file @
5a5d1f3a
...
...
@@ -70,7 +70,7 @@ const ReadyAdd = () => {
</
Button
>
</
Popconfirm
>
<
Dropdown
overlay=
{
()
=>
(
<
Menu
onClick=
{
(
e
)
=>
handleMenuClick
(
e
)
}
>
<
Menu
onClick=
{
(
e
)
=>
handleMenuClick
(
e
,
record
.
id
)
}
>
<
Menu
.
Item
key=
"1"
>
修改
</
Menu
.
Item
>
...
...
@@ -95,74 +95,82 @@ const ReadyAdd = () => {
</>
}];
/** 批量审核 */
const
fetchSubmitBatch
=
async
(
id
?:
number
)
=>
{
let
res
=
null
;
if
(
id
)
{
res
=
await
PublicApi
.
postPurchaseQuotedPriceSubmit
({
id
});
}
else
{
res
=
await
PublicApi
.
postPurchaseQuotedPriceSubmitBatch
({
ids
:
rowkeys
});
}
if
(
res
.
code
===
1000
)
{
ref
.
current
.
reload
();
setRowKeys
([])
const
handleMenuClick
=
(
e
:
any
,
id
:
number
)
=>
{
if
(
e
.
key
===
1
){
}
else
{
fetchDeleteBatch
(
id
);
}
}
/** 批量审核 */
const
fetchSubmitBatch
=
async
(
id
?:
number
)
=>
{
let
res
=
null
;
if
(
id
)
{
res
=
await
PublicApi
.
postPurchaseBiddingExamine
({
id
});
}
else
{
res
=
await
PublicApi
.
postPurchaseBiddingExamineBatch
({
ids
:
rowkeys
});
}
if
(
res
.
code
===
1000
)
{
ref
.
current
.
reload
();
setRowKeys
([])
}
}
/**
* 删除或批量删除
* @type: 1: 单个删除, 2: 批量删除
* */
const
fetchDeleteBatch
=
async
(
id
?:
number
)
=>
{
let
res
=
null
;
if
(
id
)
{
res
=
await
PublicApi
.
postPurchaseQuotedPriceDelete
({
id
});
}
else
{
res
=
await
PublicApi
.
postPurchaseQuotedPriceDeleteBatch
({
ids
:
rowkeys
});
}
if
(
res
.
code
===
1000
)
{
ref
.
current
.
reload
();
setRowKeys
([])
}
/**
* 删除或批量删除
* @type: 1: 单个删除, 2: 批量删除
* */
const
fetchDeleteBatch
=
async
(
id
?:
number
)
=>
{
let
res
=
null
;
if
(
id
)
{
res
=
await
PublicApi
.
postPurchaseBiddingDelete
({
id
});
}
else
{
res
=
await
PublicApi
.
postPurchaseBiddingDeleteBatch
({
ids
:
rowkeys
});
}
if
(
res
.
code
===
1000
)
{
ref
.
current
.
reload
();
setRowKeys
([])
}
}
return
(
<
Table
selectedRow
reload=
{
ref
}
fetchRowkeys=
{
(
e
)
=>
setRowKeys
(
e
)
}
schemaType=
"PURCHASEBIDREADYADD_SCHEMA"
columns=
{
columns
}
effects=
"purchaseInquiry
No"
fetch=
{
PublicApi
.
getPurchaseQuotedPriceAdd
List
}
controllerBtns=
{
<
Row
>
<
Col
span=
{
24
}
>
<
Space
size=
{
16
}
>
<
Button
onClick=
{
()
=>
history
.
push
(
'/memberCenter/procurementAbility/purchaseBid/readyAdd/add'
)
}
type=
"primary"
icon=
{
<
PlusOutlined
/>
}
>
新建
return
(
<
Table
selectedRow
reload=
{
ref
}
fetchRowkeys=
{
(
e
)
=>
setRowKeys
(
e
)
}
schemaType=
"PURCHASEBIDREADYADD_SCHEMA"
columns=
{
columns
}
effects=
"bidding
No"
fetch=
{
PublicApi
.
getPurchaseBiddingAwaitNew
List
}
controllerBtns=
{
<
Row
>
<
Col
span=
{
24
}
>
<
Space
size=
{
16
}
>
<
Button
onClick=
{
()
=>
history
.
push
(
'/memberCenter/procurementAbility/purchaseBid/readyAdd/add'
)
}
type=
"primary"
icon=
{
<
PlusOutlined
/>
}
>
新建
</
Button
>
<
Button
onClick=
{
()
=>
fetchSubmitBatch
()
}
disabled=
{
rowkeys
.
length
===
0
}
>
批量提交审核
<
Button
onClick=
{
()
=>
fetchSubmitBatch
()
}
disabled=
{
rowkeys
.
length
===
0
}
>
批量提交审核
</
Button
>
<
Button
onClick=
{
()
=>
fetchDeleteBatch
()
}
disabled=
{
rowkeys
.
length
===
0
}
>
批量删除
<
Button
onClick=
{
()
=>
fetchDeleteBatch
()
}
disabled=
{
rowkeys
.
length
===
0
}
>
批量删除
</
Button
>
</
Space
>
</
Col
>
</
Row
>
}
/>
)
</
Space
>
</
Col
>
</
Row
>
}
/>
)
}
export
default
ReadyAdd
src/pages/transaction/purchaseAbility/purchaseBid/readyBid/index.tsx
View file @
5a5d1f3a
...
...
@@ -66,25 +66,20 @@ const ReadyBid = () => {
key
:
'operate'
,
dataIndex
:
'operate'
,
align
:
'center'
,
render
:
(
text
:
any
,
record
:
any
)
=>
<>
{
<>
<
Button
onClick=
{
()
=>
history
.
push
(
`/memberCenter/procurementAbility/offter/edit?id=${record.id}&number=${record.quotedPriceNo}`
)
}
type=
'link'
>
竞价管理
</
Button
>
</>
}
</>
render
:
(
text
:
any
,
record
:
any
)
=>
<
Button
disabled=
{
isOpenManage
(
record
.
biddingStartTime
)
}
onClick=
{
()
=>
history
.
push
(
`/memberCenter/procurementAbility/readyBid/management?id=${record.id}&number=${record.quotedPriceNo}`
)
}
type=
'link'
>
竞价管理
</
Button
>
}];
const
isOpenManage
=
(
timeStamp
)
=>
{
return
new
Date
().
getTime
()
>
timeStamp
;
}
return
(
<
Table
reload=
{
ref
}
schemaType=
"PURCHASEBIDOSIGNUP_SCHEMA"
columns=
{
columns
}
effects=
"
purchaseInquiry
No"
fetch=
{
PublicApi
.
getPurchase
QuotedPriceAdd
List
}
effects=
"
bidding
No"
fetch=
{
PublicApi
.
getPurchase
BiddingStayBidding
List
}
/>
)
}
...
...
src/pages/transaction/purchaseAbility/purchaseBid/readyBid/management/components/rank/index.tsx
View file @
5a5d1f3a
...
...
@@ -5,11 +5,11 @@ import level1 from '@/assets/icons/the_first.png';
import
level2
from
'@/assets/icons/the_second.png'
;
import
level3
from
'@/assets/icons/the_third.png'
;
import
styles
from
'./index.less'
;
import
TriangleTag
from
'../triangleTag'
;
import
RankRow
from
'../rankRow'
;
import
styles
from
'./index.less'
;
const
{
TabPane
}
=
Tabs
;
const
RankItem
=
()
=>
{
...
...
src/pages/transaction/purchaseAbility/purchaseBid/readyBid/management/components/rankRow/index.tsx
View file @
5a5d1f3a
...
...
@@ -4,8 +4,9 @@ import level1 from '@/assets/icons/the_first.png';
import
level2
from
'@/assets/icons/the_second.png'
;
import
level3
from
'@/assets/icons/the_third.png'
;
import
TriangleTag
from
'../triangleTag'
;
import
IMBtn
from
'../../../../../components/detail/components/iMBtn'
;
import
TriangleTag
from
'../triangleTag'
;
import
styles
from
'./index.less'
;
interface
RankRowProps
{
...
...
src/pages/transaction/purchaseAbility/purchaseBid/readyBid/management/components/statusBox/index.tsx
View file @
5a5d1f3a
...
...
@@ -12,7 +12,7 @@ interface StatuBoxProps {
const
StatuBox
:
React
.
FC
<
StatuBoxProps
>
=
(
props
:
any
)
=>
{
const
{
hasBidBtn
}
=
props
;
const
[
hour
,
minute
,
second
,
stillRun
]
=
useCountDown
(
16
27282562
);
const
[
hour
,
minute
,
second
,
stillRun
]
=
useCountDown
(
16
19514793947
/
1000
);
return
(
<
div
className=
'ant-card ant-card-bordered'
>
<
div
className=
'ant-card-body'
>
...
...
src/pages/transaction/purchaseAbility/purchaseBid/readyBid/management/index.less
View file @
5a5d1f3a
...
...
@@ -2,19 +2,29 @@
.header {
display: flex;
height: 48px;
line-height: 48px;
font-size: 16px;
background-color: #FFFFFF;
color: #303133;
padding: 0 16px;
align-items: center;
flex-direction: row;
.goBack {
font-size: 14px;
color: #909399;
}
&::before {
content: " ";
width: 2px;
height: 16px;
background: @primary-color;
margin-right: 6px;
.title{
display: flex;
align-items: center;
margin-left: 6px;
line-height: 48px;
&::before {
content: " ";
width: 2px;
height: 16px;
background: @primary-color;
margin-right: 6px;
}
}
}
...
...
src/pages/transaction/purchaseAbility/purchaseBid/readyBid/management/index.tsx
View file @
5a5d1f3a
import
React
,
{
useEffect
,
useState
}
from
'react'
;
import
{
history
}
from
'umi'
;
import
{
Row
,
Col
,
Tooltip
,
Button
}
from
'antd'
;
import
{
ArrowLeftOutlined
}
from
'@ant-design/icons'
;
import
RankItem
from
'./components/rank'
;
import
StatusBox
from
'./components/statusBox'
;
import
QuotationDeskLayout
from
'../../../components/detail/components/quotationDeskLayout'
;
import
BidDetailLayout
from
'../../../components/detail/components/bidDetailLayout'
;
import
RankItem
from
'./components/rank'
;
import
StatusBox
from
'./components/statusBox'
;
import
styles
from
'./index.less'
;
const
Management
=
()
=>
{
return
(
<
div
className=
{
styles
.
warp
}
>
<
div
className=
{
styles
.
header
}
>
进口头层黄牛皮荔枝纹竞价
</
div
>
<
div
className=
{
styles
.
header
}
>
<
ArrowLeftOutlined
className=
{
styles
.
goBack
}
onClick=
{
()
=>
history
.
goBack
()
}
/>
<
div
className=
{
styles
.
title
}
>
进口头层黄牛皮荔枝纹竞价
</
div
>
</
div
>
<
div
className=
{
styles
.
layout
}
>
<
Row
gutter=
{
[
8
,
8
]
}
>
<
Row
gutter=
{
[
8
,
8
]
}
>
<
Col
span=
{
6
}
>
<
RankItem
/>
</
Col
>
<
Col
span=
{
18
}
>
<
Row
gutter=
{
[
8
,
8
]
}
style=
{
{
marginBottom
:
'8px'
}
}
>
<
Row
gutter=
{
[
8
,
8
]
}
style=
{
{
marginBottom
:
'8px'
}
}
>
<
Col
span=
{
16
}
>
<
QuotationDeskLayout
/>
</
Col
>
...
...
src/pages/transaction/purchaseAbility/purchaseBid/readyConfirm/index.tsx
View file @
5a5d1f3a
...
...
@@ -8,6 +8,7 @@ import EyePreview from '@/components/EyePreview';
import
{
PublicApi
}
from
'@/services/api'
;
import
{
formatTimeString
}
from
'@/utils'
import
ConfirmBidResultModal
from
'../components/confirmBidResultModal'
;
import
Table
from
'../../components/table'
...
...
@@ -20,13 +21,16 @@ const { Text } = Typography;
const
ReadyConfirm
=
()
=>
{
const
ref
=
useRef
<
any
>
({});
// 确认竞价结果
const
[
confirmBidResultVisible
,
setConfirmBidResultVisible
]
=
useState
<
boolean
>
(
false
);
const
[
confirmRecord
,
setConfirmRecord
]
=
useState
<
any
>
();
const
columns
:
ColumnType
<
any
>
[]
=
[{
title
:
'序号'
,
align
:
'center'
,
dataIndex
:
'id'
,
key
:
'id'
,
render
:
(
t
,
r
,
i
)
=>
++
i
},
{
},
{
title
:
'竞价单号/摘要'
,
key
:
'biddingNo'
,
dataIndex
:
'biddingNo'
,
...
...
@@ -73,26 +77,31 @@ const ReadyConfirm = () => {
key
:
'operate'
,
dataIndex
:
'operate'
,
align
:
'center'
,
render
:
(
text
:
any
,
record
:
any
)
=>
<>
{
<>
<
Button
onClick=
{
()
=>
history
.
push
(
`/memberCenter/procurementAbility/offter/edit?id=${record.id}&number=${record.quotedPriceNo}`
)
}
type=
'link'
>
确认
</
Button
>
</>
}
</>
render
:
(
text
:
any
,
record
:
any
)
=>
<
Button
onClick=
{
()
=>
{
handleConfirm
(
record
)}
}
type=
'link'
>
确认
</
Button
>
}];
const
handleConfirm
=
(
record
:
any
)
=>
{
setConfirmRecord
(
record
);
setConfirmBidResultVisible
(
true
);
}
return
(
<
Table
reload=
{
ref
}
schemaType=
"PURCHASEBIDOSIGNUP_SCHEMA"
columns=
{
columns
}
effects=
"purchaseInquiryNo"
fetch=
{
PublicApi
.
getPurchaseQuotedPriceAddList
}
/>
<>
<
Table
reload=
{
ref
}
schemaType=
"PURCHASEBIDOSIGNUP_SCHEMA"
columns=
{
columns
}
effects=
"purchaseInquiryNo"
fetch=
{
PublicApi
.
getPurchaseQuotedPriceAddList
}
/>
<
ConfirmBidResultModal
record=
{
confirmRecord
}
title=
"确认竞价结果"
visible=
{
confirmBidResultVisible
}
onCancel=
{
()
=>
setConfirmBidResultVisible
(
false
)
}
onOk=
{
()
=>
{
ref
.
current
.
reload
()}
}
/>
</>
)
}
export
default
ReadyConfirm
src/pages/transaction/purchaseAbility/purchaseBid/readyExamineOne/index.tsx
View file @
5a5d1f3a
...
...
@@ -8,6 +8,7 @@ import EyePreview from '@/components/EyePreview';
import
{
PublicApi
}
from
'@/services/api'
;
import
{
formatTimeString
}
from
'@/utils'
import
ModalOperate
from
'../../components/modalOperate'
;
import
Table
from
'../../components/table'
...
...
@@ -23,6 +24,8 @@ const ReadyExamineOne = () => {
/** 多选操作 */
const
ref
=
useRef
<
any
>
({});
const
[
rowkeys
,
setRowKeys
]
=
useState
<
Array
<
number
>>
([]);
const
[
id
,
setId
]
=
useState
<
any
>
();
const
[
visible
,
setVisible
]
=
useState
<
boolean
>
(
false
);
const
columns
:
ColumnType
<
any
>
[]
=
[{
title
:
'竞价单号/摘要'
,
key
:
'biddingNo'
,
...
...
@@ -63,25 +66,16 @@ const ReadyExamineOne = () => {
key
:
'operate'
,
dataIndex
:
'operate'
,
align
:
'center'
,
render
:
(
text
:
any
,
record
:
any
)
=>
<>
{
<>
<
Button
onClick=
{
()
=>
history
.
push
(
`/memberCenter/procurementAbility/offter/edit?id=${record.id}&number=${record.quotedPriceNo}`
)
}
type=
'link'
>
审核
</
Button
>
</>
}
</>
render
:
(
text
:
any
,
record
:
any
)
=>
<
Button
onClick=
{
()
=>
{
handleExamine
(
record
.
id
)
}
}
type=
'link'
>
审核
</
Button
>
}];
/** 批量审核 */
const
fetchSubmitBatch
=
async
(
id
?:
number
)
=>
{
let
res
=
null
;
if
(
id
)
{
res
=
await
PublicApi
.
postPurchase
QuotedPriceSubmit
({
id
});
res
=
await
PublicApi
.
postPurchase
BiddingExamine1
({
id
,
state
:
1
});
}
else
{
res
=
await
PublicApi
.
postPurchase
QuotedPriceSubmit
Batch
({
ids
:
rowkeys
});
res
=
await
PublicApi
.
postPurchase
BiddingExamine1
Batch
({
ids
:
rowkeys
});
}
if
(
res
.
code
===
1000
)
{
ref
.
current
.
reload
();
...
...
@@ -89,30 +83,45 @@ const ReadyExamineOne = () => {
}
}
const
handleExamine
=
(
id
:
number
)
=>
{
setId
(
id
);
setVisible
(
!
visible
);
}
return
(
<
Table
selectedRow
reload=
{
ref
}
fetchRowkeys=
{
(
e
)
=>
setRowKeys
(
e
)
}
schemaType=
"PURCHASEBIDREADYADD_SCHEMA"
columns=
{
columns
}
effects=
"purchaseInquiryNo"
fetch=
{
PublicApi
.
getPurchaseQuotedPriceAddList
}
controllerBtns=
{
<
Row
>
<
Col
span=
{
24
}
>
<
Space
size=
{
16
}
>
<
Button
onClick=
{
()
=>
fetchSubmitBatch
()
}
disabled=
{
rowkeys
.
length
===
0
}
>
批量审核通过
</
Button
>
</
Space
>
</
Col
>
</
Row
>
}
/>
<>
<
Table
selectedRow
reload=
{
ref
}
fetchRowkeys=
{
(
e
)
=>
setRowKeys
(
e
)
}
schemaType=
"PURCHASEBIDREADYADD_SCHEMA"
columns=
{
columns
}
effects=
"biddingNo"
fetch=
{
PublicApi
.
getPurchaseBiddingStayExamineList1
}
controllerBtns=
{
<
Row
>
<
Col
span=
{
24
}
>
<
Space
size=
{
16
}
>
<
Button
onClick=
{
()
=>
fetchSubmitBatch
()
}
disabled=
{
rowkeys
.
length
===
0
}
>
批量审核通过
</
Button
>
</
Space
>
</
Col
>
</
Row
>
}
/>
<
ModalOperate
id=
{
id
}
title=
"单据审核"
modalType=
"audit"
visible=
{
visible
}
fetch=
{
PublicApi
.
postPurchaseBiddingExamine1
}
onCancel=
{
()
=>
setVisible
(
false
)
}
/>
</>
)
}
export
default
ReadyExamineOne
src/pages/transaction/purchaseAbility/purchaseBid/readyExamineResultOne/index.tsx
View file @
5a5d1f3a
...
...
@@ -8,6 +8,7 @@ import EyePreview from '@/components/EyePreview';
import
{
PublicApi
}
from
'@/services/api'
;
import
{
formatTimeString
}
from
'@/utils'
import
ModalOperate
from
'../../components/modalOperate'
;
import
Table
from
'../../components/table'
...
...
@@ -21,6 +22,8 @@ const { Text } = Typography;
const
ReadyExamineResultOne
=
()
=>
{
const
ref
=
useRef
<
any
>
({});
const
[
rowkeys
,
setRowKeys
]
=
useState
<
Array
<
number
>>
([]);
const
[
id
,
setId
]
=
useState
<
any
>
();
const
[
visible
,
setVisible
]
=
useState
<
boolean
>
(
false
);
const
columns
:
ColumnType
<
any
>
[]
=
[{
title
:
'竞价单号/摘要'
,
key
:
'biddingNo'
,
...
...
@@ -68,16 +71,7 @@ const ReadyExamineResultOne = () => {
key
:
'operate'
,
dataIndex
:
'operate'
,
align
:
'center'
,
render
:
(
text
:
any
,
record
:
any
)
=>
<>
{
<>
<
Button
onClick=
{
()
=>
history
.
push
(
`/memberCenter/procurementAbility/offter/edit?id=${record.id}&number=${record.quotedPriceNo}`
)
}
type=
'link'
>
审核
</
Button
>
</>
}
</>
render
:
(
text
:
any
,
record
:
any
)
=>
<
Button
onClick=
{
()
=>
{
handleExamine
(
record
.
id
)
}
}
type=
'link'
>
审核
</
Button
>
}];
/** 批量审核 */
...
...
@@ -94,30 +88,45 @@ const ReadyExamineResultOne = () => {
}
}
const
handleExamine
=
(
id
:
number
)
=>
{
setId
(
id
);
setVisible
(
!
visible
);
}
return
(
<
Table
selectedRow
reload=
{
ref
}
fetchRowkeys=
{
(
e
)
=>
setRowKeys
(
e
)
}
schemaType=
"PURCHASEBIDREADYADD_SCHEMA"
columns=
{
columns
}
effects=
"purchaseInquiryNo"
fetch=
{
PublicApi
.
getPurchaseQuotedPriceAddList
}
controllerBtns=
{
<
Row
>
<
Col
span=
{
24
}
>
<
Space
size=
{
16
}
>
<
Button
onClick=
{
()
=>
fetchSubmitBatch
()
}
disabled=
{
rowkeys
.
length
===
0
}
>
批量审核通过
<>
<
Table
selectedRow
reload=
{
ref
}
fetchRowkeys=
{
(
e
)
=>
setRowKeys
(
e
)
}
schemaType=
"PURCHASEBIDREADYADD_SCHEMA"
columns=
{
columns
}
effects=
"biddingNo"
fetch=
{
PublicApi
.
getPurchaseBiddingStayExamineList2
}
controllerBtns=
{
<
Row
>
<
Col
span=
{
24
}
>
<
Space
size=
{
16
}
>
<
Button
onClick=
{
()
=>
fetchSubmitBatch
()
}
disabled=
{
rowkeys
.
length
===
0
}
>
批量审核通过
</
Button
>
</
Space
>
</
Col
>
</
Row
>
}
/>
</
Space
>
</
Col
>
</
Row
>
}
/>
<
ModalOperate
id=
{
id
}
title=
"单据审核"
modalType=
"audit"
visible=
{
visible
}
fetch=
{
PublicApi
.
postPurchaseBiddingExamine1
}
onCancel=
{
()
=>
setVisible
(
false
)
}
/>
</>
)
}
export
default
ReadyExamineResultOne
src/pages/transaction/purchaseAbility/purchaseBid/readyExamineResultTwo/index.tsx
View file @
5a5d1f3a
...
...
@@ -8,6 +8,7 @@ import EyePreview from '@/components/EyePreview';
import
{
PublicApi
}
from
'@/services/api'
;
import
{
formatTimeString
}
from
'@/utils'
import
ModalOperate
from
'../../components/modalOperate'
;
import
Table
from
'../../components/table'
...
...
@@ -22,6 +23,8 @@ const { Text } = Typography;
const
ReadyExamineResultTwo
=
()
=>
{
const
ref
=
useRef
<
any
>
({});
const
[
rowkeys
,
setRowKeys
]
=
useState
<
Array
<
number
>>
([]);
const
[
id
,
setId
]
=
useState
<
any
>
();
const
[
visible
,
setVisible
]
=
useState
<
boolean
>
(
false
);
const
columns
:
ColumnType
<
any
>
[]
=
[{
title
:
'竞价单号/摘要'
,
key
:
'biddingNo'
,
...
...
@@ -69,16 +72,7 @@ const ReadyExamineResultTwo = () => {
key
:
'operate'
,
dataIndex
:
'operate'
,
align
:
'center'
,
render
:
(
text
:
any
,
record
:
any
)
=>
<>
{
<>
<
Button
onClick=
{
()
=>
history
.
push
(
`/memberCenter/procurementAbility/offter/edit?id=${record.id}&number=${record.quotedPriceNo}`
)
}
type=
'link'
>
审核
</
Button
>
</>
}
</>
render
:
(
text
:
any
,
record
:
any
)
=>
<
Button
onClick=
{
()
=>
{
handleExamine
(
record
.
id
)
}
}
type=
'link'
>
审核
</
Button
>
}];
/** 批量审核 */
...
...
@@ -95,30 +89,45 @@ const ReadyExamineResultTwo = () => {
}
}
const
handleExamine
=
(
id
:
number
)
=>
{
setId
(
id
);
setVisible
(
!
visible
);
}
return
(
<
Table
selectedRow
reload=
{
ref
}
fetchRowkeys=
{
(
e
)
=>
setRowKeys
(
e
)
}
schemaType=
"PURCHASEBIDREADYADD_SCHEMA"
columns=
{
columns
}
effects=
"purchaseInquiryNo"
fetch=
{
PublicApi
.
getPurchaseQuotedPriceAddList
}
controllerBtns=
{
<
Row
>
<
Col
span=
{
24
}
>
<
Space
size=
{
16
}
>
<
Button
onClick=
{
()
=>
fetchSubmitBatch
()
}
disabled=
{
rowkeys
.
length
===
0
}
>
批量审核通过
<>
<
Table
selectedRow
reload=
{
ref
}
fetchRowkeys=
{
(
e
)
=>
setRowKeys
(
e
)
}
schemaType=
"PURCHASEBIDREADYADD_SCHEMA"
columns=
{
columns
}
effects=
"purchaseInquiryNo"
fetch=
{
PublicApi
.
getPurchaseQuotedPriceAddList
}
controllerBtns=
{
<
Row
>
<
Col
span=
{
24
}
>
<
Space
size=
{
16
}
>
<
Button
onClick=
{
()
=>
fetchSubmitBatch
()
}
disabled=
{
rowkeys
.
length
===
0
}
>
批量审核通过
</
Button
>
</
Space
>
</
Col
>
</
Row
>
}
/>
</
Space
>
</
Col
>
</
Row
>
}
/>
<
ModalOperate
id=
{
id
}
title=
"单据审核"
modalType=
"audit"
visible=
{
visible
}
fetch=
{
PublicApi
.
postPurchaseBiddingExamine1
}
onCancel=
{
()
=>
setVisible
(
false
)
}
/>
</>
)
}
export
default
ReadyExamineResultTwo
src/pages/transaction/purchaseAbility/purchaseBid/readyExamineSignUp/index.tsx
View file @
5a5d1f3a
...
...
@@ -9,6 +9,7 @@ import { PublicApi } from '@/services/api';
import
{
formatTimeString
}
from
'@/utils'
import
Table
from
'../../components/table'
import
ModalOperate
from
'../../components/modalOperate'
;
import
{
...
...
@@ -20,6 +21,8 @@ const { Text } = Typography;
const
ReadyExamineSignUp
=
()
=>
{
const
ref
=
useRef
<
any
>
({});
const
[
id
,
setId
]
=
useState
<
any
>
();
const
[
visible
,
setVisible
]
=
useState
<
boolean
>
(
false
);
const
columns
:
ColumnType
<
any
>
[]
=
[{
title
:
'序号'
,
align
:
'center'
,
...
...
@@ -76,26 +79,32 @@ const ReadyExamineSignUp = () => {
key
:
'operate'
,
dataIndex
:
'operate'
,
align
:
'center'
,
render
:
(
text
:
any
,
record
:
any
)
=>
<>
{
<>
<
Button
onClick=
{
()
=>
history
.
push
(
`/memberCenter/procurementAbility/offter/edit?id=${record.id}&number=${record.quotedPriceNo}`
)
}
type=
'link'
>
审核
</
Button
>
</>
}
</>
render
:
(
text
:
any
,
record
:
any
)
=>
<
Button
onClick=
{
()
=>
{
handleExamine
(
record
.
id
)
}
}
type=
'link'
>
审核
</
Button
>
}];
const
handleExamine
=
(
id
:
number
)
=>
{
setId
(
id
);
setVisible
(
!
visible
);
}
return
(
<
Table
reload=
{
ref
}
schemaType=
"PURCHASEBIDOSIGNUP_SCHEMA"
columns=
{
columns
}
effects=
"purchaseInquiryNo"
fetch=
{
PublicApi
.
getPurchaseQuotedPriceAddList
}
/>
<>
<
Table
reload=
{
ref
}
schemaType=
"PURCHASEBIDOSIGNUP_SCHEMA"
columns=
{
columns
}
effects=
"biddingNo"
fetch=
{
PublicApi
.
getPurchaseBiddingStayExaminBiddingList
}
/>
<
ModalOperate
id=
{
id
}
title=
"单据审核"
modalType=
"audit"
visible=
{
visible
}
fetch=
{
PublicApi
.
postPurchaseBiddingExaminBiddingSignup
}
onCancel=
{
()
=>
setVisible
(
false
)
}
/>
</>
)
}
export
default
ReadyExamineSignUp
src/pages/transaction/purchaseAbility/purchaseBid/readyExamineTwo/index.tsx
View file @
5a5d1f3a
...
...
@@ -8,6 +8,7 @@ import EyePreview from '@/components/EyePreview';
import
{
PublicApi
}
from
'@/services/api'
;
import
{
formatTimeString
}
from
'@/utils'
import
ModalOperate
from
'../../components/modalOperate'
;
import
Table
from
'../../components/table'
...
...
@@ -22,6 +23,8 @@ const ReadyExamineTwo = () => {
/** 多选操作 */
const
ref
=
useRef
<
any
>
({});
const
[
rowkeys
,
setRowKeys
]
=
useState
<
Array
<
number
>>
([]);
const
[
id
,
setId
]
=
useState
<
any
>
();
const
[
visible
,
setVisible
]
=
useState
<
boolean
>
(
false
);
const
columns
:
ColumnType
<
any
>
[]
=
[{
title
:
'竞价单号/摘要'
,
key
:
'biddingNo'
,
...
...
@@ -62,25 +65,16 @@ const ReadyExamineTwo = () => {
key
:
'operate'
,
dataIndex
:
'operate'
,
align
:
'center'
,
render
:
(
text
:
any
,
record
:
any
)
=>
<>
{
<>
<
Button
onClick=
{
()
=>
history
.
push
(
`/memberCenter/procurementAbility/offter/edit?id=${record.id}&number=${record.quotedPriceNo}`
)
}
type=
'link'
>
审核
</
Button
>
</>
}
</>
render
:
(
text
:
any
,
record
:
any
)
=>
<
Button
onClick=
{
()
=>
{
handleExamine
(
record
.
id
)
}
}
type=
'link'
>
审核
</
Button
>
}];
/** 批量审核 */
const
fetchSubmitBatch
=
async
(
id
?:
number
)
=>
{
let
res
=
null
;
if
(
id
)
{
res
=
await
PublicApi
.
postPurchase
QuotedPriceSubmit
({
id
});
res
=
await
PublicApi
.
postPurchase
BiddingExamine2
({
id
,
state
:
1
});
}
else
{
res
=
await
PublicApi
.
postPurchase
QuotedPriceSubmit
Batch
({
ids
:
rowkeys
});
res
=
await
PublicApi
.
postPurchase
BiddingExamine2
Batch
({
ids
:
rowkeys
});
}
if
(
res
.
code
===
1000
)
{
ref
.
current
.
reload
();
...
...
@@ -88,30 +82,45 @@ const ReadyExamineTwo = () => {
}
}
const
handleExamine
=
(
id
:
number
)
=>
{
setId
(
id
);
setVisible
(
!
visible
);
}
return
(
<
Table
selectedRow
reload=
{
ref
}
fetchRowkeys=
{
(
e
)
=>
setRowKeys
(
e
)
}
schemaType=
"PURCHASEBIDREADYADD_SCHEMA"
columns=
{
columns
}
effects=
"purchaseInquiryNo"
fetch=
{
PublicApi
.
getPurchaseQuotedPriceAddList
}
controllerBtns=
{
<
Row
>
<
Col
span=
{
24
}
>
<
Space
size=
{
16
}
>
<
Button
onClick=
{
()
=>
fetchSubmitBatch
()
}
disabled=
{
rowkeys
.
length
===
0
}
>
批量审核通过
<>
<
Table
selectedRow
reload=
{
ref
}
fetchRowkeys=
{
(
e
)
=>
setRowKeys
(
e
)
}
schemaType=
"PURCHASEBIDREADYADD_SCHEMA"
columns=
{
columns
}
effects=
"biddingNo"
fetch=
{
PublicApi
.
getPurchaseBiddingStayExamineList2
}
controllerBtns=
{
<
Row
>
<
Col
span=
{
24
}
>
<
Space
size=
{
16
}
>
<
Button
onClick=
{
()
=>
fetchSubmitBatch
()
}
disabled=
{
rowkeys
.
length
===
0
}
>
批量审核通过
</
Button
>
</
Space
>
</
Col
>
</
Row
>
}
/>
</
Space
>
</
Col
>
</
Row
>
}
/>
<
ModalOperate
id=
{
id
}
title=
"单据审核"
modalType=
"audit"
visible=
{
visible
}
fetch=
{
PublicApi
.
postPurchaseBiddingExamine2
}
onCancel=
{
()
=>
setVisible
(
false
)
}
/>
</>
)
}
export
default
ReadyExamineTwo
src/pages/transaction/purchaseAbility/purchaseBid/readySubmit/index.tsx
View file @
5a5d1f3a
...
...
@@ -62,25 +62,16 @@ const ReadySubmit = () => {
key
:
'operate'
,
dataIndex
:
'operate'
,
align
:
'center'
,
render
:
(
text
:
any
,
record
:
any
)
=>
<>
{
<>
<
Button
onClick=
{
()
=>
history
.
push
(
`/memberCenter/procurementAbility/offter/edit?id=${record.id}&number=${record.quotedPriceNo}`
)
}
type=
'link'
>
提交
</
Button
>
</>
}
</>
render
:
(
text
:
any
,
record
:
any
)
=>
<
Button
onClick=
{
()
=>
{
fetchSubmitBatch
(
record
.
id
)}
}
type=
'link'
>
提交
</
Button
>
}];
/** 批量审核 */
const
fetchSubmitBatch
=
async
(
id
?:
number
)
=>
{
let
res
=
null
;
if
(
id
)
{
res
=
await
PublicApi
.
postPurchase
QuotedPriceSubmit
({
id
});
res
=
await
PublicApi
.
postPurchase
BiddingSubmit
({
id
,
state
:
1
});
}
else
{
res
=
await
PublicApi
.
postPurchase
QuotedPrice
SubmitBatch
({
ids
:
rowkeys
});
res
=
await
PublicApi
.
postPurchase
Bidding
SubmitBatch
({
ids
:
rowkeys
});
}
if
(
res
.
code
===
1000
)
{
ref
.
current
.
reload
();
...
...
@@ -95,8 +86,8 @@ const ReadySubmit = () => {
fetchRowkeys=
{
(
e
)
=>
setRowKeys
(
e
)
}
schemaType=
"PURCHASEBIDREADYADD_SCHEMA"
columns=
{
columns
}
effects=
"
purchaseInquiry
No"
fetch=
{
PublicApi
.
getPurchase
QuotedPriceAdd
List
}
effects=
"
bidding
No"
fetch=
{
PublicApi
.
getPurchase
BiddingStaySubmit
List
}
controllerBtns=
{
<
Row
>
<
Col
span=
{
24
}
>
...
...
src/pages/transaction/purchaseAbility/purchaseBid/readySubmitExamineResult/index.tsx
View file @
5a5d1f3a
...
...
@@ -9,6 +9,7 @@ import { PublicApi } from '@/services/api';
import
{
formatTimeString
}
from
'@/utils'
import
Table
from
'../../components/table'
import
SubmitResultModal
from
'../components/submitResultModal'
import
{
...
...
@@ -22,6 +23,8 @@ const ReadySubmitExamineResult = () => {
/** 多选操作 */
const
ref
=
useRef
<
any
>
({});
const
[
rowkeys
,
setRowKeys
]
=
useState
<
Array
<
number
>>
([]);
const
[
id
,
setId
]
=
useState
<
number
>
();
const
[
visible
,
setVisible
]
=
useState
<
boolean
>
(
false
);
const
columns
:
ColumnType
<
any
>
[]
=
[{
title
:
'竞价单号/摘要'
,
key
:
'biddingNo'
,
...
...
@@ -70,14 +73,7 @@ const ReadySubmitExamineResult = () => {
dataIndex
:
'operate'
,
align
:
'center'
,
render
:
(
text
:
any
,
record
:
any
)
=>
<>
{
<>
<
Button
onClick=
{
()
=>
history
.
push
(
`/memberCenter/procurementAbility/offter/edit?id=${record.id}&number=${record.quotedPriceNo}`
)
}
type=
'link'
>
提交审核
</
Button
>
</>
}
<
Button
onClick=
{
()
=>
handleSubmit
(
record
.
id
)
}
type=
'link'
>
提交审核
</
Button
>
</>
}];
...
...
@@ -95,30 +91,42 @@ const ReadySubmitExamineResult = () => {
}
}
const
handleSubmit
=
(
id
:
number
)
=>
{
setId
(
id
);
setVisible
(
true
);
}
return
(
<
Table
selectedRow
reload=
{
ref
}
fetchRowkeys=
{
(
e
)
=>
setRowKeys
(
e
)
}
schemaType=
"PURCHASEBIDREADYADD_SCHEMA"
columns=
{
columns
}
effects=
"purchaseInquiryNo"
fetch=
{
PublicApi
.
getPurchaseQuotedPriceAddList
}
controllerBtns=
{
<
Row
>
<
Col
span=
{
24
}
>
<
Space
size=
{
16
}
>
<
Button
onClick=
{
()
=>
fetchSubmitBatch
()
}
disabled=
{
rowkeys
.
length
===
0
}
>
批量提交
<>
<
Table
selectedRow
reload=
{
ref
}
fetchRowkeys=
{
(
e
)
=>
setRowKeys
(
e
)
}
schemaType=
"PURCHASEBIDREADYADD_SCHEMA"
columns=
{
columns
}
effects=
"purchaseInquiryNo"
fetch=
{
PublicApi
.
getPurchaseQuotedPriceAddList
}
controllerBtns=
{
<
Row
>
<
Col
span=
{
24
}
>
<
Space
size=
{
16
}
>
<
Button
onClick=
{
()
=>
fetchSubmitBatch
()
}
disabled=
{
rowkeys
.
length
===
0
}
>
批量提交
</
Button
>
</
Space
>
</
Col
>
</
Row
>
}
/>
</
Space
>
</
Col
>
</
Row
>
}
/>
<
SubmitResultModal
title=
{
'提交竞价结果'
}
visible=
{
visible
}
onCancel=
{
()
=>
{
setVisible
(
false
)
}
}
/>
</>
)
}
export
default
ReadySubmitExamineResult
src/pages/transaction/purchaseAbility/purchaseBid/search/detail.tsx
View file @
5a5d1f3a
...
...
@@ -7,7 +7,7 @@ import { PublicApi } from '@/services/api';
import
{
GlobalConfig
}
from
'@/global/config'
import
{
formatTimeString
}
from
'@/utils'
import
{
PurchaseBid
Context
}
from
'../../components/detail/components/context'
;
import
{
Context
}
from
'../../components/detail/components/context'
;
import
PeripheralLayout
from
'../../components/detail'
;
import
ProgressLayout
from
'../../components/detail/components/progressLayout'
;
import
RecordLyout
from
'../../components/detail/components/recordLyout'
;
...
...
@@ -24,7 +24,7 @@ import {
}
from
'../../constants/purchaseBid'
;
import
ConfirmBidResultModal
from
'../components/confirmBidResultModal'
;
import
UploadBidResultModal
from
'../components/uploadBid
ResultModal'
;
import
SubmitResultModal
from
'../components/submit
ResultModal'
;
import
QuotationDetailsDrawer
from
'../components/quotationDetailsDrawer'
;
const
transforType
=
{
...
...
@@ -232,7 +232,7 @@ const SearchDetail = () => {
}
return
(
<
PurchaseBid
Context
.
Provider
value=
{
dataSource
}
>
<
Context
.
Provider
value=
{
dataSource
}
>
<
PeripheralLayout
no=
{
dataSource
.
biddingNo
}
tabLink=
{
TABLINK
}
...
...
@@ -438,10 +438,11 @@ const SearchDetail = () => {
/>
<
ConfirmBidResultModal
title=
"确认竞价结果"
record=
{
dataSource
}
visible=
{
confirmBidResultVisible
}
onCancel=
{
()
=>
setConfirmBidResultVisible
(
false
)
}
/>
<
UploadBid
ResultModal
<
Submit
ResultModal
title=
"提交竞价结果"
visible=
{
uploadBidResultVisible
}
onCancel=
{
()
=>
setUploadBidResultVisible
(
false
)
}
...
...
@@ -451,7 +452,7 @@ const SearchDetail = () => {
visible=
{
quotationDetailsVisible
}
onClose=
{
()
=>
setQuotationDetailsVisible
(
false
)
}
/>
</
PurchaseBid
Context
.
Provider
>
</
Context
.
Provider
>
)
}
export
default
SearchDetail
;
src/pages/transaction/purchaseAbility/schema/onlineBid.ts
View file @
5a5d1f3a
...
...
@@ -11,7 +11,7 @@ export const ONLINEBIDORDER_SCHEMA: ISchema = {
type
:
'object'
,
"x-component"
:
'mega-layout'
,
properties
:
{
purchaseInquiry
No
:
{
bidding
No
:
{
type
:
'string'
,
"x-component"
:
"Search"
,
"x-mega-props"
:
{
...
...
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