Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
W
web-ci-test
概览
概览
详情
活动
周期分析
版本库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
test-ci
web-ci-test
Commits
5239364a
提交
5239364a
authored
5月 19, 2023
作者:
曹云
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'master' of
ssh://git.mmcuav.cn:8222/root/sharefly-web-nextjs
into caoyun
上级
980e8a90
2de9d4b0
全部展开
隐藏空白字符变更
内嵌
并排
正在显示
17 个修改的文件
包含
512 行增加
和
192 行删除
+512
-192
.gitignore
.gitignore
+1
-1
config.ts
api/config.ts
+3
-2
request.ts
api/request.ts
+18
-3
index.tsx
components/filter/compoents/brandItem/index.tsx
+46
-15
index.tsx
components/filter/compoents/categoryItem/index.tsx
+40
-9
index.tsx
components/filter/compoents/modelItem/index.tsx
+40
-9
index.tsx
components/filter/compoents/partItem/index.tsx
+40
-11
index.tsx
components/filter/compoents/qualityItem/index.tsx
+40
-11
index.module.scss
components/filter/index.module.scss
+22
-2
next.config.js
next.config.js
+10
-2
index.page.tsx
pages/flyingHandService/index.page.tsx
+1
-1
index.tsx
pages/forum/api/index.tsx
+43
-0
index.module.scss
pages/forum/index.module.scss
+1
-0
index.page.tsx
pages/forum/index.page.tsx
+139
-86
index.ts
pages/mall/api/index.ts
+3
-2
index.module.scss
pages/mall/index.module.scss
+5
-1
index.page.tsx
pages/mall/index.page.tsx
+60
-37
没有找到文件。
.gitignore
浏览文件 @
5239364a
...
...
@@ -13,7 +13,7 @@
/out/
# production
/
build
/
.dist/
# misc
.DS_Store
...
...
api/config.ts
浏览文件 @
5239364a
const
dev
=
{
baseUrl
:
''
baseUrl
:
'
local
'
}
const
prod
=
{
baseUrl
:
'http
://120.77.247.178
'
baseUrl
:
'http
s://iuav.mmcuav.cn
'
}
export
default
process
.
env
.
NODE_ENV
===
'development'
?
dev
:
prod
;
\ No newline at end of file
api/request.ts
浏览文件 @
5239364a
...
...
@@ -5,10 +5,10 @@ import config from './config';
* @param url 请求url
* @param method 请求方法类型
* @param data 请求的参数
* @param options 额外参数
* @returns Promise<Response>
*/
export
default
function
request
(
url
:
string
,
method
:
String
=
'get'
,
data
?:
any
):
Promise
<
Response
<
any
>>
{
let
options
=
{};
export
default
function
request
(
url
:
string
,
method
:
String
=
'get'
,
data
?:
any
,
options
=
{}):
Promise
<
Response
<
any
>>
{
switch
(
method
.
toLowerCase
())
{
case
'get'
:
...
...
@@ -24,6 +24,7 @@ export default function request(url: string, method: String = 'get', data?: any)
case
'post'
:
options
=
{
...
options
,
method
:
'POST'
,
headers
:
{
'Content-Type'
:
'application/json'
...
...
@@ -48,6 +49,19 @@ export default function request(url: string, method: String = 'get', data?: any)
})
.
then
((
data
)
=>
{
return
data
;
})
.
catch
(
error
=>
{
if
(
error
.
name
===
'AbortError'
)
{
console
.
log
(
'请求已中断'
);
console
.
log
(
error
);
}
else
{
console
.
error
(
'请求出错'
,
error
);
}
return
{
code
:
'-1'
,
message
:
'请求失败'
,
result
:
null
}
});
}
...
...
@@ -55,5 +69,5 @@ export default function request(url: string, method: String = 'get', data?: any)
export
interface
Response
<
T
>
{
code
:
string
,
message
:
string
,
result
:
T
result
?:
T
|
null
}
\ No newline at end of file
components/filter/compoents/brandItem/index.tsx
浏览文件 @
5239364a
import
{
Space
,
Button
,
Select
}
from
'antd'
;
import
styles
from
'../../index.module.scss'
;
import
{
Space
,
Button
,
Select
,
Collapse
}
from
"antd"
;
import
styles
from
"../../index.module.scss"
;
import
api
,
{
FilterOptionResp
}
from
"../../api"
;
import
{
useEffect
,
useState
}
from
"react"
;
...
...
@@ -8,13 +8,13 @@ type Props = {
};
export
default
function
BrandItem
(
props
:
Props
)
{
const
[
data
,
setData
]
=
useState
<
FilterOptionResp
[]
>
([])
const
[
data
,
setData
]
=
useState
<
FilterOptionResp
[]
>
([])
;
useEffect
(()
=>
{
api
.
brand
().
then
(
res
=>
{
api
.
brand
().
then
(
(
res
)
=>
{
setData
(
res
?.
result
||
[]);
});
},
[])
},
[])
;
const
onClick
=
(
item
:
FilterOptionResp
)
=>
{
props
.
onChange
({
...
...
@@ -26,15 +26,47 @@ export default function BrandItem(props: Props) {
return
(
<
div
className=
{
styles
.
filterItem
}
>
<
div
className=
{
styles
.
filterItemTitle
}
>
品牌:
</
div
>
<
div
className=
{
styles
.
filterItemMain
}
>
<
Space
size=
{
40
}
>
{
data
.
map
(
item
=>
{
return
<
Button
type=
"link"
key=
{
item
.
id
}
onClick=
{
(
e
)
=>
onClick
(
item
)
}
>
{
item
.
name
}
</
Button
>;
})
}
</
Space
>
<
div
className=
{
`${styles.filterItemMain} ${data.length <= 10 && styles.disabled}`
}
>
<
Collapse
ghost
collapsible=
"icon"
expandIconPosition=
"end"
>
<
Collapse
.
Panel
header=
{
<
Space
size=
{
40
}
>
{
data
.
slice
(
0
,
10
).
map
((
item
)
=>
{
return
(
<
Button
type=
"link"
key=
{
item
.
id
}
onClick=
{
(
e
)
=>
onClick
(
item
)
}
>
{
item
.
name
}
</
Button
>
);
})
}
</
Space
>
}
key=
"1"
>
<
Space
size=
{
40
}
>
{
data
.
slice
(
10
).
map
((
item
)
=>
{
return
(
<
Button
type=
"link"
key=
{
item
.
id
}
onClick=
{
(
e
)
=>
onClick
(
item
)
}
>
{
item
.
name
}
</
Button
>
);
})
}
</
Space
>
</
Collapse
.
Panel
>
</
Collapse
>
</
div
>
</
div
>
);
}
\ No newline at end of file
}
components/filter/compoents/categoryItem/index.tsx
浏览文件 @
5239364a
import
{
Space
,
Button
,
Select
}
from
'antd'
;
import
{
Space
,
Button
,
Select
,
Collapse
}
from
'antd'
;
import
styles
from
'../../index.module.scss'
;
import
api
,
{
FilterOptionResp
}
from
"../../api"
;
import
{
useState
,
useEffect
}
from
'react'
;
...
...
@@ -26,14 +26,45 @@ export default function CategoryItem(props: Props) {
return
(
<
div
className=
{
styles
.
filterItem
}
>
<
div
className=
{
styles
.
filterItemTitle
}
>
类目:
</
div
>
<
div
className=
{
styles
.
filterItemMain
}
>
<
Space
size=
{
40
}
>
{
data
.
map
(
item
=>
{
return
<
Button
type=
"link"
key=
{
item
.
id
}
onClick=
{
(
e
)
=>
onClick
(
item
)
}
>
{
item
.
name
}
</
Button
>;
})
}
</
Space
>
<
div
className=
{
`${styles.filterItemMain} ${
data.length <= 10 && styles.disabled
}`
}
>
<
Collapse
ghost
collapsible=
"icon"
expandIconPosition=
"end"
>
<
Collapse
.
Panel
header=
{
<
Space
size=
{
40
}
>
{
data
.
slice
(
0
,
10
).
map
((
item
)
=>
{
return
(
<
Button
type=
"link"
key=
{
item
.
id
}
onClick=
{
(
e
)
=>
onClick
(
item
)
}
>
{
item
.
name
}
</
Button
>
);
})
}
</
Space
>
}
key=
"1"
>
<
Space
size=
{
40
}
>
{
data
.
slice
(
10
).
map
((
item
)
=>
{
return
(
<
Button
type=
"link"
key=
{
item
.
id
}
onClick=
{
(
e
)
=>
onClick
(
item
)
}
>
{
item
.
name
}
</
Button
>
);
})
}
</
Space
>
</
Collapse
.
Panel
>
</
Collapse
>
</
div
>
</
div
>
);
...
...
components/filter/compoents/modelItem/index.tsx
浏览文件 @
5239364a
import
{
Space
,
Button
,
Select
}
from
'antd'
;
import
{
Space
,
Button
,
Select
,
Collapse
}
from
'antd'
;
import
styles
from
'../../index.module.scss'
;
import
api
,
{
FilterOptionResp
}
from
"../../api"
;
import
{
useEffect
,
useState
}
from
'react'
;
...
...
@@ -26,14 +26,45 @@ export default function ModelItem(props: Props) {
return
(
<
div
className=
{
styles
.
filterItem
}
>
<
div
className=
{
styles
.
filterItemTitle
}
>
型号:
</
div
>
<
div
className=
{
styles
.
filterItemMain
}
>
<
Space
size=
{
40
}
>
{
data
?.
map
(
item
=>
{
return
<
Button
type=
"link"
key=
{
item
.
id
}
onClick=
{
(
e
)
=>
onClick
(
item
)
}
>
{
item
.
name
}
</
Button
>;
})
}
</
Space
>
<
div
className=
{
`${styles.filterItemMain} ${
data.length <= 10 && styles.disabled
}`
}
>
<
Collapse
ghost
collapsible=
"icon"
expandIconPosition=
"end"
>
<
Collapse
.
Panel
header=
{
<
Space
size=
{
40
}
>
{
data
.
slice
(
0
,
10
).
map
((
item
)
=>
{
return
(
<
Button
type=
"link"
key=
{
item
.
id
}
onClick=
{
(
e
)
=>
onClick
(
item
)
}
>
{
item
.
name
}
</
Button
>
);
})
}
</
Space
>
}
key=
"1"
>
<
Space
size=
{
40
}
>
{
data
.
slice
(
10
).
map
((
item
)
=>
{
return
(
<
Button
type=
"link"
key=
{
item
.
id
}
onClick=
{
(
e
)
=>
onClick
(
item
)
}
>
{
item
.
name
}
</
Button
>
);
})
}
</
Space
>
</
Collapse
.
Panel
>
</
Collapse
>
</
div
>
</
div
>
);
...
...
components/filter/compoents/partItem/index.tsx
浏览文件 @
5239364a
import
{
Space
,
Button
,
Select
}
from
'antd'
;
import
{
Space
,
Button
,
Select
,
Collapse
}
from
'antd'
;
import
styles
from
'../../index.module.scss'
;
import
api
,
{
FilterOptionResp
}
from
"../../api"
;
import
{
useState
,
useEffect
}
from
'react'
;
...
...
@@ -26,16 +26,45 @@ export default function PartItem(props: Props) {
return
(
<
div
className=
{
styles
.
filterItem
}
>
<
div
className=
{
styles
.
filterItemTitle
}
>
部件:
</
div
>
<
div
className=
{
styles
.
filterItemMain
}
>
<
Space
size=
{
40
}
>
{
data
?.
map
((
item
)
=>
{
return
(
<
Button
type=
"link"
key=
{
item
.
id
}
onClick=
{
(
e
)
=>
onClick
(
item
)
}
>
{
item
.
name
}
</
Button
>
);
})
}
</
Space
>
<
div
className=
{
`${styles.filterItemMain} ${
data.length <= 10 && styles.disabled
}`
}
>
<
Collapse
ghost
collapsible=
"icon"
expandIconPosition=
"end"
>
<
Collapse
.
Panel
header=
{
<
Space
size=
{
40
}
>
{
data
.
slice
(
0
,
10
).
map
((
item
)
=>
{
return
(
<
Button
type=
"link"
key=
{
item
.
id
}
onClick=
{
(
e
)
=>
onClick
(
item
)
}
>
{
item
.
name
}
</
Button
>
);
})
}
</
Space
>
}
key=
"1"
>
<
Space
size=
{
40
}
>
{
data
.
slice
(
10
).
map
((
item
)
=>
{
return
(
<
Button
type=
"link"
key=
{
item
.
id
}
onClick=
{
(
e
)
=>
onClick
(
item
)
}
>
{
item
.
name
}
</
Button
>
);
})
}
</
Space
>
</
Collapse
.
Panel
>
</
Collapse
>
</
div
>
</
div
>
);
...
...
components/filter/compoents/qualityItem/index.tsx
浏览文件 @
5239364a
import
{
Space
,
Button
,
Select
}
from
'antd'
;
import
{
Space
,
Button
,
Select
,
Collapse
}
from
'antd'
;
import
styles
from
'../../index.module.scss'
;
import
api
,
{
FilterOptionResp
}
from
"../../api"
;
import
{
useState
,
useEffect
}
from
'react'
;
...
...
@@ -26,16 +26,45 @@ export default function QualityItem(props: Props) {
return
(
<
div
className=
{
styles
.
filterItem
}
>
<
div
className=
{
styles
.
filterItemTitle
}
>
成色:
</
div
>
<
div
className=
{
styles
.
filterItemMain
}
>
<
Space
size=
{
40
}
>
{
data
?.
map
((
item
)
=>
{
return
(
<
Button
type=
"link"
key=
{
item
.
id
}
onClick=
{
(
e
)
=>
onClick
(
item
)
}
>
{
item
.
name
}
</
Button
>
);
})
}
</
Space
>
<
div
className=
{
`${styles.filterItemMain} ${
data.length <= 10 && styles.disabled
}`
}
>
<
Collapse
ghost
collapsible=
"icon"
expandIconPosition=
"end"
>
<
Collapse
.
Panel
header=
{
<
Space
size=
{
40
}
>
{
data
.
slice
(
0
,
10
).
map
((
item
)
=>
{
return
(
<
Button
type=
"link"
key=
{
item
.
id
}
onClick=
{
(
e
)
=>
onClick
(
item
)
}
>
{
item
.
name
}
</
Button
>
);
})
}
</
Space
>
}
key=
"1"
>
<
Space
size=
{
40
}
>
{
data
.
slice
(
10
).
map
((
item
)
=>
{
return
(
<
Button
type=
"link"
key=
{
item
.
id
}
onClick=
{
(
e
)
=>
onClick
(
item
)
}
>
{
item
.
name
}
</
Button
>
);
})
}
</
Space
>
</
Collapse
.
Panel
>
</
Collapse
>
</
div
>
</
div
>
);
...
...
components/filter/index.module.scss
浏览文件 @
5239364a
...
...
@@ -9,27 +9,47 @@
}
.filterItem
{
height
:
42px
;
min-
height
:
42px
;
border-bottom
:
1px
dashed
RGBA
(
222
,
222
,
222
,
1
);
display
:
flex
;
align-items
:
center
;
&
:nth-last-child
(
1
)
{
border-bottom
:
none
;
}
.filterItemTitle
{
flex-shrink
:
0
;
width
:
80px
;
margin-right
:
8px
;
font-family
:
MicrosoftYaHei
;
color
:
rgba
(
153
,
153
,
153
,
1
);
line-height
:
20px
;
height
:
auto
;
margin-top
:
10px
;
}
.filterItemMain
{
flex
:
1
;
display
:
flex
;
justify-content
:
space-between
;
&
.disabled
{
:global
.ant-collapse-expand-icon
{
display
:
none
;
}
}
:global
.ant-collapse-item
{
.ant-collapse-expand-icon
{
margin-top
:
10px
;
}
.ant-collapse-header
{
padding
:
0
;
height
:
42px
;
line-height
:
42px
;
}
}
}
:global
.ant-select-selector
{
...
...
next.config.js
浏览文件 @
5239364a
/** @type {import('next').NextConfig} */
let
distDir
=
".next"
;
//默认输出目录
if
(
process
.
env
.
NODE_ENV
===
"production"
)
{
//生产环境用另一个目录构建,防止与dev冲突
distDir
=
".dist"
;
}
const
nextConfig
=
{
distDir
,
reactStrictMode
:
true
,
transpilePackages
:
[
"antd"
],
redirects
()
{
...
...
@@ -14,8 +22,8 @@ const nextConfig = {
async
rewrites
()
{
return
[
{
source
:
"/:path*"
,
destination
:
"http
://120.77.247.178
/:path*"
,
source
:
"/
local/
:path*"
,
destination
:
"http
s://iuav.mmcuav.cn
/:path*"
,
},
];
},
...
...
pages/flyingHandService/index.page.tsx
浏览文件 @
5239364a
...
...
@@ -46,7 +46,7 @@ export default function FlyingHandService() {
pageSize
:
10
,
})
.
then
((
res
)
=>
{
setProductList
(
res
.
result
?.
list
.
map
(
item
=>
{
return
{
element
:
leftDom
(
item
)
}}))
setProductList
(
res
.
result
?.
list
.
map
(
item
=>
{
return
{
element
:
leftDom
(
item
)
}})
||
[]
)
});
},
[]);
...
...
pages/forum/api/index.tsx
0 → 100644
浏览文件 @
5239364a
import
request
,
{
Response
}
from
"~/api/request"
;
export
interface
DynamicListParams
{
pageNo
:
number
,
pageSize
:
number
,
userId
:
number
}
export
interface
Dynamic
{
userId
:
number
;
id
:
number
;
title
:
string
;
description
:
string
;
location
:
string
;
lat
:
number
;
lon
:
number
;
mediaVO
:
{
picture
:
string
[];
videoUrl
:
string
;
};
likesCount
:
number
;
commentCount
:
number
;
likes
:
boolean
;
}
export
interface
DynamicListResp
{
pageNo
:
1
;
pageSize
:
10
;
list
:
Array
<
Dynamic
>
;
totalCount
:
0
;
totalPage
:
0
;
}
export
default
{
/**
* 论坛动态列表
* @param params
* @returns
*/
dynamicList
(
params
:
DynamicListParams
):
Promise
<
Response
<
DynamicListResp
>>
{
return
request
(
"/release/dynamic/dynamicList"
,
"get"
,
params
);
},
};
pages/forum/index.module.scss
浏览文件 @
5239364a
...
...
@@ -30,6 +30,7 @@
.item
{
padding
:
18px
0
0
;
background
:
#ffffff
;
width
:
100%
;
.headImg
{
margin-left
:
16px
;
...
...
pages/forum/index.page.tsx
浏览文件 @
5239364a
差异被折叠。
点击展开。
pages/mall/api/index.ts
浏览文件 @
5239364a
...
...
@@ -35,7 +35,7 @@ export interface ListPageGoodsInfoResp {
export
default
{
//web-商品信息-分页
listPageGoodsInfo
:
(
params
:
ListPageGoodsInfoParams
):
Promise
<
Response
<
ListPageGoodsInfoResp
>>
=>
{
return
request
(
'/pms/webProductMall/listPageGoodsInfo'
,
'post'
,
params
)
listPageGoodsInfo
:
(
params
:
ListPageGoodsInfoParams
,
options
=
{}
):
Promise
<
Response
<
ListPageGoodsInfoResp
>>
=>
{
return
request
(
'/pms/webProductMall/listPageGoodsInfo'
,
'post'
,
params
,
options
)
}
}
\ No newline at end of file
pages/mall/index.module.scss
浏览文件 @
5239364a
...
...
@@ -24,11 +24,15 @@
}
}
.listContent
{
width
:
100%
;
}
.listWrap
{
display
:
flex
;
flex-wrap
:
wrap
;
gap
:
12px
;
height
:
fit-content
;
height
:
856px
;
.item
{
cursor
:
pointer
;
...
...
pages/mall/index.page.tsx
浏览文件 @
5239364a
import
React
,
{
useEffect
,
useState
}
from
"react"
;
import
{
Button
,
Pagination
,
Select
,
Space
,
Tag
}
from
"antd"
;
import
{
Button
,
Empty
,
Pagination
,
Select
,
Space
,
Tag
}
from
"antd"
;
import
Layout
from
"~/components/layout"
;
import
styles
from
"./index.module.scss"
;
import
{
useRouter
}
from
"next/router"
;
...
...
@@ -25,23 +25,35 @@ export default function Mall(props: Props) {
pageSize
:
16
,
});
const
[
count
,
setCount
]
=
useState
(
0
);
const
[
abort
,
setAbort
]
=
useState
<
AbortController
|
null
>
(
null
);
useEffect
(()
=>
{
//中断前一次请求
abort
?.
abort
();
setAbort
(
new
AbortController
());
},
[
filterResult
,
pageParams
]);
useEffect
(()
=>
{
api
.
listPageGoodsInfo
({
brandId
:
filterResult
.
brand
?.
id
,
districtId
:
filterResult
.
region
?.
id
,
modelId
:
filterResult
.
model
?.
id
,
partsId
:
filterResult
.
part
?.
id
,
productCategoryId
:
filterResult
.
category
?.
id
,
qualityId
:
filterResult
.
quality
?.
id
,
...
pageParams
,
})
.
listPageGoodsInfo
(
{
brandId
:
filterResult
.
brand
?.
id
,
districtId
:
filterResult
.
region
?.
id
,
modelId
:
filterResult
.
model
?.
id
,
partsId
:
filterResult
.
part
?.
id
,
productCategoryId
:
filterResult
.
category
?.
id
,
qualityId
:
filterResult
.
quality
?.
id
,
...
pageParams
,
},
{
signal
:
abort
?.
signal
,
}
)
.
then
((
res
)
=>
{
setProductList
(
res
.
result
?.
list
||
[]);
setCount
(
res
.
result
?.
totalCount
);
setCount
(
res
.
result
?.
totalCount
||
0
);
});
},
[
filterResult
,
pageParams
]);
},
[
abort
]);
const
onFilterChange
=
(
filterResult
:
FilterResult
)
=>
{
console
.
log
(
"filterResult"
,
filterResult
);
...
...
@@ -52,8 +64,8 @@ export default function Mall(props: Props) {
setPageParams
({
...
pageParams
,
pageNo
:
page
,
})
}
})
;
}
;
return
(
<
Layout
>
<
div
className=
"page"
style=
{
{
paddingTop
:
"18px"
}
}
>
...
...
@@ -65,36 +77,47 @@ export default function Mall(props: Props) {
<
div
className=
{
styles
.
productList
}
>
<
div
className=
{
styles
.
title
}
>
四旋翼无人机
</
div
>
<
div
className=
{
styles
.
main
}
>
<
ul
className=
{
styles
.
listWrap
}
>
{
productList
.
map
((
item
,
i
)
=>
{
return
(
<
li
key=
{
i
}
className=
{
styles
.
item
}
onClick=
{
()
=>
router
.
push
(
"/mall/detail/1"
)
}
>
<
div
className=
{
styles
.
imgBox
}
>
<
Image
alt=
""
src=
{
item
.
imgUrl
}
className=
{
styles
.
img
}
width=
{
116
}
height=
{
116
}
></
Image
>
</
div
>
<
div
className=
{
styles
.
title
}
>
{
item
.
goodsName
}
</
div
>
<
div
className=
{
styles
.
sellCount
}
>
半年售
{
(
Math
.
floor
(
Math
.
random
()
*
901
)
+
100
).
toFixed
(
0
)
}
</
div
>
</
li
>
);
})
}
<
div
className=
{
styles
.
listContent
}
>
<
ul
className=
{
styles
.
listWrap
}
>
{
productList
.
map
((
item
,
i
)
=>
{
return
(
<
li
key=
{
i
}
className=
{
styles
.
item
}
onClick=
{
()
=>
router
.
push
(
"/mall/detail/1"
)
}
>
<
div
className=
{
styles
.
imgBox
}
>
<
Image
alt=
""
src=
{
item
.
imgUrl
}
className=
{
styles
.
img
}
width=
{
116
}
height=
{
116
}
></
Image
>
</
div
>
<
div
className=
{
styles
.
title
}
>
{
item
.
goodsName
}
</
div
>
<
div
className=
{
styles
.
sellCount
}
>
半年售
{
(
Math
.
floor
(
Math
.
random
()
*
901
)
+
100
).
toFixed
(
0
)
}
</
div
>
</
li
>
);
})
}
{
productList
.
length
===
0
&&
(
<
Empty
style=
{
{
paddingTop
:
20
,
width
:
'100%'
,
textAlign
:
"center"
}
}
></
Empty
>
)
}
</
ul
>
<
Pagination
current=
{
pageParams
.
pageNo
}
showSizeChanger=
{
false
}
showQuickJumper
total=
{
count
}
onChange=
{
onPageChange
}
hideOnSinglePage=
{
true
}
style=
{
{
marginTop
:
20
}
}
/>
</
ul
>
</
div
>
<
div
className=
{
styles
.
adList
}
>
<
div
className=
{
styles
.
ad
}
></
div
>
<
div
className=
{
styles
.
ad
}
></
div
>
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论