Bladeren bron

feat(front): 修复首页

Go 5 jaren geleden
bovenliggende
commit
e16e043a16

BIN
front/project/www/assets/gift_active.png


+ 0 - 41
front/project/www/components/Other/index.js

@@ -18,47 +18,6 @@ export class CommentFalls extends Component {
 
   render() {
     const { list = [] } = this.props;
-
-    list.push({
-      nickname: 12312312,
-      content: '123123',
-    });
-    list.push({
-      nickname: 12312312,
-      content: '123123',
-    });
-    list.push({
-      nickname: 12312312,
-      content: '123123',
-    });
-    list.push({
-      nickname: 12312312,
-      content: '123123',
-    });
-    list.push({
-      nickname: 12312312,
-      content: '123123',
-    });
-    list.push({
-      nickname: 12312312,
-      content: '123123',
-    });
-    list.push({
-      nickname: 12312312,
-      content: '123123',
-    });
-    list.push({
-      nickname: 12312312,
-      content: '123123',
-    });
-    list.push({
-      nickname: 12312312,
-      content: '123123',
-    });
-    list.push({
-      nickname: 12312312,
-      content: '123123',
-    });
     return (
       <div className="comment-falls">
         {list.map(row => {

+ 1 - 0
front/project/www/components/Other/index.less

@@ -20,6 +20,7 @@
 
       .item-header {
         margin-bottom: 10px;
+        position: relative;
 
         .assets {
           width: 40px;

+ 10 - 0
front/project/www/components/OtherModal/index.js

@@ -68,9 +68,14 @@ export class BindPhone extends Component {
   validMobile() {
     const { data } = this.state;
     const { area, mobile } = data;
+    const { info } = this.props.user;
     if (!area || !mobile) return;
     this.validNumber += 1;
     const number = this.validNumber;
+    if (mobile === info.mobile) {
+      this.setState({ mobileError: '' });
+      return;
+    }
     User.validMobile(area, mobile)
       .then(result => {
         if (number !== this.validNumber) return Promise.resolve();
@@ -233,9 +238,14 @@ export class BindEmail extends Component {
   validEmail() {
     const { data } = this.state;
     const { email } = data;
+    const { info } = this.props.user;
     if (!email) return;
     this.validNumber += 1;
     const number = this.validNumber;
+    if (email === info.email) {
+      this.setState({ error: '' });
+      return;
+    }
     User.validEmail(email)
       .then(result => {
         if (number !== this.validNumber) return Promise.resolve();

+ 3 - 3
front/project/www/components/VipRenew/index.js

@@ -220,7 +220,7 @@ export default class extends Component {
             {data.bindReal && <span className="over">已完成</span>}
             <Assets className="icon" name={`realname2${data.bindReal ? '' : '_gray'}`} />
             <div className="t">
-              <Assets name="gift" />
+              <Assets name={data.bindReal ? 'gift_active' : 'gift'} />
               6个月
             </div>
             <Button size="small" radius disabled={data.bindReal} onClick={() => {
@@ -232,7 +232,7 @@ export default class extends Component {
           <div className="item">
             <Assets className="icon" name={`invite${data.inviteNumber > 0 ? '' : '_gray'}`} />
             <div className="t">
-              <Assets name="gift" />
+              <Assets name={data.inviteNumber > 0 ? 'gift_active' : 'gift'} />
               {data.inviteNumber > 0 ? `7天 X ${data.inviteNumber}位好友` : '7天/每位好友'}
             </div>
             <Button size="small" radius onClick={() => {
@@ -245,7 +245,7 @@ export default class extends Component {
             {data.bindPrepare && <span className="over">已完成</span>}
             <Assets className="icon" name={`information2${data.bindPrepare ? '' : '_gray'}`} />
             <div className="t">
-              <Assets name="gift" />
+              <Assets name={data.bindPrepare ? 'gift_active' : 'gift'} />
               1个月
             </div>
             <Button size="small" radius disabled={data.bindPrepare} onClick={() => {

+ 4 - 0
front/project/www/components/VipRenew/index.less

@@ -102,12 +102,16 @@
           .t {
             margin-bottom: 10px;
 
+
             .assets {
               margin-right: 5px;
+              width: 40px;
+              height: 20px;
             }
           }
         }
       }
+
       .invite-block {
         padding-top: 20px;
         border-top: 1px solid #eee;

+ 41 - 1
front/project/www/routes/page/home/index.less

@@ -137,6 +137,10 @@
           border-radius: 2px;
         }
 
+        .item:hover {
+          box-shadow: 0px 32px 44px 0px rgba(156, 183, 223, 0.3), 0px 15px 28px 0px rgba(0, 0, 0, 0.01);
+        }
+
         .m-r-1-5 {
           margin-right: 15px;
         }
@@ -411,15 +415,51 @@
       }
 
       .item {
-        width: 380px;
+        flex: none !important;
         padding: 30px;
         position: relative;
+        height: 200px;
+
+
+        &.item1 {
+          width: 380px;
+
+          &:hover {
+            height: 210px;
+          }
+        }
+
+        &.item2 {
+          width: 440px;
+
+          .desc {
+            width: 100%
+          }
+
+          &:hover {
+            height: 250px;
+
+            .desc {
+              width: 250px;
+            }
+          }
+        }
+
+        &.item3 {
+          width: 320px;
+
+          &:hover {
+            height: 210px;
+          }
+        }
 
         .sun {
           position: absolute;
           top: 0;
           right: 0;
           display: none;
+          width: 75px;
+          height: 75px;
         }
 
         .title {

+ 4 - 4
front/project/www/routes/page/home/page.js

@@ -32,7 +32,7 @@ export default class extends Page {
 
   test() {
     User.needLogin().then(() => {
-      linkTo('/my');
+      linkTo('/my/main');
     });
   }
 
@@ -216,7 +216,7 @@ export default class extends Page {
               <div className="step-c step-c-5">
                 <div className="m-title">独家服务</div>
                 <div className="list">
-                  <div className="item m-r-1-5" style={{ height: 210 }}>
+                  <div className="item m-r-1-5 item1">
                     <Assets className="sun" name="sun_blue" />
                     <div className="title" style={{ color: '#4292F0' }} onClick={() => linkTo('/examination')}>
                       千⾏CAT模考<span className="sub">></span>
@@ -225,7 +225,7 @@ export default class extends Page {
                     <div className="desc">独家题源,排除重题⼲扰</div>
                     <div className="desc">模考报告提供具体考点分析,明确提升 ⽅向</div>
                   </div>
-                  <div className="item m-r-1-5 m-l-1-5" style={{ height: 250 }} onClick={() => linkTo('/textbook')}>
+                  <div className="item m-r-1-5 m-l-1-5 item2" onClick={() => linkTo('/textbook')}>
                     <Assets className="sun" name="sun_red" />
                     <div className="title" style={{ color: '#FFB676' }}>
                       机经服务<span className="sub">></span>
@@ -234,7 +234,7 @@ export default class extends Page {
                     <div className="desc">轻松获取:⾃动更新⾄邮箱代替⼿动 领取</div>
                     <div className="desc">随时查阅:⼿机查看、在线浏览、在 线做题</div>
                   </div>
-                  <div className="item m-l-1-5" style={{ height: 185 }} onClick={() => User.needLogin().then(() => linkTo('/my'))}>
+                  <div className="item m-l-1-5 item3" onClick={() => User.needLogin().then(() => linkTo('/my'))}>
                     <Assets className="sun" name="sun_yello" />
                     <div className="title" style={{ color: '#F36565' }}>
                       VIP服务<span className="sub">></span>

+ 5 - 5
server/gateway-api/src/main/java/com/qxgmat/controller/api/AuthController.java

@@ -102,7 +102,7 @@ public class AuthController {
         }else{
             user = usersService.getUserByToken(token);
             // 用该token登录
-            shiroHelp.getSession().login(shiroHelp.user(user.getArea()+":"+user.getMobile(), ""));
+            shiroHelp.getSession().login(shiroHelp.user(user.getArea()+":"+user.getMobile(), "", true));
         }
 
         User entity = usersService.get(user.getId());
@@ -128,7 +128,7 @@ public class AuthController {
         }catch (ParameterException e){
             // 忽略已注册信息
         }
-        shiroHelp.getSession().login(shiroHelp.user(userLoginDto.getArea()+":"+userLoginDto.getMobile(), ""));
+        shiroHelp.getSession().login(shiroHelp.user(userLoginDto.getArea()+":"+userLoginDto.getMobile(), "", true));
 
         User user = shiroHelp.getLoginUser();
         User entity = usersService.get(user.getId());
@@ -156,7 +156,7 @@ public class AuthController {
         }
         User openUser = (User) shiroHelp.getLoginUser();
         if (openUser.getId() != null && openUser.getId() > 0){
-            shiroHelp.getSession().login(shiroHelp.user(openUser.getArea()+":"+openUser.getMobile(), ""));
+            shiroHelp.getSession().login(shiroHelp.user(openUser.getArea()+":"+openUser.getMobile(), "", true));
         }
         MyDto dto = processUser(openUser, request);
         return ResponseHelp.success(dto);
@@ -180,7 +180,7 @@ public class AuthController {
         }
         User openUser = (User) shiroHelp.getLoginUser();
         if (openUser.getId() != null && openUser.getId() > 0){
-            shiroHelp.getSession().login(shiroHelp.user(openUser.getArea()+":"+openUser.getMobile(), ""));
+            shiroHelp.getSession().login(shiroHelp.user(openUser.getArea()+":"+openUser.getMobile(), "", true));
         }
         MyDto dto = processUser(openUser, request);
         return ResponseHelp.success(dto);
@@ -218,7 +218,7 @@ public class AuthController {
         }catch (ParameterException e){
             throw new ParameterException("该手机号绑定其他账号,请更换手机号码!");
         }
-        shiroHelp.getSession().login(shiroHelp.user(userValidMobileDto.getArea()+":"+userValidMobileDto.getMobile(), ""));
+        shiroHelp.getSession().login(shiroHelp.user(userValidMobileDto.getArea()+":"+userValidMobileDto.getMobile(), "", true));
 
         User user = shiroHelp.getLoginUser();
         User entity = usersService.get(user.getId());

+ 1 - 1
server/gateway-api/src/main/java/com/qxgmat/util/shiro/ShiroConfig.java

@@ -202,7 +202,7 @@ public class ShiroConfig {
         // 这个参数是cookie的名称,对应前端的checkbox的name = rememberMe
         SimpleCookie simpleCookie = new SimpleCookie("rememberMe");
         // <!-- 记住我cookie生效时间30天 ,单位秒;-->
-        simpleCookie.setMaxAge(259200);
+        simpleCookie.setMaxAge(86400000);
         return simpleCookie;
     }