# 信贷客户实体关联维护功能 - 前端实施方案 ## 一、功能概述 基于员工实体关系维护功能开发信贷客户实体关联维护功能,前端交互方式与员工实体关系完全一致,主要差异在于: 1. **无员工下拉搜索**:身份证号直接输入,不使用远程搜索 2. **无姓名列显示**:列表和详情中不显示姓名字段 3. **API路径不同**:调用 `/ccdi/custEnterpriseRelation/*` 接口 --- ## 二、前端文件清单 | 文件名 | 路径 | 说明 | |--------|------|------| | index.vue | views/ccdiCustEnterpriseRelation/ | 主页面组件 | | ccdiCustEnterpriseRelation.js | api/ | API接口定义 | --- ## 三、API接口定义 ### 3.1 ccdiCustEnterpriseRelation.js **与员工实体关系API的差异**:仅URL路径不同 ```javascript import request from '@/utils/request' // 查询信贷客户实体关联列表 export function listRelation(query) { return request({ url: '/ccdi/custEnterpriseRelation/list', method: 'get', params: query }) } // 查询信贷客户实体关联详情 export function getRelation(id) { return request({ url: '/ccdi/custEnterpriseRelation/' + id, method: 'get' }) } // 新增信贷客户实体关联 export function addRelation(data) { return request({ url: '/ccdi/custEnterpriseRelation', method: 'post', data: data }) } // 修改信贷客户实体关联 export function updateRelation(data) { return request({ url: '/ccdi/custEnterpriseRelation', method: 'put', data: data }) } // 删除信贷客户实体关联 export function delRelation(ids) { return request({ url: '/ccdi/custEnterpriseRelation/' + ids, method: 'delete' }) } // 导出信贷客户实体关联 export function exportRelation(query) { return request({ url: '/ccdi/custEnterpriseRelation/export', method: 'post', params: query }) } // 下载导入模板 export function importTemplate() { return request({ url: '/ccdi/custEnterpriseRelation/importTemplate', method: 'post' }) } // 导入信贷客户实体关联 export function importData(file) { const formData = new FormData() formData.append('file', file) return request({ url: '/ccdi/custEnterpriseRelation/importData', method: 'post', data: formData }) } // 查询导入状态 export function getImportStatus(taskId) { return request({ url: '/ccdi/custEnterpriseRelation/importStatus/' + taskId, method: 'get' }) } // 查询导入失败记录 export function getImportFailures(taskId, pageNum, pageSize) { return request({ url: '/ccdi/custEnterpriseRelation/importFailures/' + taskId, method: 'get', params: { pageNum, pageSize } }) } ``` --- ## 四、主页面组件 ### 4.1 index.vue **与员工实体关系前端的关键差异**: | 差异项 | 员工实体关系 | 信贷客户实体关联 | |--------|-------------|-----------------| | 员工下拉搜索 | 有 | 无,直接输入 | | 列表姓名列 | 有 | 无 | | 详情姓名显示 | 有 | 无 | | API导入路径 | /ccdi/staffEnterpriseRelation/importData | /ccdi/custEnterpriseRelation/importData | | localStorage key | staff_enterprise_relation_import_last_task | cust_enterprise_relation_import_last_task | | 权限标识 | ccdi:staffEnterpriseRelation:* | ccdi:custEnterpriseRelation:* | | 字典 | dicts: ['ccdi_relation_status', 'ccdi_data_source'] | 相同 | ```vue ``` --- ## 五、与员工实体关系前端代码对比 ### 5.1 关键差异总结 | 对比项 | 员工实体关系 | 信贷客户实体关联 | |--------|-------------|-----------------| | 组件名 | StaffEnterpriseRelation | CustEnterpriseRelation | | API文件 | ccdiStaffEnterpriseRelation.js | ccdiCustEnterpriseRelation.js | | 员工下拉搜索 | 有(searchStaff方法) | 无,直接输入 | | 列表姓名列 | 有 personName 列 | 无 | | 详情姓名显示 | 有 | 无 | | 上传URL | /ccdi/staffEnterpriseRelation/importData | /ccdi/custEnterpriseRelation/importData | | localStorage key | staff_enterprise_relation_import_last_task | cust_enterprise_relation_import_last_task | | 权限标识 | ccdi:staffEnterpriseRelation:* | ccdi:custEnterpriseRelation:* | | 标题/提示文本 | 员工实体关系 | 信贷客户实体关联 | ### 5.2 移除的功能代码 信贷客户实体关联前端**不需要**以下员工实体关系特有的功能: 1. **员工搜索相关数据**: - `staffOptions: []` - `staffLoading: false` 2. **员工搜索相关方法**: - `searchStaff(query)` - 远程搜索员工 - `handleSelectFocus()` - 下拉框聚焦加载 3. **员工搜索相关导入**: - `import {listBaseStaff} from "@/api/ccdiBaseStaff";` 4. **员工下拉选择组件**(表单中): ```vue ``` 替换为: ```vue ``` 5. **列表中的员工姓名列**: ```vue ``` 信贷客户实体关联无此列。 --- ## 六、实施步骤 1. 创建 `src/api/ccdiCustEnterpriseRelation.js` 文件 2. 创建 `src/views/ccdiCustEnterpriseRelation/index.vue` 文件 3. 配置路由(在数据库菜单表中配置) 4. 测试功能 --- ## 七、菜单配置SQL ```sql -- 信贷客户实体关联菜单 INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, menu_type, visible, status, perms, icon, create_by, create_time, remark) VALUES ('信贷客户实体关联', 2000, 3, 'custEnterpriseRelation', 'ccdiCustEnterpriseRelation/index', 'C', '0', '0', 'ccdi:custEnterpriseRelation:list', 'peoples', 'admin', NOW(), '信贷客户实体关联菜单'); -- 按钮权限 SET @parentId = LAST_INSERT_ID(); INSERT INTO sys_menu (menu_name, parent_id, order_num, path, component, menu_type, visible, status, perms, icon, create_by, create_time) VALUES ('信贷客户实体关联查询', @parentId, 1, '#', '', 'F', '0', '0', 'ccdi:custEnterpriseRelation:query', '#', 'admin', NOW()), ('信贷客户实体关联新增', @parentId, 2, '#', '', 'F', '0', '0', 'ccdi:custEnterpriseRelation:add', '#', 'admin', NOW()), ('信贷客户实体关联修改', @parentId, 3, '#', '', 'F', '0', '0', 'ccdi:custEnterpriseRelation:edit', '#', 'admin', NOW()), ('信贷客户实体关联删除', @parentId, 4, '#', '', 'F', '0', '0', 'ccdi:custEnterpriseRelation:remove', '#', 'admin', NOW()), ('信贷客户实体关联导出', @parentId, 5, '#', '', 'F', '0', '0', 'ccdi:custEnterpriseRelation:export', '#', 'admin', NOW()), ('信贷客户实体关联导入', @parentId, 6, '#', '', 'F', '0', '0', 'ccdi:custEnterpriseRelation:import', '#', 'admin', NOW()); ``` **注意**:`parent_id = 2000` 需要根据实际的父菜单ID调整。