帖子
帖子
用户
博客
课程
显示全部楼层
15
帖子
0
勋章
222
Y币

树形表每行根据条件显示或者隐藏按钮

[复制链接]
发表于 2023-9-25 13:50:50
根据表格启用状态显示后面对应的按钮(如:状态为启用时,启用按钮隐藏,停用按钮显示)


本帖子中包含更多资源,您需要 登录 才可以下载或查看,没有帐号?立即注册

X
BIP751109
15
帖子
0
勋章
222
Y币
最佳答案
viewModel.getTreeModel().on('afterSetDataSource',function (data) { //从缓存区获取按钮 const actions = viewModel.getTreeModel().getCache('actions'); if (!actions) return; const actionsStates = []; data.forEach(data => { const actionState = {}; actions.forEach(action => { //设置按钮可用不可用 actionState[action.cItemName] = { visible: true }; if(action.cItemName == 'button18vc' && data.enable == '1'){ actionsStates.push({"key":data.id,"itemName":"button18vc","name":"visible","value":false}); } if(action.cItemName == 'button20yi' &&data.enable == '0'){ actionsStates.push({"key":data.id,"itemName":"button20yi","name":"visible","value":false}); } }); }); setTimeout(function(){ viewModel.getTreeModel().setActionsState(actionsStates); },50); });
143
帖子
2
勋章
4万+
Y币
let gridModel = viewModel.getGridModel();
            //afterSetDataSource界面加载完成后,对数据进行修改
            gridModel.on('afterSetDataSource', () => {
            //获取列表所有数据
                const rows = gridModel.getRows();
            //从缓存区获取按钮
                const actions = gridModel.getCache('actions');
                if (!actions) return;
                const actionsStates = [];
                rows.forEach(data => {
                    const actionState = {};
                    actions.forEach(action => {
                //设置按钮可用不可用
                        actionState[action.cItemName] = { visible: true };
                        if(action.cItemName == 'btnDelete'){
                            if(data.enable==1){
                                actionState[action.cItemName] = { visible: false };
                            }
                        }
                    });
                    actionsStates.push(actionState);
                });
                setTimeout(function(){
                  gridModel.setActionsState(actionsStates);
                },50);

            });
模仿这个
15
帖子
0
勋章
222
Y币
yonyouhmm · 2023-9-25 13:59let gridModel = viewModel.getGridModel();
            //afterSetDataSource界面加载完成后,对数据进行修改
            gridModel.on('afterSetDataSource', () => {

这是表格的,树表这样写不生效


viewModel.getTreeModel().on('afterSetDataSource',function (data) {
    debugger;

    //从缓存区获取按钮(树表)
    const actions = viewModel.getTreeModel().getCache('actions');
    if (!actions) return;
    const actionsStates = [];
    data.forEach(data => {
        const actionState = {};
        actions.forEach(action => {
            //设置按钮可用不可用
            actionState[action.cItemName] = { visible: true };
            if(action.cItemName == 'button18vc'){
                if(data.enableSate != '0'){
                    actionState[action.cItemName] = { visible: false };
                }
            }

            if(action.cItemName == 'button20yi'){
                if(data.enableSate != '0'){
                    actionState[action.cItemName] = { visible: false };
                }
            }
        });
        actionsStates.push(actionState);
    });
    setTimeout(function(){
//这里不生效
        console.log(viewModel.getTreeModel());
        viewModel.getTreeModel().setActionsState(actionsStates);
    },50);

});
143
帖子
2
勋章
4万+
Y币
BIP751109 · 2023-9-25 15:22这是表格的,树表这样写不生效



树表的  就 viewModel.getTreeModel()   其他逻辑一样  自己调下
143
帖子
2
勋章
4万+
Y币
BIP751109 · 2023-9-25 15:22这是表格的,树表这样写不生效



如何控制树表上按钮的显示隐藏?

let treeModel= viewmodel.getTreeModel()
//对于删除和新增的按钮按照条件进行过滤
treeModel.on('afterSetDataSource', () => {
   const rows =treeModel.getNodesByKeys()
   const actions =treeModel.getCache('actions')
   const actionsStates = []
   rows.forEach((data,index) => {
     actions.forEach(action => {
       if (action.cItemName === 'btnAdd') {
         actionsStates.push({ "key": data.id, "itemName": "btnAdd", "name": "visible", "value": data.isEnd });
       } else {
         actionsStates.push({ "key": data.id, "itemName": "btnDelete", "name": "visible", "value": !data.isSystem });
       }
     })
   })
   treeModel.setActionsState(actionsStates)
})
15
帖子
0
勋章
222
Y币
viewModel.getTreeModel().on('afterSetDataSource',function (data) {
    //从缓存区获取按钮
    const actions = viewModel.getTreeModel().getCache('actions');

    if (!actions) return;
    const actionsStates = [];
    data.forEach(data => {
        const actionState = {};
        actions.forEach(action => {
            //设置按钮可用不可用
            actionState[action.cItemName] = { visible: true };
            if(action.cItemName == 'button18vc' && data.enable == '1'){
               actionsStates.push({"key":data.id,"itemName":"button18vc","name":"visible","value":false});
            }

            if(action.cItemName == 'button20yi' &&data.enable == '0'){
              actionsStates.push({"key":data.id,"itemName":"button20yi","name":"visible","value":false});
            }
        });
        
    });
    setTimeout(function(){
        viewModel.getTreeModel().setActionsState(actionsStates);
    },50);

});
您需要登录后才可以回帖 登录

本版积分规则