diff --git a/.idea/workspace.xml b/.idea/workspace.xml index aed6ebd4..666fc5b7 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -4,8 +4,52 @@ + @@ -344,6 +400,8 @@ + + @@ -376,7 +434,7 @@ - + + + + + file://$PROJECT_DIR$/src/forge/Main/CoderDepot.jsx + 409 + + + + + diff --git a/public/css/edu-common.css b/public/css/edu-common.css index 96a8277d..56790f05 100755 --- a/public/css/edu-common.css +++ b/public/css/edu-common.css @@ -114,14 +114,6 @@ a:visited { color: #898989; } -a:hover { - color: #FF7500; -} - -a:hover.fa { - color: #FF7500; -} - input, textarea, select { diff --git a/public/css/edu-main.css b/public/css/edu-main.css index 3cbe5fcb..1d995903 100644 --- a/public/css/edu-main.css +++ b/public/css/edu-main.css @@ -97,10 +97,6 @@ a:visited { color: #05101a; } -a:hover { - color: #459be5; -} - ol, ul, li { diff --git a/public/css/edu-purge.css b/public/css/edu-purge.css index 4dfc7bb8..57d5dbb2 100644 --- a/public/css/edu-purge.css +++ b/public/css/edu-purge.css @@ -1363,6 +1363,10 @@ a:visited { color: #05101a; } +/*a:hover {*/ +/* color: #2A61FF!important;*/ +/*}*/ + ol, ul, li { @@ -1469,7 +1473,7 @@ a.edu-txt-w80, /*隐藏*/ .none { - display: none + display: none!important; } .block { @@ -1605,7 +1609,7 @@ a.decoration { } .mt6 { - margin-top: 6px; + margin-top: 3px; } .mt7 { @@ -2467,30 +2471,24 @@ a.hoverLine:hover{ a.color-grey-name:hover, a.color-dark:hover, a.color-grey-6:hover, -a.color-grey-3:hover { - color: #4cacff !important; -} - -a.color-grey-9:hover, -a.color-grey-8:hover, -a.color-grey-c:hover { - color: #111C24 !important; +a.color-grey-3:hover,a.color-ooo span:hover{ + color: #466AFF !important; } /*蓝色*/ -.color-blue, .color-green-file{ +.color-blue, .color-blue-file{ color: #4CACFF !important; } + +.color-blue { + color: #2A61FF !important; +} /* 绿色 */ /*主*/ .color-blue_4C { color: #4CACFF !important; } -a.color-blue:hover, -a.color-blue_4C:hover { - color: #459BE6 !important; -} /*橙色*/ .color-orange { diff --git a/public/css/iconfont.css b/public/css/iconfont.css index a15df586..87b78814 100644 --- a/public/css/iconfont.css +++ b/public/css/iconfont.css @@ -1,8 +1,8 @@ @font-face { font-family: "iconfont"; /* Project id 2340181 */ - src: url('iconfont.woff2?t=1628841816999') format('woff2'), - url('iconfont.woff?t=1628841816999') format('woff'), - url('iconfont.ttf?t=1628841816999') format('truetype'); + src: url('iconfont.woff2?t=1629875571487') format('woff2'), + url('iconfont.woff?t=1629875571487') format('woff'), + url('iconfont.ttf?t=1629875571487') format('truetype'); } .iconfont { @@ -13,6 +13,74 @@ -moz-osx-font-smoothing: grayscale; } +.icon-xiangmugonggao:before { + content: "\e8c2"; +} + +.icon-chengguo:before { + content: "\e8c3"; +} + +.icon-chengjiaogonggao:before { + content: "\e8c0"; +} + +.icon-jishuzichan:before { + content: "\e8c1"; +} + +.icon-feibiaogonggao:before { + content: "\e8bc"; +} + +.icon-zhongbiaogonggao:before { + content: "\e8bd"; +} + +.icon-gengzhenggonggao:before { + content: "\e8be"; +} + +.icon-zhaobiaogonggao:before { + content: "\e8bf"; +} + +.icon-wenjian6:before { + content: "\e8ba"; +} + +.icon-wenjianjia4:before { + content: "\e8bb"; +} + +.icon-quxiaoguanzhu:before { + content: "\e89a"; +} + +.icon-dianzan_icon:before { + content: "\e8a2"; +} + +.icon-wenjian5:before { + content: "\e896"; +} + +.icon-wenjianjia3:before { + content: "\e8a9"; +} + +.icon-fuzhiicon:before { + content: "\e886"; +} + +.icon-zhuye-fill:before { + content: "\e876"; +} + +.icon-daimakuicon:before { + content: "\e884"; +} + .icon-xinjian2:before { content: "\e8b0"; } @@ -29,22 +97,6 @@ content: "\e8a6"; } -.icon-dianzan_icon:before { - content: "\e8ba"; -} - -.icon-quxiaoguanzhu:before { - content: "\e8bb"; -} - -.icon-daimakuicon:before { - content: "\e8a9"; -} - -.icon-zhuyeicon:before { - content: "\e884"; -} - .icon-biaoqianicon:before { content: "\e882"; } @@ -57,10 +109,6 @@ content: "\e885"; } -.icon-fuzhiicon:before { - content: "\e886"; -} - .icon-lianjieicon:before { content: "\e887"; } @@ -93,10 +141,6 @@ content: "\e899"; } -.icon-wenjian5:before { - content: "\e89a"; -} - .icon-tijiaoicon:before { content: "\e89e"; } @@ -105,10 +149,6 @@ content: "\e89f"; } -.icon-wenjianjia3:before { - content: "\e8a2"; -} - .icon-xialaanniu1:before { content: "\e8a4"; } @@ -241,10 +281,6 @@ content: "\e875"; } -.icon-fuzhi_icon:before { - content: "\e876"; -} - .icon-shanchuicon:before { content: "\e877"; } diff --git a/public/css/iconfont.js b/public/css/iconfont.js index 94af421b..4b7d64b3 100644 --- a/public/css/iconfont.js +++ b/public/css/iconfont.js @@ -1 +1 @@ -!function(c){var l,a,h,i,o,z='',t=(t=document.getElementsByTagName("script"))[t.length-1].getAttribute("data-injectcss"),p=function(c,l){l.parentNode.insertBefore(c,l)};if(t&&!c.__iconfont__svg__cssinject__){c.__iconfont__svg__cssinject__=!0;try{document.write("")}catch(c){console&&console.log(c)}}function v(){o||(o=!0,h())}function m(){try{i.documentElement.doScroll("left")}catch(c){return void setTimeout(m,50)}v()}l=function(){var c,l;(l=document.createElement("div")).innerHTML=z,z=null,(c=l.getElementsByTagName("svg")[0])&&(c.setAttribute("aria-hidden","true"),c.style.position="absolute",c.style.width=0,c.style.height=0,c.style.overflow="hidden",l=c,(c=document.body).firstChild?p(l,c.firstChild):c.appendChild(l))},document.addEventListener?~["complete","loaded","interactive"].indexOf(document.readyState)?setTimeout(l,0):(a=function(){document.removeEventListener("DOMContentLoaded",a,!1),l()},document.addEventListener("DOMContentLoaded",a,!1)):document.attachEvent&&(h=l,i=c.document,o=!1,m(),i.onreadystatechange=function(){"complete"==i.readyState&&(i.onreadystatechange=null,v())})}(window); +!function(c){var l,a,h,i,o,z='',t=(t=document.getElementsByTagName("script"))[t.length-1].getAttribute("data-injectcss"),p=function(c,l){l.parentNode.insertBefore(c,l)};if(t&&!c.__iconfont__svg__cssinject__){c.__iconfont__svg__cssinject__=!0;try{document.write("")}catch(c){console&&console.log(c)}}function v(){o||(o=!0,h())}function m(){try{i.documentElement.doScroll("left")}catch(c){return void setTimeout(m,50)}v()}l=function(){var c,l;(l=document.createElement("div")).innerHTML=z,z=null,(c=l.getElementsByTagName("svg")[0])&&(c.setAttribute("aria-hidden","true"),c.style.position="absolute",c.style.width=0,c.style.height=0,c.style.overflow="hidden",l=c,(c=document.body).firstChild?p(l,c.firstChild):c.appendChild(l))},document.addEventListener?~["complete","loaded","interactive"].indexOf(document.readyState)?setTimeout(l,0):(a=function(){document.removeEventListener("DOMContentLoaded",a,!1),l()},document.addEventListener("DOMContentLoaded",a,!1)):document.attachEvent&&(h=l,i=c.document,o=!1,m(),i.onreadystatechange=function(){"complete"==i.readyState&&(i.onreadystatechange=null,v())})}(window); \ No newline at end of file diff --git a/public/css/iconfont.json b/public/css/iconfont.json index 7f25b322..ccad2747 100644 --- a/public/css/iconfont.json +++ b/public/css/iconfont.json @@ -5,6 +5,125 @@ "css_prefix_text": "icon-", "description": "", "glyphs": [ + { + "icon_id": "23791639", + "name": "项目公告", + "font_class": "xiangmugonggao", + "unicode": "e8c2", + "unicode_decimal": 59586 + }, + { + "icon_id": "23791640", + "name": "成果", + "font_class": "chengguo", + "unicode": "e8c3", + "unicode_decimal": 59587 + }, + { + "icon_id": "23791410", + "name": "成交公告", + "font_class": "chengjiaogonggao", + "unicode": "e8c0", + "unicode_decimal": 59584 + }, + { + "icon_id": "23791411", + "name": "技术资产", + "font_class": "jishuzichan", + "unicode": "e8c1", + "unicode_decimal": 59585 + }, + { + "icon_id": "23790928", + "name": "废标公告", + "font_class": "feibiaogonggao", + "unicode": "e8bc", + "unicode_decimal": 59580 + }, + { + "icon_id": "23790929", + "name": "中标公告", + "font_class": "zhongbiaogonggao", + "unicode": "e8bd", + "unicode_decimal": 59581 + }, + { + "icon_id": "23790930", + "name": "更正公告", + "font_class": "gengzhenggonggao", + "unicode": "e8be", + "unicode_decimal": 59582 + }, + { + "icon_id": "23790931", + "name": "招标公告", + "font_class": "zhaobiaogonggao", + "unicode": "e8bf", + "unicode_decimal": 59583 + }, + { + "icon_id": "23732532", + "name": "文件", + "font_class": "wenjian6", + "unicode": "e8ba", + "unicode_decimal": 59578 + }, + { + "icon_id": "23732533", + "name": "文件夹", + "font_class": "wenjianjia4", + "unicode": "e8bb", + "unicode_decimal": 59579 + }, + { + "icon_id": "23642443", + "name": "取消关注", + "font_class": "quxiaoguanzhu", + "unicode": "e89a", + "unicode_decimal": 59546 + }, + { + "icon_id": "23642444", + "name": "点赞_icon", + "font_class": "dianzan_icon", + "unicode": "e8a2", + "unicode_decimal": 59554 + }, + { + "icon_id": "23639530", + "name": "文件", + "font_class": "wenjian5", + "unicode": "e896", + "unicode_decimal": 59542 + }, + { + "icon_id": "23639533", + "name": "文件夹", + "font_class": "wenjianjia3", + "unicode": "e8a9", + "unicode_decimal": 59561 + }, + { + "icon_id": "23639440", + "name": "复制icon", + "font_class": "fuzhiicon", + "unicode": "e886", + "unicode_decimal": 59526 + }, + { + "icon_id": "23639422", + "name": "主页-fill", + "font_class": "zhuye-fill", + "unicode": "e876", + "unicode_decimal": 59510 + }, + { + "icon_id": "23639423", + "name": "代码库icon", + "font_class": "daimakuicon", + "unicode": "e884", + "unicode_decimal": 59524 + }, { "icon_id": "23572260", "name": "新建", @@ -33,34 +152,6 @@ "unicode": "e8a6", "unicode_decimal": 59558 }, - { - "icon_id": "23492900", - "name": "点赞_icon", - "font_class": "dianzan_icon", - "unicode": "e8ba", - "unicode_decimal": 59578 - }, - { - "icon_id": "23492901", - "name": "取消关注", - "font_class": "quxiaoguanzhu", - "unicode": "e8bb", - "unicode_decimal": 59579 - }, - { - "icon_id": "23473151", - "name": "代码库icon", - "font_class": "daimakuicon", - "unicode": "e8a9", - "unicode_decimal": 59561 - }, - { - "icon_id": "23473104", - "name": "主页icon", - "font_class": "zhuyeicon", - "unicode": "e884", - "unicode_decimal": 59524 - }, { "icon_id": "23472253", "name": "标签icon", @@ -82,13 +173,6 @@ "unicode": "e885", "unicode_decimal": 59525 }, - { - "icon_id": "23472257", - "name": "复制icon", - "font_class": "fuzhiicon", - "unicode": "e886", - "unicode_decimal": 59526 - }, { "icon_id": "23472258", "name": "链接icon", @@ -145,13 +229,6 @@ "unicode": "e899", "unicode_decimal": 59545 }, - { - "icon_id": "23472268", - "name": "文件", - "font_class": "wenjian5", - "unicode": "e89a", - "unicode_decimal": 59546 - }, { "icon_id": "23472269", "name": "提交icon", @@ -166,13 +243,6 @@ "unicode": "e89f", "unicode_decimal": 59551 }, - { - "icon_id": "23472271", - "name": "文件夹", - "font_class": "wenjianjia3", - "unicode": "e8a2", - "unicode_decimal": 59554 - }, { "icon_id": "23472272", "name": "下拉按钮", @@ -404,13 +474,6 @@ "unicode": "e875", "unicode_decimal": 59509 }, - { - "icon_id": "23046262", - "name": "复制_icon", - "font_class": "fuzhi_icon", - "unicode": "e876", - "unicode_decimal": 59510 - }, { "icon_id": "23046268", "name": "删除icon", diff --git a/public/css/iconfont.ttf b/public/css/iconfont.ttf index 484348ba..d5ab3e69 100644 Binary files a/public/css/iconfont.ttf and b/public/css/iconfont.ttf differ diff --git a/public/css/iconfont.woff b/public/css/iconfont.woff index bfdd0b9c..da176db8 100644 Binary files a/public/css/iconfont.woff and b/public/css/iconfont.woff differ diff --git a/public/css/iconfont.woff2 b/public/css/iconfont.woff2 index 386dde00..1e2afa08 100644 Binary files a/public/css/iconfont.woff2 and b/public/css/iconfont.woff2 differ diff --git a/src/college/colleagecss/colleage.css b/src/college/colleagecss/colleage.css index 9220b8ac..65f32322 100644 --- a/src/college/colleagecss/colleage.css +++ b/src/college/colleagecss/colleage.css @@ -218,7 +218,7 @@ a:hover { } .color-blue { - color: #4CACFF; + color: #2A61FF; } .color-huang { diff --git a/src/common/UrlTool.js b/src/common/UrlTool.js index 07e141eb..f1800a75 100644 --- a/src/common/UrlTool.js +++ b/src/common/UrlTool.js @@ -18,6 +18,23 @@ export function getImageUrl(path) { return `${path}`; } +export function numFormat(num, digits){ + let d = digits || 1; + var si = [ + { value: 1, symbol: "" }, + { value: 1E3, symbol: "k" }, + { value: 1E4, symbol: "W" } + ]; + var rx = /\.0+$|(\.[0-9]*[1-9])0+$/; + var i; + for (i = si.length - 1; i > 0; i--) { + if (num >= si[i].value) { + break; + } + } + return (num / si[i].value).toFixed(d).replace(rx, "$1") + si[i].symbol; +} + export function getImage(path) { // https://www.educoder.net // https://testbdweb.trustie.net diff --git a/src/common/educoder.js b/src/common/educoder.js index c6eaf176..1a063d82 100644 --- a/src/common/educoder.js +++ b/src/common/educoder.js @@ -3,7 +3,7 @@ // export { default as OrderStateUtil } from '../routes/Order/components/OrderStateUtil'; export { - getUploadLogoActionUrl as getUploadLogoActionUrl, + getUploadLogoActionUrl as getUploadLogoActionUrl,numFormat as numFormat, getImageUrl as getImageUrl,getImage as getImage, getmyUrl as getmyUrl, getRandomNumber as getRandomNumber, getUrl as getUrl, publicSearchs as publicSearchs, getRandomcode as getRandomcode, getUrlmys as getUrlmys, getUrl2 as getUrl2, setImagesUrl as setImagesUrl , getUploadActionUrl as getUploadActionUrl, getUploadActionUrltwo as getUploadActionUrltwo, getUploadActionUrlthree as getUploadActionUrlthree, getUploadActionUrlOfAuth as getUploadActionUrlOfAuth , getTaskUrlById as getTaskUrlById, TEST_HOST, htmlEncode as htmlEncode, getupload_git_file as getupload_git_file, getcdnImageUrl as getcdnImageUrl diff --git a/src/forge/Branch/CloneAddress.js b/src/forge/Branch/CloneAddress.js index 38ddf5a0..618b5663 100644 --- a/src/forge/Branch/CloneAddress.js +++ b/src/forge/Branch/CloneAddress.js @@ -13,7 +13,7 @@ function CloneAddress({http_url , ssh_url , zip_url , tar_url}) { return (
-
+
{setKey(e.key)}}>HTTP {setKey(e.key)}}>SSH diff --git a/src/forge/Branch/Select.jsx b/src/forge/Branch/Select.jsx index fedd288c..a44584c4 100644 --- a/src/forge/Branch/Select.jsx +++ b/src/forge/Branch/Select.jsx @@ -1,116 +1,36 @@ import React , { useState , useEffect } from 'react'; -import { Popover , Input , Spin } from 'antd'; +import { Popover , Dropdown , Input , Spin } from 'antd'; import './branch.scss'; import { getBranch , getTag } from '../GetData/getData'; +import SelectOverlay from './SelectOverlay'; export default (({ projectsId , branch , owner , changeBranch , branchList , tagflag = true })=>{ const [ showValue , setShowValue ] = useState(branch); - const [ inputValue , setInputValue] = useState(undefined); - const [ nav , setNav ] = useState(0); - const [ isSpin , setIsSpin ] = useState(true); - const [ flag , setFlag ] = useState(false); - - const [ data , setData ] = useState(undefined); - const [ datas , setDatas ] = useState(undefined); useEffect(()=>{ setShowValue(branch); },[branch]) - useEffect(()=>{ - document.body.addEventListener('click', e => { - let name = e.target.className; - let turn = name === "ant-input OptionsInput" || name === "navli active"|| name === "navli" || name === "padding10 bor-bottom-greyE"; - if(turn){ - return; - }else{ - setFlag(false); - } - }) - }) - - useEffect(()=>{ - if(branchList){ - setData(branchList); - setDatas(branchList); - setIsSpin(false); - } - },[branchList]) - - - async function getBranchs(id,owner){ - let result = await getBranch(id,owner); - setData(result); - setDatas(result); - setIsSpin(false); - } - async function getTags(id,owner){ - let result = await getTag(id,owner); - setData(result); - setDatas(result); - setIsSpin(false); - } - - function changeInputValue(e){ - setInputValue(e.target.value); - let filter = e.target.value ? data && data.length>0 && data.filter(item=>item.name.indexOf(e.target.value)>-1) : data; - setDatas(filter); - } - - function changeNav(nav){ - setNav(nav); - setIsSpin(true); - if(nav === 0){ - getBranchs(projectsId,owner); - }else{ - getTags(projectsId,owner); - } - } - function chooseitem(value){ - // setShowValue(value); - changeBranch(value); - } - - const menu = ( -
-
- -
    -
  • changeNav(0)}>分支列表
  • - { tagflag &&
  • changeNav(1)}>标签列表
  • } -
-
- -
    - { - datas && datas.length>0 ? - datas.map((item,key)=>{ - return( -
  • chooseitem(item.name)}>{item.name}
  • - ) - }): -

    暂无{inputValue}{nav === 0 ?"分支":"标签"}~

    - } -
-
-
+ ); return( - setFlag(!flag)} overlayClassName="branch-tagBox-list"> +
{/* {nav === 0 ?"分支":"标签"} */} - + {showValue} - +
-
+ ) }) \ No newline at end of file diff --git a/src/forge/Branch/SelectOverlay.jsx b/src/forge/Branch/SelectOverlay.jsx new file mode 100644 index 00000000..d536d1c9 --- /dev/null +++ b/src/forge/Branch/SelectOverlay.jsx @@ -0,0 +1,84 @@ +import React , { useState , useEffect } from 'react'; +import { Input , Spin , Menu } from 'antd'; +import { getBranch , getTag } from '../GetData/getData'; + +function SelectOverlay({ changeBranch , tagflag , branchList , projectsId , owner }) { + const [ inputValue , setInputValue] = useState(undefined); + const [ nav , setNav ] = useState(0); + const [ isSpin , setIsSpin ] = useState(true); + + const [ data , setData ] = useState(undefined); + const [ datas , setDatas ] = useState(undefined); + const [ keys ,setKeys] = useState("branch"); + + useEffect(()=>{ + if(branchList){ + setData(branchList); + setDatas(branchList); + setIsSpin(false); + } + },[branchList]) + + async function getBranchs(id,owner){ + let result = await getBranch(id,owner); + setData(result); + setDatas(result); + setIsSpin(false); + } + async function getTags(id,owner){ + let result = await getTag(id,owner); + setData(result); + setDatas(result); + setIsSpin(false); + } + function chooseitem(value){ + changeBranch(value); + } + function changeInputValue(e){ + setInputValue(e.target.value); + let filter = e.target.value ? data && data.length>0 && data.filter(item=>item.name.indexOf(e.target.value)>-1) : data; + setDatas(filter); + } + + function changeNav(e){ + setKeys(e.key); + setIsSpin(true); + if(e.key === "branch"){ + getBranchs(projectsId,owner); + }else{ + getTags(projectsId,owner); + } + } + + return( +
+
+ } + placeholder="请输入分支或标签名称搜索" + autocomplete="off" className="OptionsInput" + value={inputValue} + onChange={changeInputValue} + /> +
+ + 分支 + { tagflag && 标签 } + + +
    + { + datas && datas.length>0 ? + datas.map((item,key)=>{ + return( +
  • chooseitem(item.name)}>{item.name}
  • + ) + }): +

    暂无{inputValue}{nav === 0 ?"分支":"标签"}~

    + } +
+
+
+ ) +} +export default SelectOverlay; \ No newline at end of file diff --git a/src/forge/Branch/branch.css b/src/forge/Branch/branch.css new file mode 100644 index 00000000..f872d0d9 --- /dev/null +++ b/src/forge/Branch/branch.css @@ -0,0 +1,132 @@ +.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: 36px; + 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; +} + +/*# sourceMappingURL=branch.css.map */ diff --git a/src/forge/Branch/branch.css.map b/src/forge/Branch/branch.css.map new file mode 100644 index 00000000..23d2119a --- /dev/null +++ b/src/forge/Branch/branch.css.map @@ -0,0 +1 @@ +{"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","file":"branch.css"} \ No newline at end of file diff --git a/src/forge/Branch/branch.scss b/src/forge/Branch/branch.scss index bdd4aa39..447b2cee 100644 --- a/src/forge/Branch/branch.scss +++ b/src/forge/Branch/branch.scss @@ -27,10 +27,11 @@ overflow-y: auto; } .OptionsUl li{ - height: 35px; - line-height: 35px; + height: 30px; + line-height: 30px; cursor: pointer; - padding:0px 10px; + padding:0px 20px; + margin:5px 0px; } .OptionsUl li:hover{ background-color: #F0F0F0; @@ -45,38 +46,49 @@ width: 100%; } .branch-tagBox{ - border:1px solid #eee; + border:1px solid #D0D0D0; border-radius: 3px; - height: 40px; + height: 36px; display: flex; align-items: center; cursor: pointer; - min-width: 140px; + min-width: 104px; } -.branch-tagBox-list .ant-popover-arrow{ - display: none; +.branch-tagBox:hover{ + background-color: #F3F4F6; } -.branch-tagBox-list.ant-popover.ant-popover-placement-bottom{ - padding-top:0px; +.branch-tagBox-list{ + background: #FFFFFF; + box-shadow: 0px 4px 8px 2px rgba(212, 212, 212, 0.5); + border-radius: 4px; + .ant-popover-arrow{ + display: none; + } + &.ant-popover.ant-popover-placement-bottom{ + padding-top:0px; + } + .branch-tagBox .ant-dropdown-link{ + display: block; + flex:1; + max-width: 105px; + } + .ant-popover-inner-content{ + padding:0px; + } } -.branch-tagBox .ant-dropdown-link{ - display: block; - flex:1; -} -.branch-tagBox-list .ant-popover-inner-content{ - padding:0px; -} -.navUl{ - display: flex; - justify-content: space-between; - align-items: center; - margin-top: 5px; -} -.navUl li{ - cursor: pointer; -} -.navUl li.active{ - color:#5091FF; +.overlayBranch{ + width: 325px; + .navUl{ + margin-top: 8px; + height: 30px; + line-height: 30px; + li{ + height: 30px; + line-height: 30px; + padding:0px 5px; + margin-left: 20px!important; + } + } } .listTips{ padding:20px 0px; @@ -86,6 +98,7 @@ .urlMenu{ line-height: 30px; margin-bottom: 10px; + padding:15px 20px 0px 20px; border-bottom: none; li.ant-menu-item{ height: 30px; diff --git a/src/forge/Component/Component.css b/src/forge/Component/Component.css new file mode 100644 index 00000000..7a684c70 --- /dev/null +++ b/src/forge/Component/Component.css @@ -0,0 +1,432 @@ +@charset "UTF-8"; +ul.ant-menu { + border-right: none; +} + +ul.ant-menu li:last-child { + border-bottom: none; +} + +li.ant-menu-item { + margin: 0px !important; + border-bottom: 1px solid #eee; +} + +.flags { + border: 1px solid red; + border-radius: 5px; +} + +.cards { + display: flex; + align-items: center; + padding: 20px 34px; + background-color: #fff; + margin-bottom: 18px; + min-height: 130px; + border: 1px solid #eee; +} +.cards .img { + margin-right: 20px; + width: 190px; + height: 90px; + border: 1px solid #eeeeee; + display: flex; + justify-content: center; + align-items: center; + overflow: hidden; +} +.cards .img img { + max-width: 100%; + max-height: 100%; +} +.cards .content { + flex: 1; + width: 0; +} +.cards .content .titles { + display: flex; + justify-content: space-between; + margin-bottom: 10px !important; + align-items: center; + height: 22px; + line-height: 22px; +} +.cards .content .titles > a { + font-size: 18px; + color: #333; +} +.cards .content .desc { + overflow: hidden; + text-overflow: ellipsis; + display: -webkit-box; + -webkit-box-orient: vertical; + -webkit-line-clamp: 2; + line-height: 20px; +} + +.tabsStyle { + border: 1px solid #eee; +} +.tabsStyle .ant-tabs-bar.ant-tabs-top-bar { + padding-left: 35px; + margin-bottom: 0px; +} +.tabsStyle .ant-tabs-nav .ant-tabs-tab { + padding: 19px 0px; + margin-right: 40px; +} +.tabsStyle .ant-tabs-ink-bar { + width: 25px !important; + bottom: 10px; +} + +.statusColor { + display: inline-block; + padding: 0px 10px; + height: 20px; + line-height: 20px; + border-radius: 11px; + color: #fff; + margin-left: 5px; + font-size: 12px; +} +.statusColor.running { + background: #5091FF; + color: #F1F8FF; +} +.statusColor.Preparing { + background: #ff6e21; + color: #fff8f4; +} +.statusColor.pass { + background: #28BD6C; + color: #EEFDF5; +} +.statusColor.failed { + background: #F73030; + color: #FCEEEE; +} +.statusColor.killed { + background: #eee; + color: #999; +} + +.handleBox { + position: fixed; + top: 45%; + right: 240px; + z-index: 10000; +} + +.laterest { + background-color: #EF3131; + color: #fff; + font-size: 12px; + margin-left: 10px; + padding: 0px 5px; + border-radius: 2px; + height: 18px; + line-height: 18px; +} + +@media screen and (max-width: 1800px) { + .handleBox { + right: 190px; + } +} +@media screen and (max-width: 1700px) { + .handleBox { + right: 140px; + } +} +@media screen and (max-width: 1600px) { + .handleBox { + right: 90px; + } +} +@media screen and (max-width: 1450px) { + .handleBox { + right: 10px; + } +} +@media screen and (max-width: 1380px) { + .handleBox { + right: 0px; + } +} +.ant-drawer { + z-index: 10000 !important; +} + +.ant-drawer-body { + padding: 0px !important; +} +.ant-drawer-body .drawerHead { + background-color: #333; + color: #fff; + padding: 15px 20px; +} +.ant-drawer-body .ant-tree { + margin: 0px 20px !important; +} + +.menuPanels { + width: 295px; +} +.menuPanels .leftline { + position: relative; + color: #666; + height: 16px; +} +.menuPanels .leftline::before { + position: absolute; + left: -10px; + top: 3px; + height: 12px; + width: 1px; + background-color: #666666; + content: ""; +} +.menuPanels .ant-btn { + height: 36px; + line-height: 34px; + width: 83px; + text-align: center; + padding: 0px; + font-weight: 500; + font-size: 14px; +} +.menuPanels .ant-btn.currentBtn { + cursor: default; + color: #333; +} +.menuPanels .ant-btn.currentBtn:hover { + color: #333; + border-color: #d0d0d0; +} +.menuPanels .ant-btn-default { + color: #333; + border-color: #d0d0d0; +} +.menuPanels .ant-btn-default:hover { + background: #F3F4F6; +} +.menuPanels .ant-btn-primary { + color: #fff; + background-color: #2A61FF; +} +.menuPanels .focusPanelHeadInfo { + padding: 14px 16px; + border-bottom: 1px solid #eee; +} +.menuPanels .ant-popover-content, .menuPanels .ant-popover-inner { + height: 100%; + width: 100%; +} +.menuPanels .ant-popover-inner-content { + padding: 0px; +} + +.halfs { + margin-top: 24px; + padding: 24px 0px 0px 0px; + border-top: 1px solid #e8e8e8; +} + +.aboutSubTitle { + display: flex; + align-items: center; +} + +.menuinfos { + padding: 10px 20px; +} +.menuinfos > a { + display: flex; + flex-direction: column; + align-items: center; + flex: 1; +} +.menuinfos > a > span:first-child { + font-size: 16px; + font-weight: 500; + color: #333; + line-height: 22px; +} +.menuinfos > a > span:last-child { + color: #666; + font-weight: 400; + line-height: 20px; + margin-top: 6px; +} + +/*-------------------个人主页:右侧提示区域--------------------------*/ +.-task-sidebar { + position: fixed; + width: 40px; + right: 0; + bottom: 80px; + z-index: 10; +} + +@media screen and (max-width: 1920px) { + .-task-sidebar { + right: 220px; + } +} +@media screen and (max-width: 1750px) { + .-task-sidebar { + right: 160px; + } +} +@media screen and (max-width: 1650px) { + .-task-sidebar { + right: 115px; + } +} +@media screen and (max-width: 1550px) { + .-task-sidebar { + right: 90px; + } +} +@media screen and (max-width: 1450px) { + .-task-sidebar { + right: 45px; + } +} +@media screen and (max-width: 1200px) { + .-task-sidebar { + right: 0px; + display: none; + } +} +.-task-sidebar > div { + height: 40px; + line-height: 40px; + box-sizing: border-box; + width: 40px; + color: #999; + font-size: 20px; + text-align: center; + margin-bottom: 20px; + border-radius: 50%; + background: #FFFFFF; + box-shadow: 0px 0px 10px 1px #F1F1F1; +} + +.-task-sidebar > div i { + color: #999; +} + +.-task-sidebar > div:hover i { + color: #fff !important; +} + +.-task-sidebar > div:hover { + background: #1890FF; + box-shadow: 0px 0px 10px 2px #B6D0FC; +} + +.helpBox { + width: 260px; + z-index: 103; +} +.helpBox.shareContent { + width: 200px; +} +.helpBox .ant-popover-inner-content { + padding: 0px; +} +.helpBox p.titlecontent { + font-size: 18px; + color: #333; + line-height: 20px; + padding: 15px 20px; +} +.helpBox .faqUl { + padding: 0px 20px 10px; + max-height: 230px; + overflow-y: auto; +} +.helpBox .faqUl li { + background: #F5F5F5; + border-radius: 20px; + padding: 0px 20px; + color: #333; + height: 34px; + line-height: 34px; + margin-bottom: 10px; +} +.helpBox .faqUl li a { + display: block; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; +} +.helpBox .faqUl li:hover { + background-color: #D1E9FF; +} +.helpBox .faqUl li:hover a { + color: #333 !important; +} +.helpBox .shareUl { + padding: 10px 0px; + display: flex; + align-items: center; +} +.helpBox .shareUl .titlecontent { + margin-right: 20px; +} +.helpBox .shareUl li > i { + font-size: 32px !important; +} + +.-task-desc { + background: #494949; + width: 90px; + line-height: 36px; + text-align: center; + position: absolute; + color: #fff; + font-size: 13px; + z-index: 999999; + opacity: 0; +} + +.-task-desc div { + position: absolute; + top: 10px; + right: -7px; + height: 13px; +} + +.-task-desc div img { + float: left; +} + +.-task-sidebar .scan_ewm { + position: absolute !important; + right: 45px !important; + bottom: 0px !important; + background-color: #494949 !important; + -webkit-box-sizing: border-box !important; + box-sizing: border-box !important; + font-size: 14px !important; + line-height: 16px !important; + display: none; + height: 213px !important; +} + +.trangle_right { + position: absolute; + right: -5px; + bottom: 15px; + width: 0; + height: 0px; + border-top: 6px solid transparent; + border-left: 5px solid #494949; + border-bottom: 6px solid transparent; +} + +/*# sourceMappingURL=Component.css.map */ diff --git a/src/forge/Component/Component.css.map b/src/forge/Component/Component.css.map new file mode 100644 index 00000000..ed580bd0 --- /dev/null +++ b/src/forge/Component/Component.css.map @@ -0,0 +1 @@ +{"version":3,"sourceRoot":"","sources":["Component.scss"],"names":[],"mappings":";AAAA;EACE;;;AAEF;EACE;;;AAEF;EACE;EACA;;;AAEF;EACE;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AACA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AACA;EACE;EACA;;AAGJ;EACE;EACA;;AACA;EACE;EACA;EACA;EACA;EACA;EACA;;AACA;EACE;EACA;;AAGJ;EACE;EACA;EACA;EACA;EACA;EACA;;;AAKN;EACE;;AACA;EACE;EACA;;AAEF;EACE;EACA;;AAEF;EACE;EACA;;;AAGJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AACA;EACE;EACA;;AAEF;EACE;EACA;;AAEF;EACE;EACA;;AAEF;EACE;EACA;;AAEF;EACE;EACA;;;AAGJ;EACE;EACA;EACA;EACA;;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;IACE;;;AAGJ;EACE;IACE;;;AAGJ;EACE;IACE;;;AAGJ;EACE;IACE;;;AAGJ;EACE;IACE;;;AAGJ;EACE;;;AAEF;EACE;;AACA;EACE;EACA;EACA;;AAEF;EACE;;;AAIJ;EACE;;AACA;EACE;EACA;EACA;;AACA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AACA;EACE;EACA;;AACA;EACE;EACA;;AAIN;EACE;EACA;;AACA;EACE;;AAGJ;EACE;EACA;;AAEF;EACE;EACA;;AAEF;EACE;EACA;;AAEF;EACE;;;AAGJ;EACE;EACA;EACA;;;AAEF;EACE;EACA;;;AAEF;EACE;;AACA;EACE;EACA;EACA;EACA;;AACA;EACE;EACA;EACA;EACA;;AAEF;EACE;EACA;EACA;EACA;;;AAKN;AACA;EACE;EACA;EACA;EACA;EACA;;;AAGF;EACE;IACE;;;AAGJ;EACE;IACE;;;AAGJ;EACE;IACE;;;AAGJ;EACE;IACE;;;AAGJ;EACE;IACE;;;AAGJ;EACE;IACE;IACA;;;AAGJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;;;AAEF;EACE;EACA;;;AAEF;EACE;EACA;;AACA;EACE;;AAEF;EACE;;AAEF;EACE;EACA;EACA;EACA;;AAEF;EACE;EACA;EACA;;AACA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AACA;EACE;EACA;EACA;EACA;;AAEF;EACE;;AACA;EACE;;AAKR;EACE;EACA;EACA;;AACA;EACE;;AAEF;EACE;;;AAON;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA","file":"Component.css"} \ No newline at end of file diff --git a/src/forge/Component/Component.scss b/src/forge/Component/Component.scss index 3a94c375..627304e1 100644 --- a/src/forge/Component/Component.scss +++ b/src/forge/Component/Component.scss @@ -113,7 +113,14 @@ li.ant-menu-item{ z-index: 10000; } .laterest{ - color: #05690d; + background-color: #EF3131; + color: #fff; + font-size: 12px; + margin-left: 10px; + padding:0px 5px; + border-radius: 2px; + height: 18px; + line-height: 18px; } @media screen and (max-width: 1800px){ @@ -157,39 +164,88 @@ li.ant-menu-item{ } .menuPanels{ - width: 240px; - height: 180px; + width: 295px; + .leftline{ + position: relative; + color: #666; + height: 16px; + &::before{ + position: absolute; + left: -10px; + top:3px; + height: 12px; + width: 1px; + background-color: #666666; + content: ""; + } + } + .ant-btn{ + height: 36px; + line-height: 34px; + width: 83px; + text-align: center; + padding:0px ; + font-weight: 500; + font-size: 14px; + &.currentBtn{ + cursor: default; + color: #333; + &:hover{ + color: #333; + border-color: #d0d0d0; + } + } + } + .ant-btn-default{ + color: #333; + border-color: #d0d0d0; + &:hover{ + background: #F3F4F6; + } + } + .ant-btn-primary{ + color: #fff; + background-color: #2A61FF; + } + .focusPanelHeadInfo{ + padding:14px 16px; + border-bottom: 1px solid #eee; + } .ant-popover-content,.ant-popover-inner{ height: 100%; width: 100%; } + .ant-popover-inner-content{ + padding:0px; + } } .halfs{ margin-top: 24px; padding:24px 0px 0px 0px; border-top: 1px solid #e8e8e8; - .attrPerson{ - padding-bottom: 24px; - } +} +.aboutSubTitle{ + display: flex; + align-items: center; } .menuinfos{ - padding:15px 0px; + padding:10px 20px; &>a{ display: flex; flex-direction: column; align-items: center; - border-right: 1px solid #eee; flex: 1; & >span:first-child{ - font-size: 18px; - font-weight: 400; + font-size: 16px; + font-weight: 500; color: #333; + line-height: 22px; } & >span:last-child{ color: #666; - } - &:last-child{ - border-right: none; + font-weight: 400; + line-height: 20px; + margin-top: 6px; } } } diff --git a/src/forge/Component/Contributors.jsx b/src/forge/Component/Contributors.jsx index 1e26354a..9890ea76 100644 --- a/src/forge/Component/Contributors.jsx +++ b/src/forge/Component/Contributors.jsx @@ -1,13 +1,13 @@ import React, { useEffect, useState } from 'react'; import { AlignCenter , FlexAJ } from '../Component/layout'; import { Link } from 'react-router-dom'; -import { Popover , Spin } from 'antd'; +import { Popover , Spin , Button } from 'antd'; import { getImageUrl } from 'educoder'; import './Component.scss'; import { getUser } from '../GetData/getData'; import axios from 'axios'; -function Contributors({contributors,owner,projectsId}){ +function Contributors({contributors,owner,projectsId,currentLogin}){ const [ menuList ,setMenuList ]= useState([]); const [ list , setList ]= useState(undefined); const [ total , setTotal ]= useState(0); @@ -50,15 +50,28 @@ function Contributors({contributors,owner,projectsId}){ if(data){ let ele = ( - - - - {data.name} - - { - data.is_watch ? FocusFunc(false,data.login)}>取消关注:FocusFunc(true,data.login)}>关注 - } - + + +
+ + {data.name} + { + data.location && + {data.location} + } + + { + data.organizations && data.organizations.length > 0 ? + + 所属组织: +
+ {renderArray(data.organizations)} +
+
+ :"" + } +
+
{data.projects_count} @@ -73,19 +86,18 @@ function Contributors({contributors,owner,projectsId}){ 关注数 - { - data.organizations && data.organizations.length > 0 ? - - 所属组织: -
- {renderArray(data.organizations)} -
-
- :"" - } - { - data.location && 所在地址:{data.location} - } +
+ { + currentLogin && (currentLogin === data.login) + ? + + : + data.is_watch ? + + : + + } +
) setMenu(ele); @@ -135,10 +147,10 @@ function Contributors({contributors,owner,projectsId}){ return(
- - 贡献者{ contributors && contributors.total_count > 0 && {contributors.total_count}} - 全部 - + + 贡献者 + { contributors && contributors.total_count > 0 && {contributors.total_count}} +
setVisibleFunc(false)}> { total > 0 ? diff --git a/src/forge/Component/LanguagePower.jsx b/src/forge/Component/LanguagePower.jsx index 3197309c..8d3e361b 100644 --- a/src/forge/Component/LanguagePower.jsx +++ b/src/forge/Component/LanguagePower.jsx @@ -25,7 +25,7 @@ function LanguagePower({languages}){ } return(
-

开发语言

+

开发语言

{ array && array.map((item,key)=>{ diff --git a/src/forge/Component/Releases.jsx b/src/forge/Component/Releases.jsx index da984543..d8c5e86f 100644 --- a/src/forge/Component/Releases.jsx +++ b/src/forge/Component/Releases.jsx @@ -6,33 +6,29 @@ function Releases({owner,projectsId,releaseVersions , baseOperate , projectType} return(
- - 发行版 - { releaseVersions && releaseVersions.total_count > 0 && {releaseVersions.total_count}} - - { (releaseVersions && releaseVersions.total_count > 0) || projectType ===2 ? - 全部 - : - baseOperate && 新建 - } - + + 发行版 + { releaseVersions && releaseVersions.total_count > 0 && {releaseVersions.total_count}} + { releaseVersions && releaseVersions.total_count>0 ? releaseVersions.list.map((item,key)=>{ return( key === 0 && -
-

- {item.name} - 最新 +

+ 发布{item.name}版本 + 最新

-

{item.created_at}

+

{item.created_at}

) }) - :"" + : +
+ 您暂未发布任何版本{baseOperate && projectType !==2 && 创建新版本} +
}
diff --git a/src/forge/Main/CoderDepot.jsx b/src/forge/Main/CoderDepot.jsx index cfe3c6a8..5e0c4128 100644 --- a/src/forge/Main/CoderDepot.jsx +++ b/src/forge/Main/CoderDepot.jsx @@ -1,6 +1,6 @@ import React , { useEffect , useState } from 'react'; import { WhiteBack , Box , LongWidth , ShortWidth , Gap , AlignCenter , FlexAJ } from '../Component/layout'; -import { Dropdown , Menu , Divider , Spin, Button } from 'antd'; +import { Dropdown , Menu , Divider , Spin, Button , Typography } from 'antd'; import { getImageUrl } from "educoder"; import { Link } from 'react-router-dom'; import CloneAddress from '../Branch/CloneAddress'; @@ -23,7 +23,7 @@ import Invite from './sub/Invite'; /** * projectDetail.type:0是托管项目,1是镜像项目,2是同步镜像项目(为2时不支持在线创建、在线上传、在线修改、在线删除、创建合并请求等功能) */ - + const { Paragraph } = Typography; function turnbar(str){ if(str && str.length>0 && str.indexOf("/")>-1){ return str.replaceAll('/','%2F'); @@ -315,7 +315,7 @@ function CoderDepot(props){ list = {mainFlag ? dirInfo : undefined} />
setVisible(true)}> - + 目录
@@ -328,7 +328,7 @@ function CoderDepot(props){
-
+
{ props && props.platform ? - - - {projectDetail && projectDetail.branches && projectDetail.branches.total_count}个分支 + + + 分支 + {projectDetail && projectDetail.branches && projectDetail.branches.total_count} - - - {projectDetail && projectDetail.tags && projectDetail.tags.total_count}个标签 + + + 标签 + {projectDetail && projectDetail.tags && projectDetail.tags.total_count} - + { - baseOperate && ((projectDetail.type !== 2 && pullsFlag) || issuesFlag )&& - + baseOperate && projectDetail.type !== 2 && pullsFlag && + + } + { + baseOperate && issuesFlag && + } { fileOperate && - - + + } - + @@ -393,11 +390,14 @@ function CoderDepot(props){
{lastCommit && lastCommit.message}
{ hideBtn && changeHide(hide)}> } - - {lastCommit && lastCommit.time_from_now} - { commitCount ? - {commitCount}次提交 - :"" } + + {lastCommit && lastCommit.time_from_now} + { + commitCount ? + + {commitCount}次提交 + :"" + }
}
    @@ -434,7 +434,7 @@ function CoderDepot(props){ onEdit={onEdit} currentBranch={branchName || defaultBranch} type={projectDetail.type} - > + >[[]] }
@@ -452,45 +452,47 @@ function CoderDepot(props){
- 简介 - {projectDetail.permission && (projectDetail.permission==="Admin" || projectDetail.permission==="Owner") && setOpenModal(true)} className="iconfont icon-anquanshezhi color-grey-9 font-15">} + 关于 + {projectDetail.permission && (projectDetail.permission==="Admin" || projectDetail.permission==="Owner") && + setOpenModal(true)} className="iconfont icon-a-shezhi font-15"> + } - {desc &&

{desc}

} + {desc &&

{desc}

} { website && -

- - {website} -

+
+ + {website} +
} -

- - README.md -

-

- +

+ + README.md +
+
+ {projectDetail && projectDetail.size} -

+
{ projectDetail && projectDetail.license_name && -

- - {projectDetail.license_name} -

+
+ + {projectDetail.license_name} +
}
{ inviteCode &&
- +
} { lesson_url &&
-

实践课程

+

实践课程

{lesson_url}
} @@ -499,7 +501,7 @@ function CoderDepot(props){ projectDetail && projectDetail.release_versions && - + } {/* 语言 */} { projectDetail && projectDetail.languages && diff --git a/src/forge/Main/CoderDepotCatalogue.jsx b/src/forge/Main/CoderDepotCatalogue.jsx index fae63b3f..5aa17b31 100644 --- a/src/forge/Main/CoderDepotCatalogue.jsx +++ b/src/forge/Main/CoderDepotCatalogue.jsx @@ -4,8 +4,8 @@ import { truncateCommitId } from '../common/util'; const typeIco = { "submodule":"icon-file-submodule font-17", - "file":'icon-wenjia font-15', - "dir":"icon-wenjianjia1 font-15" + "file":'icon-wenjian6 font-15', + "dir":"icon-wenjianjia4 font-15" } function CoderDepotCatalogue({item , goToSubRoot , owner , projectsId }){ @@ -13,7 +13,7 @@ function CoderDepotCatalogue({item , goToSubRoot , owner , projectsId }){
  • goToSubRoot(item.path,item.type,item.name)} className={item.type === "submodule" && "submoduleStyle"}> - {item.name} + {item.name} diff --git a/src/forge/Main/CoderDepotReadme.jsx b/src/forge/Main/CoderDepotReadme.jsx index 1c54663d..e5f6cbc4 100644 --- a/src/forge/Main/CoderDepotReadme.jsx +++ b/src/forge/Main/CoderDepotReadme.jsx @@ -1,8 +1,9 @@ import React, { useEffect, useState } from 'react'; import RenderHtml from '../../components/render-html'; import { AlignCenter } from '../Component/layout'; -import { Dropdown , Menu , Spin } from 'antd'; -import { Link } from 'react-router-dom'; +import { Dropdown , Anchor , Spin } from 'antd'; + +import ReadmeCatelogue from './sub/ReadmeCatelogue'; const $ = window.$; function CoderDepotReadme({ operate , history , readme , ChangeFile }){ @@ -23,49 +24,43 @@ function CoderDepotReadme({ operate , history , readme , ChangeFile }){ const anchor = el.id; const level = el.tagName.replace("H", ""); const href = `#${anchor}`; - return { href:`${path}${href}`,text:el.textContent , level:level } + return { href:`${href}`,text:el.textContent , level:level } }); setMenuList(items); },[content]) function menu(){ if(menuList && menuList.length > 0){ - let hash = history.location.hash; return( - - { - menuList.map((item,key)=>{ - return( - -1 ?"active":""}>{item.text} - ) - }) - } - + ) }else{ return } } + return( -
    -
    - - - - - 目录 - - - README.md - - { - operate ? - ChangeFile(readme && readme.path, false)}> - - - :"" - } -
    +
    + +
    + + + + + 目录 + + + README.md + + { + operate ? + ChangeFile(readme && readme.path, false)}> + + + :"" + } +
    +
    { content &&
    diff --git a/src/forge/Main/CoderRootBranch.js b/src/forge/Main/CoderRootBranch.js index 8ccc5aa4..0ee71929 100644 --- a/src/forge/Main/CoderRootBranch.js +++ b/src/forge/Main/CoderRootBranch.js @@ -4,7 +4,7 @@ import { Dropdown , Menu , Icon , Tooltip , Spin } from 'antd'; import { truncateCommitId } from '../common/util'; import { getBranch } from '../GetData/getData'; import Nodata from '../Nodata'; -import './list.css'; +import './list.scss'; function turnbar(str){ if(str && str.length>0 && str.indexOf("/")>-1){ diff --git a/src/forge/Main/CoderRootFileDetail.js b/src/forge/Main/CoderRootFileDetail.js index f86706e4..4adb229d 100644 --- a/src/forge/Main/CoderRootFileDetail.js +++ b/src/forge/Main/CoderRootFileDetail.js @@ -1,6 +1,6 @@ import React, { Component } from "react"; import { Popconfirm , Select } from "antd"; -import "./list.css"; +import "./list.scss"; import axios from "axios"; import Meditor from "../Newfile/m_editor"; import RenderHtml from "../../components/render-html"; diff --git a/src/forge/Main/Detail.js b/src/forge/Main/Detail.js index f01ef2d3..dc6da437 100644 --- a/src/forge/Main/Detail.js +++ b/src/forge/Main/Detail.js @@ -1,10 +1,11 @@ import React, { Component } from 'react'; -import { Spin, Tooltip , Button } from 'antd'; +import { Spin, Tooltip, Button } from 'antd'; import { Link, Route, Switch } from 'react-router-dom'; -import { Content , AlignTop } from '../Component/layout'; +import { Content , AlignTop, AlignCenter } from '../Component/layout'; import DetailBanner from './sub/DetailBanner'; +import { numFormat } from 'educoder'; import '../css/index.scss' -import './list.css'; +import './list.scss'; import Loadable from 'react-loadable'; import Loading from '../../Loading'; @@ -422,7 +423,7 @@ class Detail extends Component { {fork_info.fork_form_name}
    : "" } - + render() { const { projectDetail, watchers_count, praises_count, @@ -448,91 +449,92 @@ class Detail extends Component {
    - -
    + +
    {project && project.author && - {project.author.name} + {project.author.name} } / - {projectDetail && projectDetail.name} + {projectDetail && projectDetail.name}
    - { projectDetail && projectDetail.private && 私有} + { projectDetail && projectDetail.private && 私有}
    -
    - { - projectDetail && projectDetail.forked_from_project_id && projectDetail.fork_info ? - this.textFunc(projectDetail.forked_from_project_id,projectDetail.fork_info) - :"" - } - { - projectDetail && projectDetail.type && projectDetail.type !== 0 ? - 镜像自 {projectDetail.mirror_url} - :"" - } -
    -
    +
    { firstSync ? "": { ((current_user && current_user.admin) || isManager) && (projectDetail && projectDetail.type && projectDetail.type === 2) ? - 同步镜像 : "" + 同步镜像 : "" } - - - + }
    -
    + +
    + { + projectDetail && projectDetail.forked_from_project_id && projectDetail.fork_info ? + this.textFunc(projectDetail.forked_from_project_id,projectDetail.fork_info) + :"" + } + { + projectDetail && projectDetail.type && projectDetail.type !== 0 ? + 镜像自 {projectDetail.mirror_url} + :"" + } +
    { firstSync ? "" : span span { + font-size: 12px; + font-weight: 400; 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 { + height: 55px; display: flex; justify-content: space-between; align-items: flex-start; border-bottom: 1px solid #d9d9d9; - padding: 7px 20px; + padding: 13px 20px; border-radius: 4px 4px 0px 0px; - background-color: #FAFBFC; + border: 1px solid rgba(42, 97, 255, 0.23); + background-color: #FAFCFF; } .Panels .listtable .listtablehead .ellipsistxt { margin-top: 6px; @@ -230,17 +255,13 @@ 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; + height: 16px; + background: rgba(153, 153, 153, 0.2); + border-radius: 2px; padding: 0px 4px; height: 14px; line-height: 14px; @@ -248,10 +269,15 @@ } .Panels .listtable .listtablehead .ellipsis i { font-size: 15px !important; - color: #fff; + color: #333; height: 14px; line-height: 14px; } +.Panels .listtable .listtablebody { + border-radius: 0px 0px 4px 4px; + border: 1px solid #D0D0D0; + border-top: none; +} .Panels .listtable .listtablebody li.listtablepath a { color: #40a9ff; } @@ -259,13 +285,16 @@ margin-bottom: 0px !important; } .Panels .listtable .listtablebody > li { - height: 42px; + height: 38px; display: flex; justify-content: space-between; align-items: center; border-bottom: 1px solid #d9d9d9; padding: 0px 20px 0px 24px; } +.Panels .listtable .listtablebody > li:hover { + background-color: #F3F4F6; +} .Panels .listtable .listtablebody > li > span:first-child { width: 30%; overflow: hidden; @@ -289,8 +318,10 @@ .drawerBtn { position: fixed; left: -13px; - border: 1px solid #cfcddf; - width: 34px; + width: 33px; + background: #FFFFFF; + box-shadow: 0px 0px 8px 3px rgba(0, 0, 0, 0.09); + border: 1px solid #666666; border-radius: 0px 12px 12px 0px; height: 70px; top: 50%; @@ -298,59 +329,47 @@ cursor: pointer; display: flex; flex-direction: column; - align-items: flex-end; + align-items: center; justify-content: center; + padding-left: 7px; } .drawerBtn:hover { - box-shadow: 1px 0px 7px rgba(0, 0, 0, 0.1); + box-shadow: 0px 0px 8px 3px rgba(0, 0, 0, 0.09); } .drawerBtn span { writing-mode: vertical-lr; - color: #202429; + color: #333; width: 25px; + font-size: 14px; } .drawerBtn i { - color: #24292e; - height: 18px; - line-height: 18px; - width: 18px; + color: #333; + height: 14px; + line-height: 14px; + width: 14px; + margin-left: 2px; + margin-bottom: 3px; } .downMenu { - width: 330px; - box-shadow: 0px 0px 9px rgba(134, 134, 134, 0.4); + width: 329px; background-color: #fff; + box-shadow: 0px 1px 8px 1px rgba(212, 212, 212, 0.5); + padding-bottom: 14px; } -.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; +.downMenu .ant-menu-item { + height: 50px; + line-height: 50px; } .catelogue { - border: 1px solid lightgray; + cursor: pointer; + background: #FAFBFC; + border-radius: 4px; + border: 1px solid #D0D0D0; font-size: 15px; font-weight: normal; - border-radius: 5px; - margin-right: 10px; + margin-right: 12px; padding: 0px 10px; height: 30px; line-height: 30px; @@ -358,6 +377,9 @@ display: flex; align-items: center; } +.catelogue:hover { + background-color: #F3F4F6; +} .catelogue span { margin-top: 1px; } @@ -372,4 +394,27 @@ color: #05101a; } +.pinfos i, .pinfos a { + color: #666; +} +.pinfos:hover i, .pinfos:hover a { + color: #466AFF; +} + +.graph { + flex: 1; + margin: 0px 12px; +} +.graph .ant-typography { + white-space: pre-wrap; + margin-bottom: 0px; +} + +.ant-anchor-wrapper { + padding-left: 2px; +} +.ant-anchor-wrapper .ant-anchor-ink::before { + background-color: #fff; +} + /*# sourceMappingURL=Index.css.map */ diff --git a/src/forge/Main/Index.css.map b/src/forge/Main/Index.css.map index 35f6a1bf..4261f832 100644 --- a/src/forge/Main/Index.css.map +++ b/src/forge/Main/Index.css.map @@ -1 +1 @@ -{"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"} \ No newline at end of file +{"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;;AAEE;EACE;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAEF;EACE;EACA;;AACA;EACE;;AAGJ;EACE;EACA;EACA;;AAIN;EACE;EACA;EACA;EACA;EACA;;AACA;EACE;EACA;EACA;;AAEF;EACE;;AAEF;EACE;;AAGJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEF;EACE;EACA;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;EACA;EACA;EACA;;AAEE;EACE;;AAKR;EACE;;AACA;EACE;EACA;EACA;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;;AASJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AACA;EACE;EACA;EACA;EACA;;AAIN;EACE;EACA;EACA;;AAEE;EAAE;;AACF;EACE;;AAGJ;EACE;EACA;EACA;EACA;EACA;EACA;;AACA;EACE;;AAEF;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;EACA;EACA;EACA;;AACA;EACE;;AAEF;EACE;EACA;EACA;EACA;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;;;AAGJ;EACE;EACA;EACA;EACA;;AACA;EACE;EACA;;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AACA;EACE;;AAEF;EACE;;;AAGJ;EACE;;AACA;EACE;;AAEF;EACE;;;AAIF;EAAI;;AACJ;EACE;;;AAGJ;EACE;EACA;;AACA;EACE;EACA;;;AAGJ;EACE;;AACA;EACE","file":"Index.css"} \ No newline at end of file diff --git a/src/forge/Main/Index.js b/src/forge/Main/Index.js index e58ec0c0..0169d84b 100644 --- a/src/forge/Main/Index.js +++ b/src/forge/Main/Index.js @@ -6,7 +6,7 @@ import { getImageUrl } from 'educoder'; import "slick-carousel/slick/slick.css"; import "slick-carousel/slick/slick-theme.css"; import '../css/index.scss' -import './list.css'; +import './list.scss'; import './Index.scss'; import ListItem from './IndexItem' import axios from 'axios'; diff --git a/src/forge/Main/Index.scss b/src/forge/Main/Index.scss index cb05f1cf..a343c7a1 100644 --- a/src/forge/Main/Index.scss +++ b/src/forge/Main/Index.scss @@ -108,6 +108,32 @@ margin: 0 auto; .panelmenu{ padding-top:30px; + .depotBtn{ + .mr-5{ + margin-right: -5px; + } + .ant-btn{ + height: 36px; + line-height: 34px; + width: 83px; + text-align: center; + padding:0px ; + font-weight: 500; + font-size: 14px; + } + .ant-btn-default{ + color: #333; + border-color: #d0d0d0; + &:hover{ + background: #F3F4F6; + } + } + .ant-btn-primary{ + color: #fff; + background-color: #466AFF; + opacity: 0.8; + } + } } .addOptionBtn{ height: 32px; @@ -129,25 +155,27 @@ } .infoCount{ display: inline-block; - padding:0px 5px; - height: 16px; - line-height: 16px; - background-color: #eee; - color:#999; + width: 24px; + text-align: center; + height: 24px; + line-height: 24px; + background-color:rgba(153, 153, 153, 0.13);; + color:#666; border-radius: 12px; - margin-left: 10px; + margin-left: 6px; font-size: 12px; } .attrPerson{ - padding-top: 15px; + padding-top: 12px; display: flex; flex-wrap: wrap; + padding-bottom: 2px; a{ - margin: 10px 10px 0px 0px; + margin: 0px 17px 0px 0px; img{ border-radius: 50%; - width: 35px; - height: 35px; + width: 40px; + height: 40px; } &:nth-child(6){ margin-right: 0px; @@ -184,10 +212,11 @@ padding-left: 15px; position: relative; min-width: 33.5%; + font-size: 12px; + font-weight: 400; + color: #666; span{ - color: #666; &:last-child{ - color: #999; margin-left: 5px; } } @@ -195,16 +224,16 @@ } .listtable{ margin-top: 20px; - border:1px solid #d9d9d9; - border-radius: 4px; .listtablehead{ + height: 55px; display: flex; justify-content: space-between; align-items: flex-start; border-bottom: 1px solid #d9d9d9; - padding:7px 20px; + padding:13px 20px; border-radius: 4px 4px 0px 0px; - background-color: #FAFBFC; + border: 1px solid rgba(42, 97, 255, 0.23); + background-color: #FAFCFF; .ellipsistxt{ margin-top: 6px; #ptxt{ @@ -227,32 +256,37 @@ overflow: hidden; position: relative; padding-right:8px; - &::after{ - position: absolute; - right: 0px; - bottom: 0px; - content:"..."; - } + // &::after{ + // position: absolute; + // right: 0px; + // bottom: 0px; + // content:"..."; + // } } } .ellipsis{ margin-left: 8px; cursor: pointer; border-radius: 2px; - background-color: #c1c1c1; + height: 16px; + background: rgba(153, 153, 153, 0.2); + border-radius: 2px; padding:0px 4px; height: 14px; line-height: 14px; margin-top: 9px; i{ font-size: 15px!important; - color: #fff; + color: #333; height: 14px; line-height: 14px; } } } .listtablebody{ + border-radius:0px 0px 4px 4px ; + border: 1px solid #D0D0D0; + border-top: none; li.listtablepath{ a{color: #40a9ff;} p{ @@ -260,12 +294,15 @@ } } & > li{ - height: 42px; + height: 38px; display: flex; justify-content: space-between; align-items: center; border-bottom: 1px solid #d9d9d9; padding:0px 20px 0px 24px; + &:hover{ + background-color: #F3F4F6; + } & > span:first-child{ width: 30%; overflow: hidden; @@ -292,8 +329,10 @@ .drawerBtn{ position: fixed; left: -13px; - border:1px solid rgb(207,205,223); - width: 34px; + width: 33px; + background: #FFFFFF; + box-shadow: 0px 0px 8px 3px rgba(0, 0, 0, 0.09); + border: 1px solid #666666; border-radius: 0px 12px 12px 0px; height: 70px; top:50%; @@ -301,63 +340,55 @@ cursor: pointer; display: flex; flex-direction: column; - align-items: flex-end; + align-items: center; justify-content: center; + padding-left: 7px; &:hover{ - box-shadow: 1px 0px 7px rgba(0,0,0,0.1); + box-shadow: 0px 0px 8px 3px rgba(0, 0, 0, 0.09); } span{ writing-mode: vertical-lr; - color: #202429; + color: #333; width: 25px; + font-size: 14px; } i{ - color: #24292e; - height: 18px; - line-height: 18px; - width: 18px; + color: #333; + height: 14px; + line-height: 14px; + width: 14px; + margin-left: 2px; + margin-bottom: 3px; } } .downMenu{ - width: 330px; - box-shadow: 0px 0px 9px rgba(134, 134, 134,0.4); + width: 329px; background-color: #fff; - .ant-menu-vertical .ant-menu-item:hover{ - background-color: #e6f7ff; + box-shadow: 0px 1px 8px 1px rgba(212, 212, 212, 0.5); + padding-bottom: 14px; + .ant-menu-item{ + height: 50px; + line-height: 50px; } } -.menuslist{ - max-height: 200px; - overflow-y: auto; - padding:10px 15px; - border-radius: 4px; - .ant-dropdown-menu-item{ - border-radius: 8px; - text-align: left!important; - a{ - width: 350px; - overflow: hidden; - white-space: nowrap; - text-overflow: ellipsis; - } - } - .ant-dropdown-menu-item.active{ - background-color: #e6f7ff; - } -} .catelogue{ - border:1px solid rgb(211, 211, 211); + cursor: pointer; + background: #FAFBFC; + border-radius: 4px; + border: 1px solid #D0D0D0; font-size: 15px; font-weight: normal; - border-radius: 5px; - margin-right: 10px; + margin-right: 12px; padding:0px 10px; height: 30px; line-height: 30px; color: #666!important; display: flex; align-items: center; + &:hover{ + background-color: #F3F4F6; + } span{ margin-top: 1px; } @@ -370,4 +401,24 @@ &:hover{ color: #05101a; } +} +.pinfos{ + i,a{color: #666;} + &:hover i,&:hover a{ + color: #466AFF; + } +} +.graph{ + flex:1; + margin:0px 12px; + .ant-typography{ + white-space: pre-wrap; + margin-bottom: 0px; + } +} +.ant-anchor-wrapper{ + padding-left: 2px; + .ant-anchor-ink::before{ + background-color: #fff; + } } \ No newline at end of file diff --git a/src/forge/Main/IndexItem.js b/src/forge/Main/IndexItem.js index fcfa2d2a..4f9740c1 100644 --- a/src/forge/Main/IndexItem.js +++ b/src/forge/Main/IndexItem.js @@ -5,7 +5,7 @@ import { AlignCenter } from '../Component/layout'; import { Link } from 'react-router-dom'; import '../css/index.scss'; import Nodata from '../Nodata'; -import './list.css'; +import './list.scss'; import img_parise from '../Images/parise.png'; class IndexItem extends Component { diff --git a/src/forge/Main/list.css b/src/forge/Main/list.css index 43df25ca..9a333672 100644 --- a/src/forge/Main/list.css +++ b/src/forge/Main/list.css @@ -1,160 +1,193 @@ +@charset "UTF-8"; +.lineH2 { + line-height: 2; +} -.lineH2{line-height:2} .t_project_banner { /* height: 260px; background: url(../Images/banner_list.jpg) no-repeat center; */ background-color: #050d34; } -.ProjectListIndex{ + +.ProjectListIndex { width: 1200px; - margin:20px auto; + margin: 20px auto; display: flex; align-items: flex-start; - flex-wrap:wrap; + flex-wrap: wrap; } -.list-left{ + +.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; + +.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-inline, .ant-menu-vertical, .ant-menu-vertical-left { + border-right: none !important; } -.ant-menu-vertical > .ant-menu-item{ - margin:0px!important; + +.ant-menu-vertical > .ant-menu-item { + margin: 0px !important; height: 35px; line-height: 35px; border-bottom: 1px solid #eee; - font-size: 14px!important; + font-size: 14px !important; } -.ant-menu-vertical > .ant-menu-item:last-child{ + +.ant-menu-vertical > .ant-menu-item:last-child { border-bottom: none; } - -.list-r-operation{ +.list-r-operation { display: flex; justify-content: space-between; flex-wrap: wrap; align-items: center; - padding:25px 30px; + padding: 25px 30px; border-bottom: 1px solid #E0E0E0; } -.list-r-Search{ + +.list-r-Search { width: 400px; } -.padding0-25{ - padding:0px 25px; + +.padding0-25 { + padding: 0px 25px; } -.list-r-Search .ant-btn-lg{ + +.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{ + +.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; + padding: 3px 15px; background-color: #4CACFF; - color: #fff!important; + color: #fff !important; } - /* 列表 */ -.project-list{ - padding:0px 30px; +.project-list { + padding: 0px 30px; } -.border-top-grey{ - border-top: 1px solid rgba(238,238,238,1); + +.border-top-grey { + border-top: 1px solid #eeeeee; } -.p-r-Item:last-child{ - border-bottom: none !important; + +.p-r-Item:last-child { + border-bottom: none !important; } -.p-r-Item{ + +.p-r-Item { display: flex; - border-bottom:1px solid rgba(238,238,238,1); - padding:22px 0px; + 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); + +.boxShandow { + box-shadow: 0px 2px 20px 10px rgba(0, 0, 0, 0.03); } -.p-r-photo{ + +.p-r-photo { width: 60px; height: 60px; border-radius: 50%; margin-right: 22px; margin-top: 8px; } -.p-r-Infos{ + +.p-r-Infos { flex: 1; width: 0; } -.p-r-name{ + +.p-r-name { display: flex; justify-content: space-between; align-items: center; } -.p-r-name > p{ + +.p-r-name > p { flex: 1; width: 0; } -.p-r-btn{ + +.p-r-btn { display: flex; align-items: center; } -.p-r-btn > span{ + +.p-r-btn > span { height: 35px; line-height: 35px; - border:1px solid #f4f4f4; + border: 1px solid #f4f4f4; border-radius: 5px; display: block; margin-left: 20px; background-color: #fff; display: flex; } -.p-r-btn > span > a{ + +.p-r-btn > span > a { display: flex; align-items: center; - padding:0px 12px; - background:#ececec; + padding: 0px 12px; + background: #ececec; } -.p-r-btn > span > a:active{ + +.p-r-btn > span > a:active { background: #f4f4f4; } -.p-r-btn > span > span{ - padding:0px 8px; + +.p-r-btn > span > span { + padding: 0px 8px; } -.p-r-tags{ + +.p-r-tags { display: flex; opacity: 1; } -.p-r-tags.large > span{ + +.p-r-tags.large > span { height: 30px; line-height: 30px; font-size: 14px; } -.p-r-tags > span{ + +.p-r-tags > span { margin-left: 15px; - padding:0px 10px; - border-radius:15px; + padding: 0px 10px; + border-radius: 15px; background: #EBF4FE; color: #333; height: 24px; @@ -163,152 +196,191 @@ font-size: 12px; display: flex; } -.p-r-tags > span.pariseTag{ + +.p-r-tags > span.pariseTag { background: #FFF3DC; } -.p-r-tags.large > span >label{ - padding:0px 12px; + +.p-r-tags.large > span > label { + padding: 0px 12px; } -.p-r-tags > span >label{ - padding:0px 8px; + +.p-r-tags > span > label { + padding: 0px 8px; } -.p-r-tags.large > span >span{ - padding:0px 6px; + +.p-r-tags.large > span > span { + padding: 0px 6px; } -.pariseImg{ + +.pariseImg { width: 14px; height: 12px; margin-top: 6px; margin-right: 3px; } -.p-r-tags > span >span{ + +.p-r-tags > span > span { display: block; background: #fff; border-left: #efefef; - padding:0px 4px; + padding: 0px 4px; border-radius: 0px 4px 4px 0px; color: #999; } -.p-r-content{ - margin-top:10px; + +.p-r-content { + margin-top: 10px; color: #666; display: flex; } -.p-r-detail > span{ + +.p-r-detail > span { margin-right: 22px; color: #888; } -.p-r-detail > span > label{ + +.p-r-detail > span > label { color: #999; } -.p-r-about{ +.p-r-about { display: flex; justify-content: space-between; flex-wrap: nowrap; margin-top: 8px; color: #666; } -.spincontent{ - height:400px; + +.spincontent { + height: 400px; } -.spinstyle .ant-spin-text{ - margin-top:30px; + +.spinstyle .ant-spin-text { + margin-top: 30px; color: #888; } + /* -----------详情------------ */ -.detailHeader-wrapper{ - background-color:#FAFBFC; - /* background: url(../Images/forgeBanner.jpg) no-repeat center; */ - /* background-size:cover; */ +.detailHeader-wrapper { + background-color: #FBFCFF; + border-bottom: 1px solid #e2e2e2; } -.headerMenu-wrapper{ - font-size: 16px; + +.headerMenu-wrapper { display: flex; flex-direction: row; + cursor: pointer; } -.headerMenu-wrapper li{ +.headerMenu-wrapper li { position: relative; text-align: center; + padding: 0px; +} +.headerMenu-wrapper li > a { + font-size: 14px; height: 40px; line-height: 28px; - margin-right: 40px; -} -.headerMenu-wrapper li a{ + padding: 0px 20px; + display: block; color: #666; } -.headerMenu-wrapper li a > img{ +.headerMenu-wrapper li > a > img { margin-right: 8px; } -.headerMenu-wrapper li a > span.num{ - height: 28px; - line-height: 29px; - margin-left: 8px; +.headerMenu-wrapper li > a > span.num { + line-height: 24px; + margin-left: 5px; + margin-top: 2px; font-size: 12px; - color: #2878FF; float: right; + color: #666 !important; + background-color: rgba(153, 153, 153, 0.13); + border-radius: 50%; + width: 24px; + height: 24px; } -.headerMenu-wrapper li.active::after{ +.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: #5091FF; - content:''; + bottom: 0px; + height: 2px; + background-color: rgba(153, 153, 153, 0.2); + content: ""; left: 0px; - width:100%; + width: 100%; } -.detail_tag_btn{ - height:26px; - line-height: 26px; - border-radius:5px; - border:1px solid #f1f1f1; +.headerMenu-wrapper li.active::after { + background-color: #466AFF; +} + +.detail_tag_btn { + height: 34px; + line-height: 32px; + border-radius: 5px; + border: 1px solid #D0D0D0; display: flex; align-items: center; - margin-left: 30px; - padding:0px; - background-color: transparent; + margin-left: 10px; + padding: 0px; + background-color: #FAFBFC; box-shadow: none; } -.ant-tooltip { - max-width: fit-content!important; +.detail_tag_btn:hover { + background-color: #F3F4F6; } -.detail_tag_btn_name{ - padding:0px 10px; - color: #666!important; +.detail_tag_btn .detail_tag_btn_name { + padding: 0px 18px; + min-width: 82px; + text-align: center; } -.detail_tag_btn_name img{ +.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_count{ - padding:0px 10px; +.detail_tag_btn .detail_tag_btn_count { + width: 42px; + text-align: center; background: #fff; border-radius: 0px 4px 4px 0px; - font-size: 12px; - height:100%; + height: 100%; + border-left: 1px solid #D0D0D0; } -.files-md{ - padding:20px; + +.ant-tooltip { + max-width: fit-content !important; } + +.files-md { + padding: 20px; +} + /* 详情-代码 */ -.branch-wrapper{ - border:1px solid #eee; +.branch-wrapper { + border: 1px solid #eee; border-radius: 4px; display: flex; align-items: center; height: 60px; - padding:0px 30px; + padding: 0px 30px; width: 1200px; - margin:0px auto; + margin: 0px auto; background-color: #fff; margin-top: 20px; justify-content: space-between; } -.branch-wrapper > a >i{ + +.branch-wrapper > a > i { color: #5091FF; margin-right: 5px; cursor: default; } -.branch-wrapper a{ + +.branch-wrapper a { display: flex; align-items: center; justify-content: center; @@ -319,417 +391,518 @@ font-size: 16px; color: #333333; } -.branch-wrapper a > span{ + +.branch-wrapper a > span { position: relative; min-height: 20px; display: block; } -.branch-wrapper a.active > span::after{ + +.branch-wrapper a.active > span::after { position: absolute; - content: ''; + content: ""; bottom: -5px; width: 30px; height: 3px; left: 0px; - background-color:#5091FF; + background-color: #5091FF; } - -.gitAddressClone{ +.gitAddressClone { + margin: 0px 20px 14px 20px !important; display: flex; height: 40px; align-items: center; border-radius: 4px; - border:1px solid #eee; + border: 1px solid #eee; background: #fff; margin-left: 20px; position: relative; } -.gitAddressClone > span{ + +.gitAddressClone > span { display: flex; line-height: 40px; height: 40px; - padding:0px 12px; + padding: 0px 12px; cursor: pointer; align-items: center; } -.addressTips{ + +.addressTips { position: absolute; font-size: 12px; color: #FF6E21; - top:-34px; + top: -34px; left: 30px; background-color: #fff; - border:1px solid #FE881D; - padding:0px 5px; + border: 1px solid #FE881D; + padding: 0px 5px; height: 28px; line-height: 28px; } -.addressTips>span{position: relative;display: block;} -.addressTips>span::before{ + +.addressTips > span { + position: relative; + display: block; +} + +.addressTips > span::before { box-sizing: content-box; width: 0px; height: 0px; position: absolute; top: 25px; - left:50%; + 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; + 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:''; + content: ""; z-index: 12; } -.addressTips>span::after{ + +.addressTips > span::after { box-sizing: content-box; width: 0px; height: 0px; position: absolute; top: 26px; - left:50%; + 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; + 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:''; + content: ""; z-index: 11; } -.gitAddressClone > span.addressType{ + +.gitAddressClone > span.addressType { color: #4CACFF; } -.gitAddressClone > span:last-child{ + +.gitAddressClone > span:last-child { border-right: none; } -.gitAddressClone > input{ - border:none; + +.gitAddressClone > input { + border: none; outline: none; - padding:0px 8px; + padding: 0px 8px; height: 40px; line-height: 40px; border-radius: 0px; border: 1px solid #eee; - flex:1; + flex: 1; } -.wrap-commit-table .ant-table-small > .ant-table-content > .ant-table-body{ - margin:0px; + +.wrap-commit-table .ant-table-small > .ant-table-content > .ant-table-body { + margin: 0px; } -.wrap-commit-table .ant-table-title{ - background-color: rgba(241,248,255,1); - padding: 13px 16px!important; + +.wrap-commit-table .ant-table-title { + background-color: #f1f8ff; + padding: 13px 16px !important; } -.commitKey{ + +.commitKey { cursor: pointer; - border:1px solid #FD7700; - background-color:#FFF3DC; - color: #FD7700!important; - padding:0px 12px; + border: 1px solid #FD7700; + background-color: #FFF3DC; + color: #FD7700 !important; + padding: 0px 12px; height: 20px; line-height: 20px; - margin-left:15px; + margin-left: 15px; border-radius: 18px; max-width: 100%; } + /* 分支 */ -.branchTitle{ - padding:8px 10px; +.branchTitle { + padding: 8px 10px; color: #333; font-size: 16px; border-bottom: 1px solid #d9d9d9; } -.branchUl li{ + +.branchUl li { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; - padding:20px 0px; + padding: 20px 0px; border-bottom: 1px solid #eee; } -.branchUl li:last-child{ + +.branchUl li:last-child { border-bottom: none; } -.operationBtn{ - border:1px solid #f4f4f4; + +.operationBtn { + border: 1px solid #f4f4f4; border-radius: 3px; - padding:0px 6px; - background-color:#fff; - color:#666!important; + padding: 0px 6px; + background-color: #fff; + color: #666 !important; display: inline-block; } -.messages{ + +.messages { max-width: 700px; } -.leftPoint{ + +.leftPoint { margin-left: 20px; position: relative; } -.leftPoint::before{ + +.leftPoint::before { position: absolute; left: -10px; - top:8px; + top: 8px; border-radius: 50%; width: 4px; height: 4px; background-color: #dadada; - content: ''; + content: ""; } /* 文件目录、文件内容 */ -.subFileName{ +.subFileName { position: relative; margin-left: 15px; height: 22px; } -.subFileName::before{ + +.subFileName::before { position: absolute; - content: '/'; + content: "/"; left: -10px; top: 0px; color: #999; height: 22px; line-height: 22px; } -.addFile{ + +.addFile { display: flex; } -.addFile a{ + +.addFile a { display: block; - background-color: rgb(76, 172, 255,0.8); + background-color: rgba(76, 172, 255, 0.8); color: #fff; cursor: pointer; height: 32px; line-height: 32px; padding: 0px 10px; } -.addFile a:first-child{ + +.addFile a:first-child { border-radius: 4px; } -.addFile a:last-child{ + +.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: rgb(76, 172, 255,1); + +.addFile a:active { + background-color: #4cacff; } - - -@media screen and (max-width: 750px){ - .list-r-Search{ +@media screen and (max-width: 750px) { + .list-r-Search { flex: 1; } - .list-left,.list-right{ + + .list-left, .list-right { width: 100%; padding: 0px; } } - -@media screen and (max-width: 400px){ - .list-r-Search{ +@media screen and (max-width: 400px) { + .list-r-Search { width: 100%; } - .headerMenu-wrapper{ + + .headerMenu-wrapper { flex-direction: column; width: 100%; } - .headerMenu-wrapper li{ + + .headerMenu-wrapper li { width: 100%; } - .gitAddressClone{ - width:100%; + + .gitAddressClone { + width: 100%; margin-left: 0px; } - .gitAddressClone > span{ - padding:0px; + + .gitAddressClone > span { + padding: 0px; } - .messages{ + + .messages { max-width: 100%; } } -.commonBox{ - border:1px solid #ddd; +.commonBox { + border: 1px solid #ddd; margin-top: 30px; border-radius: 4px; } -.commonBox .commonBox-title{ - padding:0px 20px; + +.commonBox .commonBox-title { + padding: 0px 20px; box-sizing: border-box; font-size: 16px; - background: #FAFBFC;/* F1F8FF */ + background: #FAFBFC; + /* F1F8FF */ font-weight: bold; height: 45px; line-height: 45px; border-bottom: 1px solid #d9d9d9; border-radius: 4px 4px 0px 0px; } -.commonBox .commonBox-title.boxTitle{ + +.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{ + +.synchronism { display: block; - height: 26px; - line-height: 26px; - padding:0px 15px; - color: #fff!important; + height: 34px; + line-height: 34px; + padding: 0px 15px; + color: #fff !important; background-color: #28BD6C; border-radius: 4px; } -.files_info{ + +.files_info { cursor: pointer; } -.commonBox .commonBox-info{ - padding:20px 15px; -} -.commonBox-title-read{vertical-align: middle;color: #666;} -@media screen and (max-width: 370px){ - .p-r-tags,.p-r-btn{ +.commonBox .commonBox-info { + padding: 20px 15px; +} + +.commonBox-title-read { + vertical-align: middle; + color: #000; + font-size: 14px; +} + +@media screen and (max-width: 370px) { + .p-r-tags, .p-r-btn { opacity: 0; display: none; } - .p-r-about{ + + .p-r-about { flex-wrap: wrap; } - .commitKey{ + + .commitKey { margin-right: 0px; } - .list-r-Search{ + + .list-r-Search { width: 100%; } } -.null_data_box{ +.null_data_box { width: 100%; border: 1px solid #d4d4d5; - border-radius:3px ; + border-radius: 3px; } -.title{ + +.title { font-weight: bold; background: #f4f4f4; padding: 10px 15px; box-sizing: border-box; border-bottom: 1px solid #d4d4d5; } -.item_title{ - font-size:18px; + +.item_title { + font-size: 18px; font-weight: bold; margin-bottom: 15px; } -.item{ + +.item { padding: 15px; - border-bottom: 1px solid #dededf; + border-bottom: 1px solid #dededf; } -.item:last-child{ - border-bottom:none; + +.item:last-child { + border-bottom: none; } -.gitAddressClone{ - margin: 0 !important; -} -.item_title small{ + +.item_title small { font-weight: 400; margin-left: 10px; - } -.item_title small a{ + +.item_title small a { color: #4183c6; } -.Markdown{ + +.Markdown { background: #f7f7f7; padding: 10px 20px; } -.item .gitAddressClone input:focus{ -border: 1px solid #2185d0; -} -.content-file{margin-top: 8px;} -.content-file .CodeMirror{ +.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{ + +.content-file.edit .CodeMirror { background-color: #fff; } -.content-file .CodeMirror .CodeMirror-scroll{ + +.content-file .CodeMirror .CodeMirror-scroll { min-height: 450px; } -.text-center{text-align: center;} -.fork-css{ + +.text-center { + text-align: center; +} + +.fork-css { position: absolute; left: 0; top: 50px; width: 100%; } -.color-grey-ccc{ + +.color-grey-ccc { color: #ccc !important; } -a.color-grey-ccc:hover{ + +a.color-grey-ccc:hover { color: #4cacff !important; } -.pull-right{float: right;} -.commitList{ - padding:0px 30px; +.pull-right { + float: right; +} + +.commitList { + padding: 0px 30px; min-height: 400px; } -.commitList > div{ + +.commitList > div { border-bottom: 1px solid #EEEEEE; - padding:16px 0px; + padding: 16px 0px; } -.commitList > div:last-child{ + +.commitList > div:last-child { border-bottom: none; } - /* 标签列表 */ -.div_table{ - border:1px solid #eee; +.div_table { + border: 1px solid #eee; border-radius: 2px; } -.ul_thead{ - padding:0px 30px; + +.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_tbody { + padding: 0px 30px; } -.ul_thead li, .ul_tbody li{ + +.ul_thead li, .ul_tbody li { display: flex; align-items: center; - text-align: left + text-align: left; } -.ul_tbody li{ - padding:18px 0px; + +.ul_tbody li { + padding: 18px 0px; border-bottom: 1px solid #eee; } -.ul_tbody li:last-child{ + +.ul_tbody li:last-child { border-bottom: none; } -.ul_thead li > span , .ul_tbody li > span{ + +.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_thead li > span:nth-child(2), .ul_tbody li > span:nth-child(2) { + flex: 1; } -.ul_tbody_third{ + +.ul_tbody_third { display: flex; flex-direction: column; align-items: flex-start; justify-content: left; } -.ul_tbody_forth{ + +.ul_tbody_forth { text-align: center; display: flex; justify-content: center; -} \ No newline at end of file +} + +.depotNum { + color: #666 !important; +} +.depotNum span:last-child { + color: #333; +} +.depotNum:hover span:last-child { + color: #2A61FF; +} + +/*# sourceMappingURL=list.css.map */ diff --git a/src/forge/Main/list.css.map b/src/forge/Main/list.css.map new file mode 100644 index 00000000..2988b3f8 --- /dev/null +++ b/src/forge/Main/list.css.map @@ -0,0 +1 @@ +{"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;;;AAGF;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"} \ No newline at end of file diff --git a/src/forge/Main/list.scss b/src/forge/Main/list.scss new file mode 100644 index 00000000..9fc217ed --- /dev/null +++ b/src/forge/Main/list.scss @@ -0,0 +1,783 @@ + +.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 rgba(238,238,238,1); +} +.p-r-Item:last-child{ + border-bottom: none !important; +} +.p-r-Item{ + display: flex; + border-bottom:1px solid rgba(238,238,238,1); + 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; + li{ + position: relative; + text-align: center; + padding:0px; + & > a{ + font-size: 14px; + height: 40px; + line-height: 28px; + padding:0px 20px; + display: block; + color: #666; + &> img{ + margin-right: 8px; + } + &> 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; + } + } + &.active a,&.active a i{ + color: #466AFF!important; + } + &.active::after,&:hover::after{ + position: absolute; + bottom:0px; + height:2px; + background-color:rgba(153, 153, 153, 0.2); + content:''; + left: 0px; + width:100%; + } + &.active::after{ + background-color: #466AFF; + } + } +} +.detail_tag_btn{ + height:34px; + 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; + &:hover{ + background-color: #F3F4F6; + } + .detail_tag_btn_name{ + padding:0px 18px; + min-width: 82px; + text-align: center; + &:hover>span{ + color: #333!important; + } + img{ + margin-right: 10px; + } + } + .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: rgba(241,248,255,1); + 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: rgba(76, 172, 255,1); +} + + + +@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; + &.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; +} + +@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; + span:last-child{ + color: #333; + } + &:hover span:last-child{ + color: #2A61FF; + } +} \ No newline at end of file diff --git a/src/forge/Main/sub/DetailBanner.jsx b/src/forge/Main/sub/DetailBanner.jsx index e0ca4db1..1a6bd4f6 100644 --- a/src/forge/Main/sub/DetailBanner.jsx +++ b/src/forge/Main/sub/DetailBanner.jsx @@ -1,6 +1,7 @@ import React, { useEffect, useState } from 'react'; import { Skeleton , Tooltip} from 'antd'; import { Link } from 'react-router-dom'; +import { numFormat } from 'educoder'; function DetailBanner({ history,list , owner , projectsId , isManager , url , pathname , state , urlFlag , projectDetail , platform ,open_devops }){ const [ menuName , setMenuName ] = useState(undefined); @@ -17,7 +18,7 @@ function DetailBanner({ history,list , owner , projectsId , isManager , url , pa } },[list]); return( -
    +
    { menuName && projectDetail ?
      @@ -29,7 +30,7 @@ function DetailBanner({ history,list , owner , projectsId , isManager , url , pa item.menu_name === "home" &&
    • - + 主页
    • @@ -38,7 +39,7 @@ function DetailBanner({ history,list , owner , projectsId , isManager , url , pa item.menu_name === "code" &&
    • - + 代码库
    • @@ -48,9 +49,9 @@ function DetailBanner({ history,list , owner , projectsId , isManager , url , pa
    • - + 易修 - {projectDetail && projectDetail.issues_count ? {projectDetail.issues_count} : ""} + {projectDetail && projectDetail.issues_count ? {numFormat(projectDetail.issues_count)} : ""}
    • @@ -59,9 +60,9 @@ function DetailBanner({ history,list , owner , projectsId , isManager , url , pa item.menu_name === "pulls" && projectDetail && parseInt(projectDetail.type) !== 2 && platform ?
    • - + 合并请求 - {projectDetail && projectDetail.pull_requests_count ? {projectDetail.pull_requests_count} : ""} + {projectDetail && projectDetail.pull_requests_count ? {numFormat(projectDetail.pull_requests_count)} : ""}
    • :"" } @@ -78,8 +79,8 @@ function DetailBanner({ history,list , owner , projectsId , isManager , url , pa item.menu_name === "devops" && platform ?
    • - 工作流(beta版) - {projectDetail && projectDetail.ops_count ? {projectDetail.ops_count} : ""} + 工作流(beta版) + {projectDetail && projectDetail.ops_count ? {numFormat(projectDetail.ops_count)} : ""}
    • :"" @@ -90,7 +91,7 @@ function DetailBanner({ history,list , owner , projectsId , isManager , url , pa 资源库 - {projectDetail && projectDetail.source_count ? {projectDetail.source_count} :""} + {projectDetail && projectDetail.source_count ? {numFormat(projectDetail.source_count)} :""} } @@ -98,9 +99,9 @@ function DetailBanner({ history,list , owner , projectsId , isManager , url , pa item.menu_name === "versions" &&
    • - + 里程碑 - {projectDetail && projectDetail.versions_count ? {projectDetail.versions_count} :""} + {projectDetail && projectDetail.versions_count ? {numFormat(projectDetail.versions_count)} :""}
    • } @@ -108,7 +109,7 @@ function DetailBanner({ history,list , owner , projectsId , isManager , url , pa item.menu_name === "activity" &&
    • - + 动态
    • @@ -117,7 +118,7 @@ function DetailBanner({ history,list , owner , projectsId , isManager , url , pa item.menu_name === "setting" &&
    • - 0 ? "iconfont icon-cangku color-grey-3 mr5 font-14":"iconfont icon-cangku color-grey-6 font-14 mr5"}> + 0 ? "iconfont icon-cangkushezhiicon color-grey-3 mr5 font-14":"iconfont icon-cangkushezhiicon color-grey-6 font-14 mr5"}> 仓库设置
    • diff --git a/src/forge/Main/sub/Invite.jsx b/src/forge/Main/sub/Invite.jsx index ad2a00bd..e621bd6d 100644 --- a/src/forge/Main/sub/Invite.jsx +++ b/src/forge/Main/sub/Invite.jsx @@ -15,7 +15,7 @@ function Invite({code,className}) { } return(
      - 邀请码 + 邀请码
      {code} 可以通过邀请码邀请成员加入项目
      点击复制邀请码。

      } placement={"bottom"}> diff --git a/src/forge/Main/sub/ReadmeCatelogue.jsx b/src/forge/Main/sub/ReadmeCatelogue.jsx new file mode 100644 index 00000000..d1e018bb --- /dev/null +++ b/src/forge/Main/sub/ReadmeCatelogue.jsx @@ -0,0 +1,57 @@ +import React , { useState , useEffect } from 'react'; +import { Anchor , Input } from 'antd'; +import './sub.scss'; +import { Base64 } from 'js-base64'; + +const { Link } = Anchor; + +function ReadmeCatelogue({ menuList , hash }) { + const [ goHref , setGoHref ] = useState(""); + const [ value , setValue ] = useState(""); + const [ menu , setMenu] = useState(menuList); + + + function onChange(link){ + setGoHref(link); + }; + + function changeValue(e) { + setValue(e.target.value); + if(e.target.value){ + let m = menuList.filter(i=>i.text.indexOf(e.target.value)>-1); + setMenu(m); + }else{ + setMenu(menuList); + } + } + return( +
      +
      + }/> +
      + { + menu && menu.length>0? +
      + + { + menu.map((item,key)=>{ + return( +
      + +
      + ) + }) + } +
      +
      + :"" + } + +
      + ) +} +export default ReadmeCatelogue; \ No newline at end of file diff --git a/src/forge/Main/sub/sub.css b/src/forge/Main/sub/sub.css new file mode 100644 index 00000000..65290c72 --- /dev/null +++ b/src/forge/Main/sub/sub.css @@ -0,0 +1,68 @@ +.boxPanel { + width: 1200px; + margin: 20px auto; + border-radius: 4px; + border: 1px solid #eee; + min-height: 500px; +} +.boxPanel .contrbuteList { + display: flex; + flex-wrap: wrap; + padding: 20px; + align-items: flex-start; +} +.boxPanel .contrbuteList > div { + width: 20%; +} + +.descmodal .ant-row.ant-form-item { + margin-bottom: 10px; +} +.descmodal .ant-col.ant-form-item-label { + height: 20px; + line-height: 20px; +} + +.menuslist { + z-index: 100; + width: 297px; + background: #FFFFFF; + box-shadow: 0px 4px 8px 2px rgba(212, 212, 212, 0.5); + border-radius: 4px; +} +.menuslist .searchBox { + padding: 15px; + border-bottom: 1px solid #eee; +} +.menuslist .ant-anchor-wrapper { + margin-left: 0px; + padding: 5px 15px; + max-height: 255px !important; +} +.menuslist .ant-anchor-wrapper .items { + border-radius: 4px; + margin-bottom: 5px; + cursor: pointer; +} +.menuslist .ant-anchor-wrapper .items .ant-anchor-link-title { + color: #333333 !important; +} +.menuslist .ant-anchor-wrapper .items:hover { + background-color: #F3F4F6; +} +.menuslist .ant-anchor-wrapper .items.active { + background-color: #2A61FF; +} +.menuslist .ant-anchor-wrapper .items.active .ant-anchor-link-title { + color: #fff !important; +} +.menuslist .ant-anchor-wrapper .ant-anchor-link { + padding: 0px; + height: 30px; + line-height: 30px; +} +.menuslist .ant-anchor-wrapper .ant-anchor-ink::before { + background-color: #fff; +} + +/*# sourceMappingURL=sub.css.map */ diff --git a/src/forge/Main/sub/sub.css.map b/src/forge/Main/sub/sub.css.map new file mode 100644 index 00000000..256c9fa0 --- /dev/null +++ b/src/forge/Main/sub/sub.css.map @@ -0,0 +1 @@ +{"version":3,"sourceRoot":"","sources":["sub.scss"],"names":[],"mappings":"AAAA;EACE;EACA;EACA;EACA;EACA;;AACA;EACE;EACA;EACA;EAIA;;AAHA;EACE;;;AAMJ;EACE;;AAEF;EACE;EACA;;;AAIJ;EACE;EACA;EACA;EACA;EACA;;AACA;EACE;EACA;;AAEF;EACE;EACA;EACA;;AACA;EACE;EACA;EACA;;AACA;EACE;;AAEF;EACE;;AAEF;EACE;;AACA;EACE;;AAIN;EACE;EACA;EACA;;AAEF;EACE","file":"sub.css"} \ No newline at end of file diff --git a/src/forge/Main/sub/sub.scss b/src/forge/Main/sub/sub.scss index aa873971..4e6a3d8a 100644 --- a/src/forge/Main/sub/sub.scss +++ b/src/forge/Main/sub/sub.scss @@ -24,7 +24,44 @@ } } -.detailsCode{ - display: flex; - justify-content: space-between; +.menuslist{ + z-index: 100; + width: 297px; + background: #FFFFFF; + box-shadow: 0px 4px 8px 2px rgba(212, 212, 212, 0.5); + border-radius: 4px; + .searchBox{ + padding:15px; + border-bottom: 1px solid #eee; + } + .ant-anchor-wrapper{ + margin-left: 0px; + padding:5px 15px; + max-height: 255px!important; + .items{ + border-radius: 4px; + margin-bottom: 5px; + cursor: pointer; + .ant-anchor-link-title{ + color: #333333!important; + } + &:hover{ + background-color: #F3F4F6; + } + &.active{ + background-color: #2A61FF; + .ant-anchor-link-title{ + color: #fff!important; + } + } + } + .ant-anchor-link{ + padding:0px; + height: 30px; + line-height: 30px; + } + .ant-anchor-ink::before{ + background-color: #fff; + } + } } \ No newline at end of file diff --git a/src/forge/Notice/Index.jsx b/src/forge/Notice/Index.jsx index 63d09748..02f05a87 100644 --- a/src/forge/Notice/Index.jsx +++ b/src/forge/Notice/Index.jsx @@ -70,9 +70,9 @@ function Index(props){ function deleteEvent(type,count) { let c = count; if(type==="apply"){ - setTransferCount(transferCount-count); - }else if(type==="undo"){ setApplyCount(applyCount-count); + }else if(type==="undo"){ + setTransferCount(transferCount-count); }else{ setMessagesCount(0); c = messagesCount; diff --git a/src/forge/Notice/UndoEvent.jsx b/src/forge/Notice/UndoEvent.jsx index d93a1f83..c8c579dc 100644 --- a/src/forge/Notice/UndoEvent.jsx +++ b/src/forge/Notice/UndoEvent.jsx @@ -53,7 +53,7 @@ function UndoEvent(props){ Axios.post(url).then(result=>{ if(result && result.data){ getList(); - props && props.deleteEvent("apply",1); + props && props.deleteEvent("undo",1); } }).catch(error=>{}) } diff --git a/src/forge/Order/Milepost.js b/src/forge/Order/Milepost.js index ede2d314..c18baf1b 100644 --- a/src/forge/Order/Milepost.js +++ b/src/forge/Order/Milepost.js @@ -118,11 +118,12 @@ class Milepost extends Component { } ChangePage = (page) => { + document.body.scrollIntoView(); this.setState({ page }) - - this.getList(page); + const { status } = this.state; + this.getList( page , status ); } // 排序 @@ -259,7 +260,7 @@ class Milepost extends Component { { data && data.versions_count > limit ?
      - +
      : "" }
      diff --git a/src/forge/Team/Group/GroupForm.jsx b/src/forge/Team/Group/GroupForm.jsx index 2eb8540f..e27161e0 100644 --- a/src/forge/Team/Group/GroupForm.jsx +++ b/src/forge/Team/Group/GroupForm.jsx @@ -24,21 +24,24 @@ export default Form.create()( const [check_box, setCheckBox] = useState(false); const [switch_box, setSwtichBox] = useState([]); const [onwers, setOnwers] = useState(false); + const [auth, setAuth] = useState(""); const [ descNum , setDescNum ] = useState(0); const [switch_box_code, setSwtichBoxCode] = useState(false); const [switch_box_pull, setSwtichBoxPull] = useState(false); const [switch_box_issue, setSwtichBoxIssue] = useState(false); const [switch_box_release, setSwtichBoxRelease] = useState(false); + const [switch_box_wiki, setSwtichBoxWiki] = useState(false); const { getFieldDecorator, validateFields, setFieldsValue } = form; const { OIdentifier, groupId } = match.params; useEffect(() => { if (GroupDetail) { setOnwers(GroupDetail.authorize === "owner"); + setAuth(GroupDetail.authorize); setCheckBox(GroupDetail.can_create_org_project) setSwtichBox(GroupDetail.units) setFieldsValue({ - ...GroupDetail + ...GroupDetail, }) setDescNum(GroupDetail.description ? GroupDetail.description.length : 0); } @@ -50,6 +53,7 @@ export default Form.create()( setSwtichBoxPull(switch_checked("pulls")) setSwtichBoxIssue(switch_checked("issues")) setSwtichBoxRelease(switch_checked("releases")) + setSwtichBoxWiki(switch_checked("wiki")) } }, [switch_box]) @@ -132,6 +136,11 @@ export default Form.create()( setSwtichBoxRelease(checked) } + function switch_wiki_types(checked, event) { + switch_unit_types(checked, "wiki"); + setSwtichBoxWiki(checked); + } + function cancelEdit(){ if(groupId){ history.push(`/organize/${OIdentifier}/group/${groupId}`); @@ -140,6 +149,9 @@ export default Form.create()( } } + function changeAuth(params) { + setAuth(params.target.value) + } function checkname(rule, value, callback){ if(!value){ @@ -202,35 +214,40 @@ export default Form.create()( [], 新建项目(成员可以在组织中新建项目。创建者将自动获得新建的项目的管理员权限), false, 20,onwers ? "hide":"" )} - {/* {helper( + {helper( '版本库权限:', "authorize", [], - + 读取权限(成员可以查看和克隆团队项目) 写入权限(成员可以查看和推送提交到团队项目) 管理员权限(成员可以拉取和推送到团队项目同时可以添加协作者) , false, 20,onwers ? "hide":"" - )} */} + )} - {/*

      允许访问项目单元:

      - - - 代码库(查看源码、文件、提交和分支) - - - - 任务(组织 bug 报告、任务和里程碑) - - - - 合并请求(启用合并请求和代码评审) - - - - 版本发布(跟踪项目版本和下载) - - */} +
      +

      允许访问项目单元:

      + + + 代码库(查看源码、文件、提交和分支) + + + + 任务(组织 bug 报告、任务和里程碑) + + + + 合并请求(启用合并请求和代码评审) + + + + 版本发布(跟踪项目版本和下载) + + + + wiki(编辑此仓库的相关文档说明) + +
      cancelEdit()}>取消
      diff --git a/src/forge/Team/Index.css b/src/forge/Team/Index.css new file mode 100644 index 00000000..bf9dac28 --- /dev/null +++ b/src/forge/Team/Index.css @@ -0,0 +1,378 @@ +.teamBox { + margin: 10px 0px; + border: 1px solid #eee; + border-radius: 2px; +} +.teamBox .teamBox-title { + border-bottom: 1px solid #eee; + background-color: #F1F8FF; + height: 50px; + line-height: 50px; + text-align: center; + color: #333; + font-size: 18px; +} +.teamBox .teamBox-form { + padding: 24px 40px 0px 40px; +} +.teamBox .lables { + position: relative; + color: #333; + margin-bottom: 5px; + display: block; + font-size: 16px; +} +.teamBox .lables.must::before { + content: "*"; + color: #F73030; + font-size: 18px; + position: absolute; + left: -15px; + height: 100%; +} + +.ant-btn.grey { + background: #bbb; + color: #fff; + border: 1px solid #bbb; +} + +.teamDetail { + width: 1200px; + margin: 0px auto; + padding-top: 18px; +} + +.list { + display: flex; + align-items: flex-start; +} +.list .list-l { + background-color: #fff; + max-width: 860px; + width: 72%; + margin-bottom: 30px; + border: 1px solid #eee; +} +.list .list-l .head { + padding: 16px 32px; + border-bottom: 1px solid #eee; + display: flex; + justify-content: space-between; + align-items: center; +} +.list .list-l .head .addBtn { + display: inline-block; + border-radius: 5px; + border: 1px solid #5091FF; + color: #5091FF; + height: 30px; + line-height: 30px; + padding: 0px 10px; +} +.list .list-l .head .ant-btn.ant-input-search-button { + margin-top: -1px; + margin-right: -1px; +} +.list .list-l .team { + padding: 0px 32px; + min-height: 450px; +} +.list .list-l .team .team_project { + padding: 22px 0px; + border-bottom: 1px solid #eee; +} +.list .list-l .team .team_project .t_p_title { + display: flex; + align-items: center; + justify-content: space-between; +} +.list .list-l .team .team_project .t_p_title .name { + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; + font-size: 18px; + max-width: 500px; + float: left; +} +.list .list-l .team .team_project .desc { + color: #333; + margin-top: 6px; + margin-bottom: 3px; + overflow: hidden; + text-overflow: ellipsis; + display: -webkit-box; + -webkit-box-orient: vertical; + -webkit-line-clamp: 2; +} +.list .list-l .team .team_project:last-child { + border-bottom: none; +} +.list .list-r { + width: 28%; + max-width: 340px; + padding-left: 20px; + box-sizing: border-box; + margin-bottom: 30px; +} +.list .list-r > div { + border: 1px solid #eee; +} +.list .box { + background: white; + border-radius: 5px; + margin-bottom: 20px; +} +.list .box .head { + padding: 25px 20px; + display: flex; + border-bottom: 1px solid #eee; + justify-content: space-between; + color: #333; +} +.list .box .content { + padding: 13px 0px; +} +.list .box .content .teammembers { + display: flex; + align-items: center; + padding: 13px 20px; +} +.list .box .content .teammembers .m-img { + border-radius: 50%; + width: 45px; + height: 45px; + margin-right: 12px; +} +.list .box .foot { + padding: 15px 20px; + border-top: 1px solid #eee; +} + +.subNavs { + display: flex; +} +.subNavs a { + display: block; + margin-left: 14px; + height: 40px; + padding: 0px 22px; + border-radius: 2px; + border: 1px solid #eee; + background-color: #fafafa; + color: #333; + display: flex; + align-items: center; + font-size: 14px; +} +.subNavs a span { + display: block; + height: 18px; + line-height: 18px; +} +.subNavs a lable { + display: block; + padding: 0px 7px; + background-color: #eee; + height: 18px; + line-height: 18px; + font-size: 12px; + border-radius: 10px; + margin-left: 5px; +} +.subNavs a.active { + border: 1px solid #5091FF; + color: #5091FF; +} +.subNavs a.active lable { + background-color: #F1F8FF; + color: #5091FF; +} + +.groupBox { + display: flex; + flex-wrap: wrap; + align-items: flex-start; + background-color: #fff; + padding: 30px 35px; + margin-bottom: 30px; +} +.groupBox > div { + border: 1px solid #eee; + background-color: #fff; + width: 48.5%; + margin-right: 3%; + margin-bottom: 30px; +} +.groupBox > div .g-head, .groupBox > div .g-foot { + display: flex; + justify-content: space-between; + background-color: #F1F8FF; + padding: 10px 10px 10px 25px; + align-items: center; +} +.groupBox > div .g-foot { + background-color: #fafafa; + justify-content: left; +} +.groupBox > div .g-body { + padding: 15px 15px; + min-height: 84px; + display: flex; + align-items: center; +} +.groupBox > div .g-body .moreMember { + margin: 0px 10px; +} +.groupBox > div .g-body .moreMember i { + height: 44px; + width: 44px; + line-height: 44px; + color: #ddd !important; + font-size: 44px !important; +} +.groupBox > div:nth-child(2n) { + margin-right: 0px; +} + +.memberBox { + display: flex; + align-items: flex-start; + flex-wrap: wrap; + background-color: #fff; + padding: 24px 35px; + margin-bottom: 30px; + min-height: 400px; + align-content: flex-start; +} +.memberBox > div { + width: 22.75%; + margin-right: 3%; +} +.memberBox > div .m-infos { + flex: 1; +} +.memberBox > div:nth-child(4n) { + margin-right: 0px; +} + +.MemberBoxThree { + display: flex; + align-items: flex-start; + flex-wrap: wrap; + background-color: #fff; + padding: 24px 35px; + margin-bottom: 30px; + min-height: 400px; + align-content: flex-start; +} +.MemberBoxThree > div { + width: 31%; + margin-right: 3.5%; +} +.MemberBoxThree > div .m-infos { + flex: 1; +} +.MemberBoxThree > div:nth-child(3n) { + margin-right: 0px; +} + +.GroupSubLevel { + display: flex; + align-items: flex-start; +} +.GroupSubLevel .g-sub-left { + width: 0; + background-color: #fff; +} +.GroupSubLevel .g-sub-left > div { + border: 1px solid #eee; +} +.GroupSubLevel .g-sub-left .g-desc { + padding: 18px 20px; + color: #333; + min-height: 100px; +} +.GroupSubLevel .g-sub-left .g-tip { + color: #888; + padding: 28px 20px; + border-top: 1px solid #eee; +} +.GroupSubLevel .g-sub-left .g-tip > p { + margin-bottom: 10px !important; +} +.GroupSubLevel .g-sub-left .g-tip > p > span { + color: #333; +} +.GroupSubLevel .g-sub-left .g-tip > button { + margin-top: 10px; +} + +.warningBox { + border-radius: 5px 5px 0px 0px; + border: 1px solid #db2729; + border-radius: 5px 5px 0px 0px; +} +.warningBox .warningTitle { + height: 40px; + line-height: 40px; + background: #ffe8e6; + border-radius: 5px 5px 0px 0px; + border-bottom: 1px solid #db2729; + color: #DB2729; + font-size: 16px; + padding: 0px 30px; +} +.warningBox .warningContent { + padding: 20px 30px; +} +.warningBox .warningDelete { + display: block; + height: 26px; + line-height: 26px; + padding: 0px 15px; + background: #f73030; + border-radius: 20px; + color: #fff; +} + +.teamMemberTable .ant-table-small { + border: none; +} +.teamMemberTable .ant-table-body { + margin: 0px !important; +} +.teamMemberTable .ant-table-body thead tr { + background-color: #F1F8FF; + color: #333; +} +.teamMemberTable .ant-table-body tbody tr:hover:not(.ant-table-expanded-row):not(.ant-table-row-selected) > td { + background-color: #fff; +} +.teamMemberTable .ant-table-body tbody tr td { + border-bottom: 1px solid #eee !important; + padding: 15px 8px !important; +} + +.actionNav { + padding: 20px 30px; + background-color: #FAFAFA; +} + +.GSlist { + padding-top: 15px; + min-height: 400px; +} +.GSlist > div { + padding: 20px 0px; + display: flex; + justify-content: space-between; + align-items: center; + border-bottom: 1px solid #eee; +} + +.hide { + display: none; +} + +/*# sourceMappingURL=Index.css.map */ diff --git a/src/forge/Team/Index.css.map b/src/forge/Team/Index.css.map new file mode 100644 index 00000000..3f5eee8e --- /dev/null +++ b/src/forge/Team/Index.css.map @@ -0,0 +1 @@ +{"version":3,"sourceRoot":"","sources":["Index.scss"],"names":[],"mappings":"AAAA;EACE;EACA;EACA;;AACA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAEF;EACE;;AAEF;EACE;EACA;EACA;EACA;EACA;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;;;AAGJ;EACE;EACA;EACA;;;AAEF;EACE;EACA;EACA;;;AAEF;EACE;EACA;;AACA;EACE;EACA;EACA;EACA;EACA;;AACA;EACE;EACA;EACA;EACA;EACA;;AACA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAEF;EACE;EACA;;AAGJ;EACE;EACA;;AACA;EACE;EACA;;AACA;EACE;EACA;EACA;;AACA;EACE;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEF;EACE;;AAKR;EACE;EACA;EACA;EACA;EACA;;AACA;EACE;;AAGJ;EACE;EACA;EACA;;AACA;EACE;EACA;EACA;EACA;EACA;;AAEF;EACE;;AACA;EACE;EACA;EACA;;AACA;EACE;EACA;EACA;EACA;;AAIN;EACE;EACA;;;AAIN;EACE;;AACA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AACA;EACE;EACA;EACA;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEF;EACE;EACA;;AACA;EACE;EACA;;;AAMR;EACE;EACA;EACA;EACA;EACA;EACA;;AACA;EACE;EACA;EACA;EACA;EACA;;AACA;EACE;EACA;EACA;EACA;EACA;;AAEF;EACE;EACA;;AAEF;EACE;EACA;EACA;EACA;;AACA;EACE;;AACA;EACE;EACA;EACA;EACA;EACA;;AAKR;EACE;;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AACA;EACE;EACA;;AACA;EACE;;AAGJ;EACE;;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AACA;EACE;EACA;;AACA;EACE;;AAGJ;EACE;;;AAIJ;EACE;EACA;;AACA;EACE;EAIA;;AAHA;EACE;;AAGF;EACE;EACA;EACA;;AAEF;EACE;EACA;EACA;;AACA;EACE;;AAEF;EACE;;AAEF;EACE;;;AAKR;EACE;EACA;EACA;;AACA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEF;EACE;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;AAKF;EACE;;AAEF;EACE;;AACA;EACE;EACA;;AAEF;EACE;;AAEF;EACE;EACA;;;AAMN;EACE;EACA;;;AAEF;EACE;EACA;;AACA;EACE;EACA;EACA;EACA;EACA;;;AAGJ;EACE","file":"Index.css"} \ No newline at end of file diff --git a/src/forge/Team/Index.scss b/src/forge/Team/Index.scss index a046f99d..11237973 100644 --- a/src/forge/Team/Index.scss +++ b/src/forge/Team/Index.scss @@ -368,5 +368,5 @@ } } .hide{ - display: hidden; + display: none; } \ No newline at end of file diff --git a/src/forge/Team/Setting/TeamSettingCommon.jsx b/src/forge/Team/Setting/TeamSettingCommon.jsx index 5be03db0..d9bf87c1 100644 --- a/src/forge/Team/Setting/TeamSettingCommon.jsx +++ b/src/forge/Team/Setting/TeamSettingCommon.jsx @@ -1,5 +1,5 @@ import React, { forwardRef , useCallback , useEffect, useState } from 'react'; -import { Form , Input , Radio ,Checkbox , Divider , Button } from 'antd'; +import { Form , Input , Radio ,Checkbox , Divider , Button , InputNumber } from 'antd'; import { WhiteBack , FlexAJ } from '../../Component/layout'; import Title from '../../Component/Title'; import styled from 'styled-components'; @@ -31,7 +31,8 @@ export default Form.create()( useEffect(()=>{ if(organizeDetail){ setFieldsValue({ - ...organizeDetail + ...organizeDetail, + max_repo_creation:organizeDetail.max_repo_creation===-1 ? "":organizeDetail.max_repo_creation }) setImage(organizeDetail.avatar_url); setDescNum(organizeDetail.description ? organizeDetail.description.length : 0); @@ -39,10 +40,10 @@ export default Form.create()( },[organizeDetail]) const helper = useCallback( - (label, name, rules, widget , isRequired , flag ) => ( + (label, name, rules, widget , isRequired , flag , help ) => (
      {label} - + {getFieldDecorator(name, { rules, validateFirst: true , valuePropName:flag ? "checked":"value" })(widget)}
      @@ -175,7 +176,8 @@ export default Form.create()( '最大仓库数:', "max_repo_creation", [], - + ,false,false, + "当输入栏为空时,默认数量无限制" )}

      选择头像:

      diff --git a/src/forge/css/index.css b/src/forge/css/index.css new file mode 100644 index 00000000..55ed8cc4 --- /dev/null +++ b/src/forge/css/index.css @@ -0,0 +1,309 @@ +@charset "UTF-8"; +ul, ol, dl { + margin-bottom: 0px; +} + +.newMain { + background-color: #fff; +} + +.color-black { + color: #333; +} + +.projectallName { + font-size: 22px; + font-weight: normal; + line-height: 30px; + max-width: 690px; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; +} +.projectallName .projectN { + word-break: break-all; +} + +.textRight { + text-align: right; +} + +.main { + width: 1200px; + padding: 20px; + margin: 20px auto; + background: #fff; + border-radius: 2px; + border: 1px solid #eee; +} + +.radius-2 { + border-radius: 2px; +} + +.normal { + width: 1200px; + margin: 0px auto; +} + +/* 背景色 */ +.back-white { + background: #fff; +} + +.back-black { + background: #000; +} + +/* 灰色按钮-高度32 */ +.btn_32 { + border-radius: 4px; + padding: 0px 12px; + height: 32px; + line-height: 32px; + background-color: #f4f4f4; + color: #666; + display: inline-block; +} + +@media screen and (max-width: 1200px) { + .main { + width: 1000px; + margin: 10px auto; + } +} +.hide-1 { + display: inline-block; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; +} + +.hide-2 { + display: inline-block; + overflow: hidden; + text-overflow: ellipsis; + display: -webkit-box; + -webkit-box-orient: vertical; + -webkit-line-clamp: 2; +} + +.df { + display: flex; +} + +.flex-1 { + flex: 1; + width: 0; +} + +.f-wrap-between { + display: flex; + flex-wrap: wrap; + justify-content: space-between; +} + +.f-wrap-alignCenter { + display: flex; + flex-wrap: wrap; + align-items: center; +} + +.commitDesc { + flex: 1; + margin-left: 20px; + font-size: 16px; + color: #333; + line-height: 26px; + word-break: break-all; +} + +.normalBox { + border-radius: 4px; + border: 1px solid #ddd; +} + +.normalBox-title { + padding: 10px; + background-color: #f4f4f4; + line-height: 18px; +} + +.none_panels { + text-align: center; + height: 400px; + display: flex; + justify-content: center; + align-items: center; +} +.none_panels.small { + height: 120px; +} +.none_panels.small img { + width: 50px; +} +.none_panels img { + margin-bottom: 15px; +} + +.none_p_title { + font-size: 16px; + color: #999; +} + +form.ant-form { + color: #333; +} + +.required { + position: relative; +} +.required::before { + content: "*"; + color: red; + position: absolute; + left: -10px; + top: 0px; + line-height: 22px; +} + +form .ant-row.ant-form-item { + margin-bottom: 15px; +} + +@media screen and (max-width: 1000px) { + .main { + width: 750px; + margin: 1rem auto; + } + + .normal { + width: 750px; + } +} +@media screen and (max-width: 750px) { + .main { + width: 95%; + margin: 1rem auto; + } + + .normal { + width: 100%; + } +} +.ver-middle { + vertical-align: middle; +} + +.pd510 { + padding: 5px 10px; +} + +.modalsStyle .ant-modal-content > .ant-modal-header { + text-align: left !important; +} +.modalsStyle .ant-modal-body { + max-width: 400px; + margin: 0px auto; + text-align: left; + min-height: 140px; + display: flex; + align-items: center; +} +.modalsStyle .ant-modal-close-x { + margin-top: 8px; +} + +.list-r-Info > div { + box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.2); +} + +.list-l-Menu { + margin-bottom: 12px; + border-radius: 2px; + background-color: #fff; + box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.2); +} +.list-l-Menu > li { + font-size: 1rem; + padding: 0px 0px 0px 20px; + box-sizing: border-box; + color: #333; + position: relative; +} +.list-l-Menu > li > p { + height: 62px; + line-height: 62px; + width: 100%; + border-bottom: 1px solid #eee; + display: flex; + justify-content: space-between; + cursor: pointer; + padding-right: 20px; + margin: 0px; +} +.list-l-Menu > li > p a { + width: 100%; +} +.list-l-Menu > li > p span:last-child { + color: #999; +} +.list-l-Menu > li:last-child > p { + border-bottom: none; +} +.list-l-Menu > li:not(.MenuTitle):hover { + background-color: #fafafa; +} +.list-l-Menu li.active { + background-color: #fafafa; +} +.list-l-Menu li.active::before { + position: absolute; + left: 0px; + top: 15px; + width: 6px; + content: ""; + height: 33px; + background: #4CACFF; +} +.list-l-Menu .MenuTitle { + font-size: 16px; + background-size: 100% 100%; + color: #333 !important; + height: 62px; + line-height: 62px; + border-bottom: 1px solid #E0E0E0; + font-weight: 400; +} +.list-l-Menu .ant-menu-inline { + border: none; +} +.list-l-Menu .ant-menu-inline .ant-menu-item { + width: 100% !important; +} +.list-l-Menu .ant-menu-item-group-title { + padding: 0px; +} + +.group-setting-switch { + border: 1px solid #DDDDDD !important; + background-color: #fff !important; +} + +.ant-btn.ant-btn-background-ghost { + border-color: #D0D0D0; +} + +.ant-btn.ant-btn-background-ghost.ant-btn-primary:hover { + background-color: #1890ff !important; + border-color: #1890ff; + color: #fff; +} + +.ant-btn.ant-btn-background-ghost.ant-btn-danger:hover { + background-color: #DF0002 !important; + border-color: #DF0002; + color: #fff; +} + +/*# sourceMappingURL=index.css.map */ diff --git a/src/forge/css/index.css.map b/src/forge/css/index.css.map new file mode 100644 index 00000000..43ec8edf --- /dev/null +++ b/src/forge/css/index.css.map @@ -0,0 +1 @@ +{"version":3,"sourceRoot":"","sources":["index.scss"],"names":[],"mappings":";AAAA;EACE;;;AAEF;EACE;;;AAEF;EACE;;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AACA;EACE;;;AAGJ;EACE;;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;;;AAEF;EACE;;;AAEF;EACE;EACA;;;AAEF;AACA;EACE;;;AAEF;EACE;;;AAEF;AACA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;AAEF;EACE;IACE;IACA;;;AAIJ;EACE;EACA;EACA;EACA;;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;;;AAGF;EAAI;;;AACJ;EAAQ;EAAQ;;;AAEhB;EACE;EACA;EACA;;;AAEF;EACE;EACA;EACA;;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;;;AAEF;EACE;EACA;EACA;;;AAEF;EACE;EACA;EACA;EACA;EACA;;AACA;EACE;;AACA;EACE;;AAGJ;EACE;;;AAGJ;EACE;EACA;;;AAEF;EACE;;;AAEF;EACE;;AACA;EACE;EACA;EACA;EACA;EACA;EACA;;;AAIF;EACE;;;AAGJ;EACE;IACE;IACA;;;EAEF;IACE;;;AAGJ;EACE;IACE;IACA;;;EAEF;IACE;;;AAGJ;EACE;;;AAEF;EAAO;;;AAGH;EACE;;AAGJ;EACE;EACA;EACA;EACA;EACA;EACA;;AAEF;EACE;;;AAIF;EACE;;;AAGJ;EACE;EACA;EACA;EACA;;AACA;EACE;EACA;EACA;EACA;EACA;;AACA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AACA;EACE;;AAEF;EACE;;AAGJ;EACE;;AAEF;EACE;;AAGJ;EACE;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAEF;EACE;;AACA;EACE;;AAGJ;EACE;;;AAGJ;EACE;EACA;;;AAEF;EACE;;;AAEF;EACE;EACA;EACA;;;AAEF;EACE;EACA;EACA","file":"index.css"} \ No newline at end of file diff --git a/src/forge/css/index.scss b/src/forge/css/index.scss index 00e46b6f..e1986728 100644 --- a/src/forge/css/index.scss +++ b/src/forge/css/index.scss @@ -11,7 +11,10 @@ ul,ol,dl{ font-size: 22px; font-weight: normal; line-height: 30px; - max-width: 850px; + max-width: 690px; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; .projectN{ word-break: break-all; } diff --git a/src/modules/tpm/challengesnew/tpm-md-editor.js b/src/modules/tpm/challengesnew/tpm-md-editor.js index ad25fa9c..e1c06eda 100644 --- a/src/modules/tpm/challengesnew/tpm-md-editor.js +++ b/src/modules/tpm/challengesnew/tpm-md-editor.js @@ -134,6 +134,7 @@ export default ({ mdID, onChange, onCMBeforeChange, onCMBlur, error = false, cla }, toolbarIconsClass: { "line-break": "fa-minus", + "fullScreen":"iconfont icon-fangdaicon font-14" }, toolbarCustomIcons: { "inline-latex": "", @@ -150,6 +151,10 @@ export default ({ mdID, onChange, onCMBeforeChange, onCMBlur, error = false, cla } cm.replaceSelection(NULL_CH) }, + "fullScreen":function(cm,icon,cursor,selection){ + icon.addClass("none"); + console.log(cm,icon) + }, "inline-latex": function (cm, icon, cursor, selection) { cm.replaceSelection("$$" + selection + "$$"); cm.setCursor(cursor.line, cursor.ch + 2); @@ -164,7 +169,8 @@ export default ({ mdID, onChange, onCMBeforeChange, onCMBlur, error = false, cla lang: { toolbar: { "latex": "多行公式", - "line-break": "换行" + "line-break": "换行", + "fullScreen":"开启全屏" } }, onload: function () { @@ -229,7 +235,7 @@ export default ({ mdID, onChange, onCMBeforeChange, onCMBlur, error = false, cla if (resizeBarEl.current) { let el = resizeBarEl.current let dragging = false - let startY = 0 + let startY = 0 function onMouseDown(e) { dragging = true startY = e.pageY