原子操作

2018-11-28 10:01:04

前端原子操作

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

后端原子操作

模块a-base通过中间件机制向ctx注入了对象atom,可以通过ctx.meta.atom进行原子操作

create

前端

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

返回值

名称 说明
key 原子Key:{ atomId, itemId }

参数

名称 说明
atomClass.id 原子类型Id
atomClass.module 原子类型所属模块
atomClass.atomClassName 原子类型名称

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

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

后端

const user = this.ctx.user.op;
const key = await this.ctx.meta.atom.create({
  atomClass: {
    id,
    module,
    atomClassName,
  },
  user,
});
名称 说明
atomClass (略)
user 当前用户

write

前端

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

参数

名称 说明
key 原子Key
item 原子条目数据

后端

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

delete

前端

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

后端

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

enable

将原子从草稿状态提交到正常状态

前端

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

后端

const user = this.ctx.user.op;
await this.ctx.meta.atom.enable({
  key: { atomId, itemId },
  atom: { atomEnabled: 1 },
  user,
});

action

执行扩展指令

前端

this.$api.post('/a/base/atom/action', {
  action: 101,
  key: { atomId, itemId },
}).then(() => {
});
名称 说明
action 扩展指令的代码

后端

const user = this.ctx.user.op;
await this.ctx.meta.atom.action({
  action: 101,
  key: { atomId, itemId },
  user,
});

flag

修改原子标记

前端

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

后端

const user = this.ctx.user.op;
await this.ctx.meta.atom.flag({
  key: { atomId, itemId },
  atom: { atomFlag },
  user,
});

flow

修改原子简单流程状态

前端

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

后端

const user = this.ctx.user.op;
await this.ctx.meta.atom.flow({
  key: { atomId, itemId },
  atom: { atomFlow },
  user,
});


评论: