前端明细操作

EggBornJS向前端组件对象注入了对象$api,在前端组件中可以通过this.$api访问后端API路由,从而进行原子操作

后端明细操作

模块a-detail通过Bean组件对明细基本操作进行了封装

create

- 前端

this.$api.post('/a/detail/detail/create', {
  flowTaskId,
  atomKey:{
    atomId,
  },
  detailClass: {
    id,
    module,
    detailClassName,
  },
  item,
}).then(key => {
  console.log(key);
});

- 后端

const user = this.ctx.state.user.op;
const key = await this.ctx.bean.detail.create({
  atomKey,
  detailClass,
  item,
  user,
});
  • 返回值
名称 说明
key 明细Key:{ detailId, detailItemId }
  • 参数
名称 说明
flowTaskId 如果是在审批工作流中操作明细数据,需要提供当前所在的任务Id,以便获取相应的操作权限。(下同)
atomKey 原子Key
detailClass.id 明细类型Id
detailClass.module 明细类型所属模块
detailClass.detailClassName 明细类型名称
item 初始化数据
user 当前用户
  • flowTaskId:提供flowTaskId参数的目的是在审批工作流中提供权限判断的依据。因此,如果在后端执行create方法,不需要提供此参数。(下同)

  • detailClass:

    1. 如果没有指定detailClass,则尝试使用默认的明细类型
    2. 如果指定了detailClass.id,则不必指定detailClass.moduledetailClass.detailClassName
    3. 反之,如果没有指定detailClass.id,则必须指定detailClass.moduledetailClass.detailClassName

write

- 前端

this.$api.post('/a/detail/detail/write', {
  flowTaskId,
  key: { detailId, detailItemId },
  item,
}).then(() => {
});

- 后端

const user = this.ctx.state.user.op;
await this.ctx.bean.detail.write({
  key,
  item,
  user,
});
  • 参数
名称 说明
key 明细Key
item 明细条目数据
user 当前用户

delete

- 前端

this.$api.post('/a/detail/detail/delete', {
  flowTaskId,
  key: { detailId, detailItemId },
}).then(() => {
});

- 后端

const user = this.ctx.state.user.op;
await this.ctx.bean.detail.delete({
  key,
  user,
});