1.JS增强中,如何增加过滤条件,让列表按照指定条件过滤后显示,还要保证翻页正常;想通过JS增强来实现,能否给个实现例子代码
initOption() {
console.log('initOption执行\n');
const userStore = useFun.useUserStoreWithOut();
const user = userStore.user;
const userNumber = user.userNumber;
userLoginRoleId = String(user.loginRoleId);
// 重置列表,防止缓存
allowCabinetCodes = [];
const _this = this;
// 异步请求用户管辖的柜子编码
useFun.requestApi('post', '/jeelowcode/dbform-data/list/1913206459306897409', {
data: {
manager_ids: userNumber
}
}).then(res => {
if (res && res.records && Array.isArray(res.records)) {
// 按你日志格式提取柜子编码
allowCabinetCodes = res.records.map(item => item.cabinet_code || '');
console.log('用户可访问柜子编码:', allowCabinetCodes);
// 非管理员角色,追加多值搜索条件(按逗号拼接)
if (userLoginRoleId !== '1' && userLoginRoleId !== '154') {
_this.tableSearch.value.cabinet_code = allowCabinetCodes.join(',');
} else {
// 管理员清空条件,查询全部
_this.tableSearch.value.cabinet_code = '';
}
// 刷新表格,让后端按条件过滤
useFun.refreshChange();
}
}).catch(err => {
// 删除了不存在的 useFun.msgError,只保留控制台日志
console.error('查询权限柜子失败', err);
})
}
2.SQl增强,列表可以直接过滤,但是点搜索就报错。
SELECT * FROM ym_hcm_im_bottle_qrcodes
WHERE
(
#{jeelowcode_user_id} IN (
SELECT id FROM system_users WHERE login_role_id IN (1,154)
)
OR
(
#{jeelowcode_user_id} IN (
SELECT id FROM system_users WHERE login_role_id = 150
)
AND
cabinet_code IN (
SELECT DISTINCT c.cabinet_code
FROM system_users su
JOIN ym_hcm_rm_cabinets c
ON FIND_IN_SET(TRIM(su.user_number), c.manager_ids)
WHERE su.id = #{jeelowcode_user_id}
)
)
)
AND #{jeelowcode_auto_where};
,一搜索就系统开小差
请管理员帮忙看看