Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
C
center-book
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
EzijingWeb
center-book
Commits
145b2a6f
提交
145b2a6f
authored
7月 21, 2026
作者:
王鹏飞
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix(admin): avoid rendering zero in sale actions
上级
a506980d
显示空白字符变更
内嵌
并排
正在显示
1 个修改的文件
包含
1 行增加
和
1 行删除
+1
-1
SaleListView.tsx
apps/admin/src/modules/books/sale/views/SaleListView.tsx
+1
-1
没有找到文件。
apps/admin/src/modules/books/sale/views/SaleListView.tsx
浏览文件 @
145b2a6f
...
...
@@ -8,4 +8,4 @@ import { changeSaleStatus } from "../api";
import
type
{
SaleFilters
}
from
"../query"
;
import
{
useSaleList
}
from
"../useSaleList"
;
const
{
RangePicker
}
=
DatePicker
;
export
default
function
SaleListView
()
{
const
list
=
useSaleList
();
const
navigate
=
useNavigate
();
const
{
modal
}
=
App
.
useApp
();
const
{
operationPermissionsList
=
[]
}
=
useSelector
((
state
:
any
)
=>
state
.
user
);
const
filters
:
AppListFilterItem
<
SaleFilters
>
[]
=
[{
name
:
"name"
,
label
:
"书籍名称"
,
render
:
(
field
)
=>
<
Input
allowClear
value=
{
field
.
value
||
""
}
onChange=
{
(
event
)
=>
field
.
onChange
(
event
.
target
.
value
)
}
placeholder=
"请输入书籍名称"
/>
},
{
name
:
"authors"
,
label
:
"作者"
,
render
:
(
field
)
=>
<
Input
allowClear
value=
{
field
.
value
||
""
}
onChange=
{
(
event
)
=>
field
.
onChange
(
event
.
target
.
value
)
}
placeholder=
"请输入作者"
/>
},
{
name
:
"status"
,
label
:
"上架状态"
,
render
:
(
field
)
=>
<
Select
allowClear
value=
{
field
.
value
}
onChange=
{
field
.
onChange
}
placeholder=
"请选择上架状态"
style=
{
{
width
:
160
}
}
options=
{
[{
label
:
"上架"
,
value
:
1
},
{
label
:
"下架"
,
value
:
"0"
}]
}
/>
},
{
name
:
"time"
,
label
:
"创建时间"
,
render
:
(
field
)
=>
<
RangePicker
value=
{
field
.
value
}
onChange=
{
(
value
)
=>
field
.
onChange
(
value
)
}
/>
}];
const
columns
:
ColumnsType
<
any
>
=
[{
title
:
"ID"
,
dataIndex
:
"id"
,
align
:
"center"
},
{
title
:
"书籍图片"
,
dataIndex
:
"img"
,
align
:
"center"
,
render
:
(
src
)
=>
<
Image
width=
{
80
}
height=
{
80
}
src=
{
src
}
/>
},
{
title
:
"书籍名称"
,
dataIndex
:
"name"
,
align
:
"center"
},
{
title
:
"作者"
,
dataIndex
:
"authors"
,
align
:
"center"
},
{
title
:
"类型"
,
dataIndex
:
"status"
,
align
:
"center"
,
render
:
(
status
)
=>
status
===
0
?
"下架"
:
status
===
1
?
"上架"
:
""
},
{
title
:
"零售价"
,
dataIndex
:
"price"
,
align
:
"center"
},
{
title
:
"会员价"
,
dataIndex
:
"vip_price"
,
align
:
"center"
},
{
title
:
"创建时间"
,
dataIndex
:
"create_time"
,
align
:
"center"
},
{
title
:
"上架时间"
,
dataIndex
:
"onsale_time"
,
align
:
"center"
,
render
:
(
value
)
=>
value
||
"--"
},
{
title
:
"下架时间"
,
dataIndex
:
"offshelves_time"
,
align
:
"center"
,
render
:
(
value
)
=>
value
||
"--"
},
{
title
:
"操作"
,
render
:
(
_
,
row
)
=>
<
Space
>
{
row
.
status
&&
operationPermissionsList
.
includes
(
"/books/sale/getCommentList"
)
&&
<
Button
onClick=
{
()
=>
navigate
(
"discussP"
,
{
state
:
{
id
:
row
.
id
,
name
:
row
.
name
}
})
}
>
讨论
</
Button
>
}{
!
row
.
status
&&
operationPermissionsList
.
includes
(
"/books/sale/getInfoById"
)
&&
<
Button
onClick=
{
()
=>
navigate
(
"detail"
,
{
state
:
{
id
:
row
.
id
}
})
}
>
编辑
</
Button
>
}{
operationPermissionsList
.
includes
(
"/books/sale/changeStatus"
)
&&
<
Button
onClick=
{
()
=>
modal
.
confirm
({
title
:
"提示"
,
content
:
`书籍将${row.status ? "下架" : "上架"},是否继续?`
,
onOk
:
async
()
=>
{
if
(
await
changeSaleStatus
(
row
.
id
,
row
.
status
?
"0"
:
"1"
))
list
.
refresh
();
}
})
}
>
{
row
.
status
?
"下架"
:
"上架"
}
</
Button
>
}
</
Space
>
}];
return
<
AppList
rowKey=
"id"
columns=
{
columns
}
data=
{
{
rows
:
list
.
rows
,
total
:
list
.
total
,
loading
:
list
.
loading
,
error
:
list
.
error
}
}
filters=
{
{
value
:
list
.
filters
,
items
:
filters
,
onChange
:
list
.
setFilters
,
onSearch
:
list
.
search
,
onReset
:
list
.
reset
,
onRefresh
:
list
.
refresh
}
}
pagination=
{
{
page
:
list
.
page
,
pageSize
:
list
.
pageSize
,
pageSizeOptions
:
[
10
,
20
,
30
,
40
],
onChange
:
list
.
changePage
,
onPageSizeChange
:
list
.
changePageSize
}
}
onRetry=
{
list
.
retry
}
/>;
}
export
default
function
SaleListView
()
{
const
list
=
useSaleList
();
const
navigate
=
useNavigate
();
const
{
modal
}
=
App
.
useApp
();
const
{
operationPermissionsList
=
[]
}
=
useSelector
((
state
:
any
)
=>
state
.
user
);
const
filters
:
AppListFilterItem
<
SaleFilters
>
[]
=
[{
name
:
"name"
,
label
:
"书籍名称"
,
render
:
(
field
)
=>
<
Input
allowClear
value=
{
field
.
value
||
""
}
onChange=
{
(
event
)
=>
field
.
onChange
(
event
.
target
.
value
)
}
placeholder=
"请输入书籍名称"
/>
},
{
name
:
"authors"
,
label
:
"作者"
,
render
:
(
field
)
=>
<
Input
allowClear
value=
{
field
.
value
||
""
}
onChange=
{
(
event
)
=>
field
.
onChange
(
event
.
target
.
value
)
}
placeholder=
"请输入作者"
/>
},
{
name
:
"status"
,
label
:
"上架状态"
,
render
:
(
field
)
=>
<
Select
allowClear
value=
{
field
.
value
}
onChange=
{
field
.
onChange
}
placeholder=
"请选择上架状态"
style=
{
{
width
:
160
}
}
options=
{
[{
label
:
"上架"
,
value
:
1
},
{
label
:
"下架"
,
value
:
"0"
}]
}
/>
},
{
name
:
"time"
,
label
:
"创建时间"
,
render
:
(
field
)
=>
<
RangePicker
value=
{
field
.
value
}
onChange=
{
(
value
)
=>
field
.
onChange
(
value
)
}
/>
}];
const
columns
:
ColumnsType
<
any
>
=
[{
title
:
"ID"
,
dataIndex
:
"id"
,
align
:
"center"
},
{
title
:
"书籍图片"
,
dataIndex
:
"img"
,
align
:
"center"
,
render
:
(
src
)
=>
<
Image
width=
{
80
}
height=
{
80
}
src=
{
src
}
/>
},
{
title
:
"书籍名称"
,
dataIndex
:
"name"
,
align
:
"center"
},
{
title
:
"作者"
,
dataIndex
:
"authors"
,
align
:
"center"
},
{
title
:
"类型"
,
dataIndex
:
"status"
,
align
:
"center"
,
render
:
(
status
)
=>
status
===
0
?
"下架"
:
status
===
1
?
"上架"
:
""
},
{
title
:
"零售价"
,
dataIndex
:
"price"
,
align
:
"center"
},
{
title
:
"会员价"
,
dataIndex
:
"vip_price"
,
align
:
"center"
},
{
title
:
"创建时间"
,
dataIndex
:
"create_time"
,
align
:
"center"
},
{
title
:
"上架时间"
,
dataIndex
:
"onsale_time"
,
align
:
"center"
,
render
:
(
value
)
=>
value
||
"--"
},
{
title
:
"下架时间"
,
dataIndex
:
"offshelves_time"
,
align
:
"center"
,
render
:
(
value
)
=>
value
||
"--"
},
{
title
:
"操作"
,
render
:
(
_
,
row
)
=>
<
Space
>
{
Boolean
(
row
.
status
)
&&
operationPermissionsList
.
includes
(
"/books/sale/getCommentList"
)
&&
<
Button
onClick=
{
()
=>
navigate
(
"discussP"
,
{
state
:
{
id
:
row
.
id
,
name
:
row
.
name
}
})
}
>
讨论
</
Button
>
}{
!
row
.
status
&&
operationPermissionsList
.
includes
(
"/books/sale/getInfoById"
)
&&
<
Button
onClick=
{
()
=>
navigate
(
"detail"
,
{
state
:
{
id
:
row
.
id
}
})
}
>
编辑
</
Button
>
}{
operationPermissionsList
.
includes
(
"/books/sale/changeStatus"
)
&&
<
Button
onClick=
{
()
=>
modal
.
confirm
({
title
:
"提示"
,
content
:
`书籍将${row.status ? "下架" : "上架"},是否继续?`
,
onOk
:
async
()
=>
{
if
(
await
changeSaleStatus
(
row
.
id
,
row
.
status
?
"0"
:
"1"
))
list
.
refresh
();
}
})
}
>
{
row
.
status
?
"下架"
:
"上架"
}
</
Button
>
}
</
Space
>
}];
return
<
AppList
rowKey=
"id"
columns=
{
columns
}
data=
{
{
rows
:
list
.
rows
,
total
:
list
.
total
,
loading
:
list
.
loading
,
error
:
list
.
error
}
}
filters=
{
{
value
:
list
.
filters
,
items
:
filters
,
onChange
:
list
.
setFilters
,
onSearch
:
list
.
search
,
onReset
:
list
.
reset
,
onRefresh
:
list
.
refresh
}
}
pagination=
{
{
page
:
list
.
page
,
pageSize
:
list
.
pageSize
,
pageSizeOptions
:
[
10
,
20
,
30
,
40
],
onChange
:
list
.
changePage
,
onPageSizeChange
:
list
.
changePageSize
}
}
onRetry=
{
list
.
retry
}
/>;
}
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论