This commit is contained in:
caishi 2023-04-25 18:09:55 +08:00
parent ed39cd2945
commit 122c13fc28
13 changed files with 324 additions and 86 deletions

46
package-lock.json generated
View File

@ -160,7 +160,7 @@
},
"source-map": {
"version": "0.5.7",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
"resolved": "https://registry.nlark.com/source-map/download/source-map-0.5.7.tgz",
"integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w="
}
}
@ -1296,13 +1296,13 @@
"dependencies": {
"inherits": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz",
"resolved": "https://registry.nlark.com/inherits/download/inherits-2.0.1.tgz",
"integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=",
"dev": true
},
"util": {
"version": "0.10.3",
"resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz",
"resolved": "https://registry.nlark.com/util/download/util-0.10.3.tgz",
"integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=",
"dev": true,
"requires": {
@ -2561,7 +2561,7 @@
"dependencies": {
"define-property": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
"resolved": "https://registry.nlark.com/define-property/download/define-property-1.0.0.tgz",
"integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
"requires": {
"is-descriptor": "^1.0.0"
@ -2869,7 +2869,7 @@
"dependencies": {
"resolve": {
"version": "1.1.7",
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz",
"resolved": "https://registry.npm.taobao.org/resolve/download/resolve-1.1.7.tgz",
"integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs="
}
}
@ -3661,7 +3661,7 @@
"dependencies": {
"define-property": {
"version": "0.2.5",
"resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
"resolved": "https://registry.nlark.com/define-property/download/define-property-0.2.5.tgz",
"integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
"requires": {
"is-descriptor": "^0.1.0"
@ -6386,7 +6386,7 @@
},
"path-to-regexp": {
"version": "0.1.7",
"resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
"resolved": "https://registry.nlark.com/path-to-regexp/download/path-to-regexp-0.1.7.tgz?cache=0&sync_timestamp=1618847046445&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fpath-to-regexp%2Fdownload%2Fpath-to-regexp-0.1.7.tgz",
"integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=",
"dev": true
},
@ -6859,7 +6859,7 @@
"dependencies": {
"core-js": {
"version": "1.2.7",
"resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz",
"resolved": "https://registry.npmmirror.com/core-js/download/core-js-1.2.7.tgz",
"integrity": "sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY="
},
"promise": {
@ -8069,7 +8069,7 @@
"dependencies": {
"pify": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
"resolved": "https://registry.nlark.com/pify/download/pify-3.0.0.tgz",
"integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY="
}
}
@ -11630,7 +11630,7 @@
},
"punycode": {
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
"resolved": "https://registry.nlark.com/punycode/download/punycode-1.4.1.tgz",
"integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=",
"dev": true
}
@ -16594,7 +16594,7 @@
"dependencies": {
"jsesc": {
"version": "0.5.0",
"resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz",
"resolved": "https://registry.nlark.com/jsesc/download/jsesc-0.5.0.tgz",
"integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=",
"dev": true
}
@ -17517,7 +17517,7 @@
"dependencies": {
"ms": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
"resolved": "https://registry.npmmirror.com/ms/download/ms-2.0.0.tgz",
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
"dev": true
}
@ -17629,7 +17629,7 @@
"dependencies": {
"extend-shallow": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
"resolved": "https://registry.nlark.com/extend-shallow/download/extend-shallow-2.0.1.tgz",
"integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
"requires": {
"is-extendable": "^0.1.0"
@ -18110,7 +18110,7 @@
},
"define-property": {
"version": "0.2.5",
"resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
"resolved": "https://registry.nlark.com/define-property/download/define-property-0.2.5.tgz",
"integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
"requires": {
"is-descriptor": "^0.1.0"
@ -18118,7 +18118,7 @@
},
"extend-shallow": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
"resolved": "https://registry.nlark.com/extend-shallow/download/extend-shallow-2.0.1.tgz",
"integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
"requires": {
"is-extendable": "^0.1.0"
@ -18126,7 +18126,7 @@
},
"source-map": {
"version": "0.5.7",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
"resolved": "https://registry.nlark.com/source-map/download/source-map-0.5.7.tgz",
"integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w="
}
}
@ -18143,7 +18143,7 @@
"dependencies": {
"define-property": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
"resolved": "https://registry.nlark.com/define-property/download/define-property-1.0.0.tgz",
"integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
"requires": {
"is-descriptor": "^1.0.0"
@ -20018,7 +20018,7 @@
"dependencies": {
"inherits": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
"resolved": "https://registry.nlark.com/inherits/download/inherits-2.0.3.tgz",
"integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
"dev": true
}
@ -20394,7 +20394,7 @@
"dependencies": {
"extend-shallow": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
"resolved": "https://registry.nlark.com/extend-shallow/download/extend-shallow-2.0.1.tgz",
"integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
"dev": true,
"requires": {
@ -20575,7 +20575,7 @@
},
"fill-range": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
"resolved": "https://registry.npm.taobao.org/fill-range/download/fill-range-4.0.0.tgz",
"integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=",
"dev": true,
"requires": {
@ -20587,7 +20587,7 @@
"dependencies": {
"extend-shallow": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
"resolved": "https://registry.nlark.com/extend-shallow/download/extend-shallow-2.0.1.tgz",
"integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
"dev": true,
"requires": {
@ -20653,7 +20653,7 @@
},
"is-number": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
"resolved": "https://registry.nlark.com/is-number/download/is-number-3.0.0.tgz",
"integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
"dev": true,
"requires": {
@ -20662,7 +20662,7 @@
"dependencies": {
"kind-of": {
"version": "3.2.2",
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
"resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz",
"integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
"dev": true,
"requires": {

View File

@ -1,8 +1,8 @@
@font-face {
font-family: "iconfont"; /* Project id 2340181 */
src: url('iconfont.woff2?t=1680498859493') format('woff2'),
url('iconfont.woff?t=1680498859493') format('woff'),
url('iconfont.ttf?t=1680498859493') format('truetype');
src: url('iconfont.woff2?t=1682403222759') format('woff2'),
url('iconfont.woff?t=1682403222759') format('woff'),
url('iconfont.ttf?t=1682403222759') format('truetype');
}
.iconfont {
@ -13,6 +13,38 @@
-moz-osx-font-smoothing: grayscale;
}
.icon-cangkuyuyanicon:before {
content: "\e962";
}
.icon-dongtaiicon1:before {
content: "\e963";
}
.icon-jingxuanxiangmu:before {
content: "\e964";
}
.icon-zuzhichengyuan1:before {
content: "\e965";
}
.icon-zuzhijieshao:before {
content: "\e966";
}
.icon-zuzhituandui:before {
content: "\e967";
}
.icon-shezhi6:before {
content: "\e968";
}
.icon-zidingyi:before {
content: "\e969";
}
.icon-a-zu37:before {
content: "\e961";
}

File diff suppressed because one or more lines are too long

View File

@ -5,6 +5,62 @@
"css_prefix_text": "icon-",
"description": "",
"glyphs": [
{
"icon_id": "34965902",
"name": "仓库语言icon",
"font_class": "cangkuyuyanicon",
"unicode": "e962",
"unicode_decimal": 59746
},
{
"icon_id": "34965903",
"name": "动态icon",
"font_class": "dongtaiicon1",
"unicode": "e963",
"unicode_decimal": 59747
},
{
"icon_id": "34965904",
"name": "精选项目",
"font_class": "jingxuanxiangmu",
"unicode": "e964",
"unicode_decimal": 59748
},
{
"icon_id": "34965905",
"name": "组织成员",
"font_class": "zuzhichengyuan1",
"unicode": "e965",
"unicode_decimal": 59749
},
{
"icon_id": "34965906",
"name": "组织介绍",
"font_class": "zuzhijieshao",
"unicode": "e966",
"unicode_decimal": 59750
},
{
"icon_id": "34965907",
"name": "组织团队",
"font_class": "zuzhituandui",
"unicode": "e967",
"unicode_decimal": 59751
},
{
"icon_id": "34965908",
"name": "设置",
"font_class": "shezhi6",
"unicode": "e968",
"unicode_decimal": 59752
},
{
"icon_id": "34965909",
"name": "自定义",
"font_class": "zidingyi",
"unicode": "e969",
"unicode_decimal": 59753
},
{
"icon_id": "34875122",
"name": "组 37",

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -1,7 +1,6 @@
.top-orz{
background-color:#f9fbfe;
box-shadow:0px 8px 20px rgba(17, 35, 146, 0.06);
margin-bottom: 40px;
.box{
width: 1200px;
display: flex;
@ -84,19 +83,79 @@
margin:0px auto;
padding-top:18px;
}
.content-orz{
background-color:#f3f5f8;
}
.content-orz .list{
display: flex;
align-items: flex-start;
width: 1200px;
margin:0px auto;
padding-top: 40px;
.list-l{
background-color: #fff;
background-image: url('./images/left-bc.png');
background-size: 100%;
max-width: 860px;
width: 72%;
margin-bottom: 30px;
border:1px solid #eee;
padding:30px;
.newstatus{
padding-bottom: 20px;
border-bottom: 1px dashed rgba(170, 175, 190, 1);
.desc{
color:#4c5876;
font-size:14px;
line-height:26px;
}
.title{
height:22px;
line-height:22px;
color:#1f2329;
font-size:16px;
margin:20px auto 14px!important;
}
.name{
height:24px;
span{
font-weight:700;
color:#1f2329;
font-size:17px;
}
i{
margin-right: 4px;
color:rgba(31, 35, 41, 1);
}
}
}
.sepment{
text-align: center;
margin:30px auto 20px;
.ant-radio-group{
box-shadow:0px 0px 10px rgba(30, 47, 162, 0.09);
.ant-radio-button-wrapper{
border:none;
background-color: #fff;
line-height: 34px;
&:first-child{
padding:3px 0px 3px 3px;
}
&:last-child{
padding:3px 3px 3px 0px;
}
span{
background-color:rgba(30, 47, 162, 0.09) ;
display: block;
}
}
.ant-radio-button-wrapper-checked{
background-color:#466aff;
color: #fff;
}
}
}
.head{
padding:16px 32px;
padding:16px 0px;
border-bottom: 1px solid #eee;
display: flex;
justify-content: space-between;
@ -116,7 +175,6 @@
}
}
.team{
padding:0px 32px;
min-height: 450px;
.team_project{
padding:22px 0px;
@ -459,4 +517,13 @@
}
}
}
}
.overviewcontent{
.ConcentrateTip{
margin:20px 0px 0px 0px!important;
}
.concentrateUl li{
border-color:#cddbeb!important;
border-radius:4px;
}
}

View File

@ -7,7 +7,8 @@ import Item from './ListItem';
import Right from './RightBox';
import NoData from '../Nodata';
import CheckProfile from '../Component/ProfileModal/Profile';
import { Menu , Pagination , Dropdown , Spin } from 'antd';
import { Menu , Pagination , Dropdown , Spin , Tabs , Radio } from 'antd';
import ConcentrateProject from '../users/GeneralView/ConcentrateProject';
import { getImageUrl } from 'educoder';
import axios from 'axios';
@ -20,8 +21,11 @@ function List(props){
const [ page , setPage ] = useState(1);
const [ sortBy , setSortBy ] = useState("updated_on");
const [ organizeDetail , setOrganizeDetail ] = useState(undefined);
const [ mode , setMode ] = useState("overview");
const OIdentifier = props.match.params.OIdentifier;
const { current_user } = props;
console.log(props);
useEffect(()=>{
if(OIdentifier){
@ -47,11 +51,11 @@ function List(props){
},[organizeDetail])
useEffect(()=>{
if(OIdentifier){
if(OIdentifier && mode==="subject"){
setIsSpin(true);
getProject();
}
},[OIdentifier,sortBy,page,search])
},[OIdentifier,sortBy,page,search,mode])
function getProject(){
const url = `/organizations/${OIdentifier}/projects.json`;
@ -92,8 +96,14 @@ function List(props){
</li>
</ul>
)
function changeRadio(e){
setMode(e.target.value);
}
return(
organizeDetail ?
<div className="content-orz">
<div className="top-orz">
<div className="box">
@ -111,43 +121,94 @@ function List(props){
</div>
<div className="list">
<div className="list-l">
<div>
<div className="head">
<div style={{width:"370px"}}>
<Search placeholder="输入仓库名称进行搜索" onSearch={onSearch}/>
</div>
<p>
{ organizeDetail && organizeDetail.can_create_project ?
<Sort menu={menu_new} overlayClassName={"newPopUl"}>
<a className="addBtn mr30">+&nbsp;新建项目</a>
</Sort>
:""}
<Dropdown overlay={menu}>
<a className="color-blue">排序<i className="iconfont icon-sanjiaoxing-down ml3 font-14"></i></a>
</Dropdown>
</p>
{
organizeDetail.news_title &&
<div className="newstatus">
<p className="name"><i className="iconfont icon-dongtaiicon1" /><span>新闻动态</span></p>
<p className="title">
{organizeDetail.news_title}
</p>
<div className="desc">
{organizeDetail.news_content}
</div>
<Spin spinning={isSpin}>
<div className="team">
{
list && list.length>0 ? list.map((item,key)=>{
return(
<Item item={item} keu={key} OIdentifier={OIdentifier}/>
)
})
:
<NoData _html="暂无数据"/>
}
</div>
</Spin>
</div>
{
totalCount > limit &&
<div className="mb20 mt20" style={{textAlign:"center"}}>
<Pagination simple current={page} total={totalCount} pageSize={limit} onChange={(page)=>setPage(page)}/>
</div>
}
}
<div className="sepment" onChange={changeRadio} >
<Radio.Group size="large" value={mode}>
<Radio.Button value="overview" style={{width:"130px"}}>概览</Radio.Button>
<Radio.Button value="subject" style={{width:"130px"}}>仓库</Radio.Button>
</Radio.Group>
</div>
{
mode === "overview" &&
<div className="overviewcontent">
<ConcentrateProject
{...props}
title={
<p className="names">
<i className="iconfont icon-jingxuanxiangmu font-17 mr8"></i>
<span className="font-17">精选项目</span>
</p>
}
btn={
<span><i className="iconfont icon-zidingyi font-14 mr5"></i>自定义</span>
}
userLogin={OIdentifier}
type="organizations"
current={organizeDetail.is_admin}
/>
<div>
<p className="mt30 mb10">
<i className="iconfont icon-zuzhijieshao mr4"></i>
<span className="font-17">组织介绍</span>
</p>
<div style={{color:"#4c5876",lineHeight:"30px",wordBreak:"break-all",textAlign:"justify"}}>{organizeDetail.description}</div>
</div>
</div>
}
{
mode === "subject" &&
<div>
<div>
<div className="head">
<div style={{width:"370px"}}>
<Search placeholder="输入仓库名称进行搜索" onSearch={onSearch}/>
</div>
<p>
{ organizeDetail && organizeDetail.can_create_project ?
<Sort menu={menu_new} overlayClassName={"newPopUl"}>
<a className="addBtn mr30">+&nbsp;新建项目</a>
</Sort>
:""}
<Dropdown overlay={menu}>
<a className="color-blue">排序<i className="iconfont icon-sanjiaoxing-down ml3 font-14"></i></a>
</Dropdown>
</p>
</div>
<Spin spinning={isSpin}>
<div className="team">
{
list && list.length>0 ? list.map((item,key)=>{
return(
<Item item={item} keu={key} OIdentifier={OIdentifier}/>
)
})
:
<NoData _html="暂无数据"/>
}
</div>
</Spin>
</div>
{
totalCount > limit &&
<div className="mb20 mt20" style={{textAlign:"center"}}>
<Pagination simple current={page} total={totalCount} pageSize={limit} onChange={(page)=>setPage(page)}/>
</div>
}
</div>
}
</div>
<Right
admin={organizeDetail && organizeDetail.is_admin}
OIdentifier={OIdentifier}
@ -157,6 +218,7 @@ function List(props){
/>
</div>
</div>
:""
)
}
export default List;

Binary file not shown.

After

Width:  |  Height:  |  Size: 125 KiB

View File

@ -5,7 +5,7 @@ import CheckProfile from '../../Component/ProfileModal/Profile';
const { Search } = Input;
const limit = 20;
function ConcentrateBox({ visible , onCancel , onSure , username , choosed , history , showCompeleteDialog , completeProfile }) {
function ConcentrateBox({ visible , onCancel , onSure , type , username , choosed , history , showCompeleteDialog , completeProfile }) {
const [ page , setPage ]= useState(1);
const [ total , setTotal ]= useState(0);
const [ pageSize , setPageSize ] = useState(false);
@ -54,7 +54,7 @@ function ConcentrateBox({ visible , onCancel , onSure , username , choosed , his
},[value])
function getProjectList(p,s) {
const url = `/users/${username}/projects.json`;
const url = `/${type || `users`}/${username}/projects.json`;
Axios.get(url,{
params:{
page:p,limit,is_public: "public",search:s,choosed
@ -152,15 +152,16 @@ function ConcentrateBox({ visible , onCancel , onSure , username , choosed , his
{
copyList && copyList.length >0 && copyList.map((i,k)=>{
return(
<Checkbox value={i.id} disabled={disable && (value.filter(j=>j === i.id).length===0)}>{i.author && i.author.name}/{i.name}</Checkbox>
<Checkbox value={i.id} disabled={disable && (value.filter(j=>j === i.id).length===0)}>{i.author && `${i.author.name}/`}{i.name}</Checkbox>
)
})
}
{
list && list.length > 0 && list.map((i,k)=>{
console.log(i);
let c = copyList && copyList.length >0 && copyList.filter(j=>j.id === i.id).length !== 0;
return(
!c && <Checkbox value={i.id} disabled={disable && (value.filter(j=>j === i.id).length===0)}>{i.author && i.author.name}/{i.name}</Checkbox>
!c && <Checkbox value={i.id} disabled={disable && (value.filter(j=>j === i.id).length===0)}>{i.author && `${i.author.name}/`}{i.name}</Checkbox>
)
})
}

View File

@ -3,8 +3,18 @@ import { FlexAJ , AlignCenter } from '../../Component/layout';
import { Link } from 'react-router-dom';
import axios from 'axios';
import Box from './ConcentrateBox';
import './Index.scss';
function ConcentrateProject({userLogin,current,showCompeleteDialog,completeProfile,history}) {
function ConcentrateProject({
userLogin,
current,
showCompeleteDialog,
completeProfile,
history,
type,
title,
btn
}) {
const [ list , setList ] = useState(undefined);
const [ visible , setVisible ] = useState(false);
const [ value , setValue ] = useState([]);
@ -14,7 +24,7 @@ function ConcentrateProject({userLogin,current,showCompeleteDialog,completeProfi
},[])
function getList() {
const url = `/users/${userLogin}/is_pinned_projects.json`;
const url = `/${type || `users`}/${userLogin}/is_pinned_projects.json`;
axios.get(url).then(result=>{
if(result && result.data){
let p = result.data.projects;
@ -33,7 +43,7 @@ function ConcentrateProject({userLogin,current,showCompeleteDialog,completeProfi
if(is_pinned_project_ids && is_pinned_project_ids.length===0){
setValue([]);
}
const url = `/users/${userLogin}/is_pinned_projects/pin.json`;
const url = `/${type || `users`}/${userLogin}/is_pinned_projects/pin.json`;
axios.post(url,{
is_pinned_project_ids
}).then(result=>{
@ -54,14 +64,21 @@ function ConcentrateProject({userLogin,current,showCompeleteDialog,completeProfi
completeProfile={completeProfile}
showCompeleteDialog={showCompeleteDialog}
history={history}
type={type}
/>
{
list && list.length>0 &&
<div className="concentrate">
<FlexAJ>
<span className="font-18">精选项目</span>
{ current && <a className="color-blue" onClick={()=>setVisible(true)}>自定义精选项目</a> }
{
title || <span className="font-18">精选项目</span>
}
{ current &&
<a className="color-blue" onClick={()=>setVisible(true)}>
{btn || "自定义精选项目"}
</a>
}
</FlexAJ>
{
list && list.length>0 &&
<div>
<ul className="concentrateUl">
{
@ -71,12 +88,12 @@ function ConcentrateProject({userLogin,current,showCompeleteDialog,completeProfi
<Link to={`/${i.author && i.author.login}/${i.identifier}`} className="name">{i.name}</Link>
<p className="task-hide desc">{i.description}</p>
{/* 项目标签 */}
{i.topics && <div className='viewProListTopics'>
{i.topics && <div className='viewProListTopics mt10'>
{i.topics.map(item=><Link to={`/explore/topic/${item.id}/${encodeURIComponent(item.name)}`} className='viewProListTopic mr15 font-13 task-hide'>{item.name}</Link>)}
</div>}
<AlignCenter>
{ i.category && <span className="tagName">{i.category.name}</span> }
<span className="pariseCount"><i className="iconfont icon-xingzhuang"></i>{i.watchers_count}</span>
<span className="pariseCount ml2"><i className="iconfont icon-xingzhuang"></i>{i.watchers_count}</span>
<span className="forkCount"><i className="iconfont icon-morenfuke_icon1"></i>{i.forked_count}</span>
</AlignCenter>
</li>
@ -85,8 +102,8 @@ function ConcentrateProject({userLogin,current,showCompeleteDialog,completeProfi
}
</ul>
</div>
</div>
}
</div>
{
list && list.length === 0 && current && <div className="ConcentrateTip"><i className="iconfont icon-tishi2"></i>你还没有设置精选项目<a onClick={()=>setVisible(true)}>点击设置</a></div>
}

View File

@ -18,14 +18,16 @@
}
.name{
font-size: 16px;
// color: #4CACFF;
color: $primary-color;
height: 20px;
line-height: 20px;
&:hover{
color: $primary-color-hover;
}
}
.desc{
color: #999;
line-height: 21px;
}
.tagName{
display: block;
@ -36,6 +38,7 @@
height: 22px;
line-height: 22px;
font-size: 13px;
margin-right: 20px;
}
.pariseCount,.forkCount{
i{
@ -43,7 +46,7 @@
margin-right: 4px;
}
color: #999;
margin-left: 20px;
margin-right: 20px;
}
}
}
@ -152,13 +155,13 @@
display: flex;
flex-wrap: wrap;
.viewProListTopic{
background-color:#f3f8ff;
background-color:rgba(70, 106, 255, 0.12);
border-radius: 4px;
max-width: 158px;
padding: 0 10px;
height: 24px;
line-height: 24px;
color: #4c5b76;
color:#466aff;
margin-bottom: 5px !important;
}
}