Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
J
jinfa-admin
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-admin
Commits
494d5a58
Commit
494d5a58
authored
Feb 16, 2022
by
GuanHua
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'v2' of
http://10.0.0.22:3000/lingxi/lingxi-business-system
into v2
parents
40fa8356
973ae61c
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
19 changed files
with
107 additions
and
319 deletions
+107
-319
index.tsx
...ng/marketingActivitiesManagement/activePage/add/index.tsx
+1
-1
schema.ts
...esManagement/activePage/fixtures/common/configs/schema.ts
+3
-3
useGetLayout.ts
...nagement/activePage/fixtures/common/hooks/useGetLayout.ts
+0
-0
useGetSameKeys.tsx
...ement/activePage/fixtures/common/hooks/useGetSameKeys.tsx
+17
-1
useSaveData.ts
...anagement/activePage/fixtures/common/hooks/useSaveData.ts
+16
-10
ComponentModule.tsx
...age/fixtures/components/ComponentTree/ComponentModule.tsx
+0
-40
index.tsx
...nt/activePage/fixtures/components/ComponentTree/index.tsx
+0
-106
web.tsx
...ment/activePage/fixtures/components/ComponentTree/web.tsx
+34
-2
editPanelForm.tsx
...ctivePage/fixtures/components/EditPanel/editPanelForm.tsx
+11
-2
index.less
...vePage/fixtures/components/Layouts/Combination/index.less
+2
-2
index.tsx
...ivePage/fixtures/components/Layouts/Combination/index.tsx
+6
-3
combineSale.less
...ixtures/components/Layouts/CommodityList/combineSale.less
+0
-43
combineSale.tsx
...fixtures/components/Layouts/CommodityList/combineSale.tsx
+0
-84
index.tsx
...ePage/fixtures/components/Layouts/CommodityList/index.tsx
+8
-4
index.tsx
...nagement/activePage/fixtures/components/Toolbar/index.tsx
+4
-1
index.tsx
...settlementManage/platformSettlement/coupon/info/index.tsx
+1
-1
schema.tsx
...ettlementManage/platformSettlement/coupon/info/schema.tsx
+2
-13
schema.tsx
...ettlementManage/platformSettlement/coupon/list/schema.tsx
+1
-2
request.ts
src/utils/request.ts
+1
-1
No files found.
src/pages/marketingManage/marketing/marketingActivitiesManagement/activePage/add/index.tsx
View file @
494d5a58
...
...
@@ -184,7 +184,7 @@ const Add = () => {
return
(
<
PageHeaderWrapper
title=
{
renderTitle
()
}
onBack=
{
()
=>
history
.
goBack
(
)
}
onBack=
{
()
=>
history
.
push
(
'/marketingManage/marketing/activitiesManagement'
)
}
backIcon=
{
<
ReutrnEle
/>
}
extra=
{
!
isView
&&
(
...
...
src/pages/marketingManage/marketing/marketingActivitiesManagement/activePage/fixtures/common/configs/schema.ts
View file @
494d5a58
...
...
@@ -102,9 +102,9 @@ const CommodityList = {
"CommodityList.SwapProduct"
:
{
propsConfig
:
{}
},
"CommodityList.CombineSale"
:
{
propsConfig
:
{}
},
//
"CommodityList.CombineSale": {
//
propsConfig: {}
//
},
"CommodityList.FlashSale"
:
{
propsConfig
:
{}
}
...
...
src/pages/marketingManage/marketing/marketingActivitiesManagement/activePage/fixtures/common/hooks/useGetLayout.ts
View file @
494d5a58
This diff is collapsed.
Click to expand it.
src/pages/marketingManage/marketing/marketingActivitiesManagement/activePage/fixtures/common/hooks/useGetSameKeys.tsx
View file @
494d5a58
...
...
@@ -80,10 +80,26 @@ const useGetSameKeys = () => {
result
[
dataIndex
]
=
[];
}
if
(
dataIndex
===
'combination'
)
{
/** combination 单独处理, 这里不使用递归了 */
childNodes
?.
forEach
((
_son
,
_index
)
=>
{
const
sonElement
=
pageConfig
[
_son
];
result
[
`combination_
${
_index
}
`
]
=
[];
sonElement
?.
childNodes
?.
forEach
((
_row
)
=>
{
const
rowData
=
pageConfig
[
_row
];
result
[
`combination_
${
_index
}
`
].
push
(
`
${
rowData
?.
props
?.
id
}
_$
{
rowData
?.
props
?.
activityId
}
`
);
});
});
return;
}
if (dataIndex !== 'suggestProduct') {
childNodes?.forEach((_son) => {
const sonElement = pageConfig[_son];
const
formatedData
=
formatProps
[
dataIndex
]?.(
sonElement
.
props
);
const formatedData = formatProps[dataIndex]?.(sonElement.props
|| {}
);
if (formatProps) {
result[dataIndex].push(formatedData);
}
...
...
src/pages/marketingManage/marketing/marketingActivitiesManagement/activePage/fixtures/common/hooks/useSaveData.ts
View file @
494d5a58
...
...
@@ -102,7 +102,7 @@ function useSaveData(options: Options) {
childrenData
:
childrenData
}
});
}
else
if
(
ACTIVITY_LIST
.
includes
(
dataIndex
as
ACTIVITY_KEYS
))
{
}
else
if
(
ACTIVITY_LIST
.
includes
(
dataIndex
as
ACTIVITY_KEYS
)
&&
dataIndex
!==
'combination'
)
{
const
{
...
otherProps
}
=
props
||
{};
const
childrenData
=
childNodes
.
map
((
_record
)
=>
{
const
childTargetProps
=
pageConfig
[
_record
].
props
;
...
...
@@ -117,31 +117,37 @@ function useSaveData(options: Options) {
childrenData
:
childrenData
}
});
}
else
if
(
dataIndex
===
'suggestProduct'
)
{
}
else
if
(
dataIndex
===
'suggestProduct'
||
dataIndex
===
'combination'
)
{
const
{
...
otherProps
}
=
props
||
{};
const
{
childNodes
}
=
target
;
const
temp
=
{
sort
:
sort
,
props
:
{
visible
:
otherProps
.
status
??
true
,
title
:
otherProps
.
title
,
childrenData
:
childNodes
?.
filter
((
_record
)
=>
/
\d
+-
\d
+/
.
test
(
_record
)).
map
((
_row
)
=>
{
const
childrenNodeTarget
=
pageConfig
[
_row
];
const
{
...
childRestProps
}
=
childrenNodeTarget
?.
props
;
const
childrenData
=
childrenNodeTarget
.
childNodes
?.
map
((
_listItem
)
=>
{
const
sonNodeTarget
=
pageConfig
[
_listItem
];
if
(
dataIndex
===
'suggestProduct'
)
{
return
{
id
:
sonNodeTarget
?.
props
.
id
,
label
:
sonNodeTarget
?.
props
?.
label
||
[]
};
}
return
sonNodeTarget
?.
props
.
id
})
return
{
title
:
childRestProps
.
title
,
theme
:
childRestProps
.
theme
||
0
,
childrenData
:
childrenNodeTarget
.
childNodes
?.
map
((
_listItem
)
=>
{
const
sonNodeTarget
=
pageConfig
[
_listItem
];
return
{
id
:
sonNodeTarget
?.
props
.
id
,
label
:
sonNodeTarget
?.
props
?.
label
||
[]
};
})
childrenData
:
childrenData
};
})
}
};
result
=
generaterData
(
result
,
'suggestProduct'
,
temp
);
result
=
generaterData
(
result
,
dataIndex
,
temp
);
}
});
const
withThemeStyle
=
{
...
...
src/pages/marketingManage/marketing/marketingActivitiesManagement/activePage/fixtures/components/ComponentTree/ComponentModule.tsx
deleted
100644 → 0
View file @
40fa8356
import
React
,
{
useEffect
,
useState
}
from
'react'
;
import
{
Switch
}
from
'antd'
;
import
{
useSelector
}
from
'@linkseeks/design-react'
;
interface
Iprops
{
image
?:
string
,
title
:
string
,
visible
:
boolean
,
onChange
?:
((
checked
:
boolean
,
option
:
{
dataIndex
:
string
,
treeKey
:
string
,
})
=>
void
)
|
null
,
dataIndex
:
string
,
treeKey
:
string
}
const
ComponentModule
:
React
.
FC
<
Iprops
>
=
(
props
:
Iprops
)
=>
{
const
{
image
,
title
,
visible
,
onChange
=
null
,
dataIndex
,
treeKey
}
=
props
;
const
[
innerVisible
,
setInnerVisible
]
=
useState
<
boolean
>
(
false
);
const
{
pageConfig
}
=
useSelector
([
'pageConfig'
]);
useEffect
(()
=>
{
setInnerVisible
(
visible
);
},
[
visible
]);
const
handleChange
=
(
checked
:
boolean
)
=>
{
const
props
=
pageConfig
[
treeKey
].
props
;
onChange
?.(
checked
,
{
dataIndex
:
dataIndex
,
treeKey
:
treeKey
,
props
});
};
return
(
<
div
style=
{
{
height
:
'160px'
,
display
:
'flex'
,
flexDirection
:
'column'
,
alignItems
:
'center'
,
justifyContent
:
'center'
}
}
>
<
img
style=
{
{
width
:
'24px'
,
height
:
'24px'
}
}
src=
{
image
}
/>
<
div
style=
{
{
margin
:
'8px 0'
}
}
>
{
title
}
</
div
>
<
div
>
<
Switch
size=
"small"
checked=
{
innerVisible
}
onChange=
{
handleChange
}
/>
</
div
>
</
div
>
);
};
export
default
ComponentModule
;
src/pages/marketingManage/marketing/marketingActivitiesManagement/activePage/fixtures/components/ComponentTree/index.tsx
deleted
100644 → 0
View file @
40fa8356
import
React
,
{
useMemo
}
from
'react'
;
import
{
useSelector
,
changeProps
}
from
'@linkseeks/design-react'
;
import
ComponentModule
from
'./ComponentModule'
;
import
styles
from
'./index.less'
;
import
attemptImg
from
'@/asserts/activity/attempt.png'
;
import
bargainImg
from
'@/asserts/activity/bargain.png'
;
import
buySwapImg
from
'@/asserts/activity/buySwap.png'
;
import
combinationImg
from
'@/asserts/activity/combination.png'
;
import
fullMoneyDiscountImg
from
'@/asserts/activity/fullMoneyDiscount.png'
;
import
fullMoneySubImg
from
'@/asserts/activity/fullMoneySub.png'
;
import
fullQuantityDiscountImg
from
'@/asserts/activity/fullQuantityDiscount.png'
;
import
fullQuantitySubImg
from
'@/asserts/activity/fullQuantitySub.png'
;
import
fullSwapImg
from
'@/asserts/activity/fullSwap.png'
;
import
giveProductImg
from
'@/asserts/activity/giveProduct.png'
;
import
groupPurchaseImg
from
'@/asserts/activity/groupPurchase.png'
;
import
morePieceImg
from
'@/asserts/activity/morePiece.png'
;
import
plummetImg
from
'@/asserts/activity/plummet.png'
;
import
preSaleImg
from
'@/asserts/activity/preSale.png'
;
import
secKillImg
from
'@/asserts/activity/secKill.png'
;
import
setMealImg
from
'@/asserts/activity/setMeal.png'
;
import
discountImg
from
'@/asserts/activity/discount.png'
;
import
specialOfferImg
from
'@/asserts/activity/specialOffer.png'
;
import
giveCouponImg
from
'@/asserts/activity/giveCoupon.png'
;
const
ACTIVITYS
=
[
"specialOffer"
,
"plummet"
,
"discount"
,
"fullQuantitySub"
,
"fullQuantityDiscount"
,
"fullMoneySub"
,
"fullMoneyDiscount"
,
"giveProduct"
,
"giveCoupon"
,
"morePiece"
,
"combination"
,
"groupPurchase"
,
"bargain"
,
"secKill"
,
"fullSwap"
,
"buySwap"
,
"preSale"
,
"setMeal"
,
"attempt"
];
type
ModuleType
=
{
title
:
string
,
visible
:
boolean
,
dataIndex
:
string
,
treeKey
:
string
,
}
const
ModuleContainer
=
()
=>
{
const
{
pageConfig
}
=
useSelector
([
'pageConfig'
]);
const
modules
=
useMemo
(()
=>
{
const
config
=
pageConfig
;
const
res
:
ModuleType
[]
=
[];
Object
.
keys
(
config
).
forEach
((
_item
)
=>
{
const
{
props
=
{}
}
=
config
[
_item
];
const
dataIndex
=
config
[
_item
]?.
otherProps
?.
type
;
if
(
ACTIVITYS
.
includes
(
dataIndex
))
{
const
visible
=
typeof
props
.
visible
===
'undefined'
?
true
:
(
props
as
any
)?.
visible
;
res
.
push
({
title
:
(
props
as
any
)?.
title
||
_item
,
visible
:
visible
,
dataIndex
:
dataIndex
,
treeKey
:
_item
,
});
}
});
return
res
;
},
[
pageConfig
]);
const
onModuleVisibleChange
=
(
checked
:
boolean
,
option
)
=>
{
const
props
=
pageConfig
[
option
.
treeKey
];
changeProps
({
treeKey
:
option
.
treeKey
,
props
:
{
...
props
,
visible
:
checked
}
});
};
const
imgMap
=
{
"attempt"
:
attemptImg
,
"bargain"
:
bargainImg
,
"buySwap"
:
buySwapImg
,
"combination"
:
combinationImg
,
"fullMoneyDiscount"
:
fullMoneyDiscountImg
,
"fullMoneySub"
:
fullMoneySubImg
,
"fullQuantityDiscount"
:
fullQuantityDiscountImg
,
"fullQuantitySub"
:
fullQuantitySubImg
,
"fullSwap"
:
fullSwapImg
,
"giveProduct"
:
giveProductImg
,
"groupPurchase"
:
groupPurchaseImg
,
"morePiece"
:
morePieceImg
,
"plummet"
:
plummetImg
,
"preSale"
:
preSaleImg
,
"secKill"
:
secKillImg
,
"setMeal"
:
setMealImg
,
"discount"
:
discountImg
,
"specialOffer"
:
specialOfferImg
,
"giveCoupon"
:
giveCouponImg
,
};
return
(
<
div
className=
{
styles
.
module
}
>
{
modules
.
map
((
_item
)
=>
{
const
{
visible
,
title
,
dataIndex
}
=
_item
;
return
(
<
div
className=
{
styles
.
moduleItem
}
key=
{
dataIndex
}
>
<
ComponentModule
image=
{
imgMap
[
dataIndex
]
}
treeKey=
{
_item
.
treeKey
}
title=
{
title
}
visible=
{
visible
}
onChange=
{
onModuleVisibleChange
}
dataIndex=
{
dataIndex
}
/>
</
div
>
);
})
}
</
div
>
);
};
export
default
ModuleContainer
;
src/pages/marketingManage/marketing/marketingActivitiesManagement/activePage/fixtures/components/ComponentTree/web.tsx
View file @
494d5a58
...
...
@@ -208,8 +208,8 @@ const COMPONENT_NAME = {
// combination: "Combination",
[
ACTIVITY_COMBINATION
]:
{
mobile
:
{
container
:
'Com
bination
'
,
childContainer
:
'Combination
.Item
'
container
:
'Com
modityList
'
,
childContainer
:
'Combination'
},
web
:
{
container
:
'WebCommodityContainer'
,
...
...
@@ -348,6 +348,38 @@ const WebComponentModule: React.FC<Iprops> = (props: Iprops) => {
const
newKey
=
childNodes
[
childNodes
.
length
-
1
]
+
1
if
(
platform
===
'mobile'
&&
_item
===
'combination'
)
{
addChildComponent
({
newKey
:
`
${
newKey
}
`
,
componentName
:
COMPONENT_NAME
[
_item
][
platform
][
'container'
],
parentPropName
:
''
,
parentKey
:
'0'
,
childProps
:
{
addBtnText
:
"添加子节点"
,
canDelete
:
true
,
childComponentName
:
COMPONENT_NAME
[
_item
][
platform
][
'childContainer'
],
childNodes
:
[],
childProps
:
{
addBtnText
:
"添加组合促销节点"
,
canDelete
:
true
,
childComponentName
:
'Combination.Item'
,
otherProps
:
{
type
:
`combinationItemProduct`
},
childProps
:
{
otherProps
:
{
type
:
`combinationItem`
},
}
},
otherProps
:
{
type
:
_item
},
props
:
{
visible
:
true
,
theme
:
0
,
title
:
ACTIVITYS_MAP
[
_item
].
title
},
title
:
ACTIVITYS_MAP
[
_item
].
title
,
}
})
return
;
}
addChildComponent
({
newKey
:
`
${
newKey
}
`
,
componentName
:
COMPONENT_NAME
[
_item
][
platform
][
'container'
],
...
...
src/pages/marketingManage/marketing/marketingActivitiesManagement/activePage/fixtures/components/EditPanel/editPanelForm.tsx
View file @
494d5a58
...
...
@@ -93,6 +93,11 @@ const EditPanelForm = () => {
}
const
componentType
=
(
selectedInfo
as
any
)?.
otherProps
?.
type
;
if
(
componentType
===
'combinationItemProduct'
)
{
handleOnClose
();
return
;
}
const
propsMapToValue
=
{
top
:
{
imageUrl
:
[{
name
:
'广告图'
,
url
:
selectedInfo
?.
props
?.
imageUrl
}]
...
...
@@ -139,14 +144,18 @@ const EditPanelForm = () => {
const
activityType
=
ACTIVITY_MAP
[
componentType
]
?
{
activityType
:
ACTIVITY_MAP
[
componentType
]
}
:
{};
const
isWithLabels
=
componentType
===
'suggestProductItem'
?
{
isWithLabels
:
true
}
:
{
isWithLabels
:
false
};
const
isWithMinType
=
minTypeToOne
.
includes
(
componentType
)
?
1
:
minTypeToTwo
.
includes
(
componentType
)
?
2
:
null
console
.
log
(
"isWithMinType"
,
isWithMinType
);
// console.log(hotItem".substring(0, 1));
formActions
.
setFieldState
(
'product'
,
(
fieldState
)
=>
{
const
[,
parentKey
]
=
selectedInfo
.
parentKey
.
split
(
'-'
);
const
disabledKeys
=
componentType
===
'suggestProductItem'
?
sameKeys
[
`suggestProduct_
${
parseInt
(
parentKey
)
-
1
}
`
]
:
componentType
===
'combinationItem'
?
sameKeys
[
`combination_
${
parseInt
(
parentKey
)
-
1
}
`
]
:
sameKeys
[
`
${
componentType
?.
substring
(
0
,
componentType
.
length
-
4
)}
`] || [];
FormPath.setIn(fieldState, 'props.x-component-props', {
activityImage: activityImage,
...activityType,
disabledKeys
:
componentType
===
'suggestProductItem'
?
sameKeys
[
`suggestProduct_
${
parseInt
(
parentKey
)
-
1
}
`
]
:
sameKeys
[
`
${
componentType
?.
substring
(
0
,
componentType
.
length
-
4
)}
`] || []
,
disabledKeys:
disabledKeys
,
...isWithLabels,
minType: isWithMinType,
});
...
...
src/pages/marketingManage/marketing/marketingActivitiesManagement/activePage/fixtures/components/Layouts/Combination/index.less
View file @
494d5a58
.combiantion {
margin-
top: 24
px;
padding: 0
8
px;
margin-
bottom: 12
px;
padding: 0
0
px;
.title {
font-size: 20px;
color: #fff;
...
...
src/pages/marketingManage/marketing/marketingActivitiesManagement/activePage/fixtures/components/Layouts/Combination/index.tsx
View file @
494d5a58
...
...
@@ -18,7 +18,10 @@ const Combination: React.FC<Iprops> & { Item: typeof CombinationItem } = (props:
const
{
children
,
className
,
title
,
theme
,
status
=
true
,
...
other
}
=
props
;
const
visible
=
status
const
classNameStr
=
cx
(
styles
.
combiantion
,
className
,
{
[
styles
.
hide
]:
!
visible
});
const
{
onClick
,
onMouseOver
,
getOperateState
}
=
props
as
any
;
const
divProps
=
{
onClick
,
onMouseOver
};
// const { onClick, onDrag, onDragEnd, onDragEnter, onDragStart, onMouseOver, getOperateState } = other as any;
const
count
=
React
.
Children
.
count
(
children
);
const
renderChildren
=
()
=>
{
...
...
@@ -37,8 +40,8 @@ const Combination: React.FC<Iprops> & { Item: typeof CombinationItem } = (props:
};
return
(
<
div
className=
{
classNameStr
}
{
...
other
}
>
<
p
className=
{
styles
.
title
}
>
{
title
}
</
p
>
<
div
className=
{
classNameStr
}
{
...
divProps
}
>
{
/* <p className={styles.title}>{title}</p> */
}
<
div
className=
{
styles
.
container
}
>
<
div
className=
{
styles
[
'container-title'
]
}
>
以下商品认选2件,只需800元
</
div
>
{
renderChildren
()
}
...
...
src/pages/marketingManage/marketing/marketingActivitiesManagement/activePage/fixtures/components/Layouts/CommodityList/combineSale.less
deleted
100644 → 0
View file @
40fa8356
.commodityGroupEmpty {
min-height: 430px;
display: flex;
flex-direction: row;
align-items: center;
justify-content: center;
padding: 12px;
border: 1px dashed #C8CACD;
}
.section {
// padding: 12px;
background: #fff;
border-radius: 8px;
margin-bottom: 8px;
.mainCommodity {
padding: 4px;
}
.content {
padding: 0 12px 12px 12px;
.title {
color: #252D37;
font-size: 16px;
font-weight: 600;
margin-bottom: 14px;
}
}
.list {
display: flex;
flex-direction: row;
flex-wrap: wrap;
margin-right: -12px;
.item {
padding-right: 12px;
flex-basis: 33.33%;
}
}
}
src/pages/marketingManage/marketing/marketingActivitiesManagement/activePage/fixtures/components/Layouts/CommodityList/combineSale.tsx
deleted
100644 → 0
View file @
40fa8356
import
React
,
{
useMemo
}
from
'react'
;
import
{
Commodity
,
Progress
}
from
'@linkseeks/design-ui'
;
import
{
identifier
}
from
'@babel/types'
;
import
{
PlusOutlined
}
from
'@ant-design/icons'
;
import
cs
from
'classnames'
;
import
styles
from
'./combineSale.less'
;
import
TabFooter
from
'./tabFooter'
;
interface
Iprops
{
className
:
string
,
onClick
:
()
=>
void
,
onDrag
:
()
=>
void
,
onDragEnd
:
()
=>
void
,
onDragEnter
:
()
=>
void
,
onDragStart
:
()
=>
void
,
onMouseOver
:
()
=>
void
,
draggable
?:
boolean
,
getOperateState
:
any
,
productImgUrl
?:
string
,
productName
?:
string
,
productId
?:
number
,
id
?:
number
,
price
?:
number
,
activityPrice
?:
number
,
}
const
CombineSale
:
React
.
FC
<
Iprops
>
=
(
props
:
Iprops
)
=>
{
const
{
className
,
onClick
,
onDrag
,
onDragEnd
,
onDragEnter
,
onDragStart
,
onMouseOver
,
...
other
}
=
props
;
const
divProps
=
{
onClick
,
onDrag
,
onDragEnd
,
onDragEnter
,
onDragStart
,
onMouseOver
,
};
const
isEmpty
=
useMemo
(()
=>
other
.
id
,
[
other
]);
if
(
!
isEmpty
)
{
return
(
<
div
className=
{
cs
(
styles
.
commodityGroupEmpty
,
className
)
}
{
...
divProps
}
>
<
div
><
PlusOutlined
style=
{
{
color
:
'#C8CACD'
}
}
/></
div
>
</
div
>
);
}
return
(
<
div
className=
{
className
}
{
...
divProps
}
>
<
div
className=
{
styles
.
section
}
>
<
div
className=
{
styles
.
mainCommodity
}
>
<
Commodity
name=
{
other
.
productName
}
image=
{
other
.
productImgUrl
}
mode=
"horizontal"
discountPrice=
{
other
.
activityPrice
}
tags=
{
[
"组合促销"
]
}
buyBtn=
{
false
}
/>
</
div
>
<
div
className=
{
styles
.
content
}
>
<
div
className=
{
styles
.
title
}
>
超值换购区(3选1)
</
div
>
<
div
className=
{
styles
.
list
}
>
{
[
1
].
map
((
_item
)
=>
{
return
(
<
div
className=
{
styles
.
item
}
key=
{
_item
}
>
<
Commodity
name=
{
"例子: 后端数据未确定"
}
image=
{
"https://shushangyun01.oss-cn-shenzhen.aliyuncs.com/src=http___photo.16pic.com_00_49_30_16pic_4930729_b.jpg&refer=http___photo.16picd098747f66234351b47d95ab5fc16f90.jpg"
}
mode=
"vertical"
footer=
{
<
div
></
div
>
}
tags=
{
[
"满300减20"
]
}
style=
{
{
padding
:
'0'
}
}
/>
</
div
>
);
})
}
</
div
>
<
TabFooter
discountPrice=
{
60
}
originalPrice=
{
50
}
/>
</
div
>
</
div
>
</
div
>
);
};
export
default
CombineSale
;
src/pages/marketingManage/marketing/marketingActivitiesManagement/activePage/fixtures/components/Layouts/CommodityList/index.tsx
View file @
494d5a58
...
...
@@ -9,7 +9,7 @@ import TabFooter from './tabFooter';
import
styles
from
'./index.less'
;
import
SwapCoupon
from
'./swapCoupon'
;
import
SwapProduct
from
'./swapProduct'
;
import
CombineSale
from
'./combineSale'
;
//
import CombineSale from './combineSale';
import
FlashSale
from
'./flashSale'
;
const
{
TabPane
}
=
Tabs
;
...
...
@@ -27,7 +27,7 @@ const CommodityList: React.FC<Iprops> & {
CommodityTab
:
typeof
CommodityTab
,
SwapCoupon
:
typeof
SwapCoupon
,
SwapProduct
:
typeof
SwapProduct
CombineSale
:
typeof
CombineSale
,
//
CombineSale: typeof CombineSale,
FlashSale
:
typeof
FlashSale
}
=
(
props
:
Iprops
)
=>
{
...
...
@@ -120,8 +120,12 @@ const CommodityItem: React.FC<Iprops> = (props: Iprops) => {
plummetPrice
,
...
otherRestProps
}
=
rest
as
any
;
const
activityLabel
=
activityList
?.
find
((
_item
)
=>
_item
.
id
===
activityId
);
const
withLabel
=
activityLabel
&&
activityLabel
.
label
?
{
tags
:
[
activityLabel
.
label
]}
:
{};
const
tags
=
{
tags
:
otherRestProps
?.
label
||
[]
}
const
withLabel
=
activityLabel
&&
activityLabel
.
label
?
{
tags
:
[
activityLabel
.
label
,
...
tags
.
tags
]}
:
tags
;
const
horizontalData
=
{
name
,
image
,
...
...
@@ -262,7 +266,7 @@ CommodityList.CommodityTab = CommodityGroup;
CommodityList
.
SwapCoupon
=
SwapCoupon
;
CommodityList
.
SwapProduct
=
SwapProduct
;
CommodityList
.
CombineSale
=
CombineSale
;
//
CommodityList.CombineSale = CombineSale;
CommodityList
.
FlashSale
=
FlashSale
;
export
default
CommodityList
;
src/pages/marketingManage/marketing/marketingActivitiesManagement/activePage/fixtures/components/Toolbar/index.tsx
View file @
494d5a58
...
...
@@ -5,6 +5,7 @@ import { Modal } from 'antd';
import
styles
from
'./index.less'
;
import
{
changeProps
,
STATE_PROPS
,
useSelector
}
from
'@linkseeks/design-react'
;
import
Color
from
'./color'
;
import
{
usePageStatus
}
from
'@/hooks/usePageStatus'
;
interface
Iprops
{
extra
?:
React
.
ReactNode
,
...
...
@@ -18,13 +19,15 @@ type SettingPanelType = {
const
Toolbar
:
React
.
FC
<
Iprops
>
=
(
props
:
Iprops
)
=>
{
const
{
pageConfig
}
=
useSelector
<
SettingPanelType
,
STATE_PROPS
>
([
'pageConfig'
]);
const
{
id
}
=
usePageStatus
();
const
color
=
pageConfig
?.[
0
]?.
props
?.
backgroundColor
;
const
{
title
,
extra
}
=
props
;
const
goback
=
()
=>
{
Modal
.
confirm
({
title
:
'确认离开装修页?'
,
onOk
:
()
=>
{
history
.
goBack
();
// history.goBack();
history
.
push
(
`/marketingManage/marketing/activitiesManagement/edit?id=
${
id
}
`
)
},
});
};
...
...
src/pages/settlementManage/platformSettlement/coupon/info/index.tsx
View file @
494d5a58
...
...
@@ -79,7 +79,7 @@ const ScoreInfo: React.FC = () => {
const loadingMsg = message.loading('正在导出', 0)
const { data } = await getSettleAccountsPlatformCouponSettlementPayableExport(
{ settlementId: id } as any,
{ responseType: 'blob', getResponse: true
}
{ responseType: 'blob', getResponse: true
, ctlType: 'none' },
);
loadingMsg();
let blob = new Blob([data as any]);
...
...
src/pages/settlementManage/platformSettlement/coupon/info/schema.tsx
View file @
494d5a58
...
...
@@ -2,17 +2,6 @@
import
{
FORM_FILTER_PATH
}
from
'@/formSchema/const'
;
import
{
ISchema
}
from
'@formily/antd'
;
const
commonTimeList
=
[
{
label
:
'今天'
,
value
:
1
},
{
label
:
'一周内'
,
value
:
2
},
{
label
:
'一个月内'
,
value
:
3
},
{
label
:
'三个月内'
,
value
:
4
},
{
label
:
'六个月内'
,
value
:
5
},
{
label
:
'一年内'
,
value
:
6
},
{
label
:
'一年前'
,
value
:
7
}
];
const
orderTime
=
[{
label
:
'下单时间(所有)'
,
value
:
0
}].
concat
(
commonTimeList
);
const
payTime
=
[{
label
:
'支付时间(所有)'
,
value
:
0
}].
concat
(
commonTimeList
);
/**
* 应收账款管理--物流单结算明细详情, 生产通知单结算明细
...
...
@@ -54,7 +43,7 @@ export const detailSchema: ISchema = {
},
},
properties
:
{
orderTime
:
{
"[orderStartTime, orderEndTime]"
:
{
type
:
'daterange'
,
'x-component-props'
:
{
placeholder
:
[
'下单开始时间'
,
'下单结束时间'
],
...
...
@@ -62,7 +51,7 @@ export const detailSchema: ISchema = {
},
},
payTime
:
{
"[payStartTime, payEndTime]"
:
{
type
:
'daterange'
,
'x-component-props'
:
{
placeholder
:
[
'支付开始时间'
,
'支付结束时间'
],
...
...
src/pages/settlementManage/platformSettlement/coupon/list/schema.tsx
View file @
494d5a58
...
...
@@ -66,13 +66,12 @@ export const schema: ISchema = {
status
:
{
type
:
'string'
,
enum
:
[
{
label
:
'
结算状态(所有)
'
,
value
:
0
},
{
label
:
'
所有
'
,
value
:
0
},
{
label
:
'待对账'
,
value
:
1
},
{
label
:
'待付款'
,
value
:
2
},
{
label
:
'待收款'
,
value
:
3
},
{
label
:
'已完成'
,
value
:
4
},
],
default
:
0
,
'x-component-props'
:
{
placeholder
:
'结算状态(全部)'
,
allowClear
:
true
,
...
...
src/utils/request.ts
View file @
494d5a58
...
...
@@ -113,7 +113,7 @@ class ApiRequest {
resolve
(
res
)
}
else
{
resolve
(
res
)
message
.
error
(
res
.
message
)
options
.
ctlType
===
'message'
&&
message
.
error
(
res
.
message
)
}
}).
catch
((
err
)
=>
{
...
...
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