新版首页和头部

This commit is contained in:
caishi 2020-05-11 14:18:32 +08:00
parent e557182a48
commit 3b9e24a9f8
23 changed files with 1239 additions and 1381 deletions

View File

@ -3,7 +3,7 @@
<head>
<meta charset="utf-8"/>
<title>IconFont Demo</title>
<link rel="shortcut icon" href="https://gtms04.alicdn.com/tps/i4/TB1_oz6GVXXXXaFXpXXJDFnIXXX-64-64.ico" type="image/x-icon"/>
<link rel="shortcut icon" href="https://img.alicdn.com/tps/i4/TB1_oz6GVXXXXaFXpXXJDFnIXXX-64-64.ico" type="image/x-icon"/>
<link rel="stylesheet" href="https://g.alicdn.com/thx/cube/1.3.2/cube.min.css">
<link rel="stylesheet" href="demo.css">
<link rel="stylesheet" href="iconfont.css">
@ -30,6 +30,54 @@
<div class="content unicode" style="display: block;">
<ul class="icon_lists dib-box">
<li class="dib">
<span class="icon iconfont">&#xe751;</span>
<div class="name">项目类别</div>
<div class="code-name">&amp;#xe751;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe752;</span>
<div class="name">点赞</div>
<div class="code-name">&amp;#xe752;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe750;</span>
<div class="name">项目类型</div>
<div class="code-name">&amp;#xe750;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe74b;</span>
<div class="name">选中</div>
<div class="code-name">&amp;#xe74b;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe74d;</span>
<div class="name">未选中</div>
<div class="code-name">&amp;#xe74d;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe74a;</span>
<div class="name">复制</div>
<div class="code-name">&amp;#xe74a;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe74e;</span>
<div class="name">设置</div>
<div class="code-name">&amp;#xe74e;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe749;</span>
<div class="name">编辑-优化icon</div>
<div class="code-name">&amp;#xe749;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe748;</span>
<div class="name">多行公式</div>
@ -2180,6 +2228,78 @@
<div class="content font-class">
<ul class="icon_lists dib-box">
<li class="dib">
<span class="icon iconfont icon-xiangmuleibie"></span>
<div class="name">
项目类别
</div>
<div class="code-name">.icon-xiangmuleibie
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-ziyuan1"></span>
<div class="name">
点赞
</div>
<div class="code-name">.icon-ziyuan1
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-xiangmuleixing"></span>
<div class="name">
项目类型
</div>
<div class="code-name">.icon-xiangmuleixing
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-xuanzhong"></span>
<div class="name">
选中
</div>
<div class="code-name">.icon-xuanzhong
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-weixuanzhong"></span>
<div class="name">
未选中
</div>
<div class="code-name">.icon-weixuanzhong
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-fuzhi4"></span>
<div class="name">
复制
</div>
<div class="code-name">.icon-fuzhi4
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-shezhi4"></span>
<div class="name">
设置
</div>
<div class="code-name">.icon-shezhi4
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-bianji2X"></span>
<div class="name">
编辑-优化icon
</div>
<div class="code-name">.icon-bianji2X
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-duohanggongshi"></span>
<div class="name">
@ -5359,6 +5479,70 @@
<div class="content symbol">
<ul class="icon_lists dib-box">
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-xiangmuleibie"></use>
</svg>
<div class="name">项目类别</div>
<div class="code-name">#icon-xiangmuleibie</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-ziyuan1"></use>
</svg>
<div class="name">点赞</div>
<div class="code-name">#icon-ziyuan1</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-xiangmuleixing"></use>
</svg>
<div class="name">项目类型</div>
<div class="code-name">#icon-xiangmuleixing</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-xuanzhong"></use>
</svg>
<div class="name">选中</div>
<div class="code-name">#icon-xuanzhong</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-weixuanzhong"></use>
</svg>
<div class="name">未选中</div>
<div class="code-name">#icon-weixuanzhong</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-fuzhi4"></use>
</svg>
<div class="name">复制</div>
<div class="code-name">#icon-fuzhi4</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-shezhi4"></use>
</svg>
<div class="name">设置</div>
<div class="code-name">#icon-shezhi4</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-bianji2X"></use>
</svg>
<div class="name">编辑-优化icon</div>
<div class="code-name">#icon-bianji2X</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-duohanggongshi"></use>

View File

@ -2341,14 +2341,10 @@ input::-ms-clear {
/*中间部分宽度固定为1200*/
.newMain {
margin: 0 auto;
padding-bottom: 235px;
padding-bottom: 110px;
min-width: 1200px;
}
/*padding-bottom根据底部的高度而定*/
.newMain {
padding-bottom: 124px !important;
}
/*高度*/
@ -3487,44 +3483,6 @@ a.user_bluebg_btn {
color: #ee4a20;
}
/*搜索的下拉列表*/
/*白色色块--类似个人主页-学习-里面的tab*/
.white-panel {
border-radius: 2px;
width: 100%;
margin: 0px auto;
box-sizing: border-box;
padding-left: 25px;
}
.white-panel li {
width: 118px;
height: 48px;
line-height: 48px;
text-align: center;
color: #05101A;
float: left;
cursor: pointer;
border: none;
}
.white-panel li a {
display: block;
width: 100%;
}
.white-panel li.active {
border-radius: 24px;
border: 1px solid #4CACFF;
color: #4CACFF;
}
.white-panel li.active a {
color: #4CACFF;
}
/* 个人主页翻页 */
.pages_user_show a:hover,
.pages_user_show li.active a {
@ -3962,7 +3920,6 @@ html>body #ajax-indicator {
}/*头部导航条样式---2018-03-19--by-cs*/
.head-nav {
float: left;
text-align: center;
height: 60px;
box-sizing: border-box;
@ -3970,6 +3927,7 @@ html>body #ajax-indicator {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
flex: 1;
}
.head-nav ul#header-nav {
@ -3987,18 +3945,19 @@ html>body #ajax-indicator {
margin-right: 30px;
cursor: pointer;
position: relative;
font-size: 16px
font-size: 16px;
}
.head-nav ul#header-nav li a {
display: block;
height: 100%;
width: 100%;
color: #fff
color: #333333;
font-size: 16px;
}
.head-nav ul#header-nav li a:hover {
color: #cccccc;
color: #5091FF;
}
.head-nav ul#header-nav li:last-child {
@ -4048,21 +4007,15 @@ html>body #ajax-indicator {
bottom: 10px;
right: auto;
height: 2px;
width: 14px;
width: 32px;
background-color: #459be5;
}
.head-right {
box-sizing: border-box;
height: 60px;
background: #24292D;
}
.head-right i {
margin-top: 12px;
float: right;
margin-right: 15px;
margin-left: 15px;
display: flex;
align-items: center;
}
/* tpm*/

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

View File

@ -5,6 +5,62 @@
"css_prefix_text": "icon-",
"description": "",
"glyphs": [
{
"icon_id": "14599181",
"name": "项目类别",
"font_class": "xiangmuleibie",
"unicode": "e751",
"unicode_decimal": 59217
},
{
"icon_id": "1687276",
"name": "点赞",
"font_class": "ziyuan1",
"unicode": "e752",
"unicode_decimal": 59218
},
{
"icon_id": "14599229",
"name": "项目类型",
"font_class": "xiangmuleixing",
"unicode": "e750",
"unicode_decimal": 59216
},
{
"icon_id": "14514445",
"name": "选中",
"font_class": "xuanzhong",
"unicode": "e74b",
"unicode_decimal": 59211
},
{
"icon_id": "14514446",
"name": "未选中",
"font_class": "weixuanzhong",
"unicode": "e74d",
"unicode_decimal": 59213
},
{
"icon_id": "14484580",
"name": "复制",
"font_class": "fuzhi4",
"unicode": "e74a",
"unicode_decimal": 59210
},
{
"icon_id": "14484287",
"name": "设置",
"font_class": "shezhi4",
"unicode": "e74e",
"unicode_decimal": 59214
},
{
"icon_id": "14476133",
"name": "编辑-优化icon",
"font_class": "bianji2X",
"unicode": "e749",
"unicode_decimal": 59209
},
{
"icon_id": "14364807",
"name": "多行公式",

View File

@ -20,6 +20,30 @@ Created by iconfont
/>
<missing-glyph />
<glyph glyph-name="xiangmuleibie" unicode="&#59217;" d="M542.117647 317.741176c-6.023529 0-12.047059 0-18.070588 6.02353l-481.882353 246.964706C24.094118 576.752941 12.047059 594.823529 12.047059 612.894118c0 18.070588 12.047059 30.117647 24.094117 42.164706L505.976471 877.929412c12.047059 6.023529 24.094118 6.023529 42.164705 0l493.929412-234.917647c18.070588-6.023529 24.094118-24.094118 24.094118-42.164706s-12.047059-30.117647-24.094118-42.164706L566.211765 323.764706c-6.023529-6.023529-18.070588-6.023529-24.094118-6.02353zM162.635294 612.894118L542.117647 414.117647l373.458824 186.729412-385.505883 186.729412-367.435294-174.682353zM542.117647 124.988235c-6.023529 0-12.047059 0-18.070588 6.02353L42.164706 353.882353C18.070588 365.929412 12.047059 390.023529 18.070588 414.117647s36.141176 30.117647 60.235294 24.094118l457.788236-216.847059 457.788235 240.941176c24.094118 12.047059 48.188235 6.023529 60.235294-18.070588 12.047059-24.094118 6.023529-48.188235-18.070588-60.235294l-481.882353-252.988235s-6.023529-6.023529-12.047059-6.02353zM542.117647-85.835294c-6.023529 0-12.047059 0-18.070588 6.023529l-481.882353 222.870589c-24.094118 12.047059-30.117647 36.141176-24.094118 60.235294 12.047059 24.094118 36.141176 30.117647 60.235294 24.094117l457.788236-216.847059 457.788235 240.941177c24.094118 12.047059 48.188235 6.023529 60.235294-18.070588 12.047059-24.094118 6.023529-48.188235-18.070588-60.235294l-481.882353-252.988236c0-6.023529-6.023529-6.023529-12.047059-6.023529z" horiz-adv-x="1084" />
<glyph glyph-name="ziyuan1" unicode="&#59218;" d="M627.638-127.995c-0.002-0-0.004-0-0.006-0-41.274 0-79.315 13.84-109.737 37.132-351.096 269.596-625.954 622.565-797.004 1029.886 250.325-459.871 250.891-232.19 392.484-124.58 212.388 161.415 413.449 50.407 514.829-56.637 101.38 104.778 302.441 215.787 514.829 56.637 141.026-107.61 141.592-335.29 47.575-459.892-274.547-346.797-631.598-616.683-1042.062-781.805 559.118 312.875 521.353 299.254 480.407 299.254-0.462 0-0.925 0.002-1.386 0.005zM336.524 813.31c-67.62-1.528-129.121-26.527-176.957-67.135-96.599-73.325-97.732-250.032-28.068-341.784 264.168-335.001 607.892-595.919 1003.221-756.039-551.982 312.962-531.271 305.34-508.781 305.34 22.491 0 43.201 7.622 59.69 20.423 338.927 260.212 604.142 600.67 769.28 993.557-263.734-472.096-264.867-295.389-364.548-219.495-231.645 178.406-421.945-65.132-429.874-75.893-7.61-10-19.509-16.397-32.903-16.425-0.033-0.001-0.137-0.001-0.24-0.001-13.179 0-24.918 6.166-32.489 15.771-5.731 8.583-110.509 141.68-258.331 141.68z" horiz-adv-x="1255" />
<glyph glyph-name="xiangmuleixing" unicode="&#59216;" d="M844.8-128H179.2C76.8-128 0-51.2 0 44.8V716.8C0 819.2 76.8 896 179.2 896h672C947.2 896 1024 819.2 1024 716.8v-672c0-96-76.8-172.8-179.2-172.8zM179.2 800c-44.8 0-76.8-38.4-76.8-76.8v-672c0-44.8 38.4-76.8 76.8-76.8h672c44.8 0 76.8 38.4 76.8 76.8V716.8c0 44.8-38.4 76.8-76.8 76.8H179.2zM812.8 153.6H256c-19.2 0-38.4 19.2-38.4 38.4s19.2 38.4 38.4 38.4h556.8c19.2 0 38.4-19.2 38.4-38.4s-19.2-38.4-38.4-38.4zM556.8 473.6H256c-19.2 0-38.4 19.2-38.4 38.4s19.2 38.4 38.4 38.4h300.8c19.2 0 38.4-19.2 38.4-38.4s-19.2-38.4-38.4-38.4zM812.8 473.6H704c-19.2 0-38.4 19.2-38.4 38.4s19.2 38.4 38.4 38.4h108.8c19.2 0 38.4-19.2 38.4-38.4s-19.2-38.4-38.4-38.4z" horiz-adv-x="1024" />
<glyph glyph-name="xuanzhong" unicode="&#59211;" d="M512 866.461538C245.563077 866.461538 29.538462 650.436923 29.538462 384S245.563077-98.461538 512-98.461538 994.461538 117.563077 994.461538 384 778.436923 866.461538 512 866.461538zM720.384 541.538462l-226.816-314.44677a34.264615 34.264615 0 0 0-55.650462 0l-134.301538 186.092308a8.664615 8.664615 0 0 0 7.010462 13.666462h50.491076a34.264615 34.264615 0 0 0 27.884308-14.296616l76.681846-106.417231 169.314462 234.771693a34.422154 34.422154 0 0 0 27.884308 14.336h50.491076a8.664615 8.664615 0 0 0 7.010462-13.705846z" horiz-adv-x="1024" />
<glyph glyph-name="weixuanzhong" unicode="&#59213;" d="M713.373538 555.244308h-50.491076a34.264615 34.264615 0 0 1-27.884308-14.336l-169.314462-234.771693-76.681846 106.417231a34.422154 34.422154 0 0 1-27.884308 14.296616H310.626462a8.664615 8.664615 0 0 1-7.010462-13.666462l134.183385-186.092308a34.264615 34.264615 0 0 1 55.689846 0L720.265846 541.538462a8.585846 8.585846 0 0 1-6.892308 13.705846zM512 866.461538C245.563077 866.461538 29.538462 650.436923 29.538462 384S245.563077-98.461538 512-98.461538 994.461538 117.563077 994.461538 384 778.436923 866.461538 512 866.461538z m0-883.081846C290.816-16.620308 111.379692 162.816 111.379692 384 111.379692 605.184 290.816 784.620308 512 784.620308c221.184 0 400.620308-179.436308 400.620308-400.620308 0-221.184-179.436308-400.620308-400.620308-400.620308z" horiz-adv-x="1024" />
<glyph glyph-name="fuzhi4" unicode="&#59210;" d="M791.978667 701.3546670000001H82.773333a37.290667 37.290667 0 0 1-37.376-37.376v-709.290667c0-20.650667 16.725333-37.376 37.376-37.376H791.893333a37.290667 37.290667 0 0 1 37.376 37.376V663.893333a37.290667 37.290667 0 0 1-37.376 37.376z m-46.677334-699.989334H129.365333V617.301333h615.936v-615.936zM941.312 850.688H222.72a9.386667 9.386667 0 0 1-9.301333-9.386667v-65.28c0-5.12 4.266667-9.386667 9.386666-9.386666h671.914667V94.72000000000003c0-5.12 4.266667-9.301333 9.386667-9.301333h65.28c5.12 0 9.386667 4.266667 9.386666 9.386666V813.226667A37.290667 37.290667 0 0 1 941.226667 850.773333z" horiz-adv-x="1024" />
<glyph glyph-name="shezhi4" unicode="&#59214;" d="M983.630276 253.910842l-74.802755 63.980852a410.866748 410.866748 0 0 1 0 132.129598l74.802755 63.980852a36.560487 36.560487 0 0 1 10.602541 40.216535l-1.023693 2.924839a506.947706 506.947706 0 0 1-91.035612 157.575697l-2.047387 2.412992a36.706728 36.706728 0 0 1-40.143414 10.821904l-92.863636-32.977559a402.604078 402.604078 0 0 1-113.922476 65.808876L635.281961 857.89008a36.560487 36.560487 0 0 1-29.467753 29.32151L602.670007 887.796558a516.160949 516.160949 0 0 1-181.705618 0l-3.071081-0.584968a36.560487 36.560487 0 0 1-29.467753-29.32151l-18.06088-97.616499a402.01911 402.01911 0 0 1-113.118145-65.516392l-93.594846 33.196922a36.560487 36.560487 0 0 1-40.070293-10.821904l-2.047387-2.412992A509.653182 509.653182 0 0 1 30.571513 557.143518l-1.023693-2.924839a36.706728 36.706728 0 0 1 10.602541-40.216535l75.753328-64.712062a402.01911 402.01911 0 0 1 0-130.447816l-75.753328-64.63894a36.560487 36.560487 0 0 1-10.602541-40.216535l1.023693-2.99796A508.263884 508.263884 0 0 1 121.534004 53.340013l2.047387-2.412992a36.706728 36.706728 0 0 1 40.070293-10.821904l93.594846 33.270043a399.240513 399.240513 0 0 1 113.118145-65.589513l18.06088-97.616499a36.560487 36.560487 0 0 1 29.467753-29.32151l3.071081-0.584968a513.455473 513.455473 0 0 1 181.705618 0l3.07108 0.584968a36.560487 36.560487 0 0 1 29.467753 29.32151l17.914638 97.177773a399.898602 399.898602 0 0 1 113.922476 65.808876l92.863636-33.05068a36.560487 36.560487 0 0 1 40.143414 10.821904l2.047387 2.412992a509.653182 509.653182 0 0 1 91.035612 157.575697l1.023693 2.924839a36.414245 36.414245 0 0 1-10.602541 39.997172zM827.663241 436.493912a323.340943 323.340943 0 0 0 0-105.294201l-7.53146-45.84685 85.332175-72.974731c-12.869291-29.833357-29.248389-57.911811-48.625447-84.089119l-106.025411 37.58418-35.902398-29.467752c-27.274123-22.448139-57.765569-39.997172-90.670006-52.354617l-43.433858-16.305977-20.473873-110.851395c-32.173228-3.656049-64.931424-3.656049-97.104652 0l-20.473873 111.070758-43.141374 16.52534a319.611773 319.611773 0 0 0-89.938797 52.208375l-35.829276 29.613994-106.756621-37.949785a431.706225 431.706225 0 0 0-48.698568 84.089119l86.282748 73.705941-7.458339 45.700608a314.932031 314.932031 0 0 0 0 103.978023l7.458339 45.700609-86.282748 73.70594c12.942412 29.833357 29.248389 57.911811 48.698568 84.08912l106.756621-37.949786 35.829276 29.613995c27.05476 22.228776 57.326843 39.85093 89.938797 52.208374l43.287616 16.305977 20.473873 111.070758c32.026986 3.656049 64.858303 3.656049 97.031531 0l20.473873-110.851395 43.506979-16.305977c32.831317-12.357444 63.322763-29.979599 90.670006-52.354616l35.829277-29.467753 106.025411 37.584181c19.450179-26.177308 35.683035-54.402004 48.698568-84.089119l-85.332175-72.974732 7.385218-45.627487zM512 596.336359a201.082676 201.082676 0 1 1 0-402.165352 201.082676 201.082676 0 0 1 0 402.165352zM602.523765 304.876161c-24.276163-24.129921-56.303149-37.511059-90.523765-37.51106-34.147494 0-66.247602 13.381138-90.450644 37.51106a127.522977 127.522977 0 0 0-37.511059 90.450643c0 34.147494 13.381138 66.320723 37.511059 90.523765 24.129921 24.203042 56.303149 37.437938 90.450644 37.437938 34.147494 0 66.247602-13.234896 90.523765-37.437938 24.129921-24.276163 37.437938-56.303149 37.437938-90.523765 0-34.147494-13.381138-66.247602-37.437938-90.450643z" horiz-adv-x="1024" />
<glyph glyph-name="bianji2X" unicode="&#59209;" d="M859.025066 604.880668L733.465686 730.293794a57.18546 57.18546 0 0 0 0 80.805542l68.227665 68.227665a57.18546 57.18546 0 0 0 80.732415 0l125.486253-125.486253c22.303792-22.230665 22.303792-58.50175 0-80.732414l-68.227666-68.227666a56.819824 56.819824 0 0 0-80.659287 0z m-73.858459-153.786474c21.499393 21.426266 26.910805 50.823395 12.065986 65.52196l-152.689567 152.835821c-14.698565 14.698565-44.095694 9.36028-65.595086-12.065986L19.74434 113.100336a63.913161 63.913161 0 0 1-18.866814-38.318646l0.292509-152.835821a43.803185 43.803185 0 0 1 48.629579-48.702707l152.835821-1.243162a63.620653 63.620653 0 0 1 38.318646 18.866814l544.285653 560.154253z m180.258516-432.254802H566.516318c-15.356709 0-29.982147-6.069557-40.658716-16.965508-19.598086-19.598086-51.774048-52.870956-78.611726-80.732414a28.373349 28.373349 0 0 1 20.475612-48.117689h497.264872a58.355495 58.355495 0 0 1 58.209241 58.136113v30.055274a58.062987 58.062987 0 0 1-57.770478 57.624224z" horiz-adv-x="1024" />
<glyph glyph-name="duohanggongshi" unicode="&#59208;" d="M665.6 418.133333h17.066667v113.777778H295.822222l193.422222-227.555555-216.177777-216.177778h409.6l34.133333 130.844444h-22.755556c0-11.377778-5.688889-17.066667-11.377777-28.444444s-17.066667-17.066667-28.444445-22.755556H426.666667l164.977777 164.977778-136.533333 159.288889H597.333333c22.755556-5.688889 45.511111-11.377778 56.888889-22.755556 5.688889-17.066667 11.377778-34.133333 11.377778-51.2zM807.822222-116.622222H233.244444c-62.577778 0-119.466667 51.2-119.466666 119.466666V748.088889C113.777778 810.666667 164.977778 867.555556 233.244444 867.555556h443.733334l244.622222-233.244445v-637.155555c0-62.577778-51.2-113.777778-113.777778-113.777778zM233.244444 810.666667c-34.133333 0-62.577778-28.444444-62.577777-62.577778v-750.933333c0-34.133333 28.444444-62.577778 62.577777-62.577778h574.577778c34.133333 0 62.577778 28.444444 62.577778 62.577778V611.555556L654.222222 810.666667H233.244444zM898.844444 594.488889h-176.355555c-45.511111 0-85.333333 39.822222-85.333333 85.333333V839.111111h56.888888v-159.288889c0-17.066667 11.377778-28.444444 28.444445-28.444444h176.355555v-56.888889z" horiz-adv-x="1024" />

Before

Width:  |  Height:  |  Size: 428 KiB

After

Width:  |  Height:  |  Size: 438 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -1,12 +1,10 @@
import axios from 'axios';
import md5 from 'md5';
import { requestProxy } from "./indexEduplus2RequestProxy";
import { broadcastChannelOnmessage, SetAppModel, isDev, queryString } from 'educoder';
import { broadcastChannelOnmessage , isDev, queryString } from 'educoder';
import { notification } from 'antd';
import cookie from 'react-cookies';
import './index.css';
const $ = window.$;
const opens = "79e33abd4b6588941ab7622aed1e67e8";
let timestamp;
let checkSubmitFlg = false;
let message501 = false;
@ -30,17 +28,10 @@ if (isDev) {
if (_search) {
parsed = queryString.parse(_search);
}
debugType = window.location.search.indexOf('debug=t') != -1 ? 'teacher' :
window.location.search.indexOf('debug=s') != -1 ? 'student' :
window.location.search.indexOf('debug=a') != -1 ? 'admin' : parsed.debug || 'admin'
debugType = window.location.search.indexOf('debug=t') !== -1 ? 'teacher' :
window.location.search.indexOf('debug=s') !== -1 ? 'student' :
window.location.search.indexOf('debug=a') !== -1 ? 'admin' : parsed.debug || 'admin'
}
// 超管
//debugType = "admin";
// 老师
// debugType="teacher";
// 学生
// debugType = "student";
function clearAllCookie() {
cookie.remove('_educoder_session', { path: '/' });
cookie.remove('autologin_trustie', { path: '/' });
@ -70,9 +61,7 @@ setpostcookie();
function railsgettimes(proxy) {
clearAllCookie()
if (timestamp && checkSubmitFlg === false) {
$.ajax({
url: proxy, async: true, success: function (data) {
@ -103,105 +92,27 @@ function railsgettimes(proxy) {
}
window._debugType = debugType;
export function initAxiosInterceptors(props) {
initOnlineOfflineListener()
// TODO 避免重复的请求 https://github.com/axios/axios#cancellation
// https://github.com/axios/axios/issues/1497
// TODO 读取到package.json中的配置
var proxy = "http://localhost:3000"
// proxy = "http://testbdweb.trustie.net"
// proxy = "http://testbdweb.educoder.net"
// proxy = "https://testeduplus2.educoder.net"
//proxy="http://47.96.87.25:48080"
proxy = "https://pre-newweb.educoder.net"
proxy = "https://testforgeplus.trustie.net/"
// proxy="https://test-jupyterweb.educoder.net"
// proxy="https://test-newweb.educoder.net"
// proxy="https://test-jupyterweb.educoder.net"
// 在这里使用requestMap控制避免用户通过双击等操作发出重复的请求
// 如果需要支持重复的请求考虑config里面自定义一个allowRepeat参考来控制
const requestMap = {};
window.setfalseInRequestMap = function (keyName) {
requestMap[keyName] = false;
}
//响应前的设置
axios.interceptors.request.use(
config => {
setpostcookie()
clearAllCookie()
// config.headers['Content-Type']= 'no-cache'
// if (token) { // 每次发送请求之前判断是否存在token如果存在则统一在http请求的header都加上token不用每次请求都手动添加了
// config.headers.Authorization = token;
// }
// --------------------------------------------- 測試3007连测试服的代码
// if (url.indexOf('file_update') != -1 || url.indexOf('game_build') != -1 || url.indexOf('game_status') != -1) {
// proxy = 'https://testbdweb.trustie.net'
// } else {
// proxy = 'http://localhost:3000'
// }
// ---------------------------------------------
// console.log("开始请求了");
// console.log(config.url);
// console.log(window.location.pathname);
//
// try {
// const str =window.location.pathname;
// if(str.indexOf("/wxcode") !== -1){
// // console.log("开始重写cookis");
// const _params = window.location.search;
// // console.log("1111");
// if (_params) {
// // console.log("22222");
// let _search = _params.split('?')[1];
// var _educoder_sessionmys="";
// var autologin_trusties="";
// _search.split('&').forEach(item => {
// const _arr = item.split('=');
// if(_arr[0]==='_educoder_session'){
// cookie.save('_educoder_session',_arr[1], { domain: '.educoder.net', path: '/'});
// _educoder_sessionmys=_arr[1];
// }else{
// cookie.save('autologin_trustie',_arr[1], { domain: '.educoder.net', path: '/'});
// autologin_trusties=_arr[1];
// }
// });
// try {
// const autlogins= `_educoder_session=${_educoder_sessionmys}; autologin_trustie=${autologin_trusties} `;
// config.params = {'Cookie': autlogins}
// config.headers['Cookie'] =autlogins;
// // console.log("设置了cookis");
// } catch (e) {
//
// }
// try {
// const autloginysls= `_educoder_session=${_educoder_sessionmys}; autologin_trustie=${autologin_trusties} `;
// config.params = {'autloginysls': autloginysls}
// config.headers['Cookie'] =autloginysls;
// // console.log("设置了cookis");
// }catch (e) {
//
// }
// }
// }
// }catch (e) {
//
// }
if (config.url.indexOf(proxy) != -1 || config.url.indexOf(':') != -1) {
return config
@ -224,8 +135,8 @@ export function initAxiosInterceptors(props) {
} else {
config.url = `${config.url}&debug=${debugType}`;
}
}else{
config.url=url;
} else {
config.url = url;
}
setpostcookie();
}
@ -248,13 +159,6 @@ export function initAxiosInterceptors(props) {
}
const config = response.config
if (response.data.status === -1) {
// console.error('error:', response.data.message)
// throw new Error()
// https://github.com/axios/axios/issues?utf8=%E2%9C%93&q=cancel+request+in+response+interceptors+
// https://github.com/axios/axios/issues/583
// message.info(response.data.message || '服务端返回status -1请联系管理员。');
// props.showSnackbar( response.data.message || '服务器异常,请联系管理员。' )
if (window.location.pathname.startsWith('/tasks/')) {
props.showSnackbar(response.data.message || '服务器异常,请联系管理员。')
} else {
@ -265,29 +169,11 @@ export function initAxiosInterceptors(props) {
zIndex: 99999999
},
});
// notification['error']({
// message:"提示",
// description: response.data.message || '服务器异常,请联系管理员。',
// });
}
throw new axios.Cancel('Operation canceled by the user.');
} else {
// hash跳转
// var hash = window.location.hash;
// if (hash) {
// hashTimeout && window.clearTimeout(hashTimeout)
// hashTimeout = setTimeout(() => {
// var element = document.querySelector(hash);
// if (element) {
// element.scrollIntoView();
// }
// }, 400)
// }
}
// if(response.data.status === 401){
// console.log("401401401")
// }
if (response.data.status === 403 || response.data.status === "403") {
locationurl('/403');
@ -324,8 +210,6 @@ export function initAxiosInterceptors(props) {
}, function (error) {
return Promise.reject(error);
});
// -----------------------------------------------------------------------------------
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 257 KiB

After

Width:  |  Height:  |  Size: 590 KiB

View File

@ -1,6 +1,6 @@
import React , { Component } from 'react';
import React, { Component } from 'react';
import {Route,Switch,Link} from 'react-router-dom';
import { Route, Switch } from 'react-router-dom';
import { withRouter } from 'react-router'
@ -12,56 +12,51 @@ import './css/index.css';
import Loadable from 'react-loadable';
import Loading from '../Loading';
import {ImageLayerOfCommentHOC} from '../modules/page/layers/ImageLayerOfCommentHOC';
import axios from 'axios';
import { ImageLayerOfCommentHOC } from '../modules/page/layers/ImageLayerOfCommentHOC';
const ProjectNew = Loadable({
loader: () => import('./New/Index'),
loading: Loading,
loader: () => import('./New/Index'),
loading: Loading,
})
const ProjectIndex = Loadable({
loader: () => import('./Main/Index'),
loading: Loading,
loader: () => import('./Main/Index'),
loading: Loading,
})
const ProjectDetail = Loadable({
loader: () => import('./Main/Detail'),
loading: Loading,
loader: () => import('./Main/Detail'),
loading: Loading,
})
class Index extends Component{
class Index extends Component {
render(){
return(
render() {
return (
<div className="newMain clearfix">
<Switch {...this.props}>
<Route path="/projects/:projectsType/new"
render={
(props) => (<ProjectNew {...this.props} {...props} {...this.state}/>)
(props) => (<ProjectNew {...this.props} {...props} {...this.state} />)
}
></Route>
<Route path="/projects/:projectsId"
render={
(props) => (<ProjectDetail {...this.props} {...props} {...this.state}/>)
(props) => (<ProjectDetail {...this.props} {...props} {...this.state} />)
}
></Route>
<Route exact path="/projects"
render={
(props) => (<ProjectIndex {...this.props} {...props} {...this.state}/>)
(props) => (<ProjectIndex {...this.props} {...props} {...this.state} />)
}
></Route>
<Route exact path="/"
// component={ShixunsHome}
render={
(props)=>(<ProjectIndex {...this.props} {...props} {...this.state}></ProjectIndex>)
}
render={
(props) => (<ProjectIndex {...this.props} {...props} {...this.state}></ProjectIndex>)
}
/>
</Switch>
</div>
)
}
}
export default withRouter(ImageLayerOfCommentHOC({imgSelector: '.imageLayerParent img, .imageLayerParent .imageTarget', parentSelector: '.newMain'})(CNotificationHOC() ( SnackbarHOC() ( TPMIndexHOC(Index) ))));
export default withRouter(ImageLayerOfCommentHOC({ imgSelector: '.imageLayerParent img, .imageLayerParent .imageTarget', parentSelector: '.newMain' })(CNotificationHOC()(SnackbarHOC()(TPMIndexHOC(Index)))));

View File

@ -1,6 +1,6 @@
import React, { Component } from 'react';
import { Link } from 'react-router-dom';
import { Menu, Input, Dropdown , Spin, Pagination } from 'antd';
import { Menu, Input , Spin, Pagination , Popover } from 'antd';
import '../css/index.css'
import './list.css';
import ListItem from './IndexItem'
@ -151,7 +151,6 @@ class Index extends Component {
// 搜索
searchFun = (value) => {
// console.log(value)
this.setState({
page: 1,
search: value,
@ -201,41 +200,23 @@ class Index extends Component {
<Pagination simple defaultCurrent={page} total={total} pageSize={limit} onChange={this.ChangePage}></Pagination>
</div> : ""
)
return (
<div style={{ background: "#fafafa" }}>
<div style={{ background: "#EAEBEC" }}>
<p className="t_project_banner"></p>
<div className="main ProjectListIndex">
<div className="list-left">
<ul className="list-l-Menu">
<li className="MenuTitle">项目类型</li>
<li className="MenuTitle"><i className="iconfont icon-xiangmuleixing color-grey-9 font-15 mr5"></i></li>
{typeList}
</ul>
<ul className="list-l-Menu">
<li className="MenuTitle">项目类别</li>
<li className="MenuTitle"><i className="iconfont icon-xiangmuleibie color-grey-9 font-15 mr5"></i></li>
{categoryList}
</ul>
</div>
<div className="list-right boxShandow padding0-25">
<div className="list-right boxShandow radius-2" style={{padding:0}}>
<Spin spinning={isSpin}>
<div className="list-r-operation">
<div>
{
current_user && current_user.login &&
<Dropdown overlay={newItem} trigger={["click"]} placement='bottomRight' className="mr30">
<a className="ant-dropdown-link">
<span className="color-blue font-16"><img src={img_new} alt="" width="13px" /> 新建</span>
</a>
</Dropdown>
}
<Dropdown overlay={menu} trigger={['click']} placement='bottomRight'>
<a className="ant-dropdown-link">
<span className="color-blue font-16">排序 <img src={img_array} alt="" width="10px" /></span>
</a>
</Dropdown>
</div>
<Search
placeholder="输入项目名称关键字进行搜索"
enterButton="搜索"
@ -245,6 +226,22 @@ class Index extends Component {
value={search}
onChange={this.changeSearchValue}
/>
<div>
{
current_user && current_user.login &&
<Popover content={newItem} trigger={["click"]} placement='bottom' className="mr50">
<a className="ant-dropdown-link">
<span className="color-blue font-16"><img src={img_new} alt="" width="13px" /> 新建</span>
</a>
</Popover>
}
<Popover content={menu} trigger={['click']} placement='bottom'>
<a className="ant-dropdown-link">
<span className="color-blue font-16">排序 <img src={img_array} alt="" width="10px" /></span>
</a>
</Popover>
</div>
</div>
<ListItem {...this.props} {...this.state} projects={projectsList}></ListItem>
{pagination}

View File

@ -4,7 +4,7 @@ import { Link } from 'react-router-dom';
import '../css/index.css'
import './list.css';
import img_parise from '../Images/parise.png';
import img_fork from '../Images/fork.png';
class IndexItem extends Component {
TurnToDetail = (login, url) => {
this.props.history.push({
@ -28,7 +28,7 @@ class IndexItem extends Component {
{
item.forked_from_project_id ?
<span className="ml5">
<img src={img_fork} alt="" width="14px" />
<i className="iconfont icon-fork font-16 color-orange" />
</span>
: ""
}
@ -37,19 +37,19 @@ class IndexItem extends Component {
item.is_public ? "" :
<span className="p-r-tags"><span>私有</span></span>
}
</div>
<div className="p-r-content">
<p className="break_word task-hide flex1" style={{ maxHeight: "40px", width: "0" }}>{item.description}</p>
<span className="p-r-tags">
<span className="pariseTag"><img src={img_parise} alt="" className="pariseImg" /> ({item.praises_count})</span>
{item.language && item.language.id ? <span><label>{item.language.name}</label></span> : ""}
<span><i className="iconfont icon-fork mr3 font-16" style={{ color: "#1B8FFF" }} />fork ({item.forked_count})</span>
</span>
</div>
<p className="break_word task-hide-2 mt10" style={{ maxHeight: "40px" }}>{item.description}</p>
<div className="p-r-about">
<span className="p-r-detail">
<span><label>浏览量</label>{item.visits}</span>
{item.category && item.category.id && <span><label>项目类别</label>{item.category.name}</span>}
{item.last_update_time ? <span ><label>更新于</label>{item.time_ago}</span> : ""}
{item.language && item.language.id ? <span className="color-grey-3">{item.language.name}</span> : ""}
</span>
</div>
</div>

View File

@ -1,6 +1,4 @@
body,#root{
background: #fff!important;
}
.lineH2{line-height:2}
.t_project_banner {
height: 260px;
@ -24,26 +22,27 @@ body,#root{
padding:10px;
}
.list-l-Menu{
border:1px solid #f4f4f4;
background: #fff;
border-radius: 4px;
margin-bottom: 20px;
margin-bottom: 12px;
border-radius:2px;
border:1px solid rgba(221,221,221,1);
background-color: #fff;
}
.list-l-Menu>li{
font-size: 1rem;
padding:0px 20px;
padding:0px 0px 0px 20px;
box-sizing: border-box;
color: #333;
position: relative;
}
.list-l-Menu>li > p{
height: 50px;
line-height: 50px;
height: 62px;
line-height: 62px;
width: 100%;
border-bottom: 1px solid #eee;
display: flex;
justify-content: space-between;
cursor: pointer;
padding-right: 20px;
}
.list-l-Menu>li:last-child > p{
border-bottom: none;
@ -53,18 +52,15 @@ body,#root{
}
.list-l-Menu .MenuTitle{
font-size: 16px;
background:url(../Images/dir.png) no-repeat;
background-size: 100% 100%;
color: #fff!important;
height: 50px;
line-height: 50px;
}
.list-l-Menu:nth-child(2) .MenuTitle{
background:url(../Images/type.png) no-repeat;
background-size: 100% 100%;
color: #333!important;
height: 62px;
line-height: 62px;
border-bottom: 1px solid #E0E0E0;
font-weight: 400;
}
.list-l-Menu > li:not(.MenuTitle):hover{
background-color: #ECF6FF;
background-color: #fafafa;
}
/* 左侧menu */
@ -77,13 +73,34 @@ body,#root{
.list-l-Menu .ant-menu-item-group-title{
padding:0px;
}
.list-l-Menu li.active{
background-color: #fafafa;
}
/* 首页列表的新建和排序的下拉列表 */
.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-l-Menu li.active::before{
position: absolute;
left: 0px;
top: 8px;
width: 2px;
top: 10px;
width: 6px;
content: '';
height: 34px;
height: 33px;
background: #4CACFF;
}
.list-r-operation{
@ -91,7 +108,8 @@ body,#root{
justify-content: space-between;
flex-wrap: wrap;
align-items: center;
padding:25px 0px;
padding:25px 30px;
border-bottom: 1px solid #E0E0E0;
}
.list-r-Search{
width: 400px;
@ -114,23 +132,22 @@ body,#root{
}
/* 列表 */
.project-list{
padding:0px 30px;
}
.p-r-Item{
display: flex;
padding:15px 0px;
box-shadow:0px 2px 20px 0px rgba(0,0,0,0.05);
border-radius:2px;
border:1px solid rgba(238,238,238,1);
margin-bottom: 15px;
padding:20px;
border-bottom:1px solid rgba(238,238,238,1);
padding:22px 0px;
}
.boxShandow{
box-shadow:0px 2px 20px 10px rgba(0,0,0,0.03);
}
.p-r-photo{
width: 42px;
height: 42px;
width: 60px;
height: 60px;
border-radius: 50%;
margin-right: 15px;
margin-right: 22px;
}
.p-r-Infos{
flex: 1;
@ -223,8 +240,8 @@ body,#root{
display: flex;
}
.p-r-detail > span{
margin-right: 15px;
color: #666;
margin-right: 22px;
color: #888;
}
.p-r-detail > span > label{
color: #999;

View File

@ -1,12 +1,16 @@
ul,ol,dl{
margin-bottom: 0px!important;
margin-bottom: 0px;
}
.newMain{
background-color: #fff;
}
.main{
width: 1200px;
margin:20px auto;
padding:20px 0px;
margin:0px auto;
}
.radius-2{
border-radius: 2px;
}
.normal{
width: 1200px;

View File

@ -139,43 +139,6 @@ class LoginDialog extends Component {
Phonenumberisnotco:undefined,
})
}
// let reg = /^(\w-*\.*)+@(\w-?)+(\.\w{2,})+$/;
// let reg1 = /^1\d{10}$/;
// let reg2=/^[a-zA-z]\w{3,14}$/;
// // let reg3=/^[a-zA-Z0-9]+([.\-_\\]*[a-zA-Z0-9])*@([a-z0-9]+[-a-z0-9]*[a-z0-9]+.){1,63}[a-z0-9]+$/;
// let value=this.refs.loginPassText.value;
// let valuenum= value.length;
// if(valuenum>0){
// if(!reg.test(value)&&!reg1.test(value)&&!reg2.test(value)){
// this.setState({regular:1})
// return
// }else{
// // this.setState({loginValue:value});
// this.setState({regular:0});
// var stirngt;
// if(value.length>0){
// var str= value.replace(/\s*/g,"")
// stirngt=str;
// }else{
// stirngt= value;
// }
// this.setState({
// loginValue:stirngt,
// });
// }
// }else{
// this.setState({loginValue:value});
// var stirngt;
// if(value.length>0){
// var str= value.replace(/\s*/g,"")
// stirngt=str;
// }else{
// stirngt= value;
// }
// this.setState({
// loginValue:stirngt,
// });
// }
};
//邮箱手机号验证
Emailphonenumberverification = (value, id) => {
@ -374,13 +337,6 @@ class LoginDialog extends Component {
isRender:this.props.isRender
})
}
// $(document).on("showLoginDialog", (e, args)=>{
// this.setState({
// isRender: true
// })
// })
this.dragWrapper();
axios.interceptors.response.use((response) => {
@ -393,64 +349,13 @@ class LoginDialog extends Component {
}
return response;
}, (error) => {
// // if (error.response && error.response.data.error === '401 Unauthorized') {
// // this.back_url = window.location.href;
// // this.setState({
// // isRender: true
// // })
// // // TODO 这里如果样式变了会出现css不加载的情况
// // const $ = window.$;
// // const isCssLoaded = window.getComputedStyle($('.log_nav li.active')[0], null)
// // .getPropertyValue('border-bottom')
// // == "2px solid rgb(69, 155, 229)"
// // if (!isCssLoaded) {
// // const isPort3007 = window.location.port == 3007;
// // let _url_origin = isPort3007 ? 'http://localhost:3000' : ''
// //
// // $('head').append( $('<link rel="stylesheet" type="text/css" />')
// // .attr('href', `${_url_origin}/stylesheets/educoder/edu-main.css`) );
// // $('head').append( $('<link rel="stylesheet" type="text/css" />')
// // .attr('href', `${_url_origin}/stylesheets/educoder/edu-all.css`) );
// // }
// // }
// // return Promise.reject(error);
});
}
handleDialogClose = () => {
// if(this.props.match.path==='/'){
// this.setState({
// isRender: false
// })
// this.props.Modifyloginvalue();
// }else{
// if(this.props.isloginCancel===undefined){
// window.location.href="/";
// this.props.Modifyloginvalue();
// // this.setState({
// // isRender: false
// // })
// // this.props.Modifyloginvalue();
// }else{
// this.setState({
// isRender: false
// })
// this.props.Modifyloginvalue();
// }
this.setState({
isRender: false
})
this.props.Modifyloginvalue();
// this.setState({
// isRender: false
// })
// try {
// this.props.Modifyloginvalue();
// }catch (e) {
//
// }
}
loginEDU=()=>{
@ -501,8 +406,6 @@ class LoginDialog extends Component {
});
}
}else{
broadcastChannelPostMessage('refreshPage')
this.setState({
isRender:false
@ -559,9 +462,7 @@ class LoginDialog extends Component {
this.setState({
qqlogin:true
})
//window.location.href=`https://graph.qq.com/oauth2.0/show?which=Login&display=pc&client_id=101508858&redirect_uri=https%3a%2f%2f${window.location.host}%2otherloginqq&response_type=code`
window.location.href=`https://graph.qq.com/oauth2.0/show?which=Login&display=pc&client_id=101508858&redirect_uri=https%3a%2f%2fwww.educoder.net%2fotherloginqq&state=null,${window.location.host}&response_type=code`
// window.location.href=`https://graph.qq.com/oauth2.0/show?which=Login&display=pc&client_id=101508858&redirect_uri=https%3a%2f%2fwww.educoder.net%2fotherloginstart&tp=qq&response_type=code`
}
openphoneqqlogin=()=>{
@ -600,19 +501,6 @@ class LoginDialog extends Component {
modalsType={this.state.MyEduCoderModals}
setNotcompleteds={()=>{this.setNotcompleteds()}}
/>
{/*{this.state.isphone===false||this.props.user&&this.props.user.main_site===false?<style>*/}
{/*{*/}
{/*`*/}
{/*#DialogID .dialogBox {*/}
{/*width: 405px !important;*/}
{/*}*/}
{/*.dialogBox {*/}
{/*height: 290px !important;*/}
{/*}*/}
{/*`*/}
{/*}*/}
{/*</style>:""}*/}
<style>
{
`
@ -626,154 +514,122 @@ class LoginDialog extends Component {
}
</style>
{isRender===true?
<div className={dialogBox}>
<div id="closeIcon" className={"logincloseIcon"} onClick={()=>{this.handleDialogClose()}}>
<i className="iconfont icon-shanchudiao"></i>
<div className={dialogBox}>
<div id="closeIcon" className={"logincloseIcon"} onClick={()=>{this.handleDialogClose()}}>
<i className="iconfont icon-shanchudiao"></i>
</div>
<div id="log_reg_content" >
{weixinlogin===true?"": <ul className="log_nav clearfix">
<li onClick={()=>{this.enter(0)}}>登录</li>
</ul>}
<div className="login-panel" id="login-panel-1" style={{display: login==0?'block':'none'}}>
{weixinlogin===true?"":<form acceptCharset="UTF-8" action="/login" id="main_login_form" method="post">
<div style={{"display":"inline","padding":"0","margin":"0"}}>
<input name="utf8" type="hidden" value="✓"></input>
<input name="authenticity_token" type="hidden" value="NVLiIlHZfhVBQtO9djnWncJqqdikNQIIxEmOvzK9vNM="></input>
</div>
<div id="log_reg_content" >
{weixinlogin===true?"": <ul className="log_nav clearfix">
<li onClick={()=>{this.enter(0)}}>登录</li>
{/*<li className={speedy==0?'active':''} onClick={()=>{this.register(0)}}>快捷登录</li>*/}
</ul>}
<div className="login-panel" id="login-panel-1" style={{display: login==0?'block':'none'}}>
{weixinlogin===true?"":<form acceptCharset="UTF-8" action="/login" id="main_login_form" method="post">
<div style={{"display":"inline","padding":"0","margin":"0"}}>
<input name="utf8" type="hidden" value="✓"></input>
<input name="authenticity_token" type="hidden" value="NVLiIlHZfhVBQtO9djnWncJqqdikNQIIxEmOvzK9vNM="></input>
</div>
<input name="back_url" type="hidden" value={this.back_url}></input>
<input
type="text"
className="input-100-45 mt20"
id="name_loggin_input"
ref="loginPassText"
onInput={this.loginChange}
onBlur={(e) => this.inputOnBlur(e, 1)}
onPressEnter={disabled === false ?
this.loginEDU : () => {
}
// console.log(1)
}
value={this.state.loginValue}
name="username"
placeholder="请输入有效的手机号/邮箱号" ></input>
<div style={{height: '25px'}}><p className="color-orange edu-txt-left none" id="username_error_notice"
style={{display: Phonenumberisnotco===undefined?'none':'block'}}>{Phonenumberisnotco}</p></div>
<div>
<input type="password" id="password_loggin_input"
name="password"
ref="passwordText"
onInput={this.passwordChange}
onKeyDown={this.onKeydowns}
className="input-100-45 mt5"
onPressEnter={disabled === false ?
this.loginEDU : () => {
}
// console.log(1)
}
placeholder="密码" >
</input>
<div style={{height: '25px'}}>
<p className="color-orange edu-txt-left none" id="password_error_notice">
请输入密码
</p>
</div>
</div>
{/*<button className={bottonclass} id="psd_login_btn" onClick={this.loginEDU} disabled={disabled}>*/}
{/*</button>*/}
<div className={disabled===false?"bluebutton edu-back-blue":"bluebutton"}
onClick={disabled===false?
this.loginEDU: () => {}
// console.log(1)
}
>
登录
</div>
<p className="clearfix mt20">
<span className="fl">
<input type="checkbox"
className="mr5 magic-checkbox"
checked={isGoing}
onChange={this.handleInputChange}
value={isGoingValue}
name="isGoing"
id="p_autolog"></input>
<label htmlFor="p_autolog" style={{top:'0px'}}>下次自动登录</label>
</span>
<span className="fr">
<a onClick={(url) => this.getloginurl("/changepassword")}
className="mr3 color-grey-9">找回密码</a><em className="vertical-line"></em>
<a onClick={(url)=>this.getloginurl("/register")} className="color-grey-9">注册</a>
</span>
</p>
{this.props.user&&this.props.user.main_site===true?this.state.isphone===true?<p className="clearfix mt20">
<span className={"startlogin"}> 快速登录 </span>
<div className={"mt10"}>
<a onClick={()=>this.openweixinlogin()}>
<img src={require('./WeChat.png')} alt="微信登录"/>
</a>
<a onClick={()=>this.openqqlogin()} className={"ml10"}>
<img src={require('./qq.png')} alt="qq登录"/>
</a>
</div>
</p>:<p className="clearfix mt20">
<span className={"startlogin"}> 快速登录 </span>
<div className={"mt10"}>
{/*<a onClick={()=>this.openweixinlogin()}>*/}
{/*<img src={require('./WeChat.png')} alt="微信登录"/>*/}
{/*</a>*/}
<a onClick={()=>this.openphoneqqlogin()} className={"ml10"}>
<img src={require('./qq.png')} alt="qq登录"/>
</a>
</div>
</p>:""}
</form>}
{weixinlogin===true?<iframe
className={"weixinheight390"}
frameBorder="0"
sandbox="allow-scripts allow-same-origin allow-top-navigation"
scrolling="no"
src={`https://open.weixin.qq.com/connect/qrconnect?appid=wx6b119e2d829c13fa&redirect_uri=https%3a%2f%2fwww.educoder.net%2fotherloginstart&response_type=code&scope=snsapi_login&state=null,${window.location.host}#wechat_redirect`}></iframe>:""}
{weixinlogin===true?<p className="clearfix ">
<a className={"startlogin color-blue"} onClick={()=>this.hideweixinlogin()}>返回账号登录</a>
</p>:""}
</div>
{/*快捷登录*/}
<input name="back_url" type="hidden" value={this.back_url}></input>
<input
type="text"
className="input-100-45 mt20"
id="name_loggin_input"
ref="loginPassText"
onInput={this.loginChange}
onBlur={(e) => this.inputOnBlur(e, 1)}
onPressEnter={disabled === false ?
this.loginEDU : () => {
}
}
value={this.state.loginValue}
name="username"
placeholder="请输入有效的手机号/邮箱号" ></input>
<div style={{height: '25px'}}><p className="color-orange edu-txt-left none" id="username_error_notice"
style={{display: Phonenumberisnotco===undefined?'none':'block'}}>{Phonenumberisnotco}</p></div>
<div>
<input type="password" id="password_loggin_input"
name="password"
ref="passwordText"
onInput={this.passwordChange}
onKeyDown={this.onKeydowns}
className="input-100-45 mt5"
onPressEnter={disabled === false ?
this.loginEDU : () => {
}
}
placeholder="密码" >
</input>
<div style={{height: '25px'}}>
<p className="color-orange edu-txt-left none" id="password_error_notice">
请输入密码
</p>
</div>
</div>
</div>
:""}
</Dialog>
<div className={disabled===false?"bluebutton edu-back-blue":"bluebutton"}
onClick={disabled===false?
this.loginEDU: () => {}
}
>
登录
</div>
<p className="clearfix mt20">
<span className="fl">
<input type="checkbox"
className="mr5 magic-checkbox"
checked={isGoing}
onChange={this.handleInputChange}
value={isGoingValue}
name="isGoing"
id="p_autolog"></input>
<label htmlFor="p_autolog" style={{top:'0px'}}>下次自动登录</label>
</span>
<span className="fr">
<a onClick={(url) => this.getloginurl("/changepassword")}
className="mr3 color-grey-9">找回密码</a><em className="vertical-line"></em>
<a onClick={(url)=>this.getloginurl("/register")} className="color-grey-9">注册</a>
</span>
</p>
);
}
{this.props.user&&this.props.user.main_site===true?this.state.isphone===true?<p className="clearfix mt20">
<span className={"startlogin"}> 快速登录 </span>
<div className={"mt10"}>
<a onClick={()=>this.openweixinlogin()}>
<img src={require('./WeChat.png')} alt="微信登录"/>
</a>
<a onClick={()=>this.openqqlogin()} className={"ml10"}>
<img src={require('./qq.png')} alt="qq登录"/>
</a>
</div>
</p>:<p className="clearfix mt20">
<span className={"startlogin"}> 快速登录 </span>
<div className={"mt10"}>
<a onClick={()=>this.openphoneqqlogin()} className={"ml10"}>
<img src={require('./qq.png')} alt="qq登录"/>
</a>
</div>
</p>:""}
</form>}
{weixinlogin===true?<iframe
className={"weixinheight390"}
frameBorder="0"
sandbox="allow-scripts allow-same-origin allow-top-navigation"
scrolling="no"
src={`https://open.weixin.qq.com/connect/qrconnect?appid=wx6b119e2d829c13fa&redirect_uri=https%3a%2f%2fwww.educoder.net%2fotherloginstart&response_type=code&scope=snsapi_login&state=null,${window.location.host}#wechat_redirect`}></iframe>:""}
{weixinlogin===true?<p className="clearfix ">
<a className={"startlogin color-blue"} onClick={()=>this.hideweixinlogin()}>返回账号登录</a>
</p>:""}
</div>
{/*快捷登录*/}
</div>
</div>
:""}
</Dialog>
);
}
}
export default LoginDialog ;

View File

@ -988,15 +988,6 @@ class Question extends Component {
}
return (
<div className="newMain clearfix" ref={this.saveContainer}>
<style>{
`
.newHeaders{
position: fixed;
top: 0px;
z-index: 999 !important;
}
`
}</style>
{
mydisplay === true ?
<Certifiedprofessional {...this.props} {...this.state} ModalCancelsy={this.mydisplayHidedel} />

File diff suppressed because it is too large Load Diff

View File

@ -15,7 +15,49 @@ body>.-task-title {
#root .search-all {
width: 219px;
}
.newContainers{
min-width: 1200px;
max-width: unset;
height: 100%;
min-height: 100%;
overflow: hidden;
}
.newHeaders{
max-width: unset;
background: #fff !important;
width: 100%;
height:70px;
min-width: 1200px;
z-index: 1000;
-moz-box-shadow: 0px 2px 10px 0px rgba(0,0,0,0.1);
background:rgba(255,255,255,1);
box-shadow:0px 2px 10px 0px rgba(0,0,0,0.1);
}
.headerContent{
width:1200px;
margin:0px auto;
display: flex;
align-items: center;
height: 100%
}
.globalSpin {
max-height: 700px !important;
}
.indexHOC > .ant-spin-nested-loading {
background: #000;
height: 100%;
}
.indexHOC > .ant-spin-nested-loading > div > .ant-spin .ant-spin-dot {
top: 50% !important;
}
.globalSpin .ant-spin-text {
text-shadow: none !important;
color: #fff;
}
.globalSpin .ant-spin-dot-item {
background-color: #fff;
}
/*Header START*/
.newHeader .logoimg {
margin-top: 16px;
@ -23,11 +65,6 @@ body>.-task-title {
width: 97px;
}
.head-right i {
font-size: 20px;
float: none !important;
}
.headIcon,
#header_keyword_search {
padding-top: 13px !important;

View File

@ -1,7 +1,6 @@
import React from 'react';
import NewHeader from './NewHeader'
import NewFooter from './NewFooter'
import SiderBar from './SiderBar'
import { downloadFile } from 'educoder'
import axios from 'axios';
import { Spin } from 'antd';
@ -662,49 +661,6 @@ export function TPMIndexHOC(WrappedComponent) {
{...this.dialogObj}
/> : ""}
<style>{
`
.newContainers{
min-width: 1200px;
max-width: unset;
height: 100%;
min-height: 100%;
overflow: hidden;
}
.newHeaders{
// position: fixed;
max-width: unset;
background: #24292D !important;
width: 100%;
height: 60px !important;
min-width: 1200px;
z-index: 1000;
-moz-box-shadow: 0px 0px 12px rgba(0,0,0,0.1);
box-shadow: 0px 0px 12px rgba(0,0,0,0.1);
}
.globalSpin {
max-height: 700px !important;
}
.indexHOC > .ant-spin-nested-loading {
background: #000;
height: 100%;
}
.indexHOC > .ant-spin-nested-loading > div > .ant-spin .ant-spin-dot {
top: 50% !important;
}
.globalSpin .ant-spin-text {
text-shadow: none !important;
color: #fff;
}
.globalSpin .ant-spin-dot-item {
background-color: #fff;
}
`
}</style>
<NewHeader {...this.state} {...this.props}></NewHeader>
<Spin spinning={this.state.globalLoading} delay={0} className="globalSpin"
size="large"
@ -717,11 +673,8 @@ export function TPMIndexHOC(WrappedComponent) {
{...common}
>
</WrappedComponent>
</div>
</Spin>
<NewFooter
{...this.state} {...this.props}
Footerdown={Footerdown}

View File

@ -9,7 +9,7 @@ import InfoTab from '../common/InfoTab'
import HeadlessModal from '../common/HeadlessModal'
import ClipboardJS from 'clipboard'
import VideoPlay from '../../../courses/Video/video-play';
// import VideoPlay from '../../../courses/Video/video-play';
import { logWatchHistory } from '../../../../services/video-service';
import { Base64 } from 'js-base64';
@ -271,7 +271,7 @@ function InfoVideo(props) {
className="showVideoModal"
width={800 - 1}
>
{videoModalObj.visible && <VideoPlay src={Base64.decode(videoId.file_url)} videoId={videoId.videoId} logWatchHistory={logWatchHistory} />}
{/* {videoModalObj.visible && <VideoPlay src={Base64.decode(videoId.file_url)} videoId={videoId.videoId} logWatchHistory={logWatchHistory} />} */}
<div className="df copyLine">
<Input value={_inputValue}
className="dark"