按钮权限

本文详细介绍了如何在前端应用中使用$OMS2.omsUtils.getPermissions方法获取按钮权限,并结合列表和单对象页面的权限控制示例,同时涵盖了元数据配置、动作定义挂载以及权限展示的过程。
摘要由CSDN通过智能技术生成

注意事项:

  1. 元数据配置:动作定义统统挂在列表的表名上(暂时不支持获取动作定义挂载动作定义)
  2. 前端取的desc配置在提醒里面:{“UI_DESC”:“删除赠品”}
  3. 接口需要前端先传网关’r3-oc-oms’
  4. 没有权限的按钮接口直接不返回
  5. 可以不配置‘返回’按钮

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 说明:

  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’’} *网关默认该中心对应的网关

实例

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、定制页面调接口请求按钮权限

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值