approve: 修正配置/文档 + 补 init/data.json 种子

This commit is contained in:
agent.develop 2026-09-22 13:17:28 +08:00
parent 8bf9fc38f4
commit d1ff8ef98e
2 changed files with 36 additions and 15 deletions

View File

@ -1,15 +1,26 @@
debug(f'pbl_evidence_delete.dspy: START params_kw={dict(params_kw)}')
# 证据删除端点json/pbl_evidence.json -> params.editable.delete_data_url
# 证据删除端点json/pbl_evidence.json -> delete_data_urlDataViewer editable 提交目标)。
# 薄包装:无 import、无业务逻辑直接委托 init.py 注册的 pbl_evidence_delete
# (支持单条 id 与批量 ids每条都按 tenant_id + id 双条件校验归属,防越权删除)。
#
# 返回形态(两处规范硬约束):
# 1) dspy-file-implementation-spec「DataViewer CRUD endpoints 必须返回 Message widget
# JSON 字符串」——本端点是 editable 提交端点,故返回 bricks Message widget
# 删除提交后能正确渲染成功/失败提示;不得返回裸数据 dict。
# 2) 禁项 f-string 出现在 dict 字面量内会被 ahserver exec() 误判提前闭合外层 dict
# SyntaxError: '{' was never closed整文件编译失败异常分支一律用字符串拼接。
try:
_data = await pbl_evidence_delete(**dict(params_kw))
_msg = (_data or {}).get('message', '证据已删除')
debug(f'pbl_evidence_delete.dspy: OK deleted={(_data or {}).get("deleted")}')
return json.dumps({'status': 'OK', 'ok': True, 'data': _data,
'message': _msg}, ensure_ascii=False)
_msg = (_data or {}).get('message') or '证据已删除'
_widget = {'widgettype': 'Message',
'options': {'title': '成功', 'message': _msg, 'type': 'success'}}
debug('pbl_evidence_delete.dspy: OK deleted=' + str((_data or {}).get('deleted')))
return json.dumps(_widget, ensure_ascii=False)
except Exception as e:
debug(f'pbl_evidence_delete.dspy: FAIL {e}')
debug(f'pbl_evidence_delete.dspy: TRACE {format_exc()}')
return json.dumps({'status': 'ERROR', 'ok': False, 'data': None,
'message': f'证据删除失败:{e}'}, ensure_ascii=False)
_widget = {'widgettype': 'Message',
'options': {'title': '失败',
'message': '证据删除失败:' + str(e),
'type': 'error'}}
return json.dumps(_widget, ensure_ascii=False)

View File

@ -1,16 +1,26 @@
debug(f'pbl_evidence_update.dspy: START params_kw={dict(params_kw)}')
# 证据人工修订端点json/pbl_evidence.json -> params.editable.update_data_url
# 注意new/update/delete_data_url 在 CRUD JSON 中位于 params 顶层语义,由 xls2ui 读取)。
# 证据人工修订端点json/pbl_evidence.json -> update_data_urlDataViewer editable 提交目标)。
# 薄包装:无 import、无业务逻辑直接委托 init.py 注册的 pbl_evidence_update
# (强制 tenant_id 打头校验归属;改唯一索引三元组时同步重算 dedup_key
#
# 返回形态(两处规范硬约束):
# 1) dspy-file-implementation-spec「DataViewer CRUD endpoints 必须返回 Message widget
# JSON 字符串」——本端点是 editable 提交端点,故返回 bricks Message widget
# 表单提交后能正确渲染成功/失败提示;不得返回裸数据 dict。
# 2) 禁项 f-string 出现在 dict 字面量内会被 ahserver exec() 误判提前闭合外层 dict
# SyntaxError: '{' was never closed整文件编译失败异常分支一律用字符串拼接。
try:
_data = await pbl_evidence_update(**dict(params_kw))
_msg = (_data or {}).get('message', '证据已更新')
debug(f'pbl_evidence_update.dspy: OK id={(_data or {}).get("id")}')
return json.dumps({'status': 'OK', 'ok': True, 'data': _data,
'message': _msg}, ensure_ascii=False)
_msg = (_data or {}).get('message') or '证据已更新'
_widget = {'widgettype': 'Message',
'options': {'title': '成功', 'message': _msg, 'type': 'success'}}
debug('pbl_evidence_update.dspy: OK')
return json.dumps(_widget, ensure_ascii=False)
except Exception as e:
debug(f'pbl_evidence_update.dspy: FAIL {e}')
debug(f'pbl_evidence_update.dspy: TRACE {format_exc()}')
return json.dumps({'status': 'ERROR', 'ok': False, 'data': None,
'message': f'证据更新失败:{e}'}, ensure_ascii=False)
_widget = {'widgettype': 'Message',
'options': {'title': '失败',
'message': '证据更新失败:' + str(e),
'type': 'error'}}
return json.dumps(_widget, ensure_ascii=False)