Browse Source

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

scr 8 years ago
parent
commit
19e74700c4
22 changed files with 599 additions and 120 deletions
  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. 5 2
      donate-console/src/main/webapp/WEB-INF/views/activityInitiated.html
  10. 2 2
      donate-console/src/main/webapp/WEB-INF/views/index.html
  11. 25 3
      donate-console/src/main/webapp/resources/js/index/app.js
  12. 5 0
      donate-console/src/main/webapp/resources/js/index/services/Activity.js
  13. 2 3
      donate-console/src/main/webapp/resources/view/activity/activity_detail.html
  14. 72 41
      donate-console/src/main/webapp/resources/view/activity/activity_launch.html
  15. 7 7
      donate-console/src/main/webapp/resources/view/project/project_launch_2.html
  16. 33 5
      donate-service/src/main/resources/templates/index.ftl
  17. BIN
      donate-service/src/main/webapp/resources/images/mobile/right.png
  18. BIN
      donate-service/src/main/webapp/resources/images/wx.png
  19. BIN
      donate-service/src/main/webapp/resources/images/zfb.png
  20. 7 2
      donate-service/src/main/webapp/resources/js/mobile/controllers/MobileProjectDetailCtrl.js
  21. 190 30
      donate-service/src/main/webapp/resources/view/mobile/mobile_project_detail.html
  22. 173 0
      donate-service/src/main/webapp/resources/view/mobile/userAgreement.html

+ 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.MediaType;
 import org.springframework.http.converter.HttpMessageConverter;
 import org.springframework.http.converter.HttpMessageConverter;
 import org.springframework.http.converter.StringHttpMessageConverter;
 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 org.springframework.web.servlet.view.InternalResourceViewResolver;
 
 
 import java.nio.charset.Charset;
 import java.nio.charset.Charset;
@@ -26,6 +23,7 @@ import java.util.List;
  */
  */
 @Configuration
 @Configuration
 @ComponentScan(basePackages = "com.uas.console.donate.controller")
 @ComponentScan(basePackages = "com.uas.console.donate.controller")
+@EnableWebMvc
 public class WebAppConfiguration extends WebMvcConfigurerAdapter {
 public class WebAppConfiguration extends WebMvcConfigurerAdapter {
 
 
 	@Override
 	@Override
@@ -51,7 +49,6 @@ public class WebAppConfiguration extends WebMvcConfigurerAdapter {
 		registry.addViewController("/index").setViewName("index");
 		registry.addViewController("/index").setViewName("index");
 		registry.addViewController("/userAgreement").setViewName("userAgreement");
 		registry.addViewController("/userAgreement").setViewName("userAgreement");
 		registry.addViewController("/console").setViewName("console");
 		registry.addViewController("/console").setViewName("console");
-		registry.addViewController("/fileUpload").setViewName("fileUpload");
 		registry.addViewController("/login/proxy").setViewName("proxyLogin");
 		registry.addViewController("/login/proxy").setViewName("proxyLogin");
 		registry.addViewController("/logout/proxy").setViewName("proxyLogout");
 		registry.addViewController("/logout/proxy").setViewName("proxyLogout");
 		registry.addViewController("/permissionsSettings").setViewName("permissionsSettings");
 		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;
 package com.uas.console.donate.controller;
 
 
 
 
+import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.JSONObject;
 import com.uas.console.donate.model.*;
 import com.uas.console.donate.model.*;
 import com.uas.console.donate.service.ActivityRecodeService;
 import com.uas.console.donate.service.ActivityRecodeService;
@@ -320,4 +321,14 @@ public class ActivityController {
     public void deletePrizeImg(@RequestParam String path) {
     public void deletePrizeImg(@RequestParam String path) {
         activityService.deletePrizeImg(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;
 import org.springframework.web.bind.annotation.ResponseBody;
 
 
 @Controller
 @Controller
+@RequestMapping("/message")
 public class SmsController {
 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 org.springframework.stereotype.Repository;
 
 
 import java.util.Date;
 import java.util.Date;
+import java.util.List;
 
 
 @Repository
 @Repository
 public interface ActivityDao extends JpaRepository<Activity,Long>,JpaSpecificationExecutor<Activity> {
 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")
     @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")
     @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.data.repository.query.Param;
 import org.springframework.stereotype.Repository;
 import org.springframework.stereotype.Repository;
 
 
+import java.math.BigInteger;
 import java.util.List;
 import java.util.List;
 
 
 @Repository
 @Repository
@@ -73,5 +74,5 @@ public interface ProjectDao extends JpaRepository<Project,Long>,JpaSpecification
      * @return
      * @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)
     @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
      * @return
      */
      */
-    @OneToMany(mappedBy = "activity", cascade =  {CascadeType.REFRESH, CascadeType.PERSIST}, fetch = FetchType.EAGER)
+    @OneToMany(mappedBy = "activity", cascade =  {CascadeType.REFRESH}, fetch = FetchType.EAGER)
     @OrderBy("awardLevel")
     @OrderBy("awardLevel")
     private Set<Award> awards;
     private Set<Award> awards;
 
 
@@ -367,7 +367,9 @@ public class Activity implements Serializable{
         Integer amount = 0;
         Integer amount = 0;
         if (!CollectionUtils.isEmpty(this.getAwards())) {
         if (!CollectionUtils.isEmpty(this.getAwards())) {
             for (Award award : this.getAwards()) {
             for (Award award : this.getAwards()) {
-                amount += award.getAmount();
+                if (null != award.getAmount()) {
+                    amount += award.getAmount();
+                }
             }
             }
         }
         }
         return amount;
         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;
     Attach uploadPrizeImg(MultipartFile file) throws Exception;
 
 
     void deletePrizeImg(String path);
     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.CriteriaQuery;
 import javax.persistence.criteria.Predicate;
 import javax.persistence.criteria.Predicate;
 import javax.persistence.criteria.Root;
 import javax.persistence.criteria.Root;
+import java.math.BigInteger;
 import java.text.SimpleDateFormat;
 import java.text.SimpleDateFormat;
 import java.util.Date;
 import java.util.Date;
+import java.util.HashSet;
 import java.util.List;
 import java.util.List;
 import java.util.Set;
 import java.util.Set;
 
 
@@ -58,7 +60,7 @@ public class ActivityServiceImpl implements ActivityService{
     @Override
     @Override
     public Activity show(){
     public Activity show(){
         Long userUU = SystemSession.getUser().getUserUU();
         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) {
     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){
     public Activity up(Long id){
@@ -198,9 +227,11 @@ public class ActivityServiceImpl implements ActivityService{
     @Override
     @Override
     public List<Project> getActivityRelatedProjects(final String keyword, final List<Long> proIds) {
     public List<Project> getActivityRelatedProjects(final String keyword, final List<Long> proIds) {
         // 获取所有已被关联的项目id
         // 获取所有已被关联的项目id
-        List<Long> relatedIds = projectDao.getProjectIdsRelated();
+        List<BigInteger> relatedIds = projectDao.getProjectIdsRelated();
         if (!CollectionUtils.isEmpty(relatedIds)) {
         if (!CollectionUtils.isEmpty(relatedIds)) {
-            proIds.addAll(relatedIds);
+            for (BigInteger id : relatedIds) {
+                proIds.add(id.longValue());
+            }
         }
         }
         // 默认返回100条
         // 默认返回100条
         final PageInfo pageInfo = new PageInfo(1, 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);
+        }
+    }
+
 }
 }

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

@@ -523,6 +523,9 @@
             line-height: 60px;
             line-height: 60px;
             text-align: center;
             text-align: center;
         }
         }
+        .content-setting .form-group .active-time span.dao {
+              margin: 0 10px 0 5px;
+        }
     </style>
     </style>
 </head>
 </head>
 <body class="skin-blue sidebar-mini  pace-done">
 <body class="skin-blue sidebar-mini  pace-done">
@@ -658,7 +661,7 @@
                             <label for="" class="control-label fl">活动时间</label>
                             <label for="" class="control-label fl">活动时间</label>
                             <div class="active-time fl">
                             <div class="active-time fl">
                                 <input type="date" class="date-choose fl form-control">
                                 <input type="date" class="date-choose fl form-control">
-                                <span class="fl">至</span>
+                                <span class="fl dao">至</span>
                                 <input type="date" class="date-choose fl form-control">
                                 <input type="date" class="date-choose fl form-control">
                             </div>
                             </div>
                         </div>
                         </div>
@@ -666,7 +669,7 @@
                             <label for="" class="control-label fl">兑奖时间</label>
                             <label for="" class="control-label fl">兑奖时间</label>
                             <div class="active-time fl">
                             <div class="active-time fl">
                                 <input type="date" class="date-choose fl form-control">
                                 <input type="date" class="date-choose fl form-control">
-                                <span class="fl">至</span>
+                                <span class="fl dao">至</span>
                                 <input type="date" class="date-choose fl form-control">
                                 <input type="date" class="date-choose fl form-control">
                             </div>
                             </div>
                         </div>
                         </div>

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

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

@@ -1954,6 +1954,7 @@ define([ 'angularAMD', 'ui.router', 'ui-bootstrap', 'ngLocal', 'ngTable', 'file-
      */
      */
     app.controller('ActivityListCtrl', ['$scope', '$rootScope', 'toaster', 'ngTableParams', 'BaseService', 'Activity', '$modal',
     app.controller('ActivityListCtrl', ['$scope', '$rootScope', 'toaster', 'ngTableParams', 'BaseService', 'Activity', '$modal',
         function ($scope, $rootScope, toaster, ngTableParams, BaseService, Activity, $modal) {
         function ($scope, $rootScope, toaster, ngTableParams, BaseService, Activity, $modal) {
+            BaseService.scrollBackToTop();
 
 
             var getActivityState = function (active) {
             var getActivityState = function (active) {
                 // 正在进行
                 // 正在进行
@@ -2117,6 +2118,7 @@ define([ 'angularAMD', 'ui.router', 'ui-bootstrap', 'ngLocal', 'ngTable', 'file-
     app.controller('ActivityNewCtrl', ['$scope', 'BaseService', 'toaster', 'Activity', '$http', '$upload',
     app.controller('ActivityNewCtrl', ['$scope', 'BaseService', 'toaster', 'Activity', '$http', '$upload',
         function($scope, BaseService, toaster, Activity, $http, $upload) {
         function($scope, BaseService, toaster, Activity, $http, $upload) {
 
 
+        $scope.loading = true;
         $scope.activity = {
         $scope.activity = {
             awards:[],
             awards:[],
             projects: []
             projects: []
@@ -2133,7 +2135,10 @@ define([ 'angularAMD', 'ui.router', 'ui-bootstrap', 'ngLocal', 'ngTable', 'file-
                     $scope.activity = data;
                     $scope.activity = data;
                     $scope.awards = data.awards;
                     $scope.awards = data.awards;
                     $scope.selectedProjects = data.projects;
                     $scope.selectedProjects = data.projects;
+                    $scope.actImgUrl = data.actImg;
+                    $scope.bannerUrl = data.banner;
                 }
                 }
+                $scope.loading = false;
             });
             });
         };
         };
         loadSavedActivity();
         loadSavedActivity();
@@ -2179,12 +2184,11 @@ define([ 'angularAMD', 'ui.router', 'ui-bootstrap', 'ngLocal', 'ngTable', 'file-
         };
         };
 
 
         // 删除某一奖品
         // 删除某一奖品
+        $scope.deletePath = [];
         $scope.deleteAward = function($index) {
         $scope.deleteAward = function($index) {
             var path = $scope.awards[$index].img;
             var path = $scope.awards[$index].img;
             if (!angular.isUndefined(path)) {
             if (!angular.isUndefined(path)) {
-                Activity.deletePrizeImg({path: path}, {}, function(data) {
-
-                });
+                $scope.deletePath.push(path);
             }
             }
             $scope.awards.splice($index, 1);
             $scope.awards.splice($index, 1);
         };
         };
@@ -2224,6 +2228,9 @@ define([ 'angularAMD', 'ui.router', 'ui-bootstrap', 'ngLocal', 'ngTable', 'file-
             angular.forEach($scope.projects, function(project, index) {
             angular.forEach($scope.projects, function(project, index) {
                 if (project.checked) {
                 if (project.checked) {
                     project.checked = false;
                     project.checked = false;
+                    if (angular.isUndefined($scope.selectedProjects)) {
+                        $scope.selectedProjects = [];
+                    }
                     $scope.selectedProjects.push(project);
                     $scope.selectedProjects.push(project);
                     $scope.projects.splice(index, 1);
                     $scope.projects.splice(index, 1);
                 }
                 }
@@ -2265,12 +2272,24 @@ define([ 'angularAMD', 'ui.router', 'ui-bootstrap', 'ngLocal', 'ngTable', 'file-
             $scope.selectedProjects = angular.copy($scope.tempSelectedProjects);
             $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.clearActivity = function() {
             $scope.activity = {
             $scope.activity = {
                 awards:[],
                 awards:[],
                 projects: []
                 projects: []
             };
             };
+            $scope.actImgUrl = null;
+            $scope.bannerUrl = null;
+            $scope.awards = [];
+            $scope.selectedProjects = [];
+            getProject();
+            BaseService.scrollBackToTop();
         };
         };
 
 
         // 图片上传
         // 图片上传
@@ -2440,6 +2459,9 @@ define([ 'angularAMD', 'ui.router', 'ui-bootstrap', 'ngLocal', 'ngTable', 'file-
                 } else {
                 } else {
                     toaster.pop('success', '保存成功');
                     toaster.pop('success', '保存成功');
                 }
                 }
+                Activity.deletePrizeImgByBatch({path: $scope.deletePath}, {}, function(data) {
+
+                });
                 window.location.href='#/activity';
                 window.location.href='#/activity';
             }).error(function (data) {
             }).error(function (data) {
                 $scope.loadingShow = false;
                 $scope.loadingShow = false;

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

@@ -69,6 +69,11 @@ define ([ 'ngResource' ], function() {
             deletePrizeImg: {
             deletePrizeImg: {
                 url: 'activity/delete/prizeImg',
                 url: 'activity/delete/prizeImg',
                 method: 'DELETE'
                 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="right-header clearfix">
         <div class="fl"><span ng-bind="activity.name"></span>
         <div class="fl"><span ng-bind="activity.name"></span>
             <!--<a href="" class="edit">编辑</a>-->
             <!--<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 class="fr close" ng-click="cancel()">&times;</div>
     </div>
     </div>
     <div class="right-nav">
     <div class="right-nav">
@@ -44,8 +44,7 @@
             <div class="list-header">
             <div class="list-header">
                 <span>活动介绍</span>
                 <span>活动介绍</span>
             </div>
             </div>
-            <div class="list-body">
-                <p>{{activity.summary}}</p>
+            <div class="list-body" ng-bind-html="activity.summary">
                 <!--<p>1、活动介绍:基层团组织通过学校在校园内公布申请条件,学生及其监护人提出求助申请学校对申请学生进行家访,核实家庭经济状况后-->
                 <!--<p>1、活动介绍:基层团组织通过学校在校园内公布申请条件,学生及其监护人提出求助申请学校对申请学生进行家访,核实家庭经济状况后-->
                     <!--报县级团委审核,县级团委上报市级团委汇总;</p>-->
                     <!--报县级团委审核,县级团委上报市级团委汇总;</p>-->
                 <!--<p>2、参加条件:确认市级团委汇总地区申请资料后报市青基会;</p>-->
                 <!--<p>2、参加条件:确认市级团委汇总地区申请资料后报市青基会;</p>-->

+ 72 - 41
donate-console/src/main/webapp/resources/view/activity/activity_launch.html

@@ -38,12 +38,20 @@
         color: #8da8b8;
         color: #8da8b8;
     }
     }
     .content-setting .form-group input{
     .content-setting .form-group input{
-        margin-right: 15px;
-        width: 435px;
-        height: 30px;
+        /*padding-left: 35px;*/
+        /*position: absolute;*/
+        padding-right: 16px;
+        width: 390px;
+        height: 28px;
         font-size: 14px;
         font-size: 14px;
         color: #323232;
         color: #323232;
         border-radius: 0;
         border-radius: 0;
+        border: 1px solid #dcdcdc;
+        /*z-index: 1000;*/
+    }
+    .content-setting .form-group input.activePrice{
+        padding-left: 35px;
+        position: absolute;
     }
     }
     /*活动发起*/
     /*活动发起*/
     .content-setting .form-group .active-time{
     .content-setting .form-group .active-time{
@@ -71,10 +79,10 @@
         height: 30px;
         height: 30px;
     }
     }
     .content-setting .form-group .prise .prise-detail .award{
     .content-setting .form-group .prise .prise-detail .award{
-        padding-left: 43px;
+        /*padding-left: 43px;*/
         width: 435px;
         width: 435px;
         height: 30px;
         height: 30px;
-        border: 1px solid #dcdcdc;
+        /*border: 1px solid #dcdcdc;*/
     }
     }
     .content-setting .form-group .prise .prise-detail span{
     .content-setting .form-group .prise .prise-detail span{
         position: absolute;
         position: absolute;
@@ -91,7 +99,7 @@
     .content-setting .form-group .prise .prise-detail a{
     .content-setting .form-group .prise .prise-detail a{
         position: absolute;
         position: absolute;
         top: 0;
         top: 0;
-        right: -43px;
+        right: 0;
         font-size: 14px;
         font-size: 14px;
         font-family: 'SimHei'!important;
         font-family: 'SimHei'!important;
         color: #1b71c9;
         color: #1b71c9;
@@ -521,8 +529,8 @@
         margin: 16px 0;
         margin: 16px 0;
     }
     }
     .content-setting .form-group .uploadImage .showImgs{
     .content-setting .form-group .uploadImage .showImgs{
-        width: 1140px;
-        height: 140px;
+        width: 570px;
+        height: 70px;
     }
     }
     .content-setting .form-group .uploadImage .showImg img{
     .content-setting .form-group .uploadImage .showImg img{
         width: 100%;
         width: 100%;
@@ -547,6 +555,10 @@
         color: #fff;
         color: #fff;
         cursor: pointer;
         cursor: pointer;
     }
     }
+    .content-setting .form-group .uploadImage .showImg .hover-show .delete em.fa-trash{
+        font-size: 18px;
+        color: #fff;
+    }
     .content-setting .form-group .uploadImage .showImg .hover-show a{
     .content-setting .form-group .uploadImage .showImg .hover-show a{
         position: absolute;
         position: absolute;
         top: 44%;
         top: 44%;
@@ -556,12 +568,52 @@
     }
     }
     .content-setting .form-group .uploadImage .showImgs .hover-show a{
     .content-setting .form-group .uploadImage .showImgs .hover-show a{
         position: absolute;
         position: absolute;
-        top: 44%;
+        top: 35%;
         left: 48%;
         left: 48%;
         font-size: 16px;
         font-size: 16px;
         color: #fff;
         color: #fff;
     }
     }
+    .content-setting .form-group .prise .showImage{
+        position: relative ;
+        width: 160px;
+        height: 160px;
+        margin: 16px 0;
+    }
+    .content-setting .form-group .prise .showImage img{
+        width: 100%;
+        height: 100%;
+    }
+    .content-setting .form-group .prise .showImage .hover-show {
+        position: absolute ;
+        top: 0;
+        left: 0;
+        width: 100%;
+        height: 100%;
+        background: rgba(0,0,0,.5);
+        display: none;
+    }
+    .content-setting .form-group .prise .showImage:hover .hover-show {
+        display: block;
+    }
+    .content-setting .form-group .prise .showImage .hover-show .delete{
+        position: absolute;
+        top: 5px;
+        right: 5px;
+        color: #fff;
+        cursor: pointer;
+    }
+    .content-setting .form-group .prise .showImage .hover-show a{
+        position: absolute;
+        top: 44%;
+        left: 36%;
+        font-size: 16px;
+        color: #fff;
+    }
+
 </style>
 </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;">
 <div class="content-wrapper" style="min-height: 924px;; z-index: 50;">
     <section class="content-header clearfix">
     <section class="content-header clearfix">
         <h1>活动发起</h1>
         <h1>活动发起</h1>
@@ -585,7 +637,7 @@
                                    current-text="今天" clear-text="清除" close-text="关闭"
                                    current-text="今天" clear-text="清除" close-text="关闭"
                                    datepicker-options="{formatDayTitle: 'yyyy年M月', formatMonth: 'M月', showWeeks: false}"
                                    datepicker-options="{formatDayTitle: 'yyyy年M月', formatMonth: 'M月', showWeeks: false}"
                                    ng-click="openDatePicker($event, activity, '$startTimeOpened')">
                                    ng-click="openDatePicker($event, activity, '$startTimeOpened')">
-                            <span class="fl">至</span>
+                            <span class="fl"  style="margin-left: 5px;">至</span>
                             <input type="text" ng-model="activity.endTime" readonly required
                             <input type="text" ng-model="activity.endTime" readonly required
                                    class="date-choose f1 form-control" placeholder="结束时间"
                                    class="date-choose f1 form-control" placeholder="结束时间"
                                    datepicker-popup="yyyy-MM-dd" is-open="activity.$endTimeOpened" min-date="activity.startTime"
                                    datepicker-popup="yyyy-MM-dd" is-open="activity.$endTimeOpened" min-date="activity.startTime"
@@ -605,7 +657,7 @@
                                    current-text="今天" clear-text="清除" close-text="关闭"
                                    current-text="今天" clear-text="清除" close-text="关闭"
                                    datepicker-options="{formatDayTitle: 'yyyy年M月', formatMonth: 'M月', showWeeks: false}"
                                    datepicker-options="{formatDayTitle: 'yyyy年M月', formatMonth: 'M月', showWeeks: false}"
                                    ng-click="openDatePicker($event, activity, '$receiveStartTimeOpened')">
                                    ng-click="openDatePicker($event, activity, '$receiveStartTimeOpened')">
-                            <span class="fl">至</span>
+                            <span class="fl" style="margin-left: 5px;">至</span>
                             <input type="text" ng-model="activity.receiveEndTime" readonly required
                             <input type="text" ng-model="activity.receiveEndTime" readonly required
                                    class="date-choose f1 form-control" placeholder="截止兑奖时间"
                                    class="date-choose f1 form-control" placeholder="截止兑奖时间"
                                    datepicker-popup="yyyy-MM-dd" is-open="activity.$receiveEndTimeOpened"
                                    datepicker-popup="yyyy-MM-dd" is-open="activity.$receiveEndTimeOpened"
@@ -655,7 +707,7 @@
                         <div class="prise fl">
                         <div class="prise fl">
                             <div class="prise-list" ng-repeat="award in awards">
                             <div class="prise-list" ng-repeat="award in awards">
                                 <div class="prise-detail">
                                 <div class="prise-detail">
-                                    <div class="award"> <input type="text" ng-model="award.awardName"></div>
+                                    <div class="award"> <input type="text" ng-model="award.awardName" class="activePrice"></div>
                                     <span>{{$index + 1}}</span>
                                     <span>{{$index + 1}}</span>
                                     <a ng-click="deleteAward($index)">删除</a>
                                     <a ng-click="deleteAward($index)">删除</a>
                                 </div>
                                 </div>
@@ -670,20 +722,20 @@
                                 <div class="award-detail clearfix">
                                 <div class="award-detail clearfix">
                                     <span class="fl">赠送方式</span>
                                     <span class="fl">赠送方式</span>
                                     <select name="" ng-model="award.way" class="form-control fl" ng-init="award.way = 1">
                                     <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>
                                     </select>
                                     <!--<a class="edit-template fl" data-target="#redact" data-toggle="modal">编辑模板</a>-->
                                     <!--<a class="edit-template fl" data-target="#redact" data-toggle="modal">编辑模板</a>-->
                                 </div>
                                 </div>
                                 <div class="uploadImg">
                                 <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>
-                                <div ng-if="null != award.img" style="max-height: 100px; max-width: 300px">
-                                    <img style="max-height: 100px; max-width: 100px" src="{{award.img}}">
+                                <div ng-if="null != award.img" class="showImage">
+                                    <img  src="{{award.img}}">
                                     <span class="hover-show">
                                     <span class="hover-show">
-                                        <em style="cursor: pointer;" class="delete" title="删除" ng-click="deletePrizeImg(award.img, $index)"><em class="fa fa-2x fa-trash"></em></em>
-                                        <a ng-click="showImg(award.img)" title="点击查看大图"><em class="fa fa-search"></em>查看</a>
+                                        <em style="cursor: pointer;" class="delete" title="删除" ng-click="deletePrizeImg(award.img, $index)"><em class="fa fa-2x fa-trash" style="font-size: 18px;"></em></em>
+                                        <a ng-click="showImg(award.img)" title="点击查看大图"><em class="fa fa-search"></em> 查看</a>
                                     </span>
                                     </span>
                                 </div>
                                 </div>
                             </div>
                             </div>
@@ -756,7 +808,7 @@
                 </div>
                 </div>
             </div>
             </div>
             <div class="modal-footer footer text-right">
             <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>
                 <a ng-click="cancelSelected()" data-dismiss="modal">取消</a>
             </div>
             </div>
         </div>
         </div>
@@ -772,24 +824,3 @@
         <img/>
         <img/>
     </div>
     </div>
 </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>

+ 7 - 7
donate-console/src/main/webapp/resources/view/project/project_launch_2.html

@@ -273,18 +273,18 @@
         position: absolute;
         position: absolute;
         bottom: 0;
         bottom: 0;
         width: 180px;
         width: 180px;
-        height: 0;
+        height: 180px;
         line-height: 32px;
         line-height: 32px;
         background: rgba(0,0,0,.5);
         background: rgba(0,0,0,.5);
-        /*display: none;*/
+        display: none;
     }
     }
     .detail .list-item div.fl .showImg:hover .hover-show{
     .detail .list-item div.fl .showImg:hover .hover-show{
-       /*display: block;*/
-        height: 180px;
-       transition: height .5s ease-out;
+       display: block;
+        /*height: 180px;*/
+       /*transition: height .5s ease-out;*/
     }
     }
     .detail .list-item div.fl .showImg .hover-show .fa:before{
     .detail .list-item div.fl .showImg .hover-show .fa:before{
-        font-size: 16px;
+        font-size: 18px;
         color: #fff;
         color: #fff;
     }
     }
     .detail .list-item div.fl .showImg .hover-show .fa-trash:before{
     .detail .list-item div.fl .showImg .hover-show .fa-trash:before{
@@ -300,7 +300,7 @@
         position: absolute;
         position: absolute;
         top: 74px;
         top: 74px;
         left: 70px;
         left: 70px;
-        font-size: 14px;
+        font-size: 16px;
         color: #fff;
         color: #fff;
     }
     }
     .detail .list-item div.fl .phone{
     .detail .list-item div.fl .phone{

+ 33 - 5
donate-service/src/main/resources/templates/index.ftl

@@ -616,6 +616,7 @@
             color: #fff;
             color: #fff;
             border: none;
             border: none;
             outline: none;
             outline: none;
+            cursor: not-allowed ;
         }
         }
        /* .pop .body button:hover{
        /* .pop .body button:hover{
             background: #be3b1b;
             background: #be3b1b;
@@ -857,10 +858,10 @@
                             <#--<span class="fl best">我的祝福:</span>
                             <#--<span class="fl best">我的祝福:</span>
                             <textarea name="" id="" cols="30" rows="10" class="fl form-control" maxlength="300"></textarea>-->
                             <textarea name="" id="" cols="30" rows="10" class="fl form-control" maxlength="300"></textarea>-->
                             <div class="fl agree clearfix">
                             <div class="fl agree clearfix">
-                                    <input type="checkbox" name="checkbox" class="fl"><span class="fl">同意并接受《<a href="/userAgreement" target="_blank" style="color: #5078cb;">优软一元捐用户协议</a>》</span></span>
+                                    <input type="checkbox" name="checkbox" class="fl agreeCheckbox"><span class="fl">同意并接受《<a href="/userAgreement" target="_blank" style="color: #5078cb;">优软一元捐用户协议</a>》</span></span>
                             </div>
                             </div>
 
 
-                                    <input type="button" class="payMoeny" onclick="pay(${project.id!''}, money, payWay)" value="确认捐款"/><#--</a>-->
+                                    <input type="button" disabled class="payMoeny" onclick="pay(${project.id!''}, money, payWay)" value="确认捐款"/><#--</a>-->
                                 </div>
                                 </div>
                             </div>
                             </div>
                         </div>
                         </div>
@@ -1000,6 +1001,9 @@
         $("#hover-background").css('display','none');
         $("#hover-background").css('display','none');
     })
     })
 
 
+//    var agreeFlag = false;
+//    var $moneyInput = $('.write input[type="text"]')
+
     //选择金额
     //选择金额
     var money = 1;
     var money = 1;
     $('.choose-money li').on('click', function (event) {
     $('.choose-money li').on('click', function (event) {
@@ -1009,6 +1013,8 @@
         }
         }
         $(event.target).addClass('active');
         $(event.target).addClass('active');
         money = $(event.target).text()
         money = $(event.target).text()
+        $('.write input[type="text"]').val("");
+        checkIsPay($(event.target).parent().parent().parent().parent())
     })
     })
 
 
     //选择支付方式
     //选择支付方式
@@ -1019,20 +1025,42 @@
             $(divs[i]).removeClass('active');
             $(divs[i]).removeClass('active');
         }
         }
         $(event.target).parent().addClass('active');
         $(event.target).parent().addClass('active');
-        payWay = $(event.target).text()
+        payWay = $(event.target).text();
+        checkIsPay($(event.target).parent().parent().parent());
     })
     })
     //    选择其他金额
     //    选择其他金额
     $('.write input[type="text"]').focus(function(){
     $('.write input[type="text"]').focus(function(){
         $(this).parent().prev().children('li').removeClass('active');
         $(this).parent().prev().children('li').removeClass('active');
 //        console.log($(this).parent().prev().children('li').removeClass('active'))
 //        console.log($(this).parent().prev().children('li').removeClass('active'))
+
+    })
+    $('.write input[type="text"]').blur(function(e) {
+        checkIsPay($(e.target).parent().parent().parent().parent());
+    })
+    $('.agreeCheckbox').change(function (e) {
+        checkIsPay($(e.target).parent().parent())
     })
     })
 
 
+    function checkIsPay(e) {
+//        debugger
+        var choosemoney=$(e).find('.choose-money> li.active').text() ;
+        var othermoney=$(e).find("input[name='othermoney']").val();
+        var isUserAgree=$(e).find("input[name='checkbox']").is(':checked');
+        if((choosemoney!="" || othermoney!="")&&isUserAgree){
+            $(e).find(".payMoeny").attr("disabled", false).css("background","#ef613b").css('cursor','pointer');
+        } else {
+            $(e).find(".payMoeny").attr("disabled", true).css("background","#a0a0a0").css('cursor','not-allowed');
+        }
+    }
+
     function ispay(e){
     function ispay(e){
         var choosemoney=$(e).parent().siblings().find('.choose-money> li.active').text() ;
         var choosemoney=$(e).parent().siblings().find('.choose-money> li.active').text() ;
         var othermoney=$(e).parent().siblings().find("input[name='othermoney']").val();
         var othermoney=$(e).parent().siblings().find("input[name='othermoney']").val();
         var isUserAgree=$(e).parent().siblings().find("input[name='checkbox']").is(':checked');
         var isUserAgree=$(e).parent().siblings().find("input[name='checkbox']").is(':checked');
-        if((choosemoney!=null || othermoney!=null)&&isUserAgree!=null){
-            $(e).parent().siblings().find(".payMoeny").attr("background","#e96d08");
+        if((choosemoney!=null || othermoney!=null)&&isUserAgree){
+            $(e).parent().siblings().find(".payMoeny").attr("disable", true);
+        } else {
+            $(e).parent().siblings().find(".payMoeny").attr("disable", false);
         }
         }
     }
     }
 
 

BIN
donate-service/src/main/webapp/resources/images/mobile/right.png


BIN
donate-service/src/main/webapp/resources/images/wx.png


BIN
donate-service/src/main/webapp/resources/images/zfb.png


+ 7 - 2
donate-service/src/main/webapp/resources/js/mobile/controllers/MobileProjectDetailCtrl.js

@@ -3,7 +3,6 @@ define([ 'app/app' ], function(app) {
     app.register.controller('MobileProjectDetailCtrl', ['$scope', '$rootScope', 'Project', '$stateParams', '$http', 'toaster', 'User',
     app.register.controller('MobileProjectDetailCtrl', ['$scope', '$rootScope', 'Project', '$stateParams', '$http', 'toaster', 'User',
         function ($scope, $rootScope, Project, $stateParams, $http, toaster, User) {
         function ($scope, $rootScope, Project, $stateParams, $http, toaster, User) {
         $rootScope.page = 'project';
         $rootScope.page = 'project';
-
         var id = $stateParams.id;
         var id = $stateParams.id;
         var imId = $stateParams.imId;
         var imId = $stateParams.imId;
         $scope.uuid = null;
         $scope.uuid = null;
@@ -67,7 +66,7 @@ define([ 'app/app' ], function(app) {
 
 
         $scope.donation = null;
         $scope.donation = null;
         $scope.checked = true;
         $scope.checked = true;
-
+        $scope.projectContentShow = false;
         $scope.reload = function() {
         $scope.reload = function() {
             if ($scope.projectParams.page() == 1)
             if ($scope.projectParams.page() == 1)
                 $scope.projectParams.reload();
                 $scope.projectParams.reload();
@@ -100,5 +99,11 @@ define([ 'app/app' ], function(app) {
         $scope.changeChecked = function() {
         $scope.changeChecked = function() {
             $scope.checked = !$scope.checked;
             $scope.checked = !$scope.checked;
         };
         };
+        /**
+         * 项目的全文展开或收起
+         */
+        $scope.selfProjectToggle = function (status) {
+            $scope.projectContentShow = status;
+        };
     }]);
     }]);
 });
 });

+ 190 - 30
donate-service/src/main/webapp/resources/view/mobile/mobile_project_detail.html

@@ -30,7 +30,7 @@
         width: .22rem;
         width: .22rem;
         height: .2rem;
         height: .2rem;
     }
     }
-    .footer a.attend{
+    .footer button.attend{
         float: right;
         float: right;
         display: inline-block;
         display: inline-block;
         /*width: 3.1rem;*/
         /*width: 3.1rem;*/
@@ -40,8 +40,10 @@
         color: #fff;
         color: #fff;
         text-align: center;
         text-align: center;
         background: #ef613b;
         background: #ef613b;
+        outline: none;
+        border: none;
     }
     }
-    .footer a.attend:active{
+    .footer button.attend:active{
         text-decoration: none;
         text-decoration: none;
     }
     }
     .project-detail {
     .project-detail {
@@ -175,6 +177,15 @@
         font-size: .24rem;
         font-size: .24rem;
         color: #999;
         color: #999;
     }
     }
+    .project-item .title h6 em{
+        float: right;
+        font-size: .24rem;
+        font-style: normal ;
+        color: #2da752;
+    }
+    .project-item .title h6 em.end{
+        color: #999;
+    }
     .project-item .intro{
     .project-item .intro{
         margin-bottom: .5rem;
         margin-bottom: .5rem;
         text-align: left;
         text-align: left;
@@ -196,10 +207,11 @@
         display: inherit;
         display: inherit;
         margin-bottom: .3rem;
         margin-bottom: .3rem;
         font-size: .24rem;
         font-size: .24rem;
+        font-weight: bold ;
         color: #969696;
         color: #969696;
     }
     }
     .project-item .intro-detail .intro-list p.money{
     .project-item .intro-detail .intro-list p.money{
-        margin-bottom: .3rem;
+        /*margin-bottom: .3rem;*/
         font-size: .36rem;
         font-size: .36rem;
         color: #ef613b;
         color: #ef613b;
     }
     }
@@ -215,6 +227,29 @@
         font-size: .24rem;
         font-size: .24rem;
         color: #969696;
         color: #969696;
     }
     }
+    .project-item .intro-detail .intro-list .pro{
+        font-size: .24rem;
+        color: #333;
+        font-weight: bold;
+    }
+    .project-item .intro-date{
+        width: 100%;
+        overflow: hidden;
+    }
+    .project-item .intro-date span{
+        float: left;
+        display: inline-block;
+        width: 1.5rem;
+        font-size: .24rem;
+        color: #969696;
+    }
+    .project-item .intro-date p{
+        float: left;
+        margin-left: .2rem;
+        width: 3rem;
+        font-size: .24rem;
+        color: #969696;
+    }
     .project-intro {
     .project-intro {
         padding: 0 .3rem;
         padding: 0 .3rem;
         margin-top: .2rem;
         margin-top: .2rem;
@@ -241,6 +276,10 @@
         position: relative;
         position: relative;
         padding-bottom: .5rem;
         padding-bottom: .5rem;
     }
     }
+    .project-intro .bottom .list-show .show-all{
+        /*max-height: 13rem;*/
+        /*overflow: hidden;*/
+    }
     .project-intro .bottom p{
     .project-intro .bottom p{
         line-height: .42rem;
         line-height: .42rem;
         font-size: .28rem;
         font-size: .28rem;
@@ -268,6 +307,10 @@
         -moz-box-shadow: 0 -15px 4px rgba(255, 255, 255, 0.6);
         -moz-box-shadow: 0 -15px 4px rgba(255, 255, 255, 0.6);
         -webkit-box-shadow: 0 -15px 4px rgba(255, 255, 255, 0.6);
         -webkit-box-shadow: 0 -15px 4px rgba(255, 255, 255, 0.6);
     }
     }
+    .btnUp{
+        bottom: 0;
+        box-shadow: none;
+    }
     .btnClick i{
     .btnClick i{
         margin-left: .05rem;
         margin-left: .05rem;
         font-size: .34rem;
         font-size: .34rem;
@@ -281,6 +324,7 @@
     }
     }
     .project-intro .bottom .distance {
     .project-intro .bottom .distance {
         padding-bottom: .5rem;
         padding-bottom: .5rem;
+        text-indent: 0;
     }
     }
     .project-intro .bottom .list02{
     .project-intro .bottom .list02{
         padding-bottom: .6rem;
         padding-bottom: .6rem;
@@ -290,12 +334,16 @@
     .project-intro .bottom .txt{
     .project-intro .bottom .txt{
         margin-bottom: .22rem;
         margin-bottom: .22rem;
         font-size: .28rem;
         font-size: .28rem;
-        color: #787878;
+        color: #666;
     }
     }
     .project-intro .bottom .txt:last-child{
     .project-intro .bottom .txt:last-child{
         margin-bottom: 0;
         margin-bottom: 0;
         padding-bottom: .55rem;
         padding-bottom: .55rem;
     }
     }
+    .project-intro .bottom .txt span{
+        font-size: .28rem;
+        color: #333;
+    }
     /*进度*/
     /*进度*/
     .project-intro .bottom .list-img01{
     .project-intro .bottom .list-img01{
         width: 6.9rem;
         width: 6.9rem;
@@ -521,6 +569,11 @@
         border: 1px solid #ef613b;
         border: 1px solid #ef613b;
         background: url('../static/images/mobile/right.png') no-repeat bottom right;
         background: url('../static/images/mobile/right.png') no-repeat bottom right;
     }
     }
+    .donation .body .mode .mode-list .item a img{
+        margin-right: 10px;
+        width: .45rem;
+        height: .35rem;
+    }
     .donation .body .agree{
     .donation .body .agree{
         margin: .58rem 0 .5rem;
         margin: .58rem 0 .5rem;
         text-align: left;
         text-align: left;
@@ -558,11 +611,48 @@
         outline: none;
         outline: none;
         border: none;
         border: none;
     }
     }
+    .donation .btn{
 
 
+    }
     .donation .btn button[disabled] {
     .donation .btn button[disabled] {
         background-color: #a0a0a0;
         background-color: #a0a0a0;
         cursor: not-allowed;
         cursor: not-allowed;
     }
     }
+    /*捐款完成返回弹框*/
+    .donationOver{
+        margin: 0 auto;
+        width: 4.4rem;
+        height: 2.3rem;
+        text-align: center;
+        border-radius: 10px;
+    }
+    .donationOver .header{
+        width: 100%;
+        height: .66rem;
+        text-align: center;
+        font-size: .3rem;
+        color: #000;
+        background: #dedede;
+    }
+    .donationOver .body{
+        width: 100%;
+        background: #fff;
+    }
+    .donationOver .body .pay-list{
+        height: .8rem;
+        line-height: .8rem;
+    }
+    .donationOver .body .pay-list:first-child{
+        border-bottom: 1px solid #dcdcdc;
+    }
+    .donationOver .body .pay-list .finish{
+        font-size: .28rem;
+        color: #ef613b;
+    }
+    .donationOver .body .pay-list .return{
+        font-size: .28rem;
+        color: #333333;
+    }
 </style>
 </style>
 <div class="nav">
 <div class="nav">
     <div class="container">
     <div class="container">
@@ -599,23 +689,29 @@
                 <div class="title">
                 <div class="title">
                     <h4>{{project.name}}</h4>
                     <h4>{{project.name}}</h4>
                     <h6>
                     <h6>
-                        <em>{{project.overdue}}</em>
+                        <em ng-class="{'end' : project.overdue == '已结束'}">{{project.overdue}}</em>
                     </h6>
                     </h6>
                 </div>
                 </div>
                 <p class="intro">{{project.proSummary}}</p>
                 <p class="intro">{{project.proSummary}}</p>
                 <div class="intro-detail">
                 <div class="intro-detail">
                     <div class="intro-list">
                     <div class="intro-list">
                         <span>筹款目标(元)</span>
                         <span>筹款目标(元)</span>
-                        <p class="money">{{project.target | number:2}}</p>
-                        <span>{{project.totalAmount / project.target * 100 | number : 2}}%</span>
+                        <p class="money">{{project.target || 0 | number:2}}</p>
                     </div>
                     </div>
                     <div class="intro-list">
                     <div class="intro-list">
-                        <span>参与人数</span>
-                        <p class="count">{{project.joinAmount}}</p>
+                        <span>已筹款(元)</span>
+                        <p class="money">{{project.totalAmount|| 0 | number:2}}</p>
+                        <span class="pro">({{project.totalAmount / project.target * 100 || 0 | number : 2}}%)</span>
                     </div>
                     </div>
                     <div class="intro-list">
                     <div class="intro-list">
+                        <span>参与人数</span>
+                        <p class="count">{{project.joinAmount || 0}}</p>
+                    </div>
+                </div>
+                <div class="intro-detail">
+                    <div class="intro-date">
                         <span>筹款截止日期</span>
                         <span>筹款截止日期</span>
-                        <p class="time">{{project.startTime | date:'yyyy-MM-dd'}}<br/>至&nbsp;{{project.endTime | date:'yyyy-MM-dd'}}</p>
+                        <p class="time">{{project.startTime | date:'yyyy-MM-dd'}}至&nbsp;{{project.endTime | date:'yyyy-MM-dd'}}</p>
                     </div>
                     </div>
                 </div>
                 </div>
             </div>
             </div>
@@ -625,11 +721,34 @@
                 </div>
                 </div>
                 <div class="bottom">
                 <div class="bottom">
                     <div class="list-show">
                     <div class="list-show">
-                        <div ng-bind-html="project.introduction">
+                        <!--<div ng-bind-html="project.introduction" class="show-all">-->
+                        <!--</div>-->
+                        <div class="show-all">
+                            <p class="section txt">刚刚定档12月22日全国公映的华语<a href="http://toutiao.eastday.com/search.html?kw=%E7%8A%AF%E7%BD%AA">犯罪</a>动作巨制《<a href="http://toutiao.eastday.com/search.html?kw=%E5%BF%83%E7%90%86%E7%BD%AA">心理罪</a>之城市之光》,今日曝光一组男主角<a href="http://toutiao.eastday.com/search.html?kw=%E6%96%B9%E6%9C%A8">方木</a>新剧照。“天才<a href="http://toutiao.eastday.com/search.html?kw=%E4%BE%A6%E6%8E%A2">侦探</a>”<a href="http://toutiao.eastday.com/search.html?kw=%E9%82%93%E8%B6%85">邓超</a>进入思考模式,角色精神煎熬的状态展露无遗,打开“脑内剧场”的神探仍然<a href="http://toutiao.eastday.com/search.html?kw=%E6%B0%94%E5%9C%BA">气场</a>全开,对此,邓超也曾表示“不要忘记他(方木)是一头雄狮,只是(暂时)没有把他唤醒”。</p>
+                            <p class="section txt">刚刚定档12月22日全国公映的华语<a href="http://toutiao.eastday.com/search.html?kw=%E7%8A%AF%E7%BD%AA">犯罪</a>动作巨制《<a href="http://toutiao.eastday.com/search.html?kw=%E5%BF%83%E7%90%86%E7%BD%AA">心理罪</a>之城市之光》,今日曝光一组男主角<a href="http://toutiao.eastday.com/search.html?kw=%E6%96%B9%E6%9C%A8">方木</a>新剧照。“天才<a href="http://toutiao.eastday.com/search.html?kw=%E4%BE%A6%E6%8E%A2">侦探</a>”<a href="http://toutiao.eastday.com/search.html?kw=%E9%82%93%E8%B6%85">邓超</a>进入思考模式,角色精神煎熬的状态展露无遗,打开“脑内剧场”的神探仍然<a href="http://toutiao.eastday.com/search.html?kw=%E6%B0%94%E5%9C%BA">气场</a>全开,对此,邓超也曾表示“不要忘记他(方木)是一头雄狮,只是(暂时)没有把他唤醒”。</p>
+                            <p class="section txt">刚刚定档12月22日全国公映的华语<a href="http://toutiao.eastday.com/search.html?kw=%E7%8A%AF%E7%BD%AA">犯罪</a>动作巨制《<a href="http://toutiao.eastday.com/search.html?kw=%E5%BF%83%E7%90%86%E7%BD%AA">心理罪</a>之城市之光》,今日曝光一组男主角<a href="http://toutiao.eastday.com/search.html?kw=%E6%96%B9%E6%9C%A8">方木</a>新剧照。“天才<a href="http://toutiao.eastday.com/search.html?kw=%E4%BE%A6%E6%8E%A2">侦探</a>”<a href="http://toutiao.eastday.com/search.html?kw=%E9%82%93%E8%B6%85">邓超</a>进入思考模式,角色精神煎熬的状态展露无遗,打开“脑内剧场”的神探仍然<a href="http://toutiao.eastday.com/search.html?kw=%E6%B0%94%E5%9C%BA">气场</a>全开,对此,邓超也曾表示“不要忘记他(方木)是一头雄狮,只是(暂时)没有把他唤醒”。</p>
+                            <p class="section txt">刚刚定档12月22日全国公映的华语<a href="http://toutiao.eastday.com/search.html?kw=%E7%8A%AF%E7%BD%AA">犯罪</a>动作巨制《<a href="http://toutiao.eastday.com/search.html?kw=%E5%BF%83%E7%90%86%E7%BD%AA">心理罪</a>之城市之光》,今日曝光一组男主角<a href="http://toutiao.eastday.com/search.html?kw=%E6%96%B9%E6%9C%A8">方木</a>新剧照。“天才<a href="http://toutiao.eastday.com/search.html?kw=%E4%BE%A6%E6%8E%A2">侦探</a>”<a href="http://toutiao.eastday.com/search.html?kw=%E9%82%93%E8%B6%85">邓超</a>进入思考模式,角色精神煎熬的状态展露无遗,打开“脑内剧场”的神探仍然<a href="http://toutiao.eastday.com/search.html?kw=%E6%B0%94%E5%9C%BA">气场</a>全开,对此,邓超也曾表示“不要忘记他(方木)是一头雄狮,只是(暂时)没有把他唤醒”。</p>
+                            <p class="section txt">刚刚定档12月22日全国公映的华语<a href="http://toutiao.eastday.com/search.html?kw=%E7%8A%AF%E7%BD%AA">犯罪</a>动作巨制《<a href="http://toutiao.eastday.com/search.html?kw=%E5%BF%83%E7%90%86%E7%BD%AA">心理罪</a>之城市之光》,今日曝光一组男主角<a href="http://toutiao.eastday.com/search.html?kw=%E6%96%B9%E6%9C%A8">方木</a>新剧照。“天才<a href="http://toutiao.eastday.com/search.html?kw=%E4%BE%A6%E6%8E%A2">侦探</a>”<a href="http://toutiao.eastday.com/search.html?kw=%E9%82%93%E8%B6%85">邓超</a>进入思考模式,角色精神煎熬的状态展露无遗,打开“脑内剧场”的神探仍然<a href="http://toutiao.eastday.com/search.html?kw=%E6%B0%94%E5%9C%BA">气场</a>全开,对此,邓超也曾表示“不要忘记他(方木)是一头雄狮,只是(暂时)没有把他唤醒”。</p>
+                            <p class="section txt">刚刚定档12月22日全国公映的华语<a href="http://toutiao.eastday.com/search.html?kw=%E7%8A%AF%E7%BD%AA">犯罪</a>动作巨制《<a href="http://toutiao.eastday.com/search.html?kw=%E5%BF%83%E7%90%86%E7%BD%AA">心理罪</a>之城市之光》,今日曝光一组男主角<a href="http://toutiao.eastday.com/search.html?kw=%E6%96%B9%E6%9C%A8">方木</a>新剧照。“天才<a href="http://toutiao.eastday.com/search.html?kw=%E4%BE%A6%E6%8E%A2">侦探</a>”<a href="http://toutiao.eastday.com/search.html?kw=%E9%82%93%E8%B6%85">邓超</a>进入思考模式,角色精神煎熬的状态展露无遗,打开“脑内剧场”的神探仍然<a href="http://toutiao.eastday.com/search.html?kw=%E6%B0%94%E5%9C%BA">气场</a>全开,对此,邓超也曾表示“不要忘记他(方木)是一头雄狮,只是(暂时)没有把他唤醒”。</p>
+                            <p class="section txt">刚刚定档12月22日全国公映的华语<a href="http://toutiao.eastday.com/search.html?kw=%E7%8A%AF%E7%BD%AA">犯罪</a>动作巨制《<a href="http://toutiao.eastday.com/search.html?kw=%E5%BF%83%E7%90%86%E7%BD%AA">心理罪</a>之城市之光》,今日曝光一组男主角<a href="http://toutiao.eastday.com/search.html?kw=%E6%96%B9%E6%9C%A8">方木</a>新剧照。“天才<a href="http://toutiao.eastday.com/search.html?kw=%E4%BE%A6%E6%8E%A2">侦探</a>”<a href="http://toutiao.eastday.com/search.html?kw=%E9%82%93%E8%B6%85">邓超</a>进入思考模式,角色精神煎熬的状态展露无遗,打开“脑内剧场”的神探仍然<a href="http://toutiao.eastday.com/search.html?kw=%E6%B0%94%E5%9C%BA">气场</a>全开,对此,邓超也曾表示“不要忘记他(方木)是一头雄狮,只是(暂时)没有把他唤醒”。</p>
+                            <p class="section txt">刚刚定档12月22日全国公映的华语<a href="http://toutiao.eastday.com/search.html?kw=%E7%8A%AF%E7%BD%AA">犯罪</a>动作巨制《<a href="http://toutiao.eastday.com/search.html?kw=%E5%BF%83%E7%90%86%E7%BD%AA">心理罪</a>之城市之光》,今日曝光一组男主角<a href="http://toutiao.eastday.com/search.html?kw=%E6%96%B9%E6%9C%A8">方木</a>新剧照。“天才<a href="http://toutiao.eastday.com/search.html?kw=%E4%BE%A6%E6%8E%A2">侦探</a>”<a href="http://toutiao.eastday.com/search.html?kw=%E9%82%93%E8%B6%85">邓超</a>进入思考模式,角色精神煎熬的状态展露无遗,打开“脑内剧场”的神探仍然<a href="http://toutiao.eastday.com/search.html?kw=%E6%B0%94%E5%9C%BA">气场</a>全开,对此,邓超也曾表示“不要忘记他(方木)是一头雄狮,只是(暂时)没有把他唤醒”。</p>
+                            <p class="section txt">刚刚定档12月22日全国公映的华语<a href="http://toutiao.eastday.com/search.html?kw=%E7%8A%AF%E7%BD%AA">犯罪</a>动作巨制《<a href="http://toutiao.eastday.com/search.html?kw=%E5%BF%83%E7%90%86%E7%BD%AA">心理罪</a>之城市之光》,今日曝光一组男主角<a href="http://toutiao.eastday.com/search.html?kw=%E6%96%B9%E6%9C%A8">方木</a>新剧照。“天才<a href="http://toutiao.eastday.com/search.html?kw=%E4%BE%A6%E6%8E%A2">侦探</a>”<a href="http://toutiao.eastday.com/search.html?kw=%E9%82%93%E8%B6%85">邓超</a>进入思考模式,角色精神煎熬的状态展露无遗,打开“脑内剧场”的神探仍然<a href="http://toutiao.eastday.com/search.html?kw=%E6%B0%94%E5%9C%BA">气场</a>全开,对此,邓超也曾表示“不要忘记他(方木)是一头雄狮,只是(暂时)没有把他唤醒”。</p>
+                            <p class="section txt">刚刚定档12月22日全国公映的华语<a href="http://toutiao.eastday.com/search.html?kw=%E7%8A%AF%E7%BD%AA">犯罪</a>动作巨制《<a href="http://toutiao.eastday.com/search.html?kw=%E5%BF%83%E7%90%86%E7%BD%AA">心理罪</a>之城市之光》,今日曝光一组男主角<a href="http://toutiao.eastday.com/search.html?kw=%E6%96%B9%E6%9C%A8">方木</a>新剧照。“天才<a href="http://toutiao.eastday.com/search.html?kw=%E4%BE%A6%E6%8E%A2">侦探</a>”<a href="http://toutiao.eastday.com/search.html?kw=%E9%82%93%E8%B6%85">邓超</a>进入思考模式,角色精神煎熬的状态展露无遗,打开“脑内剧场”的神探仍然<a href="http://toutiao.eastday.com/search.html?kw=%E6%B0%94%E5%9C%BA">气场</a>全开,对此,邓超也曾表示“不要忘记他(方木)是一头雄狮,只是(暂时)没有把他唤醒”。</p>
+                            <p class="section txt">刚刚定档12月22日全国公映的华语<a href="http://toutiao.eastday.com/search.html?kw=%E7%8A%AF%E7%BD%AA">犯罪</a>动作巨制《<a href="http://toutiao.eastday.com/search.html?kw=%E5%BF%83%E7%90%86%E7%BD%AA">心理罪</a>之城市之光》,今日曝光一组男主角<a href="http://toutiao.eastday.com/search.html?kw=%E6%96%B9%E6%9C%A8">方木</a>新剧照。“天才<a href="http://toutiao.eastday.com/search.html?kw=%E4%BE%A6%E6%8E%A2">侦探</a>”<a href="http://toutiao.eastday.com/search.html?kw=%E9%82%93%E8%B6%85">邓超</a>进入思考模式,角色精神煎熬的状态展露无遗,打开“脑内剧场”的神探仍然<a href="http://toutiao.eastday.com/search.html?kw=%E6%B0%94%E5%9C%BA">气场</a>全开,对此,邓超也曾表示“不要忘记他(方木)是一头雄狮,只是(暂时)没有把他唤醒”。</p>
+                            <p class="section txt">刚刚定档12月22日全国公映的华语<a href="http://toutiao.eastday.com/search.html?kw=%E7%8A%AF%E7%BD%AA">犯罪</a>动作巨制《<a href="http://toutiao.eastday.com/search.html?kw=%E5%BF%83%E7%90%86%E7%BD%AA">心理罪</a>之城市之光》,今日曝光一组男主角<a href="http://toutiao.eastday.com/search.html?kw=%E6%96%B9%E6%9C%A8">方木</a>新剧照。“天才<a href="http://toutiao.eastday.com/search.html?kw=%E4%BE%A6%E6%8E%A2">侦探</a>”<a href="http://toutiao.eastday.com/search.html?kw=%E9%82%93%E8%B6%85">邓超</a>进入思考模式,角色精神煎熬的状态展露无遗,打开“脑内剧场”的神探仍然<a href="http://toutiao.eastday.com/search.html?kw=%E6%B0%94%E5%9C%BA">气场</a>全开,对此,邓超也曾表示“不要忘记他(方木)是一头雄狮,只是(暂时)没有把他唤醒”。</p>
+                            <p class="section txt">刚刚定档12月22日全国公映的华语<a href="http://toutiao.eastday.com/search.html?kw=%E7%8A%AF%E7%BD%AA">犯罪</a>动作巨制《<a href="http://toutiao.eastday.com/search.html?kw=%E5%BF%83%E7%90%86%E7%BD%AA">心理罪</a>之城市之光》,今日曝光一组男主角<a href="http://toutiao.eastday.com/search.html?kw=%E6%96%B9%E6%9C%A8">方木</a>新剧照。“天才<a href="http://toutiao.eastday.com/search.html?kw=%E4%BE%A6%E6%8E%A2">侦探</a>”<a href="http://toutiao.eastday.com/search.html?kw=%E9%82%93%E8%B6%85">邓超</a>进入思考模式,角色精神煎熬的状态展露无遗,打开“脑内剧场”的神探仍然<a href="http://toutiao.eastday.com/search.html?kw=%E6%B0%94%E5%9C%BA">气场</a>全开,对此,邓超也曾表示“不要忘记他(方木)是一头雄狮,只是(暂时)没有把他唤醒”。</p>
+                            <p class="section txt">刚刚定档12月22日全国公映的华语<a href="http://toutiao.eastday.com/search.html?kw=%E7%8A%AF%E7%BD%AA">犯罪</a>动作巨制《<a href="http://toutiao.eastday.com/search.html?kw=%E5%BF%83%E7%90%86%E7%BD%AA">心理罪</a>之城市之光》,今日曝光一组男主角<a href="http://toutiao.eastday.com/search.html?kw=%E6%96%B9%E6%9C%A8">方木</a>新剧照。“天才<a href="http://toutiao.eastday.com/search.html?kw=%E4%BE%A6%E6%8E%A2">侦探</a>”<a href="http://toutiao.eastday.com/search.html?kw=%E9%82%93%E8%B6%85">邓超</a>进入思考模式,角色精神煎熬的状态展露无遗,打开“脑内剧场”的神探仍然<a href="http://toutiao.eastday.com/search.html?kw=%E6%B0%94%E5%9C%BA">气场</a>全开,对此,邓超也曾表示“不要忘记他(方木)是一头雄狮,只是(暂时)没有把他唤醒”。</p>
+                            <p class="section txt">刚刚定档12月22日全国公映的华语<a href="http://toutiao.eastday.com/search.html?kw=%E7%8A%AF%E7%BD%AA">犯罪</a>动作巨制《<a href="http://toutiao.eastday.com/search.html?kw=%E5%BF%83%E7%90%86%E7%BD%AA">心理罪</a>之城市之光》,今日曝光一组男主角<a href="http://toutiao.eastday.com/search.html?kw=%E6%96%B9%E6%9C%A8">方木</a>新剧照。“天才<a href="http://toutiao.eastday.com/search.html?kw=%E4%BE%A6%E6%8E%A2">侦探</a>”<a href="http://toutiao.eastday.com/search.html?kw=%E9%82%93%E8%B6%85">邓超</a>进入思考模式,角色精神煎熬的状态展露无遗,打开“脑内剧场”的神探仍然<a href="http://toutiao.eastday.com/search.html?kw=%E6%B0%94%E5%9C%BA">气场</a>全开,对此,邓超也曾表示“不要忘记他(方木)是一头雄狮,只是(暂时)没有把他唤醒”。</p>
+                            <p class="section txt">刚刚定档12月22日全国公映的华语<a href="http://toutiao.eastday.com/search.html?kw=%E7%8A%AF%E7%BD%AA">犯罪</a>动作巨制《<a href="http://toutiao.eastday.com/search.html?kw=%E5%BF%83%E7%90%86%E7%BD%AA">心理罪</a>之城市之光》,今日曝光一组男主角<a href="http://toutiao.eastday.com/search.html?kw=%E6%96%B9%E6%9C%A8">方木</a>新剧照。“天才<a href="http://toutiao.eastday.com/search.html?kw=%E4%BE%A6%E6%8E%A2">侦探</a>”<a href="http://toutiao.eastday.com/search.html?kw=%E9%82%93%E8%B6%85">邓超</a>进入思考模式,角色精神煎熬的状态展露无遗,打开“脑内剧场”的神探仍然<a href="http://toutiao.eastday.com/search.html?kw=%E6%B0%94%E5%9C%BA">气场</a>全开,对此,邓超也曾表示“不要忘记他(方木)是一头雄狮,只是(暂时)没有把他唤醒”。</p>
+                            <p class="section txt">刚刚定档12月22日全国公映的华语<a href="http://toutiao.eastday.com/search.html?kw=%E7%8A%AF%E7%BD%AA">犯罪</a>动作巨制《<a href="http://toutiao.eastday.com/search.html?kw=%E5%BF%83%E7%90%86%E7%BD%AA">心理罪</a>之城市之光》,今日曝光一组男主角<a href="http://toutiao.eastday.com/search.html?kw=%E6%96%B9%E6%9C%A8">方木</a>新剧照。“天才<a href="http://toutiao.eastday.com/search.html?kw=%E4%BE%A6%E6%8E%A2">侦探</a>”<a href="http://toutiao.eastday.com/search.html?kw=%E9%82%93%E8%B6%85">邓超</a>进入思考模式,角色精神煎熬的状态展露无遗,打开“脑内剧场”的神探仍然<a href="http://toutiao.eastday.com/search.html?kw=%E6%B0%94%E5%9C%BA">气场</a>全开,对此,邓超也曾表示“不要忘记他(方木)是一头雄狮,只是(暂时)没有把他唤醒”。</p>
+                            <p class="section txt">刚刚定档12月22日全国公映的华语<a href="http://toutiao.eastday.com/search.html?kw=%E7%8A%AF%E7%BD%AA">犯罪</a>动作巨制《<a href="http://toutiao.eastday.com/search.html?kw=%E5%BF%83%E7%90%86%E7%BD%AA">心理罪</a>之城市之光》,今日曝光一组男主角<a href="http://toutiao.eastday.com/search.html?kw=%E6%96%B9%E6%9C%A8">方木</a>新剧照。“天才<a href="http://toutiao.eastday.com/search.html?kw=%E4%BE%A6%E6%8E%A2">侦探</a>”<a href="http://toutiao.eastday.com/search.html?kw=%E9%82%93%E8%B6%85">邓超</a>进入思考模式,角色精神煎熬的状态展露无遗,打开“脑内剧场”的神探仍然<a href="http://toutiao.eastday.com/search.html?kw=%E6%B0%94%E5%9C%BA">气场</a>全开,对此,邓超也曾表示“不要忘记他(方木)是一头雄狮,只是(暂时)没有把他唤醒”。</p>
                         </div>
                         </div>
-                        <div class="btnClick">
+                        <div class="btnClick btnDown" style="display:none">
                             展开全文<i class="fa fa-angle-down"></i>
                             展开全文<i class="fa fa-angle-down"></i>
                         </div>
                         </div>
+                        <div class="btnClick btnUp" style="display:none">
+                            收起<i class="fa fa-angle-up"></i>
+                        </div>
                     </div>
                     </div>
                 </div>
                 </div>
             </div>
             </div>
@@ -658,9 +777,9 @@
                 </div>
                 </div>
                 <div class="bottom">
                 <div class="bottom">
                     <div class="txt">{{project.organization.name}}</div>
                     <div class="txt">{{project.organization.name}}</div>
-                    <div class="txt">项目联系人: {{project.personName}}</div>
+                    <div class="txt">项目联系人: <span>{{project.personName}}</span></div>
                     <div class="txt">
                     <div class="txt">
-                        联系电话 :{{project.personTel}}
+                        联系电话: <span>{{project.personTel}}</span>
                     </div>
                     </div>
                 </div>
                 </div>
             </div>
             </div>
@@ -708,7 +827,7 @@
                     <span>{{activity.name}}</span>
                     <span>{{activity.name}}</span>
                 </div>
                 </div>
                 <div class="bottom">
                 <div class="bottom">
-                    <div class="list-show">
+                    <div>
                         <p>
                         <p>
                             {{activity.summary}}
                             {{activity.summary}}
                         </p>
                         </p>
@@ -810,7 +929,7 @@
                 </div>
                 </div>
                 <div class="bottom">
                 <div class="bottom">
                     <div class="list-show">
                     <div class="list-show">
-                        <div>
+                        <div class="show-txt">
                             <p>{{project.introduction}}</p>
                             <p>{{project.introduction}}</p>
                         </div>
                         </div>
                         <div class="btnClick">
                         <div class="btnClick">
@@ -885,6 +1004,16 @@
                 </div>
                 </div>
             </form>
             </form>
         </div>
         </div>
+        <!--捐款完成弹出框-->
+        <div class="donationOver">
+            <div class="header">
+               请确认微信支付是否完成?
+            </div>
+            <div class="body">
+                <div class="pay-list"><a href="" class="finish">已完成支付</a></div>
+                <div class="pay-list"><a href="" class="return">支付遇到问题,重新支付</a></div>
+            </div>
+        </div>
     </div>
     </div>
 </div>
 </div>
 <script>
 <script>
@@ -896,22 +1025,53 @@
         $('.project-detail').eq($index).addClass('show').siblings().removeClass('show');
         $('.project-detail').eq($index).addClass('show').siblings().removeClass('show');
     });
     });
     //    展开全文
     //    展开全文
-    $('.btnClick').on('click',function(){
-        $(this).prev().toggle();
-        if($(this).prev().css('display') == 'block'){
-            $(this).html('合起 <i class="fa fa-angle-up"></i>')
-                .css('bottom','0')
-                .css('box-shadow','none');
-        } else{
-            $(this).html('展开全文 <i class="fa fa-angle-down"></i>')
-                .css('bottom','.14rem')
-                .css('box-shadow','0 -15px 4px rgba(255, 255, 255, 0.6)')
-                .css('-o-box-shadow','0 -15px 4px rgba(255, 255, 255, 0.6)')
-                .css('-webkit-box-shadow','0 -15px 4px rgba(255, 255, 255, 0.6)')
-                .css('-moz-box-shadow','0 -15px 4px rgba(255, 255, 255, 0.6)');
+    $(function() {
+//        debugger
+        var $showAll = $('.show-all');
+        var $height =$showAll.height();
+        if ($height > 700) {
+            $showAll.css({
+                height: 700,
+                overflow: 'hidden'
+            }).next().css('display','block');
+        } else {
+            $showAll.css({
+                height: 'auto',
+                overflow: 'visible'
+            }).next().css('display','none');
         }
         }
     });
     });
-
+    $('.btnDown').on('click',function(){
+//        debugger
+        $(this).css('display','none').prev().css({
+            height: 'auto',
+            overflow: 'visible'
+        })
+        $(this).next().css('display','block')
+    });
+    $('.btnUp').on('click',function(){
+//        debugger
+        $(this).css('display','none').prev().prev().css({
+            height: 700,
+            overflow: 'hidden'
+        })
+        $(this).prev().css('display','block')
+    });
+//    $('.btnClick').on('click',function(){
+//        $(this).prev().toggle();
+//        if($(this).prev().css('display') == 'block'){
+//            $(this).html('合起 <i class="fa fa-angle-up"></i>')
+//                .css('bottom','0')
+//                .css('box-shadow','none');
+//        } else{
+//            $(this).html('展开全文 <i class="fa fa-angle-down"></i>')
+//                .css('bottom','.14rem')
+//                .css('box-shadow','0 -15px 4px rgba(255, 255, 255, 0.6)')
+//                .css('-o-box-shadow','0 -15px 4px rgba(255, 255, 255, 0.6)')
+//                .css('-webkit-box-shadow','0 -15px 4px rgba(255, 255, 255, 0.6)')
+//                .css('-moz-box-shadow','0 -15px 4px rgba(255, 255, 255, 0.6)');
+//        }
+//    });
     $('.attend').on('click', function() {
     $('.attend').on('click', function() {
         $('.donation').toggle();
         $('.donation').toggle();
     });
     });

+ 173 - 0
donate-service/src/main/webapp/resources/view/mobile/userAgreement.html

@@ -0,0 +1,173 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <title>用户协议-一元捐</title>
+    <meta name="keywords" content="">
+    <meta name="description" content="">
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge">
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+    <meta name="renderer" content="webkit">
+    <!--css begin-->
+    <link rel="stylesheet" href="../static/lib/bootstrap/css/bootstrap.min.css">
+    <link rel="stylesheet" href="../static/lib/font-awesome/css/font-awesome.min.css">
+    <style>
+        *{padding:0;margin:0;box-sizing:border-box;font-family:"Microsoft Yahei"}
+        body{
+            background: #eff3f4;
+        }
+        .section .container{
+            margin: 0 auto;
+            width: 100%;
+        }
+        .section .container h3.protocol{
+            width: 100%;
+            height: .6rem;
+            line-height: .6rem;
+            font-size: .24rem;
+            color: #323232;
+            font-weight: bold;
+        }
+        .section .container .protocol-detail{
+            padding: .2rem;
+        }
+        .section .container .protocol-detail h5{
+            padding-bottom: .37rem;
+            font-size: .16rem;
+            font-weight: bold;
+            color: #505050;
+        }
+        .section .container .protocol-detail p{
+            margin-bottom: .3rem;
+            font-size: .14rem;
+            font-weight: bold;
+            color: #505050;
+        }
+        .section .container .protocol-detail div:last-child{
+            margin-bottom: .7rem;
+        }
+        .footer span{
+            font-size: .14rem;
+            color: #999;
+        }
+    </style>
+</head>
+<body>
+<div class="section">
+    <div class="container">
+        <h3 class="protocol">一元捐公益平台用户协议</h3>
+        <div class="protocol-detail">
+            <div class="item">
+                <h5>1.重要须知</h5>
+                <p>1.1.本协议是用户(您)使用优软一元捐公益平台 (以下简称“一元捐公益平台”)产品服务的法律协议。一元捐公益平台包括但不限于一元捐公益平台网、一元捐公益平台微信服务号、一元捐公益平台网移动版。一元捐公益平台上的用户均可通过一元捐公益平台发布公益活动或参与公益活动,相关公益活动的信息真实性由活动发起者负责。</p>
+                <p>1.2.一元捐公益平台在此特别提醒用户认真阅读本《一元捐用户协议》中的各个条款,并特别提醒用户欲使用一元捐服务,必须事先认真阅读本服务条款中各条款,包括免除或者限制一元捐公益平台责任的免责条款及对用户的权利限制条款。</p>
+                <p>1.3.这些条款可由一元捐公益平台随时更新,且毋须另行通知。本协议条款一旦发生变更, 一元捐公益平台将在网页上公布修改内容。修改后的协议条款一旦在网页上公布即有效,并代替原来的协议条款。您可随时登陆网站查阅最新版服务条款。</p>
+                <p>1.4.用户阅读后,请选择接受或不接受本服务条款(未成年人审阅时应得到法定监护人的陪同)。</p>
+                <p>1.5.如用户不同意本服务条款或一元捐公益平台随时对服务条款的修改,则用户无权使用并应主动取消一元捐公益平台提供的服务。</p>
+                <p>1.6.用户的使用行为将被视为用户对全部服务条款的完全接受,包括接受一元捐公益平台对服务条款随时所做的任何修改,并同意接受本《协议》各项条款的约束。</p>
+                <p style="margin-bottom: .2rem;">1.7.用户若有违反本条款规定,一元捐公益平台有权终止用户一元捐公益平台服务的使用资格并保留追究相关法律责任的权利。</p>
+                <h5>2.一元捐公益平台保护条款</h5>
+                <p style="margin-bottom: .2rem;">一元捐公益平台是由一元捐公益平台版权所有。一元捐公益平台所有相关内容(包括但不限于名称、程序编码、主题、声音效果、视觉效果、文字内容等)的著作权、专利权、商标、商业秘密及其它任何所有权或权利,均属一元捐公益平台所有。非经一元捐公益平台的同意,用户不得为了任何目的而擅自下载、修改、编辑、使用一元捐公益平台相关内容,否则应依法承担相应的法律责任。</p>
+                <h5>3.用户的基本义务</h5>
+                <p>3.1.用户应当遵守中华人民共和国法律,不得利用本一元捐公益平台进行(从事)危害国家安全、泄露国家秘密的行为,不得侵犯国家、社会、集体的和公民的合法权益,不得利用本一元捐公益平台制作、复制和传播下列信息: </p>
+                <p style="margin-left: .2rem;">(一)煽动抗拒、破坏宪法和法律、行政法规实施的;</p>
+                <p style="margin-left: .2rem;">(二)煽动颠覆国家政权,推翻社会主义制度的;</p>
+                <p style="margin-left: .2rem;">(三)煽动分裂国家、破坏国家统一的;</p>
+                <p style="margin-left: .2rem;">(四)煽动民族仇恨、民族歧视,破坏民族团结的;</p>
+                <p style="margin-left: .2rem;">(五)捏造或者歪曲事实,散布谣言,扰乱社会秩序的;</p>
+                <p style="margin-left: .2rem;">(六)宣扬封建迷信、淫秽、色情、赌博、暴力、凶杀、恐怖、教唆犯罪的;</p>
+                <p style="margin-left: .2rem;">(七)公然侮辱他人或者捏造事实诽谤他人的,或者进行其他恶意攻击的;</p>
+                <p style="margin-left: .2rem;">(八)损害国家机关信誉的;</p>
+                <p style="margin-left: .2rem;">(九)其他违反宪法和法律行政法规的。</p>
+                <p>3.2.用户在遵守法律及本协议的前提下可依本协议使用一元捐公益平台服务,用户无权实施包括但不限于下列行为:</p>
+                <p style="margin-left: .2rem;">3.2.1.删除一元捐公益平台及其他副本上所有关于版权的信息、内容;</p>
+                <p style="margin-left: .2rem;">3.2.2.对于一元捐公益平台上相关信息等,未经一元捐公益平台书面同意使用、复制、修改、链接、转载、汇编、发表、出版一元捐公益平台相关内容、建立镜像站点、擅自借助一元捐公益平台发展与之有关的衍生产品、作品等;</p>
+                <p style="margin-left: .2rem;">3.2.3.利用一元捐公益平台侵害他人合法权益的行为,包括但不限于发表、传送、传播、储存侵害他人知识产权、商业机密等合法权利的内容等;</p>
+                <p style="margin-left: .2rem;">3.2.4.进行任何危害计算机网络安全的行为,包括但不限于:使用未经许可的数据或进入未经许可的服务器帐户;未经允许进入公众计算机网络或者他人计算机系统并删除、修改、增加存储信息;未经许可,企图探查、扫描、测试本一元捐公益平台网站系统或网络的弱点或其它实施破坏网络安全的行为;企图干涉、破坏一元捐公益平台系统或网站的正常运行,故意传播恶意程序或病毒以及其他破坏干扰正常网络信息服务的行为;伪造TCP/IP数据包名称或部分名称等。</p>
+                <p>3.3.用户如果需要使用一元捐公益平台服务,必须满足以下条件:</p>
+                <p style="margin-left: .2rem;">3.3.1.用户需拥有或有权使用登陆网站的终端设备;</p>
+                <p style="margin-left: .2rem;">3.3.2.能够连接上互联网,并自行负担上网所需的各项费用;除了在本协议内所提及的款项之外,用户必须自行负担全部所需的硬件费用、软件费用、网络服务费用以及相关的税收。</p>
+                <h5>4.用户须知</h5>
+                <p>4.1.用户完成一元捐公益平台注册程序并自行设置密码后,将获得一元捐公益平台使用帐号,用户应自行承担帐号及帐号密码的安全保护责任。用户对其帐号下(包括但不限于UU号,UU号的捆绑手机号码等)所进行的任何活动负完全的责任,一元捐公益平台无法对非法或未经用户授权使用您帐号及密码的行为作出甄别,因此一元捐公益平台不承担任何责任。在此,用户同意并承诺做到∶</p>
+                <p style="margin-left: .2rem;">1)当用户的密码或帐号遭到未获授权的使用,或者发生其他任何安全问题时,用户会立即有效通知到一元捐公益平台;</p>
+                <p style="margin-left: .2rem;">2)且当用户每次上网或使用其他服务完毕后,会将有关帐号等安全退出。</p>
+                <p>4.2.用户同意于注册时提供完整、详尽、真实的个人资料或法人注册资料,若所提供的资料于日后有变更的,用户应当及时在一元捐公益平台中进行更新。若用户所提供的资料与事实不符或所提供的资料业已变更而未更新或有任何误导之嫌疑,导致一元捐公益平台无法提供服务的,一元捐公益平台及一元捐公益平台不因此承担任何责任。</p>
+                <p>4.3.一元捐公益平台产品同大多数因特网产品一样,易受到各种安全问题的困扰,此类包括但不限于: </p>
+                <p style="margin-left: .2rem;">4.3.1.用户透露详细个人资料,被不法分子利用,造成现实生活中的骚扰;</p>
+                <p style="margin-left: .2rem;">4.3.2.用户被哄骗、被破译密码;</p>
+                <p style="margin-left: .2rem;">4.3.3.用户下载安装的其它软件中含有“特洛伊木马”等病毒,威胁到个人计算机上信息和数据的安全,继而威胁对一元捐公益平台的使用。用户须明白并自行承担以上风险,一元捐公益平台及一元捐公益平台对此不承担任何责任。
+                </p>
+                <p style="margin-left: .2rem;">4.3.1.用户透露详细个人资料,被不法分子利用,造成现实生活中的骚扰;</p>
+                <p>4.4.通过任何非经一元捐公益平台或一元捐公益平台授权开发并正式发布的其它网页或软件访问一元捐公益平台,将可能导致不可预知的风险,由此产生的一切法律责任与纠纷一概与一元捐公益平台及一元捐公益平台无关。用户不得轻易访问此类网页或下载、安装、使用此类软件,否则,一元捐公益平台及一元捐公益平台有权采取惩罚性措施,包括但不限于中/终止用户一元捐公益平台帐号使用资格、中/终止用户一元捐公益平台使用资格。</p>
+                <p>4.5.一元捐公益平台在此郑重提请用户注意,任何经由本一元捐公益平台服务上传、下载、张贴、发送的即时信息、电子邮件或任何其他方式传送的资讯、资料、文字、软件、音乐、音讯、照片、图形、视讯、信息、用户的登记资料或其他资料等(以下简称“内容”),无论系公开还是私下传送,均由内容提供者承担责任。一元捐公益平台无法完全监控经由本一元捐公益平台服务传送之内容,也无法对用户的使用行为进行全面控制,因此不保证内容的合法性、正确性、完整性、真实性或品质等;用户已预知使用本服务时,可能会接触到令人不快、不适当或令人厌恶之内容,并同意将自行加以判断并承担所有风险,而不依赖于一元捐公益平台或一元捐公益平台。但在任何情况下,一元捐公益平台有权依法停止任何前述内容的服务并采取相应行动,包括但不限于暂停用户使用本服务的全部或部分,保存有关记录,并向有关机关报告。但一元捐公益平台及一元捐公益平台有权(但无义务)依其自行之考量,拒绝和删除可经由本服务提供之违反本条款的或其他引起一元捐或其他用户反感的任何内容。若内容提供者在本服务中提供的信息内容存在侵犯第三人著作权的可能,一元捐公益平台将遵循“版权保护投诉指引”处理该信息内容。</p>
+                <p>4.6.个人用户须知</p>
+                <p style="margin-left: .2rem;">4.6.1. 个人用户是指:</p>
+                <p style="margin-left: .4rem;">4.6.1.1. 年满十八周岁,并具有民事权利能力和民事行为能力的自然人;</p>
+                <p style="margin-left: .4rem;">4.6.1.2. 未满十八周岁,但监护人(包括但不仅限于父母)同意的自然人;</p>
+                <p style="margin-left: .4rem;">4.6.1.3. 无民事行为能力人、限制民事行为能力人不当注册为本网站用户或超过其民事权利或行为能力范围从事公益的,其与本网站之间的服务条款自始无效,本网站一经发现,有权立即注销该用户,并追究其使用本网站“服务”的一切法律责任。</p>
+                <p style="margin-left: .2rem;">4.6.2.个人用户可以在一元捐公益平台注册使用帐号,可以凭自己的判断参与通过一元捐公益平台发布的公益活动;个人用户在注册时应提供真实的资料,包括但不限于姓名、身份证等,并保证如联系电话、联系地址等内容的有效性及安全性,同时有义务在相关资料发生变化时及时更新有关注册资料。</p>
+                <p style="margin-left: .2rem;">4.6.3 个人用户可以通过一元捐公益平台发起公益项目,有责任保证在一元捐公益平台上发布的案例均为真实,并且所募金额须在合理的范围之内,且须有公募资格的基金会对项目进行核实与认领后,才能通过一元捐公益平台进行筹款。同时个人用户有责任协助公募基金会发布公告、公示或其他途径告知捐款人款项的使用详情。</p>
+                <p style="margin-left: .2rem;">4.6.4.个人用户通过一元捐公益平台参与活动,所发生的一切纠纷及损失与一元捐公益平台及一元捐公益平台无关,一元捐公益平台或一元捐公益平台不会对相关的纠纷或损失承担任何责任。个人用户参与活动时应当多方面主动了解活动组织者或组织单位的资质及信用信息,自行鉴别信息的真伪,并为自己的行为负责。</p>
+                <p style="margin-left: .2rem;">4.6.5.个人用户有权利知道组织活动责任方及活动的信息。个人用户有权利从组织活动责任方处得知自己的捐款去向。</p>
+                <p style="margin-left: .2rem;">4.6.6.个人用户在一元捐公益平台上参与活动过程中与组织方发生纠纷,可以请求一元捐公益平台从中予以协调。个人用户若发现其他用户或组织方有违法或违反本协议的行为,可以向一元捐公益平台进行反映要求处理。但一元捐公益平台及一元捐公益平台并不对处理结果做任何保证或承诺。</p>
+                <p style="margin-left: .2rem;">4.6.7.个人用户参与活动的过程中应遵循诚实信用的原则、遵守社会公德及公序良俗原则,不得扰乱活动的正常进行,不进行与活动无关的行为或进行其他任何违法行为。</p>
+                <p style="margin-left: .2rem;">4.6.8.个人用户不得在一元捐公益平台上恶意评价任何组织方和其他用户,或采取不正当手段提高自身的信用度或降低任何组织方和其他用户的信用度。</p>
+                <p style="margin-left: .2rem;">4.6.9.个人用户不得在一元捐公益平台上发布各类违法或违规信息。</p>
+                <p style="margin-left: .2rem;">4.6.10.个人用户使用一元捐公益平台时实施的所有行为均应遵守国家法律、法规和一元捐公益平台的相关规定以及各种社会公共利益或公共道德。如有违反导致任何法律后果的发生,个人用户将以自己的名义独立承担所有相应的法律责任。</p>
+                <p style="margin-left: .2rem;">4.6.11.个人用户不得对一元捐公益平台上任何信息做商业性利用,包括但不限于在未经一元捐公益平台事先书面批准的情况下,以复制、传播等方式使用在一元捐公益平台上展示的任何资料。</p>
+                <p>4.7.组织用户须知</p>
+                <p style="margin-left: .2rem;">4.7.1.本协议中的“组织用户”是指:</p>
+                <p style="margin-left: .4rem;">4.7.1.1.根据中国法律或设立地法律、法规和/或规章成立并合法存在的慈善组织、公益基金会、社团组织、公司、企事业单位、和其他组织(下称“组织用户”);</p>
+                <p style="margin-left: .4rem;">4.7.1.2.无经营或特定经营资格的组织不当注册为本网站用户或超过其民事权利或行为能力范围从事公益的,其与本网站之间的服务条款自始无效,本网站一经发现,有权立即注销该用户,并追究其使用本网站“服务”的一切法律责任。</p>
+                <p style="margin-left: .2rem;">4.7.2.“组织用户”中的有公募资格的基金会特别要求条款:</p>
+                <p style="margin-left: .4rem;">4.7.2.1.有责任保证在一元捐公益平台上发布的案例均为真实,并且所募金额必须在合理范围之内;</p>
+                <p style="margin-left: .4rem;">4.7.2.2.有责任通过发布公告公示或其他途径告知捐款人款项的使用详情;</p>
+                <p style="margin-left: .4rem;">4.7.2.3.在捐款金额中,收取项目管理费用的,应当告知捐款人,并且应当按照国家相关法律法规的规定收取。</p>
+                <p style="margin-left: .2rem;">4.7.3. 组织用户可以在一元捐公益平台注册使用帐号;组织用户在注册时应提供组织的真实资料,并保证如联系电话、联系地址等内容的有效性及安全性,同时在相关资料发生变化时及时更新有关注册资料,以便活动能够顺利进行。</p>
+                <p style="margin-left: .2rem;">4.7.4. 组织用户可以在一元捐公益平台发布合法的公益活动;没有公募资格的组织用户发起筹款项目时,需要有公募资格的基金会对项目进行审核与认领后,才能通过一元捐公益平台进行筹款;同时组织用户有责任协助公募基金会,发布公告、公示或其他途径告知捐款人款项的使用详情。</p>
+                <p style="margin-left: .2rem;">4.7.5.组织用户可以查询参与活动的个人用户的信息,但一元捐公益平台及一元捐公益平台并不保证信息的真实性,组织用户应通过其他有效途径进行验证。</p>
+                <p style="margin-left: .2rem;">4.7.6.组织用户在一元捐公益平台上组织活动过程中与其他用户发生纠纷,可以请求一元捐公益平台从中予以协调;组织用户若发现其他组织方或用户有违法或违反本协议的行为,可以向一元捐公益平台进行反映要求处理;但一元捐公益平台及一元捐公益平台并不对处理结果做任何保证或承诺。</p>
+                <p style="margin-left: .2rem;">4.7.7.组织用户在组织或参与活动的过程中应遵循诚实信用的原则,遵守社会公德及公序良俗原则,不得随意变更或取消活动,如有特殊情况需要变更活动应有效通知用户并协商进行,不得利用活动进行任何侵害他人或违法的行为。</p>
+                <p style="margin-left: .2rem;">4.7.8.组织用户不得在一元捐公益平台上恶意评价其他组织方和用户,或采取不正当手段提高自身的信用度或降低其他组织方和用户的信用度。</p>
+                <p style="margin-left: .2rem;">4.7.9.组织用户不得在一元捐公益平台上发布各类违法或违规信息。</p>
+                <p style="margin-left: .2rem;">4.7.10.组织用户使用一元捐公益平台时实施的所有行为均应遵守国家法律、法规和一元捐公益平台的相关规定以及各种社会公共利益或公共道德。如有违反导致任何法律后果的发生,组织用户将以自己的名义独立承担所有相应的法律责任。</p>
+                <p style="margin-left: .2rem;"> 4.7.11.组织用户不得对一元捐公益平台上任何信息做商业性利用,包括但不限于在未经一元捐公益平台事先书面批准的情况下,以复制、传播等方式使用在一元捐公益平台上展示的任何资料。</p>
+                <h5>5.一元捐公益平台服务声明及免责事由</h5>
+                <p style="margin-left: .2rem;">5.1.用户使用一元捐公益平台由用户自己承担风险,在适用法律允许的最大范围内,一元捐公益平台在任何情况下不就因使用或不能使用本产品所发生的特殊的、意外的、非直接或间接的损失承担赔偿责任。即使已事先被告知该损害发生的可能性。</p>
+                <p style="margin-left: .2rem;">5.2.用户须明白,使用一元捐公益平台服务产品涉及到互联网服务,可能会受到各个环节不稳定因素的影响。因此服务存在不可抗力、计算机病毒或黑客攻击、系统不稳定、用户所在位置、用户关机以及其他任何技术、互联网络、通信线路原因等造成的服务中断或不能满足用户要求的风险。用户须承担以上风险,一元捐公益平台及一元捐公益平台不作任何担保。对因此导致用户不能发送和接受阅读消息、或接发错消息,一元捐公益平台及一元捐公益平台不承担任何责任。</p>
+                <p style="margin-left: .2rem;">5.3.如一元捐公益平台的系统发生故障影响到本服务的正常运行,一元捐公益平台承诺在第一时间内与相关单位配合,及时处理进行修复。但用户因此而产生的经济损失,一元捐公益平台、一元捐公益平台及合作公司不承担责任。此外,一元捐公益平台及一元捐公益平台保留不经事先通知为维修保养、升级或其他目的暂停本服务任何部分的权利。</p>
+                <p style="margin-left: .2rem;">5.4.用户须明白,在使用本服务产品存在有来自任何他人的包括威胁性的、诽谤性的、令人反感的或非法的内容或行为或对他人权利的侵犯(包括知识产权)的匿名或冒名的信息的风险,用户须承担以上风险,一元捐公益平台、一元捐公益平台及合作公司对服务不作任何类型的担保,不论是明确的或隐含的,包括所有有关信息真实性、适商性、适于某一特定用途、所有权和非侵权性的默示担保和条件,对因此导致任何因用户不正当或非法使用服务产生的直接、间接、偶然、特殊及后续的损害,不承担任何责任。</p>
+                <p style="margin-left: .2rem;">5.5.本协议定义的信息内容包括:文字、软件、声音、相片、录像、图表;在广告中全部内容;一元捐公益平台为用户提供的信息受版权、商标权、和其它知识产权和所有权法律的保护。所以,用户只能在一元捐公益平台及相关权利人的授权下才能使用这些内容,而不能擅自复制、修改、编撰这些内容、或创造与内容有关的衍生产品。因用户擅自复制、修改、编撰等行为导致的任何形式的责任及索赔均由用户自行承担相应的责任。</p>
+                <p style="margin-left: .2rem;">5.6.使用本服务必须遵守国家有关法律和政策等,维护国家利益,保护国家安全,并遵守本条款,对于用户违法或违反本条款的使用(包括但不限于言论发表、传送等)而引起的一切责任,由用户负全部责任,概与一元捐公益平台、一元捐公益平台及合作单位无关,导致一元捐公益平台、一元捐公益平台及合作单位损失的,一元捐公益平台、一元捐公益平台及合作单位有权要求赔偿,并有权立即停止向其提供服务,保留相关记录,并保留配合司法机关追究法律责任的权利。</p>
+                <p style="margin-left: .2rem;">5.7.尊重用户隐私是一元捐公益平台的一贯制度,一元捐公益平台将会采取合理的措施保护用户的资料信息,除法律或政府要求或用户同意等原因外,一元捐公益平台未经用户同意不向除合作单位以外的第三方公开、透露用户信息。但是用户在注册时选择或同意公开,或用户与一元捐公益平台及合作单位之间就用户资料公开或使用另有约定的除外,同时用户应自行承担因此可能产生的任何风险,一元捐公益平台对此不予负责。</p>
+                <p style="margin-left: .2rem;">5.8.用户对自己的各类财产帐户、银行卡、信用卡及对应密码等重要资料信息负有保管责任,请用户注意勿在使用一元捐公益平台上透露自己的各类财产帐户、银行卡、信用卡及对应密码等重要资料,否则由此带来的任何损失由用户自行承担。</p>
+                <p style="margin-left: .2rem;">5.9.一元捐公益平台属于群体类平台产品,参与一元捐公益平台上活动的个人之间,或个人与发起活动各个组织之间,或组织与组织之间引发的任何纠纷一元捐公益平台将不负责任。</p>
+                <p style="margin-left: .2rem;">5.10.由于第三方人为或非人为因素例如网络中断等,导致一元捐公益平台的部分或全部用户无法正常使用其功能的,一元捐公益平台及一元捐公益平台将不予补偿由此带来的经济损失。 </p>
+                <p style="margin-left: .2rem;">5.11.用户应规范、合法地使用一元捐公益平台,如用户有在公共环境下捣乱、骚扰、欺骗其他用户等行为或者实施其他违反本协议的行为,一经发现,一元捐公益平台及一元捐公益平台有权停止其在一元捐公益平台的任何活动及终止其使用帐号等。</p>
+                <p style="margin-left: .2rem;">5.12.用户不得利用一元捐公益平台进行违反国家法律的活动。如有发现,一元捐公益平台会配合公安部门全力协助调查工作。</p>
+                <h5>6.其他约定</h5>
+                <p style="margin-left: .2rem;">6.1.一元捐公益平台及一元捐公益平台保留随时地、不事先通知地、不需要任何理由地、单方面地修订本协议的权利。本协议一经修订,一元捐公益平台将会用修订后的协议版本完全替代修订前的协议版本,并通过原有方式向所有用户公布。您应当及时关注和了解本协议的修订情况,如果您不同意修订后协议版本,请您立即停止对一元捐公益平台实施任何使用行为,否则即视同您同意并完全接受修订后的协议版本。</p>
+                <p style="margin-left: .2rem;">6.2.一元捐公益平台将本协议内置于一元捐公益平台用户注册页面当中,用户在注册的过程中即可查阅、了解本协议,亦可以通过点击“我同意”或“我接受”表示您完全同意并接受本协议之约束,或者点击“我不同意”或“我不接受”表示您不同意本协议。</p>
+                <p style="margin-left: .2rem;">6.3.除了本协议第6.2条所述的方式之外,您还可以通过浏览一元捐公益平台网站上来查阅、了解本协议。</p>
+                <p style="margin-left: .2rem;">6.4.一元捐公益平台将会不定期地对本协议进行补充、修订。补充、修订后的协议将会在一元捐公益平台网站上对用户公布,该补充、修订一旦公布即成为本协议不可分割的组成部分,与之具有同等的法律效力。该等补充条款与本协议有矛盾或者冲突的地方,适用该补充、修改条款,没有涉及的内容,仍适用本《协议》的有关约定。</p>
+                <p style="margin-left: .2rem;">6.5.一元捐公益平台服务内容或提供给用户的信息内容中如采用了除一元捐公益平台及其合作单位之外的第三方知识产权,而该等第三方对用户使用该知识产权有要求的,则第三方的要求将会以补充条款的形式向用户公布,用户亦应当一并遵守。</p>
+                <p style="margin-left: .2rem;">6.6.本协议各条款是可分的,所约定的任何条款如果部分或者全部无效,不影响该条款其他部分及本协议其他条款的法律效力。</p>
+                <p style="margin-left: .2rem;">6.7.本协议各条款的标题只是为了方便用户阅读而起到提示、醒目的作用,对本协议的解释及适用没有任何指引作用。 </p>
+                <p style="margin-left: .2rem;">6.8.用户若与一元捐公益平台或一元捐公益平台因本协议或其补充条款所涉及的有关事宜发生争议或者纠纷,双方应当友好协商解决;协商不成的,用户完全同意将争议提交本协议签订地有管辖权的人民法院通过诉讼方式解决。</p>
+                <p style="margin-left: .2rem;">6.9.本《协议》签订地为深圳市南山区。本《协议》及其补充条款均受中华人民共和国法律、法规管辖,一元捐公益平台保留最终解释权。一元捐公益平台拥有对以上各项条款内容的解释权及修改权。</p>
+            </div>
+            <div class="footer">
+                <span>一元捐公益平台</span>
+                <span>二〇一七年十月</span>
+            </div>
+        </div>
+    </div>
+</div>
+<!--js begin-->
+<script src="../static/lib/jquery/jquery.min.js"></script>
+<script src="../static/lib/bootstrap/js/bootstrap.min.js"></script>
+<script>
+    $('html').css('fontSize',$(window).width()/750 * 100);
+</script>
+</body>
+</html>