diff --git a/src/main/java/cn/palmte/work/controller/backend/ProjectController.java b/src/main/java/cn/palmte/work/controller/backend/ProjectController.java
index 221405f..a06dc8c 100644
--- a/src/main/java/cn/palmte/work/controller/backend/ProjectController.java
+++ b/src/main/java/cn/palmte/work/controller/backend/ProjectController.java
@@ -122,6 +122,13 @@ public class ProjectController extends BaseController {
                 Task currentTask = actUtil.getCurrentTask(project.getId());
                 String actTaskName = currentTask == null ? "" : currentTask.getName();
                 project.setActTaskName(actTaskName);
+
+                ProjectBudget projectBudget = projectBudgetRepository.findFirstByProjectId(project.getId());
+                if (projectBudget == null || projectBudget.getContractBudget() == null || "".equals(projectBudget.getContractBudget())) {
+                    project.setIsContract(0);
+                } else {
+                    project.setIsContract(1);
+                }
             }
 
             int offset = (pageNumber - 1) * pageSize;
@@ -966,6 +973,21 @@ public class ProjectController extends BaseController {
         webDataBinder.addCustomFormatter(new NumberStyleFormatter());
     }
 
+    /**
+     * 保存合同名称
+     */
+    @RequestMapping("/saveContract")
+    @ResponseBody
+    public ResponseMsg saveContract(@RequestParam String contractBudget,@RequestParam int id) {
+        ProjectBudget projectBudget = projectBudgetRepository.findFirstByProjectId(id);
+        if (projectBudget == null) {
+            return ResponseMsg.buildFailedMsg("失败");
+        }
+        projectBudget.setContractBudget(contractBudget);
+        projectBudgetRepository.save(projectBudget);
+        return ResponseMsg.buildSuccessMsg("成功");
+    }
+
     /**
      * 保存项目与用户的关系
      */
@@ -1406,4 +1428,6 @@ public class ProjectController extends BaseController {
     public ResponseMsg stageRefreshSave(@RequestBody String json, @PathVariable int projectId) {
         return projectService.stageRefreshSave(json,projectId);
     }
+
+
 }
diff --git a/src/main/java/cn/palmte/work/model/Project.java b/src/main/java/cn/palmte/work/model/Project.java
index 63af0c3..bf84daf 100644
--- a/src/main/java/cn/palmte/work/model/Project.java
+++ b/src/main/java/cn/palmte/work/model/Project.java
@@ -323,6 +323,9 @@ public class Project {
     @Transient
     private String remark;
 
+    @Transient
+    private int isContract;
+
     /**
      * 审批任务节点
      */
@@ -1013,6 +1016,14 @@ public class Project {
         this.remark = remark;
     }
 
+    public int getIsContract() {
+        return isContract;
+    }
+
+    public void setIsContract(int isContract) {
+        this.isContract = isContract;
+    }
+
     public Integer getStage() {
         return stage;
     }
diff --git a/src/main/java/cn/palmte/work/model/ProjectBudget.java b/src/main/java/cn/palmte/work/model/ProjectBudget.java
index 20af118..6807dbc 100644
--- a/src/main/java/cn/palmte/work/model/ProjectBudget.java
+++ b/src/main/java/cn/palmte/work/model/ProjectBudget.java
@@ -37,6 +37,11 @@ public class ProjectBudget {
      */
     @Column(name = "name_budget")
     private String nameBudget;
+    /**
+     * 合同名称
+     */
+    @Column(name = "contract_budget")
+    private String contractBudget;
     /**
      * 项目类型:1工程集成类、2设备集成类、3战略合作类
      */
@@ -229,6 +234,14 @@ public class ProjectBudget {
         this.nameBudget = nameBudget;
     }
 
+    public String getContractBudget() {
+        return contractBudget;
+    }
+
+    public void setContractBudget(String contractBudget) {
+        this.contractBudget = contractBudget;
+    }
+
     public int getTypeBudget() {
         return typeBudget;
     }
diff --git a/src/main/resources/templates/admin/project_budget_edit.ftl b/src/main/resources/templates/admin/project_budget_edit.ftl
index f733be0..f5e811d 100644
--- a/src/main/resources/templates/admin/project_budget_edit.ftl
+++ b/src/main/resources/templates/admin/project_budget_edit.ftl
@@ -338,6 +338,15 @@
                                        name="nameBudget" placeholder="请输入项目名称(1000字符以内)" maxlength="1000" value="${projectBudget.nameBudget!}"  />
                             </td>
                         </tr>
+                        <#if project.approveStatusBudget == 2>
+                            <tr class="am-text-nowrap">
+                                <th class="table-title" colspan="1" ><span style="color: red;">*</span><span style="font-size: 15px">合同名称:</span></th>
+                                <td class="table-title" colspan="5" >
+                                    <input type="text" id="contractBudget" style="border-style:none;" data-validate-async data-validation-message="请输入合同名称(1000字符以内)"
+                                           name="contractBudget" placeholder="请输入合同名称(1000字符以内)" maxlength="1000" value="${projectBudget.contractBudget!}" onkeyup="saveContract('${base}/project/saveContract')"/>
+                                </td>
+                            </tr>
+                        </#if>
                         <tr class="am-text-nowrap">
                             <th class="table-title" colspan="1" ><span style="color: red;">*</span><span style="font-size: 15px">项目类型:</span></th>
                             <td class="table-title" colspan="1" >
@@ -1459,6 +1468,21 @@
         }
     };
 
+    function saveContract(url) {
+        let contractBudget = $("#contractBudget").val();
+        let id = $("#id").val();
+        $.ajax({
+            url: url,
+            data: {contractBudget: contractBudget, id: id},
+            type: "post",
+            dataType: "json",
+            async: false,
+            success: function (data) {
+                result = data.status;
+            }
+        });
+    }
+
     function ajaxUploadFile(id, url) {
             // if($('#modal')){
             //     $('#modal').modal('open');
diff --git a/src/main/resources/templates/admin/project_list.ftl b/src/main/resources/templates/admin/project_list.ftl
index d610d83..e3267ad 100644
--- a/src/main/resources/templates/admin/project_list.ftl
+++ b/src/main/resources/templates/admin/project_list.ftl
@@ -79,7 +79,6 @@
                     <input type="hidden" id="keywords" name="keywords" value='${keywords!""}'/>
                     <input type="hidden" id="pageNumber" name="pageNumber" value='${pageNumber!}'/>
                     <input type="hidden" id="orderTypeStr" name="orderTypeStr" value='${orderTypeStr!""}'/>
-                    <input type="hidden" id="pager" name="pager" value='${pager!}'/>
                     <style>
                         .flex-row {
                             display: -webkit-box;
@@ -992,7 +991,7 @@
                                             <#if admin.getRoleLevel() == 6 && ((list.status==5 && list.approveStatusBudget=2) || (list.status=10 && list.approveStatusSettle=2)) >
                                                 <button type="button"
                                                         class="am-btn am-btn-default am-btn-xs am-text-secondary"
-                                                        onclick="location.href='${base}/project/settle/add?id=${list.id}'"><span
+                                                        onclick="checkContractName(${list.id}, ${list.isContract!0})"><span
                                                             class="am-icon-pencil-square-o"></span>填写结算表
                                                 </button>
                                             </#if>
@@ -1001,7 +1000,7 @@
                                             <#if admin.getRoleLevel() = 6 && list.status==10 && list.approveStatusSettle!=1>
                                                 <button type="button"
                                                         class="am-btn am-btn-default am-btn-xs am-text-secondary"
-                                                        onclick="location.href='${base}/project/settle/edit?id=${list.id}'"><span
+                                                        onclick="checkContractName2(${list.id}, ${list.isContract!0})"><span
                                                             class="am-icon-pencil-square-o"></span>编辑结算表
                                                 </button>
                                             </#if>
@@ -1324,6 +1323,21 @@
         }
     };
 
+    function checkContractName(id, isContract) {
+        if (isContract === 1) {
+            location.href = '${base}/project/settle/add?id=' + id;
+        } else {
+            layer.alert("请先填写预算表中的合同名称,再填写结算表");
+        }
+    }
+
+    function checkContractName2(id, isContract) {
+        if (isContract === 1) {
+            location.href = '${base}/project/settle/edit?id=' + id;
+        } else {
+            layer.alert("请先填写预算表中的合同名称,再填写结算表");
+        }
+    }
 
     var approve = function (id) {
         var pageNumber = $("#pageNumber").val();