日期: 2026-06-04
企业基本信息模块(enterprise)是招聘管理系统中的核心基础模块,负责管理招聘企业的基本信息。该模块采用 JeecgBoot 的前后端分离架构,前端基于 Vue3 + Ant Design Vue,后端基于 Spring Boot + MyBatis-Plus。
| 文件 | 用途 |
|---|---|
EnterpriseInfoList.vue |
企业信息列表页面,提供查询、新增、编辑、详情、删除、批量删除、导入导出等功能 |
EnterpriseInfo.api.ts |
企业信息 API 封装 |
EnterpriseInfo.data.ts |
列表页表格列配置(9列)与高级查询字段定义(26个查询字段) |
components/EnterpriseInfoForm.vue |
企业信息新增/编辑表单组件,含图片上传与视频上传 |
components/EnterpriseInfoModal.vue |
企业信息弹窗组件,包裹 EnterpriseInfoForm,全屏模式 |
components/EnterpriseInfoDetailModal.vue |
企业信息详情弹窗组件,使用 a-descriptions 只读展示 |
| 层次 | 文件 |
|---|---|
| DTO | dto/EnterpriseInfoDTO.java |
| VO | vo/EnterpriseInfoVO.java |
| Controller | controller/EnterpriseInfoController.java |
| Entity | entity/EnterpriseInfo.java |
| Service | service/IEnterpriseInfoService.java |
| Service Impl | service/impl/EnterpriseInfoServiceImpl.java |
| Mapper | mapper/EnterpriseInfoMapper.java |
| Mapper XML | mapper/xml/EnterpriseInfoMapper.xml |
| 功能 | 说明 |
|---|---|
| 分页列表查询 | 支持按单位名称、统一社会信用代码、联系人、所属行业等条件查询,9 列展示 |
| 新增 | 全屏表单,支持 35 个企业字段录入,含 logo 图片上传、宣传图片上传(最多5张)、宣传视频上传 |
| 编辑 | 复用新增表单,预填充已有数据 |
| 详情 | 表单禁用模式查看企业全部信息 |
| 删除 / 批量删除 | 支持单条删除和批量删除,删除前弹窗确认 |
| 导入 / 导出 Excel | 基于 Jeecg 标准 Excel 导入导出功能 |
| 高级查询 | 26 个查询字段,支持灵活的筛选条件 |
| 企业标签 | 新增/编辑时支持多选企业标签,标签数据来源于企业标签库(EnterpriseTag),自动维护 enterprise_tag_relation 关联表 |
| 企业下拉列表 | 单独接口 /listForSelect,返回 id 和 companyName,供岗位信息等模块关联选择企业 |
| 字段必填校验 | 前端(Ant Design Vue Form 校验)+ 后端(Service 层 validateRequiredFields)双重校验 |
共 16 个必填字段:单位名称、统一社会信用代码、注册地址行政区划、单位类型、经济类型、所属行业、数据来源、人员规模、联系人、联系方式、接收平台短信推送、面向求职者会员开放、是否允许人社部门代报名、单位简介、办公地址行政区划、办公地址。
| 日期 | 内容 | 涉及文件 | 说明 |
|---|---|---|---|
| 2026-06-04 | 企业基本信息模块初始构建 | 前端 5 个文件 + 后端 6 个文件 | 完成企业信息管理的基础 CRUD 功能,含 Excel 导入导出与企业下拉列表接口 |
| 分类 | 字段 | 说明 |
|---|---|---|
| 登记信息 | companyName | 单位名称 |
| unifiedCreditCode | 统一社会信用代码 | |
| orgCode | 组织机构代码 | |
| establishDate | 成立日期 | |
| registeredCapital | 注册资本 | |
| regAddrDistrict | 注册地址行政区划 | |
| 经营信息 | businessStatus | 经营状态 |
| companyType | 单位类型 | |
| economyType | 经济类型 | |
| industry | 所属行业 | |
| isListedCompany | 是否上市公司 | |
| industryField | 行业领域 | |
| industryAdminDept | 行业主管部门 | |
| industryTag | 产业标签 | |
| companyPropertyTag | 单位属性标签 | |
| provinceOrCity | 省属或所属地市 | |
| companyAttribute | 单位属性 | |
| isHeadEnterprise | 是否为头部企业 | |
| isKeyEnterprise | 是否为重点企业 | |
| isKeyInstitution | 是否为重点事业单位 | |
| isStrategicIndustry | 是否属于20个战略性产业集群 | |
| 联系方式 | contactPerson | 联系人 |
| contactPhone | 联系方式 | |
| 电子邮箱 | ||
| postalCode | 邮政编码 | |
| website | 单位网站 | |
| faxNumber | 传真号码 | |
| officeAddrDistrict | 办公地址行政区划 | |
| officeAddress | 办公地址 | |
| 配置项 | dataSource | 数据来源 |
| companyTag | 单位标签 | |
| staffSize | 人员规模 | |
| acceptSmsPush | 接收平台短信推送 | |
| openToJobSeeker | 面向求职者会员开放 | |
| allowAgentSignup | 是否允许人社部门代报名 | |
| companyBenefits | 单位福利 | |
| companyIntro | 单位简介 | |
| 宣传资料 | logoImg | logo图片 |
| promotionalVideo | 宣传视频 | |
| promotionalImage | 宣传图片 | |
| 系统字段 | id / createBy / createTime / updateBy / updateTime / sysOrgCode | 系统内置字段 |
需求描述: 调整企业信息列表页的表格显示字段,并从岗位信息表(post_info)关联统计当前岗位数。
表格列调整(13列):
| 新列 | 对应字段 | 说明 |
|---|---|---|
| 序号 | index | 自定义列,customRender 显示行索引 |
| 统一信用代码 | unifiedCreditCode | — |
| 单位名称 | companyName | — |
| 单位类型 | companyType | — |
| 所属行业 | industry | — |
| 注册地址 | regAddrDistrict | 对应注册地址行政区划字段 |
| 经营地址 | officeAddress | 对应办公地址字段 |
| 企业规模 | staffSize | 原"人员规模"改名为"企业规模" |
| 是否重点企业 | isKeyEnterprise | 新增显示字段 |
| 单位标签 | companyTag | 新增显示字段 |
| 经营状态 | businessStatus | — |
| 当前岗位数 | postCount | 自 post_info 表关联统计 |
| 数据来源 | dataSource | 新增显示字段 |
删除的列: 注册资本、联系人、联系方式
涉及文件:
| 文件 | 操作 | 原因 |
|---|---|---|
jeecg-boot/jeecg-boot-module/jeecg-module-zjrs/.../enterprise/entity/EnterpriseInfo.java |
修改 | 移除 postCount 字段(已移到 VO) |
jeecg-boot/jeecg-boot-module/jeecg-module-zjrs/.../enterprise/vo/EnterpriseInfoVO.java |
新增 | 企业信息 VO,继承 EnterpriseInfo,包含 postCount 扩展字段 |
jeecg-boot/jeecg-boot-module/jeecg-module-zjrs/.../enterprise/mapper/EnterpriseInfoMapper.java |
修改 | 添加 queryPageWithPostCount 和 queryListWithPostCount 自定义查询方法,返回 EnterpriseInfoVO |
jeecg-boot/jeecg-boot-module/jeecg-module-zjrs/.../enterprise/mapper/xml/EnterpriseInfoMapper.xml |
修改 | 添加 LEFT JOIN 子查询 SQL,通过 enterprise_id 关联 post_info 表统计岗位数 |
jeecg-boot/jeecg-boot-module/jeecg-module-zjrs/.../enterprise/service/IEnterpriseInfoService.java |
修改 | 添加 queryPageWithPostCount 和 queryListWithPostCount 服务接口方法 |
jeecg-boot/jeecg-boot-module/jeecg-module-zjrs/.../enterprise/service/impl/EnterpriseInfoServiceImpl.java |
修改 | 实现自定义查询方法,委托给 Mapper 执行 |
jeecg-boot/jeecg-boot-module/jeecg-module-zjrs/.../enterprise/controller/EnterpriseInfoController.java |
修改 | 分页列表接口改用 queryPageWithPostCount;导出方法重写以包含岗位数,处理 selections 选中导出和全量导出两种场景 |
jeecgboot-vue3/src/views/recruitment/enterprise/EnterpriseInfo.data.ts |
修改 | 更新 columns 定义,调整为 12 列新字段配置 |
需求描述: 将企业信息模块中匹配数据字典的字段从普通文本输入改为下拉选择,列表页显示中文标签,导出时自动翻译字典值为中文。
涉及字典及字段映射:
| 字段名 | 字典编码 | 说明 |
|---|---|---|
businessStatus |
BusinessStatus | 经营状态 |
companyType |
CompanyType | 单位类型 |
dataSource |
DataSource | 数据来源 |
staffSize |
CompanySize | 人员规模 |
industryField |
IndustryField | 行业领域 |
涉及文件:
| 文件 | 操作 | 原因 |
|---|---|---|
jeecgboot-vue3/src/views/recruitment/enterprise/EnterpriseInfoList.vue |
修改 | 搜索字段改为单位名称/统一信用代码/注册地址/经营地址/单位类型/所属行业/数据来源;单位类型、数据来源使用 <a-select> 字典下拉;导入 useDict 并添加 getDictOptions/getDictText;bodyCell 插槽添加 4 个字典字段的翻译渲染 |
jeecgboot-vue3/src/views/recruitment/enterprise/components/EnterpriseInfoForm.vue |
修改 | 导入 useDict,预加载 5 个字典;5 个字典字段从 <a-input> 改为 <a-select> 下拉选择;校验提示从"请输入"改为"请选择" |
jeecg-boot/.../enterprise/controller/EnterpriseInfoController.java |
修改 | 添加 EXPORT_DICT_FIELD_MAP 静态常量映射 4 个字段到字典编码;导出流程增加 translateDictFields 调用 |
jeecg-boot/.../enterprise/service/IEnterpriseInfoService.java |
修改 | 添加 translateDictFields 方法声明 |
jeecg-boot/.../enterprise/service/impl/EnterpriseInfoServiceImpl.java |
修改 | 注入 IDictionaryItemService;实现 translateDictFields 方法,采用后端内存映射方案批量查询字典并替换字段值 |
问题描述: 原详情查看功能复用 EnterpriseInfoModal + EnterpriseInfoForm,打开的是禁用状态的编辑表单,布局与编辑界面相同但字段不可编辑,体验与人员信息详情查看一致。
解决方案: 新建独立的 EnterpriseInfoDetailModal 组件,使用 a-descriptions 描述列表以只读方式展示数据。
实现要点:
a-descriptions :column="3" bordered 展示 22 个字段(单位名称、信用代码、经营状态、单位类型、行业领域、数据来源等),字典字段通过 getDictText 转换<a-divider> 分隔标题,展示 14 个字段(单位标签、人员规模、联系人、办公地址、单位简介全宽等)a-descriptions :column="1" 每行一项单独展示:
a-image 正方形展示(150x150px)<video> 标签直接播放,带 controls 控件a-image 正方形展示(150x150px):fullscreen="true"),底部仅保留「关闭」按钮padding: 14px 20px 内边距涉及文件:
jeecgboot-vue3/src/views/recruitment/enterprise/components/EnterpriseInfoDetailModal.vue — 新增企业信息详情弹窗组件jeecgboot-vue3/src/views/recruitment/enterprise/EnterpriseInfoList.vue — 导入新组件,修改 handleDetail 方法调用新弹窗需求描述: 企业列表页的"当前岗位数"字段改为可点击,点击后打开弹窗,弹窗内包含查询表单和数据表格,展示该企业的全部岗位信息。弹窗中的岗位列表支持点击"详情"查看岗位完整信息。
实现方案:
后端无需修改,现有的 /post/postInfo/list 接口已支持通过 enterpriseId 参数过滤(QueryGenerator 自动构建 WHERE enterprise_id = ? 条件)。
弹窗布局(EnterprisePostListModal):
PostInfo.data.ts 的列定义(序号、企业名称、职业工种、岗位名称、薪酬待遇、招聘人数、岗位有效期、职位标签、学历要求、工作经验、联系人、联系电话、数据来源)PostInfoDetailModal 展示岗位完整信息{企业名称} - 岗位列表,自动注入企业ID过滤条件涉及文件:
| 文件 | 操作 | 原因 |
|---|---|---|
jeecgboot-vue3/src/views/recruitment/post/components/EnterprisePostListModal.vue |
新增 | 企业岗位列表弹窗组件,含查询表单 + 岗位数据表格 + 详情操作,放置在 post 模块下以便就近引用岗位相关文件 |
jeecgboot-vue3/src/views/recruitment/enterprise/EnterpriseInfoList.vue |
修改 | 导入 EnterprisePostListModal 和 useModal;bodyCell 中为 postCount 列添加可点击的 <a> 链接;添加 handleViewPostList 方法打开弹窗并传入企业ID和名称 |
需求描述: 在企业编辑表单(EnterpriseInfoForm)中增加"企业标签"字段,支持多选,数据来源于企业标签库(EnterpriseTag)。新增/编辑企业时同步保存标签关联关系,详情弹窗展示标签名称。
实现方案:
后端:
EnterpriseInfoDTO(extends EnterpriseInfo),含 List<String> tagIds,用于新增/编辑时接收前端提交的标签ID列表EnterpriseInfoVO(extends EnterpriseInfo)新增 String tagIds(逗号分隔,表单回显用)和 String tagNames(逗号分隔,详情展示用),用于 queryById 返回EnterpriseTagController 新增 /listForSelect 接口,返回所有已启用的标签 {id, tagName} 列表EnterpriseInfoServiceImpl 注入 EnterpriseTagRelationMapper 和 EnterpriseTagMapper,提供 saveWithTags/updateWithTags 方法,在保存企业基本信息后同步维护 enterprise_tag_relation 关联表EnterpriseInfoController 的 /add 和 /edit 接收 EnterpriseInfoDTO,/queryById 返回 EnterpriseInfoVO前端:
EnterpriseInfo.api.ts 新增 queryById 和 getEnterpriseTagListForSelect APIEnterpriseInfoForm.vue 在"数据来源"前添加"企业标签"多选下拉(a-select mode="multiple"),编辑时自动将后端返回的逗号分隔字符串转为数组回显,提交时排除 tagIds 的数组→字符串转换以保持 List 类型EnterpriseInfoDetailModal.vue 新增"企业标签"展示行EnterpriseInfoList.vue 的 handleEdit/handleDetail 改为先调用 queryById 获取含标签的完整数据再传给弹窗涉及文件:
| 文件 | 操作 | 原因 |
|---|---|---|
jeecg-boot/jeecg-boot-module/jeecg-module-zjrs/.../enterprise/dto/EnterpriseInfoDTO.java |
新增 | DTO 类,extends EnterpriseInfo,含 List<String> tagIds,用于 add/edit 接收前端标签数据 |
jeecg-boot/jeecg-boot-module/jeecg-module-zjrs/.../enterprise/vo/EnterpriseInfoVO.java |
修改 | 新增 tagIds 和 tagNames 字段,用于 queryById 返回含标签的完整数据 |
jeecg-boot/jeecg-boot-module/jeecg-module-zjrs/.../enterprise/service/IEnterpriseInfoService.java |
修改 | 新增 saveWithTags、updateWithTags、queryEnterpriseInfoVOById 方法声明 |
jeecg-boot/jeecg-boot-module/jeecg-module-zjrs/.../enterprise/service/impl/EnterpriseInfoServiceImpl.java |
修改 | 注入 EnterpriseTagRelationMapper 和 EnterpriseTagMapper;实现标签关联保存/更新/查询逻辑 |
jeecg-boot/jeecg-boot-module/jeecg-module-zjrs/.../enterprise/controller/EnterpriseInfoController.java |
修改 | add/edit 接收 EnterpriseInfoDTO;queryById 返回 EnterpriseInfoVO |
jeecg-boot/jeecg-boot-module/jeecg-module-zjrs/.../tag/controller/EnterpriseTagController.java |
修改 | 新增 /listForSelect 接口,返回已启用的标签列表供前端下拉选择 |
jeecgboot-vue3/src/views/recruitment/enterprise/EnterpriseInfo.api.ts |
修改 | 新增 queryById 和 getEnterpriseTagListForSelect API |
jeecgboot-vue3/src/views/recruitment/enterprise/EnterpriseInfoList.vue |
修改 | handleEdit/handleDetail 改为调用 queryById 获取含标签的完整数据 |
jeecgboot-vue3/src/views/recruitment/enterprise/components/EnterpriseInfoForm.vue |
修改 | 添加企业标签多选下拉;编辑时字符串→数组回显;提交时排除 tagIds 的数组→字符串转换 |
jeecgboot-vue3/src/views/recruitment/enterprise/components/EnterpriseInfoDetailModal.vue |
修改 | 新增企业标签展示行 |