rbac/json/users.json
yumoqing 1e2897d8d4 fix: enable/disable 后自动刷新表格 + 捕获真实错误
1. record_toolbar 添加 name 字段 (enable_user/disable_user)
2. 新增 binds: script bind 用 fetch 调用 dspy,成功后 render() 刷新
3. api/add_user.dspy + api/update_user.dspy 用 try/except 捕获真实异常
2026-06-29 15:50:18 +08:00

64 lines
2.2 KiB
JSON

{
"tblname": "users",
"title":"用户",
"params": {
"new_data_url": "{{entire_url('/rbac/api/add_user.dspy')}}",
"update_data_url": "{{entire_url('/rbac/api/update_user.dspy')}}",
"sortby":"username",
"confidential_fields":["password"],
"logined_userorgid":"orgid",
"browserfields": {
"exclouded": ["id", "password", "orgid", "nick_name" ],
"cwidth": {}
},
"editexclouded": ["id", "nick_name", "orgid", "last_login_fail", "last_login", "sync_from", "login_fail_count", "created_at"],
"record_toolbar": [
{
"name": "enable_user",
"label": "启用",
"actiontype": "dspy",
"url": "/rbac/users/enable_user.dspy",
"options": {
"icon": "check",
"cwidth": 16,
"cheight": 9
}
},
{
"name": "disable_user",
"label": "禁用",
"actiontype": "dspy",
"url": "/rbac/users/disable_user.dspy",
"options": {
"icon": "block",
"cwidth": 16,
"cheight": 9
}
}
],
"binds": [
{
"wid": "self",
"event": "enable_user",
"actiontype": "script",
"target": "self",
"script": "var tid=bricks.getWidgetById('users_tbl');var d=tid.select_row.user_data;fetch('/rbac/users/enable_user.dspy?id='+d.id,{method:'POST'}).then(function(r){return r.json()}).then(function(r){if(r.widgettype==='Message'){tid.render({})}else{bricks.show_error(r.options)}})"
},
{
"wid": "self",
"event": "disable_user",
"actiontype": "script",
"target": "self",
"script": "var tid=bricks.getWidgetById('users_tbl');var d=tid.select_row.user_data;fetch('/rbac/users/disable_user.dspy?id='+d.id,{method:'POST'}).then(function(r){return r.json()}).then(function(r){if(r.widgettype==='Message'){tid.render({})}else{bricks.show_error(r.options)}})"
}
],
"subtables": [
{
"field":"userid",
"title":"用户角色",
"subtable":"userrole"
}
]
}
}