Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
J
jinfa-platform
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
黄庭坚
jinfa-platform
Commits
430becc4
Commit
430becc4
authored
Nov 12, 2020
by
前端-钟卫鹏
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'dev' into test
parents
b54c0c37
4442f6d2
Show whitespace changes
Inline
Side-by-side
Showing
29 changed files
with
725 additions
and
134 deletions
+725
-134
msg_platform.png
src/assets/imgs/msg_platform.png
+0
-0
msg_system.png
src/assets/imgs/msg_system.png
+0
-0
MenuSlider.tsx
src/layouts/components/MenuSlider.tsx
+8
-0
RightContent.tsx
src/layouts/components/RightContent.tsx
+31
-1
index.less
...erService/exchangeManage/components/DetailInfo/index.less
+0
-0
index.tsx
...terService/exchangeManage/components/DetailInfo/index.tsx
+348
-0
index.tsx
...pages/afterService/exchangeManage/exchangeQuery/index.tsx
+7
-5
priceAttributeForm.tsx
...commodity/products/addProductsItem/priceAttributeForm.tsx
+1
-1
toOrderSubmitDetail.tsx
src/pages/logistics/logisticsSubmit/toOrderSubmitDetail.tsx
+6
-6
index.tsx
...dSettle/amountAccountManage/memberAccountManage/index.tsx
+6
-6
index.tsx
...pages/payandSettle/capitalAccounts/accountLists/index.tsx
+6
-6
PositionSetting.tsx
src/pages/repositories/components/PositionSetting.tsx
+1
-1
index.tsx
src/pages/systemSetting/message/index.tsx
+44
-47
useOrderDetail.tsx
...ages/transaction/_public/order/effects/useOrderDetail.tsx
+12
-5
index.less
src/pages/transaction/components/orderPayModal/index.less
+50
-0
index.tsx
src/pages/transaction/components/orderPayModal/index.tsx
+145
-15
index.tsx
src/pages/transaction/components/orderPayTabs/index.tsx
+10
-3
index.tsx
src/pages/transaction/components/orderProductTable/index.tsx
+1
-1
index.tsx
...es/transaction/components/saleOrderProductTable/index.tsx
+1
-1
productModal.tsx
...ages/transaction/enquiryOffer/components/productModal.tsx
+7
-4
detail.tsx
src/pages/transaction/enquiryOffer/toAddSubmit/detail.tsx
+3
-0
enquiryGoods.tsx
...on/goodsOffer/addEnquiryOrder/components/enquiryGoods.tsx
+6
-2
index.tsx
...transaction/purchaseOrder/orderCollect/constant/index.tsx
+1
-1
index.ts
...s/transaction/purchaseOrder/orderCollect/effects/index.ts
+3
-1
index.tsx
src/pages/transaction/purchaseOrder/orderCollect/index.tsx
+9
-1
useProductTable.tsx
...tion/purchaseOrder/orderCollect/model/useProductTable.tsx
+3
-1
index.tsx
.../transaction/purchaseOrder/readyPayOrder/detail/index.tsx
+14
-2
index.tsx
...transaction/purchaserEvaluation/received/detail/index.tsx
+1
-12
index.tsx
.../transaction/supplierEvaluation/received/detail/index.tsx
+1
-12
No files found.
src/assets/imgs/msg_platform.png
0 → 100644
View file @
430becc4
1012 Bytes
src/assets/imgs/msg_system.png
0 → 100644
View file @
430becc4
908 Bytes
src/layouts/components/MenuSlider.tsx
View file @
430becc4
...
...
@@ -74,6 +74,13 @@ const MenuSlider: React.FC<MenuSliderProps> = (props) => {
changeOpenKeys
(
keys
)
}
const
clickMenuItem
=
({
item
,
key
,
keyPath
,
domEvent
})
=>
{
// 对比url和点击项的key 相同的话重载页面
if
(
key
===
currentSelectKey
[
currentSelectKey
.
length
-
1
])
{
window
.
location
.
reload
()
}
}
return
<>
<
OuterSider
{
...
props
}
/>
<
Sider
theme=
"light"
className=
"menu_sider"
collapsed=
{
props
.
collapseState
}
>
...
...
@@ -87,6 +94,7 @@ const MenuSlider: React.FC<MenuSliderProps> = (props) => {
selectedKeys=
{
currentSelectKey
}
openKeys=
{
openKeys
}
mode=
"inline"
onClick=
{
clickMenuItem
}
>
{
menuItemsCache
...
...
src/layouts/components/RightContent.tsx
View file @
430becc4
import
{
Tooltip
}
from
'antd'
;
import
{
BellOutlined
,
CustomerServiceOutlined
}
from
'@ant-design/icons'
;
import
React
from
'react'
;
import
React
,
{
useCallback
,
useRef
,
useLayoutEffect
}
from
'react'
;
// import { connect, ConnectProps } from 'umi';
// import { ConnectState } from '@/models/connect';
import
Avatar
from
'./AvatarDropdown'
;
...
...
@@ -9,6 +9,7 @@ import Location from './Location';
import
Roles
from
'./Roles'
;
import
styles
from
'../styles/RightContent.less'
;
import
{
Link
}
from
'umi'
;
import
{
getAuth
}
from
'@/utils/auth'
// export type SiderTheme = 'light' | 'dark';
// export interface GlobalHeaderRightProps extends Partial<ConnectProps> {
...
...
@@ -25,6 +26,35 @@ const GlobalHeaderRight: React.SFC<{}> = (props) => {
// className = `${styles.right} ${styles.dark}`;
// }
const
userInfo
=
getAuth
()
const
ws
=
useRef
<
WebSocket
|
null
>
(
null
);
const
webSocketInit
=
useCallback
(()
=>
{
console
.
log
(
ws
.
current
)
if
(
!
ws
.
current
||
ws
.
current
.
readyState
===
3
)
{
ws
.
current
=
new
WebSocket
(
`ws://10.0.0.25:8100/report/websocket?memberId=
${
userInfo
.
memberId
}
&roleId=
${
userInfo
.
memberRoleId
}
`
);
ws
.
current
.
onopen
=
(
e
)
=>
{
console
.
log
(
e
)
}
ws
.
current
.
onmessage
=
(
e
)
=>
{
console
.
log
(
e
)
};
ws
.
current
.
onclose
=
(
e
)
=>
{
console
.
log
(
"关闭连接"
)
}
ws
.
current
.
onerror
=
(
e
)
=>
{
console
.
log
(
"socket 出错"
)
}
}
},
[
ws
]);
useLayoutEffect
(()
=>
{
webSocketInit
();
return
()
=>
{
ws
.
current
?.
close
();
};
},
[
ws
,
webSocketInit
]);
return
(
<
div
className=
{
className
}
>
<
Link
to=
'/'
style=
{
{
color
:
'rgba(0, 0, 0, 0.85)'
}
}
>
返回商城
</
Link
>
...
...
src/pages/afterService/exchangeManage/components/DetailInfo/index.less
0 → 100644
View file @
430becc4
src/pages/afterService/exchangeManage/components/DetailInfo/index.tsx
0 → 100644
View file @
430becc4
import
React
,
{
Suspense
,
useEffect
,
useState
}
from
'react'
;
import
{
PageHeader
,
Descriptions
,
Card
,
Spin
,
Button
,
Row
,
Col
,
Badge
,
Switch
,
message
,
}
from
'antd'
;
import
{
FormOutlined
}
from
'@ant-design/icons'
;
import
{
PageHeaderWrapper
}
from
'@ant-design/pro-layout'
;
import
{
history
}
from
'umi'
;
import
{
PublicApi
}
from
'@/services/api'
;
import
{
GetAsReturnGoodsGetDetailBySupplierResponse
}
from
'@/services/AfterServiceApi'
;
import
{
CREDIT_INNER_STATUS
,
CREDIT_OUTER_STATUS
,
CREDIT_STATUS
}
from
'@/constants'
;
import
{
normalizeFiledata
,
FileData
,
findLastIndexFlowState
}
from
'@/utils'
;
import
AvatarWrap
from
'@/components/AvatarWrap'
;
import
StatusTag
from
'@/components/StatusTag'
;
import
EyePreview
from
'@/components/EyePreview'
;
import
AuditProcess
from
'@/components/AuditProcess'
;
import
{
EditableColumns
}
from
'@/components/PolymericTable/interface'
;
import
ReturnInfoDrawer
from
'../../../components/ReturnInfoDrawer'
;
import
{
}
from
'../../../constants'
;
const
ProductList
=
React
.
lazy
(()
=>
import
(
'../../../components/ProductList'
));
const
ReturnInfo
=
React
.
lazy
(()
=>
import
(
'../../../components/ReturnInfo'
));
const
ReturnDetailInfo
=
React
.
lazy
(()
=>
import
(
'../../../components/ReturnDetailInfo'
));
const
FileList
=
React
.
lazy
(()
=>
import
(
'../../../components/FileList'
));
const
ReturnAddressInfo
=
React
.
lazy
(()
=>
import
(
'../../../components/ReturnAddressInfo'
));
const
Score
=
React
.
lazy
(()
=>
import
(
'../../../components/Score'
));
const
OuterCirculationRecord
=
React
.
lazy
(()
=>
import
(
'../../../components/OuterCirculationRecord'
));
interface
DetailInfoProps
{
// 记录id
id
:
string
;
// 是否是编辑的
isEdit
?:
boolean
;
// 历史记录目标路径
target
?:
string
;
// 头部右侧拓展
headExtra
?:
React
.
ReactNode
;
};
const
DetailInfo
:
React
.
FC
<
DetailInfoProps
>
=
({
id
,
isEdit
=
false
,
target
,
headExtra
=
null
,
})
=>
{
const
[
detailInfo
,
setDetailInfo
]
=
useState
<
GetAsReturnGoodsGetDetailBySupplierResponse
>
(
null
);
const
[
infoLoading
,
setInfoloading
]
=
useState
(
false
);
const
[
visibleOrderDetial
,
setVisibleReturnInfo
]
=
useState
<
boolean
>
(
false
);
const
handleCheckOrderDetial
=
record
=>
{
setVisibleReturnInfo
(
true
);
};
const
handleReturn
=
record
=>
{
if
(
!
isEdit
)
{
return
;
}
console
.
log
(
'否后退货'
,
record
)
};
const
productColumns
:
EditableColumns
[]
=
[
{
title
:
'订单号'
,
dataIndex
:
'orderNo'
,
render
:
(
text
,
record
)
=>
(
<
EyePreview
url=
{
`${target ? target : '/memberCenter/payandSettle/creditApplication/quotaPrSubmit/detail'}?id=${record.id}`
}
>
{
text
}
</
EyePreview
>
),
},
{
title
:
'ID'
,
dataIndex
:
'id'
,
align
:
'center'
,
},
{
title
:
'商品名称'
,
dataIndex
:
'productName'
,
align
:
'center'
,
},
{
title
:
'品类'
,
dataIndex
:
'category'
,
align
:
'center'
,
},
{
title
:
'品牌'
,
dataIndex
:
'brand'
,
align
:
'center'
,
},
{
title
:
'单位'
,
dataIndex
:
'unit'
,
align
:
'center'
,
},
{
title
:
'采购数量'
,
dataIndex
:
'quantity'
,
align
:
'center'
,
},
{
title
:
'采购单价'
,
dataIndex
:
'price'
,
align
:
'center'
,
},
{
title
:
'采购金额'
,
dataIndex
:
'amount'
,
align
:
'center'
,
},
{
title
:
'已支付金额'
,
dataIndex
:
'payAmount'
,
align
:
'center'
,
},
{
title
:
'退货数量'
,
dataIndex
:
'num'
,
align
:
'center'
,
},
{
title
:
'退货金额'
,
dataIndex
:
'returnAmount'
,
align
:
'center'
,
},
{
title
:
'是否退货'
,
dataIndex
:
'status'
,
align
:
'center'
,
render
:
(
text
,
record
)
=>
(
<>
{
!
isEdit
?
(
text
)
:
(
<
Switch
checked=
{
text
}
onChange=
{
()
=>
handleReturn
(
record
)
}
/>
)
}
</>
),
},
{
title
:
'操作'
,
dataIndex
:
'option'
,
align
:
'center'
,
render
:
(
text
,
record
)
=>
(
<>
<
Button
type=
"link"
onClick=
{
()
=>
handleCheckOrderDetial
(
record
)
}
>
查看详情
</
Button
>
</>
),
},
];
// 获取退货申请详情
const
getDetailInfo
=
()
=>
{
if
(
!
id
)
{
return
;
}
setInfoloading
(
true
);
PublicApi
.
getAsReturnGoodsGetDetailBySupplier
({
returnId
:
id
,
}).
then
(
res
=>
{
if
(
res
.
code
===
1000
)
{
setDetailInfo
(
res
.
data
);
}
}).
finally
(()
=>
{
setInfoloading
(
false
);
});
};
useEffect
(()
=>
{
getDetailInfo
();
},
[]);
return
(
<
Spin
spinning=
{
infoLoading
}
>
<
PageHeaderWrapper
style=
{
{
padding
:
24
,
}
}
title=
{
<>
<
PageHeader
style=
{
{
padding
:
'0'
}
}
onBack=
{
()
=>
history
.
goBack
()
}
title=
{
<
AvatarWrap
info=
{
{
aloneTxt
:
'单'
,
name
:
`申请单号:${detailInfo?.applyNo}`
,
}
}
/>
}
extra=
{
(
<>
{
headExtra
}
</>
)
}
>
<
Descriptions
size=
"small"
column=
{
3
}
style=
{
{
padding
:
'0 32px'
,
}
}
>
<
Descriptions
.
Item
label=
"申请单摘要:"
>
{
detailInfo
?.
applyAbstract
}
</
Descriptions
.
Item
>
<
Descriptions
.
Item
label=
"采购会员"
>
{
detailInfo
?.
consumerName
}
</
Descriptions
.
Item
>
<
Descriptions
.
Item
label=
"单据时间"
>
{
detailInfo
?.
applyTime
}
</
Descriptions
.
Item
>
<
Descriptions
.
Item
label=
"外部状态"
>
<
StatusTag
type=
"success"
title=
{
'售后完成'
}
/>
</
Descriptions
.
Item
>
<
Descriptions
.
Item
label=
"内部状态"
>
<
Badge
color=
{
'#41CC9E'
}
text=
{
'已确认售后完成'
}
/>
</
Descriptions
.
Item
>
</
Descriptions
>
</
PageHeader
>
</>
}
>
<
Row
gutter=
{
[
24
,
24
]
}
>
<
Col
span=
{
24
}
>
<
Suspense
fallback=
{
null
}
>
<
AuditProcess
outerVerifySteps=
{
detailInfo
&&
detailInfo
.
outerTaskList
?
detailInfo
.
outerTaskList
.
map
(
item
=>
({
step
:
item
.
step
,
stepName
:
item
.
taskName
,
roleName
:
item
.
roleName
,
status
:
item
.
isExecute
?
'finish'
:
'wait'
,
}))
:
[]
}
outerVerifyCurrent=
{
findLastIndexFlowState
(
detailInfo
?.
outerTaskList
)
}
innerVerifySteps=
{
detailInfo
&&
detailInfo
.
innerTaskList
?
detailInfo
.
innerTaskList
.
map
(
item
=>
({
step
:
item
.
step
,
stepName
:
item
.
taskName
,
roleName
:
item
.
roleName
,
status
:
item
.
isExecute
?
'finish'
:
'wait'
,
}))
:
[]
}
innerVerifyCurrent=
{
findLastIndexFlowState
(
detailInfo
?.
innerTaskList
)
}
/>
</
Suspense
>
</
Col
>
<
Col
span=
{
24
}
>
<
Suspense
fallback=
{
null
}
>
<
ProductList
title=
"退货商品"
columns=
{
productColumns
}
dataSource=
{
[
{
id
:
1
,
applyNo
:
'123'
,
},
]
}
/>
</
Suspense
>
</
Col
>
<
Col
span=
{
24
}
>
<
Suspense
fallback=
{
null
}
>
<
ReturnInfo
received=
{
[]
}
deliver=
{
[
{
id
:
1
,
orderNo
:
'123'
,
childData
:
[],
},
]
}
/>
</
Suspense
>
</
Col
>
<
Col
span=
{
24
}
>
<
Suspense
fallback=
{
null
}
>
<
ReturnDetailInfo
dataSource=
{
[
{
id
:
1
,
orderNo
:
'123'
,
},
]
}
/>
</
Suspense
>
</
Col
>
<
Col
span=
{
24
}
>
<
Row
gutter=
{
24
}
>
<
Col
span=
{
6
}
>
<
Suspense
fallback=
{
null
}
>
<
FileList
/>
</
Suspense
>
</
Col
>
<
Col
span=
{
12
}
>
<
Suspense
fallback=
{
null
}
>
<
ReturnAddressInfo
isEdit=
{
isEdit
}
/>
</
Suspense
>
</
Col
>
<
Col
span=
{
6
}
>
<
Suspense
fallback=
{
null
}
>
<
Score
/>
</
Suspense
>
</
Col
>
</
Row
>
</
Col
>
<
Col
span=
{
24
}
>
<
Suspense
fallback=
{
null
}
>
<
OuterCirculationRecord
dataSource=
{
[]
}
/>
</
Suspense
>
</
Col
>
</
Row
>
<
ReturnInfoDrawer
visible=
{
visibleOrderDetial
}
onClose=
{
()
=>
setVisibleReturnInfo
(
false
)
}
/>
</
PageHeaderWrapper
>
</
Spin
>
);
};
export
default
DetailInfo
;
\ No newline at end of file
src/pages/afterService/exchangeManage/exchangeQuery/index.tsx
View file @
430becc4
...
...
@@ -2,7 +2,7 @@
* @Author: XieZhiXiong
* @Date: 2020-11-05 14:25:41
* @LastEditors: XieZhiXiong
* @LastEditTime: 2020-11-1
1 15:24:34
* @LastEditTime: 2020-11-1
2 09:40:11
* @Description: 退货申请单查询
*/
import
React
,
{
useState
,
useRef
}
from
'react'
;
...
...
@@ -43,7 +43,7 @@ const ExchangeQuery: React.FC = () => {
render
:
(
text
,
record
)
=>
(
<>
<
EyePreview
url=
{
`/memberCenter/afterService/
returnManage/return
Query/detail?id=${record.id}`
}
url=
{
`/memberCenter/afterService/
exchangeManage/exchange
Query/detail?id=${record.id}`
}
>
{
text
}
</
EyePreview
>
...
...
@@ -107,9 +107,11 @@ const ExchangeQuery: React.FC = () => {
// });
return
Promise
.
resolve
({
totalCount
:
10
,
data
:
{
data
:
[
{
applyNo
:
'123'
,
},
}
],
});
};
...
...
@@ -153,7 +155,7 @@ const ExchangeQuery: React.FC = () => {
<
Card
>
<
StandardTable
tableProps=
{
{
rowKey
:
'
id
'
,
rowKey
:
'
applyNo
'
,
}
}
columns=
{
columns
}
currentRef=
{
ref
}
...
...
src/pages/commodity/products/addProductsItem/priceAttributeForm.tsx
View file @
430becc4
...
...
@@ -564,7 +564,7 @@ const PriceAttributeForm: React.FC<Iprops> = (props) => {
)
let
result
=
range
.
map
(
Number
).
reduce
((
a
,
b
)
=>
{
if
(
a
<
b
)
return
b
})
if
(
!
result
)
throw
new
Error
(
'请正确输入阶梯数量范围'
);
if
(
range
[
0
]
!==
minOrderNumber
)
throw
new
Error
(
'阶段的起始值必须为最小起订数'
);
if
(
Number
(
range
[
0
])
!==
Number
(
minOrderNumber
)
)
throw
new
Error
(
'阶段的起始值必须为最小起订数'
);
callback
()
}
}
catch
(
err
)
{
...
...
src/pages/logistics/logisticsSubmit/toOrderSubmitDetail.tsx
View file @
430becc4
...
...
@@ -304,7 +304,7 @@ const Deatail: React.FC<{}> = () => {
if
(
query
.
orderId
)
{
PublicApi
.
getOrderPurchaseOrderDetails
({
id
:
query
.
orderId
}).
then
(
res
=>
{
if
(
res
.
code
===
1000
)
{
console
.
log
(
res
.
data
,
'查询销售订单详情'
)
actions
.
setFieldValue
(
'receiverName'
,
res
.
data
.
receiverName
)
}
})
//发货单号
...
...
@@ -595,7 +595,7 @@ const Deatail: React.FC<{}> = () => {
*/
const
handleOnOK
=
(
type
,
values
,
params
)
=>
{
console
.
log
(
type
,
values
,
'参数:'
,
params
)
let
{
id
,
orderNo
,
deliveryAddresId
,
fullAddress
,
memberName
}
=
values
[
0
]
let
{
id
,
orderNo
,
deliveryAddresId
,
fullAddress
,
memberName
,
invoicesNo
,
receiverName
}
=
values
[
0
]
switch
(
type
)
{
case
1
:
//订单
setrelevanceType
(
params
.
orderType
)
//订单类型
...
...
@@ -620,8 +620,8 @@ const Deatail: React.FC<{}> = () => {
case
2
:
//发货单
// memberName 收货方
setShipmentOrderID
(
id
)
actions
.
setFieldValue
(
'shipmentOrderCode'
,
order
No
)
actions
.
setFieldValue
(
"receiverName"
,
memb
erName
)
actions
.
setFieldValue
(
'shipmentOrderCode'
,
invoices
No
)
actions
.
setFieldValue
(
"receiverName"
,
receiv
erName
)
actions
.
setFieldValue
(
'shipmentOrderId'
,
id
)
// 发货单id
actions
.
setFieldValue
(
"invoicesTypeId"
,
1
)
//发货单
actions
.
setFieldValue
(
"receiverAddressId"
,
deliveryAddresId
)
...
...
@@ -924,10 +924,10 @@ const Deatail: React.FC<{}> = () => {
</
TabPane
>
<
TabPane
key=
'tab-3'
tab=
'运费'
>
<
FormItem
labelAlign=
"left"
labelCol=
{
{
span
:
2
}
}
editable=
{
false
}
name=
"fregint"
label=
"运费"
>
<>
未报价
</>
<>
{
initialValues
.
freightPrice
||
'未报价'
}
</>
</
FormItem
>
<
FormItem
labelAlign=
"left"
labelCol=
{
{
span
:
2
}
}
editable=
{
false
}
name=
"fregint2"
label=
"结算方式"
>
<></>
<>
{
initialValues
.
freightPrice
||
'-'
}
</>
</
FormItem
>
</
TabPane
>
<
TabPane
key=
'tab-4'
tab=
'流转记录'
>
...
...
src/pages/payandSettle/amountAccountManage/memberAccountManage/index.tsx
View file @
430becc4
...
...
@@ -53,12 +53,12 @@ const AccountLists: React.FC<{}> = () => {
dataIndex
:
'memberRoleName'
,
key
:
'memberRoleName'
,
},
{
title
:
'会员等级'
,
dataIndex
:
'memberLevel'
,
key
:
'memberLevel'
,
render
:
(
t
,
r
)
=>
<
LevelBrand
level=
{
r
.
level
}
/>
},
//
{
//
title: '会员等级',
//
dataIndex: 'memberLevel',
//
key: 'memberLevel',
//
render: (t, r) => <LevelBrand level={r.level} />
//
},
{
title
:
'账户余额'
,
dataIndex
:
'accountBalance'
,
...
...
src/pages/payandSettle/capitalAccounts/accountLists/index.tsx
View file @
430becc4
...
...
@@ -43,12 +43,12 @@ const AccountLists: React.FC<{}> = () => {
dataIndex
:
'memberRoleName'
,
key
:
'memberRoleName'
,
},
{
title
:
'所属会员等级'
,
dataIndex
:
'memberLevel'
,
key
:
'memberLevel'
,
render
:
(
t
,
r
)
=>
<
LevelBrand
level=
{
r
.
memberLevel
}
/>
},
//
{
//
title: '所属会员等级',
//
dataIndex: 'memberLevel',
//
key: 'memberLevel',
//
render: (t, r) => <LevelBrand level={r.memberLevel} />
//
},
{
title
:
'会员等级类型'
,
dataIndex
:
'memberLevelType'
,
...
...
src/pages/repositories/components/PositionSetting.tsx
View file @
430becc4
...
...
@@ -401,7 +401,7 @@ const PositionSetting:React.FC<PositionSettingProps> = (props) => {
type
:
'string'
,
'x-component'
:
'ModalSearch'
,
'x-component-props'
:
{
placeholder
:
'请输入商品名称
/ID
'
,
placeholder
:
'请输入商品名称'
,
align
:
'flex-left'
,
},
},
...
...
src/pages/systemSetting/message/index.tsx
View file @
430becc4
import
React
from
'react'
;
import
React
,
{
useState
,
useEffect
}
from
'react'
;
import
{
history
}
from
'umi'
;
import
{
Button
,
Row
,
Col
,
Card
,
List
,
Avatar
}
from
'antd'
;
import
{
Card
,
List
,
Avatar
}
from
'antd'
;
import
styles
from
'./index.less'
import
{
PageHeaderWrapper
}
from
'@ant-design/pro-layout'
;
import
{
PlusOutlined
}
from
'@ant-design/icons'
;
import
StatusTag
from
'@/components/StatusTag'
;
import
{
PublicApi
}
from
'@/services/api'
;
import
moment
from
'moment'
;
import
msg_system
from
'@/assets/imgs/msg_system.png'
import
msg_platform
from
'@/assets/imgs/msg_platform.png'
const
Message
:
React
.
FC
<
{}
>
=
()
=>
{
const
[
dataSource
,
setDataSource
]
=
useState
<
any
>
([])
const
pagation
=
{
current
:
1
,
pageSize
:
10
,
}
useEffect
(()
=>
{
// @ts-ignore
async
function
init
()
{
const
data
=
await
getList
(
pagation
);
setDataSource
(
data
);
}
init
()
},
[])
const
data
=
[
{
id
:
1
,
icon
:
''
,
status
:
'success'
,
type
:
'系统消息'
,
title
:
'订单发货'
,
message
:
'订单发货,请注意查收,清单发货,请注意查收!'
,
time
:
'2015-15-05'
,
},
{
id
:
2
,
icon
:
''
,
status
:
'success'
,
type
:
'系统消息'
,
title
:
'订单收货'
,
message
:
'订单发货,请注意查收,清单发货,请注意查收!'
,
time
:
'2015-15-05'
,
},
{
id
:
3
,
icon
:
''
,
status
:
'primary'
,
type
:
'系统消息'
,
title
:
'系统消息'
,
message
:
'账户异常,请注意账户资金安全!'
,
time
:
'2015-15-05'
,
},
{
id
:
4
,
icon
:
''
,
status
:
'primary'
,
type
:
'系统消息'
,
title
:
'系统消息'
,
message
:
'账户支出300元,请注意账户资金安全!'
,
time
:
'2015-15-05'
,
},
];
const
getList
=
async
(
params
)
=>
{
///report/message/member/page
const
res
=
await
PublicApi
.
getReportMessageMemberPage
(
params
);
if
(
res
.
code
===
1000
)
{
return
res
.
data
}
return
{
totalCount
:
0
,
data
:
[]
}
}
const
handlePaginationChange
=
(
page
,
pageSize
)
=>
{
getList
({
page
,
pageSize
})
.
then
((
data
)
=>
{
setDataSource
(
data
);
})
}
const
renderMessage
=
(
data
)
=>
{
...
...
@@ -69,25 +68,23 @@ const Message: React.FC<{}> = () => {
>
<
List
itemLayout=
"horizontal"
dataSource=
{
data
}
dataSource=
{
data
Source
.
data
}
className=
{
styles
.
customList
}
pagination=
{
{
onChange
:
page
=>
{
console
.
log
(
page
);
},
onChange
:
handlePaginationChange
,
pageSize
:
10
,
size
:
"small"
,
showQuickJumper
:
true
,
total
:
4
,
total
:
dataSource
.
totalCount
,
showTotal
:
showTotal
}
}
renderItem=
{
item
=>
(
<
List
.
Item
>
<
List
.
Item
.
Meta
avatar=
{
<
Avatar
src=
{
item
.
icon
}
/>
}
avatar=
{
<
Avatar
src=
{
msg_system
}
/>
}
title=
{
renderMessage
(
item
)
}
/>
<
div
>
{
item
.
time
}
</
div
>
<
div
>
{
moment
(
item
.
createTime
).
format
(
'YYYY-MM-DD HH:mm:ss'
)
}
</
div
>
</
List
.
Item
>
)
}
/>
...
...
src/pages/transaction/_public/order/effects/useOrderDetail.tsx
View file @
430becc4
...
...
@@ -18,7 +18,8 @@ interface OrderDetailHookProps {
export
const
useOrderDetail
=
(
options
:
OrderDetailHookProps
)
=>
{
// 订单详情内容
const
[
formData
,
setFormData
]
=
useState
<
any
>
(
null
)
// 当前的支付信息id 默认第一个
const
[
currentPayInfoId
,
setCurrentPayInfoId
]
=
useState
<
any
>
(
null
)
// 支付信息列表
const
[
payList
,
setPaylist
]
=
useState
<
any
[]
>
([])
...
...
@@ -44,10 +45,14 @@ export const useOrderDetail = (options: OrderDetailHookProps) => {
if
(
id
)
{
const
fn
=
type
===
'purchaseOrder'
?
PublicApi
.
getOrderProcurementOrderDetails
:
PublicApi
.
getOrderPurchaseOrderDetails
fn
({
id
},
{
ctlType
:
"none"
}).
then
(
res
=>
{
if
(
res
.
code
===
1000
)
{
setFormData
(
res
.
data
)
const
{
code
,
data
,
message
:
msg
}
=
res
if
(
code
===
1000
)
{
setFormData
(
data
)
if
(
data
.
paymentInformationResponses
.
length
>
0
){
setCurrentPayInfoId
(
data
.
paymentInformationResponses
[
0
].
id
)
}
}
else
{
message
.
error
(
res
.
message
)
message
.
error
(
msg
)
}
})
}
...
...
@@ -67,9 +72,11 @@ export const useOrderDetail = (options: OrderDetailHookProps) => {
// 需共享的状态
const
formContext
=
{
data
:
formData
,
currentPayInfoId
,
payList
,
ctl
:
{
setData
:
setFormData
setData
:
setFormData
,
setPayId
:
setCurrentPayInfoId
,
},
reloadFormData
}
...
...
src/pages/transaction/components/orderPayModal/index.less
View file @
430becc4
...
...
@@ -51,3 +51,52 @@
font-size: 16px;
color: #E63F3B;
}
// 支付密码
.payContainer {
margin: 90px 0;
text-align: center;
.title {
font-size: 14px;
font-weight: 400;
color: #6B778C;
margin-bottom: 24px;
}
.inputBox {
position: relative;
width: 336px;
margin: 0 auto;
display: flex;
justify-content: space-between;
font-weight: bold;
.codeItem {
width: 48px;
height: 48px;
line-height: 48px;
text-align: center;
background: #FFFFFF;
border: 1px solid #EBECF0;
font-size: 26px;
}
.codeInput {
height: 48px;
position: absolute;
outline: none;
color: transparent;
caret-color: #EBECF0;
font-size: 28px;
padding: 0 14px;
letter-spacing: 48px;
width: 336px;
border: none;
background: none;
-webkit-appearance: none;
&:focus {
border: none!important;
box-shadow: 0 0 0 0 #fff;
}
}
}
}
\ No newline at end of file
src/pages/transaction/components/orderPayModal/index.tsx
View file @
430becc4
import
React
,
{
useState
,
useEffect
,
useContext
,
useRef
}
from
'react'
import
{
Modal
,
Steps
,
Row
,
Col
,
Radio
,
message
,
Upload
,
Button
}
from
'antd'
import
{
Modal
,
Steps
,
Row
,
Col
,
Radio
,
message
,
Upload
,
Button
,
Input
}
from
'antd'
import
style
from
'./index.less'
import
{
OrderDetailContext
}
from
'../../_public/order/context'
import
cx
from
'classnames'
...
...
@@ -70,13 +70,16 @@ const OrderPayModal: React.FC<OrderPayModalProps> = (props) => {
const
formRef
=
useRef
<
any
>
({})
const
{
id
}
=
usePageStatus
()
const
{
data
,
payList
}
=
useContext
(
OrderDetailContext
)
const
{
data
,
payList
,
currentPayInfoId
}
=
useContext
(
OrderDetailContext
)
// const transformPayList: any = data ? transformPayData(data.paymentInformationResponses, payList) : []
const
transformPayList
:
any
=
data
?
formatting
(
payList
,
"payType"
)
:
[]
const
{
run
,
loading
}
=
useHttpRequest
(
PublicApi
.
postOrderPendingOrderPay
)
const
[
visible
,
setVisible
]
=
useState
(
false
)
const
[
checked
,
setChecked
]
=
useState
<
any
>
({})
const
[
current
,
setCurrent
]
=
useState
(
0
)
// 1线下支付方式 2授信支付
const
[
current
,
setCurrent
]
=
useState
(
0
)
// 0选择方式 1线下支付方式 2授信支付 3余额支付 1000清除
const
[
payStep
,
setPayStep
]
=
useState
(
0
)
// 支付模态框的步骤 0选方式 1下一步的具体操作 2输入支付密码
const
[
code
,
setCode
]
=
useState
(
''
)
const
[
number
,
setNumber
]
=
useState
([
0
,
1
,
2
,
3
,
4
,
5
])
const
{
currentRef
,
confirm
}
=
props
useEffect
(()
=>
{
if
(
currentRef
)
{
...
...
@@ -90,6 +93,7 @@ const OrderPayModal: React.FC<OrderPayModalProps> = (props) => {
useEffect
(()
=>
{
if
(
!
visible
)
{
setCurrent
(
0
)
setPayStep
(
0
)
setChecked
(
null
)
}
},
[
visible
])
...
...
@@ -99,39 +103,63 @@ const OrderPayModal: React.FC<OrderPayModalProps> = (props) => {
if
(
checked
.
id
)
{
if
(
checked
.
id
===
5
)
{
// 线下支付
setCurrent
(
1
)
setPayStep
(
1
)
}
else
if
(
checked
.
id
===
6
)
{
// 授信额度支付
setCurrent
(
2
)
setPayStep
(
1
)
}
else
if
(
checked
.
id
===
4
)
{
setCurrent
(
3
)
setPayStep
(
1
)
}
else
{
message
.
error
(
'暂只支持线下支付
和授信额度
支付方式'
)
message
.
error
(
'暂只支持线下支付
、授信额度支付、余额
支付方式'
)
}
}
else
{
message
.
error
(
'请先选择支付方式'
)
}
return
;
}
// 开始提交数据
// console.log(confirm, current, payStep, '119')
// 开始提交线下支付数据
if
(
current
===
1
)
{
const
payOrderUrls
=
formRef
.
current
.
urlList
const
paymentInformation
Id
=
checked
.
id
const
checked
Id
=
checked
.
id
if
(
!
payOrderUrls
||
payOrderUrls
.
length
===
0
)
{
message
.
error
(
'请先上传凭证'
)
return
;
}
if
(
!
paymentInformation
Id
)
{
if
(
!
checked
Id
)
{
message
.
error
(
'未选择支付方式'
)
return
;
}
// 当前选中的支付信息
let
PayInfoObj
=
data
.
paymentInformationResponses
.
filter
(
item
=>
item
.
id
===
Number
(
currentPayInfoId
))[
0
]
const
params
=
{
id
:
Number
(
id
),
payOrderUrls
:
payOrderUrls
.
join
(
','
),
paymentInformationId
paymentInformationId
:
PayInfoObj
.
id
,
payTypeId
:
PayInfoObj
.
channel
,
// // 预留
// payPassword,
// remark
}
const
{
code
}
=
await
run
(
params
)
if
(
code
===
1000
)
{
history
.
goBack
()
}
}
else
if
(
current
===
2
)
{
// 开始提交授信支付数据 (需要输入支付密码)
console
.
log
(
'开始提交授信支付数据'
)
setPayStep
(
2
)
setCurrent
(
1000
)
}
else
if
(
current
===
3
)
{
// 开始提交余额支付数据 (需要输入支付密码)
console
.
log
(
'开始提交余额支付数据'
)
setPayStep
(
2
)
setCurrent
(
1000
)
}
confirm
&&
confirm
()
}
...
...
@@ -140,6 +168,7 @@ const OrderPayModal: React.FC<OrderPayModalProps> = (props) => {
setVisible
(
false
)
}
else
{
setCurrent
(
0
)
setPayStep
(
0
)
}
}
...
...
@@ -149,6 +178,57 @@ const OrderPayModal: React.FC<OrderPayModalProps> = (props) => {
formRef
.
current
.
urlList
=
urlList
}
const
handleBack
=
()
=>
{
setCurrent
(
0
)
setPayStep
(
0
)
}
const
handleOk
=
()
=>
{
console
.
log
(
'ODEK'
)
handleCancel
()
}
const
onChange
=
(
e
)
=>
{
let
v
=
e
.
target
.
value
setCode
(
v
)
}
useEffect
(()
=>
{
console
.
log
(
code
)
},
[
code
])
const
renderModalFooter
=
()
=>
{
let
footer
=
null
;
if
(
current
){
if
(
payStep
===
1
){
footer
=
[
<
Button
key=
"back"
onClick=
{
handleBack
}
>
上一步
</
Button
>,
<
Button
key=
"submit"
type=
"primary"
loading=
{
loading
}
onClick=
{
handleConfirm
}
>
确认
</
Button
>,
]
}
else
if
(
payStep
===
2
)
{
footer
=
[
<
Button
key=
"submit"
type=
"primary"
loading=
{
loading
}
onClick=
{
handleConfirm
}
style=
{
{
width
:
'100%'
}
}
>
确认支付
</
Button
>
]
}
}
else
{
footer
=
[
<
Button
key=
"back"
onClick=
{
handleCancel
}
>
取消
</
Button
>,
<
Button
key=
"submit"
type=
"primary"
loading=
{
loading
}
onClick=
{
handleConfirm
}
>
下一步
</
Button
>,
]
}
return
footer
;
}
return
(
<
Modal
width=
{
704
}
...
...
@@ -156,9 +236,12 @@ const OrderPayModal: React.FC<OrderPayModalProps> = (props) => {
visible=
{
visible
}
onOk=
{
handleConfirm
}
onCancel=
{
handleCancel
}
cancelText=
{
current
===
0
?
'取消'
:
'上一步'
}
okText=
{
current
===
0
?
'下一步'
:
'确认'
}
confirmLoading=
{
loading
}
footer=
{
renderModalFooter
()
}
destroyOnClose=
{
true
}
maskClosable=
{
false
}
// cancelText={current === 0 ? '取消' : '上一步'}
// okText={current === 0 ? '下一步' : '确认'}
// confirmLoading={loading}
>
{
current
===
0
&&
transformPayList
&&
Object
.
entries
(
transformPayList
).
map
(([
key
,
value
])
=>
<
Row
key=
{
key
}
style=
{
{
marginBottom
:
24
}
}
>
...
...
@@ -174,7 +257,7 @@ const OrderPayModal: React.FC<OrderPayModalProps> = (props) => {
</
Col
>
</
Row
>)
}
{
/* 线下支付线上确认 */
}
{
current
===
1
&&
<
div
>
...
...
@@ -195,7 +278,7 @@ const OrderPayModal: React.FC<OrderPayModalProps> = (props) => {
</
Upload
>
</
div
>
}
{
/* 授信支付 */
}
{
current
===
2
&&
<
div
>
...
...
@@ -234,6 +317,53 @@ const OrderPayModal: React.FC<OrderPayModalProps> = (props) => {
</
p
>
</
div
>
}
{
/* 余额支付 */
}
{
current
===
3
&&
<
div
>
<
p
>
账户余额
</
p
>
<
p
>
<
span
className=
{
style
.
title
}
>
账户可用余额(元):
</
span
>
<
span
className=
{
style
.
amount
}
>
500,000.00
</
span
>
</
p
>
<
p
>
<
span
className=
{
style
.
title
}
>
本次需支付(元):
</
span
>
<
span
className=
{
cx
(
style
.
amount
,
style
.
amount2
)
}
>
48,000.00
</
span
>
</
p
>
</
div
>
}
{
/* 输入支付密码 payStep===2 */
}
{
payStep
===
2
&&
<
div
className=
{
style
.
payContainer
}
>
<
p
className=
{
style
.
title
}
>
请输入支付密码
</
p
>
<
div
className=
{
style
.
inputBox
}
>
{
number
.
map
((
item
,
index
)
=>
<
div
className=
{
style
.
codeItem
}
key=
{
index
}
>
{
code
[
index
]
}
</
div
>)
}
<
Input
.
Password
className=
{
style
.
codeInput
}
value=
{
code
}
maxLength=
{
number
.
length
}
onChange=
{
onChange
}
visibilityToggle=
{
false
}
/>
</
div
>
</
div
>
}
</
Modal
>
)
...
...
src/pages/transaction/components/orderPayTabs/index.tsx
View file @
430becc4
...
...
@@ -17,7 +17,7 @@ const TabHeader = ({dataSource}) => {
<
div
className=
{
style
.
smallnumber
}
>
¥
{
dataSource
.
payPrice
||
0
}
</
div
>
</
Col
>
<
Col
>
<
StatusColors
status=
{
5
}
type=
'out'
/>
<
StatusColors
status=
{
dataSource
.
externalState
}
type=
'out'
/>
</
Col
>
</
Row
>
}
...
...
@@ -30,11 +30,18 @@ const payTextList = ["",
'授信支付'
,
'货到付款'
]
const
OrderPayTabs
:
React
.
FC
<
OrderPayTabsProps
>
=
(
props
)
=>
{
const
{
data
,
payList
}
=
useContext
(
OrderDetailContext
)
const
{
data
,
payList
,
ctl
}
=
useContext
(
OrderDetailContext
)
const
onChange
=
(
activeKey
)
=>
{
ctl
.
setPayId
(
activeKey
)
}
return
(
<
MellowCard
style=
{
{
marginTop
:
24
}
}
bordered=
{
false
}
>
<
Tabs
defaultActiveKey=
'1'
>
<
Tabs
defaultActiveKey=
'1'
onChange=
{
onChange
}
>
{
data
.
paymentInformationResponses
&&
data
.
paymentInformationResponses
.
map
(
v
=>
<
TabPane
key=
{
v
.
id
}
tab=
{
<
TabHeader
dataSource=
{
v
}
/>
}
>
<
Row
>
<
Col
className=
{
style
.
fontGray
}
span=
{
4
}
>
支付环节:
</
Col
>
...
...
src/pages/transaction/components/orderProductTable/index.tsx
View file @
430becc4
...
...
@@ -68,7 +68,7 @@ export const MoneyTotalBox = ({ dataSource, preview }) => {
// // 筛选配送方式为物流的商品并且使用了运费模板
// const logsiticsDataMaps = orderProductRequests.filter(v => v.logistics && v.logistics.useTemplate && v.logistics.deliveryType === 1)
// if (logsiticsDataMaps.length > 0) {
// PublicApi.postLogisticsFreight
RemoteAddDetail
({
// PublicApi.postLogisticsFreight
TemplateCalFreightPrice
({
// orderProductList: logsiticsDataMaps.map(v => ({
// templateId: v.templateId,
// weight: v.weight
...
...
src/pages/transaction/components/saleOrderProductTable/index.tsx
View file @
430becc4
...
...
@@ -107,7 +107,7 @@ export const MoneyTotalBox = ({ dataSource, isEditData }) => {
// 筛选配送方式为物流的商品并且使用了运费模板
const
logsiticsDataMaps
=
orderProductRequests
.
filter
(
v
=>
v
.
logistics
&&
v
.
logistics
.
useTemplate
&&
v
.
logistics
.
deliveryType
===
1
)
if
(
logsiticsDataMaps
.
length
>
0
)
{
PublicApi
.
postLogisticsFreight
RemoteAddDetail
({
PublicApi
.
postLogisticsFreight
TemplateCalFreightPrice
({
orderProductList
:
logsiticsDataMaps
.
map
(
v
=>
({
templateId
:
v
.
templateId
,
weight
:
v
.
weight
...
...
src/pages/transaction/enquiryOffer/components/productModal.tsx
View file @
430becc4
...
...
@@ -273,14 +273,14 @@ const comfirmDialog: React.FC<Params> = (props, { onRef }) => {
<
Tabs
defaultActiveKey=
'tab1'
tabPosition=
"left"
>
<
Tabs
.
TabPane
tab=
'基本信息'
key=
"tab-1"
>
<
Tabs
.
TabPane
tab=
'基本信息'
key=
"tab-1"
forceRender
>
<
Form
.
Item
label=
'对应需求单规格型号'
name=
'model'
initialValue=
{
props
.
initialValues
.
model
}
rules=
{
[
{
message
:
'请选择规格型号'
,
required
:
true
}
]
}
...
...
@@ -349,7 +349,7 @@ const comfirmDialog: React.FC<Params> = (props, { onRef }) => {
{
commodityAttributedataSource
.
length
>
0
&&
commodityAttributedataSource
.
map
((
item
:
any
)
=>
<>
<
TabPane
tab=
{
item
.
customerAttribute
.
name
}
key=
{
item
.
customerAttribute
.
name
}
>
<
TabPane
tab=
{
item
.
customerAttribute
.
name
}
key=
{
item
.
customerAttribute
.
name
}
forceRender
>
<
Space
key=
{
item
.
customerAttribute
.
id
}
direction=
"vertical"
size=
{
16
}
>
{
item
.
customerAttributeValueList
.
map
((
child
,
childIndex
)
=>
{
return
<
Badge
text=
{
child
.
value
}
key=
{
childIndex
}
status=
"default"
/>
...
...
@@ -361,13 +361,14 @@ const comfirmDialog: React.FC<Params> = (props, { onRef }) => {
}
<
Tabs
.
TabPane
tab=
'报价明细'
key=
"tab-7"
>
<
Tabs
.
TabPane
tab=
'报价明细'
key=
"tab-7"
forceRender
>
<
Form
.
Item
label=
'单位'
name=
'purchaseNuit'
initialValue=
{
props
.
initialValues
.
purchaseNuit
}
rules=
{
[
{
message
:
'请选择单位'
,
required
:
true
}
]
}
...
...
@@ -381,6 +382,7 @@ const comfirmDialog: React.FC<Params> = (props, { onRef }) => {
initialValue=
{
props
.
initialValues
.
purchaseQuantity
}
rules=
{
[
{
message
:
'请选择采购数量'
,
required
:
true
}
]
}
...
...
@@ -393,6 +395,7 @@ const comfirmDialog: React.FC<Params> = (props, { onRef }) => {
name=
'price'
rules=
{
[
{
message
:
'请输入报价单价'
,
required
:
true
}
]
}
...
...
src/pages/transaction/enquiryOffer/toAddSubmit/detail.tsx
View file @
430becc4
...
...
@@ -1008,6 +1008,7 @@ const Detail: React.FC<{}> = () => {
initialValue=
{
initialValues
.
quotationSummary
}
rules=
{
[
{
message
:
'请输入报价单摘要'
,
required
:
true
}
]
}
...
...
@@ -1021,6 +1022,7 @@ const Detail: React.FC<{}> = () => {
name=
'requisitionFormNo'
rules=
{
[
{
message
:
'请选择对应需求单号'
,
required
:
true
}
]
}
...
...
@@ -1098,6 +1100,7 @@ const Detail: React.FC<{}> = () => {
label=
"最小起订"
rules=
{
[
{
message
:
'请输入最小起订'
,
required
:
true
}
]
}
...
...
src/pages/transaction/goodsOffer/addEnquiryOrder/components/enquiryGoods.tsx
View file @
430becc4
...
...
@@ -47,7 +47,10 @@ const EnquiryGoods: React.FC<queryProps> = (props) => {
category
:
v
.
customerCategoryName
,
brand
:
v
.
brandName
,
unit
:
v
.
unitName
,
purchaseCount
:
1
purchaseCount
:
1
,
logistics
:
v
.
logistics
,
memberId
:
v
.
memberId
,
memberRoleId
:
v
.
memberRoleId
})
setinquiryGoods
(
inquiry
);
...
...
@@ -274,7 +277,8 @@ const EnquiryGoods: React.FC<queryProps> = (props) => {
confirm=
{
handleOkAddMember
}
cancel=
{
handleCancelAddMember
}
visible=
{
visibleChannelMember
}
resetModal=
{
{
destroyOnClose
:
true
,
forceRender
:
true
}
}
forceRender=
{
visibleChannelMember
}
resetModal=
{
{
destroyOnClose
:
true
}
}
columns=
{
columnsSetMember
}
rowSelection=
{
memberRowSelection
}
fetchTableData=
{
params
=>
fetchGoodsList
(
params
)
}
...
...
src/pages/transaction/purchaseOrder/orderCollect/constant/index.tsx
View file @
430becc4
...
...
@@ -9,7 +9,7 @@ import { PublicApi } from '@/services/api'
// @todo 后续需要优化, 样式,目录文件等。
const
PriceComp
=
(
props
)
=>
{
const
{
priceSection
=
{}
}
=
props
const
priceTransKeys
=
Object
.
keys
(
priceSection
)
const
priceTransKeys
=
Object
.
keys
(
priceSection
||
{}
)
// 出现0-0 表示没有单价区间范围
if
(
priceTransKeys
.
length
===
1
&&
priceTransKeys
[
0
]
===
'0-0'
)
{
return
<
span
style=
{
{
color
:
'#E63F3B'
}
}
>
{
'¥'
+
priceSection
[
priceTransKeys
[
0
]]
}
</
span
>
...
...
src/pages/transaction/purchaseOrder/orderCollect/effects/index.ts
View file @
430becc4
...
...
@@ -129,7 +129,7 @@ export const useOrderFormInitEffect = (ctx: ISchemaFormActions | ISchemaFormAsyn
assign
.
disabled
=
true
}
// 渠道(企业+个人)
if
(
auth
.
memberType
===
3
||
auth
.
memberType
===
4
&&
assign
.
value
<
10
)
{
if
(
(
auth
.
memberType
===
3
||
auth
.
memberType
===
4
)
&&
assign
.
value
<
10
)
{
assign
.
disabled
=
true
}
// 商城下单
...
...
@@ -145,6 +145,8 @@ export const useOrderFormInitEffect = (ctx: ISchemaFormActions | ISchemaFormAsyn
// }
return
assign
}).
sort
((
prev
,
next
)
=>
prev
.
disabled
?
prev
.
value
:
next
.
value
-
prev
.
value
)
console
.
log
(
state
.
props
.
enum
)
})
// query中存在modelType参数, 则是从其他页面跳转而来,需禁用其余query选项
...
...
src/pages/transaction/purchaseOrder/orderCollect/index.tsx
View file @
430becc4
...
...
@@ -65,7 +65,7 @@ export const MoneyTotalBox = registerVirtualBox('moneyTotalBox', props => {
// 筛选配送方式为物流的商品并且使用了运费模板
const
logsiticsDataMaps
=
data
.
filter
(
v
=>
v
.
logistics
&&
v
.
logistics
.
useTemplate
&&
v
.
logistics
.
deliveryType
===
1
)
if
(
logsiticsDataMaps
.
length
>
0
)
{
PublicApi
.
postLogisticsFreight
RemoteAddDetail
({
PublicApi
.
postLogisticsFreight
TemplateCalFreightPrice
({
orderProductList
:
logsiticsDataMaps
.
map
(
v
=>
({
templateId
:
v
.
logistics
.
templateId
,
weight
:
v
.
logistics
.
weight
...
...
@@ -209,6 +209,14 @@ const PurchaseOrderDetail:React.FC<PurchaseOrderDetailProps> = (props) => {
if
(
judgement
.
includes
(
false
)){
throw
new
Error
(
'请选择支付方式或者支付渠道'
)
}
// logistics render字段字符串化
params
.
orderProductRequests
=
params
.
orderProductRequests
.
map
(
item
=>
{
let
logs
:
any
=
{
...
item
.
logistics
,
render
:
JSON
.
stringify
(
item
.
logistics
.
render
)
};
return
{
...
item
,
logistics
:
logs
}
})
setBtnLoading
(
true
)
fnResult
=
id
?
await
PublicApi
.
postOrderProcurementOrderUpdate
({...
params
,
id
})
:
await
PublicApi
.
postOrderProcurementOrderAddReinsurancePolicy
(
params
)
break
;
...
...
src/pages/transaction/purchaseOrder/orderCollect/model/useProductTable.tsx
View file @
430becc4
...
...
@@ -76,12 +76,14 @@ export const useProductTable = (ctx: ISchemaFormActions | ISchemaFormAsyncAction
}
const
handleSave
=
row
=>
{
console
.
log
(
row
,
'row'
)
return
new
Promise
((
resolve
,
reject
)
=>
{
const
newData
=
[...
ctx
.
getFieldValue
(
'orderProductRequests'
)];
const
index
=
newData
.
findIndex
(
item
=>
row
.
id
===
item
.
id
);
const
item
=
newData
[
index
];
row
[
'money'
]
=
getUnitPriceTotal
(
row
)
row
[
'productId'
]
=
row
.
id
// 新增的时候接口字段id,commodityId 编辑的时候id,productId
row
[
'productId'
]
=
row
?.
commodityId
?
row
.
id
:
row
.
productId
newData
.
splice
(
index
,
1
,
{
...
item
,
...
row
,
...
...
src/pages/transaction/purchaseOrder/readyPayOrder/detail/index.tsx
View file @
430becc4
import
React
,
{
useState
,
useCallback
,
useRef
}
from
'react'
;
import
React
,
{
useState
,
useCallback
,
useRef
,
useContext
,
useEffect
}
from
'react'
;
import
{
OrderDetailContext
}
from
'../../../_public/order/context'
;
import
{
PublicApi
}
from
'@/services/api'
;
import
{
Button
}
from
'antd'
;
...
...
@@ -17,6 +17,17 @@ const ReadyConfirmContract: React.FC = () => {
payRef
.
current
.
setVisible
(
true
)
},
[])
const
renderPayPrice
=
()
=>
{
const
{
data
,
currentPayInfoId
}
=
formContext
if
(
data
){
if
(
data
.
paymentInformationResponses
.
length
>
0
){
let
obj
=
data
.
paymentInformationResponses
.
filter
(
item
=>
item
.
id
===
Number
(
currentPayInfoId
))[
0
]
if
(
obj
)
return
obj
.
payPrice
}
}
}
return
(
<
div
>
<
OrderDetailContext
.
Provider
value=
{
formContext
}
>
...
...
@@ -27,7 +38,8 @@ const ReadyConfirmContract: React.FC = () => {
</
Button
>
<
div
style=
{
{
textAlign
:
'right'
}
}
>
<
p
style=
{
{
marginTop
:
12
,
fontSize
:
12
,
color
:
'#6B778C'
}
}
>
本次需支付
</
p
>
{
formContext
.
data
&&
<
p
>
¥
{
formContext
.
data
.
sumPrice
}
</
p
>
}
{
/* { formContext.data && <p>¥{formContext.data.sumPrice}</p> } */
}
{
formContext
.
data
&&
<
p
>
¥
{
renderPayPrice
()
}
</
p
>
}
</
div
>
</>
}
/>
...
...
src/pages/transaction/purchaserEvaluation/received/detail/index.tsx
View file @
430becc4
...
...
@@ -144,18 +144,7 @@ const ReceivedDetail: React.FC = () => {
}
extra=
{
(
<>
{
pageStatus
===
PageStatus
.
EDIT
&&
(
<
Button
type=
"primary"
icon=
{
<
FormOutlined
/>
}
loading=
{
submitLoading
}
onClick=
{
()
=>
formActions
.
submit
()
}
>
修改
</
Button
>
)
}
</>
)
}
>
...
...
src/pages/transaction/supplierEvaluation/received/detail/index.tsx
View file @
430becc4
...
...
@@ -144,18 +144,7 @@ const ReceivedDetail: React.FC = () => {
}
extra=
{
(
<>
{
pageStatus
===
PageStatus
.
EDIT
&&
(
<
Button
type=
"primary"
icon=
{
<
FormOutlined
/>
}
loading=
{
submitLoading
}
onClick=
{
()
=>
formActions
.
submit
()
}
>
修改
</
Button
>
)
}
</>
)
}
>
...
...
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