前端原子操作

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

后端原子操作

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

create

- 前端

  1. 1this.$api.post('/a/base/atom/create', {
  2. 2 atomClass: {
  3. 3 id,
  4. 4 module,
  5. 5 atomClassName,
  6. 6 },
  7. 7}).then(key => {
  8. 8 console.log(key);
  9. 9});

- 后端

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

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

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

write

- 前端

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

- 后端

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

submit

将原子的草稿副本提交

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

- 前端

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

- 后端

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

writeSubmit

保存并提交

- 前端

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

delete

- 前端

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

- 后端

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