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
25c2beda
Commit
25c2beda
authored
Sep 29, 2020
by
前端-黄佳鑫
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
商品询价
parent
d6037f0b
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
529 additions
and
185 deletions
+529
-185
tranactionRoute.ts
config/routes/tranactionRoute.ts
+6
-0
menu.ts
src/locales/zh-CN/menu.ts
+1
-0
index.tsx
...ges/transaction/electronicContracts/addContract/index.tsx
+2
-2
detail.tsx
...ges/transaction/enquiryOfferConfirm/components/detail.tsx
+0
-1
add.tsx
src/pages/transaction/goodsOffer/addEnquiryOrder/add.tsx
+18
-4
basicInfo.tsx
...ction/goodsOffer/addEnquiryOrder/components/basicInfo.tsx
+149
-26
enquiryGoods.tsx
...on/goodsOffer/addEnquiryOrder/components/enquiryGoods.tsx
+280
-16
index.tsx
src/pages/transaction/goodsOffer/addEnquiryOrder/index.tsx
+47
-136
details.tsx
src/pages/transaction/goodsOffer/components/details.tsx
+0
-0
index.less
src/pages/transaction/goodsOffer/components/index.less
+26
-0
No files found.
config/routes/tranactionRoute.ts
View file @
25c2beda
...
...
@@ -297,6 +297,12 @@ const TranactionRoute = {
path
:
'/memberCenter/tranactionAbility/goodsOffer/pendingSubmit'
,
name
:
'pendingSubmit'
,
component
:
'@/pages/transaction/goodsOffer/pendingSubmit'
},
{
path
:
'/memberCenter/tranactionAbility/goodsOffer/components/details'
,
name
:
'details'
,
hideInMenu
:
true
,
component
:
'@/pages/transaction/goodsOffer/components/details'
}
]
},
...
...
src/locales/zh-CN/menu.ts
View file @
25c2beda
...
...
@@ -126,6 +126,7 @@ export default {
'menu.tranactionAbility.goodsOffer.enquiryOrder'
:
'询价单查询'
,
'menu.tranactionAbility.goodsOffer.addEnquiryOrder'
:
'待新增询价单'
,
'menu.tranactionAbility.goodsOffer.add'
:
'新建询价单'
,
'menu.tranactionAbility.goodsOffer.details'
:
'新建询价单'
,
'menu.tranactionAbility.goodsOffer.pendingReviewOne'
:
'待审核询价单(一级)'
,
'menu.tranactionAbility.goodsOffer.pendingReviewTwo'
:
'待审核询价单(二级)'
,
'menu.tranactionAbility.goodsOffer.pendingSubmit'
:
'待提交询价单'
,
...
...
src/pages/transaction/electronicContracts/addContract/index.tsx
View file @
25c2beda
...
...
@@ -75,8 +75,8 @@ const AddContract: React.FC<{}> = (props) => {
name
:
res
.
name
,
version
:
res
.
version
,
description
:
res
.
description
,
fileExampleUrl
:
fileExampleUrl
.
contract
Name
,
fileExampleName
:
fileExampleUrl
.
contract
Url
,
fileExampleUrl
:
fileExampleUrl
.
contract
Url
,
fileExampleName
:
fileExampleUrl
.
contract
Name
,
fileUrl
,
fileName
:
uploadFile
.
name
}
...
...
src/pages/transaction/enquiryOfferConfirm/components/detail.tsx
View file @
25c2beda
...
...
@@ -711,7 +711,6 @@ const detailInfo: React.FC<{}> = () => {
},
)
}
</
div
>
</
div
>
</
Col
>
...
...
src/pages/transaction/goodsOffer/addEnquiryOrder/add.tsx
View file @
25c2beda
import
React
from
'react'
;
import
React
,
{
useState
,
useRef
}
from
'react'
;
import
{
history
}
from
'umi'
;
import
{
Button
,
Card
,
Tabs
}
from
'antd'
;
import
{
PageHeaderWrapper
}
from
'@ant-design/pro-layout'
;
...
...
@@ -8,9 +8,19 @@ import EnquiryGoods from './components/enquiryGoods'; // 询价商品
import
TradingConditions
from
'./components/tradingConditions'
;
// 交易条件
import
Attached
from
'./components/attached'
;
// 附件
import
FlowRecord
from
'./components/flowRecord'
;
// 流转记录
import
{
PublicApi
}
from
'@/services/api'
const
{
TabPane
}
=
Tabs
;
const
AddQuotes
:
React
.
FC
<
{}
>
=
()
=>
{
const
ref
=
useRef
<
any
>
({})
const
[
memberList
,
setmemberList
]
=
useState
([]);
/************* 页面的一些操作start *************/
const
onSumbit
=
async
(
params
:
any
)
=>
{
}
const
getMemberList
=
(
list
:
any
)
=>
{
setmemberList
(
list
);
}
/************* 页面的一些操作end *************/
return
(
<
PageHeaderWrapper
onBack=
{
()
=>
history
.
goBack
()
}
...
...
@@ -23,13 +33,17 @@ const AddQuotes: React.FC<{}> = () => {
<
Card
>
<
Tabs
type=
"card"
>
<
TabPane
tab=
"基本信息"
key=
"1"
>
<
BasicInfo
/>
<
BasicInfo
getMemberList=
{
getMemberList
}
/>
</
TabPane
>
<
TabPane
tab=
"询价商品"
key=
"2"
>
<
EnquiryGoods
/>
<
EnquiryGoods
memberList=
{
memberList
}
/>
</
TabPane
>
<
TabPane
tab=
"交易条件"
key=
"3"
>
<
TradingConditions
/>
<
TradingConditions
/>
</
TabPane
>
<
TabPane
tab=
"附件"
key=
"4"
>
<
Attached
/>
...
...
src/pages/transaction/goodsOffer/addEnquiryOrder/components/basicInfo.tsx
View file @
25c2beda
import
React
from
'react'
;
import
React
,
{
useState
,
useEffect
}
from
'react'
;
import
{
Form
,
Input
,
Button
}
from
'antd'
;
import
styles
from
'./index.less'
;
import
{
LinkOutlined
}
from
'@ant-design/icons'
;
import
{
useRowSelectionTable
}
from
'@/hooks/useRowSelectionTable'
;
import
{
ISchema
}
from
'@formily/antd'
;
import
ModalTable
from
'@/components/ModalTable'
import
{
PublicApi
}
from
'@/services/api'
const
layout
:
any
=
{
colon
:
false
,
...
...
@@ -10,33 +14,152 @@ const layout: any = {
labelAlign
:
"left"
};
const
{
Search
}
=
Input
;
const
BasicInfo
:
React
.
FC
<
{}
>
=
(
porps
)
=>
{
interface
queryProps
{
getMemberList
?:
Function
}
const
BasicInfo
:
React
.
FC
<
queryProps
>
=
(
props
)
=>
{
const
[
basicform
]
=
Form
.
useForm
();
const
{
getMemberList
}
=
props
;
// 会员添加弹窗控制
const
[
visibleChannelMember
,
setVisibleChannelMember
]
=
useState
(
false
);
const
[
memberList
,
setmemberList
]
=
useState
([]);
const
[
memberRowSelection
,
memberRowCtl
]
=
useRowSelectionTable
({
customKey
:
'memberId'
,
type
:
'radio'
});
const
handleOkAddMember
=
()
=>
{
setVisibleChannelMember
(
false
)
setmemberList
(
memberRowCtl
.
selectRow
);
getMemberList
(
memberRowCtl
.
selectRow
);
// 回传给父级
}
const
handleCancelAddMember
=
()
=>
{
setVisibleChannelMember
(
false
)
}
const
columnsSetMember
:
any
[]
=
[
{
title
:
'ID'
,
dataIndex
:
'memberId'
,
key
:
'memberId'
,
},
{
title
:
'会员名称'
,
dataIndex
:
'name'
,
key
:
'name'
,
},
{
title
:
'会员类型'
,
dataIndex
:
'memberTypeName'
,
key
:
'memberTypeName'
,
},
{
title
:
'会员角色'
,
dataIndex
:
'roleName'
,
key
:
'roleName'
,
},
{
title
:
'会员等级'
,
dataIndex
:
'levelTag'
,
key
:
'levelTag'
,
}
]
const
formSearch
:
ISchema
=
{
type
:
'object'
,
properties
:
{
name
:
{
type
:
'string'
,
"x-component"
:
'Search'
,
"x-component-props"
:
{
placeholder
:
'请输入会员名称'
}
}
}
}
// 模拟数据
const
data
=
[{
memberId
:
6
,
name
:
'测试会员数据'
,
roleId
:
5
,
roleName
:
'可可西'
,
memberTypeName
:
'超级会员'
,
level
:
1
,
levelTag
:
'倔强铂金'
},{
memberId
:
7
,
name
:
'测试会员数据'
,
roleId
:
5
,
roleName
:
'可可西'
,
memberTypeName
:
'超级会员'
,
level
:
1
,
levelTag
:
'倔强铂金'
}]
const
fetchMemberList
=
async
(
params
)
=>
{
// const res = await PublicApi.getMemberManageLowerMerchantProviderPage(params)
// return res.data
return
new
Promise
((
resolve
,
reject
)
=>
{
const
queryResult
=
data
.
find
(
v
=>
v
.
memberId
===
params
.
keywords
);
setTimeout
(()
=>
{
resolve
({
code
:
200
,
message
:
''
,
data
:
queryResult
?
[
queryResult
]
:
data
,
});
},
1000
);
});
}
// 选择会员弹框结束
useEffect
(()
=>
{
if
(
memberList
.
length
>
0
)
{
basicform
.
setFieldsValue
({
'memberName'
:
memberList
[
0
].
name
?
memberList
[
0
].
name
:
undefined
})
}
},[
memberList
])
/************* 页面的一些操作start *************/
/************* 页面的一些操作end *************/
return
(
<
Form
{
...
layout
}
className=
{
styles
.
revise_style
}
>
<
Form
.
Item
label=
'询价单摘要'
>
<
Input
/>
</
Form
.
Item
>
<
Form
.
Item
label=
'被询价会员'
>
<
Search
readOnly
enterButton=
{
<><
LinkOutlined
/>
选择
</>
}
/>
<
Button
type=
'link'
>
查看会员详情
</
Button
>
</
Form
.
Item
>
<
Form
.
Item
label=
'询价单号'
>
<
span
>
SPTY12
</
span
>
</
Form
.
Item
>
<
Form
.
Item
label=
'单据时间'
>
<
span
>
2020-08-20 12:56:25
</
span
>
</
Form
.
Item
>
<
Form
.
Item
label=
'外部状态'
>
<
span
>
待提交
</
span
>
</
Form
.
Item
>
<
Form
.
Item
label=
'内部状态'
>
<
span
>
待提交审核
</
span
>
</
Form
.
Item
>
</
Form
>
<>
<
Form
{
...
layout
}
form=
{
basicform
}
className=
{
styles
.
revise_style
}
>
<
Form
.
Item
label=
'询价单摘要'
name=
'details'
rules=
{
[{
required
:
true
,
message
:
'请输入询价单摘要'
}]
}
>
<
Input
/>
</
Form
.
Item
>
<
Form
.
Item
label=
'被询价会员'
name=
'memberName'
rules=
{
[{
required
:
true
,
message
:
'请选择被询价会员'
}]
}
>
<
Search
value=
{
memberList
.
length
>
0
?
memberList
[
0
].
name
:
undefined
}
readOnly
enterButton=
{
<><
LinkOutlined
/>
选择
</>
}
onSearch=
{
()
=>
setVisibleChannelMember
(
true
)
}
/>
<
Button
type=
'link'
>
查看会员详情
</
Button
>
</
Form
.
Item
>
<
Form
.
Item
label=
'询价单号'
name=
'orderNumber'
>
<
span
>
-
</
span
>
</
Form
.
Item
>
<
Form
.
Item
label=
'单据时间'
name=
'time'
>
<
span
>
-
</
span
>
</
Form
.
Item
>
<
Form
.
Item
label=
'外部状态'
name=
'external'
>
<
span
>
-
</
span
>
</
Form
.
Item
>
<
Form
.
Item
label=
'内部状态'
name=
'internal'
>
<
span
>
-
</
span
>
</
Form
.
Item
>
</
Form
>
{
/* 选择会员弹框 */
}
<
ModalTable
modalTitle=
'选择会员'
confirm=
{
handleOkAddMember
}
cancel=
{
handleCancelAddMember
}
visible=
{
visibleChannelMember
}
resetModal=
{
{
destroyOnClose
:
true
,
forceRender
:
true
}
}
columns=
{
columnsSetMember
}
rowSelection=
{
memberRowSelection
}
fetchTableData=
{
params
=>
fetchMemberList
(
params
)
}
formilyProps=
{
{
ctx
:
{
schema
:
formSearch
}
}
}
tableProps=
{
{
rowKey
:
'memberId'
,
}
}
/>
</>
)
}
...
...
src/pages/transaction/goodsOffer/addEnquiryOrder/components/enquiryGoods.tsx
View file @
25c2beda
import
React
,
{
useState
}
from
'react'
;
import
styles
from
'./index.less'
;
import
{
Button
}
from
'antd'
;
import
{
StandardTable
}
from
'god'
;
import
{
Button
,
message
,
Input
,
Table
}
from
'antd'
;
import
{
ColumnType
}
from
'antd/lib/table/interface'
;
import
{
PlusOutlined
}
from
'@ant-design/icons'
;
import
{
useRowSelectionTable
}
from
'@/hooks/useRowSelectionTable'
;
import
{
ISchema
,
createAsyncFormActions
}
from
'@formily/antd'
;
import
ModalTable
,
{
ModalTableProps
}
from
'@/components/ModalTable'
;
import
{
PublicApi
}
from
'@/services/api'
;
import
{
FORM_FILTER_PATH
}
from
'@/formSchema/const'
;
import
{
useStateFilterSearchLinkageEffect
}
from
'@/formSchema/effects/useFilterSearch'
;
import
SearchSelect
from
'@/components/NiceForm/components/SearchSelect'
import
Search
from
'@/components/NiceForm/components/Search'
import
Submit
from
'@/components/NiceForm/components/Submit'
const
EnquiryGoods
:
React
.
FC
<
{}
>
=
()
=>
{
const
columns
:
ColumnType
<
any
>
[]
=
[{
interface
queryProps
extends
ModalTableProps
{
memberList
?:
any
}
const
EnquiryGoods
:
React
.
FC
<
queryProps
>
=
(
props
)
=>
{
const
{
memberList
,
...
restProps
}
=
props
const
productFormActions
=
createAsyncFormActions
()
const
columns
:
ColumnType
<
any
>
[]
=
[{
title
:
'序号'
,
dataIndex
:
'productId'
,
},{
},
{
title
:
'商品名称'
,
dataIndex
:
'productName'
,
},{
},
{
title
:
'品类'
,
dataIndex
:
'inquiryListNo'
,
},{
},
{
title
:
'品牌'
,
dataIndex
:
'brand'
,
},{
},
{
title
:
'单位'
,
dataIndex
:
'nuit'
,
},{
},
{
title
:
'采购数量'
,
dataIndex
:
'purchaseQuantity'
,
},{
render
:(
text
:
any
,
recode
:
any
)
=>
<
Input
/>
},
{
title
:
'操作'
,
dataIndex
:
'operation'
,
}]
return
(
// 会员添加弹窗控制
const
[
visibleChannelMember
,
setVisibleChannelMember
]
=
useState
(
false
);
const
[
goodsList
,
setgoodsList
]
=
useState
([]);
const
[
memberRowSelection
,
memberRowCtl
]
=
useRowSelectionTable
({
customKey
:
'commodityId'
});
const
handleOkAddMember
=
()
=>
{
setVisibleChannelMember
(
false
);
const
arr
:
any
[]
=
[]
memberRowCtl
.
selectRow
.
forEach
((
v
,
i
)
=>
{
arr
.
push
({
productId
:
v
.
commodityId
,
productName
:
v
.
name
,
inquiryListNo
:
v
.
customerCategoryName
,
brand
:
v
.
brandName
,
nuit
:
v
.
unitName
})
setgoodsList
(
arr
)
})
}
const
handleCancelAddMember
=
()
=>
{
setVisibleChannelMember
(
false
)
}
const
columnsSetMember
:
any
[]
=
[
{
title
:
'ID'
,
dataIndex
:
'commodityId'
,
key
:
'commodityId'
,
},
{
title
:
'商品名称'
,
dataIndex
:
'name'
,
key
:
'name'
,
},
{
title
:
'品类'
,
dataIndex
:
'customerCategoryName'
,
key
:
'customerCategoryName'
,
},
{
title
:
'品牌'
,
dataIndex
:
'brandName'
,
key
:
'brandName'
,
}
]
const
formSearch
:
ISchema
=
{
type
:
'object'
,
properties
:
{
name
:
{
type
:
'string'
,
'x-component'
:
'ModalSearch'
,
'x-component-props'
:
{
placeholder
:
'商品名称'
,
align
:
'flex-left'
,
},
},
[
FORM_FILTER_PATH
]:
{
type
:
'object'
,
'x-component'
:
'flex-layout'
,
'x-component-props'
:
{
rowStyle
:
{
flexWrap
:
'nowrap'
,
style
:
{
marginRight
:
0
}
},
colStyle
:
{
marginTop
:
20
,
},
},
properties
:
{
customerCategoryName
:
{
type
:
'string'
,
"x-component-props"
:
{
placeholder
:
'请输入品类'
,
}
},
brandName
:
{
type
:
'string'
,
"x-component-props"
:
{
placeholder
:
'请输入品牌'
,
}
},
submit
:
{
"x-component"
:
'Submit'
,
"x-mega-props"
:
{
span
:
1
},
"x-component-props"
:
{
children
:
'查询'
}
}
}
}
}
}
// 模拟数据
const
data
=
[{
commodityId
:
1
,
name
:
'进口头层黄牛皮荔枝纹/红色/XXL'
,
customerCategoryName
:
'牛皮'
,
brandName
:
'PELLE'
,
unitName
:
'个'
,
},{
commodityId
:
2
,
name
:
'进口头层黄牛皮荔枝纹/红色/XXL'
,
customerCategoryName
:
'牛皮'
,
brandName
:
'PELLE'
,
unitName
:
'个'
,
},{
commodityId
:
3
,
name
:
'进口头层黄牛皮荔枝纹/红色/XXL'
,
customerCategoryName
:
'牛皮'
,
brandName
:
'PELLE'
,
unitName
:
'个'
,
},{
commodityId
:
4
,
name
:
'进口头层黄牛皮荔枝纹/红色/XXL'
,
customerCategoryName
:
'牛皮'
,
brandName
:
'PELLE'
,
unitName
:
'个'
,
},{
commodityId
:
5
,
name
:
'进口头层黄牛皮荔枝纹/红色/XXL'
,
customerCategoryName
:
'牛皮'
,
brandName
:
'PELLE'
,
unitName
:
'个'
,
},{
commodityId
:
6
,
name
:
'进口头层黄牛皮荔枝纹/红色/XXL'
,
customerCategoryName
:
'牛皮'
,
brandName
:
'PELLE'
,
unitName
:
'个'
,
},{
commodityId
:
7
,
name
:
'进口头层黄牛皮荔枝纹/红色/XXL'
,
customerCategoryName
:
'牛皮'
,
brandName
:
'PELLE'
,
unitName
:
'个'
,
},{
commodityId
:
8
,
name
:
'进口头层黄牛皮荔枝纹/红色/XXL'
,
customerCategoryName
:
'牛皮'
,
brandName
:
'PELLE'
,
unitName
:
'个'
,
},{
commodityId
:
9
,
name
:
'进口头层黄牛皮荔枝纹/红色/XXL'
,
customerCategoryName
:
'牛皮'
,
brandName
:
'PELLE'
,
unitName
:
'个'
,
},{
commodityId
:
10
,
name
:
'进口头层黄牛皮荔枝纹/红色/XXL'
,
customerCategoryName
:
'牛皮'
,
brandName
:
'PELLE'
,
unitName
:
'个'
,
},{
commodityId
:
11
,
name
:
'进口头层黄牛皮荔枝纹/红色/XXL'
,
customerCategoryName
:
'牛皮'
,
brandName
:
'PELLE'
,
unitName
:
'个'
,
},{
commodityId
:
12
,
name
:
'进口头层黄牛皮荔枝纹/红色/XXL'
,
customerCategoryName
:
'牛皮'
,
brandName
:
'PELLE'
,
unitName
:
'个'
,
},{
commodityId
:
13
,
name
:
'进口头层黄牛皮荔枝纹/红色/XXL'
,
customerCategoryName
:
'牛皮'
,
brandName
:
'PELLE'
,
unitName
:
'个'
,
},{
commodityId
:
14
,
name
:
'进口头层黄牛皮荔枝纹/红色/XXL'
,
customerCategoryName
:
'牛皮'
,
brandName
:
'PELLE'
,
unitName
:
'个'
,
},{
commodityId
:
15
,
name
:
'进口头层黄牛皮荔枝纹/红色/XXL'
,
customerCategoryName
:
'牛皮'
,
brandName
:
'PELLE'
,
unitName
:
'个'
,
}]
const
fetchGoodsList
=
async
(
params
)
=>
{
// const res = await PublicApi.getMemberManageLowerProviderPage(params)
// return res.data
return
new
Promise
((
resolve
,
reject
)
=>
{
console
.
log
(
data
,
params
)
setTimeout
(()
=>
{
resolve
({
code
:
200
,
message
:
''
,
data
:
data
,
});
},
1000
);
});
}
// 选择会员弹框结束
/************* 页面的一些操作start *************/
// 添加商品
const
addGoods
=
()
=>
{
if
(
memberList
.
length
>
0
&&
memberList
[
0
].
memberId
)
{
setVisibleChannelMember
(
true
);
}
else
{
message
.
error
(
'请选择被询价会员'
)
}
}
/************* 页面的一些操作end *************/
return
(
<
div
className=
{
styles
.
revise_style
}
>
<
Button
block
type=
'dashed'
><
PlusOutlined
/>
添加商品
</
Button
>
<
StandardTable
<
Button
block
type=
'dashed'
onClick=
{
addGoods
}
><
PlusOutlined
/>
添加商品
</
Button
>
<
Table
style=
{
{
marginTop
:
'16px'
}
}
columns=
{
columns
}
dataSource=
{
goodsList
}
pagination=
{
false
}
/>
{
/* 选择商品弹框 */
}
<
ModalTable
modalTitle=
'选择商品'
confirm=
{
handleOkAddMember
}
cancel=
{
handleCancelAddMember
}
visible=
{
visibleChannelMember
}
resetModal=
{
{
destroyOnClose
:
true
,
forceRender
:
true
}
}
columns=
{
columnsSetMember
}
rowSelection=
{
memberRowSelection
}
fetchTableData=
{
params
=>
fetchGoodsList
(
params
)
}
formilyProps=
{
{
ctx
:
{
schema
:
formSearch
,
actions
:
productFormActions
,
components
:
{
ModalSearch
:
Search
,
SearchSelect
,
Submit
},
effects
:
(
$
,
actions
)
=>
{
useStateFilterSearchLinkageEffect
(
$
,
actions
,
'name'
,
FORM_FILTER_PATH
,
);
}
}
}
}
tableProps=
{
{
rowKey
:
'id'
,
pagination
:
false
rowKey
:
'commodityId'
}
}
columns=
{
column
s
}
{
...
restProp
s
}
/>
</
div
>
)
...
...
src/pages/transaction/goodsOffer/addEnquiryOrder/index.tsx
View file @
25c2beda
import
React
,
{
ReactNode
,
useRef
,
useState
,
useEffect
}
from
'react'
;
import
React
,
{
useRef
,
useState
}
from
'react'
;
import
{
history
}
from
'umi'
;
import
{
Button
,
Card
,
Space
,
Row
,
Col
,
Dropdown
,
Menu
,
Popconfirm
}
from
'antd'
;
import
{
Button
,
Card
,
Space
,
Row
,
Col
,
Dropdown
,
Menu
,
Popconfirm
}
from
'antd'
;
import
{
PlusOutlined
,
DownOutlined
,
DeleteOutlined
}
from
'@ant-design/icons'
;
import
{
PageHeaderWrapper
}
from
'@ant-design/pro-layout'
;
import
{
PlusOutlined
,
DownOutlined
,
DeleteOutlined
}
from
'@ant-design/icons'
;
import
{
StandardTable
}
from
'god'
;
import
{
ColumnType
}
from
'antd/lib/table/interface'
;
import
{
IFormFilter
,
IButtonFilter
,
}
from
'god/dist/src/standard-table/TableController'
;
import
{
filterInteriorStateList
,
filterExternalStateList
}
from
'./../../common/statusList'
;
import
{
interiorState
,
interiorStateTwo
,
enquirySearchInteriorState
,
enquirySearchexternalState
}
from
'../../common/tableStatusList'
;
import
EyePreview
from
'@/components/EyePreview'
;
import
StatusSwitch
from
'@/components/StatusSwitch
'
;
import
{
interiorState
}
from
'../../common/tableStatusList'
import
statuStyle
from
'../../common/colorTag'
import
moment
from
'moment
'
;
import
{
timeRange
}
from
'@/utils/index'
;
import
{
ColumnType
}
from
'antd/lib/table/interface'
;
import
NiceForm
from
'@/components/NiceForm'
;
import
{
timeRange
}
from
'@/utils/index'
import
moment
from
'moment'
import
{
createFormActions
,
FormEffectHooks
}
from
'@formily/antd'
;
import
{
PageStatus
}
from
'@/hooks/usePageStatus'
import
{
useStateFilterSearchLinkageEffect
}
from
'@/formSchema/effects/useFilterSearch'
;
import
{
FORM_FILTER_PATH
}
from
'@/formSchema/const'
;
import
{
commonEnquieryOfferSchema
}
from
'../schema'
;
import
{
P
ublicApi
}
from
'@/services/api
'
;
import
{
P
ageStatus
}
from
'@/hooks/usePageStatus
'
;
import
{
values
,
action
}
from
'mobx'
;
import
{
PublicApi
}
from
'@/services/api'
;
const
formActions
=
createFormActions
();
const
fetchData
=
async
(
params
:
any
)
=>
{
const
res
=
await
PublicApi
.
getOrderStayProductQuotationList
(
params
);
return
res
.
data
}
const
AddEnquiryOrder
:
React
.
FC
<
{}
>
=
()
=>
{
const
ref
=
useRef
<
any
>
({})
const
[
more
,
setmore
]
=
useState
(
false
)
const
ref
=
useRef
<
any
>
({});
const
[
selectRow
,
setSelectRow
]
=
useState
([])
const
[
selectedRowKeys
,
setSelectedRowKeys
]
=
useState
<
Array
<
number
>>
([])
const
format
=
(
text
)
=>
{
return
<>
{
moment
(
text
).
format
(
"YYYY-MM-DD HH:mm:ss"
)
}
</>
}
const
columns
:
ColumnType
<
any
>
[]
=
[
{
title
:
'询价单号'
,
key
:
'inquiryListNo'
,
dataIndex
:
'inquiryListNo'
,
width
:
'9%'
,
render
:
(
text
:
any
,
records
:
any
)
=>
<
EyePreview
type=
"button"
>
{
text
}
</
EyePreview
>
},
{
title
:
'询价单摘要'
,
key
:
'details'
,
dataIndex
:
'details'
,
width
:
'12%'
,
},
{
title
:
'被询价会员'
,
key
:
'memberName'
,
dataIndex
:
'memberName'
,
width
:
'12%'
,
},
{
title
:
'交付日期'
,
key
:
'deliveryTime'
,
dataIndex
:
'deliveryTime'
,
width
:
'11%'
,
},
{
title
:
'报价截止时间'
,
key
:
'quotationAsTime'
,
dataIndex
:
'quotationAsTime'
,
width
:
'12%'
,
render
:
(
text
:
any
)
=>
format
(
text
)
},
{
title
:
'询价时间'
,
key
:
'voucherTime'
,
dataIndex
:
'voucherTime'
,
width
:
'12%'
,
render
:
(
text
:
any
)
=>
format
(
text
)
},
{
title
:
'外部状态'
,
key
:
'externalState'
,
dataIndex
:
'externalState'
,
width
:
'10%'
,
render
:
(
text
:
any
,
reconds
)
=>
{
let
component
:
ReactNode
=
null
if
(
text
==
3
)
{
component
=
<><
span
style=
{
statuStyle
.
warn
}
>
审核不通过
</
span
></>
}
else
if
(
text
==
1
)
{
component
=
<><
span
style=
{
statuStyle
.
default
}
>
待提交
</
span
></>
}
return
component
}
filters
:
filterExternalStateList
,
filterMultiple
:
false
,
onFilter
:
(
value
,
record
)
=>
record
.
externalState
===
value
,
render
:
(
text
:
any
,
reconds
)
=>
enquirySearchexternalState
(
text
)
},
{
title
:
'内部状态'
,
key
:
'interiorState'
,
dataIndex
:
'interiorState'
,
width
:
'10%'
,
render
:
(
text
:
any
)
=>
interiorState
(
text
)
filters
:
filterInteriorStateList
,
filterMultiple
:
false
,
onFilter
:
(
value
,
record
)
=>
record
.
interiorState
===
value
,
render
:(
text
:
any
)
=>
enquirySearchInteriorState
(
text
)
},
{
title
:
'操作'
,
key
:
'options'
,
dataIndex
:
'options'
,
width
:
'12%'
,
render
:
(
_
:
any
,
record
:
any
)
=>
{
return
(
<>
{
(
record
.
interiorState
!==
3
&&
<
Button
type=
"link"
onClick=
{
()
=>
toEdit
(
record
.
id
)
}
>
编辑
</
Button
>
)
}
{
(
record
.
interiorState
===
1
)
&&
<>
<
Popconfirm
title=
"确定要删除吗?"
okText=
"是"
cancelText=
"否"
onConfirm=
{
()
=>
handleDelete
([
record
.
id
])
}
>
<
Button
type=
'link'
>
删除
</
Button
>
</
Popconfirm
>
{
/* <Popconfirm title="确定要提交吗?" okText="是" cancelText="否" onConfirm={() => handleSubmit(record.id)}>
<Button type='link'>提交</Button>
</Popconfirm> */
}
</>
}
</>
)
}
},
]
useEffect
(()
=>
{
},
[])
const
toEdit
=
(
id
:
number
|
string
)
=>
{
history
.
push
(
`/memberCenter/tranactionAbility/enquiryOffer/addEnquiry?id=
${
id
}
`
)
}
/**
* @description: 删除
* @param {type}
* @return {type}
*/
const
handleDelete
=
(
arr
:
number
[]
|
string
[])
=>
{
PublicApi
.
postOrderQuotationDelete
({
ids
:
arr
}).
then
(
res
=>
{
ref
.
current
.
reload
()
})
}
//批量提交
const
handleSubmitAll
=
(
ids
:
number
[])
=>
{
PublicApi
.
postOrderQuotationSubmitAuditAll
({
ids
:
ids
}).
then
(
res
=>
{
ref
.
current
.
reload
()
})
}
//提交审核
const
handleSubmit
=
(
id
)
=>
{
PublicApi
.
postOrderQuotationSubmitAudit
({
id
:
id
}).
then
(
res
=>
{
ref
.
current
.
reload
()
})
}
const
handleSumbit
=
(
values
:
any
)
=>
{
if
(
values
.
voucherTime
)
{
values
.
startDocumentsTime
=
timeRange
(
values
.
voucherTime
).
st
values
.
endDocumentsTime
=
timeRange
(
values
.
voucherTime
).
et
}
delete
values
.
voucherTime
ref
.
current
.
reload
(
values
)
}
const
menu
=
(
<
Menu
onClick=
{
()
=>
handleDelete
(
selectedRowKeys
)
}
>
<
Menu
.
Item
key=
'1'
icon=
{
<
DeleteOutlined
/>
}
>
批量删除
</
Menu
.
Item
>
</
Menu
>
)
const
handleBatchDel
=
(
e
:
any
)
=>
{
const
format
=
(
text
)
=>
{
return
<>
{
moment
(
text
).
format
(
"YYYY-MM-DD HH:mm:ss"
)
}
</>
}
/**多选 */
const
rowSelection
=
{
selectedRowKeys
:
selectedRowKeys
,
onChange
:
(
selectedRowKeys
:
any
,
selectedRows
:
any
)
=>
{
...
...
@@ -200,11 +95,20 @@ const AddEnquiryOrder: React.FC<{}> = () => {
console
.
log
(
`selectedRowKeys:
${
selectedRowKeys
}
`
,
'selectedRows: '
,
selectedRows
)
},
}
/**批量删除 */
const
menu
=
(
<
Menu
>
<
Menu
.
Item
key=
'1'
icon=
{
<
DeleteOutlined
/>
}
>
批量删除
</
Menu
.
Item
>
</
Menu
>
)
/**批量审核通过按钮 */
const
controllerBtns
=
<
Row
>
<
Col
span=
{
24
}
>
<
Space
direction=
"horizontal"
size=
{
16
}
>
<
Button
type=
"primary"
onClick=
{
()
=>
history
.
push
(
'/memberCenter/tranactionAbility/goodsOffer/addEnquiryOrder/add'
)
}
icon=
{
<
PlusOutlined
/>
}
>
新建
</
Button
>
<
Button
onClick=
{
()
=>
handleSubmitAll
(
selectedRowKeys
)
}
>
批量提交审核
</
Button
>
<
Button
type=
"primary"
icon=
{
<
PlusOutlined
/>
}
onClick=
{
()
=>
history
.
push
(
`/memberCenter/tranactionAbility/goodsOffer/addEnquiryOrder/add`
)
}
>
新建
</
Button
>
<
Button
>
批量提交审核
</
Button
>
<
Dropdown
.
Button
overlay=
{
menu
}
trigger=
{
[
'click'
]
}
...
...
@@ -216,6 +120,12 @@ const AddEnquiryOrder: React.FC<{}> = () => {
</
Col
>
</
Row
>
/************* 页面的一些操作start *************/
const
fetchData
=
async
(
params
:
any
)
=>
{
const
res
=
await
PublicApi
.
getOrderInquiryList
(
params
);
return
res
.
data
}
/************* 页面的一些操作end *************/
return
(
<
PageHeaderWrapper
>
<
Card
>
...
...
@@ -223,12 +133,11 @@ const AddEnquiryOrder: React.FC<{}> = () => {
currentRef=
{
ref
}
columns=
{
columns
}
tableProps=
{
{
rowKew
:
'id'
}
}
fetchTableData=
{
(
params
:
any
)
=>
fetchData
(
params
)
}
rowSelection=
{
rowSelection
}
fetchTableData=
{
(
params
:
any
)
=>
fetchData
(
params
)
}
controlRender=
{
<
NiceForm
actions=
{
formActions
}
onSubmit=
{
values
=>
handleSumbit
(
values
)
}
effects=
{
(
$
,
actions
)
=>
{
useStateFilterSearchLinkageEffect
(
$
,
actions
,
'quotationNo'
,
FORM_FILTER_PATH
)
}
}
...
...
@@ -239,7 +148,9 @@ const AddEnquiryOrder: React.FC<{}> = () => {
>
</
NiceForm
>
}
/>
>
</
StandardTable
>
</
Card
>
</
PageHeaderWrapper
>
)
...
...
src/pages/transaction/goodsOffer/components/details.tsx
0 → 100644
View file @
25c2beda
This diff is collapsed.
Click to expand it.
src/pages/transaction/goodsOffer/components/index.less
0 → 100644
View file @
25c2beda
@import "../../../member/components/index.less";
.item_wrap {
margin-bottom: 24px;
background-color: #FFF;
border-radius: 8px;
&:last-child {
margin-bottom: 0px;
}
.mainCol_title {
font-size: 16px;
font-family: PingFangSC-Medium, PingFang SC;
font-weight: 500;
color: #303133;
padding: 0px 0 20px;
}
:global {
.ant-tabs-nav {
&::before {
border-bottom-color: #FFF;
}
}
}
}
\ No newline at end of file
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