/* eslint-disable @typescript-eslint/no-unused-vars */
import './card-proj.css';
import {
CheckOutlined,
ClockCircleOutlined,
CloseCircleOutlined, DeleteOutlined,
DownloadOutlined, DownOutlined,
EditOutlined,
EyeOutlined,
LoadingOutlined,
SearchOutlined,
WarningOutlined,
FolderOutlined
} from '@ant-design/icons';
import { Button, Dropdown, Tag, Modal, Carousel } from 'antd';
import { GenerateStatus, ProjChargeType } from "../../interfaces/proj/IProj.ts";
import { useNavigate } from "react-router-dom";
import { Axios, put, downloadUrl } from "../../util/AjaxUtils.ts";
import { useContext, useEffect, useState } from "react";
import { IndexListContext } from "../../context/IndexListContext.ts";
import useMessage from "antd/es/message/useMessage";
import setImg from '../../static/right/set.png'
import orderImg from '../../static/right/order.png'
import menuImg from '../../static/right/menu.png'
// import LoginPage from '../../components/LoginPage/LoginPage.tsx'
import LoginPage from '../../route/proj/edit/ProjConfigLoginpage.tsx'
// import LoginPageShow from '../../components/LoginPageShow/LoginPageShow.tsx'
import LoginPageShow from '../../route/proj/edit/ProjConfigLoginpageShow.tsx'
import SoftwareManagement from '../../route/proj/edit/ProjConfigModList.tsx'
import SoftwareManagementShow from '../../route/proj/edit/ProjConfigModListShow.tsx'
import DisplayOrder from '../../route/proj/edit/ProjConfigMenuList.tsx'
import DisplayOrderShow from '../../route/proj/edit/ProjConfigMenuListShow.tsx'
export default function CardProj(props: any) {
// 第四步 登陆页面设置
const [loginPageOpne, setLoginPageOpne] = useState(false)
const [loginPageShowOpne, setLoginPageShowOpne] = useState(false)
const nav = useNavigate();
// 第五步 软件功能管理
const [softwareManagementOpen, setSoftwareManagementOpen] = useState(false)
const [softwareManagementShowOpen, setSoftwareManagementShowOpen] = useState(false)
// const [showZpi,setShowZpi] = useState(false)
// 第六步 显示顺序
const [displayOrderOpen, setDisplayOrderOpen] = useState(false)
const [displayOrderShowOpen, setDisplayOrderShowOpen] = useState(false)
const data = props.item;
const pkg = data.pay.chargeAdditionals.match(/PKG:(\d+)/);
const video = data.pay.chargeAdditionals.match(/VIDEO_DEMO:(\d+)/);
const URGENT = data.pay.chargeAdditionals.match(/URGENT:(\d+)/);
// 基础服务费
// const basics = data.pay.charge.match(/:(\d+)/);
const pkgValue: number | null = pkg ? parseInt(pkg[1], 10) / 100 : null;
const videoDemoValue: number | null = video ? parseInt(video[1], 10) / 100 : null;
const URGENTvalue: number | null = URGENT ? parseInt(URGENT[1], 10) / 100 : null;
// const basicsValue: number | null = basics ? parseInt(basics[1], 10)/100 : null;
const [projId] = useState(data.projId)
const isShow = data.pay.chargeAdditionals.includes('PKG') || data.pay.charge.includes('ALL')
const [messageApi, messageContext] = useMessage();
const [projCategoryId, setProjCategoryId] = useState(data.projCategoryId);
const [projCategoryName, setProjCategoryName] = useState(data.projCategoryName);
const [charge, setCharge] = useState('');
const [payCharge, setPayCharge] = useState('');
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 goEdit = () => {
if (charge == ProjChargeType.ALL) {
nav(`/proj-eall/${data.projId}`);
} else if (charge == ProjChargeType.FREE) {
nav(`/proj-efree/${data.projId}`);
} else {
nav(`/proj-edit/${data.projId}`);
}
}
useEffect(() => {
const charge = props.item.pay.charge.split(':')[0];
let chargeName = '';
if (charge == ProjChargeType.ALL) {
chargeName = '全托管';
} else if (charge == ProjChargeType.MATERIAL_AGENT) {
chargeName = '写材料+代理';
} else if (charge == ProjChargeType.MATERIAL_AGENT_URGENT) {
chargeName = '写材料+代理(加急)';
} else if (charge == ProjChargeType.MATERIAL) {
chargeName = '写材料';
} else {
chargeName = '免费试用';
}
setCharge(charge)
setPayCharge(chargeName);
// console.log('额外收费安装包',pkgValue);
// console.log('额外收费视频',videoDemoValue);
// console.log('额外收费加急',URGENTvalue);
// console.log('基础服务费',basicsValue);
}, [])
return (
<>
{data.projName}
{payCharge}
编号:{data.projContext}
{data.gmtCreate}
{data.progress == 'DONE' ? '已下证' : data.progress == 'SUBMIT_FOR_REVIEW' ? '已提交版权中心' : data.progress == 'PRODUCTION' ? '正在制作中' : '等待制作中'}
{/*
{data.progress == 'DONE' ? '已完成' : data.progress == 'SUBMIT_FOR_REVIEW' ? '已提交版权中心' : data.progress == 'PRODUCTION' ? '正在制作中' : '等待制作中'}
*/}
{
data.generate.generateStatus == GenerateStatus.SUCCESS ? (
查看
) : (
编辑
)
}
|
{
window.open(`${Axios.defaults?.baseURL}/${data.previewUrl}`, '_blank')
}}>预览
{/* lyp */}
{/*
})
*/}
金额(¥) :
{data.pay.payment / 100}
{/*
基础费用:{basicsValue}
*/}
加急:{URGENTvalue}
安装包:{pkgValue}
演示视频:{videoDemoValue}
{
if (data.generate.generateStatus == GenerateStatus.SUCCESS || payCharge == '全托管') {
// nav(`/proj-edit/config-loginpage-show/${data.projId}`)
setLoginPageShowOpne(true);
} else {
// nav(`/proj-edit/config-loginpage/${data.projId}`)
setLoginPageOpne(true)
}
}}>
登录界面设置
{
if (data.generate.generateStatus == GenerateStatus.SUCCESS || payCharge == '全托管') {
// nav(`/proj-edit/config-mod-list-show/${data.projId}`)
setSoftwareManagementShowOpen(true)
} else {
setSoftwareManagementOpen(true)
// nav(`/proj-edit/config-mod-list/${data.projId}`)
}
}}>
系统菜单管理({data.projModCount})
{
if (data.generate.generateStatus == GenerateStatus.SUCCESS || payCharge == '全托管') {
// nav(`/proj-edit/config-menu-list-show/${data.projId}`)
setDisplayOrderShowOpen(true);
} else {
// nav(`/proj-edit/config-menu-list/${data.projId}`)
setDisplayOrderOpen(true);
}
}}>
菜单排序({data.projModCount})
{
data.generate.generateStatus == GenerateStatus.SUCCESS ? (
{
isShow &&
}
{/* */}
) : <>>
}
{/*
{
const span = e.domEvent.target as HTMLSpanElement;
put({
messageApi,
url: `/api/proj/update-category/${data.projId}/${e.key}`,
onSuccess() {
messageApi.success('修改成功');
setProjCategoryId(e.key);
setProjCategoryName(span.innerText);
}
});
}
}}>
{projCategoryId ? projCategoryName : '无目录'}
{
projCategoryId ? (
{
put({
messageApi,
url: `/api/proj/cancel-category/${data.projId}`,
onSuccess() {
messageApi.success('取消成功');
setProjCategoryId('');
setProjCategoryName('');
}
});
}} />
) : <>>
}
*/}
产权所属者:{data.apply.authorName }
{/*
*/}
-当前状态-
{renderGenerateStatus()}
{/*
编号:{data.projContext}
{data.gmtCreate} */}
{/* 状态标签 */}
{/* {renderGenerateStatus()} */}
{/*
{
data.generate.generateStatus == GenerateStatus.SUCCESS ? (
查看
) : (
编辑
)
}
|
{
window.open(`${Axios.defaults?.baseURL}/${data.previewUrl}`, '_blank')
}}>预览
*/}
{/*
*/}
{/*
*/}
{/* {payCharge} */}
{/* 金额 */}
{/* ¥{data.pay.payment / 100} */}
{/*
*/}
{/*
金额(¥) :
{data.pay.payment / 100}
{
if (data.generate.generateStatus == GenerateStatus.SUCCESS) {
nav(`/proj-edit/config-loginpage-show/${data.projId}`)
} else {
nav(`/proj-edit/config-loginpage/${data.projId}`)
}
}}>
登录界面设置
{
if (data.generate.generateStatus == GenerateStatus.SUCCESS) {
nav(`/proj-edit/config-mod-list-show/${data.projId}`)
} else {
nav(`/proj-edit/config-mod-list/${data.projId}`)
}
}}>
系统菜单管理({data.projModCount})
{
if (data.generate.generateStatus == GenerateStatus.SUCCESS) {
nav(`/proj-edit/config-menu-list-show/${data.projId}`)
} else {
nav(`/proj-edit/config-menu-list/${data.projId}`)
}
}}>
菜单排序({data.projModCount})
*/}
{/* 目录层级结构*/}
{/*
- 当前状态 -
{renderGenerateStatus()}
*/}
{/*
{
data.generate.generateStatus == GenerateStatus.SUCCESS ? (
查看
) : (
编辑
)
}
{
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('修改成功');
setProjCategoryId(e.key);
setProjCategoryName(span.innerText);
}
});
}
}}>
{projCategoryId ? projCategoryName : '无目录'}
{
projCategoryId ? (
{
put({
messageApi,
url: `/api/proj/cancel-category/${data.projId}`,
onSuccess() {
messageApi.success('取消成功');
setProjCategoryId('');
setProjCategoryName('');
}
});
}}/>
) : <>>
}
*/}
{/*
*/}
{/*
*/}
{/*
{renderOption()}
*/}
{/* 第四步 设置 */}
< Modal open={loginPageOpne}
title="登陆页面设置"
width={1700}
destroyOnClose={true}
onCancel={() => {
setLoginPageOpne(false);
// window.location.reload(); // 在取消时刷新页面
}
}
footer={null}
>
{ setLoginPageOpne(false) }}>
Modal>
{/* 第四步 查看 */}
< Modal open={loginPageShowOpne}
title="登陆页面查看"
width={1700}
destroyOnClose={true}
onCancel={() => {
setLoginPageShowOpne(false);
}}
footer={null}
>
{/* 第五步 设置 */}
< Modal open={softwareManagementOpen}
title="软件功能管理设置"
width={1500}
destroyOnClose={true}
onCancel={() => {
// props.upreqData()
setSoftwareManagementOpen(false);
// props.getreqData()
// window.location.reload(); // 在取消时刷新页面
}}
footer={null}
>
{/* 第五步 查看 */}
< Modal open={softwareManagementShowOpen}
title="软件功能管理查看"
width={1500}
destroyOnClose={true}
onCancel={() => {
setSoftwareManagementShowOpen(false);
}}
footer={null}
>
{/* 第六步 设置 */}
< Modal open={displayOrderOpen}
title="设置功能列表显示顺序"
width={1500}
destroyOnClose={true}
onCancel={() => {
// props.upreqData()
setDisplayOrderOpen(false);
}}
footer={null}
>
{/* 第六步 查看 */}
< Modal open={displayOrderShowOpen}
title="查看功能列表显示顺序"
width={1500}
destroyOnClose={true}
onCancel={() => {
setDisplayOrderShowOpen(false);
}}
footer={null}
>
{messageContext}
>
)
}