Browse Source

【service】捐款修改;部分页面bug修改

dongbw 8 years ago
parent
commit
a58171b76c
25 changed files with 1181 additions and 55 deletions
  1. 11 8
      donate-service/src/main/java/com/uas/service/donate/controller/OrgController.java
  2. 12 0
      donate-service/src/main/java/com/uas/service/donate/controller/ProjectController.java
  3. 13 0
      donate-service/src/main/java/com/uas/service/donate/model/SearchFilter.java
  4. 7 0
      donate-service/src/main/java/com/uas/service/donate/service/ProjectService.java
  5. 18 0
      donate-service/src/main/java/com/uas/service/donate/service/impl/ProjectServiceImpl.java
  6. 8 0
      donate-service/src/main/webapp/WEB-INF/views/project.html
  7. 5 1
      donate-service/src/main/webapp/resources/css/base.css
  8. 3 3
      donate-service/src/main/webapp/resources/js/activity/controllers/ActivityDetailCtrl.js
  9. 1 1
      donate-service/src/main/webapp/resources/js/activity/controllers/ActivityListCtrl.js
  10. 1 1
      donate-service/src/main/webapp/resources/js/approval/controllers/ApprovalCtrl.js
  11. 19 2
      donate-service/src/main/webapp/resources/js/common/query/Project.js
  12. 1 1
      donate-service/src/main/webapp/resources/js/pay.js
  13. 6 0
      donate-service/src/main/webapp/resources/js/project/app.js
  14. 121 0
      donate-service/src/main/webapp/resources/js/project/controllers/OrganizationDetailCtrl.js
  15. 43 2
      donate-service/src/main/webapp/resources/js/project/controllers/ProjectDetailCtrl.js
  16. 1 0
      donate-service/src/main/webapp/resources/js/project/controllers/ProjectListCtrl.js
  17. 0 3
      donate-service/src/main/webapp/resources/js/project/main.js
  18. 1 1
      donate-service/src/main/webapp/resources/js/user/controllers/UserCtrl.js
  19. 1 1
      donate-service/src/main/webapp/resources/view/activity/activity_detail.html
  20. 9 2
      donate-service/src/main/webapp/resources/view/common/nav.html
  21. 808 0
      donate-service/src/main/webapp/resources/view/project/organization_detail.html
  22. 40 27
      donate-service/src/main/webapp/resources/view/project/project_detail.html
  23. 50 0
      donate-service/src/main/webapp/resources/view/project/project_detail_side.html
  24. 1 1
      donate-service/src/main/webapp/resources/view/project/project_list.html
  25. 1 1
      donate-service/src/main/webapp/resources/view/user/user_center.html

+ 11 - 8
donate-service/src/main/java/com/uas/service/donate/controller/OrgController.java

@@ -1,23 +1,17 @@
 package com.uas.service.donate.controller;
 
 import com.alibaba.fastjson.JSONObject;
-
 import com.uas.service.donate.model.Org;
-import com.uas.service.donate.model.Project;
 import com.uas.service.donate.service.OrgService;
 import com.uas.service.donate.util.FileUrl;
 import com.uas.service.donate.util.HttpUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.ResponseBody;
-
+import org.springframework.ui.ModelMap;
+import org.springframework.web.bind.annotation.*;
 
 import java.text.SimpleDateFormat;
 import java.util.Date;
-import java.util.List;
 import java.util.Map;
 
 @Controller
@@ -107,4 +101,13 @@ public class OrgController {
     public Double sumTotalMoney(@RequestParam("orgId") Long orgId){
         return orgService.sumTotalMoney(orgId);
     }
+
+    @ResponseBody
+    @RequestMapping(value = "/donation/{id}", method = RequestMethod.GET)
+    public ModelMap getOrgJoinedHistory(@PathVariable("id") Long id){
+        ModelMap map = new ModelMap();
+        map.put("joinedPersonHistory", orgService.sumJoinPerson(id));
+        map.put("totalDonationsHistory", orgService.sumTotalMoney(id));
+        return map;
+    }
 }

+ 12 - 0
donate-service/src/main/java/com/uas/service/donate/controller/ProjectController.java

@@ -78,6 +78,18 @@ public class ProjectController {
         return projectService.getEndProjects(pageInfo, filter);
     }
 
+    /**
+     * 获取项目列表 (机构相关)
+     * @return
+     */
+    @RequestMapping(value = "/getOrgProjects", method = RequestMethod.GET)
+    @ResponseBody
+    public Page<Project> getOrgProjects(PageParams params, String searchFilter){
+        PageInfo pageInfo = new PageInfo(params);
+        SearchFilter filter = JSONObject.parseObject(searchFilter, SearchFilter.class);
+        return projectService.getOrgProjects(pageInfo, filter);
+    }
+
     /**
      * 返回所有进行中和已结束的捐款项目,移动端不分页专用
      * @return

+ 13 - 0
donate-service/src/main/java/com/uas/service/donate/model/SearchFilter.java

@@ -15,6 +15,11 @@ public class SearchFilter {
 	 * 捐赠领域
 	 */
 	private String area;
+
+	/**
+	 * id参数
+	 */
+	private Long id;
 	/**
 	 * 开始日期
 	 */
@@ -91,4 +96,12 @@ public class SearchFilter {
 	public void setArea(String area) {
 		this.area = area;
 	}
+
+	public Long getId() {
+		return id;
+	}
+
+	public void setId(Long id) {
+		this.id = id;
+	}
 }

+ 7 - 0
donate-service/src/main/java/com/uas/service/donate/service/ProjectService.java

@@ -64,4 +64,11 @@ public interface ProjectService {
     //找出某机构下面的所有项目
     List<Project> findProjectsByOrg(Long orgId);
 
+    /**
+     * 机构项目分页
+     * @param pageInfo
+     * @param filter
+     * @return
+     */
+    Page<Project> getOrgProjects(PageInfo pageInfo, SearchFilter filter);
 }

+ 18 - 0
donate-service/src/main/java/com/uas/service/donate/service/impl/ProjectServiceImpl.java

@@ -176,5 +176,23 @@ public class ProjectServiceImpl implements ProjectService {
         return projectDao.findProjectsByOrg(orgId);
     }
 
+    /**
+     * 机构项目分页
+     *
+     * @param pageInfo
+     * @param filter
+     * @return
+     */
+    @Override
+    public Page<Project> getOrgProjects(PageInfo pageInfo, SearchFilter filter) {
+        if (null != filter.getId()) {
+            Project project = projectDao.findOne(filter.getId());
+            pageInfo.expression(PredicateUtils.eq("orgId", project.getOrgId(), false));
+            pageInfo.expression(PredicateUtils.lte("startTime", new Date(), false));
+            return getAllProjects(pageInfo, filter);
+        }
+        return null;
+    }
+
 
 }

+ 8 - 0
donate-service/src/main/webapp/WEB-INF/views/project.html

@@ -12,7 +12,15 @@
     <link href="static/images/icon/u.png" rel="icon" type="image/x-icon" />
     <link rel="stylesheet" href="static/lib/bootstrap/css/bootstrap.min.css">
     <link rel="stylesheet" href="static/css/base.css">
+    <style>
+        a {
+            cursor: pointer;
+        }
 
+        button {
+            cursor: pointer;
+        }
+    </style>
 </head>
 <body>
 <div ng-include src="'static/view/common/nav.html'"></div>

+ 5 - 1
donate-service/src/main/webapp/resources/css/base.css

@@ -70,4 +70,8 @@ input,button,select,textarea{outline:none}
 .text-center{
 	text-align: center !important;
 }
-/*通用颜色*/
+/*通用颜色*/
+button[disabled] {
+	cursor: not-allowed;
+	background-color: #acabab;;
+}

+ 3 - 3
donate-service/src/main/webapp/resources/js/activity/controllers/ActivityDetailCtrl.js

@@ -1,9 +1,9 @@
 define([ 'app/app' ], function(app) {
     'use strict';
-    app.register.controller('ActivityDetailCtrl', ['$scope', '$rootScope', 'Activity', '$stateParams', '$http', 'toaster',
-        function ($scope, $rootScope, Activity, $stateParams, $http, toaster) {
+    app.register.controller('ActivityDetailCtrl', ['$scope', '$rootScope', 'Activity', '$stateParams', '$http', 'toaster', 'BaseService',
+        function ($scope, $rootScope, Activity, $stateParams, $http, toaster, BaseService) {
         $rootScope.page = 'activity';
-
+        BaseService.scrollBackToTop();
         var init = function () {
             var id = $stateParams.id;
 

+ 1 - 1
donate-service/src/main/webapp/resources/js/activity/controllers/ActivityListCtrl.js

@@ -25,7 +25,7 @@ define([ 'app/app' ], function(app) {
     };
 
     app.register.controller('ActivityListCtrl', ['$scope', '$rootScope', 'toaster', 'Activity', 'ngTableParams', 'BaseService', function ($scope, $rootScope, toaster, Activity, ngTableParams, BaseService) {
-
+        BaseService.scrollBackToTop();
         $scope.tableParams = new ngTableParams({
             page: 1,
             count: 20,

+ 1 - 1
donate-service/src/main/webapp/resources/js/approval/controllers/ApprovalCtrl.js

@@ -25,7 +25,7 @@ define([ 'app/app' ], function(app) {
     };
 
     app.register.controller('ApprovalCtrl', ['$scope', '$rootScope', 'toaster', 'Approval', 'ngTableParams', 'BaseService', function ($scope, $rootScope, toaster, Approval, ngTableParams, BaseService) {
-
+        BaseService.scrollBackToTop();
         $scope.tableParams = new ngTableParams({
             page: 1,
             count: 20,

+ 19 - 2
donate-service/src/main/webapp/resources/js/common/query/Project.js

@@ -26,6 +26,10 @@ define ([ 'ngResource' ], function() {
                     _state: 'waiting'
                 }
             },
+            getOrgProjects : {
+                url:'project/getOrgProjects',
+                method: 'GET'
+            },
             getDetailById: {
                 url: 'project/detail/:id',
                 method: 'GET',
@@ -47,6 +51,11 @@ define ([ 'ngResource' ], function() {
                 url: 'project/donation/:id',
                 method: 'GET'
             },
+            // 获取当前机构项目历史
+            getOrgJoinedHistory: {
+                url: 'org/donation/:id',
+                method: 'GET'
+            },
             // 获取当前项目参与的活动
             getJoinedActivity: {
                 url:'',
@@ -54,8 +63,11 @@ define ([ 'ngResource' ], function() {
             },
             // 获取当前项目的同类项目
             getSameKinds: {
-                url:'',
-                method: 'GET'
+                url:'project/findSimilar/:id',
+                method: 'GET',
+                params: {
+                    id: 'id'
+                }
             },
             // 获取所有项目进度
             getSchedules: {
@@ -82,6 +94,11 @@ define ([ 'ngResource' ], function() {
             donate : {
               url : 'projectrecode/join/mobile',
               method: 'POST'
+            },
+            // PC确认捐款
+            ensureDonate : {
+                url: 'projectrecode/join',
+                method: 'POST'
             }
         });
     }]);

+ 1 - 1
donate-service/src/main/webapp/resources/js/pay.js

@@ -174,7 +174,7 @@ var getJson = function (proId, amount, payWay, uuid) {
         return jsonStr = "{proId:" + proId + "," +
             "amount:" + amount + "," +
             "way:" + "\"" + payWay + "\"" +
-            "uuid:" + uuid +
+            ", uuid:" + uuid +
             "}";
     }
 

+ 6 - 0
donate-service/src/main/webapp/resources/js/project/app.js

@@ -38,6 +38,12 @@ define([ 'angularAMD', 'ui.router', 'ui-bootstrap', 'ngLocal', 'ngTable', 'commo
             templateUrl : 'static/view/project/project_detail.html',
             controller : 'ProjectDetailCtrl',
             controllerUrl : 'app/controllers/ProjectDetailCtrl'
+        })).state("organization", angularAMD.route({
+            url : '/organization/:id',
+            title : '机构介绍',
+            templateUrl : 'static/view/project/organization_detail.html',
+            controller : 'OrganizationDetailCtrl',
+            controllerUrl : 'app/controllers/OrganizationDetailCtrl'
         })).state("paySucccess", {
             url : '/donationsOver/:tradeNo',
             title : '支付完成',

+ 121 - 0
donate-service/src/main/webapp/resources/js/project/controllers/OrganizationDetailCtrl.js

@@ -0,0 +1,121 @@
+define([ 'app/app' ], function(app) {
+	'use strict';
+
+	app.register.controller('OrganizationDetailCtrl', ['$scope', 'toaster', 'ngTableParams', 'BaseService', 'Project', '$stateParams',
+        function ($scope, toaster, ngTableParams, BaseService, Project, $stateParams) {
+	    BaseService.scrollBackToTop();
+        $scope.donation = null;
+        $scope.keyword = '';
+	    // 捐款记录
+	    $scope.projectRecord = {
+	        amount: 1,
+	        bless: null,
+            way: '支付宝'
+        };
+	    $scope.checked = false;
+	    $scope.areas = ['环保/保护动物','疾病救助','扶贫/救灾','教育/助学','全部'];
+
+	    // 获取项目和机构信息
+	    var loadData = function() {
+            Project.getDetailById({ id: $stateParams.id}, {}, function (data) {
+                console.log('detail', data);
+                $scope.proId = $stateParams.id;
+                $scope.project = data;
+                $scope.organization = data.organization;
+                $scope.percentage = data.totalAmount / data.target;
+                // 获取历史人数、获取历史金额
+                Project.getOrgJoinedHistory({id: $scope.organization.id}, {}, function(data) {
+                    $scope.joinedPersonHistory = data.joinedPersonHistory;
+                    $scope.totalDonationsHistory = data.totalDonationsHistory;
+                });
+            }, function (error) {
+                console.log(error);
+            });
+        };
+	    loadData();
+
+        $scope.reload = function() {
+            if ($scope.projectParams.page() == 1)
+                $scope.projectParams.reload();
+            else
+                $scope.projectParams.page(1);
+        };
+
+	    $scope.projectParams = new ngTableParams({
+            page: 1,
+            count: 5,
+            sorting: {
+                'id': 'desc'
+            }
+        }, {
+            total: 0,
+            counts: [],
+            getData: function($defer, params) {
+                $scope.loading = true;
+                var pageParams = params.url();
+                var realActive = {};
+                pageParams.searchFilter = { // 筛选条件
+                    keyword: $scope.keyword,
+                    id : $stateParams.id
+                };
+                Project.getOrgProjects.call(null, BaseService.parseParams(pageParams), function (page) {
+                    $scope.loading = false;
+                    if (page) {
+                        params.total(page.totalElements);
+                        $defer.resolve(page.content);
+                        // $scope.keywordXls = angular.copy($scope.keyword); // 保存当前取值的关键词  做导出时需要的字段
+                    }
+                }, function (response) {
+                    $scope.loading = false;
+                    toaster.pop('error', '数据加载失败', response.data);
+                });
+            }
+        });
+
+	    // 设置捐款金额
+        $scope.setMoney = function(value) {
+            $scope.projectRecord.amount = value;
+            $scope.donation = null;
+        };
+
+        // 输入金额
+        $scope.inputMoney = function() {
+            $scope.projectRecord.amount = $scope.donation;
+        };
+
+        // 设置支付方式
+        $scope.setWay = function(way) {
+            $scope.projectRecord.way = way;
+        };
+
+        $scope.changeChecked = function() {
+            // if ($scope.checked === false) {
+            //     $scope.checked = true;
+            // } else {
+            //     $scope.checked = false;
+            // }
+            $scope.checked = !$scope.checked;
+        };
+
+        // // 确认捐款
+        // $scope.ensureDonate = function(record) {
+        //     console.log($scope.checked);
+        //     if (!$scope.checked) {
+        //         toaster.pop('info','请先阅读并同意用户协议!');
+        //     }  else {
+        //         if (null !== $scope.donation) {
+        //             record.amount = $scope.donation;
+        //         }
+        //
+        //     }
+        // };
+
+        $scope.onSearch = function() {
+            if ($scope.projectParams.page() == 1)
+                $scope.projectParams.reload();
+            else
+                $scope.projectParams.page(1);
+        };
+	}]);
+
+});

+ 43 - 2
donate-service/src/main/webapp/resources/js/project/controllers/ProjectDetailCtrl.js

@@ -1,8 +1,24 @@
 define([ 'app/app' ], function(app) {
     'use strict';
-    app.register.controller('ProjectDetailCtrl', ['$scope', '$rootScope', 'Project', '$stateParams',
-        function ($scope, $rootScope, Project, $stateParams) {
+    app.register.controller('ProjectDetailCtrl', ['$scope', '$rootScope', 'Project', '$stateParams', 'BaseService',
+        function ($scope, $rootScope, Project, $stateParams, BaseService) {
         $rootScope.page = 'project';
+        BaseService.scrollBackToTop();
+        $scope.donation = null;
+        // 捐款记录
+        $scope.projectRecord = {
+            amount: 1,
+            bless: null,
+            way: '支付宝'
+        };
+        $scope.checked = false;
+
+        $scope.reload = function() {
+            if ($scope.projectParams.page() == 1)
+                $scope.projectParams.reload();
+            else
+                $scope.projectParams.page(1);
+        };
 
         var init = function () {
             var id = $stateParams.id;
@@ -53,5 +69,30 @@ define([ 'app/app' ], function(app) {
 
         };
         init();
+
+        // 设置捐款金额
+        $scope.setMoney = function(value) {
+            $scope.projectRecord.amount = value;
+            $scope.donation = null;
+        };
+
+        // 输入金额
+        $scope.inputMoney = function() {
+            $scope.projectRecord.amount = $scope.donation;
+        };
+
+        // 设置支付方式
+        $scope.setWay = function(way) {
+            $scope.projectRecord.way = way;
+        };
+
+        $scope.changeChecked = function() {
+            // if ($scope.checked === false) {
+            //     $scope.checked = true;
+            // } else {
+            //     $scope.checked = false;
+            // }
+            $scope.checked = !$scope.checked;
+        };
     }]);
 });

+ 1 - 0
donate-service/src/main/webapp/resources/js/project/controllers/ProjectListCtrl.js

@@ -22,6 +22,7 @@ define([ 'app/app' ], function(app) {
 
 	app.register.controller('ProjectListCtrl', ['$scope', 'toaster', 'ngTableParams', 'BaseService', 'Project',
         function ($scope, toaster, ngTableParams, BaseService, Project) {
+        BaseService.scrollBackToTop();
 	    $scope.scope = $scope;
 	    $scope.active = 'todo';
         $scope.selectedArea = '全部';

+ 0 - 3
donate-service/src/main/webapp/resources/js/project/main.js

@@ -45,12 +45,9 @@ require.config({
 		'ui-bootstrap' : [ 'angular' ],
 		'bootstrap' : ['jquery'],
 		'jquery-summernote' : ['jquery', 'bootstrap'],
-		'jquery-summernote-lang' : ['jquery-summernote'],
-		'ui-form' : ['angular', 'jquery-summernote', 'jquery-summernote-lang'],
 		'jquery-uploadify' : [ 'jquery' ],
 		'ui-jquery': ['jquery'],
 		'ngAnimate': ['angular'],
-		'angular-sanitize' : ['angular'],
 		'angular-toaster': ['angular', 'ngAnimate'],
 		'ngDraggable': [ 'jquery', 'angular' ],
 		'angular-sanitize': ['angular'],

+ 1 - 1
donate-service/src/main/webapp/resources/js/user/controllers/UserCtrl.js

@@ -22,7 +22,7 @@ define([ 'app/app' ], function(app) {
 
     app.register.controller('UserCtrl', ['$scope', 'toaster', 'User', 'ngTableParams', 'BaseService',
         function ($scope, toaster, User, ngTableParams, BaseService) {
-
+        BaseService.scrollBackToTop();
         // 根据标签获取不同数据
         $scope.tableParams = new ngTableParams({
             page: 1,

+ 1 - 1
donate-service/src/main/webapp/resources/view/activity/activity_detail.html

@@ -644,7 +644,7 @@
                     <p class="title">活动项目</p>
                     <div class="item-list clearfix" ng-repeat="project in activity.projectQualifications">
                         <div class="img fl">
-                            <a href="/project#/detail/{{project.proId}}"><img src="project.thumbnail" alt="项目缩略图" title="{{project.name}}"></a>
+                            <a href="/project#/detail/{{project.proId}}"><img src="{{project.pcImg}}" alt="项目缩略图" title="{{project.name}}"></a>
                         </div>
                         <div class="txt fl">
                             <p><a href="/project#/detail/{{project.proId}}">{{project.name}}</a></p>

+ 9 - 2
donate-service/src/main/webapp/resources/view/common/nav.html

@@ -9,6 +9,13 @@
                  <!--<a href="/project" title="返回首页" style="color: #fff;">一元捐</a>-->
             </span>
         </div>
-        <div class="fr"><a href="">登录</a><a href="">注册</a><a href="http://www.ubtob.com">进入优软云</a></div>
+        <div class="fr"><a href="#" id="login">登录</a><a href="https://account.ubtob.com/sso/register">注册</a><a href="http://www.ubtob.com">进入优软云</a></div>
     </div>
-</div>
+</div>
+<script>
+    $('#login').on('click', function () {
+        $.get('sso/login', function(data) {
+            data.content && (window.location.href = data.content);
+        });
+    });
+</script>

+ 808 - 0
donate-service/src/main/webapp/resources/view/project/organization_detail.html

@@ -0,0 +1,808 @@
+<style>
+    body{
+        font-family: "Microsoft Yahei", "微软雅黑";
+        box-sizing: border-box;
+    }
+    .fl{
+        float: left;
+    }
+    .fr{
+        float: right;
+    }
+    .clearfix {
+        clear: both;
+    }
+    /*头部导航*/
+    #nav{
+        width: 100%;
+        margin: 0 auto;
+        background: #474443;
+    }
+    #nav .container{
+        margin: 0 auto;
+        padding: 0;
+        width: 1140px;
+        height: 60px;
+        line-height: 60px;
+        text-align: center;
+    }
+    #nav .fl{
+        position: relative;
+    }
+    #nav .fl img{
+        margin-right: 32px;
+        width: 65px;
+        height: 22px;
+    }
+    #nav .fl span{
+        font-size: 16px;
+        color: #fff;
+    }
+    #nav .fl span:before{
+        content: '';
+        position: absolute;
+        top: 25px;
+        left: 80px;
+        width: 1px;
+        height: 14px;
+        background: #a0a0a0;
+    }
+    #nav .fl a.return{
+        margin-left: 28px;
+        font-size: 12px;
+        color: #b4b4b4;
+        text-decoration: none;
+    }
+    #nav .fr a{
+        margin-right: 45px;
+        font-size: 14px;
+        color: #fff;
+    }
+    #nav .fr a:last-child {
+        margin-right: 0;
+    }
+    .main{
+        width: 100%;
+        margin: 24px 0 150px 0;
+    }
+    .main .container{
+        width: 1140px;
+        margin: 0 auto;
+        padding: 0;
+    }
+    .main .section{
+        width: 100%;
+        overflow: hidden;
+        text-align: center;
+        margin: 0 auto;
+    }
+    .section1 .nav{
+        margin-bottom: 15px;
+        width: 100%;
+        text-align: left;
+    }
+    .section1 .nav span:first-child a{
+        font-size: 14px;
+        color: #303030;
+    }
+    .section1 .nav span:nth-child(2){
+        margin: 0 10px;
+    }
+    .section1 .nav span:last-child{
+        font-size: 30px;
+        color: #303030;
+    }
+    .section1 .evolve{
+        /*border-top: 2px solid #efb13b;*/
+    }
+    .section1 .evolve .img{
+        width: 1140px;
+        height: 180px;
+        border: 1px solid #e1e1e1;
+    }
+    .section1 .evolve .img img{
+        width: 1140px;
+        height: 180px;
+    }
+    .section1 .evolve .status {
+        margin: 20px 0 0 50px;
+        /*width: 530px;*/
+        width: 100%;
+        height: 310px;
+        text-align: left;
+    }
+    .section1 .evolve .status .status-list {
+        margin-bottom: 20px;
+    }
+    /*项目状态*/
+    .section1 .evolve .status .status-list span.project-txt{
+        margin-right: 20px;
+        font-size: 14px;
+        color: #949494;
+    }
+    .section1 .evolve .status .status-list div.status-detail .status-evolve span{
+        margin-right: 80px;
+        font-size: 14px;
+        color: #7a7a7a;
+    }
+    .section1 .evolve .status .status-list div.status-detail .status-evolve span.end{
+        margin-right: 0;
+    }
+    .section1 .evolve .status .status-list div.status-detail .status-evolve span.start{
+        color: #323232;
+        margin-right: 65px;
+    }
+    .section1 .evolve .status .status-list div.status-detail .status-evolve span.arrangement{
+        color: #323232;
+        font-weight: bold;
+    }
+    .section1 .evolve .status .status-list div.status-detail .status-line{
+        position: relative;
+    }
+    .section1 .evolve .status .status-list div.status-detail .status-line div.line{
+        margin: 20px 0 0 30px;
+    }
+    .section1 .evolve .status .status-list div.status-detail .status-line div.line span{
+        display: inline-block;
+        width: 118px;
+        height: 5px;
+        background: #dcdcdc;
+    }
+    .section1 .evolve .status .status-list div.status-detail .status-line div.line span.active{
+        background: #ef613b;
+    }
+    .section1 .evolve .status .status-list div.status-detail .status-line div.circle{
+        position: absolute ;
+        top: 4px;
+        left: 18px;
+    }
+    .section1 .evolve .status .status-list div.status-detail .status-line div.circle span{
+        margin-right: 108px;
+        display: inline-block;
+        width: 13px;
+        height: 13px;
+        background: #dcdcdc;
+        border-radius: 100%;
+    }
+    .section1 .evolve .status .status-list div.status-detail .status-line div.circle span:nth-child(3){
+        margin-right: 100px;
+    }
+    .section1 .evolve .status .status-list div.status-detail .status-line div.circle span:last-child{
+        margin-right: 0;
+    }
+    .section1 .evolve .status .status-list div.status-detail .status-line div.circle span.active{
+        background: #ef613b;
+    }
+    .section1 .evolve .status .status-list div.status-detail .status-line div.circle span.empty-circle{
+        background: #fff;
+        border: 2px solid #ef613b;
+    }
+    /*机构信息相关项目*/
+    .section2 .top{
+        margin: 25px 0;
+        text-align: left;
+    }
+    .section2 .top div.tabNav{
+        margin-right: 50px;
+        position: relative;
+        cursor: pointer;
+        width: 130px;
+    }
+    .section2 .top div.tabNav span{
+        position: absolute;
+        top:0;
+        left: 30px;
+        font-size: 24px;
+        color: #787878;
+    }
+    .section2 .top div.tabNav em{
+        display: inline-block;
+        width: 6px;
+        height: 36px;
+        font-style: normal;
+        background: #dcdcdc;
+    }
+    .section2 .top div.tabNav.active span,.section2 .top div.tabNav:hover span{
+        color: #1e1e1e;
+    }
+    .section2 .top div.tabNav.active em,.section2 .top div.tabNav:hover em{
+        background: #408eff;
+    }
+    /*相关项目*/
+    .section2 .list-item {
+        margin-top: 25px;
+        padding-bottom: 25px;
+        width: 100%;
+        text-align: left;
+        padding-top: 25px;
+        border-top: 1px solid #dcdcdc;
+    }
+    .section2 .list-item .project-img {
+        margin-right: 24px;
+        width: 360px;
+        height: 200px;
+    }
+    .section2 .list-item .project-img img {
+        width: 360px;
+        height: 200px;
+        border: 1px solid #e1e1e1;
+    }
+    .section2 .list-item .project-detail {
+        margin: 10px 30px 0 0;
+        width: 530px;
+    }
+    .section2 .list-item .project-detail p {
+        margin-bottom: 30px;
+        font-size: 18px;
+        color: #1e1e1e;
+        font-weight: bold;
+    }
+    .section2 .list-item .project-detail p a {
+        font-size: 18px;
+        color: #1e1e1e;
+    }
+    .section2 .list-item .project-detail div {
+        margin-bottom: 14px;
+        overflow: hidden;
+    }
+    .section2 .list-item .project-detail div span {
+        float: left;
+        font-size: 14px;
+        color: #969696;
+    }
+    .section2 .list-item .project-detail div span:last-child {
+        width: 460px;
+        color: #323232;
+    }
+    .section2 .list-item .project-progress {
+        width: 190px;
+        height: 130px;
+        margin: 15px 0 12px 0;
+        padding-left: 20px;
+        background: #f5f5f5;
+    }
+    .section2 .list-item .project-progress div {
+        margin-bottom: 16px;
+    }
+    .section2 .list-item .project-progress div:first-child {
+        margin-top: 26px;
+    }
+    .section2 .list-item .project-progress div span {
+        font-size: 14px;
+        color: #787878;
+    }
+    .section2 .list-item .project-progress div span em {
+        font-size: 14px;
+        color: #323232;
+        font-style: normal;
+    }
+    .section2 .list-item a.donation {
+        display: inline-block;
+        width: 190px;
+        height: 30px;
+        line-height: 30px;
+        font-size: 14px;
+        text-align: center;
+        background: #ef613b;
+        color: #fff;
+        cursor: pointer;
+    }
+    .section2 .list-item a.donation:hover {
+        background: #be3b1b;
+    }
+    /*机构信息*/
+    .section2 .bottom .project-txts{
+        padding-top: 30px;
+        width: 800px;
+        text-align: left;
+        border-top: 1px solid #dcdcdc;
+    }
+    .section2 .bottom .project-txts div{
+        overflow: hidden ;
+    }
+    .section2 .bottom .project-txts p{
+        margin-bottom: 34px;
+        line-height: 21px;
+        font-size: 14px;
+        color:#797979;
+        text-indent: 2em;
+    }
+    .section2 .bottom .project-txts .item-list{
+        float: left;
+        margin-bottom: 15px;
+    }
+    .section2 .bottom .project-txts .item-list span:first-child{
+        margin-right: 20px;
+        width: 70px;
+        font-size: 14px;
+        font-weight: bold;
+        color: #000;
+    }
+    .section2 .bottom .project-txts .item-list span:last-child{
+        width: 310px;
+        font-size: 14px;
+        color: #323232;
+    }
+    .section2 .bottom .project-txts .projectIntro{
+        margin-top: 20px;
+    }
+    .section2 .bottom .project-txts .projectIntro h3{
+        padding-bottom: 15px;
+        font-size: 18px;
+        color: #1e1e1e;
+        border-bottom: 1px solid #dcdcdc;
+    }
+    .section2 .bottom .project-txts .projectIntro .uploadImg{
+        padding-top: 27px;
+    }
+    .section2 .bottom .project-txts .projectIntro .uploadImg .item{
+        position: relative;
+        margin-right: 46px;
+        text-align: center;
+    }
+    .section2 .bottom .project-txts .projectIntro .uploadImg .item .upload-img{
+        margin-bottom: 15px;
+        width: 200px;
+        height: 200px;
+        background: #dcdcdc;
+    }
+    .section2 .bottom .project-txts .projectIntro .uploadImg .item input{
+        position: absolute ;
+        top: 0;
+        left: 0;
+        width: 200px;
+        height: 200px;
+        outline: none;
+        opacity: 0;
+    }
+    .section2 .bottom .project-txts .projectIntro .uploadImg span{
+        font-family: 'SimHei'!important;
+        font-size: 14px;
+        color: #787878;
+    }
+    .project-box{
+        padding: 0 10px;
+        margin-left: 30px;
+        width: 310px;
+        height: 200px;
+        border: 1px solid #dcdcdc;
+        -webkit-box-shadow: 2px 2px 5px #eee;
+        -o-box-shadow: 2px 2px 5px #eee;
+        -moz-box-shadow: 2px 2px 5px #eee;
+        box-shadow: 2px 2px 5px #eee;
+    }
+    .project-box .buttons .bottom-item {
+        text-align: center;
+    }
+    .project-box .buttons .bottom-item .title {
+        margin: 16px 0 10px 0;
+        font-size: 14px;
+        color: #787878;
+        text-align: left;
+    }
+    .project-box .buttons .bottom-item .title span {
+        font-size: 14px;
+        color: #787878;
+    }
+    .project-box .buttons .bottom-item .count span:first-child {
+        display: inline-block;
+        margin-right: 15px;
+        padding-right: 15px;
+        width: 240px;
+        height: 40px;
+        line-height: 40px;
+        font-size: 28px;
+        color: #505050;
+        text-align: right;
+        border: 1px solid #e1e1e1;
+        background: -webkit-linear-gradient(top, #fff 50%,#eee 100%);
+        background: -o-linear-gradient(top, #fff 50%,#eee 100%);
+        background: -ms-linear-gradient(top, #fff 50%,#eee 100%);
+        background: linear-gradient(to bottom, #fff 50%,#eee 100%);
+    }
+    .project-box .buttons .bottom-item .count span:last-child {
+        font-size: 14px;
+        color: #787878;
+        text-align: left;
+    }
+    /*机构信息 相关项目*/
+    .main .section2 .bottom{
+        display: none;
+    }
+    .show{
+        display: block;
+    }
+
+    .status .form-group input {
+        margin-left: 210px;
+        padding-left: 10px;
+        width: 260px;
+        height: 34px;
+        outline: none;
+    }
+
+    .status .form-group {
+        position: relative;
+        float: right;
+    }
+    .form-groups {
+        margin-top: 13px;
+    }
+
+    .status .form-group img {
+        position: absolute;
+        top: 10px;
+        right: 10px;
+        cursor: pointer;
+    }
+    img {
+        border: none;
+        vertical-align: middle;
+    }
+
+    /*我要捐款弹出窗*/
+    .pop{
+        margin: 0 auto;
+        width: 510px;
+        height: 410px;
+        text-align: center;
+    }
+    .pop .modal-dialog .modal-content{
+        width: 510px;
+        /*height: 410px;*/
+    }
+    .pop .header{
+        padding: 0 20px;
+        width: 100%;
+        height: 44px;
+        line-height: 44px;
+        background: #eeeeee;
+    }
+    .pop .header p{
+        font-size: 16px;
+        color: #e96d08;
+        font-weight: bold;
+    }
+    .pop .header .close{
+        font-size: 38px;
+    }
+    .pop .body{
+        margin-top: 20px;
+        margin-bottom: 30px;
+        padding: 0 30px;
+    }
+    .pop .body .choose{
+        margin-bottom: 15px;
+    }
+    .pop .body .choose:nth-child(3){
+        margin-top: 32px;
+    }
+    .pop .body .choose span{
+        margin: 8px 15px 0 0;
+        font-size: 14px;
+        color: #969696;
+    }
+    .pop .body .choose span.best{
+        margin-top: 0;
+    }
+    .pop .body .choose ul{
+        overflow: hidden;
+    }
+    .pop .body .choose ul li{
+        float: left;
+        margin-right: 17px;
+        padding-right: 10px;
+        width: 70px;
+        height: 34px;
+        line-height: 34px;
+        font-size: 14px;
+        text-align: right;
+        color: #1f1f1f;
+        border: 1px solid #e1e1e1;
+        list-style: none;
+        cursor: pointer;
+    }
+    .pop .body .choose ul li:last-child{
+        margin-right: 0;
+    }
+    .pop .body .choose li.active,.pop .body .choose li:hover{
+        border-color: #ef613b;
+    }
+    .pop .body .choose input[type='text']{
+        width: 130px;
+        height: 34px;
+        line-height: 34px;
+        padding-left: 15px;
+        border-radius: 0;
+        outline: none;
+    }
+    .pop .body .choose .write{
+        position: relative;
+        margin-top: 12px;
+        text-align: left;
+    }
+    .pop .body .choose em{
+        position: absolute;
+        top: 9px;
+        right: 212px;
+        font-size: 14px;
+        color: #1f1f1f;
+        font-style: normal;
+    }
+    .pop .body .choose textarea{
+        width: 322px;
+        height: 60px;
+        border-radius: 0;
+    }
+    .pop .body .choose .agree{
+        margin: 15px 0 0 85px;
+    }
+    .pop .body .choose .agree span{
+        margin: 0 0 0 7px;
+    }
+    .pop .body .choose .agree span a{
+        font-size: 12px;
+        color: #979797;
+    }
+    .pop .body .choose .pay{
+        overflow: hidden;
+    }
+    .pop .body .choose .pay .item{
+        float: left;
+        margin-right: 10px;
+        width: 110px;
+        height: 34px;
+        line-height: 34px;
+        text-align: center;
+        border: 1px solid #dcdcdc;
+    }
+    .pop .body .choose .pay .item:last-child{
+        margin-right: 0;
+    }
+    .pop .body .choose .pay .item.active,.pop .body .choose .pay .item:hover{
+        border: 1px solid #ef613b;
+    }
+    .pop .body .choose .pay .item a{
+        display: inline-block;
+        width: 100%;
+        height: 100%;
+        font-size: 14px;
+        color: #323232;
+    }
+    .pop .body .choose .pay .item a img{
+        margin: -2px 15px 0 0;
+        width: 20px;
+        height: 20px;
+        vertical-align: middle;
+    }
+    .pop .body button{
+        width: 200px;
+        height: 40px;
+        line-height: 40px;
+        font-size: 18px;
+        text-align: center;
+        background: #ef613b;
+        color: #fff;
+        border: none;
+        outline: none;
+    }
+
+    .pop .body button:hover{
+         background: #be3b1b;
+     }
+    .modal-open .modal {
+        width: 100%;
+        height: 100%;
+    }
+    .modal-open .modal .modal-dialog{
+        width: 480px;
+        height: 330px;
+        top: 25%;
+    }
+    /*切换*/
+    .show{
+        display: block;
+    }
+</style>
+<div class="main">
+    <div class="container">
+        <div class="section section1">
+            <div class="nav">
+                <span><a ui-sref="detail({id:project.id})">返回项目</a></span><span>&gt;</span><span ng-bind="organization.name"></span>
+            </div>
+            <div class="evolve">
+                <div class="img">
+                    <img src="static/images/init.png" alt=""/>
+                </div>
+            </div>
+        </div>
+        <div class="section section2">
+            <div class="top clearfix" id="top">
+                <div class="active fl tabNav"><em></em><span>机构信息</span></div>
+                <div class="fl tabNav" ng-if="projectParams.total() != 0"><em></em><span>相关项目</span></div>
+            </div>
+            <!--机构信息-->
+            <div class="bottom clearfix show" >
+                <div class="project-txts fl">
+                    <div>
+                        <p> {{organization.summary}}
+                        </p>
+                        <div class="item-list">
+                            <span class="fl">成立日期:</span>
+                            <span class="fl">{{organization.createTime | date :'yyyy年MM月dd日'}}</span>
+                        </div>
+                        <div class="item-list">
+                            <span class="fl">所在地:</span>
+                            <span class="fl">{{organization.province}}&nbsp;{{organization.city}}</span>
+                        </div>
+                        <div class="item-list">
+                            <span class="fl">联系电话:</span>
+                            <span class="fl">{{organization.telphone}}</span>
+                        </div>
+                        <div class="item-list">
+                            <span class="fl">详细地址:</span>
+                            <span class="fl">{{organization.address}}</span>
+                        </div>
+                        <div class="item-list">
+                            <span class="fl">官方网址:</span>
+                            <span class="fl">{{organization.website}}</span>
+                        </div>
+                        <div class="item-list">
+                            <span class="fl">主要领域:</span>
+                            <span class="fl">{{organization.majorArea}}</span>
+                        </div>
+                        <div class="item-list">
+                            <span class="fl">机构性质:</span>
+                            <span class="fl" ng-if="organization.type ==1">公募</span>
+                            <span class="fl" ng-if="organization.type ==2">非公募</span>
+                        </div>
+                    </div>
+                    <div class="projectIntro">
+                        <h3>相关证书</h3>
+                        <div class="uploadImg clearfix">
+                            <div class="item fl">
+                                <img src="{{organization.personCertificate}}">
+                                <div>组织法人登记证书</div>
+                            </div>
+                            <div class="item fl">
+                                <img src="{{organization.donateCertificate}}">
+                                <div>慈善组织公开募捐资格证书</div>
+                            </div>
+                        </div>
+                    </div>
+                </div>
+                <div class="project-box fl">
+                    <div class="buttons">
+                        <div class="bottom-item">
+                            <div class="title"><span>捐款总人次</span></div>
+                            <div class="count"><span ng-bind="joinedPersonHistory | number"></span><span>人次</span></div>
+                        </div>
+                        <div class="bottom-item">
+                            <div class="title"><span>募集总善款</span></div>
+                            <div class="count" style="margin-left: -10px;"><span ng-bind="totalDonationsHistory | number:2"></span><span>元</span></div>
+                        </div>
+                    </div>
+                </div>
+            </div>
+            <!--相关项目-->
+            <div class="bottom bottoms" >
+                <table ng-table="projectParams">
+                    <thead>
+                    <tr>
+                        <th>
+                            <div class="status">
+                                <div class="form-group form-groups">
+                                    <input type="search" ng-model="keyword" ng-search="onSearch()" class="form-control" placeholder="请输入关键词"/>
+                                    <img src="static/images/index/search.png" ng-click="onSearch()" alt="搜索" title="点击搜索"/>
+                                </div>
+                            </div>
+                        </th>
+                    </tr>
+                    </thead>
+                    <tbody ng-if="projectParams.total() == 0">
+                        <tr>
+                            <td>
+                                <div class="list-item clearfix">
+                                    <div class="col-md-12 text-center">
+                                        <div class="f16">当前没有找到符合条件的项目!</div>
+                                    </div>
+                                </div>
+                            </td>
+                        </tr>
+                    </tbody>
+                    <tbody ng-repeat="project in $data">
+                    <tr>
+                        <td>
+                            <div class="list-item clearfix">
+                                <div class="project-img fl">
+                                    <a ui-sref="projectDetail"><img src="{{project.pcImg}}" alt="项目缩略图" title="{{project.name}}"/></a>
+                                </div>
+                                <div class="project-detail fl">
+                                    <p><a ui-sref="detail({id:project.id})">{{project.name}}</a></p>
+                                    <div><span>项目简介:</span><span>{{project.summary}}</span></div>
+                                    <div><span>筹款时间:</span><span>{{project.startTime | date:'yyyy-MM-dd'}}至{{project.endTime | date:'yyyy-MM-dd'}}</span></div>
+                                    <div><span>筹款目标:</span><span>{{project.target | number}}元</span></div>
+                                    <div><span>执&nbsp;行&nbsp;方:</span><span>{{project.orgName}}</span></div>
+                                </div>
+                                <div class="project-progress fr">
+                                    <div>
+                                        <span>项目状态:
+                                            <em ng-if="project.overdue != 1">进行中</em>
+                                            <em ng-if="project.overdue == 1">已结束</em>
+                                        </span>
+                                    </div>
+                                    <div><span>已参与:<em>{{joinedPersonHistory | number}}</em>人</span></div>
+                                    <div><span>已筹款:<em>{{project.totalAmount | number}}</em>元({{project.totalAmount * 100 / project.target | number: 2}}%)</span></div>
+                                </div>
+                                <a class="fr donation" data-toggle="modal" data-target="#layer">我要捐款</a>
+                            </div>
+                        </td>
+                    </tr>
+                    </tbody>
+                </table>
+            </div>
+        </div>
+    </div>
+</div>
+<!--捐款弹窗-->
+<div class="pop modal" role='dialog' id='layer'>
+    <div class="modal-dialog">
+        <div class="modal-content">
+            <div class="header modal-header clearfix">
+                <p class="fl">捐款项目:{{project.name}}</p>
+                <div class="close fr" data-dismiss="modal">&times;</div>
+            </div>
+            <form name="donationForm">
+                <div class="body modal-body">
+                    <div class="choose clearfix">
+                        <span class="fl">捐款金额:</span>
+                        <div class="fl">
+                            <ul>
+                                <li class="select-money active" ng-click="setMoney(1)">1元</li>
+                                <li class="select-money" ng-click="setMoney(50)">50元</li>
+                                <li class="select-money" ng-click="setMoney(100)">100元</li>
+                                <li class="select-money" ng-click="setMoney(200)">200元</li>
+                            </ul>
+                            <div class="write"><input type="text" ng-pattern="/^\d{1,9}(.\d{1,2})?$/" ng-model="donation" ng-click="setMoney(0)" ng-change="inputMoney()" placeholder="其他金额" class="write-money  form-control"/><em>元</em></div>
+                        </div>
+                    </div>
+                    <div class="choose clearfix">
+                        <span class="fl">支付方式:</span>
+                        <div class="fl pay">
+                            <div class="item active select-way"><a ng-click="setWay('支付宝')"><img src="static/images/zfb.png" alt=""/>支付宝</a></div>
+                            <div class="item select-way"><a ng-click="setWay('微信')"><img src="static/images/wx.png" alt=""/>微信支付</a></div>
+                            <!--<div class="item select-way"><a ng-click="setWay('网银')"><img src="static/images/bank.png" alt=""/>网银支付</a></div>-->
+                        </div>
+                    </div>
+                    <div class="choose clearfix">
+                        <span class="fl best">我的祝福:</span>
+                        <textarea ng-model="projectRecord.bless" cols="30" rows="10" class="fl form-control"></textarea>
+                        <div class="fl agree clearfix">
+                            <input type="checkbox" class="fl" required ng-checked="checked" ng-click="changeChecked()"><span class="fl">同意并接受《<a href="/userAgreement" target="_blank" style="color: #5078cb;">优软一元捐用户协议</a>》</span>
+                        </div>
+                    </div>
+                    <button ng-disabled="donationForm.$invalid || !checked || projectRecord.amount == 0" onclick="pay(angular.element(this).scope().project.id, angular.element(this).scope().projectRecord.amount, angular.element(this).scope().projectRecord.way)">确认捐款</button>
+                </div>
+            </form>
+        </div>
+    </div>
+</div>
+<script>
+    //    点击切换
+    $('#top').on('click', '.tabNav', function () {
+        var index = $(this).index();
+        $(this).addClass('active').siblings().removeClass('active');
+        $('.bottom').eq(index).addClass('show').siblings().removeClass('show');
+    });
+
+    $('.select-money').on('click', function () {
+        $(this).addClass('active').siblings().removeClass('active');
+    });
+    $('.select-way').on('click', function () {
+        $(this).addClass('active').siblings().removeClass('active');
+    });
+    $('.write-money').on('focus', function () {
+        $('.select-money').removeClass('active');
+    });
+</script>
+<script type="text/javascript" src="static/js/pay.js"></script>

+ 40 - 27
donate-service/src/main/webapp/resources/view/project/project_detail.html

@@ -687,7 +687,7 @@
             </div>
             <div class="evolve clearfix">
                 <div class="img fl">
-                    <img src="project.thumbail" alt="项目缩略图" title="{{project.name}}"/>
+                    <img src="{{project.pcImg}}" alt="项目缩略图" title="{{project.name}}"/>
                 </div>
                 <div class="status fr">
                     <!--项目状态-->
@@ -745,7 +745,7 @@
             <div class="top clearfix" id="top">
                 <div class="active fl tabNav"><em></em><span>项目详情</span></div>
                 <div class="fl tabNav"><em></em><span>项目进度</span></div>
-                <div class="fl tabNav"><em></em><span>结项报告</span></div>
+                <div class="fl tabNav" ng-if="null != proReport"><em></em><span>结项报告</span></div>
             </div>
             <!--项目详情-->
             <div class="bottom clearfix show" >
@@ -778,7 +778,7 @@
                         <a data-toggle="modal" data-target="#layer">我要捐款</a>
                     </div>
                 </div>
-                <div ng-include src="'static/view/common/project_detail_side.html'"></div>
+                <div ng-include src="'static/view/project/project_detail_side.html'"></div>
             </div>
             <!--项目进度-->
             <div class="bottom bottoms clearfix" >
@@ -796,7 +796,7 @@
                         <!--<img src="static/images/active06.png" alt=""/>-->
                     </div>
                 </div>
-                <div ng-include src="'static/view/common/project_detail_side.html'"></div>
+                <div ng-include src="'static/view/project/project_detail_side.html'"></div>
             </div>
             <!--结项报告-->
             <div class="bottom bottoms clearfix" >
@@ -877,13 +877,13 @@
                         <!--</div>-->
                     <!--</div>-->
                 </div>
-                <div ng-include src="'static/view/common/project_detail_side.html'"></div>
+                <div ng-include src="'static/view/project/project_detail_side.html'"></div>
             </div>
         </div>
     </div>
 </div>
 <!--捐款弹窗-->
-<!--弹窗-->
+<!--捐款弹窗-->
 <div class="pop modal" role='dialog' id='layer'>
     <div class="modal-dialog">
         <div class="modal-content">
@@ -891,32 +891,41 @@
                 <p class="fl">捐款项目:{{project.name}}</p>
                 <div class="close fr" data-dismiss="modal">&times;</div>
             </div>
-            <div class="body modal-body">
-                <div class="choose clearfix">
-                    <span class="fl">捐款金额:</span>
-                    <div class="fl">
-                        <ul>
-                            <li class="select-money active" ng-click="setMoney(1)">1元</li>
-                            <li class="select-money" ng-click="setMoney(50)">50元</li>
-                            <li class="select-money" ng-click="setMoney(100)">100元</li>
-                            <li class="select-money" ng-click="setMoney(200)">200元</li>
-                        </ul>
-                        <div class="write"><input type="text" ng-model="donation" ng-click="setMoney(0)" placeholder="其他金额" class="write-money  form-control"/><em>元</em></div>
+            <form name="donationForm">
+                <div class="body modal-body">
+                    <div class="choose clearfix">
+                        <span class="fl">捐款金额:</span>
+                        <div class="fl">
+                            <ul>
+                                <li class="select-money active" ng-click="setMoney(1)">1元</li>
+                                <li class="select-money" ng-click="setMoney(50)">50元</li>
+                                <li class="select-money" ng-click="setMoney(100)">100元</li>
+                                <li class="select-money" ng-click="setMoney(200)">200元</li>
+                            </ul>
+                            <div class="write"><input type="text" ng-pattern="/^\d{1,9}(.\d{1,2})?$/" ng-model="donation" ng-click="setMoney(0)" ng-change="inputMoney()" placeholder="其他金额" class="write-money  form-control"/><em>元</em></div>
+                        </div>
                     </div>
-                </div>
-                <div class="choose clearfix">
-                    <span class="fl best">我的祝福:</span>
-                    <textarea ng-model="bless" name="" id="" cols="30" rows="10" class="fl form-control"></textarea>
-                    <div class="fl agree clearfix">
-                        <input type="checkbox" class="fl" required><span class="fl">同意并接受《<a href="/userAgreement" target="_blank" style="color: #5078cb;">优软一元捐用户协议</a>》</span>
+                    <div class="choose clearfix">
+                        <span class="fl">支付方式:</span>
+                        <div class="fl pay">
+                            <div class="item active select-way"><a ng-click="setWay('支付宝')"><img src="static/images/zfb.png" alt=""/>支付宝</a></div>
+                            <div class="item select-way"><a ng-click="setWay('微信')"><img src="static/images/wx.png" alt=""/>微信支付</a></div>
+                            <!--<div class="item select-way"><a ng-click="setWay('网银')"><img src="static/images/bank.png" alt=""/>网银支付</a></div>-->
+                        </div>
                     </div>
+                    <div class="choose clearfix">
+                        <span class="fl best">我的祝福:</span>
+                        <textarea ng-model="projectRecord.bless" cols="30" rows="10" class="fl form-control"></textarea>
+                        <div class="fl agree clearfix">
+                            <input type="checkbox" class="fl" required ng-checked="checked" ng-click="changeChecked()"><span class="fl">同意并接受《<a href="/userAgreement" target="_blank" style="color: #5078cb;">优软一元捐用户协议</a>》</span>
+                        </div>
+                    </div>
+                    <button ng-disabled="donationForm.$invalid || !checked || projectRecord.amount == 0" onclick="pay(angular.element(this).scope().project.id, angular.element(this).scope().projectRecord.amount, angular.element(this).scope().projectRecord.way)">确认捐款</button>
                 </div>
-                <a href="donationsOver"><button ng-click="ensureDonate()">确认捐款</button></a>
-            </div>
+            </form>
         </div>
     </div>
 </div>
-<!--js begin-->
 <script>
     //    点击切换
     $('#top').on('click', '.tabNav', function () {
@@ -928,7 +937,11 @@
     $('.select-money').on('click', function () {
         $(this).addClass('active').siblings().removeClass('active');
     });
+    $('.select-way').on('click', function () {
+        $(this).addClass('active').siblings().removeClass('active');
+    });
     $('.write-money').on('focus', function () {
         $('.select-money').removeClass('active');
     });
-</script>
+</script>
+<script type="text/javascript" src="static/js/pay.js"></script>

+ 50 - 0
donate-service/src/main/webapp/resources/view/project/project_detail_side.html

@@ -0,0 +1,50 @@
+<!-- 项目相关内容 -->
+<!--参与的活动-->
+<div class="project-box fl">
+    <div class="box box1">
+        <span class="join">参与的活动</span>
+        <p class="title"><a href="/activity#/detail/{{activity.id}}">{{activity.name}}</a></p>
+        <div class="box-details">
+            <div class="box-detail clearfix">
+                <span class="fl">活动时间:</span>
+                <div class="fl">
+                    <span>{{activity.startTime | date:'yyyy-MM-dd'}}&nbsp;至&nbsp;{{activity.endTime | date:'yyyy-MM-dd'}} </span>
+                </div>
+            </div>
+            <div class="box-detail clearfix">
+                <span class="fl">活动奖品:</span>
+                <div class="fl">
+                    <span ng-repeat="award in activity.awards">{{award.awardName}}*{{award.amount}}</span>
+                </div>
+            </div>
+            <div class="box-detail clearfix">
+                <span class="fl">参加条件:</span>
+                <div class="fl">
+                    <span>相关的项目捐款一元以上</span>
+                </div>
+            </div>
+        </div>
+    </div>
+    <!--执行机构简介-->
+    <div class="box box2">
+        <span class="join">执行机构简介</span>
+        <p class="title"><a ui-sref="organization({id:project.id})">{{organization.name}}</a></p>
+        <div class="box-details">
+            <p>{{organization.summary}}</p>
+            <img src="{{organization.logo}}" alt="机构LOGO"/>
+        </div>
+    </div>
+    <!--同类项目-->
+    <div class="box3"  ng-if="sameKinds.length() != 0">
+        <h4>同类项目</h4>
+        <div class="item-list clearfix" ng-repeat="sameKind in sameKinds | limitTo: 2">
+            <div class="img fl">
+                <a ui-sref="detail(sameKind.id)"><img src="{{sameKind.listImg}}" alt="项目缩略图"></a>
+            </div>
+            <div class="txt fl">
+                <p><a ui-sref="detail(sameKind.id)">{{sameKind.name}}</a></p>
+                <span ng-bind="sameKind.proSummary"></span>
+            </div>
+        </div>
+    </div>
+</div>

+ 1 - 1
donate-service/src/main/webapp/resources/view/project/project_list.html

@@ -653,7 +653,7 @@
                         <td>
                             <div class="list-item clearfix">
                                 <div class="project-img fl">
-                                    <a ui-sref="projectDetail"><img src="{{project.thumbnail}}" alt="项目缩略图" title="{{project.name}}"/></a>
+                                    <a ui-sref="projectDetail"><img src="{{project.pcImg}}" alt="项目缩略图" title="{{project.name}}"/></a>
                                 </div>
                                 <div class="project-detail fl">
                                     <p><a ui-sref="detail({id:project.id})">{{project.name}}</a></p>

+ 1 - 1
donate-service/src/main/webapp/resources/view/user/user_center.html

@@ -773,7 +773,7 @@
     <div class="container">
         <div class="section">
             <div class="nav">
-                <span><a href="">项目列表</a></span><span>&gt;</span><span>个人中心</span>
+                <span><a href="/">首页</a></span><span>&gt;</span><span>个人中心</span>
             </div>
             <div class="personalCenter clearfix">
                 <div class="personal-center fl">