user_id = await get_user() if not user_id: return {"widgettype":"Error","options":{"title":"操作失败","message":'未登录',"cwidth":16,"cheight":9,"timeout":3}} rec_id = params_kw.get('id', '') if not rec_id: return {"widgettype":"Error","options":{"title":"操作失败","message":'缺少id',"cwidth":16,"cheight":9,"timeout":3}} data = {'id': rec_id, 'updated_at': curDateString()} if 'plan_id' in params_kw: data['plan_id'] = params_kw['plan_id'] if 'case_name' in params_kw: data['case_name'] = params_kw['case_name'] if 'case_type' in params_kw: data['case_type'] = params_kw['case_type'] if 'priority' in params_kw: data['priority'] = params_kw['priority'] if 'precondition' in params_kw: data['precondition'] = params_kw['precondition'] if 'steps' in params_kw: data['steps'] = params_kw['steps'] if 'expected_result' in params_kw: data['expected_result'] = params_kw['expected_result'] try: async with get_sor_context(request._run_ns, 'pipeline') as sor: await sor.U('sd_test_cases', data) return {"widgettype":"Message","options":{"title":"操作成功","message":"ok","cwidth":16,"cheight":9,"timeout":3}} except Exception as e: return {"widgettype":"Error","options":{"title":"操作失败","message":str(e),"cwidth":16,"cheight":9,"timeout":3}}