Procházet zdrojové kódy

Merge remote-tracking branch 'origin/dev' into dev

huangct před 8 roky
rodič
revize
740a8bff45
18 změnil soubory, kde provedl 232 přidání a 76 odebrání
  1. 2 5
      donate-console/src/main/java/com/uas/console/donate/WebAppConfiguration.java
  2. 11 0
      donate-console/src/main/java/com/uas/console/donate/controller/ActivityController.java
  3. 1 0
      donate-console/src/main/java/com/uas/console/donate/controller/SmsController.java
  4. 2 1
      donate-console/src/main/java/com/uas/console/donate/dao/ActivityDao.java
  5. 2 1
      donate-console/src/main/java/com/uas/console/donate/dao/ProjectDao.java
  6. 4 2
      donate-console/src/main/java/com/uas/console/donate/model/Activity.java
  7. 2 0
      donate-console/src/main/java/com/uas/console/donate/service/ActivityService.java
  8. 54 16
      donate-console/src/main/java/com/uas/console/donate/service/impl/ActivityServiceImpl.java
  9. 2 2
      donate-console/src/main/webapp/WEB-INF/views/index.html
  10. 25 3
      donate-console/src/main/webapp/resources/js/index/app.js
  11. 5 0
      donate-console/src/main/webapp/resources/js/index/services/Activity.js
  12. 2 3
      donate-console/src/main/webapp/resources/view/activity/activity_detail.html
  13. 7 25
      donate-console/src/main/webapp/resources/view/activity/activity_launch.html
  14. 2 2
      donate-service/src/main/java/com/uas/service/donate/dao/ActivityDao.java
  15. 2 1
      donate-service/src/main/resources/templates/activeCenter.ftl
  16. 109 15
      donate-service/src/main/resources/templates/index.ftl
  17. binární
      donate-service/src/main/webapp/resources/images/loading1.png
  18. binární
      donate-service/src/main/webapp/resources/images/loading2.png

+ 2 - 5
donate-console/src/main/java/com/uas/console/donate/WebAppConfiguration.java

@@ -8,10 +8,7 @@ import org.springframework.context.annotation.Configuration;
 import org.springframework.http.MediaType;
 import org.springframework.http.converter.HttpMessageConverter;
 import org.springframework.http.converter.StringHttpMessageConverter;
-import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
-import org.springframework.web.servlet.config.annotation.ViewControllerRegistry;
-import org.springframework.web.servlet.config.annotation.ViewResolverRegistry;
-import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
+import org.springframework.web.servlet.config.annotation.*;
 import org.springframework.web.servlet.view.InternalResourceViewResolver;
 
 import java.nio.charset.Charset;
@@ -26,6 +23,7 @@ import java.util.List;
  */
 @Configuration
 @ComponentScan(basePackages = "com.uas.console.donate.controller")
+@EnableWebMvc
 public class WebAppConfiguration extends WebMvcConfigurerAdapter {
 
 	@Override
@@ -51,7 +49,6 @@ public class WebAppConfiguration extends WebMvcConfigurerAdapter {
 		registry.addViewController("/index").setViewName("index");
 		registry.addViewController("/userAgreement").setViewName("userAgreement");
 		registry.addViewController("/console").setViewName("console");
-		registry.addViewController("/fileUpload").setViewName("fileUpload");
 		registry.addViewController("/login/proxy").setViewName("proxyLogin");
 		registry.addViewController("/logout/proxy").setViewName("proxyLogout");
 		registry.addViewController("/permissionsSettings").setViewName("permissionsSettings");

+ 11 - 0
donate-console/src/main/java/com/uas/console/donate/controller/ActivityController.java

@@ -1,6 +1,7 @@
 package com.uas.console.donate.controller;
 
 
+import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.uas.console.donate.model.*;
 import com.uas.console.donate.service.ActivityRecodeService;
@@ -320,4 +321,14 @@ public class ActivityController {
     public void deletePrizeImg(@RequestParam String path) {
         activityService.deletePrizeImg(path);
     }
+
+    /**
+     * 删除奖品时删除图片
+     */
+    @RequestMapping(value = "/delete/prizeImg/ByBatch", method = RequestMethod.DELETE)
+    @ResponseBody
+    public void deletePrizeImgByBatch(@RequestParam String path) {
+        List<String> paths = JSON.parseArray(path, String.class);
+        activityService.deletePrizeImgByBatch(paths);
+    }
 }

+ 1 - 0
donate-console/src/main/java/com/uas/console/donate/controller/SmsController.java

@@ -7,6 +7,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.ResponseBody;
 
 @Controller
+@RequestMapping("/message")
 public class SmsController {
 
 

+ 2 - 1
donate-console/src/main/java/com/uas/console/donate/dao/ActivityDao.java

@@ -10,6 +10,7 @@ import org.springframework.data.repository.query.Param;
 import org.springframework.stereotype.Repository;
 
 import java.util.Date;
+import java.util.List;
 
 @Repository
 public interface ActivityDao extends JpaRepository<Activity,Long>,JpaSpecificationExecutor<Activity> {
@@ -22,7 +23,7 @@ public interface ActivityDao extends JpaRepository<Activity,Long>,JpaSpecificati
 
     //取出个人还未发布的活动
     @Query("from Activity a where a.publish=1 and a.userUU = :userUU")
-    Activity findDraft(@Param("userUU") Long userUU);
+    List<Activity> findDraft(@Param("userUU") Long userUU);
 
     //搜索出所有还未开始的活动,活动开始时间小于当前时间
     @Query("from Activity a where NOW()<a.startTime and a.publish=2")

+ 2 - 1
donate-console/src/main/java/com/uas/console/donate/dao/ProjectDao.java

@@ -12,6 +12,7 @@ import org.springframework.data.repository.PagingAndSortingRepository;
 import org.springframework.data.repository.query.Param;
 import org.springframework.stereotype.Repository;
 
+import java.math.BigInteger;
 import java.util.List;
 
 @Repository
@@ -73,5 +74,5 @@ public interface ProjectDao extends JpaRepository<Project,Long>,JpaSpecification
      * @return
      */
     @Query(value = "select p.pro_id from donate$project p where p.pro_id in (select distinct(pa.pro_id) from donate$activityproject pa)", nativeQuery = true)
-    List<Long> getProjectIdsRelated();
+    List<BigInteger> getProjectIdsRelated();
 }

+ 4 - 2
donate-console/src/main/java/com/uas/console/donate/model/Activity.java

@@ -171,7 +171,7 @@ public class Activity implements Serializable{
      * 奖品
      * @return
      */
-    @OneToMany(mappedBy = "activity", cascade =  {CascadeType.REFRESH, CascadeType.PERSIST}, fetch = FetchType.EAGER)
+    @OneToMany(mappedBy = "activity", cascade =  {CascadeType.REFRESH}, fetch = FetchType.EAGER)
     @OrderBy("awardLevel")
     private Set<Award> awards;
 
@@ -367,7 +367,9 @@ public class Activity implements Serializable{
         Integer amount = 0;
         if (!CollectionUtils.isEmpty(this.getAwards())) {
             for (Award award : this.getAwards()) {
-                amount += award.getAmount();
+                if (null != award.getAmount()) {
+                    amount += award.getAmount();
+                }
             }
         }
         return amount;

+ 2 - 0
donate-console/src/main/java/com/uas/console/donate/service/ActivityService.java

@@ -59,4 +59,6 @@ public interface ActivityService {
     Attach uploadPrizeImg(MultipartFile file) throws Exception;
 
     void deletePrizeImg(String path);
+
+    void deletePrizeImgByBatch(List<String> paths);
 }

+ 54 - 16
donate-console/src/main/java/com/uas/console/donate/service/impl/ActivityServiceImpl.java

@@ -22,8 +22,10 @@ import javax.persistence.criteria.CriteriaBuilder;
 import javax.persistence.criteria.CriteriaQuery;
 import javax.persistence.criteria.Predicate;
 import javax.persistence.criteria.Root;
+import java.math.BigInteger;
 import java.text.SimpleDateFormat;
 import java.util.Date;
+import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
 
@@ -58,7 +60,7 @@ public class ActivityServiceImpl implements ActivityService{
     @Override
     public Activity show(){
         Long userUU = SystemSession.getUser().getUserUU();
-        return activityDao.findDraft(userUU);
+        return !CollectionUtils.isEmpty(activityDao.findDraft(userUU)) ? activityDao.findDraft(userUU).get(0) : null;
     }
     /**
      * 保存活动
@@ -79,19 +81,46 @@ public class ActivityServiceImpl implements ActivityService{
     }
 
     private Activity submitOrSave(Activity activity) {
-        activity.setUserUU(SystemSession.getUser().getUserUU());
-        activity.setPerson(SystemSession.getUser().getName());
-        activity.setSumconnect(activity.getProjects().size());
-        Date date=new Date();
-        //设置活动发布时间
-        activity.setSubmitTime(date);
-        //设置活动编号
-        activity.setCode(codesdf.format(date));
-//        Set<Award> awards = activity.getAwards();
-//        for (Award award : awards) {
-//            award.setActivity(activity);
-//        }
-        return activityDao.save(activity);
+        // 如果是已保存的
+        if (null != activity.getId()) {
+            Activity oldActivity = activityDao.findOne(activity.getId());
+            oldActivity.setSumconnect(activity.getProjects().size());
+            Date date=new Date();
+            //设置活动发布时间
+            activity.setSubmitTime(date);
+            //设置活动编号
+            activity.setCode(codesdf.format(date));
+            Set<Award> awards = new HashSet<>();
+            awardDao.delete(oldActivity.getAwards());
+            for (Award award : activity.getAwards()) {
+                award.setId(null);
+                award.setActivity(activity);
+                awards.add(award);
+            }
+            if (!CollectionUtils.isEmpty(awards)) {
+                awardDao.save(awards);
+            }
+            activity.setAwards(awards);
+            return activityDao.save(activity);
+        } else { // 未保存过得
+            activity.setUserUU(SystemSession.getUser().getUserUU());
+            activity.setPerson(SystemSession.getUser().getName());
+            activity.setSumconnect(activity.getProjects().size());
+            Date date=new Date();
+            //设置活动发布时间
+            activity.setSubmitTime(date);
+            //设置活动编号
+            activity.setCode(codesdf.format(date));
+            Activity act = activityDao.save(activity);
+            if (!CollectionUtils.isEmpty(activity.getAwards())) {
+                Set<Award> awards = new HashSet<>();
+                for (Award award : awards) {
+                    award.setActivity(act);
+                }
+                awardDao.save(awards);
+            }
+            return act;
+        }
     }
 
     public Activity up(Long id){
@@ -198,9 +227,11 @@ public class ActivityServiceImpl implements ActivityService{
     @Override
     public List<Project> getActivityRelatedProjects(final String keyword, final List<Long> proIds) {
         // 获取所有已被关联的项目id
-        List<Long> relatedIds = projectDao.getProjectIdsRelated();
+        List<BigInteger> relatedIds = projectDao.getProjectIdsRelated();
         if (!CollectionUtils.isEmpty(relatedIds)) {
-            proIds.addAll(relatedIds);
+            for (BigInteger id : relatedIds) {
+                proIds.add(id.longValue());
+            }
         }
         // 默认返回100条
         final PageInfo pageInfo = new PageInfo(1, 100);
@@ -248,4 +279,11 @@ public class ActivityServiceImpl implements ActivityService{
         }
     }
 
+    @Override
+    public void deletePrizeImgByBatch(List<String> paths) {
+        for (String path : paths) {
+            deletePrizeImg(path);
+        }
+    }
+
 }

+ 2 - 2
donate-console/src/main/webapp/WEB-INF/views/index.html

@@ -20,7 +20,7 @@
     <link rel="stylesheet" href="static/lib/angular/toaster.css" />
     <link rel="stylesheet" href="static/css/base.css">
 </head>
-<body class="skin-blue sidebar-mini  pace-done">
+<body class="skin-blue sidebar-mini pace-done">
 <!--<div class="pace  pace-inactive">-->
     <!--<div class="pace-progress" data-progress-text="100%" data-progress="99" style="transform: translate3d(100%, 0px, 0px);">-->
         <!--<div class="pace-progress-inner"></div>-->
@@ -42,7 +42,7 @@
             <div class="navbar-custom-menu" style="padding-right: 2rem">
                 <ul class="nav navbar-nav">
                     <li class="dropdown user user-menu">
-                        <a href="#" class="dropdown-toggle">
+                        <a class="dropdown-toggle">
                             <span class="hidden-xs" ng-bind="userInfo.name"></span>
                             <i class="fa fa-user fa-lg"></i>
                             <!--<img src="static/images/avatar.jpg" class="user-image">-->

+ 25 - 3
donate-console/src/main/webapp/resources/js/index/app.js

@@ -1958,6 +1958,7 @@ define([ 'angularAMD', 'ui.router', 'ui-bootstrap', 'ngLocal', 'ngTable', 'file-
      */
     app.controller('ActivityListCtrl', ['$scope', '$rootScope', 'toaster', 'ngTableParams', 'BaseService', 'Activity', '$modal',
         function ($scope, $rootScope, toaster, ngTableParams, BaseService, Activity, $modal) {
+            BaseService.scrollBackToTop();
 
             var getActivityState = function (active) {
                 // 正在进行
@@ -2121,6 +2122,7 @@ define([ 'angularAMD', 'ui.router', 'ui-bootstrap', 'ngLocal', 'ngTable', 'file-
     app.controller('ActivityNewCtrl', ['$scope', 'BaseService', 'toaster', 'Activity', '$http', '$upload',
         function($scope, BaseService, toaster, Activity, $http, $upload) {
 
+        $scope.loading = true;
         $scope.activity = {
             awards:[],
             projects: []
@@ -2137,7 +2139,10 @@ define([ 'angularAMD', 'ui.router', 'ui-bootstrap', 'ngLocal', 'ngTable', 'file-
                     $scope.activity = data;
                     $scope.awards = data.awards;
                     $scope.selectedProjects = data.projects;
+                    $scope.actImgUrl = data.actImg;
+                    $scope.bannerUrl = data.banner;
                 }
+                $scope.loading = false;
             });
         };
         loadSavedActivity();
@@ -2183,12 +2188,11 @@ define([ 'angularAMD', 'ui.router', 'ui-bootstrap', 'ngLocal', 'ngTable', 'file-
         };
 
         // 删除某一奖品
+        $scope.deletePath = [];
         $scope.deleteAward = function($index) {
             var path = $scope.awards[$index].img;
             if (!angular.isUndefined(path)) {
-                Activity.deletePrizeImg({path: path}, {}, function(data) {
-
-                });
+                $scope.deletePath.push(path);
             }
             $scope.awards.splice($index, 1);
         };
@@ -2228,6 +2232,9 @@ define([ 'angularAMD', 'ui.router', 'ui-bootstrap', 'ngLocal', 'ngTable', 'file-
             angular.forEach($scope.projects, function(project, index) {
                 if (project.checked) {
                     project.checked = false;
+                    if (angular.isUndefined($scope.selectedProjects)) {
+                        $scope.selectedProjects = [];
+                    }
                     $scope.selectedProjects.push(project);
                     $scope.projects.splice(index, 1);
                 }
@@ -2269,12 +2276,24 @@ define([ 'angularAMD', 'ui.router', 'ui-bootstrap', 'ngLocal', 'ngTable', 'file-
             $scope.selectedProjects = angular.copy($scope.tempSelectedProjects);
         };
 
+        // 保存
+        $scope.saveSelected = function() {
+            $scope.tempProjects = angular.copy($scope.projects);
+            $scope.tempSelectedProjects = angular.copy($scope.selectedProjects);
+        };
+
         // 清空内容
         $scope.clearActivity = function() {
             $scope.activity = {
                 awards:[],
                 projects: []
             };
+            $scope.actImgUrl = null;
+            $scope.bannerUrl = null;
+            $scope.awards = [];
+            $scope.selectedProjects = [];
+            getProject();
+            BaseService.scrollBackToTop();
         };
 
         // 图片上传
@@ -2449,6 +2468,9 @@ define([ 'angularAMD', 'ui.router', 'ui-bootstrap', 'ngLocal', 'ngTable', 'file-
                 } else {
                     toaster.pop('success', '保存成功');
                 }
+                Activity.deletePrizeImgByBatch({path: $scope.deletePath}, {}, function(data) {
+
+                });
                 window.location.href='#/activity';
             }).error(function (data) {
                 $scope.loadingShow = false;

+ 5 - 0
donate-console/src/main/webapp/resources/js/index/services/Activity.js

@@ -69,6 +69,11 @@ define ([ 'ngResource' ], function() {
             deletePrizeImg: {
                 url: 'activity/delete/prizeImg',
                 method: 'DELETE'
+            },
+            // 删除奖品时,删除上传的图片 批量
+            deletePrizeImgByBatch: {
+                url: 'activity/delete/prizeImg/ByBatch',
+                method: 'DELETE'
             }
         });
     }]);

+ 2 - 3
donate-console/src/main/webapp/resources/view/activity/activity_detail.html

@@ -3,7 +3,7 @@
     <div class="right-header clearfix">
         <div class="fl"><span ng-bind="activity.name"></span>
             <!--<a href="" class="edit">编辑</a>-->
-            <a href="donate.ubtob.com/activity/{{activity.id}}">查看网页</a></div>
+            <a href="http://lj.ubtob.com/activity#/detail/{{activity.id}}" target="_blank">查看网页</a></div>
         <div class="fr close" ng-click="cancel()">&times;</div>
     </div>
     <div class="right-nav">
@@ -44,8 +44,7 @@
             <div class="list-header">
                 <span>活动介绍</span>
             </div>
-            <div class="list-body">
-                <p>{{activity.summary}}</p>
+            <div class="list-body" ng-bind-html="activity.summary">
                 <!--<p>1、活动介绍:基层团组织通过学校在校园内公布申请条件,学生及其监护人提出求助申请学校对申请学生进行家访,核实家庭经济状况后-->
                     <!--报县级团委审核,县级团委上报市级团委汇总;</p>-->
                 <!--<p>2、参加条件:确认市级团委汇总地区申请资料后报市青基会;</p>-->

+ 7 - 25
donate-console/src/main/webapp/resources/view/activity/activity_launch.html

@@ -611,6 +611,9 @@
     }
 
 </style>
+<!-- loading start -->
+<div class="loading in" ng-class="{'in': loading}"><i></i></div>
+<!-- loading end -->
 <div class="content-wrapper" style="min-height: 924px;; z-index: 50;">
     <section class="content-header clearfix">
         <h1>活动发起</h1>
@@ -737,14 +740,14 @@
                                 <div class="award-detail clearfix">
                                     <span class="fl">赠送方式</span>
                                     <select name="" ng-model="award.way" class="form-control fl" ng-init="award.way = 1">
-                                        <option ng-value="'1'">短信通知</option>
-                                        <option ng-value="'2'">快递配送</option>
+                                        <option value="1">短信通知</option>
+                                        <option value="2">快递配送</option>
                                     </select>
                                     <!--<a class="edit-template fl" data-target="#redact" data-toggle="modal">编辑模板</a>-->
                                 </div>
                                 <div class="uploadImg">
                                     上传图片
-                                    <input type="file" ng-multiple="false" accept="image/*" id="award{{$index}}" ng-model="award.prizeImgs" ng-file-select ng-change="uploadPrizeImg(award, $index)" required>
+                                    <input type="file" ng-multiple="false" accept="image/*" id="award{{$index}}" ng-model="award.prizeImgs" ng-file-select ng-change="uploadPrizeImg(award, $index)">
                                 </div>
                                 <div ng-if="null != award.img" class="showImage">
                                     <img  src="{{award.img}}">
@@ -828,7 +831,7 @@
                 </div>
             </div>
             <div class="modal-footer footer text-right">
-                <a data-dismiss="modal">保存</a>
+                <a ng-click="saveSelected()" data-dismiss="modal">保存</a>
                 <a ng-click="cancelSelected()" data-dismiss="modal">取消</a>
             </div>
         </div>
@@ -844,24 +847,3 @@
         <img/>
     </div>
 </div>
-<script type="text/javascript">
-    $(document).ready(function() {
-        var btn = document.getElementsByClassName('dropdown-toggle');
-        console.log(btn.length);
-        for (var i = 0; i < btn.length; i++) {
-            console.log(btn);
-            var sib = btn[i].nextElementSibling;
-            var flag = true;
-            console.log(btn[i].nextElementSibling);
-            btn[i].onclick = function () {
-                if (flag) {
-                    sib.style.display = 'none';
-                    flag = false
-                } else {
-                    sib.style.display = 'block';
-                    flag = true
-                }
-            }
-        }
-    });
-</script>

+ 2 - 2
donate-service/src/main/java/com/uas/service/donate/dao/ActivityDao.java

@@ -41,10 +41,10 @@ public interface ActivityDao extends JpaRepository<Activity,Long>,JpaSpecificati
     Page<Activity> findEndActivities(Pageable pageable);
 
     //根据活动名关键字,奖品名关键字查询活动
-    @Query("from Activity a where a.name like %:search% or a.id in (select aw.activityId from Award aw where aw.awardName like %:search%) order by a.startTime desc")
+    @Query("from Activity a where  a.publish=2 and NOW()>a.startTime and (a.name like %:search% or a.id in (select aw.activityId from Award aw where aw.awardName like %:search%)) order by a.startTime desc")
     List<Activity> search(@Param("search")String search);
 
-    @Query("from Activity a where a.name like %:search% or a.id in (select aw.activityId from Award aw where aw.awardName like %:search%) order by a.startTime desc")
+    @Query("from Activity a where  a.publish=2 and NOW()>a.startTime and (a.name like %:search% or a.id in (select aw.activityId from Award aw where aw.awardName like %:search%)) order by a.startTime desc")
     Page<Activity> search(@Param("search")String search,Pageable pageable);
 
     /**

+ 2 - 1
donate-service/src/main/resources/templates/activeCenter.ftl

@@ -321,6 +321,7 @@
             width: 160px;
             height: 160px;
             border: 1px solid #e1e1e1;
+            background: url("static/images/loading2.png") no-repeat;
         }
         .section2 .list-item .project-detail{
             margin: 10px 30px 0 0;
@@ -419,7 +420,7 @@
 <div ng-include src="'static/view/common/nav.html'"></div>
 <div id="nav">
     <div class="container clearfix">
-        <div class="fl"><a href=""><img src="static/images/uas.png" alt=""/></a><span style="font-size: 18px;font-weight: bold;">一元捐</span></div>
+        <div class="fl"><a href=""><img src="static/images/uas.png" href="http://www.ubtob.com/index"/></a><span style="font-size: 18px;font-weight: bold;">一元捐</span></div>
         <div class="fr">
             <a href="https://account.ubtob.com/sso/login">登录</a>
             <a href="javascript:void(0)">注册</a>

+ 109 - 15
donate-service/src/main/resources/templates/index.ftl

@@ -14,7 +14,7 @@
     <link rel="stylesheet" href="static/css/bootstrap.min.css">
     <link rel="stylesheet" href="static/css/base.css">
     <link rel="stylesheet" type="text/css" href="static/css/kkpager_orange.css" />
-
+    <link rel="stylesheet" type="text/css" href="static/lib/font-awesome/css/font-awesome.min.css"/>
     <link href="https://cdn.bootcss.com/toastr.js/latest/css/toastr.min.css" rel="stylesheet">
     <link href="static/css/swiper-3.4.2.min.css" rel="stylesheet">
 
@@ -82,6 +82,15 @@
         #nav .fr a:last-child {
             margin-right: 0;
         }
+        #logout{
+             display: none;
+         }
+        #uuName{
+            display: none;
+        }
+        #icon{
+            margin-left: 10px;
+        }
         .main{
             width: 100%;
             margin: 24px 0 150px 0;
@@ -307,6 +316,9 @@
             right: 10px;
             cursor: pointer;
         }
+        #projectList{
+            border:none
+        }
         .section2 .list-item {
             margin-top: 25px;
             padding-bottom: 25px;
@@ -323,7 +335,7 @@
             width: 360px;
             height: 200px;
             border: 1px solid #e1e1e1;
-            background: url("static/images/link.png") no-repeat;
+            background: url("static/images/loading1.png") no-repeat;
         }
         .section2 .list-item .project-detail{
             margin: 10px 30px 0 0;
@@ -695,10 +707,12 @@
 <body ng-app="index">
 <div id="nav">
     <div class="container clearfix">
-        <div class="fl"><a href=""><img src="static/images/uas.png" alt=""/></a><span style="font-size: 18px;font-weight: bold;">一元捐</span></div>
+        <div class="fl"><a href=""><img src="static/images/uas.png" href="http://www.ubtob.com/index"/></a><span style="font-size: 18px;font-weight: bold;">一元捐</span></div>
         <div class="fr">
-            <a href="https://account.ubtob.com/sso/login">登录</a>
-            <a href="javascript:void(0)">注册</a>
+            <a href="javascript:void(0);" id="login">登录</a>
+            <a href="javascript:void(0);" id="uuName"><i class="fa fa-user fa-lg" id="icon"></i></a>
+            <a href="javascript:void(0)" id="register">注册</a>
+            <a href="javascript:void(0)" id="logout">退出</a>
             <a href="http://www.ubtob.com/" target="_blank">进入优软云</a>
         </div>
     </div>
@@ -787,7 +801,7 @@
                     <img src="static/images/index/search.png" alt="" id="searchButton"/>
                 </div>
             </div>
-            <div>
+            <div id="projectList">
                 <#if page?exists>
                     <#list page.content as project>
                     <div class="list-item clearfix">
@@ -854,6 +868,7 @@
                     </#list>
                 </#if>
                 <#--搜索无结果页面-->
+                <#if page?exists>
                     <#if page.totalElements==0>
                         <div class="section noSearch">
                             <div class="img">
@@ -865,6 +880,7 @@
                             </div>
                         </div>
                     </#if>
+                </#if>
                 <#-- 分页按钮-->
                 <#if (page.totalElements>0)>
                     <div id="kkpager"></div>
@@ -885,6 +901,77 @@
 </div>
 </body>
 <script>
+    var returnUrl=window.location.href;
+    $.ajax({
+        url:"http://shicr.ubtob.com:8084/sso/account",
+        type:"GET",
+        success:function(data){
+            console.log(data);
+            if(data.content!=null){
+                $("#uuName").css("display","inline-block");
+                $("#icon").before(data.content.name);
+                $("#logout").css("display","inline-block");
+                $("#login").css("display","none");
+                $("#register").css("display","none");
+            }
+        },
+        error:function(){
+            alert('error');
+        }
+    })
+    //登录
+    $("#login").click(function(){
+        $.ajax({
+            url:"http://shicr.ubtob.com:8084/sso/login",
+            data:{returnUrl:returnUrl},
+            type:"GET",
+            success:function(data){
+                window.location.href=data.content;
+                $("#uuName").css("display","inline-block");
+                $("#icon").before(data.content.name);
+                $("#login").css("display","none");
+                $("#register").css("display","none");
+                $("#logout").css("display","inline-block");
+                $("#uuName").css("display","inline-block");
+            },
+            error:function(data){
+                alert('登录失败');
+            }
+        })
+    })
+    //注册按钮点击
+    $("#register").click(function(){
+        $.ajax({
+            url:"http://shicr.ubtob.com:8084/sso/register",
+            type:"GET",
+            data:{returnUrl:returnUrl},
+            success:function(data){
+                window.location.href=data.content;
+            },
+            error:function(data){
+                alert('登录失败');
+            }
+        })
+    })
+    //退出
+    $("#logout").click(function(){
+       $.ajax({
+           url:"http://shicr.ubtob.com:8084/sso/logout",
+           type:"GET",
+           data:{returnUrl:returnUrl},
+           success:function(data){
+               window.location.href=data.content;
+               $("#login").css("display","inline-block");
+               $("#register").css("display","inline-block");
+               $("#logout").css("display","none");
+               $("#uuName").css("display","none");
+           },
+           error:function(){
+               alert('退出失败');
+           }
+       })
+    })
+
     /*设置只能输入数字和一位小数点和一位小数点后面的两位数字*/
     function clearNoNum(obj){
         obj.value = obj.value.replace(/[^\d.]/g,"");  //清除“数字”和“.”以外的字符
@@ -1011,9 +1098,13 @@
         //返回参数值
         return result ? decodeURIComponent(result[2]) : null;
     }
+    //获取地址栏领域值
     var area=getUrlParam('area');
+    //获取地址栏状态值
     var status=getUrlParam('status');
+    //获取地址栏页码值
     var pno=getUrlParam('page');
+    //获取地址栏搜索框值
     var search=getUrlParam('search');
 
 
@@ -1059,23 +1150,26 @@
         }
 
     });
+    var address='http://lj.ubtob.com/index';
     /*页面跳转*/
     function searchpage(pno) {
         if(search!=null){
-            window.location.href="http://lj.ubtob.com/index?search="+search+"&&page="+(pno-1);
+            window.location.href=address+"?search="+search+"&&page="+(pno-1);
         }else{
             //得到被选中的领域下拉框的文本值
             var area=$("#chooseArea").find("option:selected").text();
             //得到被选中的状态下拉框文本值
             var status=$("#chooseStatus").find("option:selected").text();
-            window.location.href="http://lj.ubtob.com/index?area="+area+"&&status="+status+"&&page="+(pno-1);
+            window.location.href=address+"?area="+area+"&&status="+status+"&&page="+(pno-1);
         }
     }
-
+    //给领域下拉框赋值
     $('#chooseArea').val(area);
 
+    //给状态下拉框
     $('#chooseStatus').val(status);
 
+    //给搜索框赋值
     $('#search').val(search);
 
     //项目领域下拉框查询项目
@@ -1084,7 +1178,7 @@
         var area=$("#chooseArea").find("option:selected").text();
         //得到被选中的状态下拉框文本值
         var status=$("#chooseStatus").find("option:selected").text();
-        window.location.href="http://lj.ubtob.com/index?area="+area+"&&status="+status;
+        window.location.href=address+"?area="+area+"&&status="+status;
     })
 
     //项目状态下拉框查询项目
@@ -1093,7 +1187,7 @@
         var area=$("#chooseArea").find("option:selected").text();
         //得到被选中的状态下拉框文本值
         var status=$("#chooseStatus").find("option:selected").text();
-        window.location.href="http://lj.ubtob.com/index?area="+area+"&&status="+status;
+        window.location.href=address+"?area="+area+"&&status="+status;
     })
 
     //搜索框enter键搜索框查询项目
@@ -1101,9 +1195,9 @@
         if(event.keyCode==13){
             var search=$("#search").val();
             if(search!=""){
-                window.location.href="http://lj.ubtob.com/index?search="+search;
+                window.location.href=address+"?search="+search;
             }else{
-                window.location.href="http://lj.ubtob.com/index";
+                window.location.href=address;
             }
         }
     })
@@ -1112,9 +1206,9 @@
     $("#searchButton").click(function(){
         var search=$("#search").val();
         if(search!=""){
-            window.location.href="http://lj.ubtob.com/index?search="+search;
+            window.location.href=address+"?search="+search;
         }else{
-            window.location.href="http://lj.ubtob.com/index";
+            window.location.href=uaddressrl;
         }
 
     })

binární
donate-service/src/main/webapp/resources/images/loading1.png


binární
donate-service/src/main/webapp/resources/images/loading2.png