Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
J
jinfa-platform
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
linweijiong
jinfa-platform
Commits
97df3754
Commit
97df3754
authored
Oct 13, 2020
by
前端-许佳敏
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'dev' of
http://10.0.0.22:3000/lingxi/lingxi-business-paltform
into dev
parents
5e3339df
90f46fa3
Hide whitespace changes
Inline
Side-by-side
Showing
37 changed files
with
1205 additions
and
75 deletions
+1205
-75
afterServiceRoute.ts
config/routes/afterServiceRoute.ts
+276
-0
index.ts
config/routes/index.ts
+2
-2
app.tsx
src/app.tsx
+2
-1
index.tsx
src/components/InputNumber/index.tsx
+4
-2
menu.ts
src/locales/zh-CN/menu.ts
+62
-7
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
...ages/lxMall/commodityDetail/components/ShopInfo/index.tsx
+12
-1
index.tsx
src/pages/lxMall/commodityDetail/index.tsx
+1
-0
index.tsx
src/pages/lxMall/information/index.tsx
+37
-32
index.tsx
src/pages/lxMall/pay/components/transfer/index.tsx
+7
-4
index.tsx
src/pages/lxMall/pay/index.tsx
+17
-3
list.tsx
src/pages/lxMall/pointsMall/list.tsx
+7
-5
index.less
src/pages/lxMall/purchaseOrder/index.less
+2
-0
index.tsx
src/pages/lxMall/purchaseOrder/index.tsx
+5
-4
index.tsx
src/pages/systemSetting/collection/index.tsx
+1
-1
shops.tsx
src/pages/systemSetting/collection/shops.tsx
+38
-6
index.tsx
...ansaction/purchaseOrder/components/StatusColors/index.tsx
+1
-1
index.tsx
src/pages/transaction/purchaseOrder/constant/index.tsx
+4
-3
register.tsx
src/pages/user/register.tsx
+4
-1
index.ts
src/pages/user/schema/index.ts
+1
-1
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 @
97df3754
/*
* 售后能力
* @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/index.ts
View file @
97df3754
...
...
@@ -12,9 +12,9 @@ import TranactionRoute from './tranactionRoute' // 交易能力路由
import
LogisticsRoute
from
'./logisticsRoutes'
// 物流能力路由
import
PayandSettleRoute
from
'./payandSettle'
//支付与结算
import
AuthConfigRoute
from
'./authConfigRoute'
import
AfterService
from
'./afterServiceRoute'
// 售后
import
HandlingRoute
from
'./handlingRoute'
;
// 加工能力
const
routes
=
[
CommodityRoute
,
MemberRoute
,
ShopRoute
,
ChannelRoute
,
TranactionRoute
,
PayandSettleRoute
,
LogisticsRoute
,
AuthConfigRoute
,
HandlingRoute
]
const
routes
=
[
CommodityRoute
,
MemberRoute
,
ShopRoute
,
ChannelRoute
,
TranactionRoute
,
AfterService
,
PayandSettleRoute
,
LogisticsRoute
,
AuthConfigRoute
,
HandlingRoute
]
const
memberCenterRoute
=
{
path
:
'/memberCenter'
,
...
...
src/app.tsx
View file @
97df3754
...
...
@@ -21,7 +21,8 @@ setup()
const
userLoginLists
=
[
'/user/login'
,
'/user/register'
,
'/user/forget'
'/user/forget'
,
'/user/agreement'
]
// 商城相关路由
...
...
src/components/InputNumber/index.tsx
View file @
97df3754
...
...
@@ -32,13 +32,15 @@ const InputNumber: React.FC<InputNumberPropsType> = (props) => {
}
},
[
min
,
max
])
const
handleReduce
=
()
=>
{
const
handleReduce
=
(
e
)
=>
{
e
.
stopPropagation
()
if
(
value
>
minCount
)
{
onChange
(
Number
(
value
)
-
1
)
}
}
const
handleAdd
=
()
=>
{
const
handleAdd
=
(
e
)
=>
{
e
.
stopPropagation
()
if
(
value
<
maxCount
)
{
onChange
(
Number
(
value
)
+
1
)
}
...
...
src/locales/zh-CN/menu.ts
View file @
97df3754
...
...
@@ -183,7 +183,7 @@ export default {
'menu.tranactionAbility.saleOrder.readyConfirmDelevedOrder'
:
'待确认发货订单'
,
'menu.tranactionAbility.saleOrder.readyConfirmReturnOrder'
:
'待确认回单'
,
'menu.tranactionAbility.saleOrder.readyReturnDocument'
:
'待确认归档'
,
//需求报价
'menu.tranactionAbility.enquiryOffer'
:
'需求报价'
,
...
...
@@ -202,10 +202,10 @@ 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'
:
'待确认报价单'
,
// 供应商评价
'menu.tranactionAbility.supplierEvaluation'
:
'供应会员评价管理'
,
'menu.tranactionAbility.supplierEvaluation.unevaluated'
:
'待评价订单'
,
...
...
@@ -213,7 +213,7 @@ export default {
'menu.tranactionAbility.supplierEvaluation.analysis'
:
'评价统计'
,
'menu.tranactionAbility.supplierEvaluation.received'
:
'收到的评价'
,
'menu.tranactionAbility.supplierEvaluation.sent'
:
'发出的评价'
,
// 采购商评价
'menu.tranactionAbility.purchaserEvaluation'
:
'采购会员评价管理'
,
'menu.tranactionAbility.purchaserEvaluation.unevaluated'
:
'待评价订单'
,
...
...
@@ -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'
:
'物流管理'
,
...
...
@@ -254,7 +309,7 @@ export default {
'menu.payandSettle.creditApplication.quotaFormQuery'
:
'授信申请单查询'
,
'menu.payandSettle.creditApplication.quotaFormQueryDetail'
:
'授信申请单详情'
,
'menu.payandSettle.creditApplication.quotaPrSubmit'
:
'待提交授信申请单'
,
'menu.payandSettle.creditApplication.quotaPrSubmitDetail'
:
'待提交授信申请单详情'
,
'menu.payandSettle.creditApplication.quotaPrSubmitDetail'
:
'待提交授信申请单详情'
,
'menu.payandSettle.creditManage'
:
'授信处理'
,
'menu.payandSettle.creditManage.quotaMenage'
:
'授信额度管理'
,
'menu.payandSettle.creditManage.quotaMenageDetail'
:
'授信额度管理'
,
...
...
src/pages/afterService/common/columns.tsx
0 → 100644
View file @
97df3754
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 @
97df3754
:global {
.god-table-control {
margin-bottom: 0;
}
}
\ No newline at end of file
src/pages/afterService/components/DetailPreview/index.tsx
0 → 100644
View file @
97df3754
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 @
97df3754
.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 @
97df3754
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 @
97df3754
.wrapper {
padding: 24px;
}
\ No newline at end of file
src/pages/afterService/components/OrderDetailWrapper/index.tsx
0 → 100644
View file @
97df3754
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 @
97df3754
src/pages/afterService/components/StatusColors/index.tsx
0 → 100644
View file @
97df3754
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 @
97df3754
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 @
97df3754
/*
* 换货申请单列表
* @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 @
97df3754
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 @
97df3754
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 @
97df3754
/*
* 待提交换货申请单
* @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 @
97df3754
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 @
97df3754
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/lxMall/commodityDetail/components/ShopInfo/index.tsx
View file @
97df3754
...
...
@@ -31,6 +31,17 @@ const ShopInfo: React.FC<ShopInfoPropsType> = (props) => {
}
}
const
handleCollect
=
()
=>
{
let
param
=
{
shopId
:
shopInfo
.
shopId
,
status
:
true
}
PublicApi
.
postTemplateShopCollect
(
param
).
then
(
res
=>
{
if
(
res
.
code
===
1000
)
{
}
})
}
return
(
<
div
className=
{
styles
.
shop_info
}
>
...
...
@@ -72,7 +83,7 @@ const ShopInfo: React.FC<ShopInfoPropsType> = (props) => {
<
div
className=
{
styles
.
dashed_split
}
></
div
>
<
div
className=
{
styles
.
shop_info_btn_group
}
>
<
div
className=
{
styles
.
shop_info_btn
}
><
Link
to=
{
`/shop?shopId=${shopUrlParam}`
}
>
进入店铺
</
Link
></
div
>
<
div
className=
{
styles
.
shop_info_btn
}
>
收藏本店
</
div
>
<
div
className=
{
styles
.
shop_info_btn
}
onClick=
{
()
=>
handleCollect
()
}
>
收藏本店
</
div
>
</
div
>
<
Button
loading=
{
applyLoading
}
className=
{
styles
.
apply_member_btn
}
onClick=
{
()
=>
applyFroVip
()
}
>
申请成为本店会员
</
Button
>
</
div
>
...
...
src/pages/lxMall/commodityDetail/index.tsx
View file @
97df3754
...
...
@@ -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 @
97df3754
...
...
@@ -149,41 +149,46 @@ const Information: React.FC<InformationPropsType> = (props) => {
<
div
className=
{
styles
.
information
}
>
<
div
className=
{
styles
.
information_container
}
>
<
BreadCrumbs
{
...
props
}
/>
<
div
className=
{
styles
.
information_focus
}
>
<
div
className=
{
styles
.
information_focus_left
}
>
<
Carousel
className=
{
styles
.
information_focus_carousel
}
autoplay=
{
true
}
pauseOnDotsHover
autoplaySpeed=
{
3000
}
>
{
carouselNews
&&
carouselNews
.
map
((
item
:
any
)
=>
(
<
div
className=
{
styles
.
information_focus_carousel_item
}
key=
{
`information_focus_carousel_item_${item.id}`
}
>
<
div
className=
{
styles
.
information_focus_imgbox_main
}
>
{
(
carouselNews
.
length
>
0
||
photoNews
.
length
>
0
)
&&
(
<
div
className=
{
styles
.
information_focus
}
>
<
div
className=
{
styles
.
information_focus_left
}
>
<
Carousel
className=
{
styles
.
information_focus_carousel
}
autoplay=
{
true
}
pauseOnDotsHover
autoplaySpeed=
{
3000
}
>
{
carouselNews
&&
carouselNews
.
map
((
item
:
any
)
=>
(
<
div
className=
{
styles
.
information_focus_carousel_item
}
key=
{
`information_focus_carousel_item_${item.id}`
}
>
<
div
className=
{
styles
.
information_focus_imgbox_main
}
>
<
a
href=
{
toDetailLink
(
item
.
id
)
}
>
<
div
className=
{
styles
.
information_focus_imgbox_main_img
}
style=
{
{
backgroundImage
:
`url(${item.imageUrl})`
}
}
/>
</
a
>
<
p
className=
{
styles
.
information_focus_imgbox_main_title
}
>
{
item
.
title
}
</
p
>
</
div
>
</
div
>
))
}
</
Carousel
>
</
div
>
<
div
className=
{
styles
.
information_focus_right
}
>
{
photoNews
&&
photoNews
.
map
((
item
:
any
,
index
)
=>
index
<
3
&&
(
<
div
key=
{
`information_focus_imgbox_sub_${item.id}`
}
className=
{
index
===
0
?
styles
.
information_focus_imgbox_sub_1
:
styles
.
information_focus_imgbox_sub_2
}
>
<
a
href=
{
toDetailLink
(
item
.
id
)
}
>
<
div
className=
{
styles
.
information_focus_imgbox_main
_img
}
style=
{
{
backgroundImage
:
`url(${item.imageUrl})`
}
}
/>
<
div
className=
{
index
===
0
?
styles
.
information_focus_imgbox_sub_1_img
:
styles
.
information_focus_imgbox_sub_2
_img
}
style=
{
{
backgroundImage
:
`url(${item.imageUrl})`
}
}
/>
</
a
>
<
p
className=
{
styles
.
information_focus_imgbox_
main
_title
}
>
{
item
.
title
}
</
p
>
<
p
className=
{
styles
.
information_focus_imgbox_
sub
_title
}
>
{
item
.
title
}
</
p
>
</
div
>
</
div
>
))
}
</
Carousel
>
</
div
>
<
div
className=
{
styles
.
information_focus_right
}
>
{
photoNews
&&
photoNews
.
map
((
item
:
any
,
index
)
=>
index
<
3
&&
(
<
div
key=
{
`information_focus_imgbox_sub_${item.id}`
}
className=
{
index
===
0
?
styles
.
information_focus_imgbox_sub_1
:
styles
.
information_focus_imgbox_sub_2
}
>
<
a
href=
{
toDetailLink
(
item
.
id
)
}
>
<
div
className=
{
index
===
0
?
styles
.
information_focus_imgbox_sub_1_img
:
styles
.
information_focus_imgbox_sub_2_img
}
style=
{
{
backgroundImage
:
`url(${item.imageUrl})`
}
}
/>
</
a
>
<
p
className=
{
styles
.
information_focus_imgbox_sub_title
}
>
{
item
.
title
}
</
p
>
</
div
>
))
}
</
div
>
</
div
>
))
}
</
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 @
97df3754
...
...
@@ -12,11 +12,12 @@ const { Dragger } = Upload
interface
TransferPayWayPropsType
{
payInfo
:
GetOrderOrderPayDetailsResponse
orderId
:
number
orderId
:
number
,
onChange
:
Function
}
const
TransferPayWay
:
React
.
FC
<
TransferPayWayPropsType
>
=
(
props
)
=>
{
const
{
payInfo
,
orderId
}
=
props
const
{
payInfo
,
orderId
,
onChange
}
=
props
const
[
loading
,
setLoading
]
=
useState
<
boolean
>
(
false
)
const
[
payOrderUrl
,
setPayOrderUrls
]
=
useState
<
string
>
()
const
[
confirmLoading
,
setConfirmLoading
]
=
useState
<
boolean
>
(
false
)
...
...
@@ -67,7 +68,7 @@ const TransferPayWay: React.FC<TransferPayWayPropsType> = (props) => {
let
param
=
{
id
:
orderId
,
paymentInformationId
:
payInfo
.
paymentInformationId
,
payOrderUrls
:
[
payOrderUrl
]
payOrderUrls
:
JSON
.
stringify
([
payOrderUrl
])
}
setConfirmLoading
(
true
)
//@ts-ignore
...
...
@@ -75,11 +76,13 @@ const TransferPayWay: React.FC<TransferPayWayPropsType> = (props) => {
if
(
res
.
code
===
1000
)
{
message
.
destroy
()
message
.
success
(
"支付成功"
)
onChange
(
true
)
}
else
{
setConfirmLoading
(
false
)
onChange
(
false
)
}
}).
catch
(()
=>
{
onChange
(
false
)
setConfirmLoading
(
false
)
})
}
...
...
src/pages/lxMall/pay/index.tsx
View file @
97df3754
...
...
@@ -48,6 +48,7 @@ const getPayTypeTitle = (type) => {
const
PayPage
:
React
.
FC
<
PayPagePropsType
>
=
(
props
)
=>
{
const
{
shopInfo
,
mallInfo
,
layoutType
,
}
=
props
const
[
payState
,
setPayState
]
=
useState
<
boolean
>
(
false
)
const
{
orderId
}
=
props
.
location
.
query
const
[
pageTitle
,
setPageTitle
]
=
useState
<
string
>
()
const
[
payType
]
=
useState
<
string
|
number
>
(
PayWayType
.
bank
)
...
...
@@ -72,6 +73,10 @@ const PayPage: React.FC<PayPagePropsType> = (props) => {
})
}
const
handlePayChangge
=
(
state
)
=>
{
setPayState
(
state
)
}
const
renderPayWay
=
()
=>
{
if
(
!
payInfo
)
{
return
...
...
@@ -89,7 +94,7 @@ const PayPage: React.FC<PayPagePropsType> = (props) => {
case
PayWayType
.
bank
:
return
<
BankPayWay
/>
case
PayWayType
.
transfer
:
return
<
TransferPayWay
payInfo=
{
payInfo
}
orderId=
{
orderId
}
/>
return
<
TransferPayWay
payInfo=
{
payInfo
}
orderId=
{
orderId
}
onChange=
{
(
state
)
=>
handlePayChangge
(
state
)
}
/>
default
:
return
null
}
...
...
@@ -98,7 +103,7 @@ const PayPage: React.FC<PayPagePropsType> = (props) => {
window
.
location
.
href
=
'/'
}
return
payInfo
?
(
return
payInfo
?
!
payState
?
(
<
div
className=
{
styles
.
pay
}
>
<
CommonHeader
logoUrl=
{
(
layoutType
===
LAYOUT_TYPE
.
channel
||
layoutType
===
LAYOUT_TYPE
.
ichannel
)
?
shopInfo
?.
logo
:
mallInfo
.
logoUrl
}
...
...
@@ -110,7 +115,16 @@ const PayPage: React.FC<PayPagePropsType> = (props) => {
}
</
div
>
</
div
>
)
:
<
div
>
)
:
(<
div
>
<
CommonHeader
logoUrl=
{
(
layoutType
===
LAYOUT_TYPE
.
channel
||
layoutType
===
LAYOUT_TYPE
.
ichannel
)
?
shopInfo
?.
logo
:
mallInfo
.
logoUrl
}
title=
"支付成功"
/>
<
div
className=
{
styles
.
errmsg
}
>
<
p
>
支付成功
</
p
>
<
Button
type=
"primary"
className=
{
styles
.
backbtn
}
onClick=
{
()
=>
backHome
()
}
>
继续购物
</
Button
>
</
div
>
</
div
>)
:
<
div
>
<
CommonHeader
logoUrl=
{
(
layoutType
===
LAYOUT_TYPE
.
channel
||
layoutType
===
LAYOUT_TYPE
.
ichannel
)
?
shopInfo
?.
logo
:
mallInfo
.
logoUrl
}
title=
"支付错误"
...
...
src/pages/lxMall/pointsMall/list.tsx
View file @
97df3754
...
...
@@ -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/lxMall/purchaseOrder/index.less
View file @
97df3754
...
...
@@ -51,6 +51,7 @@
height: 130px;
align-items: center;
font-size: 12px;
user-select: none;
&_item {
display: flex;
...
...
@@ -85,6 +86,7 @@
text-align: center;
margin-top: 10px;
white-space: nowrap;
user-select: none;
}
}
...
...
src/pages/lxMall/purchaseOrder/index.tsx
View file @
97df3754
...
...
@@ -2,7 +2,6 @@ import React, { useState, useEffect } from 'react'
import
CommonHeader
from
'../components/CommonHeader'
import
InputNumber
from
'@/components/InputNumber'
import
Recommand
from
'../components/Recommand'
import
{
history
}
from
'umi'
import
cx
from
'classnames'
import
{
Checkbox
,
Affix
,
message
,
Modal
,
Button
}
from
'antd'
import
styles
from
'./index.less'
...
...
@@ -475,12 +474,12 @@ const PurchaseOrder: React.FC<PurchaseOrderPropsType> = (props) => {
buyOrderInfo
.
payWayList
=
await
getPayWayListByMemberId
(
selectItem
.
memberId
)
PublicApi
.
postOrderIsWorkFlow
({
productIds
}).
then
(
res
=>
{
message
.
destroy
()
setConfirmLoading
(
false
)
if
(
res
.
code
===
1000
)
{
message
.
destroy
()
PublicApi
.
postOrderDirectPayment
({
productId
:
productIds
[
0
]
}).
then
(
res
=>
{
message
.
destroy
()
if
(
res
.
code
===
1000
)
{
message
.
destroy
()
let
sessionKey
=
`
${
selectItem
.
id
}${
new
Date
().
getTime
()}
`
updateOrderInfo
(
buyOrderInfo
,
sessionKey
).
then
(()
=>
{
...
...
@@ -604,7 +603,9 @@ const PurchaseOrder: React.FC<PurchaseOrderPropsType> = (props) => {
</
div
>
<
div
className=
{
cx
(
styles
.
order_list_item_item
,
styles
.
count
)
}
>
<
InputNumber
disabled=
{
true
}
max=
{
childItem
.
stockCount
||
0
}
min=
{
childItem
.
commodityUnitPrice
.
commodity
.
minOrder
||
1
}
value=
{
childItem
.
count
}
onChange=
{
(
value
)
=>
handleCountChange
(
value
,
childItem
.
id
)
}
/>
<
div
className=
{
styles
.
stock
}
>
(库存
{
numFormat
(
childItem
.
stockCount
)
}{
childItem
.
commodityUnitPrice
.
commodity
.
unitName
}
)
</
div
>
<
div
className=
{
styles
.
stock
}
>
<
span
>
(库存
{
numFormat
(
childItem
.
stockCount
)
}{
childItem
.
commodityUnitPrice
.
commodity
.
unitName
}
)
</
span
>
</
div
>
</
div
>
<
div
className=
{
cx
(
styles
.
order_list_item_item
,
styles
.
amount
)
}
>
<
span
className=
{
styles
.
order_list_item_item_price
}
>
{
priceFormat
(
computeItemPrice
(
childItem
.
commodityUnitPrice
?.
priceRange
,
childItem
.
count
))
}
</
span
>
...
...
src/pages/systemSetting/collection/index.tsx
View file @
97df3754
...
...
@@ -15,7 +15,7 @@ const Collection: React.FC = () => {
return
(
<
PageHeaderWrapper
>
<
div
className=
{
styles
.
collection_wrap
}
>
<
Tabs
defaultActiveKey=
"
commodity
"
className=
{
styles
.
collection_tabs
}
>
<
Tabs
defaultActiveKey=
"
shops
"
className=
{
styles
.
collection_tabs
}
>
<
TabPane
tab=
"商品收藏"
key=
"commodity"
>
<
Commodity
/>
</
TabPane
>
...
...
src/pages/systemSetting/collection/shops.tsx
View file @
97df3754
import
React
from
'react'
import
React
,
{
useEffect
,
useState
}
from
'react'
import
cx
from
'classnames'
import
{
Rate
,
Pagination
}
from
'antd'
import
{
StarFilled
}
from
'@ant-design/icons'
import
shop_icon
from
'@/assets/imgs/shop_icon.png'
import
credit_icon
from
'@/assets/imgs/credit_icon.png'
import
{
PublicApi
}
from
'@/services/api'
import
styles
from
'./index.less'
const
Shops
:
React
.
FC
=
()
=>
{
const
[
list
,
setList
]
=
useState
([])
const
[
current
,
setCurrent
]
=
useState
<
number
>
(
1
)
const
[
pageSize
,
setPageSize
]
=
useState
<
number
>
(
10
)
const
[
totalCount
,
setTotalCount
]
=
useState
<
number
>
(
0
)
let
shopList
=
Array
.
apply
({},
new
Array
(
7
))
useEffect
(()
=>
{
fetchCollectShopList
()
},
[
current
])
/**
* 获取收藏的店铺列表
*/
const
fetchCollectShopList
=
()
=>
{
let
param
=
{
current
,
pageSize
}
//@ts-ignore
PublicApi
.
getTemplateShopCollectList
(
param
).
then
(
res
=>
{
if
(
res
.
code
===
1000
)
{
setList
(
res
.
data
.
data
)
setTotalCount
(
res
.
data
.
totalCount
)
}
})
}
const
handleChange
=
(
page
)
=>
{
setCurrent
(
page
)
}
return
(
<>
<
div
className=
{
styles
.
shops_list
}
>
{
shopL
ist
.
map
((
item
,
index
)
=>
(
list
&&
l
ist
.
map
((
item
,
index
)
=>
(
<
div
className=
{
styles
.
shops_list_item
}
key=
{
`shops_list_item_${index}`
}
>
<
div
className=
{
cx
(
styles
.
shops_list_item_item
,
styles
.
morehalf
)
}
>
<
div
className=
{
styles
.
shop_header_info
}
>
...
...
@@ -61,9 +89,13 @@ const Shops: React.FC = () => {
}
</
div
>
<
div
className=
{
styles
.
pagination_wrap
}
>
<
Pagination
showSizeChanger=
{
false
}
defaultCurrent=
{
1
}
total=
{
100
}
/>
</
div
>
{
totalCount
>
0
&&
(
<
div
className=
{
styles
.
pagination_wrap
}
>
<
Pagination
showSizeChanger=
{
false
}
current=
{
current
}
total=
{
totalCount
}
pageSize=
{
pageSize
}
onChange=
{
handleChange
}
/>
</
div
>
)
}
</>
)
}
...
...
src/pages/transaction/purchaseOrder/components/StatusColors/index.tsx
View file @
97df3754
...
...
@@ -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 @
97df3754
...
...
@@ -14,7 +14,7 @@ export const baseOrderListColumns: any[] = [
render
:
(
text
,
record
)
=>
{
// 查看订单, 需根据状态显示不同schema
return
<
EyePreview
url=
{
`/memberCenter/tranactionAbility/purchaseOrder/orderPreview?page_type=-1&id=${record.id}&preview=1`
}
>
{
text
}
{
text
}
</
EyePreview
>
},
ellipsis
:
true
,
...
...
@@ -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 @
97df3754
...
...
@@ -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 @
97df3754
...
...
@@ -98,7 +98,7 @@ export const registerStep0Schema: ISchema = {
}
}
},
}
}
...
...
src/services/api.ts
View file @
97df3754
...
...
@@ -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 @
97df3754
...
...
@@ -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