Merge pull request '代码库一级页面样式修改' (#59) from caishi/forgeplus-react:feature_repo_upgrade into feature_repo_upgrade
This commit is contained in:
commit
5f90b85c1d
|
@ -1,3 +1,4 @@
|
|||
@charset "utf-8";
|
||||
/* 头部 */
|
||||
.header {
|
||||
width: 100%;
|
||||
|
@ -1271,7 +1272,7 @@ html body {
|
|||
font-size: 14px;
|
||||
line-height: 2.0;
|
||||
background: #fafafa;
|
||||
font-family: "微软雅黑", "宋体";
|
||||
font-family: "Microsoft YaHei", "SimSun";
|
||||
color: #05101a;
|
||||
height: 100%;
|
||||
position: relative;
|
||||
|
@ -1364,10 +1365,6 @@ a:visited {
|
|||
color: #05101a;
|
||||
}
|
||||
|
||||
a:hover {
|
||||
color: #2A61FF!important;
|
||||
}
|
||||
|
||||
ol,
|
||||
ul,
|
||||
li {
|
||||
|
@ -2440,6 +2437,10 @@ a.hoverLine:hover{
|
|||
color: #333333 !important;
|
||||
}
|
||||
|
||||
a:hover{
|
||||
color: #466AFF !important;
|
||||
}
|
||||
|
||||
.color-grey-98 {
|
||||
color: #989898 !important;
|
||||
}
|
||||
|
@ -2459,7 +2460,7 @@ a.hoverLine:hover{
|
|||
.color-grey-B3 {
|
||||
color: #B3B3B3 !important;
|
||||
}
|
||||
|
||||
`
|
||||
.color-grey-B4 {
|
||||
color: #B4B4B4 !important;
|
||||
}
|
||||
|
@ -2481,7 +2482,7 @@ a.color-grey-3:hover,a.color-ooo:hover {
|
|||
color: #2A61FF !important;
|
||||
}
|
||||
.color-blue-file {
|
||||
color: #0054CC!important;
|
||||
color: #4598FA!important;
|
||||
}
|
||||
/* 绿色 */
|
||||
/*主*/
|
||||
|
|
24
src/App.js
24
src/App.js
|
@ -19,7 +19,7 @@ import moment from 'moment'
|
|||
import { MuiThemeProvider, createMuiTheme } from 'material-ui/styles';
|
||||
import SiderBar from './forge/Component/SiderBar'
|
||||
|
||||
import { SnackbarHOC } from 'educoder'
|
||||
import { SnackbarHOC } from 'educoder';
|
||||
import { initAxiosInterceptors } from './AppConfig'
|
||||
import { Provider } from 'react-redux';
|
||||
import configureStore from './redux/stores/configureStore';
|
||||
|
@ -39,6 +39,11 @@ const Projects = Loadable({
|
|||
loader: () => import('./forge/Index'),
|
||||
loading: Loading,
|
||||
})
|
||||
// forge项目详情
|
||||
const ProjectDetail = Loadable({
|
||||
loader: () => import("./forge/Main/DetailAdaptor"),
|
||||
loading: Loading,
|
||||
});
|
||||
//forge安全设置
|
||||
const Security = Loadable({
|
||||
loader: () => import('./forge/SecuritySetting/Index'),
|
||||
|
@ -92,8 +97,13 @@ const ProjectIndex = Loadable({
|
|||
loading: Loading,
|
||||
});
|
||||
|
||||
const CreateMerge = Loadable({
|
||||
loader: () => import('./forge/Merge/NewMerge'),
|
||||
loading: Loading,
|
||||
})
|
||||
|
||||
// 此处仅维护前端可能的一级路由,不用进行项目或者组织判断的字段。
|
||||
const keyWord = ["explore", "settings", "setting", "CCF", "mulan", "wiki", "issues", "setting", "trending", "code", "projects", "pulls", "mine", "login", "register", "email", "export", "nopage", "404", "403", "500", "501", "search"];
|
||||
const keyWord = ["explore", "settings", "setting", "mulan", "wiki", "issues", "setting", "trending", "code", "projects", "pulls", "mine", "login", "register", "email", "export", "nopage", "404", "403", "500", "501", "search", "organize"];
|
||||
|
||||
class App extends Component {
|
||||
constructor(props) {
|
||||
|
@ -268,6 +278,13 @@ class App extends Component {
|
|||
}
|
||||
} />
|
||||
|
||||
{/* 项目PR */}
|
||||
<Route path="/:owner/:projectsId/pulls/new"
|
||||
render={
|
||||
(props) => (<ProjectDetail {...this.props} {...props} {...this.state} />)
|
||||
}
|
||||
></Route>
|
||||
|
||||
{/*项目*/}
|
||||
<Route
|
||||
path={"/:owner/:projectId/devops/:opsId/detail"}
|
||||
|
@ -348,7 +365,7 @@ class App extends Component {
|
|||
return (<OrganizeIndex {...props} {...this.props} {...this.state} />)
|
||||
}
|
||||
}>
|
||||
</Route> : pathType === '404' ? <Route path="/" component={Shixunnopage} /> :
|
||||
</Route> : pathType === '404' ? <Route component={Shixunnopage} />:
|
||||
<Route exact path="/"
|
||||
render={
|
||||
(props) => (
|
||||
|
@ -360,6 +377,7 @@ class App extends Component {
|
|||
}
|
||||
/>
|
||||
// <Route path="/" component={Loading} />
|
||||
// <Route path="/" component={Shixunnopage} />
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -11,9 +11,9 @@ broadcastChannelOnmessage('refreshPage', () => {
|
|||
})
|
||||
|
||||
function locationurl(list) {
|
||||
// if (window.location.port !== "3007") {
|
||||
if (window.location.port !== "3007") {
|
||||
window.location.href = list
|
||||
// }
|
||||
}
|
||||
}
|
||||
// TODO 开发期多个身份切换
|
||||
let debugType = ""
|
||||
|
@ -86,7 +86,7 @@ export function initAxiosInterceptors(props) {
|
|||
|
||||
if (response.data.status === 404) {
|
||||
let responseURL = response.request ? response.request.responseURL:'';
|
||||
if (responseURL.indexOf('/api/users/') === -1 && responseURL.indexOf('/api/organizations/') === -1 && responseURL.indexOf('/api/owners/') === -1) {
|
||||
if (responseURL.indexOf('/api/users/') === -1 && responseURL.indexOf('/api/organizations/') === -1 ) {
|
||||
locationurl('/nopage');
|
||||
}
|
||||
}
|
||||
|
|
|
@ -26,9 +26,9 @@ export default (({ projectsId , branch , owner , changeBranch , branchList , tag
|
|||
<div className="branch-tagBox">
|
||||
{/* {nav === 0 ?"分支":"标签"} */}
|
||||
<span className="color-grey-9 mr3 ml8"><i className="iconfont icon-fenzhi2 font-18"></i></span>
|
||||
<a className="ant-dropdown-link task-hide">
|
||||
<span className="ant-dropdown-link task-hide" style={{fontWeight:"500"}}>
|
||||
{showValue}
|
||||
</a>
|
||||
</span>
|
||||
<i className="showtag iconfont icon-sanjiaoxing-down font-15 color-grey-9 mr5 ml5 mt1" />
|
||||
</div>
|
||||
</Dropdown>
|
||||
|
|
|
@ -1,136 +0,0 @@
|
|||
.branchDropdown {
|
||||
border: 1px solid #eee;
|
||||
border-radius: 4px;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
height: 40px;
|
||||
line-height: 40px;
|
||||
min-width: 220px;
|
||||
}
|
||||
|
||||
.branchDropdown .ant-dropdown-trigger {
|
||||
width: 100%;
|
||||
padding: 0px 15px;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.branchOptions {
|
||||
width: 220px;
|
||||
box-shadow: 0px 0px 3px 1px rgba(134, 134, 134, 0.4);
|
||||
border-radius: 3px;
|
||||
background: #fff;
|
||||
max-height: 300px;
|
||||
}
|
||||
|
||||
.OptionsUl {
|
||||
max-height: 220px;
|
||||
overflow-y: auto;
|
||||
}
|
||||
|
||||
.OptionsUl li {
|
||||
height: 30px;
|
||||
line-height: 30px;
|
||||
cursor: pointer;
|
||||
padding: 0px 20px;
|
||||
margin: 5px 0px;
|
||||
}
|
||||
|
||||
.OptionsUl li:hover {
|
||||
background-color: #F0F0F0;
|
||||
}
|
||||
|
||||
.OptionsUl li a {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.OptionsInput {
|
||||
height: 32px;
|
||||
padding-left: 4px;
|
||||
line-height: 32px;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.branch-tagBox {
|
||||
border: 1px solid #D0D0D0;
|
||||
border-radius: 3px;
|
||||
height: 32px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
cursor: pointer;
|
||||
min-width: 104px;
|
||||
}
|
||||
|
||||
.branch-tagBox:hover {
|
||||
background-color: #F3F4F6;
|
||||
}
|
||||
|
||||
.branch-tagBox-list {
|
||||
background: #FFFFFF;
|
||||
box-shadow: 0px 4px 8px 2px rgba(212, 212, 212, 0.5);
|
||||
border-radius: 4px;
|
||||
}
|
||||
.branch-tagBox-list .ant-popover-arrow {
|
||||
display: none;
|
||||
}
|
||||
.branch-tagBox-list.ant-popover.ant-popover-placement-bottom {
|
||||
padding-top: 0px;
|
||||
}
|
||||
.branch-tagBox-list .branch-tagBox .ant-dropdown-link {
|
||||
display: block;
|
||||
flex: 1;
|
||||
max-width: 105px;
|
||||
}
|
||||
.branch-tagBox-list .ant-popover-inner-content {
|
||||
padding: 0px;
|
||||
}
|
||||
|
||||
.overlayBranch {
|
||||
width: 325px;
|
||||
}
|
||||
.overlayBranch .navUl {
|
||||
margin-top: 8px;
|
||||
height: 30px;
|
||||
line-height: 30px;
|
||||
}
|
||||
.overlayBranch .navUl li {
|
||||
height: 30px;
|
||||
line-height: 30px;
|
||||
padding: 0px 5px;
|
||||
margin-left: 20px !important;
|
||||
}
|
||||
|
||||
.listTips {
|
||||
padding: 20px 0px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.urlMenu {
|
||||
line-height: 30px;
|
||||
margin-bottom: 10px;
|
||||
padding: 15px 20px 0px 20px;
|
||||
border-bottom: none;
|
||||
}
|
||||
.urlMenu li.ant-menu-item {
|
||||
height: 30px;
|
||||
line-height: 30px;
|
||||
padding: 0px 5px;
|
||||
margin-right: 20px !important;
|
||||
}
|
||||
.urlMenu li.ant-menu-item.ant-menu-item-selected, .urlMenu li.ant-menu-item.ant-menu-item-active {
|
||||
color: #333;
|
||||
}
|
||||
.urlMenu li.ant-menu-item.ant-menu-item-selected {
|
||||
border-color: #1890ff !important;
|
||||
}
|
||||
.urlMenu li.ant-menu-item.ant-menu-item-active {
|
||||
border-color: transparent;
|
||||
}
|
||||
|
||||
.copytool {
|
||||
margin: 0px 10px;
|
||||
}
|
||||
|
||||
/*# sourceMappingURL=branch.css.map */
|
|
@ -1 +0,0 @@
|
|||
{"version":3,"sourceRoot":"","sources":["branch.scss"],"names":[],"mappings":"AAAA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;;;AAEF;EACE;EACA;EACA;EACA;EACA;;;AAEF;EACE;EACA;;;AAEF;EACE;EACA;EACA;EACA;EACA;;;AAEF;EACG;;;AAEH;EACE;;;AAEF;EACE;EACA;EACA;EACA;;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;AAEF;EACE;;;AAEF;EACE;EACA;EACA;;AACA;EACE;;AAEF;EACE;;AAEF;EACE;EACA;EACA;;AAEF;EACE;;;AAGJ;EACE;;AACA;EACE;EACA;EACA;;AACA;EACE;EACA;EACA;EACA;;;AAIN;EACE;EACA;;;AAGF;EACE;EACA;EACA;EACA;;AACA;EACE;EACA;EACA;EACA;;AACA;EACE;;AAEF;EACE;;AAEF;EACE;;;AAIN;EACE","file":"branch.css"}
|
|
@ -162,20 +162,29 @@ li.ant-menu-item{
|
|||
margin:0px 20px!important;
|
||||
}
|
||||
}
|
||||
|
||||
.hoverA{
|
||||
display:flex;
|
||||
align-items: center;
|
||||
max-width: 78px;
|
||||
&:hover a{
|
||||
color:#2A61FF !important ;
|
||||
}
|
||||
}
|
||||
.menuPanels{
|
||||
width: 295px;
|
||||
.leftline{
|
||||
position: relative;
|
||||
color: #666;
|
||||
height: 16px;
|
||||
margin-left: 14px;
|
||||
font-size: 12px;
|
||||
&::before{
|
||||
position: absolute;
|
||||
left: -10px;
|
||||
left: -7px;
|
||||
top:3px;
|
||||
height: 12px;
|
||||
width: 1px;
|
||||
background-color: #666666;
|
||||
background-color: #999;
|
||||
content: "";
|
||||
}
|
||||
}
|
||||
|
@ -203,9 +212,15 @@ li.ant-menu-item{
|
|||
background: #F3F4F6;
|
||||
}
|
||||
}
|
||||
.ant-btn{
|
||||
width: 102px;
|
||||
height: 32px;
|
||||
line-height: 30px;
|
||||
}
|
||||
.ant-btn-primary{
|
||||
color: #fff;
|
||||
background-color: #2A61FF;
|
||||
background-color: #466AFF;
|
||||
border-color: #466AFF;
|
||||
}
|
||||
.focusPanelHeadInfo{
|
||||
padding:14px 16px;
|
||||
|
@ -228,8 +243,12 @@ li.ant-menu-item{
|
|||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
.menuMaininfos{
|
||||
padding:10px 16px 14px;
|
||||
border-bottom: 1px solid #eee;
|
||||
}
|
||||
.menuinfos{
|
||||
padding:10px 20px;
|
||||
padding:10px 20px 16px;
|
||||
&>a{
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
|
|
|
@ -46,32 +46,47 @@ function Contributors({contributors,owner,projectsId,currentLogin}){
|
|||
}
|
||||
}
|
||||
|
||||
function renderOrganize(list) {
|
||||
let str = "";
|
||||
list.map(i=>{
|
||||
str = str+i.name + "、";
|
||||
})
|
||||
return str && str.substr(0,str.length - 1);
|
||||
}
|
||||
|
||||
function setMenusFunc(data){
|
||||
if(data){
|
||||
let ele = (
|
||||
<Spin spinning={isSpin}>
|
||||
<FlexAJ>
|
||||
<FlexAJ className="menuMaininfos">
|
||||
<AlignCenter>
|
||||
<Link to={`/${data.login}`}><img src={getImageUrl(`/${data.image_url}`)} alt="" className="radius" width="38px" height="38px"/></Link>
|
||||
<Link to={`/${data.login}`} className="ml10">{data.name}</Link>
|
||||
|
||||
<div className="ml10">
|
||||
<Link to={`/${data.login}`}>{data.name}</Link>
|
||||
{ data.location && <span className="leftline">{data.location}</span> }
|
||||
{
|
||||
data.organizations && data.organizations.length>0&&
|
||||
<p className="task-hide" style={{maxWidth:"215px"}}>
|
||||
所属组织:{renderOrganize(data.organizations)}
|
||||
</p>
|
||||
}
|
||||
</div>
|
||||
</AlignCenter>
|
||||
{
|
||||
data.is_watch ? <a className="color-grey-9" onClick={()=>FocusFunc(false,data.login)}>取消关注</a>:<a className="color-blue" onClick={()=>FocusFunc(true,data.login)}>关注</a>
|
||||
}
|
||||
</FlexAJ>
|
||||
<AlignCenter className="menuinfos">
|
||||
<a href={data.projects_url}>
|
||||
<Link to={`/${data.login}/projects`}>
|
||||
<span>{data.projects_count}</span>
|
||||
<span>项目数</span>
|
||||
</a>
|
||||
<a href={data.followers_url}>
|
||||
</Link>
|
||||
<Link to={`/${data.login}/followers`}>
|
||||
<span>{data.followers_count}</span>
|
||||
<span>粉丝数</span>
|
||||
</a>
|
||||
<a href={data.following_url}>
|
||||
</Link>
|
||||
<Link to={`/${data.login}/following`}>
|
||||
<span>{data.following_count}</span>
|
||||
<span>关注数</span>
|
||||
</a>
|
||||
</Link>
|
||||
</AlignCenter>
|
||||
<div className={"pb20"} style={{display:"flex",justifyContent:'center'}}>
|
||||
{
|
||||
|
@ -134,10 +149,10 @@ function Contributors({contributors,owner,projectsId,currentLogin}){
|
|||
|
||||
return(
|
||||
<div className="halfs">
|
||||
<FlexAJ>
|
||||
<AlignCenter><span className="font-16 color-grey-6">贡献者</span>{ contributors && contributors.total_count > 0 && <span className="infoCount">{contributors.total_count}</span>}</AlignCenter>
|
||||
<Link className="font-12 color-grey-9" to={`/${owner}/${projectsId}/contribute`}>全部</Link>
|
||||
</FlexAJ>
|
||||
<Link to={`/${owner}/${projectsId}/contribute`} className="font-16 color-ooo hoverA">
|
||||
<span>贡献者</span>
|
||||
{ contributors && contributors.total_count > 0 && <span className="infoCount">{contributors.total_count}</span>}
|
||||
</Link>
|
||||
<div className="attrPerson" onMouseLeave={()=>setVisibleFunc(false)}>
|
||||
{
|
||||
total > 0 ?
|
||||
|
|
|
@ -26,6 +26,7 @@ function CopyTool({ beforeText, afterText, className , inputId , timeOut }) {
|
|||
if (document.execCommand('copy')) {
|
||||
document.execCommand('copy');
|
||||
}
|
||||
document.getSelection().removeAllRanges();
|
||||
|
||||
setTitle(afterText);
|
||||
if(timeOut){
|
||||
|
|
|
@ -1,9 +0,0 @@
|
|||
.ant-modal-mask {
|
||||
z-index: 1001;
|
||||
}
|
||||
|
||||
.ant-modal-wrap {
|
||||
z-index: 1002;
|
||||
}
|
||||
|
||||
/*# sourceMappingURL=EAccount.css.map */
|
|
@ -1 +0,0 @@
|
|||
{"version":3,"sourceRoot":"","sources":["EAccount.scss"],"names":[],"mappings":"AAAA;EACE;;;AAEF;EACE","file":"EAccount.css"}
|
|
@ -1,19 +1,15 @@
|
|||
import React from 'react';
|
||||
import { AlignCenter , AlignTop , FlexAJ } from '../Component/layout';
|
||||
import { AlignTop } from '../Component/layout';
|
||||
import { Link } from 'react-router-dom';
|
||||
|
||||
function Releases({owner,projectsId,releaseVersions , baseOperate , projectType}){
|
||||
|
||||
return(
|
||||
<div>
|
||||
<FlexAJ>
|
||||
<AlignCenter><Link to={`/${owner}/${projectsId}/releases`} className="font-16 color-ooo">发行版</Link>
|
||||
{ releaseVersions && releaseVersions.total_count > 0 && <span className="infoCount">{releaseVersions.total_count}</span>}
|
||||
</AlignCenter>
|
||||
{/* {
|
||||
baseOperate && projectType !==2 && <Link className="font-12 color-blue" to={`/projects/${owner}/${projectsId}/releases/new`}>新建</Link>
|
||||
} */}
|
||||
</FlexAJ>
|
||||
<Link to={`/${owner}/${projectsId}/releases`} className="font-16 color-ooo hoverA">
|
||||
<span>发行版</span>
|
||||
{ releaseVersions && releaseVersions.total_count > 0 && <span className="infoCount">{releaseVersions.total_count}</span>}
|
||||
</Link>
|
||||
{
|
||||
releaseVersions && releaseVersions.total_count>0 ?
|
||||
releaseVersions.list.map((item,key)=>{
|
||||
|
|
|
@ -3,6 +3,7 @@ import { WhiteBack , Box , LongWidth , ShortWidth , Gap , AlignCenter , FlexAJ
|
|||
import { Dropdown , Menu , Divider , Spin, Button , Typography } from 'antd';
|
||||
import { getImageUrl } from "educoder";
|
||||
import { Link } from 'react-router-dom';
|
||||
import { truncateCommitId } from "../common/util";
|
||||
import CloneAddress from '../Branch/CloneAddress';
|
||||
|
||||
import SelectBranch from '../Branch/Select';
|
||||
|
@ -148,7 +149,6 @@ function CoderDepot(props){
|
|||
setReadme(result.data.readme);
|
||||
setEditReadme(false);
|
||||
setHide(true);
|
||||
console.log("dddd:",result.data.entries);
|
||||
}
|
||||
setTimeout(function(){setIsSpin(false);},500);
|
||||
}).catch(error=>{setIsSpin(false);})
|
||||
|
@ -209,7 +209,7 @@ function CoderDepot(props){
|
|||
let b = branchName || defaultBranch;
|
||||
let checkvalue = turnbar(b);
|
||||
return (
|
||||
<Menu>
|
||||
<Menu className="fileMenu">
|
||||
<Menu.Item>
|
||||
<CheckProfile {...props} sureFunc={()=>urlLink(`/${owner}/${projectsId}/${checkvalue}/uploadfile${treeValue === undefined ? "" : `/${treeValue}`}`)}>上传文件</CheckProfile>
|
||||
</Menu.Item>
|
||||
|
@ -303,6 +303,7 @@ function CoderDepot(props){
|
|||
const { current_user } = props;
|
||||
const baseOperate = projectDetail && projectDetail.permission && projectDetail.permission !=="Reporter";
|
||||
const fileOperate = type === "dir" && projectDetail && projectDetail.type !== 2 && ((projectDetail.permission && projectDetail.permission !=="Reporter") || (current_user && current_user.admin));
|
||||
|
||||
return(
|
||||
<WhiteBack>
|
||||
<UpdateDescModal desc={desc} website={website} lesson_url={lesson_url} visible={openModal} onCancel={()=>setOpenModal(false)} onOk={okUpdate}/>
|
||||
|
@ -351,35 +352,42 @@ function CoderDepot(props){
|
|||
}
|
||||
</div>
|
||||
<AlignCenter className="mr20">
|
||||
<Link to={`/${owner}/${projectsId}/branches`} className="color-grey-9">
|
||||
<i className="iconfont icon-fenzhi2 font-18 color-grey-9 mr3"></i>
|
||||
<span className="color-grey-6 mr3">{projectDetail && projectDetail.branches && projectDetail.branches.total_count}个</span>分支
|
||||
<Link to={`/${owner}/${projectsId}/branches`} className="iconBtn">
|
||||
<i className="iconfont icon-master_icon font-16"></i>
|
||||
<span>分支</span>
|
||||
<span>{projectDetail && projectDetail.branches && projectDetail.branches.total_count}</span>
|
||||
</Link>
|
||||
</AlignCenter>
|
||||
<AlignCenter className="mr20">
|
||||
<Link to={`/${owner}/${projectsId}/tags`} className="color-grey-9">
|
||||
<i className="iconfont icon-biaoqian3 font-16 color-grey-9 mr3"></i>
|
||||
<span className="color-grey-6 mr3">{projectDetail && projectDetail.tags && projectDetail.tags.total_count}个</span>标签
|
||||
<Link to={`/${owner}/${projectsId}/tags`} className="iconBtn">
|
||||
<i className="iconfont icon-biaoqianicon font-16"></i>
|
||||
<span>标签</span>
|
||||
<span>{projectDetail && projectDetail.tags && projectDetail.tags.total_count}</span>
|
||||
</Link>
|
||||
</AlignCenter>
|
||||
</AlignCenter>
|
||||
<AlignCenter className="depotBtn">
|
||||
{
|
||||
baseOperate && ((projectDetail.type !== 2 && pullsFlag) || issuesFlag )&&
|
||||
<div className="mr20 addOptionBtn">
|
||||
<div className="addOptionBtn">
|
||||
{
|
||||
projectDetail.type !== 2 && pullsFlag &&
|
||||
<CheckProfile {...props} sureFunc={()=>urlLink(`/${owner}/${projectsId}/pulls/new`)} >+ 合并请求</CheckProfile>
|
||||
}
|
||||
{
|
||||
issuesFlag &&
|
||||
<CheckProfile {...props} sureFunc={()=>urlLink(`/${owner}/${projectsId}/issues/new`)} >+ 任务</CheckProfile>
|
||||
<CheckProfile {...props} sureFunc={()=>urlLink(`/${owner}/${projectsId}/issues/new`)} >+ 易修</CheckProfile>
|
||||
}
|
||||
</div>
|
||||
}
|
||||
{ fileOperate &&
|
||||
<Dropdown overlay={fileMenu()} className="mr10" trigger={['click']}>
|
||||
<Button type="default">文件 <i className="iconfont icon-sanjiaoxing-down ml3 font-14 color-grey-6 mr-5"></i></Button>
|
||||
<Dropdown
|
||||
overlay={fileMenu()}
|
||||
className="mr10"
|
||||
trigger={['click']}
|
||||
getPopupContainer={document.parentNode}
|
||||
>
|
||||
<a>文件 <i className="iconfont icon-sanjiaoxing-down ml3 font-14 color-grey-6 mr-5"></i></a>
|
||||
</Dropdown>
|
||||
}
|
||||
|
||||
|
@ -395,15 +403,18 @@ function CoderDepot(props){
|
|||
lastCommit &&
|
||||
<div className="listtablehead">
|
||||
<User url={getImageUrl(`/${lastCommitAuthor && lastCommitAuthor.image_url}`)} name={lastCommitAuthor && lastCommitAuthor.name} id={lastCommitAuthor && lastCommitAuthor.id} login={lastCommitAuthor && lastCommitAuthor.login}/>
|
||||
<div className={hideBtn && hide ? "ellipsistxt hidetxt" :"ellipsistxt"}>
|
||||
<pre id="ptxt">{lastCommit && lastCommit.message}</pre>
|
||||
<div onClick={()=>props.history.push(`/${owner}/${projectsId}/commits/${truncateCommitId(lastCommit.sha)}`)} className={hideBtn && hide ? "ellipsistxt hidetxt" :"ellipsistxt"}>
|
||||
<pre id="ptxt">{lastCommit.message}</pre>
|
||||
</div>
|
||||
{ hideBtn && <span className="ellipsis" onClick={()=>changeHide(hide)}><i className="iconfont icon-shenglvehao"></i></span> }
|
||||
|
||||
<span className="ml12 color-grey-9 mt3">{lastCommit && lastCommit.time_from_now}</span>
|
||||
{ commitCount ? <Link to={`/${owner}/${projectsId}/commits/branch/${turnbar(branchName || defaultBranch)}`} className="ml12 color-grey-9">
|
||||
<i className="iconfont icon-tijiao mr3 font-17 color-grey-9"></i>{commitCount}次提交
|
||||
</Link>:"" }
|
||||
<span className="ml20 color-grey-6 font-12 mt3">{lastCommit.time_from_now}</span>
|
||||
{
|
||||
commitCount ?
|
||||
<Link to={`/${owner}/${projectsId}/commits/branch/${turnbar(branchName || defaultBranch)}`} className="ml20 color-grey-3"style={{height:"28px",lineHeight:"28px"}}>
|
||||
<i className="iconfont icon-tijiaoicon mr3 font-16"></i><span style={{fontWeight:"500"}}>{commitCount}次提交</span>
|
||||
</Link>:""
|
||||
}
|
||||
</div>
|
||||
}
|
||||
<ul className="listtablebody">
|
||||
|
@ -458,10 +469,10 @@ function CoderDepot(props){
|
|||
<ShortWidth>
|
||||
<Gap style={{paddingLeft:"30px"}}>
|
||||
<div className="panelmenu">
|
||||
<FlexAJ className="font-18 color-grey-6 mb20" style={{lineHeight:"28px"}}>简介
|
||||
<FlexAJ className="font-18 color-ooo mb20" style={{lineHeight:"28px"}}>关于
|
||||
{
|
||||
projectDetail.permission && (projectDetail.permission==="Admin" || projectDetail.permission==="Owner" || projectDetail.permission==="Manager") &&
|
||||
<i onClick={()=>setOpenModal(true)} className="iconfont icon-anquanshezhi color-grey-9 font-15"></i>
|
||||
<i onClick={()=>setOpenModal(true)} className="iconfont icon-a-shezhi color-grey-9 font-15"></i>
|
||||
}
|
||||
</FlexAJ>
|
||||
{desc && <p className="font-14 color-grey-3 mb15 task-hide-2" style={{lineHeight:"24px",WebkitLineClamp:"4",textAlign:"justify",wordBreak:"break-all"}}>{desc}</p>}
|
||||
|
@ -482,9 +493,9 @@ function CoderDepot(props){
|
|||
</div>
|
||||
{
|
||||
projectDetail && projectDetail.license_name &&
|
||||
<div>
|
||||
<i className="iconfont icon-xieyiicon font-16 mr10 color-grey-6"></i>
|
||||
<span className="color-grey-6">{projectDetail.license_name}</span>
|
||||
<div className="pinfos">
|
||||
<i className="iconfont icon-xieyiicon font-16 mr10"></i>
|
||||
<Link to={`/${owner}/${projectsId}/tree/${branchName || defaultBranch}/LICENSE`} className="color-grey-6">{projectDetail.license_name}</Link>
|
||||
</div>
|
||||
}
|
||||
</div>
|
||||
|
@ -520,11 +531,11 @@ function CoderDepot(props){
|
|||
}
|
||||
{/* 贡献者 */}
|
||||
{
|
||||
projectDetail && projectDetail.contributors && projectDetail.contributors.length >0 &&
|
||||
<Contributors contributors={projectDetail && projectDetail.contributors} owner={owner} projectsId={projectsId} />
|
||||
projectDetail && projectDetail.contributors && projectDetail.contributors.total_count >0 &&
|
||||
<Contributors contributors={projectDetail.contributors} owner={owner} projectsId={projectsId} />
|
||||
}
|
||||
{/* 语言 */}
|
||||
{ projectDetail && projectDetail.languages && projectDetail.languages.length >0 &&
|
||||
{ projectDetail && projectDetail.languages &&
|
||||
<React.Fragment>
|
||||
<Divider />
|
||||
<LanguagePower languages={projectDetail.languages}/>
|
||||
|
|
|
@ -4,8 +4,8 @@ import { truncateCommitId } from '../common/util';
|
|||
|
||||
const typeIco = {
|
||||
"submodule":"icon-file-submodule font-17",
|
||||
"file":'icon-wenjian5 font-15',
|
||||
"dir":"icon-wenjianjia3 font-15"
|
||||
"file":'icon-wenjian6 font-15 color-blue-file',
|
||||
"dir":"icon-wenjianjia4 font-15 color-blue_4C"
|
||||
}
|
||||
|
||||
function CoderDepotCatalogue({item , goToSubRoot , owner , projectsId }){
|
||||
|
@ -13,7 +13,7 @@ function CoderDepotCatalogue({item , goToSubRoot , owner , projectsId }){
|
|||
<li>
|
||||
<span>
|
||||
<a onClick={()=>goToSubRoot(item.path,item.type,item.name)} className={item.type === "submodule" && "submoduleStyle"}>
|
||||
<i className={`iconfont ${typeIco[`${item.type}`]} color-blue-file mr8`}></i>{item.name}
|
||||
<i className={`iconfont ${typeIco[`${item.type}`]} mr8`}></i>{item.name}
|
||||
</a>
|
||||
</span>
|
||||
<span title="init project">
|
||||
|
@ -21,7 +21,7 @@ function CoderDepotCatalogue({item , goToSubRoot , owner , projectsId }){
|
|||
{item.commit && item.commit.message}
|
||||
</Link>
|
||||
</span>
|
||||
<span>{item.commit && item.commit.time_from_now}</span>
|
||||
<span title={item.commit && item.commit.created_at}>{item.commit && item.commit.time_from_now}</span>
|
||||
</li>
|
||||
)
|
||||
}
|
||||
|
|
|
@ -50,9 +50,9 @@ function CoderDepotReadme({ operate , history , readme , ChangeFile }){
|
|||
<span>目录</span>
|
||||
</span>
|
||||
</Dropdown>
|
||||
<a href="#readme ">
|
||||
<span className="commonBox-title-read">README.md</span>
|
||||
</a>
|
||||
|
||||
<span className="commonBox-title-read"><a href="#readme ">README.md</a></span>
|
||||
|
||||
</AlignCenter>
|
||||
{
|
||||
operate ?
|
||||
|
|
|
@ -1,12 +1,14 @@
|
|||
import React, { Component } from 'react';
|
||||
import { Spin, Tooltip, Button } from 'antd';
|
||||
import { Spin, Tooltip } from 'antd';
|
||||
import { Link, Route, Switch } from 'react-router-dom';
|
||||
import { Content, AlignTop } from '../Component/layout';
|
||||
import DetailBanner from './sub/DetailBanner';
|
||||
import { numFormat } from 'educoder';
|
||||
import '../css/index.scss'
|
||||
import './list.scss';
|
||||
|
||||
import { ImageLayerOfCommentHOC } from "../../modules/page/layers/ImageLayerOfCommentHOC";
|
||||
|
||||
|
||||
import Loadable from 'react-loadable';
|
||||
import Loading from '../../Loading';
|
||||
|
||||
|
@ -472,7 +474,7 @@ class Detail extends Component {
|
|||
<div>
|
||||
<div className="detailHeader-wrapper">
|
||||
<div className="normal">
|
||||
<AlignTop style={{ padding: "20px 0px 10px", justifyContent: "space-between" }}>
|
||||
<AlignTop style={{ padding: "18px 0px 10px", justifyContent: "space-between" }}>
|
||||
<div>
|
||||
<AlignTop>
|
||||
<div className="projectallName">
|
||||
|
@ -505,7 +507,7 @@ class Detail extends Component {
|
|||
((current_user && current_user.admin) || isManager) && (projectDetail && projectDetail.type && projectDetail.type === 2) ?
|
||||
<a className="synchronism ml30" onClick={this.synchronismMirror}>同步镜像</a> : ""
|
||||
}
|
||||
<Button className="detail_tag_btn">
|
||||
<span className="detail_tag_btn">
|
||||
<a className="detail_tag_btn_name" style={{ cursor: platform ? "pointer" : "default" }} onClick={() => this.focusFunc(watched)}>
|
||||
<i className={watched ? "iconfont icon-shixing color-orange font-16 mr3" : "iconfont icon-kongxing color-grey-9 font-16 mr3"}></i>
|
||||
<span>{watched ? '取消关注' : '关注'}</span>
|
||||
|
@ -513,15 +515,15 @@ class Detail extends Component {
|
|||
{
|
||||
watchers_count > 0 ?
|
||||
platform ?
|
||||
<Link className="detail_tag_btn_count" style={{ color: `${watched ? "#2878FF" : "#666"}` }} to={platform ? { pathname: `/${owner}/${projectsId}/following`, state } : ""}>
|
||||
<Link className="detail_tag_btn_count" style={{ color: `#666` }} to={platform ? { pathname: `/${owner}/${projectsId}/following`, state } : ""}>
|
||||
{watchers_count}
|
||||
</Link>
|
||||
:
|
||||
<span className="detail_tag_btn_count">{watchers_count}</span>
|
||||
: ""
|
||||
}
|
||||
</Button>
|
||||
<Button className="detail_tag_btn">
|
||||
</span>
|
||||
<span className="detail_tag_btn">
|
||||
<a className="detail_tag_btn_name" style={{ cursor: platform ? "pointer" : "default" }} onClick={() => this.pariseFunc(praised)}>
|
||||
<i className={praised ? "iconfont icon-weibiaoti105 color-orange font-14 mr3" : "iconfont icon-guanzhu color-grey-9 font-14 mr3"}></i>
|
||||
<span>{praised ? '取消点赞' : '点赞'}</span>
|
||||
|
@ -529,17 +531,17 @@ class Detail extends Component {
|
|||
{
|
||||
praises_count > 0 ?
|
||||
platform ?
|
||||
<Link className="detail_tag_btn_count" style={{ color: `${praised ? "#2878FF" : "#666"}` }} to={{ pathname: `/${owner}/${projectsId}/stargazers`, state }}>
|
||||
<Link className="detail_tag_btn_count" style={{ color: `#666` }} to={{ pathname: `/${owner}/${projectsId}/stargazers`, state }}>
|
||||
{praises_count}
|
||||
</Link> :
|
||||
<span className="detail_tag_btn_count">{praises_count}</span>
|
||||
: ""
|
||||
}
|
||||
</Button>
|
||||
<Button className="detail_tag_btn" loading={forkSpin}>
|
||||
</span>
|
||||
<span className="detail_tag_btn" loading={forkSpin}>
|
||||
<Tooltip title="复刻是fork的中文名,即复制代码仓库" placement="bottom">
|
||||
<a className="detail_tag_btn_name" style={{ cursor: platform ? "pointer" : "default" }} onClick={this.forkFunc}>
|
||||
<i className="iconfont icon-fork color-grey-9 mr3"></i>复刻
|
||||
<i className="iconfont icon-fork color-grey-9 mr3 font-16"></i><span>复刻</span>
|
||||
</a>
|
||||
</Tooltip>
|
||||
{
|
||||
|
@ -552,7 +554,7 @@ class Detail extends Component {
|
|||
<span className="detail_tag_btn_count">{forked_count}</span>
|
||||
: ""
|
||||
}
|
||||
</Button>
|
||||
</span>
|
||||
</span>
|
||||
}
|
||||
</div>
|
||||
|
@ -781,4 +783,7 @@ class Detail extends Component {
|
|||
}
|
||||
}
|
||||
|
||||
export default Detail;
|
||||
export default ImageLayerOfCommentHOC({
|
||||
imgSelector: ".imageLayerParent img, .imageLayerParent .imageTarget",
|
||||
parentSelector: ".newContainer",
|
||||
})(Detail);
|
||||
|
|
|
@ -0,0 +1,28 @@
|
|||
import React from 'react';
|
||||
import { Route, Switch } from "react-router-dom";
|
||||
import { withRouter } from "react-router";
|
||||
import Loadable from "react-loadable";
|
||||
import Loading from "../../Loading";
|
||||
import { SnackbarHOC } from "educoder";
|
||||
import { CNotificationHOC } from "../../modules/courses/common/CNotificationHOC";
|
||||
import { TPMIndexHOC } from "../../modules/tpm/TPMIndexHOC";
|
||||
|
||||
// forge项目详情
|
||||
const ProjectDetail = Loadable({
|
||||
loader: () => import("../Main/Detail"),
|
||||
loading: Loading,
|
||||
});
|
||||
export default withRouter(
|
||||
(CNotificationHOC()(SnackbarHOC()(TPMIndexHOC((props) => {
|
||||
return (
|
||||
<Switch>
|
||||
<Route
|
||||
path="/:owner/:projectsId"
|
||||
render={(p) => (
|
||||
<ProjectDetail {...props} {...p} />
|
||||
)}
|
||||
></Route>
|
||||
</Switch>
|
||||
)
|
||||
}))))
|
||||
)
|
|
@ -1,375 +0,0 @@
|
|||
.recommandOri.slick-slider {
|
||||
width: 1300px;
|
||||
margin: 20px auto 40px;
|
||||
}
|
||||
.recommandOri.slick-slider .slick-track {
|
||||
margin-left: 0px;
|
||||
}
|
||||
.recommandOri.slick-slider .slick-slide li > a {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
/* recommandProjects */
|
||||
.recommandProjects.slick-slider {
|
||||
width: 1230px;
|
||||
margin: 20px auto 40px;
|
||||
}
|
||||
.recommandProjects.slick-slider .slick-track {
|
||||
margin-left: 0px;
|
||||
}
|
||||
.recommandProjects.slick-slider .slick-arrow.slick-prev:before, .recommandProjects.slick-slider .slick-arrow.slick-next:before {
|
||||
color: #999;
|
||||
}
|
||||
.recommandProjects.slick-slider .slick-arrow.slick-prev li.slick-active button:before, .recommandProjects.slick-slider .slick-arrow.slick-next li.slick-active button:before {
|
||||
color: #999;
|
||||
}
|
||||
.recommandProjects.slick-slider .slick-dots {
|
||||
bottom: -29px;
|
||||
}
|
||||
.recommandProjects.slick-slider .slick-dots li button:before {
|
||||
color: #909090;
|
||||
}
|
||||
.recommandProjects.slick-slider .slick-slide {
|
||||
padding: 0px 15px;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
.recommandProjects.slick-slider .slick-slide > div {
|
||||
background-color: #fff;
|
||||
border-radius: 10px;
|
||||
width: 100%;
|
||||
cursor: pointer;
|
||||
border: 1px solid #eee;
|
||||
}
|
||||
.recommandProjects.slick-slider .slick-slide > div:hover {
|
||||
box-shadow: 0px 2px 20px 0px rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
.recommandProjects.slick-slider .baseInfo {
|
||||
padding: 18px 15px;
|
||||
display: flex;
|
||||
font-size: 12px;
|
||||
color: #888;
|
||||
}
|
||||
.recommandProjects.slick-slider .baseInfo .look {
|
||||
margin-right: 10px;
|
||||
}
|
||||
.recommandProjects.slick-slider .baseInfo .look i {
|
||||
margin-right: 5px;
|
||||
}
|
||||
.recommandProjects.slick-slider .baseInfo .type {
|
||||
flex: 1;
|
||||
width: 0;
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
text-align: right;
|
||||
}
|
||||
.recommandProjects.slick-slider .mainInfo {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
min-height: 160px;
|
||||
border-bottom: 1px solid #eee;
|
||||
padding: 20px;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
.recommandProjects.slick-slider .mainInfo img {
|
||||
height: 50px;
|
||||
width: 50px;
|
||||
border-radius: 50%;
|
||||
}
|
||||
.recommandProjects.slick-slider .mainInfo .name {
|
||||
font-size: 13px;
|
||||
color: #666;
|
||||
height: 18px;
|
||||
line-height: 18px;
|
||||
margin-top: 12px;
|
||||
}
|
||||
.recommandProjects.slick-slider .mainInfo .school {
|
||||
margin-top: 12px;
|
||||
color: #333;
|
||||
font-size: 16px;
|
||||
height: 22px;
|
||||
line-height: 22px;
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
.Panels {
|
||||
max-width: 1200px;
|
||||
margin: 0 auto;
|
||||
}
|
||||
.Panels .panelmenu {
|
||||
padding-top: 30px;
|
||||
}
|
||||
.Panels .addOptionBtn {
|
||||
height: 32px;
|
||||
line-height: 30px;
|
||||
display: flex;
|
||||
border: 1px solid #d9d9d9;
|
||||
border-radius: 2px;
|
||||
}
|
||||
.Panels .addOptionBtn a {
|
||||
padding: 0px 13px;
|
||||
color: rgba(0, 0, 0, 0.65);
|
||||
cursor: pointer;
|
||||
}
|
||||
.Panels .addOptionBtn > a:first-child {
|
||||
border-right: 1px solid #d9d9d9;
|
||||
}
|
||||
.Panels .addOptionBtn > a:last-child {
|
||||
border-right: none;
|
||||
}
|
||||
.Panels .infoCount {
|
||||
display: inline-block;
|
||||
padding: 0px 5px;
|
||||
height: 16px;
|
||||
line-height: 16px;
|
||||
background-color: #eee;
|
||||
color: #999;
|
||||
border-radius: 12px;
|
||||
margin-left: 10px;
|
||||
font-size: 12px;
|
||||
}
|
||||
.Panels .attrPerson {
|
||||
padding-top: 15px;
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
.Panels .attrPerson a {
|
||||
margin: 10px 10px 0px 0px;
|
||||
}
|
||||
.Panels .attrPerson a img {
|
||||
border-radius: 50%;
|
||||
width: 35px;
|
||||
height: 35px;
|
||||
}
|
||||
.Panels .attrPerson a:nth-child(6) {
|
||||
margin-right: 0px;
|
||||
}
|
||||
.Panels .progress {
|
||||
display: flex;
|
||||
border-radius: 10px;
|
||||
height: 7px;
|
||||
margin-top: 12px;
|
||||
}
|
||||
.Panels .progress span:first-child {
|
||||
border-radius: 10px 0px 0px 10px;
|
||||
}
|
||||
.Panels .progress span:last-child {
|
||||
border-radius: 0px 10px 10px 0px;
|
||||
}
|
||||
.Panels .progresstip {
|
||||
margin-top: 15px;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
.Panels .progresstip i.zero {
|
||||
position: absolute;
|
||||
display: block;
|
||||
border-radius: 50%;
|
||||
height: 8px;
|
||||
width: 8px;
|
||||
left: 0px;
|
||||
top: 10px;
|
||||
}
|
||||
.Panels .progresstip > span {
|
||||
padding-left: 15px;
|
||||
position: relative;
|
||||
min-width: 33.5%;
|
||||
}
|
||||
.Panels .progresstip > span span {
|
||||
color: #666;
|
||||
}
|
||||
.Panels .progresstip > span span:last-child {
|
||||
color: #999;
|
||||
margin-left: 5px;
|
||||
}
|
||||
.Panels .listtable {
|
||||
margin-top: 20px;
|
||||
border: 1px solid #d9d9d9;
|
||||
border-radius: 4px;
|
||||
}
|
||||
.Panels .listtable .listtablehead {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: flex-start;
|
||||
border-bottom: 1px solid #d9d9d9;
|
||||
padding: 7px 20px;
|
||||
border-radius: 4px 4px 0px 0px;
|
||||
background-color: #FAFBFC;
|
||||
}
|
||||
.Panels .listtable .listtablehead .ellipsistxt {
|
||||
margin-top: 6px;
|
||||
margin-left: 13px;
|
||||
line-height: 18px;
|
||||
flex: 1;
|
||||
width: 0;
|
||||
color: #666;
|
||||
}
|
||||
.Panels .listtable .listtablehead .ellipsistxt #ptxt {
|
||||
margin-bottom: 0px;
|
||||
word-break: break-all;
|
||||
overflow: unset;
|
||||
white-space: pre-wrap;
|
||||
/* css3.0 */
|
||||
white-space: -moz-pre-wrap;
|
||||
/* Firefox */
|
||||
white-space: -pre-wrap;
|
||||
/* Opera 4-6 */
|
||||
white-space: -o-pre-wrap;
|
||||
/* Opera 7 */
|
||||
word-wrap: break-word;
|
||||
}
|
||||
.Panels .listtable .listtablehead .ellipsistxt.hidetxt {
|
||||
height: 18px;
|
||||
overflow: hidden;
|
||||
position: relative;
|
||||
padding-right: 8px;
|
||||
}
|
||||
.Panels .listtable .listtablehead .ellipsistxt.hidetxt::after {
|
||||
position: absolute;
|
||||
right: 0px;
|
||||
bottom: 0px;
|
||||
content: "...";
|
||||
}
|
||||
.Panels .listtable .listtablehead .ellipsis {
|
||||
margin-left: 8px;
|
||||
cursor: pointer;
|
||||
border-radius: 2px;
|
||||
background-color: #c1c1c1;
|
||||
padding: 0px 4px;
|
||||
height: 14px;
|
||||
line-height: 14px;
|
||||
margin-top: 9px;
|
||||
}
|
||||
.Panels .listtable .listtablehead .ellipsis i {
|
||||
font-size: 15px !important;
|
||||
color: #fff;
|
||||
height: 14px;
|
||||
line-height: 14px;
|
||||
}
|
||||
.Panels .listtable .listtablebody li.listtablepath a {
|
||||
color: #40a9ff;
|
||||
}
|
||||
.Panels .listtable .listtablebody li.listtablepath p {
|
||||
margin-bottom: 0px !important;
|
||||
}
|
||||
.Panels .listtable .listtablebody > li {
|
||||
height: 42px;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
border-bottom: 1px solid #d9d9d9;
|
||||
padding: 0px 20px 0px 24px;
|
||||
}
|
||||
.Panels .listtable .listtablebody > li > span:first-child {
|
||||
width: 30%;
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
.Panels .listtable .listtablebody > li > span:nth-child(2) {
|
||||
width: 60%;
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
.Panels .listtable .listtablebody > li > span:nth-child(3) {
|
||||
width: 10%;
|
||||
text-align: right;
|
||||
}
|
||||
.Panels .listtable .listtablebody > li:last-child {
|
||||
border-bottom: none;
|
||||
}
|
||||
|
||||
.drawerBtn {
|
||||
position: fixed;
|
||||
left: -13px;
|
||||
border: 1px solid #cfcddf;
|
||||
width: 34px;
|
||||
border-radius: 0px 12px 12px 0px;
|
||||
height: 70px;
|
||||
top: 50%;
|
||||
margin-top: -35px;
|
||||
cursor: pointer;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: flex-end;
|
||||
justify-content: center;
|
||||
}
|
||||
.drawerBtn:hover {
|
||||
box-shadow: 1px 0px 7px rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
.drawerBtn span {
|
||||
writing-mode: vertical-lr;
|
||||
color: #202429;
|
||||
width: 25px;
|
||||
}
|
||||
.drawerBtn i {
|
||||
color: #24292e;
|
||||
height: 18px;
|
||||
line-height: 18px;
|
||||
width: 18px;
|
||||
}
|
||||
|
||||
.downMenu {
|
||||
width: 330px;
|
||||
box-shadow: 0px 0px 9px rgba(134, 134, 134, 0.4);
|
||||
background-color: #fff;
|
||||
}
|
||||
.downMenu .ant-menu-vertical .ant-menu-item:hover {
|
||||
background-color: #e6f7ff;
|
||||
}
|
||||
|
||||
.menuslist {
|
||||
max-height: 200px;
|
||||
overflow-y: auto;
|
||||
padding: 10px 15px;
|
||||
border-radius: 4px;
|
||||
}
|
||||
.menuslist .ant-dropdown-menu-item {
|
||||
border-radius: 8px;
|
||||
text-align: left !important;
|
||||
}
|
||||
.menuslist .ant-dropdown-menu-item a {
|
||||
width: 350px;
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
.menuslist .ant-dropdown-menu-item.active {
|
||||
background-color: #e6f7ff;
|
||||
}
|
||||
|
||||
.catelogue {
|
||||
border: 1px solid lightgray;
|
||||
font-size: 15px;
|
||||
font-weight: normal;
|
||||
border-radius: 5px;
|
||||
margin-right: 10px;
|
||||
padding: 0px 10px;
|
||||
height: 30px;
|
||||
line-height: 30px;
|
||||
color: #666 !important;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
.catelogue span {
|
||||
margin-top: 1px;
|
||||
}
|
||||
|
||||
.submoduleStyle {
|
||||
cursor: default;
|
||||
}
|
||||
.submoduleStyle i {
|
||||
cursor: default;
|
||||
}
|
||||
.submoduleStyle:hover {
|
||||
color: #05101a;
|
||||
}
|
||||
|
||||
/*# sourceMappingURL=Index.css.map */
|
|
@ -1 +0,0 @@
|
|||
{"version":3,"sourceRoot":"","sources":["Index.scss"],"names":[],"mappings":"AAAA;EACE;EACA;;AACA;EACE;;AAGA;EAEE;EACA;EACA;;;AAIN;AACA;EACE;EACA;;AACA;EACE;;AAGA;EACE;;AAEF;EACE;;AAGJ;EACE;;AACA;EACE;;AAGJ;EACE;EACA;;AACA;EACE;EACA;EACA;EACA;EACA;;AACA;EACE;;AAIN;EACE;EACA;EACA;EACA;;AACA;EAIE;;AAHA;EACE;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AACA;EACE;EACA;EACA;;AAEF;EACE;EACA;EACA;EACA;EACA;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAKN;EACE;EACA;;AACA;EACE;;AAEF;EACE;EACA;EACA;EACA;EACA;;AACA;EACE;EACA;EACA;;AAEF;EACE;;AAEF;EACE;;AAGJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEF;EACE;EACA;EACA;;AACA;EACE;;AACA;EACE;EACA;EACA;;AAEF;EACE;;AAIN;EACE;EACA;EACA;EACA;;AAEE;EACE;;AAEF;EACE;;AAIN;EACE;EACA;;AACA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAEF;EACE;EACA;EACA;;AACA;EACE;;AACA;EACE;EACA;;AAKR;EACE;EACA;EACA;;AACA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AACA;EACE;EAWA;EACA;EACA;EACA;EACA;;AAdA;EACE;EACA;EACA;EACA;AAAsB;EACtB;AAA2B;EAC3B;AAAuB;EACvB;AAAyB;EACzB;;AAOF;EACE;EACA;EACA;EACA;;AACA;EACE;EACA;EACA;EACA;;AAIN;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AACA;EACE;EACA;EACA;EACA;;AAMF;EAAE;;AACF;EACE;;AAGJ;EACE;EACA;EACA;EACA;EACA;EACA;;AACA;EACE;EACA;EACA;EACA;;AAEF;EACE;EACA;EACA;EACA;;AAEF;EACE;EACA;;AAGJ;EACE;;;AAKR;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AACA;EACE;;AAEF;EACE;EACA;EACA;;AAEF;EACE;EACA;EACA;EACA;;;AAGJ;EACE;EACA;EACA;;AACA;EACE;;;AAIJ;EACE;EACA;EACA;EACA;;AACA;EACE;EACA;;AACA;EACE;EACA;EACA;EACA;;AAGJ;EACE;;;AAGJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AACA;EACE;;;AAGJ;EACE;;AACA;EACE;;AAEF;EACE","file":"Index.css"}
|
|
@ -256,11 +256,11 @@ class Index extends Component {
|
|||
newItem = ()=>{
|
||||
return(
|
||||
<Menu>
|
||||
<Menu.Item key="created_mirror">
|
||||
<CheckProfile {...this.props} sureFunc={()=>{this.props.history.push('/projects/mirror/new')}}>新建镜像项目</CheckProfile>
|
||||
</Menu.Item>
|
||||
<Menu.Item key="created_deposit">
|
||||
<CheckProfile {...this.props} sureFunc={()=>{this.props.history.push('/projects/deposit/new')}}>新建托管项目</CheckProfile>
|
||||
<CheckProfile {...this.props} sureFunc={()=>{this.props.history.push('/projects/deposit/new')}}>新建项目</CheckProfile>
|
||||
</Menu.Item>
|
||||
<Menu.Item key="created_mirror">
|
||||
<CheckProfile {...this.props} sureFunc={()=>{this.props.history.push('/projects/mirror/new')}}>导入项目</CheckProfile>
|
||||
</Menu.Item>
|
||||
</Menu>
|
||||
)
|
||||
|
|
|
@ -13,6 +13,18 @@
|
|||
}
|
||||
}
|
||||
}
|
||||
.iconBtn{
|
||||
i{
|
||||
color: #666;
|
||||
}
|
||||
span{
|
||||
margin-left: 4px;
|
||||
color: #333!important;
|
||||
}
|
||||
&:hover span,&:hover i{
|
||||
color: #466AFF!important;
|
||||
}
|
||||
}
|
||||
/* recommandProjects */
|
||||
.recommandProjects.slick-slider{
|
||||
width: 1230px;
|
||||
|
@ -130,26 +142,27 @@
|
|||
}
|
||||
.ant-btn-primary{
|
||||
color: #fff;
|
||||
background-color: #2A61FF;
|
||||
background-color: #466AFF;
|
||||
border-color: #466AFF;
|
||||
}
|
||||
}
|
||||
}
|
||||
.addOptionBtn{
|
||||
height: 32px;
|
||||
line-height: 30px;
|
||||
.depotBtn,.addOptionBtn{
|
||||
display: flex;
|
||||
border:1px solid #d9d9d9;
|
||||
border-radius: 2px;
|
||||
a{
|
||||
padding:0px 13px;
|
||||
color: rgba(0, 0, 0, 0.65);
|
||||
cursor: pointer;
|
||||
}
|
||||
& > a:first-child{
|
||||
border-right: 1px solid #d9d9d9;
|
||||
}
|
||||
& > a:last-child{
|
||||
border-right: none;
|
||||
color: #333!important;
|
||||
font-weight: 500!important;
|
||||
border-radius: 5px;
|
||||
width: 83px;
|
||||
height: 32px;
|
||||
line-height: 30px;
|
||||
background: #fff;
|
||||
border: 1px solid #D0D0D0;
|
||||
margin-right: 10px;
|
||||
text-align: center;
|
||||
&:hover,&:active{
|
||||
background: #F3F4F6;
|
||||
}
|
||||
}
|
||||
}
|
||||
.infoCount{
|
||||
|
@ -183,15 +196,15 @@
|
|||
}
|
||||
.progress{
|
||||
display: flex;
|
||||
border-radius: 10px;
|
||||
height: 7px;
|
||||
border-radius: 2px;
|
||||
height: 11px;
|
||||
margin-top: 12px;
|
||||
span{
|
||||
&:first-child{
|
||||
border-radius: 10px 0px 0px 10px;
|
||||
border-radius: 2px 0px 0px 2px;
|
||||
}
|
||||
&:last-child{
|
||||
border-radius: 0px 10px 10px 0px;
|
||||
border-radius: 0px 2px 2px 0px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -228,12 +241,13 @@
|
|||
justify-content: space-between;
|
||||
align-items: flex-start;
|
||||
border-bottom: 1px solid #d9d9d9;
|
||||
padding:13px 20px;
|
||||
padding:12px 20px 11px;
|
||||
border-radius: 4px 4px 0px 0px;
|
||||
border: 1px solid rgba(42, 97, 255, 0.23);
|
||||
background-color: #FAFCFF;
|
||||
.ellipsistxt{
|
||||
margin-top: 6px;
|
||||
cursor: pointer;
|
||||
#ptxt{
|
||||
margin-bottom: 0px;
|
||||
word-break: break-all;
|
||||
|
@ -292,7 +306,7 @@
|
|||
}
|
||||
}
|
||||
& > li{
|
||||
height: 44px;
|
||||
height: 38px;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
|
@ -369,6 +383,14 @@
|
|||
line-height: 50px;
|
||||
}
|
||||
}
|
||||
.fileMenu{
|
||||
width: 83px;
|
||||
li{
|
||||
padding:6px 0px!important;
|
||||
text-align: center;
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
.catelogue{
|
||||
cursor: pointer;
|
||||
|
@ -403,7 +425,7 @@
|
|||
.pinfos{
|
||||
i,a{color: #666;}
|
||||
&:hover i,&:hover a{
|
||||
color: #2A61FF;
|
||||
color: #2A61FF!important;
|
||||
}
|
||||
}
|
||||
.graph{
|
||||
|
|
|
@ -41,22 +41,22 @@ class IndexItem extends Component {
|
|||
{ !item.is_public && <span className="privateTag">私有</span> }
|
||||
{
|
||||
item.forked_from_project_id ?
|
||||
<span className="ml5">
|
||||
<Tooltip title="该项目是一个fork仓库" className="ml5">
|
||||
<i className="iconfont icon-fork font-18 color-orange" />
|
||||
</span>
|
||||
</Tooltip>
|
||||
: ""
|
||||
}
|
||||
{
|
||||
item.type && item.type === 2 ?
|
||||
<Tooltip title="该项目是一个镜像" className="ml5">
|
||||
<Tooltip title="该项目是一个同步镜像仓库" className="ml5">
|
||||
<i className="iconfont icon-banbenku font-18 color-green" />
|
||||
</Tooltip>:""
|
||||
}
|
||||
{
|
||||
item.type && item.type === 1 ?
|
||||
<span className="ml5">
|
||||
<Tooltip title="该项目是一个导入于其他网站的仓库" className="ml5">
|
||||
<i className="iconfont icon-jingxiang font-18 color-green" />
|
||||
</span>:""
|
||||
</Tooltip>:""
|
||||
}
|
||||
</AlignCenter>
|
||||
<span className="p-r-tags">
|
||||
|
|
|
@ -1,911 +0,0 @@
|
|||
@charset "UTF-8";
|
||||
.lineH2 {
|
||||
line-height: 2;
|
||||
}
|
||||
|
||||
.t_project_banner {
|
||||
/* height: 260px;
|
||||
background: url(../Images/banner_list.jpg) no-repeat center; */
|
||||
background-color: #050d34;
|
||||
}
|
||||
|
||||
.ProjectListIndex {
|
||||
width: 1200px;
|
||||
margin: 20px auto;
|
||||
display: flex;
|
||||
align-items: flex-start;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
.list-left {
|
||||
width: 26%;
|
||||
padding-right: 20px;
|
||||
box-sizing: border-box;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
.list-left > div {
|
||||
border: 1px solid #eee;
|
||||
}
|
||||
|
||||
.list-left > div.bgcF {
|
||||
border: none;
|
||||
}
|
||||
|
||||
.list-right {
|
||||
width: 74%;
|
||||
background: #fff;
|
||||
padding: 10px;
|
||||
border: 1px solid #eee;
|
||||
}
|
||||
|
||||
/* 首页列表的新建和排序的下拉列表 */
|
||||
.ant-menu-inline, .ant-menu-vertical, .ant-menu-vertical-left {
|
||||
border-right: none !important;
|
||||
}
|
||||
|
||||
.ant-menu-vertical > .ant-menu-item {
|
||||
margin: 0px !important;
|
||||
height: 35px;
|
||||
line-height: 35px;
|
||||
border-bottom: 1px solid #eee;
|
||||
font-size: 14px !important;
|
||||
}
|
||||
|
||||
.ant-menu-vertical > .ant-menu-item:last-child {
|
||||
border-bottom: none;
|
||||
}
|
||||
|
||||
.list-r-operation {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
flex-wrap: wrap;
|
||||
align-items: center;
|
||||
padding: 25px 30px;
|
||||
border-bottom: 1px solid #E0E0E0;
|
||||
}
|
||||
|
||||
.list-r-Search {
|
||||
width: 400px;
|
||||
}
|
||||
|
||||
.padding0-25 {
|
||||
padding: 0px 25px;
|
||||
}
|
||||
|
||||
.list-r-Search .ant-btn-lg {
|
||||
height: 38px;
|
||||
}
|
||||
|
||||
.list-r-Search .ant-input-group-addon {
|
||||
border: none !important;
|
||||
}
|
||||
|
||||
.list-r-Search .ant-input-search-button {
|
||||
height: 40px !important;
|
||||
}
|
||||
|
||||
.createBtn {
|
||||
border-radius: 4px;
|
||||
margin-left: 20px;
|
||||
display: inline-block;
|
||||
padding: 3px 15px;
|
||||
background-color: #4CACFF;
|
||||
color: #fff !important;
|
||||
}
|
||||
|
||||
/* 列表 */
|
||||
.project-list {
|
||||
padding: 0px 30px;
|
||||
}
|
||||
|
||||
.border-top-grey {
|
||||
border-top: 1px solid #eeeeee;
|
||||
}
|
||||
|
||||
.p-r-Item:last-child {
|
||||
border-bottom: none !important;
|
||||
}
|
||||
|
||||
.p-r-Item {
|
||||
display: flex;
|
||||
border-bottom: 1px solid #eeeeee;
|
||||
padding: 22px 0px;
|
||||
justify-content: flex-start;
|
||||
}
|
||||
|
||||
.boxShandow {
|
||||
box-shadow: 0px 2px 20px 10px rgba(0, 0, 0, 0.03);
|
||||
}
|
||||
|
||||
.p-r-photo {
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
border-radius: 50%;
|
||||
margin-right: 22px;
|
||||
margin-top: 8px;
|
||||
}
|
||||
|
||||
.p-r-Infos {
|
||||
flex: 1;
|
||||
width: 0;
|
||||
}
|
||||
|
||||
.p-r-name {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.p-r-name > p {
|
||||
flex: 1;
|
||||
width: 0;
|
||||
}
|
||||
|
||||
.p-r-btn {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.p-r-btn > span {
|
||||
height: 35px;
|
||||
line-height: 35px;
|
||||
border: 1px solid #f4f4f4;
|
||||
border-radius: 5px;
|
||||
display: block;
|
||||
margin-left: 20px;
|
||||
background-color: #fff;
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.p-r-btn > span > a {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
padding: 0px 12px;
|
||||
background: #ececec;
|
||||
}
|
||||
|
||||
.p-r-btn > span > a:active {
|
||||
background: #f4f4f4;
|
||||
}
|
||||
|
||||
.p-r-btn > span > span {
|
||||
padding: 0px 8px;
|
||||
}
|
||||
|
||||
.p-r-tags {
|
||||
display: flex;
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
.p-r-tags.large > span {
|
||||
height: 30px;
|
||||
line-height: 30px;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.p-r-tags > span {
|
||||
margin-left: 15px;
|
||||
padding: 0px 10px;
|
||||
border-radius: 15px;
|
||||
background: #EBF4FE;
|
||||
color: #333;
|
||||
height: 24px;
|
||||
line-height: 24px;
|
||||
display: block;
|
||||
font-size: 12px;
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.p-r-tags > span.pariseTag {
|
||||
background: #FFF3DC;
|
||||
}
|
||||
|
||||
.p-r-tags.large > span > label {
|
||||
padding: 0px 12px;
|
||||
}
|
||||
|
||||
.p-r-tags > span > label {
|
||||
padding: 0px 8px;
|
||||
}
|
||||
|
||||
.p-r-tags.large > span > span {
|
||||
padding: 0px 6px;
|
||||
}
|
||||
|
||||
.pariseImg {
|
||||
width: 14px;
|
||||
height: 12px;
|
||||
margin-top: 6px;
|
||||
margin-right: 3px;
|
||||
}
|
||||
|
||||
.p-r-tags > span > span {
|
||||
display: block;
|
||||
background: #fff;
|
||||
border-left: #efefef;
|
||||
padding: 0px 4px;
|
||||
border-radius: 0px 4px 4px 0px;
|
||||
color: #999;
|
||||
}
|
||||
|
||||
.p-r-content {
|
||||
margin-top: 10px;
|
||||
color: #666;
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.p-r-detail > span {
|
||||
margin-right: 22px;
|
||||
color: #888;
|
||||
}
|
||||
|
||||
.p-r-detail > span > label {
|
||||
color: #999;
|
||||
}
|
||||
|
||||
.p-r-about {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
flex-wrap: nowrap;
|
||||
margin-top: 8px;
|
||||
color: #666;
|
||||
}
|
||||
|
||||
.spincontent {
|
||||
height: 400px;
|
||||
}
|
||||
|
||||
.spinstyle .ant-spin-text {
|
||||
margin-top: 30px;
|
||||
color: #888;
|
||||
}
|
||||
|
||||
/* -----------详情------------ */
|
||||
.detailHeader-wrapper {
|
||||
background-color: #FBFCFF;
|
||||
border-bottom: 1px solid #e2e2e2;
|
||||
}
|
||||
|
||||
.headerMenu-wrapper {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
cursor: pointer;
|
||||
}
|
||||
.headerMenu-wrapper li {
|
||||
position: relative;
|
||||
text-align: center;
|
||||
padding: 0px;
|
||||
}
|
||||
.headerMenu-wrapper li > a {
|
||||
font-size: 14px;
|
||||
height: 40px;
|
||||
line-height: 28px;
|
||||
padding: 0px 20px;
|
||||
display: block;
|
||||
color: #666;
|
||||
}
|
||||
.headerMenu-wrapper li > a > img {
|
||||
margin-right: 8px;
|
||||
}
|
||||
.headerMenu-wrapper li > a > span.num {
|
||||
line-height: 24px;
|
||||
margin-left: 5px;
|
||||
margin-top: 2px;
|
||||
font-size: 12px;
|
||||
float: right;
|
||||
color: #666 !important;
|
||||
background-color: rgba(153, 153, 153, 0.13);
|
||||
border-radius: 50%;
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
}
|
||||
.headerMenu-wrapper li.active a, .headerMenu-wrapper li.active a i {
|
||||
color: #466AFF !important;
|
||||
}
|
||||
.headerMenu-wrapper li.active::after, .headerMenu-wrapper li:hover::after {
|
||||
position: absolute;
|
||||
bottom: 0px;
|
||||
height: 2px;
|
||||
background-color: rgba(153, 153, 153, 0.2);
|
||||
content: "";
|
||||
left: 0px;
|
||||
width: 100%;
|
||||
}
|
||||
.headerMenu-wrapper li.active::after {
|
||||
background-color: #466AFF;
|
||||
}
|
||||
|
||||
.detail_tag_btn {
|
||||
height: 32px;
|
||||
line-height: 32px;
|
||||
border-radius: 5px;
|
||||
border: 1px solid #D0D0D0;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
margin-left: 10px;
|
||||
padding: 0px;
|
||||
background-color: #FAFBFC;
|
||||
box-shadow: none;
|
||||
}
|
||||
.detail_tag_btn:hover {
|
||||
background-color: #F3F4F6;
|
||||
}
|
||||
.detail_tag_btn .detail_tag_btn_name {
|
||||
padding: 0px 18px;
|
||||
min-width: 82px;
|
||||
text-align: center;
|
||||
}
|
||||
.detail_tag_btn .detail_tag_btn_name:hover > span {
|
||||
color: #333 !important;
|
||||
}
|
||||
.detail_tag_btn .detail_tag_btn_name img {
|
||||
margin-right: 10px;
|
||||
}
|
||||
.detail_tag_btn .detail_tag_btn_count {
|
||||
width: 42px;
|
||||
text-align: center;
|
||||
background: #fff;
|
||||
border-radius: 0px 4px 4px 0px;
|
||||
height: 100%;
|
||||
border-left: 1px solid #D0D0D0;
|
||||
}
|
||||
|
||||
.ant-tooltip {
|
||||
max-width: fit-content !important;
|
||||
}
|
||||
|
||||
.files-md {
|
||||
padding: 20px;
|
||||
}
|
||||
|
||||
/* 详情-代码 */
|
||||
.branch-wrapper {
|
||||
border: 1px solid #eee;
|
||||
border-radius: 4px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
height: 60px;
|
||||
padding: 0px 30px;
|
||||
width: 1200px;
|
||||
margin: 0px auto;
|
||||
background-color: #fff;
|
||||
margin-top: 20px;
|
||||
justify-content: space-between;
|
||||
}
|
||||
|
||||
.branch-wrapper > a > i {
|
||||
color: #5091FF;
|
||||
margin-right: 5px;
|
||||
cursor: default;
|
||||
}
|
||||
|
||||
.branch-wrapper a {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
text-align: center;
|
||||
height: 30px;
|
||||
line-height: 30px;
|
||||
cursor: pointer;
|
||||
font-size: 16px;
|
||||
color: #333333;
|
||||
}
|
||||
|
||||
.branch-wrapper a > span {
|
||||
position: relative;
|
||||
min-height: 20px;
|
||||
display: block;
|
||||
}
|
||||
|
||||
.branch-wrapper a.active > span::after {
|
||||
position: absolute;
|
||||
content: "";
|
||||
bottom: -5px;
|
||||
width: 30px;
|
||||
height: 3px;
|
||||
left: 0px;
|
||||
background-color: #5091FF;
|
||||
}
|
||||
|
||||
.gitAddressClone {
|
||||
margin: 0px 20px 14px 20px !important;
|
||||
display: flex;
|
||||
height: 40px;
|
||||
align-items: center;
|
||||
border-radius: 4px;
|
||||
border: 1px solid #eee;
|
||||
background: #fff;
|
||||
margin-left: 20px;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.gitAddressClone > span {
|
||||
display: flex;
|
||||
line-height: 40px;
|
||||
height: 40px;
|
||||
padding: 0px 12px;
|
||||
cursor: pointer;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.addressTips {
|
||||
position: absolute;
|
||||
font-size: 12px;
|
||||
color: #FF6E21;
|
||||
top: -34px;
|
||||
left: 30px;
|
||||
background-color: #fff;
|
||||
border: 1px solid #FE881D;
|
||||
padding: 0px 5px;
|
||||
height: 28px;
|
||||
line-height: 28px;
|
||||
}
|
||||
|
||||
.addressTips > span {
|
||||
position: relative;
|
||||
display: block;
|
||||
}
|
||||
|
||||
.addressTips > span::before {
|
||||
box-sizing: content-box;
|
||||
width: 0px;
|
||||
height: 0px;
|
||||
position: absolute;
|
||||
top: 25px;
|
||||
left: 50%;
|
||||
margin-left: -4px;
|
||||
padding: 0;
|
||||
border-top: 8px solid #FFFFFF;
|
||||
border-bottom: 8px solid transparent;
|
||||
border-left: 8px solid transparent;
|
||||
border-right: 8px solid transparent;
|
||||
display: block;
|
||||
content: "";
|
||||
z-index: 12;
|
||||
}
|
||||
|
||||
.addressTips > span::after {
|
||||
box-sizing: content-box;
|
||||
width: 0px;
|
||||
height: 0px;
|
||||
position: absolute;
|
||||
top: 26px;
|
||||
left: 50%;
|
||||
margin-left: -4px;
|
||||
padding: 0;
|
||||
border-top: 8px solid #FE881D;
|
||||
border-bottom: 8px solid transparent;
|
||||
border-left: 8px solid transparent;
|
||||
border-right: 8px solid transparent;
|
||||
display: block;
|
||||
content: "";
|
||||
z-index: 11;
|
||||
}
|
||||
|
||||
.gitAddressClone > span.addressType {
|
||||
color: #4CACFF;
|
||||
}
|
||||
|
||||
.gitAddressClone > span:last-child {
|
||||
border-right: none;
|
||||
}
|
||||
|
||||
.gitAddressClone > input {
|
||||
border: none;
|
||||
outline: none;
|
||||
padding: 0px 8px;
|
||||
height: 40px;
|
||||
line-height: 40px;
|
||||
border-radius: 0px;
|
||||
border: 1px solid #eee;
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
.wrap-commit-table .ant-table-small > .ant-table-content > .ant-table-body {
|
||||
margin: 0px;
|
||||
}
|
||||
|
||||
.wrap-commit-table .ant-table-title {
|
||||
background-color: #f1f8ff;
|
||||
padding: 13px 16px !important;
|
||||
}
|
||||
|
||||
.commitKey {
|
||||
cursor: pointer;
|
||||
border: 1px solid #FD7700;
|
||||
background-color: #FFF3DC;
|
||||
color: #FD7700 !important;
|
||||
padding: 0px 12px;
|
||||
height: 20px;
|
||||
line-height: 20px;
|
||||
margin-left: 15px;
|
||||
border-radius: 18px;
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
/* 分支 */
|
||||
.branchTitle {
|
||||
padding: 8px 10px;
|
||||
color: #333;
|
||||
font-size: 16px;
|
||||
border-bottom: 1px solid #d9d9d9;
|
||||
}
|
||||
|
||||
.branchUl li {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
align-items: flex-end;
|
||||
justify-content: space-between;
|
||||
padding: 20px 0px;
|
||||
border-bottom: 1px solid #eee;
|
||||
}
|
||||
|
||||
.branchUl li:last-child {
|
||||
border-bottom: none;
|
||||
}
|
||||
|
||||
.operationBtn {
|
||||
border: 1px solid #f4f4f4;
|
||||
border-radius: 3px;
|
||||
padding: 0px 6px;
|
||||
background-color: #fff;
|
||||
color: #666 !important;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.messages {
|
||||
max-width: 700px;
|
||||
}
|
||||
|
||||
.leftPoint {
|
||||
margin-left: 20px;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.leftPoint::before {
|
||||
position: absolute;
|
||||
left: -10px;
|
||||
top: 8px;
|
||||
border-radius: 50%;
|
||||
width: 4px;
|
||||
height: 4px;
|
||||
background-color: #dadada;
|
||||
content: "";
|
||||
}
|
||||
|
||||
/* 文件目录、文件内容 */
|
||||
.subFileName {
|
||||
position: relative;
|
||||
margin-left: 15px;
|
||||
height: 22px;
|
||||
}
|
||||
|
||||
.subFileName::before {
|
||||
position: absolute;
|
||||
content: "/";
|
||||
left: -10px;
|
||||
top: 0px;
|
||||
color: #999;
|
||||
height: 22px;
|
||||
line-height: 22px;
|
||||
}
|
||||
|
||||
.addFile {
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.addFile a {
|
||||
display: block;
|
||||
background-color: rgba(76, 172, 255, 0.8);
|
||||
color: #fff;
|
||||
cursor: pointer;
|
||||
height: 32px;
|
||||
line-height: 32px;
|
||||
padding: 0px 10px;
|
||||
}
|
||||
|
||||
.addFile a:first-child {
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
.addFile a:last-child {
|
||||
/* border-radius: 0px 4px 4px 0px; */
|
||||
border-left: 1px solid rgba(247, 247, 247, 0.3);
|
||||
}
|
||||
|
||||
.addFile a:active {
|
||||
background-color: #4cacff;
|
||||
}
|
||||
|
||||
@media screen and (max-width: 750px) {
|
||||
.list-r-Search {
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
.list-left, .list-right {
|
||||
width: 100%;
|
||||
padding: 0px;
|
||||
}
|
||||
}
|
||||
@media screen and (max-width: 400px) {
|
||||
.list-r-Search {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.headerMenu-wrapper {
|
||||
flex-direction: column;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.headerMenu-wrapper li {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.gitAddressClone {
|
||||
width: 100%;
|
||||
margin-left: 0px;
|
||||
}
|
||||
|
||||
.gitAddressClone > span {
|
||||
padding: 0px;
|
||||
}
|
||||
|
||||
.messages {
|
||||
max-width: 100%;
|
||||
}
|
||||
}
|
||||
.commonBox {
|
||||
border: 1px solid #ddd;
|
||||
margin-top: 30px;
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
.commonBox .commonBox-title {
|
||||
padding: 0px 20px;
|
||||
box-sizing: border-box;
|
||||
font-size: 16px;
|
||||
background: #FAFBFC;
|
||||
/* F1F8FF */
|
||||
font-weight: bold;
|
||||
height: 45px;
|
||||
line-height: 45px;
|
||||
border-bottom: 1px solid #d9d9d9;
|
||||
border-radius: 4px 4px 0px 0px;
|
||||
}
|
||||
|
||||
.readBox {
|
||||
border: none;
|
||||
}
|
||||
.readBox.commonBox .commonBox-info {
|
||||
border: 1px solid #D0D0D0;
|
||||
border-top: none;
|
||||
border-radius: 0px 0px 4px 4px;
|
||||
padding: 20px 38px;
|
||||
}
|
||||
|
||||
.commonBox .commonBox-title.boxTitle {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
height: 55px;
|
||||
line-height: 55px;
|
||||
background: #FAFCFF;
|
||||
border-radius: 4px 4px 0px 0px;
|
||||
border: 1px solid rgba(42, 97, 255, 0.23);
|
||||
}
|
||||
|
||||
.synchronism {
|
||||
display: block;
|
||||
height: 34px;
|
||||
line-height: 34px;
|
||||
padding: 0px 15px;
|
||||
color: #fff !important;
|
||||
background-color: #28BD6C;
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
.files_info {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.commonBox .commonBox-info {
|
||||
padding: 20px 15px;
|
||||
}
|
||||
|
||||
.commonBox-title-read {
|
||||
vertical-align: middle;
|
||||
color: #000;
|
||||
font-size: 14px;
|
||||
}
|
||||
.commonBox-title-read:hover {
|
||||
color: #466AFF;
|
||||
}
|
||||
|
||||
@media screen and (max-width: 370px) {
|
||||
.p-r-tags, .p-r-btn {
|
||||
opacity: 0;
|
||||
display: none;
|
||||
}
|
||||
|
||||
.p-r-about {
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
.commitKey {
|
||||
margin-right: 0px;
|
||||
}
|
||||
|
||||
.list-r-Search {
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
.null_data_box {
|
||||
width: 100%;
|
||||
border: 1px solid #d4d4d5;
|
||||
border-radius: 3px;
|
||||
}
|
||||
|
||||
.title {
|
||||
font-weight: bold;
|
||||
background: #f4f4f4;
|
||||
padding: 10px 15px;
|
||||
box-sizing: border-box;
|
||||
border-bottom: 1px solid #d4d4d5;
|
||||
}
|
||||
|
||||
.item_title {
|
||||
font-size: 18px;
|
||||
font-weight: bold;
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
|
||||
.item {
|
||||
padding: 15px;
|
||||
border-bottom: 1px solid #dededf;
|
||||
}
|
||||
|
||||
.item:last-child {
|
||||
border-bottom: none;
|
||||
}
|
||||
|
||||
.item_title small {
|
||||
font-weight: 400;
|
||||
margin-left: 10px;
|
||||
}
|
||||
|
||||
.item_title small a {
|
||||
color: #4183c6;
|
||||
}
|
||||
|
||||
.Markdown {
|
||||
background: #f7f7f7;
|
||||
padding: 10px 20px;
|
||||
}
|
||||
|
||||
.item .gitAddressClone input:focus {
|
||||
border: 1px solid #2185d0;
|
||||
}
|
||||
|
||||
.content-file {
|
||||
margin-top: 8px;
|
||||
}
|
||||
|
||||
.content-file .CodeMirror {
|
||||
background-color: #f7f7f7;
|
||||
border: 1px solid #e4e4e4;
|
||||
border-radius: 4px;
|
||||
height: auto;
|
||||
}
|
||||
|
||||
.content-file.edit .CodeMirror {
|
||||
background-color: #fff;
|
||||
}
|
||||
|
||||
.content-file .CodeMirror .CodeMirror-scroll {
|
||||
min-height: 450px;
|
||||
}
|
||||
|
||||
.text-center {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.fork-css {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 50px;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.color-grey-ccc {
|
||||
color: #ccc !important;
|
||||
}
|
||||
|
||||
a.color-grey-ccc:hover {
|
||||
color: #4cacff !important;
|
||||
}
|
||||
|
||||
.pull-right {
|
||||
float: right;
|
||||
}
|
||||
|
||||
.commitList {
|
||||
padding: 0px 30px;
|
||||
min-height: 400px;
|
||||
}
|
||||
|
||||
.commitList > div {
|
||||
border-bottom: 1px solid #EEEEEE;
|
||||
padding: 16px 0px;
|
||||
}
|
||||
|
||||
.commitList > div:last-child {
|
||||
border-bottom: none;
|
||||
}
|
||||
|
||||
/* 标签列表 */
|
||||
.div_table {
|
||||
border: 1px solid #eee;
|
||||
border-radius: 2px;
|
||||
}
|
||||
|
||||
.ul_thead {
|
||||
padding: 0px 30px;
|
||||
box-sizing: border-box;
|
||||
background: #FAFAFA;
|
||||
border-bottom: 1px solid #eee;
|
||||
height: 50px;
|
||||
line-height: 50px;
|
||||
}
|
||||
|
||||
.ul_tbody {
|
||||
padding: 0px 30px;
|
||||
}
|
||||
|
||||
.ul_thead li, .ul_tbody li {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.ul_tbody li {
|
||||
padding: 18px 0px;
|
||||
border-bottom: 1px solid #eee;
|
||||
}
|
||||
|
||||
.ul_tbody li:last-child {
|
||||
border-bottom: none;
|
||||
}
|
||||
|
||||
.ul_thead li > span, .ul_tbody li > span {
|
||||
width: 20%;
|
||||
padding-right: 20px;
|
||||
}
|
||||
|
||||
.ul_thead li > span:nth-child(2), .ul_tbody li > span:nth-child(2) {
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
.ul_tbody_third {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: flex-start;
|
||||
justify-content: left;
|
||||
}
|
||||
|
||||
.ul_tbody_forth {
|
||||
text-align: center;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.depotNum {
|
||||
color: #666 !important;
|
||||
}
|
||||
.depotNum span:last-child {
|
||||
color: #333;
|
||||
}
|
||||
.depotNum:hover span:last-child {
|
||||
color: #2A61FF;
|
||||
}
|
||||
|
||||
/*# sourceMappingURL=list.css.map */
|
|
@ -1 +0,0 @@
|
|||
{"version":3,"sourceRoot":"","sources":["list.scss"],"names":[],"mappings":";AACA;EAAQ;;;AACR;AACE;AAAA;EAEA;;;AAEF;EACE;EACA;EACA;EACA;EACA;;;AAEF;EACE;EACA;EACA;EACA;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;EACA;EACA;EACA;;;AAIF;AACA;EACE;;;AAEF;EACE;EACA;EACA;EACA;EACA;;;AAEF;EACE;;;AAIF;EACE;EACA;EACA;EACA;EACA;EACA;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EAAsC;;;AACtC;EAAwC;;;AACxC;EACE;EACA;EACA;EACA;EACA;EACA;;;AAIF;AACA;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;EACA;EACA;EACA;;;AAEF;EACE;;;AAEF;EACE;EACA;EACA;EACA;EACA;;;AAEF;EACE;EACA;;;AAEF;EACE;EACA;EACA;;;AAEF;EACE;EACA;;;AAEF;EACE;EACA;;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAEF;EACE;EACA;EACA;EACA;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;EACA;;;AAEF;EACE;EACA;EACA;;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;EACA;EACA;EACA;;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;;;AAEF;EACE;EACA;EACA;;;AAEF;EACE;EACA;;;AAEF;EACE;;;AAGF;EACE;EACA;EACA;EACA;EACA;;;AAEF;EACE;;;AAEF;EACE;EACA;;;AAEF;AACA;EACE;EACA;;;AAEF;EACE;EACA;EACA;;AACA;EACE;EACA;EACA;;AACA;EACE;EACA;EACA;EACA;EACA;EACA;;AACA;EACE;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACE;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAEF;EACE;;;AAIN;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AACA;EACE;;AAEF;EACE;EACA;EACA;;AACA;EACE;;AAEF;EACE;;AAGJ;EACE;EACA;EACA;EACA;EACA;EACA;;;AAGJ;EACE;;;AAEF;EACE;;;AAEF;AACA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAEF;EACE;EACA;EACA;;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAEF;EACE;EACA;EACA;;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;AAIF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAEF;EAAkB;EAAmB;;;AACrC;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAEF;EACE;;;AAEF;EACE;EACA;;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAEF;AACA;EACE;EACA;EACA;EACA;;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;;;AAEF;EACE;;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;;;AAEF;EACE;;;AAEF;EACE;EACA;;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;AACA;EACE;EACA;EACA;;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;AAEF;EACE;;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;AAEF;EACE;;;AAEF;AACE;EACA;;;AAEF;EACE;;;AAKF;EACE;IACE;;;EAEF;IACE;IACA;;;AAIJ;EACE;IACE;;;EAEF;IACE;IACA;;;EAEF;IACE;;;EAEF;IACE;IACA;;;EAEF;IACE;;;EAEF;IACE;;;AAGJ;EACE;EACA;EACA;;;AAEF;EACE;EACA;EACA;EACA;AAAoB;EACpB;EACA;EACA;EACA;EACA;;;AAEF;EACE;;AACA;EACE;EACA;EACA;EACA;;;AAGJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;AAEF;EACE;;;AAGA;EACE;;;AAGJ;EACE;EACA;EACA;;AACA;EACE;;;AAIJ;EACE;IACE;IACA;;;EAEF;IACE;;;EAEF;IACE;;;EAEF;IACE;;;AAGJ;EACE;EACA;EACA;;;AAEF;EACE;EACA;EACA;EACA;EACA;;;AAEF;EACE;EACA;EACA;;;AAEF;EACE;EACA;;;AAEF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;;;AAEF;EACE;EACA;;;AAEF;EACA;;;AAEA;EAAc;;;AAEd;EACE;EACA;EACA;EACA;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EAAa;;;AACb;EACE;EACA;EACA;EACA;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EAAY;;;AAEZ;EACE;EACA;;;AAEF;EACE;EACA;;;AAEF;EACE;;;AAIF;AACA;EACE;EACA;;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;;;AAEF;EACE;;;AAEF;EACE;EACA;EACA;;;AAEF;EACE;EACA;;;AAEF;EACE;;;AAEF;EACE;EACA;;;AAEF;EACE;;;AAEF;EACE;EACA;EACA;EACA;;;AAEF;EACE;EACA;EACA;;;AAEF;EACE;;AACA;EACE;;AAEF;EACE","file":"list.css"}
|
|
@ -226,23 +226,21 @@
|
|||
flex-direction: row;
|
||||
cursor: pointer;
|
||||
li{
|
||||
position: relative;
|
||||
text-align: center;
|
||||
padding:0px;
|
||||
margin-right: 40px;
|
||||
display: flex;
|
||||
& > a{
|
||||
position: relative;
|
||||
font-size: 14px;
|
||||
height: 40px;
|
||||
line-height: 28px;
|
||||
padding:0px 20px;
|
||||
height: 36px;
|
||||
line-height: 24px;
|
||||
display: block;
|
||||
color: #666;
|
||||
&> img{
|
||||
margin-right: 8px;
|
||||
}
|
||||
color: #000!important;
|
||||
font-weight: 500;
|
||||
&> span.num{
|
||||
line-height: 24px;
|
||||
margin-left: 5px;
|
||||
margin-top: 2px;
|
||||
font-size: 12px;
|
||||
float: right;
|
||||
color: #666!important;
|
||||
|
@ -252,10 +250,8 @@
|
|||
height: 24px;
|
||||
}
|
||||
}
|
||||
&.active a,&.active a i{
|
||||
color: #2A61FF!important;
|
||||
}
|
||||
&.active::after,&:hover::after{
|
||||
|
||||
&.active a::after,&:hover a::after{
|
||||
position: absolute;
|
||||
bottom:0px;
|
||||
height:2px;
|
||||
|
@ -264,8 +260,8 @@
|
|||
left: 0px;
|
||||
width:100%;
|
||||
}
|
||||
&.active::after{
|
||||
background-color: #2A61FF;
|
||||
&.active a::after{
|
||||
background-color: #466AFF;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -280,18 +276,18 @@
|
|||
padding:0px;
|
||||
background-color:#FAFBFC;
|
||||
box-shadow: none;
|
||||
&:hover{
|
||||
background-color: #F3F4F6;
|
||||
}
|
||||
.detail_tag_btn_name{
|
||||
padding:0px 18px;
|
||||
min-width: 82px;
|
||||
padding:0px 10px;
|
||||
text-align: center;
|
||||
&:hover>span{
|
||||
color: #333!important;
|
||||
height: 30px;
|
||||
line-height: 30px;
|
||||
border-radius:5px 0px 0px 5px;
|
||||
&:hover
|
||||
{
|
||||
background-color: #F3F4F6;
|
||||
}
|
||||
img{
|
||||
margin-right: 10px;
|
||||
span{
|
||||
color: #333!important;
|
||||
}
|
||||
}
|
||||
.detail_tag_btn_count{
|
||||
|
@ -356,7 +352,7 @@
|
|||
|
||||
|
||||
.gitAddressClone{
|
||||
margin:0px 20px 14px 20px!important;
|
||||
margin:14px 20px!important;
|
||||
display: flex;
|
||||
height: 40px;
|
||||
align-items: center;
|
||||
|
@ -574,7 +570,7 @@
|
|||
}
|
||||
.commonBox{
|
||||
border:1px solid #ddd;
|
||||
margin-top: 30px;
|
||||
margin-top: 18px;
|
||||
border-radius: 4px;
|
||||
}
|
||||
.commonBox .commonBox-title{
|
||||
|
@ -600,8 +596,8 @@
|
|||
.commonBox .commonBox-title.boxTitle{
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
height: 65px;
|
||||
line-height: 65px;
|
||||
height: 55px;
|
||||
line-height: 55px;
|
||||
background: #FAFCFF;
|
||||
border-radius: 4px 4px 0px 0px;
|
||||
border: 1px solid rgba(42, 97, 255, 0.23);
|
||||
|
@ -625,7 +621,7 @@
|
|||
}
|
||||
.commonBox-title-read{
|
||||
vertical-align: middle;
|
||||
color: #666;
|
||||
color: #000;
|
||||
font-size: 14px;
|
||||
&:hover {
|
||||
color: #466AFF;
|
||||
|
|
|
@ -30,37 +30,37 @@ function DetailBanner({ history,list , owner , projectsId , isManager , url , pa
|
|||
item.menu_name === "home" &&
|
||||
<li className={pathname==="about" ? "active" : ""}>
|
||||
<Link to={{ pathname: `/${owner}/${projectsId}/about`, state }}>
|
||||
<i className={(pathname==="" || urlFlag) ? "iconfont icon-zhuye1 color-grey-3 mr5 font-14":"iconfont icon-zhuye1 color-grey-6 font-14 mr5"}></i>
|
||||
<i className={"iconfont icon-zhuye-fill color-grey-3 mr5 font-14"}></i>
|
||||
<span>主页</span>
|
||||
</Link>
|
||||
</Link>
|
||||
</li>
|
||||
}
|
||||
{
|
||||
item.menu_name === "code" &&
|
||||
<li className={(pathname==="" || urlFlag) ? "active" : ""}>
|
||||
<Link to={{ pathname: `/${owner}/${projectsId}`, state }}>
|
||||
<i className={(pathname==="" || urlFlag) ? "iconfont icon-daimaku color-grey-3 mr5 font-14":"iconfont icon-daimaku color-grey-6 font-14 mr5"}></i>
|
||||
<i className={"iconfont icon-daimakuicon1 color-grey-3 mr5 font-14"}></i>
|
||||
<span>代码库</span>
|
||||
</Link>
|
||||
</Link>
|
||||
</li>
|
||||
}
|
||||
{
|
||||
item.menu_name === "issues" &&
|
||||
<li className={pathname==="issues" ? "active" : ""}>
|
||||
<Tooltip title="易修是Issue的中文名,即问题列表" placement="bottom">
|
||||
<Link to={{ pathname: `/${owner}/${projectsId}/issues`, state }}>
|
||||
<i className={pathname==="issues" ? "iconfont icon-renwu color-grey-3 mr5 font-14":"iconfont icon-renwu color-grey-6 font-14 mr5"}></i>
|
||||
<span>易修</span>
|
||||
<Tooltip title="易修是Issue的中文名,即问题列表" placement="bottom">
|
||||
<i className={"iconfont icon-yixiuicon1 color-grey-3 mr5 font-14"}></i>
|
||||
<span>易修</span>
|
||||
</Tooltip>
|
||||
{projectDetail && projectDetail.issues_count ? <span className="num">{numFormat(projectDetail.issues_count)}</span> : ""}
|
||||
</Link>
|
||||
</Tooltip>
|
||||
</li>
|
||||
}
|
||||
{
|
||||
item.menu_name === "pulls" && projectDetail && parseInt(projectDetail.type) !== 2 && platform ?
|
||||
<li className={pathname==="pulls" ? "active" : ""}>
|
||||
<Link to={{ pathname: `/${owner}/${projectsId}/pulls`, state }}>
|
||||
<i className={pathname==="pulls" ? "iconfont icon-hebingqingqiu1 color-grey-3 mr5 font-14":"iconfont icon-hebingqingqiu1 color-grey-6 font-14 mr5"}></i>
|
||||
<i className={"iconfont icon-hebingqingqiu1 color-grey-3 mr5 font-14"}></i>
|
||||
<span>合并请求</span>
|
||||
{projectDetail && projectDetail.pull_requests_count ? <span className="num">{numFormat(projectDetail.pull_requests_count)}</span> : ""}
|
||||
</Link>
|
||||
|
@ -70,7 +70,7 @@ function DetailBanner({ history,list , owner , projectsId , isManager , url , pa
|
|||
item.menu_name === "wiki" &&
|
||||
<li className={pathname === "wiki" ? "active" : ""}>
|
||||
<Link to={{ pathname: `/${owner}/${projectsId}/wiki`, state }}>
|
||||
<i className={pathname==="wiki" ? "iconfont icon-wiki_icon color-grey-3 mr5 font-14":"iconfont icon-wiki_icon color-grey-6 font-14 mr5"}></i>
|
||||
<i className={"iconfont icon-a-wikiicon1 color-grey-3 mr5 font-14"}></i>
|
||||
<span>Wiki</span>
|
||||
</Link>
|
||||
</li>
|
||||
|
@ -80,29 +80,29 @@ function DetailBanner({ history,list , owner , projectsId , isManager , url , pa
|
|||
<li className={pathname==="devops" ? "active" : ""}>
|
||||
{/* <Link to={{ pathname: `/${owner}/${projectsId}/devops${open_devops ? `/dispose`:""}`, state }}> */}
|
||||
<Link to={{ pathname: `/${owner}/${projectsId}/devops`, state:{...state,open_devops} }}>
|
||||
<i className="iconfont icon-gongzuoliu font-13 mr8"></i>工作流(beta版)
|
||||
<i className="iconfont icon-gongzuoliuicon font-13 mr5 color-grey-3"></i>工作流(beta版)
|
||||
{projectDetail && projectDetail.ops_count ? <span>{projectDetail.ops_count}</span> : ""}
|
||||
</Link>
|
||||
</li>
|
||||
:""
|
||||
}
|
||||
{
|
||||
// item.menu_name === "resources" &&
|
||||
// <li className={pathname==="source" ? "active" : ""}>
|
||||
// <Link to={{ pathname: `/${owner}/${projectsId}/source`, state }}>
|
||||
// <i className={pathname==="source" ? "iconfont icon-ziyuanpaihanghetuijian color-grey-3 mr5 font-14":"iconfont icon-ziyuanpaihanghetuijian color-grey-6 font-14 mr5"}></i>
|
||||
// <span>资源库</span>
|
||||
// {projectDetail && projectDetail.source_count ? <span className="num">{projectDetail.source_count}</span> :""}
|
||||
// </Link>
|
||||
// </li>
|
||||
item.menu_name === "resources" &&
|
||||
<li className={pathname==="source" ? "active" : ""}>
|
||||
<Link to={{ pathname: `/${owner}/${projectsId}/source`, state }}>
|
||||
<i className={pathname==="source" ? "iconfont icon-ziyuanpaihanghetuijian color-grey-3 mr5 font-14":"iconfont icon-ziyuanpaihanghetuijian color-grey-6 font-14 mr5"}></i>
|
||||
<span>资源库</span>
|
||||
{projectDetail && projectDetail.source_count ? <span className="num">{projectDetail.source_count}</span> :""}
|
||||
</Link>
|
||||
</li>
|
||||
}
|
||||
{
|
||||
item.menu_name === "versions" &&
|
||||
<li className={pathname==="milestones" ? "active" : ""}>
|
||||
<Link to={{ pathname: `/${owner}/${projectsId}/milestones`, state }}>
|
||||
<i className={pathname==="milestones" ? "iconfont icon-lichengbei color-grey-3 mr5 font-14":"iconfont icon-lichengbei color-grey-6 font-14 mr5"}></i>
|
||||
<span>里程碑</span>
|
||||
{projectDetail && projectDetail.versions_count ? <span className="num">{numFormat(projectDetail.versions_count)}</span> :""}
|
||||
<i className={pathname==="milestones" ? "iconfont icon-lichengbeiicon color-grey-3 mr5 font-14":"iconfont icon-lichengbeiicon color-grey-6 font-14 mr5"}></i>
|
||||
<span>里程碑</span>
|
||||
{projectDetail && projectDetail.versions_count ? <span className="num">{numFormat(projectDetail.versions_count)}</span> :""}
|
||||
</Link>
|
||||
</li>
|
||||
}
|
||||
|
@ -110,7 +110,7 @@ function DetailBanner({ history,list , owner , projectsId , isManager , url , pa
|
|||
item.menu_name === "activity" &&
|
||||
<li className={pathname==="activity" ? "active" : ""}>
|
||||
<Link to={{ pathname: `/${owner}/${projectsId}/activity`, state }}>
|
||||
<i className={pathname==="activity" ? "iconfont icon-tongzhi color-grey-3 mr5 font-14":"iconfont icon-tongzhi color-grey-6 font-14 mr5"}></i>
|
||||
<i className={pathname==="activity" ? "iconfont icon-dongtaiicon color-grey-3 mr5 font-14":"iconfont icon-dongtaiicon color-grey-6 font-14 mr5"}></i>
|
||||
<span>动态</span>
|
||||
</Link>
|
||||
</li>
|
||||
|
@ -119,7 +119,7 @@ function DetailBanner({ history,list , owner , projectsId , isManager , url , pa
|
|||
item.menu_name === "settings" &&
|
||||
<li className={pathname === "settings" ? "active" : ""}>
|
||||
<Link to={`/${owner}/${projectsId}/settings`}>
|
||||
<i className={url && url.indexOf("/settings") > 0 ? "iconfont icon-cangku color-grey-3 mr5 font-14":"iconfont icon-cangku color-grey-6 font-14 mr5"}></i>
|
||||
<i className={url && url.indexOf("/settings") > 0 ? "iconfont icon-cangkushezhiicon color-grey-3 mr5 font-14":"iconfont icon-cangkushezhiicon color-grey-6 font-14 mr5"}></i>
|
||||
<span>仓库设置</span>
|
||||
</Link>
|
||||
</li>
|
||||
|
|
|
@ -48,8 +48,10 @@ class NewMerge extends Component {
|
|||
this.compareProject(this.state.id,pull,"master");
|
||||
}
|
||||
}
|
||||
|
||||
// 页面销毁取消监听
|
||||
componentWillUnmount () {
|
||||
console.log('----------destoyed---------');
|
||||
window.removeEventListener('popstate', this.handleBack, false);
|
||||
};
|
||||
|
||||
|
@ -60,8 +62,11 @@ class NewMerge extends Component {
|
|||
|
||||
//获取新建分支数据
|
||||
getmergelist = (projectsId) => {
|
||||
this.setState({isSpin: true})
|
||||
const { owner } = this.props.match.params;
|
||||
this.setState({isSpin: true});
|
||||
// const { owner } = this.props.match.params;
|
||||
let owner =this.props.history.location.pathname.split('/')[1];
|
||||
console.log('owner:'+owner);
|
||||
console.log(this.props);
|
||||
const url = `/${owner}/${projectsId}/pulls/new.json`;
|
||||
axios
|
||||
.get(url)
|
||||
|
@ -264,7 +269,9 @@ class NewMerge extends Component {
|
|||
show_message,
|
||||
default_message,
|
||||
merge_head,
|
||||
projects_names,id,comparesData
|
||||
projects_names,
|
||||
id,
|
||||
comparesData
|
||||
} = this.state;
|
||||
|
||||
const renderBrances = (list, type) => {
|
||||
|
@ -298,6 +305,7 @@ class NewMerge extends Component {
|
|||
return <div dangerouslySetInnerHTML={{ __html: html }}></div>;
|
||||
};
|
||||
let { project } = this.props;
|
||||
|
||||
return (
|
||||
<div>
|
||||
<div className="main">
|
||||
|
|
|
@ -2,9 +2,10 @@ import React, { Component } from 'react';
|
|||
import { Link } from 'react-router-dom';
|
||||
import { Input , Form , Select , Checkbox , Button , Spin , AutoComplete, Modal } from 'antd';
|
||||
import { Base64 } from 'js-base64';
|
||||
import { AlignCenter } from '../Component/layout';
|
||||
|
||||
import '../css/index.scss';
|
||||
import './new.css'
|
||||
import './new.scss'
|
||||
|
||||
import axios from 'axios';
|
||||
const Option = Select.Option;
|
||||
|
@ -44,7 +45,12 @@ class Index extends Component {
|
|||
project_category_name: undefined,
|
||||
license_name: undefined,
|
||||
ignore_name: undefined,
|
||||
descNum:0
|
||||
descNum:0,
|
||||
|
||||
categoreFlag:false,
|
||||
languageFlag:false,
|
||||
ignoreFlag:false,
|
||||
licenseFlag:false,
|
||||
}
|
||||
}
|
||||
componentDidMount = () => {
|
||||
|
@ -189,6 +195,7 @@ class Index extends Component {
|
|||
|
||||
subMitFrom = () => {
|
||||
this.props.form.validateFieldsAndScroll((err, values) => {
|
||||
console.log(err);
|
||||
if (!err) {
|
||||
this.setState({
|
||||
isSpin: true
|
||||
|
@ -313,41 +320,28 @@ class Index extends Component {
|
|||
|
||||
mirrorCheck,
|
||||
|
||||
descNum
|
||||
descNum,
|
||||
|
||||
ignoreFlag,
|
||||
licenseFlag,
|
||||
languageFlag,
|
||||
categoreFlag
|
||||
} = this.state;
|
||||
return (
|
||||
<div className="main back-white" style={{padding:"0px",border:"none"}}>
|
||||
<div className="newPanel">
|
||||
<div className="newPanel_title">创建{projectsType && projectsType === "mirror" ? "镜像" : "托管"}项目</div>
|
||||
<div className="newPanel_title">{projectsType && projectsType === "mirror" ? "导入" : "新建"}项目</div>
|
||||
<Spin spinning={isSpin}>
|
||||
<Form>
|
||||
<div className="newPanel_content">
|
||||
<Form.Item
|
||||
label="拥有者"
|
||||
>
|
||||
{getFieldDecorator('user_id', {
|
||||
rules: [{
|
||||
required: true, message: '请选择拥有者'
|
||||
},{
|
||||
validator:(rule, value, callback) => this.checkId(rule, value, callback, OwnerList, '拥有者')
|
||||
}],
|
||||
})(
|
||||
<AutoComplete
|
||||
placeholder="请选择拥有者"
|
||||
onChange={(value, e) => this.ChangePlatform(value, e, 'owners', OwnerList)}
|
||||
className="plateAutoComplete"
|
||||
onBlur={(value) => this.blurCategory(value, OwnerList, "owners")}
|
||||
>
|
||||
{owners_list}
|
||||
</AutoComplete>
|
||||
)}
|
||||
</Form.Item>
|
||||
{
|
||||
|
||||
{
|
||||
projectsType && projectsType === "mirror" &&
|
||||
<React.Fragment>
|
||||
<Form.Item
|
||||
label="镜像版本库地址"
|
||||
style={{ marginBottom: "0px" }}
|
||||
colon={false}
|
||||
>
|
||||
{getFieldDecorator('clone_addr', {
|
||||
rules: [{
|
||||
|
@ -362,13 +356,13 @@ class Index extends Component {
|
|||
}
|
||||
{
|
||||
projectsType && projectsType === "mirror" &&
|
||||
<React.Fragment>
|
||||
<div className="pb10">
|
||||
<p className="mt10 mb10 color-grey-3 pointer" onClick={this.changeMirrorCheck}>
|
||||
需要授权验证<i className={mirrorCheck?"iconfont icon-xiajiantou font-13 ml10 color-grey-8":"iconfont icon-youjiantou font-13 ml10 color-grey-8"}></i>
|
||||
<span className="ml20 font-12 color-red">如果源项目为公有仓库,禁止填写用户名密码。如果源项目为私有仓库,则必须填写正确的用户名和密码!</span></p>
|
||||
<span className="ml20 font-12 color-red">如果导入项目为私有仓库,则必须填写相应平台正确的用户名和密码</span></p>
|
||||
{
|
||||
mirrorCheck &&
|
||||
<div className="df mb20" style={{alignItems:'center'}}>
|
||||
<div className="df mb10" style={{alignItems:'center'}}>
|
||||
<span className="mr10">用户名</span>
|
||||
<Form.Item
|
||||
style={{ marginBottom: "0px" }}
|
||||
|
@ -383,7 +377,6 @@ class Index extends Component {
|
|||
<span className="mr10">密码</span>
|
||||
<Form.Item
|
||||
style={{ marginBottom: "0px" }}
|
||||
label=""
|
||||
>
|
||||
{getFieldDecorator('password', {
|
||||
rules: [],
|
||||
|
@ -393,143 +386,144 @@ class Index extends Component {
|
|||
</Form.Item>
|
||||
</div>
|
||||
}
|
||||
</React.Fragment>
|
||||
</div>
|
||||
}
|
||||
<AlignCenter>
|
||||
<Form.Item
|
||||
label="拥有者"
|
||||
style={{width:"260px"}}
|
||||
colon={false}
|
||||
className="explainPos"
|
||||
>
|
||||
{getFieldDecorator('user_id', {
|
||||
rules: [{
|
||||
required: true, message: '请选择拥有者'
|
||||
},{
|
||||
validator:(rule, value, callback) => this.checkId(rule, value, callback, OwnerList, '拥有者')
|
||||
}],
|
||||
})(
|
||||
<AutoComplete
|
||||
style={{width:"260px",height:"35px"}}
|
||||
placeholder="请选择拥有者"
|
||||
onChange={(value, e) => this.ChangePlatform(value, e, 'owners', OwnerList)}
|
||||
className="plateAutoComplete"
|
||||
onBlur={(value) => this.blurCategory(value, OwnerList, "owners")}
|
||||
>
|
||||
{owners_list}
|
||||
</AutoComplete>
|
||||
)}
|
||||
</Form.Item>
|
||||
<span className="ml10 mr10 mt10 font-18">/</span>
|
||||
<Form.Item
|
||||
label="项目名称"
|
||||
className="flex1 explainPos"
|
||||
colon={false}
|
||||
>
|
||||
{getFieldDecorator('name', {
|
||||
rules: [{
|
||||
required: true, message: '请填写项目名称'
|
||||
}],
|
||||
})(
|
||||
<Input placeholder="例如:团队协作方法与研究" maxLength={50}/>
|
||||
)}
|
||||
</Form.Item>
|
||||
</AlignCenter>
|
||||
<Form.Item
|
||||
label="项目名称"
|
||||
label={<span>项目标识 <span className="color-grey-9">(项目url标识部分)</span></span>}
|
||||
colon={false}
|
||||
>
|
||||
{getFieldDecorator('name', {
|
||||
{getFieldDecorator('repository_name', {
|
||||
rules: [{
|
||||
required: true, message: '请填写项目名称'
|
||||
required: true, message: '请填写项目标识'
|
||||
}],
|
||||
})(
|
||||
<Input placeholder="例如:团队协作方法与研究" maxLength={50}/>
|
||||
<Input placeholder="项目标识请使用与项目相关的英文关键字" maxLength={100} />
|
||||
)}
|
||||
</Form.Item>
|
||||
<div className="pr">
|
||||
<span className="toprightNum">{descNum}/200</span>
|
||||
<Form.Item
|
||||
label="项目简介"
|
||||
colon={false}
|
||||
style={{marginBottom:"0px"}}
|
||||
>
|
||||
{getFieldDecorator('description', {
|
||||
rules: [{
|
||||
required: true, message: '请填写项目简介'
|
||||
}],
|
||||
rules: [],
|
||||
})(
|
||||
<Input.TextArea maxLength={200} placeholder="项目的介绍" autoSize={{ minRows: 2, maxRows: 6 }} onChange={this.changeDesc}/>
|
||||
)}
|
||||
</Form.Item>
|
||||
</div>
|
||||
<Form.Item
|
||||
label="仓库名称"
|
||||
>
|
||||
{getFieldDecorator('repository_name', {
|
||||
rules: [{
|
||||
required: true, message: '请填写仓库名称'
|
||||
}],
|
||||
})(
|
||||
<Input placeholder="仓库名称请使用与项目相关的英文关键字" maxLength={100} />
|
||||
)}
|
||||
</Form.Item>
|
||||
<Form.Item
|
||||
label="项目类别"
|
||||
>
|
||||
{getFieldDecorator('project_category', {
|
||||
rules: [{
|
||||
required: true, message: '请选择大类别',
|
||||
}, {
|
||||
validator: (rule, value, callback) => this.checkId(rule, value, callback, CategoryList, '项目类别')
|
||||
}],
|
||||
})(
|
||||
<AutoComplete
|
||||
placeholder="请选择项目类别"
|
||||
onChange={(value, e) => this.ChangePlatform(value, e, 'project_category', CategoryList)}
|
||||
className="plateAutoComplete"
|
||||
onBlur={(value) => this.blurCategory(value, CategoryList, "project_category")}
|
||||
>
|
||||
{project_category_list}
|
||||
</AutoComplete>
|
||||
)}
|
||||
</Form.Item>
|
||||
<Form.Item
|
||||
label="项目语言"
|
||||
>
|
||||
{getFieldDecorator('project_language', {
|
||||
rules: [{
|
||||
required: true, message: '请选择项目语言'
|
||||
}, {
|
||||
validator: (rule, value, callback) => this.checkId(rule, value, callback, LanguageList, '项目语言')
|
||||
}],
|
||||
})(
|
||||
<AutoComplete
|
||||
placeholder="请选择项目语言"
|
||||
onChange={(value, e) => this.ChangePlatform(value, e, 'project_language', LanguageList)}
|
||||
className="plateAutoComplete"
|
||||
onBlur={(value) => this.blurCategory(value, LanguageList, "project_language")}
|
||||
>
|
||||
{project_language_list}
|
||||
</AutoComplete>
|
||||
)}
|
||||
</Form.Item>
|
||||
|
||||
{
|
||||
(projectsType === "deposit" || !projectsType) &&
|
||||
<React.Fragment>
|
||||
<Form.Item
|
||||
label=".gitignore"
|
||||
className="privatePart"
|
||||
>
|
||||
{getFieldDecorator('ignore', {
|
||||
rules: [{
|
||||
required: true, message: '请选择gitignore'
|
||||
}, {
|
||||
validator: (rule, value, callback) => this.checkId(rule, value, callback, GitignoreList, 'gitignore')
|
||||
}],
|
||||
})(
|
||||
<AutoComplete
|
||||
placeholder="请选择gitignore,用来定义哪些文件不需要添加到版本管理中"
|
||||
onChange={(value, e) => this.ChangePlatform(value, e, 'ignore', GitignoreList)}
|
||||
className="plateAutoComplete"
|
||||
onBlur={(value) => this.blurCategory(value, GitignoreList, "ignore")}
|
||||
>
|
||||
{ignore_list}
|
||||
</AutoComplete>
|
||||
{getFieldDecorator('ignoreFlag')(
|
||||
<Checkbox checked={ignoreFlag} onChange={(e)=>this.setState({ignoreFlag:e.target.checked})}>.gitignore</Checkbox>
|
||||
)}
|
||||
</Form.Item>
|
||||
{ ignoreFlag &&
|
||||
<Form.Item>
|
||||
{getFieldDecorator('ignore', {
|
||||
rules: [{
|
||||
required: ignoreFlag, message: '请选择gitignore'
|
||||
}, {
|
||||
validator: (rule, value, callback) => this.checkId(rule, value, callback, GitignoreList, 'gitignore')
|
||||
}],
|
||||
})(
|
||||
<AutoComplete
|
||||
placeholder="请选择gitignore,用来定义哪些文件不需要添加到版本管理中"
|
||||
onChange={(value, e) => this.ChangePlatform(value, e, 'ignore', GitignoreList)}
|
||||
className="plateAutoComplete"
|
||||
onBlur={(value) => this.blurCategory(value, GitignoreList, "ignore")}
|
||||
>
|
||||
{ignore_list}
|
||||
</AutoComplete>
|
||||
)}
|
||||
</Form.Item>
|
||||
}
|
||||
<Form.Item
|
||||
label="开源许可证"
|
||||
className="privatePart"
|
||||
>
|
||||
{getFieldDecorator('license', {
|
||||
rules: [{
|
||||
required: true, message: '请选择开源许可证'
|
||||
}, {
|
||||
validator: (rule, value, callback) => this.checkId(rule, value, callback, LicensesList, '开源许可证')
|
||||
}],
|
||||
})(
|
||||
<AutoComplete
|
||||
placeholder="请选择开源许可证"
|
||||
onChange={(value, e) => this.ChangePlatform(value, e, 'license', LicensesList)}
|
||||
className="plateAutoComplete"
|
||||
onBlur={(value) => this.blurCategory(value, LicensesList, "license")}
|
||||
>
|
||||
{license_list}
|
||||
</AutoComplete>
|
||||
{getFieldDecorator('licenseFlag')(
|
||||
<Checkbox checked={licenseFlag} onChange={(e)=>this.setState({licenseFlag:e.target.checked})}>开源许可证</Checkbox>
|
||||
)}
|
||||
</Form.Item>
|
||||
{ licenseFlag &&
|
||||
<Form.Item>
|
||||
{getFieldDecorator('license', {
|
||||
rules: [{
|
||||
required: licenseFlag, message: '请选择开源许可证'
|
||||
}, {
|
||||
validator: (rule, value, callback) => this.checkId(rule, value, callback, LicensesList, '开源许可证')
|
||||
}],
|
||||
})(
|
||||
<AutoComplete
|
||||
placeholder="请选择开源许可证"
|
||||
onChange={(value, e) => this.ChangePlatform(value, e, 'license', LicensesList)}
|
||||
className="plateAutoComplete"
|
||||
onBlur={(value) => this.blurCategory(value, LicensesList, "license")}
|
||||
>
|
||||
{license_list}
|
||||
</AutoComplete>
|
||||
)}
|
||||
</Form.Item>
|
||||
}
|
||||
</React.Fragment>
|
||||
}
|
||||
<Form.Item
|
||||
label="可见性"
|
||||
style={{ margin: "0px" }}
|
||||
className="privatePart"
|
||||
>
|
||||
{getFieldDecorator('private')(
|
||||
<Checkbox value="limit">将项目设为私有<span className="ml15 font-13 color-grey-9">(只有项目所有人或拥有权限的项目成员才能看到)</span></Checkbox>
|
||||
<Checkbox value="limit">将项目设为私有<span className="font-13 color-grey-9">(只有项目所有人或拥有权限的项目成员才能看到)</span></Checkbox>
|
||||
)}
|
||||
</Form.Item >
|
||||
{
|
||||
projectsType && projectsType === "mirror" &&
|
||||
<Form.Item
|
||||
label="迁移类型:"
|
||||
style={{ margin: "0px" }}
|
||||
className="privatePart"
|
||||
>
|
||||
{getFieldDecorator('is_mirror')(
|
||||
|
@ -537,12 +531,69 @@ class Index extends Component {
|
|||
)}
|
||||
</Form.Item >
|
||||
}
|
||||
<div>
|
||||
<Form.Item
|
||||
style={{ margin: "0px" }}
|
||||
className="privatePart"
|
||||
>
|
||||
{getFieldDecorator('categoreFlag')(
|
||||
<Checkbox checked={categoreFlag} onChange={(e)=>this.setState({categoreFlag:e.target.checked})}>项目类别</Checkbox>
|
||||
)}
|
||||
</Form.Item>
|
||||
{categoreFlag &&
|
||||
<Form.Item
|
||||
className="privatePart"
|
||||
>
|
||||
{getFieldDecorator('project_category', {
|
||||
rules: [{
|
||||
required: categoreFlag, message: '请选择大类别',
|
||||
}, {
|
||||
validator: (rule, value, callback) => this.checkId(rule, value, callback, CategoryList, '项目类别')
|
||||
}],
|
||||
})(
|
||||
<AutoComplete
|
||||
placeholder="请选择项目类别"
|
||||
onChange={(value, e) => this.ChangePlatform(value, e, 'project_category', CategoryList)}
|
||||
className="plateAutoComplete"
|
||||
onBlur={(value) => this.blurCategory(value, CategoryList, "project_category")}
|
||||
>
|
||||
{project_category_list}
|
||||
</AutoComplete>
|
||||
)}
|
||||
</Form.Item>
|
||||
}
|
||||
<Form.Item
|
||||
className="privatePart"
|
||||
>
|
||||
{getFieldDecorator('languageFlag')(
|
||||
<Checkbox checked={languageFlag} onChange={(e)=>this.setState({languageFlag:e.target.checked})}>项目语言</Checkbox>
|
||||
)}
|
||||
</Form.Item>
|
||||
{languageFlag &&
|
||||
<Form.Item>
|
||||
{getFieldDecorator('project_language', {
|
||||
rules: [{
|
||||
required: languageFlag, message: '请选择项目语言'
|
||||
}, {
|
||||
validator: (rule, value, callback) => this.checkId(rule, value, callback, LanguageList, '项目语言')
|
||||
}],
|
||||
})(
|
||||
<AutoComplete
|
||||
placeholder="请选择项目语言"
|
||||
onChange={(value, e) => this.ChangePlatform(value, e, 'project_language', LanguageList)}
|
||||
className="plateAutoComplete"
|
||||
onBlur={(value) => this.blurCategory(value, LanguageList, "project_language")}
|
||||
>
|
||||
{project_language_list}
|
||||
</AutoComplete>
|
||||
)}
|
||||
</Form.Item>
|
||||
}
|
||||
<div className="mt20">
|
||||
注:<span className="ant-form-item-required"></span> 为必填项,否则为选填
|
||||
</div>
|
||||
<Form.Item className="formTip mt20">
|
||||
<Button type="primary" onClick={this.subMitFrom} className="mr20">创建项目</Button>
|
||||
<Link to={'/projects'} className="btn_32">取消</Link>
|
||||
<Link to={'/explore'} className="btn_32">取消</Link>
|
||||
</Form.Item>
|
||||
</div>
|
||||
</Form>
|
||||
|
|
|
@ -12,7 +12,13 @@
|
|||
border-bottom: 1px solid #f0f0f0
|
||||
}
|
||||
.newPanel_content{
|
||||
padding:1rem 2rem;
|
||||
padding:2rem;
|
||||
}
|
||||
.newPanel_content form .ant-row.ant-form-item{
|
||||
margin-bottom: 25px;
|
||||
}
|
||||
.newPanel_content .ant-form-item-label label{
|
||||
font-size: 16px;
|
||||
}
|
||||
.newPanel_content .ant-form-item-control-wrapper{
|
||||
flex: 1;
|
||||
|
@ -25,24 +31,35 @@
|
|||
height: 35px;
|
||||
line-height: 35px;
|
||||
}
|
||||
|
||||
.newContent_inline{
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
justify-content: space-between;
|
||||
align-items:flex-end
|
||||
}
|
||||
.explainPos{
|
||||
.ant-form-explain{
|
||||
position: absolute;
|
||||
}
|
||||
}
|
||||
|
||||
.newContent_inline > .ant-form-item:nth-child(2){
|
||||
margin-left: 20px;
|
||||
}
|
||||
.newPanel_content .privatePart .ant-form-item-label{
|
||||
margin-left: 0px;
|
||||
.privatePart{
|
||||
margin-bottom: 0px!important;
|
||||
.ant-form-item-label{
|
||||
margin-left: 0px;
|
||||
}
|
||||
}
|
||||
.newPanel_content .ant-form-item-label{
|
||||
line-height: 25px;
|
||||
height: 25px;
|
||||
margin-left: -0.8rem;
|
||||
}
|
||||
.plateAutoComplete{
|
||||
.ant-input{
|
||||
height: 34px!important;
|
||||
}
|
||||
}
|
||||
@media screen and (max-width: 750px){
|
||||
.newPanel_content{
|
|
@ -16,7 +16,7 @@ const menu = [
|
|||
{name:"合并请求",index:"pulls"},
|
||||
{name:"Wiki",index:"wiki"},
|
||||
{name:"工作流(beta版)",index:"devops"},
|
||||
// {name:"资源库",index:"resources"},
|
||||
{name:"资源库",index:"resources"},
|
||||
{name:"里程碑",index:"versions"},
|
||||
{name:"动态",index:"activity"},
|
||||
]
|
||||
|
|
|
@ -63,10 +63,10 @@ function List(props){
|
|||
const menu_new=(
|
||||
<Menu>
|
||||
<Menu.Item key="updated_on">
|
||||
<CheckProfile {...props} sureFunc={()=>{props.history.push(`/projects/deposit/new/${OIdentifier}`)}}>新建托管项目</CheckProfile>
|
||||
<CheckProfile {...props} sureFunc={()=>{props.history.push(`/projects/deposit/new/${OIdentifier}`)}}>新建项目</CheckProfile>
|
||||
</Menu.Item>
|
||||
<Menu.Item key="created_on">
|
||||
<CheckProfile {...props} sureFunc={()=>{props.history.push(`/projects/mirror/new/${OIdentifier}`)}}>新建镜像项目</CheckProfile>
|
||||
<CheckProfile {...props} sureFunc={()=>{props.history.push(`/projects/mirror/new/${OIdentifier}`)}}>导入项目</CheckProfile>
|
||||
</Menu.Item>
|
||||
</Menu>
|
||||
)
|
||||
|
|
|
@ -108,7 +108,7 @@ function RightBox({ OIdentifier , history , admin , showCompeleteDialog ,complet
|
|||
<div>
|
||||
{
|
||||
(item.is_admin || item.is_member) ?
|
||||
<Link to={`/${OIdentifier}/teams/${item.id}`}><ColorListName>{item.name}</ColorListName></Link>
|
||||
<Link to={`/${OIdentifier}/teams/${item.id}`}><ColorListName>{item.nickname}</ColorListName></Link>
|
||||
:
|
||||
<ColorListName>{item.name}</ColorListName>
|
||||
}
|
||||
|
|
|
@ -1,348 +0,0 @@
|
|||
body {
|
||||
width: 100% !important;
|
||||
}
|
||||
|
||||
.ant-spin-nested-loading > div > .ant-spin.opacitySpin {
|
||||
max-height: 100vh;
|
||||
background: white;
|
||||
}
|
||||
|
||||
.wiki-main {
|
||||
width: 1200px;
|
||||
min-height: 400px;
|
||||
margin: 20px auto;
|
||||
}
|
||||
.wiki-main .ant-btn-primary {
|
||||
background-color: #466aff;
|
||||
border-color: #466aff;
|
||||
}
|
||||
.wiki-main .ant-btn-primary:hover, .wiki-main .ant-btn-primary:focus, .wiki-main .ant-btn-primary:active {
|
||||
background-color: #6482ff;
|
||||
}
|
||||
.wiki-main .ant-btn-default:hover,
|
||||
.wiki-main .ant-btn-default:active,
|
||||
.wiki-main .ant-btn-default:focus {
|
||||
background: #f3f4f6;
|
||||
color: #333;
|
||||
border-color: #d0d0d0;
|
||||
}
|
||||
.wiki-main .wiki-head {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
padding: 0 20px;
|
||||
height: 64px;
|
||||
background: #fafcff;
|
||||
box-shadow: 0px 1px 4px 0px rgba(0, 0, 0, 0.13);
|
||||
border-radius: 4px;
|
||||
border-bottom-left-radius: 0;
|
||||
}
|
||||
.wiki-main .wiki-head .ant-btn .anticon {
|
||||
margin: 0 -3px 0 0;
|
||||
}
|
||||
.wiki-main .head-title {
|
||||
font-size: 20px;
|
||||
color: #05101a;
|
||||
line-height: 30px;
|
||||
font-weight: 500;
|
||||
}
|
||||
.wiki-main .head-title .anticon-right {
|
||||
color: #666;
|
||||
font-size: 0.9rem;
|
||||
}
|
||||
.wiki-main .back-wiki {
|
||||
color: #466aff;
|
||||
cursor: pointer;
|
||||
}
|
||||
.wiki-main .back-wiki:hover {
|
||||
color: #6482ff;
|
||||
}
|
||||
.wiki-main .head-log-middle {
|
||||
width: 3rem;
|
||||
height: 3rem;
|
||||
margin-right: 0.35rem;
|
||||
border-radius: 50%;
|
||||
}
|
||||
.wiki-main .head-log-small {
|
||||
width: 1.25rem;
|
||||
height: 1.25rem;
|
||||
margin-right: 0.35rem;
|
||||
border-radius: 50%;
|
||||
}
|
||||
.wiki-main .user-box {
|
||||
font-size: 12px;
|
||||
font-family: "PingFangSC-Medium";
|
||||
color: #466aff;
|
||||
cursor: pointer;
|
||||
}
|
||||
.wiki-main .user-box:hover {
|
||||
color: #6482ff;
|
||||
}
|
||||
.wiki-main .user-box .head-log-small {
|
||||
position: relative;
|
||||
top: -2px;
|
||||
}
|
||||
.wiki-main .time-ago {
|
||||
font-size: 12px;
|
||||
color: #333;
|
||||
letter-spacing: 0;
|
||||
line-height: 17px;
|
||||
font-weight: 400;
|
||||
font-family: "PingFangSC-Regular";
|
||||
}
|
||||
.wiki-main .has-error .ant-form-explain,
|
||||
.wiki-main .has-error .ant-form-split {
|
||||
position: absolute;
|
||||
}
|
||||
.wiki-main .wiki-nav {
|
||||
max-height: 60vh;
|
||||
}
|
||||
.wiki-main .wiki-nav .wiki-search {
|
||||
padding: 0 14px;
|
||||
}
|
||||
.wiki-main .wiki-nav .wiki-search .ant-input {
|
||||
padding-left: 30px;
|
||||
}
|
||||
.wiki-main .wiki-nav .wiki-search .ant-input-suffix {
|
||||
left: 26px;
|
||||
right: auto;
|
||||
}
|
||||
.wiki-main .wiki-nav .wiki-search:hover .ant-input, .wiki-main .wiki-nav .wiki-search:focus .ant-input {
|
||||
border-color: #466aff !important;
|
||||
}
|
||||
.wiki-main .wiki-nav-parent {
|
||||
width: 260px;
|
||||
flex: none;
|
||||
}
|
||||
.wiki-main .ant-form-item-children .ant-input:hover {
|
||||
border-color: #466aff !important;
|
||||
}
|
||||
.wiki-main .ant-checkbox-checked .ant-checkbox-inner {
|
||||
background-color: #466aff;
|
||||
border-color: #466aff;
|
||||
}
|
||||
.wiki-main .ant-radio-checked .ant-radio-inner,
|
||||
.wiki-main .ant-radio-checked::after {
|
||||
border-color: #466aff;
|
||||
}
|
||||
.wiki-main .ant-radio-inner::after {
|
||||
background-color: #466aff;
|
||||
}
|
||||
.wiki-main .ant-radio-group {
|
||||
display: block;
|
||||
margin: 10px 0 0 30px;
|
||||
}
|
||||
.wiki-main .ant-radio-wrapper:hover .ant-radio,
|
||||
.wiki-main .ant-radio:hover .ant-radio-inner,
|
||||
.wiki-main .ant-radio-input:focus + .ant-radio-inner {
|
||||
border-color: #466aff;
|
||||
}
|
||||
|
||||
#wikiUrl:focus {
|
||||
border-right: 1px solid #d9d9d9 !important;
|
||||
}
|
||||
|
||||
.wiki-body {
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.wiki-content {
|
||||
flex: auto;
|
||||
width: 75%;
|
||||
}
|
||||
|
||||
.wiki-content-detail {
|
||||
padding: 0 20px;
|
||||
word-break: break-all;
|
||||
}
|
||||
|
||||
.ant-input-group.ant-input-group-compact.copy-url {
|
||||
display: flex;
|
||||
margin-top: 20px;
|
||||
}
|
||||
.ant-input-group.ant-input-group-compact.copy-url .ant-select-selection__rendered {
|
||||
margin: 0 14px 0 5px;
|
||||
width: 3rem;
|
||||
font-size: 12px;
|
||||
}
|
||||
.ant-input-group.ant-input-group-compact.copy-url .ant-select-arrow {
|
||||
right: 4px;
|
||||
}
|
||||
.ant-input-group.ant-input-group-compact.copy-url .ant-input {
|
||||
font-size: 12px;
|
||||
font-family: "PingFangSC-Regular";
|
||||
color: #666;
|
||||
letter-spacing: 0;
|
||||
font-weight: 400;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
word-break: break-all;
|
||||
}
|
||||
.ant-input-group.ant-input-group-compact.copy-url .copy-svg {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
padding: 0 5px;
|
||||
background: #fff;
|
||||
font-size: 1rem !important;
|
||||
border: 1px solid #d9d9d9;
|
||||
border-left: 0;
|
||||
color: #466aff;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.wiki-url-type .ant-select-dropdown-menu-item {
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
.wiki-nav {
|
||||
min-height: 300px;
|
||||
padding: 20px 0;
|
||||
background: #ffffff;
|
||||
border: 1px solid rgba(153, 153, 153, 0.22);
|
||||
overflow-y: scroll;
|
||||
flex: none;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
.wiki-nav-title {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
height: 50px;
|
||||
padding: 0 10px 0 10px;
|
||||
font-size: 14px;
|
||||
letter-spacing: 0;
|
||||
font-weight: 400;
|
||||
font-family: "PingFangSC-Regular";
|
||||
border-bottom: 1px solid #eee;
|
||||
line-height: 16px;
|
||||
cursor: pointer;
|
||||
}
|
||||
.wiki-nav-title .delete-title-icon {
|
||||
display: none;
|
||||
}
|
||||
.wiki-nav-title:hover {
|
||||
background-color: #fbfbfb;
|
||||
}
|
||||
.wiki-nav-title:hover .delete-title-icon {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.wiki-nav-title-parent {
|
||||
padding: 0 14px;
|
||||
}
|
||||
.wiki-nav-title-parent:hover {
|
||||
background: #fbfbfb;
|
||||
}
|
||||
|
||||
.wiki-nav-title.active {
|
||||
color: #466aff;
|
||||
}
|
||||
|
||||
.wiki-content-head {
|
||||
margin: 20px 0 20px 20px;
|
||||
padding: 0 20px 20px 0;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
border-bottom: 1px solid #eee;
|
||||
}
|
||||
|
||||
.wiki-content-head-left {
|
||||
width: 90%;
|
||||
}
|
||||
|
||||
.nav-title-left {
|
||||
display: inline-flex;
|
||||
max-width: 90%;
|
||||
}
|
||||
.nav-title-left svg {
|
||||
margin-right: 0.5rem;
|
||||
flex: none;
|
||||
}
|
||||
.nav-title-left .nav-title-left-text {
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
.wiki-detail-title {
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
.wiki-preview {
|
||||
overflow-y: scroll;
|
||||
height: 100%;
|
||||
}
|
||||
.wiki-preview .wiki-body {
|
||||
width: 90%;
|
||||
}
|
||||
.wiki-preview .ant-btn-primary {
|
||||
background-color: #466aff;
|
||||
border-color: #466aff;
|
||||
}
|
||||
.wiki-preview .ant-btn-primary:hover, .wiki-preview .ant-btn-primary:focus, .wiki-preview .ant-btn-primary:active {
|
||||
background-color: #6482ff;
|
||||
}
|
||||
.wiki-preview .preview-head {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
padding: 0 12rem 0 2rem;
|
||||
width: 100%;
|
||||
height: 80px;
|
||||
background: #272f4c;
|
||||
color: #fff;
|
||||
}
|
||||
.wiki-preview .preview-head-left {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
font-size: 24px;
|
||||
cursor: pointer;
|
||||
}
|
||||
.wiki-preview .preview-head-left .icon-wendangyulan_icon {
|
||||
font-size: 24px !important;
|
||||
font-weight: 700;
|
||||
}
|
||||
.wiki-preview .preview-head-right {
|
||||
display: flex;
|
||||
}
|
||||
.wiki-preview .preview-head-right .copy-url {
|
||||
margin-top: 0;
|
||||
}
|
||||
.wiki-preview .preview-head-right .copy-desc {
|
||||
width: 6rem;
|
||||
padding-top: 1px;
|
||||
}
|
||||
.wiki-preview .wiki-nav-title {
|
||||
padding: 0 10px 0 40px;
|
||||
}
|
||||
.wiki-preview .wiki-nav-title.active {
|
||||
background-color: #f3f4f6;
|
||||
}
|
||||
.wiki-preview .wiki-content-head {
|
||||
padding: 10px 20px 10px 20px;
|
||||
}
|
||||
.wiki-preview .wiki-nav {
|
||||
padding: 20px 0;
|
||||
width: 20vw;
|
||||
border-bottom: 0;
|
||||
height: 80vh;
|
||||
}
|
||||
.wiki-preview .wiki-content-detail {
|
||||
padding: 0 40px;
|
||||
}
|
||||
.wiki-preview .wiki-content-detail img {
|
||||
max-width: 100%;
|
||||
}
|
||||
.wiki-preview .ant-btn:hover {
|
||||
background: #f3f4f6;
|
||||
color: #333;
|
||||
border-color: #d0d0d0;
|
||||
}
|
||||
|
||||
/*# sourceMappingURL=Index.css.map */
|
|
@ -1 +0,0 @@
|
|||
{"version":3,"sourceRoot":"","sources":["Index.scss"],"names":[],"mappings":"AAEA;EACE;;;AAEF;EACE;EACA;;;AAEF;EACE;EACA;EACA;;AAEA;EACE,kBAfQ;EAgBR,cAhBQ;;AAiBR;EAGE,kBAnBY;;AAuBhB;AAAA;AAAA;EAGE;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AACA;EACE;;AAIJ;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAIJ;EACE,OA5DQ;EA6DR;;AACA;EACE,OA9DY;;AAkEhB;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA,OApFQ;EAqFR;;AACA;EACE,OAtFY;;AAwFd;EACE;EACA;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;;AAGF;AAAA;EAEE;;AAEF;EACE;;AACA;EACE;;AACA;EACE;;AAEF;EACE;EACA;;AAEF;EAEE;;AAKN;EACE;EACA;;AAGF;EACE;;AAGF;EACE,kBAxIQ;EAyIR,cAzIQ;;AA2IV;AAAA;EAEE,cA7IQ;;AAgJV;EACE,kBAjJQ;;AAoJV;EACE;EACA;;AAGF;AAAA;AAAA;EAGE,cA5JQ;;;AAgKZ;EACE;;;AAGF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;AACA;EACE;EACA;EACA;;AAEF;EACE;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,OAlNQ;EAmNR;;;AAKF;EACE;;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;;AACA;EACE;;;AAKN;EACE;;AACA;EACE;;;AAIJ;EACE,OAzQU;;;AA4QZ;EACE;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;;AACA;EACE;EACA;;AAEF;EACE;EACA;EACA;;;AAIJ;EACE;EACA;EACA;;;AAGF;EACE;EACA;;AACA;EACE;;AAEF;EACE,kBApTQ;EAqTR,cArTQ;;AAsTR;EAGE,kBAxTY;;AA2ThB;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAIJ;EACE;;AAEA;EACE;;AAEF;EACE;EACA;;AAIJ;EACE;;AAEF;EACE;;AAGF;EACE;;AAGF;EACE;EACA;EACA;EACA;;AAEF;EACE;;AACA;EACE;;AAIJ;EACE;EACA;EACA","file":"Index.css"}
|
|
@ -1 +0,0 @@
|
|||
{"version":3,"sourceRoot":"","sources":["index.scss"],"names":[],"mappings":"AAAA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA","file":"index.css"}
|
|
@ -1,32 +0,0 @@
|
|||
.hide-file-icon.ant-tree.ant-tree-directory li span.ant-tree-switcher {
|
||||
display: none !important;
|
||||
}
|
||||
.hide-file-icon.ant-tree.ant-tree-directory .ant-tree-node-content-wrapper {
|
||||
display: inline-flex;
|
||||
width: 100%;
|
||||
}
|
||||
.hide-file-icon.ant-tree.ant-tree-directory .tree-title-icon {
|
||||
display: none;
|
||||
}
|
||||
.hide-file-icon.ant-tree.ant-tree-directory .ant-tree-node-content-wrapper:hover .tree-title-icon {
|
||||
transition: all 0.3s;
|
||||
display: inline-block;
|
||||
}
|
||||
.hide-file-icon.ant-tree.ant-tree-directory.ant-tree.ant-tree-directory > li.ant-tree-treenode-selected > span.ant-tree-node-content-wrapper::before, .hide-file-icon.ant-tree.ant-tree-directory.ant-tree.ant-tree-directory .ant-tree-child-tree > li.ant-tree-treenode-selected > span.ant-tree-node-content-wrapper::before {
|
||||
background: #fff;
|
||||
margin-top: -3px;
|
||||
}
|
||||
.hide-file-icon.ant-tree.ant-tree-directory.ant-tree.ant-tree-directory > li span.ant-tree-node-content-wrapper::before, .hide-file-icon.ant-tree.ant-tree-directory.ant-tree.ant-tree-directory .ant-tree-child-tree > li span.ant-tree-node-content-wrapper::before {
|
||||
margin-top: -3px;
|
||||
}
|
||||
.hide-file-icon.ant-tree.ant-tree-directory > li span.ant-tree-node-content-wrapper.ant-tree-node-selected,
|
||||
.hide-file-icon.ant-tree.ant-tree-directory .ant-tree-child-tree > li span.ant-tree-node-content-wrapper.ant-tree-node-selected {
|
||||
color: #2a61ff;
|
||||
}
|
||||
.hide-file-icon.ant-tree.ant-tree-directory .ant-tree-title {
|
||||
display: inline-flex;
|
||||
justify-content: space-between;
|
||||
flex: auto;
|
||||
}
|
||||
|
||||
/*# sourceMappingURL=index.css.map */
|
|
@ -1 +0,0 @@
|
|||
{"version":3,"sourceRoot":"","sources":["index.scss"],"names":[],"mappings":"AACE;EACE;;AASF;EACE;EACA;;AAGF;EACE;;AAGF;EACE;EACA;;AAGF;EAOE;EACA;;AAGF;EAKE;;AAGF;AAAA;EAIE;;AAKF;EACE;EACA;EACA","file":"index.css"}
|
|
@ -1,6 +1,6 @@
|
|||
import * as React from 'react';
|
||||
import classNames from 'classnames';
|
||||
import { Icon, Tree } from 'antd';
|
||||
import { Tree } from 'antd';
|
||||
import omit from 'omit.js';
|
||||
import debounce from 'lodash/debounce';
|
||||
import { conductExpandParent, convertTreeToEntities } from 'rc-tree/lib/util';
|
||||
|
|
|
@ -1 +0,0 @@
|
|||
{"version":3,"sourceRoot":"","sources":["index.scss"],"names":[],"mappings":"AACE;EACE;EACA;EACA;;AAEF;EACE;;AAEF;EACE;;AAEF;EACE;;AAEF;EACE;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEF;EACE;EACA;EACA;;AAEF;EACE;EACA;EACA;EACA;;AAEF;EACE;EACA;EACA;;AACA;EACE;;AAGJ;EACE;EACA;;AACA;EACE","file":"index.css"}
|
|
@ -1,56 +0,0 @@
|
|||
.myself-modal .ant-modal-header {
|
||||
padding: 9px 24px;
|
||||
background: #f8f8f8;
|
||||
border-bottom: 1px solid #eee;
|
||||
}
|
||||
.myself-modal .ant-modal-title {
|
||||
text-align: left;
|
||||
}
|
||||
.myself-modal .ant-modal-close {
|
||||
top: 0px !important;
|
||||
}
|
||||
.myself-modal .ant-modal-close-x {
|
||||
font-size: 24px;
|
||||
}
|
||||
.myself-modal .ant-modal-body {
|
||||
text-align: center;
|
||||
}
|
||||
.myself-modal .delete-title {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
margin: 2rem 0 1rem !important;
|
||||
font-size: 16px;
|
||||
color: #333;
|
||||
letter-spacing: 0;
|
||||
line-height: 29px;
|
||||
font-weight: 400;
|
||||
}
|
||||
.myself-modal .red-circle {
|
||||
align-self: flex-start;
|
||||
color: #ca0002;
|
||||
font-size: 1.5rem !important;
|
||||
}
|
||||
.myself-modal .delete-descibe {
|
||||
font-size: 14px;
|
||||
color: #666;
|
||||
line-height: 33px;
|
||||
font-weight: 400;
|
||||
}
|
||||
.myself-modal .ant-modal-footer {
|
||||
padding: 2rem 0;
|
||||
text-align: center;
|
||||
border: 0;
|
||||
}
|
||||
.myself-modal .ant-modal-footer .ant-btn {
|
||||
width: 6rem;
|
||||
}
|
||||
.myself-modal .foot-submit {
|
||||
margin-left: 3rem;
|
||||
color: #df0002;
|
||||
}
|
||||
.myself-modal .foot-submit:hover {
|
||||
border-color: #df0002;
|
||||
}
|
||||
|
||||
/*# sourceMappingURL=index.css.map */
|
|
@ -1 +0,0 @@
|
|||
{"version":3,"sourceRoot":"","sources":["index.scss"],"names":[],"mappings":"AACE;EACE;EACA;EACA;;AAEF;EACE;;AAEF;EACE;;AAEF;EACE;;AAEF;EACE;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEF;EACE;EACA;EACA;;AAEF;EACE;EACA;EACA;EACA;;AAEF;EACE;EACA;EACA;;AACA;EACE;;AAGJ;EACE;EACA;;AACA;EACE","file":"index.css"}
|
|
@ -1 +0,0 @@
|
|||
{"version":3,"sourceRoot":"","sources":["Index.scss"],"names":[],"mappings":"AACA;EACE;EACA;EACA,SAJI;EAKJ;EACA;;AACA;EACE;;AAEF;EACE,SAXE;EAYF;;AAEF;EACE;EACA;EACA;EACA,SAlBE;EAmBF;;AAEF;EACE;EACA;;;AAIJ;EACE;;AACA;EACE;EACA;EACA;;;AAGJ;EACE;;AACA;EACE;EACA,SAvCE;EAwCF;EACA;EACA;;AACA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AACA;EACE;EACA;;AAIN;EACE,SA1DE;EA2DF;EACA;EACA;EACA;EACA;;AAEF;EACE;EACA;;;AAGJ;EACE;EACA;EACA;;AACA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AACA;EACE;EACA;EACA;EACA;;AAEF;EACE;EACA;EACA;;AAEF;EACE;;;AAIN;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAEF;EACE;EACA;EACA;EACA;EACA;;;AAEF;EACE;EACA;EACA;EACA;EACA;;AACA;EACE;EACA;EACA;;AAEF;EACE;EACA;;AAEF;EACE;;;AAGJ;EACE;EACA;;AACA;EACE;EACA;EACA;;AAEF;EACE;EACA;EACA;EACA;;AACA;EACE;EACA;EACA;;AACA;EACE;;AAEF;EACE;;;AAKR;EACE;EACA;;AACA;EACE;EACA;EACA;EACA;EACA;;;AAGJ;EACE;EACA;;AACA;EACE;EACA;EACA;EACA;;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;;AACA;EACE;EACA;;AAEF;EACE;EACA;;;AAGJ;EACE;EACA;;AACA;EACE;EACA;EACA;EACA;;;AAKF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAEE;EACE;EACA;;AAGJ;EACE;EACA;EACA;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;EACA","file":"Index.css"}
|
|
@ -115,11 +115,11 @@ class InfosUser extends Component {
|
|||
|
||||
newItem =()=> (
|
||||
<Menu>
|
||||
<Menu.Item key="created_mirror">
|
||||
<CheckProfile {...this.props} sureFunc={()=>{this.props.history.push('/projects/mirror/new')}}>新建镜像项目</CheckProfile>
|
||||
</Menu.Item>
|
||||
<Menu.Item key="created_deposit">
|
||||
<CheckProfile {...this.props} sureFunc={()=>{this.props.history.push('/projects/deposit/new')}} >新建托管项目</CheckProfile>
|
||||
<CheckProfile {...this.props} sureFunc={()=>{this.props.history.push('/projects/deposit/new')}} >新建项目</CheckProfile>
|
||||
</Menu.Item>
|
||||
<Menu.Item key="created_mirror">
|
||||
<CheckProfile {...this.props} sureFunc={()=>{this.props.history.push('/projects/mirror/new')}}>导入项目</CheckProfile>
|
||||
</Menu.Item>
|
||||
</Menu>
|
||||
);
|
||||
|
|
|
@ -6,7 +6,7 @@ function TeamItem({item,history}){
|
|||
<div onClick={()=>{history.push(`/${item.name}`)}} style={{cursor:"pointer"}}>
|
||||
<div className="imgBox"><img alt="" src={getImageUrl(`/${item.avatar_url}`)}/></div>
|
||||
<div style={{flex:'1'}}>
|
||||
<span className="mb5 font-18 color-grey-3 task-hide">{item.name}</span>
|
||||
<span className="mb5 font-18 color-grey-3 task-hide">{item.nickname}</span>
|
||||
<div className="task-hide-2 teamdesc">
|
||||
{item.description}
|
||||
</div>
|
||||
|
|
Binary file not shown.
After Width: | Height: | Size: 136 B |
|
@ -392,9 +392,6 @@ a.white-btn.use_scope-btn:hover{
|
|||
border-color: #096dd9;
|
||||
}
|
||||
|
||||
/*.ant-btn:hover, .ant-btn:focus, .ant-btn:active, .ant-btn.active{*/
|
||||
/* background-color: #4CACFF;*/
|
||||
/*}*/
|
||||
|
||||
.newViewAfter .ant-input{
|
||||
line-height: 40px !important;
|
||||
|
|
Loading…
Reference in New Issue