forked from Gitlink/forgeplus-react
修改bot路由、白名单用户安装bot时仅安装组织下的某个仓库
This commit is contained in:
parent
535238b50a
commit
9dd08c47a9
|
|
@ -353,7 +353,7 @@ class App extends Component {
|
|||
</Route>
|
||||
{/* 上架bot配置 */}
|
||||
<Route
|
||||
path="/settings/exploitBot/configuration/:id"
|
||||
path="/settings/mybot/configuration/:id"
|
||||
render={(p) => (
|
||||
<ConfigurateBot {...this.props} {...p}/>
|
||||
)}
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@ if (isDev) {
|
|||
}
|
||||
debugType = window.location.search.indexOf('debug=t') !== -1 ? 'teacher' :
|
||||
window.location.search.indexOf('debug=s') !== -1 ? 'student' :
|
||||
window.location.search.indexOf('debug=a') !== -1 ? 'admin' : parsed.debug || 'admin'
|
||||
window.location.search.indexOf('debug=a') !== -1 ? 'admin' : parsed.debug || 'student'
|
||||
}
|
||||
window._debugType = debugType;
|
||||
export function initAxiosInterceptors(props) {
|
||||
|
|
|
|||
|
|
@ -119,8 +119,8 @@ function Index(props){
|
|||
</ul>
|
||||
<ul className="securityUl">
|
||||
<li>Bot开发</li>
|
||||
<li className={pathname.indexOf("/settings/exploitBot")>-1 ?"active":""}><Link to={`/settings/exploitBot`}><i className="iconfont icon-kaifabot mr5 font-18"></i><span className="text-shodow-bold">我的Bot</span></Link></li>
|
||||
<li className={pathname.indexOf("/settings/dispositionBot")>-1 ?"active":""}><Link to={`/settings/dispositionBot`}><i className="iconfont icon-BOTpeizhi mr5 font-17"></i><span className="text-shodow-bold">Bot安装</span></Link></li>
|
||||
<li className={pathname.indexOf("/settings/mybot")>-1 ?"active":""}><Link to={`/settings/mybot`}><i className="iconfont icon-kaifabot mr5 font-18"></i><span className="text-shodow-bold">我的Bot</span></Link></li>
|
||||
<li className={pathname.indexOf("/settings/installbot")>-1 ?"active":""}><Link to={`/settings/installbot`}><i className="iconfont icon-BOTpeizhi mr5 font-17"></i><span className="text-shodow-bold">Bot安装</span></Link></li>
|
||||
</ul>
|
||||
</div>
|
||||
<LongWidth>
|
||||
|
|
@ -188,28 +188,28 @@ function Index(props){
|
|||
></Route>
|
||||
{/* 创建一个新的bot */}
|
||||
<Route
|
||||
path="/settings/exploitBot/new"
|
||||
path="/settings/mybot/new"
|
||||
render={(p) => (
|
||||
<CreateBot {...props} {...p}/>
|
||||
)}
|
||||
></Route>
|
||||
{/* 开发bot */}
|
||||
<Route
|
||||
path="/settings/exploitBot"
|
||||
path="/settings/mybot"
|
||||
render={(p) => (
|
||||
<ExploitBot {...props} {...p}/>
|
||||
)}
|
||||
></Route>
|
||||
{/* bot配置页面 */}
|
||||
<Route
|
||||
path="/settings/dispositionBot/:id"
|
||||
path="/settings/installbot/:id"
|
||||
render={(p) => (
|
||||
<DispositionDetail {...props} {...p}/>
|
||||
)}
|
||||
></Route>
|
||||
{/* bot配置 */}
|
||||
<Route
|
||||
path="/settings/dispositionBot"
|
||||
path="/settings/installbot"
|
||||
render={(p) => (
|
||||
<Disposition {...props} {...p}/>
|
||||
)}
|
||||
|
|
|
|||
|
|
@ -125,7 +125,7 @@ function DispositionDetail(props){
|
|||
<span className="color88">{botDetail && botDetail.create_time}</span>
|
||||
</div>
|
||||
</div>}
|
||||
<Button style={{width: '53px', padding: '0'}} className="grayBorBut"><Link to={`/settings/dispositionBot`}>返回</Link></Button>
|
||||
<Button style={{width: '53px', padding: '0'}} className="grayBorBut"><Link to={`/settings/installbot`}>返回</Link></Button>
|
||||
</div>
|
||||
{botDetail && <div className="mb10 greenCol font-16"><i className={`mr8 iconfont ${botDetail.limit_vo.juris_diction_code !== 2 ? 'icon-wanchenggouxuan' : 'icon-tishi1 font-16'}`}></i>代码库{botDetail.limit_vo.juris_diction_code === 2 ? '无' : botDetail.limit_vo.juris_diction_code === 1 ? '读写' : '只读'}权限</div>}
|
||||
{botDetail && <div className="mb20 greenCol font-16"><i className={`mr8 iconfont ${botDetail.limit_vo.juris_diction_pr !== 2 ? 'icon-wanchenggouxuan' : 'icon-tishi1 font-16'}`}></i>合并请求(PR){botDetail.limit_vo.juris_diction_pr === 2 ? '无' : botDetail.limit_vo.juris_diction_pr === 1 ? '读写' : '只读'}权限</div>}
|
||||
|
|
@ -141,7 +141,7 @@ function DispositionDetail(props){
|
|||
onChange={selectChange}
|
||||
className="radioBox selectBox"
|
||||
>
|
||||
{filterOption.map(item=>(<Select.Option key={item.id} value={item.id}>{item.name}</Select.Option>))}
|
||||
{filterOption.map(item=>(<Select.Option key={item.id} value={item.id}>{`${item.author && item.author.name}/${item.name}`}</Select.Option>))}
|
||||
</Select>}
|
||||
{checkValue === 1 && selectValue.map((item, index)=>{return <div key={index} className="selectValueBox font-14">
|
||||
<i className="iconfont icon-daimakuicon1 font-14 mr5"></i>
|
||||
|
|
|
|||
|
|
@ -51,11 +51,11 @@ function DispositionBot(props){
|
|||
{botList.map((item, index)=>{return <div className="disBotItem" key={index}>
|
||||
<div className="botNameLeft">
|
||||
<img src={getImageUrl(item.logo)} alt="" className="imgBox mr20"/>
|
||||
<Link className="font-15 botName" to={`/settings/dispositionBot/${item.bot_id}`}>{item.bot_name}</Link>
|
||||
<Link className="font-15 botName" to={`/settings/installbot/${item.bot_id}`}>{item.bot_name}</Link>
|
||||
<span className={`statusBox font-12 ml10 ${item.state === 0 ? '' : 'active'}`}>{item.state === 0 ? '挂起' : '启用'}</span>
|
||||
</div>
|
||||
<div>
|
||||
<Button className="themeCorBorBut" style={{width: '68px', height: '36px'}}><Link to={`/settings/dispositionBot/${item.bot_id}`}>配置</Link></Button>
|
||||
<Button className="themeCorBorBut" style={{width: '68px', height: '36px'}}><Link to={`/settings/installbot/${item.bot_id}`}>配置</Link></Button>
|
||||
<Button className="dangerBorBut ml20" style={{width: '68px', height: '36px'}} onClick={()=>{setDelBotId(item.bot_id);setVisible(true)}}>卸载</Button>
|
||||
</div>
|
||||
</div>})}
|
||||
|
|
|
|||
|
|
@ -84,7 +84,7 @@
|
|||
}
|
||||
}
|
||||
.selectBox{
|
||||
width: 260px;
|
||||
width: 360px;
|
||||
margin: 10px 0 0 24px;
|
||||
.ant-select-selection{padding-top: 0;}
|
||||
.ant-select-selection__placeholder{
|
||||
|
|
|
|||
|
|
@ -134,7 +134,7 @@ function AdvancedInformation(props){
|
|||
if(res && res.code === 200){
|
||||
message.success('删除成功');
|
||||
setVisibleDelete(false);
|
||||
props.history.push("/settings/exploitBot/configuration");
|
||||
props.history.push("/settings/mybot/configuration");
|
||||
}
|
||||
})
|
||||
}else{
|
||||
|
|
@ -202,7 +202,7 @@ function AdvancedInformation(props){
|
|||
<p className="grayBox font-14">目前您的Bot所有用户都能安装</p>
|
||||
</div>
|
||||
<div>
|
||||
<Button type="primary" style={{width:"88px", height: '36px', padding: '0'}} className="mr20"><Link to={`/settings/exploitBot/configuration/${id}/advanced/putaway`}>上架市场</Link></Button>
|
||||
<Button type="primary" style={{width:"88px", height: '36px', padding: '0'}} className="mr20"><Link to={`/settings/mybot/configuration/${id}/advanced/putaway`}>上架市场</Link></Button>
|
||||
<Button className="themeCorBorBut" style={{width:"88px", height: '36px', padding: '0'}} onClick={()=>{setType('2');setVisibleDelete(true)}}>私有此Bot</Button>
|
||||
</div>
|
||||
</div>}
|
||||
|
|
@ -212,7 +212,7 @@ function AdvancedInformation(props){
|
|||
<p className="grayBox font-14">目前您的Bot所有用户都能安装</p>
|
||||
</div>
|
||||
<div>
|
||||
<Button type="primary" style={{width:"88px", height: '36px', padding: '0'}} className="mr20"><Link to={`/settings/exploitBot/configuration/${id}/advanced/putaway/edit`}>编辑</Link></Button>
|
||||
<Button type="primary" style={{width:"88px", height: '36px', padding: '0'}} className="mr20"><Link to={`/settings/mybot/configuration/${id}/advanced/putaway/edit`}>编辑</Link></Button>
|
||||
<Button className="themeCorBorBut" style={{width:"88px", height: '36px', padding: '0'}} onClick={()=>{setType('3');setVisibleDelete(true)}}>下架市场</Button>
|
||||
</div>
|
||||
</div>}
|
||||
|
|
|
|||
|
|
@ -114,13 +114,21 @@ function BasicInformation(props){
|
|||
<div className="disFlex">
|
||||
<img src={miyao} alt="" className="imgBox"/>
|
||||
<div>
|
||||
<p className="font-16">{botDetail.client_secret}</p>
|
||||
<div className="copyBotInfo">
|
||||
<span className="font-16 oneLineSpan">{botDetail.client_secret}</span>
|
||||
<CopyToClipboard text={botDetail.client_secret} onCopy={()=>{message.success('复制成功')}}>
|
||||
<i className="iconfont icon-fuzhiicon ml5" style={{color: '#466aff'}}></i>
|
||||
</CopyToClipboard>
|
||||
</div>
|
||||
<div className="copyBotInfo">
|
||||
<span className="font-16 oneLineSpan">{botDetail.private_key}</span>
|
||||
<CopyToClipboard text={botDetail.private_key} onCopy={()=>{message.success('复制成功')}}>
|
||||
<i className="iconfont icon-fuzhiicon ml5" style={{color: '#466aff'}}></i>
|
||||
</CopyToClipboard>
|
||||
</div>
|
||||
{/* <div className="font-15 grayCol">生成者姓名<span className="ml20">时间</span></div> */}
|
||||
</div>
|
||||
</div>
|
||||
<CopyToClipboard text={botDetail.client_secret} onCopy={()=>{message.success('复制成功')}}>
|
||||
<Button className="themeCorBorBut">复制</Button>
|
||||
</CopyToClipboard>
|
||||
</div>
|
||||
<p className="informationHead mt30 pb15">Bot信息</p>
|
||||
<Form className="basicInformationForm mt10" onSubmit={submit}>
|
||||
|
|
|
|||
|
|
@ -35,6 +35,16 @@
|
|||
padding: 25px 0;
|
||||
border-bottom: 1px dashed #e0e6f5;
|
||||
&:hover{background-color:rgba(125, 148, 246, 0.05);}
|
||||
.copyBotInfo{
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
.oneLineSpan{
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
max-width: 680px;
|
||||
}
|
||||
}
|
||||
.basicInformationForm{
|
||||
.width80{
|
||||
|
|
|
|||
|
|
@ -43,7 +43,7 @@ function ConfigurateBot(props){
|
|||
setBotDetail(res.data.bot_output_vo);
|
||||
}else if(res && res.code === 500){
|
||||
message.error("您没有权限访问该bot");
|
||||
history.push('/settings/exploitBot/configuration');
|
||||
history.push('/settings/mybot/configuration');
|
||||
}
|
||||
})
|
||||
}, [reload])
|
||||
|
|
@ -51,42 +51,42 @@ function ConfigurateBot(props){
|
|||
return <div className="configurateBotBox">
|
||||
<div className="configurateBotHead mb30">
|
||||
<span className="font-18 configurateBotTitle">Bot开发者配置</span>
|
||||
<Button style={{width: '53px', padding: '0'}} className="grayBorBut"><Link to={`/settings/exploitBot/configuration`}>返回</Link></Button>
|
||||
<Button style={{width: '53px', padding: '0'}} className="grayBorBut"><Link to={`/settings/mybot/configuration`}>返回</Link></Button>
|
||||
</div>
|
||||
<Box>
|
||||
<div className="leftBox mr30">
|
||||
<Link to={`/settings/exploitBot/configuration/${id}/basic`} className={pathname.lastIndexOf("/jurisdiction") === -1 && pathname.lastIndexOf("/advanced") === -1 ?"active itemBox":"itemBox"}>基本信息</Link>
|
||||
<Link to={`/settings/exploitBot/configuration/${id}/jurisdiction`} className={pathname.lastIndexOf("/jurisdiction") > -1 ?"active itemBox":"itemBox"}>权限&订阅</Link>
|
||||
<Link to={`/settings/exploitBot/configuration/${id}/advanced`} className={pathname.lastIndexOf("/advanced") > -1 ?"active itemBox":"itemBox"}>高级选项</Link>
|
||||
<Link to={`/settings/mybot/configuration/${id}/basic`} className={pathname.lastIndexOf("/jurisdiction") === -1 && pathname.lastIndexOf("/advanced") === -1 ?"active itemBox":"itemBox"}>基本信息</Link>
|
||||
<Link to={`/settings/mybot/configuration/${id}/jurisdiction`} className={pathname.lastIndexOf("/jurisdiction") > -1 ?"active itemBox":"itemBox"}>权限&订阅</Link>
|
||||
<Link to={`/settings/mybot/configuration/${id}/advanced`} className={pathname.lastIndexOf("/advanced") > -1 ?"active itemBox":"itemBox"}>高级选项</Link>
|
||||
</div>
|
||||
<Switch>
|
||||
{/* bot上架市场 */}
|
||||
<Route
|
||||
path="/settings/exploitBot/configuration/:id/advanced/putaway"
|
||||
path="/settings/mybot/configuration/:id/advanced/putaway"
|
||||
render={(p) => (
|
||||
<Putaway {...props} {...p} botDetail={botDetail} setReload={setReload}/>
|
||||
)}
|
||||
></Route>
|
||||
<Route
|
||||
path="/settings/exploitBot/configuration/:id/advanced/putaway/edit"
|
||||
path="/settings/mybot/configuration/:id/advanced/putaway/edit"
|
||||
render={(p) => (
|
||||
<Putaway {...props} {...p} botDetail={botDetail} setReload={setReload}/>
|
||||
)}
|
||||
></Route>
|
||||
<Route
|
||||
path="/settings/exploitBot/configuration/:id/basic"
|
||||
path="/settings/mybot/configuration/:id/basic"
|
||||
render={(p)=>(<BasicInformation {...props} {...p} botDetail={botDetail} setReload={setReload}/>)}
|
||||
></Route>
|
||||
<Route
|
||||
path="/settings/exploitBot/configuration/:id/jurisdiction"
|
||||
path="/settings/mybot/configuration/:id/jurisdiction"
|
||||
render={(p)=>(<Jurisdiction {...props} {...p} botDetail={botDetail} setReload={setReload}/>)}
|
||||
></Route>
|
||||
<Route
|
||||
path="/settings/exploitBot/configuration/:id/advanced"
|
||||
path="/settings/mybot/configuration/:id/advanced"
|
||||
render={(p)=>(<AdvancedInformation {...props} {...p} botDetail={botDetail} setReload={setReload}/>)}
|
||||
></Route>
|
||||
<Route
|
||||
path="/settings/exploitBot/configuration/:id"
|
||||
path="/settings/mybot/configuration/:id"
|
||||
render={(p)=>(<BasicInformation {...props} {...p} botDetail={botDetail} setReload={setReload}/>)}
|
||||
></Route>
|
||||
</Switch>
|
||||
|
|
|
|||
|
|
@ -75,7 +75,7 @@ function ExploitBot(props){
|
|||
return <div>
|
||||
<div className="exploitHead font-18">
|
||||
<span>我的Bot</span>
|
||||
<Button type="primary" style={{width: '100px', height: '36px'}}><Link to={`/settings/exploitBot/new`}>Bot注册</Link></Button>
|
||||
<Button type="primary" style={{width: '100px', height: '36px'}}><Link to={`/settings/mybot/new`}>Bot注册</Link></Button>
|
||||
</div>
|
||||
|
||||
{/* bot转让接收按钮显示区域 */}
|
||||
|
|
@ -97,15 +97,15 @@ function ExploitBot(props){
|
|||
{botList.map((item, index)=>{return <div className="softBotItem" key={index}>
|
||||
<div className="botOneLine botNameWarpBox">
|
||||
<img src={getImageUrl(item.logo)} alt="" className="imgBox mr20" object-fit="fill"/>
|
||||
<Link className="font-15 botOneLine botNameBox" to={`/settings/exploitBot/configuration/${item.bot_id}`}>{item.bot_name}</Link>
|
||||
<Link className="font-15 botOneLine botNameBox" to={`/settings/mybot/configuration/${item.bot_id}`}>{item.bot_name}</Link>
|
||||
<span className={`font-12 ml10 statusBot ${item.is_public ? item.is_market ? 'market' : 'public' : 'private'}`}>{item.is_public ? item.is_market ? '上架' : '公开' : '私有'}</span>
|
||||
</div>
|
||||
<Button className="themeCorBorBut ml30" style={{width: '68px', height: '36px'}}><Link to={`/settings/exploitBot/configuration/${item.bot_id}`}>编辑</Link></Button>
|
||||
<Button className="themeCorBorBut ml30" style={{width: '68px', height: '36px'}}><Link to={`/settings/mybot/configuration/${item.bot_id}`}>编辑</Link></Button>
|
||||
</div>})}
|
||||
</div> : <div className="nullBotsBox mt80">
|
||||
<img src={nullBot} alt="" width={62}/>
|
||||
<p className="font-18 showBigTip">您当前暂未注册任何Bot</p>
|
||||
<div className="showTip font-14">Bot可以帮助您自动化处理一些繁杂的项目任务,欢迎您<Link to="/settings/exploitBot/new"> 注册一个Bot </Link>基于GitLink API进行开发。<br/>此外您还可以在<Link to="/softbot"> Bot市场 </Link>中共享或安装他人的Bot</div>
|
||||
<div className="showTip font-14">Bot可以帮助您自动化处理一些繁杂的项目任务,欢迎您<Link to="/settings/mybot/new"> 注册一个Bot </Link>基于GitLink API进行开发。<br/>此外您还可以在<Link to="/softbot"> Bot市场 </Link>中共享或安装他人的Bot</div>
|
||||
</div>)}
|
||||
|
||||
<Modal
|
||||
|
|
|
|||
|
|
@ -82,7 +82,7 @@ function Disposition(props){
|
|||
registerBot(param).then(res=>{
|
||||
if(res && res.code === 200){
|
||||
message.success('注册成功');
|
||||
props.history.push('/settings/exploitBot/configuration/'+res.data.bot_id);
|
||||
props.history.push('/settings/mybot/configuration/'+res.data.bot_id);
|
||||
}else{
|
||||
message.success('注册失败: '+res.data);
|
||||
}
|
||||
|
|
@ -92,7 +92,7 @@ function Disposition(props){
|
|||
|
||||
return <div className="createExploitBox">
|
||||
<div className="ceHead pb5 font-16 mb10">
|
||||
<Link to={`/settings/exploitBot`} className="blue-Purple">我的Bot</Link><span className="ceTitle font-18"><i className="iconfont icon-youjiantou ml5 mr5 font-12"></i>注册新的Bot</span>
|
||||
<Link to={`/settings/mybot`} className="blue-Purple">我的Bot</Link><span className="ceTitle font-18"><i className="iconfont icon-youjiantou ml5 mr5 font-12"></i>注册新的Bot</span>
|
||||
</div>
|
||||
<Form className="createExploitForm" onSubmit={submit}>
|
||||
<Form.Item label="Bot名称" className="width50 botItem">
|
||||
|
|
|
|||
|
|
@ -32,7 +32,7 @@ function SoftBot(props){
|
|||
<span className="font-15 botName">{item.bot_name}</span>
|
||||
<span className={`statusBox font-12 ml10 ${item.state === 0 ? '' : 'active'}`}>{item.state === 0 ? '挂起' : '启用'}</span>
|
||||
</div>
|
||||
<Button className="themeCorBorBut" style={{width: '68px', height: '36px'}}><Link to={`/settings/dispositionBot/${item.bot_id}`}>配置</Link></Button>
|
||||
<Button className="themeCorBorBut" style={{width: '68px', height: '36px'}}><Link to={`/settings/installbot/${item.bot_id}`}>配置</Link></Button>
|
||||
</div>})}
|
||||
</div> : <div className="nullBotBox mt20">
|
||||
<img src={nullBot} alt="" width={62}/>
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ import { getImageUrl } from 'educoder';
|
|||
import './index.scss';
|
||||
import axios from "axios";
|
||||
import RenderHtml from "../../components/render-html";
|
||||
import { Link } from "react-router-dom";
|
||||
|
||||
function SoftBotDEtail(props){
|
||||
const {match:{params:{id}}, current_user, history, showLoginDialog} = props;
|
||||
|
|
@ -18,6 +19,8 @@ function SoftBotDEtail(props){
|
|||
// 是否已安装此bot
|
||||
const [isInstall, setIsInstall] = useState(false);
|
||||
const [reload, setReload] = useState(undefined);
|
||||
// userLoginMap: 用户白名单
|
||||
const userLoginMap = ["wangtao", "wuxiaojun", "durian", "pxicb3wke", "xxq250", "Nigel"];
|
||||
|
||||
useEffect(()=>{
|
||||
if(current_user && current_user.login){
|
||||
|
|
@ -26,7 +29,7 @@ function SoftBotDEtail(props){
|
|||
params:{
|
||||
limit: 1000,
|
||||
page: 1,
|
||||
category:"manage"
|
||||
category: userLoginMap.includes(current_user.login) ? "admin" : "manage"
|
||||
}
|
||||
}).then(result=>{
|
||||
if(result && result.data){
|
||||
|
|
@ -84,7 +87,7 @@ function SoftBotDEtail(props){
|
|||
|
||||
function click(){
|
||||
if(isInstall){
|
||||
props.history.push(`/settings/dispositionBot/${id}`)
|
||||
props.history.push(`/settings/installbot/${id}`)
|
||||
}else{
|
||||
if(current_user && current_user.login){
|
||||
// 安装此bot弹窗
|
||||
|
|
@ -134,7 +137,17 @@ function SoftBotDEtail(props){
|
|||
store_list: checkValue ? selectValue.map(item=>{return item.id}) : options.map(item=>{return item.id}),
|
||||
repo_map
|
||||
}
|
||||
installMarketBot(params).then(res=>{
|
||||
let bool = true;
|
||||
// selectValue:用户选择的仓库
|
||||
if(userLoginMap.includes(current_user.login)){
|
||||
if(selectValue.length === 1 && selectValue[0].author.type === "Organization"){
|
||||
params.login = selectValue[0].author.login;
|
||||
}else{
|
||||
message.error("请选择组织下的一个仓库");
|
||||
bool = false;
|
||||
}
|
||||
}
|
||||
bool && installMarketBot(params).then(res=>{
|
||||
if(res && res.code === 200){
|
||||
message.success("安装成功");
|
||||
setVisible(false);
|
||||
|
|
@ -185,12 +198,13 @@ function SoftBotDEtail(props){
|
|||
onChange={selectChange}
|
||||
className="installSelectBox"
|
||||
dropdownClassName="installDropdownClass"
|
||||
getPopupContainer={trigger => trigger.parentNode}
|
||||
>
|
||||
{filterOption.map(item=>(<Select.Option key={item.id} value={item.id}>{item.name}</Select.Option>))}
|
||||
{filterOption.map(item=>(<Select.Option key={item.id} value={item.id}>{`${item.author && item.author.name}/${item.name}`}</Select.Option>))}
|
||||
</Select>}
|
||||
{checkValue === 1 && selectValue.map((item, index)=>{return <div key={index} className="selectValueBox font-14">
|
||||
<i className="iconfont icon-daimakuicon1 font-14 mr5"></i>
|
||||
<span className="selectValue">{`${item.author && item.author.name}/${item.name}`}</span>
|
||||
<Link className="selectValue" to={`/${item.author && item.author.login}/${item.identifier}`}>{`${item.author && item.author.name}/${item.name}`}</Link>
|
||||
<i className="iconfont icon-guanbi font-12 close ml30" onClick={()=>{deleteSelect(item)}}></i>
|
||||
</div>})}
|
||||
<div className="installTil font-18 mt20 mb10">权限信息</div>
|
||||
|
|
|
|||
|
|
@ -60,7 +60,7 @@ function SoftBot(props){
|
|||
// 立即注册跳转
|
||||
function registerBot(){
|
||||
if(current_user && current_user.login){
|
||||
history.push('/settings/exploitBot/new');
|
||||
history.push('/settings/mybot/new');
|
||||
}else{
|
||||
showLoginDialog();
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue