注意事项:
- 元数据配置:动作定义统统挂在列表的表名上(暂时不支持获取动作定义挂载动作定义)
- 前端取的desc配置在提醒里面:{“UI_DESC”:“删除赠品”}
- 接口需要前端先传网关’r3-oc-oms’
- 没有权限的按钮接口直接不返回
- 可以不配置‘返回’按钮
1. getPermissions() 方法
- 用于获取按钮权限(会调接口)。
- 语法
$OMS2.omsUtils.getPermissions(self, array, params, isIndependent);
参数 | 描述 |
---|---|
self | {object},指向当前this |
arrry | {string},当前按钮配置的name,(eg.‘btnConfig’) |
params | {Object},用于请求接口(service.common.fetchActionsInCustomizePage)的传参。(1.)列表:{ table: ‘OC_B_ORDER’, type: ‘LIST’ };(2.)新增/详情:{ table: ‘OC_B_ORDER’, type: ‘OBJ’ };(3.)网关:{ table: ‘OC_B_ORDER’, type: ‘OBJ’, serviceId:‘r3-oc-oms’’} *网关默认该中心对应的网关 |
isIndependent | {boolean},默认false,是否完全使用接口返回的按钮配置,本地不做任何配置 |
方法返回 | {Array},接口返回的data |
params 说明:
- 列表:{ table: ‘OC_B_ORDER’, type: ‘LIST’}
- 新增/详情:{ table: ‘OC_B_ORDER’, type: ‘OBJ’ }
- 网关:{ table: ‘OC_B_ORDER’, type: ‘OBJ’, serviceId:‘r3-oc-oms’’} *网关默认该中心对应的网关
实例
mounted() {
const _this = this;
$OMS2.omsUtils.getPermissions(_this,'btnConfig','orderManager');
}
2. 列表页面进行按钮权限控制:
参考文件:js/pages/orderCenter/orderManager/orderManager.js
1).引入按钮事件集:
import BurgeonEvent from 'burgeonConfig/config/event.config';
2).定义:
data() {
return {
eventGather: BurgeonEvent,
}
}
3).使用:
<businessButton
:btn-config="btnConfig"
@dropDownClick="(webname) => eventGather.dropDownClickChange(webname, extendBtn)"
/>
* 关于调用dropDownClickChange方法,没有下拉类型的按钮时,extendBtn可以传[]
4).生命周期修改this指向:
activated(){
const self = this;
$OMS2.BtnConfig.target = self;
BurgeonEvent.target = self;
},
5).初始化按钮的方法中(或mounted中):
const self = this;
self.extendBtn = []; // 定义配置文件(funBtn.config.js)中没有的按钮配置
console.log('singleType::', $OMS2.BtnConfig.singleType);
self.btnConfig.buttons = []; // 清空按钮缓存,防止重复叠加按钮
const buttons = $OMS2.BtnConfig.config();
self.btnConfig.buttons = [...buttons.buttons, ...self.extendBtn];
$OMS2.omsUtils.getPermissions(self, 'btnConfig', { table: 'OC_B_ORDER', type: 'LIST' });
3. 单对象页面进行按钮权限控制:
参考文件:/project-logic/views/pages/orderCenter/returnOrder/returnOrderAdd.vue
1).定义:
data() {
return {
btnConfig: {
typeAll: "default",
buttons: [{
webname: 'RETURNSAVE1',
isShow: true,
btnclick: () => {
this.save();
},
},
{
webname: 'ORDER_RETURN1',
isShow: true,
btnclick: () => {
this.back();
},
},],
},
}
}
2).方法定义:
methods: {
// 获取按钮权限
getBtn() {
$OMS2.omsUtils.getPermissions(this, 'btnConfig', { table: 'OC_B_RETURN_ORDER', type: 'OBJ' }, true).then(res => {
console.log(res);
const { ACTIONS, SUB_ACTIONS } = res
console.log('buttons::', this.btnConfig.buttons);
const webArr = $OMS2.omsUtils.sonList(SUB_ACTIONS, 'webname');
console.log(webArr);
/* this.subTableConfig.businessButtonConfig.buttons.forEach(item => {
// item.isShow = webArr.includes(item.webname);
// SUB_ACTIONS.forEach(it => item.text = it.webdesc);
SUB_ACTIONS.forEach(it => {
if (item.webname == it.webname) {
item.isShow = true;
item.text = it.webdesc;
}
});
}) */
});
},
}
3).生命周期(建议activated)中调用:
activated() {
this.getBtn();
},
4. 元数据配置:
1、功能权限-打开相应的菜单,看接口,复制name
2、打开元数据->新增动作定义->显示样式:定制页面->动作定义:刚才复制的name
3、发布元数据
4、返回功能权限界面查看刚配置的权限按钮是否展示
5、定制页面调接口请求按钮权限