Quellcode durchsuchen

完善众审界面

insomniaLee vor 5 Jahren
Ursprung
Commit
1077518890

+ 6 - 3
Dockerfile

@@ -1,7 +1,10 @@
 FROM openjdk:8-jdk-alpine
 ADD ./deploy.sh /project/
 RUN chmod 777 /project/deploy.sh
-RUN wget -c -P /project/ http://third-part-tool.oss-cn-shanghai.aliyuncs.com/sgns.wiki.word.zip
+RUN wget -c -P /project/ http://third-part-tool.oss-cn-shanghai.aliyuncs.com/sgns.wiki.word.zip#RUN unzip -o /project/sgns.wiki.word.zip -d /project/
+#ADD ./sgns.wiki.word /project/sgns.wiki.word
 ADD ./target/crowd_review-1.0-SNAPSHOT.jar /project/crowd_review.jar
-EXPOSE 8090
-ENTRYPOINT ["/project/deploy.sh"]
+EXPOSE 9004
+RUN unzip -o /project/sgns.wiki.word.zip -d /project/
+#ENTRYPOINT ["/project/deploy.sh"]
+ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-Xms800m","-Xmx1g","-jar","-Dspring.profiles.active=test","/project/crowd_review.jar"]

+ 6 - 2
build-run.sh

@@ -3,7 +3,11 @@ mvn clean package
 
 docker build -t crowd_review:0.2 .
 
-docker run --name crowd_review --rm -it -v /Users/major/development/crowd_review/deploy.sh:/project/deploy.sh -p 8090:8090 -e MONGODB_REVIEW_DB=crowd_review -e MONGODB_REVIEW_HOST=host.docker.internal -e MONGODB_REVIEW_PORT=27017 -e MONGODB_REPORT_DB=co-report -e MONGODB_REPORT_HOST=host.docker.internal -e MONGODB_REPORT_PORT=27017 -e EXPORT_ADDR=http://182.254.197.194:9002/generateReport crowd_review:0.2 /bin/sh
+docker run  --rm -it -v /Users/insomnialee/crowd_projects/meijie/deploy.sh:/project/deploy.sh -p 9004:9004   crowd_review:0.2 /bin/sh
+
+docker run -p 9004:9004 -t crowd_review:0.2
+
+
+#docker run --name crowd_review --rm -it -v /root/moooc_review/deploy.sh:/project/deploy.sh -p 80:8090 -e MONGODB_REVIEW_DB=crowd_review -e MONGODB_REVIEW_HOST=10.81.65.118 -e MONGODB_REVIEW_PORT=29019 -e MONGODB_REPORT_DB=co-report -e MONGODB_REPORT_HOST=10.81.65.118 -e MONGODB_REPORT_PORT=29019 -e EXPORT_ADDR=http://47.99.140.117:9002/generateReport -e TASK_ADDR=http://47.99.140.117:9001/Bug/api/extra/getExamList crowd_review:0.2 /bin/sh
 
 
-docker run --name crowd_review --rm -it -v /root/moooc_review/deploy.sh:/project/deploy.sh -p 80:8090 -e MONGODB_REVIEW_DB=crowd_review -e MONGODB_REVIEW_HOST=10.81.65.118 -e MONGODB_REVIEW_PORT=29019 -e MONGODB_REPORT_DB=co-report -e MONGODB_REPORT_HOST=10.81.65.118 -e MONGODB_REPORT_PORT=29019 -e EXPORT_ADDR=http://47.99.140.117:9002/generateReport -e TASK_ADDR=http://47.99.140.117:9001/Bug/api/extra/getExamList crowd_review:0.2 /bin/sh

+ 1 - 1
deploy.sh

@@ -1,4 +1,4 @@
 #!/bin/sh
-unzip -o /project/sgns.wiki.word.zip -d /project/
+#unzip -o /project/sgns.wiki.word.zip -d /project/
 
 java -Djava.security.egd=file:/dev/./urandom -Xms800m -Xmx1g -jar -Dspring.profiles.active=test /project/crowd_review.jar

+ 12 - 0
src/main/java/com/mooctest/controller/BugReviewController.java

@@ -12,9 +12,21 @@ public class BugReviewController {
     @Autowired
     BugReviewService bugReviewService;
 
+    //审核报告--将聚合报告下的子报告都标记为已审核
     @PutMapping("/bug_review")
     public void queryReportReviewStatus(@RequestParam("masterId") String masterId) {
         bugReviewService.aggReportReview(masterId);
     }
+//    //审核报告--将树状报告下的子报告都标记为已审核
+//    @PutMapping("/bug_review")
+//    public void bugReviewTree(@RequestParam("treeId") String treeId) {
+//        bugReviewService.aggReportReview(treeId);
+//    }
+//
+//    //审核报告 -- 单个报告   之后更新报告所在
+//    @PutMapping("/single_bug_review")
+//    public void singlaBugReview(@RequestParam("reportId") String reportId) {
+//        bugReviewService.aggReportReview(reportId);
+//    }
 
 }

+ 1 - 0
src/main/java/com/mooctest/controller/ReportController.java

@@ -107,6 +107,7 @@ public class ReportController {
 
         model.addAttribute("showReference",true);//是否展示其他聚合报告的参考标签
         boolean bugReviewed = bugReviewService.isBugReviewed(masterId);
+
         model.addAttribute("reviewed", bugReviewed);
         if (finalReportId != null) {
             Optional<FinalReportDTO> finalReportDTO = finalReports.stream().filter(finalReport -> finalReport.getId()==finalReportId).findFirst();

+ 20 - 0
src/main/java/com/mooctest/model/BugStatus.java

@@ -0,0 +1,20 @@
+package com.mooctest.model;
+
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import org.springframework.data.annotation.Id;
+import org.springframework.data.mongodb.core.mapping.Document;
+import org.springframework.data.mongodb.core.mapping.Field;
+
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+@Document(collection = "bug")
+public class BugStatus {
+    @Id
+    private String id;
+//    @Field
+}

+ 20 - 1
src/main/java/com/mooctest/service/BugReviewService.java

@@ -2,6 +2,7 @@ package com.mooctest.service;
 
 import com.mooctest.dao.MasterReportDao;
 import com.mooctest.model.MasterReport;
+import com.sun.codemodel.internal.JForEach;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -14,10 +15,28 @@ public class BugReviewService {
     @Autowired
     MasterReportDao masterReportDao;
 
-    public boolean isBugReviewed(String bugId) {
+    public boolean isBugReviewed(String bugId) {// 聚合报告是否被审核
         MasterReport mr = masterReportDao.findByBugId(bugId);
         return (mr != null) && (mr.getStatus() == 1);
     }
+
+//    public boolean isMasterBugReviewed (String masterBugId){
+//        //聚合报告是否被审核
+//        List<MasterReport> mrs = masterReportDao.findByMasterId(masterBugId);
+//        List<MasterReport> childs = mrs.stream().filter(s->s.getMasterId().equals(masterBugId)).collect(Collectors.toList());
+//        boolean flag = true;
+//        for (MasterReport child : childs){
+//            if(child.getStatus()==0){//没有被审核的情况
+//                return false; // 主报告被视为没有审核过。
+//            }
+//        }
+//        childs.forEach(ms->{
+//            if(ms.getStatus()==0){
+//                flag = false;
+//            }
+//        });
+//    }
+
     public void aggReportReview(String masterId) {
         List<MasterReport> mrs = masterReportDao.findByMasterId(masterId);
         List<String> bugIds = mrs.stream().map(MasterReport::getBugId).collect(Collectors.toList());

BIN
src/main/resources/static/AdminLTE/.DS_Store


+ 405 - 0
src/main/resources/static/js/addTask.js

@@ -0,0 +1,405 @@
+test=function (element,id) {
+    var data = $(event.target).val();
+    $('#namelist'+id).html(getSpanHtml(getData(data)))
+    // console.log(getData(data))
+}
+/*<![CDATA[*/
+getData = function (str) {
+    var arr=str.split(";");
+    var res = new Array();
+    var tempArr;
+    var tempStart
+    var tempEnd
+    for(var i =0;i<arr.length;i++){
+        if(arr[i].indexOf("~")>=0){
+            tempArr = arr[i].split("~");
+            var tempStart = new Number(tempArr[0]);
+            var tempEnd   = new Number(tempArr[1]);
+            for ( var ii =tempStart;ii<tempEnd;ii++){
+                res.push(ii+"");
+            }
+            res.push(tempEnd+"");
+        }else{
+            res.push(arr[i]);
+        }
+    }
+    return res;
+}
+
+getSpanHtml = function(data){
+    var res = '';
+    for(var i =0;i<data.length;i++){
+        res+='<span class="badge bg-green">'+data[i]+'</span>'
+    }
+    return res;
+}
+
+getRealData = function(str){
+    var arr = str.split("~");
+    var start = new Number(arr[0]);
+    var end   = new Number(arr[1]);
+    var res = new Array();
+    for ( var i =start;i<end;i++){
+        res.push(i+"");
+    }
+    res.push(end+"");
+    return res;
+}
+
+addNewOption = function () {
+    $('#maincontent').append('\n' +
+        '            <div class="box box-info"  id="rule' +ruleId+
+        '">\n' +
+        '                <div class="box-header with-border">\n' +
+        '                    <h3 class="box-title">定制审查选项</h3>\n' +
+        '                    <button type="submit" onclick="addCheck(' +ruleId+
+        ')" class="btn btn-success pull-right">新建多选框</button>\n' +
+        '                    <button type="submit" onclick="addRatio(' +ruleId+
+        ')" class="btn btn-success pull-right">新建单选框</button>\n' +
+        '                    <button type="submit" onclick="addSingleCheck(' +ruleId+
+        ')" class="btn btn-success pull-right">新建单复选框</button>\n' +
+        '                    <button type="submit" onclick="addText(' +ruleId+
+        ')" class="btn btn-success pull-right">新建文本框</button>\n' +
+        '                    <button type="submit" onclick="addUpload(' +ruleId+
+        ')" class="btn btn-success pull-right">新建文件上传</button>\n' +
+        '                </div>\n' +
+        '                <!-- /.box-header -->\n' +
+        '                <!-- form start -->\n' +
+        '                <div class="form-horizontal">\n' +
+        '                    <div class="box-body">\n' +
+        '                        <div class="form-group">\n' +
+        '                            <label  class="col-sm-2 control-label">适用试题列表</label>\n' +
+        '                            <div class="col-sm-10">\n' +
+        '                                <input  onchange="test(this,' + ruleId +  ')" class="form-control" id="fitlist' + ruleId+
+        '" placeholder="请输入编号并用;分割,可用~输入连续的试题名称"/>\n' +
+        '                            </div>\n' +
+        '                            <label  class="col-sm-2 control-label">已选列表</label>\n' +
+        '                            <div class="col-sm-10" id="namelist' +ruleId+
+        '" >\n' +
+        '                            </div>\n' +
+        '                        </div>\n' +
+        '\n' +
+        '                        <div class="form-group">\n' +
+        '                            <label  class="col-sm-2 control-label">审查项</label>\n' +
+        '                            <div class="col-sm-10 ">\n' +
+        '                                <table class="table" id="table' + ruleId+
+        '">\n' +
+        '<tr>\n' +
+        '                    <td>\n' +
+        '                        示例\n' +
+        '                    </td>\n' +
+        '                    <td>\n' +
+        '                        左侧文字说明\n' +
+        '                    </td>\n' +
+        '                    <td>\n' +
+        '                        数据说明\n' +
+        '                    </td>\n' +
+        '                    <td>\n' +
+        '                        操作\n' +
+        '                    </td>\n' +
+        '                </tr>'+
+        '\n' +
+        '                                </table>\n' +
+        '                            </div>\n' +
+        '                        </div>\n' +
+        '                    </div>\n' +
+        '                    <div class="box-footer">\n' +
+        '                        <button type="button" onclick="deleteRule(' +ruleId+
+        ')" class="btn btn-default">删除</button>\n' +
+        '                        <button type="button" class="btn btn-default" onclick="showModal(' +ruleId+
+        ')">\n' +
+        '                            预览\n' +
+        '                        </button>\n' +
+        '                        <button type="button" onclick="addNewOption()" class="btn btn-info pull-right">继续添加</button>\n' +
+        '                    </div>\n' +
+        '                </div>\n' +
+        '            </div>');
+    ruleId++;
+}
+
+addRatio = function (id) { // 添加文本框f
+    var table = $('#table'+id);
+    ratioIndex++;
+    table.append('<tr type="ratio">\n' +
+        '                                        <td>\n' +
+        '                                            <div class="form-group">\n' +
+        '                                                <div class="radio">\n' +
+        '                                                    <label>\n' +
+        '                                                        <input type="radio" name="optionsRadios' + ratioIndex+
+        '"  value="option1" checked="checked"/>\n' +
+        '                                                        Option one\n' +
+        '                                                    </label>\n' +
+        '                                                </div>\n' +
+        '                                                <div class="radio">\n' +
+        '                                                    <label>\n' +
+        '                                                        <input type="radio" name="optionsRadios' +ratioIndex+
+        '"  value="option2"/>\n' +
+        '                                                        Option two\n' +
+        '                                                    </label>\n' +
+        '                                                </div>\n' +
+        '                                                <div class="radio">\n' +
+        '                                                    <label>\n' +
+        '                                                        <input type="radio" name="optionsRadios' +ratioIndex+
+        '"  value="option3" />\n' +
+        '                                                        Option three\n' +
+        '                                                    </label>\n' +
+        '                                                </div>\n' +
+        '                                            </div>\n' +
+        '                                        </td>\n' +
+        '                                        <td>\n' +
+        '                                            <input type="text" class="form-control" placeholder="选项说明"/>\n' +
+        '                                        </td>\n' +
+        '                                        <td>\n' +
+        '                                            <input type="text" class="form-control" placeholder="选项数据 请用;将选项分隔"/>\n' +
+        '                                        </td>\n' +
+        '                                        <td>\n' +
+        '                                            <button onclick="upTr(this)" class="btn btn-default">上移</button>\n' +
+        '                                            <button onclick="downTr(this,' +id+
+        ')" class="btn btn-default">下移</button>\n' +
+        '                                            <button onclick="deleteTr(this)" class="btn btn-warning">删除</button>\n' +
+        '                                        </td>\n' +
+        '                                    </tr>')
+
+}
+
+addText = function (id) { // 添加多选框
+    var table = $('#table'+id);
+    table.append('<tr type="text">\n' +
+        '                                        <td>\n' +
+        '                                            <input type="text" class="form-control" placeholder="选项说明"/>\n' +
+        '                                        </td>\n' +
+        '                                        <td>\n' +
+        '                                            <input type="text" class="form-control" placeholder="选项数据"/>\n' +
+        '                                        </td>\n' +
+        '                                        <td>\n' +
+        '                                        </td>\n' +
+        '                                        <td>\n' +
+        '                                            <button onclick="upTr(this)" class="btn btn-default">上移</button>\n' +
+        '                                            <button onclick="downTr(this,' +id+
+        ')" class="btn btn-default">下移</button>\n' +
+        '                                            <button onclick="deleteTr(this)" class="btn btn-warning">删除</button>\n' +
+        '                                        </td>\n' +
+        '                                    </tr>')
+}
+
+addUpload = function(id){// add upload input
+    var table = $('#table'+id); //
+
+    table.append('<tr type="file">\n' +
+        '                                        <td>\n' +
+        '                                            <input  type="file" id="testApplication' + id +
+        '"/>\n' +
+        '                                        </td>\n' +
+        '                                        <td>\n' +
+        '                                            <input type="text" class="form-control" placeholder="请输入说明文字"/>\n' +
+        '                                        </td>\n' +
+        '                                        <td>\n' +
+        '                                        </td>\n' +
+        '                                        <td>\n' +
+        '                                            <button onclick="upTr(this)" class="btn btn-default">上移</button>\n' +
+        '                                            <button onclick="downTr(this,' +id+
+        ')" class="btn btn-default">下移</button>\n' +
+        '                                            <button onclick="deleteTr(this)" class="btn btn-warning">删除</button>\n' +
+        '                                        </td>\n' +
+        '                                    </tr>')
+}
+
+addSingleCheck = function (id) { // 添加多选框
+    var table = $('#table'+id);
+    table.append('<tr type="singleCheck">\n' +
+        '                                        <td>\n' +
+        '                                            <div class="form-group">\n' +
+        '                                                <div class="checkbox">\n' +
+        '                                                    <label>\n' +
+        '                                                        <input type="checkbox"/>\n' +
+        '                                                        Checkbox 1\n' +
+        '                                                    </label>\n' +
+        '                                                </div>\n' +
+        '                                            </div>\n' +
+        '                                        </td>\n' +
+        '                                        <td>\n' +
+        '                                            <input type="text" class="form-control" placeholder="选项说明"/>\n' +
+        '                                        </td>\n' +
+        '                                        <td>\n' +
+        '                                            <input type="text" class="form-control" placeholder="选项数据"/>\n' +
+        '                                        </td>\n' +
+        '                                        <td>\n' +
+        '                                            <button onclick="upTr(this)" class="btn btn-default">上移</button>\n' +
+        '                                            <button onclick="downTr(this,' +id+
+        ')" class="btn btn-default">下移</button>\n' +
+        '                                            <button onclick="deleteTr(this)" class="btn btn-warning">删除</button>\n' +
+        '                                        </td>\n' +
+        '                                    </tr>')
+}
+
+addCheck = function (id) {
+    var table = $('#table'+id);
+    table.append('<tr type="check">\n' +
+        '                                        <td>\n' +
+        '                                            <div class="form-group">\n' +
+        '                                                <div class="checkbox">\n' +
+        '                                                    <label>\n' +
+        '                                                        <input type="checkbox"/>\n' +
+        '                                                        Checkbox 1\n' +
+        '                                                    </label>\n' +
+        '                                                </div>\n' +
+        '\n' +
+        '                                                <div class="checkbox">\n' +
+        '                                                    <label>\n' +
+        '                                                        <input type="checkbox"/>\n' +
+        '                                                        Checkbox 2\n' +
+        '                                                    </label>\n' +
+        '                                                </div>\n' +
+        '\n' +
+        '                                                <div class="checkbox">\n' +
+        '                                                    <label>\n' +
+        '                                                        <input type="checkbox" disabled="disable"/>\n' +
+        '                                                        Checkbox disabled\n' +
+        '                                                    </label>\n' +
+        '                                                </div>\n' +
+        '                                            </div>\n' +
+        '                                        </td>\n' +
+        '                                        <td>\n' +
+        '                                            <input type="text" class="form-control" placeholder="选项说明"/>\n' +
+        '                                        </td>\n' +
+        '                                        <td>\n' +
+        '                                            <input type="text" class="form-control" placeholder="选项数据 请用;将选项分隔"/>\n' +
+        '                                        </td>\n' +
+        '                                        <td>\n' +
+        '                                            <button onclick="upTr(this)" class="btn btn-default">上移</button>\n' +
+        '                                            <button onclick="downTr(this,' +id +
+        ')" class="btn btn-default">下移</button>\n' +
+        '                                            <button onclick="deleteTr(this)" class="btn btn-warning">删除</button>\n' +
+        '                                        </td>\n' +
+        '                                    </tr>')
+
+};
+
+deleteTr = function(element){
+    element.parentNode.parentNode.remove();
+}
+
+upTr = function(element){
+    var $tr = $(element).parents("tr");
+    if ($tr.index() != 0) {
+        $tr.prev().before($tr);
+    }
+}
+
+downTr  = function (element,id) {
+    var length = $('#table'+id +' tr').length;
+    var $tr = $(element).parents("tr");
+    if ($tr.index() != length - 1) {
+        $tr.next().after($tr);
+    }
+}
+
+deleteRule = function (id) {
+    $('#rule'+id).remove()
+}
+
+showModal = function (id) {
+    var body = $('#formBody');
+    var myTable = document.getElementById("table"+id);
+    body.html("");
+    var da1 = $('#fitlist'+id).val();
+    var selectedData = '<div class="form-group">\n' +
+        '                            <label class="col-sm-2 control-label">适用试题</label>\n' +
+        '                            <div class="col-sm-10">\n' +
+        getSpanHtml(getData(da1))+
+        '                            </div>\n' +
+        '                        </div>';
+    body.append(selectedData);
+    var rowNum =  myTable.rows.length;
+    var tempdata  =  [];
+    var td0;
+    var tr;
+    var type;
+    for(var i = 0;i<rowNum;i++){
+        tr = myTable.rows[i];
+        type=tr.getAttribute("type");
+        if(type=="singleCheck"){
+            var singleCheckTip = myTable.rows[i].cells[1].children[0].value;
+            var singleCheckData = myTable.rows[i].cells[2].children[0].value;
+            console.log(singleCheckData,singleCheckTip)
+            var singleCheckTemp = '<div class="form-group">\n' +
+                '                            <label class="col-sm-2 control-label">' +singleCheckTip+
+                '</label>\n' +
+                '                            <div class="col-sm-10">\n' ;
+
+            singleCheckTemp+='<div class="checkbox">\n' +
+                '                                                    <label>\n' +
+                '                                                        <input type="checkbox"/>\n' +singleCheckData+
+                '                                                    </label>\n' +
+                '                                                </div>';
+
+            singleCheckTemp+=
+                '                                            </div>\n' +
+                '                                        </div>';
+            body.append(singleCheckTemp);
+        }else if(type=="check"){
+            var checkTip = myTable.rows[i].cells[1].children[0].value;
+            var checkData = myTable.rows[i].cells[2].children[0].value;
+            var checkArr = checkData.split(';');
+            var checkTemp = '<div class="form-group">\n' +
+                '                            <label class="col-sm-2 control-label">' +checkTip+
+                '</label>\n' +
+                '                            <div class="col-sm-10">\n' ;
+            for( var  checkJ = 0;checkJ<checkArr.length;checkJ++){
+                checkTemp+='<div class="checkbox">\n' +
+                    '                                                    <label>\n' +
+                    '                                                        <input type="checkbox"/>\n' +checkArr[checkJ]+
+                    '                                                    </label>\n' +
+                    '                                                </div>';
+            }
+            checkTemp+=
+                '                                            </div>\n' +
+                '                                        </div>';
+            body.append(checkTemp);
+        }else if(type=="ratio"){
+            var ratioTip = myTable.rows[i].cells[1].children[0].value;
+            var ratioData = myTable.rows[i].cells[2].children[0].value;
+            var ratioArr = ratioData.split(';');
+            var ratioTemp = '<div class="form-group">\n' +
+                '                            <label class="col-sm-2 control-label">' +ratioTip+
+                '</label>\n' +
+                '                            <div class="col-sm-10">\n' ;
+
+            for( var  ratioJ = 0;ratioJ<ratioArr.length;ratioJ++){
+                ratioTemp+='<div class="radio">\n' +
+                    '                                                    <label>\n' +
+                    '                                                        <input type="radio" name="optionsRadios' + i+
+                    '"  value="' +ratioArr[ratioJ]+
+                    '"/>\n' +ratioArr[ratioJ]+
+                    '                                                    </label>\n' +
+                    '                                                </div>';
+            }
+            ratioTemp+=
+                '                                            </div>\n' +
+                '                                        </div>';
+            body.append(ratioTemp);
+        }else if(type=="text"){
+            var textData = myTable.rows[i].cells[1].children[0].value;
+            body.append('<div class="form-group">\n' +
+                '                            <label class="col-sm-2 control-label">' +textData+
+                '</label>\n' +
+                '                            <div class="col-sm-10">\n' +
+                '<input class="form-control"  placeholder="请输入"/>'+
+                '                            </div>\n' +
+                '                        </div>')
+        }else if( type == "file"){
+            // when the check item is file upload input
+            var fileData = myTable.rows[i].cells[1].children[0].value;
+            body.append('<div class="form-group">\n' +
+                '                            <label for="testApplication"  class="col-sm-2 control-label">'+fileData+
+                '</label>\n' +
+                '                            <div class="col-sm-10">\n' +
+                '                                <input  type="file" />\n' +
+                '                                <!--                               <p class="help-block">Example block-level help text here.</p>-->\n' +
+                '                            </div>\n' +
+                '                        </div>');
+        }
+    }
+    $('#modal-default').modal('show');
+}
+/*]]>*/

+ 20 - 356
src/main/resources/templates/addTask.html

@@ -44,10 +44,19 @@
         .box-header button{
             margin-right: 5px;
         }
+        .table tr td {
+            padding-right: 10px;
+            padding-left: 10px;
+            border-top: 1px solid #f4f4f4;
+            border-right: 1px solid #f4f4f4;
+        }
     </style>
 </head>
 <body>
 <div layout:fragment="mainbody">
+
+
+
     <aside class="main-sidebar">
         <section class="sidebar">
             <div class="user-panel">
@@ -135,6 +144,13 @@
                                 <input  class="form-control" id="name" placeholder="请输入任务名称"/>
                             </div>
                         </div>
+                        <!-- textarea -->
+                        <div class="form-group">
+                            <label class="col-sm-2 control-label">描述</label>
+                            <div class="col-sm-10">
+                                <textarea class="form-control" rows="3" placeholder="请输入描述信息"></textarea>
+                            </div>
+                        </div>
 
                         <!-- Date and time range -->
                         <div class="form-group">
@@ -161,7 +177,7 @@
                         </div>
 
                         <div class="form-group">
-                            <label for="testApplication"  class="col-sm-2 control-label">被测应用</label>
+                            <label for="testApplication"  class="col-sm-2 control-label">附件(可选)</label>
                             <div class="col-sm-10">
                                 <input  type="file" id="testApplication"/>
                                 <!--                               <p class="help-block">Example block-level help text here.</p>-->
@@ -207,6 +223,7 @@
                 </div>
             </div>
 
+
             <!-- Horizontal Form -->
 
 
@@ -273,6 +290,8 @@
 <script src="/static/AdminLTE/dist/js/adminlte.min.js"></script>
 <!-- AdminLTE for demo purposes -->
 <script src="/static/AdminLTE/dist/js/demo.js"></script>
+<!-- add Task js for this file only -->
+<script src="/static/js/addTask.js"></script>
 <script type="text/javascript">
     var ruleId ;
     var ratioIndex;
@@ -348,362 +367,7 @@
         });
     });
 
-    test=function (element,id) {
-        var data = $(event.target).val();
-        $('#namelist'+id).html(getSpanHtml(getData(data)))
-        // console.log(getData(data))
-    }
-    /*<![CDATA[*/
-    getData = function (str) {
-        var arr=str.split(";");
-        var res = new Array();
-        var tempArr;
-        var tempStart
-        var tempEnd
-        for(var i =0;i<arr.length;i++){
-            if(arr[i].indexOf("~")>=0){
-                tempArr = arr[i].split("~");
-                var tempStart = new Number(tempArr[0]);
-                var tempEnd   = new Number(tempArr[1]);
-                for ( var ii =tempStart;ii<tempEnd;ii++){
-                    res.push(ii+"");
-                }
-                res.push(tempEnd+"");
-            }else{
-                res.push(arr[i]);
-            }
-        }
-        return res;
-    }
 
-    getSpanHtml = function(data){
-        var res = '';
-        for(var i =0;i<data.length;i++){
-            res+='<span class="badge bg-green">'+data[i]+'</span>'
-        }
-        return res;
-    }
-
-    getRealData = function(str){
-        var arr = str.split("~");
-        var start = new Number(arr[0]);
-        var end   = new Number(arr[1]);
-        var res = new Array();
-        for ( var i =start;i<end;i++){
-            res.push(i+"");
-        }
-        res.push(end+"");
-        return res;
-    }
-
-    addNewOption = function () {
-        $('#maincontent').append('\n' +
-            '            <div class="box box-info"  id="rule' +ruleId+
-            '">\n' +
-            '                <div class="box-header with-border">\n' +
-            '                    <h3 class="box-title">定制审查选项</h3>\n' +
-            '                    <button type="submit" onclick="addCheck(' +ruleId+
-            ')" class="btn btn-success pull-right">新建多选框</button>\n' +
-            '                    <button type="submit" onclick="addRatio(' +ruleId+
-            ')" class="btn btn-success pull-right">新建单选框</button>\n' +
-            '                    <button type="submit" onclick="addSingleCheck(' +ruleId+
-            ')" class="btn btn-success pull-right">新建单复选框</button>\n' +
-            '                    <button type="submit" onclick="addText(' +ruleId+
-            ')" class="btn btn-success pull-right">新建文本框</button>\n' +
-            '                </div>\n' +
-            '                <!-- /.box-header -->\n' +
-            '                <!-- form start -->\n' +
-            '                <div class="form-horizontal">\n' +
-            '                    <div class="box-body">\n' +
-            '                        <div class="form-group">\n' +
-            '                            <label  class="col-sm-2 control-label">适用试题列表</label>\n' +
-            '                            <div class="col-sm-10">\n' +
-            '                                <input  onchange="test(this,' + ruleId +  ')" class="form-control" id="fitlist' + ruleId+
-            '" placeholder="请输入编号并用;分割,可用~输入连续的试题名称"/>\n' +
-            '                            </div>\n' +
-            '                            <label  class="col-sm-2 control-label">已选列表</label>\n' +
-            '                            <div class="col-sm-10" id="namelist' +ruleId+
-            '" >\n' +
-            '                            </div>\n' +
-            '                        </div>\n' +
-            '\n' +
-            '                        <div class="form-group">\n' +
-            '                            <label  class="col-sm-2 control-label">审查项</label>\n' +
-            '                            <div class="col-sm-10 ">\n' +
-            '                                <table class="table" id="table' + ruleId+
-            '">\n' +
-            '\n' +
-            '                                </table>\n' +
-            '                            </div>\n' +
-            '                        </div>\n' +
-            '                    </div>\n' +
-            '                    <div class="box-footer">\n' +
-            '                        <button type="button" onclick="deleteRule(' +ruleId+
-            ')" class="btn btn-default">删除</button>\n' +
-            '                        <button type="button" class="btn btn-default" onclick="showModal(' +ruleId+
-            ')">\n' +
-            '                            预览\n' +
-            '                        </button>\n' +
-            '                        <button type="button" onclick="addNewOption()" class="btn btn-info pull-right">继续添加</button>\n' +
-            '                    </div>\n' +
-            '                </div>\n' +
-            '            </div>');
-        ruleId++;
-    }
-
-    addRatio = function (id) { // 添加文本框f
-        var table = $('#table'+id);
-        ratioIndex++;
-        table.append('<tr type="ratio">\n' +
-            '                                        <td>\n' +
-            '                                            <div class="form-group">\n' +
-            '                                                <div class="radio">\n' +
-            '                                                    <label>\n' +
-            '                                                        <input type="radio" name="optionsRadios' + ratioIndex+
-            '"  value="option1" checked="checked"/>\n' +
-            '                                                        Option one\n' +
-            '                                                    </label>\n' +
-            '                                                </div>\n' +
-            '                                                <div class="radio">\n' +
-            '                                                    <label>\n' +
-            '                                                        <input type="radio" name="optionsRadios' +ratioIndex+
-            '"  value="option2"/>\n' +
-            '                                                        Option two\n' +
-            '                                                    </label>\n' +
-            '                                                </div>\n' +
-            '                                                <div class="radio">\n' +
-            '                                                    <label>\n' +
-            '                                                        <input type="radio" name="optionsRadios' +ratioIndex+
-            '"  value="option3" />\n' +
-            '                                                        Option three\n' +
-            '                                                    </label>\n' +
-            '                                                </div>\n' +
-            '                                            </div>\n' +
-            '                                        </td>\n' +
-            '                                        <td>\n' +
-            '                                            <input type="text" class="form-control" placeholder="选项说明"/>\n' +
-            '                                        </td>\n' +
-            '                                        <td>\n' +
-            '                                            <input type="text" class="form-control" placeholder="选项数据 请用;将选项分隔"/>\n' +
-            '                                        </td>\n' +
-            '                                        <td>\n' +
-            '                                            <button onclick="upTr(this)" class="btn btn-default">上移</button>\n' +
-            '                                            <button onclick="downTr(this,' +id+
-            ')" class="btn btn-default">下移</button>\n' +
-            '                                            <button onclick="deleteTr(this)" class="btn btn-warning">删除</button>\n' +
-            '                                        </td>\n' +
-            '                                    </tr>')
-
-    }
-
-    addText = function (id) { // 添加多选框
-        var table = $('#table'+id);
-        table.append('<tr type="text">\n' +
-            '                                        <td>\n' +
-            '                                            <input type="text" class="form-control" placeholder="请输入说明文字"/>\n' +
-            '                                        </td>\n' +
-            '                                        <td>\n' +
-            '                                            <input type="text" class="form-control" placeholder="请输入说明文字"/>\n' +
-            '                                        </td>\n' +
-            '                                        <td>\n' +
-            '                                        </td>\n' +
-            '                                        <td>\n' +
-            '                                            <button onclick="upTr(this)" class="btn btn-default">上移</button>\n' +
-            '                                            <button onclick="downTr(this,' +id+
-            ')" class="btn btn-default">下移</button>\n' +
-            '                                            <button onclick="deleteTr(this)" class="btn btn-warning">删除</button>\n' +
-            '                                        </td>\n' +
-            '                                    </tr>')
-    }
-
-    addSingleCheck = function (id) { // 添加多选框
-        var table = $('#table'+id);
-        table.append('<tr type="singleCheck">\n' +
-            '                                        <td>\n' +
-            '                                            <div class="form-group">\n' +
-            '                                                <div class="checkbox">\n' +
-            '                                                    <label>\n' +
-            '                                                        <input type="checkbox"/>\n' +
-            '                                                        Checkbox 1\n' +
-            '                                                    </label>\n' +
-            '                                                </div>\n' +
-            '                                            </div>\n' +
-            '                                        </td>\n' +
-            '                                        <td>\n' +
-            '                                            <input type="text" class="form-control" placeholder="请输入说明文字"/>\n' +
-            '                                        </td>\n' +
-            '                                        <td>\n' +
-            '                                            <input type="text" class="form-control" placeholder="请输入说明文字"/>\n' +
-            '                                        </td>\n' +
-            '                                        <td>\n' +
-            '                                            <button onclick="upTr(this)" class="btn btn-default">上移</button>\n' +
-            '                                            <button onclick="downTr(this,' +id+
-            ')" class="btn btn-default">下移</button>\n' +
-            '                                            <button onclick="deleteTr(this)" class="btn btn-warning">删除</button>\n' +
-            '                                        </td>\n' +
-            '                                    </tr>')
-    }
-
-    addCheck = function (id) {
-        var table = $('#table'+id);
-        table.append('<tr type="check">\n' +
-            '                                        <td>\n' +
-            '                                            <div class="form-group">\n' +
-            '                                                <div class="checkbox">\n' +
-            '                                                    <label>\n' +
-            '                                                        <input type="checkbox"/>\n' +
-            '                                                        Checkbox 1\n' +
-            '                                                    </label>\n' +
-            '                                                </div>\n' +
-            '\n' +
-            '                                                <div class="checkbox">\n' +
-            '                                                    <label>\n' +
-            '                                                        <input type="checkbox"/>\n' +
-            '                                                        Checkbox 2\n' +
-            '                                                    </label>\n' +
-            '                                                </div>\n' +
-            '\n' +
-            '                                                <div class="checkbox">\n' +
-            '                                                    <label>\n' +
-            '                                                        <input type="checkbox" disabled="disable"/>\n' +
-            '                                                        Checkbox disabled\n' +
-            '                                                    </label>\n' +
-            '                                                </div>\n' +
-            '                                            </div>\n' +
-            '                                        </td>\n' +
-            '                                        <td>\n' +
-            '                                            <input type="text" class="form-control" placeholder="选项说明"/>\n' +
-            '                                        </td>\n' +
-            '                                        <td>\n' +
-            '                                            <input type="text" class="form-control" placeholder="选项数据"/>\n' +
-            '                                        </td>\n' +
-            '                                        <td>\n' +
-            '                                            <button onclick="upTr(this)" class="btn btn-default">上移</button>\n' +
-            '                                            <button onclick="downTr(this,' +id +
-            ')" class="btn btn-default">下移</button>\n' +
-            '                                            <button onclick="deleteTr(this)" class="btn btn-warning">删除</button>\n' +
-            '                                        </td>\n' +
-            '                                    </tr>')
-
-    };
-
-    deleteTr = function(element){
-        element.parentNode.parentNode.remove();
-    }
-    
-    upTr = function(element){
-        var $tr = $(element).parents("tr");
-        if ($tr.index() != 0) {
-            $tr.prev().before($tr);
-        }
-    }
-    
-    downTr  = function (element,id) {
-        var length = $('#table'+id +' tr').length;
-        var $tr = $(element).parents("tr");
-        if ($tr.index() != length - 1) {
-            $tr.next().after($tr);
-        }
-    }
-
-    deleteRule = function (id) {
-        $('#rule'+id).remove()
-    }
-
-    showModal = function (id) {
-        var body = $('#formBody');
-        var myTable = document.getElementById("table"+id);
-        body.html("");
-        var da1 = $('#fitlist'+id).val();
-        var selectedData = '<div class="form-group">\n' +
-            '                            <label class="col-sm-2 control-label">适用试题</label>\n' +
-            '                            <div class="col-sm-10">\n' +
-            getSpanHtml(getData(da1))+
-            '                            </div>\n' +
-            '                        </div>';
-        body.append(selectedData);
-        var rowNum =  myTable.rows.length;
-        var tempdata  =  [];
-        var td0;
-        var tr;
-        var type;
-        for(var i = 0;i<rowNum;i++){
-            tr = myTable.rows[i];
-            type=tr.getAttribute("type");
-            if(type=="singleCheck"){
-                var singleCheckTip = myTable.rows[i].cells[1].children[0].value;
-                var singleCheckData = myTable.rows[i].cells[2].children[0].value;
-                console.log(singleCheckData,singleCheckTip)
-                var singleCheckTemp = '<div class="form-group">\n' +
-                    '                            <label class="col-sm-2 control-label">' +singleCheckTip+
-                    '</label>\n' +
-                    '                            <div class="col-sm-10">\n' ;
-
-                singleCheckTemp+='<div class="checkbox">\n' +
-                    '                                                    <label>\n' +
-                    '                                                        <input type="checkbox"/>\n' +singleCheckData+
-                    '                                                    </label>\n' +
-                    '                                                </div>';
-
-                singleCheckTemp+=
-                    '                                            </div>\n' +
-                    '                                        </div>';
-                body.append(singleCheckTemp);
-            }else if(type=="check"){
-                var checkTip = myTable.rows[i].cells[1].children[0].value;
-                var checkData = myTable.rows[i].cells[2].children[0].value;
-                var checkArr = checkData.split(';');
-                var checkTemp = '<div class="form-group">\n' +
-                    '                            <label class="col-sm-2 control-label">' +checkTip+
-                    '</label>\n' +
-                    '                            <div class="col-sm-10">\n' ;
-                for( var  checkJ = 0;checkJ<checkArr.length;checkJ++){
-                    checkTemp+='<div class="checkbox">\n' +
-                        '                                                    <label>\n' +
-                        '                                                        <input type="checkbox"/>\n' +checkArr[checkJ]+
-                        '                                                    </label>\n' +
-                        '                                                </div>';
-                }
-                checkTemp+=
-                    '                                            </div>\n' +
-                    '                                        </div>';
-                body.append(checkTemp);
-            }else if(type=="ratio"){
-                var ratioTip = myTable.rows[i].cells[1].children[0].value;
-                var ratioData = myTable.rows[i].cells[2].children[0].value;
-                var ratioArr = ratioData.split(';');
-                var ratioTemp = '<div class="form-group">\n' +
-                    '                            <label class="col-sm-2 control-label">' +ratioTip+
-                    '</label>\n' +
-                    '                            <div class="col-sm-10">\n' ;
-
-                for( var  ratioJ = 0;ratioJ<ratioArr.length;ratioJ++){
-                    ratioTemp+='<div class="radio">\n' +
-                        '                                                    <label>\n' +
-                        '                                                        <input type="radio" name="optionsRadios' + i+
-                        '"  value="' +ratioArr[ratioJ]+
-                        '"/>\n' +ratioArr[ratioJ]+
-                        '                                                    </label>\n' +
-                        '                                                </div>';
-                }
-                ratioTemp+=
-                    '                                            </div>\n' +
-                    '                                        </div>';
-                body.append(ratioTemp);
-            }else if(type=="text"){
-                var textData = myTable.rows[i].cells[1].children[0].value;
-                body.append('<div class="form-group">\n' +
-                    '                            <label class="col-sm-2 control-label">' +textData+
-                    '</label>\n' +
-                    '                            <div class="col-sm-10">\n' +
-                    '<input class="form-control"  placeholder="请输入"/>'+
-                    '                            </div>\n' +
-                    '                        </div>')
-            }
-        }
-        $('#modal-default').modal('show');
-    }
-    /*]]>*/