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
d89556ff
Commit
d89556ff
authored
Oct 19, 2020
by
XieZhiXiong
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'dev' of
http://10.0.0.22:3000/lingxi/lingxi-business-paltform
into dev
parents
d7aa931c
115fcb15
Hide whitespace changes
Inline
Side-by-side
Showing
33 changed files
with
586 additions
and
265 deletions
+586
-265
afterServiceRoute.ts
config/routes/afterServiceRoute.ts
+15
-2
package.json
package.json
+2
-1
index.less
src/components/TableOperation/index.less
+0
-0
index.tsx
src/components/TableOperation/index.tsx
+1
-1
detail.tsx
...afterService/exchangeGoods/waitSubmitOrderList/detail.tsx
+2
-0
priceAttributeForm.tsx
...commodity/products/addProductsItem/priceAttributeForm.tsx
+9
-3
productDescFormDefault.tsx
...odity/products/addProductsItem/productDescFormDefault.tsx
+2
-2
index.tsx
src/pages/commodity/products/index.tsx
+6
-8
index.tsx
src/pages/lxMall/commodity/index.tsx
+7
-6
list.tsx
src/pages/lxMall/commodity/list.tsx
+3
-3
index.tsx
...lxMall/commodityDetail/components/BrowseRecords/index.tsx
+50
-40
index.less
...mponents/ProductDescription/components/Comment/index.less
+1
-1
index.less
...nts/ProductDescription/components/Introduction/index.less
+1
-0
index.less
...onents/ProductDescription/components/Recommand/index.less
+1
-1
index.tsx
...ponents/ProductDescription/components/Recommand/index.tsx
+29
-48
index.less
...ents/ProductDescription/components/TradeRecord/index.less
+1
-1
index.tsx
...l/commodityDetail/components/ProductDescription/index.tsx
+4
-3
index.tsx
src/pages/lxMall/commodityDetail/index.tsx
+80
-5
index.less
src/pages/lxMall/components/Header/index.less
+1
-1
index.tsx
src/pages/lxMall/components/Header/index.tsx
+25
-4
index.tsx
src/pages/lxMall/components/Information/index.tsx
+9
-9
index.less
src/pages/lxMall/components/InterestedCommodity/index.less
+1
-1
index.tsx
src/pages/lxMall/components/InterestedCommodity/index.tsx
+55
-23
index.tsx
src/pages/lxMall/components/Recommand/index.tsx
+160
-43
index.tsx
src/pages/lxMall/index/index.tsx
+34
-32
index.tsx
src/pages/lxMall/pointsMall/index.tsx
+9
-8
index.tsx
src/pages/lxMall/purchaseOrder/index.tsx
+27
-2
PositionSetting.tsx
src/pages/repositories/components/PositionSetting.tsx
+4
-2
shops.tsx
src/pages/systemSetting/collection/shops.tsx
+10
-5
index.tsx
src/pages/transaction/purchaseOrder/orderPreview/index.tsx
+4
-4
index.tsx
src/pages/transaction/saleOrder/orderPreview/index.tsx
+4
-4
index.ts
src/pages/transaction/saleOrder/utils/index.ts
+3
-0
index.ts
src/store/filter/index.ts
+26
-2
No files found.
config/routes/afterServiceRoute.ts
View file @
d89556ff
...
...
@@ -38,10 +38,23 @@ const AfterServiceRoute = {
},
{
// 待提交换货申请单新增或修改
path
:
'/memberCenter/afterService/exchange/waitSubmitOrderList/:type'
,
path
:
'/memberCenter/afterService/exchange/waitSubmitOrderList/add'
,
name
:
'waitSubmitOrderList'
,
hideInMenu
:
true
,
component
:
'@/pages/afterService/exchangeGoods/waitSubmitOrderList/detail'
},
{
// 待提交换货申请单新增或修改
path
:
'/memberCenter/afterService/exchange/waitSubmitOrderList/edit'
,
name
:
'waitSubmitOrderList'
,
hideInMenu
:
true
,
component
:
'@/pages/afterService/exchangeGoods/waitSubmitOrderList/detail'
},
{
// 待提交换货申请单新增或修改
path
:
'/memberCenter/afterService/exchange/waitSubmitOrderList/detail'
,
name
:
'waitSubmitOrderList'
,
hideInMenu
:
true
,
noMargin
:
true
,
component
:
'@/pages/afterService/exchangeGoods/waitSubmitOrderList/detail'
},
{
...
...
package.json
View file @
d89556ff
...
...
@@ -19,7 +19,8 @@
"test"
:
"umi-test"
,
"test:coverage"
:
"umi-test --coverage"
,
"start:cross"
:
"cross-env SITE_ID=352 yarn start"
,
"start:url"
:
"cross-env SITE_ID=1 BACK_GATEWAY=http://lingxi-all.wg.shushangyun.com yarn start"
"start:url"
:
"cross-env SITE_ID=1 BACK_GATEWAY=http://lingxi-all.wg.shushangyun.com yarn start"
,
"start:10"
:
"cross-env SITE_ID=1 BACK_GATEWAY=http://10.0.0.10:8100 yarn start"
},
"lint-staged"
:
{
"*.{js,jsx,less,md,json}"
:
[
...
...
src/
pages/commodity/produc
ts/TableOperation/index.less
→
src/
componen
ts/TableOperation/index.less
View file @
d89556ff
File moved
src/
pages/commodity/produc
ts/TableOperation/index.tsx
→
src/
componen
ts/TableOperation/index.tsx
View file @
d89556ff
...
...
@@ -24,7 +24,7 @@ const TableOperation:React.FC<TableOperationProps> = (props) => {
}
else
{
setOperationName
(()
=>
statusOperationMap
[
record
.
status
])
}
},
[])
},
[
record
])
return
(
<>
{
...
...
src/pages/afterService/exchangeGoods/waitSubmitOrderList/detail.tsx
View file @
d89556ff
...
...
@@ -28,6 +28,8 @@ const OrderDetail: React.FC<OrderDetailProps> = (props) => {
return
'提交换货申请单'
case
'edit'
:
return
'编辑换货申请单'
case
'detail'
:
return
'查看详情'
default
:
return
''
}
...
...
src/pages/commodity/products/addProductsItem/priceAttributeForm.tsx
View file @
d89556ff
...
...
@@ -52,6 +52,7 @@ const PriceAttributeForm: React.FC<Iprops> = (props) => {
const
[
minOrderNumber
,
setMinOrderNumber
]
=
useState
<
number
>
()
const
[
isBatchSetting
,
setIsBatchSetting
]
=
useState
<
boolean
>
(
false
)
//是否点击批量设置
const
flagRef
=
useRef
<
boolean
>
(
false
)
const
[
isChangePriceType
,
setIsChangePriceType
]
=
useState
<
boolean
>
(
false
)
// 价格类型是否有变动
const
[
colums
,
setColumns
]
=
useState
<
ColumnType
<
any
>
[]
>
()
const
{
ProductStore
}
=
store
...
...
@@ -309,12 +310,15 @@ const PriceAttributeForm: React.FC<Iprops> = (props) => {
_tableDataSource
=
_tableData
// 有前面tab变动引起的二次构建 需要清空价格数据
if
(
updateFlag
.
current
){
// ***** bug编辑积分商品(非现货价格)会导致价格类型变动引发重复渲染 *****
updateFlag
.
current
=
false
}
else
{
// ***** 编辑情况下且是积分商品 不做清空单价处理 *****
if
(
!
(
productInfoByEdit
?.
id
&&
planPrice
===
3
))
// if(!(history.location.query?.id && planPrice === 3)){
// _tableDataSource.map(item => item['单价'] = {})
// }
if
(
isChangePriceType
){
// 价格类型变动 清空价格
_tableDataSource
.
map
(
item
=>
item
[
'单价'
]
=
{})
}
}
setTableDataSource
(
productName
?
_tableDataSource
:
[])
// 通过商品名称来判断是否显示表格数据
...
...
@@ -418,6 +422,8 @@ const PriceAttributeForm: React.FC<Iprops> = (props) => {
setPriceForm
.
resetFields
()
setLadderPrice
(
false
)
setPlanPrice
(
v
.
target
.
value
)
setIsChangePriceType
(
true
)
console
.
log
(
'价格类型变动'
)
}
const
setPriceOk
=
()
=>
{
...
...
src/pages/commodity/products/addProductsItem/productDescFormDefault.tsx
View file @
d89556ff
...
...
@@ -168,7 +168,7 @@ const ProductDescFormDefualt: React.FC<{}> = (props) => {
}
<
div
className=
{
styles
.
descriptBox
}
>
<
div
className=
{
styles
.
middleAddBtn
}
>
<
ImgCrop
rotate
>
{
/* <ImgCrop rotate> */
}
<
Upload
{
...
uploadImgProps
}
>
<
Button
size=
"small"
type=
"text"
>
<
PlusOutlined
/>
...
...
@@ -176,7 +176,7 @@ const ProductDescFormDefualt: React.FC<{}> = (props) => {
<
br
/>
<
span
>
添加图片
</
span
>
</
Upload
>
</
ImgCrop
>
{
/* </ImgCrop> */
}
</
div
>
</
div
>
</
Spin
>
...
...
src/pages/commodity/products/index.tsx
View file @
d89556ff
...
...
@@ -20,7 +20,7 @@ import styles from "./index.less"
import
{
PublicApi
}
from
'@/services/api'
import
{
GetProductCommodityGetShopResponse
}
from
'@/services/ProductApi'
import
TableOperation
from
'
.
/TableOperation'
import
TableOperation
from
'
@/components
/TableOperation'
import
{
store
}
from
'@/store'
...
...
@@ -258,14 +258,12 @@ const Products: React.FC<{}> = () => {
}
return
(
<>
<
TableOperation
record=
{
record
}
statusOperationMap=
{
statusAndOperationList
}
operationHandler=
{
operationHandler
}
priorityOperationName=
"提交审核"
<
TableOperation
record=
{
record
}
statusOperationMap=
{
statusAndOperationList
}
operationHandler=
{
operationHandler
}
priorityOperationName=
"提交审核"
/>
</>
)
}
...
...
src/pages/lxMall/commodity/index.tsx
View file @
d89556ff
...
...
@@ -12,7 +12,7 @@ import { useLocalStore, observer } from 'mobx-react'
import
{
store
}
from
'@/store'
import
{
PublicApi
}
from
'@/services/api'
import
{
LAYOUT_TYPE
}
from
'@/constants'
import
{
Ge
tSearchShopEnterpriseGetCommodityListResponseDetail
}
from
'@/services/SearchApi'
import
{
Pos
tSearchShopEnterpriseGetCommodityListResponseDetail
}
from
'@/services/SearchApi'
import
bannerImg
from
'@/assets/imgs/banner_2.png'
import
arrowDownIcon
from
'@/assets/imgs/arrow_down.png'
import
arrowDownActiveIcon
from
'@/assets/imgs/arrow_down_active.png'
...
...
@@ -55,7 +55,7 @@ const Commodity: React.FC<CommodityPropsType> = (props) => {
const
{
query
:
{
categoryId
,
categoryName
,
brandId
,
brandName
,
priceType
}
}
=
props
.
location
const
[
loading
,
setLoading
]
=
useState
<
boolean
>
(
true
)
const
[
showType
,
setShowType
]
=
useState
<
number
>
(
1
)
// 展示方式:1:矩阵排列; 2:列表排列
const
[
commodityList
,
setCommodityList
]
=
useState
<
Ge
tSearchShopEnterpriseGetCommodityListResponseDetail
[]
>
([])
const
[
commodityList
,
setCommodityList
]
=
useState
<
Pos
tSearchShopEnterpriseGetCommodityListResponseDetail
[]
>
([])
const
[
current
,
setCurrent
]
=
useState
<
number
>
(
1
)
const
[
pageSize
]
=
useState
<
number
>
(
20
)
const
[
totalCount
,
setTotalCount
]
=
useState
<
number
>
(
0
)
...
...
@@ -121,25 +121,25 @@ const Commodity: React.FC<CommodityPropsType> = (props) => {
let
headers
=
{}
switch
(
layoutType
)
{
case
LAYOUT_TYPE
.
mall
:
getFn
=
PublicApi
.
ge
tSearchShopEnterpriseGetCommodityList
getFn
=
PublicApi
.
pos
tSearchShopEnterpriseGetCommodityList
break
case
LAYOUT_TYPE
.
shop
:
param
.
storeId
=
shopId
getFn
=
PublicApi
.
ge
tSearchShopStoreGetCommodityList
getFn
=
PublicApi
.
pos
tSearchShopStoreGetCommodityList
break
case
LAYOUT_TYPE
.
channel
:
param
.
channelMemberId
=
memberId
headers
=
{
type
:
3
}
getFn
=
PublicApi
.
ge
tSearchShopChannelGetCommodityList
getFn
=
PublicApi
.
pos
tSearchShopChannelGetCommodityList
break
case
LAYOUT_TYPE
.
ichannel
:
param
.
channelMemberId
=
memberId
headers
=
{
type
:
4
}
getFn
=
PublicApi
.
ge
tSearchShopChannelGetCommodityList
getFn
=
PublicApi
.
pos
tSearchShopChannelGetCommodityList
break
}
...
...
@@ -147,6 +147,7 @@ const Commodity: React.FC<CommodityPropsType> = (props) => {
getFn
&&
getFn
(
param
,
{
headers
}).
then
(
res
=>
{
setLoading
(
false
)
if
(
res
.
code
===
1000
)
{
message
.
destroy
()
setCommodityList
(
res
.
data
.
data
)
setTotalCount
(
res
.
data
.
totalCount
)
}
...
...
src/pages/lxMall/commodity/list.tsx
View file @
d89556ff
...
...
@@ -2,20 +2,20 @@ import React from 'react'
import
cx
from
'classnames'
import
{
Skeleton
}
from
'antd'
import
{
LAYOUT_TYPE
}
from
'@/constants'
import
{
Ge
tSearchShopEnterpriseGetCommodityListResponseDetail
}
from
'@/services/SearchApi'
import
{
Pos
tSearchShopEnterpriseGetCommodityListResponseDetail
}
from
'@/services/SearchApi'
import
{
priceFormat
,
numFormat
}
from
'@/utils/numberFomat'
import
creditIcon
from
'@/assets/imgs/credit_icon.png'
import
styles
from
'./list.less'
interface
CommodityListPropsType
{
showType
:
number
;
commodityList
:
Ge
tSearchShopEnterpriseGetCommodityListResponseDetail
[]
commodityList
:
Pos
tSearchShopEnterpriseGetCommodityListResponseDetail
[]
layoutType
:
LAYOUT_TYPE
}
const
CommodityList
:
React
.
FC
<
CommodityListPropsType
>
=
(
props
)
=>
{
const
{
showType
,
commodityList
=
[],
layoutType
=
LAYOUT_TYPE
.
mall
}
=
props
const
renderPrice
=
(
commodityItem
:
Ge
tSearchShopEnterpriseGetCommodityListResponseDetail
)
=>
{
const
renderPrice
=
(
commodityItem
:
Pos
tSearchShopEnterpriseGetCommodityListResponseDetail
)
=>
{
switch
(
commodityItem
.
priceType
)
{
// 现货价格
case
1
:
...
...
src/pages/lxMall/commodityDetail/components/BrowseRecords/index.tsx
View file @
d89556ff
import
React
,
{
useRef
}
from
'react'
import
React
,
{
useRef
,
useState
,
useEffect
}
from
'react'
import
{
Carousel
}
from
'antd'
import
{
LeftOutlined
,
RightOutlined
}
from
'@ant-design/icons'
import
cx
from
'classnames'
import
{
COMMODITY_TYPE
}
from
'@/constants'
import
{
COMMODITY_TYPE
,
LAYOUT_TYPE
}
from
'@/constants'
import
{
priceFormat
,
numFormat
}
from
'@/utils/numberFomat'
import
ImageBox
from
'@/components/ImageBox'
import
styles
from
'./index.less'
interface
BrowseRecordsPropsType
{
priceType
:
COMMODITY_TYPE
priceType
:
COMMODITY_TYPE
,
dataList
:
any
,
layoutType
:
LAYOUT_TYPE
,
}
const
BrowseRecords
:
React
.
FC
<
BrowseRecordsPropsType
>
=
(
props
)
=>
{
const
{
priceType
}
=
props
const
actionRef
=
useRef
<
any
>
(
)
const
{
priceType
,
dataList
,
layoutType
}
=
props
const
[
list
,
setList
]
=
useState
<
any
>
([]
)
const
product_list
=
[
{
imgUrl
:
'https://woodmartcdn-cec2.kxcdn.com/wp-content/uploads/2016/09/product-furniture-1-6.jpg'
,
price
:
'19.00'
},
{
imgUrl
:
'https://woodmartcdn-cec2.kxcdn.com/wp-content/uploads/2016/09/product-furniture-1-6.jpg'
,
price
:
'19.00'
},
{
imgUrl
:
'https://woodmartcdn-cec2.kxcdn.com/wp-content/uploads/2016/09/product-furniture-1-6.jpg'
,
price
:
'19.00'
},
{
imgUrl
:
'https://woodmartcdn-cec2.kxcdn.com/wp-content/uploads/2016/09/product-furniture-1-6.jpg'
,
price
:
'19.00'
},
{
imgUrl
:
'https://woodmartcdn-cec2.kxcdn.com/wp-content/uploads/2016/09/product-furniture-1-6.jpg'
,
price
:
'19.00'
},
]
const
actionRef
=
useRef
<
any
>
()
const
arrGroup
=
(
array
,
subGroupLength
)
=>
{
let
index
=
0
;
...
...
@@ -45,9 +28,29 @@ const BrowseRecords: React.FC<BrowseRecordsPropsType> = (props) => {
return
newArray
;
}
const
new_product_list
=
arrGroup
(
product_list
,
3
)
useEffect
(()
=>
{
if
(
dataList
)
{
setList
(
arrGroup
(
dataList
,
3
))
}
},
[
dataList
])
return
priceType
?
(
const
getCommodityDetailLink
=
(
item
)
=>
{
let
link
=
""
switch
(
layoutType
)
{
case
LAYOUT_TYPE
.
channel
:
link
=
`/channelmall/commodity/detail?id=
${
item
.
id
}
&type=
${
item
.
priceType
}
&channelId=
${
btoa
(
JSON
.
stringify
({
shopId
:
item
.
storeId
,
memberId
:
item
.
memberId
}))}
`
break
case
LAYOUT_TYPE
.
ichannel
:
link
=
`/ichannelmall/commodity/detail?id=
${
item
.
id
}
&type=
${
item
.
priceType
}
&channelId=
${
btoa
(
JSON
.
stringify
({
shopId
:
item
.
storeId
,
memberId
:
item
.
memberId
}))}
`
break
default
:
link
=
`/shop/commodity/detail?id=
${
item
.
id
}
&type=
${
item
.
priceType
}
&shopId=
${
btoa
(
JSON
.
stringify
({
shopId
:
item
.
storeId
,
memberId
:
item
.
memberId
}))}
`
break
}
return
link
}
return
(
priceType
&&
list
.
length
>
0
)
?
(
<
div
className=
{
styles
.
browse_records
}
>
<
div
className=
{
styles
.
browse_records_title
}
>
<
span
className=
{
styles
.
browse_records_title_line
}
></
span
>
...
...
@@ -57,19 +60,20 @@ const BrowseRecords: React.FC<BrowseRecordsPropsType> = (props) => {
<
div
className=
{
styles
.
carousel_wrap
}
>
<
Carousel
ref=
{
actionRef
}
>
{
new_product_
list
.
map
((
item
,
index
)
=>
(
list
&&
list
.
map
((
item
,
index
)
=>
(
<
div
key=
{
`product_list_${index}`
}
className=
{
styles
.
browse_records_product_list
}
>
{
item
.
map
((
childItem
,
childIndex
)
=>
(
<
div
key=
{
`browse_records_product_list_item_${childIndex}`
}
className=
{
styles
.
browse_records_product_list_item
}
>
<
div
className=
{
styles
.
product_img_box
}
>
<
img
src=
{
childItem
.
imgUrl
}
/>
</
div
>
{
priceType
===
COMMODITY_TYPE
.
integral
?
<
div
className=
{
cx
(
styles
.
product_price
,
styles
.
integral
)
}
>
2,000~3,000积分
</
div
>
:
<
div
className=
{
styles
.
product_price
}
>
¥
{
childItem
.
price
}
</
div
>
}
<
a
href=
{
getCommodityDetailLink
(
childItem
)
}
title=
{
childItem
.
name
}
target=
"_blank"
>
<
div
className=
{
styles
.
product_img_box
}
>
<
ImageBox
width=
{
110
}
height=
{
110
}
imgUrl=
{
childItem
.
mainPic
}
direction=
"column"
/>
</
div
>
{
priceType
===
COMMODITY_TYPE
.
integral
?
<
div
className=
{
cx
(
styles
.
product_price
,
styles
.
integral
)
}
>
{
numFormat
(
childItem
.
min
)
}
~
{
numFormat
(
childItem
.
max
)
}
积分
</
div
>
:
<
div
className=
{
styles
.
product_price
}
>
¥
{
priceFormat
(
childItem
.
min
)
}
</
div
>
}
</
a
>
</
div
>
))
}
...
...
@@ -77,8 +81,14 @@ const BrowseRecords: React.FC<BrowseRecordsPropsType> = (props) => {
))
}
</
Carousel
>
<
LeftOutlined
className=
{
cx
(
styles
.
common_arrow_btn
,
styles
.
prev
)
}
onClick=
{
()
=>
actionRef
.
current
.
prev
()
}
/>
<
RightOutlined
className=
{
cx
(
styles
.
common_arrow_btn
,
styles
.
next
)
}
onClick=
{
()
=>
actionRef
.
current
.
next
()
}
/>
{
list
.
length
>
1
&&
(
<>
<
LeftOutlined
className=
{
cx
(
styles
.
common_arrow_btn
,
styles
.
prev
)
}
onClick=
{
()
=>
actionRef
.
current
.
prev
()
}
/>
<
RightOutlined
className=
{
cx
(
styles
.
common_arrow_btn
,
styles
.
next
)
}
onClick=
{
()
=>
actionRef
.
current
.
next
()
}
/>
</>
)
}
</
div
>
</
div
>
)
:
null
...
...
src/pages/lxMall/commodityDetail/components/ProductDescription/components/Comment/index.less
View file @
d89556ff
.comment {
margin-
top
: 20px;
margin-
bottom
: 20px;
.comment_title {
height: 40px;
...
...
src/pages/lxMall/commodityDetail/components/ProductDescription/components/Introduction/index.less
View file @
d89556ff
.introduction {
margin-bottom: 20px;
.introduction_list {
display: flex;
...
...
src/pages/lxMall/commodityDetail/components/ProductDescription/components/Recommand/index.less
View file @
d89556ff
.recommand {
margin-
top
: 20px;
margin-
bottom
: 20px;
.recommand_title {
height: 40px;
...
...
src/pages/lxMall/commodityDetail/components/ProductDescription/components/Recommand/index.tsx
View file @
d89556ff
import
React
from
'react'
import
{
LAYOUT_TYPE
}
from
'@/constants'
import
ImageBox
from
'@/components/ImageBox'
import
styles
from
'./index.less'
const
Recommand
:
React
.
FC
=
()
=>
{
interface
RecommandPropsTyep
{
dataList
:
any
,
layoutType
?:
LAYOUT_TYPE
}
const
Recommand
:
React
.
FC
<
RecommandPropsTyep
>
=
(
props
)
=>
{
const
{
dataList
,
layoutType
}
=
props
const
product_list
=
[
{
imgUrl
:
'https://woodmartcdn-cec2.kxcdn.com/wp-content/uploads/2016/09/product-furniture-1-6.jpg'
,
name
:
'0.8-1.0mm黑色手折纹胎水牛皮黄牛头层自然摔纹硬度适中偏软…'
,
price
:
'19.00'
},
{
imgUrl
:
'https://woodmartcdn-cec2.kxcdn.com/wp-content/uploads/2016/09/product-furniture-1-6.jpg'
,
name
:
'0.8-1.0mm黑色手折纹胎水牛皮黄牛头层自然摔纹硬度适中偏软…'
,
price
:
'19.00'
},
{
imgUrl
:
'https://woodmartcdn-cec2.kxcdn.com/wp-content/uploads/2016/09/product-furniture-1-6.jpg'
,
name
:
'0.8-1.0mm黑色手折纹胎水牛皮黄牛头层自然摔纹硬度适中偏软…'
,
price
:
'19.00'
},
{
imgUrl
:
'https://woodmartcdn-cec2.kxcdn.com/wp-content/uploads/2016/09/product-furniture-1-6.jpg'
,
name
:
'0.8-1.0mm黑色手折纹胎水牛皮黄牛头层自然摔纹硬度适中偏软…'
,
price
:
'19.00'
},
{
imgUrl
:
'https://woodmartcdn-cec2.kxcdn.com/wp-content/uploads/2016/09/product-furniture-1-6.jpg'
,
name
:
'0.8-1.0mm黑色手折纹胎水牛皮黄牛头层自然摔纹硬度适中偏软…'
,
price
:
'19.00'
},
{
imgUrl
:
'https://woodmartcdn-cec2.kxcdn.com/wp-content/uploads/2016/09/product-furniture-1-6.jpg'
,
name
:
'0.8-1.0mm黑色手折纹胎水牛皮黄牛头层自然摔纹硬度适中偏软…'
,
price
:
'19.00'
},
{
imgUrl
:
'https://woodmartcdn-cec2.kxcdn.com/wp-content/uploads/2016/09/product-furniture-1-6.jpg'
,
name
:
'0.8-1.0mm黑色手折纹胎水牛皮黄牛头层自然摔纹硬度适中偏软…'
,
price
:
'19.00'
},
{
imgUrl
:
'https://woodmartcdn-cec2.kxcdn.com/wp-content/uploads/2016/09/product-furniture-1-6.jpg'
,
name
:
'0.8-1.0mm黑色手折纹胎水牛皮黄牛头层自然摔纹硬度适中偏软…'
,
price
:
'19.00'
},
]
const
getCommodityDetailLink
=
(
item
)
=>
{
let
link
=
""
switch
(
layoutType
)
{
case
LAYOUT_TYPE
.
channel
:
link
=
`/channelmall/commodity/detail?id=
${
item
.
id
}
&type=
${
item
.
priceType
}
&channelId=
${
btoa
(
JSON
.
stringify
({
shopId
:
item
.
storeId
,
memberId
:
item
.
memberId
}))}
`
break
case
LAYOUT_TYPE
.
ichannel
:
link
=
`/ichannelmall/commodity/detail?id=
${
item
.
id
}
&type=
${
item
.
priceType
}
&channelId=
${
btoa
(
JSON
.
stringify
({
shopId
:
item
.
storeId
,
memberId
:
item
.
memberId
}))}
`
break
default
:
link
=
`/shop/commodity/detail?id=
${
item
.
id
}
&type=
${
item
.
priceType
}
&shopId=
${
btoa
(
JSON
.
stringify
({
shopId
:
item
.
storeId
,
memberId
:
item
.
memberId
}))}
`
break
}
return
link
}
return
(
return
(
dataList
&&
dataList
.
length
>
0
)
&&
(
<
div
className=
{
styles
.
recommand
}
>
<
div
className=
{
styles
.
recommand_title
}
>
买家还在看
</
div
>
<
div
className=
{
styles
.
recommand_list
}
>
{
product_l
ist
.
map
((
item
,
index
)
=>
(
<
a
href=
"/shop/commodity/detail?id=asdjflewjfe&type=prompt"
key=
{
`recommand_list_item_${index}`
}
>
dataList
&&
dataL
ist
.
map
((
item
,
index
)
=>
(
<
a
href=
{
getCommodityDetailLink
(
item
)
}
key=
{
`recommand_list_item_${index}`
}
>
<
div
className=
{
styles
.
recommand_list_item
}
>
<
div
className=
{
styles
.
recommand_list_item_img
}
>
<
img
src=
{
item
.
imgUrl
}
/>
<
ImageBox
width=
{
184
}
height=
{
184
}
imgUrl=
{
item
.
mainPic
}
direction=
"column"
/>
</
div
>
<
div
className=
{
styles
.
recommand_list_item_name
}
>
{
item
.
name
}
</
div
>
<
div
className=
{
styles
.
recommand_list_item_price
}
>
<
span
>
¥
</
span
>
{
item
.
price
}
{
item
.
min
}
</
div
>
</
div
>
</
a
>
...
...
src/pages/lxMall/commodityDetail/components/ProductDescription/components/TradeRecord/index.less
View file @
d89556ff
.trade_record {
margin-
top
: 20px;
margin-
bottom
: 20px;
.trade_record_title {
height: 40px;
...
...
src/pages/lxMall/commodityDetail/components/ProductDescription/index.tsx
View file @
d89556ff
...
...
@@ -12,11 +12,12 @@ import styles from './index.less'
const
{
Link
}
=
Anchor
interface
ProductDescriptionPropsType
{
commodityDetail
:
GetSearchShopStoreGetCommodityDetailResponse
commodityDetail
:
GetSearchShopStoreGetCommodityDetailResponse
,
dataList
:
any
,
}
const
ProductDescription
:
React
.
FC
<
ProductDescriptionPropsType
>
=
(
props
)
=>
{
const
{
commodityDetail
}
=
props
const
{
commodityDetail
,
dataList
}
=
props
const
[
currentAnchor
,
setCurrentAnchor
]
=
useState
<
string
>
(
"#introduction"
)
const
handleAnchorChange
=
(
currentActiveLink
:
string
)
=>
{
...
...
@@ -40,7 +41,7 @@ const ProductDescription: React.FC<ProductDescriptionPropsType> = (props) => {
<
Introduction
commodityDetail=
{
commodityDetail
}
/>
<
TradeRecord
/>
<
Comment
/>
<
Recommand
/>
<
Recommand
dataList=
{
dataList
}
{
...
props
}
/>
</
div
>
)
}
...
...
src/pages/lxMall/commodityDetail/index.tsx
View file @
d89556ff
...
...
@@ -71,6 +71,8 @@ const CommodityDetail = (props) => {
const
[
buyCount
,
setBuyCount
]
=
useState
<
number
>
(
1
)
const
[
purchaseCount
,
setPurchaseCount
]
=
useState
<
number
>
(
0
)
const
[
payWayList
,
setPayWayList
]
=
useState
([])
const
[
commonCategoryCommodityList
,
setCommonCategoryCommodityList
]
=
useState
([])
let
clickFlag
=
true
useEffect
(()
=>
{
...
...
@@ -78,6 +80,75 @@ const CommodityDetail = (props) => {
},
[])
/**
* 获取”买家还在看“商品列表
* @param categoryId
* @param priceType
*/
const
fetchCommonCategoryCommodityList
=
(
categoryId
:
number
,
priceType
:
number
)
=>
{
let
param
:
any
=
{
current
:
1
,
pageSize
:
10
,
categoryId
}
let
headers
=
{}
let
getListFn
switch
(
layoutType
)
{
case
LAYOUT_TYPE
.
shop
:
switch
(
priceType
)
{
case
COMMODITY_TYPE
.
prompt
:
getListFn
=
PublicApi
.
postSearchShopEnterpriseGetCommodityList
break
case
COMMODITY_TYPE
.
inquiry
:
getListFn
=
PublicApi
.
postSearchShopScoreGetCommodityList
break
case
COMMODITY_TYPE
.
integral
:
break
default
:
break
}
break
;
case
LAYOUT_TYPE
.
channel
:
if
(
priceType
===
COMMODITY_TYPE
.
prompt
)
{
param
.
channelMemberId
=
memberId
headers
=
{
type
:
3
}
}
else
{
param
.
channelMemberId
=
memberId
param
.
priceType
=
3
headers
=
{
type
:
3
}
}
getListFn
=
PublicApi
.
postSearchShopChannelGetCommodityList
break
case
LAYOUT_TYPE
.
ichannel
:
if
(
priceType
===
COMMODITY_TYPE
.
prompt
)
{
param
.
channelMemberId
=
memberId
headers
=
{
type
:
4
}
}
else
{
param
.
channelMemberId
=
memberId
param
.
priceType
=
3
headers
=
{
type
:
4
}
}
getListFn
=
PublicApi
.
postSearchShopChannelGetCommodityList
break
default
:
break
;
}
getListFn
&&
getListFn
(
param
,
{
headers
}).
then
(
res
=>
{
if
(
res
.
code
===
1000
)
{
message
.
destroy
()
setCommonCategoryCommodityList
(
res
.
data
.
data
)
}
})
}
/**
* 获取商品详情
*/
const
fetchDetail
=
()
=>
{
...
...
@@ -109,10 +180,14 @@ const CommodityDetail = (props) => {
getDetailFn
&&
getDetailFn
(
params
,
{
headers
}).
then
(
res
=>
{
if
(
res
.
code
===
1000
)
{
// res.data.priceType = 3
setCommodityDetail
(
res
.
data
)
initAttributeAndValueList
(
res
.
data
)
getPayWayListByMemberId
(
res
.
data
?.
memberId
)
if
(
res
.
data
.
customerCategory
.
category
)
{
fetchCommonCategoryCommodityList
(
res
.
data
.
customerCategory
.
category
.
id
,
res
.
data
.
priceType
)
}
if
(
getAuth
()
&&
res
.
data
?.
isMemberPrice
)
{
getMemberCredit
(
res
.
data
?.
memberId
,
res
.
data
?.
memberRoleId
)
}
...
...
@@ -122,7 +197,7 @@ const CommodityDetail = (props) => {
/**
* 获取供货商的支付方式
* @param memberId
* @param memberId
*/
const
getPayWayListByMemberId
=
(
memberId
:
number
)
=>
{
if
(
!
memberId
)
{
...
...
@@ -842,7 +917,7 @@ const CommodityDetail = (props) => {
</
div
>
</
div
>
</
div
>
<
BrowseRecords
priceType=
{
commodityDetail
?.
priceType
}
/>
<
BrowseRecords
priceType=
{
commodityDetail
?.
priceType
}
dataList=
{
commonCategoryCommodityList
}
{
...
props
}
/>
</
div
>
<
div
className=
{
styles
.
commodity_detail_body
}
>
<
div
className=
{
styles
.
commodity_detail_body_left
}
>
...
...
@@ -852,7 +927,7 @@ const CommodityDetail = (props) => {
<
Interested
priceType=
{
commodityDetail
?.
priceType
}
/>
</
div
>
<
div
className=
{
styles
.
commodity_detail_body_right
}
>
<
ProductDescription
commodityDetail=
{
commodityDetail
}
/>
<
ProductDescription
commodityDetail=
{
commodityDetail
}
dataList=
{
commonCategoryCommodityList
}
{
...
props
}
/>
</
div
>
</
div
>
</
div
>
...
...
@@ -876,7 +951,7 @@ const CommodityDetail = (props) => {
<
div
className=
{
cx
(
styles
.
add_success_btn
,
styles
.
primary
)
}
onClick=
{
()
=>
history
.
push
(
getPurchaseOrderLink
())
}
>
去结算
</
div
>
<
div
className=
{
styles
.
add_success_btn
}
onClick=
{
()
=>
setAddSuccessVisible
(
false
)
}
>
继续购物
</
div
>
</
div
>
<
InterestedCommodity
/>
<
InterestedCommodity
dataList=
{
commonCategoryCommodityList
}
{
...
props
}
/>
</
DialogModal
>
</
div
>
)
...
...
src/pages/lxMall/components/Header/index.less
View file @
d89556ff
...
...
@@ -19,7 +19,7 @@
top: 0;
left: 0;
z-index: 999;
border-bottom: 1px solid var(--mall_main_color);
//
border-bottom: 1px solid var(--mall_main_color);
padding-top: 0;
transition: all .5s;
...
...
src/pages/lxMall/components/Header/index.tsx
View file @
d89556ff
...
...
@@ -19,11 +19,32 @@ const Header: React.FC<HeaderPropsType> = (props) => {
const
[
count
,
setCount
]
=
useState
<
number
>
(
0
)
const
{
search
}
=
history
.
location
.
query
let
handleScroll
=
()
=>
{
const
scrollTop
=
document
.
documentElement
.
scrollTop
||
document
.
body
.
scrollTop
;
const
floatSearch
=
document
.
getElementById
(
"floatSearch"
)
if
(
scrollTop
>
500
)
{
if
(
!
hasClass
(
floatSearch
.
classList
,
'show'
))
{
floatSearch
.
classList
.
add
(
styles
.
show
)
}
}
else
{
if
(
hasClass
(
floatSearch
.
classList
,
'show'
))
{
floatSearch
.
classList
.
remove
(
styles
.
show
)
}
}
}
const
hasClass
=
(
list
,
className
)
=>
{
let
result
=
false
list
&&
list
.
forEach
(
item
=>
{
if
(
item
&&
item
.
indexOf
(
className
)
>
-
1
)
{
result
=
true
}
})
return
result
}
useEffect
(()
=>
{
// setTimeout(() => {
// let floatSearch = document.getElementById("floatSearch")
// floatSearch.classList.add(styles.show)
// }, 4000);
window
.
addEventListener
(
'scroll'
,
handleScroll
)
},
[])
useEffect
(()
=>
{
...
...
src/pages/lxMall/components/Information/index.tsx
View file @
d89556ff
import
React
,
{
useEffect
,
useState
}
from
'react'
import
React
,
{
useEffect
,
useState
,
Fragment
}
from
'react'
import
{
PublicApi
}
from
'@/services/api'
import
{
GetManageContentColumnAllResponse
}
from
'@/services/PassApi'
import
ImageBox
from
'@/components/ImageBox'
...
...
@@ -123,10 +123,10 @@ const Information: React.FC<InformationPropsType> = (props) => {
<
div
className=
{
styles
.
information_list_item_body
}
>
{
(
leadLeftNews
&&
leadLeftNews
.
length
>
0
)
&&
leadLeftNews
.
map
((
item
,
index
)
=>
index
<=
3
&&
(
<>
<
Fragment
key=
{
`news_list_item_left_${item.id}`
}
>
{
index
===
0
?
(
<
a
href=
{
toDetailLink
(
item
.
id
)
}
key=
{
`information_recommand_${item.id}`
}
>
<
a
href=
{
toDetailLink
(
item
.
id
)
}
>
<
div
className=
{
styles
.
information_recommand
}
>
<
div
className=
{
styles
.
information_recommand_img
}
>
<
ImageBox
width=
{
220
}
height=
{
146
}
imgUrl=
{
item
.
imageUrl
}
/>
...
...
@@ -139,7 +139,7 @@ const Information: React.FC<InformationPropsType> = (props) => {
</
div
>
</
a
>
)
:
(
<
a
href=
{
toDetailLink
(
item
.
id
)
}
key=
{
`news_list_item_${item.id}`
}
>
<
a
href=
{
toDetailLink
(
item
.
id
)
}
>
<
div
className=
{
styles
.
news_list_item
}
>
<
div
className=
{
styles
.
news_list_item_title
}
>
{
item
.
title
}
</
div
>
<
div
className=
{
styles
.
news_list_item_date
}
>
{
(
moment
(
item
.
createTime
).
format
(
'YYYY-MM-DD HH:mm:ss'
))
}
</
div
>
...
...
@@ -147,7 +147,7 @@ const Information: React.FC<InformationPropsType> = (props) => {
</
a
>
)
}
</>
</
Fragment
>
))
}
</
div
>
...
...
@@ -156,10 +156,10 @@ const Information: React.FC<InformationPropsType> = (props) => {
<
div
className=
{
styles
.
information_list_item_body
}
>
{
(
leadRightNews
&&
leadRightNews
.
length
>
0
)
&&
leadRightNews
.
map
((
item
,
index
)
=>
index
<=
3
&&
(
<>
<
Fragment
key=
{
`information_recommand_right_${item.id}`
}
>
{
index
===
0
?
(
<
a
href=
{
toDetailLink
(
item
.
id
)
}
key=
{
`information_recommand_${index}`
}
>
<
a
href=
{
toDetailLink
(
item
.
id
)
}
>
<
div
className=
{
styles
.
information_recommand
}
>
<
div
className=
{
styles
.
information_recommand_img
}
>
<
ImageBox
width=
{
220
}
height=
{
146
}
imgUrl=
{
item
.
imageUrl
}
/>
...
...
@@ -172,7 +172,7 @@ const Information: React.FC<InformationPropsType> = (props) => {
</
div
>
</
a
>
)
:
(
<
a
href=
{
toDetailLink
(
item
.
id
)
}
key=
{
`news_list_item_${index}`
}
>
<
a
href=
{
toDetailLink
(
item
.
id
)
}
>
<
div
className=
{
styles
.
news_list_item
}
>
<
div
className=
{
styles
.
news_list_item_title
}
>
{
item
.
title
}
</
div
>
<
div
className=
{
styles
.
news_list_item_date
}
>
{
(
moment
(
item
.
createTime
).
format
(
'YYYY-MM-DD HH:mm:ss'
))
}
</
div
>
...
...
@@ -180,7 +180,7 @@ const Information: React.FC<InformationPropsType> = (props) => {
</
a
>
)
}
</>
</
Fragment
>
))
}
</
div
>
...
...
src/pages/lxMall/components/InterestedCommodity/index.less
View file @
d89556ff
...
...
@@ -59,7 +59,7 @@
margin-top: 5px;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp:
2
;
-webkit-line-clamp:
1
;
text-overflow: ellipsis;
overflow: hidden;
-webkit-box-orient: vertical;
...
...
src/pages/lxMall/components/InterestedCommodity/index.tsx
View file @
d89556ff
import
React
from
'react'
import
React
,
{
useState
,
useEffect
}
from
'react'
import
{
LeftOutlined
,
RightOutlined
}
from
'@ant-design/icons'
import
cx
from
'classnames'
import
ImageBox
from
'@/components/ImageBox'
import
{
LAYOUT_TYPE
}
from
'@/constants'
import
{
priceFormat
}
from
'@/utils/numberFomat'
import
styles
from
'./index.less'
import
url
from
'*.svg'
const
InterestedCommodity
:
React
.
FC
=
()
=>
{
interface
InterestedCommodityPropsType
{
dataList
:
any
,
layoutType
?:
LAYOUT_TYPE
}
const
InterestedCommodity
:
React
.
FC
<
InterestedCommodityPropsType
>
=
(
props
)
=>
{
const
{
dataList
,
layoutType
}
=
props
const
[
list
,
setList
]
=
useState
<
any
>
([])
const
arrGroup
=
(
array
,
subGroupLength
)
=>
{
let
index
=
0
;
let
newArray
=
[];
while
(
index
<
array
.
length
)
{
newArray
.
push
(
array
.
slice
(
index
,
index
+=
subGroupLength
));
}
return
newArray
;
}
useEffect
(()
=>
{
if
(
dataList
)
{
setList
(
arrGroup
(
dataList
,
5
))
}
},
[
dataList
])
let
mockList
=
[]
for
(
let
i
=
0
;
i
<
5
;
i
++
)
{
mockList
.
push
({
url
:
"https://woodmartcdn-cec2.kxcdn.com/wp-content/uploads/2016/09/product-furniture-1.jpg"
,
name
:
'0.8-1.0mm黑色手纹硬度适中偏软偏软偏软'
,
price
:
'79.00'
})
const
getCommodityDetailLink
=
(
item
)
=>
{
let
link
=
""
switch
(
layoutType
)
{
case
LAYOUT_TYPE
.
channel
:
link
=
`/channelmall/commodity/detail?id=
${
item
.
id
}
&type=
${
item
.
priceType
}
&channelId=
${
btoa
(
JSON
.
stringify
({
shopId
:
item
.
storeId
,
memberId
:
item
.
memberId
}))}
`
break
case
LAYOUT_TYPE
.
ichannel
:
link
=
`/ichannelmall/commodity/detail?id=
${
item
.
id
}
&type=
${
item
.
priceType
}
&channelId=
${
btoa
(
JSON
.
stringify
({
shopId
:
item
.
storeId
,
memberId
:
item
.
memberId
}))}
`
break
default
:
link
=
`/shop/commodity/detail?id=
${
item
.
id
}
&type=
${
item
.
priceType
}
&shopId=
${
btoa
(
JSON
.
stringify
({
shopId
:
item
.
storeId
,
memberId
:
item
.
memberId
}))}
`
break
}
return
link
}
return
(
<
div
className=
{
styles
.
interested_commodity
}
>
<
div
className=
{
styles
.
interested_commodity_title
}
>
<
span
>
您可能也感兴趣:
</
span
>
<
div
className=
{
styles
.
interested_commodity_pagination
}
>
{
/*
<div className={styles.interested_commodity_pagination}>
<div className={cx(styles.interested_commodity_pagination_btn, styles.disabled)}><LeftOutlined /></div>
<div className={cx(styles.interested_commodity_pagination_btn)}><RightOutlined /></div>
</
div
>
</div>
*/
}
</
div
>
<
div
className=
{
styles
.
interested_commodity_list
}
>
{
mockList
.
map
(
item
=>
(
<
div
className=
{
styles
.
interested_commodity_list_item
}
>
<
div
className=
{
styles
.
interested_commodity_list_item_imgbox
}
>
<
div
className=
{
styles
.
interested_commodity_list_item_imgbox_img
}
style=
{
{
backgroundImage
:
`url(${item.url})`
}
}
></
div
>
</
div
>
<
div
className=
{
styles
.
interested_commodity_list_item_name
}
>
{
item
.
name
}
</
div
>
<
div
className=
{
styles
.
interested_commodity_list_item_price
}
>
<
i
>
¥
</
i
>
{
item
.
price
}
</
div
>
dataList
&&
dataList
.
map
((
item
,
index
)
=>
index
<
5
&&
(
<
div
className=
{
styles
.
interested_commodity_list_item
}
key=
{
`interested_commodity_list_item_${item.id}`
}
>
<
a
href=
{
getCommodityDetailLink
(
item
)
}
target=
"_blank"
>
<
div
className=
{
styles
.
interested_commodity_list_item_imgbox
}
>
<
ImageBox
width=
{
100
}
height=
{
100
}
imgUrl=
{
item
.
mainPic
}
direction=
"column"
/>
</
div
>
<
div
className=
{
styles
.
interested_commodity_list_item_name
}
>
{
item
.
name
}
</
div
>
<
div
className=
{
styles
.
interested_commodity_list_item_price
}
>
<
i
>
¥
</
i
>
{
priceFormat
(
item
.
min
)
}
</
div
>
</
a
>
</
div
>
))
}
</
div
>
</
div
>
)
...
...
src/pages/lxMall/components/Recommand/index.tsx
View file @
d89556ff
import
React
from
'react'
import
'./index.less'
const
Recommand
:
React
.
FC
=
()
=>
{
const
product_list
=
[
{
imgUrl
:
'https://woodmartcdn-cec2.kxcdn.com/wp-content/uploads/2016/09/product-furniture-1-6.jpg'
,
name
:
'0.8-1.0mm黑色手折纹胎水牛皮黄牛头层自然摔纹硬度适中偏软…'
,
price
:
'19.00'
},
{
imgUrl
:
'https://woodmartcdn-cec2.kxcdn.com/wp-content/uploads/2016/09/product-furniture-1-6.jpg'
,
name
:
'0.8-1.0mm黑色手折纹胎水牛皮黄牛头层自然摔纹硬度适中偏软…'
,
price
:
'19.00'
},
{
imgUrl
:
'https://woodmartcdn-cec2.kxcdn.com/wp-content/uploads/2016/09/product-furniture-1-6.jpg'
,
name
:
'0.8-1.0mm黑色手折纹胎水牛皮黄牛头层自然摔纹硬度适中偏软…'
,
price
:
'19.00'
},
{
imgUrl
:
'https://woodmartcdn-cec2.kxcdn.com/wp-content/uploads/2016/09/product-furniture-1-6.jpg'
,
name
:
'0.8-1.0mm黑色手折纹胎水牛皮黄牛头层自然摔纹硬度适中偏软…'
,
price
:
'19.00'
},
{
imgUrl
:
'https://woodmartcdn-cec2.kxcdn.com/wp-content/uploads/2016/09/product-furniture-1-6.jpg'
,
name
:
'0.8-1.0mm黑色手折纹胎水牛皮黄牛头层自然摔纹硬度适中偏软…'
,
price
:
'19.00'
import
React
,
{
useEffect
,
useState
}
from
'react'
import
{
PublicApi
}
from
'@/services/api'
import
ImageBox
from
'@/components/ImageBox'
import
{
inject
,
observer
}
from
'mobx-react'
import
{
message
}
from
'antd'
import
{
LAYOUT_TYPE
}
from
'@/constants'
import
{
priceFormat
}
from
'@/utils/numberFomat'
import
styles
from
'./index.less'
interface
RecommandPropsType
{
SiteStore
?:
any
,
layoutType
:
LAYOUT_TYPE
,
categoryIds
:
number
[],
// 商品品类集合
loading
:
boolean
,
memberId
?:
number
}
const
Recommand
:
React
.
FC
<
RecommandPropsType
>
=
(
props
)
=>
{
const
{
mallTemplateId
}
=
props
.
SiteStore
const
{
layoutType
,
categoryIds
,
loading
,
memberId
}
=
props
const
[
list
,
setList
]
=
useState
<
any
>
([])
useEffect
(()
=>
{
if
(
loading
)
{
if
(
categoryIds
&&
categoryIds
.
length
>
0
)
{
getCommodityListByCategoryIds
()
}
else
{
getCategoryComponents
()
}
}
},
[
loading
])
const
getCommodityListByCategoryIds
=
async
()
=>
{
let
result
=
[]
for
(
let
id
of
categoryIds
)
{
let
resList
:
any
=
await
getListById
(
id
)
result
=
[...
result
,
...
resList
]
if
(
result
&&
result
.
length
>=
5
)
{
setList
(
result
)
break
}
}
if
(
result
.
length
<=
0
)
{
getCategoryComponents
()
}
}
const
changeDataKey
=
(
data
)
=>
{
return
data
.
map
(
item
=>
{
item
.
id
=
item
.
goodsId
item
.
mainPic
=
item
.
goodsPicUrl
item
.
name
=
item
.
goodsName
item
.
min
=
item
.
goodsPrice
item
.
storeId
=
item
.
shopId
return
item
})
}
const
getListById
=
(
categoryId
:
number
)
=>
{
return
new
Promise
((
resolve
)
=>
{
let
param
:
any
=
{
current
:
1
,
pageSize
:
5
,
categoryId
}
let
headers
=
{}
let
getListFn
switch
(
layoutType
)
{
case
LAYOUT_TYPE
.
channel
:
headers
=
{
type
:
3
}
param
.
channelMemberId
=
memberId
getListFn
=
PublicApi
.
postSearchShopChannelGetCommodityList
break
case
LAYOUT_TYPE
.
ichannel
:
headers
=
{
type
:
4
}
param
.
channelMemberId
=
memberId
getListFn
=
PublicApi
.
postSearchShopChannelGetCommodityList
break
default
:
getListFn
=
PublicApi
.
postSearchShopEnterpriseGetCommodityList
break
}
getListFn
&&
getListFn
(
param
,
{
headers
}).
then
(
res
=>
{
if
(
res
.
code
===
1000
)
{
message
.
destroy
()
resolve
(
res
.
data
.
data
)
}
})
})
}
/**
* 获取所有一级品类信息
*/
const
fetchFirstCategory
=
()
=>
{
return
new
Promise
((
resolve
)
=>
{
PublicApi
.
getTemplatePlatformFindAllFirstCategory
().
then
(
res
=>
{
if
(
res
.
code
===
1000
)
{
resolve
(
res
.
data
)
}
})
})
}
/**
* 获取一级品类详细信息
*/
const
fetchCategoryById
=
(
categoryId
)
=>
{
return
new
Promise
((
resolve
)
=>
{
let
param
=
{
templateId
:
mallTemplateId
,
categoryId
}
// @ts-ignore
PublicApi
.
getTemplatePlatformFindFirstCategoryDetail
(
param
).
then
(
res
=>
{
if
(
res
.
code
===
1000
)
{
resolve
(
res
.
data
)
}
})
})
}
const
getCategoryComponents
=
async
()
=>
{
let
firstCategory
:
any
=
await
fetchFirstCategory
()
let
categoryDetail
:
any
=
await
fetchCategoryById
(
firstCategory
[
0
].
id
)
setList
(
changeDataKey
(
categoryDetail
.
goodsBOList
))
}
const
getCommodityDetailLink
=
(
item
)
=>
{
let
link
=
""
switch
(
layoutType
)
{
case
LAYOUT_TYPE
.
channel
:
link
=
`/channelmall/commodity/detail?id=
${
item
.
id
}
&channelId=
${
btoa
(
JSON
.
stringify
({
shopId
:
item
.
storeId
,
memberId
:
item
.
memberId
}))}
`
break
case
LAYOUT_TYPE
.
ichannel
:
link
=
`/ichannelmall/commodity/detail?id=
${
item
.
id
}
&channelId=
${
btoa
(
JSON
.
stringify
({
shopId
:
item
.
storeId
,
memberId
:
item
.
memberId
}))}
`
break
default
:
link
=
`/shop/commodity/detail?id=
${
item
.
id
}
&shopId=
${
btoa
(
JSON
.
stringify
({
shopId
:
item
.
storeId
,
memberId
:
item
.
memberId
}))}
`
break
}
]
return
link
}
return
(
<
div
className=
"recommand"
>
<
div
className=
"recommand_title"
>
买家还在看
</
div
>
<
div
className=
"recommand_list"
>
<
div
className=
{
styles
.
recommand
}
>
<
div
className=
{
styles
.
recommand_title
}
>
买家还在看
</
div
>
<
div
className=
{
styles
.
recommand_list
}
>
{
product_list
.
map
((
item
,
index
)
=>
(
<
a
href=
"/"
key=
{
`recommand_list_item_${index}`
}
>
<
div
className=
"recommand_list_item"
>
<
div
className=
"recommand_list_item_img"
>
<
img
src=
{
item
.
imgUrl
}
/>
list
&&
list
.
map
((
item
,
index
)
=>
index
<
5
&&
(
<
a
href=
{
getCommodityDetailLink
(
item
)
}
key=
{
`recommand_list_item_${index}`
}
target=
"_blank"
>
<
div
className=
{
styles
.
recommand_list_item
}
>
<
div
className=
{
styles
.
recommand_list_item_img
}
>
<
ImageBox
width=
{
224
}
height=
{
224
}
imgUrl=
{
item
.
mainPic
}
direction=
"column"
/>
</
div
>
<
div
className=
"recommand_list_item_price"
>
<
div
className=
{
styles
.
recommand_list_item_price
}
>
<
span
>
¥
</
span
>
{
item
.
price
}
{
priceFormat
(
item
.
min
)
}
</
div
>
<
div
className=
"recommand_list_item_name"
>
{
item
.
name
}
</
div
>
<
div
className=
{
styles
.
recommand_list_item_name
}
>
{
item
.
name
}
</
div
>
</
div
>
</
a
>
))
...
...
@@ -56,4 +173,4 @@ const Recommand: React.FC = () => {
)
}
export
default
Recommand
export
default
inject
(
'SiteStore'
)(
observer
(
Recommand
))
src/pages/lxMall/index/index.tsx
View file @
d89556ff
...
...
@@ -96,39 +96,41 @@ const MallIndex: React.FC<MallIndexPropsType> = (props) => {
let
firstCategory
:
any
=
await
fetchFirstCategory
()
for
(
let
item
of
firstCategory
)
{
let
categoryDetail
:
any
=
await
fetchCategoryById
(
item
.
id
)
result
.
push
(
<
FloorLine
linkUrl=
{
`/commodity?categoryId=${item.id}&categoryName=${btoa(encodeURIComponent(item.name))}`
}
anchor=
{
`floorline_${item.id}`
}
key=
{
item
.
id
}
title=
{
item
.
name
}
>
<
FloorLine
.
Horizontal
>
<
FloorLine
.
Category
linkUrl=
{
`/commodity?categoryId=${item.id}&categoryName=${btoa(encodeURIComponent(item.name))}`
}
subLinkUrl=
{
`/commodity`
}
categoryAdvertPicUrl=
{
categoryDetail
.
categoryAdvertPicUrl
}
secondCategoryList=
{
categoryDetail
.
categoryBOList
}
/>
<
FloorLine
.
Vertical
>
<
FloorLine
.
FloorHeader
shopNum=
{
categoryDetail
.
shopNum
}
goodsNum=
{
categoryDetail
.
goodsNum
}
if
(
item
.
id
)
{
let
categoryDetail
:
any
=
await
fetchCategoryById
(
item
.
id
)
result
.
push
(
<
FloorLine
linkUrl=
{
`/commodity?categoryId=${item.id}&categoryName=${btoa(encodeURIComponent(item.name))}`
}
anchor=
{
`floorline_${item.id}`
}
key=
{
item
.
id
}
title=
{
item
.
name
}
>
<
FloorLine
.
Horizontal
>
<
FloorLine
.
Category
linkUrl=
{
`/commodity?categoryId=${item.id}&categoryName=${btoa(encodeURIComponent(item.name))}`
}
shopsLinkUrl=
{
`/shops?categoryId=${item.id}&categoryName=${btoa(encodeURIComponent(item.name))}`
}
>
<
FloorLine
.
Banner
advertList=
{
categoryDetail
.
thirdAdvertList
}
/>
</
FloorLine
.
FloorHeader
>
<
FloorLine
.
Horizontal
>
<
FloorLine
.
Goods
goodsList=
{
categoryDetail
.
goodsBOList
}
linkUrl=
{
`/shop/commodity/detail`
}
/>
<
FloorLine
.
Shops
shopsList=
{
categoryDetail
.
shopBOList
}
linkUrl=
{
`/shop`
}
/>
</
FloorLine
.
Horizontal
>
</
FloorLine
.
Vertical
>
</
FloorLine
.
Horizontal
>
<
FloorLine
.
Brand
brandList=
{
categoryDetail
.
brandBOList
}
linkUrl=
'/commodity'
/>
</
FloorLine
>
)
subLinkUrl=
{
`/commodity`
}
categoryAdvertPicUrl=
{
categoryDetail
.
categoryAdvertPicUrl
}
secondCategoryList=
{
categoryDetail
.
categoryBOList
}
/>
<
FloorLine
.
Vertical
>
<
FloorLine
.
FloorHeader
shopNum=
{
categoryDetail
.
shopNum
}
goodsNum=
{
categoryDetail
.
goodsNum
}
linkUrl=
{
`/commodity?categoryId=${item.id}&categoryName=${btoa(encodeURIComponent(item.name))}`
}
shopsLinkUrl=
{
`/shops?categoryId=${item.id}&categoryName=${btoa(encodeURIComponent(item.name))}`
}
>
<
FloorLine
.
Banner
advertList=
{
categoryDetail
.
thirdAdvertList
}
/>
</
FloorLine
.
FloorHeader
>
<
FloorLine
.
Horizontal
>
<
FloorLine
.
Goods
goodsList=
{
categoryDetail
.
goodsBOList
}
linkUrl=
{
`/shop/commodity/detail`
}
/>
<
FloorLine
.
Shops
shopsList=
{
categoryDetail
.
shopBOList
}
linkUrl=
{
`/shop`
}
/>
</
FloorLine
.
Horizontal
>
</
FloorLine
.
Vertical
>
</
FloorLine
.
Horizontal
>
<
FloorLine
.
Brand
brandList=
{
categoryDetail
.
brandBOList
}
linkUrl=
'/commodity'
/>
</
FloorLine
>
)
}
}
setCategoryComponents
(
result
)
}
...
...
src/pages/lxMall/pointsMall/index.tsx
View file @
d89556ff
...
...
@@ -6,13 +6,13 @@ import { Pagination } from 'antd'
import
CommodityList
from
'./list'
import
SearchNoResult
from
'../components/SearchNoResult'
import
isEmpty
from
'lodash/isEmpty'
import
{
Spin
}
from
'antd'
import
{
Spin
,
message
}
from
'antd'
import
{
useLocalStore
,
observer
}
from
'mobx-react'
import
{
store
}
from
'@/store'
import
{
PublicApi
}
from
'@/services/api'
import
{
LAYOUT_TYPE
}
from
'@/constants'
import
cx
from
'classnames'
import
{
Ge
tSearchShopEnterpriseGetCommodityListResponseDetail
}
from
'@/services/SearchApi'
import
{
Pos
tSearchShopEnterpriseGetCommodityListResponseDetail
}
from
'@/services/SearchApi'
import
bannerImg
from
'@/assets/imgs/banner_2.png'
import
styles
from
'./index.less'
...
...
@@ -48,7 +48,7 @@ const PointsMall: React.FC<CommodityPropsType> = (props) => {
const
{
query
:
{
categoryId
,
categoryName
}
}
=
props
.
location
const
[
loading
,
setLoading
]
=
useState
<
boolean
>
(
true
)
const
[
showType
,
setShowType
]
=
useState
<
number
>
(
1
)
// 展示方式:1:矩阵排列; 2:列表排列
const
[
commodityList
,
setCommodityList
]
=
useState
<
Ge
tSearchShopEnterpriseGetCommodityListResponseDetail
[]
>
([])
const
[
commodityList
,
setCommodityList
]
=
useState
<
Pos
tSearchShopEnterpriseGetCommodityListResponseDetail
[]
>
([])
const
[
current
,
setCurrent
]
=
useState
<
number
>
(
1
)
const
[
pageSize
]
=
useState
<
number
>
(
20
)
const
[
totalCount
,
setTotalCount
]
=
useState
<
number
>
(
0
)
...
...
@@ -82,11 +82,8 @@ const PointsMall: React.FC<CommodityPropsType> = (props) => {
}
setLoading
(
true
)
let
headers
=
{}
let
getFn
=
PublicApi
.
getSearchShopScoreGetCommodityList
let
getFn
switch
(
layoutType
)
{
case
LAYOUT_TYPE
.
shop
:
param
.
storeId
=
shopId
break
case
LAYOUT_TYPE
.
channel
:
case
LAYOUT_TYPE
.
ichannel
:
headers
=
{
...
...
@@ -94,7 +91,10 @@ const PointsMall: React.FC<CommodityPropsType> = (props) => {
}
param
.
channelMemberId
=
memberId
param
.
priceType
=
3
getFn
=
PublicApi
.
getSearchShopChannelGetCommodityList
getFn
=
PublicApi
.
postSearchShopChannelGetCommodityList
break
default
:
getFn
=
PublicApi
.
postSearchShopScoreGetCommodityList
break
}
...
...
@@ -102,6 +102,7 @@ const PointsMall: React.FC<CommodityPropsType> = (props) => {
getFn
(
param
,
{
headers
}).
then
(
res
=>
{
setLoading
(
false
)
if
(
res
.
code
===
1000
)
{
message
.
destroy
()
setCommodityList
(
res
.
data
.
data
)
setTotalCount
(
res
.
data
.
totalCount
)
}
...
...
src/pages/lxMall/purchaseOrder/index.tsx
View file @
d89556ff
...
...
@@ -8,6 +8,7 @@ import styles from './index.less'
import
{
PublicApi
}
from
'@/services/api'
import
{
priceFormat
,
numFormat
}
from
"@/utils/numberFomat"
import
{
useLocalStore
,
observer
}
from
'mobx-react'
import
ImageBox
from
'@/components/ImageBox'
import
{
store
}
from
'@/store'
import
{
LAYOUT_TYPE
}
from
'@/constants'
import
{
GetSearchShopPurchaseGetPurchaseListResponse
}
from
'@/services/SearchApi'
...
...
@@ -30,12 +31,20 @@ const PurchaseOrder: React.FC<PurchaseOrderPropsType> = (props) => {
const
[
checkedList
,
setCheckedList
]
=
useState
([])
const
[
orderList
,
setOrderList
]
=
useState
([])
const
[
confirmLoading
,
setConfirmLoading
]
=
useState
<
boolean
>
(
false
)
const
[
categoryIds
,
setCategoryIds
]
=
useState
<
any
>
()
const
[
loading
,
setLoading
]
=
useState
<
boolean
>
(
false
)
let
countState
=
true
useEffect
(()
=>
{
fetchPurchaseList
()
},
[])
useEffect
(()
=>
{
if
(
categoryIds
)
{
setLoading
(
true
)
}
},
[
categoryIds
])
const
fetchPurchaseList
=
(
initState
=
false
)
=>
{
let
getFn
switch
(
layoutType
)
{
...
...
@@ -51,10 +60,26 @@ const PurchaseOrder: React.FC<PurchaseOrderPropsType> = (props) => {
getFn
&&
getFn
().
then
(
res
=>
{
if
(
res
.
code
===
1000
)
{
initPurchaseList
(
res
.
data
,
initState
)
getCategoryIds
(
res
.
data
)
}
})
}
/**
* 获取进货单内商品品类id集合
* @param purchaseList
*/
const
getCategoryIds
=
(
purchaseList
)
=>
{
let
ids
=
[]
for
(
let
item
of
purchaseList
)
{
let
categoryId
=
item
.
commodityUnitPrice
.
commodity
.
customerCategory
.
id
if
(
!
ids
.
includes
(
categoryId
))
{
ids
.
push
(
categoryId
)
}
}
setCategoryIds
(
ids
)
}
const
initPurchaseList
=
(
list
:
GetSearchShopPurchaseGetPurchaseListResponse
,
initState
)
=>
{
let
result
=
[]
for
(
let
item
of
list
)
{
...
...
@@ -615,7 +640,7 @@ const PurchaseOrder: React.FC<PurchaseOrderPropsType> = (props) => {
</
div
>
<
div
className=
{
cx
(
styles
.
order_list_item_item
,
styles
.
goods_info
)
}
>
<
div
className=
{
styles
.
order_list_item_item_imgbox
}
>
<
div
className=
{
styles
.
order_list_item_item_imgbox_img
}
style=
{
{
backgroundImage
:
`url(${childItem.commodityUnitPrice.commodityPic[0]})`
}
}
></
div
>
<
ImageBox
width=
{
80
}
height=
{
80
}
imgUrl=
{
childItem
.
commodityUnitPrice
.
commodityPic
[
0
]
}
direction=
"column"
/
>
</
div
>
<
div
>
<
div
className=
{
styles
.
order_list_item_item_name
}
>
{
childItem
.
commodityUnitPrice
.
commodity
.
name
}
</
div
>
...
...
@@ -690,7 +715,7 @@ const PurchaseOrder: React.FC<PurchaseOrderPropsType> = (props) => {
</
Affix
>
)
}
<
Recommand
/>
<
Recommand
loading=
{
loading
}
categoryIds=
{
categoryIds
}
{
...
props
}
/>
</
div
>
</
div
>
)
...
...
src/pages/repositories/components/PositionSetting.tsx
View file @
d89556ff
...
...
@@ -170,8 +170,10 @@ const PositionSetting:React.FC<PositionSettingProps> = (props) => {
message
.
error
(
'请先选择商城类型'
)
return
false
}
productRowCtl
.
setSelectedRowKeys
([])
productRowCtl
.
setSelectRow
([])
// fix: 选中后无法回显
// productRowCtl.setSelectedRowKeys([])
// productRowCtl.setSelectRow([])
setVisibleChannelRroduct
(
true
)
}
// 新增会员
...
...
src/pages/systemSetting/collection/shops.tsx
View file @
d89556ff
import
React
,
{
useEffect
,
useState
}
from
'react'
import
cx
from
'classnames'
import
{
Rate
,
Pagination
,
Modal
}
from
'antd'
import
{
Rate
,
Pagination
,
Modal
,
message
}
from
'antd'
import
{
StarFilled
}
from
'@ant-design/icons'
import
shop_icon
from
'@/assets/imgs/shop_icon.png'
import
credit_icon
from
'@/assets/imgs/credit_icon.png'
...
...
@@ -67,10 +67,15 @@ const Shops: React.FC = () => {
}
const
linkToDetail
=
(
detail
)
=>
{
let
el
=
document
.
createElement
(
'a'
)
el
.
href
=
`/shop?shopId=
${
btoa
(
JSON
.
stringify
({
shopId
:
detail
.
id
,
memberId
:
detail
.
memberId
}))}
`
;
el
.
target
=
'_blank'
;
el
.
click
()
if
(
detail
.
status
===
1
)
{
let
el
=
document
.
createElement
(
'a'
)
el
.
href
=
`/shop?shopId=
${
btoa
(
JSON
.
stringify
({
shopId
:
detail
.
id
,
memberId
:
detail
.
memberId
}))}
`
;
el
.
target
=
'_blank'
;
el
.
click
()
}
else
{
message
.
destroy
()
message
.
info
(
"该店铺已冻结"
)
}
}
return
(
...
...
src/pages/transaction/purchaseOrder/orderPreview/index.tsx
View file @
d89556ff
...
...
@@ -270,10 +270,10 @@ const CommonOrderDetail: React.FC<CommonOrderDetailProps> = (props) => {
{
pageStatus
!==
PageStatus
.
ADD
&&
formData
&&
<
AuditProcess
customTitleKey=
'operationalProcess'
customKey=
'state'
outerVerifyCurrent=
{
findLastIndexFlowState
(
formData
.
externalWorkflowFlowRecordLogResponses
)
}
innerVerifyCurrent=
{
findLastIndexFlowState
(
formData
.
interiorWorkflowFlowRecordLogResponses
)
}
outerVerifySteps=
{
formData
.
externalWorkflowFlowRecordLogResponses
}
innerVerifySteps=
{
formData
.
interiorWorkflowFlowRecordLogResponses
}
outerVerifyCurrent=
{
findLastIndexFlowState
(
formData
.
externalWorkflowFlowRecordLogResponses
)
||
0
}
innerVerifyCurrent=
{
findLastIndexFlowState
(
formData
.
interiorWorkflowFlowRecordLogResponses
)
||
0
}
outerVerifySteps=
{
formData
.
externalWorkflowFlowRecordLogResponses
||
[]
}
innerVerifySteps=
{
formData
.
interiorWorkflowFlowRecordLogResponses
||
[]
}
></
AuditProcess
>
}
{
/* 商品列表 */
}
...
...
src/pages/transaction/saleOrder/orderPreview/index.tsx
View file @
d89556ff
...
...
@@ -252,10 +252,10 @@ const CommonOrderDetail:React.FC<CommonOrderDetailProps> = (props) => {
{
pageStatus
!==
PageStatus
.
ADD
&&
formData
&&
<
AuditProcess
customTitleKey=
'operationalProcess'
customKey=
'state'
outerVerifyCurrent=
{
findLastIndexFlowState
(
formData
.
externalWorkflowFlowRecordLogResponses
)
}
innerVerifyCurrent=
{
findLastIndexFlowState
(
formData
.
interiorWorkflowFlowRecordLogResponses
)
}
outerVerifySteps=
{
formData
.
externalWorkflowFlowRecordLogResponses
}
innerVerifySteps=
{
formData
.
interiorWorkflowFlowRecordLogResponses
}
outerVerifyCurrent=
{
findLastIndexFlowState
(
formData
.
externalWorkflowFlowRecordLogResponses
)
||
0
}
innerVerifyCurrent=
{
findLastIndexFlowState
(
formData
.
interiorWorkflowFlowRecordLogResponses
)
||
0
}
outerVerifySteps=
{
formData
.
externalWorkflowFlowRecordLogResponses
||
[]
}
innerVerifySteps=
{
formData
.
interiorWorkflowFlowRecordLogResponses
||
[]
}
></
AuditProcess
>
}
{
/* 商品列表 */
}
...
...
src/pages/transaction/saleOrder/utils/index.ts
View file @
d89556ff
...
...
@@ -24,6 +24,9 @@ export const changeRouterTitleByStatus = () => {
// 找到最后一个可用的工作流状态的索引
export
const
findLastIndexFlowState
=
(
data
:
any
[])
=>
{
if
(
!
Array
.
isArray
(
data
))
{
return
0
}
for
(
let
item
=
0
;
item
<
data
.
length
;
item
++
)
{
if
(
data
[
item
].
isExecute
===
0
)
{
return
item
>
0
?
--
item
:
0
...
...
src/store/filter/index.ts
View file @
d89556ff
...
...
@@ -40,6 +40,28 @@ const getItemText = (key: number) => {
return
result
}
const
changeAttributeDate
=
(
list
)
=>
{
if
(
!
list
)
{
return
[]
}
let
flag
=
false
list
=
list
.
map
(
item
=>
{
delete
item
.
customerAttributeName
if
(
item
.
customerAttributeValueList
&&
item
.
customerAttributeValueList
.
length
<=
0
)
{
delete
item
.
customerAttributeValueList
delete
item
.
customerAttributeId
flag
=
true
}
else
{
item
.
customerAttributeValueList
=
item
.
customerAttributeValueList
.
map
(
attrItem
=>
{
delete
attrItem
.
name
return
attrItem
})
}
return
item
})
return
flag
?
[]
:
list
}
class
FilterStore
{
/**
* 筛选条件列表
...
...
@@ -120,7 +142,7 @@ class FilterStore {
for
(
let
filterItem
of
newFilterList
)
{
switch
(
filterItem
.
type
)
{
case
FILTER_TYPE
.
category
:
tempFilterParam
.
categoryId
=
filterItem
.
key
[
0
]
tempFilterParam
.
categoryId
=
Number
(
filterItem
.
key
[
0
])
break
case
FILTER_TYPE
.
brand
:
tempFilterParam
.
brandId
=
filterItem
.
key
...
...
@@ -158,7 +180,9 @@ class FilterStore {
tempFilterParam
.
orderType
=
4
break
case
FILTER_TYPE
.
attribute
:
tempFilterParam
.
customerAttributeList
=
filterItem
.
key
let
attributeList
=
JSON
.
parse
(
filterItem
.
key
)
attributeList
=
changeAttributeDate
(
attributeList
)
tempFilterParam
.
customerAttributeList
=
attributeList
break
case
FILTER_TYPE
.
shopArea
:
tempFilterParam
.
areaCode
=
filterItem
.
key
...
...
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