Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
J
jinfa-platform
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
shenshaokai
jinfa-platform
Commits
3b99726b
Commit
3b99726b
authored
Oct 13, 2020
by
GuanHua
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'dev' into test
parents
9853daae
a904cacf
Show whitespace changes
Inline
Side-by-side
Showing
57 changed files
with
2641 additions
and
291 deletions
+2641
-291
afterServiceRoute.ts
config/routes/afterServiceRoute.ts
+276
-0
handlingRoute.ts
config/routes/handlingRoute.ts
+58
-0
index.ts
config/routes/index.ts
+5
-4
app.tsx
src/app.tsx
+2
-1
menu.ts
src/locales/zh-CN/menu.ts
+69
-5
columns.tsx
src/pages/afterService/common/columns.tsx
+58
-0
styles.less
src/pages/afterService/common/styles.less
+6
-0
index.tsx
src/pages/afterService/components/DetailPreview/index.tsx
+13
-0
index.less
...ages/afterService/components/OrderDetailHeader/index.less
+35
-0
index.tsx
...pages/afterService/components/OrderDetailHeader/index.tsx
+63
-0
index.less
...ges/afterService/components/OrderDetailWrapper/index.less
+4
-0
index.tsx
...ages/afterService/components/OrderDetailWrapper/index.tsx
+15
-0
index.less
src/pages/afterService/components/StatusColors/index.less
+0
-0
index.tsx
src/pages/afterService/components/StatusColors/index.tsx
+107
-0
detail.tsx
src/pages/afterService/exchangeGoods/orderList/detail.tsx
+32
-0
index.tsx
src/pages/afterService/exchangeGoods/orderList/index.tsx
+103
-0
useSelfTable.tsx
...terService/exchangeGoods/orderList/model/useSelfTable.tsx
+18
-0
index.ts
...ages/afterService/exchangeGoods/orderList/schema/index.ts
+75
-0
index.tsx
.../afterService/exchangeGoods/waitSubmitOrderList/index.tsx
+106
-0
useSelfTable.tsx
.../exchangeGoods/waitSubmitOrderList/model/useSelfTable.tsx
+26
-0
index.ts
...Service/exchangeGoods/waitSubmitOrderList/schema/index.ts
+57
-0
index.tsx
src/pages/handling/assign/add/index.tsx
+71
-0
index.tsx
src/pages/handling/assign/all/index.tsx
+98
-0
index.tsx
src/pages/handling/assign/detail/index.tsx
+86
-0
index.tsx
src/pages/handling/assign/tobeAdd/index.tsx
+98
-0
index.tsx
src/pages/handling/components/Appendix/index.tsx
+38
-0
index.tsx
src/pages/handling/components/Circulation/index.tsx
+37
-0
index.tsx
src/pages/handling/components/OtherRequirement/index.tsx
+30
-0
index.tsx
src/pages/handling/components/WrapTable/index.tsx
+61
-0
addSchema.tsx
src/pages/handling/schema/addSchema.tsx
+292
-0
assignAll.tsx
src/pages/handling/schema/assignAll.tsx
+84
-0
addressForm.tsx
src/pages/logistics/list/components/addressForm.tsx
+38
-9
index.tsx
src/pages/lxMall/commodityDetail/index.tsx
+1
-0
index.tsx
src/pages/lxMall/information/index.tsx
+5
-0
index.tsx
src/pages/lxMall/pay/components/transfer/index.tsx
+1
-1
list.tsx
src/pages/lxMall/pointsMall/list.tsx
+7
-5
statusList.ts
src/pages/transaction/common/statusList.ts
+44
-0
tableStatusList.tsx
src/pages/transaction/common/tableStatusList.tsx
+16
-0
confirmModal.tsx
...ages/transaction/enquiryOffer/components/confirmModal.tsx
+0
-1
add.tsx
src/pages/transaction/goodsOffer/addEnquiryOrder/add.tsx
+42
-3
attached.tsx
...action/goodsOffer/addEnquiryOrder/components/attached.tsx
+28
-6
basicInfo.tsx
...ction/goodsOffer/addEnquiryOrder/components/basicInfo.tsx
+18
-6
enquiryGoods.tsx
...on/goodsOffer/addEnquiryOrder/components/enquiryGoods.tsx
+10
-2
tradingConditions.tsx
...odsOffer/addEnquiryOrder/components/tradingConditions.tsx
+19
-7
index.tsx
src/pages/transaction/goodsOffer/addEnquiryOrder/index.tsx
+52
-13
auditModel.tsx
src/pages/transaction/goodsOffer/components/auditModel.tsx
+126
-0
reviewList.tsx
src/pages/transaction/goodsOffer/components/reviewList.tsx
+118
-0
index.tsx
src/pages/transaction/goodsOffer/enquiryOrder/index.tsx
+12
-0
index.tsx
src/pages/transaction/goodsOffer/pendingReviewOne/index.tsx
+2
-109
index.tsx
src/pages/transaction/goodsOffer/pendingReviewTwo/index.tsx
+2
-109
index.tsx
src/pages/transaction/goodsOffer/pendingSubmit/index.tsx
+65
-5
index.tsx
...ansaction/purchaseOrder/components/StatusColors/index.tsx
+1
-1
index.tsx
src/pages/transaction/purchaseOrder/constant/index.tsx
+3
-2
register.tsx
src/pages/user/register.tsx
+4
-1
index.ts
src/pages/user/schema/index.ts
+0
-0
api.ts
src/services/api.ts
+3
-1
ytt.config.ts
ytt.config.ts
+1
-0
No files found.
config/routes/afterServiceRoute.ts
0 → 100644
View file @
3b99726b
/*
* 售后能力
* @Author: ghua
* @Date: 2020-10-09 14:26:12
* @Last Modified by: ghua
* @Last Modified time: 2020-10-12 16:23:41
*/
const
AfterServiceRoute
=
{
path
:
'/memberCenter/afterService'
,
name
:
'afterService'
,
icon
:
'smile'
,
routes
:
[
{
// 换货申请
path
:
'/memberCenter/afterService/exchange'
,
name
:
'exchange'
,
routes
:
[
{
// 换货申请单查询
path
:
'/memberCenter/afterService/exchange/orderList'
,
name
:
'orderList'
,
component
:
'@/pages/afterService/exchangeGoods/orderList'
},
{
// 换货申请单查询
path
:
'/memberCenter/afterService/exchange/orderPreview'
,
name
:
'orderList'
,
hideInMenu
:
true
,
noMargin
:
true
,
component
:
'@/pages/afterService/exchangeGoods/orderList/detail'
},
{
// 待提交换货申请单
path
:
'/memberCenter/afterService/exchange/waitSubmitOrderList'
,
name
:
'waitSubmitOrderList'
,
component
:
'@/pages/afterService/exchangeGoods/waitSubmitOrderList'
},
{
// 待新增退货发货单
path
:
'/memberCenter/afterService/exchange/waitAddReturnOrder'
,
name
:
'waitAddReturnOrder'
,
},
{
// 待新增物流单
path
:
'/memberCenter/afterService/exchange/waitAddLogisticsOrder'
,
name
:
'waitAddLogisticsOrder'
,
},
{
// 待退货发货
path
:
'/memberCenter/afterService/exchange/returnOrder'
,
name
:
'returnOrder'
,
},
{
// 待确认退货回单
path
:
'/memberCenter/afterService/exchange/returnConfirmOrder'
,
name
:
'returnConfirmOrder'
,
},
{
// 待新增换货入库单
path
:
'/memberCenter/afterService/exchange/waitAddStorageOrder'
,
name
:
'waitAddStorageOrder'
,
},
{
// 待换货收货
path
:
'/memberCenter/afterService/exchange/waitReceiving'
,
name
:
'waitReceiving'
,
},
{
// 待确认售后完成
path
:
'/memberCenter/afterService/exchange/waitComfirm'
,
name
:
'waitComfirm'
,
},
]
},
{
// 换货处理
path
:
'/memberCenter/afterService/handleExchange'
,
name
:
'handleExchange'
,
routes
:
[
{
// 换货申请单查询
path
:
'/memberCenter/afterService/handleExchange/orderList'
,
name
:
'orderList'
,
},
{
// 待提交审核换货申请单
path
:
'/memberCenter/afterService/handleExchange/waitAddExamineOrder'
,
name
:
'waitAddExamineOrder'
,
},
{
// 待审核换货申请单(一级)
path
:
'/memberCenter/afterService/handleExchange/waitExamineLevelOne'
,
name
:
'waitExamineLevelOne'
,
},
{
// 待审核换货申请单(二级)
path
:
'/memberCenter/afterService/handleExchange/waitExamineLevelTwo'
,
name
:
'waitExamineLevelTwo'
,
},
{
// 待确认换货申请单
path
:
'/memberCenter/afterService/handleExchange/waitConfirmExchangeOrder'
,
name
:
'waitConfirmExchangeOrder'
},
{
// 待新增退货入库单
path
:
'/memberCenter/afterService/handleExchange/waitAddReturnOrder'
,
name
:
'waitAddReturnOrder'
,
},
{
// 待退货收货
path
:
'/memberCenter/afterService/handleExchange/waitReturnReceivingOrder'
,
name
:
'waitReturnReceivingOrder'
,
},
{
// 待新增换货发货单
path
:
'/memberCenter/afterService/handleExchange/waitSendOutOrder'
,
name
:
'waitSendOutOrder'
,
},
{
// 待新增物流单
path
:
'/memberCenter/afterService/handleExchange/waitAddLogisticsOrder'
,
name
:
'waitAddLogisticsOrder'
,
},
{
// 待换货发货
path
:
'/memberCenter/afterService/handleExchange/waitSendOut'
,
name
:
'waitSendOut'
,
},
{
// 待确认换货回单
path
:
'/memberCenter/afterService/handleExchange/exchangeConfirmOrder'
,
name
:
'exchangeConfirmOrder'
,
},
]
},
{
// 退货申请
path
:
'/memberCenter/afterService/return'
,
name
:
'return'
,
routes
:
[
{
// 退申请单查询
path
:
'/memberCenter/afterService/return/orderList'
,
name
:
'orderList'
,
},
{
// 待提交退货申请单
path
:
'/memberCenter/afterService/return/waitSubmitOrder'
,
name
:
'waitSubmitOrder'
,
},
{
// 待退货发货
path
:
'/memberCenter/afterService/return/waitReturnAndSendOut'
,
name
:
'waitReturnAndSendOut'
,
},
{
// 待确认退货回单
path
:
'/memberCenter/afterService/return/waitConfirmOrder'
,
name
:
'waitConfirmOrder'
,
},
{
// 待确认退款结果
path
:
'/memberCenter/afterService/return/waitConfirmRefundResult'
,
name
:
'waitConfirmRefundResult'
,
},
{
// 待确认售后完成
path
:
'/memberCenter/afterService/return/waitConfirmFinsh'
,
name
:
'waitConfirmFinsh'
,
},
]
},
{
// 退货处理
path
:
'/memberCenter/afterService/handleReturn'
,
name
:
'handleReturn'
,
routes
:
[
{
// 退申请单查询
path
:
'/memberCenter/afterService/handleReturn/orderList'
,
name
:
'orderList'
,
},
{
// 待提交审核退货申请单
path
:
'/memberCenter/afterService/handleReturn/waitSubmitExamineOrder'
,
name
:
'waitSubmitExamineOrder'
,
},
{
// 待审核退货申请单(一级)
path
:
'/memberCenter/afterService/handleReturn/waitExamineLevelOne'
,
name
:
'waitExamineLevelOne'
,
},
{
// 待审核退货申请单(二级)
path
:
'/memberCenter/afterService/handleReturn/waitExamineLevelTwo'
,
name
:
'waitExamineLevelTwo'
,
},
{
// 待确认退货申请单
path
:
'/memberCenter/afterService/handleReturn/waitConfirmReturn'
,
name
:
'waitConfirmReturn'
,
},
{
// 待退货收货
path
:
'/memberCenter/afterService/handleReturn/waitReturnAndReceiving'
,
name
:
'waitReturnAndReceiving'
,
},
{
// 待退款
path
:
'/memberCenter/afterService/handleReturn/waitRefund'
,
name
:
'waitRefund'
,
},
]
},
{
// 维修申请
path
:
'/memberCenter/afterService/repair'
,
name
:
'repair'
,
routes
:
[
{
// 维修申请单查询
path
:
'/memberCenter/afterService/repair/orderList'
,
name
:
'orderList'
,
},
{
// 待提交维修申请单
path
:
'/memberCenter/afterService/repair/waitSubmitOrder'
,
name
:
'waitSubmitOrder'
,
},
{
// 待确认售后完成
path
:
'/memberCenter/afterService/repair/waitConfirmFinsh'
,
name
:
'waitConfirmFinsh'
,
},
]
},
{
// 维修处理
path
:
'/memberCenter/afterService/handleRepair'
,
name
:
'handleRepair'
,
routes
:
[
{
// 维修申请单查询
path
:
'/memberCenter/afterService/handleRepair/orderList'
,
name
:
'orderList'
,
},
{
// 待提交审核维修申请单
path
:
'/memberCenter/afterService/handleRepair/waitSubmitExamineOrder'
,
name
:
'waitSubmitExamineOrder'
,
},
{
// 待审核维修申请单(一级)
path
:
'/memberCenter/afterService/handleRepair/waitExamineLevelOne'
,
name
:
'waitExamineLevelOne'
,
},
{
// 待审核维修申请单(二级)
path
:
'/memberCenter/afterService/handleRepair/waitExamineLevelTwo'
,
name
:
'waitExamineLevelTwo'
,
},
{
// 待确认维修申请单
path
:
'/memberCenter/afterService/handleRepair/waitConfirmOrder'
,
name
:
'waitConfirmOrder'
,
},
]
},
]
}
export
default
AfterServiceRoute
\ No newline at end of file
config/routes/handlingRoute.ts
0 → 100644
View file @
3b99726b
/*
* @Author: Bill
* @Date: 2020-10-12 09:45:20
* @LastEditTime: 2020-10-12 16:48:05
* @Description: 加工能力路由
*/
const
HandlingRoute
=
{
path
:
'/memberCenter/handling'
,
name
:
'handling'
,
key
:
'handling'
,
icon
:
'smile'
,
routes
:
[
//指派生产通知单
{
path
:
'/memberCenter/handling/assign'
,
name
:
'assign'
,
key
:
'assign'
,
routes
:
[
// 指派生产通知单查询
{
path
:
'/memberCenter/handling/assign/All'
,
name
:
'assignProductionAll'
,
key
:
'assignProductionAll'
,
component
:
'@/pages/handling/assign/all'
,
},
// 指派生产通知单 -> 待新增生产通知单
{
path
:
'/memberCenter/handling/assign/ToBeAdd'
,
name
:
'assignProductionToBeAdd'
,
key
:
'assignProductionToBeAdd'
,
component
:
'@/pages/handling/assign/tobeAdd'
},
// 指派生产通知单 -> 新增成产通知单(新建)
{
path
:
'/memberCenter/handling/assign/add'
,
name
:
'assignProductionAdd'
,
key
:
'assignProductionAdd'
,
component
:
'@/pages/handling/assign/add'
,
// hideInMenu: true
},
// 指派生产通知单 -> 详情
{
path
:
'/memberCenter/handling/assign/detail'
,
name
:
'assignProductionDetail'
,
key
:
'assignProductionDetail'
,
component
:
'@/pages/handling/assign/detail'
}
]
}
]
}
export
default
HandlingRoute
\ No newline at end of file
config/routes/index.ts
View file @
3b99726b
/*
* @Author: LeeJiancong
* @Date: 2020-07-13 14:08:50
* @LastEditors:
LeeJiancong
* @LastEditTime: 2020-
08-19 15:39:49
* @LastEditors:
Please set LastEditors
* @LastEditTime: 2020-
10-12 10:14:50
*/
import
CommodityRoute
from
'./commodityRoute'
// 商品能力路由
import
MemberRoute
from
'./memberRoute'
// 会员能力路由
...
...
@@ -12,8 +12,9 @@ import TranactionRoute from './tranactionRoute' // 交易能力路由
import
LogisticsRoute
from
'./logisticsRoutes'
// 物流能力路由
import
PayandSettleRoute
from
'./payandSettle'
//支付与结算
import
AuthConfigRoute
from
'./authConfigRoute'
const
routes
=
[
CommodityRoute
,
MemberRoute
,
ShopRoute
,
ChannelRoute
,
TranactionRoute
,
PayandSettleRoute
,
LogisticsRoute
,
AuthConfigRoute
]
import
AfterService
from
'./afterServiceRoute'
// 售后
import
HandlingRoute
from
'./handlingRoute'
;
// 加工能力
const
routes
=
[
CommodityRoute
,
MemberRoute
,
ShopRoute
,
ChannelRoute
,
TranactionRoute
,
AfterService
,
PayandSettleRoute
,
LogisticsRoute
,
AuthConfigRoute
,
HandlingRoute
]
const
memberCenterRoute
=
{
path
:
'/memberCenter'
,
...
...
src/app.tsx
View file @
3b99726b
...
...
@@ -21,7 +21,8 @@ setup()
const
userLoginLists
=
[
'/user/login'
,
'/user/register'
,
'/user/forget'
'/user/forget'
,
'/user/agreement'
]
// 商城相关路由
...
...
src/locales/zh-CN/menu.ts
View file @
3b99726b
/*
* @Author: LeeJiancong
* @Date: 2020-07-13 14:08:50
* @LastEditors:
XieZhiXiong
* @LastEditTime: 2020-
09-30 17:22:37
* @LastEditors:
Please set LastEditors
* @LastEditTime: 2020-
10-12 16:49:53
*/
export
default
{
...
...
@@ -202,8 +202,8 @@ export default {
'menu.tranactionAbility.enquiryOfferConfirm.toSubmit'
:
'待提交审核报价单'
,
'menu.tranactionAbility.enquiryOfferConfirm.enquiryOne'
:
'待审核报价单(一级)'
,
'menu.tranactionAbility.enquiryOfferConfirm.enquiryTwo'
:
'待审核报价单(二级)'
,
'menu.tranactionAbility.enquiryOfferConfirm.viewEnquiryDetail'
:
'报价单详情'
,
'menu.tranactionAbility.enquiryOfferConfirm.enquiryOfferComfirmSearch'
:
'待确认报价单'
,
'menu.tranactionAbility.enquiryOfferConfirm.viewEnquiryDetail'
:
'报价单详情'
,
'menu.tranactionAbility.enquiryOfferConfirm.enquiryOfferComfirmSearch'
:
'待确认报价单'
,
// 供应商评价
...
...
@@ -222,6 +222,61 @@ export default {
'menu.tranactionAbility.purchaserEvaluation.received'
:
'收到的评价'
,
'menu.tranactionAbility.purchaserEvaluation.sent'
:
'发出的评价'
,
// 售后能力
'menu.afterService'
:
'售后'
,
'menu.afterService.exchange'
:
'换货申请'
,
'menu.afterService.exchange.orderList'
:
'换货申请单查询'
,
'menu.afterService.exchange.waitSubmitOrderList'
:
'待提交换货申请单'
,
'menu.afterService.exchange.waitAddReturnOrder'
:
'待新增退货发货单'
,
'menu.afterService.exchange.waitAddLogisticsOrder'
:
'待新增物流单'
,
'menu.afterService.exchange.returnOrder'
:
'待退货发货'
,
'menu.afterService.exchange.returnConfirmOrder'
:
'待确认退货回单'
,
'menu.afterService.exchange.waitAddStorageOrder'
:
'待新增换货入库单'
,
'menu.afterService.exchange.waitReceiving'
:
'待换货收货'
,
'menu.afterService.exchange.waitComfirm'
:
'待确认售后完成'
,
'menu.afterService.handleExchange'
:
'换货处理'
,
'menu.afterService.handleExchange.orderList'
:
'换货申请单查询'
,
'menu.afterService.handleExchange.waitAddExamineOrder'
:
'待提交审核换货申请单'
,
'menu.afterService.handleExchange.waitExamineLevelOne'
:
'待审核换货申请单(一级)'
,
'menu.afterService.handleExchange.waitExamineLevelTwo'
:
'待审核换货申请单(二级)'
,
'menu.afterService.handleExchange.waitConfirmExchangeOrder'
:
'待确认换货申请单'
,
'menu.afterService.handleExchange.waitAddReturnOrder'
:
'待新增退货入库单'
,
'menu.afterService.handleExchange.waitReturnReceivingOrder'
:
'待退货收货'
,
'menu.afterService.handleExchange.waitSendOutOrder'
:
'待新增换货发货单'
,
'menu.afterService.handleExchange.waitAddLogisticsOrder'
:
'待新增物流单'
,
'menu.afterService.handleExchange.waitSendOut'
:
'待换货发货'
,
'menu.afterService.handleExchange.exchangeConfirmOrder'
:
'待确认换货回单'
,
'menu.afterService.return'
:
'退货申请'
,
'menu.afterService.return.orderList'
:
'退申请单查询'
,
'menu.afterService.return.waitSubmitOrder'
:
'待提交退货申请单'
,
'menu.afterService.return.waitReturnAndSendOut'
:
'待退货发货'
,
'menu.afterService.return.waitConfirmOrder'
:
'待确认退货回单'
,
'menu.afterService.return.waitConfirmRefundResult'
:
'待确认退款结果'
,
'menu.afterService.return.waitConfirmFinsh'
:
'待确认售后完成'
,
'menu.afterService.handleReturn'
:
'退货处理'
,
'menu.afterService.handleReturn.orderList'
:
'退申请单查询'
,
'menu.afterService.handleReturn.waitSubmitExamineOrder'
:
'待提交审核退货申请单'
,
'menu.afterService.handleReturn.waitExamineLevelOne'
:
'待审核退货申请单(一级)'
,
'menu.afterService.handleReturn.waitExamineLevelTwo'
:
'待审核退货申请单(二级)'
,
'menu.afterService.handleReturn.waitConfirmReturn'
:
'待确认退货申请单'
,
'menu.afterService.handleReturn.waitReturnAndReceiving'
:
'待退货收货'
,
'menu.afterService.handleReturn.waitRefund'
:
'待退款'
,
'menu.afterService.repair'
:
'维修申请'
,
'menu.afterService.repair.orderList'
:
'维修申请单查询'
,
'menu.afterService.repair.waitSubmitOrder'
:
'待提交维修申请单'
,
'menu.afterService.repair.waitConfirmFinsh'
:
'待确认售后完成'
,
'menu.afterService.handleRepair'
:
'维修处理'
,
'menu.afterService.handleRepair.orderList'
:
'维修申请单查询'
,
'menu.afterService.handleRepair.waitSubmitExamineOrder'
:
'待提交审核维修申请单'
,
'menu.afterService.handleRepair.waitExamineLevelOne'
:
'待审核维修申请单(一级)'
,
'menu.afterService.handleRepair.waitExamineLevelTwo'
:
'待审核维修申请单(二级)'
,
'menu.afterService.handleRepair.waitConfirmOrder'
:
'待确认维修申请单'
,
//物流能力
'menu.logisticsAbility'
:
'物流'
,
'menu.logisticsAbility.logistics'
:
'物流管理'
,
...
...
@@ -281,5 +336,13 @@ export default {
'menu.systemSetting.collection'
:
'收藏管理'
,
'menu.systemSetting.accountSetting'
:
'账号安全设置'
,
'menu.systemSetting.editAccount'
:
'编辑账号信息'
'menu.systemSetting.editAccount'
:
'编辑账号信息'
,
// 加工能力, assign 指的是 指派生产通知单
'menu.handling'
:
'加工'
,
'menu.handling.assign'
:
'指派生产通知单'
,
'menu.handling.assign.assignProductionAll'
:
'生产通知单查询'
,
'menu.handling.assign.assignProductionToBeAdd'
:
'待新增生产通知单'
,
'menu.handling.assign.assignProductionAdd'
:
'新建生产通知单'
,
'menu.handling.assign.assignProductionDetail'
:
'生产通知单详情'
};
\ No newline at end of file
src/pages/afterService/common/columns.tsx
0 → 100644
View file @
3b99726b
import
React
from
'react'
import
{
formatTimeString
}
from
'@/utils'
import
{
ORDER_TYPE
}
from
'@/constants'
import
StatusColors
from
'../components/StatusColors'
import
EyePreview
from
'@/components/EyePreview'
export
const
baseOrderListColumns
:
any
[]
=
[
{
title
:
'申请单号'
,
align
:
'center'
,
dataIndex
:
'applyNo'
,
key
:
'applyNo'
,
render
:
(
text
,
record
)
=>
{
// 查看订单, 需根据状态显示不同schema
return
<
EyePreview
url=
{
`/`
}
>
{
text
}
</
EyePreview
>
},
ellipsis
:
true
,
},
{
title
:
'申请单摘要'
,
align
:
'center'
,
dataIndex
:
'applyAbstract'
,
key
:
'applyAbstract'
,
ellipsis
:
true
,
},
{
title
:
'供应会员'
,
align
:
'center'
,
dataIndex
:
'supplierName'
,
key
:
'supplierName'
,
ellipsis
:
true
,
},
{
title
:
'单据时间'
,
align
:
'center'
,
dataIndex
:
'applyTime'
,
key
:
'applyTime'
,
render
:
(
text
)
=>
formatTimeString
(
text
)
},
{
title
:
'外部状态'
,
align
:
'center'
,
dataIndex
:
'outerStatus'
,
key
:
'outerStatus'
,
render
:
text
=>
<
StatusColors
status=
{
text
}
type=
'out'
/>
},
{
title
:
'内部状态'
,
align
:
'center'
,
dataIndex
:
'innerStatus'
,
key
:
'innerStatus'
,
render
:
(
text
)
=>
<
StatusColors
status=
{
text
}
type=
'inside'
/>
},
]
\ No newline at end of file
src/pages/afterService/common/styles.less
0 → 100644
View file @
3b99726b
:global {
.god-table-control {
margin-bottom: 0;
}
}
\ No newline at end of file
src/pages/afterService/components/DetailPreview/index.tsx
0 → 100644
View file @
3b99726b
import
React
from
'react'
const
DetailPreView
:
React
.
FC
=
()
=>
{
return
(
<
div
>
</
div
>
)
}
export
default
DetailPreView
\ No newline at end of file
src/pages/afterService/components/OrderDetailHeader/index.less
0 → 100644
View file @
3b99726b
.titleAvator {
width: 48px;
height: 48px;
background: rgba(135, 119, 217, 1);
border-radius: 4px;
border: 1px solid rgba(223, 225, 230, 1);
line-height: 48px;
text-align: center;
color: #fff;
font-size: 24px;
margin: 0 24px;
}
.titleAvatorText {
color: #303133;
font-size: 18px;
line-height: 20px;
}
.detailHeader {
background: #fff;
padding: 24px;
}
.detailCol {
display: flex;
margin-top: 20px;
color: #303133;
}
.colLabel {
color: #909399;
margin-right: 16px;
}
\ No newline at end of file
src/pages/afterService/components/OrderDetailHeader/index.tsx
0 → 100644
View file @
3b99726b
import
React
,
{
ReactNode
}
from
'react'
import
{
Row
,
Col
}
from
'antd'
import
{
history
}
from
'umi'
import
{
ArrowLeftOutlined
}
from
'@ant-design/icons'
import
style
from
'./index.less'
export
interface
OrderDetailHeaderProps
{
headerTitle
:
{
// 图标显示的文字
titleLabel
:
string
,
titleValue
:
ReactNode
,
picName
?:
string
,
}
|
null
,
extraRight
?:
ReactNode
,
detailList
?:
{
label
:
string
,
name
:
string
,
render
?(
text
,
record
?),
[
key
:
string
]:
any
}[],
detailData
?:
any
}
/**
* 订单详情头部
*/
const
OrderDetailHeader
:
React
.
FC
<
OrderDetailHeaderProps
>
=
({
headerTitle
,
extraRight
,
detailList
=
[],
detailData
=
{}
})
=>
{
return
(
<
div
className=
{
style
.
detailHeader
}
>
<
Row
>
{
headerTitle
&&
<
Col
>
<
Row
align=
'middle'
>
<
Col
>
<
ArrowLeftOutlined
onClick=
{
()
=>
history
.
goBack
()
}
/>
</
Col
>
<
Col
className=
{
style
.
titleAvator
}
>
{
headerTitle
.
picName
}
</
Col
>
</
Row
>
</
Col
>
}
<
Col
style=
{
{
flex
:
1
}
}
>
<
Row
justify=
'space-between'
align=
'middle'
style=
{
{
paddingTop
:
14
}
}
>
<
Col
style=
{
{
flex
:
1
}
}
>
<
div
className=
{
style
.
titleAvatorText
}
>
{
headerTitle
.
titleLabel
}{
headerTitle
.
titleValue
}
</
div
>
<
Row
>
{
detailList
.
map
(
v
=>
{
const
{
label
,
render
,
name
,
...
colProps
}
=
v
return
<
Col
key=
{
label
}
{
...
colProps
}
className=
{
style
.
detailCol
}
>
<
span
className=
{
style
.
colLabel
}
>
{
label
}
:
</
span
>
{
render
?
render
(
detailData
[
name
],
detailData
)
:
<
span
>
{
detailData
[
name
]
}
</
span
>
}
</
Col
>
})
}
</
Row
>
</
Col
>
<
Col
>
{
extraRight
}
</
Col
>
</
Row
>
</
Col
>
</
Row
>
</
div
>
)
}
OrderDetailHeader
.
defaultProps
=
{}
export
default
OrderDetailHeader
\ No newline at end of file
src/pages/afterService/components/OrderDetailWrapper/index.less
0 → 100644
View file @
3b99726b
.wrapper {
padding: 24px;
}
\ No newline at end of file
src/pages/afterService/components/OrderDetailWrapper/index.tsx
0 → 100644
View file @
3b99726b
import
React
from
'react'
import
style
from
'./index.less'
export
interface
OrderDetailWrapperProps
{}
const
OrderDetailWrapper
:
React
.
FC
<
OrderDetailWrapperProps
>
=
(
props
)
=>
{
return
(
<
div
className=
{
style
.
wrapper
}
>
{
props
.
children
}
</
div
>
)
}
OrderDetailWrapper
.
defaultProps
=
{}
export
default
OrderDetailWrapper
\ No newline at end of file
src/pages/afterService/components/StatusColors/index.less
0 → 100644
View file @
3b99726b
src/pages/afterService/components/StatusColors/index.tsx
0 → 100644
View file @
3b99726b
import
React
from
'react'
import
{
Tag
}
from
'antd'
import
{
PurchaseOrderInsideWorkStateTexts
,
PurchaseOrderOutWorkStateTexts
,
PurchaseOrderInsideWorkState
,
PurchaseOrderOutWorkState
,
SaleOrderInsideWorkState
,
SaleOrderInsideWorkStateTexts
}
from
'@/constants'
export
interface
IStatusColor
{
[
key
:
string
]:
{
value
:
string
|
number
,
color
:
string
}
}
// 用于标签状态控制
export
interface
StatusColorsProps
{
status
:
number
,
type
:
'out'
|
'inside'
|
'saleInside'
}
export
enum
ORDER_EXAMINE_ENUM
{
/**
* 新增订单
*/
ADD_ORDER
=
1
,
/**
* 一级审核
*/
ONE_LEVEL_VALIDATE
,
/**
* 二级审核
*/
TWO_LEVEL_VALIDATE
,
/**
* 提交订单中
*/
SUBMIT_ORDER_PROCESS
,
/**
* 提交订单成功
*/
SUBMIT_ORDER_SUCCESS
,
/**
* 一级审核失败
*/
ONE_LEVEL_VALIDATE_ERROR
,
/**
* 二级审核失败
*/
TWO_LEVEL_VALIDATE_ERROR
}
export
const
ORDER_EXAMINE_LIST
=
[
''
,
'新增订单'
,
'一级审核中'
,
'二级审核中'
,
'提交订单'
,
'提交成功'
,
'一级审核不通过'
,
'二级审核不通过'
]
// 状态颜色映射
export
const
StatusColorsMaps
=
{
ready
:
'#C0C4CC'
,
process
:
'#FFC400'
,
submit
:
'#6C9CEB'
,
success
:
'#41CC9E'
,
error
:
'#EF6260'
}
const
matchStatusColor
=
(
status
:
number
):
string
=>
{
const
maps
=
{
[
ORDER_EXAMINE_ENUM
.
ADD_ORDER
]:
StatusColorsMaps
.
ready
,
[
ORDER_EXAMINE_ENUM
.
ONE_LEVEL_VALIDATE
]:
StatusColorsMaps
.
process
,
[
ORDER_EXAMINE_ENUM
.
TWO_LEVEL_VALIDATE
]:
StatusColorsMaps
.
process
,
[
ORDER_EXAMINE_ENUM
.
SUBMIT_ORDER_PROCESS
]:
StatusColorsMaps
.
submit
,
[
ORDER_EXAMINE_ENUM
.
SUBMIT_ORDER_SUCCESS
]:
StatusColorsMaps
.
success
}
const
READY_LISTS
=
[
PurchaseOrderInsideWorkState
.
CANCEL_ORDER
,
PurchaseOrderOutWorkState
.
CANCEL_ORDER
]
// 默认返回错误的状态颜色
return
maps
[
status
]
||
StatusColorsMaps
.
error
}
const
typeMaps
=
{
'out'
:
PurchaseOrderOutWorkStateTexts
,
'inside'
:
PurchaseOrderInsideWorkStateTexts
,
'saleInside'
:
SaleOrderInsideWorkStateTexts
}
// 订单内部状态显示
const
StatusColors
:
React
.
FC
<
StatusColorsProps
>
=
(
props
)
=>
{
const
{
status
,
type
}
=
props
const
statusText
=
typeMaps
[
type
]
const
statusShowColor
=
matchStatusColor
(
status
)
return
(<
Tag
color=
{
statusShowColor
}
>
{
statusText
[
status
]
}
</
Tag
>)
}
StatusColors
.
defaultProps
=
{}
export
default
StatusColors
\ No newline at end of file
src/pages/afterService/exchangeGoods/orderList/detail.tsx
0 → 100644
View file @
3b99726b
import
React
,
{
useState
}
from
'react'
import
OrderDetailHeader
from
'../../components/OrderDetailHeader'
import
OrderDetailWrapper
from
'../../components/OrderDetailWrapper'
const
OrderDetail
:
React
.
FC
=
()
=>
{
const
[
formData
,
setFormData
]
=
useState
<
any
>
({})
const
headerTiTle
=
{
picName
:
'单'
,
titleLabel
:
'申请单号:'
,
titleValue
:
'FPTY12'
}
const
detailList
=
[
{
label
:
'申请单摘要'
,
name
:
'orderThe'
,
span
:
8
,
render
:
text
=>
'进口头层黄牛皮荔枝纹'
},
{
label
:
'供应会员'
,
name
:
'supplyMembersName'
,
span
:
8
,
render
:
text
=>
'温州隆昌手袋有限公司'
},
{
label
:
'单据时间'
,
name
:
'orderModel'
,
span
:
8
,
render
:
text
=>
'2020-09-09 12:58:25'
},
{
label
:
'外部状态'
,
name
:
'type'
,
span
:
8
,
render
:
text
=>
'售后完成'
},
{
label
:
'内部状态'
,
name
:
'createTime'
,
span
:
8
,
render
:
text
=>
'已确认售后完成'
},
]
return
(
<
div
>
<
OrderDetailHeader
headerTitle=
{
headerTiTle
}
detailList=
{
detailList
}
detailData=
{
formData
}
/>
<
OrderDetailWrapper
>
111
</
OrderDetailWrapper
>
</
div
>
)
}
export
default
OrderDetail
src/pages/afterService/exchangeGoods/orderList/index.tsx
0 → 100644
View file @
3b99726b
/*
* 换货申请单列表
* @Author: ghua
* @Date: 2020-10-12 11:03:30
* @Last Modified by: ghua
* @Last Modified time: 2020-10-12 14:49:16
*/
import
React
,
{
useRef
}
from
'react'
import
{
Card
,
Select
,
message
}
from
'antd'
import
{
StandardTable
}
from
'god'
import
{
PageHeaderWrapper
}
from
'@ant-design/pro-layout'
import
{
PublicApi
}
from
'@/services/api'
import
{
useSelfTable
}
from
'./model/useSelfTable'
import
{
tableListSchema
}
from
'./schema'
import
{
useStateFilterSearchLinkageEffect
}
from
'@/formSchema/effects/useFilterSearch'
import
{
FORM_FILTER_PATH
}
from
'@/formSchema/const'
import
Submit
from
'@/components/NiceForm/components/Submit'
import
{
DatePicker
}
from
'@formily/antd-components'
import
{
PurchaseOrderInsideWorkState
}
from
'@/constants'
import
styles
from
'../../common/styles.less'
// 一级待审核订单
export
interface
ExchangeOrderListProps
{
}
const
fetchTableData
=
async
(
params
)
=>
{
const
{
data
}
=
await
PublicApi
.
getAsReplaceGoodsPageByConsumer
(
params
)
return
data
}
const
ExchangeOrderList
:
React
.
FC
<
ExchangeOrderListProps
>
=
(
props
)
=>
{
const
{
columns
,
ref
,
rowSelection
,
rowSelectionCtl
}
=
useSelfTable
()
const
handleSubmitBatch
=
async
()
=>
{
if
(
rowSelectionCtl
.
selectRow
.
length
===
0
)
{
message
.
error
(
'请先勾选订单'
)
return
;
}
const
canBitch
=
!
rowSelectionCtl
.
selectRow
.
some
(
v
=>
v
.
interiorState
!==
PurchaseOrderInsideWorkState
.
ONE_LEVEL_AUDIT_ORDER
)
if
(
canBitch
)
{
await
PublicApi
.
postOrderProcurementOrderReviewedAll
({
ids
:
rowSelectionCtl
.
selectedRowKeys
})
ref
.
current
.
reload
()
}
else
{
message
.
error
(
'只能批量提交内部状态为审核中的订单'
)
}
}
return
<
PageHeaderWrapper
>
<
Card
>
<
StandardTable
className=
{
styles
.
noMarBottom
}
fetchTableData=
{
params
=>
fetchTableData
(
params
)
}
// rowSelection={rowSelection}
columns=
{
columns
}
currentRef=
{
ref
}
rowKey=
{
'id'
}
formilyLayouts=
{
{
justify
:
'start'
}
}
formilyProps=
{
{
ctx
:
{
inline
:
false
,
schema
:
tableListSchema
,
effects
:
(
$
,
actions
)
=>
{
useStateFilterSearchLinkageEffect
(
$
,
actions
,
'applyNo'
,
FORM_FILTER_PATH
,
);
},
components
:
{
DateRangePicker
:
DatePicker
.
RangePicker
,
Select
,
Submit
}
},
layouts
:
{
// order: 1,
// span: 16
}
}
}
// formilyChilds={{
// children: <Space>
// <Button onClick={handleSubmitBatch}>批量提交审核</Button>
// </Space>,
// layouts: {
// span: 8
// }
// }}
/>
</
Card
>
</
PageHeaderWrapper
>
}
ExchangeOrderList
.
defaultProps
=
{}
export
default
ExchangeOrderList
\ No newline at end of file
src/pages/afterService/exchangeGoods/orderList/model/useSelfTable.tsx
0 → 100644
View file @
3b99726b
import
React
,
{
useRef
}
from
'react'
import
{
baseOrderListColumns
}
from
'../../../common/columns'
import
{
useRowSelectionTable
}
from
'@/hooks/useRowSelectionTable'
// 业务hooks
export
const
useSelfTable
=
()
=>
{
const
ref
=
useRef
<
any
>
({})
const
[
rowSelection
,
rowSelectionCtl
]
=
useRowSelectionTable
({
customKey
:
'id'
})
const
secondColumns
:
any
[]
=
baseOrderListColumns
return
{
columns
:
secondColumns
,
ref
,
rowSelection
,
rowSelectionCtl
}
}
src/pages/afterService/exchangeGoods/orderList/schema/index.ts
0 → 100644
View file @
3b99726b
import
{
ISchema
}
from
'@formily/antd'
;
import
{
FORM_FILTER_PATH
}
from
'@/formSchema/const'
;
/**
* 除了订单必填字段, 默认
*/
export
const
tableListSchema
:
ISchema
=
{
type
:
'object'
,
properties
:
{
applyNo
:
{
type
:
'string'
,
"x-component"
:
'SearchFilter'
,
'x-component-props'
:
{
placeholder
:
'请输入申请单号'
,
align
:
'flex-start'
,
},
},
[
FORM_FILTER_PATH
]:
{
type
:
'object'
,
'x-component'
:
'flex-layout'
,
'x-component-props'
:
{
inline
:
true
,
colStyle
:
{
marginRight
:
20
}
},
properties
:
{
"applyAbstract"
:
{
type
:
'string'
,
'x-component-props'
:
{
placeholder
:
'请输入申请单摘要'
,
}
},
"supplierName"
:
{
type
:
'string'
,
"x-component-props"
:
{
placeholder
:
'请输入供应会员名称'
}
},
"[startTime,endTime]"
:
{
type
:
'array'
,
"x-component"
:
'daterangepicker'
,
'x-component-props'
:
{
placeholder
:
[
'开始时间'
,
'结束时间'
],
},
},
"outerStatus"
:
{
type
:
'string'
,
"x-component"
:
'Select'
,
'x-component-props'
:
{
options
:
[],
style
:
{
width
:
'180px'
},
placeholder
:
'请选择外部状态'
},
},
"innerStatus"
:
{
type
:
'string'
,
"x-component"
:
'Select'
,
'x-component-props'
:
{
options
:
[],
style
:
{
width
:
'180px'
},
placeholder
:
'请选择内部状态'
},
},
submit
:
{
'x-component'
:
'Submit'
,
'x-component-props'
:
{
children
:
'查询'
,
},
},
},
},
}
}
\ No newline at end of file
src/pages/afterService/exchangeGoods/waitSubmitOrderList/index.tsx
0 → 100644
View file @
3b99726b
/*
* 待提交换货申请单
* @Author: ghua
* @Date: 2020-10-12 15:03:51
* @Last Modified by: ghua
* @Last Modified time: 2020-10-12 15:04:52
*/
import
React
,
{
useRef
}
from
'react'
import
{
Card
,
Select
,
message
,
Space
,
Button
}
from
'antd'
import
{
StandardTable
}
from
'god'
import
{
PageHeaderWrapper
}
from
'@ant-design/pro-layout'
import
{
PublicApi
}
from
'@/services/api'
import
{
useSelfTable
}
from
'./model/useSelfTable'
import
{
PlusOutlined
}
from
'@ant-design/icons'
import
DropDeleteDown
from
'@/components/DropDeleteDown'
import
{
tableListSchema
}
from
'./schema'
import
{
useStateFilterSearchLinkageEffect
}
from
'@/formSchema/effects/useFilterSearch'
import
{
FORM_FILTER_PATH
}
from
'@/formSchema/const'
import
Submit
from
'@/components/NiceForm/components/Submit'
import
{
DatePicker
}
from
'@formily/antd-components'
import
{
useRowSelectionTable
}
from
'@/hooks/useRowSelectionTable'
import
{
PurchaseOrderInsideWorkState
}
from
'@/constants'
import
styles
from
'../../common/styles.less'
// 一级待审核订单
export
interface
WaitSubmitOrderListProps
{
}
const
fetchTableData
=
async
(
params
)
=>
{
const
{
data
}
=
await
PublicApi
.
getAsReplaceGoodsPageToBeSubmitByConsumer
(
params
)
return
data
}
const
WaitSubmitOrderList
:
React
.
FC
<
WaitSubmitOrderListProps
>
=
(
props
)
=>
{
const
{
columns
,
ref
,
rowSelection
,
rowSelectionCtl
}
=
useSelfTable
()
const
handleSubmitBatch
=
async
()
=>
{
if
(
rowSelectionCtl
.
selectRow
.
length
===
0
)
{
message
.
error
(
'请先勾选订单'
)
return
;
}
const
canBitch
=
!
rowSelectionCtl
.
selectRow
.
some
(
v
=>
v
.
interiorState
!==
PurchaseOrderInsideWorkState
.
ONE_LEVEL_AUDIT_ORDER
)
if
(
canBitch
)
{
await
PublicApi
.
postOrderProcurementOrderReviewedAll
({
ids
:
rowSelectionCtl
.
selectedRowKeys
})
ref
.
current
.
reload
()
}
else
{
message
.
error
(
'只能批量提交内部状态为审核中的订单'
)
}
}
return
<
PageHeaderWrapper
>
<
Card
>
<
StandardTable
className=
{
styles
.
noMarBottom
}
fetchTableData=
{
params
=>
fetchTableData
(
params
)
}
// rowSelection={rowSelection}
columns=
{
columns
}
currentRef=
{
ref
}
rowKey=
{
'id'
}
formilyLayouts=
{
{
justify
:
'space-between'
}
}
formilyProps=
{
{
ctx
:
{
inline
:
false
,
schema
:
tableListSchema
,
effects
:
(
$
,
actions
)
=>
{
useStateFilterSearchLinkageEffect
(
$
,
actions
,
'applyNo'
,
FORM_FILTER_PATH
,
);
},
components
:
{
DateRangePicker
:
DatePicker
.
RangePicker
,
Select
,
Submit
}
},
layouts
:
{
order
:
1
,
span
:
16
}
}
}
formilyChilds=
{
{
children
:
<
Space
>
<
Button
onClick=
{
handleSubmitBatch
}
type=
"primary"
icon=
{
<
PlusOutlined
/>
}
style=
{
{
width
:
112
}
}
>
新建
</
Button
>
</
Space
>,
layouts
:
{
span
:
8
}
}
}
/>
</
Card
>
</
PageHeaderWrapper
>
}
WaitSubmitOrderList
.
defaultProps
=
{}
export
default
WaitSubmitOrderList
\ No newline at end of file
src/pages/afterService/exchangeGoods/waitSubmitOrderList/model/useSelfTable.tsx
0 → 100644
View file @
3b99726b
import
React
,
{
useRef
}
from
'react'
import
{
baseOrderListColumns
}
from
'../../../common/columns'
import
{
useRowSelectionTable
}
from
'@/hooks/useRowSelectionTable'
// 业务hooks
export
const
useSelfTable
=
()
=>
{
const
ref
=
useRef
<
any
>
({})
const
[
rowSelection
,
rowSelectionCtl
]
=
useRowSelectionTable
({
customKey
:
'id'
})
const
secondColumns
:
any
[]
=
baseOrderListColumns
.
concat
([
{
title
:
'操作'
,
align
:
'center'
,
dataIndex
:
'ctl'
,
key
:
'ctl'
,
render
:
(
text
,
record
)
=>
<></>
}
])
return
{
columns
:
secondColumns
,
ref
,
rowSelection
,
rowSelectionCtl
}
}
src/pages/afterService/exchangeGoods/waitSubmitOrderList/schema/index.ts
0 → 100644
View file @
3b99726b
import
{
ISchema
}
from
'@formily/antd'
;
import
{
FORM_FILTER_PATH
}
from
'@/formSchema/const'
;
/**
* 除了订单必填字段, 默认
*/
export
const
tableListSchema
:
ISchema
=
{
type
:
'object'
,
properties
:
{
applyNo
:
{
type
:
'string'
,
"x-component"
:
'SearchFilter'
,
'x-component-props'
:
{
placeholder
:
'请输入申请单号'
,
align
:
'flex-end'
,
},
},
[
FORM_FILTER_PATH
]:
{
type
:
'object'
,
'x-component'
:
'flex-layout'
,
'x-component-props'
:
{
inline
:
true
,
colStyle
:
{
marginLeft
:
20
}
},
properties
:
{
"applyAbstract"
:
{
type
:
'string'
,
'x-component-props'
:
{
placeholder
:
'请输入申请单摘要'
,
}
},
"supplierName"
:
{
type
:
'string'
,
"x-component-props"
:
{
placeholder
:
'请输入供应会员名称'
}
},
"[startTime,endTime]"
:
{
type
:
'array'
,
"x-component"
:
'daterangepicker'
,
'x-component-props'
:
{
placeholder
:
[
'开始时间'
,
'结束时间'
],
},
},
submit
:
{
'x-component'
:
'Submit'
,
'x-component-props'
:
{
children
:
'查询'
,
},
},
},
},
}
}
\ No newline at end of file
src/pages/handling/assign/add/index.tsx
0 → 100644
View file @
3b99726b
import
React
,
{
useState
}
from
'react'
;
import
{
PageHeaderWrapper
}
from
'@ant-design/pro-layout'
;
import
{
SaveOutlined
}
from
'@ant-design/icons'
;
import
{
Button
,
Card
,
Input
}
from
'antd'
;
import
{
history
}
from
'umi'
;
import
ReutrnEle
from
'@/components/ReturnEle'
;
import
{
createFormActions
,
FormEffectHooks
,
FormPath
}
from
'@formily/antd'
;
import
NiceForm
from
'@/components/NiceForm'
;
import
addSchema
from
'../../schema/addSchema'
;
import
{
LinkOutlined
,
PlusOutlined
}
from
'@ant-design/icons'
;
/*
* @Author: Bill
* @Date: 2020-10-12 11:36:38
* @Description: 新增生产通知单
*/
const
formActions
=
createFormActions
();
const
Add
:
React
.
FC
<
{}
>
=
()
=>
{
const
[
submitLoading
,
setSubmitLoading
]
=
useState
<
boolean
>
(
false
);
const
connectProduct
=
<
div
className=
'connectBtn'
><
LinkOutlined
style=
{
{
marginRight
:
4
}
}
/>
选择
</
div
>
const
tableAddButton
=
(
<
Button
style=
{
{
marginBottom
:
16
}
}
block
icon=
{
<
PlusOutlined
/>
}
type=
'dashed'
>
选择指定会员
</
Button
>
)
return
(
<
PageHeaderWrapper
onBack=
{
()
=>
history
.
goBack
()
}
backIcon=
{
<
ReutrnEle
description=
"返回"
/>
}
title=
"填写会员资料"
extra=
{
[
<
Button
key=
"1"
type=
"primary"
icon=
{
<
SaveOutlined
/>
}
loading=
{
submitLoading
}
onClick=
{
()
=>
formActions
.
submit
()
}
>
保存
</
Button
>,
]
}
>
<
Card
>
<
NiceForm
// onSubmit={handleSubmit}
schema=
{
addSchema
}
actions=
{
formActions
}
expressionScope=
{
{
connectProduct
,
tableAddButton
}
}
// effects={($, actions) => {
// onFormInputChange$().subscribe(() => {
// if (!unsaved) {
// setUnsaved(true);
// }
// });
// }}
/>
</
Card
>
</
PageHeaderWrapper
>
)
}
export
default
Add
src/pages/handling/assign/all/index.tsx
0 → 100644
View file @
3b99726b
import
React
,
{
useRef
}
from
'react'
;
import
{
PageHeaderWrapper
}
from
'@ant-design/pro-layout'
;
import
{
Card
,
Space
,
Button
}
from
'antd'
;
import
NiceForm
from
'@/components/NiceForm'
;
import
{
StandardTable
}
from
'god'
;
import
{
PublicApi
}
from
'@/services/api'
;
import
EyePreview
from
'@/components/EyePreview'
;
import
{
useStateFilterSearchLinkageEffect
}
from
'@/formSchema/effects/useFilterSearch'
;
import
{
createFormActions
,
FormEffectHooks
,
FormPath
}
from
'@formily/antd'
;
import
AssignAllSchema
from
'../../schema/assignAll'
;
import
{
FORM_FILTER_PATH
}
from
'@/formSchema/const'
;
import
{
PlusOutlined
}
from
'@ant-design/icons'
;
const
formActions
=
createFormActions
();
const
columns
=
[
{
title
:
'通知单号'
,
dataIndex
:
'id'
,
},
{
title
:
'通知单摘要'
,
dataIndex
:
'desc'
,
},
{
title
:
'供应会员'
,
dataIndex
:
'role'
},
{
title
:
'单据时间'
,
dataIndex
:
'create-at'
,
},
{
title
:
'外部状态'
,
dataIndex
:
'status'
,
},
{
title
:
'内部状态'
,
dataIndex
:
'status2'
}
]
const
AssignAll
:
React
.
FC
<
{}
>
=
()
=>
{
const
ref
=
useRef
<
any
>
({});
const
fetchData
=
async
(
params
:
any
)
=>
{
let
res
=
await
PublicApi
.
getMemberAbilityInfoPage
(
params
);
return
res
.
data
;
};
const
controllerBtns
=
(
<
Space
>
<
Button
type=
"primary"
>
<
PlusOutlined
/>
增加会员角色
</
Button
>
</
Space
>
);
return
(
<
PageHeaderWrapper
title=
{
"生产通知单查询"
}
>
<
Card
>
<
StandardTable
tableProps=
{
{
rowKey
:
'memberId'
,
}
}
columns=
{
columns
}
currentRef=
{
ref
}
fetchTableData=
{
(
params
:
any
)
=>
fetchData
(
params
)
}
controlRender=
{
<
NiceForm
actions=
{
formActions
}
expressionScope=
{
{
controllerBtns
,
}
}
onSubmit=
{
values
=>
ref
.
current
.
reload
(
values
)
}
effects=
{
(
$
,
actions
)
=>
{
useStateFilterSearchLinkageEffect
(
$
,
actions
,
'name'
,
FORM_FILTER_PATH
,
);
}
}
schema=
{
AssignAllSchema
}
/>
}
/>
</
Card
>
</
PageHeaderWrapper
>
)
}
export
default
AssignAll
\ No newline at end of file
src/pages/handling/assign/detail/index.tsx
0 → 100644
View file @
3b99726b
import
React
from
'react'
;
import
{
PageHeaderWrapper
}
from
'@ant-design/pro-layout'
;
import
{
history
}
from
'umi'
;
import
AvatarWrap
from
'@/components/AvatarWrap'
;
import
{
PageHeader
,
Descriptions
,
Card
,
Tabs
,
Space
,
Row
,
Col
}
from
'antd'
;
import
Circulation
from
'../../components/Circulation'
;
import
WrapTable
from
'../../components/WrapTable'
;
import
OtherRequirement
from
'../../components/OtherRequirement'
;
import
Appendix
from
'../../components/Appendix'
;
const
{
TabPane
}
=
Tabs
;
const
Detail
:
React
.
FC
<
{}
>
=
()
=>
{
return
(
<
PageHeaderWrapper
title=
{
<>
<
PageHeader
style=
{
{
padding
:
'0'
}
}
onBack=
{
()
=>
history
.
goBack
()
}
title=
{
<
AvatarWrap
info=
{
{
name
:
"通知单号:"
}
}
extra=
{
(
<
span
style=
{
{
fontSize
:
12
,
fontWeight
:
'normal'
}
}
>
{
"TPTY12"
}
</
span
>
)
}
/>
}
>
<
Descriptions
column=
{
3
}
style=
{
{
padding
:
'0 32px'
,
}
}
>
<
Descriptions
.
Item
label=
"通知单摘要"
>
{
"进口头层黄牛皮荔枝纹"
}
</
Descriptions
.
Item
>
<
Descriptions
.
Item
label=
"供应会员:"
>
{
"广州白马皮具交易中心"
}
</
Descriptions
.
Item
>
<
Descriptions
.
Item
label=
"单据时间:"
>
{
"2020-09-09 12:58:25"
}
</
Descriptions
.
Item
>
<
Descriptions
.
Item
label=
"通知单来源:"
>
{
"订单加工"
}
</
Descriptions
.
Item
>
<
Descriptions
.
Item
label=
"外部状态:"
>
{
"以完成通知单"
}
</
Descriptions
.
Item
>
<
Descriptions
.
Item
label=
"内部状态:"
>
{
"审核通过"
}
</
Descriptions
.
Item
>
</
Descriptions
>
</
PageHeader
>
</>
}
>
<
Card
bodyStyle=
{
{
padding
:
'5px 24px 15px 24px'
}
}
>
<
Circulation
/>
</
Card
>
<
div
style=
{
{
marginTop
:
'20px'
}
}
>
<
Card
>
<
h1
style=
{
{
fontSize
:
'16px'
,
marginBottom
:
'16px'
}
}
><
strong
>
通知单明细
</
strong
></
h1
>
<
WrapTable
/>
</
Card
>
</
div
>
<
div
style=
{
{
marginTop
:
'20px'
}
}
style=
{
{
marginTop
:
'20px'
}
}
>
<
Card
>
<
Tabs
>
<
TabPane
tab=
"收发货统计"
key=
"1"
>
<
WrapTable
/>
</
TabPane
>
<
TabPane
tab=
"收发货明细"
key=
"2"
>
<
WrapTable
/>
</
TabPane
>
</
Tabs
>
</
Card
>
</
div
>
<
div
style=
{
{
marginTop
:
'20px'
}
}
>
<
Row
gutter=
{
4
}
>
<
Col
span=
{
18
}
>
<
OtherRequirement
/>
</
Col
>
<
Col
span=
{
6
}
>
<
Appendix
/>
</
Col
>
</
Row
>
</
div
>
</
PageHeaderWrapper
>
)
}
export
default
Detail
\ No newline at end of file
src/pages/handling/assign/tobeAdd/index.tsx
0 → 100644
View file @
3b99726b
import
React
,
{
useRef
}
from
'react'
;
import
{
PageHeaderWrapper
}
from
'@ant-design/pro-layout'
;
import
{
Card
,
Space
,
Button
,
}
from
'antd'
;
import
NiceForm
from
'@/components/NiceForm'
;
import
{
StandardTable
}
from
'god'
;
import
{
PublicApi
}
from
'@/services/api'
;
import
EyePreview
from
'@/components/EyePreview'
;
import
{
useStateFilterSearchLinkageEffect
}
from
'@/formSchema/effects/useFilterSearch'
;
import
{
createFormActions
,
FormEffectHooks
,
FormPath
}
from
'@formily/antd'
;
import
AssignAllSchema
from
'../../schema/assignAll'
;
import
{
FORM_FILTER_PATH
}
from
'@/formSchema/const'
;
import
{
PlusOutlined
}
from
'@ant-design/icons'
;
const
formActions
=
createFormActions
();
const
columns
=
[
{
title
:
'通知单号'
,
dataIndex
:
'id'
,
},
{
title
:
'通知单摘要'
,
dataIndex
:
'desc'
,
},
{
title
:
'供应会员'
,
dataIndex
:
'role'
},
{
title
:
'单据时间'
,
dataIndex
:
'create-at'
,
},
{
title
:
'外部状态'
,
dataIndex
:
'status'
,
},
{
title
:
'内部状态'
,
dataIndex
:
'status2'
}
]
const
TobeAdd
:
React
.
FC
<
{}
>
=
()
=>
{
const
ref
=
useRef
<
any
>
({});
const
fetchData
=
async
(
params
:
any
)
=>
{
console
.
log
(
params
);
let
res
=
await
PublicApi
.
getMemberAbilityInfoPage
(
params
);
return
res
.
data
;
};
const
controllerBtns
=
(
<
Space
>
<
Button
type=
"primary"
>
<
PlusOutlined
/>
增加会员角色
</
Button
>
</
Space
>
);
return
(
<
PageHeaderWrapper
title=
{
"生产通知单查询"
}
>
<
Card
>
<
StandardTable
tableProps=
{
{
rowKey
:
'memberId'
,
}
}
columns=
{
columns
}
currentRef=
{
ref
}
fetchTableData=
{
(
params
:
any
)
=>
fetchData
(
params
)
}
controlRender=
{
<
NiceForm
actions=
{
formActions
}
expressionScope=
{
{
controllerBtns
,
}
}
onSubmit=
{
values
=>
ref
.
current
.
reload
(
values
)
}
effects=
{
(
$
,
actions
)
=>
{
useStateFilterSearchLinkageEffect
(
$
,
actions
,
'name'
,
FORM_FILTER_PATH
,
);
}
}
schema=
{
AssignAllSchema
}
/>
}
/>
</
Card
>
</
PageHeaderWrapper
>
)
}
export
default
TobeAdd
\ No newline at end of file
src/pages/handling/components/Appendix/index.tsx
0 → 100644
View file @
3b99726b
/*
* @Author: your name
* @Date: 2020-10-12 18:27:56
* @LastEditTime: 2020-10-12 18:42:00
* @Description: 附件
*/
import
React
from
'react'
;
import
{
Card
}
from
'antd'
;
const
styles
=
{
display
:
'flex'
,
flexDirection
:
'row'
,
// justifyContent: 'center',
alignItem
:
'center'
,
color
:
'#00B37A'
,
backgroundColor
:
'#F4F5F7'
,
padding
:
'10px 15px'
,
cursor
:
'pointer'
,
}
const
AppendixItem
=
()
=>
{
return
(
<
div
style=
{
styles
}
>
工程技术资料.pdf
</
div
>
)
}
const
Appendix
=
()
=>
{
return
(
<
div
>
<
Card
title=
{
"附件"
}
>
<
AppendixItem
/>
</
Card
>
</
div
>
)
}
export
default
Appendix
;
\ No newline at end of file
src/pages/handling/components/Circulation/index.tsx
0 → 100644
View file @
3b99726b
import
React
from
'react'
;
import
{
Tabs
,
Steps
,
Popover
}
from
'antd'
;
const
TabPane
=
Tabs
.
TabPane
;
const
{
Step
}
=
Steps
;
const
customDot
=
(
dot
,
{
status
,
index
})
=>
(
<
span
>
{
dot
}
</
span
>
);
const
Circulation
:
React
.
FC
<
{}
>
=
()
=>
{
return
(
<
Tabs
defaultActiveKey=
"1"
>
<
TabPane
tab=
"外部流转"
key=
"1"
>
<
Steps
current=
{
1
}
progressDot=
{
customDot
}
style=
{
{
marginTop
:
'20px'
}
}
>
<
Step
title=
"Finished"
description=
"You can hover on the dot."
/>
<
Step
title=
"In Progress"
description=
"You can hover on the dot."
/>
<
Step
title=
"Waiting"
description=
"You can hover on the dot."
/>
<
Step
title=
"Waiting"
description=
"You can hover on the dot."
/>
</
Steps
>
</
TabPane
>
<
TabPane
tab=
"内部流转"
key=
"2"
>
<
Steps
current=
{
1
}
progressDot=
{
customDot
}
style=
{
{
marginTop
:
'20px'
}
}
>
<
Step
title=
"Finished"
description=
"You can hover on the dot."
/>
<
Step
title=
"In Progress"
description=
"You can hover on the dot."
/>
<
Step
title=
"Waiting"
description=
"You can hover on the dot."
/>
<
Step
title=
"Waiting"
description=
"You can hover on the dot."
/>
</
Steps
>
</
TabPane
>
</
Tabs
>
)
}
export
default
Circulation
\ No newline at end of file
src/pages/handling/components/OtherRequirement/index.tsx
0 → 100644
View file @
3b99726b
import
React
from
'react'
;
import
{
Card
,
Row
,
Col
}
from
'antd'
;
const
OtherRequirement
=
()
=>
{
return
(
<
Card
title=
"其他要求"
>
<
Row
>
<
Col
span=
{
4
}
>
交付说明
</
Col
>
<
Col
span=
{
8
}
>
东莞市石龙镇西葫芦53号交付说明
</
Col
>
<
Col
span=
{
4
}
>
物流说明
</
Col
>
<
Col
span=
{
8
}
>
东莞市石龙镇西葫芦53号交付说明
</
Col
>
</
Row
>
<
Row
style=
{
{
margin
:
'20px 0'
}
}
>
<
Col
span=
{
4
}
>
付款说明
</
Col
>
<
Col
span=
{
8
}
>
首付 30%, 收货后70%
</
Col
>
<
Col
span=
{
4
}
>
包装说明
</
Col
>
<
Col
span=
{
8
}
>
纸箱
</
Col
>
</
Row
>
<
Row
>
<
Col
span=
{
4
}
>
税收说明
</
Col
>
<
Col
span=
{
8
}
>
含税
</
Col
>
<
Col
span=
{
4
}
>
其他说明
</
Col
>
<
Col
span=
{
8
}
>
无
</
Col
>
</
Row
>
</
Card
>
)
}
export
default
OtherRequirement
;
\ No newline at end of file
src/pages/handling/components/WrapTable/index.tsx
0 → 100644
View file @
3b99726b
import
React
from
'react'
import
{
Table
}
from
'antd'
const
WrapTable
=
()
=>
{
const
columns
=
[
{
title
:
'订单号'
,
dataIndex
:
'no'
,
},
{
title
:
'ID'
,
dataIndex
:
'id'
,
},
{
title
:
'商品名称'
,
dataIndex
:
'name'
,
},
{
title
:
'品类'
,
dataIndex
:
'category'
,
},
{
title
:
'品牌'
,
dataIndex
:
'type'
,
},
{
title
:
'单位'
,
dataIndex
:
'unit'
,
},
{
title
:
'加工数量'
,
dataIndex
:
'number'
,
},
{
title
:
'加工单价'
,
dataIndex
:
'price'
,
},
{
title
:
'加工费'
,
dataIndex
:
'total'
,
},
{
title
:
'交期'
,
dataIndex
:
'time'
,
},
{
title
:
'操作'
,
dataIndex
:
'action'
,
},
];
return
(
<
Table
columns=
{
columns
}
dataSource=
{
[]
}
/>
)
}
export
default
WrapTable
\ No newline at end of file
src/pages/handling/schema/addSchema.tsx
0 → 100644
View file @
3b99726b
/*
* @Author: your name
* @Date: 2020-10-12 13:37:06
* @LastEditTime: 2020-10-12 16:04:41
* @Description: 新建生产通知单 schema
*/
/**
* 通知单明细
*/
const
detailTab
=
{
'tab-2'
:
{
type
:
'object'
,
'x-component'
:
'tabpane'
,
'x-component-props'
:
{
tab
:
'通知单明细'
},
properties
:
{
layout
:
{
type
:
'object'
,
'x-component'
:
'mega-layout'
,
'x-component-props'
:
{
labelCol
:
4
,
wrapperCol
:
8
,
labelAlign
:
'left'
},
properties
:
{
selectedSource
:
{
type
:
'radio'
,
title
:
'选择来源'
,
required
:
true
,
enum
:
[
{
label
:
'加工订单'
,
value
:
1
},
{
label
:
'加工商品'
,
value
:
2
}
],
default
:
1
,
},
someLists
:
{
type
:
'array:number'
,
'x-mega-props'
:
{
wrapperCol
:
24
,
},
'x-component'
:
'MultTable'
,
'x-component-props'
:
{
rowKey
:
'id'
,
prefix
:
"{{tableAddButton}}"
// columns: "{{tableColumns}}",
}
}
}
}
}
}
}
/**
* 其他要求
*/
const
otherRequired
=
{
'tab-3'
:
{
type
:
'object'
,
'x-component'
:
'tabpane'
,
'x-component-props'
:
{
tab
:
'通知单明细'
},
properties
:
{
layout
:
{
type
:
'object'
,
'x-component'
:
'mega-layout'
,
'x-component-props'
:
{
labelCol
:
4
,
wrapperCol
:
8
,
labelAlign
:
'left'
},
properties
:
{
deliveryDesc
:
{
type
:
'string'
,
title
:
'交付说明'
,
'x-component'
:
'textarea'
,
'x-component-props'
:
{
placeholder
:
'最长100个字符,50个汉字'
,
rows
:
5
}
},
payDesc
:
{
type
:
'string'
,
title
:
'付款说明'
,
'x-component'
:
'textarea'
,
'x-component-props'
:
{
placeholder
:
'最长100个字符,50个汉字'
,
rows
:
5
}
},
taxDesc
:
{
type
:
'string'
,
title
:
'税费说明'
,
'x-component'
:
'textarea'
,
'x-component-props'
:
{
placeholder
:
'最长100个字符,50个汉字'
,
rows
:
5
}
},
materialDesc
:
{
type
:
'string'
,
title
:
'物资说明'
,
'x-component'
:
'textarea'
,
'x-component-props'
:
{
placeholder
:
'最长100个字符,50个汉字'
,
rows
:
5
}
},
packingDesc
:
{
type
:
'string'
,
title
:
'包装说明'
,
'x-component'
:
'textarea'
,
'x-component-props'
:
{
placeholder
:
'最长100个字符,50个汉字'
,
rows
:
5
}
},
otherDesc
:
{
type
:
'string'
,
title
:
'其他说明'
,
'x-component'
:
'textarea'
,
'x-component-props'
:
{
placeholder
:
'最长100个字符,50个汉字'
,
rows
:
5
}
}
}
}
}
}
}
/**
* 附件
*/
const
enclosure
=
{
'tab-4'
:
{
type
:
'object'
,
'x-component'
:
'tabpane'
,
'x-component-props'
:
{
tab
:
'附件'
},
properties
:
{
layout
:
{
type
:
'object'
,
'x-component'
:
'mega-layout'
,
'x-component-props'
:
{
labelCol
:
4
,
wrapperCol
:
8
,
labelAlign
:
'left'
},
properties
:
{
enclosure
:
{
type
:
'string'
,
title
:
'附件'
,
}
}
}
}
}
}
/**
* 流转记录
*/
const
historyRecord
=
{
'tab-5'
:
{
type
:
'object'
,
'x-component'
:
'tabpane'
,
'x-component-props'
:
{
tab
:
'流转记录'
},
}
}
const
addSchema
=
{
type
:
'object'
,
properties
:
{
'Tabs'
:
{
type
:
'object'
,
'x-component'
:
'tab'
,
'x-component-props'
:
{
type
:
'card'
},
properties
:
{
'tab-1'
:
{
type
:
'object'
,
'x-component'
:
'tabpane'
,
'x-component-props'
:
{
'tab'
:
'基本信息'
},
properties
:
{
layout
:
{
type
:
'object'
,
'x-component'
:
'mega-layout'
,
'x-component-props'
:
{
labelCol
:
4
,
wrapperCol
:
8
,
labelAlign
:
'left'
},
properties
:
{
desc
:
{
title
:
'通知单摘要'
,
type
:
'string'
,
'x-rules'
:
[
{
limitByte
:
true
,
// 自定义校验规则
maxByte
:
60
}
],
'x-component-props'
:
{
placeholder
:
'最长60个字符,30个汉字'
}
},
handleBusiness
:
{
type
:
'string'
,
title
:
'加工企业'
,
"x-mega-props"
:
{
full
:
true
},
"x-component-props"
:
{
disabled
:
true
,
addonAfter
:
"{{connectProduct}}"
},
"x-rules"
:
[
{
required
:
true
,
message
:
'请选择商品'
}
],
},
source
:
{
type
:
'radio'
,
title
:
'通知单来源'
,
required
:
true
,
enum
:
[
{
label
:
'订单加工'
,
value
:
1
},
{
label
:
'商品加工'
,
value
:
2
}
],
default
:
1
},
no
:
{
type
:
'string'
,
title
:
'通知单号'
,
'x-component'
:
'Text'
,
},
time
:
{
type
:
'string'
,
title
:
'单据时间'
,
'x-component'
:
'Text'
,
},
status
:
{
type
:
'string'
,
title
:
'外部状态'
,
'x-component'
:
'Text'
,
},
status2
:
{
type
:
'string'
,
title
:
'内部状态'
,
'x-component'
:
'Text'
,
}
}
}
}
},
...
detailTab
,
...
otherRequired
,
...
enclosure
,
...
historyRecord
}
}
}
}
export
default
addSchema
src/pages/handling/schema/assignAll.tsx
0 → 100644
View file @
3b99726b
import
{
ISchema
}
from
'@formily/antd'
;
import
{
FORM_FILTER_PATH
}
from
'@/formSchema/const'
;
/*
* @Author: Bill
* @Date: 2020-10-12 10:46:36
* @LastEditTime: 2020-10-12 11:10:28
* @Description: 指派生产通知单查询页 schema
*/
const
schema
:
ISchema
=
{
type
:
'object'
,
properties
:
{
megaLayout
:
{
type
:
'object'
,
'x-component'
:
'mega-layout'
,
properties
:
{
topLayout
:
{
type
:
'object'
,
'x-component'
:
'Mega-Layout'
,
'x-component-props'
:
{
grid
:
true
,
},
properties
:
{
ctl
:
{
type
:
'object'
,
'x-component'
:
'Children'
,
'x-component-props'
:
{
children
:
'{{controllerBtns}}'
,
},
},
name
:
{
type
:
'string'
,
'x-component'
:
'Search'
,
'x-component-props'
:
{
placeholder
:
'搜索'
,
},
},
},
},
[
FORM_FILTER_PATH
]:
{
type
:
'object'
,
'x-component'
:
'flex-layout'
,
'x-component-props'
:
{
colStyle
:
{
marginLeft
:
20
,
},
},
properties
:
{
outerStatus
:
{
type
:
'string'
,
default
:
undefined
,
enum
:
[],
'x-component-props'
:
{
placeholder
:
'审核状态(全部)'
,
allowClear
:
true
,
},
},
'[startDate, endDate]'
:
{
type
:
'string'
,
default
:
''
,
'x-component'
:
'dateSelect'
,
'x-component-props'
:
{
placeholder
:
'时间范围(全部)'
,
allowClear
:
true
,
},
},
submit
:
{
'x-component'
:
'Submit'
,
'x-mega-props'
:
{
span
:
1
,
},
'x-component-props'
:
{
children
:
'查询'
,
},
},
},
},
},
},
},
};
export
default
schema
\ No newline at end of file
src/pages/logistics/list/components/addressForm.tsx
View file @
3b99726b
...
...
@@ -2,7 +2,7 @@
* @Author: LeeJiancong
* @Date: 2020-07-15 10:31:55
* @LastEditors: LeeJiancong
* @LastEditTime: 2020-10-09 1
1:00:43
* @LastEditTime: 2020-10-09 1
4:41:19
*/
import
React
,
{
Component
,
useState
,
useEffect
}
from
'react'
;
import
ReactDOM
from
'react-dom'
...
...
@@ -335,10 +335,13 @@ const diaLogForm: React.FC<ListProps> = (props) => {
x
-
component
-
props=
{
{
placeholder
:
'请输入发货人'
}
}
x
-
rules=
{
{
x
-
rules=
{
[
{
max
:
20
,
message
:
'输入发货人字数不能大于20'
}
}
},{
required
:
true
,
message
:
'请输入发货人'
}]
}
/>
:
<
Field
...
...
@@ -349,10 +352,13 @@ const diaLogForm: React.FC<ListProps> = (props) => {
x
-
component
-
props=
{
{
placeholder
:
'请输入收货人'
}
}
x
-
rules=
{
{
x
-
rules=
{
[
{
max
:
20
,
message
:
'输入收货人字数不能大于20'
}
}
},{
required
:
true
,
message
:
'请输入收货人'
}]
}
/>
}
...
...
@@ -366,6 +372,10 @@ const diaLogForm: React.FC<ListProps> = (props) => {
x
-
component
-
props=
{
{
placeholder
:
'-省份/直辖市-'
}
}
x
-
rules=
{
[{
required
:
true
,
message
:
'请选择省份/直辖市'
}]
}
/>
<
Field
x
-
mega
-
props=
{
{
span
:
1
}
}
...
...
@@ -376,16 +386,25 @@ const diaLogForm: React.FC<ListProps> = (props) => {
x
-
component
-
props=
{
{
placeholder
:
'-市-'
}
}
x
-
rules=
{
[{
required
:
true
,
message
:
'请选择城市'
}]
}
/>
<
Field
x
-
mega
-
props=
{
{
span
:
1
}
}
x
-
component=
"Select"
enum=
{
selectList
}
required
name=
"districtCode"
x
-
component
-
props=
{
{
placeholder
:
'-区-'
}
}
x
-
rules=
{
[{
required
:
true
,
message
:
'请选择县市'
}]
}
/>
</
FormMegaLayout
>
<
Field
...
...
@@ -397,10 +416,13 @@ const diaLogForm: React.FC<ListProps> = (props) => {
placeholder
:
'请输入详细地址'
,
autocomplete
:
'off'
}
}
x
-
rules=
{
{
x
-
rules=
{
[
{
max
:
30
,
message
:
'输入详细地址字数不能大于30'
}
}
},{
required
:
true
,
message
:
'请输入详细地址'
}]
}
/>
<
Field
title=
"邮编"
...
...
@@ -421,18 +443,25 @@ const diaLogForm: React.FC<ListProps> = (props) => {
x
-
component
-
props=
{
{
placeholder
:
'+86'
}
}
x
-
rules=
{
[{
required
:
true
,
message
:
'请选择区号'
}]
}
/>
<
Field
x
-
mega
-
props=
{
{
span
:
5
}
}
name=
"phone"
required
x
-
component=
"Input"
x
-
rules=
{
{
x
-
rules=
{
[
{
pattern
:
PATTERN_MAPS
.
phone
,
message
:
'请输入正确手机号'
,
// maximum=
{
11
}
数值的意思
}
}
},{
required
:
true
,
message
:
'请输入手机号'
}]
}
x
-
component
-
props=
{
{
placeholder
:
'输入你的手机号码'
,
...
...
src/pages/lxMall/commodityDetail/index.tsx
View file @
3b99726b
...
...
@@ -86,6 +86,7 @@ const CommodityDetail = (props) => {
commodityId
:
id
}
let
headers
=
{}
switch
(
layoutType
)
{
case
LAYOUT_TYPE
.
channel
:
headers
=
{
...
...
src/pages/lxMall/information/index.tsx
View file @
3b99726b
...
...
@@ -149,6 +149,8 @@ const Information: React.FC<InformationPropsType> = (props) => {
<
div
className=
{
styles
.
information
}
>
<
div
className=
{
styles
.
information_container
}
>
<
BreadCrumbs
{
...
props
}
/>
{
(
carouselNews
.
length
>
0
||
photoNews
.
length
>
0
)
&&
(
<
div
className=
{
styles
.
information_focus
}
>
<
div
className=
{
styles
.
information_focus_left
}
>
<
Carousel
...
...
@@ -184,6 +186,9 @@ const Information: React.FC<InformationPropsType> = (props) => {
}
</
div
>
</
div
>
)
}
<
div
className=
{
styles
.
information_wrap
}
>
<
div
className=
{
styles
.
information_left
}
>
<
div
className=
{
styles
.
information_tabs
}
>
...
...
src/pages/lxMall/pay/components/transfer/index.tsx
View file @
3b99726b
...
...
@@ -67,7 +67,7 @@ const TransferPayWay: React.FC<TransferPayWayPropsType> = (props) => {
let
param
=
{
id
:
orderId
,
paymentInformationId
:
payInfo
.
paymentInformationId
,
payOrderUrls
:
[
payOrderUrl
]
payOrderUrls
:
JSON
.
stringify
([
payOrderUrl
])
}
setConfirmLoading
(
true
)
//@ts-ignore
...
...
src/pages/lxMall/pointsMall/list.tsx
View file @
3b99726b
...
...
@@ -14,15 +14,17 @@ interface CommodityListPropsType {
const
CommodityList
:
React
.
FC
<
CommodityListPropsType
>
=
(
props
)
=>
{
const
{
showType
,
commodityList
=
[],
layoutType
=
LAYOUT_TYPE
.
mall
}
=
props
const
getCommodityDetailUrl
=
()
=>
{
const
getCommodityDetailUrl
=
(
item
)
=>
{
switch
(
layoutType
)
{
case
LAYOUT_TYPE
.
channel
:
return
"/channelmall"
return
`/channelmall/commodity/detail?id=
${
item
.
id
}
&type=
${
item
.
priceType
}
&channelId=
${
btoa
(
JSON
.
stringify
({
shopId
:
item
.
storeId
,
memberId
:
item
.
memberId
}))}
`
case
LAYOUT_TYPE
.
ichannel
:
return
`/ichannelmall/commodity/detail?id=
${
item
.
id
}
&type=
${
item
.
priceType
}
&channelId=
${
btoa
(
JSON
.
stringify
({
shopId
:
item
.
storeId
,
memberId
:
item
.
memberId
}))}
`
case
LAYOUT_TYPE
.
mall
:
case
LAYOUT_TYPE
.
shop
:
return
"/shop"
return
`/shop/commodity/detail?id=
${
item
.
id
}
&type=
${
item
.
priceType
}
&shopId=
${
btoa
(
JSON
.
stringify
({
shopId
:
item
.
storeId
,
memberId
:
item
.
memberId
}))}
`
default
:
return
""
return
`/commodity/detail?id=
${
item
.
id
}
&type=
${
item
.
priceType
}
&shopId=
${
btoa
(
JSON
.
stringify
({
shopId
:
item
.
storeId
,
memberId
:
item
.
memberId
}))}
`
}
}
...
...
@@ -31,7 +33,7 @@ const CommodityList: React.FC<CommodityListPropsType> = (props) => {
{
commodityList
.
map
((
item
,
index
)
=>
(
<
div
key=
{
item
.
id
}
className=
{
cx
(
styles
.
point_commodity_list_item
,
styles
.
row
)
}
>
<
a
href=
{
`${getCommodityDetailUrl()}/commodity/detail?id=${item.id}&type=${item.priceType}&shopId=${btoa(JSON.stringify({ shopId: item.storeId, memberId: item.memberId }))}`
}
target=
"_blank"
>
<
a
href=
{
getCommodityDetailUrl
(
item
)
}
target=
"_blank"
>
<
div
className=
{
styles
.
goods_img
}
>
{
item
.
mainPic
?
<
img
src=
{
item
.
mainPic
}
/>
:
<
Skeleton
.
Image
style=
{
{
width
:
220
,
height
:
220
}
}
/>
...
...
src/pages/transaction/common/statusList.ts
View file @
3b99726b
...
...
@@ -91,4 +91,48 @@ export const filterInteriorStateList = [
]
/**
* @description: 商品询价外部状态筛选
* @param {type}
* @return {type} 内
*/
export
const
filterExternalState
=
[
{
text
:
'提交询价单'
,
value
:
1
},
{
text
:
'提交报价单'
,
value
:
2
},
{
text
:
'确认报价单'
,
value
:
3
},
{
text
:
'报价通过'
,
value
:
4
},
{
text
:
'报价不通过'
,
value
:
5
}
]
/**
* @description: 商品询价内部状态筛选
* @param {type}
* @return {type} 内
*/
export
const
filterInternalState
=
[
{
text
:
'待提交审核'
,
value
:
1
},
{
text
:
'待审核'
,
value
:
2
},
{
text
:
'审核通过'
,
value
:
3
},
{
text
:
'审核不通过'
,
value
:
4
}
]
src/pages/transaction/common/tableStatusList.tsx
View file @
3b99726b
...
...
@@ -126,3 +126,18 @@ export const enquiryOfferConfirmSearchInteriorState = (text:any) => {
component
=
<
Badge
status=
'processing'
text=
"提交报价单"
/>
return
component
;
}
/****** *********************** 待新增询价单 ************************** */
/**
* @description: 内部状态查询
* @param {type}
* @return {type} 外
*/
export
const
quoteOrderInternalState
=
(
text
:
any
)
=>
{
let
component
:
ReactNode
=
null
;
text
===
1
?
component
=
<
Badge
status=
'default'
text=
"待提交审核"
/>:
text
===
2
?
component
=
<
Badge
status=
'default'
text=
"待审核"
/>:
text
===
3
?
component
=
<
Badge
status=
'default'
text=
"审核通过"
/>:
component
=
<
Badge
status=
'processing'
text=
"审核不通过"
/>
return
component
;
}
\ No newline at end of file
src/pages/transaction/enquiryOffer/components/confirmModal.tsx
View file @
3b99726b
...
...
@@ -56,7 +56,6 @@ const comfirmDialog: React.FC<Params> = (props) => {
}
})
})
}
return
(
<>
...
...
src/pages/transaction/goodsOffer/addEnquiryOrder/add.tsx
View file @
3b99726b
import
React
,
{
useState
,
useRef
}
from
'react'
;
import
React
,
{
useState
,
useRef
,
useEffect
}
from
'react'
;
import
{
history
}
from
'umi'
;
import
{
Button
,
Card
,
Tabs
}
from
'antd'
;
import
{
Button
,
Card
,
Tabs
,
message
}
from
'antd'
;
import
{
PageHeaderWrapper
}
from
'@ant-design/pro-layout'
;
import
ReutrnEle
from
'@/components/ReturnEle'
;
import
BasicInfo
from
'./components/basicInfo'
;
// 基本信息
...
...
@@ -12,15 +12,50 @@ import { PublicApi } from '@/services/api'
const
{
TabPane
}
=
Tabs
;
const
AddQuotes
:
React
.
FC
<
{}
>
=
()
=>
{
const
{
id
}
=
history
.
location
.
query
;
const
[
memberList
,
setmemberList
]
=
useState
([]);
//存放用户信息
const
[
goodsList
,
setgoodsList
]
=
useState
([]);
//存放商品
const
basicInfoRef
=
useRef
<
any
>
({});
const
tradingConditionsRef
=
useRef
<
any
>
({});
const
[
editData
,
setEditData
]
=
useState
<
any
>
({});
useEffect
(()
=>
{
if
(
id
)
{
PublicApi
.
getOrderInquiryListDetails
({
id
}).
then
(
res
=>
{
if
(
res
.
code
===
1000
)
{
setEditData
(
res
.
data
)
}
})
}
},[])
/************* 页面的一些操作start *************/
const
onSumbit
=
async
(
params
:
any
)
=>
{
const
basicInfo
=
await
basicInfoRef
.
current
.
validateFields
();
const
tradingConditions
=
await
tradingConditionsRef
.
current
.
validateFields
();
console
.
log
(
tradingConditions
,
basicInfo
,
goodsList
,
memberList
)
const
basicInfoData
=
basicInfo
.
data
;
const
tradingConditionsData
=
tradingConditions
.
data
;
if
(
basicInfo
.
state
&&
tradingConditions
.
state
)
{
const
parmas
=
{
inquiryListProductRequests
:
goodsList
,
// 商品列表 ,InquiryListProductRequest
...
basicInfoData
,
...
tradingConditionsData
,
memberName
:
memberList
[
0
].
name
,
memberId
:
memberList
[
0
].
memberId
}
if
(
id
)
{
console
.
log
(
parmas
)
}
else
{
await
PublicApi
.
postOrderInquiryListAdd
(
parmas
).
then
(
res
=>
{
if
(
res
.
code
===
1000
)
{
console
.
log
(
res
.
data
)
}
})
}
}
else
{
message
.
error
(
'有必填字段没选择,请检查!'
);
}
}
// 获取到会员信息
const
getMemberList
=
(
list
:
any
)
=>
{
...
...
@@ -30,6 +65,7 @@ const AddQuotes: React.FC<{}> = () => {
const
getGoodsList
=
(
list
:
any
)
=>
{
setgoodsList
(
list
)
}
/************* 页面的一些操作end *************/
return
(
<
PageHeaderWrapper
...
...
@@ -46,17 +82,20 @@ const AddQuotes: React.FC<{}> = () => {
<
BasicInfo
currentRef=
{
basicInfoRef
}
getMemberList=
{
getMemberList
}
editData=
{
editData
}
/>
</
TabPane
>
<
TabPane
tab=
"询价商品"
key=
"2"
>
<
EnquiryGoods
memberList=
{
memberList
}
getGoodsList=
{
getGoodsList
}
editData=
{
editData
}
/>
</
TabPane
>
<
TabPane
tab=
"交易条件"
key=
"3"
>
<
TradingConditions
currentRef=
{
tradingConditionsRef
}
editData=
{
editData
}
/>
</
TabPane
>
<
TabPane
tab=
"附件"
key=
"4"
>
...
...
src/pages/transaction/goodsOffer/addEnquiryOrder/components/attached.tsx
View file @
3b99726b
import
React
from
'react'
;
import
{
Form
,
Button
,
Upload
}
from
'antd'
;
import
React
,
{
useState
,
useEffect
}
from
'react'
;
import
{
Form
,
Button
,
Upload
,
message
}
from
'antd'
;
import
{
UPLOAD_TYPE
}
from
'@/constants'
import
{
UploadFile
,
UploadChangeParam
}
from
'antd/lib/upload/interface'
;
import
styles
from
'./index.less'
;
import
{
UploadOutlined
,
DeleteOutlined
,
FileWordFill
ed
}
from
'@ant-design/icons'
;
import
{
UploadOutlined
,
DeleteOutlined
,
LinkOutlin
ed
}
from
'@ant-design/icons'
;
const
layout
:
any
=
{
colon
:
false
,
...
...
@@ -11,6 +12,23 @@ const layout: any = {
labelAlign
:
"left"
};
const
Attached
:
React
.
FC
<
{}
>
=
()
=>
{
const
[
files
,
setFiles
]
=
useState
([]);
/**判断文件类型和大小 */
const
beforeDocUpload
=
(
file
:
UploadFile
)
=>
{
const
isLt20M
=
file
.
size
/
1024
/
1024
<
20
;
if
(
!
isLt20M
)
{
message
.
error
(
'上传文件大小不超过 20M!'
);
}
return
isLt20M
;
}
// 上传回调
const
handleChange
=
({
fileList
})
=>
{
const
arr
:
any
=
[];
fileList
.
forEach
(
v
=>
{
if
(
v
)
console
.
log
(
v
)
})
}
return
(
<
Form
{
...
layout
}
...
...
@@ -18,24 +36,28 @@ const Attached: React.FC<{}> = () => {
>
<
Form
.
Item
label=
'附件'
>
<
div
className=
{
styles
.
upload_data
}
>
{
files
.
length
>
0
&&
files
.
map
(
v
=>
(
<
div
className=
{
styles
.
upload_item
}
>
<
div
className=
{
styles
.
upload_left
}
>
<
FileWordFill
ed
/>
<
LinkOutlin
ed
/>
<
span
>
验货详情.doc
</
span
>
</
div
>
<
div
className=
{
styles
.
upload_right
}
>
<
DeleteOutlined
/>
</
div
>
</
div
>
))
}
</
div
>
<
Upload
action=
"/api/file/file/upload"
data=
{
{
fileType
:
UPLOAD_TYPE
}
}
showUploadList=
{
false
}
accept=
'.doc,.docx'
accept=
'.doc,.docx,.pdf,.ppt,.pptx,.xls,.xlsx'
beforeUpload=
{
beforeDocUpload
}
onChange=
{
handleChange
}
>
<
Button
icon=
{
<
UploadOutlined
/>
}
>
上传文件
</
Button
>
<
div
style=
{
{
marginTop
:
'8px'
}
}
>
支持扩展名:.doc,文件大小不
超过 20M
</
div
>
<
div
style=
{
{
marginTop
:
'8px'
}
}
>
一次上传一个文件,每个附件大小不能
超过 20M
</
div
>
</
Upload
>
</
Form
.
Item
>
</
Form
>
...
...
src/pages/transaction/goodsOffer/addEnquiryOrder/components/basicInfo.tsx
View file @
3b99726b
...
...
@@ -6,6 +6,8 @@ import { useRowSelectionTable } from '@/hooks/useRowSelectionTable';
import
{
ISchema
}
from
'@formily/antd'
;
import
ModalTable
from
'@/components/ModalTable'
import
{
PublicApi
}
from
'@/services/api'
import
StatusColors
from
'@/pages/transaction/components/StatusColors'
import
{
quoteOrderInternalState
}
from
'../../../common/tableStatusList'
;
const
layout
:
any
=
{
colon
:
false
,
...
...
@@ -16,12 +18,14 @@ const layout: any = {
const
{
Search
}
=
Input
;
interface
queryProps
{
currentRef
?:
any
,
getMemberList
?:
Function
getMemberList
?:
Function
,
editData
:
any
}
const
BasicInfo
:
React
.
FC
<
queryProps
>
=
(
props
)
=>
{
const
[
basicform
]
=
Form
.
useForm
();
const
{
getMemberList
,
currentRef
}
=
props
;
const
{
getMemberList
,
currentRef
,
editData
}
=
props
;
console
.
log
(
editData
,
10086
)
// 会员添加弹窗控制
const
[
visibleChannelMember
,
setVisibleChannelMember
]
=
useState
(
false
);
const
[
memberList
,
setmemberList
]
=
useState
([]);
...
...
@@ -143,6 +147,14 @@ const BasicInfo: React.FC<queryProps> = (props) => {
}
},[])
useEffect
(()
=>
{
if
(
Object
.
keys
(
editData
).
length
>
0
)
{
basicform
.
setFieldsValue
({
details
:
editData
.
details
})
}
},
[
editData
])
/************* 页面的一些操作end *************/
return
(
<>
...
...
@@ -159,16 +171,16 @@ const BasicInfo: React.FC<queryProps> = (props) => {
<
Button
type=
'link'
>
查看会员详情
</
Button
>
</
Form
.
Item
>
<
Form
.
Item
label=
'询价单号'
name=
'orderNumber'
>
<
span
>
-
</
span
>
<
span
>
{
Object
.
keys
(
editData
).
length
>
0
?
editData
.
inquiryListNo
:
'-'
}
</
span
>
</
Form
.
Item
>
<
Form
.
Item
label=
'单据时间'
name=
'time'
>
<
span
>
-
</
span
>
<
span
>
{
Object
.
keys
(
editData
).
length
>
0
?
editData
.
voucherTime
:
'-'
}
</
span
>
</
Form
.
Item
>
<
Form
.
Item
label=
'外部状态'
name=
'external'
>
<
span
>
-
</
span
>
<
span
>
{
Object
.
keys
(
editData
).
length
>
0
?
<
StatusColors
status=
{
editData
.
inquiryListNo
}
type=
'out'
/>
:
'-'
}
</
span
>
</
Form
.
Item
>
<
Form
.
Item
label=
'内部状态'
name=
'internal'
>
<
span
>
-
</
span
>
<
span
>
{
Object
.
keys
(
editData
).
length
>
0
?
quoteOrderInternalState
(
editData
.
inquiryListNo
)
:
'-'
}
</
span
>
</
Form
.
Item
>
</
Form
>
{
/* 选择会员弹框 */
}
...
...
src/pages/transaction/goodsOffer/addEnquiryOrder/components/enquiryGoods.tsx
View file @
3b99726b
...
...
@@ -16,11 +16,12 @@ import Submit from '@/components/NiceForm/components/Submit'
interface
queryProps
extends
ModalTableProps
{
memberList
?:
any
,
schemaAction
?:
ISchemaFormActions
|
ISchemaFormAsyncActions
,
getGoodsList
:
Function
getGoodsList
:
Function
,
editData
:
any
}
const
EnquiryGoods
:
React
.
FC
<
queryProps
>
=
(
props
)
=>
{
const
{
memberList
,
schemaAction
,
getGoodsList
,
...
restProps
}
=
props
const
{
memberList
,
schemaAction
,
getGoodsList
,
editData
,
...
restProps
}
=
props
const
[
value
,
setValue
]
=
useState
<
any
>
(
''
)
const
productFormActions
=
createAsyncFormActions
()
const
onChange
=
(
value
)
=>
{
...
...
@@ -243,6 +244,13 @@ const EnquiryGoods: React.FC<queryProps> = (props) => {
setgoodsList
(
newData
)
}
// 编辑时回显的数据
useEffect
(()
=>
{
if
(
Object
.
keys
(
editData
).
length
>
0
)
{
setgoodsList
(
editData
.
inquiryListProductRequests
);
}
},
[])
return
(
<
div
className=
{
styles
.
revise_style
}
>
<
Button
block
type=
'dashed'
onClick=
{
addGoods
}
><
PlusOutlined
/>
添加商品
</
Button
>
...
...
src/pages/transaction/goodsOffer/addEnquiryOrder/components/tradingConditions.tsx
View file @
3b99726b
...
...
@@ -5,7 +5,8 @@ import { Form, Input, Select, Row, Col, DatePicker } from 'antd';
import
{
PublicApi
}
from
'@/services/api'
;
interface
queryProps
{
currentRef
?:
any
currentRef
?:
any
,
editData
:
any
}
const
layout
:
any
=
{
colon
:
false
,
...
...
@@ -15,9 +16,9 @@ const layout: any = {
};
const
TradingConditions
:
React
.
FC
<
queryProps
>
=
(
props
)
=>
{
const
{
currentRef
}
=
props
;
const
{
currentRef
,
editData
}
=
props
;
const
[
TradingConditionsForm
]
=
Form
.
useForm
();
const
[
address
,
setAddress
]
=
useState
<
any
>
([]);
const
[
address
,
setAddress
]
=
useState
([]);
const
hadnleValidateFields
=
()
=>
{
return
new
Promise
((
resolve
)
=>
{
TradingConditionsForm
.
validateFields
().
then
(
values
=>
{
...
...
@@ -51,13 +52,24 @@ const TradingConditions: React.FC<queryProps> = (props) => {
currentRef
.
current
=
userAction
;
}
}
// 获取交付地址
PublicApi
.
getLogisticsSelectListReceiverAddress
().
then
(
res
=>
{
setAddress
(
res
.
data
)
console
.
log
(
res
.
data
)
})
// 编辑时回显的数据
if
(
Object
.
keys
(
editData
).
length
>
0
)
{
TradingConditionsForm
.
setFieldsValue
({
paymentType
:
editData
.
paymentType
,
taxes
:
editData
.
taxes
,
logistics
:
editData
.
logistics
,
packRequire
:
editData
.
packRequire
,
otherRequire
:
editData
.
otherRequire
,
offer
:
editData
.
offer
,
quotationAsTime
:
moment
(
editData
.
quotationAsTime
),
deliveryTime
:
moment
(
editData
.
deliveryTime
),
fullAddress
:
editData
.
fullAddress
,
})
}
},
[])
return
(
<
Form
...
...
@@ -72,7 +84,7 @@ const TradingConditions: React.FC<queryProps> = (props) => {
</
Form
.
Item
>
<
Form
.
Item
label=
'交付地址'
name=
'fullAddress'
rules=
{
[{
required
:
true
,
message
:
'请选择交付地址'
}]
}
>
<
Select
>
{
address
.
lengtn
>
0
&&
address
.
map
(
v
=>
(
{
address
.
map
(
v
=>
(
<
Select
.
Option
key=
{
v
.
id
}
value=
{
v
.
id
}
>
{
v
.
fullAddress
}
</
Select
.
Option
>
))
}
</
Select
>
...
...
src/pages/transaction/goodsOffer/addEnquiryOrder/index.tsx
View file @
3b99726b
import
React
,
{
useRef
,
useState
}
from
'react'
;
import
{
history
}
from
'umi'
;
import
{
history
,
Link
}
from
'umi'
;
import
{
Button
,
Card
,
Space
,
Row
,
Col
,
Dropdown
,
Menu
,
Popconfirm
}
from
'antd'
;
import
{
PlusOutlined
,
DownOutlined
,
DeleteOutlined
}
from
'@ant-design/icons'
;
import
{
PlusOutlined
,
DownOutlined
,
DeleteOutlined
}
from
'@ant-design/icons'
;
import
{
PageHeaderWrapper
}
from
'@ant-design/pro-layout'
;
import
{
StandardTable
}
from
'god'
;
import
{
filterInteriorStateList
,
filterExternalStateList
}
from
'./../../common/statusList'
;
import
{
interiorState
,
interiorStateTwo
,
enquirySearchInteriorState
,
enquirySearchexternalState
}
from
'../../common/tableStatusList'
;
import
{
filterInternalState
,
filterExternalState
}
from
'./../../common/statusList'
;
import
{
interiorState
,
interiorStateTwo
,
quoteOrderInternalState
,
enquirySearchexternalState
}
from
'../../common/tableStatusList'
;
import
EyePreview
from
'@/components/EyePreview'
;
import
moment
from
'moment'
;
import
{
timeRange
}
from
'@/utils/index'
;
...
...
@@ -16,6 +18,7 @@ import { createFormActions, FormEffectHooks } from '@formily/antd';
import
{
useStateFilterSearchLinkageEffect
}
from
'@/formSchema/effects/useFilterSearch'
;
import
{
FORM_FILTER_PATH
}
from
'@/formSchema/const'
;
import
{
commonEnquieryOfferSchema
}
from
'../schema'
;
import
StatusColors
from
'@/pages/transaction/components/StatusColors'
import
{
PageStatus
}
from
'@/hooks/usePageStatus'
;
import
{
values
,
action
}
from
'mobx'
;
import
{
PublicApi
}
from
'@/services/api'
;
...
...
@@ -30,7 +33,8 @@ const AddEnquiryOrder: React.FC<{}> = () => {
title
:
'询价单号'
,
key
:
'inquiryListNo'
,
dataIndex
:
'inquiryListNo'
,
render
:
(
text
:
any
,
records
:
any
)
=>
<
EyePreview
type=
"button"
>
{
text
}
</
EyePreview
>
render
:
(
text
:
any
,
record
:
any
)
=>
<
EyePreview
url=
{
`/memberCenter/tranactionAbility/goodsOffer/components/details?id=${record.id}`
}
>
{
text
}
</
EyePreview
>
},
{
title
:
'询价单摘要'
,
...
...
@@ -46,41 +50,59 @@ const AddEnquiryOrder: React.FC<{}> = () => {
title
:
'交付日期'
,
key
:
'deliveryTime'
,
dataIndex
:
'deliveryTime'
,
render
:
(
text
:
any
)
=>
format
(
text
)
},
{
title
:
'报价截止时间'
,
key
:
'quotationAsTime'
,
dataIndex
:
'quotationAsTime'
,
render
:
(
text
:
any
)
=>
format
(
text
)
},
{
title
:
'询价时间'
,
key
:
'voucherTime'
,
dataIndex
:
'voucherTime'
,
render
:
(
text
:
any
)
=>
format
(
text
)
},
{
title
:
'外部状态'
,
key
:
'externalState'
,
dataIndex
:
'externalState'
,
filters
:
filterExternalState
List
,
filters
:
filterExternalState
,
filterMultiple
:
false
,
onFilter
:
(
value
,
record
)
=>
record
.
externalState
===
value
,
render
:
(
text
:
any
,
reconds
)
=>
enquirySearchexternalState
(
text
)
render
:
text
=>
<
StatusColors
status=
{
text
}
type=
'out'
/>
},
{
title
:
'内部状态'
,
key
:
'interiorState'
,
dataIndex
:
'interiorState'
,
filters
:
filterInter
iorStateList
,
filters
:
filterInter
nalState
,
filterMultiple
:
false
,
onFilter
:
(
value
,
record
)
=>
record
.
interiorState
===
value
,
render
:
(
text
:
any
)
=>
enquirySearchInteriorState
(
text
)
render
:
(
text
:
any
)
=>
quoteOrderInternalState
(
text
)
},
{
title
:
'操作'
,
key
:
'options'
,
dataIndex
:
'options'
,
render
:
(
text
:
any
,
record
:
any
)
=>
{
console
.
log
(
record
.
interiorState
)
return
(
<>
<
Button
type=
'link'
>
提交审核
</
Button
>
<
Dropdown
overlay=
{
()
=>
moreOption
(
record
)
}
>
<
Button
type=
'link'
>
更多
<
DownOutlined
/></
Button
>
</
Dropdown
>
</>
)
}
},
]
const
format
=
(
text
)
=>
{
...
...
@@ -98,11 +120,28 @@ const AddEnquiryOrder: React.FC<{}> = () => {
/**批量删除 */
const
menu
=
(
<
Menu
>
<
Menu
.
Item
key=
'1'
icon=
{
<
DeleteOutlined
/>
}
>
<
Menu
.
Item
key=
'1'
icon=
{
<
DeleteOutlined
/>
}
>
批量删除
</
Menu
.
Item
>
</
Menu
>
)
/**更多操作 */
/**删除 */
const
confirmDel
=
(
recode
:
any
)
=>
{
PublicApi
.
postOrderInquiryListDelete
({
id
:
recode
.
id
}).
then
(
res
=>
{
ref
.
current
.
reload
()
})
}
const
moreOption
=
(
record
:
any
)
=>
{
return
(
<
Menu
>
<
Menu
.
Item
key=
'1'
><
Link
to=
{
`/memberCenter/tranactionAbility/goodsOffer/addEnquiryOrder/add?id=${record.id}`
}
><
Button
type=
"link"
>
编辑
</
Button
></
Link
></
Menu
.
Item
>
<
Menu
.
Item
key=
'2'
>
<
Button
onClick=
{
()
=>
confirmDel
(
record
)
}
type=
"link"
>
删除
</
Button
>
</
Menu
.
Item
>
</
Menu
>
)
}
/**批量审核通过按钮 */
const
controllerBtns
=
<
Row
>
<
Col
span=
{
24
}
>
...
...
src/pages/transaction/goodsOffer/components/auditModel.tsx
0 → 100644
View file @
3b99726b
import
React
from
'react'
;
import
{
Modal
}
from
'antd'
;
import
{
SchemaForm
,
SchemaMarkupField
as
Field
,
createFormActions
,
FormEffectHooks
}
from
'@formily/antd'
import
{
Input
,
Radio
,
FormMegaLayout
}
from
'@formily/antd-components'
import
{
PublicApi
}
from
'@/services/api'
;
const
actions
=
createFormActions
()
const
{
onFieldChange$
}
=
FormEffectHooks
;
export
interface
Params
{
id
:
number
|
string
;
type
:
number
|
string
;
//1是待提交询价单 2是一级 3是二级
dialogVisible
:
boolean
;
onCancel
:
Function
;
onOK
?:
Function
;
}
const
AuditModal
:
React
.
FC
<
Params
>
=
(
props
)
=>
{
const
actions
=
createFormActions
()
const
useFormEffects
=
()
=>
{
const
{
setFieldState
}
=
createFormActions
()
onFieldChange$
(
'state'
).
subscribe
(({
value
})
=>
{
setFieldState
(
'cause'
,
state
=>
{
if
(
value
==
1
)
{
state
.
visible
=
false
}
else
{
state
.
visible
=
true
}
})
})
}
const
handletOk
=
(
values
:
any
)
=>
{
let
value
=
{
...
values
}
value
.
id
=
props
.
id
switch
(
props
.
type
)
{
case
1
:
PublicApi
.
postOrderInquirySubmit
(
value
).
then
(
res
=>
{
if
(
res
.
code
===
1000
)
{
props
.
onOK
()
}
})
break
;
case
2
:
PublicApi
.
postOrderInquiryDocumentsReview
(
value
).
then
(
res
=>
{
if
(
res
.
code
===
1000
)
{
props
.
onOK
()
}
})
break
;
case
3
:
PublicApi
.
postOrderInquiryDocumentsReviewTwo
(
value
).
then
(
res
=>
{
if
(
res
.
code
===
1000
)
{
props
.
onOK
()
}
})
break
;
}
}
/**操作 */
return
(
<
Modal
title=
'单据审核'
width=
{
576
}
visible=
{
props
.
dialogVisible
}
onOk=
{
()
=>
actions
.
submit
()
}
onCancel=
{
()
=>
props
.
onCancel
()
}
destroyOnClose
afterClose=
{
()
=>
actions
.
reset
()
}
okText=
'确定'
cancelText=
{
`取消`
}
>
<
SchemaForm
layout=
"vertical"
labelCol=
{
6
}
components=
{
{
Input
,
Radio
:
Radio
.
Group
,
TextArea
:
Input
.
TextArea
}
}
actions=
{
actions
}
effects=
{
()
=>
useFormEffects
()
}
onSubmit=
{
(
values
)
=>
handletOk
(
values
)
}
initialValues=
{
{
state
:
1
}
}
>
<
Field
enum=
{
[
{
label
:
'审核通过'
,
value
:
1
},
{
label
:
'审核不通过'
,
value
:
0
}
]
}
name=
'state'
required
x
-
component=
"Radio"
x
-
component
-
props=
{
{
}
}
/>
<
Field
title=
'审核不通过原因'
name=
"cause"
x
-
component=
"TextArea"
required
x
-
component
-
props=
{
{
placeholder
:
'在此输入你的内容,最多60个汉字'
}
}
x
-
rules=
{
{
max
:
60
,
// maximum:10,//最大数值
message
:
'原因最多60个汉字'
}
}
/>
</
SchemaForm
>
</
Modal
>
)
}
export
default
AuditModal
\ No newline at end of file
src/pages/transaction/goodsOffer/components/reviewList.tsx
0 → 100644
View file @
3b99726b
import
React
,
{
useRef
,
useState
}
from
'react'
;
import
{
Card
,
Button
,
Row
,
Col
}
from
'antd'
;
import
{
PageHeaderWrapper
}
from
'@ant-design/pro-layout'
;
import
{
StandardTable
}
from
'god'
;
import
moment
from
'moment'
;
import
{
timeRange
}
from
'@/utils/index'
;
import
{
ColumnType
}
from
'antd/lib/table/interface'
;
import
NiceForm
from
'@/components/NiceForm'
;
import
{
createFormActions
,
FormEffectHooks
}
from
'@formily/antd'
;
import
{
useStateFilterSearchLinkageEffect
}
from
'@/formSchema/effects/useFilterSearch'
;
import
{
FORM_FILTER_PATH
}
from
'@/formSchema/const'
;
import
{
pendingReviewSchema
}
from
'../schema/pendingReview'
;
import
{
PageStatus
}
from
'@/hooks/usePageStatus'
;
import
{
values
,
action
}
from
'mobx'
;
const
formActions
=
createFormActions
();
const
ReviewList
:
React
.
FC
<
{}
>
=
()
=>
{
const
ref
=
useRef
<
any
>
({});
const
[
selectRow
,
setSelectRow
]
=
useState
([])
const
[
selectedRowKeys
,
setSelectedRowKeys
]
=
useState
<
Array
<
number
>>
([])
const
columns
:
ColumnType
<
any
>
[]
=
[
{
title
:
'询价单号'
,
key
:
'inquiryListNo'
,
dataIndex
:
'inquiryListNo'
,
},
{
title
:
'询价单摘要'
,
key
:
'details'
,
dataIndex
:
'details'
,
},
{
title
:
'被询价会员'
,
key
:
'memberName'
,
dataIndex
:
'memberName'
,
},
{
title
:
'交付日期'
,
key
:
'deliveryTime'
,
dataIndex
:
'deliveryTime'
,
},
{
title
:
'报价截止时间'
,
key
:
'quotationAsTime'
,
dataIndex
:
'quotationAsTime'
,
},
{
title
:
'询价时间'
,
key
:
'voucherTime'
,
dataIndex
:
'voucherTime'
,
},
{
title
:
'外部状态'
,
key
:
'externalState'
,
dataIndex
:
'externalState'
,
},
{
title
:
'内部状态'
,
key
:
'interiorState'
,
dataIndex
:
'interiorState'
,
},
{
title
:
'操作'
,
key
:
'options'
,
dataIndex
:
'options'
,
},
]
const
format
=
(
text
)
=>
{
return
<>
{
moment
(
text
).
format
(
"YYYY-MM-DD HH:mm:ss"
)
}
</>
}
/**多选 */
const
rowSelection
=
{
selectedRowKeys
:
selectedRowKeys
,
onChange
:
(
selectedRowKeys
:
any
,
selectedRows
:
any
)
=>
{
setSelectRow
(
selectedRows
);
setSelectedRowKeys
(
selectedRowKeys
);
console
.
log
(
`selectedRowKeys:
${
selectedRowKeys
}
`
,
'selectedRows: '
,
selectedRows
)
},
}
/**批量审核通过按钮 */
const
controllerBtns
=
<
Row
>
<
Col
span=
{
6
}
>
<
Button
>
批量提交审核
</
Button
>
</
Col
>
</
Row
>
return
(
<
PageHeaderWrapper
>
<
Card
>
<
StandardTable
currentRef=
{
ref
}
columns=
{
columns
}
tableProps=
{
{
rowKew
:
'id'
}
}
rowSelection=
{
rowSelection
}
controlRender=
{
<
NiceForm
actions=
{
formActions
}
effects=
{
(
$
,
actions
)
=>
{
useStateFilterSearchLinkageEffect
(
$
,
actions
,
'inquiryListNo'
,
FORM_FILTER_PATH
)
}
}
expressionScope=
{
{
controllerBtns
}
}
schema=
{
pendingReviewSchema
}
>
</
NiceForm
>
}
>
</
StandardTable
>
</
Card
>
</
PageHeaderWrapper
>
)
}
export
default
ReviewList
\ No newline at end of file
src/pages/transaction/goodsOffer/enquiryOrder/index.tsx
View file @
3b99726b
...
...
@@ -9,6 +9,9 @@ import { FORM_FILTER_PATH } from '@/formSchema/const';
import
{
useStateFilterSearchLinkageEffect
}
from
'@/formSchema/effects/useFilterSearch'
;
import
{
searchSelectGetSelectCategoryOptionEffect
}
from
'../../effect/index'
import
{
ColumnType
}
from
'antd/lib/table/interface'
;
import
{
filterInternalState
,
filterExternalState
}
from
'./../../common/statusList'
;
import
{
quoteOrderInternalState
}
from
'../../common/tableStatusList'
;
import
StatusColors
from
'@/pages/transaction/components/StatusColors'
;
import
{
PublicApi
}
from
'@/services/api'
;
const
formActions
=
createFormActions
();
...
...
@@ -42,10 +45,19 @@ const EnquiryOrder: React.FC<{}> = (props) => {
title
:
'外部状态'
,
key
:
'externalState'
,
dataIndex
:
'externalState'
,
filters
:
filterExternalState
,
filterMultiple
:
false
,
onFilter
:
(
value
,
record
)
=>
record
.
externalState
===
value
,
render
:
text
=>
<
StatusColors
status=
{
text
}
type=
'out'
/>
},
{
title
:
'内部状态'
,
key
:
'interiorState'
,
dataIndex
:
'interiorState'
,
filters
:
filterInternalState
,
filterMultiple
:
false
,
onFilter
:
(
value
,
record
)
=>
record
.
interiorState
===
value
,
render
:
(
text
:
any
)
=>
quoteOrderInternalState
(
text
)
}];
//交易能力 询价报价 询价单查询
const
fetchData
=
async
(
params
:
any
)
=>
{
...
...
src/pages/transaction/goodsOffer/pendingReviewOne/index.tsx
View file @
3b99726b
import
React
,
{
useRef
,
useState
}
from
'react'
;
import
{
Card
,
Button
,
Row
,
Col
}
from
'antd'
;
import
{
PageHeaderWrapper
}
from
'@ant-design/pro-layout'
;
import
{
StandardTable
}
from
'god'
;
import
moment
from
'moment'
;
import
{
timeRange
}
from
'@/utils/index'
;
import
{
ColumnType
}
from
'antd/lib/table/interface'
;
import
NiceForm
from
'@/components/NiceForm'
;
import
{
createFormActions
,
FormEffectHooks
}
from
'@formily/antd'
;
import
{
useStateFilterSearchLinkageEffect
}
from
'@/formSchema/effects/useFilterSearch'
;
import
{
FORM_FILTER_PATH
}
from
'@/formSchema/const'
;
import
{
pendingReviewSchema
}
from
'../schema/pendingReview'
;
import
{
PageStatus
}
from
'@/hooks/usePageStatus'
;
import
{
values
,
action
}
from
'mobx'
;
import
ReviewList
from
'../components/reviewList'
;
const
formActions
=
createFormActions
();
const
PendingReviewOne
:
React
.
FC
<
{}
>
=
()
=>
{
const
ref
=
useRef
<
any
>
({});
const
[
selectRow
,
setSelectRow
]
=
useState
([])
const
[
selectedRowKeys
,
setSelectedRowKeys
]
=
useState
<
Array
<
number
>>
([])
const
columns
:
ColumnType
<
any
>
[]
=
[
{
title
:
'询价单号'
,
key
:
'inquiryListNo'
,
dataIndex
:
'inquiryListNo'
,
},
{
title
:
'询价单摘要'
,
key
:
'details'
,
dataIndex
:
'details'
,
},
{
title
:
'被询价会员'
,
key
:
'memberName'
,
dataIndex
:
'memberName'
,
},
{
title
:
'交付日期'
,
key
:
'deliveryTime'
,
dataIndex
:
'deliveryTime'
,
},
{
title
:
'报价截止时间'
,
key
:
'quotationAsTime'
,
dataIndex
:
'quotationAsTime'
,
},
{
title
:
'询价时间'
,
key
:
'voucherTime'
,
dataIndex
:
'voucherTime'
,
},
{
title
:
'外部状态'
,
key
:
'externalState'
,
dataIndex
:
'externalState'
,
},
{
title
:
'内部状态'
,
key
:
'interiorState'
,
dataIndex
:
'interiorState'
,
},
{
title
:
'操作'
,
key
:
'options'
,
dataIndex
:
'options'
,
},
]
const
format
=
(
text
)
=>
{
return
<>
{
moment
(
text
).
format
(
"YYYY-MM-DD HH:mm:ss"
)
}
</>
}
/**多选 */
const
rowSelection
=
{
selectedRowKeys
:
selectedRowKeys
,
onChange
:
(
selectedRowKeys
:
any
,
selectedRows
:
any
)
=>
{
setSelectRow
(
selectedRows
);
setSelectedRowKeys
(
selectedRowKeys
);
console
.
log
(
`selectedRowKeys:
${
selectedRowKeys
}
`
,
'selectedRows: '
,
selectedRows
)
},
}
/**批量审核通过按钮 */
const
controllerBtns
=
<
Row
>
<
Col
span=
{
6
}
>
<
Button
>
批量提交审核
</
Button
>
</
Col
>
</
Row
>
return
(
<
PageHeaderWrapper
>
<
Card
>
<
StandardTable
currentRef=
{
ref
}
columns=
{
columns
}
tableProps=
{
{
rowKew
:
'id'
}
}
rowSelection=
{
rowSelection
}
controlRender=
{
<
NiceForm
actions=
{
formActions
}
effects=
{
(
$
,
actions
)
=>
{
useStateFilterSearchLinkageEffect
(
$
,
actions
,
'inquiryListNo'
,
FORM_FILTER_PATH
)
}
}
expressionScope=
{
{
controllerBtns
}
}
schema=
{
pendingReviewSchema
}
>
</
NiceForm
>
}
>
</
StandardTable
>
</
Card
>
</
PageHeaderWrapper
>
<
ReviewList
/>
)
}
...
...
src/pages/transaction/goodsOffer/pendingReviewTwo/index.tsx
View file @
3b99726b
import
React
,
{
useRef
,
useState
}
from
'react'
;
import
{
Card
,
Button
,
Row
,
Col
}
from
'antd'
;
import
{
PageHeaderWrapper
}
from
'@ant-design/pro-layout'
;
import
{
StandardTable
}
from
'god'
;
import
moment
from
'moment'
;
import
{
timeRange
}
from
'@/utils/index'
;
import
{
ColumnType
}
from
'antd/lib/table/interface'
;
import
NiceForm
from
'@/components/NiceForm'
;
import
{
createFormActions
,
FormEffectHooks
}
from
'@formily/antd'
;
import
{
useStateFilterSearchLinkageEffect
}
from
'@/formSchema/effects/useFilterSearch'
;
import
{
FORM_FILTER_PATH
}
from
'@/formSchema/const'
;
import
{
pendingReviewSchema
}
from
'../schema/pendingReview'
;
import
{
PageStatus
}
from
'@/hooks/usePageStatus'
;
import
{
values
,
action
}
from
'mobx'
;
import
ReviewList
from
'../components/reviewList'
;
const
formActions
=
createFormActions
();
const
PendingReviewTwo
:
React
.
FC
<
{}
>
=
()
=>
{
const
ref
=
useRef
<
any
>
({});
const
[
selectRow
,
setSelectRow
]
=
useState
([])
const
[
selectedRowKeys
,
setSelectedRowKeys
]
=
useState
<
Array
<
number
>>
([])
const
columns
:
ColumnType
<
any
>
[]
=
[
{
title
:
'询价单号'
,
key
:
'inquiryListNo'
,
dataIndex
:
'inquiryListNo'
,
},
{
title
:
'询价单摘要'
,
key
:
'details'
,
dataIndex
:
'details'
,
},
{
title
:
'被询价会员'
,
key
:
'memberName'
,
dataIndex
:
'memberName'
,
},
{
title
:
'交付日期'
,
key
:
'deliveryTime'
,
dataIndex
:
'deliveryTime'
,
},
{
title
:
'报价截止时间'
,
key
:
'quotationAsTime'
,
dataIndex
:
'quotationAsTime'
,
},
{
title
:
'询价时间'
,
key
:
'voucherTime'
,
dataIndex
:
'voucherTime'
,
},
{
title
:
'外部状态'
,
key
:
'externalState'
,
dataIndex
:
'externalState'
,
},
{
title
:
'内部状态'
,
key
:
'interiorState'
,
dataIndex
:
'interiorState'
,
},
{
title
:
'操作'
,
key
:
'options'
,
dataIndex
:
'options'
,
},
]
const
format
=
(
text
)
=>
{
return
<>
{
moment
(
text
).
format
(
"YYYY-MM-DD HH:mm:ss"
)
}
</>
}
/**多选 */
const
rowSelection
=
{
selectedRowKeys
:
selectedRowKeys
,
onChange
:
(
selectedRowKeys
:
any
,
selectedRows
:
any
)
=>
{
setSelectRow
(
selectedRows
);
setSelectedRowKeys
(
selectedRowKeys
);
console
.
log
(
`selectedRowKeys:
${
selectedRowKeys
}
`
,
'selectedRows: '
,
selectedRows
)
},
}
/**批量审核通过按钮 */
const
controllerBtns
=
<
Row
>
<
Col
span=
{
6
}
>
<
Button
>
批量提交审核
</
Button
>
</
Col
>
</
Row
>
return
(
<
PageHeaderWrapper
>
<
Card
>
<
StandardTable
currentRef=
{
ref
}
columns=
{
columns
}
tableProps=
{
{
rowKew
:
'id'
}
}
rowSelection=
{
rowSelection
}
controlRender=
{
<
NiceForm
actions=
{
formActions
}
effects=
{
(
$
,
actions
)
=>
{
useStateFilterSearchLinkageEffect
(
$
,
actions
,
'inquiryListNo'
,
FORM_FILTER_PATH
)
}
}
expressionScope=
{
{
controllerBtns
}
}
schema=
{
pendingReviewSchema
}
>
</
NiceForm
>
}
>
</
StandardTable
>
</
Card
>
</
PageHeaderWrapper
>
<
ReviewList
/>
)
}
...
...
src/pages/transaction/goodsOffer/pendingSubmit/index.tsx
View file @
3b99726b
import
React
,
{
useRef
,
useState
}
from
'react'
;
import
React
,
{
useRef
,
useState
,
useEffect
}
from
'react'
;
import
{
Card
,
Button
,
Row
,
Col
}
from
'antd'
;
import
{
history
}
from
'umi'
import
{
PageHeaderWrapper
}
from
'@ant-design/pro-layout'
;
import
{
StandardTable
}
from
'god'
;
import
moment
from
'moment'
;
...
...
@@ -12,11 +13,18 @@ import { FORM_FILTER_PATH } from '@/formSchema/const';
import
{
pendingReviewSchema
}
from
'../schema/pendingReview'
;
import
{
PageStatus
}
from
'@/hooks/usePageStatus'
;
import
{
values
,
action
}
from
'mobx'
;
import
{
filterInternalState
,
filterExternalState
}
from
'./../../common/statusList'
;
import
{
quoteOrderInternalState
}
from
'../../common/tableStatusList'
;
import
StatusColors
from
'@/pages/transaction/components/StatusColors'
;
import
{
PublicApi
}
from
'@/services/api'
;
import
AuditModal
from
'../components/auditModel'
;
const
formActions
=
createFormActions
();
const
PendingSubmit
:
React
.
FC
<
{}
>
=
()
=>
{
const
ref
=
useRef
<
any
>
({});
const
[
id
,
setId
]
=
useState
<
any
>
(
0
);
const
[
selectRow
,
setSelectRow
]
=
useState
([])
const
[
visible
,
setvisible
]
=
useState
(
false
)
const
[
selectedRowKeys
,
setSelectedRowKeys
]
=
useState
<
Array
<
number
>>
([])
const
columns
:
ColumnType
<
any
>
[]
=
[
{
...
...
@@ -53,16 +61,25 @@ const PendingSubmit: React.FC<{}> = () => {
title
:
'外部状态'
,
key
:
'externalState'
,
dataIndex
:
'externalState'
,
},
{
filters
:
filterExternalState
,
filterMultiple
:
false
,
onFilter
:
(
value
,
record
)
=>
record
.
externalState
===
value
,
render
:
text
=>
<
StatusColors
status=
{
text
}
type=
'out'
/>
},
{
title
:
'内部状态'
,
key
:
'interiorState'
,
dataIndex
:
'interiorState'
,
filters
:
filterInternalState
,
filterMultiple
:
false
,
onFilter
:
(
value
,
record
)
=>
record
.
interiorState
===
value
,
render
:
(
text
:
any
)
=>
quoteOrderInternalState
(
text
)
},
{
title
:
'操作'
,
key
:
'options'
,
dataIndex
:
'options'
,
render
:
(
text
:
any
,
record
:
any
)
=>
<
Button
type=
'link'
onClick=
{
()
=>
{
setId
(
record
.
id
);
setvisible
(
true
)}
}
>
审核
</
Button
>
},
]
const
format
=
(
text
)
=>
{
...
...
@@ -77,14 +94,48 @@ const PendingSubmit: React.FC<{}> = () => {
console
.
log
(
`selectedRowKeys:
${
selectedRowKeys
}
`
,
'selectedRows: '
,
selectedRows
)
},
}
/**批量审核通过按钮 */
const
controllerBtns
=
<
Row
>
<
Col
span=
{
6
}
>
<
Button
>
批量提交审核
</
Button
>
<
Button
onClick=
{
()
=>
handleSubmitAll
(
selectedRowKeys
)
}
>
批量提交审核
</
Button
>
</
Col
>
</
Row
>
/**列表数据 */
const
fetchData
=
(
params
?:
any
)
=>
{
console
.
log
(
params
)
//可以直接打印参数
return
new
Promise
((
resolve
,
reject
)
=>
{
PublicApi
.
getOrderSubmitInquirySheetList
({
...
params
}).
then
(
res
=>
{
resolve
(
res
.
data
)
})
})
}
/**搜索 */
const
handleSumbit
=
(
values
:
any
)
=>
{
if
(
values
.
voucherTime
)
{
values
.
startVoucherTime
=
timeRange
(
values
.
voucherTime
).
st
values
.
endVoucherTime
=
timeRange
(
values
.
voucherTime
).
et
delete
values
.
voucherTime
}
console
.
log
(
'values'
,
values
)
ref
.
current
.
reload
(
values
)
}
/**批量审核 */
const
handleSubmitAll
=
(
ids
:
number
[])
=>
{
PublicApi
.
postOrderInquirySubmitAll
({
ids
:
ids
}).
then
(
res
=>
{
ref
.
current
.
reload
()
})
}
const
handleModalOK
=
()
=>
{
setvisible
(
false
)
setTimeout
(()
=>
{
history
.
goBack
()
},
1000
)
}
return
(
<
PageHeaderWrapper
>
<
Card
>
...
...
@@ -93,9 +144,11 @@ const PendingSubmit: React.FC<{}> = () => {
columns=
{
columns
}
tableProps=
{
{
rowKew
:
'id'
}
}
rowSelection=
{
rowSelection
}
fetchTableData=
{
(
params
:
any
)
=>
fetchData
(
params
)
}
controlRender=
{
<
NiceForm
actions=
{
formActions
}
onSubmit=
{
values
=>
handleSumbit
(
values
)
}
effects=
{
(
$
,
actions
)
=>
{
useStateFilterSearchLinkageEffect
(
$
,
actions
,
'inquiryListNo'
,
FORM_FILTER_PATH
)
}
}
...
...
@@ -110,6 +163,13 @@ const PendingSubmit: React.FC<{}> = () => {
</
StandardTable
>
</
Card
>
<
AuditModal
id=
{
id
}
type=
{
1
}
dialogVisible=
{
visible
}
onCancel=
{
()
=>
setvisible
(
false
)
}
onOK=
{
handleModalOK
}
/>
</
PageHeaderWrapper
>
)
}
...
...
src/pages/transaction/purchaseOrder/components/StatusColors/index.tsx
View file @
3b99726b
...
...
@@ -94,7 +94,7 @@ const typeMaps = {
}
// 订单内部状态显示
const
StatusColors
:
React
.
FC
<
StatusColorsProps
>
=
(
props
)
=>
{
const
StatusColors
:
React
.
FC
<
StatusColorsProps
>
=
(
props
)
=>
{
const
{
status
,
type
}
=
props
const
statusText
=
typeMaps
[
type
]
const
statusShowColor
=
matchStatusColor
(
status
)
...
...
src/pages/transaction/purchaseOrder/constant/index.tsx
View file @
3b99726b
...
...
@@ -59,13 +59,13 @@ export const baseOrderListColumns: any[] = [
align
:
'center'
,
dataIndex
:
'externalState'
,
key
:
'externalState'
,
render
:
text
=>
<
StatusColors
status=
{
text
}
type=
'out'
/>
render
:
text
=>
<
StatusColors
status=
{
text
}
type=
'out'
/>
},
{
title
:
'内部状态'
,
align
:
'center'
,
dataIndex
:
'interiorState'
,
key
:
'interiorState'
,
render
:
(
text
)
=>
<
StatusColors
status=
{
text
}
type=
'inside'
/>
render
:
(
text
)
=>
<
StatusColors
status=
{
text
}
type=
'inside'
/>
},
]
\ No newline at end of file
src/pages/user/register.tsx
View file @
3b99726b
...
...
@@ -86,7 +86,7 @@ let timeChange: any; // 定时器
const
actions
=
createFormActions
()
const
UserRegistry
=
()
=>
{
const
[
current
,
setCurrent
]
=
useState
(
0
)
const
[
current
,
setCurrent
]
=
useState
(
1
)
const
[
subStep
,
setSubStep
]
=
useState
(
false
)
const
[
submitLoading
,
setSubmitLoading
]
=
useState
(
false
)
const
[
agreementList
,
setAgreementList
]
=
useState
([])
...
...
@@ -122,10 +122,12 @@ const UserRegistry = () => {
const
[
asyncSchema
,
setAsyncSchema
]
=
useState
(()
=>
{
return
schemas
[
`schema
${
current
}
`
]
})
useEffect
(()
=>
{
setAsyncSchema
(
schemas
[
`schema
${
current
}
`
])
if
(
current
===
2
)
runTimerJump
()
},
[
current
,
actions
])
useEffect
(()
=>
{
if
(
time
===
0
)
{
clearInterval
(
timeChange
)
...
...
@@ -134,6 +136,7 @@ const UserRegistry = () => {
console
.
log
(
'执行登录跳转!'
)
}
},
[
time
])
const
runTimerJump
=
()
=>
{
timeChange
=
setInterval
(()
=>
setTime
(
t
=>
--
t
),
1000
)
}
...
...
src/pages/user/schema/index.ts
View file @
3b99726b
src/services/api.ts
View file @
3b99726b
...
...
@@ -8,6 +8,7 @@ import * as PayApi from './PayApi'
import
*
as
SearchApi
from
'./SearchApi'
import
*
as
OrderApi
from
'./OrderApi'
import
*
as
SettleApi
from
'./SettleApi'
import
*
as
AfterService
from
'./AfterServiceApi'
/**
* 可在这里写入自定义的接口
...
...
@@ -27,5 +28,6 @@ export const PublicApi = {
...
PayApi
,
...
SearchApi
,
...
OrderApi
,
...
SettleApi
...
SettleApi
,
...
AfterService
}
ytt.config.ts
View file @
3b99726b
...
...
@@ -9,6 +9,7 @@ const tokenList = [
{
name
:
'Search'
,
token
:
'ca19f532efba91f7773cbfbd526b798c6ac83df670071e97d72c50dca1d53a48'
},
// 搜索服务
{
name
:
'Order'
,
token
:
'31b93b223421ca52389b088a7457c651fab7c1bf658fc7dd38d0689d09c8e235'
},
//订单服务
{
name
:
'Settle'
,
token
:
'fffbeeaaa198c285955997c606bc279fc6950fea118580c786f2c73eecccaa6a'
},
//结算服务
{
name
:
'AfterService'
,
token
:
'39db719680bf1b3db21bc1deda933cde16d17559e9676bf848ec96c1320e68df'
},
// '售后服务'
// { name: '', token: 'c0e920f071595a73ba234b6fa6cfe42192d3d740d59f030caa2c7f0f08777d78' } // 商户会员管理服务
]
...
...
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