学位论文算法-wiki改为文档,issue改为任务

This commit is contained in:
caishi 2025-06-05 16:12:12 +08:00
parent f6a8a2a2aa
commit 2404848cec
38 changed files with 106 additions and 106 deletions

View File

@ -152,7 +152,7 @@ function AboutUs(){
<div className="feat_fun_img"><img src={fun2} /></div>
<div>
<p>一站式过程管理</p>
<div>支持疑修里程碑&nbsp;&nbsp;&nbsp;<br />通知提醒标签归档Wiki文档组织管理&nbsp;&nbsp;&nbsp;</div>
<div>支持任务里程碑&nbsp;&nbsp;&nbsp;<br />通知提醒标签归档Wiki文档组织管理&nbsp;&nbsp;&nbsp;</div>
</div>
</div>
</td>

View File

@ -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">

View File

@ -66,10 +66,10 @@ function Radar({owner,projectsId}) {
<div>
从以下五个维度生成当前项目画像<br/>
社区影响力从项目点赞关注fork角度生成评分<br/>
项目成熟度从项目疑修合并请求提交总数量生成评分<br/>
项目健康度从项目疑修合并请求许可证完成度生成评分<br/>
项目成熟度从项目任务合并请求提交总数量生成评分<br/>
项目健康度从项目任务合并请求许可证完成度生成评分<br/>
团队影响度从项目团队稳定性新人增长率生成评分<br/>
开发活跃度从代码提交疑修及合并请求等开发活动频率生成评分
开发活跃度从代码提交任务及合并请求等开发活动频率生成评分
</div>
);

View File

@ -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>

View File

@ -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}/>
)}

View File

@ -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 ?

View File

@ -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>

View File

@ -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>
{/* 意见反馈初始化内容 */}

View File

@ -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>

View File

@ -549,7 +549,7 @@ function CoderDepot(props){
}*/}
{
issuesFlag &&
<CheckProfile {...props} sureFunc={createIssue} checklogin>+ 疑修</CheckProfile>
<CheckProfile {...props} sureFunc={createIssue} checklogin>+ 任务</CheckProfile>
}
</div>

View File

@ -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) => {

View File

@ -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>
}

View File

@ -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"

View File

@ -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>
)}

View File

@ -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}`;
}
}

View File

@ -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>
}
{

View File

@ -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>

View File

@ -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)}

View File

@ -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()}}>
// +&nbsp;创建疑修
// +&nbsp;创建任务
// </CheckProfile>
<a className="topWrapper_btn ml10" onClick={this.createIssue}>+&nbsp;创建疑修</a>
<a className="topWrapper_btn ml10" onClick={this.createIssue}>+&nbsp;创建任务</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 }}

View File

@ -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}/>)}

View File

@ -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>)}

View File

@ -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>
)}

View File

@ -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>
)}

View File

@ -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> }

View File

@ -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) => {

View File

@ -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>

View File

@ -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>)}

View File

@ -41,7 +41,7 @@ export default Form.create()((props) => {
// wikiwiki
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")}

View File

@ -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>

View File

@ -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

View File

@ -14,14 +14,14 @@ export default (props) => {
<span className="wiki-title">
{project && project.name}
</span>
&nbsp;Wiki</p>
<p className="welcome-content">Wiki主要是您项目的产品设计文档描述注释等等</p>
&nbsp;文档</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>
)

View File

@ -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>
)}

View File

@ -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
},

View File

@ -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>

View File

@ -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", "非常满意,没有需要吐槽的功能"
]
//

View File

@ -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

View File

@ -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>
}

View File

@ -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>