location-manage 新版接口返回约束
1、列表操作按钮返回按钮格式
Array<{
name: ‘’, event: ‘’
}>
2、分页相关约束
入参约束:page、per_page
返回数据meta约束:last_page、total
3、大多数情况下,返回的 数据type,需要同时返回 string
如:source:1 ,需要同时在详情字段里返回 source和sourceString
4、所有的且或数据,返回格式和保存格式如下
[
[
{
'id': 37,
'labels': [
492,
466
]
},
{
'id': 34,
'labels': [
484,
496
]
}
],
[
{
'id': 34,
'labels': [
484,
498,
487
]
}
]
]
5、批量操作约束
背景:在列表操作里,存在批量操作,如果选中的4条数据,有2条是有权限的,2条是无权限或者失败的
服务端约束:
2条数据操作成功,但是 http需要报错,指出哪两条报错,并组装成message
示例:
订单 A,B,C,D批量删除操作时,A,B有权限,C,D无权限
后台完成A,B的删除。然后提示”C、D订单无此权限“,使用alert提示报错,需要点击确定才能关闭弹窗。
ps: alert和toast的提示方式已经与后台达成共识,会统一做在request闸门里,status为 420,大家无需操心,
只要是needHint模式,会自动判断使用
6、页面/模块/tab 内公共操作按钮显示与否 约定
背景:在页面内,可能会有各种操作按钮,如 新增案例、批量删除
服务端约束:
调取独立的接口,如 /cases/index/permissions 接口,返回操作组格式如下
data: [
{ name: '新增', event: 'create' },
{ name: '批量删除', event: 'destroy' },
]
前端约束:新增$getJurisList和$getJurisMap 挂在到全局的 vue实例下
示例1:单个按钮
<ElButton v-show="$getJurisMap(data).create" type="primary">新增案例</ElButton>
// $getJurisMap(data)格式如下
{
create: { event: 'create', name: '新增' }
}
示例2:批量操作列表
// computed
get btns() {
return this.$getJurisList({
add_labels: 'primary',
destroy: 'danger',
}, this.data);
}
// btns结构如下
[
{ event: 'add_labels', name: '贴标签', type: 'primary' },
{ event: 'destroy', name: '删除', type: 'danger' },
]