最佳答案
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 之后的版本是否适用未验证