# staff_tickets.dspy - 运维工单列表(DataViewer 数据源:顶层 {total, rows}) # 入参: queue=pending(待认领,我角色池)/mine(我受理的)/all(全部,管理权限), page?, pagerows? user_id = await get_user() if not user_id: return {"widgettype": "Error", "options": {"title": "Authorization Error", "message": "Please login", "timeout": 3}} queue = (params_kw.get('queue') or 'pending').strip() if queue not in ('pending', 'mine', 'all'): queue = 'pending' page = int(params_kw.get('page') or 1) pagerows = int(params_kw.get('pagerows') or params_kw.get('rows') or 20) rows = await list_staff_tickets(user_id, queue=queue, limit=1000) total = len(rows) start = (page - 1) * pagerows page_rows = rows[start:start + pagerows] return {"total": total, "rows": page_rows}