bug
This commit is contained in:
parent
ab2787d2bc
commit
51e78c1ef4
|
|
@ -748,6 +748,11 @@
|
||||||
"resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.1.1.tgz",
|
"resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.1.1.tgz",
|
||||||
"integrity": "sha512-wdlPY2tm/9XBr7QkKlq0WQVgiuGTX6YWPyRyBviSoScBuLfTVQhvwg6wJ369GJ/1nPfTLMfnrFIfjqVg6d+jQQ=="
|
"integrity": "sha512-wdlPY2tm/9XBr7QkKlq0WQVgiuGTX6YWPyRyBviSoScBuLfTVQhvwg6wJ369GJ/1nPfTLMfnrFIfjqVg6d+jQQ=="
|
||||||
},
|
},
|
||||||
|
"actioncable": {
|
||||||
|
"version": "5.2.4-3",
|
||||||
|
"resolved": "https://registry.npmjs.org/actioncable/-/actioncable-5.2.4-3.tgz",
|
||||||
|
"integrity": "sha512-SrGfg2W2GKGfYOlsOUnqjdihUhIVoyb5ewsMtpfE/Z3ZK/j5Gj2e/YWp2A7Wo+aeB1aewhPxorFxIGVRowbX4w=="
|
||||||
|
},
|
||||||
"add-dom-event-listener": {
|
"add-dom-event-listener": {
|
||||||
"version": "1.1.0",
|
"version": "1.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/add-dom-event-listener/-/add-dom-event-listener-1.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/add-dom-event-listener/-/add-dom-event-listener-1.1.0.tgz",
|
||||||
|
|
|
||||||
File diff suppressed because one or more lines are too long
Binary file not shown.
File diff suppressed because one or more lines are too long
|
|
@ -5,6 +5,111 @@
|
||||||
"css_prefix_text": "icon-",
|
"css_prefix_text": "icon-",
|
||||||
"description": "",
|
"description": "",
|
||||||
"glyphs": [
|
"glyphs": [
|
||||||
|
{
|
||||||
|
"icon_id": "15605136",
|
||||||
|
"name": "文件",
|
||||||
|
"font_class": "wenjian1",
|
||||||
|
"unicode": "e78e",
|
||||||
|
"unicode_decimal": 59278
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"icon_id": "15605133",
|
||||||
|
"name": "编辑",
|
||||||
|
"font_class": "bianji6",
|
||||||
|
"unicode": "e78d",
|
||||||
|
"unicode_decimal": 59277
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"icon_id": "15591171",
|
||||||
|
"name": "统计",
|
||||||
|
"font_class": "tongji2",
|
||||||
|
"unicode": "e78c",
|
||||||
|
"unicode_decimal": 59276
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"icon_id": "15591167",
|
||||||
|
"name": "签到",
|
||||||
|
"font_class": "qiandao",
|
||||||
|
"unicode": "e78b",
|
||||||
|
"unicode_decimal": 59275
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"icon_id": "15591165",
|
||||||
|
"name": "分班",
|
||||||
|
"font_class": "fenban1",
|
||||||
|
"unicode": "e78a",
|
||||||
|
"unicode_decimal": 59274
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"icon_id": "15591163",
|
||||||
|
"name": "讨论",
|
||||||
|
"font_class": "taolun1",
|
||||||
|
"unicode": "e789",
|
||||||
|
"unicode_decimal": 59273
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"icon_id": "15591161",
|
||||||
|
"name": "视频直播",
|
||||||
|
"font_class": "shipinzhibo",
|
||||||
|
"unicode": "e788",
|
||||||
|
"unicode_decimal": 59272
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"icon_id": "15591155",
|
||||||
|
"name": "学习资源",
|
||||||
|
"font_class": "xuexiziyuan",
|
||||||
|
"unicode": "e787",
|
||||||
|
"unicode_decimal": 59271
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"icon_id": "15591132",
|
||||||
|
"name": "考试问卷",
|
||||||
|
"font_class": "kaoshiwenjuan",
|
||||||
|
"unicode": "e786",
|
||||||
|
"unicode_decimal": 59270
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"icon_id": "15590984",
|
||||||
|
"name": "考试试卷",
|
||||||
|
"font_class": "kaoshishijuan",
|
||||||
|
"unicode": "e785",
|
||||||
|
"unicode_decimal": 59269
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"icon_id": "15590922",
|
||||||
|
"name": "毕业作业",
|
||||||
|
"font_class": "biyezuoye",
|
||||||
|
"unicode": "e784",
|
||||||
|
"unicode_decimal": 59268
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"icon_id": "15590919",
|
||||||
|
"name": "分组作业",
|
||||||
|
"font_class": "fenzuzuoye1",
|
||||||
|
"unicode": "e783",
|
||||||
|
"unicode_decimal": 59267
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"icon_id": "15590916",
|
||||||
|
"name": "普通作业",
|
||||||
|
"font_class": "putongzuoye1",
|
||||||
|
"unicode": "e782",
|
||||||
|
"unicode_decimal": 59266
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"icon_id": "15590913",
|
||||||
|
"name": "实训作业",
|
||||||
|
"font_class": "shixunzuoye",
|
||||||
|
"unicode": "e781",
|
||||||
|
"unicode_decimal": 59265
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"icon_id": "15590860",
|
||||||
|
"name": "公告栏",
|
||||||
|
"font_class": "gonggaolan",
|
||||||
|
"unicode": "e780",
|
||||||
|
"unicode_decimal": 59264
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"icon_id": "15465934",
|
"icon_id": "15465934",
|
||||||
"name": "组织项目",
|
"name": "组织项目",
|
||||||
|
|
|
||||||
|
|
@ -20,6 +20,51 @@ Created by iconfont
|
||||||
/>
|
/>
|
||||||
<missing-glyph />
|
<missing-glyph />
|
||||||
|
|
||||||
|
<glyph glyph-name="wenjian1" unicode="" d="M574.330435-119.095652H151.373913c-44.521739 0-84.591304 40.069565-84.591304 84.591304V811.408696C66.782609 855.930435 106.852174 896 151.373913 896h681.182609c44.521739 0 84.591304-40.069565 84.591304-84.591304v-436.313044c0-26.713043-17.808696-44.521739-44.521739-44.521739s-44.521739 17.808696-44.521739 44.521739V806.956522H155.826087v-837.008696h418.504348c26.713043 0 44.521739-17.808696 44.521739-44.521739s-22.26087-44.521739-44.521739-44.521739zM249.321739 410.713043h471.930435v-66.782608H249.321739zM512 148.034783m-44.521739 0a44.521739 44.521739 0 1 1 89.043478 0 44.521739 44.521739 0 1 1-89.043478 0ZM690.086957 148.034783m-44.52174 0a44.521739 44.521739 0 1 1 89.043479 0 44.521739 44.521739 0 1 1-89.043479 0ZM850.365217 148.034783m-44.521739 0a44.521739 44.521739 0 1 1 89.043479 0 44.521739 44.521739 0 1 1-89.043479 0ZM249.321739 655.582609h471.930435v-66.782609H249.321739zM249.321739 188.104348h146.921739v-66.782609H249.321739z" horiz-adv-x="1024" />
|
||||||
|
|
||||||
|
|
||||||
|
<glyph glyph-name="bianji6" unicode="" d="M803.044865-97.363698H154.576481c-86.802855 0-153.181508 66.378654-153.181508 153.181508V740.028546c0 86.802855 66.378654 153.181508 153.181508 153.181508h403.377971c30.636302 0 51.060503-20.424201 51.060503-51.060503s-20.424201-51.060503-51.060503-51.060502H154.576481c-30.636302 0-51.060503-20.424201-51.060503-51.060503v-684.210736c0-30.636302 20.424201-51.060503 51.060503-51.060503h648.468384c30.636302 0 51.060503 20.424201 51.060503 51.060503V438.77158c0 30.636302 20.424201 51.060503 51.060503 51.060503s51.060503-20.424201 51.060503-51.060503v-382.95377c0-86.802855-71.484704-153.181508-153.181509-153.181508zM476.257648 362.180826c-10.212101 0-25.530251 5.10605-35.742352 20.424201-20.424201 20.424201-15.318151 51.060503 5.10605 71.484704L930.696122 882.997954c20.424201 20.424201 51.060503 15.318151 71.484704-5.106051 20.424201-20.424201 15.318151-51.060503-5.10605-71.484703L512 377.498977c-10.212101-10.212101-20.424201-15.318151-35.742352-15.318151z" horiz-adv-x="1024" />
|
||||||
|
|
||||||
|
|
||||||
|
<glyph glyph-name="tongji2" unicode="" d="M9.142857 896h1024v-1024H9.142857zM873.142857 377.6H514.742857V736c0 6.4-6.4 6.4-6.4 6.4h-25.6c-51.2 0-108.8-12.8-153.6-32-51.2-19.2-96-44.8-128-83.2S137.142857 550.4 117.942857 499.2C92.342857 448 79.542857 396.8 79.542857 345.6S92.342857 236.8 111.542857 192s51.2-89.6 83.2-128 76.8-64 128-83.2c51.2-19.2 102.4-32 153.6-32s108.8 12.8 153.6 32 89.6 51.2 128 83.2c38.4 38.4 64 76.8 83.2 128 19.2 51.2 32 102.4 32 153.6v25.6c6.4 6.4 6.4 6.4 0 6.4zM713.142857 108.8c-64-64-147.2-96-236.8-96-89.6 0-172.8 32-230.4 96-64 64-96 147.2-96 236.8S181.942857 518.4 245.942857 576c57.6 57.6 128 89.6 198.4 96v-364.8h364.8c-6.4-70.4-38.4-147.2-96-198.4z m249.6 326.4v25.6C949.942857 556.8 911.542857 640 841.142857 704 777.142857 768 687.542857 812.8 597.942857 819.2h-25.6c-6.4 0-6.4 0-6.4-6.4v-384c0-6.4 6.4-6.4 6.4-6.4h384s6.4 6.4 6.4 12.8z m-332.8 57.6v256c64-12.8 121.6-44.8 166.4-89.6s76.8-102.4 89.6-166.4h-256z" horiz-adv-x="1170" />
|
||||||
|
|
||||||
|
|
||||||
|
<glyph glyph-name="qiandao" unicode="" d="M9.142857 896h1024v-1024H9.142857zM892.342857 710.4h-166.4v64c0 6.4-6.4 6.4-6.4 6.4h-57.6c-6.4 0-6.4-6.4-6.4-6.4v-64H393.142857v64c0 6.4-6.4 6.4-6.4 6.4H329.142857c-6.4 0-6.4-6.4-6.4-6.4v-64H149.942857c-12.8 0-25.6-12.8-25.6-32v-665.6c0-19.2 12.8-32 32-32h736c19.2 0 32 12.8 32 32V678.4c-6.4 19.2-19.2 32-32 32z m-44.8-652.8H194.742857V640h128v-51.2c0-6.4 6.4-6.4 6.4-6.4h57.6l6.4 6.4V640h256v-51.2c0-6.4 6.4-6.4 6.4-6.4h57.6c6.4 0 6.4 6.4 6.4 6.4V640h128v-582.4zM700.342857 473.6h-57.6c-6.4 0-12.8 0-12.8-6.4L476.342857 262.4l-64 89.6c0 6.4-6.4 6.4-12.8 6.4h-57.6c-6.4 0-12.8-6.4-6.4-12.8l128-172.8c6.4-6.4 19.2-6.4 25.6 0l211.2 294.4c6.4 0 6.4 6.4 0 6.4z" horiz-adv-x="1170" />
|
||||||
|
|
||||||
|
|
||||||
|
<glyph glyph-name="fenban1" unicode="" d="M9.142857 896h1024v-1024H9.142857zM834.742857 198.4c-25.6 25.6-57.6 44.8-89.6 57.6 44.8 38.4 76.8 89.6 76.8 153.6 0 108.8-89.6 204.8-204.8 198.4-108.8 0-198.4-89.6-198.4-198.4 0-64 32-121.6 76.8-153.6-32-12.8-64-32-83.2-57.6-57.6-57.6-83.2-128-89.6-204.8 0-6.4 6.4-6.4 6.4-6.4h57.6c6.4 0 6.4 6.4 6.4 6.4 0 57.6 25.6 115.2 64 153.6 44.8 44.8 102.4 64 160 64s115.2-25.6 160-64c38.4-38.4 64-96 64-153.6 0-6.4 6.4-6.4 6.4-6.4h57.6c6.4 0 6.4 6.4 6.4 6.4 6.4 76.8-25.6 147.2-76.8 204.8zM623.542857 281.6c-38.4 0-70.4 12.8-96 38.4-19.2 25.6-32 57.6-32 96 0 32 12.8 64 38.4 89.6 19.2 19.2 51.2 32 83.2 32s64-12.8 89.6-38.4c25.6-25.6 38.4-57.6 38.4-89.6 0-32-12.8-64-38.4-89.6-19.2-25.6-51.2-38.4-83.2-38.4zM367.542857 384v25.6c0 12.8 0 32 6.4 44.8 0 6.4 0 6.4-6.4 6.4-12.8 12.8-25.6 19.2-38.4 32-25.6 25.6-38.4 57.6-38.4 96 0 32 12.8 64 38.4 83.2 25.6 25.6 57.6 38.4 96 38.4 32 0 64-12.8 83.2-32 6.4-6.4 12.8-19.2 19.2-25.6 0 0 6.4-6.4 6.4 0 19.2 6.4 38.4 12.8 57.6 12.8 6.4 0 6.4 6.4 6.4 12.8C565.942857 742.4 501.942857 787.2 425.142857 787.2 316.342857 787.2 220.342857 697.6 220.342857 588.8c0-64 32-121.6 76.8-153.6-32-19.2-64-38.4-89.6-64-57.6-57.6-83.2-128-89.6-204.8 0-6.4 6.4-6.4 6.4-6.4h57.6c6.4 0 6.4 6.4 6.4 6.4 0 57.6 25.6 115.2 64 153.6 32 32 64 51.2 102.4 57.6 12.8 0 19.2 6.4 12.8 6.4z" horiz-adv-x="1170" />
|
||||||
|
|
||||||
|
|
||||||
|
<glyph glyph-name="taolun1" unicode="" d="M9.142857 896h1024v-1024H9.142857zM469.942857 384c0-25.6 19.2-51.2 51.2-51.2 25.6 0 51.2 19.2 51.2 51.2 0 25.6-19.2 51.2-51.2 51.2-25.6 0-51.2-25.6-51.2-51.2z m204.8 0c0-25.6 19.2-51.2 51.2-51.2s51.2 19.2 51.2 51.2c0 25.6-19.2 51.2-51.2 51.2s-51.2-25.6-51.2-51.2zM271.542857 384c0-25.6 19.2-51.2 51.2-51.2s44.8 25.6 44.8 51.2-19.2 51.2-51.2 51.2-44.8-25.6-44.8-51.2z m665.6 172.8c-25.6 57.6-57.6 102.4-96 147.2-38.4 38.4-89.6 76.8-140.8 96C642.742857 819.2 578.742857 832 521.142857 832 457.142857 832 399.542857 819.2 341.942857 793.6c-51.2-19.2-96-51.2-140.8-96S130.742857 608 105.142857 556.8C85.942857 499.2 73.142857 441.6 73.142857 384c0-70.4 19.2-140.8 51.2-198.4v-153.6c0-25.6 19.2-44.8 44.8-44.8h153.6c64-32 128-44.8 198.4-51.2 57.6 0 115.2 12.8 172.8 32 51.2 19.2 102.4 51.2 140.8 96 38.4 38.4 76.8 89.6 96 140.8 25.6 57.6 38.4 115.2 38.4 179.2 0 57.6-12.8 115.2-32 172.8z m-153.6-435.2C713.142857 51.2 617.142857 12.8 521.142857 12.8c-57.6 0-121.6 12.8-172.8 44.8l-6.4 6.4H194.742857V204.8l-6.4 6.4C162.742857 262.4 149.942857 320 149.942857 384c0 102.4 38.4 192 108.8 262.4C329.142857 716.8 418.742857 755.2 521.142857 755.2c51.2 0 96-12.8 147.2-32 44.8-19.2 83.2-44.8 121.6-76.8 32-32 64-76.8 76.8-121.6 19.2-44.8 32-96 32-147.2-6.4-96-44.8-185.6-115.2-256z" horiz-adv-x="1170" />
|
||||||
|
|
||||||
|
|
||||||
|
<glyph glyph-name="shipinzhibo" unicode="" d="M21.333333 896h1024v-1024H21.333333zM930.133333 595.2l-128-76.8V672c0 38.4-25.6 64-64 64H149.333333c-38.4 0-64-25.6-64-64v-576c0-38.4 25.6-64 64-64h588.8c38.4 0 64 25.6 64 64V249.6l128-76.8c19.2-12.8 51.2 0 51.2 25.6V563.2c0 25.6-25.6 44.8-51.2 32z m-198.4-492.8h-576V665.6h576v-563.2z m179.2 166.4l-102.4 57.6V435.2l102.4 57.6v-224zM226.133333 537.6H341.333333c6.4 0 6.4 6.4 6.4 6.4v44.8c0 6.4-6.4 6.4-6.4 6.4H226.133333c-6.4 0-6.4-6.4-6.4-6.4v-51.2h6.4z" horiz-adv-x="1365" />
|
||||||
|
|
||||||
|
|
||||||
|
<glyph glyph-name="xuexiziyuan" unicode="" d="M9.142857 896h1024v-1024H9.142857zM969.142857-19.2H73.142857V780.8h332.8l128-128c6.4-6.4 12.8-6.4 25.6-6.4H969.142857v-665.6zM143.542857 57.6h755.2V576H559.542857c-25.6 0-51.2 6.4-76.8 25.6L373.942857 710.4H143.542857v-652.8zM834.742857 710.4h-256c-19.2 0-38.4 19.2-38.4 38.4s19.2 38.4 38.4 38.4h256c19.2 0 38.4-19.2 38.4-38.4s-19.2-38.4-38.4-38.4zM937.142857 403.2H117.942857c-19.2 0-38.4 19.2-38.4 38.4s19.2 38.4 38.4 38.4h819.2c19.2 0 38.4-19.2 38.4-38.4s-19.2-38.4-38.4-38.4zM431.542857 121.6H245.942857c-19.2 0-38.4 19.2-38.4 38.4s19.2 32 38.4 32h185.6c19.2 0 38.4-19.2 38.4-38.4s-19.2-32-38.4-32z" horiz-adv-x="1170" />
|
||||||
|
|
||||||
|
|
||||||
|
<glyph glyph-name="kaoshiwenjuan" unicode="" d="M18.285714 896h1024v-1024H18.285714zM709.485714 582.4v51.2c0 6.4-6.4 6.4-6.4 6.4h-384c-6.4 0-12.8-6.4-12.8-6.4v-51.2l6.4-6.4h384c6.4 0 12.8 6.4 12.8 6.4zM312.685714 499.2c-6.4 0-6.4-6.4-6.4-6.4v-51.2c0-6.4 6.4-6.4 6.4-6.4h185.6c6.4 0 6.4 6.4 6.4 6.4v44.8c0 6.4-6.4 6.4-6.4 6.4H312.685714z m147.2-454.4H223.085714v704H786.285714v-345.6c0-6.4 6.4-6.4 6.4-6.4h57.6c6.4 0 6.4 6.4 6.4 6.4v384c0 19.2-12.8 32-32 32H184.685714C165.485714 819.2 152.685714 806.4 152.685714 787.2v-780.8c0-19.2 12.8-32 32-32h268.8c6.4 0 6.4 6.4 6.4 6.4v57.6c6.4 0 0 6.4 0 6.4z m441.6-51.2l-96 96c19.2 32 38.4 64 38.4 108.8 0 96-76.8 179.2-179.2 179.2S491.885714 288 491.885714 192s76.8-179.2 179.2-179.2c38.4 0 70.4 12.8 96 32l96-96h12.8l32 32c0 6.4 0 6.4-6.4 12.8z m-230.4 83.2c-64 0-115.2 51.2-115.2 115.2s51.2 115.2 115.2 115.2S786.285714 256 786.285714 192s-51.2-115.2-115.2-115.2z" horiz-adv-x="1170" />
|
||||||
|
|
||||||
|
|
||||||
|
<glyph glyph-name="kaoshishijuan" unicode="" d="M18.285714 896h1024v-1024H18.285714zM709.485714 633.6c0 6.4-6.4 6.4-6.4 6.4h-384c-6.4 0-12.8-6.4-12.8-6.4v-51.2l6.4-6.4h384c6.4 0 6.4 6.4 6.4 6.4v51.2z m-12.8-134.4h-384c-6.4 0-6.4-6.4-6.4-6.4v-51.2c0-6.4 6.4-6.4 6.4-6.4h384c6.4 0 6.4 6.4 6.4 6.4v44.8c6.4 6.4 0 12.8-6.4 12.8zM498.285714 352H312.685714c-6.4 0-6.4-6.4-6.4-6.4v-51.2c0-6.4 6.4-6.4 6.4-6.4h185.6c6.4 0 6.4 6.4 6.4 6.4v51.2s0 6.4-6.4 6.4z m-44.8-307.2H223.085714v704H786.285714v-345.6c0-6.4 6.4-6.4 6.4-6.4h57.6c6.4 0 6.4 6.4 6.4 6.4v384c0 19.2-12.8 32-32 32H184.685714C165.485714 819.2 152.685714 806.4 152.685714 787.2v-780.8c0-19.2 12.8-32 32-32h262.4c6.4 0 6.4 6.4 6.4 6.4v57.6c6.4 0 0 6.4 0 6.4z m352 76.8c32 25.6 44.8 64 44.8 108.8 0 76.8-64 140.8-140.8 140.8s-140.8-64-140.8-140.8c0-44.8 19.2-83.2 44.8-108.8-57.6-32-96-89.6-102.4-160 0-6.4 6.4-6.4 6.4-6.4h51.2c6.4 0 6.4 6.4 6.4 6.4 6.4 70.4 64 121.6 134.4 121.6s128-57.6 134.4-121.6c0-6.4 6.4-6.4 6.4-6.4h51.2c6.4 0 6.4 6.4 6.4 6.4-6.4 64-44.8 121.6-102.4 160zM709.485714 307.2c44.8 0 76.8-38.4 76.8-76.8s-38.4-76.8-76.8-76.8-76.8 38.4-76.8 76.8 32 76.8 76.8 76.8z" horiz-adv-x="1170" />
|
||||||
|
|
||||||
|
|
||||||
|
<glyph glyph-name="biyezuoye" unicode="" d="M9.142857 896h1024v-1024H9.142857zM521.142857 326.4c-12.8 0-19.2 0-32 6.4L111.542857 518.4c-12.8 6.4-25.6 19.2-32 38.4-6.4 19.2-6.4 38.4 0 51.2 6.4 12.8 19.2 25.6 32 32l377.6 185.6c19.2 6.4 44.8 6.4 64 0L930.742857 640c32-19.2 44.8-57.6 32-89.6-6.4-12.8-19.2-25.6-32-32L553.142857 332.8c-12.8 0-19.2-6.4-32-6.4z m-371.2 256L521.142857 403.2l371.2 179.2L521.142857 761.6 149.942857 582.4zM783.542857 121.6c-12.8 6.4-19.2 12.8-38.4 12.8s-32 12.8-32 32 12.8 32 32 32c70.4 0 128-57.6 128-121.6 0-19.2-12.8-32-32-32s-32 12.8-32 32c0 12.8-6.4 32-12.8 38.4 0-6.4-6.4-19.2-12.8-32-64-89.6-160-147.2-275.2-147.2-115.2 0-211.2 57.6-268.8 140.8-19.2 25.6-12.8 57.6 0 44.8 70.4-57.6 166.4-102.4 268.8-102.4 108.8 0 204.8 44.8 275.2 102.4zM130.742857 217.6m-64 0a64 64 0 1 1 128 0 64 64 0 1 1-128 0ZM105.142857 544h57.6v-326.4h-57.6z" horiz-adv-x="1170" />
|
||||||
|
|
||||||
|
|
||||||
|
<glyph glyph-name="fenzuzuoye1" unicode="" d="M21.333333 896h1024v-1024H21.333333zM949.333333 736H718.933333c-51.2 0-96-12.8-140.8-38.4l-44.8-32-51.2 25.6C443.733333 723.2 392.533333 736 347.733333 736H117.333333C98.133333 736 85.333333 723.2 85.333333 704v-569.6c0-19.2 12.8-32 32-32h230.4c51.2 0 96-12.8 140.8-38.4l44.8-25.6h12.8l38.4 25.6c38.4 25.6 89.6 38.4 140.8 38.4h230.4c19.2 0 32 12.8 32 32V704c-6.4 19.2-19.2 32-38.4 32zM347.733333 172.8h-192V665.6H341.333333c38.4 0 70.4-12.8 102.4-32l51.2-32 6.4-6.4v-460.8c-44.8 25.6-102.4 38.4-153.6 38.4z m563.2 0H725.333333c-57.6 0-108.8-12.8-153.6-38.4V595.2l6.4 6.4 51.2 32c32 19.2 64 32 102.4 32H917.333333v-492.8zM418.133333 537.6H232.533333c-6.4 0-6.4-6.4-6.4-6.4v-44.8c0-6.4 0-6.4 6.4-6.4h185.6c6.4 0 6.4 6.4 6.4 6.4v38.4c0 6.4 0 12.8-6.4 12.8z m224-12.8v-44.8c0-6.4 6.4-6.4 6.4-6.4h185.6c6.4 0 6.4 6.4 6.4 6.4v44.8c0 6.4-6.4 6.4-6.4 6.4H648.533333c-6.4 6.4-6.4 0-6.4-6.4z m-224-128H232.533333c-6.4 0-6.4-6.4-6.4-6.4v-44.8c0-6.4 0-6.4 6.4-6.4h185.6c6.4 0 6.4 6.4 6.4 6.4v44.8s0 6.4-6.4 6.4z m416 0H648.533333c-6.4 0-6.4-6.4-6.4-6.4v-44.8c0-6.4 6.4-6.4 6.4-6.4h185.6c6.4 0 6.4 6.4 6.4 6.4v44.8s0 6.4-6.4 6.4z" horiz-adv-x="1365" />
|
||||||
|
|
||||||
|
|
||||||
|
<glyph glyph-name="putongzuoye1" unicode="" d="M4.266667 896h1024v-1024H4.266667zM650.666667 832v-70.4h-512v-755.2h652.8v320h70.4v-358.4c0-19.2-12.8-32-32-32H100.266667c-19.2 0-32 12.8-32 32v832c0 19.2 12.8 32 32 32h550.4zM420.266667 454.4H260.266667c-19.2 0-38.4 19.2-38.4 38.4s19.2 32 38.4 32h160c19.2 0 32-12.8 32-32s-12.8-38.4-32-38.4zM516.266667 601.6H260.266667c-19.2 0-38.4 19.2-38.4 38.4s19.2 32 38.4 32h256c19.2 0 38.4-19.2 38.4-38.4s-19.2-32-38.4-32zM714.666667 89.6H260.266667c-19.2 0-38.4 19.2-38.4 38.4s19.2 38.4 38.4 38.4h454.4c19.2 0 38.4-19.2 38.4-38.4s-19.2-38.4-38.4-38.4zM522.666667 185.6c-25.6 0-51.2 19.2-64 44.8-6.4 12.8-6.4 19.2-6.4 32l12.8 134.4c0 12.8 6.4 25.6 12.8 32l236.8 345.6c19.2 32 51.2 51.2 89.6 57.6 38.4 6.4 70.4 0 102.4-19.2l12.8-6.4c57.6-44.8 70.4-128 32-185.6L708.266667 268.8c-6.4-12.8-19.2-19.2-32-25.6l-134.4-51.2c-6.4 0-12.8-6.4-19.2-6.4z m300.8 576h-12.8c-19.2 0-32-12.8-38.4-25.6L535.466667 390.4l-6.4-128L644.266667 307.2l243.2 345.6c19.2 25.6 12.8 64-12.8 89.6l-6.4 6.4 19.2 25.6-25.6-25.6c-12.8 6.4-25.6 12.8-38.4 12.8z" horiz-adv-x="1092" />
|
||||||
|
|
||||||
|
|
||||||
|
<glyph glyph-name="shixunzuoye" unicode="" d="M4.266667 896h1024v-1024H4.266667zM964.266667 128H68.266667V832h896v-704zM138.666667 204.8h755.2V761.6H138.666667v-556.8zM708.266667-64H324.266667c-19.2 0-38.4 19.2-38.4 38.4s19.2 38.4 38.4 38.4h384c19.2 0 38.4-19.2 38.4-38.4s-19.2-38.4-38.4-38.4zM708.266667 403.2c-12.8 0-19.2 6.4-25.6 12.8-12.8 12.8-12.8 38.4 6.4 51.2L772.266667 544 682.666667 620.8c-12.8 12.8-12.8 38.4 0 51.2 12.8 12.8 38.4 12.8 51.2 0l89.6-83.2c12.8-12.8 19.2-32 19.2-44.8 0-19.2-6.4-38.4-19.2-51.2l-6.4-6.4-83.2-76.8c-12.8 0-19.2-6.4-25.6-6.4zM330.666667 403.2c-6.4 0-19.2 0-25.6 6.4L215.466667 492.8c-25.6 25.6-25.6 70.4 0 96l89.6 83.2c12.8 12.8 38.4 12.8 51.2 0 12.8-12.8 12.8-38.4 0-51.2L266.666667 537.6l83.2-70.4c12.8-12.8 19.2-38.4 6.4-51.2-6.4-6.4-19.2-12.8-25.6-12.8zM465.066667 384H452.266667c-19.2 12.8-25.6 32-19.2 51.2l102.4 243.2c6.4 19.2 25.6 32 44.8 19.2 19.2-6.4 25.6-25.6 19.2-44.8L503.466667 409.6c-6.4-12.8-19.2-25.6-38.4-25.6zM925.866667 256H119.466667c-19.2 0-38.4 19.2-38.4 38.4s19.2 38.4 38.4 38.4h800c19.2 0 38.4-19.2 38.4-38.4s-12.8-38.4-32-38.4zM401.066667 160h70.4V-64H401.066667zM586.666667 160h70.4V-64H586.666667z" horiz-adv-x="1092" />
|
||||||
|
|
||||||
|
|
||||||
|
<glyph glyph-name="gonggaolan" unicode="" d="M870.4-119.466667L426.666667 153.6c-8.533333 0-17.066667 8.533333-25.6 8.533333H0V614.4h409.6c8.533333 0 17.066667 0 25.6 8.533333L870.4 887.466667v-1006.933334zM93.866667 256h307.2c25.6 0 51.2-8.533333 68.266666-17.066667l307.2-187.733333V716.8L486.4 537.6c-25.6-17.066667-51.2-25.6-76.8-25.6H93.866667v-256zM998.4 699.733333c-17.066667 0-42.666667 17.066667-42.666667 34.133334-8.533333 25.6 8.533333 51.2 34.133334 59.733333l153.6 42.666667c25.6 8.533333 51.2-8.533333 59.733333-34.133334 8.533333-25.6-8.533333-51.2-34.133333-59.733333l-153.6-42.666667h-17.066667zM1152-59.733333h-8.533333l-153.6 42.666666c-25.6 8.533333-42.666667 34.133333-34.133334 59.733334 8.533333 25.6 34.133333 42.666667 59.733334 34.133333l153.6-42.666667c25.6-8.533333 42.666667-34.133333 34.133333-59.733333-17.066667-17.066667-34.133333-34.133333-51.2-34.133333zM1152 332.8h-153.6c-25.6 0-51.2 25.6-51.2 51.2s25.6 51.2 51.2 51.2h153.6c25.6 0 42.666667-25.6 42.666667-51.2s-17.066667-51.2-42.666667-51.2zM375.466667 554.666667h93.866666v-349.866667H375.466667z" horiz-adv-x="1205" />
|
||||||
|
|
||||||
|
|
||||||
<glyph glyph-name="zuzhixiangmu" unicode="" d="M487.619048-128c-243.809524 0-438.857143 195.047619-438.857143 438.857143s195.047619 438.857143 438.857143 438.857143 438.857143-195.047619 438.857142-438.857143-195.047619-438.857143-438.857142-438.857143z m0 799.695238c-199.92381 0-360.838095-160.914286-360.838096-360.838095 0-199.92381 160.914286-360.838095 360.838096-360.838095 199.92381 0 360.838095 160.914286 360.838095 360.838095 0 199.92381-160.914286 360.838095-360.838095 360.838095zM195.047619 67.047619m-156.038095 0a156.038095 156.038095 0 1 1 312.07619 0 156.038095 156.038095 0 1 1-312.07619 0ZM195.047619-128c-107.27619 0-195.047619 87.771429-195.047619 195.047619s87.771429 195.047619 195.047619 195.047619 195.047619-87.771429 195.047619-195.047619-87.771429-195.047619-195.047619-195.047619z m0 312.07619c-63.390476 0-117.028571-53.638095-117.028571-117.028571s53.638095-117.028571 117.028571-117.028571 117.028571 53.638095 117.028571 117.028571-53.638095 117.028571-117.028571 117.028571zM390.095238 700.952381m-156.038095 0a156.038095 156.038095 0 1 1 312.07619 0 156.038095 156.038095 0 1 1-312.07619 0ZM390.095238 505.904762C282.819048 505.904762 195.047619 593.67619 195.047619 700.952381s87.771429 195.047619 195.047619 195.047619 195.047619-87.771429 195.047619-195.047619-87.771429-195.047619-195.047619-195.047619z m0 312.07619C326.704762 817.980952 273.066667 764.342857 273.066667 700.952381S326.704762 583.92381 390.095238 583.92381s117.028571 53.638095 117.028572 117.028571S453.485714 817.980952 390.095238 817.980952zM926.47619 310.857143m-156.038095 0a156.038095 156.038095 0 1 1 312.076191 0 156.038095 156.038095 0 1 1-312.076191 0ZM926.47619 115.809524c-107.27619 0-195.047619 87.771429-195.047619 195.047619s87.771429 195.047619 195.047619 195.047619 195.047619-87.771429 195.04762-195.047619-87.771429-195.047619-195.04762-195.047619z m0 312.07619c-63.390476 0-117.028571-53.638095-117.028571-117.028571s53.638095-117.028571 117.028571-117.028572 117.028571 53.638095 117.028572 117.028572-53.638095 117.028571-117.028572 117.028571z" horiz-adv-x="1121" />
|
<glyph glyph-name="zuzhixiangmu" unicode="" d="M487.619048-128c-243.809524 0-438.857143 195.047619-438.857143 438.857143s195.047619 438.857143 438.857143 438.857143 438.857143-195.047619 438.857142-438.857143-195.047619-438.857143-438.857142-438.857143z m0 799.695238c-199.92381 0-360.838095-160.914286-360.838096-360.838095 0-199.92381 160.914286-360.838095 360.838096-360.838095 199.92381 0 360.838095 160.914286 360.838095 360.838095 0 199.92381-160.914286 360.838095-360.838095 360.838095zM195.047619 67.047619m-156.038095 0a156.038095 156.038095 0 1 1 312.07619 0 156.038095 156.038095 0 1 1-312.07619 0ZM195.047619-128c-107.27619 0-195.047619 87.771429-195.047619 195.047619s87.771429 195.047619 195.047619 195.047619 195.047619-87.771429 195.047619-195.047619-87.771429-195.047619-195.047619-195.047619z m0 312.07619c-63.390476 0-117.028571-53.638095-117.028571-117.028571s53.638095-117.028571 117.028571-117.028571 117.028571 53.638095 117.028571 117.028571-53.638095 117.028571-117.028571 117.028571zM390.095238 700.952381m-156.038095 0a156.038095 156.038095 0 1 1 312.07619 0 156.038095 156.038095 0 1 1-312.07619 0ZM390.095238 505.904762C282.819048 505.904762 195.047619 593.67619 195.047619 700.952381s87.771429 195.047619 195.047619 195.047619 195.047619-87.771429 195.047619-195.047619-87.771429-195.047619-195.047619-195.047619z m0 312.07619C326.704762 817.980952 273.066667 764.342857 273.066667 700.952381S326.704762 583.92381 390.095238 583.92381s117.028571 53.638095 117.028572 117.028571S453.485714 817.980952 390.095238 817.980952zM926.47619 310.857143m-156.038095 0a156.038095 156.038095 0 1 1 312.076191 0 156.038095 156.038095 0 1 1-312.076191 0ZM926.47619 115.809524c-107.27619 0-195.047619 87.771429-195.047619 195.047619s87.771429 195.047619 195.047619 195.047619 195.047619-87.771429 195.04762-195.047619-87.771429-195.047619-195.04762-195.047619z m0 312.07619c-63.390476 0-117.028571-53.638095-117.028571-117.028571s53.638095-117.028571 117.028571-117.028572 117.028571 53.638095 117.028572 117.028572-53.638095 117.028571-117.028572 117.028571z" horiz-adv-x="1121" />
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
Before Width: | Height: | Size: 487 KiB After Width: | Height: | Size: 502 KiB |
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
|
@ -100,7 +100,7 @@ export function initAxiosInterceptors(props) {
|
||||||
// TODO 读取到package.json中的配置?
|
// TODO 读取到package.json中的配置?
|
||||||
var proxy = "http://localhost:3000"
|
var proxy = "http://localhost:3000"
|
||||||
// proxy = "https://pre-newweb.educoder.net"
|
// proxy = "https://pre-newweb.educoder.net"
|
||||||
proxy = "https://testforgeplus.trustie.net"
|
proxy = "http://192.168.2.59:3000"
|
||||||
|
|
||||||
// 在这里使用requestMap控制,避免用户通过双击等操作发出重复的请求;
|
// 在这里使用requestMap控制,避免用户通过双击等操作发出重复的请求;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,172 +0,0 @@
|
||||||
import React , { Component } from 'react';
|
|
||||||
import { Dropdown , Icon , Input } from 'antd';
|
|
||||||
import { getBranch } from '../GetData/getData';
|
|
||||||
import "./branch.css"
|
|
||||||
import axios from 'axios';
|
|
||||||
const $ = window.$;
|
|
||||||
class SelectBranch extends Component{
|
|
||||||
constructor(props){
|
|
||||||
super(props);
|
|
||||||
this.state={
|
|
||||||
visible:false,
|
|
||||||
value:undefined,
|
|
||||||
search:"branch",
|
|
||||||
tags:undefined,
|
|
||||||
branchsFilter:undefined,
|
|
||||||
data:undefined
|
|
||||||
}
|
|
||||||
}
|
|
||||||
componentDidMount() {
|
|
||||||
this.getTagList();
|
|
||||||
|
|
||||||
document.body.addEventListener('click', e => {
|
|
||||||
let v= this.state.visible;
|
|
||||||
if(e.target.className && e.target.className.animVal!=undefined) return;
|
|
||||||
|
|
||||||
let s = e.target && e.target.className && e.target.className.indexOf('showtag')> -1;
|
|
||||||
let classF =e.target && e.target.className && e.target.className.indexOf("downobject") > -1 || e.target.className==="ant-input OptionsInput";
|
|
||||||
if(e.target && e.target.className === "ant-dropdown-trigger" || s){
|
|
||||||
this.setState({
|
|
||||||
visible:!v,
|
|
||||||
value:undefined
|
|
||||||
})
|
|
||||||
if(!v){
|
|
||||||
this.getBranchs();
|
|
||||||
}
|
|
||||||
return;
|
|
||||||
}else if (classF) {
|
|
||||||
return;
|
|
||||||
} else{
|
|
||||||
this.setState({
|
|
||||||
visible:false,
|
|
||||||
value:undefined
|
|
||||||
})
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
componentDidUpdate=(prevProps)=>{
|
|
||||||
if(this.props.repo_id && this.props.repo_id!=prevProps.repo_id){
|
|
||||||
this.getTagList();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// 获取分支
|
|
||||||
getBranchs=()=>{
|
|
||||||
debugger;
|
|
||||||
const { projectsId } = this.props;
|
|
||||||
let result = getBranch(projectsId);
|
|
||||||
if(result){
|
|
||||||
this.setState({
|
|
||||||
data:result.data
|
|
||||||
})
|
|
||||||
if(result.data && result.data.length>0){
|
|
||||||
this.setState({
|
|
||||||
search:"branch"
|
|
||||||
})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
getTagList=()=>{
|
|
||||||
const { repo_id } = this.props;
|
|
||||||
if(repo_id){
|
|
||||||
const url = `/repositories/${repo_id}/tags.json`;
|
|
||||||
axios.get(url).then((result)=>{
|
|
||||||
if(result){
|
|
||||||
this.setState({
|
|
||||||
tags:result.data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
}).catch(error=>{
|
|
||||||
console.log(error);
|
|
||||||
})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
InputClick=(e)=>{
|
|
||||||
this.stopPropagations(e);
|
|
||||||
}
|
|
||||||
|
|
||||||
stopPropagations=(e)=>{
|
|
||||||
e.stopPropagation();
|
|
||||||
}
|
|
||||||
|
|
||||||
// 输入搜索内容
|
|
||||||
changeValue=(e)=>{
|
|
||||||
this.setState({
|
|
||||||
value:e.target.value
|
|
||||||
})
|
|
||||||
let { branchs } = this.props;
|
|
||||||
const { tags } = this.state;
|
|
||||||
let array = branchs;
|
|
||||||
if(search === "tag" && tags.length>0){
|
|
||||||
array = tags;
|
|
||||||
}
|
|
||||||
let branchsFilter = e.target.value ? (array && array.length>0 && array.filter(item=>item.name.indexOf(e.target.value)>-1)) : array;
|
|
||||||
this.setState({
|
|
||||||
branchsFilter
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
// 选择分支
|
|
||||||
changeBranchs=(e,value)=>{
|
|
||||||
e.stopPropagation();
|
|
||||||
this.setState({
|
|
||||||
visible:false,
|
|
||||||
value
|
|
||||||
})
|
|
||||||
const { changeBranch } = this.props;
|
|
||||||
changeBranch && changeBranch(value);
|
|
||||||
}
|
|
||||||
|
|
||||||
// 切换搜索的列表
|
|
||||||
changeSearch=(search)=>{
|
|
||||||
this.setState({
|
|
||||||
search
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
render(){
|
|
||||||
const { visible , value , search , tags , branchsFilter , data } = this.state;
|
|
||||||
const { branchs , branch } = this.props;
|
|
||||||
|
|
||||||
|
|
||||||
console.log(data);
|
|
||||||
const menu = (
|
|
||||||
<div className="branchOptions" id="m-btn" onClick={this.stopPropagations}>
|
|
||||||
<div className="downobject padding10 bor-bottom-greyE">
|
|
||||||
<Input placeholder="请输入分支或标签名称搜索" autocomplete="off" id="input-btn" value={value} className="OptionsInput" onChange={this.changeValue} onClick={this.InputClick}/>
|
|
||||||
<ul className="navUl" id="navUl-btn">
|
|
||||||
<li className={search ==="branch"?"downobject active":"downobject"} onClick={()=>this.changeSearch("branch")}><i className="iconfont icon-fenzhi1 font-14 mr3"></i>分支列表</li>
|
|
||||||
<li className={search ==="tag"?"downobject active":"downobject"} onClick={()=>this.changeSearch("tag")}><i className="iconfont icon-biaoqian3 font-14 mr3"></i>标签列表</li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
<ul className="OptionsUl" id="ul-btn">
|
|
||||||
{
|
|
||||||
data && data.length> 0 ? data.map((item,key)=>{
|
|
||||||
return(
|
|
||||||
<li key={key}><a className="task-hide ulALink" onClick={(e)=>this.changeBranchs(e,`${item.name}`)}>{item.name}</a></li>
|
|
||||||
)
|
|
||||||
})
|
|
||||||
:
|
|
||||||
<p className="listTips">暂无{value}{search === "tag" ?"标签":"分支"}~</p>
|
|
||||||
}
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
);
|
|
||||||
return(
|
|
||||||
<div className="branchDropdown f-wrap-alignCenter" >
|
|
||||||
<Dropdown overlay={menu} trigger={['click']} placement="bottomLeft" visible={visible}>
|
|
||||||
<span id="down-btn">
|
|
||||||
<span>
|
|
||||||
<span className="color-grey-9 mr3">{search ==="branch"?"分支":"标签"}:</span>
|
|
||||||
<a className="ant-dropdown-link">
|
|
||||||
{branch}
|
|
||||||
</a>
|
|
||||||
</span>
|
|
||||||
<i className="showtag iconfont icon-xiajiantou font-14 color-grey-9" />
|
|
||||||
</span>
|
|
||||||
</Dropdown>
|
|
||||||
</div>
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
export default SelectBranch;
|
|
||||||
|
|
@ -134,3 +134,12 @@ export const Cancel = styled.a`{
|
||||||
text-align:center;
|
text-align:center;
|
||||||
letter-spacing: 4px;
|
letter-spacing: 4px;
|
||||||
}`
|
}`
|
||||||
|
export const Content = styled.div`{
|
||||||
|
width:1200px;
|
||||||
|
margin:20px auto;
|
||||||
|
text-align:center;
|
||||||
|
display:flex;
|
||||||
|
align-Items:center;
|
||||||
|
background-color:#fff;
|
||||||
|
justify-content: center;
|
||||||
|
}`
|
||||||
|
|
|
||||||
|
|
@ -122,9 +122,7 @@ class CoderRootDirectory extends Component {
|
||||||
isSpin: false,
|
isSpin: false,
|
||||||
branchLastCommit: last_commit && last_commit.commit,
|
branchLastCommit: last_commit && last_commit.commit,
|
||||||
lastCommitAuthor:
|
lastCommitAuthor:
|
||||||
last_commit &&
|
last_commit && (last_commit.author || (last_commit.commit && last_commit.commit.author)),
|
||||||
(last_commit.author ||
|
|
||||||
(last_commit.commit && last_commit.commit.author)),
|
|
||||||
zip_url: result.data.zip_url,
|
zip_url: result.data.zip_url,
|
||||||
tar_url: result.data.tar_url,
|
tar_url: result.data.tar_url,
|
||||||
tags_count: result.data.tags_count,
|
tags_count: result.data.tags_count,
|
||||||
|
|
@ -275,7 +273,7 @@ class CoderRootDirectory extends Component {
|
||||||
<div className="commonBox">
|
<div className="commonBox">
|
||||||
<div className="commonBox-title">
|
<div className="commonBox-title">
|
||||||
<span className="mr10">
|
<span className="mr10">
|
||||||
<i className="iconfont icon-xinjianjianliwodejianli font-20 color-grey-9 fl mt3"></i>
|
<i className="iconfont icon-wenjian1 font-16 color-grey-9 fl mt3"></i>
|
||||||
</span>
|
</span>
|
||||||
<span className="commonBox-title-read">
|
<span className="commonBox-title-read">
|
||||||
{readMeContent[0].name}
|
{readMeContent[0].name}
|
||||||
|
|
@ -285,7 +283,7 @@ class CoderRootDirectory extends Component {
|
||||||
onClick={() => this.ChangeFile(readMeFile[0], false)}
|
onClick={() => this.ChangeFile(readMeFile[0], false)}
|
||||||
className="ml20 pull-right"
|
className="ml20 pull-right"
|
||||||
>
|
>
|
||||||
<i className="iconfont icon-bianji2 font-20 color-blue"></i>
|
<i className="iconfont icon-bianji6 font-16 color-blue"></i>
|
||||||
</a>
|
</a>
|
||||||
) : (
|
) : (
|
||||||
""
|
""
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
import React, { Component } from 'react';
|
import React, { Component } from 'react';
|
||||||
import { Spin, Tooltip } from 'antd';
|
import { Spin, Tooltip } from 'antd';
|
||||||
import { Link, Route, Switch } from 'react-router-dom';
|
import { Link, Route, Switch } from 'react-router-dom';
|
||||||
|
import { Content } from '../Component/layout';
|
||||||
import '../css/index.scss'
|
import '../css/index.scss'
|
||||||
import './list.css';
|
import './list.css';
|
||||||
|
|
||||||
|
|
@ -57,66 +57,55 @@ const OrderMilepost = Loadable({
|
||||||
loader: () => import('../Order/Milepost'),
|
loader: () => import('../Order/Milepost'),
|
||||||
loading: Loading,
|
loading: Loading,
|
||||||
})
|
})
|
||||||
|
|
||||||
const OrdernewMilepost = Loadable({
|
const OrdernewMilepost = Loadable({
|
||||||
loader: () => import('../Order/newMilepost'),
|
loader: () => import('../Order/newMilepost'),
|
||||||
loading: Loading,
|
loading: Loading,
|
||||||
})
|
})
|
||||||
|
|
||||||
const OrderupdateMilepost = Loadable({
|
const OrderupdateMilepost = Loadable({
|
||||||
loader: () => import('../Order/UpdateMilepost'),
|
loader: () => import('../Order/UpdateMilepost'),
|
||||||
loading: Loading,
|
loading: Loading,
|
||||||
})
|
})
|
||||||
|
|
||||||
const OrderupdateDetail = Loadable({
|
const OrderupdateDetail = Loadable({
|
||||||
loader: () => import('../Order/UpdateDetail'),
|
loader: () => import('../Order/UpdateDetail'),
|
||||||
loading: Loading,
|
loading: Loading,
|
||||||
})
|
})
|
||||||
|
|
||||||
const OrdercopyDetail = Loadable({
|
const OrdercopyDetail = Loadable({
|
||||||
loader: () => import('../Order/CopyDetail'),
|
loader: () => import('../Order/CopyDetail'),
|
||||||
loading: Loading,
|
loading: Loading,
|
||||||
})
|
})
|
||||||
|
|
||||||
//合并请求
|
//合并请求
|
||||||
const MergeIndexDetail = Loadable({
|
const MergeIndexDetail = Loadable({
|
||||||
loader: () => import('../Merge/merge'),
|
loader: () => import('../Merge/merge'),
|
||||||
loading: Loading,
|
loading: Loading,
|
||||||
})
|
})
|
||||||
|
|
||||||
const CreateMerge = Loadable({
|
const CreateMerge = Loadable({
|
||||||
loader: () => import('../Merge/NewMerge'),
|
loader: () => import('../Merge/NewMerge'),
|
||||||
loading: Loading,
|
loading: Loading,
|
||||||
})
|
})
|
||||||
|
|
||||||
const MessageCount = Loadable({
|
const MessageCount = Loadable({
|
||||||
loader: () => import('../Merge/MessageCount'),
|
loader: () => import('../Merge/MessageCount'),
|
||||||
loading: Loading,
|
loading: Loading,
|
||||||
})
|
})
|
||||||
|
|
||||||
const UpdateMerge = Loadable({
|
const UpdateMerge = Loadable({
|
||||||
loader: () => import('../Merge/UpdateMerge'),
|
loader: () => import('../Merge/UpdateMerge'),
|
||||||
loading: Loading,
|
loading: Loading,
|
||||||
})
|
})
|
||||||
|
|
||||||
const MilepostDetail = Loadable({
|
const MilepostDetail = Loadable({
|
||||||
loader: () => import('../Order/MilepostDetail'),
|
loader: () => import('../Order/MilepostDetail'),
|
||||||
loading: Loading,
|
loading: Loading,
|
||||||
})
|
})
|
||||||
const WatchUsers = Loadable({
|
const WatchUsers = Loadable({
|
||||||
loader: () => import('../UsersList/watch_users'),
|
loader: () => import('../UsersList/watch_users'),
|
||||||
loading: Loading,
|
loading: Loading,
|
||||||
})
|
})
|
||||||
const PraiseUsers = Loadable({
|
const PraiseUsers = Loadable({
|
||||||
loader: () => import('../UsersList/praise_users'),
|
loader: () => import('../UsersList/praise_users'),
|
||||||
loading: Loading,
|
loading: Loading,
|
||||||
})
|
})
|
||||||
const ForkUsers = Loadable({
|
const ForkUsers = Loadable({
|
||||||
loader: () => import('../UsersList/fork_users'),
|
loader: () => import('../UsersList/fork_users'),
|
||||||
loading: Loading,
|
loading: Loading,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
const TrendsIndex = Loadable({
|
const TrendsIndex = Loadable({
|
||||||
loader: () => import('../Activity/Activity'),
|
loader: () => import('../Activity/Activity'),
|
||||||
loading: Loading,
|
loading: Loading,
|
||||||
|
|
@ -125,12 +114,11 @@ const TrendsIndex = Loadable({
|
||||||
/**
|
/**
|
||||||
* permission:Manager:管理员,Reporter:报告人员(只有读取权限),Developer:开发人员(除不能设置仓库信息外)
|
* permission:Manager:管理员,Reporter:报告人员(只有读取权限),Developer:开发人员(除不能设置仓库信息外)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
class Detail extends Component {
|
class Detail extends Component {
|
||||||
constructor(props) {
|
constructor(props) {
|
||||||
super(props);
|
super(props);
|
||||||
this.state = {
|
this.state = {
|
||||||
isSpin: true,
|
isMirror: true,
|
||||||
projectDetail: undefined,
|
projectDetail: undefined,
|
||||||
isManager: false,
|
isManager: false,
|
||||||
isReporter: false,
|
isReporter: false,
|
||||||
|
|
@ -151,24 +139,62 @@ class Detail extends Component {
|
||||||
|
|
||||||
componentDidMount = () => {
|
componentDidMount = () => {
|
||||||
this.getProject();
|
this.getProject();
|
||||||
this.getDetail();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
componentDidUpdate = (prevState) => {
|
componentDidUpdate = (prevState) => {
|
||||||
if ((prevState.match.params.projectsId !== this.props.match.params.projectsId)) {
|
if ((prevState.match.params.projectsId !== this.props.match.params.projectsId)) {
|
||||||
this.getProject();
|
this.getProject();
|
||||||
this.getDetail();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
getProject = () => {
|
getProject = () => {
|
||||||
const { projectsId } = this.props.match.params;
|
const { projectsId } = this.props.match.params;
|
||||||
const url = `/projects/${projectsId}/simple.json`;
|
const url = `ws://192.168.2.59:3000/cable`;
|
||||||
axios.get(url).then((result) => {
|
const scoket = new WebSocket(url);
|
||||||
|
scoket.onopen=()=>{
|
||||||
|
scoket.send(JSON.stringify({ "id": `${projectsId}`}));
|
||||||
|
console.log(1);
|
||||||
|
}
|
||||||
|
scoket.onmessage=(result)=>{
|
||||||
|
console.log(2," ",result);
|
||||||
|
if(result){
|
||||||
|
this.setState({
|
||||||
|
project: result.data
|
||||||
|
})
|
||||||
|
let mirror_status = result.data.mirror_status;
|
||||||
|
// this.checkMirror(mirror_status);
|
||||||
|
scoket.close();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
scoket.onclose=(event)=>{
|
||||||
|
console.log(3," ",event);
|
||||||
|
}
|
||||||
|
// const url = `/projects/${projectsId}/simple.json`;
|
||||||
|
|
||||||
|
// axios.get(url).then((result) => {
|
||||||
|
// if (result) {
|
||||||
|
// this.setState({
|
||||||
|
// project: result.data
|
||||||
|
// })
|
||||||
|
// let mirror_status = result.data.mirror_status;
|
||||||
|
// this.checkMirror(mirror_status);
|
||||||
|
// }
|
||||||
|
// })
|
||||||
|
}
|
||||||
|
checkMirror=(mirror_status)=>{
|
||||||
|
if (!mirror_status || (mirror_status && mirror_status === 0)) {
|
||||||
this.setState({
|
this.setState({
|
||||||
project: result.data
|
isMirror:false
|
||||||
})
|
})
|
||||||
})
|
this.getDetail();
|
||||||
|
} else {
|
||||||
|
this.setState({
|
||||||
|
isMirror: true
|
||||||
|
})
|
||||||
|
setTimeout(() => {
|
||||||
|
this.getProject();
|
||||||
|
}, 600000);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
getDetail = () => {
|
getDetail = () => {
|
||||||
|
|
@ -189,7 +215,6 @@ class Detail extends Component {
|
||||||
watchers_count: result.data.watchers_count,
|
watchers_count: result.data.watchers_count,
|
||||||
praises_count: result.data.praises_count,
|
praises_count: result.data.praises_count,
|
||||||
forked_count: result.data.forked_count,
|
forked_count: result.data.forked_count,
|
||||||
isSpin:false
|
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}).catch((error) => { })
|
}).catch((error) => { })
|
||||||
|
|
@ -199,22 +224,22 @@ class Detail extends Component {
|
||||||
focusFunc = (flag) => {
|
focusFunc = (flag) => {
|
||||||
const { project_id } = this.state;
|
const { project_id } = this.state;
|
||||||
|
|
||||||
axios({
|
axios({
|
||||||
method: flag? 'delete' : 'post',
|
method: flag ? 'delete' : 'post',
|
||||||
url: `/watchers/${flag? 'unfollow' : 'follow'}.json`,
|
url: `/watchers/${flag ? 'unfollow' : 'follow'}.json`,
|
||||||
params: {
|
params: {
|
||||||
target_type: "project",
|
target_type: "project",
|
||||||
id: project_id
|
id: project_id
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.then(result => {
|
.then(result => {
|
||||||
if(result && result.data.status === 0){
|
if (result && result.data.status === 0) {
|
||||||
this.setWatchersCount(result.data.watchers_count, result.data.watched);
|
this.setWatchersCount(result.data.watchers_count, result.data.watched);
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.catch(error => {
|
.catch(error => {
|
||||||
console.log(error);
|
console.log(error);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
// 点赞和取消点赞
|
// 点赞和取消点赞
|
||||||
|
|
@ -250,13 +275,6 @@ class Detail extends Component {
|
||||||
|
|
||||||
// fork项目
|
// fork项目
|
||||||
forkFunc = () => {
|
forkFunc = () => {
|
||||||
// if (!checkIfLogin) {
|
|
||||||
// this.props.showLoginDialog();
|
|
||||||
// return;
|
|
||||||
// }
|
|
||||||
this.setState({
|
|
||||||
isSpin: true
|
|
||||||
})
|
|
||||||
const { project_id } = this.state;
|
const { project_id } = this.state;
|
||||||
const url = `/projects/${project_id}/forks.json`;
|
const url = `/projects/${project_id}/forks.json`;
|
||||||
axios.post(url).then(result => {
|
axios.post(url).then(result => {
|
||||||
|
|
@ -264,46 +282,33 @@ class Detail extends Component {
|
||||||
this.props.history.push(`/projects/${result.data.id}/coders`);
|
this.props.history.push(`/projects/${result.data.id}/coders`);
|
||||||
this.props.showNotification(result.data.message);
|
this.props.showNotification(result.data.message);
|
||||||
}
|
}
|
||||||
this.setState({
|
|
||||||
isSpin: false
|
|
||||||
})
|
|
||||||
}).catch(error => {
|
}).catch(error => {
|
||||||
this.setState({
|
|
||||||
isSpin: false
|
|
||||||
})
|
|
||||||
console.log(error);
|
console.log(error);
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// 同步镜像
|
// 同步镜像
|
||||||
synchronismMirror=()=>{
|
synchronismMirror = () => {
|
||||||
const { repo_id } = this.state.projectDetail;
|
const { repo_id } = this.state.projectDetail;
|
||||||
this.setState({
|
const url = `/repositories/${repo_id}/sync_mirror.json`;
|
||||||
isSpin:true
|
axios.post(url).then(result => {
|
||||||
})
|
if (result && result.data && result.data.status === 0) {
|
||||||
const url = `/repositories/${repo_id}/sync_mirror.json`;
|
|
||||||
axios.post(url).then(result=>{
|
|
||||||
if(result && result.data && result.data.status === 0){
|
|
||||||
this.props.showNotification("镜像同步成功!");
|
this.props.showNotification("镜像同步成功!");
|
||||||
this.getProject();
|
this.getProject();
|
||||||
this.getDetail();
|
// this.getDetail();
|
||||||
}else{
|
} else {
|
||||||
this.props.showNotification("镜像同步失败!");
|
this.props.showNotification("镜像同步失败!");
|
||||||
this.setState({
|
|
||||||
isSpin:false
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
|
}).catch(error => {
|
||||||
}).catch(error=>{
|
|
||||||
console.log(error);
|
console.log(error);
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
const { projectDetail, watchers_count, praises_count, forked_count, isSpin, isManager, watched, praised, project } = this.state;
|
const { projectDetail, watchers_count, praises_count, forked_count, isManager, watched, praised, project, isMirror } = this.state;
|
||||||
const url = this.props.history.location.pathname;
|
const url = this.props.history.location.pathname;
|
||||||
const urlArr = url.split("/");
|
const urlArr = url.split("/");
|
||||||
const urlFlag = (urlArr.length === 3);
|
const urlFlag = (urlArr.length === 3);
|
||||||
|
|
||||||
const { projectsId } = this.props.match.params;
|
const { projectsId } = this.props.match.params;
|
||||||
|
|
@ -324,279 +329,293 @@ class Detail extends Component {
|
||||||
const mirror = (
|
const mirror = (
|
||||||
<React.Fragment>
|
<React.Fragment>
|
||||||
<span>镜像自 </span>
|
<span>镜像自 </span>
|
||||||
<a href={projectDetail && projectDetail.mirror_url} target="_blank" style={{color:"#fff"}}>{projectDetail && projectDetail.mirror_url}</a>
|
<a href={projectDetail && projectDetail.mirror_url} target="_blank" style={{ color: "#fff" }}>{projectDetail && projectDetail.mirror_url}</a>
|
||||||
</React.Fragment>
|
</React.Fragment>
|
||||||
)
|
)
|
||||||
const common ={
|
const common = {
|
||||||
getDetail:this.getDetail
|
getDetail: this.getDetail
|
||||||
}
|
}
|
||||||
return (
|
return (
|
||||||
<div>
|
<div>
|
||||||
<div className="detailHeader-wrapper">
|
<div className="detailHeader-wrapper">
|
||||||
<div className="normal">
|
<div className="normal">
|
||||||
<div className="f-wrap-between mb15" style={{ position: "relative" }}>
|
<div className="f-wrap-between pb15" style={{ position: "relative" }}>
|
||||||
<p className="font-18 color-white df flex-1 lineH2 mt15" style={{ alignItems: "center" }}>
|
<p className="font-18 color-white df flex-1 lineH2 mt15" style={{ alignItems: "center" }}>
|
||||||
{project && project.author &&
|
{project && project.author &&
|
||||||
<Link to={`/users/${project.author.login}`} className="show-user-link color-white">
|
<Link to={`/users/${project.author.login}`} className="show-user-link color-white">
|
||||||
{project.author.name}
|
{project.author.name}
|
||||||
</Link>
|
</Link>
|
||||||
|
}
|
||||||
|
<span className="ml5 mr5">/</span>
|
||||||
|
<span className="hide-1 flex-1 df">
|
||||||
|
<Link to={`/projects/${projectsId}/coders`} className="color-white font-22">{project && project.name}</Link>
|
||||||
|
{
|
||||||
|
projectDetail && projectDetail.forked_from_project_id && projectDetail.fork_info ?
|
||||||
|
<Tooltip placement={'right'} title={text}>
|
||||||
|
<Link to={`/projects/${projectDetail.forked_from_project_id}/coders`}
|
||||||
|
className="ml10" >
|
||||||
|
<i className="iconfont icon-fork font-18 fl mt6" style={{ color: "#8D90E3" }}></i>
|
||||||
|
</Link>
|
||||||
|
</Tooltip> : ""
|
||||||
}
|
}
|
||||||
<span className="ml5 mr5">/</span>
|
{
|
||||||
<span className="hide-1 flex-1 df">
|
projectDetail && checkLogin && projectDetail.type && projectDetail.type === 2 ?
|
||||||
<Link to={`/projects/${projectsId}/coders`} className="color-white font-22">{project && project.name}</Link>
|
|
||||||
{
|
|
||||||
projectDetail && projectDetail.forked_from_project_id && projectDetail.fork_info ?
|
|
||||||
<Tooltip placement={'right'} title={text}>
|
|
||||||
<Link to={`/projects/${projectDetail.forked_from_project_id}/coders`}
|
|
||||||
className="ml10" >
|
|
||||||
<i className="iconfont icon-fork font-18 fl mt6" style={{ color: "#8D90E3" }}></i>
|
|
||||||
</Link>
|
|
||||||
</Tooltip> : ""
|
|
||||||
}
|
|
||||||
{
|
|
||||||
projectDetail && checkLogin && projectDetail.type && projectDetail.type === 2 ?
|
|
||||||
<Tooltip placement={'right'} title={mirror}>
|
<Tooltip placement={'right'} title={mirror}>
|
||||||
<i className="iconfont icon-jingxiang font-18 fl mt6 ml10" style={{ color: "#8D90E3" }}></i>
|
<i className="iconfont icon-jingxiang font-18 fl mt6 ml10" style={{ color: "#8D90E3" }}></i>
|
||||||
</Tooltip>:""
|
</Tooltip> : ""
|
||||||
}
|
|
||||||
</span>
|
|
||||||
</p>
|
|
||||||
<span className="df mt25">
|
|
||||||
{
|
|
||||||
projectDetail && projectDetail.type && projectDetail.type === 2 ?
|
|
||||||
<a className="synchronism ml30" onClick={this.synchronismMirror}>同步镜像</a>:""
|
|
||||||
}
|
}
|
||||||
<span className="detail_tag_btn">
|
|
||||||
<a className="detail_tag_btn_name" onClick={() => this.focusFunc(watched)}>
|
|
||||||
<img src={watched ? img_focused : img_focus} alt="" width="14px" />
|
|
||||||
{watched ? '取消关注' : '关注'}
|
|
||||||
</a>
|
|
||||||
<Link className="detail_tag_btn_count" to={{pathname:`/projects/${projectsId}/watch_users`, state}}>
|
|
||||||
{watchers_count}
|
|
||||||
</Link>
|
|
||||||
</span>
|
|
||||||
<span className="detail_tag_btn">
|
|
||||||
<a className="detail_tag_btn_name" onClick={() => this.pariseFunc(praised)}>
|
|
||||||
<img src={praised ? img_parised : img_parise} width="13px" alt="" />
|
|
||||||
{praised ? '取消点赞' : '点赞'}
|
|
||||||
</a>
|
|
||||||
<Link className="detail_tag_btn_count" to={{pathname:`/projects/${projectsId}/praise_users`,state}}>
|
|
||||||
{praises_count}
|
|
||||||
</Link>
|
|
||||||
</span>
|
|
||||||
<span className="detail_tag_btn">
|
|
||||||
<a className="detail_tag_btn_name" onClick={this.forkFunc}>
|
|
||||||
<img src={img_fork} alt="" width="10px"/>Fork</a>
|
|
||||||
<Link className="detail_tag_btn_count" to={{pathname:`/projects/${projectsId}/fork_users`,state}}>
|
|
||||||
{forked_count}
|
|
||||||
</Link>
|
|
||||||
</span>
|
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</p>
|
||||||
<div className="f-wrap-between">
|
{
|
||||||
<ul className="headerMenu-wrapper">
|
isMirror ? "" :
|
||||||
<li className={(url.indexOf("coders") > -1 || urlFlag) ? "active" : ""}>
|
<span className="df mt25">
|
||||||
<Link to={{ pathname: `/projects/${projectsId}/coders`, state }}>
|
{
|
||||||
<img alt="" src={img_1} width="18" />代码库
|
projectDetail && projectDetail.type && projectDetail.type === 2 ?
|
||||||
</Link>
|
<a className="synchronism ml30" onClick={this.synchronismMirror}>同步镜像</a> : ""
|
||||||
</li>
|
}
|
||||||
<li className={(url.indexOf("orders") > -1 && !(url.indexOf("Milepost") > 0 || url.indexOf("meilpost") > 0 || url.indexOf("tags") > 0)) ? "active" : ""}>
|
<span className="detail_tag_btn">
|
||||||
<Link to={{ pathname: `/projects/${projectsId}/orders`, state }}>
|
<a className="detail_tag_btn_name" onClick={() => this.focusFunc(watched)}>
|
||||||
<img alt="" src={img_2} width="12" />任务
|
<img src={watched ? img_focused : img_focus} alt="" width="14px" />
|
||||||
{ projectDetail && projectDetail.issues_count ? <span>{projectDetail.issues_count}</span> :""}
|
{watched ? '取消关注' : '关注'}
|
||||||
</Link>
|
</a>
|
||||||
</li>
|
<Link className="detail_tag_btn_count" to={{ pathname: `/projects/${projectsId}/watch_users`, state }}>
|
||||||
<li className={url.indexOf("merge") > -1 ? "active" : ""}>
|
{watchers_count}
|
||||||
<Link to={{ pathname: `/projects/${projectsId}/merge`, state }}>
|
</Link>
|
||||||
<img alt="" src={img_3} width="13" />合并请求
|
</span>
|
||||||
{ projectDetail && projectDetail.pull_requests_count ? <span>{projectDetail.pull_requests_count}</span> : "" }
|
<span className="detail_tag_btn">
|
||||||
</Link>
|
<a className="detail_tag_btn_name" onClick={() => this.pariseFunc(praised)}>
|
||||||
</li>
|
<img src={praised ? img_parised : img_parise} width="13px" alt="" />
|
||||||
<li className={(url.indexOf("Milepost") > -1 || url.indexOf("meilpost") > -1) ? "active" : ""}>
|
{praised ? '取消点赞' : '点赞'}
|
||||||
<Link to={{ pathname: `/projects/${projectsId}/orders/Milepost`, state }}>
|
</a>
|
||||||
<img alt="" src={img_milepost} width="16" />里程碑
|
<Link className="detail_tag_btn_count" to={{ pathname: `/projects/${projectsId}/praise_users`, state }}>
|
||||||
{projectDetail && projectDetail.version_count && <span>{projectDetail.version_count}</span>}
|
{praises_count}
|
||||||
</Link>
|
</Link>
|
||||||
</li>
|
</span>
|
||||||
<li className={url.indexOf("trends") > -1 ? "active" : ""}>
|
<span className="detail_tag_btn">
|
||||||
<Link to={{ pathname: `/projects/${projectsId}/trends`, state }}>
|
<a className="detail_tag_btn_name" onClick={this.forkFunc}>
|
||||||
<img alt="" src={img_6} width="16" />动态
|
<img src={img_fork} alt="" width="10px" />Fork</a>
|
||||||
</Link>
|
<Link className="detail_tag_btn_count" to={{ pathname: `/projects/${projectsId}/fork_users`, state }}>
|
||||||
</li>
|
{forked_count}
|
||||||
{
|
</Link>
|
||||||
isManager &&
|
</span>
|
||||||
<li className={url.indexOf("setting") > 0 ? "active" : ""}><Link to={`/projects/${projectsId}/setting`}><img alt="" src={img_7} width="19" />仓库设置</Link></li>
|
</span>
|
||||||
}
|
}
|
||||||
</ul>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
|
{
|
||||||
|
isMirror ? "" :
|
||||||
|
<div className="f-wrap-between pb20">
|
||||||
|
<ul className="headerMenu-wrapper">
|
||||||
|
<li className={(url.indexOf("coders") > -1 || urlFlag) ? "active" : ""}>
|
||||||
|
<Link to={{ pathname: `/projects/${projectsId}/coders`, state }}>
|
||||||
|
<img alt="" src={img_1} width="18" />代码库
|
||||||
|
</Link>
|
||||||
|
</li>
|
||||||
|
<li className={(url.indexOf("orders") > -1 && !(url.indexOf("Milepost") > 0 || url.indexOf("meilpost") > 0 || url.indexOf("tags") > 0)) ? "active" : ""}>
|
||||||
|
<Link to={{ pathname: `/projects/${projectsId}/orders`, state }}>
|
||||||
|
<img alt="" src={img_2} width="12" />任务
|
||||||
|
{projectDetail && projectDetail.issues_count ? <span>{projectDetail.issues_count}</span> : ""}
|
||||||
|
</Link>
|
||||||
|
</li>
|
||||||
|
<li className={url.indexOf("merge") > -1 ? "active" : ""}>
|
||||||
|
<Link to={{ pathname: `/projects/${projectsId}/merge`, state }}>
|
||||||
|
<img alt="" src={img_3} width="13" />合并请求
|
||||||
|
{projectDetail && projectDetail.pull_requests_count ? <span>{projectDetail.pull_requests_count}</span> : ""}
|
||||||
|
</Link>
|
||||||
|
</li>
|
||||||
|
<li className={(url.indexOf("Milepost") > -1 || url.indexOf("meilpost") > -1) ? "active" : ""}>
|
||||||
|
<Link to={{ pathname: `/projects/${projectsId}/orders/Milepost`, state }}>
|
||||||
|
<img alt="" src={img_milepost} width="16" />里程碑
|
||||||
|
{projectDetail && projectDetail.version_count && <span>{projectDetail.version_count}</span>}
|
||||||
|
</Link>
|
||||||
|
</li>
|
||||||
|
<li className={url.indexOf("trends") > -1 ? "active" : ""}>
|
||||||
|
<Link to={{ pathname: `/projects/${projectsId}/trends`, state }}>
|
||||||
|
<img alt="" src={img_6} width="16" />动态
|
||||||
|
</Link>
|
||||||
|
</li>
|
||||||
|
{
|
||||||
|
isManager &&
|
||||||
|
<li className={url.indexOf("setting") > 0 ? "active" : ""}><Link to={`/projects/${projectsId}/setting`}><img alt="" src={img_7} width="19" />仓库设置</Link></li>
|
||||||
|
}
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
}
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
|
{
|
||||||
|
isMirror ?
|
||||||
|
<Content className="spincontent">
|
||||||
|
<Spin tip={project && `正在从 ${project.mirror_url} 迁移`} size="large">
|
||||||
|
</Spin>
|
||||||
|
</Content>
|
||||||
|
:
|
||||||
|
<Spin spinning={false}>
|
||||||
|
<Switch {...this.props}>
|
||||||
|
{/* 新建文件 */}
|
||||||
|
<Route path="/projects/:projectsId/coders/:branch/newfile/:path"
|
||||||
|
render={
|
||||||
|
(props) => (<FileNew {...this.props} {...props} {...this.state} {...common} />)
|
||||||
|
}
|
||||||
|
></Route>
|
||||||
|
<Route path="/projects/:projectsId/coders/:branch/uploadfile"
|
||||||
|
render={
|
||||||
|
(props) => (<UploadFile {...this.props} {...props} {...this.state} {...common} />)
|
||||||
|
}
|
||||||
|
></Route>
|
||||||
|
<Route path="/projects/:projectsId/coders/:branch/newfile"
|
||||||
|
render={
|
||||||
|
(props) => (<FileNew {...this.props} {...props} {...this.state} {...common} />)
|
||||||
|
}
|
||||||
|
></Route>
|
||||||
|
|
||||||
<Switch {...this.props}>
|
{/* 标签列表 */}
|
||||||
{/* 新建文件 */}
|
<Route path="/projects/:projectsId/orders/tags"
|
||||||
<Route path="/projects/:projectsId/coders/:branch/newfile/:path"
|
render={
|
||||||
render={
|
(props) => (<TagList {...this.props} {...props} {...this.state} {...common} />)
|
||||||
(props) => (<FileNew {...this.props} {...props} {...this.state} {...common}/>)
|
}
|
||||||
}
|
></Route>
|
||||||
></Route>
|
{/* 仓库设置 */}
|
||||||
<Route path="/projects/:projectsId/coders/:branch/uploadfile"
|
<Route path="/projects/:projectsId/setting"
|
||||||
render={
|
render={
|
||||||
(props) => (<UploadFile {...this.props} {...props} {...this.state} {...common}/>)
|
(props) => (<Setting {...this.props} {...props} {...this.state} {...common} />)
|
||||||
}
|
}
|
||||||
></Route>
|
></Route>
|
||||||
<Route path="/projects/:projectsId/coders/:branch/newfile"
|
{/* 任务详情 */}
|
||||||
render={
|
<Route path="/projects/:projectsId/orders/:orderId/detail"
|
||||||
(props) => (<FileNew {...this.props} {...props} {...this.state} {...common}/>)
|
render={
|
||||||
}
|
(props) => (<OrderDetail {...this.props} {...props} {...this.state} {...common} />)
|
||||||
></Route>
|
}
|
||||||
|
></Route>
|
||||||
{/* 标签列表 */}
|
{/* 里程碑 */}
|
||||||
<Route path="/projects/:projectsId/orders/tags"
|
<Route path="/projects/:projectsId/orders/Milepost"
|
||||||
render={
|
render={
|
||||||
(props) => (<TagList {...this.props} {...props} {...this.state} {...common}/>)
|
(props) => (<OrderMilepost {...this.props} {...props} {...this.state} {...common} />)
|
||||||
}
|
}
|
||||||
></Route>
|
></Route>
|
||||||
{/* 仓库设置 */}
|
{/* 新建里程碑 */}
|
||||||
<Route path="/projects/:projectsId/setting"
|
<Route path="/projects/:projectsId/orders/meilpost"
|
||||||
render={
|
render={
|
||||||
(props) => (<Setting {...this.props} {...props} {...this.state} {...common} />)
|
(props) => (<OrdernewMilepost {...this.props} {...props} {...this.state} {...common} />)
|
||||||
}
|
}
|
||||||
></Route>
|
></Route>
|
||||||
{/* 任务详情 */}
|
{/*里程碑详情*/}
|
||||||
<Route path="/projects/:projectsId/orders/:orderId/detail"
|
<Route path="/projects/:projectsId/orders/:meilid/MilepostDetail"
|
||||||
render={
|
render={
|
||||||
(props) => (<OrderDetail {...this.props} {...props} {...this.state} {...common}/>)
|
(props) => (<MilepostDetail {...this.props} {...props} {...this.state} {...common} />)
|
||||||
}
|
}
|
||||||
></Route>
|
></Route>
|
||||||
{/* 里程碑 */}
|
{/*修改里程碑*/}
|
||||||
<Route path="/projects/:projectsId/orders/Milepost"
|
<Route path="/projects/:projectsId/orders/:meilid/meilpost"
|
||||||
render={
|
render={
|
||||||
(props) => (<OrderMilepost {...this.props} {...props} {...this.state} {...common}/>)
|
(props) => (<OrderupdateMilepost {...this.props} {...props} {...this.state} {...common} />)
|
||||||
}
|
}
|
||||||
></Route>
|
></Route>
|
||||||
{/* 新建里程碑 */}
|
|
||||||
<Route path="/projects/:projectsId/orders/meilpost"
|
|
||||||
render={
|
|
||||||
(props) => (<OrdernewMilepost {...this.props} {...props} {...this.state} {...common}/>)
|
|
||||||
}
|
|
||||||
></Route>
|
|
||||||
{/*里程碑详情*/}
|
|
||||||
<Route path="/projects/:projectsId/orders/:meilid/MilepostDetail"
|
|
||||||
render={
|
|
||||||
(props) => (<MilepostDetail {...this.props} {...props} {...this.state} {...common}/>)
|
|
||||||
}
|
|
||||||
></Route>
|
|
||||||
{/*修改里程碑*/}
|
|
||||||
<Route path="/projects/:projectsId/orders/:meilid/meilpost"
|
|
||||||
render={
|
|
||||||
(props) => (<OrderupdateMilepost {...this.props} {...props} {...this.state} {...common}/>)
|
|
||||||
}
|
|
||||||
></Route>
|
|
||||||
|
|
||||||
|
|
||||||
{/* 里程碑页面新建任务 */}
|
{/* 里程碑页面新建任务 */}
|
||||||
<Route path="/projects/:projectsId/orders/:milepostId/new"
|
<Route path="/projects/:projectsId/orders/:milepostId/new"
|
||||||
render={
|
render={
|
||||||
(props) => (<OrderNew {...this.props} {...props} {...this.state} {...common}/>)
|
(props) => (<OrderNew {...this.props} {...props} {...this.state} {...common} />)
|
||||||
}
|
}
|
||||||
></Route>
|
></Route>
|
||||||
{/* 新建任务 */}
|
{/* 新建任务 */}
|
||||||
<Route path="/projects/:projectsId/orders/new"
|
<Route path="/projects/:projectsId/orders/new"
|
||||||
render={
|
render={
|
||||||
(props) => (<OrderNew {...this.props} {...props} {...this.state} {...common}/>)
|
(props) => (<OrderNew {...this.props} {...props} {...this.state} {...common} />)
|
||||||
}
|
}
|
||||||
></Route>
|
></Route>
|
||||||
|
|
||||||
{/* 修改详情 */}
|
{/* 修改详情 */}
|
||||||
<Route path="/projects/:projectsId/orders/:orderId/updatedetail"
|
<Route path="/projects/:projectsId/orders/:orderId/updatedetail"
|
||||||
render={
|
render={
|
||||||
(props) => (<OrderupdateDetail {...this.props} {...props} {...this.state} {...common}/>)
|
(props) => (<OrderupdateDetail {...this.props} {...props} {...this.state} {...common} />)
|
||||||
}
|
}
|
||||||
></Route>
|
></Route>
|
||||||
|
|
||||||
{/* 复制详情 */}
|
{/* 复制详情 */}
|
||||||
<Route path="/projects/:projectsId/orders/:orderId/copyetail"
|
<Route path="/projects/:projectsId/orders/:orderId/copyetail"
|
||||||
render={
|
render={
|
||||||
(props) => (<OrdercopyDetail {...this.props} {...props} {...this.state} {...common}/>)
|
(props) => (<OrdercopyDetail {...this.props} {...props} {...this.state} {...common} />)
|
||||||
}
|
}
|
||||||
></Route>
|
></Route>
|
||||||
|
|
||||||
{/* 动态 */}
|
{/* 动态 */}
|
||||||
<Route path="/projects/:projectsId/trends"
|
<Route path="/projects/:projectsId/trends"
|
||||||
render={
|
render={
|
||||||
(props) => (<TrendsIndex {...this.props} {...props} {...this.state} {...common}/>)
|
(props) => (<TrendsIndex {...this.props} {...props} {...this.state} {...common} />)
|
||||||
}
|
}
|
||||||
></Route>
|
></Route>
|
||||||
|
|
||||||
|
|
||||||
{/* 代码Index */}
|
{/* 代码Index */}
|
||||||
<Route path="/projects/:projectsId/orders"
|
<Route path="/projects/:projectsId/orders"
|
||||||
render={
|
render={
|
||||||
(props) => (<OrderIndex {...this.props} {...props} {...this.state} {...common}/>)
|
(props) => (<OrderIndex {...this.props} {...props} {...this.state} {...common} />)
|
||||||
}
|
}
|
||||||
></Route>
|
></Route>
|
||||||
|
|
||||||
<Route path="/projects/:projectsId/merge/new"
|
<Route path="/projects/:projectsId/merge/new"
|
||||||
render={
|
render={
|
||||||
(props) => (<CreateMerge {...this.props} {...props} {...this.state} {...common} is_fork= {true}/>)
|
(props) => (<CreateMerge {...this.props} {...props} {...this.state} {...common} is_fork={true} />)
|
||||||
}
|
}
|
||||||
></Route>
|
></Route>
|
||||||
|
|
||||||
<Route path="/projects/:projectsId/merge/:mergeId/UpdateMerge"
|
<Route path="/projects/:projectsId/merge/:mergeId/UpdateMerge"
|
||||||
render={
|
render={
|
||||||
(props) => (<UpdateMerge {...this.props} {...props} {...this.state} {...common}/>)
|
(props) => (<UpdateMerge {...this.props} {...props} {...this.state} {...common} />)
|
||||||
}
|
}
|
||||||
></Route>
|
></Route>
|
||||||
|
|
||||||
<Route path="/projects/:projectsId/merge/:mergeId/Messagecount"
|
<Route path="/projects/:projectsId/merge/:mergeId/Messagecount"
|
||||||
render={
|
render={
|
||||||
(props) => (<MessageCount {...this.props} {...props} {...this.state} {...common}/>)
|
(props) => (<MessageCount {...this.props} {...props} {...this.state} {...common} />)
|
||||||
}
|
}
|
||||||
></Route>
|
></Route>
|
||||||
|
|
||||||
<Route path="/projects/:projectsId/merge/:mergeId/MergeSubmit"
|
<Route path="/projects/:projectsId/merge/:mergeId/MergeSubmit"
|
||||||
render={
|
render={
|
||||||
(props) => (<MessageCount {...this.props} {...props} {...this.state} {...common}/>)
|
(props) => (<MessageCount {...this.props} {...props} {...this.state} {...common} />)
|
||||||
}
|
}
|
||||||
></Route>
|
></Route>
|
||||||
|
|
||||||
<Route path="/projects/:projectsId/merge"
|
<Route path="/projects/:projectsId/merge"
|
||||||
render={
|
render={
|
||||||
(props) => (<MergeIndexDetail {...this.props} {...props} {...this.state} {...common}/>)
|
(props) => (<MergeIndexDetail {...this.props} {...props} {...this.state} {...common} />)
|
||||||
}
|
}
|
||||||
></Route>
|
></Route>
|
||||||
<Route path="/projects/:projectsId/coders/filesurl"
|
<Route path="/projects/:projectsId/coders/filesurl"
|
||||||
render={
|
render={
|
||||||
(props) => (<CoderRootIndex {...this.props} {...props} {...this.state} {...common}/>)
|
(props) => (<CoderRootIndex {...this.props} {...props} {...this.state} {...common} />)
|
||||||
}
|
}
|
||||||
></Route>
|
></Route>
|
||||||
<Route path="/projects/:projectsId/coders"
|
<Route path="/projects/:projectsId/coders"
|
||||||
render={
|
render={
|
||||||
(props) => (<CoderRootIndex {...this.props} {...props} {...this.state} {...common}/>)
|
(props) => (<CoderRootIndex {...this.props} {...props} {...this.state} {...common} />)
|
||||||
}
|
}
|
||||||
></Route>
|
></Route>
|
||||||
<Route path="/projects/:projectsId/watch_users"
|
<Route path="/projects/:projectsId/watch_users"
|
||||||
render={
|
render={
|
||||||
(props) => (<WatchUsers {...this.props} {...props} {...this.state} {...common}/>)
|
(props) => (<WatchUsers {...this.props} {...props} {...this.state} {...common} />)
|
||||||
}
|
}
|
||||||
></Route>
|
></Route>
|
||||||
<Route path="/projects/:projectsId/praise_users"
|
<Route path="/projects/:projectsId/praise_users"
|
||||||
render={
|
render={
|
||||||
(props) => (<PraiseUsers {...this.props} {...props} {...this.state} {...common}/>)
|
(props) => (<PraiseUsers {...this.props} {...props} {...this.state} {...common} />)
|
||||||
}
|
}
|
||||||
></Route>
|
></Route>
|
||||||
<Route path="/projects/:projectsId/fork_users"
|
<Route path="/projects/:projectsId/fork_users"
|
||||||
render={
|
render={
|
||||||
(props) => (<ForkUsers {...this.props} {...props} {...this.state} {...common}/>)
|
(props) => (<ForkUsers {...this.props} {...props} {...this.state} {...common} />)
|
||||||
}
|
}
|
||||||
></Route>
|
></Route>
|
||||||
<Route path="/projects/:projectsId"
|
<Route path="/projects/:projectsId"
|
||||||
render={
|
render={
|
||||||
(props) => (<CoderRootIndex {...this.props} {...props} {...this.state} {...common}/>)
|
(props) => (<CoderRootIndex {...this.props} {...props} {...this.state} {...common} />)
|
||||||
}
|
}
|
||||||
></Route>
|
></Route>
|
||||||
</Switch>
|
</Switch>
|
||||||
|
</Spin>
|
||||||
|
}
|
||||||
</div>
|
</div>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -34,8 +34,8 @@ class IndexItem extends Component {
|
||||||
: ""
|
: ""
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
item.type && item.type !==0 ?
|
item.type && item.type !== 0 ?
|
||||||
item.type ==2?
|
item.type === 2 ?
|
||||||
<Tooltip title="该项目是一个镜像" className="ml5">
|
<Tooltip title="该项目是一个镜像" className="ml5">
|
||||||
<i className="iconfont icon-banbenku font-18 color-green" />
|
<i className="iconfont icon-banbenku font-18 color-green" />
|
||||||
</Tooltip>:
|
</Tooltip>:
|
||||||
|
|
|
||||||
|
|
@ -192,10 +192,15 @@
|
||||||
margin-top: 8px;
|
margin-top: 8px;
|
||||||
color: #666;
|
color: #666;
|
||||||
}
|
}
|
||||||
|
.spincontent{
|
||||||
|
height:400px;
|
||||||
|
}
|
||||||
|
.spincontent .ant-spin-text{
|
||||||
|
margin-top:30px;
|
||||||
|
color: #888;
|
||||||
|
}
|
||||||
/* -----------详情------------ */
|
/* -----------详情------------ */
|
||||||
.detailHeader-wrapper{
|
.detailHeader-wrapper{
|
||||||
height: 125px;
|
|
||||||
background:linear-gradient(82deg,rgba(82,91,215,1) 0%,rgba(34,24,171,1) 100%);
|
background:linear-gradient(82deg,rgba(82,91,215,1) 0%,rgba(34,24,171,1) 100%);
|
||||||
}
|
}
|
||||||
.headerMenu-wrapper{
|
.headerMenu-wrapper{
|
||||||
|
|
|
||||||
|
|
@ -429,7 +429,7 @@ class Collaborator extends Component {
|
||||||
return (
|
return (
|
||||||
<WhiteBack>
|
<WhiteBack>
|
||||||
<div className="flex-a-center baseForm bbr">
|
<div className="flex-a-center baseForm bbr">
|
||||||
<span className="font-18 fwb text-black">协作者管理</span>
|
<span className="font-18 text-black">协作者管理</span>
|
||||||
<div className="addPanel">
|
<div className="addPanel">
|
||||||
<AutoComplete
|
<AutoComplete
|
||||||
dataSource={source}
|
dataSource={source}
|
||||||
|
|
|
||||||
|
|
@ -415,9 +415,9 @@ class NewTags extends Component {
|
||||||
className="flex-a-center baseForm bbr"
|
className="flex-a-center baseForm bbr"
|
||||||
style={{ "justify-content": "space-between" }}
|
style={{ "justify-content": "space-between" }}
|
||||||
>
|
>
|
||||||
<span className="font-18 fwb text-black">项目标签</span>
|
<span className="font-18 text-black">项目标签</span>
|
||||||
{data && data.user_admin_or_member ? (
|
{data && data.user_admin_or_member ? (
|
||||||
<Button type="primary" onClick={this.newshow}>
|
<Button type="primary" ghost onClick={this.newshow}>
|
||||||
<Icon type="plus"></Icon>
|
<Icon type="plus"></Icon>
|
||||||
创建标签
|
创建标签
|
||||||
</Button>
|
</Button>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue