提交 145b2a6f authored 作者: 王鹏飞's avatar 王鹏飞

fix(admin): avoid rendering zero in sale actions

上级 a506980d
...@@ -8,4 +8,4 @@ import { changeSaleStatus } from "../api"; ...@@ -8,4 +8,4 @@ import { changeSaleStatus } from "../api";
import type { SaleFilters } from "../query"; import type { SaleFilters } from "../query";
import { useSaleList } from "../useSaleList"; import { useSaleList } from "../useSaleList";
const { RangePicker } = DatePicker; 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 人 到此讨论。请谨慎行事。
请先完成此评论的编辑!
请 注册 或者 后发表评论