帖子
帖子
用户
博客
课程
显示全部楼层
51
帖子
1
勋章
315
Y币
发表于 2024-4-8 19:29:13
15
已解决

原厂扩展页面函数执行问题 [复制链接]

  • 发表于:2024-04-08 19:29:13
请教下,为什么原厂拓展的列表页面 afterSetDataSource 这个钩子不会进断点,但是 beforeSetDataSource 这个钩子就能进去,对于原厂列表页,如果要对表格行按钮进行控制,还有其它方式吗?
附件: 您需要 登录 才可以下载或查看,没有帐号?立即注册
stitch_筱夏
7
帖子
0
勋章
141
Y币
最佳答案
2023/11/13 星期一 17:43:53 XUYN 测试列表 页面 是没有问题的找SC验证 最新版本的通过跟踪代码发现 他走了多遍 afterStateRuleRunGridActionStates 最后一次走将参数冲掉了 这个是产品bug // 测试代码 viewModel.on("customInit", function (data) { //图书管理系统--页面初始化 console.log(""); viewModel.on("afterMount", () => { // 去获取一下 gridModel 的actions const gridModel = viewModel.getGridModel(); gridModel.on("afterSetDataSource", () => { let actionsState = gridModel.getActionsState() || []; let actions = gridModel.getCache("actions") || []; let rows = gridModel.getRows(); rows.forEach((row, row_index) => { actionsState[row_index] = {}; actions.forEach((action, index) => { if (action["cItemName"] == "btnJointQuery") { actionsState[row_index][action.cItemName] = { visible: false }; } else { actionsState[row_index][action.cItemName] = { visible: true }; } }); }); gridModel.setActionsState(actionsState); gridModel.execute("afterStateRuleRunGridActionStates", actionsState); }); }); }); 2023/11/15 星期三 11:11:35 最新版本验证通过 beforeSetActionsState 监听 强制设置值 // 表格悬浮按钮隐藏控制 var gridModel = viewModel.getGridModel(); // 监听beforeSetActionsState钩子, 获取表格默认按钮状态 gridModel.on("beforeSetActionsState", (actionState) => { // 获取表格数据,结构[{}, {}, ...] const rows = gridModel.getRows(); // 获取表格悬浮按钮 结构[{}, {}, ...] const actions = gridModel.getCache("actions"); rows.forEach((item, i) => { actions.forEach((action) => { if (action.cItemName === "btnCopyRowLBBorrowBookInfo") { actionState[action.cItemName] = { visible: false }; } }); }); }); 截止 2023/11/15 应该是930版本使用 beforeSetActionsState 930 之后的版本是否适用未验证
7
帖子
0
勋章
141
Y币
2023/11/13  星期一  17:43:53 XUYN 测试列表 页面 是没有问题的找SC验证 最新版本的通过跟踪代码发现 他走了多遍 afterStateRuleRunGridActionStates 最后一次走将参数冲掉了 这个是产品bug
// 测试代码
viewModel.on("customInit", function (data) {
  //图书管理系统--页面初始化
  console.log("<===========================图书管理系统--页面初始化===========================>");
  viewModel.on("afterMount", () => {
    // 去获取一下 gridModel 的actions
    const gridModel = viewModel.getGridModel();
    gridModel.on("afterSetDataSource", () => {
      let actionsState = gridModel.getActionsState() || [];
      let actions = gridModel.getCache("actions") || [];
      let rows = gridModel.getRows();
      rows.forEach((row, row_index) => {
        actionsState[row_index] = {};
        actions.forEach((action, index) => {
          if (action["cItemName"] == "btnJointQuery") {
            actionsState[row_index][action.cItemName] = { visible: false };
          } else {
            actionsState[row_index][action.cItemName] = { visible: true };
          }
        });
      });
      gridModel.setActionsState(actionsState);
      gridModel.execute("afterStateRuleRunGridActionStates", actionsState);
    });
  });
});
2023/11/15  星期三  11:11:35 最新版本验证通过 beforeSetActionsState 监听 强制设置值
// 表格悬浮按钮隐藏控制
var gridModel = viewModel.getGridModel();
// 监听beforeSetActionsState钩子, 获取表格默认按钮状态
gridModel.on("beforeSetActionsState", (actionState) => {
  // 获取表格数据,结构[{}, {}, ...]
  const rows = gridModel.getRows();
  // 获取表格悬浮按钮 结构[{}, {}, ...]
  const actions = gridModel.getCache("actions");
  rows.forEach((item, i) => {
    actions.forEach((action) => {
      if (action.cItemName === "btnCopyRowLBBorrowBookInfo") {
        actionState[i][action.cItemName] = { visible: false };
      }
    });
  });
});
截止 2023/11/15 应该是930版本使用 beforeSetActionsState  930 之后的版本是否适用未验证
51
帖子
1
勋章
315
Y币
gridmodel 有个beforeSetActionsState 用这个api就好了

您需要登录后才可以回帖 登录

本版积分规则