config = getConfig('.') DBPools(config.databases) dbname = get_module_dbname('cms') async with db.sqlorContext(dbname) as sor: content_id = params_kw.get('content_id', '') if not content_id: return {'widgettype': 'Message', 'options': {'text': '缺少内容ID', 'messagetype': 'error'}} else: # Update status to pending await sor.U('cms_content', {'id': content_id, 'status': 'pending'}) # Call submit_approval from cms module try: user_id = await get_user() ns_detail = {'id': content_id} rows = await sor.R('cms_content', ns_detail) title = rows[0].get('title', '内容审批') if rows else '内容审批' result = await submit_approval('content_publish', content_id, title, user_id) if result and result.get('approval_id'): await sor.U('cms_content', {'id': content_id, 'approval_id': result['approval_id']}) return {'widgettype': 'Message', 'options': {'text': '已提交审批', 'messagetype': 'success'}} except Exception as e: return {'widgettype': 'Message', 'options': {'text': f'审批提交失败: {str(e)},状态已改为待审批', 'messagetype': 'warning'}}