260604-标签库模块开发记录.md 32 KB

标签库模块开发记录

日期: 2026-06-04


一、个人标签库模块

模块概述

个人标签库模块(personalTag)用于管理个人标签信息,支持省一体化平台回流和本地自定义两种来源的标签,并提供标签的启用/停用状态管理。该模块采用 JeecgBoot 的前后端分离架构,前端基于 Vue3 + Ant Design Vue,后端基于 Spring Boot + MyBatis-Plus。

业务关系

  • PersonalTag(个人标签信息):独立主表,存储个人标签的基础信息,通过 PERSONAL_TAG_RELATION 中间表与 PersonalInfo(个人基本信息)表建立多对多关联。
  • PersonalTagRelation(个人标签关联):中间表,仅含 tag_id + personal_id 两个字段,联合主键。

模块文件结构

前端(jeecgboot-vue3/src/views/recruitment/personalTag/)

文件 用途
PersonalTagList.vue 个人标签列表页面,提供查询、新增、编辑、详情、删除、批量删除、批量启用/停用、导入导出、高级查询等功能
PersonalTag.api.ts 个人标签 API 封装
PersonalTag.data.ts 列表页表格列配置(9列)与高级查询字段定义(8个查询字段)
components/PersonalTagForm.vue 个人标签新增/编辑/详情表单组件
components/PersonalTagModal.vue 个人标签弹窗组件,包裹 PersonalTagForm,全屏模式
components/PersonalTagPersonalModal.vue 关联人员列表弹窗组件,点击"本地关联人数"时弹出

后端(jeecg-boot/jeecg-boot-module/jeecg-module-zjrs/.../org/jeecg/modules/zjrs/tag/)

层次 文件
Controller controller/PersonalTagController.java
Entity entity/PersonalTag.java
Service service/IPersonalTagService.java
Service Impl service/impl/PersonalTagServiceImpl.java
Mapper mapper/PersonalTagMapper.java
Mapper XML mapper/xml/PersonalTagMapper.xml

开发记录

功能清单

功能 说明
分页列表查询 支持按标签名称、所属一级分类、所属二级分类、启用状态、数据来源等条件查询,9 列展示(含本地关联人数)
新增 全屏表单,支持 8 个标签字段录入
编辑 复用新增表单,预填充已有数据
详情 表单禁用模式查看标签全部信息
删除 / 批量删除 支持单条删除和批量删除,删除前弹窗确认
批量启用/停用 支持选中多条标签后批量修改启用状态
导入 / 导出 Excel 基于 Jeecg 标准 Excel 导出导入功能,导出使用 VO 含本地关联人数
高级查询 8 个查询字段,支持灵活的筛选条件
标签名称唯一性校验 新增/编辑时后端校验标签名称不可重复

必填字段

共 3 个必填字段:标签名称、启用状态、数据来源。


功能开发

日期 内容 涉及文件 说明
2026-06-02 个人标签模块初始构建 前端 5 个文件 + 后端 6 个文件 完成个人标签管理的基础 CRUD 功能,含 Excel 导入导出、批量启用/停用、标签名称唯一性校验
2026-06-05 本地关联人数可点击查看人员列表 后端 1 文件 + 前端 3 文件 关联人数列变为可点击链接,弹窗展示标签关联的人员列表,支持搜索和查看详情

PersonalTag 实体字段一览

分类 字段 说明
基础信息 provinceStandardCode 省标编码
tagCode 标签编码
tagName 标签名称(必填)
firstCategory 所属一级分类
secondCategory 所属二级分类
tagDescription 标签说明
状态 tagStatus 启用状态(必填,1启用/0停用)
dataSource 数据来源(必填,1省一体化平台回流/2本地自定义)
系统字段 id / createBy / createTime / updateBy / updateTime / sysOrgCode 系统内置字段

表格列(9列)

对应字段 说明
序号 index 自定义列,customRender 显示行索引
省标编码 provinceStandardCode 原"省标标码"更名
标签名称 tagName
所属一级分类 firstCategory
所属二级分类 secondCategory
标签说明 tagDescription
启用状态 tagStatus customRender 翻译为"启用"/"停用"
本地关联人数 relationCount 关联中间表 COUNT(DISTINCT personal_id) 计算
数据来源 dataSource customRender 翻译为"省一体化平台回流"/"本地自定义"

搜索区域(5个查询条件)

标签名称、所属一级分类、所属二级分类、启用状态(下拉选择)、数据来源(下拉选择)


2026-06-02:个人标签模块初始构建

需求描述: 构建个人标签管理模块,实现标签的基础 CRUD、Excel 导入导出功能,支持批量启用/停用状态管理,新增/编辑时后端校验标签名称唯一性。

涉及文件:

文件 操作 原因
jeecgboot-vue3/src/views/recruitment/personalTag/PersonalTagList.vue 新增 个人标签列表页,含查询区域(3个条件)、表格(9列)、操作栏、导入导出和批量操作按钮
jeecgboot-vue3/src/views/recruitment/personalTag/PersonalTag.api.ts 新增 封装个人标签 CRUD、导入导出、批量更新状态 API 接口
jeecgboot-vue3/src/views/recruitment/personalTag/PersonalTag.data.ts 新增 定义 9 列表格列配置与 8 个高级查询字段
jeecgboot-vue3/src/views/recruitment/personalTag/components/PersonalTagForm.vue 新增 个人标签表单,含 3 个必填字段校验,8 个字段录入
jeecgboot-vue3/src/views/recruitment/personalTag/components/PersonalTagModal.vue 新增 全屏弹窗包裹 PersonalTagForm,提供新增/编辑/详情入口
jeecg-boot/.../tag/controller/PersonalTagController.java 新增 个人标签 REST 控制器,提供 CRUD + 导出导入 + 批量修改状态接口
jeecg-boot/.../tag/entity/PersonalTag.java 新增 个人标签实体,映射 personal_tag
jeecg-boot/.../tag/service/IPersonalTagService.java 新增 服务接口,定义 batchUpdateStatuscheckTagNameUnique 方法
jeecg-boot/.../tag/service/impl/PersonalTagServiceImpl.java 新增 服务实现,批量修改状态使用 AssertUtils 校验参数合法性;标签名称唯一性校验排除自身ID
jeecg-boot/.../tag/mapper/PersonalTagMapper.java 新增 Mapper 接口,继承 BaseMapper
jeecg-boot/.../tag/mapper/xml/PersonalTagMapper.xml 新增 MyBatis XML 映射骨架

二、企业标签库模块

模块概述

企业标签库模块(enterpriseTag)用于管理企业标签信息,功能与个人标签库对称,支持省一体化平台回流和本地自定义两种来源的标签,并提供标签的启用/停用状态管理。

业务关系

  • EnterpriseTag(企业标签信息):独立主表,存储企业标签的基础信息,通过 ENTERPRISE_TAG_RELATION 中间表与 EnterpriseInfo(企业基本信息)表建立多对多关联。
  • EnterpriseTagRelation(企业标签关联):中间表,仅含 tag_id + enterprise_id 两个字段,联合主键。

模块文件结构

前端(jeecgboot-vue3/src/views/recruitment/enterpriseTag/)

文件 用途
EnterpriseTagList.vue 企业标签列表页面,提供查询、新增、编辑、详情、删除、批量删除、批量启用/停用、导入导出等功能
EnterpriseTag.api.ts 企业标签 API 封装
EnterpriseTag.data.ts 列表页表格列配置(9列)与高级查询字段定义(8个查询字段)
components/EnterpriseTagForm.vue 企业标签新增/编辑/详情表单组件
components/EnterpriseTagModal.vue 企业标签弹窗组件,包裹 EnterpriseTagForm,全屏模式

后端(jeecg-boot/jeecg-boot-module/jeecg-module-zjrs/.../org/jeecg/modules/zjrs/tag/)

层次 文件
Controller controller/EnterpriseTagController.java
Entity entity/EnterpriseTag.java
Service service/IEnterpriseTagService.java
Service Impl service/impl/EnterpriseTagServiceImpl.java
Mapper mapper/EnterpriseTagMapper.java
Mapper XML mapper/xml/EnterpriseTagMapper.xml

开发记录

功能清单

功能 说明
分页列表查询 支持按标签名称、所属一级分类、所属二级分类、启用状态、数据来源等条件查询,9 列展示(含本地关联人数)
新增 全屏表单,支持 8 个标签字段录入
编辑 复用新增表单,预填充已有数据
详情 表单禁用模式查看标签全部信息
删除 / 批量删除 支持单条删除和批量删除,删除前弹窗确认
批量启用/停用 支持选中多条标签后批量修改启用状态
导入 / 导出 Excel 基于 Jeecg 标准 Excel 导出导入功能,导出使用 VO 含本地关联人数
高级查询 已定义 superQuerySchema(8个查询字段),前端列表页中高级查询按钮已注释
标签名称唯一性校验 新增/编辑时后端校验标签名称不可重复

必填字段

共 3 个必填字段:标签名称、启用状态、数据来源。


功能开发

日期 内容 涉及文件 说明
2026-06-02 企业标签模块初始构建 前端 5 个文件 + 后端 6 个文件 完成企业标签管理的基础 CRUD 功能,含 Excel 导入导出、批量启用/停用、标签名称唯一性校验

EnterpriseTag 实体字段一览

分类 字段 说明
基础信息 provinceStandardCode 省标编码
tagCode 标签编码
tagName 标签名称(必填)
firstCategory 所属一级分类
secondCategory 所属二级分类
tagDescription 标签说明
状态 tagStatus 启用状态(必填,1启用/0停用)
dataSource 数据来源(必填,1省一体化平台回流/2本地自定义)
系统字段 id / createBy / createTime / updateBy / updateTime / sysOrgCode 系统内置字段

表格列(9列)

与个人标签库完全对称:

对应字段 说明
序号 index 自定义列,customRender 显示行索引
省标编码 provinceStandardCode 原"省标标码"更名
标签名称 tagName
所属一级分类 firstCategory
所属二级分类 secondCategory
标签说明 tagDescription
启用状态 tagStatus customRender 翻译为"启用"/"停用"
本地关联人数 relationCount 关联中间表 COUNT(DISTINCT enterprise_id) 计算
数据来源 dataSource customRender 翻译为"省一体化平台回流"/"本地自定义"

搜索区域(5个查询条件)

标签名称、所属一级分类、所属二级分类、启用状态(下拉选择)、数据来源(下拉选择)


2026-06-02:企业标签模块初始构建

需求描述: 构建企业标签管理模块,实现标签的基础 CRUD、Excel 导入导出功能,支持批量启用/停用状态管理,新增/编辑时后端校验标签名称唯一性。功能与个人标签库完全对称。

涉及文件:

文件 操作 原因
jeecgboot-vue3/src/views/recruitment/enterpriseTag/EnterpriseTagList.vue 新增 企业标签列表页,含查询区域(3个条件)、表格(9列)、操作栏、导入导出和批量操作按钮(高级查询按钮已注释)
jeecgboot-vue3/src/views/recruitment/enterpriseTag/EnterpriseTag.api.ts 新增 封装企业标签 CRUD、导入导出、批量更新状态 API 接口
jeecgboot-vue3/src/views/recruitment/enterpriseTag/EnterpriseTag.data.ts 新增 定义 9 列表格列配置与 8 个高级查询字段
jeecgboot-vue3/src/views/recruitment/enterpriseTag/components/EnterpriseTagForm.vue 新增 企业标签表单,含 3 个必填字段校验,8 个字段录入
jeecgboot-vue3/src/views/recruitment/enterpriseTag/components/EnterpriseTagModal.vue 新增 全屏弹窗包裹 EnterpriseTagForm,提供新增/编辑/详情入口
jeecg-boot/.../tag/controller/EnterpriseTagController.java 新增 企业标签 REST 控制器,提供 CRUD + 导出导入 + 批量修改状态接口
jeecg-boot/.../tag/entity/EnterpriseTag.java 新增 企业标签实体,映射 enterprise_tag
jeecg-boot/.../tag/service/IEnterpriseTagService.java 新增 服务接口,定义 batchUpdateStatuscheckTagNameUnique 方法
jeecg-boot/.../tag/service/impl/EnterpriseTagServiceImpl.java 新增 服务实现,批量修改状态使用 AssertUtils 校验参数合法性;标签名称唯一性校验排除自身ID
jeecg-boot/.../tag/mapper/EnterpriseTagMapper.java 新增 Mapper 接口,继承 BaseMapper
jeecg-boot/.../tag/mapper/xml/EnterpriseTagMapper.xml 新增 MyBatis XML 映射骨架

三、标签关联中间表

模块概述

为支持标签库与业务信息的多对多关联,建立两个关联中间表。

业务关系

  • PERSONAL_TAG_RELATION:关联 PERSONAL_TAG(个人标签)与 PERSONAL_INFO(个人基本信息),通过 tag_id + personal_id 建立多对多关系。
  • ENTERPRISE_TAG_RELATION:关联 ENTERPRISE_TAG(企业标签)与 ENTERPRISE_INFO(企业基本信息),通过 tag_id + enterprise_id 建立多对多关系。

两个表均只有两个字段(标签ID + 业务实体ID),并使用联合主键。


模块文件结构

后端(jeecg-boot/jeecg-boot-module/jeecg-module-zjrs/.../org/jeecg/modules/zjrs/tag/)

层次 文件
Entity entity/PersonalTagRelation.java
Entity entity/EnterpriseTagRelation.java
Mapper mapper/PersonalTagRelationMapper.java
Mapper mapper/EnterpriseTagRelationMapper.java
Mapper XML mapper/xml/PersonalTagRelationMapper.xml
Mapper XML mapper/xml/EnterpriseTagRelationMapper.xml

SQL脚本

文件 操作 说明
.docs/sql/标签库信息.sql 新增 在个人标签表和企业标签表之后追加 PERSONAL_TAG_RELATION 和 ENTERPRISE_TAG_RELATION 两张关联中间表的建表语句

关联表字段一览

PERSONAL_TAG_RELATION

字段 类型 说明 约束
tag_id VARCHAR(36) 标签ID(关联PERSONAL_TAG.ID) NOT NULL,联合主键
personal_id VARCHAR(36) 个人ID(关联PERSONAL_INFO.ID) NOT NULL,联合主键

ENTERPRISE_TAG_RELATION

字段 类型 说明 约束
tag_id VARCHAR(36) 标签ID(关联ENTERPRISE_TAG.ID) NOT NULL,联合主键
enterprise_id VARCHAR(36) 企业ID(关联ENTERPRISE_INFO.ID) NOT NULL,联合主键

2026-06-04:关联中间表构建

需求描述: 为标签库与业务信息建立多对多关联关系,创建两张中间表,两个中间表均只包含标签ID + 业务实体ID两个字段,使用联合主键。

涉及文件:

文件 操作 原因
.docs/sql/标签库信息.sql 修改 新增 PERSONAL_TAG_RELATION 和 ENTERPRISE_TAG_RELATION 两张关联中间表的建表语句,含表注释和字段注释
jeecg-boot/.../tag/entity/PersonalTagRelation.java 新增 个人标签关联实体,映射 personal_tag_relation 表,仅含 tagId + personalId 两个字段
jeecg-boot/.../tag/entity/EnterpriseTagRelation.java 新增 企业标签关联实体,映射 enterprise_tag_relation 表,仅含 tagId + enterpriseId 两个字段
jeecg-boot/.../tag/mapper/PersonalTagRelationMapper.java 新增 个人标签关联 Mapper 接口,继承 BaseMapper
jeecg-boot/.../tag/mapper/EnterpriseTagRelationMapper.java 新增 企业标签关联 Mapper 接口,继承 BaseMapper
jeecg-boot/.../tag/mapper/xml/PersonalTagRelationMapper.xml 新增 MyBatis XML 映射骨架
jeecg-boot/.../tag/mapper/xml/EnterpriseTagRelationMapper.xml 新增 MyBatis XML 映射骨架

2026-06-04:标签库字段调整 + 本地关联人数 + VO 查询

需求描述: 调整个人标签库和企业标签库的查询字段与展示字段,增加"本地关联人数"列,通过关联中间表计算每个标签关联的不重复个人/企业数量;创建 VO 类承载分页列表导出数据,后端分页查询和导出接口改为 VO 映射。

查询字段调整(从3个改为5个):

新查询字段 对应字段 说明
标签名称 tagName 保留
所属一级分类 firstCategory 新增查询字段
所属二级分类 secondCategory 新增查询字段
启用状态 tagStatus 原"标签状态"改名为"启用状态"
数据来源 dataSource 保留

删除的查询字段: 无(原有标签状态改为启用状态)

表格列调整(9列):

新列 对应字段 说明
序号 index 保留
省标编码 provinceStandardCode 原"省标标码"改名,取消标签编码列
标签名称 tagName 保留
所属一级分类 firstCategory 保留
所属二级分类 secondCategory 保留
标签说明 tagDescription 保留
启用状态 tagStatus 原"标签启用状态"改名
本地关联人数 relationCount 新增,关联中间表 COUNT(DISTINCT) 计算
数据来源 dataSource 保留

删除的列: 标签编码

涉及文件:

文件 操作 原因
jeecg-boot/.../tag/vo/PersonalTagVo.java 新增 个人标签 VO,含 entity 所有字段 + relationCount,标注 @Excel 用于导出
jeecg-boot/.../tag/vo/EnterpriseTagVo.java 新增 企业标签 VO,含 entity 所有字段 + relationCount,标注 @Excel 用于导出
jeecg-boot/.../tag/mapper/xml/PersonalTagMapper.xml 修改 新增 queryPageListWithRelationCountqueryListWithRelationCount 两个 SQL 查询,通过子查询 LEFT JOIN PERSONAL_TAG_RELATION 计算 COUNT(DISTINCT PERSONAL_ID) 并应用 ${ew.customSqlSegment} 条件过滤
jeecg-boot/.../tag/mapper/xml/EnterpriseTagMapper.xml 修改 同上,LEFT JOIN ENTERPRISE_TAG_RELATION 计算 COUNT(DISTINCT ENTERPRISE_ID)
jeecg-boot/.../tag/mapper/PersonalTagMapper.java 修改 新增两个 VO 查询方法声明
jeecg-boot/.../tag/mapper/EnterpriseTagMapper.java 修改 新增两个 VO 查询方法声明
jeecg-boot/.../tag/service/IPersonalTagService.java 修改 新增 queryPageListWithRelationCountqueryListWithRelationCount 方法声明
jeecg-boot/.../tag/service/IEnterpriseTagService.java 修改 新增 queryPageListWithRelationCountqueryListWithRelationCount 方法声明
jeecg-boot/.../tag/service/impl/PersonalTagServiceImpl.java 修改 实现两个 VO 查询方法;queryListWithRelationCount 中处理导出 selections 选中记录筛选
jeecg-boot/.../tag/service/impl/EnterpriseTagServiceImpl.java 修改 同上
jeecg-boot/.../tag/controller/PersonalTagController.java 修改 list 接口返回类型改为 IPage<PersonalTagVo>,委托 Service 的 VO 查询方法;exportXls 改写为使用 JeecgEntityExcelView + PersonalTagVo.class + queryListWithRelationCount 导出 VO 列表
jeecg-boot/.../tag/controller/EnterpriseTagController.java 修改 同上,使用 EnterpriseTagVo
jeecgboot-vue3/src/views/recruitment/personalTag/PersonalTagList.vue 修改 查询表单从 3 个字段改为 5 个(新增所属一级分类、所属二级分类,标签状态改为启用状态),布局调整为 5+1 按钮每行
jeecgboot-vue3/src/views/recruitment/personalTag/PersonalTag.data.ts 修改 表格列去掉标签编码,省标标码改名为省标编码,标签启用状态改名为启用状态,新增本地关联人数列
jeecgboot-vue3/src/views/recruitment/enterpriseTag/EnterpriseTagList.vue 修改 同上
jeecgboot-vue3/src/views/recruitment/enterpriseTag/EnterpriseTag.data.ts 修改 同上

2026-06-04:标签库 dataSource 字段改为数据字典驱动

需求描述: 将个人标签库和企业标签库的前端 dataSource 字段从硬编码 <a-select-option> 改为通过 useDict 字典工具从后端批量接口加载字典数据,遵循项目现有字典实现规范。

涉及文件:

文件 操作 原因
jeecgboot-vue3/src/views/recruitment/personalTag/PersonalTagList.vue 修改 查询表单 dataSource 的 <a-select> 从硬编码 <a-select-option> 改为 :options="dataSourceOptions" 绑定字典选项;bodyCell 插槽新增 getDictText('DataSource', text) 翻译渲染;脚本区导入 useDictcomputed,设置 getDictOptionsdataSourceOptions
jeecgboot-vue3/src/views/recruitment/personalTag/PersonalTag.data.ts 修改 移除 dataSource 列的硬编码 customRender(改为由 bodyCell 统一翻译)
jeecgboot-vue3/src/views/recruitment/personalTag/components/PersonalTagForm.vue 修改 表单 dataSource 从硬编码 <a-select-option> 改为 :options="dataSourceOptions" 绑定字典选项;脚本区导入 useDict,设置 getDictOptionsdataSourceOptions
jeecgboot-vue3/src/views/recruitment/enterpriseTag/EnterpriseTagList.vue 修改 同上 PersonalTagList.vue 改动

2026-06-05:本地关联企业数可点击查看企业列表

需求描述: 企业标签列表的"本地关联企业数"列改为可点击链接,点击后弹出弹窗展示该标签关联的企业列表。弹窗内包含企业查询表单和数据表格,支持按单位名称、统一信用代码、单位类型、所属行业、数据来源等条件搜索,并可点击"详情"打开企业信息详情弹窗。

后端改动:

文件 操作 原因
jeecg-boot/.../tag/controller/EnterpriseTagController.java 修改 新增 EnterpriseInfoServiceEnterpriseTagRelationMapper 注入;新增 GET /tag/enterpriseTag/queryEnterpriseList 端点,根据 tagId 从关联表查出企业ID列表,结合前端搜索条件分页查询企业信息(含岗位数)

前端改动:

文件 操作 原因
jeecgboot-vue3/src/views/recruitment/enterpriseTag/EnterpriseTag.api.ts 修改 新增 queryEnterpriseList API 枚举和导出函数
jeecgboot-vue3/src/views/recruitment/enterpriseTag/components/EnterpriseTagEnterpriseModal.vue 新增 企业关联列表弹窗组件,仿照 EnterprisePostListModal.vue 模式实现:包含5个查询条件的搜索表单、企业信息数据表格(9列)、操作栏"详情"按钮调用 EnterpriseInfoDetailModal
jeecgboot-vue3/src/views/recruitment/enterpriseTag/EnterpriseTagList.vue 修改 bodyCell 插槽中新增 relationCount 列处理,渲染为可点击蓝色下划线数字;新增 handleViewEnterpriseList 方法打开企业列表弹窗;新增 .link-count 样式;引入并注册 EnterpriseTagEnterpriseModal 弹窗组件

2026-06-05:本地关联人数可点击查看人员列表

需求描述: 个人标签列表的"本地关联人数"列改为可点击链接,点击后弹出弹窗展示该标签关联的人员列表。弹窗内包含人员查询表单和数据表格,支持按姓名、证件号码、联系电话、求职状态、数据来源等条件搜索,并可点击"详情"打开人员信息详情弹窗。

后端改动:

文件 操作 原因
jeecg-boot/.../tag/controller/PersonalTagController.java 修改 新增 IPersonalInfoServicePersonalTagRelationMapper 注入;新增 GET /tag/personalTag/queryPersonalList 端点,根据 tagId 从关联表查出个人ID列表,结合前端搜索条件分页查询个人信息

前端改动:

文件 操作 原因
jeecgboot-vue3/src/views/recruitment/personalTag/PersonalTag.api.ts 修改 新增 queryPersonalList API 枚举和导出函数
jeecgboot-vue3/src/views/recruitment/personalTag/components/PersonalTagPersonalModal.vue 新增 个人关联列表弹窗组件,仿照 EnterpriseTagEnterpriseModal.vue 模式实现:包含5个查询条件的搜索表单(姓名、证件号码、联系电话、求职状态、数据来源)、人员信息数据表格(8列:序号/姓名/证件类型/证件号码/性别/联系电话/求职状态/数据来源)、操作栏"详情"按钮调用 PersonalInfoDetailModal
jeecgboot-vue3/src/views/recruitment/personalTag/PersonalTagList.vue 修改 bodyCell 插槽中新增 relationCount 列处理,渲染为可点击蓝色下划线数字;新增 handleViewPersonalList 方法打开人员列表弹窗;新增 .link-count 样式;引入并注册 PersonalTagPersonalModal 弹窗组件

2026-06-04:批量操作按钮常显(无选中时禁用)

需求描述: 批量删除和批量启用/停用按钮始终显示在页面上,不随选中行数变化而显示/隐藏。当未选中任何数据行时按钮处于禁用(disabled)状态,选中数据行后按钮变为可用状态。

涉及文件:

文件 操作 原因
jeecgboot-vue3/src/views/recruitment/personalTag/PersonalTagList.vue 修改 批量操作 <a-dropdown>v-if="selectedRowKeys.length > 0" 改为始终渲染,使用 :disabled="selectedRowKeys.length === 0" 控制禁用状态
jeecgboot-vue3/src/views/recruitment/enterpriseTag/EnterpriseTagList.vue 修改 同上 PersonalTagList.vue 改动

2026-06-04:标签表单新增优化(默认启用 + 字段禁用 + 标签编码自动生成)

需求描述: 优化标签新增表单体验:新增时标签状态默认启用,数据来源默认为市系统并禁止编辑,省标编码禁止编辑,标签编码改为后端自动生成流水号(个人标签格式 ZJGR+三位流水,企业标签格式 ZJQY+三位流水)。

后端改动:

文件 操作 原因
jeecg-boot/.../tag/service/IPersonalTagService.java 修改 新增 generateTagCode() 方法声明
jeecg-boot/.../tag/service/IEnterpriseTagService.java 修改 新增 generateTagCode() 方法声明
jeecg-boot/.../tag/service/impl/PersonalTagServiceImpl.java 修改 实现 generateTagCode():查询 tag_code LIKE 'ZJGR%' 取最大流水号 +1,格式 ZJGR%03d
jeecg-boot/.../tag/service/impl/EnterpriseTagServiceImpl.java 修改 同上,前缀 ZJQY
jeecg-boot/.../tag/controller/PersonalTagController.java 修改 新增 GET /generateTagCode 接口
jeecg-boot/.../tag/controller/EnterpriseTagController.java 修改 同上

前端改动:

文件 操作 原因
jeecgboot-vue3/src/views/recruitment/personalTag/PersonalTag.api.ts 修改 新增 generateTagCode() API 调用,使用 isTransformResponse: false 跳过消息提示
jeecgboot-vue3/src/views/recruitment/enterpriseTag/EnterpriseTag.api.ts 修改 同上
jeecgboot-vue3/src/views/recruitment/personalTag/components/PersonalTagForm.vue 修改 省标编码 disabled 占位"系统自动生成";标签编码 disabled 占位"系统自动生成",新增时调用后端生成流水号填充;数据来源 disabled
jeecgboot-vue3/src/views/recruitment/personalTag/components/PersonalTagForm.vue(personaltag 小写目录) 修改 同上
jeecgboot-vue3/src/views/recruitment/enterpriseTag/components/EnterpriseTagForm.vue 修改 同 PersonalTagForm 改动;另将 tagStatus 默认值从 '' 改为 '1'(启用),dataSource 默认值从 '' 改为 '2'(市系统)
jeecgboot-vue3/src/views/recruitment/enterpriseTag/components/EnterpriseTagForm.vue(enterprisetag 小写目录) 修改 同上

2026-06-04:省系统标签禁用编辑/删除

需求描述: dataSource为'1'(省一体化平台回流)的标签属于省系统数据,不允许编辑和删除,只允许修改启用状态。单条记录的操作栏中编辑和删除按钮保持显示但置灰不可点击;批量删除时自动过滤掉省系统标签。

涉及文件:

文件 操作 原因
jeecgboot-vue3/src/views/recruitment/personalTag/PersonalTagList.vue 修改 getTableAction 中编辑按钮增加 disabled: record.dataSource === '1'getDropDownAction 中删除按钮增加 disabled: record.dataSource === '1'batchHandleDelete 增加省系统数据过滤逻辑,选中省系统标签时弹出警告并自动跳过
jeecgboot-vue3/src/views/recruitment/enterpriseTag/EnterpriseTagList.vue 修改 同上 PersonalTagList.vue 改动