Jelajahi Sumber

feat(AI风控): 展示账号当日调用上限状态

账号池仅对适用的 AI Open 账号展示风控状态,并在弹层中显示首次触发时间、成功/请求数、释放时间和上游原因。
dodo hold 2 bulan lalu
induk
melakukan
5ffdded211
2 mengubah file dengan 65 tambahan dan 0 penghapusan
  1. 12 0
      src/api/taobao.ts
  2. 53 0
      src/views/taobao/list.vue

+ 12 - 0
src/api/taobao.ts

@@ -106,6 +106,17 @@ export interface XhsZlongForwardReportRes extends ListRes {
     summary: XhsZlongForwardReportSummary;
 }
 // list
+export interface AiOpenRiskStatus {
+    applicable: boolean;
+    triggered: boolean;
+    reason_code: string;
+    reason: string;
+    first_trigger_time?: string | null;
+    request_count_at_trigger: number;
+    success_count_at_trigger: number;
+    release_time?: string | null;
+}
+
 export interface TkPoolRecord {
     id: number;
     name: string;
@@ -151,6 +162,7 @@ export interface TkPoolRecord {
     riskStrategy?: string;
     launchScene?: number;
     riskCookie?: string;
+    aiopen_risk?: AiOpenRiskStatus | null;
 }
 
 export interface FormRes {

+ 53 - 0
src/views/taobao/list.vue

@@ -573,6 +573,52 @@
                         {{ record.daily_calls_limit }}
                     </a-tag>
                 </template>
+                <template #aiopen_risk="{ record }">
+                    <span v-if="!record.aiopen_risk?.applicable">-</span>
+                    <a-popover
+                        v-else-if="record.aiopen_risk.triggered"
+                        position="left"
+                    >
+                        <a-tag bordered color="red">调用已达上限</a-tag>
+                        <template #content>
+                            <a-descriptions
+                                :column="1"
+                                size="small"
+                                style="min-width: 320px"
+                            >
+                                <a-descriptions-item label="首次触发">
+                                    {{
+                                        formatDateTime(
+                                            record.aiopen_risk.first_trigger_time
+                                        )
+                                    }}
+                                </a-descriptions-item>
+                                <a-descriptions-item label="成功 / 请求">
+                                    {{
+                                        record.aiopen_risk
+                                            .success_count_at_trigger
+                                    }}
+                                    /
+                                    {{
+                                        record.aiopen_risk
+                                            .request_count_at_trigger
+                                    }}
+                                </a-descriptions-item>
+                                <a-descriptions-item label="预计释放">
+                                    {{
+                                        formatDateTime(
+                                            record.aiopen_risk.release_time
+                                        )
+                                    }}
+                                </a-descriptions-item>
+                                <a-descriptions-item label="原因">
+                                    {{ record.aiopen_risk.reason }}
+                                </a-descriptions-item>
+                            </a-descriptions>
+                        </template>
+                    </a-popover>
+                    <a-tag v-else bordered color="green">正常</a-tag>
+                </template>
             </a-table>
         </a-card>
     </div>
@@ -698,6 +744,13 @@
             align: 'right',
             width: 150,
         },
+        {
+            title: 'AI风控',
+            slotName: 'aiopen_risk',
+            dataIndex: 'aiopen_risk',
+            align: 'center',
+            width: 140,
+        },
         {
             title: '每日收益限额',
             slotName: 'daily_income_limit',