update
This commit is contained in:
parent
ed39cd2945
commit
122c13fc28
|
|
@ -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": {
|
||||
|
|
|
|||
|
|
@ -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
|
|
@ -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.
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
@ -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">+ 新建项目</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">+ 新建项目</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 |
|
|
@ -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>
|
||||
)
|
||||
})
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue