import './card-proj.css'; import { CheckOutlined, ClockCircleOutlined, CloseCircleOutlined, CreditCardOutlined, DownloadOutlined, DownOutlined, EditOutlined, EyeOutlined, LoadingOutlined, SearchOutlined, SettingOutlined, WarningOutlined } from '@ant-design/icons'; import {Button, ConfigProvider, Dropdown, Tag} from 'antd'; import {GenerateStatus, IProj, PayStatus} from "../../interfaces/proj/IProj.ts"; import {useNavigate} from "react-router-dom"; import {Axios, put} from "../../util/AjaxUtils.ts"; import {useContext, useState} from "react"; import {IndexListContext} from "../../context/IndexListContext.ts"; import useMessage from "antd/es/message/useMessage"; export default function CardProj(props: { item: IProj }) { const nav = useNavigate(); const data = props.item; const [messageApi, messageContext] = useMessage(); const [projCategoryName, setProjCategoryName] = useState(data.projCategoryName); const indexListContext = useContext(IndexListContext); /** * 生成状态 */ const renderGenerateStatus = () => { if (data.generate.generateStatus == GenerateStatus.PENDING) { return 等待生成 } if (data.generate.generateStatus == GenerateStatus.GENERATING) { return 正在生成 } if (data.generate.generateStatus == GenerateStatus.SUCCESS) { return 生成成功 } if (data.generate.generateStatus == GenerateStatus.FAILED) { return 生成失败 } if (data.generate.generateStatus == GenerateStatus.NONE) { return 未生成 } return 错误 } const renderOption = () => { if (data.pay.payStatus == PayStatus.UNPAID) { return ( <>
) } return ( <>
{ data.generate.generateStatus == GenerateStatus.SUCCESS ? (
) : <> } ) } return ( <> {messageContext}
{data.projName}
上下文:{data.projContext} {data.gmtCreate} {renderGenerateStatus()}

金额¥:{data.pay.payment / 100}
{ data.generate.generateStatus == GenerateStatus.SUCCESS ? ( { e.preventDefault(); nav(`/proj-edit/${data.projId}`) }}>查看 ) : ( { e.preventDefault(); nav(`/proj-edit/${data.projId}`) }}>编辑 ) } { e.stopPropagation(); window.open(`${Axios.defaults?.baseURL}/${data.previewUrl}`, '_blank') }}>预览
{ data.generate.generateStatus == GenerateStatus.SUCCESS ? ( { e.preventDefault(); nav(`/agent-select/${data.projId}`); }}>找代理 ) : <> }
{ const span = e.domEvent.target as HTMLSpanElement; put({ messageApi, url: `/api/proj/update-category/${data.projId}/${e.key}`, onSuccess() { messageApi.success('修改成功'); setProjCategoryName(span.innerText); } }); } }}> { put({ messageApi, url: `/api/proj/cancel-category/${data.projId}`, onSuccess() { messageApi.success('取消成功'); setProjCategoryName(''); } }); }}> {projCategoryName ? projCategoryName : '无目录'}

{renderOption()}
) }