import './ai-helper-mod.css' import { Button, // Divider, Dropdown, Space, Table, TableProps, Modal, // notification } from "antd"; // const close = () => { // console.log( // 'Notification was closed. Either the close button was clicked or duration time elapsed.', // ); // }; import { // CheckOutlined, LoadingOutlined, // ReloadOutlined, RedoOutlined } from "@ant-design/icons"; import { useEffect, useState } from "react"; import { IProjMod } from "../../../interfaces/proj/IProj.ts"; import EditModal from '../../EditModal/EditModal.tsx' import ConfigModModal from '../../ConfigModModal/ConfigModModal.tsx' import { get } from "../../../util/AjaxUtils.ts"; import { useParams } from "react-router-dom"; import { SearchOutlined } from '@ant-design/icons'; import noTextImg from '../../../static/noText.png' import { message } from "antd"; type PropsType = { mods: IProjMod[]; newMods: ProjModType[], handleGenerate: () => void; handleSave: (index: number, mod: ProjModType) => void; handleResaveField: (index: number, projModId: string) => void; handleRemove: (index: number, projModId: string, item: IProjMod) => void; handleEdit: (index: number, projModId: string, item: IProjMod) => void; setActiveTab: (key: string) => void; xixi: any; projIntroduction: string; isFast: boolean; setisFast: any; setIsProjModArrayLoading: any; chargeType: string; isDisabled?: boolean; } type ProjModType = { name: string, desc: string, } export default function AiHelperMod(props: PropsType) { const height = window.innerHeight - 265; // 菜单状态是否可以编辑 const [messageApi] = message.useMessage(); const [modArray, setModArray] = useState([]); const [newModArray, setNewModArray] = useState([]); const [id, setId] = useState('') const [configModal, setConfigModal] = useState(false) const [editModal, setEditModal] = useState(false) const [updata, setUpdata] = useState([]) const [status, setStatus] = useState('') // const [items, setItems] = useState([]) const pathParams = useParams(); // useEffect(() => { // // console.log('mods', props.mods); // if( newModArray.length > 0){ // alert('请先保存') // } // }, [modArray, newModArray]); // const key = `open${Date.now()}`; useEffect(() => { setModArray(props.mods); setNewModArray(props.newMods); get({ messageApi, url: `/api/proj/get/${pathParams.projId}`, onSuccess({ data }) { // console.log('其他页面状态判断', data); // setStatus(data.generate.generateStatus) if (data.aiSetting.modsStatus == 'GENERATING') { // console.log('嘻嘻'); props.setIsProjModArrayLoading() } } }) }, [props.mods, props.newMods]); // useEffect(() => { // // console.log('mods', props.mods); // if (newModArray.length > 0 && newModArray != props.newMods) { // notification.open({ // message: '提示', // description: // `功能列表已生成完毕,是否前去查看?`, // btn: ( //
// //
// ), // key, // onClose: close, // duration: null, // placement: 'bottomRight', // 设置通知框显示在右下角 // style: { // width: 300, // 设置通知框的宽度 // height: 150, // 设置通知框的高度 // }, // }); // } // }, [newModArray]); useEffect(() => { if (updata.length != 0) { // console.log('更新数据', updata); setModArray(updata) } }, [updata]) useEffect(() => { get({ messageApi, url: `/api/proj/get/${pathParams.projId}`, onSuccess({ data }) { // console.log('其他页面状态判断', data); setStatus(data.generate.generateStatus) } }) }, []) const returnValue = (value: string) => { // 如果value包含. / \ ` ! @ # $ % ^ & * ( ) 等特殊符号 去掉 // return value.replace(/[\\/:*?"<>|]/g, ''); return value.replace(/[./\\`!@#$%^&*()]/g, ''); } const modColumnArray: TableProps['columns'] = [ { title: '序号', dataIndex: 'index', key: 'index', width: 60, align: 'center', render: (_value, _record, index) => { return index + 1 } }, { title: '模块名称', dataIndex: 'modName', key: 'name', width: 200, align: 'center', render: (value) => { return (
{returnValue(value)}
) } }, { title: '模块描述', dataIndex: 'modDesc', key: 'desc', align: 'center' }, { title: 'AI状态', dataIndex: 'aiFieldStatus', key: 'desc', width: 100, align: 'center', render: (value) => { if (value == 'GENERATING') { return '处理中' } if (value == 'FAILED') { return ( 失败 ) } if (value == 'SUCCESS') { return 成功 } } }, { title: '操作', dataIndex: 'option', key: 'option', width: 100, align: 'center', render: (_value, record, index) => { if (status == 'SUCCESS') { return ( ) } else if (status == 'GENERATING') { return ( ) } else { if (record.aiFieldStatus == 'GENERATING') { return } if (record.aiFieldStatus == 'FAILED') { return (
{ props.handleResaveField(index, record.projModId); }}>
{ props.handleRemove(index, record.projModId, record); }} >删除
) } return (
{ setId(record.projModId) setEditModal(true) }} >编辑
{ props.handleRemove(index, record.projModId, record); }} >删除
) } // if (record.aiFieldStatus == 'GENERATING') { // return // } // if (record.aiFieldStatus == 'FAILED') { // return // } // return ( // { // // props.handleEdit(index, record.projModId, record); // setId(record.projModId) // setEditModal(true) // } // }, { // key: 'remove', // label: '删除', // onClick: () => { // props.handleRemove(index, record.projModId, record); // } // }, // ] // }} placement="bottom" arrow> // // // ) // if (record.aiFieldStatus == 'SUCCESS' || status == 'GENERATING') { // return ( // // // // ) // }else{ // return( // { // // props.handleEdit(index, record.projModId, record); // setId(record.projModId) // setEditModal(true) // } // }, { // key: 'remove', // label: '删除', // onClick: () => { // props.handleRemove(index, record.projModId, record); // } // }, // ] // }} placement="bottom" arrow> // // // ) // } } }, ]; const newModColumnArray: TableProps['columns'] = [ { title: '序号', dataIndex: 'index', key: 'index', width: 60, align: 'center', render: (_value, _record, index) => { return index + 1 } }, { title: '模块名称', dataIndex: 'name', key: 'name', width: 200, align: 'center', render: (value) => { return (
{returnValue(value)}
) } }, { title: '模块描述', dataIndex: 'desc', key: 'desc', align: 'center' }, { title: '操作', dataIndex: 'option', key: 'option', width: 80, align: 'center', render: (_value, record, index) => { return ( // { if (props.isDisabled) { return }else{ props.handleSave(index, record); } // props.handleSave(index, record); }} > 添加 ) } }, ]; return ( // <> //
模块管理
//
// {newModArray.length > 0 ? 原模块 : <>} // // { // newModArray.length > 0 ? ( // <> // 新模块 //
// // ) : <> // } // //
// { // newModArray.length > 0 ? ( // // // // ) : // } //
// { setEditModal(false) }} width={1200} > // < EditModal id={id} onConfirm={() => setEditModal(false)} setUpdata={setUpdata} /> // // { setConfigModal(false) }} width={1200} > // setConfigModal(false)} > // //
{modArray.length > 0 ? <>
{/*
*/} :
暂无内容,点击 { props.setisFast() if (props.isFast) { return } else { if (props.projIntroduction) { props.handleGenerate() } else { props.xixi() } } }} >自动生成
为了合理生成功能列表,建议在系统简介生成完成后再生成功能列表
}
{props.chargeType =='FREE'?'*功能列表数量为3~5个,如数量不满足请继续用AI生成':'*功能列表数量为10~15个,如数量不满足请继续用AI生成'} {/* *功能列表数量为10~15个,如数量不满足请继续用AI生成 */}
{newModArray.length > 0 ?
: <> 点击AI自动生成后可自动生成功能列表... }
{ setEditModal(false) }} width={1200} > < EditModal id={id} onConfirm={() => setEditModal(false)} setUpdata={setUpdata} /> { setConfigModal(false) }} width={1200} > setConfigModal(false)} > ) }