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
9f4772db
Commit
9f4772db
authored
Aug 20, 2021
by
前端-钟卫鹏
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix: 处理渠道商品上架异常,处理商品修改货品回显异常,对接待/确认支付/待确认支付结果订单微信支付方式
parent
b30c65bf
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
19 changed files
with
354 additions
and
103 deletions
+354
-103
index.ts
src/module/productModule/index.ts
+2
-0
priceAttributeForm.tsx
...commodity/products/addProductsItem/priceAttributeForm.tsx
+8
-2
productAttributeForm.tsx
...mmodity/products/addProductsItem/productAttributeForm.tsx
+3
-1
productDescFormDefault.tsx
...odity/products/addProductsItem/productDescFormDefault.tsx
+103
-11
index.tsx
...commodity/products/components/dragSortImageList/index.tsx
+130
-0
directChannel.tsx
src/pages/commodity/products/directChannel.tsx
+1
-1
index.tsx
src/pages/commodity/products/index.tsx
+5
-0
viewDirectChannel.tsx
src/pages/commodity/products/viewDirectChannel.tsx
+6
-4
index.tsx
...ds/readySubmitReport/components/remarkBidReport/index.tsx
+1
-1
index.tsx
...rocurement/callForBids/readySubmitReport/detail/index.tsx
+1
-1
useOrderDetail.tsx
...ages/transaction/_public/order/effects/useOrderDetail.tsx
+1
-0
index.tsx
src/pages/transaction/components/orderMergeInfo/index.tsx
+2
-2
index.tsx
src/pages/transaction/components/orderPayModal/index.tsx
+0
-0
index.tsx
...ages/transaction/components/orderPayResultModal/index.tsx
+6
-6
index.tsx
...ges/transaction/saleOrder/readyPayResult/detail/index.tsx
+2
-2
index.tsx
src/pages/transaction/saleOrder/readyPayResult/index.tsx
+1
-1
useSelfTable.tsx
...ansaction/saleOrder/readyPayResult/model/useSelfTable.tsx
+19
-19
index.ts
...ages/transaction/saleOrder/readyPayResult/schema/index.ts
+57
-52
index.ts
src/store/product/index.ts
+6
-0
No files found.
src/module/productModule/index.ts
View file @
9f4772db
...
...
@@ -72,6 +72,7 @@ export interface IProductModule {
currentPageInStore
:
IPage
;
tabClickItem
:
any
[];
productPriceType
:
any
;
isRecombination
:
boolean
;
setAttributeLists
(
lists
:
any
[]):
void
;
setProductName
(
name
:
string
):
void
;
...
...
@@ -88,4 +89,5 @@ export interface IProductModule {
setCurrentPageInStore
(
data
:
IPage
):
void
;
setTabClickItem
(
data
:
any
):
void
;
setProductPriceType
(
data
:
any
):
void
;
setIsRecombination
(
data
:
boolean
):
void
;
}
src/pages/commodity/products/addProductsItem/priceAttributeForm.tsx
View file @
9f4772db
...
...
@@ -74,7 +74,8 @@ const PriceAttributeForm: React.FC<Iprops> = (props) => {
selectCategoryId
,
productAttributeAndImageParams
,
tabClickItem
,
setProductPriceType
setProductPriceType
,
isRecombination
}
=
ProductStore
// const memoizedValue = useMemo(() => {
...
...
@@ -322,6 +323,7 @@ const PriceAttributeForm: React.FC<Iprops> = (props) => {
let
_tableData
:
any
[]
=
[]
if
(
combineArray
?.
length
>
0
){
// length存在 表示表格的行数(有价格属性组合)
console
.
log
(
combineArray
,
selectedGoods
)
combineArray
.
map
((
_rowArr
:
any
[],
i
:
any
)
=>
{
// _rowArr 属性值数组
let
_tempObj
:
any
=
{
索引
:
i
,
商品名称
:
productName
}
Array
.
isArray
(
_rowArr
)
?
_rowArr
.
map
((
__rowArr
,
index
)
=>
{
...
...
@@ -329,7 +331,11 @@ const PriceAttributeForm: React.FC<Iprops> = (props) => {
})
:
_tempObj
[
_attributeNameArr
[
i
]
||
_attributeNameArr
[
0
]]
=
_rowArr
// 当一项变动的时候 找_attributeNameArr可能会找不到 找不到的情况下置为索引0的那项
if
(
history
.
location
.
query
?.
id
){
// 编辑的时候,先指定数据中的货品id,如果是重新组合的不存在id就使用选择的货品中的第一个,如果没有置为0;同理,不存在单价就置为{}
_tempObj
[
'对应货品'
]
=
selectedGoods
.
length
>
0
?
selectedGoods
[
i
].
id
:
0
if
(
isRecombination
)
{
_tempObj
[
'对应货品'
]
=
selectedGoods
.
length
>
0
?
selectedGoods
[
0
].
id
:
0
}
else
{
_tempObj
[
'对应货品'
]
=
productInfoByEdit
.
unitPriceAndPicList
[
i
]?.
goods
?.
id
?
productInfoByEdit
.
unitPriceAndPicList
[
i
].
goods
.
id
:
0
}
// 通过 isUpdateAttribute 判断是否需要携带unitPriceAndPicList的id字段
if
(
!
productInfoByEdit
.
isUpdateAttribute
){
_tempObj
[
'规格ID'
]
=
productInfoByEdit
.
unitPriceAndPicList
[
i
]?.
id
...
...
src/pages/commodity/products/addProductsItem/productAttributeForm.tsx
View file @
9f4772db
...
...
@@ -36,7 +36,8 @@ const ProductAttributeForm: React.FC<Iprops> = (props) => {
setProductSelectAttribute
,
getProductAttributeFormParamsByEdit
,
productInfoByEdit
,
clearProductDetailsUnitPriceAndPicListInEdit
clearProductDetailsUnitPriceAndPicListInEdit
,
setIsRecombination
}
=
ProductStore
useEffect
(()
=>
{
...
...
@@ -73,6 +74,7 @@ const ProductAttributeForm: React.FC<Iprops> = (props) => {
* @param {Object} attrItem 属性数据对象
*/
const
onChange
=
(
value
,
attrItem
)
=>
{
setIsRecombination
(
true
)
let
params
=
{
customerAttributeId
:
attrItem
.
id
,
attributeName
:
attrItem
.
name
,
...
...
src/pages/commodity/products/addProductsItem/productDescFormDefault.tsx
View file @
9f4772db
import
React
,
{
useState
,
useEffect
,
useRef
}
from
'react'
import
React
,
{
useState
,
useEffect
,
useRef
,
useCallback
}
from
'react'
import
{
history
}
from
'umi'
import
{
Button
,
message
,
Upload
,
Spin
}
from
'antd'
import
cx
from
'classnames'
import
styles
from
'../index.less'
import
{
PlusOutlined
,
DeleteOutlined
}
from
'@ant-design/icons'
import
{
UPLOAD_TYPE
}
from
'@/constants'
import
ImgCrop
from
'antd-img-crop'
;
import
{
inject
,
observer
}
from
'mobx-react'
import
{
observer
}
from
'mobx-react'
import
{
store
}
from
'@/store'
import
{
getAuth
}
from
'@/utils/auth'
import
ModalForm
from
'@/components/ModalForm'
import
{
createFormActions
}
from
'@formily/antd'
import
{
useHttpRequest
}
from
'@/hooks/useHttpRequest'
import
{
PublicApi
}
from
'@/services/api'
import
{
DndProvider
}
from
'react-dnd'
import
{
HTML5Backend
}
from
'react-dnd-html5-backend'
import
DragSortImageList
from
'../components/dragSortImageList'
import
update
from
'immutability-helper'
;
const
schemaActions
=
createFormActions
()
const
ProductDescFormDefualt
:
React
.
FC
<
{}
>
=
(
props
)
=>
{
const
ProductDescFormDefualt
:
React
.
FC
<
{}
>
=
()
=>
{
const
[
fileImageList
,
setFileImageList
]
=
useState
<
any
>
([])
const
[
videoList
,
setVideoList
]
=
useState
<
any
>
([])
const
[
hyperlinkList
,
setHyperlinkList
]
=
useState
<
any
>
([])
const
flagRef
=
useRef
<
boolean
>
(
false
)
const
currentRef
=
useRef
<
any
>
({})
const
[
isLoading
,
setIsLoading
]
=
useState
<
boolean
>
(
false
)
// 上传的加载状态
const
{
userId
,
memberId
,
token
}
=
getAuth
()
||
{}
const
{
token
}
=
getAuth
()
||
{}
const
{
ProductStore
}
=
store
const
{
productInfoByEdit
,
setProductDescription
,
selectCategoryId
}
=
ProductStore
const
{
run
,
loading
}
=
useHttpRequest
(
PublicApi
.
postContractContractSignSaleSignContractCreate
,
{
ctlType
:
'none'
})
useEffect
(()
=>
{
if
(
history
.
location
.
query
?.
id
){
// 编辑状态下
setFileImageList
(
productInfoByEdit
.
commodityRemark
?.
image
)
...
...
@@ -54,6 +66,22 @@ const ProductDescFormDefualt: React.FC<{}> = (props) => {
})
},
[
fileImageList
,
videoList
])
const
changePosition
=
useCallback
((
dragIndex
:
number
,
hoverIndex
:
number
)
=>
{
const
dragImage
=
fileImageList
[
dragIndex
]
setFileImageList
(
update
(
fileImageList
,
{
$splice
:
[
[
dragIndex
,
1
],
[
hoverIndex
,
0
,
dragImage
],
],
}),
)
},
[
fileImageList
])
// useEffect(() => {
// console.log(hyperlinkList)
// }, [hyperlinkList])
const
uploadImgProps
=
{
name
:
'file'
,
action
:
'/api/file/file/upload'
,
...
...
@@ -136,6 +164,25 @@ const ProductDescFormDefualt: React.FC<{}> = (props) => {
setFileImageList
(
imageArr
)
}
const
handleAddHyperlink
=
(
idx
)
=>
{
console
.
log
(
'添加超链接'
)
currentRef
.
current
.
setVisible
(
true
)
schemaActions
.
setFieldValue
(
'idx'
,
idx
)
}
const
handleConfirm
=
()
=>
{
schemaActions
.
submit
()
}
const
handleSubmit
=
async
(
value
)
=>
{
setHyperlinkList
(()
=>
{
let
url
=
[...
hyperlinkList
]
url
[
value
.
idx
]
=
value
.
hyperlink
return
url
})
currentRef
.
current
.
setVisible
(
false
)
}
return
(<
div
>
<
Spin
spinning=
{
isLoading
}
>
{
...
...
@@ -169,13 +216,17 @@ const ProductDescFormDefualt: React.FC<{}> = (props) => {
</
div
>
</
div
>
}
{
{
/* 图片拖拽排序 */
}
<
DndProvider
backend=
{
HTML5Backend
}
>
<
DragSortImageList
imageList=
{
fileImageList
}
handleDelete=
{
handleDeleteImage
}
handleAddlink=
{
handleAddHyperlink
}
changePosition=
{
changePosition
}
/>
{
/* {
fileImageList?.length>0
?
fileImageList.map((item, index)=> <div key={index} className={cx(styles.descriptBox, styles.mediaContentBox)}>
<p className={styles.divImage}><img src={item} /></p>
<div className={styles.rightBtn}>
<Button size="small" onClick={()=>handleDeleteImage(index)} icon={<DeleteOutlined />} />
<Button size="small" onClick={()=>handleAddHyperlink(index)} icon={<LinkOutlined />} />
</div>
</div>
)
...
...
@@ -183,14 +234,13 @@ const ProductDescFormDefualt: React.FC<{}> = (props) => {
<div className={styles.descriptBox}>
<p>图片区域</p>
<div className={styles.rightBtn}>
{
/* <Button icon={<PlusOutlined />} /> */
}
<Button size="small" icon={<DeleteOutlined />} />
</div>
</div>
}
} */
}
</
DndProvider
>
<
div
className=
{
styles
.
descriptBox
}
>
<
div
className=
{
styles
.
middleAddBtn
}
>
{
/* <ImgCrop rotate> */
}
<
Upload
{
...
uploadImgProps
}
>
<
Button
size=
"small"
type=
"text"
>
<
PlusOutlined
/>
...
...
@@ -198,10 +248,52 @@ const ProductDescFormDefualt: React.FC<{}> = (props) => {
<
br
/>
<
span
>
添加图片
</
span
>
</
Upload
>
{
/* </ImgCrop> */
}
</
div
>
</
div
>
</
Spin
>
{
/* 添加链接模态框 */
}
<
ModalForm
modalTitle=
'添加链接'
previewPlaceholder=
''
currentRef=
{
currentRef
}
schema=
{
{
type
:
'object'
,
properties
:
{
NO_SUBMIT
:
{
type
:
'object'
,
"x-component"
:
"mega-layout"
,
"x-component-props"
:
{
labelAlign
:
'left'
,
labelCol
:
6
,
},
properties
:
{
"hyperlink"
:
{
type
:
"string"
,
title
:
"跳转链接"
,
},
"idx"
:
{
type
:
"number"
,
title
:
"当前索引"
,
visible
:
false
,
}
}
}
}
}
}
actions=
{
schemaActions
}
onSubmit=
{
handleSubmit
}
confirm=
{
handleConfirm
}
modalProps=
{
{
confirmLoading
:
loading
}
}
effects=
{
(
$
,
actions
)
=>
{
$
(
'onFormInit'
).
subscribe
(
async
()
=>
{
})
}
}
/>
</
div
>)
}
...
...
src/pages/commodity/products/components/dragSortImageList/index.tsx
0 → 100644
View file @
9f4772db
import
React
,
{
useState
,
useEffect
,
useRef
}
from
'react'
import
cx
from
'classnames'
import
styles
from
'../../index.less'
import
{
Button
,
Tooltip
}
from
'antd'
import
{
DeleteOutlined
,
DragOutlined
,
LinkOutlined
}
from
'@ant-design/icons'
import
{
useDrag
,
useDrop
,
DropTargetMonitor
,
XYCoord
,
DragSourceMonitor
}
from
'react-dnd'
;
/**
* 新增商品 商品描述区域 图片拖拽排序
*/
interface
RenderProps
{
id
:
number
,
key
:
number
,
index
:
number
,
item
:
string
,
handleDelete
:
(
idx
:
number
)
=>
void
,
handleAddlink
:
(
idx
:
number
)
=>
void
,
changePosition
:
(
dragIdx
:
number
,
hoverIdx
:
number
)
=>
void
,
}
interface
DragItem
{
index
:
number
id
:
string
type
:
string
}
const
ImageItem
:
React
.
FC
<
RenderProps
>
=
(
props
)
=>
{
const
{
id
,
key
,
index
,
item
,
handleAddlink
,
handleDelete
,
changePosition
}
=
props
const
ref
=
useRef
<
HTMLDivElement
>
(
null
)
const
[,
drop
]
=
useDrop
({
accept
:
'ImageItem'
,
hover
(
item
:
DragItem
,
monitor
:
DropTargetMonitor
)
{
if
(
!
ref
.
current
)
{
return
}
/** 当前拖拽的索引 */
const
dragIndex
=
item
.
index
/** 拖拽后位置的索引 */
const
hoverIndex
=
index
if
(
dragIndex
===
hoverIndex
)
{
return
}
const
hoverBoundingRect
=
ref
.
current
?.
getBoundingClientRect
()
const
hoverMiddleY
=
(
hoverBoundingRect
.
bottom
-
hoverBoundingRect
.
top
)
/
2
const
clientOffset
=
monitor
.
getClientOffset
()
const
hoverClientY
=
(
clientOffset
as
XYCoord
).
y
-
hoverBoundingRect
.
top
if
(
dragIndex
<
hoverIndex
&&
hoverClientY
<
hoverMiddleY
)
{
return
}
if
(
dragIndex
>
hoverIndex
&&
hoverClientY
>
hoverMiddleY
)
{
return
}
// console.log(dragIndex, hoverIndex)
changePosition
(
dragIndex
,
hoverIndex
)
item
.
index
=
hoverIndex
},
})
const
[{
isDragging
},
drag
]
=
useDrag
({
item
:
{
type
:
'ImageItem'
,
id
,
index
},
collect
:
(
monitor
:
DragSourceMonitor
)
=>
({
isDragging
:
monitor
.
isDragging
(),
}),
})
drag
(
drop
(
ref
))
return
<
div
key=
{
index
}
className=
{
cx
(
styles
.
descriptBox
,
styles
.
mediaContentBox
)
}
ref=
{
ref
}
>
<
p
className=
{
styles
.
divImage
}
><
img
src=
{
item
}
/></
p
>
<
div
className=
{
styles
.
rightBtn
}
>
<
Tooltip
title=
"删除图片"
>
<
Button
size=
"small"
onClick=
{
()
=>
handleDelete
(
index
)
}
icon=
{
<
DeleteOutlined
/>
}
/>
</
Tooltip
>
<
Tooltip
title=
"添加图片链接"
>
<
Button
size=
"small"
onClick=
{
()
=>
handleAddlink
(
index
)
}
icon=
{
<
LinkOutlined
/>
}
/>
</
Tooltip
>
<
Tooltip
title=
"拖拽排序"
>
<
Button
size=
"small"
icon=
{
<
DragOutlined
/>
}
/>
</
Tooltip
>
</
div
>
</
div
>
}
interface
DragSortImageListProps
{
imageList
:
string
[],
handleDelete
:
(
idx
:
number
)
=>
void
,
handleAddlink
:
(
idx
:
number
)
=>
void
,
changePosition
:
(
dragIdx
:
number
,
hoverIdx
:
number
)
=>
void
,
}
const
DragSortImageList
:
React
.
FC
<
DragSortImageListProps
>
=
(
props
)
=>
{
const
{
imageList
,
handleDelete
,
handleAddlink
,
changePosition
}
=
props
const
renderImageList
=
(
item
,
index
)
=>
{
return
<
ImageItem
id=
{
index
}
key=
{
index
}
index=
{
index
}
item=
{
item
}
handleDelete=
{
handleDelete
}
handleAddlink=
{
handleAddlink
}
changePosition=
{
changePosition
}
/>
}
return
<
div
>
{
imageList
?.
length
>
0
?
imageList
.
map
((
item
,
index
)
=>
renderImageList
(
item
,
index
))
:
<
div
className=
{
styles
.
descriptBox
}
>
<
p
>
图片区域
</
p
>
<
div
className=
{
styles
.
rightBtn
}
>
<
Button
size=
"small"
icon=
{
<
DeleteOutlined
/>
}
/>
</
div
>
</
div
>
}
</
div
>
}
export
default
DragSortImageList
src/pages/commodity/products/directChannel.tsx
View file @
9f4772db
...
...
@@ -284,7 +284,7 @@ const DirectChannel: React.FC<{}> = () => {
const
onChangeUpShop
=
(
values
)
=>
{
// 判断上架之前是否有店铺 有即可以上下架
PublicApi
.
getTemplateWebMemberChannelWebFindCurrMemberChannel
().
then
(
res
=>
{
if
(
res
.
data
.
id
){
if
(
res
.
data
?
.
id
){
setCheckedValues
(
values
)
setShopId
(
res
?.
data
?.
id
)
}
else
{
...
...
src/pages/commodity/products/index.tsx
View file @
9f4772db
...
...
@@ -125,6 +125,11 @@ const Products: React.FC<{}> = () => {
render
:
(
text
:
any
,
reocrd
:
any
)
=>
priceTypeLabel
[
text
]
},
{
title
:
'供应会员'
,
dataIndex
:
'upperMemberName'
,
key
:
'upperMemberName'
},
{
title
:
'价格'
,
dataIndex
:
'min'
,
key
:
'min'
,
...
...
src/pages/commodity/products/viewDirectChannel.tsx
View file @
9f4772db
...
...
@@ -3,7 +3,7 @@ import { history } from 'umi'
import
{
Card
,
Space
,
Row
,
Col
,
Descriptions
,
Table
,
Avatar
}
from
'antd'
import
{
PageHeaderWrapper
}
from
'@ant-design/pro-layout'
import
ReutrnEle
from
'@/components/ReturnEle'
import
{
GlobalConfig
}
from
'@/global/config
'
import
{
CHANNEL_CENTER_URL
,
}
from
'@/constants
'
import
{
PublicApi
}
from
'@/services/api'
import
{
carriageTypeLabel
,
deliveryTypeLabel
,
productStatusLabel
}
from
'./constant'
...
...
@@ -155,9 +155,11 @@ const ViewDriectChannel: React.FC<{}> = () => {
{
/* <a>去查看 ></a> */
}
<
a
href=
{
channelDetails
?.
channelCommodity
?.
source
===
1
?
`${GlobalConfig.channelRootRoute}/commodity/detail?id=${channelDetails?.channelCommodity?.commodity?.id}&channelId=${btoa(JSON.stringify({ shopId: '', memberId: channelDetails?.channelCommodity?.parentMemberId }))}`
:
`/memberCenter/commodityAbility/commodity/products/detail?id=${channelDetails?.channelCommodity?.commodity?.id}`
channelDetails
?.
channelCommodity
?.
source
===
1
?
`${CHANNEL_CENTER_URL}/m${channelDetails?.channelCommodity?.parentMemberId}/commodity/detail/${channelDetails?.channelCommodity?.commodity?.id}`
:
`/memberCenter/commodityAbility/commodity/products/detail?id=${channelDetails?.channelCommodity?.commodity?.id}`
}
// target="blank"
>
去查看
>
</
a
>
...
...
src/pages/procurement/callForBids/readySubmitReport/components/remarkBidReport/index.tsx
View file @
9f4772db
...
...
@@ -129,7 +129,7 @@ const RemarkBidReport: React.FC<RemarkBidReportProps> = ({editable}) => {
Object
.
keys
(
dataBySort
).
forEach
((
item
,
index
)
=>
{
let
childTableData
=
[]
let
childTableColumns
=
[{
title
:
'会员'
,
dataIndex
:
'memberName'
,
key
:
'memberName'
,
title
:
'会员'
,
dataIndex
:
'memberName'
,
key
:
'memberName'
,
width
:
256
,
ellipsis
:
true
,
render
:
(
t
,
r
,
i
)
=>
renderRanking
(
t
,
r
,
++
i
)
},
{
...
...
src/pages/procurement/callForBids/readySubmitReport/detail/index.tsx
View file @
9f4772db
...
...
@@ -50,7 +50,7 @@ const readySubmitReportDetail: React.FC = () => {
params
.
evaluationTenderRecommendList
=
recommandList
.
filter
(
item
=>
!
item
?.
id
)
}
params
.
evaluationTenderFile
=
fileList
// 在线
// 在线
if
(
data
.
isOnlineEvaluation
)
{
params
.
evaluationTenderReportMemberList
=
childTableData
?.
length
?
childTableData
[
0
].
map
(
item
=>
({
memberId
:
item
.
memberId
,
correctScore
:
item
.
modifyTotal
}))
:
[]
}
else
{
...
...
src/pages/transaction/_public/order/effects/useOrderDetail.tsx
View file @
9f4772db
...
...
@@ -65,6 +65,7 @@ export const useOrderDetail = (options: OrderDetailHookProps) => {
break
;
case
'p_readyPayOrder'
:
api
=
PublicApi
.
getOrderBuyerValidatePayDetail
;
break
;
case
's_readyPayResult'
:
api
=
PublicApi
.
getOrderVendorValidatePayConfirmDetail
;
default
:
api
=
PublicApi
.
getOrderBuyerDetail
;
}
...
...
src/pages/transaction/components/orderMergeInfo/index.tsx
View file @
9f4772db
...
...
@@ -56,8 +56,8 @@ const OrderMergeInfo: React.FC<OrderMergeInfoProps> = (props) => {
</
div
>
}
</
div
>,
resetCol
:
{
flex
:
'1 1 100%'
}
},
{
title
:
'包装要求'
,
name
:
'requirement'
,
render
:
(
t
,
d
)
=>
d
.
requirement
.
detail
?.
pageRequire
||
''
},
{
title
:
'其他要求'
,
name
:
'requirement'
,
render
:
(
t
,
d
)
=>
d
.
requirement
.
detail
?.
restsRequire
||
''
},
{
title
:
'包装要求'
,
name
:
'requirement
.pageRequire
'
,
render
:
(
t
,
d
)
=>
d
.
requirement
.
detail
?.
pageRequire
||
''
},
{
title
:
'其他要求'
,
name
:
'requirement
.restsRequire
'
,
render
:
(
t
,
d
)
=>
d
.
requirement
.
detail
?.
restsRequire
||
''
},
]
return
(
...
...
src/pages/transaction/components/orderPayModal/index.tsx
View file @
9f4772db
This diff is collapsed.
Click to expand it.
src/pages/transaction/components/orderPayResultModal/index.tsx
View file @
9f4772db
...
...
@@ -19,9 +19,9 @@ const OrderPayResultModal:React.FC<OrderPayResultModalProps> = ({type, currentRe
const
{
data
}
=
useContext
(
OrderDetailContext
)
const
{
id
}
=
usePageStatus
()
const
[
visible
,
setVisible
]
=
useState
(
false
)
const
canCtlData
=
data
?.
payment
InformationResponses
.
find
(
v
=>
v
.
externalState
===
PayOutWorkState
.
READY_CONFIRM_RESULT
)
||
{}
const
{
run
,
loading
}
=
useHttpRequest
(
PublicApi
.
postOrder
ConfirmedPaymentResultsOrder
)
const
transData
=
canCtlData
.
payOrderUrls
?
canCtlData
.
payOrderUrl
s
:
[]
const
canCtlData
=
data
?.
payment
s
.
find
(
v
=>
v
.
showConfirm
)
||
{}
const
{
run
,
loading
}
=
useHttpRequest
(
PublicApi
.
postOrder
VendorValidatePayConfirm
)
const
transData
=
canCtlData
.
vouchers
?.
length
?
canCtlData
.
voucher
s
:
[]
useEffect
(()
=>
{
if
(
currentRef
)
{
currentRef
.
current
=
{
...
...
@@ -37,9 +37,9 @@ const OrderPayResultModal:React.FC<OrderPayResultModalProps> = ({type, currentRe
const
handleConfirm
=
async
(
isReady
)
=>
{
const
params
=
{
stat
e
:
isReady
,
i
d
:
Number
(
id
),
paymentInformationId
:
canCtlData
.
id
agre
e
:
isReady
,
orderI
d
:
Number
(
id
),
batchNo
:
canCtlData
.
batchNo
}
const
{
code
}
=
await
run
(
params
)
...
...
src/pages/transaction/saleOrder/readyPayResult/detail/index.tsx
View file @
9f4772db
...
...
@@ -38,7 +38,7 @@ const ReadyPayResultOrderDetail: React.FC = () => {
/>
</
OrderDetailContext
.
Provider
>
</
div
>
)
;
}
;
)
}
export
default
ReadyPayResultOrderDetail
;
src/pages/transaction/saleOrder/readyPayResult/index.tsx
View file @
9f4772db
...
...
@@ -16,7 +16,7 @@ import '../index.less'
export
interface
ReadyPayResultProps
{}
const
fetchTableData
=
async
(
params
)
=>
{
const
{
data
}
=
await
PublicApi
.
getOrder
ConfirmedPaymentResultsOrderList
(
params
)
const
{
data
}
=
await
PublicApi
.
getOrder
VendorValidatePayConfirmPage
(
params
)
return
data
}
...
...
src/pages/transaction/saleOrder/readyPayResult/model/useSelfTable.tsx
View file @
9f4772db
...
...
@@ -59,7 +59,7 @@ export const useSelfTable = () => {
render
:
(
text
,
record
)
=>
{
// 查看订单, 需根据状态显示不同schema
return
(
<
EyePreview
url=
{
`/memberCenter/tranactionAbility/saleOrder/readyPayResult/preview?id=${record.
i
d}`
}
>
<
EyePreview
url=
{
`/memberCenter/tranactionAbility/saleOrder/readyPayResult/preview?id=${record.
orderI
d}`
}
>
{
text
}
</
EyePreview
>
)
...
...
@@ -67,9 +67,9 @@ export const useSelfTable = () => {
},
{
title
:
'订单摘要/下单时间'
,
align
:
'
center
'
,
align
:
'
digest
'
,
dataIndex
:
'orderThe'
,
key
:
'
orderThe
'
,
key
:
'
digest
'
,
render
:
(
text
,
record
)
=>
<>
<
div
>
{
text
}
</
div
>
<
div
><
FieldTimeOutlined
/>
{
formatTimeString
(
record
.
createTime
)
}
</
div
>
...
...
@@ -85,40 +85,40 @@ export const useSelfTable = () => {
{
title
:
'总金额/已支付(元)'
,
align
:
'center'
,
dataIndex
:
'
sumPrice
'
,
key
:
'
sumPrice
'
,
dataIndex
:
'
amount
'
,
key
:
'
amount
'
,
render
:
(
text
,
record
)
=>
<
Row
justify=
'space-between'
>
<
Col
>
<
div
><
span
>
总金额:
</
span
><
span
>
{
record
.
sumPrice
}
</
span
></
div
>
<
div
><
span
>
已支付:
</
span
><
span
>
{
record
.
alreadyPay
||
0
}
</
span
></
div
>
<
div
><
span
>
总金额:
</
span
><
span
>
{
text
}
</
span
></
div
>
<
div
><
span
>
已支付:
</
span
><
span
>
{
record
.
paidAmount
||
0
}
</
span
></
div
>
</
Col
>
<
Col
style=
{
{
width
:
40
}
}
>
<
CircleChart
sumPrice=
{
record
.
sumPrice
}
alreadyPay=
{
record
.
alreadyPay
}
/>
<
CircleChart
sumPrice=
{
text
}
alreadyPay=
{
record
.
paidAmount
}
/>
</
Col
>
</
Row
>,
width
:
200
},
{
title
:
'已支付'
,
align
:
'center'
,
dataIndex
:
'
alreadyPay'
,
key
:
'alreadyPay
'
},
{
title
:
'当前支付'
,
align
:
'center'
,
dataIndex
:
'
currentPayments'
,
render
:
(
text
,
record
)
=>
text
},
{
title
:
'已支付'
,
align
:
'center'
,
dataIndex
:
'
paidAmount'
,
key
:
'paidAmount
'
},
{
title
:
'当前支付'
,
align
:
'center'
,
dataIndex
:
'
batchNo'
,
key
:
"batchNo"
},
{
title
:
'订单类型'
,
align
:
'center'
,
dataIndex
:
'
t
ypeName'
,
key
:
'
t
ypeName'
,
dataIndex
:
'
orderT
ypeName'
,
key
:
'
orderT
ypeName'
,
},
{
title
:
'外部状态'
,
align
:
'center'
,
dataIndex
:
'
externalState
'
,
key
:
'
externalState
'
,
render
:
(
text
,
record
)
=>
<
StatusColors
status=
{
text
}
type=
'out'
text=
{
record
[
'
externalState
Name'
]
}
/>,
dataIndex
:
'
outerStatus
'
,
key
:
'
outerStatus
'
,
render
:
(
text
,
record
)
=>
<
StatusColors
status=
{
text
}
type=
'out'
text=
{
record
[
'
outerStatus
Name'
]
}
/>,
},
{
title
:
'内部状态'
,
align
:
'center'
,
dataIndex
:
'
purchaseOrderInteriorState
'
,
key
:
'
purchaseOrderInteriorState
'
,
render
:
(
text
,
record
)
=>
<
StatusColors
status=
{
text
}
type=
'saleInside'
text=
{
record
[
'in
teriorState
Name'
]
}
/>,
dataIndex
:
'
innerStatus
'
,
key
:
'
innerStatus
'
,
render
:
(
text
,
record
)
=>
<
StatusColors
status=
{
text
}
type=
'saleInside'
text=
{
record
[
'in
nerStatus
Name'
]
}
/>,
},
{
title
:
'操作'
,
...
...
@@ -130,7 +130,7 @@ export const useSelfTable = () => {
]
const
handleConfirm
=
async
(
record
)
=>
{
history
.
push
(
`/memberCenter/tranactionAbility/saleOrder/readyPayResult/detail?id=
${
record
.
i
d
}
`
)
history
.
push
(
`/memberCenter/tranactionAbility/saleOrder/readyPayResult/detail?id=
${
record
.
orderI
d
}
`
)
}
return
{
...
...
src/pages/transaction/saleOrder/readyPayResult/schema/index.ts
View file @
9f4772db
import
{
FORM_FILTER_PATH
}
from
'@/formSchema/const'
;
import
{
get
OrderType
}
from
'@/pages/transaction/effect'
;
import
{
get
PurchaseOrderSelectOption
}
from
'@/pages/transaction/effect'
;
export
const
tableListSchema
:
any
=
()
=>
{
const
OrderType
=
getOrderType
()
const
res
=
getPurchaseOrderSelectOption
()
if
(
res
)
{
const
{
orderTypes
:
OrderType
,
}
=
res
return
{
type
:
'object'
,
properties
:
{
orderNo
:
{
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
:
{
orderThe
:
{
type
:
'string'
,
'x-component-props'
:
{
placeholder
:
'请输入订单摘要'
,
}
return
{
type
:
'object'
,
properties
:
{
orderNo
:
{
type
:
'string'
,
"x-component"
:
'SearchFilter'
,
'x-component-props'
:
{
placeholder
:
'请输入订单编号'
,
align
:
'flex-start'
,
},
"memberName"
:
{
type
:
'string'
,
"x-component-props"
:
{
placeholder
:
'请输入采购会员名称'
},
[
FORM_FILTER_PATH
]:
{
type
:
'object'
,
'x-component'
:
'flex-layout'
,
'x-component-props'
:
{
inline
:
true
,
colStyle
:
{
marginRight
:
20
}
},
"type"
:
{
type
:
'string'
,
"x-component-props"
:
{
placeholder
:
'请选择订单类型'
properties
:
{
"digest"
:
{
type
:
'string'
,
'x-component-props'
:
{
placeholder
:
'请输入订单摘要'
,
}
},
enum
:
OrderType
.
map
(
item
=>
({
label
:
item
[
'name'
],
value
:
item
[
'status'
],
}))
},
"[startCreateTime,endCreateTime]"
:
{
type
:
'array'
,
"x-component"
:
'DateRangePickerUnix'
,
'x-component-props'
:
{
placeholder
:
[
'开始时间'
,
'结束时间'
],
"memberName"
:
{
type
:
'string'
,
"x-component-props"
:
{
placeholder
:
'请输入采购会员名称'
}
},
},
submit
:
{
'x-component'
:
'Submit'
,
'x-component-props'
:
{
children
:
'查询'
,
"orderType"
:
{
type
:
'string'
,
"x-component-props"
:
{
placeholder
:
'请选择订单类型'
},
enum
:
OrderType
.
map
(
item
=>
({
label
:
item
[
'text'
],
value
:
item
[
'id'
],
}))
},
"[startDate,endDate]"
:
{
type
:
'daterange'
,
// "x-component": 'DateRangePickerUnix',
'x-component-props'
:
{
placeholder
:
[
'开始时间'
,
'结束时间'
],
},
},
submit
:
{
'x-component'
:
'Submit'
,
'x-component-props'
:
{
children
:
'查询'
,
},
},
},
},
}
,
}
}
}
}
src/store/product/index.ts
View file @
9f4772db
...
...
@@ -30,6 +30,7 @@ class ProductStore implements IProductModule {
@
observable
public
currentPageInStore
:
IPage
=
{
current
:
null
,
pageSize
:
null
};
// 页码相关
@
observable
public
tabClickItem
:
any
[]
=
[];
// tab标签页点击项
@
observable
public
productPriceType
:
any
=
null
;
// 商品价格类型
@
observable
public
isRecombination
:
boolean
=
false
;
// 编辑时 是否重新属性组合
/** 计算操作 **/
// 加工接口返回的数据,用户编辑回显数据
...
...
@@ -223,6 +224,11 @@ class ProductStore implements IProductModule {
this
.
productPriceType
=
data
}
@
action
.
bound
public
setIsRecombination
(
data
:
boolean
)
{
this
.
isRecombination
=
data
}
}
export
default
ProductStore
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