前端原子操作

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

后端原子操作

模块a-base通过Bean组件对原子基本操作进行了封装

create

- 前端

this.$api.post('/a/base/atom/create', {
  atomClass: {
    id,
    module,
    atomClassName,
  },
}).then(key => {
  console.log(key);
});

- 后端

const user = this.ctx.state.user.op;
const key = await this.ctx.bean.atom.create({
  atomClass: {
    id,
    module,
    atomClassName,
  },
  user,
});
  • 返回值
名称 说明
key 原子的草稿副本Key:{ atomId, itemId }
  • 参数
名称 说明
atomClass.id 原子类型Id
atomClass.module 原子类型所属模块
atomClass.atomClassName 原子类型名称
user 当前用户

如果指定了atomClass.id,则不必指定atomClass.moduleatomClass.atomClassName

反之,如果没有指定atomClass.id,则必须指定atomClass.moduleatomClass.atomClassName

write

- 前端

this.$api.post('/a/base/atom/write', {
  key: { atomId, itemId },
  item,
}).then(() => {
});

- 后端

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

submit

将原子的草稿副本提交

  1. 如果没有绑定审批工作流,就直接返回正式副本Key
  2. 如果绑定了审批工作流,则自动启动工作流,并返回工作流实例Id

- 前端

this.$api.post('/a/base/atom/submit', {
  key: { atomId, itemId },
}).then( data => {
});

- 后端

const user = this.ctx.state.user.op;
const data = await this.ctx.bean.atom.submit({
  key: { atomId, itemId },
  user,
});
  • 返回值
名称 说明
data.formal.key 正式副本Key
data.flow.id 工作流实例Id

writeSubmit

保存并提交

- 前端

this.$api.post('/a/base/atom/writeSubmit', {
  key: { atomId, itemId },
  item,
}).then( data => {
});

delete

- 前端

this.$api.post('/a/base/atom/delete', {
  key: { atomId, itemId },
}).then(() => {
});

- 后端

const user = this.ctx.state.user.op;
await this.ctx.bean.atom.delete({
  key: { atomId, itemId },
  user,
});