dongbw 8 роки тому
батько
коміт
ea54fb6e6e

+ 51 - 0
donate-console/src/main/java/com/uas/console/donate/Impl/ProjectServiceImpl.java

@@ -5,13 +5,22 @@ import com.uas.console.donate.dao.OrgDao;
 import com.uas.console.donate.dao.ProjectDao;
 import com.uas.console.donate.model.Org;
 import com.uas.console.donate.model.Project;
+import com.uas.console.donate.model.SearchFilter;
 import com.uas.console.donate.service.ProjectService;
+import com.uas.platform.core.model.PageInfo;
+import com.uas.platform.core.persistence.criteria.PredicateUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.domain.Page;
 import org.springframework.data.domain.Pageable;
+import org.springframework.data.jpa.domain.Specification;
 import org.springframework.stereotype.Service;
 import org.springframework.ui.ModelMap;
+import org.springframework.util.StringUtils;
 
+import javax.persistence.criteria.CriteriaBuilder;
+import javax.persistence.criteria.CriteriaQuery;
+import javax.persistence.criteria.Predicate;
+import javax.persistence.criteria.Root;
 import java.util.List;
 
 @Service
@@ -139,4 +148,46 @@ public class ProjectServiceImpl implements ProjectService {
        }
     }
 
+    @Override
+    public Page<Project> getAllProjects(final PageInfo pageInfo, final SearchFilter filter) {
+        return projectDao.findAll(new Specification<Project>() {
+            @Override
+            public Predicate toPredicate(Root<Project> root, CriteriaQuery<?> query, CriteriaBuilder cb) {
+                if (null != filter) {
+                    String keyword = filter.getKeyword();
+                    if (StringUtils.hasText(keyword)) {
+                        pageInfo.expression(PredicateUtils.or(PredicateUtils.like("name", keyword, false),
+                                PredicateUtils.like("code", keyword, false),
+                                PredicateUtils.like("proSummary", keyword, false),
+                                PredicateUtils.like("orgName", keyword, false)));
+                    }
+                    // 默认全部分类设置值为0
+                    if (null != filter.getArea() && 0 != filter.getArea()) {
+                        pageInfo.expression(PredicateUtils.eq("area", filter.getArea(), false));
+                    }
+                }
+                query.where(pageInfo.getPredicates(root, query, cb));
+                return null;
+            }
+        }, pageInfo);
+    }
+
+    @Override
+    public Page<Project> getAuditedProjects(PageInfo pageInfo, SearchFilter filter) {
+        pageInfo.expression(PredicateUtils.eq("status", 1, false));
+        return getAllProjects(pageInfo, filter);
+    }
+
+    @Override
+    public Page<Project> getUnauditedProjects(PageInfo pageInfo, SearchFilter filter) {
+        pageInfo.expression(PredicateUtils.eq("status", 0, false));
+        return getAllProjects(pageInfo, filter);
+    }
+
+    @Override
+    public Page<Project> getDisagreedProjects(PageInfo pageInfo, SearchFilter filter) {
+        pageInfo.expression(PredicateUtils.eq("status", 2, false));
+        return getAllProjects(pageInfo, filter);
+    }
+
 }

+ 48 - 4
donate-console/src/main/java/com/uas/console/donate/controller/ProjectController.java

@@ -4,16 +4,18 @@ import com.alibaba.fastjson.JSONObject;
 import com.uas.console.donate.model.Org;
 import com.uas.console.donate.model.Project;
 import com.uas.console.donate.model.ProjectRecode;
+import com.uas.console.donate.model.SearchFilter;
 import com.uas.console.donate.service.ProjectRecodeService;
 import com.uas.console.donate.service.ProjectService;
 import com.uas.dfs.service.FileClient;
+import com.uas.platform.core.model.PageInfo;
+import com.uas.platform.core.model.PageParams;
+import com.uas.platform.core.web.bind.RequestState;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.Page;
 import org.springframework.stereotype.Controller;
 import org.springframework.ui.ModelMap;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 
 import javax.servlet.http.HttpServletRequest;
@@ -213,4 +215,46 @@ public class ProjectController {
     public List<Project> search(String search){
         return projectService.search(search);
     }
+
+    /**
+     * 获取项目列表 (已审核)
+     * @return
+     */
+    @RequestMapping(params = RequestState.DONE, method = RequestMethod.GET)
+    @ResponseBody
+    public Page<Project> getAuditedProjects(PageParams params, String searchFilter){
+        PageInfo pageInfo = new PageInfo(params);
+        SearchFilter filter = JSONObject.parseObject(searchFilter, SearchFilter.class);
+        return projectService.getAuditedProjects(pageInfo, filter);
+    }
+
+    /**
+     * 获取项目列表 (未审核)
+     * @return
+     */
+    @RequestMapping(params = RequestState.TODO, method = RequestMethod.GET)
+    @ResponseBody
+    public Page<Project> getUnauditedProjects(PageParams params, String searchFilter){
+        PageInfo pageInfo = new PageInfo(params);
+        SearchFilter filter = JSONObject.parseObject(searchFilter, SearchFilter.class);
+        return projectService.getUnauditedProjects(pageInfo, filter);
+    }
+
+    /**
+     * 获取项目列表 (未通过)
+     * @return
+     */
+    @RequestMapping(params = RequestState.REFUSED, method = RequestMethod.GET)
+    @ResponseBody
+    public Page<Project> getDisagreedProjects(PageParams params, String searchFilter){
+        PageInfo pageInfo = new PageInfo(params);
+        SearchFilter filter = JSONObject.parseObject(searchFilter, SearchFilter.class);
+        return projectService.getDisagreedProjects(pageInfo, filter);
+    }
+
+    @RequestMapping(value = "/detail/{id}", method = RequestMethod.GET)
+    @ResponseBody
+    public Project getProjectDetail(@PathVariable("id") Long id) {
+        return projectService.findOne(id);
+    }
 }

+ 94 - 0
donate-console/src/main/java/com/uas/console/donate/model/SearchFilter.java

@@ -0,0 +1,94 @@
+package com.uas.console.donate.model;
+
+/**
+ * 单据查询搜索条件
+ *
+ */
+public class SearchFilter {
+
+	/**
+	 * 关键词
+	 */
+	private String keyword;
+
+	/**
+	 * 捐赠领域
+	 */
+	private Short area;
+	/**
+	 * 开始日期
+	 */
+	private Long fromDate;
+	/**
+	 * 结束日期
+	 */
+	private Long endDate;
+	/**
+	 * 开始交货日期
+	 */
+	private Long fromDelivery;
+	/**
+	 * 结束交货日期
+	 */
+	private Long endDelivery;
+	/**
+	 * 开始价格
+	 */
+	private Double fromPrice;
+	/**
+	 * 结束价格
+	 */
+	private Double endPrice;
+
+	
+	public String getKeyword() {
+		return keyword;
+	}
+	public void setKeyword(String keyword) {
+		this.keyword = keyword;
+	}
+	public Long getFromDate() {
+		return fromDate;
+	}
+	public void setFromDate(Long fromDate) {
+		this.fromDate = fromDate;
+	}
+	public Long getEndDate() {
+		return endDate;
+	}
+	public void setEndDate(Long endDate) {
+		this.endDate = endDate;
+	}
+	public Long getFromDelivery() {
+		return fromDelivery;
+	}
+	public void setFromDelivery(Long fromDelivery) {
+		this.fromDelivery = fromDelivery;
+	}
+	public Long getEndDelivery() {
+		return endDelivery;
+	}
+	public void setEndDelivery(Long endDelivery) {
+		this.endDelivery = endDelivery;
+	}
+	public Double getFromPrice() {
+		return fromPrice;
+	}
+	public void setFromPrice(Double fromPrice) {
+		this.fromPrice = fromPrice;
+	}
+	public Double getEndPrice() {
+		return endPrice;
+	}
+	public void setEndPrice(Double endPrice) {
+		this.endPrice = endPrice;
+	}
+
+	public Short getArea() {
+		return area;
+	}
+
+	public void setArea(Short area) {
+		this.area = area;
+	}
+}

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

@@ -4,6 +4,8 @@ package com.uas.console.donate.service;
 
 import com.uas.console.donate.model.Org;
 import com.uas.console.donate.model.Project;
+import com.uas.console.donate.model.SearchFilter;
+import com.uas.platform.core.model.PageInfo;
 import org.springframework.data.domain.Page;
 import org.springframework.data.domain.Pageable;
 import org.springframework.ui.ModelMap;
@@ -47,4 +49,12 @@ public interface ProjectService {
     List<Project> search(String search);
 
     ModelMap reapply(Long id);
+
+    Page<Project> getAllProjects(PageInfo pageInfo, SearchFilter filter);
+
+    Page<Project> getAuditedProjects(PageInfo pageInfo, SearchFilter filter);
+
+    Page<Project> getUnauditedProjects(PageInfo pageInfo, SearchFilter filter);
+
+    Page<Project> getDisagreedProjects(PageInfo pageInfo, SearchFilter filter);
 }

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

@@ -31,7 +31,22 @@ define([ 'angularAMD', 'ui.router', 'ui-bootstrap', 'ngLocal', 'ngTable', 'commo
 			title : '项目列表',
 			templateUrl : 'static/view/project/project_list.html',
 			controller : 'ProjectListCtrl'
-		});
+		}).state("launchProject1", {
+            url : '/launchProject1',
+            title : '项目发起1',
+            templateUrl : 'static/view/project/project_launch_1.html',
+            controller : 'ProjectNewCtrl'
+        }).state("launchProject2", {
+            url : '/launchProject2',
+            title : '项目发起2',
+            templateUrl : 'static/view/project/project_launch_2.html',
+            controller : 'ProjectNewCtrl'
+        }).state("launchProjectSuccess", {
+            url : '/launchProject/success',
+            title : '项目发起完成',
+            templateUrl : 'static/view/project/project_launch_3.html',
+            controller : 'ProjectNewCtrl'
+        });
 	}]);
 
     app.controller('ProjectListCtrl', ['$scope', '$rootScope', 'toaster', 'ngTableParams', 'BaseService', 'Project', '$modal',
@@ -42,11 +57,11 @@ define([ 'angularAMD', 'ui.router', 'ui-bootstrap', 'ngLocal', 'ngTable', 'commo
                 switch (active) {
                     // 已审核
                     case 'audited':
-                        fn = 'getEnd';
+                        fn = 'getAudited';
                         break;
                     // 未审核
                     case 'unaudited':
-                        fn = 'getWaiting';
+                        fn = 'getUnaudited';
                         break;
                     // 未通过
                     case 'disagreed':

+ 1 - 7
donate-console/src/main/webapp/resources/js/index/services/Project.js

@@ -2,24 +2,18 @@ define ([ 'ngResource' ], function() {
     angular.module('ProjectService', ['ngResource']).factory('Project', ['$resource', function ($resource) {
         return $resource ('project', {}, {
             getAudited: {
-                url: '',
-                method: 'GET',
                 params : {
                     _state: 'done'
                 }
             },
             getUnaudited: {
-                url: '',
-                method: 'GET',
                 params : {
                     _state: 'todo'
                 }
             },
             getDisagreed: {
-                url: '',
-                method: 'GET',
                 params : {
-                    _state: 'end'
+                    _state: 'refused'
                 }
             },
             // 获取项目详情

+ 102 - 0
donate-console/src/main/webapp/resources/view/project/project_launch_1.html

@@ -0,0 +1,102 @@
+<!-- 发起项目 -->
+<!--主体内容-->
+<div class="content-wrapper" style="min-height: 924px;; z-index: 50;">
+    <!-- Main content -->
+    <section class="content">
+        <div class="section">
+            <div class="instruction"><span>公益项目申请</span><span>(以下所有信息均为必填项)</span></div>
+            <div class="choose">
+                <div class="chooseNav">
+                    <span class="step1 active">1、基本信息</span>
+                    <span class="step2">2、项目详情</span>
+                    <span class="step3">3、完成提交</span>
+                </div>
+                <div class="chooseDetail">
+                    <!--基本信息-->
+                    <div class="detail">
+                        <div class="message">
+                            <span>项目基本信息</span>
+                        </div>
+                        <form action="" class="form">
+                            <div class="form-group clearfix">
+                                <label for="" class="fl">项目名称</label>
+                                <input type="text" class="form-control fl">
+                                <span class="fl help-txt">(不超过9个字,例如“为植物人撑起希望”)</span>
+                            </div>
+                            <div class="form-group clearfix">
+                                <label for="" class="fl">捐助领域</label>
+                                <div class="fl sort">
+                                    <span class="active">疾病援助</span><span>扶贫/救灾</span><span>教育/助学</span><span>环境/动物保护</span><span>其他</span>
+                                </div>
+                            </div>
+                            <div class="form-group clearfix">
+                                <label for="" class="fl">具体分类</label>
+                                <div class="fl sort">
+                                    <span class="active">白血病</span><span>早产儿</span><span>烧烫伤</span><span>罕见病</span><span>癌症</span><span>唇腭裂</span><span>因病致贫</span><span>尘肺病</span><span>病情危急</span><span>其他</span><span>尿毒症</span><span>渐冻症</span><span>意外受伤</span><span>贫困大病</span><span>视力健康</span><span>听障</span>
+                                </div>
+                            </div>
+                            <div class="form-group form-groups clearfix">
+                                <label for="" class="fl">常驻地址</label>
+                                <div class="fl">
+                                    <select name="" id="">
+                                        <option value="">请选择</option>
+                                    </select>
+                                    <span>省</span>
+                                </div>
+                                <div class="fl">
+                                    <select name="" id="">
+                                        <option value="">请选择</option>
+                                    </select>
+                                    <span>市</span>
+                                </div>
+                            </div>
+                            <div class="form-group clearfix">
+                                <label for="" class="fl">筹款目标</label>
+                                <input type="text" class="form-control fl">
+                                <span class="fl help-txt">(请输入整数金额,例如:5000)</span>
+                            </div>
+                            <div class="form-group clearfix">
+                                <label for="" class="fl">捐助领域</label>
+                                <div class="fl sort">
+                                    <span class="active">第三世界</span><span>贫困妇女</span><span>空巢/留守老人</span><span>孤儿/事实孤儿</span><span>残障</span><span>抗战老兵</span><span>自闭症</span><span>弱势群体</span><span>走失儿童</span><span>失独家庭</span><span>其他</span><span>山区孩子</span><span>义工志愿者</span><span>困境儿童</span><span>贫困家庭</span><span>少数民族</span>
+                                </div>
+                            </div>
+                            <div class="form-group clearfix">
+                                <label for="" class="fl">发起缘由</label>
+                                <textarea name="" id="" cols="30" rows="10" class="fl"></textarea>
+                                <span class="txt">
+                                            提示文字:请您填写真实的身份信息,与受助对象的关系,以及该项目的简要介绍,54字以内。
+                                            <br>
+                                             例如:我是一名腾讯开发工程师,也是钟老师先生的学生,两位长辈和善可亲,希望大家帮助他们同度难关!
+                                        </span>
+                            </div>
+                            <div class="form-group clearfix">
+                                <label for="" class="fl">验证码</label>
+                                <input type="text" class="form-control valid fl">
+                                <div class="clearfix valida">
+                                    <span>BBPf</span><a href="">刷新验证码</a>
+                                </div>
+                            </div>
+                            <div class="form-group clearfix text-left">
+                                <input type="checkbox" class="fl">
+                                <div class="agree">
+                                    <span>我已阅读并同意</span><a href="">《优软一元捐用户协议》</a>
+                                </div>
+                            </div>
+                            <div class="text-left">
+                                <a href="launchProjectDetail" class="btn">保存,下一步</a>
+                            </div>
+                        </form>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </section>
+</div>
+<script>
+    $('.right-nav').on('click', 'span', function () {
+        var index = $(this).index();
+        $(this).addClass('active').siblings().removeClass('active');
+        $('.right-list').eq(index).addClass('show').siblings().removeClass('show');
+    });
+</script>

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

@@ -0,0 +1,122 @@
+<!--主体内容-->
+<div class="content-wrapper" style="min-height: 924px;; z-index: 50;">
+    <!-- Main content -->
+    <section class="content">
+        <div class="section">
+            <div class="instruction"><span>公益项目申请</span><span>(以下所有信息均为必填项)</span></div>
+            <div class="choose">
+                <div class="chooseNav">
+                    <span class="step1 active">1、基本信息</span><span class="step2 active">2、项目详情</span><span class="step3">3、完成提交</span>
+                </div>
+                <div class="chooseDetail">
+                    <!--项目详情-->
+                    <div class="detail">
+                        <div class="list-item clearfix">
+                            <span class="fl">项目主图</span>
+                            <div class="fl">
+                                <p>(为了让您的项目在不同终端下均能正常展示,请分别上传PC端和手机端的主图)</p>
+                                <div class="computer">
+                                    <span>PC端主图</span>
+                                    <button>上传图片</button>
+                                    <input type="file">
+                                    <em>(最能代表项目的焦点图,图片尺寸不小于500*280px,支持jpg,gif,png格式,不超过10MB)</em>
+                                </div>
+                                <div class="computer phone">
+                                    <span>手机端主图</span>
+                                    <select name="" id="">
+                                        <option value="">展示大图模式</option>
+                                    </select>
+                                    <em>(最少上传1张,最多上传4张,图片尺寸不小于750*680px,支持jpg,gif,png格式,不超过2MB;手机端第一张图片请和PC端保持一致)</em>
+                                </div>
+                                <div class="upload">
+                                    <input type="file"/>
+                                </div>
+                            </div>
+                        </div>
+                        <div class="list-item clearfix" style="margin-top: -20px;">
+                            <span class="fl" style="margin-top: 30px;">手机列表图</span>
+                            <div class="fl">
+                                <div class="computer uploadImg">
+                                    <button>上传图片</button>
+                                    <input type="file">
+                                    <em>(最能代表项目的焦点图,图片尺寸不小于500*375像素以上,支持jpg,gif,png格式,不超过10MB)</em>
+                                </div>
+                            </div>
+                        </div>
+                        <div class="list-item clearfix">
+                            <span class="fl">发起人介绍</span>
+                            <div class="fl" style="margin: 5px 0 0 50px;">
+                                <span class="intro">(最能代表项目的焦点图,图片尺寸500*375像素以上,支持jpg,gif,png格式不超过10MB)</span>
+                                <div class="item clearfix">
+                                    <span class="fl">姓名</span>
+                                    <input type="text" class="form-control fl" placeholder="不超过十个字"/>
+                                </div>
+                                <div class="item items clearfix">
+                                    <span class="fl">头像</span>
+                                    <div class="button fl">
+                                        <button>上传图片</button>
+                                        <input type="file">
+                                        <em>(图片尺寸不小于500*500px,支持jpg,gif,png格式,不超过2MB)</em>
+                                    </div>
+                                </div>
+                                <div class="item clearfix">
+                                    <span class="fl">工作单位</span>
+                                    <input type="text" class="form-control fl" placeholder="不超过二十个字"/>
+                                </div>
+                                <div class="item clearfix">
+                                    <span class="fl">个人简介</span>
+                                    <textarea name="" id="" cols="30" rows="10" placeholder="不超过六十个字"></textarea>
+                                </div>
+                            </div>
+                        </div>
+                        <div class="list-item clearfix">
+                            <span class="fl">项目简介</span>
+                            <div class="fl simple">
+                                <textarea name="" id="" cols="30" rows="10"></textarea>
+                                <br/>
+                                <span>项目的简单介绍,不超过27个汉字</span>
+                            </div>
+                        </div>
+                        <div class="list-item clearfix">
+                            <span class="fl">项目介绍</span>
+                            <div class="fl introduce">
+                                <div class="intro-header">
+                                    <span><img src="static/images/title.png" alt=""/><em>标题</em></span>
+                                    <span><img src="static/images/link.png" alt=""/><em>链接</em></span>
+                                    <span><img src="static/images/pic.png" alt=""/><em>图片</em></span>
+                                </div>
+                                <div class="intro-body">
+                                    <p>项目介绍(也可使用个性化为多个小标题)</p>
+                                    <span>需要让陌生用户理解你项目的独特价值。比如,用生动的语言介绍你做了哪些观察/接触到的群体真实需求/做了哪些努力和尝试/遇到了哪些困惑甚至走了哪些弯路/找到了哪些更优的解决方案/取得了哪些项目成果/准备下一步开展什么有亮点的公益项目/要实现什么公益梦想。建议300-500字,请多多配优质图片;</span>
+                                    <p>项目执行计划(也可使用个性化小标题)</p>
+                                    <span>包含时间、空间、人员、详细的项目执行计划,建议50-400字,设计图、执行计划图草图等均可;</span>
+                                    <p>关于我(也可使用个性化为多个小标题)</p>
+                                    <span>生动介绍你自己或你的团队,说明你与所发起的项目之间的背景和故事,让支持者能够在最短时间内了解你,以拉近彼此之间的距离。300-500字,请多多配优质图片;</span>
+                                    <p>项目预算</p>
+                                    <span>项目预算请尽可能详细、细致、合理,建议50-300字,可配详细的表格;</span>
+                                    <p>捐赠回馈</p>
+                                    <span>请针对直接捐款和“一起捐”,设计有助于激发用户参与的福利回馈;<br>留下如何获得回馈的方式,以及联系方式;</span>
+                                    <p>发票索要说明</p>
+                                    <span>(请认领的公募机构补充)</span>
+                                    <p>最后友情提醒:</p>
+                                    <span>文案不仅关系到是否能被审核通过,更关系到是否能打动陌生人愿意支持你,请用心准备。Ps:如果你觉得自己不会写,可以找身边会写的朋友协助准备</span>
+                                </div>
+                            </div>
+                            <div class="fl submitButton">
+                                <div class="sub"><a href="launchProjectOver">提交</a><button>保存草稿</button></div>
+                                <a href="launchProject">返回上一页</a>
+                            </div>
+                        </div>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </section>
+</div>
+<script>
+    $('.right-nav').on('click', 'span', function () {
+        var index = $(this).index();
+        $(this).addClass('active').siblings().removeClass('active');
+        $('.right-list').eq(index).addClass('show').siblings().removeClass('show');
+    });
+</script>

+ 30 - 0
donate-console/src/main/webapp/resources/view/project/project_launch_3.html

@@ -0,0 +1,30 @@
+<!--主体内容-->
+<div class="content-wrapper" style="min-height: 924px;; z-index: 50;">
+    <!-- Main content -->
+    <section class="content">
+        <div class="section">
+            <div class="instruction"><span>公益项目申请</span><span>(以下所有信息均为必填项)</span></div>
+            <div class="choose">
+                <div class="chooseNav">
+                    <span class="step1 active">1、基本信息</span><span class="step2 active">2、项目详情</span><span class="step3 active">3、完成提交</span>
+                </div>
+                <div class="chooseDetail">
+                    <!--完成提交-->
+                    <div class="detail">
+                        <div class="complete"><img src="static/images/over.png" alt=""/><span>项目已提交!</span></div>
+                        <p class="txt-intro">公益项目需要经过专业机构的后台评审,评审无异议后将会发布到平台上。</p>
+                        <div class="look"><a href="">查看项目</a></div>
+                        <!--<a href="/" class="return">返回首页&gt;</a>-->
+                    </div>
+                </div>
+            </div>
+        </div>
+    </section>
+</div>
+<script>
+    $('.right-nav').on('click', 'span', function () {
+        var index = $(this).index();
+        $(this).addClass('active').siblings().removeClass('active');
+        $('.right-list').eq(index).addClass('show').siblings().removeClass('show');
+    });
+</script>

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

@@ -757,7 +757,7 @@
                 <div class="boxes-body">
                     <form action="" method="" id="form">
                         <input type="hidden" name="" value="">
-                        <table class="" style="word-break:break-all">
+                        <table class="" style="word-break:break-all" ng-table="projectParams">
                             <thead>
                             <tr>
                                 <!--<td width="45"></td>-->

+ 0 - 1
donate-console/src/main/webapp/resources/view/project/project_start.html

@@ -1 +0,0 @@
-<!-- 发起项目 -->