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
ea3c15ff
Commit
ea3c15ff
authored
Oct 21, 2020
by
GuanHua
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'dev' of
http://10.0.0.22:3000/lingxi/lingxi-business-paltform
into dev
parents
f8758331
da553ac1
Show whitespace changes
Inline
Side-by-side
Showing
55 changed files
with
1903 additions
and
99 deletions
+1903
-99
confirmInquiryQuote.ts
config/routes/tranactionRoute/confirmInquiryQuote.ts
+32
-3
goodsOffer.ts
config/routes/tranactionRoute/goodsOffer.ts
+6
-6
index.ts
config/routes/tranactionRoute/index.ts
+42
-0
inquiryQuote.ts
config/routes/tranactionRoute/inquiryQuote.ts
+6
-6
menu.ts
src/locales/zh-CN/menu.ts
+25
-4
index.tsx
...pages/transaction/components/orderDetailSection/index.tsx
+4
-4
reviewList.tsx
...transaction/confirmInquiryQuote/components/reviewList.tsx
+3
-15
index.tsx
...ransaction/confirmInquiryQuote/pendingReviewOne/index.tsx
+18
-0
index.tsx
...ransaction/confirmInquiryQuote/pendingReviewTwo/index.tsx
+18
-0
index.tsx
...s/transaction/confirmInquiryQuote/pendingSubmit/index.tsx
+2
-2
index.tsx
...saction/confirmInquiryQuote/pendingSubmitReview/index.tsx
+2
-2
index.tsx
...ages/transaction/confirmInquiryQuote/quoteOrder/index.tsx
+2
-2
index.tsx
src/pages/transaction/goodsOffer/addEnquiryOrder/index.tsx
+2
-2
reviewList.tsx
src/pages/transaction/goodsOffer/components/reviewList.tsx
+3
-8
index.tsx
src/pages/transaction/goodsOffer/enquiryOrder/index.tsx
+1
-1
index.tsx
src/pages/transaction/goodsOffer/pendingReviewOne/index.tsx
+10
-1
index.tsx
src/pages/transaction/goodsOffer/pendingReviewTwo/index.tsx
+11
-1
index.tsx
src/pages/transaction/goodsOffer/pendingSubmit/index.tsx
+1
-1
index.tsx
src/pages/transaction/inquiryQuote/addInquiryOrder/index.tsx
+3
-3
reviewList.tsx
src/pages/transaction/inquiryQuote/components/reviewList.tsx
+3
-15
index.tsx
src/pages/transaction/inquiryQuote/enquiryOrder/index.tsx
+1
-1
index.tsx
...pages/transaction/inquiryQuote/pendingReviewOne/index.tsx
+17
-0
index.tsx
...pages/transaction/inquiryQuote/pendingReviewTwo/index.tsx
+17
-0
index.tsx
src/pages/transaction/inquiryQuote/pendingSubmit/index.tsx
+2
-2
index.tsx
src/pages/transaction/inquiryQuote/quoteOrder/index.tsx
+2
-2
index.tsx
src/pages/transaction/purchaserEvaluation/analysis/index.tsx
+36
-3
index.tsx
...ction/purchaserEvaluation/components/RecordList/index.tsx
+40
-2
index.ts
...purchaserEvaluation/components/RecordList/schema/index.ts
+22
-1
index.tsx
...ion/purchaserEvaluation/received/detail/effects/index.tsx
+6
-0
useBusinessEffects.tsx
...Evaluation/received/detail/effects/useBusinessEffects.tsx
+39
-0
index.less
...ransaction/purchaserEvaluation/received/detail/index.less
+0
-0
index.tsx
...transaction/purchaserEvaluation/received/detail/index.tsx
+198
-0
index.ts
...ction/purchaserEvaluation/received/detail/schema/index.ts
+100
-0
index.tsx
...saction/purchaserEvaluation/sent/detail/effects/index.tsx
+6
-0
useBusinessEffects.tsx
...aserEvaluation/sent/detail/effects/useBusinessEffects.tsx
+39
-0
index.less
...es/transaction/purchaserEvaluation/sent/detail/index.less
+0
-0
index.tsx
...ges/transaction/purchaserEvaluation/sent/detail/index.tsx
+243
-0
index.ts
...ansaction/purchaserEvaluation/sent/detail/schema/index.ts
+100
-0
index.ts
.../purchaserEvaluation/unevaluated/evaluate/schema/index.ts
+4
-1
index.tsx
src/pages/transaction/supplierEvaluation/analysis/index.tsx
+36
-3
index.tsx
...action/supplierEvaluation/components/RecordList/index.tsx
+40
-2
index.ts
.../supplierEvaluation/components/RecordList/schema/index.ts
+23
-2
index.tsx
...tion/supplierEvaluation/received/detail/effects/index.tsx
+6
-0
useBusinessEffects.tsx
...Evaluation/received/detail/effects/useBusinessEffects.tsx
+39
-0
index.less
...transaction/supplierEvaluation/received/detail/index.less
+0
-0
index.tsx
.../transaction/supplierEvaluation/received/detail/index.tsx
+198
-0
index.ts
...action/supplierEvaluation/received/detail/schema/index.ts
+100
-0
index.tsx
...nsaction/supplierEvaluation/sent/detail/effects/index.tsx
+6
-0
useBusinessEffects.tsx
...lierEvaluation/sent/detail/effects/useBusinessEffects.tsx
+39
-0
index.less
...ges/transaction/supplierEvaluation/sent/detail/index.less
+0
-0
index.tsx
...ages/transaction/supplierEvaluation/sent/detail/index.tsx
+243
-0
index.ts
...ransaction/supplierEvaluation/sent/detail/schema/index.ts
+100
-0
index.tsx
...saction/supplierEvaluation/unevaluated/evaluate/index.tsx
+3
-3
index.ts
...n/supplierEvaluation/unevaluated/evaluate/schema/index.ts
+3
-0
index.tsx
...ages/transaction/supplierEvaluation/unevaluated/index.tsx
+1
-1
No files found.
config/routes/tranactionRoute/confirmInquiryQuote.ts
View file @
ea3c15ff
...
...
@@ -14,28 +14,49 @@ export default [
name
:
'quoteOrder'
,
component
:
'@/pages/transaction/confirmInquiryQuote/quoteOrder'
},
// 报价单查询详情
{
path
:
'/memberCenter/tranactionAbility/confirmInquiryQuote/quoteOrder/details'
,
name
:
'quoteOrderDetails'
,
hideInMenu
:
true
,
component
:
'@/pages/transaction/confirmInquiryQuote/components/details'
},
// 待提交审核报价单
{
path
:
'/memberCenter/tranactionAbility/confirmInquiryQuote/pendingSubmitReview'
,
name
:
'pendingSubmitReview'
,
component
:
'@/pages/transaction/confirmInquiryQuote/pendingSubmitReview'
},
// 待提交审核报价单详情
{
path
:
'/memberCenter/tranactionAbility/confirmInquiryQuote/pendingSubmitReview/details'
,
name
:
'pendingSubmitReviewDetails'
,
hideInMenu
:
true
,
component
:
'@/pages/transaction/confirmInquiryQuote/components/details'
},
// 待审核询价单(一级)
{
path
:
'/memberCenter/tranactionAbility/confirmInquiryQuote/pendingReviewOne'
,
name
:
'pendingReviewOne'
,
component
:
'@/pages/transaction/confirmInquiryQuote/pendingReviewOne'
},
// 待审核询价单(一级)详情
{
path
:
'/memberCenter/tranactionAbility/confirmInquiryQuote/pendingReviewOne/details'
,
name
:
'pendingReviewOneDetails'
,
hideInMenu
:
true
,
component
:
'@/pages/transaction/confirmInquiryQuote/components/details'
},
// 待审核询价单(二级)
{
path
:
'/memberCenter/tranactionAbility/confirmInquiryQuote/pendingReviewTwo'
,
name
:
'pendingReviewTwo'
,
component
:
'@/pages/transaction/confirmInquiryQuote/pendingReviewTwo'
},
// 详情
//
待审核询价单(二级)
详情
{
path
:
'/memberCenter/tranactionAbility/confirmInquiryQuote/
components
/details'
,
name
:
'
d
etails'
,
path
:
'/memberCenter/tranactionAbility/confirmInquiryQuote/
pendingReviewTwo
/details'
,
name
:
'
pendingReviewTwoD
etails'
,
hideInMenu
:
true
,
component
:
'@/pages/transaction/confirmInquiryQuote/components/details'
},
...
...
@@ -45,6 +66,13 @@ export default [
name
:
'pendingSubmit'
,
component
:
'@/pages/transaction/confirmInquiryQuote/pendingSubmit'
},
// 待提交报价单详情
{
path
:
'/memberCenter/tranactionAbility/confirmInquiryQuote/pendingSubmit/details'
,
name
:
'pendingSubmitDetails'
,
hideInMenu
:
true
,
component
:
'@/pages/transaction/confirmInquiryQuote/components/details'
},
]
},
]
\ No newline at end of file
config/routes/tranactionRoute/goodsOffer.ts
View file @
ea3c15ff
...
...
@@ -17,7 +17,7 @@ export default [
// 询价单查询详情
{
path
:
'/memberCenter/tranactionAbility/goodsOffer/enquiryOrder/details'
,
name
:
'
d
etails'
,
name
:
'
quoteOrderD
etails'
,
hideInMenu
:
true
,
component
:
'@/pages/transaction/goodsOffer/components/details'
},
...
...
@@ -37,14 +37,14 @@ export default [
// 编辑报价单
{
path
:
'/memberCenter/tranactionAbility/goodsOffer/addEnquiryOrder/edit'
,
name
:
'
add
'
,
name
:
'
edit
'
,
hideInMenu
:
true
,
component
:
'@/pages/transaction/goodsOffer/addEnquiryOrder/add'
},
// 待新增询价单详情
{
path
:
'/memberCenter/tranactionAbility/goodsOffer/addEnquiryOrder/details'
,
name
:
'
d
etails'
,
name
:
'
addEnquiryOrderD
etails'
,
hideInMenu
:
true
,
component
:
'@/pages/transaction/goodsOffer/components/details'
},
...
...
@@ -57,7 +57,7 @@ export default [
// 待审核询价单(一级)详情
{
path
:
'/memberCenter/tranactionAbility/goodsOffer/pendingReviewOne/details'
,
name
:
'
d
etails'
,
name
:
'
pendingReviewOneD
etails'
,
hideInMenu
:
true
,
component
:
'@/pages/transaction/goodsOffer/components/details'
},
...
...
@@ -70,7 +70,7 @@ export default [
// 待审核询价单(二级)详情
{
path
:
'/memberCenter/tranactionAbility/goodsOffer/pendingReviewTwo/details'
,
name
:
'
d
etails'
,
name
:
'
pendingReviewTwoD
etails'
,
hideInMenu
:
true
,
component
:
'@/pages/transaction/goodsOffer/components/details'
},
...
...
@@ -83,7 +83,7 @@ export default [
// 待提交询价单详情
{
path
:
'/memberCenter/tranactionAbility/goodsOffer/pendingSubmit/details'
,
name
:
'
d
etails'
,
name
:
'
pendingSubmitD
etails'
,
hideInMenu
:
true
,
component
:
'@/pages/transaction/goodsOffer/components/details'
}
...
...
config/routes/tranactionRoute/index.ts
View file @
ea3c15ff
...
...
@@ -450,6 +450,27 @@ const TranactionRoute: RouterChild = {
name
:
'analysis'
,
component
:
'@/pages/transaction/supplierEvaluation/analysis'
,
},
// 收到的评价-详情
{
path
:
'/memberCenter/tranactionAbility/supplierEvaluation/received/detail'
,
name
:
'receivedDetail'
,
component
:
'@/pages/transaction/supplierEvaluation/received/detail/index'
,
hideInMenu
:
true
,
},
// 发出的评价-详情
{
path
:
'/memberCenter/tranactionAbility/supplierEvaluation/sent/detail'
,
name
:
'sentDetail'
,
component
:
'@/pages/transaction/supplierEvaluation/sent/detail/index'
,
hideInMenu
:
true
,
},
// 发出的评价-编辑
{
path
:
'/memberCenter/tranactionAbility/supplierEvaluation/sent/edit'
,
name
:
'editSent'
,
component
:
'@/pages/transaction/supplierEvaluation/sent/detail/index'
,
hideInMenu
:
true
,
},
// 收到的评价(UI合并到评价统计了,暂时不需要)
// {
// path: '/memberCenter/tranactionAbility/supplierEvaluation/received',
...
...
@@ -489,6 +510,27 @@ const TranactionRoute: RouterChild = {
name
:
'analysis'
,
component
:
'@/pages/transaction/purchaserEvaluation/analysis'
,
},
// 收到的评价-详情
{
path
:
'/memberCenter/tranactionAbility/purchaserEvaluation/received/detail'
,
name
:
'receivedDetail'
,
component
:
'@/pages/transaction/purchaserEvaluation/received/detail/index'
,
hideInMenu
:
true
,
},
// 发出的评价-详情
{
path
:
'/memberCenter/tranactionAbility/purchaserEvaluation/sent/detail'
,
name
:
'sentDetail'
,
component
:
'@/pages/transaction/purchaserEvaluation/sent/detail/index'
,
hideInMenu
:
true
,
},
// 发出的评价-编辑
{
path
:
'/memberCenter/tranactionAbility/purchaserEvaluation/sent/edit'
,
name
:
'editSent'
,
component
:
'@/pages/transaction/purchaserEvaluation/sent/detail/index'
,
hideInMenu
:
true
,
},
// 收到的评价(UI合并到评价统计了,暂时不需要)
// {
// path: '/memberCenter/tranactionAbility/purchaserEvaluation/received',
...
...
config/routes/tranactionRoute/inquiryQuote.ts
View file @
ea3c15ff
...
...
@@ -17,7 +17,7 @@ export default [
// 询价单查询详情
{
path
:
'/memberCenter/tranactionAbility/inquiryQuote/enquiryOrder/details'
,
name
:
'
details
'
,
name
:
'
enquiryOrder
'
,
hideInMenu
:
true
,
component
:
'@/pages/transaction/inquiryQuote/components/details'
},
...
...
@@ -30,7 +30,7 @@ export default [
// 报价单查询详情
{
path
:
'/memberCenter/tranactionAbility/inquiryQuote/quoteOrder/details'
,
name
:
'
d
etails'
,
name
:
'
quoteOrderD
etails'
,
hideInMenu
:
true
,
component
:
'@/pages/transaction/inquiryQuote/components/details'
},
...
...
@@ -50,7 +50,7 @@ export default [
// 新建报价单编辑
{
path
:
'/memberCenter/tranactionAbility/inquiryQuote/addInquiryOrder/edit'
,
name
:
'
add
'
,
name
:
'
edit
'
,
hideInMenu
:
true
,
component
:
'@/pages/transaction/inquiryQuote/addInquiryOrder/add'
},
...
...
@@ -70,7 +70,7 @@ export default [
// 待审核报价单(一级)详情
{
path
:
'/memberCenter/tranactionAbility/inquiryQuote/pendingReviewOne/details'
,
name
:
'
d
etails'
,
name
:
'
pendingReviewOneD
etails'
,
hideInMenu
:
true
,
component
:
'@/pages/transaction/inquiryQuote/components/details'
},
...
...
@@ -83,7 +83,7 @@ export default [
// 待审核报价单(二级)详情
{
path
:
'/memberCenter/tranactionAbility/inquiryQuote/pendingReviewTwo/details'
,
name
:
'
d
etails'
,
name
:
'
pendingReviewTwoD
etails'
,
hideInMenu
:
true
,
component
:
'@/pages/transaction/inquiryQuote/components/details'
},
...
...
@@ -96,7 +96,7 @@ export default [
// 待提交报价单详情
{
path
:
'/memberCenter/tranactionAbility/inquiryQuote/pendingSubmit/details'
,
name
:
'
d
etails'
,
name
:
'
pendingSubmitD
etails'
,
hideInMenu
:
true
,
component
:
'@/pages/transaction/inquiryQuote/components/details'
},
...
...
src/locales/zh-CN/menu.ts
View file @
ea3c15ff
...
...
@@ -2,7 +2,7 @@
* @Author: LeeJiancong
* @Date: 2020-07-13 14:08:50
* @LastEditors: XieZhiXiong
* @LastEditTime: 2020-10-2
0 19:48:59
* @LastEditTime: 2020-10-2
1 14:13:00
*/
export
default
{
...
...
@@ -139,34 +139,49 @@ export default {
// 确认询价报价
'menu.tranactionAbility.confirmInquiryQuote'
:
'确认询价报价'
,
'menu.tranactionAbility.confirmInquiryQuote.quoteOrder'
:
'报价单查询'
,
'menu.tranactionAbility.confirmInquiryQuote.
details'
:
'新建报价单
'
,
'menu.tranactionAbility.confirmInquiryQuote.
quoteOrderDetails'
:
'报价单查询详情
'
,
'menu.tranactionAbility.confirmInquiryQuote.pendingSubmitReview'
:
'待提交审核报价单'
,
'menu.tranactionAbility.confirmInquiryQuote.pendingSubmitReviewDetails'
:
'待提交审核报价单详情'
,
'menu.tranactionAbility.confirmInquiryQuote.pendingReviewOne'
:
'待审核报价单(一级)'
,
'menu.tranactionAbility.confirmInquiryQuote.pendingReviewOneDetails'
:
'待审核报价单(一级)详情'
,
'menu.tranactionAbility.confirmInquiryQuote.pendingReviewTwo'
:
'待审核报价单(二级)'
,
'menu.tranactionAbility.confirmInquiryQuote.pendingReviewTwoDetails'
:
'待审核报价单(二级)详情'
,
'menu.tranactionAbility.confirmInquiryQuote.pendingSubmit'
:
'待确认报价单'
,
'menu.tranactionAbility.confirmInquiryQuote.pendingSubmitDetails'
:
'待确认报价单详情'
,
// 商品询价
'menu.tranactionAbility.goodsOffer'
:
'商品询价'
,
'menu.tranactionAbility.goodsOffer.enquiryOrder'
:
'询价单查询'
,
'menu.tranactionAbility.goodsOffer.enquiryOrderDetails'
:
'询价单查询详情'
,
'menu.tranactionAbility.goodsOffer.addEnquiryOrder'
:
'待新增询价单'
,
'menu.tranactionAbility.goodsOffer.add'
:
'新建询价单'
,
'menu.tranactionAbility.goodsOffer.edit'
:
'编辑询价单'
,
'menu.tranactionAbility.goodsOffer.detail'
:
'查看询价单'
,
'menu.tranactionAbility.goodsOffer.details'
:
'新建询价单'
,
'menu.tranactionAbility.goodsOffer.addEnquiryOrderDetails'
:
'待新增询价详情'
,
'menu.tranactionAbility.goodsOffer.pendingReviewOne'
:
'待审核询价单(一级)'
,
'menu.tranactionAbility.goodsOffer.pendingReviewOneDetails'
:
'待审核询价单(一级)详情'
,
'menu.tranactionAbility.goodsOffer.pendingReviewTwo'
:
'待审核询价单(二级)'
,
'menu.tranactionAbility.goodsOffer.pendingReviewTwoDetails'
:
'待审核询价单(二级)详情'
,
'menu.tranactionAbility.goodsOffer.pendingSubmit'
:
'待提交询价单'
,
'menu.tranactionAbility.goodsOffer.pendingSubmitDetails'
:
'待提交询价单详情'
,
'menu.tranactionAbility.goodsOffer.quoteOrderDetails'
:
'报价单查询详情'
,
// 询价报价
'menu.tranactionAbility.inquiryQuote'
:
'询价报价'
,
'menu.tranactionAbility.inquiryQuote.enquiryOrder'
:
'询价单查询'
,
'menu.tranactionAbility.inquiryQuote.enquiryOrderDetails'
:
'询价单查询详情'
,
'menu.tranactionAbility.inquiryQuote.quoteOrder'
:
'报价单查询'
,
'menu.tranactionAbility.inquiryQuote.quoteOrderDetails'
:
'报价单查询详情'
,
'menu.tranactionAbility.inquiryQuote.addInquiryOrder'
:
'待新增报价单'
,
'menu.tranactionAbility.inquiryQuote.add'
:
'新建报价单'
,
'menu.tranactionAbility.inquiryQuote.edit'
:
'编辑报价单'
,
'menu.tranactionAbility.inquiryQuote.details'
:
'新建报价单'
,
'menu.tranactionAbility.inquiryQuote.addInquiryOrderDetails'
:
'待新增报价单详情'
,
'menu.tranactionAbility.inquiryQuote.pendingReviewOne'
:
'待审核报价单(一级)'
,
'menu.tranactionAbility.inquiryQuote.pendingReviewOneDetails'
:
'待审核报价单(一级)详情'
,
'menu.tranactionAbility.inquiryQuote.pendingReviewTwo'
:
'待审核报价单(二级)'
,
'menu.tranactionAbility.inquiryQuote.pendingReviewTwoDetails'
:
'待审核报价单(二级)详情'
,
'menu.tranactionAbility.inquiryQuote.pendingSubmit'
:
'待提交报价单'
,
'menu.tranactionAbility.inquiryQuote.pendingSubmitDetails'
:
'待提交报价单详情'
,
//进销存
'menu.tranactionAbility.stockSellStorage'
:
'进销存'
,
...
...
@@ -282,6 +297,9 @@ export default {
'menu.tranactionAbility.supplierEvaluation.evaluate'
:
'评价'
,
'menu.tranactionAbility.supplierEvaluation.analysis'
:
'评价统计'
,
'menu.tranactionAbility.supplierEvaluation.received'
:
'收到的评价'
,
'menu.tranactionAbility.supplierEvaluation.receivedDetail'
:
'查看收到的评价'
,
'menu.tranactionAbility.supplierEvaluation.sentDetail'
:
'查看发出的评价'
,
'menu.tranactionAbility.supplierEvaluation.editSent'
:
'编辑发出的评价'
,
'menu.tranactionAbility.supplierEvaluation.sent'
:
'发出的评价'
,
// 采购商评价
...
...
@@ -290,6 +308,9 @@ export default {
'menu.tranactionAbility.purchaserEvaluation.evaluate'
:
'评价'
,
'menu.tranactionAbility.purchaserEvaluation.analysis'
:
'评价统计'
,
'menu.tranactionAbility.purchaserEvaluation.received'
:
'收到的评价'
,
'menu.tranactionAbility.purchaserEvaluation.receivedDetail'
:
'查看收到的评价'
,
'menu.tranactionAbility.purchaserEvaluation.sentDetail'
:
'查看发出的评价'
,
'menu.tranactionAbility.purchaserEvaluation.editSent'
:
'编辑发出的评价'
,
'menu.tranactionAbility.purchaserEvaluation.sent'
:
'发出的评价'
,
// 物流能力
...
...
src/pages/transaction/components/orderDetailSection/index.tsx
View file @
ea3c15ff
...
...
@@ -3,10 +3,10 @@ import AuditProcess from '@/components/AuditProcess'
import
{
findLastIndexFlowState
}
from
'../../_public/order/utils'
import
OrderProductTable
from
'../../components/orderProductTable'
import
SaleOrderProductTable
from
'../../components/saleOrderProductTable'
import
OrderPayTabs
from
'../../components/
O
rderPayTabs'
import
OrderMergeInfo
from
'../../components/
O
rderMergeInfo'
import
OrderDeleveRecord
from
'../../components/
O
rderDeleveRecord'
import
OrderTransformRecord
from
'../../components/
O
rderTransformRecord'
import
OrderPayTabs
from
'../../components/
o
rderPayTabs'
import
OrderMergeInfo
from
'../../components/
o
rderMergeInfo'
import
OrderDeleveRecord
from
'../../components/
o
rderDeleveRecord'
import
OrderTransformRecord
from
'../../components/
o
rderTransformRecord'
export
interface
OrderDetailSectionProps
{
formContext
:
any
,
...
...
src/pages/transaction/confirmInquiryQuote/components/reviewList.tsx
View file @
ea3c15ff
...
...
@@ -25,11 +25,12 @@ export interface parmas {
batchAction
?:
Function
,
reloadRef
?:
any
,
type
?:
number
,
column
?:
any
}
const
ReviewList
:
React
.
FC
<
parmas
>
=
(
props
)
=>
{
const
ref
=
useRef
<
any
>
({});
const
{
fetchData
,
selectAll
,
batchAction
,
reloadRef
,
type
}
=
props
;
const
{
fetchData
,
selectAll
,
batchAction
,
reloadRef
,
type
,
column
}
=
props
;
const
[
selectRow
,
setSelectRow
]
=
useState
([])
const
[
selectedRowKeys
,
setSelectedRowKeys
]
=
useState
<
Array
<
number
>>
([]);
const
[
id
,
setId
]
=
useState
<
number
>
();
...
...
@@ -50,20 +51,7 @@ const ReviewList: React.FC<parmas> = (props) => {
})
const
columns
:
ColumnType
<
any
>
[]
=
[
{
title
:
'报价单号'
,
key
:
'quotationNo'
,
dataIndex
:
'quotationNo'
,
render
:
(
text
:
any
,
record
:
any
)
=>
<
EyePreview
url=
{
`/memberCenter/tranactionAbility/confirmInquiryQuote/components/details?id=${record.id}&page_type=${type}&view=2`
}
>
{
text
}
</
EyePreview
>
},
{
title
:
'询价单号'
,
key
:
'inquiryListNo'
,
dataIndex
:
'inquiryListNo'
,
render
:
(
text
:
any
,
record
:
any
)
=>
<
EyePreview
url=
{
`/memberCenter/tranactionAbility/confirmInquiryQuote/components/details?id=${record.id}&page_type=${type}&view=1`
}
>
{
text
}
</
EyePreview
>
},
...
column
,
{
title
:
'询价单摘要'
,
key
:
'details'
,
...
...
src/pages/transaction/confirmInquiryQuote/pendingReviewOne/index.tsx
View file @
ea3c15ff
...
...
@@ -3,6 +3,8 @@ import { message } from 'antd';
import
ReviewList
from
'../components/reviewList'
;
import
{
timeRange
}
from
'@/utils/index'
;
import
{
PublicApi
}
from
'@/services/api'
;
import
{
ColumnType
}
from
'antd/lib/table/interface'
;
import
EyePreview
from
'@/components/EyePreview'
;
const
PendingReviewOne
:
React
.
FC
<
{}
>
=
()
=>
{
const
[
selectRow
,
setSelectRow
]
=
useState
<
Array
<
number
>>
([]);
...
...
@@ -65,6 +67,21 @@ const PendingReviewOne: React.FC<{}> = () => {
message
.
error
(
'请选择要操作的询价单!'
)
}
}
const
column
:
ColumnType
<
any
>
[]
=
[{
title
:
'报价单号'
,
key
:
'quotationNo'
,
dataIndex
:
'quotationNo'
,
render
:
(
text
:
any
,
record
:
any
)
=>
<
EyePreview
url=
{
`/memberCenter/tranactionAbility/confirmInquiryQuote/pendingSubmit/details?id=${record.id}&page_type=1&view=2`
}
>
{
text
}
</
EyePreview
>
},
{
title
:
'询价单号'
,
key
:
'inquiryListNo'
,
dataIndex
:
'inquiryListNo'
,
render
:
(
text
:
any
,
record
:
any
)
=>
<
EyePreview
url=
{
`/memberCenter/tranactionAbility/confirmInquiryQuote/pendingSubmit/details?id=${record.id}&page_type=1&view=1`
}
>
{
text
}
</
EyePreview
>
}]
return
(
<
ReviewList
reloadRef=
{
ref
}
...
...
@@ -72,6 +89,7 @@ const PendingReviewOne: React.FC<{}> = () => {
selectAll=
{
selectAll
}
batchAction=
{
batchAction
}
type=
{
2
}
column=
{
column
}
/>
)
}
...
...
src/pages/transaction/confirmInquiryQuote/pendingReviewTwo/index.tsx
View file @
ea3c15ff
...
...
@@ -3,6 +3,8 @@ import { message } from 'antd';
import
ReviewList
from
'../components/reviewList'
;
import
{
timeRange
}
from
'@/utils/index'
;
import
{
PublicApi
}
from
'@/services/api'
;
import
{
ColumnType
}
from
'antd/lib/table/interface'
;
import
EyePreview
from
'@/components/EyePreview'
;
const
PendingReviewTwo
:
React
.
FC
<
{}
>
=
()
=>
{
const
[
selectRow
,
setSelectRow
]
=
useState
<
Array
<
number
>>
([]);
...
...
@@ -65,6 +67,21 @@ const PendingReviewTwo: React.FC<{}> = () => {
message
.
error
(
'请选择要操作的询价单!'
)
}
}
const
column
:
ColumnType
<
any
>
[]
=
[{
title
:
'报价单号'
,
key
:
'quotationNo'
,
dataIndex
:
'quotationNo'
,
render
:
(
text
:
any
,
record
:
any
)
=>
<
EyePreview
url=
{
`/memberCenter/tranactionAbility/confirmInquiryQuote/pendingSubmit/details?id=${record.id}&page_type=1&view=2`
}
>
{
text
}
</
EyePreview
>
},
{
title
:
'询价单号'
,
key
:
'inquiryListNo'
,
dataIndex
:
'inquiryListNo'
,
render
:
(
text
:
any
,
record
:
any
)
=>
<
EyePreview
url=
{
`/memberCenter/tranactionAbility/confirmInquiryQuote/pendingSubmit/details?id=${record.id}&page_type=1&view=1`
}
>
{
text
}
</
EyePreview
>
}]
return
(
<
ReviewList
reloadRef=
{
ref
}
...
...
@@ -72,6 +89,7 @@ const PendingReviewTwo: React.FC<{}> = () => {
selectAll=
{
selectAll
}
batchAction=
{
batchAction
}
type=
{
3
}
column=
{
column
}
/>
)
}
...
...
src/pages/transaction/confirmInquiryQuote/pendingSubmit/index.tsx
View file @
ea3c15ff
...
...
@@ -30,13 +30,13 @@ const PendingSubmit: React.FC<{}> = () => {
key
:
'quotationNo'
,
dataIndex
:
'quotationNo'
,
render
:
(
text
:
any
,
record
:
any
)
=>
<
EyePreview
url=
{
`/memberCenter/tranactionAbility/confirmInquiryQuote/
components
/details?id=${record.id}&page_type=1&view=2`
}
>
{
text
}
</
EyePreview
>
url=
{
`/memberCenter/tranactionAbility/confirmInquiryQuote/
pendingSubmit
/details?id=${record.id}&page_type=1&view=2`
}
>
{
text
}
</
EyePreview
>
},
{
title
:
'询价单号'
,
key
:
'inquiryListNo'
,
dataIndex
:
'inquiryListNo'
,
render
:
(
text
:
any
,
record
:
any
)
=>
<
EyePreview
url=
{
`/memberCenter/tranactionAbility/confirmInquiryQuote/
components
/details?id=${record.id}&page_type=1&view=1`
}
>
{
text
}
</
EyePreview
>
url=
{
`/memberCenter/tranactionAbility/confirmInquiryQuote/
pendingSubmit
/details?id=${record.id}&page_type=1&view=1`
}
>
{
text
}
</
EyePreview
>
},
{
title
:
'询价单摘要'
,
key
:
'details'
,
...
...
src/pages/transaction/confirmInquiryQuote/pendingSubmitReview/index.tsx
View file @
ea3c15ff
...
...
@@ -29,13 +29,13 @@ const PendingSubmitReview: React.FC<{}> = () => {
key
:
'quotationNo'
,
dataIndex
:
'quotationNo'
,
render
:
(
text
:
any
,
record
:
any
)
=>
<
EyePreview
url=
{
`/memberCenter/tranactionAbility/confirmInquiryQuote/
components
/details?id=${record.id}&page_type=5&view=2`
}
>
{
text
}
</
EyePreview
>
url=
{
`/memberCenter/tranactionAbility/confirmInquiryQuote/
pendingSubmitReview
/details?id=${record.id}&page_type=5&view=2`
}
>
{
text
}
</
EyePreview
>
},{
title
:
'询价单号'
,
key
:
'inquiryListNo'
,
dataIndex
:
'inquiryListNo'
,
render
:
(
text
:
any
,
record
:
any
)
=>
<
EyePreview
url=
{
`/memberCenter/tranactionAbility/confirmInquiryQuote/
components
/details?id=${record.id}&page_type=5&view=1`
}
>
{
text
}
</
EyePreview
>
url=
{
`/memberCenter/tranactionAbility/confirmInquiryQuote/
pendingSubmitReview
/details?id=${record.id}&page_type=5&view=1`
}
>
{
text
}
</
EyePreview
>
},
{
title
:
'报价单摘要'
,
key
:
'details'
,
...
...
src/pages/transaction/confirmInquiryQuote/quoteOrder/index.tsx
View file @
ea3c15ff
...
...
@@ -23,13 +23,13 @@ const EnquiryOrder: React.FC<{}> = (props) => {
key
:
'quotationNo'
,
dataIndex
:
'quotationNo'
,
render
:
(
text
:
any
,
record
:
any
)
=>
<
EyePreview
url=
{
`/memberCenter/tranactionAbility/confirmInquiryQuote/
components
/details?id=${record.id}&page_type=4&view=2`
}
>
{
text
}
</
EyePreview
>
url=
{
`/memberCenter/tranactionAbility/confirmInquiryQuote/
quoteOrder
/details?id=${record.id}&page_type=4&view=2`
}
>
{
text
}
</
EyePreview
>
},{
title
:
'询价单号'
,
key
:
'inquiryListNo'
,
dataIndex
:
'inquiryListNo'
,
render
:
(
text
:
any
,
record
:
any
)
=>
<
EyePreview
url=
{
`/memberCenter/tranactionAbility/confirmInquiryQuote/
components
/details?id=${record.id}&page_type=4&view=1`
}
>
{
text
}
</
EyePreview
>
url=
{
`/memberCenter/tranactionAbility/confirmInquiryQuote/
quoteOrder
/details?id=${record.id}&page_type=4&view=1`
}
>
{
text
}
</
EyePreview
>
},
{
title
:
'报价单摘要'
,
key
:
'details'
,
...
...
src/pages/transaction/goodsOffer/addEnquiryOrder/index.tsx
View file @
ea3c15ff
...
...
@@ -28,7 +28,7 @@ const AddEnquiryOrder: React.FC<{}> = () => {
key
:
'inquiryListNo'
,
dataIndex
:
'inquiryListNo'
,
render
:
(
text
:
any
,
record
:
any
)
=>
<
EyePreview
url=
{
`/memberCenter/tranactionAbility/goodsOffer/
components
/details?id=${record.id}&page_type=6&view=1`
}
>
{
text
}
</
EyePreview
>
url=
{
`/memberCenter/tranactionAbility/goodsOffer/
addEnquiryOrder
/details?id=${record.id}&page_type=6&view=1`
}
>
{
text
}
</
EyePreview
>
},
{
title
:
'询价单摘要'
,
...
...
@@ -89,7 +89,7 @@ const AddEnquiryOrder: React.FC<{}> = () => {
return
(
<>
<
Button
type=
'link'
disabled=
{
record
.
interiorState
!==
1
}
>
提交审核
</
Button
>
<
Button
type=
"link"
disabled=
{
record
.
interiorState
!==
4
&&
record
.
externalState
!==
1
}
><
Link
to=
{
`/memberCenter/tranactionAbility/goodsOffer/addEnquiryOrder/
add
?id=${record.id}`
}
>
编辑
</
Link
></
Button
>
<
Button
type=
"link"
disabled=
{
record
.
interiorState
!==
4
&&
record
.
externalState
!==
1
}
><
Link
to=
{
`/memberCenter/tranactionAbility/goodsOffer/addEnquiryOrder/
edit
?id=${record.id}`
}
>
编辑
</
Link
></
Button
>
<
Popconfirm
title=
"确定要删除吗?"
okText=
"是"
...
...
src/pages/transaction/goodsOffer/components/reviewList.tsx
View file @
ea3c15ff
...
...
@@ -23,11 +23,12 @@ export interface parmas {
batchAction
?:
Function
,
reloadRef
?:
any
,
type
?:
number
,
column
?:
any
}
const
ReviewList
:
React
.
FC
<
parmas
>
=
(
props
)
=>
{
const
ref
=
useRef
<
any
>
({});
const
{
fetchData
,
selectAll
,
batchAction
,
reloadRef
,
type
}
=
props
;
const
{
fetchData
,
selectAll
,
batchAction
,
reloadRef
,
type
,
column
}
=
props
;
const
[
selectRow
,
setSelectRow
]
=
useState
([])
const
[
selectedRowKeys
,
setSelectedRowKeys
]
=
useState
<
Array
<
number
>>
([]);
const
[
id
,
setId
]
=
useState
<
number
>
();
...
...
@@ -48,13 +49,7 @@ const ReviewList: React.FC<parmas> = (props) => {
})
const
columns
:
ColumnType
<
any
>
[]
=
[
{
title
:
'询价单号'
,
key
:
'inquiryListNo'
,
dataIndex
:
'inquiryListNo'
,
render
:
(
text
:
any
,
record
:
any
)
=>
<
EyePreview
url=
{
`/memberCenter/tranactionAbility/goodsOffer/components/details?id=${record.id}&page_type=${type}&view=1`
}
>
{
text
}
</
EyePreview
>
},
column
,
{
title
:
'询价单摘要'
,
key
:
'details'
,
...
...
src/pages/transaction/goodsOffer/enquiryOrder/index.tsx
View file @
ea3c15ff
...
...
@@ -23,7 +23,7 @@ const EnquiryOrder: React.FC<{}> = (props) => {
key
:
'inquiryListNo'
,
dataIndex
:
'inquiryListNo'
,
render
:
(
text
:
any
,
record
:
any
)
=>
<
EyePreview
url=
{
`/memberCenter/tranactionAbility/goodsOffer/
components
/details?id=${record.id}&page_type=4&view=1`
}
>
{
text
}
</
EyePreview
>
url=
{
`/memberCenter/tranactionAbility/goodsOffer/
enquiryOrder
/details?id=${record.id}&page_type=4&view=1`
}
>
{
text
}
</
EyePreview
>
},
{
title
:
'询价单摘要'
,
key
:
'details'
,
...
...
src/pages/transaction/goodsOffer/pendingReviewOne/index.tsx
View file @
ea3c15ff
...
...
@@ -3,6 +3,7 @@ import { message } from 'antd';
import
ReviewList
from
'../components/reviewList'
;
import
{
timeRange
}
from
'@/utils/index'
;
import
{
PublicApi
}
from
'@/services/api'
;
import
EyePreview
from
'@/components/EyePreview'
;
const
PendingReviewOne
:
React
.
FC
<
{}
>
=
()
=>
{
const
[
selectRow
,
setSelectRow
]
=
useState
<
Array
<
number
>>
([]);
...
...
@@ -42,7 +43,7 @@ const PendingReviewOne: React.FC<{}> = () => {
const
fetchData
=
(
params
?:
any
)
=>
{
console
.
log
(
params
)
//可以直接打印参数
return
new
Promise
((
resolve
,
reject
)
=>
{
PublicApi
.
getOrderInquiryToAuditList
({
...
params
}).
then
(
res
=>
{
PublicApi
.
getOrderInquiryToAuditList
({
...
params
}).
then
(
res
=>
{
resolve
(
res
.
data
)
})
// setTimeout(() => {
...
...
@@ -65,6 +66,13 @@ const PendingReviewOne: React.FC<{}> = () => {
message
.
error
(
'请选择要操作的询价单!'
)
}
}
const
column
=
{
title
:
'询价单号'
,
key
:
'inquiryListNo'
,
dataIndex
:
'inquiryListNo'
,
render
:
(
text
:
any
,
record
:
any
)
=>
<
EyePreview
url=
{
`/memberCenter/tranactionAbility/goodsOffer/pendingReviewOne/details?id=${record.id}&page_type=2&view=1`
}
>
{
text
}
</
EyePreview
>
}
return
(
<
ReviewList
reloadRef=
{
ref
}
...
...
@@ -72,6 +80,7 @@ const PendingReviewOne: React.FC<{}> = () => {
selectAll=
{
selectAll
}
batchAction=
{
batchAction
}
type=
{
2
}
column=
{
column
}
/>
)
}
...
...
src/pages/transaction/goodsOffer/pendingReviewTwo/index.tsx
View file @
ea3c15ff
...
...
@@ -3,6 +3,7 @@ import { message } from 'antd';
import
ReviewList
from
'../components/reviewList'
;
import
{
timeRange
}
from
'@/utils/index'
;
import
{
PublicApi
}
from
'@/services/api'
;
import
EyePreview
from
'@/components/EyePreview'
;
const
PendingReviewTwo
:
React
.
FC
<
{}
>
=
()
=>
{
const
[
selectRow
,
setSelectRow
]
=
useState
<
Array
<
number
>>
([]);
...
...
@@ -12,7 +13,7 @@ const PendingReviewTwo: React.FC<{}> = () => {
setSelectRow
(
values
);
console
.
log
(
values
,
'我是多选的id'
)
}
//
列表数据
//列表数据
// const data = { // 模拟的数据
// totalCount: 6,
// data: [{
...
...
@@ -65,6 +66,14 @@ const PendingReviewTwo: React.FC<{}> = () => {
message
.
error
(
'请选择要操作的询价单!'
)
}
}
const
column
=
{
title
:
'询价单号'
,
key
:
'inquiryListNo'
,
dataIndex
:
'inquiryListNo'
,
render
:
(
text
:
any
,
record
:
any
)
=>
<
EyePreview
url=
{
`/memberCenter/tranactionAbility/goodsOffer/pendingReviewTwo/details?id=${record.id}&page_type=3&view=1`
}
>
{
text
}
</
EyePreview
>
}
return
(
<
ReviewList
reloadRef=
{
ref
}
...
...
@@ -72,6 +81,7 @@ const PendingReviewTwo: React.FC<{}> = () => {
selectAll=
{
selectAll
}
batchAction=
{
batchAction
}
type=
{
3
}
column=
{
column
}
/>
)
}
...
...
src/pages/transaction/goodsOffer/pendingSubmit/index.tsx
View file @
ea3c15ff
...
...
@@ -30,7 +30,7 @@ const PendingSubmit: React.FC<{}> = () => {
key
:
'inquiryListNo'
,
dataIndex
:
'inquiryListNo'
,
render
:
(
text
:
any
,
record
:
any
)
=>
<
EyePreview
url=
{
`/memberCenter/tranactionAbility/goodsOffer/
components
/details?id=${record.id}&page_type=1&view=1`
}
>
{
text
}
</
EyePreview
>
url=
{
`/memberCenter/tranactionAbility/goodsOffer/
pendingSubmit
/details?id=${record.id}&page_type=1&view=1`
}
>
{
text
}
</
EyePreview
>
},
{
title
:
'询价单摘要'
,
...
...
src/pages/transaction/inquiryQuote/addInquiryOrder/index.tsx
View file @
ea3c15ff
...
...
@@ -27,13 +27,13 @@ const AddInquiryOrder: React.FC<{}> = () => {
key
:
'quotationNo'
,
dataIndex
:
'quotationNo'
,
render
:
(
text
:
any
,
record
:
any
)
=>
<
EyePreview
url=
{
`/memberCenter/tranactionAbility/inquiryQuote/
components
/details?id=${record.id}&page_type=6&view=2`
}
>
{
text
}
</
EyePreview
>
url=
{
`/memberCenter/tranactionAbility/inquiryQuote/
addInquiryOrder
/details?id=${record.id}&page_type=6&view=2`
}
>
{
text
}
</
EyePreview
>
},
{
title
:
'询价单号'
,
key
:
'inquiryListNo'
,
dataIndex
:
'inquiryListNo'
,
render
:
(
text
:
any
,
record
:
any
)
=>
<
EyePreview
url=
{
`/memberCenter/tranactionAbility/inquiryQuote/
components
/details?id=${record.id}&page_type=6&view=1`
}
>
{
text
}
</
EyePreview
>
url=
{
`/memberCenter/tranactionAbility/inquiryQuote/
addInquiryOrder
/details?id=${record.id}&page_type=6&view=1`
}
>
{
text
}
</
EyePreview
>
},
{
title
:
'询价单摘要'
,
key
:
'details'
,
...
...
@@ -78,7 +78,7 @@ const AddInquiryOrder: React.FC<{}> = () => {
return
(
<>
<
Button
type=
'link'
>
提交审核
</
Button
>
<
Button
type=
"link"
><
Link
to=
{
`/memberCenter/tranactionAbility/inquiryQuote/addInquiryOrder/
add
?id=${record.id}`
}
>
编辑
</
Link
></
Button
>
<
Button
type=
"link"
><
Link
to=
{
`/memberCenter/tranactionAbility/inquiryQuote/addInquiryOrder/
edit
?id=${record.id}`
}
>
编辑
</
Link
></
Button
>
<
Popconfirm
destroyTooltipOnHide
title=
"确定要删除吗?"
...
...
src/pages/transaction/inquiryQuote/components/reviewList.tsx
View file @
ea3c15ff
...
...
@@ -23,11 +23,12 @@ export interface parmas {
batchAction
?:
Function
,
reloadRef
?:
any
,
type
?:
number
,
column
?:
any
}
const
ReviewList
:
React
.
FC
<
parmas
>
=
(
props
)
=>
{
const
ref
=
useRef
<
any
>
({});
const
{
fetchData
,
selectAll
,
batchAction
,
reloadRef
,
type
}
=
props
;
const
{
fetchData
,
selectAll
,
batchAction
,
reloadRef
,
type
,
column
}
=
props
;
const
[
selectRow
,
setSelectRow
]
=
useState
([])
const
[
selectedRowKeys
,
setSelectedRowKeys
]
=
useState
<
Array
<
number
>>
([]);
const
[
id
,
setId
]
=
useState
<
number
>
();
...
...
@@ -48,20 +49,7 @@ const ReviewList: React.FC<parmas> = (props) => {
})
const
columns
:
ColumnType
<
any
>
[]
=
[
{
title
:
'报价单号'
,
key
:
'quotationNo'
,
dataIndex
:
'quotationNo'
,
render
:
(
text
:
any
,
record
:
any
)
=>
<
EyePreview
url=
{
`/memberCenter/tranactionAbility/inquiryQuote/components/details?id=${record.id}&page_type=${type}&view=2`
}
>
{
text
}
</
EyePreview
>
},
{
title
:
'询价单号'
,
key
:
'inquiryListNo'
,
dataIndex
:
'inquiryListNo'
,
render
:
(
text
:
any
,
record
:
any
)
=>
<
EyePreview
url=
{
`/memberCenter/tranactionAbility/inquiryQuote/components/details?id=${record.id}&page_type=${type}&view=1`
}
>
{
text
}
</
EyePreview
>
},
...
column
,
{
title
:
'询价单摘要'
,
key
:
'details'
,
...
...
src/pages/transaction/inquiryQuote/enquiryOrder/index.tsx
View file @
ea3c15ff
...
...
@@ -23,7 +23,7 @@ const EnquiryOrder: React.FC<{}> = (props) => {
key
:
'inquiryListNo'
,
dataIndex
:
'inquiryListNo'
,
render
:
(
text
:
any
,
record
:
any
)
=>
<
EyePreview
url=
{
`/memberCenter/tranactionAbility/inquiryQuote/
components
/details?id=${record.id}&page_type=4&view=1`
}
>
{
text
}
</
EyePreview
>
url=
{
`/memberCenter/tranactionAbility/inquiryQuote/
enquiryOrder
/details?id=${record.id}&page_type=4&view=1`
}
>
{
text
}
</
EyePreview
>
},
{
title
:
'询价单摘要'
,
key
:
'details'
,
...
...
src/pages/transaction/inquiryQuote/pendingReviewOne/index.tsx
View file @
ea3c15ff
...
...
@@ -3,6 +3,8 @@ import { message } from 'antd';
import
ReviewList
from
'../components/reviewList'
;
import
{
timeRange
}
from
'@/utils/index'
;
import
{
PublicApi
}
from
'@/services/api'
;
import
{
ColumnType
}
from
'antd/lib/table/interface'
;
import
EyePreview
from
'@/components/EyePreview'
;
const
PendingReviewOne
:
React
.
FC
<
{}
>
=
()
=>
{
const
[
selectRow
,
setSelectRow
]
=
useState
<
Array
<
number
>>
([]);
...
...
@@ -65,6 +67,20 @@ const PendingReviewOne: React.FC<{}> = () => {
message
.
error
(
'请选择要操作的询价单!'
)
}
}
const
column
:
ColumnType
<
any
>
[]
=
[{
title
:
'报价单号'
,
key
:
'quotationNo'
,
dataIndex
:
'quotationNo'
,
render
:
(
text
:
any
,
record
:
any
)
=>
<
EyePreview
url=
{
`/memberCenter/tranactionAbility/inquiryQuote/pendingReviewOne/details?id=${record.id}&page_type=2&view=2`
}
>
{
text
}
</
EyePreview
>
},
{
title
:
'询价单号'
,
key
:
'inquiryListNo'
,
dataIndex
:
'inquiryListNo'
,
render
:
(
text
:
any
,
record
:
any
)
=>
<
EyePreview
url=
{
`/memberCenter/tranactionAbility/inquiryQuote/pendingReviewOne/details?id=${record.id}&page_type=2&view=1`
}
>
{
text
}
</
EyePreview
>
}]
return
(
<
ReviewList
reloadRef=
{
ref
}
...
...
@@ -72,6 +88,7 @@ const PendingReviewOne: React.FC<{}> = () => {
selectAll=
{
selectAll
}
batchAction=
{
batchAction
}
type=
{
2
}
column=
{
column
}
/>
)
}
...
...
src/pages/transaction/inquiryQuote/pendingReviewTwo/index.tsx
View file @
ea3c15ff
...
...
@@ -3,6 +3,8 @@ import { message } from 'antd';
import
ReviewList
from
'../components/reviewList'
;
import
{
timeRange
}
from
'@/utils/index'
;
import
{
PublicApi
}
from
'@/services/api'
;
import
{
ColumnType
}
from
'antd/lib/table/interface'
;
import
EyePreview
from
'@/components/EyePreview'
;
const
PendingReviewTwo
:
React
.
FC
<
{}
>
=
()
=>
{
const
[
selectRow
,
setSelectRow
]
=
useState
<
Array
<
number
>>
([]);
...
...
@@ -65,6 +67,20 @@ const PendingReviewTwo: React.FC<{}> = () => {
message
.
error
(
'请选择要操作的询价单!'
)
}
}
const
column
:
ColumnType
<
any
>
[]
=
[{
title
:
'报价单号'
,
key
:
'quotationNo'
,
dataIndex
:
'quotationNo'
,
render
:
(
text
:
any
,
record
:
any
)
=>
<
EyePreview
url=
{
`/memberCenter/tranactionAbility/inquiryQuote/pendingReviewOne/details?id=${record.id}&page_type=2&view=2`
}
>
{
text
}
</
EyePreview
>
},
{
title
:
'询价单号'
,
key
:
'inquiryListNo'
,
dataIndex
:
'inquiryListNo'
,
render
:
(
text
:
any
,
record
:
any
)
=>
<
EyePreview
url=
{
`/memberCenter/tranactionAbility/inquiryQuote/pendingReviewOne/details?id=${record.id}&page_type=2&view=1`
}
>
{
text
}
</
EyePreview
>
}]
return
(
<
ReviewList
reloadRef=
{
ref
}
...
...
@@ -72,6 +88,7 @@ const PendingReviewTwo: React.FC<{}> = () => {
selectAll=
{
selectAll
}
batchAction=
{
batchAction
}
type=
{
3
}
column=
{
column
}
/>
)
}
...
...
src/pages/transaction/inquiryQuote/pendingSubmit/index.tsx
View file @
ea3c15ff
...
...
@@ -29,13 +29,13 @@ const PendingSubmit: React.FC<{}> = () => {
key
:
'quotationNo'
,
dataIndex
:
'quotationNo'
,
render
:
(
text
:
any
,
record
:
any
)
=>
<
EyePreview
url=
{
`/memberCenter/tranactionAbility/inquiryQuote/
components
/details?id=${record.id}&page_type=1&view=2`
}
>
{
text
}
</
EyePreview
>
url=
{
`/memberCenter/tranactionAbility/inquiryQuote/
pendingSubmit
/details?id=${record.id}&page_type=1&view=2`
}
>
{
text
}
</
EyePreview
>
},
{
title
:
'询价单号'
,
key
:
'inquiryListNo'
,
dataIndex
:
'inquiryListNo'
,
render
:
(
text
:
any
,
record
:
any
)
=>
<
EyePreview
url=
{
`/memberCenter/tranactionAbility/inquiryQuote/
components
/details?id=${record.id}&page_type=1&view=1`
}
>
{
text
}
</
EyePreview
>
url=
{
`/memberCenter/tranactionAbility/inquiryQuote/
pendingSubmit
/details?id=${record.id}&page_type=1&view=1`
}
>
{
text
}
</
EyePreview
>
},
{
title
:
'询价单摘要'
,
key
:
'details'
,
...
...
src/pages/transaction/inquiryQuote/quoteOrder/index.tsx
View file @
ea3c15ff
...
...
@@ -23,13 +23,13 @@ const EnquiryOrder: React.FC<{}> = (props) => {
key
:
'quotationNo'
,
dataIndex
:
'quotationNo'
,
render
:
(
text
:
any
,
record
:
any
)
=>
<
EyePreview
url=
{
`/memberCenter/tranactionAbility/inquiryQuote/
components
/details?id=${record.id}&page_type=5&view=2`
}
>
{
text
}
</
EyePreview
>
url=
{
`/memberCenter/tranactionAbility/inquiryQuote/
quoteOrder
/details?id=${record.id}&page_type=5&view=2`
}
>
{
text
}
</
EyePreview
>
},{
title
:
'询价单号'
,
key
:
'inquiryListNo'
,
dataIndex
:
'inquiryListNo'
,
render
:
(
text
:
any
,
record
:
any
)
=>
<
EyePreview
url=
{
`/memberCenter/tranactionAbility/inquiryQuote/
components
/details?id=${record.id}&page_type=5&view=1`
}
>
{
text
}
</
EyePreview
>
url=
{
`/memberCenter/tranactionAbility/inquiryQuote/
quoteOrder
/details?id=${record.id}&page_type=5&view=1`
}
>
{
text
}
</
EyePreview
>
},
{
title
:
'询价单摘要'
,
key
:
'details'
,
...
...
src/pages/transaction/purchaserEvaluation/analysis/index.tsx
View file @
ea3c15ff
import
React
,
{
useEffect
,
useState
}
from
'react'
;
import
{
Tabs
,
Row
,
Col
,
Button
}
from
'antd'
;
import
{
history
}
from
'umi'
;
import
{
PageHeaderWrapper
}
from
'@ant-design/pro-layout'
;
import
{
PublicApi
}
from
'@/services/api'
;
import
{
isJSONStr
}
from
'@/utils'
;
...
...
@@ -169,6 +170,7 @@ const Analysis: React.FC = () => {
data
:
data
.
map
(
item
=>
{
const
product
=
isJSONStr
(
item
.
product
)
||
{};
return
{
id
:
item
.
id
,
star
:
item
.
star
,
comment
:
item
.
comment
,
productName
:
product
.
productName
||
''
,
...
...
@@ -176,6 +178,7 @@ const Analysis: React.FC = () => {
quantity
:
product
.
purchaseCount
,
created
:
item
.
createTime
,
target
:
item
.
byMemberName
,
orderId
:
product
.
orderId
,
};
}),
totalCount
,
...
...
@@ -200,6 +203,7 @@ const Analysis: React.FC = () => {
data
:
data
.
map
(
item
=>
{
const
product
=
isJSONStr
(
item
.
product
)
||
{};
return
{
id
:
item
.
id
,
star
:
item
.
star
,
comment
:
item
.
comment
,
productName
:
product
.
productName
||
''
,
...
...
@@ -207,6 +211,7 @@ const Analysis: React.FC = () => {
quantity
:
product
.
purchaseCount
,
created
:
item
.
dealTime
as
string
,
target
:
item
.
memberName
,
orderId
:
product
.
orderId
,
};
}),
totalCount
,
...
...
@@ -233,6 +238,7 @@ const Analysis: React.FC = () => {
data
:
data
.
map
(
item
=>
{
const
product
=
isJSONStr
(
item
.
product
)
||
{};
return
{
id
:
item
.
id
,
star
:
item
.
star
,
comment
:
item
.
comment
,
productName
:
product
.
productName
||
''
,
...
...
@@ -240,6 +246,7 @@ const Analysis: React.FC = () => {
quantity
:
product
.
purchaseCount
,
created
:
item
.
dealTime
as
string
,
target
:
item
.
subMemberName
,
orderId
:
product
.
orderId
,
};
}),
totalCount
,
...
...
@@ -284,6 +291,18 @@ const Analysis: React.FC = () => {
getTradeSummary
();
},
[]);
const
handleJumpReceived
=
record
=>
{
history
.
push
(
`/memberCenter/tranactionAbility/purchaserEvaluation/received/detail?orderId=
${
record
.
orderId
}
&id=
${
record
.
id
}
&preview=1`
);
};
const
handleEditSent
=
record
=>
{
history
.
push
(
`/memberCenter/tranactionAbility/purchaserEvaluation/sent/edit?orderId=
${
record
.
orderId
}
&id=
${
record
.
id
}
&preview=0`
);
};
const
handleJumpSent
=
record
=>
{
history
.
push
(
`/memberCenter/tranactionAbility/purchaserEvaluation/sent/detail?orderId=
${
record
.
orderId
}
&id=
${
record
.
id
}
&preview=1`
);
};
return
(
<
PageHeaderWrapper
>
<
MellowCard
...
...
@@ -324,16 +343,30 @@ const Analysis: React.FC = () => {
</
Shelves
>
<
Shelves
title=
"评价记录"
>
<
RecordList
fetchList=
{
getTradeHistory
}
paginationType=
"button"
searchable=
{
false
}
/>
<
RecordList
fetchList=
{
getTradeHistory
}
paginationType=
"button"
searchable=
{
false
}
onCheck=
{
handleJumpReceived
}
/>
</
Shelves
>
</
TabPane
>
<
TabPane
tab=
"收到的评价"
key=
"2"
>
<
RecordList
fetchList=
{
getReceivedList
}
/>
<
RecordList
fetchList=
{
getReceivedList
}
onCheck=
{
handleJumpReceived
}
/>
</
TabPane
>
<
TabPane
tab=
"发出的评价"
key=
"3"
>
<
RecordList
fetchList=
{
getSentList
}
/>
<
RecordList
fetchList=
{
getSentList
}
onCheck=
{
handleJumpSent
}
onEdit=
{
handleEditSent
}
opposite=
{
false
}
editable=
{
true
}
/>
</
TabPane
>
</
Tabs
>
</
MellowCard
>
...
...
src/pages/transaction/purchaserEvaluation/components/RecordList/index.tsx
View file @
ea3c15ff
...
...
@@ -74,6 +74,10 @@ export interface RecordItem {
* 评价方/被评价方
*/
target
:
string
/**
* 订单id
*/
orderId
:
string
};
export
interface
RecordRes
{
...
...
@@ -91,7 +95,14 @@ interface RecordListProps {
// 是否是查看收到的品论
opposite
?:
boolean
;
// 是否可编辑的
editable
?:
boolean
;
fetchList
:
(
params
:
ListParams
)
=>
Promise
<
RecordRes
>
;
onCheck
:
(
record
:
RecordItem
)
=>
void
;
onEdit
?:
(
record
:
RecordItem
)
=>
void
;
};
interface
RecordListState
{
...
...
@@ -140,8 +151,12 @@ export default class RecordList extends React.Component<RecordListProps, RecordL
this
.
setState
({
loading
:
true
});
return
new
Promise
((
resolve
,
reject
)
=>
{
const
{
searchVal
,
page
,
size
}
=
this
.
state
;
const
{
dealTimeStart
,
dealTimeEnd
}
=
searchVal
;
fetchList
({
...
searchVal
,
dealTimeStart
:
dealTimeStart
?
moment
(
+
dealTimeStart
).
format
(
'YYYY-MM-DD HH:mm:ss'
)
:
null
,
dealTimeEnd
:
dealTimeEnd
?
moment
(
+
dealTimeEnd
).
format
(
'YYYY-MM-DD HH:mm:ss'
)
:
null
,
current
:
`
${
page
}
`
,
pageSize
:
`
${
size
}
`
,
}).
then
(
res
=>
{
...
...
@@ -210,11 +225,26 @@ export default class RecordList extends React.Component<RecordListProps, RecordL
});
};
handleCheck
=
record
=>
{
const
{
onCheck
}
=
this
.
props
;
if
(
onCheck
)
{
onCheck
(
record
);
}
};
handleEdit
=
record
=>
{
const
{
onEdit
}
=
this
.
props
;
if
(
onEdit
)
{
onEdit
(
record
);
}
};
render
()
{
const
{
paginationType
=
'pagination'
,
searchable
=
true
,
opposite
=
true
,
editable
=
false
,
}
=
this
.
props
;
const
{
page
,
size
,
loading
,
receivedList
,
hasMore
}
=
this
.
state
;
...
...
@@ -232,7 +262,12 @@ export default class RecordList extends React.Component<RecordListProps, RecordL
)
}
<
Spin
spinning=
{
paginationType
===
'pagination'
&&
loading
}
>
<
ul
className=
{
styles
.
record
}
>
<
ul
className=
{
styles
.
record
}
style=
{
{
minHeight
:
loading
?
69
:
'auto'
,
}
}
>
{
receivedList
.
data
.
map
((
item
,
index
)
=>
(
<
li
className=
{
styles
[
'record-item'
]
}
key=
{
index
}
>
<
div
className=
{
styles
[
'record-item-good'
]
}
>
...
...
@@ -272,7 +307,10 @@ export default class RecordList extends React.Component<RecordListProps, RecordL
</
div
>
<
div
className=
{
styles
[
'record-item-actions'
]
}
>
<
Button
type=
"link"
>
查看
</
Button
>
{
editable
&&
(
<
Button
type=
"link"
onClick=
{
()
=>
this
.
handleEdit
(
item
)
}
>
编辑
</
Button
>
)
}
<
Button
type=
"link"
onClick=
{
()
=>
this
.
handleCheck
(
item
)
}
>
查看
</
Button
>
</
div
>
</
li
>
))
}
...
...
src/pages/transaction/purchaserEvaluation/components/RecordList/schema/index.ts
View file @
ea3c15ff
...
...
@@ -19,7 +19,28 @@ export const searchSchema: ISchema = {
properties
:
{
star
:
{
type
:
'string'
,
enum
:
[],
enum
:
[
{
label
:
'一星'
,
value
:
1
,
},
{
label
:
'二星'
,
value
:
2
,
},
{
label
:
'三星'
,
value
:
3
,
},
{
label
:
'四星'
,
value
:
4
,
},
{
label
:
'五星'
,
value
:
5
,
},
],
'x-component-props'
:
{
placeholder
:
'评论星级'
,
allowClear
:
true
,
...
...
src/pages/transaction/purchaserEvaluation/received/detail/effects/index.tsx
0 → 100644
View file @
ea3c15ff
import
{
useBusinessEffects
}
from
'./useBusinessEffects'
;
export
const
createEffects
=
(
context
,
actions
)
=>
{
useBusinessEffects
(
context
,
actions
);
};
\ No newline at end of file
src/pages/transaction/purchaserEvaluation/received/detail/effects/useBusinessEffects.tsx
0 → 100644
View file @
ea3c15ff
import
{
FormEffectHooks
,
FormPath
}
from
'@formily/antd'
;
const
{
onFieldInputChange$
,
onFieldValueChange$
,
}
=
FormEffectHooks
;
export
const
useBusinessEffects
=
(
context
,
actions
)
=>
{
const
{
setFieldState
,
}
=
actions
;
// 评论图片限制 4 张
onFieldInputChange$
(
'comments.*.picture'
).
subscribe
(
fieldState
=>
{
const
{
name
,
value
}
=
fieldState
;
setFieldState
(
FormPath
.
transform
(
name
,
/
\d
/
,
$1
=>
{
return
`comments.
${
$1
}
.picture`
}),
state
=>
{
state
.
props
[
'x-component-props'
].
disabled
=
value
.
length
>=
4
;
}
);
});
// 评分联动
onFieldInputChange$
(
'comments.*.star'
).
subscribe
(
fieldState
=>
{
const
{
name
,
value
}
=
fieldState
;
setFieldState
(
FormPath
.
transform
(
name
,
/
\d
/
,
$1
=>
{
return
`comments.
${
$1
}
.smile`
}),
state
=>
{
state
.
value
=
value
;
}
);
});
}
\ No newline at end of file
src/pages/transaction/purchaserEvaluation/received/detail/index.less
0 → 100644
View file @
ea3c15ff
src/pages/transaction/purchaserEvaluation/received/detail/index.tsx
0 → 100644
View file @
ea3c15ff
import
React
,
{
useState
,
useEffect
}
from
'react'
;
import
{
PageHeader
,
Descriptions
,
Card
,
Spin
,
Button
,
message
,
}
from
'antd'
;
import
{
FormOutlined
}
from
'@ant-design/icons'
;
import
{
PageHeaderWrapper
}
from
'@ant-design/pro-layout'
;
import
{
history
}
from
'umi'
;
import
{
createFormActions
,
FormEffectHooks
,
FormPath
}
from
'@formily/antd'
;
import
{
usePageStatus
,
PageStatus
}
from
'@/hooks/usePageStatus'
;
import
{
PublicApi
}
from
'@/services/api'
;
import
{
GetOrderPurchaseOrderDetailsResponse
}
from
'@/services/OrderApi'
;
import
{
normalizeFiledata
,
isJSONStr
}
from
'@/utils'
;
import
AvatarWrap
from
'@/components/AvatarWrap'
;
import
NiceForm
from
'@/components/NiceForm'
;
import
{
normalizeUnevaluatedList
}
from
'../../utils'
;
import
{
evaluateSchema
}
from
'./schema'
;
import
{
createEffects
}
from
'./effects'
;
import
EvaluationList
from
'../../components/EvaluationList'
;
import
styles
from
'./index.less'
;
const
formActions
=
createFormActions
();
interface
Unevaluated
{
good
:
{
pic
:
string
,
productName
:
string
,
price
:
string
,
purchaseCount
:
string
,
};
star
:
number
;
comment
:
string
;
picture
:
string
[];
smile
:
number
;
};
const
ReceivedDetail
:
React
.
FC
=
()
=>
{
const
{
orderId
,
id
,
pageStatus
}
=
usePageStatus
();
const
[
orderInfo
,
setOrderInfo
]
=
useState
<
GetOrderPurchaseOrderDetailsResponse
>
(
null
);
const
[
orderInfoLoading
,
setOrderInfoLoading
]
=
useState
(
false
);
const
[
evaluationInfo
,
setEvaluationInfo
]
=
useState
<
Unevaluated
>
(
null
);
const
[
evaluationInfoLoading
,
setEvaluationInfoLoading
]
=
useState
(
false
);
const
[
submitLoading
,
setSubmitLoading
]
=
useState
(
false
);
const
getOrderInfo
=
()
=>
{
if
(
!
orderId
)
{
return
;
}
setOrderInfoLoading
(
true
);
PublicApi
.
getOrderProcurementOrderDetails
({
id
:
orderId
,
}).
then
(
res
=>
{
if
(
res
.
code
===
1000
)
{
setOrderInfo
(
res
.
data
);
}
}).
finally
(()
=>
{
setOrderInfoLoading
(
false
);
});
};
const
getEvaluationInfo
=
()
=>
{
if
(
!
id
)
{
return
;
}
setEvaluationInfoLoading
(
true
);
PublicApi
.
getMemberCommentConsumerReceiveTradeHistoryGet
({
id
,
}).
then
(
res
=>
{
if
(
res
.
code
===
1000
)
{
const
{
product
}
=
res
.
data
;
const
productObj
=
isJSONStr
(
product
)
||
{};
setEvaluationInfo
({
good
:
{
pic
:
productObj
.
pic
,
productName
:
productObj
.
productName
,
price
:
productObj
.
price
,
purchaseCount
:
productObj
.
purchaseCount
,
},
star
:
res
.
data
.
star
,
comment
:
res
.
data
.
comment
,
picture
:
res
.
data
.
pics
?
res
.
data
.
pics
.
map
(
item
=>
normalizeFiledata
(
item
))
:
[],
smile
:
res
.
data
.
star
,
});
}
}).
finally
(()
=>
{
setEvaluationInfoLoading
(
false
);
});
};
useEffect
(()
=>
{
getOrderInfo
();
getEvaluationInfo
();
},
[]);
const
handleSubmit
=
values
=>
{
};
const
beforeUpload
=
file
=>
{
if
(
file
.
size
/
1024
<
10
)
{
message
.
warning
(
'图片大小超过10M'
);
return
Promise
.
reject
();
}
};
const
UploadTip
=
(
<
span
style=
{
{
lineHeight
:
'24px'
,
color
:
'#909399'
,
fontWeight
:
400
,
wordBreak
:
'break-all'
,
position
:
'relative'
,
top
:
'34px'
,
}
}
>
支持JPG/PNG/JPEG
<
br
/>
每张最大不超过 10M,尺寸不限
<
br
/>
最大数量限制 4张
</
span
>
);
return
(
<
Spin
spinning=
{
orderInfoLoading
||
evaluationInfoLoading
}
>
<
PageHeaderWrapper
title=
{
<>
<
PageHeader
style=
{
{
padding
:
'0'
}
}
onBack=
{
()
=>
history
.
goBack
()
}
title=
{
<
AvatarWrap
info=
{
{
aloneTxt
:
'单'
,
name
:
orderInfo
?.
orderNo
,
}
}
/>
}
extra=
{
(
<>
{
pageStatus
===
PageStatus
.
EDIT
&&
(
<
Button
type=
"primary"
icon=
{
<
FormOutlined
/>
}
loading=
{
submitLoading
}
onClick=
{
()
=>
formActions
.
submit
()
}
>
修改
</
Button
>
)
}
</>
)
}
>
<
Descriptions
size=
"small"
column=
{
3
}
style=
{
{
padding
:
'0 32px'
,
}
}
>
<
Descriptions
.
Item
label=
"供应会员"
>
{
orderInfo
?.
supplyMembersName
}
</
Descriptions
.
Item
>
<
Descriptions
.
Item
label=
"下单时间"
span=
{
2
}
>
{
orderInfo
?.
createTime
}
</
Descriptions
.
Item
>
</
Descriptions
>
</
PageHeader
>
</>
}
>
<
NiceForm
actions=
{
formActions
}
initialValues=
{
{
comments
:
[
evaluationInfo
],
}
}
editable=
{
pageStatus
===
PageStatus
.
EDIT
}
expressionScope=
{
{
UploadTip
:
pageStatus
===
PageStatus
.
EDIT
?
UploadTip
:
null
,
beforeUpload
,
}
}
onSubmit=
{
handleSubmit
}
components=
{
{
EvaluationList
,
}
}
effects=
{
(
$
,
actions
)
=>
{
createEffects
(
$
,
actions
);
}
}
schema=
{
evaluateSchema
}
/>
</
PageHeaderWrapper
>
</
Spin
>
);
};
export
default
ReceivedDetail
;
\ No newline at end of file
src/pages/transaction/purchaserEvaluation/received/detail/schema/index.ts
0 → 100644
View file @
ea3c15ff
/*
* @Author: XieZhiXiong
* @Date: 2020-09-23 17:00:24
* @LastEditors: XieZhiXiong
* @LastEditTime: 2020-10-21 13:47:51
* @Description:
*/
import
{
ISchema
}
from
'@formily/antd'
;
import
{
UPLOAD_TYPE
}
from
'@/constants'
;
export
const
evaluateSchema
:
ISchema
=
{
type
:
'object'
,
properties
:
{
comments
:
{
type
:
'array'
,
'x-component'
:
'EvaluationList'
,
default
:
[],
items
:
{
type
:
'object'
,
properties
:
{
LEFT_RIGHT
:
{
type
:
'object'
,
'x-component'
:
'LeftRightLayout'
,
'x-component-props'
:
{
rightProps
:
{
span
:
2
,
offset
:
4
,
},
},
properties
:
{
MEGA_LADYOUT
:
{
type
:
'object'
,
'x-component'
:
'Mega-Layout'
,
'x-component-props'
:
{
labelCol
:
6
,
labelAlign
:
'left'
,
position
:
'left'
,
},
properties
:
{
star
:
{
title
:
'满意程度'
,
required
:
true
,
'x-component'
:
'Rating'
,
'x-component-props'
:
{
allowHalf
:
false
,
},
'x-rules'
:
[
{
required
:
true
,
message
:
'请选择满意程度'
,
},
],
},
comment
:
{
type
:
'string'
,
title
:
'评价'
,
'x-component'
:
'TextArea'
,
'x-component-props'
:
{
rows
:
4
,
},
'x-rules'
:
{
max
:
200
,
},
},
picture
:
{
type
:
'string'
,
title
:
'图片'
,
'x-component'
:
'Upload'
,
'x-component-props'
:
{
listType
:
'card'
,
action
:
'/api/file/file/upload/prefix'
,
data
:
{
fileType
:
UPLOAD_TYPE
,
prefix
:
'/purchaserEvaluation/'
,
},
beforeUpload
:
'{{beforeUpload}}'
,
accept
:
'.png, .jpg, .jpeg'
,
},
'x-mega-props'
:
{
addonAfter
:
'{{UploadTip}}'
,
},
},
},
},
smile
:
{
type
:
'object'
,
default
:
1
,
'x-component'
:
'SmilingFace'
,
'x-component-props'
:
{
position
:
'right'
,
},
},
},
},
},
},
},
},
};
\ No newline at end of file
src/pages/transaction/purchaserEvaluation/sent/detail/effects/index.tsx
0 → 100644
View file @
ea3c15ff
import
{
useBusinessEffects
}
from
'./useBusinessEffects'
;
export
const
createEffects
=
(
context
,
actions
)
=>
{
useBusinessEffects
(
context
,
actions
);
};
\ No newline at end of file
src/pages/transaction/purchaserEvaluation/sent/detail/effects/useBusinessEffects.tsx
0 → 100644
View file @
ea3c15ff
import
{
FormEffectHooks
,
FormPath
}
from
'@formily/antd'
;
const
{
onFieldInputChange$
,
onFieldValueChange$
,
}
=
FormEffectHooks
;
export
const
useBusinessEffects
=
(
context
,
actions
)
=>
{
const
{
setFieldState
,
}
=
actions
;
// 评论图片限制 4 张
onFieldInputChange$
(
'comments.*.picture'
).
subscribe
(
fieldState
=>
{
const
{
name
,
value
}
=
fieldState
;
setFieldState
(
FormPath
.
transform
(
name
,
/
\d
/
,
$1
=>
{
return
`comments.
${
$1
}
.picture`
}),
state
=>
{
state
.
props
[
'x-component-props'
].
disabled
=
value
.
length
>=
4
;
}
);
});
// 评分联动
onFieldInputChange$
(
'comments.*.star'
).
subscribe
(
fieldState
=>
{
const
{
name
,
value
}
=
fieldState
;
setFieldState
(
FormPath
.
transform
(
name
,
/
\d
/
,
$1
=>
{
return
`comments.
${
$1
}
.smile`
}),
state
=>
{
state
.
value
=
value
;
}
);
});
}
\ No newline at end of file
src/pages/transaction/purchaserEvaluation/sent/detail/index.less
0 → 100644
View file @
ea3c15ff
src/pages/transaction/purchaserEvaluation/sent/detail/index.tsx
0 → 100644
View file @
ea3c15ff
import
React
,
{
useState
,
useEffect
}
from
'react'
;
import
{
PageHeader
,
Descriptions
,
Card
,
Spin
,
Button
,
message
,
}
from
'antd'
;
import
{
FormOutlined
}
from
'@ant-design/icons'
;
import
{
PageHeaderWrapper
}
from
'@ant-design/pro-layout'
;
import
{
history
}
from
'umi'
;
import
{
createFormActions
,
FormEffectHooks
,
FormPath
}
from
'@formily/antd'
;
import
{
usePageStatus
,
PageStatus
}
from
'@/hooks/usePageStatus'
;
import
{
PublicApi
}
from
'@/services/api'
;
import
{
GetOrderPurchaseOrderDetailsResponse
}
from
'@/services/OrderApi'
;
import
{
normalizeFiledata
,
isJSONStr
}
from
'@/utils'
;
import
AvatarWrap
from
'@/components/AvatarWrap'
;
import
NiceForm
from
'@/components/NiceForm'
;
import
{
normalizeUnevaluatedList
}
from
'../../utils'
;
import
{
evaluateSchema
}
from
'./schema'
;
import
{
createEffects
}
from
'./effects'
;
import
EvaluationList
from
'../../components/EvaluationList'
;
import
styles
from
'./index.less'
;
const
formActions
=
createFormActions
();
const
{
onFormInit$
,
}
=
FormEffectHooks
;
interface
Unevaluated
{
good
:
{
pic
:
string
,
productName
:
string
,
price
:
string
,
purchaseCount
:
string
,
};
star
:
number
;
comment
:
string
;
picture
:
string
[];
smile
:
number
;
};
const
SentDetail
:
React
.
FC
=
()
=>
{
const
{
orderId
,
id
,
pageStatus
}
=
usePageStatus
();
const
[
orderInfo
,
setOrderInfo
]
=
useState
<
GetOrderPurchaseOrderDetailsResponse
>
(
null
);
const
[
orderInfoLoading
,
setOrderInfoLoading
]
=
useState
(
false
);
const
[
evaluationInfo
,
setEvaluationInfo
]
=
useState
<
Unevaluated
>
(
null
);
const
[
evaluationInfoLoading
,
setEvaluationInfoLoading
]
=
useState
(
false
);
const
[
submitLoading
,
setSubmitLoading
]
=
useState
(
false
);
const
getOrderInfo
=
()
=>
{
if
(
!
orderId
)
{
return
;
}
setOrderInfoLoading
(
true
);
PublicApi
.
getOrderProcurementOrderDetails
({
id
:
orderId
,
}).
then
(
res
=>
{
if
(
res
.
code
===
1000
)
{
setOrderInfo
(
res
.
data
);
}
}).
finally
(()
=>
{
setOrderInfoLoading
(
false
);
});
};
const
getEvaluationInfo
=
()
=>
{
if
(
!
id
)
{
return
;
}
setEvaluationInfoLoading
(
true
);
PublicApi
.
getMemberCommentConsumerSendTradeHistoryGet
({
id
,
}).
then
(
res
=>
{
if
(
res
.
code
===
1000
)
{
const
{
product
}
=
res
.
data
;
const
productObj
=
isJSONStr
(
product
)
||
{};
setEvaluationInfo
({
good
:
{
pic
:
productObj
.
pic
,
productName
:
productObj
.
productName
,
price
:
productObj
.
price
,
purchaseCount
:
productObj
.
purchaseCount
,
},
star
:
res
.
data
.
star
,
comment
:
res
.
data
.
comment
,
picture
:
res
.
data
.
pics
?
res
.
data
.
pics
.
map
(
item
=>
normalizeFiledata
(
item
))
:
[],
smile
:
res
.
data
.
star
,
});
}
}).
finally
(()
=>
{
setEvaluationInfoLoading
(
false
);
});
};
useEffect
(()
=>
{
getOrderInfo
();
getEvaluationInfo
();
},
[]);
const
handleSubmit
=
values
=>
{
setSubmitLoading
(
true
);
const
payload
=
values
.
comments
.
map
(
item
=>
{
const
{
comment
,
good
,
picture
,
star
,
}
=
item
;
return
{
id
,
star
,
comment
,
};
});
if
(
!
payload
.
length
)
{
return
;
}
PublicApi
.
postMemberCommentConsumerSendTradeHistoryUpdate
(
payload
[
0
])
.
then
(
res
=>
{
if
(
res
.
code
===
1000
)
{
setTimeout
(()
=>
{
history
.
goBack
();
},
800
);
}
})
.
finally
(()
=>
{
setSubmitLoading
(
false
);
});
};
const
beforeUpload
=
file
=>
{
if
(
file
.
size
/
1024
<
10
)
{
message
.
warning
(
'图片大小超过10M'
);
return
Promise
.
reject
();
}
};
const
UploadTip
=
(
<
span
style=
{
{
lineHeight
:
'24px'
,
color
:
'#909399'
,
fontWeight
:
400
,
wordBreak
:
'break-all'
,
position
:
'relative'
,
top
:
'34px'
,
}
}
>
支持JPG/PNG/JPEG
<
br
/>
每张最大不超过 10M,尺寸不限
<
br
/>
最大数量限制 4张
</
span
>
);
return
(
<
Spin
spinning=
{
orderInfoLoading
||
evaluationInfoLoading
}
>
<
PageHeaderWrapper
title=
{
<>
<
PageHeader
style=
{
{
padding
:
'0'
}
}
onBack=
{
()
=>
history
.
goBack
()
}
title=
{
<
AvatarWrap
info=
{
{
aloneTxt
:
'单'
,
name
:
orderInfo
?.
orderNo
,
}
}
/>
}
extra=
{
(
<>
{
pageStatus
===
PageStatus
.
EDIT
&&
(
<
Button
type=
"primary"
icon=
{
<
FormOutlined
/>
}
disabled=
{
!
id
}
loading=
{
submitLoading
}
onClick=
{
()
=>
formActions
.
submit
()
}
>
修改
</
Button
>
)
}
</>
)
}
>
<
Descriptions
size=
"small"
column=
{
3
}
style=
{
{
padding
:
'0 32px'
,
}
}
>
<
Descriptions
.
Item
label=
"供应会员"
>
{
orderInfo
?.
supplyMembersName
}
</
Descriptions
.
Item
>
<
Descriptions
.
Item
label=
"下单时间"
span=
{
2
}
>
{
orderInfo
?.
createTime
}
</
Descriptions
.
Item
>
</
Descriptions
>
</
PageHeader
>
</>
}
>
<
NiceForm
actions=
{
formActions
}
initialValues=
{
{
comments
:
[
evaluationInfo
],
}
}
editable=
{
pageStatus
===
PageStatus
.
EDIT
}
expressionScope=
{
{
UploadTip
:
pageStatus
===
PageStatus
.
EDIT
?
UploadTip
:
null
,
beforeUpload
,
}
}
onSubmit=
{
handleSubmit
}
components=
{
{
EvaluationList
,
}
}
effects=
{
(
$
,
actions
)
=>
{
createEffects
(
$
,
actions
);
onFormInit$
().
subscribe
(()
=>
{
if
(
pageStatus
===
PageStatus
.
EDIT
)
{
actions
.
setFieldState
(
'comments.*.picture'
,
state
=>
{
state
.
visible
=
false
;
}
);
}
});
}
}
schema=
{
evaluateSchema
}
/>
</
PageHeaderWrapper
>
</
Spin
>
);
};
export
default
SentDetail
;
\ No newline at end of file
src/pages/transaction/purchaserEvaluation/sent/detail/schema/index.ts
0 → 100644
View file @
ea3c15ff
/*
* @Author: XieZhiXiong
* @Date: 2020-09-23 17:00:24
* @LastEditors: XieZhiXiong
* @LastEditTime: 2020-10-19 16:23:24
* @Description:
*/
import
{
ISchema
}
from
'@formily/antd'
;
import
{
UPLOAD_TYPE
}
from
'@/constants'
;
export
const
evaluateSchema
:
ISchema
=
{
type
:
'object'
,
properties
:
{
comments
:
{
type
:
'array'
,
'x-component'
:
'EvaluationList'
,
default
:
[],
items
:
{
type
:
'object'
,
properties
:
{
LEFT_RIGHT
:
{
type
:
'object'
,
'x-component'
:
'LeftRightLayout'
,
'x-component-props'
:
{
rightProps
:
{
span
:
2
,
offset
:
4
,
},
},
properties
:
{
MEGA_LADYOUT
:
{
type
:
'object'
,
'x-component'
:
'Mega-Layout'
,
'x-component-props'
:
{
labelCol
:
6
,
labelAlign
:
'left'
,
position
:
'left'
,
},
properties
:
{
star
:
{
title
:
'满意程度'
,
required
:
true
,
'x-component'
:
'Rating'
,
'x-component-props'
:
{
allowHalf
:
false
,
},
'x-rules'
:
[
{
required
:
true
,
message
:
'请选择满意程度'
,
},
],
},
comment
:
{
type
:
'string'
,
title
:
'评价'
,
'x-component'
:
'TextArea'
,
'x-component-props'
:
{
rows
:
4
,
},
'x-rules'
:
{
max
:
200
,
},
},
picture
:
{
type
:
'string'
,
title
:
'图片'
,
'x-component'
:
'Upload'
,
'x-component-props'
:
{
listType
:
'card'
,
action
:
'/api/file/file/upload/prefix'
,
data
:
{
fileType
:
UPLOAD_TYPE
,
prefix
:
'/purchaserEvaluation/'
,
},
beforeUpload
:
'{{beforeUpload}}'
,
accept
:
'.png, .jpg, .jpeg'
,
},
'x-mega-props'
:
{
addonAfter
:
'{{UploadTip}}'
,
},
},
},
},
smile
:
{
type
:
'object'
,
default
:
1
,
'x-component'
:
'SmilingFace'
,
'x-component-props'
:
{
position
:
'right'
,
},
},
},
},
},
},
},
},
};
\ No newline at end of file
src/pages/transaction/purchaserEvaluation/unevaluated/evaluate/schema/index.ts
View file @
ea3c15ff
...
...
@@ -58,6 +58,9 @@ export const evaluateSchema: ISchema = {
'x-component-props'
:
{
rows
:
4
,
},
'x-rules'
:
{
max
:
200
,
},
},
picture
:
{
type
:
'string'
,
...
...
@@ -68,7 +71,7 @@ export const evaluateSchema: ISchema = {
action
:
'/api/file/file/upload/prefix'
,
data
:
{
fileType
:
UPLOAD_TYPE
,
prefix
:
'/
suppli
erEvaluation/'
,
prefix
:
'/
purchas
erEvaluation/'
,
},
beforeUpload
:
'{{beforeUpload}}'
,
accept
:
'.png, .jpg, .jpeg'
,
...
...
src/pages/transaction/supplierEvaluation/analysis/index.tsx
View file @
ea3c15ff
import
React
,
{
useEffect
,
useState
}
from
'react'
;
import
{
Tabs
,
Row
,
Col
,
Button
}
from
'antd'
;
import
{
history
}
from
'umi'
;
import
{
PageHeaderWrapper
}
from
'@ant-design/pro-layout'
;
import
{
PublicApi
}
from
'@/services/api'
;
import
{
isJSONStr
}
from
'@/utils'
;
...
...
@@ -169,6 +170,7 @@ const Analysis: React.FC = () => {
data
:
data
.
map
(
item
=>
{
const
product
=
isJSONStr
(
item
.
product
)
||
{};
return
{
id
:
item
.
id
,
star
:
item
.
star
,
comment
:
item
.
comment
,
productName
:
product
.
productName
||
''
,
...
...
@@ -176,6 +178,7 @@ const Analysis: React.FC = () => {
quantity
:
product
.
purchaseCount
,
created
:
item
.
createTime
,
target
:
item
.
byMemberName
,
orderId
:
product
.
orderId
,
};
}),
totalCount
,
...
...
@@ -200,6 +203,7 @@ const Analysis: React.FC = () => {
data
:
data
.
map
(
item
=>
{
const
product
=
isJSONStr
(
item
.
product
)
||
{};
return
{
id
:
item
.
id
,
star
:
item
.
star
,
comment
:
item
.
comment
,
productName
:
product
.
productName
||
''
,
...
...
@@ -207,6 +211,7 @@ const Analysis: React.FC = () => {
quantity
:
product
.
purchaseCount
,
created
:
item
.
dealTime
as
string
,
target
:
item
.
memberName
,
orderId
:
product
.
orderId
,
};
}),
totalCount
,
...
...
@@ -233,6 +238,7 @@ const Analysis: React.FC = () => {
data
:
data
.
map
(
item
=>
{
const
product
=
isJSONStr
(
item
.
product
)
||
{};
return
{
id
:
item
.
id
,
star
:
item
.
star
,
comment
:
item
.
comment
,
productName
:
product
.
productName
||
''
,
...
...
@@ -240,6 +246,7 @@ const Analysis: React.FC = () => {
quantity
:
product
.
purchaseCount
,
created
:
item
.
dealTime
as
string
,
target
:
item
.
subMemberName
,
orderId
:
product
.
orderId
,
};
}),
totalCount
,
...
...
@@ -284,6 +291,18 @@ const Analysis: React.FC = () => {
getTradeSummary
();
},
[]);
const
handleJumpReceived
=
record
=>
{
history
.
push
(
`/memberCenter/tranactionAbility/supplierEvaluation/received/detail?orderId=
${
record
.
orderId
}
&id=
${
record
.
id
}
&preview=1`
);
};
const
handleEditSent
=
record
=>
{
history
.
push
(
`/memberCenter/tranactionAbility/supplierEvaluation/sent/edit?orderId=
${
record
.
orderId
}
&id=
${
record
.
id
}
&preview=0`
);
};
const
handleJumpSent
=
record
=>
{
history
.
push
(
`/memberCenter/tranactionAbility/supplierEvaluation/sent/detail?orderId=
${
record
.
orderId
}
&id=
${
record
.
id
}
&preview=1`
);
};
return
(
<
PageHeaderWrapper
>
<
MellowCard
...
...
@@ -324,16 +343,30 @@ const Analysis: React.FC = () => {
</
Shelves
>
<
Shelves
title=
"评价记录"
>
<
RecordList
fetchList=
{
getTradeHistory
}
paginationType=
"button"
searchable=
{
false
}
/>
<
RecordList
fetchList=
{
getTradeHistory
}
paginationType=
"button"
searchable=
{
false
}
onCheck=
{
handleJumpReceived
}
/>
</
Shelves
>
</
TabPane
>
<
TabPane
tab=
"收到的评价"
key=
"2"
>
<
RecordList
fetchList=
{
getReceivedList
}
/>
<
RecordList
fetchList=
{
getReceivedList
}
onCheck=
{
handleJumpReceived
}
/>
</
TabPane
>
<
TabPane
tab=
"发出的评价"
key=
"3"
>
<
RecordList
fetchList=
{
getSentList
}
/>
<
RecordList
fetchList=
{
getSentList
}
onCheck=
{
handleJumpSent
}
onEdit=
{
handleEditSent
}
opposite=
{
false
}
editable=
{
true
}
/>
</
TabPane
>
</
Tabs
>
</
MellowCard
>
...
...
src/pages/transaction/supplierEvaluation/components/RecordList/index.tsx
View file @
ea3c15ff
...
...
@@ -74,6 +74,10 @@ export interface RecordItem {
* 评价方/被评价方
*/
target
:
string
/**
* 订单id
*/
orderId
:
string
};
export
interface
RecordRes
{
...
...
@@ -91,7 +95,14 @@ interface RecordListProps {
// 是否是查看收到的品论
opposite
?:
boolean
;
// 是否可编辑的
editable
?:
boolean
;
fetchList
:
(
params
:
ListParams
)
=>
Promise
<
RecordRes
>
;
onCheck
:
(
record
:
RecordItem
)
=>
void
;
onEdit
?:
(
record
:
RecordItem
)
=>
void
;
};
interface
RecordListState
{
...
...
@@ -140,8 +151,12 @@ export default class RecordList extends React.Component<RecordListProps, RecordL
this
.
setState
({
loading
:
true
});
return
new
Promise
((
resolve
,
reject
)
=>
{
const
{
searchVal
,
page
,
size
}
=
this
.
state
;
const
{
dealTimeStart
,
dealTimeEnd
}
=
searchVal
;
fetchList
({
...
searchVal
,
dealTimeStart
:
dealTimeStart
?
moment
(
+
dealTimeStart
).
format
(
'YYYY-MM-DD HH:mm:ss'
)
:
null
,
dealTimeEnd
:
dealTimeEnd
?
moment
(
+
dealTimeEnd
).
format
(
'YYYY-MM-DD HH:mm:ss'
)
:
null
,
current
:
`
${
page
}
`
,
pageSize
:
`
${
size
}
`
,
}).
then
(
res
=>
{
...
...
@@ -210,11 +225,26 @@ export default class RecordList extends React.Component<RecordListProps, RecordL
});
};
handleCheck
=
record
=>
{
const
{
onCheck
}
=
this
.
props
;
if
(
onCheck
)
{
onCheck
(
record
);
}
};
handleEdit
=
record
=>
{
const
{
onEdit
}
=
this
.
props
;
if
(
onEdit
)
{
onEdit
(
record
);
}
};
render
()
{
const
{
paginationType
=
'pagination'
,
searchable
=
true
,
opposite
=
true
,
editable
=
false
,
}
=
this
.
props
;
const
{
page
,
size
,
loading
,
receivedList
,
hasMore
}
=
this
.
state
;
...
...
@@ -232,7 +262,12 @@ export default class RecordList extends React.Component<RecordListProps, RecordL
)
}
<
Spin
spinning=
{
paginationType
===
'pagination'
&&
loading
}
>
<
ul
className=
{
styles
.
record
}
>
<
ul
className=
{
styles
.
record
}
style=
{
{
minHeight
:
loading
?
69
:
'auto'
,
}
}
>
{
receivedList
.
data
.
map
((
item
,
index
)
=>
(
<
li
className=
{
styles
[
'record-item'
]
}
key=
{
index
}
>
<
div
className=
{
styles
[
'record-item-good'
]
}
>
...
...
@@ -272,7 +307,10 @@ export default class RecordList extends React.Component<RecordListProps, RecordL
</
div
>
<
div
className=
{
styles
[
'record-item-actions'
]
}
>
<
Button
type=
"link"
>
查看
</
Button
>
{
editable
&&
(
<
Button
type=
"link"
onClick=
{
()
=>
this
.
handleEdit
(
item
)
}
>
编辑
</
Button
>
)
}
<
Button
type=
"link"
onClick=
{
()
=>
this
.
handleCheck
(
item
)
}
>
查看
</
Button
>
</
div
>
</
li
>
))
}
...
...
src/pages/transaction/supplierEvaluation/components/RecordList/schema/index.ts
View file @
ea3c15ff
...
...
@@ -2,7 +2,7 @@
* @Author: XieZhiXiong
* @Date: 2020-10-19 18:08:51
* @LastEditors: XieZhiXiong
* @LastEditTime: 2020-10-
19 18:09:31
* @LastEditTime: 2020-10-
21 13:58:50
* @Description:
*/
import
{
ISchema
}
from
'@formily/antd'
;
...
...
@@ -19,7 +19,28 @@ export const searchSchema: ISchema = {
properties
:
{
star
:
{
type
:
'string'
,
enum
:
[],
enum
:
[
{
label
:
'一星'
,
value
:
1
,
},
{
label
:
'二星'
,
value
:
2
,
},
{
label
:
'三星'
,
value
:
3
,
},
{
label
:
'四星'
,
value
:
4
,
},
{
label
:
'五星'
,
value
:
5
,
},
],
'x-component-props'
:
{
placeholder
:
'评论星级'
,
allowClear
:
true
,
...
...
src/pages/transaction/supplierEvaluation/received/detail/effects/index.tsx
0 → 100644
View file @
ea3c15ff
import
{
useBusinessEffects
}
from
'./useBusinessEffects'
;
export
const
createEffects
=
(
context
,
actions
)
=>
{
useBusinessEffects
(
context
,
actions
);
};
\ No newline at end of file
src/pages/transaction/supplierEvaluation/received/detail/effects/useBusinessEffects.tsx
0 → 100644
View file @
ea3c15ff
import
{
FormEffectHooks
,
FormPath
}
from
'@formily/antd'
;
const
{
onFieldInputChange$
,
onFieldValueChange$
,
}
=
FormEffectHooks
;
export
const
useBusinessEffects
=
(
context
,
actions
)
=>
{
const
{
setFieldState
,
}
=
actions
;
// 评论图片限制 4 张
onFieldInputChange$
(
'comments.*.picture'
).
subscribe
(
fieldState
=>
{
const
{
name
,
value
}
=
fieldState
;
setFieldState
(
FormPath
.
transform
(
name
,
/
\d
/
,
$1
=>
{
return
`comments.
${
$1
}
.picture`
}),
state
=>
{
state
.
props
[
'x-component-props'
].
disabled
=
value
.
length
>=
4
;
}
);
});
// 评分联动
onFieldInputChange$
(
'comments.*.star'
).
subscribe
(
fieldState
=>
{
const
{
name
,
value
}
=
fieldState
;
setFieldState
(
FormPath
.
transform
(
name
,
/
\d
/
,
$1
=>
{
return
`comments.
${
$1
}
.smile`
}),
state
=>
{
state
.
value
=
value
;
}
);
});
}
\ No newline at end of file
src/pages/transaction/supplierEvaluation/received/detail/index.less
0 → 100644
View file @
ea3c15ff
src/pages/transaction/supplierEvaluation/received/detail/index.tsx
0 → 100644
View file @
ea3c15ff
import
React
,
{
useState
,
useEffect
}
from
'react'
;
import
{
PageHeader
,
Descriptions
,
Card
,
Spin
,
Button
,
message
,
}
from
'antd'
;
import
{
FormOutlined
}
from
'@ant-design/icons'
;
import
{
PageHeaderWrapper
}
from
'@ant-design/pro-layout'
;
import
{
history
}
from
'umi'
;
import
{
createFormActions
,
FormEffectHooks
,
FormPath
}
from
'@formily/antd'
;
import
{
usePageStatus
,
PageStatus
}
from
'@/hooks/usePageStatus'
;
import
{
PublicApi
}
from
'@/services/api'
;
import
{
GetOrderPurchaseOrderDetailsResponse
}
from
'@/services/OrderApi'
;
import
{
normalizeFiledata
,
isJSONStr
}
from
'@/utils'
;
import
AvatarWrap
from
'@/components/AvatarWrap'
;
import
NiceForm
from
'@/components/NiceForm'
;
import
{
normalizeUnevaluatedList
}
from
'../../utils'
;
import
{
evaluateSchema
}
from
'./schema'
;
import
{
createEffects
}
from
'./effects'
;
import
EvaluationList
from
'../../components/EvaluationList'
;
import
styles
from
'./index.less'
;
const
formActions
=
createFormActions
();
interface
Unevaluated
{
good
:
{
pic
:
string
,
productName
:
string
,
price
:
string
,
purchaseCount
:
string
,
};
star
:
number
;
comment
:
string
;
picture
:
string
[];
smile
:
number
;
};
const
ReceivedDetail
:
React
.
FC
=
()
=>
{
const
{
orderId
,
id
,
pageStatus
}
=
usePageStatus
();
const
[
orderInfo
,
setOrderInfo
]
=
useState
<
GetOrderPurchaseOrderDetailsResponse
>
(
null
);
const
[
orderInfoLoading
,
setOrderInfoLoading
]
=
useState
(
false
);
const
[
evaluationInfo
,
setEvaluationInfo
]
=
useState
<
Unevaluated
>
(
null
);
const
[
evaluationInfoLoading
,
setEvaluationInfoLoading
]
=
useState
(
false
);
const
[
submitLoading
,
setSubmitLoading
]
=
useState
(
false
);
const
getOrderInfo
=
()
=>
{
if
(
!
orderId
)
{
return
;
}
setOrderInfoLoading
(
true
);
PublicApi
.
getOrderPurchaseOrderDetails
({
id
:
orderId
,
}).
then
(
res
=>
{
if
(
res
.
code
===
1000
)
{
setOrderInfo
(
res
.
data
);
}
}).
finally
(()
=>
{
setOrderInfoLoading
(
false
);
});
};
const
getEvaluationInfo
=
()
=>
{
if
(
!
id
)
{
return
;
}
setEvaluationInfoLoading
(
true
);
PublicApi
.
getMemberCommentSupplySupplyTradeHistoryGet
({
id
,
}).
then
(
res
=>
{
if
(
res
.
code
===
1000
)
{
const
{
product
}
=
res
.
data
;
const
productObj
=
isJSONStr
(
product
)
||
{};
setEvaluationInfo
({
good
:
{
pic
:
productObj
.
pic
,
productName
:
productObj
.
productName
,
price
:
productObj
.
price
,
purchaseCount
:
productObj
.
purchaseCount
,
},
star
:
res
.
data
.
star
,
comment
:
res
.
data
.
comment
,
picture
:
res
.
data
.
pics
?
res
.
data
.
pics
.
map
(
item
=>
normalizeFiledata
(
item
))
:
[],
smile
:
res
.
data
.
star
,
});
}
}).
finally
(()
=>
{
setEvaluationInfoLoading
(
false
);
});
};
useEffect
(()
=>
{
getOrderInfo
();
getEvaluationInfo
();
},
[]);
const
handleSubmit
=
values
=>
{
};
const
beforeUpload
=
file
=>
{
if
(
file
.
size
/
1024
<
10
)
{
message
.
warning
(
'图片大小超过10M'
);
return
Promise
.
reject
();
}
};
const
UploadTip
=
(
<
span
style=
{
{
lineHeight
:
'24px'
,
color
:
'#909399'
,
fontWeight
:
400
,
wordBreak
:
'break-all'
,
position
:
'relative'
,
top
:
'34px'
,
}
}
>
支持JPG/PNG/JPEG
<
br
/>
每张最大不超过 10M,尺寸不限
<
br
/>
最大数量限制 4张
</
span
>
);
return
(
<
Spin
spinning=
{
orderInfoLoading
||
evaluationInfoLoading
}
>
<
PageHeaderWrapper
title=
{
<>
<
PageHeader
style=
{
{
padding
:
'0'
}
}
onBack=
{
()
=>
history
.
goBack
()
}
title=
{
<
AvatarWrap
info=
{
{
aloneTxt
:
'单'
,
name
:
orderInfo
?.
orderNo
,
}
}
/>
}
extra=
{
(
<>
{
pageStatus
===
PageStatus
.
EDIT
&&
(
<
Button
type=
"primary"
icon=
{
<
FormOutlined
/>
}
loading=
{
submitLoading
}
onClick=
{
()
=>
formActions
.
submit
()
}
>
修改
</
Button
>
)
}
</>
)
}
>
<
Descriptions
size=
"small"
column=
{
3
}
style=
{
{
padding
:
'0 32px'
,
}
}
>
<
Descriptions
.
Item
label=
"采购会员"
>
{
orderInfo
?.
createMemberName
}
</
Descriptions
.
Item
>
<
Descriptions
.
Item
label=
"下单时间"
span=
{
2
}
>
{
orderInfo
?.
createTime
}
</
Descriptions
.
Item
>
</
Descriptions
>
</
PageHeader
>
</>
}
>
<
NiceForm
actions=
{
formActions
}
initialValues=
{
{
comments
:
[
evaluationInfo
],
}
}
editable=
{
pageStatus
===
PageStatus
.
EDIT
}
expressionScope=
{
{
UploadTip
:
pageStatus
===
PageStatus
.
EDIT
?
UploadTip
:
null
,
beforeUpload
,
}
}
onSubmit=
{
handleSubmit
}
components=
{
{
EvaluationList
,
}
}
effects=
{
(
$
,
actions
)
=>
{
createEffects
(
$
,
actions
);
}
}
schema=
{
evaluateSchema
}
/>
</
PageHeaderWrapper
>
</
Spin
>
);
};
export
default
ReceivedDetail
;
\ No newline at end of file
src/pages/transaction/supplierEvaluation/received/detail/schema/index.ts
0 → 100644
View file @
ea3c15ff
/*
* @Author: XieZhiXiong
* @Date: 2020-09-23 17:00:24
* @LastEditors: XieZhiXiong
* @LastEditTime: 2020-10-21 13:46:22
* @Description:
*/
import
{
ISchema
}
from
'@formily/antd'
;
import
{
UPLOAD_TYPE
}
from
'@/constants'
;
export
const
evaluateSchema
:
ISchema
=
{
type
:
'object'
,
properties
:
{
comments
:
{
type
:
'array'
,
'x-component'
:
'EvaluationList'
,
default
:
[],
items
:
{
type
:
'object'
,
properties
:
{
LEFT_RIGHT
:
{
type
:
'object'
,
'x-component'
:
'LeftRightLayout'
,
'x-component-props'
:
{
rightProps
:
{
span
:
2
,
offset
:
4
,
},
},
properties
:
{
MEGA_LADYOUT
:
{
type
:
'object'
,
'x-component'
:
'Mega-Layout'
,
'x-component-props'
:
{
labelCol
:
6
,
labelAlign
:
'left'
,
position
:
'left'
,
},
properties
:
{
star
:
{
title
:
'满意程度'
,
required
:
true
,
'x-component'
:
'Rating'
,
'x-component-props'
:
{
allowHalf
:
false
,
},
'x-rules'
:
[
{
required
:
true
,
message
:
'请选择满意程度'
,
},
],
},
comment
:
{
type
:
'string'
,
title
:
'评价'
,
'x-component'
:
'TextArea'
,
'x-component-props'
:
{
rows
:
4
,
},
'x-rules'
:
{
max
:
200
,
},
},
picture
:
{
type
:
'string'
,
title
:
'图片'
,
'x-component'
:
'Upload'
,
'x-component-props'
:
{
listType
:
'card'
,
action
:
'/api/file/file/upload/prefix'
,
data
:
{
fileType
:
UPLOAD_TYPE
,
prefix
:
'/supplierEvaluation/'
,
},
beforeUpload
:
'{{beforeUpload}}'
,
accept
:
'.png, .jpg, .jpeg'
,
},
'x-mega-props'
:
{
addonAfter
:
'{{UploadTip}}'
,
},
},
},
},
smile
:
{
type
:
'object'
,
default
:
1
,
'x-component'
:
'SmilingFace'
,
'x-component-props'
:
{
position
:
'right'
,
},
},
},
},
},
},
},
},
};
\ No newline at end of file
src/pages/transaction/supplierEvaluation/sent/detail/effects/index.tsx
0 → 100644
View file @
ea3c15ff
import
{
useBusinessEffects
}
from
'./useBusinessEffects'
;
export
const
createEffects
=
(
context
,
actions
)
=>
{
useBusinessEffects
(
context
,
actions
);
};
\ No newline at end of file
src/pages/transaction/supplierEvaluation/sent/detail/effects/useBusinessEffects.tsx
0 → 100644
View file @
ea3c15ff
import
{
FormEffectHooks
,
FormPath
}
from
'@formily/antd'
;
const
{
onFieldInputChange$
,
onFieldValueChange$
,
}
=
FormEffectHooks
;
export
const
useBusinessEffects
=
(
context
,
actions
)
=>
{
const
{
setFieldState
,
}
=
actions
;
// 评论图片限制 4 张
onFieldInputChange$
(
'comments.*.picture'
).
subscribe
(
fieldState
=>
{
const
{
name
,
value
}
=
fieldState
;
setFieldState
(
FormPath
.
transform
(
name
,
/
\d
/
,
$1
=>
{
return
`comments.
${
$1
}
.picture`
}),
state
=>
{
state
.
props
[
'x-component-props'
].
disabled
=
value
.
length
>=
4
;
}
);
});
// 评分联动
onFieldInputChange$
(
'comments.*.star'
).
subscribe
(
fieldState
=>
{
const
{
name
,
value
}
=
fieldState
;
setFieldState
(
FormPath
.
transform
(
name
,
/
\d
/
,
$1
=>
{
return
`comments.
${
$1
}
.smile`
}),
state
=>
{
state
.
value
=
value
;
}
);
});
}
\ No newline at end of file
src/pages/transaction/supplierEvaluation/sent/detail/index.less
0 → 100644
View file @
ea3c15ff
src/pages/transaction/supplierEvaluation/sent/detail/index.tsx
0 → 100644
View file @
ea3c15ff
import
React
,
{
useState
,
useEffect
}
from
'react'
;
import
{
PageHeader
,
Descriptions
,
Card
,
Spin
,
Button
,
message
,
}
from
'antd'
;
import
{
FormOutlined
}
from
'@ant-design/icons'
;
import
{
PageHeaderWrapper
}
from
'@ant-design/pro-layout'
;
import
{
history
}
from
'umi'
;
import
{
createFormActions
,
FormEffectHooks
,
FormPath
}
from
'@formily/antd'
;
import
{
usePageStatus
,
PageStatus
}
from
'@/hooks/usePageStatus'
;
import
{
PublicApi
}
from
'@/services/api'
;
import
{
GetOrderPurchaseOrderDetailsResponse
}
from
'@/services/OrderApi'
;
import
{
normalizeFiledata
,
isJSONStr
}
from
'@/utils'
;
import
AvatarWrap
from
'@/components/AvatarWrap'
;
import
NiceForm
from
'@/components/NiceForm'
;
import
{
normalizeUnevaluatedList
}
from
'../../utils'
;
import
{
evaluateSchema
}
from
'./schema'
;
import
{
createEffects
}
from
'./effects'
;
import
EvaluationList
from
'../../components/EvaluationList'
;
import
styles
from
'./index.less'
;
const
formActions
=
createFormActions
();
const
{
onFormInit$
,
}
=
FormEffectHooks
;
interface
Unevaluated
{
good
:
{
pic
:
string
,
productName
:
string
,
price
:
string
,
purchaseCount
:
string
,
};
star
:
number
;
comment
:
string
;
picture
:
string
[];
smile
:
number
;
};
const
SentDetail
:
React
.
FC
=
()
=>
{
const
{
orderId
,
id
,
pageStatus
}
=
usePageStatus
();
const
[
orderInfo
,
setOrderInfo
]
=
useState
<
GetOrderPurchaseOrderDetailsResponse
>
(
null
);
const
[
orderInfoLoading
,
setOrderInfoLoading
]
=
useState
(
false
);
const
[
evaluationInfo
,
setEvaluationInfo
]
=
useState
<
Unevaluated
>
(
null
);
const
[
evaluationInfoLoading
,
setEvaluationInfoLoading
]
=
useState
(
false
);
const
[
submitLoading
,
setSubmitLoading
]
=
useState
(
false
);
const
getOrderInfo
=
()
=>
{
if
(
!
orderId
)
{
return
;
}
setOrderInfoLoading
(
true
);
PublicApi
.
getOrderPurchaseOrderDetails
({
id
:
orderId
,
}).
then
(
res
=>
{
if
(
res
.
code
===
1000
)
{
setOrderInfo
(
res
.
data
);
}
}).
finally
(()
=>
{
setOrderInfoLoading
(
false
);
});
};
const
getEvaluationInfo
=
()
=>
{
if
(
!
id
)
{
return
;
}
setEvaluationInfoLoading
(
true
);
PublicApi
.
getMemberCommentSupplySendTradeHistoryGet
({
id
,
}).
then
(
res
=>
{
if
(
res
.
code
===
1000
)
{
const
{
product
}
=
res
.
data
;
const
productObj
=
isJSONStr
(
product
)
||
{};
setEvaluationInfo
({
good
:
{
pic
:
productObj
.
pic
,
productName
:
productObj
.
productName
,
price
:
productObj
.
price
,
purchaseCount
:
productObj
.
purchaseCount
,
},
star
:
res
.
data
.
star
,
comment
:
res
.
data
.
comment
,
picture
:
res
.
data
.
pics
?
res
.
data
.
pics
.
map
(
item
=>
normalizeFiledata
(
item
))
:
[],
smile
:
res
.
data
.
star
,
});
}
}).
finally
(()
=>
{
setEvaluationInfoLoading
(
false
);
});
};
useEffect
(()
=>
{
getOrderInfo
();
getEvaluationInfo
();
},
[]);
const
handleSubmit
=
values
=>
{
setSubmitLoading
(
true
);
const
payload
=
values
.
comments
.
map
(
item
=>
{
const
{
comment
,
good
,
picture
,
star
,
}
=
item
;
return
{
id
,
star
,
comment
,
};
});
if
(
!
payload
.
length
)
{
return
;
}
PublicApi
.
postMemberCommentSupplySendTradeHistoryUpdate
(
payload
[
0
])
.
then
(
res
=>
{
if
(
res
.
code
===
1000
)
{
setTimeout
(()
=>
{
history
.
goBack
();
},
800
);
}
})
.
finally
(()
=>
{
setSubmitLoading
(
false
);
});
};
const
beforeUpload
=
file
=>
{
if
(
file
.
size
/
1024
<
10
)
{
message
.
warning
(
'图片大小超过10M'
);
return
Promise
.
reject
();
}
};
const
UploadTip
=
(
<
span
style=
{
{
lineHeight
:
'24px'
,
color
:
'#909399'
,
fontWeight
:
400
,
wordBreak
:
'break-all'
,
position
:
'relative'
,
top
:
'34px'
,
}
}
>
支持JPG/PNG/JPEG
<
br
/>
每张最大不超过 10M,尺寸不限
<
br
/>
最大数量限制 4张
</
span
>
);
return
(
<
Spin
spinning=
{
orderInfoLoading
||
evaluationInfoLoading
}
>
<
PageHeaderWrapper
title=
{
<>
<
PageHeader
style=
{
{
padding
:
'0'
}
}
onBack=
{
()
=>
history
.
goBack
()
}
title=
{
<
AvatarWrap
info=
{
{
aloneTxt
:
'单'
,
name
:
orderInfo
?.
orderNo
,
}
}
/>
}
extra=
{
(
<>
{
pageStatus
===
PageStatus
.
EDIT
&&
(
<
Button
type=
"primary"
icon=
{
<
FormOutlined
/>
}
disabled=
{
!
id
}
loading=
{
submitLoading
}
onClick=
{
()
=>
formActions
.
submit
()
}
>
修改
</
Button
>
)
}
</>
)
}
>
<
Descriptions
size=
"small"
column=
{
3
}
style=
{
{
padding
:
'0 32px'
,
}
}
>
<
Descriptions
.
Item
label=
"采购会员"
>
{
orderInfo
?.
createMemberName
}
</
Descriptions
.
Item
>
<
Descriptions
.
Item
label=
"下单时间"
span=
{
2
}
>
{
orderInfo
?.
createTime
}
</
Descriptions
.
Item
>
</
Descriptions
>
</
PageHeader
>
</>
}
>
<
NiceForm
actions=
{
formActions
}
initialValues=
{
{
comments
:
[
evaluationInfo
],
}
}
editable=
{
pageStatus
===
PageStatus
.
EDIT
}
expressionScope=
{
{
UploadTip
:
pageStatus
===
PageStatus
.
EDIT
?
UploadTip
:
null
,
beforeUpload
,
}
}
onSubmit=
{
handleSubmit
}
components=
{
{
EvaluationList
,
}
}
effects=
{
(
$
,
actions
)
=>
{
createEffects
(
$
,
actions
);
onFormInit$
().
subscribe
(()
=>
{
if
(
pageStatus
===
PageStatus
.
EDIT
)
{
actions
.
setFieldState
(
'comments.*.picture'
,
state
=>
{
state
.
visible
=
false
;
}
);
}
});
}
}
schema=
{
evaluateSchema
}
/>
</
PageHeaderWrapper
>
</
Spin
>
);
};
export
default
SentDetail
;
\ No newline at end of file
src/pages/transaction/supplierEvaluation/sent/detail/schema/index.ts
0 → 100644
View file @
ea3c15ff
/*
* @Author: XieZhiXiong
* @Date: 2020-09-23 17:00:24
* @LastEditors: XieZhiXiong
* @LastEditTime: 2020-10-19 16:23:24
* @Description:
*/
import
{
ISchema
}
from
'@formily/antd'
;
import
{
UPLOAD_TYPE
}
from
'@/constants'
;
export
const
evaluateSchema
:
ISchema
=
{
type
:
'object'
,
properties
:
{
comments
:
{
type
:
'array'
,
'x-component'
:
'EvaluationList'
,
default
:
[],
items
:
{
type
:
'object'
,
properties
:
{
LEFT_RIGHT
:
{
type
:
'object'
,
'x-component'
:
'LeftRightLayout'
,
'x-component-props'
:
{
rightProps
:
{
span
:
2
,
offset
:
4
,
},
},
properties
:
{
MEGA_LADYOUT
:
{
type
:
'object'
,
'x-component'
:
'Mega-Layout'
,
'x-component-props'
:
{
labelCol
:
6
,
labelAlign
:
'left'
,
position
:
'left'
,
},
properties
:
{
star
:
{
title
:
'满意程度'
,
required
:
true
,
'x-component'
:
'Rating'
,
'x-component-props'
:
{
allowHalf
:
false
,
},
'x-rules'
:
[
{
required
:
true
,
message
:
'请选择满意程度'
,
},
],
},
comment
:
{
type
:
'string'
,
title
:
'评价'
,
'x-component'
:
'TextArea'
,
'x-component-props'
:
{
rows
:
4
,
},
'x-rules'
:
{
max
:
200
,
},
},
picture
:
{
type
:
'string'
,
title
:
'图片'
,
'x-component'
:
'Upload'
,
'x-component-props'
:
{
listType
:
'card'
,
action
:
'/api/file/file/upload/prefix'
,
data
:
{
fileType
:
UPLOAD_TYPE
,
prefix
:
'/supplierEvaluation/'
,
},
beforeUpload
:
'{{beforeUpload}}'
,
accept
:
'.png, .jpg, .jpeg'
,
},
'x-mega-props'
:
{
addonAfter
:
'{{UploadTip}}'
,
},
},
},
},
smile
:
{
type
:
'object'
,
default
:
1
,
'x-component'
:
'SmilingFace'
,
'x-component-props'
:
{
position
:
'right'
,
},
},
},
},
},
},
},
},
};
\ No newline at end of file
src/pages/transaction/supplierEvaluation/unevaluated/evaluate/index.tsx
View file @
ea3c15ff
...
...
@@ -43,18 +43,18 @@ interface OrderInfo extends GetOrderPurchaseOrderDetailsResponse {
};
const
EvaluateOrder
:
React
.
FC
=
()
=>
{
const
{
i
d
}
=
usePageStatus
();
const
{
orderI
d
}
=
usePageStatus
();
const
[
orderInfo
,
setOrderInfo
]
=
useState
<
OrderInfo
>
(
null
);
const
[
infoLoading
,
setInfoLoading
]
=
useState
(
false
);
const
[
submitLoading
,
setSubmitLoading
]
=
useState
(
false
);
const
getOrderInfo
=
()
=>
{
if
(
!
i
d
)
{
if
(
!
orderI
d
)
{
return
;
}
setInfoLoading
(
true
);
PublicApi
.
getOrderPurchaseOrderDetails
({
id
,
id
:
orderId
,
}).
then
(
res
=>
{
if
(
res
.
code
===
1000
)
{
const
{
orderProductRequests
}
=
res
.
data
;
...
...
src/pages/transaction/supplierEvaluation/unevaluated/evaluate/schema/index.ts
View file @
ea3c15ff
...
...
@@ -58,6 +58,9 @@ export const evaluateSchema: ISchema = {
'x-component-props'
:
{
rows
:
4
,
},
'x-rules'
:
{
max
:
200
,
},
},
picture
:
{
type
:
'string'
,
...
...
src/pages/transaction/supplierEvaluation/unevaluated/index.tsx
View file @
ea3c15ff
...
...
@@ -84,7 +84,7 @@ const Unevaluated: React.FC = () => {
align
:
'center'
,
render
:
(
text
,
record
)
=>
(
<>
<
Link
to=
{
`/memberCenter/tranactionAbility/supplierEvaluation/unevaluated/evaluate?
i
d=${record.id}`
}
>
<
Link
to=
{
`/memberCenter/tranactionAbility/supplierEvaluation/unevaluated/evaluate?
orderI
d=${record.id}`
}
>
<
Button
type=
"link"
>
...
...
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