forked from Gitlink/forgeplus-react
学位论文算法-wiki改为文档,issue改为任务
This commit is contained in:
parent
f6a8a2a2aa
commit
2404848cec
|
|
@ -152,7 +152,7 @@ function AboutUs(){
|
|||
<div className="feat_fun_img"><img src={fun2} /></div>
|
||||
<div>
|
||||
<p>一站式过程管理</p>
|
||||
<div>支持疑修、里程碑、 <br />通知提醒、标签归档、Wiki文档、组织管理 </div>
|
||||
<div>支持任务、里程碑、 <br />通知提醒、标签归档、Wiki文档、组织管理 </div>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
|
|
|
|||
|
|
@ -200,7 +200,7 @@ class Activity extends Component{
|
|||
<p className="percent_red" style={{width:`${third_per}`}}></p>
|
||||
<p className="percent_green" style={{width:`${fourth_per}`}}></p>
|
||||
</div>
|
||||
<span>{data && data.issues_count}疑修</span>
|
||||
<span>{data && data.issues_count}任务</span>
|
||||
</div>
|
||||
</div>
|
||||
<ul className="percentBox">
|
||||
|
|
@ -214,11 +214,11 @@ class Activity extends Component{
|
|||
</li>
|
||||
<li>
|
||||
<span className="red">{data && data.close_issues_count}</span>
|
||||
<span className={type==="Issue"&& status==="delay" ?`change active`:"change"} onClick={()=>this.changeTrends("Issue","delay")}>已关闭的疑修</span>
|
||||
<span className={type==="Issue"&& status==="delay" ?`change active`:"change"} onClick={()=>this.changeTrends("Issue","delay")}>已关闭的任务</span>
|
||||
</li>
|
||||
<li>
|
||||
<span className="green">{data && data.open_issues_count}</span>
|
||||
<span className={type==="Issue"&& status==="not_delay" ?`change active`:"change"} onClick={()=>this.changeTrends("Issue","not_delay")}>未处理的疑修</span>
|
||||
<span className={type==="Issue"&& status==="not_delay" ?`change active`:"change"} onClick={()=>this.changeTrends("Issue","not_delay")}>未处理的任务</span>
|
||||
</li>
|
||||
</ul>
|
||||
{
|
||||
|
|
@ -265,7 +265,7 @@ class Activity extends Component{
|
|||
|
||||
<span className="echartTitle" style={{marginTop:0}}>开源项目社群激发演化拓扑熵</span>
|
||||
<BranchLine url={ai_shang_v1_url}/>
|
||||
<p>基于信息熵围绕疑修任务的社群群智激发演化度量</p>
|
||||
<p>基于信息熵围绕疑任务的社群群智激发演化度量</p>
|
||||
|
||||
{/* <span className="echartTitle">开源项目代码变更演化拓扑熵</span>
|
||||
<IssueLine url={ai_shang_v3_url}/>
|
||||
|
|
@ -281,7 +281,7 @@ class Activity extends Component{
|
|||
}
|
||||
<div className="commentsBox">
|
||||
<div className="trendsTop">
|
||||
<span className="font-16">疑修/合并请求记录</span>
|
||||
<span className="font-16">任务/合并请求记录</span>
|
||||
<div className="branchDropdown f-wrap-alignCenter">
|
||||
<Dropdown overlay={this.menu()} trigger={['click']} placement="bottomLeft">
|
||||
<a className="ant-dropdown-link">
|
||||
|
|
|
|||
|
|
@ -66,10 +66,10 @@ function Radar({owner,projectsId}) {
|
|||
<div>
|
||||
从以下五个维度生成当前项目画像:<br/>
|
||||
社区影响力:从项目点赞、关注、fork角度生成评分<br/>
|
||||
项目成熟度:从项目疑修、合并请求、提交总数量生成评分<br/>
|
||||
项目健康度:从项目疑修、合并请求、许可证完成度生成评分<br/>
|
||||
项目成熟度:从项目任务、合并请求、提交总数量生成评分<br/>
|
||||
项目健康度:从项目任务、合并请求、许可证完成度生成评分<br/>
|
||||
团队影响度:从项目团队稳定性、新人增长率生成评分<br/>
|
||||
开发活跃度:从代码提交、疑修及合并请求等开发活动频率生成评分
|
||||
开发活跃度:从代码提交、任务及合并请求等开发活动频率生成评分
|
||||
</div>
|
||||
);
|
||||
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ function DelBox({visible,onCancel,onSuccess,content,title}){
|
|||
<Modals
|
||||
visible={visible}
|
||||
onCancel={onCancel}
|
||||
title={title || "删除疑修"}
|
||||
title={title || "删除任务"}
|
||||
btn={
|
||||
<div>
|
||||
<Button size={'large'} onClick={onCancel}>取消</Button>
|
||||
|
|
@ -22,7 +22,7 @@ function DelBox({visible,onCancel,onSuccess,content,title}){
|
|||
{ content ?
|
||||
content
|
||||
:
|
||||
<div style={{paddingTop:"3px"}}><p className="font-15 mb20">您确定要删除所有选中的疑修?</p><p className="color-grey-6">此操作将清空所有已选中的疑修,请谨慎操作</p></div>
|
||||
<div style={{paddingTop:"3px"}}><p className="font-15 mb20">您确定要删除所有选中的任务?</p><p className="color-grey-6">此操作将清空所有已选中的任务,请谨慎操作</p></div>
|
||||
}
|
||||
</AlignTop>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -74,7 +74,7 @@ function NewPanel(props,ref){
|
|||
<Form className="explain">
|
||||
<Form.Item>
|
||||
{getFieldDecorator("subject",{
|
||||
rules:[{required:true,message:"请输入疑修标题"}]
|
||||
rules:[{required:true,message:"请输入任务标题"}]
|
||||
})(
|
||||
<Input placeholder="标题" maxLength={100}/>
|
||||
)}
|
||||
|
|
|
|||
|
|
@ -73,7 +73,7 @@ function Details(props){
|
|||
useEffect(()=>{
|
||||
if(projectDetail && details){
|
||||
const { author, name} = projectDetail;
|
||||
document.title = `${details.subject}-疑修-${author.name}/${name}`;
|
||||
document.title = `${details.subject}-任务-${author.name}/${name}`;
|
||||
}
|
||||
},[details,projectDetail])
|
||||
|
||||
|
|
@ -269,7 +269,7 @@ function Details(props){
|
|||
const url = `/v1/${owner}/${projectsId}/issues/${index}`;
|
||||
axios.delete(url).then(result=>{
|
||||
if(result){
|
||||
props.showNotification("疑修删除成功!");
|
||||
props.showNotification("任务删除成功!");
|
||||
props.history.push(`/${owner}/${projectsId}/issues`);
|
||||
}
|
||||
}).catch(error=>{})
|
||||
|
|
@ -291,7 +291,7 @@ function Details(props){
|
|||
}).then(result=>{
|
||||
if(result){
|
||||
window.scrollTo(0,0);
|
||||
props.showNotification("疑修更新成功!");
|
||||
props.showNotification("任务更新成功!");
|
||||
Init();
|
||||
setEdit(false);
|
||||
// 刷新操作记录
|
||||
|
|
@ -321,7 +321,7 @@ function Details(props){
|
|||
}).then(result=>{
|
||||
if(result && result.data && result.data.project_issues_index){
|
||||
window.scrollTo(0,0);
|
||||
props.showNotification("疑修复制成功!");
|
||||
props.showNotification("任务复制成功!");
|
||||
props.history.push(`/${owner}/${projectsId}/issues/${result.data.project_issues_index}`);
|
||||
showNpsModal("createIssue", 1);
|
||||
}
|
||||
|
|
@ -376,7 +376,7 @@ function Details(props){
|
|||
visible={delVisible}
|
||||
onCancel={()=>setDelVisible(false)}
|
||||
onSuccess={deleteFunc}
|
||||
content={<div style={{paddingTop:"3px"}}><p className="font-15 mb20">您确定要删除当前疑修?</p></div>}
|
||||
content={<div style={{paddingTop:"3px"}}><p className="font-15 mb20">您确定要删除当前任务?</p></div>}
|
||||
/>
|
||||
{
|
||||
edit ?
|
||||
|
|
|
|||
|
|
@ -56,7 +56,7 @@ function List(props){
|
|||
useEffect(()=>{
|
||||
if(projectDetail){
|
||||
const { author, name } = projectDetail;
|
||||
document.title = `疑修-${author.name}/${name}`;
|
||||
document.title = `任务-${author.name}/${name}`;
|
||||
}
|
||||
},[projectDetail])
|
||||
|
||||
|
|
@ -176,7 +176,7 @@ function List(props){
|
|||
const menu = (
|
||||
<Menu selectedKeys={[`${aboutMe}`]} onClick={chooseAboutMe}>
|
||||
<Menu.Item key={"all"}>全部</Menu.Item>
|
||||
<Menu.Item key={"aboutme"}><Tooltip title="指我创建的、我负责的和@我的疑修">与我相关</Tooltip></Menu.Item>
|
||||
<Menu.Item key={"aboutme"}><Tooltip title="指我创建的、我负责的和@我的任务">与我相关</Tooltip></Menu.Item>
|
||||
<Menu.Item key={"assignedme"}>我负责的</Menu.Item>
|
||||
<Menu.Item key={"authoredme"}>我创建的</Menu.Item>
|
||||
<Menu.Item key={"atme"}>@我的</Menu.Item>
|
||||
|
|
@ -285,7 +285,7 @@ function List(props){
|
|||
setAllValue([]);
|
||||
setVisible(false);
|
||||
setCheckAll(false);
|
||||
props.showNotification("疑修删除成功!");
|
||||
props.showNotification("任务删除成功!");
|
||||
Init();
|
||||
}
|
||||
}).catch(error=>{})
|
||||
|
|
@ -367,7 +367,7 @@ function List(props){
|
|||
</Dropdown>
|
||||
}
|
||||
<Search
|
||||
placeholder="输入关键字搜索疑修"
|
||||
placeholder="输入关键字搜索任务"
|
||||
value={value}
|
||||
onChange={changeSearchValueFunc}
|
||||
onSearch={()=>setKeyword(value)}
|
||||
|
|
@ -386,7 +386,7 @@ function List(props){
|
|||
permission && permission !== "Reporter" &&
|
||||
<Link to={`/${owner}/${projectsId}/issues/sign`} className="dorpdownButton"><img src={bj} alt="" className="mr5" />标记管理</Link>
|
||||
}
|
||||
<CheckProfile {...props} sureFunc={()=>{props.history.push(`/${owner}/${projectsId}/issues/new`)}} checklogin className="operateButton ml20">创建疑修</CheckProfile>
|
||||
<CheckProfile {...props} sureFunc={()=>{props.history.push(`/${owner}/${projectsId}/issues/new`)}} checklogin className="operateButton ml20">创建任务</CheckProfile>
|
||||
</div>
|
||||
</div>
|
||||
<div className="lists">
|
||||
|
|
@ -431,8 +431,8 @@ function List(props){
|
|||
(!has_created_issues ?
|
||||
<div className="listempty">
|
||||
<img src={issueEmp} alt="" width="68px" />
|
||||
<p className="font-22 mt5 mb10">欢迎使用疑修(Issue)</p>
|
||||
<p className="font-15">疑修用于记录与跟踪待办事项、项目bug、功能需求等。在使用之前,请您先<CheckProfile {...props} checklogin sureFunc={()=>{props.history.push(`/${owner}/${projectsId}/issues/new`)}} className="color-blue">创建一个疑修</CheckProfile></p>
|
||||
<p className="font-22 mt5 mb10">欢迎使用任务</p>
|
||||
<p className="font-15">任务用于记录与跟踪待办事项、项目bug、功能需求等。在使用之前,请您先<CheckProfile {...props} checklogin sureFunc={()=>{props.history.push(`/${owner}/${projectsId}/issues/new`)}} className="color-blue">创建一个任务</CheckProfile></p>
|
||||
</div>
|
||||
:
|
||||
<div className="dataempty"><img src={emp} alt="" /></div>
|
||||
|
|
|
|||
|
|
@ -55,7 +55,7 @@ function New(props){
|
|||
return;
|
||||
}
|
||||
const { author, name} = projectDetail;
|
||||
document.title = `新建疑修-${author.name}/${name}`
|
||||
document.title = `新建任务-${author.name}/${name}`
|
||||
}
|
||||
},[projectDetail, feedBack])
|
||||
|
||||
|
|
@ -199,7 +199,7 @@ function New(props){
|
|||
}).then(result=>{
|
||||
if(result && result.data && result.data.project_issues_index){
|
||||
window.scrollTo(0,0);
|
||||
props.showNotification("疑修创建成功!");
|
||||
props.showNotification("任务创建成功!");
|
||||
props.history.push(`/${owner}/${projectsId}/issues/${result.data.project_issues_index}`);
|
||||
showNpsModal("createIssue", 1);
|
||||
}
|
||||
|
|
@ -241,7 +241,7 @@ function New(props){
|
|||
}
|
||||
return(
|
||||
<div>
|
||||
<p className="font-17 color-grey-3 mt20 mb15">新建疑修</p>
|
||||
<p className="font-17 color-grey-3 mt20 mb15">新建任务</p>
|
||||
<Box>
|
||||
<LongWidth>
|
||||
{/* 意见反馈初始化内容 */}
|
||||
|
|
|
|||
|
|
@ -88,10 +88,10 @@ function Sign(props){
|
|||
按创建时间升序排序
|
||||
</Menu.Item>
|
||||
<Menu.Item key={"3"} value="desc" createName="issues_count">
|
||||
按疑修数量降序排序
|
||||
按任务数量降序排序
|
||||
</Menu.Item>
|
||||
<Menu.Item key={"4"} value="asc" createName="issues_count">
|
||||
按疑修数量升序排序
|
||||
按任务数量升序排序
|
||||
</Menu.Item>
|
||||
{/* <Menu.Item key={"5"} value="desc" createName="pull_requests_count">
|
||||
按合并请求数量降序排序
|
||||
|
|
@ -206,7 +206,7 @@ function Sign(props){
|
|||
content={<div style={{paddingTop:"3px"}}><p className="font-15 mb20">您确定要删除当前标记?</p></div>}
|
||||
/>
|
||||
<div className="between mt30 mb25">
|
||||
<span><Link to={`/${owner}/${projectsId}/issues`}>疑修</Link> / 项目标记</span>
|
||||
<span><Link to={`/${owner}/${projectsId}/issues`}>任务</Link> / 项目标记</span>
|
||||
<a className="operateButton" onClick={createSign}><img src={create} alt="" className="mr5"/>创建标记</a>
|
||||
</div>
|
||||
{
|
||||
|
|
@ -247,7 +247,7 @@ function Sign(props){
|
|||
</p>
|
||||
<p style={{flex:2}} className="task-hide">{i.description}</p>
|
||||
<p>
|
||||
<span><span className="task-hide color-blue pointer" onClick={() => toIssues(i) } >{i.issues_count || 0} </span> 疑修</span>
|
||||
<span><span className="task-hide color-blue pointer" onClick={() => toIssues(i) } >{i.issues_count || 0} </span> 任务</span>
|
||||
{/* <span className="line">{i.pull_requests_count || 0} 合并请求</span> */}
|
||||
</p>
|
||||
<p>
|
||||
|
|
|
|||
|
|
@ -549,7 +549,7 @@ function CoderDepot(props){
|
|||
}*/}
|
||||
{
|
||||
issuesFlag &&
|
||||
<CheckProfile {...props} sureFunc={createIssue} checklogin>+ 疑修</CheckProfile>
|
||||
<CheckProfile {...props} sureFunc={createIssue} checklogin>+ 任务</CheckProfile>
|
||||
}
|
||||
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -615,7 +615,7 @@ class Detail extends Component {
|
|||
const { projectsId , owner } = this.props.match.params;
|
||||
const { projectName } = this.state;
|
||||
this.props.confirm({
|
||||
content: <span style={{display:"block",textAlign:"left"}}>该操作无法撤销!且将会一并删除相关的疑修、合并请求、工作流、里程碑、动态等数据。<br/>是否确认删除 <span style={{fontWeight:"bold"}}>{owner}/{projectName}({projectsId})</span>?</span>,
|
||||
content: <span style={{display:"block",textAlign:"left"}}>该操作无法撤销!且将会一并删除相关的任务、合并请求、工作流、里程碑、动态等数据。<br/>是否确认删除 <span style={{fontWeight:"bold"}}>{owner}/{projectName}({projectsId})</span>?</span>,
|
||||
onOk: () => {
|
||||
const url = `/${owner}/${projectsId}.json`;
|
||||
axios.delete(url).then((result) => {
|
||||
|
|
|
|||
|
|
@ -77,7 +77,7 @@ function DetailBanner({ history,list , owner , projectsId ,showNotification , ur
|
|||
<Link to={{ pathname: `/${owner}/${projectsId}/issues`, state }}>
|
||||
<Tooltip placement="bottom">
|
||||
<i className={"iconfont icon-yixiuicon1 color-grey-3 mr5 font-14"}></i>
|
||||
<span>疑修(Issue)</span>
|
||||
<span>任务</span>
|
||||
</Tooltip>
|
||||
{projectDetail && projectDetail.issues_count ? <span className="num">{numFormat(projectDetail.issues_count)}</span> : ""}
|
||||
</Link>
|
||||
|
|
@ -140,7 +140,7 @@ function DetailBanner({ history,list , owner , projectsId ,showNotification , ur
|
|||
<li className={pathname === "wiki" ? "active" : ""}>
|
||||
<Link to={{ pathname: `/${owner}/${projectsId}/wiki`, state }}>
|
||||
<i className={"iconfont icon-a-wikiicon1 color-grey-3 mr5 font-14"}></i>
|
||||
<span>维基(Wiki)</span>
|
||||
<span>文档</span>
|
||||
</Link>
|
||||
</li>
|
||||
}
|
||||
|
|
|
|||
|
|
@ -321,7 +321,7 @@ class merge extends Component {
|
|||
</ul>
|
||||
</div>
|
||||
<ul className="topWrapper_select">
|
||||
{ open_blockchain && <li>关联疑修</li> }
|
||||
{ open_blockchain && <li>关联任务</li> }
|
||||
<li>
|
||||
<Dropdown
|
||||
className="topWrapperSelect"
|
||||
|
|
|
|||
|
|
@ -414,7 +414,7 @@ class MergeForm extends Component {
|
|||
initialValue: issue_id,
|
||||
})(
|
||||
<Select
|
||||
placeholder={"关联疑修"}
|
||||
placeholder={"关联任务"}
|
||||
showSearch
|
||||
className="searchIcon"
|
||||
suffixIcon={<i className="iconfont icon-sousuo1"></i>}
|
||||
|
|
@ -423,7 +423,7 @@ class MergeForm extends Component {
|
|||
option.props.value && option.props.children && option.props.children.toLowerCase().indexOf(input.toLowerCase()) >= 0
|
||||
}
|
||||
>
|
||||
<Option key={0} value={""}>{issue_lists && issue_lists.length > 0 ? "未选择疑修" : "当前仓库还没有疑修"}</Option>
|
||||
<Option key={0} value={""}>{issue_lists && issue_lists.length > 0 ? "未选择任务" : "当前仓库还没有任务"}</Option>
|
||||
{this.renderSelect(issue_lists)}
|
||||
</Select>
|
||||
)}
|
||||
|
|
|
|||
|
|
@ -54,7 +54,7 @@ class Detail extends Component {
|
|||
const {data} = this.state;
|
||||
if(projectDetail && data){
|
||||
const { author, name} = projectDetail;
|
||||
document.title = `${data.subject}-疑修-${author.name}/${name}`;
|
||||
document.title = `${data.subject}-任务-${author.name}/${name}`;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -180,10 +180,10 @@ function MilepostDetail(props){
|
|||
}
|
||||
{/* {
|
||||
current_user && current_user.login ?
|
||||
<Button type='primary' onClick={() => {history.push(`/${owner}/${projectsId}/issues/${mileId}/new`)}} className='createMilepostBtn' style={{width: '83px'}}>+ 创建疑修</Button>
|
||||
:<Button type='primary' onClick={showLoginDialog} className='createMilepostBtn' style={{width: '83px'}}>+ 创建疑修</Button>
|
||||
<Button type='primary' onClick={() => {history.push(`/${owner}/${projectsId}/issues/${mileId}/new`)}} className='createMilepostBtn' style={{width: '83px'}}>+ 创建任务</Button>
|
||||
:<Button type='primary' onClick={showLoginDialog} className='createMilepostBtn' style={{width: '83px'}}>+ 创建任务</Button>
|
||||
} */}
|
||||
<CheckProfile {...props} sureFunc={()=>{history.push(`/${owner}/${projectsId}/issues/${mileId}/new`)}} checklogin className="operateButton ml20">+ 创建疑修</CheckProfile>
|
||||
<CheckProfile {...props} sureFunc={()=>{history.push(`/${owner}/${projectsId}/issues/${mileId}/new`)}} checklogin className="operateButton ml20">+ 创建任务</CheckProfile>
|
||||
</div>
|
||||
</FlexAJ>}
|
||||
{/* 里程碑描述 */}
|
||||
|
|
@ -226,7 +226,7 @@ function MilepostDetail(props){
|
|||
<div className="listempty">
|
||||
<img src={millestones} style={{width:"68px"}} alt="" />
|
||||
<p className="font-22 mt5 mb10">欢迎使用里程碑</p>
|
||||
<p className="font-15">里程碑用于集中归类管理项目的疑修及进度。在使用之前,您可以先<CheckProfile {...props} checklogin sureFunc={()=>{props.history.push(`/${owner}/${projectsId}/issues/${mileId}/new`)}} className="color-blue">创建一个疑修</CheckProfile></p>
|
||||
<p className="font-15">里程碑用于集中归类管理项目的任务及进度。在使用之前,您可以先<CheckProfile {...props} checklogin sureFunc={()=>{props.history.push(`/${owner}/${projectsId}/issues/${mileId}/new`)}} className="color-blue">创建一个任务</CheckProfile></p>
|
||||
</div>
|
||||
}
|
||||
{
|
||||
|
|
|
|||
|
|
@ -287,8 +287,8 @@ class MilepostDetail extends Component {
|
|||
}
|
||||
{
|
||||
issueFlag ? (current_user && current_user.login ?
|
||||
<Button type='primary' onClick={() => {this.props.history.push(`/${owner}/${projectsId}/issues/${meilid}/new`)}} className='createMilepostBtn' style={{width: '83px'}}>+ 创建疑修</Button>
|
||||
:<Button type='primary' onClick={showLoginDialog} className='createMilepostBtn' style={{width: '83px'}}>+ 创建疑修</Button>)
|
||||
<Button type='primary' onClick={() => {this.props.history.push(`/${owner}/${projectsId}/issues/${meilid}/new`)}} className='createMilepostBtn' style={{width: '83px'}}>+ 创建任务</Button>
|
||||
:<Button type='primary' onClick={showLoginDialog} className='createMilepostBtn' style={{width: '83px'}}>+ 创建任务</Button>)
|
||||
:""
|
||||
}
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -104,7 +104,7 @@ class OrderItem extends Component {
|
|||
<Popconfirm
|
||||
placement="bottom"
|
||||
overlayClassName={orderid === item.id && isdisplay ? "overlayBox" : "overlayBox hideOverlay" }
|
||||
title={'您确定要删除当前疑修吗?'}
|
||||
title={'您确定要删除当前任务吗?'}
|
||||
okText="是"
|
||||
cancelText="否"
|
||||
onConfirm={() => this.deletedetail(item.id)}
|
||||
|
|
|
|||
|
|
@ -101,7 +101,7 @@ class order extends Component {
|
|||
const {projectDetail} = this.props;
|
||||
if(projectDetail){
|
||||
const { author, name} = projectDetail;
|
||||
document.title = `疑修-${author.name}/${name}`;
|
||||
document.title = `任务-${author.name}/${name}`;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -437,9 +437,9 @@ class order extends Component {
|
|||
renderNew =()=>{
|
||||
return(
|
||||
// <CheckProfile {...this.props} className="topWrapper_btn ml10" sureoncFunc={()=>{createIssue()}}>
|
||||
// + 创建疑修
|
||||
// + 创建任务
|
||||
// </CheckProfile>
|
||||
<a className="topWrapper_btn ml10" onClick={this.createIssue}>+ 创建疑修</a>
|
||||
<a className="topWrapper_btn ml10" onClick={this.createIssue}>+ 创建任务</a>
|
||||
)
|
||||
}
|
||||
|
||||
|
|
@ -688,7 +688,7 @@ class order extends Component {
|
|||
<div className="topWrapper" style={{borderBottom:"none"}}>
|
||||
<div className="target-detail-search">
|
||||
<Search
|
||||
placeholder="输入关键字搜索疑修"
|
||||
placeholder="输入关键字搜索任务"
|
||||
enterButton
|
||||
onSearch={this.searchFunc}
|
||||
style={{ width: 300 }}
|
||||
|
|
|
|||
|
|
@ -59,9 +59,9 @@ class order_form extends Component {
|
|||
if(form_type === 'feedback'){
|
||||
document.title = `意见反馈`
|
||||
}else if(form_type === 'new'){
|
||||
document.title = `新建疑修-${author.name}/${name}`
|
||||
document.title = `新建任务-${author.name}/${name}`
|
||||
}else{
|
||||
subject && (document.title = `${subject}-疑修-${author.name}/${name}`);
|
||||
subject && (document.title = `${subject}-任务-${author.name}/${name}`);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -383,14 +383,14 @@ class order_form extends Component {
|
|||
<div className="list-right">
|
||||
<div className="pd20">
|
||||
<h3 className="mb15">
|
||||
{form_type === "edit" ? "编辑" :( form_type === "copy" ? "复制" : "新建")}疑修
|
||||
{form_type === "edit" ? "编辑" :( form_type === "copy" ? "复制" : "新建")}任务
|
||||
</h3>
|
||||
<Form.Item>
|
||||
{getFieldDecorator("subject", {
|
||||
rules: [
|
||||
{
|
||||
required: true,
|
||||
message: "请填写疑修标题",
|
||||
message: "请填写任务标题",
|
||||
},
|
||||
]
|
||||
})(<Input placeholder="标题" size="large" maxLength={200}/>)}
|
||||
|
|
|
|||
|
|
@ -98,7 +98,7 @@ function DispositionBot(props){
|
|||
</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="/softbot"> Bot市场 </Link>中挑选一个适合您项目的Bot吧!</div>
|
||||
<div className="showTip font-14">您可以将Bot配置到仓库来处理一些繁杂的项目任务,比如自动化关闭任务、合并请求等,以节约时间精力提升开发效率。快去<Link to="/softbot"> Bot市场 </Link>中挑选一个适合您项目的Bot吧!</div>
|
||||
<div className="borTip"></div>
|
||||
<Button type="primary" style={{width: '112px', height: '36px', padding: 0}}><Link to={'/softbot'}>去Bot市场逛逛</Link></Button>
|
||||
</div>)}
|
||||
|
|
|
|||
|
|
@ -112,8 +112,8 @@ function Jurisdiction(props){
|
|||
)}
|
||||
</Form.Item>
|
||||
<div className="dashedBor"></div>
|
||||
<Form.Item label="疑修(Issue)权限" className="resourceBox botItem">
|
||||
<div className="color-99">疑修的打开、关闭、编辑、分配、评论</div>
|
||||
<Form.Item label="任务权限" className="resourceBox botItem">
|
||||
<div className="color-99">任务的打开、关闭、编辑、分配、评论</div>
|
||||
{getFieldDecorator("juris_diction_issue",{rules:[{validator: jurisDictionPrValidator}],initialValue: botDetail.limit_and_events.juris_diction_issue, getValueFromEvent: issueControl})(
|
||||
<Select>
|
||||
{resource.map(item=>{return <Option value={item.value} key={item.value}>{item.name}</Option>})}
|
||||
|
|
@ -151,17 +151,17 @@ function Jurisdiction(props){
|
|||
)}
|
||||
</Form.Item>}
|
||||
{(codeSelectValue !== resource[0].value || prSelectValue !== resource[0].value) && issueSelectValue !== resource[0].value && <div className="dashedBor"></div>}
|
||||
{issueSelectValue !== resource[0].value && <Form.Item label="疑修事件" className="botItem width50 checkBox three">
|
||||
{issueSelectValue !== resource[0].value && <Form.Item label="任务事件" className="botItem width50 checkBox three">
|
||||
{getFieldDecorator("event_issue",{
|
||||
initialValue: botDetail.limit_and_events.event_issue ? botDetail.limit_and_events.event_issue.split(',').map(item=>item = parseInt(item)) : [],
|
||||
rules:[{validator: (rule, value, callback)=>{eventValidator(rule, value, callback)}}]
|
||||
})(
|
||||
<Checkbox.Group>
|
||||
<Row>
|
||||
<Col span={16}><Checkbox value={7}>疑修<br/><span className="color-99">疑修已打开、已关闭、已重新打开或编辑</span></Checkbox></Col>
|
||||
<Col span={8}><Checkbox value={8}>疑修已指派<br/><span className="color-99">疑修已被指派或取消指派</span></Checkbox></Col>
|
||||
<Col span={16}><Checkbox value={9}>已标记疑修<br/><span className="color-99">疑修标记被更新或清除</span></Checkbox></Col>
|
||||
<Col span={8}><Checkbox value={10}>疑修评论<br/><span className="color-99">疑修评论被创建、编辑或删除</span></Checkbox></Col>
|
||||
<Col span={16}><Checkbox value={7}>任务<br/><span className="color-99">任务已打开、已关闭、已重新打开或编辑</span></Checkbox></Col>
|
||||
<Col span={8}><Checkbox value={8}>任务已指派<br/><span className="color-99">任务已被指派或取消指派</span></Checkbox></Col>
|
||||
<Col span={16}><Checkbox value={9}>已标记任务<br/><span className="color-99">任务标记被更新或清除</span></Checkbox></Col>
|
||||
<Col span={8}><Checkbox value={10}>任务评论<br/><span className="color-99">任务评论被创建、编辑或删除</span></Checkbox></Col>
|
||||
</Row>
|
||||
</Checkbox.Group>
|
||||
)}
|
||||
|
|
|
|||
|
|
@ -164,8 +164,8 @@ function Disposition(props){
|
|||
)}
|
||||
</Form.Item>
|
||||
<div className="dashedBor"></div>
|
||||
<Form.Item label="疑修(Issue)权限" className="resourceBox botItem">
|
||||
<div className="color-99">疑修的打开、关闭、编辑、分配、评论</div>
|
||||
<Form.Item label="任务权限" className="resourceBox botItem">
|
||||
<div className="color-99">任务的打开、关闭、编辑、分配、评论</div>
|
||||
{getFieldDecorator("juris_diction_issue",{rules:[{validator: jurisDictionPrValidator}],initialValue: resource[0].value, getValueFromEvent: issueControl})(
|
||||
<Select>
|
||||
{resource.map(item=>{return <Option value={item.value} key={item.value}>{item.name}</Option>})}
|
||||
|
|
@ -201,16 +201,16 @@ function Disposition(props){
|
|||
)}
|
||||
</Form.Item>}
|
||||
{(codeSelectValue !== resource[0].value || prSelectValue !== resource[0].value) && issueSelectValue !== resource[0].value && <div className="dashedBor"></div>}
|
||||
{issueSelectValue !== resource[0].value && <Form.Item label="疑修事件" className="botItem width50 checkBox">
|
||||
{issueSelectValue !== resource[0].value && <Form.Item label="任务事件" className="botItem width50 checkBox">
|
||||
{getFieldDecorator("event_issue",{
|
||||
rules:[{validator: (rule, value, callback)=>{eventValidator(rule, value, callback)}}]
|
||||
})(
|
||||
<Checkbox.Group>
|
||||
<Row>
|
||||
<Col span={16}><Checkbox value={7}>疑修<br/><span className="color-99">疑修已打开、已关闭、已重新打开或编辑</span></Checkbox></Col>
|
||||
<Col span={8}><Checkbox value={8}>疑修已指派<br/><span className="color-99">疑修已被指派或取消指派</span></Checkbox></Col>
|
||||
<Col span={16}><Checkbox value={9}>已标记疑修<br/><span className="color-99">疑修标记被更新或清除</span></Checkbox></Col>
|
||||
<Col span={8}><Checkbox value={10}>疑修评论<br/><span className="color-99">疑修评论被创建、编辑或删除</span></Checkbox></Col>
|
||||
<Col span={16}><Checkbox value={7}>任务<br/><span className="color-99">任务已打开、已关闭、已重新打开或编辑</span></Checkbox></Col>
|
||||
<Col span={8}><Checkbox value={8}>任务已指派<br/><span className="color-99">任务已被指派或取消指派</span></Checkbox></Col>
|
||||
<Col span={16}><Checkbox value={9}>已标记任务<br/><span className="color-99">任务标记被更新或清除</span></Checkbox></Col>
|
||||
<Col span={8}><Checkbox value={10}>任务评论<br/><span className="color-99">任务评论被创建、编辑或删除</span></Checkbox></Col>
|
||||
</Row>
|
||||
</Checkbox.Group>
|
||||
)}
|
||||
|
|
|
|||
|
|
@ -152,7 +152,7 @@ function Index(props){
|
|||
<div class="nullStoreBox mt25">
|
||||
<img src={Logo} class="loBox mt50" />
|
||||
<p class="font-22 mt10">欢迎使用开源软件健康度量服务</p>
|
||||
<div class="introBox font-15">开源软件健康度量服务是一种代码库分析工具,旨在通过深入分析代码库的关键活动数据来评估开源项目的健康状况。该服务通过收集和分析代码库中的贡献者、提交(commit)、合并请求(pullRequest)、疑修(issue)等数据指标,为项目开发者、维护者提供了一个全面的项目健康报告</div>
|
||||
<div class="introBox font-15">开源软件健康度量服务是一种代码库分析工具,旨在通过深入分析代码库的关键活动数据来评估开源项目的健康状况。该服务通过收集和分析代码库中的贡献者、提交(commit)、合并请求(pullRequest)、任务(issue)等数据指标,为项目开发者、维护者提供了一个全面的项目健康报告</div>
|
||||
<div class="borBox"></div>
|
||||
{!loading && <Button type="primary" onClick={()=>{cookie.save("opensource",`${owner}_${projectsId}`,{ expires: new Date(new Date().getTime() + 24 * 3600 * 1000),path:`/` });getReportStart();}}>开始体验</Button> }
|
||||
{ loading && <div><Spin /><span className="ml5 color-blue">服务报告生成中...</span></div> }
|
||||
|
|
|
|||
|
|
@ -15,13 +15,13 @@ const { Option } = Select;
|
|||
const menu = [
|
||||
// {name:"主页",index:"home"},
|
||||
{name:"代码库",index:"code"},
|
||||
{name:"疑修 (Issue)",index:"issues"},
|
||||
{name:"任务 (Issue)",index:"issues"},
|
||||
// {name:"合并请求 (PR)",index:"pulls"},
|
||||
// {name:"引擎 (Engine)",index:"devops"},
|
||||
{name:"数据集",index:"dataset"},
|
||||
// {name:"资源库",index:"resources"},
|
||||
// {name:"里程碑",index:"versions"},
|
||||
{name:"维基 (Wiki)",index:"wiki"},
|
||||
{name:"文档",index:"wiki"},
|
||||
// {name:"服务",index:"services"},
|
||||
// {name:"动态",index:"activity"},
|
||||
]
|
||||
|
|
@ -212,7 +212,7 @@ class Setting extends Component {
|
|||
const { projectName } = this.state;
|
||||
const {current_user:{login, user_id}, projectDetail:{project_id}} = this.props;
|
||||
this.props.confirm({
|
||||
content: <span style={{display:"block",textAlign:"left"}}>该操作无法撤销!且将会一并删除相关的疑修、合并请求、工作流、里程碑、动态等数据。<br/>是否确认删除 <span style={{fontWeight:"bold"}}>{owner}/{projectName}({projectsId})</span>?</span>,
|
||||
content: <span style={{display:"block",textAlign:"left"}}>该操作无法撤销!且将会一并删除相关的任务、合并请求、工作流、里程碑、动态等数据。<br/>是否确认删除 <span style={{fontWeight:"bold"}}>{owner}/{projectName}({projectsId})</span>?</span>,
|
||||
onOk: () => {
|
||||
const url = `/${owner}/${projectsId}.json`;
|
||||
axios.delete(url).then((result) => {
|
||||
|
|
|
|||
|
|
@ -310,23 +310,23 @@ function New({ form , match , showNotification , history, projectDetail }) {
|
|||
<span>合并请求被同步</span>
|
||||
</span> */}
|
||||
</div>
|
||||
<p className="color-grey-3 mt10 mb10">疑修事件</p>
|
||||
<p className="color-grey-3 mt10 mb10">任务事件</p>
|
||||
<div className="colSpan">
|
||||
<span>
|
||||
<Checkbox value="issues_only">疑修</Checkbox>
|
||||
<span>疑修已打开、已关闭、已重新打开或编辑</span>
|
||||
<Checkbox value="issues_only">任务</Checkbox>
|
||||
<span>任务已打开、已关闭、已重新打开或编辑</span>
|
||||
</span>
|
||||
<span>
|
||||
<Checkbox value="issue_assign">疑修已指派</Checkbox>
|
||||
<span>疑修已被指派或取消指派</span>
|
||||
<Checkbox value="issue_assign">任务已指派</Checkbox>
|
||||
<span>任务已被指派或取消指派</span>
|
||||
</span>
|
||||
<span>
|
||||
<Checkbox value="issue_label">已标记疑修</Checkbox>
|
||||
<span>疑修标记被更新或清除</span>
|
||||
<Checkbox value="issue_label">已标记任务</Checkbox>
|
||||
<span>任务标记被更新或清除</span>
|
||||
</span>
|
||||
<span>
|
||||
<Checkbox value="issue_comment">疑修评论</Checkbox>
|
||||
<span>疑修评论被创建、编辑或删除</span>
|
||||
<Checkbox value="issue_comment">任务评论</Checkbox>
|
||||
<span>任务评论被创建、编辑或删除</span>
|
||||
</span>
|
||||
</div>
|
||||
</Checkbox.Group>
|
||||
|
|
|
|||
|
|
@ -44,7 +44,7 @@ function SoftBot(props){
|
|||
</div> : <div className="nullBotBox mt20">
|
||||
<img src={nullBot} alt="" width={62}/>
|
||||
<p className="font-18 showBigTip">您当前暂未安装任何Bot</p>
|
||||
<div className="showTip font-14">Bot可以帮助项目贡献者处理繁杂的项目任务,比如关闭疑修、合并请求等,以节约时间精力提升开发效率。快去市场中挑选一个适合您项目的Bot吧!</div>
|
||||
<div className="showTip font-14">Bot可以帮助项目贡献者处理繁杂的项目任务,比如关闭任务、合并请求等,以节约时间精力提升开发效率。快去市场中挑选一个适合您项目的Bot吧!</div>
|
||||
<div className="borTip"></div>
|
||||
<Button type="primary" style={{width: '112px', height: '36px', padding: 0}}><Link to={'/softbot'}>去Bot市场逛逛</Link></Button>
|
||||
</div>)}
|
||||
|
|
|
|||
|
|
@ -41,7 +41,7 @@ export default Form.create()((props) => {
|
|||
// 根据wiki名称获取wiki内容
|
||||
const wikiName = searchParams.get("wiki")
|
||||
const sameNameWiki = findSamaNameWiki(wikiPages, wikiName)
|
||||
document.title = `${titleByEditType[editType]}${sameNameWiki.title}-维基-${projectAuthor && projectAuthor.name}/${projectName}`;
|
||||
document.title = `${titleByEditType[editType]}${sameNameWiki.title}-文档-${projectAuthor && projectAuthor.name}/${projectName}`;
|
||||
getWiki({
|
||||
...wikiParams,
|
||||
pageName: sameNameWiki.sub_url
|
||||
|
|
@ -60,7 +60,7 @@ export default Form.create()((props) => {
|
|||
setLoading(false);
|
||||
})
|
||||
}else{
|
||||
document.title = `${titleByEditType[editType]}-维基-${projectAuthor && projectAuthor.name}/${projectName}`;
|
||||
document.title = `${titleByEditType[editType]}-文档-${projectAuthor && projectAuthor.name}/${projectName}`;
|
||||
}
|
||||
}, [editType, sidebar])
|
||||
|
||||
|
|
@ -153,7 +153,7 @@ export default Form.create()((props) => {
|
|||
return <div className="wiki-main pb50">
|
||||
<div className="wiki-head">
|
||||
<span className="font-20">
|
||||
<a onClick={()=>{history.go(-1)}} className="primaryText">Wiki</a>
|
||||
<a onClick={()=>{history.go(-1)}} className="primaryText">文档</a>
|
||||
<Icon type="right" className="font-16 ml5 mr5"/>
|
||||
{titleByEditType[editType]}页面
|
||||
</span>
|
||||
|
|
@ -175,9 +175,9 @@ export default Form.create()((props) => {
|
|||
|
||||
<Form.Item>
|
||||
{getFieldDecorator('md_content', {
|
||||
rules: [{ required: true, message: "请输入wiki内容" }],
|
||||
rules: [{ required: true, message: "请输入文档内容" }],
|
||||
})(<TpmMdEditor
|
||||
placeholder={"请输入wiki内容"}
|
||||
placeholder={"请输入文档内容"}
|
||||
height={500}
|
||||
mdID={"wiki_content"}
|
||||
initValue={getFieldValue("md_content")}
|
||||
|
|
|
|||
|
|
@ -56,7 +56,7 @@ export default (props) => {
|
|||
}, [menuList, wikiBySearch])
|
||||
|
||||
useEffect(()=>{
|
||||
document.title = `${selectNodeDetail.titleStr ? `${selectNodeDetail.titleStr}-` : ""}维基-${projectAuthor && projectAuthor.name}/${projectName}`;
|
||||
document.title = `${selectNodeDetail.titleStr ? `${selectNodeDetail.titleStr}-` : ""}文档-${projectAuthor && projectAuthor.name}/${projectName}`;
|
||||
if(selectNodeDetail.title_sub){
|
||||
setLoading(true);
|
||||
getWiki({
|
||||
|
|
@ -90,7 +90,7 @@ export default (props) => {
|
|||
setTypeMenuModal("addMenu")
|
||||
}} className='mr15'><Icon type="plus"/>新增目录</Button>
|
||||
<Link to={`/${owner}/${repoIdentifier}/wiki/add`}><Button type="default"><Icon type="plus"/>新增页面</Button></Link>
|
||||
</div> : "Wiki文档"
|
||||
</div> : "文档"
|
||||
}
|
||||
</span>
|
||||
<div>
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ export default (props) => {
|
|||
|
||||
useEffect(()=>{
|
||||
if(checkItem && checkItem.name){
|
||||
document.title = `${checkItem.name}-维基预览`
|
||||
document.title = `${checkItem.name}-文档预览`
|
||||
}
|
||||
}, [checkItem])
|
||||
|
||||
|
|
@ -50,7 +50,7 @@ export default (props) => {
|
|||
}, [menuList, wikiBySearch])
|
||||
|
||||
useEffect(() => {
|
||||
document.title = `${checkItem && checkItem.titleStr}-维基预览`
|
||||
document.title = `${checkItem && checkItem.titleStr}-文档预览`
|
||||
checkItem.title_sub && getWiki({
|
||||
...wikiParams,
|
||||
pageName: checkItem.title_sub
|
||||
|
|
|
|||
|
|
@ -14,14 +14,14 @@ export default (props) => {
|
|||
<span className="wiki-title">
|
||||
{project && project.name}
|
||||
</span>
|
||||
Wiki</p>
|
||||
<p className="welcome-content">Wiki主要是您项目的产品设计、文档描述、注释等等</p>
|
||||
文档</p>
|
||||
<p className="welcome-content">文档主要是您项目的产品设计、文档描述、注释等等</p>
|
||||
<Divider style={{minWidth: 400, width: 400, margin: '50px auto 45px'}}/>
|
||||
{
|
||||
isManager ? <div>
|
||||
<Link to={`/${owner}/${projectsId}/wiki/add`}><Button type="primary">创建Wiki文档</Button></Link>
|
||||
<Link to={`/${owner}/${projectsId}/wiki/add`}><Button type="primary">创建文档</Button></Link>
|
||||
<UploadWiki wikiParams={wikiParams} sidebar="" refush={refush}/>
|
||||
</div> : <p className="welcome-des">该项目暂时没有创建Wiki</p>
|
||||
</div> : <p className="welcome-des">该项目暂时没有创建文档</p>
|
||||
}
|
||||
</div>
|
||||
)
|
||||
|
|
|
|||
|
|
@ -290,7 +290,7 @@ class claims extends React.Component {
|
|||
{claimerData && claimerData.length > 0 ? (
|
||||
<div>
|
||||
<div className="mt15">
|
||||
<span>声明要关注/解决此疑修的用户</span>
|
||||
<span>声明要关注/解决此任务的用户</span>
|
||||
<span className="infoCount">{claimerData.length}</span>
|
||||
</div>
|
||||
<div
|
||||
|
|
@ -321,7 +321,7 @@ class claims extends React.Component {
|
|||
</div>
|
||||
) : (
|
||||
<div className="mt15">
|
||||
<span>声明要关注/解决此疑修的用户</span>
|
||||
<span>声明要关注/解决此任务的用户</span>
|
||||
<span className="infoCount">0</span>
|
||||
</div>
|
||||
)}
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@ function Line({data}) {
|
|||
trigger: 'axis'
|
||||
},
|
||||
legend: {
|
||||
data: ['提交数', '疑修数', '合并请求数'],
|
||||
data: ['提交数', '任务数', '合并请求数'],
|
||||
right: 'center',
|
||||
bottom: '4%',
|
||||
},
|
||||
|
|
@ -62,7 +62,7 @@ function Line({data}) {
|
|||
data: d.commits_count
|
||||
},
|
||||
{
|
||||
name: '疑修数',
|
||||
name: '任务数',
|
||||
type: 'line',
|
||||
data: d.issues_count
|
||||
},
|
||||
|
|
|
|||
|
|
@ -145,8 +145,8 @@ function SecondEdition({setValue}) {
|
|||
</div>
|
||||
<div className="osRightMain">
|
||||
<p className="osRightTitle">一站式过程管理</p>
|
||||
<p>提供<span>疑修(Issue)、里程碑、通知提醒、标签归档</span>等多样化任务管理工具,支持各类开发任务的发布、指派与跟踪;</p>
|
||||
<p>同时提供<span>在线Wiki文档、组织多粒度管理</span>等功能,为您搭建一站式的项目过程管理环境;</p>
|
||||
<p>提供<span>任务、里程碑、通知提醒、标签归档</span>等多样化任务管理工具,支持各类开发任务的发布、指派与跟踪;</p>
|
||||
<p>同时提供<span>在线文档、组织多粒度管理</span>等功能,为您搭建一站式的项目过程管理环境;</p>
|
||||
<p><span>让您的团队协作更高效、过程更透明!</span></p>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ function NpmModal(props){
|
|||
const [disabled, setDisabled] = useState(false);
|
||||
const arr = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
|
||||
const list = [
|
||||
"代码库基本功能", "疑修", "合并请求", "流水线引擎", "维基Wiki", "数据集", "特色专区", "BOT功能", "跨平台同步服务", "代码溯源及扫描服务", "开源软件健康度量服务", "HiAgent", "非常满意,没有需要吐槽的功能"
|
||||
"代码库基本功能", "任务", "合并请求", "流水线引擎", "文档", "数据集", "特色专区", "BOT功能", "跨平台同步服务", "代码溯源及扫描服务", "开源软件健康度量服务", "HiAgent", "非常满意,没有需要吐槽的功能"
|
||||
]
|
||||
|
||||
// 提交意见
|
||||
|
|
|
|||
|
|
@ -284,7 +284,7 @@ const GlobalSearch = ({ location, showNotification, history, mygetHelmetapi }) =
|
|||
}
|
||||
</TabPane> */}
|
||||
|
||||
<TabPane tab={`疑修(${totalType5})`} key="5">
|
||||
<TabPane tab={`任务(${totalType5})`} key="5">
|
||||
<div className="search-content">
|
||||
<p className='mb15'>{`找到${totalType5}条结果`}</p>
|
||||
<ItemList
|
||||
|
|
|
|||
|
|
@ -1062,7 +1062,7 @@ class TPMBanner extends Component {
|
|||
</div> :
|
||||
<div className="task-popup-content">
|
||||
<p className="task-popup-text-center font-16 mt10 mb10">
|
||||
尚未创建疑修的实训,不能申请发布
|
||||
尚未创建任务的实训,不能申请发布
|
||||
</p>
|
||||
</div>
|
||||
}
|
||||
|
|
|
|||
|
|
@ -224,7 +224,7 @@ function SoftBotDEtail(props){
|
|||
<div className="installTil font-18 mt20 mb10">权限信息</div>
|
||||
{detail && <div className="mb10 font-16 greenCol"><i className={`mr8 iconfont ${detail.limit_and_events.juris_diction_code !== 2 ? 'icon-wanchenggouxuan' : 'icon-tishi1 font-16'}`}></i>代码库{detail.limit_and_events.juris_diction_code === 2 ? '无' : detail.limit_and_events.juris_diction_code === 1 ? '读写' : '只读'}权限</div>}
|
||||
{detail && <div className="mb10 font-16 greenCol"><i className={`mr8 iconfont ${detail.limit_and_events.juris_diction_pr !== 2 ? 'icon-wanchenggouxuan' : 'icon-tishi1 font-16'}`}></i>合并请求(PR){detail.limit_and_events.juris_diction_pr === 2 ? '无' : detail.limit_and_events.juris_diction_pr === 1 ? '读写' : '只读'}权限</div>}
|
||||
{detail && <div className="mb20 font-16 greenCol"><i className={`mr8 iconfont ${detail.limit_and_events.juris_diction_issue !== 2 ? 'icon-wanchenggouxuan' : 'icon-tishi1 font-16'}`}></i>疑修(Issue){detail.limit_and_events.juris_diction_issue === 2 ? '无' : detail.limit_and_events.juris_diction_issue === 1 ? '读写' : '只读'}权限</div>}
|
||||
{detail && <div className="mb20 font-16 greenCol"><i className={`mr8 iconfont ${detail.limit_and_events.juris_diction_issue !== 2 ? 'icon-wanchenggouxuan' : 'icon-tishi1 font-16'}`}></i>任务(Issue){detail.limit_and_events.juris_diction_issue === 2 ? '无' : detail.limit_and_events.juris_diction_issue === 1 ? '读写' : '只读'}权限</div>}
|
||||
</div>
|
||||
</Modal>
|
||||
</div>
|
||||
|
|
|
|||
Loading…
Reference in New Issue