import { ProColumns } from '@ant-design/pro-components'; import { Badge, Button, Col, Image, Popconfirm, Row, Space, Tag } from 'antd'; import { createStyles } from 'antd-style'; const useStyles = createStyles(({ token }) => { return { bookLabel: { color: token.colorTextTertiary, }, del: { textDecoration: 'line-through', color: token.colorTextDisabled, }, color: { color: token.colorWarningActive, }, }; }); const brightColors = [ '#FF6347', // 番茄红 '#FF4500', // 橙红色 '#FFD700', // 金黄色 '#32CD32', // 鲜绿色 '#00FF7F', // 麦绿色 '#00CED1', // 暗青色 '#4682B4', // 钢蓝色 '#6A5ACD', // 鲜紫色 '#FF69B4', // 热粉红色 '#FF1493', // 深粉红色 ]; export const columns = (props: { authList?: any[]; labelList?: any[]; enumList?: { [key: string]: any }; categoryList?: any[]; lookBook: (data: any) => void; closeForm: (b: boolean, d: any) => void; setEditValues: (v: any) => void; setWorkDirection: (w: any) => void; del: (id: any) => void; setParagraphEdit: (data: any) => void; }): ProColumns[] => { let { authList, labelList, categoryList, enumList, lookBook, closeForm, setWorkDirection, del, setEditValues, setParagraphEdit } = props; let { styles } = useStyles(); console.log( enumList ) return enumList?.BOOK_STATUS ? [ { title: '封面', dataIndex: 'picUrl', key: 'picUrl', width: 90, ellipsis: true, align: 'center', hideInSearch: true, render: (a: any, b: any) => { return (
{ e.target.src = localStorage.getItem('nocover'); }} />
); }, }, { title: '作品详情', dataIndex: 'authorId', key: 'authorId', ellipsis: true, hideInSearch: true, width: 500, render: (a, b) => { let { bookName, wordCount, labels, bookStatus, categoryName, authorName, score } = b; let arr = enumList?.BOOK_STATUS?.values; return ( { lookBook?.({ ...b, pageNum: 1, pageSize: 2 }); }} > [{categoryName}]{bookName} [{arr[bookStatus]?.description}] {labels?.map((tags: { id: string; name: string }, index: number) => { return ( {tags?.name} ); })} 作者 {authorName} 总字数: {wordCount || 0} 评分: {score || 0} ); }, }, { title: '所属频道', dataIndex: 'workDirection', key: 'workDirection', align: 'center', width: 80, ellipsis: true, hideInSearch: true, render: (a: any, b: any) => { return enumList?.WORK_DIRECTION?.values[b.workDirection]?.description; }, }, { title: '点击量', dataIndex: 'visitCount', key: 'visitCount', width: 90, ellipsis: true, align: 'center', hideInSearch: true, render: (a, b) => { let { visitCount } = b; return visitCount; }, }, { title: '上架状态', dataIndex: 'shelveStatus', key: 'shelveStatus', width: 90, ellipsis: true, align: 'center', hideInSearch: true, render: (a: any, b) => { let arr: any = enumList?.SHELVE_STATUS?.values; let { shelveStatus } = b; return ( arr[shelveStatus]?.description && ( ) ); }, }, { title: '来源', dataIndex: 'source', key: 'source', width: 90, ellipsis: true, align: 'center', hideInSearch: true, render: (a: any, b) => { let { source } = b; let arr: any = new Map( enumList?.SOURCE?.values?.map(({ value, description }: any) => [value, description]), ); return arr.get(source); }, }, { title: '操作', dataIndex: 'cz', key: 'cz', width: 90, ellipsis: true, align: 'center', hideInSearch: true, render: (a: any, b: any) => { return ( 确定要删除{b.bookName}此书籍? } onConfirm={() => { del(b.id); }} > ); }, }, // 搜索条件 { title: '小说名称', dataIndex: 'bookName', valueType: 'text', hideInTable: true, fieldProps: { placeholder: '请输入小说名称' }, colSize: 1, }, { title: '作者', dataIndex: 'authorId', valueType: 'select', hideInTable: true, fieldProps: { showSearch: true, placeholder: '请选择作者' }, colSize: 1, valueEnum: new Map(authList?.map(({ id, authorName }) => [id, authorName])), }, { title: '频道', dataIndex: 'workDirection', valueType: 'segmented', hideInTable: true, fieldProps: { type: 'primary', style: { width: 'auto' }, onChange: (value) => { setWorkDirection(value); }, }, colSize: 3, initialValue: '', valueEnum: () => { let arr = enumList?.WORK_DIRECTION?.values; return arr ? new Map( [{ value: '', description: '全部' }, ...arr]?.map( ({ value, description }: any) => [value, description], ), ) : {}; }, }, { title: '分类', dataIndex: 'categoryId', valueType: 'segmented', hideInTable: true, hideInSearch: !labelList, fieldProps: { type: 'primary', style: { width: 'auto' } }, colSize: 3, initialValue: '', valueEnum: () => { let arr = categoryList || []; return new Map([{ id: '', name: '全部' }, ...arr]?.map((item) => [item.id, item.name])); }, }, { title: '标签', dataIndex: 'labelIds', valueType: 'segmented', hideInTable: true, hideInSearch: !labelList, fieldProps: { type: 'primary', style: { width: 'auto' } }, colSize: 3, initialValue: '', valueEnum: () => { let arr = labelList || []; return new Map([{ id: '', name: '全部' }, ...arr]?.map((item) => [item.id, item.name])); }, }, { title: '来源', dataIndex: 'source', valueType: 'segmented', hideInTable: true, fieldProps: { type: 'primary', style: { width: 'auto' } }, colSize: 3, initialValue: '', valueEnum: () => { let arr = enumList?.SOURCE?.values; return arr ? new Map( [{ value: '', description: '全部' }, ...arr]?.map( ({ value, description }: any) => [value, description], ), ) : {}; }, }, { title: '连载', dataIndex: 'bookStatus', valueType: 'segmented', hideInTable: true, fieldProps: { type: 'primary', style: { width: 'auto' } }, colSize: 3, initialValue: '', valueEnum: () => { let arr = enumList?.BOOK_STATUS?.values; return arr ? new Map( [{ value: '', description: '全部' }, ...arr]?.map( ({ value, description }: any) => [value, description], ), ) : {}; }, }, { title: '上架', dataIndex: 'shelveStatus', valueType: 'segmented', hideInTable: true, fieldProps: { type: 'primary', style: { width: 'auto' } }, colSize: 3, initialValue: '', valueEnum: () => { let arr = enumList?.SHELVE_STATUS?.values; return arr ? new Map( [{ value: '', description: '全部' }, ...arr]?.map( ({ value, description }: any) => [value, description], ), ) : {}; }, }, { title: '字数', dataIndex: 'wordCount', valueType: 'segmented', hideInTable: true, fieldProps: { type: 'primary', style: { width: 'auto' }, block: true }, colSize: 3, initialValue: '', valueEnum: { '': '全部', '0-2': '2万内', '2-5': '2-5万', '5-10': '5-10万', '10-20': '10-20万', '20-40': '20-40万', '40-100': '40-100万', '100-150': '100-150万', '150-200': '150-200万', '200-300': '200-300万', '300-0': '300万以上', }, }, ] : []; }; export const childrenColumns = (props: { del: (id: any) => void; closeForm: (b: boolean, v: any) => void; }): ProColumns[] => { let { del, closeForm } = props; return [ { title: 'ID', dataIndex: 'id', key: 'id', align: 'center', width: 50, ellipsis: true, hideInSearch: true, }, { title: '段落号', dataIndex: 'paragraphNo', key: 'paragraphNo', align: 'center', width: 70, ellipsis: true, hideInSearch: true, }, { title: '段落字数', dataIndex: 'wordCount', key: 'wordCount', align: 'center', width: 70, ellipsis: true, hideInSearch: true, }, { title: '创建时间', dataIndex: 'createTime', key: 'createTime', align: 'center', width: 150, ellipsis: true, hideInSearch: true, }, { title: '更新时间', dataIndex: 'updateTime', key: 'updateTime', align: 'center', width: 150, ellipsis: true, hideInSearch: true, }, { title: '操作', dataIndex: 'cz', key: 'cz', width: 90, ellipsis: true, align: 'center', hideInSearch: true, render: (a, b) => { return ( 确定要删除{b.paragraphNo}号段落? } onConfirm={() => { del(b.id); }} > 删除 ); }, }, ]; };