Files
wecom_it_smart_desk/frontend-agent/dist.bak/assets/ApprovalQueue-0zcV_0-8.js
T

2 lines
7.7 KiB
JavaScript
Raw Normal View History

import{r as q,s as ne,x as O,d as oe,o as se,b as m,c as w,f as l,g as o,w as r,u as s,F as L,z as E,K as le,e as U,i as h,P as ue,h as _,t as c,y as re,n as ie,j as pe,m as ce}from"./index-B1u3nieA.js";function de(){const v=q([]),g=q(0),z=q(!1),p=ne({status:"",audience:"",page:1,page_size:20}),j=q({queued_total:0,pending_total:0,by_audience:{},by_source_type:{}}),u=q(null),V=O(()=>Math.ceil(g.value/p.page_size)),$=O(()=>"/api/admin/approval-queue");async function k(){z.value=!0;try{const t=new URLSearchParams;p.status&&t.set("status",p.status),p.audience&&t.set("audience",p.audience),t.set("page",String(p.page)),t.set("page_size",String(p.page_size));const d=await(await fetch(`${$.value}/queued?${t}`)).json();d.code===0&&d.data?(v.value=d.data.items||[],g.value=d.data.total||0):(console.warn("获取审批队列失败:",d.message),v.value=[],g.value=0)}catch(t){console.error("获取审批队列异常:",t),v.value=[],g.value=0}finally{z.value=!1}}async function T(){try{const i=await(await fetch(`${$.value}/queued/stats`)).json();i.code===0&&i.data&&(j.value=i.data)}catch(t){console.error("获取队列统计失败:",t)}}async function Q(t){u.value=t;try{return(await(await fetch(`${$.value}/queued/${t}/dequeue-approve`,{method:"POST",headers:{"Content-Type":"application/json"}})).json()).code===0?(v.value=v.value.filter(P=>P.id!==t),g.value--,!0):!1}catch(i){return console.error("队列审批失败:",i),!1}finally{u.value=null}}async function D(t,i="审核不通过"){u.value=t;try{return(await(await fetch(`/api/admin/knowledge-iteration/suggestions/${t}/reject`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({reject_reason:i})})).json()).code===0?(v.value=v.value.filter(A=>A.id!==t),g.value--,!0):!1}catch(d){return console.error("队列拒绝失败:",d),!1}finally{u.value=null}}async function R(t){Object.assign(p,t),p.page=t.page??1,await k()}async function x(t){p.page=t,await k()}async function C(){await Promise.all([k(),T()])}return{items:v,total:g,totalPages:V,loading:z,filter:p,stats:j,operatingId:u,fetchQueue:k,fetchStats:T,approveQueued:Q,rejectQueued:D,updateFilter:R,goToPage:x,refresh:C}}const _e={class:"approval-queue-page"},ge={class:"approval-queue-page__header"},ve={class:"approval-queue-page__stats"},fe={class:"approval-queue-page__filters"},ye={class:"approval-queue-page__stat-cards"},me={class:"approval-queue-page__stat-label"},we={class:"approval-queue-page__stat-count"},he={class:"approval-queue-page__list"},qe={key:0,class:"approval-queue-page__empty"},ke={class:"approval-queue-page__item-header"},Ce={class:"approval-queue-page__item-type"},je={class:"approval-queue-page__item-badges"},be={class:"approval-queue-page__item-content"},ze={class:"approval-queue-page__item-meta"},Ve={class:"approval-queue-page__item-actions"},$e={key:0,class:"approval-queue-page__pagination"},Se=oe({__name:"ApprovalQueue",setup(v){pe();const{items:g,total:z,totalPages:p,loading:j,filter:u,stats:V,operatingId:$,fetchStats:k,approveQueued:T,rejectQueued:Q,updateFilter:D,goToPage:R,refresh:x}=de(),C=q(!1),t=q(""),i=q("");async function d(){await D({audience:u.audience,status:u.status})}async function P(n){await T(n)&&await k()}function A(n){t.value=n,i.value="审核不通过",C.value=!0}async function G(){await Q(t.value,i.value)&&(C.value=!1,await k())}function H(n){console.log("查看提案详情:",n.id)}function J(n){return Math.round((n??0)*100)}function K(n){const e=n??0;return e>=.7?"success":e>=.5?"warning":"danger"}function B(n){return{annotation:"标注分析",conversation:"会话分析",ai_uncertain:"AI不确定",manual:"手动录入",document_ragflow:"RAGFlow文档"}[n]||n}function W(n){return{employee_quick_reply:"员工回复",engineer_workguide:"工程师指导"}[n||""]||n||"未知"}function F(n){if(!n.queued_at)return!1;const e=new Date(n.queued_at).getTime();return(Date.now()-e)/(1e3*60*60)>=66}function X(n){if(!n)return"—";const e=new Date(n),f=y=>String(y).padStart(2,"0");return`${e.getMonth()+1}/${e.getDate()} ${f(e.getHours())}:${f(e.getMinutes())}`}return se(()=>{x()}),(n,e)=>