diff --git a/back/application/api/controller/Contract.php b/back/application/api/controller/Contract.php index 419431d..ad2665a 100644 --- a/back/application/api/controller/Contract.php +++ b/back/application/api/controller/Contract.php @@ -239,7 +239,7 @@ class Contract extends Common if (!isset($param['contract_url']) || $param['contract_url'] == '') { $insert_info['contract_url'] = ''; } else { - $insert_info['contract_url'] = $param['cosssntract_url']; + $insert_info['contract_url'] = $param['contract_url']; // 同理,contract_file_name 也建议做存在性检查,避免同理报错 $insert_info['contract_file_name'] = isset($param['contract_file_name']) ? $param['contract_file_name'] : ''; } @@ -322,4 +322,109 @@ class Contract extends Common return $this->sendError('删除失败'); } } + + // 合同检索 + public function searchContracts() + { + $param = request()->param(); + + $currPage = isset($param['currPage']) ? $param['currPage'] : 1; + $pageSize = isset($param['pageSize']) ? $param['pageSize'] : 20; + + // 构建查询条件 + $where = ['del_time' => null]; + + // 时间范围筛选 + if (isset($param['start_date']) && !empty($param['start_date'])) { + $where['create_time'] = ['>=', $param['start_date']]; + } + if (isset($param['end_date']) && !empty($param['end_date'])) { + if (isset($where['create_time'])) { + $where['create_time'] = [ + ['>=', $param['start_date']], + ['<=', $param['end_date']] + ]; + } else { + $where['create_time'] = ['<=', $param['end_date']]; + } + } + + // 合同分类筛选 + if (isset($param['contract_category']) && $param['contract_category'] !== '' && $param['contract_category'] !== '0') { + $where['contract_category'] = $param['contract_category']; + } + + // 查询合同列表 + $contractList = db('contract_info') + ->where($where) + ->order('contract_id', 'desc') + ->page($currPage, $pageSize) + ->select(); + + // 遍历合同列表,补充关联信息 + foreach ($contractList as &$contract) { + // 获取合同类型名称 + if ($contract['contract_type']) { + $contractType = db('contract_type') + ->where('type_id', $contract['contract_type']) + ->field('type_name') + ->find(); + $contract['contract_type_name'] = $contractType ? $contractType['type_name'] : ''; + } else { + $contract['contract_type_name'] = ''; + } + + // 获取合同分类名称 + switch ($contract['contract_category']) { + case 1: + $contract['contract_category_name'] = '销售合同'; + break; + case 2: + $contract['contract_category_name'] = '销售技术协议'; + break; + case 3: + $contract['contract_category_name'] = '采购合同'; + break; + case 4: + $contract['contract_category_name'] = '采购及技术协议'; + break; + case 5: + $contract['contract_category_name'] = '其他'; + break; + default: + $contract['contract_category_name'] = ''; + } + + // 获取项目名称 + if ($contract['project_id']) { + $project = db('project_info') + ->where('project_id', $contract['project_id']) + ->field('project_name') + ->find(); + $contract['project_name'] = $project ? $project['project_name'] : ''; + } else { + $contract['project_name'] = ''; + } + + // 获取合作伙伴名称 + if ($contract['partner_id']) { + $partner = db('partner_company') + ->where('company_id', $contract['partner_id']) + ->field('company_name') + ->find(); + $contract['partner_name'] = $partner ? $partner['company_name'] : ''; + } else { + $contract['partner_name'] = ''; + } + } + unset($contract); + + // 查询总记录数 + $total = db('contract_info')->where($where)->count(); + + $res['list'] = $contractList; + $res['total'] = $total; + + return $this->sendSuccess($res); + } } \ No newline at end of file diff --git a/front/src/api/contract.js b/front/src/api/contract.js index 48d4708..551d947 100644 --- a/front/src/api/contract.js +++ b/front/src/api/contract.js @@ -90,5 +90,14 @@ export default { method: 'post', data: param }) + }, + + // 合同检索 + searchContracts(param) { + return request({ + url: `/Contract/searchContracts`, + method: 'post', + data: param + }) } } diff --git a/front/src/views/contract-mgr/contractsearch.vue b/front/src/views/contract-mgr/contractsearch.vue index 66a8592..a2e9b37 100644 --- a/front/src/views/contract-mgr/contractsearch.vue +++ b/front/src/views/contract-mgr/contractsearch.vue @@ -20,47 +20,309 @@ value-format="yyyy-MM-dd" clearable/> - - + + - - + + + + 查询 + 重置 + + + + +
+ 合同列表 + 共 {{ total }} 条记录 +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+
+ + + + Preview + -
-

该文件类型({{ fileExtension }})需要下载后查看

- - 立即下载 {{ fileExtension.toUpperCase() }} 文件 - -
-
+
+
+ + 增加合同类型 +
+
+ + 增加合同信息 +
+
+ + + + + + + + + 取 消 + 确 定 + + -
-
- - 增加合同类型 -
-
- - 增加合同信息 -
-
+ + + + + + + + + + + + + + + + + 销售合同 + 采购合同 + - - - - - - - - - 取 消 - 确 定 - - + + + + + + 点击上传 +
+ 支持jpg/jpeg/png/pdf/pptx/xlsx/xls/docx/doc/ppt/zip/rar文件,不超过100MB +
+
+
+
+ + 取 消 + 确 定 + +
- - - - - - - - - - - - - - - - - 销售合同 - 采购合同 - - - - - - - - - - 点击上传 -
- 支持jpg/jpeg/png/pdf/pptx/xlsx/xls/docx/doc/ppt/zip/rar文件,不超过100MB -
-
-
-
- - 取 消 - 确 定 - -
- - - - - - - - - - - - - - - - - - 销售合同 - 采购合同 - - - - - - - - 点击上传 -
- 支持jpg/jpeg/png/pdf/pptx/xlsx/xls/docx/doc/ppt/zip/rar文件,不超过100MB -
-
-
-
- - 取 消 - 确 定 - -
- + + + + + + + + + + + + + + + + + 销售合同 + 采购合同 + + + + + + + 点击上传 +
+ 支持jpg/jpeg/png/pdf/pptx/xlsx/xls/docx/doc/ppt/zip/rar文件,不超过100MB +
+
+
+
+ + 取 消 + 确 定 + +
+