编辑 | blame | 历史 | 原始文档

审批流程多选部门

涉及页面

  • 审批流程新增页面
  • 审批流程详情页面
  • 审批流程编辑页面
  • 审批流程列表页面

API

方法 路径 说明
POST /approveProcess/add 新增审批流程,支持多个审批部门
GET /approveProcess/get 查询审批详情,返回部门数组
GET /approveProcess/list 查询审批列表,返回部门数组
POST /approveProcess/update 编辑审批流程部门和审批人

请求参数:

参数 类型 必填 说明
approveDeptIdArray Array<Long> 审批部门 ID 数组,按数组顺序保存;数组优先于旧的 approveDeptId
approveDeptId Long 旧版单部门参数,未传数组时兼容使用
approveDeptName String 部门名称由后端根据部门 ID 查询,前端不应作为部门数据源
approveUser Long 申请人 ID
approveUserIds String 审批人 ID,多个 ID 使用逗号分隔
approveReason String 审批理由
approveType Integer 审批类型

响应:

详情和列表中的审批流程对象新增:

{
  "approveDeptId": 208,
  "approveDeptName": "湟水峡农业,其他部门",
  "approveDeptIdArray": [208, 209],
  "approveDeptNameArray": ["湟水峡农业", "其他部门"]
}

前端修改点

1. 部门选择控件

将审批部门选择控件改为多选,并提交 ID 数组:

<el-select v-model="form.approveDeptIdArray" multiple clearable>
  <el-option
    v-for="dept in deptOptions"
    :key="dept.deptId"
    :label="dept.deptName"
    :value="dept.deptId"
  />
</el-select>

2. data 数据

data() {
  return {
    form: {
      approveDeptIdArray: [],
    },
  }
}

3. 提交与回显

submitForm() {
  if (!this.form.approveDeptIdArray.length) {
    this.$message.error('请选择审批部门')
    return
  }
  addApprove(this.form)
}

loadDetail(id) {
  getApprove(id).then(({ data }) => {
    this.form.approveDeptIdArray = data.approveDeptIdArray || []
  })
}

列表展示可优先使用 approveDeptNameArray,兼容旧数据时使用 approveDeptName

注意事项

  • 多部门数据由后端关联表保存,前端不要拼接部门 ID 或名称。
  • approveDeptIdArray 为空时后端会拒绝新增;旧版单部门请求仍可兼容。
  • 审核中的审批流程不允许修改审批部门。
  • 审批节点仍按审批人创建,多个部门不会重复创建审批节点。