2024-04-29 17:22:26 +08:00
|
|
|
|
/* eslint-disable @typescript-eslint/no-unused-vars */
|
2024-03-13 16:11:28 +08:00
|
|
|
|
import './card-proj.css';
|
2024-03-19 19:19:07 +08:00
|
|
|
|
import {
|
2024-03-26 21:09:41 +08:00
|
|
|
|
CheckOutlined,
|
|
|
|
|
ClockCircleOutlined,
|
2024-05-27 21:25:36 +08:00
|
|
|
|
CloseCircleOutlined, DeleteOutlined,
|
2024-04-01 20:39:22 +08:00
|
|
|
|
DownloadOutlined, DownOutlined,
|
2024-03-19 19:19:07 +08:00
|
|
|
|
EditOutlined,
|
|
|
|
|
EyeOutlined,
|
2024-03-26 21:09:41 +08:00
|
|
|
|
LoadingOutlined,
|
2024-03-19 19:19:07 +08:00
|
|
|
|
SearchOutlined,
|
2024-05-07 17:00:32 +08:00
|
|
|
|
WarningOutlined,
|
|
|
|
|
FolderOutlined
|
2024-03-19 19:19:07 +08:00
|
|
|
|
} from '@ant-design/icons';
|
2024-05-28 18:00:42 +08:00
|
|
|
|
import { Button, Dropdown, Tag, Modal } from 'antd';
|
2024-05-27 21:25:36 +08:00
|
|
|
|
import { GenerateStatus, IProj, ProjChargeType } from "../../interfaces/proj/IProj.ts";
|
2024-04-29 17:22:26 +08:00
|
|
|
|
import { useNavigate } from "react-router-dom";
|
|
|
|
|
import { Axios, put } from "../../util/AjaxUtils.ts";
|
|
|
|
|
import { useContext, useEffect, useState } from "react";
|
|
|
|
|
import { IndexListContext } from "../../context/IndexListContext.ts";
|
2024-04-01 20:39:22 +08:00
|
|
|
|
import useMessage from "antd/es/message/useMessage";
|
2024-04-29 17:22:26 +08:00
|
|
|
|
import setImg from '../../static/right/set.png'
|
|
|
|
|
import orderImg from '../../static/right/order.png'
|
|
|
|
|
import menuImg from '../../static/right/menu.png'
|
2024-05-28 18:00:42 +08:00
|
|
|
|
import LoginPage from '../../components/LoginPage/LoginPage.tsx'
|
|
|
|
|
import LoginPageShow from '../../components/LoginPageShow/LoginPageShow.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'
|
2024-03-19 19:19:07 +08:00
|
|
|
|
export default function CardProj(props: { item: IProj }) {
|
2024-05-28 18:00:42 +08:00
|
|
|
|
// 第四步 登陆页面设置
|
|
|
|
|
const [loginPageOpne, setLoginPageOpne] = useState(false)
|
|
|
|
|
const [loginPageShowOpne, setLoginPageShowOpne] = useState(false)
|
2024-03-26 21:09:41 +08:00
|
|
|
|
const nav = useNavigate();
|
2024-05-28 18:00:42 +08:00
|
|
|
|
|
|
|
|
|
// 第五步 软件功能管理
|
|
|
|
|
const [softwareManagementOpen, setSoftwareManagementOpen] = useState(false)
|
|
|
|
|
const [softwareManagementShowOpen, setSoftwareManagementShowOpen] = useState(false)
|
2024-05-23 18:21:31 +08:00
|
|
|
|
// const [showZpi,setShowZpi] = useState(false)
|
2024-05-28 18:00:42 +08:00
|
|
|
|
// 第六步 显示顺序
|
|
|
|
|
const [displayOrderOpen, setDisplayOrderOpen] = useState(false)
|
|
|
|
|
const [displayOrderShowOpen, setDisplayOrderShowOpen] = useState(false)
|
|
|
|
|
|
2024-03-19 19:19:07 +08:00
|
|
|
|
const data = props.item;
|
2024-05-28 18:00:42 +08:00
|
|
|
|
const [projId] = useState(data.projId)
|
2024-05-23 18:21:31 +08:00
|
|
|
|
const isShow = data.pay.chargeAdditionals.includes('PKG')
|
2024-05-28 18:00:42 +08:00
|
|
|
|
|
2024-04-01 20:39:22 +08:00
|
|
|
|
const [messageApi, messageContext] = useMessage();
|
2024-04-02 18:45:46 +08:00
|
|
|
|
const [projCategoryId, setProjCategoryId] = useState(data.projCategoryId);
|
2024-04-01 20:39:22 +08:00
|
|
|
|
const [projCategoryName, setProjCategoryName] = useState(data.projCategoryName);
|
2024-04-12 18:18:14 +08:00
|
|
|
|
const [charge, setCharge] = useState('');
|
2024-04-12 14:12:38 +08:00
|
|
|
|
const [payCharge, setPayCharge] = useState('');
|
2024-04-01 20:39:22 +08:00
|
|
|
|
const indexListContext = useContext(IndexListContext);
|
2024-03-19 19:19:07 +08:00
|
|
|
|
/**
|
|
|
|
|
* 生成状态
|
|
|
|
|
*/
|
|
|
|
|
const renderGenerateStatus = () => {
|
2024-03-26 21:09:41 +08:00
|
|
|
|
if (data.generate.generateStatus == GenerateStatus.PENDING) {
|
2024-04-29 17:22:26 +08:00
|
|
|
|
return <Tag color="cyan"><ClockCircleOutlined /> 等待生成</Tag>
|
2024-03-19 19:19:07 +08:00
|
|
|
|
}
|
2024-03-26 21:09:41 +08:00
|
|
|
|
if (data.generate.generateStatus == GenerateStatus.GENERATING) {
|
2024-04-29 17:22:26 +08:00
|
|
|
|
return <Tag color="magenta"><LoadingOutlined /> 正在生成</Tag>
|
2024-03-19 19:19:07 +08:00
|
|
|
|
}
|
2024-03-26 21:09:41 +08:00
|
|
|
|
if (data.generate.generateStatus == GenerateStatus.SUCCESS) {
|
2024-04-29 17:22:26 +08:00
|
|
|
|
return <Tag color="green"><CheckOutlined /> 生成成功</Tag>
|
2024-03-19 19:19:07 +08:00
|
|
|
|
}
|
2024-03-26 21:09:41 +08:00
|
|
|
|
if (data.generate.generateStatus == GenerateStatus.FAILED) {
|
2024-04-29 17:22:26 +08:00
|
|
|
|
return <Tag color="red"><WarningOutlined /> 生成失败</Tag>
|
2024-03-19 19:19:07 +08:00
|
|
|
|
}
|
2024-03-26 21:09:41 +08:00
|
|
|
|
if (data.generate.generateStatus == GenerateStatus.NONE) {
|
2024-03-19 19:19:07 +08:00
|
|
|
|
return <Tag color="cyan">未生成</Tag>
|
|
|
|
|
}
|
2024-04-29 17:22:26 +08:00
|
|
|
|
return <Tag color="red"><CloseCircleOutlined /> 错误</Tag>
|
2024-03-19 19:19:07 +08:00
|
|
|
|
}
|
|
|
|
|
|
2024-04-12 18:18:14 +08:00
|
|
|
|
const goEdit = () => {
|
2024-04-29 17:22:26 +08:00
|
|
|
|
if (charge == ProjChargeType.ALL) {
|
2024-04-12 18:18:14 +08:00
|
|
|
|
nav(`/proj-eall/${data.projId}`);
|
2024-04-29 17:22:26 +08:00
|
|
|
|
} else if (charge == ProjChargeType.FREE) {
|
2024-04-12 18:18:14 +08:00
|
|
|
|
nav(`/proj-efree/${data.projId}`);
|
|
|
|
|
} else {
|
|
|
|
|
nav(`/proj-edit/${data.projId}`);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2024-04-12 14:12:38 +08:00
|
|
|
|
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 = '免费试用';
|
|
|
|
|
}
|
2024-04-12 18:18:14 +08:00
|
|
|
|
setCharge(charge)
|
2024-04-12 14:12:38 +08:00
|
|
|
|
setPayCharge(chargeName);
|
|
|
|
|
}, [])
|
|
|
|
|
|
2024-03-13 16:11:28 +08:00
|
|
|
|
return (
|
2024-04-01 20:39:22 +08:00
|
|
|
|
<>
|
|
|
|
|
<div className="card-proj">
|
2024-05-07 17:00:32 +08:00
|
|
|
|
<div className='cp-top'>
|
|
|
|
|
<div className='cpt-left'>
|
|
|
|
|
<div className='dottedLine'></div>
|
|
|
|
|
<div className='cpt-title' onClick={goEdit}>{data.projName}</div>
|
|
|
|
|
<div className='cp-tag'>
|
|
|
|
|
{payCharge}
|
|
|
|
|
</div>
|
|
|
|
|
<div className='cp-num'>
|
|
|
|
|
编号:{data.projContext}
|
|
|
|
|
</div>
|
|
|
|
|
<div className='cp-smallLine'>
|
|
|
|
|
</div>
|
|
|
|
|
<div className='cp-time'>
|
|
|
|
|
{data.gmtCreate}
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div className='cpt-right'>
|
|
|
|
|
{
|
|
|
|
|
data.generate.generateStatus == GenerateStatus.SUCCESS ? (
|
|
|
|
|
<span className="cpt-text-btn">
|
|
|
|
|
<SearchOutlined />
|
|
|
|
|
<span className='text-btn' onClick={goEdit}>查看</span>
|
|
|
|
|
</span>
|
|
|
|
|
) : (
|
|
|
|
|
<span className="cpt-text-btn">
|
|
|
|
|
<EditOutlined />
|
|
|
|
|
<span className='text-btn' onClick={goEdit}>编辑</span>
|
|
|
|
|
</span>
|
|
|
|
|
)
|
|
|
|
|
}
|
|
|
|
|
<span className='orignLine'>|</span>
|
|
|
|
|
<span className="cpt-text-btn">
|
|
|
|
|
<EyeOutlined />
|
|
|
|
|
<span className='text-btn' onClick={() => {
|
|
|
|
|
window.open(`${Axios.defaults?.baseURL}/${data.previewUrl}`, '_blank')
|
|
|
|
|
}}>预览</span>
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div className='cp-bot'>
|
|
|
|
|
<div className='cpb-left'>
|
2024-05-23 14:57:22 +08:00
|
|
|
|
<img src={data.img} className='cpb-left-img' alt="" />
|
2024-05-07 17:00:32 +08:00
|
|
|
|
<div className='cpbl-right'>
|
|
|
|
|
<div className='cpbl-money'>
|
|
|
|
|
<span className='money'>金额(¥) : </span>
|
|
|
|
|
<span className='num'>{data.pay.payment / 100}</span>
|
|
|
|
|
</div>
|
|
|
|
|
<div className='cpbl-btn'>
|
|
|
|
|
<div className='threeBtn' onClick={() => {
|
|
|
|
|
if (data.generate.generateStatus == GenerateStatus.SUCCESS) {
|
2024-05-28 18:00:42 +08:00
|
|
|
|
// nav(`/proj-edit/config-loginpage-show/${data.projId}`)
|
|
|
|
|
setLoginPageShowOpne(true);
|
|
|
|
|
|
2024-05-07 17:00:32 +08:00
|
|
|
|
} else {
|
2024-05-28 18:00:42 +08:00
|
|
|
|
// nav(`/proj-edit/config-loginpage/${data.projId}`)
|
|
|
|
|
setLoginPageOpne(true)
|
2024-05-07 17:00:32 +08:00
|
|
|
|
}
|
|
|
|
|
}}>
|
|
|
|
|
<img src={setImg} alt="" />
|
|
|
|
|
<div>登录界面设置</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div className='threeBtn' onClick={() => {
|
|
|
|
|
if (data.generate.generateStatus == GenerateStatus.SUCCESS) {
|
2024-05-28 18:00:42 +08:00
|
|
|
|
// nav(`/proj-edit/config-mod-list-show/${data.projId}`)
|
|
|
|
|
setSoftwareManagementShowOpen(true)
|
2024-05-07 17:00:32 +08:00
|
|
|
|
} else {
|
2024-05-28 18:00:42 +08:00
|
|
|
|
setSoftwareManagementOpen(true)
|
|
|
|
|
// nav(`/proj-edit/config-mod-list/${data.projId}`)
|
|
|
|
|
|
2024-05-07 17:00:32 +08:00
|
|
|
|
}
|
|
|
|
|
}}>
|
|
|
|
|
<img src={menuImg} alt="" />
|
|
|
|
|
<div>系统菜单管理({data.projModCount})</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div className='threeBtn rightBit' onClick={() => {
|
|
|
|
|
if (data.generate.generateStatus == GenerateStatus.SUCCESS) {
|
2024-05-28 18:00:42 +08:00
|
|
|
|
// nav(`/proj-edit/config-menu-list-show/${data.projId}`)
|
|
|
|
|
setDisplayOrderShowOpen(true);
|
2024-05-07 17:00:32 +08:00
|
|
|
|
} else {
|
2024-05-28 18:00:42 +08:00
|
|
|
|
// nav(`/proj-edit/config-menu-list/${data.projId}`)
|
|
|
|
|
setDisplayOrderOpen(true);
|
|
|
|
|
|
2024-05-07 17:00:32 +08:00
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}}>
|
|
|
|
|
<img src={orderImg} alt="" />
|
|
|
|
|
<div>菜单排序({data.projModCount})</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
<div className='cline'></div>
|
|
|
|
|
<div className='cpb-center'>
|
|
|
|
|
<div className='cpbc-top'>
|
|
|
|
|
{
|
|
|
|
|
data.generate.generateStatus == GenerateStatus.SUCCESS ? (
|
|
|
|
|
<div className="option">
|
|
|
|
|
<Button size="small" type="text" onClick={() => {
|
|
|
|
|
window.open(`${Axios.defaults?.baseURL}/route/proj/download/apply/${data.projId}`)
|
|
|
|
|
}}><DownloadOutlined /> 申请表</Button>
|
|
|
|
|
<Button size="small" type="text" onClick={() => {
|
|
|
|
|
window.open(`${Axios.defaults?.baseURL}/route/proj/download/manual/${data.projId}`)
|
|
|
|
|
}}><DownloadOutlined /> 操作手册</Button>
|
2024-05-23 18:21:31 +08:00
|
|
|
|
{
|
|
|
|
|
isShow && <Button size="small" type="text" onClick={() => {
|
|
|
|
|
window.open(`${Axios.defaults?.baseURL}/route/proj/download/code-zip/${data.projId}`)
|
|
|
|
|
}}><DownloadOutlined /> 代码压缩包</Button>
|
|
|
|
|
}
|
|
|
|
|
{/* <Button size="small" type="text" onClick={() => {
|
2024-05-07 17:00:32 +08:00
|
|
|
|
window.open(`${Axios.defaults?.baseURL}/route/proj/download/code-zip/${data.projId}`)
|
2024-05-23 18:21:31 +08:00
|
|
|
|
}}><DownloadOutlined /> 代码压缩包</Button> */}
|
2024-05-07 17:00:32 +08:00
|
|
|
|
<Button size="small" type="text" onClick={() => {
|
|
|
|
|
window.open(`${Axios.defaults?.baseURL}/route/proj/download/code/${data.projId}`)
|
|
|
|
|
}}><DownloadOutlined /> 代码文档</Button>
|
|
|
|
|
</div>
|
|
|
|
|
) : <></>
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
<div className='cpbc-bot'>
|
|
|
|
|
<div>
|
|
|
|
|
<FolderOutlined />
|
|
|
|
|
</div>
|
|
|
|
|
{/* 层级 */}
|
|
|
|
|
<Dropdown menu={{
|
|
|
|
|
items: indexListContext.categorys,
|
|
|
|
|
onClick: (e) => {
|
|
|
|
|
const span = e.domEvent.target as HTMLSpanElement;
|
|
|
|
|
put<any>({
|
|
|
|
|
messageApi,
|
|
|
|
|
url: `/api/proj/update-category/${data.projId}/${e.key}`,
|
|
|
|
|
onSuccess() {
|
|
|
|
|
messageApi.success('修改成功');
|
|
|
|
|
setProjCategoryId(e.key);
|
|
|
|
|
setProjCategoryName(span.innerText);
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
}}>
|
|
|
|
|
<span>
|
|
|
|
|
<span className="text-btn">{projCategoryId ? projCategoryName : '无目录'}</span>
|
|
|
|
|
<DownOutlined />
|
|
|
|
|
</span>
|
|
|
|
|
</Dropdown>
|
|
|
|
|
{
|
|
|
|
|
projCategoryId ? (
|
|
|
|
|
<DeleteOutlined title="移除目录" onClick={() => {
|
|
|
|
|
put<any>({
|
|
|
|
|
messageApi,
|
|
|
|
|
url: `/api/proj/cancel-category/${data.projId}`,
|
|
|
|
|
onSuccess() {
|
|
|
|
|
messageApi.success('取消成功');
|
|
|
|
|
setProjCategoryId('');
|
|
|
|
|
setProjCategoryName('');
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
}} />
|
|
|
|
|
) : <></>
|
|
|
|
|
}
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
{/* <div className='cline'></div> */}
|
|
|
|
|
<div className='cpb-right'>
|
|
|
|
|
<div className='cpbr-top'>
|
|
|
|
|
-当前状态-
|
|
|
|
|
</div>
|
|
|
|
|
<div className='cpbr-bot'>
|
|
|
|
|
{renderGenerateStatus()}
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
{/* <div className="card-proj-title">
|
2024-04-29 17:22:26 +08:00
|
|
|
|
<div className='titleLift'>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<div className="left">
|
|
|
|
|
<div className='boxline'></div>
|
|
|
|
|
<span className="text-btn" onClick={goEdit}>{data.projName}</span>
|
|
|
|
|
</div>
|
|
|
|
|
<div className="right">
|
|
|
|
|
<span className="context">编号:{data.projContext}</span>
|
|
|
|
|
<span className='line'></span>
|
2024-05-07 17:00:32 +08:00
|
|
|
|
<span className="date">{data.gmtCreate}</span> */}
|
|
|
|
|
{/* 状态标签 */}
|
|
|
|
|
{/* <span className="status">{renderGenerateStatus()}</span> */}
|
|
|
|
|
{/* </div>
|
2024-03-13 16:11:28 +08:00
|
|
|
|
</div>
|
2024-04-29 17:22:26 +08:00
|
|
|
|
<div className="titleRight">
|
|
|
|
|
{
|
|
|
|
|
data.generate.generateStatus == GenerateStatus.SUCCESS ? (
|
|
|
|
|
<span>
|
|
|
|
|
<SearchOutlined />
|
|
|
|
|
<span className="text-btn" onClick={goEdit}>查看</span>
|
|
|
|
|
</span>
|
|
|
|
|
) : (
|
|
|
|
|
<span>
|
|
|
|
|
<EditOutlined />
|
|
|
|
|
<span className="text-btn" onClick={goEdit}>编辑</span>
|
|
|
|
|
</span>
|
|
|
|
|
)
|
|
|
|
|
}
|
|
|
|
|
<span className='orignLine'>|</span>
|
|
|
|
|
<span>
|
|
|
|
|
<EyeOutlined />
|
|
|
|
|
<span className="text-btn" onClick={() => {
|
|
|
|
|
window.open(`${Axios.defaults?.baseURL}/${data.previewUrl}`, '_blank')
|
|
|
|
|
}}>预览</span>
|
|
|
|
|
</span>
|
2024-03-13 16:11:28 +08:00
|
|
|
|
</div>
|
2024-05-07 17:00:32 +08:00
|
|
|
|
</div> */}
|
2024-04-29 17:22:26 +08:00
|
|
|
|
{/* <hr/> */}
|
2024-05-07 17:00:32 +08:00
|
|
|
|
{/* <div className="body">
|
2024-04-01 20:39:22 +08:00
|
|
|
|
<div className="line">
|
2024-05-07 17:00:32 +08:00
|
|
|
|
<div className="left"> */}
|
|
|
|
|
{/* <Tag color="magenta">{payCharge}</Tag> */}
|
|
|
|
|
{/* 金额 */}
|
|
|
|
|
{/* <Tag color="gold">¥{data.pay.payment / 100}</Tag> */}
|
|
|
|
|
{/* </div> */}
|
|
|
|
|
{/* <div className='centerl'>
|
2024-04-29 17:22:26 +08:00
|
|
|
|
<div className='c-top'>
|
|
|
|
|
<span className='money'>金额(¥) : </span>
|
|
|
|
|
<span className='num'>{data.pay.payment / 100}</span>
|
|
|
|
|
</div>
|
|
|
|
|
<div className='c-bot'>
|
|
|
|
|
<div className='set' onClick={() => {
|
|
|
|
|
if (data.generate.generateStatus == GenerateStatus.SUCCESS) {
|
|
|
|
|
nav(`/proj-edit/config-loginpage-show/${data.projId}`)
|
|
|
|
|
} else {
|
|
|
|
|
nav(`/proj-edit/config-loginpage/${data.projId}`)
|
|
|
|
|
}
|
|
|
|
|
}}>
|
|
|
|
|
<img src={setImg} alt="" />
|
|
|
|
|
<div>登录界面设置</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div className='set' onClick={() => {
|
|
|
|
|
if (data.generate.generateStatus == GenerateStatus.SUCCESS) {
|
|
|
|
|
nav(`/proj-edit/config-mod-list-show/${data.projId}`)
|
|
|
|
|
} else {
|
|
|
|
|
nav(`/proj-edit/config-mod-list/${data.projId}`)
|
|
|
|
|
}
|
|
|
|
|
}}>
|
|
|
|
|
<img src={menuImg} alt="" />
|
|
|
|
|
<div>系统菜单管理({data.projModCount})</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div className='set' onClick={() => {
|
|
|
|
|
if (data.generate.generateStatus == GenerateStatus.SUCCESS) {
|
|
|
|
|
nav(`/proj-edit/config-menu-list-show/${data.projId}`)
|
|
|
|
|
} else {
|
|
|
|
|
nav(`/proj-edit/config-menu-list/${data.projId}`)
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}}>
|
|
|
|
|
<img src={orderImg} alt="" />
|
|
|
|
|
<div>菜单排序({data.projModCount})</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
2024-05-07 17:00:32 +08:00
|
|
|
|
</div> */}
|
|
|
|
|
{/* 目录层级结构*/}
|
|
|
|
|
{/* <div className='centerr'>
|
2024-04-29 17:22:26 +08:00
|
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
<div className='right'>
|
|
|
|
|
<div className='rigth-t'>
|
|
|
|
|
- 当前状态 -
|
|
|
|
|
</div>
|
|
|
|
|
<div className="status">{renderGenerateStatus()}</div>
|
2024-05-07 17:00:32 +08:00
|
|
|
|
</div> */}
|
2024-04-29 17:22:26 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-05-07 17:00:32 +08:00
|
|
|
|
{/* <div className="right">
|
2024-04-12 14:12:38 +08:00
|
|
|
|
{
|
2024-04-01 20:39:22 +08:00
|
|
|
|
data.generate.generateStatus == GenerateStatus.SUCCESS ? (
|
|
|
|
|
<span>
|
|
|
|
|
<SearchOutlined/>
|
2024-04-12 18:18:14 +08:00
|
|
|
|
<span className="text-btn" onClick={goEdit}>查看</span>
|
2024-04-01 20:39:22 +08:00
|
|
|
|
</span>
|
|
|
|
|
) : (
|
|
|
|
|
<span>
|
|
|
|
|
<EditOutlined/>
|
2024-04-12 18:18:14 +08:00
|
|
|
|
<span className="text-btn" onClick={goEdit}>编辑</span>
|
2024-04-01 20:39:22 +08:00
|
|
|
|
</span>
|
|
|
|
|
)
|
|
|
|
|
}
|
|
|
|
|
<span>
|
|
|
|
|
<EyeOutlined/>
|
2024-04-12 14:12:38 +08:00
|
|
|
|
<span className="text-btn" onClick={() => {
|
2024-04-01 20:39:22 +08:00
|
|
|
|
window.open(`${Axios.defaults?.baseURL}/${data.previewUrl}`, '_blank')
|
2024-04-12 14:12:38 +08:00
|
|
|
|
}}>预览</span>
|
2024-04-01 20:39:22 +08:00
|
|
|
|
</span>
|
2024-04-29 17:22:26 +08:00
|
|
|
|
</div> */}
|
2024-05-07 17:00:32 +08:00
|
|
|
|
{/* </div> */}
|
|
|
|
|
{/* <div className="line">
|
2024-04-01 20:39:22 +08:00
|
|
|
|
<div className="left">
|
|
|
|
|
{
|
|
|
|
|
data.generate.generateStatus == GenerateStatus.SUCCESS ? (
|
|
|
|
|
<span>
|
|
|
|
|
<SearchOutlined/>
|
2024-04-12 14:12:38 +08:00
|
|
|
|
<span className="text-btn" onClick={(e) => {
|
2024-04-01 20:39:22 +08:00
|
|
|
|
e.preventDefault();
|
|
|
|
|
nav(`/agent-select/${data.projId}`);
|
2024-04-12 14:12:38 +08:00
|
|
|
|
}}>找代理</span>
|
2024-04-01 20:39:22 +08:00
|
|
|
|
</span>
|
|
|
|
|
) : <></>
|
|
|
|
|
}
|
|
|
|
|
</div>
|
|
|
|
|
<div className="right">
|
|
|
|
|
<Dropdown menu={{
|
|
|
|
|
items: indexListContext.categorys,
|
|
|
|
|
onClick: (e) => {
|
|
|
|
|
const span = e.domEvent.target as HTMLSpanElement;
|
|
|
|
|
put<any>({
|
|
|
|
|
messageApi,
|
|
|
|
|
url: `/api/proj/update-category/${data.projId}/${e.key}`,
|
|
|
|
|
onSuccess() {
|
|
|
|
|
messageApi.success('修改成功');
|
2024-04-02 18:45:46 +08:00
|
|
|
|
setProjCategoryId(e.key);
|
2024-04-01 20:39:22 +08:00
|
|
|
|
setProjCategoryName(span.innerText);
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
}}>
|
2024-04-02 18:45:46 +08:00
|
|
|
|
<span>
|
2024-04-12 14:12:38 +08:00
|
|
|
|
<span className="text-btn">{projCategoryId ? projCategoryName : '无目录'}</span>
|
2024-04-01 20:39:22 +08:00
|
|
|
|
<DownOutlined/>
|
|
|
|
|
</span>
|
|
|
|
|
</Dropdown>
|
2024-04-02 18:45:46 +08:00
|
|
|
|
{
|
|
|
|
|
projCategoryId ? (
|
|
|
|
|
<DeleteOutlined title="移除目录" onClick={() => {
|
|
|
|
|
put<any>({
|
|
|
|
|
messageApi,
|
|
|
|
|
url: `/api/proj/cancel-category/${data.projId}`,
|
|
|
|
|
onSuccess() {
|
|
|
|
|
messageApi.success('取消成功');
|
|
|
|
|
setProjCategoryId('');
|
|
|
|
|
setProjCategoryName('');
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
}}/>
|
|
|
|
|
) : <></>
|
|
|
|
|
}
|
2024-04-01 20:39:22 +08:00
|
|
|
|
</div>
|
2024-04-29 17:22:26 +08:00
|
|
|
|
</div> */}
|
2024-05-07 17:00:32 +08:00
|
|
|
|
{/* </div> */}
|
2024-04-29 17:22:26 +08:00
|
|
|
|
{/* <hr/> */}
|
|
|
|
|
{/* <div className="foot">
|
2024-04-01 20:39:22 +08:00
|
|
|
|
<ConfigProvider theme={{
|
|
|
|
|
components: {
|
|
|
|
|
Button: {
|
|
|
|
|
contentFontSizeSM: 12,
|
|
|
|
|
}
|
2024-03-18 18:50:36 +08:00
|
|
|
|
}
|
2024-04-01 20:39:22 +08:00
|
|
|
|
}}>
|
|
|
|
|
{renderOption()}
|
|
|
|
|
</ConfigProvider>
|
2024-04-29 17:22:26 +08:00
|
|
|
|
</div> */}
|
2024-03-18 18:50:36 +08:00
|
|
|
|
</div>
|
2024-05-28 18:00:42 +08:00
|
|
|
|
{/* 第四步 设置 */}
|
|
|
|
|
<Modal open={loginPageOpne}
|
|
|
|
|
title="登陆页面设置"
|
|
|
|
|
width={1700}
|
|
|
|
|
|
|
|
|
|
onCancel={() => {
|
|
|
|
|
setLoginPageOpne(false);
|
2024-05-29 14:43:48 +08:00
|
|
|
|
// window.location.reload(); // 在取消时刷新页面
|
2024-05-28 18:00:42 +08:00
|
|
|
|
}}
|
|
|
|
|
|
|
|
|
|
footer={null}
|
|
|
|
|
>
|
|
|
|
|
<LoginPage projId={projId} closeModal={() => { setLoginPageOpne(false) }}></LoginPage>
|
|
|
|
|
</Modal>
|
|
|
|
|
{/* 第四步 查看 */}
|
|
|
|
|
<Modal open={loginPageShowOpne}
|
|
|
|
|
title="登陆页面查看"
|
|
|
|
|
width={1700}
|
|
|
|
|
|
|
|
|
|
onCancel={() => {
|
|
|
|
|
setLoginPageShowOpne(false);
|
2024-05-29 14:43:48 +08:00
|
|
|
|
|
2024-05-28 18:00:42 +08:00
|
|
|
|
}}
|
|
|
|
|
|
|
|
|
|
footer={null}
|
|
|
|
|
>
|
|
|
|
|
<LoginPageShow projId={projId}></LoginPageShow>
|
|
|
|
|
</Modal>
|
|
|
|
|
{/* 第五步 设置 */}
|
|
|
|
|
<Modal open={softwareManagementOpen}
|
|
|
|
|
title="软件功能管理设置"
|
|
|
|
|
width={1500}
|
|
|
|
|
|
|
|
|
|
onCancel={() => {
|
|
|
|
|
setSoftwareManagementOpen(false);
|
2024-05-29 14:43:48 +08:00
|
|
|
|
// window.location.reload(); // 在取消时刷新页面
|
2024-05-28 18:00:42 +08:00
|
|
|
|
}}
|
|
|
|
|
footer={null}
|
|
|
|
|
>
|
|
|
|
|
<SoftwareManagement projId={projId}></SoftwareManagement>
|
|
|
|
|
</Modal>
|
|
|
|
|
{/* 第五步 查看 */}
|
|
|
|
|
<Modal open={softwareManagementShowOpen}
|
|
|
|
|
title="软件功能管理查看"
|
|
|
|
|
width={1500}
|
|
|
|
|
onCancel={() => {
|
|
|
|
|
setSoftwareManagementShowOpen(false);
|
|
|
|
|
}}
|
|
|
|
|
footer={null}
|
|
|
|
|
>
|
|
|
|
|
<SoftwareManagementShow projId={projId}></SoftwareManagementShow>
|
|
|
|
|
</Modal>
|
|
|
|
|
{/* 第六步 设置 */}
|
|
|
|
|
<Modal open={displayOrderOpen}
|
|
|
|
|
title="设置功能列表显示顺序"
|
|
|
|
|
width={1500}
|
|
|
|
|
|
|
|
|
|
onCancel={() => {
|
|
|
|
|
setDisplayOrderOpen(false);
|
|
|
|
|
}}
|
|
|
|
|
footer={null}
|
|
|
|
|
>
|
|
|
|
|
<DisplayOrder projId={projId}></DisplayOrder>
|
|
|
|
|
</Modal>
|
|
|
|
|
{/* 第六步 查看 */}
|
|
|
|
|
<Modal open={displayOrderShowOpen}
|
|
|
|
|
title="查看功能列表显示顺序"
|
|
|
|
|
width={1500}
|
|
|
|
|
|
|
|
|
|
onCancel={() => {
|
|
|
|
|
setDisplayOrderShowOpen(false);
|
|
|
|
|
}}
|
|
|
|
|
footer={null}
|
|
|
|
|
>
|
|
|
|
|
<DisplayOrderShow projId={projId}></DisplayOrderShow>
|
|
|
|
|
</Modal>
|
2024-04-02 18:45:46 +08:00
|
|
|
|
{messageContext}
|
2024-04-01 20:39:22 +08:00
|
|
|
|
</>
|
2024-03-13 16:11:28 +08:00
|
|
|
|
)
|
|
|
|
|
}
|