diff --git a/app/adminapi/controller/project/ProjectController.php b/app/adminapi/controller/project/ProjectController.php
index abf9f6b5d..70f7f2aad 100644
--- a/app/adminapi/controller/project/ProjectController.php
+++ b/app/adminapi/controller/project/ProjectController.php
@@ -20,6 +20,10 @@ use app\adminapi\controller\BaseAdminController;
 use app\adminapi\lists\project\ProjectLists;
 use app\adminapi\logic\project\ProjectLogic;
 use app\adminapi\validate\project\ProjectValidate;
+use app\common\model\auth\Admin;
+use app\common\model\contract\Contract;
+use app\common\model\custom\Custom;
+use app\common\model\project\Project;
 
 
 /**
@@ -103,6 +107,41 @@ class ProjectController extends BaseAdminController
         $result = ProjectLogic::detail($params);
         return $this->data($result);
     }
-
+	
+	//项目合同列表
+	public function contracts(): \think\response\Json
+	{
+		$params = $this->request->get(['project_id','page_no','page_size']);
+		if(empty($params['project_id'])){
+			return $this->fail('参数错误');
+		}
+		$pageNo = empty($params['page_no']) ? 1 : $params['page_no'];
+		$pageSize = empty($params['page_size']) ? 15 : $params['page_size'];
+		$project = Project::where('id',$params['project_id'])->findOrEmpty();
+		if($project->isEmpty()){
+			return $this->fail('项目数据不存在');
+		}
+		$data = Contract::field('id,customer_id,contract_name,contract_code,contract_type,contract_status,business_director,contract_date,amount,amount_daxie')
+				->where('customer_id',$project['custom_id'])
+				->select()->each(function($item)use($project){
+					$item['contract_type_text'] = $item->contract_type_text;
+					$item['contract_status_text'] = $item->contract_status_text;
+					$custom = Custom::field('name')->where('id',$item['customer_id'])->findOrEmpty();
+					$admin = Admin::field('name')->where('id',$item['business_director'])->findOrEmpty();
+					$item['project_name'] = $project['name'];
+					$item['project_code'] = $project['project_code'];
+					$item['custom_name'] = $custom['name'];
+					$item['business_director_name'] = $admin['name'];
+					return $item;
+				})->toArray();
+		$count = Contract::field('id')->where('customer_id',$project['custom_id'])->count();
+		$result = [
+			'count' => $count,
+			'page_no' => $pageNo,
+			'page_size' => $pageSize,
+			'lists' => $data
+		];
+		return $this->success('请求成功',$result);
+	}
 
 }
\ No newline at end of file
diff --git a/app/adminapi/lists/custom_service/CustomServiceLists.php b/app/adminapi/lists/custom_service/CustomServiceLists.php
index 448f3670e..e0323981d 100644
--- a/app/adminapi/lists/custom_service/CustomServiceLists.php
+++ b/app/adminapi/lists/custom_service/CustomServiceLists.php
@@ -16,8 +16,11 @@ namespace app\adminapi\lists\custom_service;
 
 
 use app\adminapi\lists\BaseAdminDataLists;
+use app\common\model\auth\Admin;
+use app\common\model\custom\Custom;
 use app\common\model\custom_service\CustomService;
 use app\common\lists\ListsSearchInterface;
+use app\common\model\project\Project;
 use think\facade\Db;
 
 /**
@@ -64,9 +67,13 @@ class CustomServiceLists extends BaseAdminDataLists implements ListsSearchInterf
             ->order(['cs.id' => 'desc'])
             ->select()->each(function($item, $key){
                 //关联数据后续添加 
-                $item['approve_no'] = '付款单号';
-                $item['approve_step'] = '流程步骤';
-                $item['approve_settle_status'] = 1;
+                $project = Project::field('name,project_code')->where('id',$item['project_id'])->findOrEmpty();
+				$custom = Custom::field('name')->where('id',$item['custom_id'])->findOrEmpty();
+				$admin = Admin::field('name')->where('id',$item['processed_admin_id'])->findOrEmpty();
+				$item['project_name'] = $project['name'];
+				$item['project_code'] = $project['project_code'];
+				$item['custom_name'] = $custom['name'];
+				$item['processed_admin_name'] = $admin['name'];
                 return $item;
             })
             ->toArray();
diff --git a/app/common/model/contract/Contract.php b/app/common/model/contract/Contract.php
index 29203fabf..cc84038c1 100644
--- a/app/common/model/contract/Contract.php
+++ b/app/common/model/contract/Contract.php
@@ -16,6 +16,7 @@ namespace app\common\model\contract;
 
 
 use app\common\model\BaseModel;
+use app\common\model\dict\DictData;
 use think\model\concern\SoftDelete;
 
 
@@ -49,5 +50,17 @@ class Contract extends BaseModel
     {
         return $this->hasOne(\app\common\model\dept\Dept::class, 'id', 'dept_id');
     }
+	
+	public function getContractTypeTextAttr($value,$data): string
+	{
+		$dictData = DictData::where('type_value','contract_type')->column('name','value');
+		return $dictData[$data['contract_type']];
+	}
+	
+	public function getContractStatusTextAttr($value,$data): string
+	{
+		$dictData = DictData::where('type_value','contract_status')->column('name','value');
+		return $dictData[$data['contract_status']];
+	}
     
 }
\ No newline at end of file
diff --git a/app/common/model/custom_service/CustomService.php b/app/common/model/custom_service/CustomService.php
index a24fcf0ec..80584eda2 100644
--- a/app/common/model/custom_service/CustomService.php
+++ b/app/common/model/custom_service/CustomService.php
@@ -32,7 +32,7 @@ class CustomService extends BaseModel
 
     public function getDateAttr($value)
     {
-        return empty($value) ? '' : date('Y-m-d H:i:s', $value);
+        return empty($value) ? '' : date('Y-m-d', $value);
     }
 
     public function custom()